Directory Structure
HydeJS conforms to standard Jekyll directory conventions, enabling you to migrate existing sites with ease.
Directory Layout
Here is the standard folder layout of a HydeJS project:
my-blog/
├── _config.yml # Global configurations and metadata
├── package.json # Node.js dependencies
├── index.md # The site landing page
├── about.md # Standalone page
├── _posts/ # Blog post collections
│ └── 2026-06-18-welcome.md
├── _layouts/ # Liquid page template structures
│ ├── default.html
│ └── post.html
├── _includes/ # Reusable template components (partials)
│ ├── header.html
│ └── footer.html
├── _data/ # Global data files (JSON and YAML)
│ └── navigation.yml
├── assets/ # Static style files, scripts, images
│ ├── css/
│ │ └── style.scss # Automatically compiled to style.css
│ └── images/
└── _site/ # Compiled output distribution (gitignored)
Directories Explained
_config.yml
Contains global metadata, site titles, author details, and advanced compilers settings (such as custom pagination thresholds or collections keys).
_posts/
Contains blog posts written in Markdown. Filenames must follow the Jekyll date convention: YYYY-MM-DD-title-slug.md. HydeJS automatically extracts the post date and title slug from the filename if they are missing in the front-matter.
_layouts/
Holds the Liquid template shells that wrap page contents. Layouts can be nested recursively. For example, a post.html layout can designate layout: default to nest inside the global wrapper.
_includes/
Contains reusable HTML or Liquid snippets. You can embed these snippets in layouts or pages using the {% include <filename> %} tag.
_data/
Allows you to store custom datasets in YAML or JSON format. For example, storing navigation.yml exposes its contents in templates under the site.data.navigation namespace.
assets/
Contains public files. SASS/SCSS files written inside assets are compiled to CSS on build. Standard assets (like PNGs, PDFs, or JavaScript files) are copied directly to the output folder.