Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: A tag code in file name based knowledge management system #8

Open
QiangF opened this issue Aug 29, 2019 · 4 comments

Comments

@QiangF
Copy link

QiangF commented Aug 29, 2019

I am using org files to keep notes with plain-org-wiki.
As time goes by, the file is getting bigger and bigger, which bring a lot of duplication, also makes auto save and backup files big and cause a lot more extra disk io, not good for the hard drive. :-)

So I am thinking about a purely simple tag base system:

  1. a tag datafile: (tag . value), tag is a string without blank characters, value is a numeric value, eg. ((linux . 10) (debian . 2) (emacs . 3))
  2. a notes folder: note file name is the joined string of tag values sort in ascending order, eg. a note with both linux and debian tag should be named 2-10, just plain org files without the .org extension

The search operation is simple too:

  1. a search tag function: search tag datafile with keywords separated by space to find all the matched values, each single tag uses fuzzy matching, eg. search for "dbian linx" will retrun files match the glob pattern *2*10* , but the file name list is converted to tag names like "1. debian linux 2. debian emacs linux", you can select the file to open with number, or you can goto 2.
  2. open them all in a temp buffer with all files inserted using https://github.com/whacked/transclusion-minor-mode , the nice thing is you can view all of them in one buffer, and maybe cut and paste from one file to another

The tag manipulation is very simple:

  1. Delete a tag: remove the tag from the datafile, replace the tag value from all notes files names, move file name the same as tag value to trash and warn the user. save the tag value to a file named available-tag-values.
  2. Add a new tag: search the tag datafile if no match, create a new tag value and associate to the tag name, the value in available-tag-values will used first.
  3. Add a tag to the current note: rename it to a name include the tag value
  4. rename a tag: just rename it in the tag datafile.

This will break big notes files into smaller ones and does not affect the viewing thanks to org translusion. However, I only have a very limited knowledge of emacs. I am looking forward to hear your opinion and on how to bring the feature to this repo.
Thank you!

@abo-abo
Copy link
Owner

abo-abo commented Aug 29, 2019

Why not just name your files e.g. debian_linux.org? Seems to give the same functionality without having to change the code.

@QiangF
Copy link
Author

QiangF commented Aug 29, 2019 via email

@QiangF
Copy link
Author

QiangF commented Aug 29, 2019

The killing feature is the translusion of smaller files into a big view, keep many smaller files will reduce content duplication.

@QiangF
Copy link
Author

QiangF commented Aug 30, 2019

Maybe 2 lookup tables, tag to tag value, file name to file tag values, so you can have meaningful file names. People suggest a better transclusion mode should be like https://leoeditor.com/tutorial-pim.html#clones

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants