由于 notion 的习惯使然,或者还有更前的一些笔记习惯,我习惯会为文档增加标签。
在长期的 notion 使用中,我基于 database 添加了“标签”属性,通过这种方式搜索文档
而在 siyuan 中,内置了标签。这就让我很纠结了:
- 选择扩展属性,那么放弃了系统内置功能,会不会有性能劣势或者其他的没有享受到的东西?
- 使用后者,那我使用数据库副本就少了一个辅助过滤的能力,或者至少实现没有那么简单
你们呢?怎么选择
由于 notion 的习惯使然,或者还有更前的一些笔记习惯,我习惯会为文档增加标签。
在长期的 notion 使用中,我基于 database 添加了“标签”属性,通过这种方式搜索文档
而在 siyuan 中,内置了标签。这就让我很纠结了:
你们呢?怎么选择
思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。
融合块、大纲和双向链接,重构你的思维。
要不试试模板列?
假如你现在有一个包含两个标签的文档:
加入数据库后,使用模板列,输入以下代码:
.action{$tags := splitList "," .tags}
.action{range $index, $tag := $tags}
<span style="padding: 1px 6px 1px 6px; background-color: var(--b3-font-background13); border-radius: 3px;"># .action{$tag}</span>
.action{end}
能够得到这样的效果:
这样做,可以保留你原有的习惯,数据库也有了你说的“辅助过滤的能力”(通过筛选、搜索等),还不需要额外的成本(不需要再维护一个多选列)。不足之处是不能直接在数据库列上修改标签,要回到文档去。
第一条,多虑了,因为思源的数据库表格才加上没多久,用表格比标签舒服多了
标签用来放一些存档的东西,其实挺好的,不用常出现,但是一直在
@liptshang 有点赞,看了一下源码找了一下 .tags 怎么注入的,还可以把模板列的渲染改为 select 组件,监听 onchange,或者看能不能复用 siyuan 的组件(如果有/可以的话)。另外不知道是不是这个模板列的问题,点击 Cell 的时候,会重新渲染成模板列的代码 input...
点击模板列的效果和文本列一样,都是展示 cell 的 textarea。不过,如果 cell 里面有可点击的元素的话,是可以点击的。比如,前面模板代码里的标签样式,是我即时写的,只是纯文本加了背景色,点击就是 textarea;其实,可以改为标签的原生样式,点击里面的标签,就可以唤起标签的搜索 tab 了:
.action{$tags := splitList "," .tags}
.action{range $index, $tag := $tags}
<span data-type="tag">.action{$tag}</span>
.action{end}
模板列里也可以执行 js 代码,扒扒源码应该可以实现你的这个想法?不过我个人感觉还是由官方新增一个专门的标签列会比较好。
还是等子弹飞一会吧,感觉 database 这块还有很多优化空间,模板更是。按着 notion 的路子来走,起码得大半年不止。
notion 用起来很符合直觉的 database 功能:
目前感觉精力仅集中两个视图 table 和 看板 的实现就现阶段够用了,后面直接做这块的优化,不要只停在够用的程度了
回到主题,目前我还是决定继续在 database 上添加标签多选列,这样使用体验和维护都比较方便,内置标签系统仅作为补充好了,在内容上做下名词索引够用了,同时用于碎片化的内容片段,方便之后整理为文档。或者继续看看 DL 们还有什么骚操作了
@liptshang 在 v3.0.11 要先过滤掉空值,否则会报错
.action{ if not (empty .tags) }
.action{ $tags := splitList "," .tags }
.action{ range $index, $tag := $tags }
<span style="padding: 1px 6px 1px 6px; background-color: var(--b3-font-background12); border-radius: 3px;"># .action{$tag}</span>
.action{ end }
.action{ end }
.action{ if not (empty .tags) }
.action{ $tags := splitList "," .tags }
.action{ range $index, $tag := $tags }
<span data-type="tag">.action{$tag}</span>
.action{ end }
.action{ end }
ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。
微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。
前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。
本标签主要用于分享网络空间安全专业的学习笔记
知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。
WebSocket 是 HTML5 中定义的一种新协议,它实现了浏览器与服务器之间的全双工通信(full-duplex)。
你听到信仰的声音了么?
JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。
持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。
Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。
Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。
ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。
正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。
JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。
人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。
你若安好,便是晴天。
React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。
InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。
星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网
Thank God It's Friday! 感谢老天,总算到星期五啦!
房星网,我们不和没有钱的程序员谈理想,我们要让程序员又有理想又有钱。我们有雄厚的房地产行业线下资源,遍布昆明全城的 100 家门店、四千地产经纪人是我们坚实的后盾。
Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。
Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。
Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。
网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于