I think this is the 4th or 5th iteration of my website.

Goals

  1. Able to write the website in markdown, within [[Obsidian]].
  2. Being able to push updates simply/automatically from Linux.
    1. Include auto-generated index pages.
    2. Alternative links for lots of pages, so they sit at a slash-page (like /intake, /feed, /links, etc)
  3. Small / lightweight user interface. Ref:
    1. https://macwright.com/2016/05/03/the-featherweight-website
    2. https://tinyprojects.dev/posts/tiny_websites_are_great
    3. SVG for graphics, if needed
    4. Test with https://pagespeed.web.dev/ and https://www.webpagetest.org/
  4. A place to host my small apps

Contents

Plan

Pipeline

Hugo seems to do everything needed, so it will just link directly to an Obsidian subfolder.

Aliases will be handled via Obsidian front-matter:

aliases:
 - /intake
 - /in

Content probably needs YAML headers also for:

Sync can be a script like:

cd (folder)
hugo --minify
rsync -avz --delete public/ myserver:/var/www/jwbatey.com/

Use a list.html template to add an index for each folder (projects, blog, maybe shelf)

Site design

To keep the page load under 15 kb, the templates should have:

Templates:

Images - Nope. Inline SVG if needed.

Setup Steps

mkdir -p ~/.local/bin
HUGO_VERSION="0.xxx.0" # Lookup latest version manually
wget -qO- "https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.tar.gz" \ 
 | tar xz -C ~/.local/bin hugo
hugo version

To fix

location / {
    try_files $uri $uri/index.html $uri/ =404;
}