jackyzha0 / quartz

🌱 a fast, batteries-included static-site generator that transforms Markdown content into fully functional websites
https://quartz.jzhao.xyz
MIT License
6.21k stars 2.39k forks source link

🌱 "Version Control" for Notes #58

Open nt92 opened 2 years ago

nt92 commented 2 years ago

Context

One of the core problems of the internet in its current state is that it's difficult to properly track the evolution of a line of thought, over time. This makes it impossible to e.g. have a true permalink to a sentence / paragraph on a post, since the entropy of the internet inherently results in link rot and updates to the post & line of thinking.

There are ad-hoc solutions that have been layered on such as the wayback machine, but that unfortunately cannot be relied upon as a scalable long-term solution to this problem.

What if we could bake this functionality directly into our blogs / brains / gardens?

Solution

I am proposing a versioning system for notes in Quartz that utilizes the hugo-obsidian scraping engine to set up subdirectories for holding versions of each note.

Here's an example workflow:

  1. Publish note1.md into Quartz and host it on /blog/note1/ — as far as the folder structure is concerned, this serves up the content from /blog/note1/v1/
  2. We make an update to note1.md and compile / publish, creating /blog/note1/v2/ — we can make /blog/note1/ automatically point to the latest version
  3. Continue to make changes to a note and evolve the versioning over time, with the ability to open & search through previous versions

Open Questions

Additional Context

I'm happy to hear any thoughts on this idea, as well as other solutions to solve this issue and add this functionality! ⚡️

tomodachi94 commented 2 years ago

Hmm, maybe permalinks could be possible with Git commits, something like example.com/notes/Charles_Darwin/n12sadf would be a link to Git revision n12sadf of note Charles Darwin?

tuta-amb commented 6 months ago

I imagine that this could make builds very large though. Say you have 20 edits to a note. Then you would have to build 20 copies of that note.

aarnphm commented 5 months ago

imo this is out of scope for quartz, but tbh would love to be wronged about this.

It would be nice to have a plugin to track, but this would make build and dependency resolution for #716 harder.