74、【Ubuntu】【Hugo】搭建私人博客:VSCode 插件&配置

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除

背景

上篇 blog
【Ubuntu】【Hugo】搭建私人博客:Hugo&PaperMod 兼容问题

分析解决了 Hugo 和 PaperMod 的兼容性问题,并搭建好了 blog 站点,并在 PaperMod 主题下,添加了第一篇 blog,下面继续

搭建私人博客

私人博客的写作结构为 VSCode + Hugo,其结构大致如下:

下面推荐一些 VSCode 插件和 VSCode 配置,以便增强写作体验,核心插件有

  • Markdown All in One提供自动补全,快捷键支持等功能 ,比如 Ctrl + B(加粗),Ctrl + I(斜体),Ctrl + K (插入链接),写博客时需要频繁用到标题,列表,引用,代码块等,手动敲符号效率低,使用该插件可以大幅提升写作流畅度

  • Markdown Preview Enhanced :所见即所得,提供实时预览和导出能力,通过 Ctrl + K V 可以打开双栏实时预览(当然也可以通过 Hugo 去实时看更改,只要保存下文件即可)

OK,介绍完插件,再介绍几个 VSCode 配置,首先是插入代码块Markdown All in One 对插入代码块没有绑定默认快捷键,需要自己去绑定,在 VSCode 左下角打开快捷键绑定

搜索 Markdown All in One ,找到 toggle code block,中文名触发代码块,可以输入自己习惯的按键组合,这里选择的是 【Shift + `】 组合

然后是关于图片粘贴插入,同样是 Markdown All in One ,集成了图片插入功能,当复制了图片之后,在 Markdown 文件中按下 Ctrl + V,图片便会插入到指定位置

不过特点是图片会直接保存到 *.md 所在目录,不可以自定义路径

在终端输入

bash 复制代码
nohup hugo server --bind=0.0.0.0 --port=1313 > /dev/null 2>&1 &

可以让 Hugo 在后台安静运行,其中这里的命令

  • nohup:忽略挂断信号,终端关闭后仍可以运行
  • > /dev/null 2>&1:丢弃所有输出,保持静默,避免信息传递到终端
  • &:放入后台
  • --bind=0.0.0.0:所有 IP 都可以访问
  • --port=1313:指定 1313 端口可以访问 Hugo 站点

OK,粘贴图片后,发现浏览器打不开图片

这涉及到资源引用路径和 Hugo 构建机制的问题,首先 Hugo 支持下面两种文章结构

  • 单文件 + 同目录图片 :就像现在这种情况,first-blog.md 和图片在同一级目录
bash 复制代码
content/posts/first-blog.md
content/posts/screenshot.png
  • Page Bundle(推荐) :用目录名来来作为文章名,其中目录名(文章名)里面有个 index.md,然后图片和 index.md 都在同一级目录里面,结构如下
bash 复制代码
content/posts/fist-blog/index.md
content/posts/first-blog/screenshot.png

当用单文件 + 同目录图片 时,Hugo 默认不会把 *.md 文件同目录的图片复制到 public/

这里 public/ 文件夹是 Hugo 生成的最终可部署的静态网站目录,public/ 包含:

  • 所有的 HTML 页面(由 *.md 源文件渲染而来)
  • 所有的 CSS,JavaScript 文件
  • 所有需要被浏览器访问的资源,比如图片,PDF,视频等

public/ 不包含

  • 源 Markdown 文件(在 content/ 目录下)
  • 配置文件(config.yaml,在项目根目录下)
  • 主题源码(themes/,和 *.md 源文件一起被渲染)
  • 还有草稿,未来文章等(除非显式启用)

当把网站部署到 GitHub Pages,Netlify,VPS 时,只需上传 public/ 这一个文件夹即可


OK,本篇先到这里,如有疑问,欢迎评论区留言讨论,祝各位功力大涨,技术更上一层楼!!!更多内容见下篇 blog
【Ubuntu】【Hugo】搭建私人博客:Page Bundle

相关推荐
小贾要学习16 小时前
【Linux】基于自定义TCP协议的日期计算器
linux·网络·c++·网络协议·tcp/ip
2501_9200470316 小时前
iptables防火墙
linux·运维·网络安全
带土117 小时前
7. 线程编程(线程概念和创建)
linux
华清远见IT开放实验室17 小时前
硬核根基,智能载体:华清远见嵌入式“硬件+仿真+课程+师资”产教融合与实践教学方案
linux·人工智能·stm32·物联网·嵌入式·虚拟仿真
Anthony_23117 小时前
Linux 防火墙完全指南:从 iptables 到 firewalld
linux·运维·服务器
月走乂山17 小时前
Linux 服务器安装 CC Switch GUI 工具 + VNC 远程桌面完整教程
linux·运维·服务器
老虎海子17 小时前
从零入门 OpenAI Codex|登录、权限、终端、记忆配置全实操
人工智能·vscode·自然语言处理·chatgpt·个人开发·业界资讯
手可摘星辰的少年17 小时前
二级指针到底在改什么?——从C语言基础到Linux内核文件系统注册机制
linux
子建莫敌17 小时前
50 ubuntu22.04
ubuntu
wanQQ17 小时前
在 KDE 中将 Nemo 设为默认文件管理器后,浏览器仍调用 Dolphin 的解决方案
linux