- HTML 50.9%
- CSS 44.6%
- Python 3.4%
- Dockerfile 1.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .woodpecker | ||
| archetypes | ||
| assets | ||
| content | ||
| data | ||
| layouts | ||
| scripts | ||
| static | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .markdownlint-cli2.jsonc | ||
| .yamllint | ||
| config.toml | ||
| Dockerfile | ||
| readme.md | ||
| renovate.json | ||
Overview
The Hugo code and Dockerfile for building simoncor.net.
The site is styled as a terminal session on guest@bastion, using an in-repo theme (no theme submodule).
Local development
Live preview
Rebuilds on every change, at http://localhost:1313:
docker run --rm -p 1313:1313 -v "$PWD":/src -w /src cr.simoncor.net/hugo:0.152.2 \
hugo server --bind 0.0.0.0 --baseURL http://localhost:1313/
Production container
Build the same image the pipeline builds, then run it at http://localhost:8080:
docker build -t simoncor-net .
docker run --rm -p 8080:3000 simoncor-net
Deploy
Every push to main builds and pushes the container and restarts the deployment through Argo CD
(.woodpecker/build-and-deploy.yaml), so work on a feature branch and merge when it's ready.
Content
Positions
One file per position in content/positions/<name>.md, shown as the git log:
---
title: "Coolblue (2012 - 2017)"
description: "Platform Engineer · Scrum Master at Coolblue (2012 - 2017)" # for search engines
date: "2012-09-01" # sorts the git log, newest first
company: "Coolblue"
role: "Platform Engineer · Scrum Master"
period: "2012 - 2017" # "... - now" adds the active label
stack: ["vmware", "nimble", "puppet"] # tags on the card
color: "peach" # palette colour name, see below
hash: "c00lb1u" # optional commit hash, generated when left out
cd: ["cool-blue", "cb"] # optional extra names for cd in the titlebar
head: true # optional, pins this position on top as HEAD
---
The body is the git show page. Use ## headings for its sections.
Skills
data/skills.yaml, shown on the homepage and on /skills/. Folders and items are sorted alphabetically by the
template, so their order in the file doesn't matter:
- dir: cloud
color: green # palette colour name
items: [aws, azure, openstack]
new: [openstack] # optional, marked as a recent addition (green +)
Text in content/skills.md is shown below the skills grid on /skills/.
Other pages
| Page | File | Notes |
|---|---|---|
| Bio | content/bio.md |
shown on the homepage as cat ~/bio.txt |
| whoami | content/whoami.md |
opened by the whoami command; nocd: true keeps it out of cd |
| help | content/help.md |
opened by help; the commands and cd targets are generated |
| Profile, tabs | config.toml |
name, tagline, social links, prompt user/host, tabs and palettes |
Docs
One file per page in content/docs/<topic>/<page>.md, with an _index.md per topic folder. The page title goes in
the front matter, and notes use GitHub-style alerts:
> [!NOTE]
> REPLACE YOUR TOKEN!
scripts/convert-mkdocs.py moves pages over from the old MkDocs site (docs-simoncor-net).
Colours
Positions and skill folders take a palette colour name: rosewater, flamingo, pink, mauve, red, maroon,
peach, yellow, green, teal, sky, sapphire, blue, lavender. The actual colour follows the palette
the visitor picks.
Theme
layouts/: templates, with shared pieces inlayouts/_partials/.assets/css/palettes.css: colour palettes;params.palettesets the default,params.palettes(darkandlightlists) the ones visitors can pick in the statusline.assets/css/main.css: everything else.layouts/_partials/shell.html: the titlebar prompt.cdreaches every built page (exceptnocd: trueones),whoamiopens the profile,cat ~/bio.txtprints the bio,git log/git show <hash>open the positions,helpopens/help/,manthe docs, andopen <name>(or just<name>) any external tab or social link; anything else isrestricted. New pages and links need no changes there. Outside the prompt,j/kscroll,gg/Gjump to the top/bottom andior:focus the prompt; the statusline showsNORMAL/INSERT.layouts/docs/: the docs section:treeoverview,ls -lper topic, man-page style pages, andsection.json, the search index behindgrep.layouts/help.html: the/help/page; itscdtargets and link commands are generated from the content and config.static/fonts/: self-hosted JetBrains Mono (SIL Open Font License, seeOFL.txt).