mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-21 17:10:12 +01:00
This commit is contained in:
parent
37ba3db35f
commit
5f9e55539e
15 changed files with 26 additions and 29 deletions
|
|
@ -313,8 +313,7 @@
|
||||||
"math": "Math Block",
|
"math": "Math Block",
|
||||||
"listItem": "List item",
|
"listItem": "List item",
|
||||||
"superBlock": "Super block",
|
"superBlock": "Super block",
|
||||||
"expandAll": "Expand All",
|
"expand": "Expand",
|
||||||
"collapseAll": "Collapse All",
|
|
||||||
"showDock": "Show Dock",
|
"showDock": "Show Dock",
|
||||||
"hideDock": "Hide Dock",
|
"hideDock": "Hide Dock",
|
||||||
"notebookName": "Please enter a notebook name",
|
"notebookName": "Please enter a notebook name",
|
||||||
|
|
|
||||||
|
|
@ -313,8 +313,7 @@
|
||||||
"math": "Bloque de matemáticas",
|
"math": "Bloque de matemáticas",
|
||||||
"listItem": "Elemento de la lista",
|
"listItem": "Elemento de la lista",
|
||||||
"superBlock": "Superbloque",
|
"superBlock": "Superbloque",
|
||||||
"expandAll": "Expandir todo",
|
"expand": "Expandir",
|
||||||
"collapseAll": "Colapsar todo",
|
|
||||||
"showDock": "Mostrar Dock",
|
"showDock": "Mostrar Dock",
|
||||||
"hideDock": "Ocultar Dock",
|
"hideDock": "Ocultar Dock",
|
||||||
"notebookName": "Por favor, introduzca un nombre de cuaderno",
|
"notebookName": "Por favor, introduzca un nombre de cuaderno",
|
||||||
|
|
|
||||||
|
|
@ -313,8 +313,7 @@
|
||||||
"math": "Block de Math",
|
"math": "Block de Math",
|
||||||
"listItem": "Élément de liste",
|
"listItem": "Élément de liste",
|
||||||
"superBlock": "Superblock",
|
"superBlock": "Superblock",
|
||||||
"expandAll": "Tout élargir",
|
"expand": "Élargir",
|
||||||
"collapseAll": "Tout Collapse",
|
|
||||||
"showDock": "Montrer le Dock",
|
"showDock": "Montrer le Dock",
|
||||||
"hideDock": "Cacher le Dock",
|
"hideDock": "Cacher le Dock",
|
||||||
"notebookName": "Veuillez entrer un nom de carnet de notes",
|
"notebookName": "Veuillez entrer un nom de carnet de notes",
|
||||||
|
|
|
||||||
|
|
@ -313,8 +313,7 @@
|
||||||
"math": "數學公式塊",
|
"math": "數學公式塊",
|
||||||
"listItem": "列表項",
|
"listItem": "列表項",
|
||||||
"superBlock": "超級塊",
|
"superBlock": "超級塊",
|
||||||
"expandAll": "全部展開",
|
"expand": "展開",
|
||||||
"collapseAll": "全部摺疊",
|
|
||||||
"showDock": "顯示停靠欄",
|
"showDock": "顯示停靠欄",
|
||||||
"hideDock": "隱藏停靠欄",
|
"hideDock": "隱藏停靠欄",
|
||||||
"notebookName": "請輸入筆記本名稱",
|
"notebookName": "請輸入筆記本名稱",
|
||||||
|
|
|
||||||
|
|
@ -313,8 +313,7 @@
|
||||||
"math": "数学公式块",
|
"math": "数学公式块",
|
||||||
"listItem": "列表项",
|
"listItem": "列表项",
|
||||||
"superBlock": "超级块",
|
"superBlock": "超级块",
|
||||||
"expandAll": "全部展开",
|
"expand": "展开",
|
||||||
"collapseAll": "全部折叠",
|
|
||||||
"showDock": "显示停靠栏",
|
"showDock": "显示停靠栏",
|
||||||
"hideDock": "隐藏停靠栏",
|
"hideDock": "隐藏停靠栏",
|
||||||
"notebookName": "请输入笔记本名称",
|
"notebookName": "请输入笔记本名称",
|
||||||
|
|
|
||||||
|
|
@ -281,7 +281,7 @@ export const keymap = {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (["⌘", "⇧", "⌥", "⌃"].includes(keymapStr.substr(keymapStr.length - 1, 1)) ||
|
if (["⌘", "⇧", "⌥", "⌃"].includes(keymapStr.substr(keymapStr.length - 1, 1)) ||
|
||||||
["⌘A", "⌘X", "⌘C", "⌘V", "⌘/", "⌘↑", "⌘↓", "⇧↑", "⇧↓", "⇧→", "⇧←", "⇧⇥", "⇧⌘⇥", "⌃⇥", "⌃⌘⇥", "⇧⌘→", "⇧⌘←", "⌘Home", "⌘End", "⇧↩", "↩", "PageUp", "PageDown", "⌫", "⌦"].includes(keymapStr)) {
|
["⌘A", "⌘X", "⌘C", "⌘V", "⌘/", "⇧↑", "⇧↓", "⇧→", "⇧←", "⇧⇥", "⇧⌘⇥", "⌃⇥", "⌃⌘⇥", "⇧⌘→", "⇧⌘←", "⌘Home", "⌘End", "⇧↩", "↩", "PageUp", "PageDown", "⌫", "⌦"].includes(keymapStr)) {
|
||||||
showMessage(tip + "] " + window.siyuan.languages.invalid);
|
showMessage(tip + "] " + window.siyuan.languages.invalid);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,7 @@ export abstract class Constants {
|
||||||
};
|
};
|
||||||
|
|
||||||
// "⌘", "⇧", "⌥", "⌃"
|
// "⌘", "⇧", "⌥", "⌃"
|
||||||
// "⌘A", "⌘X", "⌘C", "⌘V", "⌘/", "⌘↑", "⌘↓", "⇧↑", "⇧↓", "⇧→", "⇧←", "⇧⇥", "⇧⌘⇥", "⌃⇥", "⌃⌘⇥", "⇧⌘→", "⇧⌘←", "⌘Home", "⌘End", "⇧↩", "↩", "PageUp", "PageDown", "⌫", "⌦" 不可自定义
|
// "⌘A", "⌘X", "⌘C", "⌘V", "⌘/", "⇧↑", "⇧↓", "⇧→", "⇧←", "⇧⇥", "⇧⌘⇥", "⌃⇥", "⌃⌘⇥", "⇧⌘→", "⇧⌘←", "⌘Home", "⌘End", "⇧↩", "↩", "PageUp", "PageDown", "⌫", "⌦" 不可自定义
|
||||||
public static readonly SIYUAN_KEYMAP: IKeymap = {
|
public static readonly SIYUAN_KEYMAP: IKeymap = {
|
||||||
general: {
|
general: {
|
||||||
syncNow: {default: "F9", custom: "F9"},
|
syncNow: {default: "F9", custom: "F9"},
|
||||||
|
|
@ -126,6 +126,8 @@ export abstract class Constants {
|
||||||
hLayout: {default: "", custom: ""},
|
hLayout: {default: "", custom: ""},
|
||||||
vLayout: {default: "", custom: ""},
|
vLayout: {default: "", custom: ""},
|
||||||
refPopover: {default: "", custom: ""},
|
refPopover: {default: "", custom: ""},
|
||||||
|
expand: {default: "⌘↓", custom: "⌘↓"},
|
||||||
|
collapse: {default: "⌘↑", custom: "⌘↑"},
|
||||||
insertBottom: {default: "⌥⌘.", custom: "⌥⌘."},
|
insertBottom: {default: "⌥⌘.", custom: "⌥⌘."},
|
||||||
refTab: {default: "⇧⌘>", custom: "⇧⌘>"},
|
refTab: {default: "⇧⌘>", custom: "⇧⌘>"},
|
||||||
openBy: {default: "⌘.", custom: "⌘."},
|
openBy: {default: "⌘.", custom: "⌘."},
|
||||||
|
|
|
||||||
|
|
@ -85,11 +85,11 @@ export class Backlinks extends Model {
|
||||||
<svg><use xlink:href="#iconAlignCenter"></use></svg>
|
<svg><use xlink:href="#iconAlignCenter"></use></svg>
|
||||||
</span>
|
</span>
|
||||||
<span class="fn__space"></span>
|
<span class="fn__space"></span>
|
||||||
<span data-type="expand" class="block__icon b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.expandAll} ${updateHotkeyTip("⌘↓")}">
|
<span data-type="expand" class="block__icon b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.expand} ${updateHotkeyTip(window.siyuan.config.keymap.editor.general.expand.custom)}">
|
||||||
<svg><use xlink:href="#iconFullscreen"></use></svg>
|
<svg><use xlink:href="#iconFullscreen"></use></svg>
|
||||||
</span>
|
</span>
|
||||||
<span class="fn__space"></span>
|
<span class="fn__space"></span>
|
||||||
<span data-type="collapse" class="block__icon b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.collapseAll} ${updateHotkeyTip("⌘↑")}">
|
<span data-type="collapse" class="block__icon b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.collapse} ${updateHotkeyTip(window.siyuan.config.keymap.editor.general.collapse.custom)}">
|
||||||
<svg><use xlink:href="#iconContract"></use></svg>
|
<svg><use xlink:href="#iconContract"></use></svg>
|
||||||
</span>
|
</span>
|
||||||
<span class="${this.type === "local" ? "fn__none " : ""}fn__space"></span>
|
<span class="${this.type === "local" ? "fn__none " : ""}fn__space"></span>
|
||||||
|
|
@ -108,11 +108,11 @@ export class Backlinks extends Model {
|
||||||
<input class="b3-text-field b3-text-field--small b3-form__icon-input" placeholder="Enter ${window.siyuan.languages.search}" />
|
<input class="b3-text-field b3-text-field--small b3-form__icon-input" placeholder="Enter ${window.siyuan.languages.search}" />
|
||||||
</label>
|
</label>
|
||||||
<span class="fn__space"></span>
|
<span class="fn__space"></span>
|
||||||
<span data-type="mExpand" class="block__icon b3-tooltips b3-tooltips__nw" aria-label="${window.siyuan.languages.expandAll}">
|
<span data-type="mExpand" class="block__icon b3-tooltips b3-tooltips__nw" aria-label="${window.siyuan.languages.expand}">
|
||||||
<svg><use xlink:href="#iconFullscreen"></use></svg>
|
<svg><use xlink:href="#iconFullscreen"></use></svg>
|
||||||
</span>
|
</span>
|
||||||
<span class="fn__space"></span>
|
<span class="fn__space"></span>
|
||||||
<span data-type="mCollapse" class="block__icon b3-tooltips b3-tooltips__nw" aria-label="${window.siyuan.languages.collapseAll}">
|
<span data-type="mCollapse" class="block__icon b3-tooltips b3-tooltips__nw" aria-label="${window.siyuan.languages.collapse}">
|
||||||
<svg><use xlink:href="#iconContract"></use></svg>
|
<svg><use xlink:href="#iconContract"></use></svg>
|
||||||
</span>
|
</span>
|
||||||
<span class="fn__space"></span>
|
<span class="fn__space"></span>
|
||||||
|
|
|
||||||
|
|
@ -61,11 +61,11 @@ export class Bookmark extends Model {
|
||||||
<span class="fn__space"></span>
|
<span class="fn__space"></span>
|
||||||
<span data-type="refresh" class="block__icon b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.refresh}"><svg><use xlink:href='#iconRefresh'></use></svg></span>
|
<span data-type="refresh" class="block__icon b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.refresh}"><svg><use xlink:href='#iconRefresh'></use></svg></span>
|
||||||
<span class="fn__space"></span>
|
<span class="fn__space"></span>
|
||||||
<span data-type="expand" class="block__icon b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.expandAll} ${updateHotkeyTip("⌘↓")}">
|
<span data-type="expand" class="block__icon b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.expand} ${updateHotkeyTip(window.siyuan.config.keymap.editor.general.expand.custom)}">
|
||||||
<svg><use xlink:href="#iconFullscreen"></use></svg>
|
<svg><use xlink:href="#iconFullscreen"></use></svg>
|
||||||
</span>
|
</span>
|
||||||
<span class="fn__space"></span>
|
<span class="fn__space"></span>
|
||||||
<span data-type="collapse" class="block__icon b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.collapseAll} ${updateHotkeyTip("⌘↑")}">
|
<span data-type="collapse" class="block__icon b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.collapse} ${updateHotkeyTip(window.siyuan.config.keymap.editor.general.collapse.custom)}">
|
||||||
<svg><use xlink:href="#iconContract"></use></svg>
|
<svg><use xlink:href="#iconContract"></use></svg>
|
||||||
</span>
|
</span>
|
||||||
<span class="fn__space"></span>
|
<span class="fn__space"></span>
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@ export class Files extends Model {
|
||||||
<span class="fn__flex-1 fn__space"></span>
|
<span class="fn__flex-1 fn__space"></span>
|
||||||
<span data-type="focus" class="block__icon b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.selectOpen1} ${updateHotkeyTip(window.siyuan.config.keymap.general.selectOpen1.custom)}"><svg><use xlink:href='#iconFocus'></use></svg></span>
|
<span data-type="focus" class="block__icon b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.selectOpen1} ${updateHotkeyTip(window.siyuan.config.keymap.general.selectOpen1.custom)}"><svg><use xlink:href='#iconFocus'></use></svg></span>
|
||||||
<span class="fn__space"></span>
|
<span class="fn__space"></span>
|
||||||
<span data-type="collapse" class="block__icon b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.collapseAll} ${updateHotkeyTip("⌘↑")}">
|
<span data-type="collapse" class="block__icon b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.collapse} ${updateHotkeyTip(window.siyuan.config.keymap.editor.general.collapse.custom)}">
|
||||||
<svg><use xlink:href="#iconContract"></use></svg>
|
<svg><use xlink:href="#iconContract"></use></svg>
|
||||||
</span>
|
</span>
|
||||||
<div class="fn__space${window.siyuan.config.readonly ? " fn__none" : ""}"></div>
|
<div class="fn__space${window.siyuan.config.readonly ? " fn__none" : ""}"></div>
|
||||||
|
|
|
||||||
|
|
@ -74,11 +74,11 @@ export class Outline extends Model {
|
||||||
${window.siyuan.languages.outline}
|
${window.siyuan.languages.outline}
|
||||||
</div>
|
</div>
|
||||||
<span class="fn__flex-1 fn__space"></span>
|
<span class="fn__flex-1 fn__space"></span>
|
||||||
<span data-type="expand" class="block__icon b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.stickOpen} ${updateHotkeyTip("⌘↓")}">
|
<span data-type="expand" class="block__icon b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.stickOpen} ${updateHotkeyTip(window.siyuan.config.keymap.editor.general.expand.custom)}">
|
||||||
<svg><use xlink:href="#iconFullscreen"></use></svg>
|
<svg><use xlink:href="#iconFullscreen"></use></svg>
|
||||||
</span>
|
</span>
|
||||||
<span class="fn__space"></span>
|
<span class="fn__space"></span>
|
||||||
<span data-type="collapse" class="block__icon b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.collapseAll} ${updateHotkeyTip("⌘↑")}">
|
<span data-type="collapse" class="block__icon b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.collapse} ${updateHotkeyTip(window.siyuan.config.keymap.editor.general.collapse.custom)}">
|
||||||
<svg><use xlink:href="#iconContract"></use></svg>
|
<svg><use xlink:href="#iconContract"></use></svg>
|
||||||
</span>
|
</span>
|
||||||
<span class="${this.type === "local" ? "fn__none " : ""}fn__space"></span>
|
<span class="${this.type === "local" ? "fn__none " : ""}fn__space"></span>
|
||||||
|
|
|
||||||
|
|
@ -58,11 +58,11 @@ export class Tag extends Model {
|
||||||
<span class="fn__space"></span>
|
<span class="fn__space"></span>
|
||||||
<span data-type="refresh" class="block__icon b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.refresh}"><svg><use xlink:href='#iconRefresh'></use></svg></span>
|
<span data-type="refresh" class="block__icon b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.refresh}"><svg><use xlink:href='#iconRefresh'></use></svg></span>
|
||||||
<span class="fn__space"></span>
|
<span class="fn__space"></span>
|
||||||
<span data-type="expand" class="block__icon b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.expandAll} ${updateHotkeyTip("⌘↓")}">
|
<span data-type="expand" class="block__icon b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.expand} ${updateHotkeyTip(window.siyuan.config.keymap.editor.general.expand.custom)}">
|
||||||
<svg><use xlink:href="#iconFullscreen"></use></svg>
|
<svg><use xlink:href="#iconFullscreen"></use></svg>
|
||||||
</span>
|
</span>
|
||||||
<span class="fn__space"></span>
|
<span class="fn__space"></span>
|
||||||
<span data-type="collapse" class="block__icon b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.collapseAll} ${updateHotkeyTip("⌘↑")}">
|
<span data-type="collapse" class="block__icon b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.collapse} ${updateHotkeyTip(window.siyuan.config.keymap.editor.general.collapse.custom)}">
|
||||||
<svg><use xlink:href="#iconContract"></use></svg>
|
<svg><use xlink:href="#iconContract"></use></svg>
|
||||||
</span>
|
</span>
|
||||||
<span class="fn__space"></span>
|
<span class="fn__space"></span>
|
||||||
|
|
|
||||||
|
|
@ -1234,7 +1234,7 @@ export class Gutter {
|
||||||
|
|
||||||
window.siyuan.menus.menu.append(new MenuItem({
|
window.siyuan.menus.menu.append(new MenuItem({
|
||||||
label: window.siyuan.languages.fold,
|
label: window.siyuan.languages.fold,
|
||||||
accelerator: `${updateHotkeyTip("⌘↑")}/${updateHotkeyTip("⌥Click")}`,
|
accelerator: `${updateHotkeyTip(window.siyuan.config.keymap.editor.general.collapse.custom)}/${updateHotkeyTip("⌥Click")}`,
|
||||||
click() {
|
click() {
|
||||||
setFold(protyle, nodeElement);
|
setFold(protyle, nodeElement);
|
||||||
focusBlock(nodeElement);
|
focusBlock(nodeElement);
|
||||||
|
|
|
||||||
|
|
@ -249,7 +249,7 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
|
||||||
if (!isCtrl(event) && !event.shiftKey && event.key !== "Backspace" && event.key !== "PageUp" && event.key !== "PageDown" && event.key.indexOf("Arrow") === -1) {
|
if (!isCtrl(event) && !event.shiftKey && event.key !== "Backspace" && event.key !== "PageUp" && event.key !== "PageDown" && event.key.indexOf("Arrow") === -1) {
|
||||||
protyle.toolbar.isNewEmptyInline = false;
|
protyle.toolbar.isNewEmptyInline = false;
|
||||||
}
|
}
|
||||||
if (matchHotKey("⌘↑", event)) {
|
if (matchHotKey(window.siyuan.config.keymap.editor.general.collapse.custom, event)) {
|
||||||
const selectElements = protyle.wysiwyg.element.querySelectorAll(".protyle-wysiwyg--select");
|
const selectElements = protyle.wysiwyg.element.querySelectorAll(".protyle-wysiwyg--select");
|
||||||
if (selectElements.length > 0) {
|
if (selectElements.length > 0) {
|
||||||
setFold(protyle, selectElements[0]);
|
setFold(protyle, selectElements[0]);
|
||||||
|
|
@ -270,7 +270,7 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (matchHotKey("⌘↓", event)) {
|
if (matchHotKey(window.siyuan.config.keymap.editor.general.expand.custom, event)) {
|
||||||
const selectElements = protyle.wysiwyg.element.querySelectorAll(".protyle-wysiwyg--select");
|
const selectElements = protyle.wysiwyg.element.querySelectorAll(".protyle-wysiwyg--select");
|
||||||
if (selectElements.length > 0) {
|
if (selectElements.length > 0) {
|
||||||
setFold(protyle, selectElements[0], true);
|
setFold(protyle, selectElements[0], true);
|
||||||
|
|
|
||||||
|
|
@ -536,7 +536,7 @@ export const globalShortcut = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 面板折叠展开操作
|
// 面板折叠展开操作
|
||||||
if (matchHotKey("⌘↑", event) || matchHotKey("⌘↓", event)) {
|
if (matchHotKey(window.siyuan.config.keymap.editor.general.collapse.custom, event) || matchHotKey(window.siyuan.config.keymap.editor.general.expand.custom, event)) {
|
||||||
let activePanelElement = document.querySelector(".block__icons--active");
|
let activePanelElement = document.querySelector(".block__icons--active");
|
||||||
if (!activePanelElement) {
|
if (!activePanelElement) {
|
||||||
Array.from(document.querySelectorAll(".layout__wnd--active .layout-tab-container > div")).forEach(item => {
|
Array.from(document.querySelectorAll(".layout__wnd--active .layout-tab-container > div")).forEach(item => {
|
||||||
|
|
@ -547,11 +547,11 @@ export const globalShortcut = () => {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (activePanelElement) {
|
if (activePanelElement) {
|
||||||
if (matchHotKey("⌘↑", event)) {
|
if (matchHotKey(window.siyuan.config.keymap.editor.general.collapse.custom, event)) {
|
||||||
if (activePanelElement.querySelector('.block__icon[data-type="collapse"]')) {
|
if (activePanelElement.querySelector('.block__icon[data-type="collapse"]')) {
|
||||||
activePanelElement.querySelector('.block__icon[data-type="collapse"]').dispatchEvent(new CustomEvent("click"));
|
activePanelElement.querySelector('.block__icon[data-type="collapse"]').dispatchEvent(new CustomEvent("click"));
|
||||||
}
|
}
|
||||||
} else if (matchHotKey("⌘↓", event)) {
|
} else if (matchHotKey(window.siyuan.config.keymap.editor.general.expand.custom, event)) {
|
||||||
if (activePanelElement.querySelector('.block__icon[data-type="expand"]')) {
|
if (activePanelElement.querySelector('.block__icon[data-type="expand"]')) {
|
||||||
activePanelElement.querySelector('.block__icon[data-type="expand"]').dispatchEvent(new CustomEvent("click"));
|
activePanelElement.querySelector('.block__icon[data-type="expand"]').dispatchEvent(new CustomEvent("click"));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue