"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Configuración de blogs My Obsidian + Hugo (publicación automática con teclas de acceso rápido)

Configuración de blogs My Obsidian + Hugo (publicación automática con teclas de acceso rápido)

Publicado el 2024-08-29
Navegar:900

My Obsidian   Hugo blogging setup (Auto publishing with hotkeys)

Si hiciste clic en este artículo probablemente sepas cuáles son estas dos tecnologías, pero si no, aquí tienes una explicación rápida:

Obsidiana

Obsidian es un editor de rebajas repleto de funciones. Pero no es sólo un editor de rebajas. Es una forma de gestionar el conocimiento. Es excelente para organizar tus pensamientos de una manera flexible y no lineal.

Obsidian funciona en todas las plataformas. Así que puedes escribir artículos prácticamente desde cualquier plataforma.

¡He estado tomando todas mis notas durante un par de meses y es increíble!

hugo

Hugo es un generador de sitios web estáticos ultrarrápido creado en golang. He estado usando hugo para mi blog durante casi 2 años. Recientemente cambié el tema de mi blog. Lea más sobre el cambio Nueva apariencia, nuevo comienzo.

Configuración

En este artículo no mostraré cómo configurar estas dos tecnologías, sino simplemente cómo hacer que funcionen juntas.

Si no quieres saber cómo configuro este blog completo usando hugo, cloudflare y render.com, lee: Cómo configuro este blog de forma gratuita (dominio, hosting, ssl) Guía completa

Si no quieres una buena guía sobre cómo usar la obsidiana, lee: Primeros pasos - obsidian.md

Objetivos

Mis objetivos para la configuración son:

  1. Usando una única bóveda de obsidiana
  2. Tengo una plantilla de obsidiana fácil de usar que puedo usar para las publicaciones de mi blog.
  3. Mantener privadas mis carpetas personales de bóveda.
  4. Publicación automática usando teclas de acceso rápido de obsidiana.
  5. Tener todos los archivos de rebajas en un repositorio público de github, para que la gente pueda proponer cambios

Configuración existente

La forma en que funciona mi flujo de trabajo actual es:

  1. Editar artículos desde la carpeta de contenido.
  2. Ejecuta el comando hugo.
  3. Enviar a github.
  4. Render.com recoge automáticamente los cambios y los publica.

Viaje

Si quieres saltarte la parte del viaje, puedes ir directamente a The Sauce

Repasaré un par de errores que cometí al configurar esto.

Error #1

La primera idea que tuve fue crear un enlace simbólico simple (yo uso Linux por cierto) que vincularía las dos carpetas.

Básicamente tengo dos carpetas:

blog/
vault/

La carpeta del blog contiene todas las carpetas del blog y la bóveda es mi bóveda personal.

El enlace simbólico vincularía estas carpetas

blog/content
vault/Blog

Sin embargo, el problema con un enlace simbólico es que el contenido de la carpeta no es visible en mi repositorio de git. Esto significa que las personas no pueden proponer cambios a ninguno de mis artículos

Error #2

Quería sincronizar mis carpetas. Intenté escribir un par de scripts bash que sincronizaban automáticamente las dos carpetas mediante un cronjob. Sin embargo, tener eso ejecutándose constantemente en segundo plano es un desperdicio de recursos cuando no estoy escribiendo. Simplemente ejecutar los scripts a través de cli no es tan sencillo.

la salsa

Básicamente, la forma en que configuré esto es que tengo dos carpetas:

blog
vault

La carpeta del blog contiene todos los archivos de hugo necesarios y también tiene un subdirectorio llamado contenido que alberga todos los archivos del blog de rebajas.

Creé una nueva carpeta dentro de mi bóveda llamada Blog

blog/content
vault/Blog

Después de eso, copié todos mis archivos del directorio de contenido al Blog.

Entonces comencé a escribir este mismo artículo

Plantillas de obsidiana

Necesitaba alguna manera de configurar una plantilla simple que contuviera todo el material preliminar requerido de Hugo.

Eso es bastante fácil.

Lea acerca de cómo configurar plantillas Plantillas - obsidian.md

Creé un archivo llamado Publicación de blog en mi carpeta de plantillas

La plantilla de mi publicación de blog contiene lo siguiente:

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

Tengo todo el material preliminar requerido, incluido un título, una descripción y una fecha en el formato que pide hugo.

También agregué un pequeño texto de donación que incluyo al final de cada artículo.

¡Esto significa que puedo insertar automáticamente esta plantilla en cualquier archivo y comenzar a escribir!

Sincronización de carpetas

Ahora quiero que todos mis archivos en mi bóveda/directorio de blog se copien en el blog/contenido

Gracias a un útil usuario de Discord, encontré el complemento obsidian-shellcommands.

NOTA: este complemento actualmente no funciona muy bien con la versión flatpak de obsidian (ya que flatpak aísla el entorno). Usar otra alternativa (.deb o appimage) parece funcionar.

Te permite ejecutar comandos de shell en segundo plano con una tecla de acceso rápido.

Los pasos para configurar esto son los siguientes:

  1. Instalar el complemento
  2. Habilitar el complemento
  3. Ir a las opciones del complemento
  4. Haga clic en Nuevo comando de shell
  5. Ahora necesitarás ingresar un comando de shell para copiar los archivos de una carpeta a la otra.

En Linux/MacOS, es decir:

cp -a ~/carpeta1/. ~/carpeta2/

en mi caso es cp -a ~/Documents/vault/Blog/. ~/Documentos/blog2/content/

En Windows lo más probable es que sea:

robocopy "%USERPROFILE%\carpeta1" "%USERPROFILE%\carpeta2" /E /COPYALL

Después de eso, debemos configurar una tecla de acceso rápido que ejecutará el comando

Haga clic en el ícono ( ) para ir a la configuración de teclas de acceso rápido y asignar una tecla de acceso rápido

Mi tecla de acceso rápido es CTR 0, simplemente porque estaba disponible.

Ahora, cada vez que ejecuto la tecla de acceso rápido, se copian todos mis archivos en la carpeta hugo, listos para publicarse

Guiones de publicación automática

También quiero poder publicar mis artículos automáticamente. Pero quiero que esto suceda presionando una tecla de acceso rápido.

Escribí un pequeño guión que hace exactamente eso:

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

hugo

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

Este script construirá mi sitio web, lo confirmará y lo enviará a mi repositorio de github, donde se recoge y publica. Lea Cómo configuro este blog gratis (dominio, hosting, ssl) Guía completa para aprender cómo configurar su propio blog gratis.

No olvides hacer que el script sea ejecutable ejecutando

chmod x ./TUSCRIPT.sh

Luego cree un nuevo comando de shell para el complemento shellcommand (como hicimos antes) e ingrese la ruta a su secuencia de comandos.

En mi caso es:

~/Documentos/blog2/push.sh

¡Luego ingresa una tecla de acceso rápido y listo!

Conclusión

Ahora puedo simplemente abrir mi bóveda de obsidiana, crear un nuevo archivo, insertar mi plantilla e ingresar toda la información automáticamente.

Luego escribo mi artículo dentro de obsidiana

Ejecuta mi tecla de acceso rápido y copia todos los archivos en el directorio hugo

¡Pulsa otra tecla y mi blog estará publicado!

Si te ha gustado este artículo, considera apoyarme

Declaración de liberación Este artículo se reproduce en: https://dev.to/4rkal/my-obsidian-hugo-blogging-setup-auto-publishing-with-hotkeys-365d?1 Si hay alguna infracción, comuníquese con [email protected] para borrarlo
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3