#71 Markdown: enable GFM tables + task lists + strikethrough (Options::empty() disables them)
markdown_to_html uses Options::empty(), so GFM features are off. Most visible consequences:
- Tables render as literal pipes.
agents.htmlshows:| field | rule | |------|------| |title| required, plain text, <=300 chars | …Any README/wiki/issue with a table is unreadable. - Task lists render as literal
[ ]—.forgeissues use- [ ]checklists everywhere (see any issue page). - No strikethrough, no autolinks (
https://…stays plain text), no footnotes.
This is the cheapest perceived-quality win in the batch: three option flags.
Scope
Options::ENABLE_TABLES | ENABLE_TASKLISTS | ENABLE_STRIKETHROUGH | ENABLE_FOOTNOTES(drop footnotes if it complicates the CSS budget; tables + task lists + strikethrough are the must-haves; addENABLE_GFM? check the pulldown-cmark 0.13 API).- Style them:
table(border-collapse,--border,--bg-thheader like the existing data tables),th/tdpadding matching the file tables,input[type=checkbox]inline + disabled look (no JS),delin--fg-dim,.footnotessmall. - Task list checkboxes: pulldown-cmark emits
<input disabled type="checkbox">; ensure they aredisabled(they are) and don't inherit the big form input styling. - Do the URL scheme filter from #62 in the same pass — same
Event/Tagmapping function, one edit. - Tests: table →
<table>;- [x]→ checked checkbox;~~x~~→<del>;https://xlinkified only if autolinks enabled.
Acceptance
-
agents.htmlrenders a real table - task-list items show checkboxes (checked/unchecked)
- blockquote/table inside lists still looks right
-
javascript:links blocked (see #62) - new table CSS stays inside the (raised) CSS budget
Uunknown ·
Fixed in 2b56eb82: GFM options + .markdown wrapper (#71); scheme allowlist with entity decoding before the check (#62).