15becb6a3SPatrick Sananimport shutil 25becb6a3SPatrick Sananimport re 35becb6a3SPatrick Sananimport os 45becb6a3SPatrick Sanan 59cd31cfbSBarry Smithdef update_htmlmap_links(builder,htmlmap_filename): 6862e4a30SBarry Smith """ Update manualpage links in an htmlmap file for use with Sphinx HTML builders html and dirhtml 75becb6a3SPatrick Sanan 8862e4a30SBarry Smith This converts file names in the htmlmap file (ending with .md) to the locations of the 9862e4a30SBarry Smith file that Sphinx generates. 105becb6a3SPatrick Sanan """ 115becb6a3SPatrick Sanan 125becb6a3SPatrick Sanan if builder.name == "dirhtml": 135becb6a3SPatrick Sanan postfix = "/" 145becb6a3SPatrick Sanan elif builder.name == "html": 155becb6a3SPatrick Sanan postfix = ".html" 165becb6a3SPatrick Sanan else: 175becb6a3SPatrick Sanan raise Exception("Unsupported builder named %s" % builder.name) 185becb6a3SPatrick Sanan 199cd31cfbSBarry Smith with open(htmlmap_filename+'_modified', "w") as htmlmap_file_modified, open(htmlmap_filename, "r") as htmlmap_file: 20*42c192b0SJose E. Roman pattern = re.compile(r".*\+\+\+\+man\+(.*)$") # Match URL in group 215becb6a3SPatrick Sanan for line in htmlmap_file.readlines(): 225becb6a3SPatrick Sanan match = re.match(pattern, line) 235becb6a3SPatrick Sanan if match: 245becb6a3SPatrick Sanan url = match.group(1) 255becb6a3SPatrick Sanan if url.startswith("manualpages"): 265becb6a3SPatrick Sanan line = os.path.splitext(line)[0] + postfix + "\n" 279cd31cfbSBarry Smith htmlmap_file_modified.write(line) 289cd31cfbSBarry Smith os.rename(htmlmap_filename + '_modified',htmlmap_filename) 29