summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2007-07-25 03:36:53 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2007-07-25 03:36:53 +0000
commitc96d672810ae524aedf9ffff08dcca773cd9a876 (patch)
tree4d06c15920e5b1b60acdba2e4cea9c680ca5dc43
parentd63068b669f5b5450b01a3142c2efca448d3dfc3 (diff)
massive patchqueue reorg
patches can now be anywhere and tagged patch to show up on the patch list. Moved all the patchqueue stuff to todo items; some of it was merged into existing todo items.
-rw-r--r--doc/about_rcs_backends.mdwn4
-rw-r--r--doc/bugs.mdwn2
-rw-r--r--doc/bugs/edits_not_showing_up_in_compiled_pages.mdwn2
-rw-r--r--doc/bugs/hardcoded___34__Discussion__34___link.mdwn4
-rw-r--r--doc/index.mdwn3
-rw-r--r--doc/patch.mdwn9
-rw-r--r--doc/patchqueue.mdwn10
-rw-r--r--doc/patchqueue/Gallery_Plugin_for_Ikiwiki.mdwn24
-rw-r--r--doc/patchqueue/Wikiwyg_Plugin_for_IkiWiki.mdwn14
-rw-r--r--doc/patchqueue/move_page.mdwn274
-rw-r--r--doc/patchqueue/various_fixes.mdwn172
-rw-r--r--doc/plugins/orphans.mdwn3
-rw-r--r--doc/roadmap/discussion.mdwn4
-rw-r--r--doc/sitemap.mdwn2
-rw-r--r--doc/soc.mdwn4
-rw-r--r--doc/todo.mdwn2
-rw-r--r--doc/todo/Gallery.mdwn33
-rw-r--r--doc/todo/Moving_Pages.mdwn279
-rw-r--r--doc/todo/Wrapper_config_with_multiline_regexp.mdwn (renamed from doc/patchqueue/Wrapper_config_with_multiline_regexp.mdwn)8
-rw-r--r--doc/todo/calendar_--_archive_browsing_via_a_calendar_frontend.mdwn (renamed from doc/patchqueue/calendar_--_archive_browsing_via_a_calendar_frontend.mdwn)3
-rw-r--r--doc/todo/clickable-openid-urls-in-logs.mdwn (renamed from doc/patchqueue/clickable-openid-urls-in-logs.mdwn)6
-rw-r--r--doc/todo/darcs.mdwn (renamed from doc/patchqueue/darcs.mdwn)0
-rw-r--r--doc/todo/datearchives-plugin.mdwn (renamed from doc/patchqueue/datearchives-plugin.mdwn)7
-rw-r--r--doc/todo/enable-htaccess-files.mdwn (renamed from doc/patchqueue/enable-htaccess-files.mdwn)1
-rw-r--r--doc/todo/format_escape.mdwn (renamed from doc/patchqueue/format_escape.mdwn)2
-rw-r--r--doc/todo/hard-coded_location_for_man_pages_and_w3m_cgi_wrapper.mdwn (renamed from doc/patchqueue/hard-coded_location_for_man_pages_and_w3m_cgi_wrapper.mdwn)2
-rw-r--r--doc/todo/index.html_allowed.mdwn (renamed from doc/patchqueue/index.html_allowed.mdwn)2
-rw-r--r--doc/todo/l10n.mdwn (renamed from doc/patchqueue/l10n.mdwn)0
-rw-r--r--doc/todo/more_class__61____34____34___for_css.mdwn (renamed from doc/patchqueue/more_class__61____34____34___for_css.mdwn)4
-rw-r--r--doc/todo/rcs___40__third-party_plugin__41__.mdwn (renamed from doc/patchqueue/rcs___40__third-party_plugin__41__.mdwn)2
-rw-r--r--doc/todo/varioki_--_add_template_variables___40__with_closures_for_values__41___in_ikiwiki.setup.mdwn (renamed from doc/patchqueue/varioki_--_add_template_variables___40__with_closures_for_values__41___in_ikiwiki.setup.mdwn)2
-rw-r--r--doc/todo/wikiwyg.mdwn17
-rw-r--r--doc/todo/wikiwyg/discussion.mdwn (renamed from doc/patchqueue/Wikiwyg_Plugin_for_IkiWiki/discussion.mdwn)0
-rw-r--r--doc/translation.mdwn2
-rw-r--r--doc/users/KarlMW/discussion.mdwn4
-rw-r--r--doc/wishlist.mdwn2
36 files changed, 388 insertions, 521 deletions
diff --git a/doc/about_rcs_backends.mdwn b/doc/about_rcs_backends.mdwn
index c20fa5cc3..2f0fef0d3 100644
--- a/doc/about_rcs_backends.mdwn
+++ b/doc/about_rcs_backends.mdwn
@@ -36,7 +36,7 @@ W "belongs" to ikiwiki and should not be edited directly.
Support for using darcs as a backend is being worked on by [Thomas
Schwinge](mailto:tschwinge@gnu.org), although development is on hold curretly.
-There is a patch in the [[patchqueue]].
+There is a patch in [[todo/darcs]].
### How will it work internally?
@@ -114,7 +114,7 @@ towards transmitting changes with standalone patch bundles (often by email) as d
>> IMHO it comes down to whatever works well for a given RCS. Seems like
>> the darcs approach _could_ be done with most any distributed system, but
>> it might be overkill for some (or all?) While there is the incomplete darcs
->> plugin in the [[patchqueue]], if you submit one that's complete, I will
+>> plugin in [[todo/darcs]], if you submit one that's complete, I will
>> probably accept it into ikiwiki.. --[[Joey]]
## [[Git]]
diff --git a/doc/bugs.mdwn b/doc/bugs.mdwn
index 9c6e49d37..95eb82a8f 100644
--- a/doc/bugs.mdwn
+++ b/doc/bugs.mdwn
@@ -4,6 +4,6 @@ Also see the [Debian bugs](http://bugs.debian.org/ikiwiki), and the
[[TODO]] page.
[[inline pages="bugs/* and !bugs/done and !bugs/discussion and
-!link(bugs/done) and !bugs/*/*"
+!link(patch) and !link(bugs/done) and !bugs/*/*"
feedpages="created_after(bugs/no_commit_mails_for_new_pages)"
actions=yes rootpage="bugs" postformtext="Add a new bug titled:" show=0]]
diff --git a/doc/bugs/edits_not_showing_up_in_compiled_pages.mdwn b/doc/bugs/edits_not_showing_up_in_compiled_pages.mdwn
index b6090b4bd..9f1e89397 100644
--- a/doc/bugs/edits_not_showing_up_in_compiled_pages.mdwn
+++ b/doc/bugs/edits_not_showing_up_in_compiled_pages.mdwn
@@ -10,7 +10,7 @@ Looks like a build died halfway through, so it was stumbling over rendered
html pages that it didn't have record of. I don't know what build failed
exactly. --[[Joey]]
->> Has this just happened again? [[patchqueue/datearchives-plugin]] is now exhibiting the same symptoms -- it's in the repository and RecentChanges, but the actual page is 404. --Ben
+>> Has this just happened again? [[todo/datearchives-plugin]] is now exhibiting the same symptoms -- it's in the repository and RecentChanges, but the actual page is 404. --Ben
>>> Yes, it seems to have happened again. Added debugging to track it
>>> down next time it occurs. It seems to be happening when you add things
diff --git a/doc/bugs/hardcoded___34__Discussion__34___link.mdwn b/doc/bugs/hardcoded___34__Discussion__34___link.mdwn
index 28b76cbd5..d5e5a1a68 100644
--- a/doc/bugs/hardcoded___34__Discussion__34___link.mdwn
+++ b/doc/bugs/hardcoded___34__Discussion__34___link.mdwn
@@ -24,7 +24,7 @@ or "History". --[[Paweł|ptecza]]
>>> existing/nonexisting page in two places, one in code in ikiwiki and one
>>> in the template. Not good design. --[[Joey]]
-> As noted in [[patchqueue/l10n]], there are some other places in ikiwiki
+> As noted in [[todo/l10n]], there are some other places in ikiwiki
> that hard code English strings, and I feel that using standard gettext
> and po files is the best approach for these, although Recai suggested an
> approach of translating the strings using a template file. --[[Joey]]
@@ -41,4 +41,4 @@ or "History". --[[Paweł|ptecza]]
>>> translating it. [[bugs/done]]! There's a `po/debconf.pot` in the source
>>> now for translating. See [[translation]]. --[[Joey]]
->>>> Joey, you're great! ;) Thanks a lot! I'll try ikiwiki l10n stuff soon. --[[Paweł|ptecza]] \ No newline at end of file
+>>>> Joey, you're great! ;) Thanks a lot! I'll try ikiwiki l10n stuff soon. --[[Paweł|ptecza]]
diff --git a/doc/index.mdwn b/doc/index.mdwn
index e5fbd70d4..ae1777011 100644
--- a/doc/index.mdwn
+++ b/doc/index.mdwn
@@ -28,8 +28,7 @@ Thanks! --[[Joey]]
developed, and is being written with security as a priority, so don't
expect things to stay in this list for long.
-* Developers, please document any ikiwiki patches you have in the
- [[PatchQueue]].
+* Developers, please document any ikiwiki [[patches|patch]] you have.
All wikis are supposed to have a [[SandBox]], so this one does too.
diff --git a/doc/patch.mdwn b/doc/patch.mdwn
new file mode 100644
index 000000000..d8ac3cd42
--- /dev/null
+++ b/doc/patch.mdwn
@@ -0,0 +1,9 @@
+Since we have enough people working on ikiwiki to be dangerous, or at least
+to duplicate work without coordination, and since few people have direct
+commit access to the tree, here's a queue of suggested patches.
+
+If you post a patch to the wiki, once it's ready to be applied, add a
+'patch' tag so it will show up here.
+
+[[inline pages="todo/* and link(patch) and !*/Discussion" rootpage="todo"
+archive="yes"]]
diff --git a/doc/patchqueue.mdwn b/doc/patchqueue.mdwn
deleted file mode 100644
index ca9dbff79..000000000
--- a/doc/patchqueue.mdwn
+++ /dev/null
@@ -1,10 +0,0 @@
-Since we have enough people working on ikiwiki to be dangerous, or at least
-to duplicate work without coordination, and since few people have direct
-commit access to the tree, here's a queue of suggested patches.
-Feel free to either copy the patch inline, or link to one elsewhere (or nag
-[[Joey]] to open up anonymous svn access to this wiki so you can check in the
-patches directly).
-
-[[inline pages="patchqueue/* and !*/Discussion"
-feedpages="created_after(patchqueue/enable-htaccess-files)"
-rootpage="patchqueue" archive="yes"]]
diff --git a/doc/patchqueue/Gallery_Plugin_for_Ikiwiki.mdwn b/doc/patchqueue/Gallery_Plugin_for_Ikiwiki.mdwn
deleted file mode 100644
index 6e6f560bf..000000000
--- a/doc/patchqueue/Gallery_Plugin_for_Ikiwiki.mdwn
+++ /dev/null
@@ -1,24 +0,0 @@
-I have implemented the first version of the Gallery Plugin for Ikiwiki as part of [[soc]]. This plugin would create a nice looking gallery of the images once the directory containing images is specified with some additional parameters. It has been build over the img plugin.
-
-Plugin can be downloaded from [here](http://myweb.unomaha.edu/~ajain/gallery.tar).
-
-It can be used as : <br>
-\[[gallery imagedir="images" thumbnailsize="200x200" cols="3" alt="Can not be displayed" title="My Pictures"]]
-
-where-<br>
-* imagedir => Directory containing images. It will scan all the files with jpg|png|gif extension from the directory and will put it in the gallery.<br>
-* thumbnailsize(optional) => Size of the thumbnail that you want to generate for the gallery.<br>
-* alt(optional) => If image can not be displayed, it will display the text contained in alt argument.<br>
-* cols(optional) => Number of columns of thumbnails that you want to generate.<br>
-* title(optional) => Title of the gallery.<br>
-
-Features of the Gallery Plugin:<br>
-* You can go the next image by clicking on the right side of the image or by pressing 'n'.<br>
-* Similary, you can go the previous image by clicking on the left side of the image or by pressing 'p'.<br>
-* Press esc to close the gallery.<br>
-* While on image, nearby images are preloaded in the background, so as to make the browsing fast.<br>
-
-Right now, it features only one template namely [Lightbox](http://www.hudddletogether.com). Later on, I will add few more templates.<br>
-For any feedback or query, feel free to mail me at arpitjain11 [AT] gmail.com
-
-Additional details are available [here](http://myweb.unomaha.edu/~ajain/ikiwikigallery.html). \ No newline at end of file
diff --git a/doc/patchqueue/Wikiwyg_Plugin_for_IkiWiki.mdwn b/doc/patchqueue/Wikiwyg_Plugin_for_IkiWiki.mdwn
deleted file mode 100644
index e4369d923..000000000
--- a/doc/patchqueue/Wikiwyg_Plugin_for_IkiWiki.mdwn
+++ /dev/null
@@ -1,14 +0,0 @@
-Project IkiWiki::WIKIWYG v0.8 - <http://ikiwiki.xbaud.com/>
-===========================================================
-
-[Wikiwyg][] is a "What you see is what you get" editor for wikis. It will allow you to double click on the text in a wiki and save it without reloading the page. The IkiWiki version will allow you to edit your wiki in Markdown or WYSIWYG.
-
-The plugin can be downloaded from <http://ikiwiki.xbaud.com/wikiwyg-0.8.tar.gz>
-
-### Current Issues
-
-* Code sections starting with 4 spaces do not work
-* Adding links in the WYSIWYG editor is difficult
-* Double lists don't work
-
-[Wikiwyg]: http://www.wikiwyg.net/ \ No newline at end of file
diff --git a/doc/patchqueue/move_page.mdwn b/doc/patchqueue/move_page.mdwn
deleted file mode 100644
index 21be9ba6b..000000000
--- a/doc/patchqueue/move_page.mdwn
+++ /dev/null
@@ -1,274 +0,0 @@
-This is my second cut at a feature like that requested in [[todo/Moving_Pages]].
-It can also be found [here](http://ikidev.betacantrips.com/patches/move.patch).
-
-A few shortcomings exist:
-
-* No precautions whatsoever are made to protect against race conditions or failures
- in the rcs\_move function. I didn't even do the `cgi_editpage` thing where I hold
- the lock and render afterwards (mostly because the copy I was editing was not
- up-to-date enough to have that code). Although FAILED_SAVE is in movepage.tmpl,
- no code activates it yet.
-* Some code is duplicated between cgi\_movepage and cgi\_editpage, as well
- as rcs\_commit and rcs\_move.
-* The user interface is pretty lame. I couldn't figure out a good way to let
- the user specify which directory to move things to without implementing a
- FileChooser thing.
-* No redirect pages like those mentioned on [[todo/Moving_Pages]] exist yet,
- so none are created.
-* I added a Move link to page.tmpl but it may belong better someplace else --
- maybe editpage.tmpl? Not sure.
-* from is redundant with page so far -- but since the Move links could someday
- come from someplace other than the page itself I kept it around.
-* If I move foo.mdwn to bar.mdwn, foo/* should move too, probably.
-
-> Looks like a good start, although I agree about many of the points above,
-> and also feel that something needs to be done about rcses that don't
-> implement a move operation -- falling back to an add and delete.
-> --[[Joey]]
-
-Hmm. Shouldn't that be done on a by-RCS basis, though? (i.e. implemented
-by backends in the `rcs_move` function)
-
-> Probably, yes, but maybe there's a way to avoid duplicating code for that
-> in several of them.
-
-Also, how should ikiwiki react if a page is edited (say, by another user)
-before it is moved? Bail, or shrug and proceed?
-
-> The important thing is to keep in mind that the page could be edited,
-> moved, deleted, etc in between the user starting the move and the move
-> happening. So, the code really needs to deal with all of these cases in
-> some way. It seems fine to me to go ahead with the move even if the page
-> was edited. If the page was deleted or moved, it seems reasonable to exit
-> with an error.
-
- diff -urNX ignorepats ikiwiki/IkiWiki/CGI.pm ikidev/IkiWiki/CGI.pm
- --- ikiwiki/IkiWiki/CGI.pm 2007-02-14 18:17:12.000000000 -0800
- +++ ikidev/IkiWiki/CGI.pm 2007-02-22 18:54:23.194982000 -0800
- @@ -561,6 +561,106 @@
- }
- } #}}}
-
- +sub cgi_movepage($$) {
- + my $q = shift;
- + my $session = shift;
- + eval q{use CGI::FormBuilder};
- + error($@) if $@;
- + my @fields=qw(do from rcsinfo page newdir newname comments);
- + my @buttons=("Rename Page", "Cancel");
- +
- + my $form = CGI::FormBuilder->new(
- + fields => \@fields,
- + header => 1,
- + charset => "utf-8",
- + method => 'POST',
- + action => $config{cgiurl},
- + template => (-e "$config{templatedir}/movepage.tmpl" ?
- + {template_params("movepage.tmpl")} : ""),
- + );
- + run_hooks(formbuilder_setup => sub {
- + shift->(form => $form, cgi => $q, session => $session);
- + });
- +
- + decode_form_utf8($form);
- +
- + # This untaint is safe because if the page doesn't exist, bail.
- + my $page = $form->field('page');
- + $page = possibly_foolish_untaint($page);
- + if (! exists $pagesources{$page}) {
- + error("page does not exist");
- + }
- + my $file=$pagesources{$page};
- + my $type=pagetype($file);
- +
- + my $from;
- + if (defined $form->field('from')) {
- + ($from)=$form->field('from')=~/$config{wiki_file_regexp}/;
- + }
- +
- + $form->field(name => "do", type => 'hidden');
- + $form->field(name => "from", type => 'hidden');
- + $form->field(name => "rcsinfo", type => 'hidden');
- + $form->field(name => "newdir", type => 'text', size => 80);
- + $form->field(name => "page", value => $page, force => 1);
- + $form->field(name => "newname", type => "text", size => 80);
- + $form->field(name => "comments", type => "text", size => 80);
- + $form->tmpl_param("can_commit", $config{rcs});
- + $form->tmpl_param("indexlink", indexlink());
- + $form->tmpl_param("baseurl", baseurl());
- +
- + if (! $form->submitted) {
- + $form->field(name => "rcsinfo", value => rcs_prepedit($file),
- + force => 1);
- + }
- +
- + if ($form->submitted eq "Cancel") {
- + redirect($q, "$config{url}/".htmlpage($page));
- + return;
- + }
- +
- + if (! $form->submitted || ! $form->validate) {
- + check_canedit($page, $q, $session);
- + $form->tmpl_param("page_select", 0);
- + $form->field(name => "page", type => 'hidden');
- + $form->field(name => "type", type => 'hidden');
- + $form->title(sprintf(gettext("moving %s"), pagetitle($page)));
- + my $pname = basename($page);
- + my $dname = dirname($page);
- + if (! defined $form->field('newname') ||
- + ! length $form->field('newname')) {
- + $form->field(name => "newname",
- + value => pagetitle($pname, 1), force => 1);
- + }
- + if (! defined $form->field('newdir') ||
- + ! length $form->field('newdir')) {
- + $form->field(name => "newdir",
- + value => pagetitle($dname, 1), force => 1);
- + }
- + print $form->render(submit => \@buttons);
- + }
- + else{
- + # This untaint is safe because titlepage removes any problematic
- + # characters.
- + my ($newname)=$form->field('newname');
- + $newname=titlepage(possibly_foolish_untaint($newname));
- + my ($newdir)=$form->field('newdir');
- + $newdir=titlepage(possibly_foolish_untaint($newdir));
- + if (! defined $newname || ! length $newname || file_pruned($newname, $config{srcdir}) || $newname=~/^\//) {
- + error("bad page name");
- + }
- + check_canedit($page, $q, $session);
- +
- + my $newpage = ($newdir?"$newdir/":"") . $newname;
- + my $newfile = $newpage . ".$type";
- + my $message = $form->field('comments');
- + unlockwiki();
- + rcs_move($file, $newfile, $message, $form->field("rcsinfo"),
- + $session->param("name"), $ENV{REMOTE_ADDR});
- + redirect($q, "$config{url}/".htmlpage($newpage));
- + }
- +}
- +
- sub cgi_getsession ($) { #{{{
- my $q=shift;
-
- @@ -656,6 +756,9 @@
- elsif (defined $session->param("postsignin")) {
- cgi_postsignin($q, $session);
- }
- + elsif ($do eq 'move') {
- + cgi_movepage($q, $session);
- + }
- elsif ($do eq 'prefs') {
- cgi_prefs($q, $session);
- }
- diff -urNX ignorepats ikiwiki/IkiWiki/Rcs/svn.pm ikidev/IkiWiki/Rcs/svn.pm
- --- ikiwiki/IkiWiki/Rcs/svn.pm 2007-01-27 16:04:48.000000000 -0800
- +++ ikidev/IkiWiki/Rcs/svn.pm 2007-02-22 01:51:29.923626000 -0800
- @@ -60,6 +60,34 @@
- }
- } #}}}
-
- +sub rcs_move ($$$$;$$) {
- + my $file=shift;
- + my $newname=shift;
- + my $message=shift;
- + my $rcstoken=shift;
- + my $user=shift;
- + my $ipaddr=shift;
- + if (defined $user) {
- + $message="web commit by $user".(length $message ? ": $message" : "");
- + }
- + elsif (defined $ipaddr) {
- + $message="web commit from $ipaddr".(length $message ? ": $message" : "");
- + }
- +
- + chdir($config{srcdir}); # svn merge wants to be here
- +
- + if (system("svn", "move", "--quiet",
- + "$file", "$newname") != 0) {
- + return 1;
- + }
- + if (system("svn", "commit", "--quiet",
- + "--encoding", "UTF-8", "-m",
- + possibly_foolish_untaint($message)) != 0) {
- + return 1;
- + }
- + return undef # success
- +}
- +
- sub rcs_commit ($$$;$$) { #{{{
- # Tries to commit the page; returns undef on _success_ and
- # a version of the page with the rcs's conflict markers on failure.
- diff -urNX ignorepats ikiwiki/IkiWiki/Render.pm ikidev/IkiWiki/Render.pm
- --- ikiwiki/IkiWiki/Render.pm 2007-02-14 17:00:05.000000000 -0800
- +++ ikidev/IkiWiki/Render.pm 2007-02-22 18:30:00.451755000 -0800
- @@ -80,6 +80,7 @@
-
- if (length $config{cgiurl}) {
- $template->param(editurl => cgiurl(do => "edit", page => $page));
- + $template->param(moveurl => cgiurl(do => "move", page => $page));
- $template->param(prefsurl => cgiurl(do => "prefs"));
- if ($config{rcs}) {
- $template->param(recentchangesurl => cgiurl(do => "recentchanges"));
- diff -urNX ignorepats ikiwiki/templates/movepage.tmpl ikidev/templates/movepage.tmpl
- --- ikiwiki/templates/movepage.tmpl 1969-12-31 16:00:00.000000000 -0800
- +++ ikidev/templates/movepage.tmpl 2007-02-22 18:40:39.751763000 -0800
- @@ -0,0 +1,44 @@
- +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- +<html>
- +<head>
- +<base href="<TMPL_VAR BASEURL>" />
- +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- +<title><TMPL_VAR FORM-TITLE></title>
- +<link rel="stylesheet" href="<TMPL_VAR BASEURL>style.css" type="text/css" />
- +<link rel="stylesheet" href="<TMPL_VAR BASEURL>local.css" type="text/css" />
- +<TMPL_IF NAME="FAVICON">
- +<link rel="icon" href="<TMPL_VAR BASEURL><TMPL_VAR FAVICON>" type="image/x-icon" />
- +</TMPL_IF>
- +</head>
- +<body>
- +<TMPL_IF NAME="FAILED_SAVE">
- +<p>
- +<b>Failed to save your changes.</b>
- +</p>
- +<p>
- +Your changes were not able to be saved to disk. The system gave the error:
- +<blockquote>
- +<TMPL_VAR ERROR_MESSAGE>
- +</blockquote>
- +Your changes are preserved below, and you can try again to save them.
- +</p>
- +</TMPL_IF>
- +<TMPL_VAR FORM-START>
- +<div class="header">
- +<span><TMPL_VAR INDEXLINK>/ <TMPL_VAR FORM-TITLE></span>
- +</div>
- +<TMPL_VAR FIELD-DO>
- +<TMPL_VAR FIELD-FROM>
- +<TMPL_VAR FIELD-RCSINFO>
- +<TMPL_VAR FIELD-PAGE>
- +New location: <TMPL_VAR FIELD-NEWDIR>/ <TMPL_VAR FIELD-NEWNAME>
- +<br />
- +<TMPL_IF NAME="CAN_COMMIT">
- +Optional comment about this change:<br />
- +<TMPL_VAR FIELD-COMMENTS><br />
- +</TMPL_IF>
- +<input id="_submit" name="_submit" type="submit" value="Rename Page" /><input id="_submit_2" name="_submit" type="submit" value="Cancel" />
- +<TMPL_VAR FORM-END>
- +</body>
- +</html>
- diff -urNX ignorepats ikiwiki/templates/page.tmpl ikidev/templates/page.tmpl
- --- ikiwiki/templates/page.tmpl 2006-12-28 12:27:01.000000000 -0800
- +++ ikidev/templates/page.tmpl 2007-02-22 01:52:33.078464000 -0800
- @@ -32,6 +32,9 @@
- <TMPL_IF NAME="EDITURL">
- <li><a href="<TMPL_VAR EDITURL>">Edit</a></li>
- </TMPL_IF>
- +<TMPL_IF NAME="MOVEURL">
- +<li><a href="<TMPL_VAR MOVEURL>">Move</a></li>
- +</TMPL_IF>
- <TMPL_IF NAME="RECENTCHANGESURL">
- <li><a href="<TMPL_VAR RECENTCHANGESURL>">RecentChanges</a></li>
- </TMPL_IF>
diff --git a/doc/patchqueue/various_fixes.mdwn b/doc/patchqueue/various_fixes.mdwn
deleted file mode 100644
index 318e7e941..000000000
--- a/doc/patchqueue/various_fixes.mdwn
+++ /dev/null
@@ -1,172 +0,0 @@
-Sorry if you don't appreciate me lumping all of these patches together.
-
-These are various fixes I had to make when installing Ikiwiki. Some are
-due it being a non-Debian system, the others are actual bugs.
-
- --- upstream/IkiWiki/Rcs/svn.pm 2006-09-16 01:11:55.000000000 +0100
- +++ main/IkiWiki/Rcs/svn.pm 2006-09-16 01:12:50.000000000 +0100
- @@ -34,7 +34,7 @@
- my $field=shift;
- my $file=shift;
-
- - my $info=`LANG=C svn info $file`;
- + my $info=`svn info $file`;
- my ($ret)=$info=~/^$field: (.*)$/m;
- return $ret;
- } #}}}
- @@ -140,7 +140,7 @@
- if $svn_version =~ /\d\.(\d)\.\d/ && $1 >= 2;
-
- my $svn_url=svn_info("URL", $config{srcdir});
- - my $xml = XMLin(scalar `svn $svn_limit --xml -v log '$svn_url'`,
- + my $xml = XMLin(scalar `svn $svn_limit --xml -v log '$svn_url' --config-dir /tmp`,
- ForceArray => [ 'logentry', 'path' ],
- GroupTags => { paths => 'path' },
- KeyAttr => { path => 'content' },
-
-The first hunk of this patch is strange. It just failed to work with this
-in place, and it took me a long time to figure it out. I realise what you
-are trying to do, and it still works here as I use a similar LANG anyway.
-
-For reference svn version 1.3.1 (r19032), my $LANG=en_GB.utf8, but I'm not
-sure what the CGI was running under.
-
-> That's strange. Is the problem to do with setting LANG=C or to do
-> with the way it's set and exported on the same line as the svn info call?
-> Can you reproduce the problem running svn info outside of ikiwiki?
-> --[[Joey]]
-
->> I've now managed to reproduce the problem. I'll try and give some more information.
->> When going to the Recent Changes link I get
-
- [Sat Sep 16 15:16:08 2006] [error] [client xxxx] svn: Can't check path '/home/jw2328/.subversion': Permission denied, referer: http://xxxxx/test/sandbox.html
- [Sat Sep 16 15:16:08 2006] [error] [client xxxx] Use of uninitialized value in concatenation (.) or string at /usr/lib/perl5/site_perl/5.8.3/IkiWiki/Rcs/svn.pm line 145., referer: http://xxxx/test/sandbox.html
- [Sat Sep 16 15:16:08 2006] [error] [client xxxxx] svn: Can't check path '/home/jw2328/.subversion': Permission denied, referer: http://xxxx/test/sandbox.html
- [Sat Sep 16 15:16:09 2006] [error] [client xxxx] File does not exist: at /usr/lib/perl5/site_perl/5.8.3/IkiWiki/Rcs/svn.pm line 145, referer: http://xxxx/test/sandbox.html
- [Sat Sep 16 15:16:09 2006] [error] [client xxxx] Premature end of script headers: ikitest, referer: http://xxxx/test/sandbox.html
-
->> which the $svn_url is causing the uninitialised value, due to the
->> LANG=C it seems, as if I remove it it goes away.
->> The file does not exist is due to the unreadable .subversion.
->> echoing the LANG before it is set shows that the variable is normally
->> empty for the user that is running it.
-
-The second removes problems with cannot access /home/$user/.svnsomething in
-the logs. I think this problem was also fatal (I should have reported these
-sooner).
-
-I can try and debug these problems if you could suggest some way to do so,
-but I am probably losing the server in a couple of days, so I can't be of too
-much help I'm afraid.
-
-> I imagine that passing --config-dir /tmp would be either insecure or
-> would limit ikiwiki use to one user per machine.
-> `--config-dir /etc/subversion` might be better, though still a hack,
-> since a user's real ~/.subversion might be needed to access some repos.
->
-> Maybe I didn't notice this problem since I have a ~/.subversion
-> everywhere that I've used ikiwiki. Hmm, no, I don't reproduce it, svn
-> happily recreated the directory during an ikiwiki run after I moved it
-> out of the way here. Maybe an issue with old versions of svn? Although
-> AFIACR, svn has auto-created ~/.subversion for years.
->
-> What's the error message? --[[Joey]]
-
->> `svn: Can't check path '/home/jw2328/.subversion': Permission denied,`
->> where jw2328 is my usual user.
->> I have restrictive permissions of 0700 on home dirs on the server,
->> and the CGI is running as uid apache, euid root. (Not my setup anymore).
->> The way I had it set up, was jw2328 owning thesource dir, and the svn repo,
->> with g+sw on them both. I ran sudo ikiwiki --setup though, as I was reluctant
->> to adjust permissions on my cgi-dir. This seems to be the root of the
->> problem.
-
->>> Ah, I think it's better to keep the permissions of the repository
->>> and source directory sane (755) and make the cgi suid to your user,
->>> which is how it's designed to work.
-
->>>> I realise that now, and I now have a much more sane setup that works.
-
-----
-
- --- IkiWiki.pm
- +++ IkiWiki.pm
- @@ -734,7 +734,18 @@
- my $page=shift;
- my $spec=shift;
-
- - return eval pagespec_translate($spec);
- + my $pagespec = pagespec_translate($spec);
- +
- + my $newpagespec;
- +
- + local($1);
- + if ($pagespec =~ /(.*)/) {
- + $newpagespec = $1;
- + } else {
- + die "oh";
- + }
- +
- + return eval $newpagespec;
- } #}}}
-
- sub match_glob ($$) { #{{{
-
-This works around a silly, but extremely annoying, taint bug in older
-versions of perl. I'm not sure of the details, but it means that either
-values become tainted from nowhere, or they don't get untainted possibly.
-This also affects backports to sarge. `"oh"` is not going to be very
-informative if that code path is ever taken, but I hope that it never is.
-
-> You're not the first person to report a problem here with older versions
-> of perl and pagespec tainting. I suspect that this would work around it:
- return eval possibly_foolish_untaint(pagespec_translate($spec));
-> I'm _very_ uncomfortable putting that in the shipping version of ikiwiki,
-> because pagespecs are potentially _insanely_ dangerous, given how they're
-> evaled and all. The tainting is the only sanity check there is that
-> `pagespec_translate` manages to clean up any possibly harmful perl code
-> in a pagespec. It's good to have belt and suspenders here.
->
-> For all I know, older versions of perl are keeping it tainted because
-> `pagespec_translate` is somehow broken under old versions of perl and is
-> in fact not fully untainting the pagespec. Ok, probably not, it's more
-> likely that some of the regexps in there don't manage to clear the taint
-> flag with old versions of perl, while still doing a perfectly ok job of
-> sanitising the pagespec.
->
-> I suppose that the version of perl ($^V) could be checked and the untaint
-> only be called for the old version. Though it seems it would be better
-> to try to debug this some first. Maybe instrumenting `pagespec_translate`
-> with calls to Scalar::Utils's tainted() function and seeing which parts
-> of pagespecs arn't getting untainted would be a good start.
->
-> --[[Joey]]
-
->> It seems like it is always the (with instrumentation)
-
- elsif ($word =~ /^(link|backlink|created_before|created_after|creation_month|creation_year|creation_day)\((.+)\)$/) {
- warn("\$1 tainted=".tainted($1).", \$2 tainted=".tainted($2)." \$code tainted=".tainted($code));
- $code.=" match_$1(\$page, ".safequote($2).")";
- warn("\$1 tainted=".tainted($1).", \$2 tainted=".tainted($2)." \$code tainted=".tainted($code));
- warn("safequote tainted=".tainted(safequote($2)));
- }
-
->> bit that causes it. With the following trace:
-
- $1 tainted=0, $2 tainted=0 $code tainted=0 at IkiWiki.pm line 718.
- $1 tainted=0, $2 tainted=0 $code tainted=1 at IkiWiki.pm line 720.
- safequote tainted=0 at IkiWiki.pm line 721.
-
->> which shows that `$code` appears to become tainted from nowhere.
->> <http://mail-archives.apache.org/mod_mbox/spamassassin-dev/200509.mbox/%3C3838.431C7D9B.5F152B8F.dev@spamassassin.apache.org%3E>
->> is what pointed me to find the problem/workaround.
-
->>> Given that verification, an untaint contingent on the value of $^V
->>> sounds reasonable and I'd accept such a patch. I'm not quite sure which
->>> version(s) of perl it should check for.
-
->>>> I'm not going to write one though. I don't know what versions either,
->>>> but I think the evil of the special case is too much in this case. If
->>>> you are happy to insist on a newer version of perl then I will leave
->>>> it at that and sort something out locally. If you want the patch I will
->>>> code it though, as I realise you may want to support sarge installs.
diff --git a/doc/plugins/orphans.mdwn b/doc/plugins/orphans.mdwn
index a78016f98..895fd18f6 100644
--- a/doc/plugins/orphans.mdwn
+++ b/doc/plugins/orphans.mdwn
@@ -14,5 +14,6 @@ orphans.
[[if test="enabled(orphans)" then="""
Here's a list of orphaned pages on this wiki:
-[[orphans pages="* and !news/* and !todo/* and !bugs/* and !patchqueue/* and !users/* and !examples/*"]]
+[[orphans pages="* and !news/* and !todo/* and !bugs/* and !users/* and
+!examples/* and !tips/*"]]
"""]]
diff --git a/doc/roadmap/discussion.mdwn b/doc/roadmap/discussion.mdwn
index b9ad5d10e..0b69867bf 100644
--- a/doc/roadmap/discussion.mdwn
+++ b/doc/roadmap/discussion.mdwn
@@ -12,7 +12,7 @@ them to be absolute, but I definitely remember tripping over absolute
pagespecs a few times when I was just starting out. Thus I think we've
learned to accept it as natural, where a new user wouldn't.
-* bugs, todo, news, blog, users, sandbox, and patchqueue
+* bugs, todo, news, blog, users, and sandbox
are all at "toplevel", so they are equivalent whether
pagespecs are absolute or relative.
* soc doesn't refer to any pages explicitly so it doesn't matter
@@ -28,4 +28,4 @@ learned to accept it as natural, where a new user wouldn't.
right now)
Maybe inline should use relative pagespecs by default, and other plugins
-don't? --Ethan \ No newline at end of file
+don't? --Ethan
diff --git a/doc/sitemap.mdwn b/doc/sitemap.mdwn
index 8255c8df2..939f20a74 100644
--- a/doc/sitemap.mdwn
+++ b/doc/sitemap.mdwn
@@ -1,5 +1,5 @@
This map excludes discussion pages, as well as subpages that are in feeds.
[[map pages="* and !*/discussion
-and !bugs/* and !examples/*/* and !news/* and !patchqueue/* and !plugins/* and !sandbox/* and !todo/* and !users/*
+and !bugs/* and !examples/*/* and !news/* and !tips/* and !plugins/* and !sandbox/* and !todo/* and !users/*
and !*.css and !*.ico and !*.png and !*.svgz and !*.gif"]]
diff --git a/doc/soc.mdwn b/doc/soc.mdwn
index 2ed1305b6..f82dbdc89 100644
--- a/doc/soc.mdwn
+++ b/doc/soc.mdwn
@@ -14,10 +14,10 @@ the following projects will be worked on:
(See [[todo/fileupload/soc-proposal]])
* Wiki WYSIWYG Editor
by [[TaylorKillian]]
- (See [[patchqueue/Wikiwyg_Plugin_for_IkiWiki]])
+ (See [[todo/wikiwyg]])
* Creating a gallery of a bunch of images
by [[ArpitJain]]
- (See [[patchqueue/Gallery_Plugin_for_Ikiwiki]])
+ (See [[todo/Gallery]])
Students working on these projects are encouraged to add links to any blogs,
patch repositories, etc that they will use.
diff --git a/doc/todo.mdwn b/doc/todo.mdwn
index 01c4cf158..71c01d63c 100644
--- a/doc/todo.mdwn
+++ b/doc/todo.mdwn
@@ -3,6 +3,6 @@ Welcome to ikiwiki's todo list. Link items to [[todo/done]] when done.
Also see the [[wishlist]] and [[bugs]] pages.
[[inline pages="todo/* and !todo/done and !link(todo/done) and
-!link(wishlist) and !todo/*/*"
+!link(patch) and !link(wishlist) and !todo/*/*"
feedpages="created_after(todo/supporting_comments_via_disussion_pages)"
actions=yes rootpage="todo" postformtext="Add a new todo item titled:" show=0]]
diff --git a/doc/todo/Gallery.mdwn b/doc/todo/Gallery.mdwn
index ef4c55d74..a53b77d82 100644
--- a/doc/todo/Gallery.mdwn
+++ b/doc/todo/Gallery.mdwn
@@ -20,4 +20,35 @@ That's one way to do it, and it has some nice benefits, like being able to edit
--[[Joey]]
-[[tag soc]] \ No newline at end of file
+[[tag soc]]
+
+[[tag wishlist]]
+
+----
+
+I have implemented the first version of the Gallery Plugin for Ikiwiki as part of [[soc]]. This plugin would create a nice looking gallery of the images once the directory containing images is specified with some additional parameters. It has been build over the img plugin.
+
+Plugin can be downloaded from [here](http://myweb.unomaha.edu/~ajain/gallery.tar).
+
+It can be used as : <br>
+\[[gallery imagedir="images" thumbnailsize="200x200" cols="3" alt="Can not be displayed" title="My Pictures"]]
+
+where-<br>
+* imagedir => Directory containing images. It will scan all the files with jpg|png|gif extension from the directory and will put it in the gallery.<br>
+* thumbnailsize(optional) => Size of the thumbnail that you want to generate for the gallery.<br>
+* alt(optional) => If image can not be displayed, it will display the text contained in alt argument.<br>
+* cols(optional) => Number of columns of thumbnails that you want to generate.<br>
+* title(optional) => Title of the gallery.<br>
+
+Features of the Gallery Plugin:<br>
+* You can go the next image by clicking on the right side of the image or by pressing 'n'.<br>
+* Similary, you can go the previous image by clicking on the left side of the image or by pressing 'p'.<br>
+* Press esc to close the gallery.<br>
+* While on image, nearby images are preloaded in the background, so as to make the browsing fast.<br>
+
+Right now, it features only one template namely [Lightbox](http://www.hudddletogether.com). Later on, I will add few more templates.<br>
+For any feedback or query, feel free to mail me at arpitjain11 [AT] gmail.com
+
+Additional details are available [here](http://myweb.unomaha.edu/~ajain/ikiwikigallery.html).
+
+[[tag patch]]
diff --git a/doc/todo/Moving_Pages.mdwn b/doc/todo/Moving_Pages.mdwn
index 62dda204a..2e0603ca7 100644
--- a/doc/todo/Moving_Pages.mdwn
+++ b/doc/todo/Moving_Pages.mdwn
@@ -35,4 +35,281 @@ Brad
> to edit the new page, only the call to redirect.
> --Ethan
-Note that there is a partial implementation in the [[patchqueoe|patchqueue/move_page]].
+-----
+
+[[tag patch]]
+
+This is my second cut at a feature like that requested here.
+It can also be found [here](http://ikidev.betacantrips.com/patches/move.patch).
+
+A few shortcomings exist:
+
+* No precautions whatsoever are made to protect against race conditions or failures
+ in the rcs\_move function. I didn't even do the `cgi_editpage` thing where I hold
+ the lock and render afterwards (mostly because the copy I was editing was not
+ up-to-date enough to have that code). Although FAILED_SAVE is in movepage.tmpl,
+ no code activates it yet.
+* Some code is duplicated between cgi\_movepage and cgi\_editpage, as well
+ as rcs\_commit and rcs\_move.
+* The user interface is pretty lame. I couldn't figure out a good way to let
+ the user specify which directory to move things to without implementing a
+ FileChooser thing.
+* No redirect pages like those mentioned on [[todo/Moving_Pages]] exist yet,
+ so none are created.
+* I added a Move link to page.tmpl but it may belong better someplace else --
+ maybe editpage.tmpl? Not sure.
+* from is redundant with page so far -- but since the Move links could someday
+ come from someplace other than the page itself I kept it around.
+* If I move foo.mdwn to bar.mdwn, foo/* should move too, probably.
+
+> Looks like a good start, although I agree about many of the points above,
+> and also feel that something needs to be done about rcses that don't
+> implement a move operation -- falling back to an add and delete.
+> --[[Joey]]
+
+Hmm. Shouldn't that be done on a by-RCS basis, though? (i.e. implemented
+by backends in the `rcs_move` function)
+
+> Probably, yes, but maybe there's a way to avoid duplicating code for that
+> in several of them.
+
+Also, how should ikiwiki react if a page is edited (say, by another user)
+before it is moved? Bail, or shrug and proceed?
+
+> The important thing is to keep in mind that the page could be edited,
+> moved, deleted, etc in between the user starting the move and the move
+> happening. So, the code really needs to deal with all of these cases in
+> some way. It seems fine to me to go ahead with the move even if the page
+> was edited. If the page was deleted or moved, it seems reasonable to exit
+> with an error.
+
+ diff -urNX ignorepats ikiwiki/IkiWiki/CGI.pm ikidev/IkiWiki/CGI.pm
+ --- ikiwiki/IkiWiki/CGI.pm 2007-02-14 18:17:12.000000000 -0800
+ +++ ikidev/IkiWiki/CGI.pm 2007-02-22 18:54:23.194982000 -0800
+ @@ -561,6 +561,106 @@
+ }
+ } #}}}
+
+ +sub cgi_movepage($$) {
+ + my $q = shift;
+ + my $session = shift;
+ + eval q{use CGI::FormBuilder};
+ + error($@) if $@;
+ + my @fields=qw(do from rcsinfo page newdir newname comments);
+ + my @buttons=("Rename Page", "Cancel");
+ +
+ + my $form = CGI::FormBuilder->new(
+ + fields => \@fields,
+ + header => 1,
+ + charset => "utf-8",
+ + method => 'POST',
+ + action => $config{cgiurl},
+ + template => (-e "$config{templatedir}/movepage.tmpl" ?
+ + {template_params("movepage.tmpl")} : ""),
+ + );
+ + run_hooks(formbuilder_setup => sub {
+ + shift->(form => $form, cgi => $q, session => $session);
+ + });
+ +
+ + decode_form_utf8($form);
+ +
+ + # This untaint is safe because if the page doesn't exist, bail.
+ + my $page = $form->field('page');
+ + $page = possibly_foolish_untaint($page);
+ + if (! exists $pagesources{$page}) {
+ + error("page does not exist");
+ + }
+ + my $file=$pagesources{$page};
+ + my $type=pagetype($file);
+ +
+ + my $from;
+ + if (defined $form->field('from')) {
+ + ($from)=$form->field('from')=~/$config{wiki_file_regexp}/;
+ + }
+ +
+ + $form->field(name => "do", type => 'hidden');
+ + $form->field(name => "from", type => 'hidden');
+ + $form->field(name => "rcsinfo", type => 'hidden');
+ + $form->field(name => "newdir", type => 'text', size => 80);
+ + $form->field(name => "page", value => $page, force => 1);
+ + $form->field(name => "newname", type => "text", size => 80);
+ + $form->field(name => "comments", type => "text", size => 80);
+ + $form->tmpl_param("can_commit", $config{rcs});
+ + $form->tmpl_param("indexlink", indexlink());
+ + $form->tmpl_param("baseurl", baseurl());
+ +
+ + if (! $form->submitted) {
+ + $form->field(name => "rcsinfo", value => rcs_prepedit($file),
+ + force => 1);
+ + }
+ +
+ + if ($form->submitted eq "Cancel") {
+ + redirect($q, "$config{url}/".htmlpage($page));
+ + return;
+ + }
+ +
+ + if (! $form->submitted || ! $form->validate) {
+ + check_canedit($page, $q, $session);
+ + $form->tmpl_param("page_select", 0);
+ + $form->field(name => "page", type => 'hidden');
+ + $form->field(name => "type", type => 'hidden');
+ + $form->title(sprintf(gettext("moving %s"), pagetitle($page)));
+ + my $pname = basename($page);
+ + my $dname = dirname($page);
+ + if (! defined $form->field('newname') ||
+ + ! length $form->field('newname')) {
+ + $form->field(name => "newname",
+ + value => pagetitle($pname, 1), force => 1);
+ + }
+ + if (! defined $form->field('newdir') ||
+ + ! length $form->field('newdir')) {
+ + $form->field(name => "newdir",
+ + value => pagetitle($dname, 1), force => 1);
+ + }
+ + print $form->render(submit => \@buttons);
+ + }
+ + else{
+ + # This untaint is safe because titlepage removes any problematic
+ + # characters.
+ + my ($newname)=$form->field('newname');
+ + $newname=titlepage(possibly_foolish_untaint($newname));
+ + my ($newdir)=$form->field('newdir');
+ + $newdir=titlepage(possibly_foolish_untaint($newdir));
+ + if (! defined $newname || ! length $newname || file_pruned($newname, $config{srcdir}) || $newname=~/^\//) {
+ + error("bad page name");
+ + }
+ + check_canedit($page, $q, $session);
+ +
+ + my $newpage = ($newdir?"$newdir/":"") . $newname;
+ + my $newfile = $newpage . ".$type";
+ + my $message = $form->field('comments');
+ + unlockwiki();
+ + rcs_move($file, $newfile, $message, $form->field("rcsinfo"),
+ + $session->param("name"), $ENV{REMOTE_ADDR});
+ + redirect($q, "$config{url}/".htmlpage($newpage));
+ + }
+ +}
+ +
+ sub cgi_getsession ($) { #{{{
+ my $q=shift;
+
+ @@ -656,6 +756,9 @@
+ elsif (defined $session->param("postsignin")) {
+ cgi_postsignin($q, $session);
+ }
+ + elsif ($do eq 'move') {
+ + cgi_movepage($q, $session);
+ + }
+ elsif ($do eq 'prefs') {
+ cgi_prefs($q, $session);
+ }
+ diff -urNX ignorepats ikiwiki/IkiWiki/Rcs/svn.pm ikidev/IkiWiki/Rcs/svn.pm
+ --- ikiwiki/IkiWiki/Rcs/svn.pm 2007-01-27 16:04:48.000000000 -0800
+ +++ ikidev/IkiWiki/Rcs/svn.pm 2007-02-22 01:51:29.923626000 -0800
+ @@ -60,6 +60,34 @@
+ }
+ } #}}}
+
+ +sub rcs_move ($$$$;$$) {
+ + my $file=shift;
+ + my $newname=shift;
+ + my $message=shift;
+ + my $rcstoken=shift;
+ + my $user=shift;
+ + my $ipaddr=shift;
+ + if (defined $user) {
+ + $message="web commit by $user".(length $message ? ": $message" : "");
+ + }
+ + elsif (defined $ipaddr) {
+ + $message="web commit from $ipaddr".(length $message ? ": $message" : "");
+ + }
+ +
+ + chdir($config{srcdir}); # svn merge wants to be here
+ +
+ + if (system("svn", "move", "--quiet",
+ + "$file", "$newname") != 0) {
+ + return 1;
+ + }
+ + if (system("svn", "commit", "--quiet",
+ + "--encoding", "UTF-8", "-m",
+ + possibly_foolish_untaint($message)) != 0) {
+ + return 1;
+ + }
+ + return undef # success
+ +}
+ +
+ sub rcs_commit ($$$;$$) { #{{{
+ # Tries to commit the page; returns undef on _success_ and
+ # a version of the page with the rcs's conflict markers on failure.
+ diff -urNX ignorepats ikiwiki/IkiWiki/Render.pm ikidev/IkiWiki/Render.pm
+ --- ikiwiki/IkiWiki/Render.pm 2007-02-14 17:00:05.000000000 -0800
+ +++ ikidev/IkiWiki/Render.pm 2007-02-22 18:30:00.451755000 -0800
+ @@ -80,6 +80,7 @@
+
+ if (length $config{cgiurl}) {
+ $template->param(editurl => cgiurl(do => "edit", page => $page));
+ + $template->param(moveurl => cgiurl(do => "move", page => $page));
+ $template->param(prefsurl => cgiurl(do => "prefs"));
+ if ($config{rcs}) {
+ $template->param(recentchangesurl => cgiurl(do => "recentchanges"));
+ diff -urNX ignorepats ikiwiki/templates/movepage.tmpl ikidev/templates/movepage.tmpl
+ --- ikiwiki/templates/movepage.tmpl 1969-12-31 16:00:00.000000000 -0800
+ +++ ikidev/templates/movepage.tmpl 2007-02-22 18:40:39.751763000 -0800
+ @@ -0,0 +1,44 @@
+ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+ +<html>
+ +<head>
+ +<base href="<TMPL_VAR BASEURL>" />
+ +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ +<title><TMPL_VAR FORM-TITLE></title>
+ +<link rel="stylesheet" href="<TMPL_VAR BASEURL>style.css" type="text/css" />
+ +<link rel="stylesheet" href="<TMPL_VAR BASEURL>local.css" type="text/css" />
+ +<TMPL_IF NAME="FAVICON">
+ +<link rel="icon" href="<TMPL_VAR BASEURL><TMPL_VAR FAVICON>" type="image/x-icon" />
+ +</TMPL_IF>
+ +</head>
+ +<body>
+ +<TMPL_IF NAME="FAILED_SAVE">
+ +<p>
+ +<b>Failed to save your changes.</b>
+ +</p>
+ +<p>
+ +Your changes were not able to be saved to disk. The system gave the error:
+ +<blockquote>
+ +<TMPL_VAR ERROR_MESSAGE>
+ +</blockquote>
+ +Your changes are preserved below, and you can try again to save them.
+ +</p>
+ +</TMPL_IF>
+ +<TMPL_VAR FORM-START>
+ +<div class="header">
+ +<span><TMPL_VAR INDEXLINK>/ <TMPL_VAR FORM-TITLE></span>
+ +</div>
+ +<TMPL_VAR FIELD-DO>
+ +<TMPL_VAR FIELD-FROM>
+ +<TMPL_VAR FIELD-RCSINFO>
+ +<TMPL_VAR FIELD-PAGE>
+ +New location: <TMPL_VAR FIELD-NEWDIR>/ <TMPL_VAR FIELD-NEWNAME>
+ +<br />
+ +<TMPL_IF NAME="CAN_COMMIT">
+ +Optional comment about this change:<br />
+ +<TMPL_VAR FIELD-COMMENTS><br />
+ +</TMPL_IF>
+ +<input id="_submit" name="_submit" type="submit" value="Rename Page" /><input id="_submit_2" name="_submit" type="submit" value="Cancel" />
+ +<TMPL_VAR FORM-END>
+ +</body>
+ +</html>
+ diff -urNX ignorepats ikiwiki/templates/page.tmpl ikidev/templates/page.tmpl
+ --- ikiwiki/templates/page.tmpl 2006-12-28 12:27:01.000000000 -0800
+ +++ ikidev/templates/page.tmpl 2007-02-22 01:52:33.078464000 -0800
+ @@ -32,6 +32,9 @@
+ <TMPL_IF NAME="EDITURL">
+ <li><a href="<TMPL_VAR EDITURL>">Edit</a></li>
+ </TMPL_IF>
+ +<TMPL_IF NAME="MOVEURL">
+ +<li><a href="<TMPL_VAR MOVEURL>">Move</a></li>
+ +</TMPL_IF>
+ <TMPL_IF NAME="RECENTCHANGESURL">
+ <li><a href="<TMPL_VAR RECENTCHANGESURL>">RecentChanges</a></li>
+ </TMPL_IF>
diff --git a/doc/patchqueue/Wrapper_config_with_multiline_regexp.mdwn b/doc/todo/Wrapper_config_with_multiline_regexp.mdwn
index b3c6d8e51..c0311bc92 100644
--- a/doc/patchqueue/Wrapper_config_with_multiline_regexp.mdwn
+++ b/doc/todo/Wrapper_config_with_multiline_regexp.mdwn
@@ -1,7 +1,11 @@
-Turning the wikilink regexp into an extended regexp on the svn trunk seems to have broken the setuid wrapper on my system, because of two reasons: First, the wrapper generator should turn each newline in $configstring into `\n` in the C code rather than `\` followed by a newline in the C code. Second, the untainting of $configstring should allow newlines.
+Turning the wikilink regexp into an extended regexp on the svn trunk seems
+to have broken the setuid wrapper on my system, because of two reasons:
+First, the wrapper generator should turn each newline in $configstring into
+`\n` in the C code rather than `\` followed by a newline in the C code.
+Second, the untainting of $configstring should allow newlines.
> Both of these problems were already dealt with in commit r3714, on June
-> 3rd. Confused why you're posting patches for them now. --[[Joey]]
+> 3rd. Confused why you're posting patches for them now. [[done]] --[[Joey]]
Modified: wiki-meta/perl/IkiWiki.pm
==============================================================================
diff --git a/doc/patchqueue/calendar_--_archive_browsing_via_a_calendar_frontend.mdwn b/doc/todo/calendar_--_archive_browsing_via_a_calendar_frontend.mdwn
index f3a8b2f78..d52772a67 100644
--- a/doc/patchqueue/calendar_--_archive_browsing_via_a_calendar_frontend.mdwn
+++ b/doc/todo/calendar_--_archive_browsing_via_a_calendar_frontend.mdwn
@@ -28,7 +28,6 @@ The year and month entities in the out put have links to archive index pages, wh
I'll send in the patch via email.
-
ManojSrivastava
------
@@ -36,6 +35,8 @@ ManojSrivastava
Since this is a little bit er, stalled, I'll post here the stuff Manoj
mailed me, and my response to it. --[[Joey]]
+[[tag patch]]
+
<pre>
#! /usr/bin/perl
# -*- Mode: Cperl -*-
diff --git a/doc/patchqueue/clickable-openid-urls-in-logs.mdwn b/doc/todo/clickable-openid-urls-in-logs.mdwn
index 997bc7492..acf2c2d49 100644
--- a/doc/patchqueue/clickable-openid-urls-in-logs.mdwn
+++ b/doc/todo/clickable-openid-urls-in-logs.mdwn
@@ -1,9 +1,13 @@
-OpenID URLs aren't clickable in the ViewVC logs because they're directly followed by a colon. At the expense of, um, proper grammar, here's a patch for SVN. If this is OK, I'll patch the other RCS modules, too.
+OpenID URLs aren't clickable in the ViewVC logs because they're directly
+followed by a colon. At the expense of, um, proper grammar, here's a patch
+for SVN. If this is OK, I'll patch the other RCS modules, too.
> Reasonable, but probably needs to modify the wiki\_commit\_regexp to
> recognise such commit messages when parsing the logs. Do that and extend
> to the other modules and I'll accept it. --[[Joey]]
+[[tag patch]]
+
<pre>
--- IkiWiki/Rcs/svn.pm (revision 2650)
+++ IkiWiki/Rcs/svn.pm (working copy)
diff --git a/doc/patchqueue/darcs.mdwn b/doc/todo/darcs.mdwn
index 13bd82513..13bd82513 100644
--- a/doc/patchqueue/darcs.mdwn
+++ b/doc/todo/darcs.mdwn
diff --git a/doc/patchqueue/datearchives-plugin.mdwn b/doc/todo/datearchives-plugin.mdwn
index b8566f8cf..8c3faf9ca 100644
--- a/doc/patchqueue/datearchives-plugin.mdwn
+++ b/doc/todo/datearchives-plugin.mdwn
@@ -1,4 +1,7 @@
-I'll be using IkiWiki primarily as a blog, so I want a way to view entries by date. A URL of the form `/date/YYYY/MM/DD.html` (or `/date/YYYY/MM/DD/` when using the `use_dirs` patch) should show posts from that period. ATM, I have this:
+I'll be using IkiWiki primarily as a blog, so I want a way to view entries
+by date. A URL of the form `/date/YYYY/MM/DD.html` (or `/date/YYYY/MM/DD/`
+when using the `use_dirs` patch) should show posts from that period. ATM, I
+have this:
<pre>
Index: IkiWiki/Plugin/datearchives.pm
@@ -68,3 +71,5 @@ This works (although accessing `%IkiWiki::pagectime` is not too clever), but it
>>> No reason to delete this from the queue, it's a reasonable plugin. I
>>> might move it to the contributed plugins directory as it's a bit
>>> specialised to be included in ikiwiki though. --[[Joey]]
+
+[[tag patch]]
diff --git a/doc/patchqueue/enable-htaccess-files.mdwn b/doc/todo/enable-htaccess-files.mdwn
index ed968b195..accd96bd7 100644
--- a/doc/patchqueue/enable-htaccess-files.mdwn
+++ b/doc/todo/enable-htaccess-files.mdwn
@@ -12,6 +12,7 @@
qr/(^|\/).svn\//, qr/.arch-ids\//, qr/{arch}\//],
wiki_link_regexp => qr/\[\[(?:([^\]\|]+)\|)?([^\s\]#]+)(?:#([^\s\]]+))?\]\]/,
+[[tag patch]]
This lets the site administrator have a `.htaccess` file in their underlay
directory, say, then get it copied over when the wiki is built. Without
diff --git a/doc/patchqueue/format_escape.mdwn b/doc/todo/format_escape.mdwn
index ba65b7072..f8ea789ec 100644
--- a/doc/patchqueue/format_escape.mdwn
+++ b/doc/todo/format_escape.mdwn
@@ -32,6 +32,8 @@ escape parameter optional, and only call it if set. --[[Joey]]
>>> to work -- see <http://ikidev.betacantrips.com/blah.html> for an example.
>>> --Ethan
+[[tag patch]]
+
<pre>
Index: debian/changelog
===================================================================
diff --git a/doc/patchqueue/hard-coded_location_for_man_pages_and_w3m_cgi_wrapper.mdwn b/doc/todo/hard-coded_location_for_man_pages_and_w3m_cgi_wrapper.mdwn
index 1efa5361f..2ef231dde 100644
--- a/doc/patchqueue/hard-coded_location_for_man_pages_and_w3m_cgi_wrapper.mdwn
+++ b/doc/todo/hard-coded_location_for_man_pages_and_w3m_cgi_wrapper.mdwn
@@ -12,6 +12,8 @@ while the default stays as it is now.
> INSTALLMAN1DIR (though MakeMaker lacks one for man8). I'd prefer not
> adding new variables where MakeMaker already has them. --[[Joey]]
+[[tag patch]]
+
<pre>
- Introduce two variables, IKI_MANDIR and IKI_W3MCGIDIR, to be set from
diff --git a/doc/patchqueue/index.html_allowed.mdwn b/doc/todo/index.html_allowed.mdwn
index f8bf15ac4..9c09eec5a 100644
--- a/doc/patchqueue/index.html_allowed.mdwn
+++ b/doc/todo/index.html_allowed.mdwn
@@ -3,6 +3,8 @@ providing the usedirs option for output. The remaining patch, discussed
below, concerns wanting to use foo/index.mdwn source files and get an
output page name of foo, rather than foo/index. --[[Joey]]
+[[tag patch]]
+
---
I independently implemented a similar, but smaller patch.
diff --git a/doc/patchqueue/l10n.mdwn b/doc/todo/l10n.mdwn
index 3369bec11..3369bec11 100644
--- a/doc/patchqueue/l10n.mdwn
+++ b/doc/todo/l10n.mdwn
diff --git a/doc/patchqueue/more_class__61____34____34___for_css.mdwn b/doc/todo/more_class__61____34____34___for_css.mdwn
index 49affd29b..064b6b35d 100644
--- a/doc/patchqueue/more_class__61____34____34___for_css.mdwn
+++ b/doc/todo/more_class__61____34____34___for_css.mdwn
@@ -36,6 +36,8 @@ added after an inlined page (namely: the post date, the tags, and the actions):
+
+</div>
+[[tag patch]]
+
> Unfortunately, the inlinepage content passes through markdown, and markdown
> gets confused by these nested div's and puts p's around one of them, generating
> broken html. If you can come up with a way to put in the div that passes
@@ -56,4 +58,4 @@ added after an inlined page (namely: the post date, the tags, and the actions):
>>> report Joey). FYI, I've observed some performance drop with `1.0.2b7` compared to `1.0.1`,
>>> especially noticable with big files. This was also confirmed by someone else, for example,
>>> see this [thread](http://six.pairlist.net/pipermail/markdown-discuss/2006-August/000152.html)
->>> --[[Roktas]] \ No newline at end of file
+>>> --[[Roktas]]
diff --git a/doc/patchqueue/rcs___40__third-party_plugin__41__.mdwn b/doc/todo/rcs___40__third-party_plugin__41__.mdwn
index 977022cf8..3793f7533 100644
--- a/doc/patchqueue/rcs___40__third-party_plugin__41__.mdwn
+++ b/doc/todo/rcs___40__third-party_plugin__41__.mdwn
@@ -3,6 +3,8 @@ I have used it probably over hundred times but needs some work.
<http://www.reedmedia.net/~reed/tmp-sfhkcjkfrfh/rcs.pm>
+[[tag patch]]
+
> Clearly needs some cleanup and perhaps some of the missing stubs
> implemented, before it can be included into ikiwiki.
>
diff --git a/doc/patchqueue/varioki_--_add_template_variables___40__with_closures_for_values__41___in_ikiwiki.setup.mdwn b/doc/todo/varioki_--_add_template_variables___40__with_closures_for_values__41___in_ikiwiki.setup.mdwn
index 41f92d554..9b3e015a5 100644
--- a/doc/patchqueue/varioki_--_add_template_variables___40__with_closures_for_values__41___in_ikiwiki.setup.mdwn
+++ b/doc/todo/varioki_--_add_template_variables___40__with_closures_for_values__41___in_ikiwiki.setup.mdwn
@@ -231,3 +231,5 @@ ManojSrivastava
+__END__
+
</pre>
+
+[[tag patch]]
diff --git a/doc/todo/wikiwyg.mdwn b/doc/todo/wikiwyg.mdwn
index 5e3430dc3..f8f04c245 100644
--- a/doc/todo/wikiwyg.mdwn
+++ b/doc/todo/wikiwyg.mdwn
@@ -25,3 +25,20 @@ off in WikiText mode.
[[tag soc]]
[[tag wishlist]]
+
+[[tag patch]]
+
+Project IkiWiki::WIKIWYG v0.8 - <http://ikiwiki.xbaud.com/>
+===========================================================
+
+[Wikiwyg][] is a "What you see is what you get" editor for wikis. It will allow you to double click on the text in a wiki and save it without reloading the page. The IkiWiki version will allow you to edit your wiki in Markdown or WYSIWYG.
+
+The plugin can be downloaded from <http://ikiwiki.xbaud.com/wikiwyg-0.8.tar.gz>
+
+### Current Issues
+
+* Code sections starting with 4 spaces do not work
+* Adding links in the WYSIWYG editor is difficult
+* Double lists don't work
+
+[Wikiwyg]: http://www.wikiwyg.net/
diff --git a/doc/patchqueue/Wikiwyg_Plugin_for_IkiWiki/discussion.mdwn b/doc/todo/wikiwyg/discussion.mdwn
index 93b9c8ce1..93b9c8ce1 100644
--- a/doc/patchqueue/Wikiwyg_Plugin_for_IkiWiki/discussion.mdwn
+++ b/doc/todo/wikiwyg/discussion.mdwn
diff --git a/doc/translation.mdwn b/doc/translation.mdwn
index b224d7031..58a8f4b48 100644
--- a/doc/translation.mdwn
+++ b/doc/translation.mdwn
@@ -24,7 +24,7 @@ essentailly three peices needed for a complete translation:
1. The templates also need to be translated. Some work has been done on an
infrastructure for maintaining translated templates, as documented in
- [[patchqueue/l10n]], but until that's complete, you'd need to copy and
+ [[todo/l10n]], but until that's complete, you'd need to copy and
translate the templates by hand.
1. The [[basewiki]] itself needs to be translated. Whether to only translate
diff --git a/doc/users/KarlMW/discussion.mdwn b/doc/users/KarlMW/discussion.mdwn
index 037635122..9117abcab 100644
--- a/doc/users/KarlMW/discussion.mdwn
+++ b/doc/users/KarlMW/discussion.mdwn
@@ -13,7 +13,7 @@ things that need changing then I will probably need help/guidance.
--[[KarlMW]]
> The main problem I see is the html escaping issue. This is not really
-> unique to asciidoc, see [[patchqueue/format_escape]]. I wonder if the
+> unique to asciidoc, see [[todo/format_escape]]. I wonder if the
> technique provided by that patch could be used to let your plugin
> automatically handle the escaping. Unfortunatey, I have not yet gotten
> around to reviewing/applying the patch. --[[Joey]]
@@ -22,4 +22,4 @@ things that need changing then I will probably need help/guidance.
>> I suspect that asciidoc can't really be made to play nice to the extent that I would want casual users/abusers to have it as a markup option on a live wiki - it's fine for a personal site where you can look at the output before putting it online, but I think it would be a hideously gaping integrity hole for anything more than that. However, for a personal site (as I am using it), it does seem to have its uses.
->> I'll keep an eye on the format_escape plugin, and assuming it is accepted into ikiwiki, will see if I can apply it to asciidoc. --[[KarlMW]] \ No newline at end of file
+>> I'll keep an eye on the format_escape plugin, and assuming it is accepted into ikiwiki, will see if I can apply it to asciidoc. --[[KarlMW]]
diff --git a/doc/wishlist.mdwn b/doc/wishlist.mdwn
index 0c67fa975..6c3c601b1 100644
--- a/doc/wishlist.mdwn
+++ b/doc/wishlist.mdwn
@@ -3,4 +3,4 @@ improvements people would like to see in ikiwiki. Good patches for any of
these will likely be accepted.
[[inline pages="todo/* and !todo/done and !link(todo/done) and
-link(wishlist) and !todo/*/*" archive=yes show=0]]
+link(wishlist) and !link(patch) and !todo/*/*" archive=yes show=0]]