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.
- Fork this repository
- Make a local clone of that forked repository
- Install the latest stable version of Deno
- Run the setup script:
deno task setup
- 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.
- Commit and push all of these changes to your forked repository
- 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
- Update
config/CNAME
to use the same domain as you configured above - Setup Fathom Analytics:
- Create your own account and setup a new site
- Update your
.env
file'sFATHOM_ANALYTICS_SITE_ID
value to use your newSite ID
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 / 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. |