paperlint 6.0.0 → 6.1.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.
Files changed (64) hide show
  1. package/dist/adapters/latex/index.d.ts +1 -1
  2. package/dist/adapters/latex/index.d.ts.map +1 -1
  3. package/dist/adapters/latex/index.js +3 -2
  4. package/dist/adapters/latex/index.js.map +1 -1
  5. package/dist/adapters/latex/prose.d.ts +6 -1
  6. package/dist/adapters/latex/prose.d.ts.map +1 -1
  7. package/dist/adapters/latex/prose.js +142 -31
  8. package/dist/adapters/latex/prose.js.map +1 -1
  9. package/dist/cli.d.ts.map +1 -1
  10. package/dist/cli.js +15 -18
  11. package/dist/cli.js.map +1 -1
  12. package/dist/domain/register.d.ts +96 -0
  13. package/dist/domain/register.d.ts.map +1 -0
  14. package/dist/domain/register.js +136 -0
  15. package/dist/domain/register.js.map +1 -0
  16. package/dist/domain/tex-document.d.ts +19 -0
  17. package/dist/domain/tex-document.d.ts.map +1 -1
  18. package/dist/domain/tex-document.js +8 -3
  19. package/dist/domain/tex-document.js.map +1 -1
  20. package/dist/ports/latex.d.ts +6 -1
  21. package/dist/ports/latex.d.ts.map +1 -1
  22. package/dist/presets.d.ts +3 -0
  23. package/dist/presets.d.ts.map +1 -1
  24. package/dist/presets.js +4 -1
  25. package/dist/presets.js.map +1 -1
  26. package/dist/register-bands.d.ts +37 -0
  27. package/dist/register-bands.d.ts.map +1 -0
  28. package/dist/register-bands.js +196 -0
  29. package/dist/register-bands.js.map +1 -0
  30. package/dist/register.d.ts +4 -2
  31. package/dist/register.d.ts.map +1 -1
  32. package/dist/register.js +6 -45
  33. package/dist/register.js.map +1 -1
  34. package/dist/tex-requirements.d.ts +6 -0
  35. package/dist/tex-requirements.d.ts.map +1 -1
  36. package/dist/tex-requirements.js +26 -6
  37. package/dist/tex-requirements.js.map +1 -1
  38. package/dist/tex-venue-rules.d.ts +1 -1
  39. package/dist/tex-venue-rules.d.ts.map +1 -1
  40. package/dist/tex-venue-rules.js.map +1 -1
  41. package/docs/rules/tex/claim-emphasis.md +71 -0
  42. package/docs/rules/tex/contrast-frames.md +100 -0
  43. package/docs/rules/tex/relation-markers.md +72 -0
  44. package/docs/rules.md +46 -42
  45. package/package.json +1 -1
  46. package/presets/aidc.jsonc +50 -0
  47. package/presets/venue-profile.schema.json +48 -1
  48. package/skills/grade-paper-writing/SKILL.md +59 -27
  49. package/skills/grade-paper-writing/SKILL.md.spec.ts +58 -26
  50. package/src/adapters/latex/index.test.ts +91 -0
  51. package/src/adapters/latex/index.ts +3 -2
  52. package/src/adapters/latex/prose.ts +188 -58
  53. package/src/cli.ts +19 -18
  54. package/src/domain/register.test.ts +153 -0
  55. package/src/domain/register.ts +261 -0
  56. package/src/domain/tex-document.ts +37 -3
  57. package/src/ports/latex.ts +6 -0
  58. package/src/presets.ts +7 -1
  59. package/src/register-bands.test.ts +327 -0
  60. package/src/register-bands.ts +291 -0
  61. package/src/register.ts +7 -37
  62. package/src/rule-cases.test.ts +67 -17
  63. package/src/tex-requirements.ts +47 -8
  64. package/src/tex-venue-rules.ts +7 -1
