mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-20 03:14:06 -06:00
added support for mathml generation in the latex plugin
This commit is contained in:
parent
e7d2a57aad
commit
883fef95cf
24
package-lock.json
generated
24
package-lock.json
generated
@ -10,6 +10,7 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@clack/prompts": "^0.11.0",
|
"@clack/prompts": "^0.11.0",
|
||||||
|
"@daiji256/rehype-mathml": "^1.2.1",
|
||||||
"@floating-ui/dom": "^1.7.4",
|
"@floating-ui/dom": "^1.7.4",
|
||||||
"@myriaddreamin/rehype-typst": "^0.6.0",
|
"@myriaddreamin/rehype-typst": "^0.6.0",
|
||||||
"@napi-rs/simple-git": "0.1.22",
|
"@napi-rs/simple-git": "0.1.22",
|
||||||
@ -196,6 +197,20 @@
|
|||||||
"sisteransi": "^1.0.5"
|
"sisteransi": "^1.0.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@daiji256/rehype-mathml": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@daiji256/rehype-mathml/-/rehype-mathml-1.2.1.tgz",
|
||||||
|
"integrity": "sha512-E1119EsVo1nORP0iO5S4/CKpXSKYNwdHSitxoowOGsqzYXuG/jgMINEyMNVidTQkWZ39tm7JrAbV+pCXIDsEZw==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/hast": "^3.0.0",
|
||||||
|
"hast-util-from-html-isomorphic": "^2.0.0",
|
||||||
|
"hast-util-to-text": "^4.0.0",
|
||||||
|
"temml": "^0.11.0",
|
||||||
|
"unified": "^11.0.0",
|
||||||
|
"unist-util-visit-parents": "^6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@emnapi/runtime": {
|
"node_modules/@emnapi/runtime": {
|
||||||
"version": "1.5.0",
|
"version": "1.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz",
|
||||||
@ -6772,6 +6787,15 @@
|
|||||||
"node": ">=14"
|
"node": ">=14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/temml": {
|
||||||
|
"version": "0.11.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/temml/-/temml-0.11.11.tgz",
|
||||||
|
"integrity": "sha512-Z/Ihgwad+ges0ez6+KmKWZ3o4BYbP6aZ/cU94cVtN+DwxwqxjHgcF4Z6cb9jLkKN+aU7uni165HsIxLHs5/TqA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18.13.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/tiny-inflate": {
|
"node_modules/tiny-inflate": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz",
|
||||||
|
|||||||
@ -36,6 +36,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@clack/prompts": "^0.11.0",
|
"@clack/prompts": "^0.11.0",
|
||||||
|
"@daiji256/rehype-mathml": "^1.2.1",
|
||||||
"@floating-ui/dom": "^1.7.4",
|
"@floating-ui/dom": "^1.7.4",
|
||||||
"@myriaddreamin/rehype-typst": "^0.6.0",
|
"@myriaddreamin/rehype-typst": "^0.6.0",
|
||||||
"@napi-rs/simple-git": "0.1.22",
|
"@napi-rs/simple-git": "0.1.22",
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
import remarkMath from "remark-math"
|
import remarkMath from "remark-math"
|
||||||
import rehypeKatex from "rehype-katex"
|
import rehypeKatex from "rehype-katex"
|
||||||
import rehypeMathjax from "rehype-mathjax/svg"
|
import rehypeMathjax from "rehype-mathjax/svg"
|
||||||
|
import rehypeMathML from "@daiji256/rehype-mathml"
|
||||||
//@ts-ignore
|
//@ts-ignore
|
||||||
import rehypeTypst from "@myriaddreamin/rehype-typst"
|
import rehypeTypst from "@myriaddreamin/rehype-typst"
|
||||||
import { QuartzTransformerPlugin } from "../types"
|
import { QuartzTransformerPlugin } from "../types"
|
||||||
@ -10,17 +11,22 @@ import { Options as MathjaxOptions } from "rehype-mathjax/svg"
|
|||||||
import { Options as TypstOptions } from "@myriaddreamin/rehype-typst"
|
import { Options as TypstOptions } from "@myriaddreamin/rehype-typst"
|
||||||
|
|
||||||
interface Options {
|
interface Options {
|
||||||
renderEngine: "katex" | "mathjax" | "typst"
|
renderEngine: "katex" | "mathjax" | "typst" | "mathml"
|
||||||
customMacros: MacroType
|
customMacros: MacroType
|
||||||
katexOptions: Omit<KatexOptions, "macros" | "output">
|
katexOptions: Omit<KatexOptions, "macros" | "output">
|
||||||
mathJaxOptions: Omit<MathjaxOptions, "macros">
|
mathJaxOptions: Omit<MathjaxOptions, "macros">
|
||||||
typstOptions: TypstOptions
|
typstOptions: TypstOptions
|
||||||
|
mathMLOptions: MathMLOptions
|
||||||
}
|
}
|
||||||
|
|
||||||
interface MacroType {
|
interface MacroType {
|
||||||
[key: string]: string
|
[key: string]: string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface MathMLOptions {
|
||||||
|
macros?: MacroType
|
||||||
|
}
|
||||||
|
|
||||||
export const Latex: QuartzTransformerPlugin<Partial<Options>> = (opts) => {
|
export const Latex: QuartzTransformerPlugin<Partial<Options>> = (opts) => {
|
||||||
const engine = opts?.renderEngine ?? "katex"
|
const engine = opts?.renderEngine ?? "katex"
|
||||||
const macros = opts?.customMacros ?? {}
|
const macros = opts?.customMacros ?? {}
|
||||||
@ -40,6 +46,9 @@ export const Latex: QuartzTransformerPlugin<Partial<Options>> = (opts) => {
|
|||||||
case "mathjax": {
|
case "mathjax": {
|
||||||
return [[rehypeMathjax, { macros, ...(opts?.mathJaxOptions ?? {}) }]]
|
return [[rehypeMathjax, { macros, ...(opts?.mathJaxOptions ?? {}) }]]
|
||||||
}
|
}
|
||||||
|
case "mathml": {
|
||||||
|
return [[rehypeMathML, { macros, ...(opts?.mathMLOptions ?? {}) }]]
|
||||||
|
}
|
||||||
default: {
|
default: {
|
||||||
return [[rehypeMathjax, { macros, ...(opts?.mathJaxOptions ?? {}) }]]
|
return [[rehypeMathjax, { macros, ...(opts?.mathJaxOptions ?? {}) }]]
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user