from __main__ import * import posixpath __all__ = ['markup_neighbors', 'auto_neighbors'] def get_title(full_name, meta): entry_text = load(full_name) entry_meta = {'name' : full_name, 'outer_name' : meta['name']} entry_text = markup(entry_text, entry_meta) return entry_meta.get('title', 'Untitled') def auto_neighbors(before=True, search="[_insert_html _page]"): import __main__ if before: replacement = '[neighbors]' + search else: replacement = search + '[neighbors]' __main__.page_markup = __main__.page_markup.replace(search, replacement) def markup_neighbors(text, meta): if meta.has_key('outer_name'): return u'' if not meta['name'].split("/")[-1].startswith('0'): return u'' location = meta['name'] if '/' in location: parent_location = posixpath.split(location)[0] else: parent_location = '' names = [full_name for name, full_name in list_names(parent_location) if name.startswith('0')] names.sort() try: this_entry = names.index(location) except: return u'' % (names, location, parent_location) #return u'len(names)=%d this_entry=%d' % (len(names), this_entry) result = [] if this_entry != 0: name = names[this_entry - 1] t = '[html ' + get_title(name, meta) + ']' result.append('[link [page ' + name + u'] \xab ' + t + ']') # else: # result.append("(No older entry)") result.append('[link [page ' + parent_location + '] Newest entries]') if this_entry + 1 < len(names): name = names[this_entry + 1] t = '[html ' + get_title(name, meta) + ']' result.append('[link [page ' + name + u'] ' + t + u' \xbb]') # else: # result.append('(no newer entry)') return markup('[line ' + " | ".join(result) + '][line]', meta, False) # vim:sts=4:et:sw=4: