punctilio 5.1.4 → 5.2.1

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/rehype.js CHANGED
@@ -1,10 +1,21 @@
1
1
  import { SKIP, visitParents } from "unist-util-visit-parents";
2
2
  import { transformView } from "./index.js";
3
- import { TRANSFORM_OPTION_KEYS } from "./transform-options.js";
3
+ import { TRANSFORM_OPTION_KEYS, } from "./transform-options.js";
4
4
  import { MAX_RECURSION_DEPTH } from "./constants.js";
5
5
  import { assertKnownOptionKeys, formatErrorString } from "./utils.js";
6
- import { buildProseView, splitAtIndices } from "./prose-view.js";
7
- const DEFAULT_SKIP_TAGS = ["code", "pre", "script", "style", "kbd", "var", "samp", "template", "math", "svg"];
6
+ import { buildProseView, splitAtIndices, } from "./prose-view.js";
7
+ const DEFAULT_SKIP_TAGS = [
8
+ "code",
9
+ "pre",
10
+ "script",
11
+ "style",
12
+ "kbd",
13
+ "var",
14
+ "samp",
15
+ "template",
16
+ "math",
17
+ "svg",
18
+ ];
8
19
  // Form elements whose text content is a literal control value, not prose.
9
20
  // Hard-skipped (whole subtree) under `transformAllElements`, on top of the
10
21
  // user skip-list, so their values are protected even when nested inside a
@@ -17,15 +28,33 @@ const FORM_VALUE_TAGS = ["textarea", "input"];
17
28
  // the allowlist.
18
29
  const NON_PROSE_CONTAINER_TAGS = new Set(["select"]);
19
30
  /** Option keys handled by `rehypePunctilio` itself rather than `transform()`. */
20
- export const REHYPE_ONLY_OPTION_KEYS = ["skipTags", "skipClasses", "shouldSkipText", "transformAllElements"];
31
+ export const REHYPE_ONLY_OPTION_KEYS = [
32
+ "skipTags",
33
+ "skipClasses",
34
+ "shouldSkipText",
35
+ "transformAllElements",
36
+ ];
21
37
  /** Runtime list of valid `rehypePunctilio` option keys. */
22
- export const REHYPE_OPTION_KEYS = [...TRANSFORM_OPTION_KEYS, ...REHYPE_ONLY_OPTION_KEYS];
38
+ export const REHYPE_OPTION_KEYS = [
39
+ ...TRANSFORM_OPTION_KEYS,
40
+ ...REHYPE_ONLY_OPTION_KEYS,
41
+ ];
23
42
  // Void/replaced inline elements that render atomic content (or a hard break)
24
43
  // and carry no transformable text. When one sits between two text nodes it is a
25
44
  // real visual separator, so the flattener records an opaque gap there.
26
45
  const OPAQUE_VOID_TAGS = new Set([
27
- "img", "br", "wbr", "input", "hr", "embed",
28
- "area", "source", "track", "col", "param", "keygen",
46
+ "img",
47
+ "br",
48
+ "wbr",
49
+ "input",
50
+ "hr",
51
+ "embed",
52
+ "area",
53
+ "source",
54
+ "track",
55
+ "col",
56
+ "param",
57
+ "keygen",
29
58
  ]);
