#1065 Introduce Software Freedom Podcast: episodes as HTML and RSS

Merged
max.mehl merged 29 commits from podcast into master 5 days ago
max.mehl commented 1 month ago

This PR introduces podcasts to our website. The FSFE plans to release podcast episodes regularly. The audio files are to be hosted on download.fsfe.org, while the RSS feed which one can subscribe to in podcast apps, as well as an index of episodes shall be displayed on fsfe.org.

Description

In order to do so, I have created a new directory /news/podcast. It contains one XHTML file per podcast which contains normal text but also an XML tag <podcast> in which important metadata is stored.

The RSS template podcast.rss.xsl is responsible for generating the .rss file people then can subscribe to. It is copied from newsletter.xsl.xsl but contains some special fields and some general improvements.

On the website, each released podcast episode will be displayed on /news/podcast as well as on /news and the index page.

We want to have two audio formats: OGG and MP3.

Problems / missing features

At the moment, the RSS feed works fine, but we lack a few features that are crucial for the release:

  • We need two different RSS files: one for OGG, one for MP3. This could happen in makerules.sh. One run creates podcast.en.rss just as now, another should create something like podcast-ogg.en.rss (we can also name both explicitely). The XSL template can be convinced to use the meta data for OGG by changing the line <xsl:param name="audioformat" select="'mp3'" /> in `podcast.rss.xsl.
  • It would be nice to have a tag we could use to directly display a player in the episode’s HTML, e.g. <audio-player />. It should read the meta data of the respective episode and output a snippet containing an HTML audio tag with the two URLs like here.
  • It would be nice to have each episode being displayed as a normal news item in the /news/news.en.rss RSS feed. But that’s optional.

Your help would be very appreciated!

Develop

To see the RSS file locally, you can of course run the full build. However, this will take a while. For example:

build/build_main.sh --statusdir ~/Repositories/fsfe/fsfe-local-build/status/ build_into ~/Repositories/fsfe/fsfe-local-build/fsfe.org/

You can also directly generate the RSS file for immediate testing:

build/build_main.sh --statusdir ~/Repositories/fsfe/fsfe-local-build/status process_file ~/Repositories/fsfe/fsfe-website/news/podcast.en.xhtml ~/Repositories/fsfe/fsfe-website/news/podcast.rss.xsl > ~/Repositories/fsfe/fsfe-local-build/fsfe.org/news/podcast.en.rss

If no item/episode is displayed, run make before these commands. This will reconsider the source files.

This PR introduces podcasts to our website. The FSFE plans to release podcast episodes regularly. The audio files are to be hosted on download.fsfe.org, while the RSS feed which one can subscribe to in podcast apps, as well as an index of episodes shall be displayed on fsfe.org. ## Description In order to do so, I have created a new directory `/news/podcast`. It contains one XHTML file per podcast which contains normal text but also an XML tag `<podcast>` in which important metadata is stored. The RSS template `podcast.rss.xsl` is responsible for generating the .rss file people then can subscribe to. It is copied from newsletter.xsl.xsl but contains some special fields and some general improvements. On the website, each released podcast episode will be displayed on `/news/podcast` as well as on `/news` and the index page. We want to have two audio formats: OGG and MP3. ## Problems / missing features At the moment, the RSS feed works fine, but we lack a few features that are crucial for the release: - [x] We need two different RSS files: one for OGG, one for MP3. This could happen in [makerules.sh](https://git.fsfe.org/FSFE/fsfe-website/src/branch/master/build/makerules.sh#L125). One run creates podcast.en.rss just as now, another should create something like podcast-ogg.en.rss (we can also name both explicitely). The XSL template can be convinced to use the meta data for OGG by changing the line `<xsl:param name="audioformat" select="'mp3'" />` in `podcast.rss.xsl. - [x] It would be nice to have a tag we could use to directly display a player in the episode's HTML, e.g. `<audio-player />`. It should read the meta data of the respective episode and output a snippet containing an HTML audio tag with the two URLs like [here](https://www.w3schools.com/html/html5_audio.asp). - [x] It would be nice to have each episode being displayed as a normal news item in the `/news/news.en.rss` RSS feed. But that's optional. Your help would be very appreciated! ## Develop To see the RSS file locally, you can of course run the full build. However, this will take a while. For example: ```sh build/build_main.sh --statusdir ~/Repositories/fsfe/fsfe-local-build/status/ build_into ~/Repositories/fsfe/fsfe-local-build/fsfe.org/ ``` You can also directly generate the RSS file for immediate testing: ```sh build/build_main.sh --statusdir ~/Repositories/fsfe/fsfe-local-build/status process_file ~/Repositories/fsfe/fsfe-website/news/podcast.en.xhtml ~/Repositories/fsfe/fsfe-website/news/podcast.rss.xsl > ~/Repositories/fsfe/fsfe-local-build/fsfe.org/news/podcast.en.rss ``` If no item/episode is displayed, run `make` before these commands. This will reconsider the source files.
max.mehl added the
help wanted
label 1 month ago
max.mehl added the
xsl
label 1 month ago
max.mehl added the
build
label 1 month ago
max.mehl changed title from Display podcast episodes as HTML and RSS to WIP: Display podcast episodes as HTML and RSS 1 month ago
mweimann commented 1 month ago
Collaborator

I could have a look at the audio player element later.

I could have a look at the audio player element later.
mweimann commented 1 month ago
Collaborator

It would be nice to have a tag we could use to directly display a player in the episode’s HTML, e.g. . It should read the meta data of the respective episode and output a snippet containing an HTML audio tag with the two URLs like here.

I tried hard - but I can’t wrap my head around the XSL madness build system :disappointed:

I want to learn that. So maybe you have some time for a remote session to explain it to me @max.mehl ?

> It would be nice to have a tag we could use to directly display a player in the episode’s HTML, e.g. <audio-player />. It should read the meta data of the respective episode and output a snippet containing an HTML audio tag with the two URLs like here. I tried hard - but I can't wrap my head around the XSL madness build system :disappointed: I want to learn that. So maybe you have some time for a remote session to explain it to me @max.mehl ?
max.mehl commented 1 month ago
Owner

I solved the audio-player tag now thanks to @reinhard’s help. But @mweimann, I’d love to explain that to you as well in a session!

I solved the audio-player tag now thanks to @reinhard's help. But @mweimann, I'd love to explain that to you as well in a session!
max.mehl commented 4 weeks ago
Owner

All missing features solved! Now I’ll concentrate on makings things prettier, but the most important and complicated stuff is solved.

Thanks to everyone who helped!

All missing features solved! Now I'll concentrate on makings things prettier, but the most important and complicated stuff is solved. Thanks to everyone who helped!
max.mehl changed title from WIP: Display podcast episodes as HTML and RSS to Display podcast episodes as HTML and RSS 5 days ago
max.mehl changed title from Display podcast episodes as HTML and RSS to Introduce Software Freedom Podcast: episodes as HTML and RSS 5 days ago
The pull request has been merged.
Sign in to join this conversation.
Loading…
Cancel
Save
There is no content yet.