Python txt2html
Jump to navigation
Jump to search
#!/usr/bin/python """ txt2html.py, Version 4.5.00 (Update: 15.5.02) Python script by Tobias Polzin, polzin@gmx.de If you like the module, please give me feedback. All rights reserved. Rapid creation of HTML and TEX files from txt files with the following syntax (indenting lines is used for scoping as in PYTHON): >Headlines Normal text, _bold text_, *emphasised* there are: - descriptions: this is a description text the identation is used as in python. * itemizes * unsorted lists Converted to html: Headlines Normal text, bold text, emphasised there are: descriptions: this is a description text the identation is used as in python. itemizes unsorted lists Converted to Latex: % Generated by txt2html, polzin@gmx.de % tt (05.05.2000) \documentclass[a4paper]{article} \usepackage[latin1]{inputenc} \begin{document} \subsection*{Headlines} \\ Normal text, \textbf{bold text}, \emph{emphasised} \\ there are: \begin{description} \item[descriptions:] this is a description text the identation is used as in python. \begin{itemize} \item itemizes \item unsorted lists \end{itemize} \end{description} \end{document} """ from sys import argv,exit from string import split import time import re linescan = re.compile(r"(?P *(?P[*>-])? *)"+ r"(?P(?P''', r'''%% Generated by txt2html, polzin@gmx.de %% %s \documentclass[a4paper]{article} \usepackage[latin1]{inputenc} \begin{document} '''][tex] % (filename + time.strftime(" (%d.%m.%Y)", time.localtime(time.time()))) EXIT=['', r'\end{document}'][tex] lastlen = 80 lastindent = 0 indents = [] bfison = 0 f = open(filename,"r") print INTRO for l in f.readlines(): m = linescan.match(l) llen = len(l) indent = len(m.group("indent")) # print "% "+`m.group("mode")`,indent,lastindent if lastindentindent: while indents and indents[-1][1]>indent: print MODE[indents[-1][0]][2] del indents[-1] lastlen=maxlen lastindent=indent line=m.group("line") if m.group("mode"): p=MODE[m.group("mode")][1] if "%" in p: if m.group("title"): p=p%m.group("title") line=m.group("notitle") else: p=p%line line="" if p: print p llen=maxlen elif (len(split(line))>0 and lastlen+len(split(line)[0])<maxlen): print BR line=emphscan.sub(r" %s\1%s" % (EM[0],EM[1]),line) line=bfscan.sub(bfinsert,line) if len(line): print " "*indent+line lastindent=indent lastlen=llen print EXIT