vault backup: 2024-10-16 09:12:37

This commit is contained in:
boris
2024-10-16 09:12:37 +01:00
parent bad31f35c5
commit 124e0b67ef
190 changed files with 192115 additions and 0 deletions

16
.obsidian/app.json vendored Normal file
View File

@@ -0,0 +1,16 @@
{
"showInlineTitle": true,
"useMarkdownLinks": true,
"promptDelete": true,
"showLineNumber": true,
"attachmentFolderPath": "images",
"pdfExportSettings": {
"pageSize": "A4",
"landscape": false,
"margin": "0",
"downscalePercent": 64
},
"readableLineLength": false,
"alwaysUpdateLinks": true,
"newFileLocation": "current"
}

7
.obsidian/appearance.json vendored Normal file
View File

@@ -0,0 +1,7 @@
{
"accentColor": "#4f78d8",
"theme": "obsidian",
"cssTheme": "Things",
"nativeMenus": true,
"baseFontSize": 16
}

18
.obsidian/bookmarks.json vendored Normal file
View File

@@ -0,0 +1,18 @@
{
"items": [
{
"type": "file",
"ctime": 1695299728113,
"path": "Semester 1/Web Development and HCI/Week 1/Week 1 Web Development.md",
"subpath": "#^401105",
"title": "WebDev Assessment Deadline"
},
{
"type": "file",
"ctime": 1695715480041,
"path": "Semester 1/Professional Development & Practices/Week 1/Week 1 Professional Development.md",
"subpath": "#^af5cab",
"title": "PDP Weighting"
}
]
}

11
.obsidian/community-plugins.json vendored Normal file
View File

@@ -0,0 +1,11 @@
[
"obsidian-git",
"obsidian-excel-to-markdown-table",
"obsidian-linter",
"omnisearch",
"obsidian-full-calendar",
"obsidian-style-settings",
"url-into-selection",
"obsidian-csv-table",
"mermaid-tools"
]

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

@@ -0,0 +1,30 @@
{
"file-explorer": true,
"global-search": true,
"switcher": true,
"graph": true,
"backlink": true,
"canvas": false,
"outgoing-link": true,
"tag-pane": true,
"properties": true,
"page-preview": true,
"daily-notes": false,
"templates": false,
"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": false,
"file-recovery": true,
"publish": false,
"sync": false
}

18
.obsidian/core-plugins.json vendored Normal file
View File

@@ -0,0 +1,18 @@
[
"file-explorer",
"global-search",
"switcher",
"graph",
"backlink",
"outgoing-link",
"tag-pane",
"properties",
"page-preview",
"note-composer",
"command-palette",
"editor-status",
"bookmarks",
"outline",
"word-count",
"file-recovery"
]

22
.obsidian/graph.json vendored Normal file
View File

@@ -0,0 +1,22 @@
{
"collapse-filter": false,
"search": "",
"showTags": false,
"showAttachments": false,
"hideUnresolved": false,
"showOrphans": true,
"collapse-color-groups": false,
"colorGroups": [],
"collapse-display": true,
"showArrow": false,
"textFadeMultiplier": 0,
"nodeSizeMultiplier": 1,
"lineSizeMultiplier": 1,
"collapse-forces": true,
"centerStrength": 0.518713248970312,
"repelStrength": 10,
"linkStrength": 1,
"linkDistance": 250,
"scale": 1,
"close": true
}

29
.obsidian/hotkeys.json vendored Normal file
View File

@@ -0,0 +1,29 @@
{
"file-explorer:open": [
{
"modifiers": [
"Mod",
"Shift"
],
"key": "E"
}
],
"obsidian-diagrams-net:app:diagrams-net-new-diagram": [
{
"modifiers": [
"Mod",
"Shift"
],
"key": "D"
}
],
"obsidian-linter:lint-all-files": [
{
"modifiers": [
"Alt",
"Mod"
],
"key": "S"
}
]
}

View File

@@ -0,0 +1,6 @@
{
"enabled": false,
"typewriterOffset": 0,
"zenEnabled": true,
"zenOpacity": 0.75
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
{
"id": "cm-typewriter-scroll-obsidian",
"name": "Typewriter Scroll",
"author": "death_au",
"authorUrl": "https://github.com/deathau",
"description": "Typewriter-style scrolling which keeps the view centered in the editor.",
"isDesktopOnly": false,
"version": "0.2.2",
"minAppVersion": "0.10.0"
}

View File

@@ -0,0 +1,6 @@
body.plugin-cm-typewriter-scroll-zen .CodeMirror-lines:not(.selecting) .CodeMirror-code > :not(.CodeMirror-activeline) {
opacity: var(--zen-opacity);
}
body.plugin-cm-typewriter-scroll-zen .cm-editor.cm-focused .cm-line:not(.cm-active) {
opacity: var(--zen-opacity);
}

20723
.obsidian/plugins/dataview/main.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

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

146
.obsidian/plugins/dataview/styles.css vendored Normal 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: ")";
}

View File

@@ -0,0 +1,10 @@
{
"welcomeComplete": true,
"theme": {
"dark": true,
"layout": "compact"
},
"drawing": {
"sketch": false
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
{
"id": "drawio-obsidian",
"name": "Diagrams",
"version": "1.5.0",
"minAppVersion": "0.9.12",
"description": "Draw.io diagrams for Obsidian. This plugin introduces diagrams that can be included within notes or as stand-alone files. Diagrams are created as SVG files (although .drawio extensions are also supported).",
"author": "Sam Greenhalgh",
"authorUrl": "https://www.radicalresearch.co.uk/",
"isDesktopOnly": true
}

View File

@@ -0,0 +1,28 @@
.progress-bar-line {
width: 100%;
left: 0;
}
.progress-bar-indicator {
width: 90%;
margin: 0 10%;
}
.diagram-view svg {
max-width: 100%;
max-height: 100%;
display: block;
}
.diagram-view svg a:link,
.diagram-view svg a:visited {
color: var(--interactive-accent, #00f);
filter: drop-shadow(
0 0 3px rgba(var(--interactive-accent-rgb, "0, 0, 255"), 0.5)
);
}
.diagram-view svg a:hover {
color: var(--interactive-accent-hover, #00f);
filter: drop-shadow(0 0 3px var(--interactive-accent-hover, #00f));
}

View File

@@ -0,0 +1,5 @@
{
"startupSetting": true,
"lifecycleSetting": "3",
"savePathSetting": "/home/boris/Documents/Obsidian"
}

5388
.obsidian/plugins/local-backup/main.js vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,13 @@
{
"id": "local-backup",
"name": "Local Backup",
"version": "0.1.7",
"minAppVersion": "0.15.0",
"description": "Automatically creates a local backup of the vault.",
"author": "GC Chen",
"authorUrl": "https://github.com/cgcel/obsidian-local-backup",
"fundingUrl": "https://www.buymeacoffee.com/cgcel",
"isDesktopOnly": true,
"js": "main.js",
"tags": ["backup"]
}

View File

@@ -0,0 +1,775 @@
{
"categories": {
"Flowchart": "Flowchart",
"SequenceDiagram": "SequenceDiagram",
"ClassDiagram": "ClassDiagram",
"StateDiagram": "StateDiagram",
"EntityRelationshipDiagram": "EntityRelationshipDiagram",
"UserJourneyDiagram": "UserJourneyDiagram",
"GanttChart": "GanttChart",
"PieChart": "PieChart",
"RequirementDiagram": "RequirementDiagram",
"GitGraph": "GitGraph",
"Mindmap": "Mindmap",
"Timeline": "Timeline",
"C4Diagram": "C4Diagram",
"QuadrantChart": "QuadrantChart",
"SankeyDiagram": "SankeyDiagram",
"XyChart": "XyChart"
},
"elements": [
{
"id": "f0b470f6-e758-40a1-b83a-ee8877bab687",
"category": "Flowchart",
"description": "a simple flowchart with top to down direction",
"content": "flowchart TD\nStart --> Stop",
"sortingOrder": 1,
"isPinned": false
},
{
"id": "c8f4d7ae-2ad7-439c-b29e-b955b1b4843e",
"category": "Flowchart",
"description": "a simple flowchart with left to right direction",
"content": "flowchart LR\nStart --> Stop",
"sortingOrder": 2,
"isPinned": false
},
{
"id": "0d341c0f-f212-4b95-a933-4cea34d7d9ff",
"category": "Flowchart",
"description": "A node with round edges",
"content": "id1(Some text)",
"sortingOrder": 3,
"isPinned": false
},
{
"id": "b7130fb4-47b2-43b7-be7e-766b8d63b2a6",
"category": "Flowchart",
"description": "A stadium-shaped node",
"content": "id1([Some text])",
"sortingOrder": 4,
"isPinned": false
},
{
"id": "3d1f71ab-5695-4c56-91fc-c7691065bdaa",
"category": "Flowchart",
"description": "A node in a cylindrical shape",
"content": "id1[(Database)]",
"sortingOrder": 5,
"isPinned": false
},
{
"id": "05ee45db-6f42-4c2c-b16b-2992921e2b90",
"category": "Flowchart",
"description": "Circle",
"content": "id1((Some text))",
"sortingOrder": 6,
"isPinned": false
},
{
"id": "62806473-c5d9-4f8e-8269-9ff81d21b555",
"category": "Flowchart",
"description": "Rhombus",
"content": "id1{Some text}",
"sortingOrder": 7,
"isPinned": false
},
{
"id": "e0b82242-e824-4cff-a875-aa1497ca323e",
"category": "Flowchart",
"description": "Hexagon",
"content": "id1{{Some text}}",
"sortingOrder": 8,
"isPinned": false
},
{
"id": "a3624459-1eaa-4c4c-8f58-77f0b2f24317",
"category": "Flowchart",
"description": "Parallelogram skewed right",
"content": "id1[/Some text/]",
"sortingOrder": 9,
"isPinned": false
},
{
"id": "3c43f246-7f2e-42ad-a547-fa4f74379f4c",
"category": "Flowchart",
"description": "Parallelogram skewed left",
"content": "id1[\\Some text\\]",
"sortingOrder": 10,
"isPinned": false
},
{
"id": "4994bf34-7776-4b11-a913-ff30a5dd96c0",
"category": "Flowchart",
"description": "Trapezoid",
"content": "A[/Some text\\]",
"sortingOrder": 11,
"isPinned": false
},
{
"id": "d1637dee-0e3d-4c00-861f-030127faba04",
"category": "Flowchart",
"description": "Trapezoid upside down",
"content": "A[\\Some text/]",
"sortingOrder": 12,
"isPinned": false
},
{
"id": "1b0c8a81-43a3-4fe4-9fe1-df069b5f58ef",
"category": "Flowchart",
"description": "Double circle node",
"content": "id1(((Some text)))",
"sortingOrder": 13,
"isPinned": false
},
{
"id": "2d12f3b2-4e8c-43ba-9547-2f195b01fda3",
"category": "Flowchart",
"description": "A link with arrow head",
"content": "A-->B",
"sortingOrder": 14,
"isPinned": false
},
{
"id": "b65a89eb-445f-4893-91b4-8e8f6e8263d0",
"category": "Flowchart",
"description": "An open link",
"content": "A --- B",
"sortingOrder": 15,
"isPinned": false
},
{
"id": "ac373a66-7204-4a53-825a-eb6fbc493c4a",
"category": "Flowchart",
"description": "Text on links",
"content": "A-- This is the text! ---B",
"sortingOrder": 16,
"isPinned": false
},
{
"id": "405d1a66-a98d-497b-a518-4eb983d42954",
"category": "Flowchart",
"description": "A link with arrow head and text",
"content": "A-->|text|B",
"sortingOrder": 17,
"isPinned": false
},
{
"id": "2d72edb7-af63-4a2a-8b6f-cb2194a77c22",
"category": "Flowchart",
"description": "Dotted link",
"content": "A-.->B",
"sortingOrder": 18,
"isPinned": false
},
{
"id": "81d9ebb0-a88f-49b1-94e4-99ba6e7830c6",
"category": "Flowchart",
"description": "Thick link",
"content": "A ==> B",
"sortingOrder": 19,
"isPinned": false
},
{
"id": "34590175-e487-406c-87c0-af36aff52227",
"category": "Flowchart",
"description": "Invisible link",
"content": "A ~~~ B",
"sortingOrder": 20,
"isPinned": false
},
{
"id": "09e29cb2-2d29-4a03-adfd-1b114bf0c652",
"category": "Flowchart",
"description": "Link with circle edge",
"content": "A --o B",
"sortingOrder": 21,
"isPinned": false
},
{
"id": "3e83e974-06e1-455b-b06d-4e03528e7034",
"category": "Flowchart",
"description": "Link with cross edge",
"content": "A --x B",
"sortingOrder": 22,
"isPinned": false
},
{
"id": "e912d1f6-4c16-45fd-abcb-ec4905baa94a",
"category": "Flowchart",
"description": "Subgraph",
"content": "subgraph one\na1-->a2\nend",
"sortingOrder": 14,
"isPinned": false
},
{
"id": "b97108ee-8e30-4191-9581-fb3217dadae8",
"category": "SequenceDiagram",
"description": "a simple sequence diagram",
"content": "sequenceDiagram\nAlice->>John: Hello John, how are you?\nJohn-->>Alice: Great!\nAlice-)John: See you later!",
"sortingOrder": 0,
"isPinned": false
},
{
"id": "8302a3e3-23c7-467e-9b77-bc4ff89c2939",
"category": "SequenceDiagram",
"description": "a simple sequence diagram with actors",
"content": "sequenceDiagram\nactor Alice\nactor John\nAlice->>John: Hello John, how are you?\nJohn-->>Alice: Great!\nAlice-)John: See you later!",
"sortingOrder": 1,
"isPinned": false
},
{
"id": "7517b980-928d-4067-b032-e9bcaece4368",
"category": "ClassDiagram",
"description": "sample class",
"content": "class Duck{\n +String beakColor\n +swim()\n +quack()\n }",
"sortingOrder": 0,
"isPinned": false
},
{
"id": "c9f304da-ed52-4d9c-80ae-f4e583ea4bf4",
"category": "ClassDiagram",
"description": "sample class",
"content": "class BankAccount\n BankAccount : +String owner\n BankAccount : +Bigdecimal balance\n BankAccount : +deposit(amount)\n BankAccount : +withdrawal(amount)",
"sortingOrder": 1,
"isPinned": false
},
{
"id": "bf93cb8c-4c06-4fea-973a-d9ada4c4bb65",
"category": "ClassDiagram",
"description": "generic class",
"content": "class Square~Shape~{\n int id\n List~int~ position\n setPoints(List~int~ points)\n getPoints() List~int~\n }\n \n Square : -List~string~ messages\n Square : +setMessages(List~string~ messages)\n Square : +getMessages() List~string~",
"sortingOrder": 2,
"isPinned": false
},
{
"id": "782a4caf-bcb4-479b-b084-6cdaf9b87bb7",
"category": "ClassDiagram",
"description": "inheritance",
"content": "classA <|-- classB",
"sortingOrder": 3,
"isPinned": false
},
{
"id": "a2f694b0-b9a2-4c51-b0d2-e30f1513a62f",
"category": "ClassDiagram",
"description": "composition",
"content": "classC *-- classD",
"sortingOrder": 4,
"isPinned": false
},
{
"id": "adbea3a9-c070-44c9-8aaf-34780d330c40",
"category": "ClassDiagram",
"description": "aggregation",
"content": "classE o-- classF",
"sortingOrder": 5,
"isPinned": false
},
{
"id": "c98bdcb6-2490-48f5-8373-2cd456e2c435",
"category": "ClassDiagram",
"description": "association",
"content": "classG <-- classH",
"sortingOrder": 6,
"isPinned": false
},
{
"id": "4c58d09d-91ca-4de4-adb9-b85282b79d7f",
"category": "ClassDiagram",
"description": "solid link",
"content": "classI -- classJ",
"sortingOrder": 7,
"isPinned": false
},
{
"id": "c1830a64-1247-4176-8439-c9badac5fd39",
"category": "ClassDiagram",
"description": "dependency",
"content": "classK <.. classL",
"sortingOrder": 8,
"isPinned": false
},
{
"id": "5218e72c-db76-48a3-8dd7-7cd39e5499b0",
"category": "ClassDiagram",
"description": "realization",
"content": "classM <|.. classN",
"sortingOrder": 9,
"isPinned": false
},
{
"id": "34819115-9a4f-432f-8fcd-abffbd3851b3",
"category": "ClassDiagram",
"description": "dashed link",
"content": "classO .. classP",
"sortingOrder": 10,
"isPinned": false
},
{
"id": "07f02636-7c88-4c50-8249-b4f9fd922699",
"category": "ClassDiagram",
"description": "two-way relation",
"content": "Animal <|--|> Zebra",
"sortingOrder": 11,
"isPinned": false
},
{
"id": "629680af-30d3-4e6e-8b14-b77eee92fe33",
"category": "ClassDiagram",
"description": "sample class diagram",
"content": "classDiagram\n Animal <|-- Duck\n Animal <|-- Fish\n Animal <|-- Zebra\n Animal : +int age\n Animal : +String gender\n Animal: +isMammal()\n Animal: +mate()\n class Duck{\n +String beakColor\n +swim()\n +quack()\n }\n class Fish{\n -int sizeInFeet\n -canEat()\n }\n class Zebra{\n +bool is_wild\n +run()\n }",
"sortingOrder": 12,
"isPinned": false
},
{
"id": "b729d6a2-56fc-47a1-9d20-ff4edc7dbc9f",
"category": "StateDiagram",
"description": "a sample state diagram",
"content": "stateDiagram-v2\n [*] --> Still\n Still --> [*]\n \n Still --> Moving\n Moving --> Still\n Moving --> Crash\n Crash --> [*]",
"sortingOrder": 0,
"isPinned": false
},
{
"id": "202e804d-3cc2-4193-aa3f-6f453aebabe7",
"category": "StateDiagram",
"description": "a sample state diagram with left-to-right direction",
"content": "stateDiagram-v2\n direction LR\n [*] --> Still\n Still --> [*]\n \n Still --> Moving\n Moving --> Still\n Moving --> Crash\n Crash --> [*]",
"sortingOrder": 1,
"isPinned": false
},
{
"id": "33746916-9359-44ce-a67f-ee3e9d892b2f",
"category": "StateDiagram",
"description": "node with description",
"content": "s2 : This is a state description",
"sortingOrder": 2,
"isPinned": false
},
{
"id": "b578cd8a-f522-456f-b113-bdf5326b3fe8",
"category": "StateDiagram",
"description": "a transition",
"content": "s1 --> s2",
"sortingOrder": 3,
"isPinned": false
},
{
"id": "0f3325b1-3712-4cbf-a6ec-0c626d0b805e",
"category": "StateDiagram",
"description": "a transition with label",
"content": "s1 --> s2: A transition",
"sortingOrder": 4,
"isPinned": false
},
{
"id": "7dceb7de-cd40-4c05-ad54-4077a91eead1",
"category": "StateDiagram",
"description": "composite state",
"content": "\n [*] --> First\n state First {\n [*] --> second\n second --> [*]\n }",
"sortingOrder": 5,
"isPinned": false
},
{
"id": "6ff8f945-a713-4c3b-9574-10f4df026c1f",
"category": "StateDiagram",
"description": "diagram with choice",
"content": "stateDiagram-v2\n state if_state <<choice>>\n [*] --> IsPositive\n IsPositive --> if_state\n if_state --> False: if n < 0\n if_state --> True : if n >= 0",
"sortingOrder": 6,
"isPinned": false
},
{
"id": "3cf86621-2a99-40b7-9e7e-fb533fbaa68d",
"category": "StateDiagram",
"description": "diagram with fork",
"content": "stateDiagram-v2\n state fork_state <<fork>>\n [*] --> fork_state\n fork_state --> State2\n fork_state --> State3\n \n state join_state <<join>>\n State2 --> join_state\n State3 --> join_state\n join_state --> State4\n State4 --> [*]",
"sortingOrder": 7,
"isPinned": false
},
{
"id": "f5b8a154-1722-4ccf-931c-3c8f7543ef56",
"category": "StateDiagram",
"description": "a diagram with concurrency",
"content": "stateDiagram-v2\n [*] --> Active\n \n state Active {\n [*] --> NumLockOff\n NumLockOff --> NumLockOn : EvNumLockPressed\n NumLockOn --> NumLockOff : EvNumLockPressed\n --\n [*] --> CapsLockOff\n CapsLockOff --> CapsLockOn : EvCapsLockPressed\n CapsLockOn --> CapsLockOff : EvCapsLockPressed\n --\n [*] --> ScrollLockOff\n ScrollLockOff --> ScrollLockOn : EvScrollLockPressed\n ScrollLockOn --> ScrollLockOff : EvScrollLockPressed\n }",
"sortingOrder": 8,
"isPinned": false
},
{
"id": "8f570530-6f1f-4f62-961a-b25c81a5f3d3",
"category": "EntityRelationshipDiagram",
"description": "a sample entity relationship diagram",
"content": "erDiagram\n CUSTOMER ||--o{ ORDER : places\n ORDER ||--|{ LINE-ITEM : contains\n CUSTOMER }|..|{ DELIVERY-ADDRESS : uses",
"sortingOrder": 0,
"isPinned": false
},
{
"id": "bda50acd-6d9d-4761-b4a1-9d46fa0e529d",
"category": "EntityRelationshipDiagram",
"description": "an entity",
"content": " CUSTOMER {\n string name\n string custNumber\n string sector\n }",
"sortingOrder": 1,
"isPinned": false
},
{
"id": "b34b4ecb-dde3-4774-bb95-451592d3962d",
"category": "EntityRelationshipDiagram",
"description": "one-to-many relationship",
"content": "A ||--|{ B : label",
"sortingOrder": 2,
"isPinned": false
},
{
"id": "186bd61c-75d8-45d9-8fbc-7c75ba382934",
"category": "EntityRelationshipDiagram",
"description": "many-to-many relationship",
"content": "A }|--|{ B : label",
"sortingOrder": 3,
"isPinned": false
},
{
"id": "d59103dc-aa07-42ca-a9ef-99206967f64b",
"category": "EntityRelationshipDiagram",
"description": "one-to-one relationship",
"content": "A ||--|| B : label",
"sortingOrder": 4,
"isPinned": false
},
{
"id": "cc04e766-d90e-417e-9965-ca61c5227619",
"category": "EntityRelationshipDiagram",
"description": "many-to-one relationship",
"content": "A }|--|| B : label",
"sortingOrder": 5,
"isPinned": false
},
{
"id": "728a5cd8-bf05-45a2-bb3d-d3e60a1972fb",
"category": "EntityRelationshipDiagram",
"description": "zero/one-to-one relationship",
"content": "A |o--|| B : label",
"sortingOrder": 6,
"isPinned": false
},
{
"id": "c671792a-c9fc-4fec-a2f1-1c2e731438d6",
"category": "EntityRelationshipDiagram",
"description": "one-to-one/zero relationship",
"content": "A ||--o| B : label",
"sortingOrder": 7,
"isPinned": false
},
{
"id": "435b1b1a-7d2a-41c7-8819-61f8d40a1e36",
"category": "EntityRelationshipDiagram",
"description": "zero-or-more-to-one relationship",
"content": "A }o--|| B : label",
"sortingOrder": 8,
"isPinned": false
},
{
"id": "073e36a5-549d-4188-80b6-dba7b4cf4a6c",
"category": "EntityRelationshipDiagram",
"description": "one-to-zero-or-more relationship",
"content": "A ||--o{ B : label",
"sortingOrder": 9,
"isPinned": false
},
{
"id": "f26adf9c-95cb-49e4-a762-8e92662ef391",
"category": "EntityRelationshipDiagram",
"description": "zero-or-more-to-many relationship",
"content": "A }o--|{ B : label",
"sortingOrder": 10,
"isPinned": false
},
{
"id": "f41b436c-7eeb-4fc8-8299-9bedae50ddf6",
"category": "EntityRelationshipDiagram",
"description": "many-to-zero-or-more relationship",
"content": "A }|--o{ B : label",
"sortingOrder": 11,
"isPinned": false
},
{
"id": "b5c9e252-5913-40da-9727-9ae4df412301",
"category": "UserJourneyDiagram",
"description": "a sample user journey diagram",
"content": "journey\n title My working day\n section Go to work\n Make tea: 5: Me\n Go upstairs: 3: Me\n Do work: 1: Me, Cat\n section Go home\n Go downstairs: 5: Me\n Sit down: 5: Me",
"sortingOrder": 0,
"isPinned": false
},
{
"id": "2f8a880d-c5ff-4621-a6bc-4da7a3f6161d",
"category": "UserJourneyDiagram",
"description": "a step in user journey",
"content": " Step Title: 5: ActorName",
"sortingOrder": 1,
"isPinned": false
},
{
"id": "17d7b59b-a5bf-4cee-af6e-2c8ab524b58a",
"category": "GanttChart",
"description": "simple gantt chart",
"content": "gantt\n title A Gantt Diagram\n dateFormat YYYY-MM-DD\n section Section\n A task :a1, 2014-01-01, 30d\n Another task :after a1 , 20d\n section Another\n Task in sec :2014-01-12 , 12d\n another task : 24d",
"sortingOrder": 0,
"isPinned": false
},
{
"id": "ada6159a-fbdf-4cab-8279-e0c2ec09334f",
"category": "GanttChart",
"description": "rich gantt chart",
"content": "gantt\n dateFormat YYYY-MM-DD\n title Adding GANTT diagram functionality to mermaid\n excludes weekends\n \n section A section\n Completed task :done, des1, 2014-01-06,2014-01-08\n Active task :active, des2, 2014-01-09, 3d\n Future task : des3, after des2, 5d\n Future task2 : des4, after des3, 5d\n \n section Critical tasks\n Completed task in the critical line :crit, done, 2014-01-06,24h\n Implement parser and jison :crit, done, after des1, 2d\n Create tests for parser :crit, active, 3d\n Future task in critical line :crit, 5d\n Create tests for renderer :2d\n Add to mermaid :1d\n Functionality added :milestone, 2014-01-25, 0d\n \n section Documentation\n Describe gantt syntax :active, a1, after des1, 3d\n Add gantt diagram to demo page :after a1 , 20h\n Add another diagram to demo page :doc1, after a1 , 48h\n \n section Last section\n Describe gantt syntax :after doc1, 3d\n Add gantt diagram to demo page :20h\n Add another diagram to demo page :48h",
"sortingOrder": 1,
"isPinned": false
},
{
"id": "9455ce9c-d136-4ce5-97c8-dea67c643edc",
"category": "GanttChart",
"description": "milestones example",
"content": "gantt\n dateFormat HH:mm\n axisFormat %H:%M\n Initial milestone : milestone, m1, 17:49,2min\n taska2 : 10min\n taska3 : 5min\n Final milestone : milestone, m2, 18:14, 2min",
"sortingOrder": 2,
"isPinned": false
},
{
"id": "d1debb13-ea98-481e-b3e7-7d736131ec6c",
"category": "PieChart",
"description": "sample pie chart",
"content": "pie title /r/obsidianmd posts by type\n \"Look at my awesome graph\" : 85\n \"Look at my cool dashboard\" : 14\n \"Moved from Notion, liking it\" : 1",
"sortingOrder": 0,
"isPinned": false
},
{
"id": "b38f6ae2-908e-4129-9d68-7b78e8adbf36",
"category": "PieChart",
"description": "sample pie chart with values shown in legend",
"content": "pie showdata\n title /r/obsidianmd posts by type\n \"Graphs\" : 85\n \"Dashboards\" : 14\n \"Tips\" : 1",
"sortingOrder": 1,
"isPinned": false
},
{
"id": "9c4f6451-6a32-4750-9b9d-98be0763372b",
"category": "RequirementDiagram",
"description": "sample requirements diagram",
"content": " requirementDiagram\n\n requirement test_req {\n id: 1\n text: the test text.\n risk: high\n verifymethod: test\n }\n \n element test_entity {\n type: simulation\n }\n \n test_entity - satisfies -> test_req",
"sortingOrder": 0,
"isPinned": false
},
{
"id": "b6ca2fc5-5048-4dca-a46f-432d6b3de467",
"category": "RequirementDiagram",
"description": "sample requirements diagram",
"content": "element customElement {\n type: customType\n docref: customDocRef\n }",
"sortingOrder": 1,
"isPinned": false
},
{
"id": "d8a91025-62e1-4373-b25c-25b21963843e",
"category": "RequirementDiagram",
"description": "a requirement with high risk",
"content": "functionalRequirement myReq {\n id: reqId\n text: someText\n risk: High\n verifymethod: analysis\n }",
"sortingOrder": 2,
"isPinned": false
},
{
"id": "29c26c80-e603-437d-882e-3c850feb1534",
"category": "RequirementDiagram",
"description": "sample requirements diagram",
"content": "interfaceRequirement myReq2 {\n id: reqId\n text: someText\n risk: Medium\n verifymethod: demonstration\n }",
"sortingOrder": 3,
"isPinned": false
},
{
"id": "65423e9f-032a-46bb-939a-620aacb72c1b",
"category": "RequirementDiagram",
"description": "sample requirements diagram",
"content": "designConstraint myReq3 {\n id: reqId\n text: someText\n risk: Low\n verifymethod: test\n }",
"sortingOrder": 4,
"isPinned": false
},
{
"id": "f3c005e4-c1ca-4c59-8981-7d0199840c78",
"category": "GitGraph",
"description": "simple git graph",
"content": "gitGraph\n commit\n commit\n branch develop\n checkout develop\n commit\n commit\n checkout main\n merge develop\n commit\n commit",
"sortingOrder": 0,
"isPinned": false
},
{
"id": "e1dc1d49-17ed-4821-b8f4-4ea7e69dc6ea",
"category": "GitGraph",
"description": "tagged commit",
"content": "commit id: \"Normal\" tag: \"v1.0.0\"",
"sortingOrder": 1,
"isPinned": false
},
{
"id": "c2daef1c-2fe9-4762-af73-274dd20c3922",
"category": "GitGraph",
"description": "reverse commit",
"content": "commit id: \"Reverse\" type: REVERSE",
"sortingOrder": 2,
"isPinned": false
},
{
"id": "f9b1b682-5ba9-4b0f-8491-37e8c00745e7",
"category": "GitGraph",
"description": "highlighted commit",
"content": "commit id: \"Highlight\" type: HIGHLIGHT",
"sortingOrder": 3,
"isPinned": false
},
{
"id": "243c6251-5898-4cd6-8453-85684c423dee",
"category": "GitGraph",
"description": "reverse commit",
"content": "commit id: \"Reverse\" type: REVERSE",
"sortingOrder": 4,
"isPinned": false
},
{
"id": "0c003837-d67c-4e12-afea-ac495d38e404",
"category": "GitGraph",
"description": "git graph with cherry-pick",
"content": "gitGraph\n commit id: \"ZERO\"\n branch develop\n commit id:\"A\"\n checkout main\n commit id:\"ONE\"\n checkout develop\n commit id:\"B\"\n checkout main\n commit id:\"TWO\"\n cherry-pick id:\"A\"\n commit id:\"THREE\"\n checkout develop\n commit id:\"C\"",
"sortingOrder": 5,
"isPinned": false
},
{
"id": "79cfc768-1500-47e8-8827-b33b28f9ebb0",
"category": "Mindmap",
"description": "a simple mindmap",
"content": "mindmap\n Root\n A\n B\n C",
"sortingOrder": 1,
"isPinned": false
},
{
"id": "9f4648c8-0697-4b09-8f45-847f11f9bdca",
"category": "Mindmap",
"description": "square",
"content": "id[I am a square]",
"sortingOrder": 2,
"isPinned": false
},
{
"id": "eec294f8-60a6-4a5f-a6a1-ead4c5f5af77",
"category": "Mindmap",
"description": "rounded square",
"content": "id(I am a rounded square)",
"sortingOrder": 3,
"isPinned": false
},
{
"id": "48f045fc-30db-4f14-9b16-04c72f4ca067",
"category": "Mindmap",
"description": "circle",
"content": "id((I am a circle))",
"sortingOrder": 4,
"isPinned": false
},
{
"id": "0980f34a-2627-46be-9f63-7924d9db8b20",
"category": "Mindmap",
"description": "bang",
"content": "id))I am a bang((",
"sortingOrder": 5,
"isPinned": false
},
{
"id": "ff554a9c-5d63-43d8-9de7-2b7cc8945fd8",
"category": "Mindmap",
"description": "cloud",
"content": "id)I am a cloud(",
"sortingOrder": 6,
"isPinned": false
},
{
"id": "0ffe41de-a327-4e5e-9191-f21dea9be077",
"category": "Mindmap",
"description": "hexagon",
"content": "id{{I am a hexagon}}",
"sortingOrder": 7,
"isPinned": false
},
{
"id": "73c96ed1-9f4e-4c00-a8bb-96f6dc32e9d1",
"category": "Mindmap",
"description": "default",
"content": "I am the default shape",
"sortingOrder": 8,
"isPinned": false
},
{
"id": "2e741382-2b79-4c8e-be64-bd8818bacbc9",
"category": "Mindmap",
"description": "sample mindmap",
"content": "mindmap\n root((mindmap))\n Origins\n Long history\n Popularisation\n British popular psychology author Tony Buzan\n Research\n On effectiveness<br/>and features\n On Automatic creation\n Uses\n Creative techniques\n Strategic planning\n Argument mapping\n Tools\n Pen and paper\n Mermaid",
"sortingOrder": 9,
"isPinned": false
},
{
"id": "fd8a19e0-fd13-42b0-bc3d-f70f4a517ea6",
"category": "Timeline",
"description": "sample timeline",
"content": "timeline\n\t\ttitle History of Social Media Platform\n\t\t2002 : LinkedIn\n\t\t2004 : Facebook\n\t\t\t : Google\n\t\t2005 : Youtube\n\t\t2006 : Twitter",
"sortingOrder": 1,
"isPinned": false
},
{
"id": "26851611-0f5e-4903-bc1d-aaf20d91a7ab",
"category": "Timeline",
"description": "timeline with grouping",
"content": "timeline\n\t\ttitle Timeline of Industrial Revolution\n\t\tsection 17th-20th century\n\t\t\tIndustry 1.0 : Machinery, Water power, Steam <br>power\n\t\t\tIndustry 2.0 : Electricity, Internal combustion engine, Mass production\n\t\t\tIndustry 3.0 : Electronics, Computers, Automation\n\t\tsection 21st century\n\t\t\tIndustry 4.0 : Internet, Robotics, Internet of Things\n\t\t\tIndustry 5.0 : Artificial intelligence, Big data,3D printing",
"sortingOrder": 2,
"isPinned": false
},
{
"id": "7bc16821-c2f6-402d-acfe-41625398a383",
"category": "Timeline",
"description": "timeline with Forest theme. see the docs for additional themes",
"content": "%%{init: { 'logLevel': 'debug', 'theme': 'forest' } }%%\n\t\ttimeline\n\t\t\ttitle History of Social Media Platform\n\t\t\t 2002 : LinkedIn\n\t\t\t 2004 : Facebook : Google\n\t\t\t 2005 : Youtube\n\t\t\t 2006 : Twitter\n\t\t\t 2007 : Tumblr\n\t\t\t 2008 : Instagram\n\t\t\t 2010 : Pinterest",
"sortingOrder": 3,
"isPinned": false
},
{
"id": "5ebc370e-37e0-475f-8036-c18e5144f0cd",
"category": "QuadrantChart",
"description": "sample quadrant chart",
"content": "quadrantChart\n\t\ttitle Reach and engagement of campaigns\n\t\tx-axis Low Reach --> High Reach\n\t\ty-axis Low Engagement --> High Engagement\n\t\tquadrant-1 We should expand\n\t\tquadrant-2 Need to promote\n\t\tquadrant-3 Re-evaluate\n\t\tquadrant-4 May be improved\n\t\tCampaign A: [0.3, 0.6]\n\t\tCampaign B: [0.45, 0.23]\n\t\tCampaign C: [0.57, 0.69]\n\t\tCampaign D: [0.78, 0.34]\n\t\tCampaign E: [0.40, 0.34]\n\t\tCampaign F: [0.35, 0.78]",
"sortingOrder": 1,
"isPinned": false
},
{
"id": "c4283670-6d36-425d-abe9-ffc0251d4dab",
"category": "QuadrantChart",
"description": "themed quadrant chart",
"content": "%%{init: {\"quadrantChart\": {\"chartWidth\": 400, \"chartHeight\": 400}, \"themeVariables\": {\"quadrant1TextFill\": \"#ff0000\"} }}%%\n\t\tquadrantChart\n\t\t x-axis Urgent --> Not Urgent\n\t\t y-axis Not Important --> \"Important ❤\"\n\t\t quadrant-1 Plan\n\t\t quadrant-2 Do\n\t\t quadrant-3 Delegate\n\t\t quadrant-4 Delete",
"sortingOrder": 1,
"isPinned": false
},
{
"id": "c7226c80-ae6d-49e5-b974-69107b83cb81",
"category": "C4Diagram",
"description": "sample C4 diagram (compatible with PlantUML)",
"content": "C4Context\n\t\ttitle System Context diagram for Internet Banking System\n\t\tEnterprise_Boundary(b0, \"BankBoundary0\") {\n\t\t Person(customerA, \"Banking Customer A\", \"A customer of the bank, with personal bank accounts.\")\n\t\t Person(customerB, \"Banking Customer B\")\n\t\t Person_Ext(customerC, \"Banking Customer C\", \"desc\")\n \n\t\t Person(customerD, \"Banking Customer D\", \"A customer of the bank, <br/> with personal bank accounts.\")\n \n\t\t System(SystemAA, \"Internet Banking System\", \"Allows customers to view information about their bank accounts, and make payments.\")\n \n\t\t Enterprise_Boundary(b1, \"BankBoundary\") {\n \n\t\t\tSystemDb_Ext(SystemE, \"Mainframe Banking System\", \"Stores all of the core banking information about customers, accounts, transactions, etc.\")\n \n\t\t\tSystem_Boundary(b2, \"BankBoundary2\") {\n\t\t\t System(SystemA, \"Banking System A\")\n\t\t\t System(SystemB, \"Banking System B\", \"A system of the bank, with personal bank accounts. next line.\")\n\t\t\t}\n \n\t\t\tSystem_Ext(SystemC, \"E-mail system\", \"The internal Microsoft Exchange e-mail system.\")\n\t\t\tSystemDb(SystemD, \"Banking System D Database\", \"A system of the bank, with personal bank accounts.\")\n \n\t\t\tBoundary(b3, \"BankBoundary3\", \"boundary\") {\n\t\t\t SystemQueue(SystemF, \"Banking System F Queue\", \"A system of the bank.\")\n\t\t\t SystemQueue_Ext(SystemG, \"Banking System G Queue\", \"A system of the bank, with personal bank accounts.\")\n\t\t\t}\n\t\t }\n\t\t}\n \n\t\tBiRel(customerA, SystemAA, \"Uses\")\n\t\tBiRel(SystemAA, SystemE, \"Uses\")\n\t\tRel(SystemAA, SystemC, \"Sends e-mails\", \"SMTP\")\n\t\tRel(SystemC, customerA, \"Sends e-mails to\")\n \n\t\tUpdateElementStyle(customerA, $fontColor=\"red\", $bgColor=\"grey\", $borderColor=\"red\")\n\t\tUpdateRelStyle(customerA, SystemAA, $textColor=\"blue\", $lineColor=\"blue\", $offsetX=\"5\")\n\t\tUpdateRelStyle(SystemAA, SystemE, $textColor=\"blue\", $lineColor=\"blue\", $offsetY=\"-10\")\n\t\tUpdateRelStyle(SystemAA, SystemC, $textColor=\"blue\", $lineColor=\"blue\", $offsetY=\"-40\", $offsetX=\"-50\")\n\t\tUpdateRelStyle(SystemC, customerA, $textColor=\"red\", $lineColor=\"red\", $offsetX=\"-50\", $offsetY=\"20\")\n \n\t\tUpdateLayoutConfig($c4ShapeInRow=\"3\", $c4BoundaryInRow=\"1\")",
"sortingOrder": 1,
"isPinned": false
},
{
"id": "31b2c838-9a6d-45cc-b4ce-72a390a97b3a",
"category": "SankeyDiagram",
"description": "",
"content": "sankey-beta\n %% source,target,value\n Electricity grid,Over generation / exports,104.453\n Electricity grid,Heating and cooling - homes,113.726\n Electricity grid,H2 conversion,27.14",
"sortingOrder": 0,
"isPinned": false
},
{
"id": "89c31de2-14ce-49e0-ad02-87802d70bb8b",
"category": "XyChart",
"description": "a sample XYChart diagram",
"content": "xychart-beta\n title \"Sales Revenue\"\n x-axis [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec]\n y-axis \"Revenue (in $)\" 4000 --> 11000\n bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]\n line [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]",
"sortingOrder": 0,
"isPinned": false
}
],
"selectedCategory": "Flowchart"
}

1880
.obsidian/plugins/mermaid-tools/main.js vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,11 @@
{
"id": "mermaid-tools",
"name": "Mermaid Tools",
"version": "1.1.3",
"minAppVersion": "1.4.0",
"description": "Improved Mermaid.js experience for Obsidian: visual toolbar with common elements & more",
"author": "dartungar",
"authorUrl": "https://dartungar.com",
"fundingUrl": "https://www.paypal.com/paypalme/dartungar",
"isDesktopOnly": false
}

View File

@@ -0,0 +1,55 @@
.mermaid-toolbar-container, .mermaid-toolbar-container * {
max-width: 100%;
max-height: 100%;
}
.mermaid-toolbar-top-row {
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: 8px;
}
.mermaid-toolbar-elements-container {
padding-top: 1rem;
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
.mermaid-toolbar-element {
font-size: var(--font-ui-small);
cursor: pointer;
padding: 2px 2px 2px 5px;
border-radius: 3px;
flex: 1 0 auto;
}
.mermaid-toolbar-element:hover {
background-color: var(--interactive-hover);
}
.mermaid-tools-element-category-header::before {
content: "▼ ";
font-size: 70%;
padding-bottom: 2px;
}
.mermaid-tools-element-category-header.collapsed::before {
content: "▶ ";
font-size: 70%;
padding-bottom: 2px;
}
.mermaid-tools-element-container {
padding-top: 6px;
border-bottom: var(--border-width) solid var(--color-base-35);
}
.mermaid-tools-edit-element-modal > div {
margin-bottom: 0.5rem;
}
.mermaid-tools-edit-element-modal label {
margin-right: 1rem;
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
{
"id": "obsidian-csv-table",
"name": "CSV Table",
"version": "1.2.0",
"minAppVersion": "0.11.10",
"description": "Render CSV data as a table within your notes.",
"author": "Adam Coddington <me@adamcoddington.net>",
"authorUrl": "https://coddingtonbear.net/",
"isDesktopOnly": false
}

View File

@@ -0,0 +1,8 @@
.csv-table {
width: 100%;
}
.csv-error {
font-weight: 700;
padding: 10em;
border: 1px solid #f00;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,10 @@
{
"id": "obsidian-diagrams-net",
"name": "Diagrams.net",
"version": "1.0.4",
"minAppVersion": "0.12.0",
"description": "Enable diagrams.net (previously draw.io) type diagrams, with the diagrams.net embedded editor.",
"author": "Jens M Gleditsch",
"authorUrl": "https://github.com/jensmtg",
"isDesktopOnly": true
}

View File

@@ -0,0 +1,228 @@
/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
*/
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
var __export = (target, all) => {
__markAsModule(target);
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __reExport = (target, module2, desc) => {
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
for (let key of __getOwnPropNames(module2))
if (!__hasOwnProp.call(target, key) && key !== "default")
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
}
return target;
};
var __toModule = (module2) => {
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
};
var __async = (__this, __arguments, generator) => {
return new Promise((resolve, reject) => {
var fulfilled = (value) => {
try {
step(generator.next(value));
} catch (e) {
reject(e);
}
};
var rejected = (value) => {
try {
step(generator.throw(value));
} catch (e) {
reject(e);
}
};
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
step((generator = generator.apply(__this, __arguments)).next());
});
};
// src/main.ts
__export(exports, {
default: () => ExcelToMarkdownTablePlugin
});
var import_obsidian = __toModule(require("obsidian"));
// src/table-alignment-syntax.ts
var ALIGNED_LEFT_SYNTAX = {
prefix: "",
postfix: "",
adjust: 0
};
var ALIGNED_RIGHT_SYNTAX = {
prefix: "",
postfix: ":",
adjust: 1
};
var ALIGNED_CENTER_SYNTAX = {
prefix: ":",
postfix: ":",
adjust: 2
};
// src/excel-markdown-helpers.ts
var ALIGNED_LEFT = "l";
var ALIGNED_RIGHT = "r";
var ALIGNED_CENTER = "c";
var EXCEL_COLUMN_DELIMITER = " ";
var MARKDOWN_NEWLINE = "<br/>";
var UNESCAPED_DOUBLE_QUOTE = '"';
var EXCEL_ROW_DELIMITER_REGEX = /[\n\u0085\u2028\u2029]|\r\n?/g;
var COLUMN_ALIGNMENT_REGEX = /^(\^[lcr])/i;
var EXCEL_NEWLINE_ESCAPED_CELL_REGEX = /"([^\t]*(?<=[^\r])\n[^\t]*)"/g;
var EXCEL_NEWLINE_REGEX = /\n/g;
var EXCEL_DOUBLE_QUOTE_ESCAPED_REGEX = /""/g;
function addMarkdownSyntax(rows, columnWidths) {
return rows.map(function(row, rowIndex) {
return "| " + row.map(function(column, index) {
column = column.replace("|", "\\|");
return column + Array(columnWidths[index] - column.length + 1).join(" ");
}).join(" | ") + " |";
});
}
function addAlignmentSyntax(markdownRows, columnWidths, colAlignments) {
let result = Object.assign([], markdownRows);
result.splice(1, 0, "|" + columnWidths.map(function(width, index) {
let { prefix, postfix, adjust } = calculateAlignmentMarkdownSyntaxMetadata(colAlignments[index]);
return prefix + Array(columnWidths[index] + 3 - adjust).join("-") + postfix;
}).join("|") + "|");
return result;
}
function calculateAlignmentMarkdownSyntaxMetadata(alignment) {
switch (alignment) {
case ALIGNED_LEFT:
return ALIGNED_LEFT_SYNTAX;
case ALIGNED_CENTER:
return ALIGNED_CENTER_SYNTAX;
case ALIGNED_RIGHT:
return ALIGNED_RIGHT_SYNTAX;
default:
return ALIGNED_LEFT_SYNTAX;
}
}
function getColumnWidthsAndAlignments(rows) {
let colAlignments = [];
return {
columnWidths: rows[0].map(function(column, columnIndex) {
let alignment = columnAlignment(column);
colAlignments.push(alignment);
column = column.replace(COLUMN_ALIGNMENT_REGEX, "");
rows[0][columnIndex] = column;
return columnWidth(rows, columnIndex);
}),
colAlignments
};
}
function columnAlignment(columnHeaderText) {
var m = columnHeaderText.match(COLUMN_ALIGNMENT_REGEX);
if (m) {
var alignChar = m[1][1].toLowerCase();
return columnAlignmentFromChar(alignChar);
}
return ALIGNED_LEFT;
}
function columnAlignmentFromChar(alignChar) {
switch (alignChar) {
case ALIGNED_LEFT:
return ALIGNED_LEFT;
case ALIGNED_CENTER:
return ALIGNED_CENTER;
case ALIGNED_RIGHT:
return ALIGNED_RIGHT;
default:
return ALIGNED_LEFT;
}
}
function columnWidth(rows, columnIndex) {
return Math.max.apply(null, rows.map(function(row) {
return row[columnIndex] && row[columnIndex].length || 0;
}));
}
function splitIntoRowsAndColumns(data) {
var rows = data.split(EXCEL_ROW_DELIMITER_REGEX).map(function(row) {
return row.split(EXCEL_COLUMN_DELIMITER);
});
return rows;
}
function replaceIntraCellNewline(data) {
let cellReplacer = (_) => _.slice(1, -1).replace(EXCEL_DOUBLE_QUOTE_ESCAPED_REGEX, UNESCAPED_DOUBLE_QUOTE).replace(EXCEL_NEWLINE_REGEX, MARKDOWN_NEWLINE);
return data.replace(EXCEL_NEWLINE_ESCAPED_CELL_REGEX, cellReplacer);
}
// src/excel-markdown-tables.ts
var LINE_ENDING = "\n";
function excelToMarkdown(rawData) {
let data = rawData.trim();
var intraCellNewlineReplacedData = replaceIntraCellNewline(data);
var rows = splitIntoRowsAndColumns(intraCellNewlineReplacedData);
var { columnWidths, colAlignments } = getColumnWidthsAndAlignments(rows);
const markdownRows = addMarkdownSyntax(rows, columnWidths);
return addAlignmentSyntax(markdownRows, columnWidths, colAlignments).join(LINE_ENDING);
}
function getExcelRows(rawData) {
let data = rawData.trim();
var intraCellNewlineReplacedData = replaceIntraCellNewline(data);
return splitIntoRowsAndColumns(intraCellNewlineReplacedData);
}
function excelRowsToMarkdown(rows) {
var { columnWidths, colAlignments } = getColumnWidthsAndAlignments(rows);
const markdownRows = addMarkdownSyntax(rows, columnWidths);
return addAlignmentSyntax(markdownRows, columnWidths, colAlignments).join(LINE_ENDING);
}
function isExcelData(rows) {
return rows && rows[0] && rows[0].length > 1 ? true : false;
}
// src/main.ts
var ExcelToMarkdownTablePlugin = class extends import_obsidian.Plugin {
constructor() {
super(...arguments);
this.pasteHandler = (evt, editor) => {
if (evt.clipboardData === null) {
return;
}
if (evt.clipboardData.types.length === 1 && evt.clipboardData.types[0] === "text/plain") {
return;
}
const rawData = evt.clipboardData.getData("text");
const rows = getExcelRows(rawData);
if (isExcelData(rows)) {
const markdownData = excelRowsToMarkdown(rows);
editor.replaceSelection(markdownData + "\n");
evt.preventDefault();
}
};
}
onload() {
return __async(this, null, function* () {
this.addCommand({
id: "excel-to-markdown-table",
name: "Excel to Markdown",
hotkeys: [
{
modifiers: ["Mod", "Alt"],
key: "v"
}
],
editorCallback: (editor, view) => __async(this, null, function* () {
const text = yield navigator.clipboard.readText();
editor.replaceSelection(excelToMarkdown(text));
})
});
this.app.workspace.on("editor-paste", this.pasteHandler);
});
}
onunload() {
this.app.workspace.off("editor-paste", this.pasteHandler);
}
};

View File

@@ -0,0 +1,10 @@
{
"id": "obsidian-excel-to-markdown-table",
"name": "Excel to Markdown Table",
"version": "0.4.0",
"minAppVersion": "0.12.0",
"description": "An Obsidian plugin to paste data from Microsoft Excel, Google Sheets, Apple Numbers and LibreOffice Calc as Markdown tables in Obsidian editor.",
"author": "Ganessh Kumar R P <rpganesshkumar@gmail.com>",
"authorUrl": "https://ganesshkumar.com",
"isDesktopOnly": false
}

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,29 @@
{
"calendarSources": [
{
"type": "caldav",
"name": "Personal",
"url": "https://cloud.borishub.co.uk/remote.php/dav",
"homeUrl": "https://cloud.borishub.co.uk/remote.php/dav/calendars/boris/personal/",
"color": "#795AAB",
"username": "boris",
"password": "9PFNM-dwLnK-ZPAQq-ndZNa-H2YSa"
},
{
"type": "caldav",
"name": "Contact birthdays",
"url": "https://cloud.borishub.co.uk/remote.php/dav",
"homeUrl": "https://cloud.borishub.co.uk/remote.php/dav/calendars/boris/contact_birthdays/",
"color": "#E9D859",
"username": "boris",
"password": "9PFNM-dwLnK-ZPAQq-ndZNa-H2YSa"
}
],
"defaultCalendar": 0,
"firstDay": 0,
"initialView": {
"desktop": "timeGridWeek",
"mobile": "timeGrid3Days"
},
"timeFormat24h": false
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,11 @@
{
"id": "obsidian-full-calendar",
"name": "Full Calendar",
"version": "0.10.7",
"minAppVersion": "0.16.3",
"description": "Obsidian integration with Full Calendar (fullcalendar.io)",
"author": "Davis Haupt",
"authorUrl": "https://davi.sh",
"isDesktopOnly": false,
"fundingUrl": "https://ko-fi.com/davish"
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,58 @@
{
"commitMessage": "vault backup: {{date}}",
"commitDateFormat": "YYYY-MM-DD HH:mm:ss",
"autoSaveInterval": 0,
"autoPushInterval": 0,
"autoPullInterval": 0,
"autoPullOnBoot": true,
"disablePush": false,
"pullBeforePush": true,
"disablePopups": false,
"disablePopupsForNoChanges": false,
"listChangedFilesInMessageBody": false,
"showStatusBar": true,
"updateSubmodules": false,
"syncMethod": "merge",
"customMessageOnAutoBackup": false,
"autoBackupAfterFileChange": false,
"treeStructure": true,
"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}}"
}

44951
.obsidian/plugins/obsidian-git/main.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
{
"author": "Vinzent",
"authorUrl": "https://github.com/Vinzent03",
"id": "obsidian-git",
"name": "Git",
"description": "Integrate Git version control with automatic backup and other advanced features.",
"isDesktopOnly": false,
"fundingUrl": "https://ko-fi.com/vinzent",
"version": "2.26.0"
}

View File

@@ -0,0 +1,562 @@
@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;
}
.is-active .git-tools .buttons > * {
color: var(--nav-item-color-active);
}
.git-author {
color: var(--text-accent);
}
.git-date {
color: var(--text-accent);
}
.git-ref {
color: var(--text-accent);
}
.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. */
}
@media (max-width: 800px) {
/* hide git blame gutter not to superpose text */
.cm-gutterElement.obs-git-blame-gutter {
display: none;
}
}

View File

@@ -0,0 +1,257 @@
{
"ruleConfigs": {
"escape-yaml-special-characters": {
"enabled": false,
"try-to-escape-single-line-arrays": false
},
"force-yaml-escape": {
"enabled": false,
"force-yaml-escape-keys": ""
},
"format-tags-in-yaml": {
"enabled": false
},
"format-yaml-array": {
"enabled": false,
"alias-key": true,
"tag-key": true,
"default-array-style": "single-line",
"default-array-keys": true,
"force-single-line-array-style": "",
"force-multi-line-array-style": ""
},
"insert-yaml-attributes": {
"enabled": false,
"text-to-insert": "aliases: \ntags: "
},
"move-tags-to-yaml": {
"enabled": false,
"how-to-handle-existing-tags": "Nothing",
"tags-to-ignore": ""
},
"remove-yaml-keys": {
"enabled": false,
"yaml-keys-to-remove": ""
},
"yaml-key-sort": {
"enabled": false,
"yaml-key-priority-sort-order": "",
"priority-keys-at-start-of-yaml": true,
"yaml-sort-order-for-other-keys": "None"
},
"yaml-timestamp": {
"enabled": false,
"date-created": true,
"date-created-key": "date created",
"force-retention-of-create-value": false,
"date-modified": true,
"date-modified-key": "date modified",
"format": "dddd, MMMM Do YYYY, h:mm:ss a"
},
"yaml-title": {
"enabled": false,
"title-key": "title",
"mode": "first-h1-or-filename-if-h1-missing"
},
"yaml-title-alias": {
"enabled": false,
"preserve-existing-alias-section-style": true,
"keep-alias-that-matches-the-filename": false,
"use-yaml-key-to-keep-track-of-old-filename-or-heading": true
},
"capitalize-headings": {
"enabled": true,
"style": "Title Case",
"ignore-case-words": true,
"ignore-words": "macOS, iOS, iPhone, iPad, JavaScript, TypeScript, AppleScript, I",
"lowercase-words": "a, an, the, aboard, about, abt., above, abreast, absent, across, after, against, along, aloft, alongside, amid, amidst, mid, midst, among, amongst, anti, apropos, around, round, as, aslant, astride, at, atop, ontop, bar, barring, before, B4, behind, below, beneath, neath, beside, besides, between, 'tween, beyond, but, by, chez, circa, c., ca., come, concerning, contra, counting, cum, despite, spite, down, during, effective, ere, except, excepting, excluding, failing, following, for, from, in, including, inside, into, less, like, minus, modulo, mod, near, nearer, nearest, next, notwithstanding, of, o', off, offshore, on, onto, opposite, out, outside, over, o'er, pace, past, pending, per, plus, post, pre, pro, qua, re, regarding, respecting, sans, save, saving, short, since, sub, than, through, thru, throughout, thruout, till, times, to, t', touching, toward, towards, under, underneath, unlike, until, unto, up, upon, versus, vs., v., via, vice, vis-à-vis, wanting, with, w/, w., c̄, within, w/i, without, 'thout, w/o, abroad, adrift, aft, afterward, afterwards, ahead, apart, ashore, aside, away, back, backward, backwards, beforehand, downhill, downstage, downstairs, downstream, downward, downwards, downwind, east, eastward, eastwards, forth, forward, forwards, heavenward, heavenwards, hence, henceforth, here, hereby, herein, hereof, hereto, herewith, home, homeward, homewards, indoors, inward, inwards, leftward, leftwards, north, northeast, northward, northwards, northwest, now, onward, onwards, outdoors, outward, outwards, overboard, overhead, overland, overseas, rightward, rightwards, seaward, seawards, skywards, skyward, south, southeast, southwards, southward, southwest, then, thence, thenceforth, there, thereby, therein, thereof, thereto, therewith, together, underfoot, underground, uphill, upstage, upstairs, upstream, upward, upwards, upwind, west, westward, westwards, when, whence, where, whereby, wherein, whereto, wherewith, although, because, considering, given, granted, if, lest, once, provided, providing, seeing, so, supposing, though, unless, whenever, whereas, wherever, while, whilst, ago, according to, as regards, counter to, instead of, owing to, pertaining to, at the behest of, at the expense of, at the hands of, at risk of, at the risk of, at variance with, by dint of, by means of, by virtue of, by way of, for the sake of, for sake of, for lack of, for want of, from want of, in accordance with, in addition to, in case of, in charge of, in compliance with, in conformity with, in contact with, in exchange for, in favor of, in front of, in lieu of, in light of, in the light of, in line with, in place of, in point of, in quest of, in relation to, in regard to, with regard to, in respect to, with respect to, in return for, in search of, in step with, in touch with, in terms of, in the name of, in view of, on account of, on behalf of, on grounds of, on the grounds of, on the part of, on top of, with a view to, with the exception of, à la, a la, as soon as, as well as, close to, due to, far from, in case, other than, prior to, pursuant to, regardless of, subsequent to, as long as, as much as, as far as, by the time, in as much as, inasmuch, in order to, in order that, even, provide that, if only, whether, whose, whoever, why, how, or not, whatever, what, both, and, or, not only, but also, either, neither, nor, just, rather, no sooner, such, that, yet, is, it"
},
"file-name-heading": {
"enabled": false
},
"header-increment": {
"enabled": false,
"start-at-h2": false
},
"headings-start-line": {
"enabled": false
},
"remove-trailing-punctuation-in-heading": {
"enabled": false,
"punctuation-to-remove": ".,;:!。,;:!"
},
"footnote-after-punctuation": {
"enabled": true
},
"move-footnotes-to-the-bottom": {
"enabled": true
},
"re-index-footnotes": {
"enabled": true
},
"auto-correct-common-misspellings": {
"enabled": true,
"ignore-words": ""
},
"blockquote-style": {
"enabled": true,
"style": "space"
},
"convert-bullet-list-markers": {
"enabled": true
},
"emphasis-style": {
"enabled": true,
"style": "asterisk"
},
"no-bare-urls": {
"enabled": true,
"no-bare-uris": true
},
"ordered-list-style": {
"enabled": true,
"number-style": "ascending",
"list-end-style": "."
},
"proper-ellipsis": {
"enabled": true
},
"quote-style": {
"enabled": false,
"single-quote-enabled": true,
"single-quote-style": "''",
"double-quote-enabled": true,
"double-quote-style": "\"\""
},
"remove-consecutive-list-markers": {
"enabled": true
},
"remove-empty-list-markers": {
"enabled": true
},
"remove-hyphenated-line-breaks": {
"enabled": true
},
"remove-multiple-spaces": {
"enabled": true
},
"strong-style": {
"enabled": true,
"style": "consistent"
},
"two-spaces-between-lines-with-content": {
"enabled": true
},
"unordered-list-style": {
"enabled": true,
"list-style": "consistent"
},
"compact-yaml": {
"enabled": true,
"inner-new-lines": false
},
"consecutive-blank-lines": {
"enabled": true
},
"convert-spaces-to-tabs": {
"enabled": true,
"tabsize": " "
},
"empty-line-around-blockquotes": {
"enabled": true
},
"empty-line-around-code-fences": {
"enabled": true
},
"empty-line-around-math-blocks": {
"enabled": true
},
"empty-line-around-tables": {
"enabled": true
},
"heading-blank-lines": {
"enabled": true,
"bottom": true,
"empty-line-after-yaml": true
},
"line-break-at-document-end": {
"enabled": true
},
"move-math-block-indicators-to-their-own-line": {
"enabled": true
},
"paragraph-blank-lines": {
"enabled": true
},
"remove-empty-lines-between-list-markers-and-checklists": {
"enabled": true
},
"remove-link-spacing": {
"enabled": true
},
"remove-space-around-characters": {
"enabled": false,
"include-fullwidth-forms": true,
"include-cjk-symbols-and-punctuation": true,
"include-dashes": true,
"other-symbols": ""
},
"remove-space-before-or-after-characters": {
"enabled": false,
"characters-to-remove-space-before": ",!?;:).’”]",
"characters-to-remove-space-after": "¿¡‘“(["
},
"space-after-list-markers": {
"enabled": true
},
"space-between-chinese-japanese-or-korean-and-english-or-numbers": {
"enabled": false
},
"trailing-spaces": {
"enabled": true,
"twp-space-line-break": false
},
"add-blockquote-indentation-on-paste": {
"enabled": false
},
"prevent-double-checklist-indicator-on-paste": {
"enabled": true
},
"prevent-double-list-item-indicator-on-paste": {
"enabled": true
},
"proper-ellipsis-on-paste": {
"enabled": false
},
"remove-hyphens-on-paste": {
"enabled": false
},
"remove-leading-or-trailing-whitespace-on-paste": {
"enabled": true
},
"remove-leftover-footnotes-from-quote-on-paste": {
"enabled": true
},
"remove-multiple-blank-lines-on-paste": {
"enabled": true
}
},
"lintOnSave": true,
"recordLintOnSaveLogs": false,
"displayChanged": true,
"lintOnFileChange": false,
"displayLintOnFileChangeNotice": false,
"settingsConvertedToConfigKeyValues": true,
"foldersToIgnore": [],
"linterLocale": "system-default",
"logLevel": "ERROR",
"lintCommands": [],
"customRegexes": [],
"commonStyles": {
"aliasArrayStyle": "single-line",
"tagArrayStyle": "single-line",
"minimumNumberOfDollarSignsToBeAMathBlock": 2,
"escapeCharacter": "\"",
"removeUnnecessaryEscapeCharsForMultiLineArrays": false
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,11 @@
{
"id": "obsidian-linter",
"name": "Linter",
"version": "1.26.0",
"minAppVersion": "1.5.7",
"description": "Formats and styles your notes. It can be used to format YAML tags, aliases, arrays, and metadata; footnotes; headings; spacing; math blocks; regular markdown contents like list, italics, and bold styles; and more with the use of custom rule options as well.",
"author": "Victor Tao",
"authorUrl": "https://github.com/platers",
"helpUrl": "https://platers.github.io/obsidian-linter/",
"isDesktopOnly": false
}

View File

@@ -0,0 +1,244 @@
/**
* Based on https://github.com/Fevol/obsidian-translate/blob/master/src/ui/translator-components/SettingsPage.svelte
*/
.linter-navigation-item {
cursor: pointer;
border-radius: 100px;
border: 1px solid var(--background-modifier-border);
border-radius: 8px 8px 2px 2px;
font-weight: bold;
font-size: 16px;
display: flex;
flex-direction: row;
white-space: nowrap;
padding: 4px 6px;
align-items: center;
gap: 4px;
overflow: hidden;
background-color: var(--background-primary-secondary-alt);
transition: color 0.25s ease-in-out,
padding 0.25s ease-in-out,
background-color 0.35s cubic-bezier(0.45, 0.25, 0.83, 0.67),
max-width 0.35s cubic-bezier(0.57, 0.04, 0.58, 1);
height: 32px;
}
@media screen and (max-width: 1325px) {
.linter-navigation-item.linter-desktop {
max-width: 32px;
}
}
@media screen and (max-width: 800px) {
.linter-navigation-item.linter-mobile {
max-width: 32px;
}
}
.linter-navigation-item-icon {
padding-top: 5px;
}
.linter-navigation-item:hover {
border-color: var(--interactive-accent-hover);
border-bottom: 0px;
}
.linter-navigation-item-selected {
background-color: var(--interactive-accent) !important;
color: var(--text-on-accent);
padding: 4px 9px !important;
max-width: 100% !important;
border: 1px solid var(--background-modifier-border);
border-radius: 8px 8px 2px 2px;
border-bottom: 0px;
transition: color 0.25s ease-in-out,
padding 0.25s ease-in-out,
background-color 0.35s cubic-bezier(0.45, 0.25, 0.83, 0.67),
max-width 0.45s cubic-bezier(0.57, 0.04, 0.58, 1) 0.2s;
}
/**
* Based on https://github.com/phibr0/obsidian-commander/blob/main/src/styles.scss
*/
.linter {
transition: transform 400ms 0s;
}
.linter-setting-title {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 30px;
}
.linter-setting-title.linter-mobile {
justify-content: space-around;
}
.linter-setting-title h1 {
font-weight: 900;
margin-top: 6px;
margin-bottom: 12px;
}
.linter-setting-header {
margin-bottom: 24px;
overflow-y: hidden;
overflow-x: auto;
}
.linter-setting-header .linter-setting-tab-group {
display: flex;
align-items: flex-end;
flex-wrap: wrap;
width: 100%;
}
.linter-setting-tab-group {
margin-top: 6px;
padding-left: 2px;
padding-right: 2px;
border-bottom: 2px solid var(--background-modifier-border);
}
.linter-setting-header .linter-tab-settings {
padding: 6px 12px;
font-weight: 600;
cursor: pointer;
white-space: nowrap;
border-left: 2px solid transparent;
border-right: 2px solid transparent;
}
.linter-setting-header .linter-tab-settings:first-child {
margin-left: 6px;
}
.linter-setting-header .linter-tab-settings.linter-tab-settings-active {
border-bottom: 2px solid var(--background-primary);
transform: translateY(2px);
border-radius: 2px;
border-left: 2px solid var(--background-modifier-border);
border-top: 2px solid var(--background-modifier-border);
border-right: 2px solid var(--background-modifier-border);
}
/** Hide linter element css
* Based on https://zellwk.com/blog/hide-content-accessibly/
*/
.linter-navigation-item:not(.linter-navigation-item-selected) > span:nth-child(2),
.linter-visually-hidden {
border: 0;
clip: rect(0 0 0 0);
clip-path: rect(0 0 0 0);
height: auto;
margin: 0;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
white-space: nowrap;
}
/**
* Full-width text areas
* Based on https://github.com/nyable/obsidian-code-block-enhancer/blob/bb0c636c1e7609b6d26c48a8d7ca15d5cd9abdcf/src/styles/index.scss
*/
textarea.full-width {
width: 100%;
min-height: 10em;
margin-top: 0.8em;
margin-bottom: 0.8em;
}
.full-width-textbox-input-wrapper {
position: relative;
}
.settings-copy-button {
position: absolute;
top: 0.8em;
right: 0.8em;
margin: 0 0 0 auto;
padding: 4px;
}
.settings-copy-button svg.linter-clipboard path {
fill: var(--text-faint);
}
.settings-copy-button svg.linter-success path {
fill: var(--interactive-success);
}
.settings-copy-button:hover, .settings-copy-button:active {
cursor: pointer;
}
.settings-copy-button:hover svg path, .settings-copy-button:active svg path {
fill: var(--text-accent-hover);
transition: all ease 0.3s;
}
.settings-copy-button:focus {
outline: 0;
}
/**
* Custom regex replacement
*/
.linter-custom-regex-replacement-container div:last-child {
border: none;
}
.linter-custom-regex-replacement {
margin-bottom: 15px;
border: none;
border-bottom: var(--hr-thickness) solid;
border-color: var(--hr-color);
}
.linter-custom-regex-replacement-row2 {
flex-wrap: wrap;
}
.linter-custom-regex-replacement-normal-input {
width: 40%;
}
.linter-custom-regex-replacement-flags {
width: 15%;
}
.linter-custom-regex-replacement-label {
flex-direction: row-reverse;
}
.linter-custom-regex-replacement-label-input {
width: 50%;
}
/**
* Files to ignore
*/
.linter-files-to-ignore-container div:last-child {
border: none;
}
.linter-files-to-ignore {
margin-bottom: 15px;
border: none;
border-bottom: var(--hr-thickness) solid;
border-color: var(--hr-color);
}
.linter-files-to-ignore-normal-input {
width: 40%;
}
.linter-files-to-ignore-flags {
width: 15%;
}
/**
* Setting item no border
*/
.linter-no-border {
border: none;
}
/**
* Custom row
*/
.custom-row-description {
margin-top: 0px;
}

View File

@@ -0,0 +1,19 @@
{
"title@@vibrant": true,
"title@@dim-light-mode": false,
"title@@enable-mica": true,
"title@@no-top-space": false,
"title@@fab-enabled-desktop": true,
"title@@custom-page-header": true,
"title@@more-drag-desktop": false,
"title@@hide-toolbar-desktop": false,
"title@@space-above-document": true,
"title@@button-shapes-mobile": true,
"title@@win-menu": false,
"things-style@@no-kanban-styles": false,
"things-style@@fancy-highlight": true,
"things-style@@fancy-code": true,
"things-style@@active-line": true,
"things-style@@link-decoration": "None",
"things-style@@default-font-color": false
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,10 @@
{
"id": "obsidian-style-settings",
"name": "Style Settings",
"version": "1.0.9",
"minAppVersion": "0.11.5",
"description": "Offers controls for adjusting theme, plugin, and snippet CSS variables.",
"author": "mgmeyers",
"authorUrl": "https://github.com/mgmeyers/obsidian-style-settings",
"isDesktopOnly": false
}

File diff suppressed because one or more lines are too long

40
.obsidian/plugins/omnisearch/data.json vendored Normal file
View File

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

105
.obsidian/plugins/omnisearch/main.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,14 @@
{
"id": "omnisearch",
"name": "Omnisearch",
"version": "1.24.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 Normal 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-inline-start: 0.5em;
}
.omnisearch-result__image-container {
flex-basis: 20%;
text-align: end;
}
.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-inline-end: 1em;
}
}
.omnisearch-input-field {
position: relative;
flex-grow: 1;
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,8 @@
{
"id": "url-into-selection",
"name": "Paste URL into selection",
"description": "Paste URL \"into\" selected text.",
"isDesktopOnly": false,
"js": "main.js",
"version": "1.7.0"
}

View File

@@ -0,0 +1,7 @@
{
"name": "AnuPpuccin",
"version": "1.4.5",
"minAppVersion": "0.16.0",
"author": "Anubis",
"authorUrl": "https://github.com/AnubisNekhet"
}

8490
.obsidian/themes/AnuPpuccin/theme.css vendored Normal file

File diff suppressed because it is too large Load Diff

View File

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

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

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,7 @@
{
"name": "Dracula Official",
"version": "1.0.9",
"minAppVersion": "0.16.0",
"author": "Dracula",
"authorUrl": "https://gitlab.com/chrismettal"
}

View File

@@ -0,0 +1,805 @@
.theme-dark,
.theme-light{
/* Obsidian "Dark" import so light mode looks the same*/
--color-scheme: dark;
--highlight-mix-blend-mode: lighten;
--mono-rgb-0: 0, 0, 0;
--mono-rgb-100: 255, 255, 255;
--color-red-rgb: 251, 70, 76;
--color-red: #fb464c;
--color-orange-rgb: 233, 151, 63;
--color-orange: #e9973f;
--color-yellow-rgb: 224, 222, 113;
--color-yellow: #e0de71;
--color-green-rgb: 68, 207, 110;
--color-green: #44cf6e;
--color-cyan-rgb: 83, 223, 221;
--color-cyan: #53dfdd;
--color-blue-rgb: 2, 122, 255;
--color-blue: #027aff;
--color-purple-rgb: 168, 130, 255;
--color-purple: #a882ff;
--color-pink-rgb: 250, 153, 205;
--color-pink: #fa99cd;
--color-base-00: #1e1e1e;
--color-base-05: #212121;
--color-base-10: #242424;
--color-base-20: #262626;
--color-base-25: #2a2a2a;
--color-base-30: #363636;
--color-base-35: #3f3f3f;
--color-base-40: #555555;
--color-base-50: #666666;
--color-base-60: #999999;
--color-base-70: #bababa;
--color-base-100: #dadada;
--color-accent-hsl: var(--accent-h), var(--accent-s), var(--accent-l);
--color-accent: hsl(var(--accent-h), var(--accent-s), var(--accent-l));
--color-accent-1: hsl(var(--accent-h), var(--accent-s), calc(var(--accent-l) - 3.8%));
--color-accent-2: hsl(var(--accent-h), var(--accent-s), calc(var(--accent-l) + 3.8%));
--background-modifier-form-field: var(--color-base-25);
--interactive-normal: var(--color-base-30);
--interactive-hover: var(--color-base-35);
--background-modifier-box-shadow: rgba(0, 0, 0, 0.3);
--background-modifier-cover: rgba(10, 10, 10, 0.4);
--text-selection: hsla(var(--interactive-accent-hsl), 0.25);
--input-shadow: inset 0 0.5px 0.5px 0.5px rgba(255, 255, 255, 0.09), 0 2px 4px 0 rgba(0,0,0,.15), 0 1px 1.5px 0 rgba(0,0,0,.1), 0 1px 2px 0 rgba(0,0,0,.2), 0 0 0 0 transparent;
--input-shadow-hover: inset 0 0.5px 1px 0.5px rgba(255, 255, 255, 0.16), 0 2px 3px 0 rgba(0,0,0,.3), 0 1px 1.5px 0 rgba(0,0,0,.2), 0 1px 2px 0 rgba(0,0,0,.4), 0 0 0 0 transparent;
--shadow-s: 0px 1px 2px rgba(0, 0, 0, 0.121), 0px 3.4px 6.7px rgba(0, 0, 0, 0.179), 0px 15px 30px rgba(0, 0, 0, 0.3);
--shadow-l: 0px 1.8px 7.3px rgba(0, 0, 0, 0.071), 0px 6.3px 24.7px rgba(0, 0, 0, 0.112), 0px 30px 90px rgba(0, 0, 0, 0.2);
--pdf-shadow: 0 0 0 1px var(--background-modifier-border);
--pdf-thumbnail-shadow: 0 0 0 1px var(--background-modifier-border);
/* Actual Dracula colors*/
--background-primary: #282a36;
--background-primary-alt: #44475a;
--background-secondary: #1a1e24;
--background-secondary-alt: #282a36;
--text-normal: #f8f8f2;
--text-on-accent: #282a36;
--text-title-h1: #bd93f9;
--text-title-h2: #ffb86c;
--text-title-h3: #52fa7c;
--text-title-h4: #ff5555;
--text-title-h5: #f1fa8c;
--text-title-h6: #bd93f4;
--canvas-color-1: 255, 85, 85;
--canvas-color-2: 255, 184, 108;
--canvas-color-3: 241, 250, 140;
--canvas-color-4: 82, 250, 124;
--canvas-color-5: 139, 233, 253;
--canvas-color-6: 189, 147, 244;
--text-link: var(--text-accent);
--markup-code: #ffb86c;
--text-tag: #50fa7b;
--text-a: #ff79c6;
--text-a-hover: #ff79c0;
--text-mark: #f1fa8c;
--interactive-accent: #50fa7b;
--blockquote-border: #b294bb;
--interactive-accent-rgb: #f1fa8c;
--accent-h: 135;
--accent-s: 94%;
--accent-l: 65%;
}
/* LINKS & BRACKETS */
/* link */
/* url's */
/* editor */
.cm-url {
color: var(--text-link) !important;
}
/* preview */
.external-link {
color: var(--text-link) !important;
}
/* make external links italics to differentiate */
a:not(.internal-link) {
font-style: italic;
}
/* horizontal line in preview */
hr {
background-color: var(--text-normal);
border-color: var(--text-normal);
}
.markdown-preview-view hr {
background-color: var(--text-normal);
border-color: var(--text-normal);
}
.markdown-rendered hr {
background-color: var(--text-normal);
border-color: var(--text-normal);
}
.markdown-embed {
padding-left: 8px !important;
padding-right: 4px !important;
margin-left: 8px !important;
margin-right: 4px !important;
}
/* internal embedded link rendering in preview */
.markdown-embed-title {
color: var(--text-link);
}
/* NAKED EMBEDS*/
/* But keeping Border and Scroll! */
.markdown-embed-title {
display: none;
}
.markdown-preview-view .markdown-embed-content > :first-child {
margin-top: 0;
}
.markdown-preview-view .markdown-embed-content > :last-child {
margin-bottom: 0;
}
.markdown-embed-link {
color: var(--text-a) !important;
right: 2px !important;
}
.markdown-embed-link:hover {
color: var(--text-link) !important;
}
/* NO FILE OPEN PAGE*/
.empty-state-title {
color: var(--text-title-h1) !important;
}
.empty-state-action {
color: var(--text-muted) !important;
}
.empty-state-action:hover {
color: var(--text-normal) !important;
}
/* GRAPH VIEW */
#graph-view-canvas .links {
stroke: var(--interactive-accent-rgb) !important;
}
/* CODEBLOCKS */
/* code blocks in preview */
pre code {
padding: 5px !important;
color: var(--code-normal) !important;
line-height: normal;
display: block;
background-color: var(--background-primary-alt) !important;
}
.markdown-preview-view pre {
padding: 0px !important;
}
/* in-line code for editor and preview and code block for editor*/
code,
.cm-inline-code {
background-color: var(--background-primary-alt) !important;
color: var(--markup-code) !important;
bottom: 0px !important;
}
/* Code Appearance */
/* editor */
.CodeMirror-code span.cm-inline-code {
color: var(--markup-code) !important;
}
/* Editor CodeBlock TEXT Appearance - */
.cm-s-obsidian pre.HyperMD-codeblock {
color: var(--markup-code) !important;
}
/* preview */
.markdown-preview-view code {
color: var(--code-normal);
background-color: var(--background-primary-alt) !important;
bottom: -0.1px !important;
}
/* borders */
.cm-s-obsidian span.cm-inline-code {
border: 1px solid #525660;
border-radius: 4px;
}
.cm-s-obsidian span.cm-formatting-code.cm-inline-code {
border-right-width: 0;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.cm-s-obsidian span.cm-formatting-code.cm-inline-code + span.cm-inline-code {
border-right: none;
border-left: none;
border-radius: 0;
}
.cm-s-obsidian
span.cm-formatting-code.cm-inline-code
+ span.cm-inline-code
+ span.cm-formatting-code.cm-inline-code {
border-left-width: 0;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
border-right-width: 1px;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
}
/* BLOCKQUOTES */
/* editor */
.cm-quote {
color: var(--interactive-accent) !important;
font-style: italic;
}
/* preview */
blockquote {
color: var(--interactive-accent) !important;
font-style: italic;
border-color: var(--blockquote-border) !important;
}
/* IMAGES */
/* embedded images */
img {
display: block;
margin-left: 20pt;
margin-right: auto;
}
/* TABLES */
th {
border: 1px solid var(--background-primary-alt) !important;
}
td {
border: 1px solid var(--background-primary-alt) !important
}
thead {
border-bottom: 4px solid var(--background-primary-alt);
}
.table {
background-color: var(--background-secondary-alt);
border: 1px solid var(--background-primary-alt);
padding: 4px;
line-height: normal;
display: block;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
border-bottom-left-radius: 4px;
}
/* SIDEBAR & DOCK ETC. */
/* view action buttons */
.view-action {
color: var(--text-muted) !important;
text-decoration: none !important;
}
.view-action:hover,
.view-action.is-active {
color: var(--text-normal) !important;
}
.status-bar {
background-color: var(--background-secondary-alt);
}
.side-dock-ribbon-action {
color: var(--text-muted) !important;
}
.side-dock-ribbon-action:hover {
color: var(--text-normal) !important;
}
.workspace-tab-header {
color: var(--text-muted) !important;
text-decoration: none !important;
}
.workspace-tab-header:hover {
color: var(--text-normal) !important;
}
button.mod-cta {
background-color: var(--interactive-accent);
color: var(--text-on-accent);
}
.horizontal-tab-nav-item.is-active, .vertical-tab-nav-item.is-active {
background-color: var(--interactive-accent);
color: var(--text-on-accent);
}
/* searchbar */
.side-dock-panels-container {
background-color: var(--background-secondary-alt) !important;
color: var(background-secondary-alt);
}
/* icons at top of panes*/
.file-view-actions a {
color: var(--text-muted) !important;
}
.file-view-actions a:hover {
color: var(--text-muted) !important;
}
/* html tags in editor */
.cm-tag {
color: var(--text-tag) !important;
}
/* .side-dock-ribbon-tab,
.side-dock-ribbon-action {} */
.side-dock-ribbon-tab.is-active {
color: var(--interactive-accent) !important;
}
.side-dock-ribbon-tab.is-active .side-dock-ribbon-tab-inner:hover {
color: #6272a4 !important;
background-color: var(--background-secondary);
}
.nav-file-title {
color: var(--text-muted) !important;
background-color: var(--background-secondary);
}
.is-translucent .nav-file-title:not(.is-active) {
background-color: transparent;
}
.nav-folder-title {
color: var(--text-muted) !important;
background-color: var(--background-secondary);
}
.is-translucent .nav-folder-title {
background-color: transparent;
}
.nav-file-title:hover {
color: var(--text-normal) !important;
}
.nav-folder-title:hover {
color: var(--text-normal) !important;
}
.nav-action-button.is-active {
background-color: var(--background-secondary-alt);
}
.search-result-file-title {
color: var(--text-a) !important;
background-color: var(--background-secondary);
}
.is-translucent .search-result-file-title {
background-color: transparent;
}
.search-result-file-matched-text {
color: var(--text-link) !important;
background-color: var(--background-secondary);
}
/* .nav-file-tag {
color: #59a2c5;
} /* for the PNG text, but can't specifically target "PNG", just all of those filetype tags. */
.nav-file.is-active .nav-file-tag {
color: var(--text-normal);
}
/* hover actions on side dock navigation */
.side-dock-ribbon-tab:hover,
.side-dock-ribbon-tab-inner:hover,
.side-dock-ribbon-action:hover,
.side-dock-ribbon-action.is-active:hover,
.nav-action-button:hover,
.side-dock-collapse-btn:hover {
color: var(--text-normal);
}
/* Hover color over tree item flairs */
.tree-item-self:hover .tree-item-flair {
background-color: var(--background-secondary);
}
/* clean up side bar empty state (e.g. unlinked mentions) */
.search-empty-state {
width: auto;
padding-left: 15px;
padding-right: 15px;
line-height: normal;
}
/* clean up side bar empty state (e.g. unlinked mentions) */
.search-empty-state {
width: auto;
padding-left: 10px;
padding-right: 5px;
line-height: normal;
}
/* NORMAL TEXT OUTSIDE OF HEADINGS AND CODE */
/* preview */
.markdown-preview-view {
color: var(--text-normal);
padding-left: 8% !important;
padding-right: 4% !important;
}
.mod-single-child .markdown-preview-view {
color: var(--text-normal);
padding-left: 10% !important;
padding-right: 10% !important;
}
/* editor */
.cm-s-obsidian {
color: var(--text-normal);
padding-left: 8% !important;
padding-right: 4% !important;
}
.mod-single-child .cm-s-obsidian {
color: var(--text-normal);
padding-left: 8% !important;
padding-right: 4% !important;
}
/* HEADINGS */
/* preview */
.markdown-preview-view h1 {
color: var(--text-title-h1);
}
.markdown-preview-view h2 {
color: var(--text-title-h2);
}
.markdown-preview-view h3 {
color: var(--text-title-h3);
}
.markdown-preview-view h4 {
color: var(--text-title-h4);
}
.markdown-preview-view h5 {
color: var(--text-title-h5);
}
.markdown-preview-view h6 {
color: var(--text-title-h6);
}
/* editor */
.cm-header-1 {
color: var(--text-title-h1);
}
.cm-header-2 {
color: var(--text-title-h2);
}
.cm-header-3 {
color: var(--text-title-h3);
}
.cm-header-4 {
color: var(--text-title-h4);
}
.cm-header-5 {
color: var(--text-title-h5);
}
.cm-header-6 {
color: var(--text-title-h6);
}
/* TAGS */
/* preview */
a.tag {
color: var(--text-tag);
}
/* editor */
.cm-hashtag {
color: var(--text-tag) !important;
}
/* BOLD */
/* preview */
strong {
color: var(--markup-code);
}
/* editor */
.cm-strong {
color: var(--markup-code);
}
/* ITALICS */
/* preview */
em {
color: var(--interactive-accent);
}
/* editor */
.cm-em {
color: var(--interactive-accent);
}
/* HIGHLIGHT */
/* preview */
mark {
color: var(--background-primary);
background-color: var(--text-mark);
padding-top: 1px;
padding-bottom: 1px;
}
/* editor */
.cm-highlight {
color: var(--background-primary) !important;
background-color: var(--text-mark) !important;
padding-top: 1px;
padding-bottom: 1px;
}
/* COLLAPSED RIBBONS */
.workspace-ribbon.is-collapsed {
background-color: var(--background-secondary-alt) !important;
}
.workspace-ribbon.mod-right.is-collapsed {
background-color: var(--background-secondary-alt) !important;
}
.workspace-ribbon.mod-left.is-collapsed {
background-color: var(--background-secondary-alt) !important;
}
/* POPUP NOTIFICATION*/
.notice {
color: var(--text-normal) !important;
background-color: var(--blockquote-border) !important;
}
/* UL, OL, BULLETS, CHECKBOXES & FOLDING ARROWS */
/* task lists */
.markdown-preview-view .task-list-item-checkbox {
-webkit-appearance: none;
top: 1.3px !important;
right: 5px !important;
box-sizing: border-box;
border: 1px solid var(--accent-2);
position: relative;
width: 1.25em;
height: 1.25em;
margin: 0;
box-shadow: 0 0 0.1em var(--interactive-accent);
}
.markdown-preview-view .task-list-item-checkbox:checked::before {
content: "✓";
position: absolute;
color: var(--interactive-accent);
line-height: 1.25em;
width: 1.2em;
text-align: center;
text-shadow: 0 0 0.5em var(--accent-2);
}
.markdown-preview-view .task-list-item-checkbox {
top: 0px;
}
.checkbox-container {
background-color: var(--background-primary-alt);
border-radius: 14px;
display: inline-block;
height: 22px;
position: relative;
top: 4px;
user-select: none;
width: 42px;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.15);
transition: background 0.15s ease-in-out, box-shadow 0.15s ease-in-out,
border 0.15s ease-in-out, opacity 0.15s ease-in-out,
-webkit-box-shadow 0.15s ease-in-out;
}
.checkbox-container.is-enabled {
background-color: var(--interactive-accent);
}
.markdown-preview-view mark {
color: var(--text-link);
background-color: var(--background-primary-alt);
}
.cm-formatting
/* This is the color of header hashtags. Don't change. */
.cm-formatting-list-ul .cm-list-1
/* This is the color of text in lists. Don't change. */
/* Subtler code folding arrows */
.CodeMirror-foldgutter-folded:after,
.CodeMirror-foldgutter-open:after {
opacity: 0.5;
color: var(--text-link);
}
.CodeMirror-foldgutter-folded:hover:after,
.CodeMirror-foldgutter-open:hover:after {
opacity: 1;
color: var(--text-link);
}
.CodeMirror-foldgutter-folded:after {
content: "\25BA";
color: var(--text-link);
}
.CodeMirror-foldgutter-open:after {
content: "\25BC";
}
/* Bullet Point Relationship Lines */
.cm-hmd-list-indent .cm-tab,
ul ul {
position: relative;
}
.cm-hmd-list-indent .cm-tab::before,
ul ul::before {
content: "";
border-left: 1px solid;
color: #92CDD6;
position: absolute;
}
.cm-hmd-list-indent .cm-tab::before {
left: 0;
top: -5px;
bottom: -4px;
}
ul ul::before {
left: 0px;
top: 0;
bottom: 0;
}
/* ul, li & ol colors in editor */
.cm-s-obsidian span.cm-formatting-list {
color: #8abeb7;
}
ol {
display: block;
list-style-type: decimal;
margin-block-start: 1em;
margin-block-end: 1em;
margin-inline-start: 0px;
margin-inline-end: 0px;
padding-inline-start: 40px;
}
.suggestion-highlight {
color: var(--interactive-accent)!important;
}
.is-selected {
background-color: var(--blockquote-border)!important;
}
@media print {
@page {
margin: 0mm 0mm 0mm 0mm;
}
.print .markdown-preview-view {
-webkit-print-color-adjust: exact;
background-color: #282a36;
color: #f8f8f2;
}
.markdown-rendered code {
color: #BABABA !important;
}
}

7
.obsidian/themes/Encore/manifest.json vendored Normal file
View File

@@ -0,0 +1,7 @@
{
"name": "Encore",
"version": "2.8.0",
"minAppVersion": "1.1.9",
"author": "Carbonateb",
"authorUrl": "https://lucaschampagne.dev/"
}

2011
.obsidian/themes/Encore/theme.css vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,7 @@
{
"name": "Material Flat",
"version": "1.4.0",
"minAppVersion": "0.16.0",
"author": "Threethan, Joschua",
"authorUrl": "https://github.com/Threethan/"
}

2576
.obsidian/themes/Material Flat/theme.css vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,7 @@
{
"name": "Obsidian Nord",
"version": "0.2.0",
"minAppVersion": "0.16.0",
"author": "insanum",
"authorUrl": "https://insanum.com"
}

525
.obsidian/themes/Obsidian Nord/theme.css vendored Normal file
View File

@@ -0,0 +1,525 @@
:root
{
--dark0_x: 46,52,64; /* #2e3440 */
--dark0: rgb(var(--dark0_x));
--dark1_x: 59,66,82; /* #3b4252 */
--dark1: rgb(var(--dark1_x));
--dark2_x: 67,76,94; /* #434c5e */
--dark2: rgb(var(--dark2_x));
--dark3_x: 76,86,106; /* #4c566a */
--dark3: rgb(var(--dark3_x));
--light0_x: 216,222,233; /* #d8dee9 */
--light0: rgb(var(--light0_x));
--light1_x: 229,233,240; /* #e5e9f0 */
--light1: rgb(var(--light1_x));
--light2_x: 236,239,244; /* #eceff4 */
--light2: rgb(var(--light2_x));
--light3_x: 255,255,255; /* #ffffff */
--light3: rgb(var(--light3_x));
--frost0_x: 143,188,187; /* #8fbcbb */
--frost0: rgb(var(--frost0_x));
--frost1_x: 136,192,208; /* #88c0d0 */
--frost1: rgb(var(--frost1_x));
--frost2_x: 129,161,193; /* #81a1c1 */
--frost2: rgb(var(--frost2_x));
--frost3_x: 94,129,172; /* #5e81ac */
--frost3: rgb(var(--frost3_x));
--red_x: 191,97,106; /* #bf616a */
--red: rgb(var(--red_x));
--orange_x: 208,135,112; /* #d08770 */
--orange: rgb(var(--orange_x));
--yellow_x: 235,203,139; /* #ebcb8b */
--yellow: rgb(var(--yellow_x));
--green_x: 163,190,140; /* #a3be8c */
--green: rgb(var(--green_x));
--purple_x: 180,142,173; /* #b48ead */
--purple: rgb(var(--purple_x));
}
body
{
--accent-h: 354; /* --red #bf616a */
--accent-s: 42%;
--accent-l: 56%;
--link-decoration: none;
--link-decoration-hover: none;
--link-external-decoration: none;
--link-external-decoration-hover: none;
--tag-decoration: none;
--tag-decoration-hover: underline;
--tag-padding-x: .5em;
--tag-padding-y: .2em;
--tag-radius: .5em;
--tab-font-weight: 600;
--bold-weight: 600;
--checkbox-radius: 0;
/* --list-indent: 2em; */
--embed-border-left: 6px double var(--interactive-accent);
}
.theme-dark
{
--color-red-rgb: var(--red_x);
--color-red: var(--red);
--color-purple-rgb: var(--purple_x);
--color-purple: var(--purple);
--color-green-rgb: var(--green_x);
--color-green: var(--green);
--color-cyan-rgb: var(--frost1_x);
--color-cyan: var(--frost1);
--color-blue-rgb: var(--frost3_x);
--color-blue: var(--frost3);
--color-yellow-rgb: var(--yellow_x);
--color-yellow: var(--yellow);
--color-orange-rgb: var(--orange_x);
--color-orange: var(--orange);
/* --color-pink: var(--purple); */
--background-primary: var(--dark0);
--background-primary-alt: var(--dark0);
--background-secondary: var(--dark1);
--background-secondary-alt: var(--dark2);
--background-modifier-border: var(--dark2);
--cursor-line-background: rgba(var(--red_x), 0.2);
--text-normal: var(--light2);
--text-faint: var(--light0);
--text-muted: var(--light1);
--link-url: var(--purple);
--h1-color: var(--red);
--h2-color: var(--yellow);
--h3-color: var(--green);
--h4-color: var(--purple);
--h5-color: var(--frost0);
--h6-color: var(--frost2);
--text-highlight-bg: var(--frost1);
--text-highlight-fg: var(--dark0);
--text-accent: var(--orange);
--text-accent-hover: var(--frost2);
--tag-color: var(--frost0);
--tag-background: var(--dark2);
--tag-background-hover: var(--dark1);
--titlebar-text-color-focused: var(--red);
--inline-title-color: var(--yellow);
--bold-color: var(--yellow);
--italic-color: var(--yellow);
--checkbox-color: var(--frost0);
--checkbox-color-hover: var(--frost0);
--checkbox-border-color: var(--frost0);
--checkbox-border-color-hover: var(--frost0);
--checklist-done-color: rgba(var(--light2_x), 0.5);
--table-header-background: hsl(220, 16%, 16%);
--table-header-background-hover: var(--dark3);
--table-row-even-background: hsl(220, 16%, 20%);
--table-row-odd-background: hsl(220, 16%, 24%);
--table-row-background-hover: var(--dark3);
--text-selection: rgba(var(--red_x), 0.6);
--flashing-background: rgba(var(--red_x), 0.3);
--code-normal: var(--frost1);
--code-background: var(--dark1);
--mermaid-note: var(--frost3);
--mermaid-loopline: var(--frost1);
--mermaid-exclude: var(--dark3);
--mermaid-seqnum: var(--dark0);
--icon-color-hover: var(--red);
--icon-color-focused: var(--frost2);
--nav-item-color-hover: var(--red);
--nav-item-color-active: var(--frost2);
--nav-file-tag: rgba(var(--yellow_x), 0.9);
--graph-line: var(--dark3);
--graph-node: var(--light3);
--graph-node-tag: var(--red);
--graph-node-attachment: var(--green);
--calendar-hover: var(--red);
--calendar-background-hover: var(--dark3);
--calendar-week: var(--yellow);
--calendar-today: var(--yellow);
--dataview-key: var(--text-faint);
--dataview-key-background: rgba(var(--frost2_x), 0.3);
--dataview-value: var(--text-faint);
--dataview-value-background: rgba(var(--red_x), 0.3);
--tab-text-color-focused-active: var(--frost2);
--tab-text-color-focused-active-current: var(--red);
}
.theme-light
{
--color-red-rgb: var(--red_x);
--color-red: var(--red);
--color-purple-rgb: var(--purple_x);
--color-purple: var(--purple);
--color-green-rgb: var(--green_x);
--color-green: var(--green);
--color-cyan-rgb: var(--frost1_x);
--color-cyan: var(--frost1);
--color-blue-rgb: var(--frost3_x);
--color-blue: var(--frost3);
--color-yellow-rgb: var(--yellow_x);
--color-yellow: var(--yellow);
--color-orange-rgb: var(--orange_x);
--color-orange: var(--orange);
/* --color-pink: var(--purple); */
--background-primary: var(--light3);
--background-primary-alt: var(--light3);
--background-secondary: var(--light2);
--background-secondary-alt: var(--light1);
--background-modifier-border: var(--light1);
--cursor-line-background: rgba(var(--red_x), 0.1);
--text-normal: var(--dark2);
--text-faint: var(--dark0);
--text-muted: var(--dark1);
--link-url: var(--purple);
--h1-color: var(--red);
--h2-color: var(--yellow);
--h3-color: var(--green);
--h4-color: var(--purple);
--h5-color: var(--frost0);
--h6-color: var(--frost2);
--text-highlight-bg: var(--yellow);
--text-highlight-fg: var(--dark0);
--text-accent: var(--orange);
--text-accent-hover: var(--frost2);
--tag-color: var(--dark3);
--tag-background: var(--light1);
--tag-background-hover: var(--light0);
--titlebar-text-color-focused: var(--red);
--inline-title-color: var(--yellow);
--bold-color: var(--green);
--italic-color: var(--green);
--checkbox-color: var(--frost2);
--checkbox-color-hover: var(--frost2);
--checkbox-border-color: var(--frost2);
--checkbox-border-color-hover: var(--frost2);
--checklist-done-color: rgba(var(--dark2_x), 0.4);
--table-header-background: rgba(var(--light2_x), 0.2);
--table-header-background-hover: var(--frost2);
--table-row-even-background: rgba(var(--light2_x), 0.4);
--table-row-odd-background: rgba(var(--light2_x), 0.8);
--table-row-background-hover: var(--frost2);
--text-selection: rgba(var(--red_x), 0.6);
--flashing-background: rgba(var(--red_x), 0.3);
--code-normal: var(--frost1);
--code-background: var(--light2);
--mermaid-note: var(--frost0);
--mermaid-loopline: var(--frost1);
--mermaid-exclude: var(--light0);
--mermaid-seqnum: var(--light0);
--icon-color-hover: var(--red);
--icon-color-focused: var(--frost3);
--nav-item-color-hover: var(--red);
--nav-item-color-active: var(--frost2);
--nav-file-tag: rgba(var(--orange_x), 0.9);
--graph-line: var(--light0);
--graph-node: var(--dark3);
--graph-node-tag: var(--red);
--graph-node-attachment: var(--green);
--calendar-hover: var(--red);
--calendar-background-hover: var(--light0);
--calendar-week: var(--orange);
--calendar-today: var(--orange);
--dataview-key: var(--text-faint);
--dataview-key-background: rgba(var(--frost2_x), 0.3);
--dataview-value: var(--text-faint);
--dataview-value-background: rgba(var(--red_x), 0.3);
--tab-text-color-focused-active: var(--frost2);
--tab-text-color-focused-active-current: var(--red);
}
table
{
border: 1px solid var(--background-secondary) !important;
border-collapse: collapse;
}
thead
{
border-bottom: 2px solid var(--background-modifier-border) !important;
}
th
{
font-weight: 600 !important;
border: 1px solid var(--background-secondary) !important;
}
td
{
border-left: 1px solid var(--background-secondary) !important;
border-right: 1px solid var(--background-secondary) !important;
border-bottom: 1px solid var(--background-secondary) !important;
}
.markdown-rendered tbody tr:nth-child(even)
{
background-color: var(--table-row-even-background) !important;
}
.markdown-rendered tbody tr:nth-child(odd)
{
background-color: var(--table-row-odd-background) !important;
}
.markdown-rendered tbody tr:nth-child(even):hover,
.markdown-rendered tbody tr:nth-child(odd):hover
{
background-color: var(--table-row-background-hover) !important;
}
.markdown-rendered mark
{
background-color: var(--text-highlight-bg);
color: var(--text-highlight-fg);
}
.markdown-rendered mark a
{
color: var(--red) !important;
font-weight: 600;
}
.search-result-file-matched-text
{
color: var(--text-highlight-fg) !important;
}
.cm-hashtag-begin:hover, .cm-hashtag-end:hover
{
color: var(--text-accent);
/* background-color: var(--tag-background-hover); */
text-decoration: underline;
}
input[type=checkbox]
{
border: 1px solid var(--checkbox-color);
}
input[type=checkbox]:checked
{
background-color: var(--checkbox-color);
box-shadow: inset 0 0 0 2px var(--background-primary);
}
input[type=checkbox]:checked:after
{
display: none;
}
code[class*="language-"],
pre[class*="language-"]
{
line-height: var(--line-height-tight) !important;
}
.cm-url
{
color: var(--link-url) !important;
}
.cm-url:hover
{
color: var(--text-accent-hover) !important;
}
/* Keep highlight/marks the same between viewer and editor. */
.cm-highlight
{
color: var(--text-highlight-fg) !important;
}
/* Keep inline code the same between viewer and editor. */
.cm-inline-code
{
border-radius: var(--radius-s);
font-size: var(--code-size);
padding: 0.1em 0.25em;
}
.cm-formatting-code + .cm-inline-code
{
border-radius: 0;
padding: 0.1em 0;
}
.cm-formatting-code
{
border-radius: var(--radius-s) 0 0 var(--radius-s);
padding: 0.1em 0 0.1em 0.25em;
}
.cm-inline-code + .cm-formatting-code
{
border-radius: 0 var(--radius-s) var(--radius-s) 0;
padding: 0.1em 0.25em 0.1em 0;
}
.cm-line .cm-strong
{
color: var(--bold-color) !important;
}
/*
* Keep list bullet padding the same between viewer and editor.
* This is annoying with the cursor in the editor as there is a gap.
*/
/*
.cm-formatting-list
{
padding-right: 4px !important;
}
*/
/*
* Keep sub-list indenting the same between viewer and editor.
* This assumes --list-indent is default at 2em.
*/
/*
.cm-indent
{
text-indent: 1em !important;
}
*/
.mermaid .note
{
fill: var(--mermaid-note) !important;
}
.mermaid .loopLine,
{
stroke: var(--mermaid-loopline) !important;
}
.mermaid .loopText>tspan,
.mermaid .entityLabel
{
fill: var(--red) !important;
}
.mermaid .exclude-range
{
fill: var(--mermaid-exclude) !important;
}
.mermaid .sequenceNumber
{
fill: var(--mermaid-seqnum) !important;
}
.calendar .week-num
{
color: var(--calendar-week) !important;
}
.calendar .today
{
color: var(--calendar-today) !important;
}
.calendar .week-num:hover,
.calendar .day:hover
{
color: var(--calendar-hover) !important;
background-color: var(--calendar-background-hover) !important;
}
.markdown-embed-title
{
color: var(--yellow);
font-weight: 600 !important;
}
.cm-active
{
background-color: var(--cursor-line-background) !important;
}
.nav-file-tag
{
color: var(--nav-file-tag) !important;
}
.is-flashing
{
background-color: var(--flashing-background) !important;
}
.dataview.inline-field-key
{
border-top-left-radius: var(--radius-s);
border-bottom-left-radius: var(--radius-s);
padding-left: 4px;
font-family: var(--font-monospace);
font-size: var(--font-smaller);
color: var(--dataview-key) !important;
background-color: var(--dataview-key-background) !important;
}
.dataview.inline-field-value
{
border-top-right-radius: var(--radius-s);
border-bottom-right-radius: var(--radius-s);
padding-right: 4px;
font-family: var(--font-monospace);
font-size: var(--font-smaller);
color: var(--dataview-value) !important;
background-color: var(--dataview-value-background) !important;
}
.suggestion-highlight
{
color: var(--red);
}

7
.obsidian/themes/Things/manifest.json vendored Normal file
View File

@@ -0,0 +1,7 @@
{
"name": "Things",
"version": "2.1.20",
"minAppVersion": "1.0.0",
"author": "@colineckert",
"authorUrl": "https://twitter.com/colineckert"
}

1628
.obsidian/themes/Things/theme.css vendored Normal file

File diff suppressed because it is too large Load Diff

240
.obsidian/workspace.json vendored Normal file
View File

@@ -0,0 +1,240 @@
{
"main": {
"id": "b894e6395441bf91",
"type": "split",
"children": [
{
"id": "18e28060fe2de0a2",
"type": "tabs",
"children": [
{
"id": "d83bb0bbeeb86eec",
"type": "leaf",
"state": {
"type": "empty",
"state": {}
}
},
{
"id": "3ed058b7ba32ddc0",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Software Project with Agile Techinques/Week 3/Study Skills - Class Diagrams.md",
"mode": "source",
"source": false
}
}
}
],
"currentTab": 1
}
],
"direction": "vertical"
},
"left": {
"id": "29180f976da6913e",
"type": "split",
"children": [
{
"id": "5e6a5a1cfc68c394",
"type": "tabs",
"children": [
{
"id": "b645eb003ca29da3",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "tag:#Subsets",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
}
}
},
{
"id": "fffdf73e5f225916",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {}
}
},
{
"id": "671043c113c40804",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical"
}
}
}
],
"currentTab": 2
}
],
"direction": "horizontal",
"width": 395.5
},
"right": {
"id": "ee8f6df41634f71e",
"type": "split",
"children": [
{
"id": "08c5be16080a33d4",
"type": "tabs",
"children": [
{
"id": "28df09223f5ff3ba",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "Software Project with Agile Techinques/Week 3/Study Skills - Class Diagrams.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
}
}
},
{
"id": "7bc5b41711af1822",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "Software Project with Agile Techinques/Week 3/Study Skills - Class Diagrams.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
}
}
},
{
"id": "1817c377e59b8531",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true
}
}
},
{
"id": "3f130e3d308d39ed",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "Software Project with Agile Techinques/Week 3/Study Skills - Class Diagrams.md"
}
}
},
{
"id": "2e33e92dc5f2fbae",
"type": "leaf",
"state": {
"type": "all-properties",
"state": {
"sortOrder": "frequency",
"showSearch": false,
"searchQuery": ""
}
}
},
{
"id": "ff4e63a36b080692",
"type": "leaf",
"state": {
"type": "git-view",
"state": {}
}
},
{
"id": "390f03a34bed73fd",
"type": "leaf",
"state": {
"type": "mermaid-toolbar-view",
"state": {}
}
}
],
"currentTab": 5
}
],
"direction": "horizontal",
"width": 307.5
},
"left-ribbon": {
"hiddenItems": {
"graph:Open graph view": false,
"command-palette:Open command palette": false,
"switcher:Open quick switcher": false,
"obsidian-git:Open Git source control": false,
"obsidian-full-calendar:Open Full Calendar": false,
"omnisearch:Omnisearch": false,
"mermaid-tools:Open Mermaid Toolbar": false
}
},
"active": "ff4e63a36b080692",
"lastOpenFiles": [
"README.md",
"AI & Data Mining/Week 4/Tutorial 4 - Nearest Neighbor.md",
"AI & Data Mining/Week 4/Lecture 7 - Nearest Neighbor.md",
"AI & Data Mining/Week 4/Workshop 4 - Nearest Neighbor.md",
"Penetration Testing/Week 3/Workshop 3 - netcat.md",
"Penetration Testing/Week 4/Week 4 - Pre-Engagement.md",
"Penetration Testing/Week 4/Workshop 4 - Google Dorking.md",
"Pasted image 20241011140717.png",
"Pasted image 20241011140654.png",
"Pasted image 20241011140611.png",
"Pasted image 20241011131844.png",
"Pasted image 20241011131542.png",
"Software Project with Agile Techinques/Week 4/Workshop 4 - SPAT.md",
"Software Project with Agile Techinques/Week 3/Study Skills - Class Diagrams.md",
"Networking and Security/Week 4/Workshop 4 - Routing.md",
"Software Project with Agile Techinques/Week 4",
"Networking and Security/Week 3/Workshop 3 - Subnetting.md",
"Networking and Security/Week 2/Lecture 3 - IP4 and Subnetting.md",
"Pasted image 20241010135130.png",
"Pasted image 20241010133818.png",
"Client Server Systems/Week 3/Workshop 3.md",
"AI & Data Mining/Week 4",
"Pasted image 20241010132326.png",
"Pasted image 20241010132324.png",
"Client Server Systems/Week 4",
"Data Structures/Week 4/Week 4 - Exceptions.md",
"Penetration Testing/Week 4",
"Networking and Security/Week 4/Lecture 8.md",
"Data Structures/Week 4",
"AI & Data Mining/Week 3/Workshop 3.md",
"Networking and Security/Week 4",
"AI & Data Mining/Week 3/Tutorial 3.md",
"AI & Data Mining/Week 1/Lecture 2 - Input and Output.md",
"Pasted image 20241004143909.png",
"AI & Data Mining/Week 3/Untitled.md.partial",
"AI & Data Mining/Week 3/Lecture 5 - Naive Bayes.md",
"Client Server Systems/Week 3/workshop3/strings.php~",
"Software Project with Agile Techinques/Week 3",
"Networking and Security/Week 3",
"Data Structures/Week 1/Lecture 2 - Data Structures & ADTs.md",
"Data Structures/Week 1/Lecture 1 - Module Intro.md",
"Penetration Testing/Week 3/Lecture 3 - Blue Team.md",
"Data Structures/Week 3/Workshop 3 - ADTs.md",
"Data Structures/Week 3/Lecture 5 - Linear List.md",
"Career Development/Week 3/Lecture 3 - Employment Skills.md",
"Data Structures/Untitled.md",
"Database Systems/Untitled.canvas",
"Untitled 1.canvas",
"Untitled.canvas"
]
}

