This commit is contained in:
Revin69000 2024-09-18 14:00:06 +08:00
parent 50013ed9b3
commit 3ab0dd8cd5
185 changed files with 72192 additions and 109548 deletions

4
.obsidian/app.json vendored
View File

@ -1,3 +1,5 @@
{
"alwaysUpdateLinks": true
"alwaysUpdateLinks": true,
"trashOption": "local",
"promptDelete": false
}

View File

@ -1,6 +1,6 @@
{
"theme": "moonstone",
"cssTheme": "Border",
"cssTheme": "Deep Work",
"baseFontSizeAction": true,
"baseFontSize": 18,
"nativeMenus": true,
@ -9,5 +9,5 @@
"MCL Multi Column",
"MCL Wide Views"
],
"accentColor": "#7d8bb5"
"accentColor": ""
}

View File

@ -20,7 +20,7 @@
{
"type": "file",
"ctime": 1726130851843,
"path": "06 Revin Spaces/blog/Tools/rnbookmark20030312.md"
"path": "06Revin Spaces/blog/Tools/rnbookmark20030312.md"
}
]
}

View File

@ -2,16 +2,22 @@
"recent-files-obsidian",
"obsidian-kanban",
"obsidian-to-anki-plugin",
"plugin-manager",
"obsidian-outliner",
"obsidian-another-quick-switcher",
"table-editor-obsidian",
"colorful-note-borders",
"obsidian-style-settings",
"mysnippets-plugin",
"obsidian-custom-frames",
"obsidian-hover-editor",
"syncthing-integration",
"lazy-plugins",
"obsidian-clipper"
"obsidian-textgenerator-plugin",
"copilot",
"obsidian-style-settings",
"cmdr",
"obsidian-hover-editor",
"memos-sync",
"obsidian-to-flomo",
"flomo-importer",
"obsidian-icon-folder",
"obsidian-file-color",
"easy-typing-obsidian"
]

View File

@ -23,7 +23,7 @@
"word-count": true,
"slides": false,
"audio-recorder": false,
"workspaces": false,
"workspaces": true,
"file-recovery": true,
"publish": false,
"sync": false

View File

@ -18,5 +18,6 @@
"markdown-importer",
"outline",
"word-count",
"workspaces",
"file-recovery"
]

View File

@ -14,5 +14,30 @@
],
"key": "Q"
}
],
"obsidian-excalidraw-plugin:save": [],
"memos-sync:memos-sync-force-current-daily-memos": [
{
"modifiers": [
"Mod"
],
"key": "B"
}
],
"templater-obsidian:20Extra/Templates/cmd/calloutForContent.md.md": [
{
"modifiers": [
"Alt"
],
"key": "T"
}
],
"templater-obsidian:20Extra/Templates/Tp-通用模板.md.md": [
{
"modifiers": [
"Alt"
],
"key": "M"
}
]
}

View File

@ -29,6 +29,12 @@
"icon": "lucide-plus-circle",
"name": "增加文档属性",
"mode": "any"
},
{
"id": "memos-sync:memos-sync-daily-memos",
"icon": "arrow-left-right",
"name": "memos-sync",
"mode": "any"
}
],
"rightRibbon": [],

File diff suppressed because one or more lines are too long

View File

@ -1,10 +0,0 @@
{
"id": "cmenu-plugin",
"name": "cMenu",
"version": "1.1.2",
"minAppVersion": "0.9.12",
"description": "cMenu is a plugin that adds a minimal text editor modal for a smoother writing/editing experience ✍🏽.",
"author": "chetachi",
"authorUrl": "https://github.com/chetachiezikeuzor",
"isDesktopOnly": true
}

View File

@ -1,234 +0,0 @@
/*----------------------------------------------------------------
CMENU TOOLBAR
----------------------------------------------------------------*/
#cMenuModalBar {
width: auto;
height: auto;
padding: 3px;
display: grid;
user-select: none;
border-radius: 6px;
position: absolute;
transition: 200ms ease;
min-width: fit-content;
justify-content: space-around;
z-index: var(--layer-status-bar);
box-shadow: 0px 3px 32px rgb(31 38 135 / 15%);
border: 1px solid var(--background-modifier-border);
}
#cMenuModalBar .cMenuCommandItem {
margin: 2px;
border: none;
display: flex;
cursor: pointer;
padding: 5px 6px;
box-shadow: none;
margin-left: 3px;
margin-right: 3px;
position: relative;
border-radius: 3px;
font-size: initial !important;
background-color: var(--background-primary-alt);
}
#cMenuModalBar button.cMenuCommandItem:hover {
background-color: var(--background-secondary);
}
#cMenuModalBar button.cMenuCommandItem svg {
width: 1.3em;
height: 1.3em;
}
/*----------------------------------------------------------------
CMENU SETTINGS BUTTONS
----------------------------------------------------------------*/
.modal.mod-settings
button:not(.mod-cta):not(.mod-warning).cMenuSettingsButton.cMenuSettingsButtonAdd,
button:not(.mod-cta):not(.mod-warning).cMenuSettingsButton.cMenuSettingsButtonAdd {
background-color: var(--interactive-accent);
}
.modal.mod-settings
button:not(.mod-cta):not(.mod-warning).cMenuSettingsButton.cMenuSettingsButtonDelete,
button:not(.mod-cta):not(.mod-warning).cMenuSettingsButton.cMenuSettingsButtonDelete {
background-color: #989cab;
}
.modal.mod-settings
button:not(.mod-cta):not(.mod-warning).cMenuSettingsButton.cMenuSettingsButtonRefresh,
button:not(.mod-cta):not(.mod-warning).cMenuSettingsButton.cMenuSettingsButtonRefresh {
background-color: var(--text-accent);
}
button.cMenuSettingsButton {
padding: 4px 14px;
border-radius: 6px;
}
.cMenuSettingsButton svg {
width: 1.3em;
height: 1.3em;
display: flex;
}
/*----------------------------------------------------------------
CMENU SETTING ITEMS
----------------------------------------------------------------*/
.setting-item.cMenuCommandItem:first-child {
padding-top: 18px;
}
.cMenuCommandItem {
cursor: grab;
padding: 18px 0 18px 0;
}
.sortable-fallback {
cursor: grabbing;
box-shadow: 0px 3px 32px rgb(31 38 135 / 15%);
}
.sortable-grab {
cursor: grabbing !important;
}
.sortable-ghost {
opacity: 0.4;
cursor: grabbing;
}
.sortable-chosen {
cursor: grabbing;
padding: 18px 0 18px 18px;
background-color: var(--background-primary);
}
.sortable-drag {
cursor: grabbing;
box-shadow: 0px 3px 32px rgb(31 38 135 / 15%);
}
.cMenuSettingsTabsContainer {
border-top: 1px solid var(--background-modifier-border);
border-bottom: 1px solid var(--background-modifier-border);
}
/*----------------------------------------------------------------
CMENU CLASS CHANGES
----------------------------------------------------------------*/
.cMenuGlassAesthetic {
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
}
.cMenuDefaultAesthetic {
background-color: var(--background-primary);
}
/*----------------------------------------------------------------
CMENU ICONS
----------------------------------------------------------------*/
.cMenuIconPick {
line-height: normal;
vertical-align: middle;
margin-right: 8px;
}
.cMenuIconPick svg {
width: 17px;
height: 17px;
}
/*----------------------------------------------------------------
CMENU STATUS BAR MENU
----------------------------------------------------------------*/
.cMenu-statusbar-menu {
width: 200px;
}
.cMenu-statusbar-menu .menu-item-icon {
display: none;
}
.cMenu-statusbar-menu .menu-item {
display: flex;
align-items: center;
justify-content: space-between;
flex-direction: row;
}
.cMenu-statusbar-menu .menu-item.settings-item {
font-size: 12px;
text-align: center;
line-height: 1;
border-radius: 5px;
height: auto;
padding: 8px 5px 0px 5px;
margin: 0 auto;
width: fit-content;
color: var(--text-faint);
}
.cMenu-statusbar-menu .menu-item.settings-item .menu-item-title {
text-align: center;
}
.cMenu-statusbar-menu .menu-item:hover,
.cMenu-statusbar-menu .menu-item .selected:hover,
.cMenu-statusbar-menu .menu-item.selected:not(.is-disabled):not(.is-label) {
background-color: transparent;
}
.cMenu-statusbar-menu .menu-item-title {
margin-right: 10px;
}
.cMenu-statusbar-menu .slider {
width: 100%;
}
.cMenu-statusbar-menu .menu-item.buttonitem {
padding-top: 10px;
padding-bottom: 4px;
height: fit-content;
}
.cMenu-statusbar-menu .menu-item.buttonitem button.cMenuSettingsButton {
margin: 0;
}
/*----------------------------------------------------------------
CMENU STATUS BAR BUTTONS
----------------------------------------------------------------*/
.cMenu-statusbar-button {
cursor: pointer;
display: flex;
align-items: center;
line-height: 1;
}
.cMenu-statusbar-button svg {
display: flex;
width: 1.3em;
height: 1.3em;
}
/*----------------------------------------------------------------
CMENU SUPPORT
----------------------------------------------------------------*/
.cDonationSection {
width: 60%;
height: 50vh;
margin: 0 auto;
text-align: center;
color: var(--text-normal);
}

File diff suppressed because one or more lines are too long

View File

@ -1,11 +1 @@
{
"id": "dataview",
"name": "Dataview",
"version": "0.5.66",
"minAppVersion": "0.13.11",
"description": "Complex data views for the data-obsessed.",
"author": "Michael Brenan <blacksmithgu@gmail.com>",
"authorUrl": "https://github.com/blacksmithgu",
"helpUrl": "https://blacksmithgu.github.io/obsidian-dataview/",
"isDesktopOnly": false
}
{"id":"dataview","name":"Dataview","version":"0.5.67","minAppVersion":"0.13.11","description":"Complex data views for the data-obsessed.","author":"Michael Brenan <blacksmithgu@gmail.com>","authorUrl":"https://github.com/blacksmithgu","helpUrl":"https://blacksmithgu.github.io/obsidian-dataview/","isDesktopOnly":false}

View File

@ -0,0 +1,59 @@
{
"Tabout": true,
"SelectionEnhance": true,
"IntrinsicSymbolPairs": true,
"BaseObEditEnhance": true,
"FW2HWEnhance": true,
"BetterCodeEdit": true,
"AutoFormat": true,
"ExcludeFiles": "",
"ChineseEnglishSpace": true,
"ChineseNumberSpace": true,
"EnglishNumberSpace": true,
"ChineseNoSpace": true,
"PunctuationSpace": true,
"AutoCapital": true,
"AutoCapitalMode": "typing",
"PunctuationSpaceMode": "typing",
"InlineCodeSpaceMode": 1,
"InlineFormulaSpaceMode": 1,
"InlineLinkSpaceMode": 1,
"InlineLinkSmartSpace": true,
"UserDefinedRegSwitch": true,
"UserDefinedRegExp": "{{.*?}}|++\n<.*?>|--\n\\[\\!.*?\\][-+]{0,1}|-+\n(file:///|https?://|ftp://|obsidian://|zotero://|www.)[^\\s《》。,;;:“”‘’\\)\\(\\[\\]\\{\\}']+|--\n\n[a-zA-Z0-9_\\-.]+@[a-zA-Z0-9_\\-.]+|++\n(?<!#)#[\\u4e00-\\u9fa5\\w-\\/]+|++",
"debug": false,
"userSelRepRuleTrigger": [
"-",
"#"
],
"userSelRepRuleValue": [
{
"left": "~~",
"right": "~~"
},
{
"left": "#",
"right": " "
}
],
"userDeleteRulesStrList": [
[
"demo|",
"|"
]
],
"userConvertRulesStrList": [
[
":)|",
"😀|"
]
],
"userSelRuleSettingsOpen": true,
"userDelRuleSettingsOpen": true,
"userCvtRuleSettingsOpen": true,
"EnterTwice": false,
"TryFixChineseIM": true,
"PuncRectify": false,
"FixMacOSContextMenu": false,
"TryFixMSIME": false
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"id":"easy-typing-obsidian","name":"Easy Typing","version":"5.5.0","minAppVersion":"0.15.0","description":"Autoformat your note as typing.(Auto captalize, autospace)","author":"yaozhuwa","authorUrl":"https://github.com/Yaozhuwa","isDesktopOnly":false,"fundingUrl":"https://www.buymeacoffee.com/yaozhuwa"}

View File

@ -0,0 +1,17 @@
span[class="easy-typing-tabstops"] {
border-radius: 2px;
background-color: #87cefa2e;
outline: #87cefa6e solid 1px;
}
span[class="easy-typing-cursor-widget"] {
color: #1364ce6e;
/* animation: blink 1s step-start 0s infinite; */
display: inline;
position: absolute;
white-space: pre;
}
/* @keyframes blink {
50% { opacity: 0; }
} */

View File

@ -286,7 +286,7 @@
"cMenuBottomValue": 4.25,
"cMenuNumRows": 12,
"cMenuWidth": 610,
"cMenuFontColor": "#ffc000",
"cMenuFontColor": "#6425d0",
"cMenuBackgroundColor": "#d2cbff",
"autohide": false,
"custom_bg1": "#FFB78B8C",

View File

@ -27,7 +27,7 @@
"startupType": "instant"
},
"cmdr": {
"startupType": "short"
"startupType": "instant"
},
"obsidian-custom-frames": {
"startupType": "instant"
@ -42,7 +42,7 @@
"startupType": "long"
},
"obsidian-excalidraw-plugin": {
"startupType": "short"
"startupType": "long"
},
"obsidian-hover-editor": {
"startupType": "instant"
@ -72,10 +72,10 @@
"startupType": "long"
},
"pkmer": {
"startupType": "long"
"startupType": "short"
},
"plugin-manager": {
"startupType": "instant"
"startupType": "short"
},
"quickadd": {
"startupType": "short"
@ -90,7 +90,7 @@
"startupType": "short"
},
"syncthing-integration": {
"startupType": "instant"
"startupType": "disabled"
},
"tag-wrangler": {
"startupType": "long"
@ -105,9 +105,45 @@
"startupType": "long"
},
"vault-exporter": {
"startupType": "long"
"startupType": "disabled"
},
"obsidian-clipper": {
"startupType": "short"
},
"copilot": {
"startupType": "instant"
},
"obsidian-textgenerator-plugin": {
"startupType": "instant"
},
"obsidian-omnivore": {
"startupType": "disabled"
},
"obsidian-text-expander": {
"startupType": "disabled"
},
"obsidian-to-flomo": {
"startupType": "instant"
},
"memos-sync": {
"startupType": "instant"
},
"flomo-importer": {
"startupType": "instant"
},
"obsidian-icons-plugin": {
"startupType": "disabled"
},
"obsidian-icon-folder": {
"startupType": "instant"
},
"python-lab-plugin": {
"startupType": "disabled"
},
"easy-typing-obsidian": {
"startupType": "instant"
},
"obsidian-file-color": {
"startupType": "instant"
}
}

View File

@ -0,0 +1,7 @@
{
"dailyMemosHeader": "Memos",
"memosAPIVersion": "v0.22.0",
"memosAPIURL": "http://47.107.80.236:5230/",
"memosAPIToken": "eyJhbGciOiJIUzI1NiIsImtpZCI6InYxIiwidHlwIjoiSldUIn0.eyJuYW1lIjoiIiwiaXNzIjoibWVtb3MiLCJzdWIiOiIxIiwiYXVkIjpbInVzZXIuYWNjZXNzLXRva2VuIl0sImV4cCI6MTcyNjkyNzk2MiwiaWF0IjoxNzI2MzIzMTYyfQ.IFi_aoQ42xuy1Pq6O53BegXZ145M97Jjc05CRz-RtjE",
"attachmentFolder": "Memos"
}

13080
.obsidian/plugins/memos-sync/main.js vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,10 @@
{
"id": "memos-sync",
"name": "Memos Sync",
"version": "0.4.3",
"minAppVersion": "1.5.12",
"description": "Syncing memos from a [Memos](https://github.com/usememos/memos) server to your daily note. Fully compatible with official Daily Notes plugin, Calendar plugin and Periodic Notes plugin.",
"author": "RyoJerryYu",
"authorUrl": "https://github.com/RyoJerryYu",
"isDesktopOnly": true
}

View File

@ -1 +0,0 @@
main.js

View File

@ -1,31 +0,0 @@
module.exports = {
root: true,
parser: "@typescript-eslint/parser",
parserOptions: {
ecmaVersion: 2020,
sourceType: "module",
},
extends: ["prettier", "plugin:prettier/recommended"],
env: {
browser: true,
node: true,
},
plugins: [
"@typescript-eslint",
"jsdoc",
"prefer-arrow",
"simple-import-sort",
],
rules: {
"simple-import-sort/imports": "error",
"simple-import-sort/exports": "error",
"prefer-arrow/prefer-arrow-functions": [
"warn",
{
disallowPrototype: true,
singleReturnOnly: false,
classPropertiesAllowed: false,
},
],
},
};

View File

@ -1,16 +0,0 @@
# Intellij
*.iml
.idea
# npm
node_modules
package-lock.json
# build
main.js
*.js.map
styles.css
build
# saved config
data.json

View File

@ -1,20 +0,0 @@
{
"singleQuote": false,
"tabWidth": 2,
"trailingComma": "all",
"overrides": [
{
"files": ".prettierrc",
"options": {
"parser": "json"
}
},
{
"files": "*.yml",
"options": {
"tabWidth": 2,
"singleQuote": false
}
}
]
}

View File

@ -1,28 +0,0 @@
## [0.3.1](https://github.com/aidenlx/mx-bili-plugin/compare/0.3.0...0.3.1) (2021-07-30)
### Bug Fixes
* fix bili fail to get url in foreign countries ([fe3eaf0](https://github.com/aidenlx/mx-bili-plugin/commit/fe3eaf04a9c02c8e7ca5ce9f690c67c3cd35c464))
# [0.3.0](https://github.com/aidenlx/mx-bili-plugin/compare/0.2.0...0.3.0) (2021-07-29)
### Features
* add bilibili page support ([fae0e94](https://github.com/aidenlx/mx-bili-plugin/commit/fae0e943b568b0d6bf8ba2bcdd1b6dbee209fead))
# [0.2.0](https://github.com/aidenlx/mx-bili-plugin/compare/0.1.0...0.2.0) (2021-07-26)
### Features
* random port when default port is used ([74ed1d6](https://github.com/aidenlx/mx-bili-plugin/commit/74ed1d65993bf567c2257018b4670f1dc7a78dc2))
# 0.1.0 (2021-07-25)
### Features
* migrate code from Media Extended ([39c27c4](https://github.com/aidenlx/mx-bili-plugin/commit/39c27c492c3fd920a6acf858b340f20ae650bbc0))

View File

@ -1,7 +0,0 @@
Copyright (C) 2021-present AidenLx
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@ -1,69 +0,0 @@
# Media Extended BiliBili Plugin
Add advanced bilibili videos support for [Media Extended](https://github.com/aidenlx/media-extended). Required by Media Extended v2.9.0+
为Media Extended v2.9.0+添加高级Bilibili支持
- 文档嵌入视频片段 Embed Video Fragment
- 文档嵌入时间戳 Timestamp Link
- 高清分辨率 High Resolution Video
- 倍速/循环/自动播放 Speed Control/Loop/Autoplay
- 画中画 Picture-in-Picture
- 更多... and more...
## How to use
注意该插件会打开一个默认端口2233的反向代理服务器若该端口不可用请到Media Extended的设置页中修改端口
Note: This plugin will open a reverse proxy server at port 2233 by default. If the port is used, please go to the setting tab of Media Extended to set another port
***
1. 安装该插件 Install the plugin
2. 在`第三方插件`中启用该插件 Enable the plugin in `Community Plugins`
3. 在Media Extended设置页中确认`高级Bilibili支持`可用且已开启 Make sure `高级Bilibili支持` is avaiable and enabled
4. 开始使用插件 The plugin is ready to use
## Compatibility
The required API feature is only available for Obsidian v0.12.2+.
## Installation
### From Obsidian
1. Open `Settings` > `Third-party plugin`
2. Make sure Safe mode is **off**
3. Click `Browse community plugins`
4. Search for this plugin
5. Click `Install`
6. Once installed, enable this plugin and close the community plugins window and the plugin is ready to use.
***
1. 打开`设置`>`第三方插件`
2. 确保安全模式为`关闭`
3. 点击`浏览社区插件`
4. 搜索此插件
5. 点击`安装`
6. 安装完成后,启用该插件并关闭安装窗口,插件即可使用
### From GitHub
1. Download the Latest Release from the Releases section of the GitHub Repository
2. Put files to your vault's plugins folder: `<vault>/.obsidian/plugins/mx-bili-plugin`
3. Reload Obsidian
4. If prompted about Safe Mode, you can disable safe mode and enable the plugin.
Otherwise, head to Settings, third-party plugins, make sure safe mode is off and
enable the plugin from there.
> Note: The `.obsidian` folder may be hidden. On macOS, you should be able to press `Command+Shift+Dot` to show the folder in Finder.
***
1. 从GitHub仓库的Releases下载最新版本
2. 把文件放在对应Vault的插件文件夹下`<vault>/.obsidian/plugins/mx-bili-plugin`
3. 重新加载Obsidian
4. 如果出现有关安全模式的提示,则可以禁用安全模式并启用插件。否则,请转到`设置`→`第三方插件`,确保关闭安全模式,然后从`第三方插件`启用插件
> 注意,`.obsidian`文件夹为隐藏文件夹在macOS的Finder下可以按`Command+Shift+.`以显示隐藏文件夹

View File

@ -1,10 +0,0 @@
{
"id": "mx-bili-plugin",
"name": "Media Extended BiliBili Plugin",
"version": "0.3.1",
"minAppVersion": "0.12.2",
"description": "Add advanced bilibili videos support for Media Extended plugin",
"author": "AidenLx",
"authorUrl": "https://github.com/AidenLx/",
"isDesktopOnly": true
}

View File

@ -1,99 +0,0 @@
{
"name": "mx-bili-plugin",
"version": "0.3.1",
"description": "Add advanced bilibili videos support for Media Extended plugin",
"main": "main.js",
"scripts": {
"dev": "sed -i '' \"s#return adapter;#return require('./adapters/http');#\" node_modules/axios/lib/defaults.js && rollup --config rollup.config.js -w",
"build": "sed -i '' \"s#return adapter;#return require('./adapters/http');#\" node_modules/axios/lib/defaults.js && rollup --config rollup.config.js",
"prettier": "prettier --write 'src/**/*.+(ts|tsx|json|html|css)'",
"eslint": "eslint . --ext .ts,.tsx --fix",
"release": "release-it"
},
"keywords": [],
"author": "AidenLx",
"license": "MIT",
"devDependencies": {
"@release-it/bumper": "^3.0.1",
"@release-it/conventional-changelog": "^3.0.1",
"@rollup/plugin-commonjs": "^19.0.1",
"@rollup/plugin-json": "^4.1.0",
"@rollup/plugin-node-resolve": "^13.0.2",
"@rollup/plugin-typescript": "^8.2.3",
"@types/express": "^4.17.13",
"@types/json-schema": "^7.0.8",
"@types/node": "^16.4.0",
"@typescript-eslint/eslint-plugin": "^4.28.4",
"@typescript-eslint/parser": "^4.28.4",
"assert-never": "^1.2.1",
"axios": "^0.21.1",
"bili-api": "github:aidenlx/bili-api",
"cz-conventional-changelog": "^3.3.0",
"eslint": "^7.31.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-jsdoc": "^35.5.0",
"eslint-plugin-prefer-arrow": "^1.2.3",
"eslint-plugin-prettier": "^3.4.0",
"eslint-plugin-simple-import-sort": "^7.0.0",
"express": "^4.17.1",
"get-port": "^5.1.1",
"http-proxy-middleware": "^2.0.1",
"json": "^11.0.0",
"obsidian": "^0.12.11",
"prettier": "^2.3.2",
"release-it": "^14.10.0",
"rollup": "^2.53.3",
"rollup-plugin-copy": "^3.4.0",
"tslib": "^2.3.0",
"typescript": "^4.3.5",
"xmlbuilder2": "^2.4.1"
},
"release-it": {
"hooks": {
"before:init": [
"npm run prettier",
"npm run eslint"
],
"after:bump": [
"json -I -f manifest.json -e \"this.version='${version}'\"",
"json -I -f versions.json -e \"this['${version}']='$(cat manifest.json | json minAppVersion)'\"",
"sed -i '' \"s/available for Obsidian v.*$/available for Obsidian v$(cat manifest.json | json minAppVersion)+./\" README.md",
"git add .",
"npm run build"
],
"after:release": "echo Successfully released ${name} v${version} to ${repo.repository}."
},
"git": {
"commitMessage": "chore: release v${version}",
"tagName": "${version}",
"tagAnnotation": "Release v${version}"
},
"npm": {
"publish": false
},
"github": {
"release": true,
"assets": [
"main.js",
"manifest.json",
"styles.css"
],
"proxy": "http://127.0.0.1:7890",
"releaseName": "${version}"
},
"plugins": {
"@release-it/bumper": {
"out": "manifest.json"
},
"@release-it/conventional-changelog": {
"preset": "angular",
"infile": "CHANGELOG.md"
}
}
},
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
}
}

View File

@ -1,35 +0,0 @@
import commonjs from "@rollup/plugin-commonjs";
import json from "@rollup/plugin-json";
import { nodeResolve } from "@rollup/plugin-node-resolve";
import typescript from "@rollup/plugin-typescript";
import copy from "rollup-plugin-copy";
const isProd = process.env.BUILD === "production";
const banner = `/*
THIS IS A GENERATED/BUNDLED FILE BY ROLLUP
if you want to view the source visit the plugins github repository
*/
`;
export default {
input: "src/mxbili-main.ts",
output: {
file: "build/main.js",
sourcemap: "inline",
sourcemapExcludeSources: isProd,
format: "cjs",
exports: "default",
banner,
},
external: ["obsidian"],
plugins: [
typescript(),
nodeResolve({ browser: true, preferBuiltins: true }),
commonjs(),
json(),
copy({
targets: [{ src: "manifest.json", dest: "build" }],
}),
],
};

View File

@ -1,63 +0,0 @@
import axios from "axios";
import { returnBody } from "bili-api/player/general";
import * as Pagelist from "bili-api/player/pagelist";
import * as PlayUrl from "bili-api/player/playurl";
export const enum vidType {
avid,
bvid,
}
export const isBiliVId = (id: string | number): vidType | null => {
if (typeof id === "number" && Number.isInteger(id)) return vidType.avid;
else if (typeof id === "string" && /^bv/i.test(id)) return vidType.bvid;
else console.log("Invalid id: " + id);
return null;
};
export const isDash = (obj: PlayUrl.Data): obj is PlayUrl.DashData =>
(obj as PlayUrl.DashData).dash !== undefined;
export const isTrad = (obj: PlayUrl.Data): obj is PlayUrl.TradData =>
(obj as PlayUrl.TradData).durl !== undefined;
/**
* URLweb端
* @param F = typeof args.fnval
*/
export const getPlayUrl = <F>(args: PlayUrl.Params, cookie?: string) => {
const url = "http://api.bilibili.com/x/player/playurl";
// @ts-ignore
const { avid, bvid } = args;
if (
(avid && isBiliVId(avid) === vidType.avid) ||
(bvid && isBiliVId(bvid) === vidType.bvid)
) {
let headers: any = {};
if (cookie) headers.Cookie = cookie;
return axios.get<
F extends PlayUrl.fetch_method.dash
? returnBody<PlayUrl.DashData>
: returnBody<PlayUrl.TradData>
>(url, { params: args, headers });
} else throw new TypeError(`Invalid avid ${avid}/bvid ${bvid}`);
};
/**
* P列表 (avID转CID)
*/
export const getPageList = async (arg: Pagelist.Params) => {
const url = "http://api.bilibili.com/x/player/pagelist";
// @ts-ignore
const { aid, bvid } = arg;
if (
(aid && isBiliVId(aid) === vidType.avid) ||
(bvid && isBiliVId(bvid) === vidType.bvid)
)
return axios.get<Pagelist.Return>(url, { params: arg });
else throw new TypeError(`Invalid aid ${aid}/bvid ${bvid}`);
};

View File

@ -1,66 +0,0 @@
import { DashData } from "bili-api/player/playurl";
import { create } from "xmlbuilder2";
export const toMPD = (data: DashData) => {
const d = data.dash;
let videos = d.video
?.filter((v) => v.codecs.startsWith("avc1"))
.map((v) => ({
BaseURL: v.baseUrl,
"@id": v.id,
"@mimeType": v.mimeType,
"@bandwidth": v.bandwidth,
"@codecs": v.codecs,
"@width": v.width,
"@height": v.height,
"@frameRate": v.frameRate,
"@sar": v.sar,
"@startWithSap": v.startWithSap,
SegmentBase: {
"@indexRange": v.SegmentBase.indexRange,
"@Initialization": v.SegmentBase.Initialization,
},
}));
let audios = d.audio?.map((v) => ({
BaseURL: v.baseUrl,
"@id": v.id,
"@mimeType": v.mimeType,
"@bandwidth": v.bandwidth,
"@codecs": v.codecs,
"@startWithSap": v.startWithSap,
SegmentBase: {
"@indexRange": v.SegmentBase.indexRange,
"@Initialization": v.SegmentBase.Initialization,
},
}));
// prettier-ignore
const root = create({ version: '1.0' })
.ele("urn:mpeg:dash:schema:mpd:2011","MPD",{
profiles: "urn:mpeg:dash:profile:isoff-on-demand:2011,http://dashif.org/guidelines/dash264",
type:"static",
minBufferTime: `PT${d.minBufferTime}S`,
mediaPresentationDuration: `PT${d.duration}S`
})
.ele("Period", {duration: `PT${d.duration}S`})
const setup = (type: "video" | "audio") => {
const media = type === "audio" ? audios : videos;
if (media) {
return root
.ele("AdaptationSet", {
contentType: type,
bitstreamSwitching: true,
})
.ele({ Representation: media })
.up();
} else return root;
};
setup("video").up();
setup("audio");
const xml = root.end({ prettyPrint: true });
return xml;
};

View File

@ -1,33 +0,0 @@
import axios from "axios";
const fetchBiliPoster = async (
...args: [aid: number] | [bvid: string]
): Promise<string | null> => {
const [id] = args;
const api = new URL("http://api.bilibili.com/x/web-interface/view");
if (typeof id === "string") api.searchParams.append("bvid", id);
else api.searchParams.append("aid", "av" + id);
return axios
.get(api.toString(), {
headers: {
Origin: "https://www.bilibili.com",
Referer: "https://www.bilibili.com",
"Content-Length": "0",
},
})
.then((response) => {
const json = response.data;
if (json.code !== 0) throw new Error(`${json.code}: ${json.message}`);
else {
return (json.data.pic as string) ?? null;
}
})
.catch((e) => {
console.error(e);
return null;
});
};
export default fetchBiliPoster;

View File

@ -1,34 +0,0 @@
import {
createProxyMiddleware,
Options,
RequestHandler,
} from "http-proxy-middleware";
export const Route = "/fake/:host/";
const ua =
"Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.63";
const proxyOpt: Options = {
target: "http://www.example.org", // target host
changeOrigin: true, // needed for virtual hosted sites
ws: true, // proxy websockets
pathRewrite: {
"^/fake/.+?/": "/", // rewrite path
},
router: (req) => {
return "https://" + req.params.host;
},
onProxyReq: (proxyReq) => {
proxyReq.setHeader("user-agent", ua);
proxyReq.setHeader("referer", "https://www.bilibili.com/");
proxyReq.setHeader("origin", "https://www.bilibili.com");
},
onProxyRes: (proxyRes) => {
proxyRes.headers["Access-Control-Allow-Origin"] = "*";
},
};
export const getProxy = (): RequestHandler => {
const proxy = createProxyMiddleware(proxyOpt);
return proxy;
};

View File

@ -1,168 +0,0 @@
import assertNever from "assert-never";
import { statusCode } from "bili-api/player/general";
import type * as Pagelist from "bili-api/player/pagelist";
import type * as PlayUrl from "bili-api/player/playurl";
import { fetch_method } from "bili-api/player/playurl";
import { RequestHandler } from "express";
import {
getPageList,
getPlayUrl,
isDash,
isTrad,
vidType,
} from "../bili-tools";
import { toMPD } from "../dash-tool";
type vid =
| { type: vidType.bvid; value: string }
| { type: vidType.avid; value: number };
export const Route = "/geturl/:vid(av\\d+|bv\\w+)";
let Cookie: string | undefined;
let PORT: number;
export const getHandler = (
port: number = 2233,
cookie?: string,
): RequestHandler => {
Cookie = cookie;
PORT = port;
const shell: RequestHandler = async (req, res, next) => {
try {
getUrl(req, res, next);
} catch (error) {
console.error(error);
res.status(500).send(error);
}
};
return shell;
};
const getUrl: RequestHandler = async (req, res, next) => {
const rawId = req.params.vid;
let id: vid;
let page: number | null;
let idValue = rawId.substring(2);
if (/^av/i.test(rawId) && parseInt(idValue, 10))
id = { type: vidType.avid, value: parseInt(idValue, 10) };
else if (/^bv/i.test(rawId)) id = { type: vidType.bvid, value: idValue };
else {
throw new Error("invalid avid/bvid");
}
const p = req.query.page;
if (typeof p === "string" && parseInt(p, 10)) {
page = parseInt(p, 10);
} else {
page = null;
if (p) console.error("invalid p, ignored" + p);
}
let cid;
try {
cid = await getCid(id, page);
} catch (error) {
throw new Error("failed to fetch cid, error:" + error);
}
let playData;
try {
playData = await getPlayData(id, cid);
} catch (error) {
throw new Error("failed to fetch playData, error:" + error);
}
const mpd = toMPD(convertToFakeUrl(playData) as PlayUrl.DashData);
res.set({
"Content-Type": "application/dash+xml; charset=utf-8",
"Access-Control-Allow-Origin": "*",
});
res.send(mpd);
};
const getCid = async (id: vid, page: number | null) => {
let argPl: Pagelist.Params;
switch (id.type) {
case vidType.avid:
argPl = { aid: id.value };
break;
case vidType.bvid:
argPl = { bvid: "BV" + id.value };
break;
default:
assertNever(id);
}
const pagelistData = (await getPageList(argPl)).data;
if (pagelistData.code !== statusCode.success) {
throw new Error(-pagelistData.code + ": " + pagelistData.message);
}
let cid;
if (page) cid = pagelistData.data[page - 1].cid;
else cid = pagelistData.data[0].cid;
return cid;
};
const getPlayData = async (id: vid, cid: number) => {
let argPu: PlayUrl.Params;
switch (id.type) {
case vidType.avid:
argPu = { avid: id.value, cid };
break;
case vidType.bvid:
argPu = { bvid: "BV" + id.value, cid };
break;
default:
assertNever(id);
}
const fnval = fetch_method.dash;
argPu.fnval = fnval;
let playUrlData = (await getPlayUrl<typeof fnval>(argPu, Cookie)).data;
if (playUrlData.code !== statusCode.success) {
throw new Error(-playUrlData.code + ": " + playUrlData.message);
}
return playUrlData.data;
};
const convertToFakeUrl = (obj: PlayUrl.Data) => {
console.log(obj);
const toFakeUrl = (src: string) => {
let { host, pathname, search } = new URL(src);
return `http://localhost:${PORT}/fake/${host + pathname + search}`;
};
if (isDash(obj)) {
const irMediaInfo = (info: PlayUrl.mediaInfo) => {
info.baseUrl = toFakeUrl(info.baseUrl);
info.base_url = toFakeUrl(info.base_url);
info.backup_url?.forEach((v) => (v = toFakeUrl(v)));
info.backupUrl?.forEach((v) => (v = toFakeUrl(v)));
};
obj.dash.audio?.forEach(irMediaInfo);
obj.dash.video?.forEach(irMediaInfo);
} else if (isTrad(obj)) {
obj.durl.forEach((v) => {
v.url = toFakeUrl(v.url);
v.backup_url.forEach((url) => (url = toFakeUrl(url)));
});
} else {
assertNever(obj);
}
return obj;
};

View File

@ -1,20 +0,0 @@
import { default as express } from "express";
import { NextFunction, Request, Response } from "express";
import * as Fake from "./fake";
import * as PlayUrl from "./play-url";
const getServer = (port: number) => {
const app = express();
app.use(Fake.Route, Fake.getProxy());
app.use(PlayUrl.Route, PlayUrl.getHandler(port));
app.use((err: Error, req: Request, res: Response, next: NextFunction) => {
console.error(err.stack);
res.status(500).send(err.message);
});
return app.listen(port);
};
export default getServer;

View File

@ -1,102 +0,0 @@
import getPort from "get-port";
import { debounce, Notice, Plugin, Setting } from "obsidian";
import fetchBiliPoster from "./fake-bili/fetch-poster";
import getServer from "./fake-bili/proxy/server";
export default class MxBili extends Plugin {
settings: MxBiliSettings = DEFAULT_SETTINGS;
server?: ReturnType<typeof getServer>;
fetchPoster = fetchBiliPoster;
setupProxy = (port: number): void => {
if (this.server) this.server.close().listen(port);
else {
this.server = getServer(port);
this.server.on("error", (err) => {
if (err.message.includes("EADDRINUSE"))
new Notice("端口已被占用请在Media Extended设置中更改端口号");
else console.error(err);
});
}
};
/**
* detect if port being used, and save free port
* @param port desire port
* @returns free port
*/
setupPort = async (port: number): Promise<number> => {
const newPort = await getPort({ port });
if (newPort !== port) {
new Notice(`${port}端口已被占用,切换至${newPort}`);
}
if (this.settings.port !== newPort) {
this.settings.port = newPort;
await this.saveSettings();
}
return newPort;
};
async onload() {
console.log("loading MxBili");
await this.loadSettings();
const newPort = await this.setupPort(this.settings.port);
this.setupProxy(newPort);
}
onunload() {
console.log("unloading MxBili");
this.server?.close();
}
async loadSettings() {
this.settings = { ...this.settings, ...(await this.loadData()) };
}
async saveSettings() {
await this.saveData(this.settings);
}
portSetting = (containerEl: HTMLElement) =>
new Setting(containerEl)
.setName("代理端口号")
.setDesc("若与现有端口冲突请手动指定其他端口")
.addText((text) => {
const save = debounce(
async (value: string) => {
const newPort = await this.setupPort(+value);
if (newPort !== +value) text.setValue(newPort.toString());
this.setupProxy(newPort);
},
500,
true,
);
text
.setValue(this.settings.port.toString())
.onChange(async (value: string) => {
text.inputEl.toggleClass("incorrect", !isVaildPort(value));
if (isVaildPort(value) && this.settings.port !== +value)
save(value);
});
});
}
interface MxBiliSettings {
port: number;
}
const DEFAULT_SETTINGS: MxBiliSettings = {
port: 2233,
};
const isVaildPort = (str: string) => {
const test =
/^()([1-9]|[1-5]?[0-9]{2,4}|6[1-4][0-9]{3}|65[1-4][0-9]{2}|655[1-2][0-9]|6553[1-5])$/;
return test.test(str);
};

View File

@ -1,18 +0,0 @@
{
"compilerOptions": {
"baseUrl": "src",
"outDir": "",
"inlineSourceMap": true,
"inlineSources": true,
"module": "ESNext",
"target": "es6",
"allowJs": true,
"noImplicitAny": true,
"moduleResolution": "node",
"importHelpers": true,
"strict": true,
"allowSyntheticDefaultImports": true,
"lib": ["dom", "es5", "scripthost", "es2015"]
},
"include": ["src/**/*.ts"]
}

View File

@ -1,6 +0,0 @@
{
"0.1.0": "0.12.2",
"0.2.0": "0.12.2",
"0.3.0": "0.12.2",
"0.3.1": "0.12.2"
}

View File

@ -0,0 +1,3 @@
{
"twitterEmojiActive": true
}

View File

@ -0,0 +1,26 @@
{
"cascadeColors": true,
"colorBackground": true,
"palette": [
{
"id": "rHNAIRZI-8uC9aA1H-PRj",
"name": "紫",
"value": "#b374b4"
},
{
"id": "_ug0_SEc4JOPl0jUI1Vfi",
"name": "蓝",
"value": "#90c4e4"
}
],
"fileColors": [
{
"path": "Omnivore",
"color": "rHNAIRZI-8uC9aA1H-PRj"
},
{
"path": "Memos",
"color": "_ug0_SEc4JOPl0jUI1Vfi"
}
]
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
{"id":"obsidian-file-color","name":"File Color","version":"1.1.0","minAppVersion":"1.2.7","description":"An Obsidian plugin for setting colors on folders and files in the file tree.","author":"ecustic","authorUrl":"https://github.com/ecustic","fundingUrl":"https://www.buymeacoffee.com/ecustic","isDesktopOnly":false}

View File

@ -0,0 +1,27 @@
/* TEXT COLORING, NO CASCADE */
.workspace-leaf-content[data-type="file-explorer"] .nav-files-container .file-color-file.file-color-type-text > .nav-folder-title,
.workspace-leaf-content[data-type="file-explorer"] .nav-files-container .file-color-file.file-color-type-text > .nav-file-title
{
color: var(--file-color-color);
}
/* TEXT COLORING, WITH CASCADE */
.workspace-leaf-content[data-type="file-explorer"] .nav-files-container .file-color-file.file-color-type-text.file-color-cascade .nav-folder-title,
.workspace-leaf-content[data-type="file-explorer"] .nav-files-container .file-color-file.file-color-type-text.file-color-cascade .nav-file-title
{
color: var(--file-color-color);
}
/* BACKGROUND COLORING, NO CASCADE */
.workspace-leaf-content[data-type="file-explorer"] .nav-files-container .file-color-file.file-color-type-background > .nav-folder-title,
.workspace-leaf-content[data-type="file-explorer"] .nav-files-container .file-color-file.file-color-type-background > .nav-file-title
{
background-color: color-mix(in srgb, var(--file-color-color) 15%, transparent);
}
/* BACKGROUND COLORING, WITH CASCADE */
.workspace-leaf-content[data-type="file-explorer"] .nav-files-container .file-color-file.file-color-type-background.file-color-cascade .nav-folder-title,
.workspace-leaf-content[data-type="file-explorer"] .nav-files-container .file-color-file.file-color-type-background.file-color-cascade .nav-file-title
{
background-color: color-mix(in srgb, var(--file-color-color) 15%, transparent);
}

View File

@ -0,0 +1,33 @@
{
"settings": {
"migrated": 6,
"iconPacksPath": ".obsidian/icons",
"fontSize": 16,
"emojiStyle": "native",
"iconColor": null,
"recentlyUsedIcons": [
"LiBackpack"
],
"recentlyUsedIconsSize": 5,
"rules": [],
"extraMargin": {
"top": 0,
"right": 4,
"bottom": 0,
"left": 0
},
"iconInTabsEnabled": false,
"iconInTitleEnabled": false,
"iconInTitlePosition": "above",
"iconInFrontmatterEnabled": false,
"iconInFrontmatterFieldName": "icon",
"iconColorInFrontmatterFieldName": "iconColor",
"iconsBackgroundCheckEnabled": false,
"iconsInNotesEnabled": true,
"iconsInLinksEnabled": true,
"iconIdentifier": ":",
"lucideIconPackType": "native",
"debugMode": false
},
"Memos": "LiBackpack"
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"id":"obsidian-icon-folder","name":"Iconize","version":"2.14.3","minAppVersion":"0.9.12","description":"Add icons to anything you desire in Obsidian, including files, folders, and text.","author":"Florian Woelki","authorUrl":"https://florianwoelki.com/","isDesktopOnly":false}

View File

@ -0,0 +1,119 @@
.iconize-inline-title-wrapper {
width: var(--line-width);
margin-inline: var(--content-margin);
}
.iconize-title-icon {
max-width: var(--max-width);
margin-right: var(--size-4-2);
}
.iconize-icon-in-link {
transform: translateY(20%);
margin-right: var(--size-2-2);
display: inline-flex;
}
.iconize-icon {
border: 1px solid transparent;
margin: 0px 4px 0px 0px;
display: flex;
align-self: center;
margin: auto 0;
}
.nav-folder-title,
.nav-file-title {
align-items: center;
}
.iconize-setting input[type='color'] {
margin: 0 6px;
}
.iconize-modal.prompt-results {
margin: 0;
overflow-y: auto;
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
}
.prompt .iconize-subheadline {
margin-top: 12px;
font-size: 12px;
color: gray;
grid-column-start: 1;
grid-column-end: 6;
}
@media (max-width: 640px) {
.iconize-modal.prompt-results {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.prompt .iconize-subheadline {
grid-column-end: 4;
}
}
.iconize-modal.prompt-results .suggestion-item {
cursor: pointer;
white-space: pre-wrap;
display: flex;
justify-content: flex-end;
align-items: center;
flex-direction: column-reverse;
text-align: center;
font-size: 13px;
color: var(--text-muted);
padding: 16px 8px;
line-break: auto;
word-break: break-word;
line-height: 1.3;
}
.iconize-modal.prompt-results .suggestion-item.suggestion-item__center {
justify-content: center;
}
.iconize-icon-preview {
font-size: 22px;
}
.iconize-icon-preview img {
width: 16px;
height: 16px;
}
.iconize-icon-preview svg {
width: 24px;
height: 24px;
color: currentColor;
margin-bottom: 4px;
}
.iconize-dragover {
position: relative;
}
.iconize-dragover-el {
position: absolute;
width: 100%;
height: 100%;
color: var(--text-normal);
background-color: var(--background-secondary-alt);
display: flex;
align-items: center;
justify-content: center;
}
/* Custom rule modal. */
.iconize-custom-modal .modal-content {
display: flex;
align-items: center;
justify-content: center;
}
.iconize-custom-modal .modal-content input {
width: 100%;
margin-right: 0.5rem;
}

View File

@ -42,7 +42,7 @@
"FetchMemosMark": "#memo",
"FetchMemosFromNote": false,
"ShowCommentOnMemos": false,
"ShowLeftSideBar": false,
"ShowLeftSideBar": true,
"MemoListView": "list",
"MemoSaveLocation": "DAILY",
"MemoOtherSaveLocation": {
@ -70,9 +70,9 @@
"OpenThinoGlobally": "CommandOrControl+Shift+T",
"ShowNearMouse": false
},
"startSync": false,
"startSync": true,
"tokenForVerify": {},
"saveThinoType": "FILE",
"saveThinoType": "DAILY",
"showDayMark": false,
"dayMarkRange": "day",
"navigation": false,
@ -116,5 +116,5 @@
"FilterByMetadata": false,
"ShowSourcePath": false,
"ShowUpdateMessage": true,
"SyncManually": false
"SyncManually": true
}

View File

@ -0,0 +1,32 @@
{
"dateHighlightedFormat": "yyyy-MM-dd HH:mm:ss",
"dateSavedFormat": "yyyy-MM-dd HH:mm:ss",
"apiKey": "236022a6-8281-4811-8422-05e79124d375",
"filter": "ARCHIVED",
"syncAt": "2024-09-14T19:08:40",
"customQuery": "in:archive",
"template": "# {{{title}}}\n#Omnivore\n\n[Read on Omnivore]({{{omnivoreUrl}}})\n[Read Original]({{{originalUrl}}})\n\n{{#highlights.length}}\n## Highlights\n\n{{#highlights}}\n> {{{text}}} [⤴️]({{{highlightUrl}}}) {{#labels}} #{{name}} {{/labels}} ^{{{highlightID}}}\n{{#note}}\n\n{{{note}}}\n{{/note}}\n\n{{/highlights}}\n{{/highlights.length}}",
"highlightOrder": "LOCATION",
"syncing": false,
"folder": "Omnivore/{{{date}}}",
"folderDateFormat": "yyyy-MM-dd",
"endpoint": "https://api-prod.omnivore.app/api/graphql",
"filename": "{{{title}}}",
"filenameDateFormat": "yyyy-MM-dd",
"attachmentFolder": "Omnivore/attachments",
"version": "1.10.4",
"isSingleFile": true,
"frequency": 0,
"intervalId": 0,
"frontMatterVariables": [],
"frontMatterTemplate": "",
"syncOnStart": true,
"enableHighlightColorRender": true,
"highlightManagerId": "omni",
"highlightColorMapping": {
"yellow": "#fff3a3",
"red": "#ff5582",
"blue": "#adccff",
"green": "#bbfabb"
}
}

18903
.obsidian/plugins/obsidian-omnivore/main.js vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
{"id":"obsidian-omnivore","name":"Omnivore","version":"1.10.4","minAppVersion":"0.15.0","description":"This is an Omnivore plugin for Obsidian.","author":"Omnivore","authorUrl":"https://github.com/omnivore-app","isDesktopOnly":false}

View File

@ -0,0 +1,77 @@
/* Style the button that is used to open and close the collapsible content */
.omnivore-collapsible {
cursor: pointer;
border-bottom: outset;
}
/* Style the collapsible content. Note: hidden by default */
.omnivore-content {
max-height: 0;
overflow: hidden;
transition: max-height 0.2s ease-out;
}
.omnivore-collapsible:after {
content: '\02795'; /* Unicode character for "plus" sign (+) */
float: right;
}
.omnivore-active:after {
content: '\2796'; /* Unicode character for "minus" sign (-) */
}
.omnivore-highlight-config-container {
border-bottom: 1px solid var(--background-modifier-border);
}
.modal.mod-settings
button:not(.mod-cta):not(.mod-warning).omnivore-btn.omnivore-btn-primary {
color: var(--text-accent);
}
.modal.mod-settings
button:not(.mod-cta):not(.mod-warning).omnivore-btn.omnivore-btn-primary:hover {
color: var(--text-accent-hover);
background-color: var(--background-secondary);
}
/*----------------------------------------------------------------
Omnivore Highlight Color Config Setting
----------------------------------------------------------------*/
.omnivore-highlight-setting-item {
display: grid;
grid-gap: 8px;
grid-template-columns: 0.5fr 7fr;
align-items: center;
border-top: 1px solid var(--background-modifier-border);
}
.omnivore-highlight-setting-icon {
display: flex;
height: 24px;
width: 24px;
}
mark.omni {
background-color: var(--text-highlight-rgb);
font-weight: 500;
margin: 0 -0.05em;
padding: 0.125em 0.15em;
border-radius: 0.25em;
-webkit-box-decoration-break: clone;
box-decoration-break: clone;
}
mark.omni-yellow {
--text-highlight-rgb: var(--omni-yellow);
}
mark.omni-red {
--text-highlight-rgb: var(--omni-red);
}
mark.omni-green {
--text-highlight-rgb: var(--omni-green);
}
mark.omni-blue {
--text-highlight-rgb: var(--omni-blue);
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,10 @@
{
"id": "obsidian-text-expander",
"name": "Text Expander",
"version": "1.1.1",
"minAppVersion": "0.9.12",
"description": "Expand text shortcuts, run shell commands and python scripts right in your editor",
"author": "Nikita Konodyuk",
"authorUrl": "https://github.com/konodyuk",
"isDesktopOnly": false
}

View File

@ -0,0 +1,266 @@
/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
*/
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// main.ts
var main_exports = {};
__export(main_exports, {
default: () => ObsidianToFlomo
});
module.exports = __toCommonJS(main_exports);
var import_obsidian = require("obsidian");
var DEFAULT_SETTINGS = {
flomoAPI: "",
defaultTag: ""
};
var ObsidianToFlomo = class extends import_obsidian.Plugin {
async onload() {
await this.loadSettings();
this.addCommand({
id: "send-to-flomo-all",
name: "Send current content to Flomo",
editorCallback: (editor, view) => {
if (view instanceof import_obsidian.MarkdownView && this.checkSettings()) {
const content = view.getViewData();
if (content) {
new FlomoAPI(this.app, this).sendRequest(content, "The current content has been sent to Flomo");
} else {
new import_obsidian.Notice("No file is currently open. Please open a file and try again.");
}
}
}
});
this.addCommand({
id: "send-to-flomo-selected",
name: "Send selected content to Flomo",
editorCallback: (editor, view) => {
if (view instanceof import_obsidian.MarkdownView && this.checkSettings()) {
const selectedText = editor.getSelection();
if (selectedText) {
new FlomoAPI(this.app, this).sendRequest(selectedText, "The selection has been sent to Flomo");
} else {
new import_obsidian.Notice("No text selected. Please select some text and try again.");
}
}
}
});
this.addCommand({
id: "send-to-flomo-selected-each-line",
name: "Send selected each line individually to Flomo",
editorCallback: (editor, view) => {
if (view instanceof import_obsidian.MarkdownView && this.checkSettings()) {
const selectedText = editor.getSelection();
if (!selectedText) {
new import_obsidian.Notice("No text selected. Please select some text and try again.");
return;
}
new TagModal(this.app, (tags) => {
const trimmedText = selectedText.trim();
const lines = trimmedText.split("\n");
for (const line of lines) {
let content = line.trim();
if (content.length == 0)
continue;
if (tags) {
content += "\n";
for (const tag of tags) {
if (tag && tag.length > 0) {
content += "#" + tag + " ";
}
}
}
new FlomoAPI(this.app, this).sendRequest(content, "The selected lines has been individually sent to Flomo");
}
}).open();
}
}
});
this.addCommand({
id: "send-to-flomo-selected-each-paragraph",
name: "Send selected each paragraph individually to Flomo",
editorCallback: (editor, view) => {
if (view instanceof import_obsidian.MarkdownView && this.checkSettings()) {
const selectedText = editor.getSelection();
if (!selectedText) {
new import_obsidian.Notice("No text selected. Please select some text and try again.");
return;
}
new TagModal(this.app, (tags) => {
const trimmedText = selectedText.trim();
const paragraphs = trimmedText.split(/\n{2,}/);
for (const paragraph of paragraphs) {
let content = paragraph.trim();
if (content.length == 0)
continue;
if (tags) {
content += "\n";
for (const tag of tags) {
if (tag && tag.length > 0) {
content += "#" + tag + " ";
}
}
}
new FlomoAPI(this.app, this).sendRequest(content, "The selected lines has been individually sent to Flomo");
}
}).open();
}
}
});
this.registerEvent(this.app.workspace.on("editor-menu", (menu, editor) => {
if (!editor) {
return;
}
if (editor.getSelection().length === 0) {
return;
}
const selectedText = editor.getSelection();
let trimText = selectedText;
if (selectedText.length > 8) {
trimText = selectedText.substring(0, 3) + "..." + selectedText.substring(selectedText.length - 3, selectedText.length);
} else {
trimText = selectedText;
}
menu.addItem((item) => {
item.setTitle('Send "' + trimText + '" to Flomo').onClick(() => new FlomoAPI(this.app, this).sendRequest(selectedText, "The selection has been sent to Flomo"));
});
}));
this.addSettingTab(new FlomoSettingTab(this.app, this));
}
async loadSettings() {
this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData());
}
async saveSettings() {
await this.saveData(this.settings);
}
checkSettings() {
if (this.settings.flomoAPI == "") {
new import_obsidian.Notice("Please set Flomo API first");
return false;
}
return true;
}
};
var TagModal = class extends import_obsidian.Modal {
constructor(app, onSubmit) {
super(app);
this.onSubmit = onSubmit;
}
onOpen() {
const { contentEl } = this;
contentEl.createEl("h1", { text: "Submit Flomo Tags" });
new import_obsidian.Setting(contentEl).setName("Tags").setDesc("Separate tags with commas. e.g. tag1,tag2").addText((text) => {
text.onChange((value) => {
this.inputTags = value;
});
text.inputEl.addEventListener("keypress", (event) => {
if (event.key === "Enter") {
this.tags = this.inputTags.trim().split(",");
this.onSubmit(this.tags);
this.close();
}
});
});
new import_obsidian.Setting(contentEl).addButton((btn) => btn.setButtonText("Submit").setCta().onClick(() => {
this.close();
this.tags = this.inputTags.trim().split(",");
this.onSubmit(this.tags);
}));
}
onClose() {
const { contentEl } = this;
contentEl.empty();
}
};
var FlomoAPI = class {
constructor(app, plugin) {
this.plugin = plugin;
}
async sendRequest(text, successMsg) {
const imageList = this.extractImages(text);
text = this.removeImageNotations(text);
const xhr = new XMLHttpRequest();
xhr.open("POST", this.plugin.settings.flomoAPI);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.timeout = 5e3;
xhr.send(JSON.stringify({
"content": text,
"image_urls": imageList
}));
xhr.onreadystatechange = this.handleResponse.bind(this, xhr, successMsg);
xhr.onerror = () => {
new import_obsidian.Notice("Network error, please check your connection");
};
xhr.ontimeout = () => {
new import_obsidian.Notice("Request timed out, please try again later");
};
}
extractImages(text) {
const regex = /!\[\[(.*?)\]\]/g;
const matches = text.matchAll(regex);
const imageList = [];
for (const match of matches) {
const image = match[1];
imageList.push(image);
}
return imageList;
}
removeImageNotations(text) {
return text.replace(/!\[\[(.*?)\]\]/g, "");
}
handleResponse(xhr, successMsg) {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
try {
const json = JSON.parse(xhr.responseText);
if (json.code == 0) {
if (successMsg)
new import_obsidian.Notice(successMsg);
} else {
new import_obsidian.Notice(json.message + "please check your settings");
}
} catch (e) {
new import_obsidian.Notice("please check your settings");
}
} else {
new import_obsidian.Notice("Request failed with status code " + xhr.status);
}
}
}
};
var FlomoSettingTab = class extends import_obsidian.PluginSettingTab {
constructor(app, plugin) {
super(app, plugin);
this.plugin = plugin;
}
display() {
const { containerEl } = this;
containerEl.empty();
containerEl.createEl("h2", { text: "Settings for Obsidian to Flomo" });
new import_obsidian.Setting(containerEl).setName("Flomo API").setDesc("The plugin does not save your API key, it is only used to send requests.").addText((text) => text.setPlaceholder("https://flomoapp.com/iwh/xxxxxx/xxxxxx/").setValue(this.plugin.settings.flomoAPI).onChange(async (value) => {
this.plugin.settings.flomoAPI = value;
await this.plugin.saveSettings();
}));
containerEl.createEl("button", { text: "Send a test request" }).addEventListener("click", () => {
new FlomoAPI(this.app, this.plugin).sendRequest("This is a test request", "The test request has been sent to Flomo");
});
}
};

View File

@ -0,0 +1 @@
{"id":"obsidian-to-flomo","name":"Share to Flomo","version":"0.1.9","minAppVersion":"0.15.0","description":"Quickly share content to Flomo.","author":"Xiaoyu Li","authorUrl":"https://www.metalyoung.com/","isDesktopOnly":false}

View File

@ -0,0 +1,8 @@
/*
This CSS file will be included with your plugin, and
available in the app when your plugin is enabled.
If your plugin does not need CSS, delete this file.
*/

View File

@ -1,32 +0,0 @@
{
"periodicNotesPath": "PeriodicNotes",
"usePeriodicAdvanced": false,
"periodicNotesTemplateFilePathYearly": "",
"periodicNotesTemplateFilePathQuarterly": "",
"periodicNotesTemplateFilePathMonthly": "",
"periodicNotesTemplateFilePathWeekly": "",
"periodicNotesTemplateFilePathDaily": "",
"projectsPath": "1. Projects",
"projectsTemplateFilePath": "",
"areasPath": "2. Areas",
"areasTemplateFilePath": "",
"resourcesPath": "3. Resources",
"resourcesTemplateFilePath": "",
"archivesPath": "4. Archives",
"archivesTemplateFilePath": "",
"projectListHeader": "Project List",
"areaListHeader": "First Things Dimension",
"habitHeader": "Habit",
"dailyRecordHeader": "Daily Record",
"dailyRecordAPI": "",
"dailyRecordToken": "",
"dailyRecordWarning": true,
"dailyRecordCreating": false,
"useDailyRecord": false,
"usePeriodicNotes": true,
"usePARANotes": true,
"usePARAAdvanced": false,
"paraIndexFilename": "readme",
"weekStart": -1,
"useChineseCalendar": true
}

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
{"id":"periodic-para","name":"LifeOS","version":"1.17.5","minAppVersion":"0.15.0","description":"Life management system(Assist in practicing the PARA method with periodic notes and usememos).","author":"YiBing Lin","authorUrl":"https://quanru.github.io","fundingUrl":"https://www.buymeacoffee.com/leyang","isDesktopOnly":false}

View File

@ -1,106 +0,0 @@
/* src/component/CreateNote/index.less */
.periodic-para-create-note {
overflow: hidden !important;
}
.periodic-para-create-note * {
font-family: var(--font-interface);
}
.periodic-para-create-note button:not(.ant-btn) {
background-color: unset;
box-shadow: unset;
}
.periodic-para-create-note .ant-picker-cell-selected .ant-picker-cell-inner .cell-container .chinese-cal {
color: #fff;
}
.periodic-para-create-note .ant-picker-cell-inner {
display: flex !important;
width: 100% !important;
height: 100% !important;
align-items: center;
justify-content: center;
}
.periodic-para-create-note .ant-picker-cell-inner .cell-container {
position: relative;
border-radius: 10px;
}
.periodic-para-create-note .ant-picker-cell-inner .cell-container .chinese-cal {
display: block;
line-height: initial;
font-size: 11px;
color: rgba(153, 153, 153, 0.45);
}
.periodic-para-create-note .ant-picker-cell-inner .cell-container .dot {
position: relative;
height: 2px;
color: var(--interactive-accent);
display: block;
margin: auto;
top: -15px;
}
.periodic-para-create-note .ant-picker-cell-inner .cell-container .week-dot {
position: fixed;
height: 2px;
left: 20px;
color: var(--interactive-accent);
}
.periodic-para-create-note .ant-picker-cell-inner .cell-container .label {
position: absolute;
top: -5px;
right: -8px;
color: #fff;
width: 13px;
line-height: 13px;
border-radius: 8px;
font-size: 8px;
}
.periodic-para-create-note .ant-picker-cell-inner .cell-container .label.workday {
background-color: rgba(153, 153, 153, 0.45);
}
.periodic-para-create-note .ant-picker-cell-inner .cell-container .label.holiday {
background-color: var(--interactive-accent);
}
.periodic-para-create-note .ant-btn-primary {
color: #fff;
background-color: var(--interactive-accent);
box-shadow: 0 2px 0 rgba(5, 145, 255, 0.1);
}
.periodic-para-create-note .ant-tabs-nav {
margin: 8px 0;
}
.periodic-para-create-note .ant-tabs-nav::before {
border: 0;
}
.periodic-para-create-note .ant-form-item .ant-picker {
visibility: hidden;
}
.periodic-para-create-note .ant-form-item .ant-picker-dropdown {
display: flex;
justify-content: center;
position: relative;
inset: -40px auto auto 0px !important;
}
.periodic-para-create-note .ant-form-item .ant-picker-dropdown .ant-picker-panel-container {
border-radius: 0;
box-shadow: unset;
transition: unset;
}
.periodic-para-create-note .ant-form-item .ant-picker-dropdown .ant-picker-header {
border: 0;
}
.periodic-para-create-note .ant-form-item .ant-picker-dropdown .ant-picker-body {
padding: 0 18px;
}
.periodic-para-create-note .ant-form-item .ant-picker-dropdown .ant-picker-header-view {
line-height: 30px;
}
.periodic-para-create-note .ant-form-item .ant-input-affix-wrapper {
padding: 0 11px;
}
.is-phone .periodic-para button {
width: unset;
}
.is-phone .periodic-para .ant-tabs-tab + .ant-tabs-tab {
margin: 0 0 0 24px;
}
/* src/component/SettingTab/index.less */

View File

@ -0,0 +1,28 @@
{
"server_url": "http://localhost:5000",
"debug": "verbose",
"commands": {
"hello_world": {
"active": true,
"label": "Hello world",
"type": "insert-text"
},
"to_upper_case": {
"active": false,
"label": "Convert to upper case",
"type": "replace-text"
},
"chat": {
"active": false,
"label": "Simple chat service",
"type": "command-line"
},
"random_similarity": {
"active": true,
"label": "Random score similarity",
"type": "panel",
"icon": "gear",
"invokeOnOpen": true
}
}
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,10 @@
{
"id": "python-lab-plugin",
"name": "Python lab",
"version": "0.2.5",
"minAppVersion": "0.11.6",
"description": "An interface to experiment with python scripts and more.",
"author": "Cristian Vasquez",
"isDesktopOnly": false,
"repo":"cristianvasquez/obsidian-lab"
}

View File

@ -0,0 +1,18 @@
.python-lab-title {
width: 70%;
margin: 0 auto;
text-align: left;
}
.python-lab-text {
width: 70%;
margin: 0 auto;
text-align: center;
}
.python-lab-error {
width: 70%;
margin: 0 auto;
text-align: center;
color: red;
}

View File

@ -5,9 +5,9 @@
"devMode": false,
"templateFolderPath": "",
"announceUpdates": true,
"version": "0.14.0",
"version": "1.11.1",
"disableOnlineFeatures": true,
"enableRibbonIcon": false,
"enableRibbonIcon": true,
"ai": {
"defaultModel": "Ask me",
"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.",
@ -68,7 +68,7 @@
"useQuickAddTemplateFolder": true,
"incrementFileNameSettingMoveToDefaultBehavior": true,
"mutualExclusionInsertAfterAndWriteToBottomOfFile": true,
"setVersionAfterUpdateModalRelease": false,
"addDefaultAIProviders": false
"setVersionAfterUpdateModalRelease": true,
"addDefaultAIProviders": true
}
}

View File

@ -1,61 +1,125 @@
{
"recentFiles": [
{
"basename": "Web剪藏",
"path": "01 InBox/Web剪藏/Web剪藏.md"
"basename": "Gitml",
"path": "06Revin Spaces/blog/Tools/Git/Gitml.md"
},
{
"basename": "创建链接",
"path": "创建链接.md"
"basename": "basic.thino",
"path": "basic.thino.md"
},
{
"basename": "tag",
"path": "tag.md"
"basename": "2024-09-16",
"path": "2024-09-16.md"
},
{
"basename": "2024-09-10",
"path": "01 InBox/2024-09-10.md"
"basename": "2024-09-15",
"path": "2024-09-15.md"
},
{
"basename": "2024-09-14",
"path": "2024-09-14.md"
},
{
"basename": "Tp-Index.md",
"path": "20Extra/Templates/Tp-Index.md.md"
},
{
"basename": "Tp-Task List.md",
"path": "20Extra/Templates/Tp-Task List.md.md"
},
{
"basename": "Tp-通用模板.md",
"path": "20Extra/Templates/Tp-通用模板.md.md"
},
{
"basename": "Spaces-Visit",
"path": "06Revin Spaces/Spaces-Visit.md"
},
{
"basename": "Revin-目录",
"path": "06Revin Spaces/Revin-目录.md"
},
{
"basename": "欢迎",
"path": "06Revin Spaces/欢迎.md"
},
{
"basename": "未命名 1",
"path": "20Extra/未命名 1.md"
},
{
"basename": "未命名",
"path": "02-Calendar/未命名.md"
"path": "20Extra/未命名.md"
},
{
"basename": "Drawing 2024-03-21 21.47.19.excalidraw",
"path": "30-Tools/Excalidraw/Drawing 2024-03-21 21.47.19.excalidraw.md"
"basename": "calloutForContent.md",
"path": "20Extra/Templates/cmd/calloutForContent.md.md"
},
{
"basename": "Drawing 2024-04-28 19.59.24.excalidraw",
"path": "30-Tools/Excalidraw/Drawing 2024-04-28 19.59.24.excalidraw.md"
"basename": "未命名",
"path": "30-Tools/未命名.md"
},
{
"basename": "Drawing 2024-07-28 14.37.56.excalidraw",
"path": "30-Tools/Excalidraw/Drawing 2024-07-28 14.37.56.excalidraw.md"
"basename": "tags.md",
"path": "06Revin Spaces/tags.md.md"
},
{
"basename": "Gitml",
"path": "06 Revin Spaces/blog/Tools/Git/Gitml.md"
},
{
"basename": "TESTU 1",
"path": "00 Index/TESTU 1.md"
"basename": "2024-09-09",
"path": "02-Calendar/2024-09-09.md"
},
{
"basename": "Index",
"path": "00 Index/Index.md"
},
{
"basename": "rustban-Cal",
"path": "06Revin Spaces/develop/rustban-Cal.md"
},
{
"basename": "Drawing 2024-07-28 14.37.56.excalidraw",
"path": "30-Tools/Excalidraw/Drawing 2024-07-28 14.37.56.excalidraw.md"
},
{
"basename": "Dataview-expl.md",
"path": "30-Tools/Dataview-expl.md.md"
},
{
"basename": "bgxs",
"path": "03Life Notes/Trgb/bgxs.md"
},
{
"basename": "testing",
"path": "02-Calendar/testing.md"
},
{
"basename": "tag",
"path": "tag.md"
},
{
"basename": "9月8日来云浮扫描",
"path": "02-Calendar/9月8日来云浮扫描.md"
},
{
"basename": "看板模版",
"path": "02-Calendar/看板模版.md"
},
{
"basename": "rnbookmark20030312",
"path": "06Revin Spaces/blog/Tools/rnbookmark20030312.md"
},
{
"basename": "Organize your Omnivore library with labels",
"path": "Omnivore/2024-09-14/Organize your Omnivore library with labels.md"
},
{
"basename": "index",
"path": "06Revin Spaces/index.md"
},
{
"basename": "IDX-Tag",
"path": "00 Index/IDX-Tag.md"
},
{
"basename": "IDX-项目",
"path": "00 Index/IDX-项目.md"
},
{
"basename": "IDX-双链数量",
"path": "00 Index/IDX-双链数量.md"
},
{
"basename": "IDX-最近修改",
"path": "00 Index/IDX-最近修改.md"
@ -76,121 +140,25 @@
"basename": "IDX-目录",
"path": "00 Index/IDX-目录.md"
},
{
"basename": "IDX-出链",
"path": "00 Index/IDX-出链.md"
},
{
"basename": "IDX-入链",
"path": "00 Index/IDX-入链.md"
},
{
"basename": "IDX-目录文件数",
"path": "00 Index/IDX-目录文件数.md"
},
{
"basename": "今日事项Tab",
"path": "00 Index/今日事项Tab.md"
},
{
"basename": "今日事项4D",
"path": "00 Index/今日事项4D.md"
},
{
"basename": "今日事项Tab",
"path": "00 Index/今日事项Tab.md"
},
{
"basename": "今日事项",
"path": "00 Index/今日事项.md"
},
{
"basename": "看板模版",
"path": "02-Calendar/看板模版.md"
},
{
"basename": "索引笔记",
"path": "索引笔记.md"
},
{
"basename": "2024-09-09",
"path": "02-Calendar/2024-09-09.md"
},
{
"basename": "Tec.md",
"path": "10-Tech Notes/Tec.md.md"
},
{
"basename": "2024-09-13",
"path": "02-Calendar/2024-09-13.md"
},
{
"basename": "Book01.md",
"path": "04-Book/Book01.md.md"
},
{
"basename": "1726158361924",
"path": "20-Extra/image/1726158361924.png"
},
{
"basename": "1726158241531",
"path": "20-Extra/image/1726158241531.png"
},
{
"basename": "1726157893227",
"path": "20-Extra/image/1726157893227.png"
},
{
"basename": "1726157752497",
"path": "20-Extra/image/1726157752497.png"
},
{
"basename": "jygd.md",
"path": "03-Life Notes/dzll/jygd.md.md"
},
{
"basename": "jygd.md.sync-conflict-20240913-002035-B2MWSF3",
"path": "03-Life Notes/dzll/jygd.md.sync-conflict-20240913-002035-B2MWSF3.md"
},
{
"basename": "fa13803d664fd2bfd2884e86022e595",
"path": "20-Extra/image/fa13803d664fd2bfd2884e86022e595.png"
},
{
"basename": "rnbookmark20030312",
"path": "06 Revin Spaces/blog/Tools/rnbookmark20030312.md"
},
{
"basename": "ws.md",
"path": "03-Life Notes/dzll/ws.md.md"
},
{
"basename": "惊喜福利1000词",
"path": "惊喜福利1000词.pdf"
},
{
"basename": "bgxspff.md",
"path": "03-Life Notes/Trgb/bgxspff.md.md"
},
{
"basename": "znsh",
"path": "03-Life Notes/dzll/znsh.md"
},
{
"basename": "bgxs.md",
"path": "03-Life Notes/Trgb/bgxs.md.md"
},
{
"basename": "python_20code",
"path": "06 Revin Spaces/blog/Tech-notes/python/python_20code.md"
},
{
"basename": "pylen",
"path": "06 Revin Spaces/blog/Tech-notes/python/pylen.md"
},
{
"basename": "dash",
"path": "06 Revin Spaces/blog/Tech-notes/python/dash.md"
},
{
"basename": "MD.md",
"path": "01 InBox/MD.md.md"
"path": "06Revin Spaces/blog/Tech-notes/python/pylen.md"
}
],
"omittedPaths": []

View File

@ -7,7 +7,7 @@
""
]
],
"trigger_on_file_creation": true,
"trigger_on_file_creation": false,
"auto_jump_to_cursor": true,
"enable_system_commands": false,
"shell_path": "",
@ -22,9 +22,11 @@
"syntax_highlighting": true,
"syntax_highlighting_mobile": true,
"enabled_templates_hotkeys": [
""
"20Extra/Templates/cmd/calloutForContent.md.md",
"20Extra/Templates/Tp-通用模板.md.md"
],
"startup_templates": [
"",
""
],
"enable_ribbon_icon": true

View File

@ -1,4 +0,0 @@
{
"pluginDirExporter": "",
"vaultDir": "D:\\\\iLanix\\\\isync\\\\github\\\\ObsidianZ"
}

File diff suppressed because one or more lines are too long

View File

@ -1,9 +0,0 @@
{
"id": "vault-exporter",
"name": "Vault Exporter",
"version": "1.0.0",
"minAppVersion": "0.15.0",
"description": "Export current note to another Vault.",
"author": "ZigHolding",
"isDesktopOnly": true
}

3
.obsidian/templates.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"folder": "20Extra/Templates"
}

6
.obsidian/text-generator.json vendored Normal file
View File

@ -0,0 +1,6 @@
{
"packagesHash": {},
"resources": {},
"installedPackagesHash": {},
"subscriptions": []
}

1
.obsidian/themes/Atom/manifest.json vendored Normal file
View File

@ -0,0 +1 @@
{"name":"Atom","version":"1.14.1","minAppVersion":"1.6.2","author":"PipeItToDevNull","authorUrl":"https://docs.dev0.sh"}

472
.obsidian/themes/Atom/theme.css vendored Normal file
View File

@ -0,0 +1,472 @@
.theme-dark {
--background-primary: #272b34;
--background-primary-alt: #20242b;
--background-secondary: #20242b;
--background-secondary-alt: #1a1e24;
--background-accent: #000;
--background-modifier-border: #424958;
--background-modifier-form-field: rgba(0, 0, 0, 0.3);
--background-modifier-form-field-highlighted: rgba(0, 0, 0, 0.22);
--background-modifier-box-shadow: rgba(0, 0, 0, 0.3);
--background-modifier-success: #539126;
--background-modifier-error: #3d0000;
--background-modifier-error-rgb: 61, 0, 0;
--background-modifier-error-hover: #470000;
--background-modifier-cover: rgba(0, 0, 0, 0.6);
--text-accent: #61afef;
--text-accent-hover: #69bafd;
--text-normal: #dcddde;
--text-muted: #888;
--text-faint: rgb(81, 86, 99);
--text-error: #e16d76;
--text-error-hover: #c9626a;
--text-highlight-bg: rgba(255, 255, 0, 0.4);
--text-selection: rgba(0, 122, 255, 0.2);
--text-on-accent: #dcddde;
--interactive-normal: #20242b;
--interactive-hover: #353b47;
--interactive-accent: #4c78cc;
--interactive-accent-rgb: 76, 120, 204;
--interactive-accent-hover: #5082df;
--scrollbar-active-thumb-bg: rgba(255, 255, 255, 0.2);
--scrollbar-bg: rgba(255, 255, 255, 0.05);
--scrollbar-thumb-bg: rgba(255, 255, 255, 0.1);
--panel-border-color: #18191e;
--gray-1: #5C6370;
--gray-2: #abb2bf;
--red: #e06c75;
--orange: #d19a66;
--green: #98c379;
--aqua: #56b6c2;
--purple: #c678dd;
--blue: #61afef;
--yellow: #e5c07b;
}
.theme-light {
--background-primary: #fafafa;
--background-primary-alt: #eaeaeb;
--background-secondary: #eaeaeb;
--background-secondary-alt: #dbdbdc;
--background-accent: #fff;
--background-modifier-border: #dbdbdc;
--background-modifier-form-field: #fff;
--background-modifier-form-field-highlighted: #fff;
--background-modifier-box-shadow: rgba(0, 0, 0, 0.1);
--background-modifier-success: #A4E7C3;
--background-modifier-error: #e68787;
--background-modifier-error-rgb: 230, 135, 135;
--background-modifier-error-hover: #FF9494;
--background-modifier-cover: rgba(0, 0, 0, 0.8);
--text-accent: #1592ff;
--text-accent-hover: #2d9dff;
--text-normal: #383a42;
--text-muted: #8e8e90;
--text-faint: #999999;
--text-error: #e75545;
--text-error-hover: #f86959;
--text-highlight-bg: rgba(255, 255, 0, 0.4);
--text-selection: rgba(0, 122, 255, 0.15);
--text-on-accent: #f2f2f2;
--interactive-normal: #eaeaeb;
--interactive-hover: #dbdbdc;
--interactive-accent-rgb: 21, 146, 255;
--interactive-accent: #5871ef;
--interactive-accent-hover: #445bd1;
--scrollbar-active-thumb-bg: rgba(0, 0, 0, 0.2);
--scrollbar-bg: rgba(0, 0, 0, 0.05);
--scrollbar-thumb-bg: rgba(0, 0, 0, 0.1);
--panel-border-color: #dbdbdc;
--gray-1: #383a42;
--gray-2: #383a42;
--red: #e75545;
--green: #4ea24c;
--blue: #3d74f6;
--purple: #a625a4;
--aqua: #0084bc;
--yellow: #e35649;
--orange: #986800;
}
body {
-webkit-font-smoothing: auto;
}
.titlebar {
background-color: var(--background-secondary-alt);
}
.titlebar-inner {
color: var(--text-normal);
}
.tooltip {
background-color: var(--background-secondary-alt);
color: var(--text-muted);
}
.tooltip:not(.mod-right):not(.mod-left):not(.mod-top) .tooltip-arrow {
border-bottom-color: var(--background-secondary-alt) !important;
}
.mod-right .tooltip-arrow {
border-right-color: var(--background-secondary-alt) !important;
}
.mod-left .tooltip-arrow {
border-left-color: var(--background-secondary-alt) !important;
}
.mod-top .tooltip-arrow {
border-top-color: var(--background-secondary-alt) !important;
}
.dropdown {
cursor: pointer;
background-image: url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%234c78cc%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E);
}
.dropdown:hover {
background-color: var(--background-modifier-form-field);
}
.search-result-file-title {
color: var(--blue);
}
li {
padding-top: 0.5px;
padding-bottom: 0.5px;
}
a.tag, a.tag:hover {
color: var(--yellow);
background-color: var(--background-primary-alt);
padding: 2px 4px;
border-radius: 4px;
}
.markdown-preview-view .task-list-item-checkbox {
-webkit-appearance: none;
box-sizing: border-box;
border: 1px solid var(--text-muted);
border-radius: 2px;
position: relative;
width: 1.3em;
height: 1.3em;
margin: 0;
filter: none;
outline: none;
margin-right: 4px;
margin-bottom: 2px;
cursor: pointer;
vertical-align: baseline;
}
.markdown-preview-view .task-list-item-checkbox:checked {
border: none;
background-color: var(--interactive-accent);
}
.markdown-preview-view .task-list-item-checkbox:checked::before {
content: ' ';
position: absolute;
background-color: white;
left: 2px;
top: 2px;
right: 2px;
bottom: 2px;
-webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 14 14\'%3E%3Cpolygon points=\'5.5 11.9993304 14 3.49933039 12.5 2 5.5 8.99933039 1.5 4.9968652 0 6.49933039\'%3E%3C/polygon%3E%3C/svg%3E');
}
.markdown-preview-view .task-list-item.is-checked a {
filter: saturate(0.8) brightness(0.7);
}
.cm-formatting-task {
font-family: var(--font-monospace);
}
.nav-file, .nav-folder {
padding: 1px 2px;
}
.nav-file-title, .nav-folder-title {
width: 100%;
cursor: default;
display: flex;
align-items: baseline;
flex-direction: row;
--text-normal: var(--text-muted);
}
body:not(.is-grabbing) .nav-file .nav-file-title:hover:not(.is-active), body:not(.is-grabbing) .nav-folder .nav-folder-title:hover:not(.is-active) {
--background-secondary-alt: transparent;
}
.nav-file .is-active {
--background-secondary-alt: var(--interactive-accent);
--text-normal: #ffffff;
}
.nav-file-title-content, .nav-folder-title-content {
text-indent: 0;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
display: block;
}
.markdown-preview-view.is-readable-line-width .markdown-preview-section, .markdown-source-view.is-readable-line-width .CodeMirror {
max-width: 900px !important;
line-height: 26px;
}
blockquote {
margin: 20px 0;
border-radius: 4px !important;
}
body {
--font-monospace: 'Fira Code', 'Source Code Pro', monospace;
}
mjx-container[jax='CHTML'] {
text-align: left;
outline: none;
}
.math-block {
font-size: 1.25em;
}
.cm-s-obsidian pre.HyperMD-codeblock, .cm-s-obsidian span.cm-inline-code, .cm-s-obsidian span.cm-math:not(.cm-formatting-math-begin):not(.cm-formatting-math-end), .markdown-preview-view code {
/* fix `` tag color */
color: #98c379;
}
.cm-s-obsidian span.cm-inline-code, .cm-s-obsidian span.cm-math, .cm-s-obsidian span.hmd-fold-math-placeholder {
/* fix tag size */
font-weight: 100;
font-style: normal;
}
.markdown-preview-view code {
vertical-align: text-top;
word-break: break-word;
}
.markdown-preview-section:not(:first-child) h1, .markdown-preview-section:not(:first-child) h2, .markdown-preview-section:not(:first-child) h3, .markdown-preview-section:not(:first-child) h4, .markdown-preview-section:not(:first-child) h5, .markdown-preview-section:not(:first-child) h6 {
margin-top: 40px !important;
}
.markdown-preview-section h1, .markdown-preview-section h2, .markdown-preview-section h3, .markdown-preview-section h4, .markdown-preview-section h5, .markdown-preview-section h6 {
line-height: 1.2;
}
h1, h2, h3, h4, h5, h6, strong, b, .view-header-title {
font-weight: 600;
}
.workspace>.workspace-split>.workspace-leaf:first-of-type:last-of-type .view-header {
border: none;
}
.status-bar, .side-dock.mod-right, .side-dock.mod-left {
border-color: var(--panel-border-color);
border-width: 1px;
}
.status-bar {
--bar-vertical-padding: 4px;
--bar-height: calc(22px + (var(--bar-vertical-padding) * 2));
line-height: 20px;
padding: 0 20px;
height: var(--bar-height);
max-height: var(--bar-height);
min-height: var(--bar-height);
overflow: hidden;
}
.status-bar-item {
margin: auto 0;
}
.status-bar-item>* {
padding-top: var(--bar-vertical-padding) !important;
padding-bottom: var(--bar-vertical-padding) !important;
}
.side-dock-plugin-panel-inner {
padding-left: 6px;
}
a, .markdown-preview-view .internal-link {
text-decoration: none;
}
a:hover, .markdown-preview-view .internal-link:hover {
text-decoration: underline;
}
.theme-dark :not(pre)>code[class*='language-'], .theme-dark pre[class*='language-'] {
background: var(--background-primary-alt);
}
.theme-light :not(pre)>code[class*='language-'], .theme-light pre[class*='language-'] {
background: var(--background-primary);
box-shadow: inset 0 0 0 1px var(--background-primary-alt);
border-radius: 4px;
}
.markdown-embed:not(.hover-popover .markdown-embed), .file-embed {
margin: 0;
border-radius: 4px;
margin: 0 !important;
margin-inline-start: 30px !important;
margin-inline-end: 30px !important;
}
.markdown-embed {
border: 1px solid var(--background-modifier-border);
border-left-width: 5px;
}
.markdown-embed .markdown-preview-view {
padding: 0 20px;
}
.markdown-embed-link, .file-embed-link {
left: 8px;
right: unset;
}
.theme-light .token.operator, .theme-light .token.entity, .theme-light .token.url, .theme-light .language-css .token.string, .theme-light .style .token.string {
background: transparent;
}
/* Source: https://github.com/AGMStudio/prism-theme-one-dark */
code[class*='language-'], pre[class*='language-'] {
text-align: left !important;
white-space: pre !important;
word-spacing: normal !important;
word-break: normal !important;
word-wrap: normal !important;
line-height: 1.5 !important;
-moz-tab-size: 4 !important;
-o-tab-size: 4 !important;
tab-size: 4 !important;
-webkit-hyphens: none !important;
-moz-hyphens: none !important;
-ms-hyphens: none !important;
hyphens: none !important;
}
/* Code blocks */
pre[class*='language-'] {
padding: 1em !important;
margin: .5em 0 !important;
overflow: auto !important;
}
/* Inline code */
:not(pre)>code[class*='language-'] {
padding: .1em !important;
border-radius: .3em !important;
white-space: normal !important;
}
.token.comment, .token.prolog, .token.doctype, .token.cdata {
color: var(--gray-1) !important;
}
.token.punctuation {
color: var(--gray-2) !important;
}
.token.selector, .token.tag {
color: var(--red) !important;
}
.token.property, .token.boolean, .token.number, .token.constant, .token.symbol, .token.attr-name, .token.deleted {
color: var(--orange) !important;
}
.token.string, .token.char, .token.attr-value, .token.builtin, .token.inserted {
color: var(--green) !important;
}
.token.operator, .token.entity, .token.url, .language-css .token.string, .style .token.string {
color: var(--aqua) !important;
}
.token.atrule, .token.keyword {
color: var(--purple) !important;
}
.token.function, .token.macro.property {
color: var(--blue) !important;
}
.token.class-name {
color: var(--yellow) !important;
}
.token.regex, .token.important, .token.variable {
color: var(--purple) !important;
}
.token.important, .token.bold {
font-weight: bold !important;
}
.token.italic {
font-style: italic !important;
}
.token.entity {
cursor: help !important;
}
pre.line-numbers {
position: relative !important;
padding-left: 3.8em !important;
counter-reset: linenumber !important;
}
pre.line-numbers>code {
position: relative !important;
}
.line-numbers .line-numbers-rows {
position: absolute !important;
pointer-events: none !important;
top: 0 !important;
font-size: 100% !important;
left: -3.8em !important;
width: 3em !important;
/* works for line-numbers below 1000 lines */
letter-spacing: -1px !important;
border-right: 0 !important;
-webkit-user-select: none !important;
-moz-user-select: none !important;
-ms-user-select: none !important;
user-select: none !important;
}
.line-numbers-rows>span {
pointer-events: none !important;
display: block !important;
counter-increment: linenumber !important;
}
.line-numbers-rows>span:before {
content: counter(linenumber) !important;
color: var(--syntax-gray-1) !important;
display: block !important;
padding-right: 0.8em !important;
text-align: right !important;
}

View File

@ -0,0 +1 @@
{"name":"Comfort color dark","version":"1.14.1","minAppVersion":"1.6.2","author":"PipeItToDevNull","authorUrl":"https://docs.dev0.sh"}

View File

@ -0,0 +1,425 @@
.theme-dark
{
--background-primary: #2f3136;
--background-primary-alt: #36393f;
--background-secondary: #202225;
--background-secondary-alt: #0c1018d1;
--text-normal: #bbc0c5;
--text-faint: #a09b80;
--text-title-h1: #a79645;
--text-title-h2: #939bd6;
--text-title-h3: #ba6ea0;
--text-title-h4: #b78b60;
--text-title-h5: #859679;
--text-link: #59a2c5;
--text-a: #59a2c5;
--text-a-hover: #b3a14b;
--text-mark: #d79921;
--pre-code: #272524d9;
--text-highlight-bg: rgba(255, 255, 0, 0.2);
--interactive-accent: #92A1A1;
--interactive-before: #5e6565;
--background-modifier-border: #92a1a17a;
--blockquote-border: rgba(77, 60, 166, .6);
--text-accent: #ff9640ba;
--interactive-accent-rgb: #fe8019;
--font-family-editor: Avenir;
--font-family-preview: Avenir;
}
#graph-view-canvas .links
{
stroke: var(--interactive-accent-rgb) !important;
}
strong {
color: #b5c7c7;
font-weight: 700;
}
em {
color: #b8cece;
}
mark
{
background-color: var(--text-mark) !important;
padding-top: 4px;
padding-bottom: 1px;
}
/**********************/
/* links and brackets */
/**********************/
/* link */
a,
.internal-link,
.cm-hmd-internal-link,
.cm-link,
.cm-formatting-link
{
color: var(--text-a) !important;
text-decoration: none !important;
font-family: Avenir !important;
}
/* link hover color */
a:hover,
.internal-link:hover
{
color: var(--text-a-hover) !important;
text-decoration: none !important;
}
/* make external links italics to differentiate */
a:not(.internal-link) {
font-style: italic;
}
/* blockquote */
.cm-quote /* for editor */
{
color: var(--text-normal) !important;
}
blockquote /* for preview */
{
border-color: var(--blockquote-border) !important;
}
/* icons at top of panes*/
.file-view-actions a
{
color: var(--text-muted) !important;
}
.file-view-actions a:hover
{
color: var(--text-a) !important;
}
/* html tags in editor */
.cm-tag
{
color: var(--text-accent) !important;
}
/* code blocks in preview */
pre code
{
padding: 6px !important;
line-height: normal;
display: block;
background-color: var(--pre-code) !important;
}
.markdown-preview-view pre
{
padding: 0px !important;
}
/* in-line code for editor and preview and code block for editor*/
code,
.cm-inline-code
{
background-color: var(--pre-code) !important;
color: var(--text-muted) !important;
bottom: 0px !important;
}
/* code and code blocks for preview */
.markdown-preview-view code
{
font-size: 13.5px;
}
/**********/
/* tables */
/**********/
th
{
font-weight: 800 !important;
}
thead
{
border-bottom: 4px solid var(--background-modifier-border);
}
.table
{
background-color: var(--background-secondary-alt);
border: 1px solid var(--background-modifier-border);
padding: 4px;
line-height: normal;
display: block;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
border-bottom-left-radius: 4px;
}
/* embedded images */
img
{
display: block;
margin-left: auto;
margin-right: auto;
}
/* horizontal line in preview */
.markdown-preview-view hr
{
background-color: var(--text-normal);
}
/* checkboxes */
.markdown-preview-view .task-list-item-checkbox
{
top: 0px;
}
/*************/
/* side dock */
/*************/
/* side dock text, like file names and backlink context */
.side-dock-panels-container *
{
font-size: 13px !important;
}
/* side dock titles at top */
.side-dock-title
{
font-size: 20px !important;
font-weight: 800 !important;
}
/* hover actions on side dock navigation */
.side-dock-ribbon-tab:hover,
.side-dock-ribbon-tab-inner:hover,
.side-dock-ribbon-action:hover,
.side-dock-ribbon-action.is-active:hover,
.nav-action-button:hover,
.side-dock-collapse-btn:hover
{
color: var(--text-a);
}
/* condense line spacing on file explorer title list. also avoids character-level word breaks */
.nav-file-title-content,
.search-result-file-title,
.search-result-file-match
{
padding-top: 0 !important;
padding-bottom: 0 !important;
line-height: normal !important;
word-break: keep-all;
}
/* clean up side bar empty state (e.g. unlinked mentions) */
.search-empty-state
{
width: auto;
padding-left: 15px;
padding-right: 15px;
line-height: normal;
}
/* font for everything outside of editor/preview panes */
.app-container
{
font-family: var(--font-family-preview);
}
.status-bar-item
{
font-family: var(--font-family-preview);
font-size: 12px;
}
/******************/
/* editor section */
/******************/
/* normal text outside of headings and code */
.cm-s-obsidian
{
font-family: var(--font-family-editor);
font-size: 15px;
color: var(--text-normal);
padding-left: 10% !important;
padding-right: 10% !important;
}
.mod-single-child .cm-s-obsidian
{
font-family: var(--font-family-editor);
font-size: 15px;
color: var(--text-normal);
padding-left: 20% !important;
padding-right: 20% !important;
}
/* headings */
.cm-header-1
{
font-family: var(--font-family-editor);
font-weight: 500;
font-size: 28px;
font-weight: bold;
color: var(--text-title-h1);
}
.cm-header-2
{
font-family: var(--font-family-editor);
font-weight: 500;
font-size: 26px;
font-weight: bold;
color: var(--text-title-h2);
}
.cm-header-3
{
font-family: var(--font-family-editor);
font-weight: 500;
font-size: 22px;
font-weight: bold;
color: var(--text-title-h3);
}
.cm-header-4
{
font-family: var(--font-family-editor);
font-weight: 500;
font-size: 20px;
font-weight: bold;
color: var(--text-title-h4);
}
.cm-header-5
{
font-family: var(--font-family-editor);
font-weight: 500;
font-size: 18px;
font-weight: bold;
color: var(--text-title-h5);
}
.cm-header-6
{
font-family: var(--font-family-editor);
font-weight: 500;
font-size: 16px;
font-weight: bold;
color: var(--text-title-h5);
}
/******************/
/* preview section */
/******************/
/* normal text outside of headings and code */
.markdown-preview-view
{
font-family: var(--font-family-preview);
font-size: 15px;
color: var(--text-normal);
padding-left: 10% !important;
padding-right: 10% !important;
}
.mod-single-child .markdown-preview-view
{
font-family: var(--font-family-preview);
font-size: 15px;
color: var(--text-normal);
padding-left: 20% !important;
padding-right: 20% !important;
}
/* headings */
.markdown-preview-view h1
{
font-family: var(--font-family-preview);
font-weight: 500;
font-size: 28px;
font-weight: bold;
color: var(--text-title-h1);
}
.markdown-preview-view h2
{
font-family: var(--font-family-preview);
font-weight: 500;
font-size: 26px;
font-weight: bold;
color: var(--text-title-h2);
}
.markdown-preview-view h3
{
font-family: var(--font-family-preview);
font-weight: 500;
font-size: 22px;
font-weight: bold;
color: var(--text-title-h3);
}
.markdown-preview-view h4
{
font-family: var(--font-family-preview);
font-weight: 500;
font-size: 20px;
font-weight: bold;
color: var(--text-title-h4);
}
.markdown-preview-view h5,
{
font-family: var(--font-family-preview);
font-weight: 500;
font-size: 18px;
font-weight: bold;
color: var(--text-title-h5);
}
.markdown-preview-view h6
{
font-family: var(--font-family-preview);
font-weight: 500;
font-size: 16px;
font-weight: bold;
color: var(--text-title-h5);
}
/* internal embedded link rendering in preview */
.markdown-embed-title
{
font-weight: 600;
}
.markdown-embed
{
padding-left: 10px !important;
padding-right: 10px !important;
margin-left: 10px !important;
margin-right: 10px !important;
}
/* remove secondary scroll bar in editor that comes from adding variable padding */
.CodeMirror-scroll::-webkit-scrollbar {
display: none;
}
/* to have sidebar hide and then reveal on hover
.app-container.is-left-sidedock-collapsed .side-dock.mod-left:not(:hover), .app-container.is-right-sidedock-collapsed .side-dock.mod-right:not(:hover) {
width: 0px !important;
}
*/

View File

@ -0,0 +1 @@
{"name":"Deep Work","version":"1.14.1","minAppVersion":"1.6.2","author":"PipeItToDevNull","authorUrl":"https://docs.dev0.sh"}

479
.obsidian/themes/Deep Work/theme.css vendored Normal file
View File

@ -0,0 +1,479 @@
:root {
--color-black: #010409;
--color-white: #f7f9fc;
--color-gray-0: #f0f6fc;
--color-gray-1: #c9d1d9;
--color-gray-2: #b1bac4;
--color-gray-3: #8b949e;
--color-gray-4: #6e7681;
--color-gray-5: #484f58;
--color-gray-6: #30363d;
--color-gray-7: #21262d;
--color-gray-8: #161b22;
--color-gray-9: #0d1117;
--color-blue-0: #cae8ff;
--color-blue-1: #a5d6ff;
--color-blue-2: #79c0ff;
--color-blue-3: #58a6ff;
--color-blue-4: #388bfd;
--color-blue-5: #1f6feb;
--color-blue-6: #1158c7;
--color-blue-7: #0d419d;
--color-blue-8: #0c2d6b;
--color-blue-9: #051d4d;
--color-green-0: #aff5b4;
--color-green-1: #7ee787;
--color-green-2: #56d364;
--color-green-3: #3fb950;
--color-green-4: #2ea043;
--color-green-5: #238636;
--color-green-6: #196c2e;
--color-green-7: #0f5323;
--color-green-8: #033a16;
--color-green-9: #04260f;
--color-yellow-0: #f8e3a1;
--color-yellow-1: #f2cc60;
--color-yellow-2: #e3b341;
--color-yellow-3: #d29922;
--color-yellow-4: #bb8009;
--color-yellow-5: #9e6a03;
--color-yellow-6: #845306;
--color-yellow-7: #693e00;
--color-yellow-8: #4b2900;
--color-yellow-9: #341a00;
--color-orange-0: #ffdfb6;
--color-orange-1: #ffc680;
--color-orange-2: #ffa657;
--color-orange-3: #f0883e;
--color-orange-4: #db6d28;
--color-orange-5: #bd561d;
--color-orange-6: #9b4215;
--color-orange-7: #762d0a;
--color-orange-8: #5a1e02;
--color-orange-9: #3d1300;
--color-red-0: #ffdcd7;
--color-red-1: #ffc1ba;
--color-red-2: #ffa198;
--color-red-3: #ff7b72;
--color-red-4: #f85149;
--color-red-5: #da3633;
--color-red-6: #b62324;
--color-red-7: #8e1519;
--color-red-8: #67060c;
--color-red-9: #490202;
--color-purple-0: #eddeff;
--color-purple-1: #e2c5ff;
--color-purple-2: #d2a8ff;
--color-purple-3: #bc8cff;
--color-purple-4: #a371f7;
--color-purple-5: #8957e5;
--color-purple-6: #6e40c9;
--color-purple-7: #553098;
--color-purple-8: #3c1e70;
--color-purple-9: #271052;
--color-pink-0: #ffdaec;
--color-pink-1: #ffbedd;
--color-pink-2: #ff9bce;
--color-pink-3: #f778ba;
--color-pink-4: #db61a2;
--color-pink-5: #bf4b8a;
--color-pink-6: #9e3670;
--color-pink-7: #7d2457;
--color-pink-8: #5e103e;
--color-pink-9: #42062a;
}
.theme-dark {
--background-primary: var(--color-gray-9);
--background-primary-alt: var(--color-gray-8);
--background-secondary: var(--color-gray-8);
--background-secondary-alt: var(--color-gray-7);
--background-modifier-border: var(--color-gray-7);
--background-modifier-form-field: rgba(0, 0, 0, 0.3);
--background-modifier-form-field-highlighted: rgba(
0,
0,
0,
0.22
);
--background-modifier-box-shadow: rgba(0, 0, 0, 0.3);
--background-modifier-success: var(--color-green-4);
--background-modifier-error: var(--color-red-6);
--background-modifier-error-rgb: 61, 0, 0;
--background-modifier-error-hover: var(--color-red-6);
--background-modifier-cover: rgba(0, 0, 0, 0.1);
--text-accent: var(--color-blue-4);
--text-accent-hover: var(--color-blue-3);
--text-normal: var(--color-gray-1);
--text-muted: var(--color-gray-4);
--text-muted-rgb: 153, 153, 153;
--text-faint: var(--color-gray-4);
--text-error: var(--color-red-4);
--text-error-hover: var(--color-red-5);
--text-highlight-bg: rgba(35, 196, 29, 0.4);
--text-highlight-bg-active: rgba(0, 89, 255, 0.4);
--text-selection: rgba(23, 48, 77, 0.99);
--text-on-accent: var(--color-gray-8);
--interactive-normal: var(--color-gray-7);
--interactive-hover: var(--color-gray-5);
--interactive-accent: var(--color-green-4);
--interactive-accent-rgb: 46, 160, 67;
--interactive-accent-hover: var(--color-green-3);
--interactive-success: var(--color-green-5);
--scrollbar-active-thumb-bg: rgba(255, 255, 255, 0.2);
--scrollbar-bg: rgba(255, 255, 255, 0.05);
--scrollbar-thumb-bg: rgba(255, 255, 255, 0.1);
--highlight-mix-blend-mode: lighten;
--color-topic-tag-bg: rgba(56, 139, 253, 0.1);
--cursor-bg: var(--color-green-3);
--active-line-bg: var(--color-gray-8);
}
.theme-light {
--background-primary: var(--color-white);
--background-primary-alt: var(--color-gray-0);
--background-secondary: var(--color-gray-0);
--background-secondary-alt: var(--color-gray-1);
--background-modifier-border: var(--color-gray-1);
--background-modifier-form-field: rgba(0, 0, 0, 0.3);
--background-modifier-form-field-highlighted: rgba(
0,
0,
0,
0.22
);
--background-modifier-box-shadow: rgba(0, 0, 0, 0.3);
--background-modifier-success: var(--color-green-4);
--background-modifier-error: var(--color-red-6);
--background-modifier-error-rgb: 61, 0, 0;
--background-modifier-error-hover: var(--color-red-6);
--background-modifier-cover: rgba(0, 0, 0, 0.1);
--text-accent: var(--color-blue-5);
--text-accent-hover: var(--color-blue-4);
--text-normal: var(--color-gray-8);
--text-muted: var(--color-gray-4);
--text-muted-rgb: 153, 153, 153;
--text-faint: var(--color-gray-4);
--text-error: var(--color-red-4);
--text-error-hover: var(--color-red-5);
--text-highlight-bg: rgba(35, 196, 29, 0.4);
--text-highlight-bg-active: rgba(0, 89, 255, 0.4);
--text-selection: rgba(0, 89, 255, 0.1);
--text-on-accent: var(--color-gray-8);
--interactive-normal: var(--color-gray-7);
--interactive-hover: var(--color-gray-3);
--interactive-accent: var(--color-blue-5);
--interactive-accent-rgb: 31, 111, 235;
--interactive-accent-hover: var(--color-green-3);
--interactive-success: var(--color-green-5);
--scrollbar-active-thumb-bg: rgba(255, 255, 255, 0.2);
--scrollbar-bg: rgba(255, 255, 255, 0.05);
--scrollbar-thumb-bg: rgba(255, 255, 255, 0.1);
--highlight-mix-blend-mode: lighten;
--color-topic-tag-bg: rgba(56, 139, 253, 0.1);
--cursor-bg: var(--color-blue-4);
--active-line-bg: var(--color-gray-0);
}
body {
line-height: 1.5;
word-wrap: break-word;
}
:root {
--default-font: -apple-system, BlinkMacSystemFont, Segoe UI,
Helvetica, Arial, sans-serif, Apple Color Emoji,
Segoe UI Emoji;
--editor-font: ui-monospace, SFMono-Regular, SF Mono, Menlo,
Consolas, Liberation Mono, monospace;
}
.markdown-source-view {
font-family: var(--editor-font);
}
.markdown-preview-view {
font-family: var(--default-font);
}
body .dropdown {
filter: hue-rotate(250deg) brightness(215%);
}
body [data-type="file-explorer"] .nav-files-container {
padding: 1rem;
}
body
[data-type="file-explorer"]
.nav-files-container
.nav-folder-title,
body
[data-type="file-explorer"]
.nav-files-container
.nav-file-title {
white-space: normal;
width: auto;
border-left: 5px solid transparent;
transition: background-color 0.75s
cubic-bezier(0.075, 0.82, 0.165, 1),
border-left 0.75s cubic-bezier(0.075, 0.82, 0.165, 1),
color 1s cubic-bezier(0.075, 0.82, 0.165, 1);
margin-bottom: 0.25rem;
}
body
[data-type="file-explorer"]
.nav-files-container
.nav-folder-title:hover,
body
[data-type="file-explorer"]
.nav-files-container
.nav-file-title:hover {
border-left: 5px solid var(--interactive-hover);
}
body
[data-type="file-explorer"]
.nav-files-container
.nav-file-title.is-active {
border-left: 5px solid var(--interactive-accent);
}
body .suggestion-container {
border-radius: 6px;
}
body .titlebar {
border-bottom: 1px solid var(--background-secondary-alt);
padding-top: 0px !important;
}
body .titlebar-inner {
background: var(--background-secondary-alt);
color: var(--text-normal);
}
body .titlebar-text {
top: 3px;
}
body .titlebar-button {
opacity: 1;
}
body .workspace-leaf .view-header {
transition: border-bottom 1s
cubic-bezier(0.075, 0.82, 0.165, 1),
border-right 1s cubic-bezier(0.075, 0.82, 0.165, 1);
}
body .workspace-leaf .view-header-title {
transition: color 1s cubic-bezier(0.075, 0.82, 0.165, 1);
}
body .modal {
border-radius: 18px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
}
body .modal-bg {
backdrop-filter: blur(10px);
}
body .modal .vertical-tabs-container .vertical-tab-header {
flex: 0 0 300px;
}
body .modal .community-plugin-search {
border-radius: 18px 0 0 18px;
}
body .modal .community-plugin-details {
border-radius: 0 18px 18px 0;
}
body .markdown-source-view .CodeMirror .CodeMirror-activeline {
background: var(--active-line-bg);
}
body .markdown-preview-view blockquote {
padding: calc(1rem * 1) calc((1rem * 4) * 1);
margin: 0 0 calc(1rem * 1) 0;
background: var(--background-primary-alt);
color: var(--text-normal);
font-style: italic;
line-height: 2;
border-radius: 6px;
border-width: 1px;
box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.1);
}
body .markdown-preview-view code {
color: var(--text-normal);
font-family: var(--font-monospace);
background-color: var(--background-secondary-alt);
border-radius: 4px;
padding: 2px 4px;
font-size: 0.85em;
}
body .markdown-source-view .CodeMirror .CodeMirror-cursor {
background: var(--cursor-bg);
}
body .markdown-preview-view .external-link {
font-weight: 600;
text-decoration: none;
background-position-y: 60%;
}
body .markdown-preview-view .external-link:hover {
text-decoration: underline;
}
body .markdown-preview-view .file-embed {
border: none;
border-radius: 4px;
}
body .markdown-preview-view .file-embed .file-embed-link {
top: 2rem;
}
body .markdown-preview-view h1,
body .markdown-preview-view h2 {
font-weight: 600;
line-height: 1.25;
padding-bottom: calc((1rem / 2) * 1);
border-bottom: 1px solid var(--background-secondary-alt);
}
body .markdown-preview-view h3,
body .markdown-preview-view h4 {
font-weight: 600;
}
body .markdown-preview-view h5 {
font-weight: 600;
font-style: italic;
}
body .markdown-preview-view h6 {
font-weight: 400;
font-style: italic;
}
body .markdown-preview-view .internal-link {
font-weight: 600;
color: var(--text-accent);
text-decoration: none;
}
body .markdown-preview-view .internal-link:hover {
text-decoration: underline;
}
body .markdown-preview-view ul li {
margin-bottom: calc((1rem / 2) * 1);
}
body .markdown-preview-view .markdown-embed {
border: none;
border-radius: 4px;
}
body
.markdown-preview-view
.markdown-embed
.markdown-preview-view {
padding-left: 1.5rem;
padding-right: 1.5rem;
border-left: 10px solid var(--text-accent);
border-radius: 4px;
background: var(--background-secondary);
}
body
.markdown-preview-view
.markdown-embed
.markdown-embed-link {
top: 2rem;
}
body .markdown-preview-view p {
line-height: 1.5;
}
body .markdown-preview-view .tag {
background: var(--color-topic-tag-bg);
color: var(--color-blue-3);
border-radius: 12px;
font-size: 0.75rem;
padding: 3px 10px 5px;
text-decoration: none;
}
body
.markdown-preview-view
ul.contains-task-list
.task-list-item {
text-decoration: none;
}
body
.markdown-preview-view
ul.contains-task-list
.task-list-item-checkbox {
width: 16px;
height: 16px;
top: 2px;
filter: hue-rotate(0);
margin-right: calc((1rem / 2) * 1);
}
body
.markdown-preview-view
ul.contains-task-list
.task-list-item.is-checked
a {
color: var(--color-blue-7);
}
body .markdown-preview-view .admonition {
box-shadow: none;
}
body .markdown-preview-view .button-default {
box-shadow: none;
}
body .markdown-preview-view .button-default:hover {
background-color: inherit;
}
body .markdown-preview-view .button-default.white {
background: linear-gradient(
45deg,
var(--color-gray-1),
var(--color-gray-2)
);
border: 1px solid var(--color-gray-1);
color: var(--color-gray-8);
}
body .markdown-preview-view .button-default.green {
background: linear-gradient(
45deg,
var(--color-green-3),
var(--color-green-4)
);
border: 1px solid var(--color-green-2);
}
body .markdown-preview-view .button-default.blue {
background: linear-gradient(
45deg,
var(--color-blue-3),
var(--color-blue-4)
);
border: 1px solid var(--color-blue-2);
}
body .markdown-preview-view .button-default.purple {
background: linear-gradient(
45deg,
var(--color-purple-3),
var(--color-purple-4)
);
border: 1px solid var(--color-purple-2);
}
body.plugin-sliding-panes-stacking
.workspace
> .mod-root
> .workspace-leaf {
transition: box-shadow 0.75s
cubic-bezier(0.075, 0.82, 0.165, 1);
box-shadow: 0px 0px 10px 10px rgba(0, 0, 0, 0.05) !important;
}
body.plugin-sliding-panes-stacking
.workspace
> .mod-root
> .workspace-leaf.mod-active {
box-shadow: 0px 0px 30px 10px rgba(0, 0, 0, 0.15) !important;
}

View File

@ -0,0 +1 @@
{"name":"Atom","version":"1.14.1","minAppVersion":"1.6.2","author":"PipeItToDevNull","authorUrl":"https://docs.dev0.sh"}

1
.obsidian/themes/Nord/manifest.json vendored Normal file
View File

@ -0,0 +1 @@
{"name":"Nord","version":"1.14.1","minAppVersion":"1.6.2","author":"PipeItToDevNull","authorUrl":"https://docs.dev0.sh"}

455
.obsidian/themes/Nord/theme.css vendored Normal file
View File

@ -0,0 +1,455 @@
:root
{
--dark0: #2e3440;
--dark1: #3b4252;
--dark2: #434c5e;
--dark3: #4c566a;
--light0: #d8dee9;
--light1: #e5e9f0;
--light2: #eceff4;
--light3: #ffffff;
--frost0: #8fbcbb;
--frost1: #88c0d0;
--frost2: #81a1c1;
--frost3: #5e81ac;
--red: #bf616a;
--orange: #d08770;
--yellow: #ebcb8b;
--green: #a3be8c;
--purple: #b48ead;
--font-monospace: 'Hack Nerd Font', 'Source Code Pro', monospace;
}
.theme-dark
{
--background-primary: var(--dark0);
--background-primary-alt: var(--dark0);
--background-secondary: var(--dark1);
--background-secondary-alt: var(--dark2);
--text-normal: var(--light2);
--text-faint: var(--light0);
--text-muted: var(--light1);
--text-title-h1: var(--red);
--text-title-h2: var(--orange);
--text-title-h3: var(--yellow);
--text-title-h4: var(--green);
--text-title-h5: var(--purple);
--text-link: var(--frost0);
--text-a: var(--frost3);
--text-a-hover: var(--frost2);
--text-mark: rgba(136, 192, 208, 0.3); /* frost1 */
--pre-code: var(--dark1);
--text-highlight-bg: var(--dark3);
--interactive-accent: var(--frost0);
--interactive-before: var(--dark3);
--background-modifier-border: var(--dark2);
--text-accent: var(--orange);
--interactive-accent-rgb: var(--orange);
--inline-code: var(--frost1);
--code-block: var(--frost1);
--vim-cursor: var(--orange);
--text-selection: var(--dark3);
}
.theme-light
{
--background-primary: var(--light3);
--background-primary-alt: var(--light3);
--background-secondary: var(--light2);
--background-secondary-alt: var(--light1);
--text-normal: var(--dark1);
--text-faint: var(--dark3);
--text-muted: var(--dark2);
--text-title-h1: var(--red);
--text-title-h2: var(--orange);
--text-title-h3: var(--yellow);
--text-title-h4: var(--green);
--text-title-h5: var(--purple);
--text-link: var(--frost0);
--text-a: var(--frost3);
--text-a-hover: var(--frost1);
--text-mark: rgba(136, 192, 208, 0.3); /* frost1 */
--pre-code: var(--light2);
--text-highlight-bg: var(--light0);
--interactive-accent: var(--frost0);
--interactive-before: var(--light0);
--background-modifier-border: var(--light1);
--text-accent: var(--orange);
--interactive-accent-rgb: var(--orange);
--inline-code: var(--frost1);
--code-block: var(--frost1);
--vim-cursor: var(--orange);
--text-selection: var(--light0);
}
.theme-dark code[class*="language-"],
.theme-dark pre[class*="language-"],
.theme-light code[class*="language-"],
.theme-light pre[class*="language-"]
{
text-shadow: none !important;
background-color: var(--pre-code) !important;
}
.graph-view.color-circle,
.graph-view.color-fill-highlight,
.graph-view.color-line-highlight
{
color: var(--interactive-accent-rgb) !important;
}
.graph-view.color-text
{
color: var(--text-a-hover) !important;
}
/*
.graph-view.color-fill
{
color: var(--background-secondary);
}
.graph-view.color-line
{
color: var(--background-modifier-border);
}
*/
html,
body
{
font-size: 16px !important;
}
strong
{
font-weight: 600 !important;
}
a,
.cm-hmd-internal-link
{
color: var(--text-a) !important;
text-decoration: none !important;
}
a:hover,
.cm-hmd-internal-link:hover,
.cm-url
{
color: var(--text-a-hover) !important;
text-decoration: none !important;
}
mark
{
background-color: var(--text-mark) !important;
}
.view-actions a
{
color: var(--text-normal) !important;
}
.view-actions a:hover
{
color: var(--text-a) !important;
}
.HyperMD-codeblock-bg
{
background-color: var(--pre-code) !important;
}
.HyperMD-codeblock
{
line-height: 1.4em !important;
color: var(--code-block) !important;
}
.HyperMD-codeblock-begin
{
border-top-left-radius: 4px !important;
border-top-right-radius: 4px !important;
}
.HyperMD-codeblock-end
{
border-bottom-left-radius: 4px !important;
border-bottom-right-radius: 4px !important;
}
th
{
font-weight: 600 !important;
}
thead
{
border-bottom: 2px solid var(--background-modifier-border) !important;
}
.HyperMD-table-row
{
line-height: normal !important;
padding-left: 4px !important;
padding-right: 4px !important;
/* background-color: var(--pre-code) !important; */
}
.HyperMD-table-row-0
{
/* padding-top: 4px !important; */
}
.CodeMirror-foldgutter-folded,
.is-collapsed .nav-folder-collapse-indicator
{
color: var(--text-a) !important;
}
.nav-file-tag
{
color: var(--text-a) !important;
}
.is-active .nav-file-title
{
color: var(--text-a) !important;
background-color: var(--background-primary-alt) !important;
}
.nav-file-title
{
border-bottom-left-radius: 0 !important;
border-bottom-right-radius: 0 !important;
border-top-left-radius: 0 !important;
border-top-right-radius: 0 !important;
}
img
{
display: block !important;
margin-left: auto !important;
margin-right: auto !important;
}
.HyperMD-list-line
{
padding-top: 0 !important;
}
.CodeMirror-linenumber,
.cm-formatting
{
font-family: var(--font-monospace) !important;
color: var(--frost2) !important;
}
.cm-hashtag,
.search-result-file-matched-text
{
color: var(--frost2) !important;
}
.markdown-preview-section pre code,
.markdown-preview-section code
{
font-size: 0.9em !important;
background-color: var(--pre-code) !important;
}
.markdown-preview-section pre code
{
padding: 4px !important;
line-height: 1.4em !important;
display: block !important;
color: var(--code-block) !important;
}
.markdown-preview-section code
{
color: var(--inline-code) !important;
}
.cm-s-obsidian,
.cm-inline-code
{
-webkit-font-smoothing: auto !important;
}
.cm-inline-code
{
color: var(--inline-code) !important;
background-color: var(--pre-code) !important;
padding: 1px !important;
}
.workspace-leaf-header-title
{
font-weight: 600 !important;
}
.side-dock-title
{
padding-top: 15px !important;
font-size: 20px !important;
}
.side-dock-ribbon-tab:hover,
.side-dock-ribbon-action:hover,
.side-dock-ribbon-action.is-active:hover,
.nav-action-button:hover,
.side-dock-collapse-btn:hover
{
color: var(--text-a);
}
.side-dock
{
border-right: 0 !important;
}
.cm-s-obsidian,
.markdown-preview-view
{
/* padding-left: 10px !important; */
padding-right: 10px !important;
}
/* vertical resize-handle */
.workspace-split.mod-vertical > * > .workspace-leaf-resize-handle,
.workspace-split.mod-left-split > .workspace-leaf-resize-handle,
.workspace-split.mod-right-split > .workspace-leaf-resize-handle
{
width: 1px !important;
background-color: var(--background-secondary-alt);
}
/* horizontal resize-handle */
.workspace-split.mod-horizontal > * > .workspace-leaf-resize-handle
{
height: 1px !important;
background-color: var(--background-secondary-alt);
}
/* Remove vertical split padding */
.workspace-split.mod-root .workspace-split.mod-vertical .workspace-leaf-content,
.workspace-split.mod-vertical > .workspace-split,
.workspace-split.mod-vertical > .workspace-leaf,
.workspace-tabs
{
padding-right: 0px;
}
.markdown-embed-title
{
font-weight: 600 !important;
}
.markdown-embed
{
padding-left: 10px !important;
padding-right: 10px !important;
margin-left: 10px !important;
margin-right: 10px !important;
}
.cm-header-1,
.markdown-preview-section h1
{
font-weight: 500 !important;
font-size: 34px !important;
color: var(--text-title-h1) !important;
}
.cm-header-2,
.markdown-preview-section h2
{
font-weight: 500 !important;
font-size: 26px !important;
color: var(--text-title-h2) !important;
}
.cm-header-3,
.markdown-preview-section h3
{
font-weight: 500 !important;
font-size: 22px !important;
color: var(--text-title-h3) !important;
}
.cm-header-4,
.markdown-preview-section h4
{
font-weight: 500 !important;
font-size: 20px !important;
color: var(--text-title-h4) !important;
}
.cm-header-5,
.cm-header-6,
.markdown-preview-section h5,
.markdown-preview-section h6
{
font-weight: 500 !important;
font-size: 18px !important;
color: var(--text-title-h5) !important;
}
.suggestion-item.is-selected
{
background-color: var(--background-secondary);
}
.empty-state-container:hover
{
background-color: var(--background-secondary-alt);
border: 5px solid var(--interactive-accent) !important;
}
.checkbox-container
{
background-color: var(--interactive-before);
}
.checkbox-container:after
{
background-color: var(--background-secondary-alt);
}
.mod-cta
{
color: var(--background-secondary-alt) !important;
font-weight: 600 !important;
}
.mod-cta:hover
{
background-color: var(--interactive-before) !important;
font-weight: 600 !important;
}
.CodeMirror-cursor
{
background-color: var(--vim-cursor) !important;
opacity: 60% !important;
}
input.task-list-item-checkbox {
border: 1px solid var(--frost3);
appearance: none;
-webkit-appearance: none;
}
input.task-list-item-checkbox:checked {
background-color: var(--frost2);
box-shadow: inset 0 0 0 2px var(--background-primary);
}
.mermaid .note
{
fill: var(--frost3) !important;
}

View File

@ -22,6 +22,11 @@
"excalidraw-css": "text",
"excalidraw-autoexport": "text",
"excalidraw-embeddable-theme": "text",
"excalidraw-open-md": "checkbox"
"excalidraw-open-md": "checkbox",
"iud": "datetime",
"date": "text",
"mdate": "datetime",
"type": "text",
"Created": "date"
}
}

