add quick mode for speeding up generation of big archive pages

master
joey 2006-11-26 19:43:24 +00:00
parent f8cbf79735
commit 3a31030550
2 changed files with 14 additions and 12 deletions

View File

@ -42,7 +42,8 @@ sub preprocess_inline (@) { #{{{
my $archive=yesno($params{archive}); my $archive=yesno($params{archive});
my $rss=($config{rss} && exists $params{rss}) ? yesno($params{rss}) : $config{rss}; 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 $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) { if (! exists $params{show} && ! $archive) {
$params{show}=10; $params{show}=10;
} }
@ -112,22 +113,21 @@ sub preprocess_inline (@) { #{{{
my $file = $pagesources{$page}; my $file = $pagesources{$page};
my $type = pagetype($file); my $type = pagetype($file);
if (! $raw || ($raw && ! defined $type)) { if (! $raw || ($raw && ! defined $type)) {
# Get the content before populating the template, if (! $archive && $quick) {
# since getting the content uses the same template # Get the content before populating the
# if inlines are nested. # template, since getting the content uses
# TODO: if $archive=1, the only reason to do this # the same template if inlines are nested.
# 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}); my $content=get_inline_content($page, $params{destpage});
# Don't use htmllink because this way the title is separate $template->param(content => $content);
# and can be overridden by other plugins. }
# Don't use htmllink because this way the
# title is separate and can be overridden by
# other plugins.
my $link=bestlink($params{page}, $page); my $link=bestlink($params{page}, $page);
$link=htmlpage($link) if defined $type; $link=htmlpage($link) if defined $type;
$link=abs2rel($link, dirname($params{destpage})); $link=abs2rel($link, dirname($params{destpage}));
$template->param(pageurl => $link); $template->param(pageurl => $link);
$template->param(title => pagetitle(basename($page))); $template->param(title => pagetitle(basename($page)));
$template->param(content => $content);
$template->param(ctime => displaytime($pagectime{$page})); $template->param(ctime => displaytime($pagectime{$page}));
if ($actions) { if ($actions) {

View File

@ -29,6 +29,8 @@ directive:
* `rootpage` - Enables a form to post new pages to a [[blog]]. * `rootpage` - Enables a form to post new pages to a [[blog]].
* `archive` - If set to "yes", only list page titles and some metadata, not * `archive` - If set to "yes", only list page titles and some metadata, not
full controls. 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]], * `raw` - Rather than the default behavior of creating a [[blog]],
if raw is set to "yes", the page will be included raw, without additional 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 markup around it, as if it were a literal part of the source of the