Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Persediaan blog Obsidian + Hugo saya (Penerbitan automatik dengan kekunci pintas)

Persediaan blog Obsidian + Hugo saya (Penerbitan automatik dengan kekunci pintas)

PHPz
PHPzasal
2024-08-19 20:30:50913semak imbas

My Obsidian + Hugo blogging setup (Auto publishing with hotkeys)

Jika anda mengklik pada artikel ini, anda mungkin tahu apakah kedua-dua teknologi ini tetapi jika anda tidak melakukannya, berikut adalah penjelasan ringkas:

Obsidian

Obsidian ialah editor penurunan harga padat ciri. Tetapi ia bukan sekadar editor penurunan harga. Ia satu cara untuk menguruskan pengetahuan. Ia bagus untuk mengatur pemikiran anda dengan cara yang fleksibel dan tidak linear.

Obsidian berfungsi pada semua platform. Jadi anda boleh menulis artikel pada asasnya dari mana-mana platform.

Saya telah mencatat semua nota saya di dalamnya selama beberapa bulan sekarang dan ia sangat mengagumkan!

Hugo

Hugo ialah penjana laman web statik ultra pantas yang dibuat dalam golang. Saya telah menggunakan hugo untuk blog saya selama hampir 2 tahun sekarang. Saya baru-baru ini menukar tema blog saya. Baca lebih lanjut tentang perubahan Rupa Baharu, permulaan baharu.

Persediaan

Dalam artikel ini saya tidak akan menunjukkan cara untuk menyediakan kedua-dua teknologi ini tetapi semata-mata cara untuk menjadikannya berfungsi bersama.

Jika anda tidak mahu mengetahui cara saya menyediakan keseluruhan blog ini menggunakan hugo, cloudflare dan render.com baca:Cara saya menyediakan blog ini secara percuma (domain, hosting, ssl) Panduan Lengkap

Jika anda tidak mahu panduan yang baik tentang cara menggunakan obsidian, baca:Bermula - obsidian.md

Matlamat

Matlamat saya untuk persediaan ialah:

  1. Menggunakan peti besi obsidian tunggal
  2. Mempunyai templat obsidian yang mudah digunakan yang boleh saya gunakan untuk catatan blog saya.
  3. Pastikan folder bilik kebal peribadi saya peribadi.
  4. Terbitkan automatik menggunakan kekunci pintas obsidian.
  5. Sediakan semua fail markdown dalam repositori github awam, supaya orang ramai boleh mencadangkan perubahan

Persediaan sedia ada

Cara aliran kerja semasa saya berfungsi ialah:

  1. Edit artikel daripada folder kandungan.
  2. Jalankan arahan hugo.
  3. Tekan ke github.
  4. Render.com secara automatik mengambil perubahan dan menyediakannya.

Perjalanan

Jika anda ingin melangkau bahagian perjalanan anda boleh terus ke The Sauce

Saya akan melalui beberapa kesilapan yang saya lakukan semasa menyediakannya.

Kesilapan #1

Idea pertama yang saya ada ialah mencipta symlink mudah (saya menggunakan linux btw) yang akan memautkan kedua-dua folder bersama.

Pada asasnya saya mempunyai dua folder:

blog/
vault/

Folder blog mengandungi semua folder blog dan bilik kebal adalah bilik kebal peribadi saya.

Pautan sym akan memautkan folder ini

blog/content
vault/Blog

Walau bagaimanapun masalahnya dengan symlink ialah kandungan folder tidak kelihatan dalam repo git saya. Ini bermakna orang tidak boleh mencadangkan perubahan pada mana-mana artikel saya

Kesilapan #2

Saya mahu folder saya disegerakkan. Saya cuba menulis beberapa skrip bash yang menyegerakkan dua folder secara automatik menggunakan cronjob. Walau bagaimanapun, mempunyai yang sentiasa menjalankan latar belakang adalah pembaziran sumber apabila saya tidak menulis. Hanya menjalankan skrip melalui cli tidak begitu lancar.

Sos

Pada asasnya cara saya menyediakan ini ialah saya mempunyai dua folder:

blog
vault

Folder blog mengandungi semua fail hugo yang diperlukan dan juga mempunyai sub direktori yang dipanggil kandungan yang menempatkan semua fail blog markdown.

Saya mencipta folder baharu di dalam peti besi saya yang dipanggil Blog

blog/content
vault/Blog

Selepas itu saya menyalin semua fail saya daripada direktori kandungan ke Blog.

Saya kemudian mula menulis artikel ini

Templat obsidian

Saya memerlukan beberapa cara untuk menyediakan templat mudah untuk mengandungi semua perkara hadapan hugo yang diperlukan.

Itu agak mudah.

Baca tentang cara menyediakan templat Templat - obsidian.md

Saya mencipta fail bernama Blog Post dalam folder templat saya

Templat Catatan Blog Saya mengandungi yang berikut:

---
title: "{{Title}}"
description: 
date: "{{date:YYYY-MM-DD}}T{{time:HH:mm:ss}}+00:00"
draft: true
---

**If you enjoyed this article consider [supporting me](https://4rkal.eu.org/donate)**

Saya mempunyai semua perkara hadapan yang diperlukan termasuk tajuk, penerangan dan tarikh dalam format yang hugo tanya.

Saya juga menambah teks derma kecil yang saya sertakan di bahagian bawah setiap artikel.

Ini bermakna saya boleh memasukkan templat ini secara automatik ke dalam mana-mana fail dan mula menulis!

Penyegerakan Folder

Sekarang saya mahu semua fail saya dalam bilik kebal/direktori Blog saya disalin ke blog/kandungan

Terima kasih kepada pengguna perselisihan yang membantu saya menjumpai pemalam obsidian-shellcommands.

NOTA: pemalam ini tidak berfungsi dengan baik pada masa ini dengan versi flatpak obsidian (memandangkan flatpak mengasingkan persekitaran) . Menggunakan alternatif lain (.deb atau appimage) nampaknya berfungsi.

Ia membolehkan anda menjalankan arahan shell di latar belakang dengan kekunci pintas.

Langkah-langkah untuk menyediakan ini adalah seperti berikut:

  1. Install the plugin
  2. Enable the plugin
  3. Go to the plugin options
  4. Click on New shell command
  5. Now you will need to enter a shell command to copy the files from the one folder to the other.

On Linux/MacOS that is:

cp -a ~/folder1/. ~/folder2/

in my case that is cp -a ~/Documents/vault/Blog/. ~/Documents/blog2/content/

On windows it most probably is:

robocopy "%USERPROFILE%\folder1" "%USERPROFILE%\folder2" /E /COPYALL

After that we need to set a hotkey that will run the command

Click on the (+) icon to go to the hotkey settings and assign a hotkey

My hotkey is CTR + 0, simply because that was available.

Now every time that I run the hotkey it copies over all of my files to the hugo folder ready to be published

Auto publishing scripts

I also want to be able to automatically publish my articles. But I want it to happening by hitting a hotkey.

I wrote a small script that does exactly that:

#!/bin/bash
cd ~/Documents/blog

hugo

git add .
git commit -m "new"
git push -u origin main

This script will build my website, commit and push to my github repo, where it is picked up and published. Read How I setup this blog for free (domain, hosting, ssl) Complete Guide to learn how to setup your own blog for free.

Don’t forget to make the script executable by running

chmod +x ./YOURSCRIPT.sh

Then create a new shell command for the shellcommand plugin (as we did before) and enter the path to your script.

In my case that is:

~/Documents/blog2/push.sh

Then enter a hotkey and you’re done!

Conclusion

I can now simply open my obsidian vault, create a new file, insert my template and have all the info automatically entered.

I then write my article inside of obsidian

Run my hotkey and copy all the files into the hugo directory

Hit another key and my blog is published!

If you enjoyed this article consider supporting me

Atas ialah kandungan terperinci Persediaan blog Obsidian + Hugo saya (Penerbitan automatik dengan kekunci pintas). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn