]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/commitdiff
Merge commit 'upstream/master' into pub/po
authorintrigeri <intrigeri@boum.org>
Sat, 6 Jun 2009 12:03:40 +0000 (14:03 +0200)
committerintrigeri <intrigeri@boum.org>
Sat, 6 Jun 2009 12:03:40 +0000 (14:03 +0200)
Conflicts:

debian/changelog
debian/control

Signed-off-by: intrigeri <intrigeri@boum.org>
95 files changed:
IkiWiki.pm
IkiWiki/Plugin/brokenlinks.pm
IkiWiki/Plugin/comments.pm
IkiWiki/Plugin/editpage.pm
IkiWiki/Plugin/format.pm
IkiWiki/Plugin/goto.pm
IkiWiki/Plugin/highlight.pm [new file with mode: 0644]
IkiWiki/Plugin/inline.pm
IkiWiki/Plugin/listdirectives.pm
IkiWiki/Plugin/opendiscussion.pm
IkiWiki/Plugin/orphans.pm
IkiWiki/Plugin/pagecount.pm
IkiWiki/Plugin/rename.pm
IkiWiki/Render.pm
IkiWiki/Setup/Automator.pm
debian/NEWS
debian/changelog
debian/control
doc/anchor.mdwn [new file with mode: 0644]
doc/basewiki.mdwn
doc/bugs/Insecure_dependency_in_mkdir.mdwn
doc/bugs/SSI_include_stripped_from_mdwn.mdwn
doc/bugs/__34__more__34___doesn__39__t_work.mdwn [new file with mode: 0644]
doc/bugs/aggregate_global_feed_names.mdwn [new file with mode: 0644]
doc/bugs/complex_wiki-code___40__braces__41___in_wikilink-text_breaks_wikilinks.mdwn [new file with mode: 0644]
doc/bugs/firefox_doesn__39__t_want_to_load_updated_pages_at_ikiwiki.info.mdwn [new file with mode: 0644]
doc/bugs/goto_with_bad_page_name.mdwn [new file with mode: 0644]
doc/bugs/no_easy_way_to_wrap_HTML_container_around_a_set_of_inlined_pages.mdwn
doc/bugs/pagecount_is_broken.mdwn [new file with mode: 0644]
doc/bugs/support_for_openid2_logins.mdwn
doc/bugs/tagged__40____41___matching_wikilinks.mdwn
doc/bugs/unwanted_discussion_links_on_discussion_pages.mdwn [new file with mode: 0644]
doc/download.mdwn
doc/git.mdwn
doc/ikiwiki-transition.mdwn
doc/ikiwiki/directive/aggregate.mdwn
doc/ikiwiki/directive/comment.mdwn [new file with mode: 0644]
doc/ikiwiki/directive/format.mdwn
doc/ikiwiki/openid.mdwn
doc/ikiwiki/wikilink.mdwn
doc/ikiwiki/wikilink/discussion.mdwn
doc/ikiwikiusers.mdwn
doc/news/version_3.12.mdwn
doc/news/version_3.13.mdwn [new file with mode: 0644]
doc/news/version_3.14.mdwn [new file with mode: 0644]
doc/plugins/comments.mdwn
doc/plugins/contrib.mdwn
doc/plugins/contrib/headinganchors.mdwn
doc/plugins/contrib/headinganchors/discussion.mdwn [new file with mode: 0644]
doc/plugins/contrib/mailbox.mdwn [new file with mode: 0644]
doc/plugins/contrib/mailbox/discussion.mdwn [new file with mode: 0644]
doc/plugins/contrib/po.mdwn
doc/plugins/contrib/postal.mdwn [new file with mode: 0644]
doc/plugins/highlight.mdwn [new file with mode: 0644]
doc/plugins/more/discussion.mdwn [new file with mode: 0644]
doc/plugins/openid.mdwn
doc/plugins/txt.mdwn
doc/shortcuts.mdwn
doc/style.css
doc/todo/Allow_disabling_edit_and_preferences_links.mdwn
doc/todo/automatic_use_of_syntax_plugin_on_source_code_files.mdwn
doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn
doc/todo/comment_by_mail.mdwn
doc/todo/latex.mdwn
doc/todo/matching_different_kinds_of_links.mdwn
doc/todo/mbox.mdwn
doc/todo/section-numbering.mdwn [new file with mode: 0644]
doc/todo/syntax_highlighting.mdwn
doc/todo/syntax_highlighting/discussion.mdwn
doc/todo/target_filter_for_brokenlinks.mdwn [new file with mode: 0644]
doc/todo/tracking_bugs_with_dependencies.mdwn
doc/todo/wiki-formatted_comments_with_syntax_plugin.mdwn
doc/users/jasonblevins.mdwn
doc/wikitemplates.mdwn
gitremotes
ikiwiki-transition
ikiwiki.in
pm_filter
po/bg.po
po/cs.po
po/da.po
po/de.po
po/es.po
po/fr.po
po/gu.po
po/ikiwiki.pot
po/pl.po
po/sv.po
po/vi.po
t/basewiki_brokenlinks.t
t/pagespec_match.t
t/permalink.t
t/preprocess.t
t/syntax.t
templates/editcomment.tmpl

index 0e59b1b5503e829984b1bc1a3bf1a7ccb77ff97f..67c1c661055f3afaac79d23663908283bd08c11c 100644 (file)
@@ -1253,7 +1253,7 @@ sub preprocess ($$$;$$) {
                                                |
                                                "[^"]+"         # single-quoted value
                                                |
-                                               [^\s\]]+        # unquoted value
+                                               [^"\s\]]+       # unquoted value
                                        )
                                        \s*                     # whitespace or end
                                                                # of directive
@@ -1276,7 +1276,7 @@ sub preprocess ($$$;$$) {
                                                |
                                                "[^"]+"         # single-quoted value
                                                |
-                                               [^\s\]]+        # unquoted value
+                                               [^"\s\]]+       # unquoted value
                                        )
                                        \s*                     # whitespace or end
                                                                # of directive
index da97dbc2855bc59f17efe5792bacb6c36fe8e7f7..cf8f25281585fff56ee8b11dd9c58bdfc64b793c 100644 (file)
@@ -30,7 +30,7 @@ sub preprocess (@) {
        my %broken;
        foreach my $page (pagespec_match_list([keys %links],
                        $params{pages}, location => $params{page})) {
-               my $discussion=gettext("discussion");
+               my $discussion=gettext("Discussion");
                my %seen;
                foreach my $link (@{$links{$page}}) {
                        next if $seen{$link};
index e618d1a90ade4f1a1286e856e1b7ea65cd1fc981..517e16f9ff8afd0ca3de21df8ace8558a03173bb 100644 (file)
@@ -21,6 +21,8 @@ my %commentstate;
 sub import {
        hook(type => "checkconfig", id => 'comments',  call => \&checkconfig);
        hook(type => "getsetup", id => 'comments',  call => \&getsetup);
+       hook(type => "preprocess", id => 'comment', call => \&preprocess);
+       # here for backwards compatability with old comments
        hook(type => "preprocess", id => '_comment', call => \&preprocess);
        hook(type => "sessioncgi", id => 'comment', call => \&sessioncgi);
        hook(type => "htmlize", id => "_comment", call => \&htmlize);
@@ -287,10 +289,15 @@ sub editcomment ($$) {
        else {
                $type = $config{default_pageext};
        }
+
+
        my @page_types;
        if (exists $IkiWiki::hooks{htmlize}) {
-               @page_types = grep { ! /^_/ } keys %{$IkiWiki::hooks{htmlize}};
+               foreach my $key (grep { !/^_/ } keys %{$IkiWiki::hooks{htmlize}}) {
+                       push @page_types, [$key, $IkiWiki::hooks{htmlize}{$key}{longname} || $key];
+               }
        }
+       @page_types=sort @page_types;
 
        $form->field(name => 'do', type => 'hidden');
        $form->field(name => 'sid', type => 'hidden', value => $session->id,
@@ -372,7 +379,7 @@ sub editcomment ($$) {
 
        my $location=unique_comment_location($page, $config{srcdir});
 
-       my $content = "[[!_comment format=$type\n";
+       my $content = "[[!comment format=$type\n";
 
        # FIXME: handling of double quotes probably wrong?
        if (defined $session->param('name')) {
index af42097baedc2acb46534e9c818e0124ec0dc82b..467cd9ed5bf54827da0f75d03304918ba8947a71 100644 (file)
@@ -230,7 +230,7 @@ sub cgi_editpage ($$) {
                                $dir=~s![^/]+/+$!!;
                                
                                if ((defined $form->field('subpage') && length $form->field('subpage')) ||
-                                   $page eq gettext('discussion')) {
+                                   $page eq lc(gettext('Discussion'))) {
                                        $best_loc="$from/$page";
                                }
                                else {
@@ -280,6 +280,7 @@ sub cgi_editpage ($$) {
                                        push @page_types, [$key, $hooks{htmlize}{$key}{longname} || $key];
                                }
                        }
+                       @page_types=sort @page_types;
                        
                        $form->tmpl_param("page_select", 1);
                        $form->field(name => "page", type => 'select',
index bbe3aa9fee56e28b978e8d11c0f5f71d6d1b8824..1513cbed72a67447fa8bcedd9bff1f10ce076262 100644 (file)
@@ -10,21 +10,33 @@ sub import {
 }
 
 sub preprocess (@) {
-       my $format=$_[0];
-       shift; shift;
-       my $text=$_[0];
-       shift; shift;
        my %params=@_;
+       my $format=shift;
+       shift;
+       my $text=IkiWiki::preprocess($params{page}, $params{destpage}, shift);
+       shift;
 
        if (! defined $format || ! defined $text) {
                error(gettext("must specify format and text"));
        }
-       elsif (! exists $IkiWiki::hooks{htmlize}{$format}) {
-               error(sprintf(gettext("unsupported page format %s"), $format));
+       elsif (exists $IkiWiki::hooks{htmlize}{$format}) {
+               return IkiWiki::htmlize($params{page}, $params{destpage},
+                                       $format, $text);
        }
+       else {
+               # Other plugins can register htmlizefallback
+               # hooks to add support for page types
+               # not suitable for htmlize. Try them until
+               # one succeeds.
+               my $ret;
+               IkiWiki::run_hooks(htmlizefallback => sub {
+                       $ret=shift->($format, $text)
+                               unless defined $ret;
+               });
+               return $ret if defined $ret;
 
-       return IkiWiki::htmlize($params{page}, $params{destpage}, $format,
-               IkiWiki::preprocess($params{page}, $params{destpage}, $text));
+               error(sprintf(gettext("unsupported page format %s"), $format));
+       }
 }
 
 1
index 3f40c5859f3d22f7d7c1fc7dfb8d9398e8a7249f..2e2dc04a111a164745fb628785b509d40e024e6c 100644 (file)
@@ -32,6 +32,12 @@ sub cgi_goto ($;$) {
                }
        }
 
+       # It's possible that $page is not a valid page name;
+       # if so attempt to turn it into one.
+       if ($page !~ /$config{wiki_file_regexp}/) {
+               $page=titlepage($page);
+       }
+
        IkiWiki::loadindex();
 
        # If the page is internal (like a comment), see if it has a
diff --git a/IkiWiki/Plugin/highlight.pm b/IkiWiki/Plugin/highlight.pm
new file mode 100644 (file)
index 0000000..20f79ef
--- /dev/null
@@ -0,0 +1,143 @@
+#!/usr/bin/perl
+package IkiWiki::Plugin::highlight;
+
+use warnings;
+use strict;
+use IkiWiki 3.00;
+
+# locations of highlight's files
+my $filetypes="/etc/highlight/filetypes.conf";
+my $langdefdir="/usr/share/highlight/langDefs";
+
+sub import {
+       hook(type => "getsetup", id => "highlight",  call => \&getsetup);
+       hook(type => "checkconfig", id => "highlight", call => \&checkconfig);
+       # this hook is used by the format plugin
+       hook(type => "htmlizefallback", id => "highlight", call =>
+               \&htmlizefallback);
+}
+
+sub getsetup () {
+       return
+               plugin => {
+                       safe => 1,
+                       rebuild => 1, # format plugin
+               },
+               tohighlight => {
+                       type => "string",
+                       example => ".c .h .cpp .pl .py Makefile:make",
+                       description => "types of source files to syntax highlight",
+                       safe => 1,
+                       rebuild => 1,
+               },
+}
+
+sub checkconfig () {
+       if (exists $config{tohighlight}) {
+               foreach my $file (split ' ', $config{tohighlight}) {
+                       my @opts = $file=~s/^\.// ?
+                               (keepextension => 1) :
+                               (noextension => 1);
+                       my $ext = $file=~s/:(.*)// ? $1 : $file;
+               
+                       my $langfile=ext2langfile($ext);
+                       if (! defined $langfile) {
+                               error(sprintf(gettext(
+                                       "tohighlight contains unknown file type '%s'"),
+                                       $ext));
+                       }
+       
+                       hook(
+                               type => "htmlize",
+                               id => $file,
+                               call => sub {
+                                       my %params=@_;
+                                       highlight($langfile, $params{content});
+                               },
+                               longname => sprintf(gettext("Source code: %s"), $file),
+                               @opts,
+                       );
+               }
+       }
+}
+
+sub htmlizefallback {
+       my $format=lc shift;
+       my $langfile=ext2langfile($format);
+
+       if (! defined $langfile) {
+               return;
+       }
+
+       return highlight($langfile, shift);
+}
+
+my %ext2lang;
+my $filetypes_read=0;
+my %highlighters;
+
+# Parse highlight's config file to get extension => language mappings.
+sub read_filetypes () {
+       open (IN, $filetypes);
+       while (<IN>) {
+               chomp;
+               if (/^\$ext\((.*)\)=(.*)$/) {
+                       $ext2lang{$_}=$1 foreach $1, split ' ', $2;
+               }
+       }
+       close IN;
+       $filetypes_read=1;
+}
+
+
+# Given a filename extension, determines the language definition to
+# use to highlight it.
+sub ext2langfile ($) {
+       my $ext=shift;
+
+       my $langfile="$langdefdir/$ext.lang";
+       return $langfile if exists $highlighters{$langfile};
+
+       read_filetypes() unless $filetypes_read;
+       if (exists $ext2lang{$ext}) {
+               return "$langdefdir/$ext2lang{$ext}.lang";
+       }
+       # If a language only has one common extension, it will not
+       # be listed in filetypes, so check the langfile.
+       elsif (-e $langfile) {
+               return $langfile;
+       }
+       else {
+               return undef;
+       }
+}
+
+# Interface to the highlight C library.
+sub highlight ($$) {
+       my $langfile=shift;
+       my $input=shift;
+
+       eval q{use highlight};
+       if ($@) {
+               print STDERR gettext("warning: highlight perl module not available; falling back to pass through");
+               return $input;
+       }
+
+       my $gen;
+       if (! exists $highlighters{$langfile}) {
+               $gen = highlightc::CodeGenerator_getInstance($highlightc::XHTML);
+               $gen->setFragmentCode(1); # generate html fragment
+               $gen->setHTMLEnclosePreTag(1); # include stylish <pre>
+               $gen->initTheme("/dev/null"); # theme is not needed because CSS is not emitted
+               $gen->initLanguage($langfile); # must come after initTheme
+               $gen->setEncoding("utf-8");
+               $highlighters{$langfile}=$gen;
+       }
+       else {          
+               $gen=$highlighters{$langfile};
+       }
+
+       return $gen->generateString($input);
+}
+
+1
index 27ea1c4a64bf8ebca3be99755c86a08a2192cb65..9d5ebc34daaeb6aa942f41b1424ece4ba00c9036 100644 (file)
@@ -354,7 +354,7 @@ sub preprocess_inline (@) {
                                        my $file = $pagesources{$page};
                                        my $type = pagetype($file);
                                        if ($config{discussion}) {
-                                               my $discussionlink=gettext("discussion");
+                                               my $discussionlink=lc(gettext("Discussion"));
                                                if ($page !~ /.*\/\Q$discussionlink\E$/ &&
                                                    (length $config{cgiurl} ||
                                                     exists $links{$page."/".$discussionlink})) {
index d2cebca342756fdbb8d9a31e34b43fe527bd4b4d..bd73f1a04e728638c19994c0d64a4f288a120150 100644 (file)
@@ -45,7 +45,7 @@ sub checkconfig () {
 sub needsbuild (@) {
        my $needsbuild=shift;
 
-       @fulllist = sort keys %{$IkiWiki::hooks{preprocess}};
+       @fulllist = grep { ! /^_/ } sort keys %{$IkiWiki::hooks{preprocess}};
        @shortlist = grep { ! $IkiWiki::hooks{preprocess}{$_}{shortcut} } @fulllist;
        $pluginstring = join(' ', @shortlist) . " : " . join(' ', @fulllist);
 
index 3da01efee154988d1432d0ed54680525569e224c..60b193eca04fb08702a99077aa911f66dbc33705 100644 (file)
@@ -23,7 +23,7 @@ sub canedit ($$) {
        my $cgi=shift;
        my $session=shift;
 
-       my $discussion=gettext("discussion");
+       my $discussion=lc(gettext("Discussion"));
        return "" if $page=~/(\/|^)\Q$discussion\E$/;
        return undef;
 }
index cf74c9b794bb4977d0ed8eb17fbc6e36ed045ba0..944eba54123ba0a6adec21ae8ff90284521785f5 100644 (file)
@@ -34,7 +34,7 @@ sub preprocess (@) {
        }
        
        my @orphans;
-       my $discussion=gettext("discussion");
+       my $discussion=lc(gettext("Discussion"));
        foreach my $page (pagespec_match_list(
                        [ grep { ! $linkedto{$_} && $_ ne 'index' }
                                keys %pagesources ],
index 1955603b023d84315e6c9487ea095a93ca6a6afe..5a2301af49232943d4f0889c0f3b9ba28f05396f 100644 (file)
@@ -26,8 +26,13 @@ sub preprocess (@) {
        # register a dependency.
        add_depends($params{page}, $params{pages});
        
-       my @pages=pagespec_match_list([keys %pagesources], $params{pages}, location => $params{page})
-               if $params{pages} ne "*"; # optimisation;
+       my @pages;
+       if ($params{pages} eq "*") {
+               @pages=keys %pagesources;
+       }
+       else {
+               @pages=pagespec_match_list([keys %pagesources], $params{pages}, location => $params{page});
+       }
        return $#pages+1;
 }
 
index 8dad92be3e8794c2ef09ed4a518f814fb49be2a5..d0e5894dcac9e135f83794493c00cd75cea17527 100644 (file)
@@ -137,14 +137,16 @@ sub rename_form ($$$) {
                # insert the standard extensions
                my @page_types;
                if (exists $IkiWiki::hooks{htmlize}) {
-                       @page_types=grep { !/^_/ }
-                               keys %{$IkiWiki::hooks{htmlize}};
+                       foreach my $key (grep { !/^_/ } keys %{$IkiWiki::hooks{htmlize}}) {
+                               push @page_types, [$key, $IkiWiki::hooks{htmlize}{$key}{longname} || $key];
+                       }
                }
+               @page_types=sort @page_types;
        
                # make sure the current extension is in the list
                my ($ext) = $pagesources{$page}=~/\.([^.]+)$/;
                if (! $IkiWiki::hooks{htmlize}{$ext}) {
-                       unshift(@page_types, $ext);
+                       unshift(@page_types, [$ext, $ext]);
                }
        
                $f->field(name => "type", type => 'select',
index adae9f0d5898dee39190a29328fa7e221c82dcdc..f4de19378e86223bf7c2d518a5c618f7a47d120d 100644 (file)
@@ -76,7 +76,7 @@ sub genpage ($$) {
                $actions++;
        }
        if ($config{discussion}) {
-               my $discussionlink=gettext("discussion");
+               my $discussionlink=lc(gettext("Discussion"));
                if ($page !~ /.*\/\Q$discussionlink\E$/ &&
                   (length $config{cgiurl} ||
                    exists $links{$page."/".$discussionlink})) {
@@ -146,7 +146,7 @@ sub scan ($) {
                if ($config{discussion}) {
                        # Discussion links are a special case since they're
                        # not in the text of the page, but on its template.
-                       $links{$page}=[ $page."/".gettext("discussion") ];
+                       $links{$page}=[ $page."/".lc(gettext("Discussion")) ];
                }
                else {
                        $links{$page}=[];
index 5111541e48d5865ef056018306a3a23b09d54ba5..742d67666ba980d556bfc1b91128f77848b2c672 100644 (file)
@@ -98,6 +98,29 @@ sub import (@) {
                }
        }
 
+       # Make sure that all the listed plugins can load
+       # and checkconfig is ok. If a plugin fails to work,
+       # remove it from the configuration and keep on truckin'.
+       my %bakconfig=%config; # checkconfig can modify %config so back up
+       if (! eval { IkiWiki::loadplugins(); IkiWiki::checkconfig() }) {
+               foreach my $plugin (@{$config{default_plugins}}, @{$bakconfig{add_plugins}}) {
+                       eval {
+                               # delete all hooks so that only this plugins's
+                               # checkconfig will be run
+                               %IkiWiki::hooks=();
+                               IkiWiki::loadplugin($plugin);
+                               IkiWiki::run_hooks(checkconfig => sub { shift->() });
+                       };
+                       if ($@) {
+                               print STDERR sprintf(gettext("** Disabling plugin %s, since it is failing with this message:"),
+                                       $plugin)."\n";
+                               print STDERR "$@\n";
+                               push @{$bakconfig{disable_plugins}}, $plugin;
+                       }
+               }
+       }
+       %config=%bakconfig;
+
        # Generate setup file.
        require IkiWiki::Setup;
        IkiWiki::Setup::dump($config{dumpsetup});
index 7daa350d95b77935bc6607fd79fd0257baeb035e..75b6d0471ad6fd3b2806d2e32216f61d07759884 100644 (file)
@@ -1,6 +1,15 @@
+ikiwiki (3.13) unstable; urgency=low
+
+  The `ikiwiki-transition deduplinks` command introduced in the
+  last release was buggy. If you followed the NEWS file instructions
+  and ran it, you should run `ikiwiki -setup` to rebuild your wiki
+  to fix the problem.
+
+ -- Joey Hess <joeyh@debian.org>  Fri, 22 May 2009 13:04:02 -0400
+
 ikiwiki (3.12) unstable; urgency=low
 
-  You may want to run `ikiwiki-transition deduplinks /path/to/srcdir`
+  You may want to run `ikiwiki-transition deduplinks your.setup`
   after upgrading to this version of ikiwiki. This command will
   optimise your wiki's saved state, removing duplicate information
   that can slow ikiwiki down.
index 4e1aa854598fba25d699eca391e0463f39d54e79..d72efe455c1bc0071d8f9a5b4817b345c13a2c62 100644 (file)
@@ -1,13 +1,47 @@
-ikiwiki (3.14) UNRELEASED; urgency=low
+ikiwiki (3.15) UNRELEASED; urgency=low
 
+  * comment: Make comment directives no longer use the internal "_comment"
+    form, and document the comment directive syntax.
+  * Avoid relying on translators preserving the case when translating
+    "discussion", which caused Discussion pages to get unwanted Discussion
+    links.
+  * Tighten up matching of bare words inside directives; do not
+    allow an unterminated """ string to be treated as a series
+    of bare words. Fixes runaway regexp recursion/backtracking
+    in strange situations.
+  * Setup automator: Check that each plugin added to the generated
+    setup file can be loaded and that its config is ok. If a plugin
+    fails for any reason, disable it in the generated file.
+    Closes: 532001
+  * pagecount: Fix broken optimisation for * pagespec.
+  * goto: Support being passed a page title that is not a valid page
+    name, to support several cases including mercurial's long user
+    names on the RecentChanges page, and urls with spaces being handled
+    by the 404 plugin.
   * Add new hooks: canremove, canrename, rename. (intrigeri)
   * rename: Refactor subpage rename handling code into rename hook. (intrigeri)
   * po: New plugin, suporting translation of wiki pages using po files.
     (intrigeri)
 
- -- Joey Hess <joeyh@debian.org>  Mon, 20 Apr 2009 19:40:25 -0400
+ -- Joey Hess <joeyh@debian.org>  Tue, 02 Jun 2009 17:03:41 -0400
+
+ikiwiki (3.14) unstable; urgency=low
+
+  * highlight: New plugin supporting syntax highlighting of pretty much
+    anything.
+  * debian/control: Add suggests for libhighlight-perl, although
+    that package is not yet created by Debian's highlight source package.
+    (See #529869)
+  * format: Provide a htmlizefallback hook that other plugins
+    can use to handle formats that are not suitable for general-purpose
+    htmlize hooks. Used by highlight.
+  * Fix test suite to not rely on an installed copy of ikiwiki after
+    underlaydir change. Closes: #530502
+  * Danish translation update. Closes: #530877
+
+ -- Joey Hess <joeyh@debian.org>  Mon, 01 Jun 2009 13:05:34 -0400
 
-ikiwiki (3.13) UNRELEASED; urgency=low
+ikiwiki (3.13) unstable; urgency=low
 
   * ikiwiki-transition: If passed a nonexistant srcdir, or one not
     containing .ikiwiki, abort with an error rather than creating it.
@@ -20,8 +54,12 @@ ikiwiki (3.13) UNRELEASED; urgency=low
     interpolation on user-supplied data when translating pagespecs.
   * ikiwiki-transition: Allow setup files to be passed to all subcommands
     that need a srcdir.
+  * ikiwiki-transition: deduplinks was broken and threw away all
+    metadata stored by plugins in the index. Fix this bug.
+  * listdirectives: Avoid listing _comment directives and generally
+    assume any directive starting with _ is likewise internal.
 
- -- Joey Hess <joeyh@debian.org>  Wed, 06 May 2009 20:45:44 -0400
+ -- Joey Hess <joeyh@debian.org>  Fri, 22 May 2009 14:10:56 -0400
 
 ikiwiki (3.12) unstable; urgency=low
 
index 05ccd0df332d2bc1347c4e862c3e1d95bcb2f1d3..5205ed74951c2cbcdf4f5f8d3e666555c1532f12 100644 (file)
@@ -35,7 +35,8 @@ Suggests: viewvc | gitweb | viewcvs, libsearch-xapian-perl,
   liblocale-gettext-perl (>= 1.05-1), libtext-typography-perl,
   libtext-csv-perl, libdigest-sha1-perl, graphviz, libnet-amazon-s3-perl,
   sparkline-php, texlive, dvipng, libtext-wikicreole-perl,
-  libsort-naturally-perl, libtext-textile-perl, po4a (>= 0.35-1), gettext
+  libsort-naturally-perl, libtext-textile-perl, libhighlight-perl,
+  po4a (>= 0.35-1), gettext
 Conflicts: ikiwiki-plugin-table
 Replaces: ikiwiki-plugin-table
 Provides: ikiwiki-plugin-table
diff --git a/doc/anchor.mdwn b/doc/anchor.mdwn
new file mode 100644 (file)
index 0000000..012e52f
--- /dev/null
@@ -0,0 +1,3 @@
+ikiwiki works with anchors in various situations.
+
+This page accumulates links to the concept of anchors.
index c61ae3dba08a668ba1d9f566610f2e311a14de71..8392884ebc6c62d9d58a5819f35c1efaadeb9be8 100644 (file)
@@ -18,3 +18,9 @@ It currently includes these pages:
 
 As well as a few other files, like [[favicon.ico]], [[local.css]],
 [[style.css]], and some icons.
+
+Note that an important property of the basewiki is that it should be
+self-contained. That means that the pages listed above cannot link
+to pages outside the basewiki. Ikiwiki's test suite checks that the
+basewiki is self-contained, and from time to time links have to be
+removed (or replaced with `iki` [[shortcuts]]) to keep this invariant.
index 5410ebbfd8789422f1036be9fcfb268b8fc4fb5d..46011a7e833cb5844009ad67f60208e4a4c5b8d6 100644 (file)
@@ -151,3 +151,10 @@ dubious
 >>>>>> You can check it out for yourself by pulling my fork of this, at github or my local repo.
 >>>>>> github will probably be faster for you: git://github.com/kjikaqawej/ikiwiki-simon.git --[[simonraven]]
 
+>>>>>>> I don't know what I'm supposed to see in your github tree.. it
+>>>>>>> looks identical to an old snapshot of ikiwiki's regular git repo?
+>>>>>>> If you want to put up the .deb you're using, I could examine that.
+>>>>>>>
+>>>>>>> I was in fact able to reproduce the insecure dependency in mkdir
+>>>>>>> message -- but only if I run 'perl -T ikiwiki'.
+>>>>>>> --[[Joey]] 
index bd895127ae7b47743bb2cbbe2e9065e133363d71..5519e45c682a450d5d5c027fb0b2a70398739736 100644 (file)
@@ -1,3 +1,21 @@
 If I have a &lt;--#include virtual="foo" --&gt; in some file, it gets stripped, even though other HTML comments don't get stripped. I imagine it's some plugin doing it, or IkiWiki itself, or an IkiWiki dependency, but I haven't found where this is happening. I'm trying to implement a workaround for my sidebars forcing a rebuild of the wiki every day - I use the calendar plugin - when the day changes, by using SSI.
 
 > It is probably the [[plugins/htmlscrubber]] plugin. -- [[Jon]]
+
+> htmlscrubber does strip these, because they look like
+> a html tag to it, not a html comment. (html comments start
+> with `<!--` .. of course, they get stripped too, because
+> they can be used to hide javascript..)
+> 
+> Anyway, it makes sense for the htmlscrubber to strip server-side
+> includes because otherwise your wiki could be attacked
+> by them being added to it. If you want to use both the htmlscrubber and
+> SSI together, I'd suggest you modify the [[wikitemplates]]
+> and put the SSI on there.
+> 
+> Ie, `page.tmpl` has a 
+> div that the sidebar is put into; if you just replace
+> that with the SSI that includes your static sidebar,
+> you should be good to go. --[[Joey]]
+
+[[done]]
diff --git a/doc/bugs/__34__more__34___doesn__39__t_work.mdwn b/doc/bugs/__34__more__34___doesn__39__t_work.mdwn
new file mode 100644 (file)
index 0000000..b2d929f
--- /dev/null
@@ -0,0 +1,17 @@
+As one can see at [[plugins/more/discussion]], the [[plugins/more]] plugin doesn't work --- it renders as:
+
+    <p><a name="more"></a></p>
+    
+    <p>This is the rest of my post. Not intended for people catching up on
+    their blogs at 30,000 feet. Because I like to make things
+    difficult.</p>
+
+No way to toggle visibility.
+-- Ivan Z.
+
+> More is not about toggling visibility. Perhaps you want
+> [[plugins/toggle]] More is about displaying the whole page
+> content when it's a standalone page, and only displaying a fragment when
+> it's inlined into a blog. --[[Joey]] [[done]]
+
+>> I see, thanks for bothering with the reply, I didn't understand this. --Ivan Z.
diff --git a/doc/bugs/aggregate_global_feed_names.mdwn b/doc/bugs/aggregate_global_feed_names.mdwn
new file mode 100644 (file)
index 0000000..27127ce
--- /dev/null
@@ -0,0 +1,13 @@
+[[plugins/aggregate]] takes a name parameter that specifies a global name
+for a feed. This causes some problems:
+
+* If a site has multiple pages that aggregate, and they use the same
+  name, one will win and get the global name, the other will claim it's
+  working, but it's really showing what the other aggregated.
+* If an aggregate directive is moved from page A to page B, and the wiki
+  refreshed, aggregate does not realize the feed moved, and so it will
+  keep aggregated pages under `A/feed_name/*`. To work around this bug,
+  you have to delete A, refresh (maybe with --aggregate?), and then add B.
+
+Need to find a way to not make the name be global. Perhaps it needs to
+include the name of the page that contains the directive?
diff --git a/doc/bugs/complex_wiki-code___40__braces__41___in_wikilink-text_breaks_wikilinks.mdwn b/doc/bugs/complex_wiki-code___40__braces__41___in_wikilink-text_breaks_wikilinks.mdwn
new file mode 100644 (file)
index 0000000..364fae3
--- /dev/null
@@ -0,0 +1,9 @@
+Example (from [here](http://git.ikiwiki.info/?p=ikiwiki;a=blobdiff;f=doc/todo/matching_different_kinds_of_links.mdwn;h=26c5a072bf3cb205b238a4e6fd0882583a0b7609;hp=1d7c78d9065d78307b43a1f58a53300cde4015fa;hb=9b4c83127fdef0ceb682c104db9bfb321b17022e;hpb=df4cc4c16ca230ee99b80c80043ba54fb95f6e71)):
+<pre>
+[[`\[[!taglink TAG\]\]`|plugins/tag]]
+</pre>
+gives:
+
+[[`\[[!taglink TAG\]\]`|plugins/tag]]
+
+Expected: there is a [[ikiwiki/wikilink]] with the complex text as the displayed text. --Ivan Z.
diff --git a/doc/bugs/firefox_doesn__39__t_want_to_load_updated_pages_at_ikiwiki.info.mdwn b/doc/bugs/firefox_doesn__39__t_want_to_load_updated_pages_at_ikiwiki.info.mdwn
new file mode 100644 (file)
index 0000000..8cb47f8
--- /dev/null
@@ -0,0 +1,5 @@
+I'm using firefox-3.0.8-alt0.M41.1 (Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.4pre) Gecko/2008100921 Firefox/3.0). I have noticed that quite often it shows an old state of a page at http://ikiwiki.info, e.g., [[recentchanges]] without my last edits, or the last page I edited (say, 50 min ago) in the state it was before I edited it.
+
+Only explicitly pressing "reload" helps.
+
+Is it a bug? I haven't been noticing such problems usually on other sites. --Ivan Z.
diff --git a/doc/bugs/goto_with_bad_page_name.mdwn b/doc/bugs/goto_with_bad_page_name.mdwn
new file mode 100644 (file)
index 0000000..bc462c8
--- /dev/null
@@ -0,0 +1,25 @@
+If goto is passed a page name that 
+contains spaces or is otherwise not a valid page name,
+it will display a "page does not exist", with a create link. But,
+clicking on the link will result in "bad page name".
+
+I have found at least two ways it can happen:
+
+* If 404 is enabled, and the user goes to "http://wiki/some page with spaces"
+* If mercurial is used, it pulls the user's full name, with spaces,
+  out for `rcs_recentchanges` and that ends up on RecentChanges.
+
+When fixing, need to keep in mind that we can't just run the input through
+titlepage, since in all other circumstances, the page name is already valid
+and we don't want to doubly-encode it.
+
+Seems like the goto plugin needs to check if the page name is valid and
+pass it through titlepage if not.
+
+(As a side effect of this, 404 will start redirecting "http://wiki/some page
+with spaces" to "http://wiki/some_page_with_spaces", if the latter exists.
+That seems like a fairly good thing.)
+
+[[done]]
+
+--[[Joey]] 
index 85c2d0c6cf9eba1564bff7e618c34bf9eb8861d3..1c1cbbb738b3d32cb7b6e7037d97254c7bf6a04d 100644 (file)
@@ -7,3 +7,17 @@ with a template definition like
     <div id="foo">\[[!inline ... pages="<TMPL_VAR raw_pages>"]]</div>
 
 It would be much more convenient if the loop over pages happened in the template, allowing me to just stick whatever markup I want around the loop.
+
+> Unfortunatly, I don't think this can be changed at this point,
+> it would probably break a lot of stuff that relies on the current
+> template arrangement, both in ikiwiki's internals and in
+> people's own, customised inline templates. (Also, I have some plans
+> to allow a single inline to use different templates for different
+> sorts of pages, which would rely on the current one template per
+> page approach to work.)
+> 
+> But there is a simple workaround.. the first template in
+> an inline has FIRST set, and the last one has LAST set.
+> So you can use that to emit your div or table top and bottom.
+> 
+> [[done]] --[[Joey]] 
diff --git a/doc/bugs/pagecount_is_broken.mdwn b/doc/bugs/pagecount_is_broken.mdwn
new file mode 100644 (file)
index 0000000..101230d
--- /dev/null
@@ -0,0 +1,3 @@
+The [[plugins/pagecount]] plugin seems to be broken, as it claims there are [[!pagecount ]] pages in this wiki. (if it's not 0, the bug is fixed)
+
+[[fixed|done]] --[[Joey]] 
index f78d50c3c50e16ea47fe6d4217acb2688c2f09a4..1d99370f67df8b88267b978ef2f70daa5dcd5bbe 100644 (file)
@@ -8,3 +8,10 @@ I've contacted JanRain who have pointed me to:
 * Some [work](http://code.sixapart.com/svn/openid/trunk/perl/) by David Recordon
 
 However both Perl OpenID 2.x implementations have not been released and are incomplete implementations. :(
+
+> Both of the projects referenced above have since been released.
+> Net::OpenID::Consumer 0.x in Debian is indeed only an OpenID 1
+> implementation. However, Net::OpenID::Consumer 1.x claims to be
+> an OpenID 2 implementation (it's the second of the projects
+> above). I've filed a bug in Debian asking for the package to be
+> updated. --[[smcv]]
index 1bd556f5009becbbc26e3517686e8884265b5509..e7e4af7c3267b155b0b45141968746d08b5aa79a 100644 (file)
@@ -1,7 +1,10 @@
 It may be that I'm simply misunderstanding something, but what is the rationale
 for having `tagged()` also match normal wikilinks?
 
-> It simply hasn't been implemented yet -- see the answer in [[todo/tag_pagespec_function]]. Tags and wikilinks share the same underlying implementation, although ab reasonable expectation is that they are kept separate. --Ivan Z.
+> It simply hasn't been implemented yet -- see the answer in
+> [[todo/tag_pagespec_function]]. Tags and wikilinks share the same
+> underlying implementation, although ab reasonable expectation is that
+> they are kept separate. --Ivan Z.
 
 The following situation.  I have `tagbase => 'tag'`.  On some pages, scattered
 over the whole wiki, I use `\[[!tag open_issue_gdb]]` to declare that this page
@@ -15,3 +18,16 @@ this is due to the wikilink being equal to a `\[[!tag ...]]`.  What's the
 rationale on this, or what am I doing wrong, and how to achieve what I want?
 
 --[[tschwinge]]
+
+> What you are doing "wrong" is putting non-tag pages (i.e.
+> `/tag/open_issues_gdb.mdwn`) under your tagbase. The rationale for
+> implementing tag as it has been, I think, is one of simplicity and
+> conciseness. -- [[Jon]]
+
+>> No, he has no pages under tagbase that aren't tags. This bug
+>> is valid. [[todo/matching_different_kinds_of_links]] is probably
+>> how it will eventually be solved. --[[Joey]] 
+
+> And this is an illustration why a clean work-around (without changing the software) is not possible: while thinking about [[todo/matching_different_kinds_of_links]], I thought one could work around the problem by simply explicitly including the kind of the relation into the link target (like the tagbase in tags), and by having a separate page without the "tagbase" to link to when one wants simply to refer to the tag without tagging. But this won't work: one has to at least once refer to the real tag page if one wants to talk about it, and this reference will count as tagging (unwanted). --Ivan Z.
+
+> But well, perhaps there is a workaround without introducing different kinds of links. One could modify the [[tag plugin|plugins/tag]] so that it adds 2 links to a page: for tagging -- `tagbase/TAG`, and for navigation -- `tagdescription/TAG` (displayed at the bottom). Then the `tagdescription/TAG` page would hold whatever list one wishes (with `tagged(TAG)` in the pagespec), and whenever one wants to merely refer to the tag, one should link to `tagdescription/TAG`--this link won't count as tagging. So, `tagbase/TAG` would become completely auxiliary (internal) link targets for ikiwiki, the users would edit or link to only `tagdescription/TAG`. --Ivan Z.
diff --git a/doc/bugs/unwanted_discussion_links_on_discussion_pages.mdwn b/doc/bugs/unwanted_discussion_links_on_discussion_pages.mdwn
new file mode 100644 (file)
index 0000000..c74a094
--- /dev/null
@@ -0,0 +1,36 @@
+Background: some po translations (amongst which `fr.po`) translate "discussion" to an upper-cased word (in French: "Discussion").
+By the way, this is wished e.g. in German, where such a noun has to be written with an upper-cased "D", but I can not see
+the logic behind the added "D" in French.
+
+Anyway, this gettext-translated word is used to name the discussion pages, as `$discussionlink` in `Render.pm` is
+built from `gettext("discussion")`. In the same piece of code, a case-sensitive regexp that tests wether the page
+being rendered is a discussion page is case-sensitive.
+
+On the other hand, new discussion pages are created with a name built from `gettext("Discussion")` (please note the upper-cased
+"D"). Such a new page name seems to be automagically downcased.
+
+This leads to newly created discussion pages not being recognized as discussion pages by the
+`$page !~ /.*\/\Q$discussionlink\E$/` regexp, so that then end with an unwanted discussion link.
+
+A simple fix that seems to work is to make this regexp case-insensitive:
+
+    git diff IkiWiki/Render.pm
+    diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm
+    index adae9f0..093c25b 100644
+    --- a/IkiWiki/Render.pm
+    +++ b/IkiWiki/Render.pm
+    @@ -77,7 +77,7 @@ sub genpage ($$) {
+            }
+            if ($config{discussion}) {
+                    my $discussionlink=gettext("discussion");
+    -               if ($page !~ /.*\/\Q$discussionlink\E$/ &&
+    +               if ($page !~ /.*\/\Q$discussionlink\E$/i &&
+                       (length $config{cgiurl} ||
+                        exists $links{$page."/".$discussionlink})) {
+                            $template->param(discussionlink => htmllink($page, $page, gettext("Discussion"), noimageinline => 1, forcesubpage => 1));
+
+But the best way would be to avoid assuming implicitely that translators will translate "discussion" and "Discussion" the same way.
+
+> [[done]] --[[Joey]] 
+
+[[!tag patch]]
index 507b250a58efd3793eff4b673c1d6eec9c456779..448bdeeb9012d41dcebac810488b209ab7038503 100644 (file)
@@ -32,6 +32,8 @@ FreeBSD has ikiwiki in its
 
 Gentoo has an [ebuild](http://bugs.gentoo.org/show_bug.cgi?id=144453) in its bug database. 
 
+The [openSUSE Build Service](http://software.opensuse.org/search?baseproject=ALL&p=1&q=ikiwiki) has packages for openSUSE
+
 IkiWiki can be installed [from macports](http://www.macports.org/ports.php?by=name&substr=ikiwiki)
 by running `sudo port install ikiwiki`.
 
index 8aa7250a7e543b7ef658e1d79981813740544e1b..9e28f14649b69a48b544e4f442be6da30a701752 100644 (file)
@@ -39,6 +39,9 @@ into [[Joey]]'s working tree. This is recommended. :-)
 * [[jelmer]] `git://git.samba.org/jelmer/ikiwiki.git`
 * [[hendry]] `git://webconverger.org/git/ikiwiki`
 * [[jon]] `git://github.com/jmtd/ikiwiki.git`
+* [[ikipostal|DavidBremner]] `git://pivot.cs.unb.ca/git/ikipostal.git`
+* [[ikimailbox|DavidBremner]] `git://pivot.cs.unb.ca/git/ikimailbox.git`
+* [[ikiplugins|DavidBremner]] `git://pivot.cs.unb.ca/git/ikiplugins.git`
 
 ## branches
 
index 6177f5a467b9f9f499b3332b8a77f7db70d13013..3d81d659f1108a43ff4eb9a624739b069f98d3f0 100644 (file)
@@ -61,7 +61,7 @@ If this is not done explicitly, a user's plaintext password will be
 automatically converted to a hash when a user logs in for the first time
 after upgrade to ikiwiki 2.48.
 
-# deduplinks your.setup|srcdir
+# deduplinks your.setup
 
 In the past, bugs in ikiwiki have allowed duplicate link information
 to be stored in its indexdb. This mode removes such duplicate information,
index 70174f44068d528deb003a186b661399c77c9275..ddfcd40b79edfa4678e6a8a1c5b08fb9b9251634 100644 (file)
@@ -19,6 +19,11 @@ more aggregated feeds. For example:
 
        \[[!inline pages="internal(example/*)"]]
 
+Note the use of `internal()` in the [[ikiwiki/PageSpec]] to match
+aggregated pages. By default, aggregated pages are internal pages,
+which prevents them from showing up directly in the wiki, and so this
+special [[PageSpec]] is needed to match them.
+
 ## usage
 
 Here are descriptions of all the supported parameters to the `aggregate`
diff --git a/doc/ikiwiki/directive/comment.mdwn b/doc/ikiwiki/directive/comment.mdwn
new file mode 100644 (file)
index 0000000..21386df
--- /dev/null
@@ -0,0 +1,38 @@
+The `comment` directive is supplied by the
+[[!iki plugins/comments desc=comments]] plugin, and is used to add a comment
+to a page. Typically, the directive is the only thing on a comment page,
+and is filled out by the comment plugin when a user posts a comment.
+
+Example:
+
+       \[[!comment format=mdwn
+       username="foo"
+       subject="Bar"
+       date="2009-06-02T19:05:01Z"
+       content="""
+       Blah blah.
+       """
+       ]]
+
+## usage
+
+The only required parameter is `content`, the others just add or override
+metadata of the comment.
+
+* `content` - Text to display for the comment.
+  Note that [[directives|ikiwiki/directive]]
+  may not be allowed, depending on the configuration
+  of the comment plugin.
+* `format` - Specifies the markup used for the content.
+* `subject` - Subject for the comment.
+* `date` - Date the comment was posted. Can be entered in
+  nearly any format, since it's parsed by [[!cpan TimeDate]]
+* `username` - Used to record the username (or OpenID)
+  of a logged in commenter.
+* `ip` - Can be used to record the IP address of a commenter,
+  if they posted anonymously.
+* `claimedauthor` - Records the name that the user entered,
+  if anonmous commenters are allowed to enter their (unverified)
+  name.
+
+[[!meta robots="noindex, follow"]]
index 94cf1b04fdc24f70981716b18c9d5d94d8f73149..23830e9cd59e69d04217287627b221770b3908e3 100644 (file)
@@ -18,4 +18,12 @@ some other format:
                4
        """]]
 
+Note that if the highlight plugin is enabled, this directive can also be
+used to display syntax highlighted code. Many languages and formats are
+supported. For example:
+
+       \[[format perl """
+       print "hello, world\n";
+       """]]
+
 [[!meta robots="noindex, follow"]]
index 5c91dfb58475a6962cc1f9dce4d9108f650c8b53..a7965528486143de1f2be5cd255062e6786763f3 100644 (file)
@@ -16,7 +16,7 @@ To sign up for an OpenID, visit one of the following identity providers:
 * [Videntity](http://videntity.org/)
 * [LiveJournal](http://www.livejournal.com/openid/)
 * [TrustBearer](https://openid.trustbearer.com/)
-* or any of the [many others out there](http://openiddirectory.com/openid-providers-c-1.html) (but not [Yahoo](http://openid.yahoo.com) [[yet|plugins/openid/discussion/#Yahoo_unsupported]]).
+* or any of the [many others out there](http://openiddirectory.com/openid-providers-c-1.html)
 
 Your OpenID is the URL that you are given when you sign up.
 [[!if test="enabled(openid)" then="""
index 371c2528f2a170de4ae8cbef61d80f93c9cb1272..f561d58505ee9262e8c875324d1fad4aa4fd5a93 100644 (file)
@@ -21,7 +21,7 @@ name as the link text. For example `\[[foo_bar|SandBox]]` links to the SandBox
 page, but the link will appear like this: [[foo_bar|SandBox]].
 
 To link to an anchor inside a page, you can use something like
-`\[[WikiLink#foo]]`
+`\[[WikiLink#foo]]` .
 
 ## Directives and WikiLinks
 
index 0677ff7ded6a86be7d010dfd97affdb6b266832a..b146c9447336336ca486f4fd227fb09134f84cba 100644 (file)
@@ -1,6 +1,6 @@
-# Creating an anchor in Markdown
+# Creating an [[anchor]] in Markdown
 
-Is it a native Markdown "tag" for creating an anchor? Unfortunately,
+Is it a native Markdown "tag" for creating an [[anchor]]? Unfortunately,
 I haven't any information about it at
 [Markdown syntax](http://daringfireball.net/projects/markdown/syntax) page.
 
index 989f05dfca1949f9deedb3b964c8aa47d7006ce9..fdae9c04727882c1b292fad6c58b073e54173b23 100644 (file)
@@ -38,7 +38,6 @@ Projects & Organizations
 * [Chaos Computer Club Düsseldorf](https://www.chaosdorf.de)
 * [monkeysphere](http://web.monkeysphere.info/)
 * [The Walden Effect](http://www.waldeneffect.org/)
-* The [Fortran Wiki](http://fortranwiki.org/)
 * [Monotone](http://monotone.ca/wiki/FrontPage/)
 * The support pages for [Trinity Centre for High Performance Computing](http://www.tchpc.tcd.ie/support/)
 * [St Hugh of Lincoln Catholic Primary School in Surrey](http://www.sthugh-of-lincoln.surrey.sch.uk/)
index 72231623317a7e1a3bdef23117dc39e1adb46789..1e1862bb03275e2fab58a96397874f52833651d0 100644 (file)
@@ -1,4 +1,4 @@
-You may want to run `ikiwiki-transition deduplinks /path/to/srcdir`
+You may want to run `ikiwiki-transition deduplinks my.setup`
 after upgrading to this version of ikiwiki. This command will
 optimise your wiki's saved state, removing duplicate information
 that can slow ikiwiki down.
diff --git a/doc/news/version_3.13.mdwn b/doc/news/version_3.13.mdwn
new file mode 100644 (file)
index 0000000..0c8f7ab
--- /dev/null
@@ -0,0 +1,24 @@
+News for ikiwiki 3.13:
+
+   The `ikiwiki-transition deduplinks` command introduced in the
+   last release was buggy. If you followed the NEWS file instructions
+   and ran it, you should run `ikiwiki -setup` to rebuild your wiki
+   to fix the problem.
+
+ikiwiki 3.13 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+   * ikiwiki-transition: If passed a nonexistant srcdir, or one not
+     containing .ikiwiki, abort with an error rather than creating it.
+   * Allow underlaydir to be overridden without messing up inclusion
+     of other underlays via add\_underlay.
+   * More friendly display of markdown, textile in edit form selector
+     (jmtd)
+   * Allow curly braces to be used in pagespecs, and avoid a whole class
+     of potential security problems, by avoiding performing any string
+     interpolation on user-supplied data when translating pagespecs.
+   * ikiwiki-transition: Allow setup files to be passed to all subcommands
+     that need a srcdir.
+   * ikiwiki-transition: deduplinks was broken and threw away all
+     metadata stored by plugins in the index. Fix this bug.
+   * listdirectives: Avoid listing \_comment directives and generally
+     assume any directive starting with \_ is likewise internal."""]]
\ No newline at end of file
diff --git a/doc/news/version_3.14.mdwn b/doc/news/version_3.14.mdwn
new file mode 100644 (file)
index 0000000..83c2b91
--- /dev/null
@@ -0,0 +1,13 @@
+ikiwiki 3.14 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+   * highlight: New plugin supporting syntax highlighting of pretty much
+     anything.
+   * debian/control: Add suggests for libhighlight-perl, although
+     that package is not yet created by Debian's highlight source package.
+     (See #529869)
+   * format: Provide a htmlizefallback hook that other plugins
+     can use to handle formats that are not suitable for general-purpose
+     htmlize hooks. Used by highlight.
+   * Fix test suite to not rely on an installed copy of ikiwiki after
+     underlaydir change. Closes: #[530502](http://bugs.debian.org/530502)
+   * Danish translation update. Closes: #[530877](http://bugs.debian.org/530877)"""]]
\ No newline at end of file
index c13a6daa6a1ddb88e0d3f1b8973a3c029c56a815..7e22324111d0e3a14ae6b28ad8d76e04c04534ab 100644 (file)
@@ -19,7 +19,7 @@ users can only post comments.
 
 Individual comments are stored as internal-use pages named something like
 `page/comment_1`, `page/comment_2`, etc. These pages internally use a
-`\[[!_comment]]` [[ikiwiki/directive]].
+[[comment_directive|ikiwiki/directive/comment]].
 
 There are some global options for the setup file:
 
index e22b13f713b0ffc25ff2f9c56e25814789ee1154..a03e6a95d72993abf28aeb5b68a40ed0cbbf4dc2 100644 (file)
@@ -1,6 +1,5 @@
-Contributed [[plugins]]:
-
-(See [[install]] for installation help.)
+These plugins are provided by third parties and are not currently
+included in ikiwiki. See [[install]] for installation help.
 
 [[!inline pages="plugins/contrib/* and !*/Discussion" 
 feedpages="created_after(plugins/contrib/navbar)" archive="yes"
index c80cc0b496e6e0c3c45acd532d6e931871d8f901..becbf89a518daf924e38d102f60a9ce299c85dd8 100644 (file)
@@ -1,6 +1,6 @@
 [[!template id=plugin name=headinganchors author="[[PaulWise]]"]]
 
-This is a simple plugin to add ids to all headings, based on their text. It
+This is a simple plugin to add ids (which will serve as [[anchor]]s) to all headings, based on their text. It
 works as a postprocessing filter, allowing it to work on mdwn, wiki, html,
 rst and any other format that produces html. The code is available here:
 
diff --git a/doc/plugins/contrib/headinganchors/discussion.mdwn b/doc/plugins/contrib/headinganchors/discussion.mdwn
new file mode 100644 (file)
index 0000000..91fe04a
--- /dev/null
@@ -0,0 +1 @@
+Isn't this functionality a part of what [[plugins/toc]] needs and does? Then probably the [[plugins/toc]] plugin's code could be split into the part that implements the [[plugins/contrib/headinganchors]]'s functionality and the TOC generation itself. That will bring more order into the code and the set of available plugins. --Ivan Z.
diff --git a/doc/plugins/contrib/mailbox.mdwn b/doc/plugins/contrib/mailbox.mdwn
new file mode 100644 (file)
index 0000000..b7a9f81
--- /dev/null
@@ -0,0 +1,18 @@
+[[!template id=plugin name=mailbox author="[[DavidBremner]]"]]
+[[!tag type/format]]
+
+The `mailbox` plugin adds support to ikiwiki for 
+rendering mailbox file into a page displaying the mails
+in the mailbox. It supports mbox, maildir, and MH folders,
+does threading, and deals with MIME.
+
+One hitch I noticed was that it is not currently possible to treat a
+maildir or an MH directory as a page (i.e. just call it foo.mh and have it
+transformed to page foo). I'm not sure if this is possible and worthwhile
+to fix. It is certainly workable to use a [[!mailbox ]] directive.
+-- [[DavidBremner]]
+
+This plugin is not in ikiwiki yet, but can be downloaded
+from <http://pivot.cs.unb.ca/git/ikimailbox.git>
+
+
diff --git a/doc/plugins/contrib/mailbox/discussion.mdwn b/doc/plugins/contrib/mailbox/discussion.mdwn
new file mode 100644 (file)
index 0000000..00fb0c0
--- /dev/null
@@ -0,0 +1,5 @@
+# The remote repo
+
+For some reason, `git fetch` from http://pivot.cs.unb.ca/git/ikimailbox.git/ didn't work very smoothly for me: it hung, and I had to restart it 3 times before the download was complete.
+
+I'm writing this just to let you know that there might be some problems with such connections to your http-server. --Ivan Z.
index 5b33f6716ea7ac5481b99f1b29221c34de605937..665e48343d5dfa1f010fcd26a5fd3bff6005aad2 100644 (file)
@@ -153,6 +153,14 @@ Any thoughts on this?
 >> basewiki, which seems like it should be pretty easy to do, and would be
 >> a great demo! --[[Joey]]
 >>
+>>> I have a complete translation of basewiki into danish, and am working with
+>>> others on preparing one in german.  For a complete translated user
+>>> experience, however, you will also need templates translated (there are a few
+>>> translatable strings there too).  My not-yet-merged po4a Markdown improvements
+>>> (see [bug#530574](http://bugs.debian.org/530574)) correctly handles multiple
+>>> files in a single PO which might be relevant for template translation handling.
+>>> --[[JonasSmedegaard]]
+>>
 >>> I've merged your changes into my own branch, and made great
 >>> progress on the various todo items. Please note my repository
 >>> location has changed a few days ago, my user page was updated
@@ -383,6 +391,9 @@ daring a timid "please pull"... or rather, please review again :)
 >>> "discussion". Also, I consider `$config{cgi}` and `%links` (etc)
 >>> documented parts of the plugin interface, which won't change; po could
 >>> rely on them to avoid this minor problem. --[[Joey]] 
+>>>> 
+>>>> Done in my branch. --[[intrigeri]]
+>>>> 
 >
 > * Is there any real reason not to allow removing a translation?
 >   I'm imagining a spammy translation, which an admin might not
@@ -423,3 +434,21 @@ daring a timid "please pull"... or rather, please review again :)
 >> --[[intrigeri]]
 >>
 >>> Did you get a chance to? --[[Joey]] 
+
+ * As discussed at [[todo/l10n]] the templates needs to be translatable too.  They
+   should be treated properly by po4a using the markdown option - at least with my
+   later patches in [bug#530574](http://bugs.debian.org/530574)) applied.
+
+ * It seems to me that the po plugin (and possibly other parts of ikiwiki) wrongly
+   uses gettext.  As I understand it, gettext (as used currently in ikiwiki) always
+   lookup a single language, That might make sense for a single-language site, but
+   multilingual sites should emit all strings targeted at the web output in each own
+   language.
+
+   So generally the system language (used for e.g. compile warnings) should be separated
+   from both master language and slave languages.
+
+   Preferrably the gettext subroutine could be extended to pass locale as optional
+   secondary parameter overriding the default locale (for messages like "N/A" as
+   percentage in po plugin).  Alternatively (with above mentioned template support)
+   all such strings could be externalized as templates that can then be localized.
diff --git a/doc/plugins/contrib/postal.mdwn b/doc/plugins/contrib/postal.mdwn
new file mode 100644 (file)
index 0000000..b2f8753
--- /dev/null
@@ -0,0 +1,35 @@
+[[!template id=plugin name=postal author="[[DavidBremner]]"]]
+[[!tag type/useful]]
+
+The `postal` plugin allows users to send mail to
+a special address to comment on a page. It uses the [[mailbox]]
+plugin to display their comments in the wiki.
+
+This plugin is not in ikiwiki yet, but can be downloaded
+from <http://pivot.cs.unb.ca/git/ikipostal.git>
+
+Details:
+
+  * Adds a mailto: url to each page matching some pagespec
+    (currently every page gets a comment footer)
+
+  * This mailto url goes to an address identifying the page  (something like
+    user-iki-blog~I\_hate\_markdown@host.fqdn.tld).
+    [more details](http://www.cs.unb.ca/~bremner/blog/posts/encoding)         
+   
+  * on the mail receiving end, these messages are either deleted, or ran through
+    a filter to be turned into blog posts.   I have
+[written](http://pivot.cs.unb.ca/git/?p=ikipostal.git;a=blob_plain;f=filters/postal-accept.pl;hb=HEAD)
+  a filter that decodes the address and writes the message into an appropriate 
+mailbox. The changes are then checked into version control; typically a hook then updates the html version of the wiki.
+  * work in progress can be 
+
+   - [cloned](http://pivot.cs.unb.ca/git/ikipostal.git), or 
+   - [browsed](http://pivot.cs.unb.ca/git/?p=ikipostal.git;a=summary)
+  
+ * I would be interested in any ideas people have about security.
+
+The current version of this plugin is now running on my home page. See for example
+[a recent post in my blog](http://www.cs.unb.ca/~bremner/blog/posts/can-i-haz-a-distributed-rss/).  
+Unfortunately although the [[mailbox|todo/mbox]] renderer supports threading, I haven't had 
+a chance to implement comments on comments yet. --[[DavidBremner]]
diff --git a/doc/plugins/highlight.mdwn b/doc/plugins/highlight.mdwn
new file mode 100644 (file)
index 0000000..44ced80
--- /dev/null
@@ -0,0 +1,75 @@
+[[!template id=plugin name=highlight author="[[Joey]]"]]
+[[!tag type/format]]
+
+This plugin allows ikiwiki to syntax highlight source code, using
+a fast syntax highlighter that supports over a hundred programming
+languages and file formats.
+
+## prerequisites
+
+You will need to install the perl bindings to the
+[highlight library](http://www.andre-simon.de/), which in Debian
+are in the [[!debpkg libhighlight-perl]] package.
+
+## embedding highlighted code
+
+To embed highlighted code on a page, you can use the
+[[format]] plugin.
+
+For example:
+
+       \[[!format c """
+       void main () {
+               printf("hello, world!");
+       }
+       """]]
+
+       \[[!format diff """
+       -bar
+       +foo
+       """]]
+
+You can do this for any extension or language name supported by
+the [highlight library](http://www.andre-simon.de/) -- basically anything
+you can think of should work.
+
+## highlighting entire source files
+
+To enable syntax highlighting of entire standalone source files, use the
+`tohighlight` setting in your setup file to control which files should be
+syntax highlighted. Here is a typical setting for it, enabling highlighting
+for files with the extensions .c, etc, and also for any files named
+"Makefile".
+
+       tohighlight => ".c .h .cpp .pl .py Makefile:make",
+
+It knows what language to use for most filename extensions (see
+`/etc/highlight/filetypes.conf` for a partial list), but if you want to
+bind an unusual filename extension, or any file without an extension
+(such as a Makefile), to a language, you can do so by appending a colon
+and the name of the language, as illustrated for Makefiles above.
+
+With the plugin configured this way, source files become full-fledged
+wiki pages, which means they can include [[WikiLinks|ikiwiki/wikilink]]
+and [[directives|ikiwiki/directive]] like any other page can, and are also
+affected by the [[smiley]] plugin, if it is enabled. This can be annoying
+if your code accidentially contains things that look like those.
+
+On the other hand, this also allows your syntax highlighed
+source code to contain markdown formatted comments and hyperlinks
+to other code files, like this:
+
+       /* \[[!format mdwn """
+               This comment will be formatted as *markdown*!
+
+               See \[[bar.h]].
+       ""]] */
+
+Finally, bear in mind that this lets anyone who can edit a page in your
+wiki also edit source code files that are in your wiki. Use appropriate
+caution.
+
+## colors
+
+The colors etc used for the syntax highlighting are entirely configurable
+by CSS. See ikiwiki's [[style.css]] for the defaults.
diff --git a/doc/plugins/more/discussion.mdwn b/doc/plugins/more/discussion.mdwn
new file mode 100644 (file)
index 0000000..f369d1e
--- /dev/null
@@ -0,0 +1,7 @@
+# Test:
+
+[[!more  linktext="click for more" text="""
+This is the rest of my post. Not intended for people catching up on
+their blogs at 30,000 feet. Because I like to make things
+difficult.
+"""]]
index d4aa18c7d289e95a5a3974611748956a5f449250..91fc7cddc0a26da6707d5e7ccc47c7adfa1e6a72 100644 (file)
@@ -4,10 +4,12 @@
 This plugin allows users to use their [OpenID](http://openid.net/) to log
 into the wiki.
 
-The plugin needs the [[!cpan Net::OpenID::Consumer]] perl module. The
-[[!cpan LWPx::ParanoidAgent]] perl module is used if available, for added
-security. Finally, the [[!cpan Crypt::SSLeay]] perl module is needed to support
-users entering "https" OpenID urls.
+The plugin needs the [[!cpan Net::OpenID::Consumer]] perl module.
+Version 1.x is needed in order for OpenID v2 to work.
+
+The [[!cpan LWPx::ParanoidAgent]] perl module is used if available, for
+added security. Finally, the [[!cpan Crypt::SSLeay]] perl module is needed
+to support users entering "https" OpenID urls.
 
 This plugin has a configuration option. You can set `--openidsignup`
 to the url of a third-party site where users can sign up for an OpenID. If
index 77d94d450528bb4bb7a2de1ea140c0cb62942d35..420898d095b2a7e8b8aed8f303da66515eb3d541 100644 (file)
@@ -8,7 +8,7 @@ Unlike other [[type/format]] plugins, no formatting of markup in
 txt files is done; the file contents is displayed to the user as-is,
 with html markup characters such as ">" escaped.
 
-The only exceptions are that [[WikiLinks|WikiLink]] and
+The only exceptions are that [[WikiLinks|ikiwiki/WikiLink]] and
 [[directives|ikiwiki/directive]] are still expanded by
 ikiwiki, and that, if the [[!cpan URI::Find]] perl module is installed, URLs
 in the txt file are converted to hyperlinks.
index c352f2452807eeab2ade0027ddd9a275a1b9e92f..14cd5ff2b92ddff7c5d381afe49a3c45bf5cba1c 100644 (file)
@@ -60,7 +60,7 @@ This page controls what shortcut links the wiki supports.
 * [[!shortcut name=man url="http://linux.die.net/man/%s"]]
 * [[!shortcut name=ohloh url="http://www.ohloh.net/projects/%s"]]
 
-To add a new shortcut, use the [[`shortcut`|ikiwiki/directive/shortcut]]
+To add a new shortcut, use the `shortcut`
 [[ikiwiki/directive]]. In the url, "%s" is replaced with the
 text passed to the named shortcut, after url-encoding it, and '%S' is
 replaced with the raw, non-encoded text. The optional `desc` parameter
index 74d968ddf3cb61c5a86e2b13d31da0f87495d0f2..e6512aed8834971abf312c3d1ae36f940630e7f9 100644 (file)
@@ -389,3 +389,21 @@ span.color {
        border: 1px solid #aaa;
        padding: 3px;
 }
+
+/* Used by the highlight plugin. */
+
+pre.hl { color:#000000; background-color:#ffffff; }
+.hl.num { color:#2928ff; }
+.hl.esc { color:#ff00ff; }
+.hl.str { color:#ff0000; }
+.hl.dstr { color:#818100; }
+.hl.slc { color:#838183; font-style:italic; }
+.hl.com { color:#838183; font-style:italic; }
+.hl.dir { color:#008200; }
+.hl.sym { color:#000000; }
+.hl.line { color:#555555; }
+.hl.mark { background-color:#ffffbb; }
+.hl.kwa { color:#000000; font-weight:bold; }
+.hl.kwb { color:#830000; }
+.hl.kwc { color:#000000; font-weight:bold; }
+.hl.kwd { color:#010181; }
index a356c69df1a4244a305c06134052c0f19ce15545..5b9cc87421fe0f383be643a4445f89b07961e24d 100644 (file)
@@ -52,3 +52,18 @@ Patch:
 >>> is not controlled by any plugin.  It would be nice if it were; I am
 >>> trying to achieve a configuration where the only action supported
 >>> via CGI is blog-style comments.  --[Zack](http://zwol.livejournal.com/)
+
+>>> Like [[puck]], I'd like to keep search available but I want to disable all
+>>> login facitilities and thus disable the "Preferences" link.
+>>>
+>>> After digging a little bit in the source code, my first attempt was to make
+>>> the "Preferences" link appear only if there is `sessioncgi` hooks
+>>> registered.  But this will not work as the [[plugins/inline]] plugin also
+>>> defines it.
+>>>
+>>> Looking for `auth` hooks currently would not work as at least
+>>> [[plugins/passwordauth]] does not register one.
+>>>
+>>> Adding a new `canlogin` hook looks like overkill to me.  [[Joey]], how
+>>> about making registration of the `auth` hook mandatory for all plugins
+>>> making sense of the "Preferences" link? --[[Lunar]]
index cd5ff34de22ee2e866896d7d91fcd54c574c6004..71b4b88f0263ca20c9810d47ad297561f2a9e6bb 100644 (file)
@@ -12,3 +12,6 @@ this would allow the use of ikiwiki for [[!wikipedia literate programming]].
 * I have started something along these lines see [[plugins/contrib/sourcehighlight]].  For some reason I started with source-highlight [[DavidBremner]]
 
 * I wonder if this is similar to what you want: <http://iki.u32.net/setup/Highlight_Code_Plugin/>
+
+> The new [[plugins/highlight]] plugin is in ikiwiki core and supports
+> source code files natively. [[done]] --[[Joey]] 
index 8bc75420dff06992cd02304574e5c5747084142f..64bc21ee0e85ec37995592bfb3d8d4d7ac02bb85 100644 (file)
@@ -51,6 +51,7 @@ I hit a wall the following example (the last commit in the above repo).
     </div>
 
 >>> I don't know what is going wrong for you... source-highlight, Markdown or something else.
+>>>> It's a well-known bug in old versions of markdown. --[[Joey]] 
 >>> I do find it interesting the way the sourcecode `div` and the list get interleaved.  That
 >>> just looks like a Markdown thing though.
 >>> In any case, I've updated the patch below to include most of your changes.  -- [[Will]]
index 6d3eeb044806d79809fba6cb7827c0a29c772a72..87e57417e7f73fe43ac9ab2988480db51bfcc47f 100644 (file)
@@ -1,53 +1,3 @@
 I would like to allow comments on ikiwiki pages without CGI.
-I have in mind something like
 
-  * Use a pagetemplate hook  
-    in a plugin (DONE)
-  * add a mailto: url to each page matching some pagespec
-    (currently every page gets a comment footer)
-  * this mailto url goes to an address identifying the page  (something like
-    user-iki-blog~I\_hate\_markdown@host.fqdn.tld).  (DONE) 
-    [more details](http://www.cs.unb.ca/~bremner/blog/posts/encoding)         
-   
-  * on the mail receiving end, these messages are either deleted, or ran through
-    a filter to be turned into blog posts.  As a first step, I have
-[written](http://pivot.cs.unb.ca/git/?p=ikipostal.git;a=blob_plain;f=filters/postal-filer.pl;hb=010357a08e9)
-a filter that decodes the address and writes the message into an appropriate 
-mailbox. I would be interested in any ideas people have about security.
-
-  * the same plugin can check for comments on a particular page next time the wiki 
-    is generated, and add a link. (more or less done)
-    > If the filter just checks in the posts into revision control, the
-    > post-commit hook would handle updating the wiki to include those
-    > posts as they come in. --[[Joey]]
-  * work in progress can be 
-
-   - [cloned](http://pivot.cs.unb.ca/git/ikiperl.git), or 
-   - [browsed](http://pivot.cs.unb.ca/git/?p=ikipostal.git;a=summary)
-  
-
-Any comments? Write them here or send them to [[DavidBremner]]
-
-> I don't want to derail this with too much blue-skying, but I was thinking
-> earlier that it would be nice if ikiwiki could do something sensible with
-> mailbox files, such as turning them into a (threaded?) blog display.
-> 
-> One reason I was thinking about that was just that it would be nice to 
-> be able to use ikiwiki for mailing list archives. But another reason was
-> that it would be nice to solve the problem described in
-> [[discussion_page_as_blog]]. For that you really want a threaded system,
-> and mailbox file formats already have threading.
-> 
-> If that were done, it would tie into what you're working on in an
-> interesting way, since the incoming mail would only need to be committed to
-> the appropriate mailbox file, with ikiwiki then running to process it.
-> --[[Joey]]
->> It is an interesting idea.  I like that it uses an arbitrary MUA 
->> as a "moderation" interface.  After I killed a debian BTS entry with 
->> clumsy pseudoheader editing I think any 
->> reference info should also be encoded into the address.
-
-The current version of this plugin is now running on my home page. See for example
-[a recent post in my blog](http://www.cs.unb.ca/~bremner/blog/posts/can-i-haz-a-distributed-rss/).  
-Unfortunately although the [[mailbox|todo/mbox]] renderer supports threading, I haven't had 
-a chance to implement comments on comments yet. [[DavidBremner]]
+> [[done]], see [[plugins/contrib/postal]]
index 604c5e87f8582a7943ab1eb07ef160268da88101..4363003c1e58de11155843155c5f06b312e970d5 100644 (file)
@@ -7,10 +7,14 @@ render via [HeVeA](http://pauillac.inria.fr/~maranget/hevea/index.html),
 similar. Useful for mathematics, as well as for stuff like the LaTeX version
 of the ikiwiki [[/logo]].
 
+> [[users/JasonBlevins]] has also a plugin for including [[LaTeX]] expressions (by means of `itex2MML`) -- [[plugins/mdwn_itex]] (look at his page for the link). --Ivan Z.
+
 ----
 
 ikiwiki could also support LaTeX as a document type, again rendering to HTML.
 
+> [[users/JasonBlevins]] has also a [[plugins/pandoc]] plugin (look at his page for the link): in principle, [Pandoc](http://johnmacfarlane.net/pandoc/) can read and write [[LaTeX]]. --Ivan Z.
+
 ----
 
 Conversely, how about adding a plugin to support exporting to LaTeX?
@@ -25,6 +29,8 @@ Conversely, how about adding a plugin to support exporting to LaTeX?
 
 >>>> Interesting, just yesterday I was playing with pandoc to make PDFs from my Markdown. Could someone advise me on how to embed these PDFs into ikiwiki? I need some guidance in implementing this. --[[JosephTurian]]
 
+>>>> [[users/JasonBlevins]] has a [[plugins/pandoc]] plugin (look at his page for the link). --Ivan Z.
+
 ----
 
 [here](http://ng.l4x.org/gitweb/gitweb.cgi?p=ikiwiki.git/.git;a=blob;f=IkiWiki/Plugin/latex.pm) is a first stab at
index b71d7cc5f48727d1399ecc830b4f1d43bfd5a830..26c5a072bf3cb205b238a4e6fd0882583a0b7609 100644 (file)
@@ -35,3 +35,13 @@ Besides pagespecs, the `rel=` attribute could be used for styles. --Ivan Z.
 > was not available, which is why I didn't make it differentiate from
 > normal links.) Might be better to go ahead and add the variable to
 > core though. --[[Joey]] 
+
+I saw somewhere else here some suggestions for the wiki-syntax for specifying the relation name of a link. One more suggestion---[the syntax used in Semantic MediaWiki](http://en.wikipedia.org/wiki/Semantic_MediaWiki#Basic_usage), like this:
+
+<pre>
+... the capital city is \[[Has capital::Berlin]] ...
+</pre>
+
+So a part of the effect of [[`\[[!taglink TAG\]\]`|plugins/tag]] could be represented as something like `\[[tag::TAG]]` or (more understandable relation name in what concerns the direction) `\[[tagged::TAG]]`.
+
+I don't have any opinion on this syntax (whether it's good or not)...--Ivan Z.
index f7744563cef057d980650b60aded384975e310c8..a6af0c3c5a90938587e098f531bdff02416cd269 100644 (file)
@@ -3,7 +3,7 @@ I'd like to be able to drop an unmodified RFC2822 email message into ikiwiki, an
 > We're discussing doing just that (well, whole mailboxes, really) over in
 > [[comment_by_mail]] --[[Joey]]
 >> The 
->> [mailbox](http://pivot.cs.unb.ca/git/?p=ikimailbox.git;a=summary) 
+>> [[plugins/contrib/mailbox]]
 >> plugin is roughly feature complete at this point.  It can read mbox, maildir, and
 >> MH folders, does threading, and deals with MIME (now with 
 >> pagespec based sanity checking).  No doubt lots of things could be 
@@ -15,5 +15,4 @@ I'd like to be able to drop an unmodified RFC2822 email message into ikiwiki, an
 >>  It is certainly workable
 >>> to use a \[[!mailbox ]] directive. -- [[DavidBremner]]
 
-> Your gitweb doesn't tell me where I can git pull this from, which I'd
-> like to do ... --[[Joey]]
+[[done]]
diff --git a/doc/todo/section-numbering.mdwn b/doc/todo/section-numbering.mdwn
new file mode 100644 (file)
index 0000000..3a2d232
--- /dev/null
@@ -0,0 +1,7 @@
+[[!tag wishlist]]
+
+Optional automatic section numbering would help reading: otherwise, a reader (like me) gets lost in the structure of a long page.
+
+I guess it is implementable with complex CSS... but one has first to compose this CSS in any case. So, this wish still has a todo status. --Ivan Z.
+
+And another aspect why this is related to ikiwiki, not just authoring a CSS, is that the style of the numbers (genereated by CSS probably) should match the style of the numbers in ikiwiki's [[plugins/toc]]. --Ivan Z.
index b5d083ba531d207cb5a85858ea06baaa766d1b22..3d122829b2fe71bd156db25a87a693b617c57bb3 100644 (file)
@@ -1,48 +1,76 @@
 There's been a lot of work on contrib syntax highlighting plugins. One should be
 picked and added to ikiwiki core.
 
-Ideally, it should support both converting whole source files into wiki
+We want to support both converting whole source files into wiki
 pages, as well as doing syntax highlighting as a preprocessor directive 
-(which is either passed the text, or reads it from a file).
+(which is either passed the text, or reads it from a file). But,
+the [[ikiwiki/directive/format]] directive makes this easy enough to 
+do if the plugin only supports whole source files. So, syntax plugins
+do no really need their own preprocessor directive, unless it makes
+things easier for the user.
 
 ## The big list of possibilities
 
 * [[plugins/contrib/highlightcode]] uses [[!cpan Syntax::Highlight::Engine::Kate]],
   operates on whole source files only, has a few bugs (see
   [here](http://u32.net/Highlight_Code_Plugin/), and needs to be updated to
-  support [[bugs/multiple_pages_with_same_name]].
+  support [[bugs/multiple_pages_with_same_name]]. (Currently a 404 :-( )
 * [[!cpan IkiWiki-Plugin-syntax]] only operates as a directive.
   Interestingly, it supports multiple highlighting backends, including Kate
   and Vim.
 * [[plugins/contrib/syntax]] only operates as a directive
   ([[not_on_source_code_files|automatic_use_of_syntax_plugin_on_source_code_files]]),
   and uses [[!cpan Text::VimColor]].
-* [[plugins/contrib/sourcehighlight]] uses src-highlight, and operates on
+* [[plugins/contrib/sourcehighlight]] uses source-highlight, and operates on
   whole source files only. Needs to be updated to
   support [[bugs/multiple_pages_with_same_name]].
 * [[sourcecode|todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion]]
-  also uses src-highlight, and operates on whole source files.
+  also uses source-highlight, and operates on whole source files.
   Updated to work with the fix for [[bugs/multiple_pages_with_same_name]].  Untested with files with no extension, e.g. `Makefile`.
-* [[users/jasonblevins]]'s code plugin uses src-highlight, and supports both
-  while file and directive use.
+* [[users/jasonblevins]]'s code plugin uses source-highlight, and supports both
+  whole file and directive use.
 
-* [hlsimple](http://pivot.cs.unb.ca/git/?p=ikiplugins.git;a=blob_plain;f=IkiWiki/Plugin/hlsimple.pm;hb=HEAD) is a wrapper for the the perl module Syntax::Highlight::Engine::Simple.  This is pure perl, pretty simple, uses css. It ought to be pretty fast (according to the author, and just because it is not external).
+* [hlsimple](http://pivot.cs.unb.ca/git/?p=ikiplugins.git;a=blob_plain;f=IkiWiki/Plugin/hlsimple.pm;hb=HEAD) is a wrapper for the the perl module [[!cpan Syntax::Highlight::Engine::Simple]].  This is pure perl, pretty simple, uses css. It ought to be pretty fast (according to the author, and just because it is not external).
 On the other hand, there are not many predefined languages yet.  Defining language syntaxes is about as much 
 work as source-highlight, but in perl.  I plan to package the base module for debian. Perhaps after the author 
 releases the 5 or 6 language definitions he has running on his web site, it might be suitable for inclusion in ikiwiki. [[DavidBremner]]
 
-## General problems
-
-* Using non-perl syntax highlighting backends is slow. I'd prefer either
-  using a perl module, or a multiple-backend solution that can use a perl
-  module as one option. (Or, if there's a great highlighter python module,
-  we could use an external plugin..)
-* Currently no single plugin supports both modes of operation (directive
-  and whole source file to page).
-
-  > This is now fixed by the [[ikiwiki/directive/format]] directive for all
-  > whole-source-file plugins, right?
-
+* [[plugins/highlight]] uses [highlight](http://www.andre-simon.de) via
+  its swig bindings. It optionally supports whole files, but also
+  integrates with the format directive to allow formatting of *any* of
+  highlight's supported formats. (For whole files, it uses either
+  keepextension or noextension, as appropriate for the type of file.)
+
+## General problems / requirements
+
+* Using non-perl syntax highlighting backends is slower. All things equal,
+  I'd prefer either using a perl module, or a multiple-backend solution that
+  can use a perl module as one option. (Or, if there's a great highlighter
+  python module, we could use an external plugin..)
+
+  Of course, some perl modules are also rather slow.. Kate, for example
+  can only process about 33 lines of C code, or 14 lines of
+  debian/changelog per second. That's **30 times slower than markdown**!
+
+  By comparison, source-highlight can do about 5000 lines of C code per
+  second... And launching the program 100 times on an empty file takes about
+  5 seconds, which isn't bad. And, it has a C++ library, which it
+  seems likely perl bindings could be written for, to eliminate 
+  even that overhead.
+  > [highlight](http://www.andre-simon.de) has similar features to source-highlight, and swig bindings
+  > that should make it trivial in principle to call from perl.  I like highlight a bit better because 
+  > it has a pass-through feature that I find very useful.  My memory is unfortunately a bit fuzzy as to how
+  > well the swig bindings work. [[DavidBremner]]
+
+* Engines that already support a wide variety of file types are of
+  course preferred. If the engine doesn't support a particular type
+  of file, it could fall back to doing something simple like
+  adding line numbers. (IkiWiki-Plugin-syntax does this.)
+* XHTML output.
+* Emitting html that uses CSS to control the display is preferred,
+  since it allows for easy user customization. (Engine::Simple does
+  this; Kate can be configured to do it; source-highlight can be 
+  made to do it via the switches `--css /dev/null --no-doc`)
 * Nothing seems to support 
   [[wiki-formatted_comments|wiki-formatted_comments_with_syntax_plugin]]
   inside source files. Doing this probably means post-processing the 
@@ -69,65 +97,24 @@ releases the 5 or 6 language definitions he has running on his web site, it migh
 
 * The whole-file plugins all get confused if there is a `foo.c` and a `foo.h`.
   This is trivially fixable now by passing the keepextension option when
-  registering the htmlize hooks, though.
+  registering the htmlize hooks, though. There's also a noextension option
+  that should handle the
+  case of source files with names that do not contain an extension (ie,
+  "Makefile") -- in this case you just register the while filename
+  in the htmlize hook.
 * Whole-file plugins register a bunch of htmlize hooks. The wacky thing
   about it is that, when creating a new page, you can then pick "c" or
-  "h" or "pl" etc from the dropdown that normally has "mdwn" etc in it.
-  Is this a bug, or a feature? (Even if a feature, plugins with many
-  extensions make the dropdown unusable.. One way to deal with that is have
-  a config setting that lists what extensions to offer highlighting for.
-  Most people won't need/want the dozens some engines support.)
-* The per page highlighters can't handle creating wiki pages from 
-  "Makefile", or other files without a significant extension.
-  Not clear how to fix this, as ikiwiki is very oriented toward file
-  extensions. The workaround is to use a directive on a wiki page, pulling
-  in the Makefile.
-
-  > I wonder how hard it would be to make a patch whereby a file with
-  > no `.` in the name, and a name that matches a filetype, and where
-  > that filetype was registered `keepextension`, then the file is just
-  > chosen as the appropriate type.  This would allow `Makefile` to
-  > work.
-
-like this:
-
-    diff --git a/IkiWiki.pm b/IkiWiki.pm
-    index 8d728c9..1bd46a9 100644
-    --- a/IkiWiki.pm
-    +++ b/IkiWiki.pm
-    @@ -618,6 +618,8 @@ sub pagetype ($) {
-       
-       if ($page =~ /\.([^.]+)$/) {
-               return $1 if exists $hooks{htmlize}{$1};
-    +  } elsif ($hooks{htmlize}{$page}{keepextension}) {
-    +          return $page;
-       }
-       return;
-     }
-
-## format directive
-
-Rather than making syntax highlight plugins have to provide a preprocessor
-directive as well as handling whole source files, perhaps a generic format
-directive could be used:
-
-       \[[!format pl """..."""]]
-
-That would run the text through the pl htmlizer, from the syntax hightligh
-plugin. OTOH, if "rst" were given, it would run the text through the rst
-htmlizer. So, more generic, allows mixing different types of markup on one
-page, as well as syntax highlighting. Does require specifying the type of
-format, instead of allowing it to be guessed (which some syntax highlighters
-can do). (This directive is now implemented..)
-
-Hmm, this would also allow comments inside source files to have mdwn
-embedded in them, without making the use of mdwn a special case, or needing
-to postprocess the syntax highlighter output to find comments.
-
-       /* \[[!format mdwn """
+  "h" or "pl" etc from the dropdown that normally has "Markdown" etc in it.
+  Is this a bug, or a feature? Even if a feature, plugins with many
+  extensions make the dropdown unusable.. 
 
-       This is a comment in my C file. You can use mdwn in here.
+  Perhaps the thing to do here is to use the new `longname` parameter to
+  the format hook, to give them all names that will group together at or
+  near the end of the list. Ie: "Syntax: perl", "Source code: c", etc.
 
-       """]] */
+---
 
-Note that this assumes that directives are expanded in source files.
+I'm calling this [[done]] since I added the [[plugins/highlight]]
+plugin. There are some unresolved issues touched on here,
+but they either have the own other bug reports, or are documented
+as semi-features in the docs to the plugin. --[[Joey]] 
index 7a4095c656af3403c3236b64b970c215dc16ad49..27cb7084b77497ff2996955b48713964a42d8b00 100644 (file)
@@ -24,3 +24,5 @@ repository?  --[[JasonBlevins]]
 >> [[sourcecode|todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion]]
 >> plugin only adds the file extensions listed in the config.  This shouldn't cause
 >> massive drop-down menu pollution.  -- [[Will]]
+
+>>> That seems to be the way to go! --[[Joey]] 
diff --git a/doc/todo/target_filter_for_brokenlinks.mdwn b/doc/todo/target_filter_for_brokenlinks.mdwn
new file mode 100644 (file)
index 0000000..137277c
--- /dev/null
@@ -0,0 +1,9 @@
+[[!tag wishlist]]
+
+Currently, [[plugins/brokenlinks]] supports filtering by the place where a broken wikilink is used.
+
+Filtering by the target of the broken link would also be useful, e.g.,
+
+    \[[!brokenlinks matching="tagbase/*"]]
+
+would list the tags not yet "filled out". --Ivan Z.
index 8b36f1e59c2fbee946025fe02c87088d3159673a..3a761731bd93325e4db0e6b4c0cfffaf7f188770 100644 (file)
@@ -196,21 +196,108 @@ account all comments above (which doesn't mean it is above reproach :) ).  --[[W
 > Very belated code review of last version of the patch:
 > 
 > * `is_globlist` is no longer needed
+
+>> Good :)
+
 > * I don't understand why the pagespec match regexp is changed
 >   from having flags `igx` to `ixgs`. Don't see why you
 >   want `.` to match '\n` in it, and don't see any `.` in the regexp 
 >   anyway?
+
+>> Because you have to define all the named pagespecs in the pagespec, you sometimes end up with very long pagespecs.  I found it useful to split them over multiple lines.  That didn't work at one point and I added the 's' to make it work.  I may have further altered the regex since then to make the 's' redundant.  Remove it and see if multi-line pagespecs still work. :)
+
+>>> Well, I can tell you that multi-line pagespecs are supported w/o
+>>> your patch .. I use them all the time. The reason I find your
+>>> use of `/s` unlikely is because without it `\s` already matches
+>>> a newline. Only if you want to treat a newline as non-whitespace
+>>> is `/s` typically necessary. --[[Joey]] 
+
 > * Some changes of `@_` to `%params` in `pagespec_makeperl` do not
 >   make sense to me. I don't see where \%params is defined and populated,
 >   except with `\$params{specFunc}`.
+
+>> I'm not a perl hacker.  This was a mighty battle for me to get going.
+>> There is probably some battlefield carnage from my early struggles
+>> learning perl left here. Part of this is that @_ / @params already
+>> existed as a way of passing in extra parameters.  I didn't want to
+>> pollute that top level namespace - just at my own parameter (a hash)
+>> which contained the data I needed.
+
+>>> I think I understand how the various `%params`
+>>> (there's not just one) work in your code now, but it's really a mess.
+>>> Explaining it in words would take pages.. It could be fixed by,
+>>> in `pagespec_makeperl` something like:
+>>> 
+>>>    my %specFuncs;
+>>>    push @_, specFuncs => \%specFuncs;
+>>> 
+>>> With that you have the hash locally available for populating
+>>> inside `pagespec_makeperl`, and when the `match_*` functions
+>>> are called the same hash data will be available inside their
+>>> `@_` or `%params`. No need to change how the functions are called
+>>> or do any of the other hacks.
+>>>
+>>> Currently, specFuncs is populated by building up code
+>>> that recursively calls `pagespec_makeperl`, and is then
+>>> evaluated when the pagespec gets evaluated. My suggested
+>>> change to `%params` will break that, but that had to change 
+>>> anyway.
+>>>
+>>> It probably has a security hole, and is certianly inviting
+>>> one, since the pagespec definition is matched by a loose regexp (`.*`)
+>>> and then subject to string interpolation before being evaluated
+>>> inside perl code. I recently changed ikiwiki to never interpolate
+>>> user-supplied strings when translating pagespecs, and that
+>>> needs to happen here too. The obvious way, it seems to me,
+>>> is to not generate perl code, but just directly run perl code that
+>>> populates specFuncs.
+
+>>>> I don't think this is as bad as you make out, but your addition of the
+>>>> data array will break with the recursion my patch adds in pagespec_makeperl.
+>>>> To fix that I'll need to pass a reference to that array into pagespec_makeperl.
+>>>> I think I can then do the same thing to $params{specFuncs}.  -- [[Will]]
+
+>>>>> You're right -- I did not think the recursive case through.
+>>>>> --[[Joey]] 
+
 > * Seems that the only reason `match_glob` has to check for `~` is
 >   because when a named spec appears in a pagespec, it is translated
 >   to `match_glob("~foo")`. If, instead, `pagespec_makeperl` checked
 >   for named specs, it could convert them into `check_named_spec("foo")`
 >   and avoid that ugliness.
+
+>> Yeah - I wanted to make named specs syntactically different on my first pass.  You are right in that this could be made a fallback - named specs always override pagenames.
+
 > * The changes to `match_link` seem either unecessary, or incomplete.
 >   Shouldn't it check for named specs and call
 >   `check_named_spec_existential`?
+
+>>  An earlier version did.  Then I realised it wasn't actually needed in that case - match_link() already included a loop that was like a type of existential matching.  Each time through the loop it would
+>> call match_glob().  match_glob() in turn will handle the named spec.  I tested this version briefly and it seemed to work.  I remember looking at this again later and wondering if I had mis-understood
+>> some of the logic in match_link(), which might mean there are cases where you would need an explicit call to check_named_spec_existential() - I never checked it properly after having that thought.
+
+>>> In the common case, `match_link` does not call `match_glob`,
+>>> because the link target it is being asked to check for is a single
+>>> page name, not a glob.
+
+>>>> A named pagespec should fall into the glob case.  These two pagespecs should be the same:
+
+    link(a*)
+
+>>>> and
+
+    define(aStar, a*) and link(~aStar)
+
+>>>> In the first case, we want the pagespec to match any page that links to a page matching the glob.
+>>>> In the second case, we want the pagespec to match any page that links to a page matching the named spec.
+>>>> match_link() was already doing existential part.  The patches to this code were simply to remove the `lc()`
+>>>> call from the named pagespec name.  Can that `lc` be removed entirely? -- [[Will]]
+
+>>>>> I think we could get rid of it. `bestlink` will lc it itself
+>>>>> if the uppercase version does not exist; `match_glob` matches
+>>>>> insensitively.
+>>>>> --[[Joey]] 
+
 > * Generally, the need to modify `match_*` functions so that they
 >   check for and handle named pagespecs seems suboptimal, if
 >   only because there might be others people may want to use named
@@ -221,120 +308,304 @@ account all comments above (which doesn't mean it is above reproach :) ).  --[[W
 >   that is not a page name at all, and it could be weird
 >   if such a parameter were accidentially interpreted as a named
 >   pagespec. (But, that seems unlikely to happen.)
+
+>> Possibly.  I'm not sure which I prefer between the current solution and that one.  Each have advantages and disadvantages.
+>> It really isn't much code for the match functions to add a call to check_named_spec_existential().
+
+>>> But if a plugin adds its own match function, it has
+>>> to explicitly call that code to support named pagespecs.
+
+>>>> Yes, and it can do that in just three lines of code.  But if we automatically check for named pagespecs all the time we
+>>>> potentially break any matching function that doesn't accept pages, or wants to use multiple arguments.
+
+>>>>> 3 lines of code, plus the functions called become part of the API,
+>>>>> don't forget about that..
+>>>>>
+>>>>> Yes, I think that is the tradeoff, the question is whether to export
+>>>>> the additional complexity needed for that flexability.
+>>>>>
+>>>>> I'd be suprised if multiple argument pagespecs become necessary..
+>>>>> with the exception of this patch there has been no need for them yet.
+>>>>>
+>>>>> There are lots of pagespecs that take data other than pages,
+>>>>> indeed, that's really the common case. So far, none of them 
+>>>>> seem likely to take data that starts with a `~`. Perhaps
+>>>>> the thing to do would be to check if `~foo` is a known,
+>>>>> named pagespec, and if not, just pass it through unchanged.
+>>>>> Then there's little room for ambiguity, and this also allows
+>>>>> pagespecs like `glob(~foo*)` to match the literal page `~foo`.
+>>>>> (It will make pagespec_merge even harder tho.. see below.)
+>>>>> --[[Joey]] 
+
+>>>>>> I've already used multi-argument pagespec match functions in
+>>>>>> my data plugin.  It is used for having different types of links.  If
+>>>>>> you want to have multiple types of links, then the match function
+>>>>>> for them needs to take both the link name and the link type.
+>>>>>> I'm trying to think of a way we could have both - automatically
+>>>>>> handle the existential case unless the function indicates somehow
+>>>>>> that it'll do it itself.  Any ideas?  -- [[Will]]
+
 > * I need to check if your trick to avoid infinite recursion
 >   works if there are two named specs that recursively
 >   call one-another. I suspect it does, but will test this
 >   myself..
->  
+
+>> It worked for me. :)
+
+> * I also need to verify if memoizing the named pagespecs has
+>   really guarded against very expensive pagespecs DOSing the wiki..
+
 > --[[Joey]] 
 
+>>  There is one issue that I've been thinking about that I haven't raised anywhere (or checked myself), and that is how this all interacts with page dependencies.
+>>  Firstly, I'm not sure anymore that the `pagespec_merge` function will continue to work in all cases.
+
+>>> The problem I can see there is that if two pagespecs
+>>> get merged and both use `~foo` but define it differently,
+>>> then the second definition might be used at a point when
+>>> it shouldn't (but I haven't verified that really happens).
+>>> That could certianly be a show-stopper. --[[Joey]] 
+
+>>>> I think this can happen in the new closure based code.  I don't think this could happen in the old code.  -- [[Will]]
+
+>>>> Even if that works, this is a good argument for having a syntactic difference between named pagespecs and normal pages.
+>>>> If you're joining two pagespecs with 'or', you don't want a named pagespec in the first part overriding a page name in the
+>>>> second part.  Oh, and I assume 'or' has the right operator precedence that "a and b or c" is "(a and b) or c", and not "a and (b or c)" -- [[Will]]
+
+>>>>> Looks like its bracketed in the code anyway... -- [[Will]]
+
+>>>> Perhaps the thing to do is to have a `clear_defines()`
+>>>> function, then merging `A` and `B` yields `(A) or (clear_defines() and (B))`
+>>>> That would deal with both the cases where `A` and `B` differently
+>>>> define `~foo` as well as with the case where `A` defines `~foo` while
+>>>> `B` uses it to refer to a literal page.
+>>>> --[[Joey]]
+
+>>>>> I don't think this will work with the new patch, and I don't think it was needed with the old one.
+>>>>> Under the old patch, pagespec_makeperl() generated a string of unevaluated, self-contained, perl
+>>>>> code.  When a new named pagespec was defined, a recursive call was made to get the perl code
+>>>>> for the pagespec, and then that code was used to add something like `$params{specFuncs}->{name} = sub {recursive code} and `
+>>>>> to the result of the calling function.  This means that at pagespec testing time, when this code is executed, the
+>>>>> specFuncs hash is built up as the pagespec is checked.  In the case of the 'or' used above, later redefinitions of
+>>>>> a named pagespec would have redefined the specFunc at the right time.  It should have just worked.  However...
+
+>>>>> Since my original patch, you started using closures for security reasons (and I can see the case for that).  Unfortunately this
+>>>>> means that the generated perl code is no longer self-contained - it needs to be evaluated in the same closure it was generated
+>>>>> so that it has access to the data array.  To make this work with the recursive call I had two options: a) make the data array a
+>>>>> reference that I pass around through the pagespec_makeperl() functions and have available when the code is finally evaluated
+>>>>> in pagespec_translate(), or b) make sure that each pagespec is evaluated in its correct closure and a perl function is returned, not a
+>>>>> string containing unevaluated perl code.
+
+>>>>> I went with option b).  I did it in such a way that the hash of specfuncs is built up at translation time, not at execution time.  This
+>>>>> means that with the new code you can call specfuncs that get defined out of order:
+
+    ~test and define(~test, blah)
+
+>>>>> but it also means that using a simple 'or' to join two pagespecs wont work.  If you do something like this:
+
+    ~test and define(~test, foo) and define(~test, baz)
+
+>>>>> then the last definition (baz) takes precedence.
+>>>>> In the process of writing this I think I've come up with a way to change this back the way it was, still using closures. -- [[Will]]
+
+>>  Secondly, it seems that there are two types of dependency, and ikiwiki
+>>  currently only handles one of them.  The first type is "Rebuild this
+>>  page when any of these other pages changes" - ikiwiki handles this.
+>>  The second type is "rebuild this page when set of pages referred to by
+>>  this pagespec changes" - ikiwiki doesn't seem to handle this.  I
+>>  suspect that named pagespecs would make that second type of dependency
+>>  more important.  I'll try to come up with a good example. -- [[Will]]
+
+>>> Hrm, I was going to build an example of this with backlinks, but it
+>>> looks like that is handled as a special case at the moment (line 458 of
+>>> render.pm).  I'll see if I can breapk
+>>> things another way.  Fixing this properly would allow removal of that special case. -- [[Will]]
+
+>>>> I can't quite understand the distinction you're trying to draw
+>>>> between the two types of dependencies. Backlinks are a very special
+>>>> case though and I'll be suprised if they fit well into pagespecs.
+>>>> --[[Joey]] 
+
+>>>>> The issue is that the existential pagespec matching allows you to build things that have similar
+>>>>> problems to backlinks.
+>>>>> e.g. the following inline:
+
+    \[[!inline pages="define(~done, link(done)) and link(~done)" archive=yes]]
+
+>>>>> includes any page that links to a page that links to done.  Now imagine I add a new link to 'done' on
+>>>>> some random page somewhere - a page which some other page links to which didn't previously get included - the set of pages accepted by the pagespec, and hence the set of
+>>>>> pages inlined, will change.  But, there is no dependency anywhere on the page that I altered, so
+>>>>> ikiwiki will not rebuild the page with the inline in it.  What is happening is that the page that I altered affects
+>>>>> the set of pages matched by the pagespec without itself being matched by the pagespec, and hence included in the dependency list.
+
+>>>>> To make this work well, I think you need to recognise two types of dependencies for each page (and no
+>>>>> special cases for particular types of links, eg backlinks).  The first type of dependency says, "The content of
+>>>>> this page depends upon the content of these other pages".  The `add_depends()` in the shortcuts
+>>>>> plugin is of this form: any time the shortcuts page is edited, any page with a shortcut on it
+>>>>> is rebuilt.  The inline plugin also needs to add dependencies of this form to detect when the inlined
+>>>>> content changes.  By contrast, the map plugin does not need a dependency of this form, because it
+>>>>> doesn't actually care about the content of any pages, just which pages it needs to include (which we'll handle next).
+
+>>>>> The second type of dependency says, "The content of this page depends upon the exact set of pages matched
+>>>>> by this pagespec".  The first type of dependency was about the content of some pages, the second type is about
+>>>>> which pages get matched by a pagespec.  This is the type of dependency tracking that the map plugin needs.
+>>>>> If the set of pages matched by map pagespec changes, then the page with the map on it needs to be rebuilt to show a different list of pages.
+>>>>> Inline needs this type of dependency as well as the previous type - This type handles a change in which pages
+>>>>> are inlined, the previous type handles a change in the content of any of those pages.  Shortcut does not need this type of
+>>>>> dependency.  Most of the places that use `add_depends()` seem to need this type of dependency rather than the first type.
+
+>>>>>> Note that inline and map currently achieve the second type of dependency by
+>>>>>> explicitly calling `add_depends` for each page the displayed.
+>>>>>> If any of those pages are removed, the regular pagespec would not
+>>>>>> match them -- since they're gone. However, the explicit dependency
+>>>>>> on them does cause them to match. It's an ugly corner I'd like to
+>>>>>> get rid of. --[[Joey]]
+
+>>>>> Implementation Details:  The first type of dependency can be handled very similarly to the current
+>>>>> dependency system.  You just need to keep a list of pages that the content depends upon.  You could
+>>>>> keep that list as a pagespec, but if you do this you might want to check that the pagespec doesn't change,
+>>>>> possibly by adding a dependency of the second type along with the dependency of the first type.
+
+>>>>>> An example of the current system not tracking enough data is 
+>>>>>> where A inlines B which inlines C. A change to C will cause B to
+>>>>>> rebuild, but A will not "notice" that B has implicitly changed.
+>>>>>> That example suggests it might be fixable without explicitly storing
+>>>>>> data, by causing a rebuild of B to be treated as a change to B.
+>>>>>> --[[Joey]] 
+
+>>>>> The second type of dependency is a little more tricky.  For each page, we'd need a list of pagespecs that
+>>>>> the page depended on, and for each pagespec you'd want to store the list of pages that currently match it.
+>>>>> On refresh, you'd need to check each pagespec to see if the set of pages that match it has changed, and if
+>>>>> that set has changed, then rebuild the dependent page(s).  Oh, and for this second type of dependency, I
+>>>>> don't think you can merge pagespecs.  If I wanted to know if either "\*" or "link(done)" changes, then just checking
+>>>>> to see if the set of pages matched by "\* or link(done)" changes doesn't work.
+
+>>>>> The current system works because even though you usually want dependencies of the second type, the set of pages
+>>>>> referred to by a pagespec can only change if one of those pages itself changes.  i.e. A dependency check of the
+>>>>> first type will catch a dependency change of the second type with current pagespecs.
+>>>>> This doesn't work with backlinks, and it doesn't work with existential matching.  Backlinks are currently special-cased.  I don't know
+>>>>> how to special-case existential matching - I suspect you're better off just getting the dependency tracking right.
+
+>>>>> I also tried to come up with other possible solutions: e.g. can we find the dependencies for a pagespec?  That
+>>>>> would be the set of pages where a change on one of those pages could lead to a change in the set of pages matched by the pagespec.
+>>>>> For old-style pagespecs without backlinks, the dependency set for a pagespec is the same as the set of pages the pagespec matches.
+>>>>> Unfortunately, with existential matching, the set of pages that each
+>>>>> pagespec depends upon can quickly become "*", which is not very useful.  -- [[Will]]
+
+Patch updated to use closures rather than inline generated code for named pagespecs.  Also includes some new use of ErrorReason where appropriate. -- [[Will]]
+
+> * Perl really doesn't need forward declarations, honest!
+
+>> It complained (warning, not error) when I didn't use the forward declaration. :(
+
+> * I have doubts about memoizing the anonymous sub created by
+>   `pagespec_translate`.
+
+>> This is there explicitly to make sure that runtime is polynomial and not exponential.
+
+> * Think where you wrote `+{}` you can just write `{}`
+
+>> Possibly :) -- [[Will]]
+
 ----
 
     diff --git a/IkiWiki.pm b/IkiWiki.pm
-    index 4e4da11..8b3cdfe 100644
+    index 061a1c6..1e78a63 100644
     --- a/IkiWiki.pm
     +++ b/IkiWiki.pm
-    @@ -1550,7 +1550,16 @@ sub globlist_to_pagespec ($) {
-     
-     sub is_globlist ($) {
-       my $s=shift;
-    -  return ( $s =~ /[^\s]+\s+([^\s]+)/ && $1 ne "and" && $1 ne "or" );
-    +  return ! ($s =~ /
-    +                  (^\s*
-    +                          [^\s(]+         # single item
-    +                                  (\(                     # possibly with parens after it
-    +                                          ([^)]*  # with stuff inside those parens
-    +                                          (\([^)]*\))*)*  # maybe even nested parens
-    +                                  \))?\s*$
-    +                  ) |
-    +                          (\s and \s) | (\s or \s)        # or we find 'and' or 'or' somewhere
-    +                  /xs);
-     }
-     
-     sub safequote ($) {
-    @@ -1631,7 +1640,7 @@ sub pagespec_merge ($$) {
+    @@ -1774,8 +1774,12 @@ sub pagespec_merge ($$) {
        return "($a) or ($b)";
      }
      
     -sub pagespec_translate ($) {
-    +sub pagespec_makeperl ($) {
+    +# is perl really so dumb it requires a forward declaration for recursive calls?
+    +sub pagespec_translate ($$);
+    +
+    +sub pagespec_translate ($$) {
        my $spec=shift;
+    +  my $specFuncsRef=shift;
      
-       # Support for old-style GlobLists.
-    @@ -1650,12 +1659,14 @@ sub pagespec_translate ($) {
+       # Convert spec to perl code.
+       my $code="";
+    @@ -1789,7 +1793,9 @@ sub pagespec_translate ($) {
                |
                        \)              # )
                |
     -                  \w+\([^\)]*\)   # command(params)
-    +                  define\(\s*~\w+\s*,((\([^()]*\)) | ([^()]+))+\) # define(~specName, spec) - spec can contain parens 1 deep
+    +                  define\(\s*~\w+\s*,((\([^()]*\)) | ([^()]+))+\) # define(~specName, spec) - spec can contain parens 1 deep
     +          |
     +                  \w+\([^()]*\)   # command(params) - params cannot contain parens
                |
                        [^\s()]+        # any other text
                )
-               \s*             # ignore whitespace
-    -  }igx) {
-    +  }igxs) {
-               my $word=$1;
-               if (lc $word eq 'and') {
-                       $code.=' &&';
-    @@ -1666,16 +1677,23 @@ sub pagespec_translate ($) {
+    @@ -1805,10 +1811,19 @@ sub pagespec_translate ($) {
                elsif ($word eq "(" || $word eq ")" || $word eq "!") {
                        $code.=' '.$word;
                }
     -          elsif ($word =~ /^(\w+)\((.*)\)$/) {
-    +          elsif ($word =~ /^define\(\s*~(\w+)\s*,(.*)\)$/s) {
-    +                  $code .= " (\$params{specFuncs}->{$1}=";        # (exists \$params{specFuncs}) && 
-    +                  $code .= "memoize(";
-    +                  $code .= &pagespec_makeperl($2);
-    +                  $code .= ")";
-    +                  $code .= ") ";
+    +          elsif ($word =~ /^define\(\s*(~\w+)\s*,(.*)\)$/s) {
+    +                  my $name = $1;
+    +                  my $subSpec = $2;
+    +                  my $newSpecFunc = pagespec_translate($subSpec, $specFuncsRef);
+    +                  return if $@ || ! defined $newSpecFunc;
+    +                  $specFuncsRef->{$name} = $newSpecFunc;
+    +                  push @data, qq{Created named pagespec "$name"};
+    +                  $code.="IkiWiki::SuccessReason->new(\$data[$#data])";
     +          }
     +          elsif ($word =~ /^(\w+)\((.*)\)$/s) {
                        if (exists $IkiWiki::PageSpec::{"match_$1"}) {
-    -                          $code.="IkiWiki::PageSpec::match_$1(\$page, ".safequote($2).", \@_)";
-    +                          $code.="IkiWiki::PageSpec::match_$1(\$page, ".safequote($2).", \%params)";
+                               push @data, $2;
+    -                          $code.="IkiWiki::PageSpec::match_$1(\$page, \$data[$#data], \@_)";
+    +                          $code.="IkiWiki::PageSpec::match_$1(\$page, \$data[$#data], \@_, specFuncs => \$specFuncsRef)";
                        }
                        else {
-                               $code.=' 0';
-                       }
+                               push @data, qq{unknown function in pagespec "$word"};
+    @@ -1817,7 +1832,7 @@ sub pagespec_translate ($) {
                }
                else {
-    -                  $code.=" IkiWiki::PageSpec::match_glob(\$page, ".safequote($word).", \@_)";
-    +                  $code.=" IkiWiki::PageSpec::match_glob(\$page, ".safequote($word).", \%params)";
+                       push @data, $word;
+    -                  $code.=" IkiWiki::PageSpec::match_glob(\$page, \$data[$#data], \@_)";
+    +                  $code.=" IkiWiki::PageSpec::match_glob(\$page, \$data[$#data], \@_, specFuncs => \$specFuncsRef)";
                }
        }
      
-    @@ -1683,8 +1701,18 @@ sub pagespec_translate ($) {
-               $code=0;
+    @@ -1826,7 +1841,7 @@ sub pagespec_translate ($) {
        }
      
-    +  return 'sub { my $page=shift; my %params = @_; '.$code.' }';
-    +}
-    +
-    +sub pagespec_translate ($) {
-    +  my $spec=shift;
-    +
-    +  my $code = pagespec_makeperl($spec);
-    +
-    +  # print STDERR "Spec '$spec' generated code '$code'\n";
-    +
        no warnings;
     -  return eval 'sub { my $page=shift; '.$code.' }';
-    +  return eval $code;
+    +  return eval 'memoize (sub { my $page=shift; '.$code.' })';
      }
      
      sub pagespec_match ($$;@) {
-    @@ -1699,7 +1727,7 @@ sub pagespec_match ($$;@) {
+    @@ -1839,7 +1854,7 @@ sub pagespec_match ($$;@) {
+               unshift @params, 'location';
+       }
      
-       my $sub=pagespec_translate($spec);
-       return IkiWiki::FailReason->new("syntax error in pagespec \"$spec\"") if $@;
-    -  return $sub->($page, @params);
-    +  return $sub->($page, @params, specFuncs => {});
-     }
+    -  my $sub=pagespec_translate($spec);
+    +  my $sub=pagespec_translate($spec, +{});
+       return IkiWiki::ErrorReason->new("syntax error in pagespec \"$spec\"")
+               if $@ || ! defined $sub;
+       return $sub->($page, @params);
+    @@ -1850,7 +1865,7 @@ sub pagespec_match_list ($$;@) {
+       my $spec=shift;
+       my @params=@_;
      
+    -  my $sub=pagespec_translate($spec);
+    +  my $sub=pagespec_translate($spec, +{});
+       error "syntax error in pagespec \"$spec\""
+               if $@ || ! defined $sub;
+       
+    @@ -1872,7 +1887,7 @@ sub pagespec_match_list ($$;@) {
      sub pagespec_valid ($) {
-    @@ -1748,11 +1776,78 @@ sub new {
+       my $spec=shift;
+     
+    -  my $sub=pagespec_translate($spec);
+    +  my $sub=pagespec_translate($spec, +{});
+       return ! $@;
+     }
+     
+    @@ -1919,6 +1934,68 @@ sub new {
      
      package IkiWiki::PageSpec;
      
@@ -342,15 +613,14 @@ account all comments above (which doesn't mean it is above reproach :) ).  --[[W
     +  my $page=shift;
     +  my $specName=shift;
     +  my %params=@_;
-    +  
-    +  error("Unable to find specFuncs in params to check_named_spec()!") unless exists $params{specFuncs};
+    +
+    +  return IkiWiki::ErrorReason->new("Unable to find specFuncs in params to check_named_spec()!")
+    +          unless exists $params{specFuncs};
     +
     +  my $specFuncsRef=$params{specFuncs};
-    +  
-    +  return IkiWiki::FailReason->new("Named page spec '$specName' is not valid")
+    +
+    +  return IkiWiki::ErrorReason->new("Named page spec '$specName' is not valid")
     +          unless (substr($specName, 0, 1) eq '~');
-    +  
-    +  $specName = substr($specName, 1);
     +
     +  if (exists $specFuncsRef->{$specName}) {
     +          # remove the named spec from the spec refs
@@ -361,7 +631,7 @@ account all comments above (which doesn't mean it is above reproach :) ).  --[[W
     +          $specFuncsRef->{$specName} = $sub;
     +          return $result;
     +  } else {
-    +          return IkiWiki::FailReason->new("Page spec '$specName' does not exist");
+    +          return IkiWiki::ErrorReason->new("Page spec '$specName' does not exist");
     +  }
     +}
     +
@@ -370,14 +640,14 @@ account all comments above (which doesn't mean it is above reproach :) ).  --[[W
     +  my $specName=shift;
     +  my $funcref=shift;
     +  my %params=@_;
-    +  
-    +  error("Unable to find specFuncs in params to check_named_spec_existential()!") unless exists $params{specFuncs};
+    +
+    +  return IkiWiki::ErrorReason->new("Unable to find specFuncs in params to check_named_spec_existential()!")
+    +                  unless exists $params{specFuncs};
     +  my $specFuncsRef=$params{specFuncs};
     +  
-    +  return IkiWiki::FailReason->new("Named page spec '$specName' is not valid")
+    +  return IkiWiki::ErrorReason->new("Named page spec '$specName' is not valid")
     +          unless (substr($specName, 0, 1) eq '~');
-    +  $specName = substr($specName, 1);
-    +  
+    +
     +  if (exists $specFuncsRef->{$specName}) {
     +          # remove the named spec from the spec refs
     +          # when we recurse to avoid infinite recursion
@@ -389,7 +659,7 @@ account all comments above (which doesn't mean it is above reproach :) ).  --[[W
     +                          my $tempResult = $funcref->($page, $nextpage, %params);
     +                          if ($tempResult) {
     +                                  $specFuncsRef->{$specName} = $sub;
-    +                                  return $tempResult;
+    +                                  return IkiWiki::SuccessReason->new("Existential check of '$specName' matches because $tempResult");
     +                          }
     +                  }
     +          }
@@ -397,12 +667,14 @@ account all comments above (which doesn't mean it is above reproach :) ).  --[[W
     +          $specFuncsRef->{$specName} = $sub;
     +          return IkiWiki::FailReason->new("No page in spec '$specName' was successfully matched");
     +  } else {
-    +          return IkiWiki::FailReason->new("Named page spec '$specName' does not exist");
+    +          return IkiWiki::ErrorReason->new("Named page spec '$specName' does not exist");
     +  }
     +}
     +
-     sub match_glob ($$;@) {
-       my $page=shift;
+     sub derel ($$) {
+       my $path=shift;
+       my $from=shift;
+    @@ -1937,6 +2014,10 @@ sub match_glob ($$;@) {
        my $glob=shift;
        my %params=@_;
        
@@ -410,30 +682,31 @@ account all comments above (which doesn't mean it is above reproach :) ).  --[[W
     +          return check_named_spec($page, $glob, %params);
     +  }
     +
-       my $from=exists $params{location} ? $params{location} : '';
-       
-       # relative matching
-    @@ -1782,11 +1877,12 @@ sub match_internal ($$;@) {
+       $glob=derel($glob, $params{location});
+     
+       my $regexp=IkiWiki::glob2re($glob);
+    @@ -1959,8 +2040,9 @@ sub match_internal ($$;@) {
      
      sub match_link ($$;@) {
        my $page=shift;
     -  my $link=lc(shift);
-    +  my $fulllink=shift;
+    +  my $fullLink=shift;
        my %params=@_;
-    +  my $link=lc($fulllink);
+    +  my $link=lc($fullLink);
      
+       $link=derel($link, $params{location});
        my $from=exists $params{location} ? $params{location} : '';
-    -
-    +  
-       # relative matching
-       if ($link =~ m!^\.! && defined $from) {
-               $from=~s#/?[^/]+$##;
-    @@ -1804,19 +1900,32 @@ sub match_link ($$;@) {
+    @@ -1975,25 +2057,37 @@ sub match_link ($$;@) {
                }
                else {
                        return IkiWiki::SuccessReason->new("$page links to page $p matching $link")
     -                          if match_glob($p, $link, %params);
-    +                          if match_glob($p, $fulllink, %params);
+    +                          if match_glob($p, $fullLink, %params);
+                       $p=~s/^\///;
+                       $link=~s/^\///;
+                       return IkiWiki::SuccessReason->new("$page links to page $p matching $link")
+    -                          if match_glob($p, $link, %params);
+    +                          if match_glob($p, $fullLink, %params);
                }
        }
        return IkiWiki::FailReason->new("$page does not link to $link");
@@ -455,23 +728,24 @@ account all comments above (which doesn't mean it is above reproach :) ).  --[[W
      sub match_created_before ($$;@) {
        my $page=shift;
        my $testpage=shift;
-    +  my @params=@_;
+       my %params=@_;
+    -  
     +
     +  if (substr($testpage, 0, 1) eq '~') {
-    +          return check_named_spec_existential($page, $testpage, \&match_created_before, @params);
+    +          return check_named_spec_existential($page, $testpage, \&match_created_before, %params);
     +  }
+    +
+       $testpage=derel($testpage, $params{location});
      
        if (exists $IkiWiki::pagectime{$testpage}) {
-               if ($IkiWiki::pagectime{$page} < $IkiWiki::pagectime{$testpage}) {
-    @@ -1834,6 +1943,11 @@ sub match_created_before ($$;@) {
-     sub match_created_after ($$;@) {
-       my $page=shift;
+    @@ -2014,6 +2108,10 @@ sub match_created_after ($$;@) {
        my $testpage=shift;
-    +  my @params=@_;
-    +
+       my %params=@_;
+       
     +  if (substr($testpage, 0, 1) eq '~') {
-    +          return check_named_spec_existential($page, $testpage, \&match_created_after, @params);
+    +          return check_named_spec_existential($page, $testpage, \&match_created_after, %params);
     +  }
+    +
+       $testpage=derel($testpage, $params{location});
      
        if (exists $IkiWiki::pagectime{$testpage}) {
-               if ($IkiWiki::pagectime{$page} > $IkiWiki::pagectime{$testpage}) {
index a5244c9ef2a532a9c3b1620976c0bbbdeb7eed55..7a4a295d4ad7cd354a65af5f9777c375ba5cd733 100644 (file)
@@ -2,3 +2,8 @@
 wiki syntax within the comments of code pretty-printed with the
 [[plugins/contrib/syntax]] plugin.  This would allow the use of links and
 formatting in comments.
+
+> You can do this using the [[plugins/highlight]] plugin, but you have
+> to explicitly put a format directive in the comment to do it. Thus,
+> I'm leaving this open for now.. ideally, comments would be detected,
+> and formatted as markdown. --[[Joey]] 
index 0030a30d3fd15937e324f3b0508a2ec34efc2713..b50e4844a04f30a21fd3c3d9e2b00fb94a3ca3d6 100644 (file)
@@ -2,12 +2,12 @@
 
 I'm currently hosting a private ikiwiki for keeping research notes
 which, with some patches and a plugin (below), will
-convert inline LaTeX expressions to MathML.  I'm working towards a
+convert inline [[todo/LaTeX]] expressions to [[MathML]].  I'm working towards a
 patchset and instructions for others to do the same.
 
 I've setup a test ikiwiki [here](http://xbeta.org/colab/) where I've
 started keeping a few notes on my progress.  There is an example of
-inline SVG on the homepage (note that the logo scales along with the
+inline [[todo/SVG]] on the homepage (note that the logo scales along with the
 font size).  There are a few example mathematical expressions in the
 [sandbox](http://xbeta.org/colab/sandbox/).  The MathML is generated
 automatically from inline LaTeX expressions using an experimental
@@ -32,23 +32,23 @@ These plugins are experimental.  Use them at your own risk.  Read the
 perldoc documentation for more details.  Patches and suggestions are
 welcome.
 
- * [mdwn_itex][] - Works with the `mdwn` plugin to convert inline LaTeX
-   expressions to MathML using `itex2MML`.
+ * [mdwn_itex][] - Works with the [[`mdwn`|plugins/mdwn]] plugin to convert inline [[todo/LaTeX]]
+   expressions to [[MathML]] using `itex2MML`.
 
  * [h1title][] - If present, use the leading level 1 Markdown header to
    set the page title and remove it from the page body.
 
- * [code][] - Whole file and inline code snippet syntax highlighting
+ * [code][] - Whole file and inline code snippet [[todo/syntax highlighting]]
    via GNU Source-highlight.  The list of supported file extensions is
    configurable.  There is also some preliminary [documentation][code-doc].
    See the [FortranWiki](http://fortranwiki.org) for examples.
 
- * [metamail][] - a plugin for loading metadata from email-style
+ * [metamail][] - a plugin for loading metadata from [[email]]-style
    headers at top of a file (e.g., `title: Page Title` or
    `date: November 2, 2008 11:14 EST`).
 
- * [pandoc][] - Markdown page processing via [Pandoc](http://johnmacfarlane.net/pandoc/) (a Haskell library for converting from one markup format to another).  LaTeX and
-   reStructuredText are optional.
+ * [pandoc][] - [[ikiwiki/Markdown]] page processing via [Pandoc](http://johnmacfarlane.net/pandoc/) (a Haskell library for converting from one markup format to another).  [[todo/LaTeX]] and
+   [[reStructuredText|plugins/rst]] are optional.
 
  * [path][] - Provides path-specific template conditionals such as
    `IS_HOMEPAGE` and `IN_DIR_SUBDIR`.
index f365cd5aaa373751bb14448882ef3d320a32036c..6c0480cea0630d2183efea5435d81204f8bd0cc1 100644 (file)
@@ -36,6 +36,8 @@ located in /usr/share/ikiwiki/templates by default.
   [[plugins/comments]] plugin.
 * `commentmoderation.tmpl` - This template is used to produce the comment
   moderation form.
+* `recentchanges.tmpl` - This template is used for listing a change
+  on the RecentChanges page.
 
 The [[plugins/pagetemplate]] plugin can allow individual pages to use a
 different template than `page.tmpl`.
index 7b9484dd16dc3c4f3a1ee36ab566dfd0aa8eb07b..91bf2fe84fb4580c1b479076a774066f09b20870 100755 (executable)
@@ -6,7 +6,7 @@ my $error=0;
 
 open (IN, "doc/git.mdwn") || die "doc/git.mdwn: $!";
 while (<IN>) {
-       if (/^\*\s+\[?\[?(\w+)\]?\]?\s+`([^>]+)`/) {
+       if (/^\*\s+\[?\[?(\w+)(?:\|\w+)?\]?\]?\s+`([^>]+)`/) {
                # note that the remote name has to be a simple word (\w)
                # for security/sanity reasons
                my $remote=$1;
index 7e99c878e64b753a9484dc072d426a0f64940334..398b1a3c8eb989a59258e0a846ca0cb0a5addcb0 100755 (executable)
@@ -184,7 +184,9 @@ sub moveprefs {
 }
 
 sub deduplinks {
-       setstatdir(shift);
+       loadsetup(shift);
+       IkiWiki::loadplugins();
+       IkiWiki::checkconfig();
        IkiWiki::loadindex();
        foreach my $page (keys %links) {
                my %l;
@@ -237,7 +239,7 @@ sub usage {
        print STDERR "\tmoveprefs setupfile\n";
        print STDERR "\thashpassword setupfile|srcdir\n";
        print STDERR "\tindexdb setupfile|srcdir\n";
-       print STDERR "\tdeduplinks setupfile|srcdir\n";
+       print STDERR "\tdeduplinks setupfile\n";
        exit 1;
 }
 
index c79a2bfef98dd8ee6a3042bfdde919f3304534b0..4e9b812f852cb4b9805c51d7af6c0d0576d8a976 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -T
+#!/usr/bin/perl
 $ENV{PATH}="/usr/local/bin:/usr/bin:/bin";
 delete @ENV{qw{IFS CDPATH ENV BASH_ENV}};
 
index 4984f32d906eae416001dad7f29baab986c0d8c2..1e51f9dd347c79e738d4aa9b4ef33da86aeafbfa 100755 (executable)
--- a/pm_filter
+++ b/pm_filter
@@ -25,8 +25,8 @@ elsif (/^use lib/) {
                $_="use lib '$libdir';\n";
        }
 }
-elsif ($. == 1 && ($ENV{NOTAINT} || ! exists $ENV{NOTAINT}) && m{^(#!.*perl.*?) -T$}) {
-       $_=qq{$1\n};
+elsif ($. == 1 && ($ENV{NOTAINT}=0) && m{^(#!.*perl.*?)$}) {
+       $_=qq{$1 -T\n};
 }
 elsif (/^\$ENV{PATH}="(.*)";/) {
        $_="\$ENV{PATH}=\"$1:$prefix/bin\";\n";
index 65f8bdf2c04402ddbe7e19f5e235c932ad082896..b9c32cf729489c4581cca29490763c59cb252aba 100644 (file)
--- a/po/bg.po
+++ b/po/bg.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki-bg\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-06 12:58-0400\n"
+"POT-Creation-Date: 2009-06-04 13:21-0400\n"
 "PO-Revision-Date: 2007-01-12 01:19+0200\n"
 "Last-Translator: Damyan Ivanov <dam@modsodtsys.com>\n"
 "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
@@ -55,7 +55,7 @@ msgstr "Предпочитанията са запазени."
 msgid "You are banned."
 msgstr "Достъпът ви е забранен."
 
-#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1211
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1218
 msgid "Error"
 msgstr "Грешка"
 
@@ -188,11 +188,11 @@ msgid ""
 msgstr ""
 
 #: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
-#: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/opendiscussion.pm:26
-#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
-#: ../IkiWiki/Render.pm:149
-msgid "discussion"
-msgstr "дискусия"
+#: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/inline.pm:365
+#: ../IkiWiki/Plugin/opendiscussion.pm:26 ../IkiWiki/Plugin/orphans.pm:37
+#: ../IkiWiki/Render.pm:79 ../IkiWiki/Render.pm:83 ../IkiWiki/Render.pm:149
+msgid "Discussion"
+msgstr "Ð\94искусия"
 
 #: ../IkiWiki/Plugin/brokenlinks.pm:48
 #, perl-format
@@ -203,68 +203,68 @@ msgstr ""
 msgid "There are no broken links!"
 msgstr "Няма „счупени” връзки!"
 
-#: ../IkiWiki/Plugin/comments.pm:122 ../IkiWiki/Plugin/format.pm:23
+#: ../IkiWiki/Plugin/comments.pm:124 ../IkiWiki/Plugin/format.pm:38
 #, perl-format
 msgid "unsupported page format %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:127
+#: ../IkiWiki/Plugin/comments.pm:129
 msgid "comment must have content"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:183
+#: ../IkiWiki/Plugin/comments.pm:185
 msgid "Anonymous"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:333 ../IkiWiki/Plugin/editpage.pm:97
+#: ../IkiWiki/Plugin/comments.pm:340 ../IkiWiki/Plugin/editpage.pm:97
 msgid "bad page name"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:338
+#: ../IkiWiki/Plugin/comments.pm:345
 #, fuzzy, perl-format
 msgid "commenting on %s"
 msgstr "създаване на %s"
 
-#: ../IkiWiki/Plugin/comments.pm:356
+#: ../IkiWiki/Plugin/comments.pm:363
 #, perl-format
 msgid "page '%s' doesn't exist, so you can't comment"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:363
+#: ../IkiWiki/Plugin/comments.pm:370
 #, perl-format
 msgid "comments on page '%s' are closed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:457
+#: ../IkiWiki/Plugin/comments.pm:464
 msgid "comment stored for moderation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:459
+#: ../IkiWiki/Plugin/comments.pm:466
 msgid "Your comment will be posted after moderator review"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:472
+#: ../IkiWiki/Plugin/comments.pm:479
 msgid "Added a comment"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:476
+#: ../IkiWiki/Plugin/comments.pm:483
 #, perl-format
 msgid "Added a comment: %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:518 ../IkiWiki/Plugin/websetup.pm:236
+#: ../IkiWiki/Plugin/comments.pm:525 ../IkiWiki/Plugin/websetup.pm:236
 msgid "you are not logged in as an admin"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:569
+#: ../IkiWiki/Plugin/comments.pm:576
 msgid "Comment moderation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:608
+#: ../IkiWiki/Plugin/comments.pm:615
 msgid "comment moderation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:759
+#: ../IkiWiki/Plugin/comments.pm:766
 msgid "Comments"
 msgstr ""
 
@@ -294,14 +294,14 @@ msgstr "премахване на старата страница „%s”"
 msgid "%s is not an editable page"
 msgstr ""
 
-#: ../IkiWiki/Plugin/editpage.pm:289
+#: ../IkiWiki/Plugin/editpage.pm:291
 #, perl-format
 msgid "creating %s"
 msgstr "създаване на %s"
 
-#: ../IkiWiki/Plugin/editpage.pm:307 ../IkiWiki/Plugin/editpage.pm:326
-#: ../IkiWiki/Plugin/editpage.pm:336 ../IkiWiki/Plugin/editpage.pm:380
-#: ../IkiWiki/Plugin/editpage.pm:419
+#: ../IkiWiki/Plugin/editpage.pm:309 ../IkiWiki/Plugin/editpage.pm:328
+#: ../IkiWiki/Plugin/editpage.pm:338 ../IkiWiki/Plugin/editpage.pm:382
+#: ../IkiWiki/Plugin/editpage.pm:421
 #, perl-format
 msgid "editing %s"
 msgstr "промяна на %s"
@@ -377,6 +377,21 @@ msgstr "приставката „linkmap”: грешка при изпълне
 msgid "prog not a valid graphviz program"
 msgstr ""
 
+#: ../IkiWiki/Plugin/highlight.pm:46
+#, perl-format
+msgid "tohighlight contains unknown file type '%s'"
+msgstr ""
+
+#: ../IkiWiki/Plugin/highlight.pm:57
+#, perl-format
+msgid "Source code: %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/highlight.pm:122
+msgid ""
+"warning: highlight perl module not available; falling back to pass through"
+msgstr ""
+
 #: ../IkiWiki/Plugin/img.pm:62
 #, fuzzy
 msgid "Image::Magick is not installed"
@@ -437,10 +452,6 @@ msgstr ""
 msgid "nonexistant template %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/inline.pm:365 ../IkiWiki/Render.pm:83
-msgid "Discussion"
-msgstr "Дискусия"
-
 #: ../IkiWiki/Plugin/inline.pm:596
 msgid "RPC::XML::Client not found, not pinging"
 msgstr "модулът „RPC::XML::Client” не е намерен; източникът не е проверен"
@@ -726,24 +737,24 @@ msgstr ""
 msgid "rename %s"
 msgstr "обновяване на страницата „%s”"
 
-#: ../IkiWiki/Plugin/rename.pm:138
+#: ../IkiWiki/Plugin/rename.pm:140
 msgid "Also rename SubPages and attachments"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:224
+#: ../IkiWiki/Plugin/rename.pm:226
 msgid "Only one attachment can be renamed at a time."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:227
+#: ../IkiWiki/Plugin/rename.pm:229
 msgid "Please select the attachment to rename."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:338
+#: ../IkiWiki/Plugin/rename.pm:340
 #, perl-format
 msgid "rename %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:493
+#: ../IkiWiki/Plugin/rename.pm:495
 #, fuzzy, perl-format
 msgid "update for rename of %s to %s"
 msgstr "обновяване на страниците от уики „%s”: %s от потребител „%s”"
@@ -1044,31 +1055,31 @@ msgstr "обновяване на уики..."
 msgid "refreshing wiki.."
 msgstr "осъвременяване на уики..."
 
-#: ../IkiWiki.pm:480
+#: ../IkiWiki.pm:487
 msgid "Must specify url to wiki with --url when using --cgi"
 msgstr ""
 "При използване на пареметъра „--cgi” е необходимо да се укаже и "
 "местоположението на уикито чрез параметъра „--url”"
 
-#: ../IkiWiki.pm:526
+#: ../IkiWiki.pm:533
 msgid "cannot use multiple rcs plugins"
 msgstr ""
 
-#: ../IkiWiki.pm:555
+#: ../IkiWiki.pm:562
 #, perl-format
 msgid "failed to load external plugin needed for %s plugin: %s"
 msgstr ""
 
-#: ../IkiWiki.pm:1194
+#: ../IkiWiki.pm:1201
 #, fuzzy, perl-format
 msgid "preprocessing loop detected on %s at depth %i"
 msgstr "открита е циклична завидимост при %s на „%s” на дълбочина %i"
 
-#: ../IkiWiki.pm:1732
+#: ../IkiWiki.pm:1733
 msgid "yes"
 msgstr ""
 
-#: ../IkiWiki.pm:1860
+#: ../IkiWiki.pm:1865
 #, fuzzy, perl-format
 msgid "cannot match pages: %s"
 msgstr "грешка при четене на „%s”: %s"
@@ -1093,6 +1104,9 @@ msgstr ""
 msgid "What is the domain name of the web server?"
 msgstr ""
 
+#~ msgid "discussion"
+#~ msgstr "дискусия"
+
 #~ msgid "failed to write %s: %s"
 #~ msgstr "грешка при запис на файла „%s”: %s"
 
index aa6e0c92852d06138a51f50dd8261cff746a4863..70336e41b545975ca6e8706027cae98fecfb5e8b 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-06 12:58-0400\n"
+"POT-Creation-Date: 2009-06-04 13:21-0400\n"
 "PO-Revision-Date: 2007-05-09 21:21+0200\n"
 "Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
 "Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
@@ -53,7 +53,7 @@ msgstr "Nastavení uloženo."
 msgid "You are banned."
 msgstr "Jste vyhoštěni."
 
-#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1211
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1218
 msgid "Error"
 msgstr "Chyba"
 
@@ -185,11 +185,11 @@ msgid ""
 msgstr ""
 
 #: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
-#: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/opendiscussion.pm:26
-#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
-#: ../IkiWiki/Render.pm:149
-msgid "discussion"
-msgstr "diskuse"
+#: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/inline.pm:365
+#: ../IkiWiki/Plugin/opendiscussion.pm:26 ../IkiWiki/Plugin/orphans.pm:37
+#: ../IkiWiki/Render.pm:79 ../IkiWiki/Render.pm:83 ../IkiWiki/Render.pm:149
+msgid "Discussion"
+msgstr "Diskuse"
 
 #: ../IkiWiki/Plugin/brokenlinks.pm:48
 #, perl-format
@@ -200,68 +200,68 @@ msgstr ""
 msgid "There are no broken links!"
 msgstr "Žádné porušené odkazy!"
 
-#: ../IkiWiki/Plugin/comments.pm:122 ../IkiWiki/Plugin/format.pm:23
+#: ../IkiWiki/Plugin/comments.pm:124 ../IkiWiki/Plugin/format.pm:38
 #, perl-format
 msgid "unsupported page format %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:127
+#: ../IkiWiki/Plugin/comments.pm:129
 msgid "comment must have content"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:183
+#: ../IkiWiki/Plugin/comments.pm:185
 msgid "Anonymous"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:333 ../IkiWiki/Plugin/editpage.pm:97
+#: ../IkiWiki/Plugin/comments.pm:340 ../IkiWiki/Plugin/editpage.pm:97
 msgid "bad page name"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:338
+#: ../IkiWiki/Plugin/comments.pm:345
 #, fuzzy, perl-format
 msgid "commenting on %s"
 msgstr "vytvářím %s"
 
-#: ../IkiWiki/Plugin/comments.pm:356
+#: ../IkiWiki/Plugin/comments.pm:363
 #, perl-format
 msgid "page '%s' doesn't exist, so you can't comment"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:363
+#: ../IkiWiki/Plugin/comments.pm:370
 #, perl-format
 msgid "comments on page '%s' are closed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:457
+#: ../IkiWiki/Plugin/comments.pm:464
 msgid "comment stored for moderation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:459
+#: ../IkiWiki/Plugin/comments.pm:466
 msgid "Your comment will be posted after moderator review"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:472
+#: ../IkiWiki/Plugin/comments.pm:479
 msgid "Added a comment"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:476
+#: ../IkiWiki/Plugin/comments.pm:483
 #, perl-format
 msgid "Added a comment: %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:518 ../IkiWiki/Plugin/websetup.pm:236
+#: ../IkiWiki/Plugin/comments.pm:525 ../IkiWiki/Plugin/websetup.pm:236
 msgid "you are not logged in as an admin"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:569
+#: ../IkiWiki/Plugin/comments.pm:576
 msgid "Comment moderation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:608
+#: ../IkiWiki/Plugin/comments.pm:615
 msgid "comment moderation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:759
+#: ../IkiWiki/Plugin/comments.pm:766
 msgid "Comments"
 msgstr ""
 
@@ -291,14 +291,14 @@ msgstr "odstraňuji starou stránku %s"
 msgid "%s is not an editable page"
 msgstr "%s není editovatelná stránka"
 
-#: ../IkiWiki/Plugin/editpage.pm:289
+#: ../IkiWiki/Plugin/editpage.pm:291
 #, perl-format
 msgid "creating %s"
 msgstr "vytvářím %s"
 
-#: ../IkiWiki/Plugin/editpage.pm:307 ../IkiWiki/Plugin/editpage.pm:326
-#: ../IkiWiki/Plugin/editpage.pm:336 ../IkiWiki/Plugin/editpage.pm:380
-#: ../IkiWiki/Plugin/editpage.pm:419
+#: ../IkiWiki/Plugin/editpage.pm:309 ../IkiWiki/Plugin/editpage.pm:328
+#: ../IkiWiki/Plugin/editpage.pm:338 ../IkiWiki/Plugin/editpage.pm:382
+#: ../IkiWiki/Plugin/editpage.pm:421
 #, perl-format
 msgid "editing %s"
 msgstr "upravuji %s"
@@ -373,6 +373,21 @@ msgstr "nepodařilo se spustit graphviz"
 msgid "prog not a valid graphviz program"
 msgstr "program není platným programem graphviz"
 
+#: ../IkiWiki/Plugin/highlight.pm:46
+#, perl-format
+msgid "tohighlight contains unknown file type '%s'"
+msgstr ""
+
+#: ../IkiWiki/Plugin/highlight.pm:57
+#, perl-format
+msgid "Source code: %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/highlight.pm:122
+msgid ""
+"warning: highlight perl module not available; falling back to pass through"
+msgstr ""
+
 #: ../IkiWiki/Plugin/img.pm:62
 #, fuzzy
 msgid "Image::Magick is not installed"
@@ -431,10 +446,6 @@ msgstr "Přidat nový příspěvek nazvaný:"
 msgid "nonexistant template %s"
 msgstr "neexistující šablona %s"
 
-#: ../IkiWiki/Plugin/inline.pm:365 ../IkiWiki/Render.pm:83
-msgid "Discussion"
-msgstr "Diskuse"
-
 #: ../IkiWiki/Plugin/inline.pm:596
 msgid "RPC::XML::Client not found, not pinging"
 msgstr "RPC::XML::Client nebyl nalezen, nepinkám"
@@ -715,24 +726,24 @@ msgstr ""
 msgid "rename %s"
 msgstr "zpracovávám %s"
 
-#: ../IkiWiki/Plugin/rename.pm:138
+#: ../IkiWiki/Plugin/rename.pm:140
 msgid "Also rename SubPages and attachments"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:224
+#: ../IkiWiki/Plugin/rename.pm:226
 msgid "Only one attachment can be renamed at a time."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:227
+#: ../IkiWiki/Plugin/rename.pm:229
 msgid "Please select the attachment to rename."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:338
+#: ../IkiWiki/Plugin/rename.pm:340
 #, perl-format
 msgid "rename %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:493
+#: ../IkiWiki/Plugin/rename.pm:495
 #, fuzzy, perl-format
 msgid "update for rename of %s to %s"
 msgstr "aktualizace %s (%s) uživatelem %s"
@@ -1026,29 +1037,29 @@ msgstr "znovu vytvářím wiki..."
 msgid "refreshing wiki.."
 msgstr "obnovuji wiki..."
 
-#: ../IkiWiki.pm:480
+#: ../IkiWiki.pm:487
 msgid "Must specify url to wiki with --url when using --cgi"
 msgstr "Při použití --cgi musíte pomocí --url zadat url k wiki"
 
-#: ../IkiWiki.pm:526
+#: ../IkiWiki.pm:533
 msgid "cannot use multiple rcs plugins"
 msgstr ""
 
-#: ../IkiWiki.pm:555
+#: ../IkiWiki.pm:562
 #, perl-format
 msgid "failed to load external plugin needed for %s plugin: %s"
 msgstr ""
 
-#: ../IkiWiki.pm:1194
+#: ../IkiWiki.pm:1201
 #, fuzzy, perl-format
 msgid "preprocessing loop detected on %s at depth %i"
 msgstr "Byla rozpoznána smyčka direktivy %s na %s v hloubce %i"
 
-#: ../IkiWiki.pm:1732
+#: ../IkiWiki.pm:1733
 msgid "yes"
 msgstr ""
 
-#: ../IkiWiki.pm:1860
+#: ../IkiWiki.pm:1865
 #, fuzzy, perl-format
 msgid "cannot match pages: %s"
 msgstr "nemohu číst %s: %s"
@@ -1073,6 +1084,9 @@ msgstr ""
 msgid "What is the domain name of the web server?"
 msgstr ""
 
+#~ msgid "discussion"
+#~ msgstr "diskuse"
+
 #~ msgid "failed to write %s: %s"
 #~ msgstr "nelze zapsat %s: %s"
 
index 4dfa998ca537d2d53043d4775e94082e22a9d332..c94b71febff204ac67201008e8df5af1ca3bfa64 100644 (file)
--- a/po/da.po
+++ b/po/da.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-06 12:58-0400\n"
-"PO-Revision-Date: 2009-04-26 23:34+0100\n"
+"POT-Creation-Date: 2009-06-04 13:21-0400\n"
+"PO-Revision-Date: 2009-05-28 14:58+0200\n"
 "Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"
@@ -59,7 +59,7 @@ msgstr "Indstillinger gemt"
 msgid "You are banned."
 msgstr "Du er banlyst."
 
-#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1211
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1218
 msgid "Error"
 msgstr "Fejl"
 
@@ -191,11 +191,11 @@ msgstr ""
 "a>: "
 
 #: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
-#: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/opendiscussion.pm:26
-#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
-#: ../IkiWiki/Render.pm:149
-msgid "discussion"
-msgstr "diskussion"
+#: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/inline.pm:365
+#: ../IkiWiki/Plugin/opendiscussion.pm:26 ../IkiWiki/Plugin/orphans.pm:37
+#: ../IkiWiki/Render.pm:79 ../IkiWiki/Render.pm:83 ../IkiWiki/Render.pm:149
+msgid "Discussion"
+msgstr "Diskussion"
 
 #: ../IkiWiki/Plugin/brokenlinks.pm:48
 #, perl-format
@@ -206,68 +206,68 @@ msgstr "%s fra %s"
 msgid "There are no broken links!"
 msgstr "Ingen henvisninger der ikker fungerer!"
 
-#: ../IkiWiki/Plugin/comments.pm:122 ../IkiWiki/Plugin/format.pm:23
+#: ../IkiWiki/Plugin/comments.pm:124 ../IkiWiki/Plugin/format.pm:38
 #, perl-format
 msgid "unsupported page format %s"
 msgstr "Ikke-understøttet sideformat %s"
 
-#: ../IkiWiki/Plugin/comments.pm:127
+#: ../IkiWiki/Plugin/comments.pm:129
 msgid "comment must have content"
 msgstr "kommentar skal have indhold"
 
-#: ../IkiWiki/Plugin/comments.pm:183
+#: ../IkiWiki/Plugin/comments.pm:185
 msgid "Anonymous"
 msgstr "Anonym"
 
-#: ../IkiWiki/Plugin/comments.pm:333 ../IkiWiki/Plugin/editpage.pm:97
+#: ../IkiWiki/Plugin/comments.pm:340 ../IkiWiki/Plugin/editpage.pm:97
 msgid "bad page name"
 msgstr "dårligt sidenavn"
 
-#: ../IkiWiki/Plugin/comments.pm:338
+#: ../IkiWiki/Plugin/comments.pm:345
 #, perl-format
 msgid "commenting on %s"
 msgstr "kommenterer på %s"
 
-#: ../IkiWiki/Plugin/comments.pm:356
+#: ../IkiWiki/Plugin/comments.pm:363
 #, perl-format
 msgid "page '%s' doesn't exist, so you can't comment"
 msgstr "siden '%s' eksisterer ikke, så du kan ikke kommentere"
 
-#: ../IkiWiki/Plugin/comments.pm:363
+#: ../IkiWiki/Plugin/comments.pm:370
 #, perl-format
 msgid "comments on page '%s' are closed"
 msgstr "kommentarer på side '%s' er lukket"
 
-#: ../IkiWiki/Plugin/comments.pm:457
+#: ../IkiWiki/Plugin/comments.pm:464
 msgid "comment stored for moderation"
 msgstr "kommentar gemt for moderering"
 
-#: ../IkiWiki/Plugin/comments.pm:459
+#: ../IkiWiki/Plugin/comments.pm:466
 msgid "Your comment will be posted after moderator review"
 msgstr "Din kommentar vil blive tilføjet efter moderatorgenemsyn"
 
-#: ../IkiWiki/Plugin/comments.pm:472
+#: ../IkiWiki/Plugin/comments.pm:479
 msgid "Added a comment"
 msgstr "Tilføjede en kommentar"
 
-#: ../IkiWiki/Plugin/comments.pm:476
+#: ../IkiWiki/Plugin/comments.pm:483
 #, perl-format
 msgid "Added a comment: %s"
 msgstr "Tilføjede en kommentar: %s"
 
-#: ../IkiWiki/Plugin/comments.pm:518 ../IkiWiki/Plugin/websetup.pm:236
+#: ../IkiWiki/Plugin/comments.pm:525 ../IkiWiki/Plugin/websetup.pm:236
 msgid "you are not logged in as an admin"
 msgstr "du er ikke logget på som en administrator"
 
-#: ../IkiWiki/Plugin/comments.pm:569
+#: ../IkiWiki/Plugin/comments.pm:576
 msgid "Comment moderation"
 msgstr "Kommentarmoderering"
 
-#: ../IkiWiki/Plugin/comments.pm:608
+#: ../IkiWiki/Plugin/comments.pm:615
 msgid "comment moderation"
 msgstr "kommentarkoderering"
 
-#: ../IkiWiki/Plugin/comments.pm:759
+#: ../IkiWiki/Plugin/comments.pm:766
 msgid "Comments"
 msgstr "Kommentarer"
 
@@ -297,14 +297,14 @@ msgstr "fjerner gammelt smugkig %s"
 msgid "%s is not an editable page"
 msgstr "%s er ikke en redigérbar side"
 
-#: ../IkiWiki/Plugin/editpage.pm:289
+#: ../IkiWiki/Plugin/editpage.pm:291
 #, perl-format
 msgid "creating %s"
 msgstr "opretter %s"
 
-#: ../IkiWiki/Plugin/editpage.pm:307 ../IkiWiki/Plugin/editpage.pm:326
-#: ../IkiWiki/Plugin/editpage.pm:336 ../IkiWiki/Plugin/editpage.pm:380
-#: ../IkiWiki/Plugin/editpage.pm:419
+#: ../IkiWiki/Plugin/editpage.pm:309 ../IkiWiki/Plugin/editpage.pm:328
+#: ../IkiWiki/Plugin/editpage.pm:338 ../IkiWiki/Plugin/editpage.pm:382
+#: ../IkiWiki/Plugin/editpage.pm:421
 #, perl-format
 msgid "editing %s"
 msgstr "redigerer %s"
@@ -375,6 +375,23 @@ msgstr "graphviz-kørsel mislykkedes"
 msgid "prog not a valid graphviz program"
 msgstr "prog er ikke et gyldigt graphviz-program"
 
+#: ../IkiWiki/Plugin/highlight.pm:46
+#, perl-format
+msgid "tohighlight contains unknown file type '%s'"
+msgstr "tohighlight indeholder ukendt filtype '%s'"
+
+#: ../IkiWiki/Plugin/highlight.pm:57
+#, perl-format
+msgid "Source code: %s"
+msgstr "Kildekode: %s"
+
+#: ../IkiWiki/Plugin/highlight.pm:122
+msgid ""
+"warning: highlight perl module not available; falling back to pass through"
+msgstr ""
+"advarsel: highlight perl modul ikke tilgængelig: falder tilbage til simpel "
+"gennemkørsel"
+
 #: ../IkiWiki/Plugin/img.pm:62
 msgid "Image::Magick is not installed"
 msgstr "Image::Magick ikke installeret"
@@ -430,10 +447,6 @@ msgstr "Tilføj nyt indlæg med følgende titel:"
 msgid "nonexistant template %s"
 msgstr "ikke-eksisterende skabelon: %s"
 
-#: ../IkiWiki/Plugin/inline.pm:365 ../IkiWiki/Render.pm:83
-msgid "Discussion"
-msgstr "Diskussion"
-
 #: ../IkiWiki/Plugin/inline.pm:596
 msgid "RPC::XML::Client not found, not pinging"
 msgstr "RPC::XML::Client ikke fundet, pinger ikke"
@@ -712,24 +725,24 @@ msgstr "%s eksisterer allerede på disken"
 msgid "rename %s"
 msgstr "omdøb %s"
 
-#: ../IkiWiki/Plugin/rename.pm:138
+#: ../IkiWiki/Plugin/rename.pm:140
 msgid "Also rename SubPages and attachments"
 msgstr "Omdøb også UnderSider og vedhæftninger"
 
-#: ../IkiWiki/Plugin/rename.pm:224
+#: ../IkiWiki/Plugin/rename.pm:226
 msgid "Only one attachment can be renamed at a time."
 msgstr "Kun en vedhæftning kan blive omdøbt ad gangen."
 
-#: ../IkiWiki/Plugin/rename.pm:227
+#: ../IkiWiki/Plugin/rename.pm:229
 msgid "Please select the attachment to rename."
 msgstr "Vælg vedhæftningen som skal omdøbes."
 
-#: ../IkiWiki/Plugin/rename.pm:338
+#: ../IkiWiki/Plugin/rename.pm:340
 #, perl-format
 msgid "rename %s to %s"
 msgstr "omdøb %s til %s"
 
-#: ../IkiWiki/Plugin/rename.pm:493
+#: ../IkiWiki/Plugin/rename.pm:495
 #, perl-format
 msgid "update for rename of %s to %s"
 msgstr "opdatering til omdøbning af %s til %s"
@@ -1026,30 +1039,30 @@ msgstr "genopbygger wiki..."
 msgid "refreshing wiki.."
 msgstr "genopfrisker wiki..."
 
-#: ../IkiWiki.pm:480
+#: ../IkiWiki.pm:487
 msgid "Must specify url to wiki with --url when using --cgi"
 msgstr "Skal angive url til wiki med --url når der bruges --cgi"
 
-#: ../IkiWiki.pm:526
+#: ../IkiWiki.pm:533
 msgid "cannot use multiple rcs plugins"
 msgstr "kan ikke bruge flere samtidige RCS-udvidelser"
 
-#: ../IkiWiki.pm:555
+#: ../IkiWiki.pm:562
 #, perl-format
 msgid "failed to load external plugin needed for %s plugin: %s"
 msgstr ""
 "indlæsning af ekstern udvidelse krævet af udvidelsen %s mislykkedes: %s"
 
-#: ../IkiWiki.pm:1194
+#: ../IkiWiki.pm:1201
 #, perl-format
 msgid "preprocessing loop detected on %s at depth %i"
 msgstr "forudberegningssløkke fundet på %s ved dybde %i"
 
-#: ../IkiWiki.pm:1732
+#: ../IkiWiki.pm:1733
 msgid "yes"
 msgstr "ja"
 
-#: ../IkiWiki.pm:1860
+#: ../IkiWiki.pm:1865
 #, perl-format
 msgid "cannot match pages: %s"
 msgstr "kan ikke få sider til at passe sammen: %s"
@@ -1074,6 +1087,9 @@ msgstr "Hvilken wiki bruger (eller openid) skal være administrator?"
 msgid "What is the domain name of the web server?"
 msgstr "Hvad er domænenavnet på webserveren?"
 
+#~ msgid "discussion"
+#~ msgstr "diskussion"
+
 #~ msgid "<p class=\"error\">Error: %s exited nonzero (%s)"
 #~ msgstr "<p class=\"error\">Fejl: %s sluttede med fejl (%s)"
 
index 73105ed6e9ce3244b89dea527290c34022d1ba80..ee779c795b72e63e16b82c8712816df7acc8a43f 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki 3.06\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-06 12:58-0400\n"
+"POT-Creation-Date: 2009-06-04 13:21-0400\n"
 "PO-Revision-Date: 2009-03-02 15:39+0100\n"
 "Last-Translator: Kai Wasserbäch <debian@carbon-project.org>\n"
 "Language-Team: German <debian-l10n-german@lists.debian.org>\n"
@@ -55,7 +55,7 @@ msgstr "Einstellungen gespeichert."
 msgid "You are banned."
 msgstr "Sie sind ausgeschlossen worden."
 
-#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1211
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1218
 msgid "Error"
 msgstr "Fehler"
 
@@ -187,10 +187,10 @@ msgstr ""
 "als Spam ein: "
 
 #: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
-#: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/opendiscussion.pm:26
-#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
-#: ../IkiWiki/Render.pm:149
-msgid "discussion"
+#: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/inline.pm:365
+#: ../IkiWiki/Plugin/opendiscussion.pm:26 ../IkiWiki/Plugin/orphans.pm:37
+#: ../IkiWiki/Render.pm:79 ../IkiWiki/Render.pm:83 ../IkiWiki/Render.pm:149
+msgid "Discussion"
 msgstr "Diskussion"
 
 #: ../IkiWiki/Plugin/brokenlinks.pm:48
@@ -202,71 +202,71 @@ msgstr "%s von %s"
 msgid "There are no broken links!"
 msgstr "Es gibt keine ungültigen Links!"
 
-#: ../IkiWiki/Plugin/comments.pm:122 ../IkiWiki/Plugin/format.pm:23
+#: ../IkiWiki/Plugin/comments.pm:124 ../IkiWiki/Plugin/format.pm:38
 #, perl-format
 msgid "unsupported page format %s"
 msgstr "nicht unterstütztes Seitenformat %s"
 
-#: ../IkiWiki/Plugin/comments.pm:127
+#: ../IkiWiki/Plugin/comments.pm:129
 msgid "comment must have content"
 msgstr "Kommentare dürfen nicht leer sein."
 
-#: ../IkiWiki/Plugin/comments.pm:183
+#: ../IkiWiki/Plugin/comments.pm:185
 msgid "Anonymous"
 msgstr "Anonymer Benutzer"
 
-#: ../IkiWiki/Plugin/comments.pm:333 ../IkiWiki/Plugin/editpage.pm:97
+#: ../IkiWiki/Plugin/comments.pm:340 ../IkiWiki/Plugin/editpage.pm:97
 msgid "bad page name"
 msgstr "fehlerhafter Seitenname"
 
-#: ../IkiWiki/Plugin/comments.pm:338
+#: ../IkiWiki/Plugin/comments.pm:345
 #, perl-format
 msgid "commenting on %s"
 msgstr "kommentiere %s"
 
-#: ../IkiWiki/Plugin/comments.pm:356
+#: ../IkiWiki/Plugin/comments.pm:363
 #, perl-format
 msgid "page '%s' doesn't exist, so you can't comment"
 msgstr ""
 "Die Seite »%s« existiert nicht, deshalb können Sie sie nicht kommentieren."
 
-#: ../IkiWiki/Plugin/comments.pm:363
+#: ../IkiWiki/Plugin/comments.pm:370
 #, perl-format
 msgid "comments on page '%s' are closed"
 msgstr ""
 "Es können keine weiteren Kommentare für die Seite »%s« abgegeben werden."
 
-#: ../IkiWiki/Plugin/comments.pm:457
+#: ../IkiWiki/Plugin/comments.pm:464
 msgid "comment stored for moderation"
 msgstr "Kommentar wurde gespeichert und erwartet Freischaltung."
 
-#: ../IkiWiki/Plugin/comments.pm:459
+#: ../IkiWiki/Plugin/comments.pm:466
 msgid "Your comment will be posted after moderator review"
 msgstr ""
 "Ihr Kommentar wird freigegeben, nachdem ein Moderator ihn überprüft hat."
 
-#: ../IkiWiki/Plugin/comments.pm:472
+#: ../IkiWiki/Plugin/comments.pm:479
 msgid "Added a comment"
 msgstr "Kommentar hinzugefügt."
 
-#: ../IkiWiki/Plugin/comments.pm:476
+#: ../IkiWiki/Plugin/comments.pm:483
 #, perl-format
 msgid "Added a comment: %s"
 msgstr "Kommentar hinzugefügt: %s"
 
-#: ../IkiWiki/Plugin/comments.pm:518 ../IkiWiki/Plugin/websetup.pm:236
+#: ../IkiWiki/Plugin/comments.pm:525 ../IkiWiki/Plugin/websetup.pm:236
 msgid "you are not logged in as an admin"
 msgstr "Sie sind nicht als Administrator angemeldet"
 
-#: ../IkiWiki/Plugin/comments.pm:569
+#: ../IkiWiki/Plugin/comments.pm:576
 msgid "Comment moderation"
 msgstr "Kommentarmoderation"
 
-#: ../IkiWiki/Plugin/comments.pm:608
+#: ../IkiWiki/Plugin/comments.pm:615
 msgid "comment moderation"
 msgstr "Kommentarmoderation"
 
-#: ../IkiWiki/Plugin/comments.pm:759
+#: ../IkiWiki/Plugin/comments.pm:766
 msgid "Comments"
 msgstr "Kommentare"
 
@@ -296,14 +296,14 @@ msgstr "entferne alte Vorschau %s"
 msgid "%s is not an editable page"
 msgstr "Die Seite %s kann nicht bearbeitet werden"
 
-#: ../IkiWiki/Plugin/editpage.pm:289
+#: ../IkiWiki/Plugin/editpage.pm:291
 #, perl-format
 msgid "creating %s"
 msgstr "erstelle %s"
 
-#: ../IkiWiki/Plugin/editpage.pm:307 ../IkiWiki/Plugin/editpage.pm:326
-#: ../IkiWiki/Plugin/editpage.pm:336 ../IkiWiki/Plugin/editpage.pm:380
-#: ../IkiWiki/Plugin/editpage.pm:419
+#: ../IkiWiki/Plugin/editpage.pm:309 ../IkiWiki/Plugin/editpage.pm:328
+#: ../IkiWiki/Plugin/editpage.pm:338 ../IkiWiki/Plugin/editpage.pm:382
+#: ../IkiWiki/Plugin/editpage.pm:421
 #, perl-format
 msgid "editing %s"
 msgstr "bearbeite %s"
@@ -376,6 +376,21 @@ msgstr "graphviz konnte nicht ausgeführt werden"
 msgid "prog not a valid graphviz program"
 msgstr "prog ist kein gültiges graphviz-Programm"
 
+#: ../IkiWiki/Plugin/highlight.pm:46
+#, perl-format
+msgid "tohighlight contains unknown file type '%s'"
+msgstr ""
+
+#: ../IkiWiki/Plugin/highlight.pm:57
+#, perl-format
+msgid "Source code: %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/highlight.pm:122
+msgid ""
+"warning: highlight perl module not available; falling back to pass through"
+msgstr ""
+
 #: ../IkiWiki/Plugin/img.pm:62
 msgid "Image::Magick is not installed"
 msgstr "Image::Magick ist nicht installiert"
@@ -433,10 +448,6 @@ msgstr "Füge einen neuen Beitrag hinzu. Titel:"
 msgid "nonexistant template %s"
 msgstr "nicht-vorhandene Vorlage %s"
 
-#: ../IkiWiki/Plugin/inline.pm:365 ../IkiWiki/Render.pm:83
-msgid "Discussion"
-msgstr "Diskussion"
-
 #: ../IkiWiki/Plugin/inline.pm:596
 msgid "RPC::XML::Client not found, not pinging"
 msgstr "RPC::XML::Client nicht gefunden, führe Ping nicht aus"
@@ -720,24 +731,24 @@ msgstr "%s existiert bereits auf der Festplatte"
 msgid "rename %s"
 msgstr "benenne %s um"
 
-#: ../IkiWiki/Plugin/rename.pm:138
+#: ../IkiWiki/Plugin/rename.pm:140
 msgid "Also rename SubPages and attachments"
 msgstr "Auch Unterseiten und Anhänge umbenennen"
 
-#: ../IkiWiki/Plugin/rename.pm:224
+#: ../IkiWiki/Plugin/rename.pm:226
 msgid "Only one attachment can be renamed at a time."
 msgstr "Es kann immer nur ein Anhang gleichzeitig umbenannt werden."
 
-#: ../IkiWiki/Plugin/rename.pm:227
+#: ../IkiWiki/Plugin/rename.pm:229
 msgid "Please select the attachment to rename."
 msgstr "Bitte wählen Sie den umzubenennenden Anhang aus."
 
-#: ../IkiWiki/Plugin/rename.pm:338
+#: ../IkiWiki/Plugin/rename.pm:340
 #, perl-format
 msgid "rename %s to %s"
 msgstr "Benenne %s in %s um"
 
-#: ../IkiWiki/Plugin/rename.pm:493
+#: ../IkiWiki/Plugin/rename.pm:495
 #, perl-format
 msgid "update for rename of %s to %s"
 msgstr "Aktualisierung für Umbenennung von %s in %s"
@@ -1035,32 +1046,32 @@ msgstr "erzeuge Wiki neu..."
 msgid "refreshing wiki.."
 msgstr "aktualisiere Wiki..."
 
-#: ../IkiWiki.pm:480
+#: ../IkiWiki.pm:487
 msgid "Must specify url to wiki with --url when using --cgi"
 msgstr ""
 "Es muss eine URL zum Wiki mit --url angegeben werden, wenn --cgi verwandt "
 "wird"
 
-#: ../IkiWiki.pm:526
+#: ../IkiWiki.pm:533
 msgid "cannot use multiple rcs plugins"
 msgstr ""
 "Es können nicht mehrere Versionskontrollsystem-Erweiterungen verwandt werden"
 
-#: ../IkiWiki.pm:555
+#: ../IkiWiki.pm:562
 #, perl-format
 msgid "failed to load external plugin needed for %s plugin: %s"
 msgstr "Laden der für %s benötigten externen Erweiterung fehlgeschlagen: %s"
 
-#: ../IkiWiki.pm:1194
+#: ../IkiWiki.pm:1201
 #, perl-format
 msgid "preprocessing loop detected on %s at depth %i"
 msgstr "Präprozessorschleife auf %s in Tiefe %i erkannt"
 
-#: ../IkiWiki.pm:1732
+#: ../IkiWiki.pm:1733
 msgid "yes"
 msgstr "ja"
 
-#: ../IkiWiki.pm:1860
+#: ../IkiWiki.pm:1865
 #, fuzzy, perl-format
 msgid "cannot match pages: %s"
 msgstr "kann %s nicht lesen: %s"
@@ -1087,6 +1098,9 @@ msgstr ""
 msgid "What is the domain name of the web server?"
 msgstr "Wie lautet der Domainname des Webservers?"
 
+#~ msgid "discussion"
+#~ msgstr "Diskussion"
+
 #~ msgid "<p class=\"error\">Error: %s exited nonzero (%s)"
 #~ msgstr ""
 #~ "<p class=\"error\">Fehler: %s beendete sich mit einem Wert ungleich Null "
index 91a08feafd71a3a68b769d85e754cd6886c5aff0..dda242df978287604c4ec64c298736420cc1e585 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -10,8 +10,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: es\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-06 12:58-0400\n"
-"PO-Revision-Date: 2009-04-27 09:32+0200\n"
+"POT-Creation-Date: 2009-06-04 13:21-0400\n"
+"PO-Revision-Date: 2009-05-25 09:30+0200\n"
 "Last-Translator: Víctor Moral <victor@taquiones.net>\n"
 "Language-Team: spanish <es@li.org>\n"
 "MIME-Version: 1.0\n"
@@ -61,7 +61,7 @@ msgstr "Las preferencias se han guardado."
 msgid "You are banned."
 msgstr "Ha sido expulsado."
 
-#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1211
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1218
 msgid "Error"
 msgstr "Error"
 
@@ -194,11 +194,11 @@ msgstr ""
 "dice que el texto puede ser spam."
 
 #: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
-#: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/opendiscussion.pm:26
-#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
-#: ../IkiWiki/Render.pm:149
-msgid "discussion"
-msgstr "comentarios"
+#: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/inline.pm:365
+#: ../IkiWiki/Plugin/opendiscussion.pm:26 ../IkiWiki/Plugin/orphans.pm:37
+#: ../IkiWiki/Render.pm:79 ../IkiWiki/Render.pm:83 ../IkiWiki/Render.pm:149
+msgid "Discussion"
+msgstr "Comentarios"
 
 #: ../IkiWiki/Plugin/brokenlinks.pm:48
 #, perl-format
@@ -209,68 +209,68 @@ msgstr "%s desde la página %s"
 msgid "There are no broken links!"
 msgstr "¡ No hay enlaces rotos !"
 
-#: ../IkiWiki/Plugin/comments.pm:122 ../IkiWiki/Plugin/format.pm:23
+#: ../IkiWiki/Plugin/comments.pm:124 ../IkiWiki/Plugin/format.pm:38
 #, perl-format
 msgid "unsupported page format %s"
 msgstr "formato de página %s no soportado"
 
-#: ../IkiWiki/Plugin/comments.pm:127
+#: ../IkiWiki/Plugin/comments.pm:129
 msgid "comment must have content"
 msgstr "Un comentario debe tener algún contenido"
 
-#: ../IkiWiki/Plugin/comments.pm:183
+#: ../IkiWiki/Plugin/comments.pm:185
 msgid "Anonymous"
 msgstr "Anónimo"
 
-#: ../IkiWiki/Plugin/comments.pm:333 ../IkiWiki/Plugin/editpage.pm:97
+#: ../IkiWiki/Plugin/comments.pm:340 ../IkiWiki/Plugin/editpage.pm:97
 msgid "bad page name"
 msgstr "nombre de página erróneo"
 
-#: ../IkiWiki/Plugin/comments.pm:338
+#: ../IkiWiki/Plugin/comments.pm:345
 #, perl-format
 msgid "commenting on %s"
 msgstr "creando comentarios en la página %s"
 
-#: ../IkiWiki/Plugin/comments.pm:356
+#: ../IkiWiki/Plugin/comments.pm:363
 #, perl-format
 msgid "page '%s' doesn't exist, so you can't comment"
 msgstr "la página '%s' no existe, así que no se puede comentar sobre ella"
 
-#: ../IkiWiki/Plugin/comments.pm:363
+#: ../IkiWiki/Plugin/comments.pm:370
 #, perl-format
 msgid "comments on page '%s' are closed"
 msgstr "los comentarios para la página '%s' están cerrados"
 
-#: ../IkiWiki/Plugin/comments.pm:457
+#: ../IkiWiki/Plugin/comments.pm:464
 msgid "comment stored for moderation"
 msgstr "comentario guardado a la espera de aprobación"
 
-#: ../IkiWiki/Plugin/comments.pm:459
+#: ../IkiWiki/Plugin/comments.pm:466
 msgid "Your comment will be posted after moderator review"
 msgstr "Su comentario será publicado después de que el moderador lo revise"
 
-#: ../IkiWiki/Plugin/comments.pm:472
+#: ../IkiWiki/Plugin/comments.pm:479
 msgid "Added a comment"
 msgstr "Añadir un comentario"
 
-#: ../IkiWiki/Plugin/comments.pm:476
+#: ../IkiWiki/Plugin/comments.pm:483
 #, perl-format
 msgid "Added a comment: %s"
 msgstr "Comentario añadido: %s"
 
-#: ../IkiWiki/Plugin/comments.pm:518 ../IkiWiki/Plugin/websetup.pm:236
+#: ../IkiWiki/Plugin/comments.pm:525 ../IkiWiki/Plugin/websetup.pm:236
 msgid "you are not logged in as an admin"
 msgstr "No está registrado como un administrador"
 
-#: ../IkiWiki/Plugin/comments.pm:569
+#: ../IkiWiki/Plugin/comments.pm:576
 msgid "Comment moderation"
 msgstr "Aprobación de comentarios"
 
-#: ../IkiWiki/Plugin/comments.pm:608
+#: ../IkiWiki/Plugin/comments.pm:615
 msgid "comment moderation"
 msgstr "aprobación de comentarios"
 
-#: ../IkiWiki/Plugin/comments.pm:759
+#: ../IkiWiki/Plugin/comments.pm:766
 msgid "Comments"
 msgstr "Comentarios"
 
@@ -300,14 +300,14 @@ msgstr "eliminando la antigua previsualización %s"
 msgid "%s is not an editable page"
 msgstr "la página %s no es modificable"
 
-#: ../IkiWiki/Plugin/editpage.pm:289
+#: ../IkiWiki/Plugin/editpage.pm:291
 #, perl-format
 msgid "creating %s"
 msgstr "creando página %s"
 
-#: ../IkiWiki/Plugin/editpage.pm:307 ../IkiWiki/Plugin/editpage.pm:326
-#: ../IkiWiki/Plugin/editpage.pm:336 ../IkiWiki/Plugin/editpage.pm:380
-#: ../IkiWiki/Plugin/editpage.pm:419
+#: ../IkiWiki/Plugin/editpage.pm:309 ../IkiWiki/Plugin/editpage.pm:328
+#: ../IkiWiki/Plugin/editpage.pm:338 ../IkiWiki/Plugin/editpage.pm:382
+#: ../IkiWiki/Plugin/editpage.pm:421
 #, perl-format
 msgid "editing %s"
 msgstr "modificando página %s"
@@ -381,6 +381,23 @@ msgstr "no he podido ejecutar el programa graphviz "
 msgid "prog not a valid graphviz program"
 msgstr "prog no es un programa graphviz válido "
 
+#: ../IkiWiki/Plugin/highlight.pm:46
+#, perl-format
+msgid "tohighlight contains unknown file type '%s'"
+msgstr "la directiva tohighlight contiene el tipo de archivo desconocido '%s' "
+
+#: ../IkiWiki/Plugin/highlight.pm:57
+#, perl-format
+msgid "Source code: %s"
+msgstr "Código fuente: %s"
+
+#: ../IkiWiki/Plugin/highlight.pm:122
+msgid ""
+"warning: highlight perl module not available; falling back to pass through"
+msgstr ""
+"aviso: el módulo Perl hightlight no está disponible; retrocedo la entrada "
+"para continuar el proceso. "
+
 #: ../IkiWiki/Plugin/img.pm:62
 msgid "Image::Magick is not installed"
 msgstr "El complemento Image::Magick no ha sido instalado"
@@ -440,10 +457,6 @@ msgstr "Añadir una entrada nueva titulada:"
 msgid "nonexistant template %s"
 msgstr "la plantilla %s no existe "
 
-#: ../IkiWiki/Plugin/inline.pm:365 ../IkiWiki/Render.pm:83
-msgid "Discussion"
-msgstr "Comentarios"
-
 #: ../IkiWiki/Plugin/inline.pm:596
 msgid "RPC::XML::Client not found, not pinging"
 msgstr "No he encontrado el componente RPC::XML::Client, no envío señal alguna"
@@ -725,24 +738,24 @@ msgstr "%s ya existe en el disco"
 msgid "rename %s"
 msgstr "cambiando de nombre %s"
 
-#: ../IkiWiki/Plugin/rename.pm:138
+#: ../IkiWiki/Plugin/rename.pm:140
 msgid "Also rename SubPages and attachments"
 msgstr "También cambia de nombre las subpáginas y los adjuntos"
 
-#: ../IkiWiki/Plugin/rename.pm:224
+#: ../IkiWiki/Plugin/rename.pm:226
 msgid "Only one attachment can be renamed at a time."
 msgstr "Únicamente un adjunto puede ser renombrado a la vez."
 
-#: ../IkiWiki/Plugin/rename.pm:227
+#: ../IkiWiki/Plugin/rename.pm:229
 msgid "Please select the attachment to rename."
 msgstr "Por favor, seleccione el adjunto al que cambiar el nombre."
 
-#: ../IkiWiki/Plugin/rename.pm:338
+#: ../IkiWiki/Plugin/rename.pm:340
 #, perl-format
 msgid "rename %s to %s"
 msgstr "%s cambia de nombre a %s"
 
-#: ../IkiWiki/Plugin/rename.pm:493
+#: ../IkiWiki/Plugin/rename.pm:495
 #, perl-format
 msgid "update for rename of %s to %s"
 msgstr "actualizado el cambio de nombre de %s a %s"
@@ -1044,33 +1057,33 @@ msgstr "reconstruyendo el wiki.."
 msgid "refreshing wiki.."
 msgstr "actualizando el wiki.."
 
-#: ../IkiWiki.pm:480
+#: ../IkiWiki.pm:487
 msgid "Must specify url to wiki with --url when using --cgi"
 msgstr ""
 "Es obligatorio especificar un url al wiki con el parámetro --url si se "
 "utiliza el parámetro --cgi"
 
-#: ../IkiWiki.pm:526
+#: ../IkiWiki.pm:533
 msgid "cannot use multiple rcs plugins"
 msgstr "no puedo emplear varios complementos rcs"
 
-#: ../IkiWiki.pm:555
+#: ../IkiWiki.pm:562
 #, perl-format
 msgid "failed to load external plugin needed for %s plugin: %s"
 msgstr "no he podido cargar el complemento externo %s necesario para %s"
 
-#: ../IkiWiki.pm:1194
+#: ../IkiWiki.pm:1201
 #, perl-format
 msgid "preprocessing loop detected on %s at depth %i"
 msgstr ""
 "se ha detectado en la página %s un bucle de preprocesado en la iteración "
 "número %i"
 
-#: ../IkiWiki.pm:1732
+#: ../IkiWiki.pm:1733
 msgid "yes"
 msgstr "si"
 
-#: ../IkiWiki.pm:1860
+#: ../IkiWiki.pm:1865
 #, perl-format
 msgid "cannot match pages: %s"
 msgstr "no encuentro páginas coincidentes: %s"
@@ -1096,3 +1109,6 @@ msgstr ""
 #: ../auto.setup:23
 msgid "What is the domain name of the web server?"
 msgstr "¿ Cuál es el dominio para el servidor web ?"
+
+#~ msgid "discussion"
+#~ msgstr "comentarios"
index 065a01f2b0474a3707319fa9385391590f77c173..9724633c0a7e1dcbfba65bbb5e7c97f993413122 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki 3.04\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-06 12:58-0400\n"
+"POT-Creation-Date: 2009-06-04 13:21-0400\n"
 "PO-Revision-Date: 2009-03-15 16:10+0100\n"
 "Last-Translator: Philippe Batailler <philippe.batailler@free.fr>\n"
 "Language-Team: French <debian-l10n-french@lists.debian.org>\n"
@@ -57,7 +57,7 @@ msgstr "Les préférences ont été enregistrées."
 msgid "You are banned."
 msgstr "Vous avez été banni."
 
-#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1211
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1218
 msgid "Error"
 msgstr "Erreur"
 
@@ -189,10 +189,10 @@ msgstr ""
 "blogspam.net/\">blogspam</a>: "
 
 #: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
-#: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/opendiscussion.pm:26
-#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
-#: ../IkiWiki/Render.pm:149
-msgid "discussion"
+#: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/inline.pm:365
+#: ../IkiWiki/Plugin/opendiscussion.pm:26 ../IkiWiki/Plugin/orphans.pm:37
+#: ../IkiWiki/Render.pm:79 ../IkiWiki/Render.pm:83 ../IkiWiki/Render.pm:149
+msgid "Discussion"
 msgstr "Discussion"
 
 #: ../IkiWiki/Plugin/brokenlinks.pm:48
@@ -204,68 +204,68 @@ msgstr "%s sur %s"
 msgid "There are no broken links!"
 msgstr "Aucun lien cassé !"
 
-#: ../IkiWiki/Plugin/comments.pm:122 ../IkiWiki/Plugin/format.pm:23
+#: ../IkiWiki/Plugin/comments.pm:124 ../IkiWiki/Plugin/format.pm:38
 #, perl-format
 msgid "unsupported page format %s"
 msgstr "Format de page non reconnu %s"
 
-#: ../IkiWiki/Plugin/comments.pm:127
+#: ../IkiWiki/Plugin/comments.pm:129
 msgid "comment must have content"
 msgstr "Un commentaire doit avoir un contenu."
 
-#: ../IkiWiki/Plugin/comments.pm:183
+#: ../IkiWiki/Plugin/comments.pm:185
 msgid "Anonymous"
 msgstr "Anonyme"
 
-#: ../IkiWiki/Plugin/comments.pm:333 ../IkiWiki/Plugin/editpage.pm:97
+#: ../IkiWiki/Plugin/comments.pm:340 ../IkiWiki/Plugin/editpage.pm:97
 msgid "bad page name"
 msgstr "Nom de page incorrect"
 
-#: ../IkiWiki/Plugin/comments.pm:338
+#: ../IkiWiki/Plugin/comments.pm:345
 #, perl-format
 msgid "commenting on %s"
 msgstr "Faire un commentaire sur %s"
 
-#: ../IkiWiki/Plugin/comments.pm:356
+#: ../IkiWiki/Plugin/comments.pm:363
 #, perl-format
 msgid "page '%s' doesn't exist, so you can't comment"
 msgstr "La page '%s' n'existe pas, commentaire impossible."
 
-#: ../IkiWiki/Plugin/comments.pm:363
+#: ../IkiWiki/Plugin/comments.pm:370
 #, perl-format
 msgid "comments on page '%s' are closed"
 msgstr "Le commentaire pour la page '%s' est terminé."
 
-#: ../IkiWiki/Plugin/comments.pm:457
+#: ../IkiWiki/Plugin/comments.pm:464
 msgid "comment stored for moderation"
 msgstr "Le commentaire a été enregistré en attente de modération"
 
-#: ../IkiWiki/Plugin/comments.pm:459
+#: ../IkiWiki/Plugin/comments.pm:466
 msgid "Your comment will be posted after moderator review"
 msgstr "Votre commentaire sera publié après que le modérateur l'ait vérifié"
 
-#: ../IkiWiki/Plugin/comments.pm:472
+#: ../IkiWiki/Plugin/comments.pm:479
 msgid "Added a comment"
 msgstr "Commentaire ajouté"
 
-#: ../IkiWiki/Plugin/comments.pm:476
+#: ../IkiWiki/Plugin/comments.pm:483
 #, perl-format
 msgid "Added a comment: %s"
 msgstr "Commentaire ajouté : %s"
 
-#: ../IkiWiki/Plugin/comments.pm:518 ../IkiWiki/Plugin/websetup.pm:236
+#: ../IkiWiki/Plugin/comments.pm:525 ../IkiWiki/Plugin/websetup.pm:236
 msgid "you are not logged in as an admin"
 msgstr "Vous n'êtes pas authentifié comme administrateur"
 
-#: ../IkiWiki/Plugin/comments.pm:569
+#: ../IkiWiki/Plugin/comments.pm:576
 msgid "Comment moderation"
 msgstr "Modération du commentaire"
 
-#: ../IkiWiki/Plugin/comments.pm:608
+#: ../IkiWiki/Plugin/comments.pm:615
 msgid "comment moderation"
 msgstr "modération du commentaire"
 
-#: ../IkiWiki/Plugin/comments.pm:759
+#: ../IkiWiki/Plugin/comments.pm:766
 msgid "Comments"
 msgstr "Commentaires"
 
@@ -295,14 +295,14 @@ msgstr "Suppression de l'ancienne prévisualisation %s"
 msgid "%s is not an editable page"
 msgstr "%s n'est pas une page éditable"
 
-#: ../IkiWiki/Plugin/editpage.pm:289
+#: ../IkiWiki/Plugin/editpage.pm:291
 #, perl-format
 msgid "creating %s"
 msgstr "Création de %s"
 
-#: ../IkiWiki/Plugin/editpage.pm:307 ../IkiWiki/Plugin/editpage.pm:326
-#: ../IkiWiki/Plugin/editpage.pm:336 ../IkiWiki/Plugin/editpage.pm:380
-#: ../IkiWiki/Plugin/editpage.pm:419
+#: ../IkiWiki/Plugin/editpage.pm:309 ../IkiWiki/Plugin/editpage.pm:328
+#: ../IkiWiki/Plugin/editpage.pm:338 ../IkiWiki/Plugin/editpage.pm:382
+#: ../IkiWiki/Plugin/editpage.pm:421
 #, perl-format
 msgid "editing %s"
 msgstr "Édition de %s"
@@ -373,6 +373,21 @@ msgstr "Échec du lancement de graphviz"
 msgid "prog not a valid graphviz program"
 msgstr "Ce programme n'est pas un programme graphviz valable"
 
+#: ../IkiWiki/Plugin/highlight.pm:46
+#, perl-format
+msgid "tohighlight contains unknown file type '%s'"
+msgstr ""
+
+#: ../IkiWiki/Plugin/highlight.pm:57
+#, perl-format
+msgid "Source code: %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/highlight.pm:122
+msgid ""
+"warning: highlight perl module not available; falling back to pass through"
+msgstr ""
+
 #: ../IkiWiki/Plugin/img.pm:62
 msgid "Image::Magick is not installed"
 msgstr "Image::Magick n'est pas installé"
@@ -430,10 +445,6 @@ msgstr "Ajouter un nouvel article dont le titre est :"
 msgid "nonexistant template %s"
 msgstr "Le modèle de page %s n'existe pas"
 
-#: ../IkiWiki/Plugin/inline.pm:365 ../IkiWiki/Render.pm:83
-msgid "Discussion"
-msgstr "Discussion"
-
 #: ../IkiWiki/Plugin/inline.pm:596
 msgid "RPC::XML::Client not found, not pinging"
 msgstr "RPC::XML::Client introuvable, pas de réponse au ping"
@@ -715,24 +726,24 @@ msgstr "%s existe déjà sur le disque"
 msgid "rename %s"
 msgstr "%s renommé"
 
-#: ../IkiWiki/Plugin/rename.pm:138
+#: ../IkiWiki/Plugin/rename.pm:140
 msgid "Also rename SubPages and attachments"
 msgstr "« SubPages » et attachements renommés."
 
-#: ../IkiWiki/Plugin/rename.pm:224
+#: ../IkiWiki/Plugin/rename.pm:226
 msgid "Only one attachment can be renamed at a time."
 msgstr "Une seule pièce jointe peut être renommée à la fois"
 
-#: ../IkiWiki/Plugin/rename.pm:227
+#: ../IkiWiki/Plugin/rename.pm:229
 msgid "Please select the attachment to rename."
 msgstr "Veuillez sélectionner la pièce jointe à renommer"
 
-#: ../IkiWiki/Plugin/rename.pm:338
+#: ../IkiWiki/Plugin/rename.pm:340
 #, perl-format
 msgid "rename %s to %s"
 msgstr "Renomme %s en %s"
 
-#: ../IkiWiki/Plugin/rename.pm:493
+#: ../IkiWiki/Plugin/rename.pm:495
 #, perl-format
 msgid "update for rename of %s to %s"
 msgstr "mise à jour, suite au changement de %s en %s"
@@ -1033,30 +1044,30 @@ msgstr "Reconstruction du wiki..."
 msgid "refreshing wiki.."
 msgstr "Rafraîchissement du wiki..."
 
-#: ../IkiWiki.pm:480
+#: ../IkiWiki.pm:487
 msgid "Must specify url to wiki with --url when using --cgi"
 msgstr ""
 "Vous devez indiquer l'URL du wiki par --url lors de l'utilisation de --cgi"
 
-#: ../IkiWiki.pm:526
+#: ../IkiWiki.pm:533
 msgid "cannot use multiple rcs plugins"
 msgstr "Impossible d'utiliser plusieurs systèmes de contrôle des versions"
 
-#: ../IkiWiki.pm:555
+#: ../IkiWiki.pm:562
 #, perl-format
 msgid "failed to load external plugin needed for %s plugin: %s"
 msgstr "Impossible de charger le greffon externe nécessaire au greffon %s : %s"
 
-#: ../IkiWiki.pm:1194
+#: ../IkiWiki.pm:1201
 #, perl-format
 msgid "preprocessing loop detected on %s at depth %i"
 msgstr "Une boucle de pré traitement a été détectée sur %s à hauteur de %i"
 
-#: ../IkiWiki.pm:1732
+#: ../IkiWiki.pm:1733
 msgid "yes"
 msgstr "oui"
 
-#: ../IkiWiki.pm:1860
+#: ../IkiWiki.pm:1865
 #, fuzzy, perl-format
 msgid "cannot match pages: %s"
 msgstr "Lecture impossible de %s : %s"
@@ -1081,6 +1092,9 @@ msgstr "Identifiant de l'administrateur (utilisateur du wiki ou openid) :"
 msgid "What is the domain name of the web server?"
 msgstr "Nom de domaine du serveur HTTP :"
 
+#~ msgid "discussion"
+#~ msgstr "Discussion"
+
 #~ msgid "<p class=\"error\">Error: %s exited nonzero (%s)"
 #~ msgstr ""
 #~ "<p class=\"erreur\">Erreur : %s s'est terminé, valeur de sortie nonzero (%"
index e3328722877ba9bd2d8fe8824ba617c1c4321ea0..fe42deed44daf3fdeb0b20f9e14fde1e0dc09789 100644 (file)
--- a/po/gu.po
+++ b/po/gu.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki-gu\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-06 12:58-0400\n"
+"POT-Creation-Date: 2009-06-04 13:21-0400\n"
 "PO-Revision-Date: 2007-01-11 16:05+0530\n"
 "Last-Translator: Kartik Mistry <kartik.mistry@gmail.com>\n"
 "Language-Team: Gujarati <team@utkarsh.org>\n"
@@ -54,7 +54,7 @@ msgstr "પ્રાથમિકતાઓ સંગ્રહાઇ."
 msgid "You are banned."
 msgstr "તમારા પર પ્રતિબંધ છે."
 
-#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1211
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1218
 msgid "Error"
 msgstr "ક્ષતિ"
 
@@ -186,10 +186,10 @@ msgid ""
 msgstr ""
 
 #: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
-#: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/opendiscussion.pm:26
-#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
-#: ../IkiWiki/Render.pm:149
-msgid "discussion"
+#: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/inline.pm:365
+#: ../IkiWiki/Plugin/opendiscussion.pm:26 ../IkiWiki/Plugin/orphans.pm:37
+#: ../IkiWiki/Render.pm:79 ../IkiWiki/Render.pm:83 ../IkiWiki/Render.pm:149
+msgid "Discussion"
 msgstr "ચર્ચા"
 
 #: ../IkiWiki/Plugin/brokenlinks.pm:48
@@ -201,68 +201,68 @@ msgstr ""
 msgid "There are no broken links!"
 msgstr "અહીં કોઇ તૂટેલ કડી નથી!"
 
-#: ../IkiWiki/Plugin/comments.pm:122 ../IkiWiki/Plugin/format.pm:23
+#: ../IkiWiki/Plugin/comments.pm:124 ../IkiWiki/Plugin/format.pm:38
 #, perl-format
 msgid "unsupported page format %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:127
+#: ../IkiWiki/Plugin/comments.pm:129
 msgid "comment must have content"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:183
+#: ../IkiWiki/Plugin/comments.pm:185
 msgid "Anonymous"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:333 ../IkiWiki/Plugin/editpage.pm:97
+#: ../IkiWiki/Plugin/comments.pm:340 ../IkiWiki/Plugin/editpage.pm:97
 msgid "bad page name"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:338
+#: ../IkiWiki/Plugin/comments.pm:345
 #, fuzzy, perl-format
 msgid "commenting on %s"
 msgstr "%s બનાવે છે"
 
-#: ../IkiWiki/Plugin/comments.pm:356
+#: ../IkiWiki/Plugin/comments.pm:363
 #, perl-format
 msgid "page '%s' doesn't exist, so you can't comment"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:363
+#: ../IkiWiki/Plugin/comments.pm:370
 #, perl-format
 msgid "comments on page '%s' are closed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:457
+#: ../IkiWiki/Plugin/comments.pm:464
 msgid "comment stored for moderation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:459
+#: ../IkiWiki/Plugin/comments.pm:466
 msgid "Your comment will be posted after moderator review"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:472
+#: ../IkiWiki/Plugin/comments.pm:479
 msgid "Added a comment"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:476
+#: ../IkiWiki/Plugin/comments.pm:483
 #, perl-format
 msgid "Added a comment: %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:518 ../IkiWiki/Plugin/websetup.pm:236
+#: ../IkiWiki/Plugin/comments.pm:525 ../IkiWiki/Plugin/websetup.pm:236
 msgid "you are not logged in as an admin"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:569
+#: ../IkiWiki/Plugin/comments.pm:576
 msgid "Comment moderation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:608
+#: ../IkiWiki/Plugin/comments.pm:615
 msgid "comment moderation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:759
+#: ../IkiWiki/Plugin/comments.pm:766
 msgid "Comments"
 msgstr ""
 
@@ -292,14 +292,14 @@ msgstr "જુનાં પાનાં દૂર કરે છે %s"
 msgid "%s is not an editable page"
 msgstr "%s એ સુધારી શકાય તેવું પાનું નથી"
 
-#: ../IkiWiki/Plugin/editpage.pm:289
+#: ../IkiWiki/Plugin/editpage.pm:291
 #, perl-format
 msgid "creating %s"
 msgstr "%s બનાવે છે"
 
-#: ../IkiWiki/Plugin/editpage.pm:307 ../IkiWiki/Plugin/editpage.pm:326
-#: ../IkiWiki/Plugin/editpage.pm:336 ../IkiWiki/Plugin/editpage.pm:380
-#: ../IkiWiki/Plugin/editpage.pm:419
+#: ../IkiWiki/Plugin/editpage.pm:309 ../IkiWiki/Plugin/editpage.pm:328
+#: ../IkiWiki/Plugin/editpage.pm:338 ../IkiWiki/Plugin/editpage.pm:382
+#: ../IkiWiki/Plugin/editpage.pm:421
 #, perl-format
 msgid "editing %s"
 msgstr "%s સુધારે છે"
@@ -374,6 +374,21 @@ msgstr "ગ્રાફવિઝ ચલાવવામાં નિષ્ફળ"
 msgid "prog not a valid graphviz program"
 msgstr "કાર્યક્રમએ યોગ્ય ગ્રાફવિઝ કાર્યક્રમ નથી"
 
+#: ../IkiWiki/Plugin/highlight.pm:46
+#, perl-format
+msgid "tohighlight contains unknown file type '%s'"
+msgstr ""
+
+#: ../IkiWiki/Plugin/highlight.pm:57
+#, perl-format
+msgid "Source code: %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/highlight.pm:122
+msgid ""
+"warning: highlight perl module not available; falling back to pass through"
+msgstr ""
+
 #: ../IkiWiki/Plugin/img.pm:62
 #, fuzzy
 msgid "Image::Magick is not installed"
@@ -432,10 +447,6 @@ msgstr "આ શિર્ષકથી નવું પોસ્ટ ઉમેર
 msgid "nonexistant template %s"
 msgstr "અસ્તિત્વમાં ન હોય તેવું ટેમ્પલેટ %s"
 
-#: ../IkiWiki/Plugin/inline.pm:365 ../IkiWiki/Render.pm:83
-msgid "Discussion"
-msgstr "ચર્ચા"
-
 #: ../IkiWiki/Plugin/inline.pm:596
 msgid "RPC::XML::Client not found, not pinging"
 msgstr "RPC::XML::Client મળ્યું નહી, પિંગ કરવામાં આવતું નથી"
@@ -716,24 +727,24 @@ msgstr ""
 msgid "rename %s"
 msgstr "રેન્ડર કરે છે %s"
 
-#: ../IkiWiki/Plugin/rename.pm:138
+#: ../IkiWiki/Plugin/rename.pm:140
 msgid "Also rename SubPages and attachments"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:224
+#: ../IkiWiki/Plugin/rename.pm:226
 msgid "Only one attachment can be renamed at a time."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:227
+#: ../IkiWiki/Plugin/rename.pm:229
 msgid "Please select the attachment to rename."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:338
+#: ../IkiWiki/Plugin/rename.pm:340
 #, perl-format
 msgid "rename %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:493
+#: ../IkiWiki/Plugin/rename.pm:495
 #, fuzzy, perl-format
 msgid "update for rename of %s to %s"
 msgstr "%s નો સુધારો %s નાં %s વડે"
@@ -1026,29 +1037,29 @@ msgstr "વીકી ફરીથી બનાવે છે.."
 msgid "refreshing wiki.."
 msgstr "વીકીને તાજી કરે છે.."
 
-#: ../IkiWiki.pm:480
+#: ../IkiWiki.pm:487
 msgid "Must specify url to wiki with --url when using --cgi"
 msgstr "જ્યારે --cgi ઉપયોગ કરતાં હોય ત્યારે વીકીનું યુઆરએલ સ્પષ્ટ કરવું જ પડશે"
 
-#: ../IkiWiki.pm:526
+#: ../IkiWiki.pm:533
 msgid "cannot use multiple rcs plugins"
 msgstr ""
 
-#: ../IkiWiki.pm:555
+#: ../IkiWiki.pm:562
 #, perl-format
 msgid "failed to load external plugin needed for %s plugin: %s"
 msgstr ""
 
-#: ../IkiWiki.pm:1194
+#: ../IkiWiki.pm:1201
 #, fuzzy, perl-format
 msgid "preprocessing loop detected on %s at depth %i"
 msgstr "%s પર શોધાયેલ લુપ  %s પર ચલાવે છે %i ઉંડાણ પર"
 
-#: ../IkiWiki.pm:1732
+#: ../IkiWiki.pm:1733
 msgid "yes"
 msgstr ""
 
-#: ../IkiWiki.pm:1860
+#: ../IkiWiki.pm:1865
 #, fuzzy, perl-format
 msgid "cannot match pages: %s"
 msgstr "વાંચી શકાતી નથી %s: %s"
@@ -1073,6 +1084,9 @@ msgstr ""
 msgid "What is the domain name of the web server?"
 msgstr ""
 
+#~ msgid "discussion"
+#~ msgstr "ચર્ચા"
+
 #~ msgid "failed to write %s: %s"
 #~ msgstr "%s લખવામાં નિષ્ફળ: %s"
 
index 5fccea2c61ea0b1d9ecfc920182bad8736432baa..d5e54f46872dfff282cebd99b1ff2ab37a2c5e63 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-06 12:58-0400\n"
+"POT-Creation-Date: 2009-06-04 13:21-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"
@@ -54,7 +54,7 @@ msgstr ""
 msgid "You are banned."
 msgstr ""
 
-#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1211
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1218
 msgid "Error"
 msgstr ""
 
@@ -184,10 +184,10 @@ msgid ""
 msgstr ""
 
 #: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
-#: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/opendiscussion.pm:26
-#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
-#: ../IkiWiki/Render.pm:149
-msgid "discussion"
+#: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/inline.pm:365
+#: ../IkiWiki/Plugin/opendiscussion.pm:26 ../IkiWiki/Plugin/orphans.pm:37
+#: ../IkiWiki/Render.pm:79 ../IkiWiki/Render.pm:83 ../IkiWiki/Render.pm:149
+msgid "Discussion"
 msgstr ""
 
 #: ../IkiWiki/Plugin/brokenlinks.pm:48
@@ -199,68 +199,68 @@ msgstr ""
 msgid "There are no broken links!"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:122 ../IkiWiki/Plugin/format.pm:23
+#: ../IkiWiki/Plugin/comments.pm:124 ../IkiWiki/Plugin/format.pm:38
 #, perl-format
 msgid "unsupported page format %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:127
+#: ../IkiWiki/Plugin/comments.pm:129
 msgid "comment must have content"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:183
+#: ../IkiWiki/Plugin/comments.pm:185
 msgid "Anonymous"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:333 ../IkiWiki/Plugin/editpage.pm:97
+#: ../IkiWiki/Plugin/comments.pm:340 ../IkiWiki/Plugin/editpage.pm:97
 msgid "bad page name"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:338
+#: ../IkiWiki/Plugin/comments.pm:345
 #, perl-format
 msgid "commenting on %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:356
+#: ../IkiWiki/Plugin/comments.pm:363
 #, perl-format
 msgid "page '%s' doesn't exist, so you can't comment"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:363
+#: ../IkiWiki/Plugin/comments.pm:370
 #, perl-format
 msgid "comments on page '%s' are closed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:457
+#: ../IkiWiki/Plugin/comments.pm:464
 msgid "comment stored for moderation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:459
+#: ../IkiWiki/Plugin/comments.pm:466
 msgid "Your comment will be posted after moderator review"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:472
+#: ../IkiWiki/Plugin/comments.pm:479
 msgid "Added a comment"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:476
+#: ../IkiWiki/Plugin/comments.pm:483
 #, perl-format
 msgid "Added a comment: %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:518 ../IkiWiki/Plugin/websetup.pm:236
+#: ../IkiWiki/Plugin/comments.pm:525 ../IkiWiki/Plugin/websetup.pm:236
 msgid "you are not logged in as an admin"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:569
+#: ../IkiWiki/Plugin/comments.pm:576
 msgid "Comment moderation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:608
+#: ../IkiWiki/Plugin/comments.pm:615
 msgid "comment moderation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:759
+#: ../IkiWiki/Plugin/comments.pm:766
 msgid "Comments"
 msgstr ""
 
@@ -290,14 +290,14 @@ msgstr ""
 msgid "%s is not an editable page"
 msgstr ""
 
-#: ../IkiWiki/Plugin/editpage.pm:289
+#: ../IkiWiki/Plugin/editpage.pm:291
 #, perl-format
 msgid "creating %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/editpage.pm:307 ../IkiWiki/Plugin/editpage.pm:326
-#: ../IkiWiki/Plugin/editpage.pm:336 ../IkiWiki/Plugin/editpage.pm:380
-#: ../IkiWiki/Plugin/editpage.pm:419
+#: ../IkiWiki/Plugin/editpage.pm:309 ../IkiWiki/Plugin/editpage.pm:328
+#: ../IkiWiki/Plugin/editpage.pm:338 ../IkiWiki/Plugin/editpage.pm:382
+#: ../IkiWiki/Plugin/editpage.pm:421
 #, perl-format
 msgid "editing %s"
 msgstr ""
@@ -368,6 +368,21 @@ msgstr ""
 msgid "prog not a valid graphviz program"
 msgstr ""
 
+#: ../IkiWiki/Plugin/highlight.pm:46
+#, perl-format
+msgid "tohighlight contains unknown file type '%s'"
+msgstr ""
+
+#: ../IkiWiki/Plugin/highlight.pm:57
+#, perl-format
+msgid "Source code: %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/highlight.pm:122
+msgid ""
+"warning: highlight perl module not available; falling back to pass through"
+msgstr ""
+
 #: ../IkiWiki/Plugin/img.pm:62
 msgid "Image::Magick is not installed"
 msgstr ""
@@ -423,10 +438,6 @@ msgstr ""
 msgid "nonexistant template %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/inline.pm:365 ../IkiWiki/Render.pm:83
-msgid "Discussion"
-msgstr ""
-
 #: ../IkiWiki/Plugin/inline.pm:596
 msgid "RPC::XML::Client not found, not pinging"
 msgstr ""
@@ -701,24 +712,24 @@ msgstr ""
 msgid "rename %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:138
+#: ../IkiWiki/Plugin/rename.pm:140
 msgid "Also rename SubPages and attachments"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:224
+#: ../IkiWiki/Plugin/rename.pm:226
 msgid "Only one attachment can be renamed at a time."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:227
+#: ../IkiWiki/Plugin/rename.pm:229
 msgid "Please select the attachment to rename."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:338
+#: ../IkiWiki/Plugin/rename.pm:340
 #, perl-format
 msgid "rename %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:493
+#: ../IkiWiki/Plugin/rename.pm:495
 #, perl-format
 msgid "update for rename of %s to %s"
 msgstr ""
@@ -1009,29 +1020,29 @@ msgstr ""
 msgid "refreshing wiki.."
 msgstr ""
 
-#: ../IkiWiki.pm:480
+#: ../IkiWiki.pm:487
 msgid "Must specify url to wiki with --url when using --cgi"
 msgstr ""
 
-#: ../IkiWiki.pm:526
+#: ../IkiWiki.pm:533
 msgid "cannot use multiple rcs plugins"
 msgstr ""
 
-#: ../IkiWiki.pm:555
+#: ../IkiWiki.pm:562
 #, perl-format
 msgid "failed to load external plugin needed for %s plugin: %s"
 msgstr ""
 
-#: ../IkiWiki.pm:1194
+#: ../IkiWiki.pm:1201
 #, perl-format
 msgid "preprocessing loop detected on %s at depth %i"
 msgstr ""
 
-#: ../IkiWiki.pm:1732
+#: ../IkiWiki.pm:1733
 msgid "yes"
 msgstr ""
 
-#: ../IkiWiki.pm:1860
+#: ../IkiWiki.pm:1865
 #, perl-format
 msgid "cannot match pages: %s"
 msgstr ""
index 534aaa7ff680123eb8f252421eaabcb7baed7dce..16f3a18b1df4cf0975189da7a123e47b478d2e05 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki 1.51\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-06 12:58-0400\n"
+"POT-Creation-Date: 2009-06-04 13:21-0400\n"
 "PO-Revision-Date: 2007-04-27 22:05+0200\n"
 "Last-Translator: Pawel Tecza <ptecza@net.icm.edu.pl>\n"
 "Language-Team: Debian L10n Polish <debian-l10n-polish@lists.debian.org>\n"
@@ -57,7 +57,7 @@ msgstr "Preferencje zapisane."
 msgid "You are banned."
 msgstr "Twój dostęp został zabroniony przez administratora."
 
-#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1211
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1218
 msgid "Error"
 msgstr "Błąd"
 
@@ -190,11 +190,11 @@ msgid ""
 msgstr ""
 
 #: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
-#: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/opendiscussion.pm:26
-#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
-#: ../IkiWiki/Render.pm:149
-msgid "discussion"
-msgstr "dyskusja"
+#: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/inline.pm:365
+#: ../IkiWiki/Plugin/opendiscussion.pm:26 ../IkiWiki/Plugin/orphans.pm:37
+#: ../IkiWiki/Render.pm:79 ../IkiWiki/Render.pm:83 ../IkiWiki/Render.pm:149
+msgid "Discussion"
+msgstr "Dyskusja"
 
 #: ../IkiWiki/Plugin/brokenlinks.pm:48
 #, perl-format
@@ -205,68 +205,68 @@ msgstr ""
 msgid "There are no broken links!"
 msgstr "Wszystkie odnośniki są aktualne!"
 
-#: ../IkiWiki/Plugin/comments.pm:122 ../IkiWiki/Plugin/format.pm:23
+#: ../IkiWiki/Plugin/comments.pm:124 ../IkiWiki/Plugin/format.pm:38
 #, perl-format
 msgid "unsupported page format %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:127
+#: ../IkiWiki/Plugin/comments.pm:129
 msgid "comment must have content"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:183
+#: ../IkiWiki/Plugin/comments.pm:185
 msgid "Anonymous"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:333 ../IkiWiki/Plugin/editpage.pm:97
+#: ../IkiWiki/Plugin/comments.pm:340 ../IkiWiki/Plugin/editpage.pm:97
 msgid "bad page name"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:338
+#: ../IkiWiki/Plugin/comments.pm:345
 #, fuzzy, perl-format
 msgid "commenting on %s"
 msgstr "tworzenie %s"
 
-#: ../IkiWiki/Plugin/comments.pm:356
+#: ../IkiWiki/Plugin/comments.pm:363
 #, perl-format
 msgid "page '%s' doesn't exist, so you can't comment"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:363
+#: ../IkiWiki/Plugin/comments.pm:370
 #, perl-format
 msgid "comments on page '%s' are closed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:457
+#: ../IkiWiki/Plugin/comments.pm:464
 msgid "comment stored for moderation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:459
+#: ../IkiWiki/Plugin/comments.pm:466
 msgid "Your comment will be posted after moderator review"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:472
+#: ../IkiWiki/Plugin/comments.pm:479
 msgid "Added a comment"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:476
+#: ../IkiWiki/Plugin/comments.pm:483
 #, perl-format
 msgid "Added a comment: %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:518 ../IkiWiki/Plugin/websetup.pm:236
+#: ../IkiWiki/Plugin/comments.pm:525 ../IkiWiki/Plugin/websetup.pm:236
 msgid "you are not logged in as an admin"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:569
+#: ../IkiWiki/Plugin/comments.pm:576
 msgid "Comment moderation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:608
+#: ../IkiWiki/Plugin/comments.pm:615
 msgid "comment moderation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:759
+#: ../IkiWiki/Plugin/comments.pm:766
 msgid "Comments"
 msgstr ""
 
@@ -296,14 +296,14 @@ msgstr "usuwanie starej strony %s"
 msgid "%s is not an editable page"
 msgstr "Strona %s nie może być edytowana"
 
-#: ../IkiWiki/Plugin/editpage.pm:289
+#: ../IkiWiki/Plugin/editpage.pm:291
 #, perl-format
 msgid "creating %s"
 msgstr "tworzenie %s"
 
-#: ../IkiWiki/Plugin/editpage.pm:307 ../IkiWiki/Plugin/editpage.pm:326
-#: ../IkiWiki/Plugin/editpage.pm:336 ../IkiWiki/Plugin/editpage.pm:380
-#: ../IkiWiki/Plugin/editpage.pm:419
+#: ../IkiWiki/Plugin/editpage.pm:309 ../IkiWiki/Plugin/editpage.pm:328
+#: ../IkiWiki/Plugin/editpage.pm:338 ../IkiWiki/Plugin/editpage.pm:382
+#: ../IkiWiki/Plugin/editpage.pm:421
 #, perl-format
 msgid "editing %s"
 msgstr "edycja %s"
@@ -379,6 +379,21 @@ msgstr "awaria w trakcie uruchamiania wtyczki graphviz"
 msgid "prog not a valid graphviz program"
 msgstr "prog nie jest poprawnym programem graphviz"
 
+#: ../IkiWiki/Plugin/highlight.pm:46
+#, perl-format
+msgid "tohighlight contains unknown file type '%s'"
+msgstr ""
+
+#: ../IkiWiki/Plugin/highlight.pm:57
+#, perl-format
+msgid "Source code: %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/highlight.pm:122
+msgid ""
+"warning: highlight perl module not available; falling back to pass through"
+msgstr ""
+
 #: ../IkiWiki/Plugin/img.pm:62
 #, fuzzy
 msgid "Image::Magick is not installed"
@@ -439,10 +454,6 @@ msgstr "Tytuł nowego wpisu"
 msgid "nonexistant template %s"
 msgstr "brakujący szablon %s"
 
-#: ../IkiWiki/Plugin/inline.pm:365 ../IkiWiki/Render.pm:83
-msgid "Discussion"
-msgstr "Dyskusja"
-
 #: ../IkiWiki/Plugin/inline.pm:596
 msgid "RPC::XML::Client not found, not pinging"
 msgstr "Nieznaleziony moduł RPC::XML::Client, brak możliwości pingowania"
@@ -731,24 +742,24 @@ msgstr ""
 msgid "rename %s"
 msgstr "renderowanie %s"
 
-#: ../IkiWiki/Plugin/rename.pm:138
+#: ../IkiWiki/Plugin/rename.pm:140
 msgid "Also rename SubPages and attachments"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:224
+#: ../IkiWiki/Plugin/rename.pm:226
 msgid "Only one attachment can be renamed at a time."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:227
+#: ../IkiWiki/Plugin/rename.pm:229
 msgid "Please select the attachment to rename."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:338
+#: ../IkiWiki/Plugin/rename.pm:340
 #, perl-format
 msgid "rename %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:493
+#: ../IkiWiki/Plugin/rename.pm:495
 #, fuzzy, perl-format
 msgid "update for rename of %s to %s"
 msgstr "aktualizacja stron wiki %s: %s przez użytkownika %s"
@@ -1050,31 +1061,31 @@ msgstr "przebudowywanie wiki..."
 msgid "refreshing wiki.."
 msgstr "odświeżanie wiki..."
 
-#: ../IkiWiki.pm:480
+#: ../IkiWiki.pm:487
 msgid "Must specify url to wiki with --url when using --cgi"
 msgstr ""
 "Użycie parametru --cgi wymaga podania adresu URL do wiki za pomocą parametru "
 "--url"
 
-#: ../IkiWiki.pm:526
+#: ../IkiWiki.pm:533
 msgid "cannot use multiple rcs plugins"
 msgstr ""
 
-#: ../IkiWiki.pm:555
+#: ../IkiWiki.pm:562
 #, perl-format
 msgid "failed to load external plugin needed for %s plugin: %s"
 msgstr ""
 
-#: ../IkiWiki.pm:1194
+#: ../IkiWiki.pm:1201
 #, fuzzy, perl-format
 msgid "preprocessing loop detected on %s at depth %i"
 msgstr "polecenie preprocesora %s wykryte w %s na głębokości %i"
 
-#: ../IkiWiki.pm:1732
+#: ../IkiWiki.pm:1733
 msgid "yes"
 msgstr ""
 
-#: ../IkiWiki.pm:1860
+#: ../IkiWiki.pm:1865
 #, fuzzy, perl-format
 msgid "cannot match pages: %s"
 msgstr "awaria w trakcie odczytu %s: %s"
@@ -1099,6 +1110,9 @@ msgstr ""
 msgid "What is the domain name of the web server?"
 msgstr ""
 
+#~ msgid "discussion"
+#~ msgstr "dyskusja"
+
 #~ msgid "failed to write %s: %s"
 #~ msgstr "awaria w trakcie zapisu %s: %s"
 
index f50800ff02e53df02d086373cde0bf62b76baba6..1951cb91d424ebf2c5940666f3bbd72f4ea28f2f 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-06 12:58-0400\n"
+"POT-Creation-Date: 2009-06-04 13:21-0400\n"
 "PO-Revision-Date: 2007-01-10 23:47+0100\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -54,7 +54,7 @@ msgstr "Inställningar sparades."
 msgid "You are banned."
 msgstr "Du är bannlyst."
 
-#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1211
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1218
 msgid "Error"
 msgstr "Fel"
 
@@ -187,11 +187,11 @@ msgid ""
 msgstr ""
 
 #: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
-#: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/opendiscussion.pm:26
-#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
-#: ../IkiWiki/Render.pm:149
-msgid "discussion"
-msgstr "diskussion"
+#: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/inline.pm:365
+#: ../IkiWiki/Plugin/opendiscussion.pm:26 ../IkiWiki/Plugin/orphans.pm:37
+#: ../IkiWiki/Render.pm:79 ../IkiWiki/Render.pm:83 ../IkiWiki/Render.pm:149
+msgid "Discussion"
+msgstr "Diskussion"
 
 #: ../IkiWiki/Plugin/brokenlinks.pm:48
 #, perl-format
@@ -202,68 +202,68 @@ msgstr ""
 msgid "There are no broken links!"
 msgstr "Det finns inga trasiga länkar!"
 
-#: ../IkiWiki/Plugin/comments.pm:122 ../IkiWiki/Plugin/format.pm:23
+#: ../IkiWiki/Plugin/comments.pm:124 ../IkiWiki/Plugin/format.pm:38
 #, perl-format
 msgid "unsupported page format %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:127
+#: ../IkiWiki/Plugin/comments.pm:129
 msgid "comment must have content"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:183
+#: ../IkiWiki/Plugin/comments.pm:185
 msgid "Anonymous"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:333 ../IkiWiki/Plugin/editpage.pm:97
+#: ../IkiWiki/Plugin/comments.pm:340 ../IkiWiki/Plugin/editpage.pm:97
 msgid "bad page name"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:338
+#: ../IkiWiki/Plugin/comments.pm:345
 #, fuzzy, perl-format
 msgid "commenting on %s"
 msgstr "skapar %s"
 
-#: ../IkiWiki/Plugin/comments.pm:356
+#: ../IkiWiki/Plugin/comments.pm:363
 #, perl-format
 msgid "page '%s' doesn't exist, so you can't comment"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:363
+#: ../IkiWiki/Plugin/comments.pm:370
 #, perl-format
 msgid "comments on page '%s' are closed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:457
+#: ../IkiWiki/Plugin/comments.pm:464
 msgid "comment stored for moderation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:459
+#: ../IkiWiki/Plugin/comments.pm:466
 msgid "Your comment will be posted after moderator review"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:472
+#: ../IkiWiki/Plugin/comments.pm:479
 msgid "Added a comment"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:476
+#: ../IkiWiki/Plugin/comments.pm:483
 #, perl-format
 msgid "Added a comment: %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:518 ../IkiWiki/Plugin/websetup.pm:236
+#: ../IkiWiki/Plugin/comments.pm:525 ../IkiWiki/Plugin/websetup.pm:236
 msgid "you are not logged in as an admin"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:569
+#: ../IkiWiki/Plugin/comments.pm:576
 msgid "Comment moderation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:608
+#: ../IkiWiki/Plugin/comments.pm:615
 msgid "comment moderation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:759
+#: ../IkiWiki/Plugin/comments.pm:766
 msgid "Comments"
 msgstr ""
 
@@ -293,14 +293,14 @@ msgstr "tar bort gammal sida %s"
 msgid "%s is not an editable page"
 msgstr ""
 
-#: ../IkiWiki/Plugin/editpage.pm:289
+#: ../IkiWiki/Plugin/editpage.pm:291
 #, perl-format
 msgid "creating %s"
 msgstr "skapar %s"
 
-#: ../IkiWiki/Plugin/editpage.pm:307 ../IkiWiki/Plugin/editpage.pm:326
-#: ../IkiWiki/Plugin/editpage.pm:336 ../IkiWiki/Plugin/editpage.pm:380
-#: ../IkiWiki/Plugin/editpage.pm:419
+#: ../IkiWiki/Plugin/editpage.pm:309 ../IkiWiki/Plugin/editpage.pm:328
+#: ../IkiWiki/Plugin/editpage.pm:338 ../IkiWiki/Plugin/editpage.pm:382
+#: ../IkiWiki/Plugin/editpage.pm:421
 #, perl-format
 msgid "editing %s"
 msgstr "redigerar %s"
@@ -376,6 +376,21 @@ msgstr "linkmap misslyckades att köra dot"
 msgid "prog not a valid graphviz program"
 msgstr ""
 
+#: ../IkiWiki/Plugin/highlight.pm:46
+#, perl-format
+msgid "tohighlight contains unknown file type '%s'"
+msgstr ""
+
+#: ../IkiWiki/Plugin/highlight.pm:57
+#, perl-format
+msgid "Source code: %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/highlight.pm:122
+msgid ""
+"warning: highlight perl module not available; falling back to pass through"
+msgstr ""
+
 #: ../IkiWiki/Plugin/img.pm:62
 #, fuzzy
 msgid "Image::Magick is not installed"
@@ -434,10 +449,6 @@ msgstr ""
 msgid "nonexistant template %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/inline.pm:365 ../IkiWiki/Render.pm:83
-msgid "Discussion"
-msgstr "Diskussion"
-
 #: ../IkiWiki/Plugin/inline.pm:596
 msgid "RPC::XML::Client not found, not pinging"
 msgstr "RPC::XML::Client hittades inte, pingar inte"
@@ -721,24 +732,24 @@ msgstr ""
 msgid "rename %s"
 msgstr "ritar upp %s"
 
-#: ../IkiWiki/Plugin/rename.pm:138
+#: ../IkiWiki/Plugin/rename.pm:140
 msgid "Also rename SubPages and attachments"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:224
+#: ../IkiWiki/Plugin/rename.pm:226
 msgid "Only one attachment can be renamed at a time."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:227
+#: ../IkiWiki/Plugin/rename.pm:229
 msgid "Please select the attachment to rename."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:338
+#: ../IkiWiki/Plugin/rename.pm:340
 #, perl-format
 msgid "rename %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:493
+#: ../IkiWiki/Plugin/rename.pm:495
 #, fuzzy, perl-format
 msgid "update for rename of %s to %s"
 msgstr "uppdatering av %s, %s av %s"
@@ -1039,29 +1050,29 @@ msgstr "bygger om wiki.."
 msgid "refreshing wiki.."
 msgstr "uppdaterar wiki.."
 
-#: ../IkiWiki.pm:480
+#: ../IkiWiki.pm:487
 msgid "Must specify url to wiki with --url when using --cgi"
 msgstr "Måste ange url till wiki med --url när --cgi används"
 
-#: ../IkiWiki.pm:526
+#: ../IkiWiki.pm:533
 msgid "cannot use multiple rcs plugins"
 msgstr ""
 
-#: ../IkiWiki.pm:555
+#: ../IkiWiki.pm:562
 #, perl-format
 msgid "failed to load external plugin needed for %s plugin: %s"
 msgstr ""
 
-#: ../IkiWiki.pm:1194
+#: ../IkiWiki.pm:1201
 #, fuzzy, perl-format
 msgid "preprocessing loop detected on %s at depth %i"
 msgstr "%s förbehandlingsslinga detekterades på %s, djup %i"
 
-#: ../IkiWiki.pm:1732
+#: ../IkiWiki.pm:1733
 msgid "yes"
 msgstr ""
 
-#: ../IkiWiki.pm:1860
+#: ../IkiWiki.pm:1865
 #, fuzzy, perl-format
 msgid "cannot match pages: %s"
 msgstr "kan inte läsa %s: %s"
@@ -1086,6 +1097,9 @@ msgstr ""
 msgid "What is the domain name of the web server?"
 msgstr ""
 
+#~ msgid "discussion"
+#~ msgstr "diskussion"
+
 #~ msgid "failed to write %s: %s"
 #~ msgstr "misslyckades med att skriva %s: %s"
 
index 32cd4827d7d39ddc8f84f0f62280c0997599e6dd..1415269f60a4467e75819499fb2aefde6dbdf382 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-05-06 12:58-0400\n"
+"POT-Creation-Date: 2009-06-04 13:21-0400\n"
 "PO-Revision-Date: 2007-01-13 15:31+1030\n"
 "Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
 "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
@@ -55,7 +55,7 @@ msgstr "Tùy thích đã được lưu."
 msgid "You are banned."
 msgstr "Bạn bị cấm ra."
 
-#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1211
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1218
 msgid "Error"
 msgstr "Lỗi"
 
@@ -188,11 +188,11 @@ msgid ""
 msgstr ""
 
 #: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
-#: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/opendiscussion.pm:26
-#: ../IkiWiki/Plugin/orphans.pm:37 ../IkiWiki/Render.pm:79
-#: ../IkiWiki/Render.pm:149
-msgid "discussion"
-msgstr "thảo luận"
+#: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/inline.pm:365
+#: ../IkiWiki/Plugin/opendiscussion.pm:26 ../IkiWiki/Plugin/orphans.pm:37
+#: ../IkiWiki/Render.pm:79 ../IkiWiki/Render.pm:83 ../IkiWiki/Render.pm:149
+msgid "Discussion"
+msgstr "Thảo luận"
 
 #: ../IkiWiki/Plugin/brokenlinks.pm:48
 #, perl-format
@@ -203,68 +203,68 @@ msgstr ""
 msgid "There are no broken links!"
 msgstr "Không có liên kết bị ngắt nào."
 
-#: ../IkiWiki/Plugin/comments.pm:122 ../IkiWiki/Plugin/format.pm:23
+#: ../IkiWiki/Plugin/comments.pm:124 ../IkiWiki/Plugin/format.pm:38
 #, perl-format
 msgid "unsupported page format %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:127
+#: ../IkiWiki/Plugin/comments.pm:129
 msgid "comment must have content"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:183
+#: ../IkiWiki/Plugin/comments.pm:185
 msgid "Anonymous"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:333 ../IkiWiki/Plugin/editpage.pm:97
+#: ../IkiWiki/Plugin/comments.pm:340 ../IkiWiki/Plugin/editpage.pm:97
 msgid "bad page name"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:338
+#: ../IkiWiki/Plugin/comments.pm:345
 #, fuzzy, perl-format
 msgid "commenting on %s"
 msgstr "đang tạo %s"
 
-#: ../IkiWiki/Plugin/comments.pm:356
+#: ../IkiWiki/Plugin/comments.pm:363
 #, perl-format
 msgid "page '%s' doesn't exist, so you can't comment"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:363
+#: ../IkiWiki/Plugin/comments.pm:370
 #, perl-format
 msgid "comments on page '%s' are closed"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:457
+#: ../IkiWiki/Plugin/comments.pm:464
 msgid "comment stored for moderation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:459
+#: ../IkiWiki/Plugin/comments.pm:466
 msgid "Your comment will be posted after moderator review"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:472
+#: ../IkiWiki/Plugin/comments.pm:479
 msgid "Added a comment"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:476
+#: ../IkiWiki/Plugin/comments.pm:483
 #, perl-format
 msgid "Added a comment: %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:518 ../IkiWiki/Plugin/websetup.pm:236
+#: ../IkiWiki/Plugin/comments.pm:525 ../IkiWiki/Plugin/websetup.pm:236
 msgid "you are not logged in as an admin"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:569
+#: ../IkiWiki/Plugin/comments.pm:576
 msgid "Comment moderation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:608
+#: ../IkiWiki/Plugin/comments.pm:615
 msgid "comment moderation"
 msgstr ""
 
-#: ../IkiWiki/Plugin/comments.pm:759
+#: ../IkiWiki/Plugin/comments.pm:766
 msgid "Comments"
 msgstr ""
 
@@ -294,14 +294,14 @@ msgstr "đang gỡ bỏ trang cũ %s"
 msgid "%s is not an editable page"
 msgstr ""
 
-#: ../IkiWiki/Plugin/editpage.pm:289
+#: ../IkiWiki/Plugin/editpage.pm:291
 #, perl-format
 msgid "creating %s"
 msgstr "đang tạo %s"
 
-#: ../IkiWiki/Plugin/editpage.pm:307 ../IkiWiki/Plugin/editpage.pm:326
-#: ../IkiWiki/Plugin/editpage.pm:336 ../IkiWiki/Plugin/editpage.pm:380
-#: ../IkiWiki/Plugin/editpage.pm:419
+#: ../IkiWiki/Plugin/editpage.pm:309 ../IkiWiki/Plugin/editpage.pm:328
+#: ../IkiWiki/Plugin/editpage.pm:338 ../IkiWiki/Plugin/editpage.pm:382
+#: ../IkiWiki/Plugin/editpage.pm:421
 #, perl-format
 msgid "editing %s"
 msgstr "đang sửa %s"
@@ -377,6 +377,21 @@ msgstr "linkmap không chạy dot được"
 msgid "prog not a valid graphviz program"
 msgstr ""
 
+#: ../IkiWiki/Plugin/highlight.pm:46
+#, perl-format
+msgid "tohighlight contains unknown file type '%s'"
+msgstr ""
+
+#: ../IkiWiki/Plugin/highlight.pm:57
+#, perl-format
+msgid "Source code: %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/highlight.pm:122
+msgid ""
+"warning: highlight perl module not available; falling back to pass through"
+msgstr ""
+
 #: ../IkiWiki/Plugin/img.pm:62
 #, fuzzy
 msgid "Image::Magick is not installed"
@@ -437,10 +452,6 @@ msgstr ""
 msgid "nonexistant template %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/inline.pm:365 ../IkiWiki/Render.pm:83
-msgid "Discussion"
-msgstr "Thảo luận"
-
 #: ../IkiWiki/Plugin/inline.pm:596
 msgid "RPC::XML::Client not found, not pinging"
 msgstr "Không tìm thấy RPC::XML::Client nên không gửi gói tin ping"
@@ -722,24 +733,24 @@ msgstr ""
 msgid "rename %s"
 msgstr "đang vẽ %s"
 
-#: ../IkiWiki/Plugin/rename.pm:138
+#: ../IkiWiki/Plugin/rename.pm:140
 msgid "Also rename SubPages and attachments"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:224
+#: ../IkiWiki/Plugin/rename.pm:226
 msgid "Only one attachment can be renamed at a time."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:227
+#: ../IkiWiki/Plugin/rename.pm:229
 msgid "Please select the attachment to rename."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:338
+#: ../IkiWiki/Plugin/rename.pm:340
 #, perl-format
 msgid "rename %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:493
+#: ../IkiWiki/Plugin/rename.pm:495
 #, fuzzy, perl-format
 msgid "update for rename of %s to %s"
 msgstr "cập nhật %2$s của %1$s bởi %3$s"
@@ -1040,29 +1051,29 @@ msgstr "đang xây dựng lại wiki.."
 msgid "refreshing wiki.."
 msgstr "đang làm tươi wiki.."
 
-#: ../IkiWiki.pm:480
+#: ../IkiWiki.pm:487
 msgid "Must specify url to wiki with --url when using --cgi"
 msgstr "Cần phải xác định địa chỉ URL tới wiki với « --url » khi dùng « --cgi »"
 
-#: ../IkiWiki.pm:526
+#: ../IkiWiki.pm:533
 msgid "cannot use multiple rcs plugins"
 msgstr ""
 
-#: ../IkiWiki.pm:555
+#: ../IkiWiki.pm:562
 #, perl-format
 msgid "failed to load external plugin needed for %s plugin: %s"
 msgstr ""
 
-#: ../IkiWiki.pm:1194
+#: ../IkiWiki.pm:1201
 #, fuzzy, perl-format
 msgid "preprocessing loop detected on %s at depth %i"
 msgstr "vòng lặp tiền xử lý %s được phát hiện trên %s ở độ sâu %i"
 
-#: ../IkiWiki.pm:1732
+#: ../IkiWiki.pm:1733
 msgid "yes"
 msgstr ""
 
-#: ../IkiWiki.pm:1860
+#: ../IkiWiki.pm:1865
 #, fuzzy, perl-format
 msgid "cannot match pages: %s"
 msgstr "không thể đọc %s: %s"
@@ -1087,6 +1098,9 @@ msgstr ""
 msgid "What is the domain name of the web server?"
 msgstr ""
 
+#~ msgid "discussion"
+#~ msgstr "thảo luận"
+
 #~ msgid "failed to write %s: %s"
 #~ msgstr "lỗi ghi %s: %s"
 
index ac04f800fa2a633e0706240217e14ffa4ab3161b..2871b1dd20524836df0451b3e335a022d25f1724 100755 (executable)
@@ -8,12 +8,13 @@ ok(! system("make -s ikiwiki.out"));
 ok(! system("make extra_install DESTDIR=`pwd`/t/tmp/install PREFIX=/usr >/dev/null"));
 
 foreach my $plugin ("", "listdirectives") {
-       ok(! system("LC_ALL=C perl -T -I. ./ikiwiki.out -rebuild -plugin brokenlinks ".
+       ok(! system("LC_ALL=C perl -I. ./ikiwiki.out -rebuild -plugin brokenlinks ".
                        # always enabled because pages link to it conditionally,
                        # which brokenlinks cannot handle properly
                        "-plugin smiley ".
                        ($plugin ? "-plugin $plugin " : "").
                        "-underlaydir=t/tmp/install/usr/share/ikiwiki/basewiki ".
+                       "-set underlaydirbase=t/tmp/install/usr/share/ikiwiki ".
                        "-templatedir=templates t/basewiki_brokenlinks t/tmp/out"));
        my $result=`grep 'no broken links' t/tmp/out/index.html`;
        ok(length($result));
index 4cf6fa1ff810c2f1dc09f772b57f5f16805fa53e..64408f4898cb8b0671ba24fb7f2f8433e87dacae 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/perl
 use warnings;
 use strict;
-use Test::More tests => 53;
+use Test::More tests => 54;
 
 BEGIN { use_ok("IkiWiki"); }
 
@@ -20,6 +20,15 @@ ok(! pagespec_match("foo", "* and !foo"));
 ok(! pagespec_match("foo", "foo and !foo"));
 ok(! pagespec_match("foo.png", "* and !*.*"));
 ok(pagespec_match("foo", "(bar or ((meep and foo) or (baz or foo) or beep))"));
+ok(pagespec_match("foo", "(
+       bar
+       or (
+               (meep and foo)
+               or
+               (baz or foo)
+               or beep
+       )
+)"), "multiline complex pagespec");
 ok(! pagespec_match("a/foo", "foo", location => "a/b"), "nonrelative fail");
 ok(! pagespec_match("foo", "./*", location => "a/b"), "relative fail");
 ok(pagespec_match("a/foo", "./*", location => "a/b"), "relative");
index 9b44cd72eea38b221bd446764f5f5aa38c3fa9ec..c326e8d278e4f025a8623512ab06d57a6ad5565c 100755 (executable)
@@ -5,7 +5,7 @@ use Test::More 'no_plan';
 
 ok(! system("mkdir t/tmp"));
 ok(! system("make -s ikiwiki.out"));
-ok(! system("LC_ALL=C perl -T -I. ./ikiwiki.out -plugin inline -url=http://example.com -cgiurl=http://example.com/ikiwiki.cgi -rss -atom -underlaydir=underlays/basewiki -templatedir=templates t/tinyblog t/tmp/out"));
+ok(! system("LC_ALL=C perl -I. ./ikiwiki.out -plugin inline -url=http://example.com -cgiurl=http://example.com/ikiwiki.cgi -rss -atom -underlaydir=underlays/basewiki -templatedir=templates t/tinyblog t/tmp/out"));
 # This guid should never, ever change, for any reason whatsoever!
 my $guid="http://example.com/post/";
 ok(length `grep '<guid>$guid</guid>' t/tmp/out/index.rss`);
index 7699f56baaa77737115fabe033e73e06383966e8..e5026ed64b575ba8ed2215e468bb322d4086f020 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/perl
 use warnings;
 use strict;
-use Test::More tests => 19;
+use Test::More tests => 21;
 
 BEGIN { use_ok("IkiWiki"); }
 
@@ -51,6 +51,11 @@ is(IkiWiki::preprocess("foo", "foo", '[[foo a="""'.$multiline.'""" b="foo"]]', 0
        "foo(a => $multiline, b => foo)");
 is(IkiWiki::preprocess("foo", "foo", '[[foo a="""'."\n".$multiline."\n".'""" b="foo"]]', 0, 0),
        "foo(a => $multiline, b => foo)", "leading/trailing newline stripped");
+my $long='[[foo a="""'.("a" x 100000).'';
+is(IkiWiki::preprocess("foo", "foo", $long, 0, 0), $long,
+       "unterminated triple-quoted string inside unterminated directive(should not warn about over-recursion)");
+is(IkiWiki::preprocess("foo", "foo", $long."]]", 0, 0), $long."]]",
+       "unterminated triple-quoted string is not treated as a bare word");
 
 TODO: {
        local $TODO = "nested strings not yet implemented";
index 8c96d1d848014e9145739515e974f0b5aac271ac..a3760a2b2aa956b48bc1764dbff141335b0247ff 100755 (executable)
@@ -12,7 +12,7 @@ push @libs, 'IkiWiki/Plugin/skeleton.pm.example';
 plan(tests => (@progs + @libs));
 
 foreach my $file (@progs) {
-        ok(system("perl -T -c $file >/dev/null 2>&1") eq 0, $file);
+        ok(system("perl -c $file >/dev/null 2>&1") eq 0, $file);
 }
 foreach my $file (@libs) {
         ok(system("perl -c $file >/dev/null 2>&1") eq 0, $file);
index 27d9457d406a55c56e2dc5abe426791f20c95751..545edb596206e073df72ea4ef29c92cc08154779 100644 (file)
@@ -16,7 +16,6 @@ Website: <TMPL_VAR NAME=FIELD-URL> (optional)<br />
 Subject: <TMPL_VAR FIELD-SUBJECT><br />
 <TMPL_VAR FIELD-EDITCONTENT><br />
 <TMPL_VAR FORM-SUBMIT> <TMPL_VAR FIELD-TYPE> <TMPL_VAR HELPONFORMATTINGLINK><br />
-IkiWiki directives ([[!directive]]) are <TMPL_UNLESS NAME="ALLOWDIRECTIVES">not </TMPL_UNLESS>allowed in comments on this wiki.<br />
 <TMPL_VAR NAME="FORM-END">
 <TMPL_VAR WMD_PREVIEW>