@happyvertical/smrt-education 0.60.0 → 0.60.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/agents/class-crunchlabs.md +24 -0
- package/dist/index.js +87 -10
- package/dist/index.js.map +1 -1
- package/dist/manifest.json +1 -1
- package/dist/smrt-knowledge.json +5 -5
- package/dist/sources/class-crunchlabs.d.ts +11 -0
- package/dist/sources/class-crunchlabs.d.ts.map +1 -1
- package/package.json +8 -8
|
@@ -55,6 +55,30 @@ skipped) or `memoryClassCrunchLabsSource(files)`. It never reads video files.
|
|
|
55
55
|
- The unit-wide "(all lessons)" combined files repeat the per-lesson files and
|
|
56
56
|
are large, so they are left out unless `includeUnitWideAggregates` (reported as
|
|
57
57
|
`aggregate-of-lessons`); the supply list, posters and other extras are kept.
|
|
58
|
+
- Titles (#4642): a material's title is its file name tidied: the letter prefix,
|
|
59
|
+
lesson code (`L02`), unit name, version (`v1.0`, `v.1.1`), `copy` and stray dots
|
|
60
|
+
and underscores are dropped (`A. L01_Teacher Mission Manual_<Unit>_v1.0.pdf` is
|
|
61
|
+
`Teacher Mission Manual`; `... Assessment (Editable)` keeps its qualifier), and a
|
|
62
|
+
trailing ` - detail` becomes `(detail)` (`SQIREL Poster - 8.5x11` is `SQIREL
|
|
63
|
+
Poster (8.5×11)`). Two different files that tidy to one title in the same
|
|
64
|
+
lesson or the course are told apart as `Title (2)`; byte-identical copies are
|
|
65
|
+
already collapsed by de-duplication. A lesson is titled `Lesson N: Name`. The name is, in order: the cover headline of the lesson's
|
|
66
|
+
teacher manual PDF, when the host passes `readFirstPageHeadline({ bytes, kind:
|
|
67
|
+
'pdf' })` (the most prominent, largest-type text on page 1, lines joined by a
|
|
68
|
+
space; this package has no PDF text reader, so the host supplies one, for
|
|
69
|
+
example from pdfjs; all capitals fold to title case, `WEIGHT & MOTION` is
|
|
70
|
+
`Weight & Motion`; a throw or null is ignored); else the activity of the lesson's
|
|
71
|
+
first (lowest step) `StudentHandsOnExploration` video name, in title case with
|
|
72
|
+
small words lower (`L03.6_Video_StudentHandsOnExploration_PlayWithPlungers` is
|
|
73
|
+
`Lesson 3: Play with Plungers`); else `Lesson N`. Video names are read whether or
|
|
74
|
+
not a playlist matched them, both `L01.4_Video_` and `L01.4 Video_` forms, `-NNN`
|
|
75
|
+
download suffixes dropped, and loose lesson videos at the download's root count
|
|
76
|
+
for the unit their name ends with. Titles are manifest data, so a section or lesson title that differs from
|
|
77
|
+
an already attached part of the same unit is `part-conflict` (see the bundle
|
|
78
|
+
import's shared-placement rules, which are deliberately not relaxed): a unit
|
|
79
|
+
imported before this change keeps its `Lesson N` titles, and getting the new
|
|
80
|
+
titles means importing the unit again into a fresh course (a different course
|
|
81
|
+
id, not `courseId` of the old one).
|
|
58
82
|
- Lesson pages: the first mission log of a lesson gets a `Mission log` range
|
|
59
83
|
from `pageCounter` (`createClassCrunchLabsPageCounter({ converter? })` counts
|
|
60
84
|
PDFs with pdf-lib and Word files by rendering them through the converter).
|