diff options
-rw-r--r-- | IkiWiki.pm | 1 | ||||
-rw-r--r-- | IkiWiki/Render.pm | 11 | ||||
-rw-r--r-- | debian/changelog | 4 | ||||
-rw-r--r-- | doc/style.css | 9 | ||||
-rw-r--r-- | doc/usage.mdwn | 5 | ||||
-rwxr-xr-x | ikiwiki.in | 1 | ||||
-rw-r--r-- | po/ikiwiki.pot | 32 | ||||
-rw-r--r-- | templates/page.tmpl | 9 |
8 files changed, 50 insertions, 22 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm index a290b479a..558b457f1 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -72,6 +72,7 @@ sub defaultconfig () { #{{{ sslcookie => 0, httpauth => 0, userdir => "", + numbacklinks => 10, } #}}} sub checkconfig () { #{{{ diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index c5d885810..7fd7daf11 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -30,7 +30,6 @@ sub backlinks ($) { #{{{ calculate_backlinks(); my @links; - return unless $backlinks{$page}; foreach my $p (keys %{$backlinks{$page}}) { my $href=abs2rel(htmlpage($p), dirname($page)); @@ -45,8 +44,11 @@ sub backlinks ($) { #{{{ push @links, { url => $href, page => pagetitle($p_trimmed) }; } + @links = sort { $a->{page} cmp $b->{page} } @links; - return sort { $a->{page} cmp $b->{page} } @links; + return \@links, [] if @links <= $config{numbacklinks}; + return [@links[0..$config{numbacklinks}-1]], + [@links[$config{numbacklinks}..$#links]]; } #}}} sub parentlinks ($) { #{{{ @@ -107,6 +109,8 @@ sub genpage ($$$) { #{{{ $template->param(have_actions => 1); } + my ($backlinks, $more_backlinks)=backlinks($page); + $template->param( title => $page eq 'index' ? $config{wikiname} @@ -114,7 +118,8 @@ sub genpage ($$$) { #{{{ wikiname => $config{wikiname}, parentlinks => [parentlinks($page)], content => $content, - backlinks => [backlinks($page)], + backlinks => $backlinks, + more_backlinks => $more_backlinks, mtime => displaytime($mtime), baseurl => baseurl($page), ); diff --git a/debian/changelog b/debian/changelog index fb310dd5e..ddec8475d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -11,8 +11,10 @@ ikiwiki (1.49) UNRELEASED; urgency=low * Add a popup template in the basewiki. CSS based on some by Martin Krafft. * Make the note, popup, and plugin templates detect missing variables and be self-documenting, listing the available variables. + * Hide excess backlinks and expand using CSS trick; control quantiy via + the numbacklinks setting. - -- Joey Hess <joeyh@debian.org> Sat, 31 Mar 2007 02:23:46 -0400 + -- Joey Hess <joeyh@debian.org> Sat, 31 Mar 2007 04:27:08 -0400 ikiwiki (1.48) unstable; urgency=low diff --git a/doc/style.css b/doc/style.css index af460dd0d..0a37e55aa 100644 --- a/doc/style.css +++ b/doc/style.css @@ -239,13 +239,14 @@ input#openid_url { width: 25% } -/* Used by the popup template. */ +/* Used by the popup template and for backlinks hiding. */ .popup { border-bottom: 1px dotted #366; color: #366; } .popup .balloon, -.popup .paren { +.popup .paren, +.popup .expand { display: none; } .popup:hover .balloon, @@ -261,3 +262,7 @@ input#openid_url { -moz-opacity: 0.95; filter: alpha(opacity=95); } +.popup:hover .expand, +.popup:focus .expand { + display: inline; +} diff --git a/doc/usage.mdwn b/doc/usage.mdwn index bb6f06aea..4ccd6bf44 100644 --- a/doc/usage.mdwn +++ b/doc/usage.mdwn @@ -233,6 +233,11 @@ configuration options of their own. Enables or disables "Discussion" links from being added to the header of every page. The links are enabled by default. +* --numbacklinks n + + Controls how many backlinks should be displayed maximum. Excess backlinks + will be hidden in a popup. Default is 10. + * --userdir subdir Optionally, allows links to users of the wiki to link to pages inside a diff --git a/ikiwiki.in b/ikiwiki.in index 8c46d5e9f..b8589bc62 100755 --- a/ikiwiki.in +++ b/ikiwiki.in @@ -30,6 +30,7 @@ sub getconfig () { #{{{ "wrappers!" => \$config{wrappers}, "getctime" => \$config{getctime}, "wrappermode=i" => \$config{wrappermode}, + "numbacklinks=i" => \$config{numbacklinks}, "rcs=s" => \$config{rcs}, "no-rcs" => sub { $config{rcs}="" }, "cgi!" => \$config{cgi}, diff --git a/po/ikiwiki.pot b/po/ikiwiki.pot index 43f869441..9ce8b04a9 100644 --- a/po/ikiwiki.pot +++ b/po/ikiwiki.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-03-31 02:06-0400\n" +"POT-Creation-Date: 2007-03-31 04:39-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -31,8 +31,8 @@ msgstr "" #: ../IkiWiki/CGI.pm:418 ../IkiWiki/Plugin/brokenlinks.pm:24 #: ../IkiWiki/Plugin/inline.pm:181 ../IkiWiki/Plugin/opendiscussion.pm:17 -#: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:97 -#: ../IkiWiki/Render.pm:165 +#: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:99 +#: ../IkiWiki/Render.pm:170 msgid "discussion" msgstr "" @@ -157,7 +157,7 @@ msgstr "" msgid "nonexistant template %s" msgstr "" -#: ../IkiWiki/Plugin/inline.pm:189 ../IkiWiki/Render.pm:101 +#: ../IkiWiki/Plugin/inline.pm:189 ../IkiWiki/Render.pm:103 msgid "Discussion" msgstr "" @@ -420,47 +420,47 @@ msgid "" "notifications" msgstr "" -#: ../IkiWiki/Render.pm:249 ../IkiWiki/Render.pm:269 +#: ../IkiWiki/Render.pm:254 ../IkiWiki/Render.pm:274 #, perl-format msgid "skipping bad filename %s" msgstr "" -#: ../IkiWiki/Render.pm:309 +#: ../IkiWiki/Render.pm:314 #, perl-format msgid "removing old page %s" msgstr "" -#: ../IkiWiki/Render.pm:329 +#: ../IkiWiki/Render.pm:334 #, perl-format msgid "scanning %s" msgstr "" -#: ../IkiWiki/Render.pm:339 +#: ../IkiWiki/Render.pm:344 #, perl-format msgid "rendering %s" msgstr "" -#: ../IkiWiki/Render.pm:351 +#: ../IkiWiki/Render.pm:356 #, perl-format msgid "rendering %s, which links to %s" msgstr "" -#: ../IkiWiki/Render.pm:368 +#: ../IkiWiki/Render.pm:373 #, perl-format msgid "rendering %s, which depends on %s" msgstr "" -#: ../IkiWiki/Render.pm:406 +#: ../IkiWiki/Render.pm:411 #, perl-format msgid "rendering %s, to update its backlinks" msgstr "" -#: ../IkiWiki/Render.pm:418 +#: ../IkiWiki/Render.pm:423 #, perl-format msgid "removing %s, no longer rendered by %s" msgstr "" -#: ../IkiWiki/Render.pm:444 +#: ../IkiWiki/Render.pm:449 #, perl-format msgid "ikiwiki: cannot render %s" msgstr "" @@ -533,11 +533,11 @@ msgstr "" msgid "usage: ikiwiki [options] source dest" msgstr "" -#: ../IkiWiki.pm:103 +#: ../IkiWiki.pm:104 msgid "Must specify url to wiki with --url when using --cgi" msgstr "" -#: ../IkiWiki.pm:150 ../IkiWiki.pm:151 +#: ../IkiWiki.pm:151 ../IkiWiki.pm:152 msgid "Error" msgstr "" @@ -545,7 +545,7 @@ msgstr "" #. translators: preprocessor directive name, #. translators: the second a page name, the #. translators: third a number. -#: ../IkiWiki.pm:573 +#: ../IkiWiki.pm:574 #, perl-format msgid "%s preprocessing loop detected on %s at depth %i" msgstr "" diff --git a/templates/page.tmpl b/templates/page.tmpl index 471ed1a7d..61d22723f 100644 --- a/templates/page.tmpl +++ b/templates/page.tmpl @@ -73,6 +73,15 @@ Links: <TMPL_LOOP NAME="BACKLINKS"> <a href="<TMPL_VAR NAME=URL>"><TMPL_VAR NAME=PAGE></a> </TMPL_LOOP> +<TMPL_IF NAME="MORE_BACKLINKS"> +<span class="popup">... +<span class="expand"> +<TMPL_LOOP NAME="MORE_BACKLINKS"> +<a href="<TMPL_VAR NAME=URL>"><TMPL_VAR NAME=PAGE></a> +</TMPL_LOOP> +</span> +</span> +</TMPL_IF> </TMPL_IF> </div> |