All Projects → elviswolcott → remark-admonitions

elviswolcott / remark-admonitions

Licence: MIT license
Add admonitions support to Remarkable

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to remark-admonitions

twoslash
You take some Shiki, add a hint of TypeScript compiler, and 🎉 incredible static code samples
Stars: ✭ 596 (+562.22%)
Mutual labels:  remark, remark-plugin, docusaurus
transformer-oembed
@remark-embedder transformer for oEmbed supported links
Stars: ✭ 25 (-72.22%)
Mutual labels:  remark, remark-plugin
remark-frontmatter
remark plugin to support frontmatter (YAML, TOML, and more)
Stars: ✭ 167 (+85.56%)
Mutual labels:  remark, remark-plugin
strip-markdown
plugin remove Markdown formatting
Stars: ✭ 84 (-6.67%)
Mutual labels:  remark, remark-plugin
remark-license
plugin to generate a license section
Stars: ✭ 15 (-83.33%)
Mutual labels:  remark, remark-plugin
remark-footnotes
Legacy plugin to add support for pandoc footnotes — please use `remark-gfm` instead
Stars: ✭ 38 (-57.78%)
Mutual labels:  remark, remark-plugin
remark-highlight.js
Legacy plugin to highlight code blocks with highlight.js — please use `rehype-highlight` instead
Stars: ✭ 58 (-35.56%)
Mutual labels:  remark, remark-plugin
remark-slate-transformer
remark plugin to transform remark syntax tree (mdast) to Slate document tree, and vice versa. Made for WYSIWYG markdown editor.
Stars: ✭ 62 (-31.11%)
Mutual labels:  remark, remark-plugin
remark-directive
remark plugin to support directives
Stars: ✭ 137 (+52.22%)
Mutual labels:  remark, remark-plugin
remark-bookmarks
plugin to manage links
Stars: ✭ 15 (-83.33%)
Mutual labels:  remark, remark-plugin
remark-embed-images
plugin to embed local images as data URIs
Stars: ✭ 23 (-74.44%)
Mutual labels:  remark, remark-plugin
remark-hint
Sprinkle hints/tips/warnings on your documents
Stars: ✭ 36 (-60%)
Mutual labels:  remark, remark-plugin
remark-behead
Remark plugin to increase or decrease markdown heading weight.
Stars: ✭ 14 (-84.44%)
Mutual labels:  remark, remark-plugin
remark-autolink-headings
Legacy remark plugin to automatically add links to headings — please use `rehype-autolink-headings` instead
Stars: ✭ 63 (-30%)
Mutual labels:  remark, remark-plugin
remark-external-links
Legacy plugin to automatically add target and rel attributes to external links — please use `rehype-external-links` instead
Stars: ✭ 50 (-44.44%)
Mutual labels:  remark, remark-plugin
remark-man
plugin to compile markdown to man pages
Stars: ✭ 87 (-3.33%)
Mutual labels:  remark, remark-plugin
cache
A cache for @remark-embedder
Stars: ✭ 12 (-86.67%)
Mutual labels:  remark, remark-plugin
remarkable-admonitions
Add admonitions support to Remarkable
Stars: ✭ 37 (-58.89%)
Mutual labels:  callout, docusaurus
gitbook-plugin-flexible-alerts
GitBook plugin to convert blockquotes into beautiful and configurable alerts using preconfigured or own styles and alert types.
Stars: ✭ 29 (-67.78%)
Mutual labels:  alert, callout
spark-alarm
Alerting and monitoring tool for Apache Spark
Stars: ✭ 23 (-74.44%)
Mutual labels:  alert

Travis (.com) npm

remark-admonitions

A remark plugin for admonitions designed with Docusaurus v2 in mind.

remark-admonitions is now included out-of-the-box with @docusaurus/preset-classic!

example of admonitions

Installation

remark-admonitions is available on NPM.

npm install remark-admonitions

unified + remark

If you're using unified/remark, just pass the plugin to use()

For example, this will compile input.md into output.html using remark, rehype, and remark-admonitions.

const unified = require('unified')
const markdown = require('remark-parse')
// require the plugin
const admonitions = require('remark-admonitions')
const remark2rehype = require('remark-rehype')
const doc = require('rehype-document')
const format = require('rehype-format')
const html = require('rehype-stringify')
const vfile = require('to-vfile')
const report = require('vfile-reporter')

const options = {}

unified()
  .use(markdown)
  // add it to unified
  .use(admonitions, options)
  .use(remark2rehype)
  .use(doc)
  .use(format)
  .use(html)
  .process(vfile.readSync('./input.md'), (error, result) => {
      console.error(report(error || result))
      if (result) {
        result.basename = "output.html"
        vfile.writeSync(result)
      }
  })

Docusaurus v2

@docusaurus/preset-classic includes remark-admonitions.

If you aren't using @docusaurus/preset-classic, remark-admonitions can still be used through passing a remark plugin to MDX.

Usage

Admonitions are a block element. The titles can include inline markdown and the body can include any block markdown except another admonition.

The general syntax is

:::keyword optional title
some content
:::

For example,

:::tip pro tip
`remark-admonitions` is pretty great!
:::

The default keywords are important, tip, note, warning, and danger. Aliases for info => important, success => tip, secondary => note and danger => warning have been added for Infima compatibility.

Options

The plugin can be configured through the options object.

Defaults

const options = {
  customTypes: customTypes, // additional types of admonitions
  tag: string, // the tag to be used for creating admonitions (default ":::")
  icons: "svg"|"emoji"|"none", // the type of icons to use (default "svg")
  infima: boolean, // wether the classes for infima alerts should be added to the markup
}

Custom Types

The customTypes option can be used to add additional types of admonitions. You can set the svg and emoji icons as well as the keyword. You only have to include the svg/emoji fields if you are using them. The ifmClass is only necessary if the infima setting is true and the admonition should use the look of an existing Infima alert class.

const customTypes = {
  [string: keyword]: {
    ifmClass: string,
    keyword: string,
    emoji: string,
    svg: string,
  } | string
}

For example, this will allow you to generate admonitions will the custom keyword.

customTypes: {
  custom: {
    emoji: '💻',
    svg: '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M15 2H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h5.34c-.25.61-.86 1.39-2.34 2h8c-1.48-.61-2.09-1.39-2.34-2H15c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm0 9H1V3h14v8z"></path></svg>'
  }
}

To create an alias for an existing type, have the value be the keyword the alias should point to.

customTypes: {
  alias: "custom"
}

The generated markup will include the class admonition-{keyword} for styling.

If the infima option is true, the classes alert alert--{type} will be added to inherit the default Infima styling.

Styling

You'll have to add styles for the admonitions. With Docusaurus, these can be added to custom.css.

Infima (Docusaurus v2)

The Infima theme (styles/infima.css) is used by @docusaurus/preset-classic.

infima theme

Classic (Docusaurus v1)

The classic theme (styles/classic.css) replicates the look of remarkable-admonitions and Docusaurus v1.

classic theme

Credit

Syntax and classic theme based on remarkable-admonitions.

The SVG icons included are from GitHub Octicons.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].