Dzięki Marked mogę łatwo zastąpić/dodać/zmienić zasady lexera podczas implementacji i to świetnie! Na przykład mogę zmusić do wykorzystania przestrzeń pomiędzy hash podpisać tekst, aby nagłówek tak:jak napisać niestandardową regułę InlineLexer dla marked.js?
var lexer = new marked.Lexer(options);
console.log(lexer);
lexer.rules.heading = /^\s*(#{1,6})\s+([^\n]+?) *#* *(?:\n+|$)/
console.log(marked.parser(lexer.lex('#hashtag?'), options));
//<p>#hashtag?</p>
console.log(marked.parser(lexer.lex('# heading?'), options));
//<h1 id="undefinedheading-">heading?</h1>
Cool!
Ale czy istnieje sposób, aby łatwo zrobić to samo dla inlineLexer
? Muszę sprawić, że ludzie będą mogli dodawać obrazy z następną sekwencją: %[My Image](http://example.com/img.jpg)
? Więc zmodyfikowałem:
var inlineLexer = marked.InlineLexer;
inlineLexer.rules.link = /^[!%]{0,1}?\[((?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*)\]\(\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*\)/;
...
Co mam zrobić dalej? Jak powiązać niestandardowy inlineLexer z zaznaczonym wystąpieniem? Pokaż mi, jak to zrobić! Jak mogę zmodyfikować/dodać niestandardowe reguły lexera?
Proszę spojrzeć na to [wydanie] (https://github.com/chjj/marked/issues/504) gdzie opublikowałem moje rozwiązanie. – Rugal