[[!meta author="""joey"""]] [[!meta authorurl="""http://ikiwiki.info/ikiwiki.cgi?page=users%2Fjoey&do=goto"""]] [[!meta title="""change to ikiwiki/directive/more todo/selective_more_directive on ikiwiki"""]] [[!meta permalink="http://ikiwiki.info/recentchanges/#change-ec6c1269d251c78d2eef68cb789de6cfc6272464"]]

Changed pages:
[[diff|wikiicons/diff.png]]ikiwiki/directive/more [[diff|wikiicons/diff.png]]todo/selective more directive
Changed by:
joey
Commit type:
git
Date:
19:00:04 11/16/10
[[revert|wikiicons/revert.png]]
more: Add pages parameter to limit where the more is displayed. (thanks, dark)
diff --git a/IkiWiki/Plugin/more.pm b/IkiWiki/Plugin/more.pm
index 80e339a..6880e36 100644
--- a/IkiWiki/Plugin/more.pm
+++ b/IkiWiki/Plugin/more.pm
@@ -26,7 +26,10 @@ sub preprocess (@) {
 
 	$params{linktext} = $linktext unless defined $params{linktext};
 
-	if ($params{page} ne $params{destpage}) {
+	if ($params{page} ne $params{destpage} &&
+	    (! exists $params{pages} ||
+	     pagespec_match($params{destpage}, $params{pages},
+		     location => $params{page}))) {
 		return "\n".
 			htmllink($params{page}, $params{destpage}, $params{page},
 				linktext => $params{linktext},
diff --git a/debian/changelog b/debian/changelog
index 91ff096..faabf19 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
 ikiwiki (3.20101113) UNRELEASED; urgency=low
 
   * websetup: Fix encoding problem when restoring old setup file.
+  * more: Add pages parameter to limit where the more is displayed.
+    (thanks, dark)
 
  -- Joey Hess <joeyh@debian.org>  Tue, 16 Nov 2010 14:23:47 -0400
 
diff --git a/doc/ikiwiki/directive/more.mdwn b/doc/ikiwiki/directive/more.mdwn
index 5065519..bda1427 100644
--- a/doc/ikiwiki/directive/more.mdwn
+++ b/doc/ikiwiki/directive/more.mdwn
@@ -11,6 +11,11 @@ leads to the full version of the page. Use it like this:
 
 If the `linktext` parameter is omitted it defaults to just "more".
 
+An optional `pages` parameter can be used to specify a
+[[ikiwiki/PageSpec]], and then the "more" link will only be displayed
+when the page is inlined into a page matching that PageSpec, and otherwise
+the full content shown.
+
 Note that you can accomplish something similar using a [[toggle]] instead.
 
 [[!meta robots="noindex, follow"]]
diff --git a/doc/todo/selective_more_directive.mdwn b/doc/todo/selective_more_directive.mdwn
index 24e6ab5..2a99982 100644
--- a/doc/todo/selective_more_directive.mdwn
+++ b/doc/todo/selective_more_directive.mdwn
@@ -24,3 +24,5 @@ I can now call it as
 I'm not entirely happy with the design, since I would rather put this information in the inline directive instead of in every story post. Unfortunately I found no way to pass parameters from the inline directive to the inlined page.
 
 -- [[dark]]
+
+> Me neither, but nor do I see a better way, so [[applied|done]]. --[[Joey]]