Branding and site setup
This project uses a whole-site configuration data file, stored in _data/content.yml. This file contains instructions for branding and for metadata defaults.
Note: If you know Jekyll, you know that normally these site-wide configurations are stored in
_config.yml. I have decided to keep_config.ymlonly for developers who know what their doing. Whereascontent.ymlcan be changed relatively safely by non-developers.
What does the file control?
- Home page text snippets (for example
home_text) - Branding:
- site name
- tag line
- primary/secondary/accent colors
- link colors (
link_color,link_hover_color,link_visited_color) - font family
- Organization details:
- name
- URL
- logo path
- SEO defaults:
- default description
- default image
- twitter card type
Why it matters
Values from _data/content.yml are used by templates and metadata includes, including:
_includes/head.html_includes/navigation.html_includes/footer.html
Keeping this file accurate ensures consistent branding and high-quality metadata across the entire site.
Branding colors must also remain accessible: configured text/link colors are validated against a white background using WCAG 2.2 AA contrast thresholds.
Recommended update process
- Edit
_data/content.yml. - Build locally:
bundle exec jekyll build
- Run metadata validation:
./scripts/validate_metadata.sh
- If you changed colors, ensure the script passes color contrast checks for:
branding.primary_colorbranding.accent_colorbranding.link_colorbranding.link_hover_colorbranding.link_visited_colorbranding.secondary_color