eleventy-plugin-emphasis v1.0.2
eleventy-plugin-emphasis
An Eleventy plugin for your Markdown syntax which puts you in control of your emphasis markup.
What is this plugin for?
Markdown provides several syntaxes for emphasizing your text:
*Single asterisks*get converted into<em>tags**Double asterisks**get converted into<strong>tags_Single underscores_get converted into<em>tags__Double underscores__get converted into<strong>tags
This syntax is redundant, and sometimes (once in a blue moon) you might want to use <b> and <i> tags instead of <strong> and <em>. Alternatively, maybe you'd like to use some of this syntax for other tags such as <mark>!
This plugin lets you configure which tag your Eleventy project's markdown-it Markdown parser uses for text surrounded by single asterisks, double asterisks, single underscores, and double underscores.
Setup
In your terminal, navigate into your Eleventy project and run the following:
npm install eleventy-plugin-emphasisThen, add this plugin to your Eleventy config file (.eleventy.js):
const emphasisOverrides = require('eleventy-plugin-emphasis');
module.exports = function (eleventyConfig) {
eleventyConfig.addPlugin(emphasisOverrides, {
// See Options API section below for full configuration options!
'_': 'i',
'__': 'b'
});
// return {...};
}I'm managing my own markdown-it instance!
If you're managing your own instance of markdown-it to provide other customizations to your Markdown parsing, you can supply that instance to eleventy-plugin-emphasis as the md property in your options object:
const markdownIt = require('markdown-it');
const emphasisOverrides = require('eleventy-plugin-emphasis');
module.exports = function (eleventyConfig) {
const markdown = markdownIt({html: true});
eleventyConfig.addPlugin(emphasisOverrides, {
'md': markdown,
'_': 'i',
'__': 'b'
});
eleventyConfig.setLibrary('md', markdown);
// return {...};
}Options API
All options are completely optional.
| Option | Default | Type | Purpose |
|---|---|---|---|
'md' | Object (instance of markdown-it) | Pass your own instance of markdown-it to configure. If not provided, the plugin will create its own instance using the same defaults as Eleventy. | |
'*' | 'em' | String (any valid HTML tag) | Tag to use when text is surrounded in a single asterisk like *this* |
'**' | 'strong' | String (any valid HTML tag) | Tag to use when text is surrounded in double asterisks like **this** |
'_' | 'em' | String (any valid HTML tag) | Tag to use when text is surrounded in a single underscore like _this_ |
'__' | 'strong' | String (any valid HTML tag) | Tag to use when text is surrounded in double underscores like __this__ |