Skip to article
SplatWorks Wiki
Read in your language
Technical and updates
Source

Maintaining the SplatWorks Wiki

The SplatWorks Wiki is the public current documentation reference. Original guide and policy URLs remain valid and use the shared wiki navigation.

Edit the source, then rebuild

  • Edit HTML articles at their existing guides/, legal/, or pages/ paths. District classroom, compliance overview, and licensing articles live in wiki/.
  • Edit technical Markdown in docs/. scripts/build-support-wiki.py renders its registered articles into wiki/; do not edit those generated HTML files.
  • Edit docs/district-selfhost.md for installation instructions, then run scripts/build-district-guide.py. The Quick Start form remains in selfhost/district/quickstart.html.
  • Edit legal/terms-privacy.html for the shared security, privacy and terms policy. Retention/provider tables are rendered from their data/privacy-*.json registers by scripts/policy_content.py.
  • Former policy URLs, including the combined packet, are generated compatibility copies of that article, with production redirects to the canonical URL. Do not edit those copies. data/policy-legacy-links.json preserves old fragments; keep those aliases when changing headings.
  • Specialized agreement templates, the DPA Register, Google OAuth disclosure, accessibility statement, local notice builder and district review worksheet remain optional references. Do not concatenate them back into a second policy packet.
  • Update the title, description, and category registry in scripts/build-support-wiki.py when adding a public reference. Historical release notes and development roadmaps retain their context; they are not current setup instructions.

Install the build dependency with python3 -m pip install markdown-it-py in a development virtual environment. Run:

python3 scripts/build-district-guide.py
python3 scripts/build-support-wiki.py
npx playwright test tests/support-wiki.spec.js tests/district-quickstart.spec.js

The wiki generator writes shared static sidebar navigation, article outlines, generated technical pages, the policy packet, and assets/js/support-index.js. Search matches all entered words across titles, descriptions, and full article text, ranking title matches first. It runs in the browser without a search service, tracking, or API credentials. Articles and topic links remain readable without JavaScript. Markdown source is preserved for offline use and repository review.

Article illustrations

Guide images preserve their complete aspect ratio on desktop and mobile. The generator adds the decorative assets/brand/splatworks-school-guides.png hero to wiki and guide articles that have no image, excluding licensing and privacy policy sections. Do not add that generated image to Markdown; rebuilding inserts it once. See artwork provenance for its generation prompt.

Verify and publish

Check local links, source-to-HTML consistency, mobile navigation, keyboard access, search, and print. Keep licensing notices and agreement execution status accurate. Separate shipped behavior from proposals and district procedures; never label documentation or an unsigned template as a compliance certification.

Commit generated files with their sources. Refresh downloadable packages after changing bundled setup instructions. Verify the public wiki, an old guide URL, a deep-linked search, download checksums, and the separately maintained mGuhlin.org article references after deployment.

Cached updates

The whiteboard offline worker checks LayoutSplat modules and wiki CSS/index files against the network before using a cached copy. LayoutSplat also updates an existing root worker and offers a reload button; it never reloads an active publication automatically. Refreshing cached application code does not clear project storage. Use LayoutSplat File → Clear saved browser data separately when erasing a draft.

Shared site navigation

The five top-level items are Apps (including Whiteboard), SplatWorks, Blog, Guestbook, and Wiki. scripts/site_navigation.py defines the links; scripts/build-site-navigation.py applies them to public site headers. The Wiki builder runs this step automatically. Typing Games belongs in the Games directory. Educator resources belong in the Wiki’s For educators section. Do not add independent copies of the old Support, Technical, or For Educators top menus.

Ecosystem and tool naming

SplatWorks is the ecosystem. DrawSplat refers to the whiteboard. Main creative and productivity tools use their own names: ConceptSplat, MarkdownSplat, DiagramSplat, QuizSplat, RubricSplat, and SketchSplat VR. Keep games and small classroom controls descriptive. Update the registry, app headings/locales, cross-links, and feature-reference source together; retain former names as search aliases. Do not rename URLs, native format markers, browser storage keys, or backend endpoints for a branding change.

The five office apps use GPL-3.0-only; the ecosystem brand does not relicense DrawSplat or standalone tools. Historical releases, archive filenames, and signed proposals retain their context and approved scope. New versioned packages must be rebuilt before claiming that existing downloads contain current naming or policies. The current source archive always follows the repository.

After a privacy change, rebuild the combined packet and verify the local notice builder, component/service disclosures, backend-specific controls, and agreement register status. Preserve signed originals; a naming change never establishes a district signature or expands an agreement.