"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Minha configuração de blog Obsidian + Hugo (publicação automática com teclas de atalho)

Minha configuração de blog Obsidian + Hugo (publicação automática com teclas de atalho)

Publicado em 2024-08-29
Navegar:241

My Obsidian   Hugo blogging setup (Auto publishing with hotkeys)

Se você clicou neste artigo, provavelmente sabe o que são essas duas tecnologias, mas se não souber, aqui vai uma explicação rápida:

Obsidiana

Obsidian é um editor de descontos repleto de recursos. Mas não é apenas um editor de descontos. É uma forma de gerenciar o conhecimento. É ótimo para organizar seus pensamentos de uma forma flexível e não linear.

Obsidian funciona em todas as plataformas. Assim, você pode escrever artigos basicamente em qualquer plataforma.

Tenho feito todas as minhas anotações há alguns meses e é incrível!

Hugo

Hugo é um gerador de sites estáticos ultrarrápido feito em golang. Uso o hugo no meu blog há quase 2 anos. Recentemente mudei o tema do meu blog. Leia mais sobre a mudança Novo visual, novo começo.

Configurar

Neste artigo não mostrarei como configurar essas duas tecnologias, mas apenas como fazê-las funcionar juntas.

Se você não quiser saber como configuro este blog inteiro usando hugo, cloudflare e render.com, leia:Como configuro este blog gratuitamente (domínio, hospedagem, SSL) Guia completo

Se você não deseja um bom guia sobre como usar obsidiana, leia:Primeiros passos - obsidian.md

Metas

Meus objetivos para a configuração são:

  1. Usando um único cofre de obsidiana
  2. Tenha um modelo de obsidiana fácil de usar que eu possa usar em minhas postagens no blog.
  3. Mantenha minhas pastas pessoais do cofre privadas.
  4. Publicação automática usando teclas de atalho de obsidiana.
  5. Tenha todos os arquivos markdown em um repositório público do github, para que as pessoas possam propor alterações

Configuração existente

A forma como meu fluxo de trabalho atual funciona é:

  1. Edite artigos da pasta de conteúdo.
  2. Execute o comando hugo.
  3. Enviar para o github.
  4. Render.com capta automaticamente as alterações e as veicula.

Jornada

Se você quiser pular a parte da viagem, você pode ir direto para o The Sauce

Vou cometer alguns erros que cometi ao configurar isso.

Erro nº 1

A primeira ideia que tive foi criar um link simbólico simples (eu uso Linux, aliás) que vincularia as duas pastas.

Basicamente tenho duas pastas:

blog/
vault/

A pasta do blog contém todas as pastas do blog e o cofre é meu cofre pessoal.

O link simbólico vincularia essas pastas

blog/content
vault/Blog

No entanto, o problema com um link simbólico é que o conteúdo da pasta não é visível em meu repositório git. Isso significa que as pessoas não podem propor alterações em nenhum dos meus artigos

Erro #2

Eu queria sincronizar minhas pastas. Tentei escrever alguns scripts bash que sincronizaram automaticamente as duas pastas usando um cronjob. No entanto, ter esse plano de fundo constantemente em execução é um desperdício de recursos quando não estou escrevendo. Simplesmente executar os scripts via cli não é tão fácil.

O molho

Basicamente, a forma como configurei isso é que tenho duas pastas:

blog
vault

A pasta do blog contém todos os arquivos hugo necessários e também possui um subdiretório chamado content que abriga todos os arquivos do blog markdown.

Eu criei uma nova pasta dentro do meu cofre chamada Blog

blog/content
vault/Blog

Depois disso copiei todos os meus arquivos do diretório de conteúdo para o Blog.

Comecei então a escrever este mesmo artigo

Modelos de obsidiana

Eu precisava de alguma forma de configurar um modelo simples para conter todo o material necessário do hugo.

Isso é muito fácil.

Leia sobre como configurar modelos Modelos - obsidian.md

Eu criei um arquivo chamado Blog Post na minha pasta de modelos

Meu modelo de postagem no blog contém o seguinte:

---
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)**

Tenho todo o texto necessário, incluindo título, descrição e data no formato que Hugo pede.

Também adicionei um pequeno texto de doação que incluo no final de cada artigo.

Isso significa que posso inserir automaticamente este modelo em qualquer arquivo e começar a escrever!

Sincronização de pastas

Agora quero que todos os meus arquivos no meu diretório vault/Blog sejam copiados para o blog/content

Graças a um usuário útil do discord, encontrei o plugin obsidian-shellcommands.

NOTA: este plugin atualmente não funciona muito bem com a versão flatpak do obsidian (já que flatpak isola o ambiente). Usar outra alternativa (.deb ou appimage) parece funcionar.

Ele permite que você execute comandos shell em segundo plano com uma tecla de atalho.

As etapas para configurar isso são as seguintes:

  1. Instale o plug-in
  2. Ative o plug-in
  3. Vá para as opções do plugin
  4. Clique em Novo comando shell
  5. Agora você precisará inserir um comando shell para copiar os arquivos de uma pasta para outra.

No Linux/MacOS, isto é:

cp -a ~/pasta1/. ~/pasta2/

no meu caso, é cp -a ~/Documents/vault/Blog/. ~/Documentos/blog2/content/

No Windows provavelmente é:

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

Depois disso, precisamos definir uma tecla de atalho que executará o comando

Clique no ícone ( ) para acessar as configurações de teclas de atalho e atribuir uma tecla de atalho

Minha tecla de atalho é CTR 0, simplesmente porque estava disponível.

Agora toda vez que executo a tecla de atalho ela copia todos os meus arquivos para a pasta hugo prontos para serem publicados

Scripts de publicação automática

Também quero poder publicar automaticamente meus artigos. Mas eu quero que isso aconteça pressionando uma tecla de atalho.

Eu escrevi um pequeno script que faz exatamente isso:

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

hugo

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

Este script construirá meu site, confirmará e enviará para meu repositório github, onde será coletado e publicado. Leia Como configuro este blog gratuitamente (domínio, hospedagem, SSL) Guia completo para aprender como configurar seu próprio blog gratuitamente.

Não se esqueça de tornar o script executável executando

chmod x ./SEUSCRIPT.sh

Em seguida, crie um novo comando shell para o plugin shellcommand (como fizemos antes) e insira o caminho para o seu script.

No meu caso é:

~/Documents/blog2/push.sh

Em seguida, insira uma tecla de atalho e pronto!

Conclusão

Agora posso simplesmente abrir meu cofre de obsidiana, criar um novo arquivo, inserir meu modelo e ter todas as informações inseridas automaticamente.

Então escrevo meu artigo dentro da obsidiana

Execute minha tecla de atalho e copie todos os arquivos para o diretório hugo

Aperte outra tecla e meu blog será publicado!

Se você gostou deste artigo, considere me apoiar

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/4rkal/my-obsidian-hugo-blogging-setup-auto-publishing-with-hotkeys-365d?1 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3