diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json index 16f863f..69753e0 100644 --- a/.obsidian/community-plugins.json +++ b/.obsidian/community-plugins.json @@ -1,5 +1,4 @@ [ - "control-characters", "obsidian-footnotes", "obsidian-hider", "obsidian-tidy-footnotes", diff --git a/.obsidian/plugins/control-characters/data.json b/.obsidian/plugins/control-characters/data.json deleted file mode 100644 index 4f62a2b..0000000 --- a/.obsidian/plugins/control-characters/data.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "newLine": false, - "tab": true, - "space": true, - "enabled": true, - "selection": false -} \ No newline at end of file diff --git a/.obsidian/plugins/control-characters/main.js b/.obsidian/plugins/control-characters/main.js deleted file mode 100644 index 7fbca00..0000000 --- a/.obsidian/plugins/control-characters/main.js +++ /dev/null @@ -1,331 +0,0 @@ -/* -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; - } -}; diff --git a/.obsidian/plugins/control-characters/manifest.json b/.obsidian/plugins/control-characters/manifest.json deleted file mode 100644 index 9f6ea93..0000000 --- a/.obsidian/plugins/control-characters/manifest.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "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 -} diff --git a/.obsidian/plugins/control-characters/styles.css b/.obsidian/plugins/control-characters/styles.css deleted file mode 100644 index 5246e19..0000000 --- a/.obsidian/plugins/control-characters/styles.css +++ /dev/null @@ -1,43 +0,0 @@ -/* -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%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=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)} \ No newline at end of file diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index f56f0b5..a8dd718 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -20,24 +20,6 @@ } } ] - }, - { - "id": "14517a8a53cbfa6e", - "type": "tabs", - "children": [ - { - "id": "9756d5662648365b", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "BG4E-ExpPreaching/Sermon-1-Key.md", - "mode": "preview", - "source": true - } - } - } - ] } ], "direction": "vertical" @@ -95,8 +77,7 @@ } ], "direction": "horizontal", - "width": 200, - "collapsed": true + "width": 200 }, "right": { "id": "1464b72f66019d33", @@ -175,8 +156,9 @@ }, "active": "9d6aaf62d9be9ed1", "lastOpenFiles": [ - "62-1John/123John-Style.md", + "images/2023-05-10-1Co.15.1-11b 1.png", "BG4E-ExpPreaching/Sermon-1-Key.md", + "62-1John/123John-Style.md", "40-Matthew/Sermon-on-the-Mount.Interlinear.md", "40-Matthew/Sermon-on-the-Mount.Notes.md", "40-Matthew/Mat.5.3-12.md", @@ -186,7 +168,6 @@ "60-1Peter/1Pe.1.1-2.md", "BG4E-ExpPreaching/Sermon-1.md", "images/2023-05-10-1Co.15.1-11小抄.jpg", - "images/2023-05-10-1Co.15.1-11b 1.png", "images/2023-05-10-1Co.15.1-11b.png", "46-1Corinthians/1Co.15.1-11.md", "Phrasing-Signs.md", @@ -203,7 +184,6 @@ "60-1Peter/1Pe.1.3-9.md", "60-1Peter/1Pe.1.10-12.md", "Syntax/GGBB Apposition vs Epexgetisis.md", - "Mounce-Syntax-Summary.md", "BBG4E/BG4E 規劃.canvas", "BG4E-ExpPreaching", "Synonyms", diff --git a/BG4E-ExpPreaching/Sermon-1-Key.md b/BG4E-ExpPreaching/Sermon-1-Key.md index 1776baa..fd42519 100644 --- a/BG4E-ExpPreaching/Sermon-1-Key.md +++ b/BG4E-ExpPreaching/Sermon-1-Key.md @@ -1,6 +1,6 @@ ## Sermon-1 (林前15:1-11) 參考解答 -### 句法圖析 (Syntax Diagram) +#### 句法圖析 (Syntax Diagram) - 15:1a (ΓνωρίζωγνωρίζωI make knownV-PAI-1S)P δὲδέnowCONJ (ὑμῖν,σύto youP-2DP)C (ἀδελφοί,ἀδελφόςbrothersN-VPM)=C (τὸtheT-ASN εὐαγγέλιονεὐαγγέλιονgospelN-ASN°¹)C - 15:1b (ὅςthatR-ASN°¹⮥)C (εὐηγγελισάμηνεὐαγγελίζομαιI proclaimedV-AMI-1S)P (ὑμῖν,σύto youP-2DP)C @@ -18,28 +18,30 @@ - 15:4b°⁴ καὶκαίandCONJ ὅτιὅτιthatCONJ (ἐγήγερταιἐγείρωHe was raisedV-RPI-3S)P (τῇtheT-DSF ἡμέρᾳἡμέραdayN-DSF τῇtheT-DSF τρίτῃτρίτοςthirdA-DSF)A (κατὰκατάaccording toPREP τὰςtheT-APF γραφάςγραφήScripturesN-APF)A - 15:5a°⁴ καὶκαίandCONJ ὅτιὅτιthatCONJ (ὤφθηὁράωHe appearedV-API-3S)P (ΚηφᾷΚηφᾶςto CephasN-DSM-P)C - 15:5b (εἶταεἶταthenADV)A (τοῖςto theT-DPM δώδεκα·δώδεκαTwelveA-DPM-NUI)C - - 15:6a (ἔπειταἔπειταThereafterADV)A (ὤφθηὁράωHe appearedV-API-3S)P ( ‹ἐπάνωἐπάνωto more thanADV πεντακοσίοιςπεντακόσιοιfive hundredA-DPMἀδελφοῖςἀδελφόςbrothersN-DPM°⁵ )C (ἐφάπαξ,ἐφάπαξat onceADV)A + - 15:6a (ἔπειταἔπειταThereafterADV)A (ὤφθηὁράωHe appearedV-API-3S)P (ἐπάνωἐπάνωto more thanADVπεντακοσίοιςπεντακόσιοιfive hundredA-DPM ἀδελφοῖςἀδελφόςbrothersN-DPM°⁵ ›)C (ἐφάπαξ,ἐφάπαξat onceADV)A - 15:6b (ἐξἐκofPREP ὧνὅςwhomR-GPM°⁵⮥)A (οἱtheT-NPM πλείονεςπλείων, πλεῖονgreater partA-NPM-C)S (μένουσινμένωremainV-PAI-3P)P (ἕωςἕωςuntilPREP ἄρτι,ἄρτιnowADV)A - 15:6c (τινὲςτιςsomeX-NPM)S δὲδέhoweverCONJ (ἐκοιμήθησαν·κοιμάωhave fallen asleepV-API-3P)P - 15:7a (ἔπειταἔπειταThenADV)A (ὤφθηὁράωHe appearedV-API-3S)P (ἸακώβῳἸάκωβοςto JamesN-DSM-P)C - 15:7b (εἶταεἶταthenADV)A (τοῖςto theT-DPM ἀποστόλοιςἀπόστολοςapostlesN-DPM πᾶσιν·πᾶςallA-DPM)C - - 15:8 (ἔσχατονἔσχατοςLastA-ASN)⦇ δὲδέthenCONJ ⦈(πάντωνπᾶςof allA-GPN)A (ὡσπερεὶὡσπερείasCONJ τῷtheT-DSN ἐκτρώματιἔκτρωμαuntimely birthN-DSN)A (ὤφθηὁράωHe appearedV-API-3S)P( κἀμοί.κἀγώalso to meP-1DS-K)C + - 15:8 (ἔσχατονἔσχατοςLastA-ASN)⦇ δὲδέthenCONJ ⦈(πάντωνπᾶςof allA-GPN)A (ὡσπερεὶὡσπερείasCONJτῷtheT-DSN ἐκτρώματιἔκτρωμαuntimely birthN-DSN › )A (ὤφθηὁράωHe appearedV-API-3S)P( κἀμοί.κἀγώalso to meP-1DS-K)C - ———————— -- 15:9a (ἘγὼἐγώIP-1NS°²)S γάργάρforCONJ (εἰμιεἰμίamV-PAI-1S)P (theT-NSM ἐλάχιστοςἐλάχιστοςleastA-NSM τῶνof theT-GPM ἀποστόλωνἀπόστολοςapostlesN-GPM)C - - 15:9b (ὃςὅςwhoR-NSM°²⮥)S οὐκοὐnotPRT-N (εἰμὶεἰμίamV-PAI-1S)P { ἱκανὸςἱκανόςfitA-NSM [ (καλεῖσθαικαλέωto be calledV-PPN)p (ἀπόστολος,ἀπόστολοςan apostleN-NSM)c ] }C +- 15:9a (ἘγὼἐγώIP-1NS)S γάργάρforCONJ (εἰμιεἰμίamV-PAI-1S)P (theT-NSM ἐλάχιστοςἐλάχιστοςleastA-NSM°⁶ τῶνof theT-GPM ἀποστόλωνἀπόστολοςapostlesN-GPM)C + - 15:9b (ὃςὅςwhoR-NSM°⁶⮥)S οὐκοὐnotPRT-N (εἰμὶεἰμίamV-PAI-1S)P ( ἱκανὸςἱκανόςfitA-NSM)C {(καλεῖσθαικαλέωto be calledV-PPN)p (ἀπόστολος,ἀπόστολοςan apostleN-NSM)c}+C - 15:9c διότιδιότιbecauseCONJ (ἐδίωξαδιώκωI persecutedV-AAI-1S)P (τὴνtheT-ASF ἐκκλησίανἐκκλησίαchurchN-ASF τοῦ-T-GSM Θεοῦ·θεόςof GodN-GSM)C - 15:10a (χάριτιχάρις[By the] graceN-DSF)⦇ δὲδέhoweverCONJ ⦈(Θεοῦθεόςof GodN-GSM)A (εἰμιεἰμίI amV-PAI-1S)P { (ὅςwhatR-NSN)C (εἰμι,εἰμίI amV-PAI-1S)P }C -- 15:10b καὶκαίandCONJ (theT-NSF χάριςχάριςgraceN-NSF αὐτοῦαὐτόςof HimP-GSM -T-NSF εἰςεἰςtowardPREP ἐμὲἐγώmeP-1AS)S οὐοὐnotPRT-N (κενὴκενόςvoidA-NSF)A (ἐγενήθη,γίνομαιhas beenV-AOI-3S)P -- 15:10c ἀλλὰἀλλάRatherCONJ (περισσότερονπερισσότεροςmore abundantlyA-ASN-C αὐτῶναὐτόςthan themP-GPM πάντωνπᾶςallA-GPM)A (ἐκοπίασα,κοπιάωI toiledV-AAI-1S)P +- 15:10b καὶκαίandCONJ (theT-NSF χάριςχάριςgraceN-NSF αὐτοῦαὐτόςof HimP-GSM -T-NSFεἰςεἰςtowardPREP ἐμὲἐγώmeP-1AS›)S οὐοὐnotPRT-N (κενὴκενόςvoidA-NSF)A (ἐγενήθη,γίνομαιhas beenV-AOI-3S)P +- 15:10c ἀλλὰἀλλάRatherCONJ (περισσότερονπερισσότεροςmore abundantlyA-ASN-Cαὐτῶναὐτόςthan themP-GPM πάντωνπᾶςallA-GPM › )A (ἐκοπίασα,κοπιάωI toiledV-AAI-1S)P - 15:10d οὐκοὐnotPRT-N (ἐγὼἐγώIP-1NS)S δὲδέhoweverCONJ ...**ἐκοπίασα**... -- 15:10e ἀλλὰἀλλάbutCONJ (theT-NSF χάριςχάριςgraceN-NSF τοῦ-T-GSM Θεοῦθεόςof GodN-GSM that [was]T-NSF σὺνσύνwithPREP ἐμοί.ἐγώmeP-1DS)S ...**ἐκοπίασα**... +- 15:10e ἀλλὰἀλλάbutCONJ (theT-NSFχάριςχάριςgraceN-NSF τοῦ-T-GSM Θεοῦθεόςof GodN-GSMthat [was]T-NSFσὺνσύνwithPREP ἐμοί.ἐγώmeP-1DS › )S ...**ἐκοπίασα**... - ⋯⋯⋯⋯⋯⋯⋯ - 15:11a εἴτεεἴτεWhetherCONJ οὖνοὖνthereforeCONJ (ἐγὼἐγώIP-1NS)S - 15:11b εἴτεεἴτεorCONJ (ἐκεῖνοι,ἐκεῖνοςtheyD-NPM)S - 15:11c (οὕτωςοὕτω, οὕτωςthusADV)A (κηρύσσομενκηρύσσωwe preachV-PAI-1P)P - 15:11d καὶκαίandCONJ (οὕτωςοὕτω, οὕτωςthusADV)A (ἐπιστεύσατε.¶πιστεύωyou believedV-AAI-2P)P -### 句法筆記 (Syntax Notes) +
+ +#### 句法筆記 (Syntax Notes) - 15:1 Γνωρίζω δὲ ὑμῖν , ἀδελφοί , τὸ εὐαγγέλιον ὃ εὐηγγελισάμην ὑμῖν , ὃ καὶ παρελάβετε , ἐν ᾧ καὶ ἑστήκατε , 弟兄們,我如今把先前所傳給你們的福音告訴你們知道;這福音你們也領受了,又靠著站立得住, - 15:1a Γνωρίζω:可以接兩個補語 (BAGD),直接受格 (τὸ εὐαγγέλιον) 表達「某事」,間接受格 (ὑμῖν) 表達「某人」。 @@ -69,20 +71,30 @@ - 154b ἐγήγερται:完成式時態形式, 表達因過去某個動作而產生之現在的 “狀態 state of affairs”, 就解經來說是最重要的時態 (GGBB, 573 = 華, 604)。 - 15:5 καὶ ὅτι ὤφθη Κηφᾷ εἶτα τοῖς δώδεκα · 並且顯給磯法看,然後顯給十二使徒看; - 15:5a Κηφᾷ:主要動詞 ὤφθη 被動語態,帶間接受格當作補語,表示「某人」(BAGD)。 -- 15:6 ἔπειτα ὤφθη ἐπάνω πεντακοσίοις ἀδελφοῖς ἐφάπαξ , ἐξ ὧν οἱ πλείονες μένουσιν ἕως ἄρτι , τινὲς δὲ ἐκοιμήθησαν · 後來一時顯給五百多弟兄看,其中一大半到如今還在,卻也有已經睡了的。 -- 15:7 ἔπειτα ὤφθη Ἰακώβῳ εἶτα τοῖς ἀποστόλοις πᾶσιν · 以後顯給雅各看,再顯給眾使徒看, -- 15:8 ἔσχατον δὲ πάντων ὡσπερεὶ τῷ ἐκτρώματι ὤφθη κἀμοί . 末了也顯給我看;我如同未到產期而生的人一般。 +- 1Co 15:8 ἔσχατον δὲ πάντων ὡσπερεὶ τῷ ἐκτρώματι ὤφθη κἀμοί . 末了也顯給我看;我如同未到產期而生的人一般。 + - 15:8 ἔσχατον:直接受格當作副詞使用 (GGBB, 201-2 = 華, 208-10)。 - 15:9 Ἐγὼ γάρ εἰμι ὁ ἐλάχιστος τῶν ἀποστόλων ὃς οὐκ εἰμὶ ἱκανὸς καλεῖσθαι ἀπόστολος , διότι ἐδίωξα τὴν ἐκκλησίαν τοῦ Θεοῦ · 我原是使徒中最小的,不配稱為使徒,因為我從前逼迫神的教會。 + - 15:9b ὃς:關係代名詞,可以用於任何人稱,所以在這裡可以配合第一人稱的主要動詞 εἰμι。 + - 15:9b ἱκανὸς καλεῖσθαι ἀπόστολος:ἱκανὸς 後面可以接不定詞內嵌子句 (BAGD) 來補充說明,讓整個子句的意思完整。 - 15:10 χάριτι δὲ Θεοῦ εἰμι ὅ εἰμι , καὶ ἡ χάρις αὐτοῦ ἡ εἰς ἐμὲ οὐ κενὴ ἐγενήθη , ἀλλὰ περισσότερον αὐτῶν πάντων ἐκοπίασα , οὐκ ἐγὼ δὲ ἀλλὰ ἡ χάρις τοῦ Θεοῦ ἡ σὺν ἐμοί . 然而,我今日成了何等人,是蒙神的恩纔成的,並且他所賜我的恩不是徒然的。我比眾使徒格外勞苦;這原不是我,乃是神的恩與我同在。 + - 15:10a ὅ εἰμι:關係代名詞 ὅ 是中性單數,所以要理解成 what I-am,不是 who I-am。換言之,保羅不是在強調自己身分的改變,而是生命內涵的改變。 + - 15:10b ἡ χάρις αὐτοῦ ἡ εἰς ἐμὲ (在我裡面的恩) 不是徒然,呼應 15:10e ἡ χάρις τοῦ Θεοῦ ἡ σὺν ἐμοί (與我同在的恩) 勞力。 + - 15:10c περισσότερον:直接受格當作副詞使用 (GGBB, 201-2 = 華, 208-10)。 + - 15:10c αὐτῶν πάντων:比較所有格 (GGBB, 110-2 = 華, 112-4) + - 15:10e ...ἐκοπίασα...:根據上下文判斷被省略掉的動詞——倘若如此,保羅的意思就是:那在我裡面之神的恩典 (15:10b),也就是與我同在之神的恩典 (15:10e),催促著我比眾人都格外勞力 (15:10c)! - 15:11 εἴτε οὖν ἐγὼ εἴτε ἐκεῖνοι , οὕτως κηρύσσομεν καὶ οὕτως ἐπιστεύσατε . 不拘是我,是眾使徒,我們如此傳,你們也如此信了。 -### 語意圖析 (Semantic Diagram) +
+ +#### 語意圖析 (Semantic Diagram) ![../images/2023-05-10-1Co.15.1-11b 1.png](../images/2023-05-10-1Co.15.1-11b%201.png) -### 大綱 (Outline) +
+ +#### 大綱 (Outline) - (0) 開場:神學院有什麼用?! - 來神學院學什麼?對弟兄姊妹有用嗎?能解決教會的問題嗎? @@ -106,13 +118,20 @@ - 福音的平衡性 (張力) - (3) 福音的泉源 (15:9-11)——福音從何而來?產生什麼果效?帶出什麼行動? - (3a) 神主動的恩典 (15:9-10a) + - 不是我在勞力 (15:10d),而是那在我裡面之神的恩典 (15:10b),也就是與我同在之神的恩典在勞力 (15:10e) - (3b) 人被動的主動 (15:10b-11) + - 神的恩典催促著我比眾人都格外勞力 (15:10c)! - 1Co 15:58 所以,我親愛的弟兄們,你們務要堅固,不可搖動,常常竭力多做主工;因為知道,你們的勞苦在主裏面不是徒然的。 -### 小抄 (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 \ No newline at end of file diff --git a/images/2023-05-10-1Co.15.1-11b 1.png b/images/2023-05-10-1Co.15.1-11b 1.png index 710e116..66788ff 100644 Binary files a/images/2023-05-10-1Co.15.1-11b 1.png and b/images/2023-05-10-1Co.15.1-11b 1.png differ