@@ -26,7 +26,7 @@ export { collapse, inPlace, macroPlace, mandatory, optional, placeOf, textOf, }
26
26
  export { documentBodyOf, includesOf } from "./includes.ts";
27
27
  export { outlineOf } from "./outline.ts";
28
28
  export { parseLatex, type ParsedTex } from "./parse.ts";
29
- export { bodyProse } from "./prose.ts";
29
+ export { bodyEmphasis, bodyProse } from "./prose.ts";
30
30
  export { renderedRuns } from "./rendered.ts";
31
31
  export { layoutOverridesOf } from "./layout.ts";
32
32
  /** The `LatexReader` port over unified-latex: each call parses its source once. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/latex/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAaxD,OAAO,EACL,eAAe,EACf,aAAa,EACb,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,QAAQ,EACR,OAAO,EACP,UAAU,EACV,SAAS,EACT,QAAQ,EACR,OAAO,EACP,MAAM,GACP,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,mFAAmF;AACnF,eAAO,MAAM,WAAW,EAAE,WAUzB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/latex/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAaxD,OAAO,EACL,eAAe,EACf,aAAa,EACb,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,QAAQ,EACR,OAAO,EACP,UAAU,EACV,SAAS,EACT,QAAQ,EACR,OAAO,EACP,MAAM,GACP,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,mFAAmF;AACnF,eAAO,MAAM,WAAW,EAAE,WAWzB,CAAC"}
@@ -2,7 +2,7 @@ import { documentClassOf, parseTemplate, replaceDocumentClass, } from "./documen
2
2
  import { documentBodyOf, includesOf } from "./includes.js";
3
3
  import { outlineOf } from "./outline.js";
4
4
  import { parseLatex } from "./parse.js";
5
- import { bodyProse } from "./prose.js";
5
+ import { bodyEmphasis, bodyProse } from "./prose.js";
6
6
  import { renderedRuns } from "./rendered.js";
7
7
  import { layoutOverridesOf } from "./layout.js";
8
8
  export { documentClassOf, parseTemplate, replaceDocumentClass, } from "./document-class.js";
@@ -10,7 +10,7 @@ export { collapse, inPlace, macroPlace, mandatory, optional, placeOf, textOf, }
10
10
  export { documentBodyOf, includesOf } from "./includes.js";
11
11
  export { outlineOf } from "./outline.js";
12
12
  export { parseLatex } from "./parse.js";
13
- export { bodyProse } from "./prose.js";
13
+ export { bodyEmphasis, bodyProse } from "./prose.js";
14
14
  export { renderedRuns } from "./rendered.js";
15
15
  export { layoutOverridesOf } from "./layout.js";
16
16
  /** The `LatexReader` port over unified-latex: each call parses its source once. */
