Personal website and blog of Isaac Lins — application developer and cybersecurity enthusiast. Built with Hugo (extended) and deployed to GitHub Pages behind Cloudflare at https://isaaclins.com.
- Hugo extended (CI builds with v0.140.2;
config.tomlrequires the extended SCSS-capable build, min 0.41.0). - Dart Sass for
assets/css/main.scss. - Content in
content/as Markdown with TOML frontmatter (+++delimiters).
| Path | What it is |
|---|---|
content/ |
Pages and posts. Blog posts live in content/blog/. content/blog/_TEMPLATE.md is the starting point for a new post. |
layouts/ |
Hugo templates: _default/, partials/, and shortcodes/. |
assets/ |
SCSS (css/main.scss), fonts, and social-card seed images. |
images/ |
Post images (mounted to /images/ at build time). |
static/ |
Files copied verbatim to the site root (JS, manifest, icons). |
data/menu.toml |
Homepage menu entries. |
scripts/ |
Python helpers run by pre-commit (frontmatter, image-path, and draft checks). |
.github/workflows/ |
CI: build/validate, deploy, image optimization, and Lighthouse. |
hugo server # live-reload dev server at http://localhost:1313
hugo --gc --minify # production build into ./public- Copy
content/blog/_TEMPLATE.mdtocontent/blog/<slug>.md. - Fill in the TOML frontmatter (
title,date,tags,complexity,description, optionalimage).descriptionshould be under 160 characters for SEO. - Drop images in
images/and reference them as/images/<file>. - Optionally install the local hooks:
pip install pre-commit && pre-commit install. They run markdownlint, cspell, and the validators inscripts/.
- build-test — builds the site, validates the generated HTML with
html5validator, and runscspellon non-draft content. - pages-deploy — builds and deploys to GitHub Pages on push to
main. - optimize-images — losslessly optimizes committed images and generates WebP versions.
- Lighthouse CI — runs Lighthouse against the live URLs after a deploy and
writes the score table to
lighthousetest.md.
Content © Isaac Lins. Reach me at contact@isaaclins.com or github.com/isaaclins.