
ln -s '/Users/blairnangle/Library/Mobile Documents/iCloud~md~obsidian/Documents/notes' ~/personal/notes/content- Git project is 
~/personal/notes/ - GitHub project (with associated Vercel project) is 
blairnangle/notes - Symlink Obsidian iCloud dir to 
contentrather than storing entire JS/TS project in iCloud as iOS Obsidian struggled with all the code, etc. 
Staying in sync with Quartz
git clone --bare https://github.com/jackyzha0/quartz.git`
cd quartz.git/
git push --mirror https://github.com/blairnangle/notes.git
git checkout -b main
git push --set-upstream origin main
git remote add quartz https://github.com/jackyzha0/quartz.git
git checkout v4
git pull quartz v4
git checkout main
git merge v4
Working with a symlink
- Symlink for local development
 - But won’t cut it with Git/Quartz as we need actual files in 
contenton the remote so that Quartz (running in Vercel) can build our HTML, CSS and JS - So we have a 
deploy.shwrapper script to handle temporarily replacing the symlink with the content from iCloud and pushing to remote - (Reinstate the symlink afterwards)
 - Fairly dirty solution (but it works)
 
Hosting on Vercel
Add a vercel.json file to the root of the project with the following:
{
  "cleanUrls": true
}Using launchd to automate updating
The contents of ~/LaunchAgents/com.blairnangle.notes.plist:
<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  
<plist version="1.0">  
<dict>  
    <key>Label</key>  
    <string>com.blairnangle.notes</string>  
    <key>OnDemand</key>  
    <true/>  
    <key>WorkingDirectory</key>  
    <string>/Users/blairnangle/personal/notes</string>  
    <key>StandardOutPath</key>  
    <string>/Users/blairnangle/personal/notes/stdout.log</string>  
    <key>StandardErrorPath</key>  
    <string>/Users/blairnangle/personal/notes/stderr.log</string>  
    <key>ProgramArguments</key>  
    <array>  
        <string>/Users/blairnangle/personal/notes/deploy.sh</string>  
    </array>  
    <key>StartInterval</key>  
    <integer>3600</integer>  
</dict>  
</plist>~/LaunchAgents on ☁️  (us-east-1)
at 19:17:41, 2024-06-10 ➜
launchctl load -w com.blairnangle.notes.plist~/LaunchAgents on ☁️  (us-east-1)
at 19:17:41, 2024-06-10 ➜
launchctl unload -w com.blairnangle.notes.plist