嗨 @BeBe,你找到了什么变通方法?
我有一个用户,他创建的主题可以显示在其他人的帖子里,但我希望隐藏他创建的主题。
他的主题总是围绕着相同(无聊)的主题。![]()
有一个 CSS 方法可以隐藏用户在帖子中的帖子:
但不幸的是,主题列表不包含创建者的用户 ID,因此没有办法隐藏用户创建的主题。
我们以用户名 abc ID 123 为例。
我查看了源代码,看看是否可以通过用户 CSS 来实现。
主题标签目前是这样的:
<tr data-topic-id="123" id="ember123" class="topic-list-item … ember-view">
在其中,我当然可以查询发帖人单元格,但这需要 JavaScript,因为我想隐藏它的父级:
tr > td.posters > a:first-child[data-user-card='abc']
现在,如果我们在主题 tr 上有额外的属性 data-op-user-id="123":
<tr data-topic-id="123" id="ember123" data-op-user-id="123" class="topic-list-item … ember-view">
我们就可以使用简单的用户 CSS 来根据用户 ID 进行筛选,如果我们不想看到他们的主题:
tr.topic-list-item[data-op-user-id='123']
是否有可能在主题条目 tr.topic-list-item 标签上添加一个新的 data-op-user-id 属性?
仅在桌面模式下有效,请参见底部。
对于任何可能感兴趣的人,我为 community.metabrainz.org 编写了一个小型用户脚本。
我首先按照建议使用了 MutationObserver,但它变得过于复杂,所以我只使用了一个简单的 setInterval。
我没有使其动态化并带有用户设置等。
每次更新都会擦除你的黑名单和你的 @include(稍后查看)。
因为我希望 Discourse 中会添加新的 data-op-user-id 属性到主题中,这样我就不需要这个用户脚本了。
你可以通过更改其 @include 为你的 URL(唯一的特定行)来将其适配到任何其他 Discourse 论坛。
在移动视图中无效,因为(不幸的是),根据设计,Discourse 在移动视图中不显示 OP 头像。
所以,就_垃圾信息_而言,拥有建议的 tr.topic-list-item[data-op-user-id='123'] 仍然会非常方便。
现在更新不会重置我的黑名单,我添加了一个基本的黑名单编辑器,并且列表已本地保存。
但我真的非常非常希望 Discourse 能在每个主题的 <tr> data-op-user-id="123"> 行中包含一个 OP 用户 ID,这样就可以使用一个非常简单的用户样式表来隐藏被忽略用户的主题:
tr.topic-list-item[data-op-user-id='123'] { display: none; }
或者我更希望 Discourse 能自己隐藏被忽略用户的主题。
我不明白忽略用户有什么用,如果他们的主题污染了我的浏览。