diff options
author | Samy Pessé <samypesse@gmail.com> | 2014-06-06 20:00:38 +0200 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2014-06-06 20:00:38 +0200 |
commit | 57491e3a8bbd20672fe80198f2bf8325c1f3e149 (patch) | |
tree | 82a923ce48ccb40a5060c1adb3be8df2ac4dd659 /lib/generate/template.js | |
parent | f7a442d297d3914b9e2bfea7709fd38e41a40e2a (diff) | |
download | gitbook-57491e3a8bbd20672fe80198f2bf8325c1f3e149.zip gitbook-57491e3a8bbd20672fe80198f2bf8325c1f3e149.tar.gz gitbook-57491e3a8bbd20672fe80198f2bf8325c1f3e149.tar.bz2 |
Improve meta tags for books
Diffstat (limited to 'lib/generate/template.js')
-rw-r--r-- | lib/generate/template.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/generate/template.js b/lib/generate/template.js new file mode 100644 index 0000000..a4ac4fd --- /dev/null +++ b/lib/generate/template.js @@ -0,0 +1,47 @@ +var path = require("path"); +var swig = require('swig'); +var hljs = require('highlight.js'); + +var pkg = require('../../package.json'); + +swig.setDefaults({ + locals: { + gitbook: { + version: pkg.version + } + } +}); + +// Swig filter for returning the count of lines in a code section +swig.setFilter('lines', function(content) { + return content.split('\n').length; +}); + +// Swig filter for returning a link to the associated html file of a markdown file +swig.setFilter('mdLink', function(link) { + var link = link.replace(".md", ".html"); + if (link == "README.html") link = "index.html"; + return link; +}); + + +// Swig filter: highlight coloration +swig.setFilter('code', function(code, lang) { + try { + return hljs.highlight(lang, code).value; + } catch(e) { + return hljs.highlightAuto(code).value; + } +}); + +// Convert a level into a deep level +swig.setFilter('lvl', function(lvl) { + return lvl.split(".").length; +}); + +// Join path +swig.setFilter('pathJoin', function(base, _path) { + return path.join(base, _path); +}); + +module.exports = swig; |