vault backup: 2026-07-17 14:47:12

This commit is contained in:
Marcel's Obsidian
2026-07-17 14:47:12 +02:00
parent 49bd853882
commit 031006c561
48 changed files with 2229 additions and 359 deletions
+3 -1
View File
@@ -3,5 +3,7 @@
"templater-obsidian", "templater-obsidian",
"kanban-bases-view", "kanban-bases-view",
"quickadd", "quickadd",
"obsidian-linter" "obsidian-linter",
"full-calendar-remastered",
"obsidian-git"
] ]
+1 -1
View File
@@ -17,6 +17,6 @@
"repelStrength": 10, "repelStrength": 10,
"linkStrength": 1, "linkStrength": 1,
"linkDistance": 250, "linkDistance": 250,
"scale": 0.5649432319816575, "scale": 0.4480996663453152,
"close": false "close": false
} }
+138
View File
@@ -0,0 +1,138 @@
{
"calendarSources": [
{
"type": "outlook",
"name": "Calendar (ma@coachhamburg.com)",
"color": "auto",
"id": "outlook_1",
"microsoftAccountId": "ms_c5d61256-6dbb-4c89-b16a-4504eabca9dd",
"calendarId": "AAMkADkzMmMxODczLWMwMWEtNDY2MC1iMTMyLTc5NTVmNGJiNTJiMwBGAAAAAACtpelfeDR2QIYpoLplr0WEBwDSnZwdEeRhT6p_DU5TG3KVAAAAAAEGAADSnZwdEeRhT6p_DU5TG3KVAAAAAOiAAAA="
},
{
"type": "local",
"name": "New Local Calendar",
"color": "#3b82f6",
"id": "local_1",
"directory": "50-Aufgabenplanung/events",
"template": "",
"taskCompletionStyle": "datetime"
}
],
"defaultCalendar": 0,
"firstDay": 1,
"initialView": {
"desktop": "timeGridWeek",
"mobile": "timeGrid3Days"
},
"timeFormat24h": true,
"clickToCreateEventFromMonthView": true,
"displayTimezone": "Europe/Berlin",
"lastSystemTimezone": "Europe/Berlin",
"enableAdvancedCategorization": false,
"chrono_analyser_config": null,
"categorySettings": [],
"useCustomGoogleClient": false,
"googleClientId": "",
"googleClientSecret": "",
"googleUseCopyPasteAuth": false,
"googleAccounts": [],
"useCustomMicrosoftClient": false,
"microsoftClientId": "",
"microsoftProxyBaseUrl": "",
"microsoftAccounts": [
{
"id": "ms_c5d61256-6dbb-4c89-b16a-4504eabca9dd",
"email": "ma@coachhamburg.com",
"refreshToken": null,
"accessToken": null,
"expiryDate": 1784292903524
}
],
"enableLocalServer": false,
"localServerPort": 8540,
"useLegacyPlaintextCredentials": false,
"businessHours": {
"enabled": true,
"daysOfWeek": [
1,
2,
3,
4,
5
],
"startTime": "08:00",
"endTime": "18:00"
},
"enableBackgroundEvents": true,
"enableReminders": true,
"enableDefaultReminder": true,
"defaultReminderMinutes": 10,
"workspaces": [],
"activeWorkspace": null,
"showEventInStatusBar": false,
"highlightCurrentOrNextEvent": false,
"slotMinTime": "00:00",
"slotMaxTime": "24:00",
"allDaySlot": true,
"timeGridDayHeaderFormat": "day-ddmm",
"weekends": true,
"hiddenDays": [],
"dayMaxEvents": false,
"activityWatch": {
"enabled": false,
"apiUrl": "http://127.0.0.1:5600",
"lastSyncTime": 0,
"autoSyncEnabled": false,
"autoSyncIntervalMins": 10,
"targetCalendarId": "",
"syncStrategy": "auto",
"customDateStart": "",
"customDateEnd": "",
"profiles": []
},
"tasksIntegration": {
"backlogDateTarget": "scheduledDate",
"calendarDisplayDateTarget": "scheduledDate",
"openEditModalAfterBacklogDrop": false,
"taskDisplayFormat": "dayPlanner",
"includeGlobalQueryInBacklog": false,
"backlogQuery": ""
},
"fcrReminderCompanion": {
"enabled": false,
"apiUrl": "http://127.0.0.1:45677"
},
"apiTokens": {},
"authorizedTokens": {},
"milestones": {
"counters": {
"created.total": 1,
"created.local": 1,
"meta.firstActionAt": 1784219827648,
"meta.lastActionAt": 1784219878390,
"day.action.2026-07-16": 2,
"day.created.2026-07-16": 1,
"tz.Europe/Berlin": 1,
"deleted.total": 1,
"deleted.local": 1
},
"unlockedAt": {},
"shown": {}
},
"enableMonthlyStatsReport": false,
"lastMonthlyMilestonesGeneratedMonth": null,
"lastMonthlyMilestonesCheckDate": null,
"milestoneNotifierDuration": 8000,
"currentVersion": "0.13.4",
"linkedNotesDirectory": "_attachments/fcr",
"linkedNoteLinkStrategy": "deadline",
"taskBacklogLastProviderId": "",
"caldavTaskInboxLastCalendarId": "",
"linkedNoteTemplate": "# {{title}}\n\n**Date**: {{date}}\n**Time**: {{timeString}}\n**Location**: {{location}}\n**Calendar**: {{calendarName}}\n\n## Description\n{{description}}\n\n## Notes\n- ",
"weatherCity": "Itzehoe",
"weatherLatitude": 53.92099,
"weatherLongitude": 9.51529,
"weatherHide": false,
"weatherInputMode": "city",
"weatherUnit": "C"
}
File diff suppressed because one or more lines are too long
@@ -0,0 +1,11 @@
{
"id": "full-calendar-remastered",
"name": "Full Calendar Remastered",
"version": "0.13.4",
"minAppVersion": "1.12.7",
"description": "Powerful calendar solution for schedules, events, plans, tasks, and notes together inside your vault. Supports local note-based calendars plus remote sync options like Google Calendar, CalDAV, ICS files, Tasks, TaskNotes, and more.",
"author": "Jovi Koikkara",
"authorUrl": "https://github.com/YouFoundJK",
"fundingUrl": "https://ko-fi.com/youfoundjk",
"isDesktopOnly": false
}
File diff suppressed because one or more lines are too long
+42 -13
View File
@@ -532,7 +532,7 @@ function createColumn(value, entries, options, ctx, cb) {
if (cb.getQuickAddFolder()) { if (cb.getQuickAddFolder()) {
headerEl.appendChild(cb.createAddButton(value, options.swimlaneValue ?? null)); headerEl.appendChild(cb.createAddButton(value, options.swimlaneValue ?? null));
} }
if (entries.length === 0 && options.showRemoveButton !== false) { if (ctx.globallyEmptyColumns.has(value)) {
headerEl.appendChild(createRemoveButton(ctx.doc, value, () => cb.onRemoveColumn(value, columnEl))); headerEl.appendChild(createRemoveButton(ctx.doc, value, () => cb.onRemoveColumn(value, columnEl)));
} }
const bodyEl = columnEl.createDiv({ cls: CSS_CLASSES.COLUMN_BODY }); const bodyEl = columnEl.createDiv({ cls: CSS_CLASSES.COLUMN_BODY });
@@ -550,10 +550,10 @@ function patchColumnCards(columnEl, newEntries, ctx, cb) {
const headerEl = columnEl.querySelector(`.${CSS_CLASSES.COLUMN_HEADER}`); const headerEl = columnEl.querySelector(`.${CSS_CLASSES.COLUMN_HEADER}`);
const columnValue = columnEl.getAttribute(DATA_ATTRIBUTES.COLUMN_VALUE); const columnValue = columnEl.getAttribute(DATA_ATTRIBUTES.COLUMN_VALUE);
const existingRemoveBtn = headerEl?.querySelector(`.${CSS_CLASSES.COLUMN_REMOVE_BTN}`) ?? null; const existingRemoveBtn = headerEl?.querySelector(`.${CSS_CLASSES.COLUMN_REMOVE_BTN}`) ?? null;
const isInSwimlane = !!columnEl.closest(`.${CSS_CLASSES.SWIMLANE}`); const showRemoveButton = !!columnValue && ctx.globallyEmptyColumns.has(columnValue);
if (headerEl && newEntries.length === 0 && !existingRemoveBtn && columnValue && !isInSwimlane) { if (headerEl && showRemoveButton && !existingRemoveBtn && columnValue) {
headerEl.appendChild(createRemoveButton(ctx.doc, columnValue, () => cb.onRemoveColumn(columnValue, columnEl))); headerEl.appendChild(createRemoveButton(ctx.doc, columnValue, () => cb.onRemoveColumn(columnValue, columnEl)));
} else if (newEntries.length > 0 && existingRemoveBtn) { } else if (!showRemoveButton && existingRemoveBtn) {
existingRemoveBtn.remove(); existingRemoveBtn.remove();
} }
const existingAddBtn = headerEl?.querySelector(`.${CSS_CLASSES.COLUMN_ADD_BTN}`) ?? null; const existingAddBtn = headerEl?.querySelector(`.${CSS_CLASSES.COLUMN_ADD_BTN}`) ?? null;
@@ -661,7 +661,6 @@ function buildSwimlaneElement(laneValue, laneEntries, orderedColumnValues, ctx,
columnValue, columnValue,
laneEntries.get(columnValue) ?? [], laneEntries.get(columnValue) ?? [],
{ {
showRemoveButton: false,
swimlaneValue: laneValue swimlaneValue: laneValue
}, },
ctx, ctx,
@@ -2988,6 +2987,10 @@ var KanbanView = class extends import_obsidian5.BasesView {
this._lastSwimlanePropertyId = void 0; this._lastSwimlanePropertyId = void 0;
this._lastQuickAddFolder = void 0; this._lastQuickAddFolder = void 0;
this._cardFingerprints = /* @__PURE__ */ new Map(); this._cardFingerprints = /* @__PURE__ */ new Map();
// Column values empty across the whole board (every swimlane). Recomputed each
// render() and read via _buildColumnCtx so components can show a remove button
// without the board-wide map being threaded through every render function.
this._globallyEmptyColumns = /* @__PURE__ */ new Set();
this._deferredSortableListeners = /* @__PURE__ */ new Map(); this._deferredSortableListeners = /* @__PURE__ */ new Map();
this._prefs = { this._prefs = {
columnOrder: [], columnOrder: [],
@@ -3258,6 +3261,9 @@ var KanbanView = class extends import_obsidian5.BasesView {
const hasSwimlanes = groupedByLane !== null; const hasSwimlanes = groupedByLane !== null;
const existingIsSwimlane = existingBoard?.classList.contains(CSS_CLASSES.BOARD_WITH_SWIMLANES) ?? false; const existingIsSwimlane = existingBoard?.classList.contains(CSS_CLASSES.BOARD_WITH_SWIMLANES) ?? false;
const modeChanged = hasSwimlanes !== existingIsSwimlane; const modeChanged = hasSwimlanes !== existingIsSwimlane;
this._globallyEmptyColumns = new Set(
orderedValues.filter((value) => (groupedEntries.get(value)?.length ?? 0) === 0)
);
if (!existingBoard || modeChanged || groupChanged || optionsChanged) { if (!existingBoard || modeChanged || groupChanged || optionsChanged) {
this.fullRebuild(orderedValues, lanes, hasSwimlanes); this.fullRebuild(orderedValues, lanes, hasSwimlanes);
} else { } else {
@@ -3526,6 +3532,11 @@ var KanbanView = class extends import_obsidian5.BasesView {
s.destroy(); s.destroy();
this._columnSortables.delete(key); this._columnSortables.delete(key);
} }
const deferred = this._deferredSortableListeners.get(key);
if (deferred) {
deferred.el.removeEventListener("pointerdown", deferred.handler);
this._deferredSortableListeners.delete(key);
}
colEl.remove(); colEl.remove();
existingColumns.delete(colValue); existingColumns.delete(colValue);
} }
@@ -3533,8 +3544,7 @@ var KanbanView = class extends import_obsidian5.BasesView {
orderedColumnValues.forEach((colValue) => { orderedColumnValues.forEach((colValue) => {
const entries = groupedEntries.get(colValue) ?? []; const entries = groupedEntries.get(colValue) ?? [];
if (!existingColumns.has(colValue)) { if (!existingColumns.has(colValue)) {
const options = laneValue !== null ? { showRemoveButton: false, swimlaneValue: laneValue } : {}; const colEl = this.createColumn(colValue, entries, { swimlaneValue: laneValue });
const colEl = this.createColumn(colValue, entries, options);
containerEl.appendChild(colEl); containerEl.appendChild(colEl);
existingColumns.set(colValue, colEl); existingColumns.set(colValue, colEl);
const cardBody = colEl.querySelector( const cardBody = colEl.querySelector(
@@ -3655,7 +3665,8 @@ var KanbanView = class extends import_obsidian5.BasesView {
cardCb: this._buildCardCallbacks(), cardCb: this._buildCardCallbacks(),
prefs: { columnColors: this._prefs.columnColors }, prefs: { columnColors: this._prefs.columnColors },
dragging: this._dragging, dragging: this._dragging,
cardFingerprints: this._cardFingerprints cardFingerprints: this._cardFingerprints,
globallyEmptyColumns: this._globallyEmptyColumns
}; };
} }
_buildColumnCallbacks() { _buildColumnCallbacks() {
@@ -3781,12 +3792,30 @@ var KanbanView = class extends import_obsidian5.BasesView {
closeNativeNewItemPopover(this.containerEl.doc); closeNativeNewItemPopover(this.containerEl.doc);
} }
detachColumn(value, colEl) { detachColumn(value, colEl) {
const sortable = this._columnSortables.get(value); const boardEl = this.containerEl.querySelector(`.${CSS_CLASSES.BOARD}`);
if (sortable) { const columnEls = [];
sortable.destroy(); if (boardEl) {
this._columnSortables.delete(value); boardEl.querySelectorAll(`.${CSS_CLASSES.COLUMN}`).forEach((el) => {
if (el.getAttribute(DATA_ATTRIBUTES.COLUMN_VALUE) === value) columnEls.push(el);
});
} }
colEl.remove(); const suffix = `${SWIMLANE_KEY_SEPARATOR}${value}`;
const matchesColumn = (key) => key === value || key.endsWith(suffix);
for (const key of [...this._columnSortables.keys()]) {
if (matchesColumn(key)) {
this._columnSortables.get(key)?.destroy();
this._columnSortables.delete(key);
}
}
for (const key of [...this._deferredSortableListeners.keys()]) {
if (matchesColumn(key)) {
const deferred = this._deferredSortableListeners.get(key);
deferred?.el.removeEventListener("pointerdown", deferred.handler);
this._deferredSortableListeners.delete(key);
}
}
if (columnEls.length > 0) columnEls.forEach((el) => el.remove());
else colEl.remove();
} }
removeColumn(value, columnEl) { removeColumn(value, columnEl) {
if (!this._prefsPropertyId) return; if (!this._prefsPropertyId) return;
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "kanban-bases-view", "id": "kanban-bases-view",
"name": "Kanban Bases View", "name": "Kanban Bases View",
"version": "0.10.1", "version": "0.10.2",
"minAppVersion": "1.10.2", "minAppVersion": "1.10.2",
"description": "A kanban-style drag-and-drop custom view for Bases.", "description": "A kanban-style drag-and-drop custom view for Bases.",
"author": "I. Welch Canavan", "author": "I. Welch Canavan",
File diff suppressed because one or more lines are too long
+10
View File
@@ -0,0 +1,10 @@
{
"author": "Vinzent",
"authorUrl": "https://github.com/Vinzent03",
"id": "obsidian-git",
"name": "Git",
"description": "Integrate Git version control with automatic backup and other advanced features.",
"isDesktopOnly": false,
"fundingUrl": "https://ko-fi.com/vinzent",
"version": "2.38.6"
}
+705
View File
@@ -0,0 +1,705 @@
@keyframes loading {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.workspace-leaf-content[data-type="git-view"] .button-border {
border: 2px solid var(--interactive-accent);
border-radius: var(--radius-s);
}
.workspace-leaf-content[data-type="git-view"] .view-content {
padding-left: 0;
padding-top: 0;
padding-right: 0;
}
.workspace-leaf-content[data-type="git-history-view"] .view-content {
padding-left: 0;
padding-top: 0;
padding-right: 0;
}
.loading {
overflow: hidden;
}
.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-disabled {
opacity: 0.5;
}
.obsidian-git-center-button {
display: block;
margin: 20px auto;
}
.tooltip.mod-left {
overflow-wrap: break-word;
}
.tooltip.mod-right {
overflow-wrap: break-word;
}
/* Limits the scrollbar to the view body */
.git-view {
display: flex;
flex-direction: column;
position: relative;
height: 100%;
}
/* Re-enable wrapping of nav buttns to prevent overflow on smaller screens #*/
.workspace-drawer .git-view .nav-buttons-container {
flex-wrap: wrap;
}
.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;
height: auto;
}
.workspace-leaf-content[data-type="git-view"] .tree-item-self,
.workspace-leaf-content[data-type="git-history-view"] .tree-item-self {
align-items: center;
}
.workspace-leaf-content[data-type="git-view"]
.tree-item-self:hover
.clickable-icon,
.workspace-leaf-content[data-type="git-history-view"]
.tree-item-self:hover
.clickable-icon {
color: var(--icon-color-hover);
}
/* Highlight an item as active if it's diff is currently opened */
.is-active .git-tools .buttons > * {
color: var(--nav-item-color-active);
}
.git-author {
color: var(--text-accent);
}
.git-date {
color: var(--text-accent);
}
.git-ref {
color: var(--text-accent);
}
/* ====== diff2html ======
The following styles are adapted from the obsidian-version-history plugin by
@kometenstaub https://github.com/kometenstaub/obsidian-version-history-diff/blob/main/src/styles.scss
which itself is adapted from the diff2html library with the following original license:
https://github.com/rtfpessoa/diff2html/blob/master/LICENSE.md
Copyright 2014-2016 Rodrigo Fernandes https://rtfpessoa.github.io/
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit
persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
.theme-dark,
.theme-light {
--git-delete-bg: #ff475040;
--git-delete-hl: #96050a75;
--git-insert-bg: #68d36840;
--git-insert-hl: #23c02350;
--git-change-bg: #ffd55840;
--git-selected: #3572b0;
--git-delete: #cc3333;
--git-insert: #399839;
--git-change: #d0b44c;
--git-move: #3572b0;
}
.git-diff {
.d2h-d-none {
display: none;
}
.d2h-wrapper {
text-align: left;
border-radius: 0.25em;
overflow: auto;
}
.d2h-file-header.d2h-file-header {
background-color: var(--background-secondary);
border-bottom: 1px solid var(--background-modifier-border);
font-family:
Source Sans Pro,
Helvetica Neue,
Helvetica,
Arial,
sans-serif;
height: 35px;
padding: 5px 10px;
}
.d2h-file-header,
.d2h-file-stats {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
}
.d2h-file-header {
display: none;
}
.d2h-file-stats {
font-size: 14px;
margin-left: auto;
}
.d2h-lines-added {
border: 1px solid var(--color-green);
border-radius: 5px 0 0 5px;
color: var(--color-green);
padding: 2px;
text-align: right;
vertical-align: middle;
}
.d2h-lines-deleted {
border: 1px solid var(--color-red);
border-radius: 0 5px 5px 0;
color: var(--color-red);
margin-left: 1px;
padding: 2px;
text-align: left;
vertical-align: middle;
}
.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%;
}
.d2h-file-name {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: var(--text-normal);
font-size: var(--h5-size);
}
.d2h-file-wrapper {
border: 1px solid var(--background-secondary-alt);
border-radius: 3px;
margin-bottom: 1em;
max-height: 100%;
}
.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-secondary-alt);
border-radius: 3px;
cursor: pointer;
display: none;
font-size: 12px;
justify-content: flex-end;
padding: 4px 8px;
}
.d2h-file-collapse.d2h-selected {
background-color: var(--git-selected);
}
.d2h-file-collapse-input {
margin: 0 4px 0 0;
}
.d2h-diff-table {
border-collapse: collapse;
font-family: var(--font-monospace);
font-size: var(--code-size);
width: 100%;
}
.d2h-files-diff {
width: 100%;
}
.d2h-file-diff {
/*
overflow-y: scroll;
*/
border-radius: 5px;
font-size: var(--font-text-size);
line-height: var(--line-height-normal);
}
.d2h-file-side-diff {
display: inline-block;
margin-bottom: -8px;
margin-right: -4px;
overflow-x: scroll;
overflow-y: hidden;
width: 50%;
}
.d2h-code-line {
padding-left: 6em;
padding-right: 1.5em;
}
.d2h-code-line,
.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%;
}
.d2h-code-side-line {
/* needed to be changed */
padding-left: 0.5em;
padding-right: 0.5em;
}
.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;
width: 100%;
/* only works for line-by-line */
white-space: pre-wrap;
}
.d2h-code-line del,
.d2h-code-side-line del {
background-color: var(--git-delete-hl);
color: var(--text-normal);
}
.d2h-code-line del,
.d2h-code-line ins,
.d2h-code-side-line del,
.d2h-code-side-line ins {
border-radius: 0.2em;
display: inline-block;
margin-top: -1px;
text-decoration: none;
vertical-align: middle;
}
.d2h-code-line ins,
.d2h-code-side-line ins {
background-color: var(--git-insert-hl);
text-align: left;
}
.d2h-code-line-prefix {
word-wrap: normal;
background: none;
display: inline;
padding: 0;
white-space: pre;
}
.line-num1 {
float: left;
}
.line-num1,
.line-num2 {
-webkit-box-sizing: border-box;
box-sizing: border-box;
overflow: hidden;
/*
padding: 0 0.5em;
*/
text-overflow: ellipsis;
width: 2.5em;
padding-left: 0;
}
.line-num2 {
float: right;
}
.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-faint);
cursor: pointer;
display: inline-block;
position: absolute;
text-align: right;
width: 5.5em;
}
.d2h-code-linenumber:after {
content: "\200b";
}
.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-faint);
cursor: pointer;
overflow: hidden;
padding: 0 0.5em;
text-align: right;
text-overflow: ellipsis;
width: 4em;
/* needed to be changed */
display: table-cell;
position: relative;
}
.d2h-code-side-linenumber:after {
content: "\200b";
}
.d2h-code-side-emptyplaceholder,
.d2h-emptyplaceholder {
background-color: var(--background-primary);
border-color: var(--background-modifier-border);
}
.d2h-code-line-prefix,
.d2h-code-linenumber,
.d2h-code-side-linenumber,
.d2h-emptyplaceholder {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.d2h-code-linenumber,
.d2h-code-side-linenumber {
direction: rtl;
}
.d2h-del {
background-color: var(--git-delete-bg);
border-color: var(--git-delete-hl);
}
.d2h-ins {
background-color: var(--git-insert-bg);
border-color: var(--git-insert-hl);
}
.d2h-info {
background-color: var(--background-primary);
border-color: var(--background-modifier-border);
color: var(--text-faint);
}
.d2h-del,
.d2h-ins,
.d2h-file-diff .d2h-change {
color: var(--text-normal);
}
.d2h-file-diff .d2h-del.d2h-change {
background-color: var(--git-change-bg);
}
.d2h-file-diff .d2h-ins.d2h-change {
background-color: var(--git-insert-bg);
}
.d2h-file-list-wrapper {
a {
text-decoration: none;
cursor: default;
-webkit-user-drag: none;
}
svg {
display: none;
}
}
.d2h-file-list-header {
text-align: left;
}
.d2h-file-list-title {
display: none;
}
.d2h-file-list-line {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
text-align: left;
}
.d2h-file-list {
}
.d2h-file-list > li {
border-bottom: 1px solid var(--background-modifier-border);
margin: 0;
padding: 5px 10px;
}
.d2h-file-list > li:last-child {
border-bottom: none;
}
.d2h-file-switch {
cursor: pointer;
display: none;
font-size: 10px;
}
.d2h-icon {
fill: currentColor;
margin-right: 10px;
vertical-align: middle;
}
.d2h-deleted {
color: var(--git-delete);
}
.d2h-added {
color: var(--git-insert);
}
.d2h-changed {
color: var(--git-change);
}
.d2h-moved {
color: var(--git-move);
}
.d2h-tag {
background-color: var(--background-secondary);
display: -webkit-box;
display: -ms-flexbox;
display: flex;
font-size: 10px;
margin-left: 5px;
padding: 0 2px;
}
.d2h-deleted-tag {
border: 1px solid var(--git-delete);
}
.d2h-added-tag {
border: 1px solid var(--git-insert);
}
.d2h-changed-tag {
border: 1px solid var(--git-change);
}
.d2h-moved-tag {
border: 1px solid var(--git-move);
}
/* needed for line-by-line*/
.d2h-diff-tbody {
position: relative;
}
/* My additions */
.cm-merge-revert {
width: 4em;
}
/* Ensure that merge revert markers are positioned correctly */
.cm-merge-revert > * {
position: absolute;
background-color: var(--background-secondary);
display: flex;
}
}
/* ====================== Line Authoring Information ====================== */
.cm-gutterElement.obs-git-blame-gutter {
/* Add background color to spacing inbetween and around the gutter for better aesthetics */
border-width: 0px 2px 0.2px;
border-style: solid;
border-color: var(--background-secondary);
background-color: var(--background-secondary);
}
.cm-gutterElement.obs-git-blame-gutter > div,
.line-author-settings-preview {
/* delegate text color to settings */
color: var(--obs-git-gutter-text);
font-family: monospace;
height: 100%; /* ensure, that age-based background color occupies entire parent */
text-align: right;
padding: 0px 6px;
white-space: pre; /* Keep spaces and do not collapse them. */
}
@media (max-width: 800px) {
/* hide git blame gutter not to superpose text */
.cm-gutterElement.obs-git-blame-gutter {
display: none;
}
}
.git-unified-diff-view,
.git-split-diff-view .cm-deletedLine .cm-changedText {
background-color: #ee443330;
}
.git-unified-diff-view,
.git-split-diff-view .cm-insertedLine .cm-changedText {
background-color: #22bb2230;
}
.git-obscure-prompt[git-is-obscured="true"] #git-show-password:after {
-webkit-mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon lucide-eye"><path d="M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"></path><circle cx="12" cy="12" r="3"></circle></svg>');
}
.git-obscure-prompt[git-is-obscured="false"] #git-show-password:after {
-webkit-mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon lucide-eye-off"><path d="M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49"></path><path d="M14.084 14.158a3 3 0 0 1-4.242-4.242"></path><path d="M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143"></path><path d="m2 2 20 20"></path></svg>');
}
/* Override styling of Codemirror merge view "collapsed lines" indicator */
.git-split-diff-view .ͼ2 .cm-collapsedLines {
background: var(--interactive-normal);
border-radius: var(--radius-m);
color: var(--text-accent);
font-size: var(--font-small);
padding: var(--size-4-1) var(--size-4-1);
}
.git-split-diff-view .ͼ2 .cm-collapsedLines:hover {
background: var(--interactive-hover);
color: var(--text-accent-hover);
}
.git-signs-gutter {
.cm-gutterElement {
display: grid;
/* Needed to align the sign properly for different line heigts. Such as
* when having a heading or list item.
*/
padding-top: 0 !important;
}
}
.git-gutter-marker:hover {
border-radius: 2px;
}
.git-gutter-marker.git-add {
background-color: var(--color-green);
justify-self: center;
height: inherit;
width: 0.2rem;
}
.git-gutter-marker.git-change {
background-color: var(--color-yellow);
justify-self: center;
height: inherit;
width: 0.2rem;
}
.git-gutter-marker.git-changedelete {
color: var(--color-yellow);
font-weight: var(--font-bold);
font-size: 1rem;
justify-self: center;
height: inherit;
}
.git-gutter-marker.git-delete {
background-color: var(--color-red);
height: 0.2rem;
width: 0.8rem;
align-self: end;
}
.git-gutter-marker.git-topdelete {
background-color: var(--color-red);
height: 0.2rem;
width: 0.8rem;
align-self: start;
}
div:hover > .git-gutter-marker.git-change {
width: 0.6rem;
}
div:hover > .git-gutter-marker.git-add {
width: 0.6rem;
}
div:hover > .git-gutter-marker.git-delete {
height: 0.6rem;
}
div:hover > .git-gutter-marker.git-topdelete {
height: 0.6rem;
}
div:hover > .git-gutter-marker.git-changedelete {
font-weight: var(--font-bold);
}
.git-gutter-marker.staged {
opacity: 0.5;
}
/* Prevent shifting of the editor when git signs gutter is the only gutter present */
.cm-gutters.cm-gutters-before:has(> .git-signs-gutter:only-child) {
margin-inline-end: 0;
.git-signs-gutter {
margin-inline-start: -1rem;
}
}
.git-changes-status-bar-colored {
.git-add {
color: var(--color-green);
}
.git-change {
color: var(--color-yellow);
}
.git-delete {
color: var(--color-red);
}
}
.git-changes-status-bar .git-add {
margin-right: 0.3em;
}
.git-changes-status-bar .git-change {
margin-right: 0.3em;
}
+5 -1
View File
@@ -86,7 +86,9 @@
"style": "Title Case", "style": "Title Case",
"ignore-case-words": true, "ignore-case-words": true,
"ignore-words": "macOS, iOS, iPhone, iPad, JavaScript, TypeScript, AppleScript, I", "ignore-words": "macOS, iOS, iPhone, iPad, JavaScript, TypeScript, AppleScript, I",
"lowercase-words": "a, an, the, aboard, about, abt., above, abreast, absent, across, after, against, along, aloft, alongside, amid, amidst, mid, midst, among, amongst, anti, apropos, around, round, as, aslant, astride, at, atop, ontop, bar, barring, before, B4, behind, below, beneath, neath, beside, besides, between, 'tween, beyond, but, by, chez, circa, c., ca., come, concerning, contra, counting, cum, despite, spite, down, during, effective, ere, except, excepting, excluding, failing, following, for, from, in, including, inside, into, less, like, minus, modulo, mod, near, nearer, nearest, next, notwithstanding, of, o', off, offshore, on, onto, opposite, out, outside, over, o'er, pace, past, pending, per, plus, post, pre, pro, qua, re, regarding, respecting, sans, save, saving, short, since, sub, than, through, thru, throughout, thruout, till, times, to, t', touching, toward, towards, under, underneath, unlike, until, unto, up, upon, versus, vs., v., via, vice, vis-à-vis, wanting, with, w/, w., c̄, within, w/i, without, 'thout, w/o, abroad, adrift, aft, afterward, afterwards, ahead, apart, ashore, aside, away, back, backward, backwards, beforehand, downhill, downstage, downstairs, downstream, downward, downwards, downwind, east, eastward, eastwards, forth, forward, forwards, heavenward, heavenwards, hence, henceforth, here, hereby, herein, hereof, hereto, herewith, home, homeward, homewards, indoors, inward, inwards, leftward, leftwards, north, northeast, northward, northwards, northwest, now, onward, onwards, outdoors, outward, outwards, overboard, overhead, overland, overseas, rightward, rightwards, seaward, seawards, skywards, skyward, south, southeast, southwards, southward, southwest, then, thence, thenceforth, there, thereby, therein, thereof, thereto, therewith, together, underfoot, underground, uphill, upstage, upstairs, upstream, upward, upwards, upwind, west, westward, westwards, when, whence, where, whereby, wherein, whereto, wherewith, although, because, considering, given, granted, if, lest, once, provided, providing, seeing, so, supposing, though, unless, whenever, whereas, wherever, while, whilst, ago, inasmuch, even, whether, whose, whoever, why, how, whatever, what, both, and, or, either, neither, nor, just, rather, such, that, yet, is, it" "lowercase-words": "a, an, the, aboard, about, abt., above, abreast, absent, across, after, against, along, aloft, alongside, amid, amidst, mid, midst, among, amongst, anti, apropos, around, round, as, aslant, astride, at, atop, ontop, bar, barring, before, B4, behind, below, beneath, neath, beside, besides, between, 'tween, beyond, but, by, chez, circa, c., ca., come, concerning, contra, counting, cum, despite, spite, down, during, effective, ere, except, excepting, excluding, failing, following, for, from, in, including, inside, into, less, like, minus, modulo, mod, near, nearer, nearest, next, notwithstanding, of, o', off, offshore, on, onto, opposite, out, outside, over, o'er, pace, past, pending, per, plus, post, pre, pro, qua, re, regarding, respecting, sans, save, saving, short, since, sub, than, through, thru, throughout, thruout, till, times, to, t', touching, toward, towards, under, underneath, unlike, until, unto, up, upon, versus, vs., v., via, vice, vis-à-vis, wanting, with, w/, w., c̄, within, w/i, without, 'thout, w/o, abroad, adrift, aft, afterward, afterwards, ahead, apart, ashore, aside, away, back, backward, backwards, beforehand, downhill, downstage, downstairs, downstream, downward, downwards, downwind, east, eastward, eastwards, forth, forward, forwards, heavenward, heavenwards, hence, henceforth, here, hereby, herein, hereof, hereto, herewith, home, homeward, homewards, indoors, inward, inwards, leftward, leftwards, north, northeast, northward, northwards, northwest, now, onward, onwards, outdoors, outward, outwards, overboard, overhead, overland, overseas, rightward, rightwards, seaward, seawards, skywards, skyward, south, southeast, southwards, southward, southwest, then, thence, thenceforth, there, thereby, therein, thereof, thereto, therewith, together, underfoot, underground, uphill, upstage, upstairs, upstream, upward, upwards, upwind, west, westward, westwards, when, whence, where, whereby, wherein, whereto, wherewith, although, because, considering, given, granted, if, lest, once, provided, providing, seeing, so, supposing, though, unless, whenever, whereas, wherever, while, whilst, ago, inasmuch, even, whether, whose, whoever, why, how, whatever, what, both, and, or, either, neither, nor, just, rather, such, that, yet, is, it",
"starting-word-ignore-characters": "'\"(‘“-",
"ending-word-ignore-characters": ".?!,:;'\")”’0123456789-"
}, },
"file-name-heading": { "file-name-heading": {
"enabled": false "enabled": false
@@ -275,6 +277,8 @@
"recordLintOnSaveLogs": false, "recordLintOnSaveLogs": false,
"displayChanged": true, "displayChanged": true,
"suppressMessageWhenNoChange": false, "suppressMessageWhenNoChange": false,
"suppressLintAllFilesConfirmationModal": false,
"suppressLintAllFilesInFolderConfirmationModal": false,
"lintOnFileChange": false, "lintOnFileChange": false,
"displayLintOnFileChangeNotice": false, "displayLintOnFileChangeNotice": false,
"settingsConvertedToConfigKeyValues": true, "settingsConvertedToConfigKeyValues": true,
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "obsidian-linter", "id": "obsidian-linter",
"name": "Linter", "name": "Linter",
"version": "1.31.2", "version": "1.32.0",
"minAppVersion": "1.12.0", "minAppVersion": "1.12.0",
"description": "Formats and styles your notes. It can be used to format YAML tags, aliases, arrays, and metadata; footnotes; headings; spacing; math blocks; regular markdown contents like list, italics, and bold styles; and more with the use of custom rule options as well.", "description": "Formats and styles your notes. It can be used to format YAML tags, aliases, arrays, and metadata; footnotes; headings; spacing; math blocks; regular markdown contents like list, italics, and bold styles; and more with the use of custom rule options as well.",
"author": "Victor Tao", "author": "Victor Tao",
+1 -1
View File
@@ -1 +1 @@
.linter-navigation-item{align-items:center;background-color:var(--background-primary-secondary-alt);border:1px solid var(--background-modifier-border);border-radius:100px;border-radius:8px 8px 2px 2px;cursor:pointer;display:flex;flex-direction:row;font-size:16px;font-weight:700;gap:4px;height:32px;overflow:hidden;padding:4px 6px;transition:color .25s ease-in-out,padding .25s ease-in-out,background-color .35s cubic-bezier(.45,.25,.83,.67),max-width .35s cubic-bezier(.57,.04,.58,1);white-space:nowrap}@media screen and (max-width:1325px){.linter-navigation-item.linter-desktop{max-width:32px}}@media screen and (max-width:800px){.linter-navigation-item.linter-mobile{max-width:32px}}.linter-navigation-item-icon,.linter-warning{padding-top:5px}.linter-navigation-item:hover{border-color:var(--interactive-accent-hover);border-bottom:0}.linter-navigation-item-selected{background-color:var(--interactive-accent)!important;border:1px solid var(--background-modifier-border);border-bottom:0;border-radius:8px 8px 2px 2px;color:var(--text-on-accent);max-width:100%!important;padding:4px 9px!important;transition:color .25s ease-in-out,padding .25s ease-in-out,background-color .35s cubic-bezier(.45,.25,.83,.67),max-width .45s cubic-bezier(.57,.04,.58,1) .2s}.linter{transition:transform .4s 0s}.linter-setting-title{align-items:baseline;display:flex;gap:30px;justify-content:space-between}.linter-setting-title.linter-mobile{justify-content:space-around}.linter-setting-title h1{font-weight:900;margin-bottom:12px;margin-top:6px}.linter-setting-header{margin-bottom:24px;overflow-x:auto;overflow-y:hidden}.linter-setting-header .linter-setting-tab-group{align-items:flex-end;display:flex;flex-wrap:wrap;width:100%}.linter-setting-tab-group{border-bottom:2px solid var(--background-modifier-border);margin-top:6px;padding-left:2px;padding-right:2px}.linter-setting-header .linter-tab-settings{border-left:2px solid transparent;border-right:2px solid transparent;cursor:pointer;font-weight:600;padding:6px 12px;white-space:nowrap}.linter-setting-header .linter-tab-settings:first-child{margin-left:6px}.linter-setting-header .linter-tab-settings.linter-tab-settings-active{border:2px solid var(--background-modifier-border);border-bottom-color:var(--background-primary);border-radius:2px;transform:translateY(2px)}.linter-navigation-item:not(.linter-navigation-item-selected)>span:nth-child(2),.linter-visually-hidden{border:0;clip:rect(0 0 0 0);clip-path:rect(0 0 0 0);height:auto;margin:0;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}textarea.full-width{margin-bottom:.8em;margin-top:.8em;min-height:10em;width:100%}.full-width-textbox-input-wrapper{position:relative}.settings-copy-button{margin:0 0 0 auto;padding:4px;position:absolute;right:.8em;top:.8em}.settings-copy-button svg.linter-clipboard path{fill:var(--text-faint)}.settings-copy-button svg.linter-success path{fill:var(--interactive-success)}.settings-copy-button:active,.settings-copy-button:hover{cursor:pointer}.settings-copy-button:active svg path,.settings-copy-button:hover svg path{fill:var(--text-accent-hover);transition:all .3s ease}.settings-copy-button:focus{outline:0}.linter-custom-regex-replacement-container div:last-child{border:none}.linter-custom-regex-replacement{border:none;border-bottom:var(--hr-thickness) solid;border-color:var(--hr-color);margin-bottom:15px}.linter-custom-regex-replacement-row2{flex-wrap:wrap}.linter-custom-regex-replacement-normal-input{width:40%}.linter-custom-regex-replacement-flags{width:15%}.linter-custom-regex-replacement-label{flex-direction:row-reverse}.linter-custom-regex-replacement-label-input{width:50%}.linter-files-to-ignore-container div:last-child{border:none}.linter-files-to-ignore{border:none;border-bottom:var(--hr-thickness) solid;border-color:var(--hr-color);margin-bottom:15px}.linter-files-to-ignore-normal-input{width:40%}.linter-files-to-ignore-flags{width:15%}.linter-no-border{border:none}.linter-border-bottom{border-bottom:1px solid var(--background-modifier-border);border-top:0;margin-bottom:.75em}.linter-no-padding-top{padding-top:0}.custom-row-description{margin-top:0}.modal-warn,.search-zero-state{font-weight:700}.modal-heading,.search-zero-state{text-align:center} .linter-navigation-item{align-items:center;background-color:var(--background-primary-secondary-alt);border:1px solid var(--background-modifier-border);border-radius:100px;border-radius:8px 8px 2px 2px;cursor:pointer;display:flex;flex-direction:row;font-size:16px;font-weight:700;gap:4px;height:32px;overflow:hidden;padding:4px 6px;transition:color .25s ease-in-out,padding .25s ease-in-out,background-color .35s cubic-bezier(.45,.25,.83,.67),max-width .35s cubic-bezier(.57,.04,.58,1);white-space:nowrap}@media screen and (max-width:1325px){.linter-navigation-item.linter-desktop{max-width:32px}}@media screen and (max-width:800px){.linter-navigation-item.linter-mobile{max-width:32px}}.linter-navigation-item-icon,.linter-warning{padding-top:5px}.linter-navigation-item:hover{border-color:var(--interactive-accent-hover);border-bottom:0}.linter-navigation-item-selected{background-color:var(--interactive-accent)!important;border:1px solid var(--background-modifier-border);border-bottom:0;border-radius:8px 8px 2px 2px;color:var(--text-on-accent);max-width:100%!important;padding:4px 9px!important;transition:color .25s ease-in-out,padding .25s ease-in-out,background-color .35s cubic-bezier(.45,.25,.83,.67),max-width .45s cubic-bezier(.57,.04,.58,1) .2s}.linter{transition:transform .4s 0s}.linter-setting-title{align-items:baseline;display:flex;gap:30px;justify-content:space-between}.linter-setting-title.linter-mobile{justify-content:space-around}.linter-setting-title h1{font-weight:900;margin-bottom:12px;margin-top:6px}.linter-setting-header{margin-bottom:24px;overflow-x:auto;overflow-y:hidden}.linter-setting-header .linter-setting-tab-group{align-items:flex-end;display:flex;flex-wrap:wrap;width:100%}.linter-setting-tab-group{border-bottom:2px solid var(--background-modifier-border);margin-top:6px;padding-left:2px;padding-right:2px}.linter-setting-header .linter-tab-settings{border-left:2px solid transparent;border-right:2px solid transparent;cursor:pointer;font-weight:600;padding:6px 12px;white-space:nowrap}.linter-setting-header .linter-tab-settings:first-child{margin-left:6px}.linter-setting-header .linter-tab-settings.linter-tab-settings-active{border:2px solid var(--background-modifier-border);border-bottom-color:var(--background-primary);border-radius:2px;transform:translateY(2px)}.linter-navigation-item:not(.linter-navigation-item-selected)>span:nth-child(2),.linter-visually-hidden{border:0;clip:rect(0 0 0 0);clip-path:rect(0 0 0 0);height:auto;margin:0;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}textarea.full-width{margin-bottom:.8em;margin-top:.8em;min-height:10em;width:100%}.full-width-textbox-input-wrapper{position:relative}.settings-copy-button{margin:0 0 0 auto;padding:4px;position:absolute;right:.8em;top:.8em}.settings-copy-button svg.linter-clipboard path{fill:var(--text-faint)}.settings-copy-button svg.linter-success path{fill:var(--interactive-success)}.settings-copy-button:active,.settings-copy-button:hover{cursor:pointer}.settings-copy-button:active svg path,.settings-copy-button:hover svg path{fill:var(--text-accent-hover);transition:all .3s ease}.settings-copy-button:focus{outline:0}.linter-custom-regex-replacement-container div:last-child{border:none}.linter-custom-regex-replacement{border:none;border-bottom:var(--hr-thickness) solid;border-color:var(--hr-color);margin-bottom:15px}.linter-custom-regex-replacement-row2{flex-wrap:wrap}.linter-custom-regex-replacement-normal-input{width:40%}.linter-custom-regex-replacement-flags{width:15%}.linter-custom-regex-replacement-label{flex-direction:row-reverse}.linter-custom-regex-replacement-label-input{width:50%}.linter-files-to-ignore-container div:last-child{border:none}.linter-files-to-ignore{border:none;border-bottom:var(--hr-thickness) solid;border-color:var(--hr-color);margin-bottom:15px}.linter-files-to-ignore-normal-input{width:40%}.linter-files-to-ignore-flags{width:15%}.linter-no-border{border:none}.linter-border-bottom{border-bottom:1px solid var(--background-modifier-border);border-top:0;margin-bottom:.75em}.linter-no-padding-top{padding-top:0}.custom-row-description{margin-top:0}.modal-warn,.search-zero-state{font-weight:700}.modal-heading,.search-zero-state{text-align:center}.confirm-modal-checkbox-container{align-items:center;display:flex;gap:6px;margin-top:8px}
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "templater-obsidian", "id": "templater-obsidian",
"name": "Templater", "name": "Templater",
"version": "2.20.5", "version": "2.20.6",
"description": "Advanced templating and automation using handlebars-like syntax.", "description": "Advanced templating and automation using handlebars-like syntax.",
"minAppVersion": "1.12.2", "minAppVersion": "1.12.2",
"author": "SilentVoid", "author": "SilentVoid",
+93 -47
View File
@@ -36,20 +36,51 @@
} }
}, },
{ {
"id": "8a8673d1d65a8d04", "id": "e41a7bb2a6fb9421",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "bases", "type": "full-calendar-view",
"state": { "state": {},
"file": "50-Aufgabenplanung/Taskliste.base", "icon": "calendar-glyph",
"viewName": "Table" "title": "Calendar"
}
}, },
"icon": "lucide-table", {
"title": "Taskliste" "id": "cffbaa9007ac59f6",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "_templates/Add-Contextual.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Add-Contextual"
} }
} }
], ],
"currentTab": 2 "currentTab": 3
},
{
"id": "cadeff41d541abb5",
"type": "tabs",
"children": [
{
"id": "c01ca1099c4a6b34",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "50-Aufgabenplanung/tasks/Juli Iteration 4 Tickets schneiden und spezifizieren.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Juli Iteration 4 Tickets schneiden und spezifizieren"
}
}
]
} }
], ],
"direction": "vertical" "direction": "vertical"
@@ -106,7 +137,7 @@
} }
], ],
"direction": "horizontal", "direction": "horizontal",
"width": 300 "width": 298.5
}, },
"right": { "right": {
"id": "3580347cbf61afa4", "id": "3580347cbf61afa4",
@@ -192,13 +223,23 @@
"icon": "lucide-list", "icon": "lucide-list",
"title": "Outline of Add-Iteration" "title": "Outline of Add-Iteration"
} }
},
{
"id": "602f8a1b19e5a07b",
"type": "leaf",
"state": {
"type": "git-view",
"state": {},
"icon": "git-pull-request",
"title": "Source Control"
} }
] }
],
"currentTab": 5
} }
], ],
"direction": "horizontal", "direction": "horizontal",
"width": 300, "width": 300
"collapsed": true
}, },
"left-ribbon": { "left-ribbon": {
"hiddenItems": { "hiddenItems": {
@@ -209,45 +250,50 @@
"templates:Insert template": false, "templates:Insert template": false,
"command-palette:Open command palette": false, "command-palette:Open command palette": false,
"bases:Create new base": false, "bases:Create new base": false,
"templater-obsidian:Templater": false "templater-obsidian:Templater": false,
"obsidian-full-calendar:Open Full Calendar": false,
"full-calendar-remastered:Open Full Calendar": false,
"full-calendar-remastered:FCR Command": false,
"obsidian-git:Open Git source control": false
} }
}, },
"active": "8a8673d1d65a8d04", "active": "c01ca1099c4a6b34",
"lastOpenFiles": [ "lastOpenFiles": [
"50-Aufgabenplanung/Erste Schritte der Aufgabenplanung.md", "80-Datenimport/References/2026-07-17-1300 - Austausch SK MA (513e2ba9).md",
"50-Aufgabenplanung/Backup Konfiguration evaluieren.md", "80-Datenimport/References/2026-07-16-0630 - Aufgabenplanung Korrespondenz (68680cdd).md",
"50-Aufgabenplanung/Taskliste.base", "80-Datenimport/Events/ma@coachhamburg.com/Outlook_68680cdd.md",
"50-Aufgabenplanung/Die Angebotssynchronisation muss sicherstellen, dass eine passende Kalkulation existiert.md", "00-inbox/Abrechenbare Leistung als abgerechnet markieren.md",
"50-Aufgabenplanung/Docker Repository Service im Cluster bereitstellen.md", "00-inbox/Tag Kreativleistung als abrechenbare Leistung behandeln.md",
"Juli Notes.base", "00-inbox/Systemprojekte vollwertig etablieren.md",
"Personal OS.md", "40-notes/Iteration 4.md",
"20-projects/JULI.md", "50-Aufgabenplanung/tasks/Juli Iteration 4 Tickets schneiden und spezifizieren.md",
"50-Aufgabenplanung", "_templates/Add-Contextual.md",
"20-projects/Juli", "00-inbox/Projektimport fuer das Management.md",
"00-inbox/Ein neuer Arbeitszeitplan überschreibt den aktuellen Plan.md", "00-inbox/Fertigung alternativer Positionen.md",
"00-inbox/Julius landet mit seiner E-Mail in einer Login Schleife.md", "00-inbox/Implementation einer Angebotsverwaltung.md",
"Taskliste.base",
"_templates/Add-Work.md",
"90-dashboards/Hygiene.md", "90-dashboards/Hygiene.md",
"00-inbox/Tagesabschluss in der Zeiterfassung ermöglichen.md", "Juli Notes.base",
"30-tasks/Arbeitszeit aufteilen.md", "00-inbox/Einzelpositionserfassung für die Materialliste.md",
"90-dashboards/Hygiene Migration.md", "Personal OS.md",
"30-tasks/Review erfasster Mehraufwände.md", "50-Aufgabenplanung/tasks/KI Workspace für Automatisierung evaluieren und aufbauen.md",
"40-notes/Iteration 3.md", "50-Aufgabenplanung/tasks/360 Grad Feedback Tool als Projekt aufnehmen.md",
"40-notes/Demo Iteration 2.md", "50-Aufgabenplanung/Passwort ändern Funktion.md",
"40-notes/Iteration 1.md",
"40-notes/Iteration 2.md",
"40-notes/Backlog.md",
"40-notes/Austausch Dashboard Painpoints.md",
"20-projects/Avicenna.md",
"10-contexts/health.md",
"10-contexts/Genius.ceo.md",
"20-projects/medmix Deutschland GmbH.md",
"30-tasks/Projektpositionen können abgeschlossen werden.md",
"30-tasks/Liste der Mehraufwände am Projekt.md",
"30-tasks/Personalstamm implementieren.md",
"00-inbox/Untitled.base", "00-inbox/Untitled.base",
"_attachments", "50-Aufgabenplanung/tasks/JULI fragt \"Unproduktiv\" Tag an.md",
"_templates/scripts/auto_increment.js", "50-Aufgabenplanung/tasks",
"_templates/scripts", "50-Aufgabenplanung/tasks/Neuer Arbeitszeitplan überschreibt bestehenden, statt nachfolgenden anzulegen.md",
"_templates" "50-Aufgabenplanung/tasks/Gesamtkapazität Personal am Projekt sichtbar machen.md",
"50-Aufgabenplanung/tasks/Gehaltsaufstellung August 2026.md",
"50-Aufgabenplanung/tasks/Die Positionsmenge wird nicht in allen Angeboten korrekt gelesen.md",
"50-Aufgabenplanung/tasks/Zeiterfassung Daily Ansicht überarbeiten.md",
"00-inbox/Hero Artikelstamm anbinden.md",
"50-Aufgabenplanung/events",
"_attachments/fcr",
"80-Datenimport/Events/ma@coachhamburg.com",
"80-Datenimport/References",
"80-Datenimport/Events",
"80-Datenimport"
] ]
} }
@@ -0,0 +1,21 @@
---
components:
- actionable
- contextual
- iterbind
action_status: open
action_impact: 3
action_effort_minutes: 60
action_result: ""
context_target: "[[JULI]]"
context_role: project
context_relation: belongs_to
iterbind_target: "[[Iteration 4]]"
iterbind_status: draft
iterbind_role: primary
iterbind_order: 0
---
## Notes
- Abrechenbare Leistungen am Projekt sollen als abgerechnet gekennzeichnet werden
- Multi-Select fuer Aenderung ist wuenschenswert
@@ -4,11 +4,11 @@ components:
context_target: "[[JULI]]" context_target: "[[JULI]]"
context_role: project context_role: project
context_relation: belongs_to context_relation: belongs_to
iterbind_target: "[[Backlog]]" iterbind_target: "[[Iteration 4]]"
base_created: 2026-06-17T17:41 base_created: 2026-06-17T17:41
base_modified: 2026-06-19T17:48 base_modified: 2026-06-19T17:48
action_status: open action_status: open
action_effort_minutes: 360 action_effort_minutes: 480
action_impact: 5 action_impact: 5
--- ---
@@ -0,0 +1,20 @@
---
components:
- actionable
- contextual
- iterbind
action_status: open
action_impact: 4
action_effort_minutes: 120
action_result: ""
context_target: "[[JULI]]"
context_role: project
context_relation: belongs_to
iterbind_target: "[[Iteration 4]]"
iterbind_status: draft
iterbind_role: primary
iterbind_order: 0
---
## Notes
- Wir wollen alternative Positionen aus dem Angebot im Dashboard fuer die Fertigung vorsehen koennen
+24
View File
@@ -0,0 +1,24 @@
---
components:
- actionable
- contextual
- iterbind
action_status: open
action_impact: 3
action_effort_minutes: 240
action_result: ""
context_target: "[[JULI]]"
context_role: project
context_relation: belongs_to
iterbind_target: "[[Iteration 4]]"
iterbind_status: planned
iterbind_role: primary
iterbind_order: 0
---
## Action
- Next step:
- Definition of done:
## Result
@@ -0,0 +1,22 @@
---
components:
- actionable
- contextual
- iterbind
action_status: open
action_impact: 3
action_effort_minutes: 480
action_result: ""
context_target: "[[JULI]]"
context_role: project
context_relation: belongs_to
iterbind_target: "[[Iteration 4]]"
iterbind_status: draft
iterbind_role: primary
iterbind_order: 0
---
## Notes
- Auswahl zu fertigender Angebote
- expliziter Refresh nach Aenderung
- (could) Datenuebernahme visualisieren
@@ -0,0 +1,22 @@
---
components:
- actionable
- contextual
- iterbind
action_status: open
action_impact: 3
action_effort_minutes: 120
action_result: ""
context_target: "[[JULI]]"
context_role: project
context_relation: belongs_to
iterbind_target: "[[Iteration 4]]"
iterbind_status: draft
iterbind_role: primary
iterbind_order: 0
---
## Notes
- Neue Projekte koennen aus der Projektuebersicht ueber einen Button hinzugefuegt werden
- Ein Modal fragt die Projekt ID ab, im Format xx-nr, z. B. TA-130
- Das Backend fragt die interne Hero ID ab und hinterlegt diese fuer kuenftige Syncs
@@ -0,0 +1,28 @@
---
components:
- actionable
- contextual
- iterbind
action_status: open
action_impact: 3
action_effort_minutes: 600
action_result: ""
context_target: "[[JULI]]"
context_role: project
context_relation: belongs_to
iterbind_target: "[[Iteration 4]]"
iterbind_status: draft
iterbind_role: primary
iterbind_order: 0
---
## Notes
- Systemprojekte sollen den gleichen Funktionsumfang wie Hero Projekte unterstuetzen. Beide sind gleichwertig.
- Im MVP muessen Systemprojekte noch keinen Plan-Ist Vergleich unterstuetzen
- Arbeitsschritte an Systemprojekten haben nicht zwingend ein Kontingent
- Besprechungen mit GF koennten unbegrenzt sein
- Anders gedacht koennte es ein Kontingent fuer einen Zeitraum geben, welches sich danach zurueck setzt. Dies koennte als Benchmark dienen.
- Nur ne Idee, vielleicht traegt sie sich weiter.
- Erstellung und Bearbeitung von Systemprojekten
- Positionen -> Subpositionen -> Arbeitsschritte
- Darstellung in Uebersicht und Detailseite
@@ -0,0 +1,21 @@
---
components:
- actionable
- contextual
- iterbind
action_status: open
action_impact: 4
action_effort_minutes: 60
action_result: ""
context_target: "[[JULI]]"
context_role: project
context_relation: belongs_to
iterbind_target: "[[Iteration 4]]"
iterbind_status: draft
iterbind_role: primary
iterbind_order: 0
---
## Notes
- Tag im Review Bereich mit auffuehren, sowie auf der Abrechnungsseite am Projekt
- Tag an der Zeit darstellen, durch Icon, Farbe, Kuerzel, oder Label, um Unterscheidung zu ermoeglichen
-53
View File
@@ -1,53 +0,0 @@
filters:
and:
- file.hasLink("Iteration 2")
formulas:
Aufwand (ET: action_effort_minutes / 60 / 8
properties:
formula.Aufwand (ET:
displayName: Aufwand (ET)
views:
- type: table
name: Table
order:
- file.name
- action_status
- formula.Aufwand (ET
- action_impact
- action_effort_minutes
sort: []
columnSize:
formula.Aufwand (ET: 138
- type: kanban-view
name: View
filters:
and:
- "!action_status.isEmpty()"
columnOrders:
file.file:
- 00-inbox/Arbeitszeit Sonstiges nur mit Kommentar.md
- 00-inbox/Arbeitszeit aufteilen.md
- 00-inbox/Arbeitszeit taggen.md
- 00-inbox/Personalstamm implementieren.md
- 00-inbox/Werkstatt als Systemprojekt aufnehmen.md
- 30-tasks/Zeit mit Projekt kann nicht auf Allgemein gebucht werden.md
- 30-tasks/Zeitzuordnung wird durch Sync zurückgesetzt.md
note.action_status:
- open
- done
cardOrders:
file.file: {}
note.action_status: {}
"file.file\x1fnote.action_status": {}
columnColors:
file.file: {}
note.action_status: {}
groupByProperty: note.action_status
swimlaneByProperty: note.action_status
swimlaneOrders:
"file.file\x1fnote.action_status":
- done
- open
- Uncategorized
collapsedLanes:
"file.file\x1fnote.action_status": []
+55
View File
@@ -0,0 +1,55 @@
---
components:
- contextual
- iterdef
context_target: "[[JULI]]"
context_role: project
context_relation: belongs_to
iterdef_id: 4
iterdef_status: planned
iterdef_start: 2026-07-20T08:00:00
iterdef_end: 2026-07-24T18:00:00
iterdef_goal: Wir erweitern die Projektverwaltung im Dashboard, sodass immer eine korrekte, mit der Realität abgestimmte, Planungsbasis existiert.
iterdef_capacity_minutes: 0
cssclasses: wide-page
---
## Goal
## Workspace
```base
filters:
and:
- file.hasLink(this.file.path)
formulas:
Aufwand (ET: action_effort_minutes / 60 / 8
properties:
formula.Aufwand (ET:
displayName: Aufwand (ET)
views:
- type: table
name: Table
order:
- file.name
- action_status
- formula.Aufwand (ET
- action_impact
- action_effort_minutes
sort:
- property: action_status
direction: ASC
```
## Bound Work
```dataview
TABLE
action_status as "Action",
work_status as "Work",
round(action_effort_minutes / 60 / 8, 2) as "Aufwand (ET)",
action_impact as "Impact"
FROM ""
WHERE iterbind_target = this.file.link
SORT action_impact DESC, action_effort_minutes ASC
```
@@ -1,4 +0,0 @@
---
status: open
variant: Task
---
@@ -1,6 +0,0 @@
---
status: open
variant: Task
---
## Nächste Schritte
- Terminierung Zeitblock "Korrespondenz + Task Planung"
@@ -0,0 +1,8 @@
---
status: open
variant: Task
priority:
doable: 1 - Machen
cluster: Entwickler
---
Im JULI Dashboard haben noch alle User das gleiche Kennwort :|
-12
View File
@@ -1,12 +0,0 @@
filters:
and:
- file.inFolder("50-Aufgabenplanung")
- file.hasProperty("status")
views:
- type: table
name: Table
order:
- file.name
- variant
columnSize:
file.name: 340
@@ -0,0 +1,10 @@
---
status: open
variant: Task
priority: 1 - wichtig, dringlich
doable: 3 - Terminieren
cluster: Projektmanager
---
## Coachee360
- Vernetzungsgraph
- Wer hat wen eingeladen und ist mit wem verbunden
@@ -1,6 +1,9 @@
--- ---
status: open status: open
variant: Projekt variant: Projekt
priority: 3 - wichtig, nicht dringlich
doable: 2 - Anforderung klären
cluster: CTO
--- ---
Ziel ist eine vollwertige Datensicherung aller gefährdeter Daten von Coach Hamburg nach der 3-2-1 Regel. Ziel ist eine vollwertige Datensicherung aller gefährdeter Daten von Coach Hamburg nach der 3-2-1 Regel.
@@ -1,5 +1,8 @@
--- ---
status: open status: open
variant: Task variant: Task
priority: 1 - wichtig, dringlich
doable: 1 - Machen
cluster: Entwickler
--- ---
TA-191 Angebot weicht von der Kalkulation ab. TA-191 Angebot weicht von der Kalkulation ab.
@@ -0,0 +1,9 @@
---
status: open
variant: Task
priority: 1 - wichtig, dringlich
doable: 1 - Machen
cluster: Entwickler
---
Beispiel TA-191
Stückzahl steht im Positionslabel
@@ -0,0 +1,9 @@
---
status: open
variant: Task
priority: 4 - nicht wichtig, nicht dringlich
doable: 2 - Anforderung klären
cluster: IT Operator
---
Welcher Dienst?
Eigenständiges Tool, oder in Kombination mit VCS-Provider?
@@ -0,0 +1,11 @@
---
status: open
variant: Task
priority: 1 - wichtig, dringlich
doable: 1 - Machen
cluster: Persönliche Entwicklung
---
## Nächste Schritte
- Terminierung Zeitblock "Korrespondenz + Task Planung"
- Aufnahme von Aufgaben (so viele wie möglich)
- Clustern in Rollen, Funktionen, Tätigkeiten, ...
@@ -0,0 +1,7 @@
---
status: open
variant: Task
priority: 3 - wichtig, nicht dringlich
doable: 1 - Machen
cluster: Projektmanager
---
@@ -0,0 +1,10 @@
---
status: open
variant: Task
priority: 3 - wichtig, nicht dringlich
doable: 1 - Machen
cluster: Entwickler
---
Benötigt Philipp für die Planung, da er sich diesen Überblick bisher nur sehr umständlich beschaffen kann.
Wir listen als AV, Produktion, Montage
@@ -0,0 +1,16 @@
---
status: open
variant: Task
priority: 1 - wichtig, dringlich
doable: 3 - Terminieren
cluster: Projektmanager
---
**Wird nach Iteration 4 weiter bearbeitet.**
Evaluieren ob wirklich sinnvoll.
Ich würde es lassen. Nach Iteration 4 gibt es Systemprojekte, welche es erlauben Kategorien anzulegen, auf welche diese Zeiten gebucht werden.
Ich glaube die Notwendigkeit lässt sich lösen, wenn diese Tätigkeiten sauber gebucht werden können, wodurch wir mit den Projekten und Arbeitsschritten lenken können.
Das Tag "Unproduktiv" drückt nicht aus, was unproduktiv ist. Dies ist Wissen, welches beim Mitarbeiter aufgebaut werden muss. Geben wir dem MA einen Rahmen, kann er es bestenfalls selbstständig erlernen.
@@ -0,0 +1,22 @@
---
status: open
variant: Task
priority: 1 - wichtig, dringlich
doable: 1 - Machen
cluster: Projektmanager
---
## Themen aus der Planung
- Projektverwaltung im Dashboard (1,5 ET):
- Angebotsverwaltung:
- Auswahl zu fertigender Angebote, expliziter Refresh mit Datenübernahme.
- Fertigung alternativer Positionen.
- Projektimport für das Management.
- Systemprojekte (Interne Projekte) (1,25 ET):
- Übersicht, Detailansicht, Erstellung und Verwaltung.
- Kleinere Anpassungen (0,25 ET):
- Tag "Kreativleistung" als abrechenbare Leistung behandeln.
- Abrechenbare Leistungen als "abgerechnet" markieren.
- Einzelpositionserfassung für Material (1,5 ET)
- Anbindung an den HERO-Artikelstamm.
![[Iteration 4]]
@@ -0,0 +1,13 @@
---
status: open
variant: Projekt
priority: 3 - wichtig, nicht dringlich
doable:
cluster: IT Operator
---
Das Ziel ist ein Workspace, welcher es uns erlaubt Prozesse zu automatisieren und dabei moderne KI gestützte Prozesse zu integrieren. Der Fokus liegt hier auf dem aggregieren von Wissen und Erfahrung, beim Aufbau solcher Systeme und der Automatisierung von Prozessen.
[Dify](https://github.com/langgenius/dify) sieht vielversprechend aus, dies könnte ein guter Startpunkt sein.
In [n8n](https://workflows.genius.ceo/home/workflows) haben wir begonnen unsere Kalender Events zu synchronisieren. Eine tragfähige Lösung sollte die Daten in eine Datenbank importieren.
Ziel ist ein zuverlässiger und stabiler Import, welcher gleichbleibende Ergebnisse produziert und in der Lage ist die Daten zu aktualisieren.
@@ -0,0 +1,7 @@
---
status: open
variant: Task
priority: 2 - dringlich, nicht wichtig
doable: 2 - Anforderung klären
cluster: Entwickler
---
@@ -0,0 +1,12 @@
---
status: open
variant: Task
priority: 3 - wichtig, nicht dringlich
doable: 1 - Machen
cluster: Entwickler
---
Philipp hat Ideen geteilt:
>In DAILY Ansicht müssen wir noch ein paar Kleinigkeiten anpassen. Bitte markiere ROT wenn noch keine Zeiten in HERO hinterlegt sind und ersetze “PRÜFEN” durch “HERO ZEIT FEHLT”
Bitte markiere GELB wenn Zeiten noch nicht zugeordnet sind und ändere dabei “PRÜFEN” durch “NICHT ZUGEORDNET”
Teilweise sind Hinweise wie “PRÜFEN” doppelt belegt. Es zeigt mir zwar, dass da etwas nicht stimmt in dem Zeiteintrag, aber ich würde aber gerne direkt in der DAILY Ansicht erkennen, was los ist, damit ich direkt den MA drauf sprechen kann. Wir haben 14 MA, bald kommen noch drei weitere hinzu, es ist sehr mühsam in jeden einzelnen Eintrag reingehen zu müssen, nur um zu sehen, dass einfach noch keine Stunden zugeordnet worden sind.
+7
View File
@@ -0,0 +1,7 @@
# Overview
```dataview
Calendar time_start
where time_start != null
```
+11 -10
View File
@@ -2,16 +2,6 @@ filters:
and: and:
- context_target == link("JULI") - context_target == link("JULI")
views: views:
- type: cards
name: Tasks
filters:
and:
- "!status.isEmpty()"
order:
- file.name
- status
- created
cardSize: 200
- type: kanban-view - type: kanban-view
name: Planning name: Planning
filters: filters:
@@ -33,6 +23,7 @@ views:
- Uncategorized - Uncategorized
note.iterbind_target: note.iterbind_target:
- "[[Backlog]]" - "[[Backlog]]"
- "[[Iteration 4]]"
- "[[Iteration 3]]" - "[[Iteration 3]]"
- "[[Iteration 2]]" - "[[Iteration 2]]"
- "[[Iteration 1]]" - "[[Iteration 1]]"
@@ -63,5 +54,15 @@ views:
- Uncategorized - Uncategorized
collapsedLanes: collapsedLanes:
"note.iterbind_target\x1fnote.iteration": [] "note.iterbind_target\x1fnote.iteration": []
- type: cards
name: Tasks
filters:
and:
- "!status.isEmpty()"
order:
- file.name
- status
- created
cardSize: 200
- type: table - type: table
name: View name: View
+221
View File
@@ -0,0 +1,221 @@
filters:
and:
- file.inFolder("50-Aufgabenplanung")
- file.hasProperty("status")
views:
- type: table
name: Alle Tickets
order:
- file.name
- variant
- priority
- doable
- cluster
columnSize:
file.name: 340
- type: kanban-view
name: Priorisierung
order:
- status
- variant
columnOrders:
file.file:
- 50-Aufgabenplanung/360 Grad Feedback Tool als Projekt aufnehmen.md
- 50-Aufgabenplanung/Backup Konfiguration evaluieren.md
- 50-Aufgabenplanung/Die Angebotssynchronisation muss sicherstellen, dass eine passende Kalkulation existiert.md
- 50-Aufgabenplanung/Die Positionsmenge wird nicht in allen Angeboten korrekt gelesen.md
- 50-Aufgabenplanung/Docker Repository Service im Cluster bereitstellen.md
- 50-Aufgabenplanung/Erste Schritte der Aufgabenplanung.md
- 50-Aufgabenplanung/Gehaltsaufstellung August 2026.md
- 50-Aufgabenplanung/Gesamtkapazität Personal am Projekt sichtbar machen.md
- 50-Aufgabenplanung/JULI fragt "Unproduktiv" Tag an.md
- 50-Aufgabenplanung/Juli Iteration 4 Tickets schneiden und spezifizieren.md
- 50-Aufgabenplanung/KI Workspace für Automatisierung evaluieren und aufbauen.md
- 50-Aufgabenplanung/Neuer Arbeitszeitplan überschreibt bestehenden, statt nachfolgenden anzulegen.md
- 50-Aufgabenplanung/Zeiterfassung Daily Ansicht überarbeiten.md
- 50-Aufgabenplanung/tasks/360 Grad Feedback Tool als Projekt aufnehmen.md
- 50-Aufgabenplanung/tasks/Die Angebotssynchronisation muss sicherstellen, dass eine passende Kalkulation existiert.md
- 50-Aufgabenplanung/tasks/Die Positionsmenge wird nicht in allen Angeboten korrekt gelesen.md
- 50-Aufgabenplanung/tasks/Erste Schritte der Aufgabenplanung.md
- 50-Aufgabenplanung/tasks/JULI fragt "Unproduktiv" Tag an.md
- 50-Aufgabenplanung/tasks/Juli Iteration 4 Tickets schneiden und spezifizieren.md
- 50-Aufgabenplanung/tasks/Backup Konfiguration evaluieren.md
- 50-Aufgabenplanung/tasks/Gehaltsaufstellung August 2026.md
- 50-Aufgabenplanung/tasks/Gesamtkapazität Personal am Projekt sichtbar machen.md
- 50-Aufgabenplanung/tasks/KI Workspace für Automatisierung evaluieren und aufbauen.md
- 50-Aufgabenplanung/tasks/Zeiterfassung Daily Ansicht überarbeiten.md
- 50-Aufgabenplanung/tasks/Docker Repository Service im Cluster bereitstellen.md
- 50-Aufgabenplanung/tasks/Neuer Arbeitszeitplan überschreibt bestehenden, statt nachfolgenden anzulegen.md
- 50-Aufgabenplanung/Passwort ändern Funktion.md
note.priority:
- 1 - wichtig, dringlich
- 2 - dringlich, nicht wichtig
- 3 - wichtig, nicht dringlich
- 4 - nicht wichtig, nicht dringlich
- Uncategorized
cardOrders:
file.file: {}
note.priority:
Uncategorized: []
3 - wichtig, nicht dringlich:
- 50-Aufgabenplanung/tasks/Gehaltsaufstellung August 2026.md
- 50-Aufgabenplanung/tasks/Zeiterfassung Daily Ansicht überarbeiten.md
- 50-Aufgabenplanung/tasks/Backup Konfiguration evaluieren.md
- 50-Aufgabenplanung/tasks/Gesamtkapazität Personal am Projekt sichtbar machen.md
- 50-Aufgabenplanung/tasks/KI Workspace für Automatisierung evaluieren und aufbauen.md
1 - wichtig, dringlich:
- 50-Aufgabenplanung/tasks/Juli Iteration 4 Tickets schneiden und spezifizieren.md
- 50-Aufgabenplanung/tasks/360 Grad Feedback Tool als Projekt aufnehmen.md
- 50-Aufgabenplanung/tasks/Erste Schritte der Aufgabenplanung.md
- 50-Aufgabenplanung/tasks/Die Angebotssynchronisation muss sicherstellen, dass eine passende Kalkulation existiert.md
- 50-Aufgabenplanung/tasks/Die Positionsmenge wird nicht in allen Angeboten korrekt gelesen.md
- 50-Aufgabenplanung/tasks/JULI fragt "Unproduktiv" Tag an.md
4 - nicht wichtig, nicht dringlich:
- 50-Aufgabenplanung/tasks/Docker Repository Service im Cluster bereitstellen.md
"file.file\x1fnote.priority": {}
columnColors:
file.file: {}
note.priority:
1 - wichtig, dringlich: red
2 - dringlich, nicht wichtig: orange
3 - wichtig, nicht dringlich: yellow
4 - nicht wichtig, nicht dringlich: green
groupByProperty: note.priority
swimlaneByProperty: note.priority
swimlaneOrders:
"file.file\x1fnote.priority":
- 1 - wichtig, dringlich
- 2 - dringlich, nicht wichtig
- 3 - wichtig, nicht dringlich
- 4 - nicht wichtig, nicht dringlich
- Uncategorized
collapsedLanes:
"file.file\x1fnote.priority": []
quickAddFolder: 50-Aufgabenplanung/tasks
wrapPropertyValues: false
- type: kanban-view
name: Umsetzungsbereit?
order:
- status
- variant
- priority
columnOrders:
file.file:
- 50-Aufgabenplanung/Passwort ändern Funktion.md
- 50-Aufgabenplanung/tasks/360 Grad Feedback Tool als Projekt aufnehmen.md
- 50-Aufgabenplanung/tasks/Backup Konfiguration evaluieren.md
- 50-Aufgabenplanung/tasks/Die Angebotssynchronisation muss sicherstellen, dass eine passende Kalkulation existiert.md
- 50-Aufgabenplanung/tasks/Die Positionsmenge wird nicht in allen Angeboten korrekt gelesen.md
- 50-Aufgabenplanung/tasks/Docker Repository Service im Cluster bereitstellen.md
- 50-Aufgabenplanung/tasks/Erste Schritte der Aufgabenplanung.md
- 50-Aufgabenplanung/tasks/Gehaltsaufstellung August 2026.md
- 50-Aufgabenplanung/tasks/Gesamtkapazität Personal am Projekt sichtbar machen.md
- 50-Aufgabenplanung/tasks/JULI fragt "Unproduktiv" Tag an.md
- 50-Aufgabenplanung/tasks/Juli Iteration 4 Tickets schneiden und spezifizieren.md
- 50-Aufgabenplanung/tasks/KI Workspace für Automatisierung evaluieren und aufbauen.md
- 50-Aufgabenplanung/tasks/Neuer Arbeitszeitplan überschreibt bestehenden, statt nachfolgenden anzulegen.md
- 50-Aufgabenplanung/tasks/Zeiterfassung Daily Ansicht überarbeiten.md
note.doable:
- 1 - Machen
- 2 - Anforderung klären
- 3 - Terminieren
- 4 - Unterstuetzung suchen
- Uncategorized
cardOrders:
file.file: {}
note.doable:
Uncategorized:
- 50-Aufgabenplanung/tasks/KI Workspace für Automatisierung evaluieren und aufbauen.md
1 - Machen:
- 50-Aufgabenplanung/tasks/Juli Iteration 4 Tickets schneiden und spezifizieren.md
- 50-Aufgabenplanung/tasks/Die Angebotssynchronisation muss sicherstellen, dass eine passende Kalkulation existiert.md
- 50-Aufgabenplanung/tasks/Zeiterfassung Daily Ansicht überarbeiten.md
- 50-Aufgabenplanung/tasks/Die Positionsmenge wird nicht in allen Angeboten korrekt gelesen.md
- 50-Aufgabenplanung/tasks/Erste Schritte der Aufgabenplanung.md
- 50-Aufgabenplanung/tasks/Gehaltsaufstellung August 2026.md
- 50-Aufgabenplanung/tasks/Gesamtkapazität Personal am Projekt sichtbar machen.md
- 50-Aufgabenplanung/Passwort ändern Funktion.md
3 - Terminieren:
- 50-Aufgabenplanung/tasks/360 Grad Feedback Tool als Projekt aufnehmen.md
- 50-Aufgabenplanung/tasks/JULI fragt "Unproduktiv" Tag an.md
2 - Anforderung klären:
- 50-Aufgabenplanung/tasks/Backup Konfiguration evaluieren.md
- 50-Aufgabenplanung/tasks/Docker Repository Service im Cluster bereitstellen.md
- 50-Aufgabenplanung/tasks/Neuer Arbeitszeitplan überschreibt bestehenden, statt nachfolgenden anzulegen.md
4 - Unterstuetzung suchen: []
columnColors:
file.file: {}
note.doable:
1 - Machen: green
groupByProperty: note.doable
- type: kanban-view
name: Cluster
columnOrders:
file.file:
- 50-Aufgabenplanung/Passwort ändern Funktion.md
- 50-Aufgabenplanung/tasks/360 Grad Feedback Tool als Projekt aufnehmen.md
- 50-Aufgabenplanung/tasks/Backup Konfiguration evaluieren.md
- 50-Aufgabenplanung/tasks/Die Angebotssynchronisation muss sicherstellen, dass eine passende Kalkulation existiert.md
- 50-Aufgabenplanung/tasks/Die Positionsmenge wird nicht in allen Angeboten korrekt gelesen.md
- 50-Aufgabenplanung/tasks/Docker Repository Service im Cluster bereitstellen.md
- 50-Aufgabenplanung/tasks/Erste Schritte der Aufgabenplanung.md
- 50-Aufgabenplanung/tasks/Gehaltsaufstellung August 2026.md
- 50-Aufgabenplanung/tasks/Gesamtkapazität Personal am Projekt sichtbar machen.md
- 50-Aufgabenplanung/tasks/JULI fragt "Unproduktiv" Tag an.md
- 50-Aufgabenplanung/tasks/Juli Iteration 4 Tickets schneiden und spezifizieren.md
- 50-Aufgabenplanung/tasks/KI Workspace für Automatisierung evaluieren und aufbauen.md
- 50-Aufgabenplanung/tasks/Neuer Arbeitszeitplan überschreibt bestehenden, statt nachfolgenden anzulegen.md
- 50-Aufgabenplanung/tasks/Zeiterfassung Daily Ansicht überarbeiten.md
note.cluster:
- CTO
- Entwickler
- IT Operator
- Persönliche Entwicklung
- Projektmanager
note.priority:
- 1 - wichtig, dringlich
- 2 - dringlich, nicht wichtig
- 3 - wichtig, nicht dringlich
- 4 - nicht wichtig, nicht dringlich
- Uncategorized
note.doable:
- 1 - Machen
- 2 - Anforderung klären
- 3 - Terminieren
- Uncategorized
cardOrders:
file.file: {}
note.cluster: {}
note.priority: {}
"note.priority\x1fnote.cluster": {}
"note.doable\x1fnote.cluster": {}
"file.file\x1fnote.cluster": {}
columnColors:
file.file: {}
note.cluster: {}
note.priority: {}
note.doable: {}
groupByProperty: note.cluster
swimlaneOrders:
"note.priority\x1fnote.cluster":
- CTO
- Entwickler
- IT Operator
- Persönliche Entwicklung
- Projektmanager
"note.doable\x1fnote.cluster":
- CTO
- Entwickler
- IT Operator
- Persönliche Entwicklung
- Projektmanager
"file.file\x1fnote.cluster":
- CTO
- Entwickler
- IT Operator
- Persönliche Entwicklung
- Projektmanager
collapsedLanes:
"note.priority\x1fnote.cluster": []
"note.doable\x1fnote.cluster": []
"file.file\x1fnote.cluster": []