• 反馈和建议
  • 更新了之后,发现文章的目录不可以使用了~~~

cetr 这应该是改为由前端渲染 Markdown 之后表现和原来不一样导致的,不是升级到 1.5.1 的问题。但凡我们发测试版的时候大家能积极点… 算了

Ryan Wang 👍
主要还是内容中的标题id被编码后导致 Tocbot 这个插件无法通过 id 找到对应节点获取滚动位置
编码后的字符串是一个非法的字符串,不能被 js 的元素选择器识别,我这边还是先把文章中的标题 id 用 decodeURIComponent 解码后再调用 Tocbot 插件解决的。

最后,还是建议把这个编码去掉。😅

    老的主题使用Tocbot做目录的。升级到 1.5 应该都会有这个问题

    qinhua 但这个问题被官方定义为bug,而且在 master 分支已经被修复,只是还没有发版本。另外,对于这种锚定位来说,对特殊字符做 urlencode 处理才符合对浏览器的支持。你可以用 [TOC] 生成的试试。

    see tscanlin/tocbot238

      16 天 后

      一只小Coder

      针对 Simple BootStrap 主题 ,以下是我的修改方案(不懂前端,只是换了实现方式)

      找到该文件:/source/js/post.js

      修改 generateCatalogs 函数:

      将下面这段:

      $(`${to} a[data-catalog-target]`).on('click', function (event) {
                      let titleId = `#${$(this).attr("data-catalog-target")}`;
                      changeUrlAnchor(titleId);
                      let offsetTop = $(titleId).offset().top - 20;
                      $("html,body").animate({scrollTop: offsetTop}, 300);
                      event.preventDefault();
                  });

      改成:

      $(`${to} a[data-catalog-target]`).on('click', function (event) {
                      let originTitleId = `${$(this).attr("data-catalog-target")}`;
                      let titleId = `#${originTitleId}`;
                      changeUrlAnchor(titleId);
                      let offsetTop = document.getElementById(originTitleId).offsetTop - 20;
                      $("html,body").animate({scrollTop: offsetTop}, 300);
                      event.preventDefault();
                  });

      仅供参考。

        17 天 后
        20 天 后

        一只小Coder
        大佬 这个在哪里改呀- - 我在主题编辑那里的post.js文件里找了半天没找到这段字符呀

        10 个月 后

        qinhua 您好! 请教下您的decodeURIComponent 解码是放在哪里的呢? 我也遇到了这个问题

        DemonLee
        你好,我试了你提供的代码
        测试:
        电脑端:正常跳转
        苹果手机端:有时可以跳,基本上不能跳,30次基本只有几次可以
        安卓端:因为没有,无法测试

        希望可以得到大佬最新修复代码