这听起来可能有点荒谬,因为人们通常希望避免或移除重复的帖子。不过,我目前有一个需要复制帖子的使用场景。我该如何操作呢?
手动操作?你可以通过访问 /raw/{topic_id} 并复制其中的所有内容来获取主题的原始内容。
因此,<https://meta.discourse.org/t/195111> 会变成 <https://meta.discourse.org/raw/195111>
顺便提一下,Discourse 将“主题”(topics)称为你所说的“线程”(threads)。
编辑:或者,如果你是 TL4 级别或工作人员,可以直接点击“编辑”并复制其中的所有内容。
实际上,这并不符合我的需求。我需要包含所有回复的所有主题。我想要一个线程的精确副本,但使用不同的 topic_id。
我找到了一种“复现”整个线程的方法,虽然过程繁琐,但无法真正完全复制(例如保留点赞数)。
我创建一个新线程,并将其放入一个不可访问的分类中,例如“工作人员”分类。然后,我将原始主题中的每条回复复制并粘贴到新线程的回复中。对于新线程中只需要某些回复的情况,我直接选择并移动它们。接着,我将复制的回复的所有权更改为原始发帖人的名称。完成后,我关闭原始线程,并将新线程的分类更改为公共分类。
当然,这种方法过于耗时,不适合常规使用。这次之所以需要这样做,是因为有人创建了一个标题过长的主题,该标题可能被解读为两个不同的主题线程。我们( moderators)当时注意到了标题过长的问题(现已限制为更短的字符数),但并未意识到这会引发问题。
讨论开始后,我们不知不觉地发现有两个相互交织的敏感话题在进行,其中一名成员发表了一些不当言论,但这些言论却在两个话题中都引发了丰富的回应。
为了保留已发生贡献的丰富性,对重复违规者进行批评,利用该事件进行社区教育,并让两个有价值的讨论各自独立发展,我认为最好将这两个主题分开,仅保留与各自话题相关的发言,同时不回避在两个主题中重复那些同时涉及两个话题的发言,以确保清晰易懂。
在保留了不当回复的主题中,我还在该不当帖子之前添加了一条工作人员公告,说明该言论不符合我们的社区价值观,但出于教育目的予以保留。我对该帖子进行了如下处理:我在不当言论前添加了 Markdown 代码 <del>:
<del> 在不当言论前
我解释说,如果该成员能以建设性的方式表达观点,本应这样措辞
<ins> <ins> 改为这样。
这确实耗费了大量精力和思考。我不会再手动重复这样的操作。但这一用例确实存在。
听起来工作量很大!下次如果你不只是询问技术支持(“如何复制一个主题?”),而是在首帖中说明具体情况以及你想达成的目标,可能会得到更好的反馈。例如,你本可以直接关闭该主题,在最后一帖添加一条管理员备注,并将其链接到两个新主题,以便相关的讨论能够继续下去?
我不能责怪您的评论:在我们的论坛上,当有人询问关于 fmpro 的技术问题时,我们常常会被问到“目的是什么”。
然而,我下定决心要在当前情况下尝试这种方法。我知道关闭该线程并开启两个新话题的做法,但我希望利用现有材料用于教育目的。
我们拥有一个非常优秀的社区,贡献了许多出色的内容。然而,我们最初是因对厂商平台的不满而诞生的。因此,我一直采用各种方法和变革管理技巧,帮助人们摆脱对厂商的抱怨和牢骚。
大多数人在表达对产品或厂商的批评意见时已经有了进步。但不幸的是,有少数人倾向于煽风点火,给社区带来了不良声誉,导致那些与厂商关系更密切或拥有特权关系的生态系统中有价值的成员不愿靠近我们。这很不幸,因为我们已经有机地成长起来:大多数人在意识到我们的存在后,喜欢这个论坛并希望留下来,而这些杰出的成员带来了宝贵的专业知识和内容。
两位备受尊敬和推崇的开发者不得不忍受无谓的争吵,不得不“过度努力”去纠正信息,最终失去了贡献的动力和乐趣,选择离开。
我们确实进行了 moderation(管理),但不断重复出现同样的烦人行为令人不快。在试图让每个人都有发言权的同时,我最终意识到,让所有人不得不保持容忍并被迫目睹不愉快的事件,这对大家来说有些不公平,因为总有少数人无法克制自己做出粗鲁行为。
我们的常见问题解答(FAQ)未能促使他们具备观察和识别自身互动中缺陷的能力。人们无论如何都会按照自己的理解来解读“该做”与“不该做”或指导方针。因此,我们的新管理员决定转而推广社区价值观。事实证明,这样更容易进行管理,因为我们只需说明某帖子不符合社区价值观,然后对其进行编辑(或隐藏,直到用户修改)。
然而,我们最终意识到,这样做并不能帮助那些长期以来沟通方式不佳的人学会如何做得更好。
因此,我们现在正在增加教育性干预措施,本质上是在线程中直接进行元沟通。让我们看看效果如何。
我知道,@HAWK 甚至已经编辑了我的标题以反映这一点。
我使用“线程”这个词正是为了避免这里发生的情况:你的建议是复制主题(即初始帖子)的解决方案。然而,我想要的解决方案是复制整个线程(即初始帖子,也就是主题,加上所有后续回复)。
换句话说,当你创建一个新主题并且人们发布回复时,你所得到的是一个线程。
问题在于……Discourse 中根本不存在“线程”这一说法。首帖及其所有回复合在一起被称为“主题”。
我接受你在 Discourse 语境下提出的概念。然而,从语言学、哲学以及在线论坛领域的历史来看,“线程”(thread)最能准确描述这样一个实体:它由一个带标题的初始帖子及其后续回复组成。![]()
同意,但你在这里忽略的一点是,Discourse 不像其他论坛平台那样支持线程结构。这正是我们做出这种区分的原因。
你说得对。在这种情况下,用“讨论”或“对话”可能更合适,因为它对统合各组件的设计方式描述得更为宽泛 ![]()
您可以在 Google 上搜索主题的定义:
top·ic
/ˈtäpik/
在文本、话语或对话中处理的事项;一个主题。
这相当准确。如果您出于个人原因更喜欢其他词语,可以通过管理员在 Discourse 中进行自定义编辑。
至于最初的问题……
为什么不点击帖子上的管理员扳手图标并拆分帖子,以便关于“其他”主题的回复可以放在一个不同的、但链接的帖子中?这将是更简单的解决方案,并且得到了 Discourse 中大量工具的支持。
因为:
“我[想]将主题分开,只保留与每个主题相关的回复,但毫不犹豫地在两者中重复涵盖这两个问题的回复,以达到清晰理解的目的。”
除非有办法在不从原帖删除的情况下将帖子复制到新主题,否则您提出的解决方案不允许在两个主题中都保留某些回复以达到理解的目的。
我明白了,如果回复中大量引用了各种帖子的内容,可能会变得棘手,但这应该相对少见。我在各种论坛上担任元版主近十年了,我想不出有多少次遇到过需要复制整个主题的情况……通常情况下,分割主题就足够了。
杰夫,我有一个用例,其中复制整个主题将非常有用。
我们使用我们的实例进行业务协作,特别是工会。每次会议,我们都会创建一个包含 8 个帖子的主题,格式为目录样式。
每次会议的帖子 1-8,虽然主题内差异很大,但每月格式相同,只需粘贴特定信息即可。能够创建一个模板,不仅用于第一个帖子,还用于整个主题,每月复制一次并插入月度信息,这将非常有帮助。
现在,我在一个私人类别中创建了一个主题,其中包含每个帖子 1-8 的模板。我目前必须在分屏中打开它,并新建一个主题,将帖子 1 从模板主题复制到新主题,然后是帖子 2,然后是帖子 3,依此类推。
虽然这是一个非常不寻常的用例,但有些实例可以真正受益于管理员克隆主题的功能,或者如果有一种方法可以将主题模板扩展到包含嵌套在类别中的多个单独回复模板以及主题模板。
现在,无论是主题模板还是向导,我所能做的就是复制一个未填写的帖子 #1。
你好,
Discourse Canned Replies 难道不是一个更好的解决方案吗?你只需要为主题和帖子创建一次,然后就可以简单地选择模板了。
您知道……那可能会奏效。看过之后,我真的备受鼓舞。@Don 谢谢!
我们也有一个用例。我们使用私信(PM)向一个组发送私密的帮助请求,但我们鼓励用户允许我们将他们的请求公开。我们更倾向于公开的帮助请求,这样更多人可以从帮助中受益。
理想情况下,我们会将 OP 的帮助请求和选定的回复复制到一个新的公开主题中,省略自动回复消息以及我们询问是否可以公开的回复等。
目前,我们将不得不将私信主题设为一个完整的主题,放在一个私有类别中,删除我们不想显示的回复,然后将其移动到一个公开区域。
你们为什么不反过来做呢?选择你们想公开的帖子,将它们移到一个新的对话中,然后将其变成一个公开主题?我感觉选择性地发布内容比删除所有不想发布的内容更安全。
你说得有道理。我猜我以为 OP 的帖子不能移到一个新主题。我会做一些测试,看看它是否可行。谢谢你的建议。
