Nougat Predominant Middleware

    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/markdown-it-external-links package

    0.0.6 • Public • Published

    markdown-it-external-links Build Status

    npm version Dependency Status devDependency Status

    Plugin for markdown-it that adds CSS classes to links that fall outside of the specified internal domain(s).

    Example input:

    - [Internal Link A](/)
    - [Internal Link B](//
    - [Internal Link C](
    - [Internal Link D](other-page.html)
    - [Internal Link E](.././other-page.html)
    - [External Link A](//
    - [External Link B](

    Output (without internal link class - default):

      <li><a href="/">Internal Link A</a></li>
      <li><a href="//">Internal Link B</a></li>
      <li><a href="">Internal Link C</a></li>
      <li><a href="other-page.html">Internal Link D</a></li>
      <li><a href=".././other-page.html">Internal Link E</a></li>
      <li><a href="//" class="external-link">External Link A</a></li>
      <li><a href="" class="external-link">External Link B</a></li>

    Output (with internal link class):

      <li><a href="/" class="internal-link">Internal Link A</a></li>
      <li><a href="//" class="internal-link">Internal Link B</a></li>
      <li><a href="" class="internal-link">Internal Link C</a></li>
      <li><a href="other-page.html" class="internal-link">Internal Link D</a></li>
      <li><a href=".././other-page.html" class="internal-link">Internal Link E</a></li>
      <li><a href="//" class="external-link">External Link A</a></li>
      <li><a href="" class="external-link">External Link B</a></li>


    $ npm install --save markdown-it-external-links


    var md = require('markdown-it')();
    var externalLinks = require('markdown-it-external-links');
    md.use(externalLinks, {
      externalClassName: "custom-external-link",
      internalClassName: "custom-internal-link",
      internalDomains: [ "" ]
    var input = '[Some External Link](';
    var output = md.render(input);


    Option Type Default Description
    externalClassName string | null "external-link" External class to use for external links. Specify a value of null to disable output.
    internalClassName string | null null Internal class to use for external links. Specify a value of null to disable output.
    internalDomains string[] [] An array of domains that are considered internal. Example Value: [ "" ]
    externalTarget string "_self" Target attribute for external links.
    internalTarget string "_self" Target attribute for internal links.
    externalRel string null Rel attribute for external links.
    internalRel string null Rel attribute for internal links.

    Contribution Agreement

    This project is licensed under the MIT license (see LICENSE). To be in the best position to enforce these licenses the copyright status of this project needs to be as simple as possible. To achieve this the following terms and conditions must be met:

    • All contributed content (including but not limited to source code, text, image, videos, bug reports, suggestions, ideas, etc.) must be the contributors own work.

    • The contributor disclaims all copyright and accepts that their contributed content will be released to the public domain.

    • The act of submitting a contribution indicates that the contributor agrees with this agreement. This includes (but is not limited to) pull requests, issues, tickets, e-mails, newsgroups, blogs, forums, etc.


    npm i markdown-it-external-links

    DownloadsWeekly Downloads






    Last publish


    • kruncher