Ahoj! Rád teď používám poznámkovou aplikaci Obsidian a říkal jsem si, že by bylo pěkné ji používat jako „CMS“ pro některé mé weby. Tedy mít možnost upravovat texty na webech přímo v Obsidianu, na telefonu i na desktopu.
Dřív by to bylo trochu komplikované, ale nedávno Obsidian vydal funkci Headless Sync, která to hodně usnadňuje, protože umožňuje stáhnout obsah z Obsidianu kdekoliv, například na serveru. (Funkce je zatím beta.)
Příprava
Sejf (vault), který chcete takhle používat, musí být synchronizovaný pomocí služby Obsidian Sync. A abyste se k němu ze serveru dostali, potřebujete autentizační token. Abyste ho získali, musíte si – klidně na svém běžném desktopu – nainstalovat CLI aplikaci obsidian-headless:
$ npm install -g obsidian-headless
Získáte tím CLI příkaz ob, přes který se přihlásíte ke svému účtu v Obsidianu:
$ ob login
Po přihlášení dostanete v ~/.obsidian-headless/auth_token token, přes který je pak možné dostat se k datům ze serveru. A ještě k tomu budete potřebovat ID sejfu, které dostanete takhle:
$ ob sync-list-remote
Vaults:
3a30f16b0f69ca9a39b19bf6ff9e6562f8810a8d "Poznámky" (Europe)
Na serveru
Na serveru musíte nejdřív zase nainstalovat obsidian-headless a nastavit synchronizaci:
$ ob sync-setup --path sejf --vault 3a30f16b0f69ca9a39b19bf6ff9e6562f8810a8d --password e2e_heslo
Kde sejf je lokální adresář, kam se vám data stáhnou, 3a30f16… je ID sejfu a e2e_heslo je heslo, kterým máte sejf zašifrovaný. Pak už můžete spustit synchronizaci:
$ ob sync --path sejf
Tímhle se vám do adresáře sejf stáhnou vaše data z Obsidianu a můžete s nimi dělat, co potřebujete, například je nakrmit do nějakého generátoru statických webů. Dobře se to automatizuje například pomocí GitHub Actions s deploymentem do GitHub Pages.
Kam dál
Zatím nevím, jak automaticky spustit překlad webu po změnách obsahu. Pokud používáte GitHub Actions, jde použít trigger workflow_dispatch a spouštět to ručně. Též jde samozřejmě zařídit, aby se web přeložil třeba co hodinu. Ideální by bylo, kdyby Obsidian přidal nějaký webhook, který dá vědět, když se data v sejfu spustí. Myslím, že zatím nic takového nemají.
Skvělé by bylo, kdyby zjednodušili generování toho autentizačního tokenu a přidali možnost omezit, co s tím tokenem jde dělat – ocenil bych například token jen pro čtení nebo jen pro některý podadresář sejfu.
Používáte už někdo Obsidian takhle jako jednoduché CMS? Jaké jsou vaše zkušenosti?