vault backup: 2023-02-17 14:50:59

Affected files:
.obsidian/plugins/control-characters/data.json
.obsidian/plugins/obsidian-git/main.js
.obsidian/plugins/obsidian-git/manifest.json
.obsidian/workspace.json
62-1John/123John-Style.md
This commit is contained in:
Andley Chang 2023-02-17 14:50:59 +08:00
parent e625fe4487
commit 7dbb59ecb1
5 changed files with 64 additions and 26 deletions

View File

@ -1,6 +1,6 @@
{
"newLine": false,
"tab": false,
"tab": true,
"space": true,
"enabled": true,
"selection": false

View File

@ -19368,7 +19368,7 @@ var MyAdapter = class {
return this.adapter.read(path2);
}
} else {
if (path2.endsWith(".git/index")) {
if (path2.endsWith(this.gitDir + "/index")) {
return (_a2 = this.index) != null ? _a2 : this.adapter.readBinary(path2);
}
const file = this.vault.getAbstractFileByPath(path2);
@ -19390,7 +19390,7 @@ var MyAdapter = class {
return this.adapter.write(path2, data);
}
} else {
if (path2.endsWith(".git/index")) {
if (path2.endsWith(this.gitDir + "/index")) {
this.index = data;
this.indexmtime = Date.now();
} else {
@ -19424,7 +19424,7 @@ var MyAdapter = class {
return this.adapter.rmdir(path2, (_b = (_a2 = opts == null ? void 0 : opts.options) == null ? void 0 : _a2.recursive) != null ? _b : false);
}
async stat(path2) {
if (path2.endsWith(".git/index")) {
if (path2.endsWith(this.gitDir + "/index")) {
if (this.index !== void 0 && this.indexctime != void 0 && this.indexmtime != void 0) {
return {
isFile: () => true,
@ -19499,7 +19499,7 @@ var MyAdapter = class {
}
async saveAndClear() {
if (this.index !== void 0) {
await this.adapter.writeBinary(this.plugin.gitManager.getVaultPath(".git/index"), this.index, {
await this.adapter.writeBinary(this.plugin.gitManager.getVaultPath(this.gitDir + "/index"), this.index, {
ctime: this.indexctime,
mtime: this.indexmtime
});
@ -19508,6 +19508,10 @@ var MyAdapter = class {
this.indexctime = void 0;
this.indexmtime = void 0;
}
get gitDir() {
var _a2;
return (_a2 = this.plugin.settings.gitDir) != null ? _a2 : ".git";
}
maybeLog(text2) {
}
};
@ -19644,13 +19648,15 @@ var IsomorphicGit = class extends GitManager {
this.fs = new MyAdapter(this.app.vault, this.plugin);
}
getRepo() {
var _a2;
return {
fs: this.fs,
dir: this.plugin.settings.basePath,
gitdir: (_a2 = this.plugin.settings.gitDir) != null ? _a2 : void 0,
onAuth: () => {
var _a2, _b;
var _a3, _b;
return {
username: (_a2 = this.plugin.localStorage.getUsername()) != null ? _a2 : void 0,
username: (_a3 = this.plugin.localStorage.getUsername()) != null ? _a3 : void 0,
password: (_b = this.plugin.localStorage.getPassword()) != null ? _b : void 0
};
},
@ -24138,11 +24144,20 @@ var SimpleGit = class extends GitManager {
binary: this.plugin.localStorage.getGitPath() || void 0,
config: ["core.quotepath=off"]
});
const env = this.plugin.localStorage.getPATHPaths();
if (env.length > 0) {
const path3 = process.env["PATH"] + ":" + env.join(":");
const pathPaths = this.plugin.localStorage.getPATHPaths();
const envVars = this.plugin.localStorage.getEnvVars();
const gitDir = this.plugin.settings.gitDir;
if (pathPaths.length > 0) {
const path3 = process.env["PATH"] + ":" + pathPaths.join(":");
process.env["PATH"] = path3;
}
if (gitDir) {
process.env["GIT_DIR"] = gitDir;
}
for (const envVar of envVars) {
const [key2, value] = envVar.split("=");
process.env[key2] = value;
}
const debug2 = require_browser();
debug2.enable("simple-git");
await this.git.cwd(await this.git.revparse("--show-toplevel"));
@ -24742,6 +24757,14 @@ var ObsidianGitSettingsTab = class extends import_obsidian7.PluginSettingTab {
plugin.gitManager.updateGitPath(value || "git");
});
});
if (plugin.gitManager instanceof SimpleGit)
new import_obsidian7.Setting(containerEl).setName("Additional environment variables").setDesc("Use each line for a new environment variable in the format KEY=VALUE").addTextArea((cb) => {
cb.setPlaceholder("GIT_DIR=/path/to/git/dir");
cb.setValue(plugin.localStorage.getEnvVars().join("\n"));
cb.onChange((value) => {
plugin.localStorage.setEnvVars(value.split("\n"));
});
});
if (plugin.gitManager instanceof SimpleGit)
new import_obsidian7.Setting(containerEl).setName("Additional PATH environment variable paths").setDesc("Use each line for one path").addTextArea((cb) => {
cb.setValue(plugin.localStorage.getPATHPaths().join("\n"));
@ -24750,7 +24773,7 @@ var ObsidianGitSettingsTab = class extends import_obsidian7.PluginSettingTab {
});
});
if (plugin.gitManager instanceof SimpleGit)
new import_obsidian7.Setting(containerEl).setName("Reload with new PATH environment variable").addButton((cb) => {
new import_obsidian7.Setting(containerEl).setName("Reload with new environment variables").setDesc("Removing previously added environment variables will not take effect until Obsidian is restarted.").addButton((cb) => {
cb.setButtonText("Reload");
cb.setCta();
cb.onClick(() => {
@ -24769,6 +24792,14 @@ var ObsidianGitSettingsTab = class extends import_obsidian7.PluginSettingTab {
plugin.gitManager.updateBasePath(value || "");
});
});
new import_obsidian7.Setting(containerEl).setName("Custom Git directory path (Instead of '.git')").setDesc(`Requires restart of Obsidian to take effect. Use "\\" instead of "/" on Windows.`).addText((cb) => {
cb.setValue(plugin.settings.gitDir);
cb.setPlaceholder(".git");
cb.onChange((value) => {
plugin.settings.gitDir = value;
plugin.saveSettings();
});
});
new import_obsidian7.Setting(containerEl).setName("Disable on this device").addToggle((toggle) => toggle.setValue(plugin.localStorage.getPluginDisabled()).onChange((value) => {
plugin.localStorage.setPluginDisabled(value);
if (value) {
@ -25088,6 +25119,13 @@ var LocalStorageSettings = class {
setPATHPaths(value) {
return app.saveLocalStorage(this.prefix + "PATHPaths", value.join(":"));
}
getEnvVars() {
var _a2;
return JSON.parse((_a2 = app.loadLocalStorage(this.prefix + "envVars")) != null ? _a2 : "[]");
}
setEnvVars(value) {
return app.saveLocalStorage(this.prefix + "envVars", JSON.stringify(value));
}
getPluginDisabled() {
return app.loadLocalStorage(this.prefix + "pluginDisabled") == "true";
}

View File

@ -5,5 +5,5 @@
"isDesktopOnly": false,
"fundingUrl": "https://ko-fi.com/vinzent",
"js": "main.js",
"version": "2.15.0"
"version": "2.16.0"
}

View File

@ -14,7 +14,7 @@
"state": {
"type": "markdown",
"state": {
"file": "62-1John/1John-Interlinear-TC.md",
"file": "62-1John/123John-Style.md",
"mode": "source",
"backlinks": false,
"source": true
@ -35,7 +35,7 @@
"state": {
"type": "markdown",
"state": {
"file": "62-1John/1John-Interlinear-TC.md",
"file": "62-1John/123John-Style.md",
"mode": "preview",
"backlinks": false,
"source": true
@ -109,7 +109,7 @@
"state": {
"type": "outline",
"state": {
"file": "62-1John/1John-Interlinear-TC.md"
"file": "62-1John/123John-Style.md"
}
}
},
@ -130,7 +130,7 @@
"state": {
"type": "backlink",
"state": {
"file": "62-1John/1John-Interlinear-TC.md",
"file": "62-1John/123John-Style.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
@ -147,7 +147,7 @@
"state": {
"type": "outgoing-link",
"state": {
"file": "62-1John/1John-Interlinear-TC.md",
"file": "62-1John/123John-Style.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
}
@ -170,17 +170,17 @@
"workspaces:Manage workspace layouts": false
}
},
"active": "75b75d906b38f1fb",
"active": "1a81d9f000627cca",
"lastOpenFiles": [
"62-1John/1John-Interlinear.md",
"62-1John/1John-Notes.md",
"62-1John/1Jo.1.1-4.md",
"62-1John/123John-Style.md",
"62-1John/1John-Interlinear-TC.md",
"62-1John/1John-Interlinear.md",
"62-1John/1John-Notes.md",
"62-1John/1John-Interlinear.md",
"62-1John/123John-Vocabulary.md",
"62-1John/123John-Style.md",
"62-1John/123John-Clause.md",
"62-1John/1Jo.3.19-24.md",
"48-Galatians/Gal.3.7-14.md",
"49-Ephesians/Eph.3.16-19.md"
"48-Galatians/Gal.3.7-14.md"
]
}

View File

@ -6,7 +6,7 @@
### (2) ἐν τούτῳ 的 τούτῳ 指向下文
其次,就句法來看,ἐν τούτῳ 這個介系詞片語總共出現 14 次 (1 Jo. 2:3, 4, 5 [2x]; 3:10, 16, 19, 24; 4:2, 9, 10, 13, 17; 5:2)。解經時最大的挑戰,就是要釐清 τούτῳ 指的是什麼?究竟是指向上文的子句、字詞、概念 (句法上所謂的「前指 anaphoric」),又或者是指向下文的子句、字詞、概念 (句法上所謂的「後指 cataphoric」)。
Bateman[^1] 歸納出來一個原則:如果 ἐν τούτῳ 後面有 ὅτι、ἵνα、ἐάν、ὅταν 帶出來的從屬子句,那麼 τούτῳ 就是 cataphoric (後指);反過來說,如果 ἐν τούτῳ 後面沒有這些從屬子句,那麼 τούτῳ 就是 anaphoric (前指)。
Bateman 歸納出來一個原則:如果 ἐν τούτῳ 後面有 ὅτι、ἵνα、ἐάν、ὅταν 帶出來的從屬子句,那麼 τούτῳ 就是 cataphoric (後指);反過來說,如果 ἐν τούτῳ 後面沒有這些從屬子句,那麼 τούτῳ 就是 anaphoric (前指)。[^1]
這個原則,如果搭配 UBS5 的標點符號,就會看得更加清楚。以 1Jo 2:3 為例:
@ -72,9 +72,9 @@ Bateman[^1] 歸納出來一個原則:如果 ἐν τούτῳ 後面有 ὅτ
- <mark>(there) is not any lie out-of the truth</mark> 比較好,可以合乎規則 😀
- πᾶν πνεῦμα < ὁμολογεῖ Ἰησοῦν Χριστὸν ἐν σαρκὶ ἐληλυθότα> ἐκ τοῦ θεοῦ ἐστιν, (1 Jn. 4:2)
- all spirit <...> is out-of the God
- all spirit <...> <mark>(it) is out-of the God</mark> 切成兩個子句,就合乎規則 😀
- all spirit <...> <mark>(it) is out-of the God</mark> 切成兩個子句,就合乎規則 😀
- καὶ πᾶν πνεῦμα < μὴ ὁμολογεῖ τὸν Ἰησοῦν> ἐκ τοῦ θεοῦ οὐκ ἔστιν (1 Jn. 4:3)
- and all spirit <...> is not out-of the God
- and all spirit <...> <mark>(it) is not out-of the God</mark> 切成兩個子句,就合乎規則 😀
- and all spirit <...> <mark>(it) is not out-of the God</mark> 切成兩個子句,就合乎規則 😀
[^1]: Herbert W. Bateman IV, _Johns Letters: An Exegetical Guide for Preaching and Teaching_, Big Greek Idea (Grand Rapids, MI.: Kregel Academic, 2018), 55.