markdown-code-blocks

0.0.1 • Public • Published

markdown-code-blocks

A through stream that extracts code from Markdown content, optionally selecting only code blocks of a selected type.

Currently this only works with GFM-style fenced code blocks, I don't have a need for indentation based blocks (yet). This README file makes a nice example:

$ markdown-code-blocks -t javascript < ./README.md

Will output:

var fs = require('fs')
var assert = require('assert')
var concat = require('concat-stream')
var markdownCodeBlocks = require('./')
 
var readme = fs.createReadStream(__dirname + '/README.md', 'utf8')
 
readme.pipe(markdownCodeBlocks('javascript')).pipe(concat(function (code) {
  // Writing code that asserts it's own contents is kind of tricky...
  assert.deepEqual(code.toString().split('\n').slice(0, 10), [
    "var fs = require('fs')",
    "var assert = require('assert')",
    "var concat = require('concat-stream')",
    "var markdownCodeBlocks = require('./')",
    "",
    "var readme = fs.createReadStream(__dirname + '/README.md', 'utf8')",
    "",
    "readme.pipe(markdownCodeBlocks('javascript')).pipe(concat(function (code) {",
    "  // Writing code that asserts it's own contents is kind of tricky...",
    "  assert.deepEqual(code.toString().split('\\n').slice(0, 10), ["
  ])
}))

Which you can pipe into node to verify that this module is working:

$ markdown-code-blocks -t javascript < README.md | node

API

module.exports = (types: String|Array<String>) => Transform<String, String>

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i markdown-code-blocks

Weekly Downloads

13

Version

0.0.1

License

MIT

Last publish

Collaborators

  • grncdr