# =============================================================================
# config/site.yaml
# -----------------------------------------------------------------------------
# Configuration for the static-site generator (scripts/build_site.py) that turns
# the warehouse into a browsable website.
#
# TWO BUILDS, ONE GENERATOR:
#   - internal  -> a PRIVATE, local-only site that renders EVERYTHING for
#                  convenient browsing. It is gitignored and MUST NOT be
#                  deployed. Every page carries a visible "PRIVATE" banner.
#   - public    -> a gated build that emits ONLY notes that are
#                  publish: true AND visibility in {public-ready, published}
#                  AND pass scripts/sanitize_public.is_clean(). Everything else
#                  is skipped. This mirrors config/publish.yaml's gate.
#
# The generator reads these values for defaults; CLI flags (--mode/--out/
# --base-url/--clean) always override what is set here.
#
# YAML SUBSET (per SCHEMA.md §7): 2-space indent, block maps/seqs, plain/quoted
# scalars, booleans true/false, empty collections only as inline [] / {}. No
# anchors, flow maps, or block folding -- so the stdlib fallback parser in
# scripts/_vault.py can read this without PyYAML.
# =============================================================================

version: 1
updated: 2026-06-23

# --- Branding ----------------------------------------------------------------
title: KarnelVault
tagline: 개인 지식·스킬·프로젝트 맥락을 모아 새 프로젝트에 바로 활용하는 Knowledge OS.
author: KarnelLabs

# --- Theme -------------------------------------------------------------------
# Dark, docs-site aesthetic. `accent` tints links, headings underlines, active
# nav, and table headers. `dark` selects the dark palette (the only one shipped;
# left as a flag for future light-mode work).
theme:
  accent: '#7c9cff'
  dark: true

# --- Output locations (relative to repo root unless absolute) ----------------
# internal_out is gitignored (see .gitignore "Publish build artifacts" / _site).
# public_out lands under the export tree so it sits with other publish outputs.
internal_out: _site
public_out: 90_Public/exports/site

# --- Internal-mode zone selection -------------------------------------------
# Which content zones the INTERNAL build renders as dedicated page groups.
# (The PUBLIC build ignores this list -- it is governed purely by the publish
# gate: publish:true + public-ready/published + sanitize-clean.)
# Order here is also the left-sidebar nav order.
include_zones:
  - 30_Knowledge
  - 40_Skills
  - 70_Daily_Reports
  - 20_Raw_Sources
  - 50_Projects

# --- Base URL ----------------------------------------------------------------
# Prefix for generated links/asset hrefs. Empty means root-relative (good for
# `file://` browsing and most static hosts). Set to e.g. '/warehouse' if the
# public site is served from a sub-path. A single trailing slash is fine; the
# generator normalizes it.
base_url: ''

# --- Live catalog API --------------------------------------------------------
# The public skills pages fetch this (D1-backed Worker) at runtime, so newly
# published skills appear without rebuilding/redeploying the static site. Blank
# falls back to the build-time static render.
catalog_api: 'https://karnelvault-ingest.kang930211.workers.dev'

# --- Program download --------------------------------------------------------
# The top-right CTA points straight at the always-on R2 copy (served by the
# Worker), so a new EXE build is live the moment publish_catalog uploads it -
# no static redeploy needed.
download:
  enabled: true
  label: KLV 환경 컴파일러 다운로드
  href: 'https://karnelvault-ingest.kang930211.workers.dev/dl/KLV-env.zip'
  note: 'Windows · zip 풀고 KLV-env.exe 실행'
