A web site framework to make it easier to make tutorial content for scientific and technical topics.
Go to file
welsberr 66378d938f Refine TalkOrigins POC navigation and resources 2026-04-28 19:05:36 +00:00
docs Add multi-theme site framework and notebook pattern 2026-04-28 17:47:08 +00:00
examples Refine TalkOrigins POC navigation and resources 2026-04-28 19:05:36 +00:00
scisiteforge Refine TalkOrigins POC navigation and resources 2026-04-28 19:05:36 +00:00
scripts Refine TalkOrigins POC navigation and resources 2026-04-28 19:05:36 +00:00
templates Refine TalkOrigins POC navigation and resources 2026-04-28 19:05:36 +00:00
tests Refine TalkOrigins POC navigation and resources 2026-04-28 19:05:36 +00:00
theme Refine TalkOrigins POC navigation and resources 2026-04-28 19:05:36 +00:00
.gitignore Add multi-theme site framework and notebook pattern 2026-04-28 17:47:08 +00:00
LICENSE Add theme, templates, docs, license 2025-10-15 02:49:05 -04:00
README.md Add multi-theme site framework and notebook pattern 2026-04-28 17:47:08 +00:00

README.md

SciSiteForge

A lightweight, responsive, static-site framework for open educational resources in science.

🎯 Purpose

This repository provides a reusable foundation for sites like evo-edu.org, www2.talkorigins.org, and pandasthumb.net, featuring:

  • Mobile-first responsive design
  • Modular content loading (HTML fragments)
  • Language-switching support for multilingual static trees
  • Integrated app-card and notebook-section templates
    • Intended to host JavaScript web apps -- With study guides, alignment documents, reading (links to notebook sections)
  • Bibliography rendering (journal style + BibTeX)
  • Multiple theme presets, including:
    • evo-edu
    • talkorigins-modern
    • pandasthumb
  • Optional content bridges for doclift, GroundRecall, Didactopus, and CiteGeist
  • A generic notebook pattern for topic-level study modules that combine goals, apps, source-derived sections, and bibliographies. See docs/NOTEBOOKS.md
  • Optional translation tooling can use local GenieHive LLM endpoints. See docs/GENIEHIVE_TRANSLATION.md

🛠️ Features

  • Vanilla HTML/CSS/JS (no heavy frameworks)
  • Lazy-loaded sections for performance
  • Accessible navigation and UI
  • Offline-compatible (no external dependencies)
  • Bibliography content per section/subsection
    • Based on Bibtex
    • Renders to a journal style ('Evolution' is the sole style so far)
    • Loads bibliography from host on demand

📂 Structure

/framework
├── theme/              # Shared assets plus theme presets
│   └── themes/        # Shipped theme variants
├── templates/          # Reusable HTML snippets
├── docs/               # Usage guide and examples
├── scripts/            # Language translation script and example glossary 
└── LICENSE             # MIT License

🧩 How to Use

  1. Clone this repo
  2. Choose a theme preset and optional content sources in site.json
  3. Build with scripts/build.py
  4. Use main.js for dynamic section loading and language switching

Use the talkorigins-modern preset as the proving ground for the www2.talkorigins.org modernization line.

📜 License

MIT — free to use, modify, and redistribute.

AI Disclosure

This code and documentation was primarily provided by Alibaba's Qwen3 Max generative AI model with prompting by Wesley R. Elsberry.

Comments

I've run web sites since 1995, and some of the most fraught and trying times I've experienced are when a site gets hacked due to vulnerabilities in dynamic content. So one goal here is to provide content that is responsive and looks to some extent dynamic, while the content itself is in static files that have no modification due to operations in the website itself. I hope this reduces the attack surface considerably, and also should make it easier to simply restore from a good backup in case of a problem and carry on. The bibliography is meant to be targeted to topics, but not require a database to obtain the correct bibliography items to display. Content folding with lazy-loading aims to prevent pages from growing in size without bound, and provide modularity in collaboration. Models, programs, and simulations are meant to be implemented in a browser friendly form, either JavaScript, WebGL, or similar, so that processing takes place client-side, preventing heavy loads on servers. The current model of content I am pursuing with this is to have a site landing page, a collection of web apps for a topic, and a 'notebook' on that topic that includes didactic material sufficient to ground a naive user in the relevant concepts that the models, programs, and simulations address.

The other major feature here is the architecture to support multiple languages. The core framework can present static language trees and switch between covered locales without requiring a translation backend. Optional translation tooling can use locally-hosted multilingual large language models routed through GenieHive; see docs/GENIEHIVE_TRANSLATION.md for that separate client-side configuration.

This came together in a hurry, but I hope that other people may find some utility in it to aid in disseminating domain knowledge they and their collaborators may have.

Wesley R. Elsberry, 2025-10-14