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.
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?
>> 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]]
[[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]]
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
>>> 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]]
>>> 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]]
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.
--- /dev/null
+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"]]
+++ /dev/null
-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"]]
+++ /dev/null
-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
+++ /dev/null
-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
+++ /dev/null
-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>
+++ /dev/null
-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.
[[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/*"]]
"""]]
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
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
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"]]
(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.
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]]
--[[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]]
> 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>
-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
==============================================================================
I'll send in the patch via email.
-
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 -*-
-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)
-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
>>> 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]]
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
>>> to work -- see <http://ikidev.betacantrips.com/blah.html> for an example.
>>> --Ethan
+[[tag patch]]
+
<pre>
Index: debian/changelog
===================================================================
> 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
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.
+
+</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
>>> 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]]
<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.
>
+__END__
+
</pre>
+
+[[tag patch]]
[[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/
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
--[[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]]
>> 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]]
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]]