Quick and dirty info about how this site works:
Hosting: Firebase - comes with free SSL cert
Version Management: GitHub
Build: Hugo (KeepIt theme)
The
hugosite project folder is also a git repo.
Pipeline: I write a new post with the command scblog <post-name>.md, which is a custom function in my .zprofile. It opens the new post in the Atom text editor:
function scblog {
export HERE=$(pwd)
cd ~/hugo/samcipriani.com/
hugo new posts/$1
atom content/posts/$1
cd $HERE
}
After writing a post, I just run deploy.sh:
#!/bin/zsh
echo -e "Deploying updates to GitHub..."
# Build the project.
hugo -D
git add .
# Commit changes.
msg="rebuilding samcipriani.com site `date`"
git commit -m "$msg"
# Push source and build repos.
git push origin HEAD
firebase deploy
Notice the firebase deploy command - this is a very useful set of CLI tools by Google. It is configured to deploy from the ./public directory; likewise hugo is configured to build the site to the ./public directory.