diff options
Diffstat (limited to 'app/assets/javascripts/lib/gfm/index.js')
-rw-r--r-- | app/assets/javascripts/lib/gfm/index.js | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/app/assets/javascripts/lib/gfm/index.js b/app/assets/javascripts/lib/gfm/index.js index 4e704eb69b2..b4f941294de 100644 --- a/app/assets/javascripts/lib/gfm/index.js +++ b/app/assets/javascripts/lib/gfm/index.js @@ -1,10 +1,33 @@ import { unified } from 'unified'; import remarkParse from 'remark-parse'; -import remarkRehype from 'remark-rehype'; +import remarkGfm from 'remark-gfm'; +import remarkRehype, { all } from 'remark-rehype'; import rehypeRaw from 'rehype-raw'; const createParser = () => { - return unified().use(remarkParse).use(remarkRehype, { allowDangerousHtml: true }).use(rehypeRaw); + return unified() + .use(remarkParse) + .use(remarkGfm) + .use(remarkRehype, { + allowDangerousHtml: true, + handlers: { + footnoteReference: (h, node) => + h( + node.position, + 'footnoteReference', + { identifier: node.identifier, label: node.label }, + [], + ), + footnoteDefinition: (h, node) => + h( + node.position, + 'footnoteDefinition', + { identifier: node.identifier, label: node.label }, + all(h, node), + ), + }, + }) + .use(rehypeRaw); }; const compilerFactory = (renderer) => |