gr

gulp-remarkable

A gulp wrapper for the remarkable markdown parser (CommonMark spec).

Showing:

Popularity

Downloads/wk

97

GitHub Stars

10

Maintenance

Last Commit

4yrs ago

Contributors

5

Package

Dependencies

5

Size (min+gzip)

328.3KB

License

Type Definitions

Tree-Shakeable

No?

Categories

Readme

Gulp Remarkable NPM version Build Status Dependency Status

A gulp plugin for Remarkable - Markdown parser, done right. Fast and easy to extend. Supports CommonMark.

Installation

Install using npm:

$ npm install gulp-remarkable

See gulp-remarkable on npm.

Options

  • remarkableOptions {Object} Options to be passed to Remarkable
  • disable [Array] Options to be passed to md.core.ruler.disable
    • to use it, first remarkableOptions.typographer must be set to true
  • preset {String} Remarkable's preset, default full

Usage

Default Example

var gulp = require('gulp'),
    name = require('gulp-rename'),
    md   = require('gulp-remarkable');

gulp.task('md', function() {
  return gulp.src('file.md')
    .pipe(md({preset: 'commonmark'}))
    .pipe(name('file.html'))
    .pipe(gulp.dest('dist'));
});

gulp.task('default', ['md']);

Extended Example

var gulp = require('gulp'),
    name = require('gulp-rename'),
    md   = require('gulp-remarkable');

gulp.task('md', function() {
  return gulp.src('file.md')
    .pipe(md({
      preset: 'full',
      disable: ['replacements'],
      remarkableOptions: {
        typographer: true,
        linkify: true,
        breaks: true
      }
    }))
    .pipe(name('file.html'))
    .pipe(gulp.dest('dist'));
});

gulp.task('default', ['md']);

Using Plugins

gulp-remarkable accepts one or two parameters: options and an optional function that accepts gulpRemarkable object.

var gulp = require('gulp')
var md = require('gulp-remarkable')

return gulp.src(globMarkdown)
    .pipe(md(opts, (m=>{
      m.renderer.rules.heading_open = headingAnchorRendererPlugin
    })))

function headingAnchorRendererPlugin(tokens, idx ) {
  if (tokens[idx+1].type == 'inline') {
    let heading_anchor = slug(tokens[idx+1].content, {lower: true})
    return '<h' + tokens[idx].hLevel + ' id="' + heading_anchor + '">';
  }
  return '<h' + tokens[idx].hLevel + '>';
}

Run tests

$ npm test

Authors & Contributors

John Otander

Charlike Mike Reagent author tips

Evans Jahja

License MIT license

Copyright (c) 2014 John Otander, contributors.
Released under the MIT license.

Acknowledgements

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100