dist-newstyle/
_site/
_cache/
.DS_Store
.env
# Defense-in-depth: the auto-snapshot in `make build` stages content/
# wholesale. These patterns prevent any stray credential-shaped file
# (dropped accidentally during writing) from being staged + pushed.
# To intentionally commit one of these (rare), use `git add -f`.
**/.env
**/.env.*
**/*.env
**/*.key
**/*.pem
**/*.p12
**/*.pfx
**/id_rsa*
**/id_dsa*
**/id_ecdsa*
**/id_ed25519*
**/.netrc
**/.npmrc
**/.pypirc
**/credentials
**/credentials.json
**/credentials.yaml
**/credentials.yml

# Editor backup/swap files
*~
*.swp
*.swo

# Python bytecode caches
**/__pycache__/
*.pyc
*.pyo

# LaTeX build artifacts (sitewide — covers paper/, any future TeX sources)
*.aux
*.bbl
*.blg
*.brf
*.fdb_latexmk
*.fls
*.glo
*.gls
*.idx
*.ilg
*.ind
*.lof
*.lot
*.nav
*.out
*.snm
*.synctex.gz
*.toc
*.vrb
# PGF/TikZ scratch outputs
pgftest*.pdf
pgftest*.log
pgftest*.aux
# LaTeX run logs (scoped to paper/ — bare *.log would be too broad sitewide)
paper/*.log

# Data files that are generated at build time (not version-controlled)
data/embeddings.json
data/similar-links.json
data/backlinks.json
data/build-stats.json
data/build-start.txt
data/last-build-seconds.txt
data/semantic-index.bin
data/semantic-meta.json

# IGNORE.txt is for the local build and need not be synced.
IGNORE.txt

# Working notes / planning docs at the repo root (not site content).
content/drafts/
checklist.md
README.profile.md
README.arcana.md
README.simd.md
README.icd.md
README.neuropose.md

# CV/résumé build pipeline (YAML → Jinja → xelatex). The canonical PDFs
# live under static/ and ship with the site; the pipeline itself is
# kept locally for regeneration but not version-controlled here.
yaml-source/
# Handover bundle (archived locally for reference; not part of the site).
levineuwirth_handover.zip

# Model files for client-side semantic search (~22 MB binary artifacts).
# Download with: make download-model
static/models/

# Vendored PDF.js viewer (~18 MB uncompressed, pinned in tools/download-pdfjs.sh).
# Download with: make download-pdfjs
static/pdfjs/

# Vendored Leaflet + leaflet.markercluster (~150 KB total, pinned in
# tools/download-leaflet.sh). Used by the /photography/map/ page only.
# Download with: make download-leaflet (runs as part of `make build`).
static/leaflet/

# Generated WebP companions (produced by tools/convert-images.sh at build time).
# To intentionally commit a WebP, use: git add -f path/to/file.webp
static/**/*.webp
content/**/*.webp

# Photography sidecars (produced by tools/extract-exif.py and
# tools/extract-palette.py at build time; consumed by Hakyll). Recreated
# from the photo file on every `make build`, so they don't belong in
# version control — committing them would just produce churn.
content/photography/**/*.exif.yaml
content/photography/**/*.palette.yaml

# Image-dimension sidecars (produced by tools/extract-dimensions.py at
# build time; consumed by build/Filters/Images.hs to emit width / height
# attrs on every <img> for CLS prevention). Same churn-avoidance reasons
# as the photography sidecars above; recreated on every `make build`.
**/*.dims.yaml

# Photography: defense-in-depth — refuse to commit RAW or oversize
# originals. Per PHOTOGRAPHY.md, only ≤2400px web-optimized JPEGs are
# committed; originals stay outside the repo. To intentionally commit
# one of these formats (rare), use `git add -f path/to/file`.
content/photography/**/*.cr2
content/photography/**/*.cr3
content/photography/**/*.nef
content/photography/**/*.arw
content/photography/**/*.dng
content/photography/**/*.raf
content/photography/**/*.orf
content/photography/**/*.tif
content/photography/**/*.tiff
content/photography/**/*.psd