View File

@@ -0,0 +1,214 @@
# Assessment
## T1
- Exam (50%)
## T2
- Coursework (50%)
# Resources
Data Mining: Practical Machine Learning Tools and Techniques (Witten, Frank, Hall & Pal) 4th Edition 2016
Scientific Calculator
# Data Vs Information
- Too much data
- Valuable resource
- Raw data less important, need to develop techniques to extract information
- Data: recorded facts
- Information: patterns underlying data
# Philosophy
## Cow Culling
- Cows described by 700 features about certain variables
- Problem is the selection of cows of which to cull
- Data is historical records, and farmer decisions
- Machine Learning used to ascertain which factors taken into account by farmers, rather than automating the decision making process.
# Definition of Data Mining
- The extraction of:
- Implicit,
- Previously unknown,
- Potentially useful data
- Programs that detect patterns and regularities are needed
- Strong patterns => good predictions
- Issues:
- Most patterns not interesting
- Patterns may be inexact
- Data may be garbled or missing
# Machine Learning Techniques
- Algorithms for acquiring structural descriptions from examples
- Structural descriptions represent patterns, explicitly.
- Predict outcome in new situation
- Understand and explain how prediction derived.
- Methods originate from AI, statistics and research on databases.
# Can Machines Learn?
- By definition, sort of. The ability to obtain knowledge by study, experience or being taught, is very difficult to measure.
- Does learning imply intention?
# Terminology
- Concept - Thing to be learned
- Example / Instance - Individual, independent examples of a concept
- Attributes / Features - Measuring aspects of an example / instance
- Concept description (pattern, model, hypothesis) - Output for data mining algorithms.
# Famous Small Datasets
- Will be used in module
- Unrealistically simple
## Weather Dataset - Nominal
Concept: conditions which are suitable for a game.
Reference: Quinlan, J.R. (1986)
Induction of decision trees. Machine
Learning, 1(1), 81-106.
### Attributes
3\*3\*2\*2 = 36 possible combinations of values.
Outlook
- sunny, overcast, rainy
Temperature
- hot, mild, cool
Humidity
- high, normal
Windy
- yes, no
Play
- Class
- yes, no
### Dataset
![](Pasted%20image%2020240919134249.png)
![](Pasted%20image%2020240919134304.png)
Rules ordered, higher = higher priority
### Weather Dataset - Mixed
![](Pasted%20image%2020240919134526.png)
![](Pasted%20image%2020240919134535.png)
## Contact Lenses Dataset
Describes conditions under which an optician might want to prescribe soft, hard or no contact lenses.
Grossly over-simplified.
Reference: Cendrowska, J. (1987). Prism: an algorithm
for inducing module rules. Journal of Man-Machine
Studies, 27(4), 349370.
### Attributes
3\*2\*2\*2 = 24 possibilities
Dataset is exhaustive, which is unusual.
Age
- young, pre-presbyopic, presbyopic
Spectacle Prescription
- myope (short), hypermetrope (long)
Astigmatism
- yes, no
Tear Production Rate
- reduced, normal
Recommended Lenses
- class
- hard, soft, none
### Dataset
![](Pasted%20image%2020240919134848.png)
## Iris Dataset
Used in many statistical experiments
Contains numeric attributes of 3 different types of iris.
Created in 1936 by Sir Ronald Fisher
### Dataset
![](Pasted%20image%2020240920130950.png)
# Styles of Learning
- Classification Learning: Predicting a **nominal** class
- Numeric Prediction (Regression): Predicting a **numeric** quantity
- Clustering: Grouping similar examples into clusters
- Association Learning: Detecting associations between attributes
## Classification Learning
- Nominal
- Supervised
- Provided with actual value of the class
- Measure success on fresh data for which class labels are known (test data)
## Numeric Prediction (Regression)
- Numeric
- Supervised
- Test Data
![](Pasted%20image%2020240920131244.png)
Example uses a linear regression function to provide an estimated performance value based on attributes.
## Clustering
- Finding similar groups
- Unsupervised
- Class of example is unknown
- Success measured **subjectively**
## Association Learning
- Applied if no class specified, and any kind of structure is interesting
- Difference to Classification Learning:
- Predicts any attribute's value, not just class.
- More than one attribute's value at a time
- Far more association rules than classification rules.
## Classification Vs Association Rules
Classification Rule:
- Predicts value of a given attribute (class of example)
- ``If outlook = sunny and humidity = high, then play = no``
Association Rule:
- Predicts value of arbitrary attribute / combination
```If temperature = cool, humidity = normal
If humidity = normal and windy = false, play = yes
If outlook = sunny and play = no, humidity = high
If windy = false and play = no, then outlook = sunny and humidity = high
```
# Data Mining and Ethics
- Ethical Issues arise in practical applications
- Data mining often used to discriminate
- Ethical situation depends on application
- Attributes may contain problematic information
- Does ownership of data bestow right to use it in other ways than those purported when it was originally collected?
- Who is permitted to access the data?
- For what purpose was the data collected?
- What conclusions can sensibly be drawn?
- Caveats must be attached to results
- Purely statistical arguments never sufficient

View File

@@ -0,0 +1,135 @@
# Attributes
- Each example described by fixed pre-defined set of features (attributes)
- Number of attributes may vary
- ex. Transportation Vehicles
- no. wheels not applicable to ships
- no. masts not applicable to cars
- Possible solution: "irrelevant value" flag
- Attributes may be dependent on other attributes
# Taxonomy of Data Types
![](Pasted%20image%2020240920132209.png)
# Nominal Attributes
- Distinct symbols
- Serve as labels or names
- No relation implied among nominal values
- Only equality tests can be performed
- ex. outlook = sunny
# Sources of Missing Values
- Malfunctioning / Misconfigured Equipment
- Changes in design
- Collation of different datasets
- Data not collected for mining
- Errors and omissions dont affect purpose of data
- ex. Banks do not need to know age in banking datasets, DOB may contain missing values
- Missing value may have significance
- ex. medical diagnoses can be made from tests a doctor decides, rather than the outcome.
- Most DM algos assume this is not the case, hence "missing" may need to be coded as an additional nominal value.
# Inaccurate Values
- Typographical errors in nominal attributes
- Typographical and measurement errors in numeric attributes
- Deliberate errors
- ex. Incorrect ZIP codes, unsanitised inputs
- Duplicate examples
# Weka and ARFF
## Weather Dataset in ARFF
![](Pasted%20image%2020240920132732.png)
### Getting to Know the Data
- First task, get to know data
- Simple visualisations useful:
- Nominal: bar graph
- Numeric: histograms
- 2D and 3D plots show dependencies
- Need to consult experts
- Too much data? Take sample.
# Concept Descriptions
- Output of DM algorithm
- Many ways of representing:
- Decision Trees
- Rules
- Linear Regression Functions
## Decision Trees
- Divide-and-Conquer approach
- Trees drawn upside down
- Node at top is root
- Edges are branches
- Rectangles represent leaves
- Leaves assign classification
- Nodes involve testing attribute
### Decision Tree with Nominal Attributes
![](Pasted%20image%2020240920133218.png)
- Number of branches usually equal to number values
- Attribute not tested more than once.
### Decision Tree with Numeric Attributes
![](Pasted%20image%2020240920133316.png)
- Test whether value is greater or less than constant
- Attribute may be tested multiple times
### Decision Trees with Missing Values
- Not clear which branch should be taken when node tests attribute with missing value
- Does absence of a value have significance?
- Yes => Treat as separate value during training
- No => Treat in special way during testing
- Assign sample to most popular branch
# Classification Rules
- Popular alternative to decision tree
- Antecedent (pre-condition) - series of tests
- Tests usually logically ANDed together
- Consequent (conclusion) - usually a class
- Individual rules often logically ORed together
## If-Then Rules for Contact Lenses
![](Pasted%20image%2020240920133706.png)
# Nuggets
- Are rules independent
- Problem: Ignores process of executing rules
- Ordered set (decision list)
- Order important for interpretation
- Unordered set
- Rules may overlap and lead to different conclusions for the same example
- Needs conflict resolution
## Executing Rules
- What if $\geq$ 2 rules conflict?
- Give no conclusion?
- Go with the rule that covers largest no. training samples?
- What is no rule applies to test example?
- Give no conclusion?
- Go with class that is most frequent?
## Special Case: Boolean Classes
- Assumption: if example does not belong to class "yes", belongs to "no"
- Solution: only learn rules for class "yes", use default rule for "no"
![](Pasted%20image%2020240920134203.png)
- Order is important, no conflicts.

