]> sipb.mit.edu Git - ikiwiki.git/commitdiff
add quick mode for speeding up generation of big archive pages
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Sun, 26 Nov 2006 19:43:24 +0000 (19:43 +0000)
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Sun, 26 Nov 2006 19:43:24 +0000 (19:43 +0000)
IkiWiki/Plugin/inline.pm
doc/plugins/inline.mdwn

index 937bd281d270b0b785df482c9cc2430caa358470..890cdb44670db668b0199abb033836829b2188ed 100644 (file)
@@ -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) {
index 3c3d46d26ccca91021e4479fa7c0e7330ed7a27a..cfea8006e0262b81360b815c45d440064baf82e0 100644 (file)
@@ -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