惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
Last Week in AI
Last Week in AI
IT之家
IT之家
A
About on SuperTechFans
M
MIT News - Artificial intelligence
Y
Y Combinator Blog
T
The Blog of Author Tim Ferriss
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
博客园 - 【当耐特】
V
Visual Studio Blog
Microsoft Security Blog
Microsoft Security Blog
博客园_首页
aimingoo的专栏
aimingoo的专栏
The Cloudflare Blog
Vercel News
Vercel News
博客园 - Franky
有赞技术团队
有赞技术团队
B
Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
GbyAI
GbyAI
量子位
云风的 BLOG
云风的 BLOG
T
Tailwind CSS Blog

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
读书太乱怎么办?用 Notion 管理你的读书项目 - 少数派
2020-01-10 · via 少数派

Notion是一款全能型笔记应用,你可以用它排版、管理笔记、管理工作项目、建立数据库、建立Wiki档案库,甚至免费构建出一个网站来。不太夸张的说,只有你想不到,没有它做不到的。如果会一点点编程(当然这个要求也相当低),那么你绝对可以把Notion使用出意想不到的效果。用一句简单的话来概括Notion的核心功能,就是Page + Block(Database) + Markdown,此外还有导入与导出、内嵌网页、多人协作等特色。

为什么要管理读书

书读多了之后,我渐渐陷入了迷茫、混乱的状态,比如不知道一本书读了多久,为什么会读,收获了什么,有多少书在读?有多少书想读?它和之前读的书联系在哪里?鉴于以上,管理自己的读书就变得有必要了,因此我详细思考了自己的需求。

需要实现的需求:

  1. 管理读书进度(心愿单、未读、在读、已读)
  2. 对图书进行分类(论述作品、文学作品、记叙作品)
  3. 是否有电子书
  4. 记录一本书的阅读时间跨度
  5. 记录为什么会读、读书的来源在哪里
  6. 记录与其他书的联系
  7. 记录读书笔记

基于以上需求,最终用Notion实现的效果还不赖。

那么如何实现呢?本文正是向大家介绍实现过程的,虽然还带着一点安利Notion的心态,嘿嘿,请各位和我一起继续往下看吧!噢对了,由于Notion功能强大,这也导致上手起来没那么容易,如再慢慢介绍Notion的基础功能,篇幅可能就不够了,而介绍Notion的文章也已经很多,这里还推荐各位在少数派里看看相关的文章。当然我自己也整理了一些,各位打开下列网址,就可以看到了:

https://www.notion.so/hchgfxfz/Notion-00fe9f5ee77744059b850897e8bc35e9

大家准备好了,那我们开始吧!

🚨注意:本文的教程仅提供一个思路,在任何环节,各位都可以自由发挥,实现自己的需求。

步骤

1.建立数据库

Notion是基于page管理内容的,首先需要做的是新建一个Page,长相如下:


由于我们的读书项目是基于数据库的(database),那么我们选择database的内容Table或Board都可以,Table是表格的形式,Board是看板的形式,虽然形式不同,但具有同样的数据结构,是可以相互转换的。

以Table为例开始。

我们可以把整个数据库视为一个对象集——图书馆,对象为图书,每一个具体的图书视为具体的实例,而每一个对象都有自己的属性,以人为例就有身高、体重、性别、姓名、爱好等等,那么图书根据我们的需求就有类别、作者、进度、时间等等。


新建的数据库默认只有三个属性(Name、Tags、Files),就需要我们自行修改了。点击一栏,选择Open,界面如图。

删除Files和Tags两个属性,点击Add a Property(添加属性)。

根据我们的需要添加基础属性有Date(用于记录时间)、Select(用于选择类别和作者和评分)、Multi-Select(用于设置标签)、Checkbox(用于判断类型,如是否有电子书)、以及Formula(用于计算阅读时间的间隔和判断是否显示在看板上)。下图是一本书需要的属性:

使用Select基础属性设置一个具体的Status属性(即状态),选项包括Not Started(要读但未读的书),In Progress(在读)、Finished(已读)、Suspended(因为某种原因而暂停读的书)、Wishlist(想读但还没有条件获得图书的书),特别注意的是,Status将作为我们之后建立看板的依据。

属性的建立过程中,我需要向各位特别讲解两个属性,即Days(读书时间长度)和OnBoard(是否显示在看板上),为什么需要特别讲解呢?因为这里用到了编程的思想。两者都是使用Formula作为基础的。

选择Days,点击Edit Formula,填写代码:

if(if(prop("Status") == "Finished", dateBetween(end(prop("Date")), prop("Date"), "days"), dateBetween(now(), prop("Date"), "days")) == 0 or prop("Status") == "Not Started" or prop("Status") == "Wishlist", "0", format(if(prop("Status") == "Finished", dateBetween(end(prop("Date")), prop("Date"), "days"), dateBetween(now(), prop("Date"), "days")))) + if(if(prop("Status") == "Finished", dateBetween(end(prop("Date")), prop("Date"), "days"), dateBetween(now(), prop("Date"), "days")) <= 1 or prop("Status") == "Not Started" or prop("Status") == "Wishlist", " day", " days")

注意这里使用的编程语言不是常见的语言,是notion基于JavaScript所简化的,相关的语法规则需要特别学习一番,想了解更多的各位可打开这个网址:https://www.notion.so/Notion-Formulas-30d8d88656534222949d7210eccfa608

想必大家看到这里一定晕头转向了,虽然这是我自己写的,看起来也晕晕的,但其实这是非常简单的一段代码,说白了就是利用Date属性计算阅读开始和结束时间的时间差,即读完一本书所需的时间。对于未读完的书,则可以计算现在距离开始时的时间差。

OnBoard属性是用于判断一本书是否显示在看板上。

为什么要特地设置一个OnBoard属性呢?

假如读书积累到了一定程度,Finished属性的图书将变得非常多,这会导致在Finished栏目下的图书显示很长一串,显然这是非常不必要且不雅观的。OnBoard结合Filter(筛选)将解决这个问题。

OnBoard代码如下:

if(prop("Status") == "Finished" and (dateBetween(now(), end(prop("Date")), "days") <= 21 or dateBetween(now(), prop("Date"), "days") <= 30) or prop("Status") == "In Progress" or prop("Status") == "Suspended" or prop("Status") == "Not Started" or prop("Status") == "Wishlist", true, false)

代码解释是,如果为在读、暂停、未读和心愿单将选择为Onboard,如果是已读则将判断是否为最近一个月读的书,大于一个月前读的书或二十一天前读的书将不选择为Onboard

以下为建立数据库后表格显示的内容,以后每添加一本书(实例),将会自动带上属性供选择。

2.制作看板

  1. 在左上角Table View下,点击Add a View,选择Board,之后在右上角Group by选择Status(即之前设置的属性)。
  1. 设置Filter(筛选),选择Onboard属性,如下图:
  1. Properties内容选择为:
  1. Sort(排序)设置为:Date -> Descending

最终,看板效果如下:

3.添加新建图书模板

在右上角可以看到一个New按钮,下拉选项中有一个新建模板的选项,点击New Template。

命名为New Book,并编辑内容大概如下,也可以根据自己的需要作修改。

编辑完成后新建一本书时就可以直接套用模板了。

好啦,以上就是全部过程了。我的读书页面已经分享出来,点击这里即可查看。