亲们小编又回来了,之前uiscc是采用phpcms内容管理系统的一个小博客,经过几次搬家折腾基本已经报废(程序健壮性不强啊),惆怅我良久不知道换什么程序来搞,直到看到hexo顿感这才是我一直苦苦寻找的博客程序啊。下面小编汇报一下hexo基于Node.js的静态博客程序得大致用法和在做uiscc这个模板时候总结的经验。
什么是 Hexo?
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
安装
安装 Hexo 只需几分钟时间,若您在安装过程中遇到问题或无法找到解决方式,请在github上提交问题,社区会尽力解决您的问题。
安装前提
安装 Hexo 相当简单。然而在安装前,您必须检查电脑中是否已安装下列应用程序:
1  | $ npm install -g hexo-cli  | 
建站
安装 Hexo 完成后,请执行下列命令,Hexo 将会在指定文件夹中新建所需要的文件。
1  | $ hexo init <folder>  | 
新建完成后,指定文件夹的目录如下:
1  | .  | 
_config.yml
网站的 配置 信息,您可以在此配置大部分的参数。
package.json
应用程序的信息。EJS, Stylus 和 Markdown renderer 已默认安装,您可以自由移除。1
2
3
4
5
6
7
8
9
10
11
12
13{
  "name": "hexo-site",
  "version": "",
  "private": true,
  "hexo": {
    "version": ""
  },
  "dependencies": {
    "hexo-renderer-ejs": "*",
    "hexo-renderer-stylus": "*",
    "hexo-renderer-marked": "*"
  }
}
scaffolds
模版 文件夹。当您新建文章时,Hexo 会根据 scaffold 来建立文件。
scripts
脚本 文件夹。脚本是扩展 Hexo 最简易的方式,在此文件夹内的 JavaScript 文件会被自动执行。
source
资源文件夹是存放用户资源的地方。除 posts 文件夹之外,开头命名为 (下划线)的文件 / 文件夹和隐藏的文件将会被忽略。Markdown 和 HTML 文件会被解析并放到 public 文件夹,而其他文件会被拷贝过去。
themes
主题 文件夹。Hexo 会根据主题来生成静态页面。
配置
您可以在 _config.yml 中修改大部份的配置。
网站
| 参数 | 描述 | 
|---|---|
| title | 网站标题 | 
| subtitle | 网站副标题 | 
| description | 网站描述 | 
| author | 您的名字 | 
| language | 网站使用的语言 | 
| timezone | 网站时区。Hexo 预设使用您电脑的时区。时区列表 | 
Hexo全局配置
用文本编辑器修改_config.yml这个文件 大致如下 只需要自行修改几个 其他保持默认即可
通常需要修改站点名称 /URL格式 /归档设置 /disqus评论用户名 /部署配置 这几项就可以了 注意冒号后面都要添加一个半角空格 之后才是设置参数
1  | # Hexo Configuration  | 
写文章
Hexo使用markdown语法的纯文本存放文章 后缀为.md 你可以在_post文件夹里面新建这个后缀的.md文件 使用的全是UTF-8编码
也可以输入命令以生成1
hexo new post <title>
如果是新建一个页面1
hexo new page <title>
看一下刚才生成的
1  | title: title #文章标题  | 
多标签注意语法格式 如下:1
2
3
4tags:
- 标签1
- 标签2
- 标签3
想在首页文章预览添加图片可以添加photo参数 这个fancybox可以省略 如下:1
2photos:
  - http://xxx.com/photo.jpg
正文中可以使用 <!--more--> 设置文章摘要 如下:1
2
3以上是文章摘要
<!--more-->
以下是余下全文
more以上内容即是文章摘要,在主页显示,more以下内容点击『> Read More』链接打开全文才显示。
Hexo常用插件
RSS订阅
安装hexo-generator-sitemap插件即可
1  | npm install hexo-generator-feed --save  | 
Sitemap站点地图
这个不是给你看的 是给搜索引擎看的
安装hexo-generator-baidu-sitemap插件即可1
npm install hexo-generator-baidu-sitemap --save
装完之后 记得在全局配置里面开启这两个插件1
2
3plugins:
- hexo-generator-feed
- hexo-generator-sitemap
更多插件可以去Hexo插件wiki找到 https://github.com/hexojs/hexo/wiki/Plugins
小优化篇
修改网站标题 分页title
hexo默认模板文章列表的所有页面标题都是一样的,而一般应该是第%d页 - blog.title。对应的设置在head.ejs中,通过判断page.current来处理。
1  | <%  | 
增加 keyword description
1  | <% var keyword = '';  | 
标签列表 list_tags 增加按照出现次数排序功能
首先查找了大量文档发现 hexo 默认并没有提供这个功能,查询数据结构后发现 tags 这个数组里面是含有length这个参数得但是它是一个[[Getter]],并不能直接送给sort使用,目测sort也是hexo自行实现得一个方法,本着解决问题的想法,就直接自己存储了一个 myTags 变量去存储tags里的内容并自行实现相关功能。
首先我们复制一份 /node_modules/hexo/lib/plugins/helper/list_tags.js 起名叫做 list_tags_rank.js
然后修改代码如下:
1  | 修改 list_tags_rank.js  | 
在 /node_modules/hexo/lib/plugins/helper/index.js 中挂载 list_tags_rank.js。
代码如下:
1  | 增加在42行左右:随便哪一行了强迫症犯了  | 
以后调用就可以这样:
1  | <%- list_tags_rank(site.tags, {style: '', separator:'', amount: 24, orderby: 'length', order:'1'}) %>  |