|
@@ -249,21 +249,17 @@ export const initWindow = (app: App) => {
|
|
currentWindow.on("blur", winOnBlur);
|
|
currentWindow.on("blur", winOnBlur);
|
|
if (!isWindow()) {
|
|
if (!isWindow()) {
|
|
ipcRenderer.on(Constants.SIYUAN_OPENURL, (event, url) => {
|
|
ipcRenderer.on(Constants.SIYUAN_OPENURL, (event, url) => {
|
|
- app.plugins.forEach(plugin => {
|
|
|
|
- plugin.eventBus.emit("open-siyuan-url", { url });
|
|
|
|
- });
|
|
|
|
if (url.startsWith("siyuan://plugins/")) {
|
|
if (url.startsWith("siyuan://plugins/")) {
|
|
- const urlObj = new URL(url);
|
|
|
|
- const pluginId = urlObj.pathname.split("/")[3];
|
|
|
|
- if (pluginId) {
|
|
|
|
- app.plugins.find(plugin => {
|
|
|
|
|
|
+ const pluginId = url.replace("siyuan://plugins/", "").split("?")[0];
|
|
|
|
+ if (!pluginId) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ app.plugins.find(plugin => {
|
|
|
|
+ if (pluginId.startsWith(plugin.name)) {
|
|
// siyuan://plugins/plugin-name/foo?bar=baz
|
|
// siyuan://plugins/plugin-name/foo?bar=baz
|
|
- if (pluginId.startsWith(plugin.name)) {
|
|
|
|
- plugin.eventBus.emit("open-siyuan-url-plugins", { url });
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+ plugin.eventBus.emit("open-siyuan-url-plugin", {url});
|
|
// siyuan://plugins/plugin-samplecustom_tab?title=自定义页签&icon=iconFace&data={"text": "This is the custom plugin tab I opened via protocol."}
|
|
// siyuan://plugins/plugin-samplecustom_tab?title=自定义页签&icon=iconFace&data={"text": "This is the custom plugin tab I opened via protocol."}
|
|
- const match = Object.keys(plugin.models).find(key => {
|
|
|
|
|
|
+ Object.keys(plugin.models).find(key => {
|
|
if (key === pluginId) {
|
|
if (key === pluginId) {
|
|
let data = getSearch("data", url);
|
|
let data = getSearch("data", url);
|
|
try {
|
|
try {
|
|
@@ -283,12 +279,10 @@ export const initWindow = (app: App) => {
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
});
|
|
});
|
|
- if (match) {
|
|
|
|
- return true;
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ return;
|
|
}
|
|
}
|
|
if (isSYProtocol(url)) {
|
|
if (isSYProtocol(url)) {
|
|
const id = getIdFromSYProtocol(url);
|
|
const id = getIdFromSYProtocol(url);
|
|
@@ -304,7 +298,7 @@ export const initWindow = (app: App) => {
|
|
ipcRenderer.send(Constants.SIYUAN_SHOW, getCurrentWindow().id);
|
|
ipcRenderer.send(Constants.SIYUAN_SHOW, getCurrentWindow().id);
|
|
}
|
|
}
|
|
app.plugins.forEach(plugin => {
|
|
app.plugins.forEach(plugin => {
|
|
- plugin.eventBus.emit("open-siyuan-url-blocks", {
|
|
|
|
|
|
+ plugin.eventBus.emit("open-siyuan-url-block", {
|
|
url,
|
|
url,
|
|
id,
|
|
id,
|
|
focus,
|
|
focus,
|