static/ folder is not a Quartz constraint; merge into x/attachments/

Context and Problem Statement

Initial assumption was that the vault’s static/ folder was a Quartz convention requiring root placement. Closer reading of Quartz v4 source revealed otherwise:

  • Plugin.Static() reads from <quartz-install-dir>/static (Quartz’s own passthrough files like favicon/CNAME), not from the user’s content directory.
  • User-content images are handled by Plugin.Assets(), which resolves them via wikilink from anywhere in the content directory.

The vault’s static/ was just an Obsidian attachment dumping ground, not a Quartz-required location.

Considered Options

  • Move static/* contents into x/attachments/; delete empty static/.
  • Keep static/ at root as a carve-out (the original wrong premise).
  • Split static between Quartz-passthrough vs Obsidian-attachments.

Decision Outcome

Chosen option: “Move into x/attachments/”, because Plugin.Assets resolves wikilinked images by filename, so moving them does not break references. Removing the static/ exception keeps the 0007-consolidate-scaffolding-into-x principle intact.

Pros and Cons of the Options

Move into x/attachments/

  • Good, because preserves the “all scaffolding under x/” rule.
  • Good, because no broken references (filename-based wikilink resolution).

Keep static/ at root

  • Bad, because no actual Quartz constraint requires it.

Split static between Quartz-passthrough and Obsidian-attachments

  • Bad, because Quartz-passthrough doesn’t live in the user vault root anyway; the split is moot.