写在最前
无聊的碎碎念不看也罢
其实我一开始最先尝试的就是Ubuntu上搭建,但是,非常遗憾的是,Ubuntu的各种读写权限把我弄得死去活来。
毕竟一开始看的就是楠皮的博客来尝试的,后来发现没什么大用,不够详细倒是其次,主要是缺乏他其他几篇博客那样的普适性。怎么说呢,我花了三天时间踩坑,终于算是可以正常使用并且和Win10完美同步了。
所以之后写的内容里有很多都会附加上我踩坑时的怨念。
准备工作
首先要安装必要的软件
以下五个软件中,Node.js
和git
为必要软件,后三者作为之后编写博客的Markdown
编辑器,挑选一个使用即可。
- Node.js
- git
- Atom
- Typora
- Hexo-editor
直接在桌面右键Blogroot,输入
安装完成以后可以输入以下内容来查看版本号确认是否安装成功。
代码语言:javascript复制sudo apt-get install git
如果你是先看了我那篇Ubuntu重装日记,那git应该之前就有安装过。
Atom是一个我挺喜欢的本地文本编辑器,自带markdown
插件,按Shift Ctrl M即可渲染。缺点是实时渲染效果很卡顿,不流畅啊。(不过用markdown-preview-enhance
代替atom
自带的markdown
渲染插件就会很赞了)
下载安装.deb
文件后,用dpkg
命令安装。
下载过慢的话,可以参考这篇文章:从github下载release速度过慢的解决方案
代码语言:javascript复制sudo dpkg -i atom-amd64.deb
# 若报错,就执行
sudo apt-get install -f
事实上如果atom
安装了插件之后会很酷炫
插件安装教程和推荐可以参考这篇教程:Atom插件安装和推荐
Typora是一个专业的markdown编辑器,比之atom的最大优势就是同步渲染速度,缺点是对于代码高亮的支持并不是很方便,自带源代码模式 ,拿来看看代码也不错
代码语言:javascript复制# or run:
# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE
wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add -
# add Typora's repository
sudo add-apt-repository 'deb https://typora.io/linux ./'
sudo apt-get update
# install typora
sudo apt-get install typora
HexoEditor是我目前最喜爱的一款Markdown编辑器,自带图片复制转Markdown链接,同时支持三种图床。具备各种快捷键,还能拖动文本,自带预览,对一些主题渲染有适配,没适配的也能通过导入相应的tags配置进行渲染。
有兴趣的可以看一下我专门为它写的配置教程:Hexo-editor——Hexo专用的编辑器
踩坑点
可能遇到的一些问题汇总
绝大多数依赖错误都可以通过这三行代码解决
另外要是安装特别慢的话,就别等了,可以把Ubuntu
的软件库换成国内源
目前我知道对于版本适配的比较好的有清华源
清华大学 Ubuntu | 镜像站
它会自动帮你适配你的Ubuntu版本。
修改你的source.list
;
安装Hexo
- 已经在Win10上成功搭建Hexo
- 只想在Ubuntu下使用
首先,未看过本站的Win10
下搭建Hexo
的教程,只想在Ubuntu
上搭建Hexo
的,请移步到隔壁。
这里可以说一下,如果你已经在Win10上复现了我上一篇日志里写的全部内容,当然,我希望你还是不要主动去复现bug。并且git版本控制正常,可以正常使用git来提交源码内容到博客源码仓库HexoSourceRepo上。
sudo git clone git@github.com:username/[HexoSourceRepo].git
这里如果报了权限错误
没关系,下面来说踩坑点:
正确配置git
后,重新尝试
再贴一下一些常用命令
建立Hexo文件夹随便那个目录都行,别是回收站就成。我是安装在目录下,之后会以指代博客根目录。
更改镜像源因为是国外的库,会比较慢,建议换成国内镜像来加速
全局安装Hexo因为已经改了镜像源,所以安装很快。不用谢我。
部署Hexo在目录下打开,执行这里如果报错了的话,执行代码:(不报错就请忽略)
安装插件虽然全部放出来了,但是我还是建议你一条一条执行,一次性全部复制粘贴可能会卡死。(请仔细阅读注释,确定你是否需要安装这个插件)。
常用命令
测试效果在下打开
代码语言:javascript复制sudo hexo server
# 或者
sudo hexo s
hexo-adminsudo
。
然后在浏览器中打开 ,就能看到
如果你还安装了插件,就可以通过访问来管理你的文章了。并且还可以在可视化界面中操作文章内容恭喜你,博客的本地部署到这里算是告一段落了。
添加分类页面和标签页面
部署到GitHub
点击查看部署至github的教程
访问官网按照指示注册github账号:
注册过程中可能遇到的bug
有些用户注册github账号时可能会遇到Unable to verify your captcha response报错。解决方案:
- 升级浏览器内核:直接下载安装最新版chrome或者Microsoft edge浏览器即可。
- 把github域名添加到hosts文件中,可以自行百度,也可以参考这篇教程:访问github或部署在gitpage上的网站过慢的解决方案
新建仓库:注册成功后,在github首页单击->
username.github.io
科普:为什么要命名为username.github.io?
专门写给老实孩子看的,这段主要是为了解释为啥要按照username.github.io这个要求来新建仓库名,不感兴趣的话跳过这段看后面的配置Git 与 GitHub就好,不用追根究底。
在这里,要知道,GitHub Pages
有两种类型:User/Organization Pages
和 Project Pages
,而我所使用的是 User Pages
。
简单来说,User Pages
与 Project Pages
的区别是:
User Pages
是用来展示用户的,而Project Pages
是用来展示项目的。- 用于存放
User Pages
的仓库必须使用username.github.io
的命名规则,而Project Pages
则没有特殊的要求。 User Pages
通过https://username.github.io
进行访问,而Projects Pages
通过https://username.github.io/projectname
进行访问。
相关资料:GitHub Pages Basics / User, Organization, and Project Pages
配置Git
与GitHub
:
之前已经说过,在Ubuntu
下,普通用户和超级用户是被当成两个不同的用户的,而不是简单的权限升级。
如果你是在普通用户模式下配置的sshkey
,那么每当你在提交Hexo
时,一旦涉及到到文件读写权限,你必须使用sudo
时,对不起,秘钥显示你没有权限读写git
仓库。
然而诸多文件读写里面,在普通用户和超级用户之间的切换简直是剪不断理还乱。
打开terminal
,在管理员模式下设置用户名称和邮件地址
输入密码后就进入了管理员模式
然后在这里配置git
配置hexo部署插件内容:
把本地博客内容提交到仓库
域名配置
点击查看域名配置
最后还是屈服于境泽定律,实在是top
域名价格太美丽,首年只要1元/年
,之后续费也是25元/年
,折算下来比我买v2ray
服务还便宜。
购买域名
我使用了腾讯云的对象存储功能作为图床存储,考虑到续费便利性,就在腾讯云购买的top
域名,其他的像阿里云的万网也是可行的。但是我个人推荐还是腾讯云比较好。腾讯云社区会时不时的发放代金券,可以抵扣腾讯云服务费用。
记得留意域名注册页面的活动优惠,直接购买域名是首年9元起步的,在活动里才能找到首年1元的选项,买的时候也要记得看之后的续费内容,不要花费多余的精力和金钱。
绑定域名为了能够使用自己的域名访问我们的博客,需要再进行域名绑定:
进入解析页面后需要添加两条记录。
在目录下新建文件(注意不要有后缀名,就叫即可,什么、之类的后缀都不能有),在文件中添加上你购买的域名。
配置仓库。打开,点击仓库页面右上角的
Github PagesCustom domain
最后,重新部署一下即可通过你的域名来访问博客了。
主题配置
本博客主题现已改用Butterfly,相比NexT,Butterfly的功能高度集成化,仅仅只需在配置文件中修改true或false即可。本站效果美化方案参考基于Butterfly主题的美化日记
NexT内容已经过于陈旧,不建议参考
安装NexT
我是用的git clone的方法,文档中还有其他方法。
在Hexo根目录文件夹中,打开终端输入
代码语言:javascript复制git clone https://github.com/theme-next/hexo-theme-next themes/next
# 这个指令就是把NexT主题的项目文件拷贝到了[Blogroot]/themes/next 路径下。
# 建议找到[Blogroot]/themes/next文件夹,删除里面的.git文件夹。以免在提交到Git仓库时,因为有多个.git文件夹,导致提交出错。
设置主题为NexT
配置NexT主题
站点 site
官方文档里写的是有些配置需要将一部分代码添加到配置文件中,但其实不用,我们逐行看配置文件就会发现,有很多功能都已经放在配置文件里了,只是注释掉了,我们只需要取消注释,把需要的相关信息补全即可使用。
菜单栏 menu
注意点:如果事先没有通过hexo new page “pageName”来创建页面的话,
即使在配置文件中取消注释,页面也没法显示
我们也可以添加自己想要添加的页面,不用局限在配置文件里提供的选择里
||后面是fontAwesome里的文件对应的名称
menu_icons记得选enable: true(默认应该是true)
主题风格 schemes
- Muse
- Mist
- Pisces
- Gemini
底部建站时间和图标修改
个人社交信息 social
网站动画效果 motion
如果是为了网站响应速度我们可以把网站的动画关掉
但是写微博就是为了装B啊!如果不够酷炫谁要写博客啊,会睡着的好伐啦!
但我觉得页面比较素,所以开了动画,
主题自带四种效果,可以选自己喜欢的。
我选择的是canvas-nest
全局搜索功能 local search
Local Search 由 flashlab 贡献,
在next使用文档里有完备的安装指导。
版本控制
源码存放方案:开源or闭源
- ?源码保密,仅开源网页
- ?源码开源,双分支部署
如果按照我现在的方式进行双分支部署,虽然可以在一个仓库内同时管理博客源码和博客生成的网页文件,但是基于gitpage
必须是开放的性质,你的博客源码将是完全开源的,任何人都能通过git clone
拷贝你的博客源码,唯一的区别就是在没有绑定SSH Key
的情况下他们不可能提交到你的库内。
所以,对源码有保密需求的,可以参照以下方式另外新建一个保密仓库作为源码存放库。
创建存放源码的私有仓库
我们需要创建一个用来存放Hexo
博客源码的私有仓库[SourceRepo]
,这点在Win10的Hexo
博客搭建教程中有提到。为了保持教程的连贯,此处再写一遍。
创建完成后,需要把博客的源码push
到这里。首先获取远程仓库地址,此处虽然SSH
和HTTPS
均可。SSH
在绑定过ssh key
的设备上无需再输入密码,HTTPS
则需要输入密码,但是SSH
偶尔会遇到端口占用的情况。请自主选择。
在[Blogroot]
路径下右键->Git Bash Here,输入
这一步会在你的博客目录下新建一个.git
文件夹。因为是隐藏文件夹,所以需要你先确保当前目录下隐藏文件夹可见才能看到它。
在远端提交前,我们需要先调整一下屏蔽项,能够使用指令进行安装的内容不包括在需要提交的源码内,这样可以显著减少需要提交的文件量和加快提交速度。打开(也是隐藏文件),输入以下内容:如果不是主题,记得替换最后一行内容为你自己当前使用的主题。
然后尝试第一次提交你的目录到远程仓库,依然是在路径下->,输入:
偶尔会遇到一些与远端内容不一致的问题,一般是因为在创建远程仓库时点选了生成或者的选项,输入指令:
创建source分支
然后把source设置为默认分支。
第一次提交git
代码语言:javascript复制sudo git init
在路径下->,输入这一步会在你的博客目录下新建一个文件夹。因为是隐藏文件夹,所以需要你先确保当前目录下隐藏文件夹可见才能看到它。
在远端提交前,我们需要先调整一下屏蔽项,能够使用指令进行安装的内容不包括在需要提交的源码内,这样可以显著减少需要提交的文件量和加快提交速度。打开(也是隐藏文件),输入以下内容:如果不是主题,记得替换最后一行内容为你自己当前使用的主题。
然后尝试第一次提交你的目录到远程仓库,依然是在路径下->,输入:
这样一来,在 GitHub
上的 username.github.io
仓库就有两个分支,
一个 source
分支用来存放网站的原始文件,
一个 master
分支用来存放生成的静态网页。(2020年10月后github新建仓库默认分支由master改为main)
可能遇到的bug
博客管理流程
在本地对博客进行修改(添加新博文、修改样式等等)后,通过下面的流程进行管理
依次执行指令
然后才执行将本地文件发布网站到分支上。(2020年10月后github新建仓库默认分支由master改为main)
本地资料丢失或多PC同步
当重装电脑之后,或者想在其他电脑上修改博客,可以使用下列步骤:
使用拷贝仓库;此处的指代上述博客源码存放方案中存放源码的仓库名。
在本地新拷贝的文件夹下通过终端依次执行下列指令:
指令脚本
- ?普通版
- ?升级版
每次都要反复敲那么几行指令一定会无聊,那么干脆把指令存在脚本里,每次需要用到的时候双击一下就可以高枕无忧了。
在[Blogroot]
文件夹下新建三个txt
文件,分别命名为git-pull
、git-push
、hexo-publish
,打开后依次在里面输入相应的命令。
git-pull(用来从远程仓库拉取最新更改,适用于多PC或多系统端之间的版本对接)
git-push(用于提交每次的修改到远程仓库)
hexo-publish(清空本地缓存后重新部署博客页面)
之后将后缀更改为后缀,就是一个可执行脚本了。在系统下,需要使用指令来运行可执行脚本。在目录下打开终端,输入相应指令来运行可执行脚本。
直接下载后放到博客根目录路径下。我会将最新的脚本添加到下载目录。建议直接使用下载版。
在hexo根目录下新建一个脚本文件:,将以下内容复制进去。复制后记得按照注释信息修改个人账户和邮箱。在目录下打开终端,使用启动脚本。界面效果如下: