diff --git a/app/src/protyle/breadcrumb/index.ts b/app/src/protyle/breadcrumb/index.ts index fa7928a04..bb8b1605b 100644 --- a/app/src/protyle/breadcrumb/index.ts +++ b/app/src/protyle/breadcrumb/index.ts @@ -31,6 +31,7 @@ import {emitOpenMenu} from "../../plugin/EventBus"; import {isInAndroid, isIPad, isMac, updateHotkeyTip} from "../util/compatibility"; import {resize} from "../util/resize"; import {listIndent, listOutdent} from "../wysiwyg/list"; +import {improveBreadcrumbAppearance} from "../wysiwyg/renderBacklink"; export class Breadcrumb { public element: HTMLElement; @@ -651,30 +652,8 @@ ${padHTML} html += ''; } }); - this.element.classList.remove("protyle-breadcrumb__bar--nowrap"); this.element.innerHTML = html; - const itemElements = Array.from(this.element.querySelectorAll(".protyle-breadcrumb__text")); - if (itemElements.length === 0) { - return; - } - let jump = false; - while (this.element.scrollHeight > 30 && !jump && itemElements.length > 1) { - itemElements.find((item, index) => { - if (index > 0) { - if (!item.classList.contains("protyle-breadcrumb__text--ellipsis")) { - item.classList.add("protyle-breadcrumb__text--ellipsis"); - return true; - } - if (index === itemElements.length - 1 && item.classList.contains("protyle-breadcrumb__text--ellipsis")) { - jump = true; - } - } - }); - } - this.element.classList.add("protyle-breadcrumb__bar--nowrap"); - if (this.element.lastElementChild) { - this.element.scrollLeft = (this.element.lastElementChild as HTMLElement).offsetLeft - this.element.clientWidth + 14; - } + improveBreadcrumbAppearance(this.element.parentElement); }); /// #endif } diff --git a/app/src/protyle/render/blockRender.ts b/app/src/protyle/render/blockRender.ts index 6eb9f88a4..41e416b15 100644 --- a/app/src/protyle/render/blockRender.ts +++ b/app/src/protyle/render/blockRender.ts @@ -3,7 +3,7 @@ import {fetchPost, fetchSyncPost} from "../../util/fetch"; import {processRender} from "../util/processCode"; import {highlightRender} from "./highlightRender"; import {Constants} from "../../constants"; -import {genBreadcrumb} from "../wysiwyg/renderBacklink"; +import {genBreadcrumb, improveBreadcrumbAppearance} from "../wysiwyg/renderBacklink"; import {avRender} from "./av/render"; export const blockRender = (protyle: IProtyle, element: Element, top?: number) => { @@ -115,6 +115,7 @@ const renderEmbed = (blocks: { item.lastElementChild.insertAdjacentHTML("beforebegin", html + // 辅助上下移动时进行选中 `