@fedify/markdown-it-hashtag
TypeScript icon, indicating that this package has built-in type declarations

0.2.0 • Public • Published

@fedify/markdown-it-hashtag

JSR npm GitHub Actions

This is a markdown-it plugin that parses and renders Mastodon-style #hashtags. It converts, for example, #FooBar into a link:

<a href="#FooBar"><span class="hash">#</span><span class="tag">FooBar</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 { hashtag, spanHashAndTag } from "@fedify/markdown-it-hashtag";

const md = new MarkdownIt();
md.use(hashtag, {
  link: (tag: string) => `https://example.com/tags/${tag.substring(1)}`,
  linkAttributes: (handle: string) => ({ class: "hashtag" }),
  label: spanHashAndTag,
});

If you want to collect all hashtags in a document, you can pass an environment object to the render() method:

const env = {};
md.render(
  "Hello, #FooBar\n\n> #BazQux",
  env,
);
console.log(env.hashtags);  // ["#FooBar", "#BazQux"]

Installation

Deno

deno add @fedify/markdown-it-hashtag

Node.js

npm add @fedify/markdown-it-hashtag

Bun

bun add @fedify/markdown-it-hashtag

Package Sidebar

Install

npm i @fedify/markdown-it-hashtag

Weekly Downloads

40

Version

0.2.0

License

MIT

Unpacked Size

33.6 kB

Total Files

48

Last publish

Collaborators

  • hongminhee