1.1 --- a/macros/CategoryMenu.py Sat Oct 25 01:17:33 2008 +0200
1.2 +++ b/macros/CategoryMenu.py Sat Oct 25 02:13:43 2008 +0200
1.3 @@ -132,6 +132,8 @@
1.4
1.5 # Visit each page in the category.
1.6
1.7 + last_parts = []
1.8 +
1.9 for page_in_category in pages_in_category:
1.10 pagename = page_in_category.page_name
1.11
1.12 @@ -140,10 +142,26 @@
1.13 else:
1.14 output.append(fmt.listitem(on=1))
1.15 output.append(fmt.pagelink(on=1, pagename=pagename))
1.16 - output.append(fmt.text(pagename))
1.17 +
1.18 + # Abbreviate long hierarchical names.
1.19 +
1.20 + parts = pagename.split("/")
1.21 + common = 0
1.22 + for last, current in map(None, last_parts, parts):
1.23 + if last == current:
1.24 + common += 1
1.25 + else:
1.26 + break
1.27 +
1.28 + prefix = u"\u2014" * common
1.29 + suffix = "/".join(parts[common:])
1.30 +
1.31 + output.append(fmt.text("%s %s" % (prefix, suffix)))
1.32 output.append(fmt.pagelink(on=0, pagename=pagename))
1.33 output.append(fmt.listitem(on=0))
1.34
1.35 + last_parts = parts
1.36 +
1.37 output.append(fmt.bullet_list(on=0))
1.38 output.append(fmt.listitem(on=0))
1.39