Project Structure¶
Overview of the Zer0-Mistakes theme directory layout and file organization.
Root Directory¶
zer0-mistakes/
βββ _config.yml # Production Jekyll configuration
βββ _config_dev.yml # Development overrides
βββ Gemfile # Ruby dependencies
βββ Gemfile.lock # Locked dependency versions
βββ docker-compose.yml # Docker development environment
βββ Makefile # Build automation shortcuts
βββ README.md # Project overview
βββ CONTRIBUTING.md # Contribution guidelines
βββ LICENSE # MIT license
βββ index.html # Site homepage
Core Directories¶
_layouts/¶
Page templates that define the structure of different page types:
_layouts/
βββ root.html # Base HTML structure (doctype, html, head, body)
βββ default.html # Main wrapper with header, footer, sidebar
βββ home.html # Homepage layout
βββ journals.html # Blog post layout
βββ collection.html # Collection index pages
βββ landing.html # Full-width landing pages
βββ category.html # Category archive pages
βββ tag.html # Tag archive pages
βββ stats.html # Statistics dashboard
_includes/¶
Reusable HTML components organized by function:
_includes/
βββ core/ # Essential page structure
β βββ head.html # <head> section with meta, CSS, scripts
β βββ header.html # Site header and main navigation
β βββ footer.html # Site footer
β βββ scripts.html # JavaScript includes
βββ content/ # Content enhancement
β βββ giscus.html # Comments integration
β βββ toc.html # Table of contents
β βββ seo.html # SEO meta tags
β βββ ...
βββ analytics/ # Tracking scripts
β βββ posthog.html
β βββ google.html
βββ navigation/ # Navigation components
β βββ sidebar.html
β βββ breadcrumbs.html
β βββ pagination.html
βββ components/ # Feature-specific
βββ mermaid.html
βββ mathjax.html
βββ ...
_sass/¶
SCSS stylesheets:
_sass/
βββ core/ # Core theme styles
β βββ _variables.scss
β βββ _base.scss
β βββ ...
βββ custom.scss # User customizations
βββ notebooks.scss # Jupyter notebook styles
assets/¶
Static files served directly:
assets/
βββ css/
β βββ main.scss # Main stylesheet (imports _sass/)
βββ js/
β βββ main.js
β βββ ...
βββ images/
βββ ...
pages/¶
Content collections:
pages/
βββ _posts/ # Blog posts (date-prefixed)
βββ _docs/ # User documentation
βββ _quickstart/ # Quick start guides
βββ _about/ # About pages
βββ _notebooks/ # Jupyter notebooks
βββ index.html # Pages index
βββ blog.md # Blog listing
βββ categories.md # Category listing
βββ tags.md # Tag listing
βββ ...
docs/¶
Developer documentation (this directory):
docs/
βββ README.md # Documentation hub
βββ architecture/ # Codebase architecture
βββ systems/ # Automation systems
βββ implementation/ # Feature implementation details
βββ development/ # Development guides
βββ releases/ # Release notes
βββ configuration/ # Configuration guides
βββ templates/ # Documentation templates
βββ archive/ # Historical documentation
scripts/¶
Build and automation scripts:
scripts/
βββ release # Release automation
βββ build # Gem building
βββ lib/ # Shared script libraries
β βββ common.sh
β βββ version.sh
β βββ ...
βββ test/ # Test scripts
_data/¶
Jekyll data files:
_data/
βββ navigation/ # Navigation configurations
β βββ main.yml
β βββ docs.yml
β βββ ...
βββ authors.yml # Author information
βββ ui-text.yml # UI strings
βββ ...
_plugins/¶
Custom Jekyll plugins:
Build Output¶
Docker Configuration¶
docker/
βββ Dockerfile # Container definition
βββ config/ # Docker-specific configs
βββ README.md
Distribution¶
File Naming Conventions¶
| Type | Convention | Example |
|---|---|---|
| Posts | YYYY-MM-DD-title-slug.md |
2026-01-24-getting-started.md |
| Docs | kebab-case.md |
quick-start.md |
| Layouts | lowercase.html |
journals.html |
| Includes | kebab-case.html |
table-of-contents.html |
| Sass | _partial.scss |
_variables.scss |
| Scripts | kebab-case or snake_case.sh |
release, test_suite.sh |