Co-authored-by: Aaron Pham <contact@aarnphm.xyz> Co-authored-by: Aaron Pham <Aaronpham0103@gmail.com>
This commit is contained in:
		
							parent
							
								
									92676d746e
								
							
						
					
					
						commit
						9188939b1f
					
				| @ -11,9 +11,13 @@ 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. | ||||
| - `renderEngine`: the engine to use to render LaTeX equations. Can be `"katex"` for [KaTeX](https://katex.org/), `"mathjax"` for [MathJax](https://www.mathjax.org/) [SVG rendering](https://docs.mathjax.org/en/latest/output/svg.html), or `"typst"` for [Typst](https://typst.app/) (a new way to compose LaTeX equation). 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}"}` | ||||
| 
 | ||||
| > [!note] Typst support | ||||
| > | ||||
| > Currently, typst doesn't support inline-math | ||||
| 
 | ||||
| ## API | ||||
| 
 | ||||
| - Category: Transformer | ||||
|  | ||||
							
								
								
									
										362
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										362
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -11,6 +11,7 @@ | ||||
|       "dependencies": { | ||||
|         "@clack/prompts": "^0.7.0", | ||||
|         "@floating-ui/dom": "^1.6.12", | ||||
|         "@myriaddreamin/rehype-typst": "^0.5.0-rc7", | ||||
|         "@napi-rs/simple-git": "0.1.19", | ||||
|         "@tweenjs/tween.js": "^25.0.0", | ||||
|         "async-mutex": "^0.5.0", | ||||
| @ -714,6 +715,220 @@ | ||||
|         "langium": "3.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@myriaddreamin/rehype-typst": { | ||||
|       "version": "0.5.0-rc7", | ||||
|       "resolved": "https://registry.npmjs.org/@myriaddreamin/rehype-typst/-/rehype-typst-0.5.0-rc7.tgz", | ||||
|       "integrity": "sha512-oIUmJzV8c+PZoV4TZwSupN9e06EaC2i0DpjU6NPe6y0HE7MoPOd35s6i+RjdSNPDguqBdP2MO4VaqnGahQW/ig==", | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "@myriaddreamin/typst-ts-node-compiler": "^0.5.0-rc7", | ||||
|         "@types/hast": "^3.0.0", | ||||
|         "@types/katex": "^0.16.0", | ||||
|         "hast-util-from-html-isomorphic": "^2.0.0", | ||||
|         "hast-util-to-text": "^4.0.0", | ||||
|         "https-proxy-agent": "^7.0.2", | ||||
|         "unist-util-visit-parents": "^6.0.0", | ||||
|         "vfile": "^6.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@myriaddreamin/typst-ts-node-compiler": { | ||||
|       "version": "0.5.0-rc8", | ||||
|       "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler/-/typst-ts-node-compiler-0.5.0-rc8.tgz", | ||||
|       "integrity": "sha512-RpMkKYyH7DDJwfX4hMhCkCbby5+rU7UMqRbCe6jmkvrW+FhW5YDxATYnRVEQLgRjbLwGDV5bECLr2/9no+Tn7A==", | ||||
|       "license": "Apache-2.0", | ||||
|       "engines": { | ||||
|         "node": ">= 10" | ||||
|       }, | ||||
|       "optionalDependencies": { | ||||
|         "@myriaddreamin/typst-ts-node-compiler-android-arm-eabi": "0.5.0-rc8", | ||||
|         "@myriaddreamin/typst-ts-node-compiler-android-arm64": "0.5.0-rc8", | ||||
|         "@myriaddreamin/typst-ts-node-compiler-darwin-arm64": "0.5.0-rc8", | ||||
|         "@myriaddreamin/typst-ts-node-compiler-darwin-x64": "0.5.0-rc8", | ||||
|         "@myriaddreamin/typst-ts-node-compiler-linux-arm-gnueabihf": "0.5.0-rc8", | ||||
|         "@myriaddreamin/typst-ts-node-compiler-linux-arm64-gnu": "0.5.0-rc8", | ||||
|         "@myriaddreamin/typst-ts-node-compiler-linux-arm64-musl": "0.5.0-rc8", | ||||
|         "@myriaddreamin/typst-ts-node-compiler-linux-x64-gnu": "0.5.0-rc8", | ||||
|         "@myriaddreamin/typst-ts-node-compiler-linux-x64-musl": "0.5.0-rc8", | ||||
|         "@myriaddreamin/typst-ts-node-compiler-win32-arm64-msvc": "0.5.0-rc8", | ||||
|         "@myriaddreamin/typst-ts-node-compiler-win32-x64-msvc": "0.5.0-rc8" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@myriaddreamin/typst-ts-node-compiler-android-arm-eabi": { | ||||
|       "version": "0.5.0-rc8", | ||||
|       "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-android-arm-eabi/-/typst-ts-node-compiler-android-arm-eabi-0.5.0-rc8.tgz", | ||||
|       "integrity": "sha512-gSd1Nw4FNGixQTRo4isntK2Utupu4yfKRMTgmB6aLn57GVf6Z6NDA4YLw0lQ8dNB4OYceX1wMXmjnoLZGiTk6Q==", | ||||
|       "cpu": [ | ||||
|         "arm" | ||||
|       ], | ||||
|       "license": "Apache-2.0", | ||||
|       "optional": true, | ||||
|       "os": [ | ||||
|         "android" | ||||
|       ], | ||||
|       "engines": { | ||||
|         "node": ">= 10" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@myriaddreamin/typst-ts-node-compiler-android-arm64": { | ||||
|       "version": "0.5.0-rc8", | ||||
|       "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-android-arm64/-/typst-ts-node-compiler-android-arm64-0.5.0-rc8.tgz", | ||||
|       "integrity": "sha512-1eSqCcLASxbdcicxFtYoXrBz4Rm7uhhWu/0DQ8Qo7bvNkzHuRtc4KkyuCZ6NCb/WzWuR4He20ySJZJRZurpgOQ==", | ||||
|       "cpu": [ | ||||
|         "arm64" | ||||
|       ], | ||||
|       "license": "Apache-2.0", | ||||
|       "optional": true, | ||||
|       "os": [ | ||||
|         "android" | ||||
|       ], | ||||
|       "engines": { | ||||
|         "node": ">= 10" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@myriaddreamin/typst-ts-node-compiler-darwin-arm64": { | ||||
|       "version": "0.5.0-rc8", | ||||
|       "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-darwin-arm64/-/typst-ts-node-compiler-darwin-arm64-0.5.0-rc8.tgz", | ||||
|       "integrity": "sha512-KKty+9lpfzogptuQs78JaFLijucrIdUxnYrCqWR2wHTgc0rnQaqHyec0HQ0oApNDc6u59xURebglQ/nHAVa+WQ==", | ||||
|       "cpu": [ | ||||
|         "arm64" | ||||
|       ], | ||||
|       "license": "Apache-2.0", | ||||
|       "optional": true, | ||||
|       "os": [ | ||||
|         "darwin" | ||||
|       ], | ||||
|       "engines": { | ||||
|         "node": ">= 10" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@myriaddreamin/typst-ts-node-compiler-darwin-x64": { | ||||
|       "version": "0.5.0-rc8", | ||||
|       "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-darwin-x64/-/typst-ts-node-compiler-darwin-x64-0.5.0-rc8.tgz", | ||||
|       "integrity": "sha512-e1P7GkyBV34h9eTDceZDC3qC0stDSN30R1gbZyniHOWu+qIKp0+RgQOLbkMj1Bk+vsOYGtb3zlqRJGEOCImz8w==", | ||||
|       "cpu": [ | ||||
|         "x64" | ||||
|       ], | ||||
|       "license": "Apache-2.0", | ||||
|       "optional": true, | ||||
|       "os": [ | ||||
|         "darwin" | ||||
|       ], | ||||
|       "engines": { | ||||
|         "node": ">= 10" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@myriaddreamin/typst-ts-node-compiler-linux-arm-gnueabihf": { | ||||
|       "version": "0.5.0-rc8", | ||||
|       "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-linux-arm-gnueabihf/-/typst-ts-node-compiler-linux-arm-gnueabihf-0.5.0-rc8.tgz", | ||||
|       "integrity": "sha512-HX19C6kWO8aeg+Ki4pQm2TTmYYLZEW653QwZEoCluAlX7O5HoGxCbsFLnE7v3+ag1dwBcoI2oH5czuKLI7GRvA==", | ||||
|       "cpu": [ | ||||
|         "arm" | ||||
|       ], | ||||
|       "license": "Apache-2.0", | ||||
|       "optional": true, | ||||
|       "os": [ | ||||
|         "linux" | ||||
|       ], | ||||
|       "engines": { | ||||
|         "node": ">= 10" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@myriaddreamin/typst-ts-node-compiler-linux-arm64-gnu": { | ||||
|       "version": "0.5.0-rc8", | ||||
|       "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-linux-arm64-gnu/-/typst-ts-node-compiler-linux-arm64-gnu-0.5.0-rc8.tgz", | ||||
|       "integrity": "sha512-ElCka7rGGnB5nmY/Ei6fhS8JWNFRJDTagW1NM2feGvEazpMxDOQDWPg/bUXnUp7RS68L67gyXJSNFlHNWJM6/w==", | ||||
|       "cpu": [ | ||||
|         "arm64" | ||||
|       ], | ||||
|       "license": "Apache-2.0", | ||||
|       "optional": true, | ||||
|       "os": [ | ||||
|         "linux" | ||||
|       ], | ||||
|       "engines": { | ||||
|         "node": ">= 10" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@myriaddreamin/typst-ts-node-compiler-linux-arm64-musl": { | ||||
|       "version": "0.5.0-rc8", | ||||
|       "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-linux-arm64-musl/-/typst-ts-node-compiler-linux-arm64-musl-0.5.0-rc8.tgz", | ||||
|       "integrity": "sha512-RbaI/i0rVzu2fyCcUPj89Zt/kmpHqJvxS/VRtbXR6xjXBUBisheRLvmWJrDdMMLf2mS0cwRPxQHGKCOSmB6U5A==", | ||||
|       "cpu": [ | ||||
|         "arm64" | ||||
|       ], | ||||
|       "license": "Apache-2.0", | ||||
|       "optional": true, | ||||
|       "os": [ | ||||
|         "linux" | ||||
|       ], | ||||
|       "engines": { | ||||
|         "node": ">= 10" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@myriaddreamin/typst-ts-node-compiler-linux-x64-gnu": { | ||||
|       "version": "0.5.0-rc8", | ||||
|       "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-linux-x64-gnu/-/typst-ts-node-compiler-linux-x64-gnu-0.5.0-rc8.tgz", | ||||
|       "integrity": "sha512-Mi2TruUZ97ZP920fMdvebRVYfMBxQZXnt14f0CqCy4tmg9sI7/ymBaGhT0vIo7A01cWr1DeTtoE4qUrOzXcDyA==", | ||||
|       "cpu": [ | ||||
|         "x64" | ||||
|       ], | ||||
|       "license": "Apache-2.0", | ||||
|       "optional": true, | ||||
|       "os": [ | ||||
|         "linux" | ||||
|       ], | ||||
|       "engines": { | ||||
|         "node": ">= 10" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@myriaddreamin/typst-ts-node-compiler-linux-x64-musl": { | ||||
|       "version": "0.5.0-rc8", | ||||
|       "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-linux-x64-musl/-/typst-ts-node-compiler-linux-x64-musl-0.5.0-rc8.tgz", | ||||
|       "integrity": "sha512-I/GTNDl3Pb9/TyBRPtJqXuykkZ3d07PrSxnUKo1CelpJCk6S3h1BY0vl/3OwpENWGzy0FJehzkF0F8//3XzCgg==", | ||||
|       "cpu": [ | ||||
|         "x64" | ||||
|       ], | ||||
|       "license": "Apache-2.0", | ||||
|       "optional": true, | ||||
|       "os": [ | ||||
|         "linux" | ||||
|       ], | ||||
|       "engines": { | ||||
|         "node": ">= 10" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@myriaddreamin/typst-ts-node-compiler-win32-arm64-msvc": { | ||||
|       "version": "0.5.0-rc8", | ||||
|       "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-win32-arm64-msvc/-/typst-ts-node-compiler-win32-arm64-msvc-0.5.0-rc8.tgz", | ||||
|       "integrity": "sha512-G0c+IqUDPdUDnTKyFl1ajf47oGgV1asc3aYtl23U71RK4R0ILnyycgGjE/5E8hD0CLodq5xMV+zW+17TZ4VX0A==", | ||||
|       "cpu": [ | ||||
|         "arm64" | ||||
|       ], | ||||
|       "license": "Apache-2.0", | ||||
|       "optional": true, | ||||
|       "os": [ | ||||
|         "win32" | ||||
|       ], | ||||
|       "engines": { | ||||
|         "node": ">= 10" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@myriaddreamin/typst-ts-node-compiler-win32-x64-msvc": { | ||||
|       "version": "0.5.0-rc8", | ||||
|       "resolved": "https://registry.npmjs.org/@myriaddreamin/typst-ts-node-compiler-win32-x64-msvc/-/typst-ts-node-compiler-win32-x64-msvc-0.5.0-rc8.tgz", | ||||
|       "integrity": "sha512-qlZXCfLDUm1btpESBa4onU2ky7ALwdj369dAmgslNKyOl5JN8RYcyf9Hm7fp8WeVlxVjH2/2zJgPysAHf+SSRw==", | ||||
|       "cpu": [ | ||||
|         "x64" | ||||
|       ], | ||||
|       "license": "Apache-2.0", | ||||
|       "optional": true, | ||||
|       "os": [ | ||||
|         "win32" | ||||
|       ], | ||||
|       "engines": { | ||||
|         "node": ">= 10" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@napi-rs/simple-git": { | ||||
|       "version": "0.1.19", | ||||
|       "resolved": "https://registry.npmjs.org/@napi-rs/simple-git/-/simple-git-0.1.19.tgz", | ||||
| @ -3956,36 +4171,6 @@ | ||||
|         "url": "https://opencollective.com/unified" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/mdast-util-find-and-replace/node_modules/@types/unist": { | ||||
|       "version": "3.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", | ||||
|       "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" | ||||
|     }, | ||||
|     "node_modules/mdast-util-find-and-replace/node_modules/unist-util-is": { | ||||
|       "version": "6.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", | ||||
|       "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", | ||||
|       "dependencies": { | ||||
|         "@types/unist": "^3.0.0" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "type": "opencollective", | ||||
|         "url": "https://opencollective.com/unified" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/mdast-util-find-and-replace/node_modules/unist-util-visit-parents": { | ||||
|       "version": "6.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", | ||||
|       "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", | ||||
|       "dependencies": { | ||||
|         "@types/unist": "^3.0.0", | ||||
|         "unist-util-is": "^6.0.0" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "type": "opencollective", | ||||
|         "url": "https://opencollective.com/unified" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/mdast-util-from-markdown": { | ||||
|       "version": "2.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz", | ||||
| @ -4270,23 +4455,6 @@ | ||||
|         "url": "https://opencollective.com/unified" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/mdast-util-phrasing/node_modules/@types/unist": { | ||||
|       "version": "3.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", | ||||
|       "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" | ||||
|     }, | ||||
|     "node_modules/mdast-util-phrasing/node_modules/unist-util-is": { | ||||
|       "version": "6.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", | ||||
|       "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", | ||||
|       "dependencies": { | ||||
|         "@types/unist": "^3.0.0" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "type": "opencollective", | ||||
|         "url": "https://opencollective.com/unified" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/mdast-util-to-hast": { | ||||
|       "version": "13.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", | ||||
| @ -5474,36 +5642,6 @@ | ||||
|         "url": "https://opencollective.com/unified" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/rehype-katex/node_modules/@types/unist": { | ||||
|       "version": "3.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", | ||||
|       "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" | ||||
|     }, | ||||
|     "node_modules/rehype-katex/node_modules/unist-util-is": { | ||||
|       "version": "6.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", | ||||
|       "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", | ||||
|       "dependencies": { | ||||
|         "@types/unist": "^3.0.0" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "type": "opencollective", | ||||
|         "url": "https://opencollective.com/unified" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/rehype-katex/node_modules/unist-util-visit-parents": { | ||||
|       "version": "6.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", | ||||
|       "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", | ||||
|       "dependencies": { | ||||
|         "@types/unist": "^3.0.0", | ||||
|         "unist-util-is": "^6.0.0" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "type": "opencollective", | ||||
|         "url": "https://opencollective.com/unified" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/rehype-mathjax": { | ||||
|       "version": "6.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/rehype-mathjax/-/rehype-mathjax-6.0.0.tgz", | ||||
| @ -5523,36 +5661,6 @@ | ||||
|         "url": "https://opencollective.com/unified" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/rehype-mathjax/node_modules/@types/unist": { | ||||
|       "version": "3.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", | ||||
|       "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" | ||||
|     }, | ||||
|     "node_modules/rehype-mathjax/node_modules/unist-util-is": { | ||||
|       "version": "6.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", | ||||
|       "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", | ||||
|       "dependencies": { | ||||
|         "@types/unist": "^3.0.0" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "type": "opencollective", | ||||
|         "url": "https://opencollective.com/unified" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/rehype-mathjax/node_modules/unist-util-visit-parents": { | ||||
|       "version": "6.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", | ||||
|       "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", | ||||
|       "dependencies": { | ||||
|         "@types/unist": "^3.0.0", | ||||
|         "unist-util-is": "^6.0.0" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "type": "opencollective", | ||||
|         "url": "https://opencollective.com/unified" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/rehype-parse": { | ||||
|       "version": "9.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-9.0.0.tgz", | ||||
| @ -7285,10 +7393,11 @@ | ||||
|       "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", | ||||
|       "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" | ||||
|     }, | ||||
|     "node_modules/unist-util-find-after/node_modules/unist-util-is": { | ||||
|     "node_modules/unist-util-is": { | ||||
|       "version": "6.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", | ||||
|       "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "@types/unist": "^3.0.0" | ||||
|       }, | ||||
| @ -7297,6 +7406,12 @@ | ||||
|         "url": "https://opencollective.com/unified" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/unist-util-is/node_modules/@types/unist": { | ||||
|       "version": "3.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", | ||||
|       "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", | ||||
|       "license": "MIT" | ||||
|     }, | ||||
|     "node_modules/unist-util-modify-children": { | ||||
|       "version": "4.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-4.0.0.tgz", | ||||
| @ -7381,27 +7496,11 @@ | ||||
|       "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", | ||||
|       "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" | ||||
|     }, | ||||
|     "node_modules/unist-util-visit/node_modules/@types/unist": { | ||||
|       "version": "3.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", | ||||
|       "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" | ||||
|     }, | ||||
|     "node_modules/unist-util-visit/node_modules/unist-util-is": { | ||||
|       "version": "6.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", | ||||
|       "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", | ||||
|       "dependencies": { | ||||
|         "@types/unist": "^3.0.0" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "type": "opencollective", | ||||
|         "url": "https://opencollective.com/unified" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/unist-util-visit/node_modules/unist-util-visit-parents": { | ||||
|     "node_modules/unist-util-visit-parents": { | ||||
|       "version": "6.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", | ||||
|       "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "@types/unist": "^3.0.0", | ||||
|         "unist-util-is": "^6.0.0" | ||||
| @ -7411,6 +7510,17 @@ | ||||
|         "url": "https://opencollective.com/unified" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/unist-util-visit-parents/node_modules/@types/unist": { | ||||
|       "version": "3.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", | ||||
|       "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", | ||||
|       "license": "MIT" | ||||
|     }, | ||||
|     "node_modules/unist-util-visit/node_modules/@types/unist": { | ||||
|       "version": "3.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", | ||||
|       "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" | ||||
|     }, | ||||
|     "node_modules/universalify": { | ||||
|       "version": "0.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", | ||||
|  | ||||
| @ -37,6 +37,7 @@ | ||||
|   "dependencies": { | ||||
|     "@clack/prompts": "^0.7.0", | ||||
|     "@floating-ui/dom": "^1.6.12", | ||||
|     "@myriaddreamin/rehype-typst": "^0.5.0-rc7", | ||||
|     "@napi-rs/simple-git": "0.1.19", | ||||
|     "@tweenjs/tween.js": "^25.0.0", | ||||
|     "async-mutex": "^0.5.0", | ||||
|  | ||||
| @ -1,11 +1,20 @@ | ||||
| import remarkMath from "remark-math" | ||||
| import rehypeKatex from "rehype-katex" | ||||
| import rehypeMathjax from "rehype-mathjax/svg" | ||||
| //@ts-ignore
 | ||||
| import rehypeTypst from "@myriaddreamin/rehype-typst" | ||||
| import { QuartzTransformerPlugin } from "../types" | ||||
| import { KatexOptions } from "katex" | ||||
| import { Options as MathjaxOptions } from "rehype-mathjax/svg" | ||||
| //@ts-ignore
 | ||||
| import { Options as TypstOptions } from "@myriaddreamin/rehype-typst" | ||||
| 
 | ||||
| interface Options { | ||||
|   renderEngine: "katex" | "mathjax" | ||||
|   renderEngine: "katex" | "mathjax" | "typst" | ||||
|   customMacros: MacroType | ||||
|   katexOptions: Omit<KatexOptions, "macros" | "output"> | ||||
|   mathJaxOptions: Omit<MathjaxOptions, "macros"> | ||||
|   typstOptions: TypstOptions | ||||
| } | ||||
| 
 | ||||
| interface MacroType { | ||||
| @ -21,32 +30,37 @@ export const Latex: QuartzTransformerPlugin<Partial<Options>> = (opts) => { | ||||
|       return [remarkMath] | ||||
|     }, | ||||
|     htmlPlugins() { | ||||
|       if (engine === "katex") { | ||||
|         return [[rehypeKatex, { output: "html", macros }]] | ||||
|       } else { | ||||
|         return [[rehypeMathjax, { macros }]] | ||||
|       switch (engine) { | ||||
|         case "katex": { | ||||
|           return [[rehypeKatex, { output: "html", macros, ...(opts?.katexOptions ?? {}) }]] | ||||
|         } | ||||
|         case "typst": { | ||||
|           return [[rehypeTypst, opts?.typstOptions ?? {}]] | ||||
|         } | ||||
|         case "mathjax": { | ||||
|           return [[rehypeMathjax, { macros, ...(opts?.mathJaxOptions ?? {}) }]] | ||||
|         } | ||||
|         default: { | ||||
|           return [[rehypeMathjax, { macros, ...(opts?.mathJaxOptions ?? {}) }]] | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     externalResources() { | ||||
|       if (engine === "katex") { | ||||
|         return { | ||||
|           css: [ | ||||
|             { | ||||
|               // base css
 | ||||
|               content: "https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.9/katex.min.css", | ||||
|             }, | ||||
|           ], | ||||
|           js: [ | ||||
|             { | ||||
|               // fix copy behaviour: https://github.com/KaTeX/KaTeX/blob/main/contrib/copy-tex/README.md
 | ||||
|               src: "https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.9/contrib/copy-tex.min.js", | ||||
|               loadTime: "afterDOMReady", | ||||
|               contentType: "external", | ||||
|             }, | ||||
|           ], | ||||
|         } | ||||
|       } else { | ||||
|         return {} | ||||
|       switch (engine) { | ||||
|         case "katex": | ||||
|           return { | ||||
|             css: [{ content: "https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css" }], | ||||
|             js: [ | ||||
|               { | ||||
|                 // fix copy behaviour: https://github.com/KaTeX/KaTeX/blob/main/contrib/copy-tex/README.md
 | ||||
|                 src: "https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/contrib/copy-tex.min.js", | ||||
|                 loadTime: "afterDOMReady", | ||||
|                 contentType: "external", | ||||
|               }, | ||||
|             ], | ||||
|           } | ||||
|         default: | ||||
|           return { css: [], js: [] } | ||||
|       } | ||||
|     }, | ||||
|   } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user