一直觉得有个人主页是一件挺酷的事,特别是对于我们这些CS/DS/AI出身的人来说。大一下学期准备从信息科学技术学院转到人工智能与数据科学学院(当时还叫大数据学院),新学院的学生会做了个进阶指南网站(类似于上海交通大学生存手册),在里面看到一篇搭建个人学术主页的教程,遂按照上面的指导,尝试使用academicpages搭建个人网站。先是按文中提到的知乎答主超级懒的小周撰写的中文教程 (教程现已不存,但相关Github仓库还在)进行搭建,fork了他的仓库,初步了解了Github Pages和静态网站和动态网站的区别,并下载了Node.js和Hexo,不过由于当时没写什么东西,而且对git相关操作、网站搭建等非常陌生,就决定暂时搁置。暑假时想拥有一个自己的域名,也为了方便在国内访问,于是在阿里云购买了一个域名(期限一年),并租了一年的服务器,加起来花了一百多块钱(但阿里云是有针对大学生的三百元优惠的,当时可能不知道)。买了域名还需要向工信部备案,流程略有些繁琐,但最后都办下来了。大二一年学业繁忙,没心思弄个人主页,域名和服务器到期后也不想续费了,结果那段时间天天被阿里云短信轰炸,不胜其烦。到了大三上学期,又开始想做一个学术主页,在网上发现了academicpages的教程和仓库,遂又开始forkgit clone一顿操作,搭建出一个学术主页的基本框架,但还没放什么东西上去。原本想着有一个主页就够了,但是在11月14日晚上刷阮一峰的科技爱好者周刊时,被别人简洁优美的博客网站所吸引,加上今年以来写了不少游记,于是心血来潮,想再做一个只记录日常生活随想的个人博客,上次做的学术主页将主要用于更正式的场合。在此之前,笔者一般用有道云笔记进行记录,随笔、读书笔记发布在知乎主页(不建一个微信公众号的原因是公众号上的文章只能修改极少的字数,而自己的文章内容可能需要不断修改),还有一些计算机相关的代码和笔记资料发布在GithubCSDN上,以后主要会在个人博客上发布并更新,再同步到其他平台。笔者关注并喜欢的个人博客链接放在这里了。

笔者搭建这个网站时,主要的参考资料是:快速搭建个人博客 —— 保姆级教程和Butterfly主题的官方文档,两者已经能解决用Hexo框架+Butterfly主题搭建个人博客的绝大部分问题。一开始为了方便国内访问,准备用Gitee的个人主页功能,但笔者把框架建好后发现gitee.io一直登不上,一查才知Gitee已经不再支持免费的静态网站服务了,至于其他的免费网站服务,比较知名的是cloudflare,B站上有相关教程,但笔者不太熟悉,而且这也是国外的服务,对于国内的用户,访问时可能和Github没有太大的区别,所以笔者重新注册了一个Github账号,新的个人博客仍使用Github Pages,然后就是一系列git clonenpm installhexo cleanhexo ghexo shexo deploy操作,在框架没问题后就进行一些细节的调整和美化,并将自己的博客以markdown格式上传放到根目录的source/_posts文件夹下,因为笔者对markdown相关语法和操作比较熟悉,因此在最后这步没有碰到太大问题。由于Hexo框架+Butterfly主题的功能和教程已经比较完善(例如目录、相关推荐、底部的版权信息、转发等功能都已自动实现),基本能满足笔者的需求,所以后期的修改并没有花太多时间。笔者是从周四晚上开始搭建这个网站的,到周一晚上就基本完成了(其间还赶了不少DDL)。

遇到的一些bug及解决方法如下:

  1. 第一次hexo s后在本地服务器能正常显示,但是hexo deploy后无法在github.io上显示主题和图片,经过搜索,得知需要在_config.yml的url下添加root,比如:

    1
    2
    url: https://kangaroogao.github.io/
    root: /

    注意在.yaml中,冒号后面要有一个空格。

  2. Github的用户名需要和仓库名一致,并且全部为小写字母或数字,笔者一开始使用了大写字母,发现Github会将其自动改为小写,导致无法访问。

  3. hexo deploy后网页没有变化,可以刷新几次,如果还是没有变化,可以尝试清除浏览器缓存。如果想马上看到修改效果,可以在hexo g后执行hexo s,这样网站会在本地服务器上显示。

  4. 设置顶部图(default_top_img)时,笔者一开始用的是本地的文件路径(无论是相对路径还是绝对路径,也试过放在img文件夹下),都在github.io上无法显示,后来将图片上传到了一个免费的图床网站(也可以直接上传到Github仓库),然后将图片的url放到default_top_img后,这样就能正常显示了。想在文章中嵌入图片也同样需要使用图片链接而非本地路径。

  5. 由于新设了一个新设了一个Github账号用来搭建本博客,以为要把git的全局配置(用户名、邮箱)也要改为新的,而导致原账号的git操作很麻烦。后来发现并不需要切换git全局配置,只需要在_config.yml中修改配置如下:

    1
    2
    3
    4
    deploy: 
    type: git
    repository: git@github.com:kangaroogao/kangaroogao.github.io.git
    branch: main

    但修改后还是报错,查资料得知hexo deploy使用SSH连接到Github,因此还需在C:\Users\admin\.ssh\config (Windows) 或~/.ssh/config (Linux) 中添加如下内容:

    1
    2
    3
    Host github.com
    User git
    IdentityFile

    其中IdentityFile后需要写入自己的私钥路径,生成私钥的方式可参考网络资料。

  6. 使用hexo-douban插件后,就不能使用hexo d作为hexo deploy的缩写了。