Mercurial > hg > Members > kono > os9 > sbc09
diff doc/latex2creole.py @ 57:2088fd998865
sbc09 directry clean up
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 23 Jul 2018 16:07:12 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/latex2creole.py Mon Jul 23 16:07:12 2018 +0900 @@ -0,0 +1,102 @@ +#!/usr/bin/env python +# coding: utf-8 + +""" + latex2creole + ~~~~~~~~~~~~ + + Hacked script to convert a LaTeX file into creole markup. + + Note: + Some hand-editing is needed. + + :created: 2013 by Jens Diemer - www.jensdiemer.de + :copyleft: 2013 by the DragonPy team, see AUTHORS for more details. + :license: GNU GPL v3 or above, see LICENSE for more details. +""" + +import sys + +sourcefile = r"sbc09/sbc09.tex" +destination = r"sbc09.creole" + + +HEADLINES = ( + r"\title{", + r"\chapter{", + r"\section{", + r"\subsection{", +) +SKIPS = ( + r"\begin", + r"\end", + r"\document", + r"\maketitle", + r"\tableofcontents", + "\\def\\", +) + +in_list = 0 + +def should_skip(line): + for skip in SKIPS: + if line.startswith(skip): + return True + + +with open(sourcefile, "r") as infile: + with open(destination, "w") as outfile: + for line in infile: + # ~ print line + + line = line.strip() + + if line.startswith(r"\begin{itemize}"): + in_list += 1 + continue + if line.startswith(r"\end{itemize}"): + in_list -= 1 + if in_list == 0: + outfile.write("\n") + continue + + if in_list: + if line.startswith(r"\item"): + line = "\n%s%s" % ("*"*in_list, line[5:]) + outfile.write(line) + continue + + if line == r"\begin{verbatim}": + line = "{{{" + elif line == r"\end{verbatim}": + line = "}}}" + + if should_skip(line): + continue + + for no, prefix in enumerate(HEADLINES, 1): + if line.startswith(prefix): + line = line.replace("{\\tt ", "").replace("}", "") + line = line.split("{", 1)[1].replace("{", "").replace("}", "") + line = "\n%(m)s %(l)s %(m)s\n" % { + "m": "="*no, + "l": line + } + break + + if line.startswith(r"\item["): + item, txt = line[6:].split("]") + item = item.strip() + txt = txt.strip() + line = "** %s **\n%s" % (item, txt) + + if "{\\tt" in line: + line = line.replace("{\\tt ", "{{{").replace("}", "}}}") + if "{\\em" in line: + line = line.replace("{\\em ", "{{{").replace("}", "}}}") + + line = line.replace("\\", "") + + print line + line += "\n" + outfile.write(line)