亲们小编又回来了,之前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'}) %> |