diff --git a/mkdoxy/generatorSnippets.py b/mkdoxy/generatorSnippets.py index b85731af..f3b24a5d 100644 --- a/mkdoxy/generatorSnippets.py +++ b/mkdoxy/generatorSnippets.py @@ -59,53 +59,59 @@ def generate(self): if self.is_doxy_inactive(self.config): return self.markdown # doxygen is inactive return unchanged markdown - matches = re.finditer(regexIncorrect, self.markdown, re.MULTILINE) - for match in reversed(list(matches)): - snippet = match.group() - project_name = match.group("project") or "" - - snippet_config = self.config.copy() - snippet_config.update(self.try_load_yaml(match.group("yaml"), project_name, snippet, self.config)) - - if self.is_doxy_inactive(snippet_config): - continue - - replacement = ( - self.incorrect_argument(project_name, "", snippet_config, snippet) - if self.is_project_exist(project_name) - else self.incorrect_project(project_name, snippet_config, snippet) - ) - self.replace_markdown(match.start(), match.end(), replacement) - - matches = re.finditer(regexShort, self.markdown, re.MULTILINE) - for match in reversed(list(matches)): - snippet = match.group() - argument = match.group("argument").lower() - project_name = match.group("project") - - snippet_config = self.config.copy() - snippet_config.update(self.try_load_yaml(match.group("yaml"), project_name, snippet, self.config)) - - if self.is_doxy_inactive(snippet_config): - continue - - replaceStr = self.call_doxy_by_name(snippet, project_name, argument, snippet_config) - self.replace_markdown(match.start(), match.end(), replaceStr) + try: + matches = re.finditer(regexIncorrect, self.markdown, re.MULTILINE) + for match in reversed(list(matches)): + snippet = match.group() + project_name = match.group("project") or "" - matches = re.finditer(regexLong, self.markdown, re.MULTILINE) - for match in reversed(list(matches)): - snippet = match.group() - argument = match.group("argument").lower() - project_name = match.group("project") - # log.debug(f"\nArgument: {argument}") + snippet_config = self.config.copy() + snippet_config.update(self.try_load_yaml(match.group("yaml"), project_name, snippet, self.config)) - # config has been updated by yaml - snippet_config = self.config.copy() - snippet_config.update(self.try_load_yaml(match.group("yaml"), project_name, snippet, self.config)) + if self.is_doxy_inactive(snippet_config): + continue - replaceStr = self.call_doxy_by_name(snippet, project_name, argument, snippet_config) - self.replace_markdown(match.start(), match.end(), replaceStr) - return self.markdown + replacement = ( + self.incorrect_argument(project_name, "", snippet_config, snippet) + if self.is_project_exist(project_name) + else self.incorrect_project(project_name, snippet_config, snippet) + ) + self.replace_markdown(match.start(), match.end(), replacement) + + matches = re.finditer(regexShort, self.markdown, re.MULTILINE) + for match in reversed(list(matches)): + snippet = match.group() + argument = match.group("argument").lower() + project_name = match.group("project") + + snippet_config = self.config.copy() + snippet_config.update(self.try_load_yaml(match.group("yaml"), project_name, snippet, self.config)) + + if self.is_doxy_inactive(snippet_config): + continue + + replaceStr = self.call_doxy_by_name(snippet, project_name, argument, snippet_config) + self.replace_markdown(match.start(), match.end(), replaceStr) + + matches = re.finditer(regexLong, self.markdown, re.MULTILINE) + for match in reversed(list(matches)): + snippet = match.group() + argument = match.group("argument").lower() + project_name = match.group("project") + # log.debug(f"\nArgument: {argument}") + + # config has been updated by yaml + snippet_config = self.config.copy() + snippet_config.update(self.try_load_yaml(match.group("yaml"), project_name, snippet, self.config)) + + replaceStr = self.call_doxy_by_name(snippet, project_name, argument, snippet_config) + self.replace_markdown(match.start(), match.end(), replaceStr) + return self.markdown + except Exception as e: + basename = pathlib.Path(__file__).name + log.error(f"Error in {self.page.url} page. Incorrect doxy snippet or error in file {basename}") + log.error(f"Error: {e}") + return self.markdown def try_load_yaml(self, yaml_raw: str, project: str, snippet: str, config: dict) -> dict: try: @@ -378,8 +384,8 @@ def doxyNodeIsNone(self, project: str, config: dict, snippet: str) -> str: return self.doxyError( project, config, - "Node is None", - "Node is None", + f"Could not find coresponding snippet for project {project}", + f"Config: {config}", "yaml", snippet, ) diff --git a/setup.py b/setup.py index 917726cb..c67bbc7a 100755 --- a/setup.py +++ b/setup.py @@ -14,7 +14,7 @@ def requirements(): # https://pypi.org/project/mkdoxy/ setup( name="mkdoxy", - version="1.2.2", + version="1.2.3", description="MkDoxy → MkDocs + Doxygen = easy documentation generator with code snippets", long_description=readme(), long_description_content_type="text/markdown",