dokuwiki-to-hugo/src/dokuwiki_to_hugo.py

46 lines
1.4 KiB
Python
Raw Normal View History

2017-01-15 15:52:25 +01:00
import os
import shutil
from src.hugo_file_config import HugoFileConfig
from src.markdown_converter import MarkdownConverter
class DokuWikiToHugo:
root_dir = ""
2017-01-15 15:52:25 +01:00
def __init__(self, root = None):
2017-01-15 15:52:25 +01:00
self.header_converter = HugoFileConfig()
DokuWikiToHugo.root_dir = root
2017-01-15 15:52:25 +01:00
pass
def create_output_dir(self):
if os.path.exists('output'):
print('output already exists, deleting old conversion stuff')
shutil.rmtree('output')
os.mkdir('output')
def doku_to_hugo(self, dir):
self.create_output_dir()
for root, subFolders, files in os.walk(dir):
files = [f for f in files if not f[0] == '.']
2017-01-15 15:52:25 +01:00
for file in files:
self.process_file(root, file)
def process_file(self, root, file):
destination_dir = 'output/' + root
source_file = root + '/' + file
2017-01-16 16:37:58 +01:00
destination_file = '_index.md' if file == 'home.txt' else os.path.splitext(file)[0] + '.md'
print('generating ' + destination_dir + '/' + destination_file + '\n')
2017-01-15 15:52:25 +01:00
if not os.path.exists(destination_dir):
os.makedirs(destination_dir)
header = self.header_converter.create(source_file)
converted_text = MarkdownConverter(source_file).convert()
2017-01-16 16:37:58 +01:00
with open(destination_dir + '/' + destination_file, "w") as text_file:
2017-01-15 15:52:25 +01:00
text_file.write(header)
text_file.write('\n')
text_file.write(converted_text)