The OFM v1 authoring surface, with links, embeds, callouts, math, and media.

Syntax

The ofm@1 profile has a versioned contract. It favors source that reads well in Obsidian, on the generated site, and in a plain text editor.

Use a wikilink for another note and an alias for display text: compiler architecture. A heading fragment links to Compiler boundary. A block fragment links to compiler contract.

The next excerpt is embedded from the architecture note:

From Architecture

The compiler receives an immutable snapshot of public-source bytes, attachment metadata, normalized paths, configuration, and optional Git dates. It does not read the filesystem, ask Jekyll for state, use the network, inspect environment variables, or read the current clock. Its sorted result contains pages, generated files, copied assets, and diagnostics. Localization stays behind this same VaultCompiler.compile(BuildRequest) interface: one locale plan creates default-authoritative overlay snapshots and combines their immutable outputs before Jekyll receives them.

Embeds keep their source attribution. When the same excerpt appears more than once, the compiler scopes its DOM IDs so anchors remain unique.

Text marks and tasks

Common Markdown works alongside highlighting, footnotes, and task states.1

  • Publish at least one note.
  • Replace the sample title.
  • Review a draft.

Callouts

A folded note


Folded callouts use a native details element, so they remain keyboard accessible.

Math and diagrams

Inline math such as e^{i\pi}+1=0 keeps its source visible until MathJax loads.

\operatorname{score}(q, d)=\sum_{t\in q}\operatorname{weight}(t, d)

flowchart LR
  Vault --> Compiler
  Compiler --> Jekyll
  Jekyll --> Pages

Mermaid and MathJax load only on pages that use them.

Media

An image embed can include its width or width and height:

![[diagram.png|640x360]]
![[paper.pdf#page=3]]
![[paper.pdf#height=560]]

Local audio, video, and PDF files use native browser controls. In v1, .3gp is audio and .webm is video. PDF embeds accept page and height options. Canvas and Bases files become download cards because v1 does not execute their data models.

External HTTPS media uses the same Markdown image syntax. GIFs and other supported images keep image semantics and optional Obsidian dimensions. Direct video files use native controls. YouTube, Bilibili, and Vimeo links become privacy-conscious, lazy player frames, while X or Twitter status links become lazy Tweet embeds with a normal link as their fallback.

![Animation|320x180]https://media.example/loop.gif
![Product tour]https://cdn.example/tour.mp4
![Conference talk]https://www.youtube.com/watch?v=NnTvZWp5Q7o&t=1m30s
![](https://www.bilibili.com/video/BV1E7411e7hC?p=2)
![](https://vimeo.com/212731897)
![](https://x.com/obsdmd/status/1580548874246443010)

Use an explicit iframe only when the page cannot be represented by one of those media forms:

<iframe
  src="https://example.com/interactive"
  title="Interactive example"
  height="560">
</iframe>

The compiler accepts only HTTPS iframe URLs without credentials or custom ports. It discards authored active attributes, rebuilds known video players from canonical provider URLs, and applies one fixed sandbox to generic pages. Every external embed loads only on pages that contain it and receives the narrow Content Security Policy it needs. Generic frames and Tweets retain plain HTTPS fallback links. Builds never contact the provider. An iframe written inside inline code, a code fence, or a comment remains inert source text.

Tags and comments

Inline tags such as #field-notes and nested tags such as #guide/syntax join tags from frontmatter. The site uses one tag index with stable anchors.

Obsidian comments and HTML comments do not appear in HTML, previews, search, graph metadata, or feeds.

Every authored public note also has Copy page and View as Markdown actions. Both use the same frontmatter-free Markdown resource and preserve the authored body, including OFM syntax and comments. Treat comments in a public note as public source text.

Read CJK Showcase for mixed-script examples.

  1. The full compatibility table is maintained in OFM v1 Conformance.

Search this site

The index loads when search opens.

    Browse

    Context

    Full graph

    Loading graph…

    Local graph

    Loading graph…

    Image