Updating readme.
Some checks are pending
lint / runner / vale (push) Waiting to run

This commit is contained in:
g_it 2026-04-07 01:37:09 +02:00
commit 26b7cc782e
Signed by untrusted user who does not match committer: g_it
GPG key ID: A2B0A7C06A054627
36 changed files with 412 additions and 281 deletions

View file

@ -1,4 +1,4 @@
<!-- markdownlint-disable MD013 -->
<!-- markdownlint-disable MD040 -->
# Site
@ -13,3 +13,61 @@ This repo contains the files for maintaining my personal website: [gugulet.hu](h
3. Activate the virtual environment: `source .venv/bin/activate`
4. Install all the packages: `pip install -r requirements.txt`
5. Activate direnv: `direnv allow`
## Architecture
```
content/ Source content (Markdown, assets, templates)
assets/css/ Per-page stylesheets
assets/js/ JavaScript (GSAP animations, loader, protection)
assets/fonts/ Custom fonts (ttf)
assets/media/ Images, favicons
overrides/ Jinja2 templates (extends Zensical theme)
index.md Homepage
resume.md Resume page
deploy/ Generated static site (build output)
zensical.toml Build config (site metadata, extensions, theme)
minify.py Post-build CSS/JS/HTML minification
Dockerfile Multi-stage build (Zensical builder + Caddy server)
```
## Build and serve
```bash
# Development
source .venv/bin/activate
zensical serve --watch
# Production build
zensical build
rm ./deploy/sitemap.xml
python minify.py
# Docker
docker build -t site:latest .
docker run -p 80:80 site:latest
```
## Key conventions
- **Zensical** (MkDocs-based) static site generator with `zensical.toml` as single config source.
- **Markdown + YAML frontmatter** for all content. Each page declares its template, extra_css, and extra_js.
- **Jinja2 templates** in `content/overrides/` extend the Zensical base theme.
- **GSAP + ScrollTrigger** for homepage scroll animations. No other JS frameworks.
- **Per-section typography:** serif (Words), monospace (Technical), display (Visuals).
- **CSS custom properties** for theming. Responsive sizing via `clamp()` and viewport units.
- **Post-build minification** via `minify.py` (terser for JS, clean-css for CSS, inline for HTML). Preserves `<pre>`/`<code>` blocks.
- **No database.** Fully static output served by Caddy.
- **Content protection:** `protect.js` prevents right-click and copying.
- **Anti-AI crawling:** meta robots tag with `noai, noimageai`.
## CI/CD
GitHub Actions runs Vale prose linting and MegaLinter on push/PR to main. Fail on errors.
## Dependencies
```bash
pip install -r requirements.txt # Python (Zensical, Jinja2, pymdown-extensions)
npm install -g terser clean-css-cli # Node (minification)
```