This document provides comprehensive information about the GitHub Pages setup for the Zellij Utils project, including configuration, deployment, and maintenance instructions.
The Zellij Utils documentation site is hosted on GitHub Pages using Hugo static site generator with the PaperMod theme. The site is automatically built and deployed via GitHub Actions whenever changes are pushed to the main branch.
- Live Site: https://tranqy.github.io/zellij-utils/
- Source:
/docs/directory in this repository - Generator: Hugo (Extended version)
- Theme: PaperMod
- Deployment: GitHub Actions with automated builds
docs/
├── hugo.yaml # Hugo configuration file
├── content/ # Markdown content files
│ ├── _index.md # Homepage content
│ ├── blog/ # Blog posts
│ │ ├── _index.md
│ │ └── introducing-zellij-utils.md
│ └── guides/ # Documentation guides
│ ├── _index.md
│ ├── quick-start.md
│ ├── faq.md
│ └── troubleshooting.md
├── layouts/ # Custom Hugo templates
│ ├── _default/
│ │ ├── baseof.html
│ │ ├── list.html
│ │ └── single.html
│ └── index.html
├── themes/ # Hugo themes (git submodules)
│ └── PaperMod/ # PaperMod theme submodule
├── public/ # Generated site output (ignored by git)
└── .hugo_build.lock # Hugo build lock file
baseURL: 'https://tranqy.github.io/zellij-utils/'
languageCode: 'en-us'
title: 'Zellij Utils'
theme: 'PaperMod'
params:
description: "Supercharge your Zellij terminal multiplexer workflows"
markup:
goldmark:
renderer:
unsafe: trueThe site uses the PaperMod theme, installed as a git submodule:
# Submodule configuration in .gitmodules
[submodule "docs/themes/PaperMod"]
path = docs/themes/PaperMod
url = https://github.com/adityatelange/hugo-PaperMod.gitThe deployment is handled by a GitHub Actions workflow that:
- Installs Hugo CLI (Extended version 0.147.0)
- Installs Dart Sass for advanced styling
- Checks out repository with recursive submodules
- Configures GitHub Pages settings
- Installs Node.js dependencies (if any)
- Builds the Hugo site with garbage collection and minification
- Uploads the build artifact to GitHub Pages
- Deploys to GitHub Pages environment
- Push to main branch: Automatic deployment
- Manual dispatch: Can be triggered manually from GitHub Actions tab
permissions:
contents: read
pages: write
id-token: write- Hugo Extended (version 0.147.0 or later)
- Git (for submodule management)
- Node.js (optional, for additional dependencies)
-
Clone the repository with submodules:
git clone --recursive https://github.com/tranqy/zellij-utils.git cd zellij-utils -
If already cloned, initialize submodules:
git submodule update --init --recursive
-
Install Hugo Extended:
# Ubuntu/Debian sudo snap install hugo # macOS brew install hugo # Manual installation wget https://github.com/gohugoio/hugo/releases/download/v0.147.0/hugo_extended_0.147.0_linux-amd64.deb sudo dpkg -i hugo_extended_0.147.0_linux-amd64.deb
# Navigate to docs directory
cd docs
# Start development server with live reload
hugo server -D --bind 0.0.0.0
# Build site for production
hugo --gc --minify
# Build with specific destination
hugo --gc --minify -d public
# Check Hugo version
hugo versionAfter making changes, always test the build locally:
cd docs
hugo --gc --minifySuccessful output should show:
Start building sites …
│ EN
──────────────────┼────
Pages │ 26
Paginator pages │ 0
Non-page files │ 0
Static files │ 0
Processed images │ 0
Aliases │ 0
Cleaned │ 0
Total in 94 ms
- Blog Posts: Create new
.mdfiles indocs/content/blog/ - Guide Pages: Create new
.mdfiles indocs/content/guides/ - Homepage: Edit
docs/content/_index.md
---
title: "Page Title"
description: "Page description for SEO"
date: 2025-07-13
tags: ["tag1", "tag2"]
categories: ["category"]
draft: false
---
# Content goes here- Main navigation is automatically generated from content structure
- Custom layouts can be added in
docs/layouts/ - Menu configuration can be added to
hugo.yamlif needed
Problem: fatal: No url found for submodule path 'docs/themes/PaperMod'
Solution:
# Remove broken submodule
git rm --cached docs/themes/PaperMod
rm -rf docs/themes/PaperMod
rm -rf .git/modules/docs/themes/PaperMod
# Re-add properly
git submodule add https://github.com/adityatelange/hugo-PaperMod.git docs/themes/PaperMod
git commit -m "fix: reinstall PaperMod theme submodule"Problem: Unable to locate config file or config directory
Solution:
- Ensure you're running Hugo from the
docs/directory - Verify
hugo.yamlexists in thedocs/directory - Check file permissions
Problem: Site builds but theme doesn't apply
Solution:
# Update submodules
git submodule update --remote --recursive
# Verify theme installation
ls -la docs/themes/PaperMod/
# Check theme configuration in hugo.yamlProblem: GitHub Actions build fails
Solution:
- Check the Actions tab for detailed error logs
- Verify submodules are properly configured
- Test build locally first
- Check Hugo version compatibility
# Check git submodule status
git submodule status
# Update all submodules
git submodule update --remote --recursive
# Force submodule reinitialization
git submodule deinit --all -f
git submodule update --init --recursive
# Check Hugo configuration
cd docs && hugo config
# Verbose Hugo build
cd docs && hugo --verbose --debug- Hugo Version: Update
HUGO_VERSIONin.github/workflows/hugo.yml - Theme Updates:
git submodule update --remote docs/themes/PaperMod git add docs/themes/PaperMod git commit -m "update: PaperMod theme to latest version" - Dependencies: Check for GitHub Actions updates
- Deployment Status: Monitor GitHub Actions
- Site Availability: Check https://tranqy.github.io/zellij-utils/
- Performance: Use GitHub Pages insights and web tools
The site source is automatically backed up in the git repository. The generated site can be recreated at any time from the source files.
- Submodule Security: PaperMod theme is from a trusted source
- Build Security: GitHub Actions runs in isolated environments
- Content Security: All content is static - no server-side execution
- HTTPS: GitHub Pages enforces HTTPS by default
- Build Time: ~94ms locally, ~30s in CI
- Page Count: 26 pages generated
- Size: Optimized with
--gc --minifyflags - CDN: Served via GitHub's global CDN
- Use
--gc --minifyfor production builds - Optimize images before adding to content
- Keep dependencies minimal
- Regular theme updates for performance improvements
For issues related to:
- Hugo Documentation: https://gohugo.io/documentation/
- PaperMod Theme: https://github.com/adityatelange/hugo-PaperMod
- GitHub Pages: https://docs.github.com/en/pages
- GitHub Actions: https://docs.github.com/en/actions
Last updated: 2025-07-13 Site URL: https://tranqy.github.io/zellij-utils/ Repository: https://github.com/tranqy/zellij-utils