diff --git "a/10-Obsidian/Obsidian\344\275\277\347\224\250\346\212\200\345\267\247/\347\206\212\347\214\253\345\210\253\347\206\254\345\244\234/\347\206\212\347\214\253\345\210\253\347\206\254\345\244\234Excalidraw\350\204\232\346\234\254\346\261\207\346\200\273.md" "b/10-Obsidian/Obsidian\344\275\277\347\224\250\346\212\200\345\267\247/\347\206\212\347\214\253\345\210\253\347\206\254\345\244\234/\350\207\252\345\256\232\344\271\211Excalidraw\350\204\232\346\234\254\346\261\207\346\200\273.md" similarity index 71% rename from "10-Obsidian/Obsidian\344\275\277\347\224\250\346\212\200\345\267\247/\347\206\212\347\214\253\345\210\253\347\206\254\345\244\234/\347\206\212\347\214\253\345\210\253\347\206\254\345\244\234Excalidraw\350\204\232\346\234\254\346\261\207\346\200\273.md" rename to "10-Obsidian/Obsidian\344\275\277\347\224\250\346\212\200\345\267\247/\347\206\212\347\214\253\345\210\253\347\206\254\345\244\234/\350\207\252\345\256\232\344\271\211Excalidraw\350\204\232\346\234\254\346\261\207\346\200\273.md" index a20c99e8d..9124c254b 100644 --- "a/10-Obsidian/Obsidian\344\275\277\347\224\250\346\212\200\345\267\247/\347\206\212\347\214\253\345\210\253\347\206\254\345\244\234/\347\206\212\347\214\253\345\210\253\347\206\254\345\244\234Excalidraw\350\204\232\346\234\254\346\261\207\346\200\273.md" +++ "b/10-Obsidian/Obsidian\344\275\277\347\224\250\346\212\200\345\267\247/\347\206\212\347\214\253\345\210\253\347\206\254\345\244\234/\350\207\252\345\256\232\344\271\211Excalidraw\350\204\232\346\234\254\346\261\207\346\200\273.md" @@ -1,21 +1,20 @@ --- uid: 20240323225915 -title: 熊猫别熬夜 Excalidraw 脚本汇总介绍 -tags: - - Excalidraw脚本 -description: 熊猫别熬夜 Excalidraw 脚本汇总 - 自动检测更新 +title: 自定义 Excalidraw 脚本汇总介绍 +tags: [Excalidraw脚本] +description: Excalidraw 脚本汇总 - 自动检测更新 author: 熊猫别熬夜 type: other draft: false editable: false -modified: 20240323225915 +modified: 20240909130006 --- -# 熊猫别熬夜 Excalidraw 脚本汇总介绍 +# 自定义 Excalidraw 脚本汇总介绍 [熊猫别熬夜的 Excalidraw 代码片段](https://github.com/PandaNocturne/ExcalidrawScripts),可通过 Excalidraw 插件的脚本代码块 (\`\`\`excalidraw-script-install) 来安装,里面放的是脚本 GitHub 的 RAW 链接,在 Obsidian 中会显示为按钮,脚本更新会自动检测: -![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-1](https://cdn.pkmer.cn/images/202404012157053.png!pkmer) +![自定义Excalidraw脚本汇总_IMG-1](https://cdn.pkmer.cn/images/202404012157053.png!pkmer) ````md ```excalidraw-script-install @@ -44,6 +43,30 @@ https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/README. ## 实用脚本 +### Excalidraw Script Install Market + +```excalidraw-script-install +https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/PandaScripts/ExcalidrawScriptInstallMarket.md +``` + +- Author:熊猫别熬夜 +- PKMerDoc: +- Description:方便你从非官方脚本市场的 Github 仓库中获取和管理 Excalidraw 脚本的小工具。通过这个脚本,你可以轻松安装、更新和编辑脚本市场的 URL 链接,并在不同的脚本市场之间快速切换。 + - ![自定义Excalidraw脚本汇总.png](https://cdn.pkmer.cn/images/202409081943844.png!pkmer) + - ![自定义Excalidraw脚本汇总.png](https://cdn.pkmer.cn/images/202409081943820.png!pkmer) + +### FameAutoSize + +```excalidraw-script-install +https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/PandaScripts/FameAutoSize.md +``` + +- Author:熊猫别熬夜 +- Doc:[[自定义Excalidraw脚本-Frame框架自适应大小]] +- Description:将“frame”的大小和位置自适应到其中包含的元素。 + - ![24.06.18_Excalidraw脚本-Frame框架自适应大小.md](https://cdn.pkmer.cn/images/202409091300380.gif!pkmer) + + ### QuickSwitchFrame ```excalidraw-script-install @@ -53,7 +76,7 @@ https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/PandaSc - Author:熊猫别熬夜 - PKMerDoc:[[自定义Excalidraw脚本-QuickSwitchFrame-简单的Frame切换大纲]] - Description:提供一个 Frame 边框切换的提示框。 - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-2](https://cdn.pkmer.cn/images/202404012157054.gif!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-2](https://cdn.pkmer.cn/images/202404012157054.gif!pkmer) ### ExcalidrawGlobalSearch @@ -64,10 +87,21 @@ https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/PandaSc - Author:熊猫别熬夜 - Doc:[[自定义Excalidraw脚本-画板全文搜索]] - Description:实现 Excalidraw 画板的💬文本、🖼图片 OCR、📝嵌入文档的全文搜索 - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-3](https://cdn.pkmer.cn/images/202404012157056.gif!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-3](https://cdn.pkmer.cn/images/202404012157056.gif) ## 文档编辑 +### LatexEditor + +```excalidraw-script-install +https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/PandaScripts/LatexEditor.md +``` + +- Author:熊猫别熬夜 +- PKMerDoc:[[Excalidraw LateχEditor:用于画板的 Lateχ编辑器]] +- Description:可视化编辑 Lateχ公式。 + - ![Excalidraw.md](https://cdn.pkmer.cn/images/202409081940224.png!pkmer) + ### QuickerInsertZKCard ```excalidraw-script-install @@ -77,13 +111,13 @@ https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/PandaSc - Author:熊猫别熬夜 - PKMerDoc:[自定义 Excalidraw 脚本 - 快速插入时间戳笔记](https://pkmer.cn/show/20231110162417) - Description:快速插入或删除时间戳笔记 - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-4](https://cdn.pkmer.cn/images/202404012157057.png!pkmer) - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-5](https://cdn.pkmer.cn/images/202404012157058.gif!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-4](https://cdn.pkmer.cn/images/202404012157057.png!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-5](https://cdn.pkmer.cn/images/202404012157058.gif!pkmer) - 选择或框选笔记后,再次运行脚本就可以删除本地笔记和画板元素了 - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-6](https://cdn.pkmer.cn/images/202404012157059.gif!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-6](https://cdn.pkmer.cn/images/202404012157059.gif!pkmer) - ChangeLog: - 2024-03-27_02:55:添加创建 DrawIO 的 SVG 矢量图,默认不会自动打开,可以配合 OpenSelectImage 脚本来打开文件。 - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-7](https://cdn.pkmer.cn/images/202404012157060.gif!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-7](https://cdn.pkmer.cn/images/202404012157060.gif!pkmer) - Tip:选中第 2 次运行同样可以删除文件,也可以用 OpenSelectImage 删除。 ### AddMermaidSvg @@ -95,9 +129,9 @@ https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/PandaSc - Author:一鸣惊人 - PKMerDoc:[[自定义Excalidraw脚本-插入可以编辑的Mermaid图形]] - Description:插入可以二次编辑的 Mermaid 矢量图 - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-8](https://cdn.pkmer.cn/images/202404012157061.gif!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-8](https://cdn.pkmer.cn/images/202404012157061.gif!pkmer) - `Ctrl + 鼠标左键单击` 可以弹出源码: - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-9](https://cdn.pkmer.cn/images/202404012157062.gif!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-9](https://cdn.pkmer.cn/images/202404012157062.gif!pkmer) ### NumberMode @@ -108,7 +142,7 @@ https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/PandaSc - Author:熊猫别熬夜 - PKMerDoc:[自定义 Excalidraw 脚本 - 双击添加圆圈编号](https://pkmer.cn/show/20240221010235) - Description:编号模式,双击添加或编辑编号 - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-10](https://cdn.pkmer.cn/images/202404012157063.gif!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-10](https://cdn.pkmer.cn/images/202404012157063.gif!pkmer) - ✅已启动编号模式,双击添加 num - ⏩双击 num 可以重新编辑编号 - ⏹再次运行脚本即可退出编号模式 @@ -125,6 +159,7 @@ https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/PandaSc - PKMerDoc:[[自定义Excalidraw脚本-给Excalidraw添加标签]] - Description:借助 Modal Form 插件的表单,给 Excalidraw 画板内的文本添加标签。 - ![自定义Excalidraw脚本-给Excalidraw添加标签_IMG-1](https://cdn.pkmer.cn/images/202404281330829.gif!pkmer) + ## MindMap - [[自定义Excalidraw脚本-修改MindMap Format设置思维导图Frame容器]] @@ -141,14 +176,14 @@ https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/PandaSc - PKMerDoc:[[自定义Excalidraw脚本-默认应用打开图片]] - Description:设定默认或其他软件打开图片 - 在 Excalidraw 插件设置里面可以设置参数,除了默认应用打开外,还可以自定义多个不同软件打开 - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-11](https://cdn.pkmer.cn/images/202404012157064.png!pkmer) - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-12](https://cdn.pkmer.cn/images/202404012157065.png!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-11](https://cdn.pkmer.cn/images/202404012157064.png!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-12](https://cdn.pkmer.cn/images/202404012157065.png!pkmer) - ChangeLog: - 2024-03-26_12:07:添加删除图片的选项 - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-13](https://cdn.pkmer.cn/images/202404012157066.gif!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-13](https://cdn.pkmer.cn/images/202404012157066.gif!pkmer) - 2024-03-27_02:53: - 添加修改设置选项,可在编辑修改外部软件设置 - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-14](https://cdn.pkmer.cn/images/202404012157067.gif!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-14](https://cdn.pkmer.cn/images/202404012157067.gif!pkmer) - 添加图片重命名选项,可以来重命名或移动图片 ### TextExtractor @@ -160,8 +195,8 @@ https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/PandaSc - Author:熊猫别熬夜 - PKMerDoc:[[自定义Excalidraw脚本-OCR自动提取图片文字]] - Description:使用 Text Extractor 插件或者本地 Paddleocr 模型批量识别画板中的图片到 Yaml 区,可编辑修改。 - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-15](https://cdn.pkmer.cn/images/202404012157068.gif!pkmer) - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-16](https://cdn.pkmer.cn/images/202404012157069.png!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-15](https://cdn.pkmer.cn/images/202404012157068.gif!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-16](https://cdn.pkmer.cn/images/202404012157069.png!pkmer) - ChangeLog: - 2023-12-29: - 优化 OCR 识别文本的 Yaml 数据结构存储 @@ -178,7 +213,7 @@ https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/PandaSc - Author:一鸣惊人,熊猫别熬夜 - PKMerDoc:[[自定义Excalidraw脚本-AdjustImageSize-统一多个图片宽度或者高度]] - Description:用于调整多个图片 (image)、矩形框 (rectangle)、Frame 边框的大小,以选中的元素的最大宽度 (高度) 或者最小宽度 (高度) 进行统一缩放,分别有 `等宽缩放`、`等高缩放`、`完全相等` 这 3 个选项。 - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-17](https://cdn.pkmer.cn/images/202404012157071.gif!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-17](https://cdn.pkmer.cn/images/202404012157071.gif!pkmer) > 这个非常好用,简单但实用 @@ -191,8 +226,8 @@ https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/PandaSc - Author:熊猫别熬夜 - PKMerDoc: [[自定义Excalidraw脚本-上传画板中的图片到图床]] - Description:将 Excalidraw 画板中引用的图片直接上传到 PicGo 的 Server 后并删除本地文件 (可不删除) - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-18](https://cdn.pkmer.cn/images/202404012157072.gif!pkmer) - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-19](https://cdn.pkmer.cn/images/202404012157073.png!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-18](https://cdn.pkmer.cn/images/202404012157072.gif!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-19](https://cdn.pkmer.cn/images/202404012157073.png!pkmer) ### SaveSelectAsLocalePng @@ -206,9 +241,9 @@ https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/PandaSc - ![File-20240401094628708.gif](https://raw.githubusercontent.com/PandaNocturne/ImageAssets/main/Obsidian/202408172318639.gif) - Tip: 如果未选择元素则自动选中画板内全部元素,以及如果选中的是 Frame 框架,则自动选择 Frame 内部所有元素。 - ChangeLog: - - 24.08.21:更新了UI + - 24.08.21:更新了 UI - ![Excalidraw.md](https://cdn.pkmer.cn/images/202408281302056.png!pkmer) - - 24.08.28:添加`Copy as Wiki`按钮,将图片自动生成在ob的默认附件位置,并复制`![[filename]]`文本至剪切板,相较于自带的`Copy to clipboard as PNG/SVG`,可随时调节PNG的缩放比例,调整清晰度。 + - 24.08.28:添加 `Copy as Wiki` 按钮,将图片自动生成在 ob 的默认附件位置,并复制 `![[filename]]` 文本至剪切板,相较于自带的 `Copy to clipboard as PNG/SVG`,可随时调节 PNG 的缩放比例,调整清晰度。 - ![Excalidraw.md](https://cdn.pkmer.cn/images/202408281302700.png!pkmer) ### RemoveBg @@ -219,7 +254,7 @@ https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/PandaSc - Author:熊猫别熬夜 - PKMerDoc:[[自定义Excalidraw脚本-抠图脚本remove.bg]] -- Description:采用[Remove.bg](https://www.remove.bg/zh/g/developers)的API来对Excalidraw中的图片进行抠图。 +- Description:采用 [Remove.bg](https://www.remove.bg/zh/g/developers) 的 API 来对 Excalidraw 中的图片进行抠图。 - ![Excalidraw.md](https://cdn.pkmer.cn/images/202408281302659.png!pkmer) ## 画布演示 @@ -233,9 +268,9 @@ https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/PandaSc - Author:熊猫别熬夜 - PKMerDoc:[[自定义Excalidraw脚本-画板局部或者全局播放动画]] - Description:逐步显示 Excalidraw 画板的元素 - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-21](https://cdn.pkmer.cn/images/202404012157075.png!pkmer) - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-22](https://cdn.pkmer.cn/images/202404012157076.gif!pkmer) - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-23](https://cdn.pkmer.cn/images/202404012157077.gif!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-21](https://cdn.pkmer.cn/images/202404012157075.png!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-22](https://cdn.pkmer.cn/images/202404012157076.gif!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-23](https://cdn.pkmer.cn/images/202404012157077.gif!pkmer) ### FrameKanban @@ -246,11 +281,11 @@ https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/PandaSc - Author:熊猫别熬夜 - PKMerDoc:[[自定义Excalidraw脚本-画板与 Kanban 得梦幻结合-像PPT一样演示]] - Description:配合 Kanban 插件生成画板的 Frame 缩略图或者线型大纲 - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-24](https://cdn.pkmer.cn/images/202404012157078.png!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-24](https://cdn.pkmer.cn/images/202404012157078.png!pkmer) - ChangeLog: - 2024-03-02: - 添加缩略图是否添加连接选项,参数修改为中文注释 - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-25](https://cdn.pkmer.cn/images/202404012157079.png!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-25](https://cdn.pkmer.cn/images/202404012157079.png!pkmer) - 排序时会将 Frame 名称添加到文档的 aliases 区 (添加文档别名方便搜索) - 2024-03-06: - 当选中一个 Frame 时,不再弹出选项框,而是更新 frame 大纲 (无缩略图) @@ -269,7 +304,7 @@ https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/PandaSc - Author:熊猫别熬夜 - PKMerDoc: [[自定义Excalidraw脚本-实现Zotero与Excalidraw的拖拽联动]] - Description:实现 Zotero 标注文本或者图片通过拖拽或者复制粘贴的形式添加到 Excalidraw 画板中 - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-26](https://cdn.pkmer.cn/images/202404012157080.png!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-26](https://cdn.pkmer.cn/images/202404012157080.png!pkmer) - ChangeLog: - 2023-10-17:添加可以匹配 Zotero 标注颜色的设置 - 2024-03-22:可以通过复制粘贴形式来添加 @@ -278,7 +313,7 @@ https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/PandaSc > Zotero 与 Obsidian 的 md 笔记的联动,参考 Quikcer 动作: > - [[Quicker动作之自定义Zotero标注到Obsidian]] > - [ZoteroToObsidian - by 熊猫别熬夜 - 动作信息 - Quicker](https://getquicker.net/Sharedaction?code=b7727e44-4933-4ec5-8103-08dbc1cb1ea7) -> - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-27](https://cdn.pkmer.cn/images/202404012157081.png!pkmer) +> - ![自定义Excalidraw脚本汇总_IMG-27](https://cdn.pkmer.cn/images/202404012157081.png!pkmer) ### BookxnoteToExcalidraw @@ -289,13 +324,12 @@ https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/PandaSc - Author:熊猫别熬夜 - PKMerDoc:[[自定义Excalidraw脚本-实现Excalidraw与BookxNote的联动]] - Description:联动 Bookxnote 与 Excalidraw - - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-28](https://cdn.pkmer.cn/images/202404012157082.gif!pkmer) + - ![自定义Excalidraw脚本汇总_IMG-28](https://cdn.pkmer.cn/images/202404012157082.gif!pkmer) > Bookxnote pro 与 Obsidian 的 md 笔记的联动,参考 Quikcer 动作: > - [[Quicker动作之BookxNote和Obsidian联动]] > - [BookxNoteToObsidian - by 熊猫别熬夜 - 动作信息 - Quicker](https://getquicker.net/Sharedaction?code=2bd5ec90-db36-49d4-51b3-08db7dd91f1a) -> - ![2024-03-06_熊猫别熬夜Excalidraw脚本汇总-Excalidraw自动检测更新_IMG-29](https://cdn.pkmer.cn/images/202404012157083.png!pkmer) - +> - ![自定义Excalidraw脚本汇总_IMG-29](https://cdn.pkmer.cn/images/202404012157083.png!pkmer) ### EagleToExcalidraw @@ -326,7 +360,7 @@ https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/PandaSc - Author:熊猫别熬夜 - PKMerDoc:[[自定义Excalidraw脚本-保存局部视图至Eagle并实现二次编辑功能]] -- Description:可选中 Excalidraw 中局部元素发送到 Eagle,已集合到EagleToExcalidraw脚本中,该脚本单独将此功能分离出来,导入Eagle里面的格式是SVG,可在官方Excalidraw中还原并二次编辑。 +- Description:可选中 Excalidraw 中局部元素发送到 Eagle,已集合到 EagleToExcalidraw 脚本中,该脚本单独将此功能分离出来,导入 Eagle 里面的格式是 SVG,可在官方 Excalidraw 中还原并二次编辑。 - ![File-20240817110840973.png](https://cdn.pkmer.cn/images/202408190105147.png!pkmer) - ![PixPin_2024-08-18_12-37-11.gif](https://cdn.pkmer.cn/images/202408190105015.gif!pkmer) - ![PixPin_2024-08-18_12-37-40.gif](https://cdn.pkmer.cn/images/202408190105549.gif!pkmer) diff --git "a/10-Obsidian/Obsidian\345\244\226\350\247\202/CSS \347\211\207\346\256\265/Obsidian\346\240\267\345\274\217-\346\240\270\345\277\203\345\244\247\347\272\262outline\346\240\207\351\242\230\346\230\276\347\244\272\350\207\252\345\212\250\347\274\226\345\217\267.md" "b/10-Obsidian/Obsidian\345\244\226\350\247\202/CSS \347\211\207\346\256\265/Obsidian\346\240\267\345\274\217-\346\240\270\345\277\203\345\244\247\347\272\262outline\346\240\207\351\242\230\346\230\276\347\244\272\350\207\252\345\212\250\347\274\226\345\217\267.md" new file mode 100644 index 000000000..529e6cd0b --- /dev/null +++ "b/10-Obsidian/Obsidian\345\244\226\350\247\202/CSS \347\211\207\346\256\265/Obsidian\346\240\267\345\274\217-\346\240\270\345\277\203\345\244\247\347\272\262outline\346\240\207\351\242\230\346\230\276\347\244\272\350\207\252\345\212\250\347\274\226\345\217\267.md" @@ -0,0 +1,100 @@ +--- +uid: 20240910165133 +title: Obsidian 样式 - 核心大纲 outline 标题显示自动编号 +tags: [css, outline] +description: " Outline 进行优化的CSS,自动对标题进行编号" +author: 熊猫别熬夜 +type: other +draft: false +editable: false +modified: 20240910173714 +--- + +# Obsidian 样式 - 核心大纲 outline 标题显示自动编号 + +![24.09.10_Obsidian样式-核心大纲outline标题显示自动编号.md](https://cdn.pkmer.cn/images/202409101652696.png!pkmer) + +对 Obsidian 的核心插件 Outline 进行优化,自动对标题进行编号。请注意,该编号不会实际修改文档中的标题编号。 + +> 该代码改编于 [obsidian-visually-numbered-headings:窗口计数失效](https://github.com/platon-ivanov/obsidian-visually-numbered-headings/issues/16) + +## 样式一:从一级标题开始计数 + +```css +/* https://github.com/platon-ivanov/obsidian-visually-numbered-headings/issues/16 */ +.workspace-leaf-content[data-type="outline"] { + counter-reset: rootCounter; + + .tree-item .tree-item-self .tree-item-inner::before { + content: counters(rootCounter, ".") ". "; + counter-increment: rootCounter; + } + + /* container of the ohter headings. */ + /* NOTE: It is not .outline anymore. So we need a new counter */ + .tree-item-children { + counter-reset: innerCounter; + } + + .tree-item-children .tree-item .tree-item-self .tree-item-inner::before { + content: counters(rootCounter, ".") "."counters(innerCounter, ".") ". "; + counter-increment: innerCounter; + } +} + +``` + +## 样式二:从二级标题开始计数 + +```css +/*! Visually Numbered Headings */ +/* https://github.com/platon-ivanov/obsidian-visually-numbered-headings/issues/16 */ + +/* container of first layer headings. */ +.workspace-leaf-content[data-type="outline"] { + counter-reset: rootCounter; + tree-item .tree-item-self .tree-item-inner::before { + /* content: counters(rootCounter, ".") " "; */ + counter-increment: rootCounter; + } + + /* container of the ohter headings. */ + /* NOTE: It is not .outline anymore. So we need a new counter */ + .tree-item-children { + counter-reset: innerCounter 0; + } + + .tree-item-children .tree-item .tree-item-self .tree-item-inner::before { + /* content: counters(rootCounter, ".") "." counters(innerCounter, ".") " "; */ + content: counters(innerCounter, ".") " "; + counter-increment: innerCounter; + } +} +``` + +## 拓展样式:文件大纲显示编号 + +![24.09.10_Obsidian样式-核心大纲outline标题显示自动编号.md](https://cdn.pkmer.cn/images/202409101737437.png!pkmer) + +```css +/* https://github.com/platon-ivanov/obsidian-visually-numbered-headings/issues/16 */ +.workspace-leaf-content[data-type="file-explorer"] { + counter-reset: rootCounter; + + .tree-item .tree-item-self .tree-item-inner::before { + content: counters(rootCounter, ".") ". "; + counter-increment: rootCounter; + } + + /* container of the ohter headings. */ + /* NOTE: It is not .outline anymore. So we need a new counter */ + .tree-item-children { + counter-reset: innerCounter; + } + + .tree-item-children .tree-item .tree-item-self .tree-item-inner::before { + content: counters(rootCounter, ".") "."counters(innerCounter, ".") ". "; + counter-increment: innerCounter; + } +} +``` diff --git "a/10-Obsidian/Obsidian\345\244\226\350\247\202/CSS \347\211\207\346\256\265/Obsidian\346\240\267\345\274\217-\350\260\203\346\225\264\345\233\276\347\211\207\344\270\215\345\220\214\345\270\203\345\261\200\346\240\267\345\274\217.md" "b/10-Obsidian/Obsidian\345\244\226\350\247\202/CSS \347\211\207\346\256\265/Obsidian\346\240\267\345\274\217-\350\260\203\346\225\264\345\233\276\347\211\207\344\270\215\345\220\214\345\270\203\345\261\200\346\240\267\345\274\217.md" index 058467e29..56358187a 100644 --- "a/10-Obsidian/Obsidian\345\244\226\350\247\202/CSS \347\211\207\346\256\265/Obsidian\346\240\267\345\274\217-\350\260\203\346\225\264\345\233\276\347\211\207\344\270\215\345\220\214\345\270\203\345\261\200\346\240\267\345\274\217.md" +++ "b/10-Obsidian/Obsidian\345\244\226\350\247\202/CSS \347\211\207\346\256\265/Obsidian\346\240\267\345\274\217-\350\260\203\346\225\264\345\233\276\347\211\207\344\270\215\345\220\214\345\270\203\345\261\200\346\240\267\345\274\217.md" @@ -3,11 +3,11 @@ uid: 20231202002300 title: Obsidian 样式:调整图片不同布局样式 tags: [图片, CSS自定义] description: Obsidian 样式 - 调整图片不同布局样式,将图片渲染为圆形或者控制图片在文本的左侧或者右侧,可组合。 -author: 余月鱼鸽 +author: 余月鱼鸽,熊猫别熬夜 type: other draft: false editable: false -modified: 20240119110622 +modified: 20240909145310 --- # Obsidian 样式:调整图片不同布局样式 @@ -26,9 +26,9 @@ modified: 20240119110622 注:以下测试图片来自:英国 1927 剧团的话剧《roots》的剧照 > [!note] 1.将图片变成圆形 -> 插入图片后,在图片名后面添加 `#O` 并设置自己期望的圆形比例 ` |200x200` +> 插入图片后,在图片名后面添加 `|O` 并设置自己期望的圆形比例 ` |200x200` > -> 设置完的配置:`![[DSC04693.jpg#O|200x200]]`, +> 设置完的配置:`![[DSC04693.jpg|O|200x200]]`, **具体效果如下** : @@ -39,15 +39,15 @@ modified: 20240119110622 > 2. 设置圆形大小的参数必须是小写的 x,如上图为:200x200,数字键盘的 `*` 以及大写的 `X` 不生效 > [!note] 2.控制图片在文本的左侧或者右侧。 -> 1. 插入图片后,在图片名后面添加 `#L` 可控制图片出现在左侧;格式为:`![[DSC04693.jpg#L|150]]` -> 2. 插入图片后,在图片名后面添加 `#R` 可控制图片出现在右侧;格式为:`![[DSC04693.jpg#R|150]]` +> 1. 插入图片后,在图片名后面添加 `#L` 可控制图片出现在左侧;格式为:`![[DSC04693.jpg|L|150]]` +> 2. 插入图片后,在图片名后面添加 `#R` 可控制图片出现在右侧;格式为:`![[DSC04693.jpg|R|150]]` **具体效果如下**: ![Obsidian 样式 - 调整图片不同布局样式](https://cdn.pkmer.cn/images/202312020017825.png!pkmer) > [!note] 3.两种效果混合使用 -> 例:插入图片后,在图片名后面添加 `#O` 设置图片为圆形后,后面添加 `L` 可控制图片出现在左侧;后面添加 `R` 可控制图片出现在右侧;格式为:`![[DSC04693.jpg#OL|200x200]]` +> 例:插入图片后,在图片名后面添加 `|O` 设置图片为圆形后,后面添加 `L` 可控制图片出现在左侧;后面添加 `R` 可控制图片出现在右侧;格式为:`![[DSC04693.jpg|OL|200x200]]` **具体效果如下**: @@ -57,26 +57,6 @@ modified: 20240119110622 ```css /* 片段来自:pkmer知识管理交流群,@熊猫别熬夜*/ -/* 将所有图片默认居中 */ -body:not(.list-image-control-off) - :is(.HyperMD-list-line, ul) - .image-embed.image-embed - img:not([width]):not([class*="emoji"]){ - display: flex; - /* justify-content: center; */ - /* align-items: center; */ - max-width: 90%; - margin: 0 auto; - object-fit: contain; - background-color: transparent !important; -} - -/* 视频 */ -video { - display: block; - margin: 0 auto; /* 设置左右间距为自适应,上下间距为零 */ - width: 90%; -} /* === Image Float === */ body { @@ -84,61 +64,106 @@ body { --float-right-margin: 4px 12px 4px 12px; --float-snw-display: none; } -span[src$="O"] img { - object-fit: cover; - border-radius: 50%; -} -span[src$="OL"] img { - object-fit: cover; - border-radius: 50%; - float: left; - text-align: left; - margin: var(--float-left-margin); - margin-block: unset; - display: inline !important; -} +.view-content .markdown-preview-sizer { + div:has(img)::before, + div:has(img)::after { + content: " "; + clear: both; -span[src$="OR"] img { - object-fit: cover; - border-radius: 50%; - float: left; - text-align: right; - margin: var(--float-right-margin); - margin-block: unset; - display: inline !important; -} + &>div:has(ol) { + clear: none; + } + } -span[src$="L"] img { - float: left; - text-align: left; - margin: var(--float-left-margin); - margin-block: unset; - display: inline !important; + div:has(img)::after { + display: table; + } } -span[src$="R"] img { - float: right; - text-align: right; - margin: var(--float-right-margin); - margin-block: unset; - display: inline !important; +.view-content .markdown-source-view, +.view-content .markdown-preview-sizer { + span[alt="O"] img { + object-fit: cover; + border-radius: 50%; + } + + span[alt="OL"] img { + object-fit: cover; + border-radius: 50%; + float: left; + text-align: left; + margin: var(--float-left-margin); + margin-block: unset; + display: inline !important; + } + + span[alt="OR"] img { + object-fit: cover; + border-radius: 50%; + float: left; + text-align: right; + margin: var(--float-right-margin); + margin-block: unset; + display: inline !important; + } + + span[alt="L"] img { + float: left; + text-align: left; + margin: var(--float-left-margin); + margin-block: unset; + display: inline !important; + } + + span[alt="R"] img { + float: right; + text-align: right; + margin: var(--float-right-margin); + margin-block: unset; + display: inline !important; + } + + /* 行内显示 */ + span[alt="I"] img:not([width]) { + float: unset; + text-align: left; + height: 2rem !important; + margin: 0px 0.2rem 0px 0.2rem !important; + transform: translateY(0.3rem); + margin-block: unset; + display: inline !important; + } } -/* 独占一行 */ -span[src$="IL"] img { - float: unset; - text-align: left; - margin: var(--float-left-margin); - margin-block: unset; - display: inline !important; +/* Banner图片 */ +p:has(span[alt="banner"]) { + column-span: all; + margin: 0; + /* margin-bottom: 15px; */ + padding: 0; + overflow: hidden; + user-select: none; + /* pointer-events: none; */ } -span[src$="IR"] img { - float: unset; - text-align: right; - margin: var(--float-right-margin); - margin-block: unset; - display: inline !important; + +span[alt="banner"] img { + width: 100%; + object-fit: cover; + object-position: center; + ; + height: 200px; + /* 抄自https://geek-docs.com/css/css-tutorials/t_adding-a-mask-to-an-image-using-css.html */ + mask-image: linear-gradient(to top, + transparent 50%, + var(--background-primary) 50%); } + ``` + +- 24.09.09:Change Log + - 新增行内显示模式,调用格式为: `![[image.png|I]]`,像emoji一样将图片嵌入至文档内。 + - ![image.png](https://cdn.pkmer.cn/images/202409091457490.png!pkmer) + - 图片浮动格式设置为 `![[image.png|OL|200x200]]` 这种类型了,图片大小可以不加,直接 `![[image.png|L]]` 这样就行。 + - 图片与要并排的文字之间不要有空行就行。 \ No newline at end of file diff --git "a/10-Obsidian/Obsidian\345\244\226\350\247\202/Obsidian\347\232\204CSS\344\273\243\347\240\201\347\211\207\346\256\265.md" "b/10-Obsidian/Obsidian\345\244\226\350\247\202/Obsidian\347\232\204CSS\344\273\243\347\240\201\347\211\207\346\256\265.md" index 7f544369e..8d56c18a2 100644 --- "a/10-Obsidian/Obsidian\345\244\226\350\247\202/Obsidian\347\232\204CSS\344\273\243\347\240\201\347\211\207\346\256\265.md" +++ "b/10-Obsidian/Obsidian\345\244\226\350\247\202/Obsidian\347\232\204CSS\344\273\243\347\240\201\347\211\207\346\256\265.md" @@ -7,7 +7,7 @@ author: OS,PKMer type: awesome draft: false editable: false -modified: 20240905145641 +modified: 20240910165513 --- # Obsidian 的 CSS 代码片段 @@ -49,8 +49,6 @@ Obsidian 还支持一种外部样式代码引用的方式。 ### 界面元素 -- [[Obsidian样式-像VSCode一样显示搜索替换框]] -- [[Obsidian样式-实时编辑下大纲等级符号居右以及Border标题CSS]] - [[Obsidian样式-悬浮两侧菜单栏]] - [[Obsidian样式-悬浮侧边栏自动弹出,提升工作流效率]] - [[Obsidian样式-专注标签页边框]] @@ -59,6 +57,11 @@ Obsidian 还支持一种外部样式代码引用的方式。 - [[Obsidian样式-多行标签页堆叠显示]] - [[Obsidian样式-全宽的图谱搜索框样式]] +### 大纲 (Outline) + +- [[Obsidian样式-实时编辑下大纲等级符号居右以及Border标题CSS]] +- [[Obsidian样式-核心大纲outline标题显示自动编号]] + ### 编辑器 - [[Obsidian样式-minimal主题Cards卡片布局]] diff --git "a/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Excalidraw/Excalidraw Late\317\207Editor\357\274\232\347\224\250\344\272\216\347\224\273\346\235\277\347\232\204 Late\317\207\347\274\226\350\276\221\345\231\250.md" "b/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Excalidraw/Excalidraw Late\317\207Editor\357\274\232\347\224\250\344\272\216\347\224\273\346\235\277\347\232\204 Late\317\207\347\274\226\350\276\221\345\231\250.md" new file mode 100644 index 000000000..c4cf61401 --- /dev/null +++ "b/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Excalidraw/Excalidraw Late\317\207Editor\357\274\232\347\224\250\344\272\216\347\224\273\346\235\277\347\232\204 Late\317\207\347\274\226\350\276\221\345\231\250.md" @@ -0,0 +1,28 @@ +--- +uid: 20240908193817 +title: Excalidraw LateχEditor:用于画板的 Lateχ编辑器 +tags: [Excalidraw脚本, latex] +description: Excalidraw LateχEditor:用于画板的 Lateχ编辑器 +author: 熊猫别熬夜 +type: other +draft: false +editable: false +modified: 20240908193853 +--- + +# Excalidraw LateχEditor:用于画板的 Lateχ编辑器 + +![24.09.08_自定义Excalidraw脚本-LateχEditor用于画板的新Lateχ编辑器.md](https://cdn.pkmer.cn/images/202409081937363.png!pkmer) + +## 功能 + +1. 可视化编辑 Lateχ公式:直接运行脚本使用。 +2. 可二次编辑 Lateχ公式:选中一个 latex 公式后,在运行脚本使用。 + +## 安装链接 + +```` +```excalidraw-script-install +https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/PandaScripts/LatexEditor.md +``` +```` \ No newline at end of file diff --git "a/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Excalidraw/Excalidraw Script Install Market\357\274\232\350\275\273\346\235\276\347\256\241\347\220\206\345\222\214\350\216\267\345\217\226 Excalidraw \350\204\232\346\234\254.md" "b/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Excalidraw/Excalidraw Script Install Market\357\274\232\350\275\273\346\235\276\347\256\241\347\220\206\345\222\214\350\216\267\345\217\226 Excalidraw \350\204\232\346\234\254.md" new file mode 100644 index 000000000..344a10ec8 --- /dev/null +++ "b/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Excalidraw/Excalidraw Script Install Market\357\274\232\350\275\273\346\235\276\347\256\241\347\220\206\345\222\214\350\216\267\345\217\226 Excalidraw \350\204\232\346\234\254.md" @@ -0,0 +1,272 @@ +--- +uid: 20240908020150 +title: Excalidraw Script Install Market:轻松管理和获取 Excalidraw 脚本 +tags: [Excalidraw脚本, 插件开发] +description: Excalidraw Script Install Market 是一个方便你从非官方脚本市场的 Github 仓库中获取和管理 Excalidraw 脚本的小工具。通过这个脚本,你可以轻松安装、更新和编辑脚本市场的 URL 链接,并在不同的脚本市场之间快速切换。 +author: 熊猫别熬夜 +type: other +draft: false +editable: false +modified: 20240908020329 +--- + +# Excalidraw Script Install Market:轻松管理和获取 Excalidraw 脚本 + +Excalidraw Script Install Market 是一个方便你从非官方脚本市场的 Github 仓库中获取和管理 Excalidraw 脚本的小工具。通过这个脚本,你可以轻松安装、更新和编辑脚本市场的 URL 链接,并在不同的脚本市场之间快速切换。 + +脚本安装链接: + +```` +```excalidraw-script-install +https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/PandaScripts/ExcalidrawScriptInstallMarket.md +``` +```` + +> 只需以下几个简单的操作,就能找到并使用你需要的脚本,提升你的绘图效率。 + +## 安装 Excalidraw 脚本 + +要安装脚本,请点击界面中的 `安装此脚本/Install the script` 按钮。当按钮显示为 `该脚本已是最新-点击重新安装/Script is up to date - Click to reinstall` 时,表示该脚本已经成功安装。 + +## 切换脚本市场 + +您可以通过点击左侧的 🌐name 下拉菜单,方便地切换不同的脚本市场。 + +![24.09.08_Excalidraw Script Install Market:轻松管理和获取 Excalidraw 脚本.md](https://cdn.pkmer.cn/images/202409080202803.png!pkmer) + +### 编辑 URL 源 + +如需编辑 URL,请点击 `📝Editor` 按钮。您可以按照以下格式输入链接: + +```text +name|link +``` + +其中,名称(name)和链接(link)之间用 `|` 符号分隔,多个链接则以换行符分开。 + +```text +name1|link1 +name2|link2 +name3|link3 +...... +``` + +- **name**:您自定义的脚本市场名称。 +- **link**:指向 GitHub 上对应 `readme.md` 的链接或 raw 链接。 +![24.09.08_Excalidraw Script Install Market:轻松管理和获取 Excalidraw 脚本.md](https://cdn.pkmer.cn/images/202409080202968.png!pkmer) + +## Demo + +![24.09.08_Excalidraw Script Install Market:轻松管理和获取 Excalidraw 脚本.md](https://cdn.pkmer.cn/images/202409080202807.gif) + +## 脚本源码 + +脚本 Github 链接:[ExcalidrawScriptsInstallMarket](https://github.com/PandaNocturne/ExcalidrawScripts/blob/master/PandaScripts/ExcalidrawScriptInstallMarket.md) + +脚本源码 (24.09.08),最新脚本请以 Github 上的为准,非常欢迎大佬帮忙优化。 + +```js +class PKMerExcalidrawScriptMarket extends ea.obsidian.Modal { + constructor(app, defaultUrls) { + super(app); + this.defaultUrls = defaultUrls; + } + + async onOpen() { + const { contentEl } = this; + // 添加URL表单并固定在顶部 + const formContainer = contentEl.createEl('div', { cls: 'excalidraw-script-form-container' }); + const formEl = formContainer.createEl('form', { cls: 'excalidraw-script-url-form' }); + const selectEl = formEl.createEl('select', { cls: 'excalidraw-script-url-select' }); + const inputEl = formEl.createEl('input', { type: 'text', cls: 'excalidraw-script-url', placeholder: 'URL' }); + + const editorButtonEl = formEl.createEl('button', { type: 'button', text: '📝Editor' }); + const submitButtonEl = formEl.createEl('button', { type: 'submit', text: '🔄Reload' }); + const closeButtonEl = formEl.createEl('button', { type: 'button', cls: "excalidraw-script-container-colse", text: '❌' }); + + // 关闭按钮点击事件 + closeButtonEl.addEventListener('click', () => { + this.close(); + }); + + // 填充下拉菜单 + this.defaultUrls.forEach(item => { + selectEl.createEl('option', { text: `🌐${item.name}`, value: item.url }); + }); + + // 下拉菜单选择事件 + selectEl.addEventListener('change', async () => { + inputEl.value = selectEl.value; + await this.loadDocument(inputEl.value); + }); + + formEl.addEventListener('submit', async (event) => { + event.preventDefault(); + const url = inputEl.value; + await this.loadDocument(url); + }); + + // Editor 按钮点击事件 + editorButtonEl.addEventListener('click', async () => { + const defaultUrls = this.defaultUrls.map(item => `${item.name}|${item.url}`).join('\n'); + const input = await utils.inputPrompt( + '请编辑URL,格式为:名称|URL', + '', + defaultUrls, + [], + 10, + false + ); + const newUrls = input.split('\n').map(line => { + const [name, url] = line.split('|'); + return { name, url }; + }); + this.defaultUrls = newUrls; + settings["Scipts URLs"].value = newUrls; + ea.setScriptSettings(settings); + + // 更新下拉菜单 + selectEl.innerHTML = ''; // 清空现有选项 + this.defaultUrls.forEach(item => { + selectEl.createEl('option', { text: `🌐${item.name}`, value: item.url }); + }); + }); + + // 添加样式 + this.addStyles(); + // 初始加载默认文档 + inputEl.value = this.defaultUrls[0].url || ""; + await this.loadDocument(inputEl.value, true); + } + + async loadDocument(url) { + const { contentEl } = this; + + // 清空现有文档内容 + const existingDocContainer = contentEl.querySelector('.doc-container'); + if (existingDocContainer) { + existingDocContainer.remove(); + } + + // 添加显示文档内容的容器 + const docContainer = contentEl.createEl('div', { cls: 'doc-container excalidraw-script-market' }); + + + // 获取并显示文档内容 + const docContent = await this.fetchDocumentContent(url); + + // 使用 Obsidian 的 Markdown 渲染功能 + ea.obsidian.MarkdownRenderer.renderMarkdown(docContent, docContainer, '', this); + } + + async fetchDocumentContent(url) { + try { + let response; + if (url.includes('github.com')) { + // 将 GitHub URL 转换为 raw URL + url = url.replace('github.com', 'raw.githubusercontent.com').replace('/blob/', '/'); + } + response = await fetch(url); + if (!response.ok) { + throw new Error(`Network response was not ok: ${response.statusText}`); + } + const text = await response.text(); + return text; + } catch (error) { + console.error('Failed to fetch document:', error); + return '# 无法加载文档内容'; + } + } + addStyles() { + const style = document.createElement('style'); + style.textContent = ` + div.modal:has(.excalidraw-script-market) { + width: 900px; + position: relative; + + img { + &:not(.link-favicon) { + width: 100%; + } + + &.coffee { + width: 10em; + } + + &[src*=".svg"] { + width: 2em; + } + } + + .excalidraw-script-form-container { + + padding-bottom: 10px; + border-bottom: 2px solid var(--interactive-accent); + + .excalidraw-script-url-form { + display: flex; + width: 100%; + flex-direction: row; + align-items: center; + justify-content: space-between; + + &>*:not(:last-child) { + margin-right: 10px; + } + + .excalidraw-script-url { + flex: 0.8 1 600px; + } + + .excalidraw-script-container-colse { + flex: 0.1 1 10px; + } + + button { + flex: 0.2 1 100px; + } + } + + } + + .modal-close-button, + button.copy-code-button { + display: none; + } + + .doc-container { + overflow: auto; + height: 800px; + } + } + `; + document.head.appendChild(style); + } + onClose() { + // 移除动态添加的样式 + const style = document.querySelector('style.excalidraw-script-market'); + if (style) { + style.remove(); + } + } +} + +let settings = ea.getScriptSettings(); +if (!settings["Scipts URLs"]) { + settings = { + "Scipts URLs": { + value: [ + { name: 'PandaScripts', url: 'https://raw.githubusercontent.com/PandaNocturne/ExcalidrawScripts/master/README.md' }, + // 你可以在这里添加更多默认的URL + { name: 'ExcalidrawScript', url: 'https://github.com/zsviczian/obsidian-excalidraw-plugin/blob/master/ea-scripts/index-new.md' }, + ], + hide: true, + }, + }; + ea.setScriptSettings(settings); +} +// 使用示例 +const URLs = settings["Scipts URLs"].value; +const modal = new PKMerExcalidrawScriptMarket(app, URLs); +await modal.open(); +``` \ No newline at end of file diff --git "a/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Excalidraw/obsidian-excalidraw-plugin.md" "b/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Excalidraw/obsidian-excalidraw-plugin.md" index 443a02826..bb53c8e83 100644 --- "a/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Excalidraw/obsidian-excalidraw-plugin.md" +++ "b/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Excalidraw/obsidian-excalidraw-plugin.md" @@ -142,7 +142,8 @@ Excalidraw 在早期是有很多问题的,比如没有手写压感,插图太 > EA 脚本开发的介绍: [[ExcalidrawAutomate index]] -- [[熊猫别熬夜Excalidraw脚本汇总]] +- [[自定义Excalidraw脚本汇总]] +- [[Excalidraw Script Install Market:轻松管理和获取 Excalidraw 脚本]] ### CSS 美化 diff --git "a/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Excalidraw/\350\207\252\345\256\232\344\271\211Excalidraw\350\204\232\346\234\254-Frame\346\241\206\346\236\266\350\207\252\351\200\202\345\272\224\345\244\247\345\260\217.md" "b/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Excalidraw/\350\207\252\345\256\232\344\271\211Excalidraw\350\204\232\346\234\254-Frame\346\241\206\346\236\266\350\207\252\351\200\202\345\272\224\345\244\247\345\260\217.md" new file mode 100644 index 000000000..9fe102b90 --- /dev/null +++ "b/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Excalidraw/\350\207\252\345\256\232\344\271\211Excalidraw\350\204\232\346\234\254-Frame\346\241\206\346\236\266\350\207\252\351\200\202\345\272\224\345\244\247\345\260\217.md" @@ -0,0 +1,52 @@ +--- +uid: 20240909130144 +title: 自定义 Excalidraw 脚本 -Frame 框架自适应大小 +tags: [Excalidraw脚本] +description: Excalidraw 脚本 -Frame 框架自适应大小 +author: 熊猫别熬夜 +type: other +draft: false +editable: false +modified: 20240909130219 +--- + +# 自定义 Excalidraw 脚本 -Frame 框架自适应大小 + +## Frame 框架自适应大小 + +![24.06.18_自定义Excalidraw脚本-Frame框架自适应大小.md](https://cdn.pkmer.cn/images/202409091301049.gif!pkmer) + +功能:功能是将“frame”的大小和位置自适应到其中包含的元素。 + +## 源码 + +```js +await ea.addElementsToView(); +const els = ea.getViewElements(); +const frameEls = els.filter(el => el.type === "frame"); + +for (let frameEl of frameEls) { + let minX = Infinity; + let maxY = -Infinity; + let maxX = -Infinity; + let minY = Infinity; + + for (let i of els) { + if (i.frameId === frameEl.id) { + if (i.x < minX) minX = i.x; + if (i.x + i.width > maxX) maxX = i.x + i.width; + if (i.y < minY) minY = i.y; + if (i.y + i.height > maxY) maxY = i.y + i.height; + } + } + + // 更新frame的大小和位置 + frameEl.x = minX - 20; + frameEl.y = minY - 20; + frameEl.width = maxX - minX + 40; + frameEl.height = maxY - minY + 40; + await ea.addElementsToView(false, false); +} + +new Notice("Frame已自适应!"); +``` \ No newline at end of file diff --git "a/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Quickadd/QuickAdd\350\204\232\346\234\254-\345\277\253\351\200\237\346\211\223\345\274\200Plugin\346\210\226CSS\346\226\207\344\273\266.md" "b/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Quickadd/QuickAdd\350\204\232\346\234\254-\345\277\253\351\200\237\346\211\223\345\274\200Plugin\346\210\226CSS\346\226\207\344\273\266.md" new file mode 100644 index 000000000..f808276c6 --- /dev/null +++ "b/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Quickadd/QuickAdd\350\204\232\346\234\254-\345\277\253\351\200\237\346\211\223\345\274\200Plugin\346\210\226CSS\346\226\207\344\273\266.md" @@ -0,0 +1,60 @@ +--- +uid: 20240908205100 +title: QuickAdd 脚本 - 快速打开 Plugin 或 CSS 文件 +tags: [quickadd脚本] +description: 快速打开 Plugin 或 CSS 文件 +author: 熊猫别熬夜 +type: other +draft: false +editable: false +modified: 20240909125937 +--- + +# QuickAdd 脚本 - 快速打开 Plugin 或 CSS 文件 + +## 实现功能 + +用于快速打开 Plugin 文件夹 或 CSS 文件,运行后会打开 PluginId 选择框,通过关键词筛选后,选择需要打开的插件 Id,则会自动找到对应 Plugin 或 CSS 文件。 + +![24.09.08_QuickAdd脚本-快速打开Plugin文件夹.md](https://cdn.pkmer.cn/images/202409082051297.gif) + +### 用途 + +有时候要排查某个插件是否跟其他插件有冲突,就需要找到对应文件夹,但在 plugins 的文件夹里面来找的话,我眼睛都花了还找不到,且文件夹管理器的搜索又慢,就需要用到这个办法了。 + +## QuickAdd Capture 代码 + +```` +```js quickadd +const quickAddApi = this.app.plugins.plugins.quickadd.api; +const path = require("path"); +const options = ["插件", "CSS"]; +let option = await quickAddApi.suggester(options, options); + +switch (option) { +case "插件": + const manifests = app.plugins.manifests; + const count = Object.keys(manifests).length; + console.log(`ob插件的个数是: ${count}`); + const pluginOptions = Object.keys(manifests); + option = await quickAddApi.suggester(pluginOptions, pluginOptions); + const pluginPath = manifests[option].dir + "/" + "main.js"; + console.log(pluginPath); + app.showInFolder(pluginPath); + break; +case "CSS": + const cssCache = app.customCss.csscache; + const keys = Array.from(cssCache.keys());; + console.log(`自定义CSS的个数是: ${keys.length}`); + option = await quickAddApi.suggester(keys.map(i => path.basename(i)), keys); + app.openWithDefaultApp(option); + break; +} +``` +```` + +## Capture 脚本设置 + +![24.09.08_QuickAdd脚本-快速打开Plugin文件夹.md](https://cdn.pkmer.cn/images/202409082051014.png!pkmer) + +![24.09.08_QuickAdd脚本-快速打开Plugin文件夹.md](https://cdn.pkmer.cn/images/202409082051675.png!pkmer) diff --git "a/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Quickadd/QuickAdd\350\204\232\346\234\254-\346\217\222\345\205\245\345\271\266\347\274\226\350\276\221SVG\346\226\207\344\273\266.md" "b/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Quickadd/QuickAdd\350\204\232\346\234\254-\346\217\222\345\205\245\345\271\266\347\274\226\350\276\221SVG\346\226\207\344\273\266.md" index 7c153799a..5c506ad18 100644 --- "a/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Quickadd/QuickAdd\350\204\232\346\234\254-\346\217\222\345\205\245\345\271\266\347\274\226\350\276\221SVG\346\226\207\344\273\266.md" +++ "b/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Quickadd/QuickAdd\350\204\232\346\234\254-\346\217\222\345\205\245\345\271\266\347\274\226\350\276\221SVG\346\226\207\344\273\266.md" @@ -121,5 +121,5 @@ module.exports = { ## Reference 1. [[关于 Diagram 软件的功能介绍以及在 Obsidian 使用的方案]] -2. [[熊猫别熬夜Excalidraw脚本汇总]] +2. [[自定义Excalidraw脚本汇总]] 3. [【QuickAdd脚本】通过wiki链接删除并对应文件,适用于笔记重组 - 经验分享 - Obsidian 中文论坛](https://forum-zh.obsidian.md/t/topic/31660) diff --git "a/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Quickadd/quickadd.md" "b/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Quickadd/quickadd.md" index 580719709..34a649540 100644 --- "a/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Quickadd/quickadd.md" +++ "b/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Quickadd/quickadd.md" @@ -71,8 +71,9 @@ modified: 20240417180235 1. [[QuickAdd脚本-配合FolderNotes及Markmind插件生成文件大纲导图]] 2. [[QuickAdd脚本-插入Zotero的条目PDF链接]] 3. [[QuickAdd脚本-Project项目选项栏]] -4. [[基于 QuickAdd+Modal Form的任务 (Task) 编辑器]] -5. [[QuickAdd脚本-带图复制-自动上传图片到图床]] +4. [[QuickAdd脚本-快速打开Plugin或CSS文件]] +5. [[基于 QuickAdd+Modal Form的任务 (Task) 编辑器]] +6. [[QuickAdd脚本-带图复制-自动上传图片到图床]] ## 参考资料