Jekyll site layer for Amorphous Dreams content, with submodule-driven books and a vendored theme pipeline.
vault/: content submodules (books, chapters, media)_submodules/: infrastructure submodules (gruv-poole,game-icons)_vendor/: generated vendored theme source from_submodules/gruv-poole
- Publishable content is markdown in
vault/**. - Required frontmatter for published pages:
layouttitlepublished: true
- Main SDM navigation page:
vault/synthetic-dream-machine.md - Main Ars Magica navigation page:
vault/Ars-Magica.md
- Canonical active layouts:
_layouts/gruv_default_adapter.html_layouts/gruv_book_page_adapter.html_layouts/gruv_vault_index_adapter.html
- Compatibility aliases:
_layouts/default.html_layouts/book_page.html_layouts/vault_index.html
- Base theme source:
_submodules/gruv-poole - Vendored sync target:
_vendor/gruv-poole - Base theme entrypoint:
assets/theme-gruv-poole.scss - Site overrides:
assets/theme-overrides.css - Head include order: base first, overrides second (
_includes/gruv_adapter_head.html)
- Upstream icon source:
_submodules/game-icons - Curated runtime icon subset:
assets/icons/game-icons - Shared icon include:
_includes/game_icon.html - Consolidated attribution page:
/credits/(credits.md)
- Navigation source of truth:
_data/nav.yml - Header context is selected by URL prefix (
context_map) or page override (header_nav_context) - SDM navigation is organized as two categories:
Synthetic Dream Machine: canonical SDM books by Luka RejecAmorphous Dreams: Elyncia and FTLS in-development material
- Ars Magica navigation is organized by Open Ars release families and includes a separate errata/legal layer.
# Install dependencies locally
make deps
# Sync vendored gruv-poole theme source
make vendor-gruv-poole
# Build site
make build
# Serve locally
make servemake build and make serve run make vendor-gruv-poole first, so local output matches CI/theme source state.
# 1) Sync submodules
git submodule update --init --recursive --remote --rebase
# 2) Rebuild vendored theme source
make vendor-gruv-poole
# 3) Verify site build
make build# After upstream content repo moves forward
git submodule update --remote --rebase
git add vault/<submodule-folder>
git commit -m "Update <submodule-folder> submodule"# Pull latest theme/icon infra
git submodule update --remote --rebase
git add _submodules/gruv-poole _submodules/game-icons
git commit -m "Update infrastructure submodules"- Published markdown should include:
layout: gruv_book_page_adapter(or another valid active layout)title: ...published: true
- SDM library page excludes
_agentsand_todofrom rendered navigation.
# Add content submodule
git submodule add <repository-url> vault/<folder-name>
# Add infrastructure submodules
git submodule add https://github.com/joshuafontany/gruv-poole.git _submodules/gruv-poole
git submodule add https://github.com/joshuafontany/game-icons.git _submodules/game-icons
# Refresh all submodules to latest upstream refs
git submodule update --remote --rebaseIf bundle install tries writing to /var/lib/gems and fails, use a local bundle path:
bundle config set path vendor/bundle
bundle installGitHub Actions deploys automatically on push to main.
Build pipeline runs:
actions/checkoutwith submodulesmake vendor-gruv-poolebundle exec jekyll build