Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(161)

Unified Diff: third_party/twisted_8_1/twisted/lore/man2lore.py

Issue 12261012: Remove third_party/twisted_8_1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/twisted_8_1/twisted/lore/lmath.py ('k') | third_party/twisted_8_1/twisted/lore/nevowlore.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/twisted_8_1/twisted/lore/man2lore.py
diff --git a/third_party/twisted_8_1/twisted/lore/man2lore.py b/third_party/twisted_8_1/twisted/lore/man2lore.py
deleted file mode 100644
index efa528a1b88eed23dc022fad285acf1da6305328..0000000000000000000000000000000000000000
--- a/third_party/twisted_8_1/twisted/lore/man2lore.py
+++ /dev/null
@@ -1,291 +0,0 @@
-# -*- test-case-name: twisted.lore.test.test_man2lore -*-
-# Copyright (c) 2001-2008 Twisted Matrix Laboratories.
-# See LICENSE for details.
-
-
-"""
-man2lore: Converts man page source (i.e. groff) into lore-compatible html.
-
-This is nasty and hackish (and doesn't support lots of real groff), but is good
-enough for converting fairly simple man pages.
-"""
-
-import re, os
-
-quoteRE = re.compile('"(.*?)"')
-
-
-
-def escape(text):
- text = text.replace('<', '&lt;').replace('>', '&gt;')
- text = quoteRE.sub('<q>\\1</q>', text)
- return text
-
-
-
-def stripQuotes(s):
- if s[0] == s[-1] == '"':
- s = s[1:-1]
- return s
-
-
-
-class ManConverter(object):
- """
- Convert a man page to the Lore format.
-
- @ivar tp: State variable for handling text inside a C{TP} token. It can
- take values from 0 to 3:
- - 0: when outside of a C{TP} token.
- - 1: once a C{TP} token has been encountered. If the previous value
- was 0, a definition list is started. Then, at the first line of
- text, a definition term is started.
- - 2: when the first line after the C{TP} token has been handled.
- The definition term is closed, and a definition is started with
- the next line of text.
- - 3: when the first line as definition data has been handled.
- @type tp: C{int}
- """
- state = 'regular'
- name = None
- tp = 0
- dl = 0
- para = 0
-
- def convert(self, inf, outf):
- self.write = outf.write
- longline = ''
- for line in inf.readlines():
- if line.rstrip() and line.rstrip()[-1] == '\\':
- longline += line.rstrip()[:-1] + ' '
- continue
- if longline:
- line = longline + line
- longline = ''
- self.lineReceived(line)
- self.closeTags()
- self.write('</body>\n</html>\n')
-
-
- def lineReceived(self, line):
- if line[0] == '.':
- f = getattr(self, 'macro_' + line[1:3].rstrip().upper(), None)
- if f:
- f(line[3:].strip())
- else:
- self.text(line)
-
-
- def continueReceived(self, cont):
- if not cont:
- return
- if cont[0].isupper():
- f = getattr(self, 'macro_' + cont[:2].rstrip().upper(), None)
- if f:
- f(cont[2:].strip())
- else:
- self.text(cont)
-
-
- def closeTags(self):
- if self.state != 'regular':
- self.write('</%s>' % self.state)
- if self.tp == 3:
- self.write('</dd>\n\n')
- self.tp = 0
- if self.dl:
- self.write('</dl>\n\n')
- self.dl = 0
- if self.para:
- self.write('</p>\n\n')
- self.para = 0
-
-
- def paraCheck(self):
- if not self.tp and not self.para:
- self.write('<p>')
- self.para = 1
-
-
- def macro_TH(self, line):
- self.write('<html><head>\n')
- parts = [stripQuotes(x) for x in line.split(' ', 2)] + ['', '']
- title, manSection = parts[:2]
- self.write('<title>%s.%s</title>' % (title, manSection))
- self.write('</head>\n<body>\n\n')
- self.write('<h1>%s.%s</h1>\n\n' % (title, manSection))
-
- macro_DT = macro_TH
-
-
- def macro_SH(self, line):
- self.closeTags()
- self.write('<h2>')
- self.para = 1
- self.text(stripQuotes(line))
- self.para = 0
- self.closeTags()
- self.write('</h2>\n\n')
-
-
- def macro_B(self, line):
- words = line.split()
- words[0] = '\\fB' + words[0] + '\\fR '
- self.text(' '.join(words))
-
-
- def macro_NM(self, line):
- if not self.name:
- self.name = line
- self.text(self.name + ' ')
-
-
- def macro_NS(self, line):
- parts = line.split(' Ns ')
- i = 0
- for l in parts:
- i = not i
- if i:
- self.text(l)
- else:
- self.continueReceived(l)
-
-
- def macro_OO(self, line):
- self.text('[')
- self.continueReceived(line)
-
-
- def macro_OC(self, line):
- self.text(']')
- self.continueReceived(line)
-
-
- def macro_OP(self, line):
- self.text('[')
- self.continueReceived(line)
- self.text(']')
-
-
- def macro_FL(self, line):
- parts = line.split()
- self.text('\\fB-%s\\fR' % parts[0])
- self.continueReceived(' '.join(parts[1:]))
-
-
- def macro_AR(self, line):
- parts = line.split()
- self.text('\\fI %s\\fR' % parts[0])
- self.continueReceived(' '.join(parts[1:]))
-
-
- def macro_PP(self, line):
- self.closeTags()
-
-
- def macro_IC(self, line):
- cmd = line.split(' ', 1)[0]
- args = line[line.index(cmd) + len(cmd):]
- args = args.split(' ')
- text = cmd
- while args:
- arg = args.pop(0)
- if arg.lower() == "ar":
- text += " \\fU%s\\fR" % (args.pop(0),)
- elif arg.lower() == "op":
- ign = args.pop(0)
- text += " [\\fU%s\\fR]" % (args.pop(0),)
-
- self.text(text)
-
-
- def macro_TP(self, line):
- """
- Handle C{TP} token: start a definition list if it's first token, or
- close previous definition data.
- """
- if self.tp == 3:
- self.write('</dd>\n\n')
- self.tp = 1
- else:
- self.tp = 1
- self.write('<dl>')
- self.dl = 1
-
-
- def macro_BL(self, line):
- self.write('<dl>')
- self.tp = 1
-
-
- def macro_EL(self, line):
- if self.tp == 3:
- self.write('</dd>')
- self.tp = 1
- self.write('</dl>\n\n')
- self.tp = 0
-
-
- def macro_IT(self, line):
- if self.tp == 3:
- self.write('</dd>')
- self.tp = 1
- self.continueReceived(line)
-
-
- def text(self, line):
- """
- Handle a line of text without detected token.
- """
- if self.tp == 1:
- self.write('<dt>')
- if self.tp == 2:
- self.write('<dd>')
- self.paraCheck()
-
- bits = line.split('\\')
- self.write(escape(bits[0]))
- for bit in bits[1:]:
- if bit[:2] == 'fI':
- self.write('<em>' + escape(bit[2:]))
- self.state = 'em'
- elif bit[:2] == 'fB':
- self.write('<strong>' + escape(bit[2:]))
- self.state = 'strong'
- elif bit[:2] == 'fR':
- self.write('</%s>' % self.state)
- self.write(escape(bit[2:]))
- self.state = 'regular'
- elif bit[:2] == 'fU':
- # fU doesn't really exist, but it helps us to manage underlined
- # text.
- self.write('<u>' + escape(bit[2:]))
- self.state = 'u'
- elif bit[:3] == '(co':
- self.write('&copy;' + escape(bit[3:]))
- else:
- self.write(escape(bit))
-
- if self.tp == 1:
- self.write('</dt>')
- self.tp = 2
- elif self.tp == 2:
- self.tp = 3
-
-
-
-class ProcessingFunctionFactory:
-
- def generate_lore(self, d, filenameGenerator=None):
- ext = d.get('ext', '.html')
- return lambda file,_: ManConverter().convert(open(file),
- open(os.path.splitext(file)[0]+ext, 'w'))
-
-
-
-factory = ProcessingFunctionFactory()
-
-
-if __name__ == '__main__':
- import sys
- mc = ManConverter().convert(open(sys.argv[1]), sys.stdout)
« no previous file with comments | « third_party/twisted_8_1/twisted/lore/lmath.py ('k') | third_party/twisted_8_1/twisted/lore/nevowlore.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698