Maison > Article > développement back-end > Ma configuration de blog Obsidian + Hugo (publication automatique avec raccourcis clavier)
Si vous avez cliqué sur cet article vous savez probablement ce que sont ces deux technologies mais si ce n'est pas le cas, voici une explication rapide :
Obsidian est un éditeur de démarques riche en fonctionnalités. Mais ce n’est pas seulement un éditeur de démarques. C’est une façon de gérer les connaissances. C'est idéal pour organiser vos pensées de manière flexible et non linéaire.
Obsidian fonctionne sur toutes les plateformes. Vous pouvez donc écrire des articles depuis pratiquement n’importe quelle plateforme.
J'y prends toutes mes notes depuis quelques mois maintenant et c'est incroyable !
Hugo est un générateur de sites Web statiques ultra rapide réalisé en golang. J'utilise Hugo pour mon blog depuis presque 2 ans maintenant. J'ai récemment changé le thème de mon blog. En savoir plus sur le changement New Look, nouveau départ.
Dans cet article, je ne montrerai pas comment configurer ces deux technologies mais simplement comment les faire fonctionner ensemble.
Si vous ne voulez pas savoir comment j'ai configuré tout ce blog en utilisant Hugo, cloudflare et render.com, lisez : Comment j'ai configuré ce blog gratuitement (domaine, hébergement, SSL) Guide complet
Si vous ne voulez pas un bon guide sur la façon d'utiliser l'obsidienne, lisez : Mise en route - obsidian.md
Mes objectifs pour la configuration sont :
La façon dont fonctionne mon flux de travail actuel est :
Si vous souhaitez sauter la partie voyage, vous pouvez accéder directement à The Sauce
Je vais passer en revue quelques erreurs que j'ai commises lors de la configuration.
La première idée que j'ai eue était de créer un simple lien symbolique (j'utilise Linux d'ailleurs) qui relierait les deux dossiers entre eux.
En gros, j'ai deux dossiers :
blog/ vault/
Le dossier blog contient tous les dossiers du blog et le coffre-fort est mon coffre-fort personnel.
Le lien symbolique relierait ces dossiers
blog/content vault/Blog
Cependant le problème avec un lien symbolique est que le contenu du dossier n'est pas visible dans mon dépôt git. Cela signifie que les gens ne peuvent proposer de modifications à aucun de mes articles
Je voulais que mes dossiers soient synchronisés. J'ai essayé d'écrire quelques scripts bash qui synchronisaient automatiquement les deux dossiers à l'aide d'une tâche cron. Cependant, avoir cela en permanence en arrière-plan est un gaspillage de ressources lorsque je n'écris pas. Exécuter simplement les scripts via cli n'est tout simplement pas si simple.
En gros, la façon dont j'ai configuré cela est que j'ai deux dossiers :
blog vault
Le dossier blog contient tous les fichiers Hugo nécessaires et possède également un sous-répertoire appelé contenu qui héberge tous les fichiers du blog markdown.
J'ai créé un nouveau dossier dans mon coffre-fort appelé Blog
blog/content vault/Blog
Après cela, j'ai copié tous mes fichiers du répertoire de contenu vers le blog.
J'ai alors commencé à écrire cet article
J'avais besoin d'un moyen de configurer un modèle simple pour contenir tous les éléments de présentation de Hugo requis.
C'est assez simple.
Découvrez comment configurer des modèles Modèles - obsidian.md
J'ai créé un fichier appelé Blog Post dans mon dossier de modèles
Mon modèle d'article de blog contient les éléments suivants :
--- 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)**
J'ai toutes les informations nécessaires, y compris un titre, une description et une date dans le format demandé par Hugo.
J'ai également ajouté un petit texte de don que j'inclus au bas de chaque article.
Cela signifie que je peux automatiquement insérer ce modèle dans n'importe quel fichier et commencer à écrire !
Maintenant, je veux que tous mes fichiers dans mon répertoire coffre-fort/Blog soient copiés vers le blog/contenu
Grâce à un utilisateur Discord utile, j'ai trouvé le plugin obsidian-shellcommands.
REMARQUE : ce plugin ne fonctionne pas très bien actuellement avec la version flatpak d'obsidian (puisque flatpak isole l'environnement) . L'utilisation d'une autre alternative (.deb ou appimage) semble fonctionner.
Il vous permet d'exécuter des commandes shell en arrière-plan avec un raccourci clavier.
Les étapes pour configurer cela sont les suivantes :
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
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!
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
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!