# Discourse tips, hidden features, etc.

**URL:** <https://forum.malleable.systems/t/discourse-tips-hidden-features-etc/353>\
**Category:** Site feedback\
**Created:** [14 June 2025 15:08 UTC](https://forum.malleable.systems/t/discourse-tips-hidden-features-etc/353 "2025-06-14T15:08:13Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![jryans](https://forum-cdn.malleable.systems/user_avatar/forum.malleable.systems/jryans/32/7_2.png) [@jryans](https://forum.malleable.systems/u/jryans)\
**Post date:** [14 June 2025 15:08 UTC](https://forum.malleable.systems/t/discourse-tips-hidden-features-etc/353/1 "2025-06-14T15:08:13Z")

</div>

While Discourse forums perhaps seem like any other forum you’ve encountered, they happen to be packed with various features and integrations when you look a little deeper.

Here are a few examples I’ve noticed over time, and I’m quite sure there are many more, so feel free to mention any you’ve found.

## Email

If you’d like to be alerted to new forum posts via email, there are several available options. Mailing list mode will mail you for every message. You can also choose to be notified only for posts in certain categories.

## RSS

Perhaps you prefer feeds instead of emails. There are many RSS feeds available for the whole forum, particular categories, etc. See the RSS feed [reference](https://meta.discourse.org/t/finding-discourse-rss-feeds/264134) for more details.

## Threads as Markdown via raw view

As @eliot recently [mentioned](https://forum.malleable.systems/t/next-oop-www-html/332/84), there’s a raw view which shows thread content as it was originally entered (in Markdown). Replace the `/t/<slug>/<thread id>` portion of a thread URL with `/raw/<thread id>`. This is an easy way to archive interesting threads locally for later use and analysis.

## Wiki posts

Posts can be converted into community editable wikis that anyone can update (like this one!). This is how all the thread-starting posts in our catalog category are configured to operate by default. For the catalog, these posts are then read by a script to produce the [catalog](https://malleable.systems/catalog/) page on our website.

---

<div class="post-metadata">

**Author:** ![akkartik](https://forum-cdn.malleable.systems/user_avatar/forum.malleable.systems/akkartik/32/43_2.png) [@akkartik](https://forum.malleable.systems/u/akkartik)\
**Post date:** [15 June 2025 04:30 UTC](https://forum.malleable.systems/t/discourse-tips-hidden-features-etc/353/2 "2025-06-15T04:30:22Z")

</div>

Thanks for these tips! I wasn’t aware.

Just FYI, [the catalog page for Modal](https://forum.malleable.systems/t/modal/183) is not editable. I just happened to notice because it’s near the top of the thread index.

---

<div class="post-metadata">

**Author:** ![jryans](https://forum-cdn.malleable.systems/user_avatar/forum.malleable.systems/jryans/32/7_2.png) [@jryans](https://forum.malleable.systems/u/jryans)\
**Post date:** [15 June 2025 09:14 UTC](https://forum.malleable.systems/t/discourse-tips-hidden-features-etc/353/3 "2025-06-15T09:14:34Z")

</div>

Ah, thanks for pointing that out. Fixed!

---

<div class="post-metadata">

**Author:** ![akkartik](https://forum-cdn.malleable.systems/user_avatar/forum.malleable.systems/akkartik/32/43_2.png) [@akkartik](https://forum.malleable.systems/u/akkartik)\
**Post date:** [22 June 2025 08:16 UTC](https://forum.malleable.systems/t/discourse-tips-hidden-features-etc/353/4 "2025-06-22T08:16:43Z")

</div>

### raw view

> [@jryans](#):
>
> As @eliot recently [mentioned](https://forum.malleable.systems/t/next-oop-www-html/332/84), there’s a raw view which shows thread content as it was originally entered (in Markdown). Replace the `/t/<slug>/<thread id>` portion of a thread URL with `/raw/<thread id>`. This is an easy way to archive interesting threads locally for later use and analysis.

I really liked this tip, but quickly ran into a limitation: `/raw/<thread id>` only seems to work for some number of initial comments in a thread. So I’ve fallen back to my previous approach:

1. Use my browser’s inspector to inspect the comment I care about and scan around until I find the `<article ...>` tag. Look up the `data-post-id` attribute inside this tag.
2. Copy the raw contents of the comment to the clipboard by running say `$ mall 1628` at a terminal, where 1628 is the value of the `data-post-id`, and `mall` is implemented as follows:

```auto
mall () {
        curl https://forum.malleable.systems/posts/$1/raw | xcopy
}

```

Here, `xcopy` is an OS-specific helper to read the contents of `stdin` and copy them to the clipboard. On Mac OS it is called `pbcopy`.

---

<div class="post-metadata">

**Author:** ![eliot](https://forum-cdn.malleable.systems/user_avatar/forum.malleable.systems/eliot/32/249_2.png) [@eliot](https://forum.malleable.systems/u/eliot)\
**Post date:** [22 June 2025 14:53 UTC](https://forum.malleable.systems/t/discourse-tips-hidden-features-etc/353/5 "2025-06-22T14:53:03Z")

</div>

> [@akkartik](#):
>
> `/raw/<thread id>` only seems to work for some number of initial comments in a thread

Apparently there’s a way to specify a page number in the `/raw` URL with a query parameter `page`.

```auto
/raw/<thread id>?page=<page number>

```

I forgot where I got this information, and couldn’t find any Discourse documentation about it either - for example, how to get the total number of available pages. I guess you can loop through page numbers until it returns 404 not found.

---

<div class="post-metadata">

**Author:** ![khinsen](https://forum-cdn.malleable.systems/user_avatar/forum.malleable.systems/khinsen/32/45_2.png) [@khinsen](https://forum.malleable.systems/u/khinsen)\
**Post date:** [23 June 2025 06:53 UTC](https://forum.malleable.systems/t/discourse-tips-hidden-features-etc/353/6 "2025-06-23T06:53:34Z")

</div>

For me, a much simpler method has been sufficient so far: the [copy-as-markdown](https://github.com/notlmn/copy-as-markdown) browser extension. Or [copy-as-orgmode](https://github.com/kuanyui/copy-as-org-mode), depending on the destination (org-mode for my personal notes, Markdown for various shared notepads).

---

<div class="post-metadata">

**Author:** ![jryans](https://forum-cdn.malleable.systems/user_avatar/forum.malleable.systems/jryans/32/7_2.png) [@jryans](https://forum.malleable.systems/u/jryans)\
**Post date:** [23 June 2025 10:06 UTC](https://forum.malleable.systems/t/discourse-tips-hidden-features-etc/353/7 "2025-06-23T10:06:25Z")

</div>

> [@akkartik](#):
>
> I really liked this tip, but quickly ran into a limitation: `/raw/<thread id>` only seems to work for some number of initial comments in a thread.

Some Discourse APIs are paginated, so you could use the `page` query param like @eliot suggests.

If you wanted to script things a bit more (rather than needing the browser inspector), you could use the JSON view of the topic at `/t/<slug>/<thread id>.json`. See also the [API docs](https://docs.discourse.org/#tag/Topics/operation/getTopic) for an example response. (The `raw` API is curiously not documented there…)

> [@khinsen](#):
>
> For me, a much simpler method has been sufficient so far: the [copy-as-markdown](https://github.com/notlmn/copy-as-markdown) browser extension. Or [copy-as-orgmode](https://github.com/kuanyui/copy-as-org-mode), depending on the destination (org-mode for my personal notes, Markdown for various shared notepads).

Ah yeah, that might be the simplest approach for most use cases. 😄

---

<div class="post-metadata">

**Author:** ![akkartik](https://forum-cdn.malleable.systems/user_avatar/forum.malleable.systems/akkartik/32/43_2.png) [@akkartik](https://forum.malleable.systems/u/akkartik)\
**Post date:** [23 June 2025 13:27 UTC](https://forum.malleable.systems/t/discourse-tips-hidden-features-etc/353/8 "2025-06-23T13:27:27Z")

</div>

Yes, thank you all! After trying them all, I like the pagination approach. I’d rather use the original authored markdown when available than try to deduce it.

---

<div class="post-metadata">

**Author:** ![lascapi](https://forum-cdn.malleable.systems/user_avatar/forum.malleable.systems/lascapi/32/184_2.png) [@lascapi](https://forum.malleable.systems/u/lascapi)\
**Post date:** [8 July 2025 10:07 UTC](https://forum.malleable.systems/t/discourse-tips-hidden-features-etc/353/9 "2025-07-08T10:07:52Z")

</div>

Oh my gosh!! I love it !

And with the ‘read mode’ in Firefox I got that super lite page :

 ![Copie d'écran_20250708_120419](https://forum-cdn.malleable.systems/uploads/default/original/1X/e264d536e370a486920f18f08ace7d5cb5cf9730.png)

🤩🤩
