UNPKG

gulp-remarkable

Version:

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

189 lines (139 loc) 5.86 kB
# Gulp Remarkable [![NPM version][npmjs-shields]][npmjs-url] [![Build Status][travis-img]][travis-url] [![Dependency Status][depstat-img]][depstat-url] A [gulp](http://gulpjs.com) plugin for [Remarkable][remarkable-url] - Markdown parser, done right. Fast and easy to extend. Supports [CommonMark][commonmark-url]. ## Installation Install using [npm](https://npmjs.org): ``` $ npm install gulp-remarkable ``` See [gulp-remarkable on npm][npmjs-url]. ## 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** ```js 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** ```js 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. ```js 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** + [github/johnotander][author-github] + [twitter/4lpine][author-twitter] + [npmjs/johno][author-npmjs] + [more ...][author-more] **Charlike Mike Reagent** [![author tips][author2-gittip-img]][author2-gittip] + [gittip/tunnckoCore][author2-gittip] + [github/tunnckoCore][author2-github] + [twitter/tunnckoCore][author2-twitter] + [npmjs/tunnckoCore][author2-npmjs] + [more ...][author2-more] **Evans Jahja** + [github/Charon77][contrib-github] ## License [![MIT license][license-img]][license-url] Copyright (c) 2014 [John Otander][author-website], [contributors](https://github.com/johnotander/gulp-remarkable/graphs/contributors). Released under the [`MIT`][license-url] license. ## Acknowledgements * Markdown parsing done by remarkable: <https://github.com/jonschlinkert/remarkable> * Markdown spec defined by CommonMark: <http://commonmark.org> * Test script adapted from: <https://github.com/sindresorhus/gulp-markdown/blob/master/test.js> ## 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 [downloads-img]: http://img.shields.io/npm/dm/gulp-remarkable.svg [npm-required-version-img]: http://img.shields.io/badge/npm-%3E=%201.4.28-blue.svg [node-required-version-img]: https://img.shields.io/node/v/gulp-remarkable.svg [node-required-version-url]: http://nodejs.org/download/ [npmjs-url]: http://npm.im/gulp-remarkable [npmjs-fury]: https://badge.fury.io/js/gulp-remarkable.svg [npmjs-shields]: https://img.shields.io/npm/v/gulp-remarkable.svg [npmjs-install]: https://nodei.co/npm/gulp-remarkable.svg?mini=true [coveralls-url]: https://coveralls.io/r/johnotander/gulp-remarkable?branch=master [coveralls-shields]: https://img.shields.io/coveralls/johnotander/gulp-remarkable.svg [license-url]: https://github.com/johnotander/gulp-remarkable/blob/master/license.md [license-img]: http://img.shields.io/badge/license-MIT-blue.svg [travis-url]: https://travis-ci.org/johnotander/gulp-remarkable [travis-img]: https://travis-ci.org/johnotander/gulp-remarkable.svg?branch=master [depstat-url]: https://david-dm.org/johnotander/gulp-remarkable [depstat-img]: https://david-dm.org/johnotander/gulp-remarkable.svg [ferver-img]: http://img.shields.io/badge/using-ferver-585858.svg [ferver-url]: https://github.com/jonathanong/ferver [author-github]: https://github.com/johnotander [author-twitter]: https://twitter.com/4lpine [author-website]: http://johnotander.com [author-npmjs]: https://npmjs.org/~johno [author-more]: http://johnotander.com [author2-gittip-img]: http://img.shields.io/gittip/tunnckoCore.svg [author2-gittip]: https://www.gittip.com/tunnckoCore [author2-github]: https://github.com/tunnckoCore [author2-twitter]: https://twitter.com/tunnckoCore [author2-website]: http://www.whistle-bg.tk [author2-npmjs]: https://npmjs.org/~tunnckocore [author2-more]: http://j.mp/1stW47C [contrib-github]: https://github.com/Charon77 [cobody-url]: https://github.com/tj/co-body [mocha-url]: https://github.com/tj/mocha [rawbody-url]: https://github.com/stream-utils/raw-body [multer-url]: https://github.com/expressjs/multer [express-url]: https://github.com/strongloop/express [formidable-url]: https://github.com/felixge/node-formidable [co-url]: https://github.com/tj/co [extend-url]: https://github.com/justmoon/node-extend [csp-report]: https://mathiasbynens.be/notes/csp-reports [remarkable-url]: https://github.com/jonschlinkert/remarkable [commonmark-url]: http://commonmark.org