Skip to content

Commit a3e156e

Browse files
committed
tweak quick links like + add it to top + bottom of software overview pages
1 parent c79e934 commit a3e156e

File tree

1 file changed

+20
-11
lines changed

1 file changed

+20
-11
lines changed

docs/version-specific/software-markdown-pages.py

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,22 @@
1313
"""
1414

1515

16-
def generate_character_links_line(characters, current=None):
16+
def generate_quick_links_line(chars, level, current=None):
1717
"""
1818
Generate links to index page for each character
1919
:param characters: Initial characters to generate links for
2020
"""
21+
up = '/'.join(['..'] * level) or '.'
2122
links = []
22-
for c in characters:
23-
if c == current:
24-
links.append(f'*{c}*')
23+
if level > 0:
24+
links.append(f"[(all)]({up}/index.md)")
25+
for char in chars:
26+
if char == current:
27+
links.append(f'*{char}*')
2528
else:
26-
links.append(f"[{c}](../{c}/index.md)")
27-
return f"{' - '.join(links)}\n\n"
29+
links.append(f"[{char}]({up}/{char}/index.md)")
30+
links_txt = ' - '.join(links)
31+
return f"*(quick links: {links_txt})*\n\n"
2832

2933

3034
def output_markdown(processed, output_base_path):
@@ -33,12 +37,14 @@ def output_markdown(processed, output_base_path):
3337
:param processed: Processed data to output (dictionary - letter -> software -> list of versions)
3438
:param output_base_path: Pathlib object for base path of output
3539
"""
36-
packages = sum(len(v) for v in processed.values())
40+
software_cnt = sum(len(v) for v in processed.values())
41+
letters = sorted(processed.keys())
3742

3843
with open(output_base_path / 'index.md', 'w') as top_page:
3944
top_page.write(MKDOCS_SEARCH_PRIORITY)
4045
top_page.write("# List of supported software\n\n")
41-
top_page.write(f"EasyBuild supports {packages} different software packages (incl. toolchains, bundles):\n\n")
46+
top_page.write(generate_quick_links_line(letters, 0))
47+
top_page.write(f"EasyBuild supports {software_cnt} different software packages (incl. toolchains, bundles):\n\n")
4248

4349
for letter in processed:
4450
top_page.write(f" * [{letter}]({letter}/index.md)\n")
@@ -48,7 +54,7 @@ def output_markdown(processed, output_base_path):
4854
with open(letter_dir / 'index.md', 'w') as letter_page:
4955
letter_page.write(MKDOCS_SEARCH_PRIORITY)
5056
letter_page.write(f"# List of supported software ({letter})\n\n")
51-
letter_page.write(generate_character_links_line([v for v in processed], current=letter))
57+
letter_page.write(generate_quick_links_line(letters, 1, current=letter) + "\n\n")
5258

5359
for software in processed[letter]:
5460
top_page.write(f" * [{software}]({letter}/{software}.md)\n")
@@ -77,8 +83,11 @@ def output_markdown(processed, output_base_path):
7783
software_page.write(" | ")
7884
software_page.write(f"``{version['toolchain']}``\n")
7985

80-
software_page.write('\n')
81-
software_page.write(generate_character_links_line([v for v in processed]))
86+
software_page.write("\n\n" + generate_quick_links_line(letters, 1))
87+
88+
letter_page.write("\n\n" + generate_quick_links_line(letters, 1, current=letter))
89+
90+
top_page.write("\n\n" + generate_quick_links_line(letters, 0))
8291

8392

8493
def generate_markdown_pages(jsonfile, output_base, delete_existing):

0 commit comments

Comments
 (0)