@ruanyf/markdown-it-implicit-figures
v1.0.1
Published
Render images occurring by itself in a paragraph as `<figure><img ...></figure>`, similar to pandoc's implicit_figures
Downloads
6
Maintainers
Readme
This repo is forked from @arve0/markdown-it-implicit-figures, adding ESM support.
@ruanyf/markdown-it-implicit-figures
Render images occurring by itself in a paragraph as <figure><img ...></figure>, similar to pandoc's implicit figures.
Example input:
text with 

works with links too:
[](page.html)Output:
<p>text with <img src="img.png" alt=""></p>
<figure><img src="fig.png" alt=""></figure>
<p>works with links too:</p>
<figure><a href="page.html"><img src="fig.png" alt=""></a></figure>Install
$ npm install --save @ruanyf/markdown-it-implicit-figuresUsage
Load it in ES module.
import markdownit from 'markdown-it';
import implicitFigures from '@ruanyf/markdown-it-implicit-figures';
const md = markdownit();
md.use(implicitFigures, {
dataType: false, // <figure data-type="image">, default: false
figcaption: false, // <figcaption>alternative text</figcaption>, default: false
keepAlt: false // <img alt="alt text" .../><figcaption>alt text</figcaption>, default: false
lazyLoading: false, // <img loading="lazy" ...>, default: false
link: false // <a href="img.png"><img src="img.png"></a>, default: false
tabindex: false, // <figure tabindex="1+n">..., default: false
});
const src = 'text with \n\n\n\nanother paragraph';
const res = md.render(src);
console.log(res);Or load it in CommonJS module.
const md = require('markdown-it')();
const implicitFigures = require('markdown-it-implicit-figures');
md.use(implicitFigures, {
dataType: false, // <figure data-type="image">, default: false
figcaption: false, // <figcaption>alternative text</figcaption>, default: false
keepAlt: false // <img alt="alt text" .../><figcaption>alt text</figcaption>, default: false
lazyLoading: false, // <img loading="lazy" ...>, default: false
link: false // <a href="img.png"><img src="img.png"></a>, default: false
tabindex: false, // <figure tabindex="1+n">..., default: false
});
const src = 'text with \n\n\n\nanother paragraph';
const res = md.render(src);
console.log(res);Options
dataType: SetdataTypetotrueto declare the data-type being wrapped, e.g.:<figure data-type="image">. This can be useful for applying special styling for different kind of figures.figcaption: Setfigcaptiontotrueoraltto put the alternative text in a<figcaption>-block after the image. E.g.:renders to<figure> <img src="img.png" alt=""> <figcaption>text</figcaption> </figure>- Set
figcaptiontotitleto put the title text in a<figcaption>-block after the image. E.g.:renders to<figure> <img src="img.png" alt="text"> <figcaption>title</figcaption> </figure>
- Set
keepAlt: SetkeepAlttotrueto prevent it from being cleared when turned into afigcaption, E.g.:renders to<figure> <img src="img.png" alt="text"> <figcaption>text</figcaption> </figure>tabindex: Settabindextotrueto add atabindexproperty to each figure, beginning attabindex="1"and incrementing for each figure encountered. Could be used with this css-trick, which expands figures upon mouse-over.lazyLoading: SetlazyLoadingtotrueto addloading="lazy"to image element.link: Put a link around the image if there is none yet.copyAttrs: Copy attributes matching (RegExp or string)copyAttrstofigureelement.
License
MIT
