mirror of
https://github.com/kbenestad/mdcms.git
synced 2026-06-18 15:24:32 +00:00
A YAML parse error in config.yml (e.g. a stray tab character) caused
read_config to swallow the exception and return {}, disabling categories
and producing a broken nav.yml with no variants fields and wrong filenames.
read_config now raises ClickException on both OSError and YAMLError.
Documented in docs/knownbugs.md and docs/unreleased.md.
https://claude.ai/code/session_01Xs5GyREFhjWxhS1UhW2wA8
50 lines
2.7 KiB
Markdown
50 lines
2.7 KiB
Markdown
# Unreleased changes
|
|
|
|
Changes merged into `development` that have not yet been released to `main`.
|
|
|
|
---
|
|
|
|
## `mdcms build` patches `<title>` with sitename
|
|
|
|
`mdcms build` now rewrites the `<title>` tag in `index.html` with the value of `sitename` from `config.yml`. Previously the tag was hardcoded (`MD-CMS`) in older templates, or blank in the starter template, so link previews in WhatsApp, Slack, and other crawlers that read static HTML showed the wrong name.
|
|
|
|
---
|
|
|
|
## Untranslated posts now visible in all categories
|
|
|
|
**Status:** On `development`, pending release.
|
|
|
|
### What was broken
|
|
|
|
When the category system is enabled, a post file without a category suffix (e.g. `posts/my-post.md`) was silently assigned to the default category only. Switching to any other category caused those posts to disappear from the nav and from `posts-*` tag listings — even though no translated version existed. If you wrote posts without a language suffix, they simply vanished the moment a visitor switched category.
|
|
|
|
Pages without a category suffix are unaffected: they continue to be assigned to the default category, which is the correct behaviour for pages.
|
|
|
|
### What it does now
|
|
|
|
Posts without a category suffix are treated as uncategorised — meaning they appear in every category. A post called `my-post.md` now shows up regardless of which category is active. A post called `my-post.en.md` still appears only in the `en` category as before.
|
|
|
|
Mixed situations work as expected: if you have both `my-post.md` and `my-post.nb.md`, the Norwegian variant is shown when the `nb` category is active, and the bare `my-post.md` is shown for every other category.
|
|
|
|
### What changes in the build output
|
|
|
|
After rebuilding a site with `mdcms build`, affected post entries in `nav.yml` gain an `uncategorized: true` field:
|
|
|
|
```yaml
|
|
- file: posts/my-post.md
|
|
title: My Post
|
|
sort: 100
|
|
uncategorized: true
|
|
```
|
|
|
|
In `search.json`, these entries carry `"category": null` instead of the default category code. This is what tells the renderer to include them universally.
|
|
|
|
A rebuild is required for existing sites to pick up the change.
|
|
|
|
---
|
|
|
|
## Fix: `config.yml` YAML parse errors now abort the build with a clear message
|
|
|
|
A malformed `config.yml` (e.g. a stray tab character, which YAML forbids as a token starter) previously caused `read_config` to silently return an empty dict. The build would proceed with no config — categories disabled, no default category code — producing a broken `nav.yml` with wrong filenames and missing `variants` fields, so category-variant pages would not appear in the sidebar.
|
|
|
|
`read_config` now raises `ClickException` on both `OSError` and `yaml.YAMLError`, aborting the build with a descriptive error message instead of continuing silently with an empty config.
|