obsidian新手不完全指南 您所在的位置:网站首页 word开始的编辑在哪里打开 obsidian新手不完全指南

obsidian新手不完全指南

2024-06-05 19:55| 来源: 网络整理| 查看: 265

适用于所有人 ob是什么

Obsidian is a powerful knowledge base on top of a local folder of plain text Markdown files.

这是ob官网对ob的核心介绍。翻译过来就是:“obsidian是构建在一个本地文件夹中的知识库,文件夹中放的是一些纯文本Markdown文件。”

针对这句话有几点需要阐明的是:

ob是知识库管理工具,不单单是文字编辑器,和word,vim,notepad++这些有本质上的区别。学习ob的目的不仅仅是为了记笔记,而更多的是打造自己的知识体系,ob提供笔记管理的工具罢了。这些工具包括但不限于:优化输入体验(vim模式,模板,自动补全,代码高亮,智能列表,折叠缩进,智能粘贴,图片、音频、视频、网页等多媒体插入),笔记关联(双链,标签,块引用,关系图谱),高度开放的插件系统(目前计算机技术能实现的东西基本上都能在ob里实现,只是适不适合和值不值得的问题)。基于此,把ob理解为一款编辑器是很初级的看法。 ob是本地的软件。顾名思义,ob不依赖于网络就可以正常运行,所有的数据都保存到本地,数据永远在自己手里。 ob知识库就是一个文件夹。ob管理的所有数据都存在于一个文件夹中,这个文件夹称之为库(vault),包括配置文件和笔记文件。其中配置文件以.obsidian存在于库的根目录中,管理着ob的主题,样式,插件和一些运行时的数据。 ob构建于Markdown文件之上。Markdown文件是以.md结尾的文件,内部是纯文本,可以用任何编辑器打开。md文件不仅仅有笔记的记录,还有格式的记录。 Markdown是什么

首先要明白的是一篇可读性好的笔记可以粗浅的分为内容和格式两个部分,在计算机中可以用标记语言来同时描述内容和格式,主流的是HTML/XHTML,是由一对尖括号进行标记,如下所示,其中:

被称为标签,描述内容的类型,以便赋予内容默认的格式,除此之外还有、

、等,分别代表标题,段落,音频 color="red"描述的是样式,即文字的格式是什么样的,通常可以独立成一个后缀为.css的文件 被> { await child_process.exec(openTerminalCommand) }

以下脚本在quickadd中配置成命令,划选关键字作为文件夹名称,同时在文件夹下创建同名笔记。

module.exports = async (params) => { //获取选区并替换成链接 let view = params.app.workspace.activeLeaf.view let selection if (!view) { } else { let view_mode = view.getMode(); switch (view_mode) { case "preview": break; case "source": if ("editor" in view) { selection = view.editor.getSelection(); view.editor.replaceSelection(`[[${selection}]]`); } break; default: break; } } let noteName = selection //构造文件路径 basePath = params.app.vault.adapter.basePath currentFilePath = params.app.workspace.activeLeaf.view.file.path fullPath = basePath + "\\" + currentFilePath createNewDirPath = fullPath.substring(0, fullPath.lastIndexOf('/')) + '\\' + noteName await params.app.vault.adapter.fs.mkdirSync(createNewDirPath) const fileDescription = params.app.vault.adapter.fs.openSync(createNewDirPath+ '\\' + noteName + '.md', 'w') await params.app.vault.adapter.fs.closeSync(fileDescription) }

利用dataview提取目的标签所在的行内容形成表格,用于整库的标签汇总:

const files = app.vault.getMarkdownFiles() let arr = files.map(async(file) => { const content = await app.vault.cachedRead(file) let lines = await content.split("\n").filter(line => line.includes("#todo")) //console.log(lines) return ["[["+file.name.split(".")[0]+"]]", lines] }) Promise.all(arr).then(values => { const beautify = values.map(value => { const temp = value[1].map(line => { return line.trim().split('#')[0].substr(2)}) return [value[0],temp] }) const exists = beautify.filter(value => value[1][0] && value[0] != "[[Dashboard]]") dv.table(["文件", "出处"], exists) })

利用dataview填充模板,在笔记内显示入链和出链,这里用的是dataview的Sql语法:

list from [[#]] list from outgoing([[#]])

总的来说,脚本配合插件能做到你想做的任何事,管中窥豹,可见一斑。

插件开发

Obsidian Plugin Developer Docs | Obsidian Plugin Developer Docs (marcus.se.net)

上述链接是目前为止针对插件开发最全面的资源,包括:

obsidian中Anatomy of a plugin,vault,workspace基本概念 commands,status bar, settings, models, events, HTML elements, Editor 等概念 React和Svelte搭建的插件模板 示例插件 插件的发布流程 API参考,比官方的更易读 Manifest参考 常用资源 obsidianmd/obsidian-sample-plugin (github.com):插件模板 obsidianmd/obsidian-api (github.com) pjeby/hot-reload:插件热加载,类似于vscode中的live serve,用于插件开发 (转载)Obsidian 开发相关(简单引导) - 开发讨论 - Obsidian 中文论坛 quickadd源码及文档-github:包含quickadd提供的四个类型、数个示例、quickadd API、格式语法、inline script、macros Dataview 文档-githubio


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有