Merge branch 'fancypodcast' of github.com:schmonz/ikiwiki into fancypodcast

master
Amitai Schlair 2013-02-20 09:21:24 -05:00
commit a25be893e4
9 changed files with 88 additions and 8 deletions

View File

@ -1433,7 +1433,7 @@ sub preprocess ($$$;$$) {
# consider it significant.
my @params;
while ($params =~ m{
(?:([-\w]+)=)? # 1: named parameter key?
(?:([-.\w]+)=)? # 1: named parameter key?
(?:
"""(.*?)""" # 2: triple-quoted value
|
@ -1530,7 +1530,7 @@ sub preprocess ($$$;$$) {
( # 4: the parameters..
\s+ # Must have space if parameters present
(?:
(?:[-\w]+=)? # named parameter key?
(?:[-.\w]+=)? # named parameter key?
(?:
""".*?""" # triple-quoted value
|
@ -1558,7 +1558,7 @@ sub preprocess ($$$;$$) {
\s+
( # 4: the parameters..
(?:
(?:[-\w]+=)? # named parameter key?
(?:[-.\w]+=)? # named parameter key?
(?:
""".*?""" # triple-quoted value
|

6
debian/changelog vendored
View File

@ -1,3 +1,9 @@
ikiwiki (3.20130213) UNRELEASED; urgency=low
* Allow dots in directive parameter names. (tango)
-- Joey Hess <joeyh@debian.org> Fri, 15 Feb 2013 17:23:12 -0400
ikiwiki (3.20130212) unstable; urgency=low
* htmlscrubber: Allow the bitcoin URI scheme.

View File

@ -64,9 +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 by dropping audio files where
they will be picked up like blog posts. This will work for any files that
you would care to syndicate.
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.
## Valid html and [[css]]

View File

@ -0,0 +1,3 @@
I use both [[plugins/moderatedcomments/]] and [[plugins/anonok]] on my [blog](http://feeding.cloud.geek.nz) but having to remember to visit the comment moderation page manually is not ideal.
Is there a way to get an email notification (or maybe even just an RSS feed) whenever a new comment enters the moderation queue?

View File

@ -11,7 +11,8 @@ 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 podcasting.
enclosures, which is useful for simple podcasting; 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

@ -136,6 +136,11 @@ Supported fields:
[[!iki plugins/htmlscrubber desc=htmlscrubber]] plugin is enabled, since it can be used to
insert unsafe content.
* 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.
* redir
Causes the page to redirect to another page in the wiki.

View File

@ -0,0 +1,62 @@
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]]
## Design
7. For each fancy podcast episode, write a blog post containing
`\[[!meta enclosure="WikiLink/to/media.mp3"]]`. (Don't specify
more than one enclosure -- but if you do, last one wins.)
7. When rendering to HTML (single-page or inlined), append a link
to the media file.
7. When rendering to RSS/Atom, the text is the entry's content and
the media file is its enclosure.
7. Don't break simple podcasts in pursuit of fancy podcasts.
## Implementation
[[!template id=gitbranch branch=schmonz/fancypodcast author="[[schmonz]]"]]
### Completed
* Cover the existing simple podcast behavior with tests.
* Add an `enclosure` field to [[plugins/meta]] that expands the
given [[ikiwiki/WikiLink]] to an absolute URL (feed enclosures
pretty much need to be, and the reference feeds I've looked at
all do this).
* Write failing tests for the desired single-page and inlined
HTML behavior, then make them pass by adding enclosure stanzas
to `{,inline}page.tmpl`.
### Must-have (for [[schmonz]], anyway)
* Write failing tests for the desired RSS/Atom behavior, then make
them pass, probably via changes to `{atom,rss}item.tmpl` and
[[plugins/inline]].
* Enrich podcast feed metadata (some of which is iTunes-specific,
though I'm not aware of it causing any problems for other
podcatchers, and in fact some of them may also use it).
* Subscribe to a fancy feed in some common podcatchers and compare
display details against a reference podcast.
* Compare feature-for-feature and feed-for-feed with
[tru_podcast](http://www.rainskit.com/blog/542/tru_podcast-a-podcasting-plugin-for-textpattern),
which is what [[schmonz]] will be migrating from.
* Think carefully about...
* UTF-8.
* Other templates with `CONTENT` and whether they want to learn
about `ENCLOSURE` (maybe `aggregatepost.tmpl`?).
* Whether [[tips/howto avoid flooding aggregators]] suffices for
migrating a fancy podcast into ikiwiki.
* Verify that the feeds validate.
* Verify that _all_ the tests pass (not just my new ones).
### Nice-to-have
* Let the enclosure's MIME type be specified, in case someone ever
needs to disagree with `File::MimeInfo`.
* Extend [[plugins/inline]] to configurably generate additional
subscription links (such as iTunes) alongside the RSS/Atom ones.
* Verify that [[plugins/more]] plays well with fancy podcasts.

View File

@ -0,0 +1 @@
For an internal wiki, we occasionally get patches that link to internal wiki pages using the Markdown link syntax. I'd love to see an optional git hook to detect that and complain.

View File

@ -2,7 +2,7 @@
for all sorts of things. His attempts at contributing:
[[!map
pages="!*/Discussion and ((link(users/schmonz) and plugins/*) or rcs/cvs)"
pages="!*/Discussion and ((link(users/schmonz) and plugins/*) or rcs/cvs or todo/fancypodcast)"
]]
He's also written a plugin for [WIND