fix
This commit is contained in:
24
book/node_modules/kramed/lib/annotate/block.js
generated
vendored
Normal file
24
book/node_modules/kramed/lib/annotate/block.js
generated
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
var rules = require('../rules/block').tables;
|
||||
|
||||
var engine = require('./engine');
|
||||
|
||||
// List of all the regexes we want to run
|
||||
var ruleTypes = [
|
||||
'newline', 'code', 'fences', 'footnote', 'heading',
|
||||
'nptable', 'lheading', 'hr', 'blockquote', 'list',
|
||||
'html', 'def', 'table', 'paragraph', 'text',
|
||||
];
|
||||
|
||||
// Mapping if rule type is different from token type
|
||||
var ruleMap = {
|
||||
'nptable': 'table',
|
||||
'lheading': 'heading',
|
||||
'newline': 'space',
|
||||
'fences': 'code',
|
||||
};
|
||||
|
||||
function annotate(src) {
|
||||
return engine(src, rules, ruleTypes, ruleMap);
|
||||
}
|
||||
|
||||
module.exports = annotate;
|
44
book/node_modules/kramed/lib/annotate/engine.js
generated
vendored
Normal file
44
book/node_modules/kramed/lib/annotate/engine.js
generated
vendored
Normal file
@ -0,0 +1,44 @@
|
||||
function annotateEngine(src, rules, ruleTypes, ruleMap) {
|
||||
var tokens = [];
|
||||
|
||||
while(src) {
|
||||
// Pick rule
|
||||
var rule = ruleTypes.filter(function(ruleName, idx) {
|
||||
var regex = rules[ruleName];
|
||||
return regex.exec(src);
|
||||
})[0];
|
||||
|
||||
// No matching rules
|
||||
if(!rule) {
|
||||
throw new Error('No rule found for: ' + src);
|
||||
}
|
||||
|
||||
// Use rule to extract block
|
||||
var ruleRegex = rules[rule];
|
||||
var block = ruleRegex.exec(src);
|
||||
|
||||
// Get rule type
|
||||
var type = ruleMap[rule] || rule;
|
||||
|
||||
// Get raw text
|
||||
var raw = block[0];
|
||||
|
||||
// Break out here to avoid infinite loops
|
||||
if(raw.length === 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
tokens.push({
|
||||
type: ruleMap[rule] || rule,
|
||||
raw: raw,
|
||||
matches: block.slice(1),
|
||||
});
|
||||
|
||||
// Update source
|
||||
src = src.substring(raw.length);
|
||||
}
|
||||
|
||||
return tokens;
|
||||
}
|
||||
|
||||
module.exports = annotateEngine;
|
10
book/node_modules/kramed/lib/annotate/index.js
generated
vendored
Normal file
10
book/node_modules/kramed/lib/annotate/index.js
generated
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
var blocks = require('./block');
|
||||
var inline = require('./inline');
|
||||
|
||||
function annotate(src) {
|
||||
return blocks(src);
|
||||
}
|
||||
|
||||
module.exports = annotate;
|
||||
module.exports.blocks = blocks;
|
||||
module.exports.inline = inline;
|
18
book/node_modules/kramed/lib/annotate/inline.js
generated
vendored
Normal file
18
book/node_modules/kramed/lib/annotate/inline.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
var rules = require('../rules/inline').gitbook;
|
||||
var engine = require('./engine');
|
||||
|
||||
// List of all the regexes we want to run
|
||||
var ruleTypes = [
|
||||
'escape', 'autolink', 'url', 'html', 'link', 'reflink',
|
||||
'nolink', 'reffn', 'strong', 'em', 'code', 'br',
|
||||
'del', 'tplexpr', 'tplvar', 'text'
|
||||
];
|
||||
|
||||
// Mapping if rule type is different from token type
|
||||
var ruleMap = {};
|
||||
|
||||
function annotate(src) {
|
||||
return engine(src, rules, ruleTypes, ruleMap);
|
||||
}
|
||||
|
||||
module.exports = annotate;
|
Reference in New Issue
Block a user