View File

@@ -0,0 +1,85 @@
# Statistical Modelling
- Using statistical modelling for classification
- Bayesian techniques adopted by machine learning community in the 90s
- Opposite of 1R, uses all attributes
- Assume:
- Attributes equally important
- Statistically independent
- Independence assumption never correct
- Works in practice
# Weather Dataset
![](Pasted%20image%2020241003132609.png)
![](Pasted%20image%2020241003132636.png)
# Bayes' Rule of Conditional Probability
- Probability of event H given evidence E:
# $Pr[H|E] = \frac{Pr[E|H]\times Pr[H]}{Pr[E]}$
- H may be ex. Play = Yes
- E may be particular weather for new day
- A priori probability of H: $Pr[H]$
- Probability before evidence
- A posteriori probability of H: $Pr[H|E]$
- Probability after evidence
## Naive Bayes for Classification
- Classification Learning: what is the probability of class given instance?
- Evidence $E$ = instance
- Event $H$ = class for given instance
- Naive assumption: evidence splits into attributes that are independent
# $Pr[H|E] = \frac{Pr[E_1|H] \times Pr[E_2|H]… Pr[E_n|H] \times Pr[H]}{Pr[E]}$
- Denominator cancels out during conversion into probability by normalisation
### Weather Data Example
![](Pasted%20image%2020241003133919.png)
# Laplace Estimator
- Remedy to Zero-frequency problem: Add 1 to the count for every attribute value-class combination (laplace estimator)
- Result: probabilities will never be 0 (also stabilises probability estimates)
- Simple remedy is one which is often used in practice when zero frequency problem arises.
## Example
![](Pasted%20image%2020241003134100.png)
# Modified Probability Estimates
- Consider attribute *outlook* for class *yes*
# $\frac{2+\frac{1}{3}\mu}{9+\mu}$
Sunny
# $\frac{4+\frac{1}{3}\mu}{9+\mu}$
Overcast
# $\frac{3+\frac{1}{3}\mu}{9+\mu}$
Rainy
- Each value treated the same way
- Prior to seeing training set, assume each value is equally likely, ex. prior probability is $\frac{1}{3}$
- When decided to add 1 to counts, we implicitly set $\mu$ to 3.
- However, no particular reason to add 1 to the count, we could increment by 0.1 instead, setting $\mu$ to 0.3.
- A large value of $\mu$ indicates prior probabilities are very important compared to evidence in training set.
## Fully Bayesian Formulation
# $\frac{2+\frac{1}{3}\mu p_1}{9+\mu}$
Sunny
# $\frac{4+\frac{1}{3}\mu p_2}{9+\mu}$
Overcast
# $\frac{3+\frac{1}{3}\mu p_3}{9+\mu}$
Rainy
- Where $p_1 + p_2 + p_3 = 1$
- $p_1, p_2, p_3$ are prior probabilities of outlook being sunny, overcast or rainy before seeing the training set. However, in practice it is not clear how these prior probabilities should be assigned.

