oxidecomputer / oxidecomputer/prettier-plugin-asciidoc

A marker item's + with two blanks inside a directive pair prints one blank and the next block attaches

Open
#332 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

conformance mechanism:licensed-emission obligation:meaning-preservation tier-1
Dominant language
TypeScript
Stars
0
Forks
1
PR merge metrics
No merged PRs in 30d

Description

What happens

A marker item whose tail + is followed by two blank lines, inside a preprocessor conditional pair, is printed with one blank line, and the block below attaches to the item:

:x:
ifdef::x[]
* a
+


next para
endif::[]

formats to :x:\nifdef::x[]\n* a\n+\n\nnext para\nendif::[]\n (the + survives, the blank run narrows). The input renders next para outside the list; the output pulls it into the item. Verified at main 3e7ace33: render changes, output is a fixed point, so the corruption is silent and stable. Ruby 2.0.26 and the JS port agree on both readings.

Mechanism

The bare-marker twin of #269: an armed tail whose pop is withheld, where the two-blank run is the only carrier of detachment. Outside a directive pair the printer's separator rule handles this (the #171/#259 landings); the Sep 7 review measured the state reachable only via insideDirectivePair (3 of 1,646 documents searched, 0 in the reference corpus). Found by the review's reader-feasibility seat; its findings file (plus-reader-findings.md, finding F6) has the trace.

Whether the #269 fix candidate (ItemBody.droppedLiveTail, prototyped Sep 7, plus-prototype-findings.md) reaches this state was not measured; its grids carried no directive pairs. The lane that lands the #269 fix should add this witness to its grid and report which fact arm, if any, carries it.

Related

#269, #274, #325 (row R4's family), #202/#248 (family arms).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with plus-reader-findings.md, finding F6, and compare the witness with the #269 fix candidate described in plus-prototype-findings.md. Add this directive-pair case to the candidate's grid and trace whether any fact arm preserves the two-blank separator. Done means reporting whether the candidate reaches this state and which fact arm, if any, carries it.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.