Skip to content
Snippets Groups Projects
Commit f2a6c36b authored by Andreas Kraft's avatar Andreas Kraft Committed by Miguel Angel Reina Ortega
Browse files

Made adding the title to the navigation as an extra navigation level optional (default: false)

parent 44629598
No related branches found
No related tags found
No related merge requests found
...@@ -422,13 +422,14 @@ def updateNotes(clauses:list[Clause]) -> list[Clause]: ...@@ -422,13 +422,14 @@ def updateNotes(clauses:list[Clause]) -> list[Clause]:
return clauses return clauses
def writeClauses(outClauses:list[Clause], filename:str, navTitle:str) -> None: def writeClauses(outClauses:list[Clause], filename:str, navTitle:str, addNavTitle:bool = False) -> None:
""" Write the clauses to separate files and create a navigation file. """ Write the clauses to separate files and create a navigation file.
Args: Args:
outClauses: The list of clauses. outClauses: The list of clauses.
filename: The name of the original markdown file. filename: The name of the original markdown file.
navTitle: The title of the navigation entry. This is used to determine the directories. navTitle: The title of the navigation entry. This is used to determine the directories.
addNavTitle: Add the title as an extra navigation level to the navigation file.
""" """
print(f'[green]Writing clauses to files') print(f'[green]Writing clauses to files')
...@@ -446,10 +447,12 @@ def writeClauses(outClauses:list[Clause], filename:str, navTitle:str) -> None: ...@@ -446,10 +447,12 @@ def writeClauses(outClauses:list[Clause], filename:str, navTitle:str) -> None:
# write nav.yml file # write nav.yml file
print(f'[green]Writing "_nav.yml"') print(f'[green]Writing "_nav.yml"')
indentation = ' ' if addNavTitle else '' # TODO make number of spaces configurable
with open(f'{os.path.dirname(filename)}/_nav.yml', 'w') as file: with open(f'{os.path.dirname(filename)}/_nav.yml', 'w') as file:
if veryVerbose: if veryVerbose:
print(f'[dim]Writing navigation file') print(f'[dim]Writing navigation file')
#file.write(f' - {navTitle}:\n') if addNavTitle:
file.write(f'{indentation}- {navTitle}:\n')
for i, f in enumerate(outClauses): for i, f in enumerate(outClauses):
# TODO generate also the navigation for the first non-header clause # TODO generate also the navigation for the first non-header clause
...@@ -466,11 +469,11 @@ def writeClauses(outClauses:list[Clause], filename:str, navTitle:str) -> None: ...@@ -466,11 +469,11 @@ def writeClauses(outClauses:list[Clause], filename:str, navTitle:str) -> None:
_title = f.title.replace("'", '"') _title = f.title.replace("'", '"')
nextClause = outClauses[i+1] if i+1 < len(outClauses) else None nextClause = outClauses[i+1] if i+1 < len(outClauses) else None
if nextClause is None or nextClause.level <= f.level: if nextClause is None or nextClause.level <= f.level:
file.write(f"{' '*f.level}- '{_title}': '{navTitle}/{f.clauseNumber}.md'\n") file.write(f"{indentation}{' '*f.level}- '{_title}': '{navTitle}/{f.clauseNumber}.md'\n")
else: else:
file.write(f"{' '*f.level}- '{_title}':\n") file.write(f"{indentation}{' '*f.level}- '{_title}':\n")
if len(f) > 0: if len(f) > 0:
file.write(f"{' '*nextClause.level}- 'Introduction': '{navTitle}/{f.clauseNumber}.md'\n") file.write(f"{indentation}{' '*nextClause.level}- 'Introduction': '{navTitle}/{f.clauseNumber}.md'\n")
def copyMediaFiles(filename:str, navTitle:str, mediaDirectory:str = 'media') -> None: def copyMediaFiles(filename:str, navTitle:str, mediaDirectory:str = 'media') -> None:
...@@ -510,7 +513,7 @@ def processDocument(args:argparse.Namespace) -> None: ...@@ -510,7 +513,7 @@ def processDocument(args:argparse.Namespace) -> None:
clauses = prepareForMkdocs(clauses, args.include_hanging_paragraphs) clauses = prepareForMkdocs(clauses, args.include_hanging_paragraphs)
# Write the clauses to files # Write the clauses to files
writeClauses(clauses, document, args.title) writeClauses(clauses, document, args.title, args.nav_add_title)
# Copy the media files # Copy the media files
copyMediaFiles(document, args.title, args.media_directory) copyMediaFiles(document, args.title, args.media_directory)
...@@ -528,6 +531,8 @@ if __name__ == '__main__': ...@@ -528,6 +531,8 @@ if __name__ == '__main__':
parser.add_argument('--split-level', '-sl', metavar = 'level', type = int, default = 2, help = 'on which level to split clauses to separate files') parser.add_argument('--split-level', '-sl', metavar = 'level', type = int, default = 2, help = 'on which level to split clauses to separate files')
parser.add_argument('--media-directory', '-md', metavar = 'media-directory', default = 'media', help = 'directory name where media files are stored') parser.add_argument('--media-directory', '-md', metavar = 'media-directory', default = 'media', help = 'directory name where media files are stored')
parser.add_argument('--title', '-t', metavar = 'title', required = True, help = 'mkdocs navigation tile') parser.add_argument('--title', '-t', metavar = 'title', required = True, help = 'mkdocs navigation tile')
parser.add_argument('--nav-add-title', '-nat', action = 'store_true', default = False, help = 'add the title as an extra navigation level to the navigation file')
parser.add_argument('document', type = str, help = 'a oneM2M markdown specification document to process') parser.add_argument('document', type = str, help = 'a oneM2M markdown specification document to process')
args = parser.parse_args() args = parser.parse_args()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment