Search by

cecil / theme-podcast

aligny

Cecil component theme: Podcast

Package info

github.com/Cecilapp/theme-podcast

Language:Twig

Type:cecil-theme

pkg:composer/cecil/theme-podcast

Fund package maintenance!

ArnaudLigny

Open Collective

Statistics

Installs: 950

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

2.2.0 2026-10-10 20:30 UTC

README

The Podcast component theme for Cecil provide templates to publish an audio show on the web:

  1. a RSS output for the episodes section (with a style sheet)
  2. a HTML audio player with resume feature and Media Session API support

Demo

Installation

composer require cecil/theme-podcast

Or download the latest archive and uncompress its content in themes/podcast.

Usage

Add podcast in the theme section of your config.yml:

theme:
  - podcast

Add podcast configuration details in your config.yml:

podcast:
  owner:
    name: Cecil               # optional, defaults to `author.name` (or `author`), then `title`
    email: contact@cecil.app  # optional, defaults to `author.email`
  image: cover.png            # square image (1400x1400 to 3000x3000), defaults to the theme's cover.png
  author: Cecil               # optional, defaults to owner name
  categories:                 # https://podcasters.apple.com/support/1691-apple-podcasts-categories
    - Technology
  type: episodic              # optional, "episodic" (default) or "serial"
  explicit: false             # optional, `true` or `false` (default)
  block: false                # optional, `true` to hide the show from podcast directories
  newfeedurl: ""              # optional, the URL of the new feed in case of hosting change
  player:
    links:
      download: false         # display a "Download file" link under the player
      open: false             # display a "Play in new window" link under the player

Enable the RSS output of the episodes section (by default Cecil only generates HTML and Atom for sections):

output:
  pagetypeformats:
    section: [html, rss]

Or only for the episodes section, in the front matter of pages/episodes/index.md: output: [html, rss].

The feed is available at /episodes/rss.xml, with a style sheet to display it nicely in browsers.

Add a Markdown file in episodes section with data (in the front matter) and description:

1.md:

---
title: "Episode X"
date: YYYY-MM-DD
episode:
  file: episode-X.mp3 # MP3 file in `assets/`
  image: episode-X.png # optional
  season: 0       # optional
  number: X       # optional
  type: full      # optional, "full", "trailer" or "bonus"
  explicit: false # optional
  block: false    # optional
---
Description and notes of the episode.

Add the HTML player to your episode's template:

{% include 'partials/audioplayer.html.twig' %}

The player resumes playback where the listener left off, updates the page title with the current time, and supports the media keys/lock screen controls (seek, previous and next episodes). Add #autoplay to an episode URL to start playing automatically.

Internationalization

The theme is translated in French (translations/messages.fr.yml). You can override or add translations in your site's translations/ directory.

Demo

The demo/ folder contains a bilingual website using the theme. To run it locally:

curl -LO https://cecil.app/cecil.phar
php demo/link.php # links the repository as `demo/themes/podcast`
php cecil.phar serve demo

License

Podcast is a free software distributed under the terms of the MIT license.