@gerhobbelt/markdown-it-for-inline
v0.1.2-1
Published
Inline tokens iterator for markdown-it markdown parser.
Downloads
14
Maintainers
Readme
markdown-it-for-inline
Inline tokens iterator for markdown-it markdown parser.
This plugin allows to apply function to certain types of inline tokens. Speed will not be the fastest possible, but you can do quick prototyping of certain rule types.
Usage
Install
node.js, browser:
npm install @gerhobbelt/markdown-it-for-inline --save
bower install @gerhobbelt/markdown-it-for-inline --save
Use
var iterator = require('@gerhobbelt/markdown-it-for-inline');
// plugin params are:
//
// - rule name (should be unique)
// - token type to apply
// - function
//
var md = require('@gerhobbelt/markdown-it')()
.use(iterator, 'foo_replace', 'text', function (tokens, idx) {
tokens[idx].content = tokens[idx].content.replace(/foo/g, 'bar');
});
Differences in browser. If you load script directly into the page, without
package system, module will add itself globally as window.markdownitForInline
.
Example 2. Cut link prefixes
var iterator = require('@gerhobbelt/markdown-it-for-inline');
var md = require('@gerhobbelt/markdown-it')({ linkify: true })
.use(iterator, 'url_beautify', 'link_open', function (tokens, idx) {
// Make sure link contains only text
if ((tokens[idx + 2].type !== 'link_close') ||
(tokens[idx + 1].type !== 'text')) {
return;
}
// Do replacement
tokens[idx + 1].content = tokens[idx + 1].content
.replace(/^https?:\/\//, '')
.replace(/^www./, '');
});
Example 3. Make links open in new window
var iterator = require('@gerhobbelt/markdown-it-for-inline');
var md = require('@gerhobbelt/markdown-it')({ linkify: true })
.use(iterator, 'url_new_win', 'link_open', function (tokens, idx) {
tokens[idx].attrPush([ 'target', '_blank' ]);
});