diff --git a/bun.lockb b/bun.lockb index 833fb13..66ea51f 100644 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/src/index.ts b/src/index.ts index 655cf86..78c175a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,6 +5,23 @@ import { toHtml } from "hast-util-to-html" import { toString } from 'mdast-util-to-string'; import { FindAndReplaceList, findAndReplace as mdastFindReplace } from "mdast-util-find-and-replace" +declare module 'mdast' +{ + interface Tag extends Literal { + type: "tag"; + data?: TagData | undefined; + } + interface TagData extends Data {} + interface PhrasingContentMap + { + tag: Tag; + } + interface RootContentMap + { + tag: Tag; + } +} + // !? -> optional embedding // \[\[ -> open brace // ([^\[\]\|\#]+) -> one or more non-special characters ([,],|, or #) (name) @@ -179,35 +196,14 @@ export default function ofm() { return false } - tag = slugTag(tag) - - if (!file.data) - file.data = {}; - - if (!file.data.frontmatter) - file.data.frontmatter = {}; - - if (!file.data.frontmatter.tags) - file.data.frontmatter.tags = []; - - if (file.data.frontmatter && !file.data.frontmatter.tags.includes(tag)) { - file.data.frontmatter.tags.push(tag) - } + tag = slugTag(tag); return { - type: "link", - url: `/tags#${tag}`, + type: "tag", + value: tag, data: { - hProperties: { - className: ["tag"], - }, - }, - children: [ - { - type: "text", - value: `#${tag}`, - }, - ], + hName: 'tag', + } } }, ])