您能发布一个指向您网站的链接吗?我怀疑问题出在您主题的样式上。
这是我的链接:
https://whois.nhachinhchu.org/t/bang-gia-xem-data-nha-chinh-chu/63389
自此次更新以来,我在带有目录的 discourse-docs 页面上看到了一个错误。例如,在 Meta 上的此页面 上,目录未显示,并且我在浏览器开发者工具中看到一个错误:
在我的网站上,我还看到页面顶部有一个横幅,上面写着“帖子可能无法正确显示,因为您网站上的一个帖子内容装饰器引发了错误。请检查浏览器开发者工具以获取更多信息。”
谢谢 @simonk,我刚刚(2分钟前!)合并了一个针对该问题的修复。请更新您网站上的组件,并告知我您自己网站上的横幅是否仍然存在。
感谢您的回复!错误已消失,但在 discourse-docs 版本页面中未显示目录。在昨天更新之前,目录同时显示在 discourse-docs 版本和“普通”版本页面上。
(对我来说这并不紧急——我在暂存网站上部署了更新,而不是生产环境,所以它无法正常工作对我来说无关紧要)
编辑:我正在运行 2.8.0.beta11 (42c71789f9),如果这有什么区别的话。
是的,我明白你的意思了。不幸的是,我对TOC所做的更改使用了一个在文档视图中存在但在主题视图中缺失的插口。我会研究一下。
今天对组件进行了一些更改,应该可以解决 @mentalstring 和 @simonk 提出的问题。Simon,你需要进行一次完全重建,因为你还需要更新文档插件。
@huynhthai824,一旦你更新组件,你遇到的问题很可能就会得到解决。
非常感谢,我很高兴,我的问题解决了。
再次感谢。
经过完全重建后,我可以确认目录在 discourse-docs 页面上显示正确 - 非常感谢 ![]()
我注意到您现在还将目录限制为 2 个级别。考虑到水平空间,我认为这是合理的,但这意味着三级标题在目录中与其父项显示在相同的嵌套级别。
即,目前,此文本:
# First Heading
## First Subheading
### Child of First Subheading
### Child of First Subheading
## Second Subheading
### Child of Second Subheading
### Child of Second Subheading
# Second Heading
会生成此目录:
我想知道是否最好完全从目录中排除三级及以下的标题?
另外,DOM 结构看起来不太对——每个二级项目都是一个 <ul>,里面只有一个 <li>:
抓得好。我不确定我们使用3个或更多级别有多频繁,但重新引入它们是可能的,这应该不会太复杂。
又抓对了。这是一个小错误,一旦此PR合并,它应该就会得到修复。
如果你有心情提出功能请求,也许最大深度可以通过设置来控制…… ![]()
根据我的经验,目录(ToC)功能仅在首次发布时有效,在后续发布时无效。 这是正确的吗? 如果是这样,我的评论可以被视为功能请求吗? 顺便说一句,目录(ToC)即使在首次发布时也是一个很棒的补充。 R
大家好,自从上次升级了这个很棒的主题组件后,我遇到了一个问题,但只在手机上出现。当我点击目录按钮时,带有完整目录的滑块没有打开。
如果我在桌面版上使用一个非常小的窗口,这个按钮和滑块就能很好地工作。所以这可能只在 Android 上有问题。
这是我最新的(Discourse 和 TOC)论坛上的日志:
Message
Uncaught TypeError: Cannot read properties of null (reading 'classList')
Url: https://iunctis.fr/theme-javascripts/671f772e071bd55050592ff8541b659afe421259.js?__ws=iunctis.fr
Line: 36
Column: 49
Window Location: https://iunctis.fr/t/le-mensuel-01-decembre-2021/9591
Backtrace
TypeError: Cannot read properties of null (reading 'classList')
at n.showTOCOverlay (https://iunctis.fr/theme-javascripts/671f772e071bd55050592ff8541b659afe421259.js?__ws=iunctis.fr:36:49)
at e.n._join (https://iunctis.fr/assets/vendor-96a5eaa8d436066b954c21ae5afb7f504310945c679465a2f1ba46b429a95edf.js:36:412333)
at e.n.join (https://iunctis.fr/assets/vendor-96a5eaa8d436066b954c21ae5afb7f504310945c679465a2f1ba46b429a95edf.js:36:409358)
at h (https://iunctis.fr/assets/vendor-96a5eaa8d436066b954c21ae5afb7f504310945c679465a2f1ba46b429a95edf.js:36:273784)
at https://iunctis.fr/assets/vendor-96a5eaa8d436066b954c21ae5afb7f504310945c679465a2f1ba46b429a95edf.js:36:65110
at a (https://iunctis.fr/assets/vendor-96a5eaa8d436066b954c21ae5afb7f504310945c679465a2f1ba46b429a95edf.js:36:260923)
at https://iunctis.fr/assets/vendor-96a5eaa8d436066b954c21ae5afb7f504310945c679465a2f1ba46b429a95edf.js:36:65054
at n._triggerAction (https://iunctis.fr/assets/application-945e3f0cb654a8c23b30e86f5e955be5599a8330d68ce75e97b8228ad45ff6fd.js:1:1254524)
at n.click (https://iunctis.fr/assets/application-945e3f0cb654a8c23b30e86f5e955be5599a8330d68ce75e97b8228ad45ff6fd.js:1:1254160)
Env
HTTP HOSTS: iunctis.fr
如果我在 Firefox 桌面版中使用 Android 用户代理,点击此论坛上的按钮时会出现此错误:
Uncaught TypeError: document.querySelector(...) is null
showTOCOverlay 4916e6ed2a984e00537fe797b799637f1a801ffe.js:374
_join _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:4033
join _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:3999
p _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2870
An _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:1147
o _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2785
An _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:1147
_triggerAction _application-2646ad3bbed41e42bb77806dc41fbea2.js:489
click _application-2646ad3bbed41e42bb77806dc41fbea2.js:488
trigger _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2560
n _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2422
_run _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:4034
_join _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:4033
join _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:3999
p _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2870
handleEvent _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2574
o _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2785
handleEvent _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2574
handleEvent _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2499
setupHandler _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2524
dispatch _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:347
handle _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:342
add _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:342
Oe _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:339
each _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:123
each _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:116
Oe _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:339
on _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:358
initialize _application-2646ad3bbed41e42bb77806dc41fbea2.js:3354
initialize _application-2646ad3bbed41e42bb77806dc41fbea2.js:62
runInstanceInitializers _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2730
each _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:4074
walk _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:4064
each _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:4056
topsort _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:4056
_runInitializer _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2733
runInstanceInitializers _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2730
_bootSync _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2604
didBecomeReady _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2623
invoke _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:3963
flush _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:3955
flush _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:3969
_end _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:4032
end _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:3988
_run _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:4034
_join _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:4033
join _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:3999
p _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2870
bind _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:2873
u _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:272
c _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:273
setTimeout handler*a/\u003c _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:274
l _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:265
fireWith _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:266
fire _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:266
l _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:265
fireWith _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:266
ready _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:283
z _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:283
EventListener.handleEvent* _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:283
\u003canonymous\u003e _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:109
\u003canonymous\u003e _vendor-64dba8b874ef11bbef3b2bce2fbcf6cc.js:109
4916e6ed2a984e00537fe797b799637f1a801ffe.js:374:18
我的手机是 Chrome 版本 97.0.4692,如果这对你有帮助的话。
有人也遇到过这个问题吗?
这是由于核心代码更改引起的近期回归,我已在 FIX: Restore outlet in mobile views by pmusaraj · Pull Request #15683 · discourse/discourse · GitHub 中准备好修复程序,一旦该程序合并,您就可以重建您的站点,问题应该会得到解决。对此感到抱歉。
上周,我还按照 Simon 在上面的帖子中所述,将组件中的标题第三级缩进添加回来了。
我在这里犹豫是否要添加一个设置,绝大多数用例都不需要它。而且,该组件还为每个级别提供了类,因此如果您想隐藏第 4 级和第 5 级,可以使用此 CSS 来实现:
li.d-toc-h4, li.d-toc-h5 {
display:none;
}
它已合并并且运行正常,谢谢!
我注意到主题顶部的 <div> 元素 data-theme-toc="true" 引入了额外的边距。例如:
我已经将此添加到我的主题中,似乎可以解决问题:
// 主题顶部的 ToC 元素会引入不必要的
// 空间。Discourse 将帖子的第一个子元素的上边距设置为零,
// 但当 ToC 是第一个子元素时,这不起作用。
// 相反,我们将 ToC 后面的元素的上边距设置为零。
div[data-theme-toc="true"] + * {
margin-top: 0px;
}
也许需要将类似这样的内容添加到组件中?
好,我已在此 PR 中添加了该 CSS 规则:UX: Keep core's top margin for first item in OP by pmusaraj · Pull Request #30 · discourse/DiscoTOC · GitHub
我过去通过将嵌入代码移到帖子的底部来解决此问题。感觉有点像个临时解决方案,但它确实有效。
我的帖子正文中包含额外的 DIV。例如,On Storytelling - Workbench - Podcaster Community
触发 TOC 生成的 DIV 位于另一个 DIV 中…… TOC 注意到了这一点。但是,其他位于 DIV 中的标题似乎没有被 TOC 注意到。
……截图不是最好的。那是一个 H2,位于一个任意/仅用于样式的 DIV 中,该 DIV 不会出现在 TOC 中。
……未显示的是触发 TOC 的 <div >,它位于具有疯狂属性/值对的 DIV 中……
几小时后更新,添加:也许只需要 :scope h1, 等,而不是要求标题是范围的直接子项?
……另外,这在 21 年 3 月提到过,DiscoTOC - automatic table of contents - #255







