Skip to content

brendanmurty/site

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Murty Website

Deployment Status Latest Release Website Status

Summary

This repository contains the website for the Murty family, which has been built with Deno, Lume, a commercially licensed version of the IO font by Mass-Driver, and a licensed icon pack from Font Awesome.

Tests, build and local server commands are available from local environments.

Remote testing and GitHub Pages deployment can be triggered locally and is then handled remotely by a GitHub Actions workflow.

Previews of the home page

Preview of the home page in dark mode

Preview of the home page in light mode

Lighthouse test results

Lighthouse test results

Initial setup

  1. Fork this repository
  2. Make a local clone of that forked repository
  3. Install the latest stable version of Deno
  4. Run the setup script: deno task setup
  5. Update some files in the forked repository
  • Update .github/workflows/release.yml to use your forked GitHub repository URL
  • Update .github/workflows/release.yml to use your own Docker Hub repository URL
  • All files in the content directory must contain your own content instead
  • All files in the assets directory must contain your own static files instead
  • Purchase your own license to use the Mass-Driver IO font or update the CSS to use other fonts
  • Purchase Font Awesome Pro, setup your own kit, and update the kit.fontawesome.com script path in the source code. Alternatively, you can use a free icon pack and update the code in your fork to use that instead.
  1. Commit and push all of these changes to your forked repository
  2. Update the Settings for your forked repository via GitHub:
  • Pages > Source: GitHub Actions
  • Pages > Custom domain: use your own domain
  • Secrets and variables > Actions > new secret > Name: DOCKERHUB_USERNAME, Secret: your Docker username
  • Secrets and variables > Actions > new secret > Name: DOCKERHUB_TOKEN, Secret: generate new token, read and write permissions, save the generated token here
  1. Update config/CNAME to use the same domain as you configured above
  2. Setup Fathom Analytics:
  • Create your own account and setup a new site
  • Update your .env file's FATHOM_ANALYTICS_SITE_ID value to use your new Site ID
  1. Optional: Install VS Code and add the Deno plugin

Commands

Command Description
deno task build                     Run build process.
deno task test Run all unit tests.
deno task serve Builds the site and starts a local web server.
deno task release Generate and push a new Git Tag, which will then trigger the GitHub Actions workflow in the remote repository.
deno task new-post Generate a new blog post Markdown content file.
deno task deno-upgrade Attempt Deno stable version upgrade.
deno task lume-cli-upgrade Attempt Lume CLI version upgrade.
deno task dependencies Attempt Deno third-party package dependency upgrades.

Refer to the tasks section in deno.json for the full list of commands.

Folder structure and key files

Folder / File Description
.github/workflows/release.yml Triggers when a release tag is pushed. Runs tests, deploys to GitHub Pages, publishes a new GitHub release and pushes a new version to the repository on Docker Hub.
.vscode Customised VS Code configuration for this repository.
assets Static files like images and PDFs.
config Supporting configuration files.
content Website page content in Markdown files.
src Source code and related unit tests.
src/commands Helper scripts, refer to the Commands section above for more details.
src/layouts React TSX page layouts.
src/styles CSS styles.
src/templates Nunjucks page templates.
deno.json Deno imports, tasks and configuration for this repository.