vault backup: 2025-07-02 14:34:34

This commit is contained in:
fzzinchemical
2025-07-02 14:34:34 +02:00
parent 269b8a31ba
commit c0ae83595f
72 changed files with 208723 additions and 142 deletions

2
.gitignore vendored Executable file
View File

@@ -0,0 +1,2 @@
/Dayplanner
.obsidian/workspace.json

13
.obsidian/app.json vendored Executable file
View File

@@ -0,0 +1,13 @@
{
"newFileLocation": "current",
"showUnsupportedFiles": true,
"attachmentFolderPath": "./",
"pdfExportSettings": {
"includeName": false,
"pageSize": "A4",
"landscape": false,
"margin": "0",
"downscalePercent": 65
},
"alwaysUpdateLinks": true
}

6
.obsidian/appearance.json vendored Executable file
View File

@@ -0,0 +1,6 @@
{
"accentColor": "#8839ef",
"cssTheme": "Catppuccin",
"theme": "system",
"baseFontSize": 26
}

6
.obsidian/community-plugins.json vendored Executable file
View File

@@ -0,0 +1,6 @@
[
"dataview",
"obsidian-checklist-plugin",
"obsidian-git",
"code-styler"
]

30
.obsidian/core-plugins-migration.json vendored Executable file
View File

@@ -0,0 +1,30 @@
{
"file-explorer": true,
"global-search": true,
"switcher": true,
"graph": true,
"backlink": true,
"canvas": true,
"outgoing-link": true,
"tag-pane": true,
"properties": false,
"page-preview": true,
"daily-notes": true,
"templates": true,
"note-composer": true,
"command-palette": true,
"slash-command": false,
"editor-status": true,
"bookmarks": true,
"markdown-importer": false,
"zk-prefixer": false,
"random-note": false,
"outline": true,
"word-count": true,
"slides": false,
"audio-recorder": false,
"workspaces": true,
"file-recovery": true,
"publish": false,
"sync": false
}

31
.obsidian/core-plugins.json vendored Executable file
View File

@@ -0,0 +1,31 @@
{
"file-explorer": true,
"global-search": true,
"switcher": true,
"graph": true,
"backlink": true,
"canvas": true,
"outgoing-link": true,
"tag-pane": true,
"properties": false,
"page-preview": true,
"daily-notes": true,
"templates": true,
"note-composer": true,
"command-palette": true,
"slash-command": false,
"editor-status": true,
"bookmarks": true,
"markdown-importer": false,
"zk-prefixer": false,
"random-note": false,
"outline": true,
"word-count": true,
"slides": false,
"audio-recorder": false,
"workspaces": true,
"file-recovery": true,
"publish": false,
"sync": false,
"webviewer": false
}

30
.obsidian/graph.json vendored Executable file
View File

@@ -0,0 +1,30 @@
{
"collapse-filter": false,
"search": "",
"showTags": true,
"showAttachments": false,
"hideUnresolved": true,
"showOrphans": false,
"collapse-color-groups": false,
"colorGroups": [
{
"query": "tag:Praktikum",
"color": {
"a": 1,
"rgb": 14701138
}
}
],
"collapse-display": false,
"showArrow": false,
"textFadeMultiplier": 0,
"nodeSizeMultiplier": 0.996465696465697,
"lineSizeMultiplier": 0.996465696465697,
"collapse-forces": false,
"centerStrength": 0.518713248970312,
"repelStrength": 10,
"linkStrength": 1,
"linkDistance": 250,
"scale": 0.6283893116394689,
"close": true
}

1
.obsidian/hotkeys.json vendored Executable file
View File

@@ -0,0 +1 @@
{}

457
.obsidian/plugins/code-styler/data.json vendored Executable file
View File

@@ -0,0 +1,457 @@
{
"themes": {
"Default": {
"settings": {
"codeblock": {
"lineNumbers": true,
"unwrapLines": true,
"wrapLinesActive": false,
"curvature": 4
},
"gutter": {
"highlight": true,
"activeLine": false
},
"header": {
"title": {
"textFont": "",
"textBold": false,
"textItalic": true
},
"languageTag": {
"display": "none",
"textFont": "",
"textBold": true,
"textItalic": false
},
"languageIcon": {
"display": "none",
"displayColour": true
},
"externalReference": {
"displayRepository": true,
"displayVersion": true,
"displayTimestamp": true
},
"fontSize": 14,
"foldPlaceholder": ""
},
"highlights": {
"activeCodeblockLine": false,
"activeEditorLine": false
},
"inline": {
"syntaxHighlight": true,
"style": true,
"fontWeight": 4,
"curvature": 6,
"paddingVertical": 5,
"paddingHorizontal": 5,
"marginHorizontal": 0,
"titleFontWeight": 8
},
"advanced": {
"gradientHighlights": false,
"gradientHighlightsColourStop": "70%",
"languageBorderColour": false,
"languageBorderWidth": 5,
"iconSize": 28
}
},
"colours": {
"light": {
"codeblock": {
"backgroundColour": "--code-background",
"textColour": "--code-normal"
},
"gutter": {
"backgroundColour": "--code-background",
"textColour": "--text-faint",
"activeTextColour": "--text-muted"
},
"header": {
"backgroundColour": "--code-background",
"title": {
"textColour": "--code-comment"
},
"languageTag": {
"backgroundColour": "--code-background",
"textColour": "--code-comment"
},
"externalReference": {
"displayRepositoryColour": "#00FFFF",
"displayVersionColour": "#FF00FF",
"displayTimestampColour": "#808080"
},
"lineColour": "--color-base-30"
},
"highlights": {
"activeCodeblockLineColour": "--color-base-30",
"activeEditorLineColour": "--color-base-20",
"defaultColour": "--text-highlight-bg",
"alternativeHighlights": {}
},
"inline": {
"backgroundColour": "--code-background",
"textColour": "--code-normal",
"activeTextColour": "--code-normal",
"titleTextColour": "--code-comment"
},
"advanced": {
"buttonColour": "--text-muted",
"buttonActiveColour": "--text-normal"
}
},
"dark": {
"codeblock": {
"backgroundColour": "--code-background",
"textColour": "--code-normal"
},
"gutter": {
"backgroundColour": "--code-background",
"textColour": "--text-faint",
"activeTextColour": "--text-muted"
},
"header": {
"backgroundColour": "--code-background",
"title": {
"textColour": "--code-comment"
},
"languageTag": {
"backgroundColour": "--code-background",
"textColour": "--code-comment"
},
"externalReference": {
"displayRepositoryColour": "#00FFFF",
"displayVersionColour": "#FF00FF",
"displayTimestampColour": "#808080"
},
"lineColour": "--color-base-30"
},
"highlights": {
"activeCodeblockLineColour": "--color-base-30",
"activeEditorLineColour": "--color-base-20",
"defaultColour": "--text-highlight-bg",
"alternativeHighlights": {}
},
"inline": {
"backgroundColour": "--code-background",
"textColour": "--code-normal",
"activeTextColour": "--code-normal",
"titleTextColour": "--code-comment"
},
"advanced": {
"buttonColour": "--text-muted",
"buttonActiveColour": "--text-normal"
}
}
}
},
"Solarized": {
"settings": {
"codeblock": {
"lineNumbers": true,
"unwrapLines": true,
"wrapLinesActive": false,
"curvature": 4
},
"gutter": {
"highlight": true,
"activeLine": false
},
"header": {
"title": {
"textFont": "",
"textBold": false,
"textItalic": true
},
"languageTag": {
"display": "none",
"textFont": "",
"textBold": true,
"textItalic": false
},
"languageIcon": {
"display": "none",
"displayColour": true
},
"externalReference": {
"displayRepository": true,
"displayVersion": true,
"displayTimestamp": true
},
"fontSize": 14,
"foldPlaceholder": ""
},
"highlights": {
"activeCodeblockLine": false,
"activeEditorLine": false
},
"inline": {
"syntaxHighlight": true,
"style": true,
"fontWeight": 4,
"curvature": 6,
"paddingVertical": 5,
"paddingHorizontal": 5,
"marginHorizontal": 0,
"titleFontWeight": 8
},
"advanced": {
"gradientHighlights": false,
"gradientHighlightsColourStop": "70%",
"languageBorderColour": false,
"languageBorderWidth": 5,
"iconSize": 28
}
},
"colours": {
"light": {
"codeblock": {
"backgroundColour": "#fdf6e3",
"textColour": "#bababa"
},
"gutter": {
"backgroundColour": "#eee8d5",
"textColour": "#6c6c6c",
"activeTextColour": "#8c8c8c"
},
"header": {
"backgroundColour": "#D5CCB4",
"title": {
"textColour": "#866704"
},
"languageTag": {
"backgroundColour": "#B8B5AA",
"textColour": "#C25F30"
},
"externalReference": {
"displayRepositoryColour": "#941100",
"displayVersionColour": "#ff9300",
"displayTimestampColour": "#808080"
},
"lineColour": "#EDD489"
},
"highlights": {
"activeCodeblockLineColour": "#eee8d5",
"activeEditorLineColour": "#60460633",
"defaultColour": "#E9DFBA",
"alternativeHighlights": {}
},
"inline": {
"backgroundColour": "#fdf6e3",
"textColour": "#bababa",
"activeTextColour": "#bababa",
"titleTextColour": "#C25F30"
},
"advanced": {
"buttonColour": "--text-muted",
"buttonActiveColour": "--text-normal"
}
},
"dark": {
"codeblock": {
"backgroundColour": "#002b36",
"textColour": "#bababa"
},
"gutter": {
"backgroundColour": "#073642",
"textColour": "#6c6c6c",
"activeTextColour": "#4c4c4c"
},
"header": {
"backgroundColour": "#0a4554",
"title": {
"textColour": "#dadada"
},
"languageTag": {
"backgroundColour": "#008080",
"textColour": "#000000"
},
"externalReference": {
"displayRepositoryColour": "#00FFFF",
"displayVersionColour": "#9437ff",
"displayTimestampColour": "#808080"
},
"lineColour": "#46cced"
},
"highlights": {
"activeCodeblockLineColour": "#073642",
"activeEditorLineColour": "#468eeb33",
"defaultColour": "#054b5c",
"alternativeHighlights": {}
},
"inline": {
"backgroundColour": "#002b36",
"textColour": "#bababa",
"activeTextColour": "#bababa",
"titleTextColour": "#000000"
},
"advanced": {
"buttonColour": "--text-muted",
"buttonActiveColour": "--text-normal"
}
}
}
}
},
"selectedTheme": "Default",
"currentTheme": {
"settings": {
"codeblock": {
"lineNumbers": true,
"unwrapLines": true,
"wrapLinesActive": false,
"curvature": 4
},
"gutter": {
"highlight": true,
"activeLine": false
},
"header": {
"title": {
"textFont": "",
"textBold": false,
"textItalic": true
},
"languageTag": {
"display": "none",
"textFont": "",
"textBold": true,
"textItalic": false
},
"languageIcon": {
"display": "none",
"displayColour": true
},
"externalReference": {
"displayRepository": true,
"displayVersion": true,
"displayTimestamp": true
},
"fontSize": 14,
"foldPlaceholder": ""
},
"highlights": {
"activeCodeblockLine": false,
"activeEditorLine": false
},
"inline": {
"syntaxHighlight": true,
"style": true,
"fontWeight": 4,
"curvature": 6,
"paddingVertical": 5,
"paddingHorizontal": 5,
"marginHorizontal": 0,
"titleFontWeight": 8
},
"advanced": {
"gradientHighlights": false,
"gradientHighlightsColourStop": "70%",
"languageBorderColour": false,
"languageBorderWidth": 5,
"iconSize": 28
}
},
"colours": {
"light": {
"codeblock": {
"backgroundColour": "--code-background",
"textColour": "--code-normal"
},
"gutter": {
"backgroundColour": "--code-background",
"textColour": "--text-faint",
"activeTextColour": "--text-muted"
},
"header": {
"backgroundColour": "--code-background",
"title": {
"textColour": "--code-comment"
},
"languageTag": {
"backgroundColour": "--code-background",
"textColour": "--code-comment"
},
"externalReference": {
"displayRepositoryColour": "#00FFFF",
"displayVersionColour": "#FF00FF",
"displayTimestampColour": "#808080"
},
"lineColour": "--color-base-30"
},
"highlights": {
"activeCodeblockLineColour": "--color-base-30",
"activeEditorLineColour": "--color-base-20",
"defaultColour": "--text-highlight-bg",
"alternativeHighlights": {}
},
"inline": {
"backgroundColour": "--code-background",
"textColour": "--code-normal",
"activeTextColour": "--code-normal",
"titleTextColour": "--code-comment"
},
"advanced": {
"buttonColour": "--text-muted",
"buttonActiveColour": "--text-normal"
}
},
"dark": {
"codeblock": {
"backgroundColour": "--code-background",
"textColour": "--code-normal"
},
"gutter": {
"backgroundColour": "--code-background",
"textColour": "--text-faint",
"activeTextColour": "--text-muted"
},
"header": {
"backgroundColour": "--code-background",
"title": {
"textColour": "--code-comment"
},
"languageTag": {
"backgroundColour": "--code-background",
"textColour": "--code-comment"
},
"externalReference": {
"displayRepositoryColour": "#00FFFF",
"displayVersionColour": "#FF00FF",
"displayTimestampColour": "#808080"
},
"lineColour": "--color-base-30"
},
"highlights": {
"activeCodeblockLineColour": "--color-base-30",
"activeEditorLineColour": "--color-base-20",
"defaultColour": "--text-highlight-bg",
"alternativeHighlights": {}
},
"inline": {
"backgroundColour": "--code-background",
"textColour": "--code-normal",
"activeTextColour": "--code-normal",
"titleTextColour": "--code-comment"
},
"advanced": {
"buttonColour": "--text-muted",
"buttonActiveColour": "--text-normal"
}
}
}
},
"newTheme": "",
"newHighlight": "",
"exampleCodeblockParameters": "python title:foo",
"exampleCodeblockContent": "print(\"This line is very long and should be used as an example for how the plugin deals with wrapping and unwrapping very long lines given the choice of codeblock parameters and settings.\")\nprint(\"This line is highlighted.\")",
"exampleInlineCode": "{python icon title:foo} print(\"This is inline code\")",
"decoratePrint": true,
"excludedLanguages": "ad-*, reference",
"externalReferenceUpdateOnLoad": false,
"processedCodeblocksWhitelist": "run-*, include",
"redirectLanguages": {},
"version": "1.1.7"
}

