写在前面

  云服务器加 WordPress 是大家建站的最常用搭配。如果只是静态页面的话,可以免费利用 Github Pages 搭建网站,这对于学生党来说是一个很好的选择。

使用 Github Pages

  这个十分简单,只需要在 Github 上建立一个仓库,然后取名为 xxx.github.io 就行了。然后在仓库的 Settings 页面就能看到相关的信息了,如图所示:

use-github-pages

use-github-pages
  这时,你用 xxx.github.io 就能访问你的页面了。当然,为了提高我们的逼格,自然不满足于使用这个域名。如果你有自己的域名,可以通过 Settings 页面 GitHub Pages 子项中的 Custom domain 修改成你自己的域名。最终的效果如上图。

使用 Jekyll 框架

  Github Pages,是无法支持数据库的,因此我们的博客页面和文章,必须全部是静态页面。写博客自然不能每次都自己手动写一个静态html,我们需要用一些工具,让我们只需要专注于内容。
  有两个比较流行的框架 hexoJekyll,它们都可以把按照一定格式写就的Markdown文档转换成静态页面。唯一不同的是,Jekyll 被 Github 原生支持,我们只需要写好 markdown文档然后 push 到我们的 github 仓库就好了。而 hexo 则需要自己在本地搭建环境然后生成页面后再放到 github。所以,权衡后我采用了 Jekyll

Jekyll 的文件结构

  Jekyll 基本的目录结构如下所示:

├── _config.yml
├── _drafts
| ├── drafts.md
| └── drafts-two.md
├── _includes
| ├── footer.html
| └── header.html
├── _layouts
| ├── default.html
| └── post.html
├── _posts
| ├── 2018-01-01-The-post-Article-001.md
| └── 2018-01-01-The-post-Article-002.md
├── _data
| └── members.yml
├── _site
└── index.html

  通常我们只需要关注 _config.yml, _post, _drafts 三个位置的东西就行了。其中 _config.yml 是关于你站点的一些配置(一些全局变量),通常于你选择的主题有关系。_post 文件夹存放的是你 post 上 github 的文章,这里的内容通常是 markdown 格式,_drafts 格式和 _post 相同,只不过它存放的是草稿。
  更具体的内容可以参考 Jekyll官网的文档说明 , 有一个哥们做了一个中文翻译,如果对英文不亲和的可以 看这里。选择一个主题模板,修改好后 push 到 github,然后后面的内容就是用 Markdown 写文章,然后再 push 到代码仓库的 _post 目录就行啦!GitHub 会自动把它转成静态页面,几乎零延迟哦!这里需要注意的是,写的 Markdown 文件,命名和头部内容需要有固定的格式,便于框架识别。 这个看几个例子就清楚了。

选择一个 Jekyll 主题

  先挑一个主题,然后再基于这个主题进行修改,自然比自己完全从头开始弄要方便和简单的多。大家可以在 Jekyll Themes 这上面先找一个觉得不错的主题,再把它修改为自己喜欢的样式。

  我使用的主题是 Jacman, 有人从 Hexo 上移植过来的,我觉得很简约也很漂亮,推荐给大家。

遇到的一些问题

  使用过程中遇到了一些问题,主要是配置不完整导致的。

1.时区问题

  Github 上不是北京时间,所以需要在 _config.yml 中加上 timezone: 'Asia/Shanghai',否则, 上传的文章 Github 不会马上处理,因为美国时间还没到呢。

2.More标签问题(仅限我这个主题)

  想让文章有 查看更多 的功能,需要一个 <!-- more --> 标签,这个我搞忘配置了。需要在在 _config.yml 中加上 excerpt_separator: '<!-- more -->' 就行啦。

加上 Https

  让我们的个人博客有 https 这个小锁头,岂不是显得高端许多。由于 Github 不支持上传证书,因此就算你有证书也是不行的。解决方案就是使用 CDN,让用户与 CDN 之间的这段通信用SSL加密,这样在使用中和完美的端到端 SSL 看起来是一样的。

  我使用的 CDN 服务商是 CloudFlare 免费套餐也提供了不错的服务,而且和百度有合作,在大陆貌似也有节点。使用 CloudFlare 需要把你的域名 DNS服务器换成它的,然后在 Crypto 中的 SSL 子项中选择 Flexible 就行了,等待24小时它就给你签发证书了。 其中,Flexible 的意思就是, 用户端到 CDN 采用 SSL加密,CDN到你的服务器 (也就是Github),采用普通的http。


  以上就是全部内容啦!

标签: web

添加新评论