mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-16 14:40:12 +01:00
This commit is contained in:
parent
168e492c81
commit
87a0168222
4 changed files with 68 additions and 11 deletions
|
|
@ -359,8 +359,6 @@ const initMainWindow = () => {
|
|||
});
|
||||
});
|
||||
|
||||
currentWindow.webContents.session.setSpellCheckerLanguages(["en-US"]);
|
||||
|
||||
// 发起互联网服务请求时绕过安全策略 https://github.com/siyuan-note/siyuan/issues/5516
|
||||
currentWindow.webContents.session.webRequest.onBeforeSendHeaders((details, cb) => {
|
||||
if (-1 < details.url.toLowerCase().indexOf("bili")) {
|
||||
|
|
@ -787,6 +785,9 @@ app.whenReady().then(() => {
|
|||
if (data.cmd === "getContentsId") {
|
||||
return event.sender.id;
|
||||
}
|
||||
if (data.cmd === "getSpellCheckerLanguages") {
|
||||
return event.sender.session.getSpellCheckerLanguages();
|
||||
}
|
||||
if (data.cmd === "setProxy") {
|
||||
return setProxy(data.proxyURL, event.sender);
|
||||
}
|
||||
|
|
@ -894,6 +895,11 @@ app.whenReady().then(() => {
|
|||
case "showItemInFolder":
|
||||
shell.showItemInFolder(data.filePath);
|
||||
break;
|
||||
case "setSpellCheckerLanguages":
|
||||
BrowserWindow.getAllWindows().forEach(item => {
|
||||
item.webContents.session.setSpellCheckerLanguages(data.languages);
|
||||
});
|
||||
break;
|
||||
case "openPath":
|
||||
shell.openPath(data.filePath);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -114,6 +114,10 @@ const winOnMaxRestore = async () => {
|
|||
|
||||
export const initWindow = async (app: App) => {
|
||||
/// #if !BROWSER
|
||||
ipcRenderer.send(Constants.SIYUAN_CMD, {
|
||||
cmd: "setSpellCheckerLanguages",
|
||||
languages: window.siyuan.config.editor.spellcheckLanguages
|
||||
});
|
||||
const winOnClose = (close = false) => {
|
||||
exportLayout({
|
||||
cb() {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
import {getAllModels} from "../layout/getAll";
|
||||
/// #if !BROWSER
|
||||
import {ipcRenderer} from "electron";
|
||||
/// #endif
|
||||
import {setInlineStyle} from "../util/assets";
|
||||
import {fetchPost} from "../util/fetch";
|
||||
import {confirmDialog} from "../dialog/confirmDialog";
|
||||
|
|
@ -97,14 +100,17 @@ export const editor = {
|
|||
<span class="fn__space"></span>
|
||||
<input class="b3-switch fn__flex-center" id="listItemDotNumberClickFocus" type="checkbox"${window.siyuan.config.editor.listItemDotNumberClickFocus ? " checked" : ""}/>
|
||||
</label>
|
||||
<label class="fn__flex b3-label">
|
||||
<div class="fn__flex-1">
|
||||
${window.siyuan.languages.spellcheck}
|
||||
<div class="b3-label__text">${window.siyuan.languages.spellcheckTip}</div>
|
||||
</div>
|
||||
<span class="fn__space"></span>
|
||||
<input class="b3-switch fn__flex-center" id="spellcheck" type="checkbox"${window.siyuan.config.editor.spellcheck ? " checked" : ""}/>
|
||||
</label>
|
||||
<div class="b3-label">
|
||||
<label class="fn__flex">
|
||||
<div class="fn__flex-1">
|
||||
${window.siyuan.languages.spellcheck}
|
||||
<div class="b3-label__text">${window.siyuan.languages.spellcheckTip}</div>
|
||||
</div>
|
||||
<span class="fn__space"></span>
|
||||
<input class="b3-switch fn__flex-center" id="spellcheck" type="checkbox"${window.siyuan.config.editor.spellcheck ? " checked" : ""}/>
|
||||
</label>
|
||||
<div class="b3-chips fn__none" id="spellcheckLanguages"></div>
|
||||
</div>
|
||||
<label class="fn__flex b3-label">
|
||||
<div class="fn__flex-1">
|
||||
${window.siyuan.languages.onlySearchForDoc}
|
||||
|
|
@ -366,7 +372,33 @@ export const editor = {
|
|||
<input class="b3-switch fn__flex-center" id="editorMarkdownInlineMark" type="checkbox"${window.siyuan.config.editor.markdown.inlineMark ? " checked" : ""}/>
|
||||
</label>`;
|
||||
},
|
||||
bindEvent: () => {
|
||||
bindEvent: async () => {
|
||||
/// #if !BROWSER
|
||||
const languages: string[] = await ipcRenderer.invoke(Constants.SIYUAN_GET, {
|
||||
cmd: "getSpellCheckerLanguages",
|
||||
});
|
||||
let spellcheckLanguagesHTML = "";
|
||||
languages.forEach(item => {
|
||||
spellcheckLanguagesHTML = `<div class="fn__pointer b3-chip b3-chip--middle${window.siyuan.config.editor.spellcheckLanguages.includes(item) ? " b3-chip--current" : ""}">${item}</div>`;
|
||||
});
|
||||
const spellcheckLanguagesElement = editor.element.querySelector("#spellcheckLanguages");
|
||||
spellcheckLanguagesElement.innerHTML = spellcheckLanguagesHTML;
|
||||
spellcheckLanguagesElement.addEventListener("click", (event) => {
|
||||
const target = event.target as Element;
|
||||
if (target.classList.contains("b3-chip")) {
|
||||
target.classList.toggle("b3-chip--current");
|
||||
ipcRenderer.send(Constants.SIYUAN_CMD, {
|
||||
cmd: "setSpellCheckerLanguages",
|
||||
languages: Array.from(spellcheckLanguagesElement.querySelectorAll(".b3-chip--current")).map(item => item.textContent)
|
||||
});
|
||||
setEditor();
|
||||
}
|
||||
});
|
||||
if (window.siyuan.config.editor.spellcheck) {
|
||||
spellcheckLanguagesElement.classList.remove("fn__none");
|
||||
}
|
||||
/// #endif
|
||||
|
||||
const fontFamilyElement = editor.element.querySelector("#fontFamily") as HTMLSelectElement;
|
||||
fontFamilyElement.addEventListener("click", () => {
|
||||
fetchPost("/api/system/getSysFonts", {}, (response) => {
|
||||
|
|
@ -444,6 +476,12 @@ export const editor = {
|
|||
listLogicalOutdent: (editor.element.querySelector("#listLogicalOutdent") as HTMLInputElement).checked,
|
||||
listItemDotNumberClickFocus: (editor.element.querySelector("#listItemDotNumberClickFocus") as HTMLInputElement).checked,
|
||||
spellcheck: (editor.element.querySelector("#spellcheck") as HTMLInputElement).checked,
|
||||
/// #if !BROWSER
|
||||
spellcheckLanguages: Array.from(spellcheckLanguagesElement.querySelectorAll(".b3-chip--current")).map(item => item.textContent),
|
||||
/// #else
|
||||
// @ts-ignore
|
||||
spellcheckLanguages: window.siyuan.config.editor.spellcheckLanguages,
|
||||
/// #endif
|
||||
onlySearchForDoc: (editor.element.querySelector("#onlySearchForDoc") as HTMLInputElement).checked,
|
||||
floatWindowMode: parseInt((editor.element.querySelector("#floatWindowMode") as HTMLSelectElement).value),
|
||||
plantUMLServePath: (editor.element.querySelector("#plantUMLServePath") as HTMLInputElement).value,
|
||||
|
|
@ -472,6 +510,11 @@ export const editor = {
|
|||
editor.element.querySelectorAll("input.b3-switch, select.b3-select, input.b3-slider").forEach((item) => {
|
||||
item.addEventListener("change", () => {
|
||||
setEditor();
|
||||
/// #if !BROWSER
|
||||
if (item.id === "spellcheck") {
|
||||
spellcheckLanguagesElement.classList.toggle("fn__none");
|
||||
}
|
||||
/// #endif
|
||||
});
|
||||
});
|
||||
editor.element.querySelectorAll("textarea.b3-text-field, input.b3-text-field, input.b3-slider").forEach((item) => {
|
||||
|
|
|
|||
4
app/src/types/config.d.ts
vendored
4
app/src/types/config.d.ts
vendored
|
|
@ -495,6 +495,10 @@ declare namespace Config {
|
|||
* Whether to enable spell checking
|
||||
*/
|
||||
spellcheck: boolean;
|
||||
/**
|
||||
* Support spell check languages
|
||||
*/
|
||||
spellcheckLanguages: string[];
|
||||
/**
|
||||
* Whether to enable virtual references
|
||||
*/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue