[[!tag patch]] [[!template id=gitbranch branch=smcv/trail author="[[smcv]]"]] Available from [[smcv]]'s git repository, in the `trail` branch. This plugin aims to solve [[todo/wikitrails]] in a simpler way; it can also be used for [[navigation through blog posts|Pagination_next_prev_links]]. The branch also includes machinery to run most of the IkiWiki regression tests under [[!cpan Devel::Cover]]. Demo: * [a trail based on links](http://demo.hosted.pseudorandom.co.uk/trail/) * [a hybrid trail/inline](http://demo.hosted.pseudorandom.co.uk/trail2/) The page `e` in the demo is in both trails, to demonstrate how that looks. The `smcv/trail2` branch is an older version of `trail` which used typed links as its data structure, resulting in timing-related limitations (it couldn't select pages for the trail by using pagespecs, because pagespecs can't be evaluated correctly until the scan stage has finished). Updated, November 2011: * reinstated `inline` integration ([[report]] integration would probably be pretty easy too, if this gets merged) * switched from typed links back to a custom data structure to avoid chicken/egg problems with ordering * create typed links too, as a side-effect, but not when using an inline * regression test with nearly full coverage * CSS for the default anti-theme and all built-in themes (it looks nicest in the default anti-theme and in actiontabs - the demo uses actiontabs) Known bugs: * the blueview and goldtype CSS nearly work, but the alignment is a bit off ---- [[!template id=plugin name=trail author="[[Simon_McVittie|smcv]]"]] [[!tag type/chrome]] This plugin provides the [[ikiwiki/directive/trail]], [[ikiwiki/directive/traillink]], [[ikiwiki/directive/trailitem]], and [[ikiwiki/directive/trailinline]] [[directives|ikiwiki/directive]]. It's sometimes useful to have "trails" of pages in a wiki where each page links to the next and/or previous page. For instance, you could use this for a guided tour, sequence of chapters, or sequence of blog posts. In this plugin, a trail is represented by a page, and the pages in the trail are indicated by specially marked links within that page, or by including groups of pages with a [[ikiwiki/directive]]. If using the default `page.tmpl`, each page automatically displays the trails that it's a member of (if any), with links to the trail and to the next and previous members. HTML `` tags with the `prev`, `next` and `up` relations are also generated. Pages can be included in a trail in various ways: * The [[ikiwiki/directive/trailinline]] directive sets up an [[inline]], and at the same time adds the matching pages (from `pages` or `pagenames`) to the trail. One use is to navigate through all posts in a blog: \[[!trailinline pages="page(./posts/*) and !*/Discussion" archive=yes feedshow=10 quick=yes]] This directive only works if the [[!iki plugins/inline desc=inline]] plugin is also enabled. * The [[ikiwiki/directive/trail]] directive has optional `pages` and `pagenames` options which behave the same as in [[inline]], but don't produce any output in the page, so you can have trails that don't list all their pages. * The [[ikiwiki/directive/traillink]] directive makes a visible link and also adds the linked page to the trail. This will typically be used in a bullet list, but could also be in paragraph text: * [[!traillink Introduction]] * [[!traillink "Chapter 1"]] * [[!traillink Chapter_2]] * [[!traillink Appendix_A]] or To use this software you must \[[!traillink install]] it, \[[!traillink configuration text="configure it"]], and finally \[[!traillink running|run_it]]. This also counts as a [[ikiwiki/WikiLink]] for things like the `link()` [[ikiwiki/PageSpec]] item. * The [[ikiwiki/directive/trailitem]] directive adds a page to the trail like `traillink`, but produces an invisible link, rather like `\[[!tag]]`: To use this software you must \[[!traillink install]] it, \[[!trailitem installing_from_packages]] \[[!trailitem installing_from_source]] \[[!traillink configuration text="configure it"]], and finally \[[!traillink running|run_it]]. \[[!trailitem troubleshooting]] Like `\[[!tag]]`, this still counts as a [[ikiwiki/WikiLink]] even though there's no visible link. You can mix several of these directives in one page, and the resulting trail will contain all of the pages matched by any of the directives, in the same order as the directives (unless you use the `sort` option on `\[[!trail]]` or `\[[!trailinline]]`, which takes precedence). The [[ikiwiki/directive/trail]] directive can also be used to set options.