问题描述
我想有条件地忽略一些令牌,所以我写道:
5
我收到错误消息:
var md = require("markdown-it")();
var mk = require("@iktakahiro/markdown-it-katex");
var mkit = require("markdown-it");
md.use(mk);
import Renderer from "markdown-it/lib/renderer";
let renderer = new Renderer()
markdown = `
# Title
## Ignored section
I am ignored...
## Other section
...
`
tokens = md.parse(markdown)
tokens = process_tokens(tokens)
console.log(renderer.render(token)) // <-----
在Error TypeError: Cannot read property 'breaks' of undefined
renderer.js:108
是否可以分两步进行降价促销?
default_rules.softbreak = function (tokens,idx,options /*,env */) {
return options.breaks ? (options.xhtmlOut ? '<br />\n' : '<br>\n') : '\n'; // <----
};
在此示例中,我将具有以下标记:
markdown -1-> tokens -2-> html
在检测到要删除的0: Token {type: "heading_open",tag: "h1",attrs: null,map: Array(2),nesting: 1,…}
1: Token {type: "inline",tag: "",nesting: 0,…}
2: Token {type: "heading_close",map: null,nesting: -1,…}
3: Token {type: "heading_open",tag: "h2",…}
4: Token {type: "inline",…}
5: Token {type: "heading_close",…}
6: Token {type: "paragraph_open",tag: "p",…}
7: Token {type: "inline",…}
8: Token {type: "paragraph_close",…}
9: Token {type: "heading_open",…}
10: Token {type: "inline",…}
11: Token {type: "heading_close",…}
12: Token {type: "paragraph_open",…}
13: Token {type: "inline",…}
14: Token {type: "paragraph_close",…}
后,我得到了:
h2
解决方法
您不需要实例化另一个渲染器。您的问题是render
需要md
中的选项:
tokens = md.parse(markdown)
md.renderer.render(tokens,md.options)