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.
43 lines
603 B
Plaintext
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/
|