Compare commits
4 Commits
3c2d07c7d4
...
f9a2f21647
Author | SHA1 | Date | |
---|---|---|---|
f9a2f21647 | |||
194b37282a | |||
05dce6c649 | |||
233b11a772 |
@ -69,6 +69,7 @@ function has_body_changes() {
|
|||||||
# Function to update the social media card for a post or section.
|
# Function to update the social media card for a post or section.
|
||||||
function generate_and_commit_card {
|
function generate_and_commit_card {
|
||||||
local file=$1
|
local file=$1
|
||||||
|
echo "Generating social media card for $file"
|
||||||
social_media_card=$(./static/code/social-cards-zola -o static/img/social_cards -b http://127.0.0.1:1111 -u -p -i "$file") || {
|
social_media_card=$(./static/code/social-cards-zola -o static/img/social_cards -b http://127.0.0.1:1111 -u -p -i "$file") || {
|
||||||
echo "Failed to update social media card for $file"
|
echo "Failed to update social media card for $file"
|
||||||
exit 1
|
exit 1
|
||||||
@ -177,6 +178,7 @@ done
|
|||||||
# See https://osc.garden/blog/automating-social-media-cards-zola/ for context.
|
# See https://osc.garden/blog/automating-social-media-cards-zola/ for context.
|
||||||
changed_md_files=$(echo "$all_changed_files" | grep '\.md$')
|
changed_md_files=$(echo "$all_changed_files" | grep '\.md$')
|
||||||
# Use parallel to create the social media cards in parallel and commit them.
|
# Use parallel to create the social media cards in parallel and commit them.
|
||||||
|
echo "processing $changed_md_files out of $all_changed_files"
|
||||||
if [[ -n "$changed_md_files" ]]; then
|
if [[ -n "$changed_md_files" ]]; then
|
||||||
echo "$changed_md_files" | parallel -j 8 generate_and_commit_card
|
echo "$changed_md_files" | parallel -j 8 generate_and_commit_card
|
||||||
fi
|
fi
|
||||||
|
@ -1,10 +1,14 @@
|
|||||||
+++
|
+++
|
||||||
title = "Chronicles of an Expedition to Peru"
|
title = "Expedition to Peru"
|
||||||
description = ""
|
description = "A mountaineering expedition to the Cordillera Blanca in Peru."
|
||||||
date = 2018-07-05
|
date = 2018-07-05
|
||||||
|
updated = 2025-03-12
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["alpinism", "expeditions"]
|
tags = ["alpinism", "expeditions"]
|
||||||
|
|
||||||
|
[extra]
|
||||||
|
social_media_card = "img/social_cards/blog_expedition_to_peru.jpg"
|
||||||
+++
|
+++
|
||||||
|
|
||||||
Nuestro vuelo salió de México el miércoles. Hicimos una escala de unas dos horas en el aeropuerto de
|
Nuestro vuelo salió de México el miércoles. Hicimos una escala de unas dos horas en el aeropuerto de
|
||||||
@ -57,15 +61,15 @@ si quería tener derecho a cena.
|
|||||||
Es buen momento para aclarar nuestro plan. El itinerario pactado con Nehemio quedó así:
|
Es buen momento para aclarar nuestro plan. El itinerario pactado con Nehemio quedó así:
|
||||||
|
|
||||||
1. Huaraz - Llamacorral
|
1. Huaraz - Llamacorral
|
||||||
1. Llamacorral - Campo base del Alpamayo
|
2. Llamacorral - Campo base del Alpamayo
|
||||||
1. Campo base - Campo alto
|
3. Campo base - Campo alto
|
||||||
1. Campo alto - Cumbre del Alpamayo - Campo Alto
|
4. Campo alto - Cumbre del Alpamayo - Campo Alto
|
||||||
1. Campo alto - Cumbre del Quitaraju - Campo Alto
|
5. Campo alto - Cumbre del Quitaraju - Campo Alto
|
||||||
1. Campo alto - Campo base
|
6. Campo alto - Campo base
|
||||||
1. Campo base - Campo base del Artesonraju
|
7. Campo base - Campo base del Artesonraju
|
||||||
1. Campo base de Artesonraju - Campo morrena
|
8. Campo base de Artesonraju - Campo morrena
|
||||||
1. Campo morrena - Cumbre del Artesonraju - Campo base
|
9. Campo morrena - Cumbre del Artesonraju - Campo base
|
||||||
1. Campo base - Huaraz
|
10. Campo base - Huaraz
|
||||||
|
|
||||||
Estando en el campo base del Alpamayo, nos enteramos de que el Alpamayo tenía, sobre la canaleta de
|
Estando en el campo base del Alpamayo, nos enteramos de que el Alpamayo tenía, sobre la canaleta de
|
||||||
la ruta, unas cornisas enormes que podían caer en cualquier momento y convertirse en una avalancha
|
la ruta, unas cornisas enormes que podían caer en cualquier momento y convertirse en una avalancha
|
||||||
|
@ -6,6 +6,9 @@ updated = 2025-03-12
|
|||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Infrastructure", "Automation", "Quality"]
|
tags = ["Infrastructure", "Automation", "Quality"]
|
||||||
|
|
||||||
|
[extra]
|
||||||
|
social_media_card = "img/social_cards/blog_infrastructure_as_code.jpg"
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Introduction
|
# Introduction
|
||||||
@ -69,8 +72,10 @@ it. On the other hand, provisioning it through code will make the process reusab
|
|||||||
this server as code, is the better approach. Defining everything as code enables you to leverage speed to improve quality, much like Agile
|
this server as code, is the better approach. Defining everything as code enables you to leverage speed to improve quality, much like Agile
|
||||||
uses speed to improve software quality by having tight feedback loops and iterating on that feedback.
|
uses speed to improve software quality by having tight feedback loops and iterating on that feedback.
|
||||||
|
|
||||||
Infrastructure code can use declarative or imperative
|
Infrastructure code can use declarative or imperative languages[^2].
|
||||||
languages[^2: "Imperative code is a set of instructions that specifies how to make a thing happen. Declarative code specifies what you want, without specifying how to make it happen."].
|
|
||||||
|
[^2]: Imperative code is a set of instructions that specifies how to make a thing happen. Declarative code specifies what you want, without
|
||||||
|
specifying how to make it happen.
|
||||||
|
|
||||||
# Infrastructure stacks
|
# Infrastructure stacks
|
||||||
|
|
||||||
|
@ -6,6 +6,9 @@ updated = 2025-03-12
|
|||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Self-Hosting", "CI/CD", "Linux", "Gitea", "Go"]
|
tags = ["Self-Hosting", "CI/CD", "Linux", "Gitea", "Go"]
|
||||||
|
|
||||||
|
[extra]
|
||||||
|
social_media_card = "img/social_cards/blog_gitea_open_source_github_alternative.jpg"
|
||||||
+++
|
+++
|
||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
+++
|
+++
|
||||||
title = "Self-Hosting a Website in 2025"
|
title = "Self-Hosting a Blog in 2025"
|
||||||
description = "A step-by-step guide to hosting your own website using Zola, Caddy, and Gitea."
|
description = "A step-by-step guide to hosting your own website using Zola, Caddy, and Gitea."
|
||||||
date = 2025-03-12
|
date = 2025-03-12
|
||||||
updated = 2025-03-12
|
updated = 2025-03-12
|
||||||
|
BIN
static/img/social_cards/blog_expedition_to_peru.jpg
Normal file
BIN
static/img/social_cards/blog_expedition_to_peru.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 71 KiB |
Binary file not shown.
After Width: | Height: | Size: 48 KiB |
Binary file not shown.
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
Loading…
x
Reference in New Issue
Block a user