Skip to content

Commit 16239ac

Browse files
committed
mutualising code
1 parent cc59944 commit 16239ac

File tree

2 files changed

+15
-15
lines changed

2 files changed

+15
-15
lines changed

arkdoc/generator/base.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#!/usr/bin/env python3
22

3+
import shutil
34
import os
45
from typing import List
56
from pathlib import Path
@@ -11,12 +12,15 @@
1112

1213

1314
class Generator:
14-
def __init__(self, parsers: List[Parser], template_folder: Path, pattern: str):
15+
def __init__(self, parsers: List[Parser], template_folder: Path, pattern: str, output: str, ark_version: str):
1516
self.template_folder = template_folder
1617
self.templates = {
1718
file.name: file.read_text("utf-8")
1819
for file in template_folder.glob(pattern)
1920
}
21+
self.version = ark_version
22+
self.output_path = Path(output)
23+
self.output_path_ver = self.output_path / self.version
2024
self.list = spec.FileList([])
2125
self._create_files_list(parsers)
2226

@@ -44,6 +48,12 @@ def generate_one(self, path: str, functions: List[spec.Function]):
4448
raise NotImplementedError
4549

4650
def __call__(self):
51+
if not self.output_path_ver.exists():
52+
self.output_path_ver.mkdir(parents=True)
53+
else:
54+
shutil.rmtree(str(self.output_path_ver))
55+
return self.__call__()
56+
4757
self.generate_index()
4858

4959
for file in self.list.files:

arkdoc/generator/html.py

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
#!/usr/bin/env python3
22

3-
import re
4-
from datetime import datetime
53
import shutil
4+
from datetime import datetime
65
from typing import List
76
from pprint import pformat
87
from pathlib import Path
@@ -92,25 +91,16 @@ def h4(name: str) -> str:
9291

9392
class HTMLGenerator(Generator):
9493
def __init__(self, parsers: List[Parser], output: str, ark_version: str):
95-
super().__init__(parsers, spec.HTML_TEMPLATE_FOLDER, "*.html")
96-
97-
self.version = ark_version
98-
self.output_path = Path(output)
99-
self.output_path_ver = self.output_path / self.version
94+
super().__init__(parsers, spec.HTML_TEMPLATE_FOLDER, "*.html", output, ark_version)
10095

10196
self.footer = f"<i>Last generation at {datetime.now()}</i>"
10297

10398
def create_dir(self, name: str):
10499
(self.output_path / name).mkdir()
105100

106101
def generate_index(self):
107-
if not self.output_path_ver.exists():
108-
if not (self.template_folder / "assets").exists():
109-
shutil.copytree(str(self.template_folder / "assets"), str(self.output_path / "assets"))
110-
self.output_path_ver.mkdir()
111-
else:
112-
shutil.rmtree(str(self.output_path_ver))
113-
return self.generate_index()
102+
if not (self.output_path / "assets").exists():
103+
shutil.copytree(str(self.template_folder / "assets"), str(self.output_path / "assets"))
114104

115105
sections = html.section(
116106
f"ArkScript {self.version} documentation",

0 commit comments

Comments
 (0)