Skip to content

Commit

Permalink
man: allow register all addons keywords in main Keywords Index (OSGeo…
Browse files Browse the repository at this point in the history
  • Loading branch information
tmszi committed Sep 9, 2022
1 parent bf0c12f commit 521655d
Showing 1 changed file with 52 additions and 7 deletions.
59 changes: 52 additions & 7 deletions man/build_keywords.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,22 @@
#!/usr/bin/env python3

# generates keywords.html
# (c) 2013 by the GRASS Development Team, Luca Delucchi
"""
Generates keywords.html file for core and optionally for addons modules.
Usage:
Generate core modules keywords HTML page
python man/build_keywords.py <path_to_core_modules_html_man_files>
Generate core modules and optionally inject addons keywords HTML page
python man/build_keywords.py <dir_path_to_core_modules_html_man_files>
<dir_path_to_addons_modules_html_man_files>
@author Luca Delucchi
@author Tomas Zigo <tomas.zigo slovanet.sk> - inject addons modules keywords
"""

import os
import sys
Expand All @@ -22,18 +37,45 @@
]

path = sys.argv[1]
addons_path = None
if len(sys.argv) >= 3:
addons_path = sys.argv[2]

year = os.getenv("VERSION_DATE")

keywords = {}

htmlfiles = glob.glob1(path, "*.html")
htmlfiles = glob.glob(os.path.join(path, "*.html"))
if addons_path:
addons_man_files = glob.glob(os.path.join(addons_path, "*.html"))
htmlfiles.extend(addons_man_files)

char_list = {}

for fname in htmlfiles:
fil = open(os.path.join(path, fname))

def get_module_man_html_file_path(module):
"""Get module manual HTML file path
:param str module: module manual HTML file name e.g. v.surf.rst.html
:return str module_path: core/addon module manual HTML file path
"""
if addons_path and module in ",".join(addons_man_files):
module_path = os.path.join(addons_path, module)
module_path = module_path.replace(
os.path.commonpath([path, module_path]),
".",
)
else:
module_path = os.path.join(path, module)
return module_path


for html_file in htmlfiles:
fname = os.path.basename(html_file)
with open(html_file) as f:
lines = f.readlines()
# TODO maybe move to Python re (regex)
lines = fil.readlines()
# remove empty lines
lines = [x for x in lines if x != "\n"]
try:
Expand Down Expand Up @@ -95,7 +137,10 @@
key,
)
for value in sorted(keywords[key]):
keyword_line += ' <a href="%s">%s</a>,' % (value, value.replace(".html", ""))
keyword_line += (
f' <a href="{get_module_man_html_file_path(value)}">'
f'{value.replace(".html", "")}</a>,'
)
keyword_line = keyword_line.rstrip(",")
keyword_line += "</dd>\n"
keywordsfile.write(keyword_line)
Expand Down

0 comments on commit 521655d

Please sign in to comment.