@@ -34,55 +34,51 @@ def output_markdown(processed, output_base_path):
3434 :param output_base_path: Pathlib object for base path of output
3535 """
3636 packages = sum (len (v ) for v in processed .values ())
37- top_page = open (output_base_path / 'index.md' , 'w' )
38- top_page .write (MKDOCS_SEARCH_PRIORITY )
39- top_page .write ("# List of supported software\n \n " )
40- top_page .write (f"EasyBuild supports { packages } different software packages (incl. toolchains, bundles):\n \n " )
41-
42- for letter in processed :
43- top_page .write (f" * [{ letter } ]({ letter } /index.md)\n " )
44-
45- letter_dir = output_base_path / letter
46- letter_dir .mkdir ()
47- letter_page = open (letter_dir / 'index.md' , 'w' )
48- letter_page .write (MKDOCS_SEARCH_PRIORITY )
49- letter_page .write (f"# List of supported software ({ letter } )\n \n " )
50- letter_page .write (generate_character_links_line ([v for v in processed ], current = letter ))
51-
52- for software in processed [letter ]:
53- top_page .write (f" * [{ software } ]({ letter } /{ software } .md)\n " )
54- letter_page .write (f" * [{ software } ]({ software } .md)\n " )
55-
56- versionsuffix = any (v ['versionsuffix' ] for v in processed [letter ][software ])
57-
58- software_page = open (letter_dir / f'{ software } .md' , 'w' )
59- software_page .write (MKDOCS_SEARCH_PRIORITY )
60- software_page .write (f"# { software } \n \n " )
61- software_page .write (f"{ processed [letter ][software ][0 ]['description' ]} \n \n " )
62- software_page .write (f"*homepage*: <{ processed [letter ][software ][0 ]['homepage' ]} >\n \n " )
63-
64- if versionsuffix :
65- software_page .write ("version | versionsuffix | toolchain\n " )
66- software_page .write ("--------|---------------|----------\n " )
67- else :
68- software_page .write ("version | toolchain\n " )
69- software_page .write ("--------|----------\n " )
70-
71- for version in processed [letter ][software ]:
72- software_page .write (f"``{ version ['version' ]} `` | " )
73- if versionsuffix :
74- if version ['versionsuffix' ]:
75- software_page .write (f"``{ version ['versionsuffix' ]} ``" )
76- software_page .write (" | " )
77- software_page .write (f"``{ version ['toolchain' ]} ``\n " )
78-
79- software_page .write ('\n ' )
80- software_page .write (generate_character_links_line ([v for v in processed ]))
81- software_page .close ()
82-
83- letter_page .close ()
84-
85- top_page .close ()
37+
38+ with open (output_base_path / 'index.md' , 'w' ) as top_page :
39+ top_page .write (MKDOCS_SEARCH_PRIORITY )
40+ 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 " )
42+
43+ for letter in processed :
44+ top_page .write (f" * [{ letter } ]({ letter } /index.md)\n " )
45+
46+ letter_dir = output_base_path / letter
47+ letter_dir .mkdir ()
48+ with open (letter_dir / 'index.md' , 'w' ) as letter_page :
49+ letter_page .write (MKDOCS_SEARCH_PRIORITY )
50+ 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 ))
52+
53+ for software in processed [letter ]:
54+ top_page .write (f" * [{ software } ]({ letter } /{ software } .md)\n " )
55+ letter_page .write (f" * [{ software } ]({ software } .md)\n " )
56+
57+ versionsuffix = any (v ['versionsuffix' ] for v in processed [letter ][software ])
58+
59+ with open (letter_dir / f'{ software } .md' , 'w' ) as software_page :
60+ software_page .write (MKDOCS_SEARCH_PRIORITY )
61+ software_page .write (f"# { software } \n \n " )
62+ software_page .write (f"{ processed [letter ][software ][0 ]['description' ]} \n \n " )
63+ software_page .write (f"*homepage*: <{ processed [letter ][software ][0 ]['homepage' ]} >\n \n " )
64+
65+ if versionsuffix :
66+ software_page .write ("version | versionsuffix | toolchain\n " )
67+ software_page .write ("--------|---------------|----------\n " )
68+ else :
69+ software_page .write ("version | toolchain\n " )
70+ software_page .write ("--------|----------\n " )
71+
72+ for version in processed [letter ][software ]:
73+ software_page .write (f"``{ version ['version' ]} `` | " )
74+ if versionsuffix :
75+ if version ['versionsuffix' ]:
76+ software_page .write (f"``{ version ['versionsuffix' ]} ``" )
77+ software_page .write (" | " )
78+ software_page .write (f"``{ version ['toolchain' ]} ``\n " )
79+
80+ software_page .write ('\n ' )
81+ software_page .write (generate_character_links_line ([v for v in processed ]))
8682
8783
8884def generate_markdown_pages (jsonfile , output_base , delete_existing ):
0 commit comments