WUT_Computer_Science/program/code/main.py

112 lines
3.0 KiB
Python
Raw Normal View History

2023-05-03 14:59:06 +02:00
"""
Program for converting Latex files into html files
"""
2023-05-03 20:29:08 +02:00
from code.latex_classes.latex_classes import return_latex_classes
from code.error_messages.error_arrays import return_error_arrays
2023-05-03 21:41:49 +02:00
def command_name_check(latex_string, command_name):
error_arrays = return_error_arrays()
if latex_string[1 : (len(command_name) + 1)] != command_name:
print(latex_string + error_arrays[4])
return "Error!"
return
2023-05-03 20:55:46 +02:00
def generic_checks(latex_string):
error_arrays = return_error_arrays()
if latex_string == "":
print(latex_string + error_arrays[0])
return "Error!"
if "}" not in latex_string:
print(latex_string + error_arrays[1])
return "Error!"
2023-05-10 18:16:28 +02:00
return
def generic_checks_command(latex_string):
error_arrays = return_error_arrays()
if generic_checks(latex_string) == "Error!":
return "Error!"
2023-05-03 20:55:46 +02:00
if latex_string[0] != "\\":
print(latex_string + error_arrays[6])
return "Error!"
2023-05-03 21:41:49 +02:00
return
2023-05-03 20:55:46 +02:00
2023-05-03 14:59:06 +02:00
def document_class(latex_string):
2023-05-03 20:29:08 +02:00
r"""
2023-05-03 14:59:06 +02:00
Converts LaTeX documentclass method to html
2023-05-03 20:29:08 +02:00
\documentclass{article}
2023-05-03 14:59:06 +02:00
"""
2023-05-03 20:29:08 +02:00
error_arrays = return_error_arrays()
2023-05-10 18:16:28 +02:00
if generic_checks_command(latex_string) == "Error!":
2023-05-03 20:29:08 +02:00
return "Error!"
if latex_string[len("\\documentclass{") - 1] != "{":
2023-05-03 20:55:46 +02:00
print(latex_string + error_arrays[3])
2023-05-03 20:29:08 +02:00
return "Error!"
2023-05-03 21:41:49 +02:00
if command_name_check(latex_string, "documentclass") == "Error!":
2023-05-03 20:29:08 +02:00
return "Error!"
2023-05-03 20:55:46 +02:00
document_type = latex_string[len("\\documentclass{") : (len(latex_string) - 1)]
latex_classes = return_latex_classes()
2023-05-03 20:29:08 +02:00
if document_type not in latex_classes:
return f"Error! class {document_type} is not known!"
2023-05-03 20:55:46 +02:00
return "<!DOCTYPE html>"
def begin_document(latex_string):
r"""
Converts LaTeX begin document method to html
\begin{document}
"""
2023-05-10 18:16:28 +02:00
if generic_checks_command(latex_string) == "Error!":
2023-05-03 20:55:46 +02:00
return "Error!"
2023-05-03 21:41:49 +02:00
if command_name_check(latex_string, "begin") == "Error!":
2023-05-03 20:55:46 +02:00
return "Error!"
return "<html>"
2023-05-03 21:41:49 +02:00
def begin_tabular(latex_string):
r"""
Checks if LaTeX begin tabular method is correct
"""
2023-05-10 18:16:28 +02:00
if generic_checks_command(latex_string) == "Error!":
2023-05-03 21:41:49 +02:00
return "Error!"
if command_name_check(latex_string, "begin") == "Error!":
return "Error!"
return "<table>"
def tabular_parameters(latex_string):
r"""
Checks if LaTeX tabular environment has any parameters
"""
if latex_string == "":
return ""
if latex_string == "[]":
return ""
return "Error!"
2023-05-10 18:16:28 +02:00
def tabular_columns_parameters(latex_string):
if generic_checks(latex_string) == "Error!":
return "Error!"
return latex_string
def length_conversions(latex_length):
length_dictionary = {
"pt": [1.3, "px"],
"mm": [1, "mm"],
"cm": [1, "cm"],
"in": [1, "in"],
"ex": [1, "ex"],
"em": [1, "em"],
}
return length_dictionary.get(latex_length, "Error!")
def parameter_arguments(latex_string):
return latex_string
2023-05-03 20:29:08 +02:00
if __name__ == "__main__":
document_class("")