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",