File Coverage

blib/lib/HTML/WebMake/NormalContent.pm
Criterion Covered Total %
statement 15 355 4.2
branch 0 168 0.0
condition 0 54 0.0
subroutine 5 42 11.9
pod 9 37 24.3
total 29 656 4.4


line stmt bran cond sub pod time code
1             #
2             # content items used to store "normal", non-metadata content.
3              
4             package HTML::WebMake::NormalContent;
5              
6 1     1   6 use HTML::WebMake::Content;
  1         1  
  1         22  
7 1     1   4 use Carp;
  1         2  
  1         58  
8 1     1   4 use strict;
  1         2  
  1         26  
9 1     1   4 use locale;
  1         1  
  1         7  
10              
11 1         5015 use vars qw{
12             @ISA
13             $WM_META_PAT $MIN_FMT_CACHE_LEN
14 1     1   25 };
  1         1  
15              
16             @ISA = qw(HTML::WebMake::Content);
17              
18              
19             $WM_META_PAT = qr{
20             $MIN_FMT_CACHE_LEN = 1024;
21              
22             ###########################################################################
23              
24             sub new {
25 0     0 0   my $class = shift;
26 0   0       $class = ref($class) || $class;
27              
28 0           my ($name, $file, $attrs, $text, $datasource) = @_;
29 0           my $self = $class->SUPER::new (@_);
30              
31 0           bless ($self, $class);
32              
33             # do some references now to avoid doing them later, minor speedup
34 0           my $main = $self->{main};
35 0           my $util = $main->{util};
36 0           my $metadata = $main->{metadata};
37 0           my $attrval;
38              
39             # used for Content items defined from Contents sections
40 0 0         if (defined $datasource) {
41 0           $self->{datasource} = $datasource;
42             }
43              
44             # see if we have 'map=false' as an attribute
45 0           $attrval = $attrs->{'map'};
46 0   0       $attrval ||= $metadata->get_attrdefault ('map');
47 0 0         if (defined $attrval) {
48 0 0         if (!$util->parse_boolean ($attrval)) {
49 0           $self->{no_map} = 1;
50             }
51 0           delete $self->{'map'}; # in case it was set as an attr
52             }
53              
54             # is this content item formatted as-is, no content refs to be expanded
55             # etc.?
56 0           $attrval = $attrs->{'asis'};
57 0   0       $attrval ||= $metadata->get_attrdefault ('asis');
58 0 0         if (defined $attrval) {
59 0           $self->{keep_as_is} = $util->parse_boolean ($attrval);
60 0           delete $self->{'asis'}; # in case it was set as an attr
61             }
62              
63 0           $attrval = $attrs->{'isroot'};
64 0   0       $attrval ||= $metadata->get_attrdefault ('isroot');
65 0 0         if (defined $attrval) {
66 0           $self->{is_root} = $util->parse_boolean ($attrval);
67 0           delete $self->{'isroot'}; # in case it was set as an attr
68             }
69              
70 0 0         if (defined $attrs->{is_sitemap}) {
71 0           $self->{is_sitemap} =
72             $util->parse_boolean ($attrs->{is_sitemap});
73             }
74              
75 0           $attrval = $attrs->{'preproc'};
76 0   0       $attrval ||= $metadata->get_attrdefault ('preproc');
77 0 0         if (defined $attrval) {
78 0           $self->{preproc} = $attrval;
79             }
80              
81 0 0         if ($self->{is_sitemap}) {
82 0           $self->{sitemap_node_name} = $attrs->{node};
83 0           $self->{sitemap_leaf_name} = $attrs->{leaf};
84 0           $self->{sitemap_dynamic_name} = $attrs->{dynamic};
85             }
86              
87 0 0         if ($self->{is_root}) {
88 0           $main->getmapper()->set_root ($self);
89             }
90              
91             # is_navlinks is an attribute set by Main::add_navlinks().
92 0 0         if ($self->{is_navlinks}) {
93 0           $self->{cannot_have_metadata} = 1;
94 0           $self->{only_usable_from_def_refs} = 1;
95 0           $self->{no_map} = 1;
96             }
97              
98             # is_breadcrumbs: set by Main::add_breadcrumbs().
99 0 0         if ($self->{is_breadcrumbs}) {
100 0           $self->{cannot_have_metadata} = 1;
101 0           $self->{only_usable_from_def_refs} = 1;
102 0           $self->{no_map} = 1;
103             }
104              
105 0 0         if (!$self->{no_map}) {
106 0           $metadata->add_metadefaults ($self);
107             }
108              
109 0 0 0       if ($self->{is_root} && $self->{no_map}) {
110 0           warn ($self->as_string().": root content cannot have \"map=false\"!\n");
111 0           undef $self->{no_map};
112             }
113              
114 0           $main->add_new_content_to_map ($name, $self);
115              
116 0           $self;
117             }
118              
119 0     0 0   sub dbg { HTML::WebMake::Main::dbg (@_); }
120 0     0 0   sub dbg2 { HTML::WebMake::Main::dbg2 (@_); }
121 0     0 0   sub vrb { HTML::WebMake::Main::vrb (@_); }
122              
123             # -------------------------------------------------------------------------
124              
125             sub as_string {
126 0     0 1   my ($self) = @_;
127 0           "\$\{".$self->{name}."\}";
128             }
129              
130             # -------------------------------------------------------------------------
131              
132             sub is_generated_content {
133 0     0 1   0;
134             }
135              
136             # -------------------------------------------------------------------------
137              
138             sub expand {
139 0     0 1   my ($self) = @_;
140 0           return $self->{main}->curly_subst ($self->{name}, $self->{name});
141             }
142              
143             sub expand_no_ref {
144 0     0 1   my ($self) = @_;
145 0           return $self->{main}->fileless_subst ($self->{name}, '${'.$self->{name}.'}');
146             }
147              
148             # -------------------------------------------------------------------------
149              
150             sub get_metadata {
151 0     0 1   my ($self, $key) = @_;
152              
153 0 0         if (!defined $self->{cached_metas}) {
154 0           $self->{cached_metas} = { };
155             }
156              
157 0           my $val = $self->{cached_metas}->{$key};
158 0           my $main = $self->{main};
159              
160 0 0         if (!defined $val) {
161 0           $val = $main->quiet_curly_meta_subst
162             ($HTML::WebMake::Main::SUBST_META, $self->{name}.".".$key);
163 0 0         if (!defined $val) {
164 0   0       $val ||= $main->{metadata}->get_default_value ($key);
165             }
166              
167 0           $val = $main->{metadata}->convert_to_type ($key, $val);
168 0           $self->{cached_metas}->{$key} = $val;
169             }
170              
171 0           return $val;
172             }
173              
174             # -------------------------------------------------------------------------
175              
176             sub create_extra_metas_if_needed {
177 0     0 0   my ($self) = @_;
178 0 0         if (!defined $self->{extra_metas}) {
179 0           $self->{extra_metas} = { };
180             }
181             }
182              
183             # -------------------------------------------------------------------------
184              
185             sub load_metadata {
186 0     0 0   my ($self, $name, $key) = @_;
187              
188             # a different method is used to load metadata from the current content
189             # item, so this should not happen:
190 0 0         if ($key =~ /^this\./i) {
191 0           warn "oops! wasn't expecting a this. metaref in load_metadata: $key";
192             }
193              
194             # unmapped content can't have metadata
195 0 0         if ($self->{no_map}) { return; }
  0            
196              
197 0 0         if (defined $self->{extra_metas}->{$key}) {
198 0           $self->add_extra_metas ($name);
199 0           return; # we don't need to parse the text for this metadatum
200             }
201              
202 0 0         if (!defined ($self->{parsed_metadata_tags})) {
203 0           dbg ("loading content \"$name\" for meta ref \$\[$key\]");
204 0           $self->load_text_if_needed();
205              
206 0           $self->{set_thisdot_metadata_items} = 0;
207 0           $self->parse_metadata_tags ($name, $self->{text});
208              
209 0           $self->add_extra_metas ($name);
210 0           $self->infer_implicit_metas();
211              
212 0           $self->{parsed_metadata_tags} = 1;
213             }
214             }
215              
216             # -------------------------------------------------------------------------
217              
218             sub parse_metadata_tags {
219 0     0 0   my ($self, $from, $str) = @_;
220              
221 0 0         if ($str !~ /${WM_META_PAT}/i) { return; }
  0            
222              
223 0           my $util = $self->{main}->{util};
224              
225 0           $self->{meta_from} = $from;
226 0           $str = $util->strip_tags ($str, "wmmeta",
227             $self, \&tag_wmmeta, qw(name));
228 0           $self->{meta_from} = undef;
229              
230 0 0         if ($str =~ /${WM_META_PAT}.*?>/i) {
231 0           warn " tag could not be parsed: \${$from} in ".
232             $self->{main}->{current_subst}->{filename}.": $&\n";
233             }
234             }
235              
236             sub tag_wmmeta {
237 0     0 0   my ($self, $tag, $attrs, $text) = @_;
238              
239 0           my $name = lc $attrs->{name};
240              
241             # use a "value" attr if available; otherwise use the text
242             # inside the tag.
243 0           my $val = $attrs->{value};
244 0 0         if (!defined $val) { $val = $text; }
  0            
245              
246 0           $self->{main}->add_metadata ($self->{meta_from}, $name, $val, $attrs,
247             $self->{set_thisdot_metadata_items});
248              
249 0           "";
250             }
251              
252             # -------------------------------------------------------------------------
253              
254             sub infer_implicit_metas {
255 0     0 0   my ($self) = @_;
256              
257 0 0 0       if (defined $self->{main}->{metadatas}->{"this.title"}
258             && defined $self->{main}->{metadatas}->{$self->{name}.".title"})
259             {
260 0           return; # no need to infer it, it's already defined
261             }
262              
263             # Snarf a default title from the text, if one has not been set.
264 0           $self->find_implicit_title_in_text (\$self->{text});
265             }
266              
267             # -------------------------------------------------------------------------
268              
269             sub find_implicit_title_in_text {
270 0     0 0   my ($self, $txt) = @_;
271              
272 0           my $fmt = $self->get_format();
273              
274             # POD documentation: the NAME section
275 0 0         if ($fmt eq 'text/pod') {
    0          
    0          
    0          
276 0 0         if ($$txt =~ /^\s*=head1\s+[-A-Z0-9_ ]+\n\s+(\S[^\n]*?)\n/s)
277 0           { $self->add_inferred_metadata ("title", $1, 'text/html'); }
278             }
279              
280             # HTML/XML: the first title tag or heading
281             elsif ($fmt eq 'text/html') {
282 0 0         if ($$txt =~ /(.*?)<\/title>/si) </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#-2"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="283">283</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { $self->add_inferred_metadata ("title", $1, 'text/html'); } </td> </tr> <tr> <td class="h" > <a name="284">284</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # or title tag </td> </tr> <tr> <td class="h" > <a name="285">285</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> elsif ($$txt =~ /<h\d>(.*?)<\/h\d>/si) </td> </tr> <tr> <td class="h" > <a name="286">286</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { $self->add_inferred_metadata ("title", $1, 'text/html'); } </td> </tr> <tr> <td class="h" > <a name="287">287</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="288">288</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="289">289</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # EtText: EtText headings </td> </tr> <tr> <td class="h" > <a name="290">290</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> elsif ($fmt eq 'text/et') { </td> </tr> <tr> <td class="h" > <a name="291">291</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#291-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ($$txt =~ /(?:^\n+|\n\n)([^\n]+)[ \t]*\n[-=\~]{3,}\n/s) </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#-2"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="292">292</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { $self->add_inferred_metadata ("title", $1, 'text/html'); } </td> </tr> <tr> <td class="h" > <a name="293">293</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="294">294</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> elsif ($$txt =~ /(?:^\n+|\n\n)([0-9A-Z][^a-z]+)[ \t]*\n\n/s) </td> </tr> <tr> <td class="h" > <a name="295">295</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { $self->add_inferred_metadata ("title", $1, 'text/html'); } </td> </tr> <tr> <td class="h" > <a name="296">296</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="297">297</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="298">298</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # otherwise the first line of non-white chars </td> </tr> <tr> <td class="h" > <a name="299">299</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> elsif ($$txt =~ /^\s*(\S[^\n]*?)\s*\n/s) </td> </tr> <tr> <td class="h" > <a name="300">300</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { $self->add_inferred_metadata ("title", $1, $fmt); } </td> </tr> <tr> <td class="h" > <a name="301">301</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="302">302</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> undef; </td> </tr> <tr> <td class="h" > <a name="303">303</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="304">304</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="305">305</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # ------------------------------------------------------------------------- </td> </tr> <tr> <td class="h" > <a name="306">306</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="307">307</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub add_inferred_metadata { </td> </tr> <tr> <td class="h" > <a name="308">308</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#308-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#308-1"> 0 </a> </td> <td >   </td> <td class="s"> my ($self, $name, $val, $fmt) = @_; </td> </tr> <tr> <td class="h" > <a name="309">309</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="310">310</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $existingmeta = $self->{main}->{metadatas}->{$self->{name}.".".$name}; </td> </tr> <tr> <td class="h" > <a name="311">311</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#311-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return if (defined $existingmeta); </td> </tr> <tr> <td class="h" > <a name="312">312</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="313">313</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $attrs = { }; </td> </tr> <tr> <td class="h" > <a name="314">314</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="315">315</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#315-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ($fmt ne 'text/html') { </td> </tr> <tr> <td class="h" > <a name="316">316</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $attrs->{format} = $fmt; </td> </tr> <tr> <td class="h" > <a name="317">317</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="318">318</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="319">319</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # If the "title" has a reference to $[this.title], it's not a </td> </tr> <tr> <td class="h" > <a name="320">320</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # suitable inference; it uses the genuine title from another </td> </tr> <tr> <td class="h" > <a name="321">321</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # content object. </td> </tr> <tr> <td class="h" > <a name="322">322</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#322-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return if ($val =~ /\$\[this.title\]/i); </td> </tr> <tr> <td class="h" > <a name="323">323</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="324">324</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $val =~ s/<[^>]+>//g; # trim wayward HTML tags </td> </tr> <tr> <td class="h" > <a name="325">325</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $val =~ s/^\s+//; </td> </tr> <tr> <td class="h" > <a name="326">326</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $val =~ s/\s+$//; </td> </tr> <tr> <td class="h" > <a name="327">327</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="328">328</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> dbg ("inferring $name metadata from text: \"$val\""); </td> </tr> <tr> <td class="h" > <a name="329">329</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{main}->add_metadata ($self->{name}, $name, $val, $attrs, </td> </tr> <tr> <td class="h" > <a name="330">330</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{set_thisdot_metadata_items}); </td> </tr> <tr> <td class="h" > <a name="331">331</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="332">332</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->create_extra_metas_if_needed(); </td> </tr> <tr> <td class="h" > <a name="333">333</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{extra_metas}->{$name} = $val; </td> </tr> <tr> <td class="h" > <a name="334">334</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="335">335</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="336">336</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # ------------------------------------------------------------------------- </td> </tr> <tr> <td class="h" > <a name="337">337</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="338">338</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub add_extra_metas { </td> </tr> <tr> <td class="h" > <a name="339">339</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#339-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#339-1"> 0 </a> </td> <td >   </td> <td class="s"> my ($self, $from) = @_; </td> </tr> <tr> <td class="h" > <a name="340">340</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # also add our own extra metadata from nav links, <defaultmeta> tags </td> </tr> <tr> <td class="h" > <a name="341">341</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # etc. </td> </tr> <tr> <td class="h" > <a name="342">342</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my ($metaname, $val); </td> </tr> <tr> <td class="h" > <a name="343">343</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> while (($metaname, $val) = each %{$self->{extra_metas}}) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="344">344</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{main}->add_metadata ($from, $metaname, $val, { }, </td> </tr> <tr> <td class="h" > <a name="345">345</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{set_thisdot_metadata_items}); </td> </tr> <tr> <td class="h" > <a name="346">346</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="347">347</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="348">348</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="349">349</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # ------------------------------------------------------------------------- </td> </tr> <tr> <td class="h" > <a name="350">350</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="351">351</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub get_score { </td> </tr> <tr> <td class="h" > <a name="352">352</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#352-1"> 0 </a> </td> <td class="c3" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#352-1"> 1 </a> </td> <td >   </td> <td class="s"> my ($self) = @_; </td> </tr> <tr> <td class="h" > <a name="353">353</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $self->get_metadata ("score"); </td> </tr> <tr> <td class="h" > <a name="354">354</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="355">355</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="356">356</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub get_title { </td> </tr> <tr> <td class="h" > <a name="357">357</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#357-1"> 0 </a> </td> <td class="c3" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#357-1"> 1 </a> </td> <td >   </td> <td class="s"> my ($self) = @_; </td> </tr> <tr> <td class="h" > <a name="358">358</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $self->get_metadata ("title"); </td> </tr> <tr> <td class="h" > <a name="359">359</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="360">360</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="361">361</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # ------------------------------------------------------------------------- </td> </tr> <tr> <td class="h" > <a name="362">362</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="363">363</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub get_modtime { </td> </tr> <tr> <td class="h" > <a name="364">364</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#364-1"> 0 </a> </td> <td class="c3" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#364-1"> 1 </a> </td> <td >   </td> <td class="s"> my ($self) = @_; </td> </tr> <tr> <td class="h" > <a name="365">365</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#365-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (defined $self->{datasource}) { </td> </tr> <tr> <td class="h" > <a name="366">366</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $self->{datasource}->get_location_mod_time ($self->get_filename()); </td> </tr> <tr> <td class="h" > <a name="367">367</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="368">368</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $self->{main}->cached_get_modtime ($self->get_filename()); </td> </tr> <tr> <td class="h" > <a name="369">369</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="370">370</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="371">371</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="372">372</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # ------------------------------------------------------------------------- </td> </tr> <tr> <td class="h" > <a name="373">373</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="374">374</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub get_text_as { </td> </tr> <tr> <td class="h" > <a name="375">375</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#375-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#375-1"> 0 </a> </td> <td >   </td> <td class="s"> my ($self, $format) = @_; </td> </tr> <tr> <td class="h" > <a name="376">376</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $main = $self->{main}; </td> </tr> <tr> <td class="h" > <a name="377">377</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="378">378</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#378-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (!defined $format) { </td> </tr> <tr> <td class="h" > <a name="379">379</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> carp ($self->as_string().": get_text_as with undef arg"); </td> </tr> <tr> <td class="h" > <a name="380">380</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return ""; </td> </tr> <tr> <td class="h" > <a name="381">381</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="382">382</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="383">383</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $fmt = $self->get_format(); </td> </tr> <tr> <td class="h" > <a name="384">384</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#384-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (!defined $fmt) { </td> </tr> <tr> <td class="h" > <a name="385">385</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> carp ($self->as_string().": no format defined"); </td> </tr> <tr> <td class="h" > <a name="386">386</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return ""; </td> </tr> <tr> <td class="h" > <a name="387">387</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="388">388</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="389">389</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # ensure if we parse any metadata, it's loaded as "this.foo" </td> </tr> <tr> <td class="h" > <a name="390">390</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # as well as "name.foo" </td> </tr> <tr> <td class="h" > <a name="391">391</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{set_thisdot_metadata_items} = 1; </td> </tr> <tr> <td class="h" > <a name="392">392</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="393">393</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->load_text_if_needed(); </td> </tr> <tr> <td class="h" > <a name="394">394</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="395">395</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # we cache format changes, unless (a) the content object is </td> </tr> <tr> <td class="h" > <a name="396">396</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # strictly dynamic, such as navlinks or breadcrumbs or a sitemap; </td> </tr> <tr> <td class="h" > <a name="397">397</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # (b) the formats are the same (obviously!), or (c) the length </td> </tr> <tr> <td class="h" > <a name="398">398</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # of the text to reformat is smaller than a predefined minimum </td> </tr> <tr> <td class="h" > <a name="399">399</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # cacheable length (currently $MIN_FMT_CACHE_LEN). </td> </tr> <tr> <td class="h" > <a name="400">400</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # </td> </tr> <tr> <td class="h" > <a name="401">401</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $ignore_reformat_cache = 0; </td> </tr> <tr> <td class="h" > <a name="402">402</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $txt; </td> </tr> <tr> <td class="h" > <a name="403">403</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="404">404</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#404-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ($self->{is_navlinks}) { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#-2"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#-3"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="405">405</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $txt = $self->get_navlinks_text(); </td> </tr> <tr> <td class="h" > <a name="406">406</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $ignore_reformat_cache = 1; </td> </tr> <tr> <td class="h" > <a name="407">407</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="408">408</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif ($self->{is_breadcrumbs}) { </td> </tr> <tr> <td class="h" > <a name="409">409</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $txt = $self->get_breadcrumbs_text(); </td> </tr> <tr> <td class="h" > <a name="410">410</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $ignore_reformat_cache = 1; </td> </tr> <tr> <td class="h" > <a name="411">411</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="412">412</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif ($self->{keep_as_is}) { </td> </tr> <tr> <td class="h" > <a name="413">413</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $txt = $self->get_as_is_text(); </td> </tr> <tr> <td class="h" > <a name="414">414</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="415">415</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="416">416</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $txt = $self->get_normal_content_text(); </td> </tr> <tr> <td class="h" > <a name="417">417</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="418">418</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="419">419</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#419-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (!defined $txt) { die "oops! undefined text for $self->{name}"; } </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="420">420</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="421">421</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#421-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (defined $self->{preproc}) { </td> </tr> <tr> <td class="h" > <a name="422">422</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $txt = $main->_p_interpret ('perl', $self->{preproc}, $txt); </td> </tr> <tr> <td class="h" > <a name="423">423</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#423-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (!defined $txt) { </td> </tr> <tr> <td class="h" > <a name="424">424</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> warn "preproc for \${$self->{name}} failed\n"; </td> </tr> <tr> <td class="h" > <a name="425">425</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $txt = ''; </td> </tr> <tr> <td class="h" > <a name="426">426</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="427">427</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="428">428</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="429">429</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#429-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (!$ignore_reformat_cache) { </td> </tr> <tr> <td class="h" > <a name="430">430</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#430-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ($self->{is_sitemap}) { $ignore_reformat_cache = 1; } </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="431">431</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#431-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ($main->{force_output}) { $ignore_reformat_cache = 1; } </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#-2"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="432">432</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> elsif (length ($txt) < $MIN_FMT_CACHE_LEN) { $ignore_reformat_cache = 1; } </td> </tr> <tr> <td class="h" > <a name="433">433</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="434">434</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="435">435</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # preformat user tags </td> </tr> <tr> <td class="h" > <a name="436">436</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $main->getusertags()->subst_preformat_tags ($self->{name}, \$txt); </td> </tr> <tr> <td class="h" > <a name="437">437</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="438">438</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # reformat before substs; this way we can cache the reformat </td> </tr> <tr> <td class="h" > <a name="439">439</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # results for next time. </td> </tr> <tr> <td class="h" > <a name="440">440</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#440-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ($fmt ne $format) { </td> </tr> <tr> <td class="h" > <a name="441">441</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # strip metadata before conversion </td> </tr> <tr> <td class="h" > <a name="442">442</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $main->strip_metadata ($self->{name}, \$txt); </td> </tr> <tr> <td class="h" > <a name="443">443</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="444">444</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $txt = $main->{format_conv}->convert </td> </tr> <tr> <td class="h" > <a name="445">445</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ($self, $fmt, $format, $txt, $ignore_reformat_cache); </td> </tr> <tr> <td class="h" > <a name="446">446</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="447">447</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="448">448</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # subst refs and perl code </td> </tr> <tr> <td class="h" > <a name="449">449</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $main->subst ($self->{name}, \$txt, 1); </td> </tr> <tr> <td class="h" > <a name="450">450</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="451">451</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # always remove leading & trailing whitespace from HTML or XML </td> </tr> <tr> <td class="h" > <a name="452">452</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # content. </td> </tr> <tr> <td class="h" > <a name="453">453</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#453-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--condition.html#453-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ($format eq 'text/html' || $format eq 'text/xml') { </td> </tr> <tr> <td class="h" > <a name="454">454</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $txt =~ s/^\s+//s;$txt =~ s/\s+$//s; </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="455">455</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="456">456</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="457">457</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $txt; </td> </tr> <tr> <td class="h" > <a name="458">458</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="459">459</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="460">460</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # ------------------------------------------------------------------------- </td> </tr> <tr> <td class="h" > <a name="461">461</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="462">462</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub get_navlinks_text { </td> </tr> <tr> <td class="h" > <a name="463">463</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#463-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#463-1"> 0 </a> </td> <td >   </td> <td class="s"> my ($self) = @_; </td> </tr> <tr> <td class="h" > <a name="464">464</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="465">465</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->set_navlinks_vars (); </td> </tr> <tr> <td class="h" > <a name="466">466</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $self->{text}; </td> </tr> <tr> <td class="h" > <a name="467">467</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="468">468</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="469">469</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # ------------------------------------------------------------------------- </td> </tr> <tr> <td class="h" > <a name="470">470</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="471">471</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub get_as_is_text { </td> </tr> <tr> <td class="h" > <a name="472">472</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#472-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#472-1"> 0 </a> </td> <td >   </td> <td class="s"> my ($self) = @_; </td> </tr> <tr> <td class="h" > <a name="473">473</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="474">474</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#474-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (!$self->{no_map}) { </td> </tr> <tr> <td class="h" > <a name="475">475</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->add_navigation_metadata(); </td> </tr> <tr> <td class="h" > <a name="476">476</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->add_extra_metas ($self->{name}); </td> </tr> <tr> <td class="h" > <a name="477">477</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->infer_implicit_metas(); </td> </tr> <tr> <td class="h" > <a name="478">478</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="479">479</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # if this content item is mapped, set a var called "__MainContentName" </td> </tr> <tr> <td class="h" > <a name="480">480</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # so it'll be used as the "main" content item for the current page </td> </tr> <tr> <td class="h" > <a name="481">481</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # while drawing the breadcrumb trail. </td> </tr> <tr> <td class="h" > <a name="482">482</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{main}->set_transient_content ("__MainContentName", $self->{name}); </td> </tr> <tr> <td class="h" > <a name="483">483</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="484">484</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="485">485</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->touch_last_used(); </td> </tr> <tr> <td class="h" > <a name="486">486</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $self->{text}; </td> </tr> <tr> <td class="h" > <a name="487">487</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="488">488</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="489">489</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # ------------------------------------------------------------------------- </td> </tr> <tr> <td class="h" > <a name="490">490</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="491">491</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub get_normal_content_text { </td> </tr> <tr> <td class="h" > <a name="492">492</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#492-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#492-1"> 0 </a> </td> <td >   </td> <td class="s"> my ($self) = @_; </td> </tr> <tr> <td class="h" > <a name="493">493</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="494">494</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#494-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (!$self->{no_map}) { </td> </tr> <tr> <td class="h" > <a name="495">495</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->add_navigation_metadata(); </td> </tr> <tr> <td class="h" > <a name="496">496</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="497">497</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $name = $self->{name}; </td> </tr> <tr> <td class="h" > <a name="498">498</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> dbg ("parsing metadata in \"$name\""); </td> </tr> <tr> <td class="h" > <a name="499">499</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->parse_metadata_tags ($name, $self->{text}); </td> </tr> <tr> <td class="h" > <a name="500">500</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="501">501</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->add_extra_metas ($name); </td> </tr> <tr> <td class="h" > <a name="502">502</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->infer_implicit_metas(); </td> </tr> <tr> <td class="h" > <a name="503">503</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="504">504</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # if this content item is mapped, set a var called "__MainContentName" </td> </tr> <tr> <td class="h" > <a name="505">505</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # so it'll be used as the "main" content item for the current page </td> </tr> <tr> <td class="h" > <a name="506">506</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # while drawing the breadcrumb trail. </td> </tr> <tr> <td class="h" > <a name="507">507</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{main}->set_transient_content ("__MainContentName", $name); </td> </tr> <tr> <td class="h" > <a name="508">508</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="509">509</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="510">510</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->touch_last_used(); </td> </tr> <tr> <td class="h" > <a name="511">511</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $self->{text}; </td> </tr> <tr> <td class="h" > <a name="512">512</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="513">513</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="514">514</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # ------------------------------------------------------------------------- </td> </tr> <tr> <td class="h" > <a name="515">515</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="516">516</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub load_text_if_needed { </td> </tr> <tr> <td class="h" > <a name="517">517</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#517-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#517-1"> 0 </a> </td> <td >   </td> <td class="s"> my ($self) = @_; </td> </tr> <tr> <td class="h" > <a name="518">518</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="519">519</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#519-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (defined $self->{text}) { return; } </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="520">520</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#520-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (!defined $self->{location}) { return; } </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="521">521</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#521-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (!defined $self->{datasource}) { return; } </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="522">522</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="523">523</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # deferred loading of content text. </td> </tr> <tr> <td class="h" > <a name="524">524</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->touch_last_used(); </td> </tr> <tr> <td class="h" > <a name="525">525</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{text} = $self->{datasource}->get_location ($self->get_filename()); </td> </tr> <tr> <td class="h" > <a name="526">526</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="527">527</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="528">528</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub unload_text { </td> </tr> <tr> <td class="h" > <a name="529">529</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#529-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#529-1"> 0 </a> </td> <td >   </td> <td class="s"> my ($self) = @_; </td> </tr> <tr> <td class="h" > <a name="530">530</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="531">531</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#531-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (defined $self->{datasource}) { </td> </tr> <tr> <td class="h" > <a name="532">532</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> dbg ($self->as_string().": unloading cached text, ". </td> </tr> <tr> <td class="h" > <a name="533">533</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> "last used: ".$self->{last_used}); </td> </tr> <tr> <td class="h" > <a name="534">534</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> delete $self->{text}; </td> </tr> <tr> <td class="h" > <a name="535">535</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="536">536</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="537">537</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="538">538</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub is_from_datasource { </td> </tr> <tr> <td class="h" > <a name="539">539</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#539-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#539-1"> 0 </a> </td> <td >   </td> <td class="s"> my ($self) = @_; </td> </tr> <tr> <td class="h" > <a name="540">540</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#540-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (!defined $self->{datasource}) { return 0; } </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="541">541</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 1; </td> </tr> <tr> <td class="h" > <a name="542">542</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="543">543</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="544">544</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub touch_last_used { </td> </tr> <tr> <td class="h" > <a name="545">545</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#545-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#545-1"> 0 </a> </td> <td >   </td> <td class="s"> my ($self) = @_; </td> </tr> <tr> <td class="h" > <a name="546">546</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="547">547</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#547-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (defined $self->{datasource}) { </td> </tr> <tr> <td class="h" > <a name="548">548</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{last_used} = $self->{main}->{current_tick}; </td> </tr> <tr> <td class="h" > <a name="549">549</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> dbg2 ("updating last used on ".$self->as_string().": ".$self->{last_used}); </td> </tr> <tr> <td class="h" > <a name="550">550</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="551">551</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="552">552</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="553">553</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # ------------------------------------------------------------------------- </td> </tr> <tr> <td class="h" > <a name="554">554</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="555">555</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub add_ref_from_url { </td> </tr> <tr> <td class="h" > <a name="556">556</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#556-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#556-1"> 0 </a> </td> <td >   </td> <td class="s"> my ($self, $filename) = @_; </td> </tr> <tr> <td class="h" > <a name="557">557</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="558">558</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#558-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return if ($filename =~ /^\(/); # (eval), (dep_ignore) etc. </td> </tr> <tr> <td class="h" > <a name="559">559</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="560">560</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#560-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--condition.html#560-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (!$self->{no_map} && !defined $self->{reffed_in_url}) { </td> </tr> <tr> <td class="h" > <a name="561">561</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> dbg2 ($self->as_string().": add ref from url $filename"); </td> </tr> <tr> <td class="h" > <a name="562">562</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{reffed_in_url} = $filename; </td> </tr> <tr> <td class="h" > <a name="563">563</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{main}->getcache()->put_metadata ($self->{name}.".url", $filename); </td> </tr> <tr> <td class="h" > <a name="564">564</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="565">565</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="566">566</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="567">567</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub get_url { </td> </tr> <tr> <td class="h" > <a name="568">568</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#568-1"> 0 </a> </td> <td class="c3" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#568-1"> 1 </a> </td> <td >   </td> <td class="s"> my ($self) = @_; </td> </tr> <tr> <td class="h" > <a name="569">569</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="570">570</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#570-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ($self->{no_map}) { </td> </tr> <tr> <td class="h" > <a name="571">571</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> warn "cannot get URLs for unmapped content \${$self->{name}}\n"; </td> </tr> <tr> <td class="h" > <a name="572">572</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return ''; </td> </tr> <tr> <td class="h" > <a name="573">573</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="574">574</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="575">575</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $url = $self->{reffed_in_url}; </td> </tr> <tr> <td class="h" > <a name="576">576</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#576-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (defined $url) { return $url; } </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="577">577</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> </td> </tr> <tr> <td class="h" > <a name="578">578</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $url = $self->{main}->getcache()->get_metadata ($self->{name}.".url"); </td> </tr> <tr> <td class="h" > <a name="579">579</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> </td> </tr> <tr> <td class="h" > <a name="580">580</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#580-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (defined $url) { </td> </tr> <tr> <td class="h" > <a name="581">581</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{reffed_in_url} = $url; </td> </tr> <tr> <td class="h" > <a name="582">582</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $url; </td> </tr> <tr> <td class="h" > <a name="583">583</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="584">584</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> </td> </tr> <tr> <td class="h" > <a name="585">585</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> defer: </td> </tr> <tr> <td class="h" > <a name="586">586</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $url = $self->{main}->make_deferred_url ($self->{name}); </td> </tr> <tr> <td class="h" > <a name="587">587</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $url; </td> </tr> <tr> <td class="h" > <a name="588">588</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="589">589</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="590">590</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # ------------------------------------------------------------------------- </td> </tr> <tr> <td class="h" > <a name="591">591</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="592">592</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub add_navigation_metadata { </td> </tr> <tr> <td class="h" > <a name="593">593</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#593-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#593-1"> 0 </a> </td> <td >   </td> <td class="s"> my ($self) = @_; </td> </tr> <tr> <td class="h" > <a name="594">594</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="595">595</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#595-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--condition.html#595-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return if ($self->{no_map} || $self->is_generated_content()); </td> </tr> <tr> <td class="h" > <a name="596">596</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#596-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return if ($self->{added_nav_metas_flag}); </td> </tr> <tr> <td class="h" > <a name="597">597</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{added_nav_metas_flag} = 1; </td> </tr> <tr> <td class="h" > <a name="598">598</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="599">599</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->create_extra_metas_if_needed(); </td> </tr> <tr> <td class="h" > <a name="600">600</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#600-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (defined ($self->{up_content})) { </td> </tr> <tr> <td class="h" > <a name="601">601</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{extra_metas}->{'nav_up'} = $self->{up_content}->get_name(); </td> </tr> <tr> <td class="h" > <a name="602">602</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="603">603</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#603-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (defined ($self->{next_content})) { </td> </tr> <tr> <td class="h" > <a name="604">604</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{extra_metas}->{'nav_next'} = $self->{next_content}->get_name(); </td> </tr> <tr> <td class="h" > <a name="605">605</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="606">606</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#606-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (defined ($self->{prev_content})) { </td> </tr> <tr> <td class="h" > <a name="607">607</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{extra_metas}->{'nav_prev'} = $self->{prev_content}->get_name(); </td> </tr> <tr> <td class="h" > <a name="608">608</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="609">609</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="610">610</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="611">611</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub invalidate_cached_nav_metadata { </td> </tr> <tr> <td class="h" > <a name="612">612</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#612-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#612-1"> 0 </a> </td> <td >   </td> <td class="s"> my ($self) = @_; </td> </tr> <tr> <td class="h" > <a name="613">613</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{added_nav_metas_flag} = 0; </td> </tr> <tr> <td class="h" > <a name="614">614</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="615">615</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="616">616</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # ------------------------------------------------------------------------- </td> </tr> <tr> <td class="h" > <a name="617">617</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="618">618</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub set_navlinks_vars { </td> </tr> <tr> <td class="h" > <a name="619">619</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#619-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#619-1"> 0 </a> </td> <td >   </td> <td class="s"> my ($self) = @_; </td> </tr> <tr> <td class="h" > <a name="620">620</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="621">621</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> foreach my $dir (qw{up prev next}) { </td> </tr> <tr> <td class="h" > <a name="622">622</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $contname = $self->{main}->curly_meta_subst </td> </tr> <tr> <td class="h" > <a name="623">623</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ($HTML::WebMake::Main::SUBST_EVAL, "this.nav_".$dir."?"); </td> </tr> <tr> <td class="h" > <a name="624">624</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my ($obj, $url); </td> </tr> <tr> <td class="h" > <a name="625">625</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="626">626</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#626-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ($contname ne '') { </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#-2"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="627">627</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $obj = $self->{main}->get_content_obj ($contname); </td> </tr> <tr> <td class="h" > <a name="628">628</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="629">629</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # if we haven't got the URL for that content object in our </td> </tr> <tr> <td class="h" > <a name="630">630</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # cache, and it hasn't been evaluated, use a symbolic one </td> </tr> <tr> <td class="h" > <a name="631">631</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # which the make() mechanism will fix later. </td> </tr> <tr> <td class="h" > <a name="632">632</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#632-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--condition.html#632-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (!defined $obj || !defined ($url = $obj->get_url()) || $url eq '') </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--condition.html#-2"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="633">633</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="634">634</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $url = $self->{main}->make_deferred_url ($contname); </td> </tr> <tr> <td class="h" > <a name="635">635</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="636">636</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="637">637</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # relativise it. </td> </tr> <tr> <td class="h" > <a name="638">638</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $url = '$(TOP/)'.$url; </td> </tr> <tr> <td class="h" > <a name="639">639</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="640">640</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#640-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (!defined $self->{'nav_'.$dir}) { </td> </tr> <tr> <td class="h" > <a name="641">641</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> warn $self->as_string().": no name defined for '".$dir."'\n"; </td> </tr> <tr> <td class="h" > <a name="642">642</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> next; </td> </tr> <tr> <td class="h" > <a name="643">643</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="644">644</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="645">645</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{main}->set_transient_content ("url", $url); </td> </tr> <tr> <td class="h" > <a name="646">646</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{main}->set_transient_content ("name", $contname); </td> </tr> <tr> <td class="h" > <a name="647">647</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{main}->set_transient_content ($dir."text", </td> </tr> <tr> <td class="h" > <a name="648">648</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->navlinks_subst ($self->{'nav_'.$dir})); </td> </tr> <tr> <td class="h" > <a name="649">649</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="650">650</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } elsif (defined $self->{'no_nav_'.$dir}) { # optional attribute </td> </tr> <tr> <td class="h" > <a name="651">651</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{main}->set_transient_content ($dir."text", </td> </tr> <tr> <td class="h" > <a name="652">652</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->navlinks_subst ($self->{'no_nav_'.$dir})); </td> </tr> <tr> <td class="h" > <a name="653">653</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="654">654</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="655">655</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{main}->set_transient_content ($dir."text", ''); </td> </tr> <tr> <td class="h" > <a name="656">656</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="657">657</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="658">658</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="659">659</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{main}->del_content ("name"); </td> </tr> <tr> <td class="h" > <a name="660">660</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{main}->del_content ("url"); </td> </tr> <tr> <td class="h" > <a name="661">661</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="662">662</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="663">663</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub navlinks_subst { </td> </tr> <tr> <td class="h" > <a name="664">664</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#664-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#664-1"> 0 </a> </td> <td >   </td> <td class="s"> my ($self, $var) = @_; </td> </tr> <tr> <td class="h" > <a name="665">665</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{main}->curly_subst ($HTML::WebMake::Main::SUBST_EVAL, $var); </td> </tr> <tr> <td class="h" > <a name="666">666</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="667">667</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="668">668</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # ------------------------------------------------------------------------- </td> </tr> <tr> <td class="h" > <a name="669">669</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="670">670</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub get_breadcrumbs_text { </td> </tr> <tr> <td class="h" > <a name="671">671</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#671-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#671-1"> 0 </a> </td> <td >   </td> <td class="s"> my ($self) = @_; </td> </tr> <tr> <td class="h" > <a name="672">672</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="673">673</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $root = $self->{main}->getmapper()->get_root(); </td> </tr> <tr> <td class="h" > <a name="674">674</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#674-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (!defined $root) { </td> </tr> <tr> <td class="h" > <a name="675">675</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> warn ($self->as_string().": need a root content for <breadcrumbs>!\n"); </td> </tr> <tr> <td class="h" > <a name="676">676</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return ""; </td> </tr> <tr> <td class="h" > <a name="677">677</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="678">678</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="679">679</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # to illustrate this, let's consider this chain of contents: </td> </tr> <tr> <td class="h" > <a name="680">680</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # TOPPAGE -> CONTENTS -> STORY -> TAILPAGE. </td> </tr> <tr> <td class="h" > <a name="681">681</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # $self is TAILPAGE at this point. </td> </tr> <tr> <td class="h" > <a name="682">682</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="683">683</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my @uplist = (); </td> </tr> <tr> <td class="h" > <a name="684">684</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $contname = $self->{main}->curly_subst ($HTML::WebMake::Main::SUBST_EVAL, "__MainContentName"); </td> </tr> <tr> <td class="h" > <a name="685">685</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#685-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (!defined $contname) { </td> </tr> <tr> <td class="h" > <a name="686">686</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> dbg ($self->as_string().": no mapped content on page"); </td> </tr> <tr> <td class="h" > <a name="687">687</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return ""; </td> </tr> <tr> <td class="h" > <a name="688">688</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="689">689</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $obj = $self->{main}->{contents}->{$contname}; </td> </tr> <tr> <td class="h" > <a name="690">690</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#690-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (!defined $obj) { </td> </tr> <tr> <td class="h" > <a name="691">691</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> dbg ($self->as_string().": cannot find mapped content \${$contname}"); </td> </tr> <tr> <td class="h" > <a name="692">692</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return ""; </td> </tr> <tr> <td class="h" > <a name="693">693</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="694">694</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="695">695</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> while (1) { </td> </tr> <tr> <td class="h" > <a name="696">696</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#696-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> push (@uplist, $obj); last if ($obj == $root); </td> </tr> <tr> <td class="h" > <a > </a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="697">697</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $upobj = $obj->get_up_content(); </td> </tr> <tr> <td class="h" > <a name="698">698</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#698-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> last unless defined $upobj; </td> </tr> <tr> <td class="h" > <a name="699">699</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#699-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> last if ($upobj == $obj); </td> </tr> <tr> <td class="h" > <a name="700">700</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $obj = $upobj; </td> </tr> <tr> <td class="h" > <a name="701">701</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="702">702</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # @uplist = (TAILPAGE, STORY, CONTENTS, TOPPAGE) </td> </tr> <tr> <td class="h" > <a name="703">703</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="704">704</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> @uplist = reverse @uplist; </td> </tr> <tr> <td class="h" > <a name="705">705</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # @uplist = (TOPPAGE, STORY, CONTENTS, TAILPAGE) </td> </tr> <tr> <td class="h" > <a name="706">706</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="707">707</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $top = shift @uplist; </td> </tr> <tr> <td class="h" > <a name="708">708</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # @uplist = (STORY, CONTENTS, TAILPAGE) </td> </tr> <tr> <td class="h" > <a name="709">709</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="710">710</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $tail = pop @uplist; </td> </tr> <tr> <td class="h" > <a name="711">711</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # @uplist = (STORY, CONTENTS) </td> </tr> <tr> <td class="h" > <a name="712">712</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="713">713</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $text = ''; </td> </tr> <tr> <td class="h" > <a name="714">714</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#714-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--condition.html#714-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (defined $top && defined $self->{breadcrumb_top_name}) { </td> </tr> <tr> <td class="h" > <a name="715">715</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $text .= $self->cook_a_breadcrumb ($top, $self->{breadcrumb_top_name}); </td> </tr> <tr> <td class="h" > <a name="716">716</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="717">717</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> foreach $obj (@uplist) { </td> </tr> <tr> <td class="h" > <a name="718">718</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $text .= $self->cook_a_breadcrumb ($obj, $self->{breadcrumb_level_name}); </td> </tr> <tr> <td class="h" > <a name="719">719</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="720">720</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#720-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--condition.html#720-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (defined $tail && defined $self->{breadcrumb_tail_name}) { </td> </tr> <tr> <td class="h" > <a name="721">721</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $text .= $self->cook_a_breadcrumb ($tail, $self->{breadcrumb_tail_name}); </td> </tr> <tr> <td class="h" > <a name="722">722</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="723">723</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="724">724</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{main}->del_content ("name"); </td> </tr> <tr> <td class="h" > <a name="725">725</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{main}->del_content ("url"); </td> </tr> <tr> <td class="h" > <a name="726">726</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $text; </td> </tr> <tr> <td class="h" > <a name="727">727</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="728">728</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="729">729</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub cook_a_breadcrumb { </td> </tr> <tr> <td class="h" > <a name="730">730</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#730-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#730-1"> 0 </a> </td> <td >   </td> <td class="s"> my ($self, $obj, $linktmpl) = @_; </td> </tr> <tr> <td class="h" > <a name="731">731</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="732">732</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # if we haven't got the URL for that content object in our </td> </tr> <tr> <td class="h" > <a name="733">733</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # cache, and it hasn't been evaluated, use a symbolic one </td> </tr> <tr> <td class="h" > <a name="734">734</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # which the make() mechanism will fix later. </td> </tr> <tr> <td class="h" > <a name="735">735</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $url; </td> </tr> <tr> <td class="h" > <a name="736">736</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> my $dotdots = $self->{main}->{current_subst}->{dotdots}; </td> </tr> <tr> <td class="h" > <a name="737">737</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#737-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--condition.html#737-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if (!defined $dotdots </td> </tr> <tr> <td class="h" > <a > </a> </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--condition.html#-2"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="738">738</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> || !defined ($url = $obj->get_url()) </td> </tr> <tr> <td class="h" > <a name="739">739</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> || $url eq '') </td> </tr> <tr> <td class="h" > <a name="740">740</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> { </td> </tr> <tr> <td class="h" > <a name="741">741</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $url = $self->{main}->make_deferred_url ($obj->{name}); </td> </tr> <tr> <td class="h" > <a name="742">742</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="743">743</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $url = $dotdots.$url; </td> </tr> <tr> <td class="h" > <a name="744">744</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="745">745</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="746">746</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{main}->set_transient_content ("url", $url); </td> </tr> <tr> <td class="h" > <a name="747">747</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->{main}->set_transient_content ("name", $obj->{name}); </td> </tr> <tr> <td class="h" > <a name="748">748</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> return $self->{main}->curly_subst ($HTML::WebMake::Main::SUBST_EVAL, $linktmpl); </td> </tr> <tr> <td class="h" > <a name="749">749</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="750">750</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="751">751</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # ------------------------------------------------------------------------- </td> </tr> <tr> <td class="h" > <a name="752">752</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="753">753</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> sub is_only_usable_from_deferred_refs { </td> </tr> <tr> <td class="h" > <a name="754">754</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#754-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--subroutine.html#754-1"> 0 </a> </td> <td >   </td> <td class="s"> my ($self) = @_; </td> </tr> <tr> <td class="h" > <a name="755">755</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="756">756</a> </td> <td class="c0" > 0 </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--branch.html#756-1"> 0 </a> </td> <td class="c0" > <a href="blib-lib-HTML-WebMake-NormalContent-pm--condition.html#756-1"> 0 </a> </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> if ($self->{is_breadcrumbs} || $self->{is_navlinks}) { </td> </tr> <tr> <td class="h" > <a name="757">757</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 1; </td> </tr> <tr> <td class="h" > <a name="758">758</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } else { </td> </tr> <tr> <td class="h" > <a name="759">759</a> </td> <td class="c0" > 0 </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 0; </td> </tr> <tr> <td class="h" > <a name="760">760</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="761">761</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> } </td> </tr> <tr> <td class="h" > <a name="762">762</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="763">763</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> # ------------------------------------------------------------------------- </td> </tr> <tr> <td class="h" > <a name="764">764</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s">   </td> </tr> <tr> <td class="h" > <a name="765">765</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> 1; </td> </tr> </table> </body> </html>