生信学习从制作博客开始

借用名言:

培根说:读书使人充实,讨论使人机敏,写作使人精确。

最近用hexo搭建了一个博客系统并部署在了GitHub,希望通过写作来记录自己的生信学习之路,好让我更好的去思考问题;也希望以这种方式来监督提醒自己在这条喜欢的路上走下去,再回首,我能看到一个不一样的自己,今天就将搭建过程分享给大家。

什么是hexo

Hexo 是一个快速、简洁且高效的博客框架,Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。

安装前提

hexo 是基于Node.js的,安装前首先要安装好Node.js。另外我们要将博客系统发布到gihub,所以git也是必不可少的。

Node.js安装

Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。我们在windows环境下安装很方便,首先从Node.js官网下载安装包,按照官网介绍安装即可。安装完成后,应出现以下效果,表示安装成功:

C:\Users\abc> node -v

v8.12.0

安装GitHub

Git是开源免费的分布式版本控制系统是用来处理代码量由小到大相关问题的。安装方式请参考Git官网,或者本站的Git相关内容。
安装完毕后,应出现如下效果,表示安装成功:

C:\Users\abc> git versiongit version 2.19.1.windows.1

安装Hexo

使用npm按照hexo即可,运行如下代码全局按照hexo-cli这个hexo的命令行工具

$ npm install -g hexo-cli

安装完毕后,应出现如下效果,表示安装成功:

C:\Users\abc> hexo -vhexo-cli: 1.1.0os: Windows_NT 10.0.17134 win32 x64http_parser: 2.8.0node: 8.12.0v8: 6.2.414.66uv: 1.19.2zlib: 1.2.11ares: 1.10.1-DEVmodules: 57nghttp2: 1.32.0napi: 3openssl: 1.0.2picu: 60.1unicode: 10.0cldr: 32.0tz: 2017c

Hexo建站

安装 Hexo 完成后,请执行下列命令,Hexo 将会在指定文件夹中新建所需要的文件:

$ hexo init <folder>
$ cd <folder>
$ npm install

新建完成后,指定文件夹的目录如下:

.
├── _config.yml
├── package.json
├── scaffolds
├── source
|   ├── _drafts
|   └── _posts
└── themes

此时一个基本的博客已经建立完毕了。

运行Hexo博客

进入博客目录,执行 hexo server 即可运行hexo服务器。

D:\www\Hexo>hexo s
INFO  Start processing
INFO  Hexo is running at http://localhost:4000 . Press Ctrl+C to stop.

此时,浏览器访问http://localhost:4000,即可看到你的博客。
至此,hexo搭建的博客已经完成。该博客使用方法,如何发文章,分类,标签等操作请参考Hexo文档,本文不再赘述。

发布到GitHub

GitHub上允许我们搭建自己的静态站点,在不购买自己的服务器情况下,可以有自己的博客。
需要用到Hexo提供的发布相关功能,同时需要在github上做一定的配置。

注册GitHub

已有账号的跳过此步骤

注册操作,跟着GitHub引导完成即可,GitHub注册

创建版本库

登录后,创建新版本库https://github.com/new
注意:版本库名字强烈建议是 <你的用户>.github.io 这种格式
创建完毕后,就可以使用 <你的用户>.github.io 这种方式访问你的github博客地址,但现在访问应该不会成功,因为是一个新创建的版本库,是空的,一无所有….。接下来就把我们本地的博客内容部署到这个github版本库上。

GitHub的SSH keys设置

在部署之前,需要保证GitHub可以验证我们的机器,需要将本地的RAS-publicKey告知给GitHub,步骤如下:

本地RAS密钥对生成

进入到 用户目录/.ssh目录下,查看是否已经存在了, 私钥id_rsa 公钥id_rsa.pub

C:\Users\abc> cd .ssh
C:\Users\abc\.ssh> dir
-a----       2018/1/22    19:46           1679 id_rsa
-a----       2018/1/22   19:46            403 id_rsa.pub

上面的输出表示已经存在。若不存在,执行 ssh-keygen 生成即可(持续回车即可):

C:\Users\abc\.ssh> ssh-keygen.exe -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\abc/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\abc/.ssh/id_rsa.
Your public key has been saved in C:\Users\abc/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:ymf2laAmgHVsGakavggdXrzORtVRNxkuKYq444C5Irs kang@V1N3RYQG70NI7YD
The key's randomart image is:
+---[RSA 2048]----+
|      .. .. +o   |
|     ..o.  +..   |
|   ...=...o .    |
|  o+++.... .     |
| +o=oo. S .      |
|o.=.oo . . . .   |
|=.o=  + *   o    |
|++..+  * . .     |
|Eo..      .      |
+----[SHA256]-----+

-t rsa 表示使用的加密类型。生成过程可以输入一些信息,简单起见,全部回车即可
生成完毕后,目录中应该存在相应文件了。

告知GitHub公钥

在GitHub的用户设置中,找到ssh key的设置:SSH Keys
点击 New SSH Key 新建

将生成的公钥id_rsa.pub内容拷贝到输入框中,起名标志即可。

保存即可。此时GitHub已经和我们本地电脑建立的信任关系。我们就可以将内容发布到GitHub上了。

###部署到GitHub
回到我们本地的博客项目中,hexo对于基于git的部署提供了一个工具hexo-deployer-git,我们直接安装使即可。

安装 hexo-deployer-git

$ npm install hexo-deployer-git --save

修改博客的部署配置

需要指定部署类型,版本库地址,分支,消息等信息

/_config.yml
deploy:
  type: git
  repo: https://github.com/yourusername/yourusername.github.io
  branch: master

###执行部署
部署的过程,是将本地博客先生成静态文件,然后将静态文件发布到指定的版本库中。
因此总的过程应该是,清理之前的静态文件,生成新静态文件,发布到版本库 这个步骤,执行下面的代码即可:

$ hexo clean
$ hexo deploy

部署deploy时会自动生成,因此可以省略 $ hexo generate 操作。
第一次部署的过程中,会出现要求输入GitHub账号信息的步骤,请输入即可:

等等过后,如果出现 Deploy done,类似的信息,说明部署完成。

也可以去版本库中查看是否已经存在代码了,版本库地址就是:https://github.com/yourusername/yourusername.github.io

部署完毕,就可以在 yourusername.github.io 看到你的博客了。

总述

完成以上部署后,博客完毕。写作流程就是,本地编辑md文件,本地预览ok后,发布到github即可!
写作过程,请参考:Hexo文档。


上一篇
工欲善其事必先利其器 工欲善其事必先利其器
大道至简生物信息的入门不仅仅要扎实的生物基础,还要熟练的使用编程语言,多数的科学团队至少会同时使用R与Python。在学习中我认为每次只学习并精通一种工具,潜心学习一种工具,比同时学习多个工具掌握的更快,无论工作学习中都应该努力的去学习新的
2019-01-22
下一篇
Hello World Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hex
2018-10-14 生信小札
目录