]> sipb.mit.edu Git - ikiwiki.git/commitdiff
Merge branch 'master' into autotag
authorJoey Hess <joey@kitenet.net>
Wed, 21 Apr 2010 23:47:38 +0000 (19:47 -0400)
committerJoey Hess <joey@kitenet.net>
Wed, 21 Apr 2010 23:47:38 +0000 (19:47 -0400)
Conflicts:
IkiWiki/Plugin/tag.pm

IkiWiki.pm
IkiWiki/Plugin/tag.pm
IkiWiki/Render.pm
doc/bugs/Comments_dissapeared.mdwn
doc/todo/auto-create_tag_pages_according_to_a_template.mdwn
doc/todo/auto_rebuild_on_template_change.mdwn

index 5355b838d07b304f44e75a5b8a176c77b7575c26..dbf50feb46d31cc1a97f14456527d7cd1ea6a2cd 100644 (file)
@@ -2255,7 +2255,7 @@ sub derel ($$) {
        if ($path =~ m!^\./!) {
                $from=~s#/?[^/]+$## if defined $from;
                $path=~s#^\./##;
-               $path="$from/$path" if length $from;
+               $path="$from/$path" if defined $from && length $from;
        }
 
        return $path;
index 6a6517671c3331909edb4ce60d4c920bc942e1c8..72ae682f3121f31df87bed58dce79341f58abd07 100644 (file)
@@ -169,7 +169,9 @@ sub pagetemplate (@) {
 package IkiWiki::PageSpec;
 
 sub match_tagged ($$;@) {
-       return match_link($_[0], IkiWiki::Plugin::tag::taglink($_[1]), linktype => 'tag');
+       my $page=shift;
+       my $glob=shift;
+       return match_link($page, IkiWiki::Plugin::tag::taglink($glob), linktype => 'tag', @_);
 }
 
 1
index c3e07baf67a1625f635d43fd3e74540f3ee03783..49d080c161a9c6cc93250b3c6a8dc204a5ee209a 100644 (file)
@@ -517,7 +517,7 @@ sub link_types_changed ($$) {
        my $old = shift;
 
        return 0 if !defined $new && !defined $old;
-       return 1 if !defined $new || !defined $old;
+       return 1 if (!defined $new && %$old) || (!defined $old && %$new);
 
        while (my ($type, $links) = each %$new) {
                foreach my $link (keys %$links) {
index 7ff1a012f3f830ec6ba9fec650e3f3c4434beecc..787f18c98799c9835c3fc88b38061c3aad2db4eb 100644 (file)
@@ -33,3 +33,37 @@ I have tried rebuilding on my squeeze system and still comments don't appear. An
 <http://natalian.org/comments/>
 
 I was worried is was due to a time skew problem I was experiencing on my VPS in the last month, though the time is right now and still comments do not appear on blog posts like <http://natalian.org/archives/2010/03/25/BBC_News_complaints/>
+
+# Debugging templates
+
+`sudo apt-get install libhtml-template-compiled-perl`
+
+    hendry@webconverger templates$ cat test-template.perl
+    #!/usr/bin/perl
+    use HTML::Template::Compiled;
+    local $HTML::Template::Compiled::DEBUG = 1;
+    my $htc = HTML::Template::Compiled->new(
+             filename => "$ARGV[0]",
+    );
+    eval {  
+            print $htc->output;
+    };
+    if ($@) {
+            # reports as text
+            my $msg = $htc->debug_code;
+            # reports as a html table
+            my $msg_html = $htc->debug_code('html');
+    }
+    hendry@webconverger templates$ ./test-template.perl page.tmpl
+    Missing closing tag for 'IF' atend of page.tmpl line 159
+
+
+I think the problem was before that it was `<TMPL_IF COMMENTS>` and now it is `<TMPL_IF NAME="COMMENTS">` ?
+
+
+
+# Solved
+
+A merge with the templates in master with my [html5](http://git.webconverger.org/?p=ikiwiki;a=shortlog;h=refs/heads/html5) branch looks like it has solved the problem. Also see [[bugs/html5_support]].
+
+[[bugs/done]]
index d7637ef1be0a6885f519b2bcefebc1d9ff3198e0..32870dd3de12422701aab29faf9a4e6fe0f417e0 100644 (file)
@@ -15,86 +15,7 @@ A new setting is used to enable or disable auto-create tag pages, `tag_autocreat
 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();
-       +}
-       +
-
+*see git history of this page if you want the patch --[[smcv]]*
 
 This uses a [[template|wikitemplates]] called `autotagpage.tmpl`, here is my template file:
 
@@ -250,6 +171,44 @@ wrong direction. (fixed --[[Joey]] )
 >>>> Yes, I forgot about that and that is a bug. I'll fix that.
 >>>> --[[David_Riebenbauer]]
 
+>>>>> In my branch, it keeps a list of autofiles that were created,
+>>>>> not deleted. And I think that turns out to be necessary, really.
+>>>>> However, I see no way to clean out that list on deletion and
+>>>>> manual recreation -- it still needs to remember it was once an autofile,
+>>>>> in order to avoid recreating it if it's deleted yet again. --[[Joey]]
+
+>>>>>> Are these really the semantics we want? It seems strange to me
+>>>>>> that this:
+>>>>>>
+>>>>>> * tag a page as foo
+>>>>>> * tags/foo automatically appears
+>>>>>> * delete tags/foo
+>>>>>> * create tags/foo manually
+>>>>>> * delete tags/foo again
+>>>>>> * tags/foo isn't automatically created
+>>>>>>
+>>>>>> isn't the same as this:
+>>>>>>
+>>>>>> * create tags/foo
+>>>>>> * delete tags/foo
+>>>>>> * tag a page as foo
+>>>>>> * tags/foo automatically appears
+>>>>>>
+>>>>>> or even this:
+>>>>>>
+>>>>>> * create tags/foo
+>>>>>> * tag a page as foo
+>>>>>> * delete tags/foo
+>>>>>> * tags/foo automatically appears (?)
+>>>>>>
+>>>>>> --[[smcv]]
+
+>>>>>>> I agree that the last of these is not desired. It could be avoided
+>>>>>>> by extending the list of autofiles to include those that were not
+>>>>>>> created due to the file/page already existing.
+>>>>>>> 
+>>>>>>> Hmm, that would fix the previous scenario too. --[[Joey]] 
+
 >>> * `autoindex` forgets that a page was deleted when it's no longer needed
 >>>   anyway (this may be harder for `autotag`?)
 
@@ -264,26 +223,23 @@ wrong direction. (fixed --[[Joey]] )
 >>>> Good suggestion. Adding the files to RCS is on my todo list anyway.
 >>>> --[[David_Riebenbauer]]
 
+>>>>> I think it may be better to allow the `add_autofile` caller
+>>>>> to specify if it is added to RCS. In my branch, it can do
+>>>>> so by just making the callback it registers call `rcs_add`; 
+>>>>> and I have tag do this. Other plugins might want autofiles
+>>>>> that do not get checked in, conceivably.
+>>>>> --[[Joey]] 
+
 > Regarding the call from `IkiWiki.pm` to `Render.pm`, wouldn't this be
 > quite easy to solve by moving `verify_src_file` to IkiWiki.pm? --[[smcv]]
 
 >> True. I'll do that. --[[David_Riebenbauer]]
+>> Fixed in my branch --[[Joey]]
 
 [[!template id=gitbranch branch=origin/autotag author="[[Joey]]"]]
 I've pushed an autotag branch of my own, which refactors
-things a bit. It is untested so far though. --[[Joey]]
-
----
-
-Known bugs in my branch (probably also in David's):
-
-* Does not remember that a tag was deleted.
-  
-  The code to do that only works if, at the same time the tag
-  is deleted, one of the pages that has the tag is modified.
-  That's because `add_autofile` needs to be called before it's
-  aware the autofile exists, and if it's not aware, it does not
-  record it as a deleted autofile.
+things a bit and fixes bugs around deletion/recreation.
+I've tested it somewhat. --[[Joey]]
 
 [f3abeac919c4736429bd3362af6edf51ede8e7fe]: http://git.liegesta.at/?p=ikiwiki.git;a=commitdiff;h=f3abeac919c4736429bd3362af6edf51ede8e7fe (commitdiff for f3abeac919c4736429bd3362af6edf51ede8e7fe)
 [4af4d26582f0c2b915d7102fb4a604b176385748]: http://git.liegesta.at/?p=ikiwiki.git;a=commitdiff;h=4af4d26582f0c2b915d7102fb4a604b176385748 (commitdiff for 4af4d26582f0c2b915d7102fb4a604b176385748)
index b5c1079156ced0e190341e2f652ac3f08357bb88..a112cb9da9581d9fa38dd0a96e49ba7d476f00bf 100644 (file)
@@ -35,6 +35,10 @@ suffice.
 (This would also help to clear up the tricky disctinction between
 wikitemplates and in-wiki templates.)
 
+Note also that when using templates from "$srcdir/templates/", `no_includes`
+needs to be set. Currently this is done by the two plugins that use
+such templates, while includes are allowed in `templatedir`.
+
 > But would this require that templates be parseable as wiki pages?  Because that would be a nuisance. --[[KathrynAndersen]]
 
 >> It would be better for them not to be rendered separately at all.