0%

Hexo+NexT为OSS增加默认页

阿里云OSS在访问资源文件的时候,必须的指定到具体的资源文件中,比如访问 www.abc.com/a/ ,必须指定为 www.abc.com/a/index.html.

Next主题目前不支持这种配置,只能够更改源码实现这种功能。

环境版本

1
2
3
Hexo: 3.8.0

hexo-theme-next: 7.4.0

标签云

修改 \node_modules\hexo\lib\plugins\helper\tagcloud.js

1
2
3
4
result.push(
修改前:`<a href="${self.url_for(tag.path)} " style="${style}">${transform ? transform(tag.name) : tag.name}</a>`
修改后:`<a href="${self.url_for(tag.path)}index.html" style="${style}">${transform ? transform(tag.name) : tag.name}</a>`
);

菜单跳转

修改主题配置文件中的 menu 项目,把菜单地址加上 index.html

1
2
3
4
5
6
menu:
home: / || home
archives: /archives/index.html || archive
categories: /categories/index.html || th
tags: /tags/index.html || tags
about: /about/index.html || user

文章标签

修改 \themes\next\layout_macro\post.swig

1
2
3
4
5
6

修改前:#}<a href="{{ url_for(cat.path) }}" itemprop="url" rel="index">{#
修改后:#}<a href="{{ url_for(cat.path) }}index.html" itemprop="url" rel="index">{#

修改前:<a href="{{ url_for(tag.path) }}" rel="tag"><i class="fa fa-tag"></i> {{ tag.name }}</a>
修改后:<a href="{{ url_for(tag.path) }}index.html" rel="tag"><i class="fa fa-tag"></i> {{ tag.name }}</a>

分页链接

修改 \node_modules\hexo\lib\plugins\helper\paginator.js

1
2
修改前:const link = i => this.url_for(i === 1 ? base : base + format.replace('%d', i));
修改后:const link = i => this.url_for(i === 1 ? base : base + format.replace('%d', i)) + 'index.html';

分类链接

\node_modules\hexo\lib\plugins\helper\list_categories.js

1
2
修改前: const { style = 'list', transform, separator = ', ', suffix = '' } = options;
修改后: const { style = 'list', transform, separator = ', ', suffix = 'index.html' } = options;

标签链接

\node_modules\hexo\lib\plugins\helper\list_categories.js

1
2
修改前: const { style = 'list', transform, separator = ', ', suffix = '' } = options;
修改后: const { style = 'list', transform, separator = ', ', suffix = 'index.html' } = options;