不知道有没有人像我一样,想要建立个人主页,可是对JaveScript和PHP都不了解。不过现在好了,基于开源的Hexo,只需1小时,即可在GitHub搭建一个简单又美观的个人主页,并在上面发表你的第一篇文章。Here we go.
目录
准备
选装
- Markdown Pad 2 - Markdown编辑器
- Visual Studio Code - Markdown编辑器
配置Git
首先在GitHub上注册免费账号。接着在账户界面选择+ New repository
,在Repository Name
中填入用户名.github.io
,选择Public
,点击Create Respository
创建一个目录。这个目录就是你的网站的存储空间。
接下来打开Git Bash,在Git Bash中输入
1 | cd ~/. ssh |
以检查本机的ssh密钥。如果提示:’No such file or directory 说明你是第一次使用Git。
生成新的SSH Key:
1 | ssh-keygen -t rsa -C "邮件地址@youremail.com" |
这里邮箱地址要填入注册邮箱地址。
然后设置密码:
1 | Enter passphrase (empty for no passphrase):<输入加密串> |
在回车中会提示你输入一个密码,这个密码会在你提交项目时使用,如果为空的话提交项目时则不用输入。这个设置是防止别人往你的项目里提交内容。注意:输入密码的时候没有*字样的,你直接输入就可以了。
最后看到这样的界面,就成功设置SSH Key了:
在本机设置SSH Key后,需要添加SSH Key到GitHub上,为之后的从本地向GitHub上提交网站做准备。
- 用文本编辑器打开C:\Users\用户名.ssh\id_rsa.pub,里面是刚才生成的密钥。
- 登录GitHub,在右上角的头像选择Settings -> SSH Key -> New SSH Key,然后将文件中的内容拷贝至
Key
中即可。Title
为这个SSH Key的名称,可以自定。
测试设置结果:
1 | $ ssh -T git@github.com |
如果得到如下反馈:
1 | The authenticity of host 'github.com (207.97.227.239)' can't be established. |
此时输入yes
即可。然后会看到:
1 | Hi thesharing! You've successfully authenticated, but GitHub does not provide shell access. |
说明SSH Key已经设置成功,这台设备的Git Bash已经可以访问你的GitHub了。
接下来需要设置登录信息:
1 | $ git config --global user.name "你的用户名" |
到这一步,Git Bash就配置完毕了。
安装Hexo
Hexo 是一个快速、简洁且高效的博客框架。在安装完以上的软件以后,在命令提示行中使用npm
命令即可完成安装。
1 | npm install -g hexo-cli |
可能会有网络错误,可以重新执行命令安装。
接下来执行
1 | npm install |
以安装所需的依赖包。
部署Hexo
指定一个文件夹作为你的博客存放的文件夹,然后从此文件夹打开命令行,开始部署:
1 | hexo init |
等待一段时间,Hexo会在这个文件夹下建立工作目录。现在本地博客已经建立完毕,执行以下命令:
1 | hexo generate |
然后在浏览器中访问localhost:4000
即可看到初始化的博客内容。
下载主题
在Hexo的官方网站Themes|Hexo 上有一些主题可供使用,在Hexo的GitHub主页Themes - hexojs/hexo上提供了更多的主题链接可供下载。你可以选择用Git将主题Clone
到本地,以获得主题的实时更新,也可以通过Download Zip
将主题下载到本地的hexo文件夹/theme/使用。针对不同主题会有不同的设置项,一般主题的GitHub主页会提供Wiki来帮助设置主页。本次以PPOffice开发的Icarus为例进行主题方面的设置。
个性化你的博客
首先要配置你的站点信息,用Visual Studio Code等文本编辑器(不推荐使用记事本,存在一些格式上的问题)打开hexo/_config.yml
开始配置。
1 | # Site 站点信息设置 |
可以将其直接复制入你的_config.yml
文件中使用。下面解释各项如何修改。
Site
按照说明修改即可。
URL
将url改为你的博客首地址,可以到GoDaddy上购买域名进行绑定,那么这里就应该改成你的域名而非GitHub.io地址。
Writing - Pagination
均不必修改,如自定义请参考官方Doc进行修改。
Theme
将Theme修改为你下载的主题的主题名,要注意,theme
文件夹下的主题文件夹也要对应名称。
Deploy
将repository
改为https://github.com/你的用户名/你的用户名.github.io.git
,branch
不变。
此时第一个配置文件设置结束,我们打开主题的配置文件来配置主题样式。这里以icarus为例,打开hexo/themes/icarus/_config.yml:
1 | # Version of the Icarus theme that is currently used |
可配置项
- 在配置的
navbar
部分中按照页面名: 页面目录
的格式可以自行添加页面。 logo
中可以设置Logo以及Logo大小。建议直接替换而非自定目录。avatar
中设置资料页的头像,author
为作者名,author_title
为作者介绍,location
为地区,follow
为“关注我”指向的地址。highlight
为语法高亮的主题sidebar
为资料页的位置(左、右)thumbnail
设置是否显示缩略图favicon
设置网站图标social_links
设置社交图标comment
设置评论系统,disqus
后填入论坛名即可plugin
中设置Google站长分析等插件信息
Disqus
进入Disqus完成注册以后,点击右上角的“设置”,选择“Add Disqus To Site”,然后按照向导进行设置即可。这里要注意,Disqus URL
中填写的就是上面设置文件中要填写的论坛名。
生成并预览
设置完成后,在hexo文件夹下打开命令行输入
1 | hexo generate |
如果运行成功,那么输入localhost:4000
即可打开你的个人主页。
部署你的Blog
之前我们一直在本地运行,接下来我们要把个人主页部署到GitHub上去。在每一次对设置的修改以及写文章之后都要用hexo generate
命令重新生成一次。然后右击hexo文件夹,选择Git Bash Here
,打开Git Bash,在Git Bash中输入
1 | $ npm install hexo-deployer-git --save |
等待安装完成以后,再执行:
1 | $ hexo deploy |
有可能会提示输入邮箱和密码,按照之前设置的输入即可。如果失败可能是网络问题,重新尝试一下。
提示成功以后可以在你的GitHub的该Repository下看到Commit成功+1,说明服务器已经接受了你的提交,一般等待3-5分钟以后,你的Blog便会被刷新。此时用你的用户名.github.io
即可访问到你的Blog,怎么样,是不是很Coooool?
写文章
那么说了这么多,个人主页已经建好,接下来就是充实内容了。内容怎么充实呢?写文章咯。
在hexo文件夹下打开命令行,输入:
1 | hexo new [layout] <title> |
这里[layout]
是指你所用的模板名称,所有模板都在hexo\scaffolds\
文件夹下存放,关于模板的更多信息,请访问官方Doc,里面有很详尽的解释。
title
则是文章的标题,可以为中文。 在执行完命令后,到hexo\source\_posts\
文件夹下可以找到生成的Markdown文件。用MarkdownPad 2或者Visual Studio Code打开Markdown文件即可开始书写你的文章,正如我现在所做。至于Markdown文法,又是一个大坑。
对于图片,我们需要将文章中要用到的图片上传至图床然后引用外链。图床是指存放图片的云存储空间,我个人正在使用的是七牛,可以找一个适合自己的图床一直用下去。
在写完文章以后,再次hexo generate
然后部署就可以了。
Markdown教程:如何快速掌握Markdown语法?
Hexo中支持的语法高亮:highlight.js - CSS classes reference
更多配置
添加站长统计和SiteMap
为了提升在搜索引擎中的搜索权重,可以通过添加站长统计以及提交SiteMap进一步优化SEO。
首先注册百度站长统计和 Google Analytics,获得追踪ID。对于百度站长统计来说,只需要在管理后台的新版统计代码获取
页面复制追踪ID至icarus的baidu-analytics
- tracking_id
即可。对于Google Analytics来说,只需要在管理后台的媒体资源设置
页面复制跟踪 ID
至icarus的google-analytics
- tracking_id
即可。
然后需要生成SiteMap。在Hexo根目录下执行:
1 | npm install hexo-generator-sitemap --save |
安装完成后在Hexo文件夹中的_config.yml
中添加:
1 | sitemap: |
然后运行hexo -g
即可生成sitemap.xml和baidusitemap.xml文件。
在生成了SiteMap文件后需要进行提交。
百度提交方式为:
访问链接提交|百度搜索资源平台并用百度账号登录,然后选择自动提交
- sitemap
方式填入baidusitemap.xml的地址即可。
Google提交方式为:
访问Search Console,用Google账号登录,下载Google验证网页,将其放入hexo/source
文件夹中,同时在Hexo的_config.yml
文件中设置渲染排除项:
1 | skip_render: [readme.md, "*.html", "*.htm"] |
然后运行hexo generate
并运行hexo deploy
。接着在Search Console的抓取
- 站点地图
部分指定sitemap.xml的地址即可。
可参考hexo干货系列:(六)hexo提交搜索引擎(百度+谷歌)
支持数学公式
目前主流的数学公式库为MathJax,对于icarus这样直接支持MathJax的主题,在其_config.yml
文件的plugin
部分设置mathjax: true
即可。
对于不支持MathJax的主题来说,在Hexo根目录下运行:
1 | npm install --save hexo-math |
然后在Hexo的_config.yml
文件中设置MathJax:
1 | math: |
可参考hexo中插入数学公式
添加RSS订阅
首先在Hexo根目录下运行:
1 | npm install --save hexo-generator-feed |
然后在Hexo的_config.yml
文件中添加配置:
1 | feed: |
接着在icarus的_config.yml
文件中添加RSS的入口,可以在Navbar
部分添加RSS链接:
1 | navbar: |
也可以在Social Links
部分添加:
1 | social_links: |
节点分流
如果你已经将你的个人主页挂靠在自己申请的域名上,那么你可以通过域名解析进行节点分流,国外用户访问GitHub,国内用户访问coding.net,从而解决GitHub在国内访问速度慢的问题。
首先在coding.net(现在又称腾讯云开发者平台)注册账号,并新建一个项目,然后在项目设置中开启Pages服务。然后在Hexo的_config.xml
文件中设置deploy
到多个仓库中:
1 | deploy: |
接下来运行hexo d
将页面分别部署到两个仓库中。访问coding.net / GitHub提供的原始网址,保证可以正常访问。
再在云服务商的域名解析页面进行设置,添加CNAME记录,境外线路指向abc.github.io,境内线路指向abc.coding.me。等待DNS刷新后就可以进行节点分流了。
推荐阅读 与 参考资料
如何搭建一个独立博客——简明Github Pages与Hexo教程
问题
Markdown Pad 2 无法正常预览怎么办?
按照官网提示,安装Awesomium 1.6.6 SDK以及Microsoft’s DirectX End-User Runtimes (June 2010)以后可以解决。