Hexo 转至 Next 优化及插件使用问题

hexo-asset-image 与 hexo-abbrlink 纷争

hexo-abbrlink 插件用于将文章链接永久化,hexo-asset-image 插件用于当站点配置(根目录下的 _config.yml,themes 目录下的叫主题配置)中的 post_asset_folder 为 true 时,能通过相对路径使用资源文件夹中的图片等,这个好处是像使用 Typora 文本编辑器通过设置使拖进来的图片自动转换成对应的相对路径,使写博客变得更加高效。

注:hexo-asset-image 版本为 0.0.3。

当一起用时 hexo-asset-image 失效,因为所需要的相对路径为 abbrlink/<image_name>,但是编写的是 title/<image_name>,那么需要实现类似重定向的功能即可解决问题,添加此功能的 hexo-asset-image 插件已经有人发布在 GitHub 上了 >>>仓库地址<<<,但是 Star 为什么只有 1???是没人用 hexo-asset-image 吗?应该不会吧,那就只剩添加这个功能很简单,毕竟 hexo-abbrlink 的 Issue 中有如何修改代码的回答。反正 install 上这个适配版后,一切都正常工作了!

hexo-abbrlink 使生成的静态文件发生了变化

hexo g 生成的文章静态文件不会再以年月日创建目录并防至相应位置了,所以当站定配置中 permalink 设置成 permalink: /:abbrlink.html 时,文章少还好,一多 public 目录下就会很乱。

Hexo 转至 Next 优化及插件使用问题

推荐设置成 permalink: posts/:abbrlink.html ,这样所有文章的 html 和 post_asset_folder 都会保存在 public/posts 目录下,分类摆放好看又好找。

Hexo 转至 Next 优化及插件使用问题

hexo-asset-image 再次失——http(s)

相对路径中不能包含 “http” 字符串(即 MarkDown 文件名和资源文件夹名),阅读源码得知它是靠正则表达式去进行一些操作的。

Hexo 转至 Next 优化及插件使用问题

一个解决办法(“曲线救国”):创建新文章时不要包含 “http”,然后在 Front-matter 的 title 中添加。

还有一个解决办法就是改正则表达式,那就 TODO 吧。

无法显示置顶图标 fa fa-thumb-tack

next 主题中的 fontawesome 图标只有 all.min.css,而 fa fa-thumb-tack 在 v4-shims.css 中。

解决步骤:

  1. 下载 fontawesome 所有图标 >>>下载地址<<<。

  2. 解压后将 css 和 webfonts 文件夹移至主题相应位置(合并并替换)。

    Hexo 转至 Next 优化及插件使用问题

  3. 在 layout/_macro/post.swig 的 <div class="post-meta"> 下添加:

    {% if post.top %}
        <link href="/lib/font-awesome/css/v4-shims.css" rel="stylesheet"><i class="fa fa-thumb-tack"></i>
        <font color=7D26CD>置顶</font>
        <span class="post-meta-divider">|</span>
    {% endif %}
    

压缩文件

gulp

配置参考 此文章

执行 gulp 时出现两个 Error:Error in plugin "gulp-htmlmin" 和额外功能中的 babel 语法错误,如果您知道解决办法请在底部评论处留言,或者侧边栏中选择邮箱或者微信联系,谢谢!

因此改用 hexo-neat。

hexo-neat

GitHub 地址,按 README 中所写配置即可。

修改链接样式时标签和分类页跟着变化

css 如果选择 post-body 中的所有 a 标签就会导致分类和标签一起变化,分类有 class 定义还好,但是标签没有 class,用开发者工具查看后发现还有一个表明此段 div 中放的内容概要的 itemprop 参数,怪不得 next 到处都是 post-body。

Hexo 转至 Next 优化及插件使用问题

用 itemprop 选择的 css 代码(在 _data/styles.styl 中添加):

div[itemprop="articleBody"] a {
    &:not(.btn) {
        color: $blue;
        border-bottom: none;
        border-bottom: 1px solid $blue;
        &:hover {
            color: $orange;
            border-bottom: none;
            border-bottom: 1px solid $orange;
        }
    }
}

删除图片标题

可图实现,但是我改了之后又改回去了,有时候还是需要标明此图含义利于理解。

Hexo 转至 Next 优化及插件使用问题

图片居中显示

图片未居中原因:

Hexo 转至 Next 优化及插件使用问题

在 _data/styles.styl 中添加:

.posts-expand .post-body img {
    margin-left: auto;
}

修改 pace 加载颜色(标准色)

在主题配置 vendors 中设置,如需要橙色:

Hexo 转至 Next 优化及插件使用问题

生成新文章时显示 ‘[object Object]’: null

Hexo 转至 Next 优化及插件使用问题

原因是 scaffolds/post.md 的 Front-matter 中获取标题和日期的两大括号之间有空格,我记得没动过啊……,但是重新 hexo init 一个新目录时,它的正确让我怀疑我失忆了。

Hexo 转至 Next 优化及插件使用问题

对自己写的 css 的 thinking

图献上!

Hexo 转至 Next 优化及插件使用问题
上一篇:Hexo安装问题


下一篇:将Hexo部署到自己的服务器上