Files
quartz/docs/features/OxHugo compatibility.md
saberzero1 ed0f27c05f fix: move ExternalPlugin overrides before loadQuartzConfig in quartz.ts docs
loadQuartzConfig() internally calls loadQuartzLayout() to build the
PageTypeDispatcher, which instantiates components. Plugin option overrides
must be registered before this happens. Updated quartz.ts and all doc
snippets that show the ExternalPlugin override pattern to place calls
before loadQuartzConfig(). Also updated OxHugo and Roam docs from stale
v4 plugins pattern to v5 override pattern.
2026-05-24 18:33:58 +02:00

2.0 KiB

title, tags
title tags
OxHugo Compatibility
feature/transformer

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 the OxHugoFlavoredMarkdown plugin. Even though this plugin was written with ox-hugo in mind, it should work for any Hugo specific Markdown.

plugins:
  - source: github:quartz-community/obsidian-flavored-markdown
    enabled: true
    order: 30
  - source: github:quartz-community/ox-hugo
    enabled: true
    order: 25 # must come before obsidian-flavored-markdown
  - source: github:quartz-community/github-flavored-markdown
    enabled: true
    order: 40
  - source: github:quartz-community/note-properties
    enabled: true
    options:
      delimiters: "+++"
      language: toml # if using toml frontmatter
    order: 5

For the TS override approach, place overrides before loadQuartzConfig() in quartz.ts:

import * as ExternalPlugin from "./.quartz/plugins"

ExternalPlugin.NoteProperties({ delims: "+++", language: "toml" })
ExternalPlugin.OxHugoFlavouredMarkdown()

Note

In YAML, plugin execution order is controlled by the order field. Lower numbers execute first. Ensure ox-hugo has a lower order than obsidian-flavored-markdown.

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

This functionality is provided by the OxHugoFlavoredMarkdown plugin. See the plugin page for customization options.