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.