0 序
0.1 动机
突然就想建站了
反正是免费的
而且感觉现在人手里没个 NexT 的 HEXO 就好像没写过博客一样
实质内容是不存在的,我超喜欢 WordPress,简书是不会去的,人又懒,不想维护静态网站,我只是想找个地方安静的折腾css
0.2 配置
- GitHub Pages (免费的 GitHub 账号)
- HEXO
1 简介
1.1 什么是静态网站
静态网站与动态网站的区别是什么?这大概是一个哲学问题。比如大佬兼哲学家成潮曾经说过,
静态网站是纯前端实现,而动态网站有后端,仅此而已啊。
更具体一点说,静态网站就是仅由 HTML 构成的网站,主要特点是:
- 每个静态网页都有一个固定的网址,文件名均以htm、html、shtml等为后缀;
- 静态网页一经发布到服务器上,无论是否被访问,都是一个独立存在的文件;
- 静态网页的内容相对稳定,不含特殊代码,因此容易被搜索引擎检索;html更加适合SEO搜索引擎优化。
- 静态网站没有数据库的支持,在网站制作和维护方面工作量较大;
- 由于不需通过数据库工作,所以静态网页的访问速度比较快。
关于静态网站与动态网站对比的更多内容可以参考本文最下方的 Ref 。
1.2 什么是 GitHub Pages
我们知道想要建一个网站,需要有一个服务器。谈到服务器你会想到什么?有的人可能会回答:一个没有屏幕的电脑。我们对服务器的印象从硬件层面可以概括为:电源、主板、CPU、内存、硬盘、网卡等等…
类似的,我们在租用 VPS (Virtual Private Server ) 的时候,同样也会关注其配置,用了什么规格的 CPU,多大的硬盘和内存,多大的网络带宽等等。我们可以通过 ssh 等手段远程连接到 VPS,并在上面执行自己的 Shell 指令,运行各种程序(Unix Based Server 是 VPS 的常态)。它们的硬件并不是使用者个人私有的,而是由更大的硬件系统模拟出来的一个空间。但是每一个 VPS 确确实实分配到了一定的物理资源,包括运算力和存储空间,虽然个人用户购买的 VPS 往往小巧廉价,但是 VPS 在结构上仍然是个完整的服务器。那么 GitHub Pages 也是一个 VPS 吗?
答案是否定的。
GitHub Pages is a static site hosting service and doesn’t support server-side code such as, PHP, Ruby, or Python.
— What is GitHub Pages?
GitHub 虽然非常慷慨,但是它并不是一个慈善组织。GitHub Pages 还远没有达到 VPS 那个级别的完整度,你没有运行在一个接近私人的环境下运行 Shell 的机会。
你能做的仅仅是把写好的网页文件通过 git 上传到 GitHub 中专门用来存储 GitHub Pages 的仓库(repositories) ,剩下的交给 GitHub 处理,最终别人可以通过访问 *.github.io 或者你自己的域名来浏览这些已经存在的网页。
换句话说,与其认为它是一个服务器,不如认为它是一个可以远程访问的云盘,顺带放在云盘里的网页文件会被自动映射到网络上,供人用域名直接浏览。
字面意义上的 Pages 。
顺便一提,由于 Github Pages 仅在用户使用 *.github.io 域名访问博客的时候才提供 https 加密,而大部分域名提供商的域名转发功能是不会默认支持 https 的,这就造成了你无法在自己的域名下通过 https 来访问自己的 GitHub Pages 博客。当然,有少数域名提供商是例外,而且就算没有支持,你仍然可以选择通过 CDN 来解析你的博客,保证从用户到 CDN 再到 GitHub Pages 服务器全程加密。
1.3 所以,我们要手写 HTML 文件了吗?
那真是太恐怖了。
先不提那些辅助你创建 HTML 的 IDE,如果你关注的重点真的是在博客上面,那么花费大量时间在构筑 HTML 上就显得十分低效,就好像让一个 C 的程序员全程使用纸带和打孔机来设计和输入电脑程序一样。
如果你想锻炼 HTML 代码能力,或者你是个出色的静态网页设计师,欢迎全程手写。
你可能听说过 jekyll, Hexo, Simple, Octopress, Pelican (鹈鹕) 或者 Lo·gech,它们都是常见的静态博客框架,是用来生成符合规范的静态页面的引擎。
它们通常运行在本地,即你的个人电脑上,或者别的什么地方,比如你手中多如繁星的 VPS — 反正不是在 GitHub Pages 上。因为 GitHub Pages 无法运行程序,它不是一个完整的服务器。
这其中有个特例,jekyll 是官方推荐的 GitHub Pages 框架,其原文 .md
可以直接上传仓库并由 GitHub 自动生成博客页面,也可以使用在线编辑器。
2 创建 GitHub Pages
2.1 创建代码库
选择New repository
,在Repository name
下填写<yourname>.github.io
,然后完成。
进入 setting -> GitHub Pages -> choose a theme
,随便选一个,然后应用。
至此你已经可以尝试访问 <yourname>.github.io
了,他应该已经被设定成了主题的介绍页面。
2.2 配置 git
ssh-keygen -t rsa -C anywugn@gmail.com #生成 ssh 秘钥,有就不用了 clip < ~/.ssh/id_rsa_anywugn_github.pub #复制公钥内容到剪贴板
然后来到仓库,Settings -> Deploy keys -> add Deploy keys
, 复制进去并勾选写入权限即可。
可以用一下代码测试 ssh 是否可用(不要修改代码内容):
ssh -T git@github.com
如果看到:
Hi anywugn/anywugn.github.io! You've successfully authenticated, but GitHub does not provide shell access.
就说明成功了。
接着你可以设置一下本地的 git:
git config --global user.name "anywugn" #用户名 git config --global user.email "anywugn@gmail.com" #邮箱
3 配置 HEXO
3.1 Install
(未完待续)