SciSiteForge/README.md

98 lines
4.3 KiB
Markdown

# 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](docs/NOTEBOOKS.md)
- Optional translation tooling can use local GenieHive LLM endpoints. See
[docs/GENIEHIVE_TRANSLATION.md](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](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