Skip to content

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.

License

Notifications You must be signed in to change notification settings

lukehler/grunt-slice-front

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.1 Fixed task's name. Made almost all plugins optional.
  • 1.0.0 Started by cloning grunt-slice-markdown 0.3.2.

License

BSD

About

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.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%