homelab-codex-ws/.gitignore
oskar 65093815a8 feat(kb): generator publicznej warstwy KB (gen_pages.py)
scripts/kb/gen_pages.py — kb/**/*.md -> build/kb-site/ (index.html pogrupowany
per type + strona na dokument). Renderer markdown na samej bibliotece
standardowej, wzorowany na ~/narty-2027/saalbach-kb/gen_pages.py; parser
frontmattera wspoldzielony z check_okf.py, zeby lint i generator widzialy
frontmatter tak samo.

Kwalifikacja fail-closed: publikowany jest wylacznie dokument z jawnym
`visibility: public`. Brak frontmattera, niepoprawny YAML, brak pola albo inna
wartosc = private. Linki do dokumentow nieopublikowanych nie sa renderowane jako
linki — zostaje etykieta z dopiskiem [private]; render_inline ma druga bramke
(linkuje tylko http/mailto/kotwice/.html), wiec martwy odnosnik nie ma jak
przeciec na strone.

BASE_URL jest parametrem (--base-url, domyslnie https://kb.okit.pl) i trafia do
<link rel="canonical">. Stopka kazdej strony: data generacji + git rev-parse
--short HEAD.

check_okf.py: EXCLUDE_DIRS = ("build",) — wyjscie generatora nie jest zrodlem
i nie podlega lintowi. build/ dopisany do .gitignore.

Uruchomione lokalnie: 150 dokumentow kb/, 10 public, 140 pominietych.
2026-08-04 17:57:15 +02:00

43 lines
603 B
Plaintext

# Environment variables
.env
*.env
!*.env.example
# ESPHome secrets
secrets.yaml
!secrets.yaml.example
# IDE artifacts
.idea/
.vscode/
*.swp
*.swo
# Python
__pycache__/
*.py[cod]
*$py.class
venv/
.venv/
*.egg-info/
packages/*/build/
jobs/*/build/
# wyjscie generatorow (scripts/kb/gen_pages.py -> build/kb-site/) — artefakt, nie zrodlo
build/
# Tools
.aider*
.codex
# worktree task marker created by scripts/dev/agent.sh new — must stay untracked per worktree
.agent-task
# OS files
.DS_Store
Thumbs.db
# Runtime data (should live outside repo, but adding just in case)
data/
logs/
temp/
tmp/