# All files / src/plugins/default markbind-plugin-anchors.ts

100% Statements 7/7
100% Branches 3/3
100% Functions 2/2
100% Lines 7/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    212x

    2x

    2x

    2x
    2x

    8x
    4x

     import cheerio from 'cheerio';
    import { MbNode } from '../../utils/node';
    import { PluginContext } from '../Plugin';

    const CSS_FILE_NAME = 'markbind-plugin-anchors.css';

    const HEADER_REGEX = /^h[1-6]$/;

    /**
     * Adds anchor links to headers
     */
    export = {
      getLinks: () => [`<link rel="stylesheet" href="${CSS_FILE_NAME}">`],
      postProcessNode: (_pluginContext: PluginContext, node: MbNode) => {
        if (HEADER_REGEX.test(node.name) && node.attribs.id) {
          cheerio(node).append(
            `<a class="fa fa-anchor" href="#${node.attribs.id}" onclick="event.stopPropagation()"></a>`);
        }
      },
    };