utils/CHANGELOG.md
saberzero1 4dda81bc82
feat(path)!: lowercase slugs for Obsidian-parity case-insensitive matching
slugifyPath now lowercases its output, which cascades through
slugifyFilePath, slugTag, and transformInternalLink (all of which
funnel through _sluggify).

This matches Obsidian's case-insensitive link and tag matching:
[[MyNote]], [[mynote]], and [[MYNOTE]] all resolve to the slug
'my-note', and the tags #MyTag, #mytag, and #MYTAG collapse into a
single tag page.

BREAKING CHANGE: all generated URLs are now lowercase. Users
upgrading with mixed-case source filenames will see their URLs
change (e.g. /MyNote -> /my-note). Also eliminates silent data
loss on case-insensitive filesystems (macOS APFS, Windows NTFS)
where Apple.md and apple.md previously produced conflicting HTML
outputs that overwrote each other without warning.
2026-04-16 21:12:37 +02:00

1.1 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

[Unreleased]

Added

  • Initial Quartz community plugin template.

Changed

  • BREAKING: slugifyPath, slugifyFilePath, and slugTag now lowercase their output to match Obsidian's case-insensitive link- and tag-matching semantics. Previously all three preserved case. This means [[My Note]] and [[my note]] both resolve to the slug my-note, and the tags #MyTag and #mytag collapse into a single tag page. Downstream effects: all generated URLs are now lowercase; users upgrading from earlier Quartz v5 betas with mixed-case source filenames will see their URLs change (e.g. /MyNote/my-note). Also eliminates silent data loss on case-insensitive filesystems (macOS APFS, Windows NTFS), where Apple.md and apple.md previously produced conflicting HTML outputs that overwrote each other without warning.