from obsidian_parser import Vault import shutil import markdown from pathlib import Path import os def render_file(filename: str, contentPath: Path): #renders markwown from filename filePath = contentPath / f"{filename}.md" # 3. Protect against missing files if not filePath.is_file(): return f"

404

Could not find {filename}.md in {filePath}

", 404 # open the file for reading with open(filePath, "r", encoding="utf-8") as f: textContent = f.read() # convert it to markdown htmlContent = markdown.markdown(textContent) return htmlContent def obsidian_vault(dest = "/vault"): # makes sure there is a vault in dest if os.path.exists(dest): return "vault exists" from git import Repo url = os.getenv("OBSIDIAN_VAULT_URL") token = os.getenv("OBSIDIAN_VAULT_TOKEN") if token: print ("token found") url = f"https://{token}@{url}" print (f"building vault from {url} in {dest}") Repo.clone_from(url, dest) print("finished vault!") def public_notes(src: str): # return a list of notes tagged with public from an obsidian directory # build vault from source vault = Vault(src) if vault: print ("found vault") else: print("could not find vault") return [] # return a list ofnotes return vault.get_notes_with_tag("public") # def public_vault(dest: str, url = "", token = ""): # build the public vault in dest from an obsidian repo in src # for note in public_notes(src): # print(note.title) # shutil.copy2(f"{note.path}", dest)