feat(model): render checkbox controls as task list tokens - #122
Merged
Conversation
tomsideguide
force-pushed
the
feat/checkbox-inline
branch
from
August 20, 2026 20:21
1c04ae4 to
d8fa9ae
Compare
tomsideguide
force-pushed
the
feat/checkbox-inline
branch
from
August 20, 2026 20:28
d8fa9ae to
7847603
Compare
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.
Checkbox controls had no home in the model:
ListItem.checkedexisted but no reader set it, and readers about to extract form controls (spreadsheets, docx form fields, html inputs) would each have hand-built[x].Adds
Inline::Checkbox(bool), rendered as[x]/[ ]by the Markdown renderer, and foldsListItem.checkedinto it: a task list item is a list item whose content starts with a checkbox.Watch:
ListItem.checkedis removed from the public model.Summary by cubic
Centralizes checkbox modeling by adding
Inline::Checkbox(bool)and removingListItem.checked. Markdown now renders checkboxes as task-list tokens in content; list rendering no longer injects checkbox state from the item.Inline::Checkboxandcheckbox_text(bool); plain text includes the token;inlines_are_emptytreats checkboxes as non-empty.[x]/[ ]and inserts a separating space before following text when needed; task-list appearance comes from an inline checkbox at the start of the first paragraph; table cells render tokens; delimiter logic unchanged.Inline.kind = 'checkbox'andInline.checked?: boolean; removeListItem.checkedfrom all APIs.checked; HTML space-boundary handling treats checkboxes as non-whitespace content.Bold migrations:
ListItem.checkedby insertingInline::Checkbox(true|false)as the first inline of the item's first paragraph.Inline::Checkboxinstead of literal[x]/[ ].Inline.kind === 'checkbox'andInline.checkedand remove any reads ofListItem.checked.Written for commit 7847603. Summary will update on new commits.