View File

@ -1,14 +1,14 @@
{
"main": {
"id": "0c96590b1a019e86",
"id": "0da6b0219e17306c",
"type": "split",
"children": [
{
"id": "f20fc1a1d840aef8",
"id": "7326c85aa051b794",
"type": "tabs",
"children": [
{
"id": "a315b642ce5fdbe3",
"id": "068575e9b61882dc",
"type": "leaf",
"state": {
"type": "pkmer-downloader",
@ -16,20 +16,12 @@
}
},
{
"id": "425277178fd802c6",
"type": "leaf",
"state": {
"type": "thino_view",
"state": {}
}
},
{
"id": "39f759fa2146fce1",
"id": "6f1208c8b08a00c5",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "01 InBox/Web剪藏/Web剪藏.md",
"file": "06Revin Spaces/blog/Tools/Git/Gitml.md",
"mode": "source",
"backlinks": true,
"source": false
@ -37,21 +29,21 @@
}
}
],
"currentTab": 2
"currentTab": 1
}
],
"direction": "vertical"
},
"left": {
"id": "710e196ee1427408",
"id": "e94367e04977e537",
"type": "split",
"children": [
{
"id": "d8463bbbcf6a66d1",
"id": "e9d03eb995db3e4e",
"type": "tabs",
"children": [
{
"id": "eb3a5469fc703f26",
"id": "e0a052a5b97afee0",
"type": "leaf",
"state": {
"type": "file-explorer",
@ -61,12 +53,12 @@
}
},
{
"id": "800ee17d2b68465d",
"id": "b4d26b77250ff1e9",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "tag:#pkmer-",
"query": "",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
@ -76,7 +68,7 @@
}
},
{
"id": "2ab113cec58f94fe",
"id": "3243b967dcda241c",
"type": "leaf",
"state": {
"type": "bookmarks",
@ -84,7 +76,7 @@
}
},
{
"id": "5c83d08776531e24",
"id": "197cdadff30234ed",
"type": "leaf",
"state": {
"type": "recent-files",
@ -92,15 +84,7 @@
}
},
{
"id": "d5acfe274fc9e7b1",
"type": "leaf",
"state": {
"type": "periodic-para",
"state": {}
}
},
{
"id": "ec4a6411c75ebf27",
"id": "80408216e16ce10c",
"type": "leaf",
"state": {
"type": "surfing-tab-tree",
@ -111,23 +95,23 @@
}
],
"direction": "horizontal",
"width": 858.5
"width": 300
},
"right": {
"id": "1027198180d27045",
"id": "a3648c4613b31a7f",
"type": "split",
"children": [
{
"id": "652330e1eab8bc99",
"id": "f84d0fd27e111db2",
"type": "tabs",
"children": [
{
"id": "7b692e8b897713c3",
"id": "eae8e62cac5577a1",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "01 InBox/Web剪藏/Web剪藏.md",
"file": "06Revin Spaces/blog/Tools/Git/Gitml.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
@ -139,64 +123,52 @@
}
},
{
"id": "36dab81b67e4716a",
"id": "adb2427d28f6f56f",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "01 InBox/Web剪藏/Web剪藏.md",
"file": "06Revin Spaces/blog/Tools/Git/Gitml.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
}
}
},
{
"id": "cc53310ed6a52e5d",
"id": "191fbc0761341b5a",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": false
"useHierarchy": true
}
}
},
{
"id": "5942cd1a44890ef9",
"id": "aae10a17b758801f",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "01 InBox/Web剪藏/Web剪藏.md"
"file": "06Revin Spaces/blog/Tools/Git/Gitml.md"
}
}
},
{
"id": "e50c08f1aadb2b15",
"type": "leaf",
"state": {
"type": "advanced-tables-toolbar",
"state": {}
}
},
{
"id": "141cc8adf97f87dc",
"type": "leaf",
"state": {
"type": "git-view",
"state": {}
}
}
],
"currentTab": 3
"currentTab": 2
}
],
"direction": "horizontal",
"width": 217.5
"width": 300
},
"left-ribbon": {
"hiddenItems": {
"obsidian-kanban:创建新看板": false,
"table-editor-obsidian:Advanced Tables Toolbar": false,
"cmdr:插入代码块": false,
"cmdr:增加文档属性": false,
"cmdr:memos-sync": false,
"switcher:打开快速切换": false,
"graph:查看关系图谱": false,
"canvas:新建白板": false,
@ -204,59 +176,45 @@
"templates:插入模板": false,
"command-palette:打开命令面板": false,
"markdown-importer:打开 Markdown 格式转换器": false,
"table-editor-obsidian:Advanced Tables Toolbar": false,
"syncthing-integration:Open Syncthing conflict manager modal": false,
"cmdr:插入代码块": false,
"cmdr:增加文档属性": false,
"surfing:surfing-bookmark-manager": false,
"templater-obsidian:Templater": false,
"obsidian-excalidraw-plugin:新建绘图文件": false,
"workspaces:管理工作区布局": false,
"pkmer:Open Pkmer Market": false,
"obsidian-memos:Thino": false
"quickadd:QuickAdd": false,
"surfing:surfing-bookmark-manager": false,
"obsidian-memos:Thino": false,
"obsidian-excalidraw-plugin:新建绘图文件": false
}
},
"active": "eb3a5469fc703f26",
"active": "6f1208c8b08a00c5",
"lastOpenFiles": [
"01 InBox/Web剪藏/Web剪藏.md",
"Web剪藏 1.md",
"01 InBox.md",
"Web 1.md",
"Web.md",
"创建链接.md",
"tag.md",
"01 InBox/2024-09-10.md",
"02-Calendar/未命名.md",
"01 InBox/Web剪藏",
"30-Tools/Excalidraw/Drawing 2024-03-21 21.47.19.excalidraw.md",
"30-Tools/Excalidraw/Drawing 2024-04-28 19.59.24.excalidraw.md",
"30-Tools/Excalidraw/Drawing 2024-07-28 14.37.56.excalidraw.md",
"06 Revin Spaces/blog/Tools/Git/Gitml.md",
"00 Index/TESTU 1.md",
"00 Index/Index.md",
"00 Index/IDX-Tag.md",
"00 Index/IDX-项目.md",
"00 Index/IDX-双链数量.md",
"00 Index/IDX-最近修改.md",
"00 Index/IDX-最近访问.md",
"00 Index/IDX-笔记网.md",
"00 Index/IDX-笔记链.md",
"00 Index/IDX-目录.md",
"00 Index/IDX-出链.md",
"00 Index/IDX-入链.md",
"00 Index/IDX-目录文件数.md",
"20-Extra/image/1726158361924.png",
"20-Extra/image/1726158241531.png",
"20-Extra/image/1726157893227.png",
"20-Extra/image/1726157752497.png",
"03-Life Notes/dzll/~syncthing~jygd.md.sync-conflict-20240913-002035-B2MWSF3.md.tmp",
"20-Extra/image/fa13803d664fd2bfd2884e86022e595.png",
"20-Extra/image",
"惊喜福利1000词.pdf",
"20-Extra/惊喜福利1000词.pdf",
"20-Extra/惊喜福利1000词(1)-1.pdf",
"八卦象数疗法简易实用卡002.pdf",
"八卦象数疗法配方大汇总(必参).xls",
"20-Extra/八卦象数疗法简易实用卡002.pdf",
"20-Extra/八卦象数疗法配方大汇总(必参).xls"
"basic.thino.md",
"2024-09-16.md",
"2024-09-15.md",
"2024-09-14.md",
"20Extra/Templates/测试文档.md",
"20Extra/Templates/ceshi.md",
"20Extra/Templates/Tp-Index.md.md",
"20Extra/Templates/Tp-Task List.md.md",
"20Extra/Templates/Tp-通用模板.md.md",
"06Revin Spaces/Spaces-Visit.md",
"20Extra/Templates/未命名 1.md",
"06Revin Spaces/Revin-目录.md",
"06Revin Spaces/欢迎.md",
"20Extra/Templates/未命名 6.md",
"20Extra/Templates/未命名 5.md",
"20Extra/Templates/未命名 4.md",
"20Extra/Templates/未命名 3.md",
"20Extra/Templates/未命名 2.md",
"20Extra/Templates/未命名.md",
"20Extra/未命名 1.md",
"20Extra/Templates/未命名 13.md",
"20Extra/Templates/未命名 12.md",
"20Extra/Templates/未命名 11.md",
"20Extra/Templates/未命名 10.md",
"20Extra/Templates/未命名 9.md",
"20Extra/Templates/未命名 8.md",
"20Extra/Templates/cmd",
"20Extra/Templates",
"30-Tools/Excalidraw"
]
}

