Merge remote branch 'smcv/ready/transient-autoindex'
authorJoey Hess <joey@kitenet.net>
Wed, 9 Feb 2011 18:00:59 +0000 (14:00 -0400)
committerJoey Hess <joey@kitenet.net>
Wed, 9 Feb 2011 18:00:59 +0000 (14:00 -0400)
59 files changed:
IkiWiki.pm
IkiWiki/Plugin/aggregate.pm
IkiWiki/Plugin/blogspam.pm
IkiWiki/Plugin/comments.pm
IkiWiki/Plugin/editpage.pm
IkiWiki/Plugin/htmltidy.pm
IkiWiki/Plugin/inline.pm
IkiWiki/Plugin/po.pm
IkiWiki/Plugin/transient.pm
debian/changelog
doc/branches.mdwn
doc/bugs.mdwn
doc/bugs/External_link:_underscore_conversion.mdwn [new file with mode: 0644]
doc/bugs/HTML_for_parentlinks_makes_theming_hard.mdwn
doc/bugs/Pages_with_non-ascii_characters_like_öäå_in_name_not_found_directly_after_commit.mdwn
doc/bugs/both_inline_and_comment_create_elements_id__61__feedlink.mdwn [new file with mode: 0644]
doc/bugs/creating_page_from_comment_creates_a_comment.mdwn [new file with mode: 0644]
doc/bugs/default__95__pageext_not_working.mdwn
doc/bugs/enumerations_of_dates_not_formatted_correctly.mdwn
doc/bugs/maps_with_nested_directories_sometimes_make_ugly_lists.mdwn [new file with mode: 0644]
doc/bugs/po:_might_not_add_translated_versions_of_all_underlays.mdwn
doc/bugs/preview_base_url_should_be_absolute.mdwn
doc/download.mdwn
doc/examples/blog/posts/sec_post.mdwn [new file with mode: 0644]
doc/forum/Can_custom_themes_live_somewhere_inside_srcdir__63__.mdwn [new file with mode: 0644]
doc/forum/Can_custom_themes_live_somewhere_inside_srcdir__63__/comment_1_d1e79825dfb5213d2d1cba2ace1707b1._comment [new file with mode: 0644]
doc/forum/Can_custom_themes_live_somewhere_inside_srcdir__63__/comment_2_8177ede5a586b1a573a13fd26f8d3cc0._comment [new file with mode: 0644]
doc/forum/Debian_5.0.7:_Can__39__t_locate_IkiWiki__47__Setup__47__Automator.pm.mdwn [new file with mode: 0644]
doc/forum/Debian_5.0.7:_Can__39__t_locate_IkiWiki__47__Setup__47__Automator.pm/comment_1_aec4bf4ca7d04d580d2fa83fd3f7166f._comment [new file with mode: 0644]
doc/forum/Debian_5.0.7:_Can__39__t_locate_IkiWiki__47__Setup__47__Automator.pm/comment_4_c682ebb0e8e72088a8f92356dc31ef37._comment [new file with mode: 0644]
doc/forum/How_to_specify_repository_is_on_a_remote_host__63__.mdwn [new file with mode: 0644]
doc/forum/How_to_specify_repository_is_on_a_remote_host__63__/comment_1_0c71e17ae552cbab1056ac96fbd36c59._comment [new file with mode: 0644]
doc/forum/How_to_specify_repository_is_on_a_remote_host__63__/comment_2_b309302a084fbd8bcd4cd9bd2509cf5a._comment [new file with mode: 0644]
doc/forum/Possible_to_use_meta_variables_in_templates__63__.mdwn [new file with mode: 0644]
doc/forum/Possible_to_use_meta_variables_in_templates__63__/comment_1_556078a24041289d8f0b7ee756664690._comment [new file with mode: 0644]
doc/forum/Possible_to_use_meta_variables_in_templates__63__/comment_2_e7e954218d39bc310015b95aa1a5212c._comment [new file with mode: 0644]
doc/forum/Possible_to_use_meta_variables_in_templates__63__/comment_3_8b16c563c89eb6980ad6a5539d934d7a._comment [new file with mode: 0644]
doc/forum/Possible_to_use_meta_variables_in_templates__63__/comment_4_76eadf93cce4e2168960131d4677c5fc._comment [new file with mode: 0644]
doc/forum/Possible_to_use_meta_variables_in_templates__63__/comment_5_ddabe4a005042d19c7669038b49275c1._comment [new file with mode: 0644]
doc/git.mdwn
doc/ikiwiki/directive/meta.mdwn
doc/ikiwikiusers.mdwn
doc/news/version_3.20101129.mdwn [deleted file]
doc/news/version_3.20101201.mdwn [deleted file]
doc/news/version_3.20110123.mdwn [new file with mode: 0644]
doc/news/version_3.20110124.mdwn [new file with mode: 0644]
doc/plugins/blogspam.mdwn
doc/plugins/theme/discussion.mdwn
doc/rcs/git.mdwn
doc/reviewed.mdwn [new file with mode: 0644]
doc/setup.mdwn
doc/todo/configurable_markdown_path.mdwn
doc/todo/credentials_page.mdwn [new file with mode: 0644]
doc/todo/feed_enhancements_for_inline_pages.mdwn
doc/todo/inline_raw_files.mdwn
doc/users/adamshand.mdwn
ikiwiki.spec
po/ikiwiki.pot
t/tag.t

index 799236f35fc2e26cbbfa8a84abb711b53bffc809..7d1f5c401f3daf6f6eeb7726a46e2f36fa1a7356 100644 (file)
@@ -810,17 +810,23 @@ sub srcfile ($;$) {
        return (srcfile_stat(@_))[0];
 }
 
-sub add_underlay ($) {
+sub add_literal_underlay ($) {
        my $dir=shift;
 
-       if ($dir !~ /^\//) {
-               $dir="$config{underlaydirbase}/$dir";
-       }
-
        if (! grep { $_ eq $dir } @{$config{underlaydirs}}) {
                unshift @{$config{underlaydirs}}, $dir;
        }
+}
+
+sub add_underlay ($) {
+       my $dir = shift;
+
+       if ($dir !~ /^\//) {
+               $dir="$config{underlaydirbase}/$dir";
+       }
 
+       add_literal_underlay($dir);
+       # why does it return 1? we just don't know
        return 1;
 }
 
index 59185e97ffdd43eb283fbbf2d454cbbb40b3d894..419b40fdb115e221b18876ef11aa6252b6501f21 100644 (file)
@@ -162,10 +162,14 @@ sub migrate_to_internal {
                
                $config{aggregateinternal} = 0;
                my $oldname = "$config{srcdir}/".htmlfn($data->{page});
+               if (! -e $oldname) {
+                       $oldname = $IkiWiki::Plugin::transient::transientdir."/".htmlfn($data->{page});
+               }
+
                my $oldoutput = $config{destdir}."/".IkiWiki::htmlpage($data->{page});
                
                $config{aggregateinternal} = 1;
-               my $newname = "$config{srcdir}/".htmlfn($data->{page});
+               my $newname = $IkiWiki::Plugin::transient::transientdir."/".htmlfn($data->{page});
                
                debug "moving $oldname -> $newname";
                if (-e $newname) {
@@ -385,13 +389,16 @@ sub garbage_collect () {
        foreach my $guid (values %guids) {
                # any guid whose feed is gone should be removed
                if (! exists $feeds{$guid->{feed}}) {
-                       unlink "$config{srcdir}/".htmlfn($guid->{page})
-                               if exists $guid->{page};
+                       if (exists $guid->{page}) {
+                               unlink $IkiWiki::Plugin::transient::transientdir."/".htmlfn($guid->{page})
+                                       || unlink "$config{srcdir}/".htmlfn($guid->{page});
+                       }
                        delete $guids{$guid->{guid}};
                }
                # handle expired guids
                elsif ($guid->{expired} && exists $guid->{page}) {
                        unlink "$config{srcdir}/".htmlfn($guid->{page});
+                       unlink $IkiWiki::Plugin::transient::transientdir."/".htmlfn($guid->{page});
                        delete $guid->{page};
                        delete $guid->{md5};
                }
@@ -611,6 +618,7 @@ sub add_page (@) {
                }
                my $c="";
                while (exists $IkiWiki::pagecase{lc $page.$c} ||
+                      -e $IkiWiki::Plugin::transient::transientdir."/".htmlfn($page.$c) ||
                       -e "$config{srcdir}/".htmlfn($page.$c)) {
                        $c++
                }
@@ -622,6 +630,8 @@ sub add_page (@) {
                        $c="";
                        $page=$feed->{dir}."/item";
                        while (exists $IkiWiki::pagecase{lc $page.$c} ||
+                             -e $IkiWiki::Plugin::transient::transientdir."/".htmlfn($page.$c) ||
+
                               -e "$config{srcdir}/".htmlfn($page.$c)) {
                                $c++
                        }
@@ -664,13 +674,14 @@ sub add_page (@) {
        if (ref $feed->{tags}) {
                $template->param(tags => [map { tag => $_ }, @{$feed->{tags}}]);
        }
-       writefile(htmlfn($guid->{page}), $config{srcdir},
-               $template->output);
+       writefile(htmlfn($guid->{page}),
+               $IkiWiki::Plugin::transient::transientdir, $template->output);
 
        if (defined $mtime && $mtime <= time) {
                # Set the mtime, this lets the build process get the right
                # creation time on record for the new page.
-               utime $mtime, $mtime, "$config{srcdir}/".htmlfn($guid->{page});
+               utime $mtime, $mtime,
+                       $IkiWiki::Plugin::transient::transientdir."/".htmlfn($guid->{page});
                # Store it in pagectime for expiry code to use also.
                $IkiWiki::pagectime{$guid->{page}}=$mtime
                        unless exists $IkiWiki::pagectime{$guid->{page}};
index f0b6cb2a2742519a2796bce8a863500f34d0d5f0..d32c2f169d643a7db9e9fffc292201a4bf93276e 100644 (file)
@@ -61,12 +61,18 @@ sub checkcontent (@) {
        my %params=@_;
        my $session=$params{session};
        
-       if (exists $config{blogspam_pagespec}) {
-               return undef
-                       if ! pagespec_match($params{page}, $config{blogspam_pagespec},
-                               location => $params{page});
+       my $spec='!admin()';
+       if (exists $config{blogspam_pagespec} &&
+           length $config{blogspam_pagespec}) {
+               $spec.=" and (".$config{blogspam_pagespec}.")";
        }
 
+       my $user=$session->param("name");
+       return undef unless pagespec_match($params{page}, $spec,
+               (defined $user ? (user => $user) : ()),
+               (defined $session->remote_addr() ? (ip => $session->remote_addr()) : ()),
+               location => $params{page});
+
        my $url=$defaulturl;
        $url = $config{blogspam_server} if exists $config{blogspam_server};
 
index d9183970d8b1525c34a69a68dcec57fa88eaf58e..6691dbafa2e0b0f74055992331b2d899616fd85b 100644 (file)
@@ -365,7 +365,7 @@ sub editcomment ($$) {
 
        # The untaint is OK (as in editpage) because we're about to pass
        # it to file_pruned and wiki_file_regexp anyway.
-       my $page = $form->field('page')=~/$config{wiki_file_regexp}/;
+       my ($page) = $form->field('page')=~/$config{wiki_file_regexp}/;
        $page = IkiWiki::possibly_foolish_untaint($page);
        if (! defined $page || ! length $page ||
                IkiWiki::file_pruned($page)) {
index 8c78e853cfc188927a4c1c225dca7a1267fdc7b4..3d094c263196a7738295f81c8995ce365c5ce091 100644 (file)
@@ -91,12 +91,15 @@ sub cgi_editpage ($$) {
        # This untaint is safe because we check file_pruned and
        # wiki_file_regexp.
        my ($page)=$form->field('page')=~/$config{wiki_file_regexp}/;
-       if (! defined $page || ! length $page ||
-           file_pruned($page)) {
+       if (! defined $page) {
                error(gettext("bad page name"));
        }
        $page=possibly_foolish_untaint($page);
        my $absolute=($page =~ s#^/+##); # absolute name used to force location
+       if (! defined $page || ! length $page ||
+           file_pruned($page)) {
+               error(gettext("bad page name"));
+       }
 
        my $baseurl = urlto($page);
 
@@ -128,7 +131,8 @@ sub cgi_editpage ($$) {
                        # favor the type of linking page
                        $type=pagetype($pagesources{$from});
                }
-               $type=$config{default_pageext} unless defined $type;
+               $type=$config{default_pageext}
+                       if ! defined $type || $type=~/^_/; # not internal type
                $file=newpagefile($page, $type);
                if (! $form->submitted) {
                        $form->field(name => "rcsinfo", value => "", force => 1);
index 1108aeb894e658a35eff011975c1c0b50d14a439..da77e60f1cb6198278e87897522fd74b553f95e9 100644 (file)
@@ -41,6 +41,8 @@ sub checkconfig () {
 sub sanitize (@) {
        my %params=@_;
 
+       return $params{content} unless defined $config{htmltidy};
+
        my $pid;
        my $sigpipe=0;
        $SIG{PIPE}=sub { $sigpipe=1 };
index d89e14197f4edfd1e1db5a137e1b6c8584e97eb0..28507720403f4da7940b2a55d2a72ad357d58664 100644 (file)
@@ -294,11 +294,11 @@ sub preprocess_inline (@) {
        if ($feeds) {
                if ($rss) {
                        $rssurl=abs2rel($feedbase."rss".$feednum, dirname(htmlpage($params{destpage})));
-                       $rssdesc = gettext("%s (RSS feed)", $desc);
+                       $rssdesc = sprintf(gettext("%s (RSS feed)"), $desc);
                }
                if ($atom) {
                        $atomurl=abs2rel($feedbase."atom".$feednum, dirname(htmlpage($params{destpage})));
-                       $atomdesc = gettext("%s (Atom feed)", $desc);
+                       $atomdesc = sprintf(gettext("%s (Atom feed)"), $desc);
                }
        }
 
index 9ed4a1adb8352f5bb91eb25a424d9cc5f1e1e212..4f8d5036e198b4c0eac2f290156c411907190b87 100644 (file)
@@ -38,7 +38,8 @@ memoize("percenttranslated");
 
 sub import {
        hook(type => "getsetup", id => "po", call => \&getsetup);
-       hook(type => "checkconfig", id => "po", call => \&checkconfig);
+       hook(type => "checkconfig", id => "po", call => \&checkconfig,
+               last => 1);
        hook(type => "needsbuild", id => "po", call => \&needsbuild);
        hook(type => "scan", id => "po", call => \&scan, last => 1);
        hook(type => "filter", id => "po", call => \&filter);
index c482b8552f78efbe218b71de14bf21cf97a6cd2c..9811aa010e3d31672dd930596082f83d69d7a02c 100644 (file)
@@ -25,10 +25,10 @@ sub getsetup () {
 our $transientdir;
 
 sub checkconfig () {
-       eval q{use Cwd 'abs_path'};
-       error($@) if $@;
-       $transientdir = abs_path($config{wikistatedir})."/transient";
-       add_underlay($transientdir);
+       $transientdir = $config{wikistatedir}."/transient";
+       # add_underlay treats relative underlays as relative to the installed
+       # location, not the cwd. That's not what we want here.
+       IkiWiki::add_literal_underlay($transientdir);
 }
 
 sub change (@) {
index 5eb530531ede181d7ea4ba7667c71472cefa9455..87a280ed038aed378b490624f96011703d0ad8ec 100644 (file)
@@ -1,8 +1,26 @@
-ikiwiki (3.20110123) UNRELEASED; urgency=low
+ikiwiki (3.20110125) UNRELEASED; urgency=low
+
+  * editpage: Avoid inheriting internal page types.
+  * htmltidy: Avoid breaking the sidebar when websetup is running.
+
+ -- Joey Hess <joeyh@debian.org>  Tue, 01 Feb 2011 21:00:57 -0400
+
+ikiwiki (3.20110124) unstable; urgency=low
+
+  * comments: Fix commenting, broken by security fix.
+  * blogspam: Don't check modifications from admins for spam, and also
+    allow the blogspam_pagespec to do other matches against who the user is.
+  * inline: Fix regression in feed titles. Closes: #610878
+    (Thanks, Paul Wise)
+
+ -- Joey Hess <joeyh@debian.org>  Mon, 24 Jan 2011 17:07:44 -0400
+
+ikiwiki (3.20110123) unstable; urgency=low
 
   * Adapt autoindex test suite to work with old Test::More.
+  * Fix posting by blog form, broken by last release.
 
- -- Joey Hess <joeyh@debian.org>  Sat, 22 Jan 2011 11:00:37 -0400
+ -- Joey Hess <joeyh@debian.org>  Sun, 23 Jan 2011 10:12:33 -0400
 
 ikiwiki (3.20110122) unstable; urgency=medium
 
index 4accc21cabc9e0ec3b9570abd63327a87a5aabb7..5149d79f94695f9f20b396185b2e66aa3621f8d5 100644 (file)
@@ -4,6 +4,9 @@ example when submitting a [[patch]], you can use the
 
        \[[!template id=gitbranch branch=yourrepo/amazingbranch author="\[[yourname]]"]]
 
+Branches that have been [[reviewed]] and need work will not be listed
+here.
+
 Branches referred to in open [[bugs]] and [[todo]]:
 
 [[!inline pages="(todo/* or bugs/*) and link(/branches) and !link(bugs/done)
index f634b6e78a904b6d9ab0e2ecb70db818ef2ef423..f16a4f8e111d6078360d6342f471ad09f92c9539 100644 (file)
@@ -3,6 +3,10 @@ elsewhere. Link items to [[bugs/done]] when done.
 
 Also see the [Debian bugs](http://bugs.debian.org/ikiwiki).
 
+There are [[!pagecount pages="bugs/* and !bugs/done and !bugs/discussion and 
+!link(patch) and !link(bugs/done) and !bugs/*/*"
+feedpages="created_after(bugs/no_commit_mails_for_new_pages)"]] "open" bugs:
+
 [[!inline pages="bugs/* and !bugs/done and !bugs/discussion and 
 !link(patch) and !link(bugs/done) and !bugs/*/*"
 feedpages="created_after(bugs/no_commit_mails_for_new_pages)"
diff --git a/doc/bugs/External_link:_underscore_conversion.mdwn b/doc/bugs/External_link:_underscore_conversion.mdwn
new file mode 100644 (file)
index 0000000..e99a706
--- /dev/null
@@ -0,0 +1,21 @@
+Hi,
+
+found one strange thing here:
+
+If i enter a link like this
+
+     [#Wikipedia:Mollison]: <http://www.tagari.com/bills_journal>
+
+the underscore appears like this (i inserted a space in the undercore-string to make it 'visible'):
+
+    <a href="http://www.tagari.com/billsb14a7b8059d9c05 5954c92674ce60032journal">http://www.tagari.com/billsb14a7b8059d9c05 5954c92674ce60032journal</a>
+
+Am i doing something wrong?
+
+Thanks for your support and best wishes,
+Tobias.
+
+> I believe you're hitting some kind of Markdown-processing but (so not
+> strictly Ikiwiki related). Could you provide a minimal page source
+> exhibiting the problem, and mention the exact nature of the processor
+> you use? (Markdown, MultiMarkdown, pandoc, ...) --GB
index 0cbef403d72369f4a1ad1a739d332068d8300440..bc934d109629e1df585467454b3272cf8d4608ab 100644 (file)
@@ -39,7 +39,7 @@ I understand the logic behind doing this (on the front page it is the title as w
 I'll just modify the templates for my own site but I thought I'd report it as a bug in the hopes that it will be useful to others.
 
 Cheers,  
-Adam.
+[[AdamShand]].
 
 ----
 > I just noticed that it's also different on the comments, preferences and edit pages.  I'll come up with a diff and see what you guys think.  -- Adam.
index e7cb43bee7b700cd8a3a09d354438756ab2b226a..8fb09f9d62b80e1a7e1698ab15ee63aba4b1b7c2 100644 (file)
@@ -7,4 +7,139 @@ Happens also after editing the page. Here's an example:
  * page name displayed in 404: http://mcfrisk.kapsi.fi/skiing/posts/Iso-Sy%F6te%20Freeride%202011%20Teaser.html?updated
  * page name in the blog feed: http://mcfrisk.kapsi.fi/skiing/posts/Iso-Sy%C3%B6te%20Freeride%202011%20Teaser.html
 
-Difference is in the word Iso-Syöte. Pehaps also the browsers is part of the game, I use Iceweasel from Debian unstable with default settings.
+Difference is in the word Iso-Syöte. Pehaps also the browsers is part of
+the game, I use Iceweasel from Debian unstable with default settings.
+
+> I remember seeing this problem twice before, and both times it was caused
+> by a bug in the *web server* configuration. I think at least one case it was
+> due to an apache rewrite rule that did a redirect and mangled the correct
+> encoding.
+> 
+> I recommend you check there. If you cannot find the problem with your web
+> server, I recommend you get a http protocol dump while saving the page,
+> and post it here for analysis. You could use tcpdump, or one of the
+> browser plugins that allows examining the http protocol. --[[Joey]]
+
+Server runs Debian 5.0.8 but I don't have access to the Apache configs. Here's the tcp stream from wireshark without cookie data, page name is testiä.html. I guess page name is in utf-8 but in redirect after post it is given to browser with 8859-1.
+
+       POST /ikiwiki.cgi HTTP/1.1
+       Host: mcfrisk.kapsi.fi
+       User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.16) Gecko/20110107 Iceweasel/3.5.16 (like Firefox/3.5.16)
+       Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
+       Accept-Language: en-us,en;q=0.5
+       Accept-Encoding: gzip,deflate
+       Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+       Keep-Alive: 300
+       Connection: keep-alive
+       Referer: http://mcfrisk.kapsi.fi/ikiwiki.cgi
+       Cookie: XXXX
+       Content-Type: multipart/form-data; boundary=---------------------------138059850619952014921977844406
+       Content-Length: 1456
+
+       -----------------------------138059850619952014921977844406
+       Content-Disposition: form-data; name="_submitted"
+
+       2
+       -----------------------------138059850619952014921977844406
+       Content-Disposition: form-data; name="do"
+
+       edit
+       -----------------------------138059850619952014921977844406
+       Content-Disposition: form-data; name="sid"
+
+       93c956725705aa0bbdff98e57efb28f4
+       -----------------------------138059850619952014921977844406
+       Content-Disposition: form-data; name="from"
+
+
+       -----------------------------138059850619952014921977844406
+       Content-Disposition: form-data; name="rcsinfo"
+
+       5419fbf402e685643ca965d577dff3dafdd0fde9
+       -----------------------------138059850619952014921977844406
+       Content-Disposition: form-data; name="page"
+
+       testi..
+       -----------------------------138059850619952014921977844406
+       Content-Disposition: form-data; name="type"
+
+       mdwn
+       -----------------------------138059850619952014921977844406
+       Content-Disposition: form-data; name="editcontent"
+
+       test
+       -----------------------------138059850619952014921977844406
+       Content-Disposition: form-data; name="editmessage"
+
+
+       -----------------------------138059850619952014921977844406
+       Content-Disposition: form-data; name="_submit"
+
+       Save Page
+       -----------------------------138059850619952014921977844406
+       Content-Disposition: form-data; name="attachment"; filename=""
+       Content-Type: application/octet-stream
+
+
+       -----------------------------138059850619952014921977844406--
+       HTTP/1.1 302 Found
+       Date: Wed, 02 Feb 2011 19:45:49 GMT
+       Server: Apache/2.2
+       Location: /testi%E4.html?updated
+       Content-Length: 0
+       Keep-Alive: timeout=5, max=500
+       Connection: Keep-Alive
+       Content-Type: text/plain
+
+       GET /testi%E4.html?updated HTTP/1.1
+       Host: mcfrisk.kapsi.fi
+       User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.16) Gecko/20110107 Iceweasel/3.5.16 (like Firefox/3.5.16)
+       Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
+       Accept-Language: en-us,en;q=0.5
+       Accept-Encoding: gzip,deflate
+       Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+       Keep-Alive: 300
+       Connection: keep-alive
+       Referer: http://mcfrisk.kapsi.fi/ikiwiki.cgi
+       Cookie: XXXX
+
+       HTTP/1.1 404 Not Found
+       Date: Wed, 02 Feb 2011 19:45:55 GMT
+       Server: Apache/2.2
+       Content-Length: 279
+       Keep-Alive: timeout=5, max=499
+       Connection: Keep-Alive
+       Content-Type: text/html; charset=iso-8859-1
+
+       <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+       <html><head>
+       <title>404 Not Found</title>
+       </head><body>
+       <h1>Not Found</h1>
+       <p>The requested URL /testi..html was not found on this server.</p>
+       <hr>
+       <address>Apache/2.2 Server at mcfrisk.kapsi.fi Port 80</address>
+       </body></html>
+
+Getting the pages has worked every time:
+
+       GET /testi%C3%A4.html HTTP/1.1
+       Host: mcfrisk.kapsi.fi
+       User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.16) Gecko/20110107 Iceweasel/3.5.16 (like Firefox/3.5.16)
+       Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
+       Accept-Language: en-us,en;q=0.5
+       Accept-Encoding: gzip,deflate
+       Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
+       Keep-Alive: 300
+       Connection: keep-alive
+       Cookie: XXXX
+       If-Modified-Since: Wed, 02 Feb 2011 19:45:54 GMT
+       If-None-Match: "1b518d-7c0-49b51e5a55c5f"
+       Cache-Control: max-age=0
+
+       HTTP/1.1 304 Not Modified
+       Date: Wed, 02 Feb 2011 20:01:43 GMT
+       Server: Apache/2.2
+       Connection: Keep-Alive
+       Keep-Alive: timeout=5, max=500
+       ETag: "1b518d-7c0-49b51e5a55c5f"
diff --git a/doc/bugs/both_inline_and_comment_create_elements_id__61__feedlink.mdwn b/doc/bugs/both_inline_and_comment_create_elements_id__61__feedlink.mdwn
new file mode 100644 (file)
index 0000000..170f381
--- /dev/null
@@ -0,0 +1,15 @@
+The [[plugins/inline]] and [[plugins/comments]] plugins both generate feed links.
+
+In both cases, the generated markup include an element with `id="feedlink"`.
+
+[XHTML 1.0 Strict](http://www.w3.org/TR/xhtml1/#h-4.10) (Ikiwiki's default output type) forbids multiple elements with the same ID:
+
+> In XML, fragment identifiers are of type ID, and there can only be a single attribute of type ID per element. Therefore, in XHTML 1.0 the id attribute is defined to be of type ID. In order to ensure that XHTML 1.0 documents are well-structured XML documents, XHTML 1.0 documents MUST use the id attribute when defining fragment identifiers on the elements listed above. See the HTML Compatibility Guidelines for information on ensuring such anchors are backward compatible when serving XHTML documents as media type text/html.
+
+As does [W3C's HTML5](http://www.w3.org/TR/html5/elements.html#the-id-attribute).
+
+Any page with both a comments feed and an inline feed will be invalid XHTML 1.0 Strict or HTML 5.
+
+-- [[Jon]]
+
+> [[news/version_3.2011012]] suggests this is fixed for `inline`, at least, I will test to see if it is cleared up for comments too. -- [[Jon]]
diff --git a/doc/bugs/creating_page_from_comment_creates_a_comment.mdwn b/doc/bugs/creating_page_from_comment_creates_a_comment.mdwn
new file mode 100644 (file)
index 0000000..0eff756
--- /dev/null
@@ -0,0 +1,9 @@
+If a comment contains a WikiLink, for a page that doesn't exist, and the
+user clicks on the edit link, and creates the page, it will itself be saved
+as a comment, with "._comment" extension.
+
+This is very surprising and wrong behavior. The page editor tries to
+preserve the linking page's format type, but it shouldn't do so if the page
+is an internal page. --[[Joey]] 
+
+[[done]] --[[Joey]] 
index c34491cf57dbd8c3cccb2f057a54769de6f221a9..b7064206f9d0af4061b77ebcfa11c32bf24cab96 100644 (file)
@@ -5,3 +5,12 @@ I tried to set it as 'txt' and as a custom plugin I am developing but when I edi
 Yes I am only trying to set it to loaded and working plugins. 
 
 ikiwiki version 3.20101129
+
+> I've tested `default_pageext` with 3.20110124, and it works fine.
+> 
+> It seems to me from what you describe that you expect
+> it to have an effect when you go and edit an existing page.
+> That's not what it's for, it only chooses the default used 
+> when creating a new page. 
+> 
+> Closing this bug as apparent user error. --[[Joey]] [[done]]
index 4a78ea3f93a2c8f3c3a756ee39f8f87c03ee6c24..263ddd78b05d4858dc42f39cf9b8da234d5c71e5 100644 (file)
@@ -9,3 +9,35 @@ Testcase:
 * 27. March
 * 99. November
 * 42. April
+
+> That's a consequence of Markdown syntax. The syntax for ordered lists
+> (HTML `<ol>`) in Markdown is to use arbitrary numeric prefixes in that style,
+> so your text gets parsed as:
+>
+>     <ul>
+>         <li>
+>             <ol>
+>                 <li>January</li>
+>             </ol>
+>         </li>
+>         ...
+>
+> You can avoid that interpretation by escaping the dot with a backslash
+> (`1\. January`) like so:
+>
+> * 1\. January
+> * 27\. March
+>
+> or by writing "1st January" and so on. --[[smcv]]
+
+>> I think that this is a bug in Text::Markdown (and probably other
+>> versions of markdown). The [markdown spec)(http://daringfireball.net/projects/markdown/syntax.text),
+>> though unmaintained and bitrotted into near illegibility, seems to say
+>> that list items can only be preceeded by whitespace:
+>> 
+>>> "List markers typically start at the left margin, but may be indented by
+>>> up to three spaces."
+>> 
+>> So "* * * 1. 2. 3." should not be parsed as a deeply nested list.
+>> 
+>> Forwarded to [upsteam RT](https://rt.cpan.org/Ticket/Display.html?id=65116). [[done]] --[[Joey]]
diff --git a/doc/bugs/maps_with_nested_directories_sometimes_make_ugly_lists.mdwn b/doc/bugs/maps_with_nested_directories_sometimes_make_ugly_lists.mdwn
new file mode 100644 (file)
index 0000000..f66e2c0
--- /dev/null
@@ -0,0 +1,60 @@
+I'm using the [[map_directive|ikiwiki/directive/map]] to build dynamic navigation menus, and it's working really nicely!
+
+However on some pages, each nested item each get wrapped in a full set of `<ul>` tags.  This doesn't actually hurt anything, but it's does it inconsistently which seems like a bug.  I don't like it because it puts extra vertical spacing into my menu bar.
+
+Here's what I expect it to look like:
+
+    <div class="map">
+    <ul> 
+        <li><span class="selflink">Archives</span>
+            <ul>
+                <li><a href="./2010/" class="mapitem">2010</a></li>
+                <li><a href="./2011/" class="mapitem">2011</a></li>
+            </ul>
+        </li>
+    </ul>
+    </div>
+
+And here's what it's actually doing:
+
+    <div class="map">
+    <ul> 
+        <li><span class="selflink">Archives</span>
+            <ul>
+                <li><a href="./2010/" class="mapitem">2010</a></li>
+            </ul>
+            <ul>
+                <li><a href="./2011/" class="mapitem">2011</a></li>
+            </ul>
+        </li>
+    </ul>
+    </div>
+
+I've tried to replicate the problem on this site and cannot, I'm not sure if that's because of exactly how I'm using map or if there's something different with my site.  I just upgraded ikiwiki to the latest Debian unstable as well as most of the required Perl modules and nothing changed.  
+
+If you look at [this page on my site](http://adam.shand.net/ikidev/archives/) (getsource is enabled) you can see it working as expected in the main page and not working in the side bar. 
+
+But it also doesn't work on the sitemap page: <http://adam.shand.net/ikidev/site/map/>
+
+This might be really simple, but I've been staring at it too long and it only looks like a bug to me. :-(   Any suggestions would be gratefully accepted. -- [[AdamShand]]
+
+> Okay, I think I've figured this out, it looks like ikiwiki behaves differently depending on the level of heirarchy.  I'll post the details once I'm sure.  -- [[AdamShand]]
+
+>> I managed to replicate the issue on my ikiwiki, and I believe it is a
+>> bug. The current upstream logic for going up/down by a level opens
+>> (and closes) the unnecessary lists that you are seeing. Although the
+>> resulting markup is semantically correct, it has superflous stuff
+>> that introduces whitespace issues at the very least.
+
+>> I have a [[patch]] up [on my git repo](http://git.oblomov.eu/ikiwiki/patch/55fa11e8a5fb351f9371533c758d8bd3eb9de245)
+>> that ought to fix the issue.
+
+>>> Wonderful, thank you very much for the help!  I've installed the patch and it's working great, but it looks like there a minor bug.  Sometimes it doesn't print the top/first map item.  Cheers, -- [[AdamShand]]
+>>>
+>>> <http://adam.shand.net/tmp/map-orig.jpg>   
+>>> <http://adam.shand.net/tmp/map-patched.jpg>   
+
+>>>> Thanks for testing. I managed to reproduce it and I adjusted the logic.
+>>>> An updated [[patch]] can be found [here](http://git.oblomov.eu/ikiwiki/patch/dcfb18b7989a9912ed9489f5ff15f871b6d8c24a)
+
+>>>>> Seems to work perfectly to me, thanks! -- [[AdamShand]]
index 66d16bf234b656f0bde0b6ada8c2d1da61d13a72..82aed400d83608e2c86f3f8691b8dc3b179ea3c3 100644 (file)
@@ -6,5 +6,11 @@ of underlays added by a plugin that comes after it in `$config{add_plugins}`;
 for instance, if you have `add_plugins => qw(po smiley)`, you'll probably
 not get the translated versions of `smileys.mdwn`. (I haven't tested this.)
 
+> It doesn't happen because smiley adds the underlay unconditionally on 
+> import. Which is really more usual.
+
 To see them all, `po` should use `last => 1` when registering the hook.
 --[[smcv]]
+
+> At least all that don't last their hooks too! But, added, since
+> it will make the problem much less likely to occur. --[[Joey]] [[done]]
index f865f03ae13e598967d6c320b8aba9d02916cfc4..f160a84c4ed06b59c675814298e966a9ce5a8a7e 100644 (file)
@@ -47,3 +47,7 @@ So, I'm seriously thinking about reverting the part of
 [[todo/want_to_avoid_ikiwiki_using_http_or_https_in_urls_to_allow_serving_both]]
 that made `baseurl(undef)` relative. 
 And I suppose, re-opening that todo. :( --[[Joey]]
+
+----
+
+This was fixed in version 3.20110105 [[done]] --[[Joey]]
index 92c8a4f759810ee7f5a02b41900f9f884947a28b..f1ae5ad31451ef4c967f8655c9bcad9d61221821 100644 (file)
@@ -13,7 +13,7 @@ Manual installation steps and requirements are listed on the [[install]] page.
 
 ## Debian / Ubuntu packages
 
-To install with apt, if using Debian or Ubuntu:
+To install with [apt](http://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_basic_package_management_operations), if using Debian or Ubuntu:
 
         apt-get install ikiwiki
 
diff --git a/doc/examples/blog/posts/sec_post.mdwn b/doc/examples/blog/posts/sec_post.mdwn
new file mode 100644 (file)
index 0000000..98a7c96
--- /dev/null
@@ -0,0 +1 @@
+Hi there..
diff --git a/doc/forum/Can_custom_themes_live_somewhere_inside_srcdir__63__.mdwn b/doc/forum/Can_custom_themes_live_somewhere_inside_srcdir__63__.mdwn
new file mode 100644 (file)
index 0000000..a07c31c
--- /dev/null
@@ -0,0 +1,8 @@
+Do custom [[themes]] have to live outside of the wiki (eg. `/usr/share/ikiwiki/themes/`) or is there a way for them to live inside of the wiki srcdir?  
+
+I haven't been able to find a way so for now I'm just using a symlink, but that's a bit ugly.
+
+I ask because I do most of my ikiwiki work on my laptop and then push changes to my server.  It's not a big deal but it's annoying to have to sync the themes separately and it seems like something which should be able to live inside the wiki like templates.
+
+Cheers,  
+[[AdamShand]]
diff --git a/doc/forum/Can_custom_themes_live_somewhere_inside_srcdir__63__/comment_1_d1e79825dfb5213d2d1cba2ace1707b1._comment b/doc/forum/Can_custom_themes_live_somewhere_inside_srcdir__63__/comment_1_d1e79825dfb5213d2d1cba2ace1707b1._comment
new file mode 100644 (file)
index 0000000..027127b
--- /dev/null
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="http://smcv.pseudorandom.co.uk/"
+ nickname="smcv"
+ subject="comment 1"
+ date="2011-01-29T18:17:40Z"
+ content="""
+The theme plugin is just a shortcut for adding an underlay with a style.css and maybe some images. If you want to base your design on a modified theme, copy the theme's style.css (or part of it) to the local.css in your wiki's repository; you can also copy in the images and disable the theme plugin entirely.
+"""]]
diff --git a/doc/forum/Can_custom_themes_live_somewhere_inside_srcdir__63__/comment_2_8177ede5a586b1a573a13fd26f8d3cc0._comment b/doc/forum/Can_custom_themes_live_somewhere_inside_srcdir__63__/comment_2_8177ede5a586b1a573a13fd26f8d3cc0._comment
new file mode 100644 (file)
index 0000000..2b31273
--- /dev/null
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="http://adam.shand.net/"
+ nickname="Adam"
+ subject="Doh."
+ date="2011-01-29T19:32:18Z"
+ content="""
+Ah that makes sense, thanks!
+"""]]
diff --git a/doc/forum/Debian_5.0.7:_Can__39__t_locate_IkiWiki__47__Setup__47__Automator.pm.mdwn b/doc/forum/Debian_5.0.7:_Can__39__t_locate_IkiWiki__47__Setup__47__Automator.pm.mdwn
new file mode 100644 (file)
index 0000000..b501a11
--- /dev/null
@@ -0,0 +1,19 @@
+Hi People,
+
+first thanks for this nice an usable piece of software.
+
+Recently i moved to a new server, reinstalled ikiwiki via aptitude and now i'm getting this error:
+
+    ikiwiki -setup /etc/ikiwiki/auto.setup
+    /etc/ikiwiki/auto.setup: Can't locate IkiWiki/Setup/Automator.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0        /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at (eval 10) line 13.
+
+Or with an existing wiki:
+
+    ikiwiki -setup younameit.setup 
+    younameit.setup: Can't use an undefined value as an ARRAY reference at /usr/share/perl5/IkiWiki/Setup/Standard.pm line 33.
+    BEGIN failed--compilation aborted at (eval 10) line 293.
+
+Can you help?
+
+Best wishes,
+Tobias.
diff --git a/doc/forum/Debian_5.0.7:_Can__39__t_locate_IkiWiki__47__Setup__47__Automator.pm/comment_1_aec4bf4ca7d04d580d2fa83fd3f7166f._comment b/doc/forum/Debian_5.0.7:_Can__39__t_locate_IkiWiki__47__Setup__47__Automator.pm/comment_1_aec4bf4ca7d04d580d2fa83fd3f7166f._comment
new file mode 100644 (file)
index 0000000..2c884e2
--- /dev/null
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="http://joey.kitenet.net/"
+ nickname="joey"
+ subject="comment 1"
+ date="2011-01-25T19:18:21Z"
+ content="""
+You're using an old version of ikiwiki with setup files from a newer version. That won't work for various reasons, and the simplest fix is to upgrade your server to the version you had before.
+"""]]
diff --git a/doc/forum/Debian_5.0.7:_Can__39__t_locate_IkiWiki__47__Setup__47__Automator.pm/comment_4_c682ebb0e8e72088a8f92356dc31ef37._comment b/doc/forum/Debian_5.0.7:_Can__39__t_locate_IkiWiki__47__Setup__47__Automator.pm/comment_4_c682ebb0e8e72088a8f92356dc31ef37._comment
new file mode 100644 (file)
index 0000000..35a2588
--- /dev/null
@@ -0,0 +1,13 @@
+[[!comment format=mdwn
+ username="tk"
+ ip="79.222.20.29"
+ subject="comment 4"
+ date="2011-01-26T12:34:29Z"
+ content="""
+Thank you for the fast reply, Joey!
+I tried it with ikiwiki from debian backports and it works as usual :)
+
+Bye, 
+Tobias.
+
+"""]]
diff --git a/doc/forum/How_to_specify_repository_is_on_a_remote_host__63__.mdwn b/doc/forum/How_to_specify_repository_is_on_a_remote_host__63__.mdwn
new file mode 100644 (file)
index 0000000..ad8f272
--- /dev/null
@@ -0,0 +1,3 @@
+I'm new to ikiwiki and I'm trying to install it and set it up.  I've read the documentation but I still don't understand how access to the repository works.  We want ikiwiki to run on one machine but we want the repository to be on a separate machine running svn.  How can I configure ikiwiki to access the repository on the remote machine?  And how is authentication on the remote host handled in ikiwiki?  Does there have to be a one-to-one correspondence between account names (and passwords) on the ikiwiki machine and the accounts on the svn machine?  Thanks,
+
+Eric
diff --git a/doc/forum/How_to_specify_repository_is_on_a_remote_host__63__/comment_1_0c71e17ae552cbab1056ac96fbd36c59._comment b/doc/forum/How_to_specify_repository_is_on_a_remote_host__63__/comment_1_0c71e17ae552cbab1056ac96fbd36c59._comment
new file mode 100644 (file)
index 0000000..954ef08
--- /dev/null
@@ -0,0 +1,9 @@
+[[!comment format=mdwn
+ username="http://adam.shand.net/"
+ nickname="Adam"
+ subject="Depending ..."
+ date="2011-01-25T03:00:12Z"
+ content="""
+... on exactly what you are trying to do, you may find some answers [[here|forum/how_to_setup_ikiwiki_on_a_remote_host/]].
+
+"""]]
diff --git a/doc/forum/How_to_specify_repository_is_on_a_remote_host__63__/comment_2_b309302a084fbd8bcd4cd9bd2509cf5a._comment b/doc/forum/How_to_specify_repository_is_on_a_remote_host__63__/comment_2_b309302a084fbd8bcd4cd9bd2509cf5a._comment
new file mode 100644 (file)
index 0000000..4ceb694
--- /dev/null
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="http://joey.kitenet.net/"
+ nickname="joey"
+ subject="here's the scoop .. but, don't do it"
+ date="2011-01-25T18:30:01Z"
+ content="""
+To do what you describe, you would set up the svn repository on your server, and then do a regular svn checkout of it to the machine running ikiwiki, and configure ikiwiki to use that directory as its srcdir. The only unix user ikiwiki does anything as is the one you use to set it up, so it's up to you to allow that user to commit to svn without needing to enter a password.
+
+However, I don't recommend this configuration at all. You're adding a ssh (or webdav) connection overhead to every edit to the wiki, since ikiwiki's commit to svn will have to be pushed across the network to the server. And ikiwiki's svn support is missing many of the [[newer_ikiwiki_features|rcs]], such as including for example support for easily reverting edits.
+"""]]
diff --git a/doc/forum/Possible_to_use_meta_variables_in_templates__63__.mdwn b/doc/forum/Possible_to_use_meta_variables_in_templates__63__.mdwn
new file mode 100644 (file)
index 0000000..3c214d4
--- /dev/null
@@ -0,0 +1,11 @@
+I'm trying to create a [[!iki plugins/template desc=template]] which references variables from the [[!iki plugins/meta desc=meta]] plugin, but either it's not supported or I'm doing something wrong.  This is what my template looks like:
+
+    <div class="attributionbox">
+    <p><b>Written by:</b> <a href="<TMPL_VAR AUTHORURL>"><TMPL_VAR AUTHOR></a></p>
+    <p><TMPL_VAR text></b></p>
+    </div>
+
+The template is working because I get the content, but all the places where I reference meta variables are blank.  Is this supposed to work or am I trying to do something unsupported?  Many thanks for any pointers.
+
+Cheers,  
+[[AdamShand]]
diff --git a/doc/forum/Possible_to_use_meta_variables_in_templates__63__/comment_1_556078a24041289d8f0b7ee756664690._comment b/doc/forum/Possible_to_use_meta_variables_in_templates__63__/comment_1_556078a24041289d8f0b7ee756664690._comment
new file mode 100644 (file)
index 0000000..3aeeec7
--- /dev/null
@@ -0,0 +1,20 @@
+[[!comment format=mdwn
+ username="http://smcv.pseudorandom.co.uk/"
+ nickname="smcv"
+ subject="not supported at the moment"
+ date="2011-01-24T15:17:59Z"
+ content="""
+This isn't supported, because [[ikiwiki/directive/template]] templates
+don't run `pagetemplate` hooks (which is how information gets from
+[[ikiwiki/directive/meta]] into, for instance, `page.tmpl`). The only
+inputs to the `HTML::Template` are the parameters passed to the
+directive, plus the `raw_`-prefixed versions of those, plus the extra
+parameters passed to every `preprocess` hook (currently `page`, `destpage`
+and `preview`).
+
+I think having `pagetemplate` hooks run for this sort of template
+by default would be rather astonishing, but perhaps some sort of
+opt-in while defining the template would be reasonable? One problem
+with that is that the templates used by [[ikiwiki/directive/template]]
+are just wiki pages, and don't really have any special syntax support.
+"""]]
diff --git a/doc/forum/Possible_to_use_meta_variables_in_templates__63__/comment_2_e7e954218d39bc310015b95aa1a5212c._comment b/doc/forum/Possible_to_use_meta_variables_in_templates__63__/comment_2_e7e954218d39bc310015b95aa1a5212c._comment
new file mode 100644 (file)
index 0000000..b531881
--- /dev/null
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="http://adam.shand.net/"
+ nickname="Adam"
+ subject="Bummer."
+ date="2011-01-24T15:26:33Z"
+ content="""
+Thanks for the quick response!  I'm trying to figure out some way that I can reference meta variables inside of a page.  Specifically I'm trying to create an attribution box which lists all of the information I have about who wrote the page, where the original can be found etc.  I can just pass the values to the template, but it would be really nice not have to put this information in for the meta plugin and my attribution box!
+
+The changes you suggest sound wonderful but are beyond my abilities right row.  Any ideas how I might accomplish this in the mean time?
+"""]]
diff --git a/doc/forum/Possible_to_use_meta_variables_in_templates__63__/comment_3_8b16c563c89eb6980ad6a5539d934d7a._comment b/doc/forum/Possible_to_use_meta_variables_in_templates__63__/comment_3_8b16c563c89eb6980ad6a5539d934d7a._comment
new file mode 100644 (file)
index 0000000..a20f8f5
--- /dev/null
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="http://smcv.pseudorandom.co.uk/"
+ nickname="smcv"
+ subject="comment 3"
+ date="2011-01-24T20:58:52Z"
+ content="""
+I usually just have a template that contains a suitable `\[[!meta]]` directive.
+"""]]
diff --git a/doc/forum/Possible_to_use_meta_variables_in_templates__63__/comment_4_76eadf93cce4e2168960131d4677c5fc._comment b/doc/forum/Possible_to_use_meta_variables_in_templates__63__/comment_4_76eadf93cce4e2168960131d4677c5fc._comment
new file mode 100644 (file)
index 0000000..b5c6261
--- /dev/null
@@ -0,0 +1,8 @@
+[[!comment format=mdwn
+ username="http://kerravonsen.dreamwidth.org/"
+ ip="202.173.183.92"
+ subject="contrib plugins can do this"
+ date="2011-01-24T23:11:40Z"
+ content="""
+You can do this by using the [[plugins/contrib/field]] plugin with the [[plugins/contrib/ftemplate]] plugin.
+"""]]
diff --git a/doc/forum/Possible_to_use_meta_variables_in_templates__63__/comment_5_ddabe4a005042d19c7669038b49275c1._comment b/doc/forum/Possible_to_use_meta_variables_in_templates__63__/comment_5_ddabe4a005042d19c7669038b49275c1._comment
new file mode 100644 (file)
index 0000000..6279b20
--- /dev/null
@@ -0,0 +1,12 @@
+[[!comment format=mdwn
+ username="http://adam.shand.net/"
+ nickname="Adam"
+ subject="Thanks!"
+ date="2011-01-25T02:51:35Z"
+ content="""
+smcv, sorry I don't understand?  How are you getting the \[[!meta] to work on a template page, I thought that's what you said didn't work?  Do you mean a pagetemplate?
+
+kerravonsen, thanks for the pointer I'll check those out.
+
+I realised last night that I think I could also do this with a pagetemplate, since I should be able to access meta variables there.   A little clumsy for what I want to do but should hopefully work fine.  Would be really neat with the [section template](http://ikiwiki.info/todo/Set_templates_for_whole_sections_of_the_site/) plugin, I'll have to look at that.
+"""]]
index ce20938f44fe1323c68776ae299c0d2a779e153b..c30b0111460855922b16378ff5e9ee761aa549fb 100644 (file)
@@ -65,7 +65,7 @@ think about merging them. This is recommended. :-)
 * [[privat]] `git://github.com/privat/ikiwiki.git`
 * [[blipvert]] `git://github.com/blipvert/ikiwiki.git`
 * [[bzed|BerndZeimetz]] `git://git.recluse.de/users/bzed/ikiwiki.git`
-* [[wtk]]: `git://github.com/wking/ikiwiki.git`
+* [[wtk]] `git://github.com/wking/ikiwiki.git`
 
 ## branches
 
index 1f5bde964d088a31c430377ab44dd94ff60f752c..d66e26fc4e493574a9158f57a49b504beba07021 100644 (file)
@@ -7,7 +7,8 @@ Enter the metadata as follows:
        \[[!meta field="value" param="value" param="value"]]
 
 The first form sets a given field to a given value, while the second form
-also specifies some additional sub-parameters.
+also specifies some additional sub-parameters. You can have only one field
+per `meta` directive, use more directives if you want to specify more fields.
 
 The field values are treated as HTML entity-escaped text, so you can include
 a quote in the text by writing `&quot;` and so on.
index 29c0ba9e2fff370264a369b9a1ae829c7023b91d..e2aa52601baa5d547fa3e150a6b8a08d2cbc4e3b 100644 (file)
@@ -62,6 +62,7 @@ Projects & Organizations
 * [PDFpirate Community](http://community.pdfpirate.org/)
 * [Banu](https://banu.com/) uses Ikiwiki for its website, to convert static Markdown pages into PHP scripts which are served along with non-Ikiwiki PHP generated contents. The static contents benefit from use of Ikiwiki's plugins. Ikiwiki is purely used as a CMS and no wiki or web-based editing is allowed. Ikiwiki is run offline, and the resulting scripts are uploaded using rsync to the website.
 * [Software in the Public Interest](http://spi-inc.org/)
+* [NXT Improved Firmware](http://nxt-firmware.ni.fr.eu.org/)
 
 Personal sites and blogs
 ========================
diff --git a/doc/news/version_3.20101129.mdwn b/doc/news/version_3.20101129.mdwn
deleted file mode 100644 (file)
index 366ad6e..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-ikiwiki 3.20101129 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
-   * websetup: Fix encoding problem when restoring old setup file.
-   * more: Add pages parameter to limit where the more is displayed.
-     (thanks, dark)
-   * Fix escaping of filenames in historyurl. (Thanks, aj)
-   * inline: Improve RSS url munging to use a proper html parser,
-     and support all elements that HTML::Tagset knows about.
-     (Which doesn't include html5 just yet, but then the old version
-     didn't either.) Bonus: 4 times faster than old regexp method.
-   * Optimise glob() pagespec. (Thanks, Kathryn and smcv)
-   * highlight: Support new format of filetypes.conf used by version 3.2
-     of the highlight package.
-   * edittemplate: Fix crash if using a .tmpl file or other non-page file
-     as a template for a new page.
-   * git: Fix temp file location.
-   * rename: Fix to pass named parameters to rcs\_commit.
-   * git: Avoid adding files when committing, so as not to implicitly add
-     files like recentchanges files that are not normally checked in,
-     when fixing links after rename."""]]
\ No newline at end of file
diff --git a/doc/news/version_3.20101201.mdwn b/doc/news/version_3.20101201.mdwn
deleted file mode 100644 (file)
index 410640c..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-ikiwiki 3.20101201 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
-   * meta: Fix calling of htmlscrubber to pass the page parameter.
-     The change of the htmlscrubber to look at page rather than destpage
-     caused htmlscrubber\_skip to not work for meta directives."""]]
\ No newline at end of file
diff --git a/doc/news/version_3.20110123.mdwn b/doc/news/version_3.20110123.mdwn
new file mode 100644 (file)
index 0000000..0c4d202
--- /dev/null
@@ -0,0 +1,4 @@
+ikiwiki 3.20110123 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+   * Adapt autoindex test suite to work with old Test::More.
+   * Fix posting by blog form, broken by last release."""]]
\ No newline at end of file
diff --git a/doc/news/version_3.20110124.mdwn b/doc/news/version_3.20110124.mdwn
new file mode 100644 (file)
index 0000000..0d9d787
--- /dev/null
@@ -0,0 +1,7 @@
+ikiwiki 3.20110124 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+   * comments: Fix commenting, broken by security fix.
+   * blogspam: Don't check modifications from admins for spam, and also
+     allow the blogspam\_pagespec to do other matches against who the user is.
+   * inline: Fix regression in feed titles. Closes: #[610878](http://bugs.debian.org/610878)
+     (Thanks, Paul Wise)"""]]
\ No newline at end of file
index a13b6e8f424c2fe511a5bd37cee7d51c3de0a33d..c158316d43bfab793f1039874974371c60ddcfc3 100644 (file)
@@ -23,7 +23,7 @@ you can check whether the interaction with blogspam.net works.
 The `blogspam_pagespec` setting is a [[ikiwiki/PageSpec]] that can be
 used to configure which pages are checked for spam. The default is to check
 all edits. If you only want to check [[comments]] (not wiki page edits),
-set it to "postcomment(*)".
+set it to "postcomment(*)". Posts by admins are never checked for spam.
 
 By default, the blogspam.net server is used to do the spam checking. To
 change this, the `blogspam_server` option can be set to the url for a
index 9331713dbb0726ee514aa758fe3b41fd19352c19..67a2bf46aee25e48b4a631130b5a3727e709a823 100644 (file)
@@ -18,3 +18,9 @@ lot of free CSS templates could be included, e. g. from
 > that ikiwiki itself does not require. --[[Joey]]
 
 ### Once one has enabled the 'theme' plugin in the setup file, how does one use themes?
+
+Choose one of the [[themes]] which are bundled with ikiwiki and configure ikiwiki to use it by setting this in your setup file, eg.
+
+       theme => 'blueview',
+
+-- [[AdamShand]]
index c627792d7bb858e67885b1fc3fac087efd09ca00..1b66493dddad9fe24a798909bd3931aa801c5e51 100644 (file)
@@ -56,8 +56,8 @@ repositories:
   repositories are also clones of the bare root repository above --
   and these have a working directory for you to work on. Use either
   the `git` transport (if available), or `ssh`. These repositories may
-  be on remote machines, your laptop, whereever you find convenient to
-  hack on your wiki. you can commit local changes to the version on
+  be on remote machines, your laptop, wherever you find convenient to
+  hack on your wiki. You can commit local changes to the version on
   the laptop, perhaps while offline. Any new content should be pushed to the
   bare master repository when you are ready to publish it, and then
   the post-update hook of the bare repository will ensure that the
diff --git a/doc/reviewed.mdwn b/doc/reviewed.mdwn
new file mode 100644 (file)
index 0000000..14772a3
--- /dev/null
@@ -0,0 +1,7 @@
+This page lists [[branches]] that have been reviewed. If your branch
+shows up here, the ball is back in your court, to respond to the review and
+deal with whatever is preventing it from being merged into ikiwiki. Once
+you do, remove the "reviewed" tag.
+
+[[!inline pages="(todo/* or bugs/*) and link(/branches) and !link(bugs/done)
+and !link(todo/done) and !*/*/* and link(.)" show=0 archive=yes]]
index 40581eb725bff0e41a58482fd6606bd929693502..ce51faa6d47688754acc04f08c0931d4cd90134a 100644 (file)
@@ -4,7 +4,7 @@ This tutorial will walk you through setting up a wiki with ikiwiki.
 
 ## Install ikiwiki
 
-If you're using Debian or Ubuntu, ikiwiki is an `apt-get install ikiwiki` away.
+If you're using Debian or Ubuntu, ikiwiki is an <code><a href="http://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_basic_package_management_operations">apt-get</a> install ikiwiki</code> away.
 If you're not, see the [[download]] and [[install]] pages.
 
 ## Create your wiki
@@ -16,11 +16,11 @@ For more control, advanced users may prefer to set up a wiki
 [[by_hand|byhand]].
 """]]
 
-       % ikiwiki -setup /etc/ikiwiki/auto.setup
+       % ikiwiki --setup /etc/ikiwiki/auto.setup
 
 Or, set up a blog with ikiwiki, run this command instead.
 
-       % ikiwiki -setup /etc/ikiwiki/auto-blog.setup
+       % ikiwiki --setup /etc/ikiwiki/auto-blog.setup
 
 `librpc-xml-perl` and `python-docutils` dependencies are needed.
 
@@ -39,7 +39,7 @@ Then, wait for it to tell you an url for your new site..
                destdir:     ~/public_html/foo
                repository:  ~/foo.git
        To modify settings, edit ~/foo.setup and then run:
-               ikiwiki -setup ~/foo.setup
+               ikiwiki --setup ~/foo.setup
 
 Done! 
 
@@ -103,11 +103,11 @@ and gives a brief description of each.
 
 After making changes to this file, you need to tell ikiwiki to use it:
 
-       % ikiwiki -setup foo.setup
+       % ikiwiki --setup foo.setup
 
 Alternatively, you can ask ikiwiki to change settings in the file for you:
 
-       % ikiwiki -changesetup foo.setup -plugin goodstuff
+       % ikiwiki --changesetup foo.setup --plugin goodstuff
 
 See [[usage]] for more options.
 
@@ -136,7 +136,7 @@ them and re-checkout from the new repository location.
 
 Finally, edit the setup file. Modify the settings for `srcdir`, `destdir`,
 `url`, `cgiurl`, `cgi_wrapper`, `git_wrapper`, etc to reflect where
-you moved things. Remember to run `ikiwiki -setup` after editing the
+you moved things. Remember to run `ikiwiki --setup` after editing the
 setup file.
 
 ## Enjoy your new wiki!
index 931f980259675197a501ee8343218cc43d08ced5..2d67aabac08fa39a1a912f7c438c2f996e7e75fe 100644 (file)
@@ -8,3 +8,13 @@ Make it easy to configure the Markdown implementation used by the
 external Markdown executable in your ikiwiki config file.  If you do
 not set a path, the plugin will use the usual config options to
 determine which Perl module to use.
+
+> This adds a configuration in which a new process has to be worked
+> for every single page rendered. Actually, it doesn't only add
+> such a configuration, it makes it be done by *default*.
+> 
+> Markdown is ikiwiki's default, standard renderer. A configuration
+> that makes it slow will make ikiwiki look bad.
+> 
+> I would not recommend using Gruber's perl markdown. It is old, terminally
+> buggy, and unmaintained. --[[Joey]] [[!tag reviewed]]
diff --git a/doc/todo/credentials_page.mdwn b/doc/todo/credentials_page.mdwn
new file mode 100644 (file)
index 0000000..6b90af1
--- /dev/null
@@ -0,0 +1,33 @@
+pushing [[this|todo/httpauth feature parity with passwordauth]] and [[this|todo/htpasswd mirror of the userdb]] further (although rather in the [[wishlist]] priority): would it make sense for users to have a `$USER/credentials` page that is by default locked to the user and admins, where the user can state one or more of the below?
+
+* OpenID
+* ssh public key (would require an additional mechanism for writing this to a `authorized_keys` file with appropriate environment variables or prefix that makes sure the commit is checked against the right user and that the user names agree)
+* gpg public key (once there is a mechanism that relies on gpg for authentication))
+* https certificate hash (don't know details; afair the creation of such certificates is typically initiated server-side)
+* password hash (this is generally considered a valuable secret; is this still true with good hashes and proper salting?)
+
+such a page could have a form as described in [[todo/structured page data]] and could even serve as a way of managing users. --[[chrysn]]
+
+> I was just thinking about something along these lines myself. The
+> idea, if I understand correctly, is to allow users to have multiple
+> login options all leading to the same identity. This would allow a
+> user to login for example via either their Google account or their
+> WordPress account, while still being identified as the same user.
+
+> However, I'm not sure this should be a static page (I guess you
+> mean `$USER/credentials`, I don't think ‘creditentials’ actually
+> exists). Something entirely managed at the CGI level is probably
+> better, as it also helps keeping the data in its place (such as ssh
+> public keys in `authorized_keys` etc).
+
+> -- GB
+
+>> having multiple login options leading to the same identity, and (more important to me) giving the user an easy way to review and edit them. i'm thinking a bit of foaf+ssl style "i am $USER and you can recognize me by my client certificate $CERTIFICATE" statements.
+>>
+>> the reason why i want this in a static place instead of cgi level is that it can be used, for example, for automatically creating htpasswd files for read-only (cgi-less) replicas of private wikis. furthermore, it all gets versioned and it can easily be seen where the data really is. the credentials have to be filed appropriately by plugins anyway, but that can happen as a part of the regular rebuild process.
+>>
+>> and yes, you're right about the word misusage; thanks for pointing it out and fixing it.
+>>
+>> --[[chrysn]]
+
+an issue to be considered: for ways of authentication that don't explicitly mention the user name (and that would be everything but password; especially OpenID), there has to be a way to prevent users from hijacking an admin's account. the user wouldn't get more privileges, but the admin could find himself logged in as a user instead of an admin when he logs in using his OpenID, for example. he could fix it by removing the openid from the user's ("his") page, but it has to be taken care of nevertheless. --[[chrysn]]
index 2a922ec35b6b2fc68449c4e8a8816de3f162940c..fde5ac01f1a5b4ff9052bbbd2d0999fdb4b21eed 100644 (file)
 [[!template id=gitbranch branch=GiuseppeBilotta/inlinestuff author="Giuseppe Bilotta"]]
 
-A few patches to clean up and improve feed management for inline pages.
-
-(I moved the picked/scratched stuff at the bottom.)
-
-* the (now first) patch tries to define the default description for a feed based not only on the wiki name,
-  but also on the current page name. The actual way this is built might not be the optimal one,
-  so I'm open to suggestions
-
-  > I don't really like using "wikiname/page" as the name of the feed. It's
-  > a bit too mechanical. I'd be ok with using just the page name,
-  > with a fallback to wikiname for the toplevel index. Or maybe
-  > something like "$wikiname's $page".
-  > 
-  > Also, shouldn't `pagetitle` be run on the page name? (Haven't checked.)
-  > --[[Joey]] 
-
-  >> The rewritten patch now sets the feed title using the page title, and the feed description
-  >> using the page _description_, both obtained from meta if possible. If there is no page
-  >> description, then we use the page title combined with the wiki name. I introduce a new
-  >> configuration key to customize the actual automatic description.
-
-  >>> The feed title part of this seems unnecessary. As far as I can see,
-  >>> ikiwiki already uses the page title as the feed title; TITLE in the
-  >>> rsspage.tmpl is handled the same as TITLE in page.tmpl. --[[Joey]]
-
-  >>>> I'm afraid this is not the case in the ikiwiki I have. It might be the effect of some kind of interaction of
-  >>>> this with the next patch, but apparently I need both to ensure that the proper title is being used.
-
-  >>>> Some further analysis: before my patch, the feed title would be set to
-  >>>> `pagetitle($page)`, or to the wiki name if the pagetitle was index. As
-  >>>> it turns out, in my setup (see below for details) this happens quite
-  >>>> often on my `dirN.mdwn` index pages, where I would like to have `dirN`
-  >>>> as title instead. Plus, unless I'm mistaken, `pagetitle()` doesn't
-  >>>> actually use `meta` information, which my patch does. So I still think
-  >>>> the title part of the patch is worth it. As a bonus, it also allows title
-  >>>> customization by the `title=` parameter as offered in another patch.
-
-* the (now second) patch passes uses the included rather than the including page for the URL. This is
-  actually a forgotten piece from my previous patch (now upstream) to base the feed name on the
-  included rather than the including page, and it's only relevant for nested inline pages.
-
-  > I have a vague memory of considering doing this before, and not,
-  > because there is actually no guarantee that the inlined page (that
-  > itself contains an inline) will generate an url. It could be excluded;
-  > it could be an internal page; it could use a conditional to omit the
-  > inline when not inlined.
-
-  >> I would say that in this cases my patch wouldn't change anything because
-  >> either the code would still act as before or it wouldn't be triggered at
-  >> all. --GB
-
-  > Also, I think that `destpage` gets set wrong. And I think that
-  > `get_inline_content` is called with the source page, rather than the
-  > destpage, and so could generate urls that don't work on the destpage.
-
-  >> `destpage` getting set wrong is probably a bug that should be
-  >> fixed, but I must say I haven't come across it (yet).
-  >> `get_inline_content` is called with both the source and dest page,
-  >> and in my experience the urls have always been generated correctly.
-
-  > All in all, this is an edge case, and currently seems to work ok, so
-  > why change it? --[[Joey]] 
-
-  >> Because it does not work ok for me. I have a number of directories `dir1/`, `dir2/`, `dir3/`
-  >> each with a corresponding `dir1.mdwn`, `dir2.mdwn`, `dir3.mdwn` etc that is basically just
-  >> an inline instruction. Then my index.mdwn inlines `dir[123]`. Without these two patches, the
-  >> `dir[123]` feeds get the wrong title.
-
-* the (new) fourth patch introduces a `feedtitle` parameter to override the feed title. I opted for
-  not squashing it with the second patch to allow you to scrap this but still get the other, in case
-  you're not too happy about having a plethora of parameters
-
-  > This seems clearly a good idea, since there is already a "description"
-  > parameter. But, by analogy with that parameter, it should just be
-  > called "title". --[[Joey]] 
-
-  >> I'll rework the patch to that effect.
-
-* a fifth patch introduces an `id` parameter to allow setting the HTML id attribute in the
-  blogpost/feedlinks template. Since we replace their id with a class (first patch), this brings
-  back the possibility for direct CSS customization and JavaScript manipulation based on id.
-
-  > That sort of makes sense, but it somehow seems wrong that "id" should
-  > apply to only cruft at the top of the inline, and not the entire div
-  > generated for it. --[[Joey]] 
-
-  >> Good point. I'll look into a way to move the id to the `inlinepage` div, although I guess
-  >> that falling back to `id`ing the `feedlink` div in the feedonly case would be ok.
-
-  >> After looking into it, I hit again the same naive error I did while
-  >> working on inline the first time: there is no "outer" div that
-  >> encloses all of the generated content: each inlined page has its
-  >> "inlinepage"-classed div, and the lot of them is prefixed by either
-  >> the feedlinks or postform template output. So the only way to "id"
-  >> a whole block of inlines is by adding a wrapping div that encloses
-  >> the whole product of the inline directive. I can do that if you
-  >> believe it's worth it.
-
-* 30a4de2aa3ab29dd9397c2edd91676e80bc06feb "urlto: prevent // when {url} ends with /"
-
-  > The `url` in the setup file should not end in a slash. Probably more
-  > things get ugly doubled slashes if someone does that. --[[Joey]] 
-
-  >> I was not aware of this. Did I miss it or is it just not documented?
-  >> Also, grepping through the current official code (core and plugins)
-  >> there is only one other place that looks like it could be affected
-  >> by the `url` config ending in slash, and it's the `$local_url`
-  >> stuff in `IkiWiki.pm`, but that code does terminal double-slash
-  >> sanitation itself. So it would seem that my proposed patch would
-  >> lift the restriction about the terminal / (an otherwise unnecessary
-  >> restriction) without affecting much, as long as `url` users rely on
-  >> the core functions to build paths with it (as in the next patch).
-
-* 57a9b5c4affda9e855f09a64747e5225d6254079 "inline: use urlto instead of manually building the RSS url"
-
-  > Well, that seems ok. 3 parameter urlto should give us an absolute url.
-  > 
-  > But we have to be careful and verify that it will always produce
-  > exactly the same url as before. Changing the feed url unnecessarily
-  > can probably flood aggregators or something... --[[Joey]]
-
-  >> AFAICS, the feed url would only change in the case of /-terminating
-  >> `$config{url}`, and even then only if the preceding urlto sanitation patch
-  >> was included too.
-
-
------
-
-* the first patch simply replaces the id attribute in the default template for feedlinks with a class attribute by the same name. This is necessary in pages with multiple inlines to guarantee correctness
-
-  > Ok, but blogform.tmpl has the same problem. And either change can need
-  > CSS changes. (blogform in particular is used in style.css as an id.)
-  > So this needs more documentation and associated work. --[[Joey]]
-
-  >> I didn't include blogform in the change because the case of two
-  >> blog post forms in the same page is probably extremely rare. But
-  >> then again I remember doing having them in one of my ikiwiki
-  >> draftings, so I rewrote the patch to include blogform. I had
-  >> checked the distributed CSS for #feedlinks references, without
-  >> finding any. The new patch does include CSS changes for the
-  >> \#blogform -> .blogform change. I have no idea on where to document
-  >> this change though.
-
-  >>> Picked. NEWSed. --[[Joey]]
-
-
-* the (former) third patch passes the feed titles to the templates, changing the default templates to use these as title attributes for the links. a rel="alternate" attribute is also included
-
-  > Seems reasonable. Cherry-picked. Note that the title attribute
-  > will be shown by browsers as a tooltip. So I made it say 
-  > "$name (RSS feed)"
-
-  >> Good, thanks.
-
-* the (former) fourth patch introduces a feedlinks parameter to the inline directive, to allow for the specifications of the locations where the feed links should appear. Currently, two options are allowed (head and body), plus both and none with obvious significance
-
-  > Hmm. This doesn't affect the feed links in the blogform.tmpl. Anyway,
-  > this is not something I see a real benefit of making configurable above
-  > the template editing level. I don't see any point whatsoever of
-  > allowing to turn off the feed links in the `<head>` -- they are not
-  > user-visible, and IIRC that is the recommended and most portable way
-  > to encode the information for feed discovery agents (rather than
-  > putting it in the body). And the sorry state of "modern" browsers, 
-  > such as chromium's support for RSS means that it still makes sense to 
-  > have user-visible feed buttons. If that changed, it would make sense to
-  > modify ikiwiki to globally remove them. --[[Joey]]
-
-  >> I was actually quite surprised myself by the lack of automatic feed
-  >> discovery in chromium (although I noticed there's a sort-of
-  >> official plugin to do it). Overall, I believe your critique is
-  >> well-founded, I'll scratch this patch.
+I rearranged my patchset once again, to clearly identify the origin and
+motivation of each patch, which is explained in the following.
+
+In my ikiwiki-based website I have the following situation:
+
+* `$config{usedirs}` is 1
+* there are a number of subdirectories (A/, B/, C/, etc)
+  with pages under each of them (A/page1, A/page2, B/page3, etc)
+* 'index pages' for each subdirectory: A.mdwn, B.mdwn, C.mdwn;
+  these are rather barebone, only contain an inline directive for their
+  respective subpages and become A/index.html, etc
+* there is also the main index.mdwn, which inlines A.mdwn, B.mdwn, C.mdwn,
+  etc (i.e. the top-level index files are also inlined on the homepage)
+
+With the upstream `inline` plugin, the feeds for A, B, C etc are located
+in `A/index.atom`, `B/index.atom`, etc; their title is the wiki name and
+their main link goes to the wiki homepage rather than to their
+respective subdir (e.g. I would expect `A/index.atom` to have a link to
+`http://website/A` but it actually points to `http://website/`).
+
+This is due to them being generated from the main index page, and is
+fixed by the first patch: ‘inline: base feed urls on included page
+name’. As explained in the commit message for the patch itself, this is
+a ‘forgotten part’ from a previous page vs destpage fix which has
+already been included upstream.
+
+The second patch, ‘inline: improve feed title and description
+management’, aligns feed title and description management by introducing
+a `title` option to complement `description`, and by basing the
+description on the page description if the entry is missing. If no
+description is provided by either the directive parameter or the page
+metadata, we use a user-configurable default based on both the page
+title and wiki name rather than hard-coding the wiki name as description.
+
+The third patch, ‘inline: allow assigning an id to postform/feedlink’,
+does just that. I don't currently use it, but it can be particularly
+useful in the postform case for example for scriptable management of
+multiple postforms in the same page.
+
+In one of my wiki setups I had a terminating '/' in `$config{url}`. You
+mention that it should not be present, but I have not seen this
+requirement described anywhere. Rather than restricting the user input,
+I propose a patch that prevents double slashes from appearing in links
+created by `urlto()` by fixing the routine itself.
+
+The inline plugin is also updated (in a separate patch) to use `urlto()`
+rather than hand-coding the feed urls. You might want to keep this
+change even if you discard the urlto patch.
 
index 58920cc126051ddb34d7cfb83ab18dd46621b4b5..ef7fcb12c024f1c280e6220ec1555079e86300bc 100644 (file)
@@ -64,3 +64,27 @@ usage
 >>> will be easier to merge or reject.  Note the new branch name:
 >>> `raw_inline`. I'll open separate todo items for items mentioned in my
 >>> previous comment. --[[wtk]]
+
+---- 
+
+Reviewing your patch the first thing I see is this:
+
+<pre>
++        if (! $file) {
++               error("Missing file.");
++        }
+</pre>
+
+This fails if the filename is "0". Also, `pagetype()`
+currently cannot fail; allowing it to crash the entire
+wiki build if the filename is somehow undefined seems
+unwise.
+
+I didn't look much further, because it seems to me what you're trying to do
+can be better accomplished by using the highlight plugin. Assuming the raw
+file you want to inline and comment on is some source-code-like thing,
+which seems likely.
+
+Or, another way to do it would be to use the templates plugin, and make
+a template there that puts an inline directive inside pre tags.
+ --[[Joey]] [[!tag reviewed]]
index 429f4f6682743a5069ac0d16333fc32703490837..5273c6439f8d76894d7f389303902e47c3045341 100644 (file)
@@ -1,5 +1,15 @@
 [[!meta title="Adam Shand"]]
 
-New IkiWiki user (well not really "new" anymore), long time wiki user. :-)
+New ikiwiki user (well not really "new" anymore), long time wiki user. :-)
 
 <http://adam.shand.net/iki/>
+
+[[!map pages="link(AdamShand)"]]
+
+<!-- for map bug
+## Correct? (No extra ULs)
+\[[!map pages="setup*" show="title"]]
+
+## Bug? (Extra UL for each LI)
+\[[!map pages="tagged(done) and tagged(patch)" show="title"]]
+-->
index b8a18894a1892f6cbaccec8ea8950d94bd014dca..c498123876db84b02b322b6a780783721321fd5e 100644 (file)
@@ -1,5 +1,5 @@
 Name:           ikiwiki
-Version: 3.20110122
+Version: 3.20110124
 Release:        1%{?dist}
 Summary:        A wiki compiler
 
index 170dd451cf3b420663864eb96786aca4fabfdf20..0e97038b4b3741199d86de646c81495a97709318 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-01-22 10:35-0400\n"
+"POT-Creation-Date: 2011-01-27 17:13-0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -179,7 +179,7 @@ msgstr ""
 msgid "automatic index generation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/blogspam.pm:112
+#: ../IkiWiki/Plugin/blogspam.pm:118
 msgid ""
 "Sorry, but that looks like spam to <a href=\"http://blogspam.net/"
 "\">blogspam</a>: "
@@ -220,7 +220,8 @@ msgstr ""
 msgid "Comment Moderation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:372 ../IkiWiki/Plugin/editpage.pm:96
+#: ../IkiWiki/Plugin/comments.pm:372 ../IkiWiki/Plugin/editpage.pm:95
+#: ../IkiWiki/Plugin/editpage.pm:101
 msgid "bad page name"
 msgstr ""
 
@@ -303,19 +304,19 @@ msgstr ""
 msgid "removing old preview %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/editpage.pm:114
+#: ../IkiWiki/Plugin/editpage.pm:117
 #, perl-format
 msgid "%s is not an editable page"
 msgstr ""
 
-#: ../IkiWiki/Plugin/editpage.pm:294
+#: ../IkiWiki/Plugin/editpage.pm:297
 #, perl-format
 msgid "creating %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/editpage.pm:312 ../IkiWiki/Plugin/editpage.pm:331
-#: ../IkiWiki/Plugin/editpage.pm:342 ../IkiWiki/Plugin/editpage.pm:387
-#: ../IkiWiki/Plugin/editpage.pm:429
+#: ../IkiWiki/Plugin/editpage.pm:315 ../IkiWiki/Plugin/editpage.pm:334
+#: ../IkiWiki/Plugin/editpage.pm:345 ../IkiWiki/Plugin/editpage.pm:390
+#: ../IkiWiki/Plugin/editpage.pm:432
 #, perl-format
 msgid "editing %s"
 msgstr ""
@@ -609,87 +610,87 @@ msgstr ""
 msgid "warning: Old po4a detected! Recommend upgrade to 0.35."
 msgstr ""
 
-#: ../IkiWiki/Plugin/po.pm:175
+#: ../IkiWiki/Plugin/po.pm:176
 #, perl-format
 msgid "%s is not a valid language code"
 msgstr ""
 
-#: ../IkiWiki/Plugin/po.pm:187
+#: ../IkiWiki/Plugin/po.pm:188
 #, perl-format
 msgid ""
 "%s is not a valid value for po_link_to, falling back to po_link_to=default"
 msgstr ""
 
-#: ../IkiWiki/Plugin/po.pm:192
+#: ../IkiWiki/Plugin/po.pm:193
 msgid ""
 "po_link_to=negotiated requires usedirs to be enabled, falling back to "
 "po_link_to=default"
 msgstr ""
 
-#: ../IkiWiki/Plugin/po.pm:456
+#: ../IkiWiki/Plugin/po.pm:457
 msgid "updated PO files"
 msgstr ""
 
-#: ../IkiWiki/Plugin/po.pm:479
+#: ../IkiWiki/Plugin/po.pm:480
 msgid ""
 "Can not remove a translation. If the master page is removed, however, its "
 "translations will be removed as well."
 msgstr ""
 
-#: ../IkiWiki/Plugin/po.pm:499
+#: ../IkiWiki/Plugin/po.pm:500
 msgid ""
 "Can not rename a translation. If the master page is renamed, however, its "
 "translations will be renamed as well."
 msgstr ""
 
-#: ../IkiWiki/Plugin/po.pm:941
+#: ../IkiWiki/Plugin/po.pm:942
 #, perl-format
 msgid "POT file (%s) does not exist"
 msgstr ""
 
-#: ../IkiWiki/Plugin/po.pm:955
+#: ../IkiWiki/Plugin/po.pm:956
 #, perl-format
 msgid "failed to copy underlay PO file to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/po.pm:964
+#: ../IkiWiki/Plugin/po.pm:965
 #, perl-format
 msgid "failed to update %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/po.pm:970
+#: ../IkiWiki/Plugin/po.pm:971
 #, perl-format
 msgid "failed to copy the POT file to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/po.pm:1006
+#: ../IkiWiki/Plugin/po.pm:1007
 msgid "N/A"
 msgstr ""
 
-#: ../IkiWiki/Plugin/po.pm:1017
+#: ../IkiWiki/Plugin/po.pm:1018
 #, perl-format
 msgid "failed to translate %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/po.pm:1096
+#: ../IkiWiki/Plugin/po.pm:1097
 msgid "removed obsolete PO files"
 msgstr ""
 
-#: ../IkiWiki/Plugin/po.pm:1153 ../IkiWiki/Plugin/po.pm:1165
-#: ../IkiWiki/Plugin/po.pm:1204
+#: ../IkiWiki/Plugin/po.pm:1154 ../IkiWiki/Plugin/po.pm:1166
+#: ../IkiWiki/Plugin/po.pm:1205
 #, perl-format
 msgid "failed to write %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/po.pm:1163
+#: ../IkiWiki/Plugin/po.pm:1164
 msgid "failed to translate"
 msgstr ""
 
-#: ../IkiWiki/Plugin/po.pm:1216
+#: ../IkiWiki/Plugin/po.pm:1217
 msgid "invalid gettext data, go back to previous page to continue edit"
 msgstr ""
 
-#: ../IkiWiki/Plugin/po.pm:1258
+#: ../IkiWiki/Plugin/po.pm:1259
 #, perl-format
 msgid "%s has invalid syntax: must use CODE|NAME"
 msgstr ""
diff --git a/t/tag.t b/t/tag.t
index ec17d543418e4bb0bcc00fd81aa4ceb22d0f74a7..2d0a6e6627ab3a65fca614c52327545bb758d193 100755 (executable)
--- a/t/tag.t
+++ b/t/tag.t
@@ -3,7 +3,7 @@ package IkiWiki;
 
 use warnings;
 use strict;
-use Test::More tests => 21;
+use Test::More tests => 22;
 
 BEGIN { use_ok("IkiWiki"); }
 BEGIN { use_ok("IkiWiki::Render"); }
@@ -58,25 +58,30 @@ IkiWiki::Plugin::tag::preprocess_tag(page => "seven", numbers => undef, primes =
 is($autofiles{"tags/lucky.mdwn"}{plugin}, "tag");
 is($autofiles{"tags/numbers.mdwn"}{plugin}, "tag");
 is($autofiles{"tags/primes.mdwn"}{plugin}, "tag");
+is_deeply([sort keys %autofiles], [qw(tags/lucky.mdwn tags/numbers.mdwn tags/primes.mdwn)]);
 
 ok(!-e "t/tmp/tags/lucky.mdwn");
 my (%pages, @del);
 IkiWiki::gen_autofile("tags/lucky.mdwn", \%pages, \@del);
-is_deeply(\%pages, {"t/tmp/tags/lucky" => 1}) || diag explain \%pages;
-is_deeply(\@del, []) || diag explain \@del;
+is_deeply(\%pages, {"t/tmp/tags/lucky" => 1});
+is_deeply(\@del, []);
 ok(-s "t/tmp/tags/lucky.mdwn");
 
 # generating an autofile that already exists does nothing
 %pages = @del = ();
 IkiWiki::gen_autofile("tags/numbers.mdwn", \%pages, \@del);
-is_deeply(\%pages, {}) || diag explain \%pages;
-is_deeply(\@del, []) || diag explain \@del;
+is_deeply(\%pages, {});
+is_deeply(\@del, []);
 
 # generating an autofile that we just deleted does nothing
 %pages = ();
 @del = ('tags/primes.mdwn');
 IkiWiki::gen_autofile("tags/primes.mdwn", \%pages, \@del);
-is_deeply(\%pages, {}) || diag explain \%pages;
-is_deeply(\@del, ['tags/primes.mdwn']) || diag explain \@del;
+is_deeply(\%pages, {});
+is_deeply(\@del, ['tags/primes.mdwn']);
+
+
+# cleanup
+ok(! system("rm -rf t/tmp"));
 
 1;