Skip to content

pantoken / renderers/rehype/src / rehypePantokenIcons

Function: rehypePantokenIcons()

rehypePantokenIcons(options?): (tree) => void

Experimental

A rehype plugin factory. Returns a transformer that rewrites :code: tokens to inline SVG.

Parameters

options?

RehypeOptions = {}

RehypeOptions.

Returns

A unified/rehype transformer.

(tree) => void

Examples

Built-in icon set

ts
import { unified } from "unified";
import rehypeParse from "rehype-parse";
import rehypeRaw from "rehype-raw";
import rehypeStringify from "rehype-stringify";
import { rehypePantokenIcons } from "@pantoken/rehype";

const html = await unified()
  .use(rehypeParse, { fragment: true })
  .use(rehypePantokenIcons)
  .use(rehypeRaw) // required: the icon body is a raw SVG node
  .use(rehypeStringify)
  .process("go :arrow-left: back");

Compose a brand-icon plugin's resolver

ts
import { rehypePantokenIcons } from "@pantoken/rehype";
import { simpleIcons } from "@pantoken/plugin-simple-icons";
import * as registry from "simple-icons";

unified().use(rehypePantokenIcons, { plugins: [simpleIcons({ registry })] });
// :github: now resolves from simple-icons; unknown codes stay literal text.