mirror of
https://github.com/open-policy-agent/opa.git
synced 2026-08-23 16:55:48 -06:00
fa9ae9437c
The gitbook install has been incredibly flaky due to it's dependency on npm. This commit simply vendors the node_modules so that each time we build the site the process doesn't have to re-run gitbook install. Signed-off-by: Torin Sandall <torinsandall@gmail.com>
70 lines
1.7 KiB
JavaScript
Executable File
70 lines
1.7 KiB
JavaScript
Executable File
var escape = require('html-escape');
|
|
var hljs = require('highlight.js');
|
|
|
|
var getParams = function (header, param) {
|
|
var regex = new RegExp(param + '=([\\s\\S]+?)[\\s,%]', 'mg');
|
|
if (!header.match(regex)) {
|
|
return null;
|
|
} else {
|
|
var attr = header.match(regex)[0]
|
|
.replace(regex, '$1')
|
|
.replace(/^\'/, '"')
|
|
.replace(/'$/, '"');
|
|
return JSON.parse(attr);
|
|
}
|
|
};
|
|
|
|
var map = {
|
|
'c_cpp': 'c'
|
|
};
|
|
|
|
module.exports = {
|
|
|
|
website: {
|
|
assets: "./assets",
|
|
css: [
|
|
"ace.css"
|
|
],
|
|
js: [
|
|
"ace/ace.js",
|
|
"ace.js"
|
|
]
|
|
},
|
|
|
|
ebook: {
|
|
assets: "./assets",
|
|
css: [
|
|
"pdf.css"
|
|
]
|
|
},
|
|
|
|
hooks: {
|
|
'page:before': function (page) {
|
|
var self = this;
|
|
var blocks = page.content.match(/{%ace[\s\S]*?%}[\s\S]*?{%endace%}/mg);
|
|
blocks && blocks.forEach(function (block) {
|
|
var newBody = block;
|
|
var header = block.replace(/{%ace[\s\S]*?%}/mg, '$&');
|
|
var body = block.replace(/{%ace[\s\S]*?%}([\s\S]*?){%endace%}/mg, '$1').trim();
|
|
var config = {
|
|
edit: getParams(header, 'edit') || false,
|
|
lang: getParams(header, 'lang') || 'c_cpp',
|
|
check: getParams(header, 'check') || false,
|
|
theme: getParams(header, 'theme') || false,
|
|
};
|
|
if (self.output.name === 'website') {
|
|
newBody = '<div class="ace"><div class="aceCode" data-config=' + JSON.stringify(config) + '>{%raw%}' + escape(body) + '{%endraw%}<br></div></div>';
|
|
} else {
|
|
config.lang = map[config.lang] || config.lang;
|
|
if (hljs.getLanguage(config.lang)) {
|
|
body = hljs.highlightAuto(body, [config.lang]).value;
|
|
}
|
|
newBody = '<pre><code class="hljs lang-' + config.lang + '">' + body + '</code></pre>';
|
|
}
|
|
page.content = page.content.replace(block, newBody);
|
|
});
|
|
return page;
|
|
}
|
|
}
|
|
};
|