Run this once after cloning, or any time dependencies change. Requires ruby, bundle, node, and npm to be installed.
./scripts/setupThis installs Ruby gems via Bundler, installs Node packages via npm, and compiles the JS assets under assets/js/dist/.
./scripts/runStarts Jekyll at http://localhost:4000 with LiveReload and draft posts enabled. Checks that deps are installed and assets are built before starting — if anything is missing it will point you back to ./scripts/setup.
This now runs with JEKYLL_ENV=development explicitly so local authoring mode is unambiguous.
./scripts/run-prodStarts Jekyll locally with JEKYLL_ENV=production and drafts disabled so rendered output matches the production environment much more closely.
./scripts/testDoes a production Jekyll build and runs htmlproofer to validate links and HTML.
Use this when you want the closest match to the GitHub Pages build pipeline.
Interactive PyScript editor snippets are stored in _data/python_training_editors.yml and rendered through _includes/embed/python-training/python-editor.html.
This keeps starter code out of raw inline <script type="py-editor"> tags so production HTML processing does not accidentally rewrite editor whitespace.
If you only need to rebuild JS assets (e.g. after pulling changes):
./scripts/buildgit add .
git commit -m "Commit message"git switch --create my-changes master
git push -u origin my-changesgh pr create --base master --head my-changes --fill
gh pr status
gh pr merge 6 --merge --delete-branchgit switch master
git branch -d my-changes