title: ".dotfiles"
description: "Cross-platform, signed, local-first dotfiles for macOS, Linux, and WSL — published at doc.dotfiles.io."
url: "https://doc.dotfiles.io"
baseurl: ""

# Jekyll renders this site from docs/ — see .github/workflows/pages.yml.
# Theme is the GitHub-hosted Cayman skin (zero-Gemfile setup); switch to
# `remote_theme: just-the-docs/just-the-docs` later if a richer
# navigation/search UX is wanted (requires plugin allowlist update on
# GH Pages side).
theme: jekyll-theme-cayman

plugins:
  - jekyll-relative-links
  - jekyll-seo-tag
  - jekyll-sitemap
  - jekyll-redirect-from
  # Renders `README.md` as the directory index where present (matches
  # the GitHub-browse experience for users coming from the repo links
  # in docs/index.md).
  - jekyll-readme-index

relative_links:
  enabled: true
  collections: true

# Treat *.md as pages so cross-page links work without trailing-slash
# kludges; include CNAME so the published artifact preserves it across
# workflow deploys.
include:
  - CNAME
  - .well-known

exclude:
  - "*.tmpl"
  - "manual/_toc.yml"
  - "scripts/"
  - "Gemfile"
  - "Gemfile.lock"
  - "vendor/"

markdown: kramdown
kramdown:
  input: GFM
  syntax_highlighter: rouge
  hard_wrap: false

# Many of our docs include chezmoi/Go-template snippets like
# `{{ .variable }}` inside fenced code blocks. Liquid runs BEFORE
# kramdown sees those fences and would try to resolve the placeholders
# as Liquid expressions (silently dropping them from the output). Each
# .md file therefore carries explicit `render_with_liquid: false` in
# its frontmatter — a site-wide default in this block was not honored
# reliably, so we keep the kill-switch per-page instead.
defaults:
  - scope:
      path: ""
    values:
      layout: default
