diff --git a/IkiWiki.pm b/IkiWiki.pm index 52da3c112..0570c8bc5 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -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 | diff --git a/debian/changelog b/debian/changelog index 81746a137..7905ae6fc 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +ikiwiki (3.20130213) UNRELEASED; urgency=low + + * Allow dots in directive parameter names. (tango) + + -- Joey Hess Fri, 15 Feb 2013 17:23:12 -0400 + ikiwiki (3.20130212) unstable; urgency=low * htmlscrubber: Allow the bitcoin URI scheme. diff --git a/doc/features.mdwn b/doc/features.mdwn index 66f7ecb73..5bbe5ef21 100644 --- a/doc/features.mdwn +++ b/doc/features.mdwn @@ -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]] diff --git a/doc/forum/Email_notifications_for_comment_moderation.mdwn b/doc/forum/Email_notifications_for_comment_moderation.mdwn new file mode 100644 index 000000000..6a840ce53 --- /dev/null +++ b/doc/forum/Email_notifications_for_comment_moderation.mdwn @@ -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? diff --git a/doc/ikiwiki/directive/inline.mdwn b/doc/ikiwiki/directive/inline.mdwn index a9c241afc..c0d4e035b 100644 --- a/doc/ikiwiki/directive/inline.mdwn +++ b/doc/ikiwiki/directive/inline.mdwn @@ -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 diff --git a/doc/ikiwiki/directive/meta.mdwn b/doc/ikiwiki/directive/meta.mdwn index 984f68540..fbbffa575 100644 --- a/doc/ikiwiki/directive/meta.mdwn +++ b/doc/ikiwiki/directive/meta.mdwn @@ -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. diff --git a/doc/todo/fancypodcast.mdwn b/doc/todo/fancypodcast.mdwn new file mode 100644 index 000000000..388df0e24 --- /dev/null +++ b/doc/todo/fancypodcast.mdwn @@ -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. diff --git a/doc/todo/hook_to_detect_markdown_links_to_wiki_pages.mdwn b/doc/todo/hook_to_detect_markdown_links_to_wiki_pages.mdwn new file mode 100644 index 000000000..ad9c7dda4 --- /dev/null +++ b/doc/todo/hook_to_detect_markdown_links_to_wiki_pages.mdwn @@ -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. diff --git a/doc/users/schmonz.mdwn b/doc/users/schmonz.mdwn index fc7558b24..10ca6e6eb 100644 --- a/doc/users/schmonz.mdwn +++ b/doc/users/schmonz.mdwn @@ -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