Obsidian 插件:【Readme】Title renamer

Obsidian 插件:【Readme】Title renamer

插件名片

  • 插件名称:Title renamer
  • 插件作者:Peter Strøiman
  • 插件说明:保持笔记中的顶部标题与文件名同步。
  • 插件分类:[‘obsidian 插件 ’, ‘readme’]
  • 项目地址:点我访问
  • 国内下载地址:下载安装

概述

保持笔记中的顶部标题与文件名同步。

原文出处

下面自述文件的来源于 Readme


Readme(翻译)

下面是 title-renamer 插件的自述翻译

黑曜石标题重命名器

插件用于在 Obsidian 中保持内联标题与文件名同步。

注意:目前仅在桌面版上运行。

描述

当您重命名一个文件时,此插件将在文档中搜索一个“H1”。如果找到了,并且当前文本与旧文件名匹配,则将更新以反映新文件名。

只有第一个“H1”会被替换。

背景?

我个人更喜欢在文件内容中包含页面标题,并在 Obsidian 中禁用“显示内联标题”。

  • 我更喜欢将 markdown 文件的内容自包含,这样在另一个编辑器中阅读内容时,我不会错过重要的上下文。
  • “标题”不一定是文件名
    • 我可能希望有几个带有相同“标题”的笔记,因此我需要为实际文件名添加一些额外的上下文。
      • 例如,我可能有一篇关于“领域驱动设计”概念的笔记,以及一篇关于同名书籍的埃里克·埃文斯的笔记。后者的文件名可能是“Domain-driven Design (book)”,但显示的标题中不应包含“(book)”。
    • 有时,标题不是有效的文件名。
      • 我会对一些客户做笔记。丹麦公司的名称以“A/S”结尾,表示一家公开交易的公司。文件名中的“/”不是有效的,但我希望在标题中显示它。 这个插件主要解决了在使用模板创建新笔记时的一些烦恼。创建新笔记时,Obsidian 会将其命名为“Untitled”。我的模板会在内容中填充 # Untitled。现在文件名已经突出显示,准备让我输入笔记的真实名称。但在完成这一步之后,只有文件名被更改,而模板生成的内联标题没有被更改。这个插件修复了这个问题。

什么都没有发生,为什么?

如果文件名和 h1 同步,但什么都没有发生,那么可能是 Obsidian 的元数据缓存不同步。

Obsidian 有一个数据结构,表示数据的丰富模型,指定了“这里是标题”,“这里是正文文本”,“这里是代码块”等。这是插件用来查找标题的位置和文本的内容。

当文件更新时,这是对整个未处理文本文件的操作。如果元数据与最新内容不同步,那么上一步的位置就不再有效。如果发生这种情况,插件将不会修改文件,因为这可能会损坏文件(一个例子可能是用新标题覆盖前置元数据)。

这与“Obsidian 文件名标题同步”有何不同?

有一个备用插件,你可能想看看:

Obsidian文件名标题同步

这个插件处理了一些相同的问题,但似乎有一个不同的理念,即文件名和标题应该始终保持同步。

这使得“Obsidian 文件名标题同步”比我的插件更加激进。

例如,默认设置会:

  • 当您在 Markdown 中更改标题时,“它”会重命名文件。
  • 当您打开一个没有标题内容的文件时,它会添加一个标题。

我不希望出现这两种行为。如果我在 Markdown 内容中更改标题,那是我故意采取的行动,目的是让标题与文件名不同(否则我只需重命名文件)。而在内容中创建标题是一个我使用模板来解决的问题。

待办事项(也许)

目前,我可以想象这两个改进。

在移动设备上使其可用

应该足够简单。目前这取决于节点的“path”模块来从旧文件名中获取预期的旧标题。这可以很容易地用正则表达式替换,但特别需要测试 Windows 文件系统和 Linux/MacOS 之间的核心差异。

使用本地化的不区分大小写搜索

在标题比较中处理本地化的不区分大小写。这将需要一个设置页面,用户可以指定他们实际写笔记的语言。

支持这项工作

您可以在这里支持我的工作:



反馈交流

其他渠道

版权声明