# 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 ```markdown [!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 ```markdown [!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](#plugins) For example you can declare the use of `markdown-it-emoji` the following: ```markdown [!use]: emoji ``` ## Pages You can manage the pages that are exported to the pdf. A new page can be started with: ```markdown [!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: ```markdown ::: 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. ```markdown [!stylesheet]: path/to/style.css ``` ## Variables Variables are prefixed with `$`. They are case sensitive. 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 $$wordcount | words in the document | 200 All keys defined in the meta part of the `mdconfig.json` are also made available as system variables as long as they don't overide existing variables. ## Environments These environments need the `div` plugin to work. ``` :::multiline One linebreak in here Is one linebreak in the document. ::: :::centered Text is centered in here. ::: :::page This is rendered on one or more extra pages. ::: :::tabular | | --------------|-----------------|---------- only the body | of the table is | displayed and without | borders | ::: :::title Title page environment All text is bigger and is kept on one page (if possible). ::: ``` ## 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: ```json5 { // everything is optional "extends": "full", // extend from predefined configurations "format": "A4", "plugins": [ "emoji", "footnote", "markdown-it-multimd-table" ], "stylesheets": [ "customstyle.css" ], "meta": { // all values defined here are also global variables "author": "John Doe", "title": "Markdown is great", "subtitle": "Or is it?", "hey": "Vsauce, Michael here!" } } ``` ### 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