Skip to content
This repository was archived by the owner on May 11, 2022. It is now read-only.

Commit 4cf8a48

Browse files
authored
Fixed Several Issues With README Generation (#33)
* Fixed program sorting issue * Fixed an issue with the way language names display * Added readable language function * Updated version
1 parent 25b212e commit 4cf8a48

File tree

4 files changed

+30
-6
lines changed

4 files changed

+30
-6
lines changed

generate_docs/generator.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,4 @@ def main_readmes():
6464

6565
if __name__ == '__main__':
6666
main_wiki()
67+
main_readmes()

generate_docs/readme.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33

44

55
def _get_intro_text(language: LanguageCollection) -> str:
6-
introduction = f"Welcome to Sample Programs in {language.name.capitalize()}!"
7-
docs = f"""To find documentation related to the {language.name.capitalize()}
6+
introduction = f"Welcome to Sample Programs in {language.get_readable_name()}!"
7+
docs = f"""To find documentation related to the {language.get_readable_name()}
88
code in this repo, look [here]({language.sample_program_url}).
99
"""
1010
interlude_valid = "Otherwise, below you'll find a list of code snippets in this collection."
@@ -30,7 +30,7 @@ def _generate_program_list(language: LanguageCollection) -> list:
3030
list_items = list()
3131
for program in language.sample_programs:
3232
readable_name = program.normalized_name.replace("-", " ").title()
33-
doc_link = build_doc_link(program, f"{readable_name} in {program.language.capitalize()}")
33+
doc_link = build_doc_link(program, f"{readable_name} in {language.get_readable_name()}")
3434
list_items.append(f"- {doc_link}")
3535
return list_items
3636

@@ -56,7 +56,7 @@ def _build_readme(self, language: LanguageCollection) -> None:
5656
:return: None
5757
"""
5858
page = MarkdownPage("README")
59-
page.add_content(f"# Sample Programs in {language.name.capitalize()}")
59+
page.add_content(f"# Sample Programs in {language.get_readable_name()}")
6060
page.add_section_break()
6161
page.add_content(_get_intro_text(language))
6262
page.add_section_break()

generate_docs/repo.py

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ class LanguageCollection:
8383
def __init__(self, name: str, path: str, file_list: list[str]) -> None:
8484
"""
8585
Constructs an instance of LanguageCollection.
86-
:param name: the name of the language (e.g., Python)
86+
:param name: the name of the language (e.g., python)
8787
:param path: the path of the language (e.g., .../archive/p/python/)
8888
:param file_list: the list of files in language collection
8989
"""
@@ -100,6 +100,7 @@ def __init__(self, name: str, path: str, file_list: list[str]) -> None:
100100
self._collect_sample_programs()
101101
self._analyze_language_collection()
102102
self._generate_urls()
103+
self._organize_collection()
103104

104105
def __str__(self) -> str:
105106
return self.name + ";" + str(self.total_snippets) + ";" + str(self.total_dir_size)
@@ -131,6 +132,28 @@ def _analyze_language_collection(self) -> None:
131132
def _generate_urls(self) -> None:
132133
self.sample_program_url = f"https://sample-programs.therenegadecoder.com/languages/{self.name}"
133134

135+
def _organize_collection(self):
136+
self.sample_programs.sort(key=lambda program: program.language.casefold())
137+
138+
def get_readable_name(self):
139+
"""
140+
Generates as close to the proper language name as possible given a language
141+
name in plain text separated by hyphens
142+
EX: google-apps-script -> Google Apps Script
143+
EX: c-sharp -> C#
144+
:return: a readable representation of the language name
145+
"""
146+
text_to_symbol = {
147+
"plus": "+",
148+
"sharp": "#",
149+
"star": r"\*"
150+
}
151+
tokens = [text_to_symbol.get(token, token) for token in self.name.split("-")]
152+
if any(token in text_to_symbol.values() for token in tokens):
153+
return "".join(tokens).title()
154+
else:
155+
return " ".join(tokens).title()
156+
134157

135158
class SampleProgram:
136159
"""

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
setuptools.setup(
77
name="generate_docs",
8-
version="2.0.0",
8+
version="2.0.2",
99
author="The Renegade Coder",
1010
author_email="jeremy.grifski@therenegadecoder.com",
1111
description="A docs generation package for the Sample Programs repo",

0 commit comments

Comments
 (0)