summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
f3abeac)
if "tag_autocreate=1" is set in the configuration. The pages will be created in
tagbase, if and only if they do not exist in the srcdir yet. Tag pages will be create from
"autotag.tmpl".
At this stage a second refresh is needed for the tag pages to be rendered.
Add autotag.tmpl template.
safe => 1,
rebuild => 1,
},
safe => 1,
rebuild => 1,
},
+ tag_autocreate => {
+ type => "boolean",
+ example => 0,
+ description => "Autocreate new tag pages",
+ safe => 1,
+ rebuild => 1,
+ },
return htmllink($page, $destpage, tagpage($tag), %opts);
}
return htmllink($page, $destpage, tagpage($tag), %opts);
}
+sub gentag ($) {
+ my $tag=shift;
+ if (defined $config{tag_autocreate} && $config{tag_autocreate}) {
+ my $tagfile = newpagefile(tagpage($tag), $config{default_pageext});
+ $tagfile=~s/^\///;
+ return if (srcfile($tagfile,1));
+
+ debug(sprintf(gettext("creating tag page %s"), $tag));
+
+ my $template=template("autotag.tmpl");
+ $template->param(tag => $tag);
+ writefile($tagfile, $config{srcdir}, $template->output);
+ }
+}
+
sub preprocess_tag (@) {
if (! @_) {
return "";
sub preprocess_tag (@) {
if (! @_) {
return "";
foreach my $tag (keys %params) {
$tag=linkpage($tag);
$tags{$page}{$tag}=1;
foreach my $tag (keys %params) {
$tag=linkpage($tag);
$tags{$page}{$tag}=1;
+
+ # add tagpage if necessary
+ gentag($tag);
+
# hidden WikiLink
add_link($page, tagpage($tag));
}
# hidden WikiLink
add_link($page, tagpage($tag));
}
--- /dev/null
+## Pagest tagged <TMPL_VAR TAG> ##
+
+[[!inline pages="tagged(<TMPL_VAR TAG>)" actions="no" archive="yes"]]