From 8953ce821086015384094f88e5172c86080aa960 Mon Sep 17 00:00:00 2001 From: cproudlock Date: Thu, 27 Aug 2026 15:42:46 -0400 Subject: [PATCH] Ticking a section off crosses out the section It struck the heading and left everything underneath looking untouched, which is the opposite of what somebody ticking "this section is done" means. The strike now covers every block under that heading, down to the next heading of the same or higher rank - so a top-level section takes its sub-sections with it. That needed the rank, and the HTML importer was throwing it away: h2, h3 and h4 all arrived as a flat 'heading', so a parent heading had no children to cross out. It was the visible half of a real loss - a converted article kept its words and lost its shape. Headings now carry their level and render at it, and a guide written before this reads as flat, exactly as it did. Code blocks, tables and images inside a finished section fade but are not struck. A line through a command makes it unreadable, and re-reading the command is usually the reason to look back at a step already done. The five imported guides were re-imported so they carry their structure. --- CHANGELOG.md | 11 +++ docs/PROJECT-MAP.md | 2 +- .../frontend/components/GuideBlocks.vue | 80 ++++++++++++++++--- plugins/guides/services/htmlimport.py | 7 +- tests/test_plugins/test_guides_htmlimport.py | 11 +++ 5 files changed, 98 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c1f1c05..69208dc9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -115,6 +115,17 @@ ADR-007 and ADR-002. ### Fixed +- **Ticking a section off crossed out its title and nothing else.** The strike + now covers everything under that heading, including its sub-sections, which + is what "this section is done" means to somebody who ticked the thing that + contained them. It needed the heading RANK, which the HTML importer was + discarding: every heading arrived as a sibling, so a parent had no children + to cross out. Headings now carry their level, render at their rank, and a + guide written before this reads as flat, exactly as it did. Code blocks, + tables and images inside a finished section are faded but not struck - a line + through a command makes it unreadable, and re-reading the command is usually + why somebody looks back at a step they have already done. + - **Tech Tools was invisible to anyone without an account**, even though every tool on the page is deliberately usable without one and Secure Send is the single write this product offers a guest. The nav item named no permission, diff --git a/docs/PROJECT-MAP.md b/docs/PROJECT-MAP.md index d4b9857c..76390773 100644 --- a/docs/PROJECT-MAP.md +++ b/docs/PROJECT-MAP.md @@ -88,6 +88,6 @@ Manifest-less directories under `plugins/` are core frontend surface and always ## Size -- test functions defined: **1417** (parametrised cases collect higher) +- test functions defined: **1418** (parametrised cases collect higher) - documented API paths: **305** (`docs/openapi.json`, regenerate with `scripts/gen_openapi.py`) diff --git a/plugins/guides/frontend/components/GuideBlocks.vue b/plugins/guides/frontend/components/GuideBlocks.vue index b446ca12..c839a4a5 100644 --- a/plugins/guides/frontend/components/GuideBlocks.vue +++ b/plugins/guides/frontend/components/GuideBlocks.vue @@ -12,7 +12,8 @@ Reading only: in the editor a tick would be an edit. -->

+ :class="['gb-h' + levelOf(block), + { 'gb-sectiondone': isTicked(block.id) || inDoneSection(index) }]">

+ :class="{ 'gb-sectiondone': isTicked(block.id) || inDoneSection(index) }">