liptshang
关注
96235 号成员,2022-12-18 17:25:23 加入
118
个人主页 浏览
41h16m
在线时长
  • 数据库一些列的值能否自动获取文档里的数据

    2024-05-15 23:46

    这个也是可以的,效果大概这样:

    image.png

    image.png

    代码会复杂一点,需要写一些正则。

    .action{$key := "链接:"}
    .action{$ret := queryBlocks "SELECT * FROM blocks WHERE root_id = '?' AND type = 'p' AND content LIKE '?%' LIMIT 1" .id $key}
    .action{if len $ret}
    .action{$val := first $ret}
    .action{$text := regexFind `\[.*\]` $val.Markdown}
    .action{$text = trimPrefix `[` (trimSuffix `]` $text)}
    .action{$url := regexFind `(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]` $val.Markdown}
    <span data-type="a" data-href=".action{$url}">.action{$text}</span>
    .action{end}
    
  • 数据库一些列的值能否自动获取文档里的数据

    2024-05-15 23:13

    是这种效果吗?

    image.png

    代码是这样,就是一些 if else:

    .action{ if .title }
    .action{ $key1 := "关键字甲" }
    .action{ $key2 := "关键字乙" }
    .action{ if contains $key1 .title }
    当文档名包含关键字甲时需要输出的内容
    .action{ else if contains $key2 .title }
    当文档名包含关键字乙时需要输出的内容
    .action{ else }
    其他情况需要输出的内容
    .action{ end }
    .action{ end }
    

    其实模板列代码很好写,可以去看看最近发的那篇模板教程。

  • 数据库一些列的值能否自动获取文档里的数据

    2024-05-08 13:03

    可以的,改一下 SQL 就能实现。主要是各级标题可能不止一个,要根据你的应用场景来写展示数据的代码。一个简单的场景,获取一个一级标题的名称并展示:

    .action{$h := "1"}
    .action{$ret := queryBlocks "SELECT * FROM blocks WHERE root_id = '?' AND type = 'h' AND subtype = 'h?' LIMIT 1" .id $h}
    .action{if len $ret}
    .action{$val := first $ret}
    .action{$val.Content}
    .action{end}
    

    获取二级标题就把 h 的值改成 2 就行。

  • 数据库一些列的值能否自动获取文档里的数据

    2024-05-07 11:38

    我在我的四百行数据库上测试了你的代码,新增前后的响应时间几乎没有变化,还是几百毫秒,没有你说的秒级卡顿。之前用 SQL 模板列确实比 PPT 还卡,3.0.11 理论上应该是不卡了的。

    另外,单从你的代码上看,好像没必要用 SQL 呀,获取 hpath 的最后一项,那不就是文档标题吗?直接用 .action{.title} 就好了。

  • 数据库一些列的值能否自动获取文档里的数据

    2024-05-07 01:24

    不知道你用的是哪个版本,从 3.0.7 左右开始,模板列应该是加了缓存,响应时间基本上控制在可接受范围之内了。目前,我两百行的数据库基本无明显延迟;四百行的数据库大概需要八百毫秒的响应时间,有轻微卡顿感,不过相比之前动辄八秒还是好太多了。相信 D 大,等数据量上去了再优化一下trollface

  • 数据库一些列的值能否自动获取文档里的数据

    2024-05-06 13:40

    是的,数据库不仅可以获取文档的自定义属性,还可以获取文档的内容,非常强大 😋

  • 数据库一些列的值能否自动获取文档里的数据

    2024-05-06 13:32

    我个人是这样用的:有些数据,我觉得不方便放到数据库字段上,或是我希望在文档里能够直接看到,等等,所以写到了文档里面;同时,我又希望在数据库上能够筛选这些数据,不希望重复劳动。在这种情况下,我就会把这个数据用 key: value 的形式写在文档里,然后用模板列写 SQL 来检索这些数据。

    比如,这个音乐专辑标记场景里的「风格」,我喜欢在文档里用块引用,因为一来方便看,二来方便输入(我设置了缩写别名,可以快速输入,如果在数据库字段上的话,不太方便);然后我又有整理同一风格的专辑的需求,所以就用了 SQL 模板列,把文档里的数据取出来。

    image.png

  • 数据库一些列的值能否自动获取文档里的数据

    2024-05-06 11:09

    使用以下代码,把 $key 的值改成你的字段名,比如 $key := "📅制造日期:"

    .action{$key := "<你的字段名,如果有冒号,也得加上>"}
    .action{$ret := queryBlocks "SELECT * FROM blocks WHERE root_id = '?' AND type = 'p' AND content LIKE '?%' LIMIT 1" .id $key}
    .action{if len $ret}
    .action{$val := first $ret}
    .action{trimPrefix $key $val.Content}
    .action{end}
    
  • 被引用的块虚拟引用失效

    2024-04-09 21:41

    哦哦,你应该是理解错了 😂 你回头看看我发的图,我说的是“被”引用的块中的文本(块 2)没有正常显示虚拟引用,而不是引用的块中的锚文本(块 3)没有显示。块 2 没被引用前是正常显示虚拟引用的,被块 3 引用之后就不显示了。

  • 被引用的块虚拟引用失效

    2024-04-09 20:51

    没太理解。加样式失效我能理解,因为样式占用了 data-type,可是浮窗是怎么冲突的 😳

  • 我到底应该基于数据库扩展 " 标签”属性,还是直接使用文档的标签系统

    2024-04-07 17:44

    我明白了,你是用了行间标签,而不是文档标签。文档标签在文档标题的旁边设置,会显示在标题的上方而不是正文中。

    image.png

    如果希望展示行间标签,需要编写 sql 查询才行。

  • 我到底应该基于数据库扩展 " 标签”属性,还是直接使用文档的标签系统

    2024-04-07 17:25

    我在测试工作空间里粘贴后可以直接使用,检查一下代码的完整性?还有就是注意要把链滴的版权信息删掉。

  • 数据库模板列 tip 有点问题

    2024-04-07 12:32

    你的模板列代码应该是换行了 😂

    你的代码应该长这样:

    .action{...}
    .action{...}
    本月
    .action{...}
    

    渲染模板列的时候,会把代码里面的换行符也打印出来,所以你看到的就是

    
    
    本月
    
    

    如果希望消除这些换行,把代码改成一行就行:

    .action{...}.action{...}本月.action{...}
    
  • 我到底应该基于数据库扩展 " 标签”属性,还是直接使用文档的标签系统

    2024-04-07 12:18

    点击模板列的效果和文本列一样,都是展示 cell 的 textarea。不过,如果 cell 里面有可点击的元素的话,是可以点击的。比如,前面模板代码里的标签样式,是我即时写的,只是纯文本加了背景色,点击就是 textarea;其实,可以改为标签的原生样式,点击里面的标签,就可以唤起标签的搜索 tab 了:

    .action{$tags := splitList "," .tags}
    .action{range $index, $tag := $tags}
    <span data-type="tag">.action{$tag}</span>
    .action{end}
    

    模板列里也可以执行 js 代码,扒扒源码应该可以实现你的这个想法?不过我个人感觉还是由官方新增一个专门的标签列会比较好。

  • 我到底应该基于数据库扩展 " 标签”属性,还是直接使用文档的标签系统

    2024-04-06 22:18

    要不试试模板列?

    假如你现在有一个包含两个标签的文档:

    image.png

    加入数据库后,使用模板列,输入以下代码:

    .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}
    

    能够得到这样的效果:

    image.png

    这样做,可以保留你原有的习惯,数据库也有了你说的“辅助过滤的能力”(通过筛选、搜索等),还不需要额外的成本(不需要再维护一个多选列)。不足之处是不能直接在数据库列上修改标签,要回到文档去。

  • 如何通过 SQL 查询自定义属性

    2024-04-06 21:06
    select * from blocks where ial like '%custom-zdy="1"%'
    
  • 文档末尾新增块导致页签崩溃

    2024-04-04 19:52

    siyuan.zip

    这是刚刚重启然后复现的日志,好像什么都没打 😂

  • 分享数据库模板列的一些有趣实现

    2024-03-09 16:54

    提醒一下,这个做法仅适用于较小的数据库,或者没有其他列的数据库,因为一行需要执行一条 sql,50 行就需要执行 50 条 sql,基本上是点一下就要卡一下的程度(秒级卡顿)。我目前有一个 200 行的数据库,有一个这样的模板列,渲染需要 4.5s 左右;另一个 40 行的数据库,有四个这样的模板列,渲染也需要 4.5s 左右(这个时间有点飘忽不定,有时候是 6s 左右)。由于思源目前对于模板列的渲染方式需要在后端计算出整个表格(我猜的,因为假如要对模板列进行筛选,就必须要先计算出所有的值),所以分页并不能提升反应速度。之前我也有想过分享类似的用法,但是被响应时间给劝退了 😂 看下 D 大能不能优化一下这个 @88250

  • 2.10.10 界面刷新重载后元素消失

    2023-10-12 23:35

    默认主题可复现

    image.png

  • S3 大量同步超时后手动同步导致全量上传数据

    2023-08-03 00:12

    又复现了,提示大量超时后手动同步,直接全量上传。感觉只能关闭自动同步了,避免发生超时。image.png

  • S3 大量同步超时后手动同步导致全量上传数据

    2023-08-01 23:59

    这个 OSS 用了还蛮久的,第一次出问题。我后续再看看会不会再复现。

  • S3 大量同步超时后手动同步导致全量上传数据

    2023-08-01 22:44

    日志里只有超时相关的报错,主要还是超时后发生的全量同步问题,这个日志看不太出来。