From f57d3d945d2780cc7b8deb4f3fc19750cebe152a Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Tue, 17 Feb 2026 09:51:14 -0600 Subject: [PATCH] Initial site setup with Zola and zolanight theme - Zola static site with zolanight theme - Blog section with sample posts - Projects section for listing external projects - Custom index template showing latest post and recent posts list --- .gitignore | 1 + CLAUDE.md | 30 +++++++++++++++ content/_index.md | 3 ++ content/blog/_index.md | 5 +++ content/blog/first.md | 6 +++ content/blog/second.md | 6 +++ content/projects/_index.md | 5 +++ content/projects/gridmap.md | 7 ++++ content/projects/towerops.md | 7 ++++ templates/base.html | 74 ++++++++++++++++++++++++++++++++++++ templates/index.html | 42 ++++++++++++++++++++ templates/projects.html | 25 ++++++++++++ themes/zolanight | 1 + zola.toml | 19 +++++++++ 14 files changed, 231 insertions(+) create mode 100644 .gitignore create mode 100644 CLAUDE.md create mode 100644 content/_index.md create mode 100644 content/blog/_index.md create mode 100644 content/blog/first.md create mode 100644 content/blog/second.md create mode 100644 content/projects/_index.md create mode 100644 content/projects/gridmap.md create mode 100644 content/projects/towerops.md create mode 100644 templates/base.html create mode 100644 templates/index.html create mode 100644 templates/projects.html create mode 160000 themes/zolanight create mode 100644 zola.toml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..364fdec --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +public/ diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..ab5ac90 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,30 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Project + +Static website for W5ISP (amateur radio callsign) built with [Zola](https://www.getzola.org/), a Rust-based static site generator. + +## Commands + +- `zola serve` - Local dev server with live reload (default: http://127.0.0.1:1111) +- `zola build` - Build site to `public/` directory +- `zola check` - Validate links and templates + +## Architecture + +This is a standard Zola project: + +- **`content/`** - Markdown pages and blog posts. Zola uses `_index.md` for section pages and regular `.md` files for individual pages. +- **`templates/`** - Tera templates (Jinja2-like syntax). Key templates: `base.html` (layout), `index.html` (homepage), `page.html` (single page), `section.html` (section listing). +- **`sass/`** - SCSS stylesheets, auto-compiled by Zola (enabled in config). +- **`static/`** - Static assets served as-is (images, fonts, etc.). +- **`themes/`** - Zola themes (if using one). + +## Configuration + +- Sass compilation: enabled +- Search index: disabled +- Syntax highlighting theme: Catppuccin Mocha +- Custom variables go in `[extra]` section of `zola.toml` diff --git a/content/_index.md b/content/_index.md new file mode 100644 index 0000000..6d7d5cc --- /dev/null +++ b/content/_index.md @@ -0,0 +1,3 @@ ++++ +title = "W5ISP" ++++ diff --git a/content/blog/_index.md b/content/blog/_index.md new file mode 100644 index 0000000..a68b547 --- /dev/null +++ b/content/blog/_index.md @@ -0,0 +1,5 @@ ++++ +title = "Blog" +sort_by = "date" +paginate_by = 5 ++++ diff --git a/content/blog/first.md b/content/blog/first.md new file mode 100644 index 0000000..a1d1130 --- /dev/null +++ b/content/blog/first.md @@ -0,0 +1,6 @@ ++++ +title = "My first post" +date = 2019-11-27 ++++ + +This is my first blog post. diff --git a/content/blog/second.md b/content/blog/second.md new file mode 100644 index 0000000..04db092 --- /dev/null +++ b/content/blog/second.md @@ -0,0 +1,6 @@ ++++ +title = "My second post" +date = 2019-11-28 ++++ + +This is my second blog post. diff --git a/content/projects/_index.md b/content/projects/_index.md new file mode 100644 index 0000000..57b2aa0 --- /dev/null +++ b/content/projects/_index.md @@ -0,0 +1,5 @@ ++++ +title = "Projects" +template = "projects.html" +sort_by = "title" ++++ diff --git a/content/projects/gridmap.md b/content/projects/gridmap.md new file mode 100644 index 0000000..ec23bc5 --- /dev/null +++ b/content/projects/gridmap.md @@ -0,0 +1,7 @@ ++++ +title = "GridMap" +description = "GridMap" + +[extra] +url = "https://gridmap.org" ++++ diff --git a/content/projects/towerops.md b/content/projects/towerops.md new file mode 100644 index 0000000..8a1f82a --- /dev/null +++ b/content/projects/towerops.md @@ -0,0 +1,7 @@ ++++ +title = "TowerOps" +description = "TowerOps" + +[extra] +url = "https://towerops.net" ++++ diff --git a/templates/base.html b/templates/base.html new file mode 100644 index 0000000..6719be1 --- /dev/null +++ b/templates/base.html @@ -0,0 +1,74 @@ + + + + + + {% block title %}{{ config.title }}{% endblock title %} + {% if page %} + {% if page.description %} + + {% endif %} + {% if page.taxonomies.tags %} + + {% endif %} + {% elif section %} + {% if section.description %} + + {% endif %} + {% if section.taxonomies.tags %} + + {% endif %} + {% endif %} + {% if page %} + {% elif section %} + {% else %} + {% endif %} + + {% if config.extra.zolanight.google_analytics_id %} + + + {% endif %} + + + {% set root_section = get_section(path="_index.md") %} +
+ +
+
+
+ {% block content %}{% endblock content %} +
+
+ + + diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..09c8df8 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,42 @@ +{% extends "base.html" %} + +{% block title %}{{ section.title }} - {{ config.title }}{% endblock title %} + +{% block content %} +
+ {% if section.title %} +

{{ section.title }}

+ {% endif %} +
+ {{ section.content | safe }} +
+
+ +{% set blog_section = get_section(path="blog/_index.md") %} +{% if blog_section.pages | length > 0 %} +{% set latest = blog_section.pages | first %} +
+

{{ latest.title }}

+ {% if latest.date %} +

+ {% endif %} + {{ latest.content | safe }} +
+ +{% if blog_section.pages | length > 1 %} +

Recent Posts

+ +{% endif %} + +

All posts →

+{% endif %} +{% endblock content %} diff --git a/templates/projects.html b/templates/projects.html new file mode 100644 index 0000000..30326d1 --- /dev/null +++ b/templates/projects.html @@ -0,0 +1,25 @@ +{% extends "base.html" %} + +{% block title %}{{ section.title }} - {{ config.title }}{% endblock title %} + +{% block content %} +

{{ section.title }}

+
+ {{ section.content | safe }} +
+ +{% endblock content %} diff --git a/themes/zolanight b/themes/zolanight new file mode 160000 index 0000000..98576b4 --- /dev/null +++ b/themes/zolanight @@ -0,0 +1 @@ +Subproject commit 98576b4ffbb1188e6571063bc6b868101ea5bbde diff --git a/zola.toml b/zola.toml new file mode 100644 index 0000000..963bba1 --- /dev/null +++ b/zola.toml @@ -0,0 +1,19 @@ +# The URL the site will be built for +base_url = "https://w5isp.com" + +# Theme +theme = "zolanight" + +# Whether to automatically compile all Sass files in the sass directory +compile_sass = true + +# Whether to build a search index to be used later on by a JavaScript library +build_search_index = false + +[markdown] + +[markdown.highlighting] +theme = "catppuccin-mocha" + +[extra] +# Put all your custom variables here