├── .gitattributes ├── .obsidian ├── app.json ├── appearance.json ├── community-plugins.json ├── core-plugins-migration.json ├── core-plugins.json ├── daily-notes.json ├── hotkeys.json ├── plugins │ ├── Enhanced-editing │ │ ├── data.json │ │ ├── main.js │ │ └── manifest.json │ ├── cmdr │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── dataview │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── dbfolder │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── digitalgarden │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── multi-column-markdown │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── obsidian-advanced-uri │ │ ├── main.js │ │ └── manifest.json │ ├── obsidian-auto-link-title │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── obsidian-banners │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── obsidian-copy-block-link │ │ ├── main.js │ │ └── manifest.json │ ├── obsidian-excalidraw-plugin │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── obsidian-hover-editor │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── obsidian-image-toolkit │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── obsidian-local-rest-api │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── obsidian-memos │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── obsidian-minimal-settings │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── obsidian-pandoc │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── obsidian-style-settings │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── obsidian-title-serial-number-plugin │ │ ├── main.js │ │ └── manifest.json │ ├── obsidian42-brat │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── obsidian42-strange-new-worlds │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── omnisearch │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── quickadd │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── remember-cursor-position │ │ ├── cursor-positions.json │ │ ├── main.js │ │ └── manifest.json │ ├── surfing │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── tag-wrangler │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ ├── various-complements │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ └── styles.css │ └── workspaces-plus │ │ ├── app.json.bak │ │ ├── appearance.json.bak │ │ ├── data.json │ │ ├── main.js │ │ ├── manifest.json │ │ ├── styles.css │ │ └── workspaces.json.bak ├── snippets │ └── folder-icons.css ├── switcher.json ├── templates.json ├── themes │ ├── AnuPpuccin │ │ ├── manifest.json │ │ └── theme.css │ ├── Blue Topaz │ │ ├── manifest.json │ │ └── theme.css │ └── Minimal │ │ ├── manifest.json │ │ └── theme.css ├── workspace.json └── workspaces.json ├── .trash ├── C01-日记2 │ ├── 2023-01-29.md │ └── 日记Database.md ├── Untitled database 2.md ├── Untitled database.md └── 未命名.md ├── @Inbox └── ZK Box │ ├── 20220613151351.md │ ├── 20220613151402.md │ └── 20221004221346.md ├── A-专业知识 ├── A01-凝聚态物理 │ ├── Fraunhofer pattern-zcwen.md │ ├── Fraunhofer pattern.md │ ├── Ising superconductivity-zcwen.md │ ├── Ising superconductivity.md │ ├── Josephson Junction-zcwen.md │ ├── Josephson Junction.md │ ├── Josephson diode-zcwen.md │ ├── Josephson diode.md │ ├── 专业知识Database.md │ ├── 固体物理-zcwen.md │ ├── 固体物理.md │ ├── 晶体生长-zcwen.md │ ├── 晶体生长.md │ ├── 输运测试-zcwen.md │ └── 输运测试.md ├── A02-半导体物理 │ └── 半导体物理.md ├── 凝聚态物理.md ├── 英语.md └── 量子力学.md ├── B-科研笔记 ├── B02-实验方法 │ ├── 干法转移.md │ ├── 晶体生长.md │ └── 输运测试.md └── B08-文献阅读 │ └── Reading Notes │ ├── 2009-Raman spectroscopy in graphene.md │ ├── 2018-Correlated insulator behaviour at half-filling in magic-angle graphene superlattices.md │ ├── 2018-Unconventional superconductivity in magic-angle graphene superlattices.md │ ├── 2021-Evidence for unconventional superconductivity in twisted bilayer graphene.md │ └── Reading Notes Database.md ├── C-生活规划 ├── C01-日记 │ ├── 2023-01-15.md │ ├── 2023-01-29.md │ ├── 2023-02-28.md │ ├── 2023-03-03.md │ └── 2023日记Database.md ├── C02-备忘 │ └── 备忘MOC.md ├── C03-书影音 │ ├── 书单.md │ └── 影单.md └── C05-成长 │ ├── 时间管理.md │ └── 知识管理.md ├── D-软件技能 ├── Blender.md ├── D01-Obsidian │ ├── MOC.md │ ├── zotero+Obsidian+db folder.md │ ├── zotero+word+obsidian.md │ ├── 一键随想笔记.md │ ├── 主题设置插件.md │ ├── 悬浮编辑.md │ ├── 更换主题.md │ ├── 模板.md │ └── 附件.md ├── D02-Zotero │ └── zotero.md ├── Matlab.md ├── Origin.md ├── PPT设计.md ├── Word教程.md └── 软件&网站MOC.md ├── LICENSE ├── README.md ├── Z-附件 ├── Banner │ ├── image1.jpg │ └── image2.jpg ├── Excalidraw │ ├── Excalidraw images │ │ ├── Drawing 2022-06-13 14.02.33.excalidraw.md │ │ ├── Drawing 2022-10-04 19.45.38.excalidraw.md │ │ └── Drawing 2022-10-04 19.47.23.excalidraw.md │ ├── Excalidraw scripts │ │ ├── Add Connector Point.md │ │ ├── Add Connector Point.svg │ │ ├── Add Link to Existing File and Open.md │ │ ├── Add Link to Existing File and Open.svg │ │ ├── Add Link to New Page and Open.md │ │ ├── Add Link to New Page and Open.svg │ │ ├── Add Next Step in Process.md │ │ ├── Add Next Step in Process.svg │ │ ├── Box Each Selected Elements.md │ │ ├── Box Each Selected Groups.md │ │ ├── Box Each Selected Groups.svg │ │ ├── Box Selected Elements 1.md │ │ ├── Box Selected Elements.md │ │ ├── Box Selected Elements.svg │ │ ├── Bullet Point.md │ │ ├── Change shape of selected elements.md │ │ ├── Change shape of selected elements.svg │ │ ├── Connect elements 1.md │ │ ├── Connect elements.md │ │ ├── Connect elements.svg │ │ ├── Convert freedraw to line.md │ │ ├── Convert freedraw to line.svg │ │ ├── Convert selected text elements to sticky notes.md │ │ ├── Convert selected text elements to sticky notes.svg │ │ ├── Convert text to link with folder and alias.md │ │ ├── Convert text to link with folder and alias.svg │ │ ├── Copy Selected Element Styles to Global.md │ │ ├── Copy Selected Element Styles to Global.svg │ │ ├── Create new markdown file and embed into active drawing.md │ │ ├── Create new markdown file and embed into active drawing.svg │ │ ├── Darken background color.md │ │ ├── Darken background color.svg │ │ ├── Dimensions.md │ │ ├── Elbow connectors.md │ │ ├── Elbow connectors.svg │ │ ├── Expand rectangles horizontally keep text centered.md │ │ ├── Expand rectangles horizontally keep text centered.svg │ │ ├── Expand rectangles horizontally.md │ │ ├── Expand rectangles horizontally.svg │ │ ├── Expand rectangles vertically keep text centered.md │ │ ├── Expand rectangles vertically keep text centered.svg │ │ ├── Expand rectangles vertically.md │ │ ├── Expand rectangles vertically.svg │ │ ├── Fixed horizontal distance between centers.md │ │ ├── Fixed horizontal distance between centers.svg │ │ ├── Fixed inner distance.md │ │ ├── Fixed inner distance.svg │ │ ├── Fixed spacing.md │ │ ├── Fixed spacing.svg │ │ ├── Fixed vertical distance between centers.md │ │ ├── Fixed vertical distance between centers.svg │ │ ├── Fixed vertical distance.md │ │ ├── Fixed vertical distance.svg │ │ ├── Font Family.md │ │ ├── Grid.md │ │ ├── Lighten background color.md │ │ ├── Lighten background color.svg │ │ ├── Modify background color opacity 1.md │ │ ├── Modify background color opacity.md │ │ ├── Modify background color opacity.svg │ │ ├── Modify stroke width of selected elements.md │ │ ├── Normalize Selected Arrows.md │ │ ├── Normalize Selected Arrows.svg │ │ ├── OCR - Optical Character Recognition.md │ │ ├── OCR - Optical Character Recognition.svg │ │ ├── Organic Line.md │ │ ├── Organic Line.svg │ │ ├── Repeat Elements.md │ │ ├── Repeat Elements.svg │ │ ├── Reverse arrows 1.md │ │ ├── Reverse arrows.md │ │ ├── Reverse arrows.svg │ │ ├── Scribble Helper.md │ │ ├── Scribble Helper.svg │ │ ├── Select Elements of Type.md │ │ ├── Select Elements of Type.svg │ │ ├── Set Dimensions.md │ │ ├── Set Dimensions.svg │ │ ├── Set Font Family.md │ │ ├── Set Font Family.svg │ │ ├── Set Grid.md │ │ ├── Set Grid.svg │ │ ├── Set Link Alias.md │ │ ├── Set Link Alias.svg │ │ ├── Set Stroke Width of Selected Elements.md │ │ ├── Set Stroke Width of Selected Elements.svg │ │ ├── Set Text Alignment.md │ │ ├── Set Text Alignment.svg │ │ ├── Set background color of unclosed line object by adding a shadow clone.md │ │ ├── Set background color of unclosed line object by adding a shadow clone.svg │ │ ├── Split text by lines 1.md │ │ ├── Split text by lines.md │ │ ├── Split text by lines.svg │ │ ├── Text Align.md │ │ ├── Transfer TextElements to Excalidraw markdown metadata.md │ │ ├── Transfer TextElements to Excalidraw markdown metadata.svg │ │ ├── Zoom to Fit Selected Elements.md │ │ ├── Zoom to Fit Selected Elements.svg │ │ ├── bookfromdouban.js │ │ ├── changeSticky.js │ │ ├── colorclock.js │ │ ├── fetchhomepage.js │ │ ├── moviefromdouban.js │ │ ├── movies.js │ │ ├── notice.js │ │ ├── refreshhomepage.js │ │ └── related.md │ ├── Excalidraw templates │ │ ├── getrandomImage.js │ │ └── getweather.js │ └── Fonts │ │ └── 演示新手书.OTF ├── Templates │ ├── Mdnotes Default Template.md │ ├── 专业知识模板.md │ ├── 文献阅读随想模板.md │ ├── 日记模板.md │ └── 通用模板.md └── images │ ├── 1.png │ ├── 1651123280969 1.gif │ ├── 1651123280969.gif │ ├── Pasted Image 20221004194739_117.png │ ├── Pasted image 20221217210045.png │ ├── Pasted image 20221217210108.png │ ├── Pasted image 20221217215937.png │ ├── Readme-4.png │ ├── Readme-5.png │ ├── Readme.png │ ├── Snipaste_2022-06-08_12-31-17.jpg │ ├── Snipaste_2022-06-08_12-40-41.jpg │ ├── Snipaste_2022-06-08_12-41-23.jpg │ ├── Snipaste_2022-06-13_15-39-09.jpg - 快捷方式.lnk │ ├── ba1c517894aa0a4fc501a5d25b82daa.jpg │ ├── e43784adc4b59235ebca46dd04cff8e.jpg │ ├── 主题设置插件.png │ └── 更换主题.png └── 🏡 Home.md /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.obsidian/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "showFrontmatter": false, 3 | "strictLineBreaks": true, 4 | "readableLineLength": false, 5 | "spellcheck": true, 6 | "alwaysUpdateLinks": true, 7 | "newLinkFormat": "shortest", 8 | "useMarkdownLinks": false, 9 | "newFileLocation": "current", 10 | "showInlineTitle": false, 11 | "attachmentFolderPath": "Z-附件/images", 12 | "promptDelete": false, 13 | "trashOption": "local" 14 | } -------------------------------------------------------------------------------- /.obsidian/appearance.json: -------------------------------------------------------------------------------- 1 | { 2 | "accentColor": "", 3 | "cssTheme": "Blue Topaz", 4 | "theme": "moonstone", 5 | "nativeMenus": true, 6 | "showViewHeader": true, 7 | "interfaceFontFamily": "霞鹜文楷 屏幕阅读版", 8 | "textFontFamily": "霞鹜文楷 屏幕阅读版", 9 | "enabledCssSnippets": [ 10 | "folder-icons" 11 | ] 12 | } -------------------------------------------------------------------------------- /.obsidian/community-plugins.json: -------------------------------------------------------------------------------- 1 | [ 2 | "obsidian42-brat", 3 | "obsidian-style-settings", 4 | "surfing", 5 | "obsidian-advanced-uri", 6 | "obsidian-hover-editor", 7 | "obsidian-auto-link-title", 8 | "obsidian-banners", 9 | "cmdr", 10 | "dataview", 11 | "dbfolder", 12 | "obsidian-excalidraw-plugin", 13 | "obsidian-copy-block-link", 14 | "obsidian-image-toolkit", 15 | "obsidian-local-rest-api", 16 | "obsidian-minimal-settings", 17 | "multi-column-markdown", 18 | "obsidian-memos", 19 | "obsidian-pandoc", 20 | "obsidian-title-serial-number-plugin", 21 | "various-complements", 22 | "quickadd", 23 | "remember-cursor-position", 24 | "tag-wrangler", 25 | "Enhanced-editing", 26 | "obsidian42-strange-new-worlds", 27 | "omnisearch", 28 | "digitalgarden", 29 | "workspaces-plus" 30 | ] -------------------------------------------------------------------------------- /.obsidian/core-plugins-migration.json: -------------------------------------------------------------------------------- 1 | { 2 | "file-explorer": true, 3 | "global-search": true, 4 | "switcher": true, 5 | "graph": true, 6 | "backlink": true, 7 | "outgoing-link": true, 8 | "tag-pane": true, 9 | "page-preview": true, 10 | "daily-notes": true, 11 | "templates": true, 12 | "note-composer": true, 13 | "command-palette": true, 14 | "slash-command": true, 15 | "editor-status": true, 16 | "starred": true, 17 | "markdown-importer": false, 18 | "zk-prefixer": true, 19 | "random-note": false, 20 | "outline": true, 21 | "word-count": true, 22 | "slides": false, 23 | "audio-recorder": false, 24 | "workspaces": true, 25 | "file-recovery": true, 26 | "publish": false, 27 | "sync": false, 28 | "canvas": true, 29 | "bookmarks": true 30 | } -------------------------------------------------------------------------------- /.obsidian/core-plugins.json: -------------------------------------------------------------------------------- 1 | [ 2 | "file-explorer", 3 | "global-search", 4 | "switcher", 5 | "graph", 6 | "backlink", 7 | "canvas", 8 | "outgoing-link", 9 | "tag-pane", 10 | "page-preview", 11 | "daily-notes", 12 | "templates", 13 | "note-composer", 14 | "command-palette", 15 | "slash-command", 16 | "editor-status", 17 | "bookmarks", 18 | "zk-prefixer", 19 | "outline", 20 | "word-count", 21 | "workspaces", 22 | "file-recovery" 23 | ] -------------------------------------------------------------------------------- /.obsidian/daily-notes.json: -------------------------------------------------------------------------------- 1 | { 2 | "format": "YYYY-MM-DD", 3 | "folder": "C-生活规划/C01-日记", 4 | "template": "Z-附件/Templates/日记模板" 5 | } -------------------------------------------------------------------------------- /.obsidian/hotkeys.json: -------------------------------------------------------------------------------- 1 | { 2 | "obsidian-auto-link-title:enhance-url-with-title": [], 3 | "obsidian-excalidraw-plugin:insert-link": [], 4 | "obsidian-excalidraw-plugin:save": [], 5 | "workspace:goto-tab-8": [], 6 | "workspace:goto-tab-7": [], 7 | "workspace:goto-tab-6": [], 8 | "workspace:goto-tab-5": [], 9 | "workspace:goto-tab-4": [], 10 | "workspace:goto-tab-3": [], 11 | "workspace:goto-tab-2": [], 12 | "workspace:goto-tab-1": [], 13 | "workspace:goto-last-tab": [], 14 | "editor:insert-link": [], 15 | "Enhanced-editing:add-Line0": [], 16 | "omnisearch:show-modal": [ 17 | { 18 | "modifiers": [ 19 | "Mod" 20 | ], 21 | "key": "K" 22 | } 23 | ] 24 | } -------------------------------------------------------------------------------- /.obsidian/plugins/Enhanced-editing/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "isTab": false, 3 | "isBT": true, 4 | "isShowNum": false, 5 | "maxScroll": 50, 6 | "version": "0.5.5", 7 | "hColor": "", 8 | "bColor": "", 9 | "hColor1": "#F36208", 10 | "hColor2": "#81B300", 11 | "hColor3": "#2485E3", 12 | "hColor4": "#C32E94", 13 | "hColor5": "#13C6C3", 14 | "bColor1": "#FFB78B", 15 | "bColor2": "#CDF469", 16 | "bColor3": "#A0CCF6", 17 | "bColor4": "#F0A7D8", 18 | "bColor5": "#ADEFEF" 19 | } -------------------------------------------------------------------------------- /.obsidian/plugins/Enhanced-editing/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "Enhanced-editing", 3 | "name": "增强编辑", 4 | "version": "0.5.5", 5 | "minAppVersion": "0.14.0", 6 | "description": "增强大量文本编辑功能,如(允许批量)转换内部链接、转换Markdown或Html语法(支持格式刷)、智能化补充括号、智能化粘贴表格或代码、(批量)增减空行或空格、修复错误语法或标点等。", 7 | "author": "obsidian-canzi", 8 | "authorUrl": "https://github.com/obsidian-canzi/Enhanced-editing", 9 | "isDesktopOnly": false 10 | } 11 | -------------------------------------------------------------------------------- /.obsidian/plugins/cmdr/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirmDeletion": true, 3 | "showAddCommand": true, 4 | "debug": false, 5 | "editorMenu": [ 6 | { 7 | "id": "workspace:split-vertical", 8 | "icon": "lucide-separator-vertical", 9 | "name": "Split right", 10 | "mode": "any" 11 | }, 12 | { 13 | "id": "workspace:edit-file-title", 14 | "icon": "lucide-edit-3", 15 | "name": "编辑文件名", 16 | "mode": "any" 17 | }, 18 | { 19 | "id": "obsidian-auto-link-title:enhance-url-with-title", 20 | "icon": "link-2", 21 | "name": "Auto Link Title: Enhance existing URL with link and title", 22 | "mode": "any" 23 | } 24 | ], 25 | "fileMenu": [], 26 | "leftRibbon": [ 27 | { 28 | "id": "obsidian-style-settings:show-style-settings-leaf", 29 | "icon": "palette", 30 | "name": "Style Settings: Show style settings view", 31 | "mode": "any" 32 | } 33 | ], 34 | "rightRibbon": [], 35 | "titleBar": [], 36 | "statusBar": [ 37 | { 38 | "id": "Enhanced-editing:add-ub", 39 | "icon": "subscript", 40 | "name": "增强编辑: 下标语法", 41 | "mode": "any" 42 | }, 43 | { 44 | "id": "editor:insert-wikilink", 45 | "icon": "bracket-glyph", 46 | "name": "插入内部链接", 47 | "mode": "any" 48 | }, 49 | { 50 | "id": "editor:toggle-bullet-list", 51 | "icon": "lucide-list", 52 | "name": "无序列表", 53 | "mode": "any" 54 | }, 55 | { 56 | "id": "editor:toggle-numbered-list", 57 | "icon": "lucide-list-ordered", 58 | "name": "有序列表", 59 | "mode": "any" 60 | }, 61 | { 62 | "id": "editor:toggle-code", 63 | "icon": "lucide-code-2", 64 | "name": "代码块", 65 | "mode": "any" 66 | }, 67 | { 68 | "id": "editor:toggle-code", 69 | "icon": "code", 70 | "name": "行内代码", 71 | "mode": "any" 72 | }, 73 | { 74 | "id": "quickadd:choice:78d14936-c7f5-47d6-ad17-ae23a45fa313", 75 | "icon": "book", 76 | "name": "QuickAdd: 专业知识", 77 | "mode": "any" 78 | } 79 | ], 80 | "pageHeader": [ 81 | { 82 | "id": "window:toggle-always-on-top", 83 | "icon": "lucide-pin", 84 | "name": "将当前窗口置顶", 85 | "mode": "any" 86 | }, 87 | { 88 | "id": "workspace:split-vertical", 89 | "icon": "lucide-separator-vertical", 90 | "name": "Split right", 91 | "mode": "any" 92 | }, 93 | { 94 | "id": "app:delete-file", 95 | "icon": "lucide-trash-2", 96 | "name": "删除当前文件", 97 | "mode": "any" 98 | }, 99 | { 100 | "id": "workspace:move-to-new-window", 101 | "icon": "lucide-maximize", 102 | "name": "将当前面板移动至新窗口", 103 | "mode": "any" 104 | } 105 | ], 106 | "macros": [], 107 | "explorer": [], 108 | "hide": { 109 | "statusbar": [], 110 | "leftRibbon": [] 111 | }, 112 | "spacing": 8, 113 | "advancedToolbar": { 114 | "rowHeight": 48, 115 | "rowCount": 1, 116 | "spacing": 0, 117 | "buttonWidth": 48, 118 | "columnLayout": false, 119 | "mappedIcons": [], 120 | "tooltips": false, 121 | "heightOffset": 0 122 | } 123 | } -------------------------------------------------------------------------------- /.obsidian/plugins/cmdr/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "cmdr", 3 | "name": "Commander", 4 | "version": "0.4.9", 5 | "minAppVersion": "1.1.0", 6 | "description": "Customize your workspace by adding commands everywhere, create Macros and supercharge your mobile toolbar.", 7 | "author": "jsmorabito & phibr0", 8 | "authorUrl": "https://github.com/phibr0", 9 | "fundingUrl": "https://ko-fi.com/phibr0", 10 | "isDesktopOnly": false 11 | } 12 | -------------------------------------------------------------------------------- /.obsidian/plugins/dataview/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "dataview", 3 | "name": "Dataview", 4 | "version": "0.5.55", 5 | "minAppVersion": "0.13.11", 6 | "description": "Complex data views for the data-obsessed.", 7 | "author": "Michael Brenan ", 8 | "authorUrl": "https://github.com/blacksmithgu", 9 | "isDesktopOnly": false 10 | } 11 | -------------------------------------------------------------------------------- /.obsidian/plugins/dbfolder/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "global_settings": { 3 | "enable_debug_mode": false, 4 | "enable_show_state": false, 5 | "enable_row_shadow": false, 6 | "enable_ribbon_icon": true, 7 | "logger_level_info": "error", 8 | "csv_file_header_key": "File", 9 | "media_settings": { 10 | "link_alias_enabled": true, 11 | "enable_media_view": true, 12 | "width": 100, 13 | "height": 100 14 | }, 15 | "show_search_bar_by_default": true, 16 | "enable_auto_update": false 17 | }, 18 | "local_settings": { 19 | "remove_field_when_delete_column": true, 20 | "cell_size": "normal", 21 | "sticky_first_column": true, 22 | "group_folder_column": "", 23 | "remove_empty_folders": false, 24 | "automatically_group_files": false, 25 | "hoist_files_with_empty_attributes": true, 26 | "show_metadata_created": true, 27 | "show_metadata_modified": true, 28 | "show_metadata_tasks": true, 29 | "show_metadata_inlinks": true, 30 | "show_metadata_outlinks": true, 31 | "source_data": "current_folder", 32 | "source_form_result": "root", 33 | "source_destination_path": "/", 34 | "frontmatter_quote_wrap": true, 35 | "row_templates_folder": "/", 36 | "current_row_template": "", 37 | "pagination_size": 200, 38 | "enable_js_formulas": true, 39 | "formula_folder_path": "/", 40 | "inline_default": true, 41 | "inline_new_position": "top", 42 | "date_format": "yyyy-MM-dd", 43 | "datetime_format": "yyyy-MM-dd HH:mm:ss", 44 | "enable_footer": false 45 | } 46 | } -------------------------------------------------------------------------------- /.obsidian/plugins/dbfolder/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "dbfolder", 3 | "name": "DB Folder", 4 | "version": "3.3.0", 5 | "minAppVersion": "1.0.3", 6 | "description": "Folder with the capability to store and retrieve data from a folder like database", 7 | "author": "RafaelGB", 8 | "authorUrl": "https://github.com/RafaelGB/obsidian-bd-folder", 9 | "isDesktopOnly": false, 10 | "fundingUrl": "https://www.buymeacoffee.com/5tsytn22v9Z" 11 | } -------------------------------------------------------------------------------- /.obsidian/plugins/digitalgarden/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "githubRepo": "", 3 | "githubToken": "", 4 | "githubUserName": "", 5 | "gardenBaseUrl": "", 6 | "prHistory": [], 7 | "theme": "dark", 8 | "baseTheme": "{\"name\": \"default\", \"modes\": [\"dark\"]}", 9 | "faviconPath": "", 10 | "showRibbonIcon": true, 11 | "noteSettingsIsInitialized": true, 12 | "siteName": "Digital Garden", 13 | "slugifyEnabled": true, 14 | "defaultNoteSettings": { 15 | "dgHomeLink": true, 16 | "dgPassFrontmatter": false, 17 | "dgShowBacklinks": false, 18 | "dgShowLocalGraph": false, 19 | "dgShowInlineTitle": false, 20 | "dgShowFileTree": false, 21 | "dgEnableSearch": false, 22 | "dgShowToc": false, 23 | "dgLinkPreview": false 24 | } 25 | } -------------------------------------------------------------------------------- /.obsidian/plugins/digitalgarden/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "digitalgarden", 3 | "name": "Digital Garden", 4 | "version": "2.35.4", 5 | "minAppVersion": "0.12.0", 6 | "description": "Publish your notes to the web for others to enjoy. For free.", 7 | "author": "Ole Eskild Steensen", 8 | "authorUrl": "https://dg-docs.ole.dev/", 9 | "isDesktopOnly": false, 10 | "fundingUrl": "https://ko-fi.com/oleeskild" 11 | } 12 | -------------------------------------------------------------------------------- /.obsidian/plugins/digitalgarden/styles.css: -------------------------------------------------------------------------------- 1 | .digital-garden-publish-status-view ul { 2 | list-style-type: none; 3 | position: relative; 4 | margin-left: 5px; 5 | margin-top: 0; 6 | max-height: 250px; 7 | overflow: auto; 8 | } 9 | 10 | .digital-garden-publish-status-view h2 { 11 | margin-top: 0; 12 | margin-bottom: 5px; 13 | } 14 | 15 | .digital-garden-publish-status-view .collapsable { 16 | cursor: pointer; 17 | margin-left: 10px; 18 | } -------------------------------------------------------------------------------- /.obsidian/plugins/multi-column-markdown/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "multi-column-markdown", 3 | "name": "Multi-Column Markdown", 4 | "version": "0.7.7", 5 | "minAppVersion": "1.0.3", 6 | "description": "This plugin adds functionality to create markdown documents with multiple columns of content viewable within Obsidian's preview mode", 7 | "author": "Cameron Robinson", 8 | "fundingUrl": "https://www.buymeacoffee.com/ckrobinson", 9 | "authorUrl": "https://portfolio.ckrobinson.net", 10 | "isDesktopOnly": false 11 | } 12 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-advanced-uri/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "obsidian-advanced-uri", 3 | "name": "Advanced URI", 4 | "description": "Advanced modes for Obsidian URI", 5 | "isDesktopOnly": false, 6 | "js": "main.js", 7 | "fundingUrl": "https://ko-fi.com/vinzent", 8 | "version": "1.35.0", 9 | "author": "Vinzent", 10 | "authorUrl": "https://github.com/Vinzent03" 11 | } 12 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-auto-link-title/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "obsidian-auto-link-title", 3 | "name": "Auto Link Title", 4 | "version": "1.4.1", 5 | "minAppVersion": "0.12.17", 6 | "description": "This plugin automatically fetches the titles of links from the web", 7 | "author": "Matt Furden", 8 | "authorUrl": "https://github.com/zolrath", 9 | "isDesktopOnly": false 10 | } 11 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-auto-link-title/styles.css: -------------------------------------------------------------------------------- 1 | /* no styles */ -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-banners/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "height": 280, 3 | "style": "gradient", 4 | "showInInternalEmbed": true, 5 | "internalEmbedHeight": null, 6 | "showInPreviewEmbed": true, 7 | "previewEmbedHeight": null, 8 | "frontmatterField": null, 9 | "bannerDragModifier": "none", 10 | "iconHorizontalAlignment": "left", 11 | "iconHorizontalTransform": null, 12 | "iconVerticalAlignment": "center", 13 | "iconVerticalTransform": null, 14 | "useTwemoji": false, 15 | "showPreviewInLocalModal": true, 16 | "localSuggestionsLimit": null, 17 | "bannersFolder": null, 18 | "allowMobileDrag": false 19 | } -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-banners/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "obsidian-banners", 3 | "name": "Banners", 4 | "description": "Add banner images to your notes!", 5 | "version": "1.3.3", 6 | "minAppVersion": "0.13.21", 7 | "author": "Danny Hernandez", 8 | "authorUrl": "https://github.com/noatpad", 9 | "isDesktopOnly": false 10 | } 11 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-copy-block-link/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "obsidian-copy-block-link", 3 | "name": "Copy Block Link", 4 | "version": "1.0.4", 5 | "minAppVersion": "0.12.12", 6 | "description": "Get links to blocks and headings from Obsidian's right click menu", 7 | "author": "mgmeyers", 8 | "authorUrl": "https://github.com/mgmeyers/obsidian-copy-block-link", 9 | "isDesktopOnly": false 10 | } 11 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-excalidraw-plugin/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "obsidian-excalidraw-plugin", 3 | "name": "Excalidraw", 4 | "version": "1.8.26", 5 | "minAppVersion": "1.1.6", 6 | "description": "An Obsidian plugin to edit and view Excalidraw drawings", 7 | "author": "Zsolt Viczian", 8 | "authorUrl": "https://zsolt.blog", 9 | "fundingUrl": "https://ko-fi.com/zsolt", 10 | "isDesktopOnly": false 11 | } 12 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-hover-editor/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "defaultMode": "source", 3 | "autoPin": "always", 4 | "triggerDelay": 200, 5 | "closeDelay": 400, 6 | "autoFocus": true, 7 | "rollDown": true, 8 | "snapToEdges": false, 9 | "initialHeight": "340px", 10 | "initialWidth": "600px", 11 | "showViewHeader": true, 12 | "imageZoom": false, 13 | "hoverEmbeds": false 14 | } -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-hover-editor/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "obsidian-hover-editor", 3 | "name": "Hover Editor", 4 | "version": "0.11.9", 5 | "minAppVersion": "0.15.9", 6 | "description": "Transform the Page Preview hover popover into a fully working editor instance", 7 | "author": "NothingIsLost", 8 | "authorUrl": "https://github.com/nothingislost", 9 | "isDesktopOnly": false 10 | } 11 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-image-toolkit/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "viewImageEditor": true, 3 | "viewImageInCPB": true, 4 | "viewImageWithALink": true, 5 | "viewImageOther": true, 6 | "pinMode": false, 7 | "pinMaximum": 3, 8 | "pinCoverMode": true, 9 | "imageMoveSpeed": 10, 10 | "imgTipToggle": true, 11 | "imgFullScreenMode": "FIT", 12 | "imgViewBackgroundColor": "#00000000", 13 | "imageBorderToggle": false, 14 | "imageBorderWidth": "medium", 15 | "imageBorderStyle": "solid", 16 | "imageBorderColor": "red", 17 | "galleryNavbarToggle": true, 18 | "galleryNavbarDefaultColor": "#0000001A", 19 | "galleryNavbarHoverColor": "#0000004D", 20 | "galleryImgBorderActive": false, 21 | "galleryImgBorderActiveColor": "#FF0000", 22 | "moveTheImageHotkey": "NONE", 23 | "switchTheImageHotkey": "CTRL", 24 | "doubleClickToolbar": "toolbar_copy", 25 | "viewTriggerHotkey": "CTRL" 26 | } -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-image-toolkit/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "obsidian-image-toolkit", 3 | "name": "Image Toolkit", 4 | "version": "1.3.1", 5 | "minAppVersion": "0.2.0", 6 | "description": "This plugin provides some image viewing toolkit.", 7 | "author": "sissilab", 8 | "authorUrl": "https://github.com/sissilab", 9 | "isDesktopOnly": true 10 | } 11 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-local-rest-api/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "obsidian-local-rest-api", 3 | "name": "Local REST API", 4 | "version": "1.5.2", 5 | "minAppVersion": "0.12.0", 6 | "description": "Get, change or otherwise interact with your notes in Obsidian via a REST API.", 7 | "author": "Adam Coddington", 8 | "authorUrl": "https://coddingtonbear.net/", 9 | "isDesktopOnly": true 10 | } -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-local-rest-api/styles.css: -------------------------------------------------------------------------------- 1 | /* Sets all the text color to red! */ 2 | 3 | div.obsidian-local-rest-api-settings div.api-key-display { 4 | margin-bottom: 20px; 5 | } 6 | div.obsidian-local-rest-api-settings div.api-key-display pre { 7 | font-size: 0.8em; 8 | padding: 10px 20px; 9 | background-color: var(--background-modifier-cover); 10 | font-family: monospace; 11 | user-select: all; 12 | } 13 | 14 | div.obsidian-local-rest-api-settings textarea { 15 | width: 100%; 16 | } 17 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-memos/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "StartDate": "Sunday", 3 | "InsertAfter": "# 💡每日随想", 4 | "UserName": "BCS", 5 | "ProcessEntriesBelow": "# 💡每日随想", 6 | "Language": "en", 7 | "SaveMemoButtonLabel": "NOTEIT", 8 | "SaveMemoButtonIcon": "✍️", 9 | "ShareFooterStart": "{MemosNum} Memos {UsedDay} Day", 10 | "ShareFooterEnd": "✍️ by {UserName}", 11 | "DefaultPrefix": "List", 12 | "UseDailyOrPeriodic": "Daily", 13 | "InsertDateFormat": "Dataview", 14 | "DefaultEditorLocation": "Top", 15 | "UseButtonToShowEditor": false, 16 | "FocusOnEditor": true, 17 | "OpenDailyMemosWithMemos": true, 18 | "HideDoneTasks": false, 19 | "ShowTaskLabel": true, 20 | "OpenMemosAutomatically": false, 21 | "ShowTime": true, 22 | "ShowDate": true, 23 | "AddBlankLineWhenDate": false, 24 | "AutoSaveWhenOnMobile": false, 25 | "DeleteFileName": "delete", 26 | "QueryFileName": "query", 27 | "UseVaultTags": true, 28 | "DefaultLightBackgroundImage": "", 29 | "DefaultDarkBackgroundImage": "", 30 | "DefaultMemoComposition": "{TIME} {CONTENT}", 31 | "CommentOnMemos": true, 32 | "CommentsInOriginalNotes": true, 33 | "FetchMemosMark": "#memo", 34 | "FetchMemosFromNote": false, 35 | "ShowCommentOnMemos": true, 36 | "ShowLeftSideBar": false 37 | } -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-memos/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "obsidian-memos", 3 | "name": "Obsidian Memos", 4 | "description": "A plugin for capturing ideas in Obsidian", 5 | "version": "1.9.7", 6 | "author": "Boninall", 7 | "authorUrl": "https://github.com/Quorafind/", 8 | "isDesktopOnly": false, 9 | "minAppVersion": "0.14.0" 10 | } 11 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-minimal-settings/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "theme": "moonstone", 3 | "lightStyle": "minimal-light-white", 4 | "darkStyle": "minimal-dark", 5 | "lightScheme": "minimal-nord-light", 6 | "darkScheme": "minimal-solarized-dark", 7 | "editorFont": "", 8 | "lineHeight": 1.5, 9 | "lineWidth": 40, 10 | "lineWidthWide": 50, 11 | "maxWidth": 88, 12 | "textNormal": 16, 13 | "textSmall": 13, 14 | "imgGrid": false, 15 | "imgWidth": "img-default-width", 16 | "tableWidth": "table-wide", 17 | "iframeWidth": "iframe-default-width", 18 | "mapWidth": "map-default-width", 19 | "chartWidth": "chart-default-width", 20 | "colorfulHeadings": true, 21 | "colorfulFrame": true, 22 | "colorfulActiveStates": true, 23 | "trimNames": true, 24 | "labeledNav": false, 25 | "fullWidthMedia": false, 26 | "bordersToggle": true, 27 | "minimalStatus": true, 28 | "focusMode": false, 29 | "underlineInternal": false, 30 | "underlineExternal": true, 31 | "useSystemTheme": false, 32 | "folding": true, 33 | "lineNumbers": false, 34 | "readableLineLength": false, 35 | "devBlockWidth": false 36 | } -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-minimal-settings/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "obsidian-minimal-settings", 3 | "name": "Minimal Theme Settings", 4 | "version": "6.3.1", 5 | "minAppVersion": "0.16.0", 6 | "description": "Change the colors, fonts and features of Minimal Theme.", 7 | "author": "@kepano", 8 | "authorUrl": "https://www.twitter.com/kepano", 9 | "fundingUrl": "https://www.buymeacoffee.com/kepano", 10 | "isDesktopOnly": false 11 | } -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-minimal-settings/styles.css: -------------------------------------------------------------------------------- 1 | /* Empty */ -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-pandoc/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "showCLICommands": false, 3 | "addExtensionsToInternalLinks": "html", 4 | "injectAppCSS": "light", 5 | "injectThemeCSS": false, 6 | "customCSSFile": null, 7 | "displayYAMLFrontmatter": false, 8 | "linkStrippingBehaviour": "text", 9 | "highDPIDiagrams": true, 10 | "pandoc": "C:\\Program Files\\Pandoc\\pandoc.exe", 11 | "pdflatex": null, 12 | "outputFolder": "D:\\", 13 | "extraArguments": "", 14 | "exportFrom": "html" 15 | } -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-pandoc/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "obsidian-pandoc", 3 | "name": "Pandoc Plugin", 4 | "version": "0.4.1", 5 | "minAppVersion": "0.12.5", 6 | "description": "This is a Pandoc export plugin for Obsidian. It provides commands to export to formats like DOCX, ePub and PDF.", 7 | "author": "Oliver Balfour", 8 | "authorUrl": "https://github.com/OliverBalfour/obsidian-pandoc", 9 | "isDesktopOnly": true 10 | } -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-pandoc/styles.css: -------------------------------------------------------------------------------- 1 | 2 | .pandoc-plugin-error { 3 | color: red; 4 | } 5 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-style-settings/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "obsidian-style-settings", 3 | "name": "Style Settings", 4 | "version": "1.0.3", 5 | "minAppVersion": "0.11.5", 6 | "description": "Offers controls for adjusting theme, plugin, and snippet CSS variables.", 7 | "author": "mgmeyers", 8 | "authorUrl": "https://github.com/mgmeyers/obsidian-style-settings", 9 | "isDesktopOnly": false 10 | } 11 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian-title-serial-number-plugin/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "obsidian-title-serial-number-plugin", 3 | "name": "Title Serial Number Plugin", 4 | "version": "0.0.2", 5 | "minAppVersion": "0.12.0", 6 | "description": "This plugin adds serial numbers to your markdown title.", 7 | "author": "Domenic", 8 | "authorUrl": "", 9 | "isDesktopOnly": false 10 | } 11 | -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian42-brat/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "pluginList": [ 3 | "Quorafind/Obsidian-Surfing" 4 | ], 5 | "pluginSubListFrozenVersion": [], 6 | "themesList": [], 7 | "updateAtStartup": false, 8 | "updateThemesAtStartup": false, 9 | "ribbonIconEnabled": true, 10 | "loggingEnabled": false, 11 | "loggingPath": "BRAT-log", 12 | "loggingVerboseEnabled": false, 13 | "debuggingMode": true, 14 | "notificationsEnabled": true 15 | } -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian42-brat/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "obsidian42-brat", 3 | "name": "Obsidian42 - BRAT", 4 | "version": "0.7.0", 5 | "minAppVersion": "1.1.16", 6 | "description": "Easily install a beta version of a plugin for testing.", 7 | "author": "TfTHacker", 8 | "authorUrl": "https://github.com/TfTHacker/obsidian42-brat", 9 | "isDesktopOnly": false, 10 | "fundingUrl": { 11 | "Buy Me a Coffee": "https://bit.ly/o42-kofi", 12 | "Medium membership": "https://bit.ly/o42-medium" 13 | } 14 | } -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian42-brat/styles.css: -------------------------------------------------------------------------------- 1 | .brat-modal .modal-button-container { 2 | margin-top: 5px !important; 3 | } -------------------------------------------------------------------------------- /.obsidian/plugins/obsidian42-strange-new-worlds/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "obsidian42-strange-new-worlds", 3 | "name": "Obsidian42 - Strange New Worlds", 4 | "version": "1.1.2", 5 | "minAppVersion": "1.0.0", 6 | "description": "Revealing networked thought and the strange new worlds created by your vault", 7 | "author": "TfTHacker", 8 | "authorUrl": "https://twitter.com/TfTHacker", 9 | "isDesktopOnly": false 10 | } 11 | -------------------------------------------------------------------------------- /.obsidian/plugins/omnisearch/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "useCache": true, 3 | "hideExcluded": false, 4 | "ignoreDiacritics": true, 5 | "indexedFileTypes": [], 6 | "PDFIndexing": false, 7 | "imagesIndexing": false, 8 | "showShortName": false, 9 | "ribbonIcon": true, 10 | "showExcerpt": true, 11 | "renderLineReturnInExcerpts": true, 12 | "showCreateButton": false, 13 | "hightlight": true, 14 | "showPreviousQueryResults": true, 15 | "simpleSearch": false, 16 | "weightBasename": 2, 17 | "weightH1": 1.5, 18 | "weightH2": 1.3, 19 | "weightH3": 1.1, 20 | "welcomeMessage": "1.10.1" 21 | } -------------------------------------------------------------------------------- /.obsidian/plugins/omnisearch/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "omnisearch", 3 | "name": "Omnisearch", 4 | "version": "1.11.0", 5 | "minAppVersion": "1.0.0", 6 | "description": "A search engine that just works", 7 | "author": "Simon Cambier", 8 | "authorUrl": "https://github.com/scambier/obsidian-omnisearch", 9 | "fundingUrl": { 10 | "Github": "https://github.com/sponsors/scambier", 11 | "Ko-fi": "https://ko-fi.com/scambier" 12 | }, 13 | "isDesktopOnly": false 14 | } 15 | -------------------------------------------------------------------------------- /.obsidian/plugins/omnisearch/styles.css: -------------------------------------------------------------------------------- 1 | .omnisearch-modal { 2 | } 3 | 4 | .omnisearch-result { 5 | white-space: normal; 6 | display: flex; 7 | flex-direction: column; 8 | } 9 | 10 | .omnisearch-result__title { 11 | } 12 | 13 | .omnisearch-result__counter { 14 | font-size: 0.7rem; 15 | } 16 | 17 | .omnisearch-result__body { 18 | white-space: normal; 19 | font-size: small; 20 | word-wrap: normal; 21 | 22 | overflow: hidden; 23 | display: -webkit-box; 24 | -webkit-line-clamp: 3; 25 | -webkit-box-orient: vertical; 26 | 27 | color: var(--text-muted); 28 | } 29 | 30 | .omnisearch-highlight { 31 | } 32 | 33 | .omnisearch-default-highlight { 34 | color: var(--text-normal); 35 | background-color: var(--text-highlight-bg); 36 | } 37 | 38 | .omnisearch-input-container { 39 | display: flex; 40 | flex-direction: row; 41 | gap: 5px; 42 | } 43 | 44 | @media only screen and (max-width: 600px) { 45 | .omnisearch-input-container { 46 | flex-direction: column; 47 | } 48 | } 49 | 50 | .omnisearch-input-field { 51 | position: relative; 52 | flex-grow: 1; 53 | } 54 | -------------------------------------------------------------------------------- /.obsidian/plugins/quickadd/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "choices": [ 3 | { 4 | "id": "5048347a-6189-465b-bd05-0cd8c8b38aa8", 5 | "name": "文献阅读随想", 6 | "type": "Template", 7 | "command": true, 8 | "templatePath": "Z-附件/@Templates/文献阅读随想模板.md", 9 | "fileNameFormat": { 10 | "enabled": false, 11 | "format": "" 12 | }, 13 | "folder": { 14 | "enabled": true, 15 | "folders": [ 16 | "B-科研笔记/B08-文献阅读/文献阅读随想" 17 | ], 18 | "chooseWhenCreatingNote": false, 19 | "createInSameFolderAsActiveFile": false 20 | }, 21 | "appendLink": true, 22 | "incrementFileName": false, 23 | "openFileInNewTab": { 24 | "enabled": false, 25 | "direction": "vertical", 26 | "focus": true 27 | }, 28 | "openFile": false, 29 | "openFileInMode": "default" 30 | }, 31 | { 32 | "id": "78d14936-c7f5-47d6-ad17-ae23a45fa313", 33 | "name": "专业知识", 34 | "type": "Template", 35 | "command": true, 36 | "templatePath": "Z-附件/@Templates/专业知识模板.md", 37 | "fileNameFormat": { 38 | "enabled": false, 39 | "format": "" 40 | }, 41 | "folder": { 42 | "enabled": true, 43 | "folders": [ 44 | "A-专业知识" 45 | ], 46 | "chooseWhenCreatingNote": false, 47 | "createInSameFolderAsActiveFile": false 48 | }, 49 | "appendLink": true, 50 | "incrementFileName": false, 51 | "openFileInNewTab": { 52 | "enabled": false, 53 | "direction": "vertical", 54 | "focus": true 55 | }, 56 | "openFile": false, 57 | "openFileInMode": "default" 58 | } 59 | ], 60 | "macros": [], 61 | "inputPrompt": "single-line", 62 | "devMode": false, 63 | "templateFolderPath": "", 64 | "announceUpdates": true, 65 | "version": "0.23.0", 66 | "ai": { 67 | "OpenAIApiKey": "", 68 | "defaultModel": "Ask me", 69 | "defaultSystemPrompt": "As an AI assistant within Obsidian, your primary goal is to help users manage their ideas and knowledge more effectively. Format your responses using Markdown syntax. Please use the [[Obsidian]] link format. You can write aliases for the links by writing [[Obsidian|the alias after the pipe symbol]]. To use mathematical notation, use LaTeX syntax. LaTeX syntax for larger equations should be on separate lines, surrounded with double dollar signs ($$). You can also inline math expressions by wrapping it in $ symbols. For example, use $$w_{ij}^{\text{new}}:=w_{ij}^{\text{current}}+etacdotdelta_jcdot x_{ij}$$ on a separate line, but you can write \"($eta$ = learning rate, $delta_j$ = error term, $x_{ij}$ = input)\" inline.", 70 | "promptTemplatesFolderPath": "", 71 | "showAssistant": true 72 | }, 73 | "migrations": { 74 | "migrateToMacroIDFromEmbeddedMacro": true, 75 | "useQuickAddTemplateFolder": true, 76 | "incrementFileNameSettingMoveToDefaultBehavior": true, 77 | "mutualExclusionInsertAfterAndWriteToBottomOfFile": true, 78 | "setVersionAfterUpdateModalRelease": true 79 | } 80 | } -------------------------------------------------------------------------------- /.obsidian/plugins/quickadd/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "quickadd", 3 | "name": "QuickAdd", 4 | "version": "0.23.0", 5 | "minAppVersion": "0.13.19", 6 | "description": "Quickly add new pages or content to your vault.", 7 | "author": "Christian B. B. Houmann", 8 | "authorUrl": "https://bagerbach.com", 9 | "fundingUrl": "https://www.buymeacoffee.com/chhoumann", 10 | "isDesktopOnly": false 11 | } -------------------------------------------------------------------------------- /.obsidian/plugins/remember-cursor-position/cursor-positions.json: -------------------------------------------------------------------------------- 1 | {"README.md":{"scroll":140.7261,"cursor":{"from":{"ch":52,"line":149},"to":{"ch":52,"line":149}}}} -------------------------------------------------------------------------------- /.obsidian/plugins/remember-cursor-position/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "remember-cursor-position", 3 | "name": "Remember cursor position", 4 | "version": "1.0.7", 5 | "minAppVersion": "0.9.12", 6 | "description": "Remember cursor and scroll position for each note", 7 | "author": "Dmitry Savosh", 8 | "authorUrl": "https://github.com/dy-sh/", 9 | "isDesktopOnly": false 10 | } 11 | -------------------------------------------------------------------------------- /.obsidian/plugins/surfing/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "defaultSearchEngine": "baidu", 3 | "customSearchEngine": [ 4 | { 5 | "name": "duckduckgo", 6 | "url": "https://duckduckgo.com/?q=" 7 | } 8 | ], 9 | "alwaysShowCustomSearch": true, 10 | "showOtherSearchEngines": true, 11 | "showSearchBarInPage": true, 12 | "markdownPath": "/", 13 | "customHighlightFormat": false, 14 | "highlightFormat": "[{CONTENT}]({URL})", 15 | "highlightInSameTab": false, 16 | "openInSameTab": true, 17 | "openInObsidianWeb": false, 18 | "useCustomIcons": false, 19 | "useWebview": false, 20 | "useIconList": true, 21 | "darkMode": false, 22 | "bookmarkManager": { 23 | "openBookMark": false, 24 | "pagination": "12", 25 | "category": "\"计算机\\n 算法\\n 数据结构\\nobsidian\\n surfing\\n dataview\\n\"", 26 | "defaultColumnList": [ 27 | "name", 28 | "description", 29 | "category", 30 | "tags", 31 | "created", 32 | "modified" 33 | ] 34 | } 35 | } -------------------------------------------------------------------------------- /.obsidian/plugins/surfing/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "surfing", 3 | "name": "Surfing", 4 | "version": "0.8.11", 5 | "minAppVersion": "1.0.0", 6 | "description": "Surf the Net in Obsidian.", 7 | "author": "Boninall & Windily-cloud", 8 | "authorUrl": "https://github.com/Quorafind", 9 | "isDesktopOnly": true, 10 | "fundingUrl": { 11 | "Buy Me a Coffee": "https://www.buymeacoffee.com/boninall", 12 | "爱发电": "https://afdian.net/a/boninall", 13 | "支付宝": "https://cdn.jsdelivr.net/gh/Quorafind/.github@main/IMAGE/%E6%94%AF%E4%BB%98%E5%AE%9D%E4%BB%98%E6%AC%BE%E7%A0%81.jpg" 14 | } 15 | } -------------------------------------------------------------------------------- /.obsidian/plugins/tag-wrangler/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "tag-wrangler", 3 | "name": "Tag Wrangler", 4 | "author": "PJ Eby", 5 | "authorUrl": "https://github.com/pjeby", 6 | "version": "0.5.8", 7 | "minAppVersion": "0.15.9", 8 | "description": "Rename, merge, toggle, and search tags from the tag pane", 9 | "isDesktopOnly": false 10 | } 11 | -------------------------------------------------------------------------------- /.obsidian/plugins/tag-wrangler/styles.css: -------------------------------------------------------------------------------- 1 | .smalltalk{display:flex;align-items:center;flex-direction:column;justify-content:center;transition:.2s opacity;inset:0;overflow:auto;padding:20px;position:fixed;z-index:100}.smalltalk+.smalltalk{transition:ease 1s}.smalltalk .page{border-radius:3px;background:white;box-shadow:0 4px 23px 5px #0003,0 2px 6px #00000026;color:#333;min-width:400px;padding:0;position:relative;z-index:0}@media only screen and (max-width: 500px){.smalltalk .page{min-width:0}}.smalltalk .page>.close-button{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAQAAAC1QeVaAAAAUklEQVR4XqXPYQrAIAhAYW/gXd8NJxTopVqsGEhtf+L9/ERU2k/HSMFQpKcYJeNFI9Be0LCMij8cYyjj5EHIivGBkwLfrbX3IF8PqumVmnDpEG+eDsKibPG2JwAAAABJRU5ErkJggg==);background-position:center;background-repeat:no-repeat;height:14px;position:absolute;right:7px;top:7px;width:14px;z-index:1}.smalltalk .page>.close-button:hover{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAQAAAC1QeVaAAAAnUlEQVR4XoWQQQ6CQAxFewjkJkMCyXgJPMk7AiYczyBeZEAX6AKctGIaN+bt+trk9wtGQc/IkhnoKGxqqiWxOSZalapWFZ6VrIUDExsN0a5JRBq9LoVOR0eEQMoEhKizXhhsn0p1sCWVo7CwOf1RytPL8CPvwuBUoHL6ugeK30CVD1TqK7V/hdpe+VNChhOzV8xWny/+xosHF8578W/Hmc1OOC3wmwAAAABJRU5ErkJggg==)}.smalltalk .progress{display:block;width:100%}.smalltalk .page header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:500px;user-select:none;color:#333;font-size:120%;font-weight:700;margin:0;padding:14px 17px;text-shadow:white 0 1px 2px}.smalltalk .page .content-area{overflow:hidden;text-overflow:ellipsis;padding:6px 17px;position:relative}.smalltalk .page .action-area{padding:14px 17px}.smalltalk button,.smalltalk .smalltalk{min-height:2em;min-width:4em}.smalltalk button{appearance:none;user-select:none;background-image:linear-gradient(#ededed,#ededed 38%,#dedede);border:1px solid rgba(0,0,0,.25);border-radius:2px;box-shadow:0 1px #00000014,inset 0 1px 2px #ffffffbf;color:#444;font:inherit;margin:0 1px 0 0;text-shadow:0 1px 0 rgb(240,240,240)}.smalltalk button::-moz-focus-inner{border:0}.smalltalk button:enabled:active{background-image:linear-gradient(#e7e7e7,#e7e7e7 38%,#d7d7d7);box-shadow:none;text-shadow:none}.smalltalk .page .button-strip{display:flex;flex-direction:row;justify-content:flex-end}.smalltalk .page .button-strip>button{margin-left:10px}.smalltalk input{width:100%;border:1px solid #bfbfbf;border-radius:2px;box-sizing:border-box;color:#444;font:inherit;margin:0;min-height:2em;padding:3px;outline:none}.smalltalk button:enabled:focus,.smalltalk input:enabled:focus{transition:border-color .2s;border-color:#4d90fe;outline:none}.smalltalk input[pattern]:invalid,.smalltalk input[pattern]:invalid:enabled:focus,.smalltalk input[pattern][aria-invalid=true],.smalltalk input[pattern][aria-invalid=true]:enabled:focus{border-color:var(--text-error);background-color:var(--background-modifier-error)}.smalltalk .page,.smalltalk .page header,.smalltalk input,.smalltalk button{color:var(--text-normal);text-shadow:none}.smalltalk .page{background:var(--background-primary)}.smalltalk button[data-name=js-ok]{background:var(--background-modifier-error)}.smalltalk button[data-name=js-cancel]{background:var(--background-secondary-alt)}.smalltalk button{box-shadow:none} 2 | -------------------------------------------------------------------------------- /.obsidian/plugins/various-complements/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "strategy": "default", 3 | "matchStrategy": "prefix", 4 | "maxNumberOfSuggestions": 5, 5 | "maxNumberOfWordsAsPhrase": 3, 6 | "minNumberOfCharactersTriggered": 0, 7 | "minNumberOfWordsTriggeredPhrase": 1, 8 | "complementAutomatically": true, 9 | "delayMilliSeconds": 0, 10 | "disableSuggestionsDuringImeOn": false, 11 | "insertAfterCompletion": true, 12 | "firstCharactersDisableSuggestions": ":/^", 13 | "showMatchStrategy": true, 14 | "showComplementAutomatically": true, 15 | "showIndexingStatus": true, 16 | "descriptionOnSuggestion": "Short", 17 | "selectSuggestionKeys": "Enter", 18 | "additionalCycleThroughSuggestionsKeys": "None", 19 | "disableUpDownKeysForCycleThroughSuggestionsKeys": false, 20 | "openSourceFileKey": "None", 21 | "propagateEsc": false, 22 | "enableCurrentFileComplement": true, 23 | "currentFileMinNumberOfCharacters": 0, 24 | "onlyComplementEnglishOnCurrentFileComplement": false, 25 | "enableCurrentVaultComplement": false, 26 | "currentVaultMinNumberOfCharacters": 0, 27 | "includeCurrentVaultPathPrefixPatterns": "", 28 | "excludeCurrentVaultPathPrefixPatterns": "", 29 | "includeCurrentVaultOnlyFilesUnderCurrentDirectory": false, 30 | "enableCustomDictionaryComplement": false, 31 | "customDictionaryPaths": "https://raw.githubusercontent.com/first20hours/google-10000-english/master/google-10000-english-no-swears.txt", 32 | "columnDelimiter": "Tab", 33 | "customDictionaryWordRegexPattern": "", 34 | "delimiterToHideSuggestion": "", 35 | "delimiterToDivideSuggestionsForDisplayFromInsertion": "", 36 | "caretLocationSymbolAfterComplement": "", 37 | "displayedTextSuffix": " => ...", 38 | "enableInternalLinkComplement": true, 39 | "suggestInternalLinkWithAlias": false, 40 | "excludeInternalLinkPathPrefixPatterns": "", 41 | "enableFrontMatterComplement": true, 42 | "frontMatterComplementMatchStrategy": "inherit", 43 | "insertCommaAfterFrontMatterCompletion": false, 44 | "intelligentSuggestionPrioritization": { 45 | "maxDaysToKeepHistory": 30, 46 | "maxNumberOfHistoryToKeep": 0 47 | }, 48 | "showLogAboutPerformanceInConsole": false, 49 | "selectionHistoryTree": { 50 | "维客笔记": { 51 | "维客笔记": { 52 | "frontMatter": { 53 | "count": 1, 54 | "lastUpdated": 1671277370270 55 | } 56 | } 57 | }, 58 | "如果你不喜欢主题的某些点(比如字号、字体、字体颜色、链接颜色、页面背景等等),可以通过": { 59 | "如果你不喜欢主题的某些点(比如字号、字体、字体颜色、链接颜色、页面背景等等),可以通过": { 60 | "currentFile": { 61 | "count": 1, 62 | "lastUpdated": 1671279033801 63 | } 64 | } 65 | }, 66 | "Reading Notes Database": { 67 | "Reading Notes Database": { 68 | "internalLink": { 69 | "count": 1, 70 | "lastUpdated": 1671289236877 71 | } 72 | } 73 | }, 74 | "Obsidian": { 75 | "Obsidian": { 76 | "currentFile": { 77 | "count": 1, 78 | "lastUpdated": 1671353616491 79 | } 80 | } 81 | }, 82 | "zotero+Obsidian+db folder": { 83 | "zotero+Obsidian+db folder": { 84 | "internalLink": { 85 | "count": 1, 86 | "lastUpdated": 1671354136892 87 | } 88 | } 89 | } 90 | } 91 | } -------------------------------------------------------------------------------- /.obsidian/plugins/various-complements/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "various-complements", 3 | "name": "Various Complements", 4 | "version": "8.2.1", 5 | "minAppVersion": "0.16.0", 6 | "description": "This plugin enables you to complete words like the auto-completion of IDE", 7 | "author": "tadashi-aikawa", 8 | "authorUrl": "https://github.com/tadashi-aikawa", 9 | "isDesktopOnly": false 10 | } -------------------------------------------------------------------------------- /.obsidian/plugins/workspaces-plus/app.json.bak: -------------------------------------------------------------------------------- 1 | { 2 | "showFrontmatter": false, 3 | "strictLineBreaks": true, 4 | "readableLineLength": false, 5 | "spellcheck": true, 6 | "alwaysUpdateLinks": true, 7 | "newLinkFormat": "shortest", 8 | "useMarkdownLinks": false, 9 | "newFileLocation": "current", 10 | "showInlineTitle": false, 11 | "attachmentFolderPath": "Z-附件/images", 12 | "promptDelete": false, 13 | "trashOption": "local" 14 | } -------------------------------------------------------------------------------- /.obsidian/plugins/workspaces-plus/appearance.json.bak: -------------------------------------------------------------------------------- 1 | { 2 | "accentColor": "", 3 | "cssTheme": "Blue Topaz", 4 | "theme": "moonstone", 5 | "nativeMenus": true, 6 | "showViewHeader": true, 7 | "interfaceFontFamily": "霞鹜文楷 屏幕阅读版", 8 | "textFontFamily": "霞鹜文楷 屏幕阅读版", 9 | "enabledCssSnippets": [ 10 | "folder-icons" 11 | ] 12 | } -------------------------------------------------------------------------------- /.obsidian/plugins/workspaces-plus/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "showInstructions": true, 3 | "showDeletePrompt": true, 4 | "saveOnSwitch": false, 5 | "saveOnChange": false, 6 | "workspaceSettings": false, 7 | "systemDarkMode": false, 8 | "globalSettings": {}, 9 | "activeWorkspaceDesktop": "Readme&Home", 10 | "activeWorkspaceMobile": "", 11 | "reloadLivePreview": false, 12 | "workspaceSwitcherRibbon": true, 13 | "modeSwitcherRibbon": false, 14 | "replaceNativeRibbon": true 15 | } -------------------------------------------------------------------------------- /.obsidian/plugins/workspaces-plus/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "workspaces-plus", 3 | "name": "Workspaces Plus", 4 | "version": "0.3.3", 5 | "minAppVersion": "1.0.0", 6 | "description": "Quickly switch and manage workspaces", 7 | "author": "NothingIsLost and Johnny ✨", 8 | "authorUrl": "https://github.com/nothingislost", 9 | "isDesktopOnly": true 10 | } -------------------------------------------------------------------------------- /.obsidian/snippets/folder-icons.css: -------------------------------------------------------------------------------- 1 | /* 给左侧边栏文件夹前添加图标,""内图标和文件夹名称请自行修改 */ 2 | 3 | :root{ 4 | /* California Coast 推荐 4px */ 5 | /* Minimal 推荐 0.9px */ 6 | --right: 4px; 7 | } 8 | 9 | .nav-folder-title[data-path$="@Inbox"] .nav-folder-title-content::before { 10 | content: "📥" !important; 11 | position: relative !important; 12 | right: var(--right); 13 | } 14 | 15 | 16 | .nav-folder-title[data-path$="维客笔记"] .nav-folder-title-content::before { 17 | content: "📝" !important; 18 | position: relative !important; 19 | right: var(--right); 20 | } 21 | 22 | .nav-folder-title[data-path$="A-专业知识"] .nav-folder-title-content::before { 23 | content: "🗃️" !important; 24 | position: relative !important; 25 | right: var(--right); 26 | } 27 | 28 | 29 | 30 | .nav-folder-title[data-path$="B-科研笔记"] .nav-folder-title-content::before { 31 | content: "💻"; 32 | position: relative !important; 33 | right: var(--right); 34 | } 35 | 36 | 37 | .nav-folder-title[data-path$="C-生活规划"] .nav-folder-title-content::before { 38 | content: "🗓️" !important; 39 | position: relative !important; 40 | right: var(--right); 41 | } 42 | 43 | 44 | .nav-folder-title[data-path$="D-软件技能"] .nav-folder-title-content::before { 45 | content: "📱" !important; 46 | position: relative !important; 47 | right: var(--right); 48 | } 49 | 50 | 51 | .nav-folder-title[data-path$="Z-附件"] .nav-folder-title-content::before { 52 | content: "🗂️" !important; 53 | position: relative !important; 54 | right: var(--right); 55 | } 56 | -------------------------------------------------------------------------------- /.obsidian/switcher.json: -------------------------------------------------------------------------------- 1 | { 2 | "showExistingOnly": false, 3 | "showAttachments": false, 4 | "showAllFileTypes": false 5 | } -------------------------------------------------------------------------------- /.obsidian/templates.json: -------------------------------------------------------------------------------- 1 | { 2 | "folder": "Z-附件/Templates", 3 | "dateFormat": "YYYY-MM-DD", 4 | "timeFormat": "HH:mm:ss" 5 | } -------------------------------------------------------------------------------- /.obsidian/themes/AnuPpuccin/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "AnuPpuccin", 3 | "version": "1.4.2", 4 | "minAppVersion": "0.16.0", 5 | "author": "Anubis", 6 | "authorUrl": "https://github.com/AnubisNekhet" 7 | } 8 | -------------------------------------------------------------------------------- /.obsidian/themes/Blue Topaz/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Blue Topaz", 3 | "version": "20230509", 4 | "minAppVersion": "1.0.0", 5 | "author": "WhyI", 6 | "authorUrl": "https://github.com/whyt-byte" 7 | } -------------------------------------------------------------------------------- /.obsidian/themes/Minimal/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Minimal", 3 | "version": "6.3.2", 4 | "minAppVersion": "1.1.0", 5 | "author": "@kepano", 6 | "authorUrl": "https://twitter.com/kepano", 7 | "fundingUrl": "https://www.buymeacoffee.com/kepano" 8 | } 9 | -------------------------------------------------------------------------------- /.trash/C01-日记2/2023-01-29.md: -------------------------------------------------------------------------------- 1 | --- 2 | 要事: null 3 | 反思: null 4 | 心情: null 5 | 天气: null 6 | 早起: null 7 | 早睡: null 8 | 随想: null 9 | 标签: null 10 | --- 11 | 12 | -------------------------------------------------------------------------------- /.trash/未命名.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/.trash/未命名.md -------------------------------------------------------------------------------- /@Inbox/ZK Box/20220613151351.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: 20220613151351 3 | type: 4 | aliases: [ ] 5 | --- 6 | title:: 7 | tags:: #文献随想 8 | source:: 9 | 10 | -------- 11 | ## Question:: 我是随想1 12 | 13 | Answer:: 我是答案1,再编辑一下 14 | -------------------------------------------------------------------------------- /@Inbox/ZK Box/20220613151402.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: 20220613151402 3 | type: 4 | aliases: [ ] 5 | --- 6 | title:: 7 | tags:: #文献随想 8 | source:: 9 | 10 | -------- 11 | ## Question:: 我是随想2 12 | 13 | Answer:: 我是答案2,🤣 14 | -------------------------------------------------------------------------------- /@Inbox/ZK Box/20221004221346.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: 20221004221346 3 | type: 4 | aliases: [ ] 5 | --- 6 | 7 | title:: 8 | 9 | tags:: #文献随想 10 | 11 | source:: 12 | 13 | -------- 14 | ## Question:: 124 15 | 16 | Answer:: 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /A-专业知识/A01-凝聚态物理/Fraunhofer pattern-zcwen.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: "20220613151528" 3 | aliases: 4 | - "夫琅禾费衍射花样" 5 | --- 6 | tags:: #专业知识 #凝聚态物理 7 | 8 | ----- 9 | 再来写一点 -------------------------------------------------------------------------------- /A-专业知识/A01-凝聚态物理/Fraunhofer pattern.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: 20220613151528 3 | aliases: [ 夫琅禾费衍射花样] 4 | --- 5 | tags:: #专业知识 #凝聚态物理 6 | 7 | ----- 8 | 再来写一点 -------------------------------------------------------------------------------- /A-专业知识/A01-凝聚态物理/Ising superconductivity-zcwen.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: "20221004220159" 3 | aliases: 4 | --- 5 | tags:: #专业知识 6 | 7 | ----- 8 | -------------------------------------------------------------------------------- /A-专业知识/A01-凝聚态物理/Ising superconductivity.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: 20221004220159 3 | aliases: 4 | --- 5 | tags:: #专业知识 6 | 7 | ----- 8 | -------------------------------------------------------------------------------- /A-专业知识/A01-凝聚态物理/Josephson Junction-zcwen.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: "20220827180630" 3 | aliases: 4 | --- 5 | tags:: #专业知识 6 | 7 | ----- 8 | -------------------------------------------------------------------------------- /A-专业知识/A01-凝聚态物理/Josephson Junction.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: 20220827180630 3 | aliases: 4 | --- 5 | tags:: #专业知识 6 | 7 | ----- 8 | -------------------------------------------------------------------------------- /A-专业知识/A01-凝聚态物理/Josephson diode-zcwen.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: "20220613151446" 3 | aliases: 4 | --- 5 | tags:: #专业知识 #凝聚态物理 6 | 7 | ----- 8 | 随便写写了哈 -------------------------------------------------------------------------------- /A-专业知识/A01-凝聚态物理/Josephson diode.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: 20220613151446 3 | aliases: [ ] 4 | --- 5 | tags:: #专业知识 #凝聚态物理 6 | 7 | ----- 8 | 随便写写了哈 -------------------------------------------------------------------------------- /A-专业知识/A01-凝聚态物理/固体物理-zcwen.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: "20220827180507" 3 | aliases: 4 | --- 5 | tags:: #专业知识 6 | 7 | ----- 8 | -------------------------------------------------------------------------------- /A-专业知识/A01-凝聚态物理/固体物理.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: 20220827180507 3 | aliases: 4 | --- 5 | tags:: #专业知识 6 | 7 | ----- 8 | -------------------------------------------------------------------------------- /A-专业知识/A01-凝聚态物理/晶体生长-zcwen.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: "20220827180639" 3 | aliases: 4 | --- 5 | tags:: #专业知识 6 | 7 | ----- 8 | -------------------------------------------------------------------------------- /A-专业知识/A01-凝聚态物理/晶体生长.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: 20220827180639 3 | aliases: 4 | --- 5 | tags:: #专业知识 6 | 7 | ----- 8 | -------------------------------------------------------------------------------- /A-专业知识/A01-凝聚态物理/输运测试-zcwen.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: "20220827180727" 3 | aliases: 4 | --- 5 | tags:: #专业知识 6 | 7 | ----- 8 | -------------------------------------------------------------------------------- /A-专业知识/A01-凝聚态物理/输运测试.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: 20220827180727 3 | aliases: 4 | --- 5 | tags:: #专业知识 6 | 7 | ----- 8 | -------------------------------------------------------------------------------- /A-专业知识/A02-半导体物理/半导体物理.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: 20220827180511 3 | aliases: 4 | --- 5 | tags:: #专业知识 6 | 7 | ----- 8 | -------------------------------------------------------------------------------- /A-专业知识/凝聚态物理.md: -------------------------------------------------------------------------------- 1 | 2 | ```dataview 3 | table tags,aliases 4 | from "A-专业知识" 5 | where contains(tags,"#凝聚态物理" ) 6 | sort file.ctime 7 | ``` 8 | -------------------------------------------------------------------------------- /A-专业知识/英语.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/A-专业知识/英语.md -------------------------------------------------------------------------------- /A-专业知识/量子力学.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: 20220827180606 3 | aliases: 4 | --- 5 | tags:: #专业知识 6 | 7 | ----- 8 | -------------------------------------------------------------------------------- /B-科研笔记/B02-实验方法/干法转移.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/B-科研笔记/B02-实验方法/干法转移.md -------------------------------------------------------------------------------- /B-科研笔记/B02-实验方法/晶体生长.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/B-科研笔记/B02-实验方法/晶体生长.md -------------------------------------------------------------------------------- /B-科研笔记/B02-实验方法/输运测试.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/B-科研笔记/B02-实验方法/输运测试.md -------------------------------------------------------------------------------- /B-科研笔记/B08-文献阅读/Reading Notes/2009-Raman spectroscopy in graphene.md: -------------------------------------------------------------------------------- 1 | --- 2 | 标签: 3 | tags: 4 | - "Raman" 5 | - "2D materials" 6 | - "graphene" 7 | status: true 8 | Comments: 💡欢迎关注我的个人微信公众号【维客笔记】!
💡欢迎关注我的个人微信公众号【维客笔记】!
💡换行效果 9 | rating: 🍓🍓🍓 10 | --- 11 | 12 | 13 | >[!info]-
Metadata
14 | > 15 | >>* ItemType:: Article 16 | >>* Authors:: L.M. Malard, M.A. Pimenta, G. Dresselhaus, M.S. Dresselhaus 17 | >>* Date:: 2009-04 18 | >>* Collections:: 105-Graphene, 演示 19 | >>* Publication:: Physics Reports 20 | >> 21 | 22 | >[!abstract]-
Abstract
23 | > 24 | >># Abstract 25 | Recent Raman scattering studies in different types of graphene samples are reviewed here. We first discuss the first-order and the double resonance Raman scattering mechanisms in graphene, which give rise to the most prominent Raman features. The determination of the number of layers in few-layer graphene is discussed, giving special emphasis to the possibility of using Raman spectroscopy to distinguish a monolayer from few-layer graphene stacked in the Bernal (AB) configuration. Different types of graphene samples produced both by exfoliation and using epitaxial methods are described and their Raman spectra are compared with those of 3D crystalline graphite and turbostratic graphite, in which the layers are stacked with rotational disorder. We show that Resonance Raman studies, where the energy of the excitation laser line can be tuned continuously, can be used to probe electrons and phonons near the Dirac point of graphene and, in particular allowing a determination to be made of the tight-binding parameters for bilayer graphene. The special process of electron–phonon interaction that renormalizes the phonon energy giving rise to the Kohn anomaly is discussed, and is illustrated by gated experiments where the position of the Fermi level can be changed experimentally. Finally, we discuss the ability of distinguishing armchair and zig-zag edges by Raman spectroscopy and studies in graphene nanoribbons in which the Raman signal is enhanced due to resonance with singularities in the density of electronic states. 26 | 27 | ---------------------------------------------------------------------------------------------- 28 | # 🍨你对此篇文献有何评价? 29 | 30 | >此问题的答案在笔记开头的Comments中回答 31 | 32 | 33 | # 🍛你感兴趣的点是什么? 34 | 35 | 36 | 37 | # 🍔这篇论文的研究动机是什么? 38 | 39 | 40 | 41 | 42 | # 🥪这篇论文用到了哪些专业知识?阅读中你遇到了哪些问题? 43 | 44 | 45 | 46 | # 🍚这篇论文的实验方案是如何设计的? 47 | 48 | 49 | 50 | 51 | # 🌮有哪些相关的研究? 52 | 53 | 54 | 55 | 56 | # 🍝这篇论文的主要贡献是什么? 57 | 58 | 59 | 60 | # ✍这篇论文在写作表达方面有哪些值得借鉴的地方? 61 | 62 | 写作素材:: 📌📌📌 63 | 64 | 65 | 66 | >[!hint]
Zotero links
67 | > 68 | >* LocalLibrary:: [Local library](zotero://select/items/1_GFGTPKRJ) 69 | >* CloudLibrary:: [Cloud library](http://zotero.org/users/6360064/items/GFGTPKRJ) 70 | >* URL:: [https://linkinghub.elsevier.com/retrieve/pii/S0370157309000520](https://linkinghub.elsevier.com/retrieve/pii/S0370157309000520) 71 | >* DOI:: [10.1016/j.physrep.2009.02.003](https://doi.org/10.1016/j.physrep.2009.02.003) 72 | >* PDFAttachments:: [2009-Malard et al-Raman spectroscopy in graphene-Physics Reports.pdf](zotero://open-pdf/library/items/KBTPM4PB) 73 | >* Citekey:: malard2009raman 74 | -------------------------------------------------------------------------------- /B-科研笔记/B08-文献阅读/Reading Notes/2018-Correlated insulator behaviour at half-filling in magic-angle graphene superlattices.md: -------------------------------------------------------------------------------- 1 | --- 2 | 标签: 3 | tags: 4 | - "2D materials" 5 | Comments: 💡欢迎关注我的个人微信公众号【维客笔记】!! 6 | rating: 🍓🍓🍓 7 | --- 8 | >[!info]-
Metadata
9 | > 10 | >>* ItemType:: Article 11 | >>* Authors:: Yuan Cao, Valla Fatemi, Ahmet Demir, Shiang Fang, Spencer L. Tomarken, Jason Y. Luo, Javier D. Sanchez-Yamagishi, Kenji Watanabe, Takashi Taniguchi, Efthimios Kaxiras, Ray C. Ashoori, Pablo Jarillo-Herrero 12 | >>* Date:: 2018-04-05 13 | >>* Collections:: 105-Graphene, 演示 14 | >>* Publication:: Nature 15 | 16 | 17 | >[!abstract]-
Abstract
18 | > 19 | >> 20 | ---------------------------------------------------------------------------------------------- 21 | # 🍨你对此篇文献有何评价? 22 | 23 | >此问题的答案在笔记开头的Comments中回答 24 | 25 | 26 | # 🍛你感兴趣的点是什么? 27 | 28 | 29 | 30 | # 🍔这篇论文的研究动机是什么? 31 | 32 | 33 | 34 | 35 | # 🥪这篇论文用到了哪些专业知识?阅读中你遇到了哪些问题? 36 | 37 | 38 | 39 | # 🍚这篇论文的实验方案是如何设计的? 40 | 41 | 42 | 43 | 44 | # 🌮有哪些相关的研究? 45 | 46 | 47 | 48 | 49 | # 🍝这篇论文的主要贡献是什么? 50 | 51 | 52 | 53 | # ✍这篇论文在写作表达方面有哪些值得借鉴的地方? 54 | 55 | 写作素材:: 📌📌📌 56 | 57 | 58 | 59 | >[!hint]
Zotero links
60 | > 61 | >* LocalLibrary:: [Local library](zotero://select/items/1_6BM3UPHP) 62 | >* CloudLibrary:: [Cloud library](http://zotero.org/users/6360064/items/6BM3UPHP) 63 | >* URL:: [http://www.nature.com/articles/nature26154](http://www.nature.com/articles/nature26154) 64 | >* DOI:: [10.1038/nature26154](https://doi.org/10.1038/nature26154) 65 | >* PDFAttachments:: [2018-Cao et al-Correlated insulator behaviour at half-filling in magic-angle graphene superlattices-Nature.pdf](zotero://open-pdf/library/items/8E3PBRYL) 66 | >* Citekey:: cao2018correlated 67 | -------------------------------------------------------------------------------- /B-科研笔记/B08-文献阅读/Reading Notes/2018-Unconventional superconductivity in magic-angle graphene superlattices.md: -------------------------------------------------------------------------------- 1 | --- 2 | 标签: 3 | tags: 4 | - "2D materials" 5 | Comments: 💡欢迎关注我的个人微信公众号【维客笔记】!! 6 | rating: 🍓 7 | --- 8 | >[!info]-
Metadata
9 | > 10 | >>* ItemType:: Article 11 | >>* Authors:: Yuan Cao, Valla Fatemi, Shiang Fang, Kenji Watanabe, Takashi Taniguchi, Efthimios Kaxiras, Pablo Jarillo-Herrero 12 | >>* Date:: 2018-04 13 | >>* Collections:: 105-Graphene, 201-2D Superconductivity, 演示 14 | >>* Publication:: Nature 15 | 16 | 17 | >[!abstract]-
Abstract
18 | > 19 | >> 20 | ---------------------------------------------------------------------------------------------- 21 | # 🍨你对此篇文献有何评价? 22 | 23 | >此问题的答案在笔记开头的Comments中回答 24 | 25 | 26 | # 🍛你感兴趣的点是什么? 27 | 28 | 29 | 30 | # 🍔这篇论文的研究动机是什么? 31 | 32 | 33 | 34 | 35 | # 🥪这篇论文用到了哪些专业知识?阅读中你遇到了哪些问题? 36 | 37 | 38 | 39 | # 🍚这篇论文的实验方案是如何设计的? 40 | 41 | 42 | 43 | 44 | # 🌮有哪些相关的研究? 45 | 46 | 47 | 48 | 49 | # 🍝这篇论文的主要贡献是什么? 50 | 51 | 52 | 53 | # ✍这篇论文在写作表达方面有哪些值得借鉴的地方? 54 | 55 | 写作素材:: 📌📌📌 56 | 57 | 58 | 59 | >[!hint]
Zotero links
60 | > 61 | >* LocalLibrary:: [Local library](zotero://select/items/1_9Z5T53MN) 62 | >* CloudLibrary:: [Cloud library](http://zotero.org/users/6360064/items/9Z5T53MN) 63 | >* URL:: [http://www.nature.com/articles/nature26160](http://www.nature.com/articles/nature26160) 64 | >* DOI:: [10.1038/nature26160](https://doi.org/10.1038/nature26160) 65 | >* PDFAttachments:: [2018-Cao et al-Unconventional superconductivity in magic-angle graphene superlattices-Nature.pdf](zotero://open-pdf/library/items/RIWEJPRZ) 66 | >* Citekey:: cao2018unconventional 67 | -------------------------------------------------------------------------------- /B-科研笔记/B08-文献阅读/Reading Notes/2021-Evidence for unconventional superconductivity in twisted bilayer graphene.md: -------------------------------------------------------------------------------- 1 | --- 2 | 标签: 3 | tags: 4 | - "维客笔记" 5 | - "2D materials" 6 | - "graphene" 7 | - "superconductivity" 8 | status: true 9 | Comments: 💡欢迎关注我的个人微信公众号【维客笔记】!! 10 | rating: 🍓🍓 11 | --- 12 | 13 | >[!info]-
Metadata
14 | > 15 | >>* ItemType:: Article 16 | >>* Authors:: Myungchul Oh, Kevin P. Nuckolls, Dillon Wong, Ryan L. Lee, Xiaomeng Liu, Kenji Watanabe, Takashi Taniguchi, Ali Yazdani 17 | >>* Date:: 2021-12-09 18 | >>* Collections:: 105-Graphene, 201-2D Superconductivity, 演示 19 | >>* Publication:: Nature 20 | 21 | 22 | >[!abstract]-
Abstract
23 | > 24 | >># Abstract 25 | The emergence of superconductivity and correlated insulators in magic-angle twisted bilayer graphene (MATBG) has raised the intriguing possibility that its pairing mechanism is distinct from that of conventional superconductors1–4, as described by the Bardeen–Cooper–Schrieffer (BCS) theory. However, recent studies have shown that superconductivity persists even when Coulomb interactions are partially screened5,6. This suggests that pairing in MATBG might be conventional in nature and a consequence of the large density of states of its flat bands. Here we combine tunnelling and Andreev reflection spectroscopy with a scanning tunnelling microscope to observe several key experimental signatures of unconventional superconductivity in MATBG. We show that the tunnelling spectra below the transition temperature Tc are inconsistent with those of a conventional s-wave superconductor, but rather resemble those of a nodal superconductor with an anisotropic pairing mechanism. We observe a large discrepancy between the tunnelling gap ΔT, which far exceeds the mean-field BCS ratio (with 2ΔT/kBTc ~ 25), and the gap ΔAR extracted from Andreev reflection spectroscopy (2ΔAR/kBTc ~ 6). The tunnelling gap persists even when superconductivity is suppressed, indicating its emergence from a pseudogap phase. Moreover, the pseudogap and superconductivity are both absent when MATBG is aligned with hexagonal boron nitride. These findings and other observations reported here provide a preponderance of evidence for a non-BCS mechanism for superconductivity in MATBG. 26 | 27 | ---------------------------------------------------------------------------------------------- 28 | # 🍨你对此篇文献有何评价? 29 | 30 | >此问题的答案在笔记开头的Comments中回答 31 | 32 | 33 | # 🍛你感兴趣的点是什么? 34 | 35 | 36 | # 🍔这篇论文的研究动机是什么? 37 | 38 | 39 | # 🥪这篇论文用到了哪些专业知识?阅读中你遇到了哪些问题? 40 | 41 | 42 | # 🍚这篇论文的实验方案是如何设计的? 43 | 44 | 45 | # 🌮有哪些相关的研究? 46 | 47 | 48 | # 🍝这篇论文的主要贡献是什么? 49 | 50 | 51 | # ✍这篇论文在写作表达方面有哪些值得借鉴的地方? 52 | 53 | 写作素材:: 📌📌📌 54 | 55 | 56 | 57 | >[!hint]
Zotero links
58 | > 59 | >* LocalLibrary:: [Local library](zotero://select/items/1_878UTIRH) 60 | >* CloudLibrary:: [Cloud library](http://zotero.org/users/6360064/items/878UTIRH) 61 | >* URL:: [https://www.nature.com/articles/s41586-021-04121-x](https://www.nature.com/articles/s41586-021-04121-x) 62 | >* DOI:: [10.1038/s41586-021-04121-x](https://doi.org/10.1038/s41586-021-04121-x) 63 | >* PDFAttachments:: [2021-Evidence for unconventional superconductivity in twisted bilayer graphene-Oh et al-Nature.pdf](zotero://open-pdf/library/items/NTTPVVG4) 64 | >* Citekey:: oh2021evidence 65 | -------------------------------------------------------------------------------- /C-生活规划/C01-日记/2023-01-15.md: -------------------------------------------------------------------------------- 1 | --- 2 | 要事: 3 | - 维客笔记 4 | - 微信公众号 5 | 反思: 探索 6 | 心情: 😀 7 | 天气: 🌞 8 | 早起: Y 9 | 早睡: null 10 | 日期: 2023-01-15T00:00:00.000+08:00 11 | 随想: 因为热爱,所以分享 12 | 标签: 13 | - obsidian技巧 14 | - 软件 15 | --- 16 | -------------------------------------------------------------------------------- /C-生活规划/C01-日记/2023-01-29.md: -------------------------------------------------------------------------------- 1 | --- 2 | 要事: 维客笔记微信公众号 3 | 反思: 维客笔记微信公众号 4 | 心情: 😀 5 | 天气: 🌞 6 | 早起: Y 7 | 早睡: null 8 | 随想: 维客笔记微信公众号 9 | 标签: 10 | - 软件 11 | - obsidian技巧 12 | 日期: 2023-01-29T00:00:00.000+08:00 13 | 图片: "![[1.png]]" 14 | --- 15 | 16 | -------------------------------------------------------------------------------- /C-生活规划/C01-日记/2023-02-28.md: -------------------------------------------------------------------------------- 1 | --- 2 | 要事: BCS 3 | 反思: 维客笔记 4 | 心情: null 5 | 天气: null 6 | 早起: null 7 | 早睡: null 8 | 日期: 2023-02-28T00:00:00.000+08:00 9 | --- 10 | 11 | -------------------------------------------------------------------------------- /C-生活规划/C01-日记/2023-03-03.md: -------------------------------------------------------------------------------- 1 | --- 2 | 要事: null 3 | 反思: null 4 | 心情: null 5 | 天气: null 6 | 早起: null 7 | 早睡: null 8 | 日期: 2023-03-03T00:00:00.000+08:00 9 | 图片: "" 10 | --- 11 | 12 | -------------------------------------------------------------------------------- /C-生活规划/C02-备忘/备忘MOC.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: 20220827180818 3 | type: 4 | aliases: 5 | --- 6 | title:: 7 | 8 | tags:: 9 | 10 | source:: 11 | 12 | Notes:: 13 | 14 | --- 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /C-生活规划/C03-书影音/书单.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: 20220827180828 3 | type: 4 | aliases: 5 | --- 6 | title:: 7 | 8 | tags:: 9 | 10 | source:: 11 | 12 | Notes:: 13 | 14 | --- 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /C-生活规划/C03-书影音/影单.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: 20220827180836 3 | type: 4 | aliases: 5 | --- 6 | title:: 7 | 8 | tags:: 9 | 10 | source:: 11 | 12 | Notes:: 13 | 14 | --- 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /C-生活规划/C05-成长/时间管理.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: 20220827180845 3 | type: 4 | aliases: 5 | --- 6 | title:: 7 | 8 | tags:: 9 | 10 | source:: 11 | 12 | Notes:: 13 | 14 | --- 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /C-生活规划/C05-成长/知识管理.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: 20220827180853 3 | type: 4 | aliases: 5 | --- 6 | title:: 7 | 8 | tags:: 9 | 10 | source:: 11 | 12 | Notes:: 13 | 14 | --- 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /D-软件技能/Blender.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: 20220827181026 3 | type: 4 | aliases: 5 | --- 6 | title:: 7 | 8 | tags:: 9 | 10 | source:: 11 | 12 | Notes:: 13 | 14 | --- 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /D-软件技能/D01-Obsidian/MOC.md: -------------------------------------------------------------------------------- 1 | [我的简约版MOC (qq.com)](https://mp.weixin.qq.com/s/E_stz-FXK0YNlpraIh5mUw) -------------------------------------------------------------------------------- /D-软件技能/D01-Obsidian/zotero+Obsidian+db folder.md: -------------------------------------------------------------------------------- 1 | zotero端配置:具体配置参看此贴第二小节👉[https://mp.weixin.qq.com/s/DS3iDtS4JzDSR--F6eHEpg](https://mp.weixin.qq.com/s/DS3iDtS4JzDSR--F6eHEpg) 2 | 3 | zotero与db folder 4 | [Obsidian | Ob中真正的Notion Database功能,配置极简,体验极佳 - 哔哩哔哩](https://www.bilibili.com/read/cv19518130?spm_id_from=333.999.0.0) 5 | 6 | [Obsidian | Ob中真正的Notion Database功能,配置极简,体验极佳!_哔哩哔哩_bilibili](https://www.bilibili.com/video/BV1ue411V72E/?spm_id_from=333.999.0.0&vd_source=ae70416512bcca9aa2a318726885ed8a) 7 | -------------------------------------------------------------------------------- /D-软件技能/D01-Obsidian/zotero+word+obsidian.md: -------------------------------------------------------------------------------- 1 | 此部分配置教程,本人就直接引用了,大家愿意折腾的话跟着配置就行 2 | 3 | Better BibTeX for Zotero插件的作者教程👉[Markdown/Pandoc :: Better BibTeX for Zotero](https://retorque.re/zotero-better-bibtex/exporting/pandoc/) 4 | 5 | ![[Pasted image 20221217215937.png]] 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /D-软件技能/D01-Obsidian/一键随想笔记.md: -------------------------------------------------------------------------------- 1 | 参看此推文2.2节[https://mp.weixin.qq.com/s/DS3iDtS4JzDSR--F6eHEpg](https://mp.weixin.qq.com/s/DS3iDtS4JzDSR--F6eHEpg) -------------------------------------------------------------------------------- /D-软件技能/D01-Obsidian/主题设置插件.md: -------------------------------------------------------------------------------- 1 | - 一共有两个插件:Minimal Theme settings和Style settings 2 | - 上面两个插件本库已经安装好了,不用再额外下载了 3 | - 调节步骤如下 4 | - 点击左下角的设置 5 | - 在弹出的窗口中找到如下界面,然后就可以进行调节了 6 | - ![[主题设置插件.png]] 7 | - 之前写了一篇关于调节主题的推文,感兴趣可以看看[https://mp.weixin.qq.com/s/zAfT-NUV_RPPalI_mNT9XA](https://mp.weixin.qq.com/s/zAfT-NUV_RPPalI_mNT9XA) 8 | -------------------------------------------------------------------------------- /D-软件技能/D01-Obsidian/悬浮编辑.md: -------------------------------------------------------------------------------- 1 | 这个就是Hover Editor的妙用了,我最喜欢的插件之一,之前有推荐过👉[开启Obsidian的"悬浮"模式,大大提升Ob使用体验 (qq.com)](https://mp.weixin.qq.com/s?__biz=MzU4MzgxNjczMA==&mid=2247485012&idx=1&sn=50e6d3af4a03f7b15f22db8b019efa47&chksm=fda20521cad58c37a3e62559ea068221adcdf4bab332c5ee9189cfc2553377082c1e3c68873c&scene=21#wechat_redirect) 2 | 3 | 4 | -------------------------------------------------------------------------------- /D-软件技能/D01-Obsidian/更换主题.md: -------------------------------------------------------------------------------- 1 | - 点击左下角的齿轮(设置)按钮 2 | - 在弹出的窗口中一次点击外观---管理,如下图所示 3 | - ![[更换主题.png]] 4 | - 然后就可以浏览社区主题进行更换了 -------------------------------------------------------------------------------- /D-软件技能/D01-Obsidian/模板.md: -------------------------------------------------------------------------------- 1 | 关于模板,之前也写过两篇相关的推文,主要是想实现,添加笔记自动调用预设模板 2 | - From Template:[https://mp.weixin.qq.com/s/eFYNnZa7khG3tBlbDNLHZw](https://mp.weixin.qq.com/s/eFYNnZa7khG3tBlbDNLHZw) 3 | - 利用Quickadd的模板功能,看这个帖子的2.2节即可:[https://mp.weixin.qq.com/s/DS3iDtS4JzDSR--F6eHEpg](https://mp.weixin.qq.com/s/DS3iDtS4JzDSR--F6eHEpg) -------------------------------------------------------------------------------- /D-软件技能/D01-Obsidian/附件.md: -------------------------------------------------------------------------------- 1 | 曾写过一篇附件管理的推文👉[https://mp.weixin.qq.com/s/HNNvDp-FonhOyOb9DEEhzQ](https://mp.weixin.qq.com/s/HNNvDp-FonhOyOb9DEEhzQ) -------------------------------------------------------------------------------- /D-软件技能/D02-Zotero/zotero.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: 20220827181001 3 | type: 4 | aliases: 5 | --- 6 | title:: 7 | 8 | tags:: 9 | 10 | source:: 11 | 12 | Notes:: 13 | 14 | --- 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /D-软件技能/Matlab.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: 20220827181012 3 | type: 4 | aliases: 5 | --- 6 | title:: 7 | 8 | tags:: 9 | 10 | source:: 11 | 12 | Notes:: 13 | 14 | --- 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /D-软件技能/Origin.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: 20220827181006 3 | type: 4 | aliases: 5 | --- 6 | title:: 7 | 8 | tags:: 9 | 10 | source:: 11 | 12 | Notes:: 13 | 14 | --- 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /D-软件技能/PPT设计.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: 20220827181020 3 | type: 4 | aliases: 5 | --- 6 | title:: 7 | 8 | tags:: 9 | 10 | source:: 11 | 12 | Notes:: 13 | 14 | --- 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /D-软件技能/Word教程.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: 20220827181032 3 | type: 4 | aliases: 5 | --- 6 | title:: 7 | 8 | tags:: 9 | 10 | source:: 11 | 12 | Notes:: 13 | 14 | --- 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /D-软件技能/软件&网站MOC.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/D-软件技能/软件&网站MOC.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 BCS1037 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Z-附件/Banner/image1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/Z-附件/Banner/image1.jpg -------------------------------------------------------------------------------- /Z-附件/Banner/image2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/Z-附件/Banner/image2.jpg -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw images/Drawing 2022-10-04 19.45.38.excalidraw.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | excalidraw-plugin: parsed 4 | tags: [excalidraw] 5 | 6 | --- 7 | ==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== 8 | 9 | 10 | %% 11 | # Drawing 12 | ```json 13 | {"type":"excalidraw","version":2,"source":"https://excalidraw.com","elements":[],"appState":{"gridSize":null,"viewBackgroundColor":"#ffffff"}} 14 | ``` 15 | %% -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Add Connector Point.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-bullet-point.jpg) 3 | 4 | This script will add a small circle to the top left of each text element in the selection and add the text and the "bullet point" into a group. 5 | 6 | See documentation for more details: 7 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 8 | 9 | ```javascript 10 | */ 11 | elements = ea.getViewSelectedElements().filter((el)=>el.type==="text"); 12 | ea.copyViewElementsToEAforEditing(elements); 13 | const padding = 10; 14 | elements.forEach((el)=>{ 15 | ea.style.strokeColor = el.strokeColor; 16 | const size = el.fontSize/2; 17 | const ellipseId = ea.addEllipse( 18 | el.x-padding-size, 19 | el.y+size/2, 20 | size, 21 | size 22 | ); 23 | ea.addToGroup([el.id,ellipseId]); 24 | }); 25 | ea.addElementsToView(false,false); -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Add Connector Point.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Add Link to Existing File and Open.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-add-link-and-open.jpg) 3 | 4 | Prompts for a file from the vault. Adds a link to the selected element pointing to the selected file. You can control in settings to open the file in the current active pane or an adjacent pane. 5 | 6 | ```javascript 7 | */ 8 | 9 | if(!ea.verifyMinimumPluginVersion || !ea.verifyMinimumPluginVersion("1.5.21")) { 10 | new Notice("This script requires a newer version of Excalidraw. Please install the latest version."); 11 | return; 12 | } 13 | 14 | settings = ea.getScriptSettings(); 15 | 16 | if(!settings["Open link in active pane"]) { 17 | settings = { 18 | "Open link in active pane": { 19 | value: false, 20 | description: "Open the link in the current active pane (on) or a new pane (off)." 21 | }, 22 | ...settings 23 | }; 24 | ea.setScriptSettings(settings); 25 | } 26 | 27 | const openInCurrentPane = settings["Open link in active pane"].value; 28 | 29 | elements = ea.getViewSelectedElements(); 30 | if(elements.length === 0) { 31 | new Notice("No selected elements"); 32 | return; 33 | } 34 | 35 | const files = app.vault.getFiles() 36 | const filePaths = files.map((f)=>f.path); 37 | file = await utils.suggester(filePaths,files,"Select a file"); 38 | 39 | if(!file) return; 40 | 41 | const link = `[[${app.metadataCache.fileToLinktext(file,ea.targetView.file.path,true)}]]`; 42 | 43 | ea.style.backgroundColor = "transparent"; 44 | ea.style.strokeColor = "rgba(70,130,180,0.05)" 45 | ea.style.strokeWidth = 2; 46 | ea.style.roughness = 0; 47 | 48 | if(elements.length===1 && elements[0].type !== "text") { 49 | ea.copyViewElementsToEAforEditing(elements); 50 | ea.getElements()[0].link = link; 51 | } else { 52 | const b = ea.getBoundingBox(elements); 53 | const id = ea.addEllipse(b.topX+b.width-5, b.topY, 5, 5); 54 | ea.getElement(id).link = link; 55 | ea.copyViewElementsToEAforEditing(elements); 56 | ea.addToGroup(elements.map((e)=>e.id).concat([id])); 57 | } 58 | await ea.addElementsToView(false,true,true); 59 | ea.selectElementsInView(ea.getElements()); 60 | 61 | if(openInCurrentPane) { 62 | app.workspace.openLinkText(file.path,ea.targetView.file.path,false); 63 | return; 64 | } 65 | ea.openFileInNewOrAdjacentLeaf(file); 66 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Add Link to Existing File and Open.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Add Link to New Page and Open.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-add-link-to-new-page-and-pen.jpg) 3 | 4 | Prompts for filename. Offers option to create and open a new Markdown or Excalidraw document. Adds link pointing to the new file, to the selected objects in the drawing. You can control in settings to open the file in the current active pane or an adjacent pane. 5 | 6 | ```javascript 7 | */ 8 | 9 | if(!ea.verifyMinimumPluginVersion || !ea.verifyMinimumPluginVersion("1.6.1")) { 10 | new Notice("This script requires a newer version of Excalidraw. Please install the latest version."); 11 | return; 12 | } 13 | 14 | const BLANK_DRAWING = ["---","","excalidraw-plugin: parsed","","---","==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==","","","%%","# Drawing","\x60\x60\x60json",'{"type":"excalidraw","version":2,"source":"https://excalidraw.com","elements":[],"appState":{"gridSize":null,"viewBackgroundColor":"#ffffff"}}',"\x60\x60\x60","%%"].join("\n"); 15 | 16 | settings = ea.getScriptSettings(); 17 | 18 | if(!settings["Open link in active pane"]) { 19 | settings = { 20 | "Open link in active pane": { 21 | value: false, 22 | description: "Open the link in the current active pane (on) or a new pane (off)." 23 | }, 24 | ...settings 25 | }; 26 | ea.setScriptSettings(settings); 27 | } 28 | 29 | const openInCurrentPane = settings["Open link in active pane"].value; 30 | 31 | elements = ea.getViewSelectedElements(); 32 | if(elements.length === 0) { 33 | new Notice("No selected elements"); 34 | return; 35 | } 36 | 37 | const activeFile = ea.targetView.file; 38 | const prefix = activeFile.basename; 39 | const timestamp = moment(Date.now()).format(ea.plugin.settings.drawingFilenameDateTime); 40 | 41 | let fileType = ""; 42 | const filename = await utils.inputPrompt ( 43 | "Filename for new document", 44 | "", 45 | `${prefix} - ${timestamp}`, 46 | [ 47 | { 48 | caption: "Markdown", 49 | action: ()=>{fileType="md";return;} 50 | }, 51 | { 52 | caption: "Excalidraw", 53 | action: ()=>{fileType="ex";return;} 54 | } 55 | ] 56 | ); 57 | 58 | if(!filename || filename === "") return; 59 | const filepath = activeFile.path.replace(activeFile.name,`${filename}.md`); 60 | 61 | const file = await app.fileManager.createNewMarkdownFileFromLinktext(filepath); 62 | if(file && fileType==="ex") { 63 | await app.vault.modify(file,BLANK_DRAWING); 64 | await new Promise(r => setTimeout(r, 100)); //wait for metadata cache to update, so file opens as excalidraw 65 | } 66 | 67 | const link = `[[${app.metadataCache.fileToLinktext(file,ea.targetView.file.path,true)}]]`; 68 | 69 | ea.style.backgroundColor = "transparent"; 70 | ea.style.strokeColor = "rgba(70,130,180,0.05)" 71 | ea.style.strokeWidth = 2; 72 | ea.style.roughness = 0; 73 | 74 | if(elements.length===1 && elements[0].type !== "text") { 75 | ea.copyViewElementsToEAforEditing(elements); 76 | ea.getElements()[0].link = link; 77 | } else { 78 | const b = ea.getBoundingBox(elements); 79 | const id = ea.addEllipse(b.topX+b.width-5, b.topY, 5, 5); 80 | ea.getElement(id).link = link; 81 | ea.copyViewElementsToEAforEditing(elements); 82 | ea.addToGroup(elements.map((e)=>e.id).concat([id])); 83 | } 84 | await ea.addElementsToView(false,true,true); 85 | ea.selectElementsInView(ea.getElements()); 86 | 87 | if(openInCurrentPane) { 88 | app.workspace.openLinkText(file.path,ea.targetView.file.path,false); 89 | return; 90 | } 91 | ea.openFileInNewOrAdjacentLeaf(file); -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Add Link to New Page and Open.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Box Each Selected Elements.md: -------------------------------------------------------------------------------- 1 | /* 2 | ```javascript 3 | */ 4 | const padding = parseInt (await utils.inputPrompt("padding?","number","10")); 5 | elements = ea.getViewSelectedElements(); 6 | 7 | for(const element of elements) { 8 | const box = ea.getBoundingBox([element]); 9 | color = ea 10 | .getExcalidrawAPI() 11 | .getAppState() 12 | .currentItemStrokeColor; 13 | // jcl added: use current stroke with and style 14 | strokeWidth = ea.getExcalidrawAPI().getAppState().currentItemStrokeWidth; 15 | strokeStyle = ea.getExcalidrawAPI().getAppState().currentItemStrokeStyle; 16 | roughness = ea.getExcalidrawAPI().getAppState().currentItemRoughness; 17 | fillStyle = ea.getExcalidrawAPI().getAppState().currentItemFillStyle; 18 | backgroundColor = ea.getExcalidrawAPI().getAppState().currentItemBackgroundColor; 19 | ea.style.strokeWidth = strokeWidth; 20 | ea.style.strokeStyle = strokeStyle; // NO Working, maybe bug! 21 | ea.style.roughness = roughness; 22 | ea.style.fillStyle = fillStyle; 23 | ea.style.backgroundColor = backgroundColor; 24 | //uncomment for random color: 25 | //color = '#'+(Math.random()*0xFFFFFF<<0).toString(16).padStart(6,"0"); 26 | ea.style.strokeColor = color; 27 | ea.deleteViewElements([element]); // jcl added: First remove the selected object, and then through copyViewElementsToEAforEditing () to add back, this new box will remain below the selected object 28 | id = ea.addRect( 29 | box.topX - padding, 30 | box.topY - padding, 31 | box.width + 2*padding, 32 | box.height + 2*padding 33 | ); 34 | ea.elementsDict[id].strokeStyle=strokeStyle; // jcl added: ea.elementsDict[id] has no strokeStyle but storkeStyle 35 | ea.copyViewElementsToEAforEditing([element]); 36 | ea.addToGroup([id].concat(element.id)); 37 | ea.addElementsToView(false); 38 | } -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Box Each Selected Groups.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Box Selected Elements 1.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-box-elements.jpg) 3 | 4 | This script will add an encapsulating box around the currently selected elements in Excalidraw. 5 | 6 | See documentation for more details: 7 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 8 | 9 | ```javascript 10 | */ 11 | if(!ea.verifyMinimumPluginVersion || !ea.verifyMinimumPluginVersion("1.5.21")) { 12 | new Notice("This script requires a newer version of Excalidraw. Please install the latest version."); 13 | return; 14 | } 15 | settings = ea.getScriptSettings(); 16 | //set default values on first run 17 | if(!settings["Default padding"]) { 18 | settings = { 19 | "Prompt for padding?": true, 20 | "Default padding" : { 21 | value: 10, 22 | description: "Padding between the bounding box of the selected elements, and the box the script creates" 23 | } 24 | }; 25 | ea.setScriptSettings(settings); 26 | } 27 | 28 | let padding = settings["Default padding"].value; 29 | 30 | if(settings["Prompt for padding?"]) { 31 | padding = parseInt (await utils.inputPrompt("padding?","number",padding.toString())); 32 | } 33 | 34 | if(isNaN(padding)) { 35 | new Notice("The padding value provided is not a number"); 36 | return; 37 | } 38 | elements = ea.getViewSelectedElements(); 39 | const box = ea.getBoundingBox(elements); 40 | color = ea 41 | .getExcalidrawAPI() 42 | .getAppState() 43 | .currentItemStrokeColor; 44 | //uncomment for random color: 45 | //color = '#'+(Math.random()*0xFFFFFF<<0).toString(16).padStart(6,"0"); 46 | ea.style.strokeColor = color; 47 | id = ea.addRect( 48 | box.topX - padding, 49 | box.topY - padding, 50 | box.width + 2*padding, 51 | box.height + 2*padding 52 | ); 53 | ea.copyViewElementsToEAforEditing(elements); 54 | ea.addToGroup([id].concat(elements.map((el)=>el.id))); 55 | ea.addElementsToView(false,false); -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Box Selected Elements.md: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) 4 | 5 | Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. 6 | 7 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-box-elements.jpg) 8 | 9 | This script will add an encapsulating box around the currently selected elements in Excalidraw. 10 | 11 | See documentation for more details: 12 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 13 | 14 | ```javascript 15 | */ 16 | //uncomment if you want a prompt for custom padding 17 | 18 | const padding = parseInt (await utils.inputPrompt("padding?","number","10")); 19 | //const padding = 10 20 | elements = ea.getViewSelectedElements(); 21 | const box = ea.getBoundingBox(elements); 22 | color = ea 23 | .getExcalidrawAPI() 24 | .getAppState() 25 | .currentItemStrokeColor; 26 | // jcl added: use current stroke with and style 27 | strokeWidth = ea.getExcalidrawAPI().getAppState().currentItemStrokeWidth; 28 | strokeStyle = ea.getExcalidrawAPI().getAppState().currentItemStrokeStyle; 29 | roughness = ea.getExcalidrawAPI().getAppState().currentItemRoughness; 30 | fillStyle = ea.getExcalidrawAPI().getAppState().currentItemFillStyle; 31 | backgroundColor = ea.getExcalidrawAPI().getAppState().currentItemBackgroundColor; 32 | ea.style.strokeWidth = strokeWidth; 33 | ea.style.strokeStyle=strokeStyle; // NO Working 34 | ea.style.roughness = roughness; 35 | ea.style.fillStyle = fillStyle; 36 | ea.style.backgroundColor = backgroundColor; 37 | //uncomment for random color: 38 | //color = '#'+(Math.random()*0xFFFFFF<<0).toString(16).padStart(6,"0"); 39 | ea.style.strokeColor = color; 40 | ea.deleteViewElements(elements); // jcl added: First remove the selected object, and then through copyViewElementsToEAforEditing () to add back, this new box will remain below the selected object 41 | id = ea.addRect( 42 | box.topX - padding, 43 | box.topY - padding, 44 | box.width + 2*padding, 45 | box.height + 2*padding 46 | ); 47 | ea.elementsDict[id].strokeStyle=strokeStyle; // jcl added: ea.elementsDict[id] has no strokeStyle but storkeStyle 48 | ea.copyViewElementsToEAforEditing(elements); 49 | ea.addToGroup([id].concat(elements.map((el)=>el.id))); 50 | ea.addElementsToView(false); 51 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Box Selected Elements.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Bullet Point.md: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) 4 | 5 | Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. 6 | 7 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-bullet-point.jpg) 8 | 9 | This script will add a small circle to the top left of each text element in the selection and add the text and the "bullet point" into a group. 10 | 11 | See documentation for more details: 12 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 13 | 14 | ```javascript 15 | */ 16 | elements = ea.getViewSelectedElements().filter((el)=>el.type==="text"); 17 | ea.copyViewElementsToEAforEditing(elements); 18 | const padding = 10; 19 | elements.forEach((el)=>{ 20 | ea.style.strokeColor = el.strokeColor; 21 | const size = el.fontSize/2; 22 | const ellipseId = ea.addEllipse( 23 | el.x-padding-size, 24 | el.y+size/2, 25 | size, 26 | size 27 | ); 28 | ea.addToGroup([el.id,ellipseId]); 29 | }); 30 | ea.addElementsToView(); -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Change shape of selected elements.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-change-shape.jpg) 3 | 4 | The script allows you to change the shape of selected Rectangles, Diamonds and Ellipses. 5 | 6 | ```javascript 7 | */ 8 | const boxShapesDispaly=["○ ellipse","□ rectangle","◇ diamond"]; 9 | const boxShapes=["ellipse","rectangle","diamond"]; 10 | const lineShapesDispaly=["- line","⭢ arrow"]; 11 | const lineShapes=["line","arrow"]; 12 | 13 | let editedElements = []; 14 | 15 | let elements = ea.getViewSelectedElements().filter(el=>boxShapes.contains(el.type)); 16 | if (elements.length>0) { 17 | newShape = await utils.suggester(boxShapesDispaly, boxShapes, "Change shape of 'box' type elements in selection"); 18 | if(newShape) { 19 | editedElements = elements; 20 | elements.forEach(el=>el.type = newShape); 21 | } 22 | } 23 | 24 | elements = ea.getViewSelectedElements().filter(el=>lineShapes.contains(el.type)); 25 | if (elements.length>0) { 26 | newShape = await utils.suggester(lineShapesDispaly, lineShapes, "Change shape of 'line' type elements in selection"); 27 | if(newShape) { 28 | editedElements = editedElements.concat(elements); 29 | elements.forEach((el)=>{ 30 | el.type = newShape; 31 | if(newShape === "arrow") { 32 | el.endArrowhead = "triangle"; 33 | } 34 | }); 35 | } 36 | } 37 | 38 | ea.copyViewElementsToEAforEditing(editedElements); 39 | 40 | ea.addElementsToView(false,false); -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Change shape of selected elements.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Connect elements 1.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-connect-elements.jpg) 3 | 4 | This script will connect two objects with an arrow. If either of the objects are a set of grouped elements (e.g. a text element grouped with an encapsulating rectangle), the script will identify these groups, and connect the arrow to the largest object in the group (assuming you want to connect the arrow to the box around the text element). 5 | 6 | See documentation for more details: 7 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 8 | 9 | ```javascript 10 | */ 11 | if(!ea.verifyMinimumPluginVersion || !ea.verifyMinimumPluginVersion("1.5.21")) { 12 | new Notice("This script requires a newer version of Excalidraw. Please install the latest version."); 13 | return; 14 | } 15 | 16 | settings = ea.getScriptSettings(); 17 | //set default values on first run 18 | if(!settings["Starting arrowhead"]) { 19 | settings = { 20 | "Starting arrowhead" : { 21 | value: "none", 22 | valueset: ["none","arrow","triangle","bar","dot"] 23 | }, 24 | "Ending arrowhead" : { 25 | value: "triangle", 26 | valueset: ["none","arrow","triangle","bar","dot"] 27 | }, 28 | "Line points" : { 29 | value: 1, 30 | description: "Number of line points between start and end" 31 | } 32 | }; 33 | ea.setScriptSettings(settings); 34 | } 35 | 36 | const arrowStart = settings["Starting arrowhead"].value === "none" ? null : settings["Starting arrowhead"].value; 37 | const arrowEnd = settings["Ending arrowhead"].value === "none" ? null : settings["Ending arrowhead"].value; 38 | const linePoints = Math.floor(settings["Line points"].value); 39 | 40 | 41 | 42 | const elements = ea.getViewSelectedElements(); 43 | ea.copyViewElementsToEAforEditing(elements); 44 | groups = ea.getMaximumGroups(elements); 45 | if(groups.length !== 2) { 46 | //unfortunately getMaxGroups returns duplicated resultset for sticky notes 47 | //needs additional filtering 48 | cleanGroups=[]; 49 | idList = []; 50 | for (group of groups) { 51 | keep = true; 52 | for(item of group) if(idList.contains(item.id)) keep = false; 53 | if(keep) { 54 | cleanGroups.push(group); 55 | idList = idList.concat(group.map(el=>el.id)) 56 | } 57 | } 58 | if(cleanGroups.length !== 2) return; 59 | groups = cleanGroups; 60 | } 61 | els = [ 62 | ea.getLargestElement(groups[0]), 63 | ea.getLargestElement(groups[1]) 64 | ]; 65 | 66 | ea.style.strokeColor = els[0].strokeColor; 67 | ea.style.strokeWidth = els[0].strokeWidth; 68 | ea.style.strokeStyle = els[0].strokeStyle; 69 | ea.style.strokeSharpness = els[0].strokeSharpness; 70 | ea.connectObjects( 71 | els[0].id, 72 | null, 73 | els[1].id, 74 | null, 75 | { 76 | endArrowHead: arrowEnd, 77 | startArrowHead: arrowStart, 78 | numberOfPoints: linePoints 79 | } 80 | ); 81 | ea.addElementsToView(false,false,true); -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Connect elements.md: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) 4 | 5 | Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. 6 | 7 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-connect-elements.jpg) 8 | 9 | This script will connect two objects with an arrow. If either of the objects are a set of grouped elements (e.g. a text element grouped with an encapsulating rectangle), the script will identify these groups, and connect the arrow to the largest object in the group (assuming you want to connect the arrow to the box around the text element). 10 | 11 | See documentation for more details: 12 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 13 | 14 | ```javascript 15 | */ 16 | const elements = ea.getViewSelectedElements(); 17 | ea.copyViewElementsToEAforEditing(elements); 18 | const groups = ea.getMaximumGroups(elements); 19 | if(groups.length !== 2) return; 20 | els = [ 21 | ea.getLargestElement(groups[0]), 22 | ea.getLargestElement(groups[1]) 23 | ]; 24 | ea.connectObjects( 25 | els[0].id, 26 | null, 27 | els[1].id, 28 | null, 29 | { 30 | endArrowHead: "triangle", 31 | startArrowHead: "dot", 32 | numberOfPoints: 2 33 | } 34 | ); 35 | ea.addElementsToView(); -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Connect elements.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Convert freedraw to line.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-convert-freedraw-to-line.jpg) 3 | 4 | Convert selected freedraw objects into editable lines. This will allow you to adjust your drawings by dragging line points and will also allow you to select shape fill in case of enclosed lines. You can adjust conversion point density in settings. 5 | 6 | ```javascript 7 | */ 8 | 9 | if(!ea.verifyMinimumPluginVersion || !ea.verifyMinimumPluginVersion("1.5.21")) { 10 | new Notice("This script requires a newer version of Excalidraw. Please install the latest version."); 11 | return; 12 | } 13 | 14 | settings = ea.getScriptSettings(); 15 | //set default values on first run 16 | if(!settings["Point density"]) { 17 | settings = { 18 | "Point density" : { 19 | value: "7:1", 20 | valueset: ["1:1","2:1","3:1","4:1","5:1","6:1","7:1","8:1","9:1","10:1","11:1"], 21 | description: "A freedraw object has many points. Converting freedraw to a line with too many points will result in an impractical object that is hard to edit. This setting sepcifies how many points from freedraw should be averaged to form a point on the line" 22 | }, 23 | }; 24 | ea.setScriptSettings(settings); 25 | } 26 | 27 | const scale = settings["Point density"].value; 28 | const setSize = parseInt(scale.substring(0,scale.indexOf(":"))); 29 | 30 | const elements = ea.getViewSelectedElements().filter(el=>el.type==="freedraw"); 31 | if(elements.length === 0) { 32 | new Notice("No freedraw object is selected"); 33 | } 34 | 35 | 36 | ea.style.roughness=0; 37 | ea.style.strokeSharpness="round"; 38 | 39 | elements.forEach((el)=>{ 40 | points = []; 41 | points.push(el.points[0]); 42 | for(i=1;i -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Convert selected text elements to sticky notes.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-textelement-to-transparent-stickynote.png) 3 | 4 | Converts selected plain text elements to sticky notes with transparent background and transparent stroke color. Essentially converts text element into a wrappable format. 5 | 6 | ```javascript 7 | */ 8 | if(!ea.verifyMinimumPluginVersion || !ea.verifyMinimumPluginVersion("1.5.21")) { 9 | new Notice("This script requires a newer version of Excalidraw. Please install the latest version."); 10 | return; 11 | } 12 | 13 | settings = ea.getScriptSettings(); 14 | //set default values on first run 15 | if(!settings["Border color"]) { 16 | settings = { 17 | "Border color" : { 18 | value: "#000000", 19 | description: "Any legal HTML color (#000000, rgb, color-name, etc.). Set to 'transparent' for transparent color." 20 | }, 21 | "Background color" : { 22 | value: "transparent", 23 | description: "Background color of the sticky note. Set to 'transparent' for transparent color." 24 | }, 25 | "Background fill style" : { 26 | value: "solid", 27 | description: "Fill style of the sticky note", 28 | valueset: ["hachure","cross-hatch","solid"] 29 | } 30 | }; 31 | ea.setScriptSettings(settings); 32 | } 33 | 34 | const strokeColor = settings["Border color"].value; 35 | const backgroundColor = settings["Background color"].value; 36 | const fillStyle = settings["Background fill style"].value; 37 | 38 | elements = ea.getViewSelectedElements() 39 | .filter((el)=>(el.type==="text")&&(el.containerId===null)); 40 | if(elements.length===0) return; 41 | ea.style.strokeColor = strokeColor; 42 | ea.style.backgroundColor = backgroundColor; 43 | ea.style.fillStyle = fillStyle; 44 | const padding = 6; 45 | let boxes = []; 46 | elements.forEach((el)=>{ 47 | const id = ea.addRect(el.x-padding,el.y-padding,el.width+2*padding,el.height+2*padding); 48 | boxes.push(id); 49 | ea.getElement(id).boundElements=[{type:"text",id:el.id}]; 50 | el.containerId = id; 51 | }); 52 | ea.copyViewElementsToEAforEditing(elements); 53 | await ea.addElementsToView(false,false); 54 | ea.selectElementsInView(ea.getViewElements().filter(el=>boxes.includes(el.id))); 55 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Convert selected text elements to sticky notes.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Convert text to link with folder and alias.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) 3 | 4 | Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. 5 | 6 | Converts text elements to links pointing to a file in a selected folder and with the alias set as the original text. The script will prompt the user to select an existing folder from the vault. 7 | `original text` => `[[selected folder/original text|original text]]` 8 | 9 | See documentation for more details: 10 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 11 | 12 | ```javascript 13 | */ 14 | folders = new Set(); 15 | app.vault.getFiles().forEach((f)=> 16 | folders.add(f.path.substring(0,f.path.lastIndexOf("/"))) 17 | ); 18 | 19 | f = Array.from(folders); 20 | folder = await utils.suggester(f,f); 21 | folder = folder??""; //if exiting suggester with ESC 22 | folder = folder === "" ? folder : folder + "/"; 23 | 24 | elements = ea.getViewSelectedElements().filter((el)=>el.type==="text"); 25 | 26 | elements.forEach((el)=>{ 27 | el.rawText = "[["+folder+el.rawText+"|"+el.rawText+"]]"; 28 | el.text = "[["+folder+el.text+"|"+el.text+"]]"; 29 | el.originalText = "[["+folder+el.originalText+"|"+el.originalText+"]]"; 30 | }) 31 | ea.copyViewElementsToEAforEditing(elements); 32 | ea.addElementsToView(); -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Convert text to link with folder and alias.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Copy Selected Element Styles to Global.md: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) 4 | 5 | Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. 6 | 7 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-copy-selected-element-styles-to-global.png) 8 | 9 | This script will copy styles of any selected element into Excalidraw's global styles. 10 | 11 | After copying the styles of element such as box, text, or arrow using this script, You can then use Excalidraw's box, arrow, and other tools to create several elements with the same style. This is sometimes more convenient than `Copy Styles` and `Paste Styles`, especially when used with the script `Box Each Selected Groups`. 12 | 13 | See documentation for more details: 14 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 15 | 16 | ```javascript 17 | */ 18 | 19 | const element = ea.getViewSelectedElement(); 20 | const appState = ea.getExcalidrawAPI().getAppState(); 21 | 22 | if(!element) { 23 | return; 24 | } 25 | 26 | appState.currentItemStrokeWidth = element.strokeWidth; 27 | appState.currentItemStrokeStyle = element.strokeStyle; 28 | appState.currentItemStrokeSharpness = element.strokeSharpness; 29 | appState.currentItemRoughness = element.roughness; 30 | appState.currentItemFillStyle = element.fillStyle; 31 | appState.currentItemBackgroundColor = element.backgroundColor; 32 | appState.currentItemStrokeColor = element.strokeColor; 33 | 34 | if(element.type === 'text') { 35 | appState.currentItemFontFamily = element.fontFamily; 36 | appState.currentItemFontSize = element.fontSize; 37 | appState.currentItemTextAlign = element.textAlign; 38 | } 39 | 40 | if(element.type === 'arrow') { 41 | appState.currentItemStartArrowhead = element.startArrowhead; 42 | appState.currentItemEndArrowhead = element.endArrowhead; 43 | } 44 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Copy Selected Element Styles to Global.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Create new markdown file and embed into active drawing.md: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) 4 | 5 | Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. 6 | 7 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-create-and-embed-new-markdown-file.jpg) 8 | 9 | The script will prompt you for a filename, then create a new markdown document with the file name provided, open the new markdown document in an adjacent pane, and embed the markdown document into the active Excalidraw drawing. 10 | 11 | See documentation for more details: 12 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 13 | 14 | ```javascript 15 | */ 16 | let folder = ea.targetView.file.path; 17 | folder = folder.lastIndexOf("/")===-1?"":folder.substring(0,folder.lastIndexOf("/"))+"/"; 18 | const fname = await utils.inputPrompt("Filename for new file","Filename",folder); 19 | const file = await app.fileManager.createAndOpenMarkdownFile(fname,true); 20 | await ea.addImage(0,0,file); 21 | ea.addElementsToView(true,true); 22 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Create new markdown file and embed into active drawing.svg: -------------------------------------------------------------------------------- 1 | MD -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Darken background color.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Dimensions.md: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) 4 | 5 | Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. 6 | 7 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-dimensions.jpg) 8 | 9 | Currently there is no way to specify the exact location and size of objects in Excalidraw. You can bridge this gap with the following simple script. 10 | 11 | See documentation for more details: 12 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 13 | 14 | ```javascript 15 | */ 16 | const elements = ea.getViewSelectedElements(); 17 | if(elements.length === 0) return; 18 | const el = ea.getLargestElement(elements); 19 | const sizeIn = [el.x,el.y,el.width,el.height].join(","); 20 | let res = await utils.inputPrompt("x,y,width,height?",null,sizeIn); 21 | res = res.split(","); 22 | if(res.length !== 4) return; 23 | let size = []; 24 | for (v of res) { 25 | const i = parseInt(v); 26 | if(isNaN(i)) return; 27 | size.push(i); 28 | } 29 | el.x = size[0]; 30 | el.y = size[1]; 31 | el.width = size[2]; 32 | el.height = size[3]; 33 | ea.copyViewElementsToEAforEditing([el]); 34 | ea.addElementsToView(); -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Elbow connectors.md: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) 4 | 5 | Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. 6 | 7 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/elbow-connectors.png) 8 | 9 | This script converts the selected connectors to elbows. 10 | 11 | See documentation for more details: 12 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 13 | 14 | ```javascript 15 | */ 16 | const elements = ea.getViewSelectedElements(); 17 | 18 | const lines = elements.filter((el)=>el.type==="arrow" || el.type==="line"); 19 | 20 | for (const line of lines) { 21 | if (line.points.length >= 3) { 22 | for (var i = 0; i < line.points.length - 2; i++) { 23 | var p1; 24 | var p3; 25 | if (line.points[i][0] < line.points[i + 2][0]) { 26 | p1 = line.points[i]; 27 | p3 = line.points[i+2]; 28 | } else { 29 | p1 = line.points[i + 2]; 30 | p3 = line.points[i]; 31 | } 32 | const p2 = line.points[i + 1]; 33 | 34 | if (p1[0] === p3[0]) { 35 | continue; 36 | } 37 | 38 | const k = (p3[1] - p1[1]) / (p3[0] - p1[0]); 39 | const b = p1[1] - k * p1[0]; 40 | 41 | y0 = k * p2[0] + b; 42 | const up = p2[1] < y0; 43 | 44 | if ((k > 0 && !up) || (k < 0 && up)) { 45 | p2[0] = p1[0]; 46 | p2[1] = p3[1]; 47 | } else { 48 | p2[0] = p3[0]; 49 | p2[1] = p1[1]; 50 | } 51 | } 52 | } 53 | } 54 | 55 | ea.copyViewElementsToEAforEditing(lines); 56 | await ea.addElementsToView(false,false); 57 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Elbow connectors.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Expand rectangles horizontally keep text centered.svg: -------------------------------------------------------------------------------- 1 | testtesttesttesttesttest -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Expand rectangles horizontally.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Expand rectangles vertically keep text centered.svg: -------------------------------------------------------------------------------- 1 | testtesttesttesttesttest -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Expand rectangles vertically.svg: -------------------------------------------------------------------------------- 1 | testtesttesttesttesttest -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Fixed horizontal distance between centers.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) 3 | 4 | Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. 5 | 6 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-fixed-horizontal-distance-between-centers.png) 7 | 8 | This script arranges the selected elements horizontally with a fixed center spacing. 9 | 10 | See documentation for more details: 11 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 12 | 13 | ```javascript 14 | */ 15 | if(!ea.verifyMinimumPluginVersion || !ea.verifyMinimumPluginVersion("1.5.21")) { 16 | new Notice("This script requires a newer version of Excalidraw. Please install the latest version."); 17 | return; 18 | } 19 | settings = ea.getScriptSettings(); 20 | //set default values on first run 21 | if(!settings["Default distance"]) { 22 | settings = { 23 | "Prompt for distance?": true, 24 | "Default distance" : { 25 | value: 10, 26 | description: "Fixed horizontal distance between centers" 27 | }, 28 | "Remember last distance?": false 29 | }; 30 | ea.setScriptSettings(settings); 31 | } 32 | 33 | let distanceStr = settings["Default distance"].value.toString(); 34 | const rememberLastDistance = settings["Remember last distance?"]; 35 | 36 | if(settings["Prompt for distance?"]) { 37 | distanceStr = await utils.inputPrompt("distance?","number",distanceStr); 38 | } 39 | 40 | const distance = parseInt(distanceStr); 41 | if(isNaN(distance)) { 42 | return; 43 | } 44 | if(rememberLastDistance) { 45 | settings["Default distance"].value = distance; 46 | ea.setScriptSettings(settings); 47 | } 48 | const elements=ea.getViewSelectedElements(); 49 | const topGroups = ea.getMaximumGroups(elements) 50 | .filter(els => !(els.length === 1 && els[0].type ==="arrow")) // ignore individual arrows 51 | .filter(els => !(els.length === 1 && (els[0].containerId))); // ignore text in stickynote 52 | 53 | const groups = topGroups.sort((lha,rha) => lha[0].x - rha[0].x); 54 | 55 | for(var i=0; i 0) { 57 | const preGroup = groups[i-1]; 58 | const curGroup = groups[i]; 59 | 60 | const preLeft = Math.min(...preGroup.map(el => el.x)); 61 | const preRight = Math.max(...preGroup.map(el => el.x + el.width)); 62 | const preCenter = preLeft + (preRight - preLeft) / 2; 63 | const curLeft = Math.min(...curGroup.map(el => el.x)); 64 | const curRight = Math.max(...curGroup.map(el => el.x + el.width)); 65 | const curCenter = curLeft + (curRight - curLeft) / 2; 66 | const distanceBetweenCenters = curCenter - preCenter - distance; 67 | 68 | for(const curEl of curGroup) { 69 | curEl.x = curEl.x - distanceBetweenCenters; 70 | } 71 | } 72 | } 73 | ea.copyViewElementsToEAforEditing(elements); 74 | await ea.addElementsToView(false, false); 75 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Fixed inner distance.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Fixed spacing.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) 3 | 4 | Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. 5 | 6 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-fix-space-demo.png) 7 | 8 | The script arranges the selected elements horizontally with a fixed spacing. 9 | 10 | When we create an architecture diagram or mind map, we often need to arrange a large number of elements in a fixed spacing. `Fixed spacing` and `Fixed vertical Distance` scripts can save us a lot of time. 11 | 12 | ```javascript 13 | */ 14 | if(!ea.verifyMinimumPluginVersion || !ea.verifyMinimumPluginVersion("1.5.21")) { 15 | new Notice("This script requires a newer version of Excalidraw. Please install the latest version."); 16 | return; 17 | } 18 | settings = ea.getScriptSettings(); 19 | //set default values on first run 20 | if(!settings["Default spacing"]) { 21 | settings = { 22 | "Prompt for spacing?": true, 23 | "Default spacing" : { 24 | value: 10, 25 | description: "Fixed horizontal spacing between elements" 26 | }, 27 | "Remember last spacing?": false 28 | }; 29 | ea.setScriptSettings(settings); 30 | } 31 | 32 | let spacingStr = settings["Default spacing"].value.toString(); 33 | const rememberLastSpacing = settings["Remember last spacing?"]; 34 | 35 | if(settings["Prompt for spacing?"]) { 36 | spacingStr = await utils.inputPrompt("spacing?","number",spacingStr); 37 | } 38 | 39 | const spacing = parseInt(spacingStr); 40 | if(isNaN(spacing)) { 41 | return; 42 | } 43 | if(rememberLastSpacing) { 44 | settings["Default spacing"].value = spacing; 45 | ea.setScriptSettings(settings); 46 | } 47 | const elements=ea.getViewSelectedElements(); 48 | const topGroups = ea.getMaximumGroups(elements) 49 | .filter(els => !(els.length === 1 && els[0].type ==="arrow")) // ignore individual arrows 50 | .filter(els => !(els.length === 1 && (els[0].containerId))); // ignore text in stickynote 51 | 52 | const groups = topGroups.sort((lha,rha) => lha[0].x - rha[0].x); 53 | 54 | for(var i=0; i 0) { 56 | const preGroup = groups[i-1]; 57 | const curGroup = groups[i]; 58 | 59 | const preRight = Math.max(...preGroup.map(el => el.x + el.width)); 60 | const curLeft = Math.min(...curGroup.map(el => el.x)); 61 | const distance = curLeft - preRight - spacing; 62 | 63 | for(const curEl of curGroup) { 64 | curEl.x = curEl.x - distance; 65 | } 66 | } 67 | } 68 | ea.copyViewElementsToEAforEditing(elements); 69 | await ea.addElementsToView(false, false); 70 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Fixed spacing.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Fixed vertical distance between centers.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) 3 | 4 | Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. 5 | 6 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-fixed-vertical-distance-between-centers.png) 7 | 8 | This script arranges the selected elements vertically with a fixed center spacing. 9 | 10 | See documentation for more details: 11 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 12 | 13 | ```javascript 14 | */ 15 | if(!ea.verifyMinimumPluginVersion || !ea.verifyMinimumPluginVersion("1.5.21")) { 16 | new Notice("This script requires a newer version of Excalidraw. Please install the latest version."); 17 | return; 18 | } 19 | 20 | settings = ea.getScriptSettings(); 21 | //set default values on first run 22 | if(!settings["Default distance"]) { 23 | settings = { 24 | "Prompt for distance?": true, 25 | "Default distance" : { 26 | value: 10, 27 | description: "Fixed vertical distance between centers" 28 | }, 29 | "Remember last distance?": false 30 | }; 31 | ea.setScriptSettings(settings); 32 | } 33 | 34 | let distanceStr = settings["Default distance"].value.toString(); 35 | const rememberLastDistance = settings["Remember last distance?"]; 36 | 37 | if(settings["Prompt for distance?"]) { 38 | distanceStr = await utils.inputPrompt("distance?","number",distanceStr); 39 | } 40 | 41 | const distance = parseInt(distanceStr); 42 | if(isNaN(distance)) { 43 | return; 44 | } 45 | if(rememberLastDistance) { 46 | settings["Default distance"].value = distance; 47 | ea.setScriptSettings(settings); 48 | } 49 | const elements=ea.getViewSelectedElements(); 50 | const topGroups = ea.getMaximumGroups(elements) 51 | .filter(els => !(els.length === 1 && els[0].type ==="arrow")) // ignore individual arrows 52 | .filter(els => !(els.length === 1 && (els[0].containerId))); // ignore text in stickynote 53 | 54 | const groups = topGroups.sort((lha,rha) => lha[0].y - rha[0].y); 55 | 56 | for(var i=0; i 0) { 58 | const preGroup = groups[i-1]; 59 | const curGroup = groups[i]; 60 | 61 | const preTop = Math.min(...preGroup.map(el => el.y)); 62 | const preBottom = Math.max(...preGroup.map(el => el.y + el.height)); 63 | const preCenter = preTop + (preBottom - preTop) / 2; 64 | const curTop = Math.min(...curGroup.map(el => el.y)); 65 | const curBottom = Math.max(...curGroup.map(el => el.y + el.height)); 66 | const curCenter = curTop + (curBottom - curTop) / 2; 67 | const distanceBetweenCenters = curCenter - preCenter - distance; 68 | 69 | for(const curEl of curGroup) { 70 | curEl.y = curEl.y - distanceBetweenCenters; 71 | } 72 | } 73 | } 74 | 75 | ea.copyViewElementsToEAforEditing(elements); 76 | await ea.addElementsToView(false, false); -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Fixed vertical distance.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) 3 | 4 | Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. 5 | 6 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-fixed-vertical-distance.png) 7 | 8 | The script arranges the selected elements vertically with a fixed spacing. 9 | 10 | When we create an architecture diagram or mind map, we often need to arrange a large number of elements in a fixed spacing. `Fixed spacing` and `Fixed vertical Distance` scripts can save us a lot of time. 11 | 12 | ```javascript 13 | */ 14 | if(!ea.verifyMinimumPluginVersion || !ea.verifyMinimumPluginVersion("1.5.21")) { 15 | new Notice("This script requires a newer version of Excalidraw. Please install the latest version."); 16 | return; 17 | } 18 | settings = ea.getScriptSettings(); 19 | //set default values on first run 20 | if(!settings["Default spacing"]) { 21 | settings = { 22 | "Prompt for spacing?": true, 23 | "Default spacing" : { 24 | value: 10, 25 | description: "Fixed vertical spacing between elements" 26 | }, 27 | "Remember last spacing?": false 28 | }; 29 | ea.setScriptSettings(settings); 30 | } 31 | 32 | let spacingStr = settings["Default spacing"].value.toString(); 33 | const rememberLastSpacing = settings["Remember last spacing?"]; 34 | 35 | if(settings["Prompt for spacing?"]) { 36 | spacingStr = await utils.inputPrompt("spacing?","number",spacingStr); 37 | } 38 | 39 | const spacing = parseInt(spacingStr); 40 | if(isNaN(spacing)) { 41 | return; 42 | } 43 | if(rememberLastSpacing) { 44 | settings["Default spacing"].value = spacing; 45 | ea.setScriptSettings(settings); 46 | } 47 | const elements=ea.getViewSelectedElements(); 48 | const topGroups = ea.getMaximumGroups(elements) 49 | .filter(els => !(els.length === 1 && els[0].type ==="arrow")) // ignore individual arrows 50 | .filter(els => !(els.length === 1 && (els[0].containerId))); // ignore text in stickynote 51 | 52 | const groups = topGroups.sort((lha,rha) => lha[0].y - rha[0].y); 53 | 54 | for(var i=0; i 0) { 56 | const preGroup = groups[i-1]; 57 | const curGroup = groups[i]; 58 | 59 | const preBottom = Math.max(...preGroup.map(el => el.y + el.height)); 60 | const curTop = Math.min(...curGroup.map(el => el.y)); 61 | const distance = curTop - preBottom - spacing; 62 | 63 | for(const curEl of curGroup) { 64 | curEl.y = curEl.y - distance; 65 | } 66 | } 67 | } 68 | ea.copyViewElementsToEAforEditing(elements); 69 | await ea.addElementsToView(false, false); 70 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Fixed vertical distance.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Font Family.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) 3 | 4 | Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. 5 | 6 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-font-family.jpg) 7 | 8 | Sets font family of the text block (Virgil, Helvetica, Cascadia). Useful if you want to set a keyboard shortcut for selecting font family. 9 | 10 | See documentation for more details: 11 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 12 | 13 | ```javascript 14 | */ 15 | elements = ea.getViewSelectedElements().filter((el)=>el.type==="text"); 16 | if(elements.length===0) return; 17 | let font = ["Virgil","Helvetica","Cascadia"]; 18 | font = parseInt(await utils.suggester(font,["1","2","3"])); 19 | if (isNaN(font)) return; 20 | elements.forEach((el)=>el.fontFamily = font); 21 | ea.copyViewElementsToEAforEditing(elements); 22 | ea.addElementsToView(); -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Grid.md: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) 4 | 5 | Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. 6 | 7 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-grid.jpg) 8 | 9 | The default grid size in Excalidraw is 20. Currently there is no way to change the grid size via the user interface. This script offers a way to bridge this gap. 10 | 11 | See documentation for more details: 12 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 13 | 14 | ```javascript 15 | */ 16 | const grid = parseInt(await utils.inputPrompt("Grid size?",null,"10")); 17 | if(isNaN(grid)) return; //this is to avoid passing an illegal value to Excalidraw 18 | const api = ea.getExcalidrawAPI(); 19 | let appState = api.getAppState(); 20 | appState.gridSize = grid; 21 | api.updateScene({ 22 | appState, 23 | commitToHistory:false 24 | }); -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Lighten background color.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Modify background color opacity.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) 3 | 4 | Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. 5 | 6 | This script changes the opacity of the background color of the selected boxes. 7 | 8 | The default background color in Excalidraw is so dark that the text is hard to read. You can lighten the color a bit by setting transparency. And you can tweak the transparency over and over again until you're happy with it. 9 | 10 | Although excalidraw has the opacity option in its native property Settings, it also changes the transparency of the border. Use this script to change only the opacity of the background color without affecting the border. 11 | 12 | ```javascript 13 | */ 14 | const alpha = parseFloat(await utils.inputPrompt("Background color opacity?","number","0.6")); 15 | const elements=ea.getViewSelectedElements(); 16 | ea.copyViewElementsToEAforEditing(elements); 17 | ea.getElements().forEach((el)=>{ 18 | const rgbColor = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(el.backgroundColor); 19 | if(rgbColor) { 20 | const r = parseInt(rgbColor[1], 16); 21 | const g = parseInt(rgbColor[2], 16); 22 | const b = parseInt(rgbColor[3], 16); 23 | el.backgroundColor=`rgba(${r},${g},${b},${alpha})`; 24 | } 25 | else { 26 | const rgbaColor = /^rgba\((\d+,\d+,\d+,)(\d*\.?\d*)\)$/i.exec(el.backgroundColor); 27 | if(rgbaColor) { 28 | el.backgroundColor=`rgba(${rgbaColor[1]}${alpha})`; 29 | } 30 | } 31 | }); 32 | ea.addElementsToView(); -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Modify background color opacity.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Modify stroke width of selected elements.md: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) 4 | 5 | Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. 6 | 7 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-stroke-width.jpg) 8 | 9 | This script will set the stroke width of selected elements. This is helpful, for example, when you scale freedraw sketches and want to reduce or increase their line width. 10 | 11 | See documentation for more details: 12 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 13 | 14 | ```javascript 15 | */ 16 | let width = (ea.getViewSelectedElement().strokeWidth??1).toString(); 17 | width = await utils.inputPrompt("Width?","number",width); 18 | const elements=ea.getViewSelectedElements(); 19 | ea.copyViewElementsToEAforEditing(elements); 20 | ea.getElements().forEach((el)=>el.strokeWidth=width); 21 | ea.addElementsToView(); 22 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Normalize Selected Arrows.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/OCR - Optical Character Recognition.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Organic Line.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-organic-line.jpg) 3 | 4 | Converts selected freedraw lines such that pencil pressure will decrease from maximum to minimum from the beginning of the line to its end. The resulting line is placed at the back of the layers, under all other items. Helpful when drawing organic mindmaps. 5 | 6 | ```javascript 7 | */ 8 | let elements = ea.getViewSelectedElements().filter((el)=>["freedraw","line","arrow"].includes(el.type)); 9 | if(elements.length === 0) { 10 | elements = ea.getViewSelectedElements(); 11 | const len = elements.length; 12 | if(len === 0 || ["freedraw","line","arrow"].includes(elements[len].type)) { 13 | return; 14 | } 15 | elements = [elements[len]]; 16 | } 17 | elements.forEach((el)=>{ 18 | el.simulatePressure = false; 19 | el.type = "freedraw"; 20 | el.pressures = []; 21 | const len = el.points.length; 22 | for(i=0;iea.moveViewElementToZIndex(el.id,0)); -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Repeat Elements.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Reverse arrows 1.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) 3 | 4 | Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. 5 | 6 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-reverse-arrow.jpg) 7 | 8 | Reverse the direction of **arrows** within the scope of selected elements. 9 | 10 | See documentation for more details: 11 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 12 | 13 | ```javascript 14 | */ 15 | elements = ea.getViewSelectedElements().filter((el)=>el.type==="arrow"); 16 | if(!elements || elements.length===0) return; 17 | elements.forEach((el)=>{ 18 | const start = el.startArrowhead; 19 | el.startArrowhead = el.endArrowhead; 20 | el.endArrowhead = start; 21 | }); 22 | ea.copyViewElementsToEAforEditing(elements); 23 | ea.addElementsToView(false,false); -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Reverse arrows.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) 3 | 4 | Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. 5 | 6 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-reverse-arrow.jpg) 7 | 8 | Reverse the direction of **arrows** within the scope of selected elements. 9 | 10 | See documentation for more details: 11 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 12 | 13 | ```javascript 14 | */ 15 | elements = ea.getViewSelectedElements().filter((el)=>el.type==="arrow"); 16 | if(!elements || elements.length===0) return; 17 | elements.forEach((el)=>{ 18 | const start = el.startArrowhead; 19 | el.startArrowhead = el.endArrowhead; 20 | el.endArrowhead = start; 21 | }); 22 | ea.copyViewElementsToEAforEditing(elements); 23 | ea.addElementsToView(); -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Reverse arrows.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Scribble Helper.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-scribble-helper.jpg) 3 | 4 | iOS scribble helper for better handwriting experience with text elements. If no elements are selected then the creates a text element at pointer position and you can use the edit box to modify the text with scribble. If a text element is selected then opens the input prompt where you can modify this text with scribble. 5 | 6 | ```javascript 7 | */ 8 | 9 | 10 | elements = ea.getViewSelectedElements().filter(el=>el.type==="text"); 11 | if(elements.length > 1) { 12 | new Notice ("Select only 1 or 0 text elements.") 13 | return; 14 | } 15 | 16 | const text = await utils.inputPrompt("Edit text","",(elements.length === 1)?elements[0].rawText:""); 17 | if(!text) return; 18 | 19 | if(elements.length === 1) { 20 | ea.copyViewElementsToEAforEditing(elements); 21 | ea.getElements()[0].originalText = text; 22 | ea.getElements()[0].text = text; 23 | ea.getElements()[0].rawText = text; 24 | await ea.addElementsToView(false,false); 25 | return; 26 | } 27 | 28 | ea.addText(0,0,text); 29 | await ea.addElementsToView(true, false, true); 30 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Scribble Helper.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Select Elements of Type.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-select-element-of-type.jpg) 3 | Prompts you with a list of the different element types in the active image. Only elements of the selected type will be selected on the canvas. If nothing is selected when running the script, then the script will process all the elements on the canvas. If some elements are selected when the script is executed, then the script will only process the selected elements. 4 | 5 | The script is useful when, for example, you want to bring to front all the arrows, or want to change the color of all the text elements, etc. 6 | 7 | ```javascript 8 | */ 9 | 10 | if(!ea.verifyMinimumPluginVersion || !ea.verifyMinimumPluginVersion("1.5.24")) { 11 | new Notice("This script requires a newer version of Excalidraw. Please install the latest version."); 12 | return; 13 | } 14 | 15 | let elements = ea.getViewSelectedElements(); 16 | if(elements.length === 0) elements = ea.getViewElements(); 17 | if(elements.length === 0) { 18 | new Notice("There are no elements in the view"); 19 | return; 20 | } 21 | 22 | typeSet = new Set(); 23 | elements.forEach(el=>typeSet.add(el.type)); 24 | let elementType = Array.from(typeSet)[0]; 25 | 26 | if(typeSet.size > 1) { 27 | elementType = await utils.suggester( 28 | Array.from(typeSet).map((item) => { 29 | switch(item) { 30 | case "line": return "— line"; 31 | case "ellipse": return "○ ellipse"; 32 | case "rectangle": return "□ rectangle"; 33 | case "diamond": return "◇ diamond"; 34 | case "arrow": return "→ arrow"; 35 | case "freedraw": return "✎ freedraw"; 36 | case "image": return "🖼 image"; 37 | case "text": return "A text"; 38 | default: return item; 39 | } 40 | }), 41 | Array.from(typeSet) 42 | ); 43 | } 44 | 45 | if(!elementType) return; 46 | 47 | ea.selectElementsInView(elements.filter(el=>el.type === elementType)); -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Select Elements of Type.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Set Dimensions.md: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) 4 | 5 | Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. 6 | 7 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-dimensions.jpg) 8 | 9 | Currently there is no way to specify the exact location and size of objects in Excalidraw. You can bridge this gap with the following simple script. 10 | 11 | See documentation for more details: 12 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 13 | 14 | ```javascript 15 | */ 16 | const elements = ea.getViewSelectedElements(); 17 | if(elements.length === 0) return; 18 | const el = ea.getLargestElement(elements); 19 | const sizeIn = [ 20 | Math.round(el.x), 21 | Math.round(el.y), 22 | Math.round(el.width), 23 | Math.round(el.height) 24 | ].join(","); 25 | let res = await utils.inputPrompt("x,y,width,height?",null,sizeIn); 26 | res = res.split(","); 27 | if(res.length !== 4) return; 28 | let size = []; 29 | for (v of res) { 30 | const i = parseInt(v); 31 | if(isNaN(i)) return; 32 | size.push(i); 33 | } 34 | el.x = size[0]; 35 | el.y = size[1]; 36 | el.width = size[2]; 37 | el.height = size[3]; 38 | ea.copyViewElementsToEAforEditing([el]); 39 | ea.addElementsToView(false,false); -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Set Dimensions.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Set Font Family.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-font-family.jpg) 3 | 4 | Sets font family of the text block (Virgil, Helvetica, Cascadia). Useful if you want to set a keyboard shortcut for selecting font family. 5 | 6 | See documentation for more details: 7 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 8 | 9 | ```javascript 10 | */ 11 | elements = ea.getViewSelectedElements().filter((el)=>el.type==="text"); 12 | if(elements.length===0) return; 13 | let font = ["Virgil","Helvetica","Cascadia"]; 14 | font = parseInt(await utils.suggester(font,["1","2","3"])); 15 | if (isNaN(font)) return; 16 | elements.forEach((el)=>el.fontFamily = font); 17 | ea.copyViewElementsToEAforEditing(elements); 18 | ea.addElementsToView(false,false); -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Set Font Family.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Set Grid.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-grid.jpg) 3 | 4 | The default grid size in Excalidraw is 20. Currently there is no way to change the grid size via the user interface. This script offers a way to bridge this gap. 5 | 6 | See documentation for more details: 7 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 8 | 9 | ```javascript 10 | */ 11 | const grid = parseInt(await utils.inputPrompt("Grid size?",null,"20")); 12 | if(isNaN(grid)) return; //this is to avoid passing an illegal value to Excalidraw 13 | const api = ea.getExcalidrawAPI(); 14 | let appState = api.getAppState(); 15 | appState.gridSize = grid; 16 | api.updateScene({ 17 | appState, 18 | commitToHistory:false 19 | }); -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Set Grid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Set Link Alias.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) 3 | 4 | Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. 5 | 6 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-set-link-alias.jpg) 7 | 8 | Iterates all of the links in the selected TextElements and prompts the user to set or modify the alias for each link found. 9 | 10 | See documentation for more details: 11 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 12 | 13 | ```javascript 14 | */ 15 | elements = ea.getViewSelectedElements().filter((el)=>el.type==="text"); 16 | // `[[markdown links]]` 17 | for(el of elements) { //doing for instead of .forEach due to await inputPrompt 18 | parts = el.rawText.split(/(\[\[[\w\W]*?]])/); 19 | newText = ""; 20 | for(t of parts) { //doing for instead of .map due to await inputPrompt 21 | if(!t.match(/(\[\[[\w\W]*?]])/)) { 22 | newText += t; 23 | } else { 24 | original = t.split(/\[\[|]]/)[1]; 25 | cut = original.indexOf("|"); 26 | alias = cut === -1 ? "" : original.substring(cut+1); 27 | link = cut === -1 ? original : original.substring(0,cut); 28 | alias = await utils.inputPrompt(`Alias for [[${link}]]`,"type alias here",alias); 29 | newText += `[[${link}|${alias}]]`; 30 | } 31 | } 32 | el.rawText = newText; 33 | }; 34 | 35 | // `[wiki](links)` 36 | for(el of elements) { //doing for instead of .forEach due to await inputPrompt 37 | parts = el.rawText.split(/(\[[\w\W]*?]\([\w\W]*?\))/); 38 | newText = ""; 39 | for(t of parts) { //doing for instead of .map due to await inputPrompt 40 | if(!t.match(/(\[[\w\W]*?]\([\w\W]*?\))/)) { 41 | newText += t; 42 | } else { 43 | alias = t.match(/\[([\w\W]*?)]/)[1]; 44 | link = t.match(/\(([\w\W]*?)\)/)[1]; 45 | alias = await utils.inputPrompt(`Alias for [[${link}]]`,"type alias here",alias); 46 | newText += `[[${link}|${alias}]]`; 47 | } 48 | } 49 | el.rawText = newText; 50 | }; 51 | 52 | ea.copyViewElementsToEAforEditing(elements); 53 | ea.addElementsToView(false,false); -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Set Stroke Width of Selected Elements.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-stroke-width.jpg) 3 | 4 | This script will set the stroke width of selected elements. This is helpful, for example, when you scale freedraw sketches and want to reduce or increase their line width. 5 | 6 | See documentation for more details: 7 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 8 | 9 | ```javascript 10 | */ 11 | let width = (ea.getViewSelectedElement().strokeWidth??1).toString(); 12 | width = await utils.inputPrompt("Width?","number",width); 13 | const elements=ea.getViewSelectedElements(); 14 | ea.copyViewElementsToEAforEditing(elements); 15 | ea.getElements().forEach((el)=>el.strokeWidth=width); 16 | ea.addElementsToView(false,false); 17 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Set Stroke Width of Selected Elements.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Set Text Alignment.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-text-align.jpg) 3 | 4 | Sets text alignment of text block (cetner, right, left). Useful if you want to set a keyboard shortcut for selecting text alignment. 5 | 6 | See documentation for more details: 7 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 8 | 9 | ```javascript 10 | */ 11 | elements = ea.getViewSelectedElements().filter((el)=>el.type==="text"); 12 | if(elements.length===0) return; 13 | let align = ["left","right","center"]; 14 | align = await utils.suggester(align,align); 15 | elements.forEach((el)=>el.textAlign = align); 16 | ea.copyViewElementsToEAforEditing(elements); 17 | ea.addElementsToView(false,false); -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Set Text Alignment.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Set background color of unclosed line object by adding a shadow clone.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-set-background-color-of-unclosed-line.jpg) 3 | 4 | Use this script to set the background color of unclosed (i.e. open) line objects by creating a clone of the object. The script will set the stroke color of the clone to transparent and will add a straight line to close the object. Use settings to define the default background color, the fill style, and the strokeWidth of the clone. By default the clone will be grouped with the original object, you can disable this also in settings. 5 | 6 | ```javascript 7 | */ 8 | 9 | if(!ea.verifyMinimumPluginVersion || !ea.verifyMinimumPluginVersion("1.5.26")) { 10 | new Notice("This script requires a newer version of Excalidraw. Please install the latest version."); 11 | return; 12 | } 13 | 14 | settings = ea.getScriptSettings(); 15 | //set default values on first run 16 | if(!settings["Background Color"]) { 17 | settings = { 18 | "Background Color" : { 19 | value: "DimGray", 20 | description: "Default background color of the 'shadow' object. Any valid html css color value", 21 | }, 22 | "Fill Style": { 23 | value: "hachure", 24 | valueset: ["hachure","cross-hatch","solid"], 25 | description: "Default fill style of the 'shadow' object." 26 | }, 27 | "Inherit fill stroke width": { 28 | value: true, 29 | description: "This will impact the densness of the hachure or cross-hatch fill. Use the stroke width of the line object for which the shadow is created. If set to false, the script will use a stroke width of 2." 30 | }, 31 | "Group 'shadow' with original": { 32 | value: true, 33 | description: "If the toggle is on then the shadow object that is created will be grouped with the unclosed original object." 34 | } 35 | }; 36 | ea.setScriptSettings(settings); 37 | } 38 | 39 | const inheritStrokeWidth = settings["Inherit fill stroke width"].value; 40 | const backgroundColor = settings["Background Color"].value; 41 | const fillStyle = settings["Fill Style"].value; 42 | const shouldGroup = settings["Group 'shadow' with original"].value; 43 | 44 | const elements = ea.getViewSelectedElements().filter(el=>el.type==="line"); 45 | if(elements.length === 0) { 46 | new Notice("No line object is selected"); 47 | } 48 | 49 | ea.copyViewElementsToEAforEditing(elements); 50 | elementsToMove = []; 51 | 52 | elements.forEach((el)=>{ 53 | const newEl = ea.cloneElement(el); 54 | ea.elementsDict[newEl.id] = newEl; 55 | newEl.roughness = 1; 56 | if(!inheritStrokeWidth) newEl.strokeWidth = 2; 57 | newEl.strokeColor = "transparent"; 58 | newEl.backgroundColor = backgroundColor; 59 | newEl.fillStyle = fillStyle; 60 | const i = el.points.length-1; 61 | newEl.points.push([ 62 | //adding an extra point close to the last point in case distance is long from last point to origin and there is a sharp bend. This will avoid a spike due to a tight curve. 63 | el.points[i][0]*0.9, 64 | el.points[i][1]*0.9, 65 | ]); 66 | newEl.points.push([0,0]); 67 | if(shouldGroup) ea.addToGroup([el.id,newEl.id]); 68 | elementsToMove.push({fillId: newEl.id, shapeId: el.id}); 69 | }); 70 | 71 | await ea.addElementsToView(false,false); 72 | elementsToMove.forEach((x)=>{ 73 | const viewElements = ea.getViewElements(); 74 | ea.moveViewElementToZIndex( 75 | x.fillId, 76 | viewElements.indexOf(viewElements.filter(el=>el.id === x.shapeId)[0])-1 77 | ) 78 | }); 79 | 80 | ea.selectElementsInView(ea.getElements()); -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Set background color of unclosed line object by adding a shadow clone.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Split text by lines 1.md: -------------------------------------------------------------------------------- 1 | /* 2 | ## requires Excalidraw 1.5.1 or higher 3 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) 4 | 5 | Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. 6 | 7 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-split-lines.jpg) 8 | 9 | Split lines of text into separate text elements for easier reorganization 10 | 11 | See documentation for more details: 12 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 13 | 14 | ```javascript 15 | */ 16 | elements = ea.getViewSelectedElements().filter((el)=>el.type==="text"); 17 | elements.forEach((el)=>{ 18 | ea.style.strokeColor = el.strokeColor; 19 | ea.style.fontFamily = el.fontFamily; 20 | ea.style.fontSize = el.fontSize; 21 | const text = el.text.split("\n"); 22 | for(i=0;iel.type==="text"); 17 | elements.forEach((el)=>{ 18 | ea.style.strokeColor = el.strokeColor; 19 | ea.style.fontFamily = el.fontFamily; 20 | ea.style.fontSize = el.fontSize; 21 | const text = el.text.split("\n"); 22 | for(i=0;i -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Text Align.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) 3 | 4 | Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. 5 | 6 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-text-align.jpg) 7 | 8 | Sets text alignment of text block (cetner, right, left). Useful if you want to set a keyboard shortcut for selecting text alignment. 9 | 10 | See documentation for more details: 11 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 12 | 13 | ```javascript 14 | */ 15 | elements = ea.getViewSelectedElements().filter((el)=>el.type==="text"); 16 | if(elements.length===0) return; 17 | let align = ["left","right","center"]; 18 | align = await utils.suggester(align,align); 19 | elements.forEach((el)=>el.textAlign = align); 20 | ea.copyViewElementsToEAforEditing(elements); 21 | ea.addElementsToView(); -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Transfer TextElements to Excalidraw markdown metadata.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) 3 | 4 | Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. 5 | 6 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-text-to-metadata.jpg) 7 | 8 | The script will delete the selected text elements from the canvas and will copy the text from these text elements into the Excalidraw markdown file as metadata. This means, that the text will no longer be visible in the drawing, however you will be able to search for the text in Obsidian and find the drawing containing this image. 9 | 10 | See ScriptEngine documentation for more details: 11 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 12 | 13 | ```javascript 14 | */ 15 | //get text elements 16 | 17 | const textElements = ea.getViewSelectedElements().filter((el)=>el.type==="text"); 18 | 19 | if(textElements.length===0) { 20 | notice("No text elements were selected") 21 | return; 22 | } 23 | 24 | metadata = "# Metadata\n" + textElements 25 | .map((el)=>el.rawText.replaceAll(/%|\^/g,"_")) //cleaning these characters for safety, might not be needed 26 | .join("/n") + "\n"; 27 | 28 | ea.deleteViewElements(textElements); 29 | await ea.targetView.save(); 30 | data = await app.vault.read(ea.targetView.file); 31 | splitAfterFrontmatter = data.split(/(^---[\w\W]*?---\n)/); 32 | if(splitAfterFrontmatter.length !== 3) { 33 | notice("Error locating frontmatter in markdown file"); 34 | console.log({file:ea.targetView.file}); 35 | return; 36 | } 37 | newData = splitAfterFrontmatter[1]+metadata+splitAfterFrontmatter[2] 38 | await app.vault.modify(ea.targetView.file,newData); 39 | 40 | //utility function 41 | function notice(message) { 42 | new Notice(message); 43 | console.log(message); 44 | } 45 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Transfer TextElements to Excalidraw markdown metadata.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Zoom to Fit Selected Elements.md: -------------------------------------------------------------------------------- 1 | /* 2 | ![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) 3 | 4 | Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. 5 | 6 | Similar to Excalidraw standard SHIFT+2 feature: Zoom to fit selected elements, but with the ability to zoom to 1000%. Inspiration: [#272](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/272) 7 | 8 | See documentation for more details: 9 | https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html 10 | 11 | ```javascript 12 | */ 13 | elements = ea.getViewSelectedElements(); 14 | api = ea.getExcalidrawAPI(); 15 | api.zoomToFit(elements,10); 16 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/Zoom to Fit Selected Elements.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/bookfromdouban.js: -------------------------------------------------------------------------------- 1 | //2022-01-28 by Cuman 2 | //脚本可以从获取网址信息,访问豆瓣图书网站抓取图书基本信息字段。 3 | 4 | const notice = (msg) => new Notice(msg, 5000); 5 | const log = (msg) => console.log(msg); 6 | 7 | module.exports = bookfromdouban 8 | 9 | let QuickAdd; 10 | 11 | async function bookfromdouban(params) { 12 | QuickAdd = params; 13 | const http_reg = /(http:\/\/|https:\/\/)((\w|=|\?|\.|\/|&|-)+)/g; 14 | const http_reg_book = /(http:\/\/book|https:\/\/book)((\w|=|\?|\.|\/|&|-)+)/g; 15 | const query = await QuickAdd.quickAddApi.inputPrompt( 16 | "请输入豆瓣图书网址:" 17 | ); 18 | if (!query) { 19 | notice("No url entered."); 20 | throw new Error("No url entered."); 21 | } 22 | if (!http_reg.exec(query)) { 23 | new Notice('复制的内容需要包含网址', 3000); 24 | throw new Error("No results found."); 25 | } 26 | 27 | const url = query.match(http_reg)[0]; 28 | console.log(url); 29 | if (http_reg_book.exec(url)) { 30 | let bookdata = await getbookByurl(url); 31 | if(bookdata) 32 | new Notice('图书数据获取成功!', 3000); 33 | QuickAdd.variables = { 34 | ...bookdata 35 | }; 36 | }else{ 37 | new Notice('只能解析book.douban.com相关网址', 3000); 38 | throw new Error("No results found."); 39 | } 40 | 41 | } 42 | 43 | async function getbookByurl(url) { 44 | 45 | let page = await urlGet(url); 46 | 47 | if (!page) { 48 | notice("No results found."); 49 | throw new Error("No results found."); 50 | } 51 | let p = new DOMParser(); 52 | let doc = p.parseFromString(page, "text/html"); 53 | let $ = s => doc.querySelector(s); 54 | let author = ''; 55 | let bookname = ''; 56 | bookname = $("meta[property='og:title']")?.content 57 | author = $("meta[property='book:author']")?.content 58 | let intro_class = $("#link-report .intro"); 59 | let intro = ''; 60 | if (intro_class) { 61 | intro = $("#link-report .intro").innerText; 62 | let regx = /<[^>]*>|<\/[^>]*>/gm; 63 | if (intro) { 64 | intro = intro.replace('(展开全部)', ""); 65 | intro = intro.replace(regx, "").trim(); 66 | intro = intro.replace(/\s\s\s\s/gm, "\n"); 67 | intro = intro.replace(/=*/gm, ""); 68 | 69 | } 70 | } 71 | 72 | let bookinfo = {}; 73 | let regpagecount = /页数:.(\d*)/g; 74 | let regpublish = /出版社:.(.*)/g; 75 | let str =$("#info")?.innerText; 76 | bookinfo.pagecount=regpagecount.exec(str)[1].trim()??'100'; 77 | bookinfo.publish=regpublish.exec(str)[1].trim(); 78 | bookinfo.bookname =bookname; 79 | bookinfo.cover = $("meta[property='og:image']")?.content; 80 | bookinfo.type = 'book'; 81 | bookinfo.description = $("meta[property='og:description']")?.content; 82 | bookinfo.douban_url = $("meta[property='og:url']")?.content; 83 | bookinfo.author = "'"+ author +"'"; 84 | bookinfo.isbn = $("meta[property='book:isbn']")?.content; 85 | bookinfo.rating = $("#interest_sectl > div > div.rating_self > strong")?.textContent??'-'; 86 | bookinfo.intro = intro; 87 | 88 | 89 | return bookinfo; 90 | } 91 | //https://book.douban.com/subject/35680662/?icn=index-latestbook-subject 92 | async function urlGet(url) { 93 | let finalURL = new URL(url); 94 | let headers = { 95 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.100.4758.11 Safari/537.36' 96 | }; 97 | const res = await request({ 98 | url: finalURL.href, 99 | method: "GET", 100 | cache: "no-cache", 101 | headers: { 102 | "Content-Type": "text/html; charset=utf-8", 103 | }, 104 | }); 105 | 106 | return res; 107 | 108 | 109 | } 110 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/changeSticky.js: -------------------------------------------------------------------------------- 1 | /****感谢锋华提供的js脚本 2022-01-22****/ 2 | module.exports = async function colorclock (params) { 3 | const pickedSticky = await params.quickAddApi.suggester( 4 | ["便签一(倒计时)","便签二","便签三","便签四"], 5 | [1,2,3,4] 6 | ); 7 | 8 | let stickyContent = await params.quickAddApi.wideInputPrompt("请输入便签内容") 9 | const stickyPatter1 = /(?<=1--\>\W)\([\w\W]*?)\<\/p\>/ 10 | const stickyPatter2 = /(?<=2--\>\W)\([\w\W]*?)\<\/p\>/ 11 | const stickyPatter3 = /(?<=3--\>\W)\([\w\W]*?)\<\/p\>/ 12 | const stickyPatter4 = /(?<=4--\>\W)\([\w\W]*?)\<\/p\>/ 13 | 14 | const filePath = app.vault.adapter.basePath + "\\88-Template\\home.md" 15 | const fileContent = await app.vault.adapter.fs.readFileSync(filePath, "utf8") 16 | 17 | if(pickedSticky == "1" && stickyContent){ 18 | let newContent = fileContent.replace(stickyPatter1, `

\n${stickyContent}\n

\n`) 19 | await app.vault.adapter.fs.writeFileSync(filePath, newContent,"utf8") 20 | }else if(pickedSticky == "2" && stickyContent){ 21 | let newContent = fileContent.replace(stickyPatter2, `

\n${stickyContent}\n

\n`) 22 | await app.vault.adapter.fs.writeFileSync(filePath, newContent,"utf8") 23 | }else if(pickedSticky == "3" && stickyContent){ 24 | let newContent = fileContent.replace(stickyPatter3, `

\n${stickyContent}\n

\n`) 25 | await app.vault.adapter.fs.writeFileSync(filePath, newContent,"utf8") 26 | }else if(pickedSticky == "4" && stickyContent){ 27 | let newContent = fileContent.replace(stickyPatter4, `

\n${stickyContent}\n

\n`) 28 | await app.vault.adapter.fs.writeFileSync(filePath, newContent,"utf8") 29 | }else{ 30 | console.log("pickSticky error!") 31 | } 32 | 33 | } -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/moviefromdouban.js: -------------------------------------------------------------------------------- 1 | //2022-02-15 by Cuman 2 | //脚本可以从获取网址信息,访问豆瓣电影网站抓取电影基本信息字段。 3 | 4 | const notice = (msg) => new Notice(msg, 5000); 5 | const log = (msg) => console.log(msg); 6 | 7 | module.exports = moviefromdouban 8 | 9 | let QuickAdd; 10 | 11 | async function moviefromdouban(params) { 12 | QuickAdd = params; 13 | const http_reg = /(http:\/\/|https:\/\/)((\w|=|\?|\.|\/|&|-)+)/g; 14 | const http_reg_movie = /(http:\/\/movie|https:\/\/movie)((\w|=|\?|\.|\/|&|-)+)/g; 15 | const query = await QuickAdd.quickAddApi.inputPrompt( 16 | "请输入豆瓣电影网址:" 17 | ); 18 | if (!query) { 19 | notice("No url entered."); 20 | throw new Error("No url entered."); 21 | } 22 | if (!http_reg.exec(query)) { 23 | new Notice('复制的内容需要包含网址', 3000); 24 | throw new Error("No results found."); 25 | } 26 | 27 | const url = query.match(http_reg)[0]; 28 | console.log(url); 29 | if (http_reg_movie.exec(url)) { 30 | let moviedata = await getmovieByurl(url); 31 | if(moviedata) 32 | new Notice('电影数据获取成功!', 3000); 33 | QuickAdd.variables = { 34 | ...moviedata 35 | }; 36 | }else 37 | { 38 | new Notice('只能解析movie.douban.com相关网址', 3000); 39 | throw new Error("No results found."); 40 | } 41 | } 42 | 43 | 44 | async function getmovieByurl(url) { 45 | 46 | let page = await urlGet(url); 47 | 48 | if (!page) { 49 | notice("No results found."); 50 | throw new Error("No results found."); 51 | } 52 | let p = new DOMParser(); 53 | let doc = p.parseFromString(page, "text/html"); 54 | let $ = s => doc.querySelector(s); 55 | let director = ''; 56 | let moviename = ''; 57 | moviename = $("meta[property='og:title']")?.content 58 | director = $("meta[property='video:director']")?.content 59 | summary = $("span[property='v:summary']").textContent??'-'; 60 | genre = $("span[property='v:genre']").textContent??'-'; 61 | console.log(genre) 62 | let regx = /<[^>]*>|<\/[^>]*>/gm; 63 | if (summary) { 64 | summary = summary.replace('(展开全部)', ""); 65 | summary = summary.replace(regx, "").trim(); 66 | summary = summary.replace(/\s\s\s\s/gm, "\n"); 67 | 68 | } 69 | let movieinfo = {}; 70 | movieinfo.fileName =moviename; 71 | movieinfo.Poster = $("meta[property='og:image']")?.content; 72 | movieinfo.type = 'movie'; 73 | movieinfo.description = $("meta[property='og:description']")?.content; 74 | movieinfo.douban_url = $("meta[property='og:url']")?.content; 75 | movieinfo.director = "'"+ director +"'"; 76 | movieinfo.genre = genre; 77 | movieinfo.rating = $("#interest_sectl > div > div.rating_self > strong")?.textContent??'-'; 78 | movieinfo.plot = summary; 79 | movieinfo.runtime = $("span[property='v:runtime']")?.textContent??'-'; 80 | movieinfo.year = $("span[property='v:initialReleaseDate']")?.textContent??'-'; 81 | movieinfo.banner= movieinfo.Poster.replace('s_ratio_poster', "1"); 82 | 83 | return movieinfo; 84 | } 85 | 86 | async function urlGet(url) { 87 | let finalURL = new URL(url); 88 | let headers = { 89 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.100.4758.11 Safari/537.36' 90 | }; 91 | const res = await request({ 92 | url: finalURL.href, 93 | method: "GET", 94 | cache: "no-cache", 95 | headers: { 96 | "Content-Type": "text/html; charset=utf-8", 97 | }, 98 | }); 99 | 100 | return res; 101 | 102 | 103 | } 104 | 105 | 106 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/notice.js: -------------------------------------------------------------------------------- 1 | module.exports = getnotie 2 | let quickAddApi; 3 | 4 | async function getnotie (params) { 5 | ({quickAddApi} = params) 6 | let notice = await quickAddApi.wideInputPrompt("🏷️ 便签"); 7 | if(notice) 8 | { 9 | await new Notice(notice,0); 10 | } 11 | } -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/refreshhomepage.js: -------------------------------------------------------------------------------- 1 | module.exports = refreshhomepage 2 | let quickAddApi; 3 | 4 | async function refreshhomepage (params) { 5 | ({quickAddApi} = params) 6 | //查看文件是否存在 7 | app.vault.adapter.exists(".obsidian/.diary-stats").then(async (exists) => { 8 | if (!exists) { 9 | app.vault.adapter.write(".obsidian/.diary-stats", "{}"); 10 | return; 11 | }else 12 | { 13 | let history = Object.assign(JSON.parse(await app.vault.adapter.read(".obsidian/.diary-stats"))); 14 | //查看当天信息 15 | let today = moment().format("YYYY-MM-DD"); 16 | delete history[today]; 17 | await app.vault.adapter.write(".obsidian/.diary-stats", JSON.stringify(history)); 18 | let read = Object.assign(JSON.parse(await app.vault.adapter.read(".obsidian/.diary-stats"))); 19 | if (!read.hasOwnProperty(moment().format("YYYY-MM-DD"))) 20 | { 21 | return; 22 | } 23 | 24 | } 25 | 26 | }); 27 | 28 | 29 | } 30 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw scripts/related.md: -------------------------------------------------------------------------------- 1 | /* 2 | set relations between two entities 3 | 4 | promp to set description of relation 5 | 6 | by noteBeliever 7 | 8 | 2022/3/22 下午7:04 9 | 10 | 11 | ```javascript 12 | */ 13 | 14 | if(!ea.verifyMinimumPluginVersion || !ea.verifyMinimumPluginVersion("1.5.21")) { 15 | new Notice("This script requires a newer version of Excalidraw. Please install the latest version."); 16 | return; 17 | } 18 | 19 | settings = ea.getScriptSettings(); 20 | //set default values on first run 21 | if(!settings["Starting arrowhead"]) { 22 | settings = { 23 | "Starting arrowhead" : { 24 | value: "none", 25 | valueset: ["none","arrow","triangle","bar","dot"] 26 | }, 27 | "Ending arrowhead" : { 28 | value: "triangle", 29 | valueset: ["none","arrow","triangle","bar","dot"] 30 | }, 31 | "Line points" : { 32 | value: 1, 33 | description: "Number of line points between start and end" 34 | } 35 | }; 36 | ea.setScriptSettings(settings); 37 | } 38 | 39 | const arrowStart = settings["Starting arrowhead"].value === "none" ? null : settings["Starting arrowhead"].value; 40 | const arrowEnd = settings["Ending arrowhead"].value === "none" ? null : settings["Ending arrowhead"].value; 41 | const linePoints = Math.floor(settings["Line points"].value); 42 | 43 | 44 | const elements = ea.getViewSelectedElements(); 45 | ea.copyViewElementsToEAforEditing(elements); 46 | groups = ea.getMaximumGroups(elements); 47 | if(groups.length !== 2) { 48 | //unfortunately getMaxGroups returns duplicated resultset for sticky notes 49 | //needs additional filtering 50 | cleanGroups=[]; 51 | idList = []; 52 | for (group of groups) { 53 | keep = true; 54 | for(item of group) if(idList.contains(item.id)) keep = false; 55 | if(keep) { 56 | cleanGroups.push(group); 57 | idList = idList.concat(group.map(el=>el.id)) 58 | } 59 | } 60 | if(cleanGroups.length !== 2) return; 61 | groups = cleanGroups; 62 | } 63 | els = [ 64 | ea.getLargestElement(groups[0]), 65 | ea.getLargestElement(groups[1]) 66 | ]; 67 | 68 | ea.style.strokeColor = els[0].strokeColor; 69 | ea.style.strokeWidth = els[0].strokeWidth; 70 | ea.style.strokeStyle = els[0].strokeStyle; 71 | ea.style.strokeSharpness = els[0].strokeSharpness; 72 | 73 | // insert a letter 74 | 75 | // prompt to get string 76 | let let_str = "is"; 77 | let_str = await utils.inputPrompt("relation is?","string",let_str); 78 | 79 | // set pos of letter in middle 80 | x_letter = (els[0].x + els[1].x ) * 0.5; 81 | y_letter = (els[0].y + els[1].y ) * 0.5; 82 | 83 | n_letter = ea.addText(x_letter,y_letter,let_str); 84 | 85 | // connect in middle 86 | 87 | ea.connectObjects( 88 | els[0].id, 89 | null, 90 | n_letter, 91 | null, 92 | { 93 | endArrowHead: arrowStart, 94 | startArrowHead: arrowStart, 95 | numberOfPoints: linePoints 96 | } 97 | ); 98 | 99 | ea.connectObjects( 100 | n_letter, 101 | null, 102 | els[1].id, 103 | null, 104 | { 105 | endArrowHead: arrowStart, // no arrow 106 | startArrowHead: arrowStart, 107 | numberOfPoints: linePoints 108 | } 109 | ); 110 | 111 | 112 | ea.addElementsToView(false,false,true); 113 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw templates/getrandomImage.js: -------------------------------------------------------------------------------- 1 | module.exports = imgpath 2 | let images = [] 3 | 4 | async function imgpath (folders) { 5 | await init(folders); 6 | return images[Math.floor(Math.random() * images.length)].path 7 | } 8 | 9 | async function init(folders){ 10 | images = images.concat(await app.fileManager.vault.fileMap[folders].children) 11 | } 12 | -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Excalidraw templates/getweather.js: -------------------------------------------------------------------------------- 1 | async function getWeather(city){ 2 | 3 | let result = await fetch("https://wttr.in/"+city+"?format=3").then(async (res) => await res.text()); 4 | result = result.replace(/:/g,'').replace(/\+/g,''); 5 | return result; 6 | } 7 | 8 | module.exports = getWeather -------------------------------------------------------------------------------- /Z-附件/Excalidraw/Fonts/演示新手书.OTF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/Z-附件/Excalidraw/Fonts/演示新手书.OTF -------------------------------------------------------------------------------- /Z-附件/Templates/Mdnotes Default Template.md: -------------------------------------------------------------------------------- 1 | --- 2 | 标签: 3 | - 4 | Comments: "💡
💡" 5 | --- 6 | 7 | >[!info]-
Metadata
8 | > 9 | >>{{itemType}} 10 | >>{{author}} 11 | >>{{date}} 12 | >>{{collections}} 13 | >>{{publicationTitle}} 14 | 15 | 16 | >[!abstract]-
Abstract
17 | > 18 | >>{{abstractNote}} 19 | 20 | ---------------------------------------------------------------------------------------------- 21 | # 🍨你对此篇文献有何评价? 22 | 23 | >此问题的答案在笔记开头的Comments中回答 24 | 25 | 26 | # 🍛你感兴趣的点是什么? 27 | 28 | 29 | 30 | # 🍔这篇论文的研究动机是什么? 31 | 32 | 33 | 34 | 35 | # 🥪这篇论文用到了哪些专业知识?阅读中你遇到了哪些问题? 36 | 37 | 38 | 39 | # 🍚这篇论文的实验方案是如何设计的? 40 | 41 | 42 | 43 | 44 | # 🌮有哪些相关的研究? 45 | 46 | 47 | 48 | 49 | # 🍝这篇论文的主要贡献是什么? 50 | 51 | 52 | 53 | # ✍这篇论文在写作表达方面有哪些值得借鉴的地方? 54 | 55 | 写作素材:: 📌📌📌 56 | 57 | 58 | 59 | >[!hint]
Zotero links
60 | > 61 | >{{localLibrary}} 62 | >{{cloudLibrary}} 63 | >{{url}} 64 | >{{DOI}} 65 | >{{pdfAttachments}} 66 | >{{citekey}} 67 | -------------------------------------------------------------------------------- /Z-附件/Templates/专业知识模板.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: {{DATE:YYYYMMDDHHmmss}} 3 | aliases: 4 | --- 5 | tags:: #专业知识 6 | 7 | ----- 8 | -------------------------------------------------------------------------------- /Z-附件/Templates/文献阅读随想模板.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: {{DATE:YYYYMMDDHHmmss}} 3 | type: 4 | aliases: [ ] 5 | --- 6 | 7 | - title:: 8 | - tags:: #文献随想 9 | - source:: 10 | 11 | -------- 12 | ## Question:: {{NAME}} 13 | 14 | Answer:: 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Z-附件/Templates/日记模板.md: -------------------------------------------------------------------------------- 1 | --- 2 | 要事: 3 | 反思: 4 | 心情: 5 | 天气: 6 | 早起: 7 | 早睡: 8 | 随想: 9 | 标签: 10 | --- 11 | 12 | -------------------------------------------------------------------------------- /Z-附件/Templates/通用模板.md: -------------------------------------------------------------------------------- 1 | --- 2 | uid: {{DATE:YYYYMMDDHHmmss}} 3 | type: 4 | aliases: 5 | --- 6 | - title:: 7 | - tags:: 8 | - source:: 9 | - Notes:: 10 | 11 | --- 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Z-附件/images/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/Z-附件/images/1.png -------------------------------------------------------------------------------- /Z-附件/images/1651123280969 1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/Z-附件/images/1651123280969 1.gif -------------------------------------------------------------------------------- /Z-附件/images/1651123280969.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/Z-附件/images/1651123280969.gif -------------------------------------------------------------------------------- /Z-附件/images/Pasted Image 20221004194739_117.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/Z-附件/images/Pasted Image 20221004194739_117.png -------------------------------------------------------------------------------- /Z-附件/images/Pasted image 20221217210045.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/Z-附件/images/Pasted image 20221217210045.png -------------------------------------------------------------------------------- /Z-附件/images/Pasted image 20221217210108.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/Z-附件/images/Pasted image 20221217210108.png -------------------------------------------------------------------------------- /Z-附件/images/Pasted image 20221217215937.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/Z-附件/images/Pasted image 20221217215937.png -------------------------------------------------------------------------------- /Z-附件/images/Readme-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/Z-附件/images/Readme-4.png -------------------------------------------------------------------------------- /Z-附件/images/Readme-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/Z-附件/images/Readme-5.png -------------------------------------------------------------------------------- /Z-附件/images/Readme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/Z-附件/images/Readme.png -------------------------------------------------------------------------------- /Z-附件/images/Snipaste_2022-06-08_12-31-17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/Z-附件/images/Snipaste_2022-06-08_12-31-17.jpg -------------------------------------------------------------------------------- /Z-附件/images/Snipaste_2022-06-08_12-40-41.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/Z-附件/images/Snipaste_2022-06-08_12-40-41.jpg -------------------------------------------------------------------------------- /Z-附件/images/Snipaste_2022-06-08_12-41-23.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/Z-附件/images/Snipaste_2022-06-08_12-41-23.jpg -------------------------------------------------------------------------------- /Z-附件/images/Snipaste_2022-06-13_15-39-09.jpg - 快捷方式.lnk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/Z-附件/images/Snipaste_2022-06-13_15-39-09.jpg - 快捷方式.lnk -------------------------------------------------------------------------------- /Z-附件/images/ba1c517894aa0a4fc501a5d25b82daa.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/Z-附件/images/ba1c517894aa0a4fc501a5d25b82daa.jpg -------------------------------------------------------------------------------- /Z-附件/images/e43784adc4b59235ebca46dd04cff8e.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/Z-附件/images/e43784adc4b59235ebca46dd04cff8e.jpg -------------------------------------------------------------------------------- /Z-附件/images/主题设置插件.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/Z-附件/images/主题设置插件.png -------------------------------------------------------------------------------- /Z-附件/images/更换主题.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BCS1037/BCS-Academic-Vault/cc8b562d8f87cb9bf2c2e4926d3a61b8cc404e97/Z-附件/images/更换主题.png -------------------------------------------------------------------------------- /🏡 Home.md: -------------------------------------------------------------------------------- 1 | --- 2 | banner: "![[image2.jpg]]" 3 | banner_y: 0.5 4 | banner_icon: 🏠 5 | banner_x: 0.5 6 | --- 7 | 8 | ```start-multi-column 9 | ID: ExampleRegion2 number of columns: 3 10 | border: off 11 | ``` 12 | # 🗃️ 专业知识 13 | 14 | - 我是占位符 15 | - 可以随意添加常用的 16 | - 双链笔记 17 | 18 | --- end-column --- 19 | 20 | # 🎓 科研笔记 21 | 22 | - [[Reading Notes Database]] 23 | - 我是占位符 24 | - 可以随意添加常用的 25 | - 双链笔记 26 | 27 | --- end-column --- 28 | 29 | # ⏳日常&成长 30 | 31 | - [[备忘MOC]] 32 | - 我是占位符 33 | - 可以随意添加常用的 34 | - 双链笔记 35 | 36 | 37 | === end-multi-column 38 | ```start-multi-column 39 | ID: ExampleRegion home2 number of columns: 3 40 | border: off 41 | ``` 42 | 43 | # 🔬 科研软件 44 | 45 | - 我是占位符 46 | - 可以随意添加常用的 47 | - 双链笔记 48 | - 维客笔记 49 | 50 | --- end-column --- 51 | 52 | # 💻 办公软件 53 | 54 | - 我是占位符 55 | - 可以随意添加常用的 56 | - 双链笔记 57 | - 维客笔记 58 | 59 | --- end-column --- 60 | 61 | # 📌 常用网址 62 | 63 | - [滴答清单](https://www.dida365.com/) 64 | - [ChatGPT](https://chat.openai.com/chat) 65 | 66 | 67 | === end-multi-column 68 | 69 | --------------------------------------------------------------------------------