🚀 DAY 1 OF LAUNCH WEEK: Reachability for Ruby Now in Beta.Learn more →
Socket
Book a DemoInstallSign in
Socket

markdown-it-modify-token

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

markdown-it-modify-token

markdown-it plugin for modifying tokens in a markdown document. It can for example modify content or attributes for certain type of elements like links or images.

latest
Source
npmnpm
Version
1.0.2
Version published
Maintainers
1
Created
Source

markdown-it-modify-token

markdown-it plugin for modifying tokens including content or element attributes in the markdown document. For example it can modify image or link attributes.

Usage

Enable plugin

var md = require('markdown-it')({
  modifyToken: function (token, env) {
    // see API https://markdown-it.github.io/markdown-it/#Token
    // token will also have an attrObj property added for convenience
    // which allows easy get and set of attribute values.
    // It is prepopulated with the current attr values.
    // Values returned in token.attrObj will override existing attr values.
    // env will contain any properties passed to markdown-it's render
    // Token can be modified in place, no return is necessary
    switch (token.type) {
    case 'image': // set all images to 200px width except for foo.gif
      if (token.attrObj.src !== 'foo.gif') {
        token.attrObj.width = '200px';
      }
      break;
    case 'link_open':
      token.attrObj.target = '_blank'; // set all links to open in new window
      break;
    }
  }
}).use(require('markdown-it-modify-token')); // <-- this use(package_name) is required

Example

[Hello](test)
![Image](foo.gif)

with this config

var md = require('markdown-it')({
  modifyToken: function (token, env) {
    switch (token.type) {
    case 'image': // set all images to 200px width
      token.attrObj.width = '200px';
      break;
    case 'link_open':
      token.attrObj.target = '_blank'; // set all links to open in new window
      break;
    }
  }
}).use(require('markdown-it-modify-token')); // <-- this use(package_name) is required

Will result in roughly

<a href="test" target="_blank">Hello</a>
<img src="foo.gif" width="200px"/>

Due to the token types we are handling in our switch statement, we can affect both image and link attributes.

Testing

npm test

Inspiration

Thanks to Martin Heidegger for https://github.com/martinheidegger/markdown-it-replace-link which I used as a starting point for building this plugin.

Keywords

markdown

FAQs

Package last updated on 13 Feb 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts