From 81224760da82cbc7376e6a0bce36cc2de2d04b62 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Sun, 27 Nov 2022 16:48:43 +0800 Subject: [PATCH] :sparkles: https://github.com/siyuan-note/siyuan/issues/4772 --- app/src/assets/scss/_list.scss | 2 +- app/src/assets/scss/_search.scss | 7 +++++++ app/src/emoji/index.ts | 13 ++++++++----- app/src/layout/dock/Outline.ts | 2 +- app/src/search/util.ts | 12 ++++++++---- app/src/util/globalShortcut.ts | 2 +- app/src/util/pathName.ts | 2 +- 7 files changed, 27 insertions(+), 13 deletions(-) diff --git a/app/src/assets/scss/_list.scss b/app/src/assets/scss/_list.scss index 4eedce9cf..2282f058f 100644 --- a/app/src/assets/scss/_list.scss +++ b/app/src/assets/scss/_list.scss @@ -159,7 +159,7 @@ padding: 0 2px; flex-shrink: 0; height: 14px; - width: 12px; + width: 14px; line-height: 14px; font-size: 12px; diff --git a/app/src/assets/scss/_search.scss b/app/src/assets/scss/_search.scss index 17ceef469..0e043c771 100644 --- a/app/src/assets/scss/_search.scss +++ b/app/src/assets/scss/_search.scss @@ -70,4 +70,11 @@ background-color: var(--b3-theme-background); border-top: 1px solid var(--b3-theme-surface-lighter); } + + &__list { + position: relative; + height: calc(50% - 69px); + overflow: auto; + padding-bottom: 8px; + } } diff --git a/app/src/emoji/index.ts b/app/src/emoji/index.ts index fc64a527f..b22b219dc 100644 --- a/app/src/emoji/index.ts +++ b/app/src/emoji/index.ts @@ -17,13 +17,13 @@ export const getRandomEmoji = () => { return emojis.items[getRandom(0, emojis.items.length - 1)].unicode; }; -export const unicode2Emoji = (unicode: string, assic = false) => { +export const unicode2Emoji = (unicode: string, assic = false, className = "", needSpan = false) => { if (!unicode) { return ""; } let emoji = ""; if (unicode.indexOf(".") > -1) { - emoji = ``; + emoji = ``; } else if (isMobile() || window.siyuan.config.appearance.nativeEmoji || assic) { try { unicode.split("-").forEach(item => { @@ -33,12 +33,15 @@ export const unicode2Emoji = (unicode: string, assic = false) => { emoji += String.fromCodePoint(parseInt(item, 16)); } }); + if (needSpan) { + emoji = `${emoji}` + } } catch (e) { // 自定义表情搜索报错 https://github.com/siyuan-note/siyuan/issues/5883 // 这里忽略错误不做处理 } } else { - emoji = ``; + emoji = ``; } return emoji; }; @@ -395,11 +398,11 @@ ${unicode2Emoji(emoji.unicode)}`; }); }; -export const updateOutlineEmoji = (unicode: string, id:string) => { +export const updateOutlineEmoji = (unicode: string, id: string) => { /// #if !MOBILE getAllModels().outline.forEach(model => { if (model.blockId === id) { - model.headerElement.nextElementSibling.firstElementChild.innerHTML = unicode2Emoji(unicode || Constants.SIYUAN_IMAGE_FILE); + model.headerElement.nextElementSibling.firstElementChild.outerHTML = unicode2Emoji(unicode || Constants.SIYUAN_IMAGE_FILE, false, "b3-list-item__graphic", true); } }); /// #endif diff --git a/app/src/layout/dock/Outline.ts b/app/src/layout/dock/Outline.ts index c12c8230c..bccb573ed 100644 --- a/app/src/layout/dock/Outline.ts +++ b/app/src/layout/dock/Outline.ts @@ -175,7 +175,7 @@ export class Outline extends Model { public updateDocTitle(ial?: IObject) { if (this.type === "pin") { if (ial) { - let iconHTML = `${unicode2Emoji(ial.icon || Constants.SIYUAN_IMAGE_FILE)}`; + let iconHTML = `${unicode2Emoji(ial.icon || Constants.SIYUAN_IMAGE_FILE, false, "b3-list-item__graphic", true)}`; if (ial.icon === Constants.ZWSP && this.headerElement.nextElementSibling.firstElementChild) { iconHTML = this.headerElement.nextElementSibling.firstElementChild.outerHTML; } diff --git a/app/src/search/util.ts b/app/src/search/util.ts index db5ffcefb..ccf6eb6ca 100644 --- a/app/src/search/util.ts +++ b/app/src/search/util.ts @@ -129,7 +129,7 @@ export const genSearch = (config: ISearchOption, element: Element, closeCB?: () -
+
` @@ -284,7 +284,7 @@ export const genSearch = (config: ISearchOption, element: Element, closeCB?: () break; } else if (target.classList.contains("b3-list-item__toggle")) { target.parentElement.nextElementSibling.classList.toggle("fn__none"); - target.firstElementChild.classList.toggle("b3-list-item__arrow"); + target.firstElementChild.classList.toggle("b3-list-item__arrow--open"); event.stopPropagation(); event.preventDefault(); break; @@ -338,6 +338,9 @@ export const genSearch = (config: ISearchOption, element: Element, closeCB?: () }); } window.siyuan.menus.menu.remove(); + } else if (target.querySelector(".b3-list-item__toggle")) { + target.nextElementSibling.classList.toggle("fn__none"); + target.firstElementChild.firstElementChild.classList.toggle("b3-list-item__arrow--open"); } event.stopPropagation(); event.preventDefault(); @@ -617,10 +620,11 @@ const onSearch = (data: IBlock[], edit: Protyle, element: Element) => { -${unicode2Emoji(getNotebookIcon(item.box) || Constants.SIYUAN_IMAGE_NOTE)}${escapeHtml(getNotebookName(item.box))}/${unicode2Emoji(item.ial.icon)}${item.ial.icon ? " " : ""}${item.content} +${unicode2Emoji(getNotebookIcon(item.box) || Constants.SIYUAN_IMAGE_NOTE, false, "b3-list-item__graphic")} +${escapeHtml(getNotebookName(item.box))}${item.hPath}
`; item.children.forEach((childItem, childIndex) => { - resultHTML += `
+ resultHTML += `
${unicode2Emoji(childItem.ial.icon)}${childItem.ial.icon ? " " : ""}${childItem.content}
`; diff --git a/app/src/util/globalShortcut.ts b/app/src/util/globalShortcut.ts index de1277050..14d9ddd2b 100644 --- a/app/src/util/globalShortcut.ts +++ b/app/src/util/globalShortcut.ts @@ -382,7 +382,7 @@ export const globalShortcut = () => { let rootId = ""; if (item.model instanceof Editor) { rootId = ` data-node-id="${item.model.editor.protyle.block.rootID}"`; - icon = `${unicode2Emoji(item.docIcon || Constants.SIYUAN_IMAGE_FILE)}`; + icon = unicode2Emoji(item.docIcon || Constants.SIYUAN_IMAGE_FILE, false, "b3-list-item__graphic", true); } tabHtml += `
  • ${icon}${escapeHtml(item.title)}
  • `; }); diff --git a/app/src/util/pathName.ts b/app/src/util/pathName.ts index 35fde5259..05b434a11 100644 --- a/app/src/util/pathName.ts +++ b/app/src/util/pathName.ts @@ -399,7 +399,7 @@ data-box="${notebookId}" class="b3-list-item" data-path="${item.path}"> - ${unicode2Emoji(item.icon || (item.subFileCount === 0 ? Constants.SIYUAN_IMAGE_FILE : Constants.SIYUAN_IMAGE_FOLDER))} + ${unicode2Emoji(item.icon || (item.subFileCount === 0 ? Constants.SIYUAN_IMAGE_FILE : Constants.SIYUAN_IMAGE_FOLDER), false, "b3-list-item__graphic", true)} ${getDisplayName(item.name, true, true)} ${countHTML} `;