0%

浅谈个人博客

前言

80、90后最早接触的个人博客应该是QQ空间了,可以自行装扮布置,当时主要用来做个人相册,也是当年非主流重要的基地。

大二的时候在CSDN上写过两篇技术文章,也用过云笔记,最终都放弃了,主要原因是是得绑定账号,并且每次查看都要打开客户端或者浏览器等。

大三用Jekyll搭建了个人博客,用了两个月就转战Hexo了,一直持续到现在。

回过头看,收获还是蛮多的,有水文,也有熬夜写的技术文章。内容总的来说更擅长记录总结,不擅长发表感悟,也不喜欢在文章中掺杂太多废话和闲聊,希望每一句都是干货,知识点尽可能简洁、清晰。

写作过程中最令人头疼的就是文章结构如何组织,一旦写的不好就会出现“上文xxx”,“下文xxx”。好的文章还是要不断打磨修改,还要定期更新避免过时。

因为最近打算搞团队能力建设,所以梳理了下博客相关的内容,也补充了解一些没用过的博客框架,带领大家入门折腾。

为什么你需要一个Blog?

如果此前有写些东西,那么博客可以帮你发布到互联网,让更多人能够看到。并且养成良好的写作习惯,提高效率。

如果此前未写过东西,可以思考下写作能带来的益处,每一篇文章都是自己积累的财富,也是一路成长的脚印。

  1. 知识积累沉淀:作为程序员有太多要学习的东西了,光靠记忆效率是很低的,需要一个专门的平台来归档、管理。便于复习和回顾。
  2. 偶发感悟,或者有开心的事、人生大事,苦于没有平台记录和分享。
  3. 能力提升:专业知识、写作表达、逻辑条理。
  4. 倒逼自己输出:例如有用户提问或者评论,会推动自己去更新内容。
  5. 紧跟互联网时代:就像当年大家都玩QQ空间,你不玩就OUT了。
  6. 从知识获取者转变为知识创作者、贡献者。
  7. 打造个人品牌,行业影响力,副业创收…
  8. 元宇宙时代每个人都应该建设自己的一亩三分地,和装修一样,有满满的成就感。
  9. 组织角度:可以作为团队培训资料,减少重复工作和踩坑。

坏处嘛,除了需要投入时间精力外,也想不到其他的了。

  • Web1.0:用户只能查看内容
  • Web2.0:用户可以贡献内容,平台所有、平台控制、平台支配,平台化
  • Web3.0(元宇宙):用户贡献内容,用户所有、用户支配,去中心化

推荐阅读:2022 年了,聊聊我为什么还在写博客

可以写些什么?

博客内容可以是专业技术、美好记忆、心得感悟、晒娃撒狗粮、读书观影旅游分享、个人相册、个人音乐播放器等等。

关于技术文章,推荐发布行业通用知识,有参考价值,可供复习回顾。尽量避免记录性内容,比如环境搭建、解决问题等,很容易过时,并且难以复制。

注意个人隐私安全和公司保密协议,有些内容可以记录但是不要公开发布,例如

  1. 使用网名,不带真实个人信息。
  2. 不发布公司内部技术,例如公司特定的设计规范、配置项、命令行等。一方面不通用,另一方面可能涉及保密协议。
  3. 内容不带公司字样,可能会被公司爬虫检测到。

可以尝试给自己的博客做一层加密校验,给需要加密的文章做个标记或者分类

根据自己的想法划分了几个境界:

  • 初出茅庐:阅读+收藏网址,参与评论和提问、长期关注他人、付费阅读、付费下载
  • 小试牛刀(入门):注册博客平台账户,或者搭建了个人网站,在上面发布过文章
  • 持之以恒(活跃度):个人博客有较多输出,长期维护
  • 小有名气(知名度):有较多的点赞和关注,评论或者加好友互动,有人愿意为你的知识买单打赏
  • 传道授业(专业度):发布过系列知识、专题、开课
  • 声名远扬:出书,业内大佬

个人站点搭建方式

博客主要分为三种方式:

  1. 使用第三方博客平台(中心化、平台化):在三方平台创作和发布。
  2. 使用静态框架搭建,生成静态页面发布:本地编写Markdown,通过SSG工具转换成静态html,发布到静态网页托管服务。
  3. 使用动态框架搭建,自行部署平台服务,运行时请求数据库,实时生成html:在平台上创作和发布。

第三方博客平台本质也是动态框架,三方只是提供了托管服务,加了一些特色功能,并且在中间收取费用。

例如WordPress.org是开源的动态博客框架,WordPress.com、Bluehost、DreamHost、SiteGround等则是三方托管服务。

第三方博客平台 静态框架 动态框架
搜索引擎优化 便于SEO,例如百度搜索结果前排基本都是CSDN 需要自行优化、推广 需要自行优化、推广
技术门槛 几乎没有 有一定门槛,视框架和功能而定 有一定门槛,视框架和功能而定
成本 部分平台需要收费 GitHub Pages、Gitee Pages免费。自建空间需要云服务或者主机+域名费用 云服务或者主机+域名费用
编辑器 在线编辑 Markdown,可以嵌入HTML 在线富文本编辑,可以插入不同控件,所见即所得
数据存储 数据库系统,和账号绑定,有数据丢失、隐私泄漏的风险 文件系统,可以使用Git管理 数据库系统,不便于导出导入和迁移
可移植性 弱,大部分不支持导入导出 强,直接部署静态页面即可 弱,难以迁移数据到其他框架
主题样式 大多数无法选择,部分支持配置主题 主题丰富,可以定制布局和样式。 主题丰富,可以定制布局和样式。
环境配置 和账号绑定,网页在线编辑 新电脑需要重新配置环境 自建服务,部署在服务器
部署发布 在线发布,平台托管 GitHub Pages、Gitee Pages,或者自行购买云服务或者主机 自行购买云服务或者主机
自由度 低,开发者只能上传内容,平台审核 高,除了博客之外,还可以做论坛、电商等站点
域名 使用平台子域名 绑定自己的域名,便于记忆和宣传 绑定自己的域名,便于记忆和宣传
代表产品 CSDN、简书、掘金等 Hugo、Hexo、Jekyll、Nuxt等 WordPress、Typecho、Halo、Solo等
优点 无门槛、0成本、利于SEO 低成本、主题丰富 功能丰富、扩展性、交互能力强

从写作方式上划分

  1. 本地编写Markdown。采用文件系统进行管理
  2. 客户端或者网页在线编辑器,富文本编辑器。采用数据库系统进行管理

老实说自从学过Markdown之后,基本就不怎么用富文本编辑器了。

富文本编辑器需要特定的软件,特定的文件格式,写作过程中还要去修改样式、排版。使用Makrdown则可以顺畅的写完,专注于内容,不拘泥于编辑器,甚至可以使用vim、txt这些普通的文本编辑器。

从发布方式上划分

  1. 三方提供主机服务(平台):国内平台大部分免费,国外平台大部分需要付费,免费的功能受限。一般是使用子域名,也可以绑定自定义域名。
  2. 购买云服务器,自行搭建环境、配置域名、管理数据,同时可以开放给其他人使用。
  3. 购买本地主机,自行搭建环境、配置域名、管理数据,同时可以开放给其他人使用。
  4. 纯静态网页托管服务:GitHub Pages、Gitee Pages,一般是子域名,也可以绑定自定义域名。

个人站点搭建流程

不同框架自建站点的流程基本相同,只是内部引擎和实现不太一样:

  1. 确定博客框架,下载并安装对应的环境
  2. 配置主题模版,有需要的话可以安装插件,修改配置和样式。
  3. 写作:
    1. 动态框架:在客户端或者网页端写作,保存在数据库中,动态请求服务端数据进行显示
    2. 静态框架:使用Markdown写作,保存为md文件,最终生成静态html部署
  4. 管理文章中引用到图片:
    1. 可以通过相对路径引用,静态打包一起部署
    2. 可以创建图床,通过url链接引用。(可以直接放在GitHub中,如果嫌图片访问慢,可以使用云服务)
  5. 部署发布:如果没有发布需求,只想本地看看到上一步就可以了
    1. 免费的静态网页托管服务:GitHub Pages、Gitee Pages。只适用于SSG
    2. 购买云服务器,自行部署:阿里云、腾讯云等,可以结合Docker容器部署,使用服务器公网IP。
    3. 本地主机服务:可以使用树莓派作为小型服务器,可以结合Docker容器部署。外网访问需要自行申请公网IP。如果没有公网IP,可以使用内网穿透服务。
  6. 绑定域名:
    1. 使用子域名:部署到GitHub Pages、Gitee Pages、WordPress.com等服务,可以直接使用它们的子域名。
    2. 自行购买:阿里云、腾讯云都可以购买域名,根据不同框架说明绑定域名即可。
  7. 如果部署在国内的主机,需要备案

域名本身不需要备案,但需要实名认证。

域名指向国内的服务器需要备案,指向国外的服务器不需要备案。

GitHub Pages是国外主机,因此不需要备案。

选择合适的工具

没有最好的,只有最合适的。

可以从以下几个纬度对比:

  1. 成本:第三方博客<静态框架<动态框架。主机和云服务成本较高(一年几千),建议使用免费托管服务,除非网站访问量大,需要增加带宽
  2. 功能和可扩展性:第三方博客<静态框架<动态框架
  3. 上手难度:第三方博客<自建博客
  4. 主题和样式:第三方博客<自建博客,看个人喜好,静态和动态框架都有大量主题,够用就行
  5. 维护方式:文件系统 or 数据库系统
  6. 写作方式、发布方式。

尽可能用熟悉的或者现成的环境,例如Node、Python、PHP等

为什么不选择第三方平台?

第三方博客相比自建博客,存在很多痛点:

  1. 自由度低:样式固定,无法设置个性化主题
  2. 需要打开客户端或者网页端写作
  3. 账号登录,绑定手机号
  4. 大量的广告插入,消息推送
  5. 内容受平台管控和审核,评论限制,例如不允许转发到其他平台
  6. 关服整改:例如博客园整改
  7. 存在数据丢失、泄漏的风险
  8. 链接跳转会有安全提示,例如即将离开CSDN、掘金页面…
  9. 浏览门槛:例如CSDN很多精华文章和专栏都需要购买或者关注
  10. 文章质量参差不齐,浪里淘金:吐槽CSDN垃圾堆。一部分是由于面向大众,非程序员社区,一部分是爬虫、转载导致很多格式错乱。

静态网站的优势

静态网站相比动态网站有几点优势:

  1. 利于SEO
  2. 运行高效:纯静态网站可以通过CDN加速,动态网站还受限于服务端处理能力
  3. 更加安全:难以被攻击
  4. 部署简单,成本低廉:使用GitHub Pages、Gitee Pages免费托管
  5. 本地生成,实时预览

总结

对样式没有太大要求、图省事的、不确定是否能持续产出,推荐用第三方博客平台。

有一定追求和想法,想进一步打造个人品牌,推荐自建博客。希望便捷低成本的选择静态框架,希望拥有更多功能和玩法的选择动态框架

希望专注文档和内容的选择文档和知识库管理工具

话说回来,博客内容才是关键,样式那些花里胡哨的可有可无,当然设计精美的博客总是能更吸引人眼球。

有精力的话可以运营多平台,扩大影响力,通过一键同步脚本简化操作。

平台和工具汇总

第三方博客平台

使用较简单,注册账号,在网页上编辑文章即可。

国内主流博客平台:

  1. 稀土掘金:如其名,文章质量较高,前端技术较多
  2. CSDN:用来搜Bug和解决方案比较多,好的学习文章浪里淘金,同时充斥大量广告,资本化严重
  3. 简书:和CSDN类似,内容相对优质一些,广告稍微少点
  4. 博客园:国内较早的博客平台
  5. 51CTO:IT技术社区
  6. 开源中国:国内最大的开源社区
  7. 思否Segmentfault:技术问答为主

小众社区:

  1. 腾讯云社区:云开发为主,大咖较多
  2. GitChat:技术博客社区
  3. 链滴
  4. 少数派
  5. 当然QQ空间、公司的KB也算一个社区

国外也有很多平台,不过可能用着不太习惯,并且访问速度受限,大部分托管需要付费等,这里不做太多介绍:

动态博客框架

自行部署平台服务和动态页面,运行时请求数据库:在平台上创作和发布。使用和第三方博客平台类似,但是自由度更高。

  • WordPress.orgWordPress.org中文网:基于PHP,全球使用最广的博客系统,不仅用于博客,也用于在线业务
  • Halo:基于Java的开源建站和内容管理系统(CMS),默认使用H2 Database,运行后数据会保存在~/.halo
  • Solo入门文档:基于Java
  • Typecho:基于PHP

静态站点生成器(SSG)

开源的静态站点生成器,主要用于生成博客和文档。通过本地Markdown写作,Git版本管理,生成静态网页发布。

文档管理工具

SSG除了用作个人博客框架外,还可以做文档管理工具。不同于博客的随意性,文档管理工具更适合创作专题内容和系列文章。

  • 更专注于内容创作
  • 支持导出电子书
  • 主题模版较少,不像博客有很多个性化的需求

本质是一样的,只是主题风格偏向文档结构:

  • Hexo、Jekyll、Hugo等也有文档风格的主题,不过数量较少
  • GitBook
    • gitbook-cli:一个基于Node的命令行工具,用于生成静态网页,可以托管到GitPages,支持本地运行预览。相比gitbook.com更加轻量,可惜已经不再维护,重心从开源工具转向商业化产品
    • gitbook.com:一个写作平台,发布到gitbook子域名,例如https://afauria.gitbook.io/,优点是可以GitHub仓库同步。缺点是国内访问慢。
  • Docusaurus:Facebook出品,基于React,有中文文档
  • VuePress:基于Vue,有中文文档
  • Docsify:不会静态生成html,而是运行时解析markdown渲染。只需要一个单页应用,对搜索引擎不太友好,有中文文档。
  • MkDocs:基于Python
    • 主题:默认有两套,还有一些三方的主题
  • Sphinx:基于Python,官网是真的丑

玩Python的感觉审美都比较传统,没有前端的玩的花

Docusaurus和VuePress配置相对复杂一些,需要懂一些Vue和React基本概念,Docsify相对更简洁易用

比较特殊的是Docsify,不属于上文提到的动态框架和静态框架,而是JS运行时解析markdown渲染,本质是一个单页应用。

  1. 动态框架:使用动态网页语言开发和部署,例如JSP、PHP等,在后台实时生成静态页面返回给浏览器。
  2. 静态工具:本地生成html静态页面,直接发布。
  3. JS运行时解析:发布html页面,浏览器执行JS脚本,请求文档和数据进行渲染。

静态页面不代表不能请求数据,可以通过ajax等技术去请求后端,局部刷新。

三方工具

上面提到的都是建站相关的工具,如果只想做知识归档,也可以用云笔记、云文档等。一般是客户端或者网页端在线写作,部分支持导出电子书。相比博客平台,笔记和云文档私密性较高,不会自动公开,也不会被搜索引擎索引。

这类软件大多数还添加了团队协作相关的功能、使得这些工具不那么纯粹。并且免费版功能受限,专业版都要收费。

  • 看云:电子书阅读和创作平台,可以设置付费,支持导出电子书。已迁移到顶想云知识管理
  • 语雀:文档与知识库工具,写作体验好,功能丰富,包括文档、表格、笔记、待办、团队协作、项目管理等。支持导出电子书。
  • 各种云笔记工具:印象笔记、有道云笔记、Notion等。
  • KB、Tower、WPS、Read the Docs等在线文档、协作、知识库工具

结语

本文介绍了几种博客搭建的方式,可以明显看到个人倾向是静态框架。没有介绍具体的搭建步骤,官方文档写的更好。

我个人用的是Hexo+GitHub Pages+自定义域名,平常用Markdown写作,使用Git管理源文件,写完一键发布。

电子书使用的是GitBook,主要用来构建知识体系。

注:hexo需要新版本node,gitbook-cli只能通过旧版本node运行,因此无法共存。

使用n管理node版本:使用hexo时切换到n node/14.17.6,使用gitbook-cli时切换到n node/10.24.0

基本没有做推广和运营,导致曝光率不高,后续可能会同步到其他平台,提高曝光率,当然创作水平也有待提升。

TODO:

  • 由于GitBook已经不再维护,计划迁移到其他知识库工具。
  • 一键发布多平台脚本,参考写作助手
  • 文章加密访问,权限校验

参考资料:

欢迎关注我的其它发布渠道