massive patchqueue reorg
patches can now be anywhere and tagged patch to show up on the patch list. Moved all the patchqueue stuff to todo items; some of it was merged into existing todo items.master
parent
d63068b669
commit
c96d672810
|
@ -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
|
Support for using darcs as a backend is being worked on by [Thomas
|
||||||
Schwinge](mailto:tschwinge@gnu.org), although development is on hold curretly.
|
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?
|
### 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
|
>> 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
|
>> 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
|
>> 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]]
|
>> probably accept it into ikiwiki.. --[[Joey]]
|
||||||
|
|
||||||
## [[Git]]
|
## [[Git]]
|
||||||
|
|
|
@ -4,6 +4,6 @@ Also see the [Debian bugs](http://bugs.debian.org/ikiwiki), and the
|
||||||
[[TODO]] page.
|
[[TODO]] page.
|
||||||
|
|
||||||
[[inline pages="bugs/* and !bugs/done and !bugs/discussion and
|
[[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)"
|
feedpages="created_after(bugs/no_commit_mails_for_new_pages)"
|
||||||
actions=yes rootpage="bugs" postformtext="Add a new bug titled:" show=0]]
|
actions=yes rootpage="bugs" postformtext="Add a new bug titled:" show=0]]
|
||||||
|
|
|
@ -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
|
html pages that it didn't have record of. I don't know what build failed
|
||||||
exactly. --[[Joey]]
|
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
|
>>> 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
|
>>> down next time it occurs. It seems to be happening when you add things
|
||||||
|
|
|
@ -24,7 +24,7 @@ or "History". --[[Paweł|ptecza]]
|
||||||
>>> existing/nonexisting page in two places, one in code in ikiwiki and one
|
>>> existing/nonexisting page in two places, one in code in ikiwiki and one
|
||||||
>>> in the template. Not good design. --[[Joey]]
|
>>> 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
|
> 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
|
> and po files is the best approach for these, although Recai suggested an
|
||||||
> approach of translating the strings using a template file. --[[Joey]]
|
> 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
|
>>> translating it. [[bugs/done]]! There's a `po/debconf.pot` in the source
|
||||||
>>> now for translating. See [[translation]]. --[[Joey]]
|
>>> now for translating. See [[translation]]. --[[Joey]]
|
||||||
|
|
||||||
>>>> Joey, you're great! ;) Thanks a lot! I'll try ikiwiki l10n stuff soon. --[[Paweł|ptecza]]
|
>>>> Joey, you're great! ;) Thanks a lot! I'll try ikiwiki l10n stuff soon. --[[Paweł|ptecza]]
|
||||||
|
|
|
@ -28,8 +28,7 @@ Thanks! --[[Joey]]
|
||||||
developed, and is being written with security as a priority, so don't
|
developed, and is being written with security as a priority, so don't
|
||||||
expect things to stay in this list for long.
|
expect things to stay in this list for long.
|
||||||
|
|
||||||
* Developers, please document any ikiwiki patches you have in the
|
* Developers, please document any ikiwiki [[patches|patch]] you have.
|
||||||
[[PatchQueue]].
|
|
||||||
|
|
||||||
All wikis are supposed to have a [[SandBox]], so this one does too.
|
All wikis are supposed to have a [[SandBox]], so this one does too.
|
||||||
|
|
||||||
|
|
|
@ -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"]]
|
|
@ -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"]]
|
|
|
@ -1,24 +0,0 @@
|
||||||
I have implemented the first version of the Gallery Plugin for Ikiwiki as part of [[soc]]. This plugin would create a nice looking gallery of the images once the directory containing images is specified with some additional parameters. It has been build over the img plugin.
|
|
||||||
|
|
||||||
Plugin can be downloaded from [here](http://myweb.unomaha.edu/~ajain/gallery.tar).
|
|
||||||
|
|
||||||
It can be used as : <br>
|
|
||||||
\[[gallery imagedir="images" thumbnailsize="200x200" cols="3" alt="Can not be displayed" title="My Pictures"]]
|
|
||||||
|
|
||||||
where-<br>
|
|
||||||
* imagedir => Directory containing images. It will scan all the files with jpg|png|gif extension from the directory and will put it in the gallery.<br>
|
|
||||||
* thumbnailsize(optional) => Size of the thumbnail that you want to generate for the gallery.<br>
|
|
||||||
* alt(optional) => If image can not be displayed, it will display the text contained in alt argument.<br>
|
|
||||||
* cols(optional) => Number of columns of thumbnails that you want to generate.<br>
|
|
||||||
* title(optional) => Title of the gallery.<br>
|
|
||||||
|
|
||||||
Features of the Gallery Plugin:<br>
|
|
||||||
* You can go the next image by clicking on the right side of the image or by pressing 'n'.<br>
|
|
||||||
* Similary, you can go the previous image by clicking on the left side of the image or by pressing 'p'.<br>
|
|
||||||
* Press esc to close the gallery.<br>
|
|
||||||
* While on image, nearby images are preloaded in the background, so as to make the browsing fast.<br>
|
|
||||||
|
|
||||||
Right now, it features only one template namely [Lightbox](http://www.hudddletogether.com). Later on, I will add few more templates.<br>
|
|
||||||
For any feedback or query, feel free to mail me at arpitjain11 [AT] gmail.com
|
|
||||||
|
|
||||||
Additional details are available [here](http://myweb.unomaha.edu/~ajain/ikiwikigallery.html).
|
|
|
@ -1,14 +0,0 @@
|
||||||
Project IkiWiki::WIKIWYG v0.8 - <http://ikiwiki.xbaud.com/>
|
|
||||||
===========================================================
|
|
||||||
|
|
||||||
[Wikiwyg][] is a "What you see is what you get" editor for wikis. It will allow you to double click on the text in a wiki and save it without reloading the page. The IkiWiki version will allow you to edit your wiki in Markdown or WYSIWYG.
|
|
||||||
|
|
||||||
The plugin can be downloaded from <http://ikiwiki.xbaud.com/wikiwyg-0.8.tar.gz>
|
|
||||||
|
|
||||||
### Current Issues
|
|
||||||
|
|
||||||
* Code sections starting with 4 spaces do not work
|
|
||||||
* Adding links in the WYSIWYG editor is difficult
|
|
||||||
* Double lists don't work
|
|
||||||
|
|
||||||
[Wikiwyg]: http://www.wikiwyg.net/
|
|
|
@ -1,274 +0,0 @@
|
||||||
This is my second cut at a feature like that requested in [[todo/Moving_Pages]].
|
|
||||||
It can also be found [here](http://ikidev.betacantrips.com/patches/move.patch).
|
|
||||||
|
|
||||||
A few shortcomings exist:
|
|
||||||
|
|
||||||
* No precautions whatsoever are made to protect against race conditions or failures
|
|
||||||
in the rcs\_move function. I didn't even do the `cgi_editpage` thing where I hold
|
|
||||||
the lock and render afterwards (mostly because the copy I was editing was not
|
|
||||||
up-to-date enough to have that code). Although FAILED_SAVE is in movepage.tmpl,
|
|
||||||
no code activates it yet.
|
|
||||||
* Some code is duplicated between cgi\_movepage and cgi\_editpage, as well
|
|
||||||
as rcs\_commit and rcs\_move.
|
|
||||||
* The user interface is pretty lame. I couldn't figure out a good way to let
|
|
||||||
the user specify which directory to move things to without implementing a
|
|
||||||
FileChooser thing.
|
|
||||||
* No redirect pages like those mentioned on [[todo/Moving_Pages]] exist yet,
|
|
||||||
so none are created.
|
|
||||||
* I added a Move link to page.tmpl but it may belong better someplace else --
|
|
||||||
maybe editpage.tmpl? Not sure.
|
|
||||||
* from is redundant with page so far -- but since the Move links could someday
|
|
||||||
come from someplace other than the page itself I kept it around.
|
|
||||||
* If I move foo.mdwn to bar.mdwn, foo/* should move too, probably.
|
|
||||||
|
|
||||||
> Looks like a good start, although I agree about many of the points above,
|
|
||||||
> and also feel that something needs to be done about rcses that don't
|
|
||||||
> implement a move operation -- falling back to an add and delete.
|
|
||||||
> --[[Joey]]
|
|
||||||
|
|
||||||
Hmm. Shouldn't that be done on a by-RCS basis, though? (i.e. implemented
|
|
||||||
by backends in the `rcs_move` function)
|
|
||||||
|
|
||||||
> Probably, yes, but maybe there's a way to avoid duplicating code for that
|
|
||||||
> in several of them.
|
|
||||||
|
|
||||||
Also, how should ikiwiki react if a page is edited (say, by another user)
|
|
||||||
before it is moved? Bail, or shrug and proceed?
|
|
||||||
|
|
||||||
> The important thing is to keep in mind that the page could be edited,
|
|
||||||
> moved, deleted, etc in between the user starting the move and the move
|
|
||||||
> happening. So, the code really needs to deal with all of these cases in
|
|
||||||
> some way. It seems fine to me to go ahead with the move even if the page
|
|
||||||
> was edited. If the page was deleted or moved, it seems reasonable to exit
|
|
||||||
> with an error.
|
|
||||||
|
|
||||||
diff -urNX ignorepats ikiwiki/IkiWiki/CGI.pm ikidev/IkiWiki/CGI.pm
|
|
||||||
--- ikiwiki/IkiWiki/CGI.pm 2007-02-14 18:17:12.000000000 -0800
|
|
||||||
+++ ikidev/IkiWiki/CGI.pm 2007-02-22 18:54:23.194982000 -0800
|
|
||||||
@@ -561,6 +561,106 @@
|
|
||||||
}
|
|
||||||
} #}}}
|
|
||||||
|
|
||||||
+sub cgi_movepage($$) {
|
|
||||||
+ my $q = shift;
|
|
||||||
+ my $session = shift;
|
|
||||||
+ eval q{use CGI::FormBuilder};
|
|
||||||
+ error($@) if $@;
|
|
||||||
+ my @fields=qw(do from rcsinfo page newdir newname comments);
|
|
||||||
+ my @buttons=("Rename Page", "Cancel");
|
|
||||||
+
|
|
||||||
+ my $form = CGI::FormBuilder->new(
|
|
||||||
+ fields => \@fields,
|
|
||||||
+ header => 1,
|
|
||||||
+ charset => "utf-8",
|
|
||||||
+ method => 'POST',
|
|
||||||
+ action => $config{cgiurl},
|
|
||||||
+ template => (-e "$config{templatedir}/movepage.tmpl" ?
|
|
||||||
+ {template_params("movepage.tmpl")} : ""),
|
|
||||||
+ );
|
|
||||||
+ run_hooks(formbuilder_setup => sub {
|
|
||||||
+ shift->(form => $form, cgi => $q, session => $session);
|
|
||||||
+ });
|
|
||||||
+
|
|
||||||
+ decode_form_utf8($form);
|
|
||||||
+
|
|
||||||
+ # This untaint is safe because if the page doesn't exist, bail.
|
|
||||||
+ my $page = $form->field('page');
|
|
||||||
+ $page = possibly_foolish_untaint($page);
|
|
||||||
+ if (! exists $pagesources{$page}) {
|
|
||||||
+ error("page does not exist");
|
|
||||||
+ }
|
|
||||||
+ my $file=$pagesources{$page};
|
|
||||||
+ my $type=pagetype($file);
|
|
||||||
+
|
|
||||||
+ my $from;
|
|
||||||
+ if (defined $form->field('from')) {
|
|
||||||
+ ($from)=$form->field('from')=~/$config{wiki_file_regexp}/;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ $form->field(name => "do", type => 'hidden');
|
|
||||||
+ $form->field(name => "from", type => 'hidden');
|
|
||||||
+ $form->field(name => "rcsinfo", type => 'hidden');
|
|
||||||
+ $form->field(name => "newdir", type => 'text', size => 80);
|
|
||||||
+ $form->field(name => "page", value => $page, force => 1);
|
|
||||||
+ $form->field(name => "newname", type => "text", size => 80);
|
|
||||||
+ $form->field(name => "comments", type => "text", size => 80);
|
|
||||||
+ $form->tmpl_param("can_commit", $config{rcs});
|
|
||||||
+ $form->tmpl_param("indexlink", indexlink());
|
|
||||||
+ $form->tmpl_param("baseurl", baseurl());
|
|
||||||
+
|
|
||||||
+ if (! $form->submitted) {
|
|
||||||
+ $form->field(name => "rcsinfo", value => rcs_prepedit($file),
|
|
||||||
+ force => 1);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if ($form->submitted eq "Cancel") {
|
|
||||||
+ redirect($q, "$config{url}/".htmlpage($page));
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (! $form->submitted || ! $form->validate) {
|
|
||||||
+ check_canedit($page, $q, $session);
|
|
||||||
+ $form->tmpl_param("page_select", 0);
|
|
||||||
+ $form->field(name => "page", type => 'hidden');
|
|
||||||
+ $form->field(name => "type", type => 'hidden');
|
|
||||||
+ $form->title(sprintf(gettext("moving %s"), pagetitle($page)));
|
|
||||||
+ my $pname = basename($page);
|
|
||||||
+ my $dname = dirname($page);
|
|
||||||
+ if (! defined $form->field('newname') ||
|
|
||||||
+ ! length $form->field('newname')) {
|
|
||||||
+ $form->field(name => "newname",
|
|
||||||
+ value => pagetitle($pname, 1), force => 1);
|
|
||||||
+ }
|
|
||||||
+ if (! defined $form->field('newdir') ||
|
|
||||||
+ ! length $form->field('newdir')) {
|
|
||||||
+ $form->field(name => "newdir",
|
|
||||||
+ value => pagetitle($dname, 1), force => 1);
|
|
||||||
+ }
|
|
||||||
+ print $form->render(submit => \@buttons);
|
|
||||||
+ }
|
|
||||||
+ else{
|
|
||||||
+ # This untaint is safe because titlepage removes any problematic
|
|
||||||
+ # characters.
|
|
||||||
+ my ($newname)=$form->field('newname');
|
|
||||||
+ $newname=titlepage(possibly_foolish_untaint($newname));
|
|
||||||
+ my ($newdir)=$form->field('newdir');
|
|
||||||
+ $newdir=titlepage(possibly_foolish_untaint($newdir));
|
|
||||||
+ if (! defined $newname || ! length $newname || file_pruned($newname, $config{srcdir}) || $newname=~/^\//) {
|
|
||||||
+ error("bad page name");
|
|
||||||
+ }
|
|
||||||
+ check_canedit($page, $q, $session);
|
|
||||||
+
|
|
||||||
+ my $newpage = ($newdir?"$newdir/":"") . $newname;
|
|
||||||
+ my $newfile = $newpage . ".$type";
|
|
||||||
+ my $message = $form->field('comments');
|
|
||||||
+ unlockwiki();
|
|
||||||
+ rcs_move($file, $newfile, $message, $form->field("rcsinfo"),
|
|
||||||
+ $session->param("name"), $ENV{REMOTE_ADDR});
|
|
||||||
+ redirect($q, "$config{url}/".htmlpage($newpage));
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
sub cgi_getsession ($) { #{{{
|
|
||||||
my $q=shift;
|
|
||||||
|
|
||||||
@@ -656,6 +756,9 @@
|
|
||||||
elsif (defined $session->param("postsignin")) {
|
|
||||||
cgi_postsignin($q, $session);
|
|
||||||
}
|
|
||||||
+ elsif ($do eq 'move') {
|
|
||||||
+ cgi_movepage($q, $session);
|
|
||||||
+ }
|
|
||||||
elsif ($do eq 'prefs') {
|
|
||||||
cgi_prefs($q, $session);
|
|
||||||
}
|
|
||||||
diff -urNX ignorepats ikiwiki/IkiWiki/Rcs/svn.pm ikidev/IkiWiki/Rcs/svn.pm
|
|
||||||
--- ikiwiki/IkiWiki/Rcs/svn.pm 2007-01-27 16:04:48.000000000 -0800
|
|
||||||
+++ ikidev/IkiWiki/Rcs/svn.pm 2007-02-22 01:51:29.923626000 -0800
|
|
||||||
@@ -60,6 +60,34 @@
|
|
||||||
}
|
|
||||||
} #}}}
|
|
||||||
|
|
||||||
+sub rcs_move ($$$$;$$) {
|
|
||||||
+ my $file=shift;
|
|
||||||
+ my $newname=shift;
|
|
||||||
+ my $message=shift;
|
|
||||||
+ my $rcstoken=shift;
|
|
||||||
+ my $user=shift;
|
|
||||||
+ my $ipaddr=shift;
|
|
||||||
+ if (defined $user) {
|
|
||||||
+ $message="web commit by $user".(length $message ? ": $message" : "");
|
|
||||||
+ }
|
|
||||||
+ elsif (defined $ipaddr) {
|
|
||||||
+ $message="web commit from $ipaddr".(length $message ? ": $message" : "");
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ chdir($config{srcdir}); # svn merge wants to be here
|
|
||||||
+
|
|
||||||
+ if (system("svn", "move", "--quiet",
|
|
||||||
+ "$file", "$newname") != 0) {
|
|
||||||
+ return 1;
|
|
||||||
+ }
|
|
||||||
+ if (system("svn", "commit", "--quiet",
|
|
||||||
+ "--encoding", "UTF-8", "-m",
|
|
||||||
+ possibly_foolish_untaint($message)) != 0) {
|
|
||||||
+ return 1;
|
|
||||||
+ }
|
|
||||||
+ return undef # success
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
sub rcs_commit ($$$;$$) { #{{{
|
|
||||||
# Tries to commit the page; returns undef on _success_ and
|
|
||||||
# a version of the page with the rcs's conflict markers on failure.
|
|
||||||
diff -urNX ignorepats ikiwiki/IkiWiki/Render.pm ikidev/IkiWiki/Render.pm
|
|
||||||
--- ikiwiki/IkiWiki/Render.pm 2007-02-14 17:00:05.000000000 -0800
|
|
||||||
+++ ikidev/IkiWiki/Render.pm 2007-02-22 18:30:00.451755000 -0800
|
|
||||||
@@ -80,6 +80,7 @@
|
|
||||||
|
|
||||||
if (length $config{cgiurl}) {
|
|
||||||
$template->param(editurl => cgiurl(do => "edit", page => $page));
|
|
||||||
+ $template->param(moveurl => cgiurl(do => "move", page => $page));
|
|
||||||
$template->param(prefsurl => cgiurl(do => "prefs"));
|
|
||||||
if ($config{rcs}) {
|
|
||||||
$template->param(recentchangesurl => cgiurl(do => "recentchanges"));
|
|
||||||
diff -urNX ignorepats ikiwiki/templates/movepage.tmpl ikidev/templates/movepage.tmpl
|
|
||||||
--- ikiwiki/templates/movepage.tmpl 1969-12-31 16:00:00.000000000 -0800
|
|
||||||
+++ ikidev/templates/movepage.tmpl 2007-02-22 18:40:39.751763000 -0800
|
|
||||||
@@ -0,0 +1,44 @@
|
|
||||||
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
||||||
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
||||||
+<html>
|
|
||||||
+<head>
|
|
||||||
+<base href="<TMPL_VAR BASEURL>" />
|
|
||||||
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
||||||
+<title><TMPL_VAR FORM-TITLE></title>
|
|
||||||
+<link rel="stylesheet" href="<TMPL_VAR BASEURL>style.css" type="text/css" />
|
|
||||||
+<link rel="stylesheet" href="<TMPL_VAR BASEURL>local.css" type="text/css" />
|
|
||||||
+<TMPL_IF NAME="FAVICON">
|
|
||||||
+<link rel="icon" href="<TMPL_VAR BASEURL><TMPL_VAR FAVICON>" type="image/x-icon" />
|
|
||||||
+</TMPL_IF>
|
|
||||||
+</head>
|
|
||||||
+<body>
|
|
||||||
+<TMPL_IF NAME="FAILED_SAVE">
|
|
||||||
+<p>
|
|
||||||
+<b>Failed to save your changes.</b>
|
|
||||||
+</p>
|
|
||||||
+<p>
|
|
||||||
+Your changes were not able to be saved to disk. The system gave the error:
|
|
||||||
+<blockquote>
|
|
||||||
+<TMPL_VAR ERROR_MESSAGE>
|
|
||||||
+</blockquote>
|
|
||||||
+Your changes are preserved below, and you can try again to save them.
|
|
||||||
+</p>
|
|
||||||
+</TMPL_IF>
|
|
||||||
+<TMPL_VAR FORM-START>
|
|
||||||
+<div class="header">
|
|
||||||
+<span><TMPL_VAR INDEXLINK>/ <TMPL_VAR FORM-TITLE></span>
|
|
||||||
+</div>
|
|
||||||
+<TMPL_VAR FIELD-DO>
|
|
||||||
+<TMPL_VAR FIELD-FROM>
|
|
||||||
+<TMPL_VAR FIELD-RCSINFO>
|
|
||||||
+<TMPL_VAR FIELD-PAGE>
|
|
||||||
+New location: <TMPL_VAR FIELD-NEWDIR>/ <TMPL_VAR FIELD-NEWNAME>
|
|
||||||
+<br />
|
|
||||||
+<TMPL_IF NAME="CAN_COMMIT">
|
|
||||||
+Optional comment about this change:<br />
|
|
||||||
+<TMPL_VAR FIELD-COMMENTS><br />
|
|
||||||
+</TMPL_IF>
|
|
||||||
+<input id="_submit" name="_submit" type="submit" value="Rename Page" /><input id="_submit_2" name="_submit" type="submit" value="Cancel" />
|
|
||||||
+<TMPL_VAR FORM-END>
|
|
||||||
+</body>
|
|
||||||
+</html>
|
|
||||||
diff -urNX ignorepats ikiwiki/templates/page.tmpl ikidev/templates/page.tmpl
|
|
||||||
--- ikiwiki/templates/page.tmpl 2006-12-28 12:27:01.000000000 -0800
|
|
||||||
+++ ikidev/templates/page.tmpl 2007-02-22 01:52:33.078464000 -0800
|
|
||||||
@@ -32,6 +32,9 @@
|
|
||||||
<TMPL_IF NAME="EDITURL">
|
|
||||||
<li><a href="<TMPL_VAR EDITURL>">Edit</a></li>
|
|
||||||
</TMPL_IF>
|
|
||||||
+<TMPL_IF NAME="MOVEURL">
|
|
||||||
+<li><a href="<TMPL_VAR MOVEURL>">Move</a></li>
|
|
||||||
+</TMPL_IF>
|
|
||||||
<TMPL_IF NAME="RECENTCHANGESURL">
|
|
||||||
<li><a href="<TMPL_VAR RECENTCHANGESURL>">RecentChanges</a></li>
|
|
||||||
</TMPL_IF>
|
|
|
@ -1,172 +0,0 @@
|
||||||
Sorry if you don't appreciate me lumping all of these patches together.
|
|
||||||
|
|
||||||
These are various fixes I had to make when installing Ikiwiki. Some are
|
|
||||||
due it being a non-Debian system, the others are actual bugs.
|
|
||||||
|
|
||||||
--- upstream/IkiWiki/Rcs/svn.pm 2006-09-16 01:11:55.000000000 +0100
|
|
||||||
+++ main/IkiWiki/Rcs/svn.pm 2006-09-16 01:12:50.000000000 +0100
|
|
||||||
@@ -34,7 +34,7 @@
|
|
||||||
my $field=shift;
|
|
||||||
my $file=shift;
|
|
||||||
|
|
||||||
- my $info=`LANG=C svn info $file`;
|
|
||||||
+ my $info=`svn info $file`;
|
|
||||||
my ($ret)=$info=~/^$field: (.*)$/m;
|
|
||||||
return $ret;
|
|
||||||
} #}}}
|
|
||||||
@@ -140,7 +140,7 @@
|
|
||||||
if $svn_version =~ /\d\.(\d)\.\d/ && $1 >= 2;
|
|
||||||
|
|
||||||
my $svn_url=svn_info("URL", $config{srcdir});
|
|
||||||
- my $xml = XMLin(scalar `svn $svn_limit --xml -v log '$svn_url'`,
|
|
||||||
+ my $xml = XMLin(scalar `svn $svn_limit --xml -v log '$svn_url' --config-dir /tmp`,
|
|
||||||
ForceArray => [ 'logentry', 'path' ],
|
|
||||||
GroupTags => { paths => 'path' },
|
|
||||||
KeyAttr => { path => 'content' },
|
|
||||||
|
|
||||||
The first hunk of this patch is strange. It just failed to work with this
|
|
||||||
in place, and it took me a long time to figure it out. I realise what you
|
|
||||||
are trying to do, and it still works here as I use a similar LANG anyway.
|
|
||||||
|
|
||||||
For reference svn version 1.3.1 (r19032), my $LANG=en_GB.utf8, but I'm not
|
|
||||||
sure what the CGI was running under.
|
|
||||||
|
|
||||||
> That's strange. Is the problem to do with setting LANG=C or to do
|
|
||||||
> with the way it's set and exported on the same line as the svn info call?
|
|
||||||
> Can you reproduce the problem running svn info outside of ikiwiki?
|
|
||||||
> --[[Joey]]
|
|
||||||
|
|
||||||
>> I've now managed to reproduce the problem. I'll try and give some more information.
|
|
||||||
>> When going to the Recent Changes link I get
|
|
||||||
|
|
||||||
[Sat Sep 16 15:16:08 2006] [error] [client xxxx] svn: Can't check path '/home/jw2328/.subversion': Permission denied, referer: http://xxxxx/test/sandbox.html
|
|
||||||
[Sat Sep 16 15:16:08 2006] [error] [client xxxx] Use of uninitialized value in concatenation (.) or string at /usr/lib/perl5/site_perl/5.8.3/IkiWiki/Rcs/svn.pm line 145., referer: http://xxxx/test/sandbox.html
|
|
||||||
[Sat Sep 16 15:16:08 2006] [error] [client xxxxx] svn: Can't check path '/home/jw2328/.subversion': Permission denied, referer: http://xxxx/test/sandbox.html
|
|
||||||
[Sat Sep 16 15:16:09 2006] [error] [client xxxx] File does not exist: at /usr/lib/perl5/site_perl/5.8.3/IkiWiki/Rcs/svn.pm line 145, referer: http://xxxx/test/sandbox.html
|
|
||||||
[Sat Sep 16 15:16:09 2006] [error] [client xxxx] Premature end of script headers: ikitest, referer: http://xxxx/test/sandbox.html
|
|
||||||
|
|
||||||
>> which the $svn_url is causing the uninitialised value, due to the
|
|
||||||
>> LANG=C it seems, as if I remove it it goes away.
|
|
||||||
>> The file does not exist is due to the unreadable .subversion.
|
|
||||||
>> echoing the LANG before it is set shows that the variable is normally
|
|
||||||
>> empty for the user that is running it.
|
|
||||||
|
|
||||||
The second removes problems with cannot access /home/$user/.svnsomething in
|
|
||||||
the logs. I think this problem was also fatal (I should have reported these
|
|
||||||
sooner).
|
|
||||||
|
|
||||||
I can try and debug these problems if you could suggest some way to do so,
|
|
||||||
but I am probably losing the server in a couple of days, so I can't be of too
|
|
||||||
much help I'm afraid.
|
|
||||||
|
|
||||||
> I imagine that passing --config-dir /tmp would be either insecure or
|
|
||||||
> would limit ikiwiki use to one user per machine.
|
|
||||||
> `--config-dir /etc/subversion` might be better, though still a hack,
|
|
||||||
> since a user's real ~/.subversion might be needed to access some repos.
|
|
||||||
>
|
|
||||||
> Maybe I didn't notice this problem since I have a ~/.subversion
|
|
||||||
> everywhere that I've used ikiwiki. Hmm, no, I don't reproduce it, svn
|
|
||||||
> happily recreated the directory during an ikiwiki run after I moved it
|
|
||||||
> out of the way here. Maybe an issue with old versions of svn? Although
|
|
||||||
> AFIACR, svn has auto-created ~/.subversion for years.
|
|
||||||
>
|
|
||||||
> What's the error message? --[[Joey]]
|
|
||||||
|
|
||||||
>> `svn: Can't check path '/home/jw2328/.subversion': Permission denied,`
|
|
||||||
>> where jw2328 is my usual user.
|
|
||||||
>> I have restrictive permissions of 0700 on home dirs on the server,
|
|
||||||
>> and the CGI is running as uid apache, euid root. (Not my setup anymore).
|
|
||||||
>> The way I had it set up, was jw2328 owning thesource dir, and the svn repo,
|
|
||||||
>> with g+sw on them both. I ran sudo ikiwiki --setup though, as I was reluctant
|
|
||||||
>> to adjust permissions on my cgi-dir. This seems to be the root of the
|
|
||||||
>> problem.
|
|
||||||
|
|
||||||
>>> Ah, I think it's better to keep the permissions of the repository
|
|
||||||
>>> and source directory sane (755) and make the cgi suid to your user,
|
|
||||||
>>> which is how it's designed to work.
|
|
||||||
|
|
||||||
>>>> I realise that now, and I now have a much more sane setup that works.
|
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
--- IkiWiki.pm
|
|
||||||
+++ IkiWiki.pm
|
|
||||||
@@ -734,7 +734,18 @@
|
|
||||||
my $page=shift;
|
|
||||||
my $spec=shift;
|
|
||||||
|
|
||||||
- return eval pagespec_translate($spec);
|
|
||||||
+ my $pagespec = pagespec_translate($spec);
|
|
||||||
+
|
|
||||||
+ my $newpagespec;
|
|
||||||
+
|
|
||||||
+ local($1);
|
|
||||||
+ if ($pagespec =~ /(.*)/) {
|
|
||||||
+ $newpagespec = $1;
|
|
||||||
+ } else {
|
|
||||||
+ die "oh";
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return eval $newpagespec;
|
|
||||||
} #}}}
|
|
||||||
|
|
||||||
sub match_glob ($$) { #{{{
|
|
||||||
|
|
||||||
This works around a silly, but extremely annoying, taint bug in older
|
|
||||||
versions of perl. I'm not sure of the details, but it means that either
|
|
||||||
values become tainted from nowhere, or they don't get untainted possibly.
|
|
||||||
This also affects backports to sarge. `"oh"` is not going to be very
|
|
||||||
informative if that code path is ever taken, but I hope that it never is.
|
|
||||||
|
|
||||||
> You're not the first person to report a problem here with older versions
|
|
||||||
> of perl and pagespec tainting. I suspect that this would work around it:
|
|
||||||
return eval possibly_foolish_untaint(pagespec_translate($spec));
|
|
||||||
> I'm _very_ uncomfortable putting that in the shipping version of ikiwiki,
|
|
||||||
> because pagespecs are potentially _insanely_ dangerous, given how they're
|
|
||||||
> evaled and all. The tainting is the only sanity check there is that
|
|
||||||
> `pagespec_translate` manages to clean up any possibly harmful perl code
|
|
||||||
> in a pagespec. It's good to have belt and suspenders here.
|
|
||||||
>
|
|
||||||
> For all I know, older versions of perl are keeping it tainted because
|
|
||||||
> `pagespec_translate` is somehow broken under old versions of perl and is
|
|
||||||
> in fact not fully untainting the pagespec. Ok, probably not, it's more
|
|
||||||
> likely that some of the regexps in there don't manage to clear the taint
|
|
||||||
> flag with old versions of perl, while still doing a perfectly ok job of
|
|
||||||
> sanitising the pagespec.
|
|
||||||
>
|
|
||||||
> I suppose that the version of perl ($^V) could be checked and the untaint
|
|
||||||
> only be called for the old version. Though it seems it would be better
|
|
||||||
> to try to debug this some first. Maybe instrumenting `pagespec_translate`
|
|
||||||
> with calls to Scalar::Utils's tainted() function and seeing which parts
|
|
||||||
> of pagespecs arn't getting untainted would be a good start.
|
|
||||||
>
|
|
||||||
> --[[Joey]]
|
|
||||||
|
|
||||||
>> It seems like it is always the (with instrumentation)
|
|
||||||
|
|
||||||
elsif ($word =~ /^(link|backlink|created_before|created_after|creation_month|creation_year|creation_day)\((.+)\)$/) {
|
|
||||||
warn("\$1 tainted=".tainted($1).", \$2 tainted=".tainted($2)." \$code tainted=".tainted($code));
|
|
||||||
$code.=" match_$1(\$page, ".safequote($2).")";
|
|
||||||
warn("\$1 tainted=".tainted($1).", \$2 tainted=".tainted($2)." \$code tainted=".tainted($code));
|
|
||||||
warn("safequote tainted=".tainted(safequote($2)));
|
|
||||||
}
|
|
||||||
|
|
||||||
>> bit that causes it. With the following trace:
|
|
||||||
|
|
||||||
$1 tainted=0, $2 tainted=0 $code tainted=0 at IkiWiki.pm line 718.
|
|
||||||
$1 tainted=0, $2 tainted=0 $code tainted=1 at IkiWiki.pm line 720.
|
|
||||||
safequote tainted=0 at IkiWiki.pm line 721.
|
|
||||||
|
|
||||||
>> which shows that `$code` appears to become tainted from nowhere.
|
|
||||||
>> <http://mail-archives.apache.org/mod_mbox/spamassassin-dev/200509.mbox/%3C3838.431C7D9B.5F152B8F.dev@spamassassin.apache.org%3E>
|
|
||||||
>> is what pointed me to find the problem/workaround.
|
|
||||||
|
|
||||||
>>> Given that verification, an untaint contingent on the value of $^V
|
|
||||||
>>> sounds reasonable and I'd accept such a patch. I'm not quite sure which
|
|
||||||
>>> version(s) of perl it should check for.
|
|
||||||
|
|
||||||
>>>> I'm not going to write one though. I don't know what versions either,
|
|
||||||
>>>> but I think the evil of the special case is too much in this case. If
|
|
||||||
>>>> you are happy to insist on a newer version of perl then I will leave
|
|
||||||
>>>> it at that and sort something out locally. If you want the patch I will
|
|
||||||
>>>> code it though, as I realise you may want to support sarge installs.
|
|
|
@ -14,5 +14,6 @@ orphans.
|
||||||
[[if test="enabled(orphans)" then="""
|
[[if test="enabled(orphans)" then="""
|
||||||
Here's a list of orphaned pages on this wiki:
|
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/*"]]
|
||||||
"""]]
|
"""]]
|
||||||
|
|
|
@ -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
|
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.
|
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
|
are all at "toplevel", so they are equivalent whether
|
||||||
pagespecs are absolute or relative.
|
pagespecs are absolute or relative.
|
||||||
* soc doesn't refer to any pages explicitly so it doesn't matter
|
* 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)
|
right now)
|
||||||
|
|
||||||
Maybe inline should use relative pagespecs by default, and other plugins
|
Maybe inline should use relative pagespecs by default, and other plugins
|
||||||
don't? --Ethan
|
don't? --Ethan
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
This map excludes discussion pages, as well as subpages that are in feeds.
|
This map excludes discussion pages, as well as subpages that are in feeds.
|
||||||
|
|
||||||
[[map pages="* and !*/discussion
|
[[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"]]
|
and !*.css and !*.ico and !*.png and !*.svgz and !*.gif"]]
|
||||||
|
|
|
@ -14,10 +14,10 @@ the following projects will be worked on:
|
||||||
(See [[todo/fileupload/soc-proposal]])
|
(See [[todo/fileupload/soc-proposal]])
|
||||||
* Wiki WYSIWYG Editor
|
* Wiki WYSIWYG Editor
|
||||||
by [[TaylorKillian]]
|
by [[TaylorKillian]]
|
||||||
(See [[patchqueue/Wikiwyg_Plugin_for_IkiWiki]])
|
(See [[todo/wikiwyg]])
|
||||||
* Creating a gallery of a bunch of images
|
* Creating a gallery of a bunch of images
|
||||||
by [[ArpitJain]]
|
by [[ArpitJain]]
|
||||||
(See [[patchqueue/Gallery_Plugin_for_Ikiwiki]])
|
(See [[todo/Gallery]])
|
||||||
|
|
||||||
Students working on these projects are encouraged to add links to any blogs,
|
Students working on these projects are encouraged to add links to any blogs,
|
||||||
patch repositories, etc that they will use.
|
patch repositories, etc that they will use.
|
||||||
|
|
|
@ -3,6 +3,6 @@ Welcome to ikiwiki's todo list. Link items to [[todo/done]] when done.
|
||||||
Also see the [[wishlist]] and [[bugs]] pages.
|
Also see the [[wishlist]] and [[bugs]] pages.
|
||||||
|
|
||||||
[[inline pages="todo/* and !todo/done and !link(todo/done) and
|
[[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)"
|
feedpages="created_after(todo/supporting_comments_via_disussion_pages)"
|
||||||
actions=yes rootpage="todo" postformtext="Add a new todo item titled:" show=0]]
|
actions=yes rootpage="todo" postformtext="Add a new todo item titled:" show=0]]
|
||||||
|
|
|
@ -20,4 +20,35 @@ That's one way to do it, and it has some nice benefits, like being able to edit
|
||||||
|
|
||||||
--[[Joey]]
|
--[[Joey]]
|
||||||
|
|
||||||
[[tag soc]]
|
[[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]]
|
||||||
|
|
|
@ -35,4 +35,281 @@ Brad
|
||||||
> to edit the new page, only the call to redirect.
|
> to edit the new page, only the call to redirect.
|
||||||
> --Ethan
|
> --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>
|
||||||
|
|
|
@ -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
|
> 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
|
Modified: wiki-meta/perl/IkiWiki.pm
|
||||||
==============================================================================
|
==============================================================================
|
|
@ -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.
|
I'll send in the patch via email.
|
||||||
|
|
||||||
|
|
||||||
ManojSrivastava
|
ManojSrivastava
|
||||||
|
|
||||||
------
|
------
|
||||||
|
@ -36,6 +35,8 @@ ManojSrivastava
|
||||||
Since this is a little bit er, stalled, I'll post here the stuff Manoj
|
Since this is a little bit er, stalled, I'll post here the stuff Manoj
|
||||||
mailed me, and my response to it. --[[Joey]]
|
mailed me, and my response to it. --[[Joey]]
|
||||||
|
|
||||||
|
[[tag patch]]
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
#! /usr/bin/perl
|
#! /usr/bin/perl
|
||||||
# -*- Mode: Cperl -*-
|
# -*- Mode: Cperl -*-
|
|
@ -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
|
> Reasonable, but probably needs to modify the wiki\_commit\_regexp to
|
||||||
> recognise such commit messages when parsing the logs. Do that and extend
|
> recognise such commit messages when parsing the logs. Do that and extend
|
||||||
> to the other modules and I'll accept it. --[[Joey]]
|
> to the other modules and I'll accept it. --[[Joey]]
|
||||||
|
|
||||||
|
[[tag patch]]
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
--- IkiWiki/Rcs/svn.pm (revision 2650)
|
--- IkiWiki/Rcs/svn.pm (revision 2650)
|
||||||
+++ IkiWiki/Rcs/svn.pm (working copy)
|
+++ IkiWiki/Rcs/svn.pm (working copy)
|
|
@ -1,4 +1,7 @@
|
||||||
I'll be using IkiWiki primarily as a blog, so I want a way to view entries by date. A URL of the form `/date/YYYY/MM/DD.html` (or `/date/YYYY/MM/DD/` when using the `use_dirs` patch) should show posts from that period. ATM, I have this:
|
I'll be using IkiWiki primarily as a blog, so I want a way to view entries
|
||||||
|
by date. A URL of the form `/date/YYYY/MM/DD.html` (or `/date/YYYY/MM/DD/`
|
||||||
|
when using the `use_dirs` patch) should show posts from that period. ATM, I
|
||||||
|
have this:
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
Index: IkiWiki/Plugin/datearchives.pm
|
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
|
>>> 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
|
>>> might move it to the contributed plugins directory as it's a bit
|
||||||
>>> specialised to be included in ikiwiki though. --[[Joey]]
|
>>> specialised to be included in ikiwiki though. --[[Joey]]
|
||||||
|
|
||||||
|
[[tag patch]]
|
|
@ -12,6 +12,7 @@
|
||||||
qr/(^|\/).svn\//, qr/.arch-ids\//, qr/{arch}\//],
|
qr/(^|\/).svn\//, qr/.arch-ids\//, qr/{arch}\//],
|
||||||
wiki_link_regexp => qr/\[\[(?:([^\]\|]+)\|)?([^\s\]#]+)(?:#([^\s\]]+))?\]\]/,
|
wiki_link_regexp => qr/\[\[(?:([^\]\|]+)\|)?([^\s\]#]+)(?:#([^\s\]]+))?\]\]/,
|
||||||
|
|
||||||
|
[[tag patch]]
|
||||||
|
|
||||||
This lets the site administrator have a `.htaccess` file in their underlay
|
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
|
directory, say, then get it copied over when the wiki is built. Without
|
|
@ -32,6 +32,8 @@ escape parameter optional, and only call it if set. --[[Joey]]
|
||||||
>>> to work -- see <http://ikidev.betacantrips.com/blah.html> for an example.
|
>>> to work -- see <http://ikidev.betacantrips.com/blah.html> for an example.
|
||||||
>>> --Ethan
|
>>> --Ethan
|
||||||
|
|
||||||
|
[[tag patch]]
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
Index: debian/changelog
|
Index: debian/changelog
|
||||||
===================================================================
|
===================================================================
|
|
@ -12,6 +12,8 @@ while the default stays as it is now.
|
||||||
> INSTALLMAN1DIR (though MakeMaker lacks one for man8). I'd prefer not
|
> INSTALLMAN1DIR (though MakeMaker lacks one for man8). I'd prefer not
|
||||||
> adding new variables where MakeMaker already has them. --[[Joey]]
|
> adding new variables where MakeMaker already has them. --[[Joey]]
|
||||||
|
|
||||||
|
[[tag patch]]
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
|
|
||||||
- Introduce two variables, IKI_MANDIR and IKI_W3MCGIDIR, to be set from
|
- Introduce two variables, IKI_MANDIR and IKI_W3MCGIDIR, to be set from
|
|
@ -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
|
below, concerns wanting to use foo/index.mdwn source files and get an
|
||||||
output page name of foo, rather than foo/index. --[[Joey]]
|
output page name of foo, rather than foo/index. --[[Joey]]
|
||||||
|
|
||||||
|
[[tag patch]]
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
I independently implemented a similar, but smaller patch.
|
I independently implemented a similar, but smaller patch.
|
|
@ -36,6 +36,8 @@ added after an inlined page (namely: the post date, the tags, and the actions):
|
||||||
+
|
+
|
||||||
+</div>
|
+</div>
|
||||||
|
|
||||||
|
[[tag patch]]
|
||||||
|
|
||||||
> Unfortunately, the inlinepage content passes through markdown, and markdown
|
> 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
|
> 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
|
> 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`,
|
>>> 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,
|
>>> 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)
|
>>> see this [thread](http://six.pairlist.net/pipermail/markdown-discuss/2006-August/000152.html)
|
||||||
>>> --[[Roktas]]
|
>>> --[[Roktas]]
|
|
@ -3,6 +3,8 @@ I have used it probably over hundred times but needs some work.
|
||||||
|
|
||||||
<http://www.reedmedia.net/~reed/tmp-sfhkcjkfrfh/rcs.pm>
|
<http://www.reedmedia.net/~reed/tmp-sfhkcjkfrfh/rcs.pm>
|
||||||
|
|
||||||
|
[[tag patch]]
|
||||||
|
|
||||||
> Clearly needs some cleanup and perhaps some of the missing stubs
|
> Clearly needs some cleanup and perhaps some of the missing stubs
|
||||||
> implemented, before it can be included into ikiwiki.
|
> implemented, before it can be included into ikiwiki.
|
||||||
>
|
>
|
|
@ -231,3 +231,5 @@ ManojSrivastava
|
||||||
+__END__
|
+__END__
|
||||||
+
|
+
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
[[tag patch]]
|
|
@ -25,3 +25,20 @@ off in WikiText mode.
|
||||||
[[tag soc]]
|
[[tag soc]]
|
||||||
|
|
||||||
[[tag wishlist]]
|
[[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/
|
||||||
|
|
|
@ -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
|
1. The templates also need to be translated. Some work has been done on an
|
||||||
infrastructure for maintaining translated templates, as documented in
|
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.
|
translate the templates by hand.
|
||||||
|
|
||||||
1. The [[basewiki]] itself needs to be translated. Whether to only translate
|
1. The [[basewiki]] itself needs to be translated. Whether to only translate
|
||||||
|
|
|
@ -13,7 +13,7 @@ things that need changing then I will probably need help/guidance.
|
||||||
--[[KarlMW]]
|
--[[KarlMW]]
|
||||||
|
|
||||||
> The main problem I see is the html escaping issue. This is not really
|
> 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
|
> technique provided by that patch could be used to let your plugin
|
||||||
> automatically handle the escaping. Unfortunatey, I have not yet gotten
|
> automatically handle the escaping. Unfortunatey, I have not yet gotten
|
||||||
> around to reviewing/applying the patch. --[[Joey]]
|
> 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 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]]
|
>> 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]]
|
||||||
|
|
|
@ -3,4 +3,4 @@ improvements people would like to see in ikiwiki. Good patches for any of
|
||||||
these will likely be accepted.
|
these will likely be accepted.
|
||||||
|
|
||||||
[[inline pages="todo/* and !todo/done and !link(todo/done) and
|
[[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]]
|
||||||
|
|
Loading…
Reference in New Issue