From cd90fb5552cfa9b7df19ee83d9dba3e5a812e31f Mon Sep 17 00:00:00 2001 From: ProudBenzene Date: Sat, 30 Mar 2024 18:49:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=863=E7=AF=87=E6=96=87?= =?UTF-8?q?=E6=A1=A3=EF=BC=8C=E4=BF=AE=E5=A4=8D=E4=BA=86=E4=B8=80=E7=AF=87?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...21\351\251\254\347\201\257\346\241\206.md" | 125 +++++++++++ ...73\345\212\240\351\242\230\346\263\250.md" | 126 +++++++++++ ...76\347\211\207\347\274\226\350\276\221.md" | 202 +++++++++++------- ...45\344\270\212\347\211\210\346\234\254.md" | 31 +++ 4 files changed, 408 insertions(+), 76 deletions(-) create mode 100644 "10-Obsidian/Obsidian\345\244\226\350\247\202/CSS \347\211\207\346\256\265/Admonition\346\240\267\345\274\217-\345\275\251\350\211\262\350\267\221\351\251\254\347\201\257\346\241\206.md" create mode 100644 "10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/Quickadd/QuickAdd\350\204\232\346\234\254-\344\270\272\345\233\276\347\211\207\346\267\273\345\212\240\351\242\230\346\263\250.md" create mode 100644 "10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/banners\346\217\222\344\273\266beta\347\211\210\351\200\202\351\205\215Obsidian 1.4\344\273\245\344\270\212\347\211\210\346\234\254.md" diff --git "a/10-Obsidian/Obsidian\345\244\226\350\247\202/CSS \347\211\207\346\256\265/Admonition\346\240\267\345\274\217-\345\275\251\350\211\262\350\267\221\351\251\254\347\201\257\346\241\206.md" "b/10-Obsidian/Obsidian\345\244\226\350\247\202/CSS \347\211\207\346\256\265/Admonition\346\240\267\345\274\217-\345\275\251\350\211\262\350\267\221\351\251\254\347\201\257\346\241\206.md" new file mode 100644 index 000000000..35c5c4276 --- /dev/null +++ "b/10-Obsidian/Obsidian\345\244\226\350\247\202/CSS \347\211\207\346\256\265/Admonition\346\240\267\345\274\217-\345\275\251\350\211\262\350\267\221\351\251\254\347\201\257\346\241\206.md" @@ -0,0 +1,125 @@ +--- +uid: 20240330182904 +title: Admonition样式:彩色跑马灯框 +tags: + - Admonition + - callout + - 跑马灯 +description: Callout彩色跑马灯样式 +author: ProudBenzene +type: advanced +draft: false +editable: false +modified: 20240330184023 +--- + +# Admonition 样式:彩色跑马灯框 + +## 需求 + +为了给「名人名言」增加一个醒目又漂亮的框,我参考了网上跑马灯方框的代码,略作修改使其成为了一个跑马灯 Callout 样式。 + +本来想做一个简约一点的,但是水平有限没搞出来,下次再试试。 + +## 效果展示 + +![](https://cdn.pkmer.cn/images/202403301833273.png!pkmer) + +## 配置方法 + +复制下方代码为 CSS 文件,放入 Obsidian 的配置文件夹中的 snippets 文件夹,再在 Obsidian 外观设置中启用即可: + +```css +/* From www.lingdaima.com, modified from cards to Callout by ProudBenzene */ +.callout[data-callout="dictum"] { + --border-radius: 15px; + --border-width: 4px; + appearance: none; + position: relative; + padding: 1em 2em; + border: 0; + background: rgb(5, 5, 22); + font-size: 18px; + font-weight: 500; + color: #fff; + z-index: 2; + border-radius: 15px; +} + +.callout[data-callout="dictum"]::after { + --m-i: linear-gradient(#000, #000); + --m-o: content-box, padding-box; + content: ""; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + padding: var(--border-width); + border-radius: var(--border-radius); + background-image: conic-gradient( + #488cfb, + #29dbbc, + #ddf505, + #ff9f0e, + #e440bb, + #655adc, + #488cfb + ); + -webkit-mask-image: var(--m-i), var(--m-i); + mask-image: var(--m-i), var(--m-i); + -webkit-mask-origin: var(--m-o); + mask-origin: var(--m-o); + -webkit-mask-clip: var(--m-o); + mask-composite: exclude; + -webkit-mask-composite: destination-out; + filter: hue-rotate(0); + animation: rotate-hue linear 500ms infinite; + animation-play-state: paused; +} + +.callout[data-callout="dictum"]:hover::after { + animation-play-state: running; +} + +@keyframes rotate-hue { + to { + filter: hue-rotate(1turn); + } +} + +.callout[data-callout="dictum"], +.callout[data-callout="dictum"]::after { + box-sizing: border-box; +} + +.callout[data-callout="dictum"]:active { + --border-width: 5px; +} + +/*******隐藏题头******/ + +.callout.callout[data-callout="dictum"] .callout-title { + background-color: transparent; + display: none; /*使callout的题头行内排布*/ + visibility: hidden; /*不显示callout的题头*/ +} + +.callout.callout[data-callout="dictum"] .callout-title-inner { + line-height:0; + font-size:0; + overflow:hidden; +} + +.callout.callout[data-callout="dictum"] .callout-title img { + border-radius: 1em; + margin: auto; + display: block; +} +.callout.callout[data-callout="dictum"] .callout-fold { + display: none; +} +.callout.callout[data-callout="dictum"] .callout-icon { + display: none; +} +``` \ 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-\344\270\272\345\233\276\347\211\207\346\267\273\345\212\240\351\242\230\346\263\250.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-\344\270\272\345\233\276\347\211\207\346\267\273\345\212\240\351\242\230\346\263\250.md" new file mode 100644 index 000000000..e0152d25a --- /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-\344\270\272\345\233\276\347\211\207\346\267\273\345\212\240\351\242\230\346\263\250.md" @@ -0,0 +1,126 @@ +--- +uid: 19840124160000 +title: QuickAdd脚本:为图片添加题注 +tags: + - quickadd + - 图片 + - 题注 +description: 使用QuickAdd脚本为图片添加题注 +author: ProudBenzene +type: advanced +draft: false +editable: false +modified: 20240330184210 +--- + +# QuickAdd 脚本:为图片添加题注 + +## 需求 + +由于目前我着手的库中有许多笔记经由同一个模板,且其中的图片都需要以固定格式进行题注命名,并通过图片的 metadata 控制图片大小保持一致,因此我撰写了这个脚本。 + +## 功能 + +- 将图片的文件名填入到图片题注中,例如 `![](assets/请保持平衡|Balance,%20Please.assets/心相%20请保持平衡.png)` 在经过脚本转换后变为 `![心相 请保持平衡](assets/请保持平衡|Balance,%20Please.assets/心相%20请保持平衡.png)` +- 这是一个可选功能,在执行脚本后为图片添加上固定的 metadata 参数,如 `![心相 请保持平衡|inlL|300](assets/请保持平衡|Balance,%20Please.assets/心相%20请保持平衡.png)` + +> [!warning] 注意 +> 本脚本仅限**非 Wiki 链接**形式的图片使用。 + +效果展示: + +![](https://cdn.pkmer.cn/images/202403301830078.gif!pkmer) + +## 脚本 + +```javascript +// autoImageCaption.js by @ProudBenzene +let editor; +let activeLeaf = this.app.workspace.activeLeaf; +if (activeLeaf.view.getViewType() === 'markdown') { + editor = activeLeaf.view.sourceMode.cmEditor; +} +// 现在你可以在这个作用域内使用editor对象了 +const { exec } = require('child_process'); +const path = require("path"); + +let QuickAdd; +module.exports = async function autoImageCaptions(params) { + QuickAdd = params; + new Notice(`题注自动生成完毕`, 5000); +}; + +// 获取笔记的基本路径 +const filePath = app.workspace.getActiveFile().path; +const fileFullPath = app.vault.adapter.getFullPath(filePath) + +// 获取选中的文本 +const editors = app.workspace.activeLeaf.view.sourceMode.cmEditor; +const selection = editors.getSelection(); +console.log(selection); +// 分情况讨论(选中的是链接本身还是链接中的文件名) +let selectionEmbed; +if (selection.includes("[[")) { // 如果选中的是Wiki链接本身 + selectionEmbed = matchSelectionEmbed(selection); +} else { // 如果选中的是Wiki链接中的文件名 + selectionEmbed = selection; +} +console.log(selectionEmbed) +// 分情况讨论(wiki链接或是标准markdown链接) +if (!selection.includes("(")) { + // Wiki: 获取库所有文件列表 + const regex = /\/([^\/]*?)\./g; + let decodedSelection = decodeURIComponent(selectionEmbed); + let matches; + let wikiName; + while ((matches = regex.exec(decodedSelection)) !== null) { + wikiName = matches[1]; + } + console.log(wikiName) + // 用wikiName替换[]中的内容 + if (!selection.includes("]]")) { + const newSelection = `${selectionEmbed}|${wikiName}`; + console.log(newSelection); + editor.replaceSelection(newSelection); + } else { + const newSelection = selectionEmbed.replace(/\]\]/, `|${wikiName}]]`); + console.log(newSelection); + editor.replaceSelection(newSelection); + } + +} else { + // 通过正则依次获取图片路径、图片名称并将其解码为文本 + const regex1 = /\((.*?)\)/; + const matches1 = regex1.exec(selection); + const selectionPath = matches1[1]; //去掉嵌入语法后的图片路径 + console.log(selectionPath); + const regex = /.*\/(.*?)\./; + const decodedSelection = decodeURIComponent(selectionPath); + const matches2 = regex.exec(decodedSelection); + let imageName = ''; + if (matches2 && matches2[1]) { + imageName = matches2[1]/* + "|inlL|300"*/; /*修改此处可以为图片增加固定metadata控制大小*/ + } + console.log(imageName); + // 用imageName替换[]中的内容 + const newSelection = selection.replace(/\[.*?\]/, `[${imageName}]`); + editor.replaceSelection(newSelection); + +} + +// 获取Wiki路径 +function getFilePath(files, link) { + let files2 = files.filter(f => path.basename(f.path).endsWith(link.replace(/\[\[/, "").replace(/\|.*]]/, "").replace(/\]\]/, ""))); + let filePath = files2.map((f) => f.path)[0]; + console.log(filePath); + return filePath; +} + +function matchSelectionEmbed(text) { + const regex = /(\[\[.*\]\])/; + const matches = text.match(regex); + return matches ? matches[1] : ""; +} + + +``` \ 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-\344\270\200\351\224\256\345\234\250\347\263\273\347\273\237\345\272\224\347\224\250\344\270\255\346\211\223\345\274\200\345\233\276\347\211\207\347\274\226\350\276\221.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-\344\270\200\351\224\256\345\234\250\347\263\273\347\273\237\345\272\224\347\224\250\344\270\255\346\211\223\345\274\200\345\233\276\347\211\207\347\274\226\350\276\221.md" index 94bc4640d..bf3ea62e6 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-\344\270\200\351\224\256\345\234\250\347\263\273\347\273\237\345\272\224\347\224\250\344\270\255\346\211\223\345\274\200\345\233\276\347\211\207\347\274\226\350\276\221.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-\344\270\200\351\224\256\345\234\250\347\263\273\347\273\237\345\272\224\347\224\250\344\270\255\346\211\223\345\274\200\345\233\276\347\211\207\347\274\226\350\276\221.md" @@ -7,7 +7,7 @@ author: ProudBenzene,熊猫别熬夜 type: advanced draft: false editable: false -modified: 20231221170448 +modified: 20240330184709 --- # Quickadd 脚本:一键在系统应用中打开图片编辑 @@ -29,6 +29,9 @@ modified: 20231221170448 这些操作不仅极为繁复,而且很不优雅,比较浪费时间。 +> [!warning] 注意 +> 现在更推荐使用 [[AttachFlow]] 插件,包含多重非图片操作。 + ## 脚本说明 使用下面的脚本,可以直接在系统软件中打开选中的图片: @@ -49,7 +52,8 @@ modified: 20231221170448 ## 脚本 ```js -const { exec } = require ('child_process'); +// openSelectedImage.js by ProudBenzene +const { exec } = require('child_process'); const path = require("path"); // 获取笔记的基本路径 @@ -57,7 +61,10 @@ const filePath = app.workspace.getActiveFile().path; const fileFullPath = app.vault.adapter.getFullPath(filePath) const basePath = app.vault.adapter.getBasePath() // 全局变量 -let wikiPath; +let wikiPath1; +let wikiPath2; +let wikiPath3; +let IMPath; let imagePath; let imageAbPath; // 获取选中的文本 @@ -66,101 +73,144 @@ const selection = getSelection().toString(); // 将 selection 转换为字符串 console.log(selection) // 分情况讨论(选中的是链接本身还是链接中的文件名) let selectionEmbed; -if (selection.includes("[[")) { // 如果选中的是Wiki链接本身 -selectionEmbed = matchSelectionEmbed(selection); +if (selection.includes("[[") || selection.includes("]]")) { // 如果选中的是Wiki链接本身 + selectionEmbed = matchSelectionEmbed(selection); } else { // 如果选中的是Wiki链接中的文件名 -selectionEmbed = selection; + selectionEmbed = selection; } console.log(selectionEmbed) // 分情况讨论(wiki链接或是标准markdown链接) if (!selection.includes("(")) { -// Wiki: 获取库所有文件列表 -wikiPath = basePath + '/' + getFilePath(files, selectionEmbed); // 匹配Wiki链接 -console.log(wikiPath); + // Wiki: 获取库所有文件列表 + // 解码 + const decodedPath = decodeURIComponent(selectionEmbed); + // 尽可能简短的形式 + wikiPath1 = basePath + '/' + getFilePath(files, decodedPath); // 匹配Wiki链接 + console.log(wikiPath1); + // 基于库的相对路径 + wikiPath2 = path.resolve(path.dirname(fileFullPath), decodedPath); // 根据相对路径得到绝对路径 + console.log(wikiPath2); + // 基于库的绝对路径 + wikiPath3 = basePath + '/' + decodedPath; // 绝对路径 + console.log(wikiPath3); } else { -// 根据相对路径得到图片的绝对路径 -const regex = /\((.*?)\)/; -const matches = regex.exec(selection); -const selectionPath = matches[1]; //去掉嵌入语法后的图片路径 -console.log(selectionPath); -const decodedPath = decodeURIComponent(selectionPath); -console.log(decodedPath); -imagePath = path.resolve(path.dirname(fileFullPath), decodedPath); // 根据相对路径得到绝对路径 -// 根据基于仓库的绝对路径得到图片的绝对路径 -const Abregex = /\((.*?)\)/; -const Abmatches = Abregex.exec(selection); -const selectionAbPath = Abmatches[1]; //去掉嵌入语法后的图片路径 -console.log(selectionAbPath); -const decodedAbPath = decodeURIComponent(selectionAbPath); -console.log(decodedAbPath); -imageAbPath = basePath + "/" + decodedAbPath; // 绝对路径 + const regex1 = /\((.*?)\)/; + const matches1 = regex1.exec(selection); + const selectionPath1 = matches1[1]; //去掉嵌入语法后的图片路径 + console.log(selectionPath1); + const decodedPath1 = decodeURIComponent(selectionPath1); + console.log(decodedPath1); + IMPath = basePath + '/' + getFilePath(files, decodedPath1); // 匹配Wiki链接basePath + '/' + getFilePath(files, decodedPath); // 匹配Wiki链接 + // 根据相对路径得到图片的绝对路径 + const regex = /\((.*?)\)/; + const matches = regex.exec(selection); + const selectionPath = matches[1]; //去掉嵌入语法后的图片路径 + console.log(selectionPath); + const decodedPath = decodeURIComponent(selectionPath); + console.log(decodedPath); + imagePath = path.resolve(path.dirname(fileFullPath), decodedPath); // 根据相对路径得到绝对路径 + // 根据基于仓库的绝对路径得到图片的绝对路径 + const Abregex = /\((.*?)\)/; + const Abmatches = Abregex.exec(selection); + const selectionAbPath = Abmatches[1]; //去掉嵌入语法后的图片路径 + console.log(selectionAbPath); + const decodedAbPath = decodeURIComponent(selectionAbPath); + console.log(decodedAbPath); + imageAbPath = basePath + "/" + decodedAbPath; // 绝对路径 } + // 获取Wiki路径 function getFilePath(files, link) { -let files2 = files.filter(f => path.basename(f.path).endsWith(link.replace(/\[\[/, "").replace(/\|.*]]/, "").replace(/\]\]/, ""))); -let filePath = files2.map((f) => f.path)[0]; -console.log(filePath); -return filePath; + let files2 = files.filter(f => path.basename(f.path).endsWith(link.replace(/\[\[/, "").replace(/\|.*]]/, "").replace(/\]\]/, ""))); + let filePath = files2.map((f) => f.path)[0]; + console.log(filePath); + return filePath; } + function matchSelectionEmbed(text) { -const regex = /(\[\[.*\]\])/; -const matches = text.match(regex); -return matches ? matches[1] : ""; + const regex = /(\[\[.*\]\])/; + const matches = text.match(regex); + return matches ? matches[1] : ""; } + let QuickAdd; module.exports = async function openSelectedImage(params) { -QuickAdd = params; -new Notice(`打开图片编辑器成功`, 5000); + QuickAdd = params; + new Notice(`打开图片编辑器成功`, 5000); }; + // 使用默认应用打开文件 //Windows /* -exec(`start "" "${imagePath}"`, (error, stdout, stderr) => { -if (error || stderr) { -exec(`start "" "${imageAbPath}"`, (error, stdout, stderr) => { //如果不能,尝试将选中图片路径按绝对路径处理 -if (error || stderr) { -exec(`start "" "${wikiPath}"`, (error, stdout, stderr) => { //如果不能,尝试将选中图片路径按Wiki链接处理 -if (error) { -console.error(`打开文件时出错: ${error.message}`); -return; -} -if (stderr) { -console.error(`打开文件时出错: ${stderr}`); -return; -} -console.log(`文件已成功打开`); -}); -} -console.log(`文件已成功打开`); -}); -} else { -console.log(`文件已成功打开`); -} +exec(`start "" "${imagePath}"`, (error, stdout, stderr) => { // 尝试如果将选中图片路径按相对路径处理能否打开图片 + if (error || stderr) { + exec(`start "" "${imageAbPath}"`, (error, stdout, stderr) => { //如果不能,尝试将选中图片路径按绝对路径处理 + if (error || stderr) { + exec(`start "" "${IMPath}"`, (error, stdout, stderr) => { //如果不能,尝试将选中图片路径按尽可能短的标准链接处理 + if (error || stderr) { + exec(`start "" "${wikiPath1}"`, (error, stdout, stderr) => { //如果不能,尝试将选中图片路径按Wiki链接处理 + if (error || stderr) { + exec(`start "" "${wikiPath2}"`, (error, stdout, stderr) => { //如果不能,尝试将选中图片路径按Wiki相对链接处理 + if (error || stderr) { + exec(`start "" "${wikiPath3}"`, (error, stdout, stderr) => { //如果不能,尝试将选中图片路径按Wiki绝对路径链接处理 + if (stderr) { + console.error(`打开文件时出错: ${stderr}`); + return; + } + console.log(`文件已成功打开`); + }); + } + console.log(`文件已成功打开`); + }); + } + console.log(`文件已成功打开`); + }); + } + console.log(`文件已成功打开`); + }); + } + console.log(`文件已成功打开`); + }); + } else { + console.log(`文件已成功打开`); + } }); */ //macOS -exec(`open -a "Adobe Photoshop 2022" "${imagePath}"`, (error, stdout, stderr) => { // 尝试如果将选中图片路径按相对路径处理能否打开图片 -if (error || stderr) { -exec(`open -a "Adobe Photoshop 2022" "${imageAbPath}"`, (error, stdout, stderr) => { //如果不能,尝试将选中图片路径按绝对路径处理 -if (error || stderr) { -exec(`open -a "Adobe Photoshop 2022" "${wikiPath}"`, (error, stdout, stderr) => { //如果不能,尝试将选中图片路径按Wiki链接处理 -if (error) { -console.error(`打开文件时出错: ${error.message}`); -return; -} -if (stderr) { -console.error(`打开文件时出错: ${stderr}`); -return; -} -console.log(`文件已成功打开`); -}); -} -console.log(`文件已成功打开`); -}); -} else { -console.log(`文件已成功打开`); -} +exec(`open -a "Adobe Photoshop 2022" "${imagePath}"`, (error, stdout, stderr) => { // 尝试如果将选中图片路径按相对路径处理能否打开图片 + if (error || stderr) { + exec(`open -a "Adobe Photoshop 2022" "${imageAbPath}"`, (error, stdout, stderr) => { //如果不能,尝试将选中图片路径按绝对路径处理 + if (error || stderr) { + exec(`open -a "Adobe Photoshop 2022" "${IMPath}"`, (error, stdout, stderr) => { //如果不能,尝试将选中图片路径按尽可能短的标准链接处理 + if (error || stderr) { + exec(`open -a "Adobe Photoshop 2022" "${wikiPath1}"`, (error, stdout, stderr) => { //如果不能,尝试将选中图片路径按Wiki链接处理 + if (error || stderr) { + exec(`open -a "Adobe Photoshop 2022" "${wikiPath2}"`, (error, stdout, stderr) => { //如果不能,尝试将选中图片路径按Wiki相对链接处理 + if (error || stderr) { + exec(`open -a "Adobe Photoshop 2022" "${wikiPath3}"`, (error, stdout, stderr) => { //如果不能,尝试将选中图片路径按Wiki绝对路径链接处理 + if (stderr) { + console.error(`打开文件时出错: ${stderr}`); + return; + } + console.log(`文件已成功打开`); + }); + } + console.log(`文件已成功打开`); + }); + } + console.log(`文件已成功打开`); + }); + } + console.log(`文件已成功打开`); + }); + } + console.log(`文件已成功打开`); + }); + } else { + console.log(`文件已成功打开`); + } }); + ``` > [!warning] 注意 diff --git "a/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/banners\346\217\222\344\273\266beta\347\211\210\351\200\202\351\205\215Obsidian 1.4\344\273\245\344\270\212\347\211\210\346\234\254.md" "b/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/banners\346\217\222\344\273\266beta\347\211\210\351\200\202\351\205\215Obsidian 1.4\344\273\245\344\270\212\347\211\210\346\234\254.md" new file mode 100644 index 000000000..c9c80a62a --- /dev/null +++ "b/10-Obsidian/Obsidian\347\244\276\345\214\272\346\217\222\344\273\266/banners\346\217\222\344\273\266beta\347\211\210\351\200\202\351\205\215Obsidian 1.4\344\273\245\344\270\212\347\211\210\346\234\254.md" @@ -0,0 +1,31 @@ +--- +uid: 19840124160000 +title: banner插件beta版适配Obsidian 1.4以上版本 +tags: + - banners + - 适配 +description: 最新beta版banners插件升级过程 +author: ProudBenzene +type: basic +draft: false +editable: false +modified: 20240330184318 +--- + +# banner 插件 beta 版适配 Obsidian 1.4 以上版本 + +## 更新介绍 + +虽然距离 Obsidian 推出 1.4 版本,更新 Properties 功能已经过去了很长时间,但是 Banners 插件依然没有发布正式版更新解决 banner 图和 properties 抢位置的问题。 + +但这并不意味着作者没有尝试修复这个问题。事实上,作者在这之后先后推出了许多测试版,并最终停留在 2.0.5-beta 版本。 + +使用 2.0.5-beta 版本后,banner 图和 properties 的冲突问题即可解决。同时,由于 Properties 值支持了双链,因此 banners 2.0 将默认 metadata 格式由 `![[]]` 修改为 `[[]]`。升级后用户还需要手动点击按钮将库内原有笔记的 banners 格式进行转换。 + +## 升级步骤 + +1. 下载 Banners 插件 2.0.5-beta 版,可以通过 [GitHub](https://github.com/noatpad/obsidian-banners/releases) 或 [PKMer](https://pkmer.cn/products/plugin/pluginMarket/?obsidian-banners) 下载安装包。 +2. 安装后打开插件设置,划到最下方,点击更新按钮:![](https://cdn.pkmer.cn/images/202403291721586.png!pkmer) +3. 在弹出的弹窗中点击 update,等待插件更新笔记中链接完成(注意提前备份好笔记以免发生意外)![](https://cdn.pkmer.cn/images/202403291732734.png!pkmer) + +之后 Banners 插件即可正常使用,一切与 1.4 之前一样且不会发生与 properties 的冲突。 \ No newline at end of file