RSS support in plane 6

As the project description says this project aims to make a stand alone collective to define RSS feed,
however we already have collectives like collective.ifttt and collective.syndication.

Can I have some more clear picture of what this project actually aims and how is it different from already existing capabilities of plone and associated collectives.

CC: @nileshgulia1 @mikemets @polyester

1 Like

@salty-ivy The idea is to develop a Plone 6 addon. Plone 6 means including volto frontend. I do not have experience with collective.syndication don't know if its even maintained.

This project is actually divided into 2 parts. "Embedding external RSS contents" and "Exposing Plone contents as RSS" . The first one is almost covered by an addon from redturtle which is called volto-rss-block addon. If there is room for improvement Maybe we can improve it directly on its repo itself( GitHub - RedTurtle/volto-rss-block) ?

For the second, we have to develop a "RSS behaviour" for listing pages or the search listing block....that we can provide RSS feed to external users. Still need to decide the best use case.

1 Like

I think a better idea than having a dedicated RSS block would be to enhance the existing listing block to have the concept sources. Currently the listing block only works with queries against the catalog but in theory, anything that supplies a list of json objects with at least a title and a url could be a source.
e.g.

  • RSS feed
  • linked in news feed
  • related items to this current page
  • recommended pages
  • most popular pages coming from GA or momoto

so a volto "source" addon would register itself as a source, provide a UI to configure that source and then the end user can choose which source they want to use for a given listing, and depending on the source, determine which fields to include.

This is essentially have of the idea outlined in PLIP: I can easily switch back and forth a listing/row of teaser styles (repeater block with selectable source and manually added items) · Issue #4478 · plone/volto · GitHub

This would be a lot more flexible than a dedicated RSS block as any variations on the listing items would automatically work for RSS feeds too.

I'm not the mentor for this project but I think this would be great addition to volto if someone proposed this as how to solve embedding RSS feeds.

1 Like

Hey, thanks for the info!

After tinkering around with Plone for a few weeks I eventually understood how to solve both the problem statements: a way for Plone websites to integrate RSS Feeds into them using Volto Blocks, and a way to expose specific filtered Plone contents via Collection as RSS Feed.

However, I wasn't aware that RedTurtle already exists and solves the problem of embedding RSS Blocks within Plone, so my project proposal does include implementing a custom Volto Block for RSS Feeds.

Further, I agree with the idea that we could include the concept of sources in Listing Blocks directly. Correct me if I'm wrong, but using this approach, we would create an add-on that will provide a way to register different sources and a unified interface for configuring them.

To do that, we would maintain a registry of sources, where each source is an object that implements the Source interface right? I think then we can create an object for each source that implements the source interface registers with the add-on.

Also since we would be bodying the listing block to include a source selection on the dropdown in its configuration UI, so what finally happens is that - Auser selects the 'rss' source in the listing block, they would see a configuration UI with a text input for the RSS feed URL and a Save button. When you click the Save button, the feed URL is saved to the source. The listing block would fetch items from the RSS feed and display them. This is it right?

In this approach, wouldn't we have to manually define all configurations for every source that we have defined in the drop-down?

Also, this approach hadn't hit me in the proposal phase, of directly providing various types of Support by modifying the Listing Block to include all sorts of sources that do the bare minimum of supplying a list of JSON objects