| | |
| | | import { QuartzTransformerPlugin } from "../types" |
| | | import { Root, Html, Image, BlockContent, DefinitionContent, Paragraph, Code } from "mdast" |
| | | import { Root, Html, BlockContent, DefinitionContent, Paragraph, Code } from "mdast" |
| | | import { Element, Literal, Root as HtmlRoot } from "hast" |
| | | import { ReplaceFunction, findAndReplace as mdastFindReplace } from "mdast-util-find-and-replace" |
| | | import { slug as slugAnchor } from "github-slugger" |
| | |
| | | "g", |
| | | ) |
| | | const highlightRegex = new RegExp(/==([^=]+)==/, "g") |
| | | const commentRegex = new RegExp(/%%(.+)%%/, "g") |
| | | const commentRegex = new RegExp(/%%[\s\S]*?%%/, "g") |
| | | // from https://github.com/escwxyz/remark-obsidian-callout/blob/main/src/index.ts |
| | | const calloutRegex = new RegExp(/^\[\!(\w+)\]([+-]?)/) |
| | | const calloutLineRegex = new RegExp(/^> *\[\!\w+\][+-]?.*$/, "gm") |
| | |
| | | return { |
| | | name: "ObsidianFlavoredMarkdown", |
| | | textTransform(_ctx, src) { |
| | | // do comments at text level |
| | | if (opts.comments) { |
| | | if (src instanceof Buffer) { |
| | | src = src.toString() |
| | | } |
| | | |
| | | src = src.replace(commentRegex, "") |
| | | } |
| | | |
| | | // pre-transform blockquotes |
| | | if (opts.callouts) { |
| | | if (src instanceof Buffer) { |
| | |
| | | ]) |
| | | } |
| | | |
| | | if (opts.comments) { |
| | | replacements.push([ |
| | | commentRegex, |
| | | (_value: string, ..._capture: string[]) => { |
| | | return { |
| | | type: "text", |
| | | value: "", |
| | | } |
| | | }, |
| | | ]) |
| | | } |
| | | |
| | | if (opts.parseArrows) { |
| | | replacements.push([ |
| | | arrowRegex, |