Instructions for AI coding agents. For content guidelines, see GUIDELINES.md.
Public-facing website for Metal3 at https://metal3.io. Built with Jekyll static site generator, hosted on GitHub Pages.
| Directory | Purpose |
|---|---|
_posts/ |
Blog posts (dated markdown files) |
_layouts/ |
Jekyll page templates |
_includes/ |
Reusable HTML components |
_faqs/ |
FAQ entries |
assets/ |
Images, CSS, JS |
hack/ |
CI scripts (markdownlint, spellcheck, shellcheck) |
CI uses GitHub Actions. Run locally before PRs:
| Command | Purpose |
|---|---|
make lint |
Run all linters |
make serve |
Serve locally on port 4000 |
This repository uses pre-commit for automated checks.
Config in .pre-commit-config.yaml.
| Command | Purpose |
|---|---|
./hack/pre-commit.sh |
Run pre-commit in container |
pre-commit install |
Install hooks locally |
pre-commit run --all-files |
Run all hooks manually |
Hooks include: prettier (CSS/JS/JSON), black (Python), trailing whitespace, YAML/JSON validation, and merge conflict detection.
- Markdown: Config in
.markdownlint-cli2.yaml - Spelling: Custom dictionary in
.cspell-config.json - Links: Checked by lychee (
.lycheeignorefor exceptions)
New blog post: Create _posts/YYYY-MM-DD-title.md with frontmatter:
---
layout: post
title: "Post Title"
date: YYYY-MM-DD
author: "Your Name"
---When reviewing pull requests:
- Visual review - Preview locally with
make serve - Spelling - Add technical terms to
.cspell-config.json - Links - No broken links
- Images - Place in
assets/images/POST_TITLE/
- Run
make lintbefore committing - Update
.cspell-config.jsonfor new technical terms - Follow GUIDELINES.md for content style