From 08688bd2e8ae338c6e2ce1f98cb0408617591ca5 Mon Sep 17 00:00:00 2001 From: ydreniv Date: Mon, 30 Jan 2023 09:08:50 +0000 Subject: [PATCH] feat(blog): Tilde Site Setup (2023) --- Makefile | 5 +- content/blog/2023-01-30-tilde-site-setup.md | 108 ++++++++++++++++++++ 2 files changed, 112 insertions(+), 1 deletion(-) create mode 100644 content/blog/2023-01-30-tilde-site-setup.md diff --git a/Makefile b/Makefile index 082388f..7893ecc 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,7 @@ -all: build pushl +all: + echo 😠 + +prod: build pushl build: yes | ~/zola build -o ~/public_html diff --git a/content/blog/2023-01-30-tilde-site-setup.md b/content/blog/2023-01-30-tilde-site-setup.md new file mode 100644 index 0000000..43bd467 --- /dev/null +++ b/content/blog/2023-01-30-tilde-site-setup.md @@ -0,0 +1,108 @@ ++++ +title = "My Tilde Site setup (2023)" +date = "2023-01-30" +updated = "2023-01-30" +[extra] +authors = ["Ydreniv"] +tags = ["indieweb", "web", "meta"] ++++ + +I’ve finally finalized my Tilde Towm website setup. +There’s nothing too fancy, but several bricks to assemble. + +## The core + +The core of this setup is powered by [Zola](https://getzola.org). +This is a nice static site generator, which can be run with a single binary. +Unlike others, like Jekyll, there is no need to manage a whole Ruby/Python/… +environment. +I have put a Zola binary in my Tilde home, to use whenever I feel the need. + +While typing Zola commands may be okay the first few times, I soon decided to +automate things a bit. +I’ve settled on using a simple Makefile, as it is quite standard, and easy +enough to use. + +```Makefile +all: build + +build: + yes | ~/zola build -o ~/public_html +``` + +It’s very simple, but means I only have to type `make` when compiling the +website. +And then, it means I can easily make things more complex. + +## Indieweb + +As part of my efforts to integrate this site to the Indieweb, I wamsel so be +able to send webmentions. +I’ve settled on using [Pushl](https://github.com/PlaidWeb/Pushl). +It’s a CLI tool which caches it’s previous mentions, meaning it won’t send the +same twice. +So I’ve added a `pushl` stage to my Makefile, which is required by the `all` +stage: + +```Makefile +pushl: + . /home/ydreniv/venv-pushl/bin/activate ; pushl -c pushl-cache/ "https://tilde.town/~ydreniv/atom.xml" +``` + +This is great, as it means webmentions will be sent automatically, without me +having to do any cURL command manully. +However, this accentuates an issue. +How do I manage my test environment ? + +## Test environment + +At first, when I wanted to test something, I tested it live. +It was okay. +At most, one person would see a broken site, which would be fixed in the next +minutes. +Webmentions and feeds however make some things asynchronous. +I could mess up a link, and ending up mentioning the wrong page. +Or I could make a typo, build things, have the typo included in the feeds, and +have a feed reader collect this feed before I fix it. +While both are minor issues, it prompted me to setup a better developing +environment. + +At that point, I still didn’t have put anything on git. +So I got a Gitea account, and git everything. +This is not strictly needed, but it’s a great way to backup code or static +site. +This also means I’ll be able to see things like monthly changes. + +Then, I created a webspace on my personal server, with sftp access. +My workflow would be the following : +I would build things on Tilde Town, send the output via sftp to my personal +server. +Then once I have checked that everything is fine, I would do the previous +build+pushl to Tilde Town. + +My current Makefile is the following : + +```Makefile +all: build pushl + +build: + yes | ~/zola build -o ~/public_html + +pushl: + . /home/ydreniv/venv-pushl/bin/activate ; pushl -c pushl-cache/ "https://tilde.town/~ydreniv/atom.xml" + +preprod: + yes | ~/zola build --base-url https://example.com/ydreniv --drafts + echo "put -r public/* www" > sftp-batch.txt + sftp -b sftp-batch.txt example.com + rm sftp-batch.txt +``` + +It’s not perfect, and the path difference (`~ydreniv` vs `ydreniv`) means that +some links are broken. +Moreover, somehow the test server doesn’t display non-ascii characters well. +And there’s the issue of the sftp transfer as well. +It’s very slow, and probably not optimized. +Yet it’s good enough for me. +I’ll have to improve it further, but that’s enough for now. +