很久之前我的指导老师就跟我说整个个人主页及小组主页,来介绍我们的工作。主要是因为我俩的名字太常见了,直接使用搜索引擎很难搜到个人介绍,及准确的文章列表。
其实这个需求很简单,不用像常见的个人博客那样麻烦,个人博客的重点在于不断更新博客文章,而且要有复杂的分类。而我们的个人主页仅需个人简介、研究介绍、个人经历、文章列表、参与项目、所获荣誉等几大模块,更新东西很少的。参考陈天奇的个人主页。
- 第一阶段,刚接触Blog,觉得很新鲜,试着选择一个免费空间来写。
- 第二阶段,发现免费空间限制太多,就自己购买域名和空间,搭建独立博客。
- 第三阶段,觉得独立博客的管理太麻烦,最好在保留控制权的前提下,让别人来管,自己只负责写文章。
…但是两年前,情况出现变化,一些程序员开始在github网站上搭建blog。他们既拥有绝对管理权,又享受github带来的便利—-不管何时何地,只要向主机提交commit,就能发布新文章。更妙的是,这一切还是免费的,github提供无限流量,世界各地都有理想的访问速度。
正如文中所说,使用GitHub Pages可以用于绝对的控制权,有避免了个人管理独立博客的麻烦。所以个人主页搭建工具上选择GitHub Pages.
实际上,我并不需要构建静态博客的框架,因为我只需要构建一个单页面,不会需要使用Markdown更新博客。所以使用HTML+CSS这种完全静态的方式编写就可以。
使用 https://academicpages.github.io 给出的学术模板,比较成功的案例是一位与我同龄大牛于文涛的个人主页,他是SeqGAN的发明人。
该模板是基于Jekyll主题Minimal Mistakes主题修改而来,所以需要使用Jekyll框架。 该框架的内容、meta数据都是使用Markdown文件间存储,提供很多不同的将内容、meta数据转换成不同的HTML页面。每次commit、push对github仓库进行更新时,Github Pages服务都会将上述页面转换成静态的HTML页面。
具体步骤:
[your_name].github.io
,该名称将会成为你个人主页的网址。_config.yml
中,top menu的配置在_data/navigation.yml
中,对于不需要的选项可以删除。files/directory
下,会出现在https://[your name].github.io
下。目前搭建好的个人主页可以直接访问[your_name].github.io
,如我的个人主页superlj666.github.io
。但如果想要使用独有的个性域名还需要额外步骤。
不同域名服务商直接域名转入转出较为麻烦,所以最好是购买云服务器和域名使用同一家云服务商。另外,.cn
等域名需要备案,使用阿里云、腾讯云可以很方便地进行备案。最终我选用了腾讯云。
.com
肯定是最好的,而.cn
等后缀域名需要备案而且管理,但想要的.com
往往已经被占用。 比如我使用lijian
作为前缀查询,最终想要的就剩lijian.ac.cn
,该域名常用于科研机构,而且和我所在的研究所、科学院的后缀一样,所以最终购买了该域名。 购买时可以先买一年的,注册绑定coding,可以领券腾讯云100元代金券,使用该优惠券再续费几年。同时,域名实名认证后腾讯云送的代金券中有续费可以使用的打折券,再续费一波。最终,我的lijian.ac.cn
域名总共花费100元,有效期变为了6年。有了域名、云服务器之后,想要使用域名邮箱,比如我使用的me@lijian.ac.cn
。可以自己搭建邮箱服务器,但这样费时费力而且垃圾邮件过滤、分类等都太麻烦了。还可以使用企业云邮箱,阿里、网易、腾讯等有提供,这里我也是使用的腾讯的企业邮箱,优点是账号上限为50个以及邮件有微信推送。
使用域名邮箱会在域名解析中添加两条@MX
解析。
由于我的域名lijian.ac.cn
使用企业云邮箱来做个人邮箱,所以会使用@MX
解析,然后就遇到了@MX
与@CNAME
不能共存的问题。查了很多资料,发现这个问题是个历史遗留问题不好解决。比较好的方案是
lijian.ac.cn
而是使用www.lijian.ac.cn
。该方案不可行,因为Jekyll默认是CNAME到裸域的,而且必须加www不符合使用习惯。之后发现了github怎么绑定自己的域名? - 严晟嘉的回答 - 知乎,ping superlj666.github.io
得到ip地址,然后使用@A
记录从而避免@CNAME
,目前Github支持自定义域名的HTTPS请求(需配置,详见Custom domains on GitHub Pages gain support for HTTPS,将assets中的http改为https)。
CNAME
文件内容为lijian.ac.cn
,注意此处无www
、无https
。Setting
中开启Enforce https
www
,记录类型为CNAME
,记录值为superlj666.github.io
@
,记录类型为A
,记录值可为如下四个(可以添加多条)185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
hexo高阶教程:教你怎么让你的hexo博客在搜索引擎中排第一
让Google搜索到用Jekyll搭建在Github Pages上的博客
个人主页搭建好后,由于存在较少的链接指向,造成搜索引擎的爬虫无法抓到。可以在Google或者Baidu中搜索site:https://maxwellyue.github.io/
查看收录结果。如果没有则需要在Google Webmasters或百度站长进行网站注册
最简单是cname,我采用这种方式。
https://www.lijian.ac.cn/sitemap.xml
,然后就是等待收录了。https
后显示不正确的问题assets
文件夹下所有http://
改为https://
https://lijian.ac.cn
可以访问但http://lijian.ac.cn
无法访问CNAME
值清空,将域名解析中设置的CNAME
、A
记录暂停,build一遍网站,此时https://lijian.ac.cn
是访问不了的;再重新填写CNAME
,开启域名解析,build网站;上述操作类似于重启。_data/navigation.yml
中进行修改,并在_pages
文件夹下添加文件,注意link要对应。{{ text }}
、{% text %}
[//]: # ()等视为Liquid标签。使用如下方式即可解决[//]: # ()
your code here
[//]: # ()
_sass/_syntax.scss
中进行修改,将font-size: $type-size-7
改为14pt
,如下所示.highlight {
margin: 0;
padding: 1em;
font-family: $monospace;
font-size: 14pt;
line-height: 1.8;
}
通过上面的步骤,我可以得到
superlj666.github.io
或lijian.ac.cn
访问个人主页。me@lijian.ac.cn
。