Hexo使用记录

基础使用

使用 npm 完成 Hexo 的安装。

> $ npm install -g hexo-cli

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

> $ hexo init
> $ cd
> $ npm install

安装Sitemap插件

npm install hexo-generator-sitemap --save

安装RSS插件

npm install hexo-generator-feed --save

安装在浏览器上编写markdown插件,访问地址 http://localhost:4000/admin/

npm install hexo-admin --save

安装支持LaTeX插件 hexo-math

npm install hexo-math --save

新版本需要修改_config.yml文件

math:
  engine: 'mathjax'
  mathjax:
    src: "//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"
    config:
      tex2jax:
        inlineMath: [ ['$','$'], ["\\(","\\)"] ]
        skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
        processEscapes: true
      TeX:
        equationNumbers:
          autoNumber: "AMS"

LaTeX 语法

CSDN-markdown语法之如何使用LaTeX语法编写数学公式

archive页面分页设置

https://github.com/iissnan/hexo-theme-next/issues/30
https://github.com/hexojs/hexo-generator-archive

_config.yml 文件中的配置,这个配置控制所有的分页配置,包括首页、归档页、tag 分类页面。

per_page: 10

如果我们想对上面三个页面做独立的配置,需要安装插件进行功能支持。

hexo-generator-index
hexo-generator-archive
hexo-generator-tag

npm install hexo-generator-archive --save
npm install hexo-generator-index --save
npm install hexo-generator-tag --save

对应的 _config.yml 文件中添加如下配置

index_generator:
  per_page: 5

archive_generator:
  per_page: 20  ## 为 0 时表示不分页全展示
  yearly: true  ## 按年生成归档
  monthly: true ## 按月生成归档

tag_generator:
  per_page: 10

单引号显示异常

https://github.com/hexojs/hexo/issues/1981

用的英文单引号,比如 'Welcome' to Hexo! ,显示在浏览器中就变成了‘Welcome’ to Hexo! ,单引号变成中文的了。

如果用的是 marked renderer 的话,可以试试看关掉 smartypants

marked:
  smartypants: false

https://github.com/hexojs/hexo-renderer-marked

修改 _config.yml 文件.

marked:
  gfm: true
  pedantic: false
  sanitize: false
  tables: true
  breaks: true
  smartLists: true
  smartypants: true
  modifyAnchors: ''
  autolink: true
  • gfm - 使用 GitHub风格的markdown
  • pedantic - Conform to obscure parts of markdown.pl as much as possible. Don't fix any of the original markdown bugs or poor behavior.
  • sanitize - 忽略已输入的任何 HTML。
  • tables - Enable GFM tables. This option requires the gfm option to be true.
  • breaks - Enable GFM line breaks. This option requires the gfm option to be true.
  • smartLists - Use smarter list behavior than the original markdown.
  • smartypants - Use "smart" typograhic punctuation for things like quotes and dashes.
  • modifyAnchors - Use for transform anchorIds. if 1 to lowerCase and if 2 to upperCase.
  • autolink - Enable autolink for URLs. E.g. http://hexo.io will become <a href="http://hexo.io">http://hexo.io</a>.

br 标签过多问题

marked:
    gfm: true
    breaks: false

https://github.com/hexojs/hexo/issues/1388#issuecomment-171513200

会影响到普通文本,单个回车不会换行

123
qwe

渲染结果:123 qwe

预览草稿

如果你希望强行预览草稿,更改配置文件 _config.yml

render_drafts: true

或者如下方式启动 server

$ hexo server --drafts

创建一篇新文章

$ hexo new [layout] <title>

在命令中指定文章的布局(layout),默认为 post

默认布局:postpagedraft

通过 publish 命令将草稿移动到 source/_posts 文件夹。

$ hexo publish [layout] <title>

转义反引号

最外层连续两个反引号。

git archive master --format=zip > `git describe master`.zip

更换引用样式

<blockquote style="margin-top: 1em;margin-bottom: 1em;padding: 15px 15px 15px 1rem;color: rgb(129, 145, 152);border-left-width: 6px;border-left-color: rgb(220, 230, 240);background: rgb(242, 247, 251);font-family: -webkit-body;font-style: normal;"><ol style="margin-top: 0em;margin-bottom: 0em;">
<li><span>内容1</span></li>
<li><span>内容2</span></li>
<li><span>内容3</span></li>
</ol></blockquote>
  1. 内容1
  2. 内容2
  3. 内容3

TypeError: Cannot set property 'lastIndex' of undefined

解决方法:

在配置文件 _config.yml 中将 highlight 选项中的 auto_detect 设为 false

https://github.com/hexojs/hexo/issues/1913

ERROR Deployer not found: git

解决方法:

npm install hexo-deployer-git --save

博客加密功能

https://github.com/MikeCoder/hexo-blog-encrypt

安装

npm install --save hexo-blog-encrypt

在 themes 下的 _config.yml 中启用该插件:

# Security
encrypt: # hexo-blog-encrypt
  enable: true

然后在你的文章的头部添加上对应的字段,如 password, abstract, message

---
title: Hello World
date: 2016-03-30 21:18:02
password: mikemessi
abstract: Something was encrypted, please enter password to read.
message: Welcome to my blog, please enter password to read.
---

对 TOC 进行加密

修改加密模板

回调

Hexo 置顶及排序问题

https://yelog.org/2017/02/24/hexo-top-sort/

重装了一次电脑,.md 文件通过 git 备份了,还原回来的时候,md 的创建时间都是一样的,所以文章列表就按照文章标题排序了。

安装插件命令: npm install hexo-generator-topindex --save

或者:
修改hexo的js代码
直接上操作,修改node_modules/hexo-generator-index/lib/generator.js

'use strict';
var pagination = require('hexo-pagination');
module.exports = function(locals){
  var config = this.config;
  var posts = locals.posts;
    posts.data = posts.data.sort(function(a, b) {
        if(a.top && b.top) { // 两篇文章top都有定义
            if(a.top == b.top) return b.date - a.date; // 若top值一样则按照文章日期降序排
            else return b.top - a.top; // 否则按照top值降序排
        }
        else if(a.top && !b.top) { // 以下是只有一篇文章top有定义,那么将有top的排在前面(这里用异或操作居然不行233)
            return -1;
        }
        else if(!a.top && b.top) {
            return 1;
        }
        else return b.date - a.date; // 都没定义按照文章日期降序排
    });
  var paginationDir = config.pagination_dir || 'page';
  return pagination('', posts, {
    perPage: config.index_generator.per_page,
    layout: ['index', 'archive'],
    format: paginationDir + '/%d/',
    data: {
      __index: true
    }
  });
};

设置置顶

给需要置顶的文章加入 top 参数,如下

---
title: 每天一个linux命令
date: 2017-01-23 11:41:48
top: 1
categories:
- 运维
tags:
- linux命令
---

如果存在多个置顶文章,top 后的参数越大,越靠前。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 bin07280@qq.com

文章标题:Hexo使用记录

文章字数:1.4k

本文作者:Bin

发布时间:2017-09-13, 16:07:14

最后更新:2019-11-16, 19:22:48

原始链接:http://coolview.github.io/2017/09/13/Hexo%E4%BD%BF%E7%94%A8%E8%AE%B0%E5%BD%95/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录