Index: trac/wiki/tests/wiki-tests.txt
===================================================================
--- trac/wiki/tests/wiki-tests.txt	(revision 7606)
+++ trac/wiki/tests/wiki-tests.txt	(working copy)
@@ -152,6 +152,25 @@
 Thing [link:1 number 1], CS[link:1], [link:bar]
 </p>
 ------------------------------
+============================== Link resolvers, alternative short form
+<link:1>
+
+Thing<link:2 and (3)>
+------------------------------
+<p>
+&lt;<a class="odd resolver" href="/thing/1">link:1</a>&gt;
+</p>
+<p>
+Thing&lt;<a class="text resolver" href="/stuff/2%20and%20%283%29">link:2 and (3)</a>&gt;
+</p>
+------------------------------
+============================== Escaping links resolvers, alternative short form
+!<link:1>
+------------------------------
+<p>
+&lt;link:1&gt;
+</p>
+------------------------------
 ============================== Link resolvers, long form with label
 [link:1 thing one], [http://www.edgewall.com/ edgewall]
 ------------------------------
Index: trac/wiki/parser.py
===================================================================
--- trac/wiki/parser.py	(revision 7606)
+++ trac/wiki/parser.py	(working copy)
@@ -77,10 +77,12 @@
         r"(?P<email>!?%s)" % EMAIL_LOOKALIKE_PATTERN,
         # > ...
         r"(?P<citation>^(?P<cdepth>>(?: *>)*))",
+        # <wiki:Trac links>
+        r"(?P<shref>!?<(?P<sns>%s):(?P<stgt>[^>]+)>)" % LINK_SCHEME,
         # &, < and > to &amp;, &lt; and &gt;
         r"(?P<htmlescape>[&<>])",
         # wiki:TracLinks
-        r"(?P<shref>!?((?P<sns>%s):(?P<stgt>%s|%s(?:%s*%s)?)))" \
+        r"(?P<shref2>!?((?P<sns2>%s):(?P<stgt2>%s|%s(?:%s*%s)?)))" \
         % (LINK_SCHEME, QUOTED_STRING,
            SHREF_TARGET_FIRST, SHREF_TARGET_MIDDLE, SHREF_TARGET_LAST),
         # [wiki:TracLinks with optional label] or [/relative label]
Index: trac/wiki/formatter.py
===================================================================
--- trac/wiki/formatter.py	(revision 7606)
+++ trac/wiki/formatter.py	(working copy)
@@ -353,6 +353,13 @@
     def _shref_formatter(self, match, fullmatch):
         ns = fullmatch.group('sns')
         target = self._unquote(fullmatch.group('stgt'))
+        match = match[1:-1]
+        return '&lt;%s&gt;' % \
+                self._make_link(ns, target, match, match, fullmatch)
+
+    def _shref2_formatter(self, match, fullmatch):
+        ns = fullmatch.group('sns2')
+        target = self._unquote(fullmatch.group('stgt2'))
         return self._make_link(ns, target, match, match, fullmatch)
 
     def _lhref_formatter(self, match, fullmatch):

