explico 0.11.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 +19 -1
- package/docs/VERSIONING.md +3 -1
- package/docs/authoring/migrating.md +56 -0
- package/package.json +1 -1
- package/src/styles/global.css +27 -31
package/CHANGELOG.md
CHANGED
|
@@ -14,6 +14,23 @@ under **Breaking** below; a PATCH never breaks.
|
|
|
14
14
|
|
|
15
15
|
## [Unreleased]
|
|
16
16
|
|
|
17
|
+
## [0.11.1] - 2026-09-28
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- **A side panel's labels wrap instead of scrolling sideways.** A chapter,
|
|
22
|
+
lesson or heading longer than the navigation or the "On this page" panel
|
|
23
|
+
is wide goes onto more lines, at any width, including one the reader
|
|
24
|
+
dragged a panel down to; a word longer than the panel hyphenates where the
|
|
25
|
+
language allows, else breaks. A resized panel used to keep each label on
|
|
26
|
+
one line and scroll sideways (`white-space: nowrap` on
|
|
27
|
+
`html[data-navigation-resized]` / `html[data-contents-resized]`), and the
|
|
28
|
+
"On this page" column kept a width taken from the navigation's
|
|
29
|
+
(`--sl-sidebar-width`), running past a narrowed panel's edge; it now fills
|
|
30
|
+
its panel. `.sidebar-pane` clips sideways (`overflow-x: hidden`), where a
|
|
31
|
+
compact chapter's invisible resting tooltip reached past it; a showing
|
|
32
|
+
tooltip is `position: fixed` and is never cut.
|
|
33
|
+
|
|
17
34
|
## [0.11.0] - 2026-09-28
|
|
18
35
|
|
|
19
36
|
### Breaking
|
|
@@ -2126,7 +2143,8 @@ under **Breaking** below; a PATCH never breaks.
|
|
|
2126
2143
|
system with its completeness gate, the curriculum-graph validator, the
|
|
2127
2144
|
Astro/Starlight UI, the LMS / session / analytics seams, and the `content` CLI.
|
|
2128
2145
|
|
|
2129
|
-
[Unreleased]: https://github.com/danieltuzes/explico/compare/v0.11.
|
|
2146
|
+
[Unreleased]: https://github.com/danieltuzes/explico/compare/v0.11.1...HEAD
|
|
2147
|
+
[0.11.1]: https://github.com/danieltuzes/explico/compare/v0.11.0...v0.11.1
|
|
2130
2148
|
[0.11.0]: https://github.com/danieltuzes/explico/compare/v0.10.0...v0.11.0
|
|
2131
2149
|
[0.10.0]: https://github.com/danieltuzes/explico/compare/v0.9.0...v0.10.0
|
|
2132
2150
|
[0.9.0]: https://github.com/danieltuzes/explico/compare/v0.8.0...v0.9.0
|
package/docs/VERSIONING.md
CHANGED
|
@@ -105,7 +105,9 @@ applies every intervening section in order.
|
|
|
105
105
|
the `migrating.md` section.
|
|
106
106
|
6. Run `pnpm build && pnpm test`, then inspect `pnpm pack --dry-run` and confirm
|
|
107
107
|
that `docs/authoring/migrating.md` and `docs/authoring/agents.md` are listed.
|
|
108
|
-
7. Commit, then `git tag vx.y.z`.
|
|
108
|
+
7. Commit, then tag it annotated: `git tag -a vx.y.z -m "explico x.y.z"`. With
|
|
109
|
+
`push.followTags` on, a plain `git push` sends an annotated tag with its
|
|
110
|
+
commit; a lightweight tag never travels that way.
|
|
109
111
|
|
|
110
112
|
## When you change the engine
|
|
111
113
|
|
|
@@ -33,6 +33,62 @@ required config block throws with the section of this file to read.
|
|
|
33
33
|
|
|
34
34
|
---
|
|
35
35
|
|
|
36
|
+
## 0.11.0 → 0.11.1
|
|
37
|
+
|
|
38
|
+
**No course changes required.** This release has one fix, in the engine's
|
|
39
|
+
stylesheet. A label in the navigation or the "On this page" panel that does
|
|
40
|
+
not fit now wraps onto more lines instead of scrolling sideways, and that
|
|
41
|
+
includes a panel the reader resized. No authoring rule, `CourseConfig` field,
|
|
42
|
+
Astro wiring, course script or CLI command changes. The manifest schema stays
|
|
43
|
+
v24.
|
|
44
|
+
|
|
45
|
+
### 1. Update the dependency
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
pnpm add -D explico@0.11.1
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**Coming from 0.8.0:** follow the "Coming from 0.8.0" note of "0.10.0 →
|
|
52
|
+
0.11.0" below, and install 0.11.1 wherever it says to install 0.11.0.
|
|
53
|
+
|
|
54
|
+
### 2. Only if your course CSS or browser tests reach into the side panels
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
rg -n 'data-(navigation|contents)-resized|\.sidebar-pane|\.right-sidebar|layout-(navigation|page-sidebar)-content' src content tests
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
No hit means nothing to do. Otherwise:
|
|
61
|
+
|
|
62
|
+
- **A resized panel's labels** have `white-space: normal` (it was `nowrap`),
|
|
63
|
+
and the panel never scrolls sideways. A test that asserted `nowrap`, or
|
|
64
|
+
`scrollWidth > clientWidth` after narrowing a panel, now asserts that the
|
|
65
|
+
labels wrap and stay inside the panel.
|
|
66
|
+
- **`.sidebar-pane`** has `overflow-x: hidden` at every width. The resized
|
|
67
|
+
"On this page" panel no longer sets `overflow-x: auto` or
|
|
68
|
+
`scrollbar-width: thin`, so it hides its scrollbar, as Starlight does by
|
|
69
|
+
default.
|
|
70
|
+
- **In a resized "On this page" panel**, the column
|
|
71
|
+
(`.right-sidebar-panel .sl-container`) fills the panel. Its width used to
|
|
72
|
+
come from the navigation's `--sl-sidebar-width`. The default,
|
|
73
|
+
shrink-to-fit rail is unchanged.
|
|
74
|
+
- **Word breaking.** Both panels' labels take `overflow-wrap: break-word`
|
|
75
|
+
and `hyphens: auto`, which replaces Starlight's `overflow-wrap: anywhere`
|
|
76
|
+
on the contents links. To break words differently, set these properties
|
|
77
|
+
on `.layout-navigation-content`, `.layout-page-sidebar-content` and
|
|
78
|
+
`.layout-page-sidebar-content a` in the course CSS.
|
|
79
|
+
- **Screenshots** of a narrowed panel need re-recording.
|
|
80
|
+
|
|
81
|
+
### 3. Verify
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
pnpm validate:content # run twice: the first run regenerates build/resolution/*
|
|
85
|
+
pnpm content check --changed
|
|
86
|
+
astro check
|
|
87
|
+
astro build
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Then run the course's browser tests, if it has any.
|
|
91
|
+
|
|
36
92
|
## 0.10.0 → 0.11.0
|
|
37
93
|
|
|
38
94
|
**Course changes are required.** Figures and diagrams no longer compact.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "explico",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.1",
|
|
4
4
|
"description": "Build-time engine for prerequisite-aware, notation-rigorous course content: one validated content model, a semantic notation/citation/equation system with a completeness gate, and a deterministic JSON manifest.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "UNLICENSED",
|
package/src/styles/global.css
CHANGED
|
@@ -1043,28 +1043,24 @@ details.layout-part-has-open > summary > .group-label {
|
|
|
1043
1043
|
display: none;
|
|
1044
1044
|
}
|
|
1045
1045
|
|
|
1046
|
-
/* A
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
> li
|
|
1065
|
-
> a
|
|
1066
|
-
> span {
|
|
1067
|
-
white-space: normal;
|
|
1046
|
+
/* A label that does not fit wraps onto more lines, and the side panels
|
|
1047
|
+
never scroll sideways: a word longer than the panel is wide is
|
|
1048
|
+
hyphenated where the language allows, else broken. Starlight's
|
|
1049
|
+
`overflow-wrap: anywhere` on the contents links broke words at any
|
|
1050
|
+
letter before hyphenation got a chance. */
|
|
1051
|
+
.layout-navigation-content,
|
|
1052
|
+
.layout-page-sidebar-content,
|
|
1053
|
+
.layout-page-sidebar-content a {
|
|
1054
|
+
overflow-wrap: break-word;
|
|
1055
|
+
hyphens: auto;
|
|
1056
|
+
}
|
|
1057
|
+
|
|
1058
|
+
/* With every label wrapping, what still reaches past the navigation's
|
|
1059
|
+
edge is a compact chapter's resting tooltip (absolutely placed, and
|
|
1060
|
+
invisible): it would only add a sideways scrollbar. A showing tooltip is
|
|
1061
|
+
`position: fixed` (below), so this clip never cuts it. */
|
|
1062
|
+
.sidebar-pane {
|
|
1063
|
+
overflow-x: hidden;
|
|
1068
1064
|
}
|
|
1069
1065
|
|
|
1070
1066
|
html[data-navigation-hidden] {
|
|
@@ -1249,15 +1245,15 @@ details.layout-part-has-open > summary > .group-label {
|
|
|
1249
1245
|
max-width: none;
|
|
1250
1246
|
}
|
|
1251
1247
|
|
|
1252
|
-
/* Starlight
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1248
|
+
/* Starlight sizes the column inside from the navigation's width
|
|
1249
|
+
(`--sl-sidebar-width`), not from this panel: in a panel the reader set,
|
|
1250
|
+
it fills the panel, so its headings wrap at the panel's edge instead of
|
|
1251
|
+
running past it. */
|
|
1252
|
+
html[data-contents-resized]:not([data-page-sidebar-hidden])
|
|
1253
|
+
.right-sidebar-panel
|
|
1254
|
+
.sl-container {
|
|
1255
|
+
width: auto;
|
|
1256
|
+
max-width: none;
|
|
1261
1257
|
}
|
|
1262
1258
|
|
|
1263
1259
|
html[data-page-sidebar-hidden] {
|