Skip to content

Commit

Permalink
Wrapper script for tei2html
Browse files Browse the repository at this point in the history
  • Loading branch information
kthoden committed Nov 21, 2019
1 parent d4e38db commit e8e8ade
Showing 1 changed file with 139 additions and 0 deletions.
139 changes: 139 additions & 0 deletions xxe/eoa/xsl/tei2html.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
#!/usr/bin/env python3
# -*- coding: utf-8; mode: python -*-

"A converter from TEI to HTML."

__version__ = "1.0"
__date__ = "20190408"
__author__ = "sgfroerer@mpiwg-berlin.mpg.de"

from utils.load_config import load_config, check_executable, exec_command, ToFile
import utils.libeoaconvert as libeoaconvert

import logging
import argparse
from pathlib import Path

# things to be done
# assign ids top to bottom for the following elements:
# div1 div2 div3 note item table EOAfigure EOAequation formula theorem

BASE_DIR = Path( __file__ ).resolve().parent
SCRIPT_NAME = Path( __file__).stem

def check_executables():
check_executable( "saxon" )

def main(
input_file,
root_dir,
xslt_file,
params,
output_file = None
):
"""Main function"""

output_options = ""
if output_file is not None:
output_options = f"-o:{output_file}"
cmd = \
"saxon -t {output_options} -s:{input_file} -xsl:{xslt_file} domain={root_dir}".format(
xslt_file = (BASE_DIR / "tei2html" / xslt_file),
input_file = input_file,
root_dir = root_dir,
output_options = output_options
)
for param in params:
cmd += (" " + param)
exec_command(
cmd
)

# def main ends here

if __name__ == '__main__':
parser = argparse.ArgumentParser(
formatter_class=argparse.ArgumentDefaultsHelpFormatter
)
parser.add_argument(
"-c", "--config",
default = BASE_DIR / "config" / "eoaconvert.cfg",
help="Name of config file"
)
parser.add_argument(
"-l", "--log-file",
# default = Path("logs", SCRIPT_NAME).with_suffix(".log"),
help="logfile"
)
parser.add_argument(
"--log-level",
default = "INFO",
help="log level: choose between DEBUG, INFO, WARNING, ERROR, CRITICAL"
)
parser.add_argument(
"--root-dir",
default = Path.cwd() / "output",
help="internal html links on the page will use this location as a prefix"
)
parser.add_argument(
"-p", "--param",
action = 'append',
default = [],
help="internal html links on the page will use this location as a prefix"
)
parser.add_argument(
"-x", "--xsl",
default = "tei2html.xsl",
help="name of the xsl file in '{dir}/'".format(
dir = BASE_DIR / "tei2html"
)
)
parser.add_argument(
"-f", "--filename",
required = True,
help="Name of main EOA-TEI file"
)
parser.add_argument(
"-o", "--output-file",
help="make saxon redirect the templates output here"
)

'''
TODO: support output directory
parser.add_argument(
"-o", "--output-dir",
default = ".",
help="where to dump all output files"
)
'''

args = parser.parse_args()

CONFIG_FILE = args.config

print("The configfile is '%s'." % CONFIG_FILE)
log_file = args.log_file
if log_file is None:
log_file = (Path("logs") / args.xsl).with_suffix(".log")
print("The logfile is '%s'." % log_file)

CONFIG = load_config(
CONFIG_FILE,
args.log_level,
log_file,
)

check_executables()

print( "params: " + str(args.param) )

# run main:
main(
input_file = args.filename,
root_dir = args.root_dir,
xslt_file = args.xsl,
output_file = args.output_file,
params = args.param,
)

# finis

0 comments on commit e8e8ade

Please sign in to comment.