]> sipb.mit.edu Git - ikiwiki.git/commitdiff
Merge branch 'master' into comments
authorJoey Hess <joey@gnu.kitenet.net>
Sun, 21 Dec 2008 06:04:03 +0000 (01:04 -0500)
committerJoey Hess <joey@gnu.kitenet.net>
Sun, 21 Dec 2008 06:04:03 +0000 (01:04 -0500)
IkiWiki/Plugin/comments.pm
doc/bugs/inline_sort_order_and_meta_date_value.mdwn
doc/todo/comments.mdwn

index 4f3b76db3dcb09850c607436632b1887af4f19c6..644ef1be8ceec33a7185ff8dd3492962bdabe9d6 100644 (file)
@@ -16,6 +16,7 @@ use constant POST_COMMENT => "Post comment";
 use constant CANCEL => "Cancel";
 
 my $postcomment;
+my %commentstate;
 
 sub import {
        hook(type => "checkconfig", id => 'comments',  call => \&checkconfig);
@@ -152,7 +153,6 @@ sub preprocess {
        my $commentauthor;
        my $commentauthorurl;
        my $commentopenid;
-
        if (defined $params{username}) {
                $commentuser = $params{username};
 
@@ -181,11 +181,11 @@ sub preprocess {
                $commentauthor = gettext("Anonymous");
        }
 
-       $pagestate{$page}{comments}{commentuser} = $commentuser;
-       $pagestate{$page}{comments}{commentopenid} = $commentopenid;
-       $pagestate{$page}{comments}{commentip} = $commentip;
-       $pagestate{$page}{comments}{commentauthor} = $commentauthor;
-       $pagestate{$page}{comments}{commentauthorurl} = $commentauthorurl;
+       $commentstate{$page}{commentuser} = $commentuser;
+       $commentstate{$page}{commentopenid} = $commentopenid;
+       $commentstate{$page}{commentip} = $commentip;
+       $commentstate{$page}{commentauthor} = $commentauthor;
+       $commentstate{$page}{commentauthorurl} = $commentauthorurl;
        if (! defined $pagestate{$page}{meta}{author}) {
                $pagestate{$page}{meta}{author} = $commentauthor;
        }
@@ -570,27 +570,27 @@ sub pagetemplate (@) {
 
        if ($template->query(name => 'commentuser')) {
                $template->param(commentuser =>
-                       $pagestate{$page}{comments}{commentuser});
+                       $commentstate{$page}{commentuser});
        }
 
        if ($template->query(name => 'commentopenid')) {
                $template->param(commentopenid =>
-                       $pagestate{$page}{comments}{commentopenid});
+                       $commentstate{$page}{commentopenid});
        }
 
        if ($template->query(name => 'commentip')) {
                $template->param(commentip =>
-                       $pagestate{$page}{comments}{commentip});
+                       $commentstate{$page}{commentip});
        }
 
        if ($template->query(name => 'commentauthor')) {
                $template->param(commentauthor =>
-                       $pagestate{$page}{comments}{commentauthor});
+                       $commentstate{$page}{commentauthor});
        }
 
        if ($template->query(name => 'commentauthorurl')) {
                $template->param(commentauthorurl =>
-                       $pagestate{$page}{comments}{commentauthorurl});
+                       $commentstate{$page}{commentauthorurl});
        }
 }
 
index 79d17ada2fc89c063fb1b5fcfef74cbdee071832..d851ef39742c3ff4334d94979cef1ea1c3d01376 100644 (file)
@@ -57,3 +57,45 @@ out the sort option. --[[Joey]]
                return sprintf(gettext("unknown sort type %s"), $params{sort});
        }
 
+> On further testing, I find that the bug is limited to the first time
+> creation time should be used and has nothing to do with setting the sort
+> parameter. Revised steps to reproduce: --[David A.  Harding](http://dtrt.org), 2008-12-20
+> 
+> 1. Create pages that sort different by mtime and ctime
+> 
+> 2. inline pages="somepages/*"
+> 
+> 3. ikiwiki --setup setup_file
+> 
+> 4. Pages are output incorrectly in mtime order
+> 
+> 5. ikiwiki --setup setup_file
+> 
+> 6. Pages are output correctly in ctime order
+> 
+> 7. Create new page in somepages/, set its ctime to earlier than another
+>    page in sompages/
+> 
+> 8. ikiwiki --setup setup_file
+> 
+> 9. All previously sorted pages output correctly in ctime order but new
+>    page is output incorrectly at the top as if its mtime was its ctime
+> 
+> 10. ikiwiki --setup setup_file
+> 
+> 11. All pages, including new page, are output correctly in ctime order
+
+You're confusing ctime and creation time. This is perhaps not suprising, as
+ikiwiki uses the term 'ctime' to refer to creation time. However, the unix
+ctime value is not the same thing. Unix ctime can change if a file changes
+owner, or in some cases, permissions. Unix ctime also always changes
+when the file is modified. Ikiwiki wants a first creation date of the file,
+and it accomplishes this by recording the initial ctime of a file the first
+time it processes it, and *preserving* that creation time forever, ignoring
+later ctime changes.
+
+I suspect that this, coupled with the fact that ikiwiki sorts newest pages
+first, explains everything you describe. If not, please send me a shell script
+test case I can run, as instructions like "Create pages that sort different by
+mtime and ctime" are not ones that I know how to follow (given that touch sets
+*both*). --[[Joey]] 
index 3a18d63b856396caf2ea9fb67a4bf524cc620cda..12aef0bb3968f7f9eaf0a707f4ebbfdb226ae828 100644 (file)
@@ -31,6 +31,13 @@ Known issues with the [[plugins/comments]] plugin:
   >>> The new code produces links like /wikiisons/openid.png, which
   >>> fail if ikiwiki is not at the root of the web server. --[[Joey]] 
 
+  >>> I got to wondering if the icons are needed. On my comments branch
+  >>> (not master), I've dropped the icons and info can be seen by hovering
+  >>> over the author's name. Idea being that you probably don't care how
+  >>> they authenticated unless something is weird, and in that case you
+  >>> can hover to check. Does that make sense, should I merge it?
+  >>> --[[Joey]] 
+
 * Should the comments be visually set off more from the page above?
   Rather than just a horizontal rule, I'm thinking put the comments
   in a box like is used for inlined pages.