YanZhirun's Blog

hexo使用与踩坑

根据使用过程中遇到的问题以及需求,记录相应解决方案,包括基本使用命令,推广等。

测试和发布

  • 新建文章

    hexo n [文章名称]

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

    hexo clean

  • 生成测试(ip:4000测试端口默认4000)

    hexo s -g

  • 生成发布

    hexo d -g

撰写文章

  • 头部标记

    title:

    comments: false 禁止评论

    date: 2017-02-14 16:41:32

    categories: 类别

    tags: 标签

    - tag1

    - tag2

    toc: false 取消目录

    文章引言部分分割 <!-- more -->

有用配置

  1. 添加本地图片
    站点配置文件中开启文章的资源目录:post_asset_folder: true ,之后执行hexo new生成的 draft 或 post 都会附带一个与文章同名的目录,图片放在这个目录中即可。
1
{% asset_img 图片名称.png [底部注释]%}
  1. 添加流程图
    流程图分为两部分
  • 定义元素
  • 连接元素

格式如下

1
tag=>type: content:>url

  1. tag:标签,用于连接元素时使用
  2. type:该标签的类型。共有6种类型如下:

    start
    end
    operation
    subroutine
    condition
    inputoutput

  3. content:流程语句中放置的内容
    type:与content之间一定要有一个空格,否则会出问题!

  4. url:链接,与流程语句绑定

1
2
3
{% raw %}
content
{% endraw %}

content中放flow代码,如下

1
2
3
{% raw %}
<div id="flowchart-0" class="flow-chart"></div>
{% endraw %}

结果如下

问题

  • 网页端可以正常打开,关于、标签、等其他页面在手机端无法打开本地测试可以使用,deploy到github后页面无法打开。
    经查(错误信息和页面代码),由于GFW导致google字体无法使用。

_解决:_换用中科大镜像。
themes/next/_config.yml 中的 host字段添加

host: //fonts.proxy.ustclug.org

无法发布,提示ERROR Process failed: _posts/XXX.md
注意开头标签使用英文引号:

手机端无法转入https

有效解决方案

修改主题配置文件menu字段about: /about 改为about: /abou/(末尾添加”/“ )


添加强制跳转无效

在网站模版的头中加入http到https的强制跳转。

打开themes/next/layout/_layout.swig,在标签中加入以下代码,注意把yoursite.com替换为自己的域名。

1
2
3
4
5
6
7
> <script type="text/javascript">
> var host = "yoursite.com";
> if ((host == window.location.host) \
> &&(window.location.protocol != "https:"))
> window.location.protocol = "https";
> </script>
>

修改后,使用Hexo重新部署到Github上,完毕。

添加证书(未使用该方式,github已经提供强制https,原理未深究)

提交报错,无法渲染

新加blog后无法渲染,经查,新加blog中公式使用两个大括号{ { 中间添加空格即可。
可以使用grep定位错误

1
$ grep -r '{{' source/_post

提交到google搜索引擎

Google搜索引擎提交入口 (自备梯子)

我们的博客系统使用了hexo,部署在Github上,因此下载Google的验证文件之后,需要在文件开头添加 layout: false 来取消hexo对其进行的转换,如下:

1
2
3
4
5
6
7
$ ls source/
_posts googleXXXXX.html
$ cat source/googleXXXXX.html
layout: false
---
google-site-verification: googleXXXXX.html

提交博客之后,需要等待一段时间才能在Google上搜到你的博客,因为Google需要时间来处理我们的请求、抓取相应网页并将其编入索引。此外,由于Google采用复杂的算法来更新已编入索引的资料,因此无法保证我们博客的所有更改都会被编入索引。

百度添加主动推送

安装baidu_url_submitter
配置
部署代码注意-type之间空格

1
2
3
4
5
6
7
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
- type: git
repo: git@github.com:yanzhirun/yanzhirun.github.io.git
branch: master
- type: baidu_url_submitter

添加mathjax支持

修改marked.js 使Marked.js和mathjax共存
_转义
在 Hexo 中完美使用 Mathjax 输出数学公式中修改markdown部分

参考资料

手把手教从零开始在GitHub上使用Hexo搭建博客教程

Node.js官网安装方法

NexT官方文档设置字体

科大博客提供 Google Fonts 加速

部署到github后点击菜单栏跳转至http

博客推广——提交搜索引擎

Hexo 优化:提交 sitemap 及解决百度爬虫无法抓取 GitHub Pages 链接问题

Hexo插件之百度主动提交链接

搭建一个支持LaTEX的hexo博客

在 Hexo 中完美使用 Mathjax 输出数学公式

Mathjax与LaTex公式简介

Mathjax