23 lines
738 B
Python
23 lines
738 B
Python
from src.markdown_headers import MarkdownHeader
|
|
from src.markdown_links import MarkdownLinks
|
|
from functools import reduce
|
|
|
|
class MarkdownConverter:
|
|
|
|
def __init__(self, file):
|
|
self.file = file
|
|
self.converters = (MarkdownHeader(), MarkdownLinks())
|
|
|
|
def convert(self):
|
|
converted = []
|
|
with open(self.file, 'r') as file:
|
|
for line in file:
|
|
converted.append(self.convert_line(line))
|
|
|
|
return "\n".join(converted)
|
|
|
|
def convert_line(self, line):
|
|
convertfns = map(lambda converter: converter.convert, self.converters)
|
|
massconvert = reduce(lambda red1, red2: lambda text: red1(red2(line)), convertfns, lambda text: text)
|
|
return massconvert(line)
|