- TypeScript 47.2%
- Astro 34.4%
- JavaScript 13.2%
- HTML 5.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Der zuvor vorgeschlagene Name FORGEJO_PUBLIC_URL laesst sich in Forgejo gar nicht anlegen: Namen von Variablen und Secrets duerfen nicht mit FORGEJO_, GITEA_, GITHUB_ oder CI beginnen. Neu INSTANCE_PUBLIC_URL, gelesen aus vars statt secrets - eine Instanz-URL ist nichts Geheimes und gehoert zu den Variablen. Die Fehlermeldung im Checkout nennt den neuen Namen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
| astro-preset | ||
| ci | ||
| decap | ||
| layouts | ||
| lib | ||
| .gitignore | ||
| index.ts | ||
| package.json | ||
| README.md | ||
@studio/core
Gemeinsames technisches Fundament der Astro-Websites des Studios.
core wird nie direkt bearbeitet, um eine einzelne Site zu aendern. Alles, was
nur eine Site betrifft, gehoert in deren packages/ui. Faustregel: taucht in einer
Datei hier ein Markenname, eine Domain oder eine Farbe auf, ist sie am falschen Ort.
Inhalt
| Pfad | Zweck | Nutzung |
|---|---|---|
layouts/BaseLayout.astro |
HTML-Huelle, Meta-Tags, SEO, Open Graph, A11y-Preferences | Import |
lib/rich-text.ts |
Renderer fuer Markdown-Strings aus dem CMS | Import |
astro-preset/ |
Gemeinsame Astro- und TS-Basiskonfiguration | Import |
decap/config.template.yml |
Decap-Konfiguration fuer eine neue Site | Kopiervorlage |
decap/admin.template.html |
Decap-Einstiegspunkt /admin/ |
Kopiervorlage |
ci/deploy.forgejo.yml |
Build- und Deploy-Workflow | Kopiervorlage |
Kopiervorlagen sind bewusst keine Imports: Decaps config.yml und Forgejos
Workflow-Dateien sind statische Dateien, die zur Laufzeit bzw. vom Runner an einem
festen Pfad erwartet werden. Ein Import waere hier eine Abstraktion ohne Gegenwert.
Einbindung in eine Site
{
"dependencies": {
"@studio/core": "git+https://FORGEJO_HOST/OWNER/core.git#v1.0.0"
}
}
Version wird ueber Git-Tags gefuehrt (Variante A der Architekturskizze). Ein Update
in einer Site heisst: Tag in der package.json hochsetzen, npm install.
Tags werden von git push nicht automatisch mitgeschickt. Nach einem neuen Tag
also git push origin main --follow-tags - sonst schlaegt npm install in den
Sites mit "The git reference could not be found" fehl.
Damit npm ci in der CI ohne Zugangsdaten funktioniert, muss dieses Repo auf der
Forgejo-Instanz oeffentlich lesbar sein. Es enthaelt keine Geheimnisse. Bliebe
es privat, braeuchte jede Site zusaetzlich einen Read-Token im Deploy-Workflow,
etwa per git config --global url."https://<token>@host/".insteadOf "https://host/"
vor dem npm ci.
Versionierung
Git-Tags, semantisch:
- patch - Fehlerbehebung, Ausgabe unveraendert
- minor - neue optionale Prop oder neuer Slot, rueckwaertskompatibel
- major - geaenderte oder entfernte Prop, geaenderte HTML-Ausgabe
Nach jedem Tag: in den Site-Repos die Referenz hochsetzen und einen Build gegenpruefen, bevor deployt wird.