vault backup: 2025-12-10 11:37:35
This commit is contained in:
@@ -0,0 +1,3 @@
|
|||||||
|
* text=auto
|
||||||
|
*.md eol=lf
|
||||||
|
*.yml eol=lf
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
|
||||||
|
COMMIT_MSG_FILE=$1
|
||||||
|
COMMIT_SOURCE=$2
|
||||||
|
SHA1=$3
|
||||||
|
|
||||||
|
TIMESTAMP=$(date "+%Y-%m-%d %T")
|
||||||
|
|
||||||
|
MESSAGE="vault backup: $TIMESTAMP"
|
||||||
|
sed -i "1s/^/$MESSAGE/" $COMMIT_MSG_FILE
|
||||||
|
|
||||||
@@ -1 +1,6 @@
|
|||||||
.trash/
|
.trash/
|
||||||
|
.obsidian/workspace-mobile.json
|
||||||
|
.obsidian/workspace.json
|
||||||
|
tags
|
||||||
|
.stfolder/
|
||||||
|
broken links output.md
|
||||||
|
|||||||
Vendored
+35
-2
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"attachmentFolderPath": "System/resources",
|
"attachmentFolderPath": "Resources/Attachments",
|
||||||
"showFrontmatter": true,
|
"showFrontmatter": true,
|
||||||
"livePreview": true,
|
"livePreview": true,
|
||||||
"strictLineBreaks": false,
|
"strictLineBreaks": false,
|
||||||
@@ -8,5 +8,38 @@
|
|||||||
"showUnsupportedFiles": true,
|
"showUnsupportedFiles": true,
|
||||||
"promptDelete": false,
|
"promptDelete": false,
|
||||||
"readableLineLength": false,
|
"readableLineLength": false,
|
||||||
"trashOption": "local"
|
"trashOption": "local",
|
||||||
|
"mobileToolbarCommands": [
|
||||||
|
"editor:insert-wikilink",
|
||||||
|
"editor:insert-embed",
|
||||||
|
"editor:insert-tag",
|
||||||
|
"editor:attach-file",
|
||||||
|
"editor:set-heading",
|
||||||
|
"editor:toggle-bold",
|
||||||
|
"editor:toggle-italics",
|
||||||
|
"editor:toggle-strikethrough",
|
||||||
|
"editor:toggle-highlight",
|
||||||
|
"editor:toggle-code",
|
||||||
|
"editor:toggle-blockquote",
|
||||||
|
"editor:insert-link",
|
||||||
|
"editor:toggle-bullet-list",
|
||||||
|
"editor:toggle-numbered-list",
|
||||||
|
"editor:toggle-checklist-status",
|
||||||
|
"editor:indent-list",
|
||||||
|
"editor:unindent-list",
|
||||||
|
"editor:undo",
|
||||||
|
"editor:redo",
|
||||||
|
"editor:toggle-keyboard",
|
||||||
|
"editor:configure-toolbar",
|
||||||
|
"command-palette:open"
|
||||||
|
],
|
||||||
|
"useTab": false,
|
||||||
|
"pdfExportSettings": {
|
||||||
|
"includeName": true,
|
||||||
|
"pageSize": "A4",
|
||||||
|
"landscape": false,
|
||||||
|
"margin": "0",
|
||||||
|
"downscalePercent": 100
|
||||||
|
},
|
||||||
|
"defaultViewMode": "preview"
|
||||||
}
|
}
|
||||||
Vendored
+5
-2
@@ -1,8 +1,11 @@
|
|||||||
{
|
{
|
||||||
"accentColor": "",
|
"accentColor": "",
|
||||||
"baseFontSize": 16,
|
"baseFontSize": 12,
|
||||||
"translucency": true,
|
"translucency": true,
|
||||||
"enabledCssSnippets": [
|
"enabledCssSnippets": [
|
||||||
"numbered-lists"
|
"numbered-lists"
|
||||||
]
|
],
|
||||||
|
"nativeMenus": true,
|
||||||
|
"theme": "obsidian",
|
||||||
|
"cssTheme": "Tokyo Night"
|
||||||
}
|
}
|
||||||
Vendored
+7
-1
@@ -1,3 +1,9 @@
|
|||||||
{
|
{
|
||||||
"items": []
|
"items": [
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"ctime": 1740169664211,
|
||||||
|
"path": "Übersicht/Kanban/Project Board.md"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
Vendored
+3
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"pinned": null
|
||||||
|
}
|
||||||
Vendored
+21
-8
@@ -1,18 +1,31 @@
|
|||||||
[
|
[
|
||||||
"obsidian-git",
|
|
||||||
"obsidian-tracker",
|
"obsidian-tracker",
|
||||||
"dataview",
|
"dataview",
|
||||||
"calendar",
|
|
||||||
"obsidian-tasks-plugin",
|
"obsidian-tasks-plugin",
|
||||||
"obsidian-version-history-diff",
|
|
||||||
"buttons",
|
|
||||||
"obsidian-sortable",
|
"obsidian-sortable",
|
||||||
"obsidian-admonition",
|
|
||||||
"auto-note-mover",
|
"auto-note-mover",
|
||||||
"obsidian-projects",
|
|
||||||
"tag-wrangler",
|
"tag-wrangler",
|
||||||
"obsidian-full-calendar",
|
|
||||||
"obsidian-plugin-toc",
|
"obsidian-plugin-toc",
|
||||||
"obsidian-charts",
|
"obsidian-charts",
|
||||||
"obsidian-chartsview-plugin"
|
"nldates-obsidian",
|
||||||
|
"cmdr",
|
||||||
|
"janitor",
|
||||||
|
"templater-obsidian",
|
||||||
|
"table-editor-obsidian",
|
||||||
|
"metaedit",
|
||||||
|
"obsidian-kanban",
|
||||||
|
"quickadd",
|
||||||
|
"obsidian-contextual-typography",
|
||||||
|
"journals",
|
||||||
|
"obsidian-day-planner",
|
||||||
|
"pdf-plus",
|
||||||
|
"obsidian-style-settings",
|
||||||
|
"callout-manager",
|
||||||
|
"find-unlinked-files",
|
||||||
|
"task-list-kanban",
|
||||||
|
"contribution-graph",
|
||||||
|
"datacore",
|
||||||
|
"friend-tracker",
|
||||||
|
"desk",
|
||||||
|
"external-file-embed-and-link"
|
||||||
]
|
]
|
||||||
+4
-3
@@ -7,14 +7,14 @@
|
|||||||
"outgoing-link": true,
|
"outgoing-link": true,
|
||||||
"tag-pane": true,
|
"tag-pane": true,
|
||||||
"page-preview": true,
|
"page-preview": true,
|
||||||
"daily-notes": true,
|
"daily-notes": false,
|
||||||
"templates": true,
|
"templates": true,
|
||||||
"note-composer": true,
|
"note-composer": true,
|
||||||
"command-palette": true,
|
"command-palette": true,
|
||||||
"slash-command": true,
|
"slash-command": true,
|
||||||
"editor-status": true,
|
"editor-status": true,
|
||||||
"starred": false,
|
"starred": false,
|
||||||
"markdown-importer": false,
|
"markdown-importer": true,
|
||||||
"zk-prefixer": false,
|
"zk-prefixer": false,
|
||||||
"random-note": false,
|
"random-note": false,
|
||||||
"outline": true,
|
"outline": true,
|
||||||
@@ -26,5 +26,6 @@
|
|||||||
"publish": false,
|
"publish": false,
|
||||||
"sync": false,
|
"sync": false,
|
||||||
"canvas": true,
|
"canvas": true,
|
||||||
"bookmarks": true
|
"bookmarks": true,
|
||||||
|
"properties": true
|
||||||
}
|
}
|
||||||
Vendored
+34
-20
@@ -1,20 +1,34 @@
|
|||||||
[
|
{
|
||||||
"file-explorer",
|
"file-explorer": true,
|
||||||
"global-search",
|
"global-search": true,
|
||||||
"switcher",
|
"switcher": true,
|
||||||
"graph",
|
"graph": true,
|
||||||
"backlink",
|
"backlink": true,
|
||||||
"canvas",
|
"outgoing-link": true,
|
||||||
"outgoing-link",
|
"tag-pane": true,
|
||||||
"tag-pane",
|
"page-preview": true,
|
||||||
"page-preview",
|
"daily-notes": false,
|
||||||
"daily-notes",
|
"templates": true,
|
||||||
"templates",
|
"note-composer": true,
|
||||||
"note-composer",
|
"command-palette": true,
|
||||||
"command-palette",
|
"slash-command": true,
|
||||||
"slash-command",
|
"editor-status": true,
|
||||||
"editor-status",
|
"starred": false,
|
||||||
"outline",
|
"markdown-importer": true,
|
||||||
"word-count",
|
"zk-prefixer": false,
|
||||||
"file-recovery"
|
"random-note": false,
|
||||||
]
|
"outline": true,
|
||||||
|
"word-count": true,
|
||||||
|
"slides": false,
|
||||||
|
"audio-recorder": false,
|
||||||
|
"workspaces": false,
|
||||||
|
"file-recovery": true,
|
||||||
|
"publish": false,
|
||||||
|
"sync": false,
|
||||||
|
"canvas": true,
|
||||||
|
"bookmarks": true,
|
||||||
|
"properties": true,
|
||||||
|
"webviewer": false,
|
||||||
|
"footnotes": false,
|
||||||
|
"bases": true
|
||||||
|
}
|
||||||
Vendored
+3
-2
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
"folder": "Journal",
|
"folder": "Journal/Täglich",
|
||||||
"template": "System/Templates/Daily Notes Templates"
|
"template": "Resources/Templates/Daily Notes Templates",
|
||||||
|
"format": "YYYY/MM/YYYY-MM-DD"
|
||||||
}
|
}
|
||||||
Vendored
+41
-5
@@ -5,10 +5,46 @@
|
|||||||
"showAttachments": false,
|
"showAttachments": false,
|
||||||
"hideUnresolved": false,
|
"hideUnresolved": false,
|
||||||
"showOrphans": true,
|
"showOrphans": true,
|
||||||
"collapse-color-groups": true,
|
"collapse-color-groups": false,
|
||||||
"colorGroups": [],
|
"colorGroups": [
|
||||||
"collapse-display": true,
|
{
|
||||||
"showArrow": false,
|
"query": "02 path:\"Journal\"",
|
||||||
|
"color": {
|
||||||
|
"a": 1,
|
||||||
|
"rgb": 65280
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"query": "path:\"Infos/Unternehmen\"",
|
||||||
|
"color": {
|
||||||
|
"a": 1,
|
||||||
|
"rgb": 255
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"query": "line:(category: MoCs)",
|
||||||
|
"color": {
|
||||||
|
"a": 1,
|
||||||
|
"rgb": 16776960
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"query": "path:\"Infos/Kontakte\"",
|
||||||
|
"color": {
|
||||||
|
"a": 1,
|
||||||
|
"rgb": 16711680
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"query": "line:(category: Journal)",
|
||||||
|
"color": {
|
||||||
|
"a": 1,
|
||||||
|
"rgb": 65280
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"collapse-display": false,
|
||||||
|
"showArrow": true,
|
||||||
"textFadeMultiplier": 0,
|
"textFadeMultiplier": 0,
|
||||||
"nodeSizeMultiplier": 1,
|
"nodeSizeMultiplier": 1,
|
||||||
"lineSizeMultiplier": 1,
|
"lineSizeMultiplier": 1,
|
||||||
@@ -17,6 +53,6 @@
|
|||||||
"repelStrength": 10,
|
"repelStrength": 10,
|
||||||
"linkStrength": 1,
|
"linkStrength": 1,
|
||||||
"linkDistance": 250,
|
"linkDistance": 250,
|
||||||
"scale": 0.15331262755040978,
|
"scale": 0.12180541989401406,
|
||||||
"close": true
|
"close": true
|
||||||
}
|
}
|
||||||
Vendored
+24
@@ -23,5 +23,29 @@
|
|||||||
],
|
],
|
||||||
"key": "C"
|
"key": "C"
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"editor:swap-line-down": [
|
||||||
|
{
|
||||||
|
"modifiers": [
|
||||||
|
"Mod"
|
||||||
|
],
|
||||||
|
"key": "ArrowDown"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"editor:swap-line-up": [
|
||||||
|
{
|
||||||
|
"modifiers": [
|
||||||
|
"Mod"
|
||||||
|
],
|
||||||
|
"key": "ArrowUp"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"obsidian-day-planner:re-sync": [
|
||||||
|
{
|
||||||
|
"modifiers": [
|
||||||
|
"Mod"
|
||||||
|
],
|
||||||
|
"key": "R"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
+4
-15
@@ -2,28 +2,17 @@
|
|||||||
"trigger_auto_manual": "Automatic",
|
"trigger_auto_manual": "Automatic",
|
||||||
"use_regex_to_check_for_tags": false,
|
"use_regex_to_check_for_tags": false,
|
||||||
"statusBar_trigger_indicator": true,
|
"statusBar_trigger_indicator": true,
|
||||||
"folder_tag_pattern": [
|
"folder_tag_pattern": [],
|
||||||
{
|
|
||||||
"folder": "Resources/Artikel",
|
|
||||||
"tag": "#Artikel",
|
|
||||||
"pattern": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"folder": "Resources/IT",
|
|
||||||
"tag": "#IT",
|
|
||||||
"pattern": ""
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_regex_to_check_for_excluded_folder": false,
|
"use_regex_to_check_for_excluded_folder": false,
|
||||||
"excluded_folder": [
|
"excluded_folder": [
|
||||||
{
|
{
|
||||||
"folder": "System"
|
"folder": "Resources/Templates"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"folder": "System/Templates"
|
"folder": "Resources/Attachments"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"folder": "System/resources"
|
"folder": "Resources/Functions"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
Vendored
-4306
File diff suppressed because one or more lines are too long
-10
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "buttons",
|
|
||||||
"name": "Buttons",
|
|
||||||
"description": "Create Buttons in your Obsidian notes to run commands, open links, and insert templates",
|
|
||||||
"version": "0.4.19",
|
|
||||||
"author": "shabegom",
|
|
||||||
"authorUrl": "https://shbgm.ca",
|
|
||||||
"isDesktopOnly": false,
|
|
||||||
"minAppVersion": "0.12.8"
|
|
||||||
}
|
|
||||||
Vendored
-148
@@ -1,148 +0,0 @@
|
|||||||
/* @settings
|
|
||||||
|
|
||||||
name: Buttons
|
|
||||||
id: buttons-styles
|
|
||||||
settings:
|
|
||||||
-
|
|
||||||
id: button-background
|
|
||||||
title: Background
|
|
||||||
type: variable-themed-color
|
|
||||||
format: hex
|
|
||||||
opacity: false
|
|
||||||
default-light: '#f5f6f8'
|
|
||||||
default-dark: '#1b1b1b'
|
|
||||||
-
|
|
||||||
id: button-text
|
|
||||||
title: Text
|
|
||||||
type: variable-themed-color
|
|
||||||
format: hex
|
|
||||||
opacity: false
|
|
||||||
default-light: '#1b1b1b'
|
|
||||||
default-dark: '#f5f6f8'
|
|
||||||
-
|
|
||||||
id: button-border
|
|
||||||
title: Border
|
|
||||||
type: variable-themed-color
|
|
||||||
format: hex
|
|
||||||
opacity: false
|
|
||||||
default-light: '#7a9486'
|
|
||||||
default-dark: '#84a83a'
|
|
||||||
-
|
|
||||||
id: button-box-shadow
|
|
||||||
title: Box Shadow
|
|
||||||
type: variable-themed-color
|
|
||||||
format: rgb
|
|
||||||
opacity: true
|
|
||||||
default-light: '#1b1b1b'
|
|
||||||
default-dark: '#f5f6f8'
|
|
||||||
-
|
|
||||||
id: button-border-radius
|
|
||||||
title: Border Radius
|
|
||||||
type: variable-number
|
|
||||||
format: px
|
|
||||||
default: 5
|
|
||||||
-
|
|
||||||
id: button-size
|
|
||||||
title: Font Size
|
|
||||||
type: variable-number
|
|
||||||
format: em
|
|
||||||
default: 1
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
.block-language-button {
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.button-default {
|
|
||||||
border: 0.5px solid var(--button-border, #7a9486);
|
|
||||||
border-radius: var(--button-border-radius, 5px);
|
|
||||||
background-color: var(--button-background);
|
|
||||||
padding: 10px 30px;
|
|
||||||
color: var(--button-text);
|
|
||||||
text-decoration: none;
|
|
||||||
font-size: var(--button-size);
|
|
||||||
margin: 0 5px;
|
|
||||||
box-shadow: 0 1px 3px var(--button-box-shadow, rgba(0, 0, 0, 0.12)),
|
|
||||||
0 1px 2px var(--button-box-shadow, rgba(0, 0, 0, 0.24));
|
|
||||||
transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
button.button-default:hover {
|
|
||||||
z-index: 100;
|
|
||||||
box-shadow: 0 4px 4px var(--button-box-shadow, rgba(0, 0, 0, 0.25)),
|
|
||||||
0 10px 10px var(--button-box-shadow, rgba(0, 0, 0, 0.22));
|
|
||||||
transform: translate3d(0px, -1.5px, 0px);
|
|
||||||
background-color: var(--button-background);
|
|
||||||
}
|
|
||||||
|
|
||||||
.theme-dark button.button-default {
|
|
||||||
border: 0.5px solid var(--button-border, #84a83a);
|
|
||||||
}
|
|
||||||
|
|
||||||
.theme-dark button.button-default:hover {
|
|
||||||
z-index: 100;
|
|
||||||
box-shadow: 0 4px 4px var(--button-box-shadow, rgba(210, 210, 210, 0.25)),
|
|
||||||
0 10px 10px var(--button-box-shadow, rgba(210, 210, 210, 0.22));
|
|
||||||
transform: translate3d(0px, -1.5px, 0px);
|
|
||||||
}
|
|
||||||
|
|
||||||
button.button-inline {
|
|
||||||
width: unset;
|
|
||||||
height: unset;
|
|
||||||
padding: 0 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.blue {
|
|
||||||
background: #76b3fa;
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.red {
|
|
||||||
background-color: red;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.green {
|
|
||||||
background: green;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.yellow {
|
|
||||||
background: yellow;
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.purple {
|
|
||||||
background: #725585;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.blue:hover {
|
|
||||||
background: #76b3fa;
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.red:hover {
|
|
||||||
background: red;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.green:hover {
|
|
||||||
background: green;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.yellow:hover {
|
|
||||||
background: yellow;
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.purple:hover {
|
|
||||||
background: #725585;
|
|
||||||
}
|
|
||||||
|
|
||||||
.button-maker {
|
|
||||||
max-width: 35rem;
|
|
||||||
width: 35rem;
|
|
||||||
overflow-y: auto;
|
|
||||||
max-height: 30rem;
|
|
||||||
padding-left: 0.5rem;
|
|
||||||
padding-right: 0.5rem;
|
|
||||||
overflow-x: hidden;
|
|
||||||
}
|
|
||||||
Vendored
-10
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"shouldConfirmBeforeCreate": true,
|
|
||||||
"weekStart": "locale",
|
|
||||||
"wordsPerDot": 250,
|
|
||||||
"showWeeklyNote": true,
|
|
||||||
"weeklyNoteFormat": "",
|
|
||||||
"weeklyNoteTemplate": "",
|
|
||||||
"weeklyNoteFolder": "",
|
|
||||||
"localeOverride": "system-default"
|
|
||||||
}
|
|
||||||
Vendored
-4457
File diff suppressed because it is too large
Load Diff
-10
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "calendar",
|
|
||||||
"name": "Calendar",
|
|
||||||
"description": "Calendar view of your daily notes",
|
|
||||||
"version": "1.5.10",
|
|
||||||
"author": "Liam Cain",
|
|
||||||
"authorUrl": "https://github.com/liamcain/",
|
|
||||||
"isDesktopOnly": false,
|
|
||||||
"minAppVersion": "0.9.11"
|
|
||||||
}
|
|
||||||
+11
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"callouts": {
|
||||||
|
"custom": [],
|
||||||
|
"settings": {}
|
||||||
|
},
|
||||||
|
"calloutDetection": {
|
||||||
|
"obsidian": true,
|
||||||
|
"theme": true,
|
||||||
|
"snippet": true
|
||||||
|
}
|
||||||
|
}
|
||||||
+4367
File diff suppressed because it is too large
Load Diff
+10
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"id": "callout-manager",
|
||||||
|
"version": "1.1.0",
|
||||||
|
"description": "Easily create and customize callouts.",
|
||||||
|
"author": "eth-p",
|
||||||
|
"authorUrl": "https://github.com/eth-p",
|
||||||
|
"name": "Callout Manager",
|
||||||
|
"minAppVersion": "1.0.0",
|
||||||
|
"isDesktopOnly": false
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
Vendored
+36
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"confirmDeletion": true,
|
||||||
|
"showAddCommand": true,
|
||||||
|
"debug": false,
|
||||||
|
"editorMenu": [],
|
||||||
|
"fileMenu": [
|
||||||
|
{
|
||||||
|
"id": "journals::open-today's-note",
|
||||||
|
"icon": "",
|
||||||
|
"name": "Journals: Open today's note",
|
||||||
|
"mode": "any"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"leftRibbon": [],
|
||||||
|
"rightRibbon": [],
|
||||||
|
"titleBar": [],
|
||||||
|
"statusBar": [],
|
||||||
|
"pageHeader": [],
|
||||||
|
"macros": [],
|
||||||
|
"explorer": [],
|
||||||
|
"hide": {
|
||||||
|
"statusbar": [],
|
||||||
|
"leftRibbon": []
|
||||||
|
},
|
||||||
|
"spacing": 8,
|
||||||
|
"advancedToolbar": {
|
||||||
|
"rowHeight": 48,
|
||||||
|
"rowCount": 1,
|
||||||
|
"spacing": 0,
|
||||||
|
"buttonWidth": 48,
|
||||||
|
"columnLayout": false,
|
||||||
|
"mappedIcons": [],
|
||||||
|
"tooltips": false,
|
||||||
|
"heightOffset": 0
|
||||||
|
}
|
||||||
|
}
|
||||||
Vendored
+11
File diff suppressed because one or more lines are too long
Vendored
+11
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"id": "cmdr",
|
||||||
|
"name": "Commander",
|
||||||
|
"version": "0.5.4",
|
||||||
|
"minAppVersion": "1.4.0",
|
||||||
|
"description": "Customize your workspace by adding commands everywhere, create Macros and supercharge your mobile toolbar.",
|
||||||
|
"author": "jsmorabito & phibr0",
|
||||||
|
"authorUrl": "https://github.com/phibr0",
|
||||||
|
"fundingUrl": "https://ko-fi.com/phibr0",
|
||||||
|
"isDesktopOnly": false
|
||||||
|
}
|
||||||
Vendored
+1
File diff suppressed because one or more lines are too long
+108
File diff suppressed because one or more lines are too long
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"id": "contribution-graph",
|
||||||
|
"name": "Contribution Graph",
|
||||||
|
"version": "0.10.0",
|
||||||
|
"minAppVersion": "1.3.0",
|
||||||
|
"description": "Generate a interactive heatmap graph to visualize and track your productivity",
|
||||||
|
"author": "vran",
|
||||||
|
"authorUrl": "https://github.com/vran-dev",
|
||||||
|
"isDesktopOnly": false,
|
||||||
|
"fundingUrl": "https://www.buymeacoffee.com/vran"
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
Vendored
+39805
File diff suppressed because one or more lines are too long
+10
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"id": "datacore",
|
||||||
|
"name": "Datacore",
|
||||||
|
"version": "0.1.28",
|
||||||
|
"minAppVersion": "1.4.11",
|
||||||
|
"description": "Reactive query engine backed by Javascript or a custom query language.",
|
||||||
|
"author": "Michael Brenan",
|
||||||
|
"authorUrl": "https://github.com/blacksmithgu",
|
||||||
|
"isDesktopOnly": false
|
||||||
|
}
|
||||||
+339
@@ -0,0 +1,339 @@
|
|||||||
|
/* src/api/ui/embed.css */
|
||||||
|
.datacore-span-embed {
|
||||||
|
position: relative;
|
||||||
|
padding: 1px 8px 1px 8px;
|
||||||
|
margin: 4px 0px 4px 0px;
|
||||||
|
background-color: var(--color-base-25);
|
||||||
|
}
|
||||||
|
.datacore-embed-source {
|
||||||
|
position: absolute;
|
||||||
|
top: 4px;
|
||||||
|
right: 4px;
|
||||||
|
padding-left: 4px;
|
||||||
|
padding-right: 4px;
|
||||||
|
background-color: var(--background-secondary-alt);
|
||||||
|
color: var(--text-faint);
|
||||||
|
font-size: var(--font-smallest);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* src/ui/errors.css */
|
||||||
|
.datacore-error-retry {
|
||||||
|
margin-top: 1em;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.datacore-error-box {
|
||||||
|
width: 100%;
|
||||||
|
min-height: 150px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
border: 4px dashed var(--background-secondary);
|
||||||
|
}
|
||||||
|
.datacore-error-title {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.datacore-error-message {
|
||||||
|
color: var(--text-muted);
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.datacore-loading-boundary {
|
||||||
|
width: 100%;
|
||||||
|
min-height: 150px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
border: 4px dashed var(--background-secondary);
|
||||||
|
}
|
||||||
|
.datacore-loading-title {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.datacore-loading-content {
|
||||||
|
color: var(--text-muted);
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.block-language-datacore li.selected,
|
||||||
|
.block-language-datacorejs li.selected {
|
||||||
|
background: var(--text-accent);
|
||||||
|
padding: 0.2em;
|
||||||
|
border-radius: 50%;
|
||||||
|
width: 2em;
|
||||||
|
height: 2em;
|
||||||
|
}
|
||||||
|
.block-language-datacore li.selected a,
|
||||||
|
.block-language-datacorejs li.selected a {
|
||||||
|
color: var(--text-on-accent-inverted);
|
||||||
|
display: block;
|
||||||
|
text-align: center;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.block-language-datacore .datacore-pager,
|
||||||
|
.block-language-datacorejs .datacore-pager {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
list-style: none;
|
||||||
|
min-width: 90%;
|
||||||
|
margin-right: 1.7em;
|
||||||
|
}
|
||||||
|
.block-language-datacore li.previous,
|
||||||
|
.block-language-datacore li.next,
|
||||||
|
.block-language-datacorejs li.previous,
|
||||||
|
.block-language-datacorejs li.next {
|
||||||
|
min-height: 1.4em;
|
||||||
|
min-width: 1.4em;
|
||||||
|
}
|
||||||
|
.block-language-datacore li.previous svg,
|
||||||
|
.block-language-datacore li.next svg,
|
||||||
|
.block-language-datacorejs li.previous svg,
|
||||||
|
.block-language-datacorejs li.next svg {
|
||||||
|
color: currentColor;
|
||||||
|
fill: currentColor !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* src/api/ui/layout.css */
|
||||||
|
.dc-stack {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
margin: 4px;
|
||||||
|
}
|
||||||
|
.dc-group {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
margin: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* src/api/ui/basics.css */
|
||||||
|
.dc-button {
|
||||||
|
padding: 4px;
|
||||||
|
margin-left: 4px;
|
||||||
|
margin-right: 4px;
|
||||||
|
margin-top: 2px;
|
||||||
|
margin-bottom: 2px;
|
||||||
|
}
|
||||||
|
.dc-intent-error {
|
||||||
|
background-color: var(--color-red) !important;
|
||||||
|
}
|
||||||
|
.dc-intent-warn {
|
||||||
|
background-color: var(--color-orange) !important;
|
||||||
|
}
|
||||||
|
.dc-intent-info {
|
||||||
|
background-color: var(--color-blue) !important;
|
||||||
|
}
|
||||||
|
.dc-intent-success {
|
||||||
|
background-color: var(--color-green) !important;
|
||||||
|
}
|
||||||
|
.dc-textbox {
|
||||||
|
padding: 4px;
|
||||||
|
margin-left: 4px;
|
||||||
|
margin-right: 4px;
|
||||||
|
margin-top: 2px;
|
||||||
|
margin-bottom: 2px;
|
||||||
|
}
|
||||||
|
.dc-checkbox {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
cursor: pointer;
|
||||||
|
margin: 4px 0;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
.dc-checkbox input[type=checkbox] {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.dc-checkbox:hover {
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
.dc-checkbox input[type=checkbox]:focus {
|
||||||
|
outline: none;
|
||||||
|
box-shadow: var(--shadow-s);
|
||||||
|
}
|
||||||
|
.dc-checkbox-disabled {
|
||||||
|
cursor: not-allowed;
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
.dc-checkbox-disabled input[type=checkbox] {
|
||||||
|
cursor: not-allowed;
|
||||||
|
}
|
||||||
|
.dc-slider {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
appearance: none;
|
||||||
|
transition: background 0.3s;
|
||||||
|
}
|
||||||
|
.dc-switch.dc-switch-disabled {
|
||||||
|
cursor: not-allowed;
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
.dc-icon {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* src/api/ui/views/paging.css */
|
||||||
|
.dc-paging-control {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
margin-top: 10px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
gap: 10px;
|
||||||
|
}
|
||||||
|
button.dc-paging-control-page {
|
||||||
|
width: var(--input-height);
|
||||||
|
height: var(--input-height);
|
||||||
|
padding: 0;
|
||||||
|
cursor: pointer;
|
||||||
|
background-color: unset;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
button.dc-paging-control-page:hover {
|
||||||
|
background-color: var(--text-selection);
|
||||||
|
}
|
||||||
|
button.dc-paging-control-page-active {
|
||||||
|
background-color: var(--text-selection);
|
||||||
|
}
|
||||||
|
button.dc-paging-control-page[disabled] {
|
||||||
|
cursor: inherit;
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
button.dc-paging-control-page[disabled]:hover {
|
||||||
|
background-color: unset;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.dc-paging-control-separator:hover > .dc-paging-control-ellipsis {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.dc-paging-control-separator > .dc-paging-control-leap-left,
|
||||||
|
.dc-paging-control-separator > .dc-paging-control-leap-right {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.dc-paging-control-separator:hover > .dc-paging-control-leap-left,
|
||||||
|
.dc-paging-control-separator:hover > .dc-paging-control-leap-right {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.dc-paging-control-separator > .dc-paging-control-leap-left {
|
||||||
|
transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* src/api/ui/views/table.css */
|
||||||
|
.datacore-table {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.datacore-table > thead > tr,
|
||||||
|
.datacore-table > tbody > tr {
|
||||||
|
margin-top: 1em;
|
||||||
|
margin-bottom: 1em;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.datacore-table > tbody > tr:hover {
|
||||||
|
background-color: var(--text-selection) !important;
|
||||||
|
}
|
||||||
|
.datacore-table > thead > tr > th {
|
||||||
|
font-weight: 700;
|
||||||
|
font-size: larger;
|
||||||
|
border-top: none;
|
||||||
|
border-left: none;
|
||||||
|
border-right: none;
|
||||||
|
border-bottom: solid;
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
.datacore-table > tbody > tr > td {
|
||||||
|
text-align: left;
|
||||||
|
border: none;
|
||||||
|
font-weight: 400;
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
.datacore-table ul,
|
||||||
|
.datacore-table ol {
|
||||||
|
margin-block-start: 0.2em !important;
|
||||||
|
margin-block-end: 0.2em !important;
|
||||||
|
}
|
||||||
|
.datacore-table-header-cell-content {
|
||||||
|
width: auto;
|
||||||
|
display: inline-flex;
|
||||||
|
flex-direction: row;
|
||||||
|
}
|
||||||
|
.datacore-table-sort {
|
||||||
|
flex-grow: 0;
|
||||||
|
margin-right: 0.25em;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.datacore-table-header-title {
|
||||||
|
align-items: center;
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* src/api/ui/views/callout.css */
|
||||||
|
.datacore .callout-content,
|
||||||
|
.datacore.callout {
|
||||||
|
transition: all 100ms cubic-bezier(0.02, 0.01, 0.47, 1);
|
||||||
|
margin-top: 10px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
.datacore .callout-fold {
|
||||||
|
align-self: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* src/api/ui/views/cards.css */
|
||||||
|
.datacore-card {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
padding: 1.2rem;
|
||||||
|
border-radius: 0.5em;
|
||||||
|
background-color: var(--background-secondary);
|
||||||
|
min-width: 89%;
|
||||||
|
border: 2px solid var(--table-border-color);
|
||||||
|
overflow-y: scroll;
|
||||||
|
}
|
||||||
|
.datacore-card-title {
|
||||||
|
margin-bottom: 0.6em;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
font-size: 1.8em;
|
||||||
|
}
|
||||||
|
.datacore-card-title.centered {
|
||||||
|
justify-content: center !important;
|
||||||
|
}
|
||||||
|
.datacore-card-content,
|
||||||
|
.datacore-card-inner,
|
||||||
|
.datacore-card {
|
||||||
|
transition: all 0.3s cubic-bezier(0.65, 0.05, 0.36, 1);
|
||||||
|
}
|
||||||
|
.datacore-card-inner {
|
||||||
|
overflow-y: scroll;
|
||||||
|
overflow-x: hidden;
|
||||||
|
max-height: 500px;
|
||||||
|
}
|
||||||
|
.datacore-card .datacore-card-collapser,
|
||||||
|
.datacore-card.is-collapsed .datacore-card-collapser {
|
||||||
|
transition: all 0.5s cubic-bezier(0.65, 0.05, 0.36, 1);
|
||||||
|
}
|
||||||
|
.datacore-card-content {
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
.datacore-card-inner {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.datacore-card:not(.datacore-card.is-collapsed) .datacore-card-collapser {
|
||||||
|
transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
.datacore-card.is-collapsed .datacore-card-collapser {
|
||||||
|
transform: rotate(0deg) !important;
|
||||||
|
}
|
||||||
|
.datacore-card-collapse,
|
||||||
|
.datacore-card-collapser svg {
|
||||||
|
min-width: 1em;
|
||||||
|
min-height: 1em;
|
||||||
|
fill: currentColor;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.datacore-card.is-collapsed .datacore-card-collapser {
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
.datacore-card .datacore-card-footer {
|
||||||
|
font-size: 0.7em;
|
||||||
|
text-align: right;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
Vendored
+4
-3
@@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"renderNullAs": "\\-",
|
"renderNullAs": "\\-",
|
||||||
"taskCompletionTracking": true,
|
"taskCompletionTracking": true,
|
||||||
"taskCompletionUseEmojiShorthand": true,
|
"taskCompletionUseEmojiShorthand": false,
|
||||||
"taskCompletionText": "completion",
|
"taskCompletionText": "completion",
|
||||||
"taskCompletionDateFormat": "yyyy-MM-dd",
|
"taskCompletionDateFormat": "yyyy-MM-dd",
|
||||||
"recursiveSubTaskCompletion": true,
|
"recursiveSubTaskCompletion": true,
|
||||||
"warnOnEmptyResult": true,
|
"warnOnEmptyResult": true,
|
||||||
"refreshEnabled": true,
|
"refreshEnabled": true,
|
||||||
"refreshInterval": 2500,
|
"refreshInterval": 2500,
|
||||||
"defaultDateFormat": "MMMM dd, yyyy",
|
"defaultDateFormat": "dd.MM.yyyy",
|
||||||
"defaultDateTimeFormat": "h:mm a - MMMM dd, yyyy",
|
"defaultDateTimeFormat": "dd.MM.yyyy HH:MM:ss",
|
||||||
"maxRecursiveRenderDepth": 4,
|
"maxRecursiveRenderDepth": 4,
|
||||||
"tableIdColumnName": "File",
|
"tableIdColumnName": "File",
|
||||||
"tableGroupColumnName": "Group",
|
"tableGroupColumnName": "Group",
|
||||||
@@ -22,5 +22,6 @@
|
|||||||
"enableDataviewJs": true,
|
"enableDataviewJs": true,
|
||||||
"enableInlineDataviewJs": true,
|
"enableInlineDataviewJs": true,
|
||||||
"prettyRenderInlineFields": true,
|
"prettyRenderInlineFields": true,
|
||||||
|
"prettyRenderInlineFieldsInLivePreview": true,
|
||||||
"dataviewJsKeyword": "dataviewjs"
|
"dataviewJsKeyword": "dataviewjs"
|
||||||
}
|
}
|
||||||
Vendored
+2262
-1138
File diff suppressed because one or more lines are too long
+2
-1
@@ -1,10 +1,11 @@
|
|||||||
{
|
{
|
||||||
"id": "dataview",
|
"id": "dataview",
|
||||||
"name": "Dataview",
|
"name": "Dataview",
|
||||||
"version": "0.5.55",
|
"version": "0.5.68",
|
||||||
"minAppVersion": "0.13.11",
|
"minAppVersion": "0.13.11",
|
||||||
"description": "Complex data views for the data-obsessed.",
|
"description": "Complex data views for the data-obsessed.",
|
||||||
"author": "Michael Brenan <blacksmithgu@gmail.com>",
|
"author": "Michael Brenan <blacksmithgu@gmail.com>",
|
||||||
"authorUrl": "https://github.com/blacksmithgu",
|
"authorUrl": "https://github.com/blacksmithgu",
|
||||||
|
"helpUrl": "https://blacksmithgu.github.io/obsidian-dataview/",
|
||||||
"isDesktopOnly": false
|
"isDesktopOnly": false
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-9
@@ -1,8 +1,3 @@
|
|||||||
/** Live Preview padding fixes, specifically for DataviewJS custom HTML elements. */
|
|
||||||
.is-live-preview .block-language-dataviewjs > p, .is-live-preview .block-language-dataviewjs > span {
|
|
||||||
line-height: 1.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.block-language-dataview {
|
.block-language-dataview {
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
@@ -23,7 +18,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.table-view-table > tbody > tr:hover {
|
.table-view-table > tbody > tr:hover {
|
||||||
background-color: var(--text-selection) !important;
|
background-color: var(--table-row-background-hover);
|
||||||
}
|
}
|
||||||
|
|
||||||
.table-view-table > thead > tr > th {
|
.table-view-table > thead > tr > th {
|
||||||
@@ -74,7 +69,7 @@
|
|||||||
padding-right: 8px;
|
padding-right: 8px;
|
||||||
font-family: var(--font-monospace);
|
font-family: var(--font-monospace);
|
||||||
background-color: var(--background-primary-alt);
|
background-color: var(--background-primary-alt);
|
||||||
color: var(--text-nav-selected);
|
color: var(--nav-item-color-selected);
|
||||||
}
|
}
|
||||||
|
|
||||||
.dataview.inline-field-value {
|
.dataview.inline-field-value {
|
||||||
@@ -82,7 +77,7 @@
|
|||||||
padding-right: 8px;
|
padding-right: 8px;
|
||||||
font-family: var(--font-monospace);
|
font-family: var(--font-monospace);
|
||||||
background-color: var(--background-secondary-alt);
|
background-color: var(--background-secondary-alt);
|
||||||
color: var(--text-nav-selected);
|
color: var(--nav-item-color-selected);
|
||||||
}
|
}
|
||||||
|
|
||||||
.dataview.inline-field-standalone-value {
|
.dataview.inline-field-standalone-value {
|
||||||
@@ -90,7 +85,7 @@
|
|||||||
padding-right: 8px;
|
padding-right: 8px;
|
||||||
font-family: var(--font-monospace);
|
font-family: var(--font-monospace);
|
||||||
background-color: var(--background-secondary-alt);
|
background-color: var(--background-secondary-alt);
|
||||||
color: var(--text-nav-selected);
|
color: var(--nav-item-color-selected);
|
||||||
}
|
}
|
||||||
|
|
||||||
/***************/
|
/***************/
|
||||||
|
|||||||
Vendored
+42076
File diff suppressed because one or more lines are too long
Vendored
+11
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"id": "desk",
|
||||||
|
"name": "Desk",
|
||||||
|
"version": "1.0.6",
|
||||||
|
"minAppVersion": "0.15.0",
|
||||||
|
"description": "A desk to see notes at a glance in Obsidian. Requires Dataview as a dependency.",
|
||||||
|
"author": "David Landry",
|
||||||
|
"authorUrl": "https://blog.dlandry.xyz",
|
||||||
|
"fundingUrl": "https://ko-fi.com/davidlandry",
|
||||||
|
"isDesktopOnly": true
|
||||||
|
}
|
||||||
Vendored
+226
@@ -0,0 +1,226 @@
|
|||||||
|
.desk_root {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.desk__search-result-container {
|
||||||
|
display: flex;
|
||||||
|
width: 100%;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
overflow: scroll;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.desk__search-menu {
|
||||||
|
padding: var(--size-4-4);
|
||||||
|
position: sticky;
|
||||||
|
top: 0;
|
||||||
|
background-color: var(--background-primary);
|
||||||
|
width: 100%;
|
||||||
|
z-index: 1;
|
||||||
|
border-bottom: var(--border-width) solid var(--background-modifier-border);
|
||||||
|
}
|
||||||
|
|
||||||
|
.desk__note-card {
|
||||||
|
position: sticky;
|
||||||
|
padding: 8px;
|
||||||
|
margin: 8px;
|
||||||
|
border-radius: 8px;
|
||||||
|
border: 1px solid var(--background-modifier-border);
|
||||||
|
word-break: break-word;
|
||||||
|
user-select: auto;
|
||||||
|
width: 600px;
|
||||||
|
min-height: 400px;
|
||||||
|
background-color: var(--background-primary-alt);
|
||||||
|
padding-bottom: 30px;
|
||||||
|
user-select: text;
|
||||||
|
}
|
||||||
|
|
||||||
|
.desk__note-card h3 {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: var(--h3-size);
|
||||||
|
margin-top: var(--size-4-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.desk__note-card a h3 {
|
||||||
|
text-decoration: none;
|
||||||
|
margin-bottom: var(--size-4-1)
|
||||||
|
}
|
||||||
|
|
||||||
|
.desk__note-card-header-details {
|
||||||
|
color: var(--text-faint);
|
||||||
|
font-size: var(--font-smaller);
|
||||||
|
margin-top: var(--size-4-2);
|
||||||
|
margin-bottom: var(--size-4-4);
|
||||||
|
}
|
||||||
|
|
||||||
|
.desk__note-card-footer {
|
||||||
|
color: var(--text-faint);
|
||||||
|
margin-top: var(--size-4-2);
|
||||||
|
margin-bottom: var(--size-4-4);
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.desk__note-card-footer>span {
|
||||||
|
margin-right: var(--size-4-2)
|
||||||
|
}
|
||||||
|
|
||||||
|
.desk__note-card-header-details-icon {
|
||||||
|
width: var(--icon-s);
|
||||||
|
height: var(--icon-s);
|
||||||
|
position: relative;
|
||||||
|
top: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.desk__search-result-content {
|
||||||
|
font-size: var(--text-normal);
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
word-wrap: break-word;
|
||||||
|
max-height: 280px;
|
||||||
|
transition: max-height 300ms ease-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.desk__search-result-content.overflowing {
|
||||||
|
border-bottom: 1px solid var(--text-faint)
|
||||||
|
}
|
||||||
|
|
||||||
|
.desk__search-result-content.expanded {
|
||||||
|
transition: max-height 300ms ease-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.desk__text-search-input-container {
|
||||||
|
display: flex;
|
||||||
|
width: 100%;
|
||||||
|
margin-bottom: var(--size-4-2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.desk__text-search-input-container input {
|
||||||
|
flex-grow: 1;
|
||||||
|
font-size: var(--h2-size)
|
||||||
|
}
|
||||||
|
|
||||||
|
.desk__autocomplete-search-box-container {
|
||||||
|
width: 80%;
|
||||||
|
margin: auto;
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
padding: var(--size-4-1) var(--size-4-2);
|
||||||
|
border-radius: var(--input-radius);
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.desk__search-box-chip-container {
|
||||||
|
flex-grow: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.desk__dropdown-list {
|
||||||
|
list-style-type: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.desk__dropdown-list-item>a {
|
||||||
|
color: var(--text-normal);
|
||||||
|
text-decoration: none;
|
||||||
|
display: block;
|
||||||
|
padding: 3px;
|
||||||
|
width: 100%;
|
||||||
|
line-height: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.desk__dropdown-list-item a.selected {
|
||||||
|
background-color: var(--background-modifier-active-hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
span.desk__chip {
|
||||||
|
color: var(--tag-color);
|
||||||
|
font-size: var(--tag-size);
|
||||||
|
font-weight: bold;
|
||||||
|
background-color: var(--tag-background);
|
||||||
|
padding: 0 var(--tag-padding-x);
|
||||||
|
border: var(--tag-border-width) solid var(--tag-border-color);
|
||||||
|
border-radius: var(--tag-radius);
|
||||||
|
display: inline-block;
|
||||||
|
margin: 0 var(--size-4-1) 0 0;
|
||||||
|
line-height: var(--input-height);
|
||||||
|
row-gap: var(--size-4-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
span.desk__chip.reversed {
|
||||||
|
text-decoration: line-through;
|
||||||
|
filter: saturate(0.2)
|
||||||
|
}
|
||||||
|
|
||||||
|
span.desk__chip.empty {
|
||||||
|
background-color: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.desk__chip a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
span.desk__chip:hover {
|
||||||
|
color: var(--tag-color-hover);
|
||||||
|
background-color: var(--tag-background-hover);
|
||||||
|
border-color: var(--tag-border-color-hover);
|
||||||
|
}
|
||||||
|
|
||||||
|
span.desk__chip .desk__chip-icon {
|
||||||
|
width: var(--tag-size);
|
||||||
|
height: var(--tag-size);
|
||||||
|
}
|
||||||
|
|
||||||
|
div.desk__sort-chip-container {}
|
||||||
|
|
||||||
|
.desk__chip-delete-icon {
|
||||||
|
border-left: 1px solid var(--tag-border-color-hover)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.desk__dropdown {
|
||||||
|
position: absolute;
|
||||||
|
background-color: var(--modal-background);
|
||||||
|
border-radius: var(--modal-radius);
|
||||||
|
border: var(--modal-border-width) solid var(--modal-border-color);
|
||||||
|
width: var(--popover-width);
|
||||||
|
padding: var(--size-4-1);
|
||||||
|
font-size: var(--popover-font-size);
|
||||||
|
max-height: 50vh;
|
||||||
|
overflow-y: scroll;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.desk__dropdown::-webkit-scrollbar {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.desk__filter-menu {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.view-content:has(div.desk__root) {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.desk__sort-chip-dropdown {
|
||||||
|
position: absolute;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.desk__dropdown-list-info {
|
||||||
|
color: var(--text-muted);
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.desk__results-bottom-sensor {
|
||||||
|
height: 10px;
|
||||||
|
}
|
||||||
+107354
File diff suppressed because one or more lines are too long
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"id": "external-file-embed-and-link",
|
||||||
|
"name": "External File Embed and Link",
|
||||||
|
"version": "1.5.6",
|
||||||
|
"minAppVersion": "0.15.0",
|
||||||
|
"description": "Embed and link local files outside your vault with relative paths for cross-device and multi-platform compatibility.",
|
||||||
|
"author": "oylbin",
|
||||||
|
"authorUrl": "https://github.com/oylbin",
|
||||||
|
"fundingUrl": "https://buymeacoffee.com/oylbin",
|
||||||
|
"isDesktopOnly": true
|
||||||
|
}
|
||||||
@@ -0,0 +1,216 @@
|
|||||||
|
/*
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
*/
|
||||||
|
/* External File Embed and Link Plugin Styles */
|
||||||
|
|
||||||
|
/* PDF Embed Styles */
|
||||||
|
.external-embed-pdf-iframe {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.external-embed-pdf-iframe-custom-size {
|
||||||
|
width: var(--iframe-width);
|
||||||
|
height: var(--iframe-height);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Embedded Image Styles */
|
||||||
|
.external-embed-image {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Open File Button Styles */
|
||||||
|
.external-embed-video-container {
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.external-embed-open-button {
|
||||||
|
position: absolute;
|
||||||
|
top: 5px;
|
||||||
|
right: 5px;
|
||||||
|
padding: 2px 6px;
|
||||||
|
border: 1px solid var(--background-modifier-border);
|
||||||
|
border-radius: 3px;
|
||||||
|
background-color: rgba(255, 255, 255, 0.8);
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: 12px;
|
||||||
|
z-index: 1;
|
||||||
|
opacity: 0;
|
||||||
|
transition: opacity 0.2s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.external-embed-video-container:hover .external-embed-open-button {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.external-embed-open-button:hover {
|
||||||
|
background-color: rgba(255, 255, 255, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Audio Open Button Styles */
|
||||||
|
.external-embed-audio-container {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.external-embed-audio-open-button {
|
||||||
|
padding: 2px 6px;
|
||||||
|
margin-right: 32px;
|
||||||
|
border: 1px solid var(--background-modifier-border);
|
||||||
|
border-radius: 3px;
|
||||||
|
background-color: rgba(255, 255, 255, 0.8);
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: 12px;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.external-embed-audio-open-button:hover {
|
||||||
|
background-color: rgba(255, 255, 255, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Markdown Element Styles */
|
||||||
|
.external-embed-markdown-element {
|
||||||
|
border: 1px dashed var(--background-modifier-border);
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.external-embed-markdown-header {
|
||||||
|
text-decoration: none;
|
||||||
|
color: var(--text-normal);
|
||||||
|
font-weight: bold;
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.external-embed-markdown-header:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Folder View Styles */
|
||||||
|
.external-embed-folder-header {
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
text-decoration: none;
|
||||||
|
color: var(--text-normal);
|
||||||
|
cursor: pointer;
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.external-embed-folder-header::before {
|
||||||
|
content: "";
|
||||||
|
background-color: var(--text-normal);
|
||||||
|
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 7v10a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-6l-2-2H5a2 2 0 0 0-2 2z'%3E%3C/path%3E%3C/svg%3E");
|
||||||
|
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 7v10a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-6l-2-2H5a2 2 0 0 0-2 2z'%3E%3C/path%3E%3C/svg%3E");
|
||||||
|
-webkit-mask-repeat: no-repeat;
|
||||||
|
mask-repeat: no-repeat;
|
||||||
|
-webkit-mask-size: contain;
|
||||||
|
mask-size: contain;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
margin-right: 4px;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.external-embed-folder-header:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.external-embed-folder-list {
|
||||||
|
list-style-type: disc;
|
||||||
|
padding-left: 20px;
|
||||||
|
margin-top: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.external-embed-folder-list li {
|
||||||
|
margin: 4px 0;
|
||||||
|
padding: 2px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.external-embed-folder-list a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: var(--text-normal);
|
||||||
|
}
|
||||||
|
|
||||||
|
.external-embed-folder-list a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.external-embed-folder-error {
|
||||||
|
color: var(--text-error);
|
||||||
|
margin-top: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Error Message Styles */
|
||||||
|
.external-embed-error {
|
||||||
|
color: var(--text-error);
|
||||||
|
border: 1px dashed var(--background-modifier-border);
|
||||||
|
margin-top: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Settings Section Styles */
|
||||||
|
.external-embed-sub-section {
|
||||||
|
border-top: 1px dashed var(--background-modifier-border);
|
||||||
|
padding-left: 1em;
|
||||||
|
padding-right: 1em;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.external-embed-sub-section .setting-item {
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 0;
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.external-embed-sub-section .setting-item-name {
|
||||||
|
font-size: var(--font-ui-small);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Modal Styles */
|
||||||
|
.external-embed-modal-title {
|
||||||
|
margin-bottom: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.external-embed-modal-button-container {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.external-embed-directory-button {
|
||||||
|
width: 100%;
|
||||||
|
text-align: left;
|
||||||
|
padding: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.external-embed-folder-link {
|
||||||
|
font-weight: normal;
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.external-embed-folder-link::before {
|
||||||
|
content: "";
|
||||||
|
background-color: var(--text-normal);
|
||||||
|
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 7v10a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-6l-2-2H5a2 2 0 0 0-2 2z'%3E%3C/path%3E%3C/svg%3E");
|
||||||
|
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 7v10a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-6l-2-2H5a2 2 0 0 0-2 2z'%3E%3C/path%3E%3C/svg%3E");
|
||||||
|
-webkit-mask-repeat: no-repeat;
|
||||||
|
mask-repeat: no-repeat;
|
||||||
|
-webkit-mask-size: contain;
|
||||||
|
mask-size: contain;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
margin-right: 4px;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.external-embed-file-link {
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"outputFileName": "orphaned files output",
|
||||||
|
"disableWorkingLinks": false,
|
||||||
|
"directoriesToIgnore": [],
|
||||||
|
"filesToIgnore": [],
|
||||||
|
"fileTypesToIgnore": [],
|
||||||
|
"linksToIgnore": [],
|
||||||
|
"tagsToIgnore": [],
|
||||||
|
"fileTypesToDelete": [],
|
||||||
|
"ignoreFileTypes": true,
|
||||||
|
"ignoreDirectories": true,
|
||||||
|
"unresolvedLinksIgnoreDirectories": true,
|
||||||
|
"unresolvedLinksOutputFileName": "broken links output",
|
||||||
|
"unresolvedLinksDirectoriesToIgnore": [],
|
||||||
|
"unresolvedLinksFilesToIgnore": [],
|
||||||
|
"unresolvedLinksFileTypesToIgnore": [],
|
||||||
|
"unresolvedLinksLinksToIgnore": [],
|
||||||
|
"unresolvedLinksTagsToIgnore": [],
|
||||||
|
"withoutTagsDirectoriesToIgnore": [],
|
||||||
|
"withoutTagsFilesToIgnore": [],
|
||||||
|
"withoutTagsOutputFileName": "files without tags",
|
||||||
|
"emptyFilesOutputFileName": "empty files",
|
||||||
|
"emptyFilesDirectories": [],
|
||||||
|
"emptyFilesFilesToIgnore": [],
|
||||||
|
"emptyFilesIgnoreDirectories": true,
|
||||||
|
"openOutputFile": true
|
||||||
|
}
|
||||||
+905
@@ -0,0 +1,905 @@
|
|||||||
|
/*
|
||||||
|
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
||||||
|
if you want to view the source visit the plugins github repository (https://github.com/Vinzent03/obsidian-advanced-uri)
|
||||||
|
*/
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
// src/main.ts
|
||||||
|
var main_exports = {};
|
||||||
|
__export(main_exports, {
|
||||||
|
default: () => FindOrphanedFilesPlugin
|
||||||
|
});
|
||||||
|
module.exports = __toCommonJS(main_exports);
|
||||||
|
var import_obsidian4 = require("obsidian");
|
||||||
|
|
||||||
|
// src/deleteFilesModal.ts
|
||||||
|
var import_obsidian = require("obsidian");
|
||||||
|
var DeleteFilesModal = class extends import_obsidian.Modal {
|
||||||
|
constructor(app, filesToDelete) {
|
||||||
|
super(app);
|
||||||
|
this.filesToDelete = filesToDelete;
|
||||||
|
}
|
||||||
|
onOpen() {
|
||||||
|
let { contentEl, titleEl } = this;
|
||||||
|
titleEl.setText(
|
||||||
|
"Move " + this.filesToDelete.length + " files to system trash?"
|
||||||
|
);
|
||||||
|
contentEl.createEl("button", { text: "Cancel" }).addEventListener("click", () => this.close());
|
||||||
|
contentEl.setAttr("margin", "auto");
|
||||||
|
contentEl.createEl("button", {
|
||||||
|
cls: "mod-cta",
|
||||||
|
text: "Confirm"
|
||||||
|
}).addEventListener("click", async () => {
|
||||||
|
for (const file of this.filesToDelete) {
|
||||||
|
await this.app.vault.trash(file, true);
|
||||||
|
}
|
||||||
|
this.close();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
onClose() {
|
||||||
|
let { contentEl } = this;
|
||||||
|
contentEl.empty();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// src/settingsTab.ts
|
||||||
|
var import_obsidian2 = require("obsidian");
|
||||||
|
var SettingsTab = class extends import_obsidian2.PluginSettingTab {
|
||||||
|
constructor(app, plugin, defaultSettings) {
|
||||||
|
super(app, plugin);
|
||||||
|
this.defaultSettings = defaultSettings;
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
// Add trailing slash to catch files named like the directory. See https://github.com/Vinzent03/find-unlinked-files/issues/24
|
||||||
|
formatPath(path, addDirectorySlash) {
|
||||||
|
if (path.length == 0)
|
||||||
|
return path;
|
||||||
|
path = (0, import_obsidian2.normalizePath)(path);
|
||||||
|
if (addDirectorySlash)
|
||||||
|
return path + "/";
|
||||||
|
else
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
display() {
|
||||||
|
let { containerEl } = this;
|
||||||
|
containerEl.empty();
|
||||||
|
containerEl.createEl("h2", { text: this.plugin.manifest.name });
|
||||||
|
containerEl.createEl("h4", {
|
||||||
|
text: "Settings for finding orphaned files"
|
||||||
|
});
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Open output file").addToggle(
|
||||||
|
(cb) => cb.setValue(this.plugin.settings.openOutputFile).onChange((value) => {
|
||||||
|
this.plugin.settings.openOutputFile = value;
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
})
|
||||||
|
);
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Output file name").setDesc(
|
||||||
|
"Set name of output file (without file extension). Make sure no file exists with this name because it will be overwritten! If the name is empty, the default name is set."
|
||||||
|
).addText(
|
||||||
|
(cb) => cb.onChange((value) => {
|
||||||
|
if (value.length == 0) {
|
||||||
|
this.plugin.settings.outputFileName = this.defaultSettings.outputFileName;
|
||||||
|
} else {
|
||||||
|
this.plugin.settings.outputFileName = value;
|
||||||
|
}
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
}).setValue(this.plugin.settings.outputFileName)
|
||||||
|
);
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Disable working links").setDesc(
|
||||||
|
"Indent lines to disable the link and to clean up the graph view"
|
||||||
|
).addToggle(
|
||||||
|
(cb) => cb.onChange((value) => {
|
||||||
|
this.plugin.settings.disableWorkingLinks = value;
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
}).setValue(this.plugin.settings.disableWorkingLinks)
|
||||||
|
);
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Exclude files in the given directories").setDesc(
|
||||||
|
"Enable to exclude files in the given directories. Disable to only include files in the given directories"
|
||||||
|
).addToggle(
|
||||||
|
(cb) => cb.setValue(this.plugin.settings.ignoreDirectories).onChange((value) => {
|
||||||
|
this.plugin.settings.ignoreDirectories = value;
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
})
|
||||||
|
);
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Directories").setDesc("Add each directory path in a new line").addTextArea(
|
||||||
|
(cb) => cb.setPlaceholder("Directory/Subdirectory").setValue(
|
||||||
|
this.plugin.settings.directoriesToIgnore.join("\n")
|
||||||
|
).onChange((value) => {
|
||||||
|
let paths = value.trim().split("\n").map((value2) => this.formatPath(value2, true));
|
||||||
|
this.plugin.settings.directoriesToIgnore = paths;
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
})
|
||||||
|
);
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Exclude files").setDesc("Add each file path in a new line (with file extension!)").addTextArea(
|
||||||
|
(cb) => cb.setPlaceholder("Directory/file.md").setValue(this.plugin.settings.filesToIgnore.join("\n")).onChange((value) => {
|
||||||
|
let paths = value.trim().split("\n").map((value2) => this.formatPath(value2, false));
|
||||||
|
this.plugin.settings.filesToIgnore = paths;
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
})
|
||||||
|
);
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Exclude links").setDesc(
|
||||||
|
"Exclude files, which contain the given file as link. Add each file path in a new line (with file extension!). Set it to `*` to exclude files with links."
|
||||||
|
).addTextArea(
|
||||||
|
(cb) => cb.setPlaceholder("Directory/file.md").setValue(this.plugin.settings.linksToIgnore.join("\n")).onChange((value) => {
|
||||||
|
let paths = value.trim().split("\n").map((value2) => this.formatPath(value2, false));
|
||||||
|
this.plugin.settings.linksToIgnore = paths;
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
})
|
||||||
|
);
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Exclude files with the given filetypes").setDesc(
|
||||||
|
"Enable to exclude files with the given filetypes. Disable to only include files with the given filetypes"
|
||||||
|
).addToggle(
|
||||||
|
(cb) => cb.setValue(this.plugin.settings.ignoreFileTypes).onChange((value) => {
|
||||||
|
this.plugin.settings.ignoreFileTypes = value;
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
})
|
||||||
|
);
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("File types").setDesc("Effect depends on toggle above").addTextArea(
|
||||||
|
(cb) => cb.setPlaceholder("docx,txt").setValue(this.plugin.settings.fileTypesToIgnore.join(",")).onChange((value) => {
|
||||||
|
let extensions = value.trim().split(",");
|
||||||
|
this.plugin.settings.fileTypesToIgnore = extensions;
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
})
|
||||||
|
);
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Exclude tags").setDesc(
|
||||||
|
"Exclude files, which contain the given tag. Add each tag separated by comma (without `#`)"
|
||||||
|
).addTextArea(
|
||||||
|
(cb) => cb.setPlaceholder("todo,unfinished").setValue(this.plugin.settings.tagsToIgnore.join(",")).onChange((value) => {
|
||||||
|
let tags = value.trim().split(",");
|
||||||
|
this.plugin.settings.tagsToIgnore = tags;
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
})
|
||||||
|
);
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Filetypes to delete per command. See README.").setDesc(
|
||||||
|
"Add each filetype separated by comma. Set to `*` to delete all files."
|
||||||
|
).addTextArea(
|
||||||
|
(cb) => cb.setPlaceholder("jpg,png").setValue(this.plugin.settings.fileTypesToDelete.join(",")).onChange((value) => {
|
||||||
|
let extensions = value.trim().split(",");
|
||||||
|
this.plugin.settings.fileTypesToDelete = extensions;
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
})
|
||||||
|
);
|
||||||
|
containerEl.createEl("h4", {
|
||||||
|
text: "Settings for finding broken links"
|
||||||
|
});
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Output file name").setDesc(
|
||||||
|
"Set name of output file (without file extension). Make sure no file exists with this name because it will be overwritten! If the name is empty, the default name is set."
|
||||||
|
).addText(
|
||||||
|
(cb) => cb.onChange((value) => {
|
||||||
|
if (value.length == 0) {
|
||||||
|
this.plugin.settings.unresolvedLinksOutputFileName = this.defaultSettings.unresolvedLinksOutputFileName;
|
||||||
|
} else {
|
||||||
|
this.plugin.settings.unresolvedLinksOutputFileName = value;
|
||||||
|
}
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
}).setValue(
|
||||||
|
this.plugin.settings.unresolvedLinksOutputFileName
|
||||||
|
)
|
||||||
|
);
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Exclude files in the given directories").setDesc(
|
||||||
|
"Enable to exclude files in the given directories. Disable to only include files in the given directories"
|
||||||
|
).addToggle(
|
||||||
|
(cb) => cb.setValue(
|
||||||
|
this.plugin.settings.unresolvedLinksIgnoreDirectories
|
||||||
|
).onChange((value) => {
|
||||||
|
this.plugin.settings.unresolvedLinksIgnoreDirectories = value;
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
})
|
||||||
|
);
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Directories").setDesc("Add each directory path in a new line").addTextArea(
|
||||||
|
(cb) => cb.setPlaceholder("Directory/Subdirectory").setValue(
|
||||||
|
this.plugin.settings.unresolvedLinksDirectoriesToIgnore.join(
|
||||||
|
"\n"
|
||||||
|
)
|
||||||
|
).onChange((value) => {
|
||||||
|
let paths = value.trim().split("\n").map((value2) => this.formatPath(value2, true));
|
||||||
|
this.plugin.settings.unresolvedLinksDirectoriesToIgnore = paths;
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
})
|
||||||
|
);
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Exclude files").setDesc(
|
||||||
|
"Exclude links in the specified file. Add each file path in a new line (with file extension!)"
|
||||||
|
).addTextArea(
|
||||||
|
(cb) => cb.setPlaceholder("Directory/file.md").setValue(
|
||||||
|
this.plugin.settings.unresolvedLinksFilesToIgnore.join(
|
||||||
|
"\n"
|
||||||
|
)
|
||||||
|
).onChange((value) => {
|
||||||
|
let paths = value.trim().split("\n").map((value2) => this.formatPath(value2, false));
|
||||||
|
this.plugin.settings.unresolvedLinksFilesToIgnore = paths;
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
})
|
||||||
|
);
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Exclude links").setDesc(
|
||||||
|
"Exclude files, which contain the given file as link. Add each file path in a new line (with file extension!). Set it to `*` to exclude files with links."
|
||||||
|
).addTextArea(
|
||||||
|
(cb) => cb.setPlaceholder("Directory/file.md").setValue(
|
||||||
|
this.plugin.settings.unresolvedLinksLinksToIgnore.join(
|
||||||
|
"\n"
|
||||||
|
)
|
||||||
|
).onChange((value) => {
|
||||||
|
let paths = value.trim().split("\n").map((value2) => this.formatPath(value2, false));
|
||||||
|
this.plugin.settings.unresolvedLinksLinksToIgnore = paths;
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
})
|
||||||
|
);
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Exclude filetypes").setDesc(
|
||||||
|
"Exclude links with the specified filetype. Add each filetype separated by comma"
|
||||||
|
).addTextArea(
|
||||||
|
(cb) => cb.setPlaceholder("docx,txt").setValue(
|
||||||
|
this.plugin.settings.unresolvedLinksFileTypesToIgnore.join(
|
||||||
|
","
|
||||||
|
)
|
||||||
|
).onChange((value) => {
|
||||||
|
let extensions = value.trim().split(",");
|
||||||
|
this.plugin.settings.unresolvedLinksFileTypesToIgnore = extensions;
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
})
|
||||||
|
);
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Exclude tags").setDesc(
|
||||||
|
"Exclude links in files, which contain the given tag. Add each tag separated by comma (without `#`)"
|
||||||
|
).addTextArea(
|
||||||
|
(cb) => cb.setPlaceholder("todo,unfinished").setValue(
|
||||||
|
this.plugin.settings.unresolvedLinksTagsToIgnore.join(
|
||||||
|
","
|
||||||
|
)
|
||||||
|
).onChange((value) => {
|
||||||
|
let tags = value.trim().split(",");
|
||||||
|
this.plugin.settings.unresolvedLinksTagsToIgnore = tags;
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
})
|
||||||
|
);
|
||||||
|
containerEl.createEl("h4", {
|
||||||
|
text: "Settings for finding files without tags"
|
||||||
|
});
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Output file name").setDesc(
|
||||||
|
"Set name of output file (without file extension). Make sure no file exists with this name because it will be overwritten! If the name is empty, the default name is set."
|
||||||
|
).addText(
|
||||||
|
(cb) => cb.onChange((value) => {
|
||||||
|
if (value.length == 0) {
|
||||||
|
this.plugin.settings.withoutTagsOutputFileName = this.defaultSettings.withoutTagsOutputFileName;
|
||||||
|
} else {
|
||||||
|
this.plugin.settings.withoutTagsOutputFileName = value;
|
||||||
|
}
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
}).setValue(this.plugin.settings.withoutTagsOutputFileName)
|
||||||
|
);
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Exclude files").setDesc(
|
||||||
|
"Exclude the specific files. Add each file path in a new line (with file extension!)"
|
||||||
|
).addTextArea(
|
||||||
|
(cb) => cb.setPlaceholder("Directory/file.md").setValue(
|
||||||
|
this.plugin.settings.withoutTagsFilesToIgnore.join("\n")
|
||||||
|
).onChange((value) => {
|
||||||
|
let paths = value.trim().split("\n").map((value2) => this.formatPath(value2, false));
|
||||||
|
this.plugin.settings.withoutTagsFilesToIgnore = paths;
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
})
|
||||||
|
);
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Exclude directories").setDesc(
|
||||||
|
"Exclude files in the specified directories. Add each directory path in a new line"
|
||||||
|
).addTextArea(
|
||||||
|
(cb) => cb.setPlaceholder("Directory/Subdirectory").setValue(
|
||||||
|
this.plugin.settings.withoutTagsDirectoriesToIgnore.join(
|
||||||
|
"\n"
|
||||||
|
)
|
||||||
|
).onChange((value) => {
|
||||||
|
let paths = value.trim().split("\n").map((value2) => this.formatPath(value2, true));
|
||||||
|
this.plugin.settings.withoutTagsDirectoriesToIgnore = paths;
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
})
|
||||||
|
);
|
||||||
|
containerEl.createEl("h4", {
|
||||||
|
text: "Settings for finding empty files"
|
||||||
|
});
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Output file name").setDesc(
|
||||||
|
"Set name of output file (without file extension). Make sure no file exists with this name because it will be overwritten! If the name is empty, the default name is set."
|
||||||
|
).addText(
|
||||||
|
(cb) => cb.onChange((value) => {
|
||||||
|
if (value.length == 0) {
|
||||||
|
this.plugin.settings.emptyFilesOutputFileName = this.defaultSettings.emptyFilesOutputFileName;
|
||||||
|
} else {
|
||||||
|
this.plugin.settings.emptyFilesOutputFileName = value;
|
||||||
|
}
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
}).setValue(this.plugin.settings.emptyFilesOutputFileName)
|
||||||
|
);
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Exclude files in the given directories").setDesc(
|
||||||
|
"Enable to exclude files in the given directories. Disable to only include files in the given directories"
|
||||||
|
).addToggle(
|
||||||
|
(cb) => cb.setValue(this.plugin.settings.emptyFilesIgnoreDirectories).onChange((value) => {
|
||||||
|
this.plugin.settings.emptyFilesIgnoreDirectories = value;
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
})
|
||||||
|
);
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Directories").setDesc("Add each directory path in a new line").addTextArea(
|
||||||
|
(cb) => cb.setPlaceholder("Directory/Subdirectory").setValue(
|
||||||
|
this.plugin.settings.emptyFilesDirectories.join("\n")
|
||||||
|
).onChange((value) => {
|
||||||
|
let paths = value.trim().split("\n").map((value2) => this.formatPath(value2, true));
|
||||||
|
this.plugin.settings.emptyFilesDirectories = paths;
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
})
|
||||||
|
);
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Exclude files").setDesc("Add each file path in a new line (with file extension!)").addTextArea(
|
||||||
|
(cb) => cb.setPlaceholder("Directory/file.md").setValue(
|
||||||
|
this.plugin.settings.emptyFilesFilesToIgnore.join("\n")
|
||||||
|
).onChange((value) => {
|
||||||
|
let paths = value.trim().split("\n").map((value2) => this.formatPath(value2, false));
|
||||||
|
this.plugin.settings.emptyFilesFilesToIgnore = paths;
|
||||||
|
this.plugin.saveSettings();
|
||||||
|
})
|
||||||
|
);
|
||||||
|
new import_obsidian2.Setting(containerEl).setName("Donate").setDesc(
|
||||||
|
"If you like this Plugin, consider donating to support continued development."
|
||||||
|
).addButton((bt) => {
|
||||||
|
bt.buttonEl.outerHTML = "<a href='https://ko-fi.com/F1F195IQ5' target='_blank'><img height='36' style='border:0px;height:36px;' src='https://cdn.ko-fi.com/cdn/kofi3.png?v=3' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a>";
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// src/utils.ts
|
||||||
|
var import_obsidian3 = require("obsidian");
|
||||||
|
var Utils = class {
|
||||||
|
/**
|
||||||
|
* Checks for the given settings. Is used for `Find orphaned files` and `Find broken links`
|
||||||
|
* @param app
|
||||||
|
* @param filePath
|
||||||
|
* @param tagsToIgnore
|
||||||
|
* @param linksToIgnore
|
||||||
|
* @param directoriesToIgnore
|
||||||
|
* @param filesToIgnore
|
||||||
|
* @param ignoreDirectories
|
||||||
|
*/
|
||||||
|
constructor(app, filePath, tagsToIgnore, linksToIgnore, directoriesToIgnore, filesToIgnore, ignoreDirectories = true, dir) {
|
||||||
|
this.app = app;
|
||||||
|
this.filePath = filePath;
|
||||||
|
this.tagsToIgnore = tagsToIgnore;
|
||||||
|
this.linksToIgnore = linksToIgnore;
|
||||||
|
this.directoriesToIgnore = directoriesToIgnore;
|
||||||
|
this.filesToIgnore = filesToIgnore;
|
||||||
|
this.ignoreDirectories = ignoreDirectories;
|
||||||
|
this.dir = dir;
|
||||||
|
this.fileCache = app.metadataCache.getCache(filePath);
|
||||||
|
}
|
||||||
|
hasTagsToIgnore() {
|
||||||
|
const tags = (0, import_obsidian3.getAllTags)(this.fileCache);
|
||||||
|
return (tags == null ? void 0 : tags.find(
|
||||||
|
(tag) => this.tagsToIgnore.contains(tag.substring(1))
|
||||||
|
)) !== void 0;
|
||||||
|
}
|
||||||
|
hasLinksToIgnore() {
|
||||||
|
var _a, _b;
|
||||||
|
if ((((_a = this.fileCache) == null ? void 0 : _a.embeds) != null || ((_b = this.fileCache) == null ? void 0 : _b.links) != null) && this.linksToIgnore[0] == "*") {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return (0, import_obsidian3.iterateCacheRefs)(this.fileCache, (cb) => {
|
||||||
|
var _a2;
|
||||||
|
const link = (_a2 = this.app.metadataCache.getFirstLinkpathDest(
|
||||||
|
cb.link,
|
||||||
|
this.filePath
|
||||||
|
)) == null ? void 0 : _a2.path;
|
||||||
|
return this.linksToIgnore.contains(link);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
checkDirectory() {
|
||||||
|
if (this.dir) {
|
||||||
|
if (!this.filePath.startsWith(this.dir)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const contains = this.directoriesToIgnore.find(
|
||||||
|
(value) => value.length != 0 && this.filePath.startsWith(value)
|
||||||
|
) !== void 0;
|
||||||
|
if (this.ignoreDirectories) {
|
||||||
|
return contains;
|
||||||
|
} else {
|
||||||
|
return !contains;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
isFileToIgnore() {
|
||||||
|
return this.filesToIgnore.contains(this.filePath);
|
||||||
|
}
|
||||||
|
shouldIgnoreFile() {
|
||||||
|
return this.hasTagsToIgnore() || this.hasLinksToIgnore() || this.checkDirectory() || this.isFileToIgnore();
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Writes the text to the file and opens the file in a new pane if it is not opened yet
|
||||||
|
* @param app
|
||||||
|
* @param outputFileName name of the output file
|
||||||
|
* @param text data to be written to the file
|
||||||
|
*/
|
||||||
|
static async writeAndOpenFile(app, outputFileName, text, openFile) {
|
||||||
|
await app.vault.adapter.write(outputFileName, text);
|
||||||
|
if (!openFile)
|
||||||
|
return;
|
||||||
|
let fileIsAlreadyOpened = false;
|
||||||
|
app.workspace.iterateAllLeaves((leaf) => {
|
||||||
|
if (leaf.getDisplayText() != "" && outputFileName.startsWith(leaf.getDisplayText())) {
|
||||||
|
fileIsAlreadyOpened = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (!fileIsAlreadyOpened) {
|
||||||
|
const newPane = app.workspace.getLeavesOfType("empty").length == 0;
|
||||||
|
if (newPane) {
|
||||||
|
app.workspace.openLinkText(outputFileName, "/", true);
|
||||||
|
} else {
|
||||||
|
const file = app.vault.getAbstractFileByPath(outputFileName);
|
||||||
|
if (file instanceof import_obsidian3.TFile) {
|
||||||
|
await app.workspace.getLeavesOfType("empty")[0].openFile(file);
|
||||||
|
} else {
|
||||||
|
app.workspace.openLinkText(outputFileName, "/", true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// src/main.ts
|
||||||
|
var DEFAULT_SETTINGS = {
|
||||||
|
outputFileName: "orphaned files output",
|
||||||
|
disableWorkingLinks: false,
|
||||||
|
directoriesToIgnore: [],
|
||||||
|
filesToIgnore: [],
|
||||||
|
fileTypesToIgnore: [],
|
||||||
|
linksToIgnore: [],
|
||||||
|
tagsToIgnore: [],
|
||||||
|
fileTypesToDelete: [],
|
||||||
|
ignoreFileTypes: true,
|
||||||
|
ignoreDirectories: true,
|
||||||
|
unresolvedLinksIgnoreDirectories: true,
|
||||||
|
unresolvedLinksOutputFileName: "broken links output",
|
||||||
|
unresolvedLinksDirectoriesToIgnore: [],
|
||||||
|
unresolvedLinksFilesToIgnore: [],
|
||||||
|
unresolvedLinksFileTypesToIgnore: [],
|
||||||
|
unresolvedLinksLinksToIgnore: [],
|
||||||
|
unresolvedLinksTagsToIgnore: [],
|
||||||
|
withoutTagsDirectoriesToIgnore: [],
|
||||||
|
withoutTagsFilesToIgnore: [],
|
||||||
|
withoutTagsOutputFileName: "files without tags",
|
||||||
|
emptyFilesOutputFileName: "empty files",
|
||||||
|
emptyFilesDirectories: [],
|
||||||
|
emptyFilesFilesToIgnore: [],
|
||||||
|
emptyFilesIgnoreDirectories: true,
|
||||||
|
openOutputFile: true
|
||||||
|
};
|
||||||
|
var FindOrphanedFilesPlugin = class extends import_obsidian4.Plugin {
|
||||||
|
constructor() {
|
||||||
|
super(...arguments);
|
||||||
|
this.findExtensionRegex = /(\.[^.]+)$/;
|
||||||
|
}
|
||||||
|
async onload() {
|
||||||
|
console.log("loading " + this.manifest.name + " plugin");
|
||||||
|
await this.loadSettings();
|
||||||
|
this.addCommand({
|
||||||
|
id: "find-unlinked-files",
|
||||||
|
name: "Find orphaned files",
|
||||||
|
callback: () => this.findOrphanedFiles()
|
||||||
|
});
|
||||||
|
this.addCommand({
|
||||||
|
id: "find-unresolved-link",
|
||||||
|
name: "Find broken links",
|
||||||
|
callback: () => this.findBrokenLinks()
|
||||||
|
});
|
||||||
|
this.addCommand({
|
||||||
|
id: "delete-unlinked-files",
|
||||||
|
name: "Delete orphaned files with certain extension. See README",
|
||||||
|
callback: () => this.deleteOrphanedFiles()
|
||||||
|
});
|
||||||
|
this.addCommand({
|
||||||
|
id: "create-files-of-broken-links",
|
||||||
|
name: "Create files of broken links",
|
||||||
|
callback: () => this.createFilesOfBrokenLinks()
|
||||||
|
});
|
||||||
|
this.addCommand({
|
||||||
|
id: "find-files-without-tags",
|
||||||
|
name: "Find files without tags",
|
||||||
|
callback: () => this.findFilesWithoutTags()
|
||||||
|
});
|
||||||
|
this.addCommand({
|
||||||
|
id: "find-empty-files",
|
||||||
|
name: "Find empty files",
|
||||||
|
callback: () => this.findEmptyFiles()
|
||||||
|
});
|
||||||
|
this.addCommand({
|
||||||
|
id: "delete-empty-files",
|
||||||
|
name: "Delete empty files",
|
||||||
|
callback: () => this.deleteEmptyFiles()
|
||||||
|
});
|
||||||
|
this.addSettingTab(new SettingsTab(this.app, this, DEFAULT_SETTINGS));
|
||||||
|
this.app.workspace.on("file-menu", (menu, file, _, __) => {
|
||||||
|
if (file instanceof import_obsidian4.TFolder) {
|
||||||
|
menu.addItem((cb) => {
|
||||||
|
cb.setIcon("search");
|
||||||
|
cb.setTitle("Find orphaned files");
|
||||||
|
cb.onClick((_2) => {
|
||||||
|
this.findOrphanedFiles(file.path + "/");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
async createFilesOfBrokenLinks() {
|
||||||
|
var _a, _b;
|
||||||
|
if (!await this.app.vault.adapter.exists(
|
||||||
|
this.settings.unresolvedLinksOutputFileName + ".md"
|
||||||
|
)) {
|
||||||
|
new import_obsidian4.Notice(
|
||||||
|
"Can't find file - Please run the `Find broken files' command before"
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const links = (_a = this.app.metadataCache.getCache(
|
||||||
|
this.settings.unresolvedLinksOutputFileName + ".md"
|
||||||
|
)) == null ? void 0 : _a.links;
|
||||||
|
if (!links) {
|
||||||
|
new import_obsidian4.Notice("No broken links found");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const filesToCreate = [];
|
||||||
|
for (const link of links) {
|
||||||
|
const file = this.app.metadataCache.getFirstLinkpathDest(
|
||||||
|
link.link,
|
||||||
|
"/"
|
||||||
|
);
|
||||||
|
if (file)
|
||||||
|
continue;
|
||||||
|
const foundType = (_b = this.findExtensionRegex.exec(link.link)) == null ? void 0 : _b[0];
|
||||||
|
if ((foundType != null ? foundType : ".md") == ".md") {
|
||||||
|
if (foundType) {
|
||||||
|
filesToCreate.push(link.link);
|
||||||
|
} else {
|
||||||
|
filesToCreate.push(link.link + ".md");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (filesToCreate) {
|
||||||
|
for (const file of filesToCreate) {
|
||||||
|
await this.app.vault.create(file, "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
async findEmptyFiles() {
|
||||||
|
var _a;
|
||||||
|
const files = this.app.vault.getFiles();
|
||||||
|
const emptyFiles = [];
|
||||||
|
for (const file of files) {
|
||||||
|
if (new Utils(
|
||||||
|
this.app,
|
||||||
|
file.path,
|
||||||
|
[],
|
||||||
|
[],
|
||||||
|
this.settings.emptyFilesDirectories,
|
||||||
|
this.settings.emptyFilesFilesToIgnore,
|
||||||
|
this.settings.emptyFilesIgnoreDirectories
|
||||||
|
).shouldIgnoreFile()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
const content = await this.app.vault.read(file);
|
||||||
|
const trimmedContent = content.trim();
|
||||||
|
if (!trimmedContent) {
|
||||||
|
emptyFiles.push(file);
|
||||||
|
}
|
||||||
|
const cache = this.app.metadataCache.getFileCache(file);
|
||||||
|
const frontmatter = cache == null ? void 0 : cache.frontmatter;
|
||||||
|
if (frontmatter) {
|
||||||
|
const lines = content.trimRight().split("\n").length;
|
||||||
|
if (((_a = cache.frontmatterPosition) != null ? _a : frontmatter.position).end.line == lines - 1) {
|
||||||
|
emptyFiles.push(file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let prefix;
|
||||||
|
if (this.settings.disableWorkingLinks)
|
||||||
|
prefix = " ";
|
||||||
|
else
|
||||||
|
prefix = "";
|
||||||
|
const text = emptyFiles.map((file) => `${prefix}- [[${file.path}]]`).join("\n");
|
||||||
|
Utils.writeAndOpenFile(
|
||||||
|
this.app,
|
||||||
|
this.settings.emptyFilesOutputFileName + ".md",
|
||||||
|
text,
|
||||||
|
this.settings.openOutputFile
|
||||||
|
);
|
||||||
|
}
|
||||||
|
async findOrphanedFiles(dir) {
|
||||||
|
const startTime = Date.now();
|
||||||
|
const outFileName = this.settings.outputFileName + ".md";
|
||||||
|
let outFile = null;
|
||||||
|
const allFiles = this.app.vault.getFiles();
|
||||||
|
const markdownFiles = this.app.vault.getMarkdownFiles();
|
||||||
|
const canvasFiles = allFiles.filter(
|
||||||
|
(file) => file.extension === "canvas"
|
||||||
|
);
|
||||||
|
const links = /* @__PURE__ */ new Set();
|
||||||
|
const findLinkInTextRegex = /\[\[(.*?)\]\]|\[.*?\]\((.*?)\)/g;
|
||||||
|
const canvasParsingPromises = canvasFiles.map(
|
||||||
|
async (canvasFile) => {
|
||||||
|
var _a;
|
||||||
|
const canvasFileContent = JSON.parse(
|
||||||
|
await this.app.vault.cachedRead(canvasFile) || "{}"
|
||||||
|
);
|
||||||
|
(_a = canvasFileContent.nodes) == null ? void 0 : _a.forEach((node) => {
|
||||||
|
var _a2;
|
||||||
|
let linkTexts = [];
|
||||||
|
if (node.type === "file") {
|
||||||
|
linkTexts.push(node.file);
|
||||||
|
} else if (node.type === "text") {
|
||||||
|
let match;
|
||||||
|
while ((match = findLinkInTextRegex.exec(node.text)) !== null) {
|
||||||
|
linkTexts.push((_a2 = match[1]) != null ? _a2 : match[2]);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
linkTexts.forEach((linkText) => {
|
||||||
|
const targetFile = this.app.metadataCache.getFirstLinkpathDest(
|
||||||
|
linkText.split("|")[0].split("#")[0],
|
||||||
|
canvasFile.path
|
||||||
|
);
|
||||||
|
if (targetFile != null)
|
||||||
|
links.add(targetFile.path);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
);
|
||||||
|
markdownFiles.forEach((mdFile) => {
|
||||||
|
var _a, _b, _c;
|
||||||
|
if (outFile === null && mdFile.path == outFileName) {
|
||||||
|
outFile = mdFile;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const cache = this.app.metadataCache.getFileCache(mdFile);
|
||||||
|
for (const ref of [
|
||||||
|
...(_a = cache.embeds) != null ? _a : [],
|
||||||
|
...(_b = cache.links) != null ? _b : [],
|
||||||
|
...(_c = cache.frontmatterLinks) != null ? _c : []
|
||||||
|
]) {
|
||||||
|
const txt = this.app.metadataCache.getFirstLinkpathDest(
|
||||||
|
(0, import_obsidian4.getLinkpath)(ref.link),
|
||||||
|
mdFile.path
|
||||||
|
);
|
||||||
|
if (txt != null)
|
||||||
|
links.add(txt.path);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
await Promise.all(canvasParsingPromises);
|
||||||
|
const notLinkedFiles = allFiles.filter(
|
||||||
|
(file) => this.isFileAnOrphan(file, links, dir)
|
||||||
|
);
|
||||||
|
notLinkedFiles.remove(outFile);
|
||||||
|
let text = "";
|
||||||
|
let prefix;
|
||||||
|
if (this.settings.disableWorkingLinks)
|
||||||
|
prefix = " ";
|
||||||
|
else
|
||||||
|
prefix = "";
|
||||||
|
notLinkedFiles.sort((a, b) => b.stat.size - a.stat.size);
|
||||||
|
notLinkedFiles.forEach((file) => {
|
||||||
|
text += prefix + "- [[" + this.app.metadataCache.fileToLinktext(file, "/", false) + "]]\n";
|
||||||
|
});
|
||||||
|
Utils.writeAndOpenFile(
|
||||||
|
this.app,
|
||||||
|
outFileName,
|
||||||
|
text,
|
||||||
|
this.settings.openOutputFile
|
||||||
|
);
|
||||||
|
const endTime = Date.now();
|
||||||
|
const diff = endTime - startTime;
|
||||||
|
if (diff > 1e3) {
|
||||||
|
new import_obsidian4.Notice(
|
||||||
|
`Found ${notLinkedFiles.length} orphaned files in ${diff}ms`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
async deleteOrphanedFiles() {
|
||||||
|
var _a, _b;
|
||||||
|
if (!await this.app.vault.adapter.exists(
|
||||||
|
this.settings.outputFileName + ".md"
|
||||||
|
)) {
|
||||||
|
new import_obsidian4.Notice(
|
||||||
|
"Can't find file - Please run the `Find orphaned files' command before"
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const links = (_b = (_a = this.app.metadataCache.getCache(
|
||||||
|
this.settings.outputFileName + ".md"
|
||||||
|
)) == null ? void 0 : _a.links) != null ? _b : [];
|
||||||
|
const filesToDelete = [];
|
||||||
|
links.forEach((link) => {
|
||||||
|
const file = this.app.metadataCache.getFirstLinkpathDest(
|
||||||
|
link.link,
|
||||||
|
"/"
|
||||||
|
);
|
||||||
|
if (!file)
|
||||||
|
return;
|
||||||
|
if (this.settings.fileTypesToDelete[0] == "*" || this.settings.fileTypesToDelete.contains(file.extension)) {
|
||||||
|
filesToDelete.push(file);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (filesToDelete.length > 0)
|
||||||
|
new DeleteFilesModal(this.app, filesToDelete).open();
|
||||||
|
}
|
||||||
|
async deleteEmptyFiles() {
|
||||||
|
var _a, _b;
|
||||||
|
if (!await this.app.vault.adapter.exists(
|
||||||
|
this.settings.emptyFilesOutputFileName + ".md"
|
||||||
|
)) {
|
||||||
|
new import_obsidian4.Notice(
|
||||||
|
"Can't find file - Please run the `Find orphaned files' command before"
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const links = (_b = (_a = this.app.metadataCache.getCache(
|
||||||
|
this.settings.emptyFilesOutputFileName + ".md"
|
||||||
|
)) == null ? void 0 : _a.links) != null ? _b : [];
|
||||||
|
const filesToDelete = [];
|
||||||
|
for (const link of links) {
|
||||||
|
const file = this.app.metadataCache.getFirstLinkpathDest(
|
||||||
|
link.link,
|
||||||
|
"/"
|
||||||
|
);
|
||||||
|
if (!file)
|
||||||
|
return;
|
||||||
|
filesToDelete.push(file);
|
||||||
|
}
|
||||||
|
if (filesToDelete.length > 0)
|
||||||
|
new DeleteFilesModal(this.app, filesToDelete).open();
|
||||||
|
}
|
||||||
|
findBrokenLinks() {
|
||||||
|
const outFileName = this.settings.unresolvedLinksOutputFileName + ".md";
|
||||||
|
const links = [];
|
||||||
|
const brokenLinks = this.app.metadataCache.unresolvedLinks;
|
||||||
|
for (const sourceFilepath in brokenLinks) {
|
||||||
|
if (sourceFilepath == this.settings.unresolvedLinksOutputFileName + ".md")
|
||||||
|
continue;
|
||||||
|
const fileType = sourceFilepath.substring(
|
||||||
|
sourceFilepath.lastIndexOf(".") + 1
|
||||||
|
);
|
||||||
|
const utils = new Utils(
|
||||||
|
this.app,
|
||||||
|
sourceFilepath,
|
||||||
|
this.settings.unresolvedLinksTagsToIgnore,
|
||||||
|
this.settings.unresolvedLinksLinksToIgnore,
|
||||||
|
this.settings.unresolvedLinksDirectoriesToIgnore,
|
||||||
|
this.settings.unresolvedLinksFilesToIgnore,
|
||||||
|
this.settings.unresolvedLinksIgnoreDirectories
|
||||||
|
);
|
||||||
|
if (utils.shouldIgnoreFile())
|
||||||
|
continue;
|
||||||
|
for (const link in brokenLinks[sourceFilepath]) {
|
||||||
|
const linkFileType = link.substring(link.lastIndexOf(".") + 1);
|
||||||
|
if (this.settings.unresolvedLinksFileTypesToIgnore.contains(
|
||||||
|
linkFileType
|
||||||
|
))
|
||||||
|
continue;
|
||||||
|
let formattedFilePath = sourceFilepath;
|
||||||
|
if (fileType == "md") {
|
||||||
|
formattedFilePath = sourceFilepath.substring(
|
||||||
|
0,
|
||||||
|
sourceFilepath.lastIndexOf(".md")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
const brokenLink = {
|
||||||
|
files: [formattedFilePath],
|
||||||
|
link
|
||||||
|
};
|
||||||
|
if (links.contains(brokenLink))
|
||||||
|
continue;
|
||||||
|
const duplication = links.find((e) => e.link == link);
|
||||||
|
if (duplication) {
|
||||||
|
duplication.files.push(formattedFilePath);
|
||||||
|
} else {
|
||||||
|
links.push(brokenLink);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Utils.writeAndOpenFile(
|
||||||
|
this.app,
|
||||||
|
outFileName,
|
||||||
|
[
|
||||||
|
"Don't forget that creating the file from here may create the file in the wrong directory!",
|
||||||
|
...links.map(
|
||||||
|
(e) => `- [[${e.link}]] in [[${e.files.join("]], [[")}]]`
|
||||||
|
)
|
||||||
|
].join("\n"),
|
||||||
|
this.settings.openOutputFile
|
||||||
|
);
|
||||||
|
}
|
||||||
|
findFilesWithoutTags() {
|
||||||
|
const outFileName = this.settings.withoutTagsOutputFileName + ".md";
|
||||||
|
let outFile;
|
||||||
|
const files = this.app.vault.getMarkdownFiles();
|
||||||
|
let withoutFiles = files.filter((file) => {
|
||||||
|
var _a;
|
||||||
|
const utils = new Utils(
|
||||||
|
this.app,
|
||||||
|
file.path,
|
||||||
|
[],
|
||||||
|
[],
|
||||||
|
this.settings.withoutTagsDirectoriesToIgnore,
|
||||||
|
this.settings.withoutTagsFilesToIgnore,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
if (utils.shouldIgnoreFile()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return ((_a = (0, import_obsidian4.getAllTags)(this.app.metadataCache.getFileCache(file)).length) != null ? _a : 0) <= 0;
|
||||||
|
});
|
||||||
|
withoutFiles.remove(outFile);
|
||||||
|
let prefix;
|
||||||
|
if (this.settings.disableWorkingLinks)
|
||||||
|
prefix = " ";
|
||||||
|
else
|
||||||
|
prefix = "";
|
||||||
|
const text = withoutFiles.map((file) => `${prefix}- [[${file.path}]]`).join("\n");
|
||||||
|
Utils.writeAndOpenFile(
|
||||||
|
this.app,
|
||||||
|
outFileName,
|
||||||
|
text,
|
||||||
|
this.settings.openOutputFile
|
||||||
|
);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Checks if the given file in an orphaned file
|
||||||
|
*
|
||||||
|
* @param file file to check
|
||||||
|
* @param links all links in the vault
|
||||||
|
*/
|
||||||
|
isFileAnOrphan(file, links, dir) {
|
||||||
|
if (links.has(file.path))
|
||||||
|
return false;
|
||||||
|
if (file.extension == "css")
|
||||||
|
return false;
|
||||||
|
if (this.settings.fileTypesToIgnore[0] !== "") {
|
||||||
|
const containsFileType = this.settings.fileTypesToIgnore.contains(
|
||||||
|
file.extension
|
||||||
|
);
|
||||||
|
if (this.settings.ignoreFileTypes) {
|
||||||
|
if (containsFileType)
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
if (!containsFileType)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const utils = new Utils(
|
||||||
|
this.app,
|
||||||
|
file.path,
|
||||||
|
this.settings.tagsToIgnore,
|
||||||
|
this.settings.linksToIgnore,
|
||||||
|
this.settings.directoriesToIgnore,
|
||||||
|
this.settings.filesToIgnore,
|
||||||
|
this.settings.ignoreDirectories,
|
||||||
|
dir
|
||||||
|
);
|
||||||
|
if (utils.shouldIgnoreFile())
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
onunload() {
|
||||||
|
console.log("unloading " + this.manifest.name + " plugin");
|
||||||
|
}
|
||||||
|
async loadSettings() {
|
||||||
|
this.settings = Object.assign(DEFAULT_SETTINGS, await this.loadData());
|
||||||
|
}
|
||||||
|
async saveSettings() {
|
||||||
|
await this.saveData(this.settings);
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"id": "find-unlinked-files",
|
||||||
|
"name": "Find orphaned files and broken links",
|
||||||
|
"version": "1.10.1",
|
||||||
|
"description": "Find files that are not linked anywhere and would otherwise be lost in your vault. In other words: files with no backlinks.",
|
||||||
|
"author": "Vinzent",
|
||||||
|
"fundingUrl": "https://ko-fi.com/vinzent",
|
||||||
|
"authorUrl": "https://github.com/Vinzent03",
|
||||||
|
"isDesktopOnly": false
|
||||||
|
}
|
||||||
+18
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"contactsFolder": "Infos/Kontakte",
|
||||||
|
"defaultSortColumn": "daysUntilBirthday",
|
||||||
|
"defaultSortDirection": "asc",
|
||||||
|
"relationshipTypes": [
|
||||||
|
"familie",
|
||||||
|
"freund",
|
||||||
|
"kollege",
|
||||||
|
"kommilitone",
|
||||||
|
"projekt",
|
||||||
|
"recruiter",
|
||||||
|
"schule",
|
||||||
|
"bewerbung",
|
||||||
|
"thw",
|
||||||
|
"arzt"
|
||||||
|
],
|
||||||
|
"defaultActiveTab": "markdown"
|
||||||
|
}
|
||||||
+11
File diff suppressed because one or more lines are too long
+10
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"id": "friend-tracker",
|
||||||
|
"name": "Friend Tracker",
|
||||||
|
"version": "1.3.3",
|
||||||
|
"minAppVersion": "1.4.14",
|
||||||
|
"description": "Keep track of friends, birthdays, reminders, and interactions in Obsidian. Build a personal CRM, log connections, and stay organized inside your vault.",
|
||||||
|
"author": "Dan Au",
|
||||||
|
"authorUrl": "https://dausign.com",
|
||||||
|
"isDesktopOnly": false
|
||||||
|
}
|
||||||
+1135
File diff suppressed because it is too large
Load Diff
Vendored
+17
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"runAtStartup": false,
|
||||||
|
"addRibbonIcon": true,
|
||||||
|
"promptUser": true,
|
||||||
|
"promptForBigFiles": true,
|
||||||
|
"attachmentsExtensions": ".jpg|.jpeg|.png|.gif|.svg|.pdf",
|
||||||
|
"defaultOperation": "trash",
|
||||||
|
"expiredAttribute": "expires",
|
||||||
|
"expiredDateFormat": "YYYY-MM-DD",
|
||||||
|
"sizeLimitKb": 1024,
|
||||||
|
"processOrphans": true,
|
||||||
|
"processEmpty": true,
|
||||||
|
"processExpired": true,
|
||||||
|
"processBig": true,
|
||||||
|
"honorObsidianExcludedFiles": true,
|
||||||
|
"excludedFilesFilters": []
|
||||||
|
}
|
||||||
Vendored
+65
File diff suppressed because one or more lines are too long
+11
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"id": "janitor",
|
||||||
|
"name": "Janitor",
|
||||||
|
"version": "1.1.1",
|
||||||
|
"minAppVersion": "0.15.0",
|
||||||
|
"description": "Performs cleanup tasks on the Obsidian vault",
|
||||||
|
"author": "Gabriele Cannata",
|
||||||
|
"authorUrl": "https://github.com/Canna71",
|
||||||
|
"fundingUrl": "https://www.buymeacoffee.com/gcannata",
|
||||||
|
"isDesktopOnly": false
|
||||||
|
}
|
||||||
Vendored
+108
@@ -0,0 +1,108 @@
|
|||||||
|
/*
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
*/
|
||||||
|
.janitor-modal-footer {
|
||||||
|
/* float: right; */
|
||||||
|
padding: 10pt;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.janitor-modal-footer button {
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.janitor-modal-footer .janitor-footer-buttons {
|
||||||
|
flex: 1;
|
||||||
|
justify-content: flex-end;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.janitor-scan-section-title {
|
||||||
|
font-size: larger;
|
||||||
|
margin-bottom: 5pt;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.janitor-modal-title {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 150%;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.janitor-file {
|
||||||
|
margin-left: 1em;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.janitor-file:hover {
|
||||||
|
background-color: var(--background-primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.janitor-file .openFileIcon {
|
||||||
|
right: 0px;
|
||||||
|
position: absolute;
|
||||||
|
/* cursor: pointer; */
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.janitor-file label {
|
||||||
|
width: 100%;
|
||||||
|
/* cursor: pointer; */
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.janitor-file span {
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
margin-right: 4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.janitor-file:hover .openFileIcon {
|
||||||
|
visibility: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
.janitor-file:focus {
|
||||||
|
outline: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.janitor-scan-results {
|
||||||
|
overflow-y: auto;
|
||||||
|
max-height:250px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.janitor-files-wrapper {
|
||||||
|
/* overflow-y: auto; */
|
||||||
|
/* max-height: 180px; */
|
||||||
|
/* border: 1px solid; */
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.janitor-date-picker {
|
||||||
|
padding: 5px;;
|
||||||
|
}
|
||||||
|
|
||||||
|
.janitor-date-picker label span {
|
||||||
|
margin-right: 1em;;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.janitor-date-picker-buttons {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.janitor-date-shortcuts {
|
||||||
|
white-space: nowrap;
|
||||||
|
margin-top: 1em;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.janitor-date-shortcuts .janitor-date-picker-buttons {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
Vendored
+3175
File diff suppressed because it is too large
Load Diff
Vendored
+37
File diff suppressed because one or more lines are too long
+10
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"id": "journals",
|
||||||
|
"name": "Journals",
|
||||||
|
"version": "2.1.10",
|
||||||
|
"minAppVersion": "1.0.0",
|
||||||
|
"description": "Manage your journals in Obsidian",
|
||||||
|
"author": "Sergii Kostyrko",
|
||||||
|
"authorUrl": "https://github.com/srg-kostyrko",
|
||||||
|
"isDesktopOnly": false
|
||||||
|
}
|
||||||
+1
File diff suppressed because one or more lines are too long
Vendored
+55
@@ -0,0 +1,55 @@
|
|||||||
|
{
|
||||||
|
"ProgressProperties": {
|
||||||
|
"enabled": false,
|
||||||
|
"properties": []
|
||||||
|
},
|
||||||
|
"IgnoredProperties": {
|
||||||
|
"enabled": false,
|
||||||
|
"properties": []
|
||||||
|
},
|
||||||
|
"AutoProperties": {
|
||||||
|
"enabled": true,
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"name": "status",
|
||||||
|
"choices": [
|
||||||
|
" New",
|
||||||
|
"In Arbeit",
|
||||||
|
"In Test",
|
||||||
|
"Geschlossen",
|
||||||
|
"Abgewiesen"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"EditMode": {
|
||||||
|
"mode": "Some Multi",
|
||||||
|
"properties": [
|
||||||
|
"tags"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"KanbanHelper": {
|
||||||
|
"enabled": true,
|
||||||
|
"boards": [
|
||||||
|
{
|
||||||
|
"property": "status",
|
||||||
|
"boardName": "Project Board"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"property": "type",
|
||||||
|
"boardName": "Goal Board"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"property": "status",
|
||||||
|
"boardName": "Task Board"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"property": "status",
|
||||||
|
"boardName": "gba-office Board"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"UIElements": {
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
}
|
||||||
Vendored
+5538
File diff suppressed because it is too large
Load Diff
+10
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"id": "metaedit",
|
||||||
|
"name": "MetaEdit",
|
||||||
|
"version": "1.8.2",
|
||||||
|
"minAppVersion": "1.4.1",
|
||||||
|
"description": "MetaEdit helps you manage your metadata.",
|
||||||
|
"author": "Christian B. B. Houmann",
|
||||||
|
"authorUrl": "https://bagerbach.com",
|
||||||
|
"isDesktopOnly": false
|
||||||
|
}
|
||||||
+15
@@ -0,0 +1,15 @@
|
|||||||
|
.centerSettingContent {
|
||||||
|
display: grid;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.not-a-button {
|
||||||
|
background: none;
|
||||||
|
color: inherit;
|
||||||
|
border: none;
|
||||||
|
padding: 0;
|
||||||
|
font: inherit;
|
||||||
|
cursor: pointer;
|
||||||
|
outline: inherit;
|
||||||
|
}
|
||||||
+9560
File diff suppressed because one or more lines are too long
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"id": "nldates-obsidian",
|
||||||
|
"name": "Natural Language Dates",
|
||||||
|
"description": "Create date-links based on natural language",
|
||||||
|
"version": "0.6.2",
|
||||||
|
"author": "Argentina Ortega Sainz",
|
||||||
|
"authorUrl": "https://argentinaos.com/",
|
||||||
|
"isDesktopOnly": false,
|
||||||
|
"minAppVersion": "1.0.0"
|
||||||
|
}
|
||||||
-24
@@ -1,24 +0,0 @@
|
|||||||
{
|
|
||||||
"userAdmonitions": {},
|
|
||||||
"syntaxHighlight": false,
|
|
||||||
"copyButton": false,
|
|
||||||
"version": "9.2.3",
|
|
||||||
"autoCollapse": false,
|
|
||||||
"defaultCollapseType": "open",
|
|
||||||
"injectColor": true,
|
|
||||||
"parseTitles": true,
|
|
||||||
"dropShadow": true,
|
|
||||||
"hideEmpty": false,
|
|
||||||
"open": {
|
|
||||||
"admonitions": true,
|
|
||||||
"icons": true,
|
|
||||||
"other": true,
|
|
||||||
"advanced": false
|
|
||||||
},
|
|
||||||
"icons": [],
|
|
||||||
"useFontAwesome": true,
|
|
||||||
"rpgDownloadedOnce": false,
|
|
||||||
"msDocConverted": false,
|
|
||||||
"useSnippet": false,
|
|
||||||
"snippetPath": "custom-admonitions.117516"
|
|
||||||
}
|
|
||||||
-511
File diff suppressed because one or more lines are too long
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "obsidian-admonition",
|
|
||||||
"name": "Admonition",
|
|
||||||
"version": "9.2.3",
|
|
||||||
"minAppVersion": "1.1.0",
|
|
||||||
"description": "Enhanced callouts for Obsidian.md",
|
|
||||||
"author": "Jeremy Valentine",
|
|
||||||
"authorUrl": "",
|
|
||||||
"isDesktopOnly": false
|
|
||||||
}
|
|
||||||
File diff suppressed because one or more lines are too long
+62
-49
File diff suppressed because one or more lines are too long
+4
-3
@@ -1,10 +1,11 @@
|
|||||||
{
|
{
|
||||||
"id": "obsidian-charts",
|
"id": "obsidian-charts",
|
||||||
"name": "Obsidian Charts",
|
"name": "Charts",
|
||||||
"version": "3.7.1",
|
"version": "3.9.0",
|
||||||
"minAppVersion": "0.12.7",
|
"minAppVersion": "0.12.7",
|
||||||
"description": "This Plugin lets you create Charts within Obsidian",
|
"description": "This Plugin lets you create Charts within Obsidian",
|
||||||
"author": "phibr0",
|
"author": "phibr0",
|
||||||
"authorUrl": "https://github.com/phibr0",
|
"authorUrl": "https://github.com/phibr0",
|
||||||
"isDesktopOnly": false
|
"isDesktopOnly": false,
|
||||||
|
"fundingUrl": "https://ko-fi.com/phibr0"
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "obsidian-chartsview-plugin",
|
|
||||||
"name": "Charts View",
|
|
||||||
"version": "1.2.3",
|
|
||||||
"minAppVersion": "0.9.12",
|
|
||||||
"description": "Data visualization solution in Obsidian based on Ant Design Charts.",
|
|
||||||
"author": "caronchen",
|
|
||||||
"authorUrl": "https://github.com/caronchen/obsidian-chartsview-plugin",
|
|
||||||
"isDesktopOnly": false,
|
|
||||||
"fundingUrl": "https://paypal.me/caronchenhz"
|
|
||||||
}
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
.chartsview-donation {
|
|
||||||
width: fit-content;
|
|
||||||
margin: 25px auto;
|
|
||||||
text-align: center;
|
|
||||||
position: absolute;
|
|
||||||
left: 200px;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.chartsview-donation a.paypal {
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.chartsview-thumbnail-container.is-selected .chartsview-thumbnail {
|
|
||||||
display: unset;
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.chartsview-thumbnail-container .chartsview-thumbnail {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* #### Desktops #### */
|
|
||||||
@media screen and (min-width: 1024px) {
|
|
||||||
.chartsview-thumbnail-container .chartsview-thumbnail img {
|
|
||||||
width: 500px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* #### Mobile Phones Portrait or Landscape #### */
|
|
||||||
@media screen and (max-device-width: 640px) {
|
|
||||||
.chartsview-thumbnail-container .chartsview-thumbnail img {
|
|
||||||
width: 300px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.chartsview-export-button {
|
|
||||||
padding: 5px;
|
|
||||||
position: relative;
|
|
||||||
width: fit-content;
|
|
||||||
display: flex;
|
|
||||||
opacity: 0;
|
|
||||||
transition: opacity 500ms;
|
|
||||||
background-color: var(--interactive-accent);
|
|
||||||
color: var(--text-on-accent);
|
|
||||||
border-radius: 5px;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.block-language-chartsview:hover .chartsview-export-button {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"id": "obsidian-contextual-typography",
|
||||||
|
"name": "Contextual Typography",
|
||||||
|
"version": "2.2.5",
|
||||||
|
"minAppVersion": "0.9.22",
|
||||||
|
"description": "This plugin adds a data-tag-name attribute to all top-level divs in preview mode containing the child's tag name, allowing contextual typography styling.",
|
||||||
|
"author": "mgmeyers",
|
||||||
|
"authorUrl": "https://github.com/mgmeyers/obsidian-contextual-typography",
|
||||||
|
"isDesktopOnly": false
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
{
|
||||||
|
"snapStepMinutes": 10,
|
||||||
|
"progressIndicator": "mini-timeline",
|
||||||
|
"showTaskNotification": false,
|
||||||
|
"zoomLevel": 2,
|
||||||
|
"timelineIcon": "calendar-with-checkmark",
|
||||||
|
"endLabel": "All done",
|
||||||
|
"startHour": 7,
|
||||||
|
"timelineDateFormat": "YYYY-MM-DD",
|
||||||
|
"centerNeedle": true,
|
||||||
|
"plannerHeading": "Journal",
|
||||||
|
"plannerHeadingLevel": 1,
|
||||||
|
"timelineColored": true,
|
||||||
|
"timelineStartColor": "#006466",
|
||||||
|
"timelineEndColor": "#4d194d",
|
||||||
|
"timestampFormat": "HH:mm",
|
||||||
|
"hourFormat": "HH",
|
||||||
|
"dataviewSource": "\"Journal\" OR #process/tasks",
|
||||||
|
"extendDurationUntilNext": false,
|
||||||
|
"defaultDurationMinutes": 30,
|
||||||
|
"minimalDurationMinutes": 10,
|
||||||
|
"showTimestampInTaskBlock": false,
|
||||||
|
"showUncheduledTasks": true,
|
||||||
|
"showUnscheduledNestedTasks": true,
|
||||||
|
"showNow": true,
|
||||||
|
"showNext": true,
|
||||||
|
"pluginVersion": "0.28.0",
|
||||||
|
"showCompletedTasks": true,
|
||||||
|
"showSubtasksInTaskBlocks": true,
|
||||||
|
"icals": [],
|
||||||
|
"colorOverrides": [],
|
||||||
|
"releaseNotes": true,
|
||||||
|
"taskStatusOnCreation": " ",
|
||||||
|
"eventFormatOnCreation": "task",
|
||||||
|
"sortTasksInPlanAfterEdit": false,
|
||||||
|
"firstDayOfWeek": "monday",
|
||||||
|
"multiDayRange": "full-week",
|
||||||
|
"showTimeTracker": false,
|
||||||
|
"showActiveClocks": false,
|
||||||
|
"editMode": "simple",
|
||||||
|
"copyOnDrag": false,
|
||||||
|
"rawIcals": []
|
||||||
|
}
|
||||||
+406
File diff suppressed because one or more lines are too long
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"id": "obsidian-day-planner",
|
||||||
|
"name": "Day Planner",
|
||||||
|
"version": "0.28.0",
|
||||||
|
"minAppVersion": "0.16.0",
|
||||||
|
"description": "A day planner with clean UI and readable syntax",
|
||||||
|
"author": "James Lynch, continued by Ivan Lednev",
|
||||||
|
"authorUrl": "https://github.com/ivan-lednev",
|
||||||
|
"fundingUrl": "https://www.buymeacoffee.com/machineelf",
|
||||||
|
"isDesktopOnly": false
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
-107
@@ -1,107 +0,0 @@
|
|||||||
{
|
|
||||||
"calendarSources": [
|
|
||||||
{
|
|
||||||
"type": "caldav",
|
|
||||||
"name": "Geburtstage von Kontakten",
|
|
||||||
"url": "https://cloud.thpeetz.de/remote.php/dav/calendars/tpeetz/de2630eb-c6da-4cc2-8d01-e906dbb8db73/",
|
|
||||||
"homeUrl": "https://cloud.thpeetz.de/remote.php/dav/calendars/tpeetz/contact_birthdays/",
|
|
||||||
"color": null,
|
|
||||||
"username": "tpeetz",
|
|
||||||
"password": "ikamkubm20"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "caldav",
|
|
||||||
"name": "Projekt",
|
|
||||||
"url": "https://cloud.thpeetz.de/remote.php/dav/calendars/tpeetz/de2630eb-c6da-4cc2-8d01-e906dbb8db73/",
|
|
||||||
"homeUrl": "https://cloud.thpeetz.de/remote.php/dav/calendars/tpeetz/projekt/",
|
|
||||||
"color": "#31CC7C",
|
|
||||||
"username": "tpeetz",
|
|
||||||
"password": "ikamkubm20"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "caldav",
|
|
||||||
"name": "Wohnung",
|
|
||||||
"url": "https://cloud.thpeetz.de/remote.php/dav/calendars/tpeetz/de2630eb-c6da-4cc2-8d01-e906dbb8db73/",
|
|
||||||
"homeUrl": "https://cloud.thpeetz.de/remote.php/dav/calendars/tpeetz/9dc9d726-fc3c-4b30-8475-4c9c557ecd75/",
|
|
||||||
"color": "#9E9E9E",
|
|
||||||
"username": "tpeetz",
|
|
||||||
"password": "ikamkubm20"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "caldav",
|
|
||||||
"name": "Claudia",
|
|
||||||
"url": "https://cloud.thpeetz.de/remote.php/dav/calendars/tpeetz/de2630eb-c6da-4cc2-8d01-e906dbb8db73/",
|
|
||||||
"homeUrl": "https://cloud.thpeetz.de/remote.php/dav/calendars/tpeetz/477ebec9-9c3e-4370-8397-264501177d69/",
|
|
||||||
"color": "#CC1A57",
|
|
||||||
"username": "tpeetz",
|
|
||||||
"password": "ikamkubm20"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "caldav",
|
|
||||||
"name": "Thomas",
|
|
||||||
"url": "https://cloud.thpeetz.de/remote.php/dav/calendars/tpeetz/de2630eb-c6da-4cc2-8d01-e906dbb8db73/",
|
|
||||||
"homeUrl": "https://cloud.thpeetz.de/remote.php/dav/calendars/tpeetz/de2630eb-c6da-4cc2-8d01-e906dbb8db73/",
|
|
||||||
"color": "#0394D6",
|
|
||||||
"username": "tpeetz",
|
|
||||||
"password": "ikamkubm20"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "caldav",
|
|
||||||
"name": "Persönlich",
|
|
||||||
"url": "https://cloud.thpeetz.de/remote.php/dav/calendars/tpeetz/de2630eb-c6da-4cc2-8d01-e906dbb8db73/",
|
|
||||||
"homeUrl": "https://cloud.thpeetz.de/remote.php/dav/calendars/tpeetz/personal/",
|
|
||||||
"color": null,
|
|
||||||
"username": "tpeetz",
|
|
||||||
"password": "ikamkubm20"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "caldav",
|
|
||||||
"name": "Veranstaltungen",
|
|
||||||
"url": "https://cloud.thpeetz.de/remote.php/dav/calendars/tpeetz/de2630eb-c6da-4cc2-8d01-e906dbb8db73/",
|
|
||||||
"homeUrl": "https://cloud.thpeetz.de/remote.php/dav/calendars/tpeetz/veranstaltungen/",
|
|
||||||
"color": "#F1DB50",
|
|
||||||
"username": "tpeetz",
|
|
||||||
"password": "ikamkubm20"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "caldav",
|
|
||||||
"name": "Fernsehen",
|
|
||||||
"url": "https://cloud.thpeetz.de/remote.php/dav/calendars/tpeetz/de2630eb-c6da-4cc2-8d01-e906dbb8db73/",
|
|
||||||
"homeUrl": "https://cloud.thpeetz.de/remote.php/dav/calendars/tpeetz/fernsehen/",
|
|
||||||
"color": "#EAFB06",
|
|
||||||
"username": "tpeetz",
|
|
||||||
"password": "ikamkubm20"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "caldav",
|
|
||||||
"name": "cimt",
|
|
||||||
"url": "https://cloud.thpeetz.de/remote.php/dav/calendars/tpeetz/de2630eb-c6da-4cc2-8d01-e906dbb8db73/",
|
|
||||||
"homeUrl": "https://cloud.thpeetz.de/remote.php/dav/calendars/tpeetz/cimt/",
|
|
||||||
"color": "#EE6B14",
|
|
||||||
"username": "tpeetz",
|
|
||||||
"password": "ikamkubm20"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "dailynote",
|
|
||||||
"color": "#0000ff",
|
|
||||||
"heading": "Journal"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "local",
|
|
||||||
"color": "#00ff00",
|
|
||||||
"directory": "Projects/cimt/ivv"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "local",
|
|
||||||
"color": "#ee6b14",
|
|
||||||
"directory": "Projects/cimt"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"defaultCalendar": 0,
|
|
||||||
"firstDay": 1,
|
|
||||||
"initialView": {
|
|
||||||
"desktop": "timeGridWeek",
|
|
||||||
"mobile": "timeGrid3Days"
|
|
||||||
},
|
|
||||||
"timeFormat24h": true
|
|
||||||
}
|
|
||||||
-65473
File diff suppressed because it is too large
Load Diff
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "obsidian-full-calendar",
|
|
||||||
"name": "Full Calendar",
|
|
||||||
"version": "0.10.7",
|
|
||||||
"minAppVersion": "0.16.3",
|
|
||||||
"description": "Obsidian integration with Full Calendar (fullcalendar.io)",
|
|
||||||
"author": "Davis Haupt",
|
|
||||||
"authorUrl": "https://davi.sh",
|
|
||||||
"isDesktopOnly": false,
|
|
||||||
"fundingUrl": "https://ko-fi.com/davish"
|
|
||||||
}
|
|
||||||
-1327
File diff suppressed because it is too large
Load Diff
-27
@@ -1,27 +0,0 @@
|
|||||||
{
|
|
||||||
"commitMessage": "vault backup: {{date}}",
|
|
||||||
"autoCommitMessage": "vault backup: {{date}}",
|
|
||||||
"commitDateFormat": "YYYY-MM-DD HH:mm:ss",
|
|
||||||
"autoSaveInterval": 0,
|
|
||||||
"autoPushInterval": 0,
|
|
||||||
"autoPullInterval": 0,
|
|
||||||
"autoPullOnBoot": true,
|
|
||||||
"disablePush": false,
|
|
||||||
"pullBeforePush": true,
|
|
||||||
"disablePopups": false,
|
|
||||||
"listChangedFilesInMessageBody": false,
|
|
||||||
"showStatusBar": true,
|
|
||||||
"updateSubmodules": false,
|
|
||||||
"syncMethod": "rebase",
|
|
||||||
"customMessageOnAutoBackup": false,
|
|
||||||
"autoBackupAfterFileChange": false,
|
|
||||||
"treeStructure": false,
|
|
||||||
"refreshSourceControl": false,
|
|
||||||
"basePath": "",
|
|
||||||
"differentIntervalCommitAndPush": false,
|
|
||||||
"changedFilesInStatusBar": false,
|
|
||||||
"showedMobileNotice": true,
|
|
||||||
"refreshSourceControlTimer": 7000,
|
|
||||||
"showBranchStatusBar": true,
|
|
||||||
"setLastSaveToLastCommit": false
|
|
||||||
}
|
|
||||||
-37397
File diff suppressed because one or more lines are too long
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "obsidian-git",
|
|
||||||
"name": "Obsidian Git",
|
|
||||||
"description": "Backup your vault with Git.",
|
|
||||||
"isDesktopOnly": false,
|
|
||||||
"fundingUrl": "https://ko-fi.com/vinzent",
|
|
||||||
"js": "main.js",
|
|
||||||
"version": "2.19.1"
|
|
||||||
}
|
|
||||||
-487
@@ -1,487 +0,0 @@
|
|||||||
@keyframes loading {
|
|
||||||
0% {
|
|
||||||
transform: rotate(0deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
100% {
|
|
||||||
transform: rotate(360deg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type='git-view'] .view-content {
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type='git-history-view'] .view-content {
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.loading>svg {
|
|
||||||
animation: 2s linear infinite loading;
|
|
||||||
transform-origin: 50% 50%;
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.obsidian-git-center {
|
|
||||||
margin: auto;
|
|
||||||
text-align: center;
|
|
||||||
width: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.obsidian-git-textarea {
|
|
||||||
display: block;
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.obsidian-git-center-button {
|
|
||||||
display: block;
|
|
||||||
margin: 20px auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tooltip.mod-left {
|
|
||||||
overflow-wrap: break-word;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tooltip.mod-right {
|
|
||||||
overflow-wrap: break-word;
|
|
||||||
}
|
|
||||||
.git-tools {
|
|
||||||
display: flex;
|
|
||||||
margin-left: auto;
|
|
||||||
}
|
|
||||||
.git-tools .type {
|
|
||||||
padding-left: var(--size-2-1);
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
width: 11px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.git-tools .type[data-type="M"] {
|
|
||||||
color: orange;
|
|
||||||
}
|
|
||||||
.git-tools .type[data-type="D"] {
|
|
||||||
color: red;
|
|
||||||
}
|
|
||||||
.git-tools .buttons {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
.git-tools .buttons > * {
|
|
||||||
padding: 0 0;
|
|
||||||
height: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-d-none {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-wrapper {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-file-header {
|
|
||||||
background-color: var(--background-primary);
|
|
||||||
border-bottom: 1px solid var(--interactive-accent);
|
|
||||||
font-family: var(--font-monospace);
|
|
||||||
height: 35px;
|
|
||||||
padding: 5px 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-file-header,
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-file-stats {
|
|
||||||
display: -webkit-box;
|
|
||||||
display: -ms-flexbox;
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-file-stats {
|
|
||||||
font-size: 14px;
|
|
||||||
margin-left: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-lines-added {
|
|
||||||
border: 1px solid #b4e2b4;
|
|
||||||
border-radius: 5px 0 0 5px;
|
|
||||||
color: #399839;
|
|
||||||
padding: 2px;
|
|
||||||
text-align: right;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-lines-deleted {
|
|
||||||
border: 1px solid #e9aeae;
|
|
||||||
border-radius: 0 5px 5px 0;
|
|
||||||
color: #c33;
|
|
||||||
margin-left: 1px;
|
|
||||||
padding: 2px;
|
|
||||||
text-align: left;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-file-name-wrapper {
|
|
||||||
-webkit-box-align: center;
|
|
||||||
-ms-flex-align: center;
|
|
||||||
align-items: center;
|
|
||||||
display: -webkit-box;
|
|
||||||
display: -ms-flexbox;
|
|
||||||
display: flex;
|
|
||||||
font-size: 15px;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-file-name {
|
|
||||||
overflow-x: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-file-wrapper {
|
|
||||||
border: 1px solid var(--background-modifier-border);
|
|
||||||
border-radius: 3px;
|
|
||||||
margin-bottom: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-file-collapse {
|
|
||||||
-webkit-box-pack: end;
|
|
||||||
-ms-flex-pack: end;
|
|
||||||
-webkit-box-align: center;
|
|
||||||
-ms-flex-align: center;
|
|
||||||
align-items: center;
|
|
||||||
border: 1px solid var(--background-modifier-border);
|
|
||||||
border-radius: 3px;
|
|
||||||
cursor: pointer;
|
|
||||||
display: none;
|
|
||||||
font-size: 12px;
|
|
||||||
justify-content: flex-end;
|
|
||||||
padding: 4px 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-file-collapse.d2h-selected {
|
|
||||||
background-color: #c8e1ff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-file-collapse-input {
|
|
||||||
margin: 0 4px 0 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-diff-table {
|
|
||||||
border-collapse: collapse;
|
|
||||||
font-family: Menlo, Consolas, monospace;
|
|
||||||
font-size: 13px;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-files-diff {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-file-diff {
|
|
||||||
overflow-y: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-file-side-diff {
|
|
||||||
display: inline-block;
|
|
||||||
margin-bottom: -8px;
|
|
||||||
margin-right: -4px;
|
|
||||||
overflow-x: scroll;
|
|
||||||
overflow-y: hidden;
|
|
||||||
width: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-code-line {
|
|
||||||
padding: 0 8em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-code-line,
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line {
|
|
||||||
display: inline-block;
|
|
||||||
-webkit-user-select: none;
|
|
||||||
-moz-user-select: none;
|
|
||||||
-ms-user-select: none;
|
|
||||||
user-select: none;
|
|
||||||
white-space: nowrap;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line {
|
|
||||||
padding: 0 4.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-code-line-ctn {
|
|
||||||
word-wrap: normal;
|
|
||||||
background: none;
|
|
||||||
display: inline-block;
|
|
||||||
padding: 0;
|
|
||||||
-webkit-user-select: text;
|
|
||||||
-moz-user-select: text;
|
|
||||||
-ms-user-select: text;
|
|
||||||
user-select: text;
|
|
||||||
vertical-align: middle;
|
|
||||||
white-space: pre;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-code-line del,
|
|
||||||
.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line del {
|
|
||||||
background-color: #ffb6ba;
|
|
||||||
}
|
|
||||||
|
|
||||||
.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-code-line del,
|
|
||||||
.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line del {
|
|
||||||
background-color: #8d232881;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-code-line del,
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-code-line ins,
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line del,
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line ins {
|
|
||||||
border-radius: 0.2em;
|
|
||||||
display: inline-block;
|
|
||||||
margin-top: -1px;
|
|
||||||
text-decoration: none;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-code-line ins,
|
|
||||||
.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line ins {
|
|
||||||
background-color: #97f295;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-code-line ins,
|
|
||||||
.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line ins {
|
|
||||||
background-color: #1d921996;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-code-line-prefix {
|
|
||||||
word-wrap: normal;
|
|
||||||
background: none;
|
|
||||||
display: inline;
|
|
||||||
padding: 0;
|
|
||||||
white-space: pre;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .line-num1 {
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .line-num1,
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .line-num2 {
|
|
||||||
-webkit-box-sizing: border-box;
|
|
||||||
box-sizing: border-box;
|
|
||||||
overflow: hidden;
|
|
||||||
padding: 0 0.5em;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
width: 3.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .line-num2 {
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber {
|
|
||||||
background-color: var(--background-primary);
|
|
||||||
border: solid var(--background-modifier-border);
|
|
||||||
border-width: 0 1px;
|
|
||||||
-webkit-box-sizing: border-box;
|
|
||||||
box-sizing: border-box;
|
|
||||||
color: var(--text-muted);
|
|
||||||
cursor: pointer;
|
|
||||||
display: inline-block;
|
|
||||||
position: absolute;
|
|
||||||
text-align: right;
|
|
||||||
width: 7.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber:after {
|
|
||||||
content: "\200b";
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber {
|
|
||||||
background-color: var(--background-primary);
|
|
||||||
border: solid var(--background-modifier-border);
|
|
||||||
border-width: 0 1px;
|
|
||||||
-webkit-box-sizing: border-box;
|
|
||||||
box-sizing: border-box;
|
|
||||||
color: var(--text-muted);
|
|
||||||
cursor: pointer;
|
|
||||||
display: inline-block;
|
|
||||||
overflow: hidden;
|
|
||||||
padding: 0 0.5em;
|
|
||||||
position: absolute;
|
|
||||||
text-align: right;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
width: 4em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-diff-tbody tr {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber:after {
|
|
||||||
content: "\200b";
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-emptyplaceholder,
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-emptyplaceholder {
|
|
||||||
background-color: var(--background-primary);
|
|
||||||
border-color: var(--background-modifier-border);
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-code-line-prefix,
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber,
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber,
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-emptyplaceholder {
|
|
||||||
-webkit-user-select: none;
|
|
||||||
-moz-user-select: none;
|
|
||||||
-ms-user-select: none;
|
|
||||||
user-select: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber,
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber {
|
|
||||||
direction: rtl;
|
|
||||||
}
|
|
||||||
|
|
||||||
.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-del {
|
|
||||||
background-color: #fee8e9;
|
|
||||||
border-color: #e9aeae;
|
|
||||||
}
|
|
||||||
|
|
||||||
.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-ins {
|
|
||||||
background-color: #dfd;
|
|
||||||
border-color: #b4e2b4;
|
|
||||||
}
|
|
||||||
|
|
||||||
.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-del {
|
|
||||||
background-color: #521b1d83;
|
|
||||||
border-color: #691d1d73;
|
|
||||||
}
|
|
||||||
|
|
||||||
.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-ins {
|
|
||||||
background-color: rgba(30, 71, 30, 0.5);
|
|
||||||
border-color: #13501381;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-info {
|
|
||||||
background-color: var(--background-primary);
|
|
||||||
border-color: var(--background-modifier-border);
|
|
||||||
color: var(--text-normal);
|
|
||||||
}
|
|
||||||
|
|
||||||
.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-file-diff .d2h-del.d2h-change {
|
|
||||||
background-color: #fdf2d0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-file-diff .d2h-del.d2h-change {
|
|
||||||
background-color: #55492480;
|
|
||||||
}
|
|
||||||
|
|
||||||
.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-file-diff .d2h-ins.d2h-change {
|
|
||||||
background-color: #ded;
|
|
||||||
}
|
|
||||||
|
|
||||||
.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-file-diff .d2h-ins.d2h-change {
|
|
||||||
background-color: rgba(37, 78, 37, 0.418);
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-wrapper {
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-wrapper a {
|
|
||||||
color: #3572b0;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-wrapper a:visited {
|
|
||||||
color: #3572b0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-header {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-title {
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-line {
|
|
||||||
display: -webkit-box;
|
|
||||||
display: -ms-flexbox;
|
|
||||||
display: flex;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-file-list {
|
|
||||||
display: block;
|
|
||||||
list-style: none;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-file-list>li {
|
|
||||||
border-bottom: 1px solid var(--background-modifier-border);
|
|
||||||
margin: 0;
|
|
||||||
padding: 5px 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-file-list>li:last-child {
|
|
||||||
border-bottom: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-file-switch {
|
|
||||||
cursor: pointer;
|
|
||||||
display: none;
|
|
||||||
font-size: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-icon {
|
|
||||||
fill: currentColor;
|
|
||||||
margin-right: 10px;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-deleted {
|
|
||||||
color: #c33;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-added {
|
|
||||||
color: #399839;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-changed {
|
|
||||||
color: #d0b44c;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-moved {
|
|
||||||
color: #3572b0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-tag {
|
|
||||||
background-color: var(--background-primary);
|
|
||||||
display: -webkit-box;
|
|
||||||
display: -ms-flexbox;
|
|
||||||
display: flex;
|
|
||||||
font-size: 10px;
|
|
||||||
margin-left: 5px;
|
|
||||||
padding: 0 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-deleted-tag {
|
|
||||||
border: 2px solid #c33;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-added-tag {
|
|
||||||
border: 1px solid #399839;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-changed-tag {
|
|
||||||
border: 1px solid #d0b44c;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspace-leaf-content[data-type="diff-view"] .d2h-moved-tag {
|
|
||||||
border: 1px solid #3572b0;
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"gitlabUrl": "https://gitlab.thpeetz.de",
|
|
||||||
"gitlabToken": "1D-dj7YR2A1R5JP3vsXf",
|
|
||||||
"templateFile": "",
|
|
||||||
"outputDir": "/Gitlab Issues/",
|
|
||||||
"filter": "",
|
|
||||||
"showIcon": true
|
|
||||||
}
|
|
||||||
-5942
File diff suppressed because one or more lines are too long
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "obsidian-gitlab-issues",
|
|
||||||
"name": "Gitlab Issues",
|
|
||||||
"version": "0.1.8",
|
|
||||||
"minAppVersion": "0.12.0",
|
|
||||||
"description": "Import issues from Gitlab into Obsidian.",
|
|
||||||
"author": "Ben Roberts",
|
|
||||||
"authorUrl": "https://github.com/benr77",
|
|
||||||
"isDesktopOnly": false
|
|
||||||
}
|
|
||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"date-picker-week-start": 1,
|
||||||
|
"show-checkboxes": true
|
||||||
|
}
|
||||||
+151
File diff suppressed because one or more lines are too long
+11
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"id": "obsidian-kanban",
|
||||||
|
"name": "Kanban",
|
||||||
|
"version": "2.0.51",
|
||||||
|
"minAppVersion": "1.0.0",
|
||||||
|
"description": "Create markdown-backed Kanban boards in Obsidian.",
|
||||||
|
"author": "mgmeyers",
|
||||||
|
"authorUrl": "https://github.com/mgmeyers/obsidian-kanban",
|
||||||
|
"helpUrl": "https://publish.obsidian.md/kanban/Obsidian+Kanban+Plugin",
|
||||||
|
"isDesktopOnly": false
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
+18
-301
File diff suppressed because one or more lines are too long
+1
-1
@@ -6,5 +6,5 @@
|
|||||||
"description": "Create a table of contents for a note.",
|
"description": "Create a table of contents for a note.",
|
||||||
"isDesktopOnly": false,
|
"isDesktopOnly": false,
|
||||||
"minAppVersion": "0.10.12",
|
"minAppVersion": "0.10.12",
|
||||||
"version": "0.1.4"
|
"version": "0.2.0"
|
||||||
}
|
}
|
||||||
-594
@@ -1,594 +0,0 @@
|
|||||||
{
|
|
||||||
"version": 2,
|
|
||||||
"projects": [
|
|
||||||
{
|
|
||||||
"fieldConfig": {
|
|
||||||
"published": {}
|
|
||||||
},
|
|
||||||
"defaultName": "",
|
|
||||||
"templates": [
|
|
||||||
"System/Templates/Task Template.md"
|
|
||||||
],
|
|
||||||
"excludedNotes": [],
|
|
||||||
"isDefault": false,
|
|
||||||
"dataSource": {
|
|
||||||
"kind": "folder",
|
|
||||||
"config": {
|
|
||||||
"path": "Projects/Memoiren",
|
|
||||||
"recursive": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"newNotesFolder": "",
|
|
||||||
"views": [
|
|
||||||
{
|
|
||||||
"config": {},
|
|
||||||
"filter": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"colors": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"id": "78c43d03-17ca-49fa-9b3b-c65c8b9aa6d5",
|
|
||||||
"name": "Table",
|
|
||||||
"type": "table"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"config": {
|
|
||||||
"columns": {
|
|
||||||
"No status": {
|
|
||||||
"weight": 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"filter": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"colors": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"id": "cc31c18e-5dc4-4e42-871f-4acb473e9a70",
|
|
||||||
"name": "Board",
|
|
||||||
"type": "board"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"id": "1edc5767-d572-41aa-a63e-ad889a2201d3",
|
|
||||||
"name": "Memoiren"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldConfig": {
|
|
||||||
"status": {
|
|
||||||
"options": [
|
|
||||||
"Open",
|
|
||||||
"Anforderung schreiben",
|
|
||||||
"In Arbeit",
|
|
||||||
"Fertig zum Test",
|
|
||||||
"In QS",
|
|
||||||
"Geschlossen"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"due": {
|
|
||||||
"options": []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"defaultName": "",
|
|
||||||
"templates": [],
|
|
||||||
"excludedNotes": [],
|
|
||||||
"isDefault": true,
|
|
||||||
"dataSource": {
|
|
||||||
"kind": "folder",
|
|
||||||
"config": {
|
|
||||||
"path": "Projects/cimt/ivv/DC-G Softwareentwicklungsumgebung",
|
|
||||||
"recursive": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"newNotesFolder": "",
|
|
||||||
"views": [
|
|
||||||
{
|
|
||||||
"config": {
|
|
||||||
"fieldConfig": {
|
|
||||||
"path": {
|
|
||||||
"hide": true
|
|
||||||
},
|
|
||||||
"Lösungsversion": {
|
|
||||||
"width": 184
|
|
||||||
},
|
|
||||||
"tags": {
|
|
||||||
"hide": true
|
|
||||||
},
|
|
||||||
"bearbeiter": {
|
|
||||||
"hide": true
|
|
||||||
},
|
|
||||||
"title": {
|
|
||||||
"width": 350
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"sortField": "Lösungsversion",
|
|
||||||
"sortAsc": true,
|
|
||||||
"orderFields": [
|
|
||||||
"name",
|
|
||||||
"title",
|
|
||||||
"bearbeiter",
|
|
||||||
"due",
|
|
||||||
"Lösungsversion",
|
|
||||||
"priority",
|
|
||||||
"status"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"filter": {
|
|
||||||
"conditions": [
|
|
||||||
{
|
|
||||||
"field": "status",
|
|
||||||
"operator": "is-not",
|
|
||||||
"value": "Geschlossen",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "bearbeiter",
|
|
||||||
"operator": "is-empty",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"colors": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"id": "387e0952-5d2e-42bc-b84d-a6e2d10dc7e9",
|
|
||||||
"name": "Table",
|
|
||||||
"type": "table"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"config": {
|
|
||||||
"columns": {
|
|
||||||
"Fertig zum Test": {
|
|
||||||
"weight": 0
|
|
||||||
},
|
|
||||||
"In QS": {
|
|
||||||
"weight": 1
|
|
||||||
},
|
|
||||||
"Eingang": {
|
|
||||||
"weight": 2
|
|
||||||
},
|
|
||||||
"Anforderung schreiben": {
|
|
||||||
"weight": 3
|
|
||||||
},
|
|
||||||
"Geschlossen": {
|
|
||||||
"weight": 4
|
|
||||||
},
|
|
||||||
"Offen": {
|
|
||||||
"weight": 5
|
|
||||||
},
|
|
||||||
"In Arbeit": {
|
|
||||||
"weight": 6
|
|
||||||
},
|
|
||||||
"Open": {
|
|
||||||
"weight": 7
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"groupByField": "status",
|
|
||||||
"includeFields": [
|
|
||||||
"priority",
|
|
||||||
"status"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"filter": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"colors": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"id": "86b88a69-ffca-4831-90c8-f97c180d768d",
|
|
||||||
"name": "Board",
|
|
||||||
"type": "board"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"config": {
|
|
||||||
"fieldConfig": {
|
|
||||||
"path": {
|
|
||||||
"hide": true
|
|
||||||
},
|
|
||||||
"tags": {
|
|
||||||
"hide": true
|
|
||||||
},
|
|
||||||
"title": {
|
|
||||||
"width": 395
|
|
||||||
},
|
|
||||||
"due": {
|
|
||||||
"hide": true
|
|
||||||
},
|
|
||||||
"priority": {
|
|
||||||
"width": 132
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"orderFields": [
|
|
||||||
"name",
|
|
||||||
"title",
|
|
||||||
"bearbeiter",
|
|
||||||
"due",
|
|
||||||
"Lösungsversion",
|
|
||||||
"priority",
|
|
||||||
"status"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"filter": {
|
|
||||||
"conditions": [
|
|
||||||
{
|
|
||||||
"field": "bearbeiter",
|
|
||||||
"operator": "is-not-empty",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"field": "status",
|
|
||||||
"operator": "is-not",
|
|
||||||
"enabled": true,
|
|
||||||
"value": "Geschlossen"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"colors": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"id": "d48e7d69-10ca-42f9-83f7-31ab62fff988",
|
|
||||||
"name": "Delegiert",
|
|
||||||
"type": "table"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"config": {
|
|
||||||
"fieldConfig": {
|
|
||||||
"path": {
|
|
||||||
"hide": true
|
|
||||||
},
|
|
||||||
"tags": {
|
|
||||||
"hide": true
|
|
||||||
},
|
|
||||||
"status": {
|
|
||||||
"hide": true
|
|
||||||
},
|
|
||||||
"bearbeiter": {
|
|
||||||
"hide": true
|
|
||||||
},
|
|
||||||
"due": {
|
|
||||||
"hide": true
|
|
||||||
},
|
|
||||||
"title": {
|
|
||||||
"width": 357
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"orderFields": [
|
|
||||||
"name",
|
|
||||||
"title",
|
|
||||||
"due",
|
|
||||||
"Lösungsversion",
|
|
||||||
"priority"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"filter": {
|
|
||||||
"conditions": [
|
|
||||||
{
|
|
||||||
"field": "status",
|
|
||||||
"operator": "is",
|
|
||||||
"value": "Geschlossen",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"colors": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"id": "be6b4f02-bf9e-49a4-b26f-119706c0e64a",
|
|
||||||
"name": "Erledigt",
|
|
||||||
"type": "table"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"config": {
|
|
||||||
"sortField": "name",
|
|
||||||
"sortAsc": true
|
|
||||||
},
|
|
||||||
"filter": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"colors": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"id": "89f145b9-b17e-47ad-94f6-da236a88e016",
|
|
||||||
"name": "Alle Tickets",
|
|
||||||
"type": "table"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"config": {
|
|
||||||
"interval": "week"
|
|
||||||
},
|
|
||||||
"filter": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"colors": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"id": "d1c39d0b-3a5a-465c-9f07-876d91927cbd",
|
|
||||||
"name": "Termine",
|
|
||||||
"type": "calendar"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"id": "70f3123b-59b8-4e1a-89fa-c968ee464dcd",
|
|
||||||
"name": "DC-G Softwareentwicklungsumgebung"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldConfig": {},
|
|
||||||
"defaultName": "",
|
|
||||||
"templates": [],
|
|
||||||
"excludedNotes": [],
|
|
||||||
"isDefault": false,
|
|
||||||
"dataSource": {
|
|
||||||
"kind": "folder",
|
|
||||||
"config": {
|
|
||||||
"path": "Projects/Kalorien Manager",
|
|
||||||
"recursive": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"newNotesFolder": "",
|
|
||||||
"views": [
|
|
||||||
{
|
|
||||||
"config": {
|
|
||||||
"fieldConfig": {
|
|
||||||
"name": {
|
|
||||||
"width": 377
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"filter": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"colors": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"id": "a6a32f48-cc22-492a-8df4-26c883e4851e",
|
|
||||||
"name": "Table",
|
|
||||||
"type": "table"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"id": "16a6ed99-c1a3-447a-b484-0384fc4df9a9",
|
|
||||||
"name": "Kalorien Manager"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldConfig": {},
|
|
||||||
"defaultName": "",
|
|
||||||
"templates": [],
|
|
||||||
"excludedNotes": [],
|
|
||||||
"isDefault": false,
|
|
||||||
"dataSource": {
|
|
||||||
"kind": "folder",
|
|
||||||
"config": {
|
|
||||||
"path": "Projects/cimt/Linux Gilde",
|
|
||||||
"recursive": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"newNotesFolder": "",
|
|
||||||
"views": [
|
|
||||||
{
|
|
||||||
"config": {},
|
|
||||||
"filter": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"colors": {
|
|
||||||
"conditions": [
|
|
||||||
{
|
|
||||||
"color": "#ff0000",
|
|
||||||
"condition": {
|
|
||||||
"field": "due",
|
|
||||||
"operator": "is-not-empty",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"id": "4b6164d4-dc5e-4805-bcce-3c10936c6549",
|
|
||||||
"name": "Table",
|
|
||||||
"type": "table"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"config": {
|
|
||||||
"groupByField": "status",
|
|
||||||
"priorityField": "due-date",
|
|
||||||
"includeFields": [
|
|
||||||
"status",
|
|
||||||
"due-date"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"filter": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"colors": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"id": "bd266eae-3a52-4dff-817c-0c525bf47df2",
|
|
||||||
"name": "Board",
|
|
||||||
"type": "board"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"id": "4fa7c6bb-d0ca-460d-9c25-3491b67eed6c",
|
|
||||||
"name": "Linux Gilde"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldConfig": {},
|
|
||||||
"defaultName": "",
|
|
||||||
"templates": [],
|
|
||||||
"excludedNotes": [
|
|
||||||
"Projects/cimt/Google Cloud Developer Certification/Cloud Spanner.md",
|
|
||||||
"Projects/cimt/Google Cloud Developer Certification/gcloud sql.md"
|
|
||||||
],
|
|
||||||
"isDefault": false,
|
|
||||||
"dataSource": {
|
|
||||||
"kind": "folder",
|
|
||||||
"config": {
|
|
||||||
"path": "Projects/cimt/Google Cloud Developer Certification",
|
|
||||||
"recursive": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"newNotesFolder": "",
|
|
||||||
"views": [
|
|
||||||
{
|
|
||||||
"config": {},
|
|
||||||
"filter": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"colors": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"id": "7ddaad31-a0c6-4cc7-973a-f1efebc14297",
|
|
||||||
"name": "Table",
|
|
||||||
"type": "table"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"id": "73310aa9-fcf3-44ed-8843-bceb0b3910c3",
|
|
||||||
"name": "Google Cloud Developer Zertifikation"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldConfig": {},
|
|
||||||
"defaultName": "",
|
|
||||||
"templates": [],
|
|
||||||
"excludedNotes": [],
|
|
||||||
"isDefault": false,
|
|
||||||
"dataSource": {
|
|
||||||
"kind": "folder",
|
|
||||||
"config": {
|
|
||||||
"path": "Projects/cimt/Lightning Talks",
|
|
||||||
"recursive": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"newNotesFolder": "",
|
|
||||||
"views": [
|
|
||||||
{
|
|
||||||
"config": {
|
|
||||||
"orderFields": [
|
|
||||||
"name",
|
|
||||||
"title",
|
|
||||||
"due-date",
|
|
||||||
"presentation-date",
|
|
||||||
"path"
|
|
||||||
],
|
|
||||||
"fieldConfig": {
|
|
||||||
"tags": {
|
|
||||||
"width": 457
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"filter": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"colors": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"id": "7cf47c98-404d-48d3-a7d9-dd3ed2829ee3",
|
|
||||||
"name": "Table",
|
|
||||||
"type": "table"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"id": "f5b716d7-c61e-4723-8b7c-fd0d03faa588",
|
|
||||||
"name": "Lightning Talks"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldConfig": {},
|
|
||||||
"defaultName": "",
|
|
||||||
"templates": [],
|
|
||||||
"excludedNotes": [],
|
|
||||||
"isDefault": false,
|
|
||||||
"dataSource": {
|
|
||||||
"kind": "folder",
|
|
||||||
"config": {
|
|
||||||
"path": "Projects/Steuererklärung",
|
|
||||||
"recursive": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"newNotesFolder": "",
|
|
||||||
"views": [
|
|
||||||
{
|
|
||||||
"config": {},
|
|
||||||
"filter": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"colors": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"id": "6ed298dd-adf6-447a-8732-4f255c52d3ef",
|
|
||||||
"name": "Table",
|
|
||||||
"type": "table"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"id": "faf9e03f-06f9-4a65-b66f-ebe4551877af",
|
|
||||||
"name": "Steuererklärung"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldConfig": {},
|
|
||||||
"defaultName": "",
|
|
||||||
"templates": [],
|
|
||||||
"excludedNotes": [],
|
|
||||||
"isDefault": false,
|
|
||||||
"dataSource": {
|
|
||||||
"kind": "folder",
|
|
||||||
"config": {
|
|
||||||
"path": "Areas/Leseliste",
|
|
||||||
"recursive": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"newNotesFolder": "",
|
|
||||||
"views": [
|
|
||||||
{
|
|
||||||
"config": {
|
|
||||||
"fieldConfig": {
|
|
||||||
"name": {
|
|
||||||
"width": 218
|
|
||||||
},
|
|
||||||
"band": {
|
|
||||||
"width": 112
|
|
||||||
},
|
|
||||||
"serie": {
|
|
||||||
"width": 207
|
|
||||||
},
|
|
||||||
"created": {
|
|
||||||
"hide": true
|
|
||||||
},
|
|
||||||
"due": {
|
|
||||||
"hide": true
|
|
||||||
},
|
|
||||||
"source": {
|
|
||||||
"hide": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"orderFields": [
|
|
||||||
"name",
|
|
||||||
"path",
|
|
||||||
"author",
|
|
||||||
"serie",
|
|
||||||
"band",
|
|
||||||
"created",
|
|
||||||
"due",
|
|
||||||
"source",
|
|
||||||
"status",
|
|
||||||
"title",
|
|
||||||
"updated"
|
|
||||||
],
|
|
||||||
"sortField": "band",
|
|
||||||
"sortAsc": true
|
|
||||||
},
|
|
||||||
"filter": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"colors": {
|
|
||||||
"conditions": []
|
|
||||||
},
|
|
||||||
"id": "d77992f5-e2f0-4a76-b06f-2285f8c50727",
|
|
||||||
"name": "Table",
|
|
||||||
"type": "table"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"id": "7060a426-a7d1-499f-99ea-890ca8792154",
|
|
||||||
"name": "Leseliste"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"preferences": {
|
|
||||||
"projectSizeLimit": 2000,
|
|
||||||
"frontmatter": {
|
|
||||||
"quoteStrings": "PLAIN"
|
|
||||||
},
|
|
||||||
"commands": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-76375
File diff suppressed because one or more lines are too long
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "obsidian-projects",
|
|
||||||
"name": "Projects",
|
|
||||||
"version": "1.15.3",
|
|
||||||
"minAppVersion": "1.0.0",
|
|
||||||
"description": "Plain text project planning.",
|
|
||||||
"author": "Marcus Olsson",
|
|
||||||
"authorUrl": "https://marcus.se.net",
|
|
||||||
"fundingUrl": "https://www.buymeacoffee.com/marcusolsson",
|
|
||||||
"isDesktopOnly": false
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user