70、【Ubuntu】【Hugo】搭建私人博客:新建站点

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

背景

上篇 blog
【Ubuntu】【Hugo】搭建私人博客:Hugo 版本对比

分析了 Extended 版本中,额外集成的 Sass/SCSS 编译功能,并对比了和 CSS 的区别,并类比了和 C语言/汇编的关系,下面继续

搭建私人博客

上篇 blog 分析了 Sass/SCSS 的编译功能,下面再分析 Hugo Extended 版本中另外一个 WebP 图像处理功能

WebP 图像处理

首先,WebP 是 Google 推出的一种新型图片格式,比传统的 JPG/PNG 体积更小,画质更好,能让网站加载更快,比如一张 JPG 图片体积是 500KB,转成 WebP 后,体积只有 200KB,肉眼看不出差别,比如在 Markdown 中写

md 复制代码
![alt text](/images/image.png)

Hugo 可以在生成网站时,会自动把 photo.jpg 转成 WebP 格式,并让支持 WebP 的浏览器优先加载,但这个功能需要图像处理引擎,比如

  • Hugo 普通版:没有图像处理引擎,不能转成 WebP
  • Hugo Extended 版 :内置 libwebp 引擎,可以自动优化和转换成 WebP 图片

这对做博客,作品集,电商展示等图片多的网站特别有用

OK,最后再总结下

  • Hugo 普通版:纯 Go 编写,无 CGO 依赖
  • Hugo Extended 版 :启用了 CGO,链接了 C/C++ 库,比如 libsass(用于将 .scss.sass 文件编译为 CSS),与 libwebp(用于图像处理,比如生成 WebP 格式)

当然,在官方发布的二进制文件中,已静态链接 libsasslibwebp,用户无需自行编译,开箱即用

OK,分析完 Hugo Standard 标准版和 Extended 版的区别,下面来创建博客站点,在终端输入

bash 复制代码
hugo new site myblog

创建测试站点,当然,可以通过 help 命令查看命令说明,比如终端输入

bash 复制代码
hugo help new site

可以看到帮助信息如下

可以看到,hugo new site [path] [flags] 命令可以在指定的目录 path 里创建一个 Hugo 网站,网站的结构完整(有 content/layouts/themes 等),但没有文章,没有主题,需要后续添加,创建成功后,可以看里面的结构

bash 复制代码
cd myblog
ls

hugo new site [path] [flags] 命令常用参数 flags 包括

  • -f toml(默认) :配置文件用 hugo.toml
  • -f yaml:配置文件用 hugo.yaml
  • -f json:配置文件用 hugo.json
  • --force:即使目标文件夹非空,也强制创建,这个谨慎使用,因为会污染网站结构

OK,Hugo 站点创建完了,接下来看下一步,配置主题

Hugo 主题有很多,官方链接 https://themes.gohugo.io/ 可以看主题 Demo,选择自己喜欢的风格

下面以经典主题 PaperMod 为例,终端输入

bash 复制代码
git init

git init 是 Git 的初始化命令,可以把当前文件夹变成一个 Git 仓库,此时可以用 Git 来跟踪,保存,管理这个项目下所有文件的变更

OK,此时 Hugo 站点下就出现了一个隐藏文件夹 .git

这个 .git 文件夹会记录

  • 所有文件的历史版本
  • 谁修改了什么(作者,时间等)
  • 分支信息,标签等

项目文件本身不会被修改,只是多了个版本控制后台,当然,一个项目只需要 git init 一次,重复运行会提示 Reinitialized existing Git repository

此时当前文件夹就可以记录历史,回滚错误和协作开发了,这是使用 Git 的第一步,也是最重要的一步(万事开头难,好的开始是成功的一半!)


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

相关推荐
麦麦Max2 小时前
Docker
运维·docker·容器
Danileaf_Guo2 小时前
让Ubuntu服务器变身OSPF路由器!实现服务器与网络设备直接对话
linux·运维·服务器·ubuntu
HalvmånEver2 小时前
Linux:库制作与原理(三)
linux·运维·服务器
管理大亨2 小时前
Linux服务器性能优化全攻略
linux·服务器·性能优化
chinesegf2 小时前
gunicorn 进程管理的常用命令
linux·运维·gunicorn
木子欢儿2 小时前
在 Debian 13 上搭建一个 NTP (Network Time Protocol) 服务器
运维·服务器·开发语言·debian·php
倔强的石头1062 小时前
Linux 进程深度解析(五):程序地址空间 —— 进程的独立内存王国
linux·运维·服务器
SELSL2 小时前
Linux文件属性及目录
linux·c语言·linux目录文件·linux文件属性、目录api·linux文件属性