如何生成我的笔记的每日更改列表?

如何生成我的笔记的每日更改列表?

背景: 我用黑曜石在我学习时整理我的笔记。它是一个在 Markdown 格式的纯文本文件集合“之上”运行的应用程序,然后以图形方式显示它们之间的链接和连接。我存储在单个文件夹的子文件夹中的文本文件

我想要的是: 由于我正在为即将到来的考试而学习,我每天都会向其中几个文本文件添加信息。最终,我希望有一个自动生成的单个文本文件,其中包含我对每个文件所做的所有更改。一种“每日摘要”,然后我可以通读它来修改当天学到的所有内容。

附加背景: 我已经设置了一个 cron 作业,以便每天凌晨 3:00 使用 rsync 制作我的笔记文件夹的未压缩副本。我认为当我想查看当天结束时进行了哪些修改时,此副本可以作为参考。

一个例子 假设在 5 月 15 日,我做了以下更改This is some new text在文件 A 中添加了“ ”this is some more textual information在文件 B 中添加了 - “ ”。

我 5 月 15 日的“每日摘要”如下

"This is some new text"
This is some more textual information"

我的研究: 我知道 diff 和 meld (GUI) 这样的工具非常适合比较文件。 diff 输出格式很难理解。另一方面,Meld 非常容易使用,但它是一个 GUI 应用程序,所以我不知道如何将其输出定向到单个文本文件。

答案1

这实际上是一个版本控制系统你正在那里建造:)

幸运的是,这个问题已经解决了。其中一个工具是git(它肯定也是该学科中最普及的工具)。

我不知道黑曜石,但假设它甚至还没有集成git

  1. 一开始,只有一次,您进入包含 .md 文件的目录并将当前目录初始化为 git存储库, 使用git init .

    0.1。 Internet TM称 Obsidian 将其配置放在同一目录中名为 的子目录中.obsidian。我们想忽略它,所以我们.gitignore在它旁边放了一个名为的文本文件,只有一行内容:

.obsidian/
  1. 我们带来任何新文件(此时,全部你的 Markdown 文件是新的)以引起 git 的注意:(git add file1.md file2.md …或者只是git add *.md
  2. 我们说,好吧,记下索引中这些添加的文件的当前状态:git commit -m "This is the initial state"
  3. 恭喜!我们刚刚进行了第一次 git 提交!运行git log -p以查看涉及哪些更改。由于我们从“无”变为“有内容的文件”,因此我们会看到一个日志,其中包含一个以+添加的行开头的补丁集。
  4. 现在我们更改一些文件。比如说,我们更改 中的第三行file3.md。我们节省,并且git commit -m "End of day commit" file3.md。 (如果我们改为制作一个新的文件,我们首先需要git add filename.md它!)。
  5. 检查git log -p输出:你会看到类似的内容
@ 3,3
- old line content
+ new line content

更复杂的更改也是一样的——您会得到一个diff突出显示提交之间发生的更改的表示。 Git 可以做很多很多事情,但对此进行解释就超出了这个问题的范围。

有很多很多工具可以使 git 日志的处理更加图形化或更美观。tig例如,我用了很多。

因此,代替凌晨 3 点的 rsync 工作,适当的操作git add *.md; git commit -sm "Automatic end of day commit"将使跟踪您的更改变得微不足道。出于备份目的,您只需git push(再次,这太过分了,我只是提到它,因为您说您正在通过复制内容rsync,我假设这是出于备份目的)。

相关内容