AI’boy原创,转载请注明出处。
目前网上有很多利用github pages和hexo搭建个人博客的教程,但是github目前拒绝了百度蜘蛛的爬取,因此如果希望自己的博客能够被百度收录,就需要采用一些别的方法托管。之前网上有一些利用coding.net进行托管共百度爬取的方法,但是最近coding.net进行了改版,在打开托管的个人pages时会强行加入一个5s的等待跳转页面,导致百度的蜘蛛无法正确爬取到博客的内容。因此,这篇文章将手把手教你如何用gitlab托管你的博客,实现让百度可以爬取你的博客内容。
以下操作均在windows10的环境下进行,其他的环境操作如果有问题请自行进行必要的修改。
最新版的nodejs可以在这里获取,下载后直接安装即可,安装完后打开cmd,输入npm -v,如果能输出版本号则说明安装成功。
git的安装和配置请自行百度,这里就不详细写了,这是git的下载地址
如果已经完成了以上两步,在一个私人文件夹下打开cmd,运行
npm install hexo-cli -g
hexo init blog
cd blog
npm install
hexo server
如果一切正常,在浏览器中访问http://localhost:4000/就可以看到运行在本地的博客了。
在gitlab完成注册后,首先访问这里,向你的帐户添加ssh keys,ssh keys的生成可以参考如下的步骤,打开2.2安装的Git Bash,输入如下命令(自行替换其中的用户名和邮箱信息)
git config --global user.name "Boyuan"
git config --global user.email "[email protected]"
ssh-keygen -t rsa -C "[email protected]"
最终生成的文件一般位于C:\Users\UserName.ssh文件夹下,打开id_rsa.pub,将里面的所有内容添加到这里。
接着点页面右上角的+号,新建一个项目。项目名为”username.gitlab.io”,其中username为你的gitlab账号用户名,项目类型选择Private
利用gitlab部署你的博客和github最大不同在于,在github上部署博客需要先在本地生成各种页面文件,然后再推送到github上就可以直接访问了。而使用gitlab则需要在服务器端完成生成和部署两个阶段,应该需要在项目的根目录下添加一个.gitlab-ci.yml文件用来指导服务器如何处理你提交的源文件。一个完整可用的.gitlab-ci.yml如下,其中我把hexo默认的公式渲染引擎替换为了pandoc,同时添加了生成站点地图的功能。
before_script:
- apt-get update -qq && apt-get install -y -qq pandoc
image: node:4.2.2
pages:
cache:
paths:
- node_modules/
script:
- npm install hexo-cli -g
- npm install
- npm uninstall hexo-renderer-marked --save
- npm install hexo-renderer-pandoc --save
- npm install hexo-generator-sitemap --save
- npm install hexo-generator-baidu-sitemap --save
- npm install hexo-util --save
- hexo deploy
artifacts:
paths:
- public
only:
- master
这里推荐大家使用NexT主题,这也是本站目前使用的主题,具体的安装步骤可以参考这里,有一点需要注意的是,将themes\next\目录下的.git文件夹删除。
下面主要还需要对项目根目录下的_config.yml进行修改
接下来,在项目根目录下运行如下命令
git init
git remote add origin git@gitlab.com:feixiang/feixiang.gitlab.io.git
git add .
git commit -m "init blog"
git push -u origin master
以上第二句命令请根据自己的项目名称进行调整。
完成推送后,访问你的项目主页,如果看到passed的图标,就表示构建成功了,访问https://username.gitlab.io/ 就可以看到自己刚刚建立的博客了。
如果需要添加新的文章,将文章的md文件保存到source_posts文件夹下然后重新执行推送就可以了,服务器端完成构建后,如果没有错误就会出现在你的博客页面上。
到此何如在gitlab上搭建一个博客就说完了,如果想绑定自己的域名实现让百度爬取请继续往下看。
修改_config.yml文件中的url地址为http://你的域名,重新提交,服务器端编译通过后,在项目主页访问Settings->Pages->New Domain,输入你的自己的域名就可以了。然后去你的域名注册商那添加一条指向username.gitlab.io. 的CNAME记录记录,输入你的域名,看看是不是可以访问了。
利用百度爬虫抓取,可以看到可以成功抓取。图一是使用gatlab托管的抓取状态,图二是利用github抓取的状态。