vault backup: 2024-07-09 11:52:31

Affected files:
.obsidian/plugins/obsidian-git/main.js
.obsidian/plugins/obsidian-git/manifest.json
.obsidian/plugins/obsidian-git/styles.css
.obsidian/plugins/obsidian-hider/main.js
.obsidian/plugins/obsidian-hider/manifest.json
.obsidian/plugins/obsidian-hider/styles.css
.obsidian/workspace.json
60-1Peter/1Pe.1.1-2.md
My code file.ts
This commit is contained in:
Andley Chang 2024-07-09 11:52:31 +08:00
parent c21df64492
commit 3956914f34
9 changed files with 178 additions and 133 deletions

View File

@ -1983,8 +1983,8 @@ var require_lib = __commonJS({
if (typeof cb !== "function") {
opts = cb;
cb = null;
deferred2 = new this.Promise(function(resolve, reject) {
deferredResolve = resolve;
deferred2 = new this.Promise(function(resolve2, reject) {
deferredResolve = resolve2;
deferredReject = reject;
});
}
@ -2132,17 +2132,17 @@ var require_lib = __commonJS({
if (typeof cb === "function") {
fnx(cb);
} else {
return new this.Promise(function(resolve, reject) {
return new this.Promise(function(resolve2, reject) {
if (fnx.length === 1) {
fnx(function(err, ret) {
if (err) {
reject(err);
} else {
resolve(ret);
resolve2(ret);
}
});
} else {
resolve(fnx());
resolve2(fnx());
}
});
}
@ -6742,7 +6742,7 @@ var require_pify = __commonJS({
init_polyfill_buffer();
var processFn = (fn, options) => function(...args) {
const P = options.promiseModule;
return new P((resolve, reject) => {
return new P((resolve2, reject) => {
if (options.multiArgs) {
args.push((...result) => {
if (options.errorFirst) {
@ -6750,10 +6750,10 @@ var require_pify = __commonJS({
reject(result);
} else {
result.shift();
resolve(result);
resolve2(result);
}
} else {
resolve(result);
resolve2(result);
}
});
} else if (options.errorFirst) {
@ -6761,11 +6761,11 @@ var require_pify = __commonJS({
if (error) {
reject(error);
} else {
resolve(result);
resolve2(result);
}
});
} else {
args.push(resolve);
args.push(resolve2);
}
fn.apply(this, args);
});
@ -21451,9 +21451,9 @@ var FIFO = class {
throw Error("You cannot write to a FIFO that has already been ended!");
}
if (this._waiting) {
const resolve = this._waiting;
const resolve2 = this._waiting;
this._waiting = null;
resolve({ value: chunk });
resolve2({ value: chunk });
} else {
this._queue.push(chunk);
}
@ -21461,9 +21461,9 @@ var FIFO = class {
end() {
this._ended = true;
if (this._waiting) {
const resolve = this._waiting;
const resolve2 = this._waiting;
this._waiting = null;
resolve({ done: true });
resolve2({ done: true });
}
}
destroy(err) {
@ -21482,8 +21482,8 @@ var FIFO = class {
"You cannot call read until the previous call to read has returned!"
);
}
return new Promise((resolve) => {
this._waiting = resolve;
return new Promise((resolve2) => {
this._waiting = resolve2;
});
}
};
@ -21643,7 +21643,7 @@ async function parseUploadPackResponse(stream) {
const acks = [];
let nak = false;
let done = false;
return new Promise((resolve, reject) => {
return new Promise((resolve2, reject) => {
forAwait(packetlines, (data) => {
const line = data.toString("utf8").trim();
if (line.startsWith("shallow")) {
@ -21671,11 +21671,11 @@ async function parseUploadPackResponse(stream) {
nak = true;
}
if (done) {
stream.error ? reject(stream.error) : resolve({ shallows, unshallows, acks, nak, packfile, progress });
stream.error ? reject(stream.error) : resolve2({ shallows, unshallows, acks, nak, packfile, progress });
}
}).finally(() => {
if (!done) {
stream.error ? reject(stream.error) : resolve({ shallows, unshallows, acks, nak, packfile, progress });
stream.error ? reject(stream.error) : resolve2({ shallows, unshallows, acks, nak, packfile, progress });
}
});
});
@ -25739,7 +25739,7 @@ var import_obsidian4 = require("obsidian");
var path = __toESM(require("path"));
var import_path = require("path");
// node_modules/.pnpm/github.com+Vinzent03+git-js@6b9a2d899bc8256e38a1d6f0b8a88116ba2bf56a_supports-color@9.4.0_rdkutdaeyye3o67thmklazfzta/node_modules/simple-git/dist/esm/index.js
// node_modules/.pnpm/simple-git@https+++codeload.github.com+Vinzent03+git-js+tar.gz+6b9a2d899bc8256e38a1d6f0b8a881_rku6lxlylrt42756swupwur2wa/node_modules/simple-git/dist/esm/index.js
init_polyfill_buffer();
var import_file_exists = __toESM(require_dist(), 1);
var import_debug = __toESM(require_browser(), 1);
@ -25792,7 +25792,7 @@ var __toCommonJS2 = /* @__PURE__ */ ((cache) => {
};
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
var __async = (__this, __arguments, generator) => {
return new Promise((resolve, reject) => {
return new Promise((resolve2, reject) => {
var fulfilled = (value) => {
try {
step(generator.next(value));
@ -25807,7 +25807,7 @@ var __async = (__this, __arguments, generator) => {
reject(e);
}
};
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
var step = (x) => x.done ? resolve2(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
step((generator = generator.apply(__this, __arguments)).next());
});
};
@ -29766,13 +29766,15 @@ var GitManager = class {
// Constructs a path relative to the git repository from a path relative to the vault
//
// @param doConversion - If false, the path is returned as is. This is added because that parameter is often passed on to functions where this method is called.
getRelativeRepoPath(path2, doConversion = true) {
getRelativeRepoPath(filePath, doConversion = true) {
if (doConversion) {
if (this.plugin.settings.basePath.length > 0) {
return path2.substring(this.plugin.settings.basePath.length + 1);
return filePath.substring(
this.plugin.settings.basePath.length + 1
);
}
}
return path2;
return filePath;
}
_getTreeStructure(children2, beginLength = 0) {
const list = [];
@ -29870,18 +29872,23 @@ var GitManager = class {
if (template.includes("{{files}}")) {
status2 = status2 != null ? status2 : await this.status();
const changeset = {};
status2.staged.forEach((value) => {
if (value.index in changeset) {
changeset[value.index].push(value.path);
} else {
changeset[value.index] = [value.path];
let files = "";
if (status2.staged.length < 100) {
status2.staged.forEach((value) => {
if (value.index in changeset) {
changeset[value.index].push(value.path);
} else {
changeset[value.index] = [value.path];
}
});
const chunks = [];
for (const [action, files2] of Object.entries(changeset)) {
chunks.push(action + " " + files2.join(" "));
}
});
const chunks = [];
for (const [action, files2] of Object.entries(changeset)) {
chunks.push(action + " " + files2.join(" "));
files = chunks.join(", ");
} else {
files = "Too many files to list";
}
const files = chunks.join(", ");
template = template.replace("{{files}}", files);
}
const moment6 = window.moment;
@ -29890,7 +29897,14 @@ var GitManager = class {
moment6().format(this.plugin.settings.commitDateFormat)
);
if (this.plugin.settings.listChangedFilesInMessageBody) {
template = template + "\n\nAffected files:\n" + (status2 != null ? status2 : await this.status()).staged.map((e) => e.path).join("\n");
const status22 = status2 != null ? status2 : await this.status();
let files = "";
if (status22.staged.length < 100) {
files = status22.staged.map((e) => e.path).join("\n");
} else {
files = "Too many files to list";
}
template = template + "\n\nAffected files:\n" + files;
}
return template;
}
@ -29904,18 +29918,22 @@ var SimpleGit = class extends GitManager {
async setGitInstance(ignoreError = false) {
if (this.isGitInstalled()) {
const adapter = this.app.vault.adapter;
const path2 = adapter.getBasePath();
let basePath = path2;
const vaultBasePath = adapter.getBasePath();
let basePath = vaultBasePath;
if (this.plugin.settings.basePath) {
const exists2 = await adapter.exists(
(0, import_obsidian4.normalizePath)(this.plugin.settings.basePath)
);
if (exists2) {
basePath = path2 + import_path.sep + this.plugin.settings.basePath;
basePath = path.join(
vaultBasePath,
this.plugin.settings.basePath
);
} else if (!ignoreError) {
new import_obsidian4.Notice("ObsidianGit: Base path does not exist");
}
}
this.absoluteRepoPath = basePath;
this.git = esm_default({
baseDir: basePath,
binary: this.plugin.localStorage.getGitPath() || void 0,
@ -29925,8 +29943,8 @@ var SimpleGit = class extends GitManager {
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;
const path2 = process.env["PATH"] + ":" + pathPaths.join(":");
process.env["PATH"] = path2;
}
if (gitDir) {
process.env["GIT_DIR"] = gitDir;
@ -29937,10 +29955,41 @@ var SimpleGit = class extends GitManager {
}
import_debug2.default.enable("simple-git");
if (await this.git.checkIsRepo()) {
await this.git.cwd(await this.git.revparse("--show-toplevel"));
const relativeRoot = await this.git.revparse("--show-cdup");
const absoluteRoot = (0, import_path.resolve)(basePath + import_path.sep + relativeRoot);
this.absoluteRepoPath = absoluteRoot;
await this.git.cwd(absoluteRoot);
}
}
}
// Constructs a path relative to the vault from a path relative to the git repository
getRelativeVaultPath(filePath) {
const adapter = this.app.vault.adapter;
const from = adapter.getBasePath();
const to = path.join(this.absoluteRepoPath, filePath);
let res = path.relative(from, to);
if (import_obsidian4.Platform.isWin) {
res = res.replace(/\\/g, "/");
}
return res;
}
// Constructs a path relative to the git repository from a path relative to the vault
//
// @param doConversion - If false, the path is returned as is. This is added because that parameter is often passed on to functions where this method is called.
getRelativeRepoPath(filePath, doConversion = true) {
if (doConversion) {
const adapter = this.plugin.app.vault.adapter;
const vaultPath = adapter.getBasePath();
const from = this.absoluteRepoPath;
const to = path.join(vaultPath, filePath);
let res = path.relative(from, to);
if (import_obsidian4.Platform.isWin) {
res = res.replace(/\\/g, "/");
}
return res;
}
return filePath;
}
async status() {
this.plugin.setState(1 /* status */);
const status2 = await this.git.status((err) => this.onError(err));
@ -29977,7 +30026,7 @@ var SimpleGit = class extends GitManager {
return result;
}
async getSubmodulePaths() {
return new Promise(async (resolve) => {
return new Promise(async (resolve2) => {
this.git.outputHandler(async (cmd, stdout, stderr, args) => {
if (!(args.contains("submodule") && args.contains("foreach"))) {
return;
@ -29996,7 +30045,7 @@ var SimpleGit = class extends GitManager {
}
}).filter((i) => !!i);
strippedSubmods.reverse();
resolve(strippedSubmods);
resolve2(strippedSubmods);
});
});
await this.git.subModule(["foreach", "--recursive", ""]);
@ -30269,6 +30318,9 @@ var SimpleGit = class extends GitManager {
const status2 = await this.git.status((err) => this.onError(err));
const trackingBranch = status2.tracking;
const currentBranch2 = status2.current;
if (!trackingBranch) {
return false;
}
const remoteChangedFiles = (await this.git.diffSummary([currentBranch2, trackingBranch, "--"])).changed;
return remoteChangedFiles !== 0;
}
@ -30469,10 +30521,10 @@ var SimpleGit = class extends GitManager {
}
}
}
updateGitPath(gitPath) {
updateGitPath(_) {
this.setGitInstance();
}
updateBasePath(basePath) {
updateBasePath(_) {
this.setGitInstance(true);
}
async getDiffString(filePath, stagedChanges = false, hash2) {
@ -31279,8 +31331,8 @@ var GeneralModal = class extends import_obsidian5.SuggestModal {
this.inputEl.value = this.config.initialValue;
this.inputEl.dispatchEvent(new Event("input"));
}
return new Promise((resolve) => {
this.resolve = resolve;
return new Promise((resolve2) => {
this.resolve = resolve2;
});
}
selectSuggestion(value, evt) {
@ -34572,8 +34624,8 @@ var CustomMessageModal = class extends import_obsidian15.SuggestModal {
}
open() {
super.open();
return new Promise((resolve) => {
this.resolve = resolve;
return new Promise((resolve2) => {
this.resolve = resolve2;
});
}
onClose() {
@ -37706,11 +37758,11 @@ if (typeof window !== "undefined")
init_polyfill_buffer();
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) {
return value instanceof P ? value : new P(function(resolve) {
resolve(value);
return value instanceof P ? value : new P(function(resolve2) {
resolve2(value);
});
}
return new (P || (P = Promise))(function(resolve, reject) {
return new (P || (P = Promise))(function(resolve2, reject) {
function fulfilled(value) {
try {
step(generator.next(value));
@ -37726,7 +37778,7 @@ function __awaiter(thisArg, _arguments, P, generator) {
}
}
function step(result) {
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected);
}
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
@ -39777,12 +39829,12 @@ var BranchModal = class extends import_obsidian22.FuzzySuggestModal {
}
open() {
super.open();
return new Promise((resolve) => {
this.resolve = resolve;
return new Promise((resolve2) => {
this.resolve = resolve2;
});
}
async onClose() {
await new Promise((resolve) => setTimeout(resolve, 10));
await new Promise((resolve2) => setTimeout(resolve2, 10));
if (this.resolve)
this.resolve(void 0);
}
@ -39799,8 +39851,8 @@ var IgnoreModal = class extends import_obsidian23.Modal {
}
open() {
super.open();
return new Promise((resolve) => {
this.resolve = resolve;
return new Promise((resolve2) => {
this.resolve = resolve2;
});
}
onOpen() {
@ -39847,8 +39899,8 @@ var DiscardModal = class extends import_obsidian24.Modal {
}
myOpen() {
this.open();
return new Promise((resolve) => {
this.resolve = resolve;
return new Promise((resolve2) => {
this.resolve = resolve2;
});
}
onOpen() {
@ -39896,10 +39948,10 @@ var DiscardModal = class extends import_obsidian24.Modal {
init_polyfill_buffer();
var import_obsidian26 = require("obsidian");
// node_modules/.pnpm/github.com+Vinzent03+obsidian-community-lib@e663de4f95c879b40613090da78ea599ff621d24_@codemir_xyncsguozhhawq25qkwtwp76my/node_modules/obsidian-community-lib/dist/index.js
// node_modules/.pnpm/obsidian-community-lib@https+++codeload.github.com+Vinzent03+obsidian-community-lib+tar.gz+e6_dmashd4lm54vdqd2gnfngnqe2m/node_modules/obsidian-community-lib/dist/index.js
init_polyfill_buffer();
// node_modules/.pnpm/github.com+Vinzent03+obsidian-community-lib@e663de4f95c879b40613090da78ea599ff621d24_@codemir_xyncsguozhhawq25qkwtwp76my/node_modules/obsidian-community-lib/dist/utils.js
// node_modules/.pnpm/obsidian-community-lib@https+++codeload.github.com+Vinzent03+obsidian-community-lib+tar.gz+e6_dmashd4lm54vdqd2gnfngnqe2m/node_modules/obsidian-community-lib/dist/utils.js
init_polyfill_buffer();
var feather = __toESM(require_feather());
var import_obsidian25 = require("obsidian");
@ -44105,7 +44157,7 @@ var ObsidianGit = class extends import_obsidian31.Plugin {
this.addCommand({
id: "set-upstream-branch",
name: "Set upstream branch",
callback: async () => this.setUpsreamBranch()
callback: async () => this.setUpstreamBranch()
});
this.addCommand({
id: "delete-repo",
@ -44586,10 +44638,11 @@ var ObsidianGit = class extends import_obsidian31.Plugin {
fromAutoBackup,
requestCustomMessage,
commitMessage
}))
})) {
return;
}
if (!this.settings.disablePush) {
if (await this.gitManager.canPush()) {
if (await this.remotesAreSet() && await this.gitManager.canPush()) {
if (this.settings.syncMethod != "reset" && this.settings.pullBeforePush) {
await this.pull();
}
@ -44917,11 +44970,11 @@ var ObsidianGit = class extends import_obsidian31.Plugin {
}
if (!(await this.gitManager.branchInfo()).tracking) {
new import_obsidian31.Notice("No upstream branch is set. Please select one.");
return await this.setUpsreamBranch();
return await this.setUpstreamBranch();
}
return true;
}
async setUpsreamBranch() {
async setUpstreamBranch() {
const remoteBranch = await this.selectRemoteBranch();
if (remoteBranch == void 0) {
this.displayError("Aborted. No upstream-branch is set!", 1e4);

View File

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

View File

@ -549,3 +549,10 @@
padding: 0px 6px 0px 6px;
white-space: pre; /* Keep spaces and do not collapse them. */
}
@media(max-width:800px){
/* hide git blame gutter not to superpose text */
.cm-gutterElement.obs-git-blame-gutter {
display: none;
}
}

File diff suppressed because one or more lines are too long

View File

@ -1,8 +1,8 @@
{
"id": "obsidian-hider",
"name": "Hider",
"version": "1.3.1",
"minAppVersion": "1.4.0",
"version": "1.4.0",
"minAppVersion": "1.6.0",
"description": "Hide UI elements such as tooltips, status, titlebar and more",
"author": "@kepano",
"authorUrl": "https://www.twitter.com/kepano",

View File

@ -1,5 +1,6 @@
/* Hides vault name */
.hider-vault .nav-folder.mod-root > .nav-folder-title .nav-folder-title-content {
.hider-vault .workspace-sidedock-vault-profile,
body.hider-vault:not(.is-mobile) .workspace-split.mod-left-split .workspace-sidedock-vault-profile {
display:none;
}
@ -17,25 +18,6 @@
padding-right: 4px;
}
/* Hide ribbon */
.hider-ribbon.mod-macos.is-hidden-frameless:not(.is-fullscreen):not(.is-popout-window) .workspace-tabs.mod-top-left-space .workspace-tab-header-container {
padding-left: calc(var(--frame-left-space) + var(--ribbon-width));
}
.hider-ribbon .workspace-ribbon.mod-left {
display:none;
}
.hider-ribbon .workspace-ribbon.mod-right {
visibility:hidden;
position:absolute;
}
.hider-ribbon .workspace-split.mod-right-split {
margin-right:0;
}
.hider-ribbon .workspace-split.mod-left-split {
margin-left:0;
}
/* Hide meta */
.hider-meta .markdown-reading-view .metadata-container {
display:none;

View File

@ -13,7 +13,25 @@
"state": {
"type": "markdown",
"state": {
"file": "3-lines-interlinear.md",
"file": "60-1Peter/1Pe.1.1-2.md",
"mode": "source",
"source": true
}
}
}
]
},
{
"id": "95d05cefedc85936",
"type": "tabs",
"children": [
{
"id": "afff19aad2514f17",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "60-1Peter/1Pe.1.1-2.md",
"mode": "source",
"source": true
}
@ -93,7 +111,7 @@
"state": {
"type": "outline",
"state": {
"file": "3-lines-interlinear.md"
"file": "60-1Peter/1Pe.1.1-2.md"
}
}
},
@ -114,7 +132,7 @@
"state": {
"type": "backlink",
"state": {
"file": "3-lines-interlinear.md",
"file": "60-1Peter/1Pe.1.1-2.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
@ -131,7 +149,7 @@
"state": {
"type": "outgoing-link",
"state": {
"file": "3-lines-interlinear.md",
"file": "60-1Peter/1Pe.1.1-2.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
}
@ -163,11 +181,16 @@
"canvas:Create new canvas": false,
"templates:Insert template": false,
"command-palette:Open command palette": false,
"workspaces:Manage workspace layouts": false
"workspaces:Manage workspace layouts": false,
"vscode-editor:Create Code File": false
}
},
"active": "28e346bdaef54f4f",
"lastOpenFiles": [
"My code file.ts",
"60-1Peter/1Pe.1.1-2.md",
"3-lines-interlinear.md",
"60-1Peter/1Peter-Notes.md",
"48-Galatians/Gal.1.1-5.md",
"45-Romans/Rom.1-7.md",
"45-Romans/Romans-Notes.md",
@ -179,7 +202,6 @@
"47-2Corinthians/2Co.3.1-6.md",
"57-Philemon/Phm-Notes.md",
"57-Philemon/Phm.1.4-7.md",
"60-1Peter/1Pe.1.1-2.md",
"60-1Peter/1Pe.1.3-9.md",
"50-Philippians/Php.2.1-11.md",
"48-Galatians/Gal.1.18-24.md",
@ -187,13 +209,10 @@
"48-Galatians/Gal.1.6-9.md",
"45-Romans/Rom.4.1-8.md",
"45-Romans/Untitled.md",
"60-1Peter/1Peter-Notes.md",
"60-1Peter/1Peter-Interlinear-TC.md",
"46-1Corinthians/1Co.11.17-28.md",
"UNICODE.md",
"60-1Peter/1Pe.2.13-17.md",
"README.md",
"45-Romans/Rom.11.2.md",
"42-Luke",
"images/Pasted image 20231211062635.png",
"images/Pasted image 20231206094330.png",

View File

@ -1,4 +1,7 @@
#### 圖析 (1Pe 1:1-2)
### 經文 (1Pe 1:1-2)
1PE 1:1 <span title="N-NSM&#10;彼得&#10;Πέτρος">Πέτρος</span> <span title="N-NSM&#10;使徒&#10;ἀπόστολος">ἀπόστολος</span> <span title="N-GSM&#10;耶稣&#10;Ἰησοῦς">Ἰησοῦ</span> <span title="N-GSM&#10;基督&#10;Χριστός">Χριστοῦ</span> <span title="A-DPM&#10;被拣选&#10;ἐκλεκτός">ἐκλεκτοῖς</span> <span title="A-DPM&#10;寄居的&#10;παρεπίδημος">παρεπιδήμοις</span> <span title="N-GSF&#10;分散&#10;διασπορά">διασπορᾶς</span> <span title="N-GSM&#10;本都&#10;Πόντος">Πόντου</span> <mark class="pm">,</mark> <span title="N-GSF&#10;加拉太&#10;Γαλατία">Γαλατίας</span> <mark class="pm">,</mark> <span title="N-GSF&#10;加帕多家&#10;Καππαδοκία">Καππαδοκίας</span> <mark class="pm">,</mark> <span title="N-GSF&#10;亚细亚&#10;Ἀσία">Ἀσίας</span> <mark class="pm">,</mark> <span title="CONJ&#10;和&#10;καί">καὶ</span> <span title="N-GSF&#10;庇推尼&#10;Βιθυνία">Βιθυνίας</span> <mark class="pm">,</mark> 1PE 1:2 <span title="PREP&#10;照&#10;κατά">κατὰ</span> <span title="N-ASF&#10;预知&#10;πρόγνωσις">πρόγνωσιν</span> <span title="N-GSM&#10;神&#10;θεός">θεοῦ</span> <span title="N-GSM&#10;父&#10;πατήρ">πατρός</span> <mark class="pm">,</mark> <span title="PREP&#10;藉着&#10;ἐν">ἐν</span> <span title="N-DSM&#10;净化&#10;ἁγιασμός">ἁγιασμῷ</span> <span title="N-GSN&#10;圣灵&#10;πνεῦμα">πνεύματος</span> <mark class="pm">,</mark> <span title="PREP&#10;以致&#10;εἰς">εἰς</span> <span title="N-ASF&#10;顺服&#10;ὑπακοή">ὑπακοὴν</span> <span title="CONJ&#10;又&#10;καί">καὶ</span> <span title="N-ASM&#10;洒&#10;ῥαντισμός">ῥαντισμὸν</span> <span title="N-GSN&#10;血&#10;αἷμα">αἵματος</span> <span title="N-GSM&#10;耶稣&#10;Ἰησοῦς">Ἰησοῦ</span> <span title="N-GSM&#10;基督&#10;Χριστός">Χριστοῦ</span> <mark class="pm">·</mark> <span title="N-NSF&#10;恩惠&#10;χάρις">χάρις</span> <span title="P-2DP&#10;你们&#10;σύ">ὑμῖν</span> <span title="CONJ&#10;和&#10;καί">καὶ</span> <span title="N-NSF&#10;平安&#10;εἰρήνη">εἰρήνη</span> <span title="V-APO-3S&#10;多多地加&#10;πληθύνω"><strong>πληθυνθείη</strong></span> <mark class="pm">.</mark>
### 圖析 (1Pe 1:1-2)
1PE 1:1 <RUBY><ruby><ruby>Πέτρος<rt>Πέτρος</rt></ruby><rt>彼得</rt></ruby><rt>N-NSM</rt></RUBY> <RUBY><ruby><ruby>ἀπόστολος<rt>ἀπόστολος</rt></ruby><rt>使徒</rt></ruby><rt>N-NSM</rt></RUBY> <RUBY><ruby><ruby>Ἰησοῦ<rt>Ἰησοῦς</rt></ruby><rt>耶稣</rt></ruby><rt>N-GSM</rt></RUBY> <RUBY><ruby><ruby>Χριστοῦ<rt>Χριστός</rt></ruby><rt>基督</rt></ruby><rt>N-GSM</rt></RUBY> <RUBY><ruby><ruby>ἐκλεκτοῖς<rt>ἐκλεκτός</rt></ruby><rt>被拣选</rt></ruby><rt>A-DPM</rt></RUBY> <RUBY><ruby><ruby>παρεπιδήμοις<rt>παρεπίδημος</rt></ruby><rt>寄居的</rt></ruby><rt>A-DPM</rt></RUBY> <RUBY><ruby><ruby>διασπορᾶς<rt>διασπορά</rt></ruby><rt>分散</rt></ruby><rt>N-GSF</rt></RUBY> <RUBY><ruby><ruby>Πόντου<rt>Πόντος</rt></ruby><rt>本都</rt></ruby><rt>N-GSM</rt></RUBY> <mark class="pm">,</mark> <RUBY><ruby><ruby>Γαλατίας<rt>Γαλατία</rt></ruby><rt>加拉太</rt></ruby><rt>N-GSF</rt></RUBY> <mark class="pm">,</mark> <RUBY><ruby><ruby>Καππαδοκίας<rt>Καππαδοκία</rt></ruby><rt>加帕多家</rt></ruby><rt>N-GSF</rt></RUBY> <mark class="pm">,</mark> <RUBY><ruby><ruby>Ἀσίας<rt>Ἀσία</rt></ruby><rt>亚细亚</rt></ruby><rt>N-GSF</rt></RUBY> <mark class="pm">,</mark> <RUBY><ruby><ruby>καὶ<rt>καί</rt></ruby><rt></rt></ruby><rt>CONJ</rt></RUBY> <RUBY><ruby><ruby>Βιθυνίας<rt>Βιθυνία</rt></ruby><rt>庇推尼</rt></ruby><rt>N-GSF</rt></RUBY> <mark class="pm">,</mark> 1PE 1:2 <RUBY><ruby><ruby>κατὰ<rt>κατά</rt></ruby><rt></rt></ruby><rt>PREP</rt></RUBY> <RUBY><ruby><ruby>πρόγνωσιν<rt>πρόγνωσις</rt></ruby><rt>预知</rt></ruby><rt>N-ASF</rt></RUBY> <RUBY><ruby><ruby>θεοῦ<rt>θεός</rt></ruby><rt></rt></ruby><rt>N-GSM</rt></RUBY> <RUBY><ruby><ruby>πατρός<rt>πατήρ</rt></ruby><rt></rt></ruby><rt>N-GSM</rt></RUBY> <mark class="pm">,</mark> <RUBY><ruby><ruby>ἐν<rt>ἐν</rt></ruby><rt>藉着</rt></ruby><rt>PREP</rt></RUBY> <RUBY><ruby><ruby>ἁγιασμῷ<rt>ἁγιασμός</rt></ruby><rt>净化</rt></ruby><rt>N-DSM</rt></RUBY> <RUBY><ruby><ruby>πνεύματος<rt>πνεῦμα</rt></ruby><rt>圣灵</rt></ruby><rt>N-GSN</rt></RUBY> <mark class="pm">,</mark> <RUBY><ruby><ruby>εἰς<rt>εἰς</rt></ruby><rt>以致</rt></ruby><rt>PREP</rt></RUBY> <RUBY><ruby><ruby>ὑπακοὴν<rt>ὑπακοή</rt></ruby><rt>顺服</rt></ruby><rt>N-ASF</rt></RUBY> <RUBY><ruby><ruby>καὶ<rt>καί</rt></ruby><rt></rt></ruby><rt>CONJ</rt></RUBY> <RUBY><ruby><ruby>ῥαντισμὸν<rt>ῥαντισμός</rt></ruby><rt></rt></ruby><rt>N-ASM</rt></RUBY> <RUBY><ruby><ruby>αἵματος<rt>αἷμα</rt></ruby><rt></rt></ruby><rt>N-GSN</rt></RUBY> <RUBY><ruby><ruby>Ἰησοῦ<rt>Ἰησοῦς</rt></ruby><rt>耶稣</rt></ruby><rt>N-GSM</rt></RUBY> <RUBY><ruby><ruby>Χριστοῦ<rt>Χριστός</rt></ruby><rt>基督</rt></ruby><rt>N-GSM</rt></RUBY> <mark class="pm">·</mark> <RUBY><ruby><ruby>χάρις<rt>χάρις</rt></ruby><rt>恩惠</rt></ruby><rt>N-NSF</rt></RUBY> <RUBY><ruby><ruby>ὑμῖν<rt>σύ</rt></ruby><rt>你们</rt></ruby><rt>P-2DP</rt></RUBY> <RUBY><ruby><ruby>καὶ<rt>καί</rt></ruby><rt></rt></ruby><rt>CONJ</rt></RUBY> <RUBY><ruby><ruby>εἰρήνη<rt>εἰρήνη</rt></ruby><rt>平安</rt></ruby><rt>N-NSF</rt></RUBY> <RUBY><ruby><ruby><strong>πληθυνθείη</strong><rt>πληθύνω</rt></ruby><rt>多多地加</rt></ruby><rt>V-APO-3S</rt></RUBY> <mark class="pm">.</mark>
- 1:1a (<RUBY><ruby><ruby>Πέτρος<rt>Πέτρος</rt></ruby><rt>Peter</rt></ruby><rt>N-NSM</rt></RUBY>)S (<RUBY><ruby><ruby>ἀπόστολος<rt>ἀπόστολος</rt></ruby><rt>an apostle</rt></ruby><rt>N-NSM</rt></RUBY> <RUBY><ruby><ruby>Ἰησοῦ<rt>Ἰησοῦς</rt></ruby><rt>of Jesus</rt></ruby><rt>N-GSM</rt></RUBY> <RUBY><ruby><ruby>Χριστοῦ<rt>Χριστός</rt></ruby><rt>Christ</rt></ruby><rt>N-GSM</rt></RUBY>)=S (<mark><RUBY><ruby><ruby>Ἐκλεκτοῖς<rt>ἐκλεκτός</rt></ruby><rt>To [the] elect</rt></ruby><rt>A-DPM</rt></RUBY> <RUBY><ruby><ruby>παρεπιδήμοις<rt>παρεπίδημος</rt></ruby><rt>sojourners</rt></ruby><rt>A-DPM</rt></RUBY>°¹</mark>)C
- 1:1b (<RUBY><ruby><ruby>Διασπορᾶς<rt>διασπορά</rt></ruby><rt>of [the] Dispersion</rt></ruby><rt>N-GSF</rt></RUBY> <RUBY><ruby><ruby>Πόντου <mark class="pm">,</mark><rt>Πόντος</rt></ruby><rt>of Pontus</rt></ruby><rt>N-GSM</rt></RUBY> <RUBY><ruby><ruby>Γαλατίας <mark class="pm">,</mark><rt>Γαλατία</rt></ruby><rt>Galatia</rt></ruby><rt>N-GSF</rt></RUBY> <RUBY><ruby><ruby>Καππαδοκίας <mark class="pm">,</mark><rt>Καππαδοκία</rt></ruby><rt>Cappadocia</rt></ruby><rt>N-GSF</rt></RUBY> <RUBY><ruby><ruby>Ἀσίας<rt>Ἀσία</rt></ruby><rt>Asia</rt></ruby><rt>N-GSF</rt></RUBY> <RUBY><ruby><ruby>καὶ<rt>καί</rt></ruby><rt>and</rt></ruby><rt>CONJ</rt></RUBY> <RUBY><ruby><ruby>Βιθυνίας<rt>Βιθυνία</rt></ruby><rt>Bithynia</rt></ruby><rt>N-GSF</rt></RUBY> )°¹⮥

1
My code file.ts Normal file
View File

@ -0,0 +1 @@
1PE 1:1 <RUBY><ruby><ruby>Πέτρος<rt>Πέτρος</rt></ruby><rt></rt></ruby><rt>N-NSM</rt></RUBY> <RUBY><ruby><ruby>πόστολος<rt>πόστολος</rt></ruby><rt>使</rt></ruby><rt>N-NSM</rt></RUBY> <RUBY><ruby><ruby>ησο<rt>ησος</rt></ruby><rt></rt></ruby><rt>N-GSM</rt></RUBY> <RUBY><ruby><ruby>Χριστο<rt>Χριστός</rt></ruby><rt></rt></ruby><rt>N-GSM</rt></RUBY> <RUBY><ruby><ruby>κλεκτος<rt>κλεκτός</rt></ruby><rt></rt></ruby><rt>A-DPM</rt></RUBY> <RUBY><ruby><ruby>παρεπιδήμοις<rt>παρεπίδημος</rt></ruby><rt></rt></ruby><rt>A-DPM</rt></RUBY> <RUBY><ruby><ruby>διασπορς<rt>διασπορά</rt></ruby><rt></rt></ruby><rt>N-GSF</rt></RUBY> <RUBY><ruby><ruby>Πόντου<rt>Πόντος</rt></ruby><rt></rt></ruby><rt>N-GSM</rt></RUBY> <mark class="pm">,</mark> <RUBY><ruby><ruby>Γαλατίας<rt>Γαλατία</rt></ruby><rt></rt></ruby><rt>N-GSF</rt></RUBY> <mark class="pm">,</mark> <RUBY><ruby><ruby>Καππαδοκίας<rt>Καππαδοκία</rt></ruby><rt></rt></ruby><rt>N-GSF</rt></RUBY> <mark class="pm">,</mark> <RUBY><ruby><ruby>σίας<rt>σία</rt></ruby><rt></rt></ruby><rt>N-GSF</rt></RUBY> <mark class="pm">,</mark> <RUBY><ruby><ruby>κα<rt>καί</rt></ruby><rt></rt></ruby><rt>CONJ</rt></RUBY> <RUBY><ruby><ruby>Βιθυνίας<rt>Βιθυνία</rt></ruby><rt></rt></ruby><rt>N-GSF</rt></RUBY> <mark class="pm">,</mark> 1PE 1:2 <RUBY><ruby><ruby>κατ<rt>κατά</rt></ruby><rt></rt></ruby><rt>PREP</rt></RUBY> <RUBY><ruby><ruby>πρόγνωσιν<rt>πρόγνωσις</rt></ruby><rt></rt></ruby><rt>N-ASF</rt></RUBY> <RUBY><ruby><ruby>θεο<rt>θεός</rt></ruby><rt></rt></ruby><rt>N-GSM</rt></RUBY> <RUBY><ruby><ruby>πατρός<rt>πατήρ</rt></ruby><rt></rt></ruby><rt>N-GSM</rt></RUBY> <mark class="pm">,</mark> <RUBY><ruby><ruby>ν<rt>ν</rt></ruby><rt></rt></ruby><rt>PREP</rt></RUBY> <RUBY><ruby><ruby>γιασμ<rt>γιασμός</rt></ruby><rt></rt></ruby><rt>N-DSM</rt></RUBY> <RUBY><ruby><ruby>πνεύματος<rt>πνεμα</rt></ruby><rt></rt></ruby><rt>N-GSN</rt></RUBY> <mark class="pm">,</mark> <RUBY><ruby><ruby>ες<rt>ες</rt></ruby><rt></rt></ruby><rt>PREP</rt></RUBY> <RUBY><ruby><ruby>πακον<rt>πακοή</rt></ruby><rt></rt></ruby><rt>N-ASF</rt></RUBY> <RUBY><ruby><ruby>κα<rt>καί</rt></ruby><rt></rt></ruby><rt>CONJ</rt></RUBY> <RUBY><ruby><ruby>αντισμν<rt>αντισμός</rt></ruby><rt></rt></ruby><rt>N-ASM</rt></RUBY> <RUBY><ruby><ruby>αματος<rt>αμα</rt></ruby><rt></rt></ruby><rt>N-GSN</rt></RUBY> <RUBY><ruby><ruby>ησο<rt>ησος</rt></ruby><rt></rt></ruby><rt>N-GSM</rt></RUBY> <RUBY><ruby><ruby>Χριστο<rt>Χριστός</rt></ruby><rt></rt></ruby><rt>N-GSM</rt></RUBY> <mark class="pm">·</mark> <RUBY><ruby><ruby>χάρις<rt>χάρις</rt></ruby><rt></rt></ruby><rt>N-NSF</rt></RUBY> <RUBY><ruby><ruby>μν<rt>σύ</rt></ruby><rt></rt></ruby><rt>P-2DP</rt></RUBY> <RUBY><ruby><ruby>κα<rt>καί</rt></ruby><rt></rt></ruby><rt>CONJ</rt></RUBY> <RUBY><ruby><ruby>ερήνη<rt>ερήνη</rt></ruby><rt></rt></ruby><rt>N-NSF</rt></RUBY> <RUBY><ruby><ruby><strong>πληθυνθείη</strong><rt>πληθύνω</rt></ruby><rt></rt></ruby><rt>V-APO-3S</rt></RUBY> <mark class="pm">.</mark>