#!/usr/bin/python

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()

      with open(location, 'w') as f:
          # Loop through the list of lines and titlecase
          # any line beginning with '#'.
          prev_line = lines.pop(0)
          disabled = 0
          for line in lines:
              if line.startswith("``") and disabled == 0:
                  disabled = 1
              else:
                  if line.startswith("``") and disabled == 1:
                      disabled = 0
              if line.startswith('#') and disabled == 0:
                  line = titlecase(line[:(line.find("]"))], callback=abbreviations)+line[(line.find("]")):] 
              if (line.startswith('---') or line.startswith('===')) and disabled == 0:
                  prev_line = titlecase(prev_line[:(prev_line.find("]"))], callback=abbreviations)+prev_line[(prev_line.find("]")):]
              f.write(prev_line)
              prev_line = line
          f.write(prev_line)

if __name__ == "__main__":
  try:
      main(sys.argv[1])
  except IndexError:
      main('.')