vault backup: 2025-03-16 18:59:42
This commit is contained in:
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
|
||||
}
|
Reference in New Issue
Block a user