使用 markdown-it 解析 markdown 参考

Parse markdown reference with markdown-it

我正在使用 markdown-it 来解析降价文件。我的来源是这样的:

![Build Status][1]

[1]: https://travis-ci.org/paulmillr/es6-shim.svg

我一直在使用 MarkdownIt.parse 来获取解析的数据,但是现在它让我失望了。

TypeError: Cannot read property 'references' of undefined
    at Array.reference (/Users/thomas/Desktop/es6-shim/node_modules/markdown-it/lib/rules_block/reference.js:182:23)
    at ParserBlock.tokenize (/Users/thomas/Desktop/es6-shim/node_modules/markdown-it/lib/parser_block.js:79:20)
    at ParserBlock.parse (/Users/thomas/Desktop/es6-shim/node_modules/markdown-it/lib/parser_block.js:118:8)
    at Array.block (/Users/thomas/Desktop/es6-shim/node_modules/markdown-it/lib/rules_core/block.js:14:20)
    at Core.process (/Users/thomas/Desktop/es6-shim/node_modules/markdown-it/lib/parser_core.js:51:13)
    at MarkdownIt.parse (/Users/thomas/Desktop/es6-shim/node_modules/markdown-it/lib/index.js:493:13)
    at promiseRipple.processNodes (/Users/thomas/Desktop/es6-shim/test-markdown-it.js:317:23)
    at /Users/thomas/Desktop/es6-shim/promise-ripple.js:13:28
    at tryCatcher (/Users/thomas/Desktop/es6-shim/node_modules/bluebird/js/main/util.js:26:23)
    at ReductionPromiseArray._promiseFulfilled (/Users/thomas/Desktop/es6-shim/node_modules/bluebird/js/main/reduce.js:109:18)
    at Promise._settlePromiseAt (/Users/thomas/Desktop/es6-shim/node_modules/bluebird/js/main/promise.js:582:26)
    at Promise._settlePromises (/Users/thomas/Desktop/es6-shim/node_modules/bluebird/js/main/promise.js:693:14)
    at Async._drainQueue (/Users/thomas/Desktop/es6-shim/node_modules/bluebird/js/main/async.js:123:16)
    at Async._drainQueues (/Users/thomas/Desktop/es6-shim/node_modules/bluebird/js/main/async.js:133:10)
    at Immediate.Async.drainQueues [as _onImmediate] (/Users/thomas/Desktop/es6-shim/node_modules/bluebird/js/main/async.js:15:14)
    at processImmediate [as _immediateCallback] (timers.js:371:17)

有一个 markdown 的现场演示 here。我把我的来源放进去,它工作得很好。在该页面上有一个 debug 选项卡,那里有我期望的确切输出。

如何解决此错误并使用 markdown-it 获得预期的输出?

有没有我可以调用的另一种方法可以给我正确的输出?

似乎 MarkdownIt.parse 需要一个 env 并且它 直接绑定到引发错误的行

我使用的是 4.4.0 版(未在 NPM 上发布,主标签在 github 上)。

这是一些源代码:

var fs = require('fs')
var markdown = fs.readFileSync('./readme.md', 'utf8')
var MarkdownIt = require('markdown-it')
var md = new MarkdownIt()
var parsedMd = md.parse(markdown)

我相信这解决了问题:

var parsedMd = md.parse(markdown, {})