Composer tip under specific tag topics

:information_source: Summary This theme component provides a description of specific tagged topics in composer
:hammer_and_wrench: Repository GitHub - Lemon-planting-light/discourse-composer-tip: Add tips to discourse composer when in topic with special tags
:question: Install Guide How to install a theme or theme component
:open_book: New to Discourse Themes? Beginner’s guide to using Discourse Themes

Install this theme component


:warning: This theme component occupies the bottom right corner of Composer. If you have other plugins or theme components that occupy that location, it may not be compatible with it.

Sometimes, for topics marked by certain tags, you may wish to have something visually indicate to you what rules your replies should follow.
The theme component allows you to do just that. It provides a description of specific tagged topics in composer.

It also provides a concise and easy-to-understand json_schema edit box, making it very easy to modify settings.

At the same time, it provides two modes, I call them Details Mode and Modal Mode

As you saw above, since I am developing for my forum, the component names and configuration examples provided by default are in Chinese. You may need to change them yourself. I apologize for any inconvenience caused to you.

Details Mode

Modal Mode


This looks amazingly useful!

One suggestion: “Display for OP” and “Hide for replier” have opposite senses. How hard would it be to make these both go in the same direction, like:

“Display for First Post” / “Display for Replies”


“Hide for First Post” / “Hide for Replies”



As a Grammarly user, the composer’s component would be partially hidden by Grammarly’s (interactable) icons:


I suppose it could easily be modified with CSS, but maybe a setting to change the alignement would be useful.


Would it be possible to have this theme component also work for categories? That seems nicer than adding template text as instructions.

I would be satisfied with simply the option to configure categories in the same way as tags in your existing theme component — but it’d be even more useful to be able to have it work in all of these ways:

  1. for a tag, regardless of category
  2. for a category, regardless of tag
  3. specifically for a given tag and category together

And, in the third case, it’d be nice if that overrode any of the first and second. (That is, there could be general text for a category, but if you pick a certain tag, you’d get something else. Or, general text for a tag, except when used in a given category.)


Hmmm — I’ve installed this, but it is only showing for replies, not the first post — no matter how I set “display for OP”.


Ahhh, I think maybe because I am not a native English speaker, I have a problem understanding the vocabulary?

These two setting items respectively refer to “Whether visible to whom posted post_number = 1” and “Do not display to those who have already replied once”

I re-tested this on my test forum and it seems to work fine


I’ve pushed a fix for this, thanks for the suggestion!
(Note: The setting JSON items has been modified, and the old setting item needs to be filled in again)


In my testing, I can only get it to work for replies. It does not appear when composing the first post in a new topic.


Ah, I see what you mean, it’s by design, because I originally designed it so that the respondent could tell at a glance what norms a reply should follow, but the OP doesn’t need to know - because they are the ones who choose the norm


Oh — so “Hide for OP” means that they don’t see the message on replies to their own posts? I misunderstood! (But I also see the use of this setting now!)

Here is the use case I have in mind. If someone chooses something like #bug or #help, there could be a link to a guide to writing good problem reports — for the first post. (This would be nice per-category in addition to a tag-based approach.)

And, perhaps replies to that (by other people, not the OP) could give a link to helpful resources for writing good answers. (But for this use case, it is the first post that is more important.)

Or, a different use case: if the topic is a news story or blog post, the text in replies could remind people to comment on the substance of the text, giving links for reporting typos or other errors (and therefore hopefully keeping the replies more helpful while reducing moderator load).


This is pretty cool. Would you consider as asked making this work on first post? Can yoy use Align left to wrap. text? as I use plugin chars required and it disolays in the right.

1 Like

Could the short description accept html? Basic <kbd> would make it more clearer :wink: Sure, it can be achieved using CSS but html would be easier solution.


Yes, it supports.
Not only that, but it uses full HTML, not HTMLsafe


How would I make the tip on both align left? I use Characters required plugin. Which displays lower right.

1 Like

Maybe you have to manually add a line of css to the site… I have no intention of adapting those plugins that take up the same space, hmm

.topic-tag-desc-container {
    text-align: left;

You would likely need to target them with css much like your targetting your element here.

In UX category there is a neat idea code that moves the composer menu on mobile to bottom with rhe gear having Options replace composer icons scrolling left to right. It would also have a placement issue with your component and chars requirement plugin.

Thanks for the speedy reply.

Here is the topic if your interested.


Really? I couldn’t get any tags working. Not even basic ones like <b>.

1 Like

Keep in mind the tag tips do not show on Op/post 1. It shows on Post #2 etc…

You need to use the editor in the component to add and define short &/or long descriptions.

Testing topic

I have applied hus css fix so my tag tip is on the left.

Circled is my tag tip if I click on it as I have ir on Modal it will call up the long description in a closeable box.

1 Like

Hmm… In my case it works fine



I am guessing he has not edited a taf in the editor and just trying defaults with no tags matching your sample.

1 Like