]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/todo/shortcut_with_different_link_text.mdwn
Answer
[git.ikiwiki.info.git] / doc / todo / shortcut_with_different_link_text.mdwn
index e6323c8bae6e10eb0f60ac86476e3e9ca16c2769..8615b2754b7e20e6b49c201329a29530fd130e0a 100644 (file)
@@ -11,7 +11,7 @@ Window System protocol".  --[[JoshTriplett]]
 > If I don't understand this, can you give an HTML example? --[[JeremyReed]]
 
 >> The problem is like that in [[bugs/shortcuts_don't_escape_from_Markdown]]. We would like to use 
->> the shortcuts plugin but add a descriptive text -- in this case \[[xcbgit src/xcb.xsd|XML Schema...]]
+>> the shortcuts plugin but add a descriptive text -- in this case \[[!xcbgit src/xcb.xsd|XML Schema...]]
 >> The file src/xcb.xsd could be any url, and the point of shortcuts is that you get to shorten it.
 >> --Ethan
 
@@ -22,7 +22,7 @@ Window System protocol".  --[[JoshTriplett]]
 >>> However, I want to define a [[plugins/shortcut]] to save the typing.  If I
 >>> define something like `protogit` pointing to
 >>> `http://gitweb.freedesktop.org/?p=xcb/proto.git;a=blob;hb=HEAD;f=%s`, then
->>> I can write `\[[protogit src/xcb.xsd]]`; however, I then can't change the
+>>> I can write `\[[!protogit src/xcb.xsd]]`; however, I then can't change the
 >>> link text to anything other than what the shortcut defines as the link
 >>> text. I want to write something like
 >>> `\[[XML Schema for the X Window System Protocol|protogit src/xcb.xsd]]`,
@@ -41,3 +41,27 @@ Window System protocol".  --[[JoshTriplett]]
 > I should modify how ikiwiki preprocessors work to make it doable.
 > Although, I seem to have come up with a clear alternative syntax over
 > there. --[[Joey]]
+
+---
+
+One possible alternative, would be a general `\[[!url ]]` scheme for all kinds of links. As mentioned in [[Short_wikilinks]], I have wanted a way to enter links to the wiki with markdown-style references,
+specifying the actual target elsewhere from the text, with just a short reference in the text. To facilitate automatic conversion from earlier (already markdownised) "blog", I finally ended up writing a custom plugin that simply gets the location of wikipage, and use markdown mechanisms:
+
+    Here [is][1] a link.
+
+      [1]: [[!l a_page_in_the_wiki]]
+
+    Obviously [this]([[!l another_page]]) also works, although the syntax is quite cumbersome.
+
+So that the 'l' plugin inserts the location the page there, and markdown does the rest. My plugin currently fails if it can't find the page, as that is sufficient for my needs. Differing colouring for non-existing pages is not doable in a straightforward manner with this approach.
+
+For external links, that is no concern, however. So you could define for each shortcut an alternative directive, that inserts the URL. Perhaps `\[[!url shortcutname params]]` or `\[[@shortcutname params]]` (if the preprocessor supported the @), and this could be extended to local links in an obvious manner: `\[[!url page]]` or `\[[@page]]`. Now, if you could just get rid off the parantheses for markdown, for the short inline links --[[tuomov]] (who'd really rather not have two separate linking mechanisms: ikiwiki's heavy syntax and markdown's lighter one).
+
+---
+
+I've added code to make the \[[!foo 123]] syntax accept a _desc_
+parameter. I've named it like this to signal that it overrides the
+_desc_ provided at description time. `%s` is expanded here as well.
+
+[[todo/done]] -- Adeodato Simó
+