Utilities for extracting and replacing GitHub Flavored Markdown code blocks. For example, you could easily find code blocks for a specific language and run the code through a linter.
npm install extract-gfm
> Utilities for extracting and replacing GitHub Flavored Markdown code blocks. For example, you could easily find code blocks for a specific language and run the code through a linter.
See the example for ideas.
``bash`
npm i extract-gfm --save-dev
`bash`
npm test
`js`
var extract = require('extract-gfm');
extract.parseBlocks('abc\njs\nvar foo = "bar";\n`\nxyz');`
Returns:
`js`
{ text: 'abc\n__CODE_BLOCK0__\nxyz',
blocks:
[ { lang: 'js',
code: 'var foo = "bar";',
block: 'js\nvar foo = "bar";\n`' } ],`
markers: [ '__CODE_BLOCK0__' ] }
* str {String}: Original string with gfm code blocks. returns
* : {String}
Strip code blocks from a string and replaced them with
heuristic markers.
* str {String}: The string to parse. returns
* : {Array}
Return an array of all gfm code blocks found.
See [gfm-code-blocks] for more detail.
Convenience method to make it easy to replace code blocks.
* str {String}: The string to parse. returns
* : {Object}
Returns an object with:
- text: the string stripped of code blocks, where each blockblocks
is replaced with a heuristic marker.
- : An array of code blocks, using the .extractBlocks() method.markers
- : An array of heuristic markers to be used for adding code blocks back.
Example
`js`
var code = require('extract-gfm');
var fs = require('fs');
var str = fs.readFileSync('README.md', 'utf8');
console.log(code.parseBlocks(str));
Used for adding code blocks back into the string after they have been modified somehow.
* str {String}: A string with heuristic markers to replace. object
* {String}: Object created by .parseBlocks() returns
* {String}: Updated string, with shiny new code blocks.
To customize how this is done, just look at the injectBlocks`
method and create your own based on this. .parseBlocks()
really does all of the hard work.
Jon Schlinkert
+ github/jonschlinkert
+ twitter/jonschlinkert
*
_This file was generated by verb-cli on September 23, 2014._
[gfm-code-blocks]: https://github.com/jonschlinkert/gfm-code-blocks