@charcuterie/ui 3.14.0 → 3.14.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/markdownEditorCodeMirror/livePreview.d.ts.map +1 -1
- package/dist/markdownEditorCodeMirror/livePreview.js +90 -2
- package/dist/markdownEditorCodeMirror/livePreview.js.map +1 -1
- package/dist/markdownEditorCodeMirror/livePreviewRanges.d.ts.map +1 -1
- package/dist/markdownEditorCodeMirror/livePreviewRanges.js +93 -4
- package/dist/markdownEditorCodeMirror/livePreviewRanges.js.map +1 -1
- package/package.json +1 -1
- package/src/markdownEditorCodeMirror/MarkdownView.mdx +16 -0
- package/src/markdownEditorCodeMirror/MarkdownView.stories.tsx +48 -0
- package/src/markdownEditorCodeMirror/MarkdownView.test.tsx +109 -0
- package/src/markdownEditorCodeMirror/livePreview.ts +97 -2
- package/src/markdownEditorCodeMirror/livePreviewRanges.test.ts +233 -0
- package/src/markdownEditorCodeMirror/livePreviewRanges.ts +129 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"livePreview.d.ts","sourceRoot":"","sources":["../../src/markdownEditorCodeMirror/livePreview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,KAAK,EAEV,SAAS,EAEV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,KAAK,EAGL,UAAU,EACX,MAAM,mBAAmB,CAAA;AAyC1B;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;;;;;OAQG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,oEAAoE;IACpE,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,yDAmB7B,CAAA;AAOF,uCAAuC;AACvC,eAAO,MAAM,qBAAqB,sDACH,CAAA;AAE/B;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,qBAchC,CAAA;
|
|
1
|
+
{"version":3,"file":"livePreview.d.ts","sourceRoot":"","sources":["../../src/markdownEditorCodeMirror/livePreview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,KAAK,EAEV,SAAS,EAEV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,KAAK,EAGL,UAAU,EACX,MAAM,mBAAmB,CAAA;AAyC1B;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;;;;;OAQG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,oEAAoE;IACpE,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,yDAmB7B,CAAA;AAOF,uCAAuC;AACvC,eAAO,MAAM,qBAAqB,sDACH,CAAA;AAE/B;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,qBAchC,CAAA;AAkqCJ,eAAO,MAAM,WAAW,GACtB,UAAS,kBAAuB,KAC/B,SA6BF,CAAA"}
|
|
@@ -516,6 +516,30 @@ const toDecorations = (view) => {
|
|
|
516
516
|
to: visible.to,
|
|
517
517
|
tree: syntaxTree(view.state),
|
|
518
518
|
})) {
|
|
519
|
+
/**
|
|
520
|
+
* One malformed descriptor costs its own construct, never the
|
|
521
|
+
* page.
|
|
522
|
+
*
|
|
523
|
+
* `Decoration.mark` throws `Mark decorations may not be
|
|
524
|
+
* empty` on a zero-length range, and a throw in here does not
|
|
525
|
+
* degrade gracefully: CodeMirror destroys the view plugin, so
|
|
526
|
+
* **every** decoration in the document disappears at once and
|
|
527
|
+
* the reader is left looking at raw markdown. That is what
|
|
528
|
+
* ``[`file.md`](path)`` did to whole documents before
|
|
529
|
+
* `toCloseMark` — one link in one paragraph, and the file
|
|
530
|
+
* stopped rendering.
|
|
531
|
+
*
|
|
532
|
+
* `toLivePreviewRanges` is not supposed to emit one of these
|
|
533
|
+
* any more. This is the second wall, and it is worth having
|
|
534
|
+
* precisely because the first wall already failed once.
|
|
535
|
+
*
|
|
536
|
+
* A `line` decoration is the exception, and legitimately so —
|
|
537
|
+
* it is a point anchored to a line start, so it is always
|
|
538
|
+
* zero-length.
|
|
539
|
+
*/
|
|
540
|
+
if (range.type !== "line" && range.from >= range.to) {
|
|
541
|
+
continue;
|
|
542
|
+
}
|
|
519
543
|
switch (range.type) {
|
|
520
544
|
case "image": {
|
|
521
545
|
decorations.push(Decoration.replace({
|
|
@@ -626,10 +650,39 @@ const livePreviewTableField = StateField.define({
|
|
|
626
650
|
},
|
|
627
651
|
provide: (field) => EditorView.decorations.from(field),
|
|
628
652
|
});
|
|
653
|
+
/**
|
|
654
|
+
* `toDecorations`, but a throw costs one render rather than the
|
|
655
|
+
* editor.
|
|
656
|
+
*
|
|
657
|
+
* CodeMirror's answer to a view plugin that throws is to destroy
|
|
658
|
+
* it. That is permanent for the life of the editor: the document
|
|
659
|
+
* falls back to raw markdown and no later keystroke brings it back,
|
|
660
|
+
* because there is no longer a plugin to run. The reader sees a
|
|
661
|
+
* surface that broke and stayed broken, and the only trace is one
|
|
662
|
+
* console line nobody is looking at.
|
|
663
|
+
*
|
|
664
|
+
* Returning an empty set instead costs the *current* frame — that
|
|
665
|
+
* frame looks like raw source — and the next update repaints
|
|
666
|
+
* normally. Recovery beats a permanent failure.
|
|
667
|
+
*
|
|
668
|
+
* The stale set is deliberately not reused. Decorations here are
|
|
669
|
+
* not mapped through document changes, so holding the previous
|
|
670
|
+
* frame's offsets over an edit invites a second throw for
|
|
671
|
+
* positions past the end of the document.
|
|
672
|
+
*/
|
|
673
|
+
const toSafeDecorations = (view) => {
|
|
674
|
+
try {
|
|
675
|
+
return toDecorations(view);
|
|
676
|
+
}
|
|
677
|
+
catch (error) {
|
|
678
|
+
console.error("[charcuterie] live preview could not build its decorations; this frame renders as raw markdown.", error);
|
|
679
|
+
return Decoration.none;
|
|
680
|
+
}
|
|
681
|
+
};
|
|
629
682
|
const livePreviewPlugin = ViewPlugin.fromClass(class {
|
|
630
683
|
decorations;
|
|
631
684
|
constructor(view) {
|
|
632
|
-
this.decorations =
|
|
685
|
+
this.decorations = toSafeDecorations(view);
|
|
633
686
|
}
|
|
634
687
|
update(update) {
|
|
635
688
|
// Selection is in the list because concealment depends on the
|
|
@@ -646,7 +699,7 @@ const livePreviewPlugin = ViewPlugin.fromClass(class {
|
|
|
646
699
|
// that has to be rebuilt.
|
|
647
700
|
update.startState.facet(livePreviewOptions) !==
|
|
648
701
|
update.state.facet(livePreviewOptions)) {
|
|
649
|
-
this.decorations =
|
|
702
|
+
this.decorations = toSafeDecorations(update.view);
|
|
650
703
|
}
|
|
651
704
|
}
|
|
652
705
|
}, {
|
|
@@ -765,6 +818,27 @@ const livePreviewTheme = EditorView.theme({
|
|
|
765
818
|
".cm-scroller": {
|
|
766
819
|
fontFamily: "var(--font-sans)",
|
|
767
820
|
},
|
|
821
|
+
/**
|
|
822
|
+
* Prose leading, not code leading.
|
|
823
|
+
*
|
|
824
|
+
* CodeMirror's base theme sets `line-height: 1.4` on the
|
|
825
|
+
* content, which is right for the thing it was written for: a
|
|
826
|
+
* file of short lines you scan down. It is too tight for a
|
|
827
|
+
* document of wrapped paragraphs, where the eye has to find the
|
|
828
|
+
* start of the next line across the full measure — and this
|
|
829
|
+
* surface is the one place in the fleet that renders long-form
|
|
830
|
+
* prose. Docket's own body copy has used 1.6 since it shipped;
|
|
831
|
+
* this is the same number, in the component that owns the
|
|
832
|
+
* document.
|
|
833
|
+
*
|
|
834
|
+
* On `.cm-content` rather than `.cm-line`: CodeMirror measures
|
|
835
|
+
* line height to size its viewport, and a per-line override is
|
|
836
|
+
* how a document ends up with a scrollbar that does not match
|
|
837
|
+
* it.
|
|
838
|
+
*/
|
|
839
|
+
".cm-content": {
|
|
840
|
+
lineHeight: "1.6",
|
|
841
|
+
},
|
|
768
842
|
/**
|
|
769
843
|
* …except in raw mode, where monospace is the honest choice:
|
|
770
844
|
* "Markdown source" is a *source* view, and source is code.
|
|
@@ -780,6 +854,20 @@ const livePreviewTheme = EditorView.theme({
|
|
|
780
854
|
".cm-md-code": {
|
|
781
855
|
color: "var(--color-intent-info-content)",
|
|
782
856
|
fontFamily: "var(--font-mono)",
|
|
857
|
+
/**
|
|
858
|
+
* A monospace face at the SAME `font-size` as the prose
|
|
859
|
+
* around it reads bigger than the prose: it is drawn on a
|
|
860
|
+
* fixed advance width and carries a taller x-height, so
|
|
861
|
+
* `Victor Mono` at 17px next to `Outfit` at 17px looks like an
|
|
862
|
+
* emphasis nobody asked for. In an agent-written description —
|
|
863
|
+
* where a third of the nouns are file names in backticks —
|
|
864
|
+
* that is the difference between a document with code in it
|
|
865
|
+
* and a wall of shouting.
|
|
866
|
+
*
|
|
867
|
+
* `em`, so it tracks whatever size the block is: a code span
|
|
868
|
+
* inside a heading stays proportional to the heading.
|
|
869
|
+
*/
|
|
870
|
+
fontSize: "0.9em",
|
|
783
871
|
},
|
|
784
872
|
".cm-md-codeblock": {
|
|
785
873
|
backgroundColor: "var(--color-surface-sunken)",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"livePreview.js","sourceRoot":"","sources":["../../src/markdownEditorCodeMirror/livePreview.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"livePreview.js","sourceRoot":"","sources":["../../src/markdownEditorCodeMirror/livePreview.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"livePreviewRanges.d.ts","sourceRoot":"","sources":["../../src/markdownEditorCodeMirror/livePreviewRanges.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,KAAK,EAGV,IAAI,EACL,MAAM,eAAe,CAAA;AAOtB;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAC3B,YAAY,GACZ,MAAM,GACN,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,OAAO,CAAA;AAEX,wDAAwD;AACxD,MAAM,MAAM,mBAAmB,GAC3B,UAAU,GACV,MAAM,GACN,UAAU,GACV,UAAU,GACV,eAAe,GACf,QAAQ,GACR,KAAK,CAAA;AAET;;;;;;GAMG;AACH,MAAM,MAAM,yBAAyB,GACjC,QAAQ,GACR,KAAK,GACL,OAAO,CAAA;AAEX;;;;;;;GAOG;AACH,MAAM,MAAM,uBAAuB,GAC/B;IACE,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,OAAO,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ,GACD;IACE,SAAS,EAAE,SAAS,mBAAmB,EAAE,CAAA;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAEL,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,yBAAyB,CAAA;IACpC;;;;;;;OAOG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,SAAS,uBAAuB,EAAE,CAAA;IAC5C,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,SAAS,oBAAoB,EAAE,CAAA;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;CACX,GAAG,CACA;IACE,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,OAAO,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ,GACD;IACE,+DAA+D;IAC/D,SAAS,EAAE,OAAO,CAAA;IAClB;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb,GACD;IACE;;;;;;;;OAQG;IACH,WAAW,EAAE,OAAO,CAAA;IACpB,IAAI,EAAE,QAAQ,CAAA;CACf,GACD;IACE,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,IAAI,EAAE,MAAM,CAAA;CACb,GACD;IACE,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CACJ,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,SAAS,mBAAmB,EAAE,CAAA;IACpC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,OAAO,CAAA;CACd,CAAA;AAED,8DAA8D;AAC9D,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,EAAE,SAAS,oBAAoB,EAAE,CAAA;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;
|
|
1
|
+
{"version":3,"file":"livePreviewRanges.d.ts","sourceRoot":"","sources":["../../src/markdownEditorCodeMirror/livePreviewRanges.ts"],"names":[],"mappings":"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"}
|
|
@@ -112,6 +112,86 @@ const toChildNamed = (node, name) => {
|
|
|
112
112
|
}
|
|
113
113
|
return null;
|
|
114
114
|
};
|
|
115
|
+
/**
|
|
116
|
+
* The closing `]` of a `Link` or an `Image`.
|
|
117
|
+
*
|
|
118
|
+
* **Not** `openMark.nextSibling`. That sibling is the closing
|
|
119
|
+
* bracket only while the text between the brackets is plain prose,
|
|
120
|
+
* because plain prose gets no node of its own. Put any inline
|
|
121
|
+
* construct in there — ``[`file.md`](path)``, `[**bold**](path)`,
|
|
122
|
+
* `[~~struck~~](path)` — and the second child is that construct,
|
|
123
|
+
* so the old walk measured the link text as `[` → the construct's
|
|
124
|
+
* own start and got a **zero-length** range. CodeMirror rejects an
|
|
125
|
+
* empty mark decoration (`Mark decorations may not be empty`), the
|
|
126
|
+
* throw destroys the view plugin, and every decoration in the
|
|
127
|
+
* document goes with it: the whole file drops to raw source.
|
|
128
|
+
*
|
|
129
|
+
* Text *before* the construct failed more quietly and just as
|
|
130
|
+
* wrongly. `[a *b*](path)` marked `a ` as the link and then
|
|
131
|
+
* concealed `*b*](path)`, because the concealment marker starts
|
|
132
|
+
* where this bracket is thought to be.
|
|
133
|
+
*
|
|
134
|
+
* The bracket is the first `LinkMark` **child** after the opener. A
|
|
135
|
+
* nested image's brackets belong to the `Image` node, not to this
|
|
136
|
+
* one, so a direct-sibling walk steps over `[](url)`
|
|
137
|
+
* without mistaking `![` for the end of the link text.
|
|
138
|
+
*/
|
|
139
|
+
const toCloseMark = (openMark, text) => {
|
|
140
|
+
for (let sibling = openMark?.nextSibling; sibling; sibling = sibling.nextSibling) {
|
|
141
|
+
if (sibling.name === "LinkMark" &&
|
|
142
|
+
// Redundant against today's parser — the first `LinkMark`
|
|
143
|
+
// after the opener is always `]`, for a link and an image
|
|
144
|
+
// alike. It is here to state the contract: this function
|
|
145
|
+
// returns a **closing bracket**, and it returns nothing
|
|
146
|
+
// rather than the wrong node if that ever stops holding.
|
|
147
|
+
text.slice(sibling.from, sibling.to) === "]") {
|
|
148
|
+
return sibling;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return null;
|
|
152
|
+
};
|
|
153
|
+
/**
|
|
154
|
+
* The syntax spans `toPlainText` drops, gathered depth-first.
|
|
155
|
+
*
|
|
156
|
+
* `Escape` contributes only its backslash — `\]` reads as `]`.
|
|
157
|
+
*/
|
|
158
|
+
const toSyntaxSpans = (node, spans) => {
|
|
159
|
+
for (let child = node.firstChild; child; child = child.nextSibling) {
|
|
160
|
+
if (CONCEALABLE_MARK_NAMES.has(child.name)) {
|
|
161
|
+
spans.push({ from: child.from, to: child.to });
|
|
162
|
+
}
|
|
163
|
+
else if (child.name === "Escape") {
|
|
164
|
+
spans.push({ from: child.from, to: child.from + 1 });
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
toSyntaxSpans(child, spans);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return spans;
|
|
171
|
+
};
|
|
172
|
+
/**
|
|
173
|
+
* What `[from, to)` reads as once its inline syntax is removed.
|
|
174
|
+
*
|
|
175
|
+
* An image's `alt` is an attribute rather than a span a reader can
|
|
176
|
+
* look at, so ```` has to arrive as
|
|
177
|
+
* `code shot` — never as its own source, and never as the empty
|
|
178
|
+
* string the old sibling walk produced. CommonMark says the same:
|
|
179
|
+
* alt is the plain-text rendering of the inline content.
|
|
180
|
+
*
|
|
181
|
+
* Tree order is ascending, so the spans need no sort.
|
|
182
|
+
*/
|
|
183
|
+
const toPlainText = (node, text, from, to) => {
|
|
184
|
+
let offset = from;
|
|
185
|
+
let plainText = "";
|
|
186
|
+
for (const span of toSyntaxSpans(node, [])) {
|
|
187
|
+
if (span.from < offset || span.to > to) {
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
plainText += text.slice(offset, span.from);
|
|
191
|
+
offset = span.to;
|
|
192
|
+
}
|
|
193
|
+
return plainText + text.slice(offset, to);
|
|
194
|
+
};
|
|
115
195
|
/**
|
|
116
196
|
* A heading's `#` run, plus the whitespace after it.
|
|
117
197
|
*
|
|
@@ -491,7 +571,7 @@ const toWalker = ({ isRawMode, selections, text, }) => {
|
|
|
491
571
|
const node = nodeRef.node;
|
|
492
572
|
const urlNode = toChildNamed(node, "URL");
|
|
493
573
|
const openMark = node.firstChild;
|
|
494
|
-
const closeMark = openMark
|
|
574
|
+
const closeMark = toCloseMark(openMark, text);
|
|
495
575
|
const safeUrl = urlNode
|
|
496
576
|
? toSafeImageUrl(text.slice(urlNode.from, urlNode.to))
|
|
497
577
|
: undefined;
|
|
@@ -507,7 +587,7 @@ const toWalker = ({ isRawMode, selections, text, }) => {
|
|
|
507
587
|
closeMark &&
|
|
508
588
|
!isInside(selections, node.from, node.to)) {
|
|
509
589
|
ranges.push({
|
|
510
|
-
alt: text
|
|
590
|
+
alt: toPlainText(node, text, openMark.to, closeMark.from),
|
|
511
591
|
from: node.from,
|
|
512
592
|
to: node.to,
|
|
513
593
|
type: "image",
|
|
@@ -536,7 +616,7 @@ const toWalker = ({ isRawMode, selections, text, }) => {
|
|
|
536
616
|
const urlNode = toChildNamed(node, "URL");
|
|
537
617
|
const isRevealed = isInside(selections, node.from, node.to);
|
|
538
618
|
const openMark = node.firstChild;
|
|
539
|
-
const closeMark = openMark
|
|
619
|
+
const closeMark = toCloseMark(openMark, text);
|
|
540
620
|
const safeUrl = urlNode
|
|
541
621
|
? toSafeLinkUrl(text.slice(urlNode.from, urlNode.to))
|
|
542
622
|
: undefined;
|
|
@@ -555,7 +635,16 @@ const toWalker = ({ isRawMode, selections, text, }) => {
|
|
|
555
635
|
if (safeUrl === undefined) {
|
|
556
636
|
return true;
|
|
557
637
|
}
|
|
558
|
-
|
|
638
|
+
/**
|
|
639
|
+
* `openMark.to < closeMark.from` is the genuinely-empty
|
|
640
|
+
* case and only that: `[](url)`, which has no text to mark.
|
|
641
|
+
* Nested inline markup used to land here too — see
|
|
642
|
+
* `toCloseMark` — and the guard would have hidden that bug
|
|
643
|
+
* rather than fixed it, so it stays narrow on purpose.
|
|
644
|
+
*/
|
|
645
|
+
if (openMark &&
|
|
646
|
+
closeMark &&
|
|
647
|
+
openMark.to < closeMark.from) {
|
|
559
648
|
ranges.push({
|
|
560
649
|
from: openMark.to,
|
|
561
650
|
markKind: "linkText",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"livePreviewRanges.js","sourceRoot":"","sources":["../../src/markdownEditorCodeMirror/livePreviewRanges.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAQH,OAAO,EACL,cAAc,EACd,aAAa,GACd,MAAM,eAAe,CAAA;AAmLtB,MAAM,kBAAkB,GAGpB;IACF,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,UAAU;CACxB,CAAA;AAED,MAAM,iBAAiB,GAGnB;IACF,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,MAAM;IAClB,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,QAAQ;CACzB,CAAA;AAED,oEAAoE;AACpE,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,UAAU;IACV,cAAc;IACd,YAAY;IACZ,UAAU;IACV,WAAW;IACX,mBAAmB;CACpB,CAAC,CAAA;AAEF;;;;;;;;;GASG;AACH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAA;AAEnD;;;;;;;;;;;;;;GAcG;AACH,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;AAEnD,MAAM,QAAQ,GAAG,CACf,UAA2C,EAC3C,IAAY,EACZ,EAAU,EACV,EAAE,CACF,UAAU,CAAC,IAAI,CACb,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,IAAI,IAAI,EAAE,IAAI,SAAS,CAAC,EAAE,IAAI,IAAI,CAC/C,CAAA;AAEH,wDAAwD;AACxD,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,MAAc,EAAE,EAAE;IACnD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,CAAA;IAExD,OAAO,aAAa,GAAG,CAAC,CAAA;AAC1B,CAAC,CAAA;AAED,uDAAuD;AACvD,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,MAAc,EAAE,EAAE;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAE5C,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;AACnD,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CACnB,IAAgB,EAChB,IAAY,EACO,EAAE;IACrB,KACE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,EAC3B,KAAK,EACL,KAAK,GAAG,KAAK,CAAC,WAAW,EACzB,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACxB,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,EAAU,EAAE,EAAE;IACnD,IAAI,GAAG,GAAG,EAAE,CAAA;IAEZ,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;QAE3B,IAAI,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YAC5C,MAAK;QACP,CAAC;QAED,GAAG,IAAI,CAAC,CAAA;IACV,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,0DAA0D;AAC1D,MAAM,eAAe,GAAG,CACtB,IAAY,EACZ,IAAY,EACZ,EAAU,EACV,EAAE;IACF,IAAI,KAAK,GAAG,IAAI,CAAA;IAEhB,IAAI,GAAG,GAAG,EAAE,CAAA;IAEZ,OACE,KAAK,GAAG,GAAG;QACX,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,EAC7C,CAAC;QACD,KAAK,IAAI,CAAC,CAAA;IACZ,CAAC;IAED,OACE,GAAG,GAAG,KAAK;QACX,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,EACjD,CAAC;QACD,GAAG,IAAI,CAAC,CAAA;IACV,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,CAAA;AACjC,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAClB,IAAY,EACe,EAAE;IAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,kBAAkB,GAAG,CACzB,IAAY,EACZ,IAAgB,EACa,EAAE;IAC/B,KACE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,EAC3B,KAAK,EACL,KAAK,GAAG,KAAK,CAAC,WAAW,EACzB,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACpC,SAAQ;QACV,CAAC;QAED,OAAO,IAAI;aACR,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;aAC3B,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC1B,MAAM,CACL,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CACrB,IAAI,KAAK,EAAE;YACX,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAC9C;aACA,GAAG,CAAC,WAAW,CAAC,CAAA;IACrB,CAAC;IAED,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,YAAY,GAAG,CAAC,GAAe,EAAE,IAAY,EAAE,EAAE;IACrD,MAAM,OAAO,GAAmC,EAAE,CAAA;IAElD,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAA;IAEpB,KACE,IAAI,KAAK,GAAG,GAAG,CAAC,UAAU,EAC1B,KAAK,EACL,KAAK,GAAG,KAAK,CAAC,WAAW,EACzB,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACpC,SAAQ;QACV,CAAC;QAED,qDAAqD;QACrD,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACzB,KAAK,GAAG,KAAK,CAAC,EAAE,CAAA;YAEhB,SAAQ;QACV,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;QAE7C,KAAK,GAAG,KAAK,CAAC,EAAE,CAAA;IAClB,CAAC;IAED,6DAA6D;IAC7D,kEAAkE;IAClE,6DAA6D;IAC7D,6DAA6D;IAC7D,IACE,KAAK,GAAG,GAAG,CAAC,EAAE;QACd,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EACvC,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;IAC3C,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CACnB,GAAe,EACf,IAAY,EACZ,EAAU,EACS,EAAE;IACrB,KACE,IAAI,KAAK,GAAG,GAAG,CAAC,UAAU,EAC1B,KAAK,EACL,KAAK,GAAG,KAAK,CAAC,WAAW,EACzB,CAAC;QACD,IACE,KAAK,CAAC,IAAI,KAAK,WAAW;YAC1B,KAAK,CAAC,IAAI,IAAI,IAAI;YAClB,KAAK,CAAC,EAAE,IAAI,EAAE,EACd,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAC/B,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,EAAE,GAMH,EAA6B,EAAE;IAC9B,MAAM,QAAQ,GAAG,IAAI,KAAK,CACxB,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CACvB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAEb,MAAM,KAAK,GAKL,EAAE,CAAA;IAER,MAAM,MAAM,GAAG,IAAI,GAAG,EAGnB,CAAA;IAEH,MAAM,IAAI,GAAG,CAAC,UAAkB,EAAE,QAAgB,EAAE,EAAE;QACpD,KACE,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,EACvC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,EAC/B,MAAM,IAAI,CAAC,EACX,CAAC;YACD,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;QAChC,CAAC;IACH,CAAC,CAAA;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACjD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;QAC5B,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,GAAG,EAAE,KAAK,CAAC,GAAG;aACf,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;gBACrB,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,GAAG,EAAE,KAAK,CAAC,GAAG;aACf,CAAC,CAAA;YAEF,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAA8B,EAAE,CAAA;IAE9C,IAAI,OAAO,GAAkB,IAAI,CAAA;IAEjC,IAAI,WAAW,GAIJ,IAAI,CAAA;IAEf,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;YAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;QACjD,CAAC;QAED,OAAO,GAAG,IAAI,CAAA;QAEd,WAAW,GAAG,IAAI,CAAA;IACpB,CAAC,CAAA;IAED,KAAK,IAAI,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,EAAE,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAEhC,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,EAAE,CAAA;YAEP,QAAQ,CAAC,IAAI,CAAC;gBACZ,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,IAAI,EAAE,OAAO;gBACb,GAAG,EAAE,KAAK,CAAC,GAAG;aACf,CAAC,CAAA;YAEF,MAAM,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAA;YAErB,SAAQ;QACV,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;YAC5B,SAAQ;QACV,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAC3B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,CAAC,EAAE,GAAG,MAAM,CAClD,CAAA;QAED,MAAM,SAAS,GAAG;YAChB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAClD,CAAC,IAAI,EAAE,CAAA;QAER,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAA;QAElD,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,EAAE,EAAE,CAAA;QAEtD,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YACpB,KAAK,EAAE,CAAA;YAEP,OAAO,GAAG,GAAG,CAAA;YAEb,WAAW,GAAG;gBACZ,SAAS;gBACT,IAAI,EAAE,EAAE;gBACR,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxB,CAAA;QACH,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAA;QAClC,CAAC;IACH,CAAC;IAED,KAAK,EAAE,CAAA;IAEP,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,GAAG,CAAC,EACnB,IAAI,EACJ,IAAI,EACJ,OAAO,GAOR,EAAgC,EAAE;IACjC,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAEjD,MAAM,IAAI,GAA0B,EAAE,CAAA;IAEtC,KACE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,EAC3B,KAAK,EACL,KAAK,GAAG,KAAK,CAAC,WAAW,EACzB,CAAC;QACD,IACE,KAAK,CAAC,IAAI,KAAK,aAAa;YAC5B,KAAK,CAAC,IAAI,KAAK,UAAU,EACzB,CAAC;YACD,SAAQ;QACV,CAAC;QAED,MAAM,GAAG,GAAG,KAAK,CAAA;QAEjB,IAAI,CAAC,IAAI,CAAC;YACR,KAAK,EAAE,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAChC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;gBACtB,MAAM,MAAM,GAAG,eAAe,CAC5B,IAAI,EACJ,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,EAAE,CACV,CAAA;gBAED,MAAM,QAAQ,GAAG,YAAY,CAC3B,GAAG,EACH,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,EAAE,CACV,CAAA;gBAED,MAAM,UAAU,GAAuB,EAAE,CAAA;gBAEzC,IAAI,QAAQ,EAAE,CAAC;oBACb,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;gBAChD,CAAC;gBAED,OAAO;oBACL,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,IAAI,OAAO;oBAC7C,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,gBAAgB,CAAC;wBACzB,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,MAAM,EAAE,UAAU;wBAClB,IAAI;wBACJ,EAAE,EAAE,MAAM,CAAC,EAAE;qBACd,CAAC;oBACF,EAAE,EAAE,MAAM,CAAC,EAAE;iBACd,CAAA;YACH,CAAC,CACF;YACD,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ,EAAE,GAAG,CAAC,IAAI,KAAK,aAAa;YACpC,EAAE,EAAE,GAAG,CAAC,EAAE;SACX,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAC1B,UAAU,CAAC,MAAM,EACjB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CACvC,CAAA;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACxB,GAAG,GAAG;QACN,KAAK,EAAE;YACL,GAAG,GAAG,CAAC,KAAK;YACZ,0DAA0D;YAC1D,6DAA6D;YAC7D,gDAAgD;YAChD,GAAG,KAAK,CAAC,IAAI,CACX,EAAE,MAAM,EAAE,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,EAC1C,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBACnB,SAAS,EACP,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,OAAO;gBACjD,IAAI,EAAE,GAAG,CAAC,EAAE;gBACZ,QAAQ,EAAE,EAAE;gBACZ,EAAE,EAAE,GAAG,CAAC,EAAE;aACX,CAAC,CACH;SACF;KACF,CAAC,CAAC,CAAA;AACL,CAAC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,eAAe,GAAG,CAAC,EACvB,SAAS,EACT,IAAI,EACJ,UAAU,GAKX,EAAE,EAAE,CACH,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;AAEzD;;;;;;;;;;GAUG;AACH,MAAM,QAAQ,GAAG,CAAC,EAChB,SAAS,EACT,UAAU,EACV,IAAI,GAKL,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,CAAC,MAA0B,EAAE,EAAE;QAC7C,MAAM,UAAU,GAAG,CACjB,IAAY,EACZ,EAAU,EACV,UAAmB,EACnB,EAAE;YACF,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;gBACf,OAAM;YACR,CAAC;YAED,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,WAAW,EAAE,CAAC,SAAS,IAAI,CAAC,UAAU;gBACtC,EAAE;gBACF,IAAI,EAAE,QAAQ;aACf,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,OAAO,CAAC,OAAsB,EAAW,EAAE;YACzC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;YAExB,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;YAE5C,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;oBAEjD,uDAAuD;oBACvD,sDAAsD;oBACtD,kDAAkD;oBAClD,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,SAAS;wBACf,QAAQ,EAAE,WAAW;wBACrB,EAAE,EAAE,SAAS;wBACb,IAAI,EAAE,MAAM;qBACb,CAAC,CAAA;gBACJ,CAAC;gBAED,OAAO,IAAI,CAAA;YACb,CAAC;YAED,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;gBACnD,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,0DAA0D;oBAC1D,0DAA0D;oBAC1D,+CAA+C;oBAC/C,KACE,IAAI,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAC5C,MAAM,GAAG,OAAO,CAAC,EAAE,EACnB,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EACpC,CAAC;wBACD,MAAM,CAAC,IAAI,CAAC;4BACV,IAAI,EAAE,MAAM;4BACZ,QAAQ,EACN,IAAI,KAAK,YAAY;gCACnB,CAAC,CAAC,YAAY;gCACd,CAAC,CAAC,MAAM;4BACZ,EAAE,EAAE,MAAM;4BACV,IAAI,EAAE,MAAM;yBACb,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;gBAED,OAAO,IAAI,CAAA;YACb,CAAC;YAED,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrB,2DAA2D;gBAC3D,yDAAyD;gBACzD,IACE,eAAe,CAAC;oBACd,SAAS;oBACT,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,UAAU;iBACX,CAAC,EACF,CAAC;oBACD,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,yDAAyD;gBACzD,4DAA4D;gBAC5D,4DAA4D;gBAC5D,kBAAkB;gBAClB,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,KACE,IAAI,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAC5C,MAAM,GAAG,OAAO,CAAC,EAAE,EACnB,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EACpC,CAAC;wBACD,MAAM,CAAC,IAAI,CAAC;4BACV,IAAI,EAAE,MAAM;4BACZ,QAAQ,EAAE,OAAO;4BACjB,EAAE,EAAE,MAAM;4BACV,IAAI,EAAE,MAAM;yBACb,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;gBAED,OAAO,IAAI,CAAA;YACb,CAAC;YAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;YAE1C,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,QAAQ,EAAE,UAAU;oBACpB,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,IAAI,EAAE,MAAM;iBACb,CAAC,CAAA;gBAEF,OAAO,IAAI,CAAA;YACb,CAAC;YAED,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;gBAEzB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;gBAEzC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAA;gBAEhC,MAAM,SAAS,GAAG,QAAQ,EAAE,WAAW,CAAA;gBAEvC,MAAM,OAAO,GAAG,OAAO;oBACrB,CAAC,CAAC,cAAc,CACZ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CACrC;oBACH,CAAC,CAAC,SAAS,CAAA;gBAEb,yDAAyD;gBACzD,2DAA2D;gBAC3D,wDAAwD;gBACxD,yDAAyD;gBACzD,4DAA4D;gBAC5D,6CAA6C;gBAC7C,IACE,CAAC,SAAS;oBACV,OAAO,KAAK,SAAS;oBACrB,QAAQ;oBACR,SAAS;oBACT,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,EACzC,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC;wBACV,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC;wBAC5C,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,EAAE,EAAE,IAAI,CAAC,EAAE;wBACX,IAAI,EAAE,OAAO;wBACb,GAAG,EAAE,OAAO;qBACb,CAAC,CAAA;oBAEF,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED;;;;;;;;;;mBAUG;gBACH,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;oBACxC,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,OAAO,IAAI,CAAA;YACb,CAAC;YAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;gBAEzB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;gBAEzC,MAAM,UAAU,GAAG,QAAQ,CACzB,UAAU,EACV,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,EAAE,CACR,CAAA;gBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAA;gBAEhC,MAAM,SAAS,GAAG,QAAQ,EAAE,WAAW,CAAA;gBAEvC,MAAM,OAAO,GAAG,OAAO;oBACrB,CAAC,CAAC,aAAa,CACX,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CACrC;oBACH,CAAC,CAAC,SAAS,CAAA;gBAEb;;;;;;;;;;;mBAWG;gBACH,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC1B,OAAO,IAAI,CAAA;gBACb,CAAC;gBAED,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;oBAC1B,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,QAAQ,CAAC,EAAE;wBACjB,QAAQ,EAAE,UAAU;wBACpB,EAAE,EAAE,SAAS,CAAC,IAAI;wBAClB,IAAI,EAAE,MAAM;wBACZ,GAAG,EAAE,OAAO;qBACb,CAAC,CAAA;gBACJ,CAAC;gBAED,0DAA0D;gBAC1D,yDAAyD;gBACzD,2CAA2C;gBAC3C,UAAU,CACR,IAAI,CAAC,IAAI,EACT,QAAQ,EAAE,EAAE,IAAI,IAAI,CAAC,IAAI,EACzB,UAAU,CACX,CAAA;gBAED,IAAI,SAAS,EAAE,CAAC;oBACd,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;gBACjD,CAAC;gBAED,OAAO,IAAI,CAAA;YACb,CAAC;YAED,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBACnB,0DAA0D;gBAC1D,2DAA2D;gBAC3D,0DAA0D;gBAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAA;gBAE5C,MAAM,OAAO,GAAG,aAAa,CAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CACrC,CAAA;gBAED,IACE,UAAU,KAAK,MAAM;oBACrB,UAAU,KAAK,OAAO;oBACtB,OAAO,KAAK,SAAS,EACrB,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,QAAQ,EAAE,UAAU;wBACpB,EAAE,EAAE,OAAO,CAAC,EAAE;wBACd,IAAI,EAAE,MAAM;wBACZ,GAAG,EAAE,OAAO;qBACb,CAAC,CAAA;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,QAAQ,EAAE,KAAK;wBACf,EAAE,EAAE,OAAO,CAAC,EAAE;wBACd,IAAI,EAAE,MAAM;qBACb,CAAC,CAAA;gBACJ,CAAC;gBAED,OAAO,IAAI,CAAA;YACb,CAAC;YAED,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC1B,MAAM,UAAU,GAAG,QAAQ,CACzB,UAAU,EACV,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,EAAE,CACX,CAAA;gBAED,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;oBAC9B,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG;wBACzC,KAAK,EAAE,IAAI;6BACR,KAAK,CACJ,OAAO,CAAC,EAAE,EACV,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAC5B;6BACA,IAAI,EAAE;wBACT,EAAE,EAAE,OAAO,CAAC,EAAE;wBACd,IAAI,EAAE,MAAM;qBACb,CAAC,CAAA;oBAEF,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;gBAEhD,OAAO,KAAK,CAAA;YACd,CAAC;YAED,IAAI,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;gBAE1C,OAAO,KAAK,CAAA;YACd,CAAC;YAED,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAC9B,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;gBAE1C,OAAO,KAAK,CAAA;YACd,CAAC;YAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,0DAA0D;gBAC1D,0DAA0D;gBAC1D,iDAAiD;gBACjD,UAAU,CACR,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,IAAI,GAAG,CAAC,EAChB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAC/C,CAAA;gBAED,OAAO,KAAK,CAAA;YACd,CAAC;YAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBACxB,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;gBAE1C,OAAO,KAAK,CAAA;YACd,CAAC;YAED,IAAI,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAA;gBAElC,IACE,MAAM;oBACN,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EACpC,CAAC;oBACD,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;oBAE1C,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,sDAAsD;gBACtD,2DAA2D;gBAC3D,2DAA2D;gBAC3D,0DAA0D;gBAC1D,mCAAmC;gBACnC,IAAI,MAAM,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC5B,OAAO,KAAK,CAAA;gBACd,CAAC;gBAED,MAAM,UAAU,GAAG,MAAM;oBACvB,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;oBAC9C,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;gBAElD,MAAM,EAAE,GACN,IAAI,KAAK,YAAY;oBACnB,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;oBACnC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAA;gBAEhB,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,CAAA;gBAExC,OAAO,KAAK,CAAA;YACd,CAAC;YAED,OAAO,IAAI,CAAA;QACb,CAAC,CAAA;IACH,CAAC,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,IAAI,EACJ,SAAS,GAAG,KAAK,EACjB,UAAU,EACV,IAAI,EACJ,EAAE,EACF,IAAI,GACuB,EAAsB,EAAE;IACnD,MAAM,MAAM,GAAuB,EAAE,CAAA;IAErC,IAAI,CAAC,OAAO,CAAC;QACX,IAAI;QACJ,EAAE;QACF,KAAK,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAC9C,MAAM,CACP;KACF,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,YAAY;IACZ,YAAY;IACZ,UAAU;IACV,UAAU;IACV,aAAa;CACd,CAAC,CAAA;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACvC,SAAS,GAAG,KAAK,EACjB,UAAU,EACV,IAAI,EACJ,IAAI,GAIL,EAA2B,EAAE;IAC5B,MAAM,MAAM,GAA4B,EAAE,CAAA;IAE1C,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;IAEzD,IAAI,CAAC,OAAO,CAAC;QACX,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;YACjB,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC7B,OAAO,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAChD,CAAC;YAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;YAEzB,MAAM,IAAI,GAAG,eAAe,CAAC;gBAC3B,SAAS;gBACT,IAAI;gBACJ,UAAU;aACX,CAAC;gBACA,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gBACtC,CAAC,CAAC,IAAI,CAAA;YAER,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI;oBACJ,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,IAAI,EAAE,OAAO;iBACd,CAAC,CAAA;YACJ,CAAC;YAED,OAAO,KAAK,CAAA;QACd,CAAC;KACF,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"livePreviewRanges.js","sourceRoot":"","sources":["../../src/markdownEditorCodeMirror/livePreviewRanges.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -92,6 +92,22 @@ reload is worse than one that says up front it cannot.
|
|
|
92
92
|
immediately so the box responds under the pointer; if the consumer rejects the change, the
|
|
93
93
|
next `value` puts it back.
|
|
94
94
|
|
|
95
|
+
## Link text that carries its own markup
|
|
96
|
+
|
|
97
|
+
<Canvas of={MarkdownViewStories.NestedLinkText} />
|
|
98
|
+
|
|
99
|
+
A link whose text is a code span, a bolded phrase or an emphasised one is ordinary in a
|
|
100
|
+
docs file, and until 2026-08-24 one of them took the whole surface down. The closing `]`
|
|
101
|
+
was read as *the sibling after the opening bracket*, which is true only while the text is
|
|
102
|
+
plain words — put an `InlineCode` in it and that sibling is the code span, so
|
|
103
|
+
``[`a`](url)`` produced a link-text mark with `from === to`. CodeMirror refuses an empty
|
|
104
|
+
mark decoration and throws out of the whole `ViewPlugin`, so **every** decoration in the
|
|
105
|
+
document is lost and the reader gets raw markdown.
|
|
106
|
+
|
|
107
|
+
The failure looks nothing like a link bug, which is why the story is here: one frame where
|
|
108
|
+
every link is a link, and a heading above them that has nothing to do with links and
|
|
109
|
+
stopped rendering anyway.
|
|
110
|
+
|
|
95
111
|
## Hostile markdown
|
|
96
112
|
|
|
97
113
|
This will render files fetched from a git host, so the document is untrusted by default.
|
|
@@ -51,6 +51,34 @@ ip -br addr show
|
|
|
51
51
|
Replacement rails ordered from https://example.invalid/product?id=1234
|
|
52
52
|
`
|
|
53
53
|
|
|
54
|
+
/**
|
|
55
|
+
* Link text with inline markup in it — the shape that used to take
|
|
56
|
+
* the **whole document** down to raw source.
|
|
57
|
+
*
|
|
58
|
+
* The closing bracket was read as the node right after `[`, which
|
|
59
|
+
* is the bracket only while the link text is plain prose. A code
|
|
60
|
+
* span or a `**bold**` run becomes that node instead, the link text
|
|
61
|
+
* measures zero characters, `Decoration.mark` refuses an empty
|
|
62
|
+
* range, and the throw destroys the view plugin — so every
|
|
63
|
+
* decoration in the file disappears at once, not just this link's.
|
|
64
|
+
*
|
|
65
|
+
* Invented, like every fixture here, but the shape is not invented:
|
|
66
|
+
* agent-written task descriptions are full of ``[`file.md`](path)``.
|
|
67
|
+
*/
|
|
68
|
+
const NESTED_LINK_TEXT = `## Where the fix landed
|
|
69
|
+
|
|
70
|
+
The range walk lives in [\`livePreviewRanges.ts\`](https://example.invalid/ranges)
|
|
71
|
+
and the decorations in [\`livePreview.ts\`](https://example.invalid/preview).
|
|
72
|
+
|
|
73
|
+
- A code span: [\`AGENTS.md\`](https://example.invalid/agents)
|
|
74
|
+
- Strong: [**the runbook**](https://example.invalid/runbook)
|
|
75
|
+
- Emphasis: [*the older note*](https://example.invalid/note)
|
|
76
|
+
- Struck through: [~~the retired page~~](https://example.invalid/retired)
|
|
77
|
+
- Mixed: [read \`this\` **first**](https://example.invalid/first)
|
|
78
|
+
|
|
79
|
+
Plain links still work: [the index](https://example.invalid/index).
|
|
80
|
+
`
|
|
81
|
+
|
|
54
82
|
/**
|
|
55
83
|
* A drawing rather than a fetched file, so the story needs no
|
|
56
84
|
* network and the frame is the same on every machine. The same
|
|
@@ -312,3 +340,23 @@ export const Interactive: Story = {
|
|
|
312
340
|
</div>
|
|
313
341
|
),
|
|
314
342
|
}
|
|
343
|
+
|
|
344
|
+
/**
|
|
345
|
+
* The regression frame.
|
|
346
|
+
*
|
|
347
|
+
* Every line here is a link whose text carries inline markup, and
|
|
348
|
+
* the assertion a reader can make from the picture is the one that
|
|
349
|
+
* matters: the document is **drawn**. Before the fix this frame was
|
|
350
|
+
* the markdown source, brackets and parentheses and all, because
|
|
351
|
+
* one empty mark decoration killed the plugin for the whole file.
|
|
352
|
+
*
|
|
353
|
+
* The last line is the control. A plain `[text](url)` never had the
|
|
354
|
+
* bug, so if it renders and the ones above it do not, the failure
|
|
355
|
+
* is this and not something else.
|
|
356
|
+
*/
|
|
357
|
+
export const NestedLinkText: Story = {
|
|
358
|
+
args: {
|
|
359
|
+
label: "Where the fix landed",
|
|
360
|
+
value: NESTED_LINK_TEXT,
|
|
361
|
+
},
|
|
362
|
+
}
|
|
@@ -12,6 +12,7 @@ const {
|
|
|
12
12
|
Default,
|
|
13
13
|
HostileMarkdown,
|
|
14
14
|
Interactive,
|
|
15
|
+
NestedLinkText,
|
|
15
16
|
SameAsTheEditor,
|
|
16
17
|
} = composeStories(stories)
|
|
17
18
|
|
|
@@ -286,3 +287,111 @@ test("the text can be selected", async () => {
|
|
|
286
287
|
"Rack move, phase two",
|
|
287
288
|
)
|
|
288
289
|
})
|
|
290
|
+
|
|
291
|
+
/**
|
|
292
|
+
* The blast radius, as a red/green fact.
|
|
293
|
+
*
|
|
294
|
+
* ``[`file.md`](path)`` produced a zero-length `linkText` range.
|
|
295
|
+
* `Decoration.mark` throws on an empty range, CodeMirror answers a
|
|
296
|
+
* throwing view plugin by destroying it, and destroying it takes
|
|
297
|
+
* **every** decoration in the document — so one link in one bullet
|
|
298
|
+
* dropped the whole file to raw markdown.
|
|
299
|
+
*
|
|
300
|
+
* The unit tests in `livePreviewRanges.test.ts` pin the range. This
|
|
301
|
+
* pins the consequence, which is the part a range assertion cannot
|
|
302
|
+
* see: that the heading three lines above the bad link still
|
|
303
|
+
* renders.
|
|
304
|
+
*/
|
|
305
|
+
test("inline markup in link text does not drop the document to raw source", async () => {
|
|
306
|
+
const { canvas } = await mountStory(NestedLinkText)
|
|
307
|
+
|
|
308
|
+
// The canary. This heading has nothing to do with links, and it
|
|
309
|
+
// is what stopped rendering when the plugin died.
|
|
310
|
+
await expect(
|
|
311
|
+
canvas.getByRole("heading", {
|
|
312
|
+
name: "Where the fix landed",
|
|
313
|
+
}),
|
|
314
|
+
).toHaveAttribute("aria-level", "2")
|
|
315
|
+
|
|
316
|
+
// No raw source anywhere in the document.
|
|
317
|
+
const article = canvas.getByRole("article")
|
|
318
|
+
|
|
319
|
+
await expect(article.textContent).not.toContain("](")
|
|
320
|
+
|
|
321
|
+
await expect(article.textContent).not.toContain("**")
|
|
322
|
+
|
|
323
|
+
await expect(article.textContent).not.toContain("~~")
|
|
324
|
+
})
|
|
325
|
+
|
|
326
|
+
/**
|
|
327
|
+
* Each nesting, reachable as a link by the text a reader sees —
|
|
328
|
+
* with the markers gone, since those are concealed in a document.
|
|
329
|
+
*/
|
|
330
|
+
test.each([
|
|
331
|
+
["a code span", "livePreviewRanges.ts"],
|
|
332
|
+
["strong", "the runbook"],
|
|
333
|
+
["emphasis", "the older note"],
|
|
334
|
+
["strikethrough", "the retired page"],
|
|
335
|
+
["a mix", "read this first"],
|
|
336
|
+
["no nesting at all", "the index"],
|
|
337
|
+
])(
|
|
338
|
+
"link text through %s is a reachable anchor",
|
|
339
|
+
async (_case, name) => {
|
|
340
|
+
const { canvas } = await mountStory(NestedLinkText)
|
|
341
|
+
|
|
342
|
+
const link = expectAgentDrivable(canvas, {
|
|
343
|
+
name,
|
|
344
|
+
role: "link",
|
|
345
|
+
})
|
|
346
|
+
|
|
347
|
+
await expect(link.tagName).toBe("A")
|
|
348
|
+
},
|
|
349
|
+
)
|
|
350
|
+
|
|
351
|
+
/**
|
|
352
|
+
* Prose leading, not code leading.
|
|
353
|
+
*
|
|
354
|
+
* CodeMirror's base theme sets `line-height: 1.4` on the content,
|
|
355
|
+
* which is right for a file of short lines you scan down and too
|
|
356
|
+
* tight for wrapped paragraphs across a full measure. Docket's
|
|
357
|
+
* owner read a task at 1.4 and called the page unreadable.
|
|
358
|
+
*
|
|
359
|
+
* Asserted as a ratio rather than a pixel count so the rule
|
|
360
|
+
* survives a change to the base font size.
|
|
361
|
+
*/
|
|
362
|
+
test("the document is set at prose leading", async () => {
|
|
363
|
+
const { canvas } = await mountStory(Default)
|
|
364
|
+
|
|
365
|
+
const article = canvas.getByRole("article")
|
|
366
|
+
|
|
367
|
+
const { fontSize, lineHeight } = getComputedStyle(article)
|
|
368
|
+
|
|
369
|
+
await expect(
|
|
370
|
+
Number.parseFloat(lineHeight) /
|
|
371
|
+
Number.parseFloat(fontSize),
|
|
372
|
+
).toBeGreaterThan(1.5)
|
|
373
|
+
})
|
|
374
|
+
|
|
375
|
+
/**
|
|
376
|
+
* A monospace face at the same `font-size` as the prose around it
|
|
377
|
+
* reads BIGGER than the prose — fixed advance width, taller
|
|
378
|
+
* x-height — so a description whose nouns are all file names in
|
|
379
|
+
* backticks comes out as a wall of emphasis nobody asked for.
|
|
380
|
+
*/
|
|
381
|
+
test("a code span is smaller than the prose it sits in", async () => {
|
|
382
|
+
const { canvas } = await mountStory(Default)
|
|
383
|
+
|
|
384
|
+
const article = canvas.getByRole("article")
|
|
385
|
+
|
|
386
|
+
const code = article.querySelector(".cm-md-code")
|
|
387
|
+
|
|
388
|
+
await expect(code).not.toBeNull()
|
|
389
|
+
|
|
390
|
+
await expect(
|
|
391
|
+
Number.parseFloat(
|
|
392
|
+
getComputedStyle(code as Element).fontSize,
|
|
393
|
+
),
|
|
394
|
+
).toBeLessThan(
|
|
395
|
+
Number.parseFloat(getComputedStyle(article).fontSize),
|
|
396
|
+
)
|
|
397
|
+
})
|
|
@@ -714,6 +714,31 @@ const toDecorations = (view: EditorView): DecorationSet => {
|
|
|
714
714
|
to: visible.to,
|
|
715
715
|
tree: syntaxTree(view.state),
|
|
716
716
|
})) {
|
|
717
|
+
/**
|
|
718
|
+
* One malformed descriptor costs its own construct, never the
|
|
719
|
+
* page.
|
|
720
|
+
*
|
|
721
|
+
* `Decoration.mark` throws `Mark decorations may not be
|
|
722
|
+
* empty` on a zero-length range, and a throw in here does not
|
|
723
|
+
* degrade gracefully: CodeMirror destroys the view plugin, so
|
|
724
|
+
* **every** decoration in the document disappears at once and
|
|
725
|
+
* the reader is left looking at raw markdown. That is what
|
|
726
|
+
* ``[`file.md`](path)`` did to whole documents before
|
|
727
|
+
* `toCloseMark` — one link in one paragraph, and the file
|
|
728
|
+
* stopped rendering.
|
|
729
|
+
*
|
|
730
|
+
* `toLivePreviewRanges` is not supposed to emit one of these
|
|
731
|
+
* any more. This is the second wall, and it is worth having
|
|
732
|
+
* precisely because the first wall already failed once.
|
|
733
|
+
*
|
|
734
|
+
* A `line` decoration is the exception, and legitimately so —
|
|
735
|
+
* it is a point anchored to a line start, so it is always
|
|
736
|
+
* zero-length.
|
|
737
|
+
*/
|
|
738
|
+
if (range.type !== "line" && range.from >= range.to) {
|
|
739
|
+
continue
|
|
740
|
+
}
|
|
741
|
+
|
|
717
742
|
switch (range.type) {
|
|
718
743
|
case "image": {
|
|
719
744
|
decorations.push(
|
|
@@ -882,12 +907,47 @@ const livePreviewTableField =
|
|
|
882
907
|
provide: (field) => EditorView.decorations.from(field),
|
|
883
908
|
})
|
|
884
909
|
|
|
910
|
+
/**
|
|
911
|
+
* `toDecorations`, but a throw costs one render rather than the
|
|
912
|
+
* editor.
|
|
913
|
+
*
|
|
914
|
+
* CodeMirror's answer to a view plugin that throws is to destroy
|
|
915
|
+
* it. That is permanent for the life of the editor: the document
|
|
916
|
+
* falls back to raw markdown and no later keystroke brings it back,
|
|
917
|
+
* because there is no longer a plugin to run. The reader sees a
|
|
918
|
+
* surface that broke and stayed broken, and the only trace is one
|
|
919
|
+
* console line nobody is looking at.
|
|
920
|
+
*
|
|
921
|
+
* Returning an empty set instead costs the *current* frame — that
|
|
922
|
+
* frame looks like raw source — and the next update repaints
|
|
923
|
+
* normally. Recovery beats a permanent failure.
|
|
924
|
+
*
|
|
925
|
+
* The stale set is deliberately not reused. Decorations here are
|
|
926
|
+
* not mapped through document changes, so holding the previous
|
|
927
|
+
* frame's offsets over an edit invites a second throw for
|
|
928
|
+
* positions past the end of the document.
|
|
929
|
+
*/
|
|
930
|
+
const toSafeDecorations = (
|
|
931
|
+
view: EditorView,
|
|
932
|
+
): DecorationSet => {
|
|
933
|
+
try {
|
|
934
|
+
return toDecorations(view)
|
|
935
|
+
} catch (error) {
|
|
936
|
+
console.error(
|
|
937
|
+
"[charcuterie] live preview could not build its decorations; this frame renders as raw markdown.",
|
|
938
|
+
error,
|
|
939
|
+
)
|
|
940
|
+
|
|
941
|
+
return Decoration.none
|
|
942
|
+
}
|
|
943
|
+
}
|
|
944
|
+
|
|
885
945
|
const livePreviewPlugin = ViewPlugin.fromClass(
|
|
886
946
|
class {
|
|
887
947
|
decorations: DecorationSet
|
|
888
948
|
|
|
889
949
|
constructor(view: EditorView) {
|
|
890
|
-
this.decorations =
|
|
950
|
+
this.decorations = toSafeDecorations(view)
|
|
891
951
|
}
|
|
892
952
|
|
|
893
953
|
update(update: ViewUpdate) {
|
|
@@ -911,7 +971,7 @@ const livePreviewPlugin = ViewPlugin.fromClass(
|
|
|
911
971
|
update.startState.facet(livePreviewOptions) !==
|
|
912
972
|
update.state.facet(livePreviewOptions)
|
|
913
973
|
) {
|
|
914
|
-
this.decorations =
|
|
974
|
+
this.decorations = toSafeDecorations(update.view)
|
|
915
975
|
}
|
|
916
976
|
}
|
|
917
977
|
},
|
|
@@ -1059,6 +1119,27 @@ const livePreviewTheme = EditorView.theme({
|
|
|
1059
1119
|
".cm-scroller": {
|
|
1060
1120
|
fontFamily: "var(--font-sans)",
|
|
1061
1121
|
},
|
|
1122
|
+
/**
|
|
1123
|
+
* Prose leading, not code leading.
|
|
1124
|
+
*
|
|
1125
|
+
* CodeMirror's base theme sets `line-height: 1.4` on the
|
|
1126
|
+
* content, which is right for the thing it was written for: a
|
|
1127
|
+
* file of short lines you scan down. It is too tight for a
|
|
1128
|
+
* document of wrapped paragraphs, where the eye has to find the
|
|
1129
|
+
* start of the next line across the full measure — and this
|
|
1130
|
+
* surface is the one place in the fleet that renders long-form
|
|
1131
|
+
* prose. Docket's own body copy has used 1.6 since it shipped;
|
|
1132
|
+
* this is the same number, in the component that owns the
|
|
1133
|
+
* document.
|
|
1134
|
+
*
|
|
1135
|
+
* On `.cm-content` rather than `.cm-line`: CodeMirror measures
|
|
1136
|
+
* line height to size its viewport, and a per-line override is
|
|
1137
|
+
* how a document ends up with a scrollbar that does not match
|
|
1138
|
+
* it.
|
|
1139
|
+
*/
|
|
1140
|
+
".cm-content": {
|
|
1141
|
+
lineHeight: "1.6",
|
|
1142
|
+
},
|
|
1062
1143
|
/**
|
|
1063
1144
|
* …except in raw mode, where monospace is the honest choice:
|
|
1064
1145
|
* "Markdown source" is a *source* view, and source is code.
|
|
@@ -1075,6 +1156,20 @@ const livePreviewTheme = EditorView.theme({
|
|
|
1075
1156
|
".cm-md-code": {
|
|
1076
1157
|
color: "var(--color-intent-info-content)",
|
|
1077
1158
|
fontFamily: "var(--font-mono)",
|
|
1159
|
+
/**
|
|
1160
|
+
* A monospace face at the SAME `font-size` as the prose
|
|
1161
|
+
* around it reads bigger than the prose: it is drawn on a
|
|
1162
|
+
* fixed advance width and carries a taller x-height, so
|
|
1163
|
+
* `Victor Mono` at 17px next to `Outfit` at 17px looks like an
|
|
1164
|
+
* emphasis nobody asked for. In an agent-written description —
|
|
1165
|
+
* where a third of the nouns are file names in backticks —
|
|
1166
|
+
* that is the difference between a document with code in it
|
|
1167
|
+
* and a wall of shouting.
|
|
1168
|
+
*
|
|
1169
|
+
* `em`, so it tracks whatever size the block is: a code span
|
|
1170
|
+
* inside a heading stays proportional to the heading.
|
|
1171
|
+
*/
|
|
1172
|
+
fontSize: "0.9em",
|
|
1078
1173
|
},
|
|
1079
1174
|
".cm-md-codeblock": {
|
|
1080
1175
|
backgroundColor: "var(--color-surface-sunken)",
|
|
@@ -277,6 +277,200 @@ describe("toLivePreviewRanges", () => {
|
|
|
277
277
|
),
|
|
278
278
|
).toHaveLength(0)
|
|
279
279
|
})
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* The bug that took whole documents down to raw source.
|
|
283
|
+
*
|
|
284
|
+
* The closing `]` was read as `openMark.nextSibling`, which is
|
|
285
|
+
* the bracket only while the link text is plain prose. Any
|
|
286
|
+
* inline construct in the text becomes that sibling instead, so
|
|
287
|
+
* the link text measured `[` → the construct's own start:
|
|
288
|
+
* **zero-length**. `Decoration.mark` rejects an empty range,
|
|
289
|
+
* the throw destroys the view plugin, and every decoration in
|
|
290
|
+
* the file goes with it.
|
|
291
|
+
*
|
|
292
|
+
* ``[`file.md`](path)`` is not an exotic spelling. It was in
|
|
293
|
+
* 69 of the 127 Docket task descriptions that had one.
|
|
294
|
+
*
|
|
295
|
+
* These assert the range, not a rendering. A whole-document
|
|
296
|
+
* render would go green on the *quiet* half of this bug — the
|
|
297
|
+
* cases below that produced a non-empty but wrong mark.
|
|
298
|
+
*/
|
|
299
|
+
describe("inline markup inside the link text", () => {
|
|
300
|
+
test.each([
|
|
301
|
+
["a code span", "[`file.md`](url)", "`file.md`"],
|
|
302
|
+
["strong", "[**bold**](url)", "**bold**"],
|
|
303
|
+
["emphasis", "[*thin*](url)", "*thin*"],
|
|
304
|
+
["strikethrough", "[~~gone~~](url)", "~~gone~~"],
|
|
305
|
+
[
|
|
306
|
+
"a mix, after plain text",
|
|
307
|
+
"[a *b* `c` **d**](url)",
|
|
308
|
+
"a *b* `c` **d**",
|
|
309
|
+
],
|
|
310
|
+
[
|
|
311
|
+
"markup then plain text",
|
|
312
|
+
"[**b** then more](url)",
|
|
313
|
+
"**b** then more",
|
|
314
|
+
],
|
|
315
|
+
["nesting", "[**`both`**](url)", "**`both`**"],
|
|
316
|
+
["an escape", "[a\\]b](url)", "a\\]b"],
|
|
317
|
+
[
|
|
318
|
+
"an image",
|
|
319
|
+
"[](url)",
|
|
320
|
+
"",
|
|
321
|
+
],
|
|
322
|
+
])(
|
|
323
|
+
"spans the whole link text through %s",
|
|
324
|
+
(_case, text, expected) => {
|
|
325
|
+
const linkText = toRanges(text).find(
|
|
326
|
+
(range) =>
|
|
327
|
+
range.type === "mark" &&
|
|
328
|
+
range.markKind === "linkText",
|
|
329
|
+
)
|
|
330
|
+
|
|
331
|
+
expect(toTextOf(text, toFound(linkText))).toBe(
|
|
332
|
+
expected,
|
|
333
|
+
)
|
|
334
|
+
},
|
|
335
|
+
)
|
|
336
|
+
|
|
337
|
+
/**
|
|
338
|
+
* The invariant, swept rather than enumerated.
|
|
339
|
+
*
|
|
340
|
+
* Every caret position in the document, in both modes. A
|
|
341
|
+
* caret changes which constructs are revealed, and reveal
|
|
342
|
+
* state feeds the same bracket arithmetic — so "the mark is
|
|
343
|
+
* non-empty with no caret in the file" is a weaker promise
|
|
344
|
+
* than the one the plugin needs. `Decoration.mark` throws on
|
|
345
|
+
* an empty range wherever the caret happens to be.
|
|
346
|
+
*/
|
|
347
|
+
test("emits no empty mark at any caret position, in either mode", () => {
|
|
348
|
+
const empties: string[] = []
|
|
349
|
+
|
|
350
|
+
for (const text of [
|
|
351
|
+
"see [`file.md`](https://example.com) now",
|
|
352
|
+
"see [**bold**](https://example.com) now",
|
|
353
|
+
"[a *b* `c` **d**](https://example.com)",
|
|
354
|
+
"[](https://example.com)",
|
|
355
|
+
"",
|
|
356
|
+
"[](https://example.com)",
|
|
357
|
+
"[a\\]b](https://example.com)",
|
|
358
|
+
]) {
|
|
359
|
+
for (const isRawMode of [false, true]) {
|
|
360
|
+
for (
|
|
361
|
+
let offset = 0;
|
|
362
|
+
offset <= text.length;
|
|
363
|
+
offset += 1
|
|
364
|
+
) {
|
|
365
|
+
for (const range of toRanges(
|
|
366
|
+
text,
|
|
367
|
+
atCaret(offset),
|
|
368
|
+
isRawMode,
|
|
369
|
+
)) {
|
|
370
|
+
if (
|
|
371
|
+
range.type === "mark" &&
|
|
372
|
+
range.from >= range.to
|
|
373
|
+
) {
|
|
374
|
+
empties.push(
|
|
375
|
+
`${text} @${offset} raw=${isRawMode}`,
|
|
376
|
+
)
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
expect(empties).toEqual([])
|
|
384
|
+
})
|
|
385
|
+
|
|
386
|
+
test("never emits an empty mark, whatever the nesting", () => {
|
|
387
|
+
for (const text of [
|
|
388
|
+
"[`file.md`](url)",
|
|
389
|
+
"[**bold**](url)",
|
|
390
|
+
"[*thin*](url)",
|
|
391
|
+
"[~~gone~~](url)",
|
|
392
|
+
"[a *b* `c` **d**](url)",
|
|
393
|
+
"[**`both`**](url)",
|
|
394
|
+
"[](url)",
|
|
395
|
+
"[a\\]b](url)",
|
|
396
|
+
]) {
|
|
397
|
+
for (const range of toRanges(text)) {
|
|
398
|
+
if (range.type === "mark") {
|
|
399
|
+
// `Mark decorations may not be empty` — the throw
|
|
400
|
+
// that destroyed the plugin.
|
|
401
|
+
expect(range.to).toBeGreaterThan(range.from)
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
})
|
|
406
|
+
|
|
407
|
+
test("conceals only the brackets, not the text between them", () => {
|
|
408
|
+
const text =
|
|
409
|
+
"see [`file.md`](https://example.com) now"
|
|
410
|
+
|
|
411
|
+
const concealed = toRanges(text)
|
|
412
|
+
.filter(
|
|
413
|
+
(range) =>
|
|
414
|
+
range.type === "marker" && range.isConcealed,
|
|
415
|
+
)
|
|
416
|
+
.map((range) => toTextOf(text, range))
|
|
417
|
+
|
|
418
|
+
// The `](url)` run is the point. Before the fix it started
|
|
419
|
+
// one character after `[` and swallowed the link text
|
|
420
|
+
// whole, so dropping the empty mark on its own would have
|
|
421
|
+
// rendered an invisible link rather than a fixed one.
|
|
422
|
+
expect(concealed).toContain(
|
|
423
|
+
"](https://example.com)",
|
|
424
|
+
)
|
|
425
|
+
|
|
426
|
+
expect(concealed).not.toContain(
|
|
427
|
+
"`file.md`](https://example.com)",
|
|
428
|
+
)
|
|
429
|
+
})
|
|
430
|
+
|
|
431
|
+
test("still carries the URL onto the nested case", () => {
|
|
432
|
+
const text = "[`file.md`](https://example.com)"
|
|
433
|
+
|
|
434
|
+
expect(
|
|
435
|
+
toRanges(text).find(
|
|
436
|
+
(range) =>
|
|
437
|
+
range.type === "mark" &&
|
|
438
|
+
range.markKind === "linkText",
|
|
439
|
+
),
|
|
440
|
+
).toMatchObject({ url: "https://example.com" })
|
|
441
|
+
})
|
|
442
|
+
|
|
443
|
+
test("leaves the nested construct's own marks intact", () => {
|
|
444
|
+
const text = "[`file.md`](https://example.com)"
|
|
445
|
+
|
|
446
|
+
expect(
|
|
447
|
+
toRanges(text).find(
|
|
448
|
+
(range) =>
|
|
449
|
+
range.type === "mark" &&
|
|
450
|
+
range.markKind === "code",
|
|
451
|
+
),
|
|
452
|
+
).toBeDefined()
|
|
453
|
+
})
|
|
454
|
+
})
|
|
455
|
+
|
|
456
|
+
/**
|
|
457
|
+
* `[](url)` has no text, so there is nothing to mark. This is
|
|
458
|
+
* the *only* empty case — every other one was the bug above,
|
|
459
|
+
* which is why the guard in `livePreviewRanges` is written as
|
|
460
|
+
* `openMark.to < closeMark.from` and not as a filter over the
|
|
461
|
+
* finished list.
|
|
462
|
+
*/
|
|
463
|
+
test("emits no link-text mark for a link with no text", () => {
|
|
464
|
+
const text = "[](https://example.com)"
|
|
465
|
+
|
|
466
|
+
expect(
|
|
467
|
+
toRanges(text).filter(
|
|
468
|
+
(range) =>
|
|
469
|
+
range.type === "mark" &&
|
|
470
|
+
range.markKind === "linkText",
|
|
471
|
+
),
|
|
472
|
+
).toHaveLength(0)
|
|
473
|
+
})
|
|
280
474
|
})
|
|
281
475
|
|
|
282
476
|
describe("images", () => {
|
|
@@ -306,6 +500,45 @@ describe("toLivePreviewRanges", () => {
|
|
|
306
500
|
),
|
|
307
501
|
).toHaveLength(0)
|
|
308
502
|
})
|
|
503
|
+
|
|
504
|
+
/**
|
|
505
|
+
* The same `nextSibling` mistake, without the crash: an image
|
|
506
|
+
* emits a replace range over its whole construct, which is
|
|
507
|
+
* never empty, so a marked-up alt came out as `""` and nothing
|
|
508
|
+
* threw. `alt` is an attribute rather than a span, so it is
|
|
509
|
+
* read as plain text — which is what CommonMark says an alt is.
|
|
510
|
+
*/
|
|
511
|
+
test.each([
|
|
512
|
+
[
|
|
513
|
+
"a code span",
|
|
514
|
+
"",
|
|
515
|
+
"code shot",
|
|
516
|
+
],
|
|
517
|
+
[
|
|
518
|
+
"strong",
|
|
519
|
+
"",
|
|
520
|
+
"bold shot",
|
|
521
|
+
],
|
|
522
|
+
[
|
|
523
|
+
"a mix",
|
|
524
|
+
"",
|
|
525
|
+
"a b c",
|
|
526
|
+
],
|
|
527
|
+
[
|
|
528
|
+
"an escape",
|
|
529
|
+
"![a\\]b](https://example.com/a.png)",
|
|
530
|
+
"a]b",
|
|
531
|
+
],
|
|
532
|
+
])(
|
|
533
|
+
"reads the alt text as plain text through %s",
|
|
534
|
+
(_case, text, expected) => {
|
|
535
|
+
expect(
|
|
536
|
+
toRanges(text).find(
|
|
537
|
+
(range) => range.type === "image",
|
|
538
|
+
),
|
|
539
|
+
).toMatchObject({ alt: expected })
|
|
540
|
+
},
|
|
541
|
+
)
|
|
309
542
|
})
|
|
310
543
|
|
|
311
544
|
describe("task lists", () => {
|
|
@@ -333,6 +333,115 @@ const toChildNamed = (
|
|
|
333
333
|
return null
|
|
334
334
|
}
|
|
335
335
|
|
|
336
|
+
/**
|
|
337
|
+
* The closing `]` of a `Link` or an `Image`.
|
|
338
|
+
*
|
|
339
|
+
* **Not** `openMark.nextSibling`. That sibling is the closing
|
|
340
|
+
* bracket only while the text between the brackets is plain prose,
|
|
341
|
+
* because plain prose gets no node of its own. Put any inline
|
|
342
|
+
* construct in there — ``[`file.md`](path)``, `[**bold**](path)`,
|
|
343
|
+
* `[~~struck~~](path)` — and the second child is that construct,
|
|
344
|
+
* so the old walk measured the link text as `[` → the construct's
|
|
345
|
+
* own start and got a **zero-length** range. CodeMirror rejects an
|
|
346
|
+
* empty mark decoration (`Mark decorations may not be empty`), the
|
|
347
|
+
* throw destroys the view plugin, and every decoration in the
|
|
348
|
+
* document goes with it: the whole file drops to raw source.
|
|
349
|
+
*
|
|
350
|
+
* Text *before* the construct failed more quietly and just as
|
|
351
|
+
* wrongly. `[a *b*](path)` marked `a ` as the link and then
|
|
352
|
+
* concealed `*b*](path)`, because the concealment marker starts
|
|
353
|
+
* where this bracket is thought to be.
|
|
354
|
+
*
|
|
355
|
+
* The bracket is the first `LinkMark` **child** after the opener. A
|
|
356
|
+
* nested image's brackets belong to the `Image` node, not to this
|
|
357
|
+
* one, so a direct-sibling walk steps over `[](url)`
|
|
358
|
+
* without mistaking `![` for the end of the link text.
|
|
359
|
+
*/
|
|
360
|
+
const toCloseMark = (
|
|
361
|
+
openMark: SyntaxNode | null,
|
|
362
|
+
text: string,
|
|
363
|
+
): SyntaxNode | null => {
|
|
364
|
+
for (
|
|
365
|
+
let sibling = openMark?.nextSibling;
|
|
366
|
+
sibling;
|
|
367
|
+
sibling = sibling.nextSibling
|
|
368
|
+
) {
|
|
369
|
+
if (
|
|
370
|
+
sibling.name === "LinkMark" &&
|
|
371
|
+
// Redundant against today's parser — the first `LinkMark`
|
|
372
|
+
// after the opener is always `]`, for a link and an image
|
|
373
|
+
// alike. It is here to state the contract: this function
|
|
374
|
+
// returns a **closing bracket**, and it returns nothing
|
|
375
|
+
// rather than the wrong node if that ever stops holding.
|
|
376
|
+
text.slice(sibling.from, sibling.to) === "]"
|
|
377
|
+
) {
|
|
378
|
+
return sibling
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
return null
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
/**
|
|
386
|
+
* The syntax spans `toPlainText` drops, gathered depth-first.
|
|
387
|
+
*
|
|
388
|
+
* `Escape` contributes only its backslash — `\]` reads as `]`.
|
|
389
|
+
*/
|
|
390
|
+
const toSyntaxSpans = (
|
|
391
|
+
node: SyntaxNode,
|
|
392
|
+
spans: { from: number; to: number }[],
|
|
393
|
+
) => {
|
|
394
|
+
for (
|
|
395
|
+
let child = node.firstChild;
|
|
396
|
+
child;
|
|
397
|
+
child = child.nextSibling
|
|
398
|
+
) {
|
|
399
|
+
if (CONCEALABLE_MARK_NAMES.has(child.name)) {
|
|
400
|
+
spans.push({ from: child.from, to: child.to })
|
|
401
|
+
} else if (child.name === "Escape") {
|
|
402
|
+
spans.push({ from: child.from, to: child.from + 1 })
|
|
403
|
+
} else {
|
|
404
|
+
toSyntaxSpans(child, spans)
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
return spans
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
/**
|
|
412
|
+
* What `[from, to)` reads as once its inline syntax is removed.
|
|
413
|
+
*
|
|
414
|
+
* An image's `alt` is an attribute rather than a span a reader can
|
|
415
|
+
* look at, so ```` has to arrive as
|
|
416
|
+
* `code shot` — never as its own source, and never as the empty
|
|
417
|
+
* string the old sibling walk produced. CommonMark says the same:
|
|
418
|
+
* alt is the plain-text rendering of the inline content.
|
|
419
|
+
*
|
|
420
|
+
* Tree order is ascending, so the spans need no sort.
|
|
421
|
+
*/
|
|
422
|
+
const toPlainText = (
|
|
423
|
+
node: SyntaxNode,
|
|
424
|
+
text: string,
|
|
425
|
+
from: number,
|
|
426
|
+
to: number,
|
|
427
|
+
) => {
|
|
428
|
+
let offset = from
|
|
429
|
+
|
|
430
|
+
let plainText = ""
|
|
431
|
+
|
|
432
|
+
for (const span of toSyntaxSpans(node, [])) {
|
|
433
|
+
if (span.from < offset || span.to > to) {
|
|
434
|
+
continue
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
plainText += text.slice(offset, span.from)
|
|
438
|
+
|
|
439
|
+
offset = span.to
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
return plainText + text.slice(offset, to)
|
|
443
|
+
}
|
|
444
|
+
|
|
336
445
|
/**
|
|
337
446
|
* A heading's `#` run, plus the whitespace after it.
|
|
338
447
|
*
|
|
@@ -931,7 +1040,7 @@ const toWalker = ({
|
|
|
931
1040
|
|
|
932
1041
|
const openMark = node.firstChild
|
|
933
1042
|
|
|
934
|
-
const closeMark = openMark
|
|
1043
|
+
const closeMark = toCloseMark(openMark, text)
|
|
935
1044
|
|
|
936
1045
|
const safeUrl = urlNode
|
|
937
1046
|
? toSafeImageUrl(
|
|
@@ -953,7 +1062,12 @@ const toWalker = ({
|
|
|
953
1062
|
!isInside(selections, node.from, node.to)
|
|
954
1063
|
) {
|
|
955
1064
|
ranges.push({
|
|
956
|
-
alt:
|
|
1065
|
+
alt: toPlainText(
|
|
1066
|
+
node,
|
|
1067
|
+
text,
|
|
1068
|
+
openMark.to,
|
|
1069
|
+
closeMark.from,
|
|
1070
|
+
),
|
|
957
1071
|
from: node.from,
|
|
958
1072
|
to: node.to,
|
|
959
1073
|
type: "image",
|
|
@@ -994,7 +1108,7 @@ const toWalker = ({
|
|
|
994
1108
|
|
|
995
1109
|
const openMark = node.firstChild
|
|
996
1110
|
|
|
997
|
-
const closeMark = openMark
|
|
1111
|
+
const closeMark = toCloseMark(openMark, text)
|
|
998
1112
|
|
|
999
1113
|
const safeUrl = urlNode
|
|
1000
1114
|
? toSafeLinkUrl(
|
|
@@ -1018,7 +1132,18 @@ const toWalker = ({
|
|
|
1018
1132
|
return true
|
|
1019
1133
|
}
|
|
1020
1134
|
|
|
1021
|
-
|
|
1135
|
+
/**
|
|
1136
|
+
* `openMark.to < closeMark.from` is the genuinely-empty
|
|
1137
|
+
* case and only that: `[](url)`, which has no text to mark.
|
|
1138
|
+
* Nested inline markup used to land here too — see
|
|
1139
|
+
* `toCloseMark` — and the guard would have hidden that bug
|
|
1140
|
+
* rather than fixed it, so it stays narrow on purpose.
|
|
1141
|
+
*/
|
|
1142
|
+
if (
|
|
1143
|
+
openMark &&
|
|
1144
|
+
closeMark &&
|
|
1145
|
+
openMark.to < closeMark.from
|
|
1146
|
+
) {
|
|
1022
1147
|
ranges.push({
|
|
1023
1148
|
from: openMark.to,
|
|
1024
1149
|
markKind: "linkText",
|