Document podcasts, from scratch and by migrating.

master
Amitai Schlair 2013-07-21 20:06:12 -04:00
parent b4a41c0595
commit 1414bb94bf
8 changed files with 57 additions and 122 deletions

View File

@ -64,11 +64,11 @@ Ikiwiki can also [[plugins/aggregate]] external blogs, feeding them into
the wiki. This can be used to create a Planet type site that aggregates
interesting feeds.
You can also mix blogging with podcasting. Simply drop media files
where they will be picked up like blog posts. For fuller-featured
podcast feeds, enclose media files in blog posts using [[plugins/meta]].
Either way, this will work for any files that you would care to
syndicate.
You can also mix blogging with [[podcasting|podcast]]. Simply drop
media files where they will be picked up like blog posts. For
fuller-featured podcast feeds, enclose media files in blog posts
using [[plugins/meta]]. Either way, this will work for any files
that you would care to syndicate.
## Valid html and [[css]]

View File

@ -11,8 +11,9 @@ Any pages that match the specified [[PageSpec]] (in the example, any
[[SubPage]] of "blog") will be part of the blog, and the newest 10
of them will appear in the page. Note that if files that are not pages
match the [[PageSpec]], they will be included in the feed using RSS
enclosures, which is useful for simple podcasting; for fuller-featured
podcast feeds, enclose media files in blog posts using [[meta]].
enclosures, which is useful for simple [[podcasting|podcast]]; for
fuller-featured podcast feeds, enclose media files in blog posts
using [[meta]].
The optional `rootpage` parameter tells the wiki that new posts to this
blog should default to being [[SubPages|SubPage]] of "blog", and enables a

View File

@ -139,7 +139,8 @@ Supported fields:
* enclosure
Specifies a link to a file to be rendered as an "enclosure" in
RSS/Atom feeds (and a plain old link in HTML). Useful for podcasting.
RSS/Atom feeds (and a plain old link in HTML). Useful for
[[podcasting|podcast]].
* redir

View File

@ -2,7 +2,8 @@ Ikiwiki is a **wiki compiler**. It converts wiki pages into HTML pages
suitable for publishing on a website. Ikiwiki stores pages and history in a
[[revision_control_system|rcs]] such as [[Subversion|rcs/svn]] or [[rcs/Git]].
There are many other [[features]], including support for
[[blogging|blog]], as well as a large array of [[plugins]].
[[blogging|blog]] and [[podcasting|podcast]], as well as a large
array of [[plugins]].
[[!template id=links]]

18
doc/podcast.mdwn 100644
View File

@ -0,0 +1,18 @@
A podcast is just a [[blog]] with RSS/Atom feeds containing media
enclosures. Once you've made a blog, ikiwiki gives you two ways to
turn it into a podcast.
## Basic podcasting
Put a media file where you'd put a blog post, and your `\[[!inline]]`
directive will include it as a media-only post.
## Fancier podcasting
Put the media file where `\[[!inline]]` _won't_ directly include it.
Write a blog post with `\[[!meta enclosure="WikiLink/to/media.mp3"]]`
and your show notes.
-----
See also [[tips/migrating_podcast_to_ikiwiki]].

View File

@ -0,0 +1,21 @@
[[!toc]]
First, get familiar with [[howto avoid flooding aggregators]].
## Into ikiwiki, from another CMS
7. Copy content into ikiwiki, taking care to:
7. Match article paths to preserve old permalinks.
7. Match enclosure paths (or use redirects) to preserve old URLs.
7. Match titles, post dates, and guids with `\[[!meta]]`.
7. Match feed paths with permanent redirects from old Atom
location to `index.atom` (likewise for RSS).
7. `\[[!inline]]` the articles.
7. Rerun `ikiwiki --setup`.
## Within ikiwiki, from basic to fancy
7. Exclude media files from `\[[!inline]]`.
7. Replace direct `\[[WikiLinks]]` to media files with
`\[[!meta enclosure="WikiLink/to/media.mp3"]]`.
7. Rerun `ikiwiki --setup`.

View File

