From 186a76ec208bdf55082ead7fe83a7eb16caeba32 Mon Sep 17 00:00:00 2001 From: Giuseppe Bilotta Date: Fri, 9 Nov 2012 11:39:23 +0100 Subject: [PATCH 01/18] Allow dots in parameter key names This allows e.g. the meta command to be used to introduce DublinCore metadata. --- IkiWiki.pm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 | From e2405005e6253e5040ffd305534f2bfc91d1e940 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 15 Feb 2013 17:23:48 -0400 Subject: [PATCH 02/18] changelog --- debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) 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. From 9c6e824b102cbe07dd5d58822d58ea72144d3aec Mon Sep 17 00:00:00 2001 From: "https://openid.fmarier.org/" Date: Sun, 17 Feb 2013 21:45:22 -0400 Subject: [PATCH 03/18] --- doc/forum/Email_notifications_for_comment_moderation.mdwn | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 doc/forum/Email_notifications_for_comment_moderation.mdwn 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..dd997f71d --- /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 [http://feeding.cloud.geek.nz blog] 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? From 5beb9dfa5739602f4bb984665a7189a6a6b156b2 Mon Sep 17 00:00:00 2001 From: "https://openid.fmarier.org/" Date: Sun, 17 Feb 2013 21:46:36 -0400 Subject: [PATCH 04/18] fix blog link --- doc/forum/Email_notifications_for_comment_moderation.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/forum/Email_notifications_for_comment_moderation.mdwn b/doc/forum/Email_notifications_for_comment_moderation.mdwn index dd997f71d..6a840ce53 100644 --- a/doc/forum/Email_notifications_for_comment_moderation.mdwn +++ b/doc/forum/Email_notifications_for_comment_moderation.mdwn @@ -1,3 +1,3 @@ -I use both [[plugins/moderatedcomments/]] and [[plugins/anonok]] on my [http://feeding.cloud.geek.nz blog] but having to remember to visit the comment moderation page manually is not ideal. +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? From 5f1aa006fa45193d792d9c7a42b2d2f5fad0976f Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlQ6H4ouy-sp6-WGQWu6ktA2L59EfE19vg" Date: Mon, 18 Feb 2013 05:25:45 -0400 Subject: [PATCH 05/18] --- doc/lol.mdwn | 1 + 1 file changed, 1 insertion(+) create mode 100644 doc/lol.mdwn diff --git a/doc/lol.mdwn b/doc/lol.mdwn new file mode 100644 index 000000000..1a5518d5c --- /dev/null +++ b/doc/lol.mdwn @@ -0,0 +1 @@ +This is a test lol page. From 9b8a1230ff491ed8db3f336e89ebe69ba42dcfad Mon Sep 17 00:00:00 2001 From: "http://smcv.pseudorandom.co.uk/" Date: Mon, 18 Feb 2013 06:27:52 -0400 Subject: [PATCH 06/18] This reverts commit 5f1aa006fa45193d792d9c7a42b2d2f5fad0976f --- doc/lol.mdwn | 1 - 1 file changed, 1 deletion(-) delete mode 100644 doc/lol.mdwn diff --git a/doc/lol.mdwn b/doc/lol.mdwn deleted file mode 100644 index 1a5518d5c..000000000 --- a/doc/lol.mdwn +++ /dev/null @@ -1 +0,0 @@ -This is a test lol page. From 3ab69aab06b1c2e19dd2ff808865662715f6e01b Mon Sep 17 00:00:00 2001 From: JoshTriplett Date: Tue, 19 Feb 2013 17:43:03 -0400 Subject: [PATCH 07/18] --- doc/todo/hook_to_detect_markdown_links_to_wiki_pages.mdwn | 1 + 1 file changed, 1 insertion(+) create mode 100644 doc/todo/hook_to_detect_markdown_links_to_wiki_pages.mdwn 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. From a31c2d4e0159902beddacb211c12ab2100797a3d Mon Sep 17 00:00:00 2001 From: Amitai Schlair Date: Tue, 19 Feb 2013 20:13:10 -0500 Subject: [PATCH 08/18] Document my fancypodcast WIP. --- doc/todo/fancypodcast.mdwn | 62 ++++++++++++++++++++++++++++++++++++++ doc/users/schmonz.mdwn | 2 +- 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 doc/todo/fancypodcast.mdwn 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/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 From c9c00b7c25321449035aacd38b1914b76212c9cd Mon Sep 17 00:00:00 2001 From: Amitai Schlair Date: Sun, 17 Feb 2013 02:46:31 -0500 Subject: [PATCH 09/18] Add tests for existing podcast behavior. --- t/podcast.t | 56 +++++++++++++++++++++++++++++++++++++++ t/tinypodcast/index.mdwn | 1 + t/tinypodcast/piano.mp3 | Bin 0 -> 80991 bytes t/tinypodcast/scroll.3gp | Bin 0 -> 21590 bytes t/tinypodcast/walter.ogg | Bin 0 -> 28714 bytes 5 files changed, 57 insertions(+) create mode 100755 t/podcast.t create mode 100644 t/tinypodcast/index.mdwn create mode 100644 t/tinypodcast/piano.mp3 create mode 100644 t/tinypodcast/scroll.3gp create mode 100644 t/tinypodcast/walter.ogg diff --git a/t/podcast.t b/t/podcast.t new file mode 100755 index 000000000..50493aff6 --- /dev/null +++ b/t/podcast.t @@ -0,0 +1,56 @@ +#!/usr/bin/perl +use warnings; +use strict; + +BEGIN { + eval q{use XML::Feed}; + if ($@) { + eval q{use Test::More skip_all => "XML::Feed not available"}; + } + else { + eval q{use Test::More tests => 36}; + } +} + +sub simple_podcast { + my $baseurl = 'http://example.com'; + ok(! system("mkdir t/tmp")); + ok(! system("./ikiwiki.out -plugin inline -url=$baseurl -rss -atom -underlaydir=underlays/basewiki -set underlaydirbase=underlays -templatedir=templates t/tinypodcast t/tmp/out")); + + my %media_types = ( + 'piano.mp3' => 'audio/mpeg', + 'scroll.3gp' => 'video/3gpp', + 'walter.ogg' => 'video/x-theora+ogg', + ); + + for my $format (qw(atom rss)) { + my $feed = XML::Feed->parse("t/tmp/out/index.$format"); + + is($feed->title, 'wiki', qq{$format feed title}); + is($feed->link, "$baseurl/", qq{$format feed link}); + is($feed->description, $feed->title, qq{$format feed description}); + if ('atom' eq $format) { + is($feed->author, $feed->title, qq{$format feed author}); + is($feed->id, "$baseurl/", qq{$format feed id}); + is($feed->generator, "ikiwiki", qq{$format feed generator}); + } + + for my $entry ($feed->entries) { + my $title = $entry->title; + my $url = $entry->id; + my $enclosure = $entry->enclosure; + + is($url, "$baseurl/$title", qq{$format $title id}); + is($entry->link, $url, qq{$format $title link}); + is($enclosure->url, $url, qq{$format $title enclosure url}); + is($enclosure->type, $media_types{$title}, qq{$format $title enclosure type}); + # is($enclosure->length, '12345', qq{$format $title enclosure length}); + # creation date + # modification date + } + } + + ok(! system("rm -rf t/tmp t/tinypodcast/.ikiwiki")); +} + +simple_podcast(); diff --git a/t/tinypodcast/index.mdwn b/t/tinypodcast/index.mdwn new file mode 100644 index 000000000..a5c6c9bd8 --- /dev/null +++ b/t/tinypodcast/index.mdwn @@ -0,0 +1 @@ +[[!inline pages="*.3gp or *.mov or *.mp3 or *.ogg" rss=yes atom=yes]] diff --git a/t/tinypodcast/piano.mp3 b/t/tinypodcast/piano.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..3d6b6625ab9b8126e21bffbf58d315cc59d650f2 GIT binary patch literal 80991 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

}sWia6+r&Bg)F>SYghCPk#3D;_RuXB1(9+ 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 literal 0 HcmV?d00001 diff --git a/t/tinypodcast/scroll.3gp b/t/tinypodcast/scroll.3gp new file mode 100644 index 0000000000000000000000000000000000000000..61e69e9da98909feae7d45fc11e0681223f83ed4 GIT binary patch literal 21590 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 literal 0 HcmV?d00001 diff --git a/t/tinypodcast/walter.ogg b/t/tinypodcast/walter.ogg new file mode 100644 index 0000000000000000000000000000000000000000..3eee48cd6a6e7507bda8a39cb8ea5b79e077cd0a GIT binary patch literal 28714 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 aFvWO&ety<)?C(SYz+`HQ0j^u)1aMuvy9J;C literal 0 HcmV?d00001 From 10b6cb6ee5b8b6b81456a5a781216b4b2ec86e52 Mon Sep 17 00:00:00 2001 From: Amitai Schlair Date: Sun, 17 Feb 2013 10:09:05 -0500 Subject: [PATCH 10/18] Wrap a long line. --- t/podcast.t | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/t/podcast.t b/t/podcast.t index 50493aff6..4a5bde6a9 100755 --- a/t/podcast.t +++ b/t/podcast.t @@ -14,8 +14,13 @@ BEGIN { sub simple_podcast { my $baseurl = 'http://example.com'; + my @command = (qw(./ikiwiki.out -plugin inline -rss -atom)); + push @command, qw(-underlaydir=underlays/basewiki); + push @command, qw(-set underlaydirbase=underlays -templatedir=templates); + push @command, "-url=$baseurl", qw(t/tinypodcast t/tmp/out); + ok(! system("mkdir t/tmp")); - ok(! system("./ikiwiki.out -plugin inline -url=$baseurl -rss -atom -underlaydir=underlays/basewiki -set underlaydirbase=underlays -templatedir=templates t/tinypodcast t/tmp/out")); + ok(! system(@command)); my %media_types = ( 'piano.mp3' => 'audio/mpeg', From 86df150fb0d9d0890b14fef545a772379a2f56af Mon Sep 17 00:00:00 2001 From: Amitai Schlair Date: Sun, 17 Feb 2013 10:52:23 -0500 Subject: [PATCH 11/18] Document that podcasts are text XOR enclosure. --- t/podcast.t | 53 ++++++++++++++++++++++++++++++---------- t/tinypodcast/index.mdwn | 2 +- t/tinypodcast/post.mdwn | 1 + 3 files changed, 42 insertions(+), 14 deletions(-) create mode 100644 t/tinypodcast/post.mdwn diff --git a/t/podcast.t b/t/podcast.t index 4a5bde6a9..da91b3446 100755 --- a/t/podcast.t +++ b/t/podcast.t @@ -8,7 +8,7 @@ BEGIN { eval q{use Test::More skip_all => "XML::Feed not available"}; } else { - eval q{use Test::More tests => 36}; + eval q{use Test::More tests => 72}; } } @@ -23,6 +23,7 @@ sub simple_podcast { ok(! system(@command)); my %media_types = ( + 'post' => undef, 'piano.mp3' => 'audio/mpeg', 'scroll.3gp' => 'video/3gpp', 'walter.ogg' => 'video/x-theora+ogg', @@ -31,27 +32,53 @@ sub simple_podcast { for my $format (qw(atom rss)) { my $feed = XML::Feed->parse("t/tmp/out/index.$format"); - is($feed->title, 'wiki', qq{$format feed title}); - is($feed->link, "$baseurl/", qq{$format feed link}); - is($feed->description, $feed->title, qq{$format feed description}); + is($feed->title, 'wiki', + qq{$format feed title}); + is($feed->link, "$baseurl/", + qq{$format feed link}); + is($feed->description, $feed->title, + qq{$format feed description}); if ('atom' eq $format) { - is($feed->author, $feed->title, qq{$format feed author}); - is($feed->id, "$baseurl/", qq{$format feed id}); - is($feed->generator, "ikiwiki", qq{$format feed generator}); + is($feed->author, $feed->title, + qq{$format feed author}); + is($feed->id, "$baseurl/", + qq{$format feed id}); + is($feed->generator, "ikiwiki", + qq{$format feed generator}); } for my $entry ($feed->entries) { my $title = $entry->title; my $url = $entry->id; + my $body = $entry->content->body; my $enclosure = $entry->enclosure; - is($url, "$baseurl/$title", qq{$format $title id}); is($entry->link, $url, qq{$format $title link}); - is($enclosure->url, $url, qq{$format $title enclosure url}); - is($enclosure->type, $media_types{$title}, qq{$format $title enclosure type}); - # is($enclosure->length, '12345', qq{$format $title enclosure length}); - # creation date - # modification date + isnt($entry->issued, undef, + qq{$format $title issued date}); + isnt($entry->modified, undef, + qq{$format $title modified date}); + + if (defined $media_types{$title}) { + is($url, "$baseurl/$title", + qq{$format $title id}); + is($body, undef, + qq{$format $title no body text}); + is($enclosure->url, $url, + qq{$format $title enclosure url}); + is($enclosure->type, $media_types{$title}, + qq{$format $title enclosure type}); + cmp_ok($enclosure->length, '>', 0, + qq{$format $title enclosure length}); + } + else { + is($url, "$baseurl/$title/", + qq{$format $title id}); + isnt($body, undef, + qq{$format $title body text}); + is($enclosure, undef, + qq{$format $title no enclosure}); + } } } diff --git a/t/tinypodcast/index.mdwn b/t/tinypodcast/index.mdwn index a5c6c9bd8..530f7516c 100644 --- a/t/tinypodcast/index.mdwn +++ b/t/tinypodcast/index.mdwn @@ -1 +1 @@ -[[!inline pages="*.3gp or *.mov or *.mp3 or *.ogg" rss=yes atom=yes]] +[[!inline pages="post or *.3gp or *.mov or *.mp3 or *.ogg" rss=yes atom=yes]] diff --git a/t/tinypodcast/post.mdwn b/t/tinypodcast/post.mdwn new file mode 100644 index 000000000..d28ddb524 --- /dev/null +++ b/t/tinypodcast/post.mdwn @@ -0,0 +1 @@ +this article has content but no enclosure From 546da9bac7135d7d1b02dce0c0eef2209d939fc6 Mon Sep 17 00:00:00 2001 From: Amitai Schlair Date: Mon, 18 Feb 2013 16:24:22 -0500 Subject: [PATCH 12/18] Make [[!meta enclosure=foo.mp3]] "work" for HTML. --- IkiWiki/Plugin/meta.pm | 8 +++++ t/podcast.t | 69 ++++++++++++++++++++++++++++++++++---- t/tinypodcast/podcast.mdwn | 3 ++ templates/page.tmpl | 6 ++++ 4 files changed, 79 insertions(+), 7 deletions(-) create mode 100644 t/tinypodcast/podcast.mdwn diff --git a/IkiWiki/Plugin/meta.pm b/IkiWiki/Plugin/meta.pm index 421f1dc86..cb0768b91 100644 --- a/IkiWiki/Plugin/meta.pm +++ b/IkiWiki/Plugin/meta.pm @@ -121,6 +121,9 @@ sub preprocess (@) { add_link($page, $value); return ""; } + elsif ($key eq 'enclosure') { + $pagestate{$page}{meta}{enclosure}=$value; + } elsif ($key eq 'author') { $pagestate{$page}{meta}{author}=$value; if (exists $params{sortas}) { @@ -318,6 +321,11 @@ sub pagetemplate (@) { $template->param(title_overridden => 1); } + if (exists $pagestate{$page}{meta}{enclosure}) { + # XXX what if the enclosure doesn't exist? + $template->param(enclosure => $pagestate{$page}{meta}{enclosure}); + } + foreach my $field (qw{authorurl}) { eval q{use HTML::Entities}; $template->param($field => HTML::Entities::encode_entities($pagestate{$page}{meta}{$field})) diff --git a/t/podcast.t b/t/podcast.t index da91b3446..a50b7ff2a 100755 --- a/t/podcast.t +++ b/t/podcast.t @@ -3,23 +3,27 @@ use warnings; use strict; BEGIN { - eval q{use XML::Feed}; + eval q{use XML::Feed; use HTML::Parser}; if ($@) { - eval q{use Test::More skip_all => "XML::Feed not available"}; + eval q{use Test::More skip_all => + "XML::Feed and/or HTML::Parser not available"}; } else { - eval q{use Test::More tests => 72}; + eval q{use Test::More tests => 77}; } } +my $tmp = 't/tmp'; +my $statedir = 't/tinypodcast/.ikiwiki'; + sub simple_podcast { my $baseurl = 'http://example.com'; my @command = (qw(./ikiwiki.out -plugin inline -rss -atom)); push @command, qw(-underlaydir=underlays/basewiki); push @command, qw(-set underlaydirbase=underlays -templatedir=templates); - push @command, "-url=$baseurl", qw(t/tinypodcast t/tmp/out); + push @command, "-url=$baseurl", qw(t/tinypodcast), "$tmp/out"; - ok(! system("mkdir t/tmp")); + ok(! system("mkdir $tmp")); ok(! system(@command)); my %media_types = ( @@ -30,7 +34,7 @@ sub simple_podcast { ); for my $format (qw(atom rss)) { - my $feed = XML::Feed->parse("t/tmp/out/index.$format"); + my $feed = XML::Feed->parse("$tmp/out/index.$format"); is($feed->title, 'wiki', qq{$format feed title}); @@ -82,7 +86,58 @@ sub simple_podcast { } } - ok(! system("rm -rf t/tmp t/tinypodcast/.ikiwiki")); + ok(! system("rm -rf $tmp $statedir")); +} + +sub single_page_html { + my @command = (qw(./ikiwiki.out)); + push @command, qw(-underlaydir=underlays/basewiki); + push @command, qw(-set underlaydirbase=underlays -templatedir=templates); + push @command, qw(t/tinypodcast), "$tmp/out"; + + ok(! system("mkdir $tmp")); + ok(! system(@command)); + my $html = "$tmp/out/podcast/index.html"; + + my $body = _extract_html_content($html, 'content'); + like($body, qr/article has content and/m, q{html body text}); + + my $enclosure = _extract_html_content($html, 'enclosure'); + like($enclosure, qr/Download this episode/m, q{html enclosure}); + + # XXX die if specified enclosure doesn't exist + # XXX die if more than one enclosure is specified + + ok(! system("rm -rf $tmp $statedir")); +} + +sub _extract_html_content { + my ($file, $desired_id, $desired_tag) = @_; + $desired_tag = 'div' unless defined $desired_tag; + + my $p = HTML::Parser->new(api_version => 3); + my $content = ''; + + $p->handler(start => sub { + my ($tag, $self, $attr) = @_; + return if $tag ne $desired_tag; + return unless exists $attr->{id} && $attr->{id} eq $desired_id; + + $self->handler(text => sub { + my ($dtext) = @_; + $content .= $dtext; + }, "dtext"); + + $self->handler(end => sub { + my ($tag, $self) = @_; + $self->eof if $tag eq $desired_tag; + }, "tagname,self"); + }, "tagname,self,attr"); + + $p->parse_file($file) || die $!; + + return $content; } simple_podcast(); +single_page_html(); diff --git a/t/tinypodcast/podcast.mdwn b/t/tinypodcast/podcast.mdwn new file mode 100644 index 000000000..b02f8dee0 --- /dev/null +++ b/t/tinypodcast/podcast.mdwn @@ -0,0 +1,3 @@ +[[!meta enclosure="piano.mp3"]] + +this article has content _and_ an enclosure! diff --git a/templates/page.tmpl b/templates/page.tmpl index 89b4f3a06..ac6086384 100644 --- a/templates/page.tmpl +++ b/templates/page.tmpl @@ -128,6 +128,12 @@ +

+
From 45d58983d2609b43cba8eb5d086812d6042d76a5 Mon Sep 17 00:00:00 2001 From: Amitai Schlair Date: Mon, 18 Feb 2013 16:48:44 -0500 Subject: [PATCH 13/18] Rename some posts and fix wrong assumptions. --- t/podcast.t | 16 ++++++++-------- t/tinypodcast/index.mdwn | 1 - t/tinypodcast/{podcast.mdwn => pianopost.mdwn} | 0 t/tinypodcast/simple.mdwn | 1 + t/tinypodcast/{post.mdwn => simplepost.mdwn} | 0 5 files changed, 9 insertions(+), 9 deletions(-) delete mode 100644 t/tinypodcast/index.mdwn rename t/tinypodcast/{podcast.mdwn => pianopost.mdwn} (100%) create mode 100644 t/tinypodcast/simple.mdwn rename t/tinypodcast/{post.mdwn => simplepost.mdwn} (100%) diff --git a/t/podcast.t b/t/podcast.t index a50b7ff2a..77f146871 100755 --- a/t/podcast.t +++ b/t/podcast.t @@ -27,25 +27,25 @@ sub simple_podcast { ok(! system(@command)); my %media_types = ( - 'post' => undef, + 'simplepost' => undef, 'piano.mp3' => 'audio/mpeg', 'scroll.3gp' => 'video/3gpp', 'walter.ogg' => 'video/x-theora+ogg', ); for my $format (qw(atom rss)) { - my $feed = XML::Feed->parse("$tmp/out/index.$format"); + my $feed = XML::Feed->parse("$tmp/out/simple/index.$format"); - is($feed->title, 'wiki', + is($feed->title, 'simple', qq{$format feed title}); - is($feed->link, "$baseurl/", + is($feed->link, "$baseurl/simple/", qq{$format feed link}); - is($feed->description, $feed->title, + is($feed->description, 'wiki', qq{$format feed description}); if ('atom' eq $format) { - is($feed->author, $feed->title, + is($feed->author, $feed->description, qq{$format feed author}); - is($feed->id, "$baseurl/", + is($feed->id, $feed->link, qq{$format feed id}); is($feed->generator, "ikiwiki", qq{$format feed generator}); @@ -97,7 +97,7 @@ sub single_page_html { ok(! system("mkdir $tmp")); ok(! system(@command)); - my $html = "$tmp/out/podcast/index.html"; + my $html = "$tmp/out/pianopost/index.html"; my $body = _extract_html_content($html, 'content'); like($body, qr/article has content and/m, q{html body text}); diff --git a/t/tinypodcast/index.mdwn b/t/tinypodcast/index.mdwn deleted file mode 100644 index 530f7516c..000000000 --- a/t/tinypodcast/index.mdwn +++ /dev/null @@ -1 +0,0 @@ -[[!inline pages="post or *.3gp or *.mov or *.mp3 or *.ogg" rss=yes atom=yes]] diff --git a/t/tinypodcast/podcast.mdwn b/t/tinypodcast/pianopost.mdwn similarity index 100% rename from t/tinypodcast/podcast.mdwn rename to t/tinypodcast/pianopost.mdwn diff --git a/t/tinypodcast/simple.mdwn b/t/tinypodcast/simple.mdwn new file mode 100644 index 000000000..02988fa17 --- /dev/null +++ b/t/tinypodcast/simple.mdwn @@ -0,0 +1 @@ +[[!inline pages="simplepost or *.3gp or *.mov or *.mp3 or *.ogg" rss=yes atom=yes]] diff --git a/t/tinypodcast/post.mdwn b/t/tinypodcast/simplepost.mdwn similarity index 100% rename from t/tinypodcast/post.mdwn rename to t/tinypodcast/simplepost.mdwn From 0e278c4a848e0b3ddc0162db9dc135e791bd9477 Mon Sep 17 00:00:00 2001 From: Amitai Schlair Date: Mon, 18 Feb 2013 18:01:13 -0500 Subject: [PATCH 14/18] Make enclosure follow WikiLink LinkingRules. --- IkiWiki/Plugin/meta.pm | 8 +++++++- t/podcast.t | 40 +++++++++++++++++++++++++++++++--------- 2 files changed, 38 insertions(+), 10 deletions(-) diff --git a/IkiWiki/Plugin/meta.pm b/IkiWiki/Plugin/meta.pm index cb0768b91..c77837e3c 100644 --- a/IkiWiki/Plugin/meta.pm +++ b/IkiWiki/Plugin/meta.pm @@ -122,6 +122,13 @@ sub preprocess (@) { return ""; } elsif ($key eq 'enclosure') { + my $link=bestlink($page, $value); + if (! length $link) { + error gettext("enclosure not found") + } + add_depends($page, $link, deptype("presence")); + + $value=urlto($link, $page); $pagestate{$page}{meta}{enclosure}=$value; } elsif ($key eq 'author') { @@ -322,7 +329,6 @@ sub pagetemplate (@) { } if (exists $pagestate{$page}{meta}{enclosure}) { - # XXX what if the enclosure doesn't exist? $template->param(enclosure => $pagestate{$page}{meta}{enclosure}); } diff --git a/t/podcast.t b/t/podcast.t index 77f146871..993814742 100755 --- a/t/podcast.t +++ b/t/podcast.t @@ -3,16 +3,18 @@ use warnings; use strict; BEGIN { - eval q{use XML::Feed; use HTML::Parser}; + eval q{use XML::Feed; use HTML::Parser; use HTML::LinkExtor}; if ($@) { eval q{use Test::More skip_all => "XML::Feed and/or HTML::Parser not available"}; } else { - eval q{use Test::More tests => 77}; + eval q{use Test::More tests => 78}; } } +use Cwd; + my $tmp = 't/tmp'; my $statedir = 't/tinypodcast/.ikiwiki'; @@ -23,8 +25,8 @@ sub simple_podcast { push @command, qw(-set underlaydirbase=underlays -templatedir=templates); push @command, "-url=$baseurl", qw(t/tinypodcast), "$tmp/out"; - ok(! system("mkdir $tmp")); - ok(! system(@command)); + ok(! system("mkdir $tmp"), q{setup}); + ok(! system(@command), q{build}); my %media_types = ( 'simplepost' => undef, @@ -86,7 +88,7 @@ sub simple_podcast { } } - ok(! system("rm -rf $tmp $statedir")); + ok(! system("rm -rf $tmp $statedir"), q{teardown}); } sub single_page_html { @@ -95,8 +97,9 @@ sub single_page_html { push @command, qw(-set underlaydirbase=underlays -templatedir=templates); push @command, qw(t/tinypodcast), "$tmp/out"; - ok(! system("mkdir $tmp")); - ok(! system(@command)); + ok(! system("mkdir $tmp"), q{setup}); + ok(! system(@command), q{build}); + my $html = "$tmp/out/pianopost/index.html"; my $body = _extract_html_content($html, 'content'); @@ -105,10 +108,12 @@ sub single_page_html { my $enclosure = _extract_html_content($html, 'enclosure'); like($enclosure, qr/Download this episode/m, q{html enclosure}); - # XXX die if specified enclosure doesn't exist + my ($href) = _extract_html_links($html, 'piano'); + ok(-f $href, q{html enclosure exists}); + # XXX die if more than one enclosure is specified - ok(! system("rm -rf $tmp $statedir")); + ok(! system("rm -rf $tmp $statedir"), q{teardown}); } sub _extract_html_content { @@ -139,5 +144,22 @@ sub _extract_html_content { return $content; } +sub _extract_html_links { + my ($file, $desired_value) = @_; + + my @hrefs = (); + + my $p = HTML::LinkExtor->new(sub { + my ($tag, %attr) = @_; + return if $tag ne 'a'; + return unless $attr{href} =~ qr/$desired_value/; + push(@hrefs, values %attr); + }, getcwd() . '/' . $file); + + $p->parse_file($file); + + return @hrefs; +} + simple_podcast(); single_page_html(); From c3b17740aed9e7f2697999163e1a1c4f84b6ef8f Mon Sep 17 00:00:00 2001 From: Amitai Schlair Date: Mon, 18 Feb 2013 18:19:45 -0500 Subject: [PATCH 15/18] Document that last enclosure wins. --- IkiWiki/Plugin/meta.pm | 1 + t/podcast.t | 37 ++++++++++++------- .../attempted_multiple_enclosures.mdwn | 4 ++ 3 files changed, 28 insertions(+), 14 deletions(-) create mode 100644 t/tinypodcast/attempted_multiple_enclosures.mdwn diff --git a/IkiWiki/Plugin/meta.pm b/IkiWiki/Plugin/meta.pm index c77837e3c..70233decf 100644 --- a/IkiWiki/Plugin/meta.pm +++ b/IkiWiki/Plugin/meta.pm @@ -130,6 +130,7 @@ sub preprocess (@) { $value=urlto($link, $page); $pagestate{$page}{meta}{enclosure}=$value; + # fallthrough } elsif ($key eq 'author') { $pagestate{$page}{meta}{author}=$value; diff --git a/t/podcast.t b/t/podcast.t index 993814742..3125a7e55 100755 --- a/t/podcast.t +++ b/t/podcast.t @@ -9,7 +9,7 @@ BEGIN { "XML::Feed and/or HTML::Parser not available"}; } else { - eval q{use Test::More tests => 78}; + eval q{use Test::More tests => 81}; } } @@ -25,8 +25,10 @@ sub simple_podcast { push @command, qw(-set underlaydirbase=underlays -templatedir=templates); push @command, "-url=$baseurl", qw(t/tinypodcast), "$tmp/out"; - ok(! system("mkdir $tmp"), q{setup}); - ok(! system(@command), q{build}); + ok(! system("mkdir $tmp"), + q{setup}); + ok(! system(@command), + q{build}); my %media_types = ( 'simplepost' => undef, @@ -97,21 +99,28 @@ sub single_page_html { push @command, qw(-set underlaydirbase=underlays -templatedir=templates); push @command, qw(t/tinypodcast), "$tmp/out"; - ok(! system("mkdir $tmp"), q{setup}); - ok(! system(@command), q{build}); + ok(! system("mkdir $tmp"), + q{setup}); + ok(! system(@command), + q{build}); my $html = "$tmp/out/pianopost/index.html"; - - my $body = _extract_html_content($html, 'content'); - like($body, qr/article has content and/m, q{html body text}); - - my $enclosure = _extract_html_content($html, 'enclosure'); - like($enclosure, qr/Download this episode/m, q{html enclosure}); - + like(_extract_html_content($html, 'content'), qr/has content and/m, + q{html body text}); + like(_extract_html_content($html, 'enclosure'), qr/this episode/m, + q{html enclosure}); my ($href) = _extract_html_links($html, 'piano'); - ok(-f $href, q{html enclosure exists}); + ok(-f $href, + q{html enclosure exists}); - # XXX die if more than one enclosure is specified + $html = "$tmp/out/attempted_multiple_enclosures/index.html"; + like(_extract_html_content($html, 'content'), qr/has content and/m, + q{html body text}); + like(_extract_html_content($html, 'enclosure'), qr/this episode/m, + q{html enclosure}); + ($href) = _extract_html_links($html, 'walter'); + ok(-f $href, + q{html enclosure exists}); ok(! system("rm -rf $tmp $statedir"), q{teardown}); } diff --git a/t/tinypodcast/attempted_multiple_enclosures.mdwn b/t/tinypodcast/attempted_multiple_enclosures.mdwn new file mode 100644 index 000000000..ea7bae8d0 --- /dev/null +++ b/t/tinypodcast/attempted_multiple_enclosures.mdwn @@ -0,0 +1,4 @@ +[[!meta enclosure="piano.mp3" enclosure="scroll.3gp"]] +[[!meta enclosure="walter.ogg"]] + +this article has content _and_ only one enclosure! From d27c587ec9e7ff179cef42d68a6079282ef1fca9 Mon Sep 17 00:00:00 2001 From: Amitai Schlair Date: Mon, 18 Feb 2013 19:14:31 -0500 Subject: [PATCH 16/18] Let tests determine whether feeds get made. --- t/tinypodcast/simple.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/t/tinypodcast/simple.mdwn b/t/tinypodcast/simple.mdwn index 02988fa17..052369780 100644 --- a/t/tinypodcast/simple.mdwn +++ b/t/tinypodcast/simple.mdwn @@ -1 +1 @@ -[[!inline pages="simplepost or *.3gp or *.mov or *.mp3 or *.ogg" rss=yes atom=yes]] +[[!inline pages="simplepost or *.3gp or *.mov or *.mp3 or *.ogg"]] From a7a68417d0b0dd9499afb593c21cf1b5cda02ab3 Mon Sep 17 00:00:00 2001 From: Amitai Schlair Date: Mon, 18 Feb 2013 19:34:20 -0500 Subject: [PATCH 17/18] When inlining HTML pages, render enclosures. --- t/podcast.t | 38 ++++++++++++++++++++++++++++++++------ t/tinypodcast/fancy.mdwn | 1 + templates/inlinepage.tmpl | 6 ++++++ 3 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 t/tinypodcast/fancy.mdwn diff --git a/t/podcast.t b/t/podcast.t index 3125a7e55..235c2e768 100755 --- a/t/podcast.t +++ b/t/podcast.t @@ -9,7 +9,7 @@ BEGIN { "XML::Feed and/or HTML::Parser not available"}; } else { - eval q{use Test::More tests => 81}; + eval q{use Test::More tests => 89}; } } @@ -125,6 +125,36 @@ sub single_page_html { ok(! system("rm -rf $tmp $statedir"), q{teardown}); } +sub inlined_pages_html { + my @command = (qw(./ikiwiki.out -plugin inline)); + push @command, qw(-underlaydir=underlays/basewiki); + push @command, qw(-set underlaydirbase=underlays -templatedir=templates); + push @command, qw(t/tinypodcast), "$tmp/out"; + + ok(! system("mkdir $tmp"), + q{setup}); + ok(! system(@command), + q{build}); + + my $html = "$tmp/out/fancy/index.html"; + my $contents = _extract_html_content($html, 'content'); + like($contents, qr/has content and an/m, + q{html body text from pianopost}); + like($contents, qr/has content and only one/m, + q{html body text from attempted_multiple_enclosures}); + my $enclosures = _extract_html_content($html, 'inlineenclosure'); + like($enclosures, qr/this episode/m, + q{html enclosure}); + my ($href) = _extract_html_links($html, 'piano.mp3'); + ok(-f $href, + q{html enclosure from pianopost exists}); + ($href) = _extract_html_links($html, 'walter.ogg'); + ok(-f $href, + q{html enclosure from attempted_multiple_enclosures exists}); + + ok(! system("rm -rf $tmp $statedir"), q{teardown}); +} + sub _extract_html_content { my ($file, $desired_id, $desired_tag) = @_; $desired_tag = 'div' unless defined $desired_tag; @@ -141,11 +171,6 @@ sub _extract_html_content { my ($dtext) = @_; $content .= $dtext; }, "dtext"); - - $self->handler(end => sub { - my ($tag, $self) = @_; - $self->eof if $tag eq $desired_tag; - }, "tagname,self"); }, "tagname,self,attr"); $p->parse_file($file) || die $!; @@ -172,3 +197,4 @@ sub _extract_html_links { simple_podcast(); single_page_html(); +inlined_pages_html(); diff --git a/t/tinypodcast/fancy.mdwn b/t/tinypodcast/fancy.mdwn new file mode 100644 index 000000000..290f4c2fd --- /dev/null +++ b/t/tinypodcast/fancy.mdwn @@ -0,0 +1 @@ +[[!inline pages="pianopost or attempted_multiple_enclosures"]] diff --git a/templates/inlinepage.tmpl b/templates/inlinepage.tmpl index b0b53d041..cf0b6037e 100644 --- a/templates/inlinepage.tmpl +++ b/templates/inlinepage.tmpl @@ -23,6 +23,12 @@
+
+