explico 0.8.0 → 0.11.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/CHANGELOG.md +1257 -1
- package/README.md +60 -15
- package/dist/compiler/astro.d.ts +6 -1
- package/dist/compiler/cli.d.ts +46 -2
- package/dist/compiler/cli.js +70 -4
- package/dist/compiler/collections.d.ts +35 -2
- package/dist/compiler/collections.js +68 -5
- package/dist/compiler/course-config.d.ts +3 -194
- package/dist/compiler/course-config.js +78 -5
- package/dist/compiler/exports/standalone-html.d.ts +6 -1
- package/dist/compiler/knowledge-version.js +1 -1
- package/dist/compiler/lesson-derivation.d.ts +27 -10
- package/dist/compiler/lesson-derivation.js +23 -8
- package/dist/compiler/logging.d.ts +4 -1
- package/dist/compiler/logging.js +4 -1
- package/dist/compiler/manifest.d.ts +204 -31
- package/dist/compiler/manifest.js +270 -55
- package/dist/compiler/resolution-report.d.ts +6 -1
- package/dist/course-config-Dsnri9Tk.d.ts +464 -0
- package/dist/reference/base-accents.d.mts +26 -0
- package/dist/reference/base-accents.mjs +31 -0
- package/dist/reference/base-roman-labels.d.mts +2 -2
- package/dist/reference/base-roman-labels.mjs +2 -2
- package/dist/reference/consistency.d.ts +14 -2
- package/dist/reference/consistency.js +108 -4
- package/dist/reference/delimiter-size.d.ts +3 -2
- package/dist/reference/diagrams-validate.d.ts +7 -2
- package/dist/reference/diagrams-validate.js +9 -1
- package/dist/reference/equations-validate.d.ts +8 -5
- package/dist/reference/equations-validate.js +1 -0
- package/dist/reference/equations.d.mts +60 -31
- package/dist/reference/equations.mjs +83 -43
- package/dist/reference/examples-validate.d.ts +31 -0
- package/dist/reference/examples-validate.js +48 -0
- package/dist/reference/figures-validate.d.ts +1 -1
- package/dist/reference/figures-validate.js +4 -1
- package/dist/reference/folds-validate.d.ts +33 -0
- package/dist/reference/folds-validate.js +32 -0
- package/dist/reference/gate-abbreviations.d.ts +3 -1
- package/dist/reference/gate-abbreviations.js +1 -0
- package/dist/reference/gate-course-rules.d.ts +32 -0
- package/dist/reference/gate-course-rules.js +85 -0
- package/dist/reference/gate-heading-length.d.ts +5 -2
- package/dist/reference/gate-heading-length.js +45 -21
- package/dist/reference/gate-heading-structure.d.ts +41 -0
- package/dist/reference/gate-heading-structure.js +113 -0
- package/dist/reference/gate-math-punctuation.d.ts +71 -0
- package/dist/reference/gate-math-punctuation.js +251 -0
- package/dist/reference/gate-math.d.ts +22 -6
- package/dist/reference/gate-math.js +42 -8
- package/dist/reference/gate-part-pages.d.ts +50 -0
- package/dist/reference/gate-part-pages.js +118 -0
- package/dist/reference/gate-prose-notation.d.ts +21 -11
- package/dist/reference/gate-prose-notation.js +25 -7
- package/dist/reference/katex-delimiters.mjs +20 -7
- package/dist/reference/keyed-float-validate.d.ts +27 -10
- package/dist/reference/keyed-float-validate.js +15 -1
- package/dist/reference/keyed-jsx-floats.d.mts +11 -5
- package/dist/reference/keyed-jsx-floats.mjs +73 -20
- package/dist/reference/knowledge-checks-validate.d.ts +1 -1
- package/dist/reference/knowledge-checks.d.mts +3 -1
- package/dist/reference/knowledge-checks.mjs +9 -4
- package/dist/reference/lab-math-scope.d.ts +1 -0
- package/dist/reference/lab-math-slot.d.ts +34 -0
- package/dist/reference/lab-math-slot.js +6 -0
- package/dist/reference/math-glyphs.d.mts +80 -4
- package/dist/reference/math-glyphs.mjs +572 -37
- package/dist/reference/page-notation.d.ts +6 -1
- package/dist/reference/raw-floats-validate.js +1 -1
- package/dist/reference/raw-floats.mjs +1 -1
- package/dist/reference/rehype-heading-anchors.d.mts +14 -0
- package/dist/reference/rehype-heading-anchors.mjs +116 -17
- package/dist/reference/rehype-table-header-labels.d.mts +6 -1
- package/dist/reference/rehype-table-header-labels.mjs +21 -3
- package/dist/reference/remark-asides.d.mts +3 -0
- package/dist/reference/remark-asides.mjs +180 -0
- package/dist/reference/remark-memo.d.mts +3 -1
- package/dist/reference/remark-memo.mjs +42 -11
- package/dist/reference/remark-notation.d.mts +60 -10
- package/dist/reference/remark-notation.mjs +387 -36
- package/dist/reference/render-lab-math.d.ts +4 -26
- package/dist/reference/render-lab-math.js +4 -4
- package/dist/reference/sections-validate.d.ts +27 -0
- package/dist/reference/sections-validate.js +41 -0
- package/dist/reference/sections.d.mts +97 -0
- package/dist/reference/sections.mjs +306 -0
- package/dist/reference/tables-validate.d.ts +1 -1
- package/dist/reference/types.d.ts +17 -1
- package/dist/reference/unit-words.d.ts +37 -0
- package/dist/reference/unit-words.js +170 -0
- package/dist/rules/catalog.d.ts +176 -0
- package/dist/rules/catalog.js +983 -0
- package/dist/rules/course-rules.d.ts +115 -0
- package/dist/rules/course-rules.js +292 -0
- package/dist/rules/course-rules.schema.json +138 -0
- package/dist/rules/in-effect.d.ts +53 -0
- package/dist/rules/in-effect.js +142 -0
- package/dist/rules/rules.schema.json +1072 -0
- package/dist/rules/settings.d.ts +3 -0
- package/dist/rules/settings.js +290 -0
- package/dist/rules/waivers.d.ts +53 -0
- package/dist/rules/waivers.js +132 -0
- package/dist/session/PreferenceStore.d.ts +5 -0
- package/dist/session/PreferenceStore.js +9 -0
- package/docs/VERSIONING.md +5 -3
- package/docs/authoring/README.md +232 -40
- package/docs/authoring/agents.md +55 -9
- package/docs/authoring/components.md +178 -22
- package/docs/authoring/migrating.md +1152 -2
- package/docs/authoring/notation.md +576 -322
- package/docs/authoring/prose.md +551 -0
- package/docs/authoring/retired.md +35 -0
- package/docs/authoring/structure-rules.md +422 -40
- package/docs/authoring/structure.md +445 -62
- package/docs/authoring/versioning.md +20 -28
- package/docs/authoring/visualizations.md +142 -20
- package/package.json +2 -2
- package/src/compiler/cli.ts +116 -6
- package/src/compiler/collections.ts +111 -7
- package/src/compiler/course-config.ts +273 -34
- package/src/compiler/knowledge-version.ts +1 -1
- package/src/compiler/lesson-derivation.ts +54 -15
- package/src/compiler/logging.ts +8 -2
- package/src/compiler/manifest.ts +573 -104
- package/src/components/BlockHeading.astro +113 -0
- package/src/components/CourseContents.astro +221 -0
- package/src/components/CurriculumMap.astro +5 -6
- package/src/components/FloatIndex.astro +200 -0
- package/src/components/HoverPanel.astro +431 -79
- package/src/components/PartBridge.astro +27 -0
- package/src/components/PartOverview.astro +401 -0
- package/src/components/PartScope.astro +27 -0
- package/src/components/abbreviation/AbbreviationLayer.astro +49 -51
- package/src/components/assessments/AssessmentRunner.tsx +8 -5
- package/src/components/assessments/AssessmentSet.astro +23 -26
- package/src/components/block-heading.ts +146 -0
- package/src/components/card-arrow.ts +243 -0
- package/src/components/card-drag.ts +631 -0
- package/src/components/card-jump.ts +45 -0
- package/src/components/card-manager.ts +1589 -0
- package/src/components/card-memory.ts +177 -0
- package/src/components/card-placement.ts +504 -0
- package/src/components/card-side.ts +336 -0
- package/src/components/card-travel.ts +197 -0
- package/src/components/citation/CitationLayer.astro +77 -76
- package/src/components/diagram/Diagram.astro +161 -316
- package/src/components/disclosure/course-disclosure.ts +24 -0
- package/src/components/disclosure/hover-preview.ts +122 -42
- package/src/components/disclosure/persisted-disclosure.ts +3 -3
- package/src/components/disclosure/print-as-shown.ts +252 -0
- package/src/components/examples/CompactExample.astro +3 -1
- package/src/components/examples/CompactExamples.astro +101 -94
- package/src/components/figure/Figure.astro +174 -274
- package/src/components/figure/FloatCaption.astro +87 -0
- package/src/components/figure/figure-state.ts +58 -0
- package/src/components/figure/figure-tools.ts +87 -0
- package/src/components/float-name.ts +101 -0
- package/src/components/fold/Fold.astro +125 -0
- package/src/components/fold/fold-id.ts +40 -0
- package/src/components/memo/Memo.astro +162 -231
- package/src/components/memo/ShortNote.astro +6 -6
- package/src/components/notation/NotationFormula.astro +5 -1
- package/src/components/notation/NotationGlossary.astro +3 -4
- package/src/components/notation/NotationLayer.astro +169 -162
- package/src/components/notation/NotationMath.astro +10 -1
- package/src/components/reference/FloatRefLayer.astro +485 -423
- package/src/components/starlight/AboutPanel.astro +5 -4
- package/src/components/starlight/CollapsibleSections.astro +207 -93
- package/src/components/starlight/DiagramEnhancer.astro +15 -138
- package/src/components/starlight/HeadingAnchorEnhancer.astro +193 -1
- package/src/components/starlight/KeyedFloatEnhancer.astro +100 -9
- package/src/components/starlight/LayoutHeader.astro +298 -19
- package/src/components/starlight/LayoutPageSidebar.astro +99 -12
- package/src/components/starlight/LayoutPageTitle.astro +120 -0
- package/src/components/starlight/LayoutSidebar.astro +229 -11
- package/src/components/starlight/LessonExportActions.astro +53 -72
- package/src/components/starlight/LessonFooter.astro +26 -4
- package/src/components/starlight/section-parts.ts +15 -2
- package/src/components/starlight/section-summary.ts +181 -0
- package/src/components/table/Table.astro +95 -76
- package/src/components/table/TableOverflowExpander.astro +65 -28
- package/src/content-config.ts +40 -4
- package/src/reference/base-accents.mjs +31 -0
- package/src/reference/base-roman-labels.mjs +2 -2
- package/src/reference/consistency.ts +176 -5
- package/src/reference/delimiter-size.ts +3 -2
- package/src/reference/diagrams-validate.ts +17 -1
- package/src/reference/equations-validate.ts +10 -5
- package/src/reference/equations.mjs +83 -43
- package/src/reference/examples-validate.ts +97 -0
- package/src/reference/figures-validate.ts +6 -1
- package/src/reference/folds-validate.ts +65 -0
- package/src/reference/gate-abbreviations.ts +1 -0
- package/src/reference/gate-course-rules.ts +134 -0
- package/src/reference/gate-heading-length.ts +66 -35
- package/src/reference/gate-heading-structure.ts +193 -0
- package/src/reference/gate-math-punctuation.ts +381 -0
- package/src/reference/gate-math.ts +69 -10
- package/src/reference/gate-part-pages.ts +217 -0
- package/src/reference/gate-prose-notation.ts +59 -12
- package/src/reference/katex-delimiters.mjs +20 -7
- package/src/reference/keyed-float-validate.ts +45 -11
- package/src/reference/keyed-jsx-floats.mjs +73 -20
- package/src/reference/knowledge-checks-validate.ts +1 -1
- package/src/reference/knowledge-checks.mjs +9 -4
- package/src/reference/lab-math-slot.ts +36 -0
- package/src/reference/math-glyphs.mjs +572 -37
- package/src/reference/raw-floats-validate.ts +1 -1
- package/src/reference/raw-floats.mjs +1 -1
- package/src/reference/rehype-heading-anchors.mjs +116 -17
- package/src/reference/rehype-table-header-labels.mjs +21 -3
- package/src/reference/remark-asides.mjs +180 -0
- package/src/reference/remark-memo.mjs +42 -11
- package/src/reference/remark-notation.mjs +387 -36
- package/src/reference/render-lab-math.ts +16 -31
- package/src/reference/sections-validate.ts +81 -0
- package/src/reference/sections.mjs +306 -0
- package/src/reference/tables-validate.ts +2 -1
- package/src/reference/types.ts +17 -0
- package/src/reference/unit-words.ts +233 -0
- package/src/rules/catalog.ts +1298 -0
- package/src/rules/course-rules.ts +456 -0
- package/src/rules/in-effect.ts +235 -0
- package/src/rules/settings.ts +448 -0
- package/src/rules/waivers.ts +249 -0
- package/src/session/PreferenceStore.ts +15 -0
- package/src/styles/global.css +1467 -163
- package/src/styles/surfaces.css +182 -0
- package/src/components/hover-panel.ts +0 -339
- package/src/components/popup-stack.ts +0 -345
|
@@ -11,17 +11,56 @@
|
|
|
11
11
|
* neither module has to import the other.
|
|
12
12
|
*/
|
|
13
13
|
export function stripNotationMarkers(latex: any): string;
|
|
14
|
+
/**
|
|
15
|
+
* The operator-entry `latex` for a decoration name — the decoration over an
|
|
16
|
+
* empty group: `\hat{}`, `\overline{}`, `{}'`, `{}^{*}`, `{}^{\dagger}`. The
|
|
17
|
+
* inverse of {@link decorationOfEntry}, and how the decoration alone is shown.
|
|
18
|
+
*
|
|
19
|
+
* @param {string} name
|
|
20
|
+
* @returns {string}
|
|
21
|
+
*/
|
|
22
|
+
export function operatorEntryLatex(name: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* How a decoration is shown on its own — over a placeholder square, so a
|
|
25
|
+
* reader sees where it goes: `\hat{\square}`, `\square'`, `\square^{*}`.
|
|
26
|
+
* A lone `\dot{}` renders as a speck. Display only: the entry's `latex` stays
|
|
27
|
+
* the empty-group form the resolver keys on.
|
|
28
|
+
*
|
|
29
|
+
* @param {string} name
|
|
30
|
+
* @returns {string}
|
|
31
|
+
*/
|
|
32
|
+
export function operatorDisplayLatex(name: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* The decoration a notation entry's `latex` is an operator entry for (see
|
|
35
|
+
* {@link decorationOfTree}), or `undefined`. `\hat{\beta}` is a whole form,
|
|
36
|
+
* not an operator entry.
|
|
37
|
+
*
|
|
38
|
+
* @param {string} latex
|
|
39
|
+
* @returns {string | undefined}
|
|
40
|
+
*/
|
|
41
|
+
export function decorationOfEntry(latex: string): string | undefined;
|
|
14
42
|
/**
|
|
15
43
|
* Resolve and annotate one KaTeX expression against a page's flat glyph table.
|
|
16
44
|
* Source offsets in the result always refer to the original, unmodified LaTeX.
|
|
17
45
|
*
|
|
46
|
+
* Decorations (rule N22) are reported in `decorations`: `wholeForm` is the key
|
|
47
|
+
* of the binding that covers the decorated form (`\hat{\beta}` has its own
|
|
48
|
+
* entry), else `null`; `operator` is the key of the operator entry
|
|
49
|
+
* (`latex: \hat{}`) whose `\explain` now wraps the decorated form, else
|
|
50
|
+
* `null`. A decoration named in `options.suspended` never composes: a
|
|
51
|
+
* decorated form no whole form covers is reported in `unresolved`, marked
|
|
52
|
+
* `suspended`.
|
|
53
|
+
*
|
|
18
54
|
* @param {string} latex
|
|
19
55
|
* @param {Array<{key: string, notation: string}>} definitions
|
|
56
|
+
* @param {{ suspended?: readonly string[] }} [options]
|
|
20
57
|
*/
|
|
21
58
|
export function resolveMathGlyphs(latex: string, definitions: Array<{
|
|
22
59
|
key: string;
|
|
23
60
|
notation: string;
|
|
24
|
-
}
|
|
61
|
+
}>, options?: {
|
|
62
|
+
suspended?: readonly string[];
|
|
63
|
+
}): {
|
|
25
64
|
latex: string;
|
|
26
65
|
bindings: {
|
|
27
66
|
key: any;
|
|
@@ -29,7 +68,15 @@ export function resolveMathGlyphs(latex: string, definitions: Array<{
|
|
|
29
68
|
match: any;
|
|
30
69
|
token: any;
|
|
31
70
|
}[];
|
|
32
|
-
unresolved: any;
|
|
71
|
+
unresolved: any[];
|
|
72
|
+
decorations: {
|
|
73
|
+
token: string;
|
|
74
|
+
wholeForm: any;
|
|
75
|
+
operator: any;
|
|
76
|
+
start: any;
|
|
77
|
+
end: any;
|
|
78
|
+
name: any;
|
|
79
|
+
}[];
|
|
33
80
|
};
|
|
34
81
|
/**
|
|
35
82
|
* Every named operator in one KaTeX expression: a built-in `op` node
|
|
@@ -57,16 +104,37 @@ export function collectOperators(latex: string): Array<{
|
|
|
57
104
|
name: string;
|
|
58
105
|
source: "named" | "operatorname";
|
|
59
106
|
}>;
|
|
107
|
+
/**
|
|
108
|
+
* Every decoration in one KaTeX expression (rule N22): an accent (`\hat`,
|
|
109
|
+
* `\widehat`, …), `\overline` / `\underline`, or a superscript mark (`'` for
|
|
110
|
+
* any run of primes, `*` for `*` / `\ast`, `\dagger`). `name` is the
|
|
111
|
+
* canonical name in {@link DECORATION_NAMES}; `start`/`end` span the whole
|
|
112
|
+
* decorated form in `latex`; `base` is the source of what it decorates when
|
|
113
|
+
* that is one symbol (`\beta`, `b`, `\mathbf{x}`), else `undefined`.
|
|
114
|
+
*
|
|
115
|
+
* Pure read, the twin of {@link collectOperators}: `\text{}`, `\mathrm{}` and
|
|
116
|
+
* operator bodies are skipped, and a span that will not parse returns `[]`
|
|
117
|
+
* (the math gate owns that error).
|
|
118
|
+
*
|
|
119
|
+
* @param {string} latex
|
|
120
|
+
* @returns {Array<{ name: string, start: number, end: number, base: string | undefined }>}
|
|
121
|
+
*/
|
|
122
|
+
export function collectDecorations(latex: string): Array<{
|
|
123
|
+
name: string;
|
|
124
|
+
start: number;
|
|
125
|
+
end: number;
|
|
126
|
+
base: string | undefined;
|
|
127
|
+
}>;
|
|
60
128
|
/**
|
|
61
129
|
* Every multi-letter `\mathrm{…}` label in one KaTeX expression (`KE`, `PV`,
|
|
62
130
|
* `opt`) — the upright-label counterpart to {@link collectOperators}. A
|
|
63
|
-
* single-letter body (`\mathrm{d}`, the
|
|
131
|
+
* single-letter body (`\mathrm{d}`, the rule-N2 differential) is not collected:
|
|
64
132
|
* that one is a fixed typographic operator, not a named quantity a reader
|
|
65
133
|
* would need explained.
|
|
66
134
|
*
|
|
67
135
|
* Pure read: nothing here rewrites the source. Used by the
|
|
68
136
|
* `roman-label-explained` consistency check (rule N10); the glyph resolver
|
|
69
|
-
* still skips `\mathrm{…}` bodies whole ([
|
|
137
|
+
* still skips `\mathrm{…}` bodies whole ([N10](../../docs/authoring/notation.md#n10)).
|
|
70
138
|
*
|
|
71
139
|
* Same `stripNotationMarkers` preprocessing as {@link collectOperators}, and
|
|
72
140
|
* for the same reason: an unstripped `\explain{…}{…}` elsewhere in the span
|
|
@@ -99,6 +167,14 @@ export function collectRomanLabels(latex: string): Array<{
|
|
|
99
167
|
* guard below keeps a dependency bump from silently changing its tree.
|
|
100
168
|
*/
|
|
101
169
|
export const SUPPORTED_KATEX_PARSE_VERSION: "0.16.47";
|
|
170
|
+
/**
|
|
171
|
+
* Every decoration rule N22 treats as an operator, by canonical name: each
|
|
172
|
+
* accent (`\hat`, `\widehat`, … — `\widehat` is not `\hat`), `\overline`,
|
|
173
|
+
* `\underline`, and the superscript marks `'` (any run of primes), `*` (`*`
|
|
174
|
+
* or `\ast`) and `\dagger`. `^\top`, `^{-1}`, powers, subscripts and fonts
|
|
175
|
+
* are not decorations.
|
|
176
|
+
*/
|
|
177
|
+
export const DECORATION_NAMES: Readonly<Set<string>>;
|
|
102
178
|
export class GlyphResolutionError extends Error {
|
|
103
179
|
constructor(code: any, message: any, details?: undefined);
|
|
104
180
|
code: any;
|