diff --git a/.vale.ini b/.vale.ini index 120812f..d9998ee 100755 --- a/.vale.ini +++ b/.vale.ini @@ -1,6 +1,6 @@ StylesPath = .vale MinAlertLevel = suggestion -Packages = https://git.gugulet.hu/g_it/vale/raw/branch/main/gugulet-hu.zip +Packages = https://gugulet.hu/technical/git/g_it/vale/raw/branch/main/gugulet-hu.zip [content/**/*.md] gugulet-hu = YES diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..1eb8e05 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,61 @@ +# Site + +Personal portfolio website at gugulet.hu. Three sections: Words, Visuals, Technical. + +## 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 `
`/`` 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)
+```
diff --git a/content/robots.txt b/content/robots.txt
index c26d83b..d996dc2 100755
--- a/content/robots.txt
+++ b/content/robots.txt
@@ -1,4 +1,7 @@
User-agent: *
Disallow: /
+User-agent: LinkedInBot
+Allow: /
+
Host: https://gugulet.hu
diff --git a/readme.md b/readme.md
index b92c4a6..910e95e 100755
--- a/readme.md
+++ b/readme.md
@@ -1,3 +1,5 @@
+
+
# Site
     
diff --git a/requirements.txt b/requirements.txt
index 6b60127..d9a3a3c 100755
--- a/requirements.txt
+++ b/requirements.txt
@@ -2,9 +2,9 @@ click==8.3.1
colorama==0.4.6
deepmerge==2.0
ghp-import==2.1.0
-griffe==2.0.0
-griffecli==2.0.0
-griffelib==2.0.0
+griffe==2.0.2
+griffecli==2.0.2
+griffelib==2.0.2
Jinja2==3.1.6
Markdown==3.10.2
MarkupSafe==3.0.3
@@ -17,11 +17,11 @@ mkdocstrings-python==2.0.3
packaging==26.0
pathspec==1.0.4
platformdirs==4.9.4
-Pygments==2.19.2
-pymdown-extensions==10.21
+Pygments==2.20.0
+pymdown-extensions==10.21.2
python-dateutil==2.9.0.post0
PyYAML==6.0.3
pyyaml_env_tag==1.1
six==1.17.0
watchdog==6.0.0
-zensical==0.0.27
+zensical==0.0.31
diff --git a/skills.md b/skills.md
new file mode 100644
index 0000000..06ed29b
--- /dev/null
+++ b/skills.md
@@ -0,0 +1,28 @@
+# Site
+
+Personal portfolio website for gugulet.hu. Showcases three domains: Words, Visuals, and Technical.
+
+## Stack
+
+- Python 3.13 / Zensical (static site generator)
+- Jinja2 templates
+- GSAP / ScrollTrigger (animations)
+- Markdown content with YAML frontmatter
+- CSS with custom properties and clamp() sizing
+- Docker / Caddy (production)
+- Vale (prose linting)
+- terser / clean-css-cli (minification)
+
+## Skills
+
+- Static site generation with Zensical/MkDocs
+- Jinja2 templating and template inheritance
+- GSAP scroll-driven animations with pinned timelines
+- Responsive typography with viewport units and clamp()
+- Per-section font strategies (serif, mono, display)
+- Post-build asset minification (CSS, JS, HTML)
+- Multi-stage Docker builds
+- Caddy web server configuration
+- GitHub Actions CI/CD (linting pipelines)
+- SEO and robots/sitemap management
+- Content protection (right-click/copy prevention)