98 lines
4.3 KiB
Markdown
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
|