Vanessa 2026-01-16 11:51:55 +08:00
parent 88e1f0312c
commit 96ad8e95e5
3 changed files with 18 additions and 13 deletions

View file

@ -63,6 +63,7 @@ export const processSYLink = (app: App, url: string) => {
if (urlObj && isSYProtocol(url)) {
const id = getIdFromSYProtocol(url);
const focus = urlObj.searchParams.get("focus") === "1";
window.siyuan.editorIsFullscreen = urlObj.searchParams.get("fullscreen") === "1";
fetchPost("/api/block/checkBlockExist", {id}, existResponse => {
if (existResponse.data) {
checkFold(id, (zoomIn) => {

View file

@ -481,13 +481,14 @@ export const JSONToLayout = (app: App, isStart: boolean) => {
}
}
});
const idZoomIn = getIdZoomInByPath();
if (idZoomIn.id) {
openFileById({
app,
id: idZoomIn.id,
action: idZoomIn.isZoomIn ? [Constants.CB_GET_ALL, Constants.CB_GET_FOCUS] : [Constants.CB_GET_FOCUS, Constants.CB_GET_CONTEXT, Constants.CB_GET_ROOTSCROLL],
zoomIn: idZoomIn.isZoomIn
zoomIn: idZoomIn.isZoomIn,
});
} else {
let latestTabHeaderElement: HTMLElement;
@ -980,7 +981,7 @@ export const adjustLayout = (layout: Layout = window.siyuan.layout.centerLayout.
item.element.style.minWidth = "";
}
});
if (layout.direction === "lr" && layout.element.scrollWidth > layout.element.clientWidth + 2 ) {
if (layout.direction === "lr" && layout.element.scrollWidth > layout.element.clientWidth + 2) {
let index = Math.ceil(screen.width / 8);
while (index > 0) {
let width = 0;

View file

@ -27,25 +27,28 @@ export const useShell = (cmd: "showItemInFolder" | "openPath", filePath: string)
export const getIdZoomInByPath = () => {
const searchParams = new URLSearchParams(window.location.search);
const PWAURL = searchParams.get("url");
let id = "";
let isZoomIn = false;
const data = {
id: "",
isZoomIn: false,
};
if (/^web\+siyuan:\/\/blocks\/\d{14}-\w{7}/.test(PWAURL)) {
// PWA 捕获 web+siyuan://blocks/20221031001313-rk7sd0e?focus=1
id = PWAURL.substring(20, 20 + 22);
isZoomIn = getSearch("focus", PWAURL) === "1";
data.id = PWAURL.substring(20, 20 + 22);
data.isZoomIn = getSearch("focus", PWAURL) === "1";
window.siyuan.editorIsFullscreen = getSearch("fullscreen", PWAURL) === "1";
} else if (window.JSAndroid) {
// PAD 通过思源协议打开
const SYURL = window.JSAndroid.getBlockURL();
id = getIdFromSYProtocol(SYURL);
isZoomIn = getSearch("focus", SYURL) === "1";
data.id = getIdFromSYProtocol(SYURL);
data.isZoomIn = getSearch("focus", SYURL) === "1";
window.siyuan.editorIsFullscreen = getSearch("fullscreen", SYURL) === "1";
} else {
// 支持通过 URL 查询字符串参数 `id` 和 `focus` 跳转到 Web 端指定块 https://github.com/siyuan-note/siyuan/pull/7086
id = searchParams.get("id");
isZoomIn = searchParams.get("focus") === "1";
data.id = searchParams.get("id");
data.isZoomIn = searchParams.get("focus") === "1";
window.siyuan.editorIsFullscreen = searchParams.get("fullscreen") === "1";
}
return {
id, isZoomIn
};
return data;
};
export const isSYProtocol = (url: string) => {