Skip to content

Latest commit

 

History

History
140 lines (78 loc) · 3 KB

README.md

File metadata and controls

140 lines (78 loc) · 3 KB

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.