195
.obsidian/workspaces.json vendored Normal file
View File

@ -0,0 +1,195 @@
{
"workspaces": {
"三屏": {
"main": {
"id": "0da6b0219e17306c",
"type": "split",
"children": [
{
"id": "7326c85aa051b794",
"type": "tabs",
"children": [
{
"id": "068575e9b61882dc",
"type": "leaf",
"state": {
"type": "pkmer-downloader",
"state": {}
}
},
{
"id": "15f56d95d4ea22d5",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "06Revin Spaces/Spaces-Visit.md",
"mode": "source",
"backlinks": true,
"source": false
}
}
}
],
"currentTab": 1
}
],
"direction": "vertical"
},
"left": {
"id": "e94367e04977e537",
"type": "split",
"children": [
{
"id": "e9d03eb995db3e4e",
"type": "tabs",
"children": [
{
"id": "e0a052a5b97afee0",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical"
}
}
},
{
"id": "b4d26b77250ff1e9",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
}
}
},
{
"id": "3243b967dcda241c",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {}
}
},
{
"id": "197cdadff30234ed",
"type": "leaf",
"state": {
"type": "recent-files",
"state": {}
}
},
{
"id": "80408216e16ce10c",
"type": "leaf",
"state": {
"type": "surfing-tab-tree",
"state": {}
}
}
]
}
],
"direction": "horizontal",
"width": 300
},
"right": {
"id": "a3648c4613b31a7f",
"type": "split",
"children": [
{
"id": "f84d0fd27e111db2",
"type": "tabs",
"children": [
{
"id": "eae8e62cac5577a1",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "06Revin Spaces/Spaces-Visit.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
}
}
},
{
"id": "adb2427d28f6f56f",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "06Revin Spaces/Spaces-Visit.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
}
}
},
{
"id": "191fbc0761341b5a",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true
}
}
},
{
"id": "aae10a17b758801f",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "06Revin Spaces/Spaces-Visit.md"
}
}
}
],
"currentTab": 2
}
],
"direction": "horizontal",
"width": 300
},
"left-ribbon": {
"hiddenItems": {
"obsidian-kanban:创建新看板": false,
"table-editor-obsidian:Advanced Tables Toolbar": false,
"cmdr:插入代码块": false,
"cmdr:增加文档属性": false,
"cmdr:memos-sync": false,
"switcher:打开快速切换": false,
"graph:查看关系图谱": false,
"canvas:新建白板": false,
"daily-notes:打开/创建今天的日记": false,
"templates:插入模板": false,
"command-palette:打开命令面板": false,
"markdown-importer:打开 Markdown 格式转换器": false,
"templater-obsidian:Templater": false,
"pkmer:Open Pkmer Market": false,
"quickadd:QuickAdd": false,
"surfing:surfing-bookmark-manager": false,
"obsidian-memos:Thino": false,
"obsidian-excalidraw-plugin:新建绘图文件": false,
"workspaces:管理工作区布局": false
}
},
"active": "15f56d95d4ea22d5",
"mtime": "2024-09-18T11:14:04+08:00"
}
},
"active": "三屏"
}

