From: Simon McVittie Date: Thu, 21 Jan 2016 10:17:44 +0000 (+0000) Subject: Merge branch 'master' into debian-jessie-backports X-Git-Tag: debian/3.20160506_bpo8+1~3 X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/b63f1260eef70cf7eb1703ebae1244db7cef0583?hp=3fe434189b99daf3d8cc075186c4ed4ebdd43b8f Merge branch 'master' into debian-jessie-backports --- diff --git a/.gitignore b/.gitignore index 77c0b3dcc..b54b830fd 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,9 @@ pm_to_blib /MYMETA.yml *.man /po/cover_db +/po/html/ po/po2wiki_stamp +/po/underlays/.ikiwiki po/underlays/*/*.mdwn po/underlays/basewiki/*/*.mdwn po/underlays/basewiki/*/*/*.mdwn diff --git a/IkiWiki.pm b/IkiWiki.pm index fe5af6d15..0f27ac419 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -843,10 +843,9 @@ sub log_message ($$) { $log_open=1; } eval { - # keep a copy to avoid editing the original config repeatedly - my $wikiname = $config{wikiname}; - utf8::encode($wikiname); - Sys::Syslog::syslog($type, "[$wikiname] %s", join(" ", @_)); + my $message = "[$config{wikiname}] ".join(" ", @_); + utf8::encode($message); + Sys::Syslog::syslog($type, "%s", $message); }; if ($@) { print STDERR "failed to syslog: $@" unless $log_failed; diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm index 1763828a4..cbc2fe8eb 100644 --- a/IkiWiki/CGI.pm +++ b/IkiWiki/CGI.pm @@ -416,7 +416,9 @@ sub cgi (;$$) { eval q{use CGI}; error($@) if $@; + no warnings "once"; $CGI::DISABLE_UPLOADS=$config{cgi_disable_uploads}; + use warnings; if (! $q) { binmode(STDIN); diff --git a/IkiWiki/Plugin/aggregate.pm b/IkiWiki/Plugin/aggregate.pm index fbf88c627..be7da3a71 100644 --- a/IkiWiki/Plugin/aggregate.pm +++ b/IkiWiki/Plugin/aggregate.pm @@ -571,7 +571,9 @@ sub aggregate (@) { # XML::Feed doesn't work around XML::Atom's bizarre # API, so we will. Real unicode strings? Yes please. # See [[bugs/Aggregated_Atom_feeds_are_double-encoded]] + no warnings 'once'; local $XML::Atom::ForceUnicode = 1; + use warnings; my $c=$entry->content; # atom feeds may have no content, only a summary diff --git a/IkiWiki/Plugin/autoindex.pm b/IkiWiki/Plugin/autoindex.pm index d5ee4b58f..c443f01d2 100644 --- a/IkiWiki/Plugin/autoindex.pm +++ b/IkiWiki/Plugin/autoindex.pm @@ -46,6 +46,7 @@ sub genindex ($) { my $dir = $config{srcdir}; if (! $config{autoindex_commit}) { + no warnings 'once'; $dir = $IkiWiki::Plugin::transient::transientdir; } @@ -80,6 +81,7 @@ sub refresh () { $file=~s/^\.\/?//; return unless length $file; if (IkiWiki::file_pruned($file)) { + no warnings 'once'; $File::Find::prune=1; } elsif (! -l $_) { diff --git a/IkiWiki/Plugin/calendar.pm b/IkiWiki/Plugin/calendar.pm index c03b89667..45617afe8 100644 --- a/IkiWiki/Plugin/calendar.pm +++ b/IkiWiki/Plugin/calendar.pm @@ -141,7 +141,9 @@ sub autocreate { $template->param(month => $month) if defined $month; $template->param(pagespec => $config{archive_pagespec}); + no warnings 'once'; my $dir = $IkiWiki::Plugin::transient::transientdir; + use warnings; writefile($pagefile, $dir, $template->output); } diff --git a/IkiWiki/Plugin/comments.pm b/IkiWiki/Plugin/comments.pm index ad813d19d..e93db94eb 100644 --- a/IkiWiki/Plugin/comments.pm +++ b/IkiWiki/Plugin/comments.pm @@ -919,16 +919,18 @@ sub pagetemplate (@) { } if ($shown) { + my $absolute = $template->param('wants_absolute_urls'); + if ($template->query(name => 'commentsurl')) { $template->param(commentsurl => - urlto($page).'#comments'); + urlto($page, undef, $absolute).'#comments'); } if ($template->query(name => 'atomcommentsurl') && $config{usedirs}) { # This will 404 until there are some comments, but I # think that's probably OK... $template->param(atomcommentsurl => - urlto($page).'comments.atom'); + urlto($page, undef, $absolute).'comments.atom'); } if ($template->query(name => 'commentslink')) { diff --git a/IkiWiki/Plugin/emailauth.pm b/IkiWiki/Plugin/emailauth.pm index a589199d3..6674fe3d6 100644 --- a/IkiWiki/Plugin/emailauth.pm +++ b/IkiWiki/Plugin/emailauth.pm @@ -26,6 +26,12 @@ sub getsetup () { rebuild => 0, section => "auth", }, + emailauth_sender => { + type => "string", + description => "email address to send emailauth mails as (default: adminemail)", + safe => 1, + rebuild => 0, + }, } sub email_setup ($$) { @@ -80,10 +86,12 @@ sub email_auth ($$$$) { error($@) if $@; my $shorturl=$config{url}; $shorturl=~s/^https?:\/\///i; + my $emailauth_sender=$config{emailauth_sender}; + $emailauth_sender=$config{adminemail} unless defined $emailauth_sender; sendmail( To => $email, From => "$config{wikiname} admin <". - (defined $config{adminemail} ? $config{adminemail} : "") + (defined $emailauth_sender ? $emailauth_sender : "") .">", Subject => "$config{wikiname} login | $shorturl", Message => $template->output, diff --git a/IkiWiki/Plugin/git.pm b/IkiWiki/Plugin/git.pm index 4d48388a0..f963f06ba 100644 --- a/IkiWiki/Plugin/git.pm +++ b/IkiWiki/Plugin/git.pm @@ -220,6 +220,21 @@ sub run_or_die ($@) { safe_git(\&error, undef, @_) } sub run_or_cry ($@) { safe_git(sub { warn @_ }, undef, @_) } sub run_or_non ($@) { safe_git(undef, undef, @_) } +sub ensure_committer { + if (! length $ENV{GIT_AUTHOR_NAME} || ! length $ENV{GIT_COMMITTER_NAME}) { + my $name = join('', run_or_non("git", "config", "user.name")); + if (! length $name) { + run_or_die("git", "config", "user.name", "IkiWiki"); + } + } + + if (! length $ENV{GIT_AUTHOR_EMAIL} || ! length $ENV{GIT_COMMITTER_EMAIL}) { + my $email = join('', run_or_non("git", "config", "user.email")); + if (! length $email) { + run_or_die("git", "config", "user.email", "ikiwiki.info"); + } + } +} sub merge_past ($$$) { # Unlike with Subversion, Git cannot make a 'svn merge -rN:M file'. @@ -258,6 +273,8 @@ sub merge_past ($$$) { my @undo; # undo stack for cleanup in case of an error my $conflict; # file content with conflict markers + ensure_committer(); + eval { # Hide local changes from Git by renaming the modified file. # Relative paths must be converted to absolute for renaming. @@ -526,6 +543,8 @@ sub rcs_get_current_rev () { sub rcs_update () { # Update working directory. + ensure_committer(); + if (length $config{gitorigin_branch}) { run_or_cry('git', 'pull', '--prune', $config{gitorigin_branch}); } @@ -592,6 +611,8 @@ sub rcs_commit_helper (@) { } } + ensure_committer(); + $params{message} = IkiWiki::possibly_foolish_untaint($params{message}); my @opts; if ($params{message} !~ /\S/) { @@ -631,6 +652,8 @@ sub rcs_add ($) { my ($file) = @_; + ensure_committer(); + run_or_cry('git', 'add', $file); } @@ -639,12 +662,16 @@ sub rcs_remove ($) { my ($file) = @_; + ensure_committer(); + run_or_cry('git', 'rm', '-f', $file); } sub rcs_rename ($$) { my ($src, $dest) = @_; + ensure_committer(); + run_or_cry('git', 'mv', '-f', $src, $dest); } @@ -944,6 +971,8 @@ sub rcs_revert ($) { my $rev = shift; my ($sha1) = $rev =~ /^($sha1_pattern)$/; # untaint + ensure_committer(); + if (run_or_non('git', 'revert', '--no-commit', $sha1)) { return undef; } diff --git a/IkiWiki/Plugin/highlight.pm b/IkiWiki/Plugin/highlight.pm index ce919748a..f6908921e 100644 --- a/IkiWiki/Plugin/highlight.pm +++ b/IkiWiki/Plugin/highlight.pm @@ -201,7 +201,9 @@ sub highlight ($$) { my $gen; if (! exists $highlighters{$langfile}) { + no warnings 'once'; $gen = highlight::CodeGenerator::getInstance($highlight::XHTML); + use warnings; $gen->setFragmentCode(1); # generate html fragment $gen->setHTMLEnclosePreTag(1); # include stylish
 		if ($data_dir){
diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm
index 416df1e28..c3895d982 100644
--- a/IkiWiki/Plugin/inline.pm
+++ b/IkiWiki/Plugin/inline.pm
@@ -181,11 +181,22 @@ sub preprocess_inline (@) {
 	my $feeds=exists $params{feeds} ? yesno($params{feeds}) : !$quick && ! $raw;
 	my $emptyfeeds=exists $params{emptyfeeds} ? yesno($params{emptyfeeds}) : 1;
 	my $feedonly=yesno($params{feedonly});
-	if (! exists $params{show} && ! $archive) {
-		$params{show}=10;
+
+	# Backwards compatibility
+	if (defined $params{show} && $params{show} =~ m/^\d+$/) {
+		$params{limit} = $params{show};
+		delete $params{show};
+	}
+	if (defined $params{feedshow} && $params{feedshow} =~ m/^\d+$/) {
+		$params{feedlimit} = $params{feedshow};
+		delete $params{feedshow};
+	}
+
+	if (! exists $params{limit} && ! $archive) {
+		$params{limit}=10;
 	}
-	if (! exists $params{feedshow} && exists $params{show}) {
-		$params{feedshow}=$params{show};
+	if (! exists $params{feedlimit} && exists $params{limit}) {
+		$params{feedlimit}=$params{limit};
 	}
 	my $title;
 	if (exists $params{title}) {
@@ -233,11 +244,11 @@ sub preprocess_inline (@) {
 	}
 	else {
 		my $num=0;
-		if ($params{show}) {
-			$num=$params{show};
+		if ($params{limit}) {
+			$num=$params{limit};
 		}
-		if ($params{feedshow} && $num < $params{feedshow} && $num > 0) {
-			$num=$params{feedshow};
+		if ($params{feedlimit} && $num < $params{feedlimit} && $num > 0) {
+			$num=$params{feedlimit};
 		}
 		if ($params{skip} && $num) {
 			$num+=$params{skip};
@@ -258,17 +269,17 @@ sub preprocess_inline (@) {
 	
 	my @feedlist;
 	if ($feeds) {
-		if (exists $params{feedshow} &&
-		    $params{feedshow} && @list > $params{feedshow}) {
-			@feedlist=@list[0..$params{feedshow} - 1];
+		if (exists $params{feedlimit} &&
+		    $params{feedlimit} && @list > $params{feedlimit}) {
+			@feedlist=@list[0..$params{feedlimit} - 1];
 		}
 		else {
 			@feedlist=@list;
 		}
 	}
 	
-	if ($params{show} && @list > $params{show}) {
-		@list=@list[0..$params{show} - 1];
+	if ($params{limit} && @list > $params{limit}) {
+		@list=@list[0..$params{limit} - 1];
 	}
 
 	if ($feeds && exists $params{feedpages}) {
@@ -602,7 +613,7 @@ sub absolute_urls ($$) {
 					$v=$baseurl.$v; # anchor
 				}
 				elsif ($dv=~/^(?!\w+:)[^\/]/) {
-					$v=$url.$v; # relative url
+					$v=URI->new_abs($v, $url)->canonical; # relative url
 				}
 				elsif ($dv=~/^\//) {
 					if (! defined $urltop) {
@@ -714,6 +725,7 @@ sub genfeed ($$$$$@) {
 
 	my $template=template_depends($feedtype."page.tmpl", $page, blind_cache => 1);
 	$template->param(
+		wants_absolute_urls => 1,
 		title => $feedtitle,
 		wikiname => $config{wikiname},
 		pageurl => $url,
diff --git a/IkiWiki/Plugin/meta.pm b/IkiWiki/Plugin/meta.pm
index e7b96bdf1..ea099f955 100644
--- a/IkiWiki/Plugin/meta.pm
+++ b/IkiWiki/Plugin/meta.pm
@@ -294,6 +294,7 @@ sub preprocess (@) {
 	elsif ($key eq 'name') {
 		push @{$metaheaders{$page}}, scrub('', $page, $destpage);
 	}
diff --git a/IkiWiki/Plugin/pagestats.pm b/IkiWiki/Plugin/pagestats.pm
index 17b26f7ba..ac0a463e3 100644
--- a/IkiWiki/Plugin/pagestats.pm
+++ b/IkiWiki/Plugin/pagestats.pm
@@ -31,11 +31,30 @@ sub getsetup () {
 		},
 }
 
+sub linktext ($%) {
+	# Return the text of the link to a tag, depending on option linktext.
+	my ($page, %params) = @_;
+	if (exists $params{show} &&
+		exists $pagestate{$page} &&
+		exists $pagestate{$page}{meta}{$params{show}}) {
+		return $pagestate{$page}{meta}{$params{show}};
+	}
+	else {
+		return undef;
+	}
+}
+
 sub preprocess (@) {
 	my %params=@_;
 	$params{pages}="*" unless defined $params{pages};
 	my $style = ($params{style} or 'cloud');
-	
+
+	# Backwards compatibility
+	if (defined $params{show} && $params{show} =~ m/^\d+$/) {
+		$params{limit} = $params{show};
+		delete $params{show};
+	}
+
 	my %counts;
 	my $max = 0;
 	foreach my $page (pagespec_match_list($params{page}, $params{pages},
@@ -64,11 +83,11 @@ sub preprocess (@) {
 		$max = $counts{$page} if $counts{$page} > $max;
 	}
 
-	if (exists $params{show}) {
+	if (exists $params{limit}) {
 		my $i=0;
 		my %show;
 		foreach my $key (sort { $counts{$b} <=> $counts{$a} } keys %counts) {
-			last if ++$i > $params{show};
+			last if ++$i > $params{limit};
 			$show{$key}=$counts{$key};
 		}
 		%counts=%show;
@@ -78,7 +97,7 @@ sub preprocess (@) {
 		return "\n".
 			join("\n", map {
 				""
 			}
 			sort { $counts{$b} <=> $counts{$a} } keys %counts).
@@ -101,7 +120,7 @@ sub preprocess (@) {
 			
 			$res.="
  • " if $style eq 'list'; $res .= "". - htmllink($params{page}, $params{destpage}, $page). + htmllink($params{page}, $params{destpage}, $page, linktext => linktext($page, %params)). "\n"; $res.="
  • " if $style eq 'list'; diff --git a/IkiWiki/Plugin/remove.pm b/IkiWiki/Plugin/remove.pm index 5c99b387e..6875844a3 100644 --- a/IkiWiki/Plugin/remove.pm +++ b/IkiWiki/Plugin/remove.pm @@ -23,6 +23,7 @@ sub getsetup () { } sub allowed_dirs { + no warnings 'once'; return grep { defined $_ } ( $config{srcdir}, $IkiWiki::Plugin::transient::transientdir, diff --git a/IkiWiki/Plugin/tag.pm b/IkiWiki/Plugin/tag.pm index 605f41599..8a0859b5c 100644 --- a/IkiWiki/Plugin/tag.pm +++ b/IkiWiki/Plugin/tag.pm @@ -120,6 +120,7 @@ sub gentag ($) { my $dir = $config{srcdir}; if (! $config{tag_autocreate_commit}) { + no warnings 'once'; $dir = $IkiWiki::Plugin::transient::transientdir; } diff --git a/IkiWiki/Plugin/teximg.pm b/IkiWiki/Plugin/teximg.pm index 3d6fa9942..e0f97614b 100644 --- a/IkiWiki/Plugin/teximg.pm +++ b/IkiWiki/Plugin/teximg.pm @@ -146,8 +146,8 @@ sub gen_image ($$$$) { my $tex = $config{teximg_prefix}; $tex .= '\['.$code.'\]'; $tex .= $config{teximg_postfix}; - $tex =~ s!\\documentclass{article}!\\documentclass[${height}pt]{article}!g; - $tex =~ s!\\documentclass{scrartcl}!\\documentclass[${height}pt]{scrartcl}!g; + $tex =~ s!\\documentclass\{article}!\\documentclass[${height}pt]{article}!g; + $tex =~ s!\\documentclass\{scrartcl}!\\documentclass[${height}pt]{scrartcl}!g; my $tmp = eval { create_tmp_dir($digest) }; if (! $@ && diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index 4c998b156..130257f71 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -326,6 +326,7 @@ sub find_src_files (;$$$) { $page = pagename($file); if (! exists $pagesources{$page} && file_pruned($file)) { + no warnings 'once'; $File::Find::prune=1; return; } diff --git a/IkiWiki/Setup/Standard.pm b/IkiWiki/Setup/Standard.pm index ea7d763bb..07a66f3db 100644 --- a/IkiWiki/Setup/Standard.pm +++ b/IkiWiki/Setup/Standard.pm @@ -33,6 +33,7 @@ sub dumpline ($$$$) { eval q{use Data::Dumper}; error($@) if $@; + no warnings 'once'; local $Data::Dumper::Terse=1; local $Data::Dumper::Indent=1; local $Data::Dumper::Pad="\t"; @@ -40,6 +41,7 @@ sub dumpline ($$$$) { local $Data::Dumper::Quotekeys=0; # only the perl version preserves utf-8 in output local $Data::Dumper::Useperl=1; + use warnings; my $dumpedvalue; if (($type eq 'boolean' || $type eq 'integer') && $value=~/^[0-9]+$/) { diff --git a/IkiWiki/Setup/Yaml.pm b/IkiWiki/Setup/Yaml.pm index 6bf20f480..8edd7126b 100644 --- a/IkiWiki/Setup/Yaml.pm +++ b/IkiWiki/Setup/Yaml.pm @@ -35,7 +35,9 @@ sub dumpline ($$$$) { eval q{use YAML::XS}; die $@ if $@; + no warnings 'once'; $YAML::XS::QuoteNumericStrings=0; + use warnings; my $dump=decode_utf8(Dump({$key => $value})); $dump=~s/^---\n//; # yaml header, we don't want diff --git a/debian/changelog b/debian/changelog index 0e052ad98..b33f3d30f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,54 @@ +ikiwiki (3.20160121) unstable; urgency=medium + + [ Amitai Schlair ] + * meta: Fix [[!meta name=foo]] by closing the open quote. + * Avoid unescaped "{" in regular expressions + * meta test: Add tests for many behaviors of the directive. + * img test: Bail gracefully when ImageMagick is not present. + + [ Joey Hess ] + * emailauth: Added emailauth_sender config. + * Modified page.tmpl to to set html lang= and dir= when + values have been specified for them, which the po plugin does. + * Specifically license the javascript underlay under the permissive + basewiki license. + + [ Simon McVittie ] + * git: if no committer identity is known, set it to + "IkiWiki " in .git/config. This resolves commit errors + in versions of git that require a non-trivial committer identity. + * inline, trail: rename show, feedshow parameters to limit, feedlimit + (with backwards compatibility) + * pagestats: add "show" option to show meta fields. Thanks, Louis + * inline: force RSS to be a fully absolute URL as required + by the W3C validator. Please use Atom feeds if relative URLs are + desirable on your site. + * inline: add to RSS feeds as recommended by + the W3C validator + * inline: do not produce links containing /./ or /../ + * syslog: accept and encode UTF-8 messages + * syslog: don't fail to log if the wiki name contains %s + * Change dependencies from transitional package perlmagick + to libimage-magick-perl (Closes: #789221) + * debian/copyright: update for the rename of openid-selector to + login-selector + * d/control: remove leading article from Description + (lintian: description-synopsis-starts-with-article) + * d/control: Standards-Version: 3.9.6, no changes required + * Wrap and sort control files (wrap-and-sort -abst) + * Silence "used only once: possible typo" warnings for variables + that are part of modules' APIs + * Run autopkgtest tests using autodep8 and the pkg-perl team's + infrastructure + * Add enough build-dependencies to run all tests, except for + non-git VCSs + * tests: consistently use done_testing instead of no_plan + * t/img.t: do not spuriously skip + * img test: skip testing PDFs if unsupported + * img test: use the right filenames when testing that deletion occurs + + -- Simon McVittie Thu, 21 Jan 2016 09:53:07 +0000 + ikiwiki (3.20150614~bpo8+1) jessie-backports; urgency=medium * Rebuild for jessie-backports, no source changes (Closes: #807452) diff --git a/debian/control b/debian/control index a5cac3c01..8af788c2d 100644 --- a/debian/control +++ b/debian/control @@ -1,52 +1,112 @@ Source: ikiwiki Section: web Priority: optional -Build-Depends: perl, debhelper (>= 9) -Build-Depends-Indep: dpkg-dev (>= 1.9.0), libxml-simple-perl, - libtext-markdown-discount-perl, - libtimedate-perl, libhtml-template-perl, - libhtml-scrubber-perl, - libhtml-parser-perl, liburi-perl (>= 1.36), perlmagick, po4a (>= 0.34), - libfile-chdir-perl, libyaml-libyaml-perl, librpc-xml-perl, - libcgi-pm-perl, libcgi-session-perl, ghostscript, - libmagickcore-6.q16-2-extra | libmagickcore-extra, - libcgi-formbuilder-perl +Build-Depends: + debhelper (>= 9), + perl, +Build-Depends-Indep: + dpkg-dev (>= 1.9.0), + ghostscript, + git (>= 1:1.7), + libcgi-formbuilder-perl, + libcgi-pm-perl, + libcgi-session-perl, + libfile-chdir-perl, + libfile-mimeinfo-perl, + libhtml-parser-perl, + libhtml-scrubber-perl, + libhtml-template-perl, + libimage-magick-perl | perlmagick, + libmagickcore-6.q16-2-extra | libmagickcore-extra, + libnet-openid-consumer-perl, + librpc-xml-perl, + libtext-markdown-discount-perl, + libtimedate-perl, + liburi-perl (>= 1.36), + libxml-feed-perl, + libxml-parser-perl, + libxml-simple-perl, + libxml-twig-perl, + libyaml-libyaml-perl, + po4a (>= 0.34), Maintainer: Simon McVittie -Uploaders: Josh Triplett -Standards-Version: 3.9.5 +Uploaders: + Josh Triplett , +Standards-Version: 3.9.6 Homepage: http://ikiwiki.info/ Vcs-Git: git://git.ikiwiki.info/ +Testsuite: autopkgtest-pkg-perl Package: ikiwiki Architecture: all -Depends: ${misc:Depends}, ${perl:Depends}, - libtext-markdown-discount-perl, - libhtml-scrubber-perl, libhtml-template-perl, - libhtml-parser-perl, liburi-perl (>= 1.36), libyaml-libyaml-perl, libjson-perl -Recommends: gcc | c-compiler, - libc6-dev | libc-dev, - git (>= 1:1.7) | git-core (>= 1:1.5.0) | subversion | tla | bzr (>= 0.91) | mercurial | monotone (>= 0.38) | darcs, - libxml-simple-perl, libnet-openid-consumer-perl, libcrypt-ssleay-perl, - liblwpx-paranoidagent-perl, libtimedate-perl, libcgi-pm-perl, - libcgi-formbuilder-perl (>= 3.05), libcgi-session-perl (>= 4.14-1), - libmail-sendmail-perl, libauthen-passphrase-perl, libterm-readline-gnu-perl, - libgravatar-url-perl, librpc-xml-perl, -Suggests: viewvc | gitweb | viewcvs, libsearch-xapian-perl, - xapian-omega (>= 1.0.5), libtext-wikiformat-perl, - python, python-docutils, polygen, tidy, libhtml-tree-perl, - libxml-feed-perl, libmailtools-perl, perlmagick, - libfile-mimeinfo-perl, file, - liblocale-gettext-perl (>= 1.05-1), libtext-typography-perl, - libtext-csv-perl, graphviz, libnet-amazon-s3-perl, - libsparkline-php, texlive, dvipng, libtext-wikicreole-perl, - libsort-naturally-perl, libtext-textile-perl, libhighlight-perl, - po4a (>= 0.35-1), gettext, libnet-inet6glue-perl, - libtext-multimarkdown-perl, libxml-writer-perl, - ghostscript, libmagickcore-extra -Conflicts: ikiwiki-plugin-table -Replaces: ikiwiki-plugin-table -Provides: ikiwiki-plugin-table -Description: a wiki compiler +Depends: + libhtml-parser-perl, + libhtml-scrubber-perl, + libhtml-template-perl, + libjson-perl, + libtext-markdown-discount-perl, + liburi-perl (>= 1.36), + libyaml-libyaml-perl, + ${misc:Depends}, + ${perl:Depends}, +Recommends: + gcc | c-compiler, + git (>= 1:1.7) | git-core (>= 1:1.5.0) | subversion | tla | bzr (>= 0.91) | mercurial | monotone (>= 0.38) | darcs, + libauthen-passphrase-perl, + libc6-dev | libc-dev, + libcgi-formbuilder-perl (>= 3.05), + libcgi-pm-perl, + libcgi-session-perl (>= 4.14-1), + libcrypt-ssleay-perl, + libgravatar-url-perl, + liblwpx-paranoidagent-perl, + libmail-sendmail-perl, + libnet-openid-consumer-perl, + librpc-xml-perl, + libterm-readline-gnu-perl, + libtimedate-perl, + libxml-simple-perl, +Suggests: + dvipng, + file, + gettext, + ghostscript, + graphviz, + libfile-mimeinfo-perl, + libhighlight-perl, + libhtml-tree-perl, + libimage-magick-perl | perlmagick, + liblocale-gettext-perl (>= 1.05-1), + libmagickcore-extra, + libmailtools-perl, + libnet-amazon-s3-perl, + libnet-inet6glue-perl, + libsearch-xapian-perl, + libsort-naturally-perl, + libsparkline-php, + libtext-csv-perl, + libtext-multimarkdown-perl, + libtext-textile-perl, + libtext-typography-perl, + libtext-wikicreole-perl, + libtext-wikiformat-perl, + libxml-feed-perl, + libxml-writer-perl, + po4a (>= 0.35-1), + polygen, + python, + python-docutils, + texlive, + tidy, + viewvc | gitweb | viewcvs, + xapian-omega (>= 1.0.5), +Conflicts: + ikiwiki-plugin-table, +Replaces: + ikiwiki-plugin-table, +Provides: + ikiwiki-plugin-table, +Description: wiki compiler Ikiwiki converts a directory full of wiki pages into HTML pages suitable for publishing on a website. Unlike many wikis, ikiwiki does not have its own ad-hoc means of storing page history, and instead uses a revision diff --git a/debian/copyright b/debian/copyright index 514910f26..28b5aa591 100644 --- a/debian/copyright +++ b/debian/copyright @@ -6,7 +6,7 @@ Copyright: © 2006-2011 Joey Hess License: GPL-2+ Files: templates/* underlays/basewiki/* doc/ikiwiki/directive/* - ikiwiki.setup po/underlays/* + ikiwiki.setup po/underlays/* underlays/javascript/* Copyright: © 2006-2010 Joey Hess License: permissive @@ -190,27 +190,27 @@ Comment: These smileys were copied from phpBB. Files: doc/tips/integrated_issue_tracking_with_ikiwiki.mdwn Copyright: © 2007 Joey Hess , LinuxWorld.com -Comment: +Comment: First published on LinuxWorld.com, a publication of Network World Inc., 118 Turnpike Rd., Southboro, MA 01772. . Republished with permission. License: GPL-2+ -Files: underlays/openid-selector/ikiwiki/login-selector/* +Files: underlays/login-selector/ikiwiki/login-selector/* Copyright: © 2008-2010 andyjm, david.j.boden -Comment: - From http://code.google.com/p/openid-selector/ +Comment: + Based on https://code.google.com/archive/p/openid-selector/ License: BSD-2-clause -Files: underlays/openid-selector/ikiwiki/login-selector/goa-* +Files: underlays/login-selector/ikiwiki/login-selector/goa-* Copyright: © 2011 Red Hat, Inc. License: LGPL-2.1+ Comment: taken from data/icons/16x16/ in gnome-online-accounts git -Files: underlays/openid-selector/ikiwiki/login-selector/wordpress.png +Files: underlays/login-selector/ikiwiki/login-selector/wordpress.png Copyright: © 2003-2013 "the contributors" License: GPL-2+ @@ -222,8 +222,8 @@ Files: icons/aol.svg icons/livejournal.svg icons/verisign.svg - underlays/openid-selector/ikiwiki/login-selector/aol.png - underlays/openid-selector/ikiwiki/login-selector/verisign.png + underlays/login-selector/ikiwiki/login-selector/aol.png + underlays/login-selector/ikiwiki/login-selector/verisign.png Copyright: © 2014 Simon McVittie License: permissive @@ -330,7 +330,7 @@ License: Expat AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. + SOFTWARE. License: LGPL-2.1+ This library is free software; you can redistribute it and/or diff --git a/debian/links b/debian/links index cb3793191..5989f4c7d 100644 --- a/debian/links +++ b/debian/links @@ -1,2 +1,2 @@ -usr/share/ikiwiki/examples usr/share/doc/ikiwiki/examples usr/share/common-licenses/GPL-2 usr/share/doc/ikiwiki/html/GPL +usr/share/ikiwiki/examples usr/share/doc/ikiwiki/examples diff --git a/debian/tests/pkg-perl/smoke-env b/debian/tests/pkg-perl/smoke-env new file mode 100644 index 000000000..774738148 --- /dev/null +++ b/debian/tests/pkg-perl/smoke-env @@ -0,0 +1 @@ +INSTALLED_TESTS=1 diff --git a/debian/tests/pkg-perl/syntax-skip b/debian/tests/pkg-perl/syntax-skip new file mode 100644 index 000000000..404e431d3 --- /dev/null +++ b/debian/tests/pkg-perl/syntax-skip @@ -0,0 +1,4 @@ +IkiWiki/Plugin/amazon_s3.pm +IkiWiki/Plugin/cvs.pm +IkiWiki/Plugin/monotone.pm +IkiWiki/Plugin/po.pm diff --git a/debian/tests/pkg-perl/use-name b/debian/tests/pkg-perl/use-name new file mode 100644 index 000000000..3d60011b3 --- /dev/null +++ b/debian/tests/pkg-perl/use-name @@ -0,0 +1 @@ +IkiWiki diff --git a/doc/bugs/Error_with_external_plugins.mdwn b/doc/bugs/Error_with_external_plugins.mdwn new file mode 100644 index 000000000..065439de8 --- /dev/null +++ b/doc/bugs/Error_with_external_plugins.mdwn @@ -0,0 +1,90 @@ +Hello, +I stumbled upon this bug when writing a Python plugin. I think this is a ikiwiki bug, since I do not think my plugin does anything wrong. + +# Example + +I set up an example wiki, containing the setup file and the plugin, [[on github|https://github.com/paternal/ikiwiki-rpcbug]]. + +1. Clone the repository + + git clone https://github.com/paternal/ikiwiki-rpcbug.git + +2. Change to the right directory + + cd ikiwiki-rpcbug + +2. Add the right ikiwiki directory to PYTHONPATH + + export PYTHONPATH="$PYTHONPATH:$(dirname $(dpkg -L ikiwiki | grep proxy))" + +3. Build the wiki + + ikiwiki --setup wiki.setup --rebuild + +4. The problem is in page [[http://localhost/~USERNAME/ikiwiki_bug_rpc/foo/]] (for instance, [[http://localhost/~USERNAME/ikiwiki_bug_rpc]] is fine. + +# Problem + +Page `foo` contains the directive ``[[!rpcbug]]`` (`rpcbug` being the name of the plugin). Calling [[``proxy.rpc("srcfile", "bar")``|https://github.com/paternal/ikiwiki-rpcbug/blob/master/plugins/rpcbug#L15]] in the preprocess function seems to mess up the RPC communication between ikiwiki and the plugin, and the result is that the generate `foo/index.html` page is a text file containing the return value of the `preprocess` call. + +What I do not understand is that disabling the `format` function (by commenting [[line 46 of the plugin|https://github.com/paternal/ikiwiki-rpcbug/blob/master/plugins/rpcbug#L46]]) solves the problem. Half of an explaination is that I think that when the the ``proxy.rpc`` function is called, the RPC communication is messed up in such a way that the `format` function is not called, and the return value of `preprocess` is considered to be the whole html code of the resulting page. + +> I understood that: as the first rpc call messes up the communication, more rpc calls are messed up, but if there is only one rpc call, not that much is broken. -- [[Louis|spalax]] + +I hope someone will understand the problem better than I do, because I have no idea about how to solve this. + +Regards, +-- [[Louis|spalax]] + +> I used the debug feature provided with `proxy.py` and rebuilt the wiki. I ran this with [this version](https://github.com/paternal/ikiwiki-rpcbug/tree/b4ba34a8edd1b97989965af69eddac050bc0a8ba) of my minimal bug example. +> +> * The bug happens in function [preprocess](https://github.com/paternal/ikiwiki-rpcbug/blob/b4ba34a8edd1b97989965af69eddac050bc0a8ba/plugins/rpcbug#L12-17) (in call to [srcfile](https://github.com/paternal/ikiwiki-rpcbug/blob/b4ba34a8edd1b97989965af69eddac050bc0a8ba/plugins/rpcbug#L15), to be more precise). +> * The directive causing the bug is called on page [foo](https://github.com/paternal/ikiwiki-rpcbug/blob/b4ba34a8edd1b97989965af69eddac050bc0a8ba/foo.mdwn). +> * Communication between Ikiwiki and the plugin is [[here|debug]]. +> * The resulting HTML (for page `foo`) looks like: +> +> > \[[!rpcbug Erreur: internal error: foo cannot be found in /home/louis/projets/ikiwiki/rpcbug or underlay]] +> > +> > +> > Calling srcfile(foo): page +> > Calling srcfile(README.md): /home/louis/projets/ikiwiki/rpcbug/README.md +> +> My analysis: +> +> * The call to `srcfile(foo)` fails (because Ikiwiki thinks that page `foo` does not exist). +> * Ikiwiki thinks that processing of the directive is finished, whereas the plugin still waits for the answer of Ikiwiki. +> * Ikiwiki asks the plugin to render a new directive, but the plugin interprets the request as the return value for its previous request. Thus, the plugin thinks that `srcfile(foo)` is `page` (this `page` being a misinterpretation of the Ikiwiki request). +> +> So, I think that this might be an error in the +> [`rpc_call`](https://github.com/joeyh/ikiwiki/blob/9476e2ac7ad2f53643fa2fca6ba35fcc55ab058e/IkiWiki/Plugin/external.pm#L46-147) +> function of the `external` plugin: when the called method fails, it should +> return something (or raise an exception, if this is possible in RPC) to notify +> the plugin that something went wrong. +> +> -- [[Louis|spalax]] + +>> Update: This can actually be a [proxy](https://github.com/joeyh/ikiwiki/blob/9c910a76e70111c50ba8cbb518277f809fc1d09d/plugins/proxy.py) error. Indeed: +>> +>> - Ikiwiki sends a `methodCall` message to the plugin (which is a call to the +>> `preprocess` function); +>> - the plugin sends a `methodCall` message to ikiwiki (which is a call to the +>> `srcfile` function); +>> - Ikiwiki answers with a `methodCall` message: +>> - Ikiwiki answers this because the function call failed, and it is already +>> processing the next directive; +>> - the plugin thinks that it is its request answer, and misinterprets it. +>> +>> Thus, I think that the bug is in the `proxy.py` python file. On receiving a +>> `methodCall` (instead of a `methodResponse`) as an answer to a `methodCall` +>> request, `proxy.py` should notice the type of request, and call the requested function. +>> +>> I know Python better than I know Perl, so I can try to fix this. +>> +>> -- [[Louis|spalax]] + +>>> [[!template id=gitbranch author="[[Louis|spalax]]" branch=spalax/paternal/rpcbug +>>> browse=https://github.com/paternal/ikiwiki/tree/paternal/rpcbug]] +>>> [I fixed this bug](https://github.com/paternal/ikiwiki/commit/32da347566a7559ca1ef145880efe961dbcc012f) in a branch on my Ikiwiki clone. +>>> Please review :) +>>> +>>> -- [[Louis|spalax]] diff --git a/doc/bugs/Error_with_external_plugins/debug.mdwn b/doc/bugs/Error_with_external_plugins/debug.mdwn new file mode 100644 index 000000000..b927e4401 --- /dev/null +++ b/doc/bugs/Error_with_external_plugins/debug.mdwn @@ -0,0 +1,7737 @@ +Trace of the `proxy.py` package during ikiwiki build. Look for the `preprocess` call and response for interesting stuff. + + rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki... + rpcbug:handle_rpc:199: received procedure call from ikiwiki: [import + ] + rpcbug:_importme:330: importing... + rpcbug:_importme:333: hooking rpcbug/getsetup into getsetup chain... + rpcbug:send_rpc:161: calling ikiwiki procedure `hook': ["\n\nhook\n\n\ncall\n\n\ngetsetup\n\n\ntype\n\n\ngetsetup\n\n\nid\n\n\nrpcbug\n\n\nlast\n\n\n0\n\n\n\n"] + rpcbug:send_rpc:169: reading response from ikiwiki... + rpcbug:send_rpc:178: read response to procedure hook from ikiwiki: ['1\n'] + rpcbug:send_rpc:187: parsed data from response to procedure hook: ['1'] + rpcbug:_importme:333: hooking rpcbug/preprocess into preprocess chain... + rpcbug:send_rpc:161: calling ikiwiki procedure `hook': ["\n\nhook\n\n\ncall\n\n\npreprocess\n\n\ntype\n\n\npreprocess\n\n\nid\n\n\nrpcbug\n\n\nlast\n\n\n0\n\n\n\n"] + rpcbug:send_rpc:169: reading response from ikiwiki... + rpcbug:send_rpc:178: read response to procedure hook from ikiwiki: ['1\n'] + rpcbug:send_rpc:187: parsed data from response to procedure hook: ['1'] + rpcbug:_importme:333: hooking rpcbug/format into format chain... + rpcbug:send_rpc:161: calling ikiwiki procedure `hook': ["\n\nhook\n\n\ncall\n\n\nformat\n\n\ntype\n\n\nformat\n\n\nid\n\n\nrpcbug\n\n\nlast\n\n\n0\n\n\n\n"] + rpcbug:send_rpc:169: reading response from ikiwiki... + rpcbug:send_rpc:178: read response to procedure hook from ikiwiki: ['1\n'] + rpcbug:send_rpc:187: parsed data from response to procedure hook: ['1'] + rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [ + + + + + + null + + + + + + + ] + rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki... + Omission du fichier au nom incorrect wiki.setup~ + Omission du fichier au nom incorrect index.mdwn~ + Omission du fichier au nom incorrect README.md~ + Omission du fichier au nom incorrect foo.mdwn~ + Omission du fichier au nom incorrect plugins/evariste~ + Omission du fichier au nom incorrect plugins/rpcbug~ + rpcbug:handle_rpc:199: received procedure call from ikiwiki: [preprocesspagefoodestpagefoopreview0 + ] + rpcbug:send_rpc:161: calling ikiwiki procedure `srcfile': ["\n\nsrcfile\n\n\nfoo\n\n\n\n"] + rpcbug:send_rpc:169: reading response from ikiwiki... + rpcbug:send_rpc:178: read response to procedure srcfile from ikiwiki: ['preprocesspagefoodestpagefoopreview0\n'] + rpcbug:send_rpc:187: parsed data from response to procedure srcfile: ['page'] + rpcbug:send_rpc:161: calling ikiwiki procedure `srcfile': ["\n\nsrcfile\n\n\nREADME.md\n\n\n\n"] + rpcbug:send_rpc:169: reading response from ikiwiki... + rpcbug:send_rpc:178: read response to procedure srcfile from ikiwiki: ['/home/louis/projets/ikiwiki/rpcbug/README.md\n'] + rpcbug:send_rpc:187: parsed data from response to procedure srcfile: ['/home/louis/projets/ikiwiki/rpcbug/README.md'] + rpcbug:hook_proxy:262: preprocess hook `preprocess' returned: ['
    * Calling `srcfile(foo)`: page
    * Calling `srcfile(README.md)`: /home/louis/projets/ikiwiki/rpcbug/README.md'] + rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [ + + + + <br/>* Calling `srcfile(foo)`: page<br/>* Calling `srcfile(README.md)`: /home/louis/projets/ikiwiki/rpcbug/README.md + + + + ] + rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki... + rpcbug:handle_rpc:199: received procedure call from ikiwiki: [formatpagefoocontent<!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>foo</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../style.css" type="text/css" /> + + <link rel="stylesheet" href="../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=foo" /> + + + + + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../">RPC Bug</a>/ + + </span> + <span class="title"> + foo + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=foo" rel="nofollow">Edit</a></li> + + + <li><a href="../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>\[[!rpcbug <span class="error">Erreur: internal error: foo cannot be found in /home/louis/projets/ikiwiki/rpcbug or underlay</span>]]</p> + + <p><br /><em> Calling <code>srcfile(foo)</code>: page<br /></em> Calling <code>srcfile(README.md)</code>: /home/louis/projets/ikiwiki/rpcbug/README.md</p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../">index</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2015-06-28T18:16:57Z">28/06/2015</time> + <!-- Created <time datetime="2015-06-15T01:35:13Z" pubdate="pubdate">15/06/2015</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + ] + rpcbug:hook_proxy:262: format hook `format' returned: ['\n\n\n\n\nfoo\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n

    \[[!rpcbug Erreur: internal error: foo cannot be found in /home/louis/projets/ikiwiki/rpcbug or underlay]]

    \n\n


    Calling srcfile(foo): page
    Calling srcfile(README.md): /home/louis/projets/ikiwiki/rpcbug/README.md

    \n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n\n\n\n\n\n
    \n\n
    \n\n\n\n'] + rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [ + + + + <!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>foo</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../style.css" type="text/css" /> + + <link rel="stylesheet" href="../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=foo" /> + + + + + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../">RPC Bug</a>/ + + </span> + <span class="title"> + foo + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=foo" rel="nofollow">Edit</a></li> + + + <li><a href="../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>\[[!rpcbug <span class="error">Erreur: internal error: foo cannot be found in /home/louis/projets/ikiwiki/rpcbug or underlay</span>]]</p> + + <p><br /><em> Calling <code>srcfile(foo)</code>: page<br /></em> Calling <code>srcfile(README.md)</code>: /home/louis/projets/ikiwiki/rpcbug/README.md</p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../">index</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2015-06-28T18:16:57Z">28/06/2015</time> + <!-- Created <time datetime="2015-06-15T01:35:13Z" pubdate="pubdate">15/06/2015</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + + + + ] + rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki... + rpcbug:handle_rpc:199: received procedure call from ikiwiki: [formatpageindexcontent<!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>RPC Bug</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="style.css" type="text/css" /> + + <link rel="stylesheet" href="local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=index" /> + + + + + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + </span> + <span class="title"> + RPC Bug + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=index" rel="nofollow">Edit</a></li> + + + <li><a href="./recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>Hello, world!</p> + + <p>Page causing the error : <a href="./foo/">foo</a></p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + + + + + + <div class="pagedate"> + Last edited <time datetime="2015-06-15T01:35:13Z">15/06/2015</time> + <!-- Created <time datetime="2015-06-15T01:35:13Z" pubdate="pubdate">15/06/2015</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + ] + rpcbug:hook_proxy:262: format hook `format' returned: ['\n\n\n\n\nRPC Bug\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n

    Hello, world!

    \n\n

    Page causing the error : foo

    \n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n\n\n\n\n\n
    \n\n
    \n\n\n\n'] + rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [ + + + + <!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>RPC Bug</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="style.css" type="text/css" /> + + <link rel="stylesheet" href="local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=index" /> + + + + + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + </span> + <span class="title"> + RPC Bug + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=index" rel="nofollow">Edit</a></li> + + + <li><a href="./recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>Hello, world!</p> + + <p>Page causing the error : <a href="./foo/">foo</a></p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + + + + + + <div class="pagedate"> + Last edited <time datetime="2015-06-15T01:35:13Z">15/06/2015</time> + <!-- Created <time datetime="2015-06-15T01:35:13Z" pubdate="pubdate">15/06/2015</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + + + + ] + rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki... + rpcbug:handle_rpc:199: received procedure call from ikiwiki: [formatpagesandboxcontent<!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>sandbox</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../style.css" type="text/css" /> + + <link rel="stylesheet" href="../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=sandbox" /> + + + + + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../">RPC Bug</a>/ + + </span> + <span class="title"> + sandbox + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=sandbox" rel="nofollow">Edit</a></li> + + + <li><a href="../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>This is the SandBox, a page anyone can edit to learn how to use the wiki.</p> + + <hr /> + + <p>Here's a paragraph.</p> + + <p>Here's another one with <em>emphasised</em> text.</p> + + <h1>Header</h1> + + <h2>Subheader</h2> + + <blockquote><p>This is a blockquote.</p> + + <p>This is the first level of quoting.</p> + + <blockquote><p>This is nested blockquote.</p></blockquote> + + <p>Back to the first level.</p></blockquote> + + <p>Numbered list</p> + + <ol> + <li>First item.</li> + <li>Another.</li> + <li>And another..</li> + </ol> + + + <p>Bulleted list</p> + + <ul> + <li><em>item</em></li> + <li>item</li> + </ul> + + + <p><a href="../ikiwiki/wikilink/">WikiLink</a></p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../ikiwiki/wikilink/">ikiwiki/wikilink</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + ] + rpcbug:hook_proxy:262: format hook `format' returned: ['\n\n\n\n\nsandbox\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n

    This is the SandBox, a page anyone can edit to learn how to use the wiki.

    \n\n
    \n\n

    Here\'s a paragraph.

    \n\n

    Here\'s another one with emphasised text.

    \n\n

    Header

    \n\n

    Subheader

    \n\n

    This is a blockquote.

    \n\n

    This is the first level of quoting.

    \n\n

    This is nested blockquote.

    \n\n

    Back to the first level.

    \n\n

    Numbered list

    \n\n
      \n
    1. First item.
    2. \n
    3. Another.
    4. \n
    5. And another..
    6. \n
    \n\n\n

    Bulleted list

    \n\n
      \n
    • item
    • \n
    • item
    • \n
    \n\n\n

    WikiLink

    \n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n\n\n\n\n\n
    \n\n
    \n\n\n\n'] + rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [ + + + + <!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>sandbox</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../style.css" type="text/css" /> + + <link rel="stylesheet" href="../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=sandbox" /> + + + + + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../">RPC Bug</a>/ + + </span> + <span class="title"> + sandbox + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=sandbox" rel="nofollow">Edit</a></li> + + + <li><a href="../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>This is the SandBox, a page anyone can edit to learn how to use the wiki.</p> + + <hr /> + + <p>Here's a paragraph.</p> + + <p>Here's another one with <em>emphasised</em> text.</p> + + <h1>Header</h1> + + <h2>Subheader</h2> + + <blockquote><p>This is a blockquote.</p> + + <p>This is the first level of quoting.</p> + + <blockquote><p>This is nested blockquote.</p></blockquote> + + <p>Back to the first level.</p></blockquote> + + <p>Numbered list</p> + + <ol> + <li>First item.</li> + <li>Another.</li> + <li>And another..</li> + </ol> + + + <p>Bulleted list</p> + + <ul> + <li><em>item</em></li> + <li>item</li> + </ul> + + + <p><a href="../ikiwiki/wikilink/">WikiLink</a></p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../ikiwiki/wikilink/">ikiwiki/wikilink</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + + + + ] + rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki... + rpcbug:handle_rpc:199: received procedure call from ikiwiki: [formatpageikiwikicontent<!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>ikiwiki</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../style.css" type="text/css" /> + + <link rel="stylesheet" href="../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../">RPC Bug</a>/ + + </span> + <span class="title"> + ikiwiki + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki" rel="nofollow">Edit</a></li> + + + <li><a href="../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>This wiki is powered by <a href="http://ikiwiki.info/">ikiwiki</a>.</p> + + <p>Some documentation on using ikiwiki:</p> + + <ul> + <li><a href="./formatting/">formatting</a></li> + <li><a href="./wikilink/">wikilink</a></li> + <li><a href="./subpage/">subpage</a></li> + <li><a href="./pagespec/">pagespec</a></li> + <li><a href="./directive/">directive</a></li> + <li><a href="./markdown/">markdown</a></li> + <li><a href="./openid/">openid</a></li> + <li><a href="./searching/">searching</a></li> + <li><a href="../templates/">templates</a></li> + </ul> + + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../templates/">templates</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + ] + rpcbug:hook_proxy:262: format hook `format' returned: ['\n\n\n\n\nikiwiki\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n'] + rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [ + + + + <!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>ikiwiki</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../style.css" type="text/css" /> + + <link rel="stylesheet" href="../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../">RPC Bug</a>/ + + </span> + <span class="title"> + ikiwiki + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki" rel="nofollow">Edit</a></li> + + + <li><a href="../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>This wiki is powered by <a href="http://ikiwiki.info/">ikiwiki</a>.</p> + + <p>Some documentation on using ikiwiki:</p> + + <ul> + <li><a href="./formatting/">formatting</a></li> + <li><a href="./wikilink/">wikilink</a></li> + <li><a href="./subpage/">subpage</a></li> + <li><a href="./pagespec/">pagespec</a></li> + <li><a href="./directive/">directive</a></li> + <li><a href="./markdown/">markdown</a></li> + <li><a href="./openid/">openid</a></li> + <li><a href="./searching/">searching</a></li> + <li><a href="../templates/">templates</a></li> + </ul> + + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../templates/">templates</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + + + + ] + rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki... + rpcbug:handle_rpc:199: received procedure call from ikiwiki: [formatpagetemplatescontent<!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>templates</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../style.css" type="text/css" /> + + <link rel="stylesheet" href="../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=templates" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../">RPC Bug</a>/ + + </span> + <span class="title"> + templates + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=templates" rel="nofollow">Edit</a></li> + + + <li><a href="../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p><a href="../ikiwiki/">Ikiwiki</a> uses many templates for many purposes. By editing its templates, + you can fully customise its appearance, and avoid duplicate content.</p> + + <p>Ikiwiki uses the HTML::Template module as its template engine. This + supports things like conditionals and loops in templates and is pretty + easy to learn. All you really need to know to modify templates is this:</p> + + <ul> + <li>To insert the value of a template variable, use <code>&lt;TMPL_VAR variable&gt;</code>.</li> + <li>To make a block of text conditional on a variable being set use + <code>&lt;TMPL_IF variable&gt;text&lt;/TMPL_IF&gt;</code>.</li> + <li>To use one block of text if a variable is set and a second if it's not, + use <code>&lt;TMPL_IF variable&gt;text&lt;TMPL_ELSE&gt;other text&lt;/TMPL_IF&gt;</code></li> + </ul> + + + <p>If the template does not contain a <code>templatebody</code> directive, the entire + source of the page is used for the template. This is deprecated.</p> + + <h2>template files</h2> + + <p>Template files are unlike template pages in that they have the extension + <code>.tmpl</code>. Template files are used extensively by Ikiwiki to generate html. + They can contain html that would not normally be allowed on a wiki page.</p> + + <p>Template files are located in <code>/usr/share/ikiwiki/templates</code> by default; + the <code>templatedir</code> setting can be used to make another directory be + searched first. Customised template files can also be placed inside the + "templates/" directory in your wiki's source -- files placed there override + ones in the <code>templatedir</code>.</p> + + <p>Here is a full list of the template files used:</p> + + <ul> + <li><p><code>page.tmpl</code> - Used for displaying all regular wiki pages. This is the + key template to customise to change the look and feel of Ikiwiki.</p></li> + <li><p><code>rsspage.tmpl</code> - Used for generating rss feeds for blogs.</p></li> + <li><code>rssitem.tmpl</code> - Used for generating individual items on rss feeds.</li> + <li><code>atompage.tmpl</code> - Used for generating atom feeds for blogs.</li> + <li><code>atomitem.tmpl</code> - Used for generating individual items on atom feeds.</li> + <li><code>inlinepage.tmpl</code> - Used for displaying a post in a blog.</li> + <li><code>archivepage.tmpl</code> - Used for listing a page in a blog archive page.</li> + <li><code>titlepage.tmpl</code> - Used for listing a page by title in a blog archive page.</li> + <li><code>microblog.tmpl</code> - Used for showing a microblogging post inline.</li> + <li><code>blogpost.tmpl</code> - Used for a form to add a post to a blog (and rss/atom links)</li> + <li><code>feedlink.tmpl</code> - Used to add rss/atom links if <code>blogpost.tmpl</code> is not used.</li> + <li><code>aggregatepost.tmpl</code> - Used by the aggregate plugin to create + a page for a post.</li> + <li><code>searchform.tmpl</code>, <code>googleform.tmpl</code> - Used by the search plugin + and google plugin to add search forms to wiki pages.</li> + <li><code>searchquery.tmpl</code> - This is a Omega template, used by the + search plugin.</li> + <li><code>comment.tmpl</code> - Used by the comments plugin to display a comment.</li> + <li><code>change.tmpl</code> - Used to create a page describing a change made to the wiki.</li> + <li><code>recentchanges.tmpl</code> - Used for listing a change on the RecentChanges page.</li> + <li><code>autoindex.tmpl</code> - Filled in by the autoindex plugin to make index pages.</li> + <li><code>autotag.tmpl</code> - Filled in by the tag plugin to make tag pages.</li> + <li><code>calendarmonth.tmpl</code>, <code>calendaryear.tmpl</code> - Used by ikiwiki-calendar to + make calendar archive pages.</li> + <li><code>trails.tmpl</code> - Used by the trail plugin to generate links on each page + that is a member of a trail.</li> + <li><code>notifyemail.tmpl</code> - Used by the notifymail plugin to generate mails about + changed pages.</li> + <li><code>editpage.tmpl</code>, <code>editconflict.tmpl</code>, <code>editcreationconflict.tmpl</code>, + <code>editfailedsave.tmpl</code>, <code>editpagegone.tmpl</code>, <code>pocreatepage.tmpl</code>, + <code>editcomment.tmpl</code> <code>commentmoderation.tmpl</code>, <code>renamesummary.tmpl</code>, + <code>passwordmail.tmpl</code>, <code>emailauth.tmpl,</code>login-selector.tmpl<code>, + </code>revert.tmpl` - Parts of ikiwiki's user interface; do not normally need + to be customised.</li> + </ul> + + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../ikiwiki/">ikiwiki</a> + + <a href="../ikiwiki/formatting/">ikiwiki/formatting</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2015-05-14T01:15:08Z">14/05/2015</time> + <!-- Created <time datetime="2015-05-14T01:15:08Z" pubdate="pubdate">14/05/2015</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + ] + rpcbug:hook_proxy:262: format hook `format' returned: ['\n\n\n\n\ntemplates\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n

    Ikiwiki uses many templates for many purposes. By editing its templates,\nyou can fully customise its appearance, and avoid duplicate content.

    \n\n

    Ikiwiki uses the HTML::Template module as its template engine. This\nsupports things like conditionals and loops in templates and is pretty\neasy to learn. All you really need to know to modify templates is this:

    \n\n
      \n
    • To insert the value of a template variable, use <TMPL_VAR variable>.
    • \n
    • To make a block of text conditional on a variable being set use\n<TMPL_IF variable>text</TMPL_IF>.
    • \n
    • To use one block of text if a variable is set and a second if it\'s not,\nuse <TMPL_IF variable>text<TMPL_ELSE>other text</TMPL_IF>
    • \n
    \n\n\n

    If the template does not contain a templatebody directive, the entire\nsource of the page is used for the template. This is deprecated.

    \n\n

    template files

    \n\n

    Template files are unlike template pages in that they have the extension\n.tmpl. Template files are used extensively by Ikiwiki to generate html.\nThey can contain html that would not normally be allowed on a wiki page.

    \n\n

    Template files are located in /usr/share/ikiwiki/templates by default;\nthe templatedir setting can be used to make another directory be\nsearched first. Customised template files can also be placed inside the\n"templates/" directory in your wiki\'s source -- files placed there override\nones in the templatedir.

    \n\n

    Here is a full list of the template files used:

    \n\n
      \n
    • page.tmpl - Used for displaying all regular wiki pages. This is the\nkey template to customise to change the look and feel of Ikiwiki.

    • \n
    • rsspage.tmpl - Used for generating rss feeds for blogs.

    • \n
    • rssitem.tmpl - Used for generating individual items on rss feeds.
    • \n
    • atompage.tmpl - Used for generating atom feeds for blogs.
    • \n
    • atomitem.tmpl - Used for generating individual items on atom feeds.
    • \n
    • inlinepage.tmpl - Used for displaying a post in a blog.
    • \n
    • archivepage.tmpl - Used for listing a page in a blog archive page.
    • \n
    • titlepage.tmpl - Used for listing a page by title in a blog archive page.
    • \n
    • microblog.tmpl - Used for showing a microblogging post inline.
    • \n
    • blogpost.tmpl - Used for a form to add a post to a blog (and rss/atom links)
    • \n
    • feedlink.tmpl - Used to add rss/atom links if blogpost.tmpl is not used.
    • \n
    • aggregatepost.tmpl - Used by the aggregate plugin to create\na page for a post.
    • \n
    • searchform.tmpl, googleform.tmpl - Used by the search plugin\nand google plugin to add search forms to wiki pages.
    • \n
    • searchquery.tmpl - This is a Omega template, used by the\nsearch plugin.
    • \n
    • comment.tmpl - Used by the comments plugin to display a comment.
    • \n
    • change.tmpl - Used to create a page describing a change made to the wiki.
    • \n
    • recentchanges.tmpl - Used for listing a change on the RecentChanges page.
    • \n
    • autoindex.tmpl - Filled in by the autoindex plugin to make index pages.
    • \n
    • autotag.tmpl - Filled in by the tag plugin to make tag pages.
    • \n
    • calendarmonth.tmpl, calendaryear.tmpl - Used by ikiwiki-calendar to\nmake calendar archive pages.
    • \n
    • trails.tmpl - Used by the trail plugin to generate links on each page\nthat is a member of a trail.
    • \n
    • notifyemail.tmpl - Used by the notifymail plugin to generate mails about\nchanged pages.
    • \n
    • editpage.tmpl, editconflict.tmpl, editcreationconflict.tmpl,\neditfailedsave.tmpl, editpagegone.tmpl, pocreatepage.tmpl,\neditcomment.tmpl commentmoderation.tmpl, renamesummary.tmpl,\npasswordmail.tmpl, emailauth.tmpl,login-selector.tmpl,\nrevert.tmpl` - Parts of ikiwiki\'s user interface; do not normally need\nto be customised.
    • \n
    \n\n\n
    \n\n\n\n\n\n\n\n
    \n\n\n\n
    \n\n\n\n'] + rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [ + + + + <!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>templates</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../style.css" type="text/css" /> + + <link rel="stylesheet" href="../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=templates" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../">RPC Bug</a>/ + + </span> + <span class="title"> + templates + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=templates" rel="nofollow">Edit</a></li> + + + <li><a href="../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p><a href="../ikiwiki/">Ikiwiki</a> uses many templates for many purposes. By editing its templates, + you can fully customise its appearance, and avoid duplicate content.</p> + + <p>Ikiwiki uses the HTML::Template module as its template engine. This + supports things like conditionals and loops in templates and is pretty + easy to learn. All you really need to know to modify templates is this:</p> + + <ul> + <li>To insert the value of a template variable, use <code>&lt;TMPL_VAR variable&gt;</code>.</li> + <li>To make a block of text conditional on a variable being set use + <code>&lt;TMPL_IF variable&gt;text&lt;/TMPL_IF&gt;</code>.</li> + <li>To use one block of text if a variable is set and a second if it's not, + use <code>&lt;TMPL_IF variable&gt;text&lt;TMPL_ELSE&gt;other text&lt;/TMPL_IF&gt;</code></li> + </ul> + + + <p>If the template does not contain a <code>templatebody</code> directive, the entire + source of the page is used for the template. This is deprecated.</p> + + <h2>template files</h2> + + <p>Template files are unlike template pages in that they have the extension + <code>.tmpl</code>. Template files are used extensively by Ikiwiki to generate html. + They can contain html that would not normally be allowed on a wiki page.</p> + + <p>Template files are located in <code>/usr/share/ikiwiki/templates</code> by default; + the <code>templatedir</code> setting can be used to make another directory be + searched first. Customised template files can also be placed inside the + "templates/" directory in your wiki's source -- files placed there override + ones in the <code>templatedir</code>.</p> + + <p>Here is a full list of the template files used:</p> + + <ul> + <li><p><code>page.tmpl</code> - Used for displaying all regular wiki pages. This is the + key template to customise to change the look and feel of Ikiwiki.</p></li> + <li><p><code>rsspage.tmpl</code> - Used for generating rss feeds for blogs.</p></li> + <li><code>rssitem.tmpl</code> - Used for generating individual items on rss feeds.</li> + <li><code>atompage.tmpl</code> - Used for generating atom feeds for blogs.</li> + <li><code>atomitem.tmpl</code> - Used for generating individual items on atom feeds.</li> + <li><code>inlinepage.tmpl</code> - Used for displaying a post in a blog.</li> + <li><code>archivepage.tmpl</code> - Used for listing a page in a blog archive page.</li> + <li><code>titlepage.tmpl</code> - Used for listing a page by title in a blog archive page.</li> + <li><code>microblog.tmpl</code> - Used for showing a microblogging post inline.</li> + <li><code>blogpost.tmpl</code> - Used for a form to add a post to a blog (and rss/atom links)</li> + <li><code>feedlink.tmpl</code> - Used to add rss/atom links if <code>blogpost.tmpl</code> is not used.</li> + <li><code>aggregatepost.tmpl</code> - Used by the aggregate plugin to create + a page for a post.</li> + <li><code>searchform.tmpl</code>, <code>googleform.tmpl</code> - Used by the search plugin + and google plugin to add search forms to wiki pages.</li> + <li><code>searchquery.tmpl</code> - This is a Omega template, used by the + search plugin.</li> + <li><code>comment.tmpl</code> - Used by the comments plugin to display a comment.</li> + <li><code>change.tmpl</code> - Used to create a page describing a change made to the wiki.</li> + <li><code>recentchanges.tmpl</code> - Used for listing a change on the RecentChanges page.</li> + <li><code>autoindex.tmpl</code> - Filled in by the autoindex plugin to make index pages.</li> + <li><code>autotag.tmpl</code> - Filled in by the tag plugin to make tag pages.</li> + <li><code>calendarmonth.tmpl</code>, <code>calendaryear.tmpl</code> - Used by ikiwiki-calendar to + make calendar archive pages.</li> + <li><code>trails.tmpl</code> - Used by the trail plugin to generate links on each page + that is a member of a trail.</li> + <li><code>notifyemail.tmpl</code> - Used by the notifymail plugin to generate mails about + changed pages.</li> + <li><code>editpage.tmpl</code>, <code>editconflict.tmpl</code>, <code>editcreationconflict.tmpl</code>, + <code>editfailedsave.tmpl</code>, <code>editpagegone.tmpl</code>, <code>pocreatepage.tmpl</code>, + <code>editcomment.tmpl</code> <code>commentmoderation.tmpl</code>, <code>renamesummary.tmpl</code>, + <code>passwordmail.tmpl</code>, <code>emailauth.tmpl,</code>login-selector.tmpl<code>, + </code>revert.tmpl` - Parts of ikiwiki's user interface; do not normally need + to be customised.</li> + </ul> + + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../ikiwiki/">ikiwiki</a> + + <a href="../ikiwiki/formatting/">ikiwiki/formatting</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2015-05-14T01:15:08Z">14/05/2015</time> + <!-- Created <time datetime="2015-05-14T01:15:08Z" pubdate="pubdate">14/05/2015</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + + + + ] + rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki... + rpcbug:handle_rpc:199: received procedure call from ikiwiki: [formatpagerecentchangescontent<!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>RecentChanges</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../style.css" type="text/css" /> + + <link rel="stylesheet" href="../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=recentchanges" /> + + + + + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../">RPC Bug</a>/ + + </span> + <span class="title"> + RecentChanges + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=recentchanges" rel="nofollow">Edit</a></li> + + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>Recent changes to this wiki:</p> + + <div class="feedlink"> + + + </div> + + <div class="recentchanges"> + + + + + + + + + + <div id="change-b4ba34a8edd1b97989965af69eddac050bc0a8ba" class="metadata"> + <span class="desc"><br />Changed pages:</span> + <span class="pagelinks"> + + + + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=foo" rel="nofollow">foo</a> + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=plugins%2Frpcbug" rel="nofollow">plugins/rpcbug</a> + + </span> + <span class="desc"><br />Changed by:</span> + <span class="committer"> + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=spalax" rel="nofollow">spalax</a> + + </span> + <span class="desc"><br />Commit type:</span> + <span class="committype">git</span> + <span class="desc"><br />Date:</span> + <span class="changedate"><time datetime="2015-06-28T18:08:33Z">20:08:33 28/06/2015</time></span> + <span class="desc"><br /></span> + <span class="revert"> + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=revert&amp;rev=b4ba34a8edd1b97989965af69eddac050bc0a8ba" title="revert" rel="nofollow"><img src="../wikiicons/revert.png" alt="revert" /></a> + </span> + </div> + <div class="changelog"> + + + Still debugging<br /> + + + </div> + + + + + + + + + + + + + + <div id="change-203e0121761fc8ec953cd24821291f45afc0b334" class="metadata"> + <span class="desc"><br />Changed pages:</span> + <span class="pagelinks"> + + + + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=plugins%2Frpcbug" rel="nofollow">plugins/rpcbug</a> + + </span> + <span class="desc"><br />Changed by:</span> + <span class="committer"> + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=spalax" rel="nofollow">spalax</a> + + </span> + <span class="desc"><br />Commit type:</span> + <span class="committype">git</span> + <span class="desc"><br />Date:</span> + <span class="changedate"><time datetime="2015-06-15T01:51:08Z">03:51:08 15/06/2015</time></span> + <span class="desc"><br /></span> + <span class="revert"> + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=revert&amp;rev=203e0121761fc8ec953cd24821291f45afc0b334" title="revert" rel="nofollow"><img src="../wikiicons/revert.png" alt="revert" /></a> + </span> + </div> + <div class="changelog"> + + + update<br /> + + + </div> + + + + + + + + + + + + + + <div id="change-8ef7576b628a88b2b3e974e202a16bbeb2251354" class="metadata"> + <span class="desc"><br />Changed pages:</span> + <span class="pagelinks"> + + + + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=plugins%2Frpcbug" rel="nofollow">plugins/rpcbug</a> + + </span> + <span class="desc"><br />Changed by:</span> + <span class="committer"> + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=spalax" rel="nofollow">spalax</a> + + </span> + <span class="desc"><br />Commit type:</span> + <span class="committype">git</span> + <span class="desc"><br />Date:</span> + <span class="changedate"><time datetime="2015-06-15T01:47:52Z">03:47:52 15/06/2015</time></span> + <span class="desc"><br /></span> + <span class="revert"> + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=revert&amp;rev=8ef7576b628a88b2b3e974e202a16bbeb2251354" title="revert" rel="nofollow"><img src="../wikiicons/revert.png" alt="revert" /></a> + </span> + </div> + <div class="changelog"> + + + update<br /> + + + </div> + + + + + + + + + + + + + + <div id="change-9444f53d5b4960dd2560b85d9e8a3d2a77d6db02" class="metadata"> + <span class="desc"><br />Changed pages:</span> + <span class="pagelinks"> + + + + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=README.md" rel="nofollow">README.md</a> + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=foo" rel="nofollow">foo</a> + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=index" rel="nofollow">index</a> + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=plugins%2Frpcbug" rel="nofollow">plugins/rpcbug</a> + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=wiki.setup" rel="nofollow">wiki.setup</a> + + </span> + <span class="desc"><br />Changed by:</span> + <span class="committer"> + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=spalax" rel="nofollow">spalax</a> + + </span> + <span class="desc"><br />Commit type:</span> + <span class="committype">git</span> + <span class="desc"><br />Date:</span> + <span class="changedate"><time datetime="2015-06-15T01:35:13Z">03:35:13 15/06/2015</time></span> + <span class="desc"><br /></span> + <span class="revert"> + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=revert&amp;rev=9444f53d5b4960dd2560b85d9e8a3d2a77d6db02" title="revert" rel="nofollow"><img src="../wikiicons/revert.png" alt="revert" /></a> + </span> + </div> + <div class="changelog"> + + + Initial commit<br /> + + + </div> + + + + + + + + + + + + + + <div id="change-35009e6655542601b4570fd4d328f6db1d81409d" class="metadata"> + <span class="desc"><br />Changed pages:</span> + <span class="pagelinks"> + + + + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=.gitignore" rel="nofollow">.gitignore</a> + + </span> + <span class="desc"><br />Changed by:</span> + <span class="committer"> + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=spalax" rel="nofollow">spalax</a> + + </span> + <span class="desc"><br />Commit type:</span> + <span class="committype">git</span> + <span class="desc"><br />Date:</span> + <span class="changedate"><time datetime="2015-06-15T00:56:18Z">02:56:18 15/06/2015</time></span> + <span class="desc"><br /></span> + <span class="revert"> + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=revert&amp;rev=35009e6655542601b4570fd4d328f6db1d81409d" title="revert" rel="nofollow"><img src="../wikiicons/revert.png" alt="revert" /></a> + </span> + </div> + <div class="changelog"> + + + initial commit<br /> + + + </div> + + + + + </div> + + + + + + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + ] + rpcbug:hook_proxy:262: format hook `format' returned: ['\n\n\n\n\nRecentChanges\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n

    Recent changes to this wiki:

    \n\n\n\n
    \n\n\n\n\n\n\n\n\n\n\n
    \n\n\nStill debugging
    \n\n\n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n\n\nupdate
    \n\n\n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n\n\nupdate
    \n\n\n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n\n\nInitial commit
    \n\n\n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n\n\ninitial commit
    \n\n\n
    \n\n\n\n\n
    \n\n\n\n\n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n\n\n\n\n\n
    \n\n
    \n\n\n\n'] + rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [ + + + + <!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>RecentChanges</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../style.css" type="text/css" /> + + <link rel="stylesheet" href="../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=recentchanges" /> + + + + + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../">RPC Bug</a>/ + + </span> + <span class="title"> + RecentChanges + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=recentchanges" rel="nofollow">Edit</a></li> + + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>Recent changes to this wiki:</p> + + <div class="feedlink"> + + + </div> + + <div class="recentchanges"> + + + + + + + + + + <div id="change-b4ba34a8edd1b97989965af69eddac050bc0a8ba" class="metadata"> + <span class="desc"><br />Changed pages:</span> + <span class="pagelinks"> + + + + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=foo" rel="nofollow">foo</a> + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=plugins%2Frpcbug" rel="nofollow">plugins/rpcbug</a> + + </span> + <span class="desc"><br />Changed by:</span> + <span class="committer"> + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=spalax" rel="nofollow">spalax</a> + + </span> + <span class="desc"><br />Commit type:</span> + <span class="committype">git</span> + <span class="desc"><br />Date:</span> + <span class="changedate"><time datetime="2015-06-28T18:08:33Z">20:08:33 28/06/2015</time></span> + <span class="desc"><br /></span> + <span class="revert"> + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=revert&amp;rev=b4ba34a8edd1b97989965af69eddac050bc0a8ba" title="revert" rel="nofollow"><img src="../wikiicons/revert.png" alt="revert" /></a> + </span> + </div> + <div class="changelog"> + + + Still debugging<br /> + + + </div> + + + + + + + + + + + + + + <div id="change-203e0121761fc8ec953cd24821291f45afc0b334" class="metadata"> + <span class="desc"><br />Changed pages:</span> + <span class="pagelinks"> + + + + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=plugins%2Frpcbug" rel="nofollow">plugins/rpcbug</a> + + </span> + <span class="desc"><br />Changed by:</span> + <span class="committer"> + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=spalax" rel="nofollow">spalax</a> + + </span> + <span class="desc"><br />Commit type:</span> + <span class="committype">git</span> + <span class="desc"><br />Date:</span> + <span class="changedate"><time datetime="2015-06-15T01:51:08Z">03:51:08 15/06/2015</time></span> + <span class="desc"><br /></span> + <span class="revert"> + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=revert&amp;rev=203e0121761fc8ec953cd24821291f45afc0b334" title="revert" rel="nofollow"><img src="../wikiicons/revert.png" alt="revert" /></a> + </span> + </div> + <div class="changelog"> + + + update<br /> + + + </div> + + + + + + + + + + + + + + <div id="change-8ef7576b628a88b2b3e974e202a16bbeb2251354" class="metadata"> + <span class="desc"><br />Changed pages:</span> + <span class="pagelinks"> + + + + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=plugins%2Frpcbug" rel="nofollow">plugins/rpcbug</a> + + </span> + <span class="desc"><br />Changed by:</span> + <span class="committer"> + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=spalax" rel="nofollow">spalax</a> + + </span> + <span class="desc"><br />Commit type:</span> + <span class="committype">git</span> + <span class="desc"><br />Date:</span> + <span class="changedate"><time datetime="2015-06-15T01:47:52Z">03:47:52 15/06/2015</time></span> + <span class="desc"><br /></span> + <span class="revert"> + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=revert&amp;rev=8ef7576b628a88b2b3e974e202a16bbeb2251354" title="revert" rel="nofollow"><img src="../wikiicons/revert.png" alt="revert" /></a> + </span> + </div> + <div class="changelog"> + + + update<br /> + + + </div> + + + + + + + + + + + + + + <div id="change-9444f53d5b4960dd2560b85d9e8a3d2a77d6db02" class="metadata"> + <span class="desc"><br />Changed pages:</span> + <span class="pagelinks"> + + + + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=README.md" rel="nofollow">README.md</a> + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=foo" rel="nofollow">foo</a> + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=index" rel="nofollow">index</a> + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=plugins%2Frpcbug" rel="nofollow">plugins/rpcbug</a> + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=wiki.setup" rel="nofollow">wiki.setup</a> + + </span> + <span class="desc"><br />Changed by:</span> + <span class="committer"> + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=spalax" rel="nofollow">spalax</a> + + </span> + <span class="desc"><br />Commit type:</span> + <span class="committype">git</span> + <span class="desc"><br />Date:</span> + <span class="changedate"><time datetime="2015-06-15T01:35:13Z">03:35:13 15/06/2015</time></span> + <span class="desc"><br /></span> + <span class="revert"> + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=revert&amp;rev=9444f53d5b4960dd2560b85d9e8a3d2a77d6db02" title="revert" rel="nofollow"><img src="../wikiicons/revert.png" alt="revert" /></a> + </span> + </div> + <div class="changelog"> + + + Initial commit<br /> + + + </div> + + + + + + + + + + + + + + <div id="change-35009e6655542601b4570fd4d328f6db1d81409d" class="metadata"> + <span class="desc"><br />Changed pages:</span> + <span class="pagelinks"> + + + + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=.gitignore" rel="nofollow">.gitignore</a> + + </span> + <span class="desc"><br />Changed by:</span> + <span class="committer"> + + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=goto&amp;page=spalax" rel="nofollow">spalax</a> + + </span> + <span class="desc"><br />Commit type:</span> + <span class="committype">git</span> + <span class="desc"><br />Date:</span> + <span class="changedate"><time datetime="2015-06-15T00:56:18Z">02:56:18 15/06/2015</time></span> + <span class="desc"><br /></span> + <span class="revert"> + <a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=revert&amp;rev=35009e6655542601b4570fd4d328f6db1d81409d" title="revert" rel="nofollow"><img src="../wikiicons/revert.png" alt="revert" /></a> + </span> + </div> + <div class="changelog"> + + + initial commit<br /> + + + </div> + + + + + </div> + + + + + + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + + + + ] + rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki... + rpcbug:handle_rpc:199: received procedure call from ikiwiki: [formatpageshortcutscontent<!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>shortcuts</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../style.css" type="text/css" /> + + <link rel="stylesheet" href="../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=shortcuts" /> + + + + + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../">RPC Bug</a>/ + + </span> + <span class="title"> + shortcuts + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=shortcuts" rel="nofollow">Edit</a></li> + + + <li><a href="../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>This wiki has shortcuts <strong>disabled</strong>.</p> + + <p>Some examples of using shortcuts include:</p> + + <pre><code>\[[!google foo]] + \[[!wikipedia War_of_1812]] + \[[!debbug 12345]] + Check the \[[!google ikiwiki desc="google search for %s"]]. + </code></pre> + + <p>This page controls what shortcut links the wiki supports.</p> + + <ul> + <li>\[[!shortcut name=google url="https://encrypted.google.com/search?q=%s"]]</li> + <li>\[[!shortcut name=archive url="http://web.archive.org/*/%S"]]</li> + <li>\[[!shortcut name=gmap url="https://maps.google.com/maps?q=%s"]]</li> + <li>\[[!shortcut name=gmsg url="https://groups.google.com/groups?selm=%s"]]</li> + <li>\[[!shortcut name=wikipedia url="https://en.wikipedia.org/wiki/%W"]]</li> + <li>\[[!shortcut name=wikitravel url="https://wikitravel.org/en/%s"]]</li> + <li>\[[!shortcut name=wiktionary url="https://en.wiktionary.org/wiki/%s"]]</li> + <li>\[[!shortcut name=debbug url="http://bugs.debian.org/%S" desc="Debian bug #%s"]]</li> + <li>\[[!shortcut name=deblist url="https://lists.debian.org/debian-%s" desc="debian-%s@lists.debian.org"]]</li> + <li>\[[!shortcut name=debpkg url="http://packages.debian.org/%s"]]</li> + <li>\[[!shortcut name=debpkgsid url="http://packages.debian.org/sid/%s"]]</li> + <li>\[[!shortcut name=debpts url="http://packages.qa.debian.org/%s"]]</li> + <li>\[[!shortcut name=debmsg url="https://lists.debian.org/msgid-search/%s"]]</li> + <li>\[[!shortcut name=debrt url="https://rt.debian.org/Ticket/Display.html?id=%s"]]</li> + <li>\[[!shortcut name=debss url="http://snapshot.debian.org/package/%s/"]] + + <ul> + <li>Usage: <code>\[[!debss package]]</code> or <code>\[[!debss package/version]]</code>. See <a href="http://snapshot.debian.org/">http://snapshot.debian.org/</a> for details.</li> + </ul> + </li> + <li>\[[!shortcut name=debwiki url="https://wiki.debian.org/%S"]]</li> + <li>\[[!shortcut name=fdobug url="https://bugs.freedesktop.org/show_bug.cgi?id=%s" desc="freedesktop.org bug #%s"]]</li> + <li>\[[!shortcut name=fdolist url="http://lists.freedesktop.org/mailman/listinfo/%s" desc="%s@lists.freedesktop.org"]]</li> + <li>\[[!shortcut name=gnomebug url="https://bugzilla.gnome.org/show_bug.cgi?id=%s" desc="GNOME bug #%s"]]</li> + <li>\[[!shortcut name=linuxbug url="https://bugzilla.kernel.org/show_bug.cgi?id=%s" desc="Linux bug #%s"]]</li> + <li>\[[!shortcut name=mozbug url="https://bugzilla.mozilla.org/show_bug.cgi?id=%s" desc="Mozilla bug #%s"]]</li> + <li>\[[!shortcut name=gnulist url="https://lists.gnu.org/mailman/listinfo/%s" desc="%s@gnu.org"]]</li> + <li>\[[!shortcut name=marcmsg url="http://marc.info/?i=%s"]]</li> + <li>\[[!shortcut name=marclist url="http://marc.info/?l=%s"]]</li> + <li>\[[!shortcut name=gmane url="http://dir.gmane.org/gmane.%s" desc="gmane.%s"]]</li> + <li>\[[!shortcut name=gmanemsg url="http://mid.gmane.org/%s"]]</li> + <li>\[[!shortcut name=cpan url="http://search.cpan.org/search?mode=dist&amp;query=%s"]]</li> + <li>\[[!shortcut name=ctan url="http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=%s"]]</li> + <li>\[[!shortcut name=hoogle url="http://haskell.org/hoogle/?q=%s"]]</li> + <li>\[[!shortcut name=iki url="http://ikiwiki.info/%S/"]]</li> + <li>\[[!shortcut name=ljuser url="http://%s.livejournal.com/"]]</li> + <li>\[[!shortcut name=rfc url="https://www.ietf.org/rfc/rfc%s.txt" desc="RFC %s"]]</li> + <li>\[[!shortcut name=c2 url="http://c2.com/cgi/wiki?%s"]]</li> + <li>\[[!shortcut name=meatballwiki url="http://www.usemod.com/cgi-bin/mb.pl?%s"]]</li> + <li>\[[!shortcut name=emacswiki url="http://www.emacswiki.org/cgi-bin/wiki/%s"]]</li> + <li>\[[!shortcut name=haskellwiki url="http://haskell.org/haskellwiki/%s"]]</li> + <li>\[[!shortcut name=dict url="http://www.dict.org/bin/Dict?Form=Dict1&amp;Strategy=<em>&amp;Database=</em>&amp;Query=%s"]]</li> + <li>\[[!shortcut name=imdb url="http://imdb.com/find?q=%s"]]</li> + <li>\[[!shortcut name=gpg url="http://pgpkeys.mit.edu:11371/pks/lookup?op=vindex&amp;exact=on&amp;search=0x%s"]]</li> + <li>\[[!shortcut name=perldoc url="http://perldoc.perl.org/search.html?q=%s"]]</li> + <li>\[[!shortcut name=whois url="http://reports.internic.net/cgi/whois?whois_nic=%s&amp;type=domain"]]</li> + <li>\[[!shortcut name=cve url="https://cve.mitre.org/cgi-bin/cvename.cgi?name=%s"]]</li> + <li>\[[!shortcut name=flickr url="https://secure.flickr.com/photos/%s"]]</li> + <li>\[[!shortcut name=man url="http://manpages.debian.org/%s"]]</li> + <li>\[[!shortcut name=ohloh url="https://www.ohloh.net/p/%s"]]</li> + <li>\[[!shortcut name=cpanrt url="https://rt.cpan.org/Ticket/Display.html?id=%s" desc="CPAN RT#%s"]]</li> + <li>\[[!shortcut name=novellbug url="https://bugzilla.novell.com/show_bug.cgi?id=%s" desc="bug %s"]]</li> + <li>\[[!shortcut name=ubupkg url="http://packages.ubuntu.com/%s"]]</li> + <li>\[[!shortcut name=mozillazinekb url="http://kb.mozillazine.org/%s"]]</li> + <li>\[[!shortcut name=freebsdwiki url="http://wiki.freebsd.org/%s"]]</li> + <li>\[[!shortcut name=hackage url="http://hackage.haskell.org/package/%s"]]</li> + <li>\[[!shortcut name=pkgsrc url="http://pkgsrc.se/%S"]]</li> + <li>\[[!shortcut name=doi url="http://dx.doi.org/%s" desc="doi:%s"]]</li> + <li>\[[!shortcut name=arxiv url="http://arxiv.org/abs/%s" desc="arXiv:%s"]]</li> + </ul> + + + <p>To add a new shortcut, use the <code>shortcut</code> + <a href="../ikiwiki/directive/">directive</a>. In the url, "%s" is replaced with the + text passed to the named shortcut, after \[[!wikipedia url_encoding]] + it, and '%S' is replaced with the raw, non-encoded text. + Additionally, <code>%W</code> is replaced with the text encoded just right for + Wikipedia. The optional <code>desc</code> parameter controls the description of + the link.</p> + + <p>Remember that the <code>name</code> you give the shortcut will become a new + <a href="../ikiwiki/directive/">directive</a>. Avoid using a <code>name</code> that conflicts + with an existing directive. These directives also accept a <code>desc</code> + parameter that will override the one provided at definition time.</p> + + <p>If you come up with a shortcut that you think others might find useful, + consider contributing it to the <a href="http://ikiwiki.info/shortcuts/">shortcuts page on the ikiwiki + wiki</a>, so that future versions of + ikiwiki will include your shortcut in the standard underlay.</p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../ikiwiki/formatting/">ikiwiki/formatting</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-26T22:55:09Z">27/09/2014</time> + <!-- Created <time datetime="2014-09-26T22:55:09Z" pubdate="pubdate">27/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + ] + rpcbug:hook_proxy:262: format hook `format' returned: ['\n\n\n\n\nshortcuts\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n

    This wiki has shortcuts disabled.

    \n\n

    Some examples of using shortcuts include:

    \n\n
    \[[!google  foo]]\n\[[!wikipedia  War_of_1812]]\n\[[!debbug  12345]]\nCheck the \[[!google  ikiwiki desc="google search for %s"]].\n
    \n\n

    This page controls what shortcut links the wiki supports.

    \n\n
      \n
    • \[[!shortcut name=google url="https://encrypted.google.com/search?q=%s"]]
    • \n
    • \[[!shortcut name=archive url="http://web.archive.org/*/%S"]]
    • \n
    • \[[!shortcut name=gmap url="https://maps.google.com/maps?q=%s"]]
    • \n
    • \[[!shortcut name=gmsg url="https://groups.google.com/groups?selm=%s"]]
    • \n
    • \[[!shortcut name=wikipedia url="https://en.wikipedia.org/wiki/%W"]]
    • \n
    • \[[!shortcut name=wikitravel url="https://wikitravel.org/en/%s"]]
    • \n
    • \[[!shortcut name=wiktionary url="https://en.wiktionary.org/wiki/%s"]]
    • \n
    • \[[!shortcut name=debbug url="http://bugs.debian.org/%S" desc="Debian bug #%s"]]
    • \n
    • \[[!shortcut name=deblist url="https://lists.debian.org/debian-%s" desc="debian-%s@lists.debian.org"]]
    • \n
    • \[[!shortcut name=debpkg url="http://packages.debian.org/%s"]]
    • \n
    • \[[!shortcut name=debpkgsid url="http://packages.debian.org/sid/%s"]]
    • \n
    • \[[!shortcut name=debpts url="http://packages.qa.debian.org/%s"]]
    • \n
    • \[[!shortcut name=debmsg url="https://lists.debian.org/msgid-search/%s"]]
    • \n
    • \[[!shortcut name=debrt url="https://rt.debian.org/Ticket/Display.html?id=%s"]]
    • \n
    • \[[!shortcut name=debss url="http://snapshot.debian.org/package/%s/"]]\n\n\n
    • \n
    • \[[!shortcut name=debwiki url="https://wiki.debian.org/%S"]]
    • \n
    • \[[!shortcut name=fdobug url="https://bugs.freedesktop.org/show_bug.cgi?id=%s" desc="freedesktop.org bug #%s"]]
    • \n
    • \[[!shortcut name=fdolist url="http://lists.freedesktop.org/mailman/listinfo/%s" desc="%s@lists.freedesktop.org"]]
    • \n
    • \[[!shortcut name=gnomebug url="https://bugzilla.gnome.org/show_bug.cgi?id=%s" desc="GNOME bug #%s"]]
    • \n
    • \[[!shortcut name=linuxbug url="https://bugzilla.kernel.org/show_bug.cgi?id=%s" desc="Linux bug #%s"]]
    • \n
    • \[[!shortcut name=mozbug url="https://bugzilla.mozilla.org/show_bug.cgi?id=%s" desc="Mozilla bug #%s"]]
    • \n
    • \[[!shortcut name=gnulist url="https://lists.gnu.org/mailman/listinfo/%s" desc="%s@gnu.org"]]
    • \n
    • \[[!shortcut name=marcmsg url="http://marc.info/?i=%s"]]
    • \n
    • \[[!shortcut name=marclist url="http://marc.info/?l=%s"]]
    • \n
    • \[[!shortcut name=gmane url="http://dir.gmane.org/gmane.%s" desc="gmane.%s"]]
    • \n
    • \[[!shortcut name=gmanemsg url="http://mid.gmane.org/%s"]]
    • \n
    • \[[!shortcut name=cpan url="http://search.cpan.org/search?mode=dist&query=%s"]]
    • \n
    • \[[!shortcut name=ctan url="http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=%s"]]
    • \n
    • \[[!shortcut name=hoogle url="http://haskell.org/hoogle/?q=%s"]]
    • \n
    • \[[!shortcut name=iki url="http://ikiwiki.info/%S/"]]
    • \n
    • \[[!shortcut name=ljuser url="http://%s.livejournal.com/"]]
    • \n
    • \[[!shortcut name=rfc url="https://www.ietf.org/rfc/rfc%s.txt" desc="RFC %s"]]
    • \n
    • \[[!shortcut name=c2 url="http://c2.com/cgi/wiki?%s"]]
    • \n
    • \[[!shortcut name=meatballwiki url="http://www.usemod.com/cgi-bin/mb.pl?%s"]]
    • \n
    • \[[!shortcut name=emacswiki url="http://www.emacswiki.org/cgi-bin/wiki/%s"]]
    • \n
    • \[[!shortcut name=haskellwiki url="http://haskell.org/haskellwiki/%s"]]
    • \n
    • \[[!shortcut name=dict url="http://www.dict.org/bin/Dict?Form=Dict1&Strategy=&Database=&Query=%s"]]
    • \n
    • \[[!shortcut name=imdb url="http://imdb.com/find?q=%s"]]
    • \n
    • \[[!shortcut name=gpg url="http://pgpkeys.mit.edu:11371/pks/lookup?op=vindex&exact=on&search=0x%s"]]
    • \n
    • \[[!shortcut name=perldoc url="http://perldoc.perl.org/search.html?q=%s"]]
    • \n
    • \[[!shortcut name=whois url="http://reports.internic.net/cgi/whois?whois_nic=%s&type=domain"]]
    • \n
    • \[[!shortcut name=cve url="https://cve.mitre.org/cgi-bin/cvename.cgi?name=%s"]]
    • \n
    • \[[!shortcut name=flickr url="https://secure.flickr.com/photos/%s"]]
    • \n
    • \[[!shortcut name=man url="http://manpages.debian.org/%s"]]
    • \n
    • \[[!shortcut name=ohloh url="https://www.ohloh.net/p/%s"]]
    • \n
    • \[[!shortcut name=cpanrt url="https://rt.cpan.org/Ticket/Display.html?id=%s" desc="CPAN RT#%s"]]
    • \n
    • \[[!shortcut name=novellbug url="https://bugzilla.novell.com/show_bug.cgi?id=%s" desc="bug %s"]]
    • \n
    • \[[!shortcut name=ubupkg url="http://packages.ubuntu.com/%s"]]
    • \n
    • \[[!shortcut name=mozillazinekb url="http://kb.mozillazine.org/%s"]]
    • \n
    • \[[!shortcut name=freebsdwiki url="http://wiki.freebsd.org/%s"]]
    • \n
    • \[[!shortcut name=hackage url="http://hackage.haskell.org/package/%s"]]
    • \n
    • \[[!shortcut name=pkgsrc url="http://pkgsrc.se/%S"]]
    • \n
    • \[[!shortcut name=doi url="http://dx.doi.org/%s" desc="doi:%s"]]
    • \n
    • \[[!shortcut name=arxiv url="http://arxiv.org/abs/%s" desc="arXiv:%s"]]
    • \n
    \n\n\n

    To add a new shortcut, use the shortcut\ndirective. In the url, "%s" is replaced with the\ntext passed to the named shortcut, after \[[!wikipedia url_encoding]]\nit, and \'%S\' is replaced with the raw, non-encoded text.\nAdditionally, %W is replaced with the text encoded just right for\nWikipedia. The optional desc parameter controls the description of\nthe link.

    \n\n

    Remember that the name you give the shortcut will become a new\ndirective. Avoid using a name that conflicts\nwith an existing directive. These directives also accept a desc\nparameter that will override the one provided at definition time.

    \n\n

    If you come up with a shortcut that you think others might find useful,\nconsider contributing it to the shortcuts page on the ikiwiki\nwiki, so that future versions of\nikiwiki will include your shortcut in the standard underlay.

    \n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n\n\n\n\n\n
    \n\n
    \n\n\n\n'] + rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [ + + + + <!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>shortcuts</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../style.css" type="text/css" /> + + <link rel="stylesheet" href="../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=shortcuts" /> + + + + + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../">RPC Bug</a>/ + + </span> + <span class="title"> + shortcuts + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=shortcuts" rel="nofollow">Edit</a></li> + + + <li><a href="../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>This wiki has shortcuts <strong>disabled</strong>.</p> + + <p>Some examples of using shortcuts include:</p> + + <pre><code>\[[!google foo]] + \[[!wikipedia War_of_1812]] + \[[!debbug 12345]] + Check the \[[!google ikiwiki desc="google search for %s"]]. + </code></pre> + + <p>This page controls what shortcut links the wiki supports.</p> + + <ul> + <li>\[[!shortcut name=google url="https://encrypted.google.com/search?q=%s"]]</li> + <li>\[[!shortcut name=archive url="http://web.archive.org/*/%S"]]</li> + <li>\[[!shortcut name=gmap url="https://maps.google.com/maps?q=%s"]]</li> + <li>\[[!shortcut name=gmsg url="https://groups.google.com/groups?selm=%s"]]</li> + <li>\[[!shortcut name=wikipedia url="https://en.wikipedia.org/wiki/%W"]]</li> + <li>\[[!shortcut name=wikitravel url="https://wikitravel.org/en/%s"]]</li> + <li>\[[!shortcut name=wiktionary url="https://en.wiktionary.org/wiki/%s"]]</li> + <li>\[[!shortcut name=debbug url="http://bugs.debian.org/%S" desc="Debian bug #%s"]]</li> + <li>\[[!shortcut name=deblist url="https://lists.debian.org/debian-%s" desc="debian-%s@lists.debian.org"]]</li> + <li>\[[!shortcut name=debpkg url="http://packages.debian.org/%s"]]</li> + <li>\[[!shortcut name=debpkgsid url="http://packages.debian.org/sid/%s"]]</li> + <li>\[[!shortcut name=debpts url="http://packages.qa.debian.org/%s"]]</li> + <li>\[[!shortcut name=debmsg url="https://lists.debian.org/msgid-search/%s"]]</li> + <li>\[[!shortcut name=debrt url="https://rt.debian.org/Ticket/Display.html?id=%s"]]</li> + <li>\[[!shortcut name=debss url="http://snapshot.debian.org/package/%s/"]] + + <ul> + <li>Usage: <code>\[[!debss package]]</code> or <code>\[[!debss package/version]]</code>. See <a href="http://snapshot.debian.org/">http://snapshot.debian.org/</a> for details.</li> + </ul> + </li> + <li>\[[!shortcut name=debwiki url="https://wiki.debian.org/%S"]]</li> + <li>\[[!shortcut name=fdobug url="https://bugs.freedesktop.org/show_bug.cgi?id=%s" desc="freedesktop.org bug #%s"]]</li> + <li>\[[!shortcut name=fdolist url="http://lists.freedesktop.org/mailman/listinfo/%s" desc="%s@lists.freedesktop.org"]]</li> + <li>\[[!shortcut name=gnomebug url="https://bugzilla.gnome.org/show_bug.cgi?id=%s" desc="GNOME bug #%s"]]</li> + <li>\[[!shortcut name=linuxbug url="https://bugzilla.kernel.org/show_bug.cgi?id=%s" desc="Linux bug #%s"]]</li> + <li>\[[!shortcut name=mozbug url="https://bugzilla.mozilla.org/show_bug.cgi?id=%s" desc="Mozilla bug #%s"]]</li> + <li>\[[!shortcut name=gnulist url="https://lists.gnu.org/mailman/listinfo/%s" desc="%s@gnu.org"]]</li> + <li>\[[!shortcut name=marcmsg url="http://marc.info/?i=%s"]]</li> + <li>\[[!shortcut name=marclist url="http://marc.info/?l=%s"]]</li> + <li>\[[!shortcut name=gmane url="http://dir.gmane.org/gmane.%s" desc="gmane.%s"]]</li> + <li>\[[!shortcut name=gmanemsg url="http://mid.gmane.org/%s"]]</li> + <li>\[[!shortcut name=cpan url="http://search.cpan.org/search?mode=dist&amp;query=%s"]]</li> + <li>\[[!shortcut name=ctan url="http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=%s"]]</li> + <li>\[[!shortcut name=hoogle url="http://haskell.org/hoogle/?q=%s"]]</li> + <li>\[[!shortcut name=iki url="http://ikiwiki.info/%S/"]]</li> + <li>\[[!shortcut name=ljuser url="http://%s.livejournal.com/"]]</li> + <li>\[[!shortcut name=rfc url="https://www.ietf.org/rfc/rfc%s.txt" desc="RFC %s"]]</li> + <li>\[[!shortcut name=c2 url="http://c2.com/cgi/wiki?%s"]]</li> + <li>\[[!shortcut name=meatballwiki url="http://www.usemod.com/cgi-bin/mb.pl?%s"]]</li> + <li>\[[!shortcut name=emacswiki url="http://www.emacswiki.org/cgi-bin/wiki/%s"]]</li> + <li>\[[!shortcut name=haskellwiki url="http://haskell.org/haskellwiki/%s"]]</li> + <li>\[[!shortcut name=dict url="http://www.dict.org/bin/Dict?Form=Dict1&amp;Strategy=<em>&amp;Database=</em>&amp;Query=%s"]]</li> + <li>\[[!shortcut name=imdb url="http://imdb.com/find?q=%s"]]</li> + <li>\[[!shortcut name=gpg url="http://pgpkeys.mit.edu:11371/pks/lookup?op=vindex&amp;exact=on&amp;search=0x%s"]]</li> + <li>\[[!shortcut name=perldoc url="http://perldoc.perl.org/search.html?q=%s"]]</li> + <li>\[[!shortcut name=whois url="http://reports.internic.net/cgi/whois?whois_nic=%s&amp;type=domain"]]</li> + <li>\[[!shortcut name=cve url="https://cve.mitre.org/cgi-bin/cvename.cgi?name=%s"]]</li> + <li>\[[!shortcut name=flickr url="https://secure.flickr.com/photos/%s"]]</li> + <li>\[[!shortcut name=man url="http://manpages.debian.org/%s"]]</li> + <li>\[[!shortcut name=ohloh url="https://www.ohloh.net/p/%s"]]</li> + <li>\[[!shortcut name=cpanrt url="https://rt.cpan.org/Ticket/Display.html?id=%s" desc="CPAN RT#%s"]]</li> + <li>\[[!shortcut name=novellbug url="https://bugzilla.novell.com/show_bug.cgi?id=%s" desc="bug %s"]]</li> + <li>\[[!shortcut name=ubupkg url="http://packages.ubuntu.com/%s"]]</li> + <li>\[[!shortcut name=mozillazinekb url="http://kb.mozillazine.org/%s"]]</li> + <li>\[[!shortcut name=freebsdwiki url="http://wiki.freebsd.org/%s"]]</li> + <li>\[[!shortcut name=hackage url="http://hackage.haskell.org/package/%s"]]</li> + <li>\[[!shortcut name=pkgsrc url="http://pkgsrc.se/%S"]]</li> + <li>\[[!shortcut name=doi url="http://dx.doi.org/%s" desc="doi:%s"]]</li> + <li>\[[!shortcut name=arxiv url="http://arxiv.org/abs/%s" desc="arXiv:%s"]]</li> + </ul> + + + <p>To add a new shortcut, use the <code>shortcut</code> + <a href="../ikiwiki/directive/">directive</a>. In the url, "%s" is replaced with the + text passed to the named shortcut, after \[[!wikipedia url_encoding]] + it, and '%S' is replaced with the raw, non-encoded text. + Additionally, <code>%W</code> is replaced with the text encoded just right for + Wikipedia. The optional <code>desc</code> parameter controls the description of + the link.</p> + + <p>Remember that the <code>name</code> you give the shortcut will become a new + <a href="../ikiwiki/directive/">directive</a>. Avoid using a <code>name</code> that conflicts + with an existing directive. These directives also accept a <code>desc</code> + parameter that will override the one provided at definition time.</p> + + <p>If you come up with a shortcut that you think others might find useful, + consider contributing it to the <a href="http://ikiwiki.info/shortcuts/">shortcuts page on the ikiwiki + wiki</a>, so that future versions of + ikiwiki will include your shortcut in the standard underlay.</p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../ikiwiki/formatting/">ikiwiki/formatting</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-26T22:55:09Z">27/09/2014</time> + <!-- Created <time datetime="2014-09-26T22:55:09Z" pubdate="pubdate">27/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + + + + ] + rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki... + rpcbug:handle_rpc:199: received procedure call from ikiwiki: [formatpagetemplates/notecontent<!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>note</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=templates%2Fnote" /> + + + + + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../">RPC Bug</a>/ + + <a href="../">templates</a>/ + + </span> + <span class="title"> + note + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=templates%2Fnote" rel="nofollow">Edit</a></li> + + + <li><a href="../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>Use this template to insert a note into a page. The note will be styled to + float to the right of other text on the page. This template has one + parameter:</p> + + <ul> + <li>`text` - the text to display in the note + </ul> + + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + + + + + + <div class="pagedate"> + Last edited <time datetime="2013-09-13T09:30:24Z">13/09/2013</time> + <!-- Created <time datetime="2013-09-13T09:30:24Z" pubdate="pubdate">13/09/2013</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + ] + rpcbug:hook_proxy:262: format hook `format' returned: ['\n\n\n\n\nnote\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n

    Use this template to insert a note into a page. The note will be styled to\nfloat to the right of other text on the page. This template has one\nparameter:

    \n\n
      \n
    • `text` - the text to display in the note\n
    \n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n\n\n\n\n\n
    \n\n
    \n\n\n\n'] + rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [ + + + + <!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>note</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=templates%2Fnote" /> + + + + + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../">RPC Bug</a>/ + + <a href="../">templates</a>/ + + </span> + <span class="title"> + note + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=templates%2Fnote" rel="nofollow">Edit</a></li> + + + <li><a href="../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>Use this template to insert a note into a page. The note will be styled to + float to the right of other text on the page. This template has one + parameter:</p> + + <ul> + <li>`text` - the text to display in the note + </ul> + + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + + + + + + <div class="pagedate"> + Last edited <time datetime="2013-09-13T09:30:24Z">13/09/2013</time> + <!-- Created <time datetime="2013-09-13T09:30:24Z" pubdate="pubdate">13/09/2013</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + + + + ] + rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki... + rpcbug:handle_rpc:199: received procedure call from ikiwiki: [formatpagetemplates/popupcontent<!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>popup</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=templates%2Fpopup" /> + + + + + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../">RPC Bug</a>/ + + <a href="../">templates</a>/ + + </span> + <span class="title"> + popup + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=templates%2Fpopup" rel="nofollow">Edit</a></li> + + + <li><a href="../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>Use this template to create a popup window that is displayed when the mouse + is over part of the page. This template has two parameters:</p> + + <ul> + <li>`mouseover` - This is the text or other content that triggers the + popup. + <li>`popup` - This should be the content of the popup window. It can be + anything, even images or a whole little wiki page, but should not be too + large for good usability. + </ul> + + + <p>Note that browsers that do not support the CSS will display the popup + inline in the page, inside square brackets.</p> + + <p>\[[templatebody &lt; + <span class="paren">[</span><span class="balloon"></span><span class="paren">]</span> + </span> + ENDBODY]]</p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + + + + + + <div class="pagedate"> + Last edited <time datetime="2013-09-13T09:30:24Z">13/09/2013</time> + <!-- Created <time datetime="2013-09-13T09:30:24Z" pubdate="pubdate">13/09/2013</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + ] + rpcbug:hook_proxy:262: format hook `format' returned: ['\n\n\n\n\npopup\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n

    Use this template to create a popup window that is displayed when the mouse\nis over part of the page. This template has two parameters:

    \n\n
      \n
    • `mouseover` - This is the text or other content that triggers the\npopup.\n
    • `popup` - This should be the content of the popup window. It can be\nanything, even images or a whole little wiki page, but should not be too\nlarge for good usability.\n
    \n\n\n

    Note that browsers that do not support the CSS will display the popup\ninline in the page, inside square brackets.

    \n\n

    \[[templatebody <\n[]\n\nENDBODY]]

    \n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n\n\n\n\n\n
    \n\n
    \n\n\n\n'] + rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [ + + + + <!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>popup</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=templates%2Fpopup" /> + + + + + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../">RPC Bug</a>/ + + <a href="../">templates</a>/ + + </span> + <span class="title"> + popup + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=templates%2Fpopup" rel="nofollow">Edit</a></li> + + + <li><a href="../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>Use this template to create a popup window that is displayed when the mouse + is over part of the page. This template has two parameters:</p> + + <ul> + <li>`mouseover` - This is the text or other content that triggers the + popup. + <li>`popup` - This should be the content of the popup window. It can be + anything, even images or a whole little wiki page, but should not be too + large for good usability. + </ul> + + + <p>Note that browsers that do not support the CSS will display the popup + inline in the page, inside square brackets.</p> + + <p>\[[templatebody &lt; + <span class="paren">[</span><span class="balloon"></span><span class="paren">]</span> + </span> + ENDBODY]]</p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + + + + + + <div class="pagedate"> + Last edited <time datetime="2013-09-13T09:30:24Z">13/09/2013</time> + <!-- Created <time datetime="2013-09-13T09:30:24Z" pubdate="pubdate">13/09/2013</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + + + + ] + rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki... + rpcbug:handle_rpc:199: received procedure call from ikiwiki: [formatpageikiwiki/directivecontent<!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>directive</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fdirective" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../">RPC Bug</a>/ + + <a href="../">ikiwiki</a>/ + + </span> + <span class="title"> + directive + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fdirective" rel="nofollow">Edit</a></li> + + + <li><a href="../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>Directives are similar to a <a href="../wikilink/">WikiLink</a> in form, except they + begin with <code>!</code> and may contain parameters. The general form is:</p> + + <pre><code>\[[!directive param="value" param="value"]] + </code></pre> + + <p>This gets expanded before the rest of the page is processed, and can be used + to transform the page in various ways.</p> + + <p>The quotes around values can be omitted if the value is a simple word. + Also, some directives may use parameters without values, for example:</p> + + <pre><code>\[[!tag foo]] + </code></pre> + + <p>A directive does not need to all be on one line, it can be + wrapped to multiple lines if you like:</p> + + <pre><code>\[[!directive foo="baldersnatch" + bar="supercalifragilisticexpialidocious" baz=11]] + </code></pre> + + <p>Also, multiple lines of <em>quoted</em> text can be used for a value. + To allow quote marks inside the quoted text, delimit the block + of text with triple-double-quotes or triple-single-quotes:</p> + + <pre><code>\[[!directive text=""" + 1. "foo" + 2. "bar" + 3. "baz" + """ othertext=''' + 1. 'quux' + 2. "foo" + ''']] + </code></pre> + + <p>If you want to put text with triple quotes into a parameter value, you can + use perl-style here-doc syntax, even nesting it like this:</p> + + <pre><code>\[[!directive text=&lt;&lt;OUTER + \[[!otherdirective &lt;&lt;INNER + inner text + INNER]] + outer text + OUTER]] + </code></pre> + + <p>ikiwiki also has an older syntax for directives, which requires a space in + directives to distinguish them from <a href="../wikilink/">wikilinks</a>. This + syntax has several disadvantages: it requires a space after directives with + no parameters (such as <code>\[[pagecount ]]</code>), and it prohibits spaces in + <a href="../wikilink/">wikilinks</a>. ikiwiki now provides the <code>!</code>-prefixed + syntax shown above as default. However, ikiwiki still supports wikis using + the older syntax, if the <code>prefix_directives</code> option is disabled.</p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../formatting/">formatting</a> + + <a href="../">ikiwiki</a> + + <a href="../markdown/">markdown</a> + + <a href="../pagespec/sorting/">pagespec/sorting</a> + + <a href="../../shortcuts/">shortcuts</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + ] + rpcbug:hook_proxy:262: format hook `format' returned: ['\n\n\n\n\ndirective\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n

    Directives are similar to a WikiLink in form, except they\nbegin with ! and may contain parameters. The general form is:

    \n\n
    \[[!directive  param="value" param="value"]]\n
    \n\n

    This gets expanded before the rest of the page is processed, and can be used\nto transform the page in various ways.

    \n\n

    The quotes around values can be omitted if the value is a simple word.\nAlso, some directives may use parameters without values, for example:

    \n\n
    \[[!tag  foo]]\n
    \n\n

    A directive does not need to all be on one line, it can be\nwrapped to multiple lines if you like:

    \n\n
    \[[!directive  foo="baldersnatch"\nbar="supercalifragilisticexpialidocious" baz=11]]\n
    \n\n

    Also, multiple lines of quoted text can be used for a value.\nTo allow quote marks inside the quoted text, delimit the block\nof text with triple-double-quotes or triple-single-quotes:

    \n\n
    \[[!directive  text="""\n1. "foo"\n2. "bar"\n3. "baz"\n""" othertext=\'\'\'\n1. \'quux\'\n2. "foo"\n\'\'\']]\n
    \n\n

    If you want to put text with triple quotes into a parameter value, you can\nuse perl-style here-doc syntax, even nesting it like this:

    \n\n
    \[[!directive  text=<<OUTER\n\[[!otherdirective <<INNER\ninner text\nINNER]]\nouter text\nOUTER]]\n
    \n\n

    ikiwiki also has an older syntax for directives, which requires a space in\ndirectives to distinguish them from wikilinks. This\nsyntax has several disadvantages: it requires a space after directives with\nno parameters (such as \[[pagecount ]]), and it prohibits spaces in\nwikilinks. ikiwiki now provides the !-prefixed\nsyntax shown above as default. However, ikiwiki still supports wikis using\nthe older syntax, if the prefix_directives option is disabled.

    \n\n
    \n\n\n\n\n\n\n\n
    \n\n\n\n
    \n\n\n\n'] + rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [ + + + + <!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>directive</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fdirective" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../">RPC Bug</a>/ + + <a href="../">ikiwiki</a>/ + + </span> + <span class="title"> + directive + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fdirective" rel="nofollow">Edit</a></li> + + + <li><a href="../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>Directives are similar to a <a href="../wikilink/">WikiLink</a> in form, except they + begin with <code>!</code> and may contain parameters. The general form is:</p> + + <pre><code>\[[!directive param="value" param="value"]] + </code></pre> + + <p>This gets expanded before the rest of the page is processed, and can be used + to transform the page in various ways.</p> + + <p>The quotes around values can be omitted if the value is a simple word. + Also, some directives may use parameters without values, for example:</p> + + <pre><code>\[[!tag foo]] + </code></pre> + + <p>A directive does not need to all be on one line, it can be + wrapped to multiple lines if you like:</p> + + <pre><code>\[[!directive foo="baldersnatch" + bar="supercalifragilisticexpialidocious" baz=11]] + </code></pre> + + <p>Also, multiple lines of <em>quoted</em> text can be used for a value. + To allow quote marks inside the quoted text, delimit the block + of text with triple-double-quotes or triple-single-quotes:</p> + + <pre><code>\[[!directive text=""" + 1. "foo" + 2. "bar" + 3. "baz" + """ othertext=''' + 1. 'quux' + 2. "foo" + ''']] + </code></pre> + + <p>If you want to put text with triple quotes into a parameter value, you can + use perl-style here-doc syntax, even nesting it like this:</p> + + <pre><code>\[[!directive text=&lt;&lt;OUTER + \[[!otherdirective &lt;&lt;INNER + inner text + INNER]] + outer text + OUTER]] + </code></pre> + + <p>ikiwiki also has an older syntax for directives, which requires a space in + directives to distinguish them from <a href="../wikilink/">wikilinks</a>. This + syntax has several disadvantages: it requires a space after directives with + no parameters (such as <code>\[[pagecount ]]</code>), and it prohibits spaces in + <a href="../wikilink/">wikilinks</a>. ikiwiki now provides the <code>!</code>-prefixed + syntax shown above as default. However, ikiwiki still supports wikis using + the older syntax, if the <code>prefix_directives</code> option is disabled.</p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../formatting/">formatting</a> + + <a href="../">ikiwiki</a> + + <a href="../markdown/">markdown</a> + + <a href="../pagespec/sorting/">pagespec/sorting</a> + + <a href="../../shortcuts/">shortcuts</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + + + + ] + rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki... + rpcbug:handle_rpc:199: received procedure call from ikiwiki: [formatpageikiwiki/pagespeccontent<!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>pagespec</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fpagespec" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../">RPC Bug</a>/ + + <a href="../">ikiwiki</a>/ + + </span> + <span class="title"> + pagespec + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fpagespec" rel="nofollow">Edit</a></li> + + + <li><a href="../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>To select a set of pages, such as pages that are locked, pages + whose commit emails you want subscribe to, or pages to combine into a + blog, the wiki uses a PageSpec. This is an expression that matches + a set of pages.</p> + + <p>The simplest PageSpec is a simple list of pages. For example, this matches + any of the three listed pages:</p> + + <pre><code>foo or bar or baz + </code></pre> + + <p>More often you will want to match any pages that have a particular thing in + their name. You can do this using a glob pattern. "<code>*</code>" stands for any part + of a page name, and "<code>?</code>" for any single letter of a page name. So this + matches all pages about music, and any <a href="../subpage/">SubPage</a>s of the SandBox, but does + not match the SandBox itself:</p> + + <pre><code>*music* or SandBox/* + </code></pre> + + <p>You can also prefix an item with "<code>!</code>" to skip pages that match it. So to + match all pages except for Discussion pages and the SandBox:</p> + + <pre><code>* and !SandBox and !*/Discussion + </code></pre> + + <p>Some more elaborate limits can be added to what matches using these functions:</p> + + <ul> + <li>"<code>glob(someglob)</code>" - matches pages and other files that match the given glob. + Just writing the glob by itself is actually a shorthand for this function.</li> + <li>"<code>page(glob)</code>" - like <code>glob()</code>, but only matches pages, not other files</li> + <li>"<code>link(page)</code>" - matches only pages that link to a given page (or glob)</li> + <li>"<code>tagged(tag)</code>" - matches pages that are tagged or link to the given tag (or + tags matched by a glob)</li> + <li>"<code>backlink(page)</code>" - matches only pages that a given page links to</li> + <li>"<code>creation_month(month)</code>" - matches only files created on the given month + number</li> + <li>"<code>creation_day(mday)</code>" - or day of the month</li> + <li>"<code>creation_year(year)</code>" - or year</li> + <li>"<code>created_after(page)</code>" - matches only files created after the given page + was created</li> + <li>"<code>created_before(page)</code>" - matches only files created before the given page + was created</li> + <li>"<code>internal(glob)</code>" - like <code>glob()</code>, but matches even internal-use + pages that globs do not usually match.</li> + <li>"<code>title(glob)</code>", "<code>author(glob)</code>", "<code>authorurl(glob)</code>", + "<code>license(glob)</code>", "<code>copyright(glob)</code>", "<code>guid(glob)</code>" + + <ul> + <li>match pages that have the given metadata, matching the specified glob.</li> + </ul> + </li> + <li>"<code>user(username)</code>" - tests whether a modification is being made by a + user with the specified username. If openid is enabled, an openid can also + be put here. Glob patterns can be used in the username. For example, + to match all openid users, use <code>user(*://*)</code></li> + <li>"<code>admin()</code>" - tests whether a modification is being made by one of the + wiki admins.</li> + <li>"<code>ip(address)</code>" - tests whether a modification is being made from the + specified IP address. Glob patterns can be used in the address. For + example, <code>ip(127.0.0.*)</code></li> + <li>"<code>comment(glob)</code>" - matches comments to a page matching the glob.</li> + <li>"<code>comment_pending(glob)</code>" - matches unmoderated, pending comments.</li> + <li>"<code>postcomment(glob)</code>" - matches only when comments are being + posted to a page matching the specified glob</li> + </ul> + + + <p>For example, to match all pages in a blog that link to the page about music + and were written in 2005:</p> + + <pre><code>blog/* and link(music) and creation_year(2005) + </code></pre> + + <p>Note the use of "and" in the above example, that means that only pages that + match each of the three expressions match the whole. Use "and" when you + want to combine expression like that; "or" when it's enough for a page to + match one expression. Note that it doesn't make sense to say "index and + SandBox", since no page can match both expressions.</p> + + <p>More complex expressions can also be created, by using parentheses for + grouping. For example, to match pages in a blog that are tagged with either + of two tags, use:</p> + + <pre><code>blog/* and (tagged(foo) or tagged(bar)) + </code></pre> + + <p>Note that page names in PageSpecs are matched against the absolute + filenames of the pages in the wiki, so a pagespec "foo" used on page + "a/b" will not match a page named "a/foo" or "a/b/foo". To match + relative to the directory of the page containing the pagespec, you can + use "./". For example, "./foo" on page "a/b" matches page "a/foo".</p> + + <p>To indicate the name of the page the PageSpec is used in, you can + use a single dot. For example, <code>link(.)</code> matches all the pages + linking to the page containing the PageSpec.</p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../">ikiwiki</a> + + <a href="./attachment/">pagespec/attachment</a> + + <a href="./po/">pagespec/po</a> + + <a href="./sorting/">pagespec/sorting</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + ] + rpcbug:hook_proxy:262: format hook `format' returned: ['\n\n\n\n\npagespec\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n

    To select a set of pages, such as pages that are locked, pages\nwhose commit emails you want subscribe to, or pages to combine into a\nblog, the wiki uses a PageSpec. This is an expression that matches\na set of pages.

    \n\n

    The simplest PageSpec is a simple list of pages. For example, this matches\nany of the three listed pages:

    \n\n
    foo or bar or baz\n
    \n\n

    More often you will want to match any pages that have a particular thing in\ntheir name. You can do this using a glob pattern. "*" stands for any part\nof a page name, and "?" for any single letter of a page name. So this\nmatches all pages about music, and any SubPages of the SandBox, but does\nnot match the SandBox itself:

    \n\n
    *music* or SandBox/*\n
    \n\n

    You can also prefix an item with "!" to skip pages that match it. So to\nmatch all pages except for Discussion pages and the SandBox:

    \n\n
    * and !SandBox and !*/Discussion\n
    \n\n

    Some more elaborate limits can be added to what matches using these functions:

    \n\n
      \n
    • "glob(someglob)" - matches pages and other files that match the given glob.\nJust writing the glob by itself is actually a shorthand for this function.
    • \n
    • "page(glob)" - like glob(), but only matches pages, not other files
    • \n
    • "link(page)" - matches only pages that link to a given page (or glob)
    • \n
    • "tagged(tag)" - matches pages that are tagged or link to the given tag (or\ntags matched by a glob)
    • \n
    • "backlink(page)" - matches only pages that a given page links to
    • \n
    • "creation_month(month)" - matches only files created on the given month\nnumber
    • \n
    • "creation_day(mday)" - or day of the month
    • \n
    • "creation_year(year)" - or year
    • \n
    • "created_after(page)" - matches only files created after the given page\nwas created
    • \n
    • "created_before(page)" - matches only files created before the given page\nwas created
    • \n
    • "internal(glob)" - like glob(), but matches even internal-use\npages that globs do not usually match.
    • \n
    • "title(glob)", "author(glob)", "authorurl(glob)",\n"license(glob)", "copyright(glob)", "guid(glob)"\n\n
        \n
      • match pages that have the given metadata, matching the specified glob.
      • \n
      \n
    • \n
    • "user(username)" - tests whether a modification is being made by a\nuser with the specified username. If openid is enabled, an openid can also\nbe put here. Glob patterns can be used in the username. For example,\nto match all openid users, use user(*://*)
    • \n
    • "admin()" - tests whether a modification is being made by one of the\nwiki admins.
    • \n
    • "ip(address)" - tests whether a modification is being made from the\nspecified IP address. Glob patterns can be used in the address. For\nexample, ip(127.0.0.*)
    • \n
    • "comment(glob)" - matches comments to a page matching the glob.
    • \n
    • "comment_pending(glob)" - matches unmoderated, pending comments.
    • \n
    • "postcomment(glob)" - matches only when comments are being\nposted to a page matching the specified glob
    • \n
    \n\n\n

    For example, to match all pages in a blog that link to the page about music\nand were written in 2005:

    \n\n
    blog/* and link(music) and creation_year(2005)\n
    \n\n

    Note the use of "and" in the above example, that means that only pages that\nmatch each of the three expressions match the whole. Use "and" when you\nwant to combine expression like that; "or" when it\'s enough for a page to\nmatch one expression. Note that it doesn\'t make sense to say "index and\nSandBox", since no page can match both expressions.

    \n\n

    More complex expressions can also be created, by using parentheses for\ngrouping. For example, to match pages in a blog that are tagged with either\nof two tags, use:

    \n\n
    blog/* and (tagged(foo) or tagged(bar))\n
    \n\n

    Note that page names in PageSpecs are matched against the absolute\nfilenames of the pages in the wiki, so a pagespec "foo" used on page\n"a/b" will not match a page named "a/foo" or "a/b/foo". To match\nrelative to the directory of the page containing the pagespec, you can\nuse "./". For example, "./foo" on page "a/b" matches page "a/foo".

    \n\n

    To indicate the name of the page the PageSpec is used in, you can\nuse a single dot. For example, link(.) matches all the pages\nlinking to the page containing the PageSpec.

    \n\n
    \n\n\n\n\n\n\n\n
    \n\n\n\n
    \n\n\n\n'] + rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [ + + + + <!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>pagespec</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fpagespec" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../">RPC Bug</a>/ + + <a href="../">ikiwiki</a>/ + + </span> + <span class="title"> + pagespec + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fpagespec" rel="nofollow">Edit</a></li> + + + <li><a href="../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>To select a set of pages, such as pages that are locked, pages + whose commit emails you want subscribe to, or pages to combine into a + blog, the wiki uses a PageSpec. This is an expression that matches + a set of pages.</p> + + <p>The simplest PageSpec is a simple list of pages. For example, this matches + any of the three listed pages:</p> + + <pre><code>foo or bar or baz + </code></pre> + + <p>More often you will want to match any pages that have a particular thing in + their name. You can do this using a glob pattern. "<code>*</code>" stands for any part + of a page name, and "<code>?</code>" for any single letter of a page name. So this + matches all pages about music, and any <a href="../subpage/">SubPage</a>s of the SandBox, but does + not match the SandBox itself:</p> + + <pre><code>*music* or SandBox/* + </code></pre> + + <p>You can also prefix an item with "<code>!</code>" to skip pages that match it. So to + match all pages except for Discussion pages and the SandBox:</p> + + <pre><code>* and !SandBox and !*/Discussion + </code></pre> + + <p>Some more elaborate limits can be added to what matches using these functions:</p> + + <ul> + <li>"<code>glob(someglob)</code>" - matches pages and other files that match the given glob. + Just writing the glob by itself is actually a shorthand for this function.</li> + <li>"<code>page(glob)</code>" - like <code>glob()</code>, but only matches pages, not other files</li> + <li>"<code>link(page)</code>" - matches only pages that link to a given page (or glob)</li> + <li>"<code>tagged(tag)</code>" - matches pages that are tagged or link to the given tag (or + tags matched by a glob)</li> + <li>"<code>backlink(page)</code>" - matches only pages that a given page links to</li> + <li>"<code>creation_month(month)</code>" - matches only files created on the given month + number</li> + <li>"<code>creation_day(mday)</code>" - or day of the month</li> + <li>"<code>creation_year(year)</code>" - or year</li> + <li>"<code>created_after(page)</code>" - matches only files created after the given page + was created</li> + <li>"<code>created_before(page)</code>" - matches only files created before the given page + was created</li> + <li>"<code>internal(glob)</code>" - like <code>glob()</code>, but matches even internal-use + pages that globs do not usually match.</li> + <li>"<code>title(glob)</code>", "<code>author(glob)</code>", "<code>authorurl(glob)</code>", + "<code>license(glob)</code>", "<code>copyright(glob)</code>", "<code>guid(glob)</code>" + + <ul> + <li>match pages that have the given metadata, matching the specified glob.</li> + </ul> + </li> + <li>"<code>user(username)</code>" - tests whether a modification is being made by a + user with the specified username. If openid is enabled, an openid can also + be put here. Glob patterns can be used in the username. For example, + to match all openid users, use <code>user(*://*)</code></li> + <li>"<code>admin()</code>" - tests whether a modification is being made by one of the + wiki admins.</li> + <li>"<code>ip(address)</code>" - tests whether a modification is being made from the + specified IP address. Glob patterns can be used in the address. For + example, <code>ip(127.0.0.*)</code></li> + <li>"<code>comment(glob)</code>" - matches comments to a page matching the glob.</li> + <li>"<code>comment_pending(glob)</code>" - matches unmoderated, pending comments.</li> + <li>"<code>postcomment(glob)</code>" - matches only when comments are being + posted to a page matching the specified glob</li> + </ul> + + + <p>For example, to match all pages in a blog that link to the page about music + and were written in 2005:</p> + + <pre><code>blog/* and link(music) and creation_year(2005) + </code></pre> + + <p>Note the use of "and" in the above example, that means that only pages that + match each of the three expressions match the whole. Use "and" when you + want to combine expression like that; "or" when it's enough for a page to + match one expression. Note that it doesn't make sense to say "index and + SandBox", since no page can match both expressions.</p> + + <p>More complex expressions can also be created, by using parentheses for + grouping. For example, to match pages in a blog that are tagged with either + of two tags, use:</p> + + <pre><code>blog/* and (tagged(foo) or tagged(bar)) + </code></pre> + + <p>Note that page names in PageSpecs are matched against the absolute + filenames of the pages in the wiki, so a pagespec "foo" used on page + "a/b" will not match a page named "a/foo" or "a/b/foo". To match + relative to the directory of the page containing the pagespec, you can + use "./". For example, "./foo" on page "a/b" matches page "a/foo".</p> + + <p>To indicate the name of the page the PageSpec is used in, you can + use a single dot. For example, <code>link(.)</code> matches all the pages + linking to the page containing the PageSpec.</p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../">ikiwiki</a> + + <a href="./attachment/">pagespec/attachment</a> + + <a href="./po/">pagespec/po</a> + + <a href="./sorting/">pagespec/sorting</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + + + + ] + rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki... + rpcbug:handle_rpc:199: received procedure call from ikiwiki: [formatpageikiwiki/openidcontent<!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>OpenID</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fopenid" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../">RPC Bug</a>/ + + <a href="../">ikiwiki</a>/ + + </span> + <span class="title"> + OpenID + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fopenid" rel="nofollow">Edit</a></li> + + + <li><a href="../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>This wiki has OpenID <strong>enabled</strong>.</p> + + <p><a href="http://openid.net">OpenID</a> is a decentralized authentication mechanism + that allows you to have one login that you can use on a growing number of + websites.</p> + + <p>If you have an account with some of the larger web service providers, + you might already have an OpenID. + <a href="http://openiddirectory.com/openid-providers-c-1.html">Directory of OpenID providers</a></p> + + <p>To sign in to this wiki using OpenID, just enter it in the OpenID field in the + signin form. You do not need to give this wiki a password or go through any + registration process when using OpenID.</p> + + <hr /> + + <p>It's also possible to make a page in the wiki usable as an OpenID url, + by delegating it to an openid server. Here's an example of how to do that:</p> + + <pre><code>\[[!meta openid="http://yourid.myopenid.com/" + server="http://www.myopenid.com/server"]] + </code></pre> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../">ikiwiki</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + ] + rpcbug:hook_proxy:262: format hook `format' returned: ['\n\n\n\n\nOpenID\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n

    This wiki has OpenID enabled.

    \n\n

    OpenID is a decentralized authentication mechanism\nthat allows you to have one login that you can use on a growing number of\nwebsites.

    \n\n

    If you have an account with some of the larger web service providers,\nyou might already have an OpenID.\nDirectory of OpenID providers

    \n\n

    To sign in to this wiki using OpenID, just enter it in the OpenID field in the\nsignin form. You do not need to give this wiki a password or go through any\nregistration process when using OpenID.

    \n\n
    \n\n

    It\'s also possible to make a page in the wiki usable as an OpenID url,\nby delegating it to an openid server. Here\'s an example of how to do that:

    \n\n
    \[[!meta  openid="http://yourid.myopenid.com/"\n       server="http://www.myopenid.com/server"]]\n
    \n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n\n\n\n\n\n
    \n\n
    \n\n\n\n'] + rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [ + + + + <!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>OpenID</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fopenid" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../">RPC Bug</a>/ + + <a href="../">ikiwiki</a>/ + + </span> + <span class="title"> + OpenID + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fopenid" rel="nofollow">Edit</a></li> + + + <li><a href="../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>This wiki has OpenID <strong>enabled</strong>.</p> + + <p><a href="http://openid.net">OpenID</a> is a decentralized authentication mechanism + that allows you to have one login that you can use on a growing number of + websites.</p> + + <p>If you have an account with some of the larger web service providers, + you might already have an OpenID. + <a href="http://openiddirectory.com/openid-providers-c-1.html">Directory of OpenID providers</a></p> + + <p>To sign in to this wiki using OpenID, just enter it in the OpenID field in the + signin form. You do not need to give this wiki a password or go through any + registration process when using OpenID.</p> + + <hr /> + + <p>It's also possible to make a page in the wiki usable as an OpenID url, + by delegating it to an openid server. Here's an example of how to do that:</p> + + <pre><code>\[[!meta openid="http://yourid.myopenid.com/" + server="http://www.myopenid.com/server"]] + </code></pre> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../">ikiwiki</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + + + + ] + rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki... + rpcbug:handle_rpc:199: received procedure call from ikiwiki: [formatpageikiwiki/subpagecontent<!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>subpage</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fsubpage" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../">RPC Bug</a>/ + + <a href="../">ikiwiki</a>/ + + </span> + <span class="title"> + subpage + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fsubpage" rel="nofollow">Edit</a></li> + + + <li><a href="../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>ikiwiki supports placing pages in a directory hierarchy. For example, + this page, <span class="selflink">SubPage</span> has some related pages placed under it, like + <a href="./linkingrules/">LinkingRules</a>. This is a useful way to add some order to your + wiki rather than just having a great big directory full of pages.</p> + + <p>To add a SubPage, just make a subdirectory and put pages in it. For + example, this page is subpage.mdwn in this wiki's source, and there is also + a subpage subdirectory, which contains subpage/linkingrules.mdwn. Subpages + can be nested as deeply as you'd like.</p> + + <p>Linking to and from a SubPage is explained in <a href="./linkingrules/">LinkingRules</a>.</p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../">ikiwiki</a> + + <a href="../pagespec/">pagespec</a> + + <a href="./linkingrules/">subpage/linkingrules</a> + + <a href="../wikilink/">wikilink</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + ] + rpcbug:hook_proxy:262: format hook `format' returned: ['\n\n\n\n\nsubpage\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n

    ikiwiki supports placing pages in a directory hierarchy. For example,\nthis page, SubPage has some related pages placed under it, like\nLinkingRules. This is a useful way to add some order to your\nwiki rather than just having a great big directory full of pages.

    \n\n

    To add a SubPage, just make a subdirectory and put pages in it. For\nexample, this page is subpage.mdwn in this wiki\'s source, and there is also\na subpage subdirectory, which contains subpage/linkingrules.mdwn. Subpages\ncan be nested as deeply as you\'d like.

    \n\n

    Linking to and from a SubPage is explained in LinkingRules.

    \n\n
    \n\n\n\n\n\n\n\n
    \n\n\n\n
    \n\n\n\n'] + rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [ + + + + <!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>subpage</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fsubpage" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../">RPC Bug</a>/ + + <a href="../">ikiwiki</a>/ + + </span> + <span class="title"> + subpage + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fsubpage" rel="nofollow">Edit</a></li> + + + <li><a href="../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>ikiwiki supports placing pages in a directory hierarchy. For example, + this page, <span class="selflink">SubPage</span> has some related pages placed under it, like + <a href="./linkingrules/">LinkingRules</a>. This is a useful way to add some order to your + wiki rather than just having a great big directory full of pages.</p> + + <p>To add a SubPage, just make a subdirectory and put pages in it. For + example, this page is subpage.mdwn in this wiki's source, and there is also + a subpage subdirectory, which contains subpage/linkingrules.mdwn. Subpages + can be nested as deeply as you'd like.</p> + + <p>Linking to and from a SubPage is explained in <a href="./linkingrules/">LinkingRules</a>.</p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../">ikiwiki</a> + + <a href="../pagespec/">pagespec</a> + + <a href="./linkingrules/">subpage/linkingrules</a> + + <a href="../wikilink/">wikilink</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + + + + ] + rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki... + rpcbug:handle_rpc:199: received procedure call from ikiwiki: [formatpageikiwiki/markdowncontent<!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>markdown</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fmarkdown" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../">RPC Bug</a>/ + + <a href="../">ikiwiki</a>/ + + </span> + <span class="title"> + markdown + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fmarkdown" rel="nofollow">Edit</a></li> + + + <li><a href="../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p><a href="http://daringfireball.net/projects/markdown/">Markdown</a> + is a minimal markup language that resembles plain text as used in + email messages. It is the markup language used by this wiki by default.</p> + + <p>For documentation about the markdown syntax, see <a href="../formatting/">formatting</a> and + <a href="http://daringfireball.net/projects/markdown/syntax">Markdown: syntax</a>.</p> + + <p>Note that <a href="../wikilink/">WikiLinks</a> and <a href="../directive/">directives</a> are not part + of the markdown syntax, and are the only bit of markup that this wiki + handles internally.</p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../formatting/">formatting</a> + + <a href="../">ikiwiki</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + ] + rpcbug:hook_proxy:262: format hook `format' returned: ['\n\n\n\n\nmarkdown\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n

    Markdown\nis a minimal markup language that resembles plain text as used in\nemail messages. It is the markup language used by this wiki by default.

    \n\n

    For documentation about the markdown syntax, see formatting and\nMarkdown: syntax.

    \n\n

    Note that WikiLinks and directives are not part\nof the markdown syntax, and are the only bit of markup that this wiki\nhandles internally.

    \n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n\n\n\n\n\n
    \n\n
    \n\n\n\n'] + rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [ + + + + <!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>markdown</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fmarkdown" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../">RPC Bug</a>/ + + <a href="../">ikiwiki</a>/ + + </span> + <span class="title"> + markdown + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fmarkdown" rel="nofollow">Edit</a></li> + + + <li><a href="../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p><a href="http://daringfireball.net/projects/markdown/">Markdown</a> + is a minimal markup language that resembles plain text as used in + email messages. It is the markup language used by this wiki by default.</p> + + <p>For documentation about the markdown syntax, see <a href="../formatting/">formatting</a> and + <a href="http://daringfireball.net/projects/markdown/syntax">Markdown: syntax</a>.</p> + + <p>Note that <a href="../wikilink/">WikiLinks</a> and <a href="../directive/">directives</a> are not part + of the markdown syntax, and are the only bit of markup that this wiki + handles internally.</p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../formatting/">formatting</a> + + <a href="../">ikiwiki</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + + + + ] + rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki... + rpcbug:handle_rpc:199: received procedure call from ikiwiki: [formatpageikiwiki/wikilinkcontent<!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>wikilink</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fwikilink" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../">RPC Bug</a>/ + + <a href="../">ikiwiki</a>/ + + </span> + <span class="title"> + wikilink + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fwikilink" rel="nofollow">Edit</a></li> + + + <li><a href="../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>WikiLinks provide easy linking between pages of the wiki. To create a + <span class="selflink">WikiLink</span>, just put the name of the page to link to in double brackets. + For example <code>\[[WikiLink]]</code>.</p> + + <p>If you ever need to write something like <code>\[[WikiLink]]</code> without creating a + wikilink, just prefix it with a <code>\</code>, like <code>\\[[WikiLink]]</code>.</p> + + <p>There are some special <a href="../subpage/linkingrules/">LinkingRules</a> that come into play when + linking between <a href="../subpage/">SubPages</a>.</p> + + <p>WikiLinks are matched with page names in a case-insensitive manner, so you + don't need to worry about getting the case the same, and can capitalise + links at the start of a sentence, and so on.</p> + + <p>It's also possible to write a WikiLink that uses something other than the page + name as the link text. For example <code>\[[foo_bar|SandBox]]</code> links to the SandBox + page, but the link will appear like this: <a href="../../sandbox/">foo bar</a>.</p> + + <p>To link to an anchor inside a page, you can use something like + <code>\[[WikiLink#foo]]</code> .</p> + + <p>If the file linked to by a WikiLink looks like an image, it will + be displayed inline on the page.</p> + + <hr /> + + <p>You can also put an url in a WikiLink, to link to an external page. + Email addresses can also be used to generate a mailto link.</p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../directive/">directive</a> + + <a href="../formatting/">formatting</a> + + <a href="../">ikiwiki</a> + + <a href="../markdown/">markdown</a> + + <a href="../../sandbox/">sandbox</a> + + <a href="../subpage/linkingrules/">subpage/linkingrules</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + ] + rpcbug:hook_proxy:262: format hook `format' returned: ['\n\n\n\n\nwikilink\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n

    WikiLinks provide easy linking between pages of the wiki. To create a\nWikiLink, just put the name of the page to link to in double brackets.\nFor example \[[WikiLink]].

    \n\n

    If you ever need to write something like \[[WikiLink]] without creating a\nwikilink, just prefix it with a \\, like \\\[[WikiLink]].

    \n\n

    There are some special LinkingRules that come into play when\nlinking between SubPages.

    \n\n

    WikiLinks are matched with page names in a case-insensitive manner, so you\ndon\'t need to worry about getting the case the same, and can capitalise\nlinks at the start of a sentence, and so on.

    \n\n

    It\'s also possible to write a WikiLink that uses something other than the page\nname as the link text. For example \[[foo_bar|SandBox]] links to the SandBox\npage, but the link will appear like this: foo bar.

    \n\n

    To link to an anchor inside a page, you can use something like\n\[[WikiLink#foo]] .

    \n\n

    If the file linked to by a WikiLink looks like an image, it will\nbe displayed inline on the page.

    \n\n
    \n\n

    You can also put an url in a WikiLink, to link to an external page.\nEmail addresses can also be used to generate a mailto link.

    \n\n
    \n\n\n\n\n\n\n\n
    \n\n\n\n
    \n\n\n\n'] + rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [ + + + + <!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>wikilink</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fwikilink" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../">RPC Bug</a>/ + + <a href="../">ikiwiki</a>/ + + </span> + <span class="title"> + wikilink + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fwikilink" rel="nofollow">Edit</a></li> + + + <li><a href="../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>WikiLinks provide easy linking between pages of the wiki. To create a + <span class="selflink">WikiLink</span>, just put the name of the page to link to in double brackets. + For example <code>\[[WikiLink]]</code>.</p> + + <p>If you ever need to write something like <code>\[[WikiLink]]</code> without creating a + wikilink, just prefix it with a <code>\</code>, like <code>\\[[WikiLink]]</code>.</p> + + <p>There are some special <a href="../subpage/linkingrules/">LinkingRules</a> that come into play when + linking between <a href="../subpage/">SubPages</a>.</p> + + <p>WikiLinks are matched with page names in a case-insensitive manner, so you + don't need to worry about getting the case the same, and can capitalise + links at the start of a sentence, and so on.</p> + + <p>It's also possible to write a WikiLink that uses something other than the page + name as the link text. For example <code>\[[foo_bar|SandBox]]</code> links to the SandBox + page, but the link will appear like this: <a href="../../sandbox/">foo bar</a>.</p> + + <p>To link to an anchor inside a page, you can use something like + <code>\[[WikiLink#foo]]</code> .</p> + + <p>If the file linked to by a WikiLink looks like an image, it will + be displayed inline on the page.</p> + + <hr /> + + <p>You can also put an url in a WikiLink, to link to an external page. + Email addresses can also be used to generate a mailto link.</p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../directive/">directive</a> + + <a href="../formatting/">formatting</a> + + <a href="../">ikiwiki</a> + + <a href="../markdown/">markdown</a> + + <a href="../../sandbox/">sandbox</a> + + <a href="../subpage/linkingrules/">subpage/linkingrules</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + + + + ] + rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki... + rpcbug:handle_rpc:199: received procedure call from ikiwiki: [formatpageikiwiki/formattingcontent<!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>Formatting wiki pages</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fformatting" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../">RPC Bug</a>/ + + <a href="../">ikiwiki</a>/ + + </span> + <span class="title"> + Formatting wiki pages + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fformatting" rel="nofollow">Edit</a></li> + + + <li><a href="../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>Text on this wiki is, by default, written in a form very close to how you + might write text for an email message. This style of text formatting is + called <a href="../markdown/">MarkDown</a>, and it works like this:</p> + + <p>Leave blank lines between paragraphs.</p> + + <p>You can <em>*emphasise*</em> or <strong>**strongly emphasise**</strong> text by placing it + in single or double asterisks.</p> + + <p>To create a list, start each line with an asterisk:</p> + + <ul> + <li>"* this is my list"</li> + <li>"* another item"</li> + </ul> + + + <p>To make a numbered list, start each line with a number (any number will + do) followed by a period:</p> + + <ol> + <li>"1. first line"</li> + <li>"2. second line"</li> + <li>"2. third line"</li> + </ol> + + + <p>To create a header, start a line with one or more <code>#</code> characters followed + by a space and the header text. The number of <code>#</code> characters controls the + size of the header:</p> + + <h1># h1</h1> + + <h2>## h2</h2> + + <h3>### h3</h3> + + <h4>#### h4</h4> + + <h5>##### h5</h5> + + <h6>###### h6</h6> + + <p>To create a horizontal rule, just write three or more dashes or stars on + their own line:</p> + + <hr /> + + <p>To quote someone, prefix the quote with "&gt;":</p> + + <blockquote><p>To be or not to be, + that is the question.</p></blockquote> + + <p>To write a code block, indent each line with a tab or 4 spaces:</p> + + <pre><code>10 PRINT "Hello, world!" + 20 GOTO 10 + </code></pre> + + <p>To link to an url or email address, you can just put the + url in angle brackets: &lt;<a href="http://ikiwiki.info">http://ikiwiki.info</a>&gt;, or you can use the + form [link text](url)</p> + + <hr /> + + <p>In addition to basic html formatting using <a href="../markdown/">MarkDown</a>, this wiki lets + you use the following additional features:</p> + + <ul> + <li><p>To link to another page on the wiki, place the page's name inside double + square brackets. So you would use <code>\[[WikiLink]]</code> to link to <a href="../wikilink/">WikiLink</a>.</p></li> + <li><p>Insert various <a href="../directive/">directives</a> onto a page to perform useful + actions. + For example, you can:</p> + + <ul> + <li><p>Change the title of a page:</p> + + <p>\[[!meta title="full page title"]]</p></li> + <li><p>Create a blog by inlining a set of pages:</p> + + <p>\[[!inline pages="blog/*"]]</p></li> + </ul> + </li> + </ul> + + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../">ikiwiki</a> + + <a href="../markdown/">markdown</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-10-09T18:31:33Z">09/10/2014</time> + <!-- Created <time datetime="2014-10-09T18:31:33Z" pubdate="pubdate">09/10/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + ] + rpcbug:hook_proxy:262: format hook `format' returned: ['\n\n\n\n\nFormatting wiki pages\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n

    Text on this wiki is, by default, written in a form very close to how you\nmight write text for an email message. This style of text formatting is\ncalled MarkDown, and it works like this:

    \n\n

    Leave blank lines between paragraphs.

    \n\n

    You can *emphasise* or **strongly emphasise** text by placing it\nin single or double asterisks.

    \n\n

    To create a list, start each line with an asterisk:

    \n\n
      \n
    • "* this is my list"
    • \n
    • "* another item"
    • \n
    \n\n\n

    To make a numbered list, start each line with a number (any number will\ndo) followed by a period:

    \n\n
      \n
    1. "1. first line"
    2. \n
    3. "2. second line"
    4. \n
    5. "2. third line"
    6. \n
    \n\n\n

    To create a header, start a line with one or more # characters followed\nby a space and the header text. The number of # characters controls the\nsize of the header:

    \n\n

    # h1

    \n\n

    ## h2

    \n\n

    ### h3

    \n\n

    #### h4

    \n\n
    ##### h5
    \n\n
    ###### h6
    \n\n

    To create a horizontal rule, just write three or more dashes or stars on\ntheir own line:

    \n\n
    \n\n

    To quote someone, prefix the quote with ">":

    \n\n

    To be or not to be,\nthat is the question.

    \n\n

    To write a code block, indent each line with a tab or 4 spaces:

    \n\n
    10 PRINT "Hello, world!"\n20 GOTO 10\n
    \n\n

    To link to an url or email address, you can just put the\nurl in angle brackets: <http://ikiwiki.info>, or you can use the\nform [link text](url)

    \n\n
    \n\n

    In addition to basic html formatting using MarkDown, this wiki lets\nyou use the following additional features:

    \n\n
      \n
    • To link to another page on the wiki, place the page\'s name inside double\nsquare brackets. So you would use \[[WikiLink]] to link to WikiLink.

    • \n
    • Insert various directives onto a page to perform useful\nactions.\nFor example, you can:

      \n\n
        \n
      • Change the title of a page:

        \n\n

        \[[!meta title="full page title"]]

      • \n
      • Create a blog by inlining a set of pages:

        \n\n

        \[[!inline pages="blog/*"]]

      • \n
      \n
    • \n
    \n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n\n\n\n\n\n
    \n\n
    \n\n\n\n'] + rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [ + + + + <!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>Formatting wiki pages</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fformatting" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../">RPC Bug</a>/ + + <a href="../">ikiwiki</a>/ + + </span> + <span class="title"> + Formatting wiki pages + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fformatting" rel="nofollow">Edit</a></li> + + + <li><a href="../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>Text on this wiki is, by default, written in a form very close to how you + might write text for an email message. This style of text formatting is + called <a href="../markdown/">MarkDown</a>, and it works like this:</p> + + <p>Leave blank lines between paragraphs.</p> + + <p>You can <em>*emphasise*</em> or <strong>**strongly emphasise**</strong> text by placing it + in single or double asterisks.</p> + + <p>To create a list, start each line with an asterisk:</p> + + <ul> + <li>"* this is my list"</li> + <li>"* another item"</li> + </ul> + + + <p>To make a numbered list, start each line with a number (any number will + do) followed by a period:</p> + + <ol> + <li>"1. first line"</li> + <li>"2. second line"</li> + <li>"2. third line"</li> + </ol> + + + <p>To create a header, start a line with one or more <code>#</code> characters followed + by a space and the header text. The number of <code>#</code> characters controls the + size of the header:</p> + + <h1># h1</h1> + + <h2>## h2</h2> + + <h3>### h3</h3> + + <h4>#### h4</h4> + + <h5>##### h5</h5> + + <h6>###### h6</h6> + + <p>To create a horizontal rule, just write three or more dashes or stars on + their own line:</p> + + <hr /> + + <p>To quote someone, prefix the quote with "&gt;":</p> + + <blockquote><p>To be or not to be, + that is the question.</p></blockquote> + + <p>To write a code block, indent each line with a tab or 4 spaces:</p> + + <pre><code>10 PRINT "Hello, world!" + 20 GOTO 10 + </code></pre> + + <p>To link to an url or email address, you can just put the + url in angle brackets: &lt;<a href="http://ikiwiki.info">http://ikiwiki.info</a>&gt;, or you can use the + form [link text](url)</p> + + <hr /> + + <p>In addition to basic html formatting using <a href="../markdown/">MarkDown</a>, this wiki lets + you use the following additional features:</p> + + <ul> + <li><p>To link to another page on the wiki, place the page's name inside double + square brackets. So you would use <code>\[[WikiLink]]</code> to link to <a href="../wikilink/">WikiLink</a>.</p></li> + <li><p>Insert various <a href="../directive/">directives</a> onto a page to perform useful + actions. + For example, you can:</p> + + <ul> + <li><p>Change the title of a page:</p> + + <p>\[[!meta title="full page title"]]</p></li> + <li><p>Create a blog by inlining a set of pages:</p> + + <p>\[[!inline pages="blog/*"]]</p></li> + </ul> + </li> + </ul> + + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../">ikiwiki</a> + + <a href="../markdown/">markdown</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-10-09T18:31:33Z">09/10/2014</time> + <!-- Created <time datetime="2014-10-09T18:31:33Z" pubdate="pubdate">09/10/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + + + + ] + rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki... + rpcbug:handle_rpc:199: received procedure call from ikiwiki: [formatpageikiwiki/searchingcontent<!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>searching</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fsearching" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../">RPC Bug</a>/ + + <a href="../">ikiwiki</a>/ + + </span> + <span class="title"> + searching + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fsearching" rel="nofollow">Edit</a></li> + + + <li><a href="../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>This wiki has searching <strong>disabled</strong>.</p> + + <p>If searching is enabled, you can enter search terms in the search field, + as you'd expect. There are a few special things you can do to construct + more powerful searches.</p> + + <ul> + <li>To match a phrase, enclose it in double quotes.</li> + <li><code>AND</code> can be used to search for documents containing two expressions.</li> + <li><code>OR</code> can be used to search for documents containing either one of + two expressions.</li> + <li>Parentheses can be used to build up complicated search expressions. For + example, "(foo AND bar) OR (me AND you)"</li> + <li>Prefix a search term with "-" to avoid it from appearing in the results. + For example, "-discussion" will omit "discussion".</li> + <li>To search for a page with a given title, use "title:foo".</li> + <li>To search for pages that contain a "bar" link, use "link:bar".</li> + </ul> + + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../">ikiwiki</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + ] + rpcbug:hook_proxy:262: format hook `format' returned: ['\n\n\n\n\nsearching\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n

    This wiki has searching disabled.

    \n\n

    If searching is enabled, you can enter search terms in the search field,\nas you\'d expect. There are a few special things you can do to construct\nmore powerful searches.

    \n\n
      \n
    • To match a phrase, enclose it in double quotes.
    • \n
    • AND can be used to search for documents containing two expressions.
    • \n
    • OR can be used to search for documents containing either one of\ntwo expressions.
    • \n
    • Parentheses can be used to build up complicated search expressions. For\nexample, "(foo AND bar) OR (me AND you)"
    • \n
    • Prefix a search term with "-" to avoid it from appearing in the results.\nFor example, "-discussion" will omit "discussion".
    • \n
    • To search for a page with a given title, use "title:foo".
    • \n
    • To search for pages that contain a "bar" link, use "link:bar".
    • \n
    \n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n\n\n\n\n\n
    \n\n
    \n\n\n\n'] + rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [ + + + + <!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>searching</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fsearching" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../">RPC Bug</a>/ + + <a href="../">ikiwiki</a>/ + + </span> + <span class="title"> + searching + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fsearching" rel="nofollow">Edit</a></li> + + + <li><a href="../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>This wiki has searching <strong>disabled</strong>.</p> + + <p>If searching is enabled, you can enter search terms in the search field, + as you'd expect. There are a few special things you can do to construct + more powerful searches.</p> + + <ul> + <li>To match a phrase, enclose it in double quotes.</li> + <li><code>AND</code> can be used to search for documents containing two expressions.</li> + <li><code>OR</code> can be used to search for documents containing either one of + two expressions.</li> + <li>Parentheses can be used to build up complicated search expressions. For + example, "(foo AND bar) OR (me AND you)"</li> + <li>Prefix a search term with "-" to avoid it from appearing in the results. + For example, "-discussion" will omit "discussion".</li> + <li>To search for a page with a given title, use "title:foo".</li> + <li>To search for pages that contain a "bar" link, use "link:bar".</li> + </ul> + + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../">ikiwiki</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + + + + ] + rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki... + rpcbug:handle_rpc:199: received procedure call from ikiwiki: [formatpageikiwiki/pagespec/sortingcontent<!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>sorting</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fpagespec%2Fsorting" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../../">RPC Bug</a>/ + + <a href="../../">ikiwiki</a>/ + + <a href="../">pagespec</a>/ + + </span> + <span class="title"> + sorting + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fpagespec%2Fsorting" rel="nofollow">Edit</a></li> + + + <li><a href="../../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>Some <a href="../../directive/">directives</a> that use + <a href="../">PageSpecs</a> allow + specifying the order that matching pages are shown in. The following sort + orders can be specified.</p> + + <ul> + <li><p><code>age</code> - List pages from the most recently created to the oldest.</p></li> + <li><p><code>mtime</code> - List pages with the most recently modified first.</p></li> + <li><p><code>title</code> - Order by title (page name), e.g. "z/a a/b a/c"</p></li> + <li><p><code>path</code> - Order by page name including parents, e.g. "a/b a/c z/a"</p></li> + <li><p><code>meta(title)</code> - Order according to the <code>\[[!meta title="foo" sortas="bar"]]</code> + or <code>\[[!meta title="foo"]]</code> <a href="../../directive/">directive</a>, or the page name if no + full title was set. <code>meta(author)</code>, <code>meta(date)</code>, <code>meta(updated)</code>, etc. + also work.</p></li> + </ul> + + + <p>In addition, you can combine several sort orders and/or reverse the order of + sorting, with a string like <code>age -title</code> (which would sort by age, then by + title in reverse order if two pages have the same age).</p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + ] + rpcbug:hook_proxy:262: format hook `format' returned: ['\n\n\n\n\nsorting\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n

    Some directives that use\nPageSpecs allow\nspecifying the order that matching pages are shown in. The following sort\norders can be specified.

    \n\n
      \n
    • age - List pages from the most recently created to the oldest.

    • \n
    • mtime - List pages with the most recently modified first.

    • \n
    • title - Order by title (page name), e.g. "z/a a/b a/c"

    • \n
    • path - Order by page name including parents, e.g. "a/b a/c z/a"

    • \n
    • meta(title) - Order according to the \[[!meta title="foo" sortas="bar"]]\nor \[[!meta title="foo"]] directive, or the page name if no\nfull title was set. meta(author), meta(date), meta(updated), etc.\nalso work.

    • \n
    \n\n\n

    In addition, you can combine several sort orders and/or reverse the order of\nsorting, with a string like age -title (which would sort by age, then by\ntitle in reverse order if two pages have the same age).

    \n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n\n\n\n\n\n
    \n\n
    \n\n\n\n'] + rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [ + + + + <!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>sorting</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fpagespec%2Fsorting" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../../">RPC Bug</a>/ + + <a href="../../">ikiwiki</a>/ + + <a href="../">pagespec</a>/ + + </span> + <span class="title"> + sorting + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fpagespec%2Fsorting" rel="nofollow">Edit</a></li> + + + <li><a href="../../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>Some <a href="../../directive/">directives</a> that use + <a href="../">PageSpecs</a> allow + specifying the order that matching pages are shown in. The following sort + orders can be specified.</p> + + <ul> + <li><p><code>age</code> - List pages from the most recently created to the oldest.</p></li> + <li><p><code>mtime</code> - List pages with the most recently modified first.</p></li> + <li><p><code>title</code> - Order by title (page name), e.g. "z/a a/b a/c"</p></li> + <li><p><code>path</code> - Order by page name including parents, e.g. "a/b a/c z/a"</p></li> + <li><p><code>meta(title)</code> - Order according to the <code>\[[!meta title="foo" sortas="bar"]]</code> + or <code>\[[!meta title="foo"]]</code> <a href="../../directive/">directive</a>, or the page name if no + full title was set. <code>meta(author)</code>, <code>meta(date)</code>, <code>meta(updated)</code>, etc. + also work.</p></li> + </ul> + + + <p>In addition, you can combine several sort orders and/or reverse the order of + sorting, with a string like <code>age -title</code> (which would sort by age, then by + title in reverse order if two pages have the same age).</p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + + + + ] + rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki... + rpcbug:handle_rpc:199: received procedure call from ikiwiki: [formatpageikiwiki/pagespec/attachmentcontent<!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>attachment</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fpagespec%2Fattachment" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../../">RPC Bug</a>/ + + <a href="../../">ikiwiki</a>/ + + <a href="../">pagespec</a>/ + + </span> + <span class="title"> + attachment + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fpagespec%2Fattachment" rel="nofollow">Edit</a></li> + + + <li><a href="../../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>This wiki has attachments <strong>disabled</strong>.</p> + + <p>If attachments are enabled, the wiki admin can control what types of + attachments will be accepted, via the <code>allowed_attachments</code> + configuration setting.</p> + + <p>For example, to limit most users to uploading small images, and nothing else, + while allowing larger mp3 files to be uploaded by joey into a specific + directory, and check all attachments for viruses, something like this could be + used:</p> + + <pre><code>virusfree() and ((user(joey) and podcast/*.mp3 and mimetype(audio/mpeg) and maxsize(15mb)) or (mimetype(image/*) and maxsize(50kb))) + </code></pre> + + <p>The regular <a href="../">PageSpec</a> syntax is expanded with the following + additional tests:</p> + + <ul> + <li><p>"<code>maxsize(size)</code>" - tests whether the attachment is no larger than the + specified size. The size defaults to being in bytes, but "kb", "mb", "gb" + etc can be used to specify the units.</p></li> + <li><p>"<code>minsize(size)</code>" - tests whether the attachment is no smaller than the + specified size.</p></li> + <li><p>"<code>ispage()</code>" - tests whether the attachment will be treated by ikiwiki as a + wiki page. (Ie, if it has an extension of ".mdwn", or of any other enabled + page format).</p> + + <p>So, if you don't want to allow wiki pages to be uploaded as attachments, + use <code>!ispage()</code> ; if you only want to allow wiki pages to be uploaded + as attachments, use <code>ispage()</code>.</p></li> + <li><p>"<code>mimetype(foo/bar)</code>" - checks the MIME type of the attachment. You can + include a glob in the type, for example <code>mimetype(image/*)</code>.</p></li> + <li><p>"<code>virusfree()</code>" - checks the attachment with an antiviral program.</p></li> + </ul> + + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + ] + rpcbug:hook_proxy:262: format hook `format' returned: ['\n\n\n\n\nattachment\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n

    This wiki has attachments disabled.

    \n\n

    If attachments are enabled, the wiki admin can control what types of\nattachments will be accepted, via the allowed_attachments\nconfiguration setting.

    \n\n

    For example, to limit most users to uploading small images, and nothing else,\nwhile allowing larger mp3 files to be uploaded by joey into a specific\ndirectory, and check all attachments for viruses, something like this could be\nused:

    \n\n
    virusfree() and ((user(joey) and podcast/*.mp3 and mimetype(audio/mpeg) and maxsize(15mb)) or (mimetype(image/*) and maxsize(50kb)))\n
    \n\n

    The regular PageSpec syntax is expanded with the following\nadditional tests:

    \n\n
      \n
    • "maxsize(size)" - tests whether the attachment is no larger than the\nspecified size. The size defaults to being in bytes, but "kb", "mb", "gb"\netc can be used to specify the units.

    • \n
    • "minsize(size)" - tests whether the attachment is no smaller than the\nspecified size.

    • \n
    • "ispage()" - tests whether the attachment will be treated by ikiwiki as a\nwiki page. (Ie, if it has an extension of ".mdwn", or of any other enabled\npage format).

      \n\n

      So, if you don\'t want to allow wiki pages to be uploaded as attachments,\nuse !ispage() ; if you only want to allow wiki pages to be uploaded\nas attachments, use ispage().

    • \n
    • "mimetype(foo/bar)" - checks the MIME type of the attachment. You can\ninclude a glob in the type, for example mimetype(image/*).

    • \n
    • "virusfree()" - checks the attachment with an antiviral program.

    • \n
    \n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n\n\n\n\n\n
    \n\n
    \n\n\n\n'] + rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [ + + + + <!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>attachment</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fpagespec%2Fattachment" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../../">RPC Bug</a>/ + + <a href="../../">ikiwiki</a>/ + + <a href="../">pagespec</a>/ + + </span> + <span class="title"> + attachment + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fpagespec%2Fattachment" rel="nofollow">Edit</a></li> + + + <li><a href="../../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>This wiki has attachments <strong>disabled</strong>.</p> + + <p>If attachments are enabled, the wiki admin can control what types of + attachments will be accepted, via the <code>allowed_attachments</code> + configuration setting.</p> + + <p>For example, to limit most users to uploading small images, and nothing else, + while allowing larger mp3 files to be uploaded by joey into a specific + directory, and check all attachments for viruses, something like this could be + used:</p> + + <pre><code>virusfree() and ((user(joey) and podcast/*.mp3 and mimetype(audio/mpeg) and maxsize(15mb)) or (mimetype(image/*) and maxsize(50kb))) + </code></pre> + + <p>The regular <a href="../">PageSpec</a> syntax is expanded with the following + additional tests:</p> + + <ul> + <li><p>"<code>maxsize(size)</code>" - tests whether the attachment is no larger than the + specified size. The size defaults to being in bytes, but "kb", "mb", "gb" + etc can be used to specify the units.</p></li> + <li><p>"<code>minsize(size)</code>" - tests whether the attachment is no smaller than the + specified size.</p></li> + <li><p>"<code>ispage()</code>" - tests whether the attachment will be treated by ikiwiki as a + wiki page. (Ie, if it has an extension of ".mdwn", or of any other enabled + page format).</p> + + <p>So, if you don't want to allow wiki pages to be uploaded as attachments, + use <code>!ispage()</code> ; if you only want to allow wiki pages to be uploaded + as attachments, use <code>ispage()</code>.</p></li> + <li><p>"<code>mimetype(foo/bar)</code>" - checks the MIME type of the attachment. You can + include a glob in the type, for example <code>mimetype(image/*)</code>.</p></li> + <li><p>"<code>virusfree()</code>" - checks the attachment with an antiviral program.</p></li> + </ul> + + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + + + + ] + rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki... + rpcbug:handle_rpc:199: received procedure call from ikiwiki: [formatpageikiwiki/pagespec/pocontent<!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>po</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fpagespec%2Fpo" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../../">RPC Bug</a>/ + + <a href="../../">ikiwiki</a>/ + + <a href="../">pagespec</a>/ + + </span> + <span class="title"> + po + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fpagespec%2Fpo" rel="nofollow">Edit</a></li> + + + <li><a href="../../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>This wiki has po support <strong>disabled</strong>.</p> + + <p>If the \[[!iki plugins/po desc=po]] plugin is enabled, the regular + <a href="../">PageSpec</a> syntax is expanded with the following additional + tests that can be used to improve user navigation in a multi-lingual + wiki:</p> + + <ul> + <li>"<code>lang(LL)</code>" - tests whether a page is written in the language + specified as a ISO639-1 (two-letter) language code.</li> + <li>"<code>currentlang()</code>" - tests whether a page is written in the same + language as the current page.</li> + <li>"<code>needstranslation()</code>" - tests whether a page needs translation + work. Only slave pages match this PageSpec. A minimum target + translation percentage can optionally be passed as an integer + parameter: "<code>needstranslation(50)</code>" matches only pages less than 50% + translated.</li> + </ul> + + + <p>Note that every non-po page is considered to be written in + <code>po_master_language</code>, as specified in <code>ikiwiki.setup</code>.</p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + ] + rpcbug:hook_proxy:262: format hook `format' returned: ['\n\n\n\n\npo\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n

    This wiki has po support disabled.

    \n\n

    If the \[[!iki plugins/po desc=po]] plugin is enabled, the regular\nPageSpec syntax is expanded with the following additional\ntests that can be used to improve user navigation in a multi-lingual\nwiki:

    \n\n
      \n
    • "lang(LL)" - tests whether a page is written in the language\nspecified as a ISO639-1 (two-letter) language code.
    • \n
    • "currentlang()" - tests whether a page is written in the same\nlanguage as the current page.
    • \n
    • "needstranslation()" - tests whether a page needs translation\nwork. Only slave pages match this PageSpec. A minimum target\ntranslation percentage can optionally be passed as an integer\nparameter: "needstranslation(50)" matches only pages less than 50%\ntranslated.
    • \n
    \n\n\n

    Note that every non-po page is considered to be written in\npo_master_language, as specified in ikiwiki.setup.

    \n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n\n\n\n\n\n
    \n\n
    \n\n\n\n'] + rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [ + + + + <!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>po</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fpagespec%2Fpo" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../../">RPC Bug</a>/ + + <a href="../../">ikiwiki</a>/ + + <a href="../">pagespec</a>/ + + </span> + <span class="title"> + po + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fpagespec%2Fpo" rel="nofollow">Edit</a></li> + + + <li><a href="../../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>This wiki has po support <strong>disabled</strong>.</p> + + <p>If the \[[!iki plugins/po desc=po]] plugin is enabled, the regular + <a href="../">PageSpec</a> syntax is expanded with the following additional + tests that can be used to improve user navigation in a multi-lingual + wiki:</p> + + <ul> + <li>"<code>lang(LL)</code>" - tests whether a page is written in the language + specified as a ISO639-1 (two-letter) language code.</li> + <li>"<code>currentlang()</code>" - tests whether a page is written in the same + language as the current page.</li> + <li>"<code>needstranslation()</code>" - tests whether a page needs translation + work. Only slave pages match this PageSpec. A minimum target + translation percentage can optionally be passed as an integer + parameter: "<code>needstranslation(50)</code>" matches only pages less than 50% + translated.</li> + </ul> + + + <p>Note that every non-po page is considered to be written in + <code>po_master_language</code>, as specified in <code>ikiwiki.setup</code>.</p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + + + + ] + rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki... + rpcbug:handle_rpc:199: received procedure call from ikiwiki: [formatpageikiwiki/subpage/linkingrulescontent<!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>linkingrules</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fsubpage%2Flinkingrules" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../../">RPC Bug</a>/ + + <a href="../../">ikiwiki</a>/ + + <a href="../">subpage</a>/ + + </span> + <span class="title"> + linkingrules + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fsubpage%2Flinkingrules" rel="nofollow">Edit</a></li> + + + <li><a href="../../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>To link to or from a <a href="../">SubPage</a>, you can normally use a regular + <a href="../../wikilink/">WikiLink</a> that does not contain the name of the parent directory of + the <a href="../">SubPage</a>. Ikiwiki descends the directory hierarchy looking for a + page that matches your link.</p> + + <p>For example, if FooBar/SubPage links to "OtherPage", ikiwiki will first + prefer pointing the link to FooBar/SubPage/OtherPage if it exists, next + to FooBar/OtherPage and finally to OtherPage in the root of the wiki.</p> + + <p>Note that this means that if a link on FooBar/SomePage to "OtherPage" + currently links to OtherPage, in the root of the wiki, and FooBar/OtherPage + is created, the link will <em>change</em> to point to FooBar/OtherPage. On the + other hand, a link from BazBar to "OtherPage" would be unchanged by this + creation of a <a href="../">SubPage</a> of FooBar.</p> + + <p>You can also specify a link that contains a directory name, like + "FooBar/OtherPage" to more exactly specify what page to link to. This is + the only way to link to an unrelated <a href="../">SubPage</a>.</p> + + <p>You can use this to, for example, to link from BazBar to "FooBar/SubPage", + or from BazBar/SubPage to "FooBar/SubPage".</p> + + <p>You can also use "/" at the start of a link, to specify exactly which page + to link to, when there are multiple pages with similar names and the link + goes to the wrong page by default. For example, linking from + "FooBar/SubPage" to "/OtherPage" will link to the "OtherPage" in the root + of the wiki, even if there is a "FooBar/OtherPage".</p> + + <p>Also, if the wiki is configured with a userdir, you can link to pages + within the userdir without specifying a path to them. This is to allow for + easy linking to a user's page in the userdir, to sign a comment. These + links are checked for last of all.</p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../">subpage</a> + + <a href="../../wikilink/">wikilink</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + ] + rpcbug:hook_proxy:262: format hook `format' returned: ['\n\n\n\n\nlinkingrules\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n

    To link to or from a SubPage, you can normally use a regular\nWikiLink that does not contain the name of the parent directory of\nthe SubPage. Ikiwiki descends the directory hierarchy looking for a\npage that matches your link.

    \n\n

    For example, if FooBar/SubPage links to "OtherPage", ikiwiki will first\nprefer pointing the link to FooBar/SubPage/OtherPage if it exists, next\nto FooBar/OtherPage and finally to OtherPage in the root of the wiki.

    \n\n

    Note that this means that if a link on FooBar/SomePage to "OtherPage"\ncurrently links to OtherPage, in the root of the wiki, and FooBar/OtherPage\nis created, the link will change to point to FooBar/OtherPage. On the\nother hand, a link from BazBar to "OtherPage" would be unchanged by this\ncreation of a SubPage of FooBar.

    \n\n

    You can also specify a link that contains a directory name, like\n"FooBar/OtherPage" to more exactly specify what page to link to. This is\nthe only way to link to an unrelated SubPage.

    \n\n

    You can use this to, for example, to link from BazBar to "FooBar/SubPage",\nor from BazBar/SubPage to "FooBar/SubPage".

    \n\n

    You can also use "/" at the start of a link, to specify exactly which page\nto link to, when there are multiple pages with similar names and the link\ngoes to the wrong page by default. For example, linking from\n"FooBar/SubPage" to "/OtherPage" will link to the "OtherPage" in the root\nof the wiki, even if there is a "FooBar/OtherPage".

    \n\n

    Also, if the wiki is configured with a userdir, you can link to pages\nwithin the userdir without specifying a path to them. This is to allow for\neasy linking to a user\'s page in the userdir, to sign a comment. These\nlinks are checked for last of all.

    \n\n
    \n\n\n\n\n\n\n\n
    \n\n
    \n\n\n\n\n\n
    \n\n
    \n\n\n\n'] + rpcbug:handle_rpc:204: sending procedure response to ikiwiki: [ + + + + <!DOCTYPE html> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + + <meta charset="utf-8" /> + <title>linkingrules</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + + <link rel="stylesheet" href="../../../style.css" type="text/css" /> + + <link rel="stylesheet" href="../../../local.css" type="text/css" /> + + + + + <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fsubpage%2Flinkingrules" /> + + + + <meta name="robots" content="noindex, follow" /> + + + + </head> + <body> + + <article class="page"> + + <section class="pageheader"> + <header class="header"> + <span> + <span class="parentlinks"> + + <a href="../../../">RPC Bug</a>/ + + <a href="../../">ikiwiki</a>/ + + <a href="../">subpage</a>/ + + </span> + <span class="title"> + linkingrules + + </span> + </span> + + + + </header> + + + <nav class="actions"> + <ul> + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=edit&amp;page=ikiwiki%2Fsubpage%2Flinkingrules" rel="nofollow">Edit</a></li> + + + <li><a href="../../../recentchanges/">RecentChanges</a></li> + + + + + <li><a href="/~louis/ikiwiki_bug_rpc/ikiwiki.cgi?do=prefs">Preferences</a></li> + + + + + + </ul> + </nav> + + + + + + + + + </section> + + + + + + <div id="pagebody"> + + <section id="content" role="main"> + <p>To link to or from a <a href="../">SubPage</a>, you can normally use a regular + <a href="../../wikilink/">WikiLink</a> that does not contain the name of the parent directory of + the <a href="../">SubPage</a>. Ikiwiki descends the directory hierarchy looking for a + page that matches your link.</p> + + <p>For example, if FooBar/SubPage links to "OtherPage", ikiwiki will first + prefer pointing the link to FooBar/SubPage/OtherPage if it exists, next + to FooBar/OtherPage and finally to OtherPage in the root of the wiki.</p> + + <p>Note that this means that if a link on FooBar/SomePage to "OtherPage" + currently links to OtherPage, in the root of the wiki, and FooBar/OtherPage + is created, the link will <em>change</em> to point to FooBar/OtherPage. On the + other hand, a link from BazBar to "OtherPage" would be unchanged by this + creation of a <a href="../">SubPage</a> of FooBar.</p> + + <p>You can also specify a link that contains a directory name, like + "FooBar/OtherPage" to more exactly specify what page to link to. This is + the only way to link to an unrelated <a href="../">SubPage</a>.</p> + + <p>You can use this to, for example, to link from BazBar to "FooBar/SubPage", + or from BazBar/SubPage to "FooBar/SubPage".</p> + + <p>You can also use "/" at the start of a link, to specify exactly which page + to link to, when there are multiple pages with similar names and the link + goes to the wrong page by default. For example, linking from + "FooBar/SubPage" to "/OtherPage" will link to the "OtherPage" in the root + of the wiki, even if there is a "FooBar/OtherPage".</p> + + <p>Also, if the wiki is configured with a userdir, you can link to pages + within the userdir without specifying a path to them. This is to allow for + easy linking to a user's page in the userdir, to sign a comment. These + links are checked for last of all.</p> + + </section> + + + + + + + + </div> + + <footer id="footer" class="pagefooter" role="contentinfo"> + + <nav id="pageinfo"> + + + + + + + <nav id="backlinks"> + Links: + + <a href="../">subpage</a> + + <a href="../../wikilink/">wikilink</a> + + + </nav> + + + + + + + <div class="pagedate"> + Last edited <time datetime="2014-09-12T20:23:58Z">12/09/2014</time> + <!-- Created <time datetime="2014-09-12T20:23:58Z" pubdate="pubdate">12/09/2014</time> --> + </div> + + </nav> + + + <!-- from RPC Bug --> + </footer> + + </article> + + </body> + </html> + + + + + ] + rpcbug:handle_rpc:191: waiting for procedure calls from ikiwiki... + rpcbug:handle_rpc:195: ikiwiki is going down, and so are we... diff --git a/doc/bugs/Please_add_copyright_notice_in_embedded_JS.mdwn b/doc/bugs/Please_add_copyright_notice_in_embedded_JS.mdwn new file mode 100644 index 000000000..79194df1e --- /dev/null +++ b/doc/bugs/Please_add_copyright_notice_in_embedded_JS.mdwn @@ -0,0 +1,20 @@ +Hello, + +We got a report that http://www.gnu.org/software/hurd/ "embeds apparently non-free JS". This is because the embedded ikiwiki.js javascript file does not wear a copyright notice, to tell which licence this file is shipped under. Could you add such a copyright notice? + +Thanks + +> Everything in ikiwiki is [[freesoftware]]. The JavaScript in `underlays/javascript` +> appears to be GPL-2+, but might have been intended to be under the permissive basewiki +> license. +> +> [[Joey]] appears to be the only author, so is presumably the only copyright +> holder; nobody else can give an authoritative answer about the JS's license. Joey, +> if you want `underlays/javascript` to be permissively-licensed, please amend +> `debian/copyright` accordingly. --[[smcv]] +> +>> It was intended to be permissive. I've amended the copyright file. +>> [[done]] +>> +>> I wouldn't mind including information readable by librejs in those +>> files, if someone wants to send a patch. --[[Joey]] diff --git a/doc/bugs/Uploading_attachment_fails.mdwn b/doc/bugs/Uploading_attachment_fails.mdwn new file mode 100644 index 000000000..f3a9ccf82 --- /dev/null +++ b/doc/bugs/Uploading_attachment_fails.mdwn @@ -0,0 +1,23 @@ +I just upgraded from ubuntu 14.04 to ubuntu 15.04. Since then uploading attachments using the attachment plugin doesn't work anymore in ikiwiki. It prints a "failed!" message. Any idea what may be wrong here and how to fix it? + +ikiwiki version 3.20141016.2 + +`/var/log/apache2/error.log` + +gives this: + +Died at `/usr/share/perl5/IkiWiki/CGI.pm line 497`. + +> I think this is probably [[!debbug 786587]], which ikiwiki has worked around since 3.20150610 +> ([[!debbug 786586]]). If so, then it is [[already fixed|done]], but not in the version +> you have. You could report an Ubuntu bug asking for +> [ikiwiki commit 7a52c87](http://source.ikiwiki.branchable.com/?p=source.git;a=commit;h=7a52c87a8c745577a50d6c9d134f62f9c5b26b0a) +> or +> [CGI.pm commit e4500cf](https://github.com/leejo/CGI.pm/commit/e4500cfb2de27660398c09bc860d1d9e499cb372) +> to be backported, although in practice bugs in universe packages are unlikely to get fixed +> in an Ubuntu stable release. +> +> To work around this, you might be able to `apt-get remove libcgi-pm-perl` and use the +> older version of CGI.pm that is shipped with Perl. --[[smcv]] + +Thanks, I just opened a bug r[eport on launchpad](https://bugs.launchpad.net/ubuntu/+source/ikiwiki/+bug/1470391). diff --git a/doc/bugs/continuously_getting_merge_errors.mdwn b/doc/bugs/continuously_getting_merge_errors.mdwn new file mode 100644 index 000000000..ebfd5e232 --- /dev/null +++ b/doc/bugs/continuously_getting_merge_errors.mdwn @@ -0,0 +1,32 @@ +links: + +https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=775310 +http://ikiwiki.info/forum/Your_local_changes_to_the_following_files_would_be_overwritten_by_merge:/ + +phil is kindly running ikiwiki on hands.com as http://rhombus-tech.net +we continuously run into "merge" issues which need recovering on a +near monthly basis. + +i have a local checkout of the repository: i often need to upload images via +that, doing the usual "git pull", followed by "git commit -a", followed by +"git push", adding an HTML page that is edited by vim as well as the images. + +i also often need to "recover" the wiki - for example by renaming pages that +users have erroneously added, deleting pages that they should not have made, +moving pages from locations that they should not have added or that i decide +should be restructured. + +these are the operations where everything usually gets completely fscked. + +the really weird thing is that when i know that things are out-of-sync, +a "git pull" gives a *completely different* head branch from the one shown +through the RecentChanges log! + +phil has often had to recover an entire set of files that are completely out +of sync, that never enter the "git pull" stream onto my laptop, and are not +visible on the wiki itself either. + +this is all incredibly strange and mysterious, but it basically means that +ikiwiki is not particularly robust and reliable for everyday use. i'd very +much like it to be! + diff --git a/doc/bugs/dumpsetup_does_not_save_wikistatedir.mdwn b/doc/bugs/dumpsetup_does_not_save_wikistatedir.mdwn new file mode 100644 index 000000000..236460f6b --- /dev/null +++ b/doc/bugs/dumpsetup_does_not_save_wikistatedir.mdwn @@ -0,0 +1,12 @@ +Calling ikiwiki with a bunch of options, including the `--dumpsetup somefile.setup` option creates `somefile.setup` for later reuse with the `--setup` option. The wiki state dir however is not saved in the setup file, it has no `wikistatedir` at all. + +Strange since same [[kind of bugs|bugs/dumpsetup_does_not_save_destdir]] have been fixed for `destdir`. + +--[[bbb]] + +> Options flagged as `internal` are not saved, and are not meant to be useful to save. +> `wikistatedir` is one of those. Why do you want `wikistatedir` to be in the dumped setup? +> +> `wikistatedir` is always `$config{srcdir}/.ikiwiki` unless you are doing something +> incredibly strange. +> --[[smcv]] diff --git a/doc/bugs/feed_does_not_validate.mdwn b/doc/bugs/feed_does_not_validate.mdwn new file mode 100644 index 000000000..9e9b2ee4a --- /dev/null +++ b/doc/bugs/feed_does_not_validate.mdwn @@ -0,0 +1,21 @@ +[this validator](https://validator.w3.org/feed/check.cgi?url=http%3A%2F%2Fanarc.at%2Ftag%2Fdrupal-planet%2Findex.rss) says that my RSS feed doesn't validate. + +the link to "comments" should be a full URL and there's a "self" tag missing. + +coming from [this bug report](https://www.drupal.org/node/1843576) + +-- [[anarcat]] + +> [[Fixed|done]]. Now people are going to complain that the RSS feed +> hard-codes `http:` or `https:` instead, but we can't win there, +> because RSS. +> +> If you just want to serve a feed with less bureaucracy, I suggest +> using Atom feeds - they have sane semantics for relative URL references, +> and a specification that actually specifies, instead of +> [a family of vague, mutually incompatible specifications](https://web.archive.org/web/20110726001954/http://diveintomark.org/archives/2004/02/04/incompatible-rss). +> In particular, +> [my Atom feed validates](https://validator.w3.org/feed/check.cgi?url=http%3A%2F%2Fsmcv.pseudorandom.co.uk%2Findex.atom) +> (rel="comments" seems to be missing from the IANA registry, +> but that isn't a validity error). +> --[[smcv]] diff --git a/doc/bugs/img_test_failure_on_nix.mdwn b/doc/bugs/img_test_failure_on_nix.mdwn new file mode 100644 index 000000000..911cc66a1 --- /dev/null +++ b/doc/bugs/img_test_failure_on_nix.mdwn @@ -0,0 +1,33 @@ +Peter Simons wrote: +> I'm getting the following test suite failure in Nix, probably because +> some Perl dependency was updated to a newer version recently: + + # Failed test at t/img.t line 79. + # got: 'no image' + # expected: '12x12' + + # Failed test at t/img.t line 80. + # got: 'no image' + # expected: '16x2' + # Looks like you failed 2 tests of 19. + t/img.t ........................ + Dubious, test returned 2 (wstat 512, 0x200) + Failed 2/19 subtests + +> Do you have any idea how to fix this issue? + +>> As far as I can tell, this indicates that your ImageMagick doesn't +>> support PDF (in Debian and its derivatives this requires `libmagickcore-extra`). +>> Please run tests on a system with a fully-featured ImageMagick (in Debian we put +>> `libmagickcore-extra` in the `Build-Depends-Indep` for this), or if you are testing +>> at install time on arbitrary end-user systems, please tell me what this says on a +>> system where the test fails: +>> +>> perl -MData::Dumper -MImage::Magick -e 'print Dumper([(new Image::Magick)->QueryFormat("pdf")])' +>> +>> If the result is `$VAR1 = [ undef ]`, then we can easily make the test skip that bit if PDFs don't work. +>> --[[smcv]] + +>>> That configuration test doesn't actually work because of the way +>>> ImageMagick processes PDFs via ghostscript, but loading a sample +>>> PDF and probing its width does seem to work. [[done]] --[[smcv]] diff --git a/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn b/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn new file mode 100644 index 000000000..568322822 --- /dev/null +++ b/doc/bugs/mathjax_doesn__39__t_work_anymore_after_upgrade.mdwn @@ -0,0 +1,31 @@ +After my upgrade from ubuntu 14.04 to 15.04 mathjax stopped working in my ikiwiki. Math is displayed correctly for pages created before the upgrade. For new pages or if I change an old page, math is not rendered but the LaTeX source code is printed (with \[ \] as deliminiters instead of $$ $$). + +Any idea what may be wrong here and how to fix it? + +> Mathjax does not seem to be supported by default by Ikiwiki. So the first question is: how did you enable mathjax? +> +> Maybe you can also save the html of an old page, change something in it to make it rebuilt, and diff the resulting html with the old one, to see what changed. +> +> -- [[Louis|spalax]] + +I installed mathjax via the pandoc-iki plugin as described [here](http://stackoverflow.com/a/8444409/406686) + +The rebuild of an old site containing math is missing the following lines: + + + + + + + +---------------------- + +I finally noticed that the `page.tmpl` was messed up. It seams that the upgrade deleted the relevant `mathjax` line. Adding this makes it work again. [[Thanks|done]]! + diff --git a/doc/bugs/meta_plugin_should_not_add_alternate_stylesheets_and_title_by_default.mdwn b/doc/bugs/meta_plugin_should_not_add_alternate_stylesheets_and_title_by_default.mdwn index 11dbfeecc..314597cb5 100644 --- a/doc/bugs/meta_plugin_should_not_add_alternate_stylesheets_and_title_by_default.mdwn +++ b/doc/bugs/meta_plugin_should_not_add_alternate_stylesheets_and_title_by_default.mdwn @@ -28,7 +28,7 @@ I think that to match better the description of that feature, and to be easier to comprehend in its default setting, the meta plugin should by default: - - Set `rel="alternate stylesheet"`. + - Set `rel="stylesheet"`. - Not set any `title`. If we agree on this proposal, I'm willing to provide a patch. diff --git a/doc/bugs/po_plugin_config_crasher.mdwn b/doc/bugs/po_plugin_config_crasher.mdwn new file mode 100644 index 000000000..9669597ed --- /dev/null +++ b/doc/bugs/po_plugin_config_crasher.mdwn @@ -0,0 +1,35 @@ +Saw a site using the po plugin crash with: + + syntax error in pagespec "\"page(./tips/*)" + +I suspect the relevant configuration is this: + + po_translatable_pages: /index or /hugo or /hugo/keys or /about or /archive or /tips + or /talks or /imprint or /copyright or /blog or /posts or /law or /quotes or /quotes/* + +Config problems in ikiwiki.setup should really not cause the whole site +build to crash; this can make it hard to recover. --[[Joey]] + +> Given who's reporting this, am I right in assuming that's with ikiwiki 3.20150614? --[[smcv]] + +--- + +I try to setup a small site with the auto-blog.setup and played a bit with it: +If I activate the po plugin and set po_translateable_pages to something meaningful (like the example: `* and !*/Discussion`), +then I'll get the same error + + syntax error in pagespec "\"page(./posts/*)" + +but only after a second run of the ikiwiki --setup site.setup + +My try to get a clue: deleting any po and pot files and run the rebuild again - works fine +run the rebuild a second time - error as above + +tune any of the pagespec variables in the setup and at the inline directives of the blog or sidebar dosn't change anything +except leaving the po_translateable_pages empty, than the rebuild works and doesn't create any po files (as expected). + +Is this helpful or have I done anything stupid ? -- Michael + +> This would be helpful if I could reproduce the crash from your instructions, but I couldn't :-( +> Which version of ikiwiki is this? +> --[[smcv]] diff --git a/doc/bugs/rss_output_relative_links.mdwn b/doc/bugs/rss_output_relative_links.mdwn index ff607cbb3..7a2e4d12b 100644 --- a/doc/bugs/rss_output_relative_links.mdwn +++ b/doc/bugs/rss_output_relative_links.mdwn @@ -1,3 +1,5 @@ RSS output contains relative links. Ie. http://kitenet.net/~joey/blog/index.rss contains a link to http://kitenet.net/~joey/blog/../blog.html + +> Finally [[done]] for the first release of 2016. --[[smcv]] diff --git a/doc/examples/blog/posts/second_post.mdwn b/doc/examples/blog/posts/second_post.mdwn new file mode 100644 index 000000000..5cc6c3818 --- /dev/null +++ b/doc/examples/blog/posts/second_post.mdwn @@ -0,0 +1 @@ +This is the second post to this example blog. To add new posts, just add files to the posts/ subdirectory, or use the web form. diff --git a/doc/forum/Error:_CGI::tmpFileName_failed_to_return_the_uploaded_file_name/comment_3_0dbc7bea39c6f69c4615250bc2d63d84._comment b/doc/forum/Error:_CGI::tmpFileName_failed_to_return_the_uploaded_file_name/comment_3_0dbc7bea39c6f69c4615250bc2d63d84._comment new file mode 100644 index 000000000..5c4e81b01 --- /dev/null +++ b/doc/forum/Error:_CGI::tmpFileName_failed_to_return_the_uploaded_file_name/comment_3_0dbc7bea39c6f69c4615250bc2d63d84._comment @@ -0,0 +1,7 @@ +[[!comment format=mdwn + username="JohnGoerzen" + subject="Still seeing this" + date="2015-09-28T16:22:21Z" + content=""" +I'm running 20141016.2 on Debian jessie and I'm seeing this. From what I can tell, all known bugs around this should be fixed. Any ideas? +"""]] diff --git a/doc/forum/Error:_CGI::tmpFileName_failed_to_return_the_uploaded_file_name/comment_4_e7453e7f84c494e80e9341feff931141._comment b/doc/forum/Error:_CGI::tmpFileName_failed_to_return_the_uploaded_file_name/comment_4_e7453e7f84c494e80e9341feff931141._comment new file mode 100644 index 000000000..f522b2238 --- /dev/null +++ b/doc/forum/Error:_CGI::tmpFileName_failed_to_return_the_uploaded_file_name/comment_4_e7453e7f84c494e80e9341feff931141._comment @@ -0,0 +1,9 @@ +[[!comment format=mdwn + username="smcv" + subject="comment 4" + date="2015-10-01T19:48:38Z" + content=""" +This could be [#786586](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=786586) and [#786587](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=786587), which have a matching symptom. (The two Debian bugs are aspects of the same thing.) + +Workaround: remove libcgi-pm-perl and use the older CGI.pm in Perl. +"""]] diff --git a/doc/forum/FastCGI_problem_on_Arch.mdwn b/doc/forum/FastCGI_problem_on_Arch.mdwn new file mode 100644 index 000000000..2911b747a --- /dev/null +++ b/doc/forum/FastCGI_problem_on_Arch.mdwn @@ -0,0 +1,13 @@ +Hello. + +Sorry to disturb here, but I'm struggling running ikiwiki under Arch on a RaspberryPi. +I have a default user: alarm that both runs the nginx server and which created the ikiwiki site. +Everything sits in the home folder. + +I've followed the instructions [here](http://ikiwiki.info/tips/dot_cgi/#index3h2) regarding the configuration of FastCGI, but there is a slight mistake in it I think. +Nowadays, the ikiwiki.cgi sits in the subfolder that is the same as the wiki name under public_html/ and not directly under public_html/. But it does not really matter. I corrected that in my script. + +But somehow, even if I play around with the fastcgi parameters, I either get a 403, or the server is trying to send me the ikiwiki.cgi file to download, but does not run it. + +I've changed the permissions on the socket, I even tried to run the server as root, nothing changes. Still same errors. If anyone can help, I'd appreciate. + diff --git a/doc/forum/How_to_configure_the_position_of_the_automatically_created_links__63__.mdwn b/doc/forum/How_to_configure_the_position_of_the_automatically_created_links__63__.mdwn new file mode 100644 index 000000000..95572be6b --- /dev/null +++ b/doc/forum/How_to_configure_the_position_of_the_automatically_created_links__63__.mdwn @@ -0,0 +1,5 @@ +Ikiwiki creates on every page automatically a specific link list at the bottom of the page. + +How can I move this list to the top or to the left? How can I have it both on the top and on the bottom of the page? + +Since I want to change it globally I tried to find an option in local.css but didn't find anything related. diff --git a/doc/forum/How_to_configure_the_position_of_the_automatically_created_links__63__/comment_1_173687ee3dfdd9d949c1fa6d9b3cce4c._comment b/doc/forum/How_to_configure_the_position_of_the_automatically_created_links__63__/comment_1_173687ee3dfdd9d949c1fa6d9b3cce4c._comment new file mode 100644 index 000000000..c8c7b655e --- /dev/null +++ b/doc/forum/How_to_configure_the_position_of_the_automatically_created_links__63__/comment_1_173687ee3dfdd9d949c1fa6d9b3cce4c._comment @@ -0,0 +1,9 @@ +[[!comment format=mdwn + username="spalax" + subject="Change the `page.tmpl` template" + date="2015-08-28T15:23:54Z" + content=""" +You can change the [page.tmpl](http://source.ikiwiki.branchable.com/?p=source.git;a=blob;f=templates/page.tmpl) template (look for `BACKLINKS` in it). To overwrite the default `page.tmpl`, copy it in, say, a `templates` folder in your repository, and change the setup file to use this folder as a template folder. + +-- [[Louis|spalax]] +"""]] diff --git a/doc/forum/How_to_fix_wide_character_syslog_error__63__.mdwn b/doc/forum/How_to_fix_wide_character_syslog_error__63__.mdwn new file mode 100644 index 000000000..5562cb53a --- /dev/null +++ b/doc/forum/How_to_fix_wide_character_syslog_error__63__.mdwn @@ -0,0 +1,5 @@ +When running `ikiwiki rebuild` I got error: + + failed to syslog: Wide character in syswrite at /usr/lib/perl/5.18/Sys/Syslog.pm line 546 + +Ubuntu 14.04. ikiwiki 20150107. diff --git a/doc/forum/How_to_fix_wide_character_syslog_error__63__/comment_1_fce9619a48eba6d9559e2c33ba6322c9._comment b/doc/forum/How_to_fix_wide_character_syslog_error__63__/comment_1_fce9619a48eba6d9559e2c33ba6322c9._comment new file mode 100644 index 000000000..2de135f7f --- /dev/null +++ b/doc/forum/How_to_fix_wide_character_syslog_error__63__/comment_1_fce9619a48eba6d9559e2c33ba6322c9._comment @@ -0,0 +1,10 @@ +[[!comment format=mdwn + username="smcv" + subject="comment 1" + date="2016-01-21T07:33:19Z" + content=""" +What was on the next line after that message? + +I suspect this is a bug which still exists in 3.20150614. I think I've now fixed it +for the next version of ikiwiki. +"""]] diff --git a/doc/forum/Inline__44___sort_and_show_-_is_it_possible_to_achieve_equivalent_to_tail_command.mdwn b/doc/forum/Inline__44___sort_and_show_-_is_it_possible_to_achieve_equivalent_to_tail_command.mdwn new file mode 100644 index 000000000..9418f6767 --- /dev/null +++ b/doc/forum/Inline__44___sort_and_show_-_is_it_possible_to_achieve_equivalent_to_tail_command.mdwn @@ -0,0 +1,10 @@ +As per above. I'm using a inline to show most recent pages using meta(date). I want to limit the number of items to 20 but here is the catch I want to maintain chronological order. Kind of like using `sort -n | tail`. + +Showing the `n` oldest pages in chronological order starting with the first is easy just combine sort and show. Same thing goes for showing the `n` most recent pages in reverse chronological order. + +Can't figure out if what I want to do is doable. + +A bit of background: +I'm using my [[tweaked img plugin|kjs]] to populate meta data from images. The meta date is set according to the image exif data. On the homepage I show thumbnails of the 20 most recent images. This is a site of family photos (why I can't share the link here) and such and it's a bit confusing to show all sequences in reverse. I.e first image shows all the presents opened then they repackage themselves and end up with ribbons. + +-[[kjs]] diff --git a/doc/forum/Inline__44___sort_and_show_-_is_it_possible_to_achieve_equivalent_to_tail_command/comment_1_e62f3ae89da8c66e94d37bd148fbebbd._comment b/doc/forum/Inline__44___sort_and_show_-_is_it_possible_to_achieve_equivalent_to_tail_command/comment_1_e62f3ae89da8c66e94d37bd148fbebbd._comment new file mode 100644 index 000000000..d9fdabcac --- /dev/null +++ b/doc/forum/Inline__44___sort_and_show_-_is_it_possible_to_achieve_equivalent_to_tail_command/comment_1_e62f3ae89da8c66e94d37bd148fbebbd._comment @@ -0,0 +1,14 @@ +[[!comment format=mdwn + username="smcv" + subject="comment 1" + date="2015-08-15T12:33:11Z" + content=""" +I don't think this is currently possible: `show` takes the first *n* +pages after sorting. + +Care to contribute a patch adding `show=\"last 10\"`? Then you could do + + \[[inline pages=\"...\" sort=\"-age\" show=\"last 10\"]] + +and I think that would have the result you want. +"""]] diff --git a/doc/forum/Inline__44___sort_and_show_-_is_it_possible_to_achieve_equivalent_to_tail_command/comment_2_3e5d32aab68e21b3c4b6145e61b0b744._comment b/doc/forum/Inline__44___sort_and_show_-_is_it_possible_to_achieve_equivalent_to_tail_command/comment_2_3e5d32aab68e21b3c4b6145e61b0b744._comment new file mode 100644 index 000000000..42331b1f2 --- /dev/null +++ b/doc/forum/Inline__44___sort_and_show_-_is_it_possible_to_achieve_equivalent_to_tail_command/comment_2_3e5d32aab68e21b3c4b6145e61b0b744._comment @@ -0,0 +1,14 @@ +[[!comment format=mdwn + username="kjs" + subject="comment 2" + date="2015-08-16T20:09:33Z" + content=""" +I could do a patch if I could program... The img plugin stuff is more a working accident of mine ;) + +For now I've reverted to showing all albums in reverse chronological order. Atleast then people aren't confused by different ordering of the homepage inline and the actual album. + +I'll see if I can have a look at the show last patch as you suggest, but that won't happen shortly. + +Regards + +"""]] diff --git a/doc/forum/Language_variable.mdwn b/doc/forum/Language_variable.mdwn new file mode 100644 index 000000000..7eb25779e --- /dev/null +++ b/doc/forum/Language_variable.mdwn @@ -0,0 +1,78 @@ +(I don't know whether this is about a bug or about a feature request, so apologies if this post is in the wrong place.) + +# Rationale: + +It seems to me that the way ikiwiki handles language information at +the moment isn't optimal. + +For instance, if I want to apply different CSS properties depending on +the language, I can't. (This matters for some typographic rules that +differ depending on the language.) + +Also, without proper language declarations, the browser cannot hyphen +words correctly, resulting in poor line breaking/wrapping. + + +# The problem: + +## How it's done now: + +Right now, correct me if I'm wrong, but I need to write + + bracket bracket !meta language="en"]] + +somewhere inside a post in order to tell ikiwiki which language the +post is written in. This will result in the post's HTML as: + + + + +This isn't sufficient. + +## What isn't done + +### 1. the blog's lang + +There's no way to tell ikiwiki the overall, or main language of the +blog at the moment (again, that's as far as I can see from reading +documentations, forums, etc.) + +This setting would be nice, in order to add have something like + + + +on all pages. + + +### 2. the post's lang + +Then, if a specific post has the meta language property explicitly +defined, it should override the language declaration set as default. + +### 3. template variable + +Right now, there's no + + + +from what I can tell by testing. As a result, I cannot give specific +css properties or the like. + + +# Fast way to resolve this + +The easiest way to resolve this is to create a TMPL_VAR LANGUAGE so +that at least people who care can use this variable and improve their templates. + + +---- + +This really is the most needed feature for me as a writer in both +English and French that I miss the most with ikiwiki. I have looked +around in the source code on but I +couldn't figure out where this is happening... + + +I hope you also care :-) + +Thanks, diff --git a/doc/forum/Language_variable/comment_1_caea1154542404ffa1ce1c5344208fd4._comment b/doc/forum/Language_variable/comment_1_caea1154542404ffa1ce1c5344208fd4._comment new file mode 100644 index 000000000..c608cd8e9 --- /dev/null +++ b/doc/forum/Language_variable/comment_1_caea1154542404ffa1ce1c5344208fd4._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="fboulogne@247e5cb9cf56b3ff602b5e50ee07bb3985b88808" + nickname="fboulogne" + subject="comment 1" + date="2015-08-01T02:15:27Z" + content=""" +I totally agree on this need. It's also very important for the accessibility (especially handicapped people who need a specific software.) +"""]] diff --git a/doc/forum/Let_rss_point_to_https_.mdwn b/doc/forum/Let_rss_point_to_https_.mdwn new file mode 100644 index 000000000..6959a0c67 --- /dev/null +++ b/doc/forum/Let_rss_point_to_https_.mdwn @@ -0,0 +1,8 @@ +Now that we can use the certificates of Lets encrypt, many wikis will move to +https in stead of http. + +However, the RSS and Atom-feeds are still pointing at http + +Is there a way to configure the RSS- and Atomfeeds to be pointing to +https://... ? + diff --git a/doc/forum/Let_rss_point_to_https_/comment_1_571d9f380068bf9130f8b68d1af22dae._comment b/doc/forum/Let_rss_point_to_https_/comment_1_571d9f380068bf9130f8b68d1af22dae._comment new file mode 100644 index 000000000..b352e244b --- /dev/null +++ b/doc/forum/Let_rss_point_to_https_/comment_1_571d9f380068bf9130f8b68d1af22dae._comment @@ -0,0 +1,9 @@ +[[!comment format=mdwn + username="spalax" + subject="Question/Proposal" + date="2015-12-12T22:04:09Z" + content=""" +Wouldn't use the `//` in the URL, to make the URL protocol relative, solve the problem? It [seems to be already used](http://source.ikiwiki.branchable.com/?p=source.git;a=blob;f=IkiWiki.pm;h=fe5af6d15a769250879accb6592b45d84f5c555e;hb=HEAD#l680), but if you ask this question, this means that the rss feed does not use it. Now someone has to track how the feed url is generated, and why it does not use this protocol-relutive URL (sorry, I will not do this myself: I would not find the time to do so these days). + +-- [[Louis|spalax]] +"""]] diff --git a/doc/forum/Let_rss_point_to_https_/comment_2_02d04263197df6d488e5e39d2686a772._comment b/doc/forum/Let_rss_point_to_https_/comment_2_02d04263197df6d488e5e39d2686a772._comment new file mode 100644 index 000000000..94b6cd77d --- /dev/null +++ b/doc/forum/Let_rss_point_to_https_/comment_2_02d04263197df6d488e5e39d2686a772._comment @@ -0,0 +1,26 @@ +[[!comment format=mdwn + username="smcv" + subject="Protocol-relative URLs are not always an option; change your url and cgiurl settings" + date="2015-12-13T22:20:13Z" + content=""" +IkiWiki already uses relative (`../foo/`), hostname-relative (`/foo`) or +protocol-relative (`//example.com/foo/`) URLs wherever it can. However, not +everything is allowed to be relative: in particular, more or less +everything in RSS has to be absolute, either because the specification says so, +or because in practice RSS consumers usually get relative URLs wrong. +When we generated XHTML 1.0, `` had to be absolute too, +but now that we always generate HTML 5 it's relative, so RSS is one of the +few places the full `url` and `cgiurl` are used. + +If you have a certificate that's trusted by \"normal\" browsers (like LetsEncrypt), +then there's no disadvantage in changing your `url` and `cgiurl` to +both be `https://...`, and rebuilding your wiki. At this point I would only +recommend using plain `http://` if you either have no certificate, or a +self-signed or otherwise not-universally-trusted certificate for a non-public +website. + +Because IkiWiki mostly outputs relative URLs, accesses via `http` will stay +on `http`, unless you also reconfigure your web server (not specific to +IkiWiki, for instance if you use Apache see +[RedirectSSL on the Apache wiki](https://wiki.apache.org/httpd/RedirectSSL). +"""]] diff --git a/doc/forum/Moving_everything_so_far_into_a_folder.mdwn b/doc/forum/Moving_everything_so_far_into_a_folder.mdwn new file mode 100644 index 000000000..3b1727694 --- /dev/null +++ b/doc/forum/Moving_everything_so_far_into_a_folder.mdwn @@ -0,0 +1 @@ +I kind of want to start anew with my wiki, but I also don't want the stuff that I've written inaccessible. Right now I have one folder, where all my wiki files live and I'd like to move everything into a subfolder e.g.: let's say my stuff lives in ```~/notes/ ``` I would like to move the notes to ```~/notes/old``` without breaking any of the wiki links. Looking at [linkingrules](http://ikiwiki.info/ikiwiki/subpage/linkingrules/) it seems to me that it should work out of the box, but this is not the case. When I try to move a page to ```~/notes/old``` the file is accesible as a wikipage (http://example.com/old/note) but the old links to that page don't work anymore. The wiki thinks the site is missing or something and does not look for it in subfolders. Or so it seems. Anyway. If anyone has an idea to get this to work the right way, that is: to move all current pages to a subfolder without breaking links, I'd be very happy to know. diff --git a/doc/forum/Moving_everything_so_far_into_a_folder/comment_1_bf2c1d5fb58a3aa0f28fa07f1e41d247._comment b/doc/forum/Moving_everything_so_far_into_a_folder/comment_1_bf2c1d5fb58a3aa0f28fa07f1e41d247._comment new file mode 100644 index 000000000..476de5e5a --- /dev/null +++ b/doc/forum/Moving_everything_so_far_into_a_folder/comment_1_bf2c1d5fb58a3aa0f28fa07f1e41d247._comment @@ -0,0 +1,7 @@ +[[!comment format=mdwn + username="http://kerravonsen.dreamwidth.org/" + subject="comment 1" + date="2015-06-21T23:35:42Z" + content=""" +This sounds like a job for mod_rewrite rather than ikiwiki itself. +"""]] diff --git a/doc/forum/Moving_everything_so_far_into_a_folder/comment_2_0a6ebc8364239dc8c5760eb2ca290ae9._comment b/doc/forum/Moving_everything_so_far_into_a_folder/comment_2_0a6ebc8364239dc8c5760eb2ca290ae9._comment new file mode 100644 index 000000000..cad6aa5e5 --- /dev/null +++ b/doc/forum/Moving_everything_so_far_into_a_folder/comment_2_0a6ebc8364239dc8c5760eb2ca290ae9._comment @@ -0,0 +1,7 @@ +[[!comment format=mdwn + username="openmedi" + subject="comment 2" + date="2015-06-30T09:50:31Z" + content=""" +This would work, but there's another problem (of convenience): Since the notes directory is my working directory for notes, I would like to move the notes (this the main reason for trying to do this), so I don't have to see them all the time. I would like to be able to refer to the files in the future, without having to see them. But, I guess, this is not so easily done. But if someone has an idea for a \"native\" ikiwiki solution I'd be very grateful. +"""]] diff --git a/doc/forum/Need_something_more_powerful_than_Exclude/comment_7_e5d9fbf7e50476ce3a494541dd41d4d9._comment b/doc/forum/Need_something_more_powerful_than_Exclude/comment_7_e5d9fbf7e50476ce3a494541dd41d4d9._comment new file mode 100644 index 000000000..91ad02d14 --- /dev/null +++ b/doc/forum/Need_something_more_powerful_than_Exclude/comment_7_e5d9fbf7e50476ce3a494541dd41d4d9._comment @@ -0,0 +1,47 @@ +[[!comment format=mdwn + username="https://launchpad.net/~beaufils" + nickname="beaufils" + subject="Does the exclude feature work at all?" + date="2015-06-22T10:49:53Z" + content=""" +I am not sure if that is a bug or a feature, but it is annoying, definitively related to this post: + + $ ikiwiki --version + ikiwiki version 3.20141016.2 + + $ mkdir src ; echo A >src/get ; echo A >src/noget + + $ ikiwiki src out + $ cat out/noget + A + + # Let's ask ikiwiki to forget noget + $ ikiwiki src out --exclude noget + $ cat out/noget + A + + # No? Maybe with --rebuild? + $ ikiwiki src out --exclude noget --rebuild + $ cat out/noget + A + + # So let's remove it manually and try again + $ rm out/noget + + $ ikiwiki src out --exclude noget + $ cat out/noget + cat: out/noget: No such file or directory + + # Hum are we sure it worked? + $ ikiwiki src out --exclude noget --rebuild + $ cat out/noget + A + + # Nope :-( + +I am really confused with the exclude feature and the way ikiwiki lookup files. Finally I tend to think this is a bug. + +Is there a way to make ikiwiki consider that a file in the `srcdir` should not be present in the `destdir` and thus removed if present? + +--[[bbb]] +"""]] diff --git a/doc/forum/__34__S.__34___gets_replace_by___34__a.__34___in_my_ikiwiki.mdwn b/doc/forum/__34__S.__34___gets_replace_by___34__a.__34___in_my_ikiwiki.mdwn new file mode 100644 index 000000000..1f22f09c8 --- /dev/null +++ b/doc/forum/__34__S.__34___gets_replace_by___34__a.__34___in_my_ikiwiki.mdwn @@ -0,0 +1,7 @@ +I assume this is a bug: + +When when writing the string "S." on a page, it gets replace with "a." for some reason. I am using "ikiwiki version 3.20150614" form pkgsrc on OS X 10.10.4. + +If this is not a bug: Where would I be able to change that behaviour? + +P.S.: "S." is the short form of the German "Seite" (en: "p." and "page") and is used frquently in citations, so it's kind of important… diff --git a/doc/forum/__34__S.__34___gets_replace_by___34__a.__34___in_my_ikiwiki/comment_1_1a842bc7d56e9b40a43cb64c8a76e776._comment b/doc/forum/__34__S.__34___gets_replace_by___34__a.__34___in_my_ikiwiki/comment_1_1a842bc7d56e9b40a43cb64c8a76e776._comment new file mode 100644 index 000000000..dacbe7fca --- /dev/null +++ b/doc/forum/__34__S.__34___gets_replace_by___34__a.__34___in_my_ikiwiki/comment_1_1a842bc7d56e9b40a43cb64c8a76e776._comment @@ -0,0 +1,7 @@ +[[!comment format=mdwn + username="openmedi" + subject="comment 1" + date="2015-08-12T15:44:58Z" + content=""" +As we can see (and this is lucky in hindsight): The problem doesn't show on the ikiwiki.info site itself. So maybe I did indeed something wrong. Hm. +"""]] diff --git a/doc/forum/__34__S.__34___gets_replace_by___34__a.__34___in_my_ikiwiki/comment_2_73c0052ee7852b2bdc9e92ba6136f20e._comment b/doc/forum/__34__S.__34___gets_replace_by___34__a.__34___in_my_ikiwiki/comment_2_73c0052ee7852b2bdc9e92ba6136f20e._comment new file mode 100644 index 000000000..23a4f975f --- /dev/null +++ b/doc/forum/__34__S.__34___gets_replace_by___34__a.__34___in_my_ikiwiki/comment_2_73c0052ee7852b2bdc9e92ba6136f20e._comment @@ -0,0 +1,37 @@ +[[!comment format=mdwn + username="smcv" + subject="Markdown is weird like that" + date="2015-08-12T15:51:38Z" + content=""" +Is it right at the beginning of a line, such that Markdown interprets it as a numbered list item for an HTML `
      `? + +~~~ +a. One +b. Two +c. Three + +a. One +a. Two +a. Three + +S. One +X. Two +Z. Three +~~~ + +are all interpreted as + +a. One +b. Two +c. Three + +If this is what's going on, you can use: + +`p\. 49` + +to get: + +p\. 49 + +or adjust your spacing so it isn't the first thing on a line. +"""]] diff --git a/doc/forum/__34__S.__34___gets_replace_by___34__a.__34___in_my_ikiwiki/comment_3_a12366764c50df62a4734c73418b592e._comment b/doc/forum/__34__S.__34___gets_replace_by___34__a.__34___in_my_ikiwiki/comment_3_a12366764c50df62a4734c73418b592e._comment new file mode 100644 index 000000000..895cf769d --- /dev/null +++ b/doc/forum/__34__S.__34___gets_replace_by___34__a.__34___in_my_ikiwiki/comment_3_a12366764c50df62a4734c73418b592e._comment @@ -0,0 +1,13 @@ +[[!comment format=mdwn + username="smcv" + subject="comment 3" + date="2015-08-12T16:08:10Z" + content=""" +There is a `MKD_NOALPHALIST` option to discount (assuming that's the Markdown implementation you're using), but it isn't clear which way should be preferred in general. + +With that option off, people complain that they can't have alphabetical sub-lists (Google for \"markdown alpha list\" to see this feature request in various places). + +With that option on, you get unexpected results for things like your example. It's also liable to break initials (`S. J. McVittie is an ikiwiki contributor`) or the French abbreviation for Monsieur (`M. Poirot is a famous French-speaking detective`). + +The original Markdown didn't have lettered lists; neither does CommonMark, although it's a feature request in CommonMark. +"""]] diff --git a/doc/forum/problem_with_git_after_a_commit_of_ikiwiki/comment_2_7ef0d94691095f1cd316ad0d2c423796._comment b/doc/forum/problem_with_git_after_a_commit_of_ikiwiki/comment_2_7ef0d94691095f1cd316ad0d2c423796._comment new file mode 100644 index 000000000..88533ced7 --- /dev/null +++ b/doc/forum/problem_with_git_after_a_commit_of_ikiwiki/comment_2_7ef0d94691095f1cd316ad0d2c423796._comment @@ -0,0 +1,15 @@ +[[!comment format=mdwn + username="http://christian.amsuess.com/chrysn" + subject=""please tell me" when this happens, severity" + date="2015-11-15T13:45:29Z" + content=""" +i think that this is an issue to be considered, as it breaks ikiwiki installations that previously worked. the scenario this happened in for me was this: + +ages ago, i set up a dedicated user for ikiwiki on a server, and created wikis there with cgi and commit access for power users. things worked nicely, commits from web users showed up with author \"username \" and committer \"gitusername \"; not exactly pretty, but it worked. + +when upgrading git, the wiki kept working for directly pushing users, but when web users did a change, it was written in the source directory, but not committed (with the error message showing up in the log, but no error message to the users). only when they looked in the recent changes, they noted their modifications missing, and power users would never see their changes. + +i suggest that ikiwiki provide a default value for committer (eg. \"ikiwiki \") to circumvent this issue. + +(i didn't pinpoint the exact git version this changed in, but it's between 1.7 and 1.9). +"""]] diff --git a/doc/forum/problem_with_git_after_a_commit_of_ikiwiki/comment_3_ea7ae2cf2e1f897a653a81bd20fe55db._comment b/doc/forum/problem_with_git_after_a_commit_of_ikiwiki/comment_3_ea7ae2cf2e1f897a653a81bd20fe55db._comment new file mode 100644 index 000000000..5b06d065f --- /dev/null +++ b/doc/forum/problem_with_git_after_a_commit_of_ikiwiki/comment_3_ea7ae2cf2e1f897a653a81bd20fe55db._comment @@ -0,0 +1,9 @@ +[[!comment format=mdwn + username="smcv" + subject="comment 3" + date="2015-11-30T19:58:43Z" + content=""" +I've made essentially the change [[chrysn]] suggested in git master. It will be in the next release. + +I've also added Debian [autopkgtest](https://tracker.debian.org/pkg/autopkgtest) support; conveniently, it exhibited this bug, so we can make sure it stays fixed. +"""]] diff --git a/doc/git.mdwn b/doc/git.mdwn index dd066c320..85e3e07bc 100644 --- a/doc/git.mdwn +++ b/doc/git.mdwn @@ -83,6 +83,7 @@ think about merging them. This is recommended. :-) * [[jcflack]] `git://github.com/jcflack/ikiwiki.git` * [[users/mjd]] `https://github.com/mjdominus/ikiwiki.git` ([[browse|https://github.com/mjdominus/ikiwiki]]) * [[users/kjs]] `git://src.kalleswork.net/ikiwiki.git` +* bfree `git://github.com/bfree/ikiwiki.git` ## branches diff --git a/doc/ikiwiki/directive/inline.mdwn b/doc/ikiwiki/directive/inline.mdwn index 32fecd1bf..da759fc19 100644 --- a/doc/ikiwiki/directive/inline.mdwn +++ b/doc/ikiwiki/directive/inline.mdwn @@ -5,7 +5,7 @@ The most common use of inlining is generating blogs and RSS or Atom feeds. Example: - \[[!inline pages="blog/* and !*/Discussion" show="10" rootpage="blog"]] + \[[!inline pages="blog/* and !*/Discussion" limit="10" rootpage="blog"]] Any pages that match the specified [[PageSpec]] (in the example, any [[SubPage]] of "blog") will be part of the blog, and the newest 10 @@ -46,9 +46,11 @@ There are many parameters you can use with the `inline` directive. These are the commonly used ones: * `pages` - A [[PageSpec]] of the pages to inline. -* `show` - Specify the maximum number of matching pages to inline. +* `limit` - Specify the maximum number of matching pages to inline. Default is 10, unless archiving, when the default is to show all. Set to 0 to show all matching pages. + In older versions of IkiWiki this parameter was called `show`, which + also still works. * `archive` - If set to "yes", only list page titles and some metadata, not full contents. * `title` - Sets the title of the rss feed if one is generated. @@ -98,8 +100,10 @@ Here are some less often needed parameters: were created in the same commit, sort them by the name of the page (equivalent to `sort="age title"`). * `reverse` - If set to "yes", causes the sort order to be reversed. -* `feedshow` - Specify the maximum number of matching pages to include in - the rss/atom feeds. The default is the same as the `show` value above. +* `feedlimit` - Specify the maximum number of matching pages to include in + the rss/atom feeds. The default is the same as the `limit` value above. + In older versions of IkiWiki this parameter was called `feedshow`, which + also still works. * `feedonly` - Only generate the feed, do not display the pages inline on the page. * `quick` - Build archives in quick mode, without reading page contents for @@ -126,7 +130,7 @@ Here are some less often needed parameters: * `trail` - If set to "yes" and the [[!iki plugins/trail desc=trail]] plugin is enabled, turn the inlined pages into a trail with next/previous links, by passing the same options to [[ikiwiki/directive/trailitems]]. The `skip` - and `show` options are ignored by the trail, so the next/previous links + and `limit` options are ignored by the trail, so the next/previous links traverse through all matching pages. [[!meta robots="noindex, follow"]] diff --git a/doc/ikiwiki/directive/pagestats.mdwn b/doc/ikiwiki/directive/pagestats.mdwn index 8d904f5a3..ab8397366 100644 --- a/doc/ikiwiki/directive/pagestats.mdwn +++ b/doc/ikiwiki/directive/pagestats.mdwn @@ -28,13 +28,22 @@ Or to display a cloud of tags related to Linux, you could use: \[[!pagestats pages="tags/* and !tags/linux" among="tagged(linux)"]] -The optional `show` parameter limits display to the specified number of +The optional `limit` parameter limits display to the specified number of pages. For instance, to show a table of the top ten pages with the most links: - \[[!pagestats style="table" show="10"]] + \[[!pagestats style="table" limit="10"]] + +In older versions of IkiWiki this parameter was called `show`; +that name still works, if its value is numeric. The optional `class` parameter can be used to control the class of the generated tag cloud `div` or page stats `table`. +By default, the names of pages are shown. The `show` parameter +can be used (with a non-numeric value) to show the titles or descriptions +of pages instead (as set by the [[meta]] directive). For example: + + \[[!pagestats pages="tags/*" show="title"]] + [[!meta robots="noindex, follow"]] diff --git a/doc/ikiwiki/wikilink/discussion.mdwn b/doc/ikiwiki/wikilink/discussion.mdwn index 58bb8ca06..65a45b99f 100644 --- a/doc/ikiwiki/wikilink/discussion.mdwn +++ b/doc/ikiwiki/wikilink/discussion.mdwn @@ -13,6 +13,13 @@ BTW, ikiwiki doesn't displays the #foo anchor in the example --[[Paweł|ptecza]] +> Just found out that headers are already indexed with `index1h1 ... indexMhN`. +> So one can link to headings with `\[[page|#index2h3]]` for example. +> It would be much easier though if it was translated to the heading's name, +> so on could to `\[[page#name]]`. --Timoses + +>> That's [[plugins/headinganchors]]. --smcv + > No such syntax exists in markdown. ikiwiki could certainly have a > [[preprocessor_directive|directive]] for it, though. > --[[JoshTriplett]] @@ -91,3 +98,21 @@ I like your suggestion because it's short and conscise. However, it would be nic > I'm not sure that it is a good idea to refer to arbitrary meta tags in links in the first place - what other meta tags would you really be interested in? Description? Author? It makes sense to me to refer to the title, because that is a "label" for a page. > As for syntax, I do like the \[[|foobar]] idea, or perhaps something like what PmWiki does - they have their links the other way around, so they go \[[page|label]] and for link-text-as-title, they have \[[page|+]]. So for IkiWiki, that would be \[[+|page]] I guess. > --[[KathrynAndersen]] + +---- + +I am thinking that it would be useful to parse parts of one wiki page into another. Here something like `\[[page=anchor]]` would be really nice to simply parse the content of that section, as opposed to `\[[page#anchor]]` which only creates a link to that section. -- [[Timoses]] + +> When you say "parse parts" do you mean taking a section of a wiki page and including its text +> in a different wiki page? So for instance you might want `/installation` to include the +> `Downloading binaries` section of `/download`, but not the rest of that page? +> +> That's really a separate feature request (inlining isn't linking), and is also rather difficult +> to do in IkiWiki's processing model: at the time that [[wikilinks|ikiwiki/wikilink]] and +> [[directives|ikiwiki/directive]] are processed, the page content is still Markdown or +> whatever other format is relevant, not HTML. That makes sections difficult to identify. +> +> I would suggest making the desired section a separate page (for example you might +> call it `/download/binaries`), and including that whole page everywhere it should +> appear (for example in both `/download` and `/installation`) using +> `\[[!inline pages="download/binaries" raw=yes]]`. --[[smcv]] diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn index 47a13692a..2ce5f885f 100644 --- a/doc/ikiwikiusers.mdwn +++ b/doc/ikiwikiusers.mdwn @@ -213,3 +213,5 @@ Personal sites and blogs * [Igreja Universal do Reino do Iuri](http://iuri.tem.blog.br) * [Mim](http://mim.tem.blog.br) * [Mídia Capoeira](https://capoeira.li/blog/) - independent journalism initiative +* [Sean Whitton's personal website](http://spwhitton.name/) +* [Matto's personal website](https://box.matto.nl) diff --git a/doc/news/version_3.20140916.mdwn b/doc/news/version_3.20140916.mdwn deleted file mode 100644 index 1cf09e652..000000000 --- a/doc/news/version_3.20140916.mdwn +++ /dev/null @@ -1,34 +0,0 @@ -ikiwiki 3.20140916 released with [[!toggle text="these changes"]] -[[!toggleable text=""" - * Don't double-decode CGI submissions with Encode.pm >= 2.53, - fixing "Error: Cannot decode string with wide characters". - Thanks, [[Antoine Beaupré|anarcat]] - * Avoid making trails depend on everything in the wiki by giving them - a better way to sort the pages - * Don't let users post comments that won't be displayed - * Fix encoding of Unicode strings in Python plugins. - Thanks, [[chrysn]] - * Improve performance and correctness of the \[[!if]] directive - * Let \[[!inline rootpage=foo postform=no]] disable the posting form - * Switch default \[[!man]] shortcut to manpages.debian.org. Closes: #[700322](http://bugs.debian.org/700322) - * Add UUID and TIME variables to edittemplate. Closes: #[752827](http://bugs.debian.org/752827) - Thanks, Jonathon Anderson - * Display pages in linkmaps as their pagetitle (no underscore escapes). - Thanks, [[chrysn]] - * Fix aspect ratio when scaling small images, and add support for - converting SVG and PDF graphics to PNG. - Thanks, [[chrysn]] - - suggest ghostscript (required for PDF-to-PNG thumbnailing) - and libmagickcore-extra (required for SVG-to-PNG thumbnailing) - - build-depend on ghostscript so the test for scalable images can be run - * In the CGI wrapper, incorporate $config{ENV} into the environment - before executing Perl code, so that PERL5LIB can point to a - non-system-wide installation of IkiWiki. - Thanks, Lafayette Chamber Singers Webmaster - * filecheck: accept MIME types not containing ';' - * autoindex: index files in underlays if the resulting pages aren't - going to be committed. Closes: #[611068](http://bugs.debian.org/611068) - * Add \[[!templatebody]] directive so template pages don't have to be - simultaneously a valid template and valid HTML - * Add [[smcv]] to Uploaders and release to Debian"""]] -[[!meta date="2014-09-16 11:16:52 +0100"]] diff --git a/doc/news/version_3.20150614.mdwn b/doc/news/version_3.20150614.mdwn new file mode 100644 index 000000000..1b08f5a79 --- /dev/null +++ b/doc/news/version_3.20150614.mdwn @@ -0,0 +1,8 @@ +ikiwiki 3.20150614 released with [[!toggle text="these changes"]] +[[!toggleable text=""" + * inline: change default sort order from age to "age title" for + determinism, partially fixing deterministic build for git-annex, + ikiwiki-hosting etc. (Closes: #[785757](http://bugs.debian.org/785757)) + * img: avoid ImageMagick misinterpreting filenames containing a colon + * img test: set old timestamp on source file that will change, so that + the test will pass even if it takes less than 1 second"""]] \ No newline at end of file diff --git a/doc/plugins/contrib/pandoc.mdwn b/doc/plugins/contrib/pandoc.mdwn index c93803605..b9501a034 100644 --- a/doc/plugins/contrib/pandoc.mdwn +++ b/doc/plugins/contrib/pandoc.mdwn @@ -4,4 +4,4 @@ This plugin enables Markdown processing using [Pandoc](http://johnmacfarlane.net This is an expanded and updated version of [[Jason Blevin|users/jasonblevins]]'s pandoc plugin. Get it and see further details at . -A version, merging enhancements in various forks is available at . PR are welcome. +Several authors are maintaining a code here: . Several enhancements found on github were merged and we keep developing the plugin. PR are welcome. :) diff --git a/doc/plugins/contrib/plusone.mdwn b/doc/plugins/contrib/plusone.mdwn index a8d4c67fd..af7c06caf 100644 --- a/doc/plugins/contrib/plusone.mdwn +++ b/doc/plugins/contrib/plusone.mdwn @@ -30,6 +30,6 @@ The plusone directive allows to override the automativally generated url by spec ## DOWNLOAD -* single file: [plusone.pm](http://git.recluse.de/?p=users/bzed/ikiwiki.git;a=blob_plain;f=IkiWiki/Plugin/plusone.pm;hb=refs/heads/plusone) -* browse repository: -* git repo: `git://git.recluse.de/users/bzed/ikiwiki.git` or (Use the plusone branch) +* single file: [plusone.pm](https://git.bzed.at/raw/~bzed/ikiwiki.git/plusone/IkiWiki!Plugin!plusone.pm) +* browse repository: +* git repo: `git://git.recluse.de/users/bzed/ikiwiki.git` or (Use the plusone branch) diff --git a/doc/plugins/contrib/tracking.mdwn b/doc/plugins/contrib/tracking.mdwn index 06d4120cd..d2ed71e78 100644 --- a/doc/plugins/contrib/tracking.mdwn +++ b/doc/plugins/contrib/tracking.mdwn @@ -25,6 +25,6 @@ This plugin includes the necessary tracking codes for Piwik and/or Google Analyt ## DOWNLOAD -* single files: [tracking.pm](http://git.recluse.de/?p=users/bzed/ikiwiki.git;a=blob;f=IkiWiki/Plugin/tracking.pm;hb=refs/heads/tracking) [piwik.tmpl](http://git.recluse.de/?p=users/bzed/ikiwiki.git;a=blob;f=templates/piwik.tmpl;hb=refs/heads/tracking) [google_analytics.tmpl](http://git.recluse.de/?p=users/bzed/ikiwiki.git;a=blob;f=templates/google_analytics.tmpl;hb=refs/heads/tracking) -* browse repository: -* git repo: `git://git.recluse.de/users/bzed/ikiwiki.git` or (Use the tracking branch) +* single files: [tracking.pm](https://git.bzed.at/raw/~bzed/ikiwiki.git/tracking/IkiWiki!Plugin!tracking.pm) [piwik.tmpl](https://git.bzed.at/raw/~bzed/ikiwiki.git/tracking/templates!piwik.tmpl) [google_analytics.tmpl](https://git.bzed.at/raw/~bzed/ikiwiki.git/tracking/templates!google_analytics.tmpl) +* browse repository: +* git repo: `git://git.bzed.at/~bzed/ikiwiki.git` or (Use the tracking branch) diff --git a/doc/plugins/img/discussion.mdwn b/doc/plugins/img/discussion.mdwn index c87469d6f..bc525a562 100644 --- a/doc/plugins/img/discussion.mdwn +++ b/doc/plugins/img/discussion.mdwn @@ -16,3 +16,23 @@ It would be handy if the `class` and `id` tags were passed through to the surrou I have created a patch that allows the image to be sharpened when resampled. There is also an additional option to interlace the image using plane for progressive display. --[[kjs]] + +--- + +Is it possible to give an external image URL, must the image be local? One use case would be displaying *badges*, like [[the number of stars|https://img.shields.io/github/stars/joeyh/ikiwiki.svg]] of a [[github project|http://github.com/joeyh/ikiwiki]], but ``\[[!img https://img.shields.io/github/stars/joeyh/ikiwiki.svg]]`` does not work: [[!img https://img.shields.io/github/stars/joeyh/ikiwiki.svg]]. --[[Louis|spalax]] + +> Eventually wrote my own plugin: [[plugins/contrib/rimg]]. --[[Louis|spalax]] + +>> All the markup formats supported by ikiwiki can do raw HTML (possibly +>> filtered), so you can use `` for basic remote images; or you can +>> use your chosen markup format's image syntax, like +>> !\[some stars](https://img.shields.io/github/stars/joeyh/ikiwiki.svg) +>> for Markdown. I don't think ikiwiki directives should duplicate markup +>> formats' features unless it makes a significant difference to functionality +>> or usability. --[[smcv]] + +>>> I totally agree. I never think about using HTML in my markdown documents, +>>> and I did not know the `!\[Alt text](image url)`. Anyway, this plugin took +>>> me less than one hour to write and publish; I will delete it soon. +>>> +>>> Anyway, thanks for your answer. --[[Louis|spalax]] diff --git a/doc/plugins/notifyemail.mdwn b/doc/plugins/notifyemail.mdwn index 642b266f8..7a5b53226 100644 --- a/doc/plugins/notifyemail.mdwn +++ b/doc/plugins/notifyemail.mdwn @@ -1,7 +1,7 @@ This plugin allows users to subscribe to pages, and emails them when those pages are created or changed. -It needs the [[!cpan Mail::SendMail]] perl module, and sends mail +It needs the [[!cpan Mail::Sendmail]] perl module, and sends mail using the local MTA. Each user can configure which pages they are interested in, using an diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn index 95f4a39df..b6d0611dc 100644 --- a/doc/plugins/write.mdwn +++ b/doc/plugins/write.mdwn @@ -741,7 +741,7 @@ Ordinary [[WikiLinks|ikiwiki/WikiLink]] appear in `%links`, but not in ### `%pagesources` -The `%pagesources` has can be used to look up the source filename +The `%pagesources` hash can be used to look up the source filename of a page. So the key is the page name, and the value is the source filename. Do not modify this hash. diff --git a/doc/sandbox.mdwn b/doc/sandbox.mdwn index b9f68de5a..25e5324c6 100644 --- a/doc/sandbox.mdwn +++ b/doc/sandbox.mdwn @@ -1,15 +1,14 @@ -[[!osm ]] -[[!waypoint lat="45°30N" lon="73°40W" name="My city" tag="city"]] - +[[!template id=test45 text="""Here is the text to insert into my note."""]] +dddddddddddd [[!meta date="Thu Jun 16 22:04:33 2005" updated="Thu Dec 22 01:23:20 2011"]] This is the [[SandBox]], a page anyone can edit to try out ikiwiki (version [[!version ]]). - +vvvv CamelCase ? -What about [[this page]]? +What about [[this page]], nono better [[that page]]? hello world (right back at ya) @@ -17,6 +16,8 @@ wait how does versioning work test, is it being saved? Probably. I will check. This seems really straightforward. +Hello! + ~~~ pre formated text? ~~~ @@ -31,6 +32,7 @@ A block of text >> Without a space works too. >>> to three levels +This is pretty sweet Azerty ** Qsdf ** diff --git a/doc/sandbox/that_page.mdwn b/doc/sandbox/that_page.mdwn new file mode 100644 index 000000000..8eacc87d6 --- /dev/null +++ b/doc/sandbox/that_page.mdwn @@ -0,0 +1,5 @@ +## This is that page + +That page is goood. + +How to set viewing permissions? diff --git a/doc/templates.mdwn b/doc/templates.mdwn index c45316e44..378e579ba 100644 --- a/doc/templates.mdwn +++ b/doc/templates.mdwn @@ -92,7 +92,7 @@ Here is a full list of the template files used: * `editpage.tmpl`, `editconflict.tmpl`, `editcreationconflict.tmpl`, `editfailedsave.tmpl`, `editpagegone.tmpl`, `pocreatepage.tmpl`, `editcomment.tmpl` `commentmoderation.tmpl`, `renamesummary.tmpl`, - `passwordmail.tmpl`, `emailauth.tmpl, `login-selector.tmpl`, + `passwordmail.tmpl`, `emailauth.tmpl`, `login-selector.tmpl`, `revert.tmpl` - Parts of ikiwiki's user interface; do not normally need to be customised. diff --git a/doc/theme_market.mdwn b/doc/theme_market.mdwn index f825e2ae3..3cd6149a9 100644 --- a/doc/theme_market.mdwn +++ b/doc/theme_market.mdwn @@ -12,6 +12,10 @@ Feel free to add your own [[theme|themes]] here, but first consider writing a si * **[[Bootstrap theme|http://anonscm.debian.org/gitweb/?p=users/jak/website.git;a=summary]]**, contributed by [[JAK LINUX|http://jak-linux.org/about/]], based on [[Twitter Bootstrap|http://twitter.github.com/bootstrap/]] - * **[[Bootstrap 3|https://github.com/ramseydsilva/ikiwiki-bootstrap-theme]]**, contributed by [[ramsey]], based on [[Twitter Bootstrap 3|http://getbootstrap.com]] + * **[[Bootstrap 3|https://github.com/ramseydsilva/ikiwiki-bootstrap-theme]]**, contributed by [[ramsey]], based on [[Twitter Bootstrap 3|http://getbootstrap.com]], also modified by [dequis.org](https://github.com/dequis/ikiwiki-bootstrap-theme/tree/dequis.org) * **[[Bootstrap 2|https://notabug.org/hiatobr/ikiwiki-bootstrap-theme-2]]**, contributed by [Hacklab Independência](https://hi.ato.br), a fork of [[ramsey]]'s [[Bootstrap 3|https://github.com/ramseydsilva/ikiwiki-bootstrap-theme]] original work. You may see examples on [[my user page|/users/desci]] + + * yet another **[Bootstrap 3](https://github.com/anderbubble/ikiwiki-bootstrap)** theme, contributed by anderbubble + + * and one more **[Bootstrap 3](https://github.com/tgpfeiffer/ikiwiki-bootstrap-template)** theme (can't you guys get along already?!), contributed by tgpfeiffer, this one shipping a copy of the bootstrap files diff --git a/doc/tips/Hosting_Ikiwiki_and_master_git_repository_on_different_machines.mdwn b/doc/tips/Hosting_Ikiwiki_and_master_git_repository_on_different_machines.mdwn index 49ae172d1..6af4f9619 100644 --- a/doc/tips/Hosting_Ikiwiki_and_master_git_repository_on_different_machines.mdwn +++ b/doc/tips/Hosting_Ikiwiki_and_master_git_repository_on_different_machines.mdwn @@ -75,7 +75,7 @@ repository. ## Configuring the wiki on the wiki machine so that it uses the repository of the git machine - Configure ssh so that it uses the ssh key `id_SITE` to connect to the git - michine: add the following lines to file `~/.ssh/config` on the ikiwiki + machine: add the following lines to file `~/.ssh/config` on the ikiwiki machine: Host server.name.of.the.git.machine diff --git a/doc/tips/bootstrap_themes_evaluation.mdwn b/doc/tips/bootstrap_themes_evaluation.mdwn new file mode 100644 index 000000000..f1f655301 --- /dev/null +++ b/doc/tips/bootstrap_themes_evaluation.mdwn @@ -0,0 +1,14 @@ +There are now 4 or more ikiwiki bootstrap themes flying around in the [[theme_market]]. It is quite confusing. + +In order to figure out exactly which ones fares the best, i made test wikis for all of them. All the wikis have a sidebar with the sidebar plugin enable, so if you don't see it, it's because the theme doesn't support it. + +* demos the [jak-linux.org](http://jak-linux.org/about/) original bootstrap 2 theme, now updated to 3.3.4. note that this theme needs the [bootmenu](https://github.com/dnstap/dnstap-ikiwiki/blob/master/libdir/IkiWiki/Plugin/bootmenu.pm) plugin to generate a menu, and doesn't support the sidebar plugin +* demos the [ramseydsilva](https://github.com/ramseydsilva/ikiwiki-bootstrap-theme) bootstrap 3 theme +* demos the [hiatobr](https://notabug.org/hiatobr/ikiwiki-bootstrap-theme-2) fork of the above +* demos the [dequis](https://github.com/dequis/ikiwiki-bootstrap-theme) theme, *another* fork of the above +* demos the [tgpfeiffer](https://github.com/tgpfeiffer/ikiwiki-bootstrap-template) rewrite +* demos the theme from [anderbubble](https://github.com/anderbubble/ikiwiki-bootstrap), another separate implementation + +Hopefully this will help others figure out what the heck is going on here... Personnally, I think I prefer the JAK linux one, but i don't like the idea of depending on a theme-specific plugin... -- [[anarcat]] + +Update: I ended up forking the Jak theme also... My experience has been documented in [this blog post](http://anarc.at/blog/2015-09-09-bootstrap/?updated). --[[anarcat]] diff --git a/doc/tips/distributed_wikis.mdwn b/doc/tips/distributed_wikis.mdwn index 92d4ce9da..229f27148 100644 --- a/doc/tips/distributed_wikis.mdwn +++ b/doc/tips/distributed_wikis.mdwn @@ -15,7 +15,7 @@ There are several possible level of decentralisation: 1. [[a simple HTML mirror|tips/Git_repository_and_web_server_on_different_hosts/]] 2. [[separate ikiwiki and git servers|tips/Hosting_Ikiwiki_and_master_git_repository_on_different_machines]] 3. separate `srcdir`, still requires a central bare repo - uses [[plugins/pinger]] - 4. completely distinct ikiwiki installs, synchronised with [[plugins/contrib/gitpush]] + 4. completely distinct ikiwiki installs Here's a graphic overview of those: @@ -60,7 +60,7 @@ Step by step setup instructions for this are detailed below. [[!img decentralized_wikis.svg size=400x]] In this configuration, each wiki is fully independent and pushes its -changes to other wikis using the [[plugins/contrib/gitpush]] plugin. +changes to other wikis using git. ## Step by step setup instructions @@ -207,12 +207,11 @@ The following entries will be different from the above setup file: git_wrapper: /home/user/source.git/hooks/post-commit git_test_receive_wrapper: /home/user/source.git/hooks/pre-receive -To do this, the mirror needs to push back to the master, using the [[plugins/contrib/gitpush]] plugin: +To make the mirror push back to the master, use, for example: - git_push_to: - - git://wiki.example.com/ + git_wrapper_background_command: git push git://wiki.example.com/ -This will ensure that commits done on the mirror will propagate back to the master. +This will help ensure that commits done on the mirror will propagate back to the master. ## Other ideas diff --git a/doc/todo/Option_linktext_for_pagestats_directive.mdwn b/doc/todo/Option_linktext_for_pagestats_directive.mdwn index ab5eb229b..f85529980 100644 --- a/doc/todo/Option_linktext_for_pagestats_directive.mdwn +++ b/doc/todo/Option_linktext_for_pagestats_directive.mdwn @@ -201,3 +201,5 @@ browse=http://git.pseudorandom.co.uk/smcv/ikiwiki.git/shortlog/refs/heads/pagest >> Here's a branch. It depends on my `ready/limit` branch >> from [[todo/pick a new canonical name for equivalent of SQL limit]]. >> --[[smcv]] + +>>> [[Merged|done]] --[[smcv]] diff --git a/doc/todo/Page_template_with_RTL_support.mdwn b/doc/todo/Page_template_with_RTL_support.mdwn new file mode 100644 index 000000000..7f11fd5b5 --- /dev/null +++ b/doc/todo/Page_template_with_RTL_support.mdwn @@ -0,0 +1,16 @@ +Hi, + +I've modified page.tmpl to take into account rtl languages. Basically I've modified the `` tag to generate + + + +if the PO plugin is enabled. + +I can't seem to attach a patch - sending it to Joey. +Copy pasting markup here seems to be quite problematic. +Pasting it here: https://paste.debian.net/318146/ + + +Cheers. + +> [[applied|done]] --[[Joey]] diff --git a/doc/todo/add_aria_landmarks_to_make_ikiwiki_websites_more_accessible.mdwn b/doc/todo/add_aria_landmarks_to_make_ikiwiki_websites_more_accessible.mdwn index d13fa0a6f..81cf2c49a 100644 --- a/doc/todo/add_aria_landmarks_to_make_ikiwiki_websites_more_accessible.mdwn +++ b/doc/todo/add_aria_landmarks_to_make_ikiwiki_websites_more_accessible.mdwn @@ -65,7 +65,9 @@ General points: The `role` attribute is not allowed by the XHTML 1.0 Strict DTD, so we should only emit it in HTML5 mode (and we should probably -[[todo/generate_HTML5_by_default]]). +[[todo/generate_HTML5_by_default]]). --[[smcv]] + +> Now we do. --[[smcv]] Specific roles: @@ -93,3 +95,5 @@ but only in HTML5 mode for the reason given above. I have not applied a role to the sidebar just yet. --[[smcv]] + +> Feedback desired. Tagging this [[reviewed]] to take it off the patches list --[[smcv]] diff --git a/doc/todo/anti-spam_protection.mdwn b/doc/todo/anti-spam_protection.mdwn index e39d4c19b..f0c6c19b6 100644 --- a/doc/todo/anti-spam_protection.mdwn +++ b/doc/todo/anti-spam_protection.mdwn @@ -28,3 +28,9 @@ There is a [[plugins/blogspam]] plugin that uses the blogspam.org service to check for common spam signatures. --[[Joey]] [[done]] + +---- + +I am sorry to say that neither those solutions are sufficient for a site that allows anonymous comments. blogspam lets thousands of commits through here, as i described in [[todo/commandline_comment_moderation]]. Now, maybe I didn't configure blogspam correctly, I am not sure. I just enabled the plugin and set `blogspam_pagespec: postcomment(blog/*) or */discussion`. I have also imported the blocklist from this wiki's ikiwiki.setup, generated from [[spam_fighting]]. I have had to add around 10 IPs to that list already. + +It seems to me a list of blocked URLs or blocked IPs as mentionned above would be an interesting solution. blogspam is great, but the API doesn't seem to support reporting IPs or bad content back, which seems to be a major problem in working around false negatives. I'm tempted to just remove the `done` tag above, because this is clearly not fixed for me here... --[[anarcat]] diff --git a/doc/todo/commandline_comment_moderation.mdwn b/doc/todo/commandline_comment_moderation.mdwn new file mode 100644 index 000000000..429c11536 --- /dev/null +++ b/doc/todo/commandline_comment_moderation.mdwn @@ -0,0 +1,60 @@ +So I have enabled the [[moderatedcomments]] plugin on my wiki. and good thing that! around 1000 spammy comments showed up in the last 3 months! Awful! + +It's pretty hard to figure out the ham and the spam in there. One thing I was hoping was to use the power of the commandline to filter through all that stuff. Now, it seems there's only a "ikiwiki-comment" tool now, and nothing to examine the moderated comments. + +It seems to me it would be great to have some tool to filter through that... + + +So it turns out it was over 3000 comments. The vast majority of those (every one but 42 comments) were from the IP `46.161.41.34` which i recommend null-routing everywhere. I used the following shell magic to figure that out: + +
      +#!/bin/sh
      +
      +set -e
      +
      +cd .ikiwiki/transient || {
      +    echo could not find comments, make sure you are in a ikiwiki source directory.
      +    exit 1
      +    }
      +# count the number of comments
      +echo found $(find . -name '*._comment_pending' | wc -l) pending comments
      +# number of comments per IP
      +echo IP distribution:
      +find . -name '*._comment_pending' | xargs grep -h ip= | sort | uniq -c | sort -n
      +# generate a banlist for insertion in `banusers`, assuming all the
      +# pending comments are spam
      +echo banlist would look like:
      +find . -name '*._comment_pending' | xargs grep -h ip= | sort -u| sed 's/ ip="//;s/"//;s/^/- ip(/;s/$/)/'
      +
      +echo to remove comments from a specific IP, use one of those:
      +find . -name '*._comment_pending' | xargs grep -h ip= | sort -u \
      +    | sed 's/ ip="//;s/"//;' \
      +    | while read ip; do
      +          echo "find . -name '*._comment_pending' | xargs grep -l 'ip=\"$ip\"'| xargs rm"
      +      done
      +echo to flush all pending comments, use:
      +echo "find . -name '*._comment_pending' -delete"
      +
      + +The remaining 42 comments I reviewed throught the web interface, then flushed using the above command. My final addition to the banlist is: + +
      +- ip(159.224.160.225)
      +- ip(176.10.104.227)
      +- ip(176.10.104.234)
      +- ip(188.143.233.211)
      +- ip(193.201.227.41)
      +- ip(195.154.181.152)
      +- ip(213.238.175.29)
      +- ip(31.184.238.11)
      +- ip(37.57.231.112)
      +- ip(37.57.231.204)
      +- ip(46.161.41.34)
      +- ip(46.161.41.199)
      +- ip(95.130.13.111)
      +- ip(95.181.178.142)
      +
      + + --[[anarcat]] + +Update: i made a script, above. And the banlist is much larger now so the above list is pretty much out of date now... --[[anarcat]] diff --git a/doc/todo/headless_git_branches.mdwn b/doc/todo/headless_git_branches.mdwn index bedf21d0c..d9bb38099 100644 --- a/doc/todo/headless_git_branches.mdwn +++ b/doc/todo/headless_git_branches.mdwn @@ -77,6 +77,55 @@ at git show-ref to deduce whether to throw an error or not. > Ah, but then git-log would still complain "bad revision 'HEAD'" > --[[Joey]] + jrayhawk@piny:/srv/git/jrayhawk.git$ time perl -e 'for( $i = 1; $i < 10000; $i++) { system("git", "show-ref", "--quiet", "--verify", "--", "refs/heads/master"); }' + + real 0m10.988s + user 0m0.120s + sys 0m1.210s + +> FWIW, "an extra millisecond per edit" vs "full git coverage" is no +> contest for me; I use that patch on seven different systems, including +> freedesktop.org, because I've spent more time explaining to users either +> why Ikiwiki won't work on their empty repositories or why their +> repositories need useless initial commits (a la Branchable) that make +> pushing not work and why denyNonFastForwards=0 and git push -f are +> necessary than all the milliseconds that could've been saved in the +> world. +> +> But, since we're having fun rearranging deck chairs on the RMS Perl +> (toot toot)... +> +> There's some discrepency here I wasn't expecting: + + jrayhawk@piny:/srv/git/jrayhawk.git$ time dash -c 'i=0; while [ $i -lt 10000 ]; do i=$((i+1)); git show-ref --quiet --verify -- refs/heads/master; done' + + real 0m9.986s + user 0m0.170s + sys 0m0.940s + +> While looking around in the straces, I notice Perl, unlike {b,d}ash +> appears to do PATH lookup on every invocation of git, adding up to +> around 110 microseconds apiece on a post-2.6.38 16-thread QPI system: + + 29699 0.000112 execve("/home/jrayhawk/bin/git", ["git", "show-ref", "--quiet", "--verify", "--", "refs/heads/master"], [/* 17 vars */]) = -1 ENOENT (No such file or directory) + 29699 0.000116 execve("/usr/local/bin/git", ["git", "show-ref", "--quiet", "--verify", "--", "refs/heads/master"], [/* 17 vars */]) = -1 ENOENT (No such file or directory) + 29699 0.000084 execve("/usr/bin/git", ["git", "show-ref", "--quiet", "--verify", "--", "refs/heads/master"], [/* 17 vars */]) = 0 + +> You can probably save a reasonable number of context switches and +> RCU-heavy (or, previously, lock-heavy) dentry lookups by doing a Perl +> equivalent of `which git` and using the result. It might even add up to +> a whole millisecond in some circumstances! +> +> No idea where the rest of that time is going. Probably cache misses +> on the giant Perl runtime or something. +> +> ... +> +> Now I feel dirty for having spent more time talking about optimization +> than that optimization is likely to save. This must be what being an +> engineer feels like. +> --jrayhawk +
       @@ -474,7 +478,10 @@ sub rcs_update () {
        	# Update working directory.
      @@ -98,6 +147,19 @@ called on every refresh. Probably could be dealt with similarly as above.
       Also, is there any point in breaking the pull up into a
       fetch followed by a merge? --[[Joey]] 
       
      +> The same benchmarking applies, at least.
      +>
      +> Re: fetch/merge: We can't test for the nonexistence of the origin branch
      +> without fetching it, and we can't merge it if it is, indeed,
      +> nonexistant.
      +>
      +> Unless you're implying that it would be better to just spam stderr with
      +> unnecessary scary messages and/or ignore/suppress them and lose the
      +> ability to respond appropriately to every other error condition. As
      +> maintainer, you deal with a disproportionate amount of the resulting
      +> support fallout, so I'm perfectly satisfied letting you make that call.
      +> --jrayhawk
      +
       
       @@ -559,7 +566,7 @@ sub rcs_commit_helper (@) {
        	# So we should ignore its exit status (hence run_or_non).
      @@ -111,3 +173,6 @@ fetch followed by a merge? --[[Joey]]
       
      This seems fine to apply. --[[Joey]] + +> Hooray! +> --jrayhawk diff --git a/doc/todo/need_a_way_to_close_a_bug_via_a_comment.mdwn b/doc/todo/need_a_way_to_close_a_bug_via_a_comment.mdwn new file mode 100644 index 000000000..dfa52cfc0 --- /dev/null +++ b/doc/todo/need_a_way_to_close_a_bug_via_a_comment.mdwn @@ -0,0 +1,12 @@ +When ikiwiki is being used for issue tracking, it would be convenient to +have a way to close a bug from a comment, rather than editing the bug +report page in a wiki-manner. + +So, some way to set a tag from a comment, such that it applies to the +parent page. + +Turning on allowdirectives may make that work (I have not tried), but +it's probably too heavyweight/intrusive/possible a security issue. + +Maybe extend the comment directive with a field to set/unset tags? +--[[Joey]] diff --git a/doc/todo/pick_a_new_canonical_name_for_equivalent_of_SQL_limit.mdwn b/doc/todo/pick_a_new_canonical_name_for_equivalent_of_SQL_limit.mdwn index 4e70f8179..875402ec0 100644 --- a/doc/todo/pick_a_new_canonical_name_for_equivalent_of_SQL_limit.mdwn +++ b/doc/todo/pick_a_new_canonical_name_for_equivalent_of_SQL_limit.mdwn @@ -42,3 +42,5 @@ browse=http://git.pseudorandom.co.uk/smcv/ikiwiki.git/shortlog/refs/heads/ready/ I personally prefer `\[[!inline limit=10]]` so I have put that in a branch. Agreement/objections/better ideas welcome. --[[smcv]] + +> In the absence of any feedback I've applied that branch. [[done]] --[[smcv]] diff --git a/doc/todo/userdir__40____41___pagespec_directive_to_match_userpage_and_SubPages.mdwn b/doc/todo/userdir__40____41___pagespec_directive_to_match_userpage_and_SubPages.mdwn new file mode 100644 index 000000000..b64bf0a18 --- /dev/null +++ b/doc/todo/userdir__40____41___pagespec_directive_to_match_userpage_and_SubPages.mdwn @@ -0,0 +1,13 @@ +[[!tag wishlist patch ]] +[[!template id=gitbranch branch=bfree/userdirps author="niall"]] +I've written a very small plugin, inspired by +[[forum/Can_ikiwiki_be_configured_as_multi_user_blog__63__]] +which adds match_userdir to IkiWiki::PageSpec + +userdir() in a [[IkiWiki/PageSpec]] takes no arguments and checks +if the page is the users userpage or a SubPage of it. + +The plugin is named userdirps. + +In case my gitbranch template is wrong: +[[https://github.com/bfree/ikiwiki/commit/1f699d15c0778702cc5264dd3c8f822c6b0609ba]] diff --git a/doc/users/kjs.mdwn b/doc/users/kjs.mdwn index 325d748a2..0519cf926 100644 --- a/doc/users/kjs.mdwn +++ b/doc/users/kjs.mdwn @@ -36,8 +36,7 @@ link to the album. Useful for visual index of albums. * Extract GPS data and populate a [[plugins/osm]] waypoint if available. * Add span around osm icon to allow for styling. -For my public websites above the image metadata is "manually" ie shell script -populated but I'll eventually start using automatic metadata for new images. +For my public websites above have been using the tweaked img plugin for many months now. It works well except when deleting images, this seems to require a removal of the indexdb and a rebuild... not very convenient. A simple test wiki with downloadable setup and data can be found at: diff --git a/ikiwiki-makerepo b/ikiwiki-makerepo index c3a13c214..f1c44067e 100755 --- a/ikiwiki-makerepo +++ b/ikiwiki-makerepo @@ -85,6 +85,12 @@ git) cd "$srcdir" git init + if [ -z "$(git config user.name)" ]; then + git config user.name IkiWiki + fi + if [ -z "$(git config user.email)" ]; then + git config user.email ikiwiki.info + fi echo /.ikiwiki > .gitignore git add . git commit -m "initial commit" diff --git a/ikiwiki.spec b/ikiwiki.spec index 10e5f2e9b..6de6cb27c 100644 --- a/ikiwiki.spec +++ b/ikiwiki.spec @@ -1,5 +1,5 @@ Name: ikiwiki -Version: 3.20150614 +Version: 3.20160121 Release: 1%{?dist} Summary: A wiki compiler diff --git a/pm_filter b/pm_filter index 1e51f9dd3..8e1480564 100755 --- a/pm_filter +++ b/pm_filter @@ -28,6 +28,6 @@ elsif (/^use lib/) { elsif ($. == 1 && ($ENV{NOTAINT}=0) && m{^(#!.*perl.*?)$}) { $_=qq{$1 -T\n}; } -elsif (/^\$ENV{PATH}="(.*)";/) { +elsif (/^\$ENV\{PATH}="(.*)";/) { $_="\$ENV{PATH}=\"$1:$prefix/bin\";\n"; } diff --git a/po/ikiwiki.pot b/po/ikiwiki.pot index 864383342..f13acc8fb 100644 --- a/po/ikiwiki.pot +++ b/po/ikiwiki.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-06-09 22:32+0100\n" +"POT-Creation-Date: 2016-01-21 09:43+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -52,7 +52,7 @@ msgstr "" msgid "You are banned." msgstr "" -#: ../IkiWiki/CGI.pm:490 ../IkiWiki/CGI.pm:491 ../IkiWiki.pm:1652 +#: ../IkiWiki/CGI.pm:492 ../IkiWiki/CGI.pm:493 ../IkiWiki.pm:1651 msgid "Error" msgstr "" @@ -124,12 +124,12 @@ msgstr "" msgid "feed crashed XML::Feed!" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:652 +#: ../IkiWiki/Plugin/aggregate.pm:654 #, perl-format msgid "creating new page %s" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:682 ../IkiWiki/Plugin/edittemplate.pm:137 +#: ../IkiWiki/Plugin/aggregate.pm:684 ../IkiWiki/Plugin/edittemplate.pm:137 msgid "failed to process template:" msgstr "" @@ -303,7 +303,7 @@ msgstr "" msgid "comment moderation" msgstr "" -#: ../IkiWiki/Plugin/comments.pm:939 +#: ../IkiWiki/Plugin/comments.pm:941 #, perl-format msgid "%i comment" msgid_plural "%i comments" @@ -313,7 +313,7 @@ msgstr[1] "" #. translators: Here "Comment" is a verb; #. translators: the user clicks on it to #. translators: post a comment. -#: ../IkiWiki/Plugin/comments.pm:949 +#: ../IkiWiki/Plugin/comments.pm:951 msgid "Comment" msgstr "" @@ -372,21 +372,21 @@ msgstr "" msgid "edittemplate %s registered for %s" msgstr "" -#: ../IkiWiki/Plugin/emailauth.pm:55 +#: ../IkiWiki/Plugin/emailauth.pm:61 msgid "Invalid email address." msgstr "" -#: ../IkiWiki/Plugin/emailauth.pm:90 ../IkiWiki/Plugin/passwordauth.pm:377 +#: ../IkiWiki/Plugin/emailauth.pm:98 ../IkiWiki/Plugin/passwordauth.pm:377 msgid "Failed to send mail" msgstr "" -#: ../IkiWiki/Plugin/emailauth.pm:92 +#: ../IkiWiki/Plugin/emailauth.pm:100 msgid "" "You have been sent an email, with a link you can open to complete the login " "process." msgstr "" -#: ../IkiWiki/Plugin/emailauth.pm:109 +#: ../IkiWiki/Plugin/emailauth.pm:117 msgid "" "Wrong login token length. Please check that you pasted in the complete login " "link from the email!" @@ -418,26 +418,25 @@ msgstr "" msgid "%s is an attachment, not a page." msgstr "" -#: ../IkiWiki/Plugin/git.pm:839 ../IkiWiki/Plugin/git.pm:902 -#: ../IkiWiki.pm:1872 +#: ../IkiWiki/Plugin/git.pm:866 ../IkiWiki/Plugin/git.pm:929 ../IkiWiki.pm:1871 #, perl-format msgid "you are not allowed to change %s" msgstr "" -#: ../IkiWiki/Plugin/git.pm:861 +#: ../IkiWiki/Plugin/git.pm:888 #, perl-format msgid "you cannot act on a file with mode %s" msgstr "" -#: ../IkiWiki/Plugin/git.pm:865 +#: ../IkiWiki/Plugin/git.pm:892 msgid "you are not allowed to change file modes" msgstr "" -#: ../IkiWiki/Plugin/git.pm:935 +#: ../IkiWiki/Plugin/git.pm:962 msgid "you are not allowed to revert a merge" msgstr "" -#: ../IkiWiki/Plugin/git.pm:952 +#: ../IkiWiki/Plugin/git.pm:981 #, perl-format msgid "Failed to revert commit %s" msgstr "" @@ -515,31 +514,31 @@ msgstr "" msgid "missing pages parameter" msgstr "" -#: ../IkiWiki/Plugin/inline.pm:216 +#: ../IkiWiki/Plugin/inline.pm:228 #, perl-format msgid "the %s and %s parameters cannot be used together" msgstr "" -#: ../IkiWiki/Plugin/inline.pm:322 +#: ../IkiWiki/Plugin/inline.pm:334 #, perl-format msgid "%s (RSS feed)" msgstr "" -#: ../IkiWiki/Plugin/inline.pm:326 +#: ../IkiWiki/Plugin/inline.pm:338 #, perl-format msgid "%s (Atom feed)" msgstr "" -#: ../IkiWiki/Plugin/inline.pm:359 +#: ../IkiWiki/Plugin/inline.pm:371 msgid "Add a new post titled:" msgstr "" -#: ../IkiWiki/Plugin/inline.pm:400 ../IkiWiki/Plugin/template.pm:46 +#: ../IkiWiki/Plugin/inline.pm:412 ../IkiWiki/Plugin/template.pm:46 #, perl-format msgid "failed to process template %s" msgstr "" -#: ../IkiWiki/Plugin/inline.pm:739 +#: ../IkiWiki/Plugin/inline.pm:752 msgid "RPC::XML::Client not found, not pinging" msgstr "" @@ -594,7 +593,7 @@ msgstr "" msgid "redir cycle is not allowed" msgstr "" -#: ../IkiWiki/Plugin/meta.pm:450 +#: ../IkiWiki/Plugin/meta.pm:451 msgid "sort=meta requires a parameter" msgstr "" @@ -900,31 +899,31 @@ msgstr "" msgid "(Diff truncated)" msgstr "" -#: ../IkiWiki/Plugin/remove.pm:39 ../IkiWiki/Plugin/rename.pm:37 +#: ../IkiWiki/Plugin/remove.pm:40 ../IkiWiki/Plugin/rename.pm:37 #, perl-format msgid "%s does not exist" msgstr "" -#: ../IkiWiki/Plugin/remove.pm:56 +#: ../IkiWiki/Plugin/remove.pm:57 #, perl-format msgid "%s is not in the srcdir, so it cannot be deleted" msgstr "" -#: ../IkiWiki/Plugin/remove.pm:59 ../IkiWiki/Plugin/rename.pm:46 +#: ../IkiWiki/Plugin/remove.pm:60 ../IkiWiki/Plugin/rename.pm:46 #, perl-format msgid "%s is not a file" msgstr "" -#: ../IkiWiki/Plugin/remove.pm:166 +#: ../IkiWiki/Plugin/remove.pm:167 #, perl-format msgid "confirm removal of %s" msgstr "" -#: ../IkiWiki/Plugin/remove.pm:203 +#: ../IkiWiki/Plugin/remove.pm:204 msgid "Please select the attachments to remove." msgstr "" -#: ../IkiWiki/Plugin/remove.pm:263 +#: ../IkiWiki/Plugin/remove.pm:264 msgid "removed" msgstr "" @@ -1176,52 +1175,52 @@ msgid "" "allow this" msgstr "" -#: ../IkiWiki/Render.pm:335 ../IkiWiki/Render.pm:396 +#: ../IkiWiki/Render.pm:336 ../IkiWiki/Render.pm:397 #, perl-format msgid "skipping bad filename %s" msgstr "" -#: ../IkiWiki/Render.pm:352 ../IkiWiki/Render.pm:401 +#: ../IkiWiki/Render.pm:353 ../IkiWiki/Render.pm:402 #, perl-format msgid "%s has multiple possible source pages" msgstr "" -#: ../IkiWiki/Render.pm:438 +#: ../IkiWiki/Render.pm:439 #, perl-format msgid "querying %s for file creation and modification times.." msgstr "" -#: ../IkiWiki/Render.pm:517 +#: ../IkiWiki/Render.pm:518 #, perl-format msgid "removing obsolete %s" msgstr "" -#: ../IkiWiki/Render.pm:602 +#: ../IkiWiki/Render.pm:603 #, perl-format msgid "building %s, which links to %s" msgstr "" -#: ../IkiWiki/Render.pm:611 +#: ../IkiWiki/Render.pm:612 #, perl-format msgid "removing %s, no longer built by %s" msgstr "" -#: ../IkiWiki/Render.pm:694 ../IkiWiki/Render.pm:776 +#: ../IkiWiki/Render.pm:695 ../IkiWiki/Render.pm:777 #, perl-format msgid "building %s, which depends on %s" msgstr "" -#: ../IkiWiki/Render.pm:789 +#: ../IkiWiki/Render.pm:790 #, perl-format msgid "building %s, to update its backlinks" msgstr "" -#: ../IkiWiki/Render.pm:901 +#: ../IkiWiki/Render.pm:902 #, perl-format msgid "building %s" msgstr "" -#: ../IkiWiki/Render.pm:970 +#: ../IkiWiki/Render.pm:971 #, perl-format msgid "ikiwiki: cannot build %s" msgstr "" @@ -1340,36 +1339,36 @@ msgstr "" msgid "failed to load external plugin needed for %s plugin: %s" msgstr "" -#: ../IkiWiki.pm:1634 +#: ../IkiWiki.pm:1633 #, perl-format msgid "preprocessing loop detected on %s at depth %i" msgstr "" -#: ../IkiWiki.pm:1828 +#: ../IkiWiki.pm:1827 #, perl-format msgid "bad file name %s" msgstr "" -#: ../IkiWiki.pm:2141 +#: ../IkiWiki.pm:2140 #, perl-format msgid "template %s not found" msgstr "" -#: ../IkiWiki.pm:2399 +#: ../IkiWiki.pm:2398 msgid "yes" msgstr "" -#: ../IkiWiki.pm:2484 +#: ../IkiWiki.pm:2483 #, perl-format msgid "invalid sort type %s" msgstr "" -#: ../IkiWiki.pm:2505 +#: ../IkiWiki.pm:2504 #, perl-format msgid "unknown sort type %s" msgstr "" -#: ../IkiWiki.pm:2654 +#: ../IkiWiki.pm:2653 #, perl-format msgid "cannot match pages: %s" msgstr "" diff --git a/t/autoindex-committed.t b/t/autoindex-committed.t old mode 100644 new mode 100755 diff --git a/t/basewiki_brokenlinks.t b/t/basewiki_brokenlinks.t index 249d625f6..26e3859ab 100755 --- a/t/basewiki_brokenlinks.t +++ b/t/basewiki_brokenlinks.t @@ -1,21 +1,32 @@ #!/usr/bin/perl use warnings; use strict; -use Test::More 'no_plan'; +use Test::More; + +my $installed = $ENV{INSTALLED_TESTS}; ok(! system("rm -rf t/tmp; mkdir t/tmp")); -ok(! system("make -s ikiwiki.out")); -ok(! system("make underlay_install DESTDIR=`pwd`/t/tmp/install PREFIX=/usr >/dev/null")); + +my @command; +if ($installed) { + @command = qw(env LC_ALL=C ikiwiki); +} +else { + ok(! system("make -s ikiwiki.out")); + ok(! system("make underlay_install DESTDIR=`pwd`/t/tmp/install PREFIX=/usr >/dev/null")); + @command = qw(env LC_ALL=C perl -I. ./ikiwiki.out + --underlaydir=t/tmp/install/usr/share/ikiwiki/basewiki + --set underlaydirbase=t/tmp/install/usr/share/ikiwiki + --templatedir=templates); +} foreach my $plugin ("", "listdirectives") { - ok(! system("LC_ALL=C perl -I. ./ikiwiki.out --rebuild --plugin brokenlinks ". + ok(! system(@command, qw(--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")); + qw(--plugin smiley), + ($plugin ? ("--plugin", $plugin) : ()), + qw(t/basewiki_brokenlinks t/tmp/out))); my $result=`grep 'no broken links' t/tmp/out/index.html`; ok(length($result)); if (! length $result) { @@ -27,3 +38,5 @@ foreach my $plugin ("", "listdirectives") { ok(! system("rm -rf t/tmp/out t/basewiki_brokenlinks/.ikiwiki")); } ok(! system("rm -rf t/tmp")); + +done_testing(); diff --git a/t/comments.t b/t/comments.t index 41e731c80..a5add9701 100755 --- a/t/comments.t +++ b/t/comments.t @@ -1,7 +1,7 @@ #!/usr/bin/perl use warnings; use strict; -use Test::More 'no_plan'; +use Test::More; use IkiWiki; ok(! system("rm -rf t/tmp")); @@ -9,6 +9,20 @@ ok(mkdir "t/tmp"); ok(! system("cp -R t/tinyblog t/tmp/in")); ok(mkdir "t/tmp/in/post" or -d "t/tmp/in/post"); +my $installed = $ENV{INSTALLED_TESTS}; + +my @command; +if ($installed) { + @command = qw(ikiwiki); +} +else { + ok(! system("make -s ikiwiki.out")); + @command = qw(perl -I. ./ikiwiki.out + --underlaydir=underlays/basewiki + --set underlaydirbase=underlays + --templatedir=templates); +} + my $comment; $comment = < 106; +my $installed = $ENV{INSTALLED_TESTS}; + +my @command; +if ($installed) { + ok(1, "running installed"); + @command = qw(ikiwiki); +} +else { + ok(! system("make -s ikiwiki.out")); + @command = qw(perl -I. ./ikiwiki.out + --underlaydir=underlays/basewiki + --set underlaydirbase=underlays + --templatedir=templates); +} + # setup my $srcdir="t/tmp/src"; my $destdir="t/tmp/dest"; -ok(! system("make -s ikiwiki.out")); # runs ikiwiki to build test site sub runiki { my $testdesc=shift; - ok((! system("perl -I. ./ikiwiki.out --plugin txt --plugin rawhtml --underlaydir=underlays/basewiki --set underlaydirbase=underlays --templatedir=templates $srcdir $destdir @_")), + ok((! system(@command, qw(--plugin txt --plugin rawhtml), + $srcdir, $destdir, @_)), $testdesc); } sub refreshiki { diff --git a/t/cvs.t b/t/cvs.t index cbac43252..43a2ca3a8 100755 --- a/t/cvs.t +++ b/t/cvs.t @@ -4,6 +4,8 @@ use strict; use Test::More; my $total_tests = 72; use IkiWiki; +my $installed = $ENV{INSTALLED_TESTS}; + my $default_test_methods = '^test_*'; my @required_programs = qw( cvs @@ -606,12 +608,14 @@ sub _generate_and_configure_post_commit_hook { $config{wrapper} = $config{cvs_wrapper}; require IkiWiki::Wrapper; - { - no warnings 'once'; + if ($installed) { $IkiWiki::program_to_wrap = 'ikiwiki.out'; - # XXX substitute its interpreter to Makefile's $(PERL) - # XXX best solution: do this to all scripts during build } + else { + $IkiWiki::program_to_wrap = `which ikiwiki`; + } + # XXX substitute its interpreter to Makefile's $(PERL) + # XXX best solution: do this to all scripts during build IkiWiki::gen_wrapper(); my $cvs = "cvs -d $config{cvsrepo}"; diff --git a/t/git.t b/t/git.t index 0396ae065..71195fdfa 100755 --- a/t/git.t +++ b/t/git.t @@ -16,7 +16,7 @@ BEGIN { die $@; } } -use Test::More tests => 22; +use Test::More tests => 26; BEGIN { use_ok("IkiWiki"); } @@ -27,8 +27,16 @@ $config{diffurl} = '/nonexistent/cgit/plain/[[file]]'; IkiWiki::loadplugins(); IkiWiki::checkconfig(); +my $makerepo; +if ($ENV{INSTALLED_TESTS}) { + $makerepo = "ikiwiki-makerepo"; +} +else { + $makerepo = "./ikiwiki-makerepo"; +} + ok (mkdir($config{srcdir})); -is (system("./ikiwiki-makerepo git $config{srcdir} $dir/repo"), 0); +is (system("$makerepo git $config{srcdir} $dir/repo"), 0); my @changes; @changes = IkiWiki::rcs_recentchanges(3); @@ -117,4 +125,21 @@ unlike( q{path separators are preserved when UTF-8scaping filename} ); +# do a clean checkout to verify that "empty ident not allowed" is avoided +ok(! system("rm", "-rf", $config{srcdir})); +ok(! system("git", "clone", "$dir/repo", $config{srcdir})); + +writefile('unconfigured_author.mdwn', $config{srcdir}, 'I am an unconfigured git author'); +IkiWiki::rcs_add("unconfigured_author.mdwn"); +IkiWiki::rcs_commit( + file => "unconfigured_author.mdwn", + message => "hello, world", + token => "moo", +); + +@changes = IkiWiki::rcs_recentchanges(6); + +is($#changes, 5); +is($changes[0]{pages}[0]{"page"}, "unconfigured_author"); + system "rm -rf $dir"; diff --git a/t/img.t b/t/img.t index 7598dd9f0..b73988b7c 100755 --- a/t/img.t +++ b/t/img.t @@ -14,13 +14,33 @@ package IkiWiki; use warnings; use strict; use Test::More; +plan(skip_all => "Image::Magick not available") + unless eval q{use Image::Magick; 1}; -BEGIN { use_ok("IkiWiki"); } -BEGIN { use_ok("Image::Magick"); } +use IkiWiki; + +my $installed = $ENV{INSTALLED_TESTS}; + +my @command; +if ($installed) { + @command = qw(ikiwiki); +} +else { + ok(! system("make -s ikiwiki.out")); + @command = qw(perl -I. ./ikiwiki.out + --underlaydir=underlays/basewiki + --set underlaydirbase=underlays + --templatedir=templates); +} + +push @command, qw(--set usedirs=0 --plugin img t/tmp/in t/tmp/out --verbose); my $magick = new Image::Magick; my $SVGS_WORK = defined $magick->QueryFormat("svg"); +$magick->Read("t/img/twopages.pdf"); +my $PDFS_WORK = defined $magick->Get("width"); + ok(! system("rm -rf t/tmp; mkdir -p t/tmp/in")); ok(! system("cp t/img/redsquare.png t/tmp/in/redsquare.png")); @@ -31,7 +51,7 @@ ok(! system("cp t/img/redsquare.png t/tmp/in/a:b:c:d.png")); ok(! system("cp t/img/redsquare.png t/tmp/in/a:b:c:d:e:f:g:h:i:j.png")); if ($SVGS_WORK) { - writefile("emptysquare.svg", "t/tmp/in", + writefile("bluesquare.svg", "t/tmp/in", ''); } @@ -40,7 +60,15 @@ ok(! system("cp t/img/twopages.pdf t/tmp/in/twopages.pdf")); my $maybe_svg_img = ""; if ($SVGS_WORK) { - $maybe_svg_img = "[[!img emptysquare.svg size=10x]]"; + $maybe_svg_img = "[[!img bluesquare.svg size=10x]]"; +} + +my $maybe_pdf_img = ""; +if ($PDFS_WORK) { + $maybe_pdf_img = <a page about bar}, +); + +write_build_read_compare( + 'description', + q{[[!meta description="a page about bar"]]}, + qr{}, +); + +write_build_read_compare( + 'guid', + q{[[!meta guid="12345"]]}, + qr{}, +); + +write_build_read_compare( + 'license', + q{[[!meta license="you get to keep both pieces"]]}, + qr{
      }, +); + +write_build_read_compare( + 'copyright', + q{[[!meta copyright="12345"]]}, + qr{
    ". - htmllink($params{page}, $params{destpage}, $_, noimageinline => 1). + htmllink($params{page}, $params{destpage}, $_, noimageinline => 1, linktext => linktext($_, %params)). "".$counts{$_}."