Izar Jekyll documentation

Project structure

Where everything lives in Izar, and which files you'll edit.

Most people only edit _config.yml, the page files, _projects/ and _posts/.

izar-jekyll/
├── _config.yml          Your name, links, footer, contact form, colour scheme and switches
├── index.md             The home page: a list of sections
├── works.md             The Works page
├── notes.md             The Notes page
├── notes-tags.md        The Topics page: notes grouped by topic
├── contact.md           The Contact page
├── thank-you.md         Where visitors land after sending the form
├── 404.html             The "page not found" page
├── blocks.html          The /blocks/ catalogue of sections
├── _projects/           One file per project (Works)
├── _posts/              One file per note, named YYYY-MM-DD-title.md
├── _data/
│   ├── strings.yml      Every word the theme prints by itself
│   ├── blocks.yml       The list shown on /blocks/
│   └── examples/        The snippets shown on /blocks/
├── _layouts/
│   ├── default.html     The HTML shell every page uses
│   ├── home.html        Header, sections, footer
│   ├── page.html        The same, for Works, Notes and Contact
│   ├── post.html        One note
│   └── project.html     One project
├── _includes/
│   ├── sections/        One file per section type, with its fields listed at the top
│   ├── css/             All the styles, as plain CSS
│   │   ├── colors.css   The colour scales
│   │   ├── theme.css    The colour names the theme uses, light and dark
│   │   ├── scale.css    Type sizes, spacing, layout widths, fonts
│   │   └── sections/    One stylesheet per section type
│   ├── icons/           The icons (SVG)
│   ├── header.html      Name, menu, profiles, light/dark switch
│   └── footer.html      Closing call to action and profiles
├── assets/
│   ├── fonts/           JetBrains Mono (self-hosted)
│   ├── img/             Your pictures and the sharing image
│   └── favicon.svg
├── wrangler.jsonc       Settings for Cloudflare
└── Gemfile              For running the site on your computer

How a page is built

index.md, works.md, notes.md and contact.md have no text of their own. Their sections: list says which sections appear, in which order, with which words. The layout reads the list and renders each section from _includes/sections/<type>.html. Anything you write below the front matter is shown after the sections.

Only the CSS of the section types a page uses is added to it, and all the CSS sits inside the page. There’s no separate stylesheet to download.

Files that don’t go into your site

_config.yml tells Jekyll to leave out README.md, LICENSE, CREDITS.md, Gemfile, wrangler.jsonc and a few other files, so they never appear in _site/.