Skip to content

Commit e74f719

Browse files
committed
adding a root-dir parameter so that we can generate the output wherever we want
1 parent dbdc9b9 commit e74f719

File tree

6 files changed

+31
-28
lines changed

6 files changed

+31
-28
lines changed

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,4 @@ jobs:
3434
- run: pip install -r requirements.txt
3535
- run: |
3636
export ARKDOC_LOGLEVEL=DEBUG
37-
python -m arkdoc 3.1.0 std-latest/ --builtins ark-latest/src/Builtins --html out || exit 1
37+
python -m arkdoc 3.1.0 std-latest/ ark-latest/src/Builtins --html out || exit 1

arkdoc/__main__.py

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,17 @@
1717
def compute(args) -> bool:
1818
global logger
1919

20-
if not os.path.exists(args.source_folder):
21-
logger.error(f"Folder `${args.source_folder}` does not exists")
22-
return False
20+
for folder in args.source_folder:
21+
if not os.path.exists(folder):
22+
logger.error(f"Folder `{folder}` does not exists")
23+
return False
2324

2425
if args.dry_run:
2526
logger.level = LogLevel.DEBUG
2627

27-
parsers = parse_all_in(args.source_folder)
28-
if args.builtins:
29-
parsers += parse_all_in(args.builtins)
28+
parsers = []
29+
for folder in args.source_folder:
30+
parsers += parse_all_in(folder)
3031
for p in parsers:
3132
logger.info(f"Parsing {p.filename}...")
3233
p.parse()
@@ -36,7 +37,7 @@ def compute(args) -> bool:
3637

3738
if not args.dry_run:
3839
if args.html:
39-
gen = HTMLGenerator(parsers, args.html, args.ark_version)
40+
gen = HTMLGenerator(parsers, args.html, args.ark_version, args.root_dir)
4041
gen()
4142
else:
4243
logger.error("Missing generator!")
@@ -49,17 +50,15 @@ def main() -> int:
4950
cli = argparse.ArgumentParser(description="ArkScript Documentation generator")
5051
cli.add_argument("ark_version", type=str, help="ArkScript version number, eg 3.1.0")
5152
cli.add_argument(
52-
"source_folder", type=str, help="Path to the ArkScript source folder"
53-
)
54-
cli.add_argument(
55-
"--builtins", type=str, help="Path to the builtins folder", default=None
53+
"source_folder", type=str, help="Path to the ArkScript source folder", nargs="+"
5654
)
5755
cli.add_argument(
5856
"--dry-run",
5957
action="store_true",
6058
help="Run and log everything but don't generate any file",
6159
)
6260
cli.add_argument("--html", type=str, help="Output folder for the HTML docs")
61+
cli.add_argument("--root-dir", type=str, default="", help="The root dir for the links")
6362

6463
args = cli.parse_args()
6564

arkdoc/generator/base.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,16 @@ def __init__(
1919
pattern: str,
2020
output: str,
2121
ark_version: str,
22+
root: str,
2223
):
2324
self.template_folder = template_folder
2425
self.templates = {
2526
file.name: file.read_text("utf-8") for file in template_folder.glob(pattern)
2627
}
27-
self.version = ark_version
2828
self.output_path = Path(output)
29+
self.version = ark_version
2930
self.output_path_ver = self.output_path / self.version
31+
self.root = root if root and root[-1] != "/" else root[:-1]
3032
self.list = spec.FileList([])
3133
self._create_files_list(parsers)
3234

arkdoc/generator/html.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,9 @@ def h4(name: str) -> str:
9090

9191

9292
class HTMLGenerator(Generator):
93-
def __init__(self, parsers: List[Parser], output: str, ark_version: str):
93+
def __init__(self, parsers: List[Parser], output: str, ark_version: str, root: str):
9494
super().__init__(
95-
parsers, spec.HTML_TEMPLATE_FOLDER, "*.html", output, ark_version
95+
parsers, spec.HTML_TEMPLATE_FOLDER, "*.html", output, ark_version, root
9696
)
9797

