PackElend
(Pack Elend)
2019 年8 月 14 日 19:02
1
我正在努力说服我们的组织不要退回到传统的论坛模式,那种模式允许多层级的分类,往往会导致点击即跑 式的折磨,详见 是时候谈谈标签了 。
我需要一些论据,证明仅通过标签即可轻松实现目标,而无需在搜索框中输入任何内容。
如果以下问题能得到解答,那就太好了。
我们有一个本地节点支持者网络,将遍布全球,类似于 https://discuss.okfn.org 上的“本地小组”分类。在那里,所有地点都由子分类覆盖。如果不需要深入到城市级别,那确实是正确的解决方案;但我们必须做到这一点。
我构想的结构如下:
分类:本地节点
标签:大洲(需要讨论是否有必要)
子分类:国家(国家应得到充分展示,因此大洲作为标签)
标签:城市
是否有可能仅通过标签进行导航,利用标签组的层级结构?例如:
从亚洲点击到日本
大洲
国家
从欧洲点击到罗马
大洲
国家
城市
我尚未找到通过导航栏实现这一功能的方法,也未找到让主题自动根据其子分类名称及其父分类名称进行标记的方法。
我了解以下链接:
此外(作为起步阶段 ):
如何设置/何时显示“搜索”功能中的标签搜索?
将标签搜索集成到分类搜索中(我知道右上角有一个搜索框,但它同时列出主题)
最后,我希望在“本地节点”分类中展示一张世界地图,允许用户放大到感兴趣的地点。
我希望可以利用 Locations Plugin 🌍 中看到的地图插件、数据探索器插件 Discourse Data Explorer 以及 自定义布局插件 ,或许将其集成到 Discourse 分类横幅 中。
目前我只了解到:
它应该看起来大致像这样:
angus
(Angus McLeod)
2019 年8 月 15 日 00:37
2
我稍微思考了一下这个问题。我之前尝试过三层分类系统和不同的基于标签的导航系统。
分类:本地节点
标签:大洲(需要讨论是否有意义)
子分类:国家(国家需要良好的可视化呈现,因此大洲作为标签)
标签:城市
我认为,你本质上需要一个特定于 tag_group 的标签下拉菜单,而 tag_group 由分类上下文决定(以便为不同的国家子分类容纳不同的城市组)。
关于在主题列表之外的地方或在帖子中嵌入地图,Locations 插件提供了一个组件化的地图,可以插入到分类页面中。
你可以在主题组件中实现这两种功能。如果你需要构建这样一个组件的帮助,我可以给你一些建议,让你尝试自己完成;或者你也可以聘请 Pavilion 来为你完成。
PackElend
(Pack Elend)
2019 年8 月 15 日 22:00
3
PackElend
(Pack Elend)
2019 年8 月 20 日 13:11
4
angus
(Angus McLeod)
2019 年8 月 21 日 07:16
5
原则上,一切皆有可能。
例如,我之前曾构建过一个三级分类层级结构,该结构还支持在分类层级上进行多标签交集。
支持多标签交集的三级分类层级路由结构
scope "/multi" do
constraints(tag_id: /[^\/]+?/, format: /json|rss/) do
get '/c/:category/t/:tag_id/*tags' => 'tags#show', as: 'tags_category_show'
get '/c/:parent_category/:category/t/:tag_id/*tags' => 'tags#show', as: 'tags_parent_category_category_show'
get '/c/:grandparent_category/:parent_category/:category/t/:tag_id/*tags' => 'tags#show', as: 'tags_grandparent_category_category_show'
Discourse.filters.each do |filter|
get "/c/:category/t/:tag_id/*tags/l/#{filter}" => "tags#show_#{filter}", as: "tags_category_show_#{filter}"
get "/c/:parent_category/:category/t/:tag_id/*tags/l/#{filter}" => "tags#show_#{filter}", as: "tags_parent_category_category_show_#{filter}"
get "/c/:grandparent_category/:parent_category/:category/t/:tag_id/*tags/l/#{filter}" => "tags#show_#{filter}", as: "tags_grandparent_category_category_show_#{filter}"
end
end
end
这比您想要实现的功能更复杂,但除非您愿意投入大量时间或资源来维护它,否则这种方案难以持续。一旦标准 Discourse 发生更新,它很可能会失效。
基于上述背景,关于标准 Discourse 中的分类与标签路由结构,有两点需要理解:
多标签交集仅能在站点范围内实现,无法在分类层级实现。也就是说,标准 Discourse 中没有现成的路由来展示“特定分类下且带有多个特定标签”的主题列表。如果您需要此功能,必须自行添加相应路由。
分类之间的交集无法实现。也就是说,Discourse 中没有路由可以展示来自同一层级的两个分类(例如两个父分类或两个子分类)的主题。
您仍然可以在不大幅修改服务器端代码的情况下实现四级层级系统(这似乎正是您的目标)。
例如,您可以完全使用标签来表示这四个层级。https://thepavilion.io/tags/intersection/events/bug/to-do/high 即表示 Pavilion 上“events”、“bug”、“to-do”和“high”这些标签的交集。您可以设置四个下拉菜单,分别对应这些标签所属的四个标签组,例如:
[插件] [类型] [状态] [重要性]
一旦您确定了如何在现有 Discourse 路由结构中构建您的层级体系,其余您列出的功能就只是客户端的修改,实现起来(相对) straightforward。
angus
(Angus McLeod)
2019 年8 月 21 日 23:10
7
这行不通,因为它违反了我之前提到的一项限制。
你无法在某个分类内同时按两个标签进行筛选。
我不太确定,但我觉得你可能假设:如果你处于“本地节点”分类并按“大洲”筛选,那么你也可以同时按“国家”和“城市”进行筛选。这同样行不通。
我认为这是你最明智的选择。
仅将本地节点 作为分类,并为每个城市设立一个子分类
我觉得你试图将过多的未来规划纳入当前的需求中。
一旦节点数量过多,我们将切换为本地节点 和国家
我理解你希望现在就搭建好正确的“结构”的愿望,但无论你的服务有多好,要真正遇到这个问题还需要很长时间,也就是数年之后。到那时,你运营社区所依据的假设可能已经发生了变化。
此外,你将面临的问题主要将是组织问题,而非层级结构问题。例如,如果你愿意,完全可以在修改后的导航栏中按国家来分组城市子分类。如果你希望进行“国家级”的讨论(尽管不确定这是否合理),也可以专门设立一个子分类来实现。
你的讨论论坛并不需要一个与讨论所围绕的地区的行政层级严格对应的层级结构。你需要的是一个能让用户轻松找到与其相关的内容的层级结构。我理解你将这两个概念联系在了一起,但我不确定这种联系是否合理。过分关注这种联系只会让你的论坛结构思考变得过于复杂。
基本上,我认为你过于投入于从宏观视角(即“万英尺高空视角”)出发,试图让结构与你理想中服务未来大规模运营的状态(例如需要按国家甚至大洲来划分城市)保持一致。而当你真正达到那个阶段时,整个决策的性质将会完全不同。
PackElend
(Pack Elend)
2019 年8 月 22 日 15:40
8
angus:
这行不通,因为它违反了我提到的其中一项限制。
angus:
你说得对,是我的失误,昨晚我在细节中迷失了方向。
[1] 难道不能添加额外的下拉框吗?
那样可以模拟“高级搜索”功能。
同意。我正试图将古老 的、深度结构化的思维方式与 Discourse 的方法结合起来。
angus:
到那时,你运营社区所依据的假设将会发生变化。
但正如你所说,
我不确定是否只会存在
angus:
在“国家”层面的讨论(先不管这是否有意义)
因为我们的重点是地理范围非常狭小的项目。当然,某些话题具有国家或全球意义。如何对此进行管理、将其置于正确的语境中、并在 Discourse 的合适位置展示,这确实是一个需要“在实践中学习”的领域。
如果我们决定仅依赖标签,你的 标签交集 方法可能会大有帮助。
在迈出这一步之前,我们需要自定义 标签 和 交集 落地页,使其外观与 分类 落地页大致相同,这可行吗?
我设想让 https://se23.life/tags 的布局采用填充了“子标签”的方框,正如 Higher level of granularity for category & subcategory styling - #7 by PackElend 中所暗示的那样(不过在那里我请求改进子分类的方框样式)。
此外,一旦点击方框或方框内的标签,就会触发查询 https://thepavilion.io/tags/intersection/tag1/tag2/tag3/...。结果将以与方框样式(或我们认为合适的任何样式)相同的方式呈现。
如你所见,我仍然陷入多级路径的考量中,因为这与从全球尺度缩放到本地尺度的类比是一致的。对于任何新用户来说,这都是到达其本地节点最自然的导航路径。
我希望你被证明是正确的,正如
但可能会有一些担忧,即某个层级会因标签过多而变得臃肿。例如,将美国或中国的所有城市分别作为“中国”和“美国”子分类,可能会变得混乱。
同意,尽管我可能
:grin:。这句话有助于淡化对深层方法的过度情感投入。
你能更详细地解释一下吗?或者有没有现成的例子?
这种导航栏的自定义是否与我在这篇帖子开头标记为 [1] 的问题相同?
我制作了一些原型图来可视化可能的路线图,其前提是“国家”和“城市”层级无法并排共存,因此将两者都设为“本地节点”的子分类。
落地页为分类
落地页为分类,但本地节点如雨后春笋般涌现
落地页为标签,自定义主题使分类呈现类似布局