67、【Ubuntu】【Hugo】搭建私人博客(一)

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

背景

上篇 blog
【Ubuntu】【Gitlab】拉出内网 Web 服务:Gitlab 配置审视(八)

分析完了 server 块中的 location 配置,下面进入一个新领域:搭建私人博客

搭建私人博客

虽然在线博客,比如 CSDN,博客园,掘金,知乎专栏等平台提供了便捷的在线写作和发布环境,但有时候会有些比较私人,系统化的内容,更想记录在一个自己的专属空间里(不图流量,不图曝光),这个时候,私人博客就是个比较好的选择,下面将用一些篇幅着重介绍下搭建私人博客的过程

首先来看下,私人博客和在线博客的一些特点和区别,从几个角度:内容自主可控,个性化与自由度,长期稳定性与可迁移性等等方面

  • 数据所有权 :对于在线博客等平台,写的文章属于平台托管 ,平台可能修改规则,下架内容,甚至关闭账号等(当然,正常情况下,这种也比较少),而私人博客的数据完全由自己掌握
  • 无审查限制 :平台可能会对敏感词,技术讨论 (有些技术可能还是比较敏感的),个人观点进行过滤或删除,而私人博客只要遵守法律法规,内容自由度高得多
  • 设计自由:可以完全自定义博客的外观,布局,交互逻辑等,而不用受平台模板限制(属于风格可以自定义吧)
  • 功能扩展:可以集成评论系统,搜索,暗黑模式,RSS 订阅(让用户订阅网站的更新内容,而无需频繁手动访问网站),多语言支持等等,按需定制,组件化程度高
  • 域名专属 :可以拥有自己的域名,建立专业形象,CSDN 虽然也可以自定义域名,但属于 xxx.csdn.net 这样的子域名
  • 易于备份与迁移:私人博客(一般是静态博客)本质是一堆 HTML 文件 + Markdown 源文件,可轻松备份到 GitHub,本地硬盘或迁移到任何服务器,备份和迁移方便
  • 专注写作,无干扰:私人博客干净简洁,没有广告,没有推荐流,读者体验更纯粹,不会被平台广告或无关内容干扰。
  • 避免数据追踪:大型平台一般会收集用户行为数据用于推荐或广告,而自建博客可选择不集成任何追踪脚本

举个形象点的比喻,博客平台是租来的摊位,而私人博客是自己盖的房子,如果只图方便,用平台博客就足够了

OK,分析完平台博客和私人博客的一些特点,下面来分析看私人博客都有哪些主流系统,首先是第一类:主流静态博客生成器(适合大多数人,其主要优点在于安全,快速,免费托管,版本可控,支持 Markdown 语法等)

1、Hugo(Go 语言),极速之王

  • 适合人群:追求极致构建速度、希望快速迭代内容的人
  • 优势 :构建速度极快(万篇文章秒级生成,Go 语言本身就是性能利器 ),博客主题丰富(可参考 Hugo 主题网站 https://themes.gohugo.io),原生支持多语言,分类,标签,RSS 订阅,搜索等功能
  • 缺点:模板语法(Go Template)对新手稍有门槛

2、Hexo(Node.js),中文生态友好

  • 适合人群:熟悉 JavaScript / Node.js 的用户,尤其中文博主
  • 优势 :插件生态成熟(比如 hexo-deployer-git 一键部署),中文主题多(NexT,Butterfly 等美观且功能强),社区教程丰富(B站,知乎大量入门指南)
  • 缺点:依赖 Node 环境,大型站点构建较慢

3、Jekyll(Ruby),GitHub 官方亲儿子
适合人群:想用 GitHub Pages 但不想折腾部署的人

  • 优势 :GitHub Pages 原生支持,无需 CI/CD,并且与 GitHub 深度集成(Issues 评论、Actions 自动构建等)
    缺点国内配置略麻烦,主题较少更新

这里再提一点,上面提到的三种系统都是静态博客生成器(Static Site Generator,简称 SSG) ,SSG 可以将纯文本内容(一般是 Markdown 文件)和模板自动转换为完整的静态 HTML 网站,其流程大致如下

SSG 不依赖数据库或服务器端脚本(没有后端) ,最终生成的网站只包含 HTML,CSS,JavaScript 和图片等静态文件,可以直接通过任何 Web 服务器(甚至 GitHub Pages 等免费托管平台)快速,安全地提供服务


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

相关推荐
阿里巴啦2 小时前
用React+Three.js 做 3D Web版搭建三维交互场景:模型的可视化摆放与轻量交互
前端·react·three.js·模型可视化·web三维·web三维交互场景
.小墨迹2 小时前
C++学习之std::move 的用法与优缺点分析
linux·开发语言·c++·学习·算法·ubuntu
风华同学2 小时前
【Linux驱动篇】LED驱动开发实验
linux·驱动开发·ubuntu
Liu.7742 小时前
vue3组件之间传输数据
前端·javascript·vue.js
|晴 天|2 小时前
前端闭包:从概念到实战,解锁JavaScript高级技能
开发语言·前端·javascript
开发者小天2 小时前
react的拖拽组件库dnd-kit
前端·react.js·前端框架
用户4445543654262 小时前
在Android开发中阅读源码的指导思路
前端
用户54277848515402 小时前
ESM 模块(ECMAScript Module)详解
前端
全栈前端老曹2 小时前
【ReactNative】核心组件与 JSX 语法
前端·javascript·react native·react.js·跨平台·jsx·移动端开发