1.1 --- a/macros/CategoryMenu.py Sat Mar 07 19:44:04 2009 +0100
1.2 +++ b/macros/CategoryMenu.py Wed Apr 01 00:57:00 2009 +0200
1.3 @@ -12,7 +12,7 @@
1.4 from MoinMoin import wikiutil, search, version
1.5 import re
1.6
1.7 -__version__ = "0.2"
1.8 +__version__ = "0.3"
1.9
1.10 Dependencies = ['pages']
1.11
1.12 @@ -90,11 +90,35 @@
1.13 pages.append(page)
1.14 return pages
1.15
1.16 -def getPrettyPageName(page):
1.17 +def getPrettyPageName(request, page):
1.18 +
1.19 + """
1.20 + Using 'request', return a nicely formatted title/name for the given 'page'.
1.21 + """
1.22 +
1.23 + if isMoin15():
1.24 + title = page.split_title(request, force=1)
1.25 + else:
1.26 + title = page.split_title(force=1)
1.27 +
1.28 + return title.replace("_", " ").replace("/", u" » ")
1.29 +
1.30 +def linkToPage(request, page, text, query_string=None):
1.31
1.32 - "Return a nicely formatted title/name for the given 'page'."
1.33 + """
1.34 + Using 'request', return a link to 'page' with the given link 'text' and
1.35 + optional 'query_string'.
1.36 + """
1.37 +
1.38 + text = wikiutil.escape(text)
1.39
1.40 - return page.split_title(force=1).replace("_", " ").replace("/", u" » ")
1.41 + if isMoin15():
1.42 + url = wikiutil.quoteWikinameURL(page.page_name)
1.43 + if query_string is not None:
1.44 + url = "%s?%s" % (url, query_string)
1.45 + return wikiutil.link_tag(request, url, text, getattr(page, "formatter", None))
1.46 + else:
1.47 + return page.link_to_raw(request, text, query_string)
1.48
1.49 def execute(macro, args):
1.50
1.51 @@ -169,8 +193,9 @@
1.52 real_page_in_category = Page(request, pagename)
1.53
1.54 # Get a pretty version of the page name.
1.55 + # NOTE: MoinMoin 1.5: request supplied.
1.56
1.57 - pretty_pagename = getPrettyPageName(real_page_in_category)
1.58 + pretty_pagename = getPrettyPageName(request, real_page_in_category)
1.59
1.60 if page.page_name == pagename:
1.61 output.append(fmt.listitem(on=1, attr={"class" : "selected"}))
1.62 @@ -179,7 +204,7 @@
1.63
1.64 # Abbreviate long hierarchical names.
1.65
1.66 - parts = pagename.split("/")
1.67 + parts = pretty_pagename.split(u" » ")
1.68 common = 0
1.69 for last, current in map(None, last_parts, parts):
1.70 if last == current:
1.71 @@ -187,16 +212,16 @@
1.72 else:
1.73 break
1.74
1.75 - # Use an em-dash to indicate subpages.
1.76 + # Use the arrows to indicate subpages.
1.77
1.78 - prefix = u"\u2014" * common
1.79 - suffix = "/".join(parts[common:])
1.80 + prefix = u" » " * common
1.81 + suffix = u" » ".join(parts[common:])
1.82
1.83 output.append(fmt.text(prefix))
1.84
1.85 # Link to the page using the pretty name.
1.86
1.87 - output.append(real_page_in_category.link_to_raw(request, wikiutil.escape(pretty_pagename)))
1.88 + output.append(linkToPage(request, real_page_in_category, suffix))
1.89 output.append(fmt.listitem(on=0))
1.90
1.91 last_parts = parts