ox-hugo currently supports the following syntax for latex equations: - https://orgmode.org/manual/LaTeX-fragments.html - https://ox-hugo.scripter.co/doc/equations This syntax is supported by mathjax as is mentioned in the ox-hugo documentation. But quartz uses remark-math which has some issues with the \( \) syntax. See https://github.com/remarkjs/remark-math/issues/39 This change adds few more transformations to the OxHugoFlavouredMarkdown plugin, which makes a best effort conversion of this syntax into what the Quartz Latex transformer plugin supports. With these changes, the generated files show latex formatting with default quartz configuration. Sidenote on `\_` escape by ox-hugo: ox-hugo escapes, _ using \_, we match against it after we transform equations into what quartz supports($$ and $). This could be achieved using lookaround like regex as follows ```js (?<=(\$|\$\$)[\s\S]*) -> Positive lookbehind for $ or $$ \\_ -> Matches \_ (?=[\s\S]*(?:\1)) Positive lookahead for $ or $$ if matched const escapedUnderscoreRegex = new RegExp(/(?<=(\$|\$\$)[\s\S]*)\\_(?=[\s\S]*(?:\1))/, "g") ```` But since lookahead/behind can slow things down on large files, we just look up all equations with $ and $$ delimiters and then try replacing \_
1.8 KiB
tags | |
---|---|
|
org-roam is a plain-text personal knowledge management system for emacs. ox-hugo is org exporter backend that exports org-mode
files to Hugo compatible Markdown.
Because the Markdown generated by ox-hugo is not pure Markdown but Hugo specific, we need to transform it to fit into Quartz. This is done by Plugin.OxHugoFlavouredMarkdown
. Even though this making plugins was written with ox-hugo
in mind, it should work for any Hugo specific Markdown.
plugins: {
transformers: [
Plugin.FrontMatter({ delims: "+++", language: "toml" }), // if toml frontmatter
// ...
Plugin.OxHugoFlavouredMarkdown(),
Plugin.GitHubFlavoredMarkdown(),
// ...
],
},
Usage
Quartz by default doesn't understand org-roam
files as they aren't Markdown. You're responsible for using an external tool like ox-hugo
to export the org-roam
files as Markdown content to Quartz and managing the static assets so that they're available in the final output.
Configuration
- Link resolution
wikilinks
: Whether to replace{{ relref }}
with Quartz wikilinksremovePredefinedAnchor
: Whether to remove pre-defined anchor set by ox-hugo.
- Image handling
replaceFigureWithMdImg
: Whether to replace<figure/>
with![]()
- Formatting
removeHugoShortcode
: Whether to remove hugo shortcode syntax ({{}}
)
Warning
While you can use
Plugin.OxHugoFlavoredMarkdown
andPlugin.ObsidianFlavoredMarkdown
together, it's not recommended because it might mutate the file in unexpected ways. Use with caution.