Current workflow
-
Client machine:
- Compose markdown with Obsidian on local machine
- Push entire Obsidian vault to private remote git repository
-
Remote server:
- Run shell script to pull git repository and run markdown files through Quartz. Publish to
/var/www/vimoire.com
hosted via nginx
- Run shell script to pull git repository and run markdown files through Quartz. Publish to
Currently, this works in the sense that it gets the files up to a public website, and they look decent. I have some problems with the structure though.
On the backend, I don’t want to keep all my public notes separate. Having them nested inside my current daily note folder structure has been a great workflow for referencing progress at certain points in time, and general organization. But it looks awful on the front-end of my website. A blog post ends up being /10_journal/daily/2024/11_Nov/2024-11-15_Fri/<post-title>
when it should really just be /<post-title>
.
Additionally, this makes the Explorer plugin pretty ugly and useless. Currently I’ve opted to replace it with “Recent Posts”, which is only marginally better, and comes with some downsides.
Goals
- Index page containing:
- List of tags
- Link to tags for blog posts only (best way to approximate a list of all posts sorted by most recent) - will have to restructure tags.
- Minimal folders in explorer. Short URLs (currently nested within a bunch of folders all appended to the URL)
man
folder for all documentationblog
folder for all posts, inextricably tied to a date / point in time / “snapshot” of projects I am working on
I’d be fine with an approximation for now: index page linking to specific tag, list of tags, and configure the Recent Posts on the sidebar appropriately.
Ideas
Started on a shell script last night. This copies all pages marked with “publish: true” to temporary folder:
- Copy out files with shell script
- Will need to test permalinks (especially wikilinks in notes themselves)
- Will need to test attachments - how to copy them out?
Implementation
Approximating behavior I want - primarily workflow / git repo for quartz config and website contents, and full page listing, without trying to figure out the bigger issues such as attachments, permalink resolution, and full restructuring of the folder contents.
- Added tag
#blog
to all blog posts and#man
to all man/reference pages - Edited
index.md
to have link totags/blog
andtags/man
to approximate page listings, as well as a full list of tags - General cleanup edits to all posts
- General cleanup to website
- Changed header font to “Roboto”
- Changed body font to “Roboto Thin 100”
- Changed monospace font to “Ubuntu Mono”
- Changed title to “the Vimoire”
- Changed RSS settings to full HTML content, limit 25, and exclude empty files
- Created script
build_quartz.sh
to build quartz in local folder (non-website root) and commit changes to remote repo containing only website contents and quartz configs - Created script
publish_site.sh
to clean website directory and then copy local folder to website directory
EOF