·2 min
Oppsett for Automatisert Publisering av Blogg fra Obsidian til GitHub Pages #
Dette dokumentet beskriver hvordan bloggen på blogg.grimsen.com blir automatisk oppdatert fra et Obsidian-vault ved hjelp av et-par skript.
Forutsetninger #
For at denne prosessen skal fungere, må følgende verktøy være installert på maskinen:
git: For versjonskontroll og publisering til GitHub.rsync: For å synkronisere filer fra Obsidian-vaultet til Hugo-nettstedets innholdsmappe.python3: For å kjøre et egendefinert skript som håndterer bilder.hugo: For å bygge det statiske nettstedet.
Katalogstruktur #
Prosessen involverer flere nøkkelkataloger:
- Obsidian Vault:
/Users/frodesolem/Library/Mobile Documents/iCloud~md~obsidian/Documents/Mi Casa- Innlegg:
Posts- Her ligger alle blogginnleggene som markdown-filer. - Vedlegg:
Filer- Her ligger alle vedlegg, som bilder, som brukes i innleggene.
- Innlegg:
- Hugo Repo:
/Users/frodesolem/Library/Mobile Documents/com~apple~CloudDocs/Privat/Blogg/blogg- Dette er et git-repository som inneholder Hugo-nettstedet.
Skriptene #
oppdatergrimsen #
Dette er hovedskriptet som orkestrerer hele prosessen. Det utfører følgende steg:
- Navigerer til Hugo-repositoryet.
- Sikrer at
main-grenen er aktiv. - Synkroniserer innholdet fra
Posts-mappen i Obsidian tilcontent/postsi Hugo-repoet ved hjelp avrsync.--delete-flagget sørger for at innlegg som slettes fra Obsidian også fjernes fra bloggen. - Kjører
images.pyfor å håndtere bilder (mer om dette under). - Bygger nettstedet med
hugo. Resultatet legges ipublic-mappen. - Oppretter en
CNAME-fil ipublic-mappen slik at GitHub Pages bruker det egendefinerte domenetblogg.grimsen.com. - Commiter og pusher alle endringene i Hugo-repoet (kildekoden for nettstedet) til
main-grenen på GitHub. - Splitter ut
public-mappen til en midlertidig git-gren (gh-pages-tmp) ved hjelp avgit subtree split. - Tvinger push av denne midlertidige grenen til
gh-pages-grenen på GitHub. Dette er grenen som GitHub Pages bruker for å publisere nettstedet. - Sletter den midlertidige grenen.
images.py #
Dette Python-skriptet blir kalt fra oppdatergrimsen og har ansvaret for å fikse bildelinker og kopiere bildefiler.
- Leser alle markdown-filer i
content/posts. - Finner alle Obsidian-style bildelinker, som ser slik ut:
!. - Konverterer disse linkene til standard markdown-format:
. - Søker etter bildefilen i
Filer-mappen i Obsidian-vaultet. - Kopierer bildefilen over til
static/images-mappen i Hugo-repoet.
Denne prosessen sørger for at bildene som er innebygd i Obsidian-notatene blir korrekt vist på den publiserte bloggen.