From 2fd1857a527303f529274a229596dd6eb64b0a48 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Sun, 18 Jan 2009 16:43:07 +0000 Subject: Document underlay plugin as included --- doc/plugins/contrib/underlay.mdwn | 58 --------------------------------------- doc/plugins/underlay.mdwn | 14 ++++++++++ 2 files changed, 14 insertions(+), 58 deletions(-) delete mode 100644 doc/plugins/contrib/underlay.mdwn create mode 100644 doc/plugins/underlay.mdwn (limited to 'doc') diff --git a/doc/plugins/contrib/underlay.mdwn b/doc/plugins/contrib/underlay.mdwn deleted file mode 100644 index 72893c992..000000000 --- a/doc/plugins/contrib/underlay.mdwn +++ /dev/null @@ -1,58 +0,0 @@ -[[!template id=plugin name=underlay author="[[Simon_McVittie|smcv]]"]] -[[!tag type/useful]] - -This plugin adds an `add_underlays` option to the `.setup` file. -Its value is a list of underlay directories whose content is added to the wiki. - -Multiple underlays are normally set up automatically by other plugins (for -instance, the images used by the [[plugins/smiley]] plugin), but they can also be -used as a way to pull in external files that you don't want in revision control, -like photos or software releases. - -Directories in `add_underlays` should usually be absolute. If relative, they're -interpreted as relative to the parent directory of the basewiki underlay, which -is probably not particularly useful in this context. - -Please feel free to add this plugin to ikiwiki if it seems like a good -thing to have. See the 'underlay' branch in my git repository. - - #!/usr/bin/perl - package IkiWiki::Plugin::underlay; - # Copyright © 2008 Simon McVittie - # Licensed under the GNU GPL, version 2, or any later version published by the - # Free Software Foundation - - use warnings; - use strict; - use IkiWiki 2.00; - - sub import { - hook(type => "getsetup", id => "underlay", call => \&getsetup); - hook(type => "checkconfig", id => "underlay", call => \&checkconfig); - } - - sub getsetup () { - return - plugin => { - safe => 0, - rebuild => undef, - }, - add_underlays => { - type => "string", - default => [], - description => "extra underlay directories to add", - advanced => 1, - safe => 0, - rebuild => 1, - }, - } - - sub checkconfig () { - return unless exists $config{add_underlays}; - - foreach my $dir (@{$config{add_underlays}}) { - add_underlay($dir); - } - } - - 1; diff --git a/doc/plugins/underlay.mdwn b/doc/plugins/underlay.mdwn new file mode 100644 index 000000000..09d096a6e --- /dev/null +++ b/doc/plugins/underlay.mdwn @@ -0,0 +1,14 @@ +[[!template id=plugin name=underlay author="[[Simon_McVittie|smcv]]"]] +[[!tag type/useful]] + +This plugin adds an `add_underlays` option to the `.setup` file. +Its value is a list of underlay directories whose content is added to the wiki. + +Multiple underlays are normally set up automatically by other plugins (for +instance, the images used by the [[plugins/smiley]] plugin), but they can also be +used as a way to pull in external files that you don't want in revision control, +like photos or software releases. + +Directories in `add_underlays` should usually be absolute. If relative, they're +interpreted as relative to the parent directory of the basewiki underlay, which +is probably not particularly useful in this context. -- cgit v1.2.3 From c89925048f6c0b149d09b76ff122da2205b6ec86 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Sun, 18 Jan 2009 16:27:43 +0000 Subject: Add meta field "updated", which can alter the Atom element Some aggregators, like Planet, sort by mtime rather than ctime. This means that posts with modified content come to the top (which seems odd to me, but is presumably what the aggregator's author or operator wants), but it also means that posts with insignificant edits (like adding tags) come to the top too. Atom defines to be the date of the last *significant* change, so it's fine that ikiwiki defaults to using the mtime, but it would be good to have a way for the author to say "that edit was insignificant, don't use that mtime". --- IkiWiki/Plugin/inline.pm | 12 +++++++++--- IkiWiki/Plugin/meta.pm | 7 +++++++ doc/ikiwiki/directive/meta.mdwn | 9 +++++++++ 3 files changed, 25 insertions(+), 3 deletions(-) (limited to 'doc') diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm index d8b5f8548..2205ebffc 100644 --- a/IkiWiki/Plugin/inline.pm +++ b/IkiWiki/Plugin/inline.pm @@ -519,9 +519,15 @@ sub genfeed ($$$$$@) { mdate_3339 => date_3339($pagemtime{$p}), ); - if (exists $pagestate{$p} && - exists $pagestate{$p}{meta}{guid}) { - $itemtemplate->param(guid => $pagestate{$p}{meta}{guid}); + if (exists $pagestate{$p}) { + if (exists $pagestate{$p}{meta}{guid}) { + $itemtemplate->param(guid => $pagestate{$p}{meta}{guid}); + } + + if (exists $pagestate{$p}{meta}{updated}) { + $itemtemplate->param(mdate_822 => date_822($pagestate{$p}{meta}{updated})); + $itemtemplate->param(mdate_3339 => date_3339($pagestate{$p}{meta}{updated})); + } } if ($itemtemplate->query(name => "enclosure")) { diff --git a/IkiWiki/Plugin/meta.pm b/IkiWiki/Plugin/meta.pm index 15bb29b3f..4a22fed30 100644 --- a/IkiWiki/Plugin/meta.pm +++ b/IkiWiki/Plugin/meta.pm @@ -128,6 +128,13 @@ sub preprocess (@) { $IkiWiki::pagectime{$page}=$time if defined $time; } } + elsif ($key eq 'updated') { + eval q{use Date::Parse}; + if (! $@) { + my $time = str2time($value); + $pagestate{$page}{meta}{updated}=$time if defined $time; + } + } if (! defined wantarray) { # avoid collecting duplicate data during scan pass diff --git a/doc/ikiwiki/directive/meta.mdwn b/doc/ikiwiki/directive/meta.mdwn index 74db31943..f29a118bf 100644 --- a/doc/ikiwiki/directive/meta.mdwn +++ b/doc/ikiwiki/directive/meta.mdwn @@ -139,6 +139,15 @@ Supported fields: pages unchanged and avoid_flooding_aggregators (see [[!iki tips/howto_avoid_flooding_aggregators]]). +* updated + + Specifies a fake modification time for a page, to be output into RSS and + Atom feeds. This is useful to avoid flooding aggregators that sort by + modification time, like Planet: for instance, when editing an old blog post + to add tags, you could set `updated` to be one second later than the original + value. The date/time can be given in any format that + [[!cpan TimeDate]] can understand, just like the `date` field. + If the field is not one of the above predefined fields, the metadata will be written to the generated html page as a <meta> header. However, this won't be allowed if the [[!iki plugins/htmlscrubber desc=htmlscrubber]] plugin is enabled, -- cgit v1.2.3 From be43f94b9fe33d725445864a412a92b448b42f59 Mon Sep 17 00:00:00 2001 From: intrigeri Date: Mon, 26 Jan 2009 23:47:02 +0100 Subject: contrib/po: update after implementing suggested changes Signed-off-by: intrigeri --- doc/plugins/contrib/po.mdwn | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'doc') diff --git a/doc/plugins/contrib/po.mdwn b/doc/plugins/contrib/po.mdwn index 8b8bccb5a..70f5aa5a2 100644 --- a/doc/plugins/contrib/po.mdwn +++ b/doc/plugins/contrib/po.mdwn @@ -202,6 +202,8 @@ finish it at some point in the first quarter of 2009. --[[intrigeri]] > I've looked it over and updated my branch with some (untested) > changes. > +>> I've merged your changes into my branch. Only one was buggy. +> > Sorry, I'd forgotten about your cansave hook.. sorry for the duplicate > work there. > @@ -212,7 +214,7 @@ finish it at some point in the first quarter of 2009. --[[intrigeri]] > 3.x API, which I've promised not to do, so needs to be avoided > somehow. (Sorry, I guess I dropped the ball on not getting this > API change in before cutting 3.0..) -> +>> >> I'm discussing the solutions we now have on >> [[todo/need_global_renamepage_hook]], as the solution I implemented >> was initially agreed on there. @@ -235,7 +237,7 @@ finish it at some point in the first quarter of 2009. --[[intrigeri]] > * `skeleton.pm.example`'s canrename needs fixing to use either > the current or my suggested parameters. >> ->> I'll do both. +>> Done. >> > * I don't like the exporting of `%backlinks` and `$backlinks_calculated` > (the latter is exported but not used). @@ -276,8 +278,7 @@ finish it at some point in the first quarter of 2009. --[[intrigeri]] > that can be used safely, and that version documented in > `plugins/po.mdwn`. >> ->> Sure. I was waiting for the necessary version to be actually ->> released, but we can guess it will be 0.35. +>> Done. >> >> --[[intrigeri]] > -- cgit v1.2.3 From 67ba074ba8809a2f849ee51770e3d4695311647c Mon Sep 17 00:00:00 2001 From: intrigeri Date: Mon, 26 Jan 2009 23:47:34 +0100 Subject: need_global_renamepage_hook: s/suggest/will Signed-off-by: intrigeri --- doc/todo/need_global_renamepage_hook.mdwn | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'doc') diff --git a/doc/todo/need_global_renamepage_hook.mdwn b/doc/todo/need_global_renamepage_hook.mdwn index aa543a64c..c5b2b1096 100644 --- a/doc/todo/need_global_renamepage_hook.mdwn +++ b/doc/todo/need_global_renamepage_hook.mdwn @@ -58,6 +58,5 @@ would solve my problem. Hmmm? --[[intrigeri]] >>> As Joey highlights it on [[plugins/contrib/po]], it's too late to >>> merge such a change, as the 3.x plugin API is released and should ->>> not be broken. I'm thus proposing to keep the existing ->>> `renamepage` as it is, and call `rename` the global hook I need. ->>> --[[intrigeri]] +>>> not be broken. I will thus keep the existing `renamepage` as it +>>> is, and call `rename` the global hook I need. --[[intrigeri]] -- cgit v1.2.3 From 183f03aa968882c9d0e8e70b33e8a482aa16726a Mon Sep 17 00:00:00 2001 From: intrigeri Date: Tue, 27 Jan 2009 00:02:15 +0100 Subject: the rename hooks names waltz seems over Another set of hooks would not endure such heavy renaming, but the rename* hooks actually do ;) Signed-off-by: intrigeri --- doc/plugins/contrib/po.mdwn | 4 +--- doc/todo/need_global_renamepage_hook.mdwn | 2 ++ 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'doc') diff --git a/doc/plugins/contrib/po.mdwn b/doc/plugins/contrib/po.mdwn index 70f5aa5a2..1751a6f7f 100644 --- a/doc/plugins/contrib/po.mdwn +++ b/doc/plugins/contrib/po.mdwn @@ -215,9 +215,7 @@ finish it at some point in the first quarter of 2009. --[[intrigeri]] > somehow. (Sorry, I guess I dropped the ball on not getting this > API change in before cutting 3.0..) >> ->> I'm discussing the solutions we now have on ->> [[todo/need_global_renamepage_hook]], as the solution I implemented ->> was initially agreed on there. +>> Fixed, see [[todo/need_global_renamepage_hook]]. >> > * I don't understand the parentlinks code change and need to figure it > out. Can you explain what is going on there? diff --git a/doc/todo/need_global_renamepage_hook.mdwn b/doc/todo/need_global_renamepage_hook.mdwn index c5b2b1096..7af2bdc56 100644 --- a/doc/todo/need_global_renamepage_hook.mdwn +++ b/doc/todo/need_global_renamepage_hook.mdwn @@ -60,3 +60,5 @@ would solve my problem. Hmmm? --[[intrigeri]] >>> merge such a change, as the 3.x plugin API is released and should >>> not be broken. I will thus keep the existing `renamepage` as it >>> is, and call `rename` the global hook I need. --[[intrigeri]] + +>>>> Done in my `po` branch. --[[intrigeri]] -- cgit v1.2.3 From eb9c05e18cb7880a402c76dc86b652ca381c8d7a Mon Sep 17 00:00:00 2001 From: intrigeri Date: Tue, 27 Jan 2009 00:27:41 +0100 Subject: contrib/po: backlinks=>dependencies is now an option Signed-off-by: intrigeri --- doc/plugins/contrib/po.mdwn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'doc') diff --git a/doc/plugins/contrib/po.mdwn b/doc/plugins/contrib/po.mdwn index 1751a6f7f..f7ed35a82 100644 --- a/doc/plugins/contrib/po.mdwn +++ b/doc/plugins/contrib/po.mdwn @@ -269,8 +269,8 @@ finish it at some point in the first quarter of 2009. --[[intrigeri]] >> enabled the option to display translation status in links, this >> maintains the translation status up-to-date in backlinks. Same when >> using meta title to make the pages titles translatable. It does ->> help having a nice and consistent translated wiki, but as it hurts ->> performance, I'm proposing to turn it into an option. +>> help having a nice and consistent translated wiki, but as it can +>> also involve problems, I just turned it into an option. >> > * The po4a Suggests should be versioned to the first version > that can be used safely, and that version documented in -- cgit v1.2.3 From 16ff246d4112fd208189a05f7b64a6d0dbe53132 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 26 Jan 2009 19:41:35 -0500 Subject: rename hook issues --- doc/todo/need_global_renamepage_hook.mdwn | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'doc') diff --git a/doc/todo/need_global_renamepage_hook.mdwn b/doc/todo/need_global_renamepage_hook.mdwn index 7af2bdc56..62e91eee4 100644 --- a/doc/todo/need_global_renamepage_hook.mdwn +++ b/doc/todo/need_global_renamepage_hook.mdwn @@ -62,3 +62,21 @@ would solve my problem. Hmmm? --[[intrigeri]] >>> is, and call `rename` the global hook I need. --[[intrigeri]] >>>> Done in my `po` branch. --[[intrigeri]] + +I think I see a problem in the rename hook. The hook is called +before the plugin adds any subpages to the set of pages to rename. +So, if the user choses to rename subpages, po will not notice +they are moving, and will not move their po files. + +Perhaps the hooks should be moved to come after subpages are added. +This would, though, mean that if the hook somehow decides to add +entirely other pages to the list, their subpages would not be +automatically added. + +I also have some qualms about the design of the hook. In particular, +passing the mutable array reference probably makes it impossible +to use from external plugins. Instead it could return any additional +rename hashes it wants to add. Or, if the ability to modify existing +hashes is desired, it could return the full set of hashes. + +--[[Joey]] -- cgit v1.2.3 From aba655c6e0d5c4b0eaa3d113129d6de58f4541c2 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 26 Jan 2009 19:46:24 -0500 Subject: comments --- doc/plugins/contrib/po.mdwn | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/plugins/contrib/po.mdwn b/doc/plugins/contrib/po.mdwn index f7ed35a82..f2d46c391 100644 --- a/doc/plugins/contrib/po.mdwn +++ b/doc/plugins/contrib/po.mdwn @@ -245,7 +245,9 @@ finish it at some point in the first quarter of 2009. --[[intrigeri]] >> the subtleties of `our` use, and perldoc does not help me a lot. >> IIRC, I actually did not use `our` to "export" these variables, but >> rather to have them shared between `Render.pm` uses. ->> +>> +>>> My wording was unclear, I meant exposing. --[[Joey]] +>>> > * What is this `IkiWiki::nicepagetitle` and why are you > injecting it into that namespace when only your module uses it? > Actually, I can't even find a caller of it in your module. @@ -253,6 +255,9 @@ finish it at some point in the first quarter of 2009. --[[intrigeri]] >> I guess you should have a look to my `meta` branch and to >> [[bugs/pagetitle_function_does_not_respect_meta_titles]] in order >> to understand this :) +>> +>>> It would probably be good if I could merge this branch without +>>> having to worry about also immediatly merging that one. --[[Joey]] >> > * I'm very fearful of the `add_depends` in `postscan`. > Does this make every page depend on every page that links -- cgit v1.2.3 From 1f3f33fa67ade3bbc219f5bdc4f8e411162f3f28 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 26 Jan 2009 20:02:50 -0500 Subject: followup --- doc/forum/chinese_character_problem.mdwn | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'doc') diff --git a/doc/forum/chinese_character_problem.mdwn b/doc/forum/chinese_character_problem.mdwn index e68c2c726..c203ec4ec 100644 --- a/doc/forum/chinese_character_problem.mdwn +++ b/doc/forum/chinese_character_problem.mdwn @@ -15,3 +15,7 @@ Thanks. I have installed locales-all and locale -a shows that zh_CN.UTF-8 is installed(there is no /etc/local.gen file though). then I enabled this line "locale => 'zh_CN.UTF-8'" in my wiki setup and -setup again. but that generated lots error messages "Missing constant domain at (eval 30) line 3" sorry being a n00b on this thing what else can I do? + +> See [[bugs/Missing_constant_domain_at_IkiWiki.pm_line_842]]. +> Looks like you need to upgrade to a newer version of +> [[cpan Locale::gettext]] --[[Joey]] -- cgit v1.2.3 From 9b4040992d69829b914d141551422722b84fca0e Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 26 Jan 2009 20:11:33 -0500 Subject: meta: New "updated" metadata specifies a fake modification time for a page, to be output into RSS and Atom feeds. (smcv) --- debian/changelog | 2 ++ doc/todo/overriding_displayed_modification_time.mdwn | 12 +++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/debian/changelog b/debian/changelog index 6c1710fe1..7f72a672a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -10,6 +10,8 @@ ikiwiki (3.03) UNRELEASED; urgency=low (in .ikiwiki/comments_pending) for moderator review. * comments: Add a moderation web interface. * git: Fix malformed utf8 recieved from git. + * meta: New "updated" metadata specifies a fake modification time for a + page, to be output into RSS and Atom feeds. (smcv) -- Joey Hess Sun, 18 Jan 2009 14:50:57 -0500 diff --git a/doc/todo/overriding_displayed_modification_time.mdwn b/doc/todo/overriding_displayed_modification_time.mdwn index b015b3730..160d31519 100644 --- a/doc/todo/overriding_displayed_modification_time.mdwn +++ b/doc/todo/overriding_displayed_modification_time.mdwn @@ -1,12 +1,19 @@ Some aggregators, like Planet, sort by mtime rather than ctime. This means that posts with modified content come to the top (which seems odd to me, but is presumably what the aggregator's author or operator -wants), but it also means that posts with insignificant edits (like +wants), + +> Hah! That's so charitable I hope you can deduct it from your taxes. ;-) +> --[[Joey]] + +but it also means that posts with insignificant edits (like adding tags) come to the top too. Atom defines `` to be the date of the last *significant* change, so it's fine that ikiwiki defaults to using the mtime, but it would be good to have a way for the author to say "that edit was insignificant, don't use that mtime". +> Yes, this is a real limitiation of ikiwiki's atom support. --[[Joey]] + See smcv's 'updated' branch for a basic implementation, which only affects the Atom `` field or the RSS equivalent. @@ -15,3 +22,6 @@ each should use it or not, please): * sorting by mtime in the inline directive * displaying "last edited" on ordinary pages + +> Tending toward no for both, but willing to be convinced otherwise.. +> [[merged|done]] --[[Joey]] -- cgit v1.2.3 From 83163b16ab18ba0352edc0022ed6d431da49461a Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 26 Jan 2009 20:17:02 -0500 Subject: fix directive --- doc/forum/chinese_character_problem.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/forum/chinese_character_problem.mdwn b/doc/forum/chinese_character_problem.mdwn index c203ec4ec..aea55703f 100644 --- a/doc/forum/chinese_character_problem.mdwn +++ b/doc/forum/chinese_character_problem.mdwn @@ -18,4 +18,4 @@ sorry being a n00b on this thing what else can I do? > See [[bugs/Missing_constant_domain_at_IkiWiki.pm_line_842]]. > Looks like you need to upgrade to a newer version of -> [[cpan Locale::gettext]] --[[Joey]] +> [[!cpan Locale::gettext]] --[[Joey]] -- cgit v1.2.3 From c8ce3ed4404d37d7c2361f30466c7961f4e1418b Mon Sep 17 00:00:00 2001 From: intrigeri Date: Tue, 27 Jan 2009 17:22:38 +0100 Subject: rename hook: fixed half, added proposal for the other half Signed-off-by: intrigeri --- doc/todo/need_global_renamepage_hook.mdwn | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'doc') diff --git a/doc/todo/need_global_renamepage_hook.mdwn b/doc/todo/need_global_renamepage_hook.mdwn index 62e91eee4..906bf1220 100644 --- a/doc/todo/need_global_renamepage_hook.mdwn +++ b/doc/todo/need_global_renamepage_hook.mdwn @@ -80,3 +80,18 @@ rename hashes it wants to add. Or, if the ability to modify existing hashes is desired, it could return the full set of hashes. --[[Joey]] + +> I fixed the last part, i.e. a rename hook function now returns the +> full set of hashes. As I also converted it to take named parameters, +> such a function still is passed a reference to the original array, +> though, because one can't build a hash containing an array of hashes +> as a value, without passing this array as a reference. +> +> I'm not entirely sure about your first concern. Calling the hook +> before or after the subpages addition both have their own problems. +> +> What about running the hook before *and* after the subpages +> addition, with an additional `when` named parameter, so that +> a given hook function can choose to act only before or after, or both? +> +> --[[intrigeri]] -- cgit v1.2.3 From af5b9b90c4f3d694ac0d8394eeee4fa45f23f843 Mon Sep 17 00:00:00 2001 From: intrigeri Date: Tue, 27 Jan 2009 18:16:56 +0100 Subject: contrib/po: misc answers and questions Step by step... :) Signed-off-by: intrigeri --- doc/plugins/contrib/po.mdwn | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/plugins/contrib/po.mdwn b/doc/plugins/contrib/po.mdwn index f2d46c391..7eff8fa1c 100644 --- a/doc/plugins/contrib/po.mdwn +++ b/doc/plugins/contrib/po.mdwn @@ -248,6 +248,18 @@ finish it at some point in the first quarter of 2009. --[[intrigeri]] >> >>> My wording was unclear, I meant exposing. --[[Joey]] >>> +>>>> I guess I still don't know Perl's `our` enough to understand clearly. +>>>> No matter whether these variables are declared with `my` or `our`, +>>>> any plugin can `use IkiWiki::Render` and then access +>>>> `$IkiWiki::backlinks`, as already does e.g. the pagestat plugin. +>>>> So I guess your problem is not with letting plugins use these +>>>> variables, but with them being visible for every piece of +>>>> (possibly external) code called from `Render.pm`. Am I right? +>>>> If I understand clearly, using a brace block to lexically enclose +>>>> these two `our` declarations, alongside with the `calculate_backlinks` +>>>> and `backlinks` subs definitions, would be a proper solution, wouldn't +>>>> it? --[[intrigeri]] +>>>> > * What is this `IkiWiki::nicepagetitle` and why are you > injecting it into that namespace when only your module uses it? > Actually, I can't even find a caller of it in your module. @@ -258,7 +270,16 @@ finish it at some point in the first quarter of 2009. --[[intrigeri]] >> >>> It would probably be good if I could merge this branch without >>> having to worry about also immediatly merging that one. --[[Joey]] ->> +>>> +>>>> I removed all dependencies on my `meta` branch from the `po` one. +>>>> This implied removing the `po_translation_status_in_links` and +>>>> `po_strictly_refresh_backlinks` features, and every link text is now +>>>> displayed in the master language. I believe the removed features really +>>>> enhance user experience of a translatable wiki, that's why I was +>>>> initially supposing the `meta` branch would be merged first. +>>>> IMHO, we'll need to come back to this quite soon after `po` is merged. +>>>> --[[intrigeri]] +>>> > * I'm very fearful of the `add_depends` in `postscan`. > Does this make every page depend on every page that links > to it? Won't this absurdly bloat the dependency pagespecs @@ -277,6 +298,9 @@ finish it at some point in the first quarter of 2009. --[[intrigeri]] >> help having a nice and consistent translated wiki, but as it can >> also involve problems, I just turned it into an option. >> +>>> This has been completely removed for now due to the removal of +>>> the dependency on my `meta` branch. --[[intrigeri]] +>> > * The po4a Suggests should be versioned to the first version > that can be used safely, and that version documented in > `plugins/po.mdwn`. -- cgit v1.2.3 From 94c932ee3d13924e3d916e859c2c9efa8e07ae31 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 27 Jan 2009 13:14:53 -0500 Subject: thought --- debian/changelog | 6 ++---- doc/todo/need_global_renamepage_hook.mdwn | 8 ++++++++ 2 files changed, 10 insertions(+), 4 deletions(-) (limited to 'doc') diff --git a/debian/changelog b/debian/changelog index 6a64a0c49..785681ff4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,11 +1,9 @@ ikiwiki (3.03) UNRELEASED; urgency=low - * Avoid feeding decoded unicode to Term::ReadLine. - Closes: 512169 + * Avoid feeding decoded unicode to Term::ReadLine. Closes: 512169 * blogspam: Log spam info on failure in debug mode. * Remove nonstandard css. Closes: #512378 - * blogspam: Fix use of blogspam_options and blogspam_server - config settings. + * blogspam: Fix use of blogspam_options and blogspam_server config settings. * comments: If comment content checks fail, store the comment (in .ikiwiki/comments_pending) for moderator review. * comments: Add a moderation web interface, which admins can diff --git a/doc/todo/need_global_renamepage_hook.mdwn b/doc/todo/need_global_renamepage_hook.mdwn index 906bf1220..9c987aac4 100644 --- a/doc/todo/need_global_renamepage_hook.mdwn +++ b/doc/todo/need_global_renamepage_hook.mdwn @@ -87,6 +87,8 @@ hashes is desired, it could return the full set of hashes. > though, because one can't build a hash containing an array of hashes > as a value, without passing this array as a reference. > +>> Sure. +> > I'm not entirely sure about your first concern. Calling the hook > before or after the subpages addition both have their own problems. > @@ -95,3 +97,9 @@ hashes is desired, it could return the full set of hashes. > a given hook function can choose to act only before or after, or both? > > --[[intrigeri]] +>> +>> Have you thought about making the hook be run once *per* file that is +>> selected to be renamed? This would even handle the case where two +>> plugins use the hook; plugin A would see when plugin B adds a new file +>> to be renamed. And the subpage renaming stuff could probably be moved +>> into the rename hook too. --[[Joey]] -- cgit v1.2.3 From be63bed593877db0f9a511182ea8329993d3d019 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 27 Jan 2009 13:20:33 -0500 Subject: response --- doc/plugins/contrib/po.mdwn | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'doc') diff --git a/doc/plugins/contrib/po.mdwn b/doc/plugins/contrib/po.mdwn index 7eff8fa1c..6cd097e94 100644 --- a/doc/plugins/contrib/po.mdwn +++ b/doc/plugins/contrib/po.mdwn @@ -259,6 +259,10 @@ finish it at some point in the first quarter of 2009. --[[intrigeri]] >>>> these two `our` declarations, alongside with the `calculate_backlinks` >>>> and `backlinks` subs definitions, would be a proper solution, wouldn't >>>> it? --[[intrigeri]] +>>>> +>>>>> No, %backlinks and the backlinks() function are not the same thing. +>>>>> The variable is lexically scoped; only accessible from inside +>>>>> `Render.pm` --[[Joey]] >>>> > * What is this `IkiWiki::nicepagetitle` and why are you > injecting it into that namespace when only your module uses it? @@ -279,6 +283,10 @@ finish it at some point in the first quarter of 2009. --[[intrigeri]] >>>> initially supposing the `meta` branch would be merged first. >>>> IMHO, we'll need to come back to this quite soon after `po` is merged. >>>> --[[intrigeri]] +>>>> +>>>> Maybe you should keep those features in a meta-po branch? +>>>> I did a cursory review of your meta last night, have some issues with it, +>>>> but this page isn't the place for a detailed review. --[[Joey]] >>> > * I'm very fearful of the `add_depends` in `postscan`. > Does this make every page depend on every page that links -- cgit v1.2.3 From 4db549721da28fb7aca3863af72675324fb5fb43 Mon Sep 17 00:00:00 2001 From: intrigeri Date: Tue, 27 Jan 2009 19:45:12 +0100 Subject: contrib/po: announce my meta-po integration branch Signed-off-by: intrigeri --- doc/plugins/contrib/po.mdwn | 2 ++ 1 file changed, 2 insertions(+) (limited to 'doc') diff --git a/doc/plugins/contrib/po.mdwn b/doc/plugins/contrib/po.mdwn index 6cd097e94..8b19afae6 100644 --- a/doc/plugins/contrib/po.mdwn +++ b/doc/plugins/contrib/po.mdwn @@ -287,6 +287,8 @@ finish it at some point in the first quarter of 2009. --[[intrigeri]] >>>> Maybe you should keep those features in a meta-po branch? >>>> I did a cursory review of your meta last night, have some issues with it, >>>> but this page isn't the place for a detailed review. --[[Joey]] +>>>> +>>>>> Done. --[[intrigeri]] >>> > * I'm very fearful of the `add_depends` in `postscan`. > Does this make every page depend on every page that links -- cgit v1.2.3 From deea2f42aabf7e2e2bf8f2c9ec552caebd52f03d Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 28 Jan 2009 16:51:19 -0500 Subject: close this, we have comments now --- doc/todo/discussion_page_as_blog.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/todo/discussion_page_as_blog.mdwn b/doc/todo/discussion_page_as_blog.mdwn index c7a3d6ac9..990b7ddb3 100644 --- a/doc/todo/discussion_page_as_blog.mdwn +++ b/doc/todo/discussion_page_as_blog.mdwn @@ -30,4 +30,4 @@ I don't think that the nesting is very clear, I found it confusing.. Would each page be its own individual blog? Or its own blog post? To me it seems like an entire wiki can be viewed as a blog, with threaded or unthreaded comments underneath. -[[!tag soc]] +[[!tag soc done]] -- cgit v1.2.3 From bbad5127a0f766d888f2339a2934e9cf10023796 Mon Sep 17 00:00:00 2001 From: "http://weakish.int.eu.org/" Date: Thu, 29 Jan 2009 09:39:56 -0500 Subject: use mercurial instead of hg when set rcs option --- doc/setup/byhand.mdwn | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'doc') diff --git a/doc/setup/byhand.mdwn b/doc/setup/byhand.mdwn index 9a2e1f3e9..0184d3d2a 100644 --- a/doc/setup/byhand.mdwn +++ b/doc/setup/byhand.mdwn @@ -171,11 +171,12 @@ about using the git repositories. Once your wiki is checked in to the revision control system, you should configure ikiwiki to use revision control. Edit your ikiwiki.setup, set -`rcs` to the the revision control system you chose to use. Be sure to set -`svnrepo` to the directory for your repository, if using subversion. -Uncomment the configuration for the wrapper for your revision control -system, and configure the wrapper path appropriately (for Git, it should be -the path to `hooks/post-update` inside the bare git repository). +`rcs` to the the revision control system you chose to use. Be careful, +you may need to use the 'fullname'. For example, 'hg' doesn't work, you +should use mercurial. Be sure to set `svnrepo` to the directory for your +repository, if using subversion. Uncomment the configuration for the wrapper +for your revision control system, and configure the wrapper path appropriately +(for Git, it should be the path to `hooks/post-update` inside the bare git repository). Once it's all set up, run `ikiwiki --setup ikiwiki.setup` once more. Now you should be able to edit files in $SRCDIR, and use your revision -- cgit v1.2.3 From a46cf100f01b5db96980737b1c2b25deff68e5a0 Mon Sep 17 00:00:00 2001 From: "http://weakish.int.eu.org/" Date: Thu, 29 Jan 2009 10:28:32 -0500 Subject: removed --- doc/plugins/textile/discussion.mdwn | 1 - 1 file changed, 1 deletion(-) delete mode 100644 doc/plugins/textile/discussion.mdwn (limited to 'doc') diff --git a/doc/plugins/textile/discussion.mdwn b/doc/plugins/textile/discussion.mdwn deleted file mode 100644 index 945c9b46d..000000000 --- a/doc/plugins/textile/discussion.mdwn +++ /dev/null @@ -1 +0,0 @@ -. \ No newline at end of file -- cgit v1.2.3 From c244e13d6b3afcf0ac6bc54d6cdce556e70e1f83 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 29 Jan 2009 14:47:11 -0500 Subject: add news item for ikiwiki 3.03 --- doc/news/version_3.02.mdwn | 24 ------------------------ doc/news/version_3.03.mdwn | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 24 deletions(-) delete mode 100644 doc/news/version_3.02.mdwn create mode 100644 doc/news/version_3.03.mdwn (limited to 'doc') diff --git a/doc/news/version_3.02.mdwn b/doc/news/version_3.02.mdwn deleted file mode 100644 index f4e17a375..000000000 --- a/doc/news/version_3.02.mdwn +++ /dev/null @@ -1,24 +0,0 @@ -ikiwiki 3.02 released with [[!toggle text="these changes"]] -[[!toggleable text=""" - * blogspam: New plugin, adding spam filtering for page editing / comment - posting using the BlogSpam.net API. - * Add auto-blog.setup, which will set up an ikiwiki instance tuned for use - in blogging. - * checkcontent: New hook, can be used to implement arbitrary content - filters, including spam filters. - * table: Fix misparsed links in external files. - * table: Find links in external files in scan pass. - * rename: Show full names of affected pages. - * comments: Fix cache avoidance hack. - * repolist: New plugin to support the rel=vcs-* microformat. - * goodstuff: Include repolist by default. (But it does nothing until - configured with the repository locations.) - * comments: Add support for removing comments via web interface. (smcv) - * Consistently allow use of relative paths in all PageSpecs - that take a page name parameter. Previously, match\_created\_before(), - match\_created\_after(), match\_sourcepage(), and match\_destpage() - did not support that, and the docs were not clear. - * pinger: Get whole url, don't just head, avoids problems on - the nostromo web server. - * Recommend libterm-readline-gnu-perl since that makes auto.setup - behave better."""]] \ No newline at end of file diff --git a/doc/news/version_3.03.mdwn b/doc/news/version_3.03.mdwn new file mode 100644 index 000000000..b999344e1 --- /dev/null +++ b/doc/news/version_3.03.mdwn @@ -0,0 +1,15 @@ +ikiwiki 3.03 released with [[!toggle text="these changes"]] +[[!toggleable text=""" + * Avoid feeding decoded unicode to Term::ReadLine. Closes: [512169](http://bugs.debian.org/512169) + * blogspam: Log spam info on failure in debug mode. + * Remove nonstandard css. Closes: #[512378](http://bugs.debian.org/512378) + * blogspam: Fix use of blogspam\_options and blogspam\_server config settings. + * comments: If comment content checks fail, store the comment + (in .ikiwiki/comments\_pending) for moderator review. + * comments: Add a moderation web interface, which admins can + access via their Preferences page. + * git: Fix malformed utf8 received from git. + * meta: New "updated" metadata specifies a fake modification time for a + page, to be output into RSS and Atom feeds. (smcv) + * underlay: New plugin, allows pulling in additional files not + in version control. (smcv)"""]] \ No newline at end of file -- cgit v1.2.3 From 0d58f263214183b4667987da48077d5e8e8a41c1 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 30 Jan 2009 14:07:03 -0500 Subject: merge dups --- ...itle_function_does_not_respect_meta_titles.mdwn | 123 ++++++++++++++++++++- doc/todo/using_meta_titles_for_parentlinks.html | 122 -------------------- 2 files changed, 121 insertions(+), 124 deletions(-) delete mode 100644 doc/todo/using_meta_titles_for_parentlinks.html (limited to 'doc') diff --git a/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn b/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn index cccd53d05..11735f770 100644 --- a/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn +++ b/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn @@ -2,8 +2,127 @@ The `IkiWiki::pagetitle` function does not respect title changes via `meta.title --[[madduck]] -> Agreed. [[todo/using_meta_titles_for_parentlinks]] contains a beginning of -> solution. A few quick notes about it: +---- + +It is possible to set a Page-Title in the meta-plugin, but that one isn't +reused in parentlinks. This [[patch]] may fix it. + +
    +
  • I give pagetitle the full path to a page. +
  • I redefine the 'pagetitle'-sub to deal with it. +
  • to maintain compatibility for IkiWikis without the meta-plugin, i added a 'basename' to the Original-pagetitle. +
+ +
+diff -c /usr/share/perl5/IkiWiki/Render.pm.distrib /usr/share/perl5/IkiWiki/Render.pm
+*** /usr/share/perl5/IkiWiki/Render.pm.distrib  Wed Aug  6 07:34:55 2008
+--- /usr/share/perl5/IkiWiki/Render.pm  Tue Aug 26 23:29:32 2008
+***************
+*** 102,108 ****
+        $template->param(
+                title => $page eq 'index' 
+                        ? $config{wikiname} 
+!                       : pagetitle(basename($page)),
+                wikiname => $config{wikiname},
+                content => $content,
+                backlinks => $backlinks,
+--- 102,108 ----
+        $template->param(
+                title => $page eq 'index' 
+                        ? $config{wikiname} 
+!                       : pagetitle($page),
+                wikiname => $config{wikiname},
+                content => $content,
+                backlinks => $backlinks,
+
+diff -c /usr/share/perl5/IkiWiki/Plugin/parentlinks.pm.distrib /usr/share/perl5/IkiWiki/Plugin/parentlinks.pm
+*** /usr/share/perl5/IkiWiki/Plugin/parentlinks.pm.distrib      Wed Aug  6 07:34:55 2008
+--- /usr/share/perl5/IkiWiki/Plugin/parentlinks.pm      Tue Aug 26 23:19:43 2008
+***************
+*** 44,50 ****
+                        "height_$height" => 1,
+                };
+                $path.="/".$dir;
+!               $title=IkiWiki::pagetitle($dir);
+                $i++;
+        }
+        return @ret;
+--- 44,50 ----
+                        "height_$height" => 1,
+                };
+                $path.="/".$dir;
+!               $title=IkiWiki::pagetitle($path);
+                $i++;
+        }
+        return @ret;
+
+diff -c /usr/share/perl5/IkiWiki.pm.distrib /usr/share/perl5/IkiWiki.pm
+*** /usr/share/perl5/IkiWiki.pm.distrib Wed Aug  6 07:48:34 2008
+--- /usr/share/perl5/IkiWiki.pm Tue Aug 26 23:47:30 2008
+***************
+*** 792,797 ****
+--- 792,799 ----
+        my $page=shift;
+        my $unescaped=shift;
+  
++       $page=basename($page);
++ 
+        if ($unescaped) {
+                $page=~s/(__(\d+)__|_)/$1 eq '_' ? ' ' : chr($2)/eg;
+    	}
+
+diff -c /usr/share/perl5/IkiWiki/Plugin/meta.pm.distrib /usr/share/perl5/IkiWiki/Plugin/meta.pm
+*** /usr/share/perl5/IkiWiki/Plugin/meta.pm.distrib     Wed Aug  6 07:34:55 2008
+--- /usr/share/perl5/IkiWiki/Plugin/meta.pm     Tue Aug 26 23:30:58 2008
+***************
+*** 3,8 ****
+--- 3,9 ----
+  package IkiWiki::Plugin::meta;
+  
+  use warnings;
++ no warnings 'redefine';
+  use strict;
+  use IkiWiki 2.00;
+  
+***************
+*** 289,294 ****
+--- 290,319 ----
+        }
+  }
+  
++ sub IkiWiki::pagetitle ($;$) {
++       my $page=shift;
++       my $unescaped=shift;
++ 
++       if ($page =~ m#/#) {
++               $page =~ s#^/##;
++               $page =~ s#/index$##;
++               if ($pagestate{"$page/index"}{meta}{title}) {
++                       $page = $pagestate{"$page/index"}{meta}{title};
++               } else {
++                       $page = IkiWiki::basename($page);
++               }
++       }
++ 
++       if ($unescaped) {
++               $page=~s/(__(\d+)__|_)/$1 eq '_' ? ' ' : chr($2)/eg;
++       }
++       else {
++               $page=~s/(__(\d+)__|_)/$1 eq '_' ? ' ' : "&#$2;"/eg;
++       }
++ 
++       return $page;
++ }
++ 
+  package IkiWiki::PageSpec;
+  
+  sub match_title ($$;@) {
+
+
+ +-- + +> A few quick notes about it: > - Using inline would avoid the redefinition + code duplication. > - A few plugins would need to be upgraded. diff --git a/doc/todo/using_meta_titles_for_parentlinks.html b/doc/todo/using_meta_titles_for_parentlinks.html deleted file mode 100644 index 6da40a415..000000000 --- a/doc/todo/using_meta_titles_for_parentlinks.html +++ /dev/null @@ -1,122 +0,0 @@ -It is possible to set a Page-Title in the meta-plugin, but that one isn't -reused in parentlinks. This [[patch]] may fix it. - -
    -
  • I give pagetitle the full path to a page. -
  • I redefine the 'pagetitle'-sub to deal with it. -
  • to maintain compatibility for IkiWikis without the meta-plugin, i added a 'basename' to the Original-pagetitle. -
- -
-diff -c /usr/share/perl5/IkiWiki/Render.pm.distrib /usr/share/perl5/IkiWiki/Render.pm
-*** /usr/share/perl5/IkiWiki/Render.pm.distrib  Wed Aug  6 07:34:55 2008
---- /usr/share/perl5/IkiWiki/Render.pm  Tue Aug 26 23:29:32 2008
-***************
-*** 102,108 ****
-        $template->param(
-                title => $page eq 'index' 
-                        ? $config{wikiname} 
-!                       : pagetitle(basename($page)),
-                wikiname => $config{wikiname},
-                content => $content,
-                backlinks => $backlinks,
---- 102,108 ----
-        $template->param(
-                title => $page eq 'index' 
-                        ? $config{wikiname} 
-!                       : pagetitle($page),
-                wikiname => $config{wikiname},
-                content => $content,
-                backlinks => $backlinks,
-
-diff -c /usr/share/perl5/IkiWiki/Plugin/parentlinks.pm.distrib /usr/share/perl5/IkiWiki/Plugin/parentlinks.pm
-*** /usr/share/perl5/IkiWiki/Plugin/parentlinks.pm.distrib      Wed Aug  6 07:34:55 2008
---- /usr/share/perl5/IkiWiki/Plugin/parentlinks.pm      Tue Aug 26 23:19:43 2008
-***************
-*** 44,50 ****
-                        "height_$height" => 1,
-                };
-                $path.="/".$dir;
-!               $title=IkiWiki::pagetitle($dir);
-                $i++;
-        }
-        return @ret;
---- 44,50 ----
-                        "height_$height" => 1,
-                };
-                $path.="/".$dir;
-!               $title=IkiWiki::pagetitle($path);
-                $i++;
-        }
-        return @ret;
-
-diff -c /usr/share/perl5/IkiWiki.pm.distrib /usr/share/perl5/IkiWiki.pm
-*** /usr/share/perl5/IkiWiki.pm.distrib Wed Aug  6 07:48:34 2008
---- /usr/share/perl5/IkiWiki.pm Tue Aug 26 23:47:30 2008
-***************
-*** 792,797 ****
---- 792,799 ----
-        my $page=shift;
-        my $unescaped=shift;
-  
-+       $page=basename($page);
-+ 
-        if ($unescaped) {
-                $page=~s/(__(\d+)__|_)/$1 eq '_' ? ' ' : chr($2)/eg;
-    	}
-
-diff -c /usr/share/perl5/IkiWiki/Plugin/meta.pm.distrib /usr/share/perl5/IkiWiki/Plugin/meta.pm
-*** /usr/share/perl5/IkiWiki/Plugin/meta.pm.distrib     Wed Aug  6 07:34:55 2008
---- /usr/share/perl5/IkiWiki/Plugin/meta.pm     Tue Aug 26 23:30:58 2008
-***************
-*** 3,8 ****
---- 3,9 ----
-  package IkiWiki::Plugin::meta;
-  
-  use warnings;
-+ no warnings 'redefine';
-  use strict;
-  use IkiWiki 2.00;
-  
-***************
-*** 289,294 ****
---- 290,319 ----
-        }
-  }
-  
-+ sub IkiWiki::pagetitle ($;$) {
-+       my $page=shift;
-+       my $unescaped=shift;
-+ 
-+       if ($page =~ m#/#) {
-+               $page =~ s#^/##;
-+               $page =~ s#/index$##;
-+               if ($pagestate{"$page/index"}{meta}{title}) {
-+                       $page = $pagestate{"$page/index"}{meta}{title};
-+               } else {
-+                       $page = IkiWiki::basename($page);
-+               }
-+       }
-+ 
-+       if ($unescaped) {
-+               $page=~s/(__(\d+)__|_)/$1 eq '_' ? ' ' : chr($2)/eg;
-+       }
-+       else {
-+               $page=~s/(__(\d+)__|_)/$1 eq '_' ? ' ' : "&#$2;"/eg;
-+       }
-+ 
-+       return $page;
-+ }
-+ 
-  package IkiWiki::PageSpec;
-  
-  sub match_title ($$;@) {
-
-
-
- -

-This is actually a duplicate for -[[bugs/pagetitle_function_does_not_respect_meta_titles]], where I'm -following up a bit. --[[intrigeri]] -

\ No newline at end of file -- cgit v1.2.3 From ec5194feb8c25711eae762c59ec518dfa5f48993 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 30 Jan 2009 15:15:36 -0500 Subject: review= --- ...itle_function_does_not_respect_meta_titles.mdwn | 52 +++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn b/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn index 11735f770..48fd7c647 100644 --- a/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn +++ b/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn @@ -120,7 +120,7 @@ diff -c /usr/share/perl5/IkiWiki/Plugin/meta.pm.distrib /usr/share/perl5/IkiWiki --- +---- > A few quick notes about it: @@ -135,3 +135,53 @@ diff -c /usr/share/perl5/IkiWiki/Plugin/meta.pm.distrib /usr/share/perl5/IkiWiki >> Thus tagging [[patch]]. --[[intrigeri]] >> >>> Joey, please consider merging my `meta` branch. --[[intrigeri]] + +So, looking at your meta branch: --[[Joey]] + +* Inter-page dependencies. If page A links to page B, and page B currently + has no title, then A will display the link as "B". Now page B is modified + and a title is added. Nothing updates "A". + The added overhead of rebuilding every page that links to B when B is + changed (as the `postscan` hook of the po plugin does) is IMHO a killer. + That could be hundreds or thousands of pages, making interactive editing + way slow. This is probably the main reason I had not attempted this whole + thing myself. IMHO this calls for some kind of intellegent dependency + handler that can detect when B's title has changed and only rebuild pages + that link to B in that case. +* Looks like some plugins that use `pagetitle` to format it for display + were not changed to use `nicepagetitle` (for example, rename). + But most of those callers intend to display the page name + as a title, but including the parent directories in the path. (Ie, + "renaming foo/page title to bar/page title" -- + you want to know it's moved from foo to bar.) `nicepagetitle` does not + allow doing that since it always takes the `basename`. +* I don't like the name `nicepagetitle`. It's not very descriptive, is it? + And it seems very confusing to choose whether to use the "nice" or original + version. My hope is that adding a second function is unnecessary. + As I understand it, you added a new function for two reasons: + 1) It needs the full page name, not basename. + 2) `titlepage(pagetitle($page))` reversability. + + #1: If you look at all the callers + Of `pagetitle` most of them pass a complete page name, not just the + basename. In most cases `pagetitle` is used to display the full name + of the page, including any subdirectory it's in. So why not just make + it consitently be given the full name of the page, with another argument + specifying if we want to get back just the base name. + + #2: I can't find any code that actually uses the reversability like that. + The value passed to `titlepage` always comes from some external + source. Unless I missed one. +* The use of `File::Spec->rel2abs` is a bit scary. +* Does it really make sense to call `pagetitle` on the meta title + in meta's `nicepagetitle`? What if the meta title is something like + "foo_bar" -- that would be changed to "foo bar". +* parentlinks is changed to use `nicepagetitle(bestlink($page, $path))`. + Won't `bestlink` return "" if the parent page in question does not exist? +* `backlinks()` is changed to add an additional `title` field + to the hash returned, but AFAICS this is not used in the template. +* Shouldn't `Render.pm` use nicepagetitle when getting the title for the + page template? Then meta would not need to override the title in the + `pagetemplate` hook. (Although this would eliminate handling of + `title_overridden` -- but that is little used and would not catch + all the other ways titles can be overridden with this patch anyway.) -- cgit v1.2.3 From 013a5e4ca74108bf9206be25d3ffdad985ce266f Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 30 Jan 2009 15:17:53 -0500 Subject: formatting --- doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'doc') diff --git a/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn b/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn index 48fd7c647..cdd8a03b1 100644 --- a/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn +++ b/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn @@ -162,14 +162,14 @@ So, looking at your meta branch: --[[Joey]] 1) It needs the full page name, not basename. 2) `titlepage(pagetitle($page))` reversability. - #1: If you look at all the callers + 1) If you look at all the callers Of `pagetitle` most of them pass a complete page name, not just the basename. In most cases `pagetitle` is used to display the full name of the page, including any subdirectory it's in. So why not just make it consitently be given the full name of the page, with another argument specifying if we want to get back just the base name. - #2: I can't find any code that actually uses the reversability like that. + 2) I can't find any code that actually uses the reversability like that. The value passed to `titlepage` always comes from some external source. Unless I missed one. * The use of `File::Spec->rel2abs` is a bit scary. -- cgit v1.2.3 From fb0e3a7dbc7f71f8684c99c20d319671e60354b1 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Sat, 31 Jan 2009 18:27:54 +0000 Subject: Add tip explaining how to use ikiwiki as a 404 handler --- doc/tips/apache_404_handler.mdwn | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 doc/tips/apache_404_handler.mdwn (limited to 'doc') diff --git a/doc/tips/apache_404_handler.mdwn b/doc/tips/apache_404_handler.mdwn new file mode 100644 index 000000000..0fda759e7 --- /dev/null +++ b/doc/tips/apache_404_handler.mdwn @@ -0,0 +1,10 @@ +[[!meta title="Apache 404 handler"]] + +Sufficiently recent versions of IkiWiki can be used as an Apache 404 handler, +to give the behaviour of various other wiki engines where visiting a +nonexistent page provides you with a link to create it. + +To achieve this, put something like this in the wiki's Apache configuration +file: + + ErrorDocument 404 /cgi-bin/ikiwiki.cgi?do=goto -- cgit v1.2.3 From ef3f93b6f668381abb8cebe7ca116e5bf8997069 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Sat, 31 Jan 2009 18:37:48 +0000 Subject: Request review of my 'goto' branch --- doc/todo/apache_404_ErrorDocument_handler.mdwn | 2 +- doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'doc') diff --git a/doc/todo/apache_404_ErrorDocument_handler.mdwn b/doc/todo/apache_404_ErrorDocument_handler.mdwn index b200ff3b2..e3dd7c345 100644 --- a/doc/todo/apache_404_ErrorDocument_handler.mdwn +++ b/doc/todo/apache_404_ErrorDocument_handler.mdwn @@ -15,4 +15,4 @@ successful requests. Due to [a well-known MSIE misfeature](http://support.microsoft.com/default.aspx?scid=kb;en-us;Q294807), error output needs to be at least 512 bytes long, so some padding might also be required. -I'm happy to write such a script if there is interest. --[[smcv]] +Implemented in the 'goto' branch in my git repository. --[[smcv]] diff --git a/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn b/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn index 1828f0a7b..1276c8e6a 100644 --- a/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn +++ b/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn @@ -6,4 +6,5 @@ the same for users. For now I've just cloned the functionality into the comments plugin, but perhaps this functionality could be renamed to `do=goto` or something, and moved to `IkiWiki/CGI.pm`? -If there's general approval I'm happy to write a patch. --[[smcv]] +> Now implemented as the 'goto' branch in my git repository, along with +> [[apache_404_ErrorDocument_handler]]. --[[smcv]] -- cgit v1.2.3 From f4dd02f00ae5255641b49d60e971f6f298f6a98f Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Sat, 31 Jan 2009 18:57:12 +0000 Subject: Clarify behaviour of 404 handler and link an example --- doc/todo/apache_404_ErrorDocument_handler.mdwn | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/todo/apache_404_ErrorDocument_handler.mdwn b/doc/todo/apache_404_ErrorDocument_handler.mdwn index e3dd7c345..b580294ca 100644 --- a/doc/todo/apache_404_ErrorDocument_handler.mdwn +++ b/doc/todo/apache_404_ErrorDocument_handler.mdwn @@ -8,6 +8,9 @@ I think it'd probably have to be a separate CGI script because the environment w (having said that, it might make sense for `recentchanges_link` to return 404 rather than 200 anyway if the page doesn't exist). +> This turns out to be untrue, as long as the wrapper lets a couple of extra +> environment variables through. --[[smcv]] + This would give IkiWiki the behaviour of many other wikis, where visiting a page that does not yet exist prompts you to create it, without having to invoke the CGI for successful requests. @@ -15,4 +18,6 @@ successful requests. Due to [a well-known MSIE misfeature](http://support.microsoft.com/default.aspx?scid=kb;en-us;Q294807), error output needs to be at least 512 bytes long, so some padding might also be required. -Implemented in the 'goto' branch in my git repository. --[[smcv]] +Implemented in the 'goto' branch in my git repository. You can see this +feature in action [on my blog](http://smcv.pseudorandom.co.uk/no/such/page/). +--[[smcv]] -- cgit v1.2.3 From 2524903dc60d678cca7496a58cecd5cd97a72ad2 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sat, 31 Jan 2009 14:55:14 -0500 Subject: comments --- doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'doc') diff --git a/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn b/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn index 1276c8e6a..2c308d086 100644 --- a/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn +++ b/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn @@ -8,3 +8,13 @@ something, and moved to `IkiWiki/CGI.pm`? > Now implemented as the 'goto' branch in my git repository, along with > [[apache_404_ErrorDocument_handler]]. --[[smcv]] + +>> Looks good, the only things I wonder are: +>> * Should it be a separate plugin? In particular `cgi_page_from_404()` is +>> pretty big, and only works if apache is configured so seems somewhat +>> pluginaable. +>> * I wish there were some way to generalize the workaround for the stupid +>> MSIE behavior. Actually, I wish we could ignore the MSIE stupidity, +>> as I tend to do, but perhaps it's too stupid in this case for that to +>> fly.. +>> --[[Joey]] -- cgit v1.2.3 From 7cdbe0da864f6c322c6b25238609b3ba62a61ad8 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sat, 31 Jan 2009 15:05:06 -0500 Subject: one other thought --- doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'doc') diff --git a/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn b/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn index 2c308d086..f48702bfa 100644 --- a/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn +++ b/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn @@ -17,4 +17,8 @@ something, and moved to `IkiWiki/CGI.pm`? >> MSIE behavior. Actually, I wish we could ignore the MSIE stupidity, >> as I tend to do, but perhaps it's too stupid in this case for that to >> fly.. +>> * Is there any reason to require do=goto before checking for +>> `REDIRECT_STATUS`? Seems that if that code were moved +>> out of the enclosing if block, the apache 404 handler could +>> be set direct to the cgi, which seems simpler to remember. >> --[[Joey]] -- cgit v1.2.3 From 46b880f8390ac82d746add01de38a05155743374 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Sat, 31 Jan 2009 22:32:10 +0000 Subject: Split apache404 into an independent plugin Also make it ignore the 'do' parameter at Joey's suggestion, to have one less thing to remember when configuring. --- IkiWiki/CGI.pm | 49 +------------------------- IkiWiki/Plugin/apache404.pm | 76 ++++++++++++++++++++++++++++++++++++++++ doc/plugins/apache404.mdwn | 11 ++++++ doc/tips/apache_404_handler.mdwn | 10 ------ t/apache404.t | 45 ++++++++++++++++++++++++ t/cgi_page_from_404.t | 43 ----------------------- 6 files changed, 133 insertions(+), 101 deletions(-) create mode 100644 IkiWiki/Plugin/apache404.pm create mode 100644 doc/plugins/apache404.mdwn delete mode 100644 doc/tips/apache_404_handler.mdwn create mode 100755 t/apache404.t delete mode 100755 t/cgi_page_from_404.t (limited to 'doc') diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm index 8734cdd49..e75ebcd27 100644 --- a/IkiWiki/CGI.pm +++ b/IkiWiki/CGI.pm @@ -338,46 +338,6 @@ sub cgi_goto ($;$) { exit; } -sub cgi_page_from_404 ($$$) { - my $path = shift; - my $baseurl = shift; - my $usedirs = shift; - - # fail if missing from environment or whatever - return undef unless defined $path; - return undef unless defined $baseurl; - - # with usedirs on, path is like /~fred/foo/bar/ or /~fred/foo/bar or - # /~fred/foo/bar/index.html - # with usedirs off, path is like /~fred/foo/bar.html - # baseurl is like 'http://people.example.com/~fred' - - # convert baseurl to ~fred - unless ($baseurl =~ s{^https?://[^/]+/?}{}) { - return undef; - } - - # convert path to /~fred/foo/bar - if ($usedirs) { - $path =~ s/\/*(?:index\.$config{htmlext})?$//; - } - else { - $path =~ s/\.$config{htmlext}$//; - } - - # remove /~fred/ - unless ($path =~ s{^/*\Q$baseurl\E/*}{}) { - return undef; - } - - # special case for the index - unless ($path) { - return 'index'; - } - - return $path; -} - sub cgi (;$$) { my $q=shift; my $session=shift; @@ -409,14 +369,7 @@ sub cgi (;$$) { # commenter are for compatibility with any saved URLs if ($do eq 'goto' || $do eq 'recentchanges_link' || $do eq 'commenter') { - my $page = undef; - - if ($ENV{REDIRECT_STATUS} eq '404') { - $page = cgi_page_from_404($ENV{REDIRECT_URL}, - $config{url}, $config{usedirs}); - } - - cgi_goto($q, $page); + cgi_goto($q); } # Need to lock the wiki before getting a session. diff --git a/IkiWiki/Plugin/apache404.pm b/IkiWiki/Plugin/apache404.pm new file mode 100644 index 000000000..3ac6b3af5 --- /dev/null +++ b/IkiWiki/Plugin/apache404.pm @@ -0,0 +1,76 @@ +#!/usr/bin/perl +# Copyright © 2009 Simon McVittie +# Licensed under the GNU GPL, version 2, or any later version published by the +# Free Software Foundation +package IkiWiki::Plugin::apache404; + +use warnings; +use strict; +use IkiWiki 3.00; + +sub import { + hook(type => "cgi", id => 'apache404', call => \&cgi); +} + +sub getsetup () { + return + plugin => { + # not really a matter of safety, but enabling/disabling + # through a web interface is useless - it needs web + # server admin action too + safe => 0, + rebuild => 0, + } +} + +sub cgi_page_from_404 ($$$) { + my $path = shift; + my $baseurl = shift; + my $usedirs = shift; + + # fail if missing from environment or whatever + return undef unless defined $path; + return undef unless defined $baseurl; + + # with usedirs on, path is like /~fred/foo/bar/ or /~fred/foo/bar or + # /~fred/foo/bar/index.html + # with usedirs off, path is like /~fred/foo/bar.html + # baseurl is like 'http://people.example.com/~fred' + + # convert baseurl to ~fred + unless ($baseurl =~ s{^https?://[^/]+/?}{}) { + return undef; + } + + # convert path to /~fred/foo/bar + if ($usedirs) { + $path =~ s/\/*(?:index\.$config{htmlext})?$//; + } + else { + $path =~ s/\.$config{htmlext}$//; + } + + # remove /~fred/ + unless ($path =~ s{^/*\Q$baseurl\E/*}{}) { + return undef; + } + + # special case for the index + unless ($path) { + return 'index'; + } + + return $path; +} + +sub cgi ($) { + my $cgi=shift; + + if ($ENV{REDIRECT_STATUS} eq '404') { + my $page = cgi_page_from_404($ENV{REDIRECT_URL}, + $config{url}, $config{usedirs}); + IkiWiki::cgi_goto($cgi, $page); + } +} + +1; diff --git a/doc/plugins/apache404.mdwn b/doc/plugins/apache404.mdwn new file mode 100644 index 000000000..bab8fb59d --- /dev/null +++ b/doc/plugins/apache404.mdwn @@ -0,0 +1,11 @@ +[[!template id=plugin name=apache404 author="[[Simon_McVittie|smcv]]"]] +[[!tag type/useful]] + +This plugin lets you use the IkiWiki CGI script as an Apache 404 handler, +to give the behaviour of various other wiki engines where visiting a +nonexistent page provides you with a link to create it. + +To achieve this, put something like this in the wiki's Apache configuration +file: + + ErrorDocument 404 /cgi-bin/ikiwiki.cgi diff --git a/doc/tips/apache_404_handler.mdwn b/doc/tips/apache_404_handler.mdwn deleted file mode 100644 index 0fda759e7..000000000 --- a/doc/tips/apache_404_handler.mdwn +++ /dev/null @@ -1,10 +0,0 @@ -[[!meta title="Apache 404 handler"]] - -Sufficiently recent versions of IkiWiki can be used as an Apache 404 handler, -to give the behaviour of various other wiki engines where visiting a -nonexistent page provides you with a link to create it. - -To achieve this, put something like this in the wiki's Apache configuration -file: - - ErrorDocument 404 /cgi-bin/ikiwiki.cgi?do=goto diff --git a/t/apache404.t b/t/apache404.t new file mode 100755 index 000000000..00fc35250 --- /dev/null +++ b/t/apache404.t @@ -0,0 +1,45 @@ +#!/usr/bin/perl +use warnings; +use strict; +use Test::More tests => 17; + +BEGIN { use_ok("IkiWiki::Plugin::apache404"); } + +sub cgi_page_from_404 { + return IkiWiki::Plugin::apache404::cgi_page_from_404(shift, shift, + shift); +} + +$IkiWiki::config{htmlext} = 'html'; + +is(cgi_page_from_404('/', 'http://example.com', 1), 'index'); +is(cgi_page_from_404('/index.html', 'http://example.com', 0), 'index'); +is(cgi_page_from_404('/', 'http://example.com/', 1), 'index'); +is(cgi_page_from_404('/index.html', 'http://example.com/', 0), 'index'); + +is(cgi_page_from_404('/~user/foo/bar', 'http://example.com/~user', 1), + 'foo/bar'); +is(cgi_page_from_404('/~user/foo/bar/index.html', 'http://example.com/~user', 1), + 'foo/bar'); +is(cgi_page_from_404('/~user/foo/bar/', 'http://example.com/~user', 1), + 'foo/bar'); +is(cgi_page_from_404('/~user/foo/bar.html', 'http://example.com/~user', 0), + 'foo/bar'); + +is(cgi_page_from_404('/~user/foo/bar', 'http://example.com/~user/', 1), + 'foo/bar'); +is(cgi_page_from_404('/~user/foo/bar/index.html', 'http://example.com/~user/', 1), + 'foo/bar'); +is(cgi_page_from_404('/~user/foo/bar/', 'http://example.com/~user/', 1), + 'foo/bar'); +is(cgi_page_from_404('/~user/foo/bar.html', 'http://example.com/~user/', 0), + 'foo/bar'); + +is(cgi_page_from_404('/~user/foo', 'https://example.com/~user', 1), + 'foo'); +is(cgi_page_from_404('/~user/foo/index.html', 'https://example.com/~user', 1), + 'foo'); +is(cgi_page_from_404('/~user/foo/', 'https://example.com/~user', 1), + 'foo'); +is(cgi_page_from_404('/~user/foo.html', 'https://example.com/~user', 0), + 'foo'); diff --git a/t/cgi_page_from_404.t b/t/cgi_page_from_404.t deleted file mode 100755 index adbbdf874..000000000 --- a/t/cgi_page_from_404.t +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/perl -use warnings; -use strict; -use Test::More tests => 18; - -BEGIN { use_ok("IkiWiki"); } -BEGIN { use_ok("IkiWiki::CGI"); } - -sub cgi_page_from_404 { return IkiWiki::cgi_page_from_404(shift, shift, shift); } - -$IkiWiki::config{htmlext} = 'html'; - -is(cgi_page_from_404('/', 'http://example.com', 1), 'index'); -is(cgi_page_from_404('/index.html', 'http://example.com', 0), 'index'); -is(cgi_page_from_404('/', 'http://example.com/', 1), 'index'); -is(cgi_page_from_404('/index.html', 'http://example.com/', 0), 'index'); - -is(cgi_page_from_404('/~user/foo/bar', 'http://example.com/~user', 1), - 'foo/bar'); -is(cgi_page_from_404('/~user/foo/bar/index.html', 'http://example.com/~user', 1), - 'foo/bar'); -is(cgi_page_from_404('/~user/foo/bar/', 'http://example.com/~user', 1), - 'foo/bar'); -is(cgi_page_from_404('/~user/foo/bar.html', 'http://example.com/~user', 0), - 'foo/bar'); - -is(cgi_page_from_404('/~user/foo/bar', 'http://example.com/~user/', 1), - 'foo/bar'); -is(cgi_page_from_404('/~user/foo/bar/index.html', 'http://example.com/~user/', 1), - 'foo/bar'); -is(cgi_page_from_404('/~user/foo/bar/', 'http://example.com/~user/', 1), - 'foo/bar'); -is(cgi_page_from_404('/~user/foo/bar.html', 'http://example.com/~user/', 0), - 'foo/bar'); - -is(cgi_page_from_404('/~user/foo', 'https://example.com/~user', 1), - 'foo'); -is(cgi_page_from_404('/~user/foo/index.html', 'https://example.com/~user', 1), - 'foo'); -is(cgi_page_from_404('/~user/foo/', 'https://example.com/~user', 1), - 'foo'); -is(cgi_page_from_404('/~user/foo.html', 'https://example.com/~user', 0), - 'foo'); -- cgit v1.2.3 From c886bea32084a920f3ba26b3f96327681f5db917 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Sat, 31 Jan 2009 23:01:10 +0000 Subject: Split cgi_goto into a goto plugin --- IkiWiki/CGI.pm | 51 --------------------------- IkiWiki/Plugin/apache404.pm | 3 +- IkiWiki/Plugin/comments.pm | 2 ++ IkiWiki/Plugin/goto.pm | 76 +++++++++++++++++++++++++++++++++++++++++ IkiWiki/Plugin/recentchanges.pm | 2 ++ doc/plugins/goto.mdwn | 10 ++++++ 6 files changed, 92 insertions(+), 52 deletions(-) create mode 100644 IkiWiki/Plugin/goto.pm create mode 100644 doc/plugins/goto.mdwn (limited to 'doc') diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm index e75ebcd27..c91914564 100644 --- a/IkiWiki/CGI.pm +++ b/IkiWiki/CGI.pm @@ -294,50 +294,6 @@ sub cgi_savesession ($) { umask($oldmask); } -# cgi_goto(CGI, [page]) -# Redirect to a specified page, or display "not found". If not specified, -# the page param from the CGI object is used. -sub cgi_goto ($;$) { - my $q = shift; - my $page = shift; - - if (!defined $page) { - $page = decode_utf8($q->param("page")); - - if (!defined $page) { - error("missing page parameter"); - } - } - - loadindex(); - - # If the page is internal (like a comment), see if it has a - # permalink. Comments do. - if (isinternal($page) && - defined $pagestate{$page}{meta}{permalink}) { - redirect($q, $pagestate{$page}{meta}{permalink}); - } - - my $link = bestlink("", $page); - - if (! length $link) { - print $q->header(-status => "404 Not Found"); - print misctemplate(gettext("missing page"), - "

". - sprintf(gettext("The page %s does not exist."), - htmllink("", "", $page)). - "

". - # Internet Explorer won't show custom 404 responses - # unless they're >= 512 bytes - (" " x 512)); - } - else { - redirect($q, urlto($link, undef, 1)); - } - - exit; -} - sub cgi (;$$) { my $q=shift; my $session=shift; @@ -365,13 +321,6 @@ sub cgi (;$$) { } } - # goto is the preferred name for this; recentchanges_link and - # commenter are for compatibility with any saved URLs - if ($do eq 'goto' || $do eq 'recentchanges_link' || - $do eq 'commenter') { - cgi_goto($q); - } - # Need to lock the wiki before getting a session. lockwiki(); loadindex(); diff --git a/IkiWiki/Plugin/apache404.pm b/IkiWiki/Plugin/apache404.pm index 3ac6b3af5..e7ce70435 100644 --- a/IkiWiki/Plugin/apache404.pm +++ b/IkiWiki/Plugin/apache404.pm @@ -10,6 +10,7 @@ use IkiWiki 3.00; sub import { hook(type => "cgi", id => 'apache404', call => \&cgi); + IkiWiki::loadplugin("goto"); } sub getsetup () { @@ -69,7 +70,7 @@ sub cgi ($) { if ($ENV{REDIRECT_STATUS} eq '404') { my $page = cgi_page_from_404($ENV{REDIRECT_URL}, $config{url}, $config{usedirs}); - IkiWiki::cgi_goto($cgi, $page); + IkiWiki::Plugin::goto::cgi_goto($cgi, $page); } } diff --git a/IkiWiki/Plugin/comments.pm b/IkiWiki/Plugin/comments.pm index 995d1f4eb..3cdffe856 100644 --- a/IkiWiki/Plugin/comments.pm +++ b/IkiWiki/Plugin/comments.pm @@ -26,6 +26,8 @@ sub import { hook(type => "htmlize", id => "_comment", call => \&htmlize); hook(type => "pagetemplate", id => "comments", call => \&pagetemplate); hook(type => "formbuilder_setup", id => "comments", call => \&formbuilder_setup); + # Load goto to fix up user page links for logged-in commenters + IkiWiki::loadplugin("goto"); IkiWiki::loadplugin("inline"); } diff --git a/IkiWiki/Plugin/goto.pm b/IkiWiki/Plugin/goto.pm new file mode 100644 index 000000000..9e7a2621f --- /dev/null +++ b/IkiWiki/Plugin/goto.pm @@ -0,0 +1,76 @@ +#!/usr/bin/perl +package IkiWiki::Plugin::goto; + +use warnings; +use strict; +use IkiWiki 3.00; + +sub import { + hook(type => "cgi", id => 'goto', call => \&cgi); +} + +sub getsetup () { + return + plugin => { + safe => 1, + rebuild => 0, + } +} + +# cgi_goto(CGI, [page]) +# Redirect to a specified page, or display "not found". If not specified, +# the page param from the CGI object is used. +sub cgi_goto ($;$) { + my $q = shift; + my $page = shift; + + if (!defined $page) { + $page = IkiWiki::decode_utf8($q->param("page")); + + if (!defined $page) { + error("missing page parameter"); + } + } + + IkiWiki::loadindex(); + + # If the page is internal (like a comment), see if it has a + # permalink. Comments do. + if (IkiWiki::isinternal($page) && + defined $pagestate{$page}{meta}{permalink}) { + redirect($q, $pagestate{$page}{meta}{permalink}); + } + + my $link = bestlink("", $page); + + if (! length $link) { + print $q->header(-status => "404 Not Found"); + print IkiWiki::misctemplate(gettext("missing page"), + "

". + sprintf(gettext("The page %s does not exist."), + htmllink("", "", $page)). + "

". + # Internet Explorer won't show custom 404 responses + # unless they're >= 512 bytes + (" " x 512)); + } + else { + IkiWiki::redirect($q, urlto($link, undef, 1)); + } + + exit; +} + +sub cgi ($) { + my $cgi=shift; + my $do = $cgi->param('do'); + + if (defined $do && ($do eq 'goto' || $do eq 'commenter' || + $do eq 'recentchanged_link')) { + # goto is the preferred name for this; recentchanges_link and + # commenter are for compatibility with any saved URLs + cgi_goto($cgi); + } +} + +1; diff --git a/IkiWiki/Plugin/recentchanges.pm b/IkiWiki/Plugin/recentchanges.pm index 56e80e7b8..329dd6f32 100644 --- a/IkiWiki/Plugin/recentchanges.pm +++ b/IkiWiki/Plugin/recentchanges.pm @@ -13,6 +13,8 @@ sub import { hook(type => "refresh", id => "recentchanges", call => \&refresh); hook(type => "pagetemplate", id => "recentchanges", call => \&pagetemplate); hook(type => "htmlize", id => "_change", call => \&htmlize); + # Load goto to fix up links from recentchanges + IkiWiki::loadplugin("goto"); } sub getsetup () { diff --git a/doc/plugins/goto.mdwn b/doc/plugins/goto.mdwn new file mode 100644 index 000000000..21dda16b2 --- /dev/null +++ b/doc/plugins/goto.mdwn @@ -0,0 +1,10 @@ +[[!template id=plugin name=goto author="[[Simon_McVittie|smcv]]"]] +[[!tag type/useful]] + +This plugin adds a `do=goto` mode for the IkiWiki CGI script. It's mainly +for internal use by the [[apache404]], [[comments]] and [[recentchanges]] +plugins, which enable it automatically. + +With this plugin enabled you can link to `ikiwiki.cgi?do=goto&page=some/where` +to make a link that will redirect to the page `/some/where` if it exists, or +offer a link to create it if it doesn't. -- cgit v1.2.3 From 0fe92602496210294e71c28ba459f06277a8c2ac Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Sat, 31 Jan 2009 23:08:48 +0000 Subject: Respond with updated goto branch --- doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'doc') diff --git a/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn b/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn index f48702bfa..4bf3fb449 100644 --- a/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn +++ b/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn @@ -13,6 +13,12 @@ something, and moved to `IkiWiki/CGI.pm`? >> * Should it be a separate plugin? In particular `cgi_page_from_404()` is >> pretty big, and only works if apache is configured so seems somewhat >> pluginaable. + +>>> I've split out `goto` and `apache404` plugins in the branch. I think +>>> you're right that apache404 should be a plugin. If you think goto is small +>>> and general enough to not be a plugin, just don't merge my most recent +>>> patch! --[[smcv]] + >> * I wish there were some way to generalize the workaround for the stupid >> MSIE behavior. Actually, I wish we could ignore the MSIE stupidity, >> as I tend to do, but perhaps it's too stupid in this case for that to @@ -22,3 +28,6 @@ something, and moved to `IkiWiki/CGI.pm`? >> out of the enclosing if block, the apache 404 handler could >> be set direct to the cgi, which seems simpler to remember. >> --[[Joey]] + +>>> No, good point - the `REDIRECT_STATUS` check is sufficiently unambiguous +>>> already. Fixed. --[[smcv]] -- cgit v1.2.3 From e5c8bc6222712fe9f465d4ac36350fd4ea729787 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sat, 31 Jan 2009 19:10:48 -0500 Subject: doc updates for goto branch merge --- debian/changelog | 10 ++++++++++ debian/copyright | 4 ++++ doc/tips/dot_cgi.mdwn | 8 ++++++++ doc/todo/apache_404_ErrorDocument_handler.mdwn | 2 ++ doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn | 2 ++ 5 files changed, 26 insertions(+) (limited to 'doc') diff --git a/debian/changelog b/debian/changelog index 82a23212b..f3927f121 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,13 @@ +ikiwiki (3.04) UNRELEASED; urgency=low + + * apache404: New plugin which lets you use the IkiWiki CGI script as + an Apache 404 handler, to give the behaviour of various other wiki + engines where visiting a nonexistent page provides you with a link + to create it. (smcv) + * Factor out redundant code into goto plugin. (smcv) + + -- Joey Hess Sat, 31 Jan 2009 19:04:45 -0500 + ikiwiki (3.03) unstable; urgency=low * Avoid feeding decoded unicode to Term::ReadLine. Closes: 512169 diff --git a/debian/copyright b/debian/copyright index 71fb47013..bdfbaa573 100644 --- a/debian/copyright +++ b/debian/copyright @@ -118,6 +118,10 @@ Copyright: © 2008 Simon McVittie License: GPL-2+ +Files: apache404.pm +Copyright: © 2009 Simon McVittie +License: GPL-2+ + Files: doc/logo/* Copyright: © 2006 Recai Oktaş License: GPL-2+ diff --git a/doc/tips/dot_cgi.mdwn b/doc/tips/dot_cgi.mdwn index fbc3d8bbc..ffcbf95d4 100644 --- a/doc/tips/dot_cgi.mdwn +++ b/doc/tips/dot_cgi.mdwn @@ -26,6 +26,14 @@ configuration changes should work anywhere. Or, if you've put it in a `~/public_html`, edit `/etc/apache2/mods-available/userdir.conf`. +You may also want to enable the [[plugins/apache404]] +plugin. To make apache use it, the apache config file +will need a further modification to make it use ikiwiki's CGI +as the apache 404 handler. Something like this, with +the path adjusted to where you've put the CGI: + + ErrorDocument 404 /cgi-bin/ikiwiki.cgi + ## lighttpd Here is how to enable cgi on [lighttpd](http://www.lighttpd.net/) and diff --git a/doc/todo/apache_404_ErrorDocument_handler.mdwn b/doc/todo/apache_404_ErrorDocument_handler.mdwn index b580294ca..4ae1d1a79 100644 --- a/doc/todo/apache_404_ErrorDocument_handler.mdwn +++ b/doc/todo/apache_404_ErrorDocument_handler.mdwn @@ -21,3 +21,5 @@ error output needs to be at least 512 bytes long, so some padding might also be Implemented in the 'goto' branch in my git repository. You can see this feature in action [on my blog](http://smcv.pseudorandom.co.uk/no/such/page/). --[[smcv]] + +[[done]] diff --git a/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn b/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn index 4bf3fb449..26c5202d0 100644 --- a/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn +++ b/doc/todo/generic___39__do__61__goto__39___for_CGI.mdwn @@ -31,3 +31,5 @@ something, and moved to `IkiWiki/CGI.pm`? >>> No, good point - the `REDIRECT_STATUS` check is sufficiently unambiguous >>> already. Fixed. --[[smcv]] + +[[done]] -- cgit v1.2.3 From 3b83e520182a83e4ae6c61ab7b360b0eb939469f Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sat, 31 Jan 2009 19:26:36 -0500 Subject: rename apache404 -> 404 This may already work with other web servers that have copied apache's interface, and it should be easy to add support to it for web servers that use some other interface. So, make the name more general. --- IkiWiki/Plugin/404.pm | 77 +++++++++++++++++++++++++++++++++++++++++++++ IkiWiki/Plugin/apache404.pm | 77 --------------------------------------------- debian/changelog | 2 +- debian/copyright | 2 +- doc/plugins/404.mdwn | 11 +++++++ doc/plugins/apache404.mdwn | 11 ------- doc/plugins/goto.mdwn | 2 +- doc/tips/dot_cgi.mdwn | 9 +++--- t/404.t | 44 ++++++++++++++++++++++++++ t/apache404.t | 45 -------------------------- 10 files changed, 139 insertions(+), 141 deletions(-) create mode 100644 IkiWiki/Plugin/404.pm delete mode 100644 IkiWiki/Plugin/apache404.pm create mode 100644 doc/plugins/404.mdwn delete mode 100644 doc/plugins/apache404.mdwn create mode 100755 t/404.t delete mode 100755 t/apache404.t (limited to 'doc') diff --git a/IkiWiki/Plugin/404.pm b/IkiWiki/Plugin/404.pm new file mode 100644 index 000000000..5550ea7d1 --- /dev/null +++ b/IkiWiki/Plugin/404.pm @@ -0,0 +1,77 @@ +#!/usr/bin/perl +# Copyright © 2009 Simon McVittie +# Licensed under the GNU GPL, version 2, or any later version published by the +# Free Software Foundation +package IkiWiki::Plugin::404; + +use warnings; +use strict; +use IkiWiki 3.00; + +sub import { + hook(type => "cgi", id => '404', call => \&cgi); + IkiWiki::loadplugin("goto"); +} + +sub getsetup () { + return + plugin => { + # not really a matter of safety, but enabling/disabling + # through a web interface is useless - it needs web + # server admin action too + safe => 0, + rebuild => 0, + } +} + +sub cgi_page_from_404 ($$$) { + my $path = shift; + my $baseurl = shift; + my $usedirs = shift; + + # fail if missing from environment or whatever + return undef unless defined $path; + return undef unless defined $baseurl; + + # with usedirs on, path is like /~fred/foo/bar/ or /~fred/foo/bar or + # /~fred/foo/bar/index.html + # with usedirs off, path is like /~fred/foo/bar.html + # baseurl is like 'http://people.example.com/~fred' + + # convert baseurl to ~fred + unless ($baseurl =~ s{^https?://[^/]+/?}{}) { + return undef; + } + + # convert path to /~fred/foo/bar + if ($usedirs) { + $path =~ s/\/*(?:index\.$config{htmlext})?$//; + } + else { + $path =~ s/\.$config{htmlext}$//; + } + + # remove /~fred/ + unless ($path =~ s{^/*\Q$baseurl\E/*}{}) { + return undef; + } + + # special case for the index + unless ($path) { + return 'index'; + } + + return $path; +} + +sub cgi ($) { + my $cgi=shift; + + if ($ENV{REDIRECT_STATUS} eq '404') { + my $page = cgi_page_from_404($ENV{REDIRECT_URL}, + $config{url}, $config{usedirs}); + IkiWiki::Plugin::goto::cgi_goto($cgi, $page); + } +} + +1; diff --git a/IkiWiki/Plugin/apache404.pm b/IkiWiki/Plugin/apache404.pm deleted file mode 100644 index e7ce70435..000000000 --- a/IkiWiki/Plugin/apache404.pm +++ /dev/null @@ -1,77 +0,0 @@ -#!/usr/bin/perl -# Copyright © 2009 Simon McVittie -# Licensed under the GNU GPL, version 2, or any later version published by the -# Free Software Foundation -package IkiWiki::Plugin::apache404; - -use warnings; -use strict; -use IkiWiki 3.00; - -sub import { - hook(type => "cgi", id => 'apache404', call => \&cgi); - IkiWiki::loadplugin("goto"); -} - -sub getsetup () { - return - plugin => { - # not really a matter of safety, but enabling/disabling - # through a web interface is useless - it needs web - # server admin action too - safe => 0, - rebuild => 0, - } -} - -sub cgi_page_from_404 ($$$) { - my $path = shift; - my $baseurl = shift; - my $usedirs = shift; - - # fail if missing from environment or whatever - return undef unless defined $path; - return undef unless defined $baseurl; - - # with usedirs on, path is like /~fred/foo/bar/ or /~fred/foo/bar or - # /~fred/foo/bar/index.html - # with usedirs off, path is like /~fred/foo/bar.html - # baseurl is like 'http://people.example.com/~fred' - - # convert baseurl to ~fred - unless ($baseurl =~ s{^https?://[^/]+/?}{}) { - return undef; - } - - # convert path to /~fred/foo/bar - if ($usedirs) { - $path =~ s/\/*(?:index\.$config{htmlext})?$//; - } - else { - $path =~ s/\.$config{htmlext}$//; - } - - # remove /~fred/ - unless ($path =~ s{^/*\Q$baseurl\E/*}{}) { - return undef; - } - - # special case for the index - unless ($path) { - return 'index'; - } - - return $path; -} - -sub cgi ($) { - my $cgi=shift; - - if ($ENV{REDIRECT_STATUS} eq '404') { - my $page = cgi_page_from_404($ENV{REDIRECT_URL}, - $config{url}, $config{usedirs}); - IkiWiki::Plugin::goto::cgi_goto($cgi, $page); - } -} - -1; diff --git a/debian/changelog b/debian/changelog index f3927f121..be32d3abf 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,6 @@ ikiwiki (3.04) UNRELEASED; urgency=low - * apache404: New plugin which lets you use the IkiWiki CGI script as + * 404: New plugin which lets you use the IkiWiki CGI script as an Apache 404 handler, to give the behaviour of various other wiki engines where visiting a nonexistent page provides you with a link to create it. (smcv) diff --git a/debian/copyright b/debian/copyright index bdfbaa573..f589b4a8f 100644 --- a/debian/copyright +++ b/debian/copyright @@ -118,7 +118,7 @@ Copyright: © 2008 Simon McVittie License: GPL-2+ -Files: apache404.pm +Files: 404.pm Copyright: © 2009 Simon McVittie License: GPL-2+ diff --git a/doc/plugins/404.mdwn b/doc/plugins/404.mdwn new file mode 100644 index 000000000..8d36279c8 --- /dev/null +++ b/doc/plugins/404.mdwn @@ -0,0 +1,11 @@ +[[!template id=plugin name=404 author="[[Simon_McVittie|smcv]]"]] +[[!tag type/useful]] + +This plugin lets you use the IkiWiki CGI script as an Apache 404 handler, +to give the behaviour of various other wiki engines where visiting a +nonexistent page provides you with a link to create it. + +To achieve this, put something like this in the wiki's Apache configuration +file: + + ErrorDocument 404 /cgi-bin/ikiwiki.cgi diff --git a/doc/plugins/apache404.mdwn b/doc/plugins/apache404.mdwn deleted file mode 100644 index bab8fb59d..000000000 --- a/doc/plugins/apache404.mdwn +++ /dev/null @@ -1,11 +0,0 @@ -[[!template id=plugin name=apache404 author="[[Simon_McVittie|smcv]]"]] -[[!tag type/useful]] - -This plugin lets you use the IkiWiki CGI script as an Apache 404 handler, -to give the behaviour of various other wiki engines where visiting a -nonexistent page provides you with a link to create it. - -To achieve this, put something like this in the wiki's Apache configuration -file: - - ErrorDocument 404 /cgi-bin/ikiwiki.cgi diff --git a/doc/plugins/goto.mdwn b/doc/plugins/goto.mdwn index 21dda16b2..9c401c5d2 100644 --- a/doc/plugins/goto.mdwn +++ b/doc/plugins/goto.mdwn @@ -2,7 +2,7 @@ [[!tag type/useful]] This plugin adds a `do=goto` mode for the IkiWiki CGI script. It's mainly -for internal use by the [[apache404]], [[comments]] and [[recentchanges]] +for internal use by the [[404]], [[comments]] and [[recentchanges]] plugins, which enable it automatically. With this plugin enabled you can link to `ikiwiki.cgi?do=goto&page=some/where` diff --git a/doc/tips/dot_cgi.mdwn b/doc/tips/dot_cgi.mdwn index ffcbf95d4..04d7a9721 100644 --- a/doc/tips/dot_cgi.mdwn +++ b/doc/tips/dot_cgi.mdwn @@ -26,11 +26,10 @@ configuration changes should work anywhere. Or, if you've put it in a `~/public_html`, edit `/etc/apache2/mods-available/userdir.conf`. -You may also want to enable the [[plugins/apache404]] -plugin. To make apache use it, the apache config file -will need a further modification to make it use ikiwiki's CGI -as the apache 404 handler. Something like this, with -the path adjusted to where you've put the CGI: +* You may also want to enable the [[plugins/404]] plugin. + To make apache use it, the apache config file will need a further + modification to make it use ikiwiki's CGI as the apache 404 handler. + Something like this, with the path adjusted to where you've put the CGI: ErrorDocument 404 /cgi-bin/ikiwiki.cgi diff --git a/t/404.t b/t/404.t new file mode 100755 index 000000000..0bb3c6063 --- /dev/null +++ b/t/404.t @@ -0,0 +1,44 @@ +#!/usr/bin/perl +use warnings; +use strict; +use Test::More tests => 17; + +BEGIN { use_ok("IkiWiki::Plugin::404"); } + +sub cgi_page_from_404 { + return IkiWiki::Plugin::404::cgi_page_from_404(shift, shift, shift); +} + +$IkiWiki::config{htmlext} = 'html'; + +is(cgi_page_from_404('/', 'http://example.com', 1), 'index'); +is(cgi_page_from_404('/index.html', 'http://example.com', 0), 'index'); +is(cgi_page_from_404('/', 'http://example.com/', 1), 'index'); +is(cgi_page_from_404('/index.html', 'http://example.com/', 0), 'index'); + +is(cgi_page_from_404('/~user/foo/bar', 'http://example.com/~user', 1), + 'foo/bar'); +is(cgi_page_from_404('/~user/foo/bar/index.html', 'http://example.com/~user', 1), + 'foo/bar'); +is(cgi_page_from_404('/~user/foo/bar/', 'http://example.com/~user', 1), + 'foo/bar'); +is(cgi_page_from_404('/~user/foo/bar.html', 'http://example.com/~user', 0), + 'foo/bar'); + +is(cgi_page_from_404('/~user/foo/bar', 'http://example.com/~user/', 1), + 'foo/bar'); +is(cgi_page_from_404('/~user/foo/bar/index.html', 'http://example.com/~user/', 1), + 'foo/bar'); +is(cgi_page_from_404('/~user/foo/bar/', 'http://example.com/~user/', 1), + 'foo/bar'); +is(cgi_page_from_404('/~user/foo/bar.html', 'http://example.com/~user/', 0), + 'foo/bar'); + +is(cgi_page_from_404('/~user/foo', 'https://example.com/~user', 1), + 'foo'); +is(cgi_page_from_404('/~user/foo/index.html', 'https://example.com/~user', 1), + 'foo'); +is(cgi_page_from_404('/~user/foo/', 'https://example.com/~user', 1), + 'foo'); +is(cgi_page_from_404('/~user/foo.html', 'https://example.com/~user', 0), + 'foo'); diff --git a/t/apache404.t b/t/apache404.t deleted file mode 100755 index 00fc35250..000000000 --- a/t/apache404.t +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/perl -use warnings; -use strict; -use Test::More tests => 17; - -BEGIN { use_ok("IkiWiki::Plugin::apache404"); } - -sub cgi_page_from_404 { - return IkiWiki::Plugin::apache404::cgi_page_from_404(shift, shift, - shift); -} - -$IkiWiki::config{htmlext} = 'html'; - -is(cgi_page_from_404('/', 'http://example.com', 1), 'index'); -is(cgi_page_from_404('/index.html', 'http://example.com', 0), 'index'); -is(cgi_page_from_404('/', 'http://example.com/', 1), 'index'); -is(cgi_page_from_404('/index.html', 'http://example.com/', 0), 'index'); - -is(cgi_page_from_404('/~user/foo/bar', 'http://example.com/~user', 1), - 'foo/bar'); -is(cgi_page_from_404('/~user/foo/bar/index.html', 'http://example.com/~user', 1), - 'foo/bar'); -is(cgi_page_from_404('/~user/foo/bar/', 'http://example.com/~user', 1), - 'foo/bar'); -is(cgi_page_from_404('/~user/foo/bar.html', 'http://example.com/~user', 0), - 'foo/bar'); - -is(cgi_page_from_404('/~user/foo/bar', 'http://example.com/~user/', 1), - 'foo/bar'); -is(cgi_page_from_404('/~user/foo/bar/index.html', 'http://example.com/~user/', 1), - 'foo/bar'); -is(cgi_page_from_404('/~user/foo/bar/', 'http://example.com/~user/', 1), - 'foo/bar'); -is(cgi_page_from_404('/~user/foo/bar.html', 'http://example.com/~user/', 0), - 'foo/bar'); - -is(cgi_page_from_404('/~user/foo', 'https://example.com/~user', 1), - 'foo'); -is(cgi_page_from_404('/~user/foo/index.html', 'https://example.com/~user', 1), - 'foo'); -is(cgi_page_from_404('/~user/foo/', 'https://example.com/~user', 1), - 'foo'); -is(cgi_page_from_404('/~user/foo.html', 'https://example.com/~user', 0), - 'foo'); -- cgit v1.2.3 From ac2a5594a186d5a2a3094a96ac440934312d6964 Mon Sep 17 00:00:00 2001 From: "http://smcv.pseudorandom.co.uk/" Date: Mon, 2 Feb 2009 14:31:27 -0500 Subject: please don't make use of [[!meta title]] in parentlinks mandatory... --- ...pagetitle_function_does_not_respect_meta_titles.mdwn | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'doc') diff --git a/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn b/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn index cdd8a03b1..86a72a4e2 100644 --- a/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn +++ b/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn @@ -185,3 +185,20 @@ So, looking at your meta branch: --[[Joey]] `pagetemplate` hook. (Although this would eliminate handling of `title_overridden` -- but that is little used and would not catch all the other ways titles can be overridden with this patch anyway.) + +> I'm not a reviewer or anything, but can I chime in on changes to pagetitle? +> I don't think having meta-titles in wikilinks and the parentlinks path by +> default is necessarily a good thing. I don't consider the meta-title of a page +> as used in `` to be the same thing as the short title you +> want in those contexts - IMO, the meta-title is the "formal" title of the page, +> enough to identify it with no other context, and frequently too long to be used +> as a link title or a parentlink, whereas the parentlinks title in particular +> should be some abbreviated form that's enough to identify it in context. +> [tbm](http://www.cyrius.com/) expressed a similar opinion when I was discussing +> ikiwiki with him at the weekend. +> +> Having a `\[[!meta abbrev="..."]]` that took precedence over title +> in such contexts might be a good way to fix this? Or if your preference goes +> the other way, perhaps a `\[[!meta longtitle=""]]` could take precedence +> when generating the `<title>` and the title that comes after the parentlinks. +> --[[smcv]] -- cgit v1.2.3 From b5468168824c28ce837d648fdac0459c84f5424b Mon Sep 17 00:00:00 2001 From: "http://smcv.pseudorandom.co.uk/" <http://smcv.pseudorandom.co.uk/@web> Date: Mon, 2 Feb 2009 14:39:45 -0500 Subject: some examples --- ...agetitle_function_does_not_respect_meta_titles.mdwn | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'doc') diff --git a/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn b/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn index 86a72a4e2..bf30fba4e 100644 --- a/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn +++ b/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn @@ -197,8 +197,18 @@ So, looking at your meta branch: --[[Joey]] > [tbm](http://www.cyrius.com/) expressed a similar opinion when I was discussing > ikiwiki with him at the weekend. > +> It's a matter of taste whether wikilinks are "like a parentlink" or "like a +> `<title>`"; I could be persuaded either way on that one. +> +> An example from my site: [this page](http://www.pseudorandom.co.uk/2004/debian/ipsec/) +> is the parent of [this page](http://www.pseudorandom.co.uk/2004/debian/ipsec/wifi/) +> with a title too long to use in the latter's parentlinks; I think the titles of +> both those pages are too long to use as wikilink text too. Similarly, tbm's page +> about [Debian on Orion devices from Buffalo](http://www.cyrius.com/debian/orion/buffalo/) +> can simply be called "Buffalo" in context. +> > Having a `\[[!meta abbrev="..."]]` that took precedence over title -> in such contexts might be a good way to fix this? Or if your preference goes -> the other way, perhaps a `\[[!meta longtitle=""]]` could take precedence -> when generating the `<title>` and the title that comes after the parentlinks. -> --[[smcv]] +> in parentlinks and possibly wikilinks might be a good way to fix this? Or if your +> preference goes the other way, perhaps a `\[[!meta longtitle=""]]` could take +> precedence when generating the `<title>` and the title that comes after the +> parentlinks. --[[smcv]] -- cgit v1.2.3 From d383a7a518a472f94e30e8f76e49440470d52170 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Mon, 2 Feb 2009 15:19:56 -0500 Subject: response --- ...getitle_function_does_not_respect_meta_titles.mdwn | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'doc') diff --git a/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn b/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn index bf30fba4e..4a83f9ec8 100644 --- a/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn +++ b/doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn @@ -212,3 +212,22 @@ So, looking at your meta branch: --[[Joey]] > preference goes the other way, perhaps a `\[[!meta longtitle=""]]` could take > precedence when generating the `<title>` and the title that comes after the > parentlinks. --[[smcv]] + +>> I think you've convinced me. (I had always had some doubt in my mind as +>> to whether using titles in all these other places would make sense.) +>> +>> Instead of meta abbrev, you could have a meta pagename that +>> overrides the page name displayed everywhere (in turn overridden by +>> meta title iff the page's title is being displayed). But is this complexity +>> needed? We have meta redir, so if you want to change the name of a page, +>> you can just rename it, and put in a stub redirection page so links +>> still work. +>> +>> This leaves the [[plugins/contrib/po]] plugin, which really does need +>> a way to change the displayed page name everywhere, and at least a +>> subset of the changes in the meta branch are needed to support that. +>> +>> (This would also get around my concern about inter-page dependency +>> handling, since po contains a workaround for that, and it's probably +>> acceptable to use potentially slow methods to handle this case.) +>> --[[Joey]] -- cgit v1.2.3 From 4531e540746749391f1004f601eb78b42b826fd7 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Tue, 3 Feb 2009 10:37:24 -0500 Subject: implementing pingback using checkcontent hook and the comments plugin --- doc/todo/pingback_support.mdwn | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'doc') diff --git a/doc/todo/pingback_support.mdwn b/doc/todo/pingback_support.mdwn index 6632cc747..3a7b5a931 100644 --- a/doc/todo/pingback_support.mdwn +++ b/doc/todo/pingback_support.mdwn @@ -20,3 +20,17 @@ case I will consider this done with an entry in [[tips]]; otherwise a [[plugins|plugin]] to implement pingbacks would be great. -- [[Jon]] (Wed Jan 14 13:48:47 GMT 2009) + +> I think it's now possible to implement trackback and pingback receiving +> support in ikiwiki. One easy way to do it would be to hook it into the +> existing [[plugins/comments]] plugin -- each pingback/trackback that +> ikiwiki recieves would result in the creation if a new comment, which +> would be subject to the usual comment filtering (ie, blogspam) and +> moderation and would then show up amoung the other, regular comments on +> the page. +> +> As for sending trackbacks and pingbacks, this could fairly easily be +> implemented using a `editcontent` hook. Since this hook is called +> whenever a page is posted or edited, and gets the changed content, it can +> simply scan it for urls (may have to htmlize first?), and send pings to +> all urls found. --[[Joey]] -- cgit v1.2.3 From 9690356080e995d7f9d3b3370c0030f87f9e8650 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Tue, 3 Feb 2009 10:43:27 -0500 Subject: note --- doc/todo/pingback_support.mdwn | 3 +++ 1 file changed, 3 insertions(+) (limited to 'doc') diff --git a/doc/todo/pingback_support.mdwn b/doc/todo/pingback_support.mdwn index 3a7b5a931..b10366bda 100644 --- a/doc/todo/pingback_support.mdwn +++ b/doc/todo/pingback_support.mdwn @@ -28,6 +28,9 @@ case I will consider this done with an entry in [[tips]]; otherwise a > would be subject to the usual comment filtering (ie, blogspam) and > moderation and would then show up amoung the other, regular comments on > the page. +> +> (One wrinkle: would need to guard against duplicate pings. Maybe by +> checking existing comments for any that have the same url?) > > As for sending trackbacks and pingbacks, this could fairly easily be > implemented using a `editcontent` hook. Since this hook is called -- cgit v1.2.3 From bc3fb1ceabf7f2139ce42e782e3f9d96e33dce0f Mon Sep 17 00:00:00 2001 From: "http://smcv.pseudorandom.co.uk/" <http://smcv.pseudorandom.co.uk/@web> Date: Tue, 3 Feb 2009 13:33:59 -0500 Subject: Update the to-do list for comments, and explain why we can't have a form for the whole comment --- doc/todo/comments.mdwn | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) (limited to 'doc') diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn index c74ded8f6..8da640f26 100644 --- a/doc/todo/comments.mdwn +++ b/doc/todo/comments.mdwn @@ -10,19 +10,13 @@ > it's hard enough to get some people to title their blog posts :-) > --[[smcv]] -## Patches pending merge - -* There is some common code cargo-culted from other plugins (notably inline and editpage) which - should probably be shared - - > Actually, there's less of this now than there used to be - a lot of simple - > things that were shared have become unshareable as they became more - > complex. --[[smcv]] - - > There's still goto. You have a branch for that. --[[Joey]] - ## Won't fix +* Because IkiWiki generates static HTML, we can't have a form inlined in + page.tmpl where the user fills in an entire comment and can submit it in + a single button-press, without being vulnerable to cross-site request forgery. + So I'll put this in as wontfix. --[[smcv]] + * It would be useful to have a pagespec that always matches all comments on pages matching a glob. Something like `comment(blog/*)`. Perhaps postcomment could also be folded into this? Then the pagespec @@ -47,6 +41,17 @@ ## Done +* There is some common code cargo-culted from other plugins (notably inline and editpage) which + should probably be shared + + > Actually, there's less of this now than there used to be - a lot of simple + > things that were shared have become unshareable as they became more + > complex. --[[smcv]] + + > There's still goto. You have a branch for that. --[[Joey]] + + >> Now merged --[[smcv]] + * The default template should have a (?) icon next to unauthenticated users (with the IP address as title) and an OpenID icon next to OpenIDs @@ -91,6 +96,7 @@ > and c42f174e fix another `beautify_urlpath` bug and add a regression test > --[[smcv]] + * Now that inline has some comments-specific functionality anyway, it would be good to output `<link rel="comments">` in Atom and the equivalent in RSS. -- cgit v1.2.3 From 1b3dbe0b91d7646096229fb531a3527df3b3587a Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Tue, 3 Feb 2009 13:51:10 -0500 Subject: not so fast --- doc/todo/comments.mdwn | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'doc') diff --git a/doc/todo/comments.mdwn b/doc/todo/comments.mdwn index 8da640f26..7a113bee3 100644 --- a/doc/todo/comments.mdwn +++ b/doc/todo/comments.mdwn @@ -17,6 +17,15 @@ a single button-press, without being vulnerable to cross-site request forgery. So I'll put this in as wontfix. --[[smcv]] + > Surely there's a way around that? + > A web 2.0 way comes to mind: The user clicks on a link + > to open the comment post form. While the nasty web 2.0 javascript :) + > is manipulating the page to add the form to it, it looks at the cookie + > and uses that to insert a sid field. + > + > Or, it could have a mandatory preview page and do the CSRF check then. + > --[[Joey]] + * It would be useful to have a pagespec that always matches all comments on pages matching a glob. Something like `comment(blog/*)`. Perhaps postcomment could also be folded into this? Then the pagespec -- cgit v1.2.3 From ed922c8e4f7e331d954eca1be812f6fe1dd3c3f2 Mon Sep 17 00:00:00 2001 From: "http://openid.aol.com/nothatsaknife" <http://openid.aol.com/nothatsaknife@web> Date: Tue, 3 Feb 2009 14:44:22 -0500 Subject: --- doc/sandbox.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/sandbox.mdwn b/doc/sandbox.mdwn index a39264e18..f684a0586 100644 --- a/doc/sandbox.mdwn +++ b/doc/sandbox.mdwn @@ -1,7 +1,7 @@ This is the [[SandBox]], a page anyone can edit to try out ikiwiki (version [[!version ]]). ---- -test +test more test [[中文显示]] Here's a paragraph. -- cgit v1.2.3 From aba2d83cc6c0273c30ae109b32c2ea404488116e Mon Sep 17 00:00:00 2001 From: "http://smcv.pseudorandom.co.uk/" <http://smcv.pseudorandom.co.uk/@web> Date: Tue, 3 Feb 2009 14:52:26 -0500 Subject: Report XML::Feed bug and provide a workaround for IkiWiki; please review --- .../Aggregated_Atom_feeds_are_double-encoded.mdwn | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 doc/bugs/Aggregated_Atom_feeds_are_double-encoded.mdwn (limited to 'doc') diff --git a/doc/bugs/Aggregated_Atom_feeds_are_double-encoded.mdwn b/doc/bugs/Aggregated_Atom_feeds_are_double-encoded.mdwn new file mode 100644 index 000000000..c2d9e17ef --- /dev/null +++ b/doc/bugs/Aggregated_Atom_feeds_are_double-encoded.mdwn @@ -0,0 +1,22 @@ +The Atom feed from <http://planet.collabora.co.uk/> +get "double-encoded" (UTF-8 is decoded as Latin-1 and re-encoded as +UTF-8) when aggregated with IkiWiki on Debian unstable. The RSS 1.0 +and RSS 2.0 feeds from the same Planet are fine. All three files +are in fact correct UTF-8, but IkiWiki mis-parses the Atom. + +This turns out to be a bug in XML::Feed, or (depending on your point +of view) XML::Feed failing to work around a design flaw in XML::Atom. +When parsing RSS it returns Unicode strings, but when parsing Atom +it delegates to XML::Atom's behaviour, which by default is to strip +the UTF8 flag from strings that it outputs; as a result, they're +interpreted by IkiWiki as byte sequences corresponding to the UTF-8 +encoding. IkiWiki then treats these as if they were Latin-1 and +encodes them into UTF-8 for output. + +I've filed a bug against XML::Feed on CPAN requesting that it sets +the right magical variable to change this behaviour. IkiWiki can +also apply the same workaround (and doing so should be harmless even +when XML::Feed is fixed); please consider merging my 'atom' branch, +which does so. --[[smcv]] + +[[!tag patch]] -- cgit v1.2.3 From cba0b67a19a0625f769915f6249f5139af7d907a Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Tue, 3 Feb 2009 15:05:18 -0500 Subject: Work around XML::Atom strangeness that results in double-encoded posts. (smcv) --- debian/changelog | 2 ++ doc/bugs/Aggregated_Atom_feeds_are_double-encoded.mdwn | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/debian/changelog b/debian/changelog index be32d3abf..d76dcce0f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,8 @@ ikiwiki (3.04) UNRELEASED; urgency=low engines where visiting a nonexistent page provides you with a link to create it. (smcv) * Factor out redundant code into goto plugin. (smcv) + * Work around XML::Atom strangeness that results in double-encoded posts. + (smcv) -- Joey Hess <joeyh@debian.org> Sat, 31 Jan 2009 19:04:45 -0500 diff --git a/doc/bugs/Aggregated_Atom_feeds_are_double-encoded.mdwn b/doc/bugs/Aggregated_Atom_feeds_are_double-encoded.mdwn index c2d9e17ef..fbdc58d5d 100644 --- a/doc/bugs/Aggregated_Atom_feeds_are_double-encoded.mdwn +++ b/doc/bugs/Aggregated_Atom_feeds_are_double-encoded.mdwn @@ -19,4 +19,4 @@ also apply the same workaround (and doing so should be harmless even when XML::Feed is fixed); please consider merging my 'atom' branch, which does so. --[[smcv]] -[[!tag patch]] +[[!tag patch done]] -- cgit v1.2.3 From 7c63da6c024b624ef6e5428032531dd2358080f9 Mon Sep 17 00:00:00 2001 From: "http://josephturian.blogspot.com/" <http://josephturian.blogspot.com/@web> Date: Tue, 3 Feb 2009 18:19:38 -0500 Subject: --- doc/bugs/INC_location_not_set_correctly_in_make_test.mdwn | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 doc/bugs/INC_location_not_set_correctly_in_make_test.mdwn (limited to 'doc') diff --git a/doc/bugs/INC_location_not_set_correctly_in_make_test.mdwn b/doc/bugs/INC_location_not_set_correctly_in_make_test.mdwn new file mode 100644 index 000000000..de03aac48 --- /dev/null +++ b/doc/bugs/INC_location_not_set_correctly_in_make_test.mdwn @@ -0,0 +1,12 @@ +'make test' has the following errors: + +Can't locate Locale/gettext.pm in @INC (@INC contains: /home/turian/utils//lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /home/turian/utils//lib/perl5/site_perl/5.8.8 . /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8) at (eval 254) line 2. + +What's weird is that I already have gettext.pm: + /home/turian/utils/lib/perl5/lib/i386-linux-thread-multi/Locale/gettext.pm + +That directory should be part of @INC, because I have: + export PERL5LIB="$PERL5LIB:$UTILS/lib/perl5/lib/i386-linux-thread-multi/" +in my .bashrc. However, /home/turian/utils/lib/perl5/lib/i386-linux-thread-multi/ does not appear in that @INC line. + +How do I get the proper @INC locations set? -- cgit v1.2.3 From 7bf1207c07c12623f6afc791bf33037b92477c93 Mon Sep 17 00:00:00 2001 From: bremner <bremner@web> Date: Wed, 4 Feb 2009 07:50:53 -0500 Subject: --- doc/plugins/contrib/sourcehighlight.mdwn | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'doc') diff --git a/doc/plugins/contrib/sourcehighlight.mdwn b/doc/plugins/contrib/sourcehighlight.mdwn index fb368945b..ac80f015c 100644 --- a/doc/plugins/contrib/sourcehighlight.mdwn +++ b/doc/plugins/contrib/sourcehighlight.mdwn @@ -12,11 +12,6 @@ highlight - I would like to have a link to the raw source; using will_render() and then copying the file should work. -- the common case of foo.c and foo.h breaks -because they both generate page working/dir/foo. -It looks to me like ikiwiki is hardcoded to strip the extension in `pagename()` (IkiWiki.pm). -This problem with sourcehighlight needs to be fixed before it is very useful. - - Is there a way to configure the colors used by source-highlight (other than editing the globally installed "default.style" file)? It would help if I could pass the command arbitrary command-line arguments; then I could configure which config file it's supposed to use. For instance, I'm not a fan of hard-coding the colors into the HTML output. IMHO, css-style formatting should be preferred. All that can be set via the command line ... --Peter > I don't really have time right now, but it should be easy to add, if you look at how src-lang is handled. Patches are welcome :-) --[[DavidBremner]] @@ -25,3 +20,5 @@ Note that [[Will]] wrote a plugin that uses source-highlight also. It's available [here|todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion]]. --[[Joey]] + +*Updated* Now uses keepextension so multiple extensions should be OK -- cgit v1.2.3 From 80f2edffc0283d1e6074d9a18676795d35e6f4e1 Mon Sep 17 00:00:00 2001 From: bremner <bremner@web> Date: Wed, 4 Feb 2009 07:56:04 -0500 Subject: fix joeyh's link :-) --- doc/plugins/contrib/sourcehighlight.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/plugins/contrib/sourcehighlight.mdwn b/doc/plugins/contrib/sourcehighlight.mdwn index ac80f015c..83ef879d7 100644 --- a/doc/plugins/contrib/sourcehighlight.mdwn +++ b/doc/plugins/contrib/sourcehighlight.mdwn @@ -18,7 +18,7 @@ highlight Note that [[Will]] wrote a plugin that uses source-highlight also. It's available -[here|todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion]]. +[[here|todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion]]. --[[Joey]] *Updated* Now uses keepextension so multiple extensions should be OK -- cgit v1.2.3 From d2842c126b199daece1839a6856b369123ef94d1 Mon Sep 17 00:00:00 2001 From: bremner <bremner@web> Date: Wed, 4 Feb 2009 08:03:13 -0500 Subject: note possible abandonment of sourcehighlight in favour of sourcecode --- doc/plugins/contrib/sourcehighlight.mdwn | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'doc') diff --git a/doc/plugins/contrib/sourcehighlight.mdwn b/doc/plugins/contrib/sourcehighlight.mdwn index 83ef879d7..df480f325 100644 --- a/doc/plugins/contrib/sourcehighlight.mdwn +++ b/doc/plugins/contrib/sourcehighlight.mdwn @@ -21,4 +21,8 @@ available [[here|todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion]]. --[[Joey]] +To be honest, [[Will]]'s version of this looks more polished. I will try his +plugin and see if it can just replace mine. --[[DavidBremner]] + + *Updated* Now uses keepextension so multiple extensions should be OK -- cgit v1.2.3 From 73e18318a533c7915ab04806879aa7f7607c3516 Mon Sep 17 00:00:00 2001 From: "http://tskirvin.livejournal.com/" <http://tskirvin.livejournal.com/@web> Date: Wed, 4 Feb 2009 13:30:44 -0500 Subject: Added Tim Skirvin's webpage to the list --- doc/ikiwikiusers.mdwn | 1 + 1 file changed, 1 insertion(+) (limited to 'doc') diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn index 989a425c6..b1847d822 100644 --- a/doc/ikiwikiusers.mdwn +++ b/doc/ikiwikiusers.mdwn @@ -44,6 +44,7 @@ Projects Personal sites and blogs ======================== +* [Skirv's Wiki](http://wiki.killfile.org) - formerly Skirv's Homepage * [[Joey]]'s [homepage](http://kitenet.net/~joey/), including his weblog * [Kyle's MacLea Genealogy wiki](http://kitenet.net/~kyle/family/wiki) and [Livingstone and MacLea Emigration Registry](http://kitenet.net/~kyle/family/registry) * [Ulrik's personal web page](http://kaizer.se/wiki/) -- cgit v1.2.3 From 6655fbb991051d2af8965bfcc0d899a25b7e478f Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Wed, 4 Feb 2009 13:57:26 -0500 Subject: local configuration error. --- doc/bugs/INC_location_not_set_correctly_in_make_test.mdwn | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'doc') diff --git a/doc/bugs/INC_location_not_set_correctly_in_make_test.mdwn b/doc/bugs/INC_location_not_set_correctly_in_make_test.mdwn index de03aac48..1d396c85b 100644 --- a/doc/bugs/INC_location_not_set_correctly_in_make_test.mdwn +++ b/doc/bugs/INC_location_not_set_correctly_in_make_test.mdwn @@ -10,3 +10,15 @@ That directory should be part of @INC, because I have: in my .bashrc. However, /home/turian/utils/lib/perl5/lib/i386-linux-thread-multi/ does not appear in that @INC line. How do I get the proper @INC locations set? + +> Nothing in ikiwiki touches whatever PERL5DIR setting you may have, +> so AFAICS, this must be some sort of local configuration problem. +> How do +> `/home/turian/utils//lib/perl5/site_perl/5.8.8/i386-linux-thread-multi` +> and `/home/turian/utils//lib/perl5/site_perl/5.8.8` get into the +> displayed `@INC`? The likely way seems to be that something in your +> system sets PERL5LIB to contain those directories, clobbering +> the earlier setting in your `.bashrc`. +> --[[Joey]] + +[[!tag done]] -- cgit v1.2.3 From f905707b3edc21c09a3336b529eb9485fb0f8feb Mon Sep 17 00:00:00 2001 From: Svend Sorensen <svend@ciffer.net> Date: Wed, 4 Feb 2009 11:07:10 -0800 Subject: Add link to my website and blog --- doc/ikiwikiusers.mdwn | 1 + 1 file changed, 1 insertion(+) (limited to 'doc') diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn index b1847d822..7ce4c3895 100644 --- a/doc/ikiwikiusers.mdwn +++ b/doc/ikiwikiusers.mdwn @@ -108,6 +108,7 @@ Personal sites and blogs * [[Adam_Trickett|ajt]]'s home intranet/sanbox system ([Internet site & blog](http://www.iredale.net/) -- not ikiwiki yet) * [[Simon_McVittie|smcv]]'s [website](http://www.pseudorandom.co.uk/) and [blog](http://smcv.pseudorandom.co.uk/) +* Svend's [website](http://www.ciffer.net/~svend/) and [blog](http://www.ciffer.net/~svend/blog/) Schools ======= -- cgit v1.2.3 From 6ebb84c234f6721b62f8777349a9fa0f2c393bcb Mon Sep 17 00:00:00 2001 From: Svend Sorensen <svend@ciffer.net> Date: Wed, 4 Feb 2009 11:13:36 -0800 Subject: Add myself to ikiwiki user list --- doc/users/svend.mdwn | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 doc/users/svend.mdwn (limited to 'doc') diff --git a/doc/users/svend.mdwn b/doc/users/svend.mdwn new file mode 100644 index 000000000..69d83584f --- /dev/null +++ b/doc/users/svend.mdwn @@ -0,0 +1,4 @@ +[[!meta title="Svend Sorensen"]] + +* [website](http://www.ciffer.net/~svend/) +* [blog](http://www.ciffer.net/~svend/blog/) -- cgit v1.2.3 From 9640681c27c4f4353f56d544bcdd8f9ac7abb98a Mon Sep 17 00:00:00 2001 From: bremner <bremner@web> Date: Thu, 5 Feb 2009 08:03:19 -0500 Subject: add "bug report" for sourcecode plugin --- .../discussion.mdwn | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'doc') diff --git a/doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn b/doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn index dc6c0001e..59c1a245b 100644 --- a/doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn +++ b/doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn @@ -4,6 +4,19 @@ Updated to use fix noted in [[bugs/multiple_pages_with_same_name]]. -- [[Will]] +---- +I was trying to replace sourcehighlight with sourcecode. I had to modify the +htmlize call slightly so that it would work in a format directive. +([modified version](http://pivot.cs.unb.ca/git/?p=ikiplugins.git;a=blob_plain;f=IkiWiki/Plugin/sourcecode.pm;hb=21fc57091edb9)) +I hit a wall the following example (the last commit in the above repo). + + \[[!meta title="Solutions to assignment 1"]] + + - [[!format cc """ + test + """]] + + ---- #!/usr/bin/perl -- cgit v1.2.3 From edc9d462d06d4622dd3c49996bd455cae23a985e Mon Sep 17 00:00:00 2001 From: "68.251.214.66" <68.251.214.66@web> Date: Thu, 5 Feb 2009 09:22:34 -0500 Subject: poll vote (Accept only OpenID for logins) --- doc/news/openid.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/news/openid.mdwn b/doc/news/openid.mdwn index ad76606aa..45414142c 100644 --- a/doc/news/openid.mdwn +++ b/doc/news/openid.mdwn @@ -10,4 +10,4 @@ log back in, try out the OpenID signup process if you don't already have an OpenID, and see how OpenID works for you. And let me know your feelings about making such a switch. --[[Joey]] -[[!poll 59 "Accept only OpenID for logins" 18 "Accept only password logins" 35 "Accept both"]] +[[!poll 60 "Accept only OpenID for logins" 18 "Accept only password logins" 35 "Accept both"]] -- cgit v1.2.3 From ba2b9139396abe573db43ee65e0b3ae3338aab88 Mon Sep 17 00:00:00 2001 From: Svend Sorensen <svend@ciffer.net> Date: Thu, 5 Feb 2009 11:55:34 -0800 Subject: Add tabbed action list style to css market --- doc/css_market.mdwn | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'doc') diff --git a/doc/css_market.mdwn b/doc/css_market.mdwn index 26720196f..5874e0901 100644 --- a/doc/css_market.mdwn +++ b/doc/css_market.mdwn @@ -51,6 +51,10 @@ files..) * **[contraste.css][4]**, contributed by [[Blanko]]. Can be seen on [Contraste Demo][5]. Local.css and templates available [here][6]. +* **[[actiontabs.css]]**, contributed by [[svend]]. This style sheet displays + the action list (Edit, RecentChanges, etc.) as tabs. + [[!meta stylesheet="actiontabs"]] + If your web browser allows selecting between multiple stylesheets, this page can be viewed using many of the stylesheets above. For example, if using Epiphany with the Select Stylesheet extension enabled, use View -> -- cgit v1.2.3 From b9f3c6d7c968f1583870d8b7afc999500bbfb605 Mon Sep 17 00:00:00 2001 From: "http://svend.myopenid.com/" <http://svend.myopenid.com/@web> Date: Thu, 5 Feb 2009 15:01:44 -0500 Subject: Set attachement location --- doc/css_market.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/css_market.mdwn b/doc/css_market.mdwn index 5874e0901..8773b10fd 100644 --- a/doc/css_market.mdwn +++ b/doc/css_market.mdwn @@ -51,7 +51,7 @@ files..) * **[contraste.css][4]**, contributed by [[Blanko]]. Can be seen on [Contraste Demo][5]. Local.css and templates available [here][6]. -* **[[actiontabs.css]]**, contributed by [[svend]]. This style sheet displays +* **[[css_market/actiontabs.css]]**, contributed by [[svend]]. This style sheet displays the action list (Edit, RecentChanges, etc.) as tabs. [[!meta stylesheet="actiontabs"]] -- cgit v1.2.3 From c89d331d36c0b70d084b93f0bf2e03e6c7ee44d9 Mon Sep 17 00:00:00 2001 From: "http://svend.myopenid.com/" <http://svend.myopenid.com/@web> Date: Thu, 5 Feb 2009 15:09:24 -0500 Subject: Upload tabbed action list css file --- doc/css_market/actiontabs.css.mdwn | 122 +++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 doc/css_market/actiontabs.css.mdwn (limited to 'doc') diff --git a/doc/css_market/actiontabs.css.mdwn b/doc/css_market/actiontabs.css.mdwn new file mode 100644 index 000000000..a1dc47e92 --- /dev/null +++ b/doc/css_market/actiontabs.css.mdwn @@ -0,0 +1,122 @@ +/* ikiwiki local style sheet */ + +/* Add local styling here, instead of modifying style.css. */ + +a { + text-decoration: none; + color: #005a9c; +} + +a:hover { + text-decoration: underline; +} + + +hr { + border-style: none; + background-color: #999; + height: 1px; +} + +code, pre { + background: #eee; +} + +pre { + padding: .5em; +} + +body { + margin: 0; + padding: 0; + font-family: sans-serif; + color: black; + background: white; +} + +.pageheader { + margin: 0; + padding: 1em 2em 0 2em; + background: #eee; + border-color: #999; + border-style: none none solid none; + border-width: 1px; +} + +.header { + font-size: 100%; + font-weight: normal; +} + +.title { + display: block; + margin-top: .2em; + font: 140% sans-serif; + text-transform: capitalize; +} + +.actions { + text-align: right; + padding: 0; +} + +#content, #comments, #footer { + margin: 1em 2em; +} + +#pageinfo { + border-color: #999; +} + +.inlinepage { + margin: .4em 0; + padding: .4em 0; + border-style: none; + border-top: 1px solid #aaa; +} + +.inlineheader { + font-size: 120%; + font-weight: normal; +} + +h1 { font: 120% sans-serif } +h2 { font: bold 100% sans-serif } +h3 { font: italic 100% sans-serif } +h4, h5, h6 { font: small-caps 100% sans-serif } + +/* Smaller headings for inline pages */ +.inlinepage h1 { font-size: 110% } +.inlinepage h2 { font-size: 100% } +.inlinepage h3 { font-size: 100% } + +.pageheader .actions ul { + border-style: none +} + +.actions ul { + font-size: 75%; + padding: 0; + border-style: none; +} + +.actions ul li a { + text-decoration: none; +} + +.actions ul li { + margin: 0; + padding: .1em .5em 0 .5em; + background: white; + border-color: #999; + border-style: solid solid none solid; + border-width: 1px; +} + +div.recentchanges { + border-style: none; +} + +.pagecloud { + width: auto; +} -- cgit v1.2.3 From 217e925a3a480b8cc90a9d9943a5ee0946dd2d1d Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Thu, 5 Feb 2009 15:13:22 -0500 Subject: rename --- doc/css_market/actiontabs.css | 122 +++++++++++++++++++++++++++++++++++++ doc/css_market/actiontabs.css.mdwn | 122 ------------------------------------- 2 files changed, 122 insertions(+), 122 deletions(-) create mode 100644 doc/css_market/actiontabs.css delete mode 100644 doc/css_market/actiontabs.css.mdwn (limited to 'doc') diff --git a/doc/css_market/actiontabs.css b/doc/css_market/actiontabs.css new file mode 100644 index 000000000..a1dc47e92 --- /dev/null +++ b/doc/css_market/actiontabs.css @@ -0,0 +1,122 @@ +/* ikiwiki local style sheet */ + +/* Add local styling here, instead of modifying style.css. */ + +a { + text-decoration: none; + color: #005a9c; +} + +a:hover { + text-decoration: underline; +} + + +hr { + border-style: none; + background-color: #999; + height: 1px; +} + +code, pre { + background: #eee; +} + +pre { + padding: .5em; +} + +body { + margin: 0; + padding: 0; + font-family: sans-serif; + color: black; + background: white; +} + +.pageheader { + margin: 0; + padding: 1em 2em 0 2em; + background: #eee; + border-color: #999; + border-style: none none solid none; + border-width: 1px; +} + +.header { + font-size: 100%; + font-weight: normal; +} + +.title { + display: block; + margin-top: .2em; + font: 140% sans-serif; + text-transform: capitalize; +} + +.actions { + text-align: right; + padding: 0; +} + +#content, #comments, #footer { + margin: 1em 2em; +} + +#pageinfo { + border-color: #999; +} + +.inlinepage { + margin: .4em 0; + padding: .4em 0; + border-style: none; + border-top: 1px solid #aaa; +} + +.inlineheader { + font-size: 120%; + font-weight: normal; +} + +h1 { font: 120% sans-serif } +h2 { font: bold 100% sans-serif } +h3 { font: italic 100% sans-serif } +h4, h5, h6 { font: small-caps 100% sans-serif } + +/* Smaller headings for inline pages */ +.inlinepage h1 { font-size: 110% } +.inlinepage h2 { font-size: 100% } +.inlinepage h3 { font-size: 100% } + +.pageheader .actions ul { + border-style: none +} + +.actions ul { + font-size: 75%; + padding: 0; + border-style: none; +} + +.actions ul li a { + text-decoration: none; +} + +.actions ul li { + margin: 0; + padding: .1em .5em 0 .5em; + background: white; + border-color: #999; + border-style: solid solid none solid; + border-width: 1px; +} + +div.recentchanges { + border-style: none; +} + +.pagecloud { + width: auto; +} diff --git a/doc/css_market/actiontabs.css.mdwn b/doc/css_market/actiontabs.css.mdwn deleted file mode 100644 index a1dc47e92..000000000 --- a/doc/css_market/actiontabs.css.mdwn +++ /dev/null @@ -1,122 +0,0 @@ -/* ikiwiki local style sheet */ - -/* Add local styling here, instead of modifying style.css. */ - -a { - text-decoration: none; - color: #005a9c; -} - -a:hover { - text-decoration: underline; -} - - -hr { - border-style: none; - background-color: #999; - height: 1px; -} - -code, pre { - background: #eee; -} - -pre { - padding: .5em; -} - -body { - margin: 0; - padding: 0; - font-family: sans-serif; - color: black; - background: white; -} - -.pageheader { - margin: 0; - padding: 1em 2em 0 2em; - background: #eee; - border-color: #999; - border-style: none none solid none; - border-width: 1px; -} - -.header { - font-size: 100%; - font-weight: normal; -} - -.title { - display: block; - margin-top: .2em; - font: 140% sans-serif; - text-transform: capitalize; -} - -.actions { - text-align: right; - padding: 0; -} - -#content, #comments, #footer { - margin: 1em 2em; -} - -#pageinfo { - border-color: #999; -} - -.inlinepage { - margin: .4em 0; - padding: .4em 0; - border-style: none; - border-top: 1px solid #aaa; -} - -.inlineheader { - font-size: 120%; - font-weight: normal; -} - -h1 { font: 120% sans-serif } -h2 { font: bold 100% sans-serif } -h3 { font: italic 100% sans-serif } -h4, h5, h6 { font: small-caps 100% sans-serif } - -/* Smaller headings for inline pages */ -.inlinepage h1 { font-size: 110% } -.inlinepage h2 { font-size: 100% } -.inlinepage h3 { font-size: 100% } - -.pageheader .actions ul { - border-style: none -} - -.actions ul { - font-size: 75%; - padding: 0; - border-style: none; -} - -.actions ul li a { - text-decoration: none; -} - -.actions ul li { - margin: 0; - padding: .1em .5em 0 .5em; - background: white; - border-color: #999; - border-style: solid solid none solid; - border-width: 1px; -} - -div.recentchanges { - border-style: none; -} - -.pagecloud { - width: auto; -} -- cgit v1.2.3 From 8b5f2da2ea4a988a1046f242d927713470436927 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Thu, 5 Feb 2009 15:22:52 -0500 Subject: add a note about how to install these --- doc/css_market.mdwn | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'doc') diff --git a/doc/css_market.mdwn b/doc/css_market.mdwn index 8773b10fd..8b7e17585 100644 --- a/doc/css_market.mdwn +++ b/doc/css_market.mdwn @@ -1,8 +1,11 @@ [[!meta title="CSS Market"]] -User contributed stylesheet files for ikiwiki. Feel free to add your own -stylesheets here. (Upload as wiki pages; wiki gnomes will convert them to css -files..) +User contributed stylesheet files for ikiwiki. Unless otherwise noted, +these style sheets can be installed by copying them into your wiki's source +dir with a filename of `local.css`. + +Feel free to add your own stylesheets here. (Upload as wiki pages; wiki +gnomes will convert them to css files..) * **[[css_market/zack.css]]**, contributed by [[StefanoZacchiroli]], customized mostly for *blogging purposes*, can be seen in action on -- cgit v1.2.3 From 971df8889b46f314afb6d4e2e052c8ee7738b756 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Thu, 5 Feb 2009 15:31:37 -0500 Subject: note about path --- doc/plugins/404.mdwn | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/plugins/404.mdwn b/doc/plugins/404.mdwn index 8d36279c8..8a7ccd7d6 100644 --- a/doc/plugins/404.mdwn +++ b/doc/plugins/404.mdwn @@ -8,4 +8,7 @@ nonexistent page provides you with a link to create it. To achieve this, put something like this in the wiki's Apache configuration file: - ErrorDocument 404 /cgi-bin/ikiwiki.cgi + ErrorDocument 404 /ikiwiki.cgi + +(The path here needs to be whatever the path is to the ikiwiki.cgi from +the root of your web server.) -- cgit v1.2.3 From 3dd796e6377d20cd3ecd63ee486aa4933fa1baee Mon Sep 17 00:00:00 2001 From: Svend Sorensen <svend@ciffer.net> Date: Thu, 5 Feb 2009 13:03:32 -0800 Subject: Add wishlist --- doc/todo/RecentChanges_page_links_without_cgi_wrapper.mdwn | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 doc/todo/RecentChanges_page_links_without_cgi_wrapper.mdwn (limited to 'doc') diff --git a/doc/todo/RecentChanges_page_links_without_cgi_wrapper.mdwn b/doc/todo/RecentChanges_page_links_without_cgi_wrapper.mdwn new file mode 100644 index 000000000..164d12f12 --- /dev/null +++ b/doc/todo/RecentChanges_page_links_without_cgi_wrapper.mdwn @@ -0,0 +1,5 @@ +Links to the changed page on RecentChanges only show up if the cgi wrapper is +enabled. It would be nice if links were also generated on wikis that do not use +the cgi. [[svend]] + +[[!tag wishlist]] -- cgit v1.2.3 From c8ca79a403bbab14fe19b01b8a2526f187a9abc6 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Thu, 5 Feb 2009 16:10:30 -0500 Subject: response --- ...ecentChanges_page_links_without_cgi_wrapper.mdwn | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'doc') diff --git a/doc/todo/RecentChanges_page_links_without_cgi_wrapper.mdwn b/doc/todo/RecentChanges_page_links_without_cgi_wrapper.mdwn index 164d12f12..b37109032 100644 --- a/doc/todo/RecentChanges_page_links_without_cgi_wrapper.mdwn +++ b/doc/todo/RecentChanges_page_links_without_cgi_wrapper.mdwn @@ -2,4 +2,25 @@ Links to the changed page on RecentChanges only show up if the cgi wrapper is enabled. It would be nice if links were also generated on wikis that do not use the cgi. [[svend]] +> It would be, but doing so would make updating the recentchanges page for +> each commit a lot slower, or would result in there often being broken +> links there. +> +> The broken links would happen if a page is removed. +> +> The speed issue is that currently each individual change in the +> recentchanges page is built just once, when the change is made, and the +> html for it is reused thereafter. To avoid broken links, it would need to +> regenerate each change's html on each commit. That's 100x the overhead. +> (Perhaps it's possible to be smarter about which need generation tho.) +> +> The best way to approach this that I can see ATM is to use the +> [[plugins/404]] plugin to handle the broken links and then recentchanges +> could avoid explicitly using the CGI. But this doesn't meet your use case +> of having no CGI. +> +> If you're willing to live with broken links to removed pages, I suppose +> that could be made an option.. +> --[[Joey]] + [[!tag wishlist]] -- cgit v1.2.3 From af5758049140265b22c17375ee195f6dcfbffa7b Mon Sep 17 00:00:00 2001 From: "http://taozhyn.myopenid.com/" <http://taozhyn.myopenid.com/@web> Date: Fri, 6 Feb 2009 14:36:04 -0500 Subject: --- doc/plugins/tag/discussion.mdwn | 97 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) (limited to 'doc') diff --git a/doc/plugins/tag/discussion.mdwn b/doc/plugins/tag/discussion.mdwn index 7e7b88bc5..e478ec564 100644 --- a/doc/plugins/tag/discussion.mdwn +++ b/doc/plugins/tag/discussion.mdwn @@ -22,3 +22,100 @@ AOLMODE=true echo "I too would really like this feature, which would make cgi fr better" --[[DavidBremner]] Please make the actual text used a template some way or another. I may want `map` instead of `inline`. --[[madduck]] + +--- + +I have create a patch to tag.pm for add the option for auto create tag pages. +A new setting is used to enable or disable auto-create tag pages, `tag_autocreate`. +The new tag file is created during the preprocess phase. +The new tag file is then complied during the change phase. + + --- tag.pm 2009-02-06 10:26:03.000000000 -0700 + +++ tag_new.pm 2009-02-06 12:17:19.000000000 -0700 + @@ -14,6 +14,7 @@ + hook(type => "preprocess", id => "tag", call => \&preprocess_tag, scan => 1); + hook(type => "preprocess", id => "taglink", call => \&preprocess_taglink, scan => 1); + hook(type => "pagetemplate", id => "tag", call => \&pagetemplate); + + hook(type => "change", id => "tag", call => \&change); + } + + sub getopt () { + @@ -36,6 +37,36 @@ + safe => 1, + rebuild => 1, + }, + + tag_autocreate => { + + type => "boolean", + + example => 0, + + description => "Auto-create the new tag pages, uses autotagpage.tmpl ", + + safe => 1, + + rebulid => 1, + + }, + +} + + + +my $autocreated_page = 0; + + + +sub gen_tag_page($) { + + my $tag=shift; + + + + my $tag_file=$tag.'.'.$config{default_pageext}; + + return if (-f $config{srcdir}.$tag_file); + + + + my $template=template("autotagpage.tmpl"); + + $template->param(tag => $tag); + + writefile($tag_file, $config{srcdir}, $template->output); + + $autocreated_page = 1; + + + + if ($config{rcs}) { + + IkiWiki::disable_commit_hook(); + + IkiWiki::rcs_add($tag_file); + + IkiWiki::rcs_commit_staged( + + gettext("Automatic tag page generation"), + + undef, undef); + + IkiWiki::enable_commit_hook(); + + } + } + + sub tagpage ($) { + @@ -47,6 +78,10 @@ + $tag=~y#/#/#s; # squash dups + } + + + if (defined $config{tag_autocreate} && $config{tag_autocreate} ) { + + gen_tag_page($tag); + + } + + + return $tag; + } + + @@ -125,4 +160,18 @@ + } + } + + +sub change(@) { + + return unless($autocreated_page); + + $autocreated_page = 0; + + + + # This refresh/saveindex is to complie the autocreated tag pages + + IkiWiki::refresh(); + + IkiWiki::saveindex(); + + + + # This refresh/saveindex is to fix the Tags link + + # With out this additional refresh/saveindex the tag link displays ?tag + + IkiWiki::refresh(); + + IkiWiki::saveindex(); + +} + + + + +This uses a template called `autotagpage.tmpl`, here is my template file: + + \[[!inline pages="link(<TMPL_VAR TAG>)" archive="yes"]] + + +A quirk I have not figured out is during the `sub change`, see my comments in the code. +I am not sure if that is the best way to handle it. + +[[!tag patch]] +-- Jeremy Schultz <jeremy.schultz@uleth.ca> + -- cgit v1.2.3 From fd94834c72f0682001603d01dda659ea4a4d8792 Mon Sep 17 00:00:00 2001 From: cfm <cfm@web> Date: Fri, 6 Feb 2009 20:08:47 -0500 Subject: Filed. --- doc/bugs/PNG_triggers_UTF-8_error_in_MimeInfo.pm.mdwn | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 doc/bugs/PNG_triggers_UTF-8_error_in_MimeInfo.pm.mdwn (limited to 'doc') diff --git a/doc/bugs/PNG_triggers_UTF-8_error_in_MimeInfo.pm.mdwn b/doc/bugs/PNG_triggers_UTF-8_error_in_MimeInfo.pm.mdwn new file mode 100644 index 000000000..e9aba88cc --- /dev/null +++ b/doc/bugs/PNG_triggers_UTF-8_error_in_MimeInfo.pm.mdwn @@ -0,0 +1,5 @@ +When including a PNG image in a blog, [[ikiwiki/directive/inline]] directives throw an error: + +> \[[!inline Error: Malformed UTF-8 character (fatal) at /usr/local/lib/perl5/site_perl/5.8.8/File/MimeInfo.pm line 120.]] + +Individual posts display fine. -- cgit v1.2.3 From f444d1206a75e597f65092e12dfbb061caa34ebd Mon Sep 17 00:00:00 2001 From: "http://www.cse.unsw.edu.au/~willu/" <http://www.cse.unsw.edu.au/~willu/@web> Date: Sat, 7 Feb 2009 05:47:32 -0500 Subject: Note todo with patch attached to solve listed problem --- doc/plugins/contrib/sourcehighlight.mdwn | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/plugins/contrib/sourcehighlight.mdwn b/doc/plugins/contrib/sourcehighlight.mdwn index df480f325..07ac2086f 100644 --- a/doc/plugins/contrib/sourcehighlight.mdwn +++ b/doc/plugins/contrib/sourcehighlight.mdwn @@ -10,7 +10,9 @@ where foo and bar are the (source-supported) languages you want to highlight ### Issues -- I would like to have a link to the raw source; using will_render() and then copying the file should work. +- I would like to have a link to the raw source; using will_render() and then copying the file should work. + +> You might also like to look at the [[todo/source_link]] todo. -- [[Will]] - Is there a way to configure the colors used by source-highlight (other than editing the globally installed "default.style" file)? It would help if I could pass the command arbitrary command-line arguments; then I could configure which config file it's supposed to use. For instance, I'm not a fan of hard-coding the colors into the HTML output. IMHO, css-style formatting should be preferred. All that can be set via the command line ... --Peter -- cgit v1.2.3 From 9ad4065633a7ecab8c9b62edb0d0e3f5cd3813e0 Mon Sep 17 00:00:00 2001 From: "http://www.cse.unsw.edu.au/~willu/" <http://www.cse.unsw.edu.au/~willu/@web> Date: Sat, 7 Feb 2009 05:56:18 -0500 Subject: Ask for more detail with issue --- .../discussion.mdwn | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'doc') diff --git a/doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn b/doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn index 59c1a245b..a998afa77 100644 --- a/doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn +++ b/doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn @@ -8,6 +8,9 @@ Updated to use fix noted in [[bugs/multiple_pages_with_same_name]]. I was trying to replace sourcehighlight with sourcecode. I had to modify the htmlize call slightly so that it would work in a format directive. ([modified version](http://pivot.cs.unb.ca/git/?p=ikiplugins.git;a=blob_plain;f=IkiWiki/Plugin/sourcecode.pm;hb=21fc57091edb9)) + +> I haven't tested them, but those changes look sensible to me. -- [[Will]] + I hit a wall the following example (the last commit in the above repo). \[[!meta title="Solutions to assignment 1"]] @@ -17,6 +20,9 @@ I hit a wall the following example (the last commit in the above repo). """]] +> I haven't actually tested this to see what the problem is. How does this fail? +> Does source-highlight barf on the non-c++ content? Is there a wiki URL that shows the failure? -- [[Will]] + ---- #!/usr/bin/perl -- cgit v1.2.3 From f8d24df4c40dc958649aafeb6646d876f290dbb7 Mon Sep 17 00:00:00 2001 From: "http://jcftang.myopenid.com/" <http://jcftang.myopenid.com/@web> Date: Sat, 7 Feb 2009 06:11:37 -0500 Subject: --- doc/ikiwikiusers.mdwn | 1 + 1 file changed, 1 insertion(+) (limited to 'doc') diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn index 7ce4c3895..7003294a9 100644 --- a/doc/ikiwikiusers.mdwn +++ b/doc/ikiwikiusers.mdwn @@ -40,6 +40,7 @@ Projects * [The Walden Effect](http://www.waldeneffect.org/) * The [Fortran Wiki](http://fortranwiki.org/) * [Monotone](http://monotone.ca/wiki/FrontPage/) +* The support pages for [Trinity Centre for High Performance Computing](http://www.tchpc.tcd.ie/support/) Personal sites and blogs ======================== -- cgit v1.2.3 From 3aab99fae5f7681154a35a3e75d8e225424e2d8b Mon Sep 17 00:00:00 2001 From: "http://weakish.int.eu.org/" <http://weakish.int.eu.org/@web> Date: Sat, 7 Feb 2009 14:19:28 -0500 Subject: --post-commit won't delete pages and --refresh seems no deadlock --- doc/todo/mercurial.mdwn | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'doc') diff --git a/doc/todo/mercurial.mdwn b/doc/todo/mercurial.mdwn index f0dbf9806..c0af10719 100644 --- a/doc/todo/mercurial.mdwn +++ b/doc/todo/mercurial.mdwn @@ -29,6 +29,25 @@ This should update the working directory and run ikiwiki every time a change is > It can deadlock if the post-commit hook runs with --refresh in the > former case. --[[Joey]] +The problem with --post-commit is that if you delete some pages in $SRC, ikiwiki --setup setupfile --post-commit will not delete them in $DEST. + +I add the following to .hg/hgrc: + + [hooks] + changegroup = hg update >&2 && ikiwiki --setup path.to.setup.file --refresh + post-commit = ikiwiki --setup path.to.setup.file --refresh + +I tried the follwing commands in $SRC: + + touch deadlocktest.mdwn + hg add + hg ci + +No deadlock happens. (Also I push to the $SRC from another machine, again, no deadlock.) + +Of course these tests are too simple. The problem is I have no idea when the deadlock will happen. If someone is kind enough to point out, I will run more test. + + *** I have a few notes on mercurial usage after trying it out for a while: -- cgit v1.2.3 From 2cc6a07f5492912f35d103bcc57753f21ee09ecf Mon Sep 17 00:00:00 2001 From: "http://weakish.int.eu.org/" <http://weakish.int.eu.org/@web> Date: Sat, 7 Feb 2009 14:22:01 -0500 Subject: (tiny) markdown syntax --- doc/todo/mercurial.mdwn | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'doc') diff --git a/doc/todo/mercurial.mdwn b/doc/todo/mercurial.mdwn index c0af10719..26888131e 100644 --- a/doc/todo/mercurial.mdwn +++ b/doc/todo/mercurial.mdwn @@ -33,15 +33,15 @@ The problem with --post-commit is that if you delete some pages in $SRC, ikiwiki I add the following to .hg/hgrc: - [hooks] - changegroup = hg update >&2 && ikiwiki --setup path.to.setup.file --refresh - post-commit = ikiwiki --setup path.to.setup.file --refresh + [hooks] + changegroup = hg update >&2 && ikiwiki --setup path.to.setup.file --refresh + post-commit = ikiwiki --setup path.to.setup.file --refresh I tried the follwing commands in $SRC: - touch deadlocktest.mdwn - hg add - hg ci + touch deadlocktest.mdwn + hg add + hg ci No deadlock happens. (Also I push to the $SRC from another machine, again, no deadlock.) -- cgit v1.2.3 From dc0409b4a717da9926e618341cbd96ab1c4cb763 Mon Sep 17 00:00:00 2001 From: "http://weakish.int.eu.org/" <http://weakish.int.eu.org/@web> Date: Sat, 7 Feb 2009 14:49:06 -0500 Subject: I guess changegroup is better than incoming --- doc/todo/mercurial.mdwn | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'doc') diff --git a/doc/todo/mercurial.mdwn b/doc/todo/mercurial.mdwn index 26888131e..9635b6880 100644 --- a/doc/todo/mercurial.mdwn +++ b/doc/todo/mercurial.mdwn @@ -31,7 +31,7 @@ This should update the working directory and run ikiwiki every time a change is The problem with --post-commit is that if you delete some pages in $SRC, ikiwiki --setup setupfile --post-commit will not delete them in $DEST. -I add the following to .hg/hgrc: +I add the following to .hg/hgrc:(I use changegroup since I don't think we need refresh per changeset, please point out if I am wrong.) [hooks] changegroup = hg update >&2 && ikiwiki --setup path.to.setup.file --refresh @@ -43,7 +43,9 @@ I tried the follwing commands in $SRC: hg add hg ci -No deadlock happens. (Also I push to the $SRC from another machine, again, no deadlock.) +No deadlock happens. (Also I push to the $SRC from another machine, again, no deadlock. If there is conflicts between $SRC and my own repo, hg pull will abort. You have to pull, merge and push again.) + + Of course these tests are too simple. The problem is I have no idea when the deadlock will happen. If someone is kind enough to point out, I will run more test. -- cgit v1.2.3 From 8ed097beb1e01e7cb6530650277b62645e848d4e Mon Sep 17 00:00:00 2001 From: "http://weakish.int.eu.org/" <http://weakish.int.eu.org/@web> Date: Sun, 8 Feb 2009 07:59:09 -0500 Subject: add item --- doc/ikiwikiusers.mdwn | 1 + 1 file changed, 1 insertion(+) (limited to 'doc') diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn index 7003294a9..dd9fb01f3 100644 --- a/doc/ikiwikiusers.mdwn +++ b/doc/ikiwikiusers.mdwn @@ -110,6 +110,7 @@ Personal sites and blogs * [[Simon_McVittie|smcv]]'s [website](http://www.pseudorandom.co.uk/) and [blog](http://smcv.pseudorandom.co.uk/) * Svend's [website](http://www.ciffer.net/~svend/) and [blog](http://www.ciffer.net/~svend/blog/) +* [Pigro Network](http://www.pigro.net) is running a hg based ikiwiki. (And provides ikiwiki hosting for $10/m.) Schools ======= -- cgit v1.2.3 From 73b168079a32123b2b6979772fbe611d4dc580a7 Mon Sep 17 00:00:00 2001 From: cfm <cfm@web> Date: Sun, 8 Feb 2009 11:18:51 -0500 Subject: Expanded report to mention PageSpec and workaround. --- doc/bugs/PNG_triggers_UTF-8_error_in_MimeInfo.pm.mdwn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'doc') diff --git a/doc/bugs/PNG_triggers_UTF-8_error_in_MimeInfo.pm.mdwn b/doc/bugs/PNG_triggers_UTF-8_error_in_MimeInfo.pm.mdwn index e9aba88cc..041f63a62 100644 --- a/doc/bugs/PNG_triggers_UTF-8_error_in_MimeInfo.pm.mdwn +++ b/doc/bugs/PNG_triggers_UTF-8_error_in_MimeInfo.pm.mdwn @@ -1,5 +1,5 @@ -When including a PNG image in a blog, [[ikiwiki/directive/inline]] directives throw an error: +If a PNG image matches the [[ikiwiki/PageSpec]] of an [[ikiwiki/directive/inline]] directive, the page throws the following error: > \[[!inline Error: Malformed UTF-8 character (fatal) at /usr/local/lib/perl5/site_perl/5.8.8/File/MimeInfo.pm line 120.]] -Individual posts display fine. +Individual posts display fine, and moving the offending image outside the scope of the [[ikiwiki/directive/inline]] directive's PageSpec eliminates the error. -- cgit v1.2.3 From 1de639aded7ca8d7b9ecd200351ad04a3dd08446 Mon Sep 17 00:00:00 2001 From: "http://dmarti.myopenid.com/" <http://dmarti.myopenid.com/@web> Date: Sun, 8 Feb 2009 13:32:12 -0500 Subject: fix typo --- doc/tips/github.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/tips/github.mdwn b/doc/tips/github.mdwn index cd1b479d1..974d572f1 100644 --- a/doc/tips/github.mdwn +++ b/doc/tips/github.mdwn @@ -1,5 +1,5 @@ Here's how to set up a static wiki or blog using ikiwiki with no hosting -feeds. Everything is hosted on github, both the git repository and the web +fees. Everything is hosted on github, both the git repository and the web site. Your laptop is used to generate and publish changes to it. This is possible because github now supports -- cgit v1.2.3 From cdf7dcfc6ed392de4f4b8a3b2f95f121435ebacf Mon Sep 17 00:00:00 2001 From: muammar <muammar@web> Date: Sun, 8 Feb 2009 21:58:45 -0500 Subject: --- doc/ikiwikiusers.mdwn | 1 + 1 file changed, 1 insertion(+) (limited to 'doc') diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn index dd9fb01f3..7f196909d 100644 --- a/doc/ikiwikiusers.mdwn +++ b/doc/ikiwikiusers.mdwn @@ -111,6 +111,7 @@ Personal sites and blogs [blog](http://smcv.pseudorandom.co.uk/) * Svend's [website](http://www.ciffer.net/~svend/) and [blog](http://www.ciffer.net/~svend/blog/) * [Pigro Network](http://www.pigro.net) is running a hg based ikiwiki. (And provides ikiwiki hosting for $10/m.) +* [muammar's site](http://muammar.me) Schools ======= -- cgit v1.2.3 From aedc7ba9800e94b162d3459ac023365ba7df3cfd Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Mon, 9 Feb 2009 14:23:10 -0500 Subject: reorg --- doc/ikiwikiusers.mdwn | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'doc') diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn index 7f196909d..f7a4cfca7 100644 --- a/doc/ikiwikiusers.mdwn +++ b/doc/ikiwikiusers.mdwn @@ -1,5 +1,5 @@ -Projects -======== +Projects & Organizations +======================== * [This wiki](http://ikiwiki.info) (of course!) * [Planet Debian upstream](http://updo.debian.net/) @@ -41,6 +41,8 @@ Projects * The [Fortran Wiki](http://fortranwiki.org/) * [Monotone](http://monotone.ca/wiki/FrontPage/) * The support pages for [Trinity Centre for High Performance Computing](http://www.tchpc.tcd.ie/support/) +* [St Hugh of Lincoln Primary School in Surrey](http://hugh.vm.bytemark.co.uk/) +* [Pigro Network](http://www.pigro.net) is running a hg based ikiwiki. (And provides ikiwiki hosting for $10/m.) Personal sites and blogs ======================== @@ -110,13 +112,9 @@ Personal sites and blogs * [[Simon_McVittie|smcv]]'s [website](http://www.pseudorandom.co.uk/) and [blog](http://smcv.pseudorandom.co.uk/) * Svend's [website](http://www.ciffer.net/~svend/) and [blog](http://www.ciffer.net/~svend/blog/) -* [Pigro Network](http://www.pigro.net) is running a hg based ikiwiki. (And provides ikiwiki hosting for $10/m.) * [muammar's site](http://muammar.me) -Schools -======= -* [St Hugh of Lincoln Primary School in Surrey](http://hugh.vm.bytemark.co.uk/) - + Please feel free to add your own ikiwiki site! See also: [Debian ikiwiki popcon graph](http://popcon.debian.org/~igloo/popcon-graphs/index.php?packages=ikiwiki) -- cgit v1.2.3 From 6b41a240969d8e5b043f811c1d471402746ff0a5 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Mon, 9 Feb 2009 14:34:24 -0500 Subject: seems to be fixed in current File::MimeInfo versions --- .../PNG_triggers_UTF-8_error_in_MimeInfo.pm.mdwn | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'doc') diff --git a/doc/bugs/PNG_triggers_UTF-8_error_in_MimeInfo.pm.mdwn b/doc/bugs/PNG_triggers_UTF-8_error_in_MimeInfo.pm.mdwn index 041f63a62..0a1299993 100644 --- a/doc/bugs/PNG_triggers_UTF-8_error_in_MimeInfo.pm.mdwn +++ b/doc/bugs/PNG_triggers_UTF-8_error_in_MimeInfo.pm.mdwn @@ -3,3 +3,23 @@ If a PNG image matches the [[ikiwiki/PageSpec]] of an [[ikiwiki/directive/inline > \[[!inline Error: Malformed UTF-8 character (fatal) at /usr/local/lib/perl5/site_perl/5.8.8/File/MimeInfo.pm line 120.]] Individual posts display fine, and moving the offending image outside the scope of the [[ikiwiki/directive/inline]] directive's PageSpec eliminates the error. + +> I tried to reproduce this with a random png and File::MimeInfo +> version 0.15, but could not. The png was included in the generated feed +> via an enclosure, as it should be; no warnings or errors. +> +> Looking at the source to File::MimeInfo and its changelog, +> I'm pretty sure that this problem was fixed in version +> 0.14: +>> - Fixed bug with malformed utf8 chars in default() method +> +> The code involved in that fix looks like this: +> +>> no warnings; # warnings can be thrown when input not ascii +>> if ($] < 5.008 or ! utf8::valid($line)) { +>> use bytes; # avoid invalid utf8 chars +> +> I guess that your locally installed version of File::MimeInfo is older than +> this. So closing this bug [[done]]. If you still see the problem with a current +> version of File::MimeInfo, please reopen and include where I can get a png file +> that triggers the problem. --[[Joey]] -- cgit v1.2.3 From 6605764c523787141272fe83c3d46a65aea7649d Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Mon, 9 Feb 2009 14:58:10 -0500 Subject: Fix unusual --setup --post-commit command line option combo. --- debian/changelog | 1 + doc/todo/mercurial.mdwn | 25 +++++++++++++++++++++++++ ikiwiki.in | 6 ++++-- 3 files changed, 30 insertions(+), 2 deletions(-) (limited to 'doc') diff --git a/debian/changelog b/debian/changelog index c9878c719..d2b701db7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -8,6 +8,7 @@ ikiwiki (3.04) UNRELEASED; urgency=low * Work around XML::Atom strangeness that results in double-encoded posts. (smcv) * Updated German translation (Kai Wasserbäch). Closes: #514251 + * Fix unusual --setup --post-commit command line option combo. -- Joey Hess <joeyh@debian.org> Sat, 31 Jan 2009 19:04:45 -0500 diff --git a/doc/todo/mercurial.mdwn b/doc/todo/mercurial.mdwn index 9635b6880..e45629102 100644 --- a/doc/todo/mercurial.mdwn +++ b/doc/todo/mercurial.mdwn @@ -31,6 +31,13 @@ This should update the working directory and run ikiwiki every time a change is The problem with --post-commit is that if you delete some pages in $SRC, ikiwiki --setup setupfile --post-commit will not delete them in $DEST. +> You should really be using a setup file that has `mercurial_wrapper` +> set, and running the wrapper generated by that from your hook. +> That will work. I think that the `--setup --post-commit` on the command +> line is currently broken and does the same expensive rebuild process as --setup +> alone (which doesn't delete files from $DEST either). Will fix that. +> --[[Joey]] + I add the following to .hg/hgrc:(I use changegroup since I don't think we need refresh per changeset, please point out if I am wrong.) [hooks] @@ -49,6 +56,24 @@ No deadlock happens. (Also I push to the $SRC from another machine, again, no d Of course these tests are too simple. The problem is I have no idea when the deadlock will happen. If someone is kind enough to point out, I will run more test. +> For the deadlock to occur, a edit has to be made via the web. +> +> Ikiwiki, +> running as a CGI, takes a lock on the wiki, and commits the edit, +> continuing to run in the background, with the lock still held. +> When the edit is committed, the hg hook runs, running `ikwiki --refresh`. +> Nearly the first thing that process does it try to lock the wiki.. +> which is already locked. This lock is taken in a blocking manner, +> thus the deadlock -- the cgi is waiting for the commit to finish before +> dropping the lock, and the commit is blocked waiting for the lock to be +> released. +> +> --post-commit avoids this problem by checking if the cgi is running +> and avoiding doing anything in that case. (While still handing the +> refresh if the commit was not made by the CGI.) +> So in that case, the commit finishes w/o ikiwiki doing anything, +> and the ikiwiki CGI handles the wiki refresh. +> --[[Joey]] *** diff --git a/ikiwiki.in b/ikiwiki.in index 32a24af84..c79a2bfef 100755 --- a/ikiwiki.in +++ b/ikiwiki.in @@ -135,7 +135,8 @@ sub main () { if (@{$config{wrappers}} && ! $config{render} && ! $config{dumpsetup} && - (! $config{refresh} || $config{genwrappers})) { + ((! $config{refresh} && ! $config{post_commit}) + || $config{genwrappers})) { debug(gettext("generating wrappers..")); require IkiWiki::Wrapper; my %origconfig=(%config); @@ -157,7 +158,8 @@ sub main () { } # setup implies a wiki rebuild by default - if (! $config{refresh} && ! $config{render}) { + if (! $config{refresh} && ! $config{render} && + ! $config{post_commit}) { $config{rebuild}=1; } } -- cgit v1.2.3 From 9a84181ad9bbef5bdc4a9ecb3160994f79d8b9cb Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Mon, 9 Feb 2009 16:04:33 -0500 Subject: document writefile symlink checks --- doc/plugins/write.mdwn | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'doc') diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn index 99eea3d16..1a119b99b 100644 --- a/doc/plugins/write.mdwn +++ b/doc/plugins/write.mdwn @@ -629,6 +629,16 @@ A failure to write the file will result in it dying with an error. If the destination directory doesn't exist, it will first be created. +The filename and directory are separate parameters because of +some security checks done to avoid symlink attacks. Before writing a file, +it checks to make sure there's not a symlink with its name, to avoid +following the symlink. If the filename parameter includes a subdirectory +to put the file in, it also checks if that subdirectory is a symlink, etc. +The directory parameter, however, is not checked for symlinks. So, +generally the directory parameter is a trusted toplevel directory like +the srcdir or destdir, and any subdirectories of this are included in the +filename parameter. + #### `will_render($$)` Given a page name and a destination file name (not including the base -- cgit v1.2.3 From ff5d52b0d2dc025cedadb3b9d06f46e8954d7a38 Mon Sep 17 00:00:00 2001 From: "http://weakish.int.eu.org/" <http://weakish.int.eu.org/@web> Date: Tue, 10 Feb 2009 04:38:14 -0500 Subject: del wrong hook & ikiwiki --post-commit --a-lot-of-switches --- doc/todo/mercurial.mdwn | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) (limited to 'doc') diff --git a/doc/todo/mercurial.mdwn b/doc/todo/mercurial.mdwn index e45629102..2f844db03 100644 --- a/doc/todo/mercurial.mdwn +++ b/doc/todo/mercurial.mdwn @@ -29,7 +29,7 @@ This should update the working directory and run ikiwiki every time a change is > It can deadlock if the post-commit hook runs with --refresh in the > former case. --[[Joey]] -The problem with --post-commit is that if you delete some pages in $SRC, ikiwiki --setup setupfile --post-commit will not delete them in $DEST. +The problem with --post-commit is that if you delete some pages in $SRC, ikiwiki --setup setupfile --post-commit will not delete them in $DEST. --[[weakish]] > You should really be using a setup file that has `mercurial_wrapper` > set, and running the wrapper generated by that from your hook. @@ -38,23 +38,23 @@ The problem with --post-commit is that if you delete some pages in $SRC, ikiwiki > alone (which doesn't delete files from $DEST either). Will fix that. > --[[Joey]] +>> Mercurial doesn't support put hooks in .hg/hooks/* (like git). In Mercurial, the only way to run +>> your own hooks is specifying them in the hgrc file. (Or write a new extension.) +>> I guess use a very long command will work. +>> (e.g. ikiwiki --post-commit --a-lot-of-switches --set var=value $SRC $DEST) +>> (Fortunately ikiwiki supports --set var=value so without --setup works.) +>> +>> Alternative is always editing via cgi or pushing. Never work on the $SRC/repo directly. +>> --[[weakish]] + I add the following to .hg/hgrc:(I use changegroup since I don't think we need refresh per changeset, please point out if I am wrong.) [hooks] changegroup = hg update >&2 && ikiwiki --setup path.to.setup.file --refresh - post-commit = ikiwiki --setup path.to.setup.file --refresh - -I tried the follwing commands in $SRC: - - touch deadlocktest.mdwn - hg add - hg ci -No deadlock happens. (Also I push to the $SRC from another machine, again, no deadlock. If there is conflicts between $SRC and my own repo, hg pull will abort. You have to pull, merge and push again.) +<p><del>post-commit = ikiwiki --setup path.to.setup.file --refresh</del><strong>This will cause deadlock! See bleow!</strong></p> - - -Of course these tests are too simple. The problem is I have no idea when the deadlock will happen. If someone is kind enough to point out, I will run more test. +I have no idea when the deadlock will happen. --[[weakish]] > For the deadlock to occur, a edit has to be made via the web. > @@ -75,6 +75,7 @@ Of course these tests are too simple. The problem is I have no idea when the de > and the ikiwiki CGI handles the wiki refresh. > --[[Joey]] + *** I have a few notes on mercurial usage after trying it out for a while: -- cgit v1.2.3 From 4004959dc21939cd6acbf21d317a201190bc15ed Mon Sep 17 00:00:00 2001 From: "http://weakish.int.eu.org/" <http://weakish.int.eu.org/@web> Date: Tue, 10 Feb 2009 04:40:37 -0500 Subject: add a email. --- doc/todo/weakish.mdwn | 1 + 1 file changed, 1 insertion(+) create mode 100644 doc/todo/weakish.mdwn (limited to 'doc') diff --git a/doc/todo/weakish.mdwn b/doc/todo/weakish.mdwn new file mode 100644 index 000000000..ccd5665ad --- /dev/null +++ b/doc/todo/weakish.mdwn @@ -0,0 +1 @@ +email: weakish@gmail.com -- cgit v1.2.3 From b96bab0449d6f326a7e847fba3488100ad84bead Mon Sep 17 00:00:00 2001 From: "http://weakish.int.eu.org/" <http://weakish.int.eu.org/@web> Date: Tue, 10 Feb 2009 04:42:02 -0500 Subject: rename todo/weakish.mdwn to users/weakish.mdwn --- doc/todo/weakish.mdwn | 1 - doc/users/weakish.mdwn | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 doc/todo/weakish.mdwn create mode 100644 doc/users/weakish.mdwn (limited to 'doc') diff --git a/doc/todo/weakish.mdwn b/doc/todo/weakish.mdwn deleted file mode 100644 index ccd5665ad..000000000 --- a/doc/todo/weakish.mdwn +++ /dev/null @@ -1 +0,0 @@ -email: weakish@gmail.com diff --git a/doc/users/weakish.mdwn b/doc/users/weakish.mdwn new file mode 100644 index 000000000..ccd5665ad --- /dev/null +++ b/doc/users/weakish.mdwn @@ -0,0 +1 @@ +email: weakish@gmail.com -- cgit v1.2.3 From 12a72e758382c8efb9cdd6c66e06d9de094a4b29 Mon Sep 17 00:00:00 2001 From: "http://weakish.int.eu.org/" <http://weakish.int.eu.org/@web> Date: Tue, 10 Feb 2009 04:42:03 -0500 Subject: update for rename of todo/weakish.mdwn to users/weakish.mdwn --- doc/todo/mercurial.mdwn | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'doc') diff --git a/doc/todo/mercurial.mdwn b/doc/todo/mercurial.mdwn index 2f844db03..89f5337ab 100644 --- a/doc/todo/mercurial.mdwn +++ b/doc/todo/mercurial.mdwn @@ -29,7 +29,7 @@ This should update the working directory and run ikiwiki every time a change is > It can deadlock if the post-commit hook runs with --refresh in the > former case. --[[Joey]] -The problem with --post-commit is that if you delete some pages in $SRC, ikiwiki --setup setupfile --post-commit will not delete them in $DEST. --[[weakish]] +The problem with --post-commit is that if you delete some pages in $SRC, ikiwiki --setup setupfile --post-commit will not delete them in $DEST. --[[users/weakish]] > You should really be using a setup file that has `mercurial_wrapper` > set, and running the wrapper generated by that from your hook. @@ -45,7 +45,7 @@ The problem with --post-commit is that if you delete some pages in $SRC, ikiwiki >> (Fortunately ikiwiki supports --set var=value so without --setup works.) >> >> Alternative is always editing via cgi or pushing. Never work on the $SRC/repo directly. ->> --[[weakish]] +>> --[[users/weakish]] I add the following to .hg/hgrc:(I use changegroup since I don't think we need refresh per changeset, please point out if I am wrong.) @@ -54,7 +54,7 @@ I add the following to .hg/hgrc:(I use changegroup since I don't think we need r <p><del>post-commit = ikiwiki --setup path.to.setup.file --refresh</del><strong>This will cause deadlock! See bleow!</strong></p> -I have no idea when the deadlock will happen. --[[weakish]] +I have no idea when the deadlock will happen. --[[users/weakish]] > For the deadlock to occur, a edit has to be made via the web. > -- cgit v1.2.3 From 42b16cf8f3fb82f3c66100df46f92a4cf4a51d1b Mon Sep 17 00:00:00 2001 From: "http://weakish.int.eu.org/" <http://weakish.int.eu.org/@web> Date: Tue, 10 Feb 2009 06:21:55 -0500 Subject: ikiwiki deb (3.0.3) doesn't suggests libtext-wikicreole-perl --- doc/plugins/creole/discussion.mdwn | 2 ++ 1 file changed, 2 insertions(+) (limited to 'doc') diff --git a/doc/plugins/creole/discussion.mdwn b/doc/plugins/creole/discussion.mdwn index 36b7ba869..9d58fffbf 100644 --- a/doc/plugins/creole/discussion.mdwn +++ b/doc/plugins/creole/discussion.mdwn @@ -8,4 +8,6 @@ I've installed Text::WikiCreole 0.05 and enabled the plugin, but I get an error >> I've added the patch to pkgsrc as well. Thanks. --[[schmonz]] +>> Currently the creole plugin is included in ikiwiki but the ikiwiki deb (3.0.3) doesn't suggests libtext-wikicreole-perl. Why? --[[weakish]] + I'm moving over a really stinkingly old UseMod and creole seems the nearest match. I've worked out that Bare /Subpage links need to become \[\[Subpage\]\], and Top/Sub links need to be \[\[Top/Sub\]\] (or \[\[Top/Sub|Top/Sub\]\], to display in exactly the same way), but I'm stuck on generic hyperlinks. The creole cheat sheet says I should be able to do \[\[http://url.path/foo|LinkText\]\], but that comes out as a link to create the "linktext" page, and Markdown-style \[Link Text\](http://url.path/foo) just gets rendered as is. Any suggestions? --[[schmonz]] -- cgit v1.2.3 From 2d989db76ae10552dc7406b23a9aceda167f4b1c Mon Sep 17 00:00:00 2001 From: "http://weakish.int.eu.org/" <http://weakish.int.eu.org/@web> Date: Tue, 10 Feb 2009 08:10:13 -0500 Subject: more details on ikiwiki directives --- doc/plugins/creole.mdwn | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/plugins/creole.mdwn b/doc/plugins/creole.mdwn index c6491f754..6961e8d1d 100644 --- a/doc/plugins/creole.mdwn +++ b/doc/plugins/creole.mdwn @@ -13,4 +13,10 @@ wiki markup formats, so should be fairly easy to guess at. There is also a Links are standard [[WikiLinks|ikiwiki/WikiLink]]. Links and [[directives|ikiwiki/directive]] inside `{{{ }}}` blocks are still expanded, -since this happens before the creole format is processed. +since this happens before the creole format is processed. (You need to escape +them manually, via \\\[[directives]], the ~ escaping of creole doesn't work on +this.) + +The standard ikiwiki [[WikiLinks|ikiwiki/WikiLink]] is almost the same as Creole link, except that creole uses \[[pagename|description]] while ikiwiki uses \[[description|pagename]]. + + -- cgit v1.2.3 From fc2ec9255a0557ab461d933ad787cbe71aecf675 Mon Sep 17 00:00:00 2001 From: "http://weakish.int.eu.org/" <http://weakish.int.eu.org/@web> Date: Wed, 11 Feb 2009 01:56:01 -0500 Subject: add instruction of lighttpd --- doc/plugins/404.mdwn | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'doc') diff --git a/doc/plugins/404.mdwn b/doc/plugins/404.mdwn index 8a7ccd7d6..ad332ee04 100644 --- a/doc/plugins/404.mdwn +++ b/doc/plugins/404.mdwn @@ -12,3 +12,9 @@ file: (The path here needs to be whatever the path is to the ikiwiki.cgi from the root of your web server.) + +Or put something like this in the wiki's Lighttpd (>=1.4.17) configuration file: + + server.error-handler-404 = "/ikiwiki.cgi" + + -- cgit v1.2.3 From 80781387fc5f0c797f6e1b8678db2f253af4b7f8 Mon Sep 17 00:00:00 2001 From: "http://weakish.int.eu.org/" <http://weakish.int.eu.org/@web> Date: Wed, 11 Feb 2009 03:08:33 -0500 Subject: [tiny] add a link to meta plugin page --- ...fault_content_for___42__copyright__42___and___42__license__42__.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/plugins/contrib/default_content_for___42__copyright__42___and___42__license__42__.mdwn b/doc/plugins/contrib/default_content_for___42__copyright__42___and___42__license__42__.mdwn index 3efc68418..adb414ffb 100644 --- a/doc/plugins/contrib/default_content_for___42__copyright__42___and___42__license__42__.mdwn +++ b/doc/plugins/contrib/default_content_for___42__copyright__42___and___42__license__42__.mdwn @@ -20,7 +20,7 @@ template variable somebody wants to use. --[[bma]] Copyright and license values are not "template values", they are values -tracked by the meta plugin, and that various code compares and uses to fill +tracked by the [[meta]] plugin, and that various code compares and uses to fill out the templates. Something like varioki cannot do that. --[[Joey]] Somewhat more detailed usage documentation would be appreciated. I tried to setup -- cgit v1.2.3 From 1998b3c2d666461985131e6d24212035daee88eb Mon Sep 17 00:00:00 2001 From: "http://weakish.int.eu.org/" <http://weakish.int.eu.org/@web> Date: Wed, 11 Feb 2009 05:14:06 -0500 Subject: redirect automatically after rename --- doc/todo/redirect_automatically_after_rename.mdwn | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 doc/todo/redirect_automatically_after_rename.mdwn (limited to 'doc') diff --git a/doc/todo/redirect_automatically_after_rename.mdwn b/doc/todo/redirect_automatically_after_rename.mdwn new file mode 100644 index 000000000..6a6d4f05f --- /dev/null +++ b/doc/todo/redirect_automatically_after_rename.mdwn @@ -0,0 +1,10 @@ +In some wikis, (e.g. Mediawiki) after [[renaming|rename]] +a page, the old page still exist but only redirect to the +new page. This is convenient since external sites may +have links pointing to the old url. + +If [[meta]] plugin is enabled, users can manually edit the +page, and put in '\[[!meta redir=newpage]]', but this is +not very convenient. + + -- cgit v1.2.3 From 011a45229a52bd63426a0d2d056bfec874a81a2a Mon Sep 17 00:00:00 2001 From: "http://weakish.int.eu.org/" <http://weakish.int.eu.org/@web> Date: Wed, 11 Feb 2009 05:15:33 -0500 Subject: fix broken links --- doc/todo/redirect_automatically_after_rename.mdwn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'doc') diff --git a/doc/todo/redirect_automatically_after_rename.mdwn b/doc/todo/redirect_automatically_after_rename.mdwn index 6a6d4f05f..1cbb824d2 100644 --- a/doc/todo/redirect_automatically_after_rename.mdwn +++ b/doc/todo/redirect_automatically_after_rename.mdwn @@ -1,9 +1,9 @@ -In some wikis, (e.g. Mediawiki) after [[renaming|rename]] +In some wikis, (e.g. Mediawiki) after [[renaming|plugins/rename]] a page, the old page still exist but only redirect to the new page. This is convenient since external sites may have links pointing to the old url. -If [[meta]] plugin is enabled, users can manually edit the +If [[plugins/meta]] plugin is enabled, users can manually edit the page, and put in '\[[!meta redir=newpage]]', but this is not very convenient. -- cgit v1.2.3 From 4d25fce92a8c00951db9623eb98cf6e7de3c2121 Mon Sep 17 00:00:00 2001 From: "http://weakish.int.eu.org/" <http://weakish.int.eu.org/@web> Date: Wed, 11 Feb 2009 05:32:51 -0500 Subject: removed --- doc/plugins/shortcut/discussion.mdwn | 1 - 1 file changed, 1 deletion(-) delete mode 100644 doc/plugins/shortcut/discussion.mdwn (limited to 'doc') diff --git a/doc/plugins/shortcut/discussion.mdwn b/doc/plugins/shortcut/discussion.mdwn deleted file mode 100644 index 8b1378917..000000000 --- a/doc/plugins/shortcut/discussion.mdwn +++ /dev/null @@ -1 +0,0 @@ - -- cgit v1.2.3 From 1384235127c9597563ccd75593a57dda11027a91 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Wed, 11 Feb 2009 16:58:32 -0500 Subject: remove some old distro version stuff --- doc/download.mdwn | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'doc') diff --git a/doc/download.mdwn b/doc/download.mdwn index 067938f87..507b250a5 100644 --- a/doc/download.mdwn +++ b/doc/download.mdwn @@ -10,12 +10,7 @@ Installation steps and requirements are listed on the [[install]] page. ## packages -To install with apt, if using Debian (since 4.0), or Ubuntu (since 6.10): -[[!template id=note text=""" -Note that Debian 4.0 and especially Ubuntu 6.10 contain older versions of -ikiwiki, there have been lots of enhancements and bug fixes since those -versions. -"""]] +To install with apt, if using Debian or Ubuntu: apt-get install ikiwiki -- cgit v1.2.3 From a7e119767ce0b042075fd8955599e30df13e290b Mon Sep 17 00:00:00 2001 From: "http://weakish.int.eu.org/" <http://weakish.int.eu.org/@web> Date: Thu, 12 Feb 2009 03:31:02 -0500 Subject: use shortcut with mdwn disabled --- doc/plugins/shortcut/discussion.mdwn | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 doc/plugins/shortcut/discussion.mdwn (limited to 'doc') diff --git a/doc/plugins/shortcut/discussion.mdwn b/doc/plugins/shortcut/discussion.mdwn new file mode 100644 index 000000000..d11639856 --- /dev/null +++ b/doc/plugins/shortcut/discussion.mdwn @@ -0,0 +1,16 @@ +The plugin somehow depends on [[mdwn]]. If you have +disabled [[mdwn]], to get [[shortcut]] work, you need +commit in a shortcuts.ext (ext is rcs|creole|html|txt|etc). + +Then edit the following lines in[[shortcut]] plugin source: + + my $srcfile=srcfile("shortcuts.mdwn", 1); + +and + + error(gettext("shortcut plugin will not work without a shortcuts.mdwn")); + + +(It is better to edit a local copy of shortcut.pm in, say, ~/.ikiwiki/IkiWiki/Plugin +and add ~/.ikiwiki to libdir in your ikiwiki.setup then edit the shortcut.pm installed +in system directly.) -- cgit v1.2.3 From 0826d993461c16c91de5d36ff4fc5b2e2bfd6f8c Mon Sep 17 00:00:00 2001 From: "http://weakish.int.eu.org/" <http://weakish.int.eu.org/@web> Date: Thu, 12 Feb 2009 03:33:20 -0500 Subject: typo --- doc/plugins/shortcut/discussion.mdwn | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'doc') diff --git a/doc/plugins/shortcut/discussion.mdwn b/doc/plugins/shortcut/discussion.mdwn index d11639856..8fa3f7acf 100644 --- a/doc/plugins/shortcut/discussion.mdwn +++ b/doc/plugins/shortcut/discussion.mdwn @@ -1,8 +1,8 @@ The plugin somehow depends on [[mdwn]]. If you have disabled [[mdwn]], to get [[shortcut]] work, you need -commit in a shortcuts.ext (ext is rcs|creole|html|txt|etc). +commit in a shortcuts.ext (ext is `rcs|creole|html|txt|etc`). -Then edit the following lines in[[shortcut]] plugin source: +Then edit the following lines in [[shortcut]] plugin source: my $srcfile=srcfile("shortcuts.mdwn", 1); @@ -12,5 +12,5 @@ and (It is better to edit a local copy of shortcut.pm in, say, ~/.ikiwiki/IkiWiki/Plugin -and add ~/.ikiwiki to libdir in your ikiwiki.setup then edit the shortcut.pm installed +and add ~/.ikiwiki to libdir in your ikiwiki.setup than edit the shortcut.pm installed in system directly.) -- cgit v1.2.3 From 978a3570dbec85376fc44a3e564079664f5c26e5 Mon Sep 17 00:00:00 2001 From: "http://weakish.int.eu.org/" <http://weakish.int.eu.org/@web> Date: Thu, 12 Feb 2009 05:08:58 -0500 Subject: warning about disable mdwn --- doc/plugins/mdwn/discussion.mdwn | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 doc/plugins/mdwn/discussion.mdwn (limited to 'doc') diff --git a/doc/plugins/mdwn/discussion.mdwn b/doc/plugins/mdwn/discussion.mdwn new file mode 100644 index 000000000..9ebf99b7e --- /dev/null +++ b/doc/plugins/mdwn/discussion.mdwn @@ -0,0 +1,11 @@ +Unlike other format, ikiwiki is somehow depends +on mdwn, since the underlay dir +is written in mdwn. If you want to disable mdwn, +you need to overwrite the underlay +dir (set underlaydir in ikiwiki.setup +to your own underlay dir or replace underlay pages +in your $SRC). + +Specially, the [[shortcut]] plugin is hardcoded to +use shortcuts.mdwn. So you need pay more care if +you [[use shortcut without mdwn|shortcut/discussion]]. -- cgit v1.2.3 From aa88d6beeff168b2bd56f90646dede7c89acc4ea Mon Sep 17 00:00:00 2001 From: "http://weakish.int.eu.org/" <http://weakish.int.eu.org/@web> Date: Thu, 12 Feb 2009 05:54:20 -0500 Subject: patch for shortcut.pm to use $default_pageext instead of hardcode .mdwn. --- doc/plugins/shortcut/discussion.mdwn | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) (limited to 'doc') diff --git a/doc/plugins/shortcut/discussion.mdwn b/doc/plugins/shortcut/discussion.mdwn index 8fa3f7acf..770c95836 100644 --- a/doc/plugins/shortcut/discussion.mdwn +++ b/doc/plugins/shortcut/discussion.mdwn @@ -1,16 +1,27 @@ -The plugin somehow depends on [[mdwn]]. If you have +The plugin depends on [[mdwn]]. If you have disabled [[mdwn]], to get [[shortcut]] work, you need -commit in a shortcuts.ext (ext is `rcs|creole|html|txt|etc`). +commit in a shortcuts.ext (ext is `rcs|creole|html|txt|etc`), +and edit/patch [[shortcut]]. -Then edit the following lines in [[shortcut]] plugin source: +Maybe use the $default_pageext is better than hardcode .mdwn? - my $srcfile=srcfile("shortcuts.mdwn", 1); +<pre> +--- shortcut.pm.orig 2009-02-12 02:05:22.000000000 -0600 ++++ shortcut.pm 2009-02-12 04:41:30.000000000 -0600 +@@ -23,9 +23,9 @@ + if (defined $config{srcdir}) { + # Preprocess the shortcuts page to get all the available shortcuts + # defined before other pages are rendered. +- my $srcfile=srcfile("shortcuts.mdwn", 1); ++ my $srcfile=srcfile("shortcuts.$config{default_pageext}", 1); + if (! defined $srcfile) { +- error(gettext("shortcut plugin will not work without a shortcuts.mdwn")); ++ error(gettext("shortcut plugin will not work without a shortcuts.$config{default_pageext}")); + } + IkiWiki::preprocess("shortcuts", "shortcuts", readfile($srcfile)); + } +</pre> -and +--[[weakish]] - error(gettext("shortcut plugin will not work without a shortcuts.mdwn")); - -(It is better to edit a local copy of shortcut.pm in, say, ~/.ikiwiki/IkiWiki/Plugin -and add ~/.ikiwiki to libdir in your ikiwiki.setup than edit the shortcut.pm installed -in system directly.) -- cgit v1.2.3 From 46819b530bca5a3adf00278500a34363a94c1fb2 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Thu, 12 Feb 2009 13:02:58 -0500 Subject: shortcut: If default_pageext is set, first look for shortcuts.default_pageext Falls back to looking for shortcuts.mdwn for backwards compatabiity; there probably exist wikis that have changed the pageext but still use shortcuts.mdwn. --- IkiWiki/Plugin/shortcut.pm | 8 ++++++-- debian/changelog | 2 ++ doc/plugins/mdwn/discussion.mdwn | 4 ---- doc/plugins/shortcut/discussion.mdwn | 21 +++------------------ 4 files changed, 11 insertions(+), 24 deletions(-) (limited to 'doc') diff --git a/IkiWiki/Plugin/shortcut.pm b/IkiWiki/Plugin/shortcut.pm index 0e7cbd4d1..c1e6a7eb3 100644 --- a/IkiWiki/Plugin/shortcut.pm +++ b/IkiWiki/Plugin/shortcut.pm @@ -23,9 +23,13 @@ sub checkconfig () { if (defined $config{srcdir}) { # Preprocess the shortcuts page to get all the available shortcuts # defined before other pages are rendered. - my $srcfile=srcfile("shortcuts.mdwn", 1); + my $srcfile=srcfile("shortcuts.".$config{default_pageext}, 1); if (! defined $srcfile) { - error(gettext("shortcut plugin will not work without a shortcuts.mdwn")); + $srcfile=srcfile("shortcuts.mdwn", 1); + } + if (! defined $srcfile) { + error(sprintf(gettext("shortcut plugin will not work without %s"), + "shortcuts.".$config{default_pageext})); } IkiWiki::preprocess("shortcuts", "shortcuts", readfile($srcfile)); } diff --git a/debian/changelog b/debian/changelog index 294d23197..7467508f6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -11,6 +11,8 @@ ikiwiki (3.04) UNRELEASED; urgency=low * Fix unusual --setup --post-commit command line option combo. * Create any missing directory necessary to put the wrapper file into. Closes: #514384 + * shortcut: If default_pageext is set, first look for + shortcuts.default_pageext. -- Joey Hess <joeyh@debian.org> Sat, 31 Jan 2009 19:04:45 -0500 diff --git a/doc/plugins/mdwn/discussion.mdwn b/doc/plugins/mdwn/discussion.mdwn index 9ebf99b7e..4b05e7f4e 100644 --- a/doc/plugins/mdwn/discussion.mdwn +++ b/doc/plugins/mdwn/discussion.mdwn @@ -5,7 +5,3 @@ you need to overwrite the underlay dir (set underlaydir in ikiwiki.setup to your own underlay dir or replace underlay pages in your $SRC). - -Specially, the [[shortcut]] plugin is hardcoded to -use shortcuts.mdwn. So you need pay more care if -you [[use shortcut without mdwn|shortcut/discussion]]. diff --git a/doc/plugins/shortcut/discussion.mdwn b/doc/plugins/shortcut/discussion.mdwn index 770c95836..4e11ce08c 100644 --- a/doc/plugins/shortcut/discussion.mdwn +++ b/doc/plugins/shortcut/discussion.mdwn @@ -3,25 +3,10 @@ disabled [[mdwn]], to get [[shortcut]] work, you need commit in a shortcuts.ext (ext is `rcs|creole|html|txt|etc`), and edit/patch [[shortcut]]. -Maybe use the $default_pageext is better than hardcode .mdwn? - -<pre> ---- shortcut.pm.orig 2009-02-12 02:05:22.000000000 -0600 -+++ shortcut.pm 2009-02-12 04:41:30.000000000 -0600 -@@ -23,9 +23,9 @@ - if (defined $config{srcdir}) { - # Preprocess the shortcuts page to get all the available shortcuts - # defined before other pages are rendered. -- my $srcfile=srcfile("shortcuts.mdwn", 1); -+ my $srcfile=srcfile("shortcuts.$config{default_pageext}", 1); - if (! defined $srcfile) { -- error(gettext("shortcut plugin will not work without a shortcuts.mdwn")); -+ error(gettext("shortcut plugin will not work without a shortcuts.$config{default_pageext}")); - } - IkiWiki::preprocess("shortcuts", "shortcuts", readfile($srcfile)); - } -</pre> +Maybe use the `default_pageext` is better than hardcode .mdwn? --[[weakish]] +> done, it will use `default_pageext` now --[[Joey]] + -- cgit v1.2.3 From 9e786e7b2424b493bce092497fd648f4e96f7e14 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Thu, 12 Feb 2009 13:15:23 -0500 Subject: update deps and bundles --- Bundle/IkiWiki.pm | 12 ++++++------ Bundle/IkiWiki/Extras.pm | 4 ++++ debian/control | 2 +- doc/plugins/creole/discussion.mdwn | 2 ++ 4 files changed, 13 insertions(+), 7 deletions(-) (limited to 'doc') diff --git a/Bundle/IkiWiki.pm b/Bundle/IkiWiki.pm index 74832323a..769791d30 100644 --- a/Bundle/IkiWiki.pm +++ b/Bundle/IkiWiki.pm @@ -16,17 +16,17 @@ perl -MCPAN -e 'install Bundle::IkiWiki' =head1 CONTENTS -XML::Simple Text::Markdown -Date::Parse -HTML::Template HTML::Scrubber -CGI +HTML::Template +HTML::Parser +URI +XML::Simple +Date::Parse CGI::FormBuilder CGI::Session Mail::Sendmail -HTML::Parser -URI +CGI Data::Dumper =head1 AUTHOR diff --git a/Bundle/IkiWiki/Extras.pm b/Bundle/IkiWiki/Extras.pm index abf596f00..582d4a966 100644 --- a/Bundle/IkiWiki/Extras.pm +++ b/Bundle/IkiWiki/Extras.pm @@ -31,6 +31,10 @@ Text::Textile Text::WikiFormat XML::Feed Net::Amazon::S3 +Text::WikiCreole +Term::ReadLine::Gnu +HTML::Tree +Authen::Passphrase =head1 AUTHOR diff --git a/debian/control b/debian/control index fe5c3eee7..8622362bf 100644 --- a/debian/control +++ b/debian/control @@ -14,7 +14,7 @@ Package: ikiwiki Architecture: all Depends: ${perl:Depends}, libtext-markdown-perl | markdown, libhtml-scrubber-perl, libhtml-template-perl, libhtml-parser-perl, liburi-perl Recommends: gcc | c-compiler, libc6-dev | libc-dev, subversion | git-core (>= 1:1.5.0) | tla | bzr (>= 0.91) | mercurial | monotone (>= 0.38), libxml-simple-perl, libnet-openid-consumer-perl, liblwpx-paranoidagent-perl, libtimedate-perl, libcgi-formbuilder-perl (>= 3.05), libcgi-session-perl (>= 4.14-1), libmail-sendmail-perl, libauthen-passphrase-perl, libterm-readline-gnu-perl -Suggests: viewvc | gitweb | viewcvs, libsearch-xapian-perl, xapian-omega (>= 1.0.5), librpc-xml-perl, libtext-wikiformat-perl, python, python-docutils, polygen, tidy, libhtml-tree-perl, libxml-feed-perl, libmailtools-perl, perlmagick, libfile-mimeinfo-perl, libcrypt-ssleay-perl, liblocale-gettext-perl (>= 1.05-1), libtext-typography-perl, libtext-csv-perl, libdigest-sha1-perl, graphviz, libnet-amazon-s3-perl, sparkline-php, texlive, dvipng +Suggests: viewvc | gitweb | viewcvs, libsearch-xapian-perl, xapian-omega (>= 1.0.5), librpc-xml-perl, libtext-wikiformat-perl, python, python-docutils, polygen, tidy, libhtml-tree-perl, libxml-feed-perl, libmailtools-perl, perlmagick, libfile-mimeinfo-perl, libcrypt-ssleay-perl, liblocale-gettext-perl (>= 1.05-1), libtext-typography-perl, libtext-csv-perl, libdigest-sha1-perl, graphviz, libnet-amazon-s3-perl, sparkline-php, texlive, dvipng, libtext-wikicreole-perl Conflicts: ikiwiki-plugin-table Replaces: ikiwiki-plugin-table Provides: ikiwiki-plugin-table diff --git a/doc/plugins/creole/discussion.mdwn b/doc/plugins/creole/discussion.mdwn index 9d58fffbf..38ee2bd78 100644 --- a/doc/plugins/creole/discussion.mdwn +++ b/doc/plugins/creole/discussion.mdwn @@ -10,4 +10,6 @@ I've installed Text::WikiCreole 0.05 and enabled the plugin, but I get an error >> Currently the creole plugin is included in ikiwiki but the ikiwiki deb (3.0.3) doesn't suggests libtext-wikicreole-perl. Why? --[[weakish]] +>>> forgot, done now --[[Joey]] + I'm moving over a really stinkingly old UseMod and creole seems the nearest match. I've worked out that Bare /Subpage links need to become \[\[Subpage\]\], and Top/Sub links need to be \[\[Top/Sub\]\] (or \[\[Top/Sub|Top/Sub\]\], to display in exactly the same way), but I'm stuck on generic hyperlinks. The creole cheat sheet says I should be able to do \[\[http://url.path/foo|LinkText\]\], but that comes out as a link to create the "linktext" page, and Markdown-style \[Link Text\](http://url.path/foo) just gets rendered as is. Any suggestions? --[[schmonz]] -- cgit v1.2.3 From c0405e0f20e49c382b656bf9c83c4dd1aa0fc187 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Thu, 12 Feb 2009 13:18:54 -0500 Subject: response --- doc/todo/mercurial.mdwn | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'doc') diff --git a/doc/todo/mercurial.mdwn b/doc/todo/mercurial.mdwn index 89f5337ab..414aaa807 100644 --- a/doc/todo/mercurial.mdwn +++ b/doc/todo/mercurial.mdwn @@ -36,6 +36,7 @@ The problem with --post-commit is that if you delete some pages in $SRC, ikiwiki > That will work. I think that the `--setup --post-commit` on the command > line is currently broken and does the same expensive rebuild process as --setup > alone (which doesn't delete files from $DEST either). Will fix that. +> (fixed) > --[[Joey]] >> Mercurial doesn't support put hooks in .hg/hooks/* (like git). In Mercurial, the only way to run @@ -47,6 +48,10 @@ The problem with --post-commit is that if you delete some pages in $SRC, ikiwiki >> Alternative is always editing via cgi or pushing. Never work on the $SRC/repo directly. >> --[[users/weakish]] +>>> I don't see anything preventing you from using a setup file with +>>> `mercurual_wrapper => ".hg/ikiwiki-hook",` and then modifying the hgrc +>>> to run that wrapper. --[[Joey]] + I add the following to .hg/hgrc:(I use changegroup since I don't think we need refresh per changeset, please point out if I am wrong.) [hooks] -- cgit v1.2.3 From 442f3ab0aba88b61abecf23c6f9539ea494e9537 Mon Sep 17 00:00:00 2001 From: bremner <bremner@web> Date: Thu, 12 Feb 2009 20:51:38 -0500 Subject: strange output from sourcecode plugin --- .../discussion.mdwn | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'doc') diff --git a/doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn b/doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn index a998afa77..8953a055e 100644 --- a/doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn +++ b/doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn @@ -22,6 +22,18 @@ I hit a wall the following example (the last commit in the above repo). > I haven't actually tested this to see what the problem is. How does this fail? > Does source-highlight barf on the non-c++ content? Is there a wiki URL that shows the failure? -- [[Will]] +>> Here is the content div from the output page +>> [[DavidBremner]] + + <div id="content"> + <p><ul> + <li><div id="sourcecode"></li> + </ul> + 2beb4fd7289998159f61976143f66bb6</p> + + <p></div></p> + + </div> ---- -- cgit v1.2.3 From 206b583c0db7551dd9ec0f36d0f46018fd0f77e2 Mon Sep 17 00:00:00 2001 From: "http://weakish.int.eu.org/" <http://weakish.int.eu.org/@web> Date: Fri, 13 Feb 2009 04:21:06 -0500 Subject: patch for googleform.tmpl to produce valid XHTML --- doc/plugins/google/discussion.mdwn | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 doc/plugins/google/discussion.mdwn (limited to 'doc') diff --git a/doc/plugins/google/discussion.mdwn b/doc/plugins/google/discussion.mdwn new file mode 100644 index 000000000..c18157665 --- /dev/null +++ b/doc/plugins/google/discussion.mdwn @@ -0,0 +1,22 @@ +This plugin uses the googleform.tmpl +which produces valid HTML but invalid XHTML. +This is not very good since the default ikiwiki +templates produce XHTML instead of HTML. + +To produces valid XHTML, you need to edit +googleform.tmpl (in e.g. /usr/share/ikiwiki/templates): + + + --- googleform.tmpl.orig 2009-02-13 02:47:00.000000000 -0600 + +++ googleform.tmpl 2009-02-13 02:47:40.000000000 -0600 + @@ -1,6 +1,6 @@ + <form method="get" action="http://www.google.com/search" id="searchform"> + <div> + - <input name="sitesearch" value="<TMPL_VAR SITEFQDN>" type="hidden"> + - <input name="q" value="" id="searchbox" size="16" maxlength="255" type="text"> + + <input name="sitesearch" value="<TMPL_VAR SITEFQDN>" type="hidden" /> + + <input name="q" value="" id="searchbox" size="16" maxlength="255" type="text" /> + </div> + </form> + +Just tow tiny changes. -- cgit v1.2.3 From 257cbbcb7e151053641bde409253a1ea792e9569 Mon Sep 17 00:00:00 2001 From: "http://weakish.int.eu.org/" <http://weakish.int.eu.org/@web> Date: Fri, 13 Feb 2009 05:05:09 -0500 Subject: The wrapper works nicely! --- doc/todo/mercurial.mdwn | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'doc') diff --git a/doc/todo/mercurial.mdwn b/doc/todo/mercurial.mdwn index 414aaa807..2f148498e 100644 --- a/doc/todo/mercurial.mdwn +++ b/doc/todo/mercurial.mdwn @@ -49,15 +49,19 @@ The problem with --post-commit is that if you delete some pages in $SRC, ikiwiki >> --[[users/weakish]] >>> I don't see anything preventing you from using a setup file with ->>> `mercurual_wrapper => ".hg/ikiwiki-hook",` and then modifying the hgrc +>>> `mercurial_wrapper => ".hg/ikiwiki-hook",` and then modifying the hgrc >>> to run that wrapper. --[[Joey]] +>> Thanks for pointing out this. I have some stupid misunderstanding on the +>> usage of mercurial_wrapper before. The wrapper works nicely! --[[weakish]] + I add the following to .hg/hgrc:(I use changegroup since I don't think we need refresh per changeset, please point out if I am wrong.) [hooks] changegroup = hg update >&2 && ikiwiki --setup path.to.setup.file --refresh + post-commit = path.to.the.mercurial.wrapper -<p><del>post-commit = ikiwiki --setup path.to.setup.file --refresh</del><strong>This will cause deadlock! See bleow!</strong></p> +----- I have no idea when the deadlock will happen. --[[users/weakish]] -- cgit v1.2.3 From 7599de6e436fd141a8027ad65d5a2b0b03ea6f98 Mon Sep 17 00:00:00 2001 From: "http://www.cse.unsw.edu.au/~willu/" <http://www.cse.unsw.edu.au/~willu/@web> Date: Fri, 13 Feb 2009 06:16:18 -0500 Subject: Add a new bug to track simple patch --- doc/todo/Allow_filenames_that_are_all_type.mdwn | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 doc/todo/Allow_filenames_that_are_all_type.mdwn (limited to 'doc') diff --git a/doc/todo/Allow_filenames_that_are_all_type.mdwn b/doc/todo/Allow_filenames_that_are_all_type.mdwn new file mode 100644 index 000000000..55e29b645 --- /dev/null +++ b/doc/todo/Allow_filenames_that_are_all_type.mdwn @@ -0,0 +1,20 @@ +This is a [[patch]] to allow filenames that are just the type. The best example of this is wanting to +pass a `Makefile` through one of the [[todo/syntax_highlighting/]] plugins. With this patch, +if the plugin can process files of type `.Makefile` then it will also process `Makefile`. + +I put this patch on the [[todo/syntax_highlighting/]] page a while ago, but it seemed to get +lost because it didn't have its own bug to track it. Now it does :). -- [[Will]] + + diff --git a/IkiWiki.pm b/IkiWiki.pm + index 8d728c9..1bd46a9 100644 + --- a/IkiWiki.pm + +++ b/IkiWiki.pm + @@ -618,6 +618,8 @@ sub pagetype ($) { + + if ($page =~ /\.([^.]+)$/) { + return $1 if exists $hooks{htmlize}{$1}; + + } elsif ($hooks{htmlize}{$page}{keepextension}) { + + return $page; + } + return; + } -- cgit v1.2.3 From 8b4f45e1e09b85cc4eb987ed96f9b3707cd49f15 Mon Sep 17 00:00:00 2001 From: "http://www.cse.unsw.edu.au/~willu/" <http://www.cse.unsw.edu.au/~willu/@web> Date: Fri, 13 Feb 2009 06:49:22 -0500 Subject: Update patch and reply to bug report. --- .../discussion.mdwn | 246 +++++++++++---------- 1 file changed, 135 insertions(+), 111 deletions(-) (limited to 'doc') diff --git a/doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn b/doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn index 8953a055e..8bc75420d 100644 --- a/doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn +++ b/doc/todo/automatic_use_of_syntax_plugin_on_source_code_files/discussion.mdwn @@ -35,10 +35,32 @@ I hit a wall the following example (the last commit in the above repo). </div> +>>> That is quite strange. I tested your version of the plugin. I had to revert one your changes to get it to +>>> work: the linenumber argument should not have a space at the end of it. Once I made that change, +>>> everything worked as expected. The output I get for your example is below: + + <div id="content"> + <ul> + <li><div id="sourcecode"></li> + </ul> + + <pre><tt><span class="linenum">00001:</span> <span class="normal">test</span></tt></pre> + + <p></div></p> + + </div> + +>>> I don't know what is going wrong for you... source-highlight, Markdown or something else. +>>> I do find it interesting the way the sourcecode `div` and the list get interleaved. That +>>> just looks like a Markdown thing though. +>>> In any case, I've updated the patch below to include most of your changes. -- [[Will]] + ---- #!/usr/bin/perl # markup source files + # Originally by Will Uther + # With modifications by David Bremner package IkiWiki::Plugin::sourcecode; use warnings; @@ -49,142 +71,144 @@ I hit a wall the following example (the last commit in the above repo). my %metaheaders; sub import { - hook(type => "getsetup", id => "sourcecode", call => \&getsetup); - hook(type => "checkconfig", id => "sourcecode", call => \&checkconfig); - hook(type => "pagetemplate", id => "sourcecode", call => \&pagetemplate); + hook(type => "getsetup", id => "sourcecode", call => \&getsetup); + hook(type => "checkconfig", id => "sourcecode", call => \&checkconfig); + hook(type => "pagetemplate", id => "sourcecode", call => \&pagetemplate); } sub getsetup () { - return - plugin => { - safe => 1, - rebuild => 1, # format plugin - }, - sourcecode_command => { - type => "string", - example => "/usr/bin/source-highlight", - description => "The command to execute to run source-highlight", - safe => 0, - rebuild => 1, - }, - sourcecode_lang => { - type => "string", - example => "c,cpp,h,java", - description => "Comma separated list of suffixes to recognise as source code", - safe => 1, - rebuild => 1, - }, - sourcecode_linenumbers => { - type => "boolean", - example => 1, - description => "Should we add line numbers to the source code", - safe => 1, - rebuild => 1, - }, - sourcecode_css => { - type => "string", - example => "sourcecode_style", - description => "page to use as css file for source", - safe => 1, - rebuild => 1, - }, + return + plugin => { + safe => 1, + rebuild => 1, # format plugin + }, + sourcecode_command => { + type => "string", + example => "/usr/bin/source-highlight", + description => "The command to execute to run source-highlight", + safe => 0, + rebuild => 1, + }, + sourcecode_lang => { + type => "string", + example => "c,cpp,h,java", + description => "Comma separated list of suffixes to recognise as source code", + safe => 1, + rebuild => 1, + }, + sourcecode_linenumbers => { + type => "boolean", + example => 1, + description => "Should we add line numbers to the source code", + safe => 1, + rebuild => 1, + }, + sourcecode_css => { + type => "string", + example => "sourcecode_style", + description => "page to use as css file for source", + safe => 1, + rebuild => 1, + }, } sub checkconfig () { - if (! $config{sourcecode_lang}) { - error("The sourcecode plugin requires a list of suffixes in the 'sourcecode_lang' config option"); - } - - if (! $config{sourcecode_command}) { - $config{sourcecode_command} = "source-highlight"; - } - - if (! length `which $config{sourcecode_command} 2>/dev/null`) { - error("The sourcecode plugin is unable to find the $config{sourcecode_command} command"); - } - - if (! $config{sourcecode_css}) { - $config{sourcecode_css} = "sourcecode_style"; - } - - if (! defined $config{sourcecode_linenumbers}) { - $config{sourcecode_linenumbers} = 1; - } - - my %langs = (); - - open(LANGS, "$config{sourcecode_command} --lang-list|"); - while (<LANGS>) { - if ($_ =~ /(\w+) = .+\.lang/) { - $langs{$1} = 1; - } - } - close(LANGS); - - foreach my $lang (split(/[, ]+/, $config{sourcecode_lang})) { - if ($langs{$lang}) { - hook(type => "htmlize", id => $lang, call => \&htmlize, keepextension => 1); - } else { - error("Your installation of source-highlight cannot handle sourcecode language $lang!"); - } - } + if (! $config{sourcecode_lang}) { + error("The sourcecode plugin requires a list of suffixes in the 'sourcecode_lang' config option"); + } + + if (! $config{sourcecode_command}) { + $config{sourcecode_command} = "source-highlight"; + } + + if (! length `which $config{sourcecode_command} 2>/dev/null`) { + error("The sourcecode plugin is unable to find the $config{sourcecode_command} command"); + } + + if (! $config{sourcecode_css}) { + $config{sourcecode_css} = "sourcecode_style"; + } + + if (! defined $config{sourcecode_linenumbers}) { + $config{sourcecode_linenumbers} = 1; + } + + my %langs = (); + + open(LANGS, "$config{sourcecode_command} --lang-list|"); + while (<LANGS>) { + if ($_ =~ /(\w+) = .+\.lang/) { + $langs{$1} = 1; + } + } + close(LANGS); + + foreach my $lang (split(/[, ]+/, $config{sourcecode_lang})) { + if ($langs{$lang}) { + hook(type => "htmlize", id => $lang, no_override=>1, + call => sub { htmlize(lang=>$lang, @_) }, + keepextension => 1); + } else { + error("Your installation of source-highlight cannot handle sourcecode language $lang!"); + } + } } sub htmlize (@) { - my %params=@_; + my %params=@_; + + my $page = $params{page}; - my $page = $params{page}; + eval q{use FileHandle}; + error($@) if $@; + eval q{use IPC::Open2}; + error($@) if $@; - eval q{use FileHandle}; - error($@) if $@; - eval q{use IPC::Open2}; - error($@) if $@; + local(*SPS_IN, *SPS_OUT); # Create local handles - local(*SPS_IN, *SPS_OUT); # Create local handles + my @args; - my @args; + if ($config{sourcecode_linenumbers}) { + push @args, '--line-number'; + } - if ($config{sourcecode_linenumbers}) { - push @args, '--line-number= '; - } + my $pid = open2(*SPS_IN, *SPS_OUT, $config{sourcecode_command}, + '-s', $params{lang}, + '-c', $config{sourcecode_css}, '--no-doc', + '-f', 'xhtml', + @args); - my $pid = open2(*SPS_IN, *SPS_OUT, $config{sourcecode_command}, - '-s', IkiWiki::pagetype($pagesources{$page}), - '-c', $config{sourcecode_css}, '--no-doc', - '-f', 'xhtml', - @args); + error("Unable to open $config{sourcecode_command}") unless $pid; - error("Unable to open $config{sourcecode_command}") unless $pid; + print SPS_OUT $params{content}; + close SPS_OUT; - print SPS_OUT $params{content}; - close SPS_OUT; + my @html = <SPS_IN>; + close SPS_IN; - my @html = <SPS_IN>; - close SPS_IN; - - waitpid $pid, 0; + waitpid $pid, 0; - my $stylesheet=bestlink($page, $config{sourcecode_css}.".css"); - if (length $stylesheet) { - push @{$metaheaders{$page}}, '<link href="'.urlto($stylesheet, $page).'"'. - ' rel="stylesheet"'. - ' type="text/css" />'; - } + my $stylesheet=bestlink($page, $config{sourcecode_css}.".css"); + if (length $stylesheet) { + push @{$metaheaders{$page}}, '<link href="'.urlto($stylesheet, $page).'"'. + ' rel="stylesheet"'. + ' type="text/css" />'; + } - return '<div id="sourcecode">'."\r\n".join("\r\n",@html)."\r\n</div>\n"; + return '<div id="sourcecode">'."\r\n".join("",@html)."\r\n</div>\r\n"; } sub pagetemplate (@) { - my %params=@_; + my %params=@_; - my $page=$params{page}; - my $template=$params{template}; + my $page=$params{page}; + my $template=$params{template}; - if (exists $metaheaders{$page} && $template->query(name => "meta")) { - # avoid duplicate meta lines - my %seen; - $template->param(meta => join("\n", grep { (! $seen{$_}) && ($seen{$_}=1) } @{$metaheaders{$page}})); - } + if (exists $metaheaders{$page} && $template->query(name => "meta")) { + # avoid duplicate meta lines + my %seen; + $template->param(meta => join("\n", grep { (! $seen{$_}) && ($seen{$_}=1) } @{$metaheaders{$page}})); + } } 1 -- cgit v1.2.3 From a50cabca02467a5e7d304bfca1daa95ff704ea3a Mon Sep 17 00:00:00 2001 From: "http://josephturian.blogspot.com/" <http://josephturian.blogspot.com/@web> Date: Fri, 13 Feb 2009 15:01:07 -0500 Subject: --- .../shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn (limited to 'doc') diff --git a/doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn b/doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn new file mode 100644 index 000000000..994929bfc --- /dev/null +++ b/doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn @@ -0,0 +1,8 @@ +On my initial ikiwiki -setup auto.setup, I get the following error: + + shortcut plugin will not work without shortcuts.mdwn + /home/turian/utils/etc/ikiwiki/auto.setup: ikiwiki --refresh --setup /home/turian/iki.setup failed at IkiWiki/Setup/Automator.pm line 105. + + +This is using the latest git pull of ikiwiki. +I am not sure why it is not finding shortcuts.mdwn. -- [[JosephTurian]] -- cgit v1.2.3 From bea8e0ad61578143786f57b416b3dc333864a1e4 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Sat, 14 Feb 2009 02:38:17 -0500 Subject: apply patch to fix googleform xhtml --- doc/plugins/google/discussion.mdwn | 18 +----------------- templates/googleform.tmpl | 4 ++-- 2 files changed, 3 insertions(+), 19 deletions(-) (limited to 'doc') diff --git a/doc/plugins/google/discussion.mdwn b/doc/plugins/google/discussion.mdwn index c18157665..babc919d2 100644 --- a/doc/plugins/google/discussion.mdwn +++ b/doc/plugins/google/discussion.mdwn @@ -3,20 +3,4 @@ which produces valid HTML but invalid XHTML. This is not very good since the default ikiwiki templates produce XHTML instead of HTML. -To produces valid XHTML, you need to edit -googleform.tmpl (in e.g. /usr/share/ikiwiki/templates): - - - --- googleform.tmpl.orig 2009-02-13 02:47:00.000000000 -0600 - +++ googleform.tmpl 2009-02-13 02:47:40.000000000 -0600 - @@ -1,6 +1,6 @@ - <form method="get" action="http://www.google.com/search" id="searchform"> - <div> - - <input name="sitesearch" value="<TMPL_VAR SITEFQDN>" type="hidden"> - - <input name="q" value="" id="searchbox" size="16" maxlength="255" type="text"> - + <input name="sitesearch" value="<TMPL_VAR SITEFQDN>" type="hidden" /> - + <input name="q" value="" id="searchbox" size="16" maxlength="255" type="text" /> - </div> - </form> - -Just tow tiny changes. +> Fixed, thanks for the patch! --[[Joey]] diff --git a/templates/googleform.tmpl b/templates/googleform.tmpl index 523cff001..e2d4a1f43 100644 --- a/templates/googleform.tmpl +++ b/templates/googleform.tmpl @@ -1,6 +1,6 @@ <form method="get" action="http://www.google.com/search" id="searchform"> <div> - <input name="sitesearch" value="<TMPL_VAR SITEFQDN>" type="hidden"> - <input name="q" value="" id="searchbox" size="16" maxlength="255" type="text"> + <input name="sitesearch" value="<TMPL_VAR SITEFQDN>" type="hidden" /> + <input name="q" value="" id="searchbox" size="16" maxlength="255" type="text" /> </div> </form> -- cgit v1.2.3 From 684cd73a79405ee58e115e603213c39a33d710cf Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Sat, 14 Feb 2009 03:01:35 -0500 Subject: downgrade missing shortcuts page error to warning and response to bug report --- IkiWiki/Plugin/shortcut.pm | 8 +++++--- ...shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn | 12 ++++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) (limited to 'doc') diff --git a/IkiWiki/Plugin/shortcut.pm b/IkiWiki/Plugin/shortcut.pm index c1e6a7eb3..5693ee782 100644 --- a/IkiWiki/Plugin/shortcut.pm +++ b/IkiWiki/Plugin/shortcut.pm @@ -28,10 +28,12 @@ sub checkconfig () { $srcfile=srcfile("shortcuts.mdwn", 1); } if (! defined $srcfile) { - error(sprintf(gettext("shortcut plugin will not work without %s"), - "shortcuts.".$config{default_pageext})); + print STDERR sprintf(gettext("shortcut plugin will not work without %s"), + "shortcuts.".$config{default_pageext})."\n"; + } + else { + IkiWiki::preprocess("shortcuts", "shortcuts", readfile($srcfile)); } - IkiWiki::preprocess("shortcuts", "shortcuts", readfile($srcfile)); } } diff --git a/doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn b/doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn index 994929bfc..85844132d 100644 --- a/doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn +++ b/doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn @@ -6,3 +6,15 @@ On my initial ikiwiki -setup auto.setup, I get the following error: This is using the latest git pull of ikiwiki. I am not sure why it is not finding shortcuts.mdwn. -- [[JosephTurian]] + +> The error, and the weird paths suggest to me that you +> have installed ikiwiki in a strange way, and it is failing +> to find its basewiki underlay. The `$installdir` is +> hardcoded into IkiWiki.pm at build time, based on the PREFIX +> setting (see README). +> +> If that's not set right, you'll have other problems than just this one, +> so I suggest you check how you installed ikiwiki. +> +> Anyway, I've made the shortcut plugin only warn about this.. +> --[[Joey]] -- cgit v1.2.3 From 0bf554ce06746ca4d6b9ecc92ea149144c797508 Mon Sep 17 00:00:00 2001 From: gothicx <gothicx@web> Date: Sat, 14 Feb 2009 07:19:32 -0500 Subject: --- doc/bugs/remove_orphaned_sparkline-php_from_Suggests.mdwn | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 doc/bugs/remove_orphaned_sparkline-php_from_Suggests.mdwn (limited to 'doc') diff --git a/doc/bugs/remove_orphaned_sparkline-php_from_Suggests.mdwn b/doc/bugs/remove_orphaned_sparkline-php_from_Suggests.mdwn new file mode 100644 index 000000000..8f0482791 --- /dev/null +++ b/doc/bugs/remove_orphaned_sparkline-php_from_Suggests.mdwn @@ -0,0 +1,7 @@ +Hi! + +How about to replace sparkline-php from Suggests by a better alternative? + +I would like to file a RM bug to get it out of archive. Do you have a better alternative for it? PHP has a lot of them.. + +Thanks -- cgit v1.2.3 From e159545ba720ab0ed37f5e71c7fd04e9befcbfc0 Mon Sep 17 00:00:00 2001 From: bremner <bremner@web> Date: Sat, 14 Feb 2009 08:36:28 -0500 Subject: Throw another source highlighting option into the ring --- doc/todo/syntax_highlighting.mdwn | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'doc') diff --git a/doc/todo/syntax_highlighting.mdwn b/doc/todo/syntax_highlighting.mdwn index d9a791c6f..ca701e0d0 100644 --- a/doc/todo/syntax_highlighting.mdwn +++ b/doc/todo/syntax_highlighting.mdwn @@ -26,6 +26,11 @@ pages, as well as doing syntax highlighting as a preprocessor directive * [[users/jasonblevins]]'s code plugin uses src-highlight, and supports both while file and directive use. +* [hlsimple](http://pivot.cs.unb.ca/git/?p=ikiplugins.git;a=blob_plain;f=IkiWiki/Plugin/hlsimple.pm;hb=795f888a2c1b17f6d90a8f01f74b09395f0738d5) is a wrapper for the the perl module Syntax::Highlight::Engine::Simple. This is pure perl, pretty simple, uses css. It ought to be pretty fast (according to the author, and just because it is not external). +On the other hand, there are not many predefined languages yet. Defining language syntaxes is about as much +work as source-highlight, but in perl. I plan to package the base module for debian. Perhaps after the author +releases the 5 or 6 language definitions he has running on his web site, it might be suitable for inclusion in ikiwiki. [[DavidBremner]] + ## General problems * Using non-perl syntax highlighting backends is slow. I'd prefer either -- cgit v1.2.3 From 02b1929445c20ddc838c3b9a2a61db912beef676 Mon Sep 17 00:00:00 2001 From: bremner <bremner@web> Date: Sat, 14 Feb 2009 08:39:01 -0500 Subject: link to HEAD instead of today's sha1 of hlsimple.pm --- doc/todo/syntax_highlighting.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/todo/syntax_highlighting.mdwn b/doc/todo/syntax_highlighting.mdwn index ca701e0d0..b5d083ba5 100644 --- a/doc/todo/syntax_highlighting.mdwn +++ b/doc/todo/syntax_highlighting.mdwn @@ -26,7 +26,7 @@ pages, as well as doing syntax highlighting as a preprocessor directive * [[users/jasonblevins]]'s code plugin uses src-highlight, and supports both while file and directive use. -* [hlsimple](http://pivot.cs.unb.ca/git/?p=ikiplugins.git;a=blob_plain;f=IkiWiki/Plugin/hlsimple.pm;hb=795f888a2c1b17f6d90a8f01f74b09395f0738d5) is a wrapper for the the perl module Syntax::Highlight::Engine::Simple. This is pure perl, pretty simple, uses css. It ought to be pretty fast (according to the author, and just because it is not external). +* [hlsimple](http://pivot.cs.unb.ca/git/?p=ikiplugins.git;a=blob_plain;f=IkiWiki/Plugin/hlsimple.pm;hb=HEAD) is a wrapper for the the perl module Syntax::Highlight::Engine::Simple. This is pure perl, pretty simple, uses css. It ought to be pretty fast (according to the author, and just because it is not external). On the other hand, there are not many predefined languages yet. Defining language syntaxes is about as much work as source-highlight, but in perl. I plan to package the base module for debian. Perhaps after the author releases the 5 or 6 language definitions he has running on his web site, it might be suitable for inclusion in ikiwiki. [[DavidBremner]] -- cgit v1.2.3 From 4bc18470b86df3271d98f353d625f595c194c280 Mon Sep 17 00:00:00 2001 From: "http://josephturian.blogspot.com/" <http://josephturian.blogspot.com/@web> Date: Sat, 14 Feb 2009 12:59:49 -0500 Subject: --- .../shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn b/doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn index 85844132d..5efbad5fb 100644 --- a/doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn +++ b/doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn @@ -12,9 +12,17 @@ I am not sure why it is not finding shortcuts.mdwn. -- [[JosephTurian]] > to find its basewiki underlay. The `$installdir` is > hardcoded into IkiWiki.pm at build time, based on the PREFIX > setting (see README). -> +> > If that's not set right, you'll have other problems than just this one, > so I suggest you check how you installed ikiwiki. > > Anyway, I've made the shortcut plugin only warn about this.. > --[[Joey]] + +> > I have +> > $installdir="/home/turian/utils/" +> > and the underlay dir is set to: +> > "$installdir/share/ikiwiki/basewiki", +> > which does contain shortcuts.mdwn. So I am not sure why it is not finding it. +> > I am grappling with installing ikiwiki in a user account, and would like to get the directories set up correctly. +> > How can I debug this issue further? -- cgit v1.2.3 From d1f2437909ee3ae9ee3e3a43be4ede1c5e3ef50a Mon Sep 17 00:00:00 2001 From: "http://cmelbye.myopenid.com/" <http://cmelbye.myopenid.com/@web> Date: Sat, 14 Feb 2009 16:13:34 -0500 Subject: blanking for the luls --- doc/index.mdwn | 26 -------------------------- 1 file changed, 26 deletions(-) (limited to 'doc') diff --git a/doc/index.mdwn b/doc/index.mdwn index 93526c42c..8b1378917 100644 --- a/doc/index.mdwn +++ b/doc/index.mdwn @@ -1,27 +1 @@ -Ikiwiki is a **wiki compiler**. It converts wiki pages into HTML pages -suitable for publishing on a website. Ikiwiki stores pages and history in a -[[revision_control_system|rcs]] such as [[Subversion|rcs/svn]] or [[rcs/Git]]. -There are many other [[features]], including support for -[[blogging|blog]], as well as a large array of [[plugins]]. -[[!template id=links]] - -## using ikiwiki - -[[Setup]] has a tutorial for setting up ikiwiki, or you can read the -[[man_page|usage]]. There are some [[examples]] of things you can do -with ikiwiki, and some [[tips]]. - -All wikis are supposed to have a [[SandBox]], so this one does too. - -This site generally runs the latest release of ikiwiki; currently, it runs -ikiwiki [[!version ]]. - -## developer resources - -The [[RoadMap]] describes where the project is going. -[[Bugs]], [[TODO]] items, [[wishlist]] items, and [[patches|patch]] -can be submitted and tracked using this wiki. - -ikiwiki is developed by [[Joey]] and many contributors, -and is [[FreeSoftware]]. -- cgit v1.2.3 From 909d4bd32947c137121391b05b3c9deb6c6e1eb9 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Sat, 14 Feb 2009 21:42:58 -0500 Subject: Revert "blanking for the luls" PS: You're banned. --- doc/index.mdwn | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'doc') diff --git a/doc/index.mdwn b/doc/index.mdwn index 8b1378917..93526c42c 100644 --- a/doc/index.mdwn +++ b/doc/index.mdwn @@ -1 +1,27 @@ +Ikiwiki is a **wiki compiler**. It converts wiki pages into HTML pages +suitable for publishing on a website. Ikiwiki stores pages and history in a +[[revision_control_system|rcs]] such as [[Subversion|rcs/svn]] or [[rcs/Git]]. +There are many other [[features]], including support for +[[blogging|blog]], as well as a large array of [[plugins]]. +[[!template id=links]] + +## using ikiwiki + +[[Setup]] has a tutorial for setting up ikiwiki, or you can read the +[[man_page|usage]]. There are some [[examples]] of things you can do +with ikiwiki, and some [[tips]]. + +All wikis are supposed to have a [[SandBox]], so this one does too. + +This site generally runs the latest release of ikiwiki; currently, it runs +ikiwiki [[!version ]]. + +## developer resources + +The [[RoadMap]] describes where the project is going. +[[Bugs]], [[TODO]] items, [[wishlist]] items, and [[patches|patch]] +can be submitted and tracked using this wiki. + +ikiwiki is developed by [[Joey]] and many contributors, +and is [[FreeSoftware]]. -- cgit v1.2.3 From a0dadc9108bad3202fb8c35a844a90788662b484 Mon Sep 17 00:00:00 2001 From: "http://hendry.iki.fi/" <http://hendry.iki.fi/@web> Date: Sun, 15 Feb 2009 06:16:45 -0500 Subject: trying to get my favourite wiki to support my favourite markup :-) --- doc/bugs/html5_support.mdwn | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 doc/bugs/html5_support.mdwn (limited to 'doc') diff --git a/doc/bugs/html5_support.mdwn b/doc/bugs/html5_support.mdwn new file mode 100644 index 000000000..14c2597e9 --- /dev/null +++ b/doc/bugs/html5_support.mdwn @@ -0,0 +1,16 @@ +Some elements of [HTML5](http://www.whatwg.org/specs/web-apps/current-work/multipage/) can be safely supported by ikiwiki. There are [several differences between HTML4 and HTMl5](http://www.w3.org/TR/html5-diff/). Unsupported new elements _should degrade gracefully_. + +However as an [early adopter](http://en.wikipedia.org/wiki/Early_adopter) I would like to start using HTML5 as much as possible. The more pragmatic solution would be to use elements supported by the browsers of your readership I guess. I'm following other early adopters like [Anne](http://annevankesteren.nl/) for clues on how to proceed. + +* [Initial patch](http://git.webconverger.org/?p=ikiwiki;a=commit;h=2e2bb3f74f5000b1269142d6f9bdf1bcb4075ca4) + +I'm unsure how to turn off the test validation by the very old [wdg-html-validator](http://packages.qa.debian.org/w/wdg-html-validator.html). So I have been unable to test my initial patches as I can't build ikiwiki. I would like to know how to edit the rules/Makefile to temporarily disable this. + +[validator.nu](http://validator.nu/) incidentally is **the** HTML5 validator, however it is almost impossible to sanely introduce as a build dependency because of its insane Java requirements. :( I test locally via [cURL](http://wiki.whatwg.org/wiki/IDE), though Debian packages cannot be built with a network dependency. + +# Notes + +* the [time element](http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-time-element) ideally needs the datatime= attribute set with iso8601 time +* I suspect the migration to the new semantic elements of HTML5 like article, header & footer to take some time, due to browser support. Though they sure make the template code look much nicer. +* `<br>` and too many `<div>`s usually indicates poor semantics. +* Many of the header `<span>`s should be proper [header elements](http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements) -- cgit v1.2.3 From 92b8564cb852ab0ae080d9c97205f51f80685de4 Mon Sep 17 00:00:00 2001 From: "http://hendry.iki.fi/" <http://hendry.iki.fi/@web> Date: Sun, 15 Feb 2009 06:26:09 -0500 Subject: openid2 --- doc/bugs/support_for_openid2_logins.mdwn | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 doc/bugs/support_for_openid2_logins.mdwn (limited to 'doc') diff --git a/doc/bugs/support_for_openid2_logins.mdwn b/doc/bugs/support_for_openid2_logins.mdwn new file mode 100644 index 000000000..f78d50c3c --- /dev/null +++ b/doc/bugs/support_for_openid2_logins.mdwn @@ -0,0 +1,10 @@ +I have several complaints that users cannot contribute to my ikiwiki instances since they only have OpenID logins that support OpenID2. E.g. Yahoo!'s OpenID only supports 2.0+ + +This is not the fault of ikiwiki, though the problem lies within the [perl openid consumer](http://packages.qa.debian.org/libn/libnet-openid-consumer-perl.html) in Debian which is a 1.x implementation AFAIK. + +I've contacted JanRain who have pointed me to: + +* [OpenID4Perl](http://code.sxip.com/openid4perl/) +* Some [work](http://code.sixapart.com/svn/openid/trunk/perl/) by David Recordon + +However both Perl OpenID 2.x implementations have not been released and are incomplete implementations. :( -- cgit v1.2.3 From 71f353640c2d42b068f8549f1d9acc96060d8d81 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Sun, 15 Feb 2009 17:36:27 -0500 Subject: suggestion --- doc/bugs/html5_support.mdwn | 2 ++ 1 file changed, 2 insertions(+) (limited to 'doc') diff --git a/doc/bugs/html5_support.mdwn b/doc/bugs/html5_support.mdwn index 14c2597e9..806454bcb 100644 --- a/doc/bugs/html5_support.mdwn +++ b/doc/bugs/html5_support.mdwn @@ -6,6 +6,8 @@ However as an [early adopter](http://en.wikipedia.org/wiki/Early_adopter) I woul I'm unsure how to turn off the test validation by the very old [wdg-html-validator](http://packages.qa.debian.org/w/wdg-html-validator.html). So I have been unable to test my initial patches as I can't build ikiwiki. I would like to know how to edit the rules/Makefile to temporarily disable this. +> Don't run ¨make test" ... --[[Joey]] + [validator.nu](http://validator.nu/) incidentally is **the** HTML5 validator, however it is almost impossible to sanely introduce as a build dependency because of its insane Java requirements. :( I test locally via [cURL](http://wiki.whatwg.org/wiki/IDE), though Debian packages cannot be built with a network dependency. # Notes -- cgit v1.2.3 From 8da7875b2f341618e4e7da4cfe7169ca10e9607b Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Sun, 15 Feb 2009 17:40:10 -0500 Subject: suggestion --- doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn | 3 +++ 1 file changed, 3 insertions(+) (limited to 'doc') diff --git a/doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn b/doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn index 5efbad5fb..57792c5ec 100644 --- a/doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn +++ b/doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn @@ -26,3 +26,6 @@ I am not sure why it is not finding shortcuts.mdwn. -- [[JosephTurian]] > > which does contain shortcuts.mdwn. So I am not sure why it is not finding it. > > I am grappling with installing ikiwiki in a user account, and would like to get the directories set up correctly. > > How can I debug this issue further? + +>>>> Why don't you strace it and look at where it's looking for +>>>> shortcuts.mdwn. --[[Joey]] -- cgit v1.2.3 From a86638f980db533447bbc3d332a4b762efbf7a5f Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Sun, 15 Feb 2009 17:48:12 -0500 Subject: response --- doc/bugs/remove_orphaned_sparkline-php_from_Suggests.mdwn | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'doc') diff --git a/doc/bugs/remove_orphaned_sparkline-php_from_Suggests.mdwn b/doc/bugs/remove_orphaned_sparkline-php_from_Suggests.mdwn index 8f0482791..b4e2a1501 100644 --- a/doc/bugs/remove_orphaned_sparkline-php_from_Suggests.mdwn +++ b/doc/bugs/remove_orphaned_sparkline-php_from_Suggests.mdwn @@ -5,3 +5,16 @@ How about to replace sparkline-php from Suggests by a better alternative? I would like to file a RM bug to get it out of archive. Do you have a better alternative for it? PHP has a lot of them.. Thanks + +> sparline-php is orphaned *in Debian*. Upstream, is has seen activity as +> recently as 11 months ago. +> +> I don't know of a better alternative. I looked at the perl sparkline +> stuff in CPAN and is was bad enough that the pain of using php from this +> perl program was a better alternative. +> +> Anyway, it works great; maintaining the sparkline-php package in Debian +> would certianly be much less work than finding some alternative and +> rewriting the ikiwiki code to use it, *and* packaging that alternative +> and maintaining it in Debian. So your suggestion doesn't make a lot of +> sense; Debian should just find a maintainer for sparkline-php. --[[Joey]] -- cgit v1.2.3 From d6c530889ccb6284784b78f9bd7f0620e99f72c0 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Sun, 15 Feb 2009 18:13:22 -0500 Subject: further comments --- doc/bugs/html5_support.mdwn | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'doc') diff --git a/doc/bugs/html5_support.mdwn b/doc/bugs/html5_support.mdwn index 806454bcb..fe70a08d1 100644 --- a/doc/bugs/html5_support.mdwn +++ b/doc/bugs/html5_support.mdwn @@ -1,9 +1,36 @@ Some elements of [HTML5](http://www.whatwg.org/specs/web-apps/current-work/multipage/) can be safely supported by ikiwiki. There are [several differences between HTML4 and HTMl5](http://www.w3.org/TR/html5-diff/). Unsupported new elements _should degrade gracefully_. +> In the `origin/html` branch, there is an old work in progress to make +> ikiwiki use html 4 instead of xhtml. If that could be brought forward and +> finished then the plan has been to switch ikiwiki over to doing html 4. +> I don't think it makes sense to try to make it support both xhtml and +> html, it would complicate the code for no benefit. +> +> I think that is the best route toward supporting html 5 as well. Get +> ikiwiki doing html 4 first and the changes needed to get to 5 from there +> should be small. Probably just changing some doctypes and a few other +> small changes which could be kept in a branch, or even shipped in ikiwiki +> mainline as an alternate set of templates. Some of the changes, like +> supporting new html 5 tags in the htmlscrubber, can be done in mainline. +> (Like was already done for the html 5 video and audio tags.) +> +> This approach seems much more maintainable going foward than rolling a +> html 5 branch immediatly and trying to keep that continually up-to-date +> with mainline ikiwiki that is still using xhtml. --[[Joey]] + However as an [early adopter](http://en.wikipedia.org/wiki/Early_adopter) I would like to start using HTML5 as much as possible. The more pragmatic solution would be to use elements supported by the browsers of your readership I guess. I'm following other early adopters like [Anne](http://annevankesteren.nl/) for clues on how to proceed. * [Initial patch](http://git.webconverger.org/?p=ikiwiki;a=commit;h=2e2bb3f74f5000b1269142d6f9bdf1bcb4075ca4) +> I can't figure out how to pull from this repository. + + joey@gnu:~/tmp>git clone git://webconverger.org/git/ikiwiki.git + Initialized empty Git repository in /home/joey/tmp/ikiwiki/.git/ + fatal: The remote end hung up unexpectedly + +> Assuming I got the url right.. your gitweb claims it's +> `git://webconverger.org/git/iceweasel-webconverger.git` --[[Joey]] + I'm unsure how to turn off the test validation by the very old [wdg-html-validator](http://packages.qa.debian.org/w/wdg-html-validator.html). So I have been unable to test my initial patches as I can't build ikiwiki. I would like to know how to edit the rules/Makefile to temporarily disable this. > Don't run ¨make test" ... --[[Joey]] @@ -15,4 +42,7 @@ I'm unsure how to turn off the test validation by the very old [wdg-html-validat * the [time element](http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-time-element) ideally needs the datatime= attribute set with iso8601 time * I suspect the migration to the new semantic elements of HTML5 like article, header & footer to take some time, due to browser support. Though they sure make the template code look much nicer. * `<br>` and too many `<div>`s usually indicates poor semantics. + > YMMV, but I tend to find that kind of concern counterproductive. + > --[[Joey]] * Many of the header `<span>`s should be proper [header elements](http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements) + > See [[todo/Option_to_make_title_an_h1__63__]] for why not. --[[Joey]] -- cgit v1.2.3 From a543e8934b4562d175dcc24a13f97ec6d07d5647 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Sun, 15 Feb 2009 18:32:09 -0500 Subject: add news item for ikiwiki 3.04 --- doc/news/version_3.03.mdwn | 15 --------------- doc/news/version_3.04.mdwn | 17 +++++++++++++++++ 2 files changed, 17 insertions(+), 15 deletions(-) delete mode 100644 doc/news/version_3.03.mdwn create mode 100644 doc/news/version_3.04.mdwn (limited to 'doc') diff --git a/doc/news/version_3.03.mdwn b/doc/news/version_3.03.mdwn deleted file mode 100644 index b999344e1..000000000 --- a/doc/news/version_3.03.mdwn +++ /dev/null @@ -1,15 +0,0 @@ -ikiwiki 3.03 released with [[!toggle text="these changes"]] -[[!toggleable text=""" - * Avoid feeding decoded unicode to Term::ReadLine. Closes: [512169](http://bugs.debian.org/512169) - * blogspam: Log spam info on failure in debug mode. - * Remove nonstandard css. Closes: #[512378](http://bugs.debian.org/512378) - * blogspam: Fix use of blogspam\_options and blogspam\_server config settings. - * comments: If comment content checks fail, store the comment - (in .ikiwiki/comments\_pending) for moderator review. - * comments: Add a moderation web interface, which admins can - access via their Preferences page. - * git: Fix malformed utf8 received from git. - * meta: New "updated" metadata specifies a fake modification time for a - page, to be output into RSS and Atom feeds. (smcv) - * underlay: New plugin, allows pulling in additional files not - in version control. (smcv)"""]] \ No newline at end of file diff --git a/doc/news/version_3.04.mdwn b/doc/news/version_3.04.mdwn new file mode 100644 index 000000000..b29a43a09 --- /dev/null +++ b/doc/news/version_3.04.mdwn @@ -0,0 +1,17 @@ +ikiwiki 3.04 released with [[!toggle text="these changes"]] +[[!toggleable text=""" + * 404: New plugin which lets you use the IkiWiki CGI script as + an Apache 404 handler, to give the behaviour of various other wiki + engines where visiting a nonexistent page provides you with a link + to create it. (smcv) + * Factor out redundant code into goto plugin. (smcv) + * Work around XML::Atom strangeness that results in double-encoded posts. + (smcv) + * Updated German translation (Kai Wasserbäch). Closes: #[514251](http://bugs.debian.org/514251) + * Fix unusual --setup --post-commit command line option combo. + * Create any missing directory necessary to put the wrapper + file into. Closes: #[514384](http://bugs.debian.org/514384) + * shortcut: If default\_pageext is set, first look for + shortcuts.default\_pageext. + * Allow comments, rename, remove, and attachment plugins to be used + even if the editpage plugin is disabled."""]] \ No newline at end of file -- cgit v1.2.3 From aadfc9e4eb388ae77e67156bca53877b49cde7ea Mon Sep 17 00:00:00 2001 From: "http://hendry.iki.fi/" <http://hendry.iki.fi/@web> Date: Mon, 16 Feb 2009 04:56:59 -0500 Subject: fixed git cloneurl --- doc/bugs/html5_support.mdwn | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'doc') diff --git a/doc/bugs/html5_support.mdwn b/doc/bugs/html5_support.mdwn index fe70a08d1..1090db154 100644 --- a/doc/bugs/html5_support.mdwn +++ b/doc/bugs/html5_support.mdwn @@ -23,17 +23,12 @@ However as an [early adopter](http://en.wikipedia.org/wiki/Early_adopter) I woul * [Initial patch](http://git.webconverger.org/?p=ikiwiki;a=commit;h=2e2bb3f74f5000b1269142d6f9bdf1bcb4075ca4) > I can't figure out how to pull from this repository. - - joey@gnu:~/tmp>git clone git://webconverger.org/git/ikiwiki.git - Initialized empty Git repository in /home/joey/tmp/ikiwiki/.git/ - fatal: The remote end hung up unexpectedly - -> Assuming I got the url right.. your gitweb claims it's -> `git://webconverger.org/git/iceweasel-webconverger.git` --[[Joey]] +>> Sorry! I have fixed the cloneurl file to read `git clone git://webconverger.org/git/ikiwiki` I'm unsure how to turn off the test validation by the very old [wdg-html-validator](http://packages.qa.debian.org/w/wdg-html-validator.html). So I have been unable to test my initial patches as I can't build ikiwiki. I would like to know how to edit the rules/Makefile to temporarily disable this. > Don't run ¨make test" ... --[[Joey]] +>> I don't quite grok debhelper7 [rules](http://git.ikiwiki.info/?p=ikiwiki;a=blob;f=debian/rules). [validator.nu](http://validator.nu/) incidentally is **the** HTML5 validator, however it is almost impossible to sanely introduce as a build dependency because of its insane Java requirements. :( I test locally via [cURL](http://wiki.whatwg.org/wiki/IDE), though Debian packages cannot be built with a network dependency. @@ -44,5 +39,6 @@ I'm unsure how to turn off the test validation by the very old [wdg-html-validat * `<br>` and too many `<div>`s usually indicates poor semantics. > YMMV, but I tend to find that kind of concern counterproductive. > --[[Joey]] + * Many of the header `<span>`s should be proper [header elements](http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements) > See [[todo/Option_to_make_title_an_h1__63__]] for why not. --[[Joey]] -- cgit v1.2.3 From 87210fc19e79c766976dabcd5ce6824d7fc2a5ef Mon Sep 17 00:00:00 2001 From: Jon Dowland <jon@ra.ncl.ac.uk> Date: Mon, 16 Feb 2009 11:31:46 +0000 Subject: fix link to h1title plugin --- doc/todo/Option_to_make_title_an_h1__63__.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/todo/Option_to_make_title_an_h1__63__.mdwn b/doc/todo/Option_to_make_title_an_h1__63__.mdwn index 8676bec48..f4023d6dd 100644 --- a/doc/todo/Option_to_make_title_an_h1__63__.mdwn +++ b/doc/todo/Option_to_make_title_an_h1__63__.mdwn @@ -11,4 +11,4 @@ Currently, the page title (either the name of the page or the title specified wi > latter, making `#` (only when on the first line) set the page title, removing it from > the page body. --[[JasonBlevins]], October 22, 2008 - [h1title]: http://code.jblevins.org/ikiwiki/plugins/h1title.pm + [h1title]: http://code.jblevins.org/ikiwiki/plugins.git/plain/h1title.pm -- cgit v1.2.3 From c1d800f29c869fd53b28ada69dba6e9e4700011f Mon Sep 17 00:00:00 2001 From: Jon Dowland <jon@ra.ncl.ac.uk> Date: Mon, 16 Feb 2009 11:33:39 +0000 Subject: link to goto plugin page --- doc/news/version_3.04.mdwn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'doc') diff --git a/doc/news/version_3.04.mdwn b/doc/news/version_3.04.mdwn index b29a43a09..e04093c8f 100644 --- a/doc/news/version_3.04.mdwn +++ b/doc/news/version_3.04.mdwn @@ -4,7 +4,7 @@ ikiwiki 3.04 released with [[!toggle text="these changes"]] an Apache 404 handler, to give the behaviour of various other wiki engines where visiting a nonexistent page provides you with a link to create it. (smcv) - * Factor out redundant code into goto plugin. (smcv) + * Factor out redundant code into [[plugins/goto]] plugin. (smcv) * Work around XML::Atom strangeness that results in double-encoded posts. (smcv) * Updated German translation (Kai Wasserbäch). Closes: #[514251](http://bugs.debian.org/514251) @@ -14,4 +14,4 @@ ikiwiki 3.04 released with [[!toggle text="these changes"]] * shortcut: If default\_pageext is set, first look for shortcuts.default\_pageext. * Allow comments, rename, remove, and attachment plugins to be used - even if the editpage plugin is disabled."""]] \ No newline at end of file + even if the editpage plugin is disabled."""]] -- cgit v1.2.3 From 6f9c18f7cbbdc8305c6d4373a9d8a00d0c47af5f Mon Sep 17 00:00:00 2001 From: AlexandreDupas <AlexandreDupas@web> Date: Mon, 16 Feb 2009 08:00:18 -0500 Subject: correct WikiLinks to the WikiLink page --- doc/plugins/write.mdwn | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'doc') diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn index 1a119b99b..acf9a2cdd 100644 --- a/doc/plugins/write.mdwn +++ b/doc/plugins/write.mdwn @@ -90,6 +90,11 @@ function is passed no values. It's ok for the function to call This hook is called just before ikiwiki scans the wiki for changed files. It's useful for plugins that need to create or modify a source page. The + + + + + function is passed no values. ### needsbuild @@ -107,7 +112,7 @@ adding or removing files from it. This hook is called early in the process of building the wiki, and is used as a first pass scan of the page, to collect metadata about the page. It's -mostly used to scan the page for WikiLinks, and add them to `%links`. +mostly used to scan the page for [[WikiLinks|ikiwiki/WikiLink]], and add them to `%links`. Present in IkiWiki 2.40 and later. The function is passed named parameters "page" and "content". Its return @@ -168,7 +173,7 @@ htmlize the page) along with the rest of the page. hook(type => "linkify", id => "foo", call => \&linkify); -This hook is called to convert [[WikiLinks|WikiLink]] on the page into html +This hook is called to convert [[WikiLinks|ikiwiki/WikiLink]] on the page into html links. The function is passed named parameters "page", "destpage", and "content". It should return the linkified content. Present in IkiWiki 2.40 and later. @@ -434,7 +439,7 @@ describes the plugin as a whole. For example: * `example` can be set to an example value. * `description` is a short description of the option. * `link` is a link to further information about the option. This can either - be a wikilink, or an url. + be a [[ikiwiki/WikiLink]], or an url. * `advanced` can be set to true if the option is more suitable for advanced users. * `safe` should be false if the option should not be displayed in unsafe @@ -680,7 +685,7 @@ a wiki page name. #### `linkpage($)` This converts text that could have been entered by the user as a -[[WikiLink]] into a wiki page name. +[[ikiwiki/WikiLink]] into a wiki page name. #### `srcfile($;$)` @@ -745,7 +750,7 @@ are collected together to form the RecentChanges page, for example. To make an internal use page, register a filename extension that starts with "_". Internal use pages cannot be edited with the web interface, -generally shouldn't contain wikilinks or preprocessor directives (use +generally shouldn't contain [[WikiLinks|ikiwiki/WikiLink]] or preprocessor directives (use either on them with extreme caution), and are not matched by regular PageSpecs glob patterns, but instead only by a special `internal()` [[ikiwiki/PageSpec]]. @@ -914,7 +919,7 @@ or wrap one of the functions. For example, your plugin might want to override `displaytime`, to change the html markup used when displaying a date. Or it might want to override `IkiWiki::formattime`, to change how a date is formatted. Or perhaps you -want to override `bestlink` and change how ikiwiki deals with WikiLinks. +want to override `bestlink` and change how ikiwiki deals with [[WikiLinks|ikiwiki/WikiLink]]. By venturing into this territory, your plugin is becoming tightly tied to ikiwiki's internals. And it might break if those internals change. But -- cgit v1.2.3 From 1611abd99a35a4ffcc6a0e779845733578406b2a Mon Sep 17 00:00:00 2001 From: rafael2k <rafael2k@web> Date: Mon, 16 Feb 2009 08:46:57 -0500 Subject: --- doc/todo/latex.mdwn | 3 +++ 1 file changed, 3 insertions(+) (limited to 'doc') diff --git a/doc/todo/latex.mdwn b/doc/todo/latex.mdwn index eb53538b4..604c5e87f 100644 --- a/doc/todo/latex.mdwn +++ b/doc/todo/latex.mdwn @@ -31,6 +31,9 @@ Conversely, how about adding a plugin to support exporting to LaTeX? a latex plugin. Examples [here](http://ng.l4x.org/latex/). Currently without image support for hevea. And the latex2html output has the wrong charset and no command line switch to change that. Dreamland. +As this link is not working, I setted a mirror here: <a href="http://satangoss.sarava.org/ikiwiki/latex.pm">http://satangoss.sarava.org/ikiwiki/latex.pm</a>. + + ---- Okay, now is the time for a mid term report i think. -- cgit v1.2.3 From 6dd9f998b3e071c17c3958232907fe7cffe81566 Mon Sep 17 00:00:00 2001 From: "http://josephturian.blogspot.com/" <http://josephturian.blogspot.com/@web> Date: Mon, 16 Feb 2009 17:03:10 -0500 Subject: --- doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn | 2 ++ 1 file changed, 2 insertions(+) (limited to 'doc') diff --git a/doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn b/doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn index 57792c5ec..5cc669106 100644 --- a/doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn +++ b/doc/bugs/shortcut_plugin_will_not_work_without_shortcuts.mdwn.mdwn @@ -29,3 +29,5 @@ I am not sure why it is not finding shortcuts.mdwn. -- [[JosephTurian]] >>>> Why don't you strace it and look at where it's looking for >>>> shortcuts.mdwn. --[[Joey]] + +>>>>>> Hmm, so change the PERL5LIB seemed to fix this. [[Done]]. -- cgit v1.2.3 From efc40f05a5fa3db1de0af87e6885663a8546f7e3 Mon Sep 17 00:00:00 2001 From: "http://josephturian.blogspot.com/" <http://josephturian.blogspot.com/@web> Date: Mon, 16 Feb 2009 17:14:01 -0500 Subject: --- .../Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 doc/bugs/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn (limited to 'doc') diff --git a/doc/bugs/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn b/doc/bugs/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn new file mode 100644 index 000000000..1eac9c76d --- /dev/null +++ b/doc/bugs/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn @@ -0,0 +1,9 @@ +How do I setup an old ikiwiki repository on a new system? + +I have a git repository from an old ikiwiki system. +I reformatted that hard drive, but saved the repository. + +I copied it the repository to my new system, which is now the "master" host. +I installed ikiwiki on the new system. + +How do I set up an ikiwiki system using a pre-existing repository (instead of creating a new one)? --[[JosephTurian]] -- cgit v1.2.3 From eb01c46a15f927541751726d49b2f8a429f1935a Mon Sep 17 00:00:00 2001 From: "http://jjheng.myopenid.com/" <http://jjheng.myopenid.com/@web> Date: Tue, 17 Feb 2009 01:55:10 -0500 Subject: ask indexpages question --- doc/forum/usedirs___38___indexpages_using_problem.mdwn | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 doc/forum/usedirs___38___indexpages_using_problem.mdwn (limited to 'doc') diff --git a/doc/forum/usedirs___38___indexpages_using_problem.mdwn b/doc/forum/usedirs___38___indexpages_using_problem.mdwn new file mode 100644 index 000000000..1ca95cc88 --- /dev/null +++ b/doc/forum/usedirs___38___indexpages_using_problem.mdwn @@ -0,0 +1,12 @@ +My ikiwiki setup file configed like: + + usedirs => 0, + indexpages => 1, + +I create a directory and some .mdwn source file /Whatis/index.mdwn and /Whatis/OSS.mdwn . The html file ikiwiki generated is +/Whatis/index.html and /Whatis/OSS.html . + +But in the page [OSS.html](http://atoz.org.cn/Whatis/OSS.html) , the auto generated link (on the page top) +to “Whatis” is /Whatis.html file , not to /Whatis/index.html. So the link to “Whatis” is fail . + +Is it a bug , and how can I do for that ? -- cgit v1.2.3 From 544a62493c43dc05e622aa4639e490c35c1cfb51 Mon Sep 17 00:00:00 2001 From: Jon Dowland <jon@ra.ncl.ac.uk> Date: Tue, 17 Feb 2009 14:05:25 +0000 Subject: add issues with tags and backlinks --- doc/bugs/tags_backlinks_and_3.x.mdwn | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 doc/bugs/tags_backlinks_and_3.x.mdwn (limited to 'doc') diff --git a/doc/bugs/tags_backlinks_and_3.x.mdwn b/doc/bugs/tags_backlinks_and_3.x.mdwn new file mode 100644 index 000000000..f9180506e --- /dev/null +++ b/doc/bugs/tags_backlinks_and_3.x.mdwn @@ -0,0 +1,27 @@ +I think there might be an issue in the backlinks calculation in ikiwiki 3.04. + +I've just migrated to 3.04. In doing so, the following pagespec + +> "log/* and !link(tag/aggregation) and !link(tag/draft) and !*/Discussion" + +...started matching pages which contained + +> \[\[!template draft\]\] + +The page templates/draft.mdwn contains (amongst some markup) + +> \[\[!tag draft \]\] + +Prior to migration, the pagespec definitely took effect post-transclusion. + +An example: <http://jmtd.net/log/too_much_debconf_a_bad_thing/> contains the +template inclusion, which can be seen to have worked due to markup at the +bottom of the page. It even includes a "Tags: draft" link at the bottom. + +Strangely, <http://jmtd.net/tag/draft/> does not contain backlinks to pages +which are tagged using the procedure above. + +After the first rebuild, it's broken, after a subsequent refresh, it is fixed. +I've reproduced this twice (but assumed I'd done something wrong the first +time, so went ahead and migrated live, spamming planet debian in the process +:(). I will try and put together a testcase. -- [[users/Jon]], 2009/02/17 -- cgit v1.2.3 From 22a46962b5bafe0c447579947fc984482f5e58a1 Mon Sep 17 00:00:00 2001 From: Jon Dowland <jon@ra.ncl.ac.uk> Date: Tue, 17 Feb 2009 14:06:53 +0000 Subject: escaped comma in page title --- doc/bugs/tags__44___backlinks_and_3.x.mdwn | 27 +++++++++++++++++++++++++++ doc/bugs/tags_backlinks_and_3.x.mdwn | 27 --------------------------- 2 files changed, 27 insertions(+), 27 deletions(-) create mode 100644 doc/bugs/tags__44___backlinks_and_3.x.mdwn delete mode 100644 doc/bugs/tags_backlinks_and_3.x.mdwn (limited to 'doc') diff --git a/doc/bugs/tags__44___backlinks_and_3.x.mdwn b/doc/bugs/tags__44___backlinks_and_3.x.mdwn new file mode 100644 index 000000000..f9180506e --- /dev/null +++ b/doc/bugs/tags__44___backlinks_and_3.x.mdwn @@ -0,0 +1,27 @@ +I think there might be an issue in the backlinks calculation in ikiwiki 3.04. + +I've just migrated to 3.04. In doing so, the following pagespec + +> "log/* and !link(tag/aggregation) and !link(tag/draft) and !*/Discussion" + +...started matching pages which contained + +> \[\[!template draft\]\] + +The page templates/draft.mdwn contains (amongst some markup) + +> \[\[!tag draft \]\] + +Prior to migration, the pagespec definitely took effect post-transclusion. + +An example: <http://jmtd.net/log/too_much_debconf_a_bad_thing/> contains the +template inclusion, which can be seen to have worked due to markup at the +bottom of the page. It even includes a "Tags: draft" link at the bottom. + +Strangely, <http://jmtd.net/tag/draft/> does not contain backlinks to pages +which are tagged using the procedure above. + +After the first rebuild, it's broken, after a subsequent refresh, it is fixed. +I've reproduced this twice (but assumed I'd done something wrong the first +time, so went ahead and migrated live, spamming planet debian in the process +:(). I will try and put together a testcase. -- [[users/Jon]], 2009/02/17 diff --git a/doc/bugs/tags_backlinks_and_3.x.mdwn b/doc/bugs/tags_backlinks_and_3.x.mdwn deleted file mode 100644 index f9180506e..000000000 --- a/doc/bugs/tags_backlinks_and_3.x.mdwn +++ /dev/null @@ -1,27 +0,0 @@ -I think there might be an issue in the backlinks calculation in ikiwiki 3.04. - -I've just migrated to 3.04. In doing so, the following pagespec - -> "log/* and !link(tag/aggregation) and !link(tag/draft) and !*/Discussion" - -...started matching pages which contained - -> \[\[!template draft\]\] - -The page templates/draft.mdwn contains (amongst some markup) - -> \[\[!tag draft \]\] - -Prior to migration, the pagespec definitely took effect post-transclusion. - -An example: <http://jmtd.net/log/too_much_debconf_a_bad_thing/> contains the -template inclusion, which can be seen to have worked due to markup at the -bottom of the page. It even includes a "Tags: draft" link at the bottom. - -Strangely, <http://jmtd.net/tag/draft/> does not contain backlinks to pages -which are tagged using the procedure above. - -After the first rebuild, it's broken, after a subsequent refresh, it is fixed. -I've reproduced this twice (but assumed I'd done something wrong the first -time, so went ahead and migrated live, spamming planet debian in the process -:(). I will try and put together a testcase. -- [[users/Jon]], 2009/02/17 -- cgit v1.2.3 From 64000366bde6dbd3a329e4665b0712ceac0993ac Mon Sep 17 00:00:00 2001 From: Jon Dowland <jon@ra.ncl.ac.uk> Date: Tue, 17 Feb 2009 15:44:48 +0000 Subject: patch to add tag() pagespec --- doc/todo/tag_pagespec_function.mdwn | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 doc/todo/tag_pagespec_function.mdwn (limited to 'doc') diff --git a/doc/todo/tag_pagespec_function.mdwn b/doc/todo/tag_pagespec_function.mdwn new file mode 100644 index 000000000..0a51c7220 --- /dev/null +++ b/doc/todo/tag_pagespec_function.mdwn @@ -0,0 +1,27 @@ +Implementing tags in terms of links is clever, but it would be nice if it was +opaque in both directions: tagging and matching tags. Writing pagespecs to +find out which pages are tagged with a given name means that the pagespec is +tied to whatever the tagbase is. + +This patch adds a pagespec function 'tag' which lets you write pagespecs to +match tagged pages independent of whatever the tagbase is set to. + + -- [[users/Jon]] 2009/02/17 + +[[!tag patch]] + + --- a/plugins/IkiWiki/Plugin/tag.pm 2009-02-16 11:30:11.000000000 +0000 + +++ b/plugins/IkiWiki/Plugin/tag.pm 2009-02-17 15:40:03.000000000 +0000 + @@ -125,4 +125,12 @@ + } + } + + +package IkiWiki::PageSpec; + + + +sub match_tag ($$;@) { + + my $page = shift; + + my $glob = shift; + + return match_link($page, IkiWiki::Plugin::tag::tagpage($glob)); + +} + + + 1 -- cgit v1.2.3 From 0b2e755253e2b20993e50b19a206597a3ff88e2d Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Tue, 17 Feb 2009 13:08:57 -0500 Subject: this bug also affects using tags in templates --- doc/bugs/cannot_reliably_use_meta_in_template.mdwn | 2 ++ 1 file changed, 2 insertions(+) (limited to 'doc') diff --git a/doc/bugs/cannot_reliably_use_meta_in_template.mdwn b/doc/bugs/cannot_reliably_use_meta_in_template.mdwn index 046f40a7e..48288a2b3 100644 --- a/doc/bugs/cannot_reliably_use_meta_in_template.mdwn +++ b/doc/bugs/cannot_reliably_use_meta_in_template.mdwn @@ -4,6 +4,8 @@ pass, which does not look at the template a page includes, it will not be seen then, and so other pages that use the page title probably won't use it. (Barring luck with build order.) +Update: This also affects using tags from templates. + There is a simple fix for this, just add `scan => 1` when registering the preprocess hook for the template plugin. -- cgit v1.2.3 From 7aeead03d003f2c2bc2d77ba6723f781fe62e978 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Tue, 17 Feb 2009 13:13:01 -0500 Subject: link to other bug --- doc/bugs/tags__44___backlinks_and_3.x.mdwn | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'doc') diff --git a/doc/bugs/tags__44___backlinks_and_3.x.mdwn b/doc/bugs/tags__44___backlinks_and_3.x.mdwn index f9180506e..ea0eecc80 100644 --- a/doc/bugs/tags__44___backlinks_and_3.x.mdwn +++ b/doc/bugs/tags__44___backlinks_and_3.x.mdwn @@ -25,3 +25,8 @@ After the first rebuild, it's broken, after a subsequent refresh, it is fixed. I've reproduced this twice (but assumed I'd done something wrong the first time, so went ahead and migrated live, spamming planet debian in the process :(). I will try and put together a testcase. -- [[users/Jon]], 2009/02/17 + +> Looks like the same problem as +> [[cannot_reliably_use_meta_in_template]]. AFAIK, this has never worked +> reliably, although the linked page has a simple, though potentially +> expensive fix. --[[Joey]] -- cgit v1.2.3 From bb8b8787ef9477c027b9e5d8b7b5e1addfd1ca32 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Tue, 17 Feb 2009 13:25:06 -0500 Subject: comments --- IkiWiki/Plugin/template.pm | 3 ++- debian/changelog | 4 ++++ doc/bugs/cannot_reliably_use_meta_in_template.mdwn | 2 ++ doc/bugs/tags__44___backlinks_and_3.x.mdwn | 2 ++ doc/todo/tag_pagespec_function.mdwn | 7 +++++++ 5 files changed, 17 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/IkiWiki/Plugin/template.pm b/IkiWiki/Plugin/template.pm index 57bff20ff..b872f0962 100644 --- a/IkiWiki/Plugin/template.pm +++ b/IkiWiki/Plugin/template.pm @@ -10,7 +10,8 @@ use Encode; sub import { hook(type => "getsetup", id => "template", call => \&getsetup); - hook(type => "preprocess", id => "template", call => \&preprocess); + hook(type => "preprocess", id => "template", call => \&preprocess, + scan => 1); } sub getsetup () { diff --git a/debian/changelog b/debian/changelog index 62374d2dc..c28d36c84 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,10 @@ ikiwiki (3.05) UNRELEASED; urgency=low * debhelper v7.2; rules file minimisation. + * template: Load templates in scan mode. + This is potentially expensive, but is necessary so that meta and tag + directives, and other links on templates affect the page using the + template reliably. -- Joey Hess <joeyh@debian.org> Sun, 15 Feb 2009 20:11:57 -0500 diff --git a/doc/bugs/cannot_reliably_use_meta_in_template.mdwn b/doc/bugs/cannot_reliably_use_meta_in_template.mdwn index 48288a2b3..de6c227f6 100644 --- a/doc/bugs/cannot_reliably_use_meta_in_template.mdwn +++ b/doc/bugs/cannot_reliably_use_meta_in_template.mdwn @@ -14,3 +14,5 @@ scan pass, every page containing a template will cause the template to be loaded and filled out. This can be some serious additional overhead. --[[Joey]] + +[[done]] diff --git a/doc/bugs/tags__44___backlinks_and_3.x.mdwn b/doc/bugs/tags__44___backlinks_and_3.x.mdwn index ea0eecc80..4fe9a4723 100644 --- a/doc/bugs/tags__44___backlinks_and_3.x.mdwn +++ b/doc/bugs/tags__44___backlinks_and_3.x.mdwn @@ -30,3 +30,5 @@ time, so went ahead and migrated live, spamming planet debian in the process > [[cannot_reliably_use_meta_in_template]]. AFAIK, this has never worked > reliably, although the linked page has a simple, though potentially > expensive fix. --[[Joey]] + +> fix made, [[done]] --[[Joey]] diff --git a/doc/todo/tag_pagespec_function.mdwn b/doc/todo/tag_pagespec_function.mdwn index 0a51c7220..060368179 100644 --- a/doc/todo/tag_pagespec_function.mdwn +++ b/doc/todo/tag_pagespec_function.mdwn @@ -8,6 +8,13 @@ match tagged pages independent of whatever the tagbase is set to. -- [[users/Jon]] 2009/02/17 +> So, this looks good, appreciate the patch. +> +> The only problem I see is it could be confusing if `tag(foo)` matched +> a page that just linked to the tag via a wikilink, w/o actually tagging it. +> +> One other thing, perhaps it should be called `tagged()`? --[[Joey]] + [[!tag patch]] --- a/plugins/IkiWiki/Plugin/tag.pm 2009-02-16 11:30:11.000000000 +0000 -- cgit v1.2.3 From a4497591f958f3d2fb28ef597c7870bfc4db72e3 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Tue, 17 Feb 2009 13:29:08 -0500 Subject: Revert "comments" (stupid commit) This reverts commit bb8b8787ef9477c027b9e5d8b7b5e1addfd1ca32. --- IkiWiki/Plugin/template.pm | 3 +-- debian/changelog | 4 ---- doc/bugs/cannot_reliably_use_meta_in_template.mdwn | 2 -- doc/bugs/tags__44___backlinks_and_3.x.mdwn | 2 -- doc/todo/tag_pagespec_function.mdwn | 7 ------- 5 files changed, 1 insertion(+), 17 deletions(-) (limited to 'doc') diff --git a/IkiWiki/Plugin/template.pm b/IkiWiki/Plugin/template.pm index b872f0962..57bff20ff 100644 --- a/IkiWiki/Plugin/template.pm +++ b/IkiWiki/Plugin/template.pm @@ -10,8 +10,7 @@ use Encode; sub import { hook(type => "getsetup", id => "template", call => \&getsetup); - hook(type => "preprocess", id => "template", call => \&preprocess, - scan => 1); + hook(type => "preprocess", id => "template", call => \&preprocess); } sub getsetup () { diff --git a/debian/changelog b/debian/changelog index c28d36c84..62374d2dc 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,10 +1,6 @@ ikiwiki (3.05) UNRELEASED; urgency=low * debhelper v7.2; rules file minimisation. - * template: Load templates in scan mode. - This is potentially expensive, but is necessary so that meta and tag - directives, and other links on templates affect the page using the - template reliably. -- Joey Hess <joeyh@debian.org> Sun, 15 Feb 2009 20:11:57 -0500 diff --git a/doc/bugs/cannot_reliably_use_meta_in_template.mdwn b/doc/bugs/cannot_reliably_use_meta_in_template.mdwn index de6c227f6..48288a2b3 100644 --- a/doc/bugs/cannot_reliably_use_meta_in_template.mdwn +++ b/doc/bugs/cannot_reliably_use_meta_in_template.mdwn @@ -14,5 +14,3 @@ scan pass, every page containing a template will cause the template to be loaded and filled out. This can be some serious additional overhead. --[[Joey]] - -[[done]] diff --git a/doc/bugs/tags__44___backlinks_and_3.x.mdwn b/doc/bugs/tags__44___backlinks_and_3.x.mdwn index 4fe9a4723..ea0eecc80 100644 --- a/doc/bugs/tags__44___backlinks_and_3.x.mdwn +++ b/doc/bugs/tags__44___backlinks_and_3.x.mdwn @@ -30,5 +30,3 @@ time, so went ahead and migrated live, spamming planet debian in the process > [[cannot_reliably_use_meta_in_template]]. AFAIK, this has never worked > reliably, although the linked page has a simple, though potentially > expensive fix. --[[Joey]] - -> fix made, [[done]] --[[Joey]] diff --git a/doc/todo/tag_pagespec_function.mdwn b/doc/todo/tag_pagespec_function.mdwn index 060368179..0a51c7220 100644 --- a/doc/todo/tag_pagespec_function.mdwn +++ b/doc/todo/tag_pagespec_function.mdwn @@ -8,13 +8,6 @@ match tagged pages independent of whatever the tagbase is set to. -- [[users/Jon]] 2009/02/17 -> So, this looks good, appreciate the patch. -> -> The only problem I see is it could be confusing if `tag(foo)` matched -> a page that just linked to the tag via a wikilink, w/o actually tagging it. -> -> One other thing, perhaps it should be called `tagged()`? --[[Joey]] - [[!tag patch]] --- a/plugins/IkiWiki/Plugin/tag.pm 2009-02-16 11:30:11.000000000 +0000 -- cgit v1.2.3 From 84b48681c630c1c2dab21ad6c260be3a5b5fff0e Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Tue, 17 Feb 2009 13:29:37 -0500 Subject: re-add actual comments --- doc/todo/tag_pagespec_function.mdwn | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'doc') diff --git a/doc/todo/tag_pagespec_function.mdwn b/doc/todo/tag_pagespec_function.mdwn index 0a51c7220..060368179 100644 --- a/doc/todo/tag_pagespec_function.mdwn +++ b/doc/todo/tag_pagespec_function.mdwn @@ -8,6 +8,13 @@ match tagged pages independent of whatever the tagbase is set to. -- [[users/Jon]] 2009/02/17 +> So, this looks good, appreciate the patch. +> +> The only problem I see is it could be confusing if `tag(foo)` matched +> a page that just linked to the tag via a wikilink, w/o actually tagging it. +> +> One other thing, perhaps it should be called `tagged()`? --[[Joey]] + [[!tag patch]] --- a/plugins/IkiWiki/Plugin/tag.pm 2009-02-16 11:30:11.000000000 +0000 -- cgit v1.2.3 From 9acc4d578d7468ebb54a02377e571c89bb76ad9b Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Tue, 17 Feb 2009 13:30:07 -0500 Subject: template: Load templates in scan mode This is potentially expensive, but is necessary so that meta and tag directives, and other links on templates affect the page using the template reliably. --- IkiWiki/Plugin/template.pm | 3 ++- debian/changelog | 4 ++++ doc/bugs/cannot_reliably_use_meta_in_template.mdwn | 2 ++ doc/bugs/tags__44___backlinks_and_3.x.mdwn | 2 ++ 4 files changed, 10 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/IkiWiki/Plugin/template.pm b/IkiWiki/Plugin/template.pm index 57bff20ff..b872f0962 100644 --- a/IkiWiki/Plugin/template.pm +++ b/IkiWiki/Plugin/template.pm @@ -10,7 +10,8 @@ use Encode; sub import { hook(type => "getsetup", id => "template", call => \&getsetup); - hook(type => "preprocess", id => "template", call => \&preprocess); + hook(type => "preprocess", id => "template", call => \&preprocess, + scan => 1); } sub getsetup () { diff --git a/debian/changelog b/debian/changelog index 62374d2dc..c28d36c84 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,10 @@ ikiwiki (3.05) UNRELEASED; urgency=low * debhelper v7.2; rules file minimisation. + * template: Load templates in scan mode. + This is potentially expensive, but is necessary so that meta and tag + directives, and other links on templates affect the page using the + template reliably. -- Joey Hess <joeyh@debian.org> Sun, 15 Feb 2009 20:11:57 -0500 diff --git a/doc/bugs/cannot_reliably_use_meta_in_template.mdwn b/doc/bugs/cannot_reliably_use_meta_in_template.mdwn index 48288a2b3..de6c227f6 100644 --- a/doc/bugs/cannot_reliably_use_meta_in_template.mdwn +++ b/doc/bugs/cannot_reliably_use_meta_in_template.mdwn @@ -14,3 +14,5 @@ scan pass, every page containing a template will cause the template to be loaded and filled out. This can be some serious additional overhead. --[[Joey]] + +[[done]] diff --git a/doc/bugs/tags__44___backlinks_and_3.x.mdwn b/doc/bugs/tags__44___backlinks_and_3.x.mdwn index ea0eecc80..4fe9a4723 100644 --- a/doc/bugs/tags__44___backlinks_and_3.x.mdwn +++ b/doc/bugs/tags__44___backlinks_and_3.x.mdwn @@ -30,3 +30,5 @@ time, so went ahead and migrated live, spamming planet debian in the process > [[cannot_reliably_use_meta_in_template]]. AFAIK, this has never worked > reliably, although the linked page has a simple, though potentially > expensive fix. --[[Joey]] + +> fix made, [[done]] --[[Joey]] -- cgit v1.2.3 From 008f1c19ac354b5d9fd2feaaf20913a29d04297d Mon Sep 17 00:00:00 2001 From: NicolasLimare <NicolasLimare@web> Date: Tue, 17 Feb 2009 16:04:31 -0500 Subject: easy access to the userdb for apache auth? --- doc/plugins/passwordauth/discussion.mdwn | 50 ++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) (limited to 'doc') diff --git a/doc/plugins/passwordauth/discussion.mdwn b/doc/plugins/passwordauth/discussion.mdwn index f4e7ae7a1..8ae960edd 100644 --- a/doc/plugins/passwordauth/discussion.mdwn +++ b/doc/plugins/passwordauth/discussion.mdwn @@ -9,3 +9,53 @@ the *Preferences -- Subscriptions*. --[[tschwinge]] >> Aha, then the problem is Firefox, which is automatically filling the >> *Password* field with its previous value, but not filling the >> *Confirm Password* one. --[[tschwinge]] + +## easy access to the userdb for apache auth? + +My use case is: + +* restricted ikiwiki +* read/edit only allowed from the local network (done with apache restrictions) +* edit only for people authenticated (done with vanilla ikiwiki passwordauth) + +I would like to allow people to read/edit the wiki from outside of the +local network, if and only if they already have an ikiwiki account. + +[[httpauth]] doesn't fit since it doesn't allow anonymous local users +to create their own account. I want a single, local, simple auth +database. + +My (naïve?) idea would be: + +* keep the [[passwordauth]] system +* provide a way for Apache to use the userdb for authentication if +people want to connect from outside + +I looked at the various auth modules for apache2. It seems that none +can use a "perl Storable data" file. So, I think some solutions could +be: + +* use a sqlite database instead of a perl Storable file + * can be used with + [mod_auth_dbd](http://httpd.apache.org/docs/2.2/mod/mod_authn_dbd.html) + * requires a change in ikiwiki module [[passwordauth]] +* use an external program to read the userdb and talk with + [mod_auth_external](http://unixpapa.com/mod_auth_external.html) + * requires the maintainance of this external auth proxy over ikiwiki + userdb format changes + * (I don't know perl) +* include this wrapper in ikiwiki + * something like `ikiwiki --auth user:pass:userdb` check the + `user:pass` pair in `userdb` and returns an Accept/Reject flag to + Apache + * requires a change in ikiwiki core + * still requires + [mod_auth_external](http://unixpapa.com/mod_auth_external.html) +* do it with Apache perl sections + * (I don't know perl) + +Any opinion/suggestion/solution to this is welcome and appreciated. + +-- +[[NicolasLimare]] + -- cgit v1.2.3 From 2d220da53c6ebcaf962045fdf5db947074cc0e7c Mon Sep 17 00:00:00 2001 From: "http://arpitjain11.myopenid.com/" <http://arpitjain11.myopenid.com/@web> Date: Tue, 17 Feb 2009 18:47:47 -0500 Subject: --- doc/todo/Gallery.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/todo/Gallery.mdwn b/doc/todo/Gallery.mdwn index fbf1802fd..89676c457 100644 --- a/doc/todo/Gallery.mdwn +++ b/doc/todo/Gallery.mdwn @@ -1,6 +1,6 @@ New Version of gallery is available now. Few more features have been added like support for multiple pages, sorting and resizing of images etc. -SVN repository of plugin is located at http://ned.snow-crash.org:8080/svn/ikiwiki-gallery +Gallery repo is now available at <http://github.com/joeyh/ikiwiki/tree/gallery> --[[arpitjain]] -- cgit v1.2.3 From edad904f4c3b8621d11cd4e45e7bc5a669752d11 Mon Sep 17 00:00:00 2001 From: "http://arpitjain11.myopenid.com/" <http://arpitjain11.myopenid.com/@web> Date: Tue, 17 Feb 2009 18:53:56 -0500 Subject: --- doc/plugins/contrib/gallery.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/plugins/contrib/gallery.mdwn b/doc/plugins/contrib/gallery.mdwn index 7148de3ef..72df13bd0 100644 --- a/doc/plugins/contrib/gallery.mdwn +++ b/doc/plugins/contrib/gallery.mdwn @@ -2,7 +2,7 @@ This plugin would create a nice looking gallery of the images. It has been build over the img plugin in Ikiwiki -SVN repository of plugin is located at <http://ned.snow-crash.org:8080/svn/ikiwiki-gallery> +GIT repo of the plugin is located at <http://github.com/joeyh/ikiwiki/tree/gallery> USAGE : -- cgit v1.2.3 From 4762da8831f6e0a8f29ce762dc71b0e958c20cb9 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Tue, 17 Feb 2009 22:16:34 -0500 Subject: hint --- doc/bugs/html5_support.mdwn | 3 +++ 1 file changed, 3 insertions(+) (limited to 'doc') diff --git a/doc/bugs/html5_support.mdwn b/doc/bugs/html5_support.mdwn index 1090db154..41f955e51 100644 --- a/doc/bugs/html5_support.mdwn +++ b/doc/bugs/html5_support.mdwn @@ -30,6 +30,9 @@ I'm unsure how to turn off the test validation by the very old [wdg-html-validat > Don't run ¨make test" ... --[[Joey]] >> I don't quite grok debhelper7 [rules](http://git.ikiwiki.info/?p=ikiwiki;a=blob;f=debian/rules). +>>> Well, ok :-) `rm t/html.t` or, add an empty `override_dh_auto_test` rule. +>>> --[[Joey]] + [validator.nu](http://validator.nu/) incidentally is **the** HTML5 validator, however it is almost impossible to sanely introduce as a build dependency because of its insane Java requirements. :( I test locally via [cURL](http://wiki.whatwg.org/wiki/IDE), though Debian packages cannot be built with a network dependency. # Notes -- cgit v1.2.3 From 1473fb0b4fe89eeaf3740c4c6c97338d542b3d97 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Tue, 17 Feb 2009 22:16:51 -0500 Subject: add hendy's git repo --- doc/git.mdwn | 1 + 1 file changed, 1 insertion(+) (limited to 'doc') diff --git a/doc/git.mdwn b/doc/git.mdwn index e9c2e040f..8a89546cf 100644 --- a/doc/git.mdwn +++ b/doc/git.mdwn @@ -37,6 +37,7 @@ into [[Joey]]'s working tree. This is recommended. :-) * [[intrigeri]] `git://gaffer.ptitcanardnoir.org/ikiwiki.git` * [[gmcmanus]] `git://github.com/gmcmanus/ikiwiki.git` * [[jelmer]] `git://git.samba.org/jelmer/ikiwiki.git` +* [[hendry]] `git://webconverger.org/git/ikiwiki` ## branches -- cgit v1.2.3 From 3ce8a2f8b91ed468fc174da55e5161745ef0d9d1 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Tue, 17 Feb 2009 22:17:59 -0500 Subject: revert addition of several blank lines --- doc/plugins/write.mdwn | 5 ----- 1 file changed, 5 deletions(-) (limited to 'doc') diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn index acf9a2cdd..2e907938f 100644 --- a/doc/plugins/write.mdwn +++ b/doc/plugins/write.mdwn @@ -90,11 +90,6 @@ function is passed no values. It's ok for the function to call This hook is called just before ikiwiki scans the wiki for changed files. It's useful for plugins that need to create or modify a source page. The - - - - - function is passed no values. ### needsbuild -- cgit v1.2.3 From d244a0bc8e3576d20a69193b97d874db78a1eb91 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Tue, 17 Feb 2009 22:19:33 -0500 Subject: move to forum, as this is a question --- .../Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn | 9 --------- .../Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn | 9 +++++++++ 2 files changed, 9 insertions(+), 9 deletions(-) delete mode 100644 doc/bugs/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn create mode 100644 doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn (limited to 'doc') diff --git a/doc/bugs/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn b/doc/bugs/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn deleted file mode 100644 index 1eac9c76d..000000000 --- a/doc/bugs/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn +++ /dev/null @@ -1,9 +0,0 @@ -How do I setup an old ikiwiki repository on a new system? - -I have a git repository from an old ikiwiki system. -I reformatted that hard drive, but saved the repository. - -I copied it the repository to my new system, which is now the "master" host. -I installed ikiwiki on the new system. - -How do I set up an ikiwiki system using a pre-existing repository (instead of creating a new one)? --[[JosephTurian]] diff --git a/doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn b/doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn new file mode 100644 index 000000000..1eac9c76d --- /dev/null +++ b/doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn @@ -0,0 +1,9 @@ +How do I setup an old ikiwiki repository on a new system? + +I have a git repository from an old ikiwiki system. +I reformatted that hard drive, but saved the repository. + +I copied it the repository to my new system, which is now the "master" host. +I installed ikiwiki on the new system. + +How do I set up an ikiwiki system using a pre-existing repository (instead of creating a new one)? --[[JosephTurian]] -- cgit v1.2.3 From 13f64fccecca4b6aee4d1ac2456cebf9c782c212 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Tue, 17 Feb 2009 22:26:33 -0500 Subject: response --- ...g_old_repository_to_new_ikiwiki_system__63__.mdwn | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'doc') diff --git a/doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn b/doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn index 1eac9c76d..ccc45ddca 100644 --- a/doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn +++ b/doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn @@ -7,3 +7,23 @@ I copied it the repository to my new system, which is now the "master" host. I installed ikiwiki on the new system. How do I set up an ikiwiki system using a pre-existing repository (instead of creating a new one)? --[[JosephTurian]] + +> Well, if you have: +> * A git repository of the wiki +> * A setup file for the wiki +> +> Then you should +> 1. Manually set up a bare git repository, and push +> your backed up repository to it. +> 2. `git clone` from the bare git repository to +> recreate the ikiwiki srcdir +> 3. `git clone` from the bare git repository a second time, +> to create a checkout you can manually edit (optional) +> 4. run `ikiwiki --getctime --setup your.setup` +> The getctime will ensure page creation times are accurate +> by putting the info out of the git history, +> and only needs to be done once. +> +> If you preserved your repository, but not the setup file, +> the easiest way to make one is probably to run +> `ikiwiki -dumpsetup` and edit the setup file. --[[Joey]] -- cgit v1.2.3 From d522dfadd1ff0041c62a46460e1524eb0db89cb6 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Tue, 17 Feb 2009 22:37:20 -0500 Subject: is this patch complete? --- doc/todo/Allow_filenames_that_are_all_type.mdwn | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'doc') diff --git a/doc/todo/Allow_filenames_that_are_all_type.mdwn b/doc/todo/Allow_filenames_that_are_all_type.mdwn index 55e29b645..b8b136aeb 100644 --- a/doc/todo/Allow_filenames_that_are_all_type.mdwn +++ b/doc/todo/Allow_filenames_that_are_all_type.mdwn @@ -5,6 +5,10 @@ if the plugin can process files of type `.Makefile` then it will also process `M I put this patch on the [[todo/syntax_highlighting/]] page a while ago, but it seemed to get lost because it didn't have its own bug to track it. Now it does :). -- [[Will]] +> This changes `pagename()`, but what about `pagetype()`? +> Many things in ikiwiki check if `pagetype($file)` returns +> true to see if it's a page, etc. --[[Joey]] + diff --git a/IkiWiki.pm b/IkiWiki.pm index 8d728c9..1bd46a9 100644 --- a/IkiWiki.pm -- cgit v1.2.3 From ccec866a786bec1f929aebbd5b037243dcb956f2 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Tue, 17 Feb 2009 22:51:03 -0500 Subject: formatting --- doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn b/doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn index ccc45ddca..98ee723f0 100644 --- a/doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn +++ b/doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn @@ -12,7 +12,8 @@ How do I set up an ikiwiki system using a pre-existing repository (instead of cr > * A git repository of the wiki > * A setup file for the wiki > -> Then you should +> Then you should: +> > 1. Manually set up a bare git repository, and push > your backed up repository to it. > 2. `git clone` from the bare git repository to -- cgit v1.2.3 From 02d64838405e470493b8b0b47fbeb64b12c47a4b Mon Sep 17 00:00:00 2001 From: "http://josephturian.blogspot.com/" <http://josephturian.blogspot.com/@web> Date: Wed, 18 Feb 2009 18:24:21 -0500 Subject: --- ...old_repository_to_new_ikiwiki_system__63__.mdwn | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'doc') diff --git a/doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn b/doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn index 98ee723f0..a6bb16171 100644 --- a/doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn +++ b/doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn @@ -28,3 +28,26 @@ How do I set up an ikiwiki system using a pre-existing repository (instead of cr > If you preserved your repository, but not the setup file, > the easiest way to make one is probably to run > `ikiwiki -dumpsetup` and edit the setup file. --[[Joey]] + +> > I get the following errors after running ikiwiki setup: + + shortcut plugin will not work without shortcuts.mdwn + shortcut plugin will not work without shortcuts.mdwn + successfully generated /home/turian/public_html/iki/ikiwiki.cgi + shortcut plugin will not work without shortcuts.mdwn + successfully generated /home/turian/repos/iki.git/hooks/post-update + Can't stat /usr/share/ikiwiki/basewiki/../javascript: No such file or directory + at /home/turian/utils//lib/perl5/site_perl/5.8.8//IkiWiki/Plugin/autoindex.pm line 60 + Can't stat /usr/share/ikiwiki/basewiki/../smiley: No such file or directory + at /home/turian/utils//lib/perl5/site_perl/5.8.8//IkiWiki/Plugin/autoindex.pm line 60 + Can't stat /usr/share/ikiwiki/basewiki: No such file or directory + at /home/turian/utils//lib/perl5/site_perl/5.8.8//IkiWiki/Plugin/autoindex.pm line 60 + Can't stat /usr/share/ikiwiki/basewiki/../javascript: No such file or directory + at /home/turian/utils//lib/perl5/site_perl/5.8.8//IkiWiki/Render.pm line 320 + Can't stat /usr/share/ikiwiki/basewiki/../smiley: No such file or directory + at /home/turian/utils//lib/perl5/site_perl/5.8.8//IkiWiki/Render.pm line 320 + Can't stat /usr/share/ikiwiki/basewiki: No such file or directory + at /home/turian/utils//lib/perl5/site_perl/5.8.8//IkiWiki/Render.pm line 320 + internal error: smileys.mdwn cannot be found in /home/turian/iki or underlay + +> > How do I resolve these errors? I have my PERL5LIB location set correctly. -- cgit v1.2.3 From c1b051600036291f20bc179d7149410379832e37 Mon Sep 17 00:00:00 2001 From: "http://www.cse.unsw.edu.au/~willu/" <http://www.cse.unsw.edu.au/~willu/@web> Date: Thu, 19 Feb 2009 06:45:40 -0500 Subject: Yes, the patch is complete. --- doc/todo/Allow_filenames_that_are_all_type.mdwn | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'doc') diff --git a/doc/todo/Allow_filenames_that_are_all_type.mdwn b/doc/todo/Allow_filenames_that_are_all_type.mdwn index b8b136aeb..e165da7dc 100644 --- a/doc/todo/Allow_filenames_that_are_all_type.mdwn +++ b/doc/todo/Allow_filenames_that_are_all_type.mdwn @@ -9,6 +9,19 @@ lost because it didn't have its own bug to track it. Now it does :). -- [[Will > Many things in ikiwiki check if `pagetype($file)` returns > true to see if it's a page, etc. --[[Joey]] +>> I think this patch is complete. It does not change `pagename()`, it +>> changes `pagetype()` (the diff is fairly old - line numbers may have +>> changed). +>> +>> Before this patch, `pagetype()` required a `.` in the page name. With +>> this patch it doesn't, as long as the extension is being kept. This allows +>> the filename to be all extension. `pagename()` relies on `pagetype()` +>> to detect the type. `pagename()` also removes the extension on some +>> pages, but this patch only affects pages where the extension isn't +>> removed. +>> +>> So, yeah, I think this patch is complete. :) -- [[Will]] + diff --git a/IkiWiki.pm b/IkiWiki.pm index 8d728c9..1bd46a9 100644 --- a/IkiWiki.pm -- cgit v1.2.3 From 621e8d876ba516ee1aa641554280c20cfbbf0fc7 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Thu, 19 Feb 2009 17:50:43 -0500 Subject: response --- doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'doc') diff --git a/doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn b/doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn index a6bb16171..fe67e6aba 100644 --- a/doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn +++ b/doc/forum/Migrating_old_repository_to_new_ikiwiki_system__63__.mdwn @@ -51,3 +51,8 @@ How do I set up an ikiwiki system using a pre-existing repository (instead of cr internal error: smileys.mdwn cannot be found in /home/turian/iki or underlay > > How do I resolve these errors? I have my PERL5LIB location set correctly. + +>>> Well, that's unrelated to the original question, but +>>> I guess you should set `underlaydir` in your setup file to +>>> point to whereever you have installed the basewiki directory. +>>> --[[Joey]] -- cgit v1.2.3 From 66dc253437e7ce2e3e8984513b3ecf96603d6670 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Thu, 19 Feb 2009 18:38:45 -0500 Subject: Add noextension parameter to htmlize hooks to support, eg, Makefile. --- IkiWiki.pm | 23 ++++++++++++++--------- debian/changelog | 1 + doc/plugins/write.mdwn | 7 ++++++- doc/todo/Allow_filenames_that_are_all_type.mdwn | 4 ++++ t/pagename.t | 23 ++++++++++++++++++----- t/pagetype.t | 15 --------------- 6 files changed, 43 insertions(+), 30 deletions(-) delete mode 100755 t/pagetype.t (limited to 'doc') diff --git a/IkiWiki.pm b/IkiWiki.pm index ce1ceb351..f580d1f0d 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -627,27 +627,32 @@ sub dirname ($) { return $file; } -sub pagetype ($) { +sub isinternal ($) { my $page=shift; + return exists $pagesources{$page} && + $pagesources{$page} =~ /\._([^.]+)$/; +} + +sub pagetype ($) { + my $file=shift; - if ($page =~ /\.([^.]+)$/) { + if ($file =~ /\.([^.]+)$/) { return $1 if exists $hooks{htmlize}{$1}; } + elsif ($hooks{htmlize}{basename($file)}{noextension}) { + return basename($file); + } return; } -sub isinternal ($) { - my $page=shift; - return exists $pagesources{$page} && - $pagesources{$page} =~ /\._([^.]+)$/; -} - sub pagename ($) { my $file=shift; my $type=pagetype($file); my $page=$file; - $page=~s/\Q.$type\E*$// if defined $type && !$hooks{htmlize}{$type}{keepextension}; + $page=~s/\Q.$type\E*$// + if defined $type && !$hooks{htmlize}{$type}{keepextension} + && !$hooks{htmlize}{$type}{noextension}; if ($config{indexpages} && $page=~/(.*)\/index$/) { $page=$1; } diff --git a/debian/changelog b/debian/changelog index b644ac99c..810c59f4e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -6,6 +6,7 @@ ikiwiki (3.05) UNRELEASED; urgency=low directives, and other links on templates affect the page using the template reliably. * goto: Fix redirect to comments. + * Add noextension parameter to htmlize hooks to support, eg, Makefile. -- Joey Hess <joeyh@debian.org> Sun, 15 Feb 2009 20:11:57 -0500 diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn index 2e907938f..696bc6bc3 100644 --- a/doc/plugins/write.mdwn +++ b/doc/plugins/write.mdwn @@ -189,9 +189,14 @@ The function is passed named parameters: "page" and "content" and should return the htmlized content. If `hook` is passed an optional "keepextension" parameter, set to a true -value, then this extension will not be stripped from the source filename when +value, then the extension will not be stripped from the source filename when generating the page. +If `hook` is passed an optional "noextension" parameter, set to a true +value, then the id parameter specifies not a filename extension, but +a whole filename that can be htmlized. This is useful for files +like `Makefile` that have no extension. + ### pagetemplate hook(type => "pagetemplate", id => "foo", call => \&pagetemplate); diff --git a/doc/todo/Allow_filenames_that_are_all_type.mdwn b/doc/todo/Allow_filenames_that_are_all_type.mdwn index e165da7dc..bebbcafa8 100644 --- a/doc/todo/Allow_filenames_that_are_all_type.mdwn +++ b/doc/todo/Allow_filenames_that_are_all_type.mdwn @@ -22,6 +22,10 @@ lost because it didn't have its own bug to track it. Now it does :). -- [[Will >> >> So, yeah, I think this patch is complete. :) -- [[Will]] +>>> Thanks, [[applied|done]], but I added a noextension parameter, +>>> since having keepextension allow files with no extension didn't make +>>> sense. Also, made it work for pages in subdirs.. --[[Joey]] + diff --git a/IkiWiki.pm b/IkiWiki.pm index 8d728c9..1bd46a9 100644 --- a/IkiWiki.pm diff --git a/t/pagename.t b/t/pagename.t index 488e341fa..540d10f4c 100755 --- a/t/pagename.t +++ b/t/pagename.t @@ -1,22 +1,35 @@ #!/usr/bin/perl use warnings; use strict; -use Test::More tests => 8; +use Test::More tests => 19; BEGIN { use_ok("IkiWiki"); } -# Used internally. +# define mdwn as an extension $IkiWiki::hooks{htmlize}{mdwn}={}; -$IkiWiki::hooks{htmlize}{txt}={keepextension => 1}; - +is(pagetype("foo.mdwn"), "mdwn"); is(pagename("foo.mdwn"), "foo"); +is(pagetype("foo/bar.mdwn"), "mdwn"); is(pagename("foo/bar.mdwn"), "foo/bar"); -# bare files get the full filename as page name +# bare files get the full filename as page name, undef type +is(pagetype("foo.png"), undef); is(pagename("foo.png"), "foo.png"); +is(pagetype("foo/bar.png"), undef); is(pagename("foo/bar.png"), "foo/bar.png"); +is(pagetype("foo"), undef); is(pagename("foo"), "foo"); # keepextension preserves the extension in the page name +$IkiWiki::hooks{htmlize}{txt}={keepextension => 1}; is(pagename("foo.txt"), "foo.txt"); +is(pagetype("foo.txt"), "txt"); is(pagename("foo/bar.txt"), "foo/bar.txt"); +is(pagetype("foo/bar.txt"), "txt"); + +# noextension makes extensionless files be treated as first-class pages +$IkiWiki::hooks{htmlize}{Makefile}={noextension =>1}; +is(pagetype("Makefile"), "Makefile"); +is(pagename("Makefile"), "Makefile"); +is(pagetype("foo/Makefile"), "Makefile"); +is(pagename("foo/Makefile"), "foo/Makefile"); diff --git a/t/pagetype.t b/t/pagetype.t deleted file mode 100755 index bb06a1568..000000000 --- a/t/pagetype.t +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/perl -use warnings; -use strict; -use Test::More tests => 6; - -BEGIN { use_ok("IkiWiki"); } - -# Used internally. -$IkiWiki::hooks{htmlize}{mdwn}={}; - -is(pagetype("foo.mdwn"), "mdwn"); -is(pagetype("foo/bar.mdwn"), "mdwn"); -is(pagetype("foo.png"), undef); -is(pagetype("foo/bar.png"), undef); -is(pagetype("foo"), undef); -- cgit v1.2.3 From f813b10fef13682c95ada9c9a9ccf05ff602c172 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Thu, 19 Feb 2009 18:54:25 -0500 Subject: rename tag() to tagged(); add docs --- IkiWiki/Plugin/tag.pm | 2 +- debian/changelog | 1 + doc/ikiwiki/pagespec.mdwn | 3 ++- doc/plugins/tag.mdwn | 3 +++ doc/todo/tag_pagespec_function.mdwn | 2 +- 5 files changed, 8 insertions(+), 3 deletions(-) (limited to 'doc') diff --git a/IkiWiki/Plugin/tag.pm b/IkiWiki/Plugin/tag.pm index 48c197748..8fe9c6828 100644 --- a/IkiWiki/Plugin/tag.pm +++ b/IkiWiki/Plugin/tag.pm @@ -127,7 +127,7 @@ sub pagetemplate (@) { package IkiWiki::PageSpec; -sub match_tag ($$;@) { +sub match_tagged ($$;@) { my $page = shift; my $glob = shift; return match_link($page, IkiWiki::Plugin::tag::tagpage($glob)); diff --git a/debian/changelog b/debian/changelog index 810c59f4e..80b3c5d8e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,6 +7,7 @@ ikiwiki (3.05) UNRELEASED; urgency=low template reliably. * goto: Fix redirect to comments. * Add noextension parameter to htmlize hooks to support, eg, Makefile. + * Add tagged() PageSpec. -- Joey Hess <joeyh@debian.org> Sun, 15 Feb 2009 20:11:57 -0500 diff --git a/doc/ikiwiki/pagespec.mdwn b/doc/ikiwiki/pagespec.mdwn index 86abe5745..b476bde1f 100644 --- a/doc/ikiwiki/pagespec.mdwn +++ b/doc/ikiwiki/pagespec.mdwn @@ -25,6 +25,7 @@ match all pages except for Discussion pages and the SandBox: Some more elaborate limits can be added to what matches using these functions: * "`link(page)`" - match only pages that link to a given page (or glob) +* "`tagged(tag)`" - match pages that are tagged or link to the given tag (or glob) * "`backlink(page)`" - match only pages that a given page links to * "`creation_month(month)`" - match only pages created on the given month * "`creation_day(mday)`" - or day of the month @@ -65,7 +66,7 @@ More complex expressions can also be created, by using parentheses for grouping. For example, to match pages in a blog that are tagged with either of two tags, use: - blog/* and (link(tag/foo) or link(tag/bar)) + blog/* and (tagged(foo) or tagged(bar)) Note that page names in PageSpecs are matched against the absolute filenames of the pages in the wiki, so a pagespec "foo" used on page diff --git a/doc/plugins/tag.mdwn b/doc/plugins/tag.mdwn index 17bb086a1..8ff70a069 100644 --- a/doc/plugins/tag.mdwn +++ b/doc/plugins/tag.mdwn @@ -5,6 +5,9 @@ This plugin provides the [[ikiwiki/directive/tag]] and [[ikiwiki/directive/taglink]] [[directives|ikiwiki/directive]]. These directives allow tagging pages. +It also provides the `tagged()` [[ikiwiki/PageSpec]], which can be used to +match pages that are tagged with a specific tag. + [[!if test="enabled(tag)" then=""" This wiki has the tag plugin enabled, so you'll see a note below that this page is tagged with the "tags" tag. diff --git a/doc/todo/tag_pagespec_function.mdwn b/doc/todo/tag_pagespec_function.mdwn index 060368179..681a1f661 100644 --- a/doc/todo/tag_pagespec_function.mdwn +++ b/doc/todo/tag_pagespec_function.mdwn @@ -15,7 +15,7 @@ match tagged pages independent of whatever the tagbase is set to. > > One other thing, perhaps it should be called `tagged()`? --[[Joey]] -[[!tag patch]] +[[!tag patch done]] --- a/plugins/IkiWiki/Plugin/tag.pm 2009-02-16 11:30:11.000000000 +0000 +++ b/plugins/IkiWiki/Plugin/tag.pm 2009-02-17 15:40:03.000000000 +0000 -- cgit v1.2.3 From 1b7845927c1e50d1a2e7a5b20ffdbc42fd40d68f Mon Sep 17 00:00:00 2001 From: "http://people.ee.ethz.ch/~andrmuel/openid/" <http://people.ee.ethz.ch/~andrmuel/openid/@web> Date: Fri, 20 Feb 2009 02:44:01 -0500 Subject: added cosin --- doc/ikiwikiusers.mdwn | 1 + 1 file changed, 1 insertion(+) (limited to 'doc') diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn index f7a4cfca7..b85157f99 100644 --- a/doc/ikiwikiusers.mdwn +++ b/doc/ikiwikiusers.mdwn @@ -43,6 +43,7 @@ Projects & Organizations * The support pages for [Trinity Centre for High Performance Computing](http://www.tchpc.tcd.ie/support/) * [St Hugh of Lincoln Primary School in Surrey](http://hugh.vm.bytemark.co.uk/) * [Pigro Network](http://www.pigro.net) is running a hg based ikiwiki. (And provides ikiwiki hosting for $10/m.) +* [Cosin Homepage](http://cosin.ch) uses an Ikiwiki with a subversion repository. Personal sites and blogs ======================== -- cgit v1.2.3 From 65c6bc687ee76cdb1cf5810fbaa51a1d5b91beb9 Mon Sep 17 00:00:00 2001 From: "http://taozhyn.myopenid.com/" <http://taozhyn.myopenid.com/@web> Date: Fri, 20 Feb 2009 04:58:52 -0500 Subject: Adding patch, moved from plugins/tag/discussion --- ...o-create_tag_pages_according_to_a_template.mdwn | 99 ++++++++++++++++++++++ 1 file changed, 99 insertions(+) (limited to 'doc') diff --git a/doc/todo/auto-create_tag_pages_according_to_a_template.mdwn b/doc/todo/auto-create_tag_pages_according_to_a_template.mdwn index bfb4a863b..ab9263556 100644 --- a/doc/todo/auto-create_tag_pages_according_to_a_template.mdwn +++ b/doc/todo/auto-create_tag_pages_according_to_a_template.mdwn @@ -7,3 +7,102 @@ Also see: <http://madduck.net/blog/2008.01.06:new-blog/> and <http://users.itk.p [[!tag wishlist]] I would love to see this as well. -- dato + +--- + +I have create a patch to tag.pm for add the option for auto create tag pages. +A new setting is used to enable or disable auto-create tag pages, `tag_autocreate`. +The new tag file is created during the preprocess phase. +The new tag file is then complied during the change phase. + +_tag.pm from version 3.01_ + + + --- tag.pm 2009-02-06 10:26:03.000000000 -0700 + +++ tag_new.pm 2009-02-06 12:17:19.000000000 -0700 + @@ -14,6 +14,7 @@ + hook(type => "preprocess", id => "tag", call => \&preprocess_tag, scan => 1); + hook(type => "preprocess", id => "taglink", call => \&preprocess_taglink, scan => 1); + hook(type => "pagetemplate", id => "tag", call => \&pagetemplate); + + hook(type => "change", id => "tag", call => \&change); + } + + sub getopt () { + @@ -36,6 +37,36 @@ + safe => 1, + rebuild => 1, + }, + + tag_autocreate => { + + type => "boolean", + + example => 0, + + description => "Auto-create the new tag pages, uses autotagpage.tmpl ", + + safe => 1, + + rebulid => 1, + + }, + +} + + + +my $autocreated_page = 0; + + + +sub gen_tag_page($) { + + my $tag=shift; + + + + my $tag_file=$tag.'.'.$config{default_pageext}; + + return if (-f $config{srcdir}.$tag_file); + + + + my $template=template("autotagpage.tmpl"); + + $template->param(tag => $tag); + + writefile($tag_file, $config{srcdir}, $template->output); + + $autocreated_page = 1; + + + + if ($config{rcs}) { + + IkiWiki::disable_commit_hook(); + + IkiWiki::rcs_add($tag_file); + + IkiWiki::rcs_commit_staged( + + gettext("Automatic tag page generation"), + + undef, undef); + + IkiWiki::enable_commit_hook(); + + } + } + + sub tagpage ($) { + @@ -47,6 +78,10 @@ + $tag=~y#/#/#s; # squash dups + } + + + if (defined $config{tag_autocreate} && $config{tag_autocreate} ) { + + gen_tag_page($tag); + + } + + + return $tag; + } + + @@ -125,4 +160,18 @@ + } + } + + +sub change(@) { + + return unless($autocreated_page); + + $autocreated_page = 0; + + + + # This refresh/saveindex is to complie the autocreated tag pages + + IkiWiki::refresh(); + + IkiWiki::saveindex(); + + + + # This refresh/saveindex is to fix the Tags link + + # With out this additional refresh/saveindex the tag link displays ?tag + + IkiWiki::refresh(); + + IkiWiki::saveindex(); + +} + + + + +This uses a template called `autotagpage.tmpl`, here is my template file: + + \[[!inline pages="link(<TMPL_VAR TAG>)" archive="yes"]] + + +A quirk I have not figured out is during the `sub change`, see my comments in the code. +I am not sure if that is the best way to handle it. + +[[!tag patch]] +-- Jeremy Schultz <jeremy.schultz@uleth.ca> -- cgit v1.2.3 From ae8266f8bcaef4a29e29163507a9dcf14d440c8f Mon Sep 17 00:00:00 2001 From: "http://taozhyn.myopenid.com/" <http://taozhyn.myopenid.com/@web> Date: Fri, 20 Feb 2009 05:00:42 -0500 Subject: Moved to patch to todo/auto-create --- doc/plugins/tag/discussion.mdwn | 95 +---------------------------------------- 1 file changed, 1 insertion(+), 94 deletions(-) (limited to 'doc') diff --git a/doc/plugins/tag/discussion.mdwn b/doc/plugins/tag/discussion.mdwn index e478ec564..1b3043014 100644 --- a/doc/plugins/tag/discussion.mdwn +++ b/doc/plugins/tag/discussion.mdwn @@ -23,99 +23,6 @@ better" --[[DavidBremner]] Please make the actual text used a template some way or another. I may want `map` instead of `inline`. --[[madduck]] ---- - -I have create a patch to tag.pm for add the option for auto create tag pages. -A new setting is used to enable or disable auto-create tag pages, `tag_autocreate`. -The new tag file is created during the preprocess phase. -The new tag file is then complied during the change phase. - - --- tag.pm 2009-02-06 10:26:03.000000000 -0700 - +++ tag_new.pm 2009-02-06 12:17:19.000000000 -0700 - @@ -14,6 +14,7 @@ - hook(type => "preprocess", id => "tag", call => \&preprocess_tag, scan => 1); - hook(type => "preprocess", id => "taglink", call => \&preprocess_taglink, scan => 1); - hook(type => "pagetemplate", id => "tag", call => \&pagetemplate); - + hook(type => "change", id => "tag", call => \&change); - } - - sub getopt () { - @@ -36,6 +37,36 @@ - safe => 1, - rebuild => 1, - }, - + tag_autocreate => { - + type => "boolean", - + example => 0, - + description => "Auto-create the new tag pages, uses autotagpage.tmpl ", - + safe => 1, - + rebulid => 1, - + }, - +} - + - +my $autocreated_page = 0; - + - +sub gen_tag_page($) { - + my $tag=shift; - + - + my $tag_file=$tag.'.'.$config{default_pageext}; - + return if (-f $config{srcdir}.$tag_file); - + - + my $template=template("autotagpage.tmpl"); - + $template->param(tag => $tag); - + writefile($tag_file, $config{srcdir}, $template->output); - + $autocreated_page = 1; - + - + if ($config{rcs}) { - + IkiWiki::disable_commit_hook(); - + IkiWiki::rcs_add($tag_file); - + IkiWiki::rcs_commit_staged( - + gettext("Automatic tag page generation"), - + undef, undef); - + IkiWiki::enable_commit_hook(); - + } - } - - sub tagpage ($) { - @@ -47,6 +78,10 @@ - $tag=~y#/#/#s; # squash dups - } - - + if (defined $config{tag_autocreate} && $config{tag_autocreate} ) { - + gen_tag_page($tag); - + } - + - return $tag; - } - - @@ -125,4 +160,18 @@ - } - } - - +sub change(@) { - + return unless($autocreated_page); - + $autocreated_page = 0; - + - + # This refresh/saveindex is to complie the autocreated tag pages - + IkiWiki::refresh(); - + IkiWiki::saveindex(); - + - + # This refresh/saveindex is to fix the Tags link - + # With out this additional refresh/saveindex the tag link displays ?tag - + IkiWiki::refresh(); - + IkiWiki::saveindex(); - +} - + - - -This uses a template called `autotagpage.tmpl`, here is my template file: - - \[[!inline pages="link(<TMPL_VAR TAG>)" archive="yes"]] - - -A quirk I have not figured out is during the `sub change`, see my comments in the code. -I am not sure if that is the best way to handle it. - -[[!tag patch]] +See [[/todo/auto-create]] -- Jeremy Schultz <jeremy.schultz@uleth.ca> -- cgit v1.2.3 From 08615b9a5e54b6402e52b88be377e48b8bc42944 Mon Sep 17 00:00:00 2001 From: "http://taozhyn.myopenid.com/" <http://taozhyn.myopenid.com/@web> Date: Fri, 20 Feb 2009 05:05:57 -0500 Subject: Fix wikilink to correct todo page --- doc/plugins/tag/discussion.mdwn | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/plugins/tag/discussion.mdwn b/doc/plugins/tag/discussion.mdwn index 1b3043014..b6dab5358 100644 --- a/doc/plugins/tag/discussion.mdwn +++ b/doc/plugins/tag/discussion.mdwn @@ -23,6 +23,8 @@ better" --[[DavidBremner]] Please make the actual text used a template some way or another. I may want `map` instead of `inline`. --[[madduck]] -See [[/todo/auto-create]] + +See [[todo/auto-create tag pages according to a template]] + -- Jeremy Schultz <jeremy.schultz@uleth.ca> -- cgit v1.2.3 From 1e9629b8f63e182a32459ae0d901a61f007ea769 Mon Sep 17 00:00:00 2001 From: "http://smcv.pseudorandom.co.uk/" <http://smcv.pseudorandom.co.uk/@web> Date: Fri, 20 Feb 2009 10:25:47 -0500 Subject: Link my version --- doc/todo/Gallery.mdwn | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'doc') diff --git a/doc/todo/Gallery.mdwn b/doc/todo/Gallery.mdwn index 89676c457..bc1d5bea4 100644 --- a/doc/todo/Gallery.mdwn +++ b/doc/todo/Gallery.mdwn @@ -73,3 +73,9 @@ Additional details are available [here](http://myweb.unomaha.edu/~ajain/ikiwikig > the gallery and put it in a "gallery" branch of my git repository. > > --[[Joey]] + +---- + +See also [[/users/smcv/gallery]] for another implementation of the same sort of +thing. Unfortunately, none of the implementation ideas +I have there seem quite right either... --[[smcv]] -- cgit v1.2.3 From 3534dc39ed9389586fd1966b5392bf3f3fcde1ec Mon Sep 17 00:00:00 2001 From: "http://smcv.pseudorandom.co.uk/" <http://smcv.pseudorandom.co.uk/@web> Date: Fri, 20 Feb 2009 11:05:05 -0500 Subject: Some more thoughts on this... --- doc/users/smcv/gallery.mdwn | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'doc') diff --git a/doc/users/smcv/gallery.mdwn b/doc/users/smcv/gallery.mdwn index 5b4c6fe00..b6b8de79f 100644 --- a/doc/users/smcv/gallery.mdwn +++ b/doc/users/smcv/gallery.mdwn @@ -89,12 +89,15 @@ could look something like this: The next/previous part this plugin overlaps with [[todo/wikitrails]]. -A \[[!galleryimg]] directive to assign metadata to images is probably necessary, so +A \[[!galleryimg]] directive to assign metadata to images might be necessary, so the gallery page can contain something like: \[[!galleryimg p1010001.jpg title="..." caption="..." tags="foo"]] \[[!galleryimg p1010002.jpg title="..." caption="..." tags="foo bar"]] +However, allowing other pages to push in metadata like that will make +dependency tracking difficult. + Making the viewer pages could be rather tricky. Here are some options: "synthesize source pages for viewers" is the one I'm leaning towards at the moment. @@ -105,9 +108,19 @@ One possibility is to write out the viewer pages as a side-effect of preprocessing the \[[!gallery]] directive. The proof-of-concept implementation below does this. However, this does mean the viewer pages can't have tags or metadata of their own and can't be matched by [[pagespecs|ikiwiki/pagespec]] or -[[wikilinks|ikiwiki/wikilink]]. It might be possible to implement tagging by -using \[[!galleryimg]] to assign the metadata to the *images* instead of their -viewers. +[[wikilinks|ikiwiki/wikilink]]. + +It might be possible to implement tagging by using \[[!galleryimg]] to assign +the metadata to the *images* instead of their viewers; however, that would +require hacking up both `IkiWiki::htmllink` and `IkiWiki::urlto` to redirect +links to the image (e.g. from the \[[!map]] on a tag page) to become links to +the viewer page. + +Modifications to the comments plugin would also be required, to make it allow +comments written to `foo/bar/comment_1._comment` even though the page foo/bar +does not really exist, and display comments on the viewer pages even though +they're not real pages. (Writing comments to `foo/bar.jpg/*._comment` is not +an option!) ### Synthesize source pages for viewers -- cgit v1.2.3 From 786a9e20efbd6e8f3a321e4fde410828904e71bd Mon Sep 17 00:00:00 2001 From: intrigeri <intrigeri@web> Date: Mon, 23 Feb 2009 07:02:34 -0500 Subject: link to other todo item, personal opinions --- doc/plugins/passwordauth/discussion.mdwn | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'doc') diff --git a/doc/plugins/passwordauth/discussion.mdwn b/doc/plugins/passwordauth/discussion.mdwn index 8ae960edd..3362ae7d2 100644 --- a/doc/plugins/passwordauth/discussion.mdwn +++ b/doc/plugins/passwordauth/discussion.mdwn @@ -59,3 +59,9 @@ Any opinion/suggestion/solution to this is welcome and appreciated. -- [[NicolasLimare]] +For a similar use case, I've been intending to implement +[[todo/httpauth_feature_parity_with_passwordauth]], but your idea may +actually be the way to go. IMHO, the Perl sections idea is the +easiest to setup, but on the long run, I'd prefer ikiwiki to optionnally +use a userdb storage backend supported at least by Apache and lighttpd. +--[[intrigeri]] -- cgit v1.2.3 From f4848d3c875827410f129a8efc61ecdb97ea95fa Mon Sep 17 00:00:00 2001 From: "http://ypoocs.livejournal.com/" <http://ypoocs.livejournal.com/@web> Date: Mon, 23 Feb 2009 15:36:44 -0500 Subject: --- doc/sandbox.mdwn | 2 ++ 1 file changed, 2 insertions(+) (limited to 'doc') diff --git a/doc/sandbox.mdwn b/doc/sandbox.mdwn index f684a0586..14f72f4ad 100644 --- a/doc/sandbox.mdwn +++ b/doc/sandbox.mdwn @@ -1,6 +1,8 @@ This is the [[SandBox]], a page anyone can edit to try out ikiwiki (version [[!version ]]). ---- +misc test + test more test [[中文显示]] -- cgit v1.2.3 From 8638b8ed31879c34bfa37bbb9a079052fff7c4b3 Mon Sep 17 00:00:00 2001 From: "http://liw.fi/" <http://liw.fi/@web> Date: Wed, 25 Feb 2009 07:19:39 -0500 Subject: --- doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn (limited to 'doc') diff --git a/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn b/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn new file mode 100644 index 000000000..e57924131 --- /dev/null +++ b/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn @@ -0,0 +1,12 @@ +The bzr plugin does not seem to define the rcs_diff subroutine. +I got the follow error after enabling recentchangesdiff: + +"Undefined subroutine &IkiWiki::Plugin::bzr::rcs_diff called at /usr/share/perl5/IkiWiki.pm line 1590." + +Grepping to verify absence of rcs_diff: + + $ grep rcs_diff /usr/share/perl5/IkiWiki/Plugin/{git,bzr}.pm + /usr/share/perl5/IkiWiki/Plugin/git.pm: hook(type => "rcs", id => "rcs_diff", call => \&rcs_diff); + /usr/share/perl5/IkiWiki/Plugin/git.pm:sub rcs_diff ($) { + /usr/share/perl5/IkiWiki/Plugin/bzr.pm: hook(type => "rcs", id => "rcs_diff", call => \&rcs_diff); + -- cgit v1.2.3 From 2e0dec2ffcab5af04f5e6c3e1e3504a7aca9e56e Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Wed, 25 Feb 2009 17:15:25 -0500 Subject: response --- doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'doc') diff --git a/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn b/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn index e57924131..ece919f09 100644 --- a/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn +++ b/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn @@ -10,3 +10,8 @@ Grepping to verify absence of rcs_diff: /usr/share/perl5/IkiWiki/Plugin/git.pm:sub rcs_diff ($) { /usr/share/perl5/IkiWiki/Plugin/bzr.pm: hook(type => "rcs", id => "rcs_diff", call => \&rcs_diff); +> I've added the minimal stub needed to avoid the crash, but for +> recentchangesdiff to work, someone needs to implement `rcs_diff` for bzr. +> This should be trivial if you know and use bzr. The function +> is passed as a parameter the revno of interest and just needs +> to ask bzr for the diff between that and the previous version. --[[Joey]] -- cgit v1.2.3 From 192f042e3a909edb01719da6f9943fcb588e81e6 Mon Sep 17 00:00:00 2001 From: "http://liw.fi/" <http://liw.fi/@web> Date: Thu, 26 Feb 2009 02:10:15 -0500 Subject: --- doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'doc') diff --git a/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn b/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn index ece919f09..60d3a7b95 100644 --- a/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn +++ b/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn @@ -15,3 +15,7 @@ Grepping to verify absence of rcs_diff: > This should be trivial if you know and use bzr. The function > is passed as a parameter the revno of interest and just needs > to ask bzr for the diff between that and the previous version. --[[Joey]] + +>> I'll see if I can make a patch. The bzr command to get the revision would +>> look like this: bzr diff -r revno:$PREV:/path/to/src..revno:$REVNO:/path/to/src +>> (where $PREV would be $REVNO minus one). --liw -- cgit v1.2.3 From 457d330758ffe0935837ed38a93608c519a62403 Mon Sep 17 00:00:00 2001 From: "http://liw.fi/" <http://liw.fi/@web> Date: Thu, 26 Feb 2009 03:07:29 -0500 Subject: --- .../bzr_plugin_does_not_define_rcs__95__diff.mdwn | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'doc') diff --git a/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn b/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn index 60d3a7b95..110f769c7 100644 --- a/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn +++ b/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn @@ -19,3 +19,43 @@ Grepping to verify absence of rcs_diff: >> I'll see if I can make a patch. The bzr command to get the revision would >> look like this: bzr diff -r revno:$PREV:/path/to/src..revno:$REVNO:/path/to/src >> (where $PREV would be $REVNO minus one). --liw + +>> Sorry, that was not entirely correct, for some reason. I'll add a patch below that +>> seems to work. I am unfortunately not ready to set up a git repository that you +>> can pull from. --liw + + diff --git a/IkiWiki/Plugin/.bzr.pm.swp b/IkiWiki/Plugin/.bzr.pm.swp + new file mode 100644 + index 0000000..712120c + Binary files /dev/null and b/IkiWiki/Plugin/.bzr.pm.swp differ + diff --git a/IkiWiki/Plugin/bzr.pm b/IkiWiki/Plugin/bzr.pm + index 783623d..f1d5854 100644 + --- a/IkiWiki/Plugin/bzr.pm + +++ b/IkiWiki/Plugin/bzr.pm + @@ -256,7 +256,25 @@ sub rcs_recentchanges ($) { + } + + sub rcs_diff ($) { + - # TODO + + my $taintedrev=shift; + + my ($rev) = $taintedrev =~ /^(\d+(\.\d+)*)$/; # untaint + + print STDERR "taintedrev: $taintedrev\nrev: $rev\n"; + + + + my $prevspec = "before:" . $rev; + + my $revspec = "revno:" . $rev; + + my @cmdline = ("bzr", "diff", "--old", $config{srcdir}, + + "--new", $config{srcdir}, + + "-r", $prevspec . ".." . $revspec); + + print STDERR "cmdline: @cmdline\n"; + + open (my $out, "@cmdline |"); + + + + my @lines = <$out>; + + if (wantarray) { + + return @lines; + + } + + else { + + return join("", @lines); + + } + } + + sub rcs_getctime ($) { -- cgit v1.2.3 From 596b2906fdc863fac2a3c86abbdb39416eee1961 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Thu, 26 Feb 2009 14:09:26 -0500 Subject: bzr: Add missing rcs_diff. (liw) --- IkiWiki/Plugin/bzr.pm | 18 ++++++++++- debian/changelog | 2 +- .../bzr_plugin_does_not_define_rcs__95__diff.mdwn | 36 +--------------------- 3 files changed, 19 insertions(+), 37 deletions(-) (limited to 'doc') diff --git a/IkiWiki/Plugin/bzr.pm b/IkiWiki/Plugin/bzr.pm index 783623dee..883007367 100644 --- a/IkiWiki/Plugin/bzr.pm +++ b/IkiWiki/Plugin/bzr.pm @@ -256,7 +256,23 @@ sub rcs_recentchanges ($) { } sub rcs_diff ($) { - # TODO + my $taintedrev=shift; + my ($rev) = $taintedrev =~ /^(\d+(\.\d+)*)$/; # untaint + + my $prevspec = "before:" . $rev; + my $revspec = "revno:" . $rev; + my @cmdline = ("bzr", "diff", "--old", $config{srcdir}, + "--new", $config{srcdir}, + "-r", $prevspec . ".." . $revspec); + open (my $out, "@cmdline |"); + + my @lines = <$out>; + if (wantarray) { + return @lines; + } + else { + return join("", @lines); + } } sub rcs_getctime ($) { diff --git a/debian/changelog b/debian/changelog index 68d08ad8e..90b672e8d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -10,7 +10,7 @@ ikiwiki (3.05) UNRELEASED; urgency=low * Add tagged() PageSpec. * Updated German translation (Kai Wasserbäch). Closes: #516770 * Setup automator: Prompt for password twice. Closes: #516973 - * bzr: Add missing stub rcs_diff. + * bzr: Add missing rcs_diff. (liw) * comments: Avoid showing comment moderation button in prefs to non-admins. -- Joey Hess <joeyh@debian.org> Sun, 15 Feb 2009 20:11:57 -0500 diff --git a/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn b/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn index 110f769c7..0294ec62e 100644 --- a/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn +++ b/doc/bugs/bzr_plugin_does_not_define_rcs__95__diff.mdwn @@ -24,38 +24,4 @@ Grepping to verify absence of rcs_diff: >> seems to work. I am unfortunately not ready to set up a git repository that you >> can pull from. --liw - diff --git a/IkiWiki/Plugin/.bzr.pm.swp b/IkiWiki/Plugin/.bzr.pm.swp - new file mode 100644 - index 0000000..712120c - Binary files /dev/null and b/IkiWiki/Plugin/.bzr.pm.swp differ - diff --git a/IkiWiki/Plugin/bzr.pm b/IkiWiki/Plugin/bzr.pm - index 783623d..f1d5854 100644 - --- a/IkiWiki/Plugin/bzr.pm - +++ b/IkiWiki/Plugin/bzr.pm - @@ -256,7 +256,25 @@ sub rcs_recentchanges ($) { - } - - sub rcs_diff ($) { - - # TODO - + my $taintedrev=shift; - + my ($rev) = $taintedrev =~ /^(\d+(\.\d+)*)$/; # untaint - + print STDERR "taintedrev: $taintedrev\nrev: $rev\n"; - + - + my $prevspec = "before:" . $rev; - + my $revspec = "revno:" . $rev; - + my @cmdline = ("bzr", "diff", "--old", $config{srcdir}, - + "--new", $config{srcdir}, - + "-r", $prevspec . ".." . $revspec); - + print STDERR "cmdline: @cmdline\n"; - + open (my $out, "@cmdline |"); - + - + my @lines = <$out>; - + if (wantarray) { - + return @lines; - + } - + else { - + return join("", @lines); - + } - } - - sub rcs_getctime ($) { +[[done]] --[[Joey]] -- cgit v1.2.3 From c2df40c01ba78e0c0631df0a5042980eb1688488 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Thu, 26 Feb 2009 14:16:13 -0500 Subject: mercurial and tla are missing implementations of several things --- doc/todo/mercurial.mdwn | 4 ++++ doc/todo/tla.mdwn | 3 +++ 2 files changed, 7 insertions(+) (limited to 'doc') diff --git a/doc/todo/mercurial.mdwn b/doc/todo/mercurial.mdwn index 2f148498e..e71c8106a 100644 --- a/doc/todo/mercurial.mdwn +++ b/doc/todo/mercurial.mdwn @@ -14,6 +14,10 @@ It seems that with the current mercurial commit code, it will always blindly overwrite the current file with the web edited version, losing any other changes. +* `rcs_commit_staged`, `rcs_rename`, `rcs_remove`, and `rcs_diff` are not + implemented for mercurial, and so attachments, remove and rename plugins + and recentchangesdiff cannot be used with it. (These should be fairly + easy to add..) Posthook: in `$srcdir/.hg/hgrc`, I have the following diff --git a/doc/todo/tla.mdwn b/doc/todo/tla.mdwn index 6ef8453f1..b6b082cfe 100644 --- a/doc/todo/tla.mdwn +++ b/doc/todo/tla.mdwn @@ -1,4 +1,7 @@ * Need to get post commit hook code working. * Need some example urls for web based diffs. +* `rcs_commit_staged`, `rcs_rename`, `rcs_remove`, are not + implemented for tla, and so attachments, remove and rename plugins + cannot be used with it. (These should be fairly easy to add..) [[!tag rcs/tla]] -- cgit v1.2.3 From f9efb5b1eb08d7f9f94b9a5028fc234735720c85 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Fri, 27 Feb 2009 15:55:34 -0500 Subject: add news item for ikiwiki 3.05 --- doc/news/version_3.04.mdwn | 17 ----------------- doc/news/version_3.05.mdwn | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 17 deletions(-) delete mode 100644 doc/news/version_3.04.mdwn create mode 100644 doc/news/version_3.05.mdwn (limited to 'doc') diff --git a/doc/news/version_3.04.mdwn b/doc/news/version_3.04.mdwn deleted file mode 100644 index e04093c8f..000000000 --- a/doc/news/version_3.04.mdwn +++ /dev/null @@ -1,17 +0,0 @@ -ikiwiki 3.04 released with [[!toggle text="these changes"]] -[[!toggleable text=""" - * 404: New plugin which lets you use the IkiWiki CGI script as - an Apache 404 handler, to give the behaviour of various other wiki - engines where visiting a nonexistent page provides you with a link - to create it. (smcv) - * Factor out redundant code into [[plugins/goto]] plugin. (smcv) - * Work around XML::Atom strangeness that results in double-encoded posts. - (smcv) - * Updated German translation (Kai Wasserbäch). Closes: #[514251](http://bugs.debian.org/514251) - * Fix unusual --setup --post-commit command line option combo. - * Create any missing directory necessary to put the wrapper - file into. Closes: #[514384](http://bugs.debian.org/514384) - * shortcut: If default\_pageext is set, first look for - shortcuts.default\_pageext. - * Allow comments, rename, remove, and attachment plugins to be used - even if the editpage plugin is disabled."""]] diff --git a/doc/news/version_3.05.mdwn b/doc/news/version_3.05.mdwn new file mode 100644 index 000000000..8975aa913 --- /dev/null +++ b/doc/news/version_3.05.mdwn @@ -0,0 +1,15 @@ +ikiwiki 3.05 released with [[!toggle text="these changes"]] +[[!toggleable text=""" + * debhelper v7(.0.50); rules file minimisation. + * template: Load templates in scan mode. + This is potentially expensive, but is necessary so that meta and tag + directives, and other links on templates affect the page using the + template reliably. + * goto: Fix redirect to comments. + * Add noextension parameter to htmlize hooks to support, eg, Makefile. + * Add tagged() PageSpec. + * Updated German translation (Kai Wasserbäch). Closes: #[516770](http://bugs.debian.org/516770) + * Setup automator: Prompt for password twice. Closes: #[516973](http://bugs.debian.org/516973) + * bzr: Add missing rcs\_diff. (liw) + * comments: Avoid showing comment moderation button in prefs to non-admins. + * goto: Fix typo that broke recentchanges\_link compatibility."""]] \ No newline at end of file -- cgit v1.2.3 From 2695d224906d972dd21e063f666ff4007ef1b62e Mon Sep 17 00:00:00 2001 From: "http://zwol.livejournal.com/" <http://zwol.livejournal.com/@web> Date: Fri, 27 Feb 2009 18:56:25 -0500 Subject: --- doc/todo/Allow_disabling_edit_and_preferences_links.mdwn | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'doc') diff --git a/doc/todo/Allow_disabling_edit_and_preferences_links.mdwn b/doc/todo/Allow_disabling_edit_and_preferences_links.mdwn index 1188d1ab2..4c2823cf2 100644 --- a/doc/todo/Allow_disabling_edit_and_preferences_links.mdwn +++ b/doc/todo/Allow_disabling_edit_and_preferences_links.mdwn @@ -46,3 +46,7 @@ Patch: >> I do have the editpage plugin disabled for the public static wiki, but >> the link still appears on the site. I want to keep the cgi on, so that >> the site is still searchable. --[[puck]] + +>>> For me, disabling the editpage plugin does make the "Edit" link +>>> disappear (this is with 3.03) but as far as I can tell, "Preferences" +>>> is not controlled by any plugin. --[Zack](http://zwol.livejournal.com/) -- cgit v1.2.3 From 0bd54afd98e57bfcca4360a0751a362e39d3e02a Mon Sep 17 00:00:00 2001 From: "http://zwol.livejournal.com/" <http://zwol.livejournal.com/@web> Date: Fri, 27 Feb 2009 18:57:48 -0500 Subject: --- doc/todo/Allow_disabling_edit_and_preferences_links.mdwn | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/todo/Allow_disabling_edit_and_preferences_links.mdwn b/doc/todo/Allow_disabling_edit_and_preferences_links.mdwn index 4c2823cf2..a356c69df 100644 --- a/doc/todo/Allow_disabling_edit_and_preferences_links.mdwn +++ b/doc/todo/Allow_disabling_edit_and_preferences_links.mdwn @@ -49,4 +49,6 @@ Patch: >>> For me, disabling the editpage plugin does make the "Edit" link >>> disappear (this is with 3.03) but as far as I can tell, "Preferences" ->>> is not controlled by any plugin. --[Zack](http://zwol.livejournal.com/) +>>> is not controlled by any plugin. It would be nice if it were; I am +>>> trying to achieve a configuration where the only action supported +>>> via CGI is blog-style comments. --[Zack](http://zwol.livejournal.com/) -- cgit v1.2.3 From fb27b3b79b78612e5633f6bc1643bca518e27bcc Mon Sep 17 00:00:00 2001 From: "http://per.bothner.myopenid.com/" <http://per.bothner.myopenid.com/@web> Date: Sat, 28 Feb 2009 14:16:57 -0500 Subject: Add my blog. --- doc/ikiwikiusers.mdwn | 1 + 1 file changed, 1 insertion(+) (limited to 'doc') diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn index b85157f99..bac65266f 100644 --- a/doc/ikiwikiusers.mdwn +++ b/doc/ikiwikiusers.mdwn @@ -114,6 +114,7 @@ Personal sites and blogs [blog](http://smcv.pseudorandom.co.uk/) * Svend's [website](http://www.ciffer.net/~svend/) and [blog](http://www.ciffer.net/~svend/blog/) * [muammar's site](http://muammar.me) +* [Per Bothner's blog](http://per.bothner.com/blog/) Please feel free to add your own ikiwiki site! -- cgit v1.2.3 From 2c30a32313fbf15e7cdb53f08ba22ed47336e05e Mon Sep 17 00:00:00 2001 From: bzed <bzed@web> Date: Sat, 28 Feb 2009 21:34:04 -0500 Subject: Adding bzed.de to ikiwikiusers --- doc/ikiwikiusers.mdwn | 1 + 1 file changed, 1 insertion(+) (limited to 'doc') diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn index bac65266f..8dea61f6a 100644 --- a/doc/ikiwikiusers.mdwn +++ b/doc/ikiwikiusers.mdwn @@ -115,6 +115,7 @@ Personal sites and blogs * Svend's [website](http://www.ciffer.net/~svend/) and [blog](http://www.ciffer.net/~svend/blog/) * [muammar's site](http://muammar.me) * [Per Bothner's blog](http://per.bothner.com/blog/) +* [Bernd Zeimetz (bzed)](http://bzed.de/) Please feel free to add your own ikiwiki site! -- cgit v1.2.3 From a5f4159717cb3be79043a280573c82ccbda26b61 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Sun, 1 Mar 2009 15:11:40 -0500 Subject: add news item for ikiwiki 3.06 --- doc/news/version_3.05.mdwn | 15 --------------- doc/news/version_3.06.mdwn | 3 +++ 2 files changed, 3 insertions(+), 15 deletions(-) delete mode 100644 doc/news/version_3.05.mdwn create mode 100644 doc/news/version_3.06.mdwn (limited to 'doc') diff --git a/doc/news/version_3.05.mdwn b/doc/news/version_3.05.mdwn deleted file mode 100644 index 8975aa913..000000000 --- a/doc/news/version_3.05.mdwn +++ /dev/null @@ -1,15 +0,0 @@ -ikiwiki 3.05 released with [[!toggle text="these changes"]] -[[!toggleable text=""" - * debhelper v7(.0.50); rules file minimisation. - * template: Load templates in scan mode. - This is potentially expensive, but is necessary so that meta and tag - directives, and other links on templates affect the page using the - template reliably. - * goto: Fix redirect to comments. - * Add noextension parameter to htmlize hooks to support, eg, Makefile. - * Add tagged() PageSpec. - * Updated German translation (Kai Wasserbäch). Closes: #[516770](http://bugs.debian.org/516770) - * Setup automator: Prompt for password twice. Closes: #[516973](http://bugs.debian.org/516973) - * bzr: Add missing rcs\_diff. (liw) - * comments: Avoid showing comment moderation button in prefs to non-admins. - * goto: Fix typo that broke recentchanges\_link compatibility."""]] \ No newline at end of file diff --git a/doc/news/version_3.06.mdwn b/doc/news/version_3.06.mdwn new file mode 100644 index 000000000..0e2a48fe6 --- /dev/null +++ b/doc/news/version_3.06.mdwn @@ -0,0 +1,3 @@ +ikiwiki 3.06 released with [[!toggle text="these changes"]] +[[!toggleable text=""" + * Setup automator: Fix bug in password comparison. Closes: #[517654](http://bugs.debian.org/517654)"""]] \ No newline at end of file -- cgit v1.2.3 From b3be09766bc5a116b8b31442b6431bca85c09631 Mon Sep 17 00:00:00 2001 From: "http://electropo.mp/" <http://electropo.mp/@web> Date: Mon, 2 Mar 2009 18:39:02 -0500 Subject: --- doc/examples/softwaresite/index.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/examples/softwaresite/index.mdwn b/doc/examples/softwaresite/index.mdwn index e2d180d1f..e03a969a0 100644 --- a/doc/examples/softwaresite/index.mdwn +++ b/doc/examples/softwaresite/index.mdwn @@ -1,7 +1,7 @@ FooBar is an amazing example program that does not exist. Use it for all your example program needs. This is its wiki. -* [[download]] +* **[[download]]** * [[news]] * [[documentation|doc]] * [[bugs]] -- cgit v1.2.3 From 2907bec3e6ebeb99c80985cf48fb5db45eee81bc Mon Sep 17 00:00:00 2001 From: "http://sarin.myopenid.com/" <http://sarin.myopenid.com/@web> Date: Tue, 3 Mar 2009 21:52:36 -0500 Subject: --- doc/setup/discussion.mdwn | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'doc') diff --git a/doc/setup/discussion.mdwn b/doc/setup/discussion.mdwn index 3ec123eb5..78da1a0f2 100644 --- a/doc/setup/discussion.mdwn +++ b/doc/setup/discussion.mdwn @@ -149,3 +149,7 @@ But I don't get an edit link on my pages? What am I doing wrong? > Assuming you don't have the editpage plugin disabled, all you should need > to so is re-run `ikiwiki -setup` with the above config and it should > rebuild your wiki and add the edit links to pages. --[[Joey]] + +---- + +I setup ikiwiki on a fedora 10 machine and I am using apache as my http server. Faced a few difficulties while setting it up as the default setup program left some suid files and group writeable directories on the system. It took some time to get it working and documented what I did at http://flyingtux.blogspot.com/2009/03/installing-ikiwiki.html. Thought it might be useful to someone here. (The version installed is 2.72) -- cgit v1.2.3 From 2d6bbdcf3f0878a870ce63a02f38eb8b95f0932e Mon Sep 17 00:00:00 2001 From: PaulePanter <PaulePanter@web> Date: Wed, 4 Mar 2009 05:48:18 -0500 Subject: typo and typography --- doc/tips/howto_avoid_flooding_aggregators.mdwn | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'doc') diff --git a/doc/tips/howto_avoid_flooding_aggregators.mdwn b/doc/tips/howto_avoid_flooding_aggregators.mdwn index 98cef9249..e45b96689 100644 --- a/doc/tips/howto_avoid_flooding_aggregators.mdwn +++ b/doc/tips/howto_avoid_flooding_aggregators.mdwn @@ -1,27 +1,27 @@ If you have a [[blog]] that is aggregated, either on a site like Planet Debian, or just through user subscriptions, one common problem is that -changes to the guids of items in the blog can "flood" the aggregator, +changes to the guids of items in the blog can “flood” the aggregator, causing all recent blog entries to be posted to the top of it. This can happen in a lot of situations: -* Perhaps you've just switched to ikiwiki from some other blog engine and +* Perhaps you’ve just switched to ikiwiki from some other blog engine and imported your data. -* Perhaps you've turned on the `usedirs` setting, which changes all the +* Perhaps you’ve turned on the `usedirs` setting, which changes all the urls in your wiki. Even if you set up [[redirections|redirections_for_usedirs]] for the old urls, you still face the issue of flooding aggregators. -* Perhaps you've just moved stuff around in your wiki. +* Perhaps you’ve just moved stuff around in your wiki. -To avoid annoying readers in these situations, it's a good idea to remove -any existing items from your blog's news feed. That way only new items will +To avoid annoying readers in these situations, it’s a good idea to remove +any existing items from your blog’s news feed. That way only new items will show up in the aggregator. The best way to do this is to add a `feedpages` parameter to the `inline` directive for your blog, with a condition such as: feedpages=created_after(blog/posts/old_post) -Where "old_post" is the name of the last post you made to the blog before -making the change. This will limit the feed to only newer posts, while stil +Where “old_post” is the name of the last post you made to the blog before +making the change. This will limit the feed to only newer posts, while still displaying the old posts in the blog page. Alternatively, you can add the [[plugins/meta]] guid directives to pages, -- cgit v1.2.3 From 2fde5b4a6a7df1c1e0fa5231f2cc60bef5a74c08 Mon Sep 17 00:00:00 2001 From: "http://liw.fi/" <http://liw.fi/@web> Date: Wed, 4 Mar 2009 10:19:09 -0500 Subject: --- doc/todo/mdwn_preview.mdwn | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 doc/todo/mdwn_preview.mdwn (limited to 'doc') diff --git a/doc/todo/mdwn_preview.mdwn b/doc/todo/mdwn_preview.mdwn new file mode 100644 index 000000000..733d62c08 --- /dev/null +++ b/doc/todo/mdwn_preview.mdwn @@ -0,0 +1,7 @@ +The [StackOverflow](http://stackoverflow.com/) site uses markdown for markup. +It has a fancy javascript thing for showing a real-time preview of what the user +is editing. It would be nice if ikiwiki could support this, too. The thing they +use on StackOverflow is supposed to be free software, so it should be easy to +add to ikiwiki. + +[[!tag wishlist]] -- cgit v1.2.3 From 6a19dacbd7ea36a609717bf71f389e183729b7af Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Wed, 4 Mar 2009 13:53:34 -0500 Subject: that's wikiwyg close as dup todo --- doc/todo/mdwn_preview.mdwn | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/todo/mdwn_preview.mdwn b/doc/todo/mdwn_preview.mdwn index 733d62c08..a447299bc 100644 --- a/doc/todo/mdwn_preview.mdwn +++ b/doc/todo/mdwn_preview.mdwn @@ -4,4 +4,7 @@ is editing. It would be nice if ikiwiki could support this, too. The thing they use on StackOverflow is supposed to be free software, so it should be easy to add to ikiwiki. -[[!tag wishlist]] +> See [[wikiwyg]]. Note that I do not have a copy of the code for that, or +> it'd be in ikiwiki already. --[[Joey]] + +[[!tag wishlist done]] -- cgit v1.2.3 From e6298effd172e1458e822810bab29b27f84d5f3d Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Wed, 4 Mar 2009 13:58:20 -0500 Subject: response --- doc/setup/discussion.mdwn | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'doc') diff --git a/doc/setup/discussion.mdwn b/doc/setup/discussion.mdwn index 78da1a0f2..89114d7a2 100644 --- a/doc/setup/discussion.mdwn +++ b/doc/setup/discussion.mdwn @@ -153,3 +153,15 @@ But I don't get an edit link on my pages? What am I doing wrong? ---- I setup ikiwiki on a fedora 10 machine and I am using apache as my http server. Faced a few difficulties while setting it up as the default setup program left some suid files and group writeable directories on the system. It took some time to get it working and documented what I did at http://flyingtux.blogspot.com/2009/03/installing-ikiwiki.html. Thought it might be useful to someone here. (The version installed is 2.72) + +> ikiwiki makes wrappers suid by default, because this ensures that when +> the ikiwiki.cgi is run by your web server, it runs as the user who owns +> your wiki, and can thus write to it. ikiwiki is designed to run securely +> suid. If your webserver uses some +> mechanism to run the ikiwiki.cgi as the user who owns it, without the +> suid bit being set, you *could* modify `cgi_wrappermode` in your setup +> file to drop the suid bit. +> +> ikiwiki respects the umask, so if your umask is one that causes things to +> be group writable, they will by. If you want to override that, there is +> also a `umask ` setting in your setup file. --[[Joey]] -- cgit v1.2.3 From b7495e752af87a15978ec4ae5427bfea62c6f43a Mon Sep 17 00:00:00 2001 From: "http://www.cse.unsw.edu.au/~willu/" <http://www.cse.unsw.edu.au/~willu/@web> Date: Wed, 4 Mar 2009 17:30:11 -0500 Subject: Notes that the wikiwyg plugin link is broken, and more. --- doc/todo/mdwn_preview.mdwn | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'doc') diff --git a/doc/todo/mdwn_preview.mdwn b/doc/todo/mdwn_preview.mdwn index a447299bc..68558a571 100644 --- a/doc/todo/mdwn_preview.mdwn +++ b/doc/todo/mdwn_preview.mdwn @@ -7,4 +7,13 @@ add to ikiwiki. > See [[wikiwyg]]. Note that I do not have a copy of the code for that, or > it'd be in ikiwiki already. --[[Joey]] +>> I just had a brief look at the [[wikiwyg]] page and the link to the plugin was +>> broken. The StackOverflow site uses the [WMD](http://wmd-editor.com/) editor, +>> which seems to be related to the [ShowDown](http://attacklab.net/showdown/) +>> javascript port of Markdown. Interestingly, [WMD source](http://wmd.googlecode.com/) +>> is now available under an MIT license, though it is supposedly undergoing heavy +>> refactoring. It looks like there was previous discussion ( [[todo/Add_showdown_GUI_input__47__edit]] ) +>> about a showdown plugin. Maybe a WMD plugin would be worthwhile. I might +>> look into it if I have time on the weekend. -- [[Will]] + [[!tag wishlist done]] -- cgit v1.2.3 From de695df72f5655b2fd4b8e8a84eb91a95833ca7b Mon Sep 17 00:00:00 2001 From: "https://launchpad.net/~jelmer" <https://launchpad.net/~jelmer@web> Date: Thu, 5 Mar 2009 16:16:54 -0500 Subject: --- doc/users/jelmer.mdwn | 1 + 1 file changed, 1 insertion(+) create mode 100644 doc/users/jelmer.mdwn (limited to 'doc') diff --git a/doc/users/jelmer.mdwn b/doc/users/jelmer.mdwn new file mode 100644 index 000000000..1f2f71aad --- /dev/null +++ b/doc/users/jelmer.mdwn @@ -0,0 +1 @@ +[Jelmer Vernooij](http://samba.org/~jelmer/) -- cgit v1.2.3 From cc194fe527261b6a36a79df59c626bd3d7891b84 Mon Sep 17 00:00:00 2001 From: "http://www.cse.unsw.edu.au/~willu/" <http://www.cse.unsw.edu.au/~willu/@web> Date: Fri, 6 Mar 2009 03:40:50 -0500 Subject: Add patch for WMD plugin. This new plugin adds live preview and text controls to ikiwiki edit pages. --- doc/todo/mdwn_preview.mdwn | 83 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 82 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/todo/mdwn_preview.mdwn b/doc/todo/mdwn_preview.mdwn index 68558a571..4c361052b 100644 --- a/doc/todo/mdwn_preview.mdwn +++ b/doc/todo/mdwn_preview.mdwn @@ -16,4 +16,85 @@ add to ikiwiki. >> about a showdown plugin. Maybe a WMD plugin would be worthwhile. I might >> look into it if I have time on the weekend. -- [[Will]] -[[!tag wishlist done]] +[[!tag wishlist]] + +>>> Below is a simple plugin/[[patch]] to make use of the WMD editor. Turns out it isn't hard at all to +>>> get a basic version going (that don't handle directives at all). I've +>>> removed the done tag so this is visible as a patch. -- [[Will]] + +------ + +### Instructions: + + +Download the [WMD source](http://wmd-editor.com/downloads/wmd-1.0.1.zip). In that zip file you'll +find a few example html files, a readme and `wmd` directory. Move the `wmd` directory into the +ikiwiki `underlays` directory. You should now have an `underlays/wmd/wmd.js` file as well as +some other javascript files and an images directory in the same place. + +Note that the WMD plugin does **not** handle directives. For this reason the normal `preview` button +remains. Some CSS to clean up the display of the live WMD preview would be good. + +Install the following patch and plugin file. Then enable the 'wmd' plugin. + + + diff --git a/templates/editpage.tmpl b/templates/editpage.tmpl + index 4b54db2..b1cf015 100644 + --- a/templates/editpage.tmpl + +++ b/templates/editpage.tmpl + @@ -37,6 +37,7 @@ Optional comment about this change:<br /> + </div> + </TMPL_IF> + <TMPL_VAR FORM-END> + +<TMPL_VAR WMD_PREVIEW> + + <TMPL_IF NAME="PAGE_PREVIEW"> + <hr /> + +----- + + #!/usr/bin/perl + package IkiWiki::Plugin::wmd; + + use warnings; + use strict; + use IkiWiki 3.00; + use POSIX; + use Encode; + + sub import { + add_underlay("wmd"); + hook(type => "getsetup", id => "wmd", call => \&getsetup); + hook(type => "formbuilder_setup", id => "wmd", call => \&formbuilder_setup); + } + + sub getsetup () { + return + plugin => { + safe => 1, + rebuild => 1, + }, + } + + sub formbuilder_setup (@) { + my %params=@_; + my $form=$params{form}; + + return if ! defined $form->field("do"); + + return unless (($form->field("do") eq "edit") || + ($form->field("do") eq "create")); + + $form->tmpl_param("wmd_preview", "<div class=\"wmd-preview\"></div>\n".include_javascript(undef, 1)); + } + + sub include_javascript ($;$) { + my $page=shift; + my $absolute=shift; + + return '<script src="'.urlto("wmd.js", $page, $absolute). + '" type="text/javascript"></script>'."\n"; + } + + 1 + -- cgit v1.2.3 From 8333b4bbc3bd907a4fbd5ed1da79625afc9e71aa Mon Sep 17 00:00:00 2001 From: "http://www.cse.unsw.edu.au/~willu/" <http://www.cse.unsw.edu.au/~willu/@web> Date: Fri, 6 Mar 2009 03:47:08 -0500 Subject: Note another issue with the basic plugin. --- doc/todo/mdwn_preview.mdwn | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/todo/mdwn_preview.mdwn b/doc/todo/mdwn_preview.mdwn index 4c361052b..a99f03eed 100644 --- a/doc/todo/mdwn_preview.mdwn +++ b/doc/todo/mdwn_preview.mdwn @@ -19,7 +19,8 @@ add to ikiwiki. [[!tag wishlist]] >>> Below is a simple plugin/[[patch]] to make use of the WMD editor. Turns out it isn't hard at all to ->>> get a basic version going (that don't handle directives at all). I've +>>> get a basic version going (which doesn't handle directives at all, nor does it swtich itself off when you're +>>> editing something other than Markdown source). I've >>> removed the done tag so this is visible as a patch. -- [[Will]] ------ -- cgit v1.2.3 From e6e7e641974d66976cfc13eb0a90785e8fca3b8a Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Sat, 7 Mar 2009 14:38:48 -0500 Subject: comments --- doc/todo/mdwn_preview.mdwn | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'doc') diff --git a/doc/todo/mdwn_preview.mdwn b/doc/todo/mdwn_preview.mdwn index a99f03eed..2155f0f87 100644 --- a/doc/todo/mdwn_preview.mdwn +++ b/doc/todo/mdwn_preview.mdwn @@ -23,6 +23,14 @@ add to ikiwiki. >>> editing something other than Markdown source). I've >>> removed the done tag so this is visible as a patch. -- [[Will]] +>>> Hmm, it would be good if it turned off for !mdwn. Although this could +>>> be difficult for a new page, since there is a dropdown selector to +>>> choose the markup language then. But it should be doable for editing an +>>> existing page. +>>> +>>> Can I get a license statement (ie, GPL-2+) ffrom you for the plugin? +>>> --[[Joey]] + ------ ### Instructions: @@ -33,9 +41,16 @@ find a few example html files, a readme and `wmd` directory. Move the `wmd` dir ikiwiki `underlays` directory. You should now have an `underlays/wmd/wmd.js` file as well as some other javascript files and an images directory in the same place. +> So, I wonder if I should add a copy of the WMD source to ikiwiki, or rely +> on the user or distribution providing it. It does not seem to be packaged +> for Debian yet. --[[Joey]] + Note that the WMD plugin does **not** handle directives. For this reason the normal `preview` button remains. Some CSS to clean up the display of the live WMD preview would be good. +> Can you elucidate the CSS comment -- or will it be obvious what you mean +> when I try it? --[[Joey]] + Install the following patch and plugin file. Then enable the 'wmd' plugin. -- cgit v1.2.3 From 904b6b3e94a4a0d319d81d7d734aa90d3014fe29 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Sat, 7 Mar 2009 14:40:49 -0500 Subject: point at wmd plugin --- doc/todo/wikiwyg.mdwn | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'doc') diff --git a/doc/todo/wikiwyg.mdwn b/doc/todo/wikiwyg.mdwn index e3d1b3927..839986c7b 100644 --- a/doc/todo/wikiwyg.mdwn +++ b/doc/todo/wikiwyg.mdwn @@ -57,3 +57,8 @@ The plugin can be downloaded from <http://ikiwiki.xbaud.com/wikiwyg-1.6.tar.gz> * Personalized settings [Wikiwyg]: http://www.wikiwyg.net/ + +> As noted in [[discussion]], the url above doesn't work, and I stupidly +> lost my copy of this before merging it. I hope that this plugin will turn +> back up. In the meantime, there is a wmd plugin that accomplishes the +> same basic task of WSYWIG markdown editing. --[[Joey]] -- cgit v1.2.3 From 424b4602c060b95870c707cfc2320d2c4faf5579 Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Sat, 7 Mar 2009 14:42:16 -0500 Subject: note that a wmd plugin has appeared --- doc/todo/Add_showdown_GUI_input__47__edit.mdwn | 2 ++ 1 file changed, 2 insertions(+) (limited to 'doc') diff --git a/doc/todo/Add_showdown_GUI_input__47__edit.mdwn b/doc/todo/Add_showdown_GUI_input__47__edit.mdwn index e864f5351..7e7947fbc 100644 --- a/doc/todo/Add_showdown_GUI_input__47__edit.mdwn +++ b/doc/todo/Add_showdown_GUI_input__47__edit.mdwn @@ -27,3 +27,5 @@ A demo is at <http://www.attacklab.net/showdown-gui.html> >>> be necessary to insert some sort of placeholder, perhaps by outputting >>> the text in monospace form w/ a lighter font to denote that it won't >>> directly be shown in the page... -- [[harningt]] + +>>>>> We have a wmd plugin now. --[[Joey]] -- cgit v1.2.3 From 08e4472fc469c630ebef93e16a66a5a69d9cb33a Mon Sep 17 00:00:00 2001 From: Joey Hess <joey@gnu.kitenet.net> Date: Sat, 7 Mar 2009 17:48:17 -0500 Subject: question --- doc/todo/mdwn_preview.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/todo/mdwn_preview.mdwn b/doc/todo/mdwn_preview.mdwn index 2155f0f87..16d7409a0 100644 --- a/doc/todo/mdwn_preview.mdwn +++ b/doc/todo/mdwn_preview.mdwn @@ -49,7 +49,7 @@ Note that the WMD plugin does **not** handle directives. For this reason the no remains. Some CSS to clean up the display of the live WMD preview would be good. > Can you elucidate the CSS comment -- or will it be obvious what you mean -> when I try it? --[[Joey]] +> when I try it? Is it what's needed for the live preview? --[[Joey]] Install the following patch and plugin file. Then enable the 'wmd' plugin. -- cgit v1.2.3