diff --git a/app/src/util/globalShortcut.ts b/app/src/boot/globalShortcut.ts similarity index 99% rename from app/src/util/globalShortcut.ts rename to app/src/boot/globalShortcut.ts index f73f123d5..a7a703cb4 100644 --- a/app/src/util/globalShortcut.ts +++ b/app/src/boot/globalShortcut.ts @@ -8,7 +8,7 @@ import { hasTopClosestByClassName, hasTopClosestByTag, } from "../protyle/util/hasClosest"; -import {newFile} from "./newFile"; +import {newFile} from "../util/newFile"; import {Constants} from "../constants"; import {openSetting} from "../config"; import {getDockByType, getInstanceById} from "../layout/util"; @@ -17,12 +17,12 @@ import {Editor} from "../editor"; import {setEditMode} from "../protyle/util/setEditMode"; import {rename} from "../editor/rename"; import {Files} from "../layout/dock/Files"; -import {newDailyNote} from "./mount"; +import {newDailyNote} from "../util/mount"; import {hideAllElements, hideElements} from "../protyle/ui/hideElements"; -import {fetchPost} from "./fetch"; -import {goBack, goForward} from "./backForward"; +import {fetchPost} from "../util/fetch"; +import {goBack, goForward} from "../util/backForward"; import {onGet} from "../protyle/util/onGet"; -import {getDisplayName, getNotebookName, getTopPaths, movePathTo, moveToPath} from "./pathName"; +import {getDisplayName, getNotebookName, getTopPaths, movePathTo, moveToPath} from "../util/pathName"; import {openFileById} from "../editor/util"; import {getAllDocks, getAllModels, getAllTabs} from "../layout/getAll"; import {openGlobalSearch} from "../search/util"; @@ -34,7 +34,7 @@ import {showMessage} from "../dialog/message"; import {Dialog} from "../dialog"; import {unicode2Emoji} from "../emoji"; import {deleteFiles} from "../editor/deleteFile"; -import {escapeHtml} from "./escape"; +import {escapeHtml} from "../util/escape"; import {syncGuide} from "../sync/syncGuide"; import {showPopover} from "../block/popover"; import {getStartEndElement} from "../protyle/wysiwyg/commonHotkey"; @@ -48,7 +48,7 @@ import {webFrame} from "electron"; import {openHistory} from "../history/history"; import {openCard} from "../card/openCard"; import {lockScreen} from "../dialog/processSystem"; -import {isWindow} from "./functions"; +import {isWindow} from "../util/functions"; import {reloadProtyle} from "../protyle/util/reload"; import {fullscreen} from "../protyle/breadcrumb/action"; import {setPadding} from "../protyle/ui/initUI"; diff --git a/app/src/util/onGetConfig.ts b/app/src/boot/onGetConfig.ts similarity index 95% rename from app/src/util/onGetConfig.ts rename to app/src/boot/onGetConfig.ts index 515374371..21fcb6634 100644 --- a/app/src/util/onGetConfig.ts +++ b/app/src/boot/onGetConfig.ts @@ -10,19 +10,21 @@ import {onWindowsMsg} from "../window/onWindowsMsg"; /// #endif import {Constants} from "../constants"; import {appearance} from "../config/appearance"; -import {globalShortcut} from "./globalShortcut"; -import {fetchPost, fetchSyncPost} from "./fetch"; -import {addGA, initAssets, setInlineStyle} from "./assets"; +import {globalShortcut} from "../boot/globalShortcut"; +import {fetchPost, fetchSyncPost} from "../util/fetch"; +import {addGA, initAssets, setInlineStyle} from "../util/assets"; import {renderSnippet} from "../config/util/snippets"; import {openFileById} from "../editor/util"; import {focusByRange} from "../protyle/util/selection"; import {exitSiYuan} from "../dialog/processSystem"; -import {getSearch, isWindow} from "./functions"; +import {getSearch, isWindow} from "../util/functions"; import {initStatus} from "../layout/status"; import {showMessage} from "../dialog/message"; import {replaceLocalPath} from "../editor/rename"; import {setTabPosition} from "../window/setHeader"; import {initBar} from "../layout/topBar"; +import {setProxy} from "../config/util/setProxy"; +import {openChangelog} from "./openChangelog"; const matchKeymap = (keymap: Record, key1: "general" | "editor", key2?: "general" | "insert" | "heading" | "list" | "table") => { if (key1 === "general") { @@ -81,23 +83,6 @@ const hasKeymap = (keymap: Record, key1: "general" | "edito return match; }; -export const setProxy = () => { - /// #if !BROWSER - if ("" === window.siyuan.config.system.networkProxy.scheme) { - console.log("network proxy [system]"); - return; - } - - const session = getCurrentWindow().webContents.session; - session.closeAllConnections().then(() => { - const proxyURL = `${window.siyuan.config.system.networkProxy.scheme}://${window.siyuan.config.system.networkProxy.host}:${window.siyuan.config.system.networkProxy.port}`; - session.setProxy({proxyRules: proxyURL}).then( - () => console.log("network proxy [" + proxyURL + "]"), - ); - }); - /// #endif -}; - export const onGetConfig = (isStart: boolean) => { const matchKeymap1 = matchKeymap(Constants.SIYUAN_KEYMAP.general, "general"); const matchKeymap2 = matchKeymap(Constants.SIYUAN_KEYMAP.editor.general, "editor", "general"); @@ -149,6 +134,7 @@ export const onGetConfig = (isStart: boolean) => { window.siyuan.emojis = response.data as IEmoji[]; try { JSONToLayout(isStart); + openChangelog(); if (window.JSAndroid) { window.openFileByURL(window.JSAndroid.getBlockURL()); } @@ -157,6 +143,7 @@ export const onGetConfig = (isStart: boolean) => { } }); initBar(); + setProxy(); initStatus(); initWindow(); appearance.onSetappearance(window.siyuan.config.appearance); diff --git a/app/src/boot/openChangelog.ts b/app/src/boot/openChangelog.ts new file mode 100644 index 000000000..94303753d --- /dev/null +++ b/app/src/boot/openChangelog.ts @@ -0,0 +1,19 @@ +import {fetchPost} from "../util/fetch"; +import {Dialog} from "../dialog"; +import {highlightRender} from "../protyle/markdown/highlightRender"; +import {isMobile} from "../util/functions"; +import {Constants} from "../constants"; + +export const openChangelog = () => { + fetchPost("/api/system/getChangelog", {}, (response) => { + if (!response.data.show) { + return; + } + const dialog = new Dialog({ + title: `v${Constants.SIYUAN_VERSION} ${window.siyuan.languages.update}`, + width: isMobile() ? "80vw" : "520px", + content: `
${response.data.html}
` + }); + highlightRender(dialog.element); + }); +} diff --git a/app/src/config/about.ts b/app/src/config/about.ts index a4a68058c..58fa9833a 100644 --- a/app/src/config/about.ts +++ b/app/src/config/about.ts @@ -11,7 +11,7 @@ import {openByMobile, writeText} from "../protyle/util/compatibility"; import {showMessage} from "../dialog/message"; import {Dialog} from "../dialog"; import {confirmDialog} from "../dialog/confirmDialog"; -import {setProxy} from "../util/onGetConfig"; +import { setProxy } from "./util/setProxy"; export const about = { element: undefined as Element, diff --git a/app/src/config/util/setProxy.ts b/app/src/config/util/setProxy.ts new file mode 100644 index 000000000..93e569a29 --- /dev/null +++ b/app/src/config/util/setProxy.ts @@ -0,0 +1,20 @@ +/// #if !BROWSER +import {getCurrentWindow} from "@electron/remote"; +/// #endif + +export const setProxy = () => { + /// #if !BROWSER + if ("" === window.siyuan.config.system.networkProxy.scheme) { + console.log("network proxy [system]"); + return; + } + + const session = getCurrentWindow().webContents.session; + session.closeAllConnections().then(() => { + const proxyURL = `${window.siyuan.config.system.networkProxy.scheme}://${window.siyuan.config.system.networkProxy.host}:${window.siyuan.config.system.networkProxy.port}`; + session.setProxy({proxyRules: proxyURL}).then( + () => console.log("network proxy [" + proxyURL + "]"), + ); + }); + /// #endif +}; diff --git a/app/src/index.ts b/app/src/index.ts index be9c04fbe..c6f6d862c 100644 --- a/app/src/index.ts +++ b/app/src/index.ts @@ -1,7 +1,7 @@ import {Constants} from "./constants"; import {Menus} from "./menus"; import {Model} from "./layout/Model"; -import {onGetConfig} from "./util/onGetConfig"; +import {onGetConfig} from "./boot/onGetConfig"; import "./assets/scss/base.scss"; import {initBlockPopover} from "./block/popover"; import {account} from "./config/account"; diff --git a/app/src/layout/topBar.ts b/app/src/layout/topBar.ts index 87461da46..e81301e60 100644 --- a/app/src/layout/topBar.ts +++ b/app/src/layout/topBar.ts @@ -9,7 +9,6 @@ import {MenuItem} from "../menus/Menu"; import {setMode} from "../util/assets"; import {openSetting} from "../config"; import {openSearch} from "../search/spread"; -import {setProxy} from "../util/onGetConfig"; export const updateEditModeElement = () => { const target = document.querySelector("#barReadonly"); @@ -23,6 +22,7 @@ export const updateEditModeElement = () => { target.querySelector("use").setAttribute("xlink:href", "#iconEdit"); } }; + export const initBar = () => { const toolbarElement = document.getElementById("toolbar"); toolbarElement.innerHTML = ` @@ -126,5 +126,4 @@ export const initBar = () => { target = target.parentElement; } }); - setProxy(); }; diff --git a/app/src/mobile/index.ts b/app/src/mobile/index.ts index 6ac3edeae..e59d6ed09 100644 --- a/app/src/mobile/index.ts +++ b/app/src/mobile/index.ts @@ -20,6 +20,7 @@ import {getLocalStorage} from "../protyle/util/compatibility"; import {openMobileFileById} from "./editor"; import {getSearch} from "../util/functions"; import {initRightMenu} from "./menu"; +import {openChangelog} from "../boot/openChangelog"; class App { constructor() { @@ -65,6 +66,7 @@ class App { window.siyuan.emojis = emojiResponse.data as IEmoji[]; initFramework(); initRightMenu(); + openChangelog(); }); }); addGA(); diff --git a/app/src/window/init.ts b/app/src/window/init.ts index c5d956684..184f8a7fa 100644 --- a/app/src/window/init.ts +++ b/app/src/window/init.ts @@ -1,6 +1,6 @@ import {Constants} from "../constants"; import {webFrame} from "electron"; -import {globalShortcut} from "../util/globalShortcut"; +import {globalShortcut} from "../boot/globalShortcut"; import {fetchPost} from "../util/fetch"; import {JSONToCenter, resizeTabs} from "../layout/util"; import {initStatus} from "../layout/status"; @@ -8,7 +8,7 @@ import {appearance} from "../config/appearance"; import {initAssets, setInlineStyle} from "../util/assets"; import {renderSnippet} from "../config/util/snippets"; import {getSearch} from "../util/functions"; -import {initWindow} from "../util/onGetConfig"; +import {initWindow} from "../boot/onGetConfig"; export const init = () => { webFrame.setZoomFactor(window.siyuan.storage[Constants.LOCAL_ZOOM]);