vault backup: 2023-09-13 09:35:26

Affected files:
.obsidian/community-plugins.json
.obsidian/plugins/control-characters/data.json
.obsidian/plugins/control-characters/main.js
.obsidian/plugins/control-characters/manifest.json
.obsidian/plugins/control-characters/styles.css
.obsidian/plugins/obsidian-hider/data.json
.obsidian/workspace.json
BG4E-ExpPreaching/JesusChrist-vs-ChristJesus.md
BG4E-ExpPreaching/Sermon-1-Key.md
images/00015.png
images/DFNTG-cover.png
images/DGGNT-cover.png
images/Mounce-Reader2.png
images/Pasted image 20210803200538.png
This commit is contained in:
Andley Chang 2023-09-13 09:35:26 +08:00
parent 92bcb1c288
commit ad1c92b848
14 changed files with 433 additions and 49 deletions

View File

@ -3,5 +3,6 @@
"obsidian-hider",
"obsidian-tidy-footnotes",
"obsidian-git",
"wikilinks-to-mdlinks-obsidian"
"wikilinks-to-mdlinks-obsidian",
"control-characters"
]

View File

@ -0,0 +1,7 @@
{
"newLine": false,
"tab": true,
"space": true,
"enabled": true,
"selection": false
}

View File

@ -0,0 +1,331 @@
/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
https://github.com/joethei/obsidian-non-printing-chars
*/
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());
});
};
// src/main.ts
__export(exports, {
default: () => ControlCharacterPlugin
});
var import_obsidian4 = __toModule(require("obsidian"));
var import_state2 = __toModule(require("@codemirror/state"));
// src/SettingsTab.ts
var import_obsidian = __toModule(require("obsidian"));
var ControlCharactersSettingsTab = class extends import_obsidian.PluginSettingTab {
constructor(plugin) {
super(plugin.app, plugin);
this.plugin = plugin;
}
display() {
const { containerEl } = this;
containerEl.empty();
containerEl.createEl("h2", { text: "Control Characters" });
new import_obsidian.Setting(containerEl).setName("Only show control characters in selection").addToggle((toggle) => {
toggle.setValue(this.plugin.settings.selection).onChange((value) => __async(this, null, function* () {
this.plugin.settings.selection = value;
yield this.plugin.saveSettings();
}));
});
containerEl.createEl("h3", { text: "Show" });
new import_obsidian.Setting(containerEl).setName("Space").addToggle((toggle) => {
toggle.setValue(this.plugin.settings.space).onChange((value) => __async(this, null, function* () {
this.plugin.settings.space = value;
yield this.plugin.saveSettings();
}));
});
new import_obsidian.Setting(containerEl).setName("Tab").addToggle((toggle) => {
toggle.setValue(this.plugin.settings.tab).onChange((value) => __async(this, null, function* () {
this.plugin.settings.tab = value;
yield this.plugin.saveSettings();
}));
});
new import_obsidian.Setting(containerEl).setName("New line").addToggle((toggle) => {
toggle.setValue(this.plugin.settings.newLine).onChange((value) => __async(this, null, function* () {
this.plugin.settings.newLine = value;
yield this.plugin.saveSettings();
}));
});
}
};
// src/NormalDecoration.ts
var import_view3 = __toModule(require("@codemirror/view"));
// src/StatefulDecoration.ts
var import_state = __toModule(require("@codemirror/state"));
var import_view = __toModule(require("@codemirror/view"));
var statefulDecorations = defineStatefulDecoration();
function defineStatefulDecoration() {
const update = import_state.StateEffect.define();
const field = import_state.StateField.define({
create() {
return import_view.Decoration.none;
},
update(deco, tr) {
return tr.effects.reduce((deco2, effect) => effect.is(update) ? effect.value : deco2, deco.map(tr.changes));
},
provide: (field2) => import_view.EditorView.decorations.from(field2)
});
return { update, field };
}
// src/StatefulDecorationSet.ts
var import_view2 = __toModule(require("@codemirror/view"));
var import_obsidian2 = __toModule(require("obsidian"));
var StatefulDecorationSet = class {
constructor(editor) {
this.decoCache = Object.create(null);
this.debouncedUpdate = (0, import_obsidian2.debounce)(this.updateAsyncDecorations, 10, true);
this.editor = editor;
}
computeAsyncDecorations(tokens) {
return __async(this, null, function* () {
const decorations = [];
for (const token of tokens) {
let deco = this.decoCache[token.value];
if (!deco) {
deco = this.decoCache[token.value] = import_view2.Decoration.mark({
class: "control-character",
attributes: { type: token.value }
});
}
decorations.push(deco.range(token.from, token.to));
}
return import_view2.Decoration.set(decorations, true);
});
}
updateAsyncDecorations(tokens) {
return __async(this, null, function* () {
const decorations = yield this.computeAsyncDecorations(tokens);
if (decorations || this.editor.state.field(statefulDecorations.field).size) {
this.editor.dispatch({ effects: statefulDecorations.update.of(decorations || import_view2.Decoration.none) });
}
});
}
};
// src/FrontmatterParser.ts
var import_obsidian3 = __toModule(require("obsidian"));
function parseFrontmatter(view, settings) {
const result = {
enabled: settings.enabled,
newLine: settings.newLine,
selection: settings.selection,
space: settings.space,
tab: settings.tab
};
const matches = view.state.sliceDoc().match(/---([\s\S]*?)---/);
if (matches && matches.length !== 0) {
for (const match of matches) {
const replaced = match.replace(/---/g, "");
try {
const frontmatter = (0, import_obsidian3.parseYaml)(replaced);
if (frontmatter.hasOwnProperty("cc")) {
result.enabled = frontmatter.cc;
}
if (frontmatter.hasOwnProperty("cc-tab")) {
result.tab = frontmatter["cc-tab"];
}
if (frontmatter.hasOwnProperty("cc-newline")) {
result.newLine = frontmatter["cc-newline"];
}
if (frontmatter.hasOwnProperty("cc-space")) {
result.space = frontmatter["cc-space"];
}
if (frontmatter.hasOwnProperty("cc-selection")) {
result.selection = frontmatter["cc-selection"];
}
} catch (e) {
}
}
}
return result;
}
// src/NormalDecoration.ts
function buildViewPlugin(plugin) {
return import_view3.ViewPlugin.fromClass(class {
constructor(view) {
this.decoManager = new StatefulDecorationSet(view);
this.buildAsyncDecorations(view, plugin.settings);
}
update(update) {
if (update.docChanged || update.viewportChanged) {
const frontmatter = parseFrontmatter(update.view, plugin.settings);
if (!frontmatter.enabled || frontmatter.selection) {
this.decoManager.debouncedUpdate([]);
return;
}
this.buildAsyncDecorations(update.view, frontmatter);
}
}
buildAsyncDecorations(view, settings) {
const targetElements = [];
for (const { from, to } of view.visibleRanges) {
targetElements.push(...plugin.getTokens(view, from, to, settings));
}
this.decoManager.debouncedUpdate(targetElements);
}
});
}
function normalDecoration(plugin) {
return [statefulDecorations.field, buildViewPlugin(plugin)];
}
// src/settings.ts
var DEFAULT_SETTINGS = {
newLine: true,
tab: true,
space: true,
enabled: true,
selection: false
};
// src/SelectionHighlight.ts
var import_view4 = __toModule(require("@codemirror/view"));
function buildViewPlugin2(plugin) {
return import_view4.ViewPlugin.fromClass(class {
constructor(view) {
this.decoManager = new StatefulDecorationSet(view);
const frontmatter = parseFrontmatter(view, plugin.settings);
if (!frontmatter.selection) {
return;
}
this.buildAsyncDecorations(view, parseFrontmatter(view, plugin.settings));
}
update(update) {
const frontmatter = parseFrontmatter(update.view, plugin.settings);
if (!frontmatter.selection) {
return;
}
if (update.selectionSet || update.docChanged || update.viewportChanged) {
this.buildAsyncDecorations(update.view, frontmatter);
}
}
buildAsyncDecorations(view, settings) {
const targetElements = [];
for (const range of view.state.selection.ranges) {
targetElements.push(...plugin.getTokens(view, range.from, range.to, settings));
}
this.decoManager.debouncedUpdate(targetElements);
}
});
}
function selectionDecorations(plugin) {
return [statefulDecorations.field, buildViewPlugin2(plugin)];
}
// src/types.ts
var ControlCharacter;
(function(ControlCharacter2) {
ControlCharacter2["NEWLINE"] = "newline";
ControlCharacter2["SPACE"] = "space";
ControlCharacter2["TAB"] = "tab";
ControlCharacter2["OTHER"] = "other";
})(ControlCharacter || (ControlCharacter = {}));
// src/main.ts
var ControlCharacterPlugin = class extends import_obsidian4.Plugin {
onload() {
return __async(this, null, function* () {
if (!this.app.vault.getConfig("legacyEditor")) {
yield this.loadSettings();
this.registerEditorExtension(import_state2.Prec.lowest(normalDecoration(this)));
this.registerEditorExtension(import_state2.Prec.lowest(selectionDecorations(this)));
this.addSettingTab(new ControlCharactersSettingsTab(this));
this.addCommand({
id: "toggle",
name: "Show/hide control characters",
callback: () => __async(this, null, function* () {
this.settings.enabled = !this.settings.enabled;
console.log(this.settings.enabled);
yield this.saveSettings();
this.app.workspace.updateOptions();
})
});
this.app.workspace.trigger("parse-style-settings");
} else {
new import_obsidian4.Notice("Control Characters: You are using the legacy editor, this plugin is not supported there");
}
});
}
onunload() {
}
loadSettings() {
return __async(this, null, function* () {
this.settings = Object.assign({}, DEFAULT_SETTINGS, yield this.loadData());
});
}
saveSettings() {
return __async(this, null, function* () {
yield this.saveData(this.settings);
});
}
getTokens(view, from, to, settings) {
const targetElements = [];
const text = view.state.sliceDoc(from, to);
for (const match of text.matchAll(/[\u00A0\u202F\u2007\u2060\s]/gu)) {
const index = from + match.index;
if (match.toString() === "\n" && settings.newLine) {
targetElements.push({ from: index - 1, to: index, value: ControlCharacter.NEWLINE });
continue;
}
let value;
if (match.toString() === " " && settings.tab) {
value = ControlCharacter.TAB;
} else if (match.toString() === " " && settings.space) {
value = ControlCharacter.SPACE;
} else {
value = ControlCharacter.OTHER;
}
targetElements.push({ from: index, to: index + 1, value });
}
return targetElements;
}
};