View File

@@ -0,0 +1,51 @@
| Temperature | Skin | Blood Pressure | Blocked Nose | Diagnosis |
| ----------- | ------ | -------------- | ------------ | --------- |
| Low | Pale | Normal | True | N |
| Moderate | Pale | Normal | True | B |
| High | Normal | High | False | N |
| Moderate | PaleFF | Normal | False | B |
| High | Red | High | False | N |
| High | Red | High | True | N |
| Moderate | Red | High | False | B |
| Low | Normal | High | False | B |
| Low | Pale | Normal | False | B |
| Low | Normal | Normal | False | B |
| High | Normal | Normal | True | B |
| Moderate | Normal | High | True | B |
| Moderate | Red | Normal | False | B |
| Low | Normal | High | True | N |
| | Temperature | | | Skin | | | Pressure | | | Blocked | | Diag | |
| -------- | ----------- | --- | ------ | ---- | --- | ------ | -------- | --- | ----- | ------- | --- | ---- | ---- |
| | N | B | | N | B | | N | B | | N | B | N | B |
| Low | 2 | 3 | Pale | 1 | 3 | Normal | 1 | 6 | True | 3 | 3 | 5 | 9 |
| Moderate | 0 | 5 | Normal | 2 | 4 | High | 4 | 3 | False | 2 | 6 | | |
| High | 3 | 1 | Red | 2 | 2 | | | | | | | | |
| | Temperature | | | Skin | | | Pressure | | | Blocked | | | Diag |
| Low | 2/5 | 3/9 | Pale | 1/5 | 3/9 | Normal | 1/5 | 6/9 | True | 3/5 | 3/9 | 5/14 | 9/14 |
| Moderate | 0/5 | 5/9 | Normal | 2/5 | 4/9 | High | 4/5 | 3/9 | False | 2/5 | 6/9 | | |
| High | 2/5 | 1/9 | Red | 3/5 | 2/9 | | | | | | | | |
# Problem 1
# $Pr[Diagnosis=N|E] = \frac{2}{5} \times \frac{2}{5} \times \frac{4}{5} \times \frac{3}{5} \times \frac{5}{14} = 0.027428571$
# $Pr[Diagnosis = B|E] = \frac{3}{9} \times \frac{4}{9} \times \frac{3}{9} \times \frac{3}{9} \times \frac{9}{14} = 0.010582011$
# $p(B) = \frac{0.0106}{0.0106+0.0274} = 0.2789$
# $p(N) = \frac{0.0274}{0.0106+0.0274} = 0.7211$
Diagnosis N is much more likely than Diagnosis B
# Problem 2
# $Pr[Diagnosis = N|E] = \frac{2}{5} \times \frac{1}{5} \times \frac{3}{5} \times \frac{5}{14} = 0.0171$
# $Pr[Diagnosis = B|E] = \frac{3}{9} \times \frac{6}{9} \times \frac{3}{9} \times \frac{9}{14} = 0.0476$
# $p(N) = \frac{0.0171}{0.0171+0.0476} = 0.2643$
# $p(B) = \frac{0.0474}{0.0476+0.0171} = 0.7357$
Diagnosis B is much more likely than Diagnosis N
# Problem 3
# $Pr[Diagnosis = N|E] = \frac{0}{5} \times \frac{2}{5} \times \frac{4}{5} \times \frac{3}{5} \times \frac{5}{14} = 0$
# $Pr[Diagnosis = B|E] = \frac{5}{9} \times \frac{4}{9} \times \frac{3}{9} \times \frac{3}{9} \times \frac{9}{14} = 0.018$

