Huaiyao Jin

Huaiyao Jin

关于 Logseq

这两礼拜每天都在用 Logseq,真是太喜欢了。

这篇文章的形成也来自于 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:

daily-template

每天早上打开 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

可以展开或折叠,效果如下。

on_this_day