toc-and-anchor.js 747 B

123456789101112131415161718192021222324252627
  1. import markdownItEmojiMart from 'markdown-it-emoji-mart';
  2. import markdownItToc from 'markdown-it-toc-and-anchor-with-slugid';
  3. import { emojiMartData } from './emoji-mart-data';
  4. export default class TocAndAnchorConfigurer {
  5. configure(md) {
  6. md.use(markdownItEmojiMart, { defs: emojiMartData })
  7. .use(markdownItToc, {
  8. tocLastLevel: 3,
  9. anchorLinkBefore: false,
  10. anchorLinkSymbol: '',
  11. anchorLinkSymbolClassName: 'icon-link',
  12. anchorClassName: 'revision-head-link',
  13. });
  14. // set toc render function
  15. md.set({
  16. tocCallback: (tocMarkdown, tocArray, tocHtml) => {
  17. // eslint-disable-next-line no-undef
  18. globalEmitter.emit('renderTocHtml', tocHtml);
  19. },
  20. });
  21. }
  22. }