diff --git a/layout/includes/head/config.pug b/layout/includes/head/config.pug index 3ad380a..61c26ea 100644 --- a/layout/includes/head/config.pug +++ b/layout/includes/head/config.pug @@ -88,6 +88,7 @@ script. var GLOBAL_CONFIG = { root: '!{config.root}', + hexoversion: '!{get_hexo_version()}', algolia: !{algolia}, localSearch: !{localSearch}, translate: !{translate}, diff --git a/scripts/helpers/page.js b/scripts/helpers/page.js index f827ccf..87d13b5 100644 --- a/scripts/helpers/page.js +++ b/scripts/helpers/page.js @@ -61,3 +61,7 @@ hexo.extend.helper.register('urlNoIndex', function () { hexo.extend.helper.register('md5', function (path) { return crypto.createHash('md5').update(decodeURI(this.url_for(path))).digest('hex') }) + +hexo.extend.helper.register('get_hexo_version', function () { + return hexo.version +}) \ No newline at end of file diff --git a/source/js/main.js b/source/js/main.js index 5bcbe45..8fcd473 100644 --- a/source/js/main.js +++ b/source/js/main.js @@ -465,6 +465,7 @@ const tocFn = function () { // DOM Hierarchy: // ol.toc > (li.toc-item, ...) // li.toc-item > (a.toc-link, ol.toc-2child > (li.toc-item, ...)) + const versionBiggerFive = GLOBAL_CONFIG.hexoversion.split('.')[0] >= 5 const findHeadPosition = function (top) { // assume that we are not in the post page if no TOC link be found, // thus no need to update the status @@ -477,7 +478,8 @@ const tocFn = function () { list.each(function () { const head = $(this) if (top > head.offset().top - 25) { - currentId = '#' + encodeURI($(this).attr('id')) + if (versionBiggerFive) currentId = '#' + encodeURI($(this).attr('id')) + else currentId = '#' + $(this).attr('id') } })