Enable markdown-it typographer and breaks; remove custom dash rule

This commit is contained in:
2026-08-18 04:32:54 +00:00
parent 0fcd7b16f5
commit f9e314e5ea
2 changed files with 22 additions and 3 deletions
+7 -2
View File
@@ -51,8 +51,13 @@ evolves.
single-trusted-author assumption above. single-trusted-author assumption above.
- Renderer: **markdown-it-py** with mdit-py-plugins (footnotes, definition - Renderer: **markdown-it-py** with mdit-py-plugins (footnotes, definition
lists, task lists, brace-attributes; tables and strikethrough from the lists, task lists, brace-attributes; tables and strikethrough from the
default preset), with `html=True` for raw passthrough. Fenced code blocks default preset), with `html=True` for raw passthrough,
are highlighted server-side with **Pygments** (`nowrap` spans styled by `typographer=True` for SmartyPants-style replacements in body text (curly
quotes, `--` / `---` → en / em dashes, `...` → ellipsis, `(c)` → ©, etc.),
and `breaks=True` so single line breaks inside paragraphs become `<br>`.
Code spans/blocks and raw HTML are left untouched. Fenced code blocks are
highlighted server-side with
**Pygments** (`nowrap` spans styled by
`/_assets/pygments-*.css`, which maps every token class onto the `--code-*` `/_assets/pygments-*.css`, which maps every token class onto the `--code-*`
variables; the base stylesheet defines light and dark palette sets resolved variables; the base stylesheet defines light and dark palette sets resolved
via `light-dark()`, so each theme gets the set matching its `color-scheme` via `light-dark()`, so each theme gets the set matching its `color-scheme`
+15 -1
View File
@@ -6,6 +6,12 @@ single author is trusted. Extensions: tables and strikethrough (from the
brace-attributes (`{.class width=300}` on any element, images in brace-attributes (`{.class width=300}` on any element, images in
particular). particular).
markdown-it's typographer is enabled, so body text gets SmartyPants-style
replacements: straight quotes become curly, ``--`` / ``---`` become en / em
dashes, ``...`` becomes an ellipsis, ``(c)`` becomes ©, and so on. Single
line breaks inside paragraphs become ``<br>`` (``breaks: True``). Code
spans/blocks and raw HTML are left untouched.
Images get special treatment: a relative `src` is resolved against the Images get special treatment: a relative `src` is resolved against the
page's own path (so `![alt](photo.avif)` in `/docs/design` is served from page's own path (so `![alt](photo.avif)` in `/docs/design` is served from
`/docs/design/photo.avif`), and an image with a title becomes a `/docs/design/photo.avif`), and an image with a title becomes a
@@ -110,7 +116,15 @@ def _tag_task_checkboxes(state) -> None:
md = ( md = (
MarkdownIt("default", {"html": True, "highlight": _highlight}) MarkdownIt(
"default",
{
"html": True,
"highlight": _highlight,
"typographer": True,
"breaks": True,
},
)
.use(attrs_plugin) .use(attrs_plugin)
.use(footnote_plugin) .use(footnote_plugin)
.use(deflist_plugin) .use(deflist_plugin)