up
This commit is contained in:
parent
50013ed9b3
commit
3ab0dd8cd5
4
.obsidian/app.json
vendored
4
.obsidian/app.json
vendored
@ -1,3 +1,5 @@
|
||||
{
|
||||
"alwaysUpdateLinks": true
|
||||
"alwaysUpdateLinks": true,
|
||||
"trashOption": "local",
|
||||
"promptDelete": false
|
||||
}
|
4
.obsidian/appearance.json
vendored
4
.obsidian/appearance.json
vendored
@ -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": ""
|
||||
}
|
2
.obsidian/bookmarks.json
vendored
2
.obsidian/bookmarks.json
vendored
@ -20,7 +20,7 @@
|
||||
{
|
||||
"type": "file",
|
||||
"ctime": 1726130851843,
|
||||
"path": "06 Revin Spaces/blog/Tools/rnbookmark20030312.md"
|
||||
"path": "06Revin Spaces/blog/Tools/rnbookmark20030312.md"
|
||||
}
|
||||
]
|
||||
}
|
16
.obsidian/community-plugins.json
vendored
16
.obsidian/community-plugins.json
vendored
@ -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"
|
||||
]
|
2
.obsidian/core-plugins-migration.json
vendored
2
.obsidian/core-plugins-migration.json
vendored
@ -23,7 +23,7 @@
|
||||
"word-count": true,
|
||||
"slides": false,
|
||||
"audio-recorder": false,
|
||||
"workspaces": false,
|
||||
"workspaces": true,
|
||||
"file-recovery": true,
|
||||
"publish": false,
|
||||
"sync": false
|
||||
|
1
.obsidian/core-plugins.json
vendored
1
.obsidian/core-plugins.json
vendored
@ -18,5 +18,6 @@
|
||||
"markdown-importer",
|
||||
"outline",
|
||||
"word-count",
|
||||
"workspaces",
|
||||
"file-recovery"
|
||||
]
|
25
.obsidian/hotkeys.json
vendored
25
.obsidian/hotkeys.json
vendored
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
6
.obsidian/plugins/cmdr/data.json
vendored
6
.obsidian/plugins/cmdr/data.json
vendored
@ -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": [],
|
||||
|
19821
.obsidian/plugins/cmenu-plugin/main.js
vendored
19821
.obsidian/plugins/cmenu-plugin/main.js
vendored
File diff suppressed because one or more lines are too long
10
.obsidian/plugins/cmenu-plugin/manifest.json
vendored
10
.obsidian/plugins/cmenu-plugin/manifest.json
vendored
@ -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
|
||||
}
|
234
.obsidian/plugins/cmenu-plugin/styles.css
vendored
234
.obsidian/plugins/cmenu-plugin/styles.css
vendored
@ -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);
|
||||
}
|
149
.obsidian/plugins/dataview/main.js
vendored
149
.obsidian/plugins/dataview/main.js
vendored
File diff suppressed because one or more lines are too long
12
.obsidian/plugins/dataview/manifest.json
vendored
12
.obsidian/plugins/dataview/manifest.json
vendored
@ -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}
|
59
.obsidian/plugins/easy-typing-obsidian/data.json
vendored
Normal file
59
.obsidian/plugins/easy-typing-obsidian/data.json
vendored
Normal 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
|
||||
}
|
4128
.obsidian/plugins/easy-typing-obsidian/main.js
vendored
Normal file
4128
.obsidian/plugins/easy-typing-obsidian/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
.obsidian/plugins/easy-typing-obsidian/manifest.json
vendored
Normal file
1
.obsidian/plugins/easy-typing-obsidian/manifest.json
vendored
Normal 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"}
|
17
.obsidian/plugins/easy-typing-obsidian/styles.css
vendored
Normal file
17
.obsidian/plugins/easy-typing-obsidian/styles.css
vendored
Normal 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; }
|
||||
} */
|
2
.obsidian/plugins/editing-toolbar/data.json
vendored
2
.obsidian/plugins/editing-toolbar/data.json
vendored
@ -286,7 +286,7 @@
|
||||
"cMenuBottomValue": 4.25,
|
||||
"cMenuNumRows": 12,
|
||||
"cMenuWidth": 610,
|
||||
"cMenuFontColor": "#ffc000",
|
||||
"cMenuFontColor": "#6425d0",
|
||||
"cMenuBackgroundColor": "#d2cbff",
|
||||
"autohide": false,
|
||||
"custom_bg1": "#FFB78B8C",
|
||||
|
48
.obsidian/plugins/lazy-plugins/data.json
vendored
48
.obsidian/plugins/lazy-plugins/data.json
vendored
@ -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"
|
||||
}
|
||||
}
|
||||
|
7
.obsidian/plugins/memos-sync/data.json
vendored
Normal file
7
.obsidian/plugins/memos-sync/data.json
vendored
Normal 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
13080
.obsidian/plugins/memos-sync/main.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
10
.obsidian/plugins/memos-sync/manifest.json
vendored
Normal file
10
.obsidian/plugins/memos-sync/manifest.json
vendored
Normal 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
|
||||
}
|
@ -1 +0,0 @@
|
||||
main.js
|
@ -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,
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
@ -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
|
@ -1,20 +0,0 @@
|
||||
{
|
||||
"singleQuote": false,
|
||||
"tabWidth": 2,
|
||||
"trailingComma": "all",
|
||||
"overrides": [
|
||||
{
|
||||
"files": ".prettierrc",
|
||||
"options": {
|
||||
"parser": "json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"files": "*.yml",
|
||||
"options": {
|
||||
"tabWidth": 2,
|
||||
"singleQuote": false
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
@ -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))
|
||||
|
@ -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.
|
@ -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+.`以显示隐藏文件夹
|
@ -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
|
||||
}
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
@ -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" }],
|
||||
}),
|
||||
],
|
||||
};
|
@ -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;
|
||||
|
||||
/**
|
||||
* 获取视频流URL(web端)
|
||||
* @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}`);
|
||||
};
|
@ -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;
|
||||
};
|
@ -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;
|
@ -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;
|
||||
};
|
@ -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;
|
||||
};
|
@ -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;
|
@ -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);
|
||||
};
|
@ -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"]
|
||||
}
|
@ -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"
|
||||
}
|
3
.obsidian/plugins/obsidian-emoji-toolbar/data.json
vendored
Normal file
3
.obsidian/plugins/obsidian-emoji-toolbar/data.json
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"twitterEmojiActive": true
|
||||
}
|
26
.obsidian/plugins/obsidian-file-color/data.json
vendored
Normal file
26
.obsidian/plugins/obsidian-file-color/data.json
vendored
Normal 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"
|
||||
}
|
||||
]
|
||||
}
|
23289
.obsidian/plugins/obsidian-file-color/main.js
vendored
Normal file
23289
.obsidian/plugins/obsidian-file-color/main.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
.obsidian/plugins/obsidian-file-color/manifest.json
vendored
Normal file
1
.obsidian/plugins/obsidian-file-color/manifest.json
vendored
Normal 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}
|
27
.obsidian/plugins/obsidian-file-color/styles.css
vendored
Normal file
27
.obsidian/plugins/obsidian-file-color/styles.css
vendored
Normal 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);
|
||||
}
|
33
.obsidian/plugins/obsidian-icon-folder/data.json
vendored
Normal file
33
.obsidian/plugins/obsidian-icon-folder/data.json
vendored
Normal 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"
|
||||
}
|
7046
.obsidian/plugins/obsidian-icon-folder/main.js
vendored
Normal file
7046
.obsidian/plugins/obsidian-icon-folder/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
.obsidian/plugins/obsidian-icon-folder/manifest.json
vendored
Normal file
1
.obsidian/plugins/obsidian-icon-folder/manifest.json
vendored
Normal 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}
|
119
.obsidian/plugins/obsidian-icon-folder/styles.css
vendored
Normal file
119
.obsidian/plugins/obsidian-icon-folder/styles.css
vendored
Normal 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;
|
||||
}
|
8
.obsidian/plugins/obsidian-memos/data.json
vendored
8
.obsidian/plugins/obsidian-memos/data.json
vendored
@ -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
|
||||
}
|
32
.obsidian/plugins/obsidian-omnivore/data.json
vendored
Normal file
32
.obsidian/plugins/obsidian-omnivore/data.json
vendored
Normal 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
18903
.obsidian/plugins/obsidian-omnivore/main.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
.obsidian/plugins/obsidian-omnivore/manifest.json
vendored
Normal file
1
.obsidian/plugins/obsidian-omnivore/manifest.json
vendored
Normal 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}
|
77
.obsidian/plugins/obsidian-omnivore/styles.css
vendored
Normal file
77
.obsidian/plugins/obsidian-omnivore/styles.css
vendored
Normal 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);
|
||||
}
|
356
.obsidian/plugins/obsidian-text-expander/main.js
vendored
Normal file
356
.obsidian/plugins/obsidian-text-expander/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
BIN
.obsidian/plugins/obsidian-text-expander/main.js.baiduyun.uploading.cfg
vendored
Normal file
BIN
.obsidian/plugins/obsidian-text-expander/main.js.baiduyun.uploading.cfg
vendored
Normal file
Binary file not shown.
10
.obsidian/plugins/obsidian-text-expander/manifest.json
vendored
Normal file
10
.obsidian/plugins/obsidian-text-expander/manifest.json
vendored
Normal 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
|
||||
}
|
BIN
.obsidian/plugins/obsidian-text-expander/manifest.json.baiduyun.uploading.cfg
vendored
Normal file
BIN
.obsidian/plugins/obsidian-text-expander/manifest.json.baiduyun.uploading.cfg
vendored
Normal file
Binary file not shown.
266
.obsidian/plugins/obsidian-to-flomo/main.js
vendored
Normal file
266
.obsidian/plugins/obsidian-to-flomo/main.js
vendored
Normal 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");
|
||||
});
|
||||
}
|
||||
};
|
1
.obsidian/plugins/obsidian-to-flomo/manifest.json
vendored
Normal file
1
.obsidian/plugins/obsidian-to-flomo/manifest.json
vendored
Normal 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}
|
8
.obsidian/plugins/obsidian-to-flomo/styles.css
vendored
Normal file
8
.obsidian/plugins/obsidian-to-flomo/styles.css
vendored
Normal 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.
|
||||
|
||||
*/
|
32
.obsidian/plugins/periodic-para/data.json
vendored
32
.obsidian/plugins/periodic-para/data.json
vendored
@ -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
|
||||
}
|
87611
.obsidian/plugins/periodic-para/main.js
vendored
87611
.obsidian/plugins/periodic-para/main.js
vendored
File diff suppressed because one or more lines are too long
@ -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}
|
106
.obsidian/plugins/periodic-para/styles.css
vendored
106
.obsidian/plugins/periodic-para/styles.css
vendored
@ -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 */
|
28
.obsidian/plugins/python-lab-plugin/data.json
vendored
Normal file
28
.obsidian/plugins/python-lab-plugin/data.json
vendored
Normal 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
|
||||
}
|
||||
}
|
||||
}
|
1244
.obsidian/plugins/python-lab-plugin/main.js
vendored
Normal file
1244
.obsidian/plugins/python-lab-plugin/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
10
.obsidian/plugins/python-lab-plugin/manifest.json
vendored
Normal file
10
.obsidian/plugins/python-lab-plugin/manifest.json
vendored
Normal 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"
|
||||
}
|
18
.obsidian/plugins/python-lab-plugin/styles.css
vendored
Normal file
18
.obsidian/plugins/python-lab-plugin/styles.css
vendored
Normal 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;
|
||||
}
|
8
.obsidian/plugins/quickadd/data.json
vendored
8
.obsidian/plugins/quickadd/data.json
vendored
@ -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
|
||||
}
|
||||
}
|
228
.obsidian/plugins/recent-files-obsidian/data.json
vendored
228
.obsidian/plugins/recent-files-obsidian/data.json
vendored
@ -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": []
|
||||
|
@ -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
|
||||
|
4
.obsidian/plugins/vault-exporter/data.json
vendored
4
.obsidian/plugins/vault-exporter/data.json
vendored
@ -1,4 +0,0 @@
|
||||
{
|
||||
"pluginDirExporter": "",
|
||||
"vaultDir": "D:\\\\iLanix\\\\isync\\\\github\\\\ObsidianZ"
|
||||
}
|
474
.obsidian/plugins/vault-exporter/main.js
vendored
474
.obsidian/plugins/vault-exporter/main.js
vendored
File diff suppressed because one or more lines are too long
@ -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
3
.obsidian/templates.json
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"folder": "20Extra/Templates"
|
||||
}
|
6
.obsidian/text-generator.json
vendored
Normal file
6
.obsidian/text-generator.json
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"packagesHash": {},
|
||||
"resources": {},
|
||||
"installedPackagesHash": {},
|
||||
"subscriptions": []
|
||||
}
|
1
.obsidian/themes/Atom/manifest.json
vendored
Normal file
1
.obsidian/themes/Atom/manifest.json
vendored
Normal 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
472
.obsidian/themes/Atom/theme.css
vendored
Normal 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;
|
||||
}
|
1
.obsidian/themes/Comfort color dark/manifest.json
vendored
Normal file
1
.obsidian/themes/Comfort color dark/manifest.json
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"name":"Comfort color dark","version":"1.14.1","minAppVersion":"1.6.2","author":"PipeItToDevNull","authorUrl":"https://docs.dev0.sh"}
|
425
.obsidian/themes/Comfort color dark/theme.css
vendored
Normal file
425
.obsidian/themes/Comfort color dark/theme.css
vendored
Normal 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;
|
||||
}
|
||||
*/
|
1
.obsidian/themes/Deep Work/manifest.json
vendored
Normal file
1
.obsidian/themes/Deep Work/manifest.json
vendored
Normal 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
479
.obsidian/themes/Deep Work/theme.css
vendored
Normal 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;
|
||||
}
|
1
.obsidian/themes/Lizardmen Zettelkasten/manifest.json
vendored
Normal file
1
.obsidian/themes/Lizardmen Zettelkasten/manifest.json
vendored
Normal 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
1
.obsidian/themes/Nord/manifest.json
vendored
Normal 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
455
.obsidian/themes/Nord/theme.css
vendored
Normal 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;
|
||||
}
|
||||
|
7
.obsidian/types.json
vendored
7
.obsidian/types.json
vendored
@ -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"
|
||||
}
|
||||
}
|
174
.obsidian/workspace.json
vendored
174
.obsidian/workspace.json
vendored
@ -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
195
.obsidian/workspaces.json
vendored
Normal 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": "三屏"
|
||||
}
|
@ -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
|
||||
---
|
@ -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
86
.trash/Task List.md.md
Normal 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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
89
.trash/Template-Index.md.md
Normal file
89
.trash/Template-Index.md.md
Normal 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
26
.trash/ceshi.md
Normal 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
Loading…
Reference in New Issue
Block a user