diff --git a/app/appearance/langs/de_DE.json b/app/appearance/langs/de_DE.json index c5c93a521..05b430309 100644 --- a/app/appearance/langs/de_DE.json +++ b/app/appearance/langs/de_DE.json @@ -833,7 +833,7 @@ "customSort": "Benutzerdefinierte Sortierung", "collapse": "Einklappen", "blockEmbed": "Block einbetten", - "rowTip": "Klicken Sie Menü öffnen
Ziehen Sortieren", + "rowTip": "Klicken Sie Menü öffnen
Ziehen Sortieren
⇧Klicken Attribut aktualisieren", "gutterTip": "Klicken/⌘/ Menü öffnen
⌘Klick/⌥→ Fokussieren
⌥Klick/⌘↑ Einklappen/Erweitern
⇧Klick/⌥⌘A Attribut aktualisieren
Ziehen Position verschieben
⌃Ziehen Wiederholen
⌥Ziehen Blockreferenz erzeugen
⇧Ziehen Eingebetteten Block erzeugen", "gutterTip2": "Klicken Menü öffnen
⇧Klicken Attribut aktualisieren", "linkDistance": "Link-Distanz", diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index 25a3c5b57..441a91c19 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -833,7 +833,7 @@ "customSort": "Custom Sorting", "collapse": "Collapse", "blockEmbed": "Embed Block", - "rowTip": "Click Open Menu
Drag Sort", + "rowTip": "Click Open Menu
Drag Sort
⇧Click Update attribute", "gutterTip": "Click/⌘/ Open Menu
⌘Click/⌥→ Focus
⌥Click/⌘↑ Collapse/Expand
⇧Click/⌥⌘A Update attribute
Drag Move position
⌃Drag Repeat
⌥Drag Generate block reference
⇧Drag Generate embedded block", "gutterTip2": "Click Open Menu
⇧Click Update attribute", "linkDistance": "Link distance", diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json index 44d69b692..ff6b6651e 100644 --- a/app/appearance/langs/es_ES.json +++ b/app/appearance/langs/es_ES.json @@ -833,7 +833,7 @@ "customSort": "Clasificación personalizada", "collapse": "Colapsar", "blockEmbed": "Integrar Bloque", - "rowTip": "Haga clic en Abrir menú
Arrastre Ordenar", + "rowTip": "Haga clic en Abrir menú
Arrastre Ordenar
⇧Haga clic en Actualizar atributo", "gutterTip": "Haga clic/⌘/ Abrir menú
⌘Haga clic/⌥→ Enfoque
⌥Hacer clic/⌘↑ Contraer/Expandir
⇧Hacer clic/⌥⌘A Actualizar atributo
Arrastrar Mover posición
⌃Arrastrar Repetir
⌥Arrastra Generar referencia a bloque
⇧Arrastrar Generar bloque incrustado", "gutterTip2": "Haga clic en Abrir menú
⇧Haga clic en Actualizar atributo", "linkDistance": "Distancia de enlace", diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index d9b0bd114..4c033b984 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -833,7 +833,7 @@ "customSort": "Tri personnalisé", "collapse": "Collapse", "blockEmbed": "incorporer le bloc", - "rowTip": "Cliquez sur Ouvrir le menu
Faites glisser Tri", + "rowTip": "Cliquez sur Ouvrir le menu
Faites glisser Tri
⇧Cliquez sur Mettre à jour l'attribut", "gutterTip": "Cliquez/⌘/ Ouvrir le menu
⌘Cliquez/⌥→ Se concentrer
⌥Cliquez/⌘↑ Réduire/Développer
⇧Cliquez/⌥⌘A Mettre à jour l'attribut
Faites glisser Déplacer la position
⌃Faites glisser Répétez
⌥Faites glisser Générer une référence de bloc
⇧Faites glisser Générer un bloc intégré", "gutterTip2": "Cliquez sur Ouvrir le menu
⇧Cliquez sur Mettre à jour l'attribut", "linkDistance": "Distance du lien", diff --git a/app/appearance/langs/he_IL.json b/app/appearance/langs/he_IL.json index 379914ce6..98588d758 100644 --- a/app/appearance/langs/he_IL.json +++ b/app/appearance/langs/he_IL.json @@ -833,7 +833,7 @@ "customSort": "מיון מותאם אישית", "collapse": "התרסק", "blockEmbed": "הטבעה בלוק", - "rowTip": "לחץ פתח תפריט
גרור מיון", + "rowTip": "לחץ על פתח תפריט
גרור את מיין
⇧לחץ על עדכן מאפיין", "gutterTip": "לחץ/⌘/פתח תפריט
⌘לחץ/⌥→ מקד
⌥לחץ/⌘↑ התרסק/הרחב
⇧לחץ/⌥⌘A עדכן מאפיין
גרור שנה מקום
⌃גרור חזור
⌥גרור צור הפניה לבלוק
⇧גרור צור בלוק מוטמע", "gutterTip2": "לחץ פתח תפריט
⇧לחץ עדכן מאפיין", "linkDistance": "מרחק קישור", diff --git a/app/appearance/langs/it_IT.json b/app/appearance/langs/it_IT.json index ceb9dccc5..656b8fd1b 100644 --- a/app/appearance/langs/it_IT.json +++ b/app/appearance/langs/it_IT.json @@ -833,7 +833,7 @@ "customSort": "Ordinamento personalizzato", "collapse": "Comprimi", "blockEmbed": "Incorpora Blocco", - "rowTip": "Clicca Apri Menu
Trascina Ordina", + "rowTip": "Clicca Apri Menu
Trascina Ordina
⇧Clicca Aggiorna attributo", "gutterTip": "Clicca/⌘/ Apri Menu
⌘Clicca/⌥→ Metti a fuoco
⌥Clicca/⌘↑ Comprimi/Espandi
⇧Clicca/⌥⌘A Aggiorna attributo
Trascina Sposta posizione
⌃Trascina Ripeti
⌥Trascina Genera riferimento blocco
⇧Trascina Genera blocco incorporato", "gutterTip2": "Clicca Apri Menu
⇧Clicca Aggiorna attributo", "linkDistance": "Distanza del collegamento", diff --git a/app/appearance/langs/ja_JP.json b/app/appearance/langs/ja_JP.json index 938cf910f..edd851714 100644 --- a/app/appearance/langs/ja_JP.json +++ b/app/appearance/langs/ja_JP.json @@ -833,7 +833,7 @@ "customSort": "カスタムソート", "collapse": "折りたたみ", "blockEmbed": "埋め込みブロック", - "rowTip": "クリック メニューを開く
ドラッグ 並べ替え", + "rowTip": "クリック メニューを開く
ドラッグ 並べ替え
⇧クリック 属性を変更", "gutterTip": "クリック/⌘/ ブロックメニューを開く
⌘クリック/⌥→ フォーカス
⌥クリック/⌘↑ 折りたたみ/展開
⇧クリック/⌥⌘A 属性を変更
ドラッグ ブロックを移動
⌃ドラッグ ブロックを複製
⌥ドラッグ ブロック参照を生成
⇧ドラッグ 埋め込みブロックを生成", "gutterTip2": "クリック メニューを開く
⇧クリック 属性を変更", "linkDistance": "リンクの距離", diff --git a/app/appearance/langs/pl_PL.json b/app/appearance/langs/pl_PL.json index fc1edf051..964fc18c7 100644 --- a/app/appearance/langs/pl_PL.json +++ b/app/appearance/langs/pl_PL.json @@ -833,7 +833,7 @@ "customSort": "Niestandardowe sortowanie", "collapse": "Zwiń", "blockEmbed": "Wstaw blok", - "rowTip": "Kliknij Otwórz menu
Przeciągnij Sortuj", + "rowTip": "Kliknij Otwórz menu
Przeciągnij Sortuj
⇧Kliknij Zaktualizuj atrybut", "gutterTip": "Kliknij/⌘/ Otwórz menu
⌘Kliknij/⌥→ Skupienie
⌥Kliknij/⌘↑ Zwiń/Rozwiń
⇧Kliknij/⌥⌘A Zaktualizuj atrybut
Przeciągnij Przesuń pozycję
⌃Przeciągnij Powtórz
⌥Przeciągnij Generuj odniesienie do bloku
⇧Przeciągnij Generuj wbudowany blok", "gutterTip2": "Kliknij Otwórz menu
⇧Kliknij Zaktualizuj atrybut", "linkDistance": "Odległość linku", diff --git a/app/appearance/langs/ru_RU.json b/app/appearance/langs/ru_RU.json index b57afbb06..6194d7d22 100644 --- a/app/appearance/langs/ru_RU.json +++ b/app/appearance/langs/ru_RU.json @@ -833,7 +833,7 @@ "customSort": "Индивидуальная сортировка", "collapse": "Свернуть", "blockEmbed": "Встраиваемый блок", - "rowTip": "Нажмите Открыть меню
Перетащите Сортировать", + "rowTip": "Нажмите Открыть меню
Перетащите Сортировать
⇧Клик Обновить атрибут", "gutterTip": "Нажмите/⌘/ Открыть меню
⌘Клик/⌥→ Фокус
⌥Клик/⌘↑ Свернуть/Развернуть
⇧Клик/⌥⌘A Обновить атрибут
Перетащите Переместить позицию
⌃Перетащите Повторить
⌥Перетащите Сгенерировать ссылку блока
⇧Перетащите Сгенерировать встроенный блок", "gutterTip2": "Нажмите Открыть меню
⇧Клик Обновить атрибут", "linkDistance": "Расстояние ссылки", diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index 5052eeb5a..88804fdd9 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -833,7 +833,7 @@ "customSort": "自訂排序", "collapse": "摺疊", "blockEmbed": "嵌入塊", - "rowTip": "點擊 打開菜單
拖拽 排序", + "rowTip": "點擊 打開菜單
拖拽 排序
⇧點擊 修改屬性", "gutterTip": "點擊/⌘/ 打開菜單
⌘點擊 聚焦
⌥點擊/⌥→ 折疊/展開
⇧點擊/⌥⌘A 修改屬性
拖拽 移動位置
⌃拖拽 重複
⌥拖拽 生成塊引用
⇧拖拽 生成嵌入塊", "gutterTip2": "點擊 打開功能表
⇧點擊 修改屬性", "linkDistance": "連結距離", diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index 7a240203a..8085ed98b 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -833,7 +833,7 @@ "customSort": "自定义排序", "collapse": "折叠", "blockEmbed": "嵌入块", - "rowTip": "点击 打开菜单
拖拽 排序", + "rowTip": "点击 打开菜单
拖拽 排序
⇧点击 修改属性", "gutterTip": "点击/⌘/ 打开菜单
⌘点击/⌥→ 聚焦
⌥点击/⌘↑ 折叠/展开
⇧点击/⌥⌘A 修改属性
拖拽 移动位置
⌃拖拽 重复
⌥拖拽 生成块引用
⇧拖拽 生成嵌入块", "gutterTip2": "点击 打开菜单
⇧点击 修改属性", "linkDistance": "链接距离", diff --git a/app/src/assets/scss/business/_av.scss b/app/src/assets/scss/business/_av.scss index 24f0ffe4c..2185294cf 100644 --- a/app/src/assets/scss/business/_av.scss +++ b/app/src/assets/scss/business/_av.scss @@ -3,6 +3,7 @@ box-sizing: border-box; display: flex; max-width: 100%; + margin: 4px 0 !important; &:hover .av__views .block__icon { opacity: 1; diff --git a/app/src/menus/util.ts b/app/src/menus/util.ts index 41153c2df..70c1fb551 100644 --- a/app/src/menus/util.ts +++ b/app/src/menus/util.ts @@ -33,7 +33,7 @@ export const exportAsset = (src: string) => { }; }; -export const openEditorTab = (app: App, ids: string[], notebookId?: string, pathString?: string) => { +export const openEditorTab = (app: App, ids: string[], notebookId?: string, pathString?: string, onlyGetMenus = false) => { /// #if !MOBILE const openSubmenus: IMenu[] = [{ id: "insertRight", @@ -159,6 +159,9 @@ export const openEditorTab = (app: App, ids: string[], notebookId?: string, path } }); /// #endif + if (onlyGetMenus ) { + return openSubmenus; + } window.siyuan.menus.menu.append(new MenuItem({ id: "openBy", label: window.siyuan.languages.openBy, diff --git a/app/src/protyle/gutter/index.ts b/app/src/protyle/gutter/index.ts index f22984764..8ed22c5ee 100644 --- a/app/src/protyle/gutter/index.ts +++ b/app/src/protyle/gutter/index.ts @@ -8,7 +8,7 @@ import { import {getIconByType} from "../../editor/getIcon"; import {enterBack, iframeMenu, setFold, tableMenu, videoMenu, zoomOut} from "../../menus/protyle"; import {MenuItem} from "../../menus/Menu"; -import {copySubMenu, openAttr, openWechatNotify} from "../../menus/commonMenuItem"; +import {copySubMenu, openAttr, openFileAttr, openWechatNotify} from "../../menus/commonMenuItem"; import { copyPlainText, isInAndroid, @@ -285,6 +285,15 @@ export class Gutter { } blockElement.setAttribute("updated", newUpdated); } else { + if (!protyle.disabled && event.shiftKey) { + const blockId = rowElement.querySelector('[data-dtype="block"] .av__celltext--ref')?.getAttribute("data-id") + if (blockId) { + fetchPost("/api/attr/getBlockAttrs", {id: blockId}, (response) => { + openFileAttr(response.data, "av", protyle); + }); + return; + } + } avContextmenu(protyle, rowElement as HTMLElement, { x: gutterRect.left, y: gutterRect.bottom, @@ -2232,7 +2241,13 @@ export class Gutter { const rowElement = hasClosestByClassName(target, "av__row"); if (rowElement && !rowElement.classList.contains("av__row--header")) { element = rowElement; - html = ``; + let iconAriaLabel = isMac() ? window.siyuan.languages.rowTip : window.siyuan.languages.rowTip.replace("⇧", "Shift+"); + if (protyle.disabled) { + iconAriaLabel = window.siyuan.languages.rowTip.substring(0, window.siyuan.languages.rowTip.indexOf("`; if (!protyle.disabled) { html = `${html}`; } diff --git a/app/src/protyle/render/av/action.ts b/app/src/protyle/render/av/action.ts index 16a97e4ea..4e350723c 100644 --- a/app/src/protyle/render/av/action.ts +++ b/app/src/protyle/render/av/action.ts @@ -2,7 +2,7 @@ import {Menu} from "../../../plugin/Menu"; import {hasClosestBlock, hasClosestByAttribute, hasClosestByClassName} from "../../util/hasClosest"; import {transaction} from "../../wysiwyg/transaction"; import {openEditorTab} from "../../../menus/util"; -import {copySubMenu} from "../../../menus/commonMenuItem"; +import {copySubMenu, openFileAttr} from "../../../menus/commonMenuItem"; import { addDragFill, genCellValueByElement, @@ -262,8 +262,26 @@ export const avContextmenu = (protyle: IProtyle, rowElement: HTMLElement, positi updateHeader(rowElement); const keyCellElement = rowElements[0].querySelector(".av__cell[data-block-id]") as HTMLElement; if (rowElements.length === 1 && keyCellElement.getAttribute("data-detached") !== "true") { + /// #if !MOBILE const blockId = rowElements[0].getAttribute("data-id"); - openEditorTab(protyle.app, [blockId]); + const openSubmenus = openEditorTab(protyle.app, [blockId], undefined, undefined, true); + openSubmenus.push({type: "separator"}) + openSubmenus.push({ + icon: "iconAttr", + label: window.siyuan.languages.attr, + click: () => { + fetchPost("/api/attr/getBlockAttrs", {id: blockId}, (response) => { + openFileAttr(response.data, "av", protyle); + }); + } + }) + menu.addItem({ + id: "openBy", + label: window.siyuan.languages.openBy, + icon: "iconOpen", + submenu: openSubmenus, + }); + /// #endif menu.addItem({ label: window.siyuan.languages.copy, icon: "iconCopy",