我的 Obsidian + Hugo 博客设置(使用热键自动发布)
来源:dev.to
时间:2024-08-24 15:36:49 312浏览 收藏
哈喽!今天心血来潮给大家带来了《我的 Obsidian + Hugo 博客设置(使用热键自动发布)》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!
如果您点击本文,您可能知道这两种技术是什么,但如果您不知道,这里有一个快速解释:
黑曜石
obsidian 是一个功能齐全的 markdown 编辑器。但它不仅仅是一个 markdown 编辑器。这是管理知识的一种方式。它非常适合以灵活、非线性的方式组织您的想法。
黑曜石适用于所有平台。所以你基本上可以在任何平台上写文章。
几个月来我一直在里面记下我的所有笔记,这太棒了!
雨果
hugo 是一个用 golang 制作的超快速静态网站生成器。我的博客使用 hugo 已经快两年了。我最近更换了博客的主题。了解更多关于新面貌、新开始的变化。
设置
在本文中,我不会展示如何设置这两种技术,而只是展示如何让它们协同工作。
如果您想了解我如何使用hugo、cloudflare 和 render.com 设置整个博客,请阅读:我如何免费设置此博客(域名、托管、ssl)完整指南
如果您想要有关如何使用黑曜石的良好指南,请阅读:入门 - obsidian.md
目标
我的设置目标是:
- 使用单个黑曜石金库
- 有一个易于使用的黑曜石模板,我可以将其用于我的博客文章。
- 将我的个人保管库文件夹保密。
- 使用黑曜石热键自动发布。
- 将所有 markdown 文件放在公共 github 存储库中,以便人们可以提出更改
现有设置
我当前的工作流程的工作方式是:
- 编辑内容文件夹中的文章。
- 运行hugo命令。
- 推送到github。
- 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 命令。
设置步骤如下:
- 安装插件
- 启用插件
- 转到插件选项
- 单击新建 shell 命令
- 现在您需要输入 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相关知识,快来关注吧!
-
505 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
265 收藏
-
200 收藏
-
191 收藏
-
301 收藏
-
456 收藏
-
391 收藏
-
317 收藏
-
198 收藏
-
214 收藏
-
280 收藏
-
355 收藏
-
329 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 507次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习