Skip to content

Releases: oddship/moat

v0.6.2

Choose a tag to compare

@rhnvrm rhnvrm released this 02 Jul 11:51

v0.6.2 — Search Dialog Polish

A small follow-up release focused on the built-in search dialog.

Search dialog dismissal

The built-in docs shell search dialog is now easier to exit:

  • clicking outside the dialog closes it
  • a dedicated close button is shown inside the dialog
  • pressing Escape still closes it in one step from the search field

Native oat dialog patterns

The built-in layout now leans on oat and native dialog behavior instead of custom modal handling:

  • the topnav search trigger opens the dialog with commandfor and command="show-modal"
  • the dialog uses closedby="any" for backdrop dismissal
  • the close control uses command="close"
  • the search field and close control are grouped with oat's fieldset.group

This keeps the modal behavior simpler and makes the built-in UI more consistent with oat.

Test coverage

Playwright coverage now checks that the search dialog closes correctly when:

  • the close button is clicked
  • the backdrop is clicked

Compatibility

This release is backward-compatible.

  • built-in search remains optional
  • existing search index generation is unchanged
  • keyboard search shortcut behavior is unchanged

v0.6.1

Choose a tag to compare

@rhnvrm rhnvrm released this 16 Jun 06:53

v0.6.1 — Docs Shell Improvements

A small follow-up release focused on moat's built-in docs shell.

Top navigation improvements

The built-in layout now supports a cleaner split between primary and secondary top navigation links:

  • [[topnav]] for primary links in the top bar
  • [[topnav_more]] for secondary links grouped under More

This keeps the top navigation simpler while still leaving room for project links such as GitHub and RSS.

Footer config for the built-in layout

The built-in footer can now be configured with plain text and markdown links:

footer_text = "© [oddship](https://github.com/oddship) 2026"
disable_moat_citation = false

The older [extra].footer HTML path still works as a fallback.

Topnav base path fix

Internal top navigation links now correctly honor base_path.

This fixes GitHub Pages style deployments where docs live under a project path such as /moat/ instead of the site root.

Search and feed polish

The built-in layout keeps modal search in the top navigation and now documents / as the shortcut.

When RSS feed generation is enabled, the built-in layout can expose the feed from the More dropdown.

Docs updates

The README, sample config, and docs now reflect the final built-in layout behavior for:

  • [[topnav]]
  • [[topnav_more]]
  • modal search
  • RSS feed placement
  • footer config

Compatibility

This release is backward-compatible.

  • Existing [[topnav]] links continue to work
  • Existing [extra].footer still works
  • Search and feed remain optional

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 23 Apr 06:53

Highlights

Site primitives for richer content sites

moat can now power blogs, changelogs, and knowledge-base style docs more comfortably, without needing a separate mode or custom pipeline.

Wiki links

  • [[Page Title]] links now resolve by page title, case-insensitively
  • Unknown targets render as plain text instead of broken links
  • This is included in moat@latest, so reusable docs workflows that install the latest release now pick it up automatically

Date and draft frontmatter

  • Pages can now define date and draft
  • Drafts are excluded from output, nav, search, and feeds
  • Dates support YYYY-MM-DD, YYYY-MM-DD HH:MM, and full timestamps

RSS feed support

  • Add [feed] in config.toml to generate feed.xml
  • Feed items are sorted newest first
  • Built-in layout now adds an RSS icon in topnav and feed autodiscovery metadata

Page listings and date-aware navigation

  • Templates and shortcodes can use {{ .Pages }} and {{ .SectionPages "section" }}
  • Sections with dated pages sort newest first in the sidebar
  • nav_children: false lets section index pages collapse large sections into a single nav item

Other changes

  • Built-in layouts now show formatted page dates when date is present
  • Added formatDate for custom layouts
  • Added built-in rss icon support for [[links]] and [[topnav]]
  • Fixed feed URLs double-prefixing base_path
  • Improved built-in icon alignment and topnav layout ordering
  • Updated docs Pages workflow actions to Node 24

Full changelog

v0.5.0...v0.6.0

v0.5.0

Choose a tag to compare

@rhnvrm rhnvrm released this 16 Mar 06:59

Highlights

Built-in client-side search

  • Full-text search across all pages via _search.json index
  • Dialog-based UI with / keyboard shortcut
  • Multi-word tokenized queries — all terms must match
  • Enabled by default, disable with [search] enabled = false

Top navigation bar

  • New [[topnav]] config section for links in the header bar
  • Built-in icon system (icon = "github" renders inline SVG)
  • Separate from sidebar [[links]] — backward compatible

Logo and favicon support

  • logo and favicon config options
  • Inline SVG logos via logo_inline for light/dark mode variants

Other changes

  • Zero inline styles — layout uses oat utility classes exclusively
  • Dark mode syntax highlighting fix for unstyled tokens
  • HTML-escaped nav output (security hardening)
  • HTML entities unescaped in search index text
  • Number prefix stripping handles any digit count (1-, 01-, 001-)
  • Shortcode close-tag regex cached per name
  • Favicon type auto-detected (was hardcoded to SVG)
  • Playwright e2e test suite (23 tests)
  • New unit tests for nav and frontmatter (20 total)
  • Development reference guide in docs

Full changelog

v0.4.0...v0.5.0

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 24 Feb 20:04
Features since v0.1.0:

- config.toml support (site_name, base_path, highlight themes, extras)
- Syntax highlighting via Chroma CSS classes (70 themes, light/dark)
- Layout inheritance (block/define, _layout.{name}.html variants)
- Shortcodes ({{< name >}} block and {{< name />}} self-closing)
- Embedded default layouts — zero-config builds with oat styling
- moat init — scaffold a docs directory
- [[links]] config — sidebar links (e.g. GitHub) above page nav
- safeHTML template function for HTML in config values
- Reusable GitHub Actions workflow (build-docs.yml)
- Version injected via ldflags (no hardcoded constant)

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 24 Feb 18:50
fix(ci): split build and release to avoid race condition