Awesome
khuedoan.com
This is the source code of my personal website at khuedoan.com, built with:
You can check out older branches for previous implementations:
- Rust/Axum/Leptos/WASM/Tailwind CSS (2023)
- Next.js/Tailwind CSS (2023)
- Hugo/PaperMod (2021)
- Plain HTML (2020)
Project structure
content/
: content written in Markdownsrc/
: pages and componentspublic/
: static assetsbuild.rs
: build logic for rendering Markdown to HTML
Content convention
content
└── posts
└── example-post.md
public
├── any-static-file-here.txt
└── images
├── avatar.jpg
└── cat-picture.jpg
Posts are placed in content/posts
, each post is a Markdown file. Here's an example post:
## Example heading
![Files inside `./public` can be referenced by your code starting from the base URL](/images/cat-picture.webp)
Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Development
Open a shell that provides the build environment (requires Nix):
nix develop
Run the development server:
make dev
Then open http://localhost:3000.
Deployment
- Docker image:
Dockerfile
- Pipelines:
.woodpecker/
- Kubernetes configuration: see https://github.com/khuedoan/homelab/tree/master/apps/blog
Acknowledgements
- Axum examples: code examples
- Making a dev shell with nix flakes: Nix flake
- Comment by ScottAbbey in pulldown-cmark#167 and eguiraud/highlight-pulldown: Syntax highlighting for Markdown using
pulldown-cmark
andsyntect