View File

@ -2,8 +2,8 @@
ctime: 2024-05-25 17:56
tags:
- Index
PrevNote: "[[IDX-入链]]"
NextNote: "[[IDX-双链]]"
PrevNote: "[[Index]]"
NextNote: "[[IDX-目录]]"
words:
2024-06-16: 49
---

View File

@ -1,6 +1,6 @@
---
ctime: 2024-05-26 01:15
PrevNote: "[[IDX-双链数量]]"
PrevNote: "[[IDX-最近修改]]"
NextNote: "[[IDX-Tag]]"
words:
2024-06-16: 215

86
.trash/Task List.md.md Normal file
View File

@ -0,0 +1,86 @@
---
iud: 2024-09-17T21:27:00
title: Task List
aliases:
- List
date: 2024-09-16
mdate:
tags:
- Index
- Task
- Templates
words:
2024-09-16: 455
2024-09-17: 71
---
---
# 💠 Task List
## 🔴 URGENT
*Do it now*
- [ ] Task 1
- [ ] Task 2
- [ ] Task 3
### 🟠 IMPORTANT
*Do it after tasks above*
- [ ] Task 1
- [ ] Task 2
- [ ] Task 3
#### 🟡 NOT URGENT / IMPORTANT
*Decide when to do it*
- [ ] Task 1
- [ ] Task 2
- [ ] Task 3
##### 🟢 Completed
- [x] Task 1
- [x] Task 2
- [x] Task 3

