summaryrefslogtreecommitdiffstats
path: root/lib/templating
diff options
context:
space:
mode:
authorSamy Pesse <samypesse@gmail.com>2016-05-04 19:01:31 +0200
committerSamy Pesse <samypesse@gmail.com>2016-05-04 19:01:31 +0200
commitc4b54033cefe54f2c7fda92b8765ed500178ea74 (patch)
tree14b83ff6b7950f542dfff4dfa9c6c676209631bb /lib/templating
parent4d85d6eb6e12192146e8f2450f1bddada6e6f6d1 (diff)
downloadgitbook-c4b54033cefe54f2c7fda92b8765ed500178ea74.zip
gitbook-c4b54033cefe54f2c7fda92b8765ed500178ea74.tar.gz
gitbook-c4b54033cefe54f2c7fda92b8765ed500178ea74.tar.bz2
Fix #1268: fix shortcuts of template block not being applied
Diffstat (limited to 'lib/templating')
-rw-r--r--lib/templating/listShortcuts.js17
-rw-r--r--lib/templating/replaceShortcuts.js10
2 files changed, 15 insertions, 12 deletions
diff --git a/lib/templating/listShortcuts.js b/lib/templating/listShortcuts.js
index 8f2388b..12d09ad 100644
--- a/lib/templating/listShortcuts.js
+++ b/lib/templating/listShortcuts.js
@@ -7,25 +7,26 @@ var parsers = require('../parsers');
@param {TemplateEngine} engine
@param {String} filePath
- @return {List<Shortcut>}
+ @return {List<TemplateShortcut>}
*/
function listShortcuts(engine, filePath) {
var blocks = engine.getBlocks();
var parser = parsers.getForFile(filePath);
+
if (!parser) {
return Immutable.List();
}
return blocks
.map(function(block) {
- var shortcuts = block.getShortcuts();
-
- return shortcuts.filter(function(shortcut) {
- var parsers = shortcut.get('parsers');
- return parsers.includes(parser.name);
- });
+ return block.getShortcuts();
})
- .flatten(1);
+ .filter(function(shortcuts) {
+ return (
+ shortcuts &&
+ shortcuts.acceptParser(parser.getName())
+ );
+ });
}
module.exports = listShortcuts;
diff --git a/lib/templating/replaceShortcuts.js b/lib/templating/replaceShortcuts.js
index f6a51cb..66ddff3 100644
--- a/lib/templating/replaceShortcuts.js
+++ b/lib/templating/replaceShortcuts.js
@@ -8,16 +8,18 @@ var listShortcuts = require('./listShortcuts');
@return {String}
*/
function applyShortcut(content, shortcut) {
- var tags = shortcut.get('tag');
- var start = shortcut.get('start');
- var end = shortcut.get('end');
+ var start = shortcut.getStart();
+ var end = shortcut.getEnd();
+
+ var tagStart = shortcut.getStartTag();
+ var tagEnd = shortcut.getEndTag();
var regex = new RegExp(
escapeStringRegexp(start) + '([\\s\\S]*?[^\\$])' + escapeStringRegexp(end),
'g'
);
return content.replace(regex, function(all, match) {
- return '{% ' + tags.start + ' %}' + match + '{% ' + tags.end + ' %}';
+ return '{% ' + tagStart + ' %}' + match + '{% ' + tagEnd + ' %}';
});
}