Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7d5b7a3e14 | |||
| d5630b0df9 | |||
| 68a4f9544c |
@@ -5,24 +5,12 @@
|
|||||||
**Stack:** Static HTML · Tailwind CSS · Vanilla JS
|
**Stack:** Static HTML · Tailwind CSS · Vanilla JS
|
||||||
|
|
||||||
---
|
---
|
||||||
## BLOG POSTS
|
|
||||||
Blog posts live in `blog.json` — do not create separate backup files.
|
|
||||||
To add a blog post customize this command
|
|
||||||
jq '.arrays[0] = [$NEW_JSON] + .arrays[0]' blog.json > tmp.json && mv tmp.json blog.json
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Repository Rules
|
## Repository Rules
|
||||||
- Do not touch this readme
|
|
||||||
- Keep the seperation of Site and the blogposts in blog.json
|
- Blog posts live in `blog.json` — do not create separate backup files.
|
||||||
Example of JSON structure for blog.json
|
- No backup files in the repo.
|
||||||
{
|
- Update this README with every commit.
|
||||||
"area": "Transparency",
|
|
||||||
"title": "Every Peso on the Page: Ana's Ledger Story",
|
|
||||||
"teaser": "<p>Ana replaced five notebooks with a four-stop impact ledger and now answers donor questions in seconds.</p>",
|
|
||||||
"content": "<h3>Every peso needs a map</h3>\n<p>Ana used to juggle five notebooks and still felt blind when a donor asked where their coin landed.</p>\n<h3>Pressure points</h3>\n<p without late nights.</p>\n",
|
|
||||||
"date": "2026-03-22"
|
|
||||||
},
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -38,6 +26,22 @@ Example of JSON structure for blog.json
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## CI Checks (required on every push)
|
||||||
|
|
||||||
|
- **HTML lint** — valid markup, no broken anchors
|
||||||
|
- **JS lint** — no errors, no `console.error` left in production paths
|
||||||
|
- **Tailwind build** — `npx tailwindcss -i ./src/input.css -o ./assets/site.css --minify` must exit 0
|
||||||
|
- **Corporate design compliance:**
|
||||||
|
- No CSS gradients — `gradient`, `bg-*-gradient`, `linear-gradient`, `radial-gradient` are forbidden
|
||||||
|
- No CSS animations or keyframes — `animate-*`, `@keyframes`, transform-based `hover:translate-*` are forbidden
|
||||||
|
- No blur or glassmorphism effects — `backdrop-blur`, `backdrop-filter` are forbidden
|
||||||
|
- Colors must use the approved brand palette only: `brand-ink · brand-primary · brand-accent · brand-sunrise · brand-emerald · brand-snow · brand-smoke`
|
||||||
|
- Images must be served from `odoo4projects.com`, `images.unsplash.com`, or local `assets/`
|
||||||
|
- **Accessibility** — heading hierarchy (one `<h1>` per page), `alt` on all images, sufficient contrast (WCAG AA)
|
||||||
|
- **Performance budget** — total page weight ≤ 200 KB (excluding cached fonts); critical render path ≤ 1 s on fast 3G
|
||||||
|
- **SEO** — `<title>`, `<meta name="description">`, `<h1>`, canonical `<link>`, and JSON-LD structured data must be present
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Languages
|
## Languages
|
||||||
|
|
||||||
@@ -48,3 +52,9 @@ Example of JSON structure for blog.json
|
|||||||
| `de` | Deutsch |
|
| `de` | Deutsch |
|
||||||
|
|
||||||
All UI strings are managed via the inline `translations` object in `index.html`.
|
All UI strings are managed via the inline `translations` object in `index.html`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Focus Keywords
|
||||||
|
|
||||||
|
`NGO donor management` · `transparent donations` · `Odoo for NGOs` · `donor communication` · `minimal admin for charities`
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 192 KiB |
Reference in New Issue
Block a user