← Overview

How Obsitex names the cross-reference labels it generates, and how it resolves your wikilinks — plus the one naming rule that keeps links from breaking.

Labels for cross-references

Every # heading gets an automatic \label. Obsitex derives it from the file path plus the heading text (lowercased, and path-prefixed so two identically named headings never collide). You never write these labels yourself — you just link to a heading and Obsitex fills in the reference. See Links & cross-references.

Tables and figures get one too, built from their caption instead of a heading: lowercased, with every character other than a letter or digit turned into _. They live in their own name spaces, tab: and fig:, so a table and an image may share a caption without colliding. Two tables sharing one get _2 on the second.

Here too you never write the label — you point at the caption and Obsitex fills it in. What you do have to know: rewording a caption changes its label, and any link to it has to follow. A block identifier avoids that, see Links & cross-references.

How wikilinks are resolved

The file part of a wikilink — Note in [[Note#Heading]] — is matched purely by path and file name: the full path, the path without .md, or the bare file name (including any number prefix), each lowercased.

Renaming can break links

Because links resolve by file and path name, renaming a file outside Obsidian breaks any [[wikilink]] pointing to it (and can break the Flexplorer order too). Rename inside Obsidian — which updates the links for you — or update the links (and the Flexplorer data) in the same step.

Tips & pitfalls