@ -1,16 +1,9 @@
ikiwiki's simple podcasting, while elegant and minimal, doesn't (as
mentioned in [[todo/blogging]]) produce full-featured feeds. In
fancy podcasts, episodes are accompanied by text content. The feeds
also have lots more metadata.
[[!toc]]
## Status
[[!template id=gitbranch branch=schmonz/fancypodcast author="[[schmonz]]"]]
[[!tag patch]]
Nothing new on the branch since 2013/07/21 merge to `master`.
Nothing new since 2013/07/21 [[merge|done]] to `master`.
## Features
@ -31,107 +24,6 @@ Episode description|(./) |(./) |(./) |
Episode enclosure |(./) |(./) |(./) |(./)
"""]]
## Migration
### Upgrading within ikiwiki: from simple to fancy
#### My test podcast
For this test, I chose a podcast that tries to work around ikiwiki's
current limitations by issuing two separate `inline`s:
* One with `feedonly=yes` that includes `.mdwn`, `.pdf`, and `.mp3`
* One with `feeds=no` that includes only `.mdwn` (and makes a trail)
This has the following effects:
* Browser: sees just the articles (each of which has a manually
created link to its corresponding media file)
* Feedreader: sees all the articles and media in one flat stream
* Podcatcher: sees just the media (sans articles)
I want instead to write one `inline` with these effects:
* Browser: sees just the articles (each of which automatically links
to its enclosure)
* Feedreader: sees just the articles (each of which specifies its
enclosure)
* Podcatcher: sees just the enclosures (each of which has an enclosing
article, rendered as the media's "description")
#### Upgrade steps
7. Set up a non-production copy of the podcast.
7. Visually diff RSS and Atom feeds against production.
7. Subscribe to the copy (both feeds) in `r2e`, iTunes, Downcast.
7. Apply fancypodcast patch to the installed ikiwiki:
7. `cd ~/Documents/trees/ikiwiki && git checkout fancypodcast`
7. `git diff --no-prefix master > ~/Documents/trees/localpatches/www/ikiwiki/fancypodcast.diff`
7. `cd ~/Documents/trees/pkgsrc-current/www/ikiwiki && make deinstall && make install clean`
7. Verify that simple podcasts are unaffected:
7. Rerun `ikiwiki --setup`.
7. `diff -uB simple-before.rss simple-after.rss`
* A few new elements and attributes, as expected.
7. `diff -uB simple-before.atom simple-after.atom`
* No change.
7. Remove the feed-only `inline` and enable feeds on the remaining one.
7. Convert articles' manual download links to `\[[!meta enclosure=""]]`.
7. I want existing and future podcatchers to get my new fancy
episodes, and I know my podcast isn't in any planets, so I'm
going to skip [[tips/howto avoid flooding aggregators]].
7. Rerun `ikiwiki --setup`.
7. Verify browser shows the same stuff.
7. `diff -uB simple-after.rss fancy-after.rss # and atom`
* MP3s and PDFs are no longer naked enclosures, but belong to
articles as they should.
* Articles have updated modification times, as they should.
7. `r2e run` (both RSS and Atom)
* Nothing new with the default `trust-guid = True` (otherwise
would expect updated articles).
7. iTunes "Update Podcast" (both RSS and Atom)
* Added one episode per article, with article text as the episode
description.
* Kept old naked-enclosure episodes around.
7. Downcast refresh (RSS):
* Added one episode per article, with article text as the episode
description.
* Kept old naked-enclosure episodes around.
7. Downcast refresh (Atom):
* Added one episode per article, with no episode description
(expected, see feature table).
* Kept old naked-enclosure episodes around.
Different tradeoffs are possible. These seem okay to me.
### Importing into ikiwiki: fancy (from another CMS)
#### My test podcast
For this test, I chose a podcast currently being published with
Textpattern and tru_podcast, because I'd strongly prefer to publish
it with ikiwiki instead.
#### Upgrade steps
7. Set up a non-production copy of the podcast.
7. Visually diff RSS and Atom feeds against production.
7. Subscribe to the copy (both feeds) in `r2e`, iTunes, Downcast.
7. With a fancypodcast-enabled ikiwiki installed:
7. Copy content from Textpattern to ikiwiki:
7. Match article paths to preserve `/YYYY/MM/DD/post-title` permalinks.
7. Match enclosure paths (or redirect) to preserve Textpattern's URLs.
7. Match titles, post dates, and guids with `\[[!meta]]`.
7. Match feed paths with permanent redirects from `/atom/` to
`/index.atom` (and same for RSS).
7. `\[[!inline]]` the articles.
7. Rerun `ikiwiki --setup`.
7. Stop Textpattern, start ikiwiki.
7. Verify that podcatchers see the feeds and don't redownload anything.
7. Naively add two new blog posts, one with an enclosure.
7. Verify that podcatchers download the new enclosures.
-----
## Future improvements
### iTunes fancy podcasting
@ -177,7 +69,3 @@ it with ikiwiki instead.
* Configurably generate additional subscription links (such as
iTunes) alongside the RSS/Atom ones in [[plugins/inline]].
* Support Apple's "enhanced podcasts" (if they're still relevant).
----
[[merged|done]] --[[Joey]]

View File

@ -1,5 +1,10 @@
# Round 1
ikiwiki's simple podcasting, while elegant and minimal, doesn't (as
mentioned in [[todo/blogging]]) produce full-featured feeds. In
fancy podcasts, episodes are accompanied by text content. The feeds
also have lots more metadata.
## Design
7. For each fancy podcast episode, write a blog post containing