「Longform」插件使用说明选译

说明:此帖为「Longform」插件(版本:1.0.3)的 Readme 文档翻译。
非逐字译稿,我会(偷懒)省略一些个人认为对插件使用意义不大的部分。
我选择的此插件中文译名是「长卷」。

长卷

「长卷」是一款可以帮助你撰写和编辑小说、剧本以及其他长文本的 Obsidian 插件。

如何安装

(此部分省略不翻,在 Obsidian 社区插件库或作者的 Github 项目下载皆可。)

开始使用

想要开始使用「长卷」插件,你需要在你希望在其下建立「长卷」项目的文件夹上单击鼠标右键,并且选择「标记为长卷项目」(Mark as Longform Project)。你永远都可以将这些文件夹从「长卷」插件中移除,通过在它们上单击鼠标右键,并选择「取消标记为长卷项目」(Unmark as Longform Project)的方式。取消标记一个项目并不会删除任何东西:它只是会阻止「长卷」插件继续追踪那个文件夹,并将其用特定用户界面(UI)的方式展示出来。
一旦你将一个文件夹标记为一个「长卷」项目,你就可以切换到「长卷」窗口,并为其添加「场景」(指一个「草稿」文件夹之下的笔记们),从而开始写作。
目前,「长卷」插件包括以下部分:

项目浏览器

「项目浏览器」是一个 (Obsidian 自带)文件浏览器的替代窗口,其中只会列出你的「长卷」项目。

你所有的项目都可以通过下拉菜单选择。每一个项目都被切分为很多个「草稿」(drafts)。「草稿」指的是内含笔记的文件夹——这些笔记被称为「场景」(scenes)。「场景」在项目浏览器中可以重新排序:

reordering

你也可以通过填写浏览器底部的「新场景」(New Scene)区域,迅速添加新的「场景」。

「场景」选项卡是你完成大多数创作的地方。我们同样设置了一个「草稿」选项卡,可以让你对你的「草稿」进行排序和重命名操作。还有一个「编译」(Compile)选项卡,其详细说明如下:

编译

目前,「编译」选项卡还是相对于未来长期规划的一个简化版本。现在它能够将一个指定的「草稿」文件夹下所有的「场景」输出为单独的一个「. md」文件,这些「场景」会按照先后顺序排列,并以换行符分割。你可以通过一个单选框按钮决定是否要将笔记标题以「一级标题」的形式插入到每个「场景」之前。

(一些原作者对未来「编译」功能怎么发展的吹水,省略不翻。有需要可以去 github 提 issue。)

请小心:根据这个issue,如果你安装了「Templater」插件,并且开启了它的「Trigger Templater on new file creation」选项,那么你在编译非常大的草稿文件(超过 20w 个单词那种)时,可能会导致 Obsidian 卡死。所以如果你安装了「Templater」插件,请在编译前关闭上述那个选项。

场景限定主题风格

「长卷」插件会自动将一个「. longform-leaf」对象连接到任何从属于某个「长卷」项目的笔记的内容面板上。这意味着你可以为你的写作环境添加定制的 CSS 片段——并且它只适用于你的写作环境。举个例子,你可以在 Obsidian 的其他笔记中使用黑暗主题,而在「长卷」项目写作中使用明亮主题,相关的片段代码可以这样写:

.longform-leaf {
  --background-primary: white;
  --background-primary-alt: white;
  --background-secondary: white;
  --background-secondary-alt: white;
  --text-selection: #aaa;
  --text-normal: black;
  color: black;
}

.longform-leaf .suggestion-item.is-selected {
  background-color: var(--text-accent);
}

.longform-leaf .view-header {
  background-color: white;
}

「长卷」插件自身的用户界面则会一直调用现有的 Obsidian 外观主题,所以它应该看起来一直和你选择的主题很适配。

未来的特色功能

(此部分省略不翻)

索引文件

「长卷」插件的所有功能都建立在你创建「长卷」项目时自动生成的一个「索引」文件上。这个文件默认命名为「Index. md」,并且存在于你的项目根目录下;你在标记一个文件夹为「长卷」项目时,可以指定「索引」文件的名称和路径。
「索引」文件是「长卷」插件用于储存你的项目元数据的特殊文件。选择用你库里的一个文件而非插件选项之类的东西来做这些事情,其用意是经过深思熟虑的:如果明天「长卷」插件完蛋了,关于你项目结构的重要信息也不会丢失。换句话说,本插件的形式是稳定的。
「索引」文件的「头部信息」(frontmatter)是对你项目内容的索引。从技术角度来说这个文件是可编辑的,但这样做可能会带来让你始料未及的后果——特别是当你对「索引」文件修改太过,以至于它和你库里文件夹的内容都不匹配了的时候。
「长卷」插件会自动让你的「索引」文件和你的库保持同步,当你对项目做出修改时就会更新它。这意味着「索引」文件会被频繁地重写——所以请不要手动在这个文件里储存任何有意义的信息。

产品哲学

(此部分省略不翻,大致就是吐槽之前 Scrivener+Indesign+Ulysess 等等的工作流不好用,然后吹 Ob。)

故障排除

首先声明最重要的一点:「长卷」插件做了特殊设计,以确保永远不会改动你的笔记内容。它唯一会重写的是一个项目的「索引」文件。这样「长卷」插件就不能主动删除你的笔记——或者被动害它丢失。
「长卷」插件通过对你磁盘上文件状态的一系列复杂监控操作,来构筑一个项目的元数据。尽管我试图让它覆盖尽可能多的小概率情况,但「长卷」插件对项目的理解和真实发生的进程之间仍然存在脱节的可能。这可能表现为下拉菜单里的项目点击没有反应,或者明明项目文件夹里有笔记,「场景」列表里却没出现相应的「场景」。如果你遇到这样的事,在本插件的设置页面有个巨大的红色按钮,上面写着「停止追踪所有项目」(Untrack All Projects)。点击它会刷新「长卷」插件对所有文件是否属于「长卷」项目的判断。使用这个按钮后,你可以通过在文件浏览器里相应文件夹上手动点击鼠标右键的方式,重新标记它们为「长卷」项目。这样做应该有希望让一切重归正轨。如果还不管用,请向我提交 issue!

赞助

许可

(此二部分省略不翻)

9 个赞

非常好的翻译。 :+1:

1 个赞

非常好的翻译! :laughing:

1 个赞

非常棒,我计划入手这个插件了

其实更期待有scrivener那样有层级的插件,或者说在ob中模拟scrivener的操作,那真就太棒了。

很高兴这个帖子能让你了解到这个很棒的插件!

我在接触 Obsidian 前是使用 Scrivener 来写作的,感觉在 ob 中借助 longform 和 kanban 等插件可以还原大约八成的 Scr 手感。等我工作流稳定后大概会来论坛开帖分享。

5 个赞

期待工作流的分享。另外这汉化说明能转发到“软通达”的微信公众号上吗?

开心,国庆快乐呀

1 个赞

没问题,欢迎转载。

已利用Quicker动作提取对照表汉化js文档对Longform插件进行了界面汉化。
操作方法如下贴介绍:汉化Obsidian插件可以一键搞定

