Collections

:information_source: Summary User created collections of linked Topics
:hammer_and_wrench: Repository Link https://github.com/Alteras1/discourse-collections
:open_book: Install Guide How to install plugins in Discourse

Preview

Mobile

Collections

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.

Title & Description

Optional field available for input. If provided, these will be displayed at the top of the list.

Sections

Optional organizational feature. By adding a section header, the collection can be divided into sections, allowing collapsible sections to be displayed.

Subcollections

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.

Permissions

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

Settings

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.
sections in subcollection Allow section headers in subcollections. Default: true

Alternatives

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.

Notes

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.

16 « J'aime »

FYI: all videos were broken :thinking: (iPad)

1 « J'aime »

Huh, I thought iOS Safari supported WebM…

I’ve swapped out the videos for MP4. Ty!

5 « J'aime »

It’s possible to enable 'public‘ collections like on Discourse Docs?

1 « J'aime »

Sorry if it wasn’t clear, all collections are “public.” All users will see the same collection on the same topic. This plugin is meant to organize topics, not be a kind of private “folder of bookmarks” for users.

2 « J'aime »

Updated the plugin with support for Emojis and Color Squares in sidebar!

2 « J'aime »

This looks really quite amazing. And absolutely brilliant documentation - this has my vote for the best documented Plugin in meta.discourse.org!!

Have you considered extending this so that it also covers topic lists too?

I often find that it would be very helpful having per-category or per-tag collection of links. An example is a private category dedicated to specific group, which also uses some other tools (such as a few folders in Google Docs, a local government portal, an associated chat channel, and a group inbox). It would be ideal to have category moderators control over it.

2 « J'aime »

Thank you very much!

It’s definitely something I’ve considered before, but I don’t think it would fit well with the current design of being a user driven way to organize topics. Not ideal for category/tag level, as it would have to be limited to moderator control. The original use case was to cover linking related topics too big for 1-2 topics, but too small for a tag/category.

Making topic lists display the indexing in the sidebar for categories can be done via Discourse Doc Categories plugin, albeit with a different configuration method. Definitely a hassle having to have two plugins do two very similar things, but I think the original philosophy for each is different enough to warrant the separate approaches.

Adding a compat extension for the Private Topics Plugin is a very cool idea from a user standpoint. I’ll have to consider that…

That just leaves the per-tag level. Making a PR for Discourse Doc Categories (or making a new plugin/TC) for tags is an option tho, but not actively on my mind. Perhaps in the future.

Actually, this would probably work nicely for my use-case. I’m not sure if it is adaptable enough for it though (will play around with it later this week).

Sounds very interesting. What use case do you have in mind?

To regular users, the category with Private Topics enabled would only display their own topics. So I could see this being one of the few places where letting the Collections plugin hoist a collection from the topics level to the category level per user makes sense.

The forum I’m part of actually has a private category for users to use as a personal drafting/testing ground. And they make alot of topics, so user driven topic organization sometimes happen here.