Skip to content

kujenga/website

Repository files navigation

Personal Website

CircleCI

Built with Hugo and deployed on Google App Engine via CircleCI. See it live at ataylor.io.

It uses Fathom for privacy-first website analytics.

Directories are laid out as follows:

  • app contains source code for the App Engine application.
    • app/site/public is where static assets from the Hugo site are built for embedding into the server binary and deployment within App Engine.
  • assets is the Hugo assets directory for management via pipes.
  • content is the Hugo directory for blog and other page content, mirroring the organization of the site.
    • content/blog is where blog posts are written.
  • data is the Hugo data directory for various pieces of data such as external posts of interest.
  • exp contains experimental packages and code for various apps and pages.
  • layouts is the Hugo directory for templates, which have a very specific lookup order determining which templates are used where. A few examples of these layouts are:
    • layouts/index.html is the homepage for the site.
    • layouts/_default contains default templates for when no specific template is defined.
    • layouts/partials contain reusable snippets for inclusion in other templates.
  • scripts is a collection of utility scripts for working with the repo and things like deployment management.
  • static contains static files deployed as-is by Hugo.

Development

To install dependencies, make sure you have a recent version of node, go, and hugo installed, and run the following command:

npm install

To run the application, perform the following command:

npm run start

To run unit tests, perform the following commands:

npm test
cd app
go test -v ./...

To run browser automation tests, perform the following command:

npm run test:e2e