场景就是,我把一个文档发送到数据库,那这个文档的标题和链接就显示在了该数据库的主键中。
此时我想设计一个模板列,自动获取这个主键所引用的文档的父文档标题和链接(相当于在数据库列中可点击)。
场景就是,我把一个文档发送到数据库,那这个文档的标题和链接就显示在了该数据库的主键中。
此时我想设计一个模板列,自动获取这个主键所引用的文档的父文档标题和链接(相当于在数据库列中可点击)。
这一版,同主键 ID 样式一样,支持预览
.action{ if index . "custom-avs" }
.action{$id := .id}
.action{$blocks := queryBlocks "select * from blocks where id='?'" $id}
.action{ $b := first $blocks}
.action{$list := splitList $b.ID $b.Path }
.action{$f := first $list }
.action{$len := len $f }
.action{$len := sub $len 1 }
.action{$len := int $len }
.action{ if ne 0 $len }
.action{$f := substr 1 $len $f}
.action{$list := splitList "/" $f }
.action{$ParentID := last $list }
.action{$ParentID := trim $ParentID }
.action{$blocks := queryBlocks "select * from blocks where id='?'" $ParentID}
.action{$b := first $blocks}
<span data-type="block-ref" data-id=".action{$b.ID}" data-subtype="s" class="av__celltext av__celltext--ref" style="">.action{$b.Content}</span>
.action{ end }
.action{ end }
试试这个
.action{$id := .id}
.action{$blocks := queryBlocks "select * from blocks where id='?'" $id}
.action{ $b := first $blocks}
.action{$blocks := queryBlocks "select * from blocks where id='?'" $b.ParentID}
.action{ $b := first $blocks}
<a href="siyuan://blocks/.action{$b.ID}" onclick="event.stopPropagation()">.action{$b.Content}</a>
这一版,同主键 ID 样式一样,支持预览
.action{ if index . "custom-avs" }
.action{$id := .id}
.action{$blocks := queryBlocks "select * from blocks where id='?'" $id}
.action{ $b := first $blocks}
.action{$list := splitList $b.ID $b.Path }
.action{$f := first $list }
.action{$len := len $f }
.action{$len := sub $len 1 }
.action{$len := int $len }
.action{ if ne 0 $len }
.action{$f := substr 1 $len $f}
.action{$list := splitList "/" $f }
.action{$ParentID := last $list }
.action{$ParentID := trim $ParentID }
.action{$blocks := queryBlocks "select * from blocks where id='?'" $ParentID}
.action{$b := first $blocks}
<span data-type="block-ref" data-id=".action{$b.ID}" data-subtype="s" class="av__celltext av__celltext--ref" style="">.action{$b.Content}</span>
.action{ end }
.action{ end }
不行的,文档块没有 ParentID
谢谢 J 佬,明白了。
整了半天,搞好了,这回应该行了。
.action{$id := .id}
.action{$blocks := queryBlocks "select * from blocks where id='?'" $id}
.action{ $b := first $blocks}
.action{$list := splitList $b.ID $b.Path }
.action{$f := first $list }
.action{$len := len $f }
.action{$len := sub $len 1 }
.action{$len := int $len }
.action{$f := substr 1 $len $f}
.action{$list := splitList "/" $f }
.action{$ParentID := last $list }
.action{$ParentID := trim $ParentID }
.action{$blocks := queryBlocks "select * from blocks where id='?'" $ParentID}
.action{$b := first $blocks}
<a href="siyuan://blocks/.action{$b.ID}" onclick="event.stopPropagation()">.action{$b.Content}</a>
刚开始用减法减后没有转换整形就老报错,这个好坑,减法本来就是数学运算,竟然计算后还得类型转换。
FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。
GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。
Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。
微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。
Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。
OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。
Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。
Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于 1998 年 9 月 7 日以私有股份公司的形式创立,设计并管理一个互联网搜索引擎。Google 公司的总部称作“Googleplex”,它位于加利福尼亚山景城。Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。不作恶(Don't be evil)是谷歌公司的一项非正式的公司口号。
CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。
互联网(Internet),又称网际网络,或音译因特网、英特网。互联网始于 1969 年美国的阿帕网,是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。
C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
哪里都缺人,哪里都不缺人。
强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。
星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网
Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。
React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。
Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。
AngularJS 诞生于 2009 年,由 Misko Hevery 等人创建,后为 Google 所收购。是一款优秀的前端 JS 框架,已经被用于 Google 的多款产品当中。AngularJS 有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等。2.0 版本后已经改名为 Angular。
如果帖子标签含有 Sandbox ,则该帖子会被视为“测试帖”,主要用于测试社区功能,排查 bug 等,该标签下内容不定期进行清理。
SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。
用爱发电 (Programming With Love) 是一个以开源精神为核心的民间开源爱好者技术组织,“用爱发电”象征开源与贡献精神,加入组织,代表你将遵守组织的“个人开源爱好者”的各项条款。申请加入:用爱发电组织邀请帖。
用爱发电组织官网:https://programmingwithlove.stackoverflow.wiki/
RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。
Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。
阿里巴巴网络技术有限公司(简称:阿里巴巴集团)是以曾担任英语教师的马云为首的 18 人,于 1999 年在中国杭州创立,他们相信互联网能够创造公平的竞争环境,让小企业通过创新与科技扩展业务,并在参与国内或全球市场竞争时处于更有利的位置。
Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。
RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。
Office 现已更名为 Microsoft 365. Microsoft 365 将高级 Office 应用(如 Word、Excel 和 PowerPoint)与 1 TB 的 OneDrive 云存储空间、高级安全性等结合在一起,可帮助你在任何设备上完成操作。