Post by author

按作者聚合

包含 huajin 的文章列表

obsidian-sticky-heading

让当前内容的标题始终处于页面上方

sticky heading 插件可以让当前内容的标题始终处于页面上方 image.png 插件只提供了一个设置,就是标题固定后距离顶部的空间大小,默认为 0 像素,你可以设置为例如五像素 5px 等,还可以设置其他单位例如 相对单位 rem image.png 这是因为 obsidian 用的是 codemirror 编辑器,codemirror 编辑器采用只渲染可见范围内的内容的方式以此做到能够无压打开超大文本。每当用户滚动浏览文档或文档本身发生更改时,当前视窗会重新渲染。正因为这个原因,当标题距离当前页面太

Huajin

Huajin

Pkmer

Obsidian Wallpaper

为库添加动态背景图

本插件不需要配置,只需要在设置中选择你想要用的壁纸即可。 setting.png skyandsea.png !skyandsea.mp4 stars1.png !stars1.mp4 stars2.png !stars2.mp4 stars3.png !stars3.mp4 campfire.png !campfire.mp4 现有五个背景改自 codepen.io 的五个项目

Huajin

Huajin

Pkmer

Obsidian Shiki Plugin

为超过100种语言提供更好的语法高亮显示等一系列功能

这个插件通过 Expressive Code 将 shiki 集成到 Obsidian 中,为超过 100 种语言提供更好的语法高亮显示。 这个插件在阅读,实时预览和编辑模式下能正常使用。 添加带有行号、自定义标题、行突出显示 image.png 默认渲染结果 image.png shiki 插件渲染 image.png 语言 配置 代码内容 python showLineNumbers 代码内容 python title="a-title-for-this-code-block" 代

Huajin

Huajin

Pkmer

Obsidian 样式 - 隐藏右侧标签页标题

在 obsidian 中,我们可以通过拖拽标签页移动页面,可以将页面置于左侧、右侧以及中间的上下侧等。当我们把页面置于两边时,如果你觉得标签页的标签独自占了一整行,那么你可以使用下面的 css 隐藏,且在鼠标放上去时再显示 效果 collapsible-header.gif 该 css 来自:obsidian-minimal-theme-css-snippets/[ui] Collapsible Right Headers.css at main · replete/obsidian-minimal-theme-css-snippets

Huajin

Huajin

Pkmer

Obsidian 样式 -Thino 列表模式日期样式调整