20045
.obsidian/plugins/code-styler/main.js vendored Executable file

File diff suppressed because one or more lines are too long

11
.obsidian/plugins/code-styler/manifest.json vendored Executable file
View File

@@ -0,0 +1,11 @@
{
"id": "code-styler",
"name": "Code Styler",
"version": "1.1.7",
"minAppVersion": "0.15.0",
"description": "Style and customize codeblocks and inline code in both editing mode and reading mode.",
"author": "Mayuran Visakan",
"authorUrl": "https://github.com/mayurankv",
"fundingUrl": "https://www.buymeacoffee.com/mayurankv2",
"isDesktopOnly": false
}

View File

@@ -0,0 +1 @@
{}

1348
.obsidian/plugins/code-styler/styles.css vendored Executable file

File diff suppressed because it is too large Load Diff

20404
.obsidian/plugins/dataview/main.js vendored Executable file

File diff suppressed because one or more lines are too long

10
.obsidian/plugins/dataview/manifest.json vendored Executable file
View File

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

146
.obsidian/plugins/dataview/styles.css vendored Executable file
View File

@@ -0,0 +1,146 @@
/** 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;
}
/*****************/
/** Table Views **/
/*****************/
/* List View Default Styling; rendered internally as a table. */
.table-view-table {
width: 100%;
}
.table-view-table > thead > tr, .table-view-table > tbody > tr {
margin-top: 1em;
margin-bottom: 1em;
text-align: left;
}
.table-view-table > tbody > tr:hover {
background-color: var(--table-row-background-hover);
}
.table-view-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%;
}
.table-view-table > tbody > tr > td {
text-align: left;
border: none;
font-weight: 400;
max-width: 100%;
}
.table-view-table ul, .table-view-table ol {
margin-block-start: 0.2em !important;
margin-block-end: 0.2em !important;
}
/** Rendered value styling for any view. */
.dataview-result-list-root-ul {
padding: 0em !important;
margin: 0em !important;
}
.dataview-result-list-ul {
margin-block-start: 0.2em !important;
margin-block-end: 0.2em !important;
}
/** Generic grouping styling. */
.dataview.result-group {
padding-left: 8px;
}
/*******************/
/** Inline Fields **/
/*******************/
.dataview.inline-field-key {
padding-left: 8px;
padding-right: 8px;
font-family: var(--font-monospace);
background-color: var(--background-primary-alt);
color: var(--text-nav-selected);
}
.dataview.inline-field-value {
padding-left: 8px;
padding-right: 8px;
font-family: var(--font-monospace);
background-color: var(--background-secondary-alt);
color: var(--text-nav-selected);
}
.dataview.inline-field-standalone-value {
padding-left: 8px;
padding-right: 8px;
font-family: var(--font-monospace);
background-color: var(--background-secondary-alt);
color: var(--text-nav-selected);
}
/***************/
/** Task View **/
/***************/
.dataview.task-list-item, .dataview.task-list-basic-item {
margin-top: 3px;
margin-bottom: 3px;
transition: 0.4s;
}
.dataview.task-list-item:hover, .dataview.task-list-basic-item:hover {
background-color: var(--text-selection);
box-shadow: -40px 0 0 var(--text-selection);
cursor: pointer;
}
/*****************/
/** Error Views **/
/*****************/
div.dataview-error-box {
width: 100%;
min-height: 150px;
display: flex;
align-items: center;
justify-content: center;
border: 4px dashed var(--background-secondary);
}
.dataview-error-message {
color: var(--text-muted);
text-align: center;
}
/*************************/
/** Additional Metadata **/
/*************************/
.dataview.small-text {
font-size: smaller;
color: var(--text-muted);
margin-left: 3px;
}
.dataview.small-text::before {
content: "(";
}
.dataview.small-text::after {
content: ")";
}

3
.obsidian/plugins/excalibrain/main.js vendored Executable file

File diff suppressed because one or more lines are too long

10
.obsidian/plugins/excalibrain/manifest.json vendored Executable file
View File

@@ -0,0 +1,10 @@
{
"id": "excalibrain",
"name": "ExcaliBrain",
"version": "0.2.12",
"minAppVersion": "1.1.6",
"description": "A clean, intuitive and editable graph view for Obsidian",
"author": "Zsolt Viczian",
"authorUrl": "https://zsolt.blog",
"isDesktopOnly": false
}

349
.obsidian/plugins/excalibrain/styles.css vendored Executable file
View File

@@ -0,0 +1,349 @@
/* Sets all the text color to red! */
.excalibrain-warning {
background-color: var(--text-highlight-bg);
color: var(--text-normal);
}
.excalibrain-prompt-center {
text-align: center;
}
.excalibrain-contentEl div.Island,
.excalibrain-contentEl button.help-icon {
display:none;
}
.excalibrain-contentEl {
overflow: hidden !important;
position: relative;
}
/* -----------
TOOLS PANEL
------------ */
.excalibrain-toolspanel-wrapper {
z-index: 3;
position: absolute;
top: 0.6em;
padding-left: 0.6em;
/* Set width to auto to fit its content */
width: 100%;
padding-right: 0.6em;
pointer-events: none;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.excalibrain-dropdown-wrapper,
.excalibrain-buttons {
pointer-events: none;
margin-top: 0.3em;
max-width: 37em;
justify-content: space-between;
}
.excalibrain-searchinput {
width: 26em;
vertical-align: middle;
pointer-events: all;
}
.excalibrain-buttons {
margin-left: -0.3em;
display: flex;
float: right;
flex: 1 0 30em;
}
.excalibrain-toolspanel-divider {
width: 0.15em;
background-color: var(--default-border-color);
margin-left: 0.5em;
margin-right: 0.2em;
}
.excalibrain-button {
pointer-events: all;
vertical-align: middle;
padding-left: 0.3em;
padding-right: 0.3em;
margin-left: 0.3em !important;
margin-right: 0px !important;
width: 2.4em !important;
justify-content: center !important;
box-shadow: none;
transition: box-shadow 0.3s ease;
}
.excalibrain-button.off {
background-color: var(--island-bg-color);
}
.excalibrain-button.on {
background-color: var(--color-primary-darker);
}
.excalibrain-button:hover {
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.4);
}
.excalibrain-button:active {
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.6);
}
.excalibrain-button.disabled {
background-color: var(--island-bg-color);
pointer-events: none;
opacity: 0.5;
cursor: not-allowed;
}
/* -----------
HISTORY
------------ */
.excalibrain-history-wrapper {
z-index: 3;
position: absolute;
bottom: 0px;
padding-left: 7rem;
padding-bottom: 10px;
width: 100%;
padding-right: 10px;
overflow: hidden;
}
.excalibrain-history-container {
overflow-y: hidden;
display: -webkit-box;
overflow-x: scroll;
padding-left: 0.5em;
background-color: #00000030;
}
.excalibrain-history-divider {
color: gold;
margin-left: 5px;
margin-right: 5px;
font-size: smaller;
}
.excalibrain-history-item {
cursor: pointer;
color: silver;
font-size: smaller;
}
/* -----------
SETTINGS
------------ */
.excalibrain-settings-folding-L1 {
font-size: large;
font-weight: bold;
color: var(--text-title-h3);
}
.excalibrain-settings-h1 {
color: var(--text-title-h1);
}
.excalibrain-setting-style-section {
padding-left: 30px;
border-left: 10px solid var(--background-modifier-border);
}
.excalibrain-settings-demoimg {
max-width: 400px;
}
.excalibrain-setting-nameEl {
min-width: 10em;
max-width: 20em;
}
.excalibrain-setting-descEl {
min-width: 10em;
max-width: 20em;
}
.excalibrain-setting-controlEl {
width: 90%;
}
.excalibrain-settings-colorlabel {
padding-right: 5px;
min-width: 3em;
}
.excalibrain-settings-colorpicker {
max-width: 32px;
min-width: 32px;
width: 32px !important;
}
.excalibrain-settings-opacitylabel {
padding-right: 5px;
padding-left: 10px;
min-width: 5em;
}
.excalibrain-settings-sliderlabel {
min-width: 2em;
text-align: right;
}
.excalibrain-settings-toggle {
min-width: 2em;
margin-right: 5px;
}
.excalibrain-dropdown-wrapper {
display: inline-flex;
}
/* -----------
MULTISELECT
------------ */
.multiselect-container {
padding-left: 0.3em;
width:14.2em;
pointer-events: all;
}
.multiselect-container * {
box-sizing:border-box;
}
.multiselect-container .multiselect-header {
width:100%;
margin-bottom:6px;
}
.multiselect-container .multiselect-wrapper {
position:relative;
width:100%;
height:30px;
background: var(--island-bg-color); /*var(--background-modifier-form-field);*/
border:1px solid var(--background-modifier-border);
display:flex;
align-items:center;
padding:0 8px;
cursor:pointer
}
.multiselect-container .multiselect-wrapper:after {
content:"";
position:absolute;
width:8px;
height:8px;
right:12px;
top:8px;
border-right:2px solid var(--text-normal);
border-top:2px solid var(--text-normal);
transform:rotate(135deg);
transform-origin:center center;
transition:all .2s ease-in-out;
}
.multiselect-container .multiselect-wrapper .selected-value {
padding-right:30px;
text-overflow:ellipsis;
overflow:hidden;
white-space:nowrap;
}
.multiselect-container .multiselect-wrapper .options-wrapper {
position:absolute;
top:100%;
left:0;
width:100%;
max-height:300px;
overflow:auto;
background-color:var(--background-secondary);
border:1px solid var(--background-modifier-border);
display:none;
flex-direction:column;
}
.multiselect-container .multiselect-wrapper .option:hover {
cursor:pointer;
background-color:rgba(0,0,0,0.1);
}
.multiselect-container .multiselect-wrapper .option-text {
display:none;
padding:6px 12px;
}
.multiselect-container .multiselect-wrapper .checkbox-wrapper {
display:flex;
align-items:center;min-height:19px;
position:relative;
padding:6px 12px 6px 36px;
cursor:pointer;
-webkit-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
user-select:none;
}
.multiselect-container .multiselect-wrapper .checkbox-wrapper .checkbox-checkmark {
position:absolute;
top:6px;
left:6px;
height:19px;
width:19px;
background-color:#eee;
border-radius:4px;
border:1px solid #000;
}
.multiselect-container .multiselect-wrapper .checkbox-wrapper .checkbox-checkmark:after {
content:'';
position:absolute;display:none;
left:6px;
top:2px;
width:4px;
height:8px;
border:solid white;
border-width:0 2px 2px 0;
transform:rotate(45deg);
}
.multiselect-container .multiselect-wrapper .checkbox-wrapper input {
position:absolute;
opacity:0;
cursor:pointer;
height:0;
width:0;
}
.multiselect-container .multiselect-wrapper .checkbox-wrapper input:checked ~ .checkbox-checkmark {
background-color:#2196F3;
}
.multiselect-container .multiselect-wrapper .checkbox-wrapper input:checked ~ .checkbox-checkmark:after {
display:block;
}
.multiselect-container .multiselect-wrapper.single-select .checkbox-wrapper {
display:none;
}
.multiselect-container .multiselect-wrapper.single-select .option-text {
display:block;
}
.multiselect-container .multiselect-wrapper.single-select .option-text.selected {
background-color:#2196F3;
}
.multiselect-container .multiselect-wrapper.opened:after {
top:12px;
transform:rotate(315deg);
}
.multiselect-container .multiselect-wrapper.opened .options-wrapper {
display:flex;
}

36358
.obsidian/plugins/obsidian-annotator/main.js vendored Executable file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
{
"id": "obsidian-annotator",
"name": "Annotator",
"version": "0.2.11",
"minAppVersion": "1.0.3",
"description": "This is a sample plugin for Obsidian. It allows you to open and annotate PDF and EPUB files.",
"author": "Obsidian",
"authorUrl": "https://obsidian.md/about",
"isDesktopOnly": false
}

View File

