Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Building a site with zola and sourcehut

From posixlycorrect wiki
Revision as of 06:15, 28 August 2024 by Admin (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


Introduction

The following is a small tutorial on how to build a static webpage using Zola and Sourcehut's build service.

This guide is somewhat redundant since Zola's documentation is already very clear, but I want to write a first post in order to test this site.


Prerequisites

First off, download Zola using your package manager. Installation instructions can be found on their site.

After that, create an account on Sourcehut. I paid for the "Amateur Hackers" tier as I'm just getting started with this project.


Creating a static webpage

All commands assume you are at the root of your project.


Zola

Once you've downloaded Zola, create an empty directory, initialize your site, and initialize a git repository:

$ mkdir www && cd www
$ zola init posixlycorrect.com
$ git init

Test everything is fine:

$ zola serve

If it is, download a theme:

$ mkdir -p themes
$ cd themes
$ git clone https://github.com/pawroman/zola-theme-terminimal.git

Add content to your site:

$ mkdir -p content
$ cd content
$ nvim _index.md    ## add to this whatever your theme needs in order to work
                    ## usually this is detailed on the theme's docs

$ nvim blog.md      ## landing page for posixlycorrect.com/blog
$ mkdir blog && cd blog
$ nvim building_a_site_with_zola_and_sourcehut.md   ## your first post
$ cd ..
$ nvim about.md    ## your about page

Check that everything looks good:

$ zola serve


Sourcehut

Your site is now ready to be published! In order to do that, commit your changes and add a remote repository from Sourcehut:

$ git add .
$ git commit
$ git remote add origin git@git.sr.ht:~fabianmv/posixlycorrect.com

Add a build manifest so Sourcehut knows how to publish your site:

$ nvim .build.yml

My manifest looks like this:

image: alpine/edge
packages:
  - hut
  - zola
oauth: pages.sr.ht/PAGES:RW
environment:
  site: posixlycorrect.com
sources:
  - https://git.sr.ht/~fabianmv/posixlycorrect.com
tasks:
  - build: |
      cd posixlycorrect.com
      mkdir -p templates
      zola build
  - package: |
      cd posixlycorrect.com
      tar -C public -cvz . > ../site.tar.gz
  - upload: |
      hut pages publish -d $site site.tar.gz

Add and commit your changes and push your repository:

$ git add .
$ git commit
$ git push

Your website should now be visible! Updating it is a matter of making changes and pushing to your repository.

Good luck!

If you have any questions, feel free to email me.