🎨 Support / Menu search based on current language https://github.com/siyuan-note/siyuan/issues/13629

This commit is contained in:
Daniel 2024-12-27 23:05:33 +08:00
parent 35b7a7cfca
commit dd7c1489fe
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -31,47 +31,47 @@ const getHotkeyOrMarker = (hotkey: string, marker: string) => {
export const hintSlash = (key: string, protyle: IProtyle) => {
const allList: IHintData[] = [{
filter: [window.siyuan.languages.template, "moban", "mb"],
filter: [window.siyuan.languages.template, "moban", "mb", "template", "模板"],
id: "template",
value: Constants.ZWSP,
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconMarkdown"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.template}</span></div>`,
}, {
filter: [window.siyuan.languages.widget, "gj", "guajian"],
filter: [window.siyuan.languages.widget, "gj", "guajian", "widget", "挂件"],
id: "widget",
value: Constants.ZWSP + 1,
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconBoth"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.widget}</span></div>`,
}, {
filter: [window.siyuan.languages.assets, "zy", "ziyuan"],
filter: [window.siyuan.languages.assets, "zy", "ziyuan", "assets", "资源"],
id: "assets",
value: Constants.ZWSP + 2,
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconImage"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.assets}</span></div>`,
}, {
filter: [window.siyuan.languages.ref, "yinyong", "yy"],
filter: [window.siyuan.languages.ref, "yinyong", "kyy", "kuaiyinyong", "block reference", "块引用"],
id: "ref",
value: "((",
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconRef"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.ref}</span><span class="b3-list-item__meta">((</span></div>`,
}, {
filter: [window.siyuan.languages.blockEmbed, "qianrukuai", "qrk"],
filter: [window.siyuan.languages.blockEmbed, "qianrukuai", "qrk", "embed block", "嵌入块"],
id: "blockEmbed",
value: "{{",
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconSQL"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.blockEmbed}</span><span class="b3-list-item__meta">{{</span></div>`,
}, {
filter: [window.siyuan.languages.aiWriting, "aibianxie", "aibx"],
filter: [window.siyuan.languages.aiWriting, "aibianxie", "aibx", "rgzn", "人工智能"],
id: "aiWriting",
value: Constants.ZWSP + 5,
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconSparkles"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.aiWriting}</span></div>`,
}, {
filter: [window.siyuan.languages.database, "shujuku", "sjk"],
filter: [window.siyuan.languages.database, "shujuku", "sjk", "database", "view", "db", "数据库", "视图"],
id: "database",
value: '<div data-type="NodeAttributeView" data-av-type="table"></div>',
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconDatabase"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.database}</span></div>`,
}, {
filter: [window.siyuan.languages.newFileRef, "xinjianwendangbingyinyong", "xjwdbyy"],
filter: [window.siyuan.languages.newFileRef, "xinjianwendangbingyinyong", "xjwdbyy", "new doc", "新建文档并引用"],
id: "newFileRef",
value: Constants.ZWSP + 4,
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconFile"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.newFileRef}</span></div>`,
}, {
filter: [window.siyuan.languages.newSubDocRef, "xinjianziwendangbingyinyong", "xjzwdbyy"],
filter: [window.siyuan.languages.newSubDocRef, "xinjianziwendangbingyinyong", "xjzwdbyy", "sub doc", "新建子文档并引用"],
id: "newSubDocRef",
value: Constants.ZWSP + 6,
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconFile"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.newSubDocRef}</span></div>`,
@ -80,72 +80,72 @@ export const hintSlash = (key: string, protyle: IProtyle) => {
id: "separator_1",
html: "separator",
}, {
filter: [window.siyuan.languages.heading1, "yijibiaoti", "yjbt", "h1"],
filter: [window.siyuan.languages.heading1, "yijibiaoti", "yjbt", "h1", "heading", "一级标题"],
id: "heading1",
value: "# " + Lute.Caret,
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconH1"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.heading1}</span>${getHotkeyOrMarker(window.siyuan.config.keymap.editor.heading.heading1.custom, "# ")}</div>`,
}, {
filter: [window.siyuan.languages.heading2, "erjibiaoti", "ejbt", "h2"],
filter: [window.siyuan.languages.heading2, "erjibiaoti", "ejbt", "h2", "heading", "二级标题"],
id: "heading2",
value: "## " + Lute.Caret,
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconH2"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.heading2}</span>${getHotkeyOrMarker(window.siyuan.config.keymap.editor.heading.heading2.custom, "## ")}</div>`,
}, {
filter: [window.siyuan.languages.heading3, "sanjibiaoti", "sjbt", "h3"],
filter: [window.siyuan.languages.heading3, "sanjibiaoti", "sjbt", "h3", "heading", "三级标题"],
id: "heading3",
value: "### " + Lute.Caret,
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconH3"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.heading3}</span>${getHotkeyOrMarker(window.siyuan.config.keymap.editor.heading.heading3.custom, "### ")}</div>`,
}, {
filter: [window.siyuan.languages.heading4, "sijibiaoti", "sjbt", "h4"],
filter: [window.siyuan.languages.heading4, "sijibiaoti", "sjbt", "h4", "heading", "四级标题"],
id: "heading4",
value: "#### " + Lute.Caret,
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconH4"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.heading4}</span>${getHotkeyOrMarker(window.siyuan.config.keymap.editor.heading.heading4.custom, "#### ")}</div>`,
}, {
filter: [window.siyuan.languages.heading5, "wujibiaoti", "wjbt", "h5"],
filter: [window.siyuan.languages.heading5, "wujibiaoti", "wjbt", "h5", "heading", "五级标题"],
id: "heading5",
value: "##### " + Lute.Caret,
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconH5"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.heading5}</span>${getHotkeyOrMarker(window.siyuan.config.keymap.editor.heading.heading5.custom, "##### ")}</div>`,
}, {
filter: [window.siyuan.languages.heading6, "liujibiaoti", "ljbt", "h6"],
filter: [window.siyuan.languages.heading6, "liujibiaoti", "ljbt", "h6", "heading", "六级标题"],
id: "heading6",
value: "###### " + Lute.Caret,
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconH6"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.heading6}</span>${getHotkeyOrMarker(window.siyuan.config.keymap.editor.heading.heading6.custom, "###### ")}</div>`,
}, {
filter: [window.siyuan.languages.list, "wuxuliebiao", "wxlb"],
filter: [window.siyuan.languages.list, "wuxuliebiao", "wxlb", "unordered list", "无序列表"],
id: "list",
value: "* " + Lute.Caret,
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconList"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.list}</span>${getHotkeyOrMarker(window.siyuan.config.keymap.editor.insert.list.custom, "* ")}</div>`,
}, {
filter: [window.siyuan.languages["ordered-list"], "youxuliebiao", "yxlb"],
filter: [window.siyuan.languages["ordered-list"], "youxuliebiao", "yxlb", "ordered list", "有序列表"],
id: "orderedList",
value: "1. " + Lute.Caret,
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconOrderedList"></use></svg><span class="b3-list-item__text">${window.siyuan.languages["ordered-list"]}</span>${getHotkeyOrMarker(window.siyuan.config.keymap.editor.insert["ordered-list"].custom, "1. ")}</div>`,
}, {
filter: [window.siyuan.languages.check, "renwuliebiao", "rwlb", "todo"],
filter: [window.siyuan.languages.check, "renwuliebiao", "rwlb", "todo", "task list", "任务列表"],
id: "check",
value: "* [ ] " + Lute.Caret,
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconCheck"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.check}</span>${getHotkeyOrMarker(window.siyuan.config.keymap.editor.insert.check.custom, "[]")}</div>`,
}, {
filter: [window.siyuan.languages.quote, "yinshu", "ys"],
filter: [window.siyuan.languages.quote, "yinshu", "ys", "bq", "blockquote", "引述"],
id: "quote",
value: "> " + Lute.Caret,
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconQuote"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.quote}</span>${getHotkeyOrMarker(window.siyuan.config.keymap.editor.insert.quote.custom, ">")}</div>`,
}, {
filter: [window.siyuan.languages.code, "daimakuai", "dmk"],
filter: [window.siyuan.languages.code, "daimakuai", "dmk", "code block", "代码块"],
id: "code",
value: "```",
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconCode"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.code}</span>${getHotkeyOrMarker(window.siyuan.config.keymap.editor.insert.code.custom, "```" + window.siyuan.languages.enterKey)}</div>`,
}, {
filter: [window.siyuan.languages.table, "biaoge", "bg"],
filter: [window.siyuan.languages.table, "biaoge", "bg", "table", "表格"],
id: "table",
value: `| ${Lute.Caret} | | |\n| --- | --- | --- |\n| | | |\n| | | |`,
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconTable"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.table}</span><span class="b3-menu__accelerator">${updateHotkeyTip((window.siyuan.config.keymap.editor.insert.table.custom))}</span></div>`,
}, {
filter: [window.siyuan.languages.line, "fengexian", "fgx"],
filter: [window.siyuan.languages.line, "fengexian", "fgx", "divider", "thematic", "break", "分隔线", "分割线"],
id: "line",
value: "---",
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconLine"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.line}</span><span class="b3-list-item__meta">---</span></div>`,
}, {
filter: [window.siyuan.languages.math, "shuxuegongshikuai", "sxgsk"],
filter: [window.siyuan.languages.math, "shuxuegongshikuai", "sxgsk", "math block", "数学公式块"],
id: "math",
value: "$$",
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconMath"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.math}</span><span class="b3-list-item__meta">$$</span></div>`,
@ -159,62 +159,62 @@ export const hintSlash = (key: string, protyle: IProtyle) => {
id: "separator_2",
html: "separator",
}, {
filter: [window.siyuan.languages.emoji, "biaoqing", "bq"],
filter: [window.siyuan.languages.emoji, "biaoqing", "bq", "emoji", "表情"],
id: "emoji",
value: "emoji",
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconEmoji"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.emoji}</span><span class="b3-list-item__meta">:</span></div>`,
}, {
filter: [window.siyuan.languages.link, "lianjie", "lj"],
filter: [window.siyuan.languages.link, "lianjie", "lj", "link", "a", "链接"],
id: "link",
value: "a",
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconLink"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.link}</span><span class="b3-menu__accelerator">${updateHotkeyTip((window.siyuan.config.keymap.editor.insert.link.custom))}</span></div>`,
}, {
filter: [window.siyuan.languages.bold, "cuti", "ct"],
filter: [window.siyuan.languages.bold, "cuti", "ct", "bold", "strong", "粗体"],
id: "bold",
value: "strong",
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconBold"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.bold}</span><span class="b3-menu__accelerator">${updateHotkeyTip((window.siyuan.config.keymap.editor.insert.bold.custom))}</span></div>`,
}, {
filter: [window.siyuan.languages.italic, "xieti", "xt"],
filter: [window.siyuan.languages.italic, "xieti", "xt", "italic", "em", "斜体"],
id: "italic",
value: "em",
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconItalic"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.italic}</span><span class="b3-menu__accelerator">${updateHotkeyTip((window.siyuan.config.keymap.editor.insert.italic.custom))}</span></div>`,
}, {
filter: [window.siyuan.languages.underline, "xiahuaxian", "xhx"],
filter: [window.siyuan.languages.underline, "xiahuaxian", "xhx", "underline", "下划线"],
id: "underline",
value: "u",
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconUnderline"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.underline}</span><span class="b3-menu__accelerator">${updateHotkeyTip((window.siyuan.config.keymap.editor.insert.underline.custom))}</span></div>`,
}, {
filter: [window.siyuan.languages.strike, "shanchuxian", "scx"],
filter: [window.siyuan.languages.strike, "shanchuxian", "scx", "strike", "del", "删除线"],
id: "strike",
value: "s",
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconStrike"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.strike}</span><span class="b3-menu__accelerator">${updateHotkeyTip((window.siyuan.config.keymap.editor.insert.strike.custom))}</span></div>`,
}, {
filter: [window.siyuan.languages.mark, "biaoji", "bj"],
filter: [window.siyuan.languages.mark, "biaoji", "bj", "mark", "标记"],
id: "mark",
value: "mark",
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconMark"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.mark}</span><span class="b3-menu__accelerator">${updateHotkeyTip((window.siyuan.config.keymap.editor.insert.mark.custom))}</span></div>`,
}, {
filter: [window.siyuan.languages.sup, "shangbiao", "sb"],
filter: [window.siyuan.languages.sup, "shangbiao", "sb", "superscript", "上标"],
id: "sup",
value: "sup",
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconSup"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.sup}</span><span class="b3-menu__accelerator">${updateHotkeyTip((window.siyuan.config.keymap.editor.insert.sup.custom))}</span></div>`,
}, {
filter: [window.siyuan.languages.sub, "xiaobiao", "xb"],
filter: [window.siyuan.languages.sub, "xiaobiao", "xb", "subscript", "下标"],
id: "sub",
value: "sub",
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconSub"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.sub}</span><span class="b3-menu__accelerator">${updateHotkeyTip((window.siyuan.config.keymap.editor.insert.sub.custom))}</span></div>`,
}, {
filter: [window.siyuan.languages.tag, "biaoqian", "bq"],
filter: [window.siyuan.languages.tag, "biaoqian", "bq", "tag", "标签"],
id: "tag",
value: "tag",
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconTags"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.tag}</span><span class="b3-menu__accelerator">${updateHotkeyTip((window.siyuan.config.keymap.editor.insert.tag.custom))}</span></div>`,
}, {
filter: [window.siyuan.languages["inline-code"], "hangjidaima", "hjdm"],
filter: [window.siyuan.languages["inline-code"], "hangjidaima", "hjdm", "inline code", "行级代码"],
id: "inlineCode",
value: "code",
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconInlineCode"></use></svg><span class="b3-list-item__text">${window.siyuan.languages["inline-code"]}</span><span class="b3-menu__accelerator">${updateHotkeyTip((window.siyuan.config.keymap.editor.insert["inline-code"].custom))}</span></div>`,
}, {
filter: [window.siyuan.languages["inline-math"], "hangjigongshi", "hjgs"],
filter: [window.siyuan.languages["inline-math"], "hangjigongshi", "hjgs", "inline math", "行级数学公式"],
id: "inlineMath",
value: "inline-math",
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconMath"></use></svg><span class="b3-list-item__text">${window.siyuan.languages["inline-math"]}</span><span class="b3-menu__accelerator">${updateHotkeyTip((window.siyuan.config.keymap.editor.insert["inline-math"].custom))}</span></div>`,
@ -223,28 +223,28 @@ export const hintSlash = (key: string, protyle: IProtyle) => {
id: "separator_3",
html: "separator",
}, {
filter: [window.siyuan.languages.insertAsset, "charutupianhuowenjian", "crtphwj"],
filter: [window.siyuan.languages.insertAsset, "charutupianhuowenjian", "crtphwj", "upload", "sc", "上传"],
id: "insertAsset",
value: Constants.ZWSP + 3,
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconDownload"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.insertAsset}</span>
<input class="b3-form__upload" type="file" ${protyle.options.upload.accept ? 'multiple="' + protyle.options.upload.accept + '"' : ""}></div>`,
}, {
filter: [window.siyuan.languages.insertIframeURL, "charuiframelianjie", "criframelj"],
filter: [window.siyuan.languages.insertIframeURL, "charuiframelianjie", "criframelj", "iframe"],
id: "insertIframeURL",
value: '<iframe sandbox="allow-forms allow-presentation allow-same-origin allow-scripts allow-modals allow-popups" src="" border="0" frameborder="no" framespacing="0" allowfullscreen="true"></iframe>',
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconLanguage"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.insertIframeURL}</span></div>`,
}, {
filter: [window.siyuan.languages.insertImgURL, "charutupianlianjie", "crtptp"],
filter: [window.siyuan.languages.insertImgURL, "charutupianlianjie", "crtptp", "img", "image", "图片"],
id: "insertImgURL",
value: "![]()",
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconImage"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.insertImgURL}</span></div>`,
}, {
filter: [window.siyuan.languages.insertVideoURL, "charushipinlianjie", "crsplj"],
filter: [window.siyuan.languages.insertVideoURL, "charushipinlianjie", "crsplj", "video", "视频"],
id: "insertVideoURL",
value: '<video controls="controls" src=""></video>',
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconVideo"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.insertVideoURL}</span></div>`,
}, {
filter: [window.siyuan.languages.insertAudioURL, "charuyinpinlianjie", "cryplj"],
filter: [window.siyuan.languages.insertAudioURL, "charuyinpinlianjie", "cryplj", "audio", "音频"],
id: "insertAudioURL",
value: '<audio controls="controls" src=""></audio>',
html: `<div class="b3-list-item__first"><svg class="b3-list-item__graphic"><use xlink:href="#iconRecord"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.insertAudioURL}</span></div>`,
@ -253,12 +253,12 @@ export const hintSlash = (key: string, protyle: IProtyle) => {
id: "separator_4",
html: "separator",
}, {
filter: [window.siyuan.languages.staff, "wuxianpu", "wxp"],
filter: [window.siyuan.languages.staff, "wuxianpu", "wxp", "staff", "五线谱"],
id: "staff",
value: "```abc\n```",
html: `<div class="b3-list-item__first"><span class="b3-list-item__text">ABC</span><span class="b3-list-item__meta">${window.siyuan.languages.staff}</span></div>`,
}, {
filter: [window.siyuan.languages.chart, "tubiao", "tb"],
filter: [window.siyuan.languages.chart, "tubiao", "tb", "chart", "图表"],
id: "chart",
value: "```echarts\n```",
html: `<div class="b3-list-item__first"><span class="b3-list-item__text">Chart</span><span class="b3-list-item__meta">${window.siyuan.languages.chart}</span></div>`,