From: joey Date: Sun, 26 Nov 2006 19:43:24 +0000 (+0000) Subject: add quick mode for speeding up generation of big archive pages X-Git-Tag: 1.34~25 X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/3a31030550d302fdafa6407e9d24e300031d9787?hp=f8cbf79735bc4588ba6fde12f3855a51efeb7ae8 add quick mode for speeding up generation of big archive pages --- 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