github个人博客搭建

写在前面

一直想在网上配置一个自己的博空间,方法有很多,可以自己搭建一个服务器,需要独立IP、还需要找宽带运营商开放端口,最重要的是要有一个服务器。也可以购买云端服务器,试过腾讯云的,没几天,腾讯云一直给我发,网址要在公安局备案,我一个博客不要玩这么大吧。当然也可以在CSDN之类的网站上发博客,但不喜欢自己博客周围有广告,也不喜欢千篇一律的样式。后来知道GitHub上可以建立一个博客空间,看过几个国外大神也是通过GitHub发布文章的,看起来十分高档,当然人家的技术文章写的也好。我也尝试在GitHub上建立自己的博客,但坑还真不少,好在国内有大量的教程教你如何搭建。但这些博客都是教你如何一步一步操作,对于我这种连node.js都不知道的人,看这些教程都是知其然,而不知其所以然。所以我的第一篇博客就是来介绍这些工具的,这样对以后自己写博客都有很大的帮助。

1. Github

Github实际上就是一个代码托管服务器,使用git工具进行版本控制。我们的博客网页的源码是托管在github上的。与GitHub服务器的通信可以通过http协议亦可以通过SSH,而Hexo可以通过SSH将代码上传,因此需要开通github上的SSH权限。
查看权限的命令以及成功的提示:

1
2
3
ssh -T git@github.com
Hi username! You are successfully authenticated, but GitHub does not
provide shell access.

2. Node.js

Node.js是一个Javascript运行环境(runtime environment),发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。Node.js 不是一个 JavaScript 框架,不同于CakePHP、Django、Rails。Node.js 更不是浏览器端的库,不能与 jQuery、ExtJS 相提并论。Node.js 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。
Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。V8引擎执行Javascript的速度非常快,性能非常好。Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。
Hexo是基于node.js的,因此介绍一下

3. npm

npm(全称 Node Package Manager,即“node包管理器”)是Node.js默认的、以JavaScript编写的软件包管理系统。
npm可以管理本地项目的所需模块并自动维护依赖情况,也可以管理全局安装的JavaScript工具。
如果一个项目中存在package.json文件,那么用户可以直接使用npm install命令自动安装和维护当前项目所需的所有模块。在package.json文件中,开发者可以指定每个依赖项的版本范围,这样既可以保证模块自动更新,又不会因为所需模块功能大幅变化导致项目出现问题。开发者也可以选择将模块固定在某个版本之上。

4. Hexo

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

init

1
$ hexo init [folder]

新建一个网站。如果没有设置 folder ,Hexo 默认在目前的文件夹建立网站。

new

1
$ hexo new [layout] <title>

新建一篇文章。如果没有设置 layout 的话,默认使用 _config.yml 中的 default_layout 参数代替。如果标题包含空格的话,请使用引号括起来。

generate

1
$ hexo generate

生成静态文件。

选项 描述
-d, –deploy 文件生成后立即部署网站
-w, –watch 监视文件变动
该命令可以简写为

1
$ hexo g

publish

1
$ hexo publish [layout] <filename>

发表草稿。

server

1
$ hexo server

启动服务器。默认情况下,访问网址为: http://localhost:4000/。

选项 描述
-p, –port 重设端口
-s, –static 只使用静态文件
-l, –log 启动日记记录,使用覆盖记录格式

deploy

1
$ hexo deploy

部署网站。

参数 描述
-g, –generate 部署之前预先生成静态文件
该命令可以简写为:

1
$ hexo d

render

$ hexo render [file2] …
渲染文件。

参数 描述
-o, –output 设置输出路径
migrate
$ hexo migrate
从其他博客系统 迁移内容。

clean

1
$ hexo clean

清除缓存文件 (db.json) 和已生成的静态文件 (public)。

在某些情况(尤其是更换主题后),如果发现您对站点的更改无论如何也不生效,您可能需要运行该命令。

list

1
$ hexo list <type>

列出网站资料。

version

1
$ hexo version

显示 Hexo 版本。

选项

安全模式

1
$ hexo --safe

安全模式下,不会载入插件和脚本。当您在安装新插件遭遇问题时,可以尝试以安全模式重新执行。

调试模式

1
$ hexo --debug

在终端中显示调试信息并记录到 debug.log。当您碰到问题时,可以尝试用调试模式重新执行一次,并 提交调试信息到 GitHub。

简洁模式

1
$ hexo --silent

隐藏终端信息。

自定义配置文件的路径

1
$ hexo --config custom.yml

自定义配置文件的路径,执行后将不再使用 _config.yml。

显示草稿

1
$ hexo --draft

显示 source/_drafts 文件夹中的草稿文章。

自定义 CWD

1
$ hexo --cwd /path/to/cwd

自定义当前工作目录(Current working directory)的路径。

5. Next

是一个简洁的Hexo主题,主题配置依然有很多坑要填

6. 博客发布流程

使用编辑器编辑markdown文档,md格式的,我使用atom编辑,使用hexo g转化为网页代码,再用hexo d发布到github,此时就可以在网上看到自己的博客了。有兴趣可以绑定自己的域名,设置主题,回复栏等等。