]> sipb.mit.edu Git - ikiwiki.git/commitdiff
meta: Gather permalink info on scan pass so it is available to inline when using...
authorJoey Hess <joey@gnu.kitenet.net>
Wed, 21 Oct 2009 20:42:25 +0000 (16:42 -0400)
committerJoey Hess <joey@gnu.kitenet.net>
Wed, 21 Oct 2009 20:42:25 +0000 (16:42 -0400)
IkiWiki/Plugin/meta.pm
debian/changelog
doc/bugs/inline_breaks_PERMALINK_variable.mdwn

index 8dcd73a1a847683747c247068259255b6d905078..6fe9cda3424a6b85ba92f1b975f568b5e7eaaa40 100644 (file)
@@ -121,6 +121,10 @@ sub preprocess (@) {
                $pagestate{$page}{meta}{authorurl}=$value if safeurl($value);
                # fallthrough
        }
                $pagestate{$page}{meta}{authorurl}=$value if safeurl($value);
                # fallthrough
        }
+       elsif ($key eq 'permalink') {
+               $pagestate{$page}{meta}{permalink}=$value if safeurl($value);
+               # fallthrough
+       }
        elsif ($key eq 'date') {
                eval q{use Date::Parse};
                if (! $@) {
        elsif ($key eq 'date') {
                eval q{use Date::Parse};
                if (! $@) {
@@ -141,10 +145,9 @@ sub preprocess (@) {
                return;
        }
 
                return;
        }
 
-       # Metadata collection that happens only during preprocessing pass.
+       # Metadata handling that happens only during preprocessing pass.
        if ($key eq 'permalink') {
                if (safeurl($value)) {
        if ($key eq 'permalink') {
                if (safeurl($value)) {
-                       $pagestate{$page}{meta}{permalink}=$value;
                        push @{$metaheaders{$page}}, scrub('<link rel="bookmark" href="'.encode_entities($value).'" />', $destpage);
                }
        }
                        push @{$metaheaders{$page}}, scrub('<link rel="bookmark" href="'.encode_entities($value).'" />', $destpage);
                }
        }
index 0ff7a0d13fa9709e0800a87e0a047f6de978f90f..be30b498c372a2621ef74c572ef67a4f26fbc23f 100644 (file)
@@ -6,6 +6,8 @@ ikiwiki (3.20091018) UNRELEASED; urgency=low
   * Fix a bug introduced in the last version that caused ikiwiki
     to skip all files if a sourcedir of "./" was specified.
   * Support CFLAGS when building wrapper.
   * Fix a bug introduced in the last version that caused ikiwiki
     to skip all files if a sourcedir of "./" was specified.
   * Support CFLAGS when building wrapper.
+  * meta: Gather permalink info on scan pass so it is available
+    to inline when using a template that does not include page content.
 
  -- Joey Hess <joeyh@debian.org>  Sun, 18 Oct 2009 13:44:09 -0400
 
 
  -- Joey Hess <joeyh@debian.org>  Sun, 18 Oct 2009 13:44:09 -0400
 
index 8a50b1262b780c437da26cfebaa987c28ab5e1a2..fc891bb25a35f6356df34f59d18db22d2960339e 100644 (file)
@@ -7,3 +7,19 @@ with sometemplate being
 > `<p><a href="<TMPL_VAR PERMALINK>"><TMPL_VAR TITLE></a> (<TMPL_VAR CTIME>)</p>`
 
 produced output that links nowhere (`<a href="">`) while the other variables do fine. This problem does not occur in 3.1415926.
 > `<p><a href="<TMPL_VAR PERMALINK>"><TMPL_VAR TITLE></a> (<TMPL_VAR CTIME>)</p>`
 
 produced output that links nowhere (`<a href="">`) while the other variables do fine. This problem does not occur in 3.1415926.
+
+> This must be caused by an optimisation that avoids reading the page
+> content when using a template that does not use CONTENT. 
+> 
+> I guess that it needs to instead check all the variables the template 
+> uses, and read content if PERMALINK, or probably any other unknown
+> variable is used. Unfortunatly, that will lose the optimisation
+> for the archivepage template as well -- it also uses PERMALINK.
+> 
+> So, revert the optimisation? Or, make meta gather the permalink
+> data on scan? That seems doable, but is not a general fix for
+> other stuff that might be a) used in a template and b) gathered
+> at preprocess time.
+> 
+> For now, I am going with the special case fix of fixing meta. I may need
+> to go for a more general fix later. --[[Joey]] [[!tag done]]