linkeddata / dokieli

:bulb: dokieli is a clientside editor for decentralised article publishing, annotations and social interactions
https://dokie.li/
Other
788 stars 81 forks source link

Support RSS #373

Closed NoelDeMartin closed 5 months ago

NoelDeMartin commented 6 months ago

Given that the idea is to write blog posts with this application (or at least that's the use case I saw in https://csarven.ca/archives/articles), it would be nice to offer an RSS feed.

I'm not sure if that can even work for a frontend only application (I'm not even sure if Dokieli is only frontend even), but I tried to save an article to read later in my RSS reading app (feedly) and it work, so I guess there shouldn't be a problem with using the same approach for an RSS feed.

csarven commented 6 months ago

Thanks for the issue. I am interested in this as well.

A couple of clarifications here for now -- will make sure to cover this better in https://dokie.li/docs

Blogpost is only one kind of a document type that dokieli can be used for authoring and publishing. (In the Edit mode, "Document Type" selection is offers some common types ... this is used to adapt the interface/features) image

dokieli is entirely client-side... "frontend only", works as a single-page application or browser extension, and if I understand correctly, a zero-data? application. dokieli does not require a particular kind of server (beyond conforming to HTTP, HTML,.. and some concrete RDF syntaxes). It also does not require or expect to do pre/post-process the data in any way.

At the moment, there is no interface to have an overview of multiple documents. A CMS-like approach was considered in the past but wasn't priority to implement. However, that feature/capability has always been on the table and there is some experimentation on it already.

I mention these things because of how RSS/Atom feeds can be factored in. This was also discussed in the past. It could part of a set of features that needs to use/manage multiple documents. My website's archives/articles is perhaps not a good example because that particular document was originally server-side generated (based on a PHP-based system that I no longer use), and nowadays I maintain that document as a stand-alone. My website still has RSS/Atom feeds but they are outdated now and I was hoping to have dokieli help me to construct them.

I'm not sure what would be the best UI for this but perhaps one way would be the have dokieli crawl the containment hierarchy to get a list of contained resources, and then offer to create/update an RSS/Atom feed at a specified location. The user should have the opportunity to (de-)select resources for the RSS/Atom feed.

Are you interested in working on this?

I'm curious to know which article you've saved and that it worked in your RSS reading app.

NoelDeMartin commented 6 months ago

Are you interested in working on this?

At the moment I already have a lot going on in my own projects, so I don't think I'd be able to dedicate any time to contribute here, sorry.

But I searched on the repo and noticed that nobody had mentioned anything about RSS, so I opened an issue so that at least some people find this if they have the same question :).

I'm curious to know which article you've saved and that it worked in your RSS reading app.

This one: https://csarven.ca/self-review-chairing

I know that some services (like Google's crawler) actually run front-end code nowadays, but it's not a guarantee. I made a GET request to that article and I did get the html, so that explains why it works for the reader I'm using.

csarven commented 5 months ago

This was a fun feature to implement. It is now deployed.

Here is a crude 10s screencast on how it works:

dokieli-generate-feed

The simple flow is that user indicates where they want to create the web feed and selects resources they want to include in the feed.

Some other details:

Technically, access to any container will work. It doesn't have to be one's own storage. By default the resource browser loads one's storage or outbox but that can be changed - same functionality as in the "save as" feature.

dokieli fetches all the selected resources, runs it through an RDF parser to get some data for the feed, e.g., title, description, authors(s), license, dates, etc. Puts the feed at specified location (using corresponding media type.)

Thanks for raising this feature Noel. It was a good way for me to upgrade remaining parts of my old website (and /rss and /atom are now up to date on my site). Have fun generating custom feeds, breaking things... and bug reports / code contributions most welcome.