3
0
mirror of https://github.com/larvit/adf-codec.git synced 2026-11-13 04:08:29 +01:00
Commit Graph

179 Commits

Author SHA1 Message Date
lilleman 3414c8690a Answer architecture round 2: every builder joins its pieces through one bounded join, the readers take the engine guard, every refusal stands at the document's path, and a portable list's refusal names its own place 2026-10-13 01:30:12 +02:00
lilleman e3aa790ec8 Refuse markdown past V8's longest string on every engine, before building it 2026-10-13 01:30:12 +02:00
lilleman 62d80a69b7 Answer prose round 1: the README says which refusal differs between engines, items 106 and 107 read one idea a sentence, and two test titles and a comment read on one pass 2026-10-11 21:05:07 +02:00
lilleman a9331b4125 Return a result where a conversion's text would pass the engine's longest string 2026-10-11 21:05:07 +02:00
lilleman 580bc862f2 Write an external image a link marks as [![alt](url)](href) in both writers 2026-10-11 13:31:18 +02:00
lilleman cc40fb95f2 Answer prose round 1: the README drops the parse-path sentence and the comments say what stands in and why 2026-10-11 12:13:51 +02:00
lilleman a38b61347a Report a refusal's path where the node stands once the task list moves it 2026-10-11 12:13:51 +02:00
lilleman cea9137495 Answer prose round 1: the comments and test name say what ends a list, the README says because, the changelog leads with the rename and gives the definition's trigger, and items 56 and 98 state their claims plainly 2026-10-10 13:20:05 +02:00
lilleman fcc6640f6e Answer architecture round 2: a list definitions end joins a set of ended lists, which a named endList fills and openedList reads 2026-10-10 13:20:05 +02:00
lilleman 7d00b11b2c Answer architecture round 1: closeLeaf records the block definitions end beside the blocks it pushes, openedList's comment names the exception, the README drops its counts, the changelog puts other changes last, and item 98 files the blank-line re-scan 2026-10-10 13:20:05 +02:00
lilleman fa7f4ef987 Read two lists a link reference definition parts as two lists, and put the changelog's breaking entries first 2026-10-10 13:20:05 +02:00
lilleman 3741b9e5b3 Answer prose round 1: the comments say why, items 95, 96, 91 and 34 read in one pass, the floor's decision drops the rule CLAUDE.md holds, and item 97 files the changelog's order 2026-10-09 19:17:20 +02:00
lilleman 3e9c56d399 Answer architecture round 3: the comprehension floor's decision names item 95, the directive read takes its index from the claimed prefix, and only the claimed prefix leaves directive-syntax.ts 2026-10-09 19:17:20 +02:00
lilleman af9b0d082c Answer architecture round 2: the escape walk owns its escapes and names every token kind, a directive read takes the claimed prefix, the reader computes one end, imports sort, and item 96 covers unclosed backtick runs 2026-10-09 19:17:20 +02:00
lilleman 652ae60179 Answer architecture round 1: a token's width is true for every kind that carries one, the escape walk threads one record, the == step and the directive precondition say why, and item 96 files the inline HTML scan 2026-10-09 19:17:20 +02:00
lilleman 59ead3e8e9 Escape a line against the inline reader's own tokens, in time linear in a run 2026-10-09 19:17:20 +02:00
lilleman 167bf1ff9b Answer prose round 1: the decision says right after and keeps only its reason, the README counts the link-definition exception, and the comments and spec say which list alternates 2026-10-09 15:39:13 +02:00
lilleman 559ad4ec3c Answer architecture round 1: a * marker before a first line of * alone takes a backslash, the marker choice is a decision, the spec names which lists alternate, and the stale listBreak test goes 2026-10-09 15:39:13 +02:00
lilleman 40580e6948 Read a list whose bullet or ordered delimiter changes as two lists, and alternate the marker between adjacent lists in place of !adf:listBreak 2026-10-09 15:39:13 +02:00
lilleman 180840532d Answer architecture round 2: itemParts takes one run of task lists over the item, the properties share blockTaskItemChildren, and readBlock's bullet case names who reads a task list first 2026-10-09 14:37:06 +02:00
lilleman 2e640ded91 Answer architecture round 1: splitTaskList groups a list into items, bulletBlocks returns the split blocks itself, isTaskItem lives in adf/, a property reads generated task lists through portableMarkdownToAdf, and items 56 and 93 name today's code 2026-10-09 14:37:06 +02:00
lilleman cd6cb8bece Answer prose round 1: a task item keeps the task lists right after its paragraphs nested, and the README, changelog, decision, comment, item 49 and a test title say it plainly 2026-10-09 14:37:06 +02:00
lilleman 67bdc3ca44 Answer stability round 1: a task list nested beside a task item of paragraphs stays nested when written, the property checks every block task item holds paragraphs alone, item 49 names the checkbox loss it closes, and item 93 files the stale refusal path 2026-10-09 14:37:06 +02:00
lilleman 654a960888 Stand a block a task item cannot hold after its task list, in portableMarkdownToAdf and adfToPortableMarkdown 2026-10-09 14:37:06 +02:00
lilleman 77a6806160 Answer architecture round 3: one joinsBreaks flag in place of the parted set and its retry loops, a directive link spells its break, and takesMarks names the table's field 2026-10-09 12:21:18 +02:00
lilleman e4364b19d0 Answer prose round 1: plainer decision title and spec, the refusal the spec owes, and comments that say why 2026-10-09 12:21:18 +02:00
lilleman 06c225f8f4 Keep the hard breaks a link text holds alone, after its destination, and move item 89 to 0.2.1 2026-10-09 12:21:18 +02:00
lilleman 852d010ff7 Answer product-owner round 1: an emphasis or link run spans an unmarked hard break, the recipe drops a hard break's marks, and the refusal names hard breaks 2026-10-09 12:21:18 +02:00
lilleman 2ca5ac41e6 Answer architecture round 1: the node table says a hard break takes no marks, and a link text of hard breaks alone reads as its destination 2026-10-09 12:21:18 +02:00
lilleman 3ff5c95f4c Build a hardBreak carrying no marks where a mark spelling spans a line break, in every reader 2026-10-09 12:21:18 +02:00
lilleman f7eb88ec1b Answer architecture round 5: name the alert and callout markers by their spelling, and item 56 its functions 2026-10-09 10:49:08 +02:00
lilleman d677222050 Read an image alone on an alert's marker line or the lines after it as the image, as a reader panel expected; item 88 filed 2026-10-09 10:49:08 +02:00
lilleman ee3086ad1e Answer prose round 1: one sentence per idea for the image readings, a decision title that states the rule, item 86 names its shapes 2026-10-09 10:49:08 +02:00
lilleman 050364dbdc Answer stability round 2: a link slot keeps a linked image linked, so the link-in-link refusal holds 2026-10-09 10:49:08 +02:00
lilleman d97c5c2935 Answer stability round 1: an !adf:link slot reads an image as plain alt text 2026-10-09 10:49:08 +02:00
lilleman 3a41e9ccca Answer architecture round 3: a link alone holding a titled image keeps its caption, and the decision's title names []() 2026-10-09 10:49:08 +02:00
lilleman 88aef1c8c4 Answer architecture round 1: one owner for the image's ADF shape, the readings' decision, marker paragraphs, the exceptions the README names; items 87 filed and 56 widened 2026-10-09 10:49:08 +02:00
lilleman 3b621a9cef Read every CommonMark image and empty link: an image ADF holds no node for as its linked alt text, a title as its caption, an empty link text as its destination 2026-10-09 10:49:08 +02:00
lilleman 23ec45febd Give each markdown input its own reader: commonMarkToAdf, losslessMarkdownToAdf and portableMarkdownToAdf, each claiming only its flavour 2026-10-09 03:08:39 +02:00
lilleman d7f2384876 Answer architecture round 1: the reader returns its refusals and owns its stack, a decision and a test keep JSON.parse out, item 83 filed, the scoring run recorded 2026-10-08 14:10:50 +02:00
lilleman 380a894589 Answer prose round 1: one name per thing in the new docs, the changelog points at MIGRATION's rows, item 82 drops its partial file list 2026-10-07 12:39:45 +02:00
lilleman 913aae49ea Answer stability round 1: hand every not-a-string refusal its own position 2026-10-07 12:39:45 +02:00
lilleman a62cd39809 Answer architecture round 2: rename isBareText to isSpellableText, say which link holdsLink counts, the README names the type passed 2026-10-07 12:39:45 +02:00
lilleman 41ac4510f5 Answer architecture round 1: name a non-string by typeof alone, name and comment what the seats could not read, file items 81 and 82 2026-10-07 12:39:45 +02:00
lilleman 2c4fadbd8b Refuse a markdown input that is not a string with not-a-string 2026-10-07 12:39:45 +02:00
lilleman 7da3c1fbbe Refuse an attribute value JSON does not hold, and push a folded callout's title leaves one at a time 2026-10-05 01:07:55 +02:00
lilleman 1b55e0f528 Answer prose round 3: the comments on highlight pairing, escaped backtick lengths and the memo read once, and the Raw HTML paragraph loses its half clause 2026-10-04 23:36:47 +02:00
lilleman 1ff27164f8 Answer architecture round 2: the spelling memo, headroom and the escaped backtick lengths state their rule at the code, and the highlight counter is named for what it counts 2026-10-04 23:36:47 +02:00
lilleman 0bc086ba43 Answer architecture round 1: a code span opening a line spells as CommonMark, the slot refuses a null character, every generated document emits 2026-10-04 20:43:46 +02:00
lilleman e040d1d3ef Spell every document the emitter refused for a carriage return, a null character, a code-span line start or an empty text node 2026-10-04 20:29:29 +02:00