1.前言
这个博客是于2020年7月2日创建的。使用的是hexo博客框架+firebase hosting 托管主机建立的。
因为之前自己也搭建过博客,但当时使用的是vps+wordpress的方案(不稳定,数据容易丢,而且要租用服务器自己托管网站)这段时间学习Linux的过程中偶然发现了谷歌的副firebase平台(它是谷歌旗下一个后端即服务(BaaS)的平台,简单来说就是后端在云端,不用再担心数据库、认证、存储和扩张等,直接调用即可。)
目前Firebase提供了非常多的服务,这里我们用到了其中的托管。
免费的托管方案提供了:
- 1G的储存空间
- 10G/月的流量超出后可以付费购买。
总的来说得益于Google在世界各地的cdn加速,使得在firebase平台托管的网站能够免费地高速访问(比github pages快多了)
现在博客正式上线了,这将记录我的一些学习记录。
2.博客运行的代码
hexo部分
1.安装npm、Node.js
1 | sudo apt update -y |
2.初始化文件夹
在一个空白的目录执行安装hexo博客的框架
1 | sudo hexo init |
初始化完成后,就有了如下的文件目录:
1 | . |
其中_config.yml
为配置文件,source
里存放所有的文章,themes
文件夹可以配置不同的主题,大量的主题可以在官网上找到。
3.写作
当一切准备就绪之后就可以兴建第一篇文章了,在hexo主目录下
1 | hexo new post <title> |
就会在source/_posts
文件夹下生成一篇文章,比如运行了
1 | hexo new post 第一篇文章 |
就会在上述目录下找到一个名为第一篇文章.md
的文件,然后就可以在里面用markdown写作了。这里推荐使用Typora作为markdown的写作工具
4.生成静态页面html文件
写作完成后,在根目录运行命令
1 | hexo g |
就会将文章和主题打包在一起生成HTML
文件,生成的文件会放在根目录的public
文件夹下。网站运行所需的所有东西全都被放在这个文件夹下。
同时,也可以运行
1 | hexo server |
这个命令会在本地启动服务器,可以通过http://localhost:4000/
来预览效果。
可以看到hexo的使用非常简单。更多详细的说明可以查看官方文档。
但是我这里firebase作为托管服务器,实际运行的时候无需启动本地服务器可以直接执行命令把hexo博客提交到firebase平台。
完整提交内容:
1 | firebase deploy |
只提交更改内容:
1 | firebase deploy --only hosting |
部署就完成了,内容将部署至 Firebase项目的默认托管网址:project-id.firebaseapp.com
这样在我的博客网站:https://usg-cn.web.app/ 就可以看到修改后的结果了。
firebase部分
Firebase ,谷歌的又一个神器,具体怎么神我就不多作介绍了,我们只用上了其中很小的一部分功能:托管。
关于托管,官方是这样介绍的:
Firebase 托管为您的网页应用提供快速、安全的静态托管。
Firebase 托管是为开发者提供的生产级网页内容托管服务。 借助 Firebase 托管,您只需一条命令,便可轻松快捷地将网页应用和静态内容部署到全球内容分发网络。
使用Firebase有很多非常难得的好处:
- 全球SSD CDN,速度比GitHub快。
- 一键回滚。Firebase托管使用一键式回滚提供完整的版本控制和管理。
- 零配置的SSL,自动启动HTTPS。
- 完美的中文文档支持。
使用Firebase的体验非常好,虽然是谷歌的产品但是提供了非常完整的中文文档支持,而且写得非常简单易懂,同一个代码示例提供多种编程语言的版本,里面的很多功能都能快速上手。
1.创建项目
首先访问Firebase创建一个项目。
创建时项目ID要注意,它会被用在URL上,如果不想自己定义域名的话以后就会一直用这个ID来作为域名访问。比如ID是usg-cn
,那么域名就会是https://usg-cn.firebaseapp.com/
和 https://usg-cn.web.app/
2.初始化
运行以下命令来安装Firebase(需预先安装Node.js
):
1 | npm install -g firebase-tools |
然后运行以下命令来登录,运行完后会弹出一个浏览器窗口:
1 | firebase login |
登录后再切换到刚才生成的Hexo目录下,
cd hexo/
运行
1 | firebase init |
运行时会让选择要使用什么功能,因为我们使用过的是托管所以这里选择Hosting
,然后会提示选择一个用作公共根目录的目录。这个目录就是放所有静态文件的地方,默认为public
,名字刚好和Hexo生成的静态文件目录名字一样,所以无需更改。
这个命令会在项目目录下创建一个firebase.json
配置文件,可以通过它来自定义托管行为。
运行
最后,完全所有改动后运行
1 | hexo g |
这个命令会让Hexo生成public
文件夹,因为Firebase部署的就是public文件夹,所以要先运行Hexo。
然后运行
1 | firebase deploy |
部署就完成了,内容将部署至 Firebase项目的默认托管网址:project-id.firebaseapp.com
大功告成了,接下来就是欣赏博客的时候了。
常用命令
1 | hexo clean |
hexo clean
用于清除旧版本生成的静态文件(推送到远端的public文件)hexo generate
生成新的静态文件(public文件),生成这个文件是根据/source
文件中的内容生成hexo deploy
推送github部署博客
1 | hexo new "postName" # 新建文章 |
hexo new
创建新的文章,创建的文章会在source/_posts/
目录下,文章格式.md(Markdown格式),每次就可以直接编辑博客直接编辑这个文件就可以了,也可以把写好.md的文件直接拖到这个文件夹中hexo generate
生成静态页面,生成的文件都是在public/
文件下,这个文件就是最后推送到github的文件
短命令
在ubuntu的环境下可以使用短命令来执行一键将静态博客页面部署到firebase
首先打开你个人目录下的.bashrc隐藏文件
1 | vim ~/.bashrc |
把光标移到末尾按’i’键插入一行
1 | alias gkd='hexo clean && hexo g && firebase deploy' |
‘gkd’(搞快点)就是短命令名,每当输入’gkd’将自动执行
1
2
3 hexo clean
hexo g
firebase deploy部署三连
然后按’Esc’后按’:wq’保存退出
最后在终端输入命令生效刚刚的更改就完事了
1 | source ~/.bashrc |
这样就以后写blog就可以节省掉’部署三连’的时间了
拓展:
1 alias gql='hexo g && firebase deploy --only hosting'只执行构建和只部署更改
执行source ~/.bashrc生效更改后要重启终端才会生效
- 一键三连