]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/todo/source_link.mdwn
Merge branch 'master' of git://github.com/joeyh/ikiwiki
[git.ikiwiki.info.git] / doc / todo / source_link.mdwn
index 93791c81af3ec69661b4ac16f1b08bdbb75ac317..cf3e69487ad3f19367eeff6c6b3d232f656a1c84 100644 (file)
@@ -1,9 +1,38 @@
 How about a direct link from the page header to the source of the latest version, to avoid the need to either use edit or navigate to the current version via the history link?
 
- I'd like this too (and might try to implement it). -- [[jondowland]]
+ I'd like this too (and might try to implement it). -- [[users/jon]]
 
 I just implemented this.  There is one [[patch]] to the default page template, and a new plugin.  -- [[Will]]
 
+All of this code is licensed under the GPLv2+. -- [[Will]]
+
+> The use of sessioncgi here seems undesirable: on wikis where anonymity is
+> not allowed, you'll be asked to log in. Couldn't you achieve the same thing
+> by loading the index with IkiWiki::loadindex, like [[plugins/goto]] does?
+> --[[smcv]]
+
+[[done]]
+
+>> I've applied the patch below in a git branch, fixed my earlier criticism,
+>> and also fixed a couple of other issues I noticed:
+>>
+>> * missing pages could be presented better as a real 404 page
+>> * the default Content-type should probably be UTF-8 since the rest of
+>>   IkiWiki tends to assume that
+>> * emitting attachments (images, etc.) as text/plain isn't going to work :-)
+>>
+>> Any opinions on my branch? I think it's ready for merge, if Joey approves.
+>>
+>> --[[smcv]]
+
+>>> I need a copyright&license statement, so debian/copyright can be updated for
+>>> the plugin, before I can merge this. Otherwise ready. --[[Joey]]
+
+>>> That looks like a nice set of fixes.  One more that might be worthwhile: instead of reading the page source into a var, and then writing it out later, it might be nice to just
+>>>  `print readfile(srcfile(pagesources{$page}));` at the appropriate point. -- [[Will]]
+
+>>>> OK, I've committed that. --[[smcv]]
+
 ----
 
     diff --git a/templates/page.tmpl b/templates/page.tmpl
@@ -31,13 +60,13 @@ I just implemented this.  There is one [[patch]] to the default page template, a
     use IkiWiki;
     use open qw{:utf8 :std};
     
-    sub import { #{{{
+    sub import {
        hook(type => "getsetup", id => "getsource", call => \&getsetup);
        hook(type => "pagetemplate", id => "getsource", call => \&pagetemplate);
        hook(type => "sessioncgi", id => "getsource", call => \&cgi_getsource);
-    } # }}}
+    }
     
-    sub getsetup () { #{{{
+    sub getsetup () {
        return
                plugin => {
                        safe => 1,
@@ -50,9 +79,9 @@ I just implemented this.  There is one [[patch]] to the default page template, a
                        safe => 1,
                        rebuild => 0,
                },
-    } #}}}
+    }
     
-    sub pagetemplate (@) { #{{{
+    sub pagetemplate (@) {
        my %params=@_;
     
        my $page=$params{page};
@@ -62,9 +91,9 @@ I just implemented this.  There is one [[patch]] to the default page template, a
                $template->param(getsourceurl => IkiWiki::cgiurl(do => "getsource", page => $page));
                $template->param(have_actions => 1);
        }
-    } # }}}
+    }
     
-    sub cgi_getsource ($$) { #{{{
+    sub cgi_getsource ($$) {
        my $cgi=shift;
        my $session=shift;
     
@@ -102,3 +131,5 @@ I just implemented this.  There is one [[patch]] to the default page template, a
     }
     
     1
+
+[[done]] --[[smcv]]