Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Darst <rkd@zgib.net>2009-07-07 19:58:29 (GMT)
committer Richard Darst <rkd@zgib.net>2009-07-07 19:58:29 (GMT)
commitda513231fc0ac4af6fa2ded5cfdf0454fa877582 (patch)
tree059b42cf2b48699c95cdbde8f219da360a352c00
parent7e5d920ce081dec82c7f8302b4f422bcf469746a (diff)
Enable some basic escaping of ReST
darcs-hash:20090707195829-82ea9-0ccdab7bae6ea8c08ad8edf09c33e6b530dd2388.gz
-rw-r--r--items.py27
-rw-r--r--writers.py3
2 files changed, 22 insertions, 8 deletions
diff --git a/items.py b/items.py
index b760c90..fe7d098 100644
--- a/items.py
+++ b/items.py
@@ -69,12 +69,16 @@ class _BaseItem(object):
replacements[name] = getattr(self, name)
return replacements
def makeRSTref(self, M):
- rstref = rstref_orig = "%s-%s"%(self.nick, self.time)
+ if self.nick[-1] == '_':
+ rstref = rstref_orig = "%s%s"%(self.nick, self.time)
+ else:
+ rstref = rstref_orig = "%s-%s"%(self.nick, self.time)
count = 0
while rstref in M.rst_refs:
rstref = rstref_orig + inbase(count)
count += 1
- M.rst_urls.append(".. _%s: %s"%(rstref, self.link+"#"+self.anchor))
+ link = M.config.basename+'.log.html'
+ M.rst_urls.append(".. _%s: %s"%(rstref, link+"#"+self.anchor))
M.rst_refs[rstref] = True
return rstref
@property
@@ -99,10 +103,12 @@ class Topic(_BaseItem):
repl['link'] = M.config.basename+'.log.html'
return self.html_template%repl
def rst(self, M):
- self.link = M.config.basename+'.log.html'
self.rstref = self.makeRSTref(M)
repl = self.get_replacements()
if repl['topic']=='': repl['topic']=' '
+ else: repl['topic']=writers.rst(self.topic)
+ repl['nick'] = writers.rst(self.nick)
+ repl['link'] = M.config.basename+'.log.html'
return self.rst_template%repl
class GenericItem(_BaseItem):
@@ -121,9 +127,12 @@ class GenericItem(_BaseItem):
repl['link'] = M.config.basename+'.log.html'
return self.html_template%repl
def rst(self, M):
- self.link = M.config.basename+'.log.html'
self.rstref = self.makeRSTref(M)
- return self.rst_template%self.get_replacements()
+ repl = self.get_replacements()
+ repl['nick'] = writers.rst(self.nick)
+ repl['line'] = writers.rst(self.line)
+ repl['link'] = M.config.basename+'.log.html'
+ return self.rst_template%repl
class Info(GenericItem):
@@ -169,6 +178,10 @@ class Link(_BaseItem):
self.link = M.config.basename+'.log.html'
return self.html_template%repl
def rst(self, M):
- self.link = M.config.basename+'.log.html'
self.rstref = self.makeRSTref(M)
- return self.rst_template%self.get_replacements()
+ repl = self.get_replacements()
+ repl['nick'] = writers.rst(self.nick)
+ repl['line'] = writers.rst(self.line)
+ repl['link'] = M.config.basename+'.log.html'
+ #repl['url'] = writers.rst(self.url)
+ return self.rst_template%repl
diff --git a/writers.py b/writers.py
index c55d7e7..7201abc 100644
--- a/writers.py
+++ b/writers.py
@@ -44,9 +44,10 @@ import items
def html(text):
"""Escape bad sequences (in HTML) in user-generated lines."""
return text.replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;")
+rstReplaceRE = re.compile('_( |-|$)')
def rst(text):
"""Escapes bad sequences in reST (not implemented yet)"""
- return text
+ return rstReplaceRE.sub(r'\_\1', text)
# wraping functions (for RST)
class TextWrapper(textwrap.TextWrapper):