15becb6a3SPatrick Sananimport shutil 25becb6a3SPatrick Sananimport re 35becb6a3SPatrick Sananimport os 45becb6a3SPatrick Sanan 55becb6a3SPatrick Sananfrom build_classic_docs import HTMLMAP_DEFAULT_LOCATION 65becb6a3SPatrick Sanan 75becb6a3SPatrick Sanan 85becb6a3SPatrick Sanandef update_htmlmap_links(builder, 95becb6a3SPatrick Sanan htmlmap_filename=HTMLMAP_DEFAULT_LOCATION, 105becb6a3SPatrick Sanan htmlmap_modified_filename=HTMLMAP_DEFAULT_LOCATION + "_modified"): 11*862e4a30SBarry Smith """ Update manualpage links in an htmlmap file for use with Sphinx HTML builders html and dirhtml 125becb6a3SPatrick Sanan 13*862e4a30SBarry Smith This converts file names in the htmlmap file (ending with .md) to the locations of the 14*862e4a30SBarry Smith file that Sphinx generates. 155becb6a3SPatrick Sanan """ 165becb6a3SPatrick Sanan 175becb6a3SPatrick Sanan if builder.name == "dirhtml": 185becb6a3SPatrick Sanan postfix = "/" 195becb6a3SPatrick Sanan elif builder.name == "html": 205becb6a3SPatrick Sanan postfix = ".html" 215becb6a3SPatrick Sanan else: 225becb6a3SPatrick Sanan raise Exception("Unsupported builder named %s" % builder.name) 235becb6a3SPatrick Sanan 245becb6a3SPatrick Sanan with open(htmlmap_modified_filename, "w") as htmlmap_modified_file, open(htmlmap_filename, "r") as htmlmap_file: 255becb6a3SPatrick Sanan pattern = re.compile(".*\+\+\+\+man\+(.*)$") # Match URL in group 265becb6a3SPatrick Sanan for line in htmlmap_file.readlines(): 275becb6a3SPatrick Sanan match = re.match(pattern, line) 285becb6a3SPatrick Sanan if match: 295becb6a3SPatrick Sanan url = match.group(1) 305becb6a3SPatrick Sanan if url.startswith("manualpages"): 315becb6a3SPatrick Sanan line = os.path.splitext(line)[0] + postfix + "\n" 325becb6a3SPatrick Sanan htmlmap_modified_file.write(line) 33