vault backup: 2025-12-10 11:37:35
This commit is contained in:
Vendored
+35
-2
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"attachmentFolderPath": "System/resources",
|
||||
"attachmentFolderPath": "Resources/Attachments",
|
||||
"showFrontmatter": true,
|
||||
"livePreview": true,
|
||||
"strictLineBreaks": false,
|
||||
@@ -8,5 +8,38 @@
|
||||
"showUnsupportedFiles": true,
|
||||
"promptDelete": 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": "",
|
||||
"baseFontSize": 16,
|
||||
"baseFontSize": 12,
|
||||
"translucency": true,
|
||||
"enabledCssSnippets": [
|
||||
"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",
|
||||
"dataview",
|
||||
"calendar",
|
||||
"obsidian-tasks-plugin",
|
||||
"obsidian-version-history-diff",
|
||||
"buttons",
|
||||
"obsidian-sortable",
|
||||
"obsidian-admonition",
|
||||
"auto-note-mover",
|
||||
"obsidian-projects",
|
||||
"tag-wrangler",
|
||||
"obsidian-full-calendar",
|
||||
"obsidian-plugin-toc",
|
||||
"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,
|
||||
"tag-pane": true,
|
||||
"page-preview": true,
|
||||
"daily-notes": true,
|
||||
"daily-notes": false,
|
||||
"templates": true,
|
||||
"note-composer": true,
|
||||
"command-palette": true,
|
||||
"slash-command": true,
|
||||
"editor-status": true,
|
||||
"starred": false,
|
||||
"markdown-importer": false,
|
||||
"markdown-importer": true,
|
||||
"zk-prefixer": false,
|
||||
"random-note": false,
|
||||
"outline": true,
|
||||
@@ -26,5 +26,6 @@
|
||||
"publish": false,
|
||||
"sync": false,
|
||||
"canvas": true,
|
||||
"bookmarks": true
|
||||
"bookmarks": true,
|
||||
"properties": true
|
||||
}
|
||||
Vendored
+34
-20
@@ -1,20 +1,34 @@
|
||||
[
|
||||
"file-explorer",
|
||||
"global-search",
|
||||
"switcher",
|
||||
"graph",
|
||||
"backlink",
|
||||
"canvas",
|
||||
"outgoing-link",
|
||||
"tag-pane",
|
||||
"page-preview",
|
||||
"daily-notes",
|
||||
"templates",
|
||||
"note-composer",
|
||||
"command-palette",
|
||||
"slash-command",
|
||||
"editor-status",
|
||||
"outline",
|
||||
"word-count",
|
||||
"file-recovery"
|
||||
]
|
||||
{
|
||||
"file-explorer": true,
|
||||
"global-search": true,
|
||||
"switcher": true,
|
||||
"graph": true,
|
||||
"backlink": true,
|
||||
"outgoing-link": true,
|
||||
"tag-pane": true,
|
||||
"page-preview": true,
|
||||
"daily-notes": false,
|
||||
"templates": true,
|
||||
"note-composer": true,
|
||||
"command-palette": true,
|
||||
"slash-command": true,
|
||||
"editor-status": true,
|
||||
"starred": false,
|
||||
"markdown-importer": true,
|
||||
"zk-prefixer": false,
|
||||
"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",
|
||||
"template": "System/Templates/Daily Notes Templates"
|
||||
"folder": "Journal/Täglich",
|
||||
"template": "Resources/Templates/Daily Notes Templates",
|
||||
"format": "YYYY/MM/YYYY-MM-DD"
|
||||
}
|
||||
Vendored
+41
-5
@@ -5,10 +5,46 @@
|
||||
"showAttachments": false,
|
||||
"hideUnresolved": false,
|
||||
"showOrphans": true,
|
||||
"collapse-color-groups": true,
|
||||
"colorGroups": [],
|
||||
"collapse-display": true,
|
||||
"showArrow": false,
|
||||
"collapse-color-groups": false,
|
||||
"colorGroups": [
|
||||
{
|
||||
"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,
|
||||
"nodeSizeMultiplier": 1,
|
||||
"lineSizeMultiplier": 1,
|
||||
@@ -17,6 +53,6 @@
|
||||
"repelStrength": 10,
|
||||
"linkStrength": 1,
|
||||
"linkDistance": 250,
|
||||
"scale": 0.15331262755040978,
|
||||
"scale": 0.12180541989401406,
|
||||
"close": true
|
||||
}
|
||||
Vendored
+24
@@ -23,5 +23,29 @@
|
||||
],
|
||||
"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",
|
||||
"use_regex_to_check_for_tags": false,
|
||||
"statusBar_trigger_indicator": true,
|
||||
"folder_tag_pattern": [
|
||||
{
|
||||
"folder": "Resources/Artikel",
|
||||
"tag": "#Artikel",
|
||||
"pattern": ""
|
||||
},
|
||||
{
|
||||
"folder": "Resources/IT",
|
||||
"tag": "#IT",
|
||||
"pattern": ""
|
||||
}
|
||||
],
|
||||
"folder_tag_pattern": [],
|
||||
"use_regex_to_check_for_excluded_folder": false,
|
||||
"excluded_folder": [
|
||||
{
|
||||
"folder": "System"
|
||||
"folder": "Resources/Templates"
|
||||
},
|
||||
{
|
||||
"folder": "System/Templates"
|
||||
"folder": "Resources/Attachments"
|
||||
},
|
||||
{
|
||||
"folder": "System/resources"
|
||||
"folder": "Resources/Functions"
|
||||
}
|
||||
]
|
||||
}
|
||||
+10
-10
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"id": "auto-note-mover",
|
||||
"name": "Auto Note Mover",
|
||||
"version": "1.2.0",
|
||||
"minAppVersion": "0.12.0",
|
||||
"description": "Auto Note Mover will automatically move the active notes to their respective folders according to the rules.",
|
||||
"author": "faru",
|
||||
"authorUrl": "https://github.com/farux/",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
{
|
||||
"id": "auto-note-mover",
|
||||
"name": "Auto Note Mover",
|
||||
"version": "1.2.0",
|
||||
"minAppVersion": "0.12.0",
|
||||
"description": "Auto Note Mover will automatically move the active notes to their respective folders according to the rules.",
|
||||
"author": "faru",
|
||||
"authorUrl": "https://github.com/farux/",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
|
||||
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": "\\-",
|
||||
"taskCompletionTracking": true,
|
||||
"taskCompletionUseEmojiShorthand": true,
|
||||
"taskCompletionUseEmojiShorthand": false,
|
||||
"taskCompletionText": "completion",
|
||||
"taskCompletionDateFormat": "yyyy-MM-dd",
|
||||
"recursiveSubTaskCompletion": true,
|
||||
"warnOnEmptyResult": true,
|
||||
"refreshEnabled": true,
|
||||
"refreshInterval": 2500,
|
||||
"defaultDateFormat": "MMMM dd, yyyy",
|
||||
"defaultDateTimeFormat": "h:mm a - MMMM dd, yyyy",
|
||||
"defaultDateFormat": "dd.MM.yyyy",
|
||||
"defaultDateTimeFormat": "dd.MM.yyyy HH:MM:ss",
|
||||
"maxRecursiveRenderDepth": 4,
|
||||
"tableIdColumnName": "File",
|
||||
"tableGroupColumnName": "Group",
|
||||
@@ -22,5 +22,6 @@
|
||||
"enableDataviewJs": true,
|
||||
"enableInlineDataviewJs": true,
|
||||
"prettyRenderInlineFields": true,
|
||||
"prettyRenderInlineFieldsInLivePreview": true,
|
||||
"dataviewJsKeyword": "dataviewjs"
|
||||
}
|
||||
Vendored
+10805
-9681
File diff suppressed because one or more lines are too long
+2
-1
@@ -1,10 +1,11 @@
|
||||
{
|
||||
"id": "dataview",
|
||||
"name": "Dataview",
|
||||
"version": "0.5.55",
|
||||
"version": "0.5.68",
|
||||
"minAppVersion": "0.13.11",
|
||||
"description": "Complex data views for the data-obsessed.",
|
||||
"author": "Michael Brenan <blacksmithgu@gmail.com>",
|
||||
"authorUrl": "https://github.com/blacksmithgu",
|
||||
"helpUrl": "https://blacksmithgu.github.io/obsidian-dataview/",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
|
||||
+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 {
|
||||
overflow-y: auto;
|
||||
}
|
||||
@@ -23,7 +18,7 @@
|
||||
}
|
||||
|
||||
.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 {
|
||||
@@ -74,7 +69,7 @@
|
||||
padding-right: 8px;
|
||||
font-family: var(--font-monospace);
|
||||
background-color: var(--background-primary-alt);
|
||||
color: var(--text-nav-selected);
|
||||
color: var(--nav-item-color-selected);
|
||||
}
|
||||
|
||||
.dataview.inline-field-value {
|
||||
@@ -82,7 +77,7 @@
|
||||
padding-right: 8px;
|
||||
font-family: var(--font-monospace);
|
||||
background-color: var(--background-secondary-alt);
|
||||
color: var(--text-nav-selected);
|
||||
color: var(--nav-item-color-selected);
|
||||
}
|
||||
|
||||
.dataview.inline-field-standalone-value {
|
||||
@@ -90,7 +85,7 @@
|
||||
padding-right: 8px;
|
||||
font-family: var(--font-monospace);
|
||||
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",
|
||||
"name": "Obsidian Charts",
|
||||
"version": "3.7.1",
|
||||
"name": "Charts",
|
||||
"version": "3.9.0",
|
||||
"minAppVersion": "0.12.7",
|
||||
"description": "This Plugin lets you create Charts within Obsidian",
|
||||
"author": "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.",
|
||||
"isDesktopOnly": false,
|
||||
"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
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
.workspace-leaf-content[data-type="obsidian-projects"] .view-content {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.sortable-drag {
|
||||
opacity: 0 !important;
|
||||
}
|
||||
+23
-23
@@ -7,29 +7,29 @@ if you want to view the source visit the plugins github repository
|
||||
|
||||
var obsidian = require('obsidian');
|
||||
|
||||
/******************************************************************************
|
||||
Copyright (c) Microsoft Corporation.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
***************************************************************************** */
|
||||
|
||||
function __awaiter(thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
/******************************************************************************
|
||||
Copyright (c) Microsoft Corporation.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
***************************************************************************** */
|
||||
|
||||
function __awaiter(thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
}
|
||||
|
||||
// allows time to be optional
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user