vault backup: 2026-04-16 12:25:30
This commit is contained in:
5
.obsidian/app.json
vendored
5
.obsidian/app.json
vendored
@@ -8,5 +8,8 @@
|
||||
"margin": "2",
|
||||
"downscalePercent": 100
|
||||
},
|
||||
"promptDelete": false
|
||||
"promptDelete": false,
|
||||
"newFileLocation": "folder",
|
||||
"newFileFolderPath": "00 Inbox",
|
||||
"showUnsupportedFiles": true
|
||||
}
|
||||
4
.obsidian/community-plugins.json
vendored
4
.obsidian/community-plugins.json
vendored
@@ -1,6 +1,5 @@
|
||||
[
|
||||
"obsidian-minimal-settings",
|
||||
"obsidian-typst-cli",
|
||||
"edit-in-neovim",
|
||||
"obsidian-git",
|
||||
"better-export-pdf",
|
||||
@@ -11,5 +10,6 @@
|
||||
"dataview",
|
||||
"obsidian-vimrc-support",
|
||||
"emoji-shortcodes",
|
||||
"execute-code"
|
||||
"typst-mate",
|
||||
"inline-math"
|
||||
]
|
||||
22
.obsidian/graph.json
vendored
22
.obsidian/graph.json
vendored
@@ -2,21 +2,21 @@
|
||||
"collapse-filter": true,
|
||||
"search": "",
|
||||
"showTags": false,
|
||||
"showAttachments": false,
|
||||
"showAttachments": true,
|
||||
"hideUnresolved": false,
|
||||
"showOrphans": true,
|
||||
"showOrphans": false,
|
||||
"collapse-color-groups": true,
|
||||
"colorGroups": [],
|
||||
"collapse-display": true,
|
||||
"collapse-display": false,
|
||||
"showArrow": false,
|
||||
"textFadeMultiplier": 0,
|
||||
"nodeSizeMultiplier": 1,
|
||||
"lineSizeMultiplier": 1,
|
||||
"textFadeMultiplier": -2.1,
|
||||
"nodeSizeMultiplier": 0.9421875,
|
||||
"lineSizeMultiplier": 1.8609375,
|
||||
"collapse-forces": false,
|
||||
"centerStrength": 0,
|
||||
"repelStrength": 0,
|
||||
"linkStrength": 0.500822368421053,
|
||||
"linkDistance": 30,
|
||||
"scale": 0.9895212671709476,
|
||||
"centerStrength": 0.276041666666667,
|
||||
"repelStrength": 12.0833333333333,
|
||||
"linkStrength": 0.703125,
|
||||
"linkDistance": 101,
|
||||
"scale": 0.5034307057066698,
|
||||
"close": true
|
||||
}
|
||||
6
.obsidian/plugins/inline-math/data.json
vendored
Normal file
6
.obsidian/plugins/inline-math/data.json
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"disableInTable": false,
|
||||
"disableOnIME": true,
|
||||
"disableDecorations": false,
|
||||
"disableAtomicRanges": false
|
||||
}
|
||||
422
.obsidian/plugins/inline-math/main.js
vendored
Normal file
422
.obsidian/plugins/inline-math/main.js
vendored
Normal file
@@ -0,0 +1,422 @@
|
||||
/*
|
||||
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
||||
if you want to view the source, please visit the github repository of this plugin
|
||||
*/
|
||||
|
||||
var __defProp = Object.defineProperty;
|
||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
var __export = (target, all) => {
|
||||
for (var name in all)
|
||||
__defProp(target, name, { get: all[name], enumerable: true });
|
||||
};
|
||||
var __copyProps = (to, from, except, desc) => {
|
||||
if (from && typeof from === "object" || typeof from === "function") {
|
||||
for (let key of __getOwnPropNames(from))
|
||||
if (!__hasOwnProp.call(to, key) && key !== except)
|
||||
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
||||
}
|
||||
return to;
|
||||
};
|
||||
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
||||
|
||||
// src/main.ts
|
||||
var main_exports = {};
|
||||
__export(main_exports, {
|
||||
default: () => NoMoreFlicker
|
||||
});
|
||||
module.exports = __toCommonJS(main_exports);
|
||||
var import_obsidian3 = require("obsidian");
|
||||
|
||||
// src/settings.ts
|
||||
var import_obsidian = require("obsidian");
|
||||
var DEFAULT_SETTINGS = {
|
||||
disableInTable: false,
|
||||
disableOnIME: true,
|
||||
disableDecorations: false,
|
||||
disableAtomicRanges: false
|
||||
};
|
||||
var NoMoreFlickerSettingTab = class extends import_obsidian.PluginSettingTab {
|
||||
constructor(app, plugin) {
|
||||
super(app, plugin);
|
||||
this.plugin = plugin;
|
||||
}
|
||||
display() {
|
||||
const { containerEl } = this;
|
||||
containerEl.empty();
|
||||
new import_obsidian.Setting(containerEl).setName("Disable in tables").setDesc("If turned on, braces won't be inserted in tables. Decorations & atomic ranges are enabled regardless of this setting.").addToggle((toggle) => {
|
||||
toggle.setValue(this.plugin.settings.disableInTable).onChange(async (disable) => {
|
||||
this.plugin.settings.disableInTable = disable;
|
||||
await this.plugin.saveSettings();
|
||||
});
|
||||
});
|
||||
new import_obsidian.Setting(containerEl).setName("Disable when using IME input").setDesc("This option can be helpful for avoiding some strange behavior occurring when using IME inputs after escaping from a math block with the Latex Suite plugin's tabout feature.").addToggle((toggle) => {
|
||||
toggle.setValue(this.plugin.settings.disableOnIME).onChange(async (disable) => {
|
||||
this.plugin.settings.disableOnIME = disable;
|
||||
await this.plugin.saveSettings();
|
||||
});
|
||||
});
|
||||
new import_obsidian.Setting(containerEl).setName("Debug mode").setHeading();
|
||||
new import_obsidian.Setting(containerEl).setName("Disable decorations").setDesc("If turned on, decorations to hide braces adjacent to dollar signs are disabled. This is especially useful when you want to see what this plugin does under the hood.").addToggle((toggle) => {
|
||||
toggle.setValue(this.plugin.settings.disableDecorations).onChange(async (disable) => {
|
||||
this.plugin.settings.disableDecorations = disable;
|
||||
this.plugin.remakeViewPlugin();
|
||||
await this.plugin.saveSettings();
|
||||
});
|
||||
});
|
||||
new import_obsidian.Setting(containerEl).setName("Disable atomic ranges").setDesc(createFragment((el) => {
|
||||
el.createSpan({ text: 'If turned on, atomic ranges to treat each of "' });
|
||||
el.createEl("code", { text: "${} " });
|
||||
el.createSpan({ text: '" or "' });
|
||||
el.createEl("code", { text: " {}$" });
|
||||
el.createSpan({ text: '" as one character are disabled.' });
|
||||
})).addToggle((toggle) => {
|
||||
toggle.setValue(this.plugin.settings.disableAtomicRanges).onChange(async (disable) => {
|
||||
this.plugin.settings.disableAtomicRanges = disable;
|
||||
this.plugin.remakeViewPlugin();
|
||||
await this.plugin.saveSettings();
|
||||
});
|
||||
});
|
||||
new import_obsidian.Setting(containerEl).addButton((button) => {
|
||||
button.setButtonText("Restore defaults").onClick(async () => {
|
||||
this.plugin.settings = Object.assign({}, DEFAULT_SETTINGS);
|
||||
await this.plugin.saveSettings();
|
||||
this.display();
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// src/decoration-and-atomic-range.ts
|
||||
var import_state = require("@codemirror/state");
|
||||
var import_view = require("@codemirror/view");
|
||||
var import_language2 = require("@codemirror/language");
|
||||
|
||||
// src/utils.ts
|
||||
var import_language = require("@codemirror/language");
|
||||
var INLINE_MATH_BEGIN = "formatting_formatting-math_formatting-math-begin_keyword_math";
|
||||
var MATH_END = "formatting_formatting-math_formatting-math-end_keyword_math_math-";
|
||||
function nodeText(node, state) {
|
||||
return state.sliceDoc(node.from, node.to);
|
||||
}
|
||||
function isInlineMathBegin(node, state) {
|
||||
return node.name == INLINE_MATH_BEGIN && nodeText(node, state) == "$";
|
||||
}
|
||||
function isInlineMathEnd(node, state) {
|
||||
return node.name == MATH_END && nodeText(node, state) == "$";
|
||||
}
|
||||
function selectionSatisfies(state, predicate) {
|
||||
let ret = false;
|
||||
const tree = (0, import_language.syntaxTree)(state);
|
||||
for (const { from } of state.selection.ranges) {
|
||||
const line = state.doc.lineAt(from);
|
||||
tree.iterate({
|
||||
from: line.from,
|
||||
to: line.to,
|
||||
enter: (node) => {
|
||||
if (predicate(node)) {
|
||||
ret = true;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
// src/decoration-and-atomic-range.ts
|
||||
var DummyRangeValue = class extends import_state.RangeValue {
|
||||
};
|
||||
var createViewPlugin = (plugin) => import_view.ViewPlugin.fromClass(
|
||||
class {
|
||||
constructor(view) {
|
||||
this.impl(view);
|
||||
}
|
||||
update(update) {
|
||||
this.impl(update.view);
|
||||
}
|
||||
impl(view) {
|
||||
const decorationBulder = new import_state.RangeSetBuilder();
|
||||
const atomicRangeBulder = new import_state.RangeSetBuilder();
|
||||
const tree = (0, import_language2.syntaxTree)(view.state);
|
||||
for (const { from, to } of view.visibleRanges) {
|
||||
tree.iterate({
|
||||
from,
|
||||
to,
|
||||
enter(node) {
|
||||
if (isInlineMathBegin(node, view.state)) {
|
||||
if (view.state.sliceDoc(node.to, node.to + 3) == "{} ") {
|
||||
decorationBulder.add(
|
||||
node.to,
|
||||
node.to + 3,
|
||||
import_view.Decoration.replace({})
|
||||
);
|
||||
atomicRangeBulder.add(
|
||||
node.from,
|
||||
node.to + 3,
|
||||
new DummyRangeValue()
|
||||
);
|
||||
}
|
||||
} else if (isInlineMathEnd(node, view.state)) {
|
||||
if (view.state.sliceDoc(node.from - 3, node.from) == " {}") {
|
||||
decorationBulder.add(
|
||||
node.from - 3,
|
||||
node.from,
|
||||
import_view.Decoration.replace({})
|
||||
);
|
||||
atomicRangeBulder.add(
|
||||
node.from - 3,
|
||||
node.to,
|
||||
new DummyRangeValue()
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
this.decorations = decorationBulder.finish();
|
||||
this.atomicRanges = atomicRangeBulder.finish();
|
||||
}
|
||||
},
|
||||
{
|
||||
decorations: (instance) => plugin.settings.disableDecorations ? import_view.Decoration.none : instance.decorations,
|
||||
provide: (viewPlugin) => import_view.EditorView.atomicRanges.of((view) => {
|
||||
var _a, _b;
|
||||
return plugin.settings.disableAtomicRanges ? import_state.RangeSet.empty : (_b = (_a = view.plugin(viewPlugin)) == null ? void 0 : _a.atomicRanges) != null ? _b : import_state.RangeSet.empty;
|
||||
})
|
||||
}
|
||||
);
|
||||
|
||||
// src/transaction-filter.ts
|
||||
var import_state3 = require("@codemirror/state");
|
||||
var import_language4 = require("@codemirror/language");
|
||||
|
||||
// src/latex-suite.ts
|
||||
var import_state2 = require("@codemirror/state");
|
||||
var import_language3 = require("@codemirror/language");
|
||||
function handleLatexSuite(tr, plugin) {
|
||||
if (tr.docChanged && !tr.selection) {
|
||||
const changes = handleLatexSuiteBoxing(tr.startState, tr.changes);
|
||||
if (changes) {
|
||||
plugin._latexSuiteBoxing = true;
|
||||
return { changes };
|
||||
}
|
||||
} else if (!tr.docChanged && tr.selection) {
|
||||
if (plugin._latexSuiteBoxing) {
|
||||
plugin._latexSuiteBoxing = false;
|
||||
return { selection: { anchor: tr.selection.main.anchor - 3 } };
|
||||
} else {
|
||||
const selection = handleLatexSuiteTabout(tr.startState, tr.selection);
|
||||
return [tr, { selection }];
|
||||
}
|
||||
}
|
||||
}
|
||||
function handleLatexSuiteTabout(state, newSelection) {
|
||||
const tree = (0, import_language3.syntaxTree)(state);
|
||||
const doc = state.doc.toString();
|
||||
const newRanges = [];
|
||||
for (const range of newSelection.ranges) {
|
||||
const indexNextDollar = doc.indexOf("$", range.to);
|
||||
if (indexNextDollar >= 0) {
|
||||
const node = tree.cursorAt(indexNextDollar, 1).node;
|
||||
if (range.from === range.to && range.to === indexNextDollar && isInlineMathEnd(node, state) && state.sliceDoc(node.from - 3, node.from) === " {}") {
|
||||
newRanges.push(import_state2.EditorSelection.cursor(node.to));
|
||||
continue;
|
||||
}
|
||||
}
|
||||
newRanges.push(range);
|
||||
}
|
||||
return import_state2.EditorSelection.create(newRanges, newSelection.mainIndex);
|
||||
}
|
||||
function handleLatexSuiteBoxing(state, changes) {
|
||||
const tree = (0, import_language3.syntaxTree)(state);
|
||||
let changeToReplace;
|
||||
changes.iterChanges((fromA, toA, fromB, toB, inserted) => {
|
||||
if (inserted.toString() === "\\boxed{" + state.sliceDoc(fromA, toA) + "}") {
|
||||
const nodeFrom = tree.cursorAt(fromA, -1).node;
|
||||
const nodeTo = tree.cursorAt(toA, 1).node;
|
||||
if (isInlineMathBegin(nodeFrom, state) && isInlineMathEnd(nodeTo, state)) {
|
||||
if (state.sliceDoc(fromA, fromA + 3) === "{} " && state.sliceDoc(toA - 3, toA) === " {}") {
|
||||
changeToReplace = { from: fromA, to: toA, insert: "\\boxed{" + state.sliceDoc(fromA + 3, toA - 3) + "}" };
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
return changeToReplace;
|
||||
}
|
||||
|
||||
// src/transaction-filter.ts
|
||||
var import_obsidian2 = require("obsidian");
|
||||
var makeTransactionFilter = (plugin) => {
|
||||
return import_state3.EditorState.transactionFilter.of((tr) => {
|
||||
var _a;
|
||||
if (plugin.shouldIgnore(tr.startState))
|
||||
return tr;
|
||||
const userEvent = (_a = tr.annotation(import_state3.Transaction.userEvent)) == null ? void 0 : _a.split(".")[0];
|
||||
if (userEvent === "input") {
|
||||
if (plugin.settings.disableOnIME) {
|
||||
const view = tr.startState.field(import_obsidian2.editorEditorField);
|
||||
if (view.composing)
|
||||
return tr;
|
||||
}
|
||||
const changes = getChangesForInsertion(tr.startState, tr.changes);
|
||||
return [tr, { changes }];
|
||||
} else if (userEvent === "select" && tr.selection) {
|
||||
const changes = getChangesForSelection(tr.startState, tr.selection);
|
||||
return [tr, { changes }];
|
||||
} else if (userEvent === "delete") {
|
||||
const changes = getChangesForDeletion(tr.startState);
|
||||
return [tr, { changes }];
|
||||
} else if (userEvent === void 0) {
|
||||
const spec = handleLatexSuite(tr, plugin);
|
||||
if (spec)
|
||||
return spec;
|
||||
}
|
||||
return tr;
|
||||
});
|
||||
};
|
||||
function getChangesForDeletion(state) {
|
||||
const tree = (0, import_language4.syntaxTree)(state);
|
||||
const doc = state.doc.toString();
|
||||
const changes = [];
|
||||
for (const range of state.selection.ranges) {
|
||||
const from = range.empty ? range.from - 4 : range.from;
|
||||
const to = range.to;
|
||||
const text = state.sliceDoc(from, to);
|
||||
const index = text.lastIndexOf("$");
|
||||
if (index == -1) {
|
||||
continue;
|
||||
}
|
||||
const indexNextDollar = doc.indexOf("$", from + index + 1);
|
||||
const indexPrevDollar = doc.lastIndexOf("$", from);
|
||||
tree.iterate({
|
||||
from: indexPrevDollar,
|
||||
to: indexNextDollar >= 0 ? indexNextDollar : to,
|
||||
enter(node) {
|
||||
if (isInlineMathBegin(node, state) && state.sliceDoc(node.to, node.to + 3) == "{} ") {
|
||||
changes.push({ from: node.to, to: node.to + 3 });
|
||||
} else if (isInlineMathEnd(node, state) && state.sliceDoc(node.from - 3, node.from) == " {}") {
|
||||
changes.push({ from: node.from - 3, to: node.from });
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
return changes;
|
||||
}
|
||||
function getChangesForInsertion(state, changes) {
|
||||
const tree = (0, import_language4.syntaxTree)(state);
|
||||
const doc = state.doc.toString();
|
||||
const changesToAdd = [];
|
||||
const beginningOfChanges = /* @__PURE__ */ new Set();
|
||||
changes.iterChangedRanges((fromA, toA, fromB, toB) => {
|
||||
beginningOfChanges.add(fromA);
|
||||
});
|
||||
for (const range of state.selection.ranges) {
|
||||
if (range.from >= 1) {
|
||||
const indexPrevDollar = doc.lastIndexOf("$", range.from - 1);
|
||||
if (indexPrevDollar >= 0) {
|
||||
const node = tree.cursorAt(indexPrevDollar, 1).node;
|
||||
if (isInlineMathBegin(node, state)) {
|
||||
if (indexPrevDollar === range.from - 1 && beginningOfChanges.has(range.from)) {
|
||||
changesToAdd.push({ from: indexPrevDollar, to: range.from, insert: "${} " });
|
||||
continue;
|
||||
}
|
||||
if (state.sliceDoc(node.to, node.to + 3) !== "{} ") {
|
||||
changesToAdd.push({ from: node.to, insert: "{} " });
|
||||
}
|
||||
} else if (isInlineMathEnd(node, state) && state.sliceDoc(node.from - 3, node.from) === " {}") {
|
||||
const openIndex = doc.lastIndexOf("${} ", node.from - 3);
|
||||
changesToAdd.push({ from: openIndex + 1, to: node.from, insert: doc.slice(openIndex + 4, node.from - 3).trim() });
|
||||
}
|
||||
}
|
||||
}
|
||||
const indexNextDollar = doc.indexOf("$", range.to);
|
||||
if (indexNextDollar >= 0) {
|
||||
const node = tree.cursorAt(indexNextDollar, 1).node;
|
||||
if (isInlineMathEnd(node, state)) {
|
||||
if (state.sliceDoc(node.from - 3, node.from) !== " {}") {
|
||||
changesToAdd.push({ from: node.from, insert: " {}" });
|
||||
}
|
||||
} else if (isInlineMathBegin(node, state) && state.sliceDoc(node.to, node.to + 3) === "{} ") {
|
||||
const closeIndex = doc.indexOf(" {}$", node.to + 3);
|
||||
if (closeIndex >= 0) {
|
||||
changesToAdd.push({ from: node.to, to: closeIndex + 3, insert: doc.slice(node.to + 3, closeIndex).trim() });
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return changesToAdd;
|
||||
}
|
||||
function getChangesForSelection(state, newSelection) {
|
||||
const tree = (0, import_language4.syntaxTree)(state);
|
||||
const doc = state.doc.toString();
|
||||
const changes = [];
|
||||
for (let i = 0; i < newSelection.ranges.length; i++) {
|
||||
const range = newSelection.ranges[i];
|
||||
const indexNextDollar = doc.indexOf("$", range.to);
|
||||
const indexPrevDollar = doc.lastIndexOf("$", range.from - 1);
|
||||
if (indexPrevDollar >= 0) {
|
||||
const node = tree.cursorAt(indexPrevDollar, 1).node;
|
||||
if (isInlineMathEnd(node, state) && state.sliceDoc(node.from - 3, node.from) === " {}") {
|
||||
const openIndex = doc.lastIndexOf("${} ", node.from - 3);
|
||||
changes.push({ from: openIndex + 1, to: node.from, insert: doc.slice(openIndex + 4, node.from - 3).trim() });
|
||||
}
|
||||
}
|
||||
if (indexNextDollar >= 0) {
|
||||
const node = tree.cursorAt(indexNextDollar, 1).node;
|
||||
if (isInlineMathBegin(node, state) && state.sliceDoc(node.to, node.to + 3) === "{} ") {
|
||||
const closeIndex = doc.indexOf(" {}$", node.to + 3);
|
||||
if (closeIndex >= 0) {
|
||||
changes.push({ from: node.to, to: closeIndex + 3, insert: doc.slice(node.to + 3, closeIndex).trim() });
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return changes;
|
||||
}
|
||||
|
||||
// src/main.ts
|
||||
var NoMoreFlicker = class extends import_obsidian3.Plugin {
|
||||
constructor() {
|
||||
super(...arguments);
|
||||
/**
|
||||
* a view plugin that provides
|
||||
* - decorations to hide braces adjacent to "$"s
|
||||
* - & atomic ranges to treat each of "${} " and " {}$" as one character
|
||||
*/
|
||||
this.viewPlugin = [];
|
||||
/**
|
||||
* Indicates whether the previous transaction was the first of the two transactions
|
||||
* (1. text replacement & 2. cursor position change) that Latex Suite's "box current equation"
|
||||
* command produces or not. See the commend in the makeTransactionFilter() method for details.
|
||||
*/
|
||||
this._latexSuiteBoxing = false;
|
||||
}
|
||||
async onload() {
|
||||
await this.loadSettings();
|
||||
await this.saveSettings();
|
||||
this.addSettingTab(new NoMoreFlickerSettingTab(this.app, this));
|
||||
this.registerEditorExtension(this.viewPlugin);
|
||||
this.remakeViewPlugin();
|
||||
this.registerEditorExtension(makeTransactionFilter(this));
|
||||
}
|
||||
async loadSettings() {
|
||||
this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData());
|
||||
}
|
||||
async saveSettings() {
|
||||
await this.saveData(this.settings);
|
||||
}
|
||||
shouldIgnore(state) {
|
||||
return this.settings.disableInTable && selectionSatisfies(
|
||||
state,
|
||||
(node) => node.name.includes("HyperMD-table") || node.name.includes("hmd-table")
|
||||
);
|
||||
}
|
||||
remakeViewPlugin() {
|
||||
this.viewPlugin.length = 0;
|
||||
this.viewPlugin.push(createViewPlugin(this));
|
||||
this.app.workspace.updateOptions();
|
||||
}
|
||||
};
|
||||
|
||||
/* nosourcemap */
|
||||
15
.obsidian/plugins/inline-math/manifest.json
vendored
Normal file
15
.obsidian/plugins/inline-math/manifest.json
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"id": "inline-math",
|
||||
"name": "No more flickering inline math",
|
||||
"version": "0.3.6",
|
||||
"minAppVersion": "1.3.0",
|
||||
"description": "Remove flickering inline math.",
|
||||
"author": "Ryota Ushio",
|
||||
"authorUrl": "https://github.com/RyotaUshio",
|
||||
"fundingUrl": {
|
||||
"GitHub Sponsor": "https://github.com/sponsors/RyotaUshio",
|
||||
"Buy Me a Coffee": "https://www.buymeacoffee.com/ryotaushio",
|
||||
"Ko-fi": "https://ko-fi.com/ryotaushio"
|
||||
},
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
217
.obsidian/plugins/typst-mate/data.json
vendored
Normal file
217
.obsidian/plugins/typst-mate/data.json
vendored
Normal file
@@ -0,0 +1,217 @@
|
||||
{
|
||||
"concealMathSymbols": true,
|
||||
"enableConcealMathSymbolRevealDelay": true,
|
||||
"mathSymbolRevealDelay": 1000,
|
||||
"complementSymbolWithUnicode": false,
|
||||
"disableBracketHighlight": false,
|
||||
"useObsidianTheme": false,
|
||||
"enableInlinePreview": true,
|
||||
"revertTabToDefault": false,
|
||||
"jumpOutsideBracket": true,
|
||||
"preferInlineExitForSingleLineDisplayMath": true,
|
||||
"moveToEndOfMathBlockBeforeExiting": false,
|
||||
"disableMacro": false,
|
||||
"enableBackgroundRendering": true,
|
||||
"patchPDFExport": false,
|
||||
"autoBaseColor": true,
|
||||
"baseColor": "#000000",
|
||||
"offset": 0,
|
||||
"fitToNoteWidthProfile": "Live",
|
||||
"fitToNoteWidthProfiles": [
|
||||
{
|
||||
"name": "A3",
|
||||
"width": "700pt"
|
||||
},
|
||||
{
|
||||
"name": "A4",
|
||||
"width": "500pt"
|
||||
},
|
||||
{
|
||||
"name": "A5",
|
||||
"width": "350pt"
|
||||
},
|
||||
{
|
||||
"name": "Legal",
|
||||
"width": "516pt"
|
||||
},
|
||||
{
|
||||
"name": "Letter",
|
||||
"width": "516pt"
|
||||
},
|
||||
{
|
||||
"name": "Tabloid",
|
||||
"width": "690pt"
|
||||
}
|
||||
],
|
||||
"skipPreparationWaiting": false,
|
||||
"disablePackageCache": false,
|
||||
"preamble": "#set page(margin: 0pt, width: auto, height: auto)\n#show raw: set text(size: 1.25em)\n#set text(size: fontsize)\n#import \"@preview/mannot:0.3.1\": *\n#import \"@preview/quick-maths:0.2.1\": shorthands\n#show: shorthands.with(\n ($+-$, sym.plus.minus),\n ($|-$, math.tack),\n)",
|
||||
"openTypstToolsOnStartup": true,
|
||||
"enableMathjaxFallback": false,
|
||||
"applyProcessorToMathJax": false,
|
||||
"importPath": ".typst",
|
||||
"enableDebugger": false,
|
||||
"processor": {
|
||||
"inline": {
|
||||
"processors": [
|
||||
{
|
||||
"id": "ce",
|
||||
"renderingEngine": "typst-svg",
|
||||
"format": "#import \"@preview/typsium:0.3.1\": ce\n#show math.equation: set text(font: (\"New Computer Modern Math\", \"Noto Serif CJK SC\"))\n#ce[{CODE}]",
|
||||
"styling": "inline",
|
||||
"noPreamble": false,
|
||||
"fitToNoteWidth": false,
|
||||
"syntaxMode": 0
|
||||
},
|
||||
{
|
||||
"id": "tex",
|
||||
"renderingEngine": "mathjax",
|
||||
"format": "",
|
||||
"styling": "inline",
|
||||
"noPreamble": false,
|
||||
"fitToNoteWidth": false
|
||||
},
|
||||
{
|
||||
"id": "display",
|
||||
"renderingEngine": "typst-svg",
|
||||
"format": "#set page(margin: (x: 0pt, y: 0.3125em))\n#math.equation($ {CODE} $, block: false)",
|
||||
"styling": "inline",
|
||||
"noPreamble": false,
|
||||
"fitToNoteWidth": false,
|
||||
"syntaxMode": 1,
|
||||
"useReplaceAll": false
|
||||
},
|
||||
{
|
||||
"id": "",
|
||||
"renderingEngine": "typst-svg",
|
||||
"format": "#set page(margin: (x: 0pt, y: 0.3125em))\n${CODE}$",
|
||||
"styling": "inline",
|
||||
"noPreamble": false,
|
||||
"fitToNoteWidth": false,
|
||||
"syntaxMode": 1,
|
||||
"useReplaceAll": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"display": {
|
||||
"processors": [
|
||||
{
|
||||
"id": "block",
|
||||
"renderingEngine": "typst-svg",
|
||||
"format": "$ {CODE} $",
|
||||
"styling": "block",
|
||||
"noPreamble": false,
|
||||
"fitToNoteWidth": false,
|
||||
"syntaxMode": 1,
|
||||
"useReplaceAll": false
|
||||
},
|
||||
{
|
||||
"id": "",
|
||||
"renderingEngine": "typst-svg",
|
||||
"format": "$ {CODE} $",
|
||||
"styling": "block-center",
|
||||
"noPreamble": false,
|
||||
"fitToNoteWidth": false,
|
||||
"syntaxMode": 1,
|
||||
"useReplaceAll": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"codeblock": {
|
||||
"processors": [
|
||||
{
|
||||
"id": "typst",
|
||||
"renderingEngine": "typst-svg",
|
||||
"format": "{CODE}",
|
||||
"styling": "block-center",
|
||||
"noPreamble": false,
|
||||
"fitToNoteWidth": true,
|
||||
"syntaxMode": 0,
|
||||
"useReplaceAll": false
|
||||
},
|
||||
{
|
||||
"id": "fletcher",
|
||||
"renderingEngine": "typst-svg",
|
||||
"format": "#import \"@preview/fletcher:0.5.8\" as fletcher: diagram, node, edge\n{CODE}",
|
||||
"styling": "block-center",
|
||||
"noPreamble": false,
|
||||
"fitToNoteWidth": false,
|
||||
"syntaxMode": 0,
|
||||
"useReplaceAll": false
|
||||
},
|
||||
{
|
||||
"id": "lovelace",
|
||||
"renderingEngine": "typst-svg",
|
||||
"format": "#import \"@preview/lovelace:0.3.0\": *\n#pseudocode-list[\n{CODE}\n]",
|
||||
"styling": "block",
|
||||
"noPreamble": false,
|
||||
"fitToNoteWidth": false,
|
||||
"syntaxMode": 0,
|
||||
"useReplaceAll": false
|
||||
},
|
||||
{
|
||||
"id": "lilaq",
|
||||
"renderingEngine": "typst-svg",
|
||||
"format": "#import \"@preview/lilaq:0.5.0\" as lq\n{CODE}",
|
||||
"styling": "block-center",
|
||||
"noPreamble": false,
|
||||
"fitToNoteWidth": false,
|
||||
"syntaxMode": 0,
|
||||
"useReplaceAll": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"excalidraw": {
|
||||
"processors": [
|
||||
{
|
||||
"id": "default",
|
||||
"renderingEngine": "typst-svg",
|
||||
"format": "#set page(margin: 0.25em)\n${CODE}$",
|
||||
"styling": "default",
|
||||
"noPreamble": false,
|
||||
"syntaxMode": 1,
|
||||
"useReplaceAll": false
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"snippets": [
|
||||
{
|
||||
"category": "Matrix",
|
||||
"name": "mat",
|
||||
"description": "e.g. mat(3,3)@",
|
||||
"kind": "display",
|
||||
"id": "",
|
||||
"content": "const parts = input.split(\",\").map(s => s.trim());\n\nconst [x, y] = parts.map(Number)\n\nconst rowText = `${(\"#CURSOR, \".repeat(x)).slice(0, -2)} ;\\n`;\nconst contentText = ` ${rowText}`.repeat(y);\n\nreturn `mat(\\n${contentText})`;",
|
||||
"script": true
|
||||
},
|
||||
{
|
||||
"category": "Matrix",
|
||||
"name": "matInline",
|
||||
"description": "e.g. mat(3,3)@",
|
||||
"kind": "inline",
|
||||
"id": "",
|
||||
"content": "const parts = input.split(\",\").map(s => s.trim());\n\nconst [x, y] = parts.map(Number)\n\nconst rowText = `${(\"#CURSOR, \".repeat(x)).slice(0, -2)} ;`;\nconst contentText = `${rowText}`.repeat(y);\n\nreturn `mat(${contentText})`;",
|
||||
"script": true
|
||||
},
|
||||
{
|
||||
"category": "Cases",
|
||||
"name": "cases",
|
||||
"description": "",
|
||||
"kind": "display",
|
||||
"id": "",
|
||||
"content": "cases(#CURSOR \"if\" #CURSOR, #CURSOR \"else\")",
|
||||
"script": false
|
||||
},
|
||||
{
|
||||
"category": "Cases",
|
||||
"name": "casesn",
|
||||
"description": "e.g. casesn(3)@",
|
||||
"kind": "display",
|
||||
"id": "",
|
||||
"content": "const n = Number(input);\nreturn `cases(\\n${(` #CURSOR \"if\" #CURSOR,\\n`).repeat(n-1)} #CURSOR \"else\"\\n)`",
|
||||
"script": true
|
||||
}
|
||||
],
|
||||
"crashCount": 0
|
||||
}
|
||||
27
.obsidian/plugins/typst-mate/main.js
vendored
Normal file
27
.obsidian/plugins/typst-mate/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
12
.obsidian/plugins/typst-mate/manifest.json
vendored
Normal file
12
.obsidian/plugins/typst-mate/manifest.json
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"id": "typst-mate",
|
||||
"name": "Typst Mate",
|
||||
"version": "2.3.2",
|
||||
"minAppVersion": "1.0.0",
|
||||
"description": "Render math expressions with Typst instead of MathJax.",
|
||||
"author": "azyarashi",
|
||||
"isDesktopOnly": false,
|
||||
"fundingUrl": {
|
||||
"Buy me a Coffee": "https://www.buymeacoffee.com/azyarashi"
|
||||
}
|
||||
}
|
||||
228
.obsidian/plugins/typst-mate/styles.css
vendored
Normal file
228
.obsidian/plugins/typst-mate/styles.css
vendored
Normal file
File diff suppressed because one or more lines are too long
BIN
.obsidian/plugins/typst-mate/typst-2.3.2.wasm
vendored
Normal file
BIN
.obsidian/plugins/typst-mate/typst-2.3.2.wasm
vendored
Normal file
Binary file not shown.
@@ -1,7 +0,0 @@
|
||||
> [!INFO]
|
||||
> **Semester**: `#1` - WiSe 25/26
|
||||
> **Kurse**:
|
||||
> - *DAS*: Diskrete Algebraische Strukturen
|
||||
> - *ET*
|
||||
>
|
||||
|
||||
18
10 Courses/02 - SoSe 2026/29605580 - SoSe 2026.md
Normal file
18
10 Courses/02 - SoSe 2026/29605580 - SoSe 2026.md
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
created: 2026-04-16 12:20
|
||||
course: "[[29605580 - SoSe 2026]]"
|
||||
topic:
|
||||
related:
|
||||
type: link
|
||||
status: 🟢
|
||||
tags:
|
||||
- university
|
||||
---
|
||||
## 📌 Summary
|
||||
|
||||
> [!abstract]
|
||||
> Link file for graph view and general linkage
|
||||
|
||||
---
|
||||
|
||||
## 📝 Content
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
created: 2026-04-16 11:46
|
||||
course: "[[29593850 - Automationtheory]]"
|
||||
course: "[[29605580 - SoSe 2026]]"
|
||||
type: lecture
|
||||
tags:
|
||||
- university
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
created: 2026-04-07 14:02
|
||||
course: "[[29592673 - Elektrotechnik II]]"
|
||||
course: "[[29605580 - SoSe 2026]]"
|
||||
type: overview
|
||||
---
|
||||
---
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
created: 2026-04-16 11:48
|
||||
course: "[[29605397 - OOP]]"
|
||||
course: "[[29605580 - SoSe 2026]]"
|
||||
tags:
|
||||
- university
|
||||
topic:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
created: 2026-04-16 08:01
|
||||
created: 2026-04-16 12:21
|
||||
course: "[[29605397 - OOP]]"
|
||||
topic: classes
|
||||
related:
|
||||
@@ -158,4 +158,5 @@ class Pokemon {
|
||||
public:
|
||||
Pokemon(const Pokemon& other): exp(other.exp), level(other.level) {}
|
||||
}
|
||||
```
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user