This commit is contained in:
Vanessa 2023-08-12 12:01:21 +08:00
parent 75ad2a2986
commit ab7c0ca8c6
2 changed files with 14 additions and 20 deletions

View file

@ -249,21 +249,17 @@ export const initWindow = (app: App) => {
currentWindow.on("blur", winOnBlur);
if (!isWindow()) {
ipcRenderer.on(Constants.SIYUAN_OPENURL, (event, url) => {
app.plugins.forEach(plugin => {
plugin.eventBus.emit("open-siyuan-url", { url });
});
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
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."}
const match = Object.keys(plugin.models).find(key => {
Object.keys(plugin.models).find(key => {
if (key === pluginId) {
let data = getSearch("data", url);
try {
@ -283,12 +279,10 @@ export const initWindow = (app: App) => {
return true;
}
});
if (match) {
return true;
}
});
return;
}
return true;
}
});
return;
}
if (isSYProtocol(url)) {
const id = getIdFromSYProtocol(url);
@ -304,7 +298,7 @@ export const initWindow = (app: App) => {
ipcRenderer.send(Constants.SIYUAN_SHOW, getCurrentWindow().id);
}
app.plugins.forEach(plugin => {
plugin.eventBus.emit("open-siyuan-url-blocks", {
plugin.eventBus.emit("open-siyuan-url-block", {
url,
id,
focus,

View file

@ -44,7 +44,7 @@ type TEventBus = "ws-main" |
"open-noneditableblock" |
"open-menu-blockref" | "open-menu-fileannotationref" | "open-menu-tag" | "open-menu-link" | "open-menu-image" |
"open-menu-av" | "open-menu-content" | "open-menu-breadcrumbmore" |
"open-siyuan-url" | "open-siyuan-url-blocks" | "open-siyuan-url-plugins" |
"open-siyuan-url-plugin" | "open-siyuan-url-block" |
"input-search" |
"loaded-protyle"
type TAVCol =