View File

@ -0,0 +1,89 @@
---
iud: 2024-09-16T14:21:00
title: Template-Index
aliases:
- 索引
date: 2024-09-16
mdate:
tags:
- Index
- Templates
words:
2024-09-16: 455
2024-09-17: 97
---
## - ### <font color="#e36c09">通过标签法检索笔记</font>
```dataview
table file.mtime
from #Bookmark
sort file.mtime desc
```
- ### 按件夹内含关键字检索
---
```dataview
list
from ""
where contains(file.name,"Index")
sort file.ctime desc
```
----
## - <font color="#6425d0">最近访问文件列表:</font>
```dataviewjs
let plugin = app.plugins.getPlugin('recent-files-obsidian');
let data = Object.values(plugin.data.recentFiles).map(
x=>dv.page(x['path'])
).filter(x=>x);
dv.table(
["最近访问"],
data.map(x=>[x.file.link])
);
```

26
.trash/ceshi.md Normal file
View File

@ -0,0 +1,26 @@
---
UID: 202409172233
title: 未命名 7
aliases:
- 模板
Created: " 2024-09-18"
mdate: 2024-09-18 10:38
words:
2024-09-17: 23
2024-09-18: 33
Source:
tags:
- Index
- Tp
---
## ✍内容
例如:今天是 2024-09-18 将在模板中插入当前日期。
2024-09-18 10:38
星期三 18日 九月 2024 10:38

Some files were not shown because too many files have changed in this diff Show More