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 for more details.
Threads as Markdown via raw view
As @eliot recently mentioned, 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 page on our website.
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:
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.
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:
Apparently there’s a way to specify a page number in the /raw URL with a query parameter page.
/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.
For me, a much simpler method has been sufficient so far: the copy-as-markdown browser extension. Or copy-as-orgmode, depending on the destination (org-mode for my personal notes, Markdown for various shared notepads).
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 for an example response. (The raw API is curiously not documented there…)
Ah yeah, that might be the simplest approach for most use cases.
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.