import argparse
import re
def split_paragraphs_awfully(line: str) -> str:
num_separators = 20
done = False
split_lines = []
index = 0
while not done:
splita = line.split(' ')
if len(splita[index:index+num_separators]) < num_separators:
done = True
split_lines.append(' '.join(splita[index:index+num_separators]))
index = index + num_separators
return '\n '.join(split_lines)
def sub_header(match) -> str:
return f"""
{split_paragraphs_awfully(paragraph)}
""" def main(input_file: str, output_file: str): with open(input_file, 'r') as f: file = f.readlines() for line in file: line = re.sub(r"\#\# (.*)", sub_header, line) if len(line) > 5 and line[0] != "!" and line[0] != "<": line = format_paragraph(line) line = re.sub(r"\*(.*)\*]", sub_italics, line) line = re.sub(r"\!\[\[(.*)\]\]", sub_img, line) line = re.sub(r"\[(.*?)\]\((.*?)\)", sub_link, line) print(line) if __name__ == '__main__': parser = argparse.ArgumentParser( prog='Obsidian to HTML', description='Converts an obsidian markdown file to html for the blog', ) parser.add_argument('input_file') parser.add_argument('output_file') args = parser.parse_args() main(args.input_file, args.output_file)