【经验分享】 Js 在 Obsidian 中的花式引入

本文与【闲谈】Obsidian 中的 JS 相互关联,目的是将其中讨论分开,不会显得过于混乱;

  从楼主个人来看,DataviewJs 在基础上实现了很多常用的Js方法,所以其他 Js/Ts 就是数据处理/展示的更高扩展维度;Obsidian 可以主要将 Js/Ts 分为两大类:

  1. DataviewJs:也就是俗称的 dvjs ,主要作用是在obsidian中的文件获取基础数据(Data);
  2. 其他 Js/Ts:则是实现更多的数据展示和方法处理扩充 ;

前排提示,所有Js的执行都是具有风险的,也相对应的引起过一些讨论

提示:当需求开始膨胀的时候,会考虑学更多的插件功能,但是切忌舍本逐末:

  1. 学习插件的高级功能使用时相当费时费事的(例如 DataviewJs )
  2. 为了稳定适用 Obsidian ,感觉需要不断减少插件的使用(每日闲聊)

一、以 DataviewJs 功能引入 JS

1)DataviewJs 中的 dv.view( ) [1] [2]
2)DataviewJs 中的 await request("....cdn/script.js"); [3] [4]
3)DataviewJs 中的 <script> 标签 [5] [6]

==【关联坑】DataviewJS 中调用外部链接==

关键字:

  • 方法:requestUrlrequestfetch
  • 错误提示:net::ERR_FAILED
  • 平台:Win、MacOS、Ubuntu、Android、IOS

二、其他 CodeScript 管理插件

也就是说,在使用以上插件的时候都会存在跨域问题,因为这是 Obsidian 本身的问题(浏览器模型);


但是我现在比较好奇的是

  • 使用 dv.view( ) 是否就对应的 ”使用fs库直接读取并执行js文件“;
  • 使用 <script> 是否对应的”通过子进程调用系统的node运行时如何获取输出“;

    此表述源于OvO佬,我只是知道可以通过追加HTML元素的形式以DOM中渲染实现视图效果。

  1. DVview汇总显示笔记内信息 ↩︎

  2. DataviewJS 的传参与复用 ↩︎

  3. DataviewJS 导入来自 CDN 的 JavaScript 模块_1 ↩︎

  4. DataviewJS 导入来自 CDN 的 JavaScript 模块_2 ↩︎

  5. DataviewJS 添加标签 JavaScript 模块_1 ↩︎

  6. DataviewJS 添加标签 JavaScript 模块_2 ↩︎

续更计划:完善提到的方法的用例…