From ff6941cef9a88ea2a0d3af2e5ae1edd09048916b Mon Sep 17 00:00:00 2001 From: joey Date: Thu, 21 Dec 2006 20:11:18 +0000 Subject: [PATCH] * Add support for links of the form [../foo]], this links to the page foo a level higher in the directory hierarchy than the one it would link to by default. --- IkiWiki.pm | 6 ++++++ basewiki/subpage/linkingrules.mdwn | 6 ++++++ debian/changelog | 5 ++++- ...how_to_link_to_page_at_root_if_non-root_page_exists.mdwn | 4 +--- doc/todo/latex.mdwn | 6 +++++- 5 files changed, 22 insertions(+), 5 deletions(-) diff --git a/IkiWiki.pm b/IkiWiki.pm index f76e9fe30..499d3a71f 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -298,6 +298,12 @@ sub bestlink ($$) { #{{{ my $link=shift; my $cwd=$page; + + # relative links + while ($link=~s!(^|/)\.\./!!g) { + $cwd=~s!/?[^/]+$!!; + } + do { my $l=$cwd; $l.="/" if length $l; diff --git a/basewiki/subpage/linkingrules.mdwn b/basewiki/subpage/linkingrules.mdwn index 83625ccbd..1543801b3 100644 --- a/basewiki/subpage/linkingrules.mdwn +++ b/basewiki/subpage/linkingrules.mdwn @@ -19,3 +19,9 @@ the only way to link to an unrelated [[SubPage]]. You can use this to, for example, to link from BazBar to "FooBar/SubPage", or from BazBar/SubPage to "FooBar/SubPage". + +You can also use ".." in a link, to specify exactly which page to link to, +when there are multiple pages with similar names and the link goes to the +wrong page by default. For example, linking from "FooBar/SubPage" to +".../OtherPage" will link to the "OtherPage" in the root of the wiki, even +if there is a "FooBar/OtherPage". diff --git a/debian/changelog b/debian/changelog index 80edfc972..b783cd1d9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -18,8 +18,11 @@ ikiwiki (1.36) UNRELEASED; urgency=low like, if you want. * Patch from Emanuele Aina to fix modification time code in mercurual backend. + * Add support for links of the form [../foo]], this links to the page + foo a level higher in the directory hierarchy than the one it would link + to by default. - -- Joey Hess Thu, 21 Dec 2006 14:39:26 -0500 + -- Joey Hess Thu, 21 Dec 2006 15:10:03 -0500 ikiwiki (1.35) unstable; urgency=low diff --git a/doc/bugs/linkingrules_should_document_how_to_link_to_page_at_root_if_non-root_page_exists.mdwn b/doc/bugs/linkingrules_should_document_how_to_link_to_page_at_root_if_non-root_page_exists.mdwn index a4578f719..862feb0cb 100644 --- a/doc/bugs/linkingrules_should_document_how_to_link_to_page_at_root_if_non-root_page_exists.mdwn +++ b/doc/bugs/linkingrules_should_document_how_to_link_to_page_at_root_if_non-root_page_exists.mdwn @@ -1,5 +1,3 @@ The [[linking_rules|subpage/linkingrules]] should document how to link to a page at the root of the wiki when a normal, unadorned link would use a page of the same name further down the hierarchy. For example, how should [[todo/latex]] link to [[logo]] rather than [[todo/logo|todo/logo]]? -> I agree, unfortunatly the real bug is that the linking rules don't -> provide a way to do such a link. \\[[../foo]] is probably the best -> approach, although it won't work yet. --[[Joey]] +> [[bugs/done]].. the syntax to use is \\[[../logo]] --[[Joey]] diff --git a/doc/todo/latex.mdwn b/doc/todo/latex.mdwn index 71a291974..3255514a4 100644 --- a/doc/todo/latex.mdwn +++ b/doc/todo/latex.mdwn @@ -1 +1,5 @@ -How about a plugin adding a [[preprocessor_directive|preprocessordirective]] to render some given LaTeX as a PNG via [[debpkg dvipng]] and include the resulting image in the page? Useful for mathematics, as well as for stuff like the LaTeX version of the ikiwiki [[logo]]. \ No newline at end of file +How about a plugin adding a +[[preprocessor_directive|preprocessordirective]] to render some given LaTeX +as a PNG via [[debpkg dvipng]] and include the resulting image in the page? +Useful for mathematics, as well as for stuff like the LaTeX version of the +ikiwiki [[../logo]]. -- 2.32.0.93.g670b81a890