@fedify/markdown-it-mention
v0.3.0
Published
A markdown-it plugin that parses and renders Mastodon-style @mentions.
Maintainers
Readme
@fedify/markdown-it-mention
This is a markdown-it plugin that parses and renders Mastodon-style @mentions,
e.g., @[email protected]. It converts them to a link, e.g.:
<a href="acct:@[email protected]"><span class="at">@</span><span
class="user">username</span></a>The value of href attributes, other attributes (if any), and the content of
the link can be customized by passing options to the plugin:
import MarkdownIt from "markdown-it";
import { mention, toFullHandle } from "@fedify/markdown-it-mention";
const md = new MarkdownIt();
md.use(mention, {
link: (handle: string, env: any) => `https://example.com/${handle}`,
linkAttributes: (handle: string, env: any) => ({ class: "mention" }),
label: toFullHandle,
});[!TIP] The
linkcallback can returnnullto disable the link.
If you want to collect all the handles mentioned in the document, you can pass
the environment object to the render() method:
const env = {};
md.render(
"# Hello, @[email protected]\n\n> @[email protected]",
env,
);
console.log(env.mentions); // ["@[email protected]", "@[email protected]"]Installation
Deno
deno add jsr:@fedify/markdown-it-mentionNode.js
npm add @fedify/markdown-it-mentionBun
bun add @fedify/markdown-it-mention