assets/css/navigation.css
and assets/js/navigation.js
to meet project standards and accessibility.assets/css/navigation.css
./course/<unit>/
and /course/<unit>/index/
..../<type>/
and .../<type>/index/
.site[course]
collection doc URLs for accuracy under baseurl.- `_hphys/index.md` → `/hphys/`
- `_sphys/index.md` → `/sphys/`
- `_natdis/index.md` → `/natdis/`
CHANGELOG.MD
using ...
to prevent parsing during build.docs/
are now excluded from YAML front‑matter and performance checks. CI/automation that previously counted docs issues will see reduced violations. If you need docs linting, run a separate docs-focused check._includes/units-from-collection.html
and wired a “Units (fallback)” section into all three course landing pages (/_hphys/index.md
, /_sphys/index.md
, /_natdis/index.md
) for parity. Uses collection documents with compatibility-safe Liquid (no chained and
, no concat
with array literals).scripts/reverse-assemble-json.py
to convert authored Markdown under _<course>/course/<unit>/...
back into normalized JSON per content type:
_<course>/lectures/*.json
_<course>/labs/*.json
_<course>/problem-sets/*.json
_<course>/research-briefs/*.json
--course/--all
, --dry-run
, and --overwrite
. Pairs with the existing scripts/generate-markdown-from-json.py
for a full round‑trip pipeline.default.html
now conditionally loads Bootstrap and assets/css/flexbook.css
only when layout: flexbook
._layouts/flexbook.html
so styles load via the head..markdown-body
spacing from inline style in default layout into assets/css/navigation.css
.scripts/generate-markdown-from-json.py
with a safe --overwrite
mode:
source_json
in front matter).source_json
are never clobbered.notes
content
_<course>/notes/*.json
and generates thin Markdown wrappers using layout: notes
./ <course> / course / <unit> / notes / <slug> /
URLs.unitTitle
, overarchingQuestion
, keyConcepts
, problemSolvingSkills
, and flattens essentialVocabulary
→ vocabulary
array for the layout sidebar.page.body_blocks
populated by the generator. Supported block types, all markdownified where applicable:
unit_slug
from JSON (unit number + title) and preserves canonical permalinks under / <course> / course / <unit> / <type> / <slug> /
._includes/units-from-collection.html
and _includes/units-from-data.html
now link to the first available child if a unit/type hub index page is missing.--overwrite
safe mode (only pages with source_json
changed)._sphys/research-briefs/rb-2-blueprint-system-grid.json
_sphys/research-briefs/rb-5-the-invisible-symphony.json
_layouts/physics-quiz.html
(~233 lines) → action: extract to assets/js/physics-quiz.js
and include from layout.(_sphys/course/1-energy-grids/flexbook/*(OLD).md)
→ action: move to archive-outdated-templates/
or remove.docs/diagram-json-schema.md
→ action: fence YAML examples or adjust front matter to avoid parsing._data/image-library.yml
or adjust concept keys.content_type
and minimal front matter. Ready to apply without --dry-run
./_sphys/flexbook/
, including:
fb-1.2-designing-reliable-systems.json
fb-2.1-how-land-stretches.json
fb-2.2-forces-shaping-surface.json
fb-3.1-driving-risk-factors.json
fb-3.2-designing-for-safety.json
fb-5.1-wave-properties.json
(existing reference)fb-5.2-uses-and-safety.json
fb-1.1-energy-circuits-power.json.json
→ fb-1.1-energy-circuits-power.json
.scripts/generate-markdown-from-json.py
now supports generating wrappers for flexbook
items as well as lectures
, hexagon-labs
, problem-sets
, and research-briefs
.--output-style flat
option writes wrapper .md
files next to their JSON with a permalink
that preserves existing public URLs under /sphys/course/<unit>/<type>/<slug>/
.{% if %}
checks over chained and
; avoid concat
with array literals (accumulate string + split
or filter with where_exp
).http://localhost:4000/
./cosmosintheclassroom
): run task “Jekyll: Serve GitHub Pages Mode” and open http://localhost:4000/cosmosintheclassroom/
.relative_url
for baseurl safety.