paperlint 5.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.
- package/CLAUDE.md +13 -0
- package/CONTRIBUTING.md +3 -0
- package/README.md +8 -8
- package/bin/paperlint.mjs +5 -1
- package/dist/adapters/latex/index.d.ts +2 -1
- package/dist/adapters/latex/index.d.ts.map +1 -1
- package/dist/adapters/latex/index.js +6 -2
- package/dist/adapters/latex/index.js.map +1 -1
- package/dist/adapters/latex/layout.d.ts +27 -0
- package/dist/adapters/latex/layout.d.ts.map +1 -0
- package/dist/adapters/latex/layout.js +62 -0
- package/dist/adapters/latex/layout.js.map +1 -0
- package/dist/adapters/latex/nodes.d.ts.map +1 -1
- package/dist/adapters/latex/nodes.js +11 -1
- package/dist/adapters/latex/nodes.js.map +1 -1
- package/dist/adapters/latex/parse.d.ts.map +1 -1
- package/dist/adapters/latex/parse.js +5 -1
- package/dist/adapters/latex/parse.js.map +1 -1
- package/dist/adapters/latex/prose.d.ts +6 -1
- package/dist/adapters/latex/prose.d.ts.map +1 -1
- package/dist/adapters/latex/prose.js +142 -31
- package/dist/adapters/latex/prose.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +35 -18
- package/dist/cli.js.map +1 -1
- package/dist/domain/anonymity.d.ts +68 -0
- package/dist/domain/anonymity.d.ts.map +1 -0
- package/dist/domain/anonymity.js +94 -0
- package/dist/domain/anonymity.js.map +1 -0
- package/dist/domain/body-pages.d.ts +69 -0
- package/dist/domain/body-pages.d.ts.map +1 -0
- package/dist/domain/body-pages.js +141 -0
- package/dist/domain/body-pages.js.map +1 -0
- package/dist/domain/register.d.ts +96 -0
- package/dist/domain/register.d.ts.map +1 -0
- package/dist/domain/register.js +136 -0
- package/dist/domain/register.js.map +1 -0
- package/dist/domain/tex-document.d.ts +28 -0
- package/dist/domain/tex-document.d.ts.map +1 -1
- package/dist/domain/tex-document.js +8 -3
- package/dist/domain/tex-document.js.map +1 -1
- package/dist/eslint-rules/pdf-last-page-balance.d.ts +1 -1
- package/dist/eslint-rules/pdf-last-page-balance.js +2 -2
- package/dist/facts-file.d.ts +28 -2
- package/dist/facts-file.d.ts.map +1 -1
- package/dist/facts-file.js +54 -9
- package/dist/facts-file.js.map +1 -1
- package/dist/lib/paper-config.d.ts.map +1 -1
- package/dist/lib/paper-config.js +2 -1
- package/dist/lib/paper-config.js.map +1 -1
- package/dist/paper-settings.d.ts +11 -0
- package/dist/paper-settings.d.ts.map +1 -1
- package/dist/paper-settings.js +38 -4
- package/dist/paper-settings.js.map +1 -1
- package/dist/pdf-content.d.ts +40 -0
- package/dist/pdf-content.d.ts.map +1 -0
- package/dist/pdf-content.js +97 -0
- package/dist/pdf-content.js.map +1 -0
- package/dist/pdf-facts.d.ts +30 -0
- package/dist/pdf-facts.d.ts.map +1 -1
- package/dist/pdf-facts.js +37 -1
- package/dist/pdf-facts.js.map +1 -1
- package/dist/ports/latex.d.ts +8 -1
- package/dist/ports/latex.d.ts.map +1 -1
- package/dist/presets.d.ts +5 -0
- package/dist/presets.d.ts.map +1 -1
- package/dist/presets.js +8 -1
- package/dist/presets.js.map +1 -1
- package/dist/register-bands.d.ts +37 -0
- package/dist/register-bands.d.ts.map +1 -0
- package/dist/register-bands.js +196 -0
- package/dist/register-bands.js.map +1 -0
- package/dist/register.d.ts +4 -2
- package/dist/register.d.ts.map +1 -1
- package/dist/register.js +6 -45
- package/dist/register.js.map +1 -1
- package/dist/tex-requirements.d.ts +10 -0
- package/dist/tex-requirements.d.ts.map +1 -1
- package/dist/tex-requirements.js +29 -6
- package/dist/tex-requirements.js.map +1 -1
- package/dist/tex-venue-rules.d.ts +8 -2
- package/dist/tex-venue-rules.d.ts.map +1 -1
- package/dist/tex-venue-rules.js +40 -0
- package/dist/tex-venue-rules.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/venue-rules.d.ts +38 -8
- package/dist/venue-rules.d.ts.map +1 -1
- package/dist/venue-rules.js +179 -41
- package/dist/venue-rules.js.map +1 -1
- package/docs/configuration.md +18 -16
- package/docs/e2e.md +32 -11
- package/docs/rules/anonymity/identity.md +111 -0
- package/docs/rules/format/layout-override.md +61 -0
- package/docs/rules/format/page-limit.md +108 -0
- package/docs/rules/pdf/body-size.md +87 -0
- package/docs/rules/tex/claim-emphasis.md +71 -0
- package/docs/rules/tex/contrast-frames.md +100 -0
- package/docs/rules/tex/relation-markers.md +72 -0
- package/docs/rules.md +59 -50
- package/eslint-rules/pdf-last-page-balance.harness.mjs +6 -1
- package/eslint-rules/pdf-last-page-balance.ts +2 -2
- package/fixtures/build-e2e/aidc/expect.json +1 -1
- package/fixtures/build-e2e/aidc/paperlint.json +1 -1
- package/fixtures/build-e2e/anon-ack/PIPELINE-STATUS.md +3 -0
- package/fixtures/build-e2e/anon-ack/expect.json +19 -0
- package/fixtures/build-e2e/anon-ack/paper.tex +31 -0
- package/fixtures/build-e2e/anon-ack/paperlint.json +1 -0
- package/fixtures/build-e2e/anon-author/PIPELINE-STATUS.md +3 -0
- package/fixtures/build-e2e/anon-author/expect.json +19 -0
- package/fixtures/build-e2e/anon-author/paper.tex +29 -0
- package/fixtures/build-e2e/anon-author/paperlint.json +1 -0
- package/fixtures/build-e2e/anon-bib/PIPELINE-STATUS.md +3 -0
- package/fixtures/build-e2e/anon-bib/expect.json +20 -0
- package/fixtures/build-e2e/anon-bib/paper.tex +35 -0
- package/fixtures/build-e2e/anon-bib/paperlint.json +1 -0
- package/fixtures/build-e2e/anon-href/PIPELINE-STATUS.md +3 -0
- package/fixtures/build-e2e/anon-href/expect.json +19 -0
- package/fixtures/build-e2e/anon-href/paper.tex +30 -0
- package/fixtures/build-e2e/anon-href/paperlint.json +1 -0
- package/fixtures/build-e2e/anon-macro/PIPELINE-STATUS.md +3 -0
- package/fixtures/build-e2e/anon-macro/expect.json +19 -0
- package/fixtures/build-e2e/anon-macro/paper.tex +30 -0
- package/fixtures/build-e2e/anon-macro/paperlint.json +1 -0
- package/fixtures/build-e2e/anon-pdfauthor/PIPELINE-STATUS.md +3 -0
- package/fixtures/build-e2e/anon-pdfauthor/expect.json +19 -0
- package/fixtures/build-e2e/anon-pdfauthor/paper.tex +31 -0
- package/fixtures/build-e2e/anon-pdfauthor/paperlint.json +1 -0
- package/fixtures/build-e2e/unbalanced/expect.json +2 -2
- package/lib/paper-config.ts +3 -1
- package/package.json +1 -1
- package/presets/acm-sigconf.jsonc +3 -1
- package/presets/aidc.jsonc +66 -17
- package/presets/ieee-conference.jsonc +8 -0
- package/presets/venue-profile.schema.json +57 -1
- package/skills/grade-paper-writing/SKILL.md +59 -27
- package/skills/grade-paper-writing/SKILL.md.spec.ts +58 -26
- package/skills/render-paper/extract-pdf-facts.harness.ts +3 -3
- package/src/adapters/latex/index.test.ts +91 -0
- package/src/adapters/latex/index.ts +6 -2
- package/src/adapters/latex/layout.ts +106 -0
- package/src/adapters/latex/nodes.ts +11 -3
- package/src/adapters/latex/parse.ts +5 -1
- package/src/adapters/latex/prose.ts +188 -58
- package/src/build.harness.mjs +2 -2
- package/src/build.test.ts +5 -0
- package/src/cli.test.ts +13 -0
- package/src/cli.ts +50 -17
- package/src/domain/anonymity.test.ts +163 -0
- package/src/domain/anonymity.ts +129 -0
- package/src/domain/body-pages.test.ts +300 -0
- package/src/domain/body-pages.ts +223 -0
- package/src/domain/register.test.ts +153 -0
- package/src/domain/register.ts +261 -0
- package/src/domain/tex-document.ts +47 -3
- package/src/facts-file.test.ts +100 -4
- package/src/facts-file.ts +91 -9
- package/src/new-paper.test.ts +7 -1
- package/src/paper-settings.test.ts +63 -6
- package/src/paper-settings.ts +53 -5
- package/src/pdf-content.test.ts +71 -0
- package/src/pdf-content.ts +125 -0
- package/src/pdf-facts.test.ts +110 -2
- package/src/pdf-facts.ts +106 -8
- package/src/ports/latex.ts +9 -0
- package/src/presets.ts +15 -9
- package/src/register-bands.test.ts +327 -0
- package/src/register-bands.ts +291 -0
- package/src/register.ts +7 -37
- package/src/rule-cases.test.ts +96 -20
- package/src/rule-docs.test.ts +0 -2
- package/src/tex-requirements.ts +56 -8
- package/src/tex-venue-rules.test.ts +110 -5
- package/src/tex-venue-rules.ts +64 -3
- package/src/types.ts +2 -0
- package/src/venue-rules.test.ts +351 -39
- package/src/venue-rules.ts +247 -47
package/dist/pdf-facts.js
CHANGED
|
@@ -23,6 +23,7 @@ import { readFileSync } from "node:fs";
|
|
|
23
23
|
import { DEFAULT_ASCENT, DEFAULT_DESCENT, fontsOf, wordsOf, } from "./pdf-geometry.js";
|
|
24
24
|
// eslint-disable-next-line boundaries/dependencies -- legacy layer, moves behind a port in #76
|
|
25
25
|
import { fillsFor, isUpright } from "./adapters/pdfjs/fill.js";
|
|
26
|
+
import { appendixOutlineDests, linkTargetsOf, metadataOf, namedRefs, pageTextOf, refOf, xmpOf, } from "./pdf-content.js";
|
|
26
27
|
import { messageOf } from "./domain/text.js";
|
|
27
28
|
import { fieldOf, isRecord, numbersOf } from "./domain/record.js";
|
|
28
29
|
/** A viewport point, which pdf.js types as `any[]`: the two numbers it holds. */
|
|
@@ -99,7 +100,8 @@ function loadedFonts(page) {
|
|
|
99
100
|
async function readPage(page, seen, lib) {
|
|
100
101
|
// The operator list is what makes pdf.js load a page's fonts into `commonObjs`.
|
|
101
102
|
const ops = await page.getOperatorList();
|
|
102
|
-
const
|
|
103
|
+
const all = (await page.getTextContent()).items;
|
|
104
|
+
const items = all.filter(isText);
|
|
103
105
|
const loaded = loadedFonts(page);
|
|
104
106
|
const named = new Set(items.map((it) => it.fontName));
|
|
105
107
|
const fonts = [...loaded.values()].filter((f) => named.has(f.id) || !seen.has(f.id));
|
|
@@ -107,6 +109,8 @@ async function readPage(page, seen, lib) {
|
|
|
107
109
|
raw: { hasText: items.length > 0, fonts },
|
|
108
110
|
items,
|
|
109
111
|
layout: layoutOf(page, items, ops, lib),
|
|
112
|
+
text: pageTextOf(all),
|
|
113
|
+
links: linkTargetsOf(await page.getAnnotations()),
|
|
110
114
|
};
|
|
111
115
|
}
|
|
112
116
|
/**
|
|
@@ -210,9 +214,41 @@ export async function factsOf(doc, lib) {
|
|
|
210
214
|
fonts,
|
|
211
215
|
last: pageText(last.page, last.items),
|
|
212
216
|
layout: read.map((r) => r.layout),
|
|
217
|
+
...saidOf(read, await doc.getMetadata()),
|
|
218
|
+
...(await anchorsOf(doc)),
|
|
213
219
|
},
|
|
214
220
|
};
|
|
215
221
|
}
|
|
222
|
+
/**
|
|
223
|
+
* Where hyperref anchored the bibliography's first entry (the lowest page of a `cite.<key>`
|
|
224
|
+
* destination) and the appendix (the lowest page of an `appendix.<letter>` destination or of a
|
|
225
|
+
* bookmark titled «Appendix…»). A reference pdf.js cannot place is skipped.
|
|
226
|
+
*/
|
|
227
|
+
async function anchorsOf(doc) {
|
|
228
|
+
const destinations = await doc.getDestinations();
|
|
229
|
+
const bookmarked = await Promise.all(appendixOutlineDests(await doc.getOutline()).map(async (d) => refOf(typeof d === "string" ? await doc.getDestination(d) : d)));
|
|
230
|
+
return {
|
|
231
|
+
bibAnchorPage: await lowestPage(doc, namedRefs(destinations, "cite.")),
|
|
232
|
+
appendixAnchorPage: await lowestPage(doc, [
|
|
233
|
+
...namedRefs(destinations, "appendix."),
|
|
234
|
+
...bookmarked.filter((r) => r !== null),
|
|
235
|
+
]),
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
/** The lowest 1-based page any of `refs` names, or null when none can be placed. */
|
|
239
|
+
async function lowestPage(doc, refs) {
|
|
240
|
+
const pages = await Promise.all(refs.map((r) => doc.getPageIndex(r).then((i) => [i + 1], () => [])));
|
|
241
|
+
const found = pages.flat();
|
|
242
|
+
return found.length === 0 ? null : Math.min(...found);
|
|
243
|
+
}
|
|
244
|
+
/** What the pages say, from each page's read, and the document's metadata. */
|
|
245
|
+
function saidOf(read, meta) {
|
|
246
|
+
return {
|
|
247
|
+
pageTexts: read.map((r) => r.text),
|
|
248
|
+
links: read.flatMap((r, i) => r.links.map((uri) => ({ page: i + 1, uri }))),
|
|
249
|
+
metadata: metadataOf(meta.info, xmpOf(meta.metadata)),
|
|
250
|
+
};
|
|
251
|
+
}
|
|
216
252
|
/** pdf.js's own exception names for the two conditions a caller can act on. */
|
|
217
253
|
export function failureOf(e) {
|
|
218
254
|
const name = fieldOf(e, "name");
|
package/dist/pdf-facts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-facts.js","sourceRoot":"","sources":["../src/pdf-facts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pdf-facts.js","sourceRoot":"","sources":["../src/pdf-facts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,6FAA6F;AAC7F,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EACL,cAAc,EACd,eAAe,EACf,OAAO,EACP,OAAO,GAMR,MAAM,mBAAmB,CAAC;AAE3B,+FAA+F;AAC/F,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,UAAU,EACV,SAAS,EACT,UAAU,EACV,KAAK,EACL,KAAK,GACN,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAuElE,iFAAiF;AACjF,MAAM,OAAO,GAAG,CAAC,EAAsB,EAAoB,EAAE,CAAC;IAC5D,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACb,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CACd,CAAC;AA2CF;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,eAAe,EAAE,IAAI;IACrB,mBAAmB,EAAE,IAAI;IACzB,SAAS,EAAE,CAAC;IACZ,cAAc,EAAE,KAAK;IACrB,eAAe,EAAE,KAAK;CACd,CAAC;AAEX,IAAI,KAAK,GAA0B,IAAI,CAAC;AACxC,SAAS,SAAS;IAChB,+FAA+F;IAC/F,KAAK,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC5D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,IAAI,GAAG,CAAC,MAAsB,EAAE,MAAc,EAAW,EAAE,CAAC,CAAC;IACjE,EAAE,EAAE,KAAK;IACT,MAAM;IACN,MAAM;CACP,CAAC,CAAC;AAEH,oGAAoG;AACpG,MAAM,UAAU,SAAS,CAAC,EAAU,EAAE,GAAY;IAChD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,CAAC,GAAG,GAAG,CAAC;IACd,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/D,MAAM,GAAG,GAAG,CAAC,CAAU,EAAsB,EAAE,CAC7C,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxC,OAAO;QACL,EAAE;QACF,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;QAC1B,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC1B,WAAW,EAAE,CAAC,CAAC,aAAa,CAAC,KAAK,IAAI;QACtC,WAAW,EAAE,CAAC,CAAC,aAAa,CAAC,KAAK,IAAI;KACvC,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,EAAQ,EAAkB,EAAE,CAC1C,OAAO,EAAE,CAAC,GAAG,KAAK,QAAQ,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AAErD,sGAAsG;AACtG,SAAS,QAAQ,CAAC,IAAU,EAAE,EAAU;IACtC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,IAAU;IAC7B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAmB,CAAC;IACvC,qDAAqD;IACrD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,QAAQ,CACrB,IAAU,EACV,IAAyB,EACzB,GAAU;IAQV,gFAAgF;IAChF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;IACzC,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC;IAChD,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACvC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAC1C,CAAC;IACF,OAAO;QACL,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE;QACzC,KAAK;QACL,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC;QACvC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC;QACrB,KAAK,EAAE,aAAa,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;KAClD,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,SAAS,CAAC,IAAa;IAC9B,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC3B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IAC9D,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;AAC1E,CAAC;AAED,uEAAuE;AACvE,SAAS,QAAQ,CAAC,IAAU,EAAE,KAA0B;IACtD,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAc,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACvC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,AAAD,EAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QACtE,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO;YACL,IAAI,EAAE,EAAE,CAAC,GAAG;YACZ,CAAC;YACD,QAAQ;YACR,KAAK,EAAE,EAAE,CAAC,KAAK;YACf,IAAI;YACJ,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;SAC1C,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO;QACL,OAAO,EAAE,EAAE,CAAC,KAAK;QACjB,QAAQ,EAAE,EAAE,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;KAC7B,CAAC;AACJ,CAAC;AAED,uEAAuE;AACvE,SAAS,UAAU,CAAC,IAAa,EAAE,EAAU;IAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,SAAS,KAAK,CACZ,IAAU,EACV,EAAY,EACZ,EAAY,EACZ,GAAU;IAEV,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IAC3E,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;IAC/D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO;QACL,GAAG,EAAE,QAAQ,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI;QAC/B,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,EAAE,CAAC,KAAK;QACf,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI;QACrC,IAAI;QACJ,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC;QACnC,IAAI,EAAE,EAAE,CAAC,GAAG;QACZ,OAAO,EAAE,SAAS,CAChB,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAC1D;KACF,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,SAAS,QAAQ,CACf,IAAU,EACV,KAA0B,EAC1B,GAAiB,EACjB,GAAU;IAEV,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAC7D,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAW,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CACvE,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAQ,EAAE,GAAU;IAChD,MAAM,IAAI,GAA8D,EAAE,CAAC;IAC3E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK;YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB;QACrC,OAAO,IAAI,CACT,oBAAoB,EACpB,WAAW,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iDAAiD;YAChF,2FAA2F;YAC3F,SAAS,OAAO,CAAC,OAAO,8DAA8D,CACzF,CAAC;IACJ,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK,EAAE;YACL,KAAK,EAAE,GAAG,CAAC,QAAQ;YACnB,KAAK;YACL,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;YACrC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YACjC,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;YACxC,GAAG,CAAC,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;SAC1B;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,SAAS,CACtB,GAAQ;IAER,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,eAAe,EAAE,CAAC;IACjD,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,oBAAoB,CAAC,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAC3D,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC/D,CACF,CAAC;IACF,OAAO;QACL,aAAa,EAAE,MAAM,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACtE,kBAAkB,EAAE,MAAM,UAAU,CAAC,GAAG,EAAE;YACxC,GAAG,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC;YACvC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;SACrD,CAAC;KACH,CAAC;AACJ,CAAC;AAED,oFAAoF;AACpF,KAAK,UAAU,UAAU,CACvB,GAAQ,EACR,IAAuB;IAEvB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CACtB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EACd,GAAG,EAAE,CAAC,EAAE,CACT,CACF,CACF,CAAC;IACF,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;AACxD,CAAC;AAED,8EAA8E;AAC9E,SAAS,MAAM,CACb,IAA6E,EAC7E,IAA6C;IAE7C,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAClC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3E,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,SAAS,CAAC,CAAU;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACpH,OAAO,IAAI,CACT,IAAI,KAAK,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,EACzD,MAAM,CACP,CAAC;AACJ,CAAC;AAED,4FAA4F;AAC5F,MAAM,CAAC,MAAM,OAAO,GAAc,KAAK,EAAE,IAAI,EAAE,EAAE;IAC/C,IAAI,IAAgB,CAAC;IACrB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC,CAAC;IACzD,+FAA+F;IAC/F,0FAA0F;IAC1F,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO;SAC5B,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SAChC,KAAK,CAAC,SAAS,CAAC,CAAC;IACpB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACrB,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,4EAA4E;AAC5E,MAAM,UAAU,eAAe,CAC7B,CAAkC,EAClC,GAAW;IAEX,OAAO,kBAAkB,GAAG,iBAAiB,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;AACxE,CAAC"}
|
package/dist/ports/latex.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* parser. The one implementation is `src/adapters/latex/` (unified-latex); `src/cli.ts` wires it.
|
|
4
4
|
*/
|
|
5
5
|
import type { Include } from "../domain/paper-source.ts";
|
|
6
|
-
import type { ClassLine, DocumentClass, Outline, Passage, Span, TextRun } from "../domain/tex-document.ts";
|
|
6
|
+
import type { ClassLine, DocumentClass, Emphasis, LayoutOverride, Outline, Passage, Span, TextRun } from "../domain/tex-document.ts";
|
|
7
7
|
export interface LatexReader {
|
|
8
8
|
/** The source's `\documentclass`, as one of its states. */
|
|
9
9
|
readonly documentClass: (src: string) => ClassLine;
|
|
@@ -17,6 +17,11 @@ export interface LatexReader {
|
|
|
17
17
|
* code or the title block. Citations, links and cross-references stay in place as marks.
|
|
18
18
|
*/
|
|
19
19
|
readonly bodyProse: (src: string) => readonly Passage[];
|
|
20
|
+
/**
|
|
21
|
+
* The phrases set in bold, italics or underline inside that same prose, in document order — never
|
|
22
|
+
* a heading, a run-in heading (`\textbf{Threats.} …`), a caption, a float or a table.
|
|
23
|
+
*/
|
|
24
|
+
readonly bodyEmphasis: (src: string) => readonly Emphasis[];
|
|
20
25
|
/** Every `\input`, `\include` and `\subfile`, in source order: the path as written, where it stands. */
|
|
21
26
|
readonly includes: (src: string) => readonly Include[];
|
|
22
27
|
/** The span of the `document` environment's body, or null when the source has none. */
|
|
@@ -31,5 +36,7 @@ export interface LatexReader {
|
|
|
31
36
|
* option `want` names (the author's own options stay), or it has none.
|
|
32
37
|
*/
|
|
33
38
|
readonly withDocumentClass: (src: string, want: DocumentClass) => string;
|
|
39
|
+
/** Every command that changes the page layout the class sets: margins, text block, line spacing. */
|
|
40
|
+
readonly layoutOverrides: (src: string) => readonly LayoutOverride[];
|
|
34
41
|
}
|
|
35
42
|
//# sourceMappingURL=latex.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"latex.d.ts","sourceRoot":"","sources":["../../src/ports/latex.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EACb,OAAO,EACP,OAAO,EACP,IAAI,EACJ,OAAO,EACR,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,WAAW;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,CAAC;IACnD,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,mGAAmG;IACnG,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,OAAO,EAAE,CAAC;IAC3D;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,OAAO,EAAE,CAAC;IACxD,wGAAwG;IACxG,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,OAAO,EAAE,CAAC;IACvD,uFAAuF;IACvF,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IACpD;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,GAAG,IAAI,CAAC;IAC1D;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,KAAK,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"latex.d.ts","sourceRoot":"","sources":["../../src/ports/latex.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EACb,QAAQ,EACR,cAAc,EACd,OAAO,EACP,OAAO,EACP,IAAI,EACJ,OAAO,EACR,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,WAAW;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,CAAC;IACnD,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,mGAAmG;IACnG,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,OAAO,EAAE,CAAC;IAC3D;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,OAAO,EAAE,CAAC;IACxD;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,QAAQ,EAAE,CAAC;IAC5D,wGAAwG;IACxG,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,OAAO,EAAE,CAAC;IACvD,uFAAuF;IACvF,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IACpD;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,GAAG,IAAI,CAAC;IAC1D;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,KAAK,MAAM,CAAC;IACzE,oGAAoG;IACpG,QAAQ,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,cAAc,EAAE,CAAC;CACtE"}
|
package/dist/presets.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { type RequiredSection, type TexRequirements, type VenueFormat } from "./
|
|
|
2
2
|
import { type Result } from "./domain/result.ts";
|
|
3
3
|
import type { Files } from "./ports/files.ts";
|
|
4
4
|
import { type PaperSettings, type SettingsProblem } from "./paper-settings.ts";
|
|
5
|
+
import type { RegisterAnchor } from "./domain/register.ts";
|
|
5
6
|
/** The prefix of a shipped preset's spec. */
|
|
6
7
|
export declare const SHIPPED_PREFIX = "paperlint:";
|
|
7
8
|
/** The longest chain of presets, the paper's own target included. */
|
|
@@ -30,10 +31,14 @@ export interface Preset {
|
|
|
30
31
|
readonly template: PresetTemplate | null;
|
|
31
32
|
/** Every `name` and `aliases` along the chain: what this venue is called in a paper's text. */
|
|
32
33
|
readonly aliases: readonly string[];
|
|
34
|
+
/** Whether the venue reviews double-blind (`anonymity/identity`); false when no file of the chain says. */
|
|
35
|
+
readonly blind: boolean;
|
|
33
36
|
readonly requiredSections: readonly RequiredSection[];
|
|
34
37
|
readonly tex: TexRequirements;
|
|
35
38
|
readonly format: VenueFormat;
|
|
36
39
|
readonly rules: Readonly<Record<string, unknown>>;
|
|
40
|
+
/** The accepted papers the register rules measure a body against; empty when no file names any. */
|
|
41
|
+
readonly registerAnchors: readonly RegisterAnchor[];
|
|
37
42
|
}
|
|
38
43
|
/** Why a spec does not resolve. */
|
|
39
44
|
export type PresetProblem = {
|
package/dist/presets.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AA+BA,OAAO,EAQL,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"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"}
|
package/dist/presets.js
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* tex union — a child never removes a package its parent needs
|
|
20
20
|
* format per key, the child wins; `kinds` by kind name, a child's kind replaces that kind
|
|
21
21
|
* rules per rule id, the child wins
|
|
22
|
-
* template the child wins; so does `name`, and `required_sections` (
|
|
22
|
+
* template the child wins; so does `name`, and `required_sections` and `register` (each whole)
|
|
23
23
|
* aliases union, with every `name` — what the venue is called along the chain
|
|
24
24
|
*
|
|
25
25
|
* ── THE LABEL ─────────────────────────────────────────────────────────────────────
|
|
@@ -114,6 +114,7 @@ export function mergeFormat(parent, child) {
|
|
|
114
114
|
refPtMax: pick("refPtMax"),
|
|
115
115
|
fontsText: pick("fontsText"),
|
|
116
116
|
fontsTitle: pick("fontsTitle"),
|
|
117
|
+
bodyEndsAt: pick("bodyEndsAt"),
|
|
117
118
|
kinds: new Map([...parent.kinds, ...child.kinds]),
|
|
118
119
|
};
|
|
119
120
|
}
|
|
@@ -123,10 +124,12 @@ function merged(spec, rootFirst) {
|
|
|
123
124
|
name: null,
|
|
124
125
|
template: null,
|
|
125
126
|
aliases: [],
|
|
127
|
+
blind: false,
|
|
126
128
|
requiredSections: [],
|
|
127
129
|
tex: NO_REQUIREMENTS,
|
|
128
130
|
format: NO_FORMAT,
|
|
129
131
|
rules: {},
|
|
132
|
+
registerAnchors: [],
|
|
130
133
|
};
|
|
131
134
|
const m = rootFirst.reduce((acc, { preset: p, file }) => ({
|
|
132
135
|
name: p.name ?? acc.name,
|
|
@@ -138,20 +141,24 @@ function merged(spec, rootFirst) {
|
|
|
138
141
|
...p.aliases,
|
|
139
142
|
]),
|
|
140
143
|
],
|
|
144
|
+
blind: p.blind ?? acc.blind,
|
|
141
145
|
requiredSections: p.requiredSections ?? acc.requiredSections,
|
|
142
146
|
tex: p.tex ? mergeRequirements(acc.tex, p.tex) : acc.tex,
|
|
143
147
|
format: mergeFormat(acc.format, p.format),
|
|
144
148
|
rules: { ...acc.rules, ...p.rules },
|
|
149
|
+
registerAnchors: p.registerAnchors ?? acc.registerAnchors,
|
|
145
150
|
}), base);
|
|
146
151
|
return {
|
|
147
152
|
label: m.name ?? labelOf(spec),
|
|
148
153
|
chain: rootFirst.map((x) => x.file),
|
|
149
154
|
template: m.template,
|
|
150
155
|
aliases: m.aliases,
|
|
156
|
+
blind: m.blind,
|
|
151
157
|
requiredSections: m.requiredSections,
|
|
152
158
|
tex: m.tex,
|
|
153
159
|
format: m.format,
|
|
154
160
|
rules: m.rules,
|
|
161
|
+
registerAnchors: m.registerAnchors,
|
|
155
162
|
};
|
|
156
163
|
}
|
|
157
164
|
/**
|
package/dist/presets.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,WAAW,EACX,aAAa,EACb,UAAU,GAKX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EACL,iBAAiB,GAGlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../src/presets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type Band, type Occurrence, type RegisterAnchor } from "./domain/register.ts";
|
|
2
|
+
import type { Span } from "./domain/tex-document.ts";
|
|
3
|
+
import type { LatexReader } from "./ports/latex.ts";
|
|
4
|
+
import { type Located, type TexRuleModule } from "./tex-venue-rules.ts";
|
|
5
|
+
import type { VenueRuleDeps } from "./venue-rules.ts";
|
|
6
|
+
/** What the three rules read: the preset store, and the LaTeX reader. */
|
|
7
|
+
export interface RegisterBandDeps extends VenueRuleDeps {
|
|
8
|
+
readonly latex: LatexReader;
|
|
9
|
+
}
|
|
10
|
+
export type RegisterBandRuleName = "contrast-frames" | "claim-emphasis" | "relation-markers";
|
|
11
|
+
/** What one body measures for one rule: its words, the occurrences, where the body starts. */
|
|
12
|
+
export interface BodyMeasure {
|
|
13
|
+
readonly words: number;
|
|
14
|
+
readonly occurrences: readonly Occurrence[];
|
|
15
|
+
readonly at: Span | null;
|
|
16
|
+
}
|
|
17
|
+
/** How a rate stands against a band. */
|
|
18
|
+
export type Standing = "below" | "within" | "above";
|
|
19
|
+
export declare const standingOf: (rate: number, band: Band) => Standing;
|
|
20
|
+
/**
|
|
21
|
+
* A body against a band: nothing within it; outside it, one finding at the body's start naming the
|
|
22
|
+
* count, the rate, the band and the anchors' range — and, above it when `each` is set, one finding
|
|
23
|
+
* at every occurrence, so an editor shows the author where to rewrite.
|
|
24
|
+
*/
|
|
25
|
+
export declare function judgeBand(m: BodyMeasure, band: Band | null, venue: string, each: boolean): readonly Located[];
|
|
26
|
+
/** What a body measures for a rule: its words, its occurrences, and where it starts. */
|
|
27
|
+
export declare function measureBody(rule: RegisterBandRuleName, src: string, latex: LatexReader): BodyMeasure;
|
|
28
|
+
/**
|
|
29
|
+
* A paper as a preset records it among its anchors: its body's words and its count of every
|
|
30
|
+
* measure, by the rules' own counters — the one way an anchor is measured.
|
|
31
|
+
*/
|
|
32
|
+
export declare function anchorOf(paper: string, src: string, latex: LatexReader): RegisterAnchor;
|
|
33
|
+
/** The three rules, as rules of the `tex` plugin. */
|
|
34
|
+
export declare function registerBandRules(deps: RegisterBandDeps): Readonly<Record<RegisterBandRuleName, TexRuleModule>>;
|
|
35
|
+
/** The level each rule is on at in paperlint's own config, for every `paper.tex`. */
|
|
36
|
+
export declare const REGISTER_BAND_RULE_LEVELS: Readonly<Record<`tex/${RegisterBandRuleName}`, "warn">>;
|
|
37
|
+
//# sourceMappingURL=register-bands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-bands.d.ts","sourceRoot":"","sources":["../src/register-bands.ts"],"names":[],"mappings":"AAyBA,OAAO,EAQL,KAAK,IAAI,EACT,KAAK,UAAU,EACf,KAAK,cAAc,EAEpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAqB,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpD,OAAO,EAEL,KAAK,OAAO,EAEZ,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,yEAAyE;AACzE,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;CAC7B;AAED,MAAM,MAAM,oBAAoB,GAC9B,iBAAiB,GAAG,gBAAgB,GAAG,kBAAkB,CAAC;AAE5D,8FAA8F;AAC9F,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5C,QAAQ,CAAC,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC;CAC1B;AAED,wCAAwC;AACxC,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEpD,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,EAAE,MAAM,IAAI,KAAG,QACY,CAAC;AA8BnE;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,CAAC,EAAE,WAAW,EACd,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,OAAO,GACZ,SAAS,OAAO,EAAE,CAapB;AA4DD,wFAAwF;AACxF,wBAAgB,WAAW,CACzB,IAAI,EAAE,oBAAoB,EAC1B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,WAAW,GACjB,WAAW,CASb;AASD;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,WAAW,GACjB,cAAc,CAchB;AA4CD,qDAAqD;AACrD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,gBAAgB,GACrB,QAAQ,CAAC,MAAM,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC,CAMvD;AAED,qFAAqF;AACrF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAC9C,MAAM,CAAC,OAAO,oBAAoB,EAAE,EAAE,MAAM,CAAC,CAK9C,CAAC"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE REGISTER RULES THAT MEASURE A BODY AGAINST ITS VENUE'S ACCEPTED PAPERS — each a rate per
|
|
3
|
+
* 10,000 words, judged against the band the venue preset's anchors set (`src/domain/register.ts`):
|
|
4
|
+
*
|
|
5
|
+
* tex/contrast-frames warn «X, not Y», «rather than», «instead of» … outside the band; above it,
|
|
6
|
+
* each frame is reported where it stands
|
|
7
|
+
* tex/claim-emphasis warn claims set in bold inside a sentence outside the band; above it, each
|
|
8
|
+
* is reported where it stands
|
|
9
|
+
* tex/relation-markers warn words naming how a sentence relates to the one before (because,
|
|
10
|
+
* therefore, however, for example …) outside the band
|
|
11
|
+
*
|
|
12
|
+
* ── WHY ──────────────────────────────────────────────────────────────────────────
|
|
13
|
+
* Reviewers called a paper "too informal" and "a blogpost". Its text differed from the accepted
|
|
14
|
+
* papers of the venue's parent conference in exactly these three counts, each several times over
|
|
15
|
+
* the anchors' range, while sentence length, contractions, questions and the second person did not
|
|
16
|
+
* separate them. The measurements are on the rules' pages.
|
|
17
|
+
*
|
|
18
|
+
* ── TWO-SIDED, AND THE VENUE'S OWN ───────────────────────────────────────────────
|
|
19
|
+
* Every rule judges both ends of its band: a rewrite that strips every relation marker is as far
|
|
20
|
+
* from the venue as one that stacks contrast frames. The band is the venue preset's, derived from
|
|
21
|
+
* its anchors, so a venue with other accepted papers gets another band, and a preset without
|
|
22
|
+
* anchors is not judged — there is nothing to compare, as `tex/template` is silent for a preset that
|
|
23
|
+
* names no template. A body under `MIN_WORDS` is not judged either: one sentence would decide it.
|
|
24
|
+
*/
|
|
25
|
+
import { basename, dirname } from "node:path";
|
|
26
|
+
import { bandOf, bodySentences, claimEmphasis, contrastFrames, rateOf, relationMarkers, wordsOf, } from "./domain/register.js";
|
|
27
|
+
import { paperPreset } from "./presets.js";
|
|
28
|
+
import { MIN_WORDS, startOf } from "./register.js";
|
|
29
|
+
import { readPaper, reportInPaper } from "./tex-paper.js";
|
|
30
|
+
import { ruleDocsUrl, } from "./tex-venue-rules.js";
|
|
31
|
+
export const standingOf = (rate, band) => rate < band.min ? "below" : rate > band.max ? "above" : "within";
|
|
32
|
+
const fixed = (n) => n.toFixed(1);
|
|
33
|
+
/** How many examples a finding about the whole body quotes. */
|
|
34
|
+
const EXAMPLES = 3;
|
|
35
|
+
/** What every message about a body names: its count and rate, the band, the anchors' range, examples. */
|
|
36
|
+
function dataOf(m, band, venue) {
|
|
37
|
+
return {
|
|
38
|
+
count: m.occurrences.length,
|
|
39
|
+
words: m.words,
|
|
40
|
+
rate: fixed(rateOf(m.occurrences.length, m.words)),
|
|
41
|
+
venue,
|
|
42
|
+
min: fixed(band.min),
|
|
43
|
+
max: fixed(band.max),
|
|
44
|
+
anchors: band.anchors,
|
|
45
|
+
anchorMin: fixed(band.anchorMin),
|
|
46
|
+
anchorMax: fixed(band.anchorMax),
|
|
47
|
+
examples: m.occurrences
|
|
48
|
+
.slice(0, EXAMPLES)
|
|
49
|
+
.map((o) => `«${o.sentence}»`)
|
|
50
|
+
.join(", "),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* A body against a band: nothing within it; outside it, one finding at the body's start naming the
|
|
55
|
+
* count, the rate, the band and the anchors' range — and, above it when `each` is set, one finding
|
|
56
|
+
* at every occurrence, so an editor shows the author where to rewrite.
|
|
57
|
+
*/
|
|
58
|
+
export function judgeBand(m, band, venue, each) {
|
|
59
|
+
if (band === null || m.words < MIN_WORDS)
|
|
60
|
+
return [];
|
|
61
|
+
const standing = standingOf(rateOf(m.occurrences.length, m.words), band);
|
|
62
|
+
if (standing === "within")
|
|
63
|
+
return [];
|
|
64
|
+
const data = dataOf(m, band, venue);
|
|
65
|
+
const whole = { messageId: standing, data, at: m.at };
|
|
66
|
+
if (standing === "below" || !each)
|
|
67
|
+
return [whole];
|
|
68
|
+
const at = (o, i) => ({
|
|
69
|
+
messageId: "each",
|
|
70
|
+
data: { ...data, match: o.match, index: i + 1 },
|
|
71
|
+
at: o.at,
|
|
72
|
+
});
|
|
73
|
+
return [whole, ...m.occurrences.map(at)];
|
|
74
|
+
}
|
|
75
|
+
/** The band words every message shares: the rate, and where the venue's anchors put it. */
|
|
76
|
+
const AGAINST = "{{rate}} per 10,000 words; {{venue}}'s {{anchors}} anchor papers measure {{anchorMin}}–{{anchorMax}}, and this rule warns outside {{min}}–{{max}}";
|
|
77
|
+
const MEASURES = {
|
|
78
|
+
"contrast-frames": {
|
|
79
|
+
name: "contrast_frames",
|
|
80
|
+
description: "contrast frames («X, not Y», «rather than», «instead of») stay within the rate the venue's accepted papers show",
|
|
81
|
+
each: true,
|
|
82
|
+
count: (b) => contrastFrames(bodySentences(b.passages)),
|
|
83
|
+
messages: {
|
|
84
|
+
above: `{{count}} contrast frames («X, not Y», «not X but Y», «rather than», «instead of», «as opposed to») — ${AGAINST}. First: {{examples}}. Say what the thing is and why, with the evidence; keep a frame only where a reader would otherwise assume the rejected alternative`,
|
|
85
|
+
below: `{{count}} contrast frames — ${AGAINST}. A rewrite may have dropped relations the argument needs: check that each claim still says what it is set against`,
|
|
86
|
+
each: "contrast frame «{{match}}» ({{index}} of {{count}}; the body is at {{rate}} per 10,000 words, above {{venue}}'s {{max}})",
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
"claim-emphasis": {
|
|
90
|
+
name: "claim_emphasis",
|
|
91
|
+
description: "claims set in bold inside a sentence stay within the rate the venue's accepted papers show",
|
|
92
|
+
each: true,
|
|
93
|
+
count: (b) => claimEmphasis(b.emphasis()),
|
|
94
|
+
messages: {
|
|
95
|
+
above: `{{count}} claims set in bold inside a sentence (a bold phrase of six words or more, or holding a number) — ${AGAINST}. First: {{examples}}. Accepted papers set a term or a label in bold; take the bold off a finding and let the sentence, a table or a figure carry it`,
|
|
96
|
+
below: `{{count}} claims set in bold inside a sentence — ${AGAINST}`,
|
|
97
|
+
each: "a claim set in bold, «{{match}}» ({{index}} of {{count}}; the body is at {{rate}} per 10,000 words, above {{venue}}'s {{max}})",
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
"relation-markers": {
|
|
101
|
+
name: "relation_markers",
|
|
102
|
+
description: "words that name how a sentence relates to the one before (because, therefore, however, for example) stay within the rate the venue's accepted papers show",
|
|
103
|
+
each: false,
|
|
104
|
+
count: (b) => relationMarkers(bodySentences(b.passages)),
|
|
105
|
+
messages: {
|
|
106
|
+
below: `{{count}} words name how a sentence relates to the one before (because, therefore, however, in contrast, for example, that is …) — ${AGAINST}. Where two sentences stand side by side, say whether the second is the cause, the consequence, an example or a limit of the first`,
|
|
107
|
+
above: `{{count}} relation markers — ${AGAINST}. First: {{examples}}`,
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
/** What a body measures for a rule: its words, its occurrences, and where it starts. */
|
|
112
|
+
export function measureBody(rule, src, latex) {
|
|
113
|
+
const passages = latex.bodyProse(src);
|
|
114
|
+
const [first] = passages;
|
|
115
|
+
const body = { passages, emphasis: () => latex.bodyEmphasis(src) };
|
|
116
|
+
return {
|
|
117
|
+
words: wordsOf(bodySentences(passages)),
|
|
118
|
+
occurrences: MEASURES[rule].count(body),
|
|
119
|
+
at: first === undefined ? null : startOf(first),
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
/** Which rule counts each measure an anchor records. */
|
|
123
|
+
const RULE_OF = {
|
|
124
|
+
contrast_frames: "contrast-frames",
|
|
125
|
+
claim_emphasis: "claim-emphasis",
|
|
126
|
+
relation_markers: "relation-markers",
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* A paper as a preset records it among its anchors: its body's words and its count of every
|
|
130
|
+
* measure, by the rules' own counters — the one way an anchor is measured.
|
|
131
|
+
*/
|
|
132
|
+
export function anchorOf(paper, src, latex) {
|
|
133
|
+
const passages = latex.bodyProse(src);
|
|
134
|
+
const body = { passages, emphasis: () => latex.bodyEmphasis(src) };
|
|
135
|
+
const count = (m) => MEASURES[RULE_OF[m]].count(body).length;
|
|
136
|
+
return {
|
|
137
|
+
paper,
|
|
138
|
+
words: wordsOf(bodySentences(passages)),
|
|
139
|
+
counts: {
|
|
140
|
+
contrast_frames: count("contrast_frames"),
|
|
141
|
+
claim_emphasis: count("claim_emphasis"),
|
|
142
|
+
relation_markers: count("relation_markers"),
|
|
143
|
+
},
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
/** The findings for the paper whose `paper.tex` is `filename`; none when its preset has no anchors. */
|
|
147
|
+
function judgePaper(name, context, deps) {
|
|
148
|
+
const p = paperPreset(dirname(context.filename), deps);
|
|
149
|
+
if (p.kind !== "resolved")
|
|
150
|
+
return;
|
|
151
|
+
const measure = MEASURES[name];
|
|
152
|
+
const band = bandOf(p.preset.registerAnchors, measure.name);
|
|
153
|
+
if (band === null)
|
|
154
|
+
return;
|
|
155
|
+
const sc = context.sourceCode;
|
|
156
|
+
const paper = readPaper(context.filename, sc.raw ?? sc.text, deps);
|
|
157
|
+
const m = measureBody(name, paper.text, deps.latex);
|
|
158
|
+
const findings = judgeBand(m, band, p.preset.label, measure.each);
|
|
159
|
+
reportInPaper(context, measure.messages, paper, findings);
|
|
160
|
+
}
|
|
161
|
+
function rule(name, deps) {
|
|
162
|
+
const measure = MEASURES[name];
|
|
163
|
+
return {
|
|
164
|
+
meta: {
|
|
165
|
+
type: "suggestion",
|
|
166
|
+
docs: { description: measure.description, url: ruleDocsUrl(name) },
|
|
167
|
+
schema: [],
|
|
168
|
+
messages: measure.messages,
|
|
169
|
+
},
|
|
170
|
+
create(context) {
|
|
171
|
+
// Judged once per paper, on its paper.tex: the paper directory is the file's directory.
|
|
172
|
+
if (basename(context.filename) !== "paper.tex")
|
|
173
|
+
return {};
|
|
174
|
+
return {
|
|
175
|
+
root: () => {
|
|
176
|
+
judgePaper(name, context, deps);
|
|
177
|
+
},
|
|
178
|
+
};
|
|
179
|
+
},
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
/** The three rules, as rules of the `tex` plugin. */
|
|
183
|
+
export function registerBandRules(deps) {
|
|
184
|
+
return {
|
|
185
|
+
"contrast-frames": rule("contrast-frames", deps),
|
|
186
|
+
"claim-emphasis": rule("claim-emphasis", deps),
|
|
187
|
+
"relation-markers": rule("relation-markers", deps),
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
/** The level each rule is on at in paperlint's own config, for every `paper.tex`. */
|
|
191
|
+
export const REGISTER_BAND_RULE_LEVELS = {
|
|
192
|
+
"tex/contrast-frames": "warn",
|
|
193
|
+
"tex/claim-emphasis": "warn",
|
|
194
|
+
"tex/relation-markers": "warn",
|
|
195
|
+
};
|
|
196
|
+
//# sourceMappingURL=register-bands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register-bands.js","sourceRoot":"","sources":["../src/register-bands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EACL,MAAM,EACN,aAAa,EACb,aAAa,EACb,cAAc,EACd,MAAM,EACN,eAAe,EACf,OAAO,GAKR,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EACL,WAAW,GAIZ,MAAM,sBAAsB,CAAC;AAqB9B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,IAAU,EAAY,EAAE,CAC/D,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;AAEnE,MAAM,KAAK,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAElD,+DAA+D;AAC/D,MAAM,QAAQ,GAAG,CAAC,CAAC;AAEnB,yGAAyG;AACzG,SAAS,MAAM,CACb,CAAc,EACd,IAAU,EACV,KAAa;IAEb,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM;QAC3B,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAClD,KAAK;QACL,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;QACpB,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;QACpB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;QAChC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;QAChC,QAAQ,EAAE,CAAC,CAAC,WAAW;aACpB,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;aAClB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC;aAC7B,IAAI,CAAC,IAAI,CAAC;KACd,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CACvB,CAAc,EACd,IAAiB,EACjB,KAAa,EACb,IAAa;IAEb,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,GAAG,SAAS;QAAE,OAAO,EAAE,CAAC;IACpD,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IACzE,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACpC,MAAM,KAAK,GAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IAC/D,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,EAAE,GAAG,CAAC,CAAa,EAAE,CAAS,EAAW,EAAE,CAAC,CAAC;QACjD,SAAS,EAAE,MAAM;QACjB,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE;QAC/C,EAAE,EAAE,CAAC,CAAC,EAAE;KACT,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,2FAA2F;AAC3F,MAAM,OAAO,GACX,mJAAmJ,CAAC;AAkBtJ,MAAM,QAAQ,GAAoD;IAChE,iBAAiB,EAAE;QACjB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,iHAAiH;QACnH,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvD,QAAQ,EAAE;YACR,KAAK,EAAE,yGAAyG,OAAO,2JAA2J;YAClR,KAAK,EAAE,+BAA+B,OAAO,oHAAoH;YACjK,IAAI,EAAE,0HAA0H;SACjI;KACF;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,4FAA4F;QAC9F,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACzC,QAAQ,EAAE;YACR,KAAK,EAAE,8GAA8G,OAAO,sJAAsJ;YAClR,KAAK,EAAE,oDAAoD,OAAO,EAAE;YACpE,IAAI,EAAE,gIAAgI;SACvI;KACF;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,2JAA2J;QAC7J,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACxD,QAAQ,EAAE;YACR,KAAK,EAAE,sIAAsI,OAAO,oIAAoI;YACxR,KAAK,EAAE,gCAAgC,OAAO,uBAAuB;SACtE;KACF;CACF,CAAC;AAEF,wFAAwF;AACxF,MAAM,UAAU,WAAW,CACzB,IAA0B,EAC1B,GAAW,EACX,KAAkB;IAElB,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;IACzB,MAAM,IAAI,GAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;IACzE,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACvC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QACvC,EAAE,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;KAChD,CAAC;AACJ,CAAC;AAED,wDAAwD;AACxD,MAAM,OAAO,GAAgE;IAC3E,eAAe,EAAE,iBAAiB;IAClC,cAAc,EAAE,gBAAgB;IAChC,gBAAgB,EAAE,kBAAkB;CACrC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,QAAQ,CACtB,KAAa,EACb,GAAW,EACX,KAAkB;IAElB,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,IAAI,GAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;IACzE,MAAM,KAAK,GAAG,CAAC,CAAsB,EAAU,EAAE,CAC/C,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO;QACL,KAAK;QACL,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,EAAE;YACN,eAAe,EAAE,KAAK,CAAC,iBAAiB,CAAC;YACzC,cAAc,EAAE,KAAK,CAAC,gBAAgB,CAAC;YACvC,gBAAgB,EAAE,KAAK,CAAC,kBAAkB,CAAC;SAC5C;KACF,CAAC;AACJ,CAAC;AAED,uGAAuG;AACvG,SAAS,UAAU,CACjB,IAA0B,EAC1B,OAAuB,EACvB,IAAsB;IAEtB,MAAM,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO;IAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO;IAC1B,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAC9B,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnE,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,IAAI,CACX,IAA0B,EAC1B,IAAsB;IAEtB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO;QACL,IAAI,EAAE;YACJ,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE;YAClE,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B;QACD,MAAM,CAAC,OAAO;YACZ,wFAAwF;YACxF,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,WAAW;gBAAE,OAAO,EAAE,CAAC;YAC1D,OAAO;gBACL,IAAI,EAAE,GAAG,EAAE;oBACT,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBAClC,CAAC;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,iBAAiB,CAC/B,IAAsB;IAEtB,OAAO;QACL,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC;QAChD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC;QAC9C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC;KACnD,CAAC;AACJ,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,MAAM,yBAAyB,GAElC;IACF,qBAAqB,EAAE,MAAM;IAC7B,oBAAoB,EAAE,MAAM;IAC5B,sBAAsB,EAAE,MAAM;CAC/B,CAAC"}
|
package/dist/register.d.ts
CHANGED
|
@@ -15,10 +15,10 @@
|
|
|
15
15
|
* (src/domain/sentences.ts). A citation, a cross-reference or math reads as one word, as it does on
|
|
16
16
|
* the page. A body under 2 000 words is not judged: there one sentence decides the rate.
|
|
17
17
|
*/
|
|
18
|
-
import {
|
|
18
|
+
import type { Passage, Span } from "./domain/tex-document.ts";
|
|
19
19
|
import { type PaperDeps } from "./tex-paper.ts";
|
|
20
20
|
import { type Located, type TexRuleModule } from "./tex-venue-rules.ts";
|
|
21
|
-
/** Under this many words in the body,
|
|
21
|
+
/** Under this many words in the body, a rate is not judged: one sentence would decide it. */
|
|
22
22
|
export declare const MIN_WORDS = 2000;
|
|
23
23
|
/** The limit when the config sets none, from the measurement on the rule's page. */
|
|
24
24
|
export declare const DEFAULT_LIMIT = 0.8;
|
|
@@ -31,6 +31,8 @@ export interface RegisterMeasure {
|
|
|
31
31
|
/** Where the body's first passage starts, for a finding about the whole body. */
|
|
32
32
|
readonly at: Span | null;
|
|
33
33
|
}
|
|
34
|
+
/** Where a passage's first piece stands: where a finding about the whole body points. */
|
|
35
|
+
export declare function startOf(p: Passage): Span;
|
|
34
36
|
/** The body's words, and its sentences that open with a conjunction. */
|
|
35
37
|
export declare function measureRegister(passages: readonly Passage[]): RegisterMeasure;
|
|
36
38
|
/** One finding, at the start of the body, when the rate runs above `limit` per 1000 words. */
|
package/dist/register.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAA4B,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAE9B,6FAA6F;AAC7F,eAAO,MAAM,SAAS,OAAO,CAAC;AAE9B,oFAAoF;AACpF,eAAO,MAAM,aAAa,MAAM,CAAC;AAYjC,8BAA8B;AAC9B,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,gDAAgD;IAChD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,iFAAiF;IACjF,QAAQ,CAAC,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC;CAC1B;AAED,yFAAyF;AACzF,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAQxC;AAED,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,eAAe,CAU7E;AAED,8FAA8F;AAC9F,wBAAgB,aAAa,CAC3B,CAAC,EAAE,eAAe,EAClB,KAAK,GAAE,MAAsB,GAC5B,SAAS,OAAO,EAAE,CAWpB;AAmCD,8FAA8F;AAC9F,eAAO,MAAM,YAAY,GAAI,MAAM,SAAS,KAAG,aAmB7C,CAAC"}
|