30
59
  function collectProse(node, depth, c) {
31
60
  if (depth > MAX_RECURSION_DEPTH) {
@@ -55,7 +84,9 @@ function collectProse(node, depth, c) {
55
84
  // Snapshot ancestors at the callback boundary — the walker mutates the
56
85
  // shared array as it recurses, so handing it out directly would let a
57
86
  // caller observe a stale view if they captured the reference.
58
- if (c.shouldSkipText && c.ancestors && c.shouldSkipText(node, c.ancestors.slice())) {
87
+ if (c.shouldSkipText &&
88
+ c.ancestors &&
89
+ c.shouldSkipText(node, c.ancestors.slice())) {
59
90
  // Preserved-but-untransformed text is a separator between its neighbors.
60
91
  c.pendingOpaque = true;
61
92
  return;
@@ -121,7 +152,8 @@ export function assertSmartQuotesMatch(input) {
121
152
  stack.push(char);
122
153
  }
123
154
  else if (char in CLOSER_TO_OPENER) {
124
- if (stack.length > 0 && stack[stack.length - 1] === CLOSER_TO_OPENER[char]) {
155
+ if (stack.length > 0 &&
156
+ stack[stack.length - 1] === CLOSER_TO_OPENER[char]) {
125
157
  stack.pop();
126
158
  }
127
159
  else {
@@ -189,15 +221,28 @@ function mergePredicates(base, extra) {
189
221
  * fresh view (built after the previous pass committed) over the text nodes
190
222
  * that survive both the base `options` predicates and its own.
191
223
  *
192
- * The view is a single {@link proseViewOf} spanning the whole element, with a
193
- * boundary recorded at every opaque gap (removed skipped element, image, …).
194
- * Caller passes stay boundary-aware via `view.hasBoundary`, so each pass
195
- * decides for itself whether to act across a gap — spacing a slash between two
196
- * skipped `<code>` runs, gluing a dash after a skipped element — rather than
197
- * being blocked wholesale. Passes that must not cross a gap consult the same
198
- * boundary marks; use {@link proseViewsOf} directly for hard per-segment views.
224
+ * The view is a single spanning view (over the whole element, or a run's loose
225
+ * inline children), with a boundary recorded at every opaque gap (removed
226
+ * skipped element, image, …). Caller passes stay boundary-aware via
227
+ * `view.hasBoundary`, so each pass decides for itself whether to act across a
228
+ * gap — spacing a slash between two skipped `<code>` runs, gluing a dash after a
229
+ * skipped element — rather than being blocked wholesale. Passes that must not
230
+ * cross a gap consult the same boundary marks; use {@link proseViewsOf} directly
231
+ * for hard per-segment views.
232
+ *
233
+ * Accepts a bare element (formatted whole) or a {@link ProseUnit} from
234
+ * {@link collectProseUnits}; a "run" unit formats a container's loose inline
235
+ * text without pulling in its block children.
199
236
  */
200
- export function applyPasses(element, passes, options = {}) {
237
+ export function applyPasses(target, passes, options = {}) {
238
+ const makeView = (viewOptions) => {
239
+ if ("kind" in target) {
240
+ return target.kind === "element"
241
+ ? proseViewOf(target.element, viewOptions)
242
+ : runViewOf(target.container, target.children, viewOptions);
243
+ }
244
+ return proseViewOf(target, viewOptions);
245
+ };
201
246
  let currentView = null;
202
247
  let currentPredicates = null;
203
248
  for (const entry of passes) {
@@ -206,7 +251,7 @@ export function applyPasses(element, passes, options = {}) {
206
251
  currentPredicates.shouldSkip === shouldSkip &&
207
252
  currentPredicates.shouldSkipText === shouldSkipText;
208
253
  if (!samePredicates) {
209
- currentView = proseViewOf(element, {
254
+ currentView = makeView({
210
255
  shouldSkip: mergePredicates(options.shouldSkip, shouldSkip),
211
256
  shouldSkipText: mergePredicates(options.shouldSkipText, shouldSkipText),
212
257
  });
@@ -223,11 +268,39 @@ export function applyPasses(element, passes, options = {}) {
223
268
  // Block children cause per-block processing to avoid merging text across
224
269
  // semantically independent blocks (e.g., separate <p>s inside a <div>).
225
270
  const BLOCK_ELEMENTS = new Set([
226
- "address", "article", "aside", "blockquote", "details", "dialog",
227
- "dd", "div", "dl", "dt", "fieldset", "figcaption", "figure",
228
- "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6",
229
- "header", "hgroup", "hr", "li", "main", "nav", "ol",
230
- "p", "pre", "section", "table", "ul",
271
+ "address",
272
+ "article",
273
+ "aside",
274
+ "blockquote",
275
+ "details",
276
+ "dialog",
277
+ "dd",
278
+ "div",
279
+ "dl",
280
+ "dt",
281
+ "fieldset",
282
+ "figcaption",
283
+ "figure",
284
+ "footer",
285
+ "form",
286
+ "h1",
287
+ "h2",
288
+ "h3",
289
+ "h4",
290
+ "h5",
291
+ "h6",
292
+ "header",
293
+ "hgroup",
294
+ "hr",
295
+ "li",
296
+ "main",
297
+ "nav",
298
+ "ol",
299
+ "p",
300
+ "pre",
301
+ "section",
302
+ "table",
303
+ "ul",
231
304
  ]);
232
305
  const TRANSFORMABLE_ELEMENTS = new Set([
233
306
  "p",
@@ -310,7 +383,7 @@ function hasTextDescendant(node, shouldSkip, depth = 0) {
310
383
  return false;
311
384
  }
312
385
  function resolveCollectOptions(options) {
313
- const { skipTags = DEFAULT_SKIP_TAGS, skipClasses = [], shouldSkip, transformAllElements = false } = options;
386
+ const { skipTags = DEFAULT_SKIP_TAGS, skipClasses = [], shouldSkip, transformAllElements = false, } = options;
314
387
  // In inverted mode, form-value elements join the skip-list so their literal
315
388
  // values are neither transformed nor flattened into a transformable ancestor.
316
389
  const skipTagSet = new Set(transformAllElements ? [...skipTags, ...FORM_VALUE_TAGS] : skipTags);
@@ -321,11 +394,15 @@ function resolveCollectOptions(options) {
321
394
  const classNames = node.properties?.className;
322
395
  const classes = Array.isArray(classNames)
323
396
  ? classNames.filter((c) => typeof c === "string")
324
- : typeof classNames === "string" ? classNames.split(/\s+/) : [];
397
+ : typeof classNames === "string"
398
+ ? classNames.split(/\s+/)
399
+ : [];
325
400
  return classes.some((cls) => skipClassSet.has(cls));
326
401
  };
327
402
  return {
328
- shouldSkip: (node) => skipTagSet.has(node.tagName) || hasSkipClass(node) || (shouldSkip?.(node) ?? false),
403
+ shouldSkip: (node) => skipTagSet.has(node.tagName) ||
404
+ hasSkipClass(node) ||
405
+ (shouldSkip?.(node) ?? false),
329
406
  // Inverted mode transforms every non-skipped element except non-prose
330
407
  // containers; the default keeps the `TRANSFORMABLE_ELEMENTS` allowlist
331
408
  // (plus custom elements).
@@ -339,12 +416,23 @@ function resolveCollectOptions(options) {
339
416
  * transformed as one prose block: transformable elements with direct text or
340
417
  * inline-only text descendants. Elements with block-level children recurse so
341
418
  * each block transforms independently. Loose inline text mixed among block
342
- * children is handled by the plugin as its own run and is not represented here.
419
+ * children is NOT represented here — use {@link collectProseUnits} to reach it.
343
420
  */
344
421
  export function collectProseBlocks(root, options = {}) {
345
422
  const { shouldSkip, isTransformable } = resolveCollectOptions(options);
346
- return collectProseUnitsImpl(root, shouldSkip, 0, undefined, isTransformable)
347
- .flatMap((unit) => (unit.kind === "element" ? [unit.element] : []));
423
+ return collectProseUnitsImpl(root, shouldSkip, 0, undefined, isTransformable).flatMap((unit) => (unit.kind === "element" ? [unit.element] : []));
424
+ }
425
+ /**
426
+ * Like {@link collectProseBlocks}, but also returns "run" units — maximal groups
427
+ * of loose inline siblings sitting beside block children (e.g. the bare text in
428
+ * `<blockquote><p>…</p>loose text</blockquote>`). A consumer that walks elements
429
+ * cannot otherwise reach that text (it belongs to no element of its own); pass
430
+ * each unit to {@link applyPasses}, which formats a run without merging its
431
+ * container's block children.
432
+ */
433
+ export function collectProseUnits(root, options = {}) {
434
+ const { shouldSkip, isTransformable } = resolveCollectOptions(options);
435
+ return collectProseUnitsImpl(root, shouldSkip, 0, undefined, isTransformable);
348
436
  }
349
437
  function runHasProse(children, shouldSkip) {
350
438
  return children.some((child) => (child.type === "text" && child.value.trim() !== "") ||
@@ -418,6 +506,16 @@ function flattenRunProse(container, children, shouldSkip, options) {
418
506
  collectProse(child, 1, c);
419
507
  return { nodes: c.nodes, opaqueBefore: c.opaqueBefore };
420
508
  }
509
+ /**
510
+ * A single spanning ProseView over a run's loose inline children, with a
511
+ * boundary at every opaque gap — the run analogue of {@link proseViewOf}. Null
512
+ * when the run holds no transformable text.
513
+ */
514
+ function runViewOf(container, children, options) {
515
+ const shouldSkip = options.shouldSkip ?? (() => false);
516
+ const { nodes } = flattenRunProse(container, children, shouldSkip, options);
517
+ return nodes.length === 0 ? null : buildProseView(nodes);
518
+ }
421
519
  function markDescendants(node, set, depth = 0) {
422
520
  /* istanbul ignore if -- defensive: prevents stack overflow from malicious HTML */
423
521
  if (depth > MAX_RECURSION_DEPTH) {
@@ -433,7 +531,11 @@ function markDescendants(node, set, depth = 0) {
433
531
  export function rehypePunctilio(options = {}) {
434
532
  assertKnownOptionKeys(options, REHYPE_OPTION_KEYS, "rehypePunctilio");
435
533
  const { skipTags, skipClasses, shouldSkipText, transformAllElements, ...transformOptions } = options;
436
- const { shouldSkip, isTransformable } = resolveCollectOptions({ skipTags, skipClasses, transformAllElements });
534
+ const { shouldSkip, isTransformable } = resolveCollectOptions({
535
+ skipTags,
536
+ skipClasses,
537
+ transformAllElements,
538
+ });
437
539
  // Allocate the per-element options object once; it's read-only inside
438
540
  // proseViewOf, so sharing across calls is safe and avoids a fresh
439
541
  // allocation per transformable element.
@@ -1 +1 @@
1
- {"version":3,"file":"rehype.js","sourceRoot":"","sources":["../src/rehype.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rehype.js","sourceRoot":"","sources":["../src/rehype.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "punctilio",
3
- "version": "5.1.4",
3
+ "version": "5.2.1",
4
4
  "description": "Smart typography transformations: curly quotes, em-dashes, en-dashes, and more",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -949,6 +949,49 @@ function applyRelocations(order: Item[], moves: Relocation[]): Item[] {
949
949
  return result
950
950
  }
951
951
 
952
+ const OPEN_BRACKETS = new Set<string>(["(", "[", "{"])
953
+ const CLOSE_BRACKETS = new Set<string>([")", "]", "}"])
954
+
955
+ /**
956
+ * Unmatched open brackets (`(`, `[`, `{`) strictly before each item — a
957
+ * position is inside a bracket pair when its entry is > 0. Brackets never move
958
+ * during placement, so the depths hold across the fixpoint's rounds. Boundary
959
+ * items are transparent; a closer with no opener above it floors the depth at 0.
960
+ */
961
+ function bracketDepths(order: Item[]): number[] {
962
+ const depths: number[] = []
963
+ let depth = 0
964
+ for (const item of order) {
965
+ depths.push(depth)
966
+ if (item.boundary) continue
967
+ if (OPEN_BRACKETS.has(item.ch)) depth++
968
+ else if (CLOSE_BRACKETS.has(item.ch) && depth > 0) depth--
969
+ }
970
+ return depths
971
+ }
972
+
973
+ /**
974
+ * True iff the comma at `punctIndex` delimits two quoted items inside a bracket
975
+ * pair (`["a", "b"]`, `("a", "b")`, `{"a", "b"}`). Such a comma is a list
976
+ * separator, not sentence punctuation, so American placement must leave it
977
+ * outside the closer — pulling it in would corrupt the quoted item's exact text
978
+ * (`"a,"`). Detected when the run sits inside a bracket (depth > 0; a stray
979
+ * closer floors the count at 0, so an unbalanced `depth <= 0` reads as outside)
980
+ * and the next item after the comma opens the following quoted item. Bare
981
+ * `"a", "b"` in running prose (depth 0) is left to the American rule, where a
982
+ * comma between quoted words correctly moves inside.
983
+ */
984
+ function isBracketedListSeparator(order: Item[], runStart: number, punctIndex: number, depths: number[]): boolean {
985
+ if (order[punctIndex].ch !== "," || depths[runStart] <= 0) return false
986
+ // The next quoted item always opens after the separator's single space
987
+ // (`, "b"`): a comma-adjacent quote never satisfies an opener rule, so the
988
+ // space is invariant.
989
+ const space = nextIndex(order, punctIndex, 1)
990
+ if (!isCharItem(order, space, " ")) return false
991
+ const opener = order[nextIndex(order, space, 1)]
992
+ return opener?.ch === LEFT_DOUBLE_QUOTE || opener?.ch === LEFT_SINGLE_QUOTE
993
+ }
994
+
952
995
  /**
953
996
  * American style: a period or comma directly after a closing-quote run moves
954
997
  * to just before the run, unless the character before the run is terminal
@@ -969,6 +1012,7 @@ function movePunctuationInside(order: Item[], isMovable: (items: Item[], index:
969
1012
  }
970
1013
  }
971
1014
  const movedFrom = new Set<number>()
1015
+ const depths = bracketDepths(order)
972
1016
  let position = 0
973
1017
  while (position < order.length) {
974
1018
  const runStart = order[position].boundary ? position + 1 : position
@@ -1019,6 +1063,12 @@ function movePunctuationInside(order: Item[], isMovable: (items: Item[], index:
1019
1063
  position++
1020
1064
  continue
1021
1065
  }
1066
+ // A comma between two quoted items inside brackets delimits a list; keep it
1067
+ // outside the closer instead of corrupting the item's text (`"a,"`).
1068
+ if (isBracketedListSeparator(order, runStart, punctIndex, depths)) {
1069
+ position++
1070
+ continue
1071
+ }
1022
1072
  // Moving the punctuation inside strips the run of its ending context: an
1023
1073
  // unresolved straight single quote earlier in the text whose closer-ahead
1024
1074
  // scan reads a single closer in this run would stop seeing it as a closer