meta: Gather permalink info on scan pass so it is available to inline when using a template that does not include page content.
parent
7ae0f754f3
commit
b907108271
|
@ -121,6 +121,10 @@ sub preprocess (@) {
|
|||
$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 (! $@) {
|
||||
|
@ -141,10 +145,9 @@ sub preprocess (@) {
|
|||
return;
|
||||
}
|
||||
|
||||
# Metadata collection that happens only during preprocessing pass.
|
||||
# Metadata handling that happens only during preprocessing pass.
|
||||
if ($key eq 'permalink') {
|
||||
if (safeurl($value)) {
|
||||
$pagestate{$page}{meta}{permalink}=$value;
|
||||
push @{$metaheaders{$page}}, scrub('<link rel="bookmark" href="'.encode_entities($value).'" />', $destpage);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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.
|
||||
* 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
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
||||
> 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]]
|
||||
|
|
Loading…
Reference in New Issue