View File

@@ -0,0 +1,277 @@
# Weather Dataset
## Dataset
```
% This is a comment about the data set.
% This data describes examples of whether to play
% a game or not depending on weather conditions.
@relation letsPlay
@attribute outlook {sunny, overcast, rainy}
@attribute temperature real
@attribute humidity real
@attribute windy {TRUE, FALSE}
@attribute play {yes, no}
@data
sunny,85,FALSE,no
sunny,90,TRUE,no
overcast,86,FALSE,yes
rainy,96,FALSE,yes
rainy,80,FALSE,yes
rainy,70,TRUE,no
overcast,65,TRUE,yes
sunny,95,FALSE,no
sunny,70,FALSE,yes
rainy,80,FALSE,yes
sunny,70,TRUE,yes
overcast,90,TRUE,yes
overcast,75,FALSE,yes
rainy,91,TRUE,no
```
## Output
```
=== Run information ===
Scheme: weka.classifiers.bayes.NaiveBayes
Relation: letsPlay
Instances: 14
Attributes: 5
outlook
temperature
humidity
windy
play
Test mode: evaluate on training data
=== Classifier model (full training set) ===
Naive Bayes Classifier
Class
Attribute yes no
(0.63) (0.38)
===============================
outlook
sunny 3.0 4.0
overcast 5.0 1.0
rainy 4.0 3.0
[total] 12.0 8.0
temperature
mean 72.9697 74.8364
std. dev. 5.2304 7.384
weight sum 9 5
precision 1.9091 1.9091
humidity
mean 78.8395 86.1111
std. dev. 9.8023 9.2424
weight sum 9 5
precision 3.4444 3.4444
windy
TRUE 4.0 4.0
FALSE 7.0 3.0
[total] 11.0 7.0
Time taken to build model: 0 seconds
=== Evaluation on training set ===
Time taken to test model on training data: 0.01 seconds
=== Summary ===
Correctly Classified Instances 13 92.8571 %
Incorrectly Classified Instances 1 7.1429 %
Kappa statistic 0.8372
Mean absolute error 0.2798
Root mean squared error 0.3315
Relative absolute error 60.2576 %
Root relative squared error 69.1352 %
Total Number of Instances 14
```
# Medical Dataset
## Dataset
```
```@relation medical
@attribute Temperature {Low,Moderate,High}
@attribute Skin {Pale,Normal,Red}
@attribute BloodPressure {Normal,High}
@attribute BlockedNose {True,False}
@attribute Diagnosis {N,B}
@data
Low, Pale, Normal, True, N
Moderate, Pale, Normal, True, B
High, Normal, High, False, N
Moderate, Pale, Normal, False, B
High, Red, High, False, N
High, Red, High, True, N
Moderate, Red, High, False, B
Low, Normal, High, False, B
Low, Pale, Normal, False, B
Low, Normal, Normal, False, B
High, Normal, Normal, True, B
Moderate, Normal, High, True, B
Moderate, Red, Normal, False, B
Low, Normal, High, True, N```
```
## Output
```
=== Run information ===
Scheme: weka.classifiers.bayes.NaiveBayes
Relation: diagnosis
Instances: 14
Attributes: 5
Temperature
Skin
BloodPressure
BlockedNose
Diagnosis
Test mode: evaluate on training data
=== Classifier model (full training set) ===
Naive Bayes Classifier
Class
Attribute N B
(0.38) (0.63)
==============================
Temperature
Low 3.0 4.0
Moderate 1.0 6.0
High 4.0 2.0
[total] 8.0 12.0
Skin
Pale 2.0 4.0
Normal 3.0 5.0
Red 3.0 3.0
[total] 8.0 12.0
BloodPressure
Normal 2.0 7.0
High 5.0 4.0
[total] 7.0 11.0
BlockedNose
True 4.0 4.0
False 3.0 7.0
[total] 7.0 11.0
Time taken to build model: 0 seconds
=== Evaluation on training set ===
Time taken to test model on training data: 0 seconds
=== Summary ===
Correctly Classified Instances 12 85.7143 %
Incorrectly Classified Instances 2 14.2857 %
Kappa statistic 0.6889
Mean absolute error 0.2635
Root mean squared error 0.3272
Relative absolute error 56.7565 %
Root relative squared error 68.2385 %
Total Number of Instances 14
```
# Using Test Data
## Test Data
```
@relation medical
@attribute Temperature {Low,Moderate,High}
@attribute Skin {Pale,Normal,Red}
@attribute BloodPressure {Normal,High}
@attribute BlockedNose {True,False}
@attribute Diagnosis {N,B}
@data
Low,Normal,High,True,N
Low,?,Normal,True,B
Moderate,Normal,High,True,B
```
## Output
```
=== Run information ===
Scheme: weka.classifiers.bayes.NaiveBayes
Relation: medical
Instances: 14
Attributes: 5
Temperature
Skin
BloodPressure
BlockedNose
Diagnosis
Test mode: user supplied test set: size unknown (reading incrementally)
=== Classifier model (full training set) ===
Naive Bayes Classifier
Class
Attribute N B
(0.38) (0.63)
==============================
Temperature
Low 3.0 4.0
Moderate 1.0 6.0
High 4.0 2.0
[total] 8.0 12.0
Skin
Pale 2.0 4.0
Normal 3.0 5.0
Red 3.0 3.0
[total] 8.0 12.0
BloodPressure
Normal 2.0 7.0
High 5.0 4.0
[total] 7.0 11.0
BlockedNose
True 4.0 4.0
False 3.0 7.0
[total] 7.0 11.0
Time taken to build model: 0 seconds
=== Predictions on test set ===
inst# actual predicted error prediction
1 1:N 1:N 0.652
2 2:B 2:B 0.677
3 2:B 2:B 0.706
=== Evaluation on test set ===
Time taken to test model on supplied test set: 0 seconds
=== Summary ===
Correctly Classified Instances 3 100 %
Incorrectly Classified Instances 0 0 %
Kappa statistic 1
Mean absolute error 0.3215
Root mean squared error 0.3223
Relative absolute error 70.1487 %
Root relative squared error 68.0965 %
Total Number of Instances 3
```

View File

@@ -0,0 +1,112 @@
- Instance Based
- Solution to new problem is solution to closest example
- Must be able to measure distance between pair of examples
- Normally euclidean distance
# Normalisation of Numeric Attributes
- Attributes measured on different scales
- Larger scales have higher impacts
- Must normalise (transform to scale [0, 1])
# $a_i = \frac{v_i - minv_i}{maxv_i - minv_i}$
Where:
- $a_i$ is normalised value for attribute $i$
- $v_i$ is the current value for attribute $i$
- $maxv_i$ is largest value of attribute $i$
- $minv_i$ is smallest value of attribute $i$
## Example
# $maxv_{humidity} = 96$
# $minv_{humidity} = 65$
# $v_{humidity} = 80.5$
# $a_i = \frac{80.5-65}{96-55} = \frac{15.5}{31} = 0.5$
## Example (Transport Dataset)
# $maxv_{doors} = 5$
# $minv_{doors} = 2$
# $v_{doors} = 3$
# $a_i = \frac{3-2}{5-2} = \frac{1}{3}$
# Nearest Neighbor Applied (Transport Dataset)
- Last row is new vehicle to be classified
- N denotes normalised
- Right most column shows euclidean distances between each vehicle and new vehicle
- New vehicle is closest to the 1st example, a taxi, NN predicts taxi
![](Pasted%20image%2020241010133818.png)
# $vmin_{doors} = 2$
# $vmax_{doors} = 5$
# $vmin_{seats} = 7$
# $vmax_{seats} = 65$
# Missing Values
## Missing Nominal Values
- Assume missing feature is maximally different from any other value
- Distance is:
- 0 if identical and not missing
- 1 if otherwise
## Missing Numeric Values
- 1 if both missing
- Assume maximum distance if one missing. Largest of:
- (normalised) size of known value or
- 1 - (normalised) size of known value
## Example (Weather Data)
- Humidity of one example = 76
- Normalised = 0.36
- One missing
- Max distance = 1 - 0.36 = 0.64
## Example (Transport Data)
- Number of seats of one example = 16
- Normalised = 9/58
- One missing
- 1 - 9/58 = 49/58
## Normalised Transport Data with Missing Values
- Last row to be classified
- N denotes normalised
- Right most column is euclidean values
![](Pasted%20image%2020241010135130.png)
# Definitions of Proximity
## Euclidean Distance
# $\sqrt{(a_1-a_1')^2) + (a_2-a_2')^2 + ... + (a_n-a_n')^2}$
Where $a$ and $a'$ are two examples with $n$ attributes and $a'$ is the value of attribute $i$ for $a$
## Manhattan Distance
# $|a_1-a_1'|+|a_2-a_2'|+...+|a_n-a_n'|$
Vertical bar means absolute value
Negative becomes positive
Another distance measure could be cube root of sum of cubes.
Higher the power, greater influence of large differences
Euclidean distance is generally a good compromise
# Problems with Nearest Neighbor
- Slow since every example must be compared with new
- Assumes all attributes are equal
- Only use important attributes to compute distance
- Weight attributes according to importance
- Does not detect noise
- Use k-NN, get k closest examples and take majority vote on solutions
![](Pasted%20image%2020241011131542.png)

View File

@@ -0,0 +1,36 @@
![](Pasted%20image%2020241011131844.png)
## Normalisation Equation
# $a_i = \frac{v_i - minv_i}{maxv_i - minv_i}$
## Euclidean Distance Equation
# $\sqrt{(a_1-a_1')^2) + (a_2-a_2')^2 + ... + (a_n-a_n')^2}$
# $vmax_{temp} = 85$
# $vmin_{temp} = 64$
# $a_{temp} = \frac{v_{temp} - 64}{21}$
# $vmax_{humidity} = 96$
# $vmin_{humidity} = 65$
# $a_{humidity} = \frac{v_{humidity} - 65}{31}$
| outlook | temp | NT | humidity | NH | windy | play | Euclidean Distance to a' Calculation | Euclidean Distance |
| -------- | ---- | ---- | -------- | ---- | ----- | ---- | -------------------------------------------------- | ------------------ |
| sunny | 85 | 1 | 85 | 0.65 | F | N | $\sqrt{(85-72)^2 + (85-76)^2 + (2-2)^2 + (0-1)^2}$ | 15.84 |
| sunny | 80 | 0.76 | 90 | 0.81 | T | N | $\sqrt{(80-72)^2 + (90-76)^2+ (2-2)^2 + (1-1)^2}$ | 16.12 |
| overcast | 83 | 0.90 | 68 | 0.68 | F | Y | $\sqrt{(83-72)^2 + (68-76)^2+ (1-2)^2 + (0-1)^2}$ | 13.67 |
| rainy | 70 | 0.29 | 96 | 1 | F | Y | $\sqrt{(70-72)^2 + (96-76)^2+ (0-2)^2 + (0-1)^2}$ | 20.22 |
| rainy | 68 | 0.19 | 80 | 0.48 | F | Y | $\sqrt{(68-72)^2 + (80-76)^2+ (0-2)^2 + (0-1)^2}$ | 25 |
| rainy | 65 | 0.05 | 70 | 0.16 | T | N | $\sqrt{(65-72)^2 + (70-76)^2+ (0-2)^2 + (1-1)^2}$ | |
| overcast | 64 | 0 | 65 | 0 | T | Y | $\sqrt{(64-72)^2 + (65-76)^2+ (1-2)^2 + (1-1)^2}$ | |
| sunny | 72 | 0.38 | 95 | 0.97 | F | N | $\sqrt{(72-72)^2 + (95-76)^2+ (2-2)^2 + (0-1)^2}$ | |
| sunny | 69 | 0.24 | 70 | 0.16 | F | Y | $\sqrt{(69-72)^2 + (70-76)^2+ (2-2)^2 + (0-1)^2}$ | |
| rainy | 75 | 0.52 | 80 | 0.48 | F | Y | $\sqrt{(75-72)^2 + (80-76)^2+ (0-2)^2 + (0-1)^2}$ | |
| sunny | 75 | 0.52 | 70 | 0.16 | T | Y | $\sqrt{(75-72)^2 + (70-76)^2+ (2-2)^2 + (1-1)^2}$ | |
| overcast | 72 | 0.38 | 90 | 0.81 | T | Y | $\sqrt{(72-72)^2 + (90-76)^2+ (1-2)^2 + (1-1)^2}$ | |
| overcast | 81 | 0.81 | 75 | 0.32 | F | Y | $\sqrt{(81-72)^2 + (75-76)^2+ (1-2)^2 + (0-1)^2}$ | |
| rainy | 71 | 0.33 | 91 | 0.84 | T | N | $\sqrt{(71-72)^2 + (91-76)^2+ (0-2)^2 + (1-1)^2}$ | |
| sunny | 72 | 0.38 | 76 | 0.35 | T | ?? | | |

View File

@@ -0,0 +1,42 @@
```
=== Run information ===
Scheme: weka.classifiers.lazy.IBk -K 3 -W 0 -A "weka.core.neighboursearch.LinearNNSearch -A \"weka.core.EuclideanDistance -R first-last\""
Relation: letsPlay
Instances: 14
Attributes: 5
outlook
temperature
humidity
windy
play
Test mode: user supplied test set: size unknown (reading incrementally)
=== Classifier model (full training set) ===
IB1 instance-based classifier
using 3 nearest neighbour(s) for classification
Time taken to build model: 0 seconds
=== Predictions on test set ===
inst# actual predicted error prediction
1 1:yes 1:yes 0.659
2 1:yes 1:yes 0.659
=== Evaluation on test set ===
Time taken to test model on supplied test set: 0 seconds
=== Summary ===
Correctly Classified Instances 2 100 %
Incorrectly Classified Instances 0 0 %
Kappa statistic 1
Mean absolute error 0.3409
Root mean squared error 0.3409
Relative absolute error 90.9091 %
Root relative squared error 90.9091 %
Total Number of Instances 2
```

View File

@@ -0,0 +1,55 @@
# Reflection
Career Development is as important as any technical module on this course. I found the concept of just the acknowledgement of different soft skills significant; I had never thought of this effect before, even happening subconsciously. Awareness of a fact is the first step to changing or implementing.
This lecture highlighted a weakness in my note taking, as I tend to not note down points I misunderstood, instead just making a mental note to investigate later and rarely adding retroactive points. Noting this is both an example of understanding I should change this, and how I should continue in the future.
In addition, I found the concept of writing reflections helpful for not just this module, and not even just at university. I rarely reflect on past learning generally; this will help growth in most aspects of life continuing to reflect.
# About
Description of module and objectives. Practical aspects and assessments explained. Importance of soft skills in employability and different types of soft skills. Refresher on note taking and reflective writing.
Career Development just as important as technical modules, soft skills are what get you hired and provide communication skills in the workplace.
# Assessments
## T1
### Early Self Assessment Report (30%)
Understanding and development of your soft skills so far (diary)
## T2
### Reflective Weekly Journal (50%)
Weekly reflective entries on each lecture in T1 and T2
### Final Self Assessment Report (20%)
Reflection of your existing and soft skills
These Assessments start as of this lecture.
# Examples of Soft Skills
- Communication
- Teamwork, but also Independence
- Time Management
- Leadership
- Note: some people aren't built for leadership, and have to force it to make it.
- Very important to take charge, building confidence
- Critical Thinking
- Adaptability
- Digital Literacy
Just awareness of the skills existence is beneficial. Never thought of it this way, awareness is the first step to implementation.
Review and correct notes, reflect. Add extra notes, look up sources of misunderstood information.
# Reflective Writing
A response to new experiences or information, and a valuable opportunity to growth. Not a purely descriptive method, but rather retroactive form of writing, using critical thinking to understand what has been learned or gained from an experience.
Starting with a short description, write about goals and content. Reflect on what was interesting, useful, or relevant; why was this the case? Honest reflective writing often involves revealing concerns and weaknesses, along with strengths and successes. This shows understanding.

View File

@@ -0,0 +1,93 @@
# Reflection
Finding a placement would broaden knowledge outside of purely academia.
# Applying
- Need good CV, applicable CV
- Need Cover Letter
- Interview skills
# Process
On Placement:
- Two Visits from Uni
- Documentation and Presentation
- Weekly Log
- Interim Report
- Final Report
- Presentation at University
- Line Manager Present
# Benefits
- Gives more confidence
- Work experience
- Chances of employment increase
- Chance to meet new people
- Chance for company to gain new passionate employees
# CVs
- Aim to get interview
- Prepare by reflection, and developed knowledge
- Skills audit (Week 3)
- Listing skills and abilities employers want
- Opportunity to demonstrate skill matching requirements
- Marketing tool
- 2 pages max
## Structure
- Name, contact details
- Personal Profile
- Education
- Most recent first
- Don't simply list modules
- Write what was taught, or is taught
- Pre-Salford 2-3 lines
- Action words
- Leading, Organising, etc.
- Short sentences why candidate
- Employment History
- Responsibilities / Interests
- References
- Where key skills?
- Separate section or embedded, but highlighted
- Check spelling -\_-, this is just common sense
# Cover Letter
- Read information supplied by employer, doing own research
## Structure
- Address to named individual, if possible
- State post applying for and where advertised (Re: Software Engineer at BT Group)
- Explain why want job, and why want to work for company - virtue signal pls
- Draw attention to important points in CV
- Explain weak points and what youre doing to address points
- Indicate what you have done that makes you a preferred candidate
# Interview
- First impression
- Dressed, greeting, body language, how questions answered
- Preparation, research company
- Know competitors, products, profitability
- Dress appropriately
- Body Language
- Eye contact, smile
- Use opportunity to sell yourself
- Practice before answering typical questions
- Interviewers are typically interested in
- Teamworking
- Communication
- Leadership Skills
- Problem solving
- Time management
- STAR (Situation Task Action Result)
- If no situation, offer hypothetical
- Have prepared questions
- Take practice interview with Salford Careers

View File

@@ -0,0 +1 @@
This lecture has revealed that we should be reflecting on both our technical and employable skills - Computer Science careers are not purely based on technical ability, but also the ability to converse, communicate, work in teams, etc. University primarily trains technical skills, soft skills must be learned through experience, not just education.

View File

@@ -0,0 +1,23 @@
- Originally stood for "Personal Home Page", and grew to mean PHP: Hypertext Preprocessor.
- PHP is a HTML embedded scripting language
- Since it's inception, PHP has seen exponential growth in use and now powers around 80% of websites
- PHP usually runs on UNIX or LINUX operation systems, but a number of Windows web hosting companies offer emulation on their Windows servers.
![](Pasted%20image%2020240916172110.png)
# Comment Standards for the Module
```@param <type> $variableName description
@return <type> description
@author name <email>
@copyright copyright
@license url licenseName
@version version
@package package
```
# Workshop Exercises
![](Pasted%20image%2020240916172844.png)
![](Pasted%20image%2020240916173130.png)

View File

@@ -0,0 +1,3 @@
- ![](Pasted%20image%2020240919143921.png)
- ![](Pasted%20image%2020240919144005.png)

View File

@@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/workshop1.iml" filepath="$PROJECT_DIR$/.idea/workshop1.iml" />
</modules>
</component>
</project>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MessDetectorOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PHPCSFixerOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PHPCodeSnifferOptionsConfiguration">
<option name="highlightLevel" value="WARNING" />
<option name="transferred" value="true" />
</component>
<component name="PhpStanOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PsalmOptionsConfiguration">
<option name="transferred" value="true" />
</component>
</project>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

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

View File

@@ -0,0 +1,4 @@
<?php
echo "Tomorrow I'll learn PHP global variables";
echo "<br>";
echo "This is a bad command : del c:\*.*";

View File

@@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

View File

@@ -0,0 +1,21 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="HtmlUnknownTag" enabled="true" level="WARNING" enabled_by_default="true">
<option name="myValues">
<value>
<list size="7">
<item index="0" class="java.lang.String" itemvalue="nobr" />
<item index="1" class="java.lang.String" itemvalue="noembed" />
<item index="2" class="java.lang.String" itemvalue="comment" />
<item index="3" class="java.lang.String" itemvalue="noscript" />
<item index="4" class="java.lang.String" itemvalue="embed" />
<item index="5" class="java.lang.String" itemvalue="script" />
<item index="6" class="java.lang.String" itemvalue="head" />
</list>
</value>
</option>
<option name="myCustomValuesEnabled" value="true" />
</inspection_tool>
</profile>
</component>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptLibraryMappings">
<file url="PROJECT" libraries="{@types/bootstrap, bootstrap}" />
</component>
</project>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/workshop2.iml" filepath="$PROJECT_DIR$/.idea/workshop2.iml" />
</modules>
</component>
</project>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MessDetectorOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PHPCSFixerOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PHPCodeSnifferOptionsConfiguration">
<option name="highlightLevel" value="WARNING" />
<option name="transferred" value="true" />
</component>
<component name="PhpProjectSharedConfiguration" php_language_level="8.3" />
<component name="PhpStanOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PsalmOptionsConfiguration">
<option name="transferred" value="true" />
</component>
</project>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="@types/bootstrap" level="application" />
<orderEntry type="library" name="bootstrap" level="application" />
</component>
</module>

View File

@@ -0,0 +1,19 @@
body {
outline: 1px solid black;
padding: 10px;
width: fit-content;
height: fit-content;
}
#main * {
margin-bottom: 15px;
}
#radio {
outline: 1px solid black;
width: fit-content;
}
#radio * {
margin: 5px;
}

View File

@@ -0,0 +1,28 @@
<body>
<head>
<link rel="stylesheet" href="index.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<title>Passing Data</title>
</head>
<p><strong>Please enter your details below:</strong></p>
<form name="form1" method="post" action="passingdata.php">
<div id="main">
<label>First Name:
<input type="text" name="firstname">
</label>
<label>Surname:
<input type="text" name="surname">
</label>
<div id="radio">
<label>CS <input type="radio" name="course" value="CS"/> </label>
<label>SE <input type="radio" name="course" value="SE"/> </label>
<label>MIT <input type="radio" name="course" value="MIT"/> </label>
</div>
<label>Living on Salford Campus<input type="checkbox" name="onCampus"></label>
<br>
<input type="submit" name="Submit" value="Submit"/>
<input type="reset" name="Reset" value="Reset"/>
</div>
</form>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.min.js" integrity="sha384-w1Q4orYjBQndcko6MimVbzY0tgp4pWB4lZ7lr30WKz0vr/aWKhXdBNmNb5D92v7s" crossorigin="anonymous"></script>
</body>

View File

@@ -0,0 +1,20 @@
<body>
<div>
<p><strong>Please enter your name and birthday:</strong></p>
<form name="form1" method="post" action="passingdata.php">
<span>
<label>Your name:
<input type="text" name="name">
</label>
<br>
<label>Your Birthday (in DD/MM/YY format):
<input type="text"
name="birthday" required>
</label>
<br>
<input type="submit" name="Submit" value="Submit">
<input type="reset" name="Submit2" value="Reset">
</span>
</form>
</div>
</body>

View File

@@ -0,0 +1,44 @@
<body>
<span>
<?php
$birthday = $_POST['birthday'];
$test_array = explode("/", $birthday);
$firstname = $_POST['firstname'];
$surname = $_POST['surname'];
$course = $_POST['course'];
$onCampus = $_POST['onCampus'];
echo "Hello, $firstname $surname";
echo "<br>";
if (isset($_POST["birthday"])) {
if (count($test_array) == 3) {
if (checkdate($test_array[0], $test_array[1], $test_array[2])) {
if (($test_array[2]-2024)<-100) {
echo "Birthday: $birthday";
echo "<br>";
}
else {
echo "Over 100 years old";
}
}
else {
echo "Birthday in Incorrect Format";
echo "<br>";
}
}
}
echo "Course: $course";
echo "<br>";
echo "On Campus: ";
if (isset($_POST['onCampus'])) {
echo "True";
} else {
echo "False";
}
?>
<br>
<a href="index.html"><button>Return to Form</button></a>
</span>
</body>

Some files were not shown because too many files have changed in this diff Show More