vault backup: 2025-03-16 18:59:42
This commit is contained in:
5
.obsidian/app.json
vendored
5
.obsidian/app.json
vendored
@@ -1,13 +1,14 @@
|
||||
{
|
||||
"showInlineTitle": true,
|
||||
"useMarkdownLinks": true,
|
||||
"promptDelete": true,
|
||||
"promptDelete": false,
|
||||
"showLineNumber": true,
|
||||
"attachmentFolderPath": "images",
|
||||
"pdfExportSettings": {
|
||||
"includeName": true,
|
||||
"pageSize": "A4",
|
||||
"landscape": false,
|
||||
"margin": "0",
|
||||
"margin": "2",
|
||||
"downscalePercent": 64
|
||||
},
|
||||
"readableLineLength": false,
|
||||
|
||||
6
.obsidian/appearance.json
vendored
6
.obsidian/appearance.json
vendored
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"accentColor": "",
|
||||
"theme": "system",
|
||||
"theme": "moonstone",
|
||||
"cssTheme": "Tokyo Night",
|
||||
"nativeMenus": true,
|
||||
"baseFontSize": 14,
|
||||
"interfaceFontFamily": "AppleGothic,Inter",
|
||||
"textFontFamily": "AppleGothic,Inter",
|
||||
"interfaceFontFamily": "AppleGothic,Ubuntu Mono",
|
||||
"textFontFamily": "AppleGothic,DejaVu Math TeX Gyre",
|
||||
"monospaceFontFamily": "PT Mono,Andale Mono",
|
||||
"baseFontSizeAction": false,
|
||||
"translucency": true
|
||||
|
||||
3
.obsidian/community-plugins.json
vendored
3
.obsidian/community-plugins.json
vendored
@@ -7,5 +7,6 @@
|
||||
"obsidian-style-settings",
|
||||
"url-into-selection",
|
||||
"obsidian-csv-table",
|
||||
"mermaid-tools"
|
||||
"mermaid-tools",
|
||||
"obsidian-latex"
|
||||
]
|
||||
30
.obsidian/plugins/obsidian-latex-suite/data.json
vendored
Executable file
30
.obsidian/plugins/obsidian-latex-suite/data.json
vendored
Executable file
File diff suppressed because one or more lines are too long
15605
.obsidian/plugins/obsidian-latex-suite/main.js
vendored
Executable file
15605
.obsidian/plugins/obsidian-latex-suite/main.js
vendored
Executable file
File diff suppressed because one or more lines are too long
11
.obsidian/plugins/obsidian-latex-suite/manifest.json
vendored
Executable file
11
.obsidian/plugins/obsidian-latex-suite/manifest.json
vendored
Executable file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"id": "obsidian-latex-suite",
|
||||
"name": "Latex Suite",
|
||||
"version": "1.9.8",
|
||||
"minAppVersion": "1.0.0",
|
||||
"description": "Make typesetting LaTeX math as fast as handwriting through snippets, text expansion, and editor enhancements",
|
||||
"author": "artisticat",
|
||||
"authorUrl": "https://github.com/artisticat1",
|
||||
"fundingUrl": "https://ko-fi.com/artisticat",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
235
.obsidian/plugins/obsidian-latex-suite/styles.css
vendored
Executable file
235
.obsidian/plugins/obsidian-latex-suite/styles.css
vendored
Executable file
@@ -0,0 +1,235 @@
|
||||
/* Settings panel */
|
||||
|
||||
.setting-item.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.setting-item.setting-item-heading .latex-suite-settings-icon {
|
||||
margin-right: var(--size-4-2);
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
.setting-item.setting-item-heading:has(.latex-suite-settings-icon) {
|
||||
border-bottom: 1px solid var(--background-modifier-border);
|
||||
}
|
||||
|
||||
.setting-item.setting-item-heading:has(.latex-suite-settings-icon) + .setting-item {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.setting-item.setting-item-heading:has(.latex-suite-settings-icon) ~ .setting-item:not(.setting-item-heading), .latex-suite-snippet-variables-setting + .setting-item-control {
|
||||
width: calc(100% - 26px);
|
||||
margin-left: 26px;
|
||||
}
|
||||
|
||||
.latex-suite-snippet-variables-setting .setting-item-control {
|
||||
height: 120px;
|
||||
}
|
||||
|
||||
.latex-suite-snippet-variables-setting .setting-item-control textarea {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.snippets-text-area, .latex-suite-snippet-variables-setting {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.snippets-text-area .setting-item-info, .latex-suite-snippet-variables-setting .setting-item-info {
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
|
||||
.snippets-text-area .setting-item-control {
|
||||
flex-direction: column;
|
||||
align-items: flex-end;
|
||||
}
|
||||
|
||||
.snippets-editor-wrapper {
|
||||
width: 100%;
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
|
||||
.snippets-editor-wrapper .cm-editor {
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
border-radius: 4px;
|
||||
font-size: var(--font-inputs);
|
||||
height: 20em;
|
||||
outline: none !important;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.snippets-editor-wrapper .cm-line, .snippets-editor-wrapper .cm-lineNumbers {
|
||||
font-family: var(--font-monospace);
|
||||
}
|
||||
|
||||
.snippets-footer {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.snippets-editor-validity {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.snippets-editor-validity-indicator {
|
||||
color: white;
|
||||
display: inline-block;
|
||||
border-radius: 1em;
|
||||
margin-right: 10px;
|
||||
cursor: default;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.snippets-editor-validity-indicator svg {
|
||||
width: 16px !important;
|
||||
height: 16px !important;
|
||||
}
|
||||
|
||||
.snippets-editor-validity-indicator:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.snippets-editor-validity-indicator.valid {
|
||||
background-color: var(--color-green);
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.snippets-editor-validity-indicator.invalid {
|
||||
background-color: var(--color-red);
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.snippets-editor-buttons {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.latex-suite-confirmation-modal .setting-item {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.search-input-container input.latex-suite-location-input-el {
|
||||
width: initial;
|
||||
}
|
||||
|
||||
/*
|
||||
Snippet color classes.
|
||||
*/
|
||||
|
||||
/* These extra selectors enforce their color on all children, because CodeMirror does weird nesting of spans when
|
||||
nesting multiple decorations. */
|
||||
|
||||
.latex-suite-snippet-placeholder {
|
||||
border-radius: 2px;
|
||||
background-color: var(--placeholder-bg);
|
||||
outline: var(--placeholder-outline) solid 1px;
|
||||
}
|
||||
|
||||
.latex-suite-snippet-placeholder-0, span.latex-suite-snippet-placeholder-0 span {
|
||||
--placeholder-bg: #87cefa2e;
|
||||
--placeholder-outline: #87cefa6e;
|
||||
}
|
||||
|
||||
.theme-dark .latex-suite-snippet-placeholder-0, span.latex-suite-snippet-placeholder-0 span {
|
||||
--placeholder-outline: #87cefa43;
|
||||
}
|
||||
|
||||
.latex-suite-snippet-placeholder-1, span.latex-suite-snippet-placeholder-1 span {
|
||||
--placeholder-bg: #ffa50033;
|
||||
--placeholder-outline: #ffa5006b;
|
||||
}
|
||||
|
||||
.theme-dark .latex-suite-snippet-placeholder-1, span.latex-suite-snippet-placeholder-1 span {
|
||||
--placeholder-outline: #ffa5004d;
|
||||
}
|
||||
|
||||
.latex-suite-snippet-placeholder-2, span.latex-suite-snippet-placeholder-2 span {
|
||||
--placeholder-bg: #00ff0022;
|
||||
--placeholder-outline: #00ff0060;
|
||||
}
|
||||
|
||||
.theme-dark .latex-suite-snippet-placeholder-2, span.latex-suite-snippet-placeholder-2 span {
|
||||
--placeholder-outline: #00ff003d;
|
||||
}
|
||||
|
||||
|
||||
/* Conceal */
|
||||
|
||||
span.cm-math.cm-concealed-bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
span.cm-math.cm-concealed-underline {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
span.cm-math.cm-concealed-mathrm, sub.cm-math.cm-concealed-mathrm {
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
|
||||
/* Conceal superscripts without changing line height */
|
||||
sup.cm-math {
|
||||
line-height: 0;
|
||||
}
|
||||
|
||||
sup.cm-math, sub.cm-math {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
|
||||
/* Inline math tooltip styling */
|
||||
|
||||
.theme-light .cm-tooltip.cm-tooltip-cursor {
|
||||
box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.028), 0px 3.4px 6.7px rgba(0, 0, 0, .042), 0px 5px 20px rgba(0, 0, 0, .07);
|
||||
}
|
||||
|
||||
.theme-dark .cm-tooltip.cm-tooltip-cursor {
|
||||
box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1),
|
||||
0px 3.4px 6.7px rgba(0, 0, 0, 0.15),
|
||||
0px 0px 30px rgba(0, 0, 0, 0.27);
|
||||
}
|
||||
|
||||
|
||||
/* Highlight brackets */
|
||||
.theme-light .latex-suite-highlighted-bracket, .theme-light .latex-suite-highlighted-bracket [class^="latex-suite-color-bracket-"] {
|
||||
background-color: hsl(var(--accent-h), var(--accent-s), 40%, 0.3);
|
||||
}
|
||||
|
||||
.theme-dark .latex-suite-highlighted-bracket, .theme-dark .latex-suite-highlighted-bracket [class^="latex-suite-color-bracket-"] {
|
||||
background-color: hsl(var(--accent-h), var(--accent-s), 70%, 0.6);
|
||||
}
|
||||
|
||||
|
||||
/* Color matching brackets */
|
||||
|
||||
.theme-light .latex-suite-color-bracket-0, .theme-light .latex-suite-color-bracket-0 .cm-bracket {
|
||||
color: #527aff;
|
||||
}
|
||||
|
||||
.theme-dark .latex-suite-color-bracket-0, .theme-dark .latex-suite-color-bracket-0 .cm-bracket {
|
||||
color: #47b8ff;
|
||||
}
|
||||
|
||||
.theme-light .latex-suite-color-bracket-1, .theme-light .latex-suite-color-bracket-1 .cm-bracket {
|
||||
color: #ff50b7;
|
||||
}
|
||||
|
||||
.theme-dark .latex-suite-color-bracket-1, .theme-dark .latex-suite-color-bracket-1 .cm-bracket {
|
||||
color: #ff55cd;
|
||||
}
|
||||
|
||||
.theme-light .latex-suite-color-bracket-2, .theme-light .latex-suite-color-bracket-2 .cm-bracket {
|
||||
color: #69ba00;
|
||||
}
|
||||
|
||||
.theme-dark .latex-suite-color-bracket-2, .theme-dark .latex-suite-color-bracket-2 .cm-bracket {
|
||||
color: #73ff63;
|
||||
}
|
||||
|
||||
/* .latex-suite-color-bracket-3 {
|
||||
color: #8de15c;
|
||||
} */
|
||||
206
.obsidian/plugins/obsidian-latex/main.js
vendored
Executable file
206
.obsidian/plugins/obsidian-latex/main.js
vendored
Executable file
@@ -0,0 +1,206 @@
|
||||
'use strict';
|
||||
|
||||
var obsidian = require('obsidian');
|
||||
|
||||
/*! *****************************************************************************
|
||||
Copyright (c) Microsoft Corporation.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
***************************************************************************** */
|
||||
/* global Reflect, Promise */
|
||||
|
||||
var extendStatics = function(d, b) {
|
||||
extendStatics = Object.setPrototypeOf ||
|
||||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
||||
return extendStatics(d, b);
|
||||
};
|
||||
|
||||
function __extends(d, b) {
|
||||
if (typeof b !== "function" && b !== null)
|
||||
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
||||
extendStatics(d, b);
|
||||
function __() { this.constructor = d; }
|
||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||
}
|
||||
|
||||
function __awaiter(thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
}
|
||||
|
||||
function __generator(thisArg, body) {
|
||||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
||||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
||||
function verb(n) { return function (v) { return step([n, v]); }; }
|
||||
function step(op) {
|
||||
if (f) throw new TypeError("Generator is already executing.");
|
||||
while (_) try {
|
||||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
||||
if (y = 0, t) op = [op[0] & 2, t.value];
|
||||
switch (op[0]) {
|
||||
case 0: case 1: t = op; break;
|
||||
case 4: _.label++; return { value: op[1], done: false };
|
||||
case 5: _.label++; y = op[1]; op = [0]; continue;
|
||||
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
||||
default:
|
||||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
||||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
||||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
||||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
||||
if (t[2]) _.ops.pop();
|
||||
_.trys.pop(); continue;
|
||||
}
|
||||
op = body.call(thisArg, _);
|
||||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
||||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
||||
}
|
||||
}
|
||||
|
||||
var DEFAULT_SETTINGS = {
|
||||
preamblePath: "preamble.sty",
|
||||
};
|
||||
var JaxPlugin = /** @class */ (function (_super) {
|
||||
__extends(JaxPlugin, _super);
|
||||
function JaxPlugin(app, manifest) {
|
||||
var _this = _super.call(this, app, manifest) || this;
|
||||
_this.app = app;
|
||||
_this.settings = DEFAULT_SETTINGS;
|
||||
return _this;
|
||||
}
|
||||
JaxPlugin.prototype.loadPreamble = function () {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var preamble;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0: return [4 /*yield*/, this.app.vault.adapter.read(this.settings.preamblePath)];
|
||||
case 1:
|
||||
preamble = _a.sent();
|
||||
if (MathJax.tex2chtml == undefined) {
|
||||
MathJax.startup.ready = function () {
|
||||
MathJax.startup.defaultReady();
|
||||
MathJax.tex2chtml(preamble);
|
||||
};
|
||||
}
|
||||
else {
|
||||
MathJax.tex2chtml(preamble);
|
||||
}
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
JaxPlugin.prototype.loadSettings = function () {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var _a, _b, _c, _d;
|
||||
return __generator(this, function (_e) {
|
||||
switch (_e.label) {
|
||||
case 0:
|
||||
_a = this;
|
||||
_c = (_b = Object).assign;
|
||||
_d = [{}, DEFAULT_SETTINGS];
|
||||
return [4 /*yield*/, this.loadData()];
|
||||
case 1:
|
||||
_a.settings = _c.apply(_b, _d.concat([_e.sent()]));
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
JaxPlugin.prototype.saveSettings = function () {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0: return [4 /*yield*/, this.saveData(this.settings)];
|
||||
case 1:
|
||||
_a.sent();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
JaxPlugin.prototype.onload = function () {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0: return [4 /*yield*/, this.loadSettings()];
|
||||
case 1:
|
||||
_a.sent();
|
||||
this.addSettingTab(new JaxPluginSettingTab(this.app, this));
|
||||
// Load MathJax so that we can modify it
|
||||
// Otherwise, it would not be loaded when this plugin is loaded
|
||||
return [4 /*yield*/, obsidian.loadMathJax()];
|
||||
case 2:
|
||||
// Load MathJax so that we can modify it
|
||||
// Otherwise, it would not be loaded when this plugin is loaded
|
||||
_a.sent();
|
||||
if (!MathJax) {
|
||||
console.warn("MathJax was not defined despite loading it.");
|
||||
return [2 /*return*/];
|
||||
}
|
||||
return [4 /*yield*/, this.loadPreamble()];
|
||||
case 3:
|
||||
_a.sent();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
JaxPlugin.prototype.onunload = function () {
|
||||
// TODO: Is it possible to remove our definitions?
|
||||
console.log('Unloading Extended MathJax');
|
||||
};
|
||||
return JaxPlugin;
|
||||
}(obsidian.Plugin));
|
||||
var JaxPluginSettingTab = /** @class */ (function (_super) {
|
||||
__extends(JaxPluginSettingTab, _super);
|
||||
function JaxPluginSettingTab(app, plugin) {
|
||||
var _this = _super.call(this, app, plugin) || this;
|
||||
_this.plugin = plugin;
|
||||
return _this;
|
||||
}
|
||||
JaxPluginSettingTab.prototype.display = function () {
|
||||
var _this = this;
|
||||
var containerEl = this.containerEl;
|
||||
containerEl.empty();
|
||||
new obsidian.Setting(containerEl)
|
||||
.setName('Preamble path')
|
||||
.setDesc('Path to global preamble. (Requires reload!)')
|
||||
.addText(function (text) {
|
||||
return text
|
||||
.setValue(_this.plugin.settings.preamblePath)
|
||||
.onChange(function (value) { return __awaiter(_this, void 0, void 0, function () {
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
this.plugin.settings.preamblePath = value;
|
||||
return [4 /*yield*/, this.plugin.saveSettings()];
|
||||
case 1:
|
||||
_a.sent();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
}); });
|
||||
});
|
||||
};
|
||||
return JaxPluginSettingTab;
|
||||
}(obsidian.PluginSettingTab));
|
||||
|
||||
module.exports = JaxPlugin;
|
||||
|
||||
|
||||
/* nosourcemap */
|
||||
10
.obsidian/plugins/obsidian-latex/manifest.json
vendored
Executable file
10
.obsidian/plugins/obsidian-latex/manifest.json
vendored
Executable file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"id": "obsidian-latex",
|
||||
"name": "Extended MathJax",
|
||||
"version": "0.4.1",
|
||||
"minAppVersion": "0.12.16",
|
||||
"description": "Adds support for a MathJax preamble and enables additional MathJax extensions for specific domains (chemistry, proofs).",
|
||||
"author": "Xavier Denis & Ng Wei En",
|
||||
"authorUrl": "https://github.com/wei2912/obsidian-latex",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
146
.obsidian/workspace.json
vendored
146
.obsidian/workspace.json
vendored
@@ -13,33 +13,58 @@
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Penetration Testing/Exploitation Assignment/Discovery.md",
|
||||
"file": "AI & Data Mining/Week 22/Chapter 22 Validity and Inference Rules.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Discovery"
|
||||
"title": "Chapter 22 Validity and Inference Rules"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "ccb530263275547c",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
},
|
||||
{
|
||||
"id": "874d2d014b491baf",
|
||||
"id": "e186aac04d6f44bd",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "pdf",
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "AI & Data Mining/Exercise Booklet.pdf"
|
||||
"file": "AI & Data Mining/Week 23/Week 23 - Deductive Proofs.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file-text",
|
||||
"title": "Exercise Booklet"
|
||||
"icon": "lucide-file",
|
||||
"title": "Week 23 - Deductive Proofs"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "3ee69deee29aa157",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Penetration Testing/Exploitation Assignment/Task 2 - Web Attacks.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Task 2 - Web Attacks"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "9d5df515e1a9868d",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Career Development/Assessment 2 Diary.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Assessment 2 Diary"
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"currentTab": 3
|
||||
}
|
||||
],
|
||||
"direction": "vertical"
|
||||
@@ -97,7 +122,7 @@
|
||||
}
|
||||
],
|
||||
"direction": "horizontal",
|
||||
"width": 395.5
|
||||
"width": 204.5
|
||||
},
|
||||
"right": {
|
||||
"id": "ee8f6df41634f71e",
|
||||
@@ -217,53 +242,54 @@
|
||||
"mermaid-tools:Open Mermaid Toolbar": false
|
||||
}
|
||||
},
|
||||
"active": "874d2d014b491baf",
|
||||
"active": "ff4e63a36b080692",
|
||||
"lastOpenFiles": [
|
||||
"Client Server Systems/Ecobuddy/test-admin.js",
|
||||
"Client Server Systems/Ecobuddy/logincontroller.php.deprecated",
|
||||
"Client Server Systems/Ecobuddy/public/css/fonts/bootstrap-icons.woff2",
|
||||
"Client Server Systems/Ecobuddy/public/css/fonts/bootstrap-icons.woff",
|
||||
"Client Server Systems/Ecobuddy/public/js/simpleAuth.js",
|
||||
"Client Server Systems/Ecobuddy/public/js/facilityData.js",
|
||||
"Client Server Systems/Ecobuddy/public/js/comments.js",
|
||||
"Client Server Systems/Ecobuddy/public/js/bootstrap.bundle.js",
|
||||
"Client Server Systems/Ecobuddy/public/js/auth.js",
|
||||
"Client Server Systems/Ecobuddy/public/js/apiClient.js",
|
||||
"Client Server Systems/Ecobuddy/public/css/my-style.css",
|
||||
"Career Development/Assessment 2 Plan.md",
|
||||
"Career Development/Assessment 2 Diary.md",
|
||||
"Career Development/Assessment.md",
|
||||
"AI & Data Mining/Week 26 - Deductive Proofs.md",
|
||||
"AI & Data Mining/Week 25/Chapter 25 - Predicate Logic Quantifiers.md",
|
||||
"AI & Data Mining/Week 25/Week 25 - Predicate Logic Quantifiers.md",
|
||||
"Penetration Testing/Exploitation Assignment/Task 2 - Web Attacks.md",
|
||||
"AI & Data Mining/Week 23/Untitled.md",
|
||||
"AI & Data Mining/Week 23/Week 23 - Deductive Proofs.md",
|
||||
"AI & Data Mining/Week 24/Week 24 - Predicate Logic.md",
|
||||
"AI & Data Mining/Week 21/Week 21 - Transformational Proofs in Propositional Logic.md",
|
||||
"Client Server Systems/PHPStorm Repo/ajax_workshop_2/search.php",
|
||||
"Client Server Systems/PHPStorm Repo/ajax_workshop_2/searchinator.php",
|
||||
"Penetration Testing/Exploitation Assignment/Discovery.md",
|
||||
"AI & Data Mining/Week 21",
|
||||
"Client Server Systems/PHPStorm Repo/students.sqlite",
|
||||
"Client Server Systems/PHPStorm Repo/ajax_workshop_2/Views/index.phtml",
|
||||
"Client Server Systems/PHPStorm Repo/ajax_workshop_2/index.php",
|
||||
"Client Server Systems/PHPStorm Repo/ajax_workshop_2/Views/page1.phtml",
|
||||
"Client Server Systems/PHPStorm Repo/ajax_workshop_2/Views/studentISv1.phtml",
|
||||
"Client Server Systems/PHPStorm Repo/ajax_workshop_2/studentISv1.php",
|
||||
"Client Server Systems/PHPStorm Repo/ajax_workshop_2/Models/StudentsDataSet.php",
|
||||
"Client Server Systems/PHPStorm Repo/ajax_workshop_2/images/new_uos_logo.jpg",
|
||||
"Client Server Systems/PHPStorm Repo/ajax_workshop_2/fonts/glyphicons-halflings-regular.svg",
|
||||
"Client Server Systems/PHPStorm Repo/images/new_uos_logo.jpg",
|
||||
"Client Server Systems/PHPStorm Repo/fonts/glyphicons-halflings-regular.svg",
|
||||
"Client Server Systems/PHPStorm Repo/ajax_workshop_1/favicon.png",
|
||||
"images/Pasted image 20250131145917.png",
|
||||
"images/Pasted image 20250131144439.png",
|
||||
"images/Pasted image 20250131144425.png",
|
||||
"AI & Data Mining/Week 20/Week 20 - Intro to Propositional Logic.md",
|
||||
"AI & Data Mining/Week 20/Chapter 20 Tutorial - Introduction to Propositional Logic.md",
|
||||
"AI & Data Mining/Week 20/Propositional Logic Examples.md",
|
||||
"AI & Data Mining/Week 19/Timeline of History.md",
|
||||
"Penetration Testing/Week 20/Week 20 - Web Attacks.md",
|
||||
"AI & Data Mining/Week 21/Chapter 21 - Transformational Proofs.md",
|
||||
"AI & Data Mining/Week 22/Week 22 Validity and Inference Rules.md",
|
||||
"AI & Data Mining/Week 22/Chapter 22 Validity and Inference Rules.md",
|
||||
"AI & Data Mining/Assessment/Coursework Prep Notes.md",
|
||||
"AI & Data Mining/Week 23/Chapter 23 - Deductive Proofs.md",
|
||||
"images/Pasted image 20250221132524.png",
|
||||
"Penetration Testing/Week 21/Week 21 - Exploits and Post-Exploitation.md",
|
||||
"Penetration Testing/Week 21/Public Exploitation Workshop.md",
|
||||
"Penetration Testing/Week 20/Week 20 - Web Application Attacks.md",
|
||||
"Penetration Testing/Week 23/Week 23 - Password Attacks.md",
|
||||
"Penetration Testing/Week 22/Week 22 - Web Attacks.md",
|
||||
"images/Pasted image 20241025141348.png",
|
||||
"images/Pasted image 20241017132059.png",
|
||||
"images/Pasted image 20241011131542.png",
|
||||
"images/Pasted image 20241003133342.png",
|
||||
"images/Pasted image 20241003092201.png",
|
||||
"images/Pasted image 20241003092549.png",
|
||||
"images/Pasted image 20241017130933.png",
|
||||
"images/Pasted image 20240920133316.png",
|
||||
"images/Pasted image 20240920133706.png",
|
||||
"README.md",
|
||||
"CWC 3 - Fit for Trade.md",
|
||||
"images/Pasted image 20250129154055.png",
|
||||
"CWC 1 - Consistency.md",
|
||||
"CWC 2 - Warm Welcome.md",
|
||||
"Penetration Testing/Week 19/Steps to Complete Workshop 2.md",
|
||||
"AI & Data Mining/Week 18/Week 18 - Tutorial.md",
|
||||
"Data Structures/GPT Answers to Past Paper/Question 4.md",
|
||||
"Data Structures/GPT Answers to Past Paper/Question 1.md",
|
||||
"Data Structures/GPT Answers to Past Paper/Question 6.md",
|
||||
"Penetration Testing/Week 19/AI Summary.md",
|
||||
"Penetration Testing/Week 19/Week 19 - Buffer Overflow.md",
|
||||
"Client Server Systems/PHPStorm Repo/php-s1/MVCtemplate-23-24/images/new_uos_logo.jpg",
|
||||
"AI & Data Mining/Week 18/Week 18 - What AI?????.md",
|
||||
"Networking and Security/Week 18/Workshop.md",
|
||||
"Data Structures/AI Notes/Stack.md",
|
||||
"Data Structures/AI Notes/Trees.md",
|
||||
"Data Structures/AI Notes/Linear List.md",
|
||||
"Data Structures/AI Notes/Exceptions.md",
|
||||
"Data Structures/AI Notes/Double linked lists.md",
|
||||
"Data Structures/AI Notes/Data Structures and Abstract Data Types.md",
|
||||
"Client Server Systems/Week 1/Workshop 1 - Intro to PHP.md",
|
||||
"Welcome.md",
|
||||
"Database Systems/Untitled.canvas",
|
||||
"Untitled 1.canvas",
|
||||
"Untitled.canvas"
|
||||
|
||||
Reference in New Issue
Block a user