回复模板

:discourse2: 摘要 Reply Template(回复模板)让你能够轻松地在回复或新主题中复用帖子的部分内容。
:eyeglasses: 预览 在 Discourse Theme Creator 上预览
:hammer_and_wrench: 仓库链接 https://github.com/discourse/discourse-reply-template-component
:open_book: 初次使用 Discourse 主题? Discourse 主题使用入门指南

安装此主题组件

功能

Reply Template 让你能够轻松地在回复或新主题中复用帖子的部分内容。

用法

[wrap=template key="template-name"]
我的可复用内容

- [ ] 任务 1
- [ ] 任务 2
[/wrap]

注意,如果用户未登录,点击按钮将显示登录模态框。

key 是必填项

其他选项

  • action="create" 这将使按钮打开一个编辑器以创建新主题
  • action="create_pm" 这将使按钮打开一个编辑器以创建新私信
  • categoryId="2" 仅与 action="create" 配合使用,将设置打开的编辑器的分类
  • title="some title" 仅与 createcreate_pm 配合使用,主题/私信的标题
  • recipients="a@example.com" 仅与 create_pm 配合使用,收件人
  • usernames=sam 仅与 create_pm 配合使用
  • label="My button text" 按钮文本

占位符

你可以在模板中包含特殊的键,它们将被替换:

  • $week_start → 本周开始日期
  • $week_end → 本周结束日期
  • $prev_week_start → 上周开始日期
  • $prev_week_end → 上周结束日期
  • $today
  • $tomorrow
  • $username → 当前用户的用户名
  • $name → 当前用户的姓名

注意,这将被替换为本地日期。

特殊占位符也会在 title 中进行插值。

标签列表

tagsList=":heart:,foo,#bar" 将在模板末尾显示一个复选框列表,以便人们轻松地为帖子添加标签。

示例

我的待办事项列表 $week_end

  • 任务 1
  • 任务 2

设置

翻译键 默认值
discourse_reply_template_component.use_template_reply 将模板用作回复
discourse_reply_template_component.use_template_create 将模板用作新主题
discourse_reply_template_component.use_template_create_pm 将模板用作新私信
discourse_reply_template_component.needs_key 每个模板都需要一个 key 属性。例如:[wrap=template key="weekly_status"][/wrap]

:discourse2: 由我们托管? 主题组件在我们的 Standard、Business 和 Enterprise 计划中均可使用。

44 个赞

我在想,这能否用于特定的分类或子版块?

比如用于漏洞报告表单?

3 个赞

可以:arrow_down:

例如:
[wrap=template key="bug-report" action="create" categoryId="your-bug-category-id"]

9 个赞

谢谢,我需要进一步探索这个问题。

这真是太棒了!非常感谢!我使用它来创建检查清单模板,每次进行重复性项目时都可以随时创建。以前,我们的指示是“复制并粘贴以下内容”,而现在有了一个非常优雅的按钮,可以直接为人们创建主题。

5 个赞

是否有计划将此功能集成到编辑器窗口中?在我看来,最合理的位置是“隐藏详情”和“创建投票”等功能所在的位置。

3 个赞

我刚更新了该组件,用法请参阅原始帖子,但有一点需要说明:

  • 占位符日期现在已替换为本地日期
  • 您现在可以定义 tagsList

8 个赞

感谢您提供了如此出色的组件!

目前无法在 wrap 中添加投票功能。您能否添加此功能?

[wrap=template key="template-name"]

[poll type=regular results=on_vote chartType=bar]
# 谁会加入?
* 1
* 2
* 3
[/poll]

[/wrap]

我已为你们的组件添加了更多语言环境,并创建了拉取请求。请查收。

1 个赞

如何安装此组件?

在我看来,提供一个回复场景的示例(不含 action=create)会更有帮助,因为这可能是大多数人搜索的原因,毕竟通过 URL 创建主题已经可行。

我的尝试:

  • 成功
  • 失败
2 个赞

是否可以使用模板来创建新的个人消息?

另外,当用户未登录时,点击“使用模板作为回复”没有任何反应。能否添加一项功能:如果用户未登录,系统能提示他们登录或创建新账户?

4 个赞

好建议,已处理,我已更新了首帖。

4 个赞

有没有办法预填充新主题标题?

有没有办法自动添加标签,而不仅仅是显示标签列表?

4 个赞

不,但这确实是一个合理的功能请求。我目前手头有点忙,不过我会记下这个建议,谢谢。

5 个赞

是否有可能通过某种模板修改主题中的默认回复按钮?
这将成为论坛中特定结构化对话的变革性功能,尤其适用于竞赛等需要用户以结构化方式提交内容的场景。

1 个赞

您好,抱歉我不太明白您的请求,能否请您说得更具体一些?

目前,用户只能通过主题组件生成的首帖中的按钮访问回复模板。
我希望实现的是,让主题中的常规回复按钮(时间线下方的回复按钮和最后一帖下方的回复按钮)也能使用该模板。

编辑:一个典型的使用场景是用户留言反馈(如错误报告等)的话题。如果我们能像为新建话题设置按分类的模板一样,为每个话题设置按帖子的回复模板,将有助于减少报告不完整的情况,从而为工作人员节省大量时间。

5 个赞

您好,

我在安装此组件时遇到了一些问题。我是 Discourse 的新手,希望有人能确认我所采取的步骤是否正确。

我遵循了此处的指南 Installing a theme or theme component 来安装该组件。我已经将该组件包含在我们所有的主题中。

但是,当我创建一个新主题并包含

我的可重用内容

  • 任务 1
  • 任务 2

时,没有“使用模板作为回复”按钮。例如:

它只是显示了模板周围的包装器。我是否遗漏了某个步骤?我是否需要自定义代码中的某些内容?

另外,Discourse 提示主题在 CSS、HTML 或 YAML 中存在错误。我不确定这是否与按钮不显示有关?

感谢您的任何帮助。

明天会看一下

2 个赞

谢谢。我被告知这可能也是我们运行的 Discourse 版本的问题,但我们会再回来讨论这个问题。