This repository is a static browser playground for the Multilingual Programming Language. Keep changes small, local, and browser-first.
- Current playground release:
0.1.0 - Current aligned package:
multilingualprogramming0.6.0
When changing behavior, keep the playground aligned with the current target multilingualprogramming version documented in README.md.
index.html: page shell and static markupassets/playground.css: site stylingassets/main.js: browser bootstrapassets/editor.js: editor setup, language loading, example switchingassets/runtime.js: Pyodide execution, WAT generation, WASM executionassets/ui.js: tabs, split panes, status, share/clear helpersassets/theme.js: theme handlingassets/i18n.js: UI translationsassets/examples.js: shipped example programstools/check_release.py: release and metadata validationtools/check_examples.py: example executability validation.github/workflows/example-executability.yml: CI for example execution
- Preserve the browser-only deployment model. Do not add a server dependency unless explicitly requested.
- Keep the language selector in
index.html, the example maps inassets/examples.js, and the keyword source from../multilingual/multilingualprogramming/resources/usm/keywords.jsonaligned. - Prefer deriving supported-language behavior from the DOM or shared data instead of duplicating hardcoded language lists.
- Treat non-ASCII text in examples and translations as user-facing content. Do not normalize it away unless fixing a real encoding or parser issue.
- If copy, canonical URLs, or publish metadata change, review
sitemap.xml,robots.txt, andsite.webmanifest. - Prefer targeted fixes over broad rewrites. This repo is intentionally small.
Run these when relevant:
python tools/check_release.py --expected-date YYYY-MM-DDpython tools/check_examples.py
For UI-facing changes, also do a manual browser pass on:
- language switching
- example switching
- run / clear / share actions
- Python, WAT / WASM, and Rust tabs
- theme toggle
- keyboard navigation
- narrow-screen layout
If the change is user-visible or release-significant, update:
CHANGELOG.mdREADME.mdRELEASE.md
In change summaries or PR notes, include:
- what changed
- why it changed
- how it was validated
- whether release docs or metadata were updated