return re.sub(' ', '-', re.sub('[^a-z0-9_ ]', '', s.lower()).strip())
def humanlink(s):
return re.sub(' ', '-', re.sub('[^a-z0-9_ ]', '', s.lower()).strip())
def humanlink(s):
- return re.search('([^:/\.]+)(?:\.[^/:]+|)$', s).group(1).replace('_', ' ')
+ return re.sub(r'([^:/\.]+)(?:\.[^/:]+|)$', r'\1', s.replace('_', ' '))
# Split arg lists like "blah| blah blah| width=100 | align = center",
# return a list containing anonymous arguments and a map containing the named arguments
# Split arg lists like "blah| blah blah| width=100 | align = center",
# return a list containing anonymous arguments and a map containing the named arguments
- try:
- key, val = arg.split('=', 1)
- kwargs[key.strip()] = val.strip()
- except ValueError:
+ m = re.match('\s*(\w+)\s*=\s*(.+)\s*', arg)
+ if m is not None:
+ kwargs[m.group(1)] = m.group(2)
+ else:
if 'history_url' in globals():
print(' | <a href="' + relative_url(history_url) + '" class="navlink">Recent Changes</a>')
if name:
print(' | <a href="' + relative_url(history_url + '?a=history;f=' + name) + '" class="navlink">Page History</a>')
if name:
if 'history_url' in globals():
print(' | <a href="' + relative_url(history_url) + '" class="navlink">Recent Changes</a>')
if name:
print(' | <a href="' + relative_url(history_url + '?a=history;f=' + name) + '" class="navlink">Page History</a>')
if name:
- print(' | ' + link_tag('?a=edit&q=' + name, 'Edit', 'navlink', privileged=True))
+ print(' | ' + link_tag('?a=edit&q=' + name, 'Edit', cssclass='navlink', privileged=True))
- print(' | ' + link_tag(name, 'Login', 'navlink', privileged=True))
+ print(' | ' + link_tag(name, 'Login', cssclass='navlink', privileged=True))
-def link_tag(params, text=None, link_class=None, privileged=False, **kvargs):
+def link_tag(dest, text=None, privileged=False, **kvargs):
- return '<a %shref="%s">%s</a>' % (classattr, relative_url(params, privileged=privileged), text)
+ return '<a class="%s" %shref="%s">%s</a>' % (link_class, nofollow, relative_url(dest, privileged=privileged), text)
def link_inline(name, descr=None, kvargs={}):
if not descr: descr = humanlink(name)
def link_inline(name, descr=None, kvargs={}):
if not descr: descr = humanlink(name)
links = ['<a href="#%s">%s</a>' % (ch, ch) for ch in 'abcdefghijklmnopqrstuvwxyz']
return '<p style="text-align: center">' + ' | '.join(links) + '</p>'
links = ['<a href="#%s">%s</a>' % (ch, ch) for ch in 'abcdefghijklmnopqrstuvwxyz']
return '<p style="text-align: center">' + ' | '.join(links) + '</p>'
if re is None:
# FIXME: WikiWord is too restrictive now!
re = re.compile(r"^\b((([A-Z][a-z0-9]+){2,}/)*([A-Z][a-z0-9]+){2,})\b$")
if re is None:
# FIXME: WikiWord is too restrictive now!
re = re.compile(r"^\b((([A-Z][a-z0-9]+){2,}/)*([A-Z][a-z0-9]+){2,})\b$")
def get_raw_body(self, default=None):
try:
return open(self._filename(), 'rb').read()
def get_raw_body(self, default=None):
try:
return open(self._filename(), 'rb').read()
if err.errno == errno.ENOENT:
if default is None:
default = '//[[%s|Describe %s|action=edit]]//' % (self.page_name, self.page_name)
if err.errno == errno.ENOENT:
if default is None:
default = '//[[%s|Describe %s|action=edit]]//' % (self.page_name, self.page_name)
break
self._pragmas[m.group(1)] = m.group(2).strip()
#print "bernie: pragmas[" + m.group(1) + "] = " + m.group(2) + "<br>\n"
break
self._pragmas[m.group(1)] = m.group(2).strip()
#print "bernie: pragmas[" + m.group(1) + "] = " + m.group(2) + "<br>\n"
try:
from time import localtime, strftime
modtime = localtime(os.stat(self._filename())[stat.ST_MTIME])
try:
from time import localtime, strftime
modtime = localtime(os.stat(self._filename())[stat.ST_MTIME])
if err.errno != errno.ENOENT: raise err
os.rename(tmp_filename, name)
if err.errno != errno.ENOENT: raise err
os.rename(tmp_filename, name)