New Blog, New Site

Tags: meta

Having just turned twenty-four, have resolved to embark on grand project of writing every day in this new static site just created with Hakyll. Exciting to think how in one year, at rate of one page/day, will have written three hundred and sixty-five pages, and what a picture of life and times then available for kids & grandkids, even greatgrandkids, whoever, all are welcome (!) to see how life really was/is now.

But seriously, I rewrote this site in Hakyll, converted over my old Jekyll blog, and am going to try to write more often. I’m hosting the site on sr.ht, which has been a pretty delightful setup experience thus far.

I mostly followed sr.ht’s Automating deployments instruction. One caveat that the documentation doesn’t mention is that you will need to add a secret for private repositories.

Here’s the .build.yml that builds this site.

image: debian/stable
oauth: pages.sr.ht/PAGES:RW
packages:
- libghc-hakyll-dev
environment:
  site: kvakil.srht.site
tasks:
- upload: |
    cd $site
    ghc --make site.hs
    sudo locale-gen "C.UTF-8"
    export LC_ALL=C.UTF-8
    ./site rebuild
    cd _site
    tar -cvz . > ../site.tar.gz
    acurl -f https://pages.sr.ht/publish/$site -Fcontent=@../site.tar.gz
secrets:
- ********-****-****-****-************
sources:
- git@git.sr.ht:~kvakil/kvakil.srht.site

This takes ~1 minute to bulid my tiny site – most of the time is spent installing libghc-hakyll-dev. I adapted the format from this blog post, but that one takes much longer to run (>30 minutes) because it installs everything from source. Using debian’s packages here makes everything faster.

I’m not really sure about the locale stuff, but it fixed some inscrutable errors I was getting, including:

hGetContents: invalid argument (invalid byte sequence)

and

commitBuffer: invalid argument (invalid character)

and so it stays.

Edit: turns out this is specificed in the Hakyll FAQ, oops.

Anyways, let’s see if I can keep up the writing. :)

Posted on 2022-03-24