在数据表中,求一个模板,根据添加到数据库的主键的那个文档,返回它的父文档链接

场景就是,我把一个文档发送到数据库,那这个文档的标题和链接就显示在了该数据库的主键中。

此时我想设计一个模板列,自动获取这个主键所引用的文档的父文档标题和链接(相当于在数据库列中可点击)。

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22785 引用 • 91475 回帖 • 3 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    8330 引用 • 37949 回帖 • 158 关注
被采纳的回答
  • 这一版,同主键 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 }
    

    image.png

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • wilsons 1 1 评论

    这一版,同主键 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 }
    

    image.png

    1 回复
    你好厉害,我看你回复了好多人的文档问题
    MasterYS
  • 其他回帖
  • guodalu

    佬,捉个小瑕疵,这个模板在如下条件组合下,会跳出黑框:

    条件一:设置链接只有在“ctrl + 鼠标”触碰下才预览。

    条件二:模板的那个列没有开启换行(开启换行会有个问题,就是会有非常大的空白段在表格列中。),在没有开启换行的情况下,文档的标题链接超出了单元格的宽度。

    在上面两个条件下,把鼠标触碰模板列中的链接,会跳出如下黑框。但是,Ctrl + 鼠标触碰则是正常的预览。

    当把单元格拉长能够完全显示模板列中的标题时,鼠标再进行触碰则是符合预期的什么也没有。(因为设置的就是需要 ctrl)。

    一个小 bug.png

    1 回复
  • 谢谢 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>
    

    刚开始用减法减后没有转换整形就老报错,这个好坑,减法本来就是数学运算,竟然计算后还得类型转换。

    1 回复
  • JeffreyChen 1 1 评论

    不行的,文档块没有 ParentID

    关联 思源中能否根据子文档 id 查询到父文档 id

    1 回复
    @wilsons 楼主的需求是“根据添加到数据库的主键的那个文档,返回它的父文档链接”,影响就是你这个完全实现不了啊
    JeffreyChen
  • 查看全部回帖

推荐标签 标签

  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 589 关注
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    354 引用 • 1821 回帖
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    50 引用 • 25 回帖 • 1 关注
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    167 引用 • 1518 回帖
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    53 引用 • 40 回帖 • 1 关注
  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    24 引用 • 373 回帖
  • 资讯

    资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。

    55 引用 • 85 回帖
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 360 关注
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    27 引用 • 225 回帖 • 170 关注
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖 • 8 关注
  • flomo

    flomo 是新一代 「卡片笔记」 ,专注在碎片化时代,促进你的记录,帮你积累更多知识资产。

    5 引用 • 107 回帖 • 2 关注
  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    85 引用 • 165 回帖
  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    730 引用 • 1328 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    8329 引用 • 37947 回帖 • 158 关注
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    36 引用 • 35 回帖
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 464 关注
  • 生活

    生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。

    230 引用 • 1454 回帖 • 2 关注
  • Lute

    Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。

    26 引用 • 196 回帖 • 19 关注
  • gRpc
    11 引用 • 9 回帖 • 70 关注
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    166 引用 • 595 回帖
  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    105 引用 • 127 回帖 • 374 关注
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 720 关注
  • DNSPod

    DNSPod 建立于 2006 年 3 月份,是一款免费智能 DNS 产品。 DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。

    6 引用 • 26 回帖 • 513 关注
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 366 关注
  • frp

    frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。

    20 引用 • 7 回帖 • 1 关注
  • Kotlin

    Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,由 JetBrains 设计开发并开源。Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。在 Google I/O 2017 中,Google 宣布 Kotlin 成为 Android 官方开发语言。

    19 引用 • 33 回帖 • 63 关注
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    524 引用 • 4601 回帖 • 699 关注