summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IkiWiki/Plugin/map.pm13
-rw-r--r--IkiWiki/Plugin/meta.pm5
-rw-r--r--debian/changelog2
-rw-r--r--debian/copyright4
-rw-r--r--doc/plugins.mdwn2
-rw-r--r--doc/plugins/map.mdwn7
6 files changed, 26 insertions, 7 deletions
diff --git a/IkiWiki/Plugin/map.pm b/IkiWiki/Plugin/map.pm
index af08005b8..5b6a843e7 100644
--- a/IkiWiki/Plugin/map.pm
+++ b/IkiWiki/Plugin/map.pm
@@ -26,11 +26,12 @@ sub preprocess (@) { #{{{
foreach my $page (keys %pagesources) {
if (pagespec_match($page, $params{pages}, location => $params{page})) {
if (exists $params{show} &&
+ exists $pagestate{$page} &&
exists $pagestate{$page}{meta}{$params{show}}) {
$mapitems{$page}=$pagestate{$page}{meta}{$params{show}};
}
else {
- $mapitems{$page}=$page;
+ $mapitems{$page}='';
}
# Check for a common prefix.
if (! defined $common_prefix) {
@@ -58,8 +59,9 @@ sub preprocess (@) { #{{{
$common_prefix=IkiWiki::dirname($common_prefix);
}
- # Needs to update whenever a page is added or removed, so
- # register a dependency.
+ # Needs to update whenever a page is added or removed (or in some
+ # cases, when its content changes, if show=title), so register a
+ # dependency.
add_depends($params{page}, $params{pages});
# Explicitly add all currently shown pages, to detect when pages
# are removed.
@@ -71,7 +73,8 @@ sub preprocess (@) { #{{{
my $openli=0;
my $dummy=0;
my $map = "<div class='map'>\n<ul>\n";
- foreach my $item (sort { $mapitems{$a} cmp $mapitems{$b} } keys %mapitems) {
+ foreach my $item (sort keys %mapitems) {
+ my @linktext = (length $mapitems{$item} ? (linktext => $mapitems{$item}) : ());
$item=~s/^\Q$common_prefix\E\///
if defined $common_prefix && length $common_prefix;
my $depth = ($item =~ tr/\//\//) + 1;
@@ -119,7 +122,7 @@ sub preprocess (@) { #{{{
$map .= "<li>"
.htmllink($params{page}, $params{destpage},
"/".$common_prefix."/".$item,
- linktext => $mapitems{$item},
+ @linktext,
class => "mapitem", noimageinline => 1)
."\n";
$openli=1;
diff --git a/IkiWiki/Plugin/meta.pm b/IkiWiki/Plugin/meta.pm
index e2914a78a..8e1b11859 100644
--- a/IkiWiki/Plugin/meta.pm
+++ b/IkiWiki/Plugin/meta.pm
@@ -78,6 +78,11 @@ sub preprocess (@) { #{{{
# Metadata collection that needs to happen during the scan pass.
if ($key eq 'title') {
$pagestate{$page}{meta}{title}=HTML::Entities::encode_numeric($value);
+ # fallthrough
+ }
+ elsif ($key eq 'description') {
+ $pagestate{$page}{meta}{description}=HTML::Entities::encode_numeric($value);
+ # fallthrough
}
elsif ($key eq 'license') {
push @{$metaheaders{$page}}, '<link rel="license" href="#page_license" />';
diff --git a/debian/changelog b/debian/changelog
index 800a38300..e1a1d7b33 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -6,6 +6,8 @@ ikiwiki (2.51) UNRELEASED; urgency=low
titles, rather than the default page name. Based on a patch from
Jaldhar H. Vyas, Closes: #484510
* hnb: New plugin, contributed by Axel Beckert.
+ * meta: Store "description" in pagestate for use by other plugins.
+ * map: Support show=description.
-- Joey Hess <joeyh@debian.org> Sun, 15 Jun 2008 15:03:33 -0400
diff --git a/debian/copyright b/debian/copyright
index bbb6d5192..d461bff29 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -88,6 +88,10 @@ Files: calendar.pm
Copyright: (c) 2006, 2007 Manoj Srivastava <srivasta@debian.org>
License: GPL-2+
+Files: hnb.pm
+Copyright: Copyright (C) 2008 Axel Beckert <abe@deuxchevaux.org>
+License: GPL-2+
+
Files: doc/logo/*
Copyright: © 2006 Recai Oktaş <roktas@debian.org>
License: GPL-2+
diff --git a/doc/plugins.mdwn b/doc/plugins.mdwn
index 439cecc8a..ca1dfd1ff 100644
--- a/doc/plugins.mdwn
+++ b/doc/plugins.mdwn
@@ -1,6 +1,8 @@
Most of ikiwiki's [[features]] are implemented as plugins. Many of these
plugins are included with ikiwiki.
+[[map pages="plugins/*" show=description]]
+
[[pagestats pages="plugins/type/* and !plugins/type/slow"]]
There's documentation if you want to [[write]] your own plugins, or you can
diff --git a/doc/plugins/map.mdwn b/doc/plugins/map.mdwn
index d50c9b292..df34d77cd 100644
--- a/doc/plugins/map.mdwn
+++ b/doc/plugins/map.mdwn
@@ -1,6 +1,8 @@
[[template id=plugin name=map author="Alessandro Dotti Contra"]]
[[tag type/meta]]
+[[meta description="some page description"]]
+
This plugin generates a hierarchical page map for the wiki. Example usage:
\[[map pages="* and !blog/* and !*/Discussion"]]
@@ -9,8 +11,9 @@ If the pages to include are not specified, all pages (and other files) in
the wiki are mapped.
By default, the names of pages are shown in the map. The `show` parameter
-can be used to show the titles of pages instead. For example:
-
+can be used to show the titles or descriptions of pages instead (as set by
+the [[meta]] plugin). For example:
+
\[[map pages="* and !blog/* and !*/Discussion" show=title]]
Hint: To limit the map to displaying pages less than a certain level deep,