Fixed Obsidian Highlights parser

This commit is contained in:
Emile Bangma 2024-09-19 12:32:09 +00:00
parent e464dc9ced
commit f83ca160b8

View File

@ -2,7 +2,7 @@ import { QuartzParserPlugin } from "../../types"
import { ReplaceFunction, findAndReplace as mdastFindReplace } from "mdast-util-find-and-replace" import { ReplaceFunction, findAndReplace as mdastFindReplace } from "mdast-util-find-and-replace"
import { JSResource } from "../../../util/resources" import { JSResource } from "../../../util/resources"
import { Root } from "mdast" import { Root } from "mdast"
import { PluggableList } from "unified" import { Pluggable } from "unified"
interface Options { interface Options {
enabled: Boolean enabled: Boolean
@ -25,27 +25,27 @@ export const ObsidianHighlights: QuartzParserPlugin<Partial<Options>> = (userOpt
return src return src
}, },
markdownPlugins(_ctx) { markdownPlugins(_ctx) {
return [ const plug: Pluggable = (tree: Root, _path) => {
(tree: Root) => { if (opts.enabled) {
if (opts.enabled) { const replacements: [RegExp, string | ReplaceFunction][] = []
const replacements: [RegExp, string | ReplaceFunction][] = [] replacements.push([
replacements.push([ highlightRegex,
highlightRegex, (_value: string, ...capture: string[]) => {
(_value: string, ...capture: string[]) => { const [inner] = capture
const [inner] = capture return {
return { type: "html",
type: "html", value: `<span class="text-highlight">${inner}</span>`,
value: `<span class="text-highlight">${inner}</span>`, }
} },
}, ])
]) mdastFindReplace(tree, replacements)
mdastFindReplace(tree, replacements) }
} }
}, return plug
] as PluggableList
}, },
htmlPlugins(_ctx) { htmlPlugins(_ctx) {
return [] as PluggableList const plug: Pluggable = () => {}
return plug
}, },
externalResources(_ctx) { externalResources(_ctx) {
const js = [] as JSResource[] const js = [] as JSResource[]