这两礼拜每天都在用 Logseq,真是太喜欢了。
这篇文章的形成也来自于 Logseq。
对我启发最大的两个资源
macOS 上的快速输入
自己做了一个非常简单的 Alfred workflow,把输入的内容附加在当天的 journal md 文件末尾。希望以后官方 app 能够发布更强大更高效的快速输入方式。
query=$1
D1=`date '+%Y_%m_%d'`
echo -e "\n- $query" >> "/Users/huajin/Library/Mobile Documents/iCloud~com~logseq~logseq/Documents/journals/${D1}.md"
iOS 上的快速输入
目前搞不定,等官方吧。
Dayone 迁移到 Logseq
又花了一点时间把 Dayone 里的几千个记录迁移到 Logseq,慢慢带着加以整理、回顾、形成一些联系。 使用的是这个脚本, dayone2markdown 。
为了后续的一些文本批处理,还在 mac 上安装了 gnu sed。 比如如果 md 文件第一行是空行的话就把它删除。
/usr/local/opt/gnu-sed/libexec/gnubin/sed -i '1{/^$/d;}' *.md
也用到了 perl 的一个替换命令。
perl -pi -e "s/\t- ####/- ####/g" *.md
Daily template
自定义好 daily_template_journals:
每天早上打开 Journals,输入 /template 回车,然后选中 daily_template_journals 回车,就可以了。
备份
Logseq 所有的内容是存在 iCloud 里的,只有一份,做为一名 DBA,重要的资料必须要有一份冗余。
一开始是想用 GoodSync 来同步所有文件到 OneDrive,发现订阅快到期了,于是用 macOS 上的 cron job 去 cp 整个目录。不过发现这样不太好,所有的文件都会在 OneDrive 里重新上传一次。最后改用了 rsync,只会拷备有变化的。
*/5 * * * * rsync -a "/Users/huajin/Library/Mobile Documents/iCloud~com~logseq~logseq/Documents/" "/Users/huajin/Library/CloudStorage/OneDrive-Personal/Logseq_bak"
-- update on 2022-07-03
今天发现 cron job 并没有运行成功,文件没有同步到 OneDrive。先给 cron job 加一段输出用来调试一下。
*/5 * * * * /usr/bin/rsync -a "/Users/huajin/Library/Mobile Documents/iCloud~com~logseq~logseq/Documents/" "/Users/huajin/Library/CloudStorage/OneDrive-Personal/Logseq_bak" > /Users/huajin/Log/Logseq.bak.log 2>&1
看一下 Logseq.bak.log,有众多的 Operation not permitted 报错。
rsync: failed to set times on "/Users/huajin/Library/CloudStorage/OneDrive-Personal/Logseq_bak/logseq/bak/journals/2005-08-25": Operation not permitted (1)
rsync: failed to set times on "/Users/huajin/Library/CloudStorage/OneDrive-Personal/Logseq_bak/logseq/bak/journals/2005-08-26": Operation not permitted (1)
rsync: failed to set times on "/Users/huajin/Library/CloudStorage/OneDrive-Personal/Logseq_bak/logseq/bak/journals/2005-08-29": Operation not permitted (1)
rsync: failed to set times on "/Users/huajin/Library/CloudStorage/OneDrive-Personal/Logseq_bak/logseq/bak/journals/2005-08-30": Operation not permitted (1)
...
谷歌一下,找到了解决方法。
简单的讲就是给 /usr/sbin/cron 赋予 Full Disk Access 权限。
-- update on 2022-08-06
今天在 QNAP NAS 里开启了 Time Machine 服务,配置新 MacBook 上的 Time Machine 备份到 NAS 里,这样每个小时都会自动备份,又多了一重保障。
那年今日
-- added on 2022-07-22
从 Dayone 迁移过来以后就想着在 Logseq 里实现类似 Dayone 里“那年今日”的功能。
本来想用 advanced query,可惜搞不定。只好用一些比较“笨拙”的方法。
在旧 macbook 改造以后的 server 新 MacBook Pro 上加一个 cron job。 -- update on 2022-08-06
5 5 * * * /bin/bash /Users/jinhuaiyao/Library/CloudStorage/OneDrive-Personal/Config/Mac_Script/on_this_day.sh > /Users/jinhuaiyao/Log/on_this_day.log 2>&1
-- updated shell script on 2023-05-18
cd "/Users/jinhuaiyao/Library/Mobile Documents/iCloud~com~logseq~logseq/Documents/journals"
DT=`date +%m_%d`;
> ../pages/On_This_Day.md;
ls |grep "_$DT" |sort |while read file
do
echo $file |sed 's/.md//g'|sed 's/_/-/g' |sed 's/^/- -------- [[/g' |sed 's/$/]] --------/g' >> ../pages/On_This_Day.md
echo " collapsed:: true" >>../pages/On_This_Day.md
awk '{print " " $0}' "$file" >> ../pages/On_This_Day.md
echo -e "\n-\n-\n" >> ../pages/On_This_Day.md
done
可以展开或折叠,效果如下。