The code, templates and content for my Hakyll powered blog at blog.rekahsoft.ca
Go to file
2021-11-28 06:43:38 -05:00
clay Update business card photo 2019-12-15 21:21:26 -05:00
drafts
files
fonts
images Update business card photo 2019-12-15 21:21:26 -05:00
images-src image-src: Add inkscape svg's that were used to build site graphics 2021-11-25 14:46:18 -05:00
infra infra/main.tf: Always trigger deployment of static files upon apply 2019-12-15 21:21:06 -05:00
js Remove application cache functionality now that its deprecated 2021-11-27 23:43:22 -05:00
lib Update jquery from v1.11.2 -> v1.12.3 2021-11-25 21:16:18 -05:00
pages Update copyright year/s 2021-11-26 08:08:34 -05:00
posts posts/mikrotik-hap-ac-openwrt-installation.md: New post 2019-12-15 20:42:43 -05:00
src Remove application cache functionality now that its deprecated 2021-11-27 23:43:22 -05:00
templates templates/default.js: Update MathJax cdn url 2021-11-27 23:41:12 -05:00
.drone.yml .drone.yml: TEST 2021-11-28 06:43:38 -05:00
.gitignore .gitignore: Remove .stack 2021-11-27 23:43:57 -05:00
blog-rekahsoft-ca.cabal WIP: guix development workflow 2021-11-23 22:58:24 -05:00
channels.scm Move ghc-* packages to the rekahsoft-guix channel 2021-11-25 11:49:45 -05:00
guix.scm Move blog-rekahsoft-ca.scm -> guix.scm and update references 2021-11-25 21:21:36 -05:00
LICENSE Update copyright year/s 2021-11-26 08:08:34 -05:00
manifest.scm Move blog-rekahsoft-ca.scm -> guix.scm and update references 2021-11-25 21:21:36 -05:00
README.org README.org: Include droneci badge directly as html 2021-11-26 21:18:38 -05:00
robots.txt
Setup.hs
site site: Remove test command from site as the test suite was removed in 84735e9a 2021-11-27 23:52:32 -05:00

Source Code for #! Lambda Slang

Build Status

#! Lambda Slang is the personal technical blog of Collin Doering, built using software that respects our freedoms.

Features

Tools

The creation of this website was made possible by the following open source tools and libraries:

  • Hakyll is used to generate site from static files
  • Clay is used for CSS pre-processing
  • Skeleton is used for CSS boilerplate
  • MathJax is used for rendering mathematics
  • JQuery and JQuery-address are used for various DOM manipulations
  • Inkscape and the Gimp were used to create various images/artwork
  • Gnu Free Fonts, specifically FreeMono is used as main font
  • Gnu Emacs because there is no place like home; and no greater editor!

License

Simply put, you're welcome to use the code used to generate this site though there are a few restrictions:

  • Any images and artwork that embody the likeness of "#! Lambda Slang" are not to be distributed or used and are strictly copyright
  • The content of pages and posts can be used with attribution, providing you aren't making money off of it

Various licenses (GPLv3, Creative Commons BY-NC-SA License, and Creative Commons BY-NC-ND License) are deployed dependent on which part of the site is in question. Please see the LICENSE file for full details.

TODO Guix Development Environment

Build Site

  guix shell -CP -E LANG -E GUIX_LOCPATH -m manifest.scm -- bash -c './site clean; ./site build'

Modify haskell sources

  guix time-machine -C channels.scm -- shell -CNP -E LANG -E GUIX_LOCPATH -Df guix.scm -m manifest.scm

TODO Building

Guix is used to manage dependencies for this project.

A simple wrapper script site is provided that also takes care of building the static site and offering access to hakyll commands.

  ./site build
  ./site watch

Deploying

Terraform is used to deploy this site. Its configuration files are located in ./infra. Three workspaces are currently available, including:

  • default (unused)
  • staging
  • production

For example, this is how to deploy the production version of the site:

  cd infra
  terraform workspace select production
  terraform plan --var-file=production.tfvars --out local.plan
  terraform apply local.plan

Known Issues

If you have an issue while browsing my blog please file a issue in the blog-rekahsoft-ca issue tracker.

TODO Allow external code files to be included in pages and blog entries

TODO Remove the use of application cache now that most major browsers are pulling support

TODO Completely replace all references to stack

TODO Fix analytics (pywiki is no longer in use, find and use something else)

TODO Modernize javascript in js/default.js

TODO Fix rendering of mathjax

TODO Setup automated deployment from ci

TODO Add missing terraform backend files to repository

TODO Figure out fast workflow for modifying haskell sources without rebuilding guix package