mirror of
				https://github.com/ZetaKebab/quartz.git
				synced 2025-11-04 06:49:49 +00:00 
			
		
		
		
	feat: custom global latex macros (closes #1325)
This commit is contained in:
		@@ -12,6 +12,7 @@ This plugin adds LaTeX support to Quartz. See [[features/Latex|Latex]] for more
 | 
			
		||||
This plugin accepts the following configuration options:
 | 
			
		||||
 | 
			
		||||
- `renderEngine`: the engine to use to render LaTeX equations. Can be `"katex"` for [KaTeX](https://katex.org/) or `"mathjax"` for [MathJax](https://www.mathjax.org/) [SVG rendering](https://docs.mathjax.org/en/latest/output/svg.html). Defaults to KaTeX.
 | 
			
		||||
- `customMacros`: custom macros for all LaTeX blocks. It takes the form of a key-value pair where the key is a new command name and the value is the expansion of the macro. For example: `{"\\R": "\\mathbb{R}"}`
 | 
			
		||||
 | 
			
		||||
## API
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -5,10 +5,16 @@ import { QuartzTransformerPlugin } from "../types"
 | 
			
		||||
 | 
			
		||||
interface Options {
 | 
			
		||||
  renderEngine: "katex" | "mathjax"
 | 
			
		||||
  customMacros: MacroType
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
interface MacroType {
 | 
			
		||||
  [key: string]: string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export const Latex: QuartzTransformerPlugin<Options> = (opts?: Options) => {
 | 
			
		||||
  const engine = opts?.renderEngine ?? "katex"
 | 
			
		||||
  const macros = opts?.customMacros ?? {}
 | 
			
		||||
  return {
 | 
			
		||||
    name: "Latex",
 | 
			
		||||
    markdownPlugins() {
 | 
			
		||||
@@ -16,9 +22,9 @@ export const Latex: QuartzTransformerPlugin<Options> = (opts?: Options) => {
 | 
			
		||||
    },
 | 
			
		||||
    htmlPlugins() {
 | 
			
		||||
      if (engine === "katex") {
 | 
			
		||||
        return [[rehypeKatex, { output: "html" }]]
 | 
			
		||||
        return [[rehypeKatex, { output: "html", macros }]]
 | 
			
		||||
      } else {
 | 
			
		||||
        return [rehypeMathjax]
 | 
			
		||||
        return [[rehypeMathjax, { macros }]]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    externalResources() {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user