1 post - 1 participant
]]>I prefer the menu with limited height like on my forum (updated ~2 days ago):
1 post - 1 participant
]]>Created a new Amazon SES identity for forum.example.com. It tells you the records to add for DMARC etc.
This explains how to get SES SMTP credentials: Obtaining Amazon SES SMTP credentials - Amazon Simple Email Service
Changed SMTP settings in app.yml - see Troubleshoot email on a new Discourse install. I’m not sure about these files so I added double quotation marks around all the strings.
For Mailgun I was using port 2525 had commented out DISCOURSE_SMTP_ENABLE_START_TLS: true
.
For SES:
DISCOURSE_SMTP_ADDRESS: "email-smtp.eu-west-2.amazonaws.com"
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: "xxx"
DISCOURSE_SMTP_PASSWORD: "xxx"
DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, default true)
Followed the instructions below from: Configure VERP to handle bouncing e-mails. NB the SNS URL for me was https://eu-west-2.console.aws.amazon.com/sns/v3/home?region=eu-west-2#/dashboard
Chose not to “Enable raw message delivery” (hope that was right).
Didn’t have to rebuild:
Discourse - Admin - Email - Email settings - Preview summary - I used this to test emails, to valid and non-existent recipients.
Tested at https://www.mail-tester.com/ - 10/10
Discourse - Admin - Email - Email logs. Useful to check. Incidentally the error at "Discourse::NotFound" error when click "Email Type" field on admin/email/bounced no longer occurs.
Tested whether new topic sent notification email as expected.
Tested whether reply by email sent reply to that topic.
1 post - 1 participant
]]>2 posts - 2 participants
]]>\nicefrac
in Discourse Math Rendering
Please add support for the \nicefrac{a}{b}
command in Discourse math rendering. This diagonal-style fraction is compact and ideal for inline expressions, improving readability without disrupting line spacing.
\nicefrac
?$ \nicefrac{1}{2} $
1/2
and less bulky than \dfrac{1}{2}
Discourse might be able to support math via KaTeX or MathJax, depending on the installed plugin. This feature request outlines implementation for both:
MathJax might support \nicefrac
if an extension is loaded:
MathJax.Hub.Config({
TeX: {
extensions: ["AMSmath.js", "nicefrac.js"]
}
});
This could mean no core changes are needed — so you could just update the plugin config to enable the extension.
KaTeX does not support \nicefrac
natively. It might be possible that the following workaround macro can be added:
macros: {
"\\nicefrac": "\\raisebox{.5ex}{\\footnotesize #1}/\\raisebox{-.25ex}{\\footnotesize #2}"
}
Alternatively, it might be worth investigating support through third-party KaTeX extensions such as katex-extension
.
Try rendering the following:
$\nicefrac{3}{4}$
Result in KaTeX:
`KaTeX parse error:
Undefined control sequence: \nicefrac
Result in MathJax (if extension not loaded):
`MathJax parse error:LaTeX Error: Command \nicefrac undefined
Undefined control sequence: \nicefrac
$ \nicefrac{3}{4} $
renders a proper diagonal fraction\nicefrac
is widely used in LaTeX documents and teaching materialsThank you for considering this small but valuable improvement to math rendering in Discourse!
1 post - 1 participant
]]>my instance has been using MathJax for a while.
Oftentimes when there are many $…$
or $$…$$ trying to render at once they all abort with undefined control sequence \textcolor
This has been happening for years, and my solution was to make the majority of my userbase moderators so they could press the pencil, save the edit, and then get a perfect render.
Due to the unpredicatability of the issue, i’d probably struggle to provide my own logs. However, this bug has become visible today here on the Meta (with no edit or leaving of page)
\textcolor no browser intervention e.g. refresh
1 post - 1 participant
]]>I’m basically here because i’m trying to create a Forum, centered around the theme of building a “Solidarity Economy” &/or a “co-operative economy”, here in my local city.
FYI: these alternative economies generally have to do with local mutual aid organizing efforts, establishing democratically managed/owned organizations & businesses etc(aka: co-ops, worker cooperatives, land trusts, etc), and convincing established top down hierarchical organizations, to restructure themselves to be more participatory, as well as more accountable to and representative of the people they effect.
these generally run on participatory democratic strategies, like “Sociocracy”, that are still developing, and tools Like “Loomio” that expand such collaborative decision making processes into asynchronous digital spaces.
they often also use techniques like those in “Art of Hosting” to foster community consciousness at larger scales, for larger in person group formats.
I am basically trying to create a forum for people who are interested in discussing and getting involved in such things, here in our city specifically..
I want it to be public to some degree, because everybody should have access to the tools, and resources we’d be collecting and building there, as well as an entry point to getting involved in organizing efforts in their neighborhoods.
My concern is outsiders, AI agents, and bad actors that may try to access the forums.
Most social organizing efforts in our city use Facebook, or other standard social media, and those platforms have become utterly nightmarish and corrupt.
So my questions are as follows..
Does anybody have any ideas on what pre-existing Discourse features could be used to ensure that only real, local humans, have the option to join?
How could a forum be structured so that neighbors from a particular region can connect and talk about local issues, run polls etc, without non neighbors being involved?
Could community organizations &/or groups, be given a private or read-only(for outsiders) subsection within a forum?
Does Discourse have any features that could be used by either users or mods, to send a specific invite code, that would both allow a person to sign up, and also track who initially allowed that person to sign up?
I realize that what i’m asking for might just not be possible with Discourse as it currently exists.
Regardless, thank you for your time in reading and considering. 0
3 posts - 3 participants
]]>URGENT: Failed to initialize site default: ActiveRecord::StatementInvalid PG::UndefinedTable: ERROR: relation "flags" does not exist
LINE 10: WHERE a.attrelid = '"flags"'::regclass
above is from unicorn.stderr.log
To a coder/devel that probably says something - would it be possible to “fix” this installation of mine?
All thoughts shared are much appreciated! Thanks.
1 post - 1 participant
]]>A vibrant, bustling street scene in Morocco showcases a spice market with colourful pyramids of spices, merchants attending to customers, and traditional architecture creating a lively atmosphere. (Captioned by AI)
A vibrant red double-decker bus drives along a bustling city street, with pedestrians and buildings visible in the background. (Captioned by AI)
From this post - Email reply formatting - #7 by JammyDodger
4 posts - 3 participants
]]>Best and thanks on advance.
TS
8 posts - 4 participants
]]>![]() |
Summary | User created collections of linked Topics |
![]() |
Repository Link | https://github.com/Alteras1/discourse-collections |
![]() |
Install Guide | How to install plugins in Discourse |
This allows users to create collections of Topics that are visible when viewing said Topics. Collections may include any URL and will be visible on any linked Topic. Collections can be organized into sections, and any changes to a collection is reflected on all linked topics. There is no restriction on the Topic being linked, so users can create a collection across categories/tags.
Optional field available for input. If provided, these will be displayed at the top of the list.
Optional organizational feature. By adding a section header, the collection can be divided into sections, allowing collapsible sections to be displayed.
Users can also create a subcollection, which is only displayed for a single topic, allowing users to link relevant URLs (i.e. specific posts/external resources) only for the single topic. Any topic URLs added will not be linked.
The plugin allows any user to create a collection for their own Topics. By default, users can only link to their own Topics, and must add other users as maintainers, who can add their own Topics to the collection. This setting can be disabled, allowing only specific groups full control over any collection (by default Staff & TL4).
Permissions Demo (click for more details)Include a table of settings and setting descriptions
Name | Description |
---|---|
collections enabled | Enable/disable the plugin. Default: true |
collection by topic owner | Allow topic OP to create collections. Default: true |
collection by topic owner allow groups | Restrict topic OP who can create collections. Limits collection by topic owner . Default: TL1 |
collection modification by allowed groups | Groups allowed to create/modify any collection. Default: Admin Moderators TL4 . |
This plugin is heavily inspired by (and was at one point based on) the Discourse Doc Categories plugin. While the Doc Categories plugin has a good indexing mechanism and the display is great, the design was meant for wiki style pages, where everything is collated in a single category. Similarly, the indexing relies on formatted text input in a separate Topic, which has its own pros & cons.
The DiscoTOC - automatic table of contents theme component also allows for organizing links outside of the post body, but is limited to a single topic.
If your purpose is just a wiki style organization, Discourse Doc Categories would be a better fit. If you just need only some pages to have linked Topics, DiscoTOC - automatic table of contents would be better.
This was originally designed to support the forum I am apart of migrate over to Discourse. As a writing focused forum, separate topics are maintained by users for different purposes, resulting in a situation where links between topics across categories is practically required. To help facilitate this, I’ve created this plugin to support users self-organize.
There is an alternate timeline where this is just a theme component, where indexing would occur with user inputted divs with URLs to other post. But after developing 90% of the tools, wizards, and code to do it, I realized it just wasn’t worth it and that the user would likely skip over every tutorial written and still complain about why things weren’t working. So that path was ditched. It honestly isn’t a bad solution, as it would be far more lightweight than a plugin, but it would’ve put a lot of unnecessary burden on users to make sure they had the correct formatting on not just one post, but on multiple.
I have currently marked this as experimental, as I’m still not 100% set on the UI features (ie icons) and the permissions system. Also, I need to add automated unit tests.
3 posts - 2 participants
]]>\color
) or MathJax (if using \textcolor
) (via $...$
) inside [details=...]
titles.
Currently, all formatting inside [details=...]
titles is stripped or shown as literal text — even though the content body renders math and BBCode beautifully. This limits visual clarity when building math-heavy or educational posts where you’d want the collapsed title to reflect the structure clearly (e.g., “the \hat{r} component” or “$\textcolor{blue}{3^\text{rd}}$ term”).
If supported, the following use cases would become possible:
[details="[color=orange]1st Term[/color]"]
...
[/details]
[details="$\textcolor{green}{\text{Vector Potential Term}}$"]
...
[/details]
This would allow, for example:
This feature could be gated behind detecting whether discourse-math
or discourse-bbcode
is enabled, so it doesn’t affect default Discourse behavior.
Would this be feasible as a core improvement or plugin extension?
Thanks for your amazing work on Discourse — it’s an exceptional platform for technical and academic communication.
2 posts - 1 participant
]]>is it possible to somehow limit the personas for AI Bot ?
At the moment all are available in the dropdown to choose from, but I just want to have one (customized) available.
Is that possible ?
Greetings,
Julian
4 posts - 4 participants
]]>Now, I would like to use this same WordPress SSO to allow users to log in on a SECOND WordPress site. Is this use possible? If it helps, the secondary sites (Discourse and 2nd WP) are subdomains of the first WordPress site.
1 post - 1 participant
]]>I’ve been experimenting with how Discourse handles LaTeX inside [grid]
and [details]
and wanted to document the behavior and workaround here for others using math-heavy formatting.
When using [grid]
to lay out multiple LaTeX expressions side-by-side, inserting even one whitespace between two $...$
inline math blocks inside the grid breaks the rendering:
[grid]
shows side-by-side content with \text{whitespace} = 1 [grid]
and [/grid]
become visible See this screenshot, where the layout looks correct but [grid]
appears as text:
Screenshot 1:
[grid]
showing visibly despite rendering correctly
Discourse’s markdown parser interprets:
$...$
with no whitespace between blocks as inline math[grid]
[grid]
expects block-level content, not inlineUse $$...$$
(block LaTeX) instead of inline $...$
inside [grid]
to ensure correct rendering. Example:
[grid]
$$
\nabla \times \mathbf{A} = \left| \begin{matrix}
\hat{i} & \hat{j} & \hat{k} \\
\partial_x & \partial_y & \partial_z \\
A_x & A_y & A_z
\end{matrix} \right|
$$
$$
\nabla \times \mathbf{A} = \left| \begin{matrix}
\hat{i} & \hat{j} & \hat{k} \\
\partial_x & \partial_y & \partial_z \\
A_x & A_y & A_z
\end{matrix} \right|
$$
[/grid]
3 posts - 1 participant
]]>8 posts - 3 participants
]]>1 post - 1 participant
]]>git fetch origin
git checkout stable
git pull
to work.
4 posts - 3 participants
]]>Anyway, I became lazy for around a month, and didn’t revert. Until when, I decided to fix things with the help of discourse helper bot/ChatGpt Ai Bot. And created another version of my old website on my ubuntu laptop locally.
I succeeded in creating an instance of my original website on my laptop by just using a “t.” infront of my original domain name. Now this (called staging site) is working fully ok for me, but has activity only up to 11/Apr/2025.
And my Production website, which has all the data up to date, but has many 100s of posts missing images from them.
mind that I tried many rake tasks for migration or for reconnecting the missing connection to images, wo any success.
After banging my head for nearly a month. My conclusion is this. That the raw posts in ruby are same in staging and in production.
But cooked posts become diff. That is my production website’s database table is perhaps missing some connection to the actual physical images lying on server.
I’ve also noted that without that connection, those ‘orphaned’ images get auto-pruned from the server. But thankfully, I again rsync them from staging or from my S3 bucket to my production server.
Finally the problem, in the words of, more or less, ChatGpt, that the staging server either has final cooked versions, which don’t have any relation to the (short) raw urls. And the production, which is missing the final cooked version urls to images, can’t get those images correct urls and is falling back to ‘transparent’ placeholders.
And ChatGpt is suggesting me to copy cooked version from staging posts to the cooked version of production. Which doesn’t seem a very good idea to me.
3 posts - 2 participants
]]>I’m very new to Discourse and trying to set it up for my company.
So far, everything went smoothly, including the use of Discourse Connect to connect it to our own SSO login page and retrieve login information about our users.
Our discourse site is completely private and anonymous user are presented with a banner and a button “Log in” which redirects to our website and then go back to Discourse > perfect !
Problem is, when someone use a link which point to a topic and send it to an anonymous user, this anonymous user is redirected to /login page (good behavior) but this page says “No login methods”.
It looks like the problem was discussed here : SSO vs Oauth2 difference? - #17 by Joralf
I’m currently on 3.5.0.beta8-dev
In “Login & authentication” I have :
Thanks for any help,
Kevin
1 post - 1 participant
]]>It defaulted to “Post as new topic” which was confusing. There was another option hidden in the top left to “Reply to existing topic by…” (or words to that effect). I used that, and accidentally posted to a completely different topic.
It would be simpler if there were some warning about the topic of the quoted post being closed.
(At the same time, it is useful to be able to quote from a closed topic. I think the past that wasn’t possible.)
1 post - 1 participant
]]>When actually using the template in topic creation, the tags are populated fine.
Errors:
TypeError: this.wrapperElement is undefined
Error: VM BUG: Target must be set before attempting to jump
1 post - 1 participant
]]>Hovering over the Images, Videos and Documents buttons the title text ‘Allow extensions…’ is displayed. Hovering over the Audio button, the title text displayed is ‘[en_GB.admin.site_settings.file_types_list.add_types_title audio]’.
1 post - 1 participant
]]>Our forum now uses Auth0 for user authentication, and our team has integrated forum access into our app via WebView.
However, when users click to access the forum from within the app, they are still required to log in again. Since the app and the forum share the same user account, is there any way to bypass the login process and enable seamless access?
Thank you!
4 posts - 2 participants
]]>our guess are below
_forum_session value in Session storage keep changing when we click the board
So previous sessionkey, and new generated session key was not match sometime.
How to manage forum_session value? or How to control sequence of generating _forum_session?
What makes this popup out?
2 posts - 1 participant
]]>1 post - 1 participant
]]>I added the full Google Tag script code after on my theme but it seems like Google cant find it. I also added the GA universal tracking code in my discourse settings. The GA version is set to v4_gtag in Discourse.
Am I missing something? I added ‘unsafe-eval’ to CSP and when trying to add https://www.google-analytics.com it says that content_security_policy_script_src: Value must be either ‘unsafe-eval’ or ‘wasm-unsafe-eval’, or in the form ‘-’ where supported hash algorithms are sha256, sha384 or sha512. Ensure that your input is wrapped in single quotation marks.
What am I missing?
3 posts - 1 participant
]]>3 posts - 2 participants
]]>The discourse is running in a docker.
Here is the message that we see
We’re currently on 2.9.0.beta5 but the current release (shown as critical to upgrade to) is 3.5.0.beta7.
If I run
./launcher rebuild app
I am getting
x86_64 arch detected.
ERROR: Kernel version 3.10.0-1160.119.1.el7.x86_64 not supported, please upgrade to at least 4.4.0
This is because the launcher is retrieving the latest build. What tag should I use for 3.5.0.beta7?
I assume when I will have the correct tag I can upgrade with the following command
./launcher rebuild app --run-image ‘discourse/base:’
I tried to look for the this info., but I could fnd anything.
Thank you beforehand.
8 posts - 4 participants
]]>As a community manager, one issue I frequently encounter, especially with announcement posts or megathread-style collection topics, is the inability to keep important staff comments visible within large threads/topics.
For example, if I make a clarification or announcement as a reply somewhere around the 30th post in a topic that eventually receives over 90 replies, that comment quickly gets buried. While it’s possible to highlight a comment using the staff color or add a staff notice, these don’t help when users skip the original post and/or comments to head straight to the latest replies to comment.
I’m aware of the “Solved” plugin (but only available on Pro, Business, and Enterprise hosting plans), which marks a post as the solution and creates a quote of it at the bottom of the original post. However, that still requires users to go back to the first post and doesn’t address visibility in the reply flow.
Yes, I could edit the original post to include my comment (either at the top or bottom), but this either clutters the intro or buries it further, and doesn’t appear in the natural comment flow where users are actively engaging with each other.
Allow staff to pin a specific reply/comment directly below the topic’s reply area, so it’s immediately visible to anyone who is about to post a reply. This would help ensure that important staff clarifications or reminders are seen in full context without needing to be re-posted repeatedly or quoted in the original post in the hopes of being seen.
This would be incredibly helpful in:
Megathreads or ongoing event threads.
Announcement posts with frequent questions or confusion.
Moderation/Staff notices about ongoing issues (e.g., “We’re aware of this issue!”).
Having a way to pin a comment right before someone replies, without depending on them reading 90 or more comments, would significantly improve moderation, reduce duplicate replies, and keep discussions more focused.
Here’s a very rough mockup to demonstrate the Idea:
Thanks for taking the time to read and consider this feature request. If there are already other ways to better pin or highlight specific replies that I might have missed, please let me know.
I’m also open to suggestions or feedback if I misunderstood or misexplained anything.
1 post - 1 participant
]]>