附中英文对照表内容:
t11 = text(“Compile!”);
t11 = text(“编译!”);
t = text(“Scenes”);
t = text(“场景”);
t = text(“Drafts”);
t = text(“草稿”);
t = text(“Compile”);
t = text(“编译”);
item.setTitle(“Delete”);
item.setTitle(“删除”);
item.setTitle(“Open in new pane”);
item.setTitle(“在新窗格中打开”);
item.setTitle(“Rename”);
item.setTitle(“Rename”);
title.setText(“Add to Longform”);
title.setText(“添加到 Longform”);
.setButtonText(“Add to Longform”)
.setButtonText(“添加到 Longform”)
name: “Draft 1”,
name: “草稿 1”,
folder: “Draft 1”,
folder: “草稿 1”,
text: “If you find Longform to be misbehaving (logging errors in console, not syncing changes to index files) you can try resetting tracked projects. This will cause Longform to “forget” that various project folders in your vault should be watched and managed by Longform. You can then re-mark those folders as Longform projects by right-clicking them in the file explorer. You will not lose any notes.”,
text: “如果发现 longform 行为不正常(在控制台中记录错误,不能同步对索引文件的更改) ,可以尝试重置跟踪项目。这将导致 Longform“停止”对库中项目文件夹的监视和管理。然后,您可以通过在文件浏览器中右键单击这些文件夹,将它们重新标记为长格式项目。你不会丢失任何数据。”,
text: “Untrack All Projects”,
text: “取消跟踪所有项目”,
title: “Click to have Longform untrack all projects.”,
title: “单击以使Longform取消跟踪所有项目。”,
name: “Open Longform Pane”,
name: “打开 Longform 面板”,
.setTitle(Mark as Longform Project)
.setTitle(标记为 Longform 项目)
.setTitle(Unmark as Longform Project)
.setTitle(取消标记为 Longform 项目)
const indexFileField = this.addField(contentEl, “Index File Name”, “Index”, “Index”, “A project’s index file acts as storage for all the metadata necessary to make a Longform project work. You can edit it (it’s Markdown), but Longform will mostly be reading and writing it directly.”);
const indexFileField = this.addField(contentEl, “索引文件名称”, “Index”, “Index”, “项目的索引文件用于存储 Longform项目工作所需的所有元数据。您可以编辑索引文档(它是Markdown文档),但它主要供于读取数据。”);
const draftsFolderField = this.addField(contentEl, “Drafts Folder Name”, “Drafts/”, “Drafts/”, “Every folder inside your drafts folder is a single draft of your project. You can name drafts whatever you’d like: Drafts/1/, Drafts/First Draft/, etc. Each draft folder will hold the individual files (scenes) that make up your project. Scenes are ordered manually. Other folders and files in the project are always reachable in the Obsidian file explorer.”);
const draftsFolderField = this.addField(contentEl, “草稿文件夹名称”, “Drafts/”, “Drafts/”, “草稿文件夹里的每个文件夹,都是Longform项目的一个草稿。你可以给草稿命名: 草稿/1/,草稿/初稿/等等,每个草稿文件夹将保存组成项目的单个文件(场景)。场景支持手动排序。项目中的其他文件夹和文件总是可以在Obsidian文件列表中访问。”);
This file is managed by Longform. Please avoid editing it directly; doing so will almost certainly confuse the plugin, and may cause a loss of data.
此文件由Longform管理。请不要直接编辑,避免混淆插件或导致数据丢失。
Longform uses this file to organize your folders and notes into a project. For more details, please see The Index File section of the plugin’s README.
Longform 使用此文件将文件夹和笔记组织到项目中。有关详细信息,请参阅 The Index File 插件的自述文件。
new obsidian.Notice(${path} is now a Longform project.);
new obsidian.Notice(${path} 已标记为 Longform 项目。);
new obsidian.Notice(${file.path} is no longer a Longform project.);
new obsidian.Notice(${file.path} 不再是 Longform 项目。);
attr(input, “placeholder”, “New Scene…”);
attr(input, “placeholder”, “新建场景…”);
attr(input, “placeholder”, “New Draft…”);
attr(input, “placeholder”, “新建草稿…”);
label0.textContent = “Write compiled result to:”;
label0.textContent = “将编译结果写入:”;
p0.textContent = “The parent folders of this path must already exist in your vault.”;
p0.textContent = “此路径的父文件夹必须已存在于Obsidian的库中。”;
label1.textContent = “Add note titles as chapter headings”;
label1.textContent = “添加笔记标题作为章节标题”;
p1.textContent = “When selected, this option inserts a # tag with each note’s title above\n that note’s contents in the compilation result.”;
p1.textContent = “选中此选项后,将在编译结果中笔记内容的上方插入一个「# 标题」。”;
‘Longform written and maintained by Kevin Barrett.’;
‘Longform 由 Kevin Barrett 编写和维护。’;
‘Read the source code and report issues at https://github.com/kevboh/longform.’;
‘阅读源代码并报告以下问题: https://github.com/kevboh/longform。’;
‘Icon made by Zlatko Najdenovski from www.flaticon.com.’;
‘Icon 来自 Zlatko Najdenovskiwww.flaticon.com.’;
text: “If you find Longform to be misbehaving (logging errors in console, not syncing changes to index files) you can try resetting tracked projects. This will cause Longform to “forget” that various project folders in your vault should be watched and managed by Longform. You can then re-mark those folders as Longform projects by right-clicking them in the file explorer. You will not lose any notes.”,
text: “如果发现 longform 行为不正常(在控制台中记录错误,无法同步对索引文件的更改) ,可以尝试重置跟踪项目。这将导致 Longform 停止监视和管理库中的各种项目文件夹。您可以通过在文件列表中右击这些文件夹,将它们重新标记为 Longform 项目。在此过程,你不会丢失任何文本数据。”,
text: “Untrack All Projects”,
text: “取消跟踪所有项目”,
title: “Click to have Longform untrack all projects.”,
title: “单击以使Longform取消跟踪所有项目。”,
p.innerHTML = Compilation is a <a href="https://github.com/kevboh/longform/labels/compile">work in progress</a>. While I plan to add support for many custom workflows, for now you can use the Compile feature to stitch all the scenes in a draft together into one big note.;
p.innerHTML = 编译是一个 <a href="https://github.com/kevboh/longform/labels/compile">进行中的工作</a>。目前您可以使用编译功能将草稿中的所有场景结合成一个长文档,后续计划为更多自定义工作流添加支持。;

2 个赞

汉化辛苦了!(紫薯布丁)

Scrivener多年前曾经使用过,对它的设计很认可,书写的时候很舒服,现在感觉ob中有不少地方都有Scrivener的影子

1 个赞

不知道有没有打包好的Longform中文插件包,蚕子很辛苦,但理解快捷翻译这一步也很难。

我在ob 扣扣群内找到了,搜索longform汉化版
在这里贴一下,如果不妥我就删掉。
链接: https://pan.baidu.com/s/1rwwaDFWsZhIDBypZNfLopA 提取码: snul
–来自百度网盘超级会员v5的分享

3 个赞

很棒,感觉可以用来整合项目文档或者写论文

1 个赞

我制作了一个简单说明视频,希望能给您带来收货

2 个赞

QQ20221128-214532
为什么会出现这个问题,不能点击呢?