generate-param-doc-tooltips.py 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. """
  2. Grab all parameter files (markdown) and convert them to html files
  3. """
  4. import os
  5. import glob
  6. import markdown
  7. parameterDocsFolder = "AI-on-the-edge-device-docs/param-docs/parameter-pages"
  8. docsMainFolder = "../../sd-card/html"
  9. configPage = "edit_config_param.html"
  10. htmlTooltipPrefix = """
  11. <div class="rst-content"><div class="tooltip"><img src="help.png" width="32px"><span class="tooltiptext">
  12. """
  13. htmlTooltipSuffix = """
  14. </span></div></div>
  15. """
  16. folders = sorted( filter( os.path.isdir, glob.glob(parameterDocsFolder + '/*') ) )
  17. def generateHtmlTooltip(section, parameter, markdownFile):
  18. # print(section, parameter, markdownFile)
  19. with open(markdownFile, 'r') as markdownFileHandle:
  20. markdownFileContent = markdownFileHandle.read()
  21. markdownFileContent = markdownFileContent.replace("# ", "### ") # Move all headings 2 level down
  22. htmlTooltip = markdown.markdown(markdownFileContent, extensions=['admonition'])
  23. # Make all links to be opened in a new page
  24. htmlTooltip = htmlTooltip.replace("a href", "a target=_blank href")
  25. # Add custom styles
  26. htmlTooltip = htmlTooltip.replace("<h3>", "<h3 style=\"margin: 0\">")
  27. # Update image paths and copy images to right folder
  28. if "../img/" in htmlTooltip:
  29. htmlTooltip = htmlTooltip.replace("../img/", "/")
  30. htmlTooltip = htmlTooltipPrefix + htmlTooltip + htmlTooltipSuffix
  31. # Add the tooltip to the config page
  32. with open(docsMainFolder + "/" + configPage, 'r') as configPageHandle:
  33. configPageContent = configPageHandle.read()
  34. # print("replacing $TOOLTIP_" + section + "_" + parameter + " with the tooltip content...")
  35. configPageContent = configPageContent.replace("<td>$TOOLTIP_" + section + "_" + parameter + "</td>", "<td>" + htmlTooltip + "</td>")
  36. with open(docsMainFolder + "/" + configPage, 'w') as configPageHandle:
  37. configPageHandle.write(configPageContent)
  38. print("Generating Tooltips...")
  39. """
  40. Generate a HTML tooltip for each markdown page
  41. """
  42. for folder in folders:
  43. folder = folder.split("/")[-1]
  44. files = sorted(filter(os.path.isfile, glob.glob(parameterDocsFolder + "/" + folder + '/*')))
  45. for file in files:
  46. if not ".md" in file: # Skip non-markdown files
  47. continue
  48. parameter = file.split("/")[-1].replace(".md", "")
  49. parameter = parameter.replace("<", "").replace(">", "")
  50. generateHtmlTooltip(folder, parameter, file)
  51. """
  52. Copy images to main folder
  53. """
  54. os.system("cp " + parameterDocsFolder + "/img/* " + docsMainFolder + "/")