fix(docs/product): tighten university copy and match YAML hints to the error

Copy: drop the 01-06 feature numbering, which implied a sequence these six
independent benefits do not have. Reword the academic-calendar answer so
the subject is explicit — it previously hung on an "it" with no antecedent
— and replace the unexpanded DFT with the broader documentation point.
Restore "where the process allows" to the analog claim; without it page 1
offered six analog pins unconditionally while page 2 marked two of the
three PDKs as Partial. Remove the €10k discount from the pricing footnote,
where it sat immediately after a €3,325 worked example that does not
qualify for it; it still appears in the page 2 ordering table.

build.py: the YAML parse error printed a hint about escaping HTML quotes
regardless of the actual failure, which sent you looking in the wrong place
for a stray tab. The hint is now chosen from the error.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Matthew Venn
2026-08-02 20:10:42 +02:00
co-authored by Claude Opus 5
parent 17ec153059
commit 5cea629360
2 changed files with 31 additions and 27 deletions
+13 -8
View File
@@ -111,14 +111,19 @@ def load_config(path: Path) -> dict:
detail = getattr(error, "problem", str(error))
if mark is None:
raise SystemExit(f"{path}: {detail}")
line = (
text.splitlines()[mark.line] if mark.line < len(text.splitlines()) else ""
)
raise SystemExit(
f"{path}:{mark.line + 1}: {detail}\n"
f" {line.strip()}\n"
' hint: inside a "quoted" value, HTML quotes must be escaped as \\"'
)
lines = text.splitlines()
line = lines[mark.line] if mark.line < len(lines) else ""
# Only offer a hint that matches the actual failure; a generic one is noise.
if "\\t" in detail or line.startswith("\t"):
hint = "YAML forbids tabs for indentation — use spaces"
elif "expected ',' or ']'" in detail or "'\"'" in detail:
hint = 'inside a "quoted" value, HTML quotes must be escaped as \\"'
else:
hint = None
report = f"{path}:{mark.line + 1}: {detail}\n {line.strip()}"
raise SystemExit(f"{report}\n hint: {hint}" if hint else report)
def walk_strings(node, path: str = ""):