summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-11-26 19:43:24 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-11-26 19:43:24 +0000
commit3a31030550d302fdafa6407e9d24e300031d9787 (patch)
treeaa34f9985a5f1690d2ea8ad85b8a0f3913c1c617
parentf8cbf79735bc4588ba6fde12f3855a51efeb7ae8 (diff)
add quick mode for speeding up generation of big archive pages
-rw-r--r--IkiWiki/Plugin/inline.pm24
-rw-r--r--doc/plugins/inline.mdwn2
2 files changed, 14 insertions, 12 deletions
diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm
index 937bd281d..890cdb446 100644
--- a/IkiWiki/Plugin/inline.pm
+++ b/IkiWiki/Plugin/inline.pm
@@ -42,7 +42,8 @@ sub preprocess_inline (@) { #{{{
my $archive=yesno($params{archive});
my $rss=($config{rss} && exists $params{rss}) ? yesno($params{rss}) : $config{rss};
my $atom=($config{atom} && exists $params{atom}) ? yesno($params{atom}) : $config{atom};
- my $feeds=exists $params{feeds} ? yesno($params{feeds}) : 1;
+ my $quick=exists $params{quick} ? yesno($params{quick}) : 0;
+ my $feeds=exists $params{feeds} ? yesno($params{feeds}) : !$quick;
if (! exists $params{show} && ! $archive) {
$params{show}=10;
}
@@ -112,22 +113,21 @@ sub preprocess_inline (@) { #{{{
my $file = $pagesources{$page};
my $type = pagetype($file);
if (! $raw || ($raw && ! defined $type)) {
- # Get the content before populating the template,
- # since getting the content uses the same template
- # if inlines are nested.
- # TODO: if $archive=1, the only reason to do this
- # is to let the meta plugin get page title info; so stop
- # calling this next line then once the meta plugin can
- # store that accross runs (also tags plugin).
- my $content=get_inline_content($page, $params{destpage});
- # Don't use htmllink because this way the title is separate
- # and can be overridden by other plugins.
+ if (! $archive && $quick) {
+ # Get the content before populating the
+ # template, since getting the content uses
+ # the same template if inlines are nested.
+ my $content=get_inline_content($page, $params{destpage});
+ $template->param(content => $content);
+ }
+ # Don't use htmllink because this way the
+ # title is separate and can be overridden by
+ # other plugins.
my $link=bestlink($params{page}, $page);
$link=htmlpage($link) if defined $type;
$link=abs2rel($link, dirname($params{destpage}));
$template->param(pageurl => $link);
$template->param(title => pagetitle(basename($page)));
- $template->param(content => $content);
$template->param(ctime => displaytime($pagectime{$page}));
if ($actions) {
diff --git a/doc/plugins/inline.mdwn b/doc/plugins/inline.mdwn
index 3c3d46d26..cfea8006e 100644
--- a/doc/plugins/inline.mdwn
+++ b/doc/plugins/inline.mdwn
@@ -29,6 +29,8 @@ directive:
* `rootpage` - Enables a form to post new pages to a [[blog]].
* `archive` - If set to "yes", only list page titles and some metadata, not
full controls.
+* `quick` - Build archives in quick mode, without reading page contents for
+ metadata. By default, this also turns off generation of any feeds.
* `raw` - Rather than the default behavior of creating a [[blog]],
if raw is set to "yes", the page will be included raw, without additional
markup around it, as if it were a literal part of the source of the