基于Node.js的Github Pages博客系统

摘要:

根据个人所需搭建出独立博客,我将会通过 安装流程主线+优质文章 作为参考。当然我的独立博客还不够完美,但若只是可以记录我的时光也足够了。我会将这篇教程写仔细,也将我出现过的问题给予大家一个解决方法。

前言

最近思考了一下,根据时间还有金钱计算,感觉还是不要搞得那么专业了。买阿里云虚拟机,搭 PHP 环境,配置 Wordpress,想想就懒得动手。觉得我的博客也就是分享些经验技巧相关的感悟比较多,配图什么的也可以都走免费的图床服务(七牛等)。静态页面的博客完全就可以满足吧。Github Pages 是一个比较酷的选择。

疑问

很多人用 wordpress,你为什么要用 Github Pages 来搭建?为什么要搭建一个独立博客?独立博客与微信公众平台有什么区别?
  • 无需购置服务器,目前的Blog挂载在Github Pages,免服务器费的同时还能做负载均衡;Github Pages有300M免费空间,资料自己管理,保存可靠;学着用 Github,享受 Github 的便利等等等等。
  • 独立的才是自己的,生命不息,折腾不止。
  • 公众账号是对所有人开放的,简单申请即可使用,没有挑战性。它仅仅只是一个平台,同时好好做运营也似乎不是一件简单的事情,没有足够的经历和精力是很难达到一个高度,也很难去传播你的文化价值观念。
    博客也只是一个平台,但是这里有你想要的,也是你的用武之地。公众账号是一个一对多的平台,很难利于交流,而这点你的博客很轻松就可以做到。更多的区别在此不多分析。

成功方向

  • 1、安装准备软件 Node.js、Git、GitHub DeskTop(前两个必须安装,后者可选)。
  • 2、本地搭建hexo框架、配置主题、修改参数、实现本地测试预览。
  • 3、链接GitHub、实现在线预览。
  • 4、购买域名并解析。(别弄那个1元仅高校学生可以购买,使用期限为一年.cn的域名,坑。后文有详细解释。)
  • 5、日后站点的管理和运营

世上无难事,就怕是懒人。以下以我的博客: Henry Blog,在windows或Mac下均可,教大家如何搭建一个独立博客。

安装流程

安装准备软件

  • Node.js
  • Git
  • GitHub Desktop (可选)
    如果你的电脑中尚未安装所需要的程序,请根据以下安装指示完成安装。

    Mac 用户
    在编译时可能会遇到问题,请先到 App Store 安装 Xcode,Xcode 完成后,启动并进入Preferences -> Download -> Command Line Tools -> Install 安装命令行工具。

  • 安装 Git:

    Windows:下载并安装 git.
    Mac:使用 Homebrew, MacPorts 或下载 安装程序 安装。

  • 安装 Node.js
    安装 Node.js 的最佳方式是使用 nvm。

    cURL:
    $ curl https://raw.github.com/creationix/nvm/master/install.sh | sh

    Wget:
    $ wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | sh

    安装完成后,重启终端并执行下列命令即可安装 Node.js。

    $ nvm install 4

    或者也可以下载安装程序来安装。

本地搭建hexo框架、配置主题

Hexo简介

Hexo 是一个轻量的静态博客框架。通过Hexo可以快速生成一个静态博客框架,仅需要几条命令就可以完成,相当方便。

而架设Hexo的环境也相当简单。

  1. Hexo安装方法

    参考官网中文文档,请尝试者仔细读教程和官方文档。这步很简单,正如官方网站写的那样只需要一条命令即可自动安装hexo框架。

    $ npm install -g hexo-cli #使用 npm 安装 Hexo。

  2. 初始化hexo

    请参考hexo官方文档,init命令中的\就是文件夹henrydong.github.io。

    初始化后,henrydong.github.io里面就已经有完整的Hexo框架了,这里可以在任意地方新建立一个文件夹并命名为henrydong.github.io【不要问为什么】打开该文件,点击鼠标右键你会看到一个Git bash here点击跳出git的黑窗口。

    详细输入命令如下:

    $ cnpm install hexo-cli –g #安装了cnpm之后,npm就完全可以代替啦。
    $ hexo init blog #初始化hexo
    $ cd blog #进入到blog目录
    $ hexo server #启动hexo服务
    完成后,指定文件夹的目录如下:

  3. Hexo配置方法

    为了让读者快速了解Hexo,在此先做简单介绍。当然,更多的还是需要仔细阅读文档才能详细了解。

    • _config.yml 全局配置文件。要注意的是,该文件格式要求极为严格,缺少一个空格都会导致运行错误。小提示:不要用Tab缩进,两个空格符, 冒号:后面只用一个空格即可 。
    • themes 存放主题的文件夹
    • source 博客资源文件夹
    • source/_drafts 草稿文件夹
    • source/_posts 文章文件夹
    • themes/landscape 默认皮肤文件夹

      配置hexo

做一些基础配置即可,请参考配置官方文档,这里也可以省略,因为在后面配置主题Yilia是也有提到这里的配置修改。

链接GitHub、实现在线预览

  1. 注册GitHub

    访问:http://www.github.com/ 注册你的Username和邮箱,邮箱十分重要,GitHub上很多通知都是通过邮箱的。注册过程比较简单,界面是英文,哥六级没过的都能看懂,相信你也可以的。

  2. 配置和使用 Github

    配置 SSH keys:

    我们如何让本地git项目与远程的github建立联系呢?用SSH keys。

    检查 SSH keys的设置,首先我们需要检查你电脑上现有的ssh key:

    $ cd/.ssh 检查本机的ssh密钥

    如果提示:No such file or directory 说明你是第一次使用git。

    生成新的SSH Key:

    $ ssh-keygen -t rsa -C "邮件地址@xxx.com”
    Generating public/private rsa key pair.
    Enter file in which to save the key (/Users/your_user_directory/.ssh/id_rsa):<回车就好>

    注意1: 此处的邮箱地址,你可以输入自己的邮箱地址;

    注意2: 此处的「-C」的是大写的「C」。

    然后系统会要你输入密码:

    Enter passphrase (empty for no passphrase):<输入加密串>
    Enter same passphrase again:<再次输入加密串>

    在回车中会提示你输入一个密码,这个密码会在你提交项目时使用,如果为空的话提交项目时则不用输入。这个设置是防止别人往你的项目里提交内容。

    注意:输入密码的时候没有*字样的,你直接输入就可以了。

    最后看到这样的界面,就成功设置ssh key了:

    添加 SSH Key 到 GitHub

    在本机设置SSH Key之后,需要添加到GitHub上,以完成SSH链接的设置。

    1、打开本地C:Documents and SettingsAdministrator.sshid-rsa.pub文件。此文件里面内容为刚才生成的密钥。如果看不到这个文件,你需要设置显示隐藏文件。准确的复制这个文件的内容,才能保证设置的成功。
    2、登陆github系统。点击右上角的 Account Settings—>SSH Public keys —> add another public keys
    3、把你本地生成的密钥复制到里面(key文本框中),点击 add key 就ok了。

    测试

    可以输入下面的命令,看看设置是否成功,git@github.com的部分不要修改:

    $ ssh -T git@github.com

    如果是下面的反馈:

    The authenticity of host 'github.com (207.97.227.239)' can't be established.
    RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
    Are you sure you want to continue connecting (yes/no)?

    不要紧张,输入yes就好,然后会看到:

    Hi henry! You’ve successfully authenticated, but GitHub does not provide shell access.

    设置用户信息:

    现在你已经可以通过 SSH 链接到 GitHub 了,还有一些个人信息需要完善的。

    Git 会根据用户的名字和邮箱来记录提交。GitHub 也是用这些信息来做权限的处理,输入下面的代码进行个人信息的设置,把名称和邮箱替换成你自己的,名字必须是你的真名,而不是GitHub的昵称。

    $ git config --global user.name "henrydong"//用户名
    $ git config --global user.email "xxx@xxx.com"//填写自己的邮箱

    SSH Key 配置成功

    本机已成功连接到 github。若有问题,请重新设置。常见错误请参考:
    GitHub Help - Generating SSH KeysGitHub Help - Error Permission denied (publickey)

    实现在线预览

    创建仓库和本地远程到GitHub仓库:

    首先在GitHub上创建一个仓库repository,注意仓库名称必须为henrydong.github.io,也是你之前在本地建立的文件夹名称:

    # 将当前的改动暂存在本地仓库

    $ git add .

    # 将暂存的改动提交到本地仓库,并写入本次提交的注释是”first post“

    $ git commit -m "first post"

    # 将远程仓库在本地添加一个引用:origin

    $ git remote add origin https://github.com/username/projectName.git

    # 向origin推送gh-pages分支,该命令将会将本地分支gh-pages推送到github的远程仓库,并在远程仓库创建一个同名的分支。该命令后会提示输入用户名和密码。

    $ git push origin gh-pages

    在GitHub上将gh-pages merge 到msater上

    添加部署代码

    Hexo主题修改:

    Hexo主题非常多,可以参考Hexo,本文选Yilia为主题,样式参考Henry Blog

    到这里我们采用参考作者在Github的官方文档

    也可以如下安装:

    安装

    $ git clone https://github.com/litten/hexo-theme-yilia.git themes/yilia

    配置

    修改hexo根目录下的 _config.yml : theme: yilia

    更新

    cd themes/yilia

    git pull

    在本地修改完这一连串的配置,(包括:语言设置、菜单设置、侧栏设置、头像设置、作者名称、站点描述、标签云页面、分类页面、统计系统、评论系统等等)现在是需要下面的一个命令即可在本地成功预览你的博客样式。

    写完文章之后 就可以启动本地服务器测试了。

    $ hexo s #启动本地服务器测试
    这个时候在浏览器中输入http://localhost:4000 静态的网站即架设完成。

    现在注意,你的头像,favicon图标,标题样式,第三方平台链接等等等等你心中完美的页面,先不要修改,有坑,下次详细介绍。

    在Git命令黑窗口里输入

    $ hexo g #生成静态网页

    `$ hexo d #开始部署

    `完成以上步骤,你算是成功了。在浏览器中输入xxx.github.io(自己对应即可)。

购买域名并解析

这一环节相对简单。
先说一下为什么不让你用那个腾讯云出的『一元搞定域名』。
自己看步骤:

一个域名50块钱以下,弄那么麻烦做什么。

去万网,注册一个.com 或者.cn .top,又或者我给我师兄注册的frankh.science(笑)啥的,都挺好。

将独立域名与 GitHub Pages 的空间绑定

DNS设置

领取到域名后进行域名解析,进入到我的域名管理,添加域名,如下图设置。

其中A的两条记录指向的ip地址是github Pages的提供的ip

  • 192.30.252.153
  • 192.30.252.154

GitHub Pages 的设置

去到你的henrydong.github.io仓库,点击 CNAME(没有自行创建) ,再点击右下角的 铅笔 编辑,将其改成你的域名。

域名绑定成功,域名解析成功,因此你在浏览中输入henrydong.github.io或者现在henrydong.com均可以访问到主页。

日后站点的管理和运营

图床

推荐使用七牛(10G空间,免费,配合Markdown使用简单)。

MarkDown教程请自行Baidu或Google。


以上