slacr_

Just to record my life and thoughts.
笔记/编程/杂乱/极简

[Notion]搭建个人电子图书馆

May 13, 2023Tools1404 words in 9 min

Notion很久之前就下载了, 但一直没怎么用, 就单纯的当文本编辑器. 最近逛网站发现有用Notion部署的个人站点. 之后了解到这软件能居然创建’数据库’, 还提供免费的网页服务. 于是试着搭了个电子图书馆, 不用一行代码, 简单易上手.
成品效果 https://slacr.notion.site/

Notion基础用法

Notion支持Markdwon语法与内嵌众多格式的组件, 网上也有很多Toolkit和帮助部署的工具, 比如Fruition, noto widgetstore ,甚至Notion支持HTML嵌入, 可以自己写个小组件. github上也有很多框架可以配合更加灵活地使用. 想要简单的完成简单的网站设计, 基本的功能已经足够, 不用一行代码, 纯纯地面向GUI搭建.

Notion页面的元素由文本和Block组成, 按 / 可以调出选项. 想要使用好这个软件, 首先要理解 Page 和 Block. Page是基本页面, 而在一个页面中你可以嵌入子页面, 或者其他页面的链接, 就像网页中的超链接和超文本一样. /page 可以调出, 调用其他功能或组件也都一样/+{name}.非常便捷.

然后是block, 块元素, notion中的块拥有属性property可以设置, 并且可以通过拖动调节位置. 每一个文本行, '/'调出的内置的block, embed嵌入的组件, 包括inline database 的各种 view 都是一个可以拖动与配置属性的 block. 你可以比较成word中的块元素的设置. 不同就是Notion客户端是Electron包装的网页能直接发布.

上传文件的问题

Notion免费用户只支持单文件上传不超过5MB. 教育邮箱注册可以得到免费的plus会员, 无限上传限制, 或者你已经绑定了换绑成学校邮箱也是可以的. 客户端没找着入口, 可以在官网上申请, 在教育邮箱失效前都是可以免费获取的. plus会员一年换算成RMB也要6百多, 免费的无限空间网盘得好好利用.

一些设置

通过share将page发布到网上, 可以进行相关配置. 注意这只是单个页面的权限, 如果有关联其他页面也要公开的话同样要开启选项.

在Setting中更改域名与设置主页

fullwidth能扩大内容区域, Customize中能设置一些评论显示相关.

Notion中的数据库

Notion中最重要的一个模块就是"数据库database", 最近学校也在学数据库, Notion中的数据库不是传统意义上的数据库, 而是一种抽象的数据库, 它符合数组库的特征功能, 逻辑上可以理解成一种数据库, 但底层并不是数据库只是数据, 它给我们组织数据提供了一种思路.
Notion中的视图View也不等同于数据库系统中的View, 我们知道真正数据库系统中的视图和数据库是逻辑分离的, 视图只是数据的一种呈现形式, 对视图操作并不会影响数据库本身, 并且可以通过授权使不同用户访问到不同的视图.
而Notion中的数据库仅仅是一种数据的组织形式, 我们在创建database的时候必须指定一种视图, 官方提供了6种, 通过View我们是可以直接操纵database的. 它更像Excel表格. 个人觉得Notion中DataBase本身是一张表, View是这张表的一个引用.

用好Formula和 Ralation Rollup

为了区分Notion中的database和view与传统数据库和视图意义的差别, 下面我对Notion中的只用英文.
虽然我们无法同过Notion中的database和View实现真正数据库与视图的一对多映射, 但可以通过Ralation和Rollup实现.
Ralation是Notion中Database的一个property, 能够让两个database相互关联. database的每一个条目实际上是一个Page, 我们可以通过第一列title点开查看. 而Ralation连接的就是两个不同database的page.
我们在一个database中创建一个Ralation列后, 选择引入另一database, 实际上就使这个database获得了另一个database的引用,在Relation列中可以填入任何来源database的page.
Rollup能指定来源database的一个property列, 通过当前行对应的来源database的page获取对应的该property值, 从而实现database的同步.
有了Ralation和Roll我们就可以为一个总的database创建多个关联的database, 多个关联的database中的property都通过定义Ralation和多个rollup来获取, 总的database不可访问, 能访问的都是其他database的view, 我们就实现了来自一个总database多个不同view.
Formula能帮助建立列运算, 在view的group by分组时不能通过rollup来的列只能是具体的例, 这时我们可以用Formula创建一个相等的列用来分组.

我的项目目录, 只有RootDB存储所有书籍数据, 其他的database都辅助用来创建不同view. 加入新书籍的时候所有操作均可在RootDB中完成。

参考

  1. Notion官网
  • Author:

    slacr_

  • Copyright:

  • Published:

    May 13, 2023

  • Updated:

    May 13, 2023

Buy me a cup of coffee ☕.

1000000