Make bold visible, grow the callout set, and release 0.1.10 - #9
Merged
Conversation
Bold was emitted as a bare ESC[1m and nothing else, so whether it read as emphasis came down to whether the font shipped a bold face — inside tmux, or with a font that has none, bold prose was indistinguishable from the text around it. Strong runs now carry a `strong` foreground from the theme alongside the weight, but only where the run has no colour of its own, so bold inside a heading, link or code span keeps what it had. Callouts grow from GitHub's five tags to thirteen, matched case-insensitively so an Obsidian vault in lowercase renders like a README in caps. Tags that mean the same thing share a colour, keeping the palette a legible six. Whatever follows the tag on the first line becomes the title, as markup rather than a string, so it carries inline styling. An unrecognised tag is still a callout — plain quote colour, titled with its own name — instead of falling back to a blockquote with the marker sitting in the prose. Along the way, two things the old alert path got wrong: it matched the marker for its colour and then rendered it again as body text, so every callout printed its own tag twice, and it dropped the blank rows between a callout's blocks, running the paragraphs together. Callouts had no fixture at all, which is how both survived; they have one now, plus unit coverage for nesting, lists, spans, link columns and --no-color. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Both reuse an existing colour rather than growing the palette: QUESTION takes the warning yellow, following Obsidian, and DECISION the important mauve. That keeps the six colours a reader can still tell apart, and the title text is what distinguishes tags that share one. DECISION is termdown's own — Obsidian has no equivalent — for notes and plans that record a decision and the reasoning behind it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The width sweep only exercised paragraphs, so the two-column narrowing that `restBlocks` applies to a code card or a table inside a callout was unverified — a card that ignored it would fit its own box and still overhang the row. Bold inside a callout title is the alert case the strong-colour fallback names but never tested, and `--no-color` had nothing asserting the new foreground disappears with the weight rather than leaking a bare SGR into plain text. Also: the README's inline-styles bullet now says bold carries a colour, and the changelog's bold entry loses the blank line that split the Fixed list in two. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The release workflow verifies the pushed tag against `appVersion`, so the bump and the changelog date land together, before the tag exists. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two rendering fixes and the callout vocabulary they exposed, plus the 0.1.10 release bump.
**bold**emitted a bareESC[1mand nothing else, so whether it read as emphasis came down to whether the font shipped a bold face — under tmux, or with a font that has none, bold prose looked identical to the text around it. Strong runs now carry astrongforeground from the theme alongside the weight (near-white on the dark themes, near-black onlight/solarized-light, Solarized's own base2 where a flat white would clash). Bold that already has a colour — a heading, a link, a callout title, an inline code span — keeps it.[!NOTE]marker was matched for its colour and then rendered again as part of the body, so every callout read● NOTEover[!NOTE] Body text. Parsing now lives inCalloutand the header consumes the marker. Blank rows between a callout's paragraphs keep the bar too, instead of being dropped and running the paragraphs together.INFO,TODO,ABSTRACT,SUCCESS,EXAMPLE,QUESTION,DECISION,FAILURE,DANGER,BUG. Tags match case-insensitively, text after the tag becomes the title (carrying inline markup), and a tag this build has no colour for is still a callout in the plain quote colour rather than leaking[!MYTAG]into the prose.Docs
README feature list,
CHANGELOG.md, a newexamples/callouts.md(linked fromexamples/index.md), and theshowcase.mdsection renamed from "GitHub alerts" — with the wikilink that pointed at that heading followed along.Tests
CalloutTests(28) covers parsing, aliases, titles, nesting, source spans, footnotes and the width invariant for both prose and the blocks after the opening paragraph; acalloutssnapshot fixture pins the rendering.AnsiRendererTestscovers the strong colour, the runs that must keep their own, and--no-color.ThemeTestsasserts every theme givesstrongandalertAbstracta distinguishable value.just checkis clean: 609 tests, 0 lint violations.Release
appVersion→0.1.10with the changelog dated to match, so pushingv0.1.10after the merge passes the workflow's tag check.🤖 Generated with Claude Code