Thino 专业版开启了 『在列表模式中展示日期标记』后,在列表模式中会出现日期标记,并且点击后可以折叠(Cmd + 点击还可以单独展示当天所有 thino)。 image.png 对于这个部分我做了一下样式修改:放大、居左、更明显的鼠标悬浮变化 image.png css div[data-type=thinoview] .memolist-wrapper .memolist-container .day-mark { justify-content: left; width: fit-content; margin:

Huajin

Huajin

Pkmer

Obsidian 样式 -Thino 展开增强

Thino 专业版开启了 『在列表模式中展示日期标记』后,在列表模式中会出现日期标记,并且点击后可以折叠(Cmd + 点击还可以单独展示当天所有 thino)。添加一个折叠后展开的视觉优化 PixPin2024-03-2314-06-30.gif

Huajin

Huajin

Pkmer

Obsidian 样式 - Thino 伪悬浮编辑框

thino 伪悬浮编辑器,快捷键唤出编辑器

image.png 添加 css 的方法见:Obsidian的CSS代码片段 需配合 obsidian-style-settings 插件使用,在 style setting 中其中 Floating Editor 选项后,在快捷键中添加自定义快捷键,然后就可以在 thino 中用快捷键唤出编辑器。同样,关闭编辑器也需要使用刚刚的快捷键。 css / @settings name: Thino Style id: thino-theme-floating-editor settings: - id: floating-edi

Huajin

Huajin

Pkmer

Obsidian 样式 - 更小的标签页标题栏

标签页标题栏是指标签页下方的那段标题栏 image.png 提供两种美化方式(css 代码来自<https://github.com/replete/obsidian-minimal-theme-css-snippets>) floating-tab-header.gif css / Floating Tab Header With inline title enabled, it seems a waste to take up vertical space of the 'view header' espec

Huajin

Huajin

Pkmer

Obsidian 样式 - 分割文件管理器

如果你的根目录有太多文件夹,不方便查找,可以试试这个 css。他可以在文件文件管理器中添加一些分割线,帮助你为文件分区。 使用前: image.png 使用后 image.png 来源:<https://github.com/replete/obsidian-minimal-theme-css-snippets> css / File Explorer Separators So this is super handy, I found a way to add visual separators below a

Huajin

Huajin

Pkmer

如何让 mousewheel-image-zoom 插件适配 pdf++ 嵌入块

mousewheel-image-zoom 插件可以让你很方便的用鼠标滚轮就能调整插入 obsidian 页面中的图片尺寸。pdf-plusreadmepdf++ 插件则是目前 obsidian 中最好用的 pdf 增强插件。如果你用过 pdf++,那么你应该知道这个插件提供了一个嵌入部分 pdf 的功能,体验非常好 image.png 你可以像截图一样截取 pdf 中的一部分,该部分的链接会自动复制到你的剪切板中,你只需要到需要嵌入的文章中粘贴即可把刚刚截取的部分嵌入你的 markdown 文章中。这样做不仅让你的文章与该 pdf 建立了双链

Huajin

Huajin

Pkmer

image-memo

更好的展示你的图片,给你图片打上标签

image.png 这个插件有他的私有语法,如果你担心语法污染或者担心以后不使用 obsidian 的话,不建议使用。 语法 imemo !image type=art 使用 imemo 代码块,直接把图片的链接放入即可。但是想要变成上方那样的图片,还需要更多的参数。 参数 默认值 输入值 是否必须 功能描述 - -- ty

Huajin

Huajin

Pkmer

为何我的文件变成一片空白

obsidian 更新到 1.5..8 版本以后,很多人(包括我)的 obsidian 的文件树中的文件全空了。打开安全模式,文件又恢复了,可以确定这是插件导致的。我使用的与文件相关的插件只有 bartender,只关掉这个插件,恢复正常,锁定问题来源,接下来找解决方案。 image.png 打开 bartender 插件的 GitHub 仓库,可以看到 issue 中多了一条 1.5.8 字样的内容,有很多其他使用了这个插件的人都遇到了相同问题。在 obsidian 刚更新到 1.5 版本的时候这个插件就失效了一次,当时也是有大佬出手修复了这

Huajin

Huajin

Pkmer

prettify: Markdown 美化器

如果你不会用 obsidian-linterreadmelinter 可以试试这个已经写好的插件格式化你的 Markdown 的格式。 该插件提供了五个功能,需要用快捷键触发(默认为 <kbd>Ctrl+Alt+L</kbd>): // 修改前 :: a b c x y z // 修改后

Huajin

Huajin

Pkmer

prozen 禅模式启动

该插件可以在启动时隐藏掉除了你要键入的内容以外其他内容,让你不受干扰。包括各个图标、面板、滚动条等。 prozen

Huajin

Huajin

Pkmer

Dataview 语法实战 - 如何把一列内容拆到两列

把某一行中的某列内容拆分成两列,更方便展示

用个例子解释下我们想要做什么 统计所有标题『学习』下的无序列表,并且按照标签分列 image.png 上图中我们有以上两个文件,他们都有标题『学习』以及一些带标签的无序列表。我们需要得到以下的 dv 检索结果 image.png 分别把带有数学标签和语文标签的拆分成两列,且维持依旧在同一行。 结果如下 dataview table without id rows.file.link[0] as 日期, filter(rows, (x) =contains(x.L.tags,"数学")).L.text as "数学

Huajin

Huajin

Pkmer

vscode-editor

提供查看和编辑各种代码文件和代码块的功能

它基于 Monaco Editor(VSCode Editor 内核)开发,支持查看和编辑各种代码格式文件。默认包括  C 、 C++ 、 C 、 Go 、  HTML 、 Java 、 JavaScript 、 JSON 、 Python 、 Ruby 、 Rust 、 Shell 、 XML 、 YAML 、 ini,可以在插件设置中添加更多语言。 有了这个插件后,你不再需要打开另一个编辑器来查看或编辑某个代码文件,一切都在 Obsidian 中完成。

Huajin

Huajin

Pkmer

插件名人堂

介绍一个统计了关于插件各项数据的网站

mProjectsCode/obsidian-stats (github.com)](https://github.com/mProjectsCode/obsidian-stats) 这是一个统计分析 Obsidian Release 仓库的项目,该项目建立了一个可视化的网站 [About Obsidian Stats (moritzjung.dev). image.png 在这个网站中,我们可以查看 obsidian 上架的所有插件、作者等信息、也可以查看所有插件的下载状态(还有与主题、ob 本身相关的信息) image.png 可

Huajin

Huajin

Pkmer

如何给插件添加中文(超详细)

如何给插件添加中文

众所周知,大部分插件都只有英文,例如插件的设置面板,或者是插件增加的右上角的提示等。 本教程提供给看得懂英文的小白,希望能够为你心爱的某个插件增加中文翻译的用户。我会尽量写的详细点,不需要你有很专业的代码经验。 具体操作可以看 git的安装与配置(详细) - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/597447255)、[npm超详细安装(包括配置环境变量). 具体操作就是打开插件的 GitHub 仓库,点击右上角的 fork 按钮(需要注册 GitHub 账号)。相当

Huajin

Huajin

Pkmer

如何给浅色模式和深色模式写不同的 css 样式

在 obsidian 中,我们可以写 css 文件为页面中的元素定制各种样式,那么如何分别给深色模式和浅色模式中设置不同的样式呢 <kbd>ctrl shift i</kbd打开开发者模式,在元素的最上方 body 中可以看到有一个类 .theme-light 或者 .theme-dark。当 obsidian 处于浅色模式下,body 存在前者,处于深色模式下时存在后者。我们可以借助这个区别来编写 css 分别给深色模式和浅色模式中设置不同的样式。 举个例子,写两个选择器分别选中深色和浅色模式,然后给他们添加同一个变量但是给不同的变量值。然后

Huajin

Huajin

Pkmer

Obsidian 样式:可滚动的 Dataview 查询结果

除了 limit,你还可以这样限制 dataview 的输出结果

当你使用 Dataview 检索时,如果查询结果过多,但是我们又不想用 limit 来限制获取的结果时,可以试试用下面这段 css。它可以把 dataview 查询结果的长度限制在一定长度,超出这个长度就会出现滚动条,以滚动的方式浏览下面的结果。 效果如图: Pasted image 20231008183416.png 代码中的两个 400 px 代表把 dataview 和 dvjs 的查询结果的高度限制为 400px,如果觉得尺寸不合适可以自行修改。 添加 CSS 可以参考这篇:Obsidian的CSS代码片段

Huajin

Huajin

Pkmer

Obsidian 样式 - 隐藏 markdown 标记(加粗、斜体、下划线)

隐藏 markdown 标记(加粗、斜体、下划线),以防止编写时的文本跳动

在码字时,给文本添加加粗或者斜体等 markdown 格式的时候,文本总会跳动一下。因此写了一段 css 用于隐藏 markdown 标记来去抖(隐藏标记)。 需要借助 style-setting 插件给该 css 添加快捷键,方便需要修改标记时关闭该 css。(因此需要安装 style setting 插件:obsidian-style-settings,这个插件可以为你的主题增加很多样式修改功能) 添加好 css 后(如何添加 css 请见 Obsidian的CSS代码片段),在『设置 =快捷键』中搜索 style-setting,找到

Huajin

Huajin

Pkmer

Obsidian 样式 - 状态栏美化

如果浅浅的背景色也不需要,可以把上面的注释的 / background-color: var(--background-primary); / 给取消注释(去掉开头结尾的 / / 即可) 如何使用 css 请见 Obsidian的CSS代码片段

Huajin

Huajin

Pkmer

Obsidian 样式 - 固定标签页样式美化

右键标签栏的文件名,可以看到有个『Pin』的选项,选择后可以把页面定在标签栏中,通常我们会固定非常常用的页面,例如你的主页等。但是如果固定在那里,很长一条不那么美观,因此写了段 css 用于隐藏该标签页的文字和『Pin』的符号。 使用前: image.png 使用后 image.png css 代码使用方法见 Obsidian的CSS代码片段 如果 pin 的是特定页面,可以用这段 css,然后把 ... 改为你 pin 的页面对应的 data-type 和 aria-label 这段 css 会同时把标题和 pin

Huajin

Huajin

Pkmer

Obsidian 样式 - 标签页标题栏的隐藏

正文上方的标题栏的隐藏 css(不是页内标题,是那个带路径的) image.png 这个标题栏分为两个部分,左侧路径和右侧当前页面的文件名 css .workspace-leaf-content[data-type='markdown'] .view-head

Huajin

Huajin

Pkmer

Obsidian 样式 - 爆改分割线

下文以 图片 + css + 代码部分解释 的形式给出,自行挑选。 image.png 上面代码中 var(--hr-color) 为分割线颜色,可以修改为别的颜色值,例如 斜着的和平着的 image.png css .markdown-rendered hr, .markdown-source-view.mod-cm6 .hr { position: relative; display: block; margin-top: 4em; margin-bottom: 4em; height:

Huajin

Huajin

Pkmer

Obsidian 样式 - 用 Callout 实现的边注(注释)

在 obsidian 中优雅的实现边注

使用 obsidian 自带的 callout 语法,不污染笔记,且用法非常简单。 image.png <center>主题:Obsidian Nord</center> 添加好 css 后,在正文中直接用边注的 callout 即可(如何添加 css 可以看这篇:Obsidian的CSS代码片段) 如果想要左边的边注,可以这样写 如果想要右边的边注,可以这样写 如果想要边注可折叠,可以用 callout 的折叠语法 边注基于 callout 实现,因此可以像 callout 一样使用不同的样式 本

Huajin

Huajin

Pkmer

Latex OCR

识别剪切板中的图片中的数学公式并且转换为 latex

1706605685278.jpg 使用该命令,正文中出现以下内容代表正在 ocr image.png 等待一会(第一次使用需要一点时间预配会久一点,十来秒左右,后续会快一些) image.png image.png 插件有两种使用方法,二选一即可 在 [https://huggingface.co](https

Huajin

Huajin

Pkmer

Image2LaTEX

识别剪切板中的图片中的数学公式并且转换为 latex

多行公式 image.png 矩阵识别 image.png 手写识别 image.png 该插件实际上是调用了 simpletex 进行的公式识别,因此需要联网使用。并且在使用之前,需要进行一些简单配置 image.png 点击按钮:前往 API 仪表板 image.png 点击:用户授权令牌创建一个 token,复制 token ![image.png](htt

Huajin

Huajin

Pkmer

Obsidian 样式 - 用分割线实现简单分栏

用分割线实现简单分栏

image.png image.png 优点 缺点 代码来自:zamsyt/obsidian-snippets: CSS snippets for Obsidian (github.com) 项目中的 Easy Multi column notes。项目中有演示视频,时长 53s css / Multicolumn Notes v0.5.4 github.com/zamsyt / .markdown-preview-view div:has(hr)+>hr, .markdown-source-vie

Huajin

Huajin

Pkmer

Obsidian 样式 -hover 出现图片描述 (css 实现)

Image description when hover.gif 没有特殊语法,把 obsidian 显示的是图片的描述

Huajin

Huajin

Pkmer

Obsidian 样式 -tabbed Callout

Callout styling - Tabbed callout.gif 可以在安装好 css 之后直接复制粘贴查看效果,格式模仿下面这个样式即可 css / author: FireIsGood source: https://discord.com/channels/686053708261228577/702656734631821413/1092995965583114341 [data-callout="tabbed"] { outline: 1px solid var(--color-base-30)

Huajin

Huajin

Pkmer

Obsidian 样式 - 看板样式 (kanban)

Obsidian 样式 - 看板样式 (kanban)

当给看板设置特定的标签时,给看板加上背景色。 Kanban styling - background based on tag.png 直接在 kanban 的卡片中添加你设置好的 tags 即可。 添加下面这段 css(添加方法见 Obsidian的CSS代码片段),把里面的三个 <kbd>someTag</kbd都改成你想要的内容,例如改为 <kbd>todo</kbd> 颜色修改:下面的第一个 <kbd>background-color</kbd代表卡片的背景色,后一个代表标签的背景色。 如果想要修改标签字体的颜色,修改

Huajin

Huajin

Pkmer

Obsidian 样式 - Border 的一种 style-setting 配置

image.png 来源:<https://discord.com/channels/686053708261228577/702656734631821413/1198709577844277288> 右上角用的 [tasks-calendar-wrapper 插件,右下角用的 [Pomodoro Timer 插件 json { "Appearance-dark@@theme-dark-style-select": "theme-dark-background-darker", "Appearance-dark@@c

Huajin

Huajin

Pkmer

Callout

callout 是 obsidian 的特有语法,源于 markdown 的引用语法 <kbd>></kbd> 除了 obsidian,其实在很多地方你都能看到类似的样式,举几个例子 image.png <center>Electron 的 Docs</center> image.png <center>matplotlib 的 API Reference</center> 复制上面两行内容粘贴到 obsidian 中,他们会自动渲染成 callout 的样式。 分为四个部分: obsidian 共提供了 13

Huajin

Huajin

Pkmer

Home Tab 多功能新标签页

一个多功能且更好看的tab页面

用过浏览器的应该都知道浏览器有新建标签页的功能,通常我们可以在这个新建的标签页中进行搜索。在 obsidian 这个浏览器中同样也有着新建标签页的功能,但是默认的新标签页几乎没有任何功能。Home tab 插件提供了一个多功能新标签页,使你可以直接在该新标签页中进行搜索。该插件入选了 obsidian 的 2023 年 Best new plugin 榜单,并且在入榜的 20 个插件中排名第四(来源)。 home tab 给新标签页添加了一个搜索栏,并且增加了查看最近修改的文件的功能,你可以在插件设置的 Recent file

Huajin

Huajin

Pkmer

利用 Bartender 实现文件拖拽排序

Bartender 提供了拖拽排序文件夹功能,允许重新排列状态栏和侧边栏中的元素。

Obsidian 默认提供了三类文件的排序方式,分别是按照文件名、编辑时间以及创建时间。Bartender 则提供了更实用的拖拽排序功能。需要注意的是,当你拖拽排序的文件数目过多时,该插件可能会造成卡顿。 该插件提供了三个设置,但是我们完全可以不用修改,安装好插件就能用。但是文件夹拖拽则需要下面几个步骤 ![475

Huajin

Huajin

Pkmer

Dataview中的YAML

基本语法学习指南,YAML 语法规则

看到要用一门新的语法会不会觉得头大?不过看看具体例子就能瞬间上手使用 为《小王子》的阅读笔记写一个前言(包含书名,作者,作者所属国家,开始阅读时间,读完的时间) ps. 这里为了介绍语法规则才同时用中文和英文作为属性名 (Field Name),平常建议只用一种 YAML 中的数据自然也是有数据类型的,比如数值类型、字符串类型、时间类型、布尔类型、数组类型和对象类型,这里给出最后两种的写法:对象 Map 和数组 List 当某个属性

Huajin,PKMer Huajin,PKMer

Huajin,PKMer

Pkmer

Cache Area 给你一份电子草稿纸

为你提供了一个临时草稿纸

这是一个缓存文件,如果你突然有什么想法想写下来,但是一时之间你又没有想好到底存在哪个文件里边,或者说就不打算单独存在某个文件中。以往这种情况需要建立一个文件放在根目录来应对,不那么丝滑且强迫症可能无法接受。但是现在,Cache-Area 为你提供了一个临时草稿纸,亦可以把他作为一个 ob 内部的便签,这是一个缓存文件,你输入到里面的数据不会保存到实际文件中,完美解决了这个问题。 顺带一提,插件作者是社区的 Boninall 大佬。起因是大佬在群里问了下:“有没有什么插件,可以在 ob 中新建笔记的时候不要直接保存到文件中,而是缓存

Huajin

Huajin

Pkmer

Dataview 中的实用函数

为属性添加一个默认值。具体的来说就是,如果属性值为空,则返回默认值 value;否则返回属性值。 例如,如果你有个属性 compleDate 代表完成时间,但是在你完成之前不会在笔记中填上,用 dataview 统计的时候会显示空格。这时候你就可以用这个函数 default(compleDate, "未完成") 将所有空值用 " 未完成 " 代替,比显示空格更加直观。 有的时候我们只需要判断这个属性是否有值,如果某个属性不是空值,但是属性值是一个列表,并且这个列表有空值。如果使用 default() 会把列表中的所有空值都替换了,这时候

Huajin

Huajin

Pkmer

Dataview 中的对象操纵函数

这类函数用于操作容器对象内部的值(14 个); 这四个功能相近,都是判断是否包含某个值的。但是他们又不尽相同,看好区别选择你需要的使用。 检查给定容器类型是否包含给定的值。根据第一个参数是对象、列表还是字符串,该函数的行为略有不同。此函数区分大小写。 容器类型:对象、列表和字符串 有两个输入值,前一个是容器类型数据,后一个是需要判断是否包含在前者的数据。 区分大小写 contains("Hello", "Lo") ="Lo" 不包含在 "Hello" 中,因此会返回 fal

Huajin

Huajin

Pkmer

Dataview 中的数值运算函数

既然有数值这种数据类型,我们免不了需要对他们进行一些运算,如果单纯的加减乘除无法满足我们的各种需求,可以在下边找找有没有你用得上的函数,比如一些四舍五入或者取整的函数,一些修改小数点后显示位数的函数,求和函数,求最大、最小和平均值的函数等。大多数函数的功能其实从他们的名字就能猜测出来。 round 有整数的意思,这里是对数值进行四舍五入; number 说明输入值的数据类型应该是一个数值,digits 有中括号说明这个位置可有可无,用于确定四舍五入的精度,或者说是保留的小数个数。默认四舍五入为整数,也就是 digits 的默认值

Huajin

Huajin

Pkmer

Dataview 支持的表达式 Expression

基本语法学习指南,表达式 Expression

在表达式中,你可以使用的有 除了查询类型和操作符以外的所有内容,都是表达式 有那么几种表达式: 1 (数字) true/false (布尔值) "text" (文本) date(2021-04-18) (日期) dur(1 day) (定长时间) Link (链接) [1, 2, 3] (列表) { a: 1, b: 2 } (对象

Huajin,PKMer Huajin,PKMer

Huajin,PKMer

Pkmer

Dataview 中的查询字段可以是什么

基本语法学习指南,Field 查询字段

Dataview 的查询字段 Field 就是我们最后想要显示的内容组成的列表,可以是以下几种 dataview table date(now); dataview table file.name limit 10 dataview table date(now) - file.ctime limit 10 dataview table round((date(now) - file.ctime).day) AS "已经创建了(天)" sort file.ctime limit 10 查询字段示例1

Huajin,PKMer Huajin,PKMer

Huajin,PKMer

Pkmer

Dataview 提供的四种查询类型

基本语法学习指南,Dataview 提供的四种查询类型详细解释

Dataview 提供了四种内置查询类型: 下面给出四种查询类型的简单使用方法,以及进阶使用的相关示例链接 LIST 查询时,会将结果组成一个无序列表,包含文件链接或组名 (如果决定分组)。除了文件信息外,最多还可以指定一个要输出的附加信息。 如果只有一个简单的 LIST 而没有其他的约束条件,他就会把库中的所有的文件以列表的形式展现出来(只有 Query Types 且不包含其他任何信息的时候,需要在结尾加一个空格); dataview LIST 结果: image-20230708173203486

Huajin,PKMer Huajin,PKMer

Huajin,PKMer

Pkmer

Dataview 支持的四种查询方式

基本语法学习指南,代码结构

Dataview 一共提供了四种查询的方式,后两者涉及到 JavaScript ,不在 Dataview 基础语法中介绍 查询方式 介绍 :--::-: DQL 行内查询 可以直接插入文章中,像 excel 中使用函数那样,可以实现级联,缺点是功能不完整 DQL 代码块查询 Dataview 用的最多的查询方式 DVJS 行内查询 和 DQL 行内查询类似,但是功能更多,但是需要用 javascript DVJS 代码块查询 可以满足大部分要求 行内 DQL 需要写在行内代码中,适合小范围嵌入元数据使用;

Huajin,PKMer Huajin,PKMer

Huajin,PKMer

Pkmer

通过 Dataview 查看文件中隐藏的“秘密”

基本语法学习指南,文件的隐式字段

本文主要介绍了: 1. 如何查看一个文件里面所有的隐式字段; 2. 每一个字段的含义; 3. 具体的查看某一个特定的隐式字段的方法; 文件中的一些已经自动有索引的内容,比如文件的名字,文件的创建时间、修改时间等,我们称之为文件的隐式字段。他们也是能够被 Dataview 检索到的。 在 10 - Metadata 元数据 中我们说过,输入下面的代码可以显示当前文件的所有元数据。 dataview TABLE this WHERE file = this.file limit 1 其中,file 就是该文件的隐式字段,它的数据

Huajin,PKMer Huajin,PKMer

Huajin,PKMer

Pkmer

Dataview:向文件添加合适的元数据

Dataview 基本语法学习指南,添加元数据至文件

有两种方式为一个 markdown 文件添加元数据 obsidian 1.4 版本以前,你只能手动在笔记最开头输入 来添加文档属性,现在官方对这块区域做了优化,添加了几种更加方便的方式,并且加入了渲染来降低使用门槛,避免了手动输入时产生的各种语法错误。 image.png

Huajin,PKMer Huajin,PKMer

Huajin,PKMer

Pkmer

Dataview 支持的 Function 函数

基本语法学习指南,Function 函数

Dataview 提供了一些函数让我们对查询的结果做进一步处理,你可以在除了 From 以外的地方使用。 Datview 提供了非常丰富的函数让我们处理数据,这些函数主要有五类。正文只对函数作大致介绍,可以点击链接查看对应函数的具体用法,我们提供了中文的解释。也可以自行在官方英文文档查看( Functions - Dataview ) 首先我们要知道什么是函数?没有编程基础的人可能会有这个疑问。其实代码的函数演化自数学上的函数。数学上的函数是一种映射关系,给定一个输入值 x,在函数 f 的作用下把这个值映射成另一个值 $y=f(x)$,

Huajin,PKMer Huajin,PKMer

Huajin,PKMer

Pkmer

Dataview 中的 Metadata 的数据类型

基本语法学习指南,Metadata 的数据类型

Metadata 是一个键值对(Key - Value,在这里称 Field Name - Field) 我们为文件添加元数据后,不一定会采用我们给定的格式,它会在内部(不会显示)自动对 Field Name 值进行一定修改,以保证格式统一。 举几个例子 原 Field Name 的写法修改后改动内容 :-::-::-: basic basic 去掉粗体 Basic Basic 或 basic (不能是 BaSic 之类)增加了小写 basic field basic-field 用 - 替换空格 Bold Fiel

Huajin,PKMer Huajin,PKMer

Huajin,PKMer

Pkmer

文档属性视图

文档属性视图插件增加了两个侧边栏视图,你可以用它们来管理属性 image.png 如果在侧边栏中没有看到文档属性视图,请确保你已经开启了该核心插件。 image.png 如果还是没找到这两个视图,可以使用命令面板打开 image.png image.png

Huajin

Huajin

Pkmer

一个 Dataview 查询示例

Dataview 基本语法学习指南

我们以这个例子走进 Dataview 查找最近三天创建的文件,并且让最新的文件放在前面; dataview Table file.ctime as "创建日期" Where date(today) - file.ctime <= dur(3 day) Sort file.ctime desc 效果如图 cover 我们拆解一下这段查询语句 一个 Dataview 查询示例 把上面的语句换成中文就是:把满足今天的日期减去创建文件的日期小于等于三天的文件,按照倒序排列,以表格的形式展示满足条件的文件的创建日期。 只用三行代码,就

Huajin,PKMer Huajin,PKMer

Huajin,PKMer

Pkmer

Obsidian 样式 - Thino 样式

搭配 style setting 管理一系列 thino 样式

image.png image.png css / @settings name: Thino Theme id: thino-theme settings: - id: thino-theme title: Thino theme title.zh: Thino 主题配色 type: class-select allowEmpty: false default: thino-theme-default options: - l

Huajin

Huajin

Pkmer

Dataview 支持的时间格式 ISO 8601 的含义

基本语法学习指南,ISO 8601

以国际标准化的 ISO 8601 格式进行表述时间与日期。在 yaml 区域的编写和许多插件中会涉及到其应用。 举个例子:2023-07-21T00:00:00.000000000Z 他包含了的信息有: 解释: 单词是Year,以 2023 年为例 单词是Quarter。以春季(1-3 月)为例 单词是Month。以 2 月为例子 单词是Week。以年初第 8 周为例子 单词是Day,以 10 月 7 日星期六为例

Huajin,永皓Yh,PKMer Huajin,永皓Yh,PKMer Huajin,永皓Yh,PKMer

Huajin,永皓Yh,PKMer

Pkmer

code tab 还能这么“玩”

发掘 code-tab 的更多可能性

这篇文章是对 obsidian-code-tab 可以把你的内容转换为具有选项卡切换功能的代码块,就像这个样子: 我的笔记中用了很多 code-tab 代码块,他可以把我的线性文章缩短成一块,对我构建对于某个知识点的框架非常有利 code-tab 还能这么“玩” 虽然用 ob 的核心插件『大纲』或者使用 floating-toc 之类的插件都可以实现快速查阅的功能。但是我更喜欢这种实现方法与 code-tab 这样直接打碎全文,将内容并排展示的方式。原来文中的每个标题都变成了一个标签页,标题与标题之间的递进或者同级的概念也更加清晰。 如

Huajin

Huajin

Pkmer

Dataview

Dataview 高性能的索引笔记文件,并创建复杂的查询视图,如表格,列表,任务,日历视图

Obsidian 是一款强大的知识管理和笔记应用程序, Dataview 插件为 Obsidian 提供了更高级的数据查询和可视化功能,可帮助用户更好地组织和分析笔记内容。 Dataview 插件的用途主要有三个方面。 首先,Dataview 插件可以用于创建复杂的数据查询和筛选。用户可以使用类似于 SQL 的语法,通过在笔记中标记和注释特定的数据字段或属性,然后利用 Dataview 插件进行搜索、过滤和排序。这样能够很方便地查找特定信息、生成特定条件下的数据集合,或者执行一些统计和计算操作。这对于处理大量信息的复杂项目

Windysoul,Huajin,PKMer Windysoul,Huajin,PKMer Windysoul,Huajin,PKMer

Windysoul,Huajin,PKMer

Pkmer

Dataview 任务查询示例

dataview TASK FROM "10 Example Data/assignments" dataview TASK FROM next dataview TASK FROM clientC OR clientB dataview TASK FROM "10 Example Data/assignments" OR "10 Example Data/games" dataview TASK FROM "10 Example Data/assignments" AND later

Huajin

Huajin

Pkmer

Dataview 列表简单查询示例

Dataview 列表简单查询示例

dataview LIST FROM "10 Example Data/games" dataview LIST FROM "10 Example Data/books" OR "10 Example Data/games" dataview LIST FROM type/books dataview LIST FROM dvjs/el OR dv/min dataview LIST FROM "10 Example Data/games" AND genre/action datavi

Huajin

Huajin

Pkmer

Dataview 的 GROUP BY 究竟是怎么工作的

Dataview 的 GROUP BY 究竟是怎么工作的

分组时,结果的 “第一层” 会发生变化。 在不分组的情况下,第一级是从 from/WHERE 语句返回的文件链接,因此如果你没有向 LIST 或 TABLE 命令提供额外信息(例如 wihout id),它们将自动显示。文件链接是结果的 ID。 分组之后,成组条件将成为第一级,即 ID。这意味着无需添加任何额外信息就可以在列表或表中看到组名,而不是文件链接。要仍然看到文件名,您需要将它们作为附加信息传递给每个 row.file.link。

Huajin

Huajin

Pkmer

Dataview 表格简单查询示例

Dataview 表格简单查询示例

dataview TABLE FROM "10 Example Data/games" dataview TABLE FROM type/books dataview TABLE FROM dvjs/el OR dv/min dataview TABLE FROM "10 Example Data/books" OR "10 Example Data/games" dataview TABLE FROM "10 Example Data/games" AND genre/action d

Huajin

Huajin

Pkmer

Dataview 示例展示检索文章结构

本文为辅助文章,辅助其余Dataview查询示例文件

讲讲为什么需要有这么一篇辅助文章。Dataview 示例展示中的所有文章均基于 Github 上的这个项目:dataview example vault](https://github.com/s-blu/obsidiandataviewexamplevault),这个英文示例库是一个完整的 obsidian 的 vault(不想直接去 Github 下载原库也可以在 [这里 查看,缺点就是所有的 dataview 查询都只能看到代码没法看到真正的查询结果),原库中包含了四个部分 Dataview 示例展示检索文章结构 本文主要就

Huajin

Huajin

Pkmer

Dataview 语法实战:FLATTEN 操作符进阶示例

如果有多个元数据是数组,你想把他们都拆开,可以重复利用 FLATTEN 操作符来实现,例如下面的 DQL 用了两次 FLATTEN 函数 dataview TABLE genres, booktopics FROM "10 Example Data/books" FLATTEN genres FLATTEN booktopics 我们前面说过,FLATTEN 和 Group by 可以理解为反义词,那么如果对同一个属性加以 FLATTEN,随即跟上 Group by。他的结果会跟原来的结果一模一样吗?答案是不一定。因为我们展开的时候,

Huajin

Huajin

Pkmer

Dataview 表格进阶查询示例

dataview TABLE FROM type/books WHERE author = "Conrad C" dataview TABLE author, pagesRead, totalPages FROM type/books Dataview 表格进阶查询示例 dataview TABLE WITHOUT ID source, time, ingredients FROM "10 Example Data/food" WHERE source Dataview 表格进阶查询示例 datav

Huajin

Huajin

Pkmer

Dataview 语法实战 - 列出特定标题下的元素

列出特定标题下的元素

如果你的同一类型的笔记都以相同的格式书写,每篇笔记都存在相同的一个标题,那么你就可以统计所有相同标题之下的所有列表。当然也可以为这些列表添加限制条件,比如筛选包含了某个 tag 的列表,又或者是列表的某个 Metadata 为特定值。 更具体的例子,比如你的所有日记,可能你时不时会摘录一些语句放到日记的 摘录 标题之下。有一天,你想列出你摘录的所有语句,你就可以用本文的方法。又或者,你设置了所有 obsidian-memosMemos 都存储在 Memos 标题下,你想在某一篇笔记中汇集你的所有 Memos,也可以用本文的方法。

Huajin

Huajin

Pkmer

Dataview 列表进阶查询示例

文中所有的查询来源于 Dataview 示例展示检索文章结构; dataview LIST FROM type/books WHERE author = "Conrad C" dataview LIST author FROM type/books dataview LIST WITHOUT ID source FROM "10 Example Data/food" WHERE source dataview LIST rows.file.link FROM "10 Example Data/books"

Huajin

Huajin

Pkmer

Dataview 日历简单查询示例

dataview CALENDAR file.day FROM "10 Example Data/dailys" dataview CALENDAR file.day FROM daily dataview CALENDAR file.day FROM "10 Example Data/dailys" OR journal dataview CALENDAR file.ctime

Huajin

Huajin

Pkmer

Dataview 语法实战:行内 DQL 示例

介绍了 Dataview 的一些基础的 Inline DQL 的使用实例

与带有三个反引号的代码块查询不同,行内查询用于笔记的文本、标题中,而不是为它们需要一个孤立的块。行内查询的结果可以随着查询值的改变动态改变。 行内 DQL 需要写在行内代码中,适合小范围嵌入元数据使用; Dataview 的行内 DQL 示例 需要借助关键字 this 指代本文件,用点运算符指向文件的其他元数据。例如你想在文中某处插入文件的创建时间,你可以这样写

Huajin

Huajin

Pkmer

Dataview 实战 - 进度条

用进度条展示你的读书笔记进度和任务完成进度

试试把下面这段 html 粘贴到你的 obsidian 库中,你应该能够看到一个进度条 给定两个元数据,可以放在 Properties 属性区域,也可以是行内字段,这里以行内字段举例 把这两行粘贴到你的笔记中,你就为你的笔记添加了两个元数据。(详见 11 - 添加元数据至文件) 你想在这本书的读书笔记这一页中自动计算并且展示你的阅读进度,你可以直接把他们相除并且转换成小数展示。 如果觉得只看数字不够直观,可以试试用进度条,我们也可以用字符串的拼接拼出上面讲到的 HTML 的进度条的代码格式 你读了很多本书

Huajin

Huajin

Pkmer

Dataview 实战 - 将一周的元数据显示为 emojis(习惯跟踪)

将一周的元数据显示为emjois(习惯跟踪)

利用 dataview 提供的 choice 函数,我们可以把输出值修改为 emoji,使得表格更加直观,下面给了两种使用示例,可以参考这两段代码的使用方式以及结果构建属于自己的 dataview 查询语句。 dataview TABLE choice(praying, "💚", "➖") AS Praying, choice(breathing, "💚", "➖") AS breathing, choice(beingthankful, "💚", "➖") AS "being thankful",

Huajin

Huajin

Pkmer

Dataview 实战 - 如何查询结果的数目

如何查询结果的数目

在 Dataview 中,我们可以利用 GROUP BY 来把结果聚合起来,然后利用 length() 函数即可求出结果的数目。 例如,检索不同作者的书的数目 dataview TABLE rows.file.link, length(rows) FROM "book" GROUP BY 作者 image.png700

Huajin

Huajin

Pkmer

Dataview 实战 - 列出不存在的链接页面

列出不存在的链接页面

不存在的链接就是你直接在某一篇笔记中直接敲 ...,然后输入一个不存在的路径。对于文件来说,这些链接是文件的外链,也就是 file.outlinks,我们可以直接判断是否非空即可得到 dataview TABLE WITHOUT ID key AS "unresolved link", rows.file.link AS "referencing file" FROM "......" FLATTEN file.outlinks as outlinks WHERE !(outlinks.file) AND !(contains(meta(

Huajin

Huajin

Pkmer

Dataview 实战 - 列出以某个字母开头的文件或元数据

列出以某个字母开头的文件或元数据

对于文件名,我们只需要判断 file.name 即可,注意用方括号索引,索引从 0 开始(0 才是第一个字符) dataview LIST FROM "10 Example Data" WHERE file.name[0] = "A" 同理,如果判断元数据以某个字符开头,就把其中的 file.name 改成对应的元数据即可

Huajin

Huajin

Pkmer

Dataview 实战 - 列出每年的某个月份的检索结果应该怎么写

列出每年的某个月份的检索结果

提供两种方式,例如检索每年的生日是 2.17,取每年这个时候写的笔记 dataview LIST file.lists.text WHERE file.day.month = 2 and file.day.day = 17 或者 dataview LIST file.lists.text WHERE dateformat(file.day, "MM-dd") = "02-17"

Huajin

Huajin

Pkmer

Dataview 实战 - 获取未完成的任务

获取最新打开的任务

事先说明,只有 - [x] 才会被视为任务完成,除此之外都被视作未完成,例如 - [ ],以及其他自定义的状态 - [o]、- [y]、- [!]。因此,如果我们用下面这段代码,也许得到的并不是你想要的,他不能筛选掉其他自定义状态的任务。 dataview TASK FROM "10 Example Data/dailys" WHERE !completed SORT file.day DESC LIMIT 10 我们需要利用任务的一个 14 - 隐式字段隐式字段 status 进行更精确的检索,代码如下: dataview TASK FR

Huajin

Huajin

Pkmer

Dataview 实战 - 获取前后的日记链接(不一定是昨天)

获取前一天或者后一天的笔记的链接(不一定是相邻的两天)

在日记中也许你会放上一个到前一天的链接,考虑到不一定是每天都写日记,前一天不一定是昨天,因此这个操作当然可以手动完成,但是如果你想要放在模板里面就不只是 day - 1 那么简单了。这里提供一份使用 dataview 的方法 dataview LIST FROM "10 Example Data/dailys" WHERE file.name != this.file.name AND file.day < this.file.day SORT file.day DESC LIMIT 1 主要逻辑就是利用日期的比较运算,找到距离本文件创建日期

Huajin

Huajin

Pkmer

Dataview 社区实践经验

Dataview社区实践经验

不必为了用 Dataview 而 Dataview,而是当你有需求的时候,再来用 Dataview。考虑到前面的语法介绍可能有的地方写的不够清晰,故打算依据 GitHub 上比较出名的 Dataview 英文示例库撰写本文,以及社区更多作者,在这里分享 Dataview 实例。旨在你有需求时,可以找到类似的实例,亦或者是在学习 Dataview 的时候,遇到不懂的地方可以直接来找已有的使用示例,希望通过具体的实例可以让你对各个函数的理解更加深刻。 Dataview 实例包含了....个实例,又按照应用的查询类型,应用的函数以及用途对他们进行了分类

Huajin

Huajin

Pkmer

如何在查询中创建自定义输出

Dataview 实战:如何在查询中创建自定义输出

我们可以借助字符串拼接来自定义输出结果,+ 为拼接符。实际上就是将字符串(文本)和元数据拼在一起,然后一起输出。 如果在输出中写到:"¥"+ 支出,你的结果前面都会加上一个 ¥。添加字符串片段的数量和位置没有限制。 比如我们可以列出所有库中的书,以及作者,并且在作者前面加个 from dataview LIST "from " + 作者 FROM type/books 再列出这些书的阅读进度 dataview LIST "from " + 作者 + " (阅读进度: " + 已读页数 + "/" + 总页数 + " 页)" FROM

Huajin

Huajin

Pkmer

Dataview 实战:用表格和列表汇总罗列与当前文件有相同元数据的文件

Dataview 实战:列出与当前字段值相同的页面,例如,查找共享配料的食谱

假设文件中包含一个元数据 配方类型::素食,列出所有具有这个元数据的文件 dataview LIST FROM "10 Example Data/food" WHERE 配方类型 = this.配方类型 如果是多值属性,例如以食材做例子,文件中有 所需食材: [...] 的多值属性,想要列出和当前文件用了相同食材的其他文件 dataview TABLE 食材 as 共同食材 FROM "10 Example Data/food" WHERE 所需食材 FLATTEN 所需食材 as 食材 WHERE contains(this.所需食材,

Huajin

Huajin

Pkmer

Dataview 实战:如何统计属性值为空的值

统计属性值为空的值

在记笔记的时候,也许会遇到有些属性我们要写完笔记才填上,例如 完成时间 等。这种情况下,这个属性值会置空。我们知道怎么检索有属性值的属性,那要怎么样才可以检索没有属性值的属性呢? 假设这个元数据是 completedDate,你可以用 来统计 completedDate 为空的 Field. 但是,如果有个 YAML 写成了空列表,此时 dataview 并不会认为他是空,例如 或者是 那么 dataview 会认为 genres 是一个空列表 (empty list),而不是空值。因此 genres=null 的结果是

Huajin

Huajin

Pkmer

Dataview 实战 - 列出包含特定文字的文件或元数据

列出包含特定文字的文件或元数据

列出以某个特定开头的文件,可以借助 startswith() 函数,例如本系列文章以 Dataview 实战 开头: dataview LIST FROM "10-Obsidian/Obsidian社区插件/Dataview" WHERE startswith(file.name, "Dataview实战") 同样,我们可以用 endswith() 函数列出以某个特定结尾的文件,如果把 file.name 替换成别的元数据,也可以列出以某个特定开头的文件。 借助 contains() 函数 dataview LIST FROM

Huajin

Huajin

Pkmer

Dataview 实战 - 在同一个表的列中显示两个元数据字段

在一个表列中显示多个元数据字段,在需要考虑重命名字段时非常有用

直接用 [] 把需要在同一列展示的内容框起来 dataview TABLE wake-up, [午睡时间, 睡觉] as "睡眠时间", [午餐时间, 晚饭时间] AS "Meal times" from "Daily/2023" where 换成你的筛选条件 如果你在每个文件中只有一个有效值存储在不同的元数据字段中,举个例子:有的文件写的是睡觉时间,有的是入眠时间,如果把他们视作同一个时间,我们就需要把他们写在一起,而不是写成上面的列表显示。这时候我们可以利用 filter 和 flatten: dataview TABLE 起床

Huajin

Huajin

Pkmer

Dataview 实战 - 如何让 Dataview 识别不同格式的日期

在 dataview 中,匹配 42 - ISO 8601ISO8601表示法 的文本将自动转换为日期对象(如果你不清楚这是什么,请看 13 - Metadata的数据类型) 但是并非所有人都按照了 dataview 所采用的 ISO8601 标准来写时间,也许有的人会写成 yyyy-MM-dd HH:ss,有的写成 09/25/2022 09:09 AM,还有的写成 22.09.2022 11:15。有很多种方式用于表示一个日期或者时间,但是 dataview 只能识别一种。但是,如果你用了其他的日期格式也不用慌,本文针对几种不同的日期格式,给

Huajin

Huajin

Pkmer

一种快捷打开 Obsidian 特定页面的技巧

一种快捷打开obsidian特定页面的技巧,多库选手可以参考

介绍一种你可以直接在打开 Obsidian 前就决定打开的是特定库的特定页面的方法,用于帮助多库选手每次不需要打开多个库才找到需要的库。 直接点击 Obsidian 图标,如果你此时没有打开任何一个库,那么你将会打开你最近一次关闭的库。如果你已经打开了一个库,那么会跳出一个可以选择打开的库的页面。我们可以把这两个步骤缩减成一个步骤。 1. 打开你经常需要打开的库,右键你想要打开库的时候同时打开的一个文件(这种方法会在你打开库的时候打开这个文件,因此如果你的库有起始页,你可以右键起始页) 2. 选择 复制 Obsidian 链接 的选项,右上

Huajin

Huajin

Pkmer

Obsidian 样式:给 Thino 加个滚动条

Obsidian 样式:给 Thino 加个滚动条

当高度超过 500 像素的时候出现滚动条,高度可以自行调整。 Obsidian 样式:给 Thino 加个滚动条

Huajin

Huajin

Pkmer

Obsidian 样式:给 Thino 搭配 10 种热力图颜色

Obsidian 样式:给 Thino 搭配10 种热力图颜色

十种配色所需的 CSS 文中已经给出,需要自取即可。记得设置的热力图颜色要选择 default 才会生效。 Obsidian 样式:给 Thino 搭配 10 种热力图颜色 Pasted image 20231111015102.png Obsidian 样式:给 Thino 搭配 10 种热力图颜色 ![Obsidian 样式:给 Thino 搭配 10 种热力图颜色](https://cdn.pkmer.cn/image

Huajin

Huajin

Pkmer

Dataview 实战:如何使用 Dataview 查询一个文件中的所有图片

使用 Dataview 查询一个文件中的所有图片

在笔记中插入图片实际上是嵌入图片的链接 所以,图片也属于笔记的链接。我们在 14 - 隐式字段 中提到了文件的一个元数据 file.outlinks,他的属性值就是文件的所有外联,嵌入的图片当然也包含在内。 因此我们可以这样写得到一个文件中的所有外链。 dataview TABLE without id file.outlinks FROM "..." 下一步:筛选代表图片的外链 dataview TABLE without id 图片 FROM "要查询的文件的路径" FLATTEN filter(file.outlinks

Huajin

Huajin

Pkmer

Dataview 如何不显示文章链接

Dataview 实战 - 如何不显示文章链接

使用 Dataview 进行汇总的时候,如果你没有使用 Group by 操作符,那么你的第一列显示的就是对应文件的链接,例如 Pasted image 20231104130812.png 这一列是每一个检索结果的 id,如果不想显示这一列,我们需要在开头写上 without id,例如

Huajin

Huajin

Pkmer

为什么输入 annotator 的 yaml 模板时,会被解析成分割线或文档属性?

Obsidian 更新到 1.4 后,如何插入 YAML

自从 obsidian 更新到 1.4 版本以后,原先的 YAML 区域就被渲染成了 文档属性,很多小白就不清楚如何在 YAML 中输入元数据了。比较常见的例子就是使用 Annotator 插件时输入要阅读的 pdf 或者 epub 的路径。 实际上,新版 ob 的文档属性区域就是原来的 YAML 区域,只不过加了一个渲染。下面提供三种输入元数据的方式 Pasted image 20231030151122.png 原先我们写 YAML 的方式是在文档的开头写上 而现在,我们在文档的开头输入 时会被直接渲染成 文档属性(如果

Huajin

Huajin

Pkmer

Dataview 语法实战

Dataview 语法实战,实际教学,实战

不要为了用 dataview 而用 dataview,而是要到需要用 dataview 的时候,再来用。考虑到前面的语法介绍可能有的地方写的不够清晰。故增加这一篇幅,汇总一些基础简单的语法但却能涵盖: 1. 笔记统计和分析:Dataview 可以帮助你统计和分析笔记的元数据,例如计算总的笔记数量、按标签分组并计数、按时间排序等。这对于笔记整理、知识管理和了解笔记库的内容非常有帮助。 2. 任务管理和待办事项:通过 Dataview,你可以创建一个任务管理系统,跟踪所有的待办事项和任务。你可以根据标签、日期和状态等属性筛选和排序任务,使任务

Huajin,Windysoul,PKMer Huajin,Windysoul,PKMer Huajin,Windysoul,PKMer

Huajin,Windysoul,PKMer

Pkmer

Obsidian Image Captions 给图片加个标题

在图片下方加个标题,也可以说为图片添加说明

我们平时阅读的书籍、文献&各种文档,其中都会包含诸多图片,而且在图片的旁边会有非常详细的说明文字(Caption),常用的编辑软件,如 Word、在线编辑工具中,也有类似的功能。 请注意:这个和我们介绍过的 obsidian-image-caption 不是同一个插件 插件可以在图片添加一个标题,效果直接看图 Obsidian Image Captions 给图片加个标题 图片下方多的一行 “NLTK 官方文档” 就是这个插件的效果。(图片来源) 普通图片:!image.png 加上标题:!imag

Huajin

Huajin

Pkmer

Dataview 实战:定制你的数据表格并为表格列添加个性化样式

Dataview 实战:定制你的数据表格,并为 Dataview 表格列添加个性化样式

在 22 - 查询字段 中我们提到过,当我们在查询字段中将文件的元数据和一些描述词组合时,可以为表格对应列中的每个元素添加一些特殊样式,当时只给了利用 Obsidian 提供的 Markdown 语法组成不同的样式,这里将会利用 html 提供更多的玩法 这里我们以右对齐举例,让属性 price 中的每一个值都右对齐 源码如下 dataview TABLE publisher, developer, "<span style='display:flex; justify-content: right;'>" + pri

Huajin

Huajin

Pkmer

Dataview 相关的 FAQ - 常见问题

dtaview 插件的常见问题,FAQ

不知道你在使用 Dataview 查询的过程中,是否遇到过 Dataview: Error:。Dataview 在解析你的代码过程中,如果遇到无法解析 (Parsing Failed) 的错误,就会显示一个报错信息。在报错信息中,Dataview 会用箭头为你指出无法解析的地方,并且在下放给出可能的修改提示。 🔺如果你的 dataview 代码报错,请你先考虑 然后再看看下面有没有你遇到的情况 1. 时间数据类型,月份要写成 07 而不是 7; 1. 错误示范:2023-7-24 2. 正确示范:2023-07-24 2. Exp

Huajin,PKMer Huajin,PKMer

Huajin,PKMer

Pkmer

Completr 自动联想补全插件

这个插件为 LaTeX, Frontmatter,callout 提供了自动补全功能,你还可以提供文件作为联想的文字。

插件提供了 LaTex,Frontmatter,callout 的自动联想补全功能,还提供了扫描当前文件所有文字作为联想备选文字的功能。另外,你还可以自己提供放了文字的文件作为联想的数据。 - 无需以 \ 开头 - 包含所有 MathJax 命令 - 允许为所有环境补全 \begin... - 支持插入带有占位符的片段 - 学习任何键和任何值,并为其提供补全 - 加载每行为一个单词的文件 - 即使对于非常大的 列表,也具有高性能 - 扫描当前文件或整个存

Huajin

Huajin

Pkmer

34 - Dataview 中的字符串操纵函数

谈到字符串,绕不开的就是正则表达式]([正则表达式 – 教程 菜鸟教程 (runoob.com),你可以自己花半个钟学习一下正则表达式的简单语法,也可以抛出要求让 AI 替你写对应的正则表达式。 字符串的正则匹配,判断字符串是否满足给定的 pattern 模式。(使用 JavaScript regex 引擎)。 需要输入一个用于判断的正则表达式以及一个待判断的字符串。如果字符串存在符合正则表达式的部分则返回 true,否则返回 false。 \w 匹配字母、数字、下划线。等价于 [A-Za-z

Huajin

Huajin

Pkmer

Dataview 任务进阶查询示例

dataview TASK FROM "10 Example Data/assignments" WHERE !completed dataview TASK FROM "10 Example Data/assignments" GROUP BY file.link dataview TASK FROM "10 Example Data/assignments" WHERE contains(tags, "later") dataview TASK FROM "10 Example Data/assignments

Huajin

Huajin

Pkmer

Dataview 实战:制作一个倒计时或者正计时列表

用 Dataview 制作一个倒计时或者正计时列表,展示了今天、本周、本月和今年的剩余时间和已经过去的时间跨度以及百分比。文中给出了代码的具体解释,以及你想定制相对某个特定时间点时修改的方法。

Dataview 是你进阶使用 Obsidian 中不可缺少的一步,通常我们会用 Dataview 来统计收集你的库中满足特定条件的所有笔记。但是你有没有想过,DQL 提供了很多关于时间的 15 - Literals 字面常量字面量,我们完全可以用他们来记录时间。 Pasted image 20230915140109.png 上面这些,通通是用的 Dataview 的行内查询 (Inline DQL) 实现的,所有的时间记录都会自动修改,不需要手动修改。 上面图片中使用的源码如下,你可以直接复制全部放到你的首页,也可以只复制其中你

Huajin

Huajin

Pkmer

Dataview 语法实战:自定义排序的简单实例

在 Dataveiw 中简单的自定义排序

SORT 有排序的意思,既然是排序,我们就需要指定是依据什么字段排序。dataview 提供了两个关键字 ASC 和 DESC 来选择结果是从小到大排序还是从大到小排序。但是,我们能不能自定义一种排序方式呢? Dataview语法实战-自定义排序的简单实例 如果我们直接列出所有的食谱以及食谱类型,我们会得到这么一个结果 dataview TABLE recipe-type FROM "10 Example Data/food" WHERE recipe-type Dataview语法实战-自定义排序的简单实例 是不是有点混乱,

Huajin

Huajin

Pkmer

Dataveiw 的 GROUP BY 操作符进阶示例

这个问题我们在 Dataview语法实战-FLATTEN操作符进阶示例3. 配合函数使用FLATTEN 操作符进阶示例 里面站在 FLATTEN 的角度详细讲过了,这里就站在 GROUP BY 的角度再讲一次。 拿上面那些书本来举例,书的主题属性是数组。考虑这么一个情形:书 A 的主题属性有 a, b 两个值,书 B 的属性只有 a 这个值。那么对书的主题这个属性作 GROUP BY 会有什么结果呢。答案是他们会各自为一组。因为 GROUP BY 成组的条件是必须严格相等,也就是数组中的每个元素都要相等。 Dataview语法实战-GROU

Huajin

Huajin

Pkmer

Dataveiw 的 GROUP BY 操作符简单示例

Dataveiw 的 GROUP BY 操作符简单示例

GROUP BY 翻译成正文就是按照什么分组。不知道你在使用 GROUP BY 操作符的时候,有没有遇到成组后其他列都消失的情况。这是因为,我们原本使用了 FROM 和 WHERE 操作符之后得到的结果是以文件为单位的。再使用了 GROUP BY 操作符之后,我们的单位就会变成一由同类属性组成的一个个集合了。 所有的书都放在了 "10 Example Data/books" 文件夹下,因此可以用以下代码列出所有记录的书籍的作者 dataview LIST FROM "10 Example Data/books" GROUP BY au

Huajin

Huajin

Pkmer

Dataview 语法实战:FLATTEN 操作符入门示例

Dataview 查询中的一些 FLATTEN 操作符的使用实例

FLATTEN 是 GROUP BY 的反义词,它的作用是把数组拆分成单个值,每个值单独成行。例如你的查询结果中有一项包含一个七个值的数组,你就会得到七行,每行为原数组中的一个值。 使用前 Dataview语法实战-FLATTEN操作符入门示例525 使用后 Dataview语法实战-FLATTEN操作符入门示例525 Dataview语法实战-FLATTEN操作符入门示例500 所有的书都放在了 "10 Example Data/books" 文件夹下,因此如果要检索所有这些文件,并且展示所有书的类型,我们就可以用下

Huajin

Huajin

Pkmer

Dataview:向列表和任务添加元数据

Dataview 基本语法学习指南,添加元数据至列表和任务

因为时间与任务或者列表总捆绑在一块,比如一个任务的 ddl,或者是完成时间,且 Dataview 为这类转换提供了简化语法,因此把这一节单独拿出来。 image.png 两种方法记录的实际上是同一个元数据。也就是说,表情 🗓️ 对应的属性就是 due,即截止日期。用图像代表截止日期更直观。 除此之外,还有其他的 Emoji 表情代表不同的含义: Emoji 表情属性 Field Name含义 :-::-::-: 🗓️due截止日期 ✅ completion完成日期 ➕created创建日期 🛫 start开始日期 ⏳ sche

Huajin,PKMer Huajin,PKMer

Huajin,PKMer

Pkmer

Dataview 实战:发挥元数据的魔力:掌握 Dataview 的四大查询类型

Dataview 的四大查询类型实例

在 Obsidian 的世界中,元数据是无尽的宝藏,而 Dataview 插件则是开启这个宝藏的魔法钥匙。不同于简单的笔记,Dataview 插件为你提供了四种强大的查询类型:表格、列表、任务和日历。让我们一起看看这些查询类型在实际应用中是如何释放出其魔力的。 无论是整理项目进展、笔记内容还是任务计划,Table 查询都能以表格的形式清晰地展现信息。假设你正在撰写一篇文章,想要整理各个观点的优劣。通过 Table 查询,你可以将不同观点、支持论据和反对论据整理成一张表格,一目了然地比较它们的利弊,助你更有条理地构建文章框架。 如果你

Huajin

Huajin

Pkmer

Dataview 中的DQL 与 SQL 的区别

基本语法学习指南,DQL 与 SQL 的区别

如果你熟悉 SQL 并且具有编写 SQL 查询的经验,你可以用编写 SQL 的方式编写 DQL 查询。但是 DQL 与 SQL 有很大不同。 DQL 查询从上到下逐行执行。它更像是一个计算机程序,而不是一个典型的 SQL 查询。 计算一行时,它会生成一个结果集,并将整个结果集传递到下一个 DQL 行。该行将对从上一行接收的集合做下一步操作。这就是为什么在 DQL 中可以有多个 WHERE 子句的原因。但在 DQL 中,它不是一个“子句”,而是一个“数据命令”。DQL 查询的每一行(第一行和第二行除外)都是一个“数据命令”。

Huajin,PKMer Huajin,PKMer

Huajin,PKMer

Pkmer

Obsidian 那些实用的操作

列举了我用 Obsidian 的过程中常用的一些实用操作。

当我使用 Obsidian 时,窥探出这些实用操作,仿佛得到了某种智慧的启示。这其中蕴含的快捷键,有如隐世的剑术,能在瞬息间将繁琐转化为轻盈。而那些快捷操作则似乎是隐秘的咒语,只需轻轻一触,文字便如江河般畅通无阻。 P.S. 我的武功只限于 Windows 操作系统,不知 Mac 的仙法为何。望此番分享,能够在诸位的修炼之路上,添砖加瓦,探索更高层次的知识殿堂。

Huajin

Huajin

Pkmer

Table Extended 表格合并利器

Table Extended 表格合并利器,这个插件为 Obsidian 提供了 MultiMarkdown 表语法和内部链接和完整嵌入的功

源于 Markdown 天生的表格简约性,导致了 Obsidian 中的表格不会像我们其他办公软件的那么容易。Obsidian 中如何对表格进行高级处理,似乎成了每位用户必经的问题。当用户尝试应用具有 colspan 或多个标头的复杂表时,他们唯一的选择是返回到原始 HTML,这很难阅读和编辑。 这个插件为 Obsidian 提供了 MultiMarkdown 表语法和内部链接和完整嵌入的功能,主要有 Table-Extended效果图一.png622 Table-Extended效果图二.

Huajin

Huajin

Pkmer

Dataview 中的DQL 与 SQL 的区别

基本语法学习指南,DQL 与 SQL 的区别

如果你熟悉 SQL 并且具有编写 SQL 查询的经验,你可以用编写 SQL 的方式编写 DQL 查询。但是 DQL 与 SQL 有很大不同。 DQL 查询从上到下逐行执行。它更像是一个计算机程序,而不是一个典型的 SQL 查询。 计算一行时,它会生成一个结果集,并将整个结果集传递到下一个 DQL 行。该行将对从上一行接收的集合做下一步操作。这就是为什么在 DQL 中可以有多个 WHERE 子句的原因。但在 DQL 中,它不是一个“子句”,而是一个“数据命令”。DQL 查询的每一行(第一行和第二行除外)都是一个“数据命令”。

Huajin,PKMer Huajin,PKMer

Huajin,PKMer

Pkmer

Dataview 支持的Data Commands 操作符

基本语法学习指南,Data Commands 操作符,FROM,WHERE,SORT,FLATTEN,LIMIT,GROUP BY

FROM <source> 语句用于决定你所有结果的来源,这些来源可以是: - 收集所有引用了文件 A 的文件,语法为 FROM A - 收集文件 A 中引用了的文件,语法为 FROM outgoing(A) dataview Table From "PKMER/Dataview" dataview Table From "PKMER/Dataview" and !"PKMER/Dataview/00-MOC 目录" dataview Table From ... d

Huajin,PKMer Huajin,PKMer

Huajin,PKMer

Pkmer

Dataview 支持的Literals 字面常量

基本语法学习指南,Literals 字面常量

Dataview 中可以使用的字面常量有三种 给出了一些一般字面常量的例子,可以自己根据示例在查询中选择合适的字面常量; 字面常量 Literal解释 Description :-::-: 0数字 0 1337正数 1337 -200负数 -200 "The quick brown fox jumps over the lazy dog."用了 26 个字母的字符串 链接链接 指向本文的链接 [1, 2, 3]1, 2, 3 组成的列表 1, 2], [3, 4[1, 2] 和 [3, 4] 组成的列表 { a: 1. b

Huajin,PKMer Huajin,PKMer

Huajin,PKMer

Pkmer

Dataview 中的Metadata 元数据

Dataview 基本语法学习指南,元数据

或许你在其他地方也听过 Metadata 这个概念,它的适用范围远远不止于 Dataview 这个插件。 解释一下这段话:元数据是关于数据的数据,第一个『数据』指的是对象,在 obsidian 中一般就是指一个文件,也就是我们查找的最小单位(除了 task)。第二个『数据』是数据的数据,也就是前一个数据的某个信息,也就是文件的信息 (属性),比如说文件的标题,文件的创建日期等。 一个元属性包含两个部分:Key 和 Value(其实就是一个键值对),假如 Key 是 name,对应的 Value 就是具体的名字。假如 key 是 age,对

Huajin,PKMer Huajin,PKMer

Huajin,PKMer

Pkmer

Dataview 基本语法学习指南

Dataview 基本语法学习指南

我们大体介绍 Obsidian Dataview 插件的基本语法,在不学习任何编程的前提下,看完后面罗列的内容。相信你也可以完成内容相关的内容。 Dataview 将 Obsidian Vault 变成了一个数据库,使得我们可以用 DQL (Dataview Query Language) 进行查询。 当然如果你熟悉英文或者能够熟练使用翻译软件,可以同步阅读插件的 官方教程,这里有更加权威的教程。 首先我们先通过一个简单的示例让你对 Dataview 的代码有部分概念,然后学习 Dataview 需要知道的一些预备知识 (Me

Huajin,PKMer Huajin,PKMer

Huajin,PKMer

Pkmer

Typewriter Mode 更完美的打字机模式

Typewriter Mode 更完美的打字机模式

当你在用 obsidian 写中长文时,是否会因为写到页面末尾不得不使用鼠标滚动界面而烦恼。如果你希望让你的光标所在行固定在屏幕某处。如果觉得固定不习惯,也可以设置在光标所在行距离屏幕底部还有几行的时候再进入打字机模式,那么 Typewriter Mode 值得一试。 如果大家使用过另一款更加出名的打字机插件 Typewriter Scroll,不难发现使用时 笔记标题和正文存在空白,非常突兀且影响美观。而 Typewriter Mode 则很好的解决了这个问题。 - 打字机位置偏移: 将打字机行定位到屏幕指定百分比

Huajin

Huajin

Pkmer

Obsidian shared to Notion 一键把 Obsidian 中的文件传输到 Notion 中

一键将 Obsidian中的文件传输到 notion 中

Obsidian 是一款流行的个人知识管理和笔记软件,而 Notion 则是一款功能强大的多合一工具,提供了丰富的协作和组织功能。obsidian-share-to-notion 的目标是将这两个工具结合起来,使得用户可以轻松地分享 Obsidian 笔记到 Notion 中,并在两个工具之间保持实时同步。 想要实现这些功能,我们需要使用 Notion 的集成功能 integrations。 Notion 提供了广泛的集成选项,可以满足个人用户、团队和企业的不同需求。以下是一些常见的 Notion Integration

Huajin

Huajin

Pkmer

在 Obsidian 中为图片添加注释

在 Obsidian 中为图片添加注释,多种方法让你为笔记中的图片增加注释信息

在obsidian中为图片添加注释示例图1.png577 在 obsidian 中我们可以用下面两种格式插入图片(! 代表让图片可见) 还可以通过 HTML 标签来调整图片的大小和位置。

Huajin

Huajin

Pkmer

书签 (Bookmarks)

obsidian, 核心插件, Bookmarks, 书签,替代星标核心插件,更加强大

书签实际上是一种“快捷方式”,也可以理解为一个“收藏夹”。你可以为你想快速打开的内容添加书签,省去了在众多文件夹中慢慢查找的时间。可以添加书签的内容不仅仅是某个页面,还可以是某个标题,某一段话等。 一般点击顶部左侧一个像旗帜一样的符号就能打开,也可以在命令面板中用 Show bookmarks 打开。书签页里存放着你所有添加了的书签,点击他们就可以快速打开这个书签对应的内容。 当然,如果有几个书签是属于同一类,你也可以创建一个书签组 (bookmark group),点击上方的添加文件夹样式的图标),将这些书签都拖进去即可。 image

Huajin

Huajin

Pkmer

Better Command Palette 更好更易用的命令面板

Better Command Palette 更好更易用的命令面板,为命令面板添加了一个更用户友好、功能更丰富的强化

命令面板集成了很多好用的功能,除了官方提供的快捷命令,还有丰富的插件生态,各个插件作者也会往里面放入一些常用功能。 但当命令随着插件增多,命令面板承担了搜索、打开、核心插件、社区插件的众多命令后,你会发现似乎单纯的搜索,不那么好用了。Better Command Palette 就为命令面板添加了一个更用户友好、功能更丰富的强化。使用 cmd+shift+p 打开命令面板。 1. 使用快捷键 ctrl+shift+p 打开此命令面板,默认进入命令搜索模式(原来的命令面板用 ctrl+p 打开); 2. 使用退格键关闭命

Huajin

Huajin

Pkmer

Code Tab 不止于混合代码块

Code Tab 混合代码块,创造一个类似 leetcode 样式的混合代码块,且不仅限于代码块。

为代码块加上标签页,生成 leetcode 样式的混合代码块,且不仅限于代码块,可以自己设计内容比如 tasks,dataview 等。 tab: 标题1 从这里到下一个tab就是内容啦 tab: 标题2 内容二 image-20230707191358527.png 当每一个内容为代码块时,渲染的效果就是类似 leetcode 的那种混合代码块的效果啦

Huajin

Huajin

Pkmer