vault update: plugins, templates
This commit is contained in:
5
.obsidian/app.json
vendored
5
.obsidian/app.json
vendored
@@ -1 +1,4 @@
|
|||||||
{}
|
{
|
||||||
|
"newFileLocation": "folder",
|
||||||
|
"newFileFolderPath": "100 inbox"
|
||||||
|
}
|
||||||
8
.obsidian/community-plugins.json
vendored
Normal file
8
.obsidian/community-plugins.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
[
|
||||||
|
"github-sync",
|
||||||
|
"obsidian-relative-line-numbers",
|
||||||
|
"calendar",
|
||||||
|
"dataview",
|
||||||
|
"obsidian-tasks-plugin",
|
||||||
|
"templater-obsidian"
|
||||||
|
]
|
||||||
3
.obsidian/daily-notes.json
vendored
Normal file
3
.obsidian/daily-notes.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"folder": "000 daily"
|
||||||
|
}
|
||||||
10
.obsidian/plugins/calendar/data.json
vendored
Normal file
10
.obsidian/plugins/calendar/data.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"shouldConfirmBeforeCreate": true,
|
||||||
|
"weekStart": "locale",
|
||||||
|
"wordsPerDot": 250,
|
||||||
|
"showWeeklyNote": false,
|
||||||
|
"weeklyNoteFormat": "",
|
||||||
|
"weeklyNoteTemplate": "",
|
||||||
|
"weeklyNoteFolder": "",
|
||||||
|
"localeOverride": "system-default"
|
||||||
|
}
|
||||||
4459
.obsidian/plugins/calendar/main.js
vendored
Normal file
4459
.obsidian/plugins/calendar/main.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
10
.obsidian/plugins/calendar/manifest.json
vendored
Normal file
10
.obsidian/plugins/calendar/manifest.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"id": "calendar",
|
||||||
|
"name": "Calendar",
|
||||||
|
"description": "Calendar view of your daily notes",
|
||||||
|
"version": "1.5.10",
|
||||||
|
"author": "Liam Cain",
|
||||||
|
"authorUrl": "https://github.com/liamcain/",
|
||||||
|
"isDesktopOnly": false,
|
||||||
|
"minAppVersion": "0.9.11"
|
||||||
|
}
|
||||||
20876
.obsidian/plugins/dataview/main.js
vendored
Normal file
20876
.obsidian/plugins/dataview/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
11
.obsidian/plugins/dataview/manifest.json
vendored
Normal file
11
.obsidian/plugins/dataview/manifest.json
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"id": "dataview",
|
||||||
|
"name": "Dataview",
|
||||||
|
"version": "0.5.68",
|
||||||
|
"minAppVersion": "0.13.11",
|
||||||
|
"description": "Complex data views for the data-obsessed.",
|
||||||
|
"author": "Michael Brenan <blacksmithgu@gmail.com>",
|
||||||
|
"authorUrl": "https://github.com/blacksmithgu",
|
||||||
|
"helpUrl": "https://blacksmithgu.github.io/obsidian-dataview/",
|
||||||
|
"isDesktopOnly": false
|
||||||
|
}
|
||||||
141
.obsidian/plugins/dataview/styles.css
vendored
Normal file
141
.obsidian/plugins/dataview/styles.css
vendored
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
.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(--nav-item-color-selected);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dataview.inline-field-value {
|
||||||
|
padding-left: 8px;
|
||||||
|
padding-right: 8px;
|
||||||
|
font-family: var(--font-monospace);
|
||||||
|
background-color: var(--background-secondary-alt);
|
||||||
|
color: var(--nav-item-color-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(--nav-item-color-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: ")";
|
||||||
|
}
|
||||||
9
.obsidian/plugins/github-sync/data.json
vendored
Normal file
9
.obsidian/plugins/github-sync/data.json
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"remoteURL": "ssh://git@gitea.lab.audasmedia.com.au:2222/sam/obsidian-vault.git",
|
||||||
|
"gitLocation": "",
|
||||||
|
"syncinterval": 15,
|
||||||
|
"isSyncOnLoad": true,
|
||||||
|
"checkStatusOnLoad": true,
|
||||||
|
"noticeLevel": "ALL",
|
||||||
|
"showSyncSuccessNotice": true
|
||||||
|
}
|
||||||
4907
.obsidian/plugins/github-sync/main.js
vendored
Normal file
4907
.obsidian/plugins/github-sync/main.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
10
.obsidian/plugins/github-sync/manifest.json
vendored
Normal file
10
.obsidian/plugins/github-sync/manifest.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"id": "github-sync",
|
||||||
|
"name": "GitHub Sync",
|
||||||
|
"version": "1.0.7",
|
||||||
|
"minAppVersion": "0.15.0",
|
||||||
|
"description": "Sync vault to personal GitHub.",
|
||||||
|
"author": "Kevin Chin",
|
||||||
|
"authorUrl": "https://kevin.gd/",
|
||||||
|
"isDesktopOnly": true
|
||||||
|
}
|
||||||
42
.obsidian/plugins/github-sync/styles.css
vendored
Normal file
42
.obsidian/plugins/github-sync/styles.css
vendored
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
|
||||||
|
This CSS file will be included with your plugin, and
|
||||||
|
available in the app when your plugin is enabled.
|
||||||
|
|
||||||
|
If your plugin does not need CSS, delete this file.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
.gh-sync-ribbon
|
||||||
|
{
|
||||||
|
order: 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gh-sync-status
|
||||||
|
{
|
||||||
|
order: -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.howto {
|
||||||
|
border: 1px solid var(--background-modifier-border);
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.howto_title {
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.howto_text {
|
||||||
|
color: var(--text-muted);
|
||||||
|
font-size: smaller;
|
||||||
|
}
|
||||||
|
|
||||||
|
.my-plugin-setting-text {
|
||||||
|
width: 30em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.my-plugin-setting-text2 {
|
||||||
|
width: 30em;
|
||||||
|
}
|
||||||
|
|
||||||
194
.obsidian/plugins/obsidian-relative-line-numbers/main.js
vendored
Normal file
194
.obsidian/plugins/obsidian-relative-line-numbers/main.js
vendored
Normal file
@@ -0,0 +1,194 @@
|
|||||||
|
/*
|
||||||
|
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());
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// main.ts
|
||||||
|
__export(exports, {
|
||||||
|
default: () => RelativeLineNumbers
|
||||||
|
});
|
||||||
|
var import_obsidian = __toModule(require("obsidian"));
|
||||||
|
|
||||||
|
// extension.ts
|
||||||
|
var import_view = __toModule(require("@codemirror/view"));
|
||||||
|
var import_state = __toModule(require("@codemirror/state"));
|
||||||
|
var import_language = __toModule(require("@codemirror/language"));
|
||||||
|
var relativeLineNumberGutter = new import_state.Compartment();
|
||||||
|
var Marker = class extends import_view.GutterMarker {
|
||||||
|
constructor(text) {
|
||||||
|
super();
|
||||||
|
this.text = text;
|
||||||
|
this.elementClass = "relative-line-numbers-mono";
|
||||||
|
}
|
||||||
|
toDOM() {
|
||||||
|
return document.createTextNode(this.text);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
function linesCharLength(state) {
|
||||||
|
return state.doc.lines.toString().length;
|
||||||
|
}
|
||||||
|
var absoluteLineNumberGutter = (0, import_view.gutter)({
|
||||||
|
lineMarker: (view, line) => {
|
||||||
|
const lineNo = view.state.doc.lineAt(line.from).number;
|
||||||
|
const charLength = linesCharLength(view.state);
|
||||||
|
const absoluteLineNo = new Marker(lineNo.toString().padStart(charLength, " "));
|
||||||
|
const cursorLine = view.state.doc.lineAt(view.state.selection.asSingle().ranges[0].to).number;
|
||||||
|
if (lineNo === cursorLine) {
|
||||||
|
return absoluteLineNo;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
initialSpacer: (view) => {
|
||||||
|
const spacer = new Marker("0".repeat(linesCharLength(view.state)));
|
||||||
|
return spacer;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
function relativeLineNumbers(lineNo, state) {
|
||||||
|
const charLength = linesCharLength(state);
|
||||||
|
const blank = " ".padStart(charLength, " ");
|
||||||
|
if (lineNo > state.doc.lines) {
|
||||||
|
return blank;
|
||||||
|
}
|
||||||
|
const cursorLine = state.doc.lineAt(state.selection.asSingle().ranges[0].to).number;
|
||||||
|
const start = Math.min(state.doc.line(lineNo).from, state.selection.asSingle().ranges[0].to);
|
||||||
|
const stop = Math.max(state.doc.line(lineNo).from, state.selection.asSingle().ranges[0].to);
|
||||||
|
const folds = (0, import_language.foldedRanges)(state);
|
||||||
|
let foldedCount = 0;
|
||||||
|
folds.between(start, stop, (from, to) => {
|
||||||
|
let rangeStart = state.doc.lineAt(from).number;
|
||||||
|
let rangeStop = state.doc.lineAt(to).number;
|
||||||
|
foldedCount += rangeStop - rangeStart;
|
||||||
|
});
|
||||||
|
if (lineNo === cursorLine) {
|
||||||
|
return blank;
|
||||||
|
} else {
|
||||||
|
return (Math.abs(cursorLine - lineNo) - foldedCount).toString().padStart(charLength, " ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var showLineNumbers = relativeLineNumberGutter.of((0, import_view.lineNumbers)({ formatNumber: relativeLineNumbers }));
|
||||||
|
var lineNumbersUpdateListener = import_view.EditorView.updateListener.of((viewUpdate) => {
|
||||||
|
if (viewUpdate.selectionSet) {
|
||||||
|
viewUpdate.view.dispatch({
|
||||||
|
effects: relativeLineNumberGutter.reconfigure((0, import_view.lineNumbers)({ formatNumber: relativeLineNumbers }))
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
function lineNumbersRelative() {
|
||||||
|
return [absoluteLineNumberGutter, showLineNumbers, lineNumbersUpdateListener];
|
||||||
|
}
|
||||||
|
|
||||||
|
// main.ts
|
||||||
|
var RelativeLineNumbers = class extends import_obsidian.Plugin {
|
||||||
|
isLegacy() {
|
||||||
|
var _a;
|
||||||
|
return (_a = this.app.vault.config) == null ? void 0 : _a.legacyEditor;
|
||||||
|
}
|
||||||
|
onload() {
|
||||||
|
return __async(this, null, function* () {
|
||||||
|
const showLineNumber = this.app.vault.getConfig("showLineNumber");
|
||||||
|
if (showLineNumber) {
|
||||||
|
this.enable();
|
||||||
|
}
|
||||||
|
this.setupConfigChangeListener();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
onunload() {
|
||||||
|
this.disable();
|
||||||
|
}
|
||||||
|
enable() {
|
||||||
|
this.enabled = true;
|
||||||
|
if (this.isLegacy()) {
|
||||||
|
this.legacyEnable();
|
||||||
|
} else {
|
||||||
|
this.registerEditorExtension(lineNumbersRelative());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
disable() {
|
||||||
|
this.enabled = false;
|
||||||
|
if (this.isLegacy) {
|
||||||
|
this.legacyDisable();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
legacyEnable() {
|
||||||
|
this.registerCodeMirror((cm) => {
|
||||||
|
cm.on("cursorActivity", this.legacyRelativeLineNumbers);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
legacyDisable() {
|
||||||
|
this.app.workspace.iterateCodeMirrors((cm) => {
|
||||||
|
cm.off("cursorActivity", this.legacyRelativeLineNumbers);
|
||||||
|
cm.setOption("lineNumberFormatter", CodeMirror.defaults["lineNumberFormatter"]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
setupConfigChangeListener() {
|
||||||
|
const configChangedEvent = this.app.vault.on("config-changed", () => {
|
||||||
|
const showLineNumber = this.app.vault.getConfig("showLineNumber");
|
||||||
|
if (showLineNumber && !this.enabled) {
|
||||||
|
this.enable();
|
||||||
|
} else if (!showLineNumber && this.enabled) {
|
||||||
|
this.disable();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
configChangedEvent.ctx = this;
|
||||||
|
this.registerEvent(configChangedEvent);
|
||||||
|
}
|
||||||
|
legacyRelativeLineNumbers(cm) {
|
||||||
|
const current = cm.getCursor().line + 1;
|
||||||
|
if (cm.state.curLineNum === current) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
cm.state.curLineNum = current;
|
||||||
|
cm.setOption("lineNumberFormatter", (line) => {
|
||||||
|
if (line === current) {
|
||||||
|
return String(current);
|
||||||
|
}
|
||||||
|
return String(Math.abs(current - line));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/* nosourcemap */
|
||||||
10
.obsidian/plugins/obsidian-relative-line-numbers/manifest.json
vendored
Normal file
10
.obsidian/plugins/obsidian-relative-line-numbers/manifest.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"id": "obsidian-relative-line-numbers",
|
||||||
|
"name": "Relative Line Numbers",
|
||||||
|
"version": "3.0.0",
|
||||||
|
"minAppVersion": "1.4.16",
|
||||||
|
"description": "Enables relative line numbers in editor mode",
|
||||||
|
"author": "Nadav Spiegelman",
|
||||||
|
"authorUrl": "https://nadav.is",
|
||||||
|
"isDesktopOnly": false
|
||||||
|
}
|
||||||
10
.obsidian/plugins/obsidian-relative-line-numbers/styles.css
vendored
Normal file
10
.obsidian/plugins/obsidian-relative-line-numbers/styles.css
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
.relative-line-numbers-mono {
|
||||||
|
font-family: monospace;
|
||||||
|
white-space: pre;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-lineNumbers {
|
||||||
|
font-family: monospace;
|
||||||
|
white-space: pre;
|
||||||
|
min-width: 25px; /* prevent relative line numbers from shifting on files with ~10-20 lines */
|
||||||
|
}
|
||||||
522
.obsidian/plugins/obsidian-tasks-plugin/main.js
vendored
Normal file
522
.obsidian/plugins/obsidian-tasks-plugin/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
12
.obsidian/plugins/obsidian-tasks-plugin/manifest.json
vendored
Normal file
12
.obsidian/plugins/obsidian-tasks-plugin/manifest.json
vendored
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"id": "obsidian-tasks-plugin",
|
||||||
|
"name": "Tasks",
|
||||||
|
"version": "8.0.0",
|
||||||
|
"minAppVersion": "1.8.7",
|
||||||
|
"description": "Track tasks across your vault. Supports due dates, recurring tasks, done dates, sub-set of checklist items, and filtering.",
|
||||||
|
"helpUrl": "https://publish.obsidian.md/tasks/",
|
||||||
|
"author": "Clare Macrae and Ilyas Landikov (created by Martin Schenck)",
|
||||||
|
"authorUrl": "https://github.com/obsidian-tasks-group",
|
||||||
|
"fundingUrl": "https://github.com/sponsors/claremacrae",
|
||||||
|
"isDesktopOnly": false
|
||||||
|
}
|
||||||
1
.obsidian/plugins/obsidian-tasks-plugin/styles.css
vendored
Normal file
1
.obsidian/plugins/obsidian-tasks-plugin/styles.css
vendored
Normal file
File diff suppressed because one or more lines are too long
47
.obsidian/plugins/templater-obsidian/data.json
vendored
Normal file
47
.obsidian/plugins/templater-obsidian/data.json
vendored
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
{
|
||||||
|
"command_timeout": 5,
|
||||||
|
"templates_folder": "",
|
||||||
|
"templates_pairs": [
|
||||||
|
[
|
||||||
|
"",
|
||||||
|
""
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"trigger_on_file_creation": true,
|
||||||
|
"auto_jump_to_cursor": false,
|
||||||
|
"enable_system_commands": false,
|
||||||
|
"shell_path": "",
|
||||||
|
"user_scripts_folder": "",
|
||||||
|
"enable_folder_templates": true,
|
||||||
|
"folder_templates": [
|
||||||
|
{
|
||||||
|
"folder": "200 projects",
|
||||||
|
"template": "templates/tmpl_project.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"folder": "400 resources/430 Movies Books Plays Games",
|
||||||
|
"template": "templates/tmpl_media_resource.md"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"folder": "400 resources/440 Code Cheats Snips CLI",
|
||||||
|
"template": "templates/tmpl_technical_snippet.md"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enable_file_templates": false,
|
||||||
|
"file_templates": [
|
||||||
|
{
|
||||||
|
"regex": ".*",
|
||||||
|
"template": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"syntax_highlighting": true,
|
||||||
|
"syntax_highlighting_mobile": false,
|
||||||
|
"enabled_templates_hotkeys": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"startup_templates": [
|
||||||
|
""
|
||||||
|
],
|
||||||
|
"intellisense_render": 1,
|
||||||
|
"ignore_folders_on_creation": []
|
||||||
|
}
|
||||||
53
.obsidian/plugins/templater-obsidian/main.js
vendored
Normal file
53
.obsidian/plugins/templater-obsidian/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
17
.obsidian/plugins/templater-obsidian/manifest.json
vendored
Normal file
17
.obsidian/plugins/templater-obsidian/manifest.json
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"id": "templater-obsidian",
|
||||||
|
"name": "Templater",
|
||||||
|
"version": "2.20.4",
|
||||||
|
"description": "Advanced templating and automation using handlebars-like syntax.",
|
||||||
|
"minAppVersion": "1.12.2",
|
||||||
|
"author": "SilentVoid",
|
||||||
|
"authorUrl": "https://github.com/SilentVoid13",
|
||||||
|
"fundingUrl": {
|
||||||
|
"GitHub Sponser (Zachatoo, maintainer)": "https://github.com/sponsors/Zachatoo",
|
||||||
|
"Ko-fi (Zachatoo, maintainer)": "https://ko-fi.com/zachatoo",
|
||||||
|
"GitHub Sponser (SilentVoid13, creator)": "https://github.com/sponsors/SilentVoid13",
|
||||||
|
"Paypal (SilentVoid13, creator)": "https://www.paypal.com/donate?hosted_button_id=U2SRGAFYXT32Q"
|
||||||
|
},
|
||||||
|
"helpUrl": "https://silentvoid13.github.io/Templater/",
|
||||||
|
"isDesktopOnly": false
|
||||||
|
}
|
||||||
226
.obsidian/plugins/templater-obsidian/styles.css
vendored
Normal file
226
.obsidian/plugins/templater-obsidian/styles.css
vendored
Normal file
@@ -0,0 +1,226 @@
|
|||||||
|
.templater_search {
|
||||||
|
width: calc(100% - 20px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.templater_div {
|
||||||
|
border-top: 1px solid var(--background-modifier-border);
|
||||||
|
}
|
||||||
|
|
||||||
|
.templater_div > .setting-item {
|
||||||
|
border-top: none !important;
|
||||||
|
align-self: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.templater_div > .setting-item > .setting-item-control {
|
||||||
|
justify-content: space-around;
|
||||||
|
padding: 0;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.templater_div
|
||||||
|
> .setting-item
|
||||||
|
> .setting-item-control
|
||||||
|
> .setting-editor-extra-setting-button {
|
||||||
|
align-self: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.templater_donating {
|
||||||
|
margin: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.templater_title {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
margin-top: 5px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.templater_template {
|
||||||
|
align-self: center;
|
||||||
|
margin-left: 5px;
|
||||||
|
margin-right: 5px;
|
||||||
|
width: 70%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.templater_cmd {
|
||||||
|
margin-left: 5px;
|
||||||
|
margin-right: 5px;
|
||||||
|
font-size: 14px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.templater_div2 > .setting-item {
|
||||||
|
align-content: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.templater-prompt-div,
|
||||||
|
.templater-multisuggester-div {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.templater-prompt-form {
|
||||||
|
display: flex;
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.templater-prompt-input,
|
||||||
|
.templater-multisuggester-input {
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.templater-button-div {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
margin-top: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea.templater-prompt-input {
|
||||||
|
height: 10rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea.templater-prompt-input:focus {
|
||||||
|
border-color: var(--interactive-accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
.templater-multisuggester-list {
|
||||||
|
margin: 1.5em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-s-obsidian .templater-command-bg {
|
||||||
|
left: 0px;
|
||||||
|
right: 0px;
|
||||||
|
background-color: var(--background-primary-alt);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-s-obsidian .cm-templater-command {
|
||||||
|
font-size: 0.85em;
|
||||||
|
font-family: var(--font-monospace);
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-s-obsidian .templater-inline .cm-templater-command {
|
||||||
|
background-color: var(--background-primary-alt);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-templater-opening-tag {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-templater-closing-tag {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-templater-interpolation-tag {
|
||||||
|
color: var(--code-property, #008bff);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-templater-execution-tag {
|
||||||
|
color: var(--code-function, #c0d700);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-keyword {
|
||||||
|
color: var(--code-keyword, #00a7aa);
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-atom {
|
||||||
|
color: var(--code-normal, #f39b35);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-value,
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-number,
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-type {
|
||||||
|
color: var(--code-value, #a06fca);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-def,
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-type.cm-def {
|
||||||
|
color: var(--code-normal, var(--text-normal));
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-property,
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-property.cm-def,
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-attribute {
|
||||||
|
color: var(--code-function, #98e342);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-variable,
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-variable-2,
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-variable-3,
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-meta {
|
||||||
|
color: var(--code-property, #d4d4d4);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-callee,
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-operator,
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-qualifier,
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-builtin {
|
||||||
|
color: var(--code-operator, #fc4384);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-tag {
|
||||||
|
color: var(--code-tag, #fc4384);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-comment,
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-comment.cm-tag,
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-comment.cm-attribute {
|
||||||
|
color: var(--code-comment, #696d70);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-string,
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-string-2 {
|
||||||
|
color: var(--code-string, #e6db74);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-header,
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-hr {
|
||||||
|
color: var(--code-keyword, #da7dae);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-link {
|
||||||
|
color: var(--code-normal, #696d70);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-s-obsidian .cm-templater-command.cm-error {
|
||||||
|
border-bottom: 1px solid #c42412;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-hints {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 10;
|
||||||
|
overflow: hidden;
|
||||||
|
list-style: none;
|
||||||
|
|
||||||
|
margin: 0;
|
||||||
|
padding: 2px;
|
||||||
|
|
||||||
|
-webkit-box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.2);
|
||||||
|
-moz-box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.2);
|
||||||
|
box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.2);
|
||||||
|
border-radius: 3px;
|
||||||
|
border: 1px solid silver;
|
||||||
|
|
||||||
|
background: white;
|
||||||
|
font-size: 90%;
|
||||||
|
font-family: monospace;
|
||||||
|
|
||||||
|
max-height: 20em;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.CodeMirror-hint {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0 4px;
|
||||||
|
border-radius: 2px;
|
||||||
|
white-space: pre;
|
||||||
|
color: black;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
li.CodeMirror-hint-active {
|
||||||
|
background: #0088ff;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
4
.obsidian/templates.json
vendored
Normal file
4
.obsidian/templates.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"dateFormat": "",
|
||||||
|
"folder": "templates"
|
||||||
|
}
|
||||||
29
.obsidian/types.json
vendored
Normal file
29
.obsidian/types.json
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"types": {
|
||||||
|
"aliases": "aliases",
|
||||||
|
"cssclasses": "multitext",
|
||||||
|
"tags": "tags",
|
||||||
|
"TQ_explain": "checkbox",
|
||||||
|
"TQ_extra_instructions": "text",
|
||||||
|
"TQ_short_mode": "checkbox",
|
||||||
|
"TQ_show_backlink": "checkbox",
|
||||||
|
"TQ_show_cancelled_date": "checkbox",
|
||||||
|
"TQ_show_created_date": "checkbox",
|
||||||
|
"TQ_show_depends_on": "checkbox",
|
||||||
|
"TQ_show_done_date": "checkbox",
|
||||||
|
"TQ_show_due_date": "checkbox",
|
||||||
|
"TQ_show_edit_button": "checkbox",
|
||||||
|
"TQ_show_id": "checkbox",
|
||||||
|
"TQ_show_on_completion": "checkbox",
|
||||||
|
"TQ_show_postpone_button": "checkbox",
|
||||||
|
"TQ_show_priority": "checkbox",
|
||||||
|
"TQ_show_recurrence_rule": "checkbox",
|
||||||
|
"TQ_show_scheduled_date": "checkbox",
|
||||||
|
"TQ_show_start_date": "checkbox",
|
||||||
|
"TQ_show_tags": "checkbox",
|
||||||
|
"TQ_show_task_count": "checkbox",
|
||||||
|
"TQ_show_toolbar": "checkbox",
|
||||||
|
"TQ_show_tree": "checkbox",
|
||||||
|
"TQ_show_urgency": "checkbox"
|
||||||
|
}
|
||||||
|
}
|
||||||
72
.obsidian/workspace.json
vendored
72
.obsidian/workspace.json
vendored
@@ -4,37 +4,17 @@
|
|||||||
"type": "split",
|
"type": "split",
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"id": "dba263b736568647",
|
"id": "6b42b5d4f561ec35",
|
||||||
"type": "tabs",
|
"type": "tabs",
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"id": "99df94e060edf9e7",
|
"id": "845a8e3995ad4a8a",
|
||||||
"type": "leaf",
|
"type": "leaf",
|
||||||
"state": {
|
"state": {
|
||||||
"type": "markdown",
|
"type": "empty",
|
||||||
"state": {
|
|
||||||
"file": "Welcome.md",
|
|
||||||
"mode": "source",
|
|
||||||
"source": false
|
|
||||||
},
|
|
||||||
"icon": "lucide-file",
|
|
||||||
"title": "Welcome"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "3fb56e3c03982ab2",
|
|
||||||
"type": "tabs",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"id": "773f6d58eed0c476",
|
|
||||||
"type": "leaf",
|
|
||||||
"state": {
|
|
||||||
"type": "graph",
|
|
||||||
"state": {},
|
"state": {},
|
||||||
"icon": "lucide-git-fork",
|
"icon": "lucide-file",
|
||||||
"title": "Graph view"
|
"title": "New tab"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -180,6 +160,16 @@
|
|||||||
"icon": "lucide-list",
|
"icon": "lucide-list",
|
||||||
"title": "Outline of Welcome"
|
"title": "Outline of Welcome"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "6348f0a2c94b227a",
|
||||||
|
"type": "leaf",
|
||||||
|
"state": {
|
||||||
|
"type": "calendar",
|
||||||
|
"state": {},
|
||||||
|
"icon": "calendar-with-checkmark",
|
||||||
|
"title": "Calendar"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -196,11 +186,39 @@
|
|||||||
"daily-notes:Open today's daily note": false,
|
"daily-notes:Open today's daily note": false,
|
||||||
"templates:Insert template": false,
|
"templates:Insert template": false,
|
||||||
"command-palette:Open command palette": false,
|
"command-palette:Open command palette": false,
|
||||||
"bases:Create new base": false
|
"bases:Create new base": false,
|
||||||
|
"github-sync:Sync with Remote": false,
|
||||||
|
"templater-obsidian:Templater": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"active": "99df94e060edf9e7",
|
"active": "845a8e3995ad4a8a",
|
||||||
"lastOpenFiles": [
|
"lastOpenFiles": [
|
||||||
|
"daily",
|
||||||
|
"inbox",
|
||||||
|
"templates/tmpl_media_resource.md",
|
||||||
|
"templates/tmpl_technical_snippet.md",
|
||||||
|
"Untitled.canvas",
|
||||||
|
"templates/tmpl_project.md",
|
||||||
|
"templates/tmpl_generic_note.md",
|
||||||
|
"100 inbox/1778533395-ZAPX.md",
|
||||||
|
"100 inbox/1778535439-NWLI.md",
|
||||||
|
"100 inbox/1778545221-MOBT.md",
|
||||||
|
"100 inbox/1778553013-ARYX.md",
|
||||||
|
"100 inbox/1778553155-TGHR.md",
|
||||||
|
"100 inbox/1778553635-RFCE.md",
|
||||||
|
"100 inbox/1778493481-VJZL.md",
|
||||||
|
"400 resources/460 Family Archive",
|
||||||
|
"400 resources/450 Recipes",
|
||||||
|
"400 resources/440 Code Cheats Snips CLI",
|
||||||
|
"200 projects/260 Build Create Make",
|
||||||
|
"200 projects/250 IOT",
|
||||||
|
"200 projects/240 Web Sites",
|
||||||
|
"300 areas/395 Food",
|
||||||
|
"200 projects/230 Display Screen",
|
||||||
|
"300 areas/390 Dev Ops Computers.md",
|
||||||
|
"300 areas/350 AI.md",
|
||||||
|
"templates/ai_dev_ops.md",
|
||||||
|
"Pi_config_ideas.md",
|
||||||
"Welcome.md"
|
"Welcome.md"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
0
.trash/350 AI.md
Normal file
0
.trash/350 AI.md
Normal file
0
.trash/390 Dev Ops Computers.md
Normal file
0
.trash/390 Dev Ops Computers.md
Normal file
0
.trash/Pi_config_ideas.md
Normal file
0
.trash/Pi_config_ideas.md
Normal file
0
.trash/Untitled.canvas
Normal file
0
.trash/Untitled.canvas
Normal file
37
100 inbox/1778493481-VJZL.md
Normal file
37
100 inbox/1778493481-VJZL.md
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
title: pi_setup
|
||||||
|
summary: Research, ideas, suggestions for setting up pi
|
||||||
|
type: Note
|
||||||
|
client:
|
||||||
|
{client}:
|
||||||
|
project: AI
|
||||||
|
status: active
|
||||||
|
priority: 3
|
||||||
|
last_verified: 2026-05-11
|
||||||
|
tags:
|
||||||
|
- AI Pi
|
||||||
|
aliases: []
|
||||||
|
id: 1778493481-VJZL
|
||||||
|
---
|
||||||
|
|
||||||
|
# pi_setup
|
||||||
|
|
||||||
|
## 🏗 System Architecture
|
||||||
|
- **Software/Stack:** pi
|
||||||
|
- **Components:** {{components}}
|
||||||
|
- **Hardware/IOT:** {{hardware_specs}}
|
||||||
|
|
||||||
|
## 🎯 Objective
|
||||||
|
[What problem does this note solve for Graphify?]
|
||||||
|
|
||||||
|
## 📝 Technical Implementation
|
||||||
|
- **Runtime:** {{runtime}}
|
||||||
|
- **Environment:** [e.g. Production, Staging, Edge]
|
||||||
|
|
||||||
|
## 🖇️ Context & Connections
|
||||||
|
- **Upstream:** [[Parent Component]]
|
||||||
|
- **Downstream:** [[Dependent Services]]
|
||||||
|
- **Related:** https://github.com/amosblomqvist/pi-config https://www.youtube.com/watch?v=DWWrLlM3gwQ
|
||||||
|
|
||||||
|
---
|
||||||
|
*Created: 2026-05-11*
|
||||||
113
100 inbox/1778533395-ZAPX.md
Normal file
113
100 inbox/1778533395-ZAPX.md
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
---
|
||||||
|
title: Web Pages
|
||||||
|
summary: Active web sites and pages for things that need doing or I am working on.
|
||||||
|
type: websites
|
||||||
|
client: Sam
|
||||||
|
project: AI
|
||||||
|
status: active
|
||||||
|
priority: 5
|
||||||
|
last_verified: 2026-05-12
|
||||||
|
tags:
|
||||||
|
- AI Resource Website
|
||||||
|
aliases: []
|
||||||
|
id: 1778533395-ZAPX
|
||||||
|
---
|
||||||
|
# Notes
|
||||||
|
- [] Use DataView Plug in to create data table of all notes with bookmark tags etc.
|
||||||
|
- [] Intall Bookmarks Plugin so I can pin all notes with #website
|
||||||
|
- [] Install Open Link With to select a browser etc
|
||||||
|
- [] Use [Link name - browser](http://url) for links. Or just the url.
|
||||||
|
|
||||||
|
# TODO
|
||||||
|
- [] OpenCode Go subscription - https://checkout.stripe.com/c/pay/cs_live_b1Tyblb7VV4ZZnSdz3K3cYdwx9pswHyB2wq0XUfwR1i9hxi7b7ULnI5h6E#fidnandhYHdWcXxpYCc%2FJ2FgY2RwaXEnKSdicGRmZGhqaWBTZHdsZGtxJz8nZmprcXdqaScpJ2R1bE5gfCc%2FJ3VuWmlsc2BaMDRXdn9HTTdWcXBXdzVpZ11uSkZBcEAyNjRJbXx1d1dEbkxNYWh%2FfzB3cFA9QVUzf11kPU10fEdGSFRtSU9%2FVl1cU301NmNqS3wzNH1hcGx0Nm48SzdJVjw1NWhLMGhxTmI9JyknY3dqaFZgd3Ngdyc%2FcXdwYCknZ2RmbmJ3anBrYUZqaWp3Jz8nJjU1NTU1NScpJ2lkfGpwcVF8dWAnPydocGlxbFpscWBoJyknYGtkZ2lgVWlkZmBtamlhYHd2Jz9xd3BgeCUl
|
||||||
|
- [] Linear - alternative to JIRA. TODOs for development which could be looked at to integrate with an agent.
|
||||||
|
- []
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Web Pages
|
||||||
|
|
||||||
|
## Galagher
|
||||||
|
url: https://careers.gallagher.com/connect
|
||||||
|
tags: #bookmark #resource #website
|
||||||
|
- Job with company that makes farm products
|
||||||
|
|
||||||
|
|
||||||
|
## Galagher
|
||||||
|
url: https://au.seek.com/iot-developer-jobs?jobId=91658860&type=standard
|
||||||
|
tags: #bookmark #resource #website
|
||||||
|
- Job
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## OpenCode GO
|
||||||
|
url: https://opencode.ai/docs/go/#usage-limits
|
||||||
|
tags: #bookmark #resource #website
|
||||||
|
- Get Open Code GO subscription and use that. Might be cheaper than OpenRouter.
|
||||||
|
|
||||||
|
## Mautic
|
||||||
|
url: https://mautic.org/
|
||||||
|
tags: #bookmark #resource #website
|
||||||
|
- Open source marketing for Emails etc.
|
||||||
|
|
||||||
|
## Google Stitch
|
||||||
|
url: https://stitch.withgoogle.com
|
||||||
|
tags: #bookmark #resource #website
|
||||||
|
- For AI design
|
||||||
|
|
||||||
|
## Graphify
|
||||||
|
url: https://graphify.net/
|
||||||
|
tags: #bookmark #resource #website
|
||||||
|
- This creates a AI map of Obsidian and other data
|
||||||
|
|
||||||
|
|
||||||
|
## Graphify Github
|
||||||
|
url: https://github.com/safishamsi/graphify
|
||||||
|
tags: #bookmark #resource #website
|
||||||
|
- Create AI map of Obsidian notes
|
||||||
|
|
||||||
|
## Archon
|
||||||
|
url: https://github.com/coleam00/archon
|
||||||
|
tags: #bookmark #resource #website
|
||||||
|
- Work flow for Ai agents. Implement it.
|
||||||
|
|
||||||
|
## Obsidian PI Youtube Channel Eero Alvar
|
||||||
|
url: https://www.youtube.com/@EeroAlvar
|
||||||
|
tags: #bookmark #resource #website
|
||||||
|
- Tutorials on set up, pi-config is good. Here is repo https://github.com/amosblomqvist/pi-config
|
||||||
|
|
||||||
|
## Plannotator
|
||||||
|
url: https://github.com/backnotprop/plannotator
|
||||||
|
tags: #bookmark #resource #website
|
||||||
|
- OpenSpec feeds into plannotator then Archon
|
||||||
|
|
||||||
|
## Langfuse
|
||||||
|
url: http://localhost:3000/auth/sign-in
|
||||||
|
tags: #bookmark #resource #website
|
||||||
|
- Langfuse .27 docker for working with langraph and langchain.
|
||||||
|
|
||||||
|
|
||||||
|
## Openrouter.ai
|
||||||
|
url: https://openrouter.ai/settings/credits
|
||||||
|
tags: #bookmark #resource #website
|
||||||
|
- Open router credits
|
||||||
|
- [] Swap to opencode Go plan. Delete T3
|
||||||
|
|
||||||
|
## {{title}}
|
||||||
|
url: {{link}}
|
||||||
|
tags: #bookmark #resource #website
|
||||||
|
- Why are you using this page
|
||||||
|
|
||||||
|
## {{title}}
|
||||||
|
url: {{link}}
|
||||||
|
tags: #bookmark #resource #website
|
||||||
|
- Why are you using this page
|
||||||
|
|
||||||
|
## {{title}}
|
||||||
|
url: {{link}}
|
||||||
|
tags: #bookmark #resource #website
|
||||||
|
- Why are you using this page
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
30
100 inbox/1778535439-NWLI.md
Normal file
30
100 inbox/1778535439-NWLI.md
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
---
|
||||||
|
title: AI Interface Design Resource
|
||||||
|
summary: Tools for AI interface design
|
||||||
|
type: websites
|
||||||
|
client: Sam
|
||||||
|
project: AI
|
||||||
|
status: active
|
||||||
|
priority: 5
|
||||||
|
last_verified: 2026-05-12
|
||||||
|
tags:
|
||||||
|
- AI Design Website
|
||||||
|
aliases: []
|
||||||
|
id: 1778535439-NWLI
|
||||||
|
---
|
||||||
|
|
||||||
|
# AI Interface Design Resource
|
||||||
|
|
||||||
|
- **Related:** https://github.com/VoltAgent/awesome-design-md
|
||||||
|
|
||||||
|
# Github Awesome - Design
|
||||||
|
url: https://github.com/VoltAgent/awesome-design-md
|
||||||
|
Website: [Github Votagent awesome-design-md](https://github.com/VoltAgent/awesome-design-md)
|
||||||
|
|
||||||
|
|
||||||
|
# Stich Google
|
||||||
|
url: https://stitch.withgoogle.com
|
||||||
|
Website: [Google stitch](https://stitch.withgoogle.com)
|
||||||
|
|
||||||
|
---
|
||||||
|
*Created: 2026-05-12*
|
||||||
68
100 inbox/1778545221-MOBT.md
Normal file
68
100 inbox/1778545221-MOBT.md
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
---
|
||||||
|
title: Local Web Pages
|
||||||
|
summary: React, router and other local pages
|
||||||
|
type: websites
|
||||||
|
client: Sam
|
||||||
|
project: AI
|
||||||
|
status: active
|
||||||
|
priority: 5
|
||||||
|
last_verified: 2026-05-12
|
||||||
|
tags:
|
||||||
|
- web pages, web sites, AI, urls
|
||||||
|
aliases: []
|
||||||
|
id: 1778545221-MOBT
|
||||||
|
---
|
||||||
|
|
||||||
|
# Local Web Pages
|
||||||
|
- [] main router
|
||||||
|
- [] secondary router
|
||||||
|
- [] react pages
|
||||||
|
- [] .13 docker containers and .27 without caddy URLS. Whisper etc
|
||||||
|
- [] put .13 and .27, particularly .27 behind 3rd caddy
|
||||||
|
- [] second pi
|
||||||
|
- [] links to front pages for docker container
|
||||||
|
- [ ]
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
## Langfuse
|
||||||
|
url: http://localhost:3000/auth/sign-in
|
||||||
|
tags: #website, #ai
|
||||||
|
- Visual GUi for langchain and langraph
|
||||||
|
|
||||||
|
## Archon
|
||||||
|
url: http://localhost:3090/chat
|
||||||
|
tags: #website, #ai
|
||||||
|
- AI project flow coordinator
|
||||||
|
|
||||||
|
## Supabase
|
||||||
|
url: http://localhost:8001/project/default
|
||||||
|
tags: #website, #ai
|
||||||
|
- This is used for verification and authentication.
|
||||||
|
|
||||||
|
|
||||||
|
## Proxmox
|
||||||
|
url: https://proxmox.home.lab/#v1:0:=qemu%2F105:4:::::::5
|
||||||
|
tags: #website, #ai
|
||||||
|
- root.
|
||||||
|
|
||||||
|
## Netcom Router
|
||||||
|
url: http://192.168.20.1:8079/login.html
|
||||||
|
|
||||||
|
- Main home router. admin
|
||||||
|
|
||||||
|
## secondary router
|
||||||
|
url: http://192.168.20.1:254
|
||||||
|
|
||||||
|
- admin.
|
||||||
|
|
||||||
|
|
||||||
|
## Snapcast
|
||||||
|
url: http://192.168.20.13:1780/
|
||||||
|
|
||||||
|
- [] Create caddy DNS name with pihole for Snapcast
|
||||||
|
- Control local speaker audio on Snapcast network. MainAudio for both spotify and announcements.
|
||||||
|
|
||||||
|
##
|
||||||
|
|
||||||
|
*Created: 2026-05-12*
|
||||||
34
100 inbox/1778553013-ARYX.md
Normal file
34
100 inbox/1778553013-ARYX.md
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
---
|
||||||
|
title: Docker Containers
|
||||||
|
summary: Overview of docker containers on my network
|
||||||
|
type: note
|
||||||
|
client: sam
|
||||||
|
project: ai
|
||||||
|
status: active
|
||||||
|
priority: 5
|
||||||
|
last_verified: 2026-05-12
|
||||||
|
tags:
|
||||||
|
- ai docker network
|
||||||
|
aliases: []
|
||||||
|
id: 1778553013-ARYX
|
||||||
|
---
|
||||||
|
|
||||||
|
# Docker Containers
|
||||||
|
|
||||||
|
## 🏗 System Architecture
|
||||||
|
- **Software/Stack:** docker
|
||||||
|
|
||||||
|
## 🎯 Objective
|
||||||
|
[What problem does this note solve for Graphify?]
|
||||||
|
|
||||||
|
## 📝 Technical Implementation
|
||||||
|
- **Runtime:** {{runtime}}
|
||||||
|
- **Environment:** [e.g. Production, Staging, Edge]
|
||||||
|
|
||||||
|
## 🖇️ Context & Connections
|
||||||
|
- **Upstream:** [[Parent Component]]
|
||||||
|
- **Downstream:** [[Dependent Services]]
|
||||||
|
- **Related:** {{related_links}}
|
||||||
|
|
||||||
|
---
|
||||||
|
*Created: 2026-05-12*
|
||||||
41
100 inbox/1778553155-TGHR.md
Normal file
41
100 inbox/1778553155-TGHR.md
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
---
|
||||||
|
title: Home Network
|
||||||
|
summary: Description and notes on home network
|
||||||
|
type: note
|
||||||
|
client: sam
|
||||||
|
project: ai
|
||||||
|
status: active
|
||||||
|
priority: 5
|
||||||
|
last_verified: 2026-05-12
|
||||||
|
tags:
|
||||||
|
- ai network
|
||||||
|
aliases: []
|
||||||
|
id: 1778553155-TGHR
|
||||||
|
---
|
||||||
|
|
||||||
|
# Home Network
|
||||||
|
## TODO
|
||||||
|
- [] RustFS for links like s3 to container.
|
||||||
|
- [] Restore back up System
|
||||||
|
- [] Fix Home Assistant - Tuya.
|
||||||
|
|
||||||
|
|
||||||
|
## 🏗 System Architecture
|
||||||
|
- **Software/Stack:** {{software}}
|
||||||
|
- **Components:** {{components}}
|
||||||
|
- **Hardware/IOT:** {{hardware_specs}}
|
||||||
|
|
||||||
|
## 🎯 Objective
|
||||||
|
[What problem does this note solve for Graphify?]
|
||||||
|
|
||||||
|
## 📝 Technical Implementation
|
||||||
|
- **Runtime:** {{runtime}}
|
||||||
|
- **Environment:** [e.g. Production, Staging, Edge]
|
||||||
|
|
||||||
|
## 🖇️ Context & Connections
|
||||||
|
- **Upstream:** [[Parent Component]]
|
||||||
|
- **Downstream:** [[Dependent Services]]
|
||||||
|
- **Related:** {{related_links}}
|
||||||
|
|
||||||
|
---
|
||||||
|
*Created: 2026-05-12*
|
||||||
77
100 inbox/1778553635-RFCE.md
Normal file
77
100 inbox/1778553635-RFCE.md
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
---
|
||||||
|
title: Local Web Host Set Up
|
||||||
|
summary: Transition from inmotion hosting to a local web host
|
||||||
|
type: note
|
||||||
|
client: sam
|
||||||
|
project: websites
|
||||||
|
status: active
|
||||||
|
priority: 5
|
||||||
|
last_verified: 2026-05-12
|
||||||
|
tags:
|
||||||
|
- self-hosting, networking, email, sysadmin, docker, audasmedia, inmotionhosting, email, rustfs
|
||||||
|
aliases: []
|
||||||
|
id: 1778553635-RFCE
|
||||||
|
---
|
||||||
|
|
||||||
|
# Local Web Host Set Up
|
||||||
|
|
||||||
|
## 🏗 System Architecture
|
||||||
|
- **Software/Stack:** RustFS, Cpanel, Mailcow
|
||||||
|
- **Components:** {{components}}
|
||||||
|
- **Hardware/IOT:** {{hardware_specs}}
|
||||||
|
|
||||||
|
## 🎯 Objective
|
||||||
|
|
||||||
|
## 📝 Technical Implementation
|
||||||
|
- **Runtime:** {{runtime}}
|
||||||
|
- **Environment:** [e.g. Production, Staging, Edge]
|
||||||
|
|
||||||
|
## 🖇️ Context & Connections
|
||||||
|
- **Upstream:** [[Parent Component]]
|
||||||
|
- **Downstream:** [[Dependent Services]]
|
||||||
|
- **Related:** {{related_links}}
|
||||||
|
|
||||||
|
|
||||||
|
# Local Web Host Strategy
|
||||||
|
|
||||||
|
A high-performance, cost-effective blueprint for transitioning from managed hosting to a local self-hosted environment while maintaining reliability and deliverability.
|
||||||
|
|
||||||
|
## 1. Public Access & Connectivity
|
||||||
|
To bridge your local network with the public internet without a static IP:
|
||||||
|
- **Dynamic DNS (DDNS):** Use **Cloudflare** or **Namecheap** APIs to automatically update your domain's A-record to your home IP.
|
||||||
|
- **Traffic Management:** Deploy **Nginx Proxy Manager** (Docker) as a reverse proxy. This allows you to route `site1.yourdomain.com` and `site2.yourdomain.com` to different local containers/servers via ports 80/443.
|
||||||
|
|
||||||
|
## 2. The Email Problem (Deliverability)
|
||||||
|
Residential IPs are frequently blacklisted. Use a **Hybrid Relay Model**:
|
||||||
|
- **Local Server:** Run **Mailcow** or **Mail-in-a-Box** in a Docker container for internal storage and receiving.
|
||||||
|
- **Outgoing Relay:** Use **Amazon SES** (Simple Email Service) as an SMTP relay.
|
||||||
|
- **Cost:** ~$0.10 per 1,000 emails.
|
||||||
|
- **Outcome:** High reputation and low spam-flagging compared to traditional web hosts like InMotion.
|
||||||
|
- **Security:** Ensure DNS records include **SPF**, **DKIM**, and **DMARC**.
|
||||||
|
|
||||||
|
## 3. Control Panel (cPanel Alternatives)
|
||||||
|
Manage your local environment with lightweight, Docker-friendly GUIs:
|
||||||
|
- **aaPanel:** Modular and beginner-friendly.
|
||||||
|
- **HestiaCP:** Lightweight for Linux enthusiasts.
|
||||||
|
- **OpenPanel:** Specifically built for Docker-based site isolation.
|
||||||
|
|
||||||
|
## 4. Off-Site Storage & Backups
|
||||||
|
Maintain "off-site" redundancy for your local data using S3-compatible protocols:
|
||||||
|
- **Backblaze B2:** ~$6/TB/month. Great for "set and forget" backups.
|
||||||
|
- **Hetzner Storage Box:** Extremely cheap for raw storage via SFTP/Samba.
|
||||||
|
- **Tooling:** Use **Rclone** or **Duplicati** to automate local-to-cloud sync.
|
||||||
|
|
||||||
|
## 5. Potential Role for RustFS
|
||||||
|
- **Local Object Storage:** Use **RustFS** locally if you build apps requiring an S3-compatible backend for large assets (images/video) without paying cloud egress fees.
|
||||||
|
|
||||||
|
---
|
||||||
|
**Next Steps:**
|
||||||
|
1. Configure DDNS on your router or via a local cron job.
|
||||||
|
2. Set up a Docker host (Ubuntu Server/Debian).
|
||||||
|
3. Verify Amazon SES "Sandbox" exit to start sending live mail.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
*Created: 2026-05-12*
|
||||||
34
templates/ai_dev_ops.md
Normal file
34
templates/ai_dev_ops.md
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
---
|
||||||
|
title: "{{title}}"
|
||||||
|
summary: "{{summary}}"
|
||||||
|
type: {{type}}
|
||||||
|
client: {{client}}
|
||||||
|
project: {{project}}
|
||||||
|
status: {{status}}
|
||||||
|
priority: {{priority}}
|
||||||
|
last_verified: {{date:YYYY-MM-DD}}
|
||||||
|
tags:
|
||||||
|
- {{topic_tag}}
|
||||||
|
---
|
||||||
|
|
||||||
|
# {{title}}
|
||||||
|
|
||||||
|
## 🏗 System Architecture
|
||||||
|
- **Software/Stack:** {{software}}
|
||||||
|
- **Components:** {{components}}
|
||||||
|
- **Hardware/IOT:** {{hardware_specs}}
|
||||||
|
|
||||||
|
## 🎯 Objective
|
||||||
|
[What problem does this note solve for Graphify?]
|
||||||
|
|
||||||
|
## 📝 Technical Implementation
|
||||||
|
- **Runtime:** {{runtime}}
|
||||||
|
- **Environment:** [e.g. Production, Staging, Edge]
|
||||||
|
|
||||||
|
## 🖇️ Context & Connections
|
||||||
|
- **Upstream:** [[Parent Component]]
|
||||||
|
- **Downstream:** [[Dependent Services]]
|
||||||
|
- **Related:** {{related_links}}
|
||||||
|
|
||||||
|
---
|
||||||
|
*Created: {{date:YYYY-MM-DD}}*
|
||||||
10
templates/tmpl_generic_note.md
Normal file
10
templates/tmpl_generic_note.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
created: <% tp.file.creation_date("YYYY-MM-DD HH:mm") %>
|
||||||
|
modified: <% tp.file.last_modified_date("YYYY-MM-DD HH:mm") %>
|
||||||
|
type: note
|
||||||
|
tags: []
|
||||||
|
aliases: []
|
||||||
|
---
|
||||||
|
# [[<% tp.file.title %>]]
|
||||||
|
|
||||||
|
|
||||||
12
templates/tmpl_media_resource.md
Normal file
12
templates/tmpl_media_resource.md
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
created: <% tp.file.creation_date("YYYY-MM-DD") %>
|
||||||
|
type: media
|
||||||
|
category: #film
|
||||||
|
status: #to-watch
|
||||||
|
rating: ⭐⭐⭐⭐⭐
|
||||||
|
source_url:
|
||||||
|
---
|
||||||
|
# Review: <% tp.file.title %>
|
||||||
|
|
||||||
|
## 🧠 Summary & Thoughts
|
||||||
|
-
|
||||||
16
templates/tmpl_project.md
Normal file
16
templates/tmpl_project.md
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
created: <% tp.file.creation_date("YYYY-MM-DD HH:mm") %>
|
||||||
|
modified: <% tp.file.last_modified_date("YYYY-MM-DD HH:mm") %>
|
||||||
|
type: project
|
||||||
|
status: #todo
|
||||||
|
due_date: YYYY-MM-DD
|
||||||
|
project_group: <% tp.file.folder(true) %>
|
||||||
|
tags: [active-project]
|
||||||
|
---
|
||||||
|
# Project: <% tp.file.title %>
|
||||||
|
|
||||||
|
## 🎯 Objectives
|
||||||
|
- [ ]
|
||||||
|
|
||||||
|
## 📓 Log & Milestones
|
||||||
|
-
|
||||||
10
templates/tmpl_technical_snippet.md
Normal file
10
templates/tmpl_technical_snippet.md
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
created: <% tp.file.creation_date("YYYY-MM-DD HH:mm") %>
|
||||||
|
type: documentation
|
||||||
|
language:
|
||||||
|
environment:
|
||||||
|
source_url:
|
||||||
|
tags: [dev, snippets]
|
||||||
|
---
|
||||||
|
# Tech Snippet: <% tp.file.title %>
|
||||||
|
|
||||||
Reference in New Issue
Block a user