aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmitai Schlair <schmonz-web-ikiwiki@schmonz.com>2013-07-21 20:06:12 -0400
committerAmitai Schlair <schmonz-web-ikiwiki@schmonz.com>2013-07-21 20:06:12 -0400
commit1414bb94bfbcc7ba485c258225ec92e1e81c43b2 (patch)
treeed028fa7ddf5f2210ce12f5b95d81ede5dca738e
parentb4a41c0595c83a33760ed6d19cac651cbd19c956 (diff)
downloadikiwiki-1414bb94bfbcc7ba485c258225ec92e1e81c43b2.tar
ikiwiki-1414bb94bfbcc7ba485c258225ec92e1e81c43b2.tar.gz
Document podcasts, from scratch and by migrating.
-rw-r--r--doc/features.mdwn10
-rw-r--r--doc/ikiwiki/directive/inline.mdwn5
-rw-r--r--doc/ikiwiki/directive/meta.mdwn3
-rw-r--r--doc/index.mdwn3
-rw-r--r--doc/podcast.mdwn18
-rw-r--r--doc/tips/migrating_podcast_to_ikiwiki.mdwn21
-rw-r--r--doc/todo/fancypodcast.mdwn114
-rw-r--r--doc/todo/fancypodcast/discussion.mdwn5
8 files changed, 57 insertions, 122 deletions
diff --git a/doc/features.mdwn b/doc/features.mdwn
index 5bbe5ef21..61b23bb59 100644
--- a/doc/features.mdwn
+++ b/doc/features.mdwn
@@ -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]]
diff --git a/doc/ikiwiki/directive/inline.mdwn b/doc/ikiwiki/directive/inline.mdwn
index c0d4e035b..c6c401b53 100644
--- a/doc/ikiwiki/directive/inline.mdwn
+++ b/doc/ikiwiki/directive/inline.mdwn
@@ -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
diff --git a/doc/ikiwiki/directive/meta.mdwn b/doc/ikiwiki/directive/meta.mdwn
index fbbffa575..4cb02c597 100644
--- a/doc/ikiwiki/directive/meta.mdwn
+++ b/doc/ikiwiki/directive/meta.mdwn
@@ -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
diff --git a/doc/index.mdwn b/doc/index.mdwn
index 4c22ce0e0..89802c604 100644
--- a/doc/index.mdwn
+++ b/doc/index.mdwn
@@ -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]]
diff --git a/doc/podcast.mdwn b/doc/podcast.mdwn
new file mode 100644
index 000000000..67eb793a7
--- /dev/null
+++ b/doc/podcast.mdwn
@@ -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]].
diff --git a/doc/tips/migrating_podcast_to_ikiwiki.mdwn b/doc/tips/migrating_podcast_to_ikiwiki.mdwn
new file mode 100644
index 000000000..ac460ea8d
--- /dev/null
+++ b/doc/tips/migrating_podcast_to_ikiwiki.mdwn
@@ -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`.
diff --git a/doc/todo/fancypodcast.mdwn b/doc/todo/fancypodcast.mdwn
index bff509325..179d76961 100644
--- a/doc/todo/fancypodcast.mdwn
+++ b/doc/todo/fancypodcast.mdwn
@@ -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]]
diff --git a/doc/todo/fancypodcast/discussion.mdwn b/doc/todo/fancypodcast/discussion.mdwn
index bb225f89c..bffc532c9 100644
--- a/doc/todo/fancypodcast/discussion.mdwn
+++ b/doc/todo/fancypodcast/discussion.mdwn
@@ -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