View File

@ -0,0 +1,10 @@
{
"id": "control-characters",
"name": "Control Characters",
"version": "0.3.0",
"minAppVersion": "0.15.0",
"description": "Show control/non-printing characters in edit mode",
"author": "Johannes Theiner",
"authorUrl": "https://github.com/joethei",
"isDesktopOnly": false
}

View File

@ -0,0 +1,43 @@
/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
https://github.com/joethei/obsidian-non-printing-chars
*/body{--control-character-color:var(--interactive-accent);--control-character-space:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M12 18a6 6 0 1 0 0-12 6 6 0 0 0 0 12z'/%3E%3C/svg%3E");--control-character-tab:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 24 24'%3E%3Cpath d='M12.29 8.12 15.17 11H2c-.55 0-1 .45-1 1s.45 1 1 1h13.17l-2.88 2.88a.996.996 0 1 0 1.41 1.41l4.59-4.59a.996.996 0 0 0 0-1.41L13.7 6.7a.996.996 0 0 0-1.41 0c-.38.39-.39 1.03 0 1.42zM20 7v10c0 .55.45 1 1 1s1-.45 1-1V7c0-.55-.45-1-1-1s-1 .45-1 1z'/%3E%3C/svg%3E");--control-character-newline:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='.84em' height='1em' viewBox='0 0 1280 1536'%3E%3Cpath fill='currentColor' d='M1278 61v73q0 29-18.5 61t-42.5 32q-50 0-54 1-26 6-32 31-3 11-3 64v1152q0 25-18 43t-43 18H959q-25 0-43-18t-18-43V257H755v1218q0 25-17.5 43t-43.5 18H586q-26 0-43.5-18t-17.5-43V979q-147-12-245-59-126-58-192-179-64-117-64-259 0-166 88-286Q200 78 321 37 432 0 738 0h479q25 0 43 18t18 43z'/%3E%3C/svg%3E");--control-character-other:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 24 24'%3E%3Crect width='20' height='20' x='2' y='2' fill='currentColor' rx='2'/%3E%3C/svg%3E")}
/* @settings
name: Control Characters
id: control-characters
settings:
-
id: control-character-color
title: Color
type: variable-themed-color
format: hex
default-light: '#007AFF'
default-dark: '#007AFF'
-
id: control-character-space
title: Symbol for space
description: Icon SVG URI encoded
type: variable-text
default: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M12 18a6 6 0 1 0 0-12a6 6 0 0 0 0 12z"%2F%3E%3C%2Fsvg%3E')
-
id: control-character-tab
title: Symbol for tab
type: variable-text
description: Icon SVG URI encoded
default: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"%3E%3Cpath d="M12.29 8.12L15.17 11H2c-.55 0-1 .45-1 1s.45 1 1 1h13.17l-2.88 2.88a.996.996 0 1 0 1.41 1.41l4.59-4.59a.996.996 0 0 0 0-1.41L13.7 6.7a.996.996 0 0 0-1.41 0c-.38.39-.39 1.03 0 1.42zM20 7v10c0 .55.45 1 1 1s1-.45 1-1V7c0-.55-.45-1-1-1s-1 .45-1 1z"%2F%3E%3C%2Fsvg%3E')
-
id: control-character-newline
title: Symbol for new line
type: variable-text
description: Icon SVG URI encoded
default: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 20 20"%3E%3Cpath fill="currentColor" d="M15 2H7.54c-.83 0-1.59.2-2.28.6c-.7.41-1.25.96-1.65 1.65C3.2 4.94 3 5.7 3 6.52s.2 1.58.61 2.27c.4.69.95 1.24 1.65 1.64c.69.41 1.45.61 2.28.61h.43V17c0 .27.1.51.29.71c.2.19.44.29.71.29c.28 0 .51-.1.71-.29c.2-.2.3-.44.3-.71V5c0-.27.09-.51.29-.71c.2-.19.44-.29.71-.29s.51.1.71.29c.19.2.29.44.29.71v12c0 .27.1.51.3.71c.2.19.43.29.71.29c.27 0 .51-.1.71-.29c.19-.2.29-.44.29-.71V4H15c.27 0 .5-.1.7-.3c.2-.19.3-.43.3-.7s-.1-.51-.3-.71A.984.984 0 0 0 15 2z"%2F%3E%3C%2Fsvg%3E')
-
id: control-character-other
title: Symbol for other non printing control characters
type: variable-text
description: Icon SVG URI encoded
default: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"%3E%3Crect width="20" height="20" x="2" y="2" fill="currentColor" rx="2"%2F%3E%3C%2Fsvg%3E')
*/.control-character[type=newline]:after{content:" ";-webkit-mask-image:var(--control-character-newline);mask-image:var(--control-character-newline)}.control-character[type=newline]:after,.control-character[type=space]{background:var(--control-character-color);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.control-character[type=space]{-webkit-mask-image:var(--control-character-space);mask-image:var(--control-character-space)}.control-character[type=tab]{-webkit-mask-image:var(--control-character-tab);mask-image:var(--control-character-tab)}.control-character[type=other],.control-character[type=tab]{background:var(--control-character-color);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.control-character[type=other]{-webkit-mask-image:var(--control-character-other);mask-image:var(--control-character-other);-webkit-mask-size:unset;mask-size:unset}

View File

@ -1,5 +1,5 @@
{
"hideRibbon": false,
"hideRibbon": true,
"hideStatus": false,
"hideTabs": true,
"hideScroll": false,
@ -9,7 +9,8 @@
"hideSearchSuggestions": false,
"hideSearchCounts": false,
"hideInstructions": false,
"hideMeta": false,
"hidePropertiesReading": false,
"hideVault": false,
"hideMeta": false,
"frameless": false
}

View File

@ -4,31 +4,22 @@
"type": "split",
"children": [
{
"id": "31231bb799c6b46c",
"id": "f1c756dcf5cc5c0b",
"type": "tabs",
"children": [
{
"id": "9d6aaf62d9be9ed1",
"id": "3eaae06956359fca",
"type": "leaf",
"state": {
"type": "image",
"type": "markdown",
"state": {
"file": "images/key.png"
}
}
},
{
"id": "678edf3c19987a83",
"type": "leaf",
"state": {
"type": "release-notes",
"state": {
"currentVersion": "1.4.11"
"file": "BG4E-ExpPreaching/Sermon-1-Key.md",
"mode": "preview",
"source": true
}
}
}
],
"currentTab": 1
]
}
],
"direction": "vertical"
@ -86,7 +77,8 @@
}
],
"direction": "horizontal",
"width": 200
"width": 200,
"collapsed": true
},
"right": {
"id": "1464b72f66019d33",
@ -102,7 +94,7 @@
"state": {
"type": "outline",
"state": {
"file": "images/key.png"
"file": "BG4E-ExpPreaching/Sermon-1-Key.md"
}
}
},
@ -123,7 +115,7 @@
"state": {
"type": "backlink",
"state": {
"file": "images/key.png",
"file": "BG4E-ExpPreaching/Sermon-1-Key.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
@ -140,7 +132,7 @@
"state": {
"type": "outgoing-link",
"state": {
"file": "images/key.png",
"file": "BG4E-ExpPreaching/Sermon-1-Key.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
}
@ -156,12 +148,12 @@
}
}
}
],
"currentTab": 2
]
}
],
"direction": "horizontal",
"width": 362.5
"width": 362.5,
"collapsed": true
},
"left-ribbon": {
"hiddenItems": {
@ -173,20 +165,23 @@
"workspaces:Manage workspace layouts": false
}
},
"active": "678edf3c19987a83",
"active": "3eaae06956359fca",
"lastOpenFiles": [
"images/Mounce-Reader.png",
"images/key.png",
"images/00015.png",
"images/IGNT-cover.png",
"images/IGNT-封面.png",
"images/IGG-cover.png",
"images/icon-Home.png",
"images/Guthrie-Reader.jpg",
"images/GGBB-cover.png",
"images/GGBB-封面.png",
"images/GDNTG-cover.png",
"BG4E-ExpPreaching/Sermon-2.md",
"BG4E-ExpPreaching/Sermon-1-Key.md",
"BG4E-ExpPreaching/Sermon-3.md",
"BG4E-ExpPreaching/Sermon-1.md",
"BG4E-ExpPreaching/JesusChrist-vs-ChristJesus.md",
"images/key.png",
"images/Pasted image 20221208210229.png",
"images/Pasted image 20221208210320.png",
"images/Pasted image 20230317084649.png",
"images/Pasted image 20230317084752.png",
"images/Pasted image 20230403142914.png",
"images/Pasted image 20211020143849.png",
"images/Pasted image 20211020143723.png",
"images/Pasted image 20211018144032.png",
"images/Pasted image 20210918060146.png",
"62-1John/123John-Style.md",
"40-Matthew/Sermon-on-the-Mount.Interlinear.md",
"40-Matthew/Sermon-on-the-Mount.Notes.md",
@ -195,19 +190,15 @@
"40-Matthew/Mat.5.1-2.md",
"40-Matthew/Sermon-on-the-Mount-Interlinear.BIBa.md",
"60-1Peter/1Pe.1.1-2.md",
"BG4E-ExpPreaching/Sermon-1.md",
"46-1Corinthians/1Co.15.1-11.md",
"Phrasing-Signs.md",
"BG4E-ExpPreaching/Sermon-3.md",
"BG4E-ExpPreaching/Sermon-4.md",
"BG4E-ExpPreaching/Sermon-2.md",
"BG4E-ExpPreaching/Sermon-5-Key.md",
"BG4E-ExpPreaching/Sermon-5.md",
"BG4E-ExpPreaching/Sermon-c.md",
"BG4E-ExpPreaching/Sermon-b.md",
"BG4E-ExpPreaching/Sermon-a.md",
"BG4E-ExpPreaching/Sermon-3-Key.md",
"BG4E-ExpPreaching/JesusChrist-vs-ChristJesus.md",
"60-1Peter/1Pe.1.3-9.md",
"60-1Peter/1Pe.1.10-12.md",
"Syntax/GGBB Apposition vs Epexgetisis.md",

View File

@ -10,7 +10,7 @@
- Matt. 1:18  Τοῦ δὲ <mark>Ἰησοῦ</mark> <mark>Χριστοῦ</mark> ἡ γένεσις οὕτως ἦν. μνηστευθείσης τῆς μητρὸς αὐτοῦ Μαρίας τῷ Ἰωσήφ, πρὶν ἢ συνελθεῖν αὐτοὺς εὑρέθη ἐν γαστρὶ ἔχουσα ἐκ πνεύματος ἁγίου.
- Matt. 26:63  ὁ δὲ <mark>Ἰησοῦ</mark>ς ἐσιώπα. καὶ ὁ ἀρχιερεὺς εἶπεν αὐτῷ· ἐξορκίζω σε κατὰ τοῦ θεοῦ τοῦ ζῶντος ἵνα ἡμῖν εἴπῃς εἰ σὺ εἶ ὁ <mark>χριστὸς</mark> ὁ υἱὸς τοῦ θεοῦ.
- Matt. 27:17  συνηγμένων οὖν αὐτῶν εἶπεν αὐτοῖς ὁ Πιλᾶτος· τίνα θέλετε ἀπολύσω ὑμῖν, <mark>Ἰησοῦν</mark> τὸν Βαραββᾶν ἢ <mark>Ἰησοῦν</mark> τὸν λεγόμενον <mark>χριστόν</mark>;
- Matt. 27:22  λέγει αὐτοῖς ὁ Πιλᾶτος· τί οὖν ποιήσω <mark>Ἰησοῦν</mark> τὸν λεγόμενον <mark>χριστόν</mark>; λέγουσιν πάντες· σταυρωθήτω.
- Matt. 27:22 λέγει αὐτοῖς ὁ Πιλᾶτος· τί οὖν ποιήσω <mark>Ἰησοῦν</mark> τὸν λεγόμενον <mark>χριστόν</mark>; λέγουσιν πάντες· σταυρωθήτω.
- Mk. 1:1  Ἀρχὴ τοῦ εὐαγγελίου <mark>Ἰησοῦ</mark> <mark>Χριστοῦ</mark> υἱοῦ θεοῦ.
- Mk. 12:35  Καὶ ἀποκριθεὶς ὁ <mark>Ἰησοῦ</mark>ς ἔλεγεν διδάσκων ἐν τῷ ἱερῷ· πῶς λέγουσιν οἱ γραμματεῖς ὅτι ὁ <mark>χριστὸς</mark> υἱὸς Δαυίδ ἐστιν;
- Jn. 1:17  ὅτι ὁ νόμος διὰ Μωϋσέως ἐδόθη, ἡ χάρις καὶ ἡ ἀλήθεια διὰ <mark>Ἰησοῦ</mark> <mark>Χριστοῦ</mark> ἐγένετο.

View File

@ -1,6 +1,6 @@
## Sermon-1 (林前15:1-11) 參考解答
#### 句法圖析 (Syntax Diagram)
### 句法圖析 (Syntax Diagram)
- 15:1a (<RUBY><ruby><ruby><strong>Γνωρίζω</strong><rt>γνωρίζω</rt></ruby><rt>I make known</rt></ruby><rt>V-PAI-1S</rt></RUBY>)P <RUBY><ruby><ruby>δὲ<rt>δέ</rt></ruby><rt>now</rt></ruby><rt>CONJ</rt></RUBY> (<RUBY><ruby><ruby>ὑμῖν,<rt>σύ</rt></ruby><rt>to you</rt></ruby><rt>P-2DP</rt></RUBY>)C (<RUBY><ruby><ruby>ἀδελφοί,<rt>ἀδελφός</rt></ruby><rt>brothers</rt></ruby><rt>N-VPM</rt></RUBY>)=C (<mark><RUBY><ruby><ruby>τὸ<rt></rt></ruby><rt>the</rt></ruby><rt>T-ASN</rt></RUBY> <RUBY><ruby><ruby>εὐαγγέλιον<rt>εὐαγγέλιον</rt></ruby><rt>gospel</rt></ruby><rt>N-ASN</rt></RUBY>°¹</mark>)C
- 15:1b (<RUBY><ruby><ruby><rt>ὅς</rt></ruby><rt>that</rt></ruby><rt>R-ASN</rt></RUBY>°¹⮥)C (<RUBY><ruby><ruby><strong>εὐηγγελισάμην</strong><rt>εὐαγγελίζομαι</rt></ruby><rt>I proclaimed</rt></ruby><rt>V-AMI-1S</rt></RUBY>)P (<RUBY><ruby><ruby>ὑμῖν,<rt>σύ</rt></ruby><rt>to you</rt></ruby><rt>P-2DP</rt></RUBY>)C
@ -41,7 +41,7 @@
<div style='page-break-after: always;'></div>
#### 句法筆記 (Syntax Notes)
### 句法筆記 (Syntax Notes)
- 15:1 Γνωρίζω δὲ ὑμῖν , ἀδελφοί , τὸ εὐαγγέλιον ὃ εὐηγγελισάμην ὑμῖν , ὃ καὶ παρελάβετε , ἐν ᾧ καὶ ἑστήκατε , 弟兄們,我如今把先前所傳給你們的福音告訴你們知道;這福音你們也領受了,又靠著站立得住,
- 15:1a Γνωρίζω:可以接兩個補語 (BAGD),直接受格 (τὸ εὐαγγέλιον) 表達「某事」,間接受格 (ὑμῖν) 表達「某人」。
@ -86,7 +86,7 @@
<div style='page-break-after: always;'></div>
#### 語意圖析 (Semantic Diagram)
### 語意圖析 (Semantic Diagram)
![../images/2023-05-10-1Co.15.1-11b 1.png](../images/2023-05-10-1Co.15.1-11b%201.png)
@ -94,7 +94,7 @@
<div style='page-break-after: always;'></div>
#### 大綱 (Outline)
### 大綱 (Outline)
- (0) 開場:神學院有什麼用?!
- 來神學院學什麼?對弟兄姊妹有用嗎?能解決教會的問題嗎?
@ -126,12 +126,12 @@
<div style='page-break-after: always;'></div>
#### 小抄 (memo)
### 小抄 (memo)
![../images/2023-05-10-1Co.15.1-11小抄.jpg|500x520](../images/2023-05-10-1Co.15.1-11%E5%B0%8F%E6%8A%84.jpg)
#### 講道影片
### 講道影片
https://youtu.be/1iBlCf7-zFM

Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 818 KiB