@@ -19,6 +19,7 @@ export const latexReader = {
19
19
  outline: (src) => outlineOf(parseLatex(src)),
20
20
  renderedRuns: (src) => renderedRuns(parseLatex(src)),
21
21
  bodyProse: (src) => bodyProse(parseLatex(src)),
22
+ bodyEmphasis: (src) => bodyEmphasis(parseLatex(src)),
22
23
  includes: (src) => includesOf(parseLatex(src)),
23
24
  documentBody: (src) => documentBodyOf(parseLatex(src)),
24
25
  template: parseTemplate,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/latex/index.ts"],"names":[],"mappings":"AAuBA,OAAO,EACL,eAAe,EACf,aAAa,EACb,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EACL,eAAe,EACf,aAAa,EACb,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,QAAQ,EACR,OAAO,EACP,UAAU,EACV,SAAS,EACT,QAAQ,EACR,OAAO,EACP,MAAM,GACP,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAkB,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,mFAAmF;AACnF,MAAM,CAAC,MAAM,WAAW,GAAgB;IACtC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACxD,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5C,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACpD,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9C,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9C,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACtD,QAAQ,EAAE,aAAa;IACvB,iBAAiB,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IAC7E,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;CAC7D,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/latex/index.ts"],"names":[],"mappings":"AAuBA,OAAO,EACL,eAAe,EACf,aAAa,EACb,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EACL,eAAe,EACf,aAAa,EACb,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,QAAQ,EACR,OAAO,EACP,UAAU,EACV,SAAS,EACT,QAAQ,EACR,OAAO,EACP,MAAM,GACP,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAkB,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,mFAAmF;AACnF,MAAM,CAAC,MAAM,WAAW,GAAgB;IACtC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACxD,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5C,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACpD,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9C,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACpD,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9C,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACtD,QAAQ,EAAE,aAAa;IACvB,iBAAiB,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IAC7E,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;CAC7D,CAAC"}
@@ -1,8 +1,13 @@
1
- import type { Passage } from "../../domain/tex-document.ts";
1
+ import type { Emphasis, Passage } from "../../domain/tex-document.ts";
2
2
  import { type ParsedTex } from "./parse.ts";
3
3
  /**
4
4
  * The body's prose, in document order: the content of the `document` environment (the whole
5
5
  * source when there is none), up to the first back-matter node.
6
6
  */
7
7
  export declare function bodyProse(t: ParsedTex): readonly Passage[];
8
+ /**
9
+ * The phrases set in bold, italics or underline inside the body's prose, in document order: what
10
+ * `bodyProse` reads, so never a heading, a run-in heading, a caption, a float or a table.
11
+ */
12
+ export declare function bodyEmphasis(t: ParsedTex): readonly Emphasis[];
8
13
  //# sourceMappingURL=prose.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prose.d.ts","sourceRoot":"","sources":["../../../src/adapters/latex/prose.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAS,OAAO,EAAc,MAAM,8BAA8B,CAAC;AAW/E,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AA6bhF;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS,OAAO,EAAE,CAM1D"}
1
+ {"version":3,"file":"prose.d.ts","sourceRoot":"","sources":["../../../src/adapters/latex/prose.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,QAAQ,EAGR,OAAO,EAGR,MAAM,8BAA8B,CAAC;AAYtC,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AA+iBhF;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS,OAAO,EAAE,CAE1D;AAMD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS,QAAQ,EAAE,CAE9D"}
@@ -1,5 +1,5 @@
1
- import { hasAtLeast, sortBy } from "remeda";
2
- import { argumentsOf, inPlace, macroPlace, mandatory, placeOf, stringText, } from "./nodes.js";
1
+ import { hasAtLeast, mapWithFeedback, only, sortBy, zip } from "remeda";
2
+ import { argumentsOf, collapse, inPlace, macroPlace, mandatory, placeOf, stringText, } from "./nodes.js";
3
3
  import { CITATION_MACROS, DEFINITION_MACROS } from "./parse.js";
4
4
  const BREAK = { kind: "break" };
5
5
  const END = { kind: "end" };
@@ -186,6 +186,62 @@ const OWN_EVENTS = new Map([
186
186
  (t, m) => [BREAK, ...walkList(t, itemBody(m), true)],
187
187
  ],
188
188
  ]);
189
+ /** Formatting macros that set their argument apart from the running text, and how. */
190
+ const EMPHASIS_MACROS = new Map([
191
+ ["textbf", "bold"],
192
+ ["emph", "italic"],
193
+ ["textit", "italic"],
194
+ ["textsl", "italic"],
195
+ ["underline", "underline"],
196
+ ["uline", "underline"],
197
+ ]);
198
+ /**
199
+ * Declarations that set the rest of their group apart — `{\bfseries …}`, `{\em …}` — and how. The
200
+ * group is the phrase.
201
+ */
202
+ const EMPHASIS_DECLARATIONS = new Map([
203
+ ["bfseries", "bold"],
204
+ ["bf", "bold"],
205
+ ["em", "italic"],
206
+ ["itshape", "italic"],
207
+ ["it", "italic"],
208
+ ["slshape", "italic"],
209
+ ]);
210
+ /** An emphasised phrase over `place`, typesetting what `inner` typesets; nothing when it has no place or no text. */
211
+ const emphasisOf = (style, place, inner) => inPlace(place, (span) => {
212
+ const text = collapse(typeset(inner));
213
+ return text === ""
214
+ ? []
215
+ : [
216
+ {
217
+ kind: "emphasis",
218
+ emphasis: { style, place: "inline", text, span },
219
+ },
220
+ ];
221
+ });
222
+ /** A formatting macro's events: what it typesets, and — for an emphasising one — the phrase. */
223
+ function formattingEvents(t, m) {
224
+ const inner = walkList(t, lastArgument(m));
225
+ const style = EMPHASIS_MACROS.get(m.content);
226
+ return style === undefined
227
+ ? inner
228
+ : [...emphasisOf(style, macroPlace(m), inner), ...inner];
229
+ }
230
+ /** The style a group's opening declaration sets, when it opens with one (`{\bfseries …}`). */
231
+ function declaredStyle(list) {
232
+ const first = list.find((n) => n.type !== "whitespace" && n.type !== "comment");
233
+ return first?.type === "macro"
234
+ ? EMPHASIS_DECLARATIONS.get(first.content)
235
+ : undefined;
236
+ }
237
+ /** A group's events: what it typesets, and — when it opens with an emphasis declaration — the phrase. */
238
+ function groupEvents(t, g) {
239
+ const inner = walkList(t, g.content);
240
+ const style = declaredStyle(g.content);
241
+ return style === undefined
242
+ ? inner
243
+ : [...emphasisOf(style, placeOf(g), inner), ...inner];
244
+ }
189
245
  function macroEvents(t, m) {
190
246
  const name = m.content;
191
247
  if (DEFINITION_MACROS.has(name))
@@ -202,7 +258,7 @@ function macroEvents(t, m) {
202
258
  if (BREAK_MACROS.has(name))
203
259
  return [BREAK];
204
260
  if (INLINE_MACROS.has(name))
205
- return walkList(t, lastArgument(m));
261
+ return formattingEvents(t, m);
206
262
  const ch = CHARACTER_MACROS.get(name);
207
263
  return ch === undefined ? [] : characterAt(m, ch);
208
264
  }
@@ -235,7 +291,7 @@ function nodeEvents(t, n) {
235
291
  case "whitespace":
236
292
  return textAt(n, " ");
237
293
  case "group":
238
- return walkList(t, n.content);
294
+ return groupEvents(t, n);
239
295
  case "environment":
240
296
  case "mathenv":
241
297
  return environmentEvents(t, n);
@@ -266,13 +322,12 @@ function step(state, n) {
266
322
  * macro the parser gave no signature — `\institution{…}`, `\ccsdesc[500]{…}`, `\tool{}`,
267
323
  * `\if\conference1` — which are its arguments, not text. A formatting macro's group (`\enquote{…}` without csquotes' signature) stays prose.
268
324
  */
269
- const proseNodes = (list) => list.reduce((acc, n) => {
270
- const next = step(acc.state, n);
271
- return {
272
- kept: next.skip ? acc.kept : [...acc.kept, n],
273
- state: next.state,
274
- };
275
- }, { kept: [], state: "prose" }).kept;
325
+ const proseNodes = (list) => {
326
+ // Each node's step, fed the state the one before left: a scan, linear in the list.
327
+ const start = { skip: false, state: "prose" };
328
+ const steps = mapWithFeedback(list, (prev, n) => step(prev.state, n), start);
329
+ return zip(list, steps).flatMap(([n, st]) => (st.skip ? [] : [n]));
330
+ };
276
331
  /** Formatting macros a run-in heading is set in: `\textbf{Correctness gate.} Each task…`. */
277
332
  const RUN_IN_MACROS = new Set([
278
333
  "textbf",
@@ -285,10 +340,28 @@ const RUN_IN_MACROS = new Set([
285
340
  const typeset = (events) => events
286
341
  .map((e) => e.kind === "piece" && e.piece.kind === "text" ? e.piece.segment.text : "")
287
342
  .join("");
288
- /** A formatting macro whose phrase ends in `.` or `:` — a run-in heading, when it opens a paragraph. */
289
- const isRunInHeading = (t, n) => n.type === "macro" &&
290
- RUN_IN_MACROS.has(n.content) &&
291
- /[.:]$/u.test(typeset(walkList(t, lastArgument(n))).trim());
343
+ /** The one node a group holds besides spaces and comments — `{\textbf{…}}` → the `\textbf` — or null. */
344
+ const soleChild = (n) => {
345
+ if (n.type !== "group")
346
+ return null;
347
+ const kept = n.content.filter((c) => c.type !== "whitespace" && c.type !== "comment");
348
+ return only(kept) ?? null;
349
+ };
350
+ /** A node with the groups around it taken off: `{{\textbf{…}}}` → the `\textbf`. */
351
+ const unwrapped = (n) => {
352
+ const inner = soleChild(n);
353
+ return inner === null ? n : unwrapped(inner);
354
+ };
355
+ /**
356
+ * A formatting macro whose phrase ends in `.` or `:` — a run-in heading, when it opens a paragraph.
357
+ * Braces around it change nothing on the page, so `{\textbf{Threats:}}` is one too.
358
+ */
359
+ const isRunInHeading = (t, node) => {
360
+ const n = unwrapped(node);
361
+ return (n.type === "macro" &&
362
+ RUN_IN_MACROS.has(n.content) &&
363
+ /[.:]$/u.test(typeset(walkList(t, lastArgument(n))).trim()));
364
+ };
292
365
  /** Macros that typeset no text, and so leave a paragraph's opening where it was. */
293
366
  const SILENT_AT_OPENING = new Set([
294
367
  "noindent",
@@ -305,18 +378,38 @@ const keepsOpening = (n) => n.type === "whitespace" ||
305
378
  (n.type === "macro" && SILENT_AT_OPENING.has(n.content));
306
379
  /** Nodes after which a paragraph opens: a paragraph break, and a macro that ends a passage (a heading). */
307
380
  const opensAfter = (n) => n.type === "parbreak" || (n.type === "macro" && BREAK_MACROS.has(n.content));
381
+ /**
382
+ * An emphasising node's events when it opens a paragraph: its own phrase — the first event — is a
383
+ * label, not inline; braces around it change nothing on the page (`{\textbf{…}}.`). Any other node
384
+ * (an environment, a footnote) is left as it is: what it holds opens nothing here.
385
+ */
386
+ const asOpening = (node, events) => {
387
+ const [own, ...rest] = events;
388
+ const n = unwrapped(node);
389
+ const emphasises = (n.type === "macro" && EMPHASIS_MACROS.has(n.content)) ||
390
+ (n.type === "group" && declaredStyle(n.content) !== undefined);
391
+ return emphasises && own?.kind === "emphasis"
392
+ ? [
393
+ { kind: "emphasis", emphasis: { ...own.emphasis, place: "opening" } },
394
+ ...rest,
395
+ ]
396
+ : events;
397
+ };
308
398
  /**
309
399
  * A list's events. `opens` says the list starts a paragraph (the body, an environment's content);
310
- * a run-in heading that opens a paragraph ends the passage before it and is left out, like a heading.
400
+ * a run-in heading that opens a paragraph ends the passage before it and is left out, like a heading,
401
+ * and a phrase emphasised there is a label (`opening`).
311
402
  */
312
403
  function walkList(t, list, opens = false) {
313
- return proseNodes(list).reduce((acc, n) => ({
314
- events: [
315
- ...acc.events,
316
- ...(acc.opening && isRunInHeading(t, n) ? [BREAK] : nodeEvents(t, n)),
317
- ],
318
- opening: opensAfter(n) || (acc.opening && keepsOpening(n)),
319
- }), { events: [], opening: opens }).events;
404
+ const nodes = proseNodes(list);
405
+ // Whether a paragraph is open AFTER each node: a scan, so the walk stays linear in the list.
406
+ const after = mapWithFeedback(nodes, (opening, n) => opensAfter(n) || (opening && keepsOpening(n)), opens);
407
+ return nodes.flatMap((n, i) => {
408
+ const opening = i === 0 ? opens : after[i - 1] === true;
409
+ if (!opening)
410
+ return nodeEvents(t, n);
411
+ return isRunInHeading(t, n) ? [BREAK] : asOpening(n, nodeEvents(t, n));
412
+ });
320
413
  }
321
414
  /** The events before the back matter starts. */
322
415
  const untilEnd = (events) => {
@@ -325,15 +418,25 @@ const untilEnd = (events) => {
325
418
  };
326
419
  /** Events → passages: pieces between breaks, each footnote a passage of its own. */
327
420
  function passagesOf(events) {
328
- const { done, current } = events.reduce((acc, e) => e.kind === "piece"
329
- ? { done: acc.done, current: [...acc.current, e.piece] }
330
- : e.kind === "break"
331
- ? { done: [...acc.done, acc.current], current: [] }
332
- : acc, { done: [], current: [] });
421
+ // Where each passage starts and ends: between breaks. Slicing between them keeps this linear in
422
+ // the events — a paragraph of thousands of words is one slice, not a copy per word.
423
+ const breaks = events.flatMap((e, i) => (e.kind === "break" ? [i] : []));
424
+ const bounds = zip([0, ...breaks.map((b) => b + 1)], [...breaks, events.length]);
425
+ const own = bounds.flatMap(([from, to]) => {
426
+ const pieces = events
427
+ .slice(from, to)
428
+ .flatMap((e) => (e.kind === "piece" ? [e.piece] : []));
429
+ return hasAtLeast(pieces, 1) ? [{ pieces }] : [];
430
+ });
333
431
  const asides = events.flatMap((e) => e.kind === "aside" ? passagesOf(untilEnd(e.events)) : []);
334
- const own = [...done, current].flatMap((pieces) => hasAtLeast(pieces, 1) ? [{ pieces }] : []);
335
432
  return [...own, ...asides];
336
433
  }
434
+ /** Every emphasised phrase among events, a footnote's included, up to the back matter. */
435
+ const emphasesOf = (events) => untilEnd(events).flatMap((e) => e.kind === "emphasis"
436
+ ? [e.emphasis]
437
+ : e.kind === "aside"
438
+ ? emphasesOf(e.events)
439
+ : []);
337
440
  const isDocument = (n) => n.type === "environment" && n.env === "document";
338
441
  /** A passage with something in it besides spaces. */
339
442
  const hasProse = (p) => p.pieces.some((x) => x.kind !== "text" || x.segment.text.trim() !== "");
@@ -347,7 +450,15 @@ const startOf = (p) => {
347
450
  * source when there is none), up to the first back-matter node.
348
451
  */
349
452
  export function bodyProse(t) {
350
- const body = t.root.content.find(isDocument)?.content ?? t.root.content;
351
- return sortBy(passagesOf(untilEnd(walkList(t, body, true))).filter(hasProse), startOf);
453
+ return sortBy(passagesOf(untilEnd(bodyEvents(t))).filter(hasProse), startOf);
454
+ }
455
+ /** The walk of the body: the content of the `document` environment, or the whole source when there is none. */
456
+ const bodyEvents = (t) => walkList(t, t.root.content.find(isDocument)?.content ?? t.root.content, true);
457
+ /**
458
+ * The phrases set in bold, italics or underline inside the body's prose, in document order: what
459
+ * `bodyProse` reads, so never a heading, a run-in heading, a caption, a float or a table.
460
+ */
461
+ export function bodyEmphasis(t) {
462
+ return sortBy(emphasesOf(bodyEvents(t)), (e) => e.span.start);
352
463
  }
353
464
  //# sourceMappingURL=prose.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prose.js","sourceRoot":"","sources":["../../../src/adapters/latex/prose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prose.js","sourceRoot":"","sources":["../../../src/adapters/latex/prose.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAE,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAS7C,OAAO,EAAE,MAAM,EAAE,MAAM,+CAA+C,CAAC;AAEvE,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,OAAO,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AASpE,OAAO,EAAyB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAiCrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAkBnE,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAGL,IAAI,EAEL,MAAM,WAAW,CAAC;AACnB,OAAO,EAML,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAC;AAWxB,OAAO,EAKL,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,SAAS,EAEf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,IAAI,EAAE,CAAC;AAChB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AA4GtC,4GAA4G;AAC5G,wBAAgB,WAAW,CACzB,IAAI,EAAE,eAAe,YAAK,EAC1B,WAAW,EAAE,OAAO,GACnB,WAAW,EAAE,CA4Kf;AAYD,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAG5E;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,MAAM,CAG7C,CAAC;AAEF,kGAAkG;AAClG,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACxD;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAY7E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAa/D;AAQD;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CAO9C,CAAC;AAmBF,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,wBAAwB,CAAC,EAC9C,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,MAAM,EAAE,CAAC,CAenB;AAaD;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,MAAM,CAAC;IAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAAC,GAAG,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC,CAgBnD;AA8ED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,MAAM,CAAC,eAAe,CAAC,CAgCzB;AAuBD,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAmFvD;AAaD;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CACxB,CAAC,EAAE,IAAI,EACP,EACE,GAAiB,EACjB,GAAmB,EACnB,GAAmB,GACpB,GAAE;IACD,GAAG,CAAC,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC;IACzB,GAAG,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;CACT,GACL,UAAU,CAgCZ;AAED,0GAA0G;AAC1G,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAG1D;AAED,0EAA0E;AAC1E,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,KAAG,MAEK,CAAC;AAEpD,4FAA4F;AAC5F,eAAO,MAAM,WAAW,GAAI,KAAK;IAC/B,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd,KAAG,MAAM,EAC2D,CAAC;AAEtE,gGAAgG;AAChG,wBAAgB,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,CAOjD;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,EACE,GAAmB,EACnB,GAAe,EAUf,OAC8C,GAC/C,GAAE;IACD,GAAG,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC;IAC3B,kGAAkG;IAClG,GAAG,CAAC,EAAE,CACJ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;KAAE,KACnC;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACxC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC/B,GACL,MAAM,CAiCR;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,EACnB,EACE,GAAG,EACH,GAAG,EACH,GAAG,EACH,KAAY,GACb,EAAE;IACD,GAAG,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC;IACxB,GAAG,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,kFAAkF;IAClF,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAC5B,GACA,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED,uFAAuF;AACvF,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACtE,EACE,QAAQ,EACR,GAAG,EACH,WAAW,EACX,GAAG,GACJ,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACrC,GACA,OAAO,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CA8CrC;AAuMD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAYzD;AAoED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,CAAC,EAAE,IAAI,EACP,EACE,GAAG,EACH,GAAG,EACH,GAAG,GACJ,EAAE;IAAE,GAAG,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC;IAAC,GAAG,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EACtE,SAAS,GAAE,OAAO,YAA2B,GAC5C;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,MAAM,CAAA;CAAE,CAYvE;AAkDD,wBAAsB,GAAG,CACvB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,EACE,GAAiB,EACjB,GAAmB,EACnB,GAAmB,EACnB,eAAkC,GACnC,GAAE;IACD,GAAG,CAAC,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC;IACzB,GAAG,CAAC,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;CAC9B,GACL,OAAO,CAAC,MAAM,CAAC,CAqLjB"}
package/dist/cli.js CHANGED
@@ -48,6 +48,7 @@ import { ANONYMITY_RULE_LEVELS, anonymityRules, PAGE_LIMIT_RULE_LEVELS, pageLimi
48
48
  import { FORMAT_RULE_LEVELS, formatRules, TEX_VENUE_RULE_LEVELS, texVenueRules, } from "./tex-venue-rules.js";
49
49
  import { claimProvenanceRule } from "./claim-provenance.js";
50
50
  import { registerRule } from "./register.js";
51
+ import { REGISTER_BAND_RULE_LEVELS, registerBandRules, } from "./register-bands.js";
51
52
  import { paperRules, identityField, stringFields, } from "./paper-settings.js";
52
53
  import { referenceRules, REFERENCE_RULE_LEVELS } from "./reference-rules.js";
53
54
  import { onlineReferences } from "./adapters/references/index.js";
@@ -160,6 +161,12 @@ settings — paperlint.json, at two levels, one schema. Both are optional.
160
161
  on for every paper with a venue preset; set one to "off" to skip it. An unknown key, in either
161
162
  file, is an error.
162
163
  `;
164
+ /** What the rules over a paper.tex read with: the disk, the shipped presets, the LaTeX reader. */
165
+ const TEX_RULE_DEPS = {
166
+ files: nodeFiles,
167
+ venuesDir: presetsDir(),
168
+ latex: latexReader,
169
+ };
163
170
  /** The config the user would otherwise write by hand. The data comes from `opts`, the mechanism is here. */
164
171
  export function buildConfig(opts = {}, texLanguage) {
165
172
  const paperRules = { ...typography.rules };
@@ -244,30 +251,17 @@ export function buildConfig(opts = {}, texLanguage) {
244
251
  languages: { latex: texLanguage },
245
252
  rules: {
246
253
  ...texBuild,
247
- ...texVenueRules({
248
- files: nodeFiles,
249
- venuesDir: presetsDir(),
250
- latex: latexReader,
251
- }),
252
- "claim-provenance": claimProvenanceRule({
253
- files: nodeFiles,
254
- latex: latexReader,
255
- }),
256
- register: registerRule({
257
- files: nodeFiles,
258
- latex: latexReader,
259
- }),
254
+ ...texVenueRules(TEX_RULE_DEPS),
255
+ "claim-provenance": claimProvenanceRule(TEX_RULE_DEPS),
256
+ register: registerRule(TEX_RULE_DEPS),
257
+ ...registerBandRules(TEX_RULE_DEPS),
260
258
  },
261
259
  },
262
260
  paper: { rules: texPaperRules },
263
261
  bib: bibReachable,
264
262
  format: {
265
263
  rules: {
266
- ...formatRules({
267
- files: nodeFiles,
268
- venuesDir: presetsDir(),
269
- latex: latexReader,
270
- }),
264
+ ...formatRules(TEX_RULE_DEPS),
271
265
  ...pageLimitRules({ files: nodeFiles, venuesDir: presetsDir() }),
272
266
  },
273
267
  },
@@ -283,6 +277,9 @@ export function buildConfig(opts = {}, texLanguage) {
283
277
  "tex/claim-provenance": "warn",
284
278
  // Sentence-initial conjunctions over the whole body: register, not vocabulary.
285
279
  "tex/register": "warn",
280
+ // Contrast frames, claims in bold, relation markers: each against the band the venue
281
+ // preset's anchors set, silent for a preset without anchors (src/register-bands.ts).
282
+ ...REGISTER_BAND_RULE_LEVELS,
286
283
  "tex/acm-frontmatter-override": "error",
287
284
  // Silent for a paper whose paperlint.json names no venue (src/venue-rules.ts).
288
285
  ...VENUE_RULE_LEVELS,