markdownbars
v1.0.10
Published
Handlebars based markdown preprocessor
Downloads
10
Readme
markdownbars
Harndlebars on the cmdline with markdown helpers.
Usage: markdownbars -i input.hbs.md [-d data] [-o output.md]
Options:
--help, -h Generate help [boolean] [default: false]
--version Show version number [boolean]
--input, -i Input file [string] [required]
--output, -o Output file [string]
--data, -d Additional JSON data to pass into the template
[string] [default: "{}"]
install
npm install -g markdownbars
helpers
Markdownbars comes with a few convenience helpers useful for generating markdown files:
include
Usage:
{{include 'filename.tpl.md' context=obj noeval=true}}
Includes another file. You can optionally pass a context named parameter to change the context. The file will receive the data from the context as variables.
The noeval argument will disable evaluation of the file as a handlebars template - it will be included verbatim.
filetree
Usage:
{{filetree relativePath padding}}
- relativePath - the path of the directory relative to current file
- padding - how much to pad each item in the tree except the first one
Example:
{{filetree '.dir' 2}}
Will generate a tree list of all markdown files in 'dir'
glob
Usage:
{{#glob '*.md'}}
The file is {{@file}}
{{glob}}
Will glob each file as specified in the glob. Double star globs are also supported. For each file found it will execute the inner block with the private variable @file containing the relative path.
The globbing is done relative to the current file's directory.
frontmatter
Usage
{{frontmatter 'filename.md' 'fieldName'}}
Reads the frontmatter of the specified file and access the desired field
basename
Usage:
{{basename filename ext}}
Acts just like node's path.basename (will strip the file directory and specified extension)
file-exists
Typical usage:
{{#if (file-exists 'relative-path')}}
show something about this file
{{if}}
Will return true if the file exists. Typically only useful as a sub-expression.
concat
Typical Usage
{{#if (file-exists (concat @file 'OtherSegment'))}}
some output
{{if}}
Concatenate multiple strings into one. Normally this is not needed in handlebars, however in sub-expressions it may be necessary to pass a different argument
equals
Just a regular loose equality check, useful in sub-expressions
not
Inverts a boolean, e.g.
{{#if (not (file-exists 'file'))}}
Show content if file does not exist
{{if}}
and
Logical and, supports multiple operands
or
Logical OR, supports multiple operands
left-pad
Example Usage:
{{left-pad 2 (include 'othertemplate.md')}}
Useful to pad content produced by other helpers by the appropriate amount e.g. for lists.
cwd
Returns the current file's working directory, relative to the entrypoint file.