X-Git-Url: https://codewiz.org/gitweb?p=geekigeeki_data.git;a=blobdiff_plain;f=sys%2Fmacros%2FWordIndex.py;fp=sys%2Fmacros%2FWordIndex.py;h=635ef6b28660efb33b7b860e848934c23d9a6f7b;hp=0000000000000000000000000000000000000000;hb=fc97e515c8841f188b39fa135f57e2f37a21d45a;hpb=138a1577ab3fd9f25a1f5eeefe894d564a1a48e5 diff --git a/sys/macros/WordIndex.py b/sys/macros/WordIndex.py new file mode 100644 index 0000000..635ef6b --- /dev/null +++ b/sys/macros/WordIndex.py @@ -0,0 +1,33 @@ +#acl bernie:read,write All:read + +def _macro_WordIndex(*args, **kvargs): + s = make_index_key() + pages = list(page_list()) + map = {} + word_re = re.compile('[A-Z][a-z]+') + for name in pages: + for word in word_re.findall(name): + try: + map[word].append(name) + except KeyError: + map[word] = [name] + + all_words = list(map.keys()) + all_words.sort() + last_letter = None + # set title + for word in all_words: + letter = word[0].lower() + if letter != last_letter: + s += '

%s

' % (letter, letter) + last_letter = letter + + s += '%s' + return s