当前位置:首页 > 文章列表 > Golang > Go教程 > 我的 Obsidian + Hugo 博客设置(使用热键自动发布)

我的 Obsidian + Hugo 博客设置(使用热键自动发布)

来源:dev.to 2024-08-24 15:36:49 0浏览 收藏

哈喽!今天心血来潮给大家带来了《我的 Obsidian + Hugo 博客设置(使用热键自动发布)》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!

我的 Obsidian + Hugo 博客设置(使用热键自动发布)

如果您点击本文,您可能知道这两种技术是什么,但如果您不知道,这里有一个快速解释:

黑曜石

obsidian 是一个功能齐全的 markdown 编辑器。但它不仅仅是一个 markdown 编辑器。这是管理知识的一种方式。它非常适合以灵活、非线性的方式组织您的想法。

黑曜石适用于所有平台。所以你基本上可以在任何平台上写文章。

几个月来我一直在里面记下我的所有笔记,这太棒了!

雨果

hugo 是一个用 golang 制作的超快速静态网站生成器。我的博客使用 hugo 已经快两年了。我最近更换了博客的主题。了解更多关于新面貌、新开始的变化。

设置

在本文中,我不会展示如何设置这两种技术,而只是展示如何让它们协同工作。

如果您想了解我如何使用hugo、cloudflare 和 render.com 设置整个博客,请阅读:我如何免费设置此博客(域名、托管、ssl)完整指南

如果您想要有关如何使用黑曜石的良好指南,请阅读:入门 - obsidian.md

目标

我的设置目标是:

  1. 使用单个黑曜石金库
  2. 有一个易于使用的黑曜石模板,我可以将其用于我的博客文章。
  3. 将我的个人保管库文件夹保密。
  4. 使用黑曜石热键自动发布。
  5. 将所有 markdown 文件放在公共 github 存储库中,以便人们可以提出更改

现有设置

我当前的工作流程的工作方式是:

  1. 编辑内容文件夹中的文章。
  2. 运行hugo命令。
  3. 推送到github。
  4. render.com 自动获取更改并提供服务。

旅行

如果你想跳过旅程部分可以直接去the sauce

我将经历一些在设置时犯的错误。

错误#1

我的第一个想法是创建一个简单的符号链接(顺便说一句,我使用 linux),将两个文件夹链接在一起。

基本上我有两个文件夹:

blog/
vault/

博客文件夹包含所有博客文件夹,保管库是我的个人保管库。

符号链接将链接这些文件夹

blog/content
vault/blog

然而符号链接的问题是文件夹内容在我的 git 存储库中不可见。这意味着人们不能对我的任何文章提出更改

错误#2

我想要同步我的文件夹。我尝试编写几个 bash 脚本,使用 cronjob 自动同步两个文件夹。然而,当我不写作时,不断运行后台是一种资源浪费。仅仅通过 cli 运行脚本并不那么顺利。

酱汁

基本上我设置的方式是我有两个文件夹:

blog
vault

blog 文件夹包含所有必需的 hugo 文件,还有一个名为 content 的子目录,其中包含所有 markdown 博客文件。

我在我的保管库中创建了一个名为 blog 的新文件夹

blog/content
vault/blog

之后,我将所有文件从内容目录复制到博客。

然后我就开始写这篇文章

黑曜石模板

我需要某种方法来设置一个简单的模板来包含所有必需的 hugo 前言。

这很简单。

阅读如何设置模板 templates - obsidian.md

我在模板文件夹中创建了一个名为 blog post 的文件

我的博客文章模板包含以下内容:

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

我有所有必需的前言,包括标题、描述和日期,格式符合 hugo 要求。

我还添加了一个小的捐赠文本,我将其包含在每篇文章的底部。

这意味着我可以自动将此模板插入到任何文件中并开始编写!

文件夹同步

现在我希望将我的保管库/博客目录中的所有文件复制到博客/内容

感谢一位乐于助人的不和谐用户,我找到了 obsidian-shellcommands 插件。

注意: 这个插件目前不能很好地与黑曜石的 flatpak 版本配合使用(因为 flatpak 隔离了环境)。使用另一种替代方案(.deb 或 appimage)似乎可行。

它允许您使用热键在后台运行 shell 命令。

设置步骤如下:

  1. 安装插件
  2. 启用插件
  3. 转到插件选项
  4. 单击新建 shell 命令
  5. 现在您需要输入 shell 命令将文件从一个文件夹复制到另一个文件夹。

在 linux/macos 上是:

cp -a ~/folder1/. 〜/文件夹2/

在我的例子中是 cp -a ~/documents/vault/blog/。 〜/文档/blog2/内容/

在 windows 上最有可能是:

robocopy "%userprofile%folder1" "%userprofile%folder2" /e /copyall

之后我们需要设置一个运行命令的热键

单击(+)图标进入热键设置并分配热键

我的热键是 ctr + 0,只是因为它可用。

现在,每次我运行热键时,它都会将我的所有文件复制到hugo文件夹中,准备发布

自动发布脚本

我也希望能够自动发布我的文章。但我希望通过按下热键来实现它。

我写了一个小脚本来完成这个任务:

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

hugo

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

这个脚本将构建我的网站,提交并推送到我的 github 存储库,在那里它被提取和发布。阅读我如何免费设置此博客(域名、托管、ssl)完整指南,了解如何免费设置您自己的博客。

不要忘记通过运行使脚本可执行

chmod +x ./yourscript.sh

然后为 shellcommand 插件创建一个新的 shell 命令(就像我们之前所做的那样)并输入脚本的路径。

就我而言是:

~/documents/blog2/push.sh

然后输入热键就完成了!

结论

我现在可以简单地打开我的黑曜石保险库,创建一个新文件,插入我的模板并自动输入所有信息。

然后我在黑曜石里面写我的文章

运行我的热键并将所有文件复制到hugo目录中

再按一个键,我的博客就发布了!

如果您喜欢这篇文章请考虑支持我

终于介绍完啦!小伙伴们,这篇关于《我的 Obsidian + Hugo 博客设置(使用热键自动发布)》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

版本声明
本文转载于:dev.to 如有侵犯,请联系study_golang@163.com删除
使用 React Router v6 进行布局使用 React Router v6 进行布局
上一篇
使用 React Router v6 进行布局
感觉没有动力
下一篇
感觉没有动力
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • ljg-skills -
    ljg-skills
    ljg-skills 是李继刚开源的 AI 技能与提示词集合,面向大模型使用者整理了一批可复用的 prompt、角色设定和任务技能模板,适合用于学习提示词设计、搭建个人 AI 工作流和沉淀团队常用智能体能力。
    1735次使用
  • MELO音乐 - AI 音乐生成平台,支持多模态创作能力
    MELO音乐
    MELO音乐是一站式AI视频与音乐制作助手,对标suno, udio的高品质体验。提供伴奏生成、原创写词、无损导出、哼唱识曲、混音变声等全套音频与短视频编辑工具。无论是流行Kpop、电音说唱、民谣古风、摇滚儿歌还是商用轻音乐,MELO为你免费谱曲,轻松做同款!
    1671次使用
  • UniScribe - AI 免费在线音视频转文字平台
    UniScribe
    UniScribe 是一款 AI 音视频转文字与内容整理工具,支持上传音频、视频文件或粘贴 YouTube 链接,自动生成转写文本、摘要、思维导图和关键问题,并支持多格式导出,适合会议记录、课程学习、访谈整理和内容创作复盘。
    1606次使用
  • 剧云 - 免费 AI 智能中文剧本创作平台
    剧云
    剧云是专业中文剧本创作平台,安全稳定运行十余年,集成AI编剧、剧本医生审核、人物小传、剧情关系图、大纲编写、多人协作、Word导入导出、版权管控功能,数据安全防护,轻松高效创作剧本。
    1808次使用
  • 万象有声 - AI 一站式有声内容创作平台
    万象有声
    万象有声,一个专为有声创作者打造的新一代智能有声内容创作平台。平台提供专业的智能拆章、智能画本编辑、AI配音、AI生成音效、后期制作、智能对轨、智能审听等有声创作全流程工具,可以帮助创作者高效、低成本创作出引人入胜的有声作品。立即体验,让有声书制作更简单!
    1793次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码