This commit is contained in:
saberzero1 2024-10-31 19:38:58 +01:00
parent f5ac658376
commit f64e277ca2
No known key found for this signature in database
GPG Key ID: 41AEE99107640F10
6 changed files with 46 additions and 4 deletions

View File

@ -59,7 +59,8 @@ const config: QuartzConfig = {
}, },
}, },
plugins: { plugins: {
transformers: Presets.DefaultPreset(), //transformers: Presets.DefaultPreset(),
transformers: Presets.ObsidianPreset(),
filters: [Plugin.RemoveDrafts()], filters: [Plugin.RemoveDrafts()],
emitters: [ emitters: [
Plugin.AliasRedirects(), Plugin.AliasRedirects(),

View File

@ -7,7 +7,7 @@ import * as Resources from "../resources"
export const DefaultPreset: QuartzTransformerPlugin = () => { export const DefaultPreset: QuartzTransformerPlugin = () => {
return { return {
textTransformers: [ textTransformers: [
Text.ObsidianFlavoredMarkdownComments(), Text.HtmlComments(),
Text.ObsidianFlavoredMarkdownCallouts(), Text.ObsidianFlavoredMarkdownCallouts(),
Text.ObsidianFlavoredMarkdownWikilinks(), Text.ObsidianFlavoredMarkdownWikilinks(),
], ],

View File

@ -7,6 +7,7 @@ import * as Resources from "../resources"
export const ObsidianPreset: QuartzTransformerPlugin = () => { export const ObsidianPreset: QuartzTransformerPlugin = () => {
return { return {
textTransformers: [ textTransformers: [
Text.HtmlComments(),
Text.ObsidianFlavoredMarkdownComments(), Text.ObsidianFlavoredMarkdownComments(),
Text.ObsidianFlavoredMarkdownCallouts(), Text.ObsidianFlavoredMarkdownCallouts(),
Text.ObsidianFlavoredMarkdownWikilinks(), Text.ObsidianFlavoredMarkdownWikilinks(),

View File

@ -0,0 +1,28 @@
import { TextTransformerPlugin } from "../../types"
const commentRegex = new RegExp(/<!--.*?-->/gms)
const codeBlockRegex = new RegExp(/(```.*?```)/gms)
export const HtmlComments: TextTransformerPlugin = () => {
return {
name: "ObsidianFlavoredMarkdownComments",
transformation(_ctx, src) {
// do comments at text level
if (src instanceof Buffer) {
src = src.toString()
} // capture all codeblocks before parsing comments
const codeBlocks = Array.from(src.matchAll(codeBlockRegex), (x) => x[1].toString())
src = src.replaceAll(codeBlockRegex, "###codeblockplaceholder###")
src = src.replaceAll(commentRegex, "")
// Restore codeblocks
codeBlocks.forEach((codeblock) => {
src = src.replace("###codeblockplaceholder###", codeblock)
})
return src
},
}
}

View File

@ -1,3 +1,4 @@
export { HtmlComments } from "./htmlComments"
export { ObsidianFlavoredMarkdownCallouts } from "./ofmCallouts" export { ObsidianFlavoredMarkdownCallouts } from "./ofmCallouts"
export { ObsidianFlavoredMarkdownComments } from "./ofmComments" export { ObsidianFlavoredMarkdownComments } from "./ofmComments"
export { ObsidianFlavoredMarkdownWikilinks } from "./ofmWikilinks" export { ObsidianFlavoredMarkdownWikilinks } from "./ofmWikilinks"

View File

@ -1,6 +1,7 @@
import { TextTransformerPlugin } from "../../types" import { TextTransformerPlugin } from "../../types"
const commentRegex = new RegExp(/%%[\s\S]*?%%/g) const commentRegex = new RegExp(/%%.*?%%/gms)
const codeBlockRegex = new RegExp(/(```.*?```)/gms)
export const ObsidianFlavoredMarkdownComments: TextTransformerPlugin = () => { export const ObsidianFlavoredMarkdownComments: TextTransformerPlugin = () => {
return { return {
@ -11,7 +12,17 @@ export const ObsidianFlavoredMarkdownComments: TextTransformerPlugin = () => {
src = src.toString() src = src.toString()
} }
src = src.replace(commentRegex, "") // capture all codeblocks before parsing comments
const codeBlocks = Array.from(src.matchAll(codeBlockRegex), (x) => x[1].toString())
src = src.replaceAll(codeBlockRegex, "###codeblockplaceholder###")
src = src.replaceAll(commentRegex, "")
// Restore codeblocks
codeBlocks.forEach((codeblock) => {
src = src.replace("###codeblockplaceholder###", codeblock)
})
return src return src
}, },