#!/usr/bin/env python from __future__ import print_function import fnmatch import os import sys try: from titlecase import titlecase except ImportError: print("Please install titlecase") def main(location): # Spelling exceptions with open('.spelling') as f: spelling = f.readlines() def abbreviations(word, **kwargs): if word+"\n" in spelling: return word # Open the file and read the lines as a list with open(location) as f: lines = f.readlines() # Loop through the list of lines and titlecase # any line beginning with '#'. return_value = 0 prev_line = lines.pop(0) disabled = 0 echo_filename = False if location.find("mkdocs.yml") != -1: disabled = 1 for line in lines: if (line.startswith("``") or line.startswith("extra:")) and disabled == 0: disabled = 1 else: if (line.startswith("``") or prev_line.startswith("pages:")) and disabled == 1: disabled = 0 if line.startswith('#') and disabled == 0 and (location.find("mkdocs.yml") == -1): if line != titlecase(line[:(line.find("]"))], callback=abbreviations)+line[(line.find("]")):]: if return_value == 0 and echo_filename == False: print("%s" % location) echo_filename = True print("-"+line,end="") print("+"+titlecase(line[:(line.find("]"))], callback=abbreviations)+line[(line.find("]")):],end="") print() return_value = 1 if (line.startswith('---') or line.startswith('===')) and disabled == 0: if prev_line != titlecase(prev_line[:(prev_line.find("]"))], callback=abbreviations)+prev_line[(prev_line.find("]")):]: if return_value == 0 and echo_filename == False: print("%s" % location) echo_filename = True print("-"+prev_line,end="") print("+"+titlecase(prev_line[:(prev_line.find("]"))], callback=abbreviations)+prev_line[(prev_line.find("]")):],end="") print() return_value = 1 if ((location.find("mkdocs.yml") != -1) and not line.startswith('#') and disabled == 0): if line != titlecase(line[:(line.find(":"))], callback=abbreviations)+line[(line.find(":")):]: if return_value == 0 and echo_filename == False: print("%s" % location) echo_filename = True print("-"+line,end="") print("+"+titlecase(line[:(line.find(":"))], callback=abbreviations)+line[(line.find(":")):],end="") print() return_value = 1 prev_line = line exit(return_value) if __name__ == "__main__": try: main(sys.argv[1]) except IndexError: main('.')