grunt-slice-front

1.0.4 • Public • Published

grunt-slice-front

Build status Dependencies devDependencies NPM version

Slices a Markdown file in segments separating a front matter in YAML, generates HTML, and applies a template to the result. Useful to generate web pages.

Getting Started

This plugin requires Grunt ~0.4.5

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-slice-front --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-slice-front');

The "slice_front" task

Overview

In your project's Gruntfile, add a section named slice_front to the data object passed into grunt.initConfig().

grunt.initConfig({
  slice_front: {
    plain: {
      options: {
        markdownItOptions: {
          html: true,
          linkify: true
        },
        templateParams: {
          title: "Demo"
        }
      },
      src:  "tests/demo.md",
      dest: "tests/demo-plain.html"
    }
  }
});

Documentation

Please consult Wiki.

Grunt Options

{
    // options.splitter is a regex that separates the sections of the markdown document.
    splitter:     /^(?:\-(?:\s*\-){2,})|(?:_(?:\s*_){2,})|(?:\*(?:\s*\*){2,})\s*$/gm,
 
    // options.templateFile is, unsurprisingly, a path to the template file.
    templateFile: path.resolve(__dirname, "../resources/template.jst"),
 
    // options.templateOptions is a Lodash.template options object. See https://lodash.com/docs#template.
    templateOptions = {},
 
    // options.templateParams is an arbitrary hash of task-wide variables, made available to the template as params.
    templateParams  = {},
 
    // options.markdownItOptions is a hash of MarkdownIt options.
    markdownItOptions = {
        typographer: true,
        html:        true
    }
}

Template Variables

The task exposes three different variables to the template file:

  • page is a hash of all the YAML variables.
  • body is an array of the markdown content and each item in the array a string of converted HTML.
  • params is a hash of the data in options.templateParams.

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

Release History

  • 1.0.4 Refreshed dependencies.
  • 1.0.3 Bugfix by @lukehler to support embedded folders, and reduce dependencies.
  • 1.0.2 Switched to js-yaml from yaml. Less plugins included by default. New version.
  • 1.0.1 Fixed task's name. Made almost all plugins optional.
  • 1.0.0 Started by cloning grunt-slice-markdown 0.3.2.

License

BSD

Dependencies (5)

Dev Dependencies (12)

Package Sidebar

Install

npm i grunt-slice-front

Weekly Downloads

1

Version

1.0.4

License

BSD-3-Clause

Last publish

Collaborators

  • elazutkin