mdImport.py 1013 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import sys
  2. import os
  3. import re
  4. global fileData
  5. fileData = {}
  6. def readFile(name):
  7. text = ""
  8. with open(name) as f:
  9. for l in f:
  10. text += l
  11. return text
  12. def basePath(name):
  13. p = os.path.dirname(name)
  14. if p != "":
  15. p = p + "/"
  16. return p
  17. def getFile(name, path=None):
  18. global fileData
  19. if path is None:
  20. path = basePath(name)
  21. if name not in fileData:
  22. fileData[name] = readFile(name)
  23. fileData[name] = parse(fileData[name], path)
  24. return fileData[name]
  25. def parse(text, path=None):
  26. c = re.compile("!\[\[([^]]*)]]")
  27. tPath = path or ""
  28. for m in c.findall(text):
  29. text = text.replace(f"![[{m}]]", "\n" + getFile(tPath + m + ".md", path))
  30. c = re.compile("\[\[([^]]*)]]")
  31. for m in c.findall(text):
  32. text = text.replace(f"[[{m}]]", "\n" + getFile(tPath + m + ".md", path))
  33. return text
  34. if __name__ == "__main__":
  35. fileData = {}
  36. for arg in sys.argv[1:]:
  37. print(getFile(arg, basePath(arg)))