fix
This commit is contained in:
96
book/node_modules/kramed/lib/rules/inline.js
generated
vendored
Normal file
96
book/node_modules/kramed/lib/rules/inline.js
generated
vendored
Normal file
@ -0,0 +1,96 @@
|
||||
var _utils = require('../utils');
|
||||
var replace = _utils.replace;
|
||||
var merge = _utils.merge;
|
||||
var noop = _utils.noop;
|
||||
|
||||
/**
|
||||
* Inline-Level Grammar
|
||||
*/
|
||||
|
||||
var inline = {
|
||||
escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/,
|
||||
autolink: /^<([^ >]+(@|:\/)[^ >]+)>/,
|
||||
url: noop,
|
||||
html: /^<!--[\s\S]*?-->|^<(\w+(?!:\/|[^\w\s@]*@)\b)*?(?:"[^"]*"|'[^']*'|[^'">])*?>([\s\S]*?)?<\/\1>|^<(\w+(?!:\/|[^\w\s@]*@)\b)(?:"[^"]*"|'[^']*'|[^'">])*?>/,
|
||||
link: /^!?\[(inside)\]\(href\)/,
|
||||
reflink: /^!?\[(inside)\]\s*\[([^\]]*)\]/,
|
||||
nolink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,
|
||||
reffn: /^!?\[\^(inside)\]/,
|
||||
strong: /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,
|
||||
em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
|
||||
code: /^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,
|
||||
br: /^ {2,}\n(?!\s*$)/,
|
||||
del: noop,
|
||||
text: /^[\s\S]+?(?=[\\<!\[_*`$]| {2,}\n|$)/,
|
||||
math: /^\$\$\s*([\s\S]*?[^\$])\s*\$\$(?!\$)/,
|
||||
};
|
||||
|
||||
inline._inside = /(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/;
|
||||
inline._href = /\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/;
|
||||
|
||||
inline.link = replace(inline.link)
|
||||
('inside', inline._inside)
|
||||
('href', inline._href)
|
||||
();
|
||||
|
||||
inline.reflink = replace(inline.reflink)
|
||||
('inside', inline._inside)
|
||||
();
|
||||
|
||||
inline.reffn = replace(inline.reffn)
|
||||
('inside', inline._inside)
|
||||
();
|
||||
|
||||
/**
|
||||
* Normal Inline Grammar
|
||||
*/
|
||||
|
||||
inline.normal = merge({}, inline);
|
||||
|
||||
/**
|
||||
* Pedantic Inline Grammar
|
||||
*/
|
||||
|
||||
inline.pedantic = merge({}, inline.normal, {
|
||||
strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
|
||||
em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/
|
||||
});
|
||||
|
||||
/**
|
||||
* GFM Inline Grammar
|
||||
*/
|
||||
|
||||
inline.gfm = merge({}, inline.normal, {
|
||||
escape: replace(inline.escape)('])', '~|])')(),
|
||||
url: /^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,
|
||||
del: /^~~(?=\S)([\s\S]*?\S)~~/,
|
||||
text: replace(inline.text)
|
||||
(']|', '~]|')
|
||||
('|', '|https?://|')
|
||||
()
|
||||
});
|
||||
|
||||
/**
|
||||
* GitBook Grammar
|
||||
*/
|
||||
inline.gitbook = merge({}, inline.gfm, {
|
||||
// Template variable
|
||||
tplvar: /^{{\s*(.*?)\s*(?=}})}}/,
|
||||
|
||||
// Template expression
|
||||
tplexpr: /^{%\s*(.*?)\s*(?=%})%}/,
|
||||
});
|
||||
inline.gitbook.text = replace(inline.gfm.text)
|
||||
('~]|', '~]|'+inline.gitbook.tplvar.source+'|'+inline.gitbook.tplexpr.source+'|')
|
||||
();
|
||||
|
||||
/**
|
||||
* GFM + Line Breaks Inline Grammar
|
||||
*/
|
||||
|
||||
inline.breaks = merge({}, inline.gfm, {
|
||||
br: replace(inline.br)('{2,}', '*')(),
|
||||
text: replace(inline.gfm.text)('{2,}', '*')()
|
||||
});
|
||||
|
||||
module.exports = inline;
|
Reference in New Issue
Block a user