- pg.send_page()
- else:
- raise 'What did you press?'
-
-def make_index_key():
- s = '<p><center>'
- links = map(lambda ch: '<a href="#%s">%s</a>' % (ch, ch),
- string.lowercase)
- s = s + string.join(links, ' | ')
- s = s + '</center></p>'
- return s
-
-
-def page_list():
- return filter(word_re.match, os.listdir(text_dir))
-
-
-def send_footer(name, mod_string=None):
- print '<div class="footer">'
- if mod_string:
- print "last modified %s" % mod_string
- print '</div></body></html>'
-
-
-# ----------------------------------------------------------
-# Macros
-def _macro_TitleSearch():
- return _macro_search("titlesearch")
-
-def _macro_FullSearch():
- return _macro_search("fullsearch")
-
-def _macro_search(type):
- if form.has_key('value'):
- default = form["value"].value
- else:
- default = ''
- return """<form method="get"><input name="%s" size="30" value="%s"><input type="submit" value="Go"></form>""" % (type, default)
-
-def _macro_WordIndex():
- 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 = map.keys()
- all_words.sort()
- last_letter = None
- # set title
- for word in all_words:
- letter = string.lower(word[0])
- if letter <> last_letter:
- s = s + '; <a name="%s"><h3>%s</h3></a>' % (letter, letter)
- last_letter = letter
-
- s = s + '<b>%s</b><ul>' % word
- links = map[word]
- links.sort()
- last_page = None
- for name in links:
- if name == last_page: continue
- s = s + '<li>' + Page(name).link_to()
- s = s + '</ul>'
- return s
-
-
-def _macro_TitleIndex():
- s = make_index_key()
- pages = list(page_list())
- pages.sort()
- current_letter = None
- for name in pages:
- letter = string.lower(name[0])
- if letter <> current_letter:
- s = s + '<a name="%s"><h3>%s</h3></a>' % (letter, letter)
- current_letter = letter
+ pg.format()
+ else: # preview or edit
+ text = None
+ if 'preview' in form:
+ text = form['savetext'].value
+ pg.send_editor(text)
+
+def handle_get(pagename, form):
+ if file_re.match(pagename):
+ # FIMXE: this is all bullshit, MimeTypes bases its guess on the extension!
+ from mimetypes import MimeTypes
+ mimetype, encoding = MimeTypes().guess_type(pagename)
+ if mimetype:
+ Page(pagename).send_raw(mimetype=mimetype, args=form)
+ else:
+ Page(pagename).format()