序
一些讲在最前面的话。
自己老早就想搭一个自己的博客,从零到一的那种。为此准备了很久很久?各种材料(优秀的博客网站,搭建视频,整理需求…)也一直在整理🤣,试想一下哪个理工男没有过这种浪漫呢,用自己开发的语言写一个自己的操作系统,上面运行着一个自己的虚拟机,奈何我等普通人只能退而求其次,追求一个自己的博客网站就好。
其实也认真想过,前后端全栈完全由自己开发部署,这样的好处自然是高度自由,只要能力够🙃。但随着踏入社会参加工作,这种想法对于一个上班族来说,要付出巨大的代价,我害怕折腾到最后还把自己的那点热情都折进去了。于是乎,我选择了 Hexo ,主题是 Stellar,部署在 Gitee 上,图床则用了阿里云的 OSS 存储,写博客的工具则是 Typora,与之搭配的是 PicGo,它是用来上传图片给我的博客提供一个远程路径的。至于 Typora + PicGo,可以参考
不同的是我用的是软件,他用的是命令行,此外我的软件还装了个 super-prefix 插件,这样上传文件时会用日期来创建目录,用时间来为文件重命名,也方便后续的整理。
我的第一篇博客
开始
其实搭建一个博客系统非常简单,当然这里说的是那种用文字记录生活技术的博客,Hexo 已经为我们完成了太多,巨人的肩膀上甚至还支撑着我们的改造计划。
1.安装Node.js
首先自然是要安装 Node.js,Hexo官方文档已经很贴心的为我们列出了步骤,再不济的话网上也有各种资料。这里要说一下 Windows 墙裂推荐用 nvm 安装,不用配环境变量后续也能随时切换 Node.js 版本,NVM下载地址
安装 nvm 很简单,安装好后在 nvm 的目录下找到 settings.txt 文件,添加下面两行代码设置淘宝镜像
1 | nvm node_mirror https://npm.taobao.org/mirrors/node/ |
用这种效果也是一样的
1 | node_mirror: https://npm.taobao.org/mirrors/node/ |
1.1.开始使用
1 | nvm list available # 显示可以安装的所有node.js的版本 |
Node.js 各版本查看
安装 LTS 那一栏有值的版本号即可,我选了一个16的,一个14的,安装命令如下:
1 | nvm install <version> # 安装node.js的命名 version是版本号 例如:nvm install 8.12.0 |
注意:使用 nvm 安装 node 之后,但是如果在终端检测不到 node
找到 NVM_SYMLINK 变量并手动创建该值所指向的目录即可(变量值最后的 nodejs 不用创建,该文件夹会由 nvm 来创建,实际上这是一个指向 node 真正安装目录的快捷方式)
1.2.检查一下
1 | node -v |
2.安装Git
Git下载地址懒得折腾就改下安装目录,一路next就好。环境变量会自动配置,我们需要做的就是配置用户名和邮箱
1 | #配置用户名 |
2.1.配置SSH公钥登录
打开 git 窗口执行
ssh-keygen命令,然后一路回车到命令执行完毕。执行完命令后电脑用户目录下会生成两个文件,公钥位于 id_rsa.pub 文件中(另一个文件则是私钥)我用的是 gitee,在个人设置中配置 ssh 公钥,就是将 id_rsa.pub 文件中的全部内容复制到右侧的框中, 并点击确定即可
在本地执行命令,测试一下即可
1
ssh -T git@gitee.com
2.2.配置全局忽略文件夹
进入电脑用户目录,创建 .gitignore 文件(自己注意文件命名,与下面的命令保持一样即可),文件内容可参考文章,然后在当前目录执行如下命令
1 | git config --global core.excludesfile ~/.gitignore |
再查看当前目录 .gitconfig 配置文件里的内容验证下即可
2.3.Git版本更新
这里多记录一下,windows 更新 Git 到最新版本的命令
1 | git update-git-for-windows |
3.安装Hexo
1 | npm install -g hexo-cli |
3.1.初始化Hexo
进入一个你指定的博客目录,执行初始化命令
1 | hexo init blog |
1 | cd blog |
自定义安装
1 | # 自定义版需要一定的动手和学习能力,但通常能够做到更加自主 |
在 blog/_config.yml 文件中找到并修改(冒号后面带个空格)
theme: stellar
运行博客
1 | # 生成静态文件 |
3.2.部署
在 Gitee 上创建一个自己的仓库,复制下仓库的 SSH 地址。打开 blog 目录下的 _config.yml 文件,编辑 deploy 模块,内容如下:
1 | deploy: |
还需要安装一个扩展,这样才可以一键远程部署
1 | npm install hexo-deployer-git --save |
部署
1 | hexo d |
而如果想要看到部署后的页面,则还需要开通 Git Pages 服务:进入 Gitee 上的仓库主页,点击服务选项卡,选择 Gitee Pages,进入的页面中会看到一个网站地址,这个就是未来的访问地址,我们需要勾选强制使用HTTPS,再点击开启/更新(这个功能需要实名认证)。稍等片刻后,使用刚刚看到的网站地址即可看到效果了。
注意:每次修改本地的 Hexo 工程目录之后
通过 hexo d 命令即可将更新后的工程部署到 Gitee。但是,这个时候你通过浏览器看到的 Hexo 博客页面并不会更新… 你需要再次执行在 Gitee Pages上的开通/更新按钮。千万不要忘了!!
3.3.绑定域名
日后再说
4.Hexo入门
我们先来看一下 blog 的目录结构:
1 | + blog |
方便起见,我们把网站的语言设置为中文,编辑 blog 目录下的 _config.yml 文件,将 language 这一项设置为 language: zh-CN,将 url 这一项设置为 url: http://yourname.com(你购买的域名,若未购买可以用 http://yourname.gitee.io 代替),其他配置项请根据自己的需要进行设置。
接下来新建一篇文章:
1 | hexo new [layout] <title> |
layout 可选值有:draft(草稿)、page(页面)、post(文章),对应模板文件夹中的3个文件,如果没有设置 layout 的话,默认使用 _config.yml 中的 default_layout 参数(默认值 post )代替。若标题包含空格,请使用引号括起来。
现在,我们来新建一篇名为 test 的文章,输入以下命令:
1 | hexo new test |
结果在 source/_posts 目录下生成了 test.md 文件,内容如下:
1 |
|
这里给出 Front-matter 的概念,Front-matter 是文件最上方以 --- 分隔的区域,用于指定文件的变量。
常见参数:title(标题)、date(创建日期)、tags(标签)、categories(分类),只有文章(post)支持标签和分类参数,建议文章分类只写一个,标签可以有多个,写法为 tags: [tag1,tag2,tag3] ,注意每个参数的冒号后面都应该有一个空格,这一点同样体现在 _config.yml 文件中
编辑 test.md 文件,内容如下:
1 |
|
保存后刷新页面,通常情况下页面会自动更新,若修改没有生效,则需要重新执行以下命令:
1 | hexo g |
这里再介绍一个命令:
1 | hexo clean |
它的作用是清除缓存文件 (db.json) 和已生成的静态文件 (public) 。在某些情况下(尤其是更换主题后),如果你发现对站点的更改无论如何也不生效,你可能需要运行该命令。
打开网站首页并刷新,你会看到刚才设置的标签和分类生效了
发现首页 Hello World 这篇文章的内容被折叠起来了吗,很简单,只需要在文章正文合适的地方加上下面这行代码就搞定了(上下各要留一个空行)。
1 | <!--more--> |
4.1.总结
最后,我们来总结一下发布文章的流程:
第一步,hexo new <title> 生成一篇文章,这里的 title 指文件名,不建议使用中文
第二步,编辑文章,修改 title、tags 等参数,这里的 title 指文章标题,可以使用中文
第三步,hexo s 本地预览效果,不满意继续修改
第四步,hexo g 生成静态文件
第五步,hexo d 将静态文件推送至代码库
第四步和第五步可以合并成一条命令,hexo d -g ,表示部署之前预先生成静态文件。修改配置与发布文章的流程相似,最后都需要执行第三四五步。
至此,博客的搭建就算完成,博客的美化则需要按照 Stellar 主题文档来使用。
迁移Hexo
这里在多记录一个小节,换电脑后迁移 Hexo:
- 删除原博客项目的 node_modules 文件夹,然后把剩余的文件全部备份
- 新电脑准备好必需环境后,将备份文件转移到新电脑上
- 进入项目目录,重新安装依赖
- 下载 hexo 的 git 工具
- 下载完以后,就可以在新电脑上正常使用了
hexo cleanhexo d
接下来就是正常写博客了
不要害怕问题,百度是可以解决初级程序员90%的问题的。
结束
写博客是一件需要长期坚持的事情,其实也不是非得搭建一个系统才去写,更多的方式有手机的备忘录,公众号,各类社交平台,专门的博客平台等等。在此之前,我的过去学习之旅中就一直在写笔记,直到投入工作中才停歇下来。时代在发展,除了学生提笔写字的机会都是越来越少,也许有一天,我们连码字都不需要呢~
最后,我想以这么一段文字结尾,它是我在一个即将关闭的服务器商官网看到的
对成立于2009年9月的 Yculer 来说,停止商业化运营是一个艰难但经过慎重考虑后作出的决定。
Yculer 成立之初,是一个面向个人博客提供免费主机赞助的项目,资金来源完全是我个人的工资收入。即便在公司实体化商业运营后,Yculer 也从未刻意去追求利润——事实上,做主机托管服务,赚钱也是很难的,强如阿里云,2020年还在烧钱和整体亏损。但利润并不是 Yculer 停止商业化的主要原因,有很多个人博客网站,已经先于 Yculer 消失。举个可能不太恰当的例子,当人们习惯了看几十秒钟的短视频所带来的互动、娱乐,你已经不太可能安静地在网络上看一篇长文,也不会花上一个小时码字写博客,或者和其他的博主交换“友链”……
即便你仍是一个人热爱码字的人,写作的场景也应该是在微信公众号了吧?当你不再去写,也不会去读博客的时候,Yculer 和你的博客一样都应该成为“过去时”。
另一个原因是,行业变了,硬件和网络的成本越来越低,但技术支持的成本越来越高。服务器的硬件升级了,网络优化了,但对用户的支持做不到以前的快速响应。
因此,我选择让 Yculer 回归公益,继续为非赢利的网站提供免费的主机托管服务——但请注意,这将完全是个人行为。因为是免费的,所以大家将来遇到问题需要协助时,请不要苛求我能够立即回复和解决。我会在完成本职工作后,努力保持服务的稳定。
Yculer 曾为数以千计的博主提供高质量的主机托管服务,即便今天已经没人写博客了(我自己也不写了),但回顾过去,我仍然觉得做了一件有价值的事情。
感谢。
来自歪酷人管理员的话
