diff --git a/bin/jsduck b/bin/jsduck
index 6b766ce19b4140beda5ef60d85d2c017e9bab27f..c831d128b0dc4f0d9a670c63166efed29daa4ace 100755
--- a/bin/jsduck
+++ b/bin/jsduck
@@ -47,8 +47,9 @@ opts = OptionParser.new do | opts |
opts.on('--link=TPL', "HTML template for replacing {@link}.",
"Possible placeholders:",
"%c - full class name (e.g. 'Ext.Panel')",
- "%m - class member name (e.g. 'urlEncode')",
- "%M - class member name, prefixed with hash (e.g. '#urlEncode')",
+ "%m - class member name prefixed with member type (e.g. 'method-urlEncode')",
+ "%# - inserts '#' if member name present",
+ "%- - inserts '-' if member name present",
"%a - anchor text for link",
"Default value in export: '%a'") do |tpl|
app.link_tpl = tpl
diff --git a/lib/jsduck/doc_formatter.rb b/lib/jsduck/doc_formatter.rb
index 0c016067090deebfdb50a8fa9797cc80d085cb27..d4100cf8922e2d989c73e32266647de56817d64e 100644
--- a/lib/jsduck/doc_formatter.rb
+++ b/lib/jsduck/doc_formatter.rb
@@ -11,8 +11,9 @@ module JsDuck
# Can contain placeholders:
#
# %c - full class name (e.g. "Ext.Panel")
- # %m - class member name (e.g. "urlEncode")
- # %M - class member name, prefixed with hash (e.g. "#urlEncode")
+ # %m - class member name prefixed with member type (e.g. "method-urlEncode")
+ # %# - inserts "#" if member name present
+ # %- - inserts "-" if member name present
# %a - anchor text for link
#
# Default value: '%a'
@@ -46,7 +47,7 @@ module JsDuck
@context = ""
@max_length = 120
@relations = {}
- @link_tpl = '%a'
+ @link_tpl = '%a'
@img_tpl = ''
@link_re = /\{@link\s+(\S*?)(?:\s+(.+?))?\}/m
@img_re = /\{@img\s+(\S*?)(?:\s+(.+?))?\}/m
@@ -145,14 +146,16 @@ module JsDuck
# prepend type name to member name
member = member && (get_member_type(cls, member).to_s + "-" + member)
- @link_tpl.gsub(/(%\w)/) do
+ @link_tpl.gsub(/(%[\w#-])/) do
case $1
when '%c'
cls
when '%m'
member ? member : ""
- when '%M'
- member ? "#"+member : ""
+ when '%#'
+ member ? "#" : ""
+ when '%-'
+ member ? "-" : ""
when '%a'
CGI.escapeHTML(anchor_text||"")
else
diff --git a/sdk.sh b/sdk.sh
index 28940f5e5e8f15d8ac81181bed3aba929b83bc84..b6d8f2799b7de9ed189d18d7dff847e0d264b030 100755
--- a/sdk.sh
+++ b/sdk.sh
@@ -10,7 +10,7 @@ OUT_DIR=~/public_html/docs
ruby bin/jsduck \
--template-links \
--external=Error \
- --link='%a' \
+ --link='%a' \
--img='