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

72 Commits

Author SHA1 Message Date
lilleman fbbb8de7d7 Ship htmlToAdf: read back exactly the HTML adfToHtml writes, a carry element from its data-adf alone, any other HTML refused 2026-10-28 11:18:50 +01:00
lilleman e20a1c3a30 Answer architecture round 5: 0 🔴, 0 🟡 (0 misread); shownImage returns no textless state, item 143 and the card rule name their whole reach 2026-10-26 13:20:27 +01:00
lilleman 9ff53c1658 Answer architecture round 4: 0 🔴, 1 🟡 (0 misread); one image rule in shown-text for both writers, a link mark's href kept past a bad title, the card rule recorded 2026-10-26 13:20:27 +01:00
lilleman fb75c33975 Answer prose round 1: 0 🔴, 11 🟡 (0 misread); claims true to the code, one pick per line in the dialect's panels, plainer comments and test names 2026-10-26 13:20:27 +01:00
lilleman fd5b2fb86c Answer principles round 3: 0 🔴, 1 🟡 (0 misread); the carry walk's entries hold their code block, the linked image its own function, item 143 filed 2026-10-26 13:20:27 +01:00
lilleman 7a38db2563 Answer principles round 1: 3 🔴, 8 🟡 (0 misread); attributes as data-*, carried content as paragraphs, links and notes, no character HTML cannot hold, mutants killed 2026-10-26 13:20:27 +01:00
lilleman 1f46111fe4 Answer architecture round 2: 0 🔴, 0 🟡 (0 misread); heldTextLength private to writableContent 2026-10-26 13:20:27 +01:00
lilleman e234905c27 Answer architecture round 1: 2 🔴, 6 🟡 (0 misread); one escaping path refusing null characters, block writers returning their pieces, the HTML writer split, shared entry checks, lint between formats 2026-10-26 13:20:27 +01:00
lilleman 6fe36d5947 Ship adfToHtml: semantic HTML for the CommonMark blocks and marks, an adf-carry element for the rest 2026-10-26 13:20:27 +01:00
lilleman e56291eb90 Answer prose round 1: 0 🔴, 8 🟡; say which reader skips what, reorder the migration's keep-the-mark advice, file the decision title as a question 2026-10-14 21:10:41 +02:00
lilleman c9f9276df9 Answer architecture round 1: 1 🔴, 2 🟡; read a node's taken mark types once, let the highlight ask takesMark, correct the README's code-span bullet 2026-10-14 21:10:41 +02:00
lilleman 278ebbbad5 Give code text no mark but code, link and annotation, in every reader 2026-10-14 21:10:41 +02:00
lilleman 6c389b9c83 Answer prose round 1: 0 🔴, 8 🟡; say which marks a node refuses, and name the fix in the directive mark refusal 2026-10-14 15:08:46 +02:00
lilleman 6842f386ae Answer architecture round 1: 2 🔴, 4 🟡; refuse a link around only nodes that take none, mark the change breaking, file code-text marks 2026-10-14 15:08:46 +02:00
lilleman 1ae7ba6992 Give an inline node no mark Atlassian's schema withholds from it, in every reader 2026-10-14 15:08:46 +02:00
lilleman aefcd4b9e3 Answer prose round 1: 0 🔴, 6 🟡; the changelog names what breaks, the fallback reads as untyped mark, attribute or value, the spec's value list and marks paragraph split, messages name the JSON array to write 2026-10-14 10:48:12 +02:00
lilleman 168ca1cea2 Answer stability round 1: 0 🔴, 2 🟡; a mark's malformed attrs name their cause, the docs name a value of the wrong type as a fallback 2026-10-14 10:48:12 +02:00
lilleman c8ea357fa7 Answer architecture round 1: 2 🔴, 5 🟡; nesting counts the JSON fallback alone, one mark attrs read and spell, one mark table, a malformed mark is unsupported-node-shape, the old colwidth names the comma list, README and notes name the attrs fallback 2026-10-14 10:48:12 +02:00
lilleman e882b5de7a Spell colwidth as a comma list and a block's marks by name 2026-10-14 10:48:12 +02:00
lilleman a0bb09b80d Answer architecture round 4: the forecast and the indent leave, a writer refuses a document whose text alone passes the bound, and the joins are the one bound left 2026-10-13 01:30:12 +02:00
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 2b5d22cbc6 Answer architecture round 1: every container joining several walks sums their projections before it joins, the portable reduction refuses a list whose spelling is refused, and heldTextLength moves beside textLength 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 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 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 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 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 0cdc56a56f Answer stability round 1: accept a plain object from another realm 2026-10-05 01:07:55 +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 e81e0560a5 Answer prose round 1: the refusal list lives in the error row, the slot rule gives its reason, and stale item citations go 2026-10-04 21:09:51 +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 95e1ccc4c1 Record the guards' input boundary and Goal 8's size as JSON, and drop the hardening past it 2026-10-04 19:18:55 +02:00
lilleman 576e1641f9 Answer stability round 3: walk an array's elements as the guards do 2026-10-04 17:18:03 +02:00
lilleman fd620b4975 Answer stability round 2: refuse a node or mark holding a key it does not own 2026-10-04 17:12:46 +02:00
lilleman 3c73a23689 Answer product-owner round 1: name the cycle in its own message and in the error table 2026-10-04 17:03:21 +02:00
lilleman 7d1412307b Answer security round 1: clean 2026-10-04 17:03:21 +02:00
lilleman 7be73254ea Refuse a cyclic input as not-an-adf-document 2026-10-04 16:57:51 +02:00
lilleman bc4b65501b Reword the isBareText and adfNodes comments 2026-10-03 17:52:56 +02:00
lilleman ead2e7f4b7 Give the unmarked bare text check and the text-holding-content refusal one owner each 2026-10-03 16:22:19 +02:00
lilleman 72f919ae04 Rename isPlainText to isBareText, apart from the plain flavour, and say truly what it admits 2026-10-03 16:19:09 +02:00
lilleman 84a0750397 Keep 'carry' for the opaque carry: holdsOnlyAttributes, spellEdgeWhitespace, bothCommonMark 2026-10-03 15:52:19 +02:00
lilleman acc8227598 Gather the plain flavour's code in markdown/plain/ 2026-10-03 15:50:24 +02:00
lilleman af98e9cbdc Trim two comments 2026-10-03 15:12:54 +02:00
lilleman 95bd4a9d01 Keep format knowledge out of mergeAdjacentText's comment 2026-10-03 14:46:29 +02:00
lilleman 6a54757839 Spell 'a text node holding its text and marks alone' once, as isPlainText 2026-10-03 14:44:00 +02:00
lilleman 3aa693d2a1 Keep one merge loop and one mark key: editor-normal compares normalized marks with identicalMark 2026-10-03 14:17:22 +02:00
lilleman 039aac8873 Make markdownToAdf(adfToMarkdown(doc)) deep-equal doc: textBreak, empty keys, -0, typed carry fences, code blocks of several text nodes 2026-10-03 12:25:01 +02:00
lilleman 1d02604a12 10b - an empty alert holds an empty paragraph, a == pair is bounded outside and passes over held nodes 2026-09-25 21:05:58 +02:00