You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.9 KiB

markdown-super

Markdown-Super is a markkdown-parser using markdown it that allows including other markdown-documents and manage markdown-it plugins inside the document itself.

Commandline

usage: index.js [-h] [-w] [--pdf] file

Positional arguments:
  file         The file to render

Optional arguments:
  -h, --help   Show this help message and exit.
  -w, --watch  Watch files for changes
  --pdf        Output as pdf
  --bundle     Bundle all images and script in one html

Including other markdown documents

A document can be included by using

[!include]: path/to/file

Included documents can also use include. If there is a circular include, the include resulting in an endless loop is ignored.

Managing markdown-it plugins

The usage of a markdown-it plugin inside a document can be decleared by using

[!use]: plugin1, plugin2, plugin3
or
[!use]: # (plugin1, plugin2, plugin3)

The plugin names are listed in the following table. Basically it is just the package name with the markdown-it removed. See Plugins

For example you can declare the use of markdown-it-emoji the following:

[!use]: emoji

Pages

You can manage the pages that are exported to the pdf. A new page can be started with:

[!newpage]

Note that this automatically includes markdown-it-div in your project. If you want to declare one page specifically, you need to declare the use of markdown-it-div ([!use]: div). Then you pages can be created like this:

::: page
Your page's content.
Warning: be careful not to put too much content in this environment
because it will be rendered as only ONE page in the pdf output.
:::

Stylesheets

You can include your own stylesheet. It is applied after the default style. The stylesheets are applied in the order they are declared.

[!stylesheet]: path/to/style.css

Variables

Variables are prefixed with $. You can define and use variables like this:

Defining:

$varname = value
$fruit = apple

Using:

I'm eating an $fruit.

There are system variables that are prefixed with $$. Currently you can use

variable value example value
$now current datetime 31.07.2019 21:03:47
$date current date 31.07.2019
$time current time 21:03:47

Configuration file

You can also define plugins, stylesheets and other stuff by using a mdconf.json file in the same directory as the main markdown file. Example config:

{ // everything is optional
  "extends": "full", // extend from predefined configurations
  "format": "A4",
  "plugins": [
    "emoji",
    "footnote",
    "markdown-it-multimd-table"
  ],
  "stylesheets": [
    "customstyle.css"
  ]
}

Predefined configurations

config type
full includes all plugins

Plugins

Plugin Name Markdown-it plugin
emoji markdown-it-emoji
footnote markdown-it-footnote
anchor markdown-it-anchor
mark markdown-it-mark
sub markdown-it-sub
attrs markdown-it-attrs
abbr markdown-it-abbr
checkbox markdown-it-checkbox
imsize markdown-it-imsize
highlightjs markdown-it-highlightjs
smartarrows markdown-it-smartarrows
plantuml markdown-it-plantuml
math markdown-it-math
div markdown-it-div
kbd markdown-it-kbd
video markdown-it-video
underline markdown-it-underline
multimd-table markdown-it-multimd-table
toc-done-right markdown-it-toc-done-right
center-text markdown-it-center-text
header-sections markdown-it-header-sections
task-checkbox markdown-it-task-checkbox
implicit-figures markdown-it-implicit-figures