@@ -0,0 +1,17 @@
{
"todoPageName": "todo",
"showChecked": false,
"showAllTodos": true,
"autoRefresh": true,
"subGroups": false,
"groupBy": "page",
"sortDirectionItems": "new->old",
"sortDirectionGroups": "new->old",
"sortDirectionSubGroups": "new->old",
"includeFiles": "",
"lookAndFeel": "classic",
"_collapsedSections": [
"2024-06-21.md"
],
"_hiddenTags": []
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,9 @@
{
"id": "obsidian-checklist-plugin",
"name": "Checklist",
"version": "2.2.13",
"minAppVersion": "0.14.5",
"description": "Combines checklists across pages into users sidebar",
"author": "delashum",
"isDesktopOnly": false
}

View File

@@ -0,0 +1,51 @@
/* no content */
.checklist-plugin-main {
--checklist-checkboxSize: 20px;
--checklist-checkboxCheckedSize: 12px;
--checklist-checkboxBorder: 2px solid var(--text-muted);
--checklist-checkboxFill: var(--text-muted);
--checklist-listItemBorderRadius: 8px;
--checklist-listItemMargin: 0 0 12px;
--checklist-listItemBackground: var(--interactive-normal);
--checklist-listItemBackground--hover: var(--interactive-hover);
--checklist-listItemMargin--compact: 0 0 8px;
--checklist-listItemBoxShadow: none;
--checklist-headerMargin: 0 0 8px;
--checklist-headerGap: 4px;
--checklist-headerFontSize: 18px;
--checklist-headerFontWeight: 600;
--checklist-iconSize: 24px;
--checklist-iconFill: var(--text-normal);
--checklist-iconFill--accent: #777;
--checklist-textColor: var(--text-muted);
--checklist-accentColor: var(--text-accent);
--checklist-accentColor--active: var(--text-accent-hover);
--checklist-pageMargin: 0 0 4px;
--checklist-loaderSize: 16px;
--checklist-loaderBorderColor: var(--text-muted) var(--text-muted)
var(--text-normal);
--checklist-buttonPadding: 0 5px;
--checklist-buttonBoxShadow: none;
--checklist-countPadding: 0 6px;
--checklist-countBackground: var(--interactive-normal);
--checklist-countFontSize: 13px;
--checklist-togglePadding: 8px 8px 8px 12px;
--checklist-contentPadding: 8px 12px 8px 0;
--checklist-contentPadding--compact: 4px 8px;
--checklist-togglePadding--compact: 4px 8px;
--checklist-countBorderRadius: 4px;
--checklist-tagBaseColor: var(--text-faint);
--checklist-tagSubColor: #bbb;
--checklist-groupMargin: 8px;
--checklist-contentFontSize: var(--editor-font-size);
--checklist-searchBackground: var(--background-primary);
}
.checklist-plugin-main button {
margin: initial;
}
.checklist-plugin-main p {
margin: initial;
word-break: break-word;
}

View File

@@ -0,0 +1,28 @@
{
"snapStepMinutes": 10,
"progressIndicator": "bar",
"showTaskNotification": false,
"zoomLevel": 2,
"timelineIcon": "calendar-with-checkmark",
"endLabel": "All done",
"startHour": 6,
"timelineDateFormat": "YYYY-MM-DD",
"centerNeedle": false,
"plannerHeading": "Day planner",
"plannerHeadingLevel": 1,
"timelineColored": false,
"timelineStartColor": "#006466",
"timelineEndColor": "#4d194d",
"timestampFormat": "HH:mm",
"hourFormat": "H",
"dataviewSource": "",
"showDataviewMigrationWarning": false,
"extendDurationUntilNext": false,
"defaultDurationMinutes": 30,
"showTimestampInTaskBlock": false,
"unscheduledTasksHeight": 100,
"showUncheduledTasks": true,
"showUnscheduledNestedTasks": true,
"showNow": true,
"showNext": true
}

38089
.obsidian/plugins/obsidian-day-planner/main.js vendored Executable file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,11 @@
{
"id": "obsidian-day-planner",
"name": "Day Planner",
"version": "0.16.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
}

View File

@@ -0,0 +1,471 @@
/* src/styles.scss */
.progress-pie {
width: 60px;
height: 60px;
border-radius: 50%;
background: #eee;
background-image: linear-gradient(to right, transparent 50%, #4CC9D8 0);
position: relative;
display: inline-block;
}
.progress-pie::before {
content: "";
display: block;
margin-left: 50%;
height: 100%;
border-radius: 0 100% 100% 0/50%;
background-color: inherit;
transform-origin: left;
}
.progress-pie::after {
content: attr(data-value);
position: absolute;
width: 70%;
height: 70%;
margin: auto;
border-radius: 50%;
background-color: #fff;
left: 0;
right: 0;
top: 0;
bottom: 0;
text-align: center;
font: 900 20px/41px Tahoma;
}
.progress-pie[data-value="0"]:before {
transform: rotate(0turn);
}
.progress-pie[data-value="1"]:before {
transform: rotate(0.01turn);
}
.progress-pie[data-value="2"]:before {
transform: rotate(0.02turn);
}
.progress-pie[data-value="3"]:before {
transform: rotate(0.03turn);
}
.progress-pie[data-value="4"]:before {
transform: rotate(0.04turn);
}
.progress-pie[data-value="5"]:before {
transform: rotate(0.05turn);
}
.progress-pie[data-value="6"]:before {
transform: rotate(0.06turn);
}
.progress-pie[data-value="7"]:before {
transform: rotate(0.07turn);
}
.progress-pie[data-value="8"]:before {
transform: rotate(0.08turn);
}
.progress-pie[data-value="9"]:before {
transform: rotate(0.09turn);
}
.progress-pie[data-value="10"]:before {
transform: rotate(0.1turn);
}
.progress-pie[data-value="11"]:before {
transform: rotate(0.11turn);
}
.progress-pie[data-value="12"]:before {
transform: rotate(0.12turn);
}
.progress-pie[data-value="13"]:before {
transform: rotate(0.13turn);
}
.progress-pie[data-value="14"]:before {
transform: rotate(0.14turn);
}
.progress-pie[data-value="15"]:before {
transform: rotate(0.15turn);
}
.progress-pie[data-value="16"]:before {
transform: rotate(0.16turn);
}
.progress-pie[data-value="17"]:before {
transform: rotate(0.17turn);
}
.progress-pie[data-value="18"]:before {
transform: rotate(0.18turn);
}
.progress-pie[data-value="19"]:before {
transform: rotate(0.19turn);
}
.progress-pie[data-value="20"]:before {
transform: rotate(0.2turn);
}
.progress-pie[data-value="21"]:before {
transform: rotate(0.21turn);
}
.progress-pie[data-value="22"]:before {
transform: rotate(0.22turn);
}
.progress-pie[data-value="23"]:before {
transform: rotate(0.23turn);
}
.progress-pie[data-value="24"]:before {
transform: rotate(0.24turn);
}
.progress-pie[data-value="25"]:before {
transform: rotate(0.25turn);
}
.progress-pie[data-value="26"]:before {
transform: rotate(0.26turn);
}
.progress-pie[data-value="27"]:before {
transform: rotate(0.27turn);
}
.progress-pie[data-value="28"]:before {
transform: rotate(0.28turn);
}
.progress-pie[data-value="29"]:before {
transform: rotate(0.29turn);
}
.progress-pie[data-value="30"]:before {
transform: rotate(0.3turn);
}
.progress-pie[data-value="31"]:before {
transform: rotate(0.31turn);
}
.progress-pie[data-value="32"]:before {
transform: rotate(0.32turn);
}
.progress-pie[data-value="33"]:before {
transform: rotate(0.33turn);
}
.progress-pie[data-value="34"]:before {
transform: rotate(0.34turn);
}
.progress-pie[data-value="35"]:before {
transform: rotate(0.35turn);
}
.progress-pie[data-value="36"]:before {
transform: rotate(0.36turn);
}
.progress-pie[data-value="37"]:before {
transform: rotate(0.37turn);
}
.progress-pie[data-value="38"]:before {
transform: rotate(0.38turn);
}
.progress-pie[data-value="39"]:before {
transform: rotate(0.39turn);
}
.progress-pie[data-value="40"]:before {
transform: rotate(0.4turn);
}
.progress-pie[data-value="41"]:before {
transform: rotate(0.41turn);
}
.progress-pie[data-value="42"]:before {
transform: rotate(0.42turn);
}
.progress-pie[data-value="43"]:before {
transform: rotate(0.43turn);
}
.progress-pie[data-value="44"]:before {
transform: rotate(0.44turn);
}
.progress-pie[data-value="45"]:before {
transform: rotate(0.45turn);
}
.progress-pie[data-value="46"]:before {
transform: rotate(0.46turn);
}
.progress-pie[data-value="47"]:before {
transform: rotate(0.47turn);
}
.progress-pie[data-value="48"]:before {
transform: rotate(0.48turn);
}
.progress-pie[data-value="49"]:before {
transform: rotate(0.49turn);
}
.progress-pie[data-value="50"]:before {
transform: rotate(0.5turn);
}
.progress-pie[data-value="51"]:before {
background-color: #4CC9D8;
transform: rotate(0.01turn);
}
.progress-pie[data-value="52"]:before {
background-color: #4CC9D8;
transform: rotate(0.02turn);
}
.progress-pie[data-value="53"]:before {
background-color: #4CC9D8;
transform: rotate(0.03turn);
}
.progress-pie[data-value="54"]:before {
background-color: #4CC9D8;
transform: rotate(0.04turn);
}
.progress-pie[data-value="55"]:before {
background-color: #4CC9D8;
transform: rotate(0.05turn);
}
.progress-pie[data-value="56"]:before {
background-color: #4CC9D8;
transform: rotate(0.06turn);
}
.progress-pie[data-value="57"]:before {
background-color: #4CC9D8;
transform: rotate(0.07turn);
}
.progress-pie[data-value="58"]:before {
background-color: #4CC9D8;
transform: rotate(0.08turn);
}
.progress-pie[data-value="59"]:before {
background-color: #4CC9D8;
transform: rotate(0.09turn);
}
.progress-pie[data-value="60"]:before {
background-color: #4CC9D8;
transform: rotate(0.1turn);
}
.progress-pie[data-value="61"]:before {
background-color: #4CC9D8;
transform: rotate(0.11turn);
}
.progress-pie[data-value="62"]:before {
background-color: #4CC9D8;
transform: rotate(0.12turn);
}
.progress-pie[data-value="63"]:before {
background-color: #4CC9D8;
transform: rotate(0.13turn);
}
.progress-pie[data-value="64"]:before {
background-color: #4CC9D8;
transform: rotate(0.14turn);
}
.progress-pie[data-value="65"]:before {
background-color: #4CC9D8;
transform: rotate(0.15turn);
}
.progress-pie[data-value="66"]:before {
background-color: #4CC9D8;
transform: rotate(0.16turn);
}
.progress-pie[data-value="67"]:before {
background-color: #4CC9D8;
transform: rotate(0.17turn);
}
.progress-pie[data-value="68"]:before {
background-color: #4CC9D8;
transform: rotate(0.18turn);
}
.progress-pie[data-value="69"]:before {
background-color: #4CC9D8;
transform: rotate(0.19turn);
}
.progress-pie[data-value="70"]:before {
background-color: #4CC9D8;
transform: rotate(0.2turn);
}
.progress-pie[data-value="71"]:before {
background-color: #4CC9D8;
transform: rotate(0.21turn);
}
.progress-pie[data-value="72"]:before {
background-color: #4CC9D8;
transform: rotate(0.22turn);
}
.progress-pie[data-value="73"]:before {
background-color: #4CC9D8;
transform: rotate(0.23turn);
}
.progress-pie[data-value="74"]:before {
background-color: #4CC9D8;
transform: rotate(0.24turn);
}
.progress-pie[data-value="75"]:before {
background-color: #4CC9D8;
transform: rotate(0.25turn);
}
.progress-pie[data-value="76"]:before {
background-color: #4CC9D8;
transform: rotate(0.26turn);
}
.progress-pie[data-value="77"]:before {
background-color: #4CC9D8;
transform: rotate(0.27turn);
}
.progress-pie[data-value="78"]:before {
background-color: #4CC9D8;
transform: rotate(0.28turn);
}
.progress-pie[data-value="79"]:before {
background-color: #4CC9D8;
transform: rotate(0.29turn);
}
.progress-pie[data-value="80"]:before {
background-color: #4CC9D8;
transform: rotate(0.3turn);
}
.progress-pie[data-value="81"]:before {
background-color: #4CC9D8;
transform: rotate(0.31turn);
}
.progress-pie[data-value="82"]:before {
background-color: #4CC9D8;
transform: rotate(0.32turn);
}
.progress-pie[data-value="83"]:before {
background-color: #4CC9D8;
transform: rotate(0.33turn);
}
.progress-pie[data-value="84"]:before {
background-color: #4CC9D8;
transform: rotate(0.34turn);
}
.progress-pie[data-value="85"]:before {
background-color: #4CC9D8;
transform: rotate(0.35turn);
}
.progress-pie[data-value="86"]:before {
background-color: #4CC9D8;
transform: rotate(0.36turn);
}
.progress-pie[data-value="87"]:before {
background-color: #4CC9D8;
transform: rotate(0.37turn);
}
.progress-pie[data-value="88"]:before {
background-color: #4CC9D8;
transform: rotate(0.38turn);
}
.progress-pie[data-value="89"]:before {
background-color: #4CC9D8;
transform: rotate(0.39turn);
}
.progress-pie[data-value="90"]:before {
background-color: #4CC9D8;
transform: rotate(0.4turn);
}
.progress-pie[data-value="91"]:before {
background-color: #4CC9D8;
transform: rotate(0.41turn);
}
.progress-pie[data-value="92"]:before {
background-color: #4CC9D8;
transform: rotate(0.42turn);
}
.progress-pie[data-value="93"]:before {
background-color: #4CC9D8;
transform: rotate(0.43turn);
}
.progress-pie[data-value="94"]:before {
background-color: #4CC9D8;
transform: rotate(0.44turn);
}
.progress-pie[data-value="95"]:before {
background-color: #4CC9D8;
transform: rotate(0.45turn);
}
.progress-pie[data-value="96"]:before {
background-color: #4CC9D8;
transform: rotate(0.46turn);
}
.progress-pie[data-value="97"]:before {
background-color: #4CC9D8;
transform: rotate(0.47turn);
}
.progress-pie[data-value="98"]:before {
background-color: #4CC9D8;
transform: rotate(0.48turn);
}
.progress-pie[data-value="99"]:before {
background-color: #4CC9D8;
transform: rotate(0.49turn);
}
.progress-pie[data-value="100"]:before {
background-color: #4CC9D8;
transform: rotate(0.5turn);
}
@keyframes pulse {
from {
opacity: 0.8;
}
to {
opacity: 0.2;
}
}
.day-planner {
position: relative;
}
.day-planner .status-bar-item-segment:hover {
cursor: pointer;
}
.status-bar-item.plugin-obsidian-day-planner {
display: flex;
gap: var(--size-2-2);
}
.day-planner-progress-bar {
overflow: hidden;
display: flex;
align-items: stretch;
align-self: stretch;
min-width: 100px;
background-color: var(--text-faint);
border-radius: var(--radius-s);
}
.day-planner-progress-value {
background-color: var(--color-accent);
}
.day-planner-progress-value.green,
.day-planner .progress-pie.green::before {
background-color: #4caf50;
}
.day-planner .progress-pie.green {
background-image: linear-gradient(to right, transparent 50%, #4caf50 0);
}
.day-planner-status-bar-text {
float: left;
margin-right: 10px;
}
.day-planner-status-card {
position: absolute;
top: -140px;
display: none;
width: 300px;
padding: 8px;
background-color: var(--background-secondary-alt);
border-radius: 4px;
}
.day-planner-status-card .arrow-down {
position: absolute;
width: 20px;
border-top: 20px solid var(--background-secondary-alt);
border-right: 20px solid transparent;
border-left: 20px solid transparent;
}
.progress-pie.day-planner {
width: 20px;
height: 20px;
}
.progress-pie.day-planner::after {
width: 80%;
height: 80%;
}
.progress-pie.day-planner::after {
font-size: 8px;
font-weight: 900;
line-height: 13px;
color: transparent;
background-color: transparent;
}
[data-type=timeline] .view-content,
[data-type=weekly] .view-content {
--time-ruler-width: 30px;
display: flex;
flex-direction: column;
padding: 0;
}
.absolute-stretch-x {
position: absolute;
right: 0;
left: 0;
}

View File

@@ -0,0 +1,728 @@
{
"folder": "Excalidraw",
"embedUseExcalidrawFolder": false,
"templateFilePath": "Excalidraw/Template.excalidraw",
"scriptFolderPath": "Excalidraw/Scripts",
"compress": false,
"autosave": true,
"autosaveInterval": 15000,
"autosaveIntervalDesktop": 15000,
"autosaveIntervalMobile": 10000,
"drawingFilenamePrefix": "Drawing ",
"drawingEmbedPrefixWithFilename": true,
"drawingFilnameEmbedPostfix": " ",
"drawingFilenameDateTime": "YYYY-MM-DD HH.mm.ss",
"useExcalidrawExtension": true,
"previewImageType": "SVGIMG",
"allowImageCache": true,
"displayExportedImageIfAvailable": false,
"previewMatchObsidianTheme": false,
"width": "400",
"dynamicStyling": "colorful",
"isLeftHanded": false,
"iframeMatchExcalidrawTheme": true,
"matchTheme": false,
"matchThemeAlways": false,
"matchThemeTrigger": false,
"defaultMode": "normal",
"defaultPenMode": "never",
"allowPinchZoom": false,
"allowWheelZoom": false,
"zoomToFitOnOpen": true,
"zoomToFitOnResize": true,
"zoomToFitMaxLevel": 2,
"linkPrefix": "📍",
"urlPrefix": "🌐",
"parseTODO": false,
"todo": "☐",
"done": "🗹",
"hoverPreviewWithoutCTRL": false,
"linkOpacity": 1,
"openInAdjacentPane": false,
"openInMainWorkspace": true,
"showLinkBrackets": true,
"allowCtrlClick": true,
"forceWrap": false,
"pageTransclusionCharLimit": 200,
"wordWrappingDefault": 0,
"removeTransclusionQuoteSigns": true,
"iframelyAllowed": true,
"pngExportScale": 1,
"exportWithTheme": true,
"exportWithBackground": true,
"exportPaddingSVG": 10,
"keepInSync": false,
"autoexportSVG": false,
"autoexportPNG": false,
"autoExportLightAndDark": false,
"autoexportExcalidraw": false,
"embedType": "excalidraw",
"embedMarkdownCommentLinks": true,
"embedWikiLink": true,
"syncExcalidraw": false,
"experimentalFileType": false,
"experimentalFileTag": "✏️",
"experimentalLivePreview": true,
"experimentalEnableFourthFont": false,
"experimantalFourthFont": "Virgil",
"fieldSuggester": true,
"compatibilityMode": false,
"drawingOpenCount": 0,
"library": "deprecated",
"library2": {
"type": "excalidrawlib",
"version": 2,
"source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.0.18",
"libraryItems": []
},
"imageElementNotice": true,
"mdSVGwidth": 500,
"mdSVGmaxHeight": 800,
"mdFont": "Virgil",
"mdFontColor": "Black",
"mdBorderColor": "Black",
"mdCSS": "",
"scriptEngineSettings": {},
"defaultTrayMode": true,
"previousRelease": "2.0.18",
"showReleaseNotes": true,
"showNewVersionNotification": true,
"latexBoilerplate": "\\color{blue}",
"taskboneEnabled": false,
"taskboneAPIkey": "",
"pinnedScripts": [],
"customPens": [
{
"type": "default",
"freedrawOnly": false,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"fillStyle": "hachure",
"strokeWidth": 0,
"roughness": 0,
"penOptions": {
"highlighter": false,
"constantPressure": false,
"hasOutline": false,
"outlineWidth": 1,
"options": {
"thinning": 0.6,
"smoothing": 0.5,
"streamline": 0.5,
"easing": "easeOutSine",
"start": {
"cap": true,
"taper": 0,
"easing": "linear"
},
"end": {
"cap": true,
"taper": 0,
"easing": "linear"
}
}
}
},
{
"type": "highlighter",
"freedrawOnly": true,
"strokeColor": "#FFC47C",
"backgroundColor": "#FFC47C",
"fillStyle": "solid",
"strokeWidth": 2,
"roughness": null,
"penOptions": {
"highlighter": true,
"constantPressure": true,
"hasOutline": true,
"outlineWidth": 4,
"options": {
"thinning": 1,
"smoothing": 0.5,
"streamline": 0.5,
"easing": "linear",
"start": {
"taper": 0,
"cap": true,
"easing": "linear"
},
"end": {
"taper": 0,
"cap": true,
"easing": "linear"
}
}
}
},
{
"type": "finetip",
"freedrawOnly": false,
"strokeColor": "#3E6F8D",
"backgroundColor": "transparent",
"fillStyle": "hachure",
"strokeWidth": 0.5,
"roughness": 0,
"penOptions": {
"highlighter": false,
"hasOutline": false,
"outlineWidth": 1,
"constantPressure": true,
"options": {
"smoothing": 0.4,
"thinning": -0.5,
"streamline": 0.4,
"easing": "linear",
"start": {
"taper": 5,
"cap": false,
"easing": "linear"
},
"end": {
"taper": 5,
"cap": false,
"easing": "linear"
}
}
}
},
{
"type": "fountain",
"freedrawOnly": false,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"fillStyle": "hachure",
"strokeWidth": 2,
"roughness": 0,
"penOptions": {
"highlighter": false,
"constantPressure": false,
"hasOutline": false,
"outlineWidth": 1,
"options": {
"smoothing": 0.2,
"thinning": 0.6,
"streamline": 0.2,
"easing": "easeInOutSine",
"start": {
"taper": 150,
"cap": true,
"easing": "linear"
},
"end": {
"taper": 1,
"cap": true,
"easing": "linear"
}
}
}
},
{
"type": "marker",
"freedrawOnly": true,
"strokeColor": "#B83E3E",
"backgroundColor": "#FF7C7C",
"fillStyle": "dashed",
"strokeWidth": 2,
"roughness": 3,
"penOptions": {
"highlighter": false,
"constantPressure": true,
"hasOutline": true,
"outlineWidth": 4,
"options": {
"thinning": 1,
"smoothing": 0.5,
"streamline": 0.5,
"easing": "linear",
"start": {
"taper": 0,
"cap": true,
"easing": "linear"
},
"end": {
"taper": 0,
"cap": true,
"easing": "linear"
}
}
}
},
{
"type": "thick-thin",
"freedrawOnly": true,
"strokeColor": "#CECDCC",
"backgroundColor": "transparent",
"fillStyle": "hachure",
"strokeWidth": 0,
"roughness": null,
"penOptions": {
"highlighter": true,
"constantPressure": true,
"hasOutline": false,
"outlineWidth": 1,
"options": {
"thinning": 1,
"smoothing": 0.5,
"streamline": 0.5,
"easing": "linear",
"start": {
"taper": 0,
"cap": true,
"easing": "linear"
},
"end": {
"cap": true,
"taper": true,
"easing": "linear"
}
}
}
},
{
"type": "thin-thick-thin",
"freedrawOnly": true,
"strokeColor": "#CECDCC",
"backgroundColor": "transparent",
"fillStyle": "hachure",
"strokeWidth": 0,
"roughness": null,
"penOptions": {
"highlighter": true,
"constantPressure": true,
"hasOutline": false,
"outlineWidth": 1,
"options": {
"thinning": 1,
"smoothing": 0.5,
"streamline": 0.5,
"easing": "linear",
"start": {
"cap": true,
"taper": true,
"easing": "linear"
},
"end": {
"cap": true,
"taper": true,
"easing": "linear"
}
}
}
},
{
"type": "default",
"freedrawOnly": false,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"fillStyle": "hachure",
"strokeWidth": 0,
"roughness": 0,
"penOptions": {
"highlighter": false,
"constantPressure": false,
"hasOutline": false,
"outlineWidth": 1,
"options": {
"thinning": 0.6,
"smoothing": 0.5,
"streamline": 0.5,
"easing": "easeOutSine",
"start": {
"cap": true,
"taper": 0,
"easing": "linear"
},
"end": {
"cap": true,
"taper": 0,
"easing": "linear"
}
}
}
},
{
"type": "default",
"freedrawOnly": false,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"fillStyle": "hachure",
"strokeWidth": 0,
"roughness": 0,
"penOptions": {
"highlighter": false,
"constantPressure": false,
"hasOutline": false,
"outlineWidth": 1,
"options": {
"thinning": 0.6,
"smoothing": 0.5,
"streamline": 0.5,
"easing": "easeOutSine",
"start": {
"cap": true,
"taper": 0,
"easing": "linear"
},
"end": {
"cap": true,
"taper": 0,
"easing": "linear"
}
}
}
},
{
"type": "default",
"freedrawOnly": false,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"fillStyle": "hachure",
"strokeWidth": 0,
"roughness": 0,
"penOptions": {
"highlighter": false,
"constantPressure": false,
"hasOutline": false,
"outlineWidth": 1,
"options": {
"thinning": 0.6,
"smoothing": 0.5,
"streamline": 0.5,
"easing": "easeOutSine",
"start": {
"cap": true,
"taper": 0,
"easing": "linear"
},
"end": {
"cap": true,
"taper": 0,
"easing": "linear"
}
}
}
}
],
"numberOfCustomPens": 0,
"pdfScale": 4,
"pdfBorderBox": true,
"pdfGapSize": 20,
"pdfGroupPages": false,
"pdfLockAfterImport": true,
"pdfNumColumns": 1,
"pdfNumRows": 1,
"pdfDirection": "right",
"pdfImportScale": 0.3,
"laserSettings": {
"DECAY_LENGTH": 50,
"DECAY_TIME": 1000,
"COLOR": "#ff0000"
},
"embeddableMarkdownDefaults": {
"useObsidianDefaults": false,
"backgroundMatchCanvas": false,
"backgroundMatchElement": true,
"backgroundColor": "#fff",
"backgroundOpacity": 60,
"borderMatchElement": true,
"borderColor": "#fff",
"borderOpacity": 0,
"filenameVisible": false
},
"canvasImmersiveEmbed": true,
"startupScriptPath": "",
"openAIAPIToken": "",
"openAIDefaultTextModel": "gpt-3.5-turbo-1106",
"openAIDefaultVisionModel": "gpt-4-vision-preview",
"openAIDefaultImageGenerationModel": "dall-e-3",
"openAIURL": "https://api.openai.com/v1/chat/completions",
"openAIImageGenerationURL": "https://api.openai.com/v1/images/generations",
"openAIImageEditsURL": "https://api.openai.com/v1/images/edits",
"openAIImageVariationURL": "https://api.openai.com/v1/images/variations",
"modifierKeyConfig": {
"Mac": {
"LocalFileDragAction": {
"defaultAction": "image-import",
"rules": [
{
"shift": false,
"ctrl_cmd": false,
"alt_opt": false,
"meta_ctrl": false,
"result": "image-import"
},
{
"shift": true,
"ctrl_cmd": false,
"alt_opt": true,
"meta_ctrl": false,
"result": "link"
},
{
"shift": true,
"ctrl_cmd": false,
"alt_opt": false,
"meta_ctrl": false,
"result": "image-url"
},
{
"shift": false,
"ctrl_cmd": false,
"alt_opt": true,
"meta_ctrl": false,
"result": "embeddable"
}
]
},
"WebBrowserDragAction": {
"defaultAction": "image-url",
"rules": [
{
"shift": false,
"ctrl_cmd": false,
"alt_opt": false,
"meta_ctrl": false,
"result": "image-url"
},
{
"shift": true,
"ctrl_cmd": false,
"alt_opt": true,
"meta_ctrl": false,
"result": "link"
},
{
"shift": false,
"ctrl_cmd": false,
"alt_opt": true,
"meta_ctrl": false,
"result": "embeddable"
},
{
"shift": true,
"ctrl_cmd": false,
"alt_opt": false,
"meta_ctrl": false,
"result": "image-import"
}
]
},
"InternalDragAction": {
"defaultAction": "link",
"rules": [
{
"shift": false,
"ctrl_cmd": false,
"alt_opt": false,
"meta_ctrl": false,
"result": "link"
},
{
"shift": false,
"ctrl_cmd": false,
"alt_opt": false,
"meta_ctrl": true,
"result": "embeddable"
},
{
"shift": true,
"ctrl_cmd": false,
"alt_opt": false,
"meta_ctrl": false,
"result": "image"
},
{
"shift": true,
"ctrl_cmd": false,
"alt_opt": false,
"meta_ctrl": true,
"result": "image-fullsize"
}
]
},
"LinkClickAction": {
"defaultAction": "new-tab",
"rules": [
{
"shift": false,
"ctrl_cmd": false,
"alt_opt": false,
"meta_ctrl": false,
"result": "active-pane"
},
{
"shift": false,
"ctrl_cmd": true,
"alt_opt": false,
"meta_ctrl": false,
"result": "new-tab"
},
{
"shift": false,
"ctrl_cmd": true,
"alt_opt": true,
"meta_ctrl": false,
"result": "new-pane"
},
{
"shift": true,
"ctrl_cmd": true,
"alt_opt": true,
"meta_ctrl": false,
"result": "popout-window"
},
{
"shift": false,
"ctrl_cmd": true,
"alt_opt": false,
"meta_ctrl": true,
"result": "md-properties"
}
]
}
},
"Win": {
"LocalFileDragAction": {
"defaultAction": "image-import",
"rules": [
{
"shift": false,
"ctrl_cmd": false,
"alt_opt": false,
"meta_ctrl": false,
"result": "image-import"
},
{
"shift": false,
"ctrl_cmd": true,
"alt_opt": false,
"meta_ctrl": false,
"result": "link"
},
{
"shift": true,
"ctrl_cmd": false,
"alt_opt": false,
"meta_ctrl": false,
"result": "image-url"
},
{
"shift": true,
"ctrl_cmd": true,
"alt_opt": false,
"meta_ctrl": false,
"result": "embeddable"
}
]
},
"WebBrowserDragAction": {
"defaultAction": "image-url",
"rules": [
{
"shift": false,
"ctrl_cmd": false,
"alt_opt": false,
"meta_ctrl": false,
"result": "image-url"
},
{
"shift": false,
"ctrl_cmd": true,
"alt_opt": false,
"meta_ctrl": false,
"result": "link"
},
{
"shift": true,
"ctrl_cmd": true,
"alt_opt": false,
"meta_ctrl": false,
"result": "embeddable"
},
{
"shift": true,
"ctrl_cmd": false,
"alt_opt": false,
"meta_ctrl": false,
"result": "image-import"
}
]
},
"InternalDragAction": {
"defaultAction": "link",
"rules": [
{
"shift": false,
"ctrl_cmd": false,
"alt_opt": false,
"meta_ctrl": false,
"result": "link"
},
{
"shift": true,
"ctrl_cmd": true,
"alt_opt": false,
"meta_ctrl": false,
"result": "embeddable"
},
{
"shift": true,
"ctrl_cmd": false,
"alt_opt": false,
"meta_ctrl": false,
"result": "image"
},
{
"shift": false,
"ctrl_cmd": true,
"alt_opt": true,
"meta_ctrl": false,
"result": "image-fullsize"
}
]
},
"LinkClickAction": {
"defaultAction": "new-tab",
"rules": [
{
"shift": false,
"ctrl_cmd": false,
"alt_opt": false,
"meta_ctrl": false,
"result": "active-pane"
},
{
"shift": false,
"ctrl_cmd": true,
"alt_opt": false,
"meta_ctrl": false,
"result": "new-tab"
},
{
"shift": false,
"ctrl_cmd": true,
"alt_opt": true,
"meta_ctrl": false,
"result": "new-pane"
},
{
"shift": true,
"ctrl_cmd": true,
"alt_opt": true,
"meta_ctrl": false,
"result": "popout-window"
},
{
"shift": false,
"ctrl_cmd": true,
"alt_opt": false,
"meta_ctrl": true,
"result": "md-properties"
}
]
}
}
},
"slidingPanesSupport": false,
"areaZoomLimit": 1
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,12 @@
{
"id": "obsidian-excalidraw-plugin",
"name": "Excalidraw",
"version": "2.0.20",
"minAppVersion": "1.1.6",
"description": "An Obsidian plugin to edit and view Excalidraw drawings",
"author": "Zsolt Viczian",
"authorUrl": "https://zsolt.blog",
"fundingUrl": "https://ko-fi.com/zsolt",
"helpUrl": "https://github.com/zsviczian/obsidian-excalidraw-plugin#readme",
"isDesktopOnly": false
}

File diff suppressed because one or more lines are too long

58
.obsidian/plugins/obsidian-git/data.json vendored Executable file
View File

@@ -0,0 +1,58 @@
{
"commitMessage": "vault backup: {{date}}",
"commitDateFormat": "YYYY-MM-DD HH:mm:ss",
"autoSaveInterval": 90,
"autoPushInterval": 1,
"autoPullInterval": 45,
"autoPullOnBoot": false,
"disablePush": false,
"pullBeforePush": true,
"disablePopups": false,
"disablePopupsForNoChanges": false,
"listChangedFilesInMessageBody": false,
"showStatusBar": true,
"updateSubmodules": false,
"syncMethod": "merge",
"customMessageOnAutoBackup": false,
"autoBackupAfterFileChange": true,
"treeStructure": false,
"refreshSourceControl": true,
"basePath": "",
"differentIntervalCommitAndPush": false,
"changedFilesInStatusBar": false,
"showedMobileNotice": true,
"refreshSourceControlTimer": 7000,
"showBranchStatusBar": true,
"setLastSaveToLastCommit": false,
"submoduleRecurseCheckout": false,
"gitDir": "",
"showFileMenu": true,
"authorInHistoryView": "hide",
"dateInHistoryView": false,
"lineAuthor": {
"show": false,
"followMovement": "inactive",
"authorDisplay": "initials",
"showCommitHash": false,
"dateTimeFormatOptions": "date",
"dateTimeFormatCustomString": "YYYY-MM-DD HH:mm",
"dateTimeTimezone": "viewer-local",
"coloringMaxAge": "1y",
"colorNew": {
"r": 255,
"g": 150,
"b": 150
},
"colorOld": {
"r": 120,
"g": 160,
"b": 255
},
"textColorCss": "var(--text-muted)",
"ignoreWhitespace": false,
"gutterSpacingFallbackLength": 5,
"lastShownAuthorDisplay": "initials",
"lastShownDateTimeFormatOptions": "date"
},
"autoCommitMessage": "vault backup: {{date}}"
}

45279
.obsidian/plugins/obsidian-git/main.js vendored Executable file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,9 @@
{
"id": "obsidian-git",
"name": "Git",
"description": "Backup your vault with Git.",
"isDesktopOnly": false,
"fundingUrl": "https://ko-fi.com/vinzent",
"js": "main.js",
"version": "2.24.1"
}

551
.obsidian/plugins/obsidian-git/styles.css vendored Executable file
View File

@@ -0,0 +1,551 @@
@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: 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;
}
.git-author {
color: var(--text-accent);
}
.git-date {
color: var(--text-accent);
}
.git-ref {
color: var(--text-accent);
}
.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;
}
/* ====================== 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 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 0px 6px;
white-space: pre; /* Keep spaces and do not collapse them. */
}

32
.obsidian/plugins/omnisearch/data.json vendored Executable file
View File

@@ -0,0 +1,32 @@
{
"useCache": true,
"hideExcluded": false,
"ignoreDiacritics": true,
"indexedFileTypes": [],
"PDFIndexing": false,
"officeIndexing": false,
"imagesIndexing": false,
"unsupportedFilesIndexing": "no",
"splitCamelCase": false,
"openInNewPane": false,
"vimLikeNavigationShortcut": false,
"ribbonIcon": true,
"showExcerpt": true,
"renderLineReturnInExcerpts": true,
"showCreateButton": false,
"highlight": true,
"showPreviousQueryResults": true,
"simpleSearch": false,
"fuzziness": "1",
"weightBasename": 3,
"weightDirectory": 2,
"weightH1": 1.5,
"weightH2": 1.3,
"weightH3": 1.1,
"weightUnmarkedTags": 1.1,
"httpApiEnabled": false,
"httpApiPort": "51361",
"httpApiNotice": true,
"welcomeMessage": "1.21.0",
"verboseLogging": false
}

50
.obsidian/plugins/omnisearch/main.js vendored Executable file

File diff suppressed because one or more lines are too long

14
.obsidian/plugins/omnisearch/manifest.json vendored Executable file
View File

@@ -0,0 +1,14 @@
{
"id": "omnisearch",
"name": "Omnisearch",
"version": "1.21.1",
"minAppVersion": "1.3.0",
"description": "A search engine that just works",
"author": "Simon Cambier",
"authorUrl": "https://github.com/scambier/obsidian-omnisearch",
"fundingUrl": {
"Github": "https://github.com/sponsors/scambier",
"Ko-fi": "https://ko-fi.com/scambier"
},
"isDesktopOnly": false
}

111
.obsidian/plugins/omnisearch/styles.css vendored Executable file
View File

@@ -0,0 +1,111 @@
.omnisearch-modal {
}
.omnisearch-result {
white-space: normal;
display: flex;
flex-direction: row;
justify-content: space-between;
flex-wrap: nowrap;
}
.omnisearch-result__title-container {
display: flex;
align-items: center;
justify-content: space-between;
column-gap: 5px;
flex-wrap: wrap;
}
.omnisearch-result__title {
white-space: pre-wrap;
align-items: center;
display: flex;
gap: 5px;
}
.omnisearch-result__title > span {
}
.omnisearch-result__folder-path {
font-size: 0.75rem;
align-items: center;
display: flex;
gap: 5px;
color: var(--text-muted);
}
.omnisearch-result__extension {
font-size: 0.7rem;
color: var(--text-muted);
}
.omnisearch-result__counter {
font-size: 0.7rem;
color: var(--text-muted);
}
.omnisearch-result__body {
white-space: normal;
font-size: small;
word-wrap: normal;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
color: var(--text-muted);
margin-left: 0.5em;
}
.omnisearch-result__image-container {
flex-basis: 20%;
text-align: right;
}
.omnisearch-highlight {
}
.omnisearch-default-highlight {
text-decoration: underline;
text-decoration-color: var(--text-highlight-bg);
text-decoration-thickness: 3px;
text-underline-offset: -1px;
text-decoration-skip-ink: none;
}
.omnisearch-input-container {
display: flex;
align-items: center;
flex-direction: row;
gap: 5px;
}
@media only screen and (max-width: 600px) {
.omnisearch-input-container {
flex-direction: column;
}
.omnisearch-input-container__buttons {
display: flex;
flex-direction: row;
width: 100%;
padding: 0 1em 0 1em;
gap: 1em;
}
.omnisearch-input-container__buttons > button {
flex-grow: 1;
}
}
@media only screen and (min-width: 600px) {
.omnisearch-input-container__buttons {
margin-right: 1em;
}
}
.omnisearch-input-field {
position: relative;
flex-grow: 1;
}

View File

@@ -0,0 +1,6 @@
{
"formatType": "normal",
"showRibbonIcon": true,
"bindEnter": true,
"bindTab": true
}

29167
.obsidian/plugins/table-editor-obsidian/main.js vendored Executable file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,17 @@
{
"id": "table-editor-obsidian",
"name": "Advanced Tables",
"author": "Tony Grosinger",
"authorUrl": "https://grosinger.net",
"description": "Improved table navigation, formatting, manipulation, and formulas",
"isDesktopOnly": false,
"minAppVersion": "1.0.0",
"version": "0.21.0",
"js": "main.js",
"fundingUrl": {
"Github Sponsor": "https://github.com/sponsors/tgrosinger",
"Buy me a Coffee": "https://buymeacoffee.com/tgrosinger",
"Paypal": "https://paypal.me/tgrosinger"
},
"donation": "https://buymeacoffee.com/tgrosinger"
}

View File

@@ -0,0 +1,78 @@
:root {
--advanced-tables-helper-size: 28px;
}
.HyperMD-table-row span.cm-inline-code {
font-size: 100%;
padding: 0px;
}
.advanced-tables-buttons>div>.title {
font-weight: var(--font-medium);
font-size: var(--nav-item-size);
color: var(--nav-item-color);
text-decoration: underline;
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container {
column-gap: 0.2rem;
margin: 0.2rem 0 0.2rem 0;
justify-content: start;
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container::before {
min-width: 2.6rem;
line-height: var(--advanced-tables-helper-size);
font-size: var(--nav-item-size);
font-weight: var(--nav-item-weight);
color: var(--nav-item-color);
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container>* {
height: var(--advanced-tables-helper-size);
line-height: var(--advanced-tables-helper-size);
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container .nav-action-button {
width: var(--advanced-tables-helper-size);
height: var(--advanced-tables-helper-size);
display: flex;
justify-content: center;
align-items: center;
border-radius: var(--radius-s);
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container .nav-action-button:hover {
background-color: var(--nav-item-background-hover);
color: var(--nav-item-color-hover);
font-weight: var(--nav-item-weight-hover);
}
.advanced-tables-row-label {
width: 50px;
}
.widget-icon {
width: 20px;
height: 20px;
fill: var(--text-muted);
}
.widget-icon:hover {
fill: var(--text-normal);
}
.advanced-tables-csv-export textarea {
height: 200px;
width: 100%;
}
.advanced-tables-donation {
width: 70%;
margin: 0 auto;
text-align: center;
}
.advanced-tables-donate-button {
margin: 10px;
}

1116
.obsidian/plugins/typst/main.js vendored Normal file

File diff suppressed because one or more lines are too long

13
.obsidian/plugins/typst/manifest.json vendored Normal file
View File

@@ -0,0 +1,13 @@
{
"id": "typst",
"name": "Typst Renderer",
"version": "0.10.0",
"minAppVersion": "1.0.0",
"description": "Renders `typst` code blocks and math blocks with Typst.",
"author": "fenjalien",
"authorUrl": "https://github.com/fenjalien",
"fundingUrl": {
"GitHub Sponsor": "https://github.com/sponsors/fenjalien",
"ko-fi": "https://ko-fi.com/fenjalien"
}
}

92
.obsidian/plugins/typst/styles.css vendored Normal file
View File

@@ -0,0 +1,92 @@
/* styles */
textarea {
width: 100%;
resize: vertical;
}
.setting-item:has(textarea),
.font-settings,
.package-settings {
flex-direction: column;
gap: 0.5em;
align-items: stretch;
}
.is-disabled {
display: none;
}
.add-fonts-div {
display: flex;
gap: 0.5em;
}
.font-input {
flex-grow: 1;
}
.font-tags-div {
display: flex;
flex-wrap: wrap;
gap: 0.5em;
}
.font-tag {
background-color: var(--interactive-normal); /* #363636 */
border-radius: 20px;
padding: 0.5em 0.6em 0.5em 1em;
}
.tag-btn {
margin-left: 0.6em;
padding: 0.4em;
}
.font-tag-text {
font-size: var(--font-ui-small);
}
button,
.tag-btn {
cursor: pointer;
}
.tag-btn:hover {
color: var(--interactive-accent);
}
.typst-doc {
vertical-align: bottom;
}
typst-renderer {
display: inline-block;
}
.package-settings {
gap: 0;
}
.package-settings .setting-item-description {
margin: 0.5em 0;
}
.package-item {
display: flex;
border-bottom: 1px solid var(--background-modifier-border);
gap: 0.5em;
align-items: center;
font-size: var(--font-ui-small);
}
.package-version {
margin-left: auto;
}
.delete-pkg-btn {
margin-top: 1.5em;
width: max-content;
margin-left: auto;
}

7
.obsidian/themes/Catppuccin/manifest.json vendored Executable file
View File

@@ -0,0 +1,7 @@
{
"name": "Catppuccin",
"version": "0.4.18",
"minAppVersion": "1.0.0",
"author": "Marshall Beckrich",
"authorUrl": "https://github.com/catppuccin/obsidian"
}

3842
.obsidian/themes/Catppuccin/theme.css vendored Executable file

File diff suppressed because one or more lines are too long

6
.obsidian/themes/Wasp/manifest.json vendored Executable file
View File

@@ -0,0 +1,6 @@
{
"name": "Wasp",
"version": "0.0.0",
"minAppVersion": "0.16.0",
"author": "Santi Younger"
}

236
.obsidian/themes/Wasp/theme.css vendored Executable file
View File

@@ -0,0 +1,236 @@
/* This Theme is called "Wasp" and Obsidian Theme created by Santi Younger */
/* Last Update:
2021-07-27 14:48
*/
:root
{
--font-monospace: "Source Code Pro", monospace;
}
.theme-dark
{
--background-primary: #242424;
--background-primary-alt: #242424;
--background-secondary: #191919;
--background-secondary-alt: #3D3D3D;
--text-normal: #faf2d6;
--text-faint: #bdae93;
--text-title-h1: #E0E0E0;
--text-title-h2: #E0E0E0;
--text-title-h3: #E0E0E0;
--text-title-h4: #E0E0E0;
--text-title-h5: #E0E0E0;
--text-title-h6: #E0E0E0;
--text-highlight-bg: #640211;
--text-link: #83a598;
--text-a-hover: #83a598;
--text-accent-hover: #D49335;
/* ^^^ added for hover over bracket internal links */
--inline-code: #83a598;
--code-block: #83a598;
--text-a: #f8c537;
--interactive-accent: #f8c537;
--text-accent: #f8c537;
--text-on-accent: #fff;
--interactive-accent-rgb: #f8c537;
--vim-cursor: #f8c537;
/* --text-mark: add text-mark if needed, this should work together with 'mark' */
--pre-code: #;
--interactive-before: #7c6f64;
--background-modifier-border: #f8c537;
--text-selection: #f8c537;
}
.theme-dark .cm-s-obsidian span.obsidian-search-match-highlight {
color: var(--text-normal);
background-color: #483699;
}
.theme-light
{
--background-primary: #EDEDED;
--background-secondary: #C4C4C4;
/* thick menu border */
--background-primary-alt: #;
--background-secondary-alt: #707070; /* ← ↓ corner */
--text-normal: #1A2023;
--text-faint: #DEDEDE;
--text-title-h1: #D49335;
--text-title-h2: #D49335;
--text-title-h3: #D49335;
--text-title-h4: #D49335;
--text-title-h5: #D49335;
--text-link: #D49335;
--text-a-hover: #D49335;
--text-accent-hover: #D49335;
/* ^^^ added for hover over bracket internal links */
--inline-code: #458588;
/* --text-mark: add if needed */
--pre-code: #bebebe;
/* --text-highlight-bg: add if needed */
--interactive-before: #a89984;
--background-modifier-border: #D49335;
--text-a: #961327;
--interactive-accent: #f8c537;
--text-accent: #961327;
--interactive-accent-rgb: #961327;
--vim-cursor: #961327;
--text-selection: #EDC180;
--text-white: #ffffff;
}
.nav-file-title, .nav-folder-title {
color: var(--text-normal);
}
.nav-file-title.is-active, .nav-folder-title.is-active, body:not(.is-grabbing) .nav-file-title:hover, body:not(.is-grabbing) .nav-folder-title:hover {
background-color: var(--background-modifier-border);
color: white;
}
.cm-s-obsidian span.cm-formatting-link {
color: var(--text-normal);
}
.CodeMirror-guttermarker-subtle {
color: var(--text-normal) !important;
}
button.mod-cta {
background-color: var(--interactive-accent);
color: var(--text-normal);
}
.vertical-tab-header-group-title {
color: var(--text-white);
}
.cm-header-1 {
font-size: 18px;
color: var(--text-title-h1) !important;
}
.cm-header-2 {
font-size: 18px;
color: var(--text-title-h2) !important;
}
.cm-header-3 {
font-size: 18px;
color: var(--text-title-h3) !important;
}
.cm-header-4 {
font-size: 18px;
color: var(--text-title-h4) !important;
}
.cm-header-5 {
font-size: 18px;
color: var(--text-title-h5) !important;
}
.cm-header-6 {
font-size: 18px;
color: --text-normal;
color: var(--text-title-h6) !important;
}
.markdown-preview-view h1 {
font-size: 20px;
line-height: 24px;
color: var(--text-title-h1) !important;
}
.markdown-preview-view h2 {
font-size: 20px;
line-height: 24px;
color: var(--text-title-h2) !important;
}
.markdown-preview-view h3 {
font-size: 20px;
line-height: 24px;
color: var(--text-title-h3) !important;
}
.markdown-preview-view h4 {
font-size: 20px;
line-height: 24px;
color: var(--text-title-h4) !important;
}
.markdown-preview-view h5 {
font-size: 20px;
line-height: 24px;
color: var(--text-title-h5) !important;
}
.markdown-preview-view h6 {
font-size: 20px;
line-height: 24px;
color: --text-normal;
color: var(--text-title-h6) !important;
}
/*-----------------------------------------*/
/* End of main theme, extra functionality can be added below */
.markdown-source-view { font-family: var(--font-monospace)
}
.cm-fat-cursor .CodeMirror-cursor {
background-color: #f8c537 !important;
opacity: 80% !important;
width: 9px !important;
visibility: visible !important
}
.plugin-tabs .stayopen .view-header {
border-bottom: 2px solid var(--interactive-accent)!important;
}
.plugin-tabs .mod-root.workspace-split.mod-vertical div.workspace-leaf:not(.stayopen) > .workspace-leaf-content > .view-header .view-header-title::before{
background-color:transparent!important
}
.plugin-tabs .mod-root.workspace-split.mod-vertical .workspace-split.mod-vertical > div.workspace-leaf:not(.stayopen),
.plugin-tabs .mod-root.workspace-split.mod-vertical > div.workspace-leaf:not(.stayopen){
border-radius: 5px 5px 0px 0px!important;
}
.plugin-tabs .mod-root.workspace-split.mod-vertical div.workspace-leaf{
border-color: var(--background-secondary-alt)!important;
border-bottom-width: 0px!important;
border-right-width: 0px!important
}
.theme-light.plugin-tabs .mod-root.workspace-split.mod-vertical div.workspace-leaf{
border-color: var(--background-secondary-alt)!important;
border-left-width:3px!important;
border-bottom-width: 0px!important;
border-right-width: 0px!important
}
.plugin-tabs .mod-root.workspace-split.mod-vertical > div.workspace-leaf hr.workspace-leaf-resize-handle,
.plugin-tabs .mod-root.workspace-split.mod-vertical > .mod-vertical hr.workspace-leaf-resize-handle{
display: none;
}
.plugin-tabs .mod-root.workspace-split.mod-vertical div.workspace-leaf .view-header{
border-left-color: transparent!important
}
.plugin-tabs .workspace-split.mod-root > .workspace-leaf:last-of-type .workspace-leaf-content,
.plugin-tabs .workspace-split.mod-root > .workspace-leaf:first-of-type .workspace-leaf-content {
border-radius: 0px!important;
}
.plugin-tabs .theme-dark .mod-root.workspace-split.mod-vertical .workspace-split.mod-vertical > div.workspace-leaf.mod-active,
.plugin-tabs .theme-dark .mod-root.workspace-split.mod-vertical > div.workspace-leaf.mod-active {
border: 0!important;
border-radius: 0px 0px 0px 0px!important;
}

View File

@@ -1,9 +0,0 @@
[Tarte aux asperges vertes et fromages de chèvre](https://www.marmiton.org/recettes/recette_tarte-aux-asperges-vertes-et-fromage-de-chevre_30758.aspx)
[Curry de poulet indien au yaourt](https://www.cuisineaz.com/recettes/curry-de-poulet-indien-au-yaourt-54510.aspx)
- [x] 2 Pizzas
2 Burgers
2 Indian Curry Chicken Rice
2 Flamme Quiche
Portions min: 9
Portions max: 12

View File

@@ -1,89 +0,0 @@
Wert wird an eine Stelle im RAM eingetragen.
A laden wir den Wert ein
B laden wir die Ursprungsadresse +1
Jump to Write Address (PC)
Wert aus A eintragen (OUTPUT)
Jump back Ursprungsadresse + 1 (PC)
unload a + b
Um zu schreiben brauchen wir:
- WE (Flag?)
- Adresse
- Lesen oder Schreiben (Flag?)
Adresse scheint man über den PC zu steuern
# Fehlersuche
Programm: `04 02 0f 12`
Verhalten:
- 02 wird in `REG A` geladen
- in `ADDR 3` wird `02` eingeladen
- Verhalten entspricht den Vorstellungen (Code `4410`)
# Test `5C10`
- Programm: `04 02 0f 06`
- 02 wird in `REG A` geladen
- in `ADDR 3` wird `02` eingeladen
- Springt anschließend zu `ADDR 06`
Es sollte zu erst der Sprung stattfinden und anschließend geschrieben werden. Sowie zurückgesprungen werden zur ursprünglichen Adresse
Idee: vorher den Jump erzwingen und anschließend schreiben
Idee: Jump back flag, welches den Wert aus REG B in den PC nach der Operation lädt
`5c50` `WE_PC = 1` geändert
**Mit `WE_PC = 1` wird zu erst gesprungen und anschließend geschrieben, leider an die falsche Adresse.**
load B
jump addr
write MEM, A
jump back
ROM ADDR 12
1. MOV B,PTR
2. JMP \<addr\>
3. MEMW
4. JMPB
REG A: Wert, den wir am Ziel eintragen wollen
REG B: Ursprüngliche Adresse
12 ff 0c
Die letzte Adresse wird ebenfalls als CMD interpretiert, eine spätere Modifikation könnte daher von Interesse sein.
20 Ergebnis A
22 Speicher A
z:
Init: Set B = 1 and A = EXIB
if equal --> a:, else b:
b:
Write Counter to VAR D
(REG A, current Counter)
REG B, SUM
A = SUM
Overload local Set REG B with new SUM
Overload result in a: to new SUM
Set REG A to VAR D
SET B to 1
SUB
Jump to z:
a:
set A to result
print
halt
zwischenregister mit Instructions alle 2 Takte hinzugefügt, WMEM
- springt
- aber schreibt nicht mehr
# Instructions
- NOP (> PC + 1 > MBR)
- MBR
- (MBR (> PC))
- PC + 1
- PC + 1 (> MBR)
-

View File

@@ -1,4 +1,4 @@
# Skripte (durch KI zusammengefasst)
# Skripte
- [x] Hashfunktionen
- [x] TLS 4.5
- [x] Firewalling

View File

@@ -127,5 +127,3 @@
- Anomalieerkennung: erkennt Neues, aber komplex
- Snort = praxisnahes IDS, regelbasiert
- Honeypots zur Analyse & Täuschung von Angreifern
---
Wenn du willst, kann ich daraus **Karteikarten**, ein **Quiz**, oder eine **Lernmatrix** erstellen sag einfach Bescheid!

View File

@@ -83,5 +83,3 @@
- **MDC = prüft Integrität**, **MAC = prüft Integrität + Authentizität**
- **SHA-2 & SHA-3 = derzeit sicher**
- **HMAC ≠ Signatur**, da symmetrisch!
---
Wenn du willst, kann ich dir auch Lernkarten (Flashcards), ein Quiz oder eine Mindmap aus diesem Material erstellen. Sag einfach Bescheid!

View File

@@ -82,5 +82,3 @@
- **Anti-Replay-Schutz** ist standardmäßig aktiv (Sequenznummern + Fenster).
- SPD regelt, **ob IPsec angewendet wird**; SAD enthält die Parameter dazu.
- AH & ESP sind bei IPv6 **verpflichtend**, bei IPv4 **optional**.
---
Möchtest du daraus ein **Quiz**, eine **Mindmap**, oder **Lernkarten** zur Wiederholung haben? Sag einfach Bescheid!

View File

@@ -98,9 +98,3 @@ $FW -A INPUT -p icmp -j DROP
- **Besser**: „Blockiere alles, erlaube nur was nötig ist“ (Default: DROP)
- Verwende `--state ESTABLISHED, RELATED`, um gültige Verbindungen zu erlauben
- Speichere Regeln in Skripten (z.B. `/etc/network/firewall`) und rufe sie über `/etc/rc.local` auf
---
Wenn du möchtest, kann ich dir daraus auch:
- eine **Befehlstabelle zum Auswendiglernen**
- ein **Mini-Quiz**
- oder eine **interaktive Übung** zur Regel-Erstellung erstellen.
Sag einfach Bescheid!

View File

@@ -103,9 +103,3 @@
- **Passwortauthentifizierung deaktivieren** (wo möglich)
- **ssh-audit** zur Analyse verwenden
- SSH2/OpenSSH = **Standard**, SSH1 = **veraltet**
---
Wenn du möchtest, kann ich dir daraus gerne:
- **Lernkarten (Flashcards)**
- eine **Mindmap**
- oder ein **Mini-Quiz** erstellen.
Sag einfach Bescheid!

View File

@@ -102,5 +102,3 @@ Aus dem **Master Secret** werden erzeugt:
- Session Keys für symmetrische Verschlüsselung
- SSL ist **applikationsunabhängig**
- **SSL Record Layer** = zentrale Schicht zur Absicherung der Nutzdaten
---
Wenn du willst, kann ich dir daraus auch **Karteikarten**, ein **Quiz**, oder eine **grafische Übersicht** (z.B. Ablaufdiagramm) für den Handshake oder die Schlüsselableitung erstellen. Sag einfach Bescheid!

View File

@@ -0,0 +1,127 @@
## 🎯 ZIELE DER LEHRVERANSTALTUNG
- Vermittlung von **Grundlagen im Softwaretesten**
- Verständnis für **Begriffe, Aufgaben, Methoden & Verfahren**
- Vorbereitung auf die **CTFL-Prüfung** (international anerkannt)
---
## 🧪 WARUM SOFTWARETEST?
### Beispiele schwerwiegender Softwarefehler:
- ❌ Ariane 5: Absturz durch Reuse fehlerhafter Lageregelungssoftware
- ❌ T-Mobile (2009): Netzstörung durch Fehler im HLR
- ❌ Deutsche Bank / BAföG / GM / Roche: Fehler mit realen Konsequenzen
➡️ Softwarefehler führen zu:
- **wirtschaftlichen Schäden**
- **Lebensgefahr (z.B. Medizintechnik, Automotive)**
- **Imageverlust**
---
## 💥 BEGRIFFE: Fehler, Bug, Defekt
- **Fehler (Defect)**: Abweichung vom erwarteten Verhalten
- **Bug**: oft als Synonym genutzt
- **Erster dokumentierter Bug**: Motte im Relay (1947)
---
## 🧠 TESTBARENGRUNDLAGEN
- Vollständiges Austesten ≠ realistisch möglich
- Beispiel 1: 3 Eingabewerte à 16 Bit → 2⁴⁸ Kombinationen → **ca. 90 Jahre**
- Beispiel 2: Schleifen + Verzweigungen → 10¹⁴ Testfälle → **38 Jahre**
➡️ **Testen ist selektiv & risikobasiert notwendig!**
---
## 🔍 TESTKATEGORIEN (am Beispiel „Dreieckprogramm“)
### Testziele:
- **Funktionalität prüfen**: korrektes Verhalten bei Eingaben
- **Fehlerhafte Eingaben erkennen**: negative Zahlen, zu viele/wenige Werte etc.
- **Grenzwerte testen**: z.B. `0`, `Max_Int`
### Beispiel-Testfälle:
- Gleichseitig: 2,2,2
- Ungleichseitig: 2,3,4
- Ungültig: -5, 0, Zeichen, zu viele Werte
- Spezialfälle: Kombinationen nahe Grenzwerten
➡️ **Testdaten ≠ zufällig**, sondern **gezielt konstruiert**
---
## 🚗 PARALLELEN ZUR INDUSTRIE
**Automobilindustrie**:
- Komponententest → Integrationstest → Systemtest → Abnahmetest → Stresstest
➡️ Übertragbar auf Software: **Teststufen & strukturiertes Vorgehen**
---
## 💬 FAZIT / MERKSPRÜCHE
- **„Testen zeigt die Anwesenheit von Fehlern, nicht ihre Abwesenheit.“**
- **„Ein Test ohne definiertes Ziel ist Zeitverschwendung.“**
- **„Keine Software ist fehlerfrei.“**
- **„Vollständiges Austesten ist meist unmöglich.“**
---
## 📚 LITERATUR & WEITERFÜHRENDES
- Lehrbuch: **Spillner/Linz** _Basiswissen Softwaretest_
- Weitere: Beizer, Myers, Liggesmeyer, TMap, ISO 29119
- Fachzeitschriften & Konferenzen: _GTB_, _EuroSTAR_, _ICST_
---
## ✅ KLAUSURRELEVANTE KERNAUSSAGEN
|Thema|Prüfungstauglicher Merksatz|
|---|---|
|Fehlerauswirkungen|Kleine Fehler können große Folgen haben|
|Austestbarkeit|Testabdeckung muss begrenzt & gezielt sein|
|Dreieck-Programm|Guter Einstieg zur **Testfallerstellung**|
|Zertifizierung|ISTQB CTFL ist international anerkannt|
|Test ist wichtig|Auch einfache Programme sind schwer zu testen|

View File

@@ -0,0 +1,115 @@
## 📘 KAPITEL 1: GRUNDLAGEN DES TESTENS
---
### 1.1 Warum ist Testen notwendig?
- Softwarefehler können **Kosten, Sicherheitsprobleme, Rufschädigung** verursachen.
- Gründe für Fehler:
- Missverständnisse, Zeitdruck, komplexe Systeme, neue Technologien.
- **Testen reduziert Risiken**, aber **kann Fehler nicht vollständig beseitigen**.
---
### 1.2 Was ist Testen?
- Testen = **Planung, Vorbereitung, Durchführung & Bewertung** von Softwaretests.
- Ziel:
- Fehler finden
- Vertrauen schaffen
- Konformität mit Anforderungen prüfen
- Grundlage für Qualität liefern
---
### 1.3 Allgemeine Testziele
|Zieltyp|Beschreibung|
|---|---|
|**Fehlervorbeugung**|Schon in frühen Phasen vermeiden|
|**Fehlererkennung**|Möglichst früh entdecken|
|**Verifikation**|Korrektheit prüfen: „bauen wir es richtig?“|
|**Validierung**|Zweck prüfen: „bauen wir das Richtige?“|
---
### 1.4 Testen und Debuggen
- **Testen**: Fehler _finden_
- **Debuggen**: Fehler _analysieren und beheben_
➡️ Zwei **komplementäre Aktivitäten** im Lebenszyklus
---
### 1.5 Sieben Prinzipien des Testens (💡 Prüfungsrelevant)
1. **Testen zeigt Anwesenheit von Fehlern, nicht deren Abwesenheit**
2. **Vollständiges Testen ist nicht möglich**
3. **Frühes Testen spart Zeit und Geld**
4. **Fehlerhäufung in bestimmten Bereichen (Pareto-Prinzip)**
5. **Testwiederholungen → Testfälle anpassen (Testfallverfall)**
6. **Testen ist kontextabhängig (z.B. sicherheitskritisch vs. Webshop)**
7. **Trugschluss Fehlerfreiheit ≠ Gebrauchstauglichkeit**
---
### 1.6 Testprozess (Phasenmodell)
1. **Testplanung und -steuerung**
2. **Testanalyse und -design**
3. **Testrealisierung und -durchführung**
4. **Testauswertung und -abschluss**
➡️ Unterstützt durch **Testüberwachung, Metriken & Dokumentation**
---
### 1.7 Psychologie des Testens
- Zielkonflikt Entwickler vs. Tester:
- Entwickler: „Software funktioniert!“
- Tester: „Software hat Schwächen!“
🧠 Gute Zusammenarbeit & Kommunikation sind entscheidend:
- **Objektivität, Kritikfähigkeit, keine Schuldzuweisungen**
---
## ✅ KLAUSURRELEVANTE MERKSÄTZE
|Thema|Merksatz|
|---|---|
|Testzweck|Fehler _finden_, nicht beseitigen|
|Prinzipien|7 Prinzipien **verstehen & benennen können**|
|Test vs. Debugging|Zwei **getrennte Prozesse**|
|Testprozesse|Test hat **strukturierte Phasen**|
|Testpsychologie|**Konstruktives Konfliktmanagement** notwendig|

View File

@@ -0,0 +1,102 @@
## 📘 KAPITEL 2: TESTEN IM SOFTWARELEBENSZYKLUS
---
### 2.1 Softwareentwicklungsmodelle
**Testen muss in den gesamten Entwicklungsprozess integriert sein!**
#### a) Sequenzielle Modelle (klassisch, Wasserfall, V-Modell)
- **Vorteil**: frühzeitige Planung, klare Phasen
- **Nachteil**: späte Fehlererkennung, wenig flexibel
#### b) Iterative/inkrementelle Modelle (z.B. Agile)
- **Testen** = integraler Bestandteil jeder Iteration
- Kontinuierliches Feedback, frühe Tests
- Flexibler, aber aufwändiger
---
### 2.2 Teststufen (💡 Prüfungsrelevant)
|Teststufe|Fokus|Testbasis|Ziel|
|---|---|---|---|
|**Komponententest**|Einzelprogramme/Funktionen|Source Code, Design Specs|Fehler in Modulen erkennen|
|**Integrationstest**|Zusammenspiel von Komponenten|Schnittstellenspezifikation|Fehler in Modulen & Interfaces|
|**Systemtest**|Gesamtsystem|Anforderungen|Anforderungen erfüllt?|
|**Abnahmetest**|Validierung mit Nutzer|Businessanforderungen|Auslieferungsreife prüfen|
🔄 **Statische Tests** (Reviews) ergänzen die Teststufen
---
### 2.3 Testarten (Was wird getestet?)
#### Funktionale Tests
- Verhalten & Funktionen
- z.B. Geschäftslogik, Benutzerinteraktion
#### Nicht-funktionale Tests
- **Leistung**, **Benutzbarkeit**, **Zuverlässigkeit**, **Sicherheit**
- Beispiel: Lasttests, Sicherheitstests
#### Strukturbezogene Tests
- Interne Struktur (z.B. Codeabdeckung, Verzweigungspfad)
#### Änderungsbezogene Tests
- **Re-Tests**: Prüfen behobener Fehler
- **Regressionstests**: Prüfen unbeabsichtigter Nebeneffekte
---
### 2.4 Wartungstest
- Tests im Produktivsystem nach Änderungen (Fehlerbehebung, Anpassung)
- Besonders wichtig:
- **Regressionstest**
- **Impact-Analyse**
- Testdaten und Testumgebung **aktuell halten**
---
### 2.5 Teststufen & Testarten kombinieren
- Beispiel: Im **Systemtest** können **funktionale Tests** UND **nicht-funktionale Tests** durchgeführt werden.
- Jeder Teststufe können verschiedene **Testziele** zugeordnet werden.
---
## ✅ KLAUSURRELEVANTE MERKPUNKTE
|Thema|Prüfungswissen|
|---|---|
|V-Modell|Testaktivitäten sind klar definiert & gekoppelt mit Entwicklungsphasen|
|Teststufen|**Komponente → Integration → System → Abnahme** (Reihenfolge merken!)|
|Testarten|Funktional, Nicht-funktional, Struktur-, Änderungsbezogen|
|Wartungstest|Regression und Impact-Analyse notwendig|
|Agile Modelle|**Test = Teil jeder Iteration**|

View File

@@ -0,0 +1,104 @@
## 📘 KAPITEL 3: STATISCHES TESTEN
---
### 3.1 Was ist statisches Testen?
- **Statisches Testen** = Analyse **ohne Programmausführung**
- Ziel: **Frühzeitiges Erkennen** von Fehlern und Schwächen
- Ergänzt dynamisches Testen (mit Programmausführung)
**Beispiele:**
- Dokumentation, Code, Testfälle, Anforderungen prüfen
---
### 3.2 Arten statischer Tests
|Art|Merkmale|
|---|---|
|**Statische Analyse**|Automatisierte Tools analysieren Code-Struktur|
|**Reviews (manuell)**|Menschen analysieren Dokumente & Artefakte|
---
### 3.3 Statische Analyse durch Tools
#### Ziele:
- Automatisierte Prüfung von Quellcode
- **Vermeidung technischer Schulden**
#### Erkennbar durch Tools:
- **Syntaxfehler**
- **Nicht initialisierte Variablen**
- **Dead Code / nicht erreichbarer Code**
- **Verletzungen von Codierstandards**
- **Sicherheitslücken (z.B. Buffer Overflow)**
➡️ **Ergänzung, kein Ersatz für Reviews!**
---
### 3.4 Reviewarten (💡 Prüfungsrelevant)
|Reviewtyp|Beschreibung & Merkmale|
|---|---|
|**Informell**|z.B. Peer Review, keine Dokumentation|
|**Walkthrough**|Autor führt Gruppe durch Dokument|
|**Technisches Review**|Fokus auf Inhalte, nicht auf Format|
|**Inspektion**|Strukturiert, mit Rollen, Protokollierung, Prüfprotokollen|
➡️ **Inspektion ist die formalste & effektivste Methode.**
---
### 3.5 Rollen in einem Review
|Rolle|Aufgabe|
|---|---|
|**Autor**|Ersteller des Prüflings|
|**Moderator**|Leitung & Organisation|
|**Prüfer**|Suchen nach Defekten|
|**Protokollant**|Dokumentiert Ergebnisse|
|**Manager**|Review-Rahmenbedingungen schaffen|
---
### 3.6 Reviewprozess (z.B. Inspektion)
1. **Planung** (Teilnehmer, Artefakt, Reviewziel)
2. **Kick-off** (Einführung, Zielklärung)
3. **Einzelprüfung** (Teilnehmer sichten Artefakt individuell)
4. **Review-Meeting** (gemeinsame Sichtung, Diskussion)
5. **Nachbearbeitung** (Fehlerbehebung, Follow-up)
---
## ✅ KLAUSURRELEVANTE MERKSÄTZE
|Thema|Merksatz|
|---|---|
|Statisches Testen|Testen ohne Ausführen des Programms|
|Reviewtypen|**Inspektion** = formal, **Walkthrough** = moderiert, informell|
|Toolbasierte Analyse|Ergänzung zu manuellen Reviews, keine Ablösung|
|Reviewrollen|Moderator ≠ Autor, Protokollant dokumentiert|
|Nutzen|Frühes Feedback spart spätere Kosten|

View File

@@ -0,0 +1,118 @@
## 📘 KAPITEL 4.1: TESTTECHNIKEN GRUNDLAGEN
---
### 4.1 Einleitung: Warum Testverfahren?
- Systematisches Vorgehen → bessere **Testabdeckung**
- Unterstützung bei der Erstellung **guter Testfälle**
- Ziel: Fehler früh entdecken & reproduzierbar testen
---
## 🧪 HAUPTKATEGORIEN VON TESTVERFAHREN
|Kategorie|Merkmale & Grundlage|
|---|---|
|**Black-Box**|Anforderungen / Spezifikation|
|**White-Box**|Programmstruktur / Code|
|**Erfahrungsbasiert**|Intuition, frühere Fehler, Exploratives Testen|
---
### 🔲 1. BLACK-BOX-VERFAHREN (💡 Prüfungsrelevant)
Nutzen **Eingabe-Ausgabe-Beziehung**, ohne Quellcode zu betrachten.
#### a) Äquivalenzklassenbildung
- Eingaben in gültige/ungültige **Klassen** einteilen
- **Aus jeder Klasse → 1 Testfall**
#### b) Grenzwertanalyse
- Grenzwerte sind **fehleranfällig**
- Testfälle **am Rand** der Äquivalenzklassen
#### c) Entscheidungstabellen
- Repräsentieren **Regeln & Bedingungen**
- Kombinationen aus Bedingungen → Aktionen
#### d) Zustandsbasierter Test
- Bei **zustandsbehafteten Systemen** (z.B. Automaten)
- Zustände, Übergänge, Events → modellieren & testen
#### e) Use Case Test
- **Szenarien aus Benutzersicht** abdecken
- Ziel: reale Nutzungspfade testen
---
### 🔳 2. WHITE-BOX-VERFAHREN
Berücksichtigen **interne Struktur** des Systems/Programms
#### a) Anweisungsüberdeckung
- Jede Anweisung im Code muss mindestens **einmal ausgeführt** werden
#### b) Zweigüberdeckung
- Jeder Entscheidungspunkt (z.B. `if`, `else`) → **jede Richtung** wird getestet
➡️ Für Entwicklernahe Tests (z.B. Komponententest)
---
### 💡 3. ERFAHRUNGSBASIERTE VERFAHREN
- Beruhen auf **Intuition, Erfahrung, Bauchgefühl**
- Beispiele:
- **Fehlerbasiertes Testen**
- **Checklisten**
- **Exploratives Testen**
Einsatz besonders:
- wenn wenig Dokumentation vorhanden ist
- bei Timeboxing (agile Projekte)
- als Ergänzung zu strukturierten Verfahren
---
## ✅ KLAUSURRELEVANTE MERKPUNKTE
|Thema|Merksatz|
|---|---|
|Black-Box|Tests basieren auf **Spezifikationen**, nicht auf Code|
|White-Box|Ziel: **Codepfade** und **Verzweigungen** abdecken|
|Äquivalenzklassen|Jede Klasse mit **einem repräsentativen Testfall**|
|Grenzwertanalyse|Fehler liegen oft **an den Rändern**|
|Entscheidungs- & Zustandsbasierte Tests|gut bei komplexem Verhalten & Bedingungen|
|Erfahrungsbasiert|Ergänzend, flexibel, intuitiv, explorativ|

View File

@@ -0,0 +1,159 @@
## 📘 KAPITEL 4.2: BLACK-BOX-TESTVERFAHREN (DETAIL)
---
### 🎯 Ziel
- Testfälle auf Basis der **Anforderungen/Spezifikation** ableiten
- Fokus: **funktionales Verhalten** (ohne Quellcode)
---
## 1. ✅ ÄQUIVALENZKLASSEN-BILDUNG
### Ziel:
- Eingaberaum in **repräsentative Klassen** aufteilen (gültig + ungültig)
### Vorgehen:
1. Klassen identifizieren (z.B. Wertebereiche)
2. Gültige & ungültige Klassen bilden
3. Pro Klasse → 1 Repräsentant
**Beispiel: Eingabe 110**
- Gültig: 110 → z.B. Testwert 5
- Ungültig: <1, >10 → z.B. Testwert 0 und 11
---
## 2. ⚠️ GRENZWERTANALYSE
### Ziel:
- **Fehler an Grenzen** von Wertebereichen erkennen
### Vorgehen:
- Testfälle an & um die Grenze: `Grenze - 1`, `Grenze`, `Grenze + 1`
**Beispiel: Bereich 110**
- Testfälle: 0, 1, 2 | 9, 10, 11
➡️ Ergänzt Äquivalenzklassen
---
## 3. 🧾 ENTSCHEIDUNGSTABELLEN
### Ziel:
- **Regelbasierte Entscheidungen** systematisch testen
### Bestandteile:
- Bedingungen (z.B. "Kunde zahlt bar?")
- Aktionen (z.B. "Rabatt gewähren")
- Tabelle listet alle möglichen **Kombinationen**
### Vorteile:
- Gute Testabdeckung bei **Kombinatorik**
- Auch für Geschäftsregeln & Konfigurationen geeignet
---
## 4. 🔄 ZUSTANDSÜBERGANGSTEST
### Ziel:
- Testen von Systemen mit **internen Zuständen**
### Elemente:
- **Zustände** (z.B. „angemeldet“, „abgemeldet“)
- **Ereignisse/Übergänge** (z.B. „Login“, „Logout“)
- **Aktionen** (z.B. „Zugriff erlaubt“)
### Arten von Tests:
- Alle Übergänge
- Alle Zustände
- Ungültige Übergänge
➡️ Modellierung über **Zustandsdiagramme** sinnvoll
---
## 5. 👤 USE CASE TEST
### Ziel:
- **Benutzerverhalten / Interaktionen** mit dem System testen
### Merkmale:
- Abbildung typischer **Szenarien**
- Fokus auf **End-to-End-Abläufe**
- Kann auch **nicht-funktionale Aspekte** einbeziehen
### Beispiele:
- "Benutzer meldet sich an"
- "Benutzer gibt Bestellung auf"
---
## ✅ ZUSAMMENFASSUNG DER BLACK-BOX-VERFAHREN
|Verfahren|Fokus|Typische Anwendung|
|---|---|---|
|Äquivalenzklassen|Eingaberaum abdecken|Wertebereiche, Formate|
|Grenzwertanalyse|Fehler an Bereichsgrenzen|Zahlen, Datumswerte|
|Entscheidungstabellen|Regeln & Kombinationen prüfen|Rabattlogik, Konditionen|
|Zustandsübergänge|Zustandssysteme abbilden|Automaten, Sitzungen|
|Use Cases|Nutzerverhalten simulieren|Geschäftsprozesse, UI|
---
## 📝 KLAUSURRELEVANTE MERKPUNKTE
|Thema|Merksatz|
|---|---|
|Äquivalenzklassen|Pro Klasse genau **ein Testfall**|
|Grenzwertanalyse|Teste **an, vor und nach** der Grenze|
|Entscheidungstabellen|**Alle Regelkombinationen** prüfen|
|Zustandsbasierte Tests|Übergänge & Reaktionen prüfen, auch **ungültige**|
|Use Case Tests|Nutzer-Szenarien, oft End-to-End|

View File

@@ -0,0 +1,104 @@
## 📘 KAPITEL 5: TESTMANAGEMENT
---
### 5.1 Testorganisation
* Testverantwortung kann in **Entwicklung integriert** oder **getrennt organisiert** sein.
* Rollen können je nach Projektform variieren:
* **Testmanager**
* **Tester**
* **Testanalyst / Technical Test Analyst**
* **Testautomatisierer**
---
### 5.2 Testplanung und -steuerung
#### Testplanung
* Definition von:
* **Zielen**
* **Strategie**
* **Umfang**
* **Aufwand & Ressourcen**
* **Zeitplan**
#### Teststeuerung
* **Vergleich** von Ist- und Sollwerten
* **Anpassung** des Testvorgehens bei Abweichungen
---
### 5.3 Testfortschritt und -abschluss
#### Testfortschrittskennzahlen (Metriken)
* Anzahl durchgeführter Tests
* Anzahl gefundener Fehler
* Testabdeckung
* Aufwand vs. Fortschritt
#### Abschlussaktivitäten:
* Fehlerstatus prüfen
* Lessons Learned
* Testabschlussbericht erstellen
---
### 5.4 Konfigurationsmanagement
* Sicherstellen, dass:
* **Testobjekte eindeutig versioniert** sind
* **Änderungen nachvollziehbar** bleiben
* Tools zur Verwaltung von:
* Anforderungen
* Testfällen
* Codeversionen
---
### 5.5 Risikomanagement im Test
| Begriff | Bedeutung |
| ------------------------ | ------------------------------------------------------------------ |
| **Risiko** | Möglichkeit eines negativen Ereignisses |
| **Risikobasierter Test** | Priorisierung nach Schadenspotenzial & Eintrittswahrscheinlichkeit |
#### Risikoarten:
* **Produktrisiko**: betrifft Software (z.B. Datenverlust)
* **Projektrisiko**: betrifft Projekt (z.B. Terminüberschreitung)
---
### 5.6 Fehler- und Abweichungsmanagement
* **Fehlermanagementprozess**:
1. Fehler identifizieren
2. Fehler dokumentieren (z.B. Reproduktionsschritte)
3. Status verfolgen (neu, in Bearbeitung, gelöst …)
4. Abschluss prüfen
* Abweichung ≠ immer Fehler (z.B. unvollständige Anforderungen)
---
## ✅ KLAUSURRELEVANTE MERKSÄTZE
| Thema | Merksatz |
| ------------------------ | ------------------------------------------------------ |
| Testplanung | Definiert **Was, Wie, Wer, Wann** |
| Teststeuerung | Vergleicht **Planung ↔ Realität**, passt an |
| Fortschrittsmetriken | Basis für **objektive Steuerung** |
| Konfigurationsmanagement | Kontrolliert Versionen & Änderungen |
| Risikobasiertes Testen | Priorisiert **nach Schadenshöhe & Wahrscheinlichkeit** |
| Fehlermanagement | Fehler dokumentieren & nachverfolgen bis Abschluss |

View File

@@ -0,0 +1,123 @@
## 📘 KAPITEL 6: TOOLUNTERSTÜTZUNG IM TESTPROZESS
---
### 6.1 Einsatzmöglichkeiten von Testwerkzeugen
#### Ziele:
- Effizienz steigern
- Wiederholbarkeit sicherstellen
- Fehler vermeiden
#### Typische Tool-Einsatzbereiche:
|Einsatzbereich|Beispiele für Werkzeuge|
|---|---|
|**Testmanagement**|Testplanung, Fortschrittsverfolgung|
|**Anforderungsmanagement**|Rückverfolgbarkeit von Anforderungen|
|**Statische Analyse**|Code-Analyse, Einhaltung von Codestandards|
|**Testfallerstellung**|manuell oder generiert|
|**Testdurchführung & Auswertung**|Automatisierte Tests, Logging, Reports|
|**Defektmanagement**|Bug-Tracking, z.B. Jira, Bugzilla|
|**Testdaten- & Umweltverwaltung**|Konsistente Testdaten, Containerisierung|
---
### 6.2 Vorteile und Risiken von Tools
#### ✅ Vorteile:
- Automatisierung → **Zeitersparnis**
- **Konsistenz & Reproduzierbarkeit**
- **Skalierbarkeit** bei Regressionstests
#### ⚠️ Risiken:
- **Einführungsaufwand** hoch
- **Wartung & Pflege** der Tools notwendig
- Gefahr von **Tool-Gläubigkeit** („Tool löst alle Probleme“)
- **Falsche Anwendung** kann schaden
---
### 6.3 Toolklassifizierung nach ISTQB
|Tooltyp|Beschreibung|
|---|---|
|**Statische Analyse-Tools**|z.B. Lint, SonarQube|
|**Testdesign-Tools**|z.B. Testdaten-Generatoren|
|**Testautomatisierung**|z.B. Selenium, JUnit|
|**Defektmanagement-Tools**|z.B. Bugzilla, Jira|
|**Performance-Testtools**|z.B. JMeter|
|**Coverage-Tools**|z.B. Jacoco|
---
### 6.4 Auswahl & Einführung von Tools
#### Auswahlkriterien:
- Projekt- & Teamgröße
- Integration in bestehende Infrastruktur
- Schulungsbedarf
- Support & Lizenzmodell
#### Einführungsprozess:
1. **Bedarf klären**
2. **Tool evaluieren & auswählen**
3. **Pilotphase**
4. **Rollout**
5. **Wartung & kontinuierliche Verbesserung**
---
### 6.5 Automatisierung sinnvoll einsetzen
#### Typische Einsatzszenarien:
- **Regressionstests**
- **Build-Verifikation (CI/CD)**
- **Performance-Messung**
- **Datengetriebenes Testen**
➡️ **Automatisierung ≠ universell sinnvoll**
- Bei **explorativem Testen**, UX-Tests oder stark ändernden UIs → lieber manuell
---
## ✅ KLAUSURRELEVANTE MERKPUNKTE
|Thema|Merksatz|
|---|---|
|Toolnutzen|**Effizienz & Konsistenz**, aber kein Allheilmittel|
|Risiken|**Falsche Erwartungen**, hoher Einführungsaufwand|
|Toolauswahl|Nach **Projektkontext & Integration** wählen|
|Automatisierung|Gut für **wiederholbare, stabile Tests**|
|Defektmanagement|Erlaubt **systematische Fehlerverfolgung**|

View File

@@ -0,0 +1,11 @@
# Durchlesen der Zusammenfassungen
- [ ] Kap 0
- [ ] Kap 1
- [ ] Kap 2
- [ ] Kap 3
- [ ] Kap 4-1
- [ ] Kap 4-2
- [ ] Kap 5
- [ ] Kap 6
## Bearbeitung der Aufgaben

View File

@@ -1,17 +0,0 @@
# Conflicts
Please resolve them and commit them using the commands `Git: Commit all changes` followed by `Git: Push`
(This file will automatically be deleted before commit)
[[#Additional Instructions]] available below file list
- Not a file: .obsidian/workspace.json
# Additional Instructions
I strongly recommend to use "Source mode" for viewing the conflicted files. For simple conflicts, in each file listed above replace every occurrence of the following text blocks with the desired text.
```diff
<<<<<<< HEAD
File changes in local repository
=======
File changes in remote repository
>>>>>>> origin/main
```