lens-content-processor 0.20.0 → 0.21.0
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/parser/article.js
CHANGED
|
@@ -3,6 +3,7 @@ import { validateFrontmatter } from "../validator/validate-frontmatter.js";
|
|
|
3
3
|
import { validateDirectives } from "../validator/directives.js";
|
|
4
4
|
import { validateHtmlTags } from "../validator/html-tags.js";
|
|
5
5
|
import { validateTrailingHr } from "../validator/trailing-hr.js";
|
|
6
|
+
import { validateEmphasis } from "../validator/emphasis.js";
|
|
6
7
|
import { stripAuthoringMarkup } from "./lens.js";
|
|
7
8
|
/**
|
|
8
9
|
* Returns the part of the author's `name` found in `title`, or null if none.
|
|
@@ -102,6 +103,8 @@ export function parseArticle(content, file) {
|
|
|
102
103
|
errors.push(...validateHtmlTags(body, file, bodyStartLine));
|
|
103
104
|
// Flag a trailing --- rule (doubles the platform's own end separator)
|
|
104
105
|
errors.push(...validateTrailingHr(body, file, bodyStartLine));
|
|
106
|
+
// Flag malformed bold/italic emphasis that renders literal markers
|
|
107
|
+
errors.push(...validateEmphasis(body, file, bodyStartLine));
|
|
105
108
|
// Scan body for images
|
|
106
109
|
const imageUrls = [];
|
|
107
110
|
const bodyLines = body.split("\n");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"article.js","sourceRoot":"","sources":["../../src/parser/article.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"article.js","sourceRoot":"","sources":["../../src/parser/article.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ContentError } from "../index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Flag malformed emphasis: two or more same-character delimiter runs in one
|
|
4
|
+
* paragraph that can open but can never close, so they all render as literal
|
|
5
|
+
* `*`/`**`/`_` characters. One error per broken run after the first (the
|
|
6
|
+
* first is the intended opener; each later one is the misplaced closer).
|
|
7
|
+
*/
|
|
8
|
+
export declare function validateEmphasis(body: string, file: string, bodyStartLine: number): ContentError[];
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
const CODE_FENCE = /^(?:```|~~~)/;
|
|
2
|
+
// Regions whose */_ characters are not emphasis delimiters. Their interiors
|
|
3
|
+
// are replaced with same-length whitespace so run offsets stay stable, but
|
|
4
|
+
// the boundary characters are KEPT: CommonMark's flanking rules look at the
|
|
5
|
+
// literal source character next to a delimiter, so the `)` in `_[text](url)_`
|
|
6
|
+
// must survive for the closing `_` to stay right-flanking.
|
|
7
|
+
const BLANK_PATTERNS = [
|
|
8
|
+
/(`+)[\s\S]*?\1/g, // inline code spans (``code`` supported)
|
|
9
|
+
/\$\$[\s\S]*?\$\$/g, // display math
|
|
10
|
+
/\$(?!\s)(?:[^$\n]*?[^\s$])?\$/g, // inline math: $x$, $10^{28}$ — not "$5 and $10"
|
|
11
|
+
/\[\[[^\]]*\]\]/g, // wikilinks (may contain underscores in filenames)
|
|
12
|
+
/\]\((?:[^()]|\([^()]*\))*\)/g, // link/image destinations (1 level of nested parens)
|
|
13
|
+
/<?https?:\/\/[^\s>]+>?/g, // bare URLs / autolinks (underscores in paths)
|
|
14
|
+
];
|
|
15
|
+
function blankRegions(text) {
|
|
16
|
+
// Backslash-escaped punctuation renders as a literal character, which is
|
|
17
|
+
// punctuation but never a delimiter — substitute benign punctuation.
|
|
18
|
+
let out = text.replace(/\\[!-/:-@[-`{-~]/g, "..");
|
|
19
|
+
for (const pattern of BLANK_PATTERNS) {
|
|
20
|
+
out = out.replace(pattern, (m) => {
|
|
21
|
+
if (m.length <= 2)
|
|
22
|
+
return m;
|
|
23
|
+
// Keep boundary chars for faithful flanking, unless they are
|
|
24
|
+
// themselves delimiter chars (a bare URL can end in `_`).
|
|
25
|
+
const first = /[*_]/.test(m[0]) ? " " : m[0];
|
|
26
|
+
const last = /[*_]/.test(m[m.length - 1]) ? " " : m[m.length - 1];
|
|
27
|
+
return first + " ".repeat(m.length - 2) + last;
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
return out;
|
|
31
|
+
}
|
|
32
|
+
const PUNCT = /[\p{P}\p{S}]/u;
|
|
33
|
+
/** Collect `*` / `_` runs with CommonMark flanking classification. */
|
|
34
|
+
function collectRuns(text) {
|
|
35
|
+
const runs = [];
|
|
36
|
+
for (const match of text.matchAll(/([*_])\1*/g)) {
|
|
37
|
+
const char = match[1];
|
|
38
|
+
const start = match.index;
|
|
39
|
+
const length = match[0].length;
|
|
40
|
+
const before = start > 0 ? text[start - 1] : undefined;
|
|
41
|
+
const after = start + length < text.length ? text[start + length] : undefined;
|
|
42
|
+
const beforeWs = before === undefined || /\s/.test(before);
|
|
43
|
+
const afterWs = after === undefined || /\s/.test(after);
|
|
44
|
+
const beforePunct = before !== undefined && PUNCT.test(before);
|
|
45
|
+
const afterPunct = after !== undefined && PUNCT.test(after);
|
|
46
|
+
const leftFlanking = !afterWs && (!afterPunct || beforeWs || beforePunct);
|
|
47
|
+
const rightFlanking = !beforeWs && (!beforePunct || afterWs || afterPunct);
|
|
48
|
+
// Underscores additionally must not open/close intraword (snake_case).
|
|
49
|
+
const canOpen = char === "*"
|
|
50
|
+
? leftFlanking
|
|
51
|
+
: leftFlanking && (!rightFlanking || beforePunct);
|
|
52
|
+
const canClose = char === "*"
|
|
53
|
+
? rightFlanking
|
|
54
|
+
: rightFlanking && (!leftFlanking || afterPunct);
|
|
55
|
+
runs.push({ char, start, length, canOpen, canClose, remaining: length });
|
|
56
|
+
}
|
|
57
|
+
return runs;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Pair closers with openers (nearest preceding same-char opener), mutating
|
|
61
|
+
* `remaining`. Simplified CommonMark matching: the multiple-of-3 rule is
|
|
62
|
+
* omitted — it only changes exotic mixed-run cases, never the
|
|
63
|
+
* misplaced-space signature this rule reports on.
|
|
64
|
+
*/
|
|
65
|
+
function matchRuns(runs) {
|
|
66
|
+
for (let i = 0; i < runs.length; i++) {
|
|
67
|
+
const closer = runs[i];
|
|
68
|
+
if (!closer.canClose)
|
|
69
|
+
continue;
|
|
70
|
+
for (let j = i - 1; j >= 0 && closer.remaining > 0; j--) {
|
|
71
|
+
const opener = runs[j];
|
|
72
|
+
if (opener.char !== closer.char || !opener.canOpen)
|
|
73
|
+
continue;
|
|
74
|
+
if (opener.remaining === 0)
|
|
75
|
+
continue;
|
|
76
|
+
const used = Math.min(opener.remaining, closer.remaining);
|
|
77
|
+
opener.remaining -= used;
|
|
78
|
+
closer.remaining -= used;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function markerName(run) {
|
|
83
|
+
return run.length >= 2 ? "bold" : "italic";
|
|
84
|
+
}
|
|
85
|
+
/** Short context snippet around a run, for the error message. */
|
|
86
|
+
function snippet(text, run) {
|
|
87
|
+
const from = Math.max(0, run.start - 25);
|
|
88
|
+
const to = Math.min(text.length, run.start + run.length + 15);
|
|
89
|
+
const raw = text.slice(from, to).replace(/\s+/g, " ").trim();
|
|
90
|
+
return `${from > 0 ? "…" : ""}${raw}${to < text.length ? "…" : ""}`;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Flag malformed emphasis: two or more same-character delimiter runs in one
|
|
94
|
+
* paragraph that can open but can never close, so they all render as literal
|
|
95
|
+
* `*`/`**`/`_` characters. One error per broken run after the first (the
|
|
96
|
+
* first is the intended opener; each later one is the misplaced closer).
|
|
97
|
+
*/
|
|
98
|
+
export function validateEmphasis(body, file, bodyStartLine) {
|
|
99
|
+
const errors = [];
|
|
100
|
+
// Blank out fenced code block contents (keep line count).
|
|
101
|
+
const lines = body.split("\n");
|
|
102
|
+
let inCodeBlock = false;
|
|
103
|
+
const cleaned = lines.map((line) => {
|
|
104
|
+
if (CODE_FENCE.test(line)) {
|
|
105
|
+
inCodeBlock = !inCodeBlock;
|
|
106
|
+
return "";
|
|
107
|
+
}
|
|
108
|
+
return inCodeBlock ? "" : line;
|
|
109
|
+
});
|
|
110
|
+
// Walk paragraphs (runs of non-blank lines) — emphasis never crosses a
|
|
111
|
+
// blank line, but it can span lines within a paragraph.
|
|
112
|
+
let paraStart = -1;
|
|
113
|
+
for (let i = 0; i <= cleaned.length; i++) {
|
|
114
|
+
const blank = i === cleaned.length || cleaned[i].trim() === "";
|
|
115
|
+
if (!blank) {
|
|
116
|
+
if (paraStart === -1)
|
|
117
|
+
paraStart = i;
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
if (paraStart === -1)
|
|
121
|
+
continue;
|
|
122
|
+
const paragraph = blankRegions(cleaned.slice(paraStart, i).join("\n"));
|
|
123
|
+
const runs = collectRuns(paragraph);
|
|
124
|
+
matchRuns(runs);
|
|
125
|
+
for (const char of ["*", "_"]) {
|
|
126
|
+
const broken = runs.filter((r) => r.char === char && r.remaining > 0 && r.canOpen && !r.canClose);
|
|
127
|
+
// A single unclosed opener is ambiguous; a pair is the misplaced-space
|
|
128
|
+
// signature: the intended closer became a second opener. Report once
|
|
129
|
+
// per paragraph (at the first broken closer) to keep the output
|
|
130
|
+
// readable when a scraped file breaks the same way many times.
|
|
131
|
+
if (broken.length < 2)
|
|
132
|
+
continue;
|
|
133
|
+
const run = broken[1];
|
|
134
|
+
const marker = char.repeat(run.length);
|
|
135
|
+
const lineOffset = paragraph.slice(0, run.start).split("\n").length - 1;
|
|
136
|
+
const more = broken.length > 2
|
|
137
|
+
? ` (+${broken.length - 2} more in this paragraph)`
|
|
138
|
+
: "";
|
|
139
|
+
errors.push({
|
|
140
|
+
file,
|
|
141
|
+
line: bodyStartLine + paraStart + lineOffset,
|
|
142
|
+
message: `Malformed ${markerName(run)} emphasis: '${marker}' in ` +
|
|
143
|
+
`"${snippet(paragraph, run)}" is fused to the following text, so ` +
|
|
144
|
+
`it cannot close the earlier '${marker}' — the markers render as ` +
|
|
145
|
+
`literal characters${more}`,
|
|
146
|
+
suggestion: `A closing '${marker}' must sit flush against the end of the ` +
|
|
147
|
+
`emphasized text: write '…word${marker} Next', not '…word ${marker}Next'`,
|
|
148
|
+
severity: "error",
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
paraStart = -1;
|
|
152
|
+
}
|
|
153
|
+
return errors;
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=emphasis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emphasis.js","sourceRoot":"","sources":["../../src/validator/emphasis.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED