This commit is contained in:
2025-05-12 05:38:44 +09:00
parent dced21c3f8
commit 6d78bfa46e
8120 changed files with 1161564 additions and 0 deletions

24
book/node_modules/kramed/lib/annotate/block.js generated vendored Normal file
View 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
View 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
View 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
View 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;