diff --git a/app/src/boot/globalEvent/keydown.ts b/app/src/boot/globalEvent/keydown.ts index 0c66950ce..fac61df0c 100644 --- a/app/src/boot/globalEvent/keydown.ts +++ b/app/src/boot/globalEvent/keydown.ts @@ -215,7 +215,7 @@ const editKeydown = (app: App, event: KeyboardEvent) => { } }); } - if (!protyle) { + if (!protyle && item.editors.length > 0) { protyle = item.editors[0].protyle; } return true; diff --git a/app/src/boot/onGetConfig.ts b/app/src/boot/onGetConfig.ts index aa00aea6b..1906e64c7 100644 --- a/app/src/boot/onGetConfig.ts +++ b/app/src/boot/onGetConfig.ts @@ -29,6 +29,7 @@ import {App} from "../index"; import {initWindowEvent} from "./globalEvent/event"; import {sendGlobalShortcut} from "./globalEvent/keydown"; import {closeWindow} from "../window/closeWin"; +import {loadPlugins} from "../plugin/loader"; const matchKeymap = (keymap: Record, key1: "general" | "editor", key2?: "general" | "insert" | "heading" | "list" | "table") => { if (key1 === "general") { @@ -87,7 +88,7 @@ const hasKeymap = (keymap: Record, key1: "general" | "edito return match; }; -export const onGetConfig = (isStart: boolean, app: App) => { +export const onGetConfig = async (isStart: boolean, app: App) => { const matchKeymap1 = matchKeymap(Constants.SIYUAN_KEYMAP.general, "general"); const matchKeymap2 = matchKeymap(Constants.SIYUAN_KEYMAP.editor.general, "editor", "general"); const matchKeymap3 = matchKeymap(Constants.SIYUAN_KEYMAP.editor.insert, "editor", "insert"); @@ -140,8 +141,9 @@ export const onGetConfig = (isStart: boolean, app: App) => { initWindow(app); appearance.onSetappearance(window.siyuan.config.appearance); initAssets(); - renderSnippet(); setInlineStyle(); + await loadPlugins(app); + renderSnippet(); let resizeTimeout = 0; window.addEventListener("resize", () => { window.clearTimeout(resizeTimeout); diff --git a/app/src/index.ts b/app/src/index.ts index 6954b8bea..a2ca0f460 100644 --- a/app/src/index.ts +++ b/app/src/index.ts @@ -25,7 +25,6 @@ import {getAllTabs} from "./layout/getAll"; import {getLocalStorage} from "./protyle/util/compatibility"; import {getSearch} from "./util/functions"; import {hideAllElements} from "./protyle/ui/hideElements"; -import {loadPlugins} from "./plugin/loader"; import "./assets/scss/base.scss"; export class App { @@ -147,7 +146,7 @@ export class App { }), }; - fetchPost("/api/system/getConf", {}, async (response) => { + fetchPost("/api/system/getConf", {}, (response) => { window.siyuan.config = response.data.conf; // 历史数据兼容,202306后可删除 if (window.siyuan.config.uiLayout.left && !window.siyuan.config.uiLayout.left.data) { @@ -164,7 +163,6 @@ export class App { data: response.data.conf.uiLayout.bottom }; } - await loadPlugins(this); getLocalStorage(() => { fetchGet(`/appearance/langs/${window.siyuan.config.appearance.lang}.json?v=${Constants.SIYUAN_VERSION}`, (lauguages) => { window.siyuan.languages = lauguages; diff --git a/app/src/mobile/index.ts b/app/src/mobile/index.ts index 245ae0042..f9a0bcb38 100644 --- a/app/src/mobile/index.ts +++ b/app/src/mobile/index.ts @@ -29,7 +29,7 @@ import {Menu} from "../plugin/Menu"; class App { public plugins: import("../plugin").Plugin[] = []; - public appId:string; + public appId: string; constructor() { if (!window.webkit?.messageHandlers && !window.JSAndroid) { @@ -38,7 +38,7 @@ class App { addScriptSync(`${Constants.PROTYLE_CDN}/js/lute/lute.min.js?v=${Constants.SIYUAN_VERSION}`, "protyleLuteScript"); addScript(`${Constants.PROTYLE_CDN}/js/protyle-html.js?v=${Constants.SIYUAN_VERSION}`, "protyleWcHtmlScript"); addBaseURL(); - this.appId =Constants.SIYUAN_APPID; + this.appId = Constants.SIYUAN_APPID; window.siyuan = { zIndex: 10, notebooks: [], @@ -80,10 +80,9 @@ class App { window.addEventListener("pagehide", () => { saveScroll(window.siyuan.mobile.editor.protyle); }, false); - fetchPost("/api/system/getConf", {}, async (confResponse) => { + fetchPost("/api/system/getConf", {}, (confResponse) => { confResponse.data.conf.keymap = Constants.SIYUAN_KEYMAP; window.siyuan.config = confResponse.data.conf; - await loadPlugins(this); getLocalStorage(() => { fetchGet(`/appearance/langs/${window.siyuan.config.appearance.lang}.json?v=${Constants.SIYUAN_VERSION}`, (lauguages) => { window.siyuan.languages = lauguages; diff --git a/app/src/mobile/util/initFramework.ts b/app/src/mobile/util/initFramework.ts index 3a92cd921..cd0cea06b 100644 --- a/app/src/mobile/util/initFramework.ts +++ b/app/src/mobile/util/initFramework.ts @@ -19,9 +19,11 @@ import {activeBlur, hideKeyboardToolbar, initKeyboardToolbar} from "./keyboardTo import {syncGuide} from "../../sync/syncGuide"; import {Inbox} from "../../layout/dock/Inbox"; import {App} from "../../index"; +import {loadPlugins} from "../../plugin/loader"; -export const initFramework = (app: App) => { +export const initFramework = async (app: App) => { setInlineStyle(); + await loadPlugins(this); renderSnippet(); initKeyboardToolbar(); const sidebarElement = document.getElementById("sidebar"); diff --git a/app/src/window/index.ts b/app/src/window/index.ts index fc639ed29..f3911bcdc 100644 --- a/app/src/window/index.ts +++ b/app/src/window/index.ts @@ -19,17 +19,16 @@ import {initMessage} from "../dialog/message"; import {getAllTabs} from "../layout/getAll"; import {getLocalStorage} from "../protyle/util/compatibility"; import {init} from "../window/init"; -import {loadPlugins} from "../plugin/loader"; class App { public plugins: import("../plugin").Plugin[] = []; - public appId:string; + public appId: string; constructor() { addScriptSync(`${Constants.PROTYLE_CDN}/js/lute/lute.min.js?v=${Constants.SIYUAN_VERSION}`, "protyleLuteScript"); addScript(`${Constants.PROTYLE_CDN}/js/protyle-html.js?v=${Constants.SIYUAN_VERSION}`, "protyleWcHtmlScript"); addBaseURL(); - this.appId =Constants.SIYUAN_APPID; + this.appId = Constants.SIYUAN_APPID; window.siyuan = { zIndex: 10, transactions: [], @@ -128,9 +127,8 @@ class App { } }), }; - fetchPost("/api/system/getConf", {}, async (response) => { + fetchPost("/api/system/getConf", {}, (response) => { window.siyuan.config = response.data.conf; - await loadPlugins(this); getLocalStorage(() => { fetchGet(`/appearance/langs/${window.siyuan.config.appearance.lang}.json?v=${Constants.SIYUAN_VERSION}`, (lauguages) => { window.siyuan.languages = lauguages; diff --git a/app/src/window/init.ts b/app/src/window/init.ts index 36b12431c..b9ed27960 100644 --- a/app/src/window/init.ts +++ b/app/src/window/init.ts @@ -10,11 +10,11 @@ import {renderSnippet} from "../config/util/snippets"; import {getSearch} from "../util/functions"; import {initWindow} from "../boot/onGetConfig"; import {App} from "../index"; -import {afterLoadPlugin} from "../plugin/loader"; +import {afterLoadPlugin, loadPlugins} from "../plugin/loader"; import {Tab} from "../layout/Tab"; import {initWindowEvent} from "../boot/globalEvent/event"; -export const init = (app: App) => { +export const init = async (app: App) => { webFrame.setZoomFactor(window.siyuan.storage[Constants.LOCAL_ZOOM]); initWindowEvent(app); fetchPost("/api/system/getEmojiConf", {}, response => { @@ -47,8 +47,9 @@ export const init = (app: App) => { initWindow(app); appearance.onSetappearance(window.siyuan.config.appearance); initAssets(); - renderSnippet(); setInlineStyle(); + await loadPlugins(app); + renderSnippet(); let resizeTimeout = 0; window.addEventListener("resize", () => { window.clearTimeout(resizeTimeout); @@ -58,7 +59,7 @@ export const init = (app: App) => { }); }; -const afterLayout = (app:App) => { +const afterLayout = (app: App) => { app.plugins.forEach(item => { afterLoadPlugin(item); });