写在前面
一直想在网上配置一个自己的博空间,方法有很多,可以自己搭建一个服务器,需要独立IP、还需要找宽带运营商开放端口,最重要的是要有一个服务器。也可以购买云端服务器,试过腾讯云的,没几天,腾讯云一直给我发,网址要在公安局备案,我一个博客不要玩这么大吧。当然也可以在CSDN之类的网站上发博客,但不喜欢自己博客周围有广告,也不喜欢千篇一律的样式。后来知道GitHub上可以建立一个博客空间,看过几个国外大神也是通过GitHub发布文章的,看起来十分高档,当然人家的技术文章写的也好。我也尝试在GitHub上建立自己的博客,但坑还真不少,好在国内有大量的教程教你如何搭建。但这些博客都是教你如何一步一步操作,对于我这种连node.js都不知道的人,看这些教程都是知其然,而不知其所以然。所以我的第一篇博客就是来介绍这些工具的,这样对以后自己写博客都有很大的帮助。
1. Github
Github实际上就是一个代码托管服务器,使用git工具进行版本控制。我们的博客网页的源码是托管在github上的。与GitHub服务器的通信可以通过http协议亦可以通过SSH,而Hexo可以通过SSH将代码上传,因此需要开通github上的SSH权限。
查看权限的命令以及成功的提示:
1 | ssh -T git@github.com |
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
渲染文件。
参数 描述
-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,此时就可以在网上看到自己的博客了。有兴趣可以绑定自己的域名,设置主题,回复栏等等。