保存布局支持同名覆盖

本贴最后更新于 723 天前,其中的信息可能已经时移世改

现在的保存布局功能对我来说是刚需,但是也因此发现了问题,我的布局不会是一成不变的,但是如果我要改动布局,我就必须先删除原来的布局,才能保存同名的布局。希望这里能和模板一样支持覆盖操作。


其实模板这边,也很希望能优化成能直接在思源笔记中操作,比如重命名、删除等。

模板这边还有个疑惑,既然是 md 文件,那为什么还要带思源的 id,我在文本软件里正则替换的时候,如果复制带思源 id 的模板,就会索引报错,应该就是因为 id 重复。然后经过测试发现,id 根本不对模板样式起任何作用,那么导出的这个 md 文件为什么要带思源 id?直接去掉模板内的 id 字段不是更好,也不会再报错了。

又不能思源内编辑,又带思源格式,格式粘贴进去还会报错,就两边都不靠,两边的缺点还都有。

  • 思源笔记

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

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

    24808 引用 • 102060 回帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 感谢提议,布局同名覆盖下个版本改进 Issue #7893 · siyuan-note/siyuan

    • 可以在 /模板 中删除模板
    • 模板可以通过文档导出,但高级操作(比如内置函数、变量等)只能在外部编辑
    • 模板使用统一的 kramdown 语法,去掉 ID 可能会导致解析问题
    1 回复
  • Gaffey via iPhone

    可以删除模版可以解决一部分需求,感谢提醒。

    模板导出成 md 不能满足我的需要,因为我要的就是带思源特有样式的内容,我会复制后在外部文本编辑软件批量添加到对应的节点,如:

    在每题习题后加入蓝色外观的引用块用来放解析。批量调整格式在思源的替换功能里好像是无法操作的。

    所以我现在的流程是:思源制作好模板导出成模板,然后打开 md 源文件,去除 md 文件里的 id 信息,然后批量粘贴进文本里,再粘贴进思源。(部分流程用 quicker 简化)

    如果有更简便的方法的话,非常感谢告知。

    1 回复
  • 这个场景建议通过调用内核 API 来实现,不要使用模板机制。模板机制主要是用于一次性输出模板化的重复内容,通过外部增量更新模板,然后再思源中调用模板的话需要折腾的流程太长且容易出错。

    1 回复
  • Gaffey

    感谢 D 大回复,我完全不懂编程所以不知道怎么调用内核 API,老实说 API 是什么我现在还一窍不通……

    我的描述可能不够清晰,我确实一开始通过外部复制模板内容,再批量粘贴到外部文本编辑器,再粘贴回思源,这样的操作遇到过报错,系统需要重建索引。

    但是我去除模板中的思源 id 之后就没有遇到报错了,所以我只能用外行的思维想:模板中的 id 信息如果保存,批量粘贴的时候由于多个重复的 id,会让思源出错,所以去掉 id 信息后,它们就单纯是带着样式属性的文字内容,粘贴后自动渲染成我需要的样式。

    这样的操作能够成功,我觉得就说明模板的 md 文件里的思源 id 不是必要的,我想这个 id 应该就是思源内的模板文件的 id 信息,那么即使在思源内通过模板调用出来,同样要经过思源检测到 id 重复,再重新命名 id。

    那直接去掉模板中的思源 id 不是节约了一个步骤,直接赋予块新的 id 就可以了吗?不过这也是我完全外行的想法,可能模板里的 id 信息有其他必要的意义吧。

    例如下面这个是模板的内容(一个蓝色引述块,其中有一个 6 级标题)直接粘贴进思源会报错:

    > ###### 【答案】 > {: id="20230103093231-k03xom4"} > > {: id="20230321164027-z5y07cp"} {: id="20230103093228-b2u4jr9" style="color: var(--b3-card-info-color); background-color: var(--b3-card-info-background);"}

    我删除 id 信息就变成如下内容

    > ###### 【答案】 {: style="color: var(--b3-card-info-color); background-color: var(--b3-card-info-background);"}

    这样的文本粘贴进思源我没有遇到过报错。

    1 回复
  • 所以说不要直接折腾底层格式,通过封装好的 API 来处理才是正确路径……

    1 回复
  • Gaffey

    首先 API 我不懂,目前也不会用。

    其次,我想知道我这样做会有什么问题吗?删除 id 信息之后我并没有遇到过报错。

    1 回复
  • 删除 ID 的话我不确定会不会有解析问题,目前没有时间看,设计上是不建议这样操作的。

    1 回复
  • zxhd86 via Ubuntu

    目前模板的编辑体验很割裂,简单的可以在思源内部编辑并导出,复杂的就必须在外部编辑,不然就会与思源自身语法冲突而被渲染转义。

    在外部编辑模板的时候也要保存 id 吗?说实话这样子对于编辑体验影响很大。

    1 回复
  • 最好是有 ID,没有 ID 的情况我这里几乎没有测试过是否可用。

  • Gaffey

    这样吗,我理解是普通 md 文本直接粘贴进思源可以,我粘贴带格式的文本应该没什么区别,目前也没有出过问题。带 id 的内容粘贴进思源有报错过,但是不带 id 的文本粘贴进思源一直很丝滑。

    我完全不懂技术所以就是凭经验摸索的,目前为止没有出过问题,有带 id 的文本虽然会提示要重建索引,但是没有丢失过信息。

    大致情况是这样,反馈一下,我暂时也不纠结这个了。

请输入回帖内容 ...

推荐标签 标签

  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    335 引用 • 324 回帖
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    20 引用 • 23 回帖 • 737 关注
  • RYMCU

    RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。

    4 引用 • 6 回帖 • 53 关注
  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    315 引用 • 547 回帖
  • Anytype
    3 引用 • 31 回帖 • 12 关注
  • Windows

    Microsoft Windows 是美国微软公司研发的一套操作系统,它问世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。

    226 引用 • 476 回帖 • 2 关注
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 702 关注
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 384 回帖 • 6 关注
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1708 回帖
  • flomo

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

    6 引用 • 140 回帖
  • 电影

    这是一个不能说的秘密。

    122 引用 • 608 回帖
  • 智能合约

    智能合约(Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于 1994 年由 Nick Szabo 首次提出。

    1 引用 • 11 回帖 • 1 关注
  • LeetCode

    LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!

    209 引用 • 72 回帖
  • Q&A

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

    9409 引用 • 42877 回帖 • 110 关注
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖 • 2 关注
  • Flutter

    Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

    39 引用 • 92 回帖 • 1 关注
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3455 回帖 • 165 关注
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    36 引用 • 155 回帖 • 2 关注
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 431 关注
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    90 引用 • 59 回帖 • 6 关注
  • Vue.js

    Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

    267 引用 • 666 回帖 • 1 关注
  • 微信

    腾讯公司 2011 年 1 月 21 日推出的一款手机通讯软件。用户可以通过摇一摇、搜索号码、扫描二维码等添加好友和关注公众平台,同时可以将自己看到的精彩内容分享到微信朋友圈。

    132 引用 • 796 回帖
  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 567 关注
  • Outlook
    1 引用 • 5 回帖
  • Excel
    31 引用 • 28 回帖
  • WordPress

    WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。

    66 引用 • 114 回帖 • 200 关注
  • SMTP

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4 引用 • 18 回帖 • 637 关注