My website built from my org-roam notes.
This repository contains:
- A collection of Org-Roam notes on topics like programming, Haskell, and functional data structures
- A Nix-based build system to convert these notes into a static website
- GitHub Actions workflow for CI/CD to deploy the site to GitHub Pages
- Org-Roam Integration: Automatically handles backlinks and cross-references between notes
- Nix Flake Support: Uses Nix flakes for reproducible builds and development environment
- Emacs Automation: Uses Emacs in batch mode for publishing
- Haskell Support: Includes environment for Haskell development and note execution
- GitHub Pages Deployment: Automatically deploys the site using GitHub Actions
The repository contains Org-Roam notes on various topics:
- Programming: General programming concepts
- Haskell: Notes on Haskell programming language
- Functional Data Structures: Study notes on the book "Purely Functional Data Structures"
- Singletons: Detailed notes on Haskell singletons
# Clone the repository
git clone https://github.com/collinarnett/collinarnett.github.io.git
cd org-roam-site
# If you have direnv
direnv allow
# Otherwise, enter the development shell manually
nix develop
# Build the site
nix build
# The result is in ./result
After building, you can view the site locally by opening result/index.html
in your browser.
*.org
- Org-Roam note filesflake.nix
- Nix flake configurationpublish.el
- Emacs Lisp script that handles publishingnix/publish.nix
- Nix derivation for publishing.github/workflows/ci.yaml
- GitHub Actions workflowsimple_inline.theme
- CSS theme for the published site
- The Nix build system creates a controlled environment with Emacs and necessary packages
- Emacs runs in batch mode executing
publish.el
to convert Org files to HTML - The resulting site is packaged and made available as the build output
- GitHub Actions deploys this output to GitHub Pages
Feel free to open issues or submit pull requests with improvements or additions to the notes.