Reply Template

:discourse2: Summary Reply Template will let you easily reuse part of a post in a reply or a new topic.
:eyeglasses: Preview Preview on Discourse Theme Creator
:hammer_and_wrench: Repository Link https://github.com/discourse/discourse-reply-template-component
:open_book: New to Discourse Themes? Beginner’s guide to using Discourse Themes

Install this theme component

Features

Reply Template will let you easily reuse part of a post in a reply or a new topic.

Usage

[wrap=template key="template-name"]
My reusable content

- [ ] task 1
- [ ] task 2
[/wrap]

Note that if a user is not logged in, clicking the button will display the login modal.

key is mandatory

Other options

  • action="create" this will make the button open a composer to create a new topic
  • action="create_pm" this will make the button open a composer to create a new PM
  • categoryId="2" only usable with action="create", will set the category of the opened composer
  • title="some title" only usable with create and create_pm, title of the topic/pm
  • recipients="a@example.com" only usable with create_pm, people this will be sent to
  • usernames=sam only usable with create_pm
  • label="My button text" The button text

Placeholders

You can have special keys in your template which will get replaced:

  • $week_start → date at the beginning of the week
  • $week_end → date at the end of the week
  • $prev_week_start → date at the start of previous week
  • $prev_week_end → date at the end of previous week
  • $today
  • $tomorrow
  • $username → username of current user
  • $name → name of current user

Note that this will be replaced by local dates.

Special placeholders are also interpolated in title

Tags list

tagsList=":heart:,foo,#bar" will show a least of checkboxes at the end of the template so people can tag their post easily.

Example

My todo list $week_end

  • task 1
  • task 2

Settings

Translation Default
discourse_reply_template_component Use template as reply
discourse_reply_template_component Use template as new topic
discourse_reply_template_component.use_template_create_pm Use template as new PM
discourse_reply_template_component.needs_key Each template needs a key attribute. eg: [wrap=template key="weekly_status"][/wrap]

:discourse2: Hosted by us? Theme components are available to use on our Standard, Business, and Enterprise plans.

Last edited by @matenauta 2024-10-10T15:46:06Z

Last checked by @joffreyjaffeux 2024-08-07T21:43:33Z

Check documentPerform check on document:
40 Likes

I was wondering can this be used in a specific category/sub?

Ie bug reporting form?

3 Likes

Yes :arrow_down:

E.g.
[wrap=template key="bug-report" action="create" categoryId="your-bug-category-id"]

9 Likes

Thank you will need to explore this more.

This is the best. Thank you!! I use this to create checklist templates that can be created anytime we’re doing a repetitive project. Before, our instructions would have been “copy and paste everything below” instead of having this very elegant button to create a topic for people.

5 Likes

Is there a plan to make this functionality accessible in the composer window? To me the most logical place being where things like Hide Details and Build Poll live.

3 Likes

I just updated the component, see OP for usage but a quick note:

  • placeholder dates are now replaced by local dates
  • you can now define a tagsList

8 Likes

Thank you for a great component!

It’s impossible to add a poll in the wrap. Can you add this functionality?

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

[poll type=regular results=on_vote chartType=bar]
# Who will join?
* 1
* 2
* 3
[/poll]

[/wrap]

I added more locales to your component and created a PR. Please, check.

1 Like

How can i install this component?

In my opinion it’d be more helpful to have an example for the reply case (without action=create) because this is probably the reason, the majority is searching for since creating a topic is already possible via URL

My try:

  • ok
  • fail
2 Likes

Would it be possible to use a template to create a new personal message?

Also, when someone is not signed in, clicking on “Use template as reply” does not result in any action. Could you add functionality where if a user is not logged in, something happens to nudge them to log in or create a new account?

4 Likes

Great suggestion, it’s done, I updated the OP.

4 Likes

Is there a way to pre-populate the title of a new topic?

Is there a way to automatically add tags instead of having just the tag list?

3 Likes

No, but that’s reasonable feature request for sure. I’m kinda full ATM but making a note of this, thanks.

4 Likes

Is there any possible way to modify the stock reply button in a topic with such a template?
That would be a gamechanger for specific structured conversations in the forum. Especially for contests etc where users have to submit content in a structured manner.

1 Like

Hi, sorry I don’t understand your request, can you be more specific please ?

Currently the user can access the reply template only via the button in the first post generated by the theme component.
What I would like to achieve is to enable the template for the stock reply buttons in the topic as well (reply button below the timeline and reply button below the last post)

Edit: One prolific use case is a topic where users can leave feedback like bug reports etc. If we could add per-topic post templates just like for per-category templates for new topics, that would lead to less incomplete reports and hence save our staff a lot of time.

5 Likes

Hello,

I am having some trouble installing this component. I’m new to Discourse so hoping someone can confirm if the steps I’ve taken are correct.

I followed the guide here How do I install a Theme or Theme Component? to install the component. I’ve included the component on all of our themes.

However, when I create a new topic and include

My reusable content

  • task 1
  • task 2

There is no button for “Use template as reply”. Example:

It just shows the wrapper around the template. Am I missing a step here? Is there something I need to customise in the code?

Also, Discourse is saying the theme has errors either in CSS, HTML or YAML. I’m not sure if that has something to do with why the button doesn’t display?

Thanks for any help.

Will have a look tomorrow

2 Likes

Thanks. I’ve been informed it may also be an issue with the version of Discourse we’re running but will come back on that.