* Allow preprocessor directives to be expanded in inlined blog pages.
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Sat, 29 Jul 2006 21:38:50 +0000 (21:38 +0000)
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Sat, 29 Jul 2006 21:38:50 +0000 (21:38 +0000)
  However, to avoid inlining loops etc, don't expand inline directives in
  inlined pages.

IkiWiki/Plugin/inline.pm
debian/changelog

index 1ea347b084fbeae37d18cdb8ea42be0b223e641f..427c25a96d75f8ffdd760a487ad1ae704ee80364 100644 (file)
@@ -21,6 +21,7 @@ sub import { #{{{
 package IkiWiki;
 
 my %toping;
+my $processing_inline=0;
 
 sub preprocess_inline (@) { #{{{
        my %params=@_;
@@ -35,6 +36,12 @@ sub preprocess_inline (@) { #{{{
                $params{show}=10;
        }
 
+       # Avoid nested inlines, to avoid loops etc.
+       if ($processing_inline) {
+               return "";
+       }
+       $processing_inline=1;
+
        my @list;
        foreach my $page (keys %pagesources) {
                next if $page eq $params{page};
@@ -104,6 +111,8 @@ sub preprocess_inline (@) { #{{{
                $toping{$params{page}}=1 unless $config{rebuild};
        }
        
+       $processing_inline=0;
+
        return $ret;
 } #}}}
 
@@ -114,7 +123,7 @@ sub get_inline_content ($$) { #{{{
        my $file=$pagesources{$page};
        my $type=pagetype($file);
        if (defined $type) {
-               return htmlize($type, preprocess($page, $destpage, linkify($page, $destpage, readfile(srcfile($file))), 1));
+               return htmlize($type, preprocess($page, $destpage, linkify($page, $destpage, readfile(srcfile($file)))));
        }
        else {
                return "";
index 6214f592041be7e1afcfc812f39d42d7a8fc427c..7685f9603bfc2d76d5e161fa24cdfc69ea33d53a 100644 (file)
@@ -1,4 +1,4 @@
-ikiwiki (1.12) UNRELEASED; urgency=low
+ikiwiki (1.12) unstable; urgency=low
 
   "Viva l'Italia!"
   * New pagestats plugin from Enrico, which can generate a table counting
@@ -21,8 +21,11 @@ ikiwiki (1.12) UNRELEASED; urgency=low
   * Add --tagbase option to tag plugin.
   * Add exclude option in setup files, works same as --exclude.
   * Put categories in rss feeds for tagged items.
+  * Allow preprocessor directives to be expanded in inlined blog pages.
+    However, to avoid inlining loops etc, don't expand inline directives in
+    inlined pages.
 
- -- Joey Hess <joeyh@debian.org>  Sat, 29 Jul 2006 03:24:58 -0400
+ -- Joey Hess <joeyh@debian.org>  Sat, 29 Jul 2006 17:12:56 -0400
 
 ikiwiki (1.11) unstable; urgency=low