# Logseq 使用心得

Original: <https://lifelonglearn.ing/logseq>

Author: [奶爸](https://lifelonglearn.ing/users/3b04650c-8231-499b-8ef0-381fc4d7efb0)

Published: 2022-03-28T15:08:59Z

Updated: 2026-09-27T06:57:43Z

Version: 1

从3月10号开始到现在，已经使用 Logseq 两周多，不得不说这种支持自定义代码的笔记真不错，当然还有**双向链接**这个特性，但是我到目前为止使用最多的是**高级查询**和**TODO**这两个功能，记录笔记的话只是零星记录了几句话，并没有详细的记录或者输出一些东西，对「双向链接」这个特性还没有比较深刻的体会。
以下是我的 Logseq 的一个主页的样子，

![image.png](https://lifelonglearn.ing/upload/051c25b7-2f2d-ac9e-67ac-5300433ed237.png)

可以看到 Logseq 是以日期作为主线的，免去了对要写的内容抽象主题的负担，3月10号左右我先丢弃了 ​**Todoist**​，然后转到 **Habitica** 上面体验了几天， 但是对于角色养成实在是不感冒，然后通过一梭子搜索和比较，最终选择了 Logseq，备选方案是 Trilium（简单搜索都可以找到），当时主要看到了 「[OKR + GTD + Note => Logseq」](https://lifelonglearn.ing/r/go?url=aHR0cHM6Ly93d3cuYm1waS5kZXYvc2VsZi9va3ItZ3RkLW5vdGUtbG9nc2VxLw==) 这篇文章，让我更加坚定的选择了 Logseq。

事后我也请教了 [构建我的被动收入](https://lifelonglearn.ing/r/go?url=aHR0cHM6Ly93d3cuYm1waS5kZXYv) 的博主是否对比过 Trilium 和 Logseq，博主的回答是 No，但是因为奶爸认为 Logseq 的高级查询语言是 [Clojure](https://lifelonglearn.ing/r/go?url=aHR0cHM6Ly9jbG9qdXJlLm9yZy8=)，Trilium 是自定的专有语法，使用 Logseq 还可以了解 Clojure 这门额外的通用语言，何乐而不为？所以最终选择了 Logseq。

因为开始就是淘汰了 Todoist 选择其他的应用嘛，奶爸的主要食用场景就是 Todo 了，分享一下奶爸的 Logseq Todo 实践吧

## 工作日报周报

首先对任务进行归类，在学习了 Logseq 的高级查询语法了解其能力之后，决定使用 `#tag` 来组织 **个人任务** 和 ​**工作任务**​，属于工作任务的会打上 `#BitizenWallet` 标签，个人任务目前只是没有打标签。

首先就是工作，这个是大块内容，奶爸目前使用 Logseq 生成 **日报 & 周报** 作为早会的发言提纲。

![image.png](https://lifelonglearn.ing/upload/3617bf73-ea06-b1b8-2345-66c1b46ab916.png)

### 日报高级查询代码

日报查询的逻辑是将 `Deadline` 的日期为昨天的带有 `BitizenWallet` 的标签过滤出来，因为经过实践 Logseq 的 `UpdatedAt` 字段不太好用，然后有没有一个 `FinishedAt` like 的字段供我们使用，最终经过权衡选择了 `Deadline` 这个最符合逻辑的字段来定义与查询。

使用时修改 `#{"bitizenwallet"}` 这里的内容即可。

```clojure
#+BEGIN_QUERY
{
    :title "Query: tasks done in the yesterday"
    :query [:find (pull ?b [*])
       :in $ ?start ?end
       :where
       [?b :block/marker ?m]
       [?b :block/ref-pages ?p]
       [?b :block/deadline ?dd]
       [?p :block/name ?n]
       [(contains? #{"bitizenwallet"} ?n)]
       [(= "DONE" ?m)]
       [(>= ?dd ?start)]
       [(< ?dd ?end)]
   ]
   :inputs [:yesterday :today]
   :collapsed? false
}
#+END_QUERY
```

### 周报高级查询代码

```clojure
#+BEGIN_QUERY
{
    :title "Query: tasks done in the past 7 days"
    :query [:find (pull ?b [*])
       :in $ ?start ?end
       :where
       [?b :block/marker ?m]
       [?b :block/ref-pages ?p]
       [?b :block/deadline ?dd]
       [?p :block/name ?n]
       [(contains? #{"bitizenwallet"} ?n)]
       [(= "DONE" ?m)]
       [(>= ?dd ?start)]
       [(< ?dd ?end)]
   ]
   :inputs [:7d :today]
   :collapsed? false
}
#+END_QUERY
```

### To-do 查询代码

To-do 查询使用基本的查询语句将含有 `BitizenWallet` 标签的状态为 **待办** 的 To-do 查询出来即可，无需使用到高级查询。

```clojure
{{query (and (todo LATER TODO DOING NOW) [[BitizenWallet]])}}
```

## 个人任务

奶爸在用 Logseq 管理个人任务，Logseq 有 **重复任务 Repeat Task** 和 **计划任务 Scheduled task** 兼备的管理功能，可以提醒自己每周查看一下 Tending，每天查看下论坛新帖。

可将自己的个人任务按照 ​**Overdue**​、​**Doing**​、**Todo** 查询出来放到一个列表。

![image.png](https://lifelonglearn.ing/upload/c4cb1030-bd92-18e9-d538-13839e46ac48.png)

## 写在后面

因为奶爸没有深度使用双向链接这个东西，零零散散的记录感觉十分零散，要想回过头来看一遍过往记录，目前只能一天一天的去翻 Journals，如果不去翻不去整理，日久天长之后只能寄希望于 Logseq 的全文搜索不会遗漏某些东西了。

所以在奶爸的 Todo 里面你也看到了（​*将杂七杂八的东西集合到一个文件中*​），接下来会把零散的想法收集到一个固定的「​**杂碎**​」 页面，避免被复杂事物绑架，想要脱离 Logseq 时直接迁移这个文件——​*撤退*​。

> ***修订：*** 已经弃用 Logseq，因为奶爸原本写博客也不是很频繁，一般不会收藏文章，顶多记录一些关键词，Logseq 适合大量的长篇内容互相关联记录。我只是记录一个 To-do，加之工作内容逐渐复杂一个任务搞一天甚至一周，记录一周也就几句话，每天还要打开 Logseq，后面直接就舍弃了。
