1.1 --- a/README.txt Sat Mar 07 19:44:04 2009 +0100
1.2 +++ b/README.txt Wed Apr 01 00:57:00 2009 +0200
1.3 @@ -87,6 +87,13 @@
1.4 Copyright and licence information can be found in the docs directory - see
1.5 docs/COPYING.txt and docs/LICENCE.txt for more information.
1.6
1.7 +New in CategoryMenu 0.3 (Changes since CategoryMenu 0.2)
1.8 +--------------------------------------------------------
1.9 +
1.10 + * Restored MoinMoin 1.5.x compatibility.
1.11 + * Changed the presentation of subpages in the menu, using » instead of an
1.12 + em-dash.
1.13 +
1.14 New in CategoryMenu 0.2 (Changes since CategoryMenu 0.1)
1.15 --------------------------------------------------------
1.16
2.1 --- a/macros/CategoryMenu.py Sat Mar 07 19:44:04 2009 +0100
2.2 +++ b/macros/CategoryMenu.py Wed Apr 01 00:57:00 2009 +0200
2.3 @@ -12,7 +12,7 @@
2.4 from MoinMoin import wikiutil, search, version
2.5 import re
2.6
2.7 -__version__ = "0.2"
2.8 +__version__ = "0.3"
2.9
2.10 Dependencies = ['pages']
2.11
2.12 @@ -90,11 +90,35 @@
2.13 pages.append(page)
2.14 return pages
2.15
2.16 -def getPrettyPageName(page):
2.17 +def getPrettyPageName(request, page):
2.18 +
2.19 + """
2.20 + Using 'request', return a nicely formatted title/name for the given 'page'.
2.21 + """
2.22 +
2.23 + if isMoin15():
2.24 + title = page.split_title(request, force=1)
2.25 + else:
2.26 + title = page.split_title(force=1)
2.27 +
2.28 + return title.replace("_", " ").replace("/", u" » ")
2.29 +
2.30 +def linkToPage(request, page, text, query_string=None):
2.31
2.32 - "Return a nicely formatted title/name for the given 'page'."
2.33 + """
2.34 + Using 'request', return a link to 'page' with the given link 'text' and
2.35 + optional 'query_string'.
2.36 + """
2.37 +
2.38 + text = wikiutil.escape(text)
2.39
2.40 - return page.split_title(force=1).replace("_", " ").replace("/", u" » ")
2.41 + if isMoin15():
2.42 + url = wikiutil.quoteWikinameURL(page.page_name)
2.43 + if query_string is not None:
2.44 + url = "%s?%s" % (url, query_string)
2.45 + return wikiutil.link_tag(request, url, text, getattr(page, "formatter", None))
2.46 + else:
2.47 + return page.link_to_raw(request, text, query_string)
2.48
2.49 def execute(macro, args):
2.50
2.51 @@ -169,8 +193,9 @@
2.52 real_page_in_category = Page(request, pagename)
2.53
2.54 # Get a pretty version of the page name.
2.55 + # NOTE: MoinMoin 1.5: request supplied.
2.56
2.57 - pretty_pagename = getPrettyPageName(real_page_in_category)
2.58 + pretty_pagename = getPrettyPageName(request, real_page_in_category)
2.59
2.60 if page.page_name == pagename:
2.61 output.append(fmt.listitem(on=1, attr={"class" : "selected"}))
2.62 @@ -179,7 +204,7 @@
2.63
2.64 # Abbreviate long hierarchical names.
2.65
2.66 - parts = pagename.split("/")
2.67 + parts = pretty_pagename.split(u" » ")
2.68 common = 0
2.69 for last, current in map(None, last_parts, parts):
2.70 if last == current:
2.71 @@ -187,16 +212,16 @@
2.72 else:
2.73 break
2.74
2.75 - # Use an em-dash to indicate subpages.
2.76 + # Use the arrows to indicate subpages.
2.77
2.78 - prefix = u"\u2014" * common
2.79 - suffix = "/".join(parts[common:])
2.80 + prefix = u" » " * common
2.81 + suffix = u" » ".join(parts[common:])
2.82
2.83 output.append(fmt.text(prefix))
2.84
2.85 # Link to the page using the pretty name.
2.86
2.87 - output.append(real_page_in_category.link_to_raw(request, wikiutil.escape(pretty_pagename)))
2.88 + output.append(linkToPage(request, real_page_in_category, suffix))
2.89 output.append(fmt.listitem(on=0))
2.90
2.91 last_parts = parts