@BeBeさん、どのような回避策を見つけましたか?
投稿は他のトピックで見られても構いませんが、作成したトピックは非表示にしたいのです。
彼らのトピックはいつも同じ(退屈な)話題ばかりです。![]()
ユーザーの投稿をトピック内で非表示にするCSSの方法はあります。
.topic-post article[data-user-id="26487"]
しかし残念ながら、トピックリストには作成者のユーザー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> 行に OP のユーザー ID を追加してくれれば、非常に簡単なユーザースタイルシートで無視したユーザーのトピックを非表示にできるのに、と強く願っています。
tr.topic-list-item[data-op-user-id='123'] { display: none; }
あるいは、Discourse が単に無視したユーザーのトピックを非表示にしてくれれば、もっともっともっと嬉しいです。
無視したユーザーがいるのに、そのトピックが私の閲覧を汚染する目的が理解できません。