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

相关推荐
HalvmånEver2 小时前
Linux:库制作与原理(四)
linux·运维·服务器
晚风吹人醒.2 小时前
LAMP(Linux+Apache+MySQL+PHP)完整搭建过程
linux·服务器·mysql·centos·php·apache·lamp
文弱书生6562 小时前
3-electronbot舵机板电路分析
linux·单片机·嵌入式硬件
LaoWaiHang2 小时前
Linux操作环境的获得
linux
leo_2322 小时前
从开发语言角度来谈谈SMP(下)--SMP(软件制作平台)语言基础知识之十三
linux·运维·开发语言·开发工具·smp(软件制作平台)·应用系统
Lynnxiaowen2 小时前
今天我们继续DevOps内容Jenkins自动化部署PHP项目
linux·自动化·jenkins·php·devops
咕噜企业分发小米2 小时前
Linux嵌入式系统在智能家居中的具体应用案例有哪些?能否详细介绍其技术实现?
linux·运维·智能家居
杰克崔2 小时前
vscode的缓存文件夹及查看进程读写的文件
ide·vscode·编辑器
篙芷2 小时前
k8s节点绑定:nodeName与nodeSelector实战
linux·docker·kubernetes