Accent CMS 0.27.3 — search, index and validation fixes

Accent CMS 0.27.3 is available. It is a bug-fix release for the 0.27 line, and it does not contain the 0.28 development work. A licence with a 0.27 ceiling covers it.

Do these steps after you upgrade

Most fixes start to operate when you install the new binary. Four changes can need an action from you.

Search island. The search island now contains the same form as search_form(). In your theme, put this line in <accent-island data-component="search">:

{{ search_form("Search...", 5, script=false) }}

The island props endpoint, min_chars and debounce are removed. A form that you wrote yourself in the island does not search now. The results use the .acms-search-* classes. If your theme styles .island-search-results or .search-hit, change these styles to the new classes.

Tag templates. If a configured taxonomy has no templates of its own, Accent uses the tag templates. A site that you made with accent init before 0.27.3 keeps its old tag templates. To show the correct terms, change tags.html.jinja and tag.html.jinja:

  • List taxonomy.terms, not taxonomy.tags.
  • Make the links with term_url(taxonomy.name, term).
  • Compare terms with taxonomy.current_term.

Taxonomy names. These names for a configured taxonomy now cause a configuration error: name, singular, terms, pages, current_term, current_label and current_tag. The singular label also causes the error. Rename the taxonomy, or its singular.

Diagrams turned off. With diagrams.enabled: false, a {% diagram %} tag and a diagram() call now show the diagram source as a code block, as a fenced block does. To show diagrams, set diagrams.enabled: true.

Fixes

Search shows results in the language of the page. On a site with two or more languages, search showed pages of all languages. Now a search form and the search island show only the pages in the language of the current page. To translate the text for no results and the name of the results list, give search_form() the arguments no_results and results_label. The {% search %} tag takes attributes with the same names. To search all languages, use all_languages=true.

Redirect pages are not in the indexes. A page with redirect: was in sitemap.xml, the search index, llms.txt, llms-full.txt, the feeds and the term pages. A translation with a redirect was also an hreflang alternate and an item in page.translations. Now Accent removes redirect pages from all these outputs.

Each taxonomy shows its own terms. A configured taxonomy without its own templates showed the tags, for example on /categories. Its term pages linked to /tags. Now each taxonomy page shows the terms of its taxonomy. The new keys taxonomy.name, taxonomy.singular, taxonomy.terms and taxonomy.current_term give this data to your templates.

accent validate reports the line in the file. The line number of a component error started after the frontmatter. Now it counts from the first line of the file. This is also true in a ---section: region and in the admin validation report.

The dev server watches static/. When you add or remove a file in static/, accent serve now checks the links again.

accent serve sends static files under a versioned root. On a site with versions under /docs, the server redirected /docs/a.pdf to /docs/v1/a.pdf. Now it sends static/docs/a.pdf, as the build does.

accent serve sends the same script policy as your deployed site. The server allowed WebAssembly when search was off, and the Mermaid CDN when diagrams were off. Now it allows each one only when you use the feature.

Install or upgrade

curl -fsSL https://accentcms.dev/install.sh | sh

Binaries for all platforms, checksums and signatures are on the GitHub release page.