Added anchors for document headings

This commit is contained in:
Jori Lallo
2016-05-29 15:22:33 -07:00
parent 249c67011a
commit 4f630aadc8
5 changed files with 57 additions and 2 deletions

View File

@ -1,14 +1,27 @@
import slug from 'slug';
import truncate from 'truncate-html';
import marked, { Renderer } from 'marked';
import highlight from 'highlight.js';
slug.defaults.mode ='rfc3986';
const renderer = new Renderer();
renderer.code = (code, language) => {
const validLang = !!(language && highlight.getLanguage(language));
const highlighted = validLang ? highlight.highlight(language, code).value : code;
return `<pre><code class="hljs ${language}">${highlighted}</code></pre>`;
};
renderer.heading = (text, level) => {
const headingSlug = slug(text);
return `
<h${level}>
<a name="${headingSlug}" class="anchor" href="#${headingSlug}">
<span class="header-link">&nbsp;</span>
</a>
${text}
</h${level}>
`;
},
marked.setOptions({
renderer: renderer,