const hljs = require('highlight.js'); hljs.registerLanguage('xml', require('highlight.js/lib/languages/xml.js')); hljs.registerLanguage('css', require('highlight.js/lib/languages/css.js')); hljs.registerLanguage('cmake', require('highlight.js/lib/languages/cmake.js')); hljs.registerLanguage('dockerfile', require('highlight.js/lib/languages/dockerfile.js')); hljs.registerLanguage('Dockerfile', require('highlight.js/lib/languages/dockerfile.js')); hljs.registerLanguage('less', require('highlight.js/lib/languages/less.js')); hljs.registerLanguage('scss', require('highlight.js/lib/languages/scss.js')); hljs.registerLanguage('yaml', require('highlight.js/lib/languages/yaml.js')); hljs.registerLanguage('yml', require('highlight.js/lib/languages/yaml.js')); hljs.registerLanguage('powershell', require('highlight.js/lib/languages/powershell.js')); hljs.registerLanguage('javascript', require('highlight.js/lib/languages/javascript.js')); hljs.registerLanguage('js', require('highlight.js/lib/languages/javascript.js')); hljs.registerLanguage('json', require('highlight.js/lib/languages/json.js')); hljs.registerLanguage('bash', require('highlight.js/lib/languages/shell.js')); hljs.registerLanguage('php', require('highlight.js/lib/languages/php.js')); hljs.registerLanguage('shell', require('highlight.js/lib/languages/shell.js')); hljs.registerLanguage('cmd', require('highlight.js/lib/languages/shell.js')); hljs.registerLanguage('typescript', require('highlight.js/lib/languages/typescript.js')); hljs.registerLanguage('ts', require('highlight.js/lib/languages/typescript.js')); hljs.registerLanguage('python', require('highlight.js/lib/languages/python.js')); hljs.registerLanguage('py', require('highlight.js/lib/languages/python.js')); const markdownRenderer = new marked.Renderer(); global.gitlist.markdownRenderer = markdownRenderer; const kebabCase = require('lodash/kebabCase') markdownRenderer.heading = function (text, level, raw) { level = level + 2; const ref = kebabCase(text).replace(/[^\x00-\xFF]/g, ""); const id = ref + '-parent'; const hover = ` onmouseenter="document.getElementById('${ref}').style.display = 'inline'" onmouseleave="document.getElementById('${ref}').style.display = 'none'" `; const element = `
${highlighted}
`;
};
markdownRenderer.codespan = (code) => {
const lang = 'html';
const highlighted = hljs.highlight(lang, code).value;
return `${highlighted}
`;
}
window.gitlist.markdownRenderer = markdownRenderer;
$(function () {
const mdContent = $('#p3x-gitlist-readme');
if (mdContent.length) {
const twemojiSettings = require('./settings').twemoji;
const html = marked(mdContent.text(), {
renderer: markdownRenderer
});
mdContent.html(twemoji.parse(html, twemojiSettings));
}
});
window.gitlist.renderMarkdown = (options) => {
const {markdown} = options;
const twemojiSettings = require('./settings').twemoji;
const markedHtml = marked(markdown, {
renderer: window.gitlist.markdownRenderer
});
const html = twemoji.parse(markedHtml, twemojiSettings)
return html;
}