9898
self.footer = f"<i>Last generation at {datetime.now()}</i>"
@@ -111,18 +111,19 @@ def generate_index(self):
111111
f"Welcome! This is the official documentation for ArkScript {self.version}"
112112
+ html.ul(
113113
[
114-
html.a(file.path, f"/{self.version}/{file.path}.html")
114+
html.a(file.path, f"{self.root}/{self.version}/{file.path}.html")
115115
for file in self.list.files
116116
]
117117
),
118118
)
119119

120120
content = self.templates["index.html"]
121121
content = content.format(
122+
root=self.root,
122123
page_title=f"ArkScript {self.version} documentation",
123-
home_link=f"/{self.version}",
124+
home_link=f"{self.root}/{self.version}",
124125
has_banner="has-banner",
125-
banner=self.templates["banner.html"],
126+
banner=self.templates["banner.html"].format(root=self.root),
126127
table_of_content="",
127128
navigation_links="",
128129
sections=sections,
@@ -180,8 +181,9 @@ def generate_one(self, path: str, functions: List[spec.Function]):
180181

181182
content = self.templates["index.html"]
182183
content = content.format(
184+
root = self.root,
183185
page_title=f"{path} - ArkScript {self.version} documentation",
184-
home_link=f"/{self.version}",
186+
home_link=f"{self.root}/{self.version}",
185187
has_banner="",
186188
banner="",
187189
table_of_content=table_of_content,

templates/banner.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<section class="navbar-center">
88
<div class="banner-center">
99
<figure class="figure">
10-
<img class="img-responsive" src="/assets/images/Ark-slim.png" alt="ArkScript">
10+
<img class="img-responsive" src="{root}/assets/images/Ark-slim.png" alt="ArkScript">
1111
<figcaption class="figure-caption navbar-brand">ArkScript</figcaption>
1212
</figure>
1313
</div>

templates/index.html

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
<head>
55
<meta charset="UTF-8">
66
<title>{page_title}</title>
7-
<link rel="stylesheet" href="/assets/css/spectre.min.css" type="text/css">
8-
<link rel="stylesheet" href="/assets/css/spectre-exp.min.css" type="text/css">
9-
<link rel="stylesheet" href="/assets/css/spectre-icons.min.css" type="text/css">
10-
<link rel="stylesheet" href="/assets/css/rainbowjs-theme.css" type="text/css">
11-
<link rel="stylesheet" href="/assets/css/main.css" type="text/css">
7+
<link rel="stylesheet" href="{root}/assets/css/spectre.min.css" type="text/css">
8+
<link rel="stylesheet" href="{root}/assets/css/spectre-exp.min.css" type="text/css">
9+
<link rel="stylesheet" href="{root}/assets/css/spectre-icons.min.css" type="text/css">
10+
<link rel="stylesheet" href="{root}/assets/css/rainbowjs-theme.css" type="text/css">
11+
<link rel="stylesheet" href="{root}/assets/css/main.css" type="text/css">
1212
<meta name="viewport" content="width=device-width, initial-scale=1.0">
1313
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
1414
<link rel="icon" href="/favicon.ico" type="image/x-icon">
@@ -27,7 +27,7 @@
2727
<a href="https://discord.gg/YT5yDwn" target="_blank" class="btn btn-link">Discord</a>
2828
</section>
2929
<section class="navbar-section logo">
30-
<a href="/" class="hide"><img src="/assets/images/Ark-slim.png" alt="ArkScript"></a>
30+
<a href="{root}/" class="hide"><img src="{root}/assets/images/Ark-slim.png" alt="ArkScript"></a>
3131
</section>
3232
</header>
3333

@@ -60,8 +60,8 @@
6060
</footer>
6161

6262
<!-- Rainbow.js for syntax coloring -->
63-
<script src="/assets/js/rainbow.min.js"></script>
64-
<script src="/assets/js/languages/arkscript.js"></script>
63+
<script src="{root}/assets/js/rainbow.min.js"></script>
64+
<script src="{root}/assets/js/languages/arkscript.js"></script>
6565
</body>
6666

6767
</html>

0 commit comments

Comments
 (0)