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 :
-\[[gallery imagedir="images" thumbnailsize="200x200" cols="3" alt="Can not be displayed" title="My Pictures"]] - -where-
-* 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.
-* thumbnailsize(optional) => Size of the thumbnail that you want to generate for the gallery.
-* alt(optional) => If image can not be displayed, it will display the text contained in alt argument.
-* cols(optional) => Number of columns of thumbnails that you want to generate.
-* title(optional) => Title of the gallery.
- -Features of the Gallery Plugin:
-* You can go the next image by clicking on the right side of the image or by pressing 'n'.
-* Similary, you can go the previous image by clicking on the left side of the image or by pressing 'p'.
-* Press esc to close the gallery.
-* While on image, nearby images are preloaded in the background, so as to make the browsing fast.
- -Right now, it features only one template namely [Lightbox](http://www.hudddletogether.com). Later on, I will add few more templates.
-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 - -=========================================================== - -[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 - -### 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 @@ - + - + - + - + - + - +<TMPL_VAR FORM-TITLE> - + - + - + - + - + - + - + - + - +

- +Failed to save your changes. - +

- +

- +Your changes were not able to be saved to disk. The system gave the error: - +

- + - +
- +Your changes are preserved below, and you can try again to save them. - +

- +
- + - +
- +/ - +
- + - + - + - + - +New location: / - +
- + - +Optional comment about this change:
- +
- +
- + - + - + - + - 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 @@ - -
  • Edit
  • -
    - + - +
  • Move
  • - +
    - -
  • RecentChanges
  • -
    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. ->> ->> 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 :
    +\[[gallery imagedir="images" thumbnailsize="200x200" cols="3" alt="Can not be displayed" title="My Pictures"]] + +where-
    +* 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.
    +* thumbnailsize(optional) => Size of the thumbnail that you want to generate for the gallery.
    +* alt(optional) => If image can not be displayed, it will display the text contained in alt argument.
    +* cols(optional) => Number of columns of thumbnails that you want to generate.
    +* title(optional) => Title of the gallery.
    + +Features of the Gallery Plugin:
    +* You can go the next image by clicking on the right side of the image or by pressing 'n'.
    +* Similary, you can go the previous image by clicking on the left side of the image or by pressing 'p'.
    +* Press esc to close the gallery.
    +* While on image, nearby images are preloaded in the background, so as to make the browsing fast.
    + +Right now, it features only one template namely [Lightbox](http://www.hudddletogether.com). Later on, I will add few more templates.
    +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 @@ + + + + + + + + + + + +<TMPL_VAR FORM-TITLE> + + + + + + + + + + + + + + + + + +

    + +Failed to save your changes. + +

    + +

    + +Your changes were not able to be saved to disk. The system gave the error: + +

    + + + +
    + +Your changes are preserved below, and you can try again to save them. + +

    + +
    + + + +
    + +/ + +
    + + + + + + + + + +New location: / + +
    + + + +Optional comment about this change:
    + +
    + +
    + + + + + + + + + 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 @@ + +
  • Edit
  • +
    + + + +
  • Move
  • + +
    + +
  • RecentChanges
  • +
    diff --git a/doc/patchqueue/Wrapper_config_with_multiline_regexp.mdwn b/doc/todo/Wrapper_config_with_multiline_regexp.mdwn similarity index 75% rename from doc/patchqueue/Wrapper_config_with_multiline_regexp.mdwn rename to 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 similarity index 99% rename from doc/patchqueue/calendar_--_archive_browsing_via_a_calendar_frontend.mdwn rename to 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]] +
     #! /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
    similarity index 82%
    rename from doc/patchqueue/clickable-openid-urls-in-logs.mdwn
    rename to 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]]
    +
     
     --- IkiWiki/Rcs/svn.pm  (revision 2650)
     +++ IkiWiki/Rcs/svn.pm  (working copy)
    diff --git a/doc/patchqueue/darcs.mdwn b/doc/todo/darcs.mdwn
    similarity index 100%
    rename from doc/patchqueue/darcs.mdwn
    rename to doc/todo/darcs.mdwn
    diff --git a/doc/patchqueue/datearchives-plugin.mdwn b/doc/todo/datearchives-plugin.mdwn
    similarity index 95%
    rename from doc/patchqueue/datearchives-plugin.mdwn
    rename to 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:
     
     
     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
    similarity index 98%
    rename from doc/patchqueue/enable-htaccess-files.mdwn
    rename to 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
    similarity index 99%
    rename from doc/patchqueue/format_escape.mdwn
    rename to 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  for an example.
     >>> --Ethan
     
    +[[tag patch]]
    +
     
     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
    similarity index 99%
    rename from doc/patchqueue/hard-coded_location_for_man_pages_and_w3m_cgi_wrapper.mdwn
    rename to 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]]
    +
     
     
       - 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
    similarity index 99%
    rename from doc/patchqueue/index.html_allowed.mdwn
    rename to 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
    similarity index 100%
    rename from doc/patchqueue/l10n.mdwn
    rename to 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
    similarity index 98%
    rename from doc/patchqueue/more_class__61____34____34___for_css.mdwn
    rename to 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):
         +
         +
     
    +[[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
    similarity index 98%
    rename from doc/patchqueue/rcs___40__third-party_plugin__41__.mdwn
    rename to 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.
     
     
     
    +[[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
    similarity index 99%
    rename from doc/patchqueue/varioki_--_add_template_variables___40__with_closures_for_values__41___in_ikiwiki.setup.mdwn
    rename to 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__
     +
     
    + +[[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 - +=========================================================== + +[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 + +### 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 similarity index 100% rename from doc/patchqueue/Wikiwyg_Plugin_for_IkiWiki/discussion.mdwn rename to 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]]