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: | 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}"}` | - `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 | ## API | ||||||
| 
 | 
 | ||||||
| - Category: Transformer | - Category: Transformer | ||||||
|  | |||||||
							
								
								
									
										362
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										362
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -11,6 +11,7 @@ | |||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@clack/prompts": "^0.7.0", |         "@clack/prompts": "^0.7.0", | ||||||
|         "@floating-ui/dom": "^1.6.12", |         "@floating-ui/dom": "^1.6.12", | ||||||
|  |         "@myriaddreamin/rehype-typst": "^0.5.0-rc7", | ||||||
|         "@napi-rs/simple-git": "0.1.19", |         "@napi-rs/simple-git": "0.1.19", | ||||||
|         "@tweenjs/tween.js": "^25.0.0", |         "@tweenjs/tween.js": "^25.0.0", | ||||||
|         "async-mutex": "^0.5.0", |         "async-mutex": "^0.5.0", | ||||||
| @ -714,6 +715,220 @@ | |||||||
|         "langium": "3.0.0" |         "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": { |     "node_modules/@napi-rs/simple-git": { | ||||||
|       "version": "0.1.19", |       "version": "0.1.19", | ||||||
|       "resolved": "https://registry.npmjs.org/@napi-rs/simple-git/-/simple-git-0.1.19.tgz", |       "resolved": "https://registry.npmjs.org/@napi-rs/simple-git/-/simple-git-0.1.19.tgz", | ||||||
| @ -3956,36 +4171,6 @@ | |||||||
|         "url": "https://opencollective.com/unified" |         "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": { |     "node_modules/mdast-util-from-markdown": { | ||||||
|       "version": "2.0.0", |       "version": "2.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz", |       "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" |         "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": { |     "node_modules/mdast-util-to-hast": { | ||||||
|       "version": "13.2.0", |       "version": "13.2.0", | ||||||
|       "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", |       "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" |         "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": { |     "node_modules/rehype-mathjax": { | ||||||
|       "version": "6.0.0", |       "version": "6.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/rehype-mathjax/-/rehype-mathjax-6.0.0.tgz", |       "resolved": "https://registry.npmjs.org/rehype-mathjax/-/rehype-mathjax-6.0.0.tgz", | ||||||
| @ -5523,36 +5661,6 @@ | |||||||
|         "url": "https://opencollective.com/unified" |         "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": { |     "node_modules/rehype-parse": { | ||||||
|       "version": "9.0.0", |       "version": "9.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-9.0.0.tgz", |       "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", |       "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", | ||||||
|       "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" |       "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", |       "version": "6.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", |       "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", | ||||||
|       "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", |       "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", | ||||||
|  |       "license": "MIT", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@types/unist": "^3.0.0" |         "@types/unist": "^3.0.0" | ||||||
|       }, |       }, | ||||||
| @ -7297,6 +7406,12 @@ | |||||||
|         "url": "https://opencollective.com/unified" |         "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": { |     "node_modules/unist-util-modify-children": { | ||||||
|       "version": "4.0.0", |       "version": "4.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-4.0.0.tgz", |       "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", |       "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", | ||||||
|       "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" |       "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" | ||||||
|     }, |     }, | ||||||
|     "node_modules/unist-util-visit/node_modules/@types/unist": { |     "node_modules/unist-util-visit-parents": { | ||||||
|       "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": { |  | ||||||
|       "version": "6.0.1", |       "version": "6.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", |       "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", | ||||||
|       "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", |       "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", | ||||||
|  |       "license": "MIT", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@types/unist": "^3.0.0", |         "@types/unist": "^3.0.0", | ||||||
|         "unist-util-is": "^6.0.0" |         "unist-util-is": "^6.0.0" | ||||||
| @ -7411,6 +7510,17 @@ | |||||||
|         "url": "https://opencollective.com/unified" |         "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": { |     "node_modules/universalify": { | ||||||
|       "version": "0.2.0", |       "version": "0.2.0", | ||||||
|       "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", |       "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", | ||||||
|  | |||||||
| @ -37,6 +37,7 @@ | |||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@clack/prompts": "^0.7.0", |     "@clack/prompts": "^0.7.0", | ||||||
|     "@floating-ui/dom": "^1.6.12", |     "@floating-ui/dom": "^1.6.12", | ||||||
|  |     "@myriaddreamin/rehype-typst": "^0.5.0-rc7", | ||||||
|     "@napi-rs/simple-git": "0.1.19", |     "@napi-rs/simple-git": "0.1.19", | ||||||
|     "@tweenjs/tween.js": "^25.0.0", |     "@tweenjs/tween.js": "^25.0.0", | ||||||
|     "async-mutex": "^0.5.0", |     "async-mutex": "^0.5.0", | ||||||
|  | |||||||
| @ -1,11 +1,20 @@ | |||||||
| 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" | ||||||
|  | //@ts-ignore
 | ||||||
|  | import rehypeTypst from "@myriaddreamin/rehype-typst" | ||||||
| import { QuartzTransformerPlugin } from "../types" | 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 { | interface Options { | ||||||
|   renderEngine: "katex" | "mathjax" |   renderEngine: "katex" | "mathjax" | "typst" | ||||||
|   customMacros: MacroType |   customMacros: MacroType | ||||||
|  |   katexOptions: Omit<KatexOptions, "macros" | "output"> | ||||||
|  |   mathJaxOptions: Omit<MathjaxOptions, "macros"> | ||||||
|  |   typstOptions: TypstOptions | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| interface MacroType { | interface MacroType { | ||||||
| @ -21,32 +30,37 @@ export const Latex: QuartzTransformerPlugin<Partial<Options>> = (opts) => { | |||||||
|       return [remarkMath] |       return [remarkMath] | ||||||
|     }, |     }, | ||||||
|     htmlPlugins() { |     htmlPlugins() { | ||||||
|       if (engine === "katex") { |       switch (engine) { | ||||||
|         return [[rehypeKatex, { output: "html", macros }]] |         case "katex": { | ||||||
|       } else { |           return [[rehypeKatex, { output: "html", macros, ...(opts?.katexOptions ?? {}) }]] | ||||||
|         return [[rehypeMathjax, { macros }]] |         } | ||||||
|  |         case "typst": { | ||||||
|  |           return [[rehypeTypst, opts?.typstOptions ?? {}]] | ||||||
|  |         } | ||||||
|  |         case "mathjax": { | ||||||
|  |           return [[rehypeMathjax, { macros, ...(opts?.mathJaxOptions ?? {}) }]] | ||||||
|  |         } | ||||||
|  |         default: { | ||||||
|  |           return [[rehypeMathjax, { macros, ...(opts?.mathJaxOptions ?? {}) }]] | ||||||
|  |         } | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     externalResources() { |     externalResources() { | ||||||
|       if (engine === "katex") { |       switch (engine) { | ||||||
|         return { |         case "katex": | ||||||
|           css: [ |           return { | ||||||
|             { |             css: [{ content: "https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css" }], | ||||||
|               // base css
 |             js: [ | ||||||
|               content: "https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.9/katex.min.css", |               { | ||||||
|             }, |                 // 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", | ||||||
|           js: [ |                 loadTime: "afterDOMReady", | ||||||
|             { |                 contentType: "external", | ||||||
|               // 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", |         default: | ||||||
|             }, |           return { css: [], js: [] } | ||||||
|           ], |  | ||||||
|         } |  | ||||||
|       } else { |  | ||||||
|         return {} |  | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|   } |   } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user