Skip to main content

Rendering and metadata

When you publish a document, OpenDocs stores both the raw Markdown and a rendered HTML representation.

Markdown features​

The current rendering pipeline supports:

  • GitHub Flavored Markdown
  • tables
  • task lists
  • code fences with syntax highlighting
  • heading anchors
  • table of contents extraction

Title behavior​

OpenDocs resolves the title in this order:

  1. frontmatter title
  2. first # Heading
  3. a fallback untitled state

The CLI also separately detects the first # Heading so it can show a sensible display title locally before the API response comes back.

Summary behavior​

OpenDocs derives a summary from the first non-empty line after the main heading. That summary is used in list views and metadata contexts.

Tags​

  • Tags are sent as an array in the API.
  • The CLI accepts them as a comma-separated string.
  • Stored tags are normalized to lowercase.

Private blocks​

OpenDocs strips fenced private blocks before rendering:

```private
Do not publish this section.
```

That lets you keep internal notes in the source file while omitting them from the published page.

Safe rendering​

Rendered output is sanitized before it is served. OpenDocs is intentionally focused on a calm reading experience rather than arbitrary embedded behavior.

Reader experience​

The current reader emphasizes:

  • clean typography
  • mobile-friendly layout
  • heading anchors
  • stable URLs

That matches the core product promise: write anywhere, publish once, read comfortably anywhere.