/ docs / src / mkpre.py
mkpre.py
 1  #!/usr/bin/env python
 2  """mkpre.py: Convert ASCII art into something that groff can render to
 3  text, HTML, or postscript/pdf
 4  
 5  Copyright (C) 2006 Jeff EpleR
 6  License: GPL V2
 7  """
 8  
 9  def substall(s, r):
10      for a, b in r: s = s.replace(a, b)
11      return s
12  
13  def mkpre(s):
14      msubst = [('\\', '\\\\'), (' ', '\\ ')]
15      hsubst = [('&', '&amp;'), ('<', '&lt;'), ('>', '&gt;'),
16  		('  ', ' &nbsp;'), ('\n', '<BR>'), ('\\', '&#92;')]
17  
18      h = "".join(s)
19      print ".ie '\\*[.T]'html' .HTML <PRE>%s</PRE>" % substall(h, hsubst)
20      print ".el \\{\\"
21      print ".ft CR"
22      for i, line in enumerate(s):
23  	if i != 0:
24  	    print r".PP"
25  	print substall(line.strip("\n"), msubst)
26      print ".ft R"
27      print r"\}"
28  
29  import sys
30  mkpre(list(sys.stdin))