mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-16 22:50:13 +01:00
Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
3add5302a8
7 changed files with 41 additions and 6 deletions
|
|
@ -201,6 +201,7 @@ export const appearance = {
|
|||
closeButtonBehavior: (appearance.element.querySelector("#closeButtonBehavior") as HTMLInputElement).checked ? 1 : 0,
|
||||
hideStatusBar: (appearance.element.querySelector("#hideStatusBar") as HTMLInputElement).checked,
|
||||
statusBar: {
|
||||
msgTaskDatabaseIndexCommitDisabled: statusBar ? statusBar.msgTaskDatabaseIndexCommitDisabled : window.siyuan.config.appearance.statusBar.msgTaskDatabaseIndexCommitDisabled,
|
||||
msgTaskHistoryDatabaseIndexCommitDisabled: statusBar ? statusBar.msgTaskHistoryDatabaseIndexCommitDisabled : window.siyuan.config.appearance.statusBar.msgTaskAssetDatabaseIndexCommitDisabled,
|
||||
msgTaskAssetDatabaseIndexCommitDisabled: statusBar ? statusBar.msgTaskAssetDatabaseIndexCommitDisabled : window.siyuan.config.appearance.statusBar.msgTaskAssetDatabaseIndexCommitDisabled,
|
||||
}
|
||||
|
|
@ -248,6 +249,13 @@ export const appearance = {
|
|||
title: window.siyuan.languages.appearance18,
|
||||
content: `<div class="fn__hr"></div>
|
||||
<div class="b3-tab-bar b3-list b3-list--background">
|
||||
<label class="b3-list-item">
|
||||
<div class="b3-list-item__text">
|
||||
${window.siyuan.languages["_taskAction"]["task.database.index.commit"]}
|
||||
</div>
|
||||
<span class="fn__space"></span>
|
||||
<input class="b3-switch fn__flex-center" id="database" type="checkbox"${window.siyuan.config.appearance.statusBar.msgTaskDatabaseIndexCommitDisabled ? "" : " checked"}>
|
||||
</label>
|
||||
<label class="b3-list-item">
|
||||
<div class="b3-list-item__text">
|
||||
${window.siyuan.languages["_taskAction"]["task.asset.database.index.commit"]}
|
||||
|
|
@ -264,16 +272,27 @@ export const appearance = {
|
|||
</label>
|
||||
</div>`
|
||||
});
|
||||
|
||||
const databaseElement = dialog.element.querySelector("#database") as HTMLInputElement;
|
||||
const assetElement = dialog.element.querySelector("#asset") as HTMLInputElement;
|
||||
const historyElement = dialog.element.querySelector("#history") as HTMLInputElement;
|
||||
databaseElement.addEventListener("change", () => {
|
||||
appearance._send({
|
||||
msgTaskDatabaseIndexCommitDisabled: !databaseElement.checked,
|
||||
msgTaskHistoryDatabaseIndexCommitDisabled: !historyElement.checked,
|
||||
msgTaskAssetDatabaseIndexCommitDisabled: !assetElement.checked
|
||||
});
|
||||
});
|
||||
assetElement.addEventListener("change", () => {
|
||||
appearance._send({
|
||||
msgTaskDatabaseIndexCommitDisabled: !databaseElement.checked,
|
||||
msgTaskHistoryDatabaseIndexCommitDisabled: !historyElement.checked,
|
||||
msgTaskAssetDatabaseIndexCommitDisabled: !assetElement.checked
|
||||
});
|
||||
});
|
||||
historyElement.addEventListener("change", () => {
|
||||
appearance._send({
|
||||
msgTaskDatabaseIndexCommitDisabled: !databaseElement.checked,
|
||||
msgTaskHistoryDatabaseIndexCommitDisabled: !historyElement.checked,
|
||||
msgTaskAssetDatabaseIndexCommitDisabled: !assetElement.checked
|
||||
});
|
||||
|
|
|
|||
|
|
@ -470,8 +470,21 @@ export const paste = async (protyle: IProtyle, event: (ClipboardEvent | DragEven
|
|||
isHTML = true;
|
||||
}
|
||||
|
||||
// 判断是否包含多个换行,包含多个换行则很有可能是纯文本(豆包复制粘贴问题,纯文本外面会包裹一个 HTML 标签,但内部是 Markdown 纯文本)
|
||||
let containsNewlines = false;
|
||||
const tempDiv = document.createElement("div");
|
||||
tempDiv.innerHTML = textHTML;
|
||||
const walker = document.createTreeWalker(tempDiv, NodeFilter.SHOW_TEXT, null);
|
||||
let node;
|
||||
while (node = walker.nextNode()) {
|
||||
if (node.nodeValue && (node.nodeValue.match(/\n/g) || []).length >= 2) {
|
||||
containsNewlines = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
const textHTMLLowercase = textHTML.toLowerCase();
|
||||
if (textPlain && "" !== textPlain.trim() && (textHTML.startsWith("<span") || textHTML.startsWith("<br")) &&
|
||||
if (textPlain && "" !== textPlain.trim() && (textHTML.startsWith("<span") || textHTML.startsWith("<br")) && containsNewlines &&
|
||||
(0 > textHTMLLowercase.indexOf("class=\"katex") && 0 > textHTMLLowercase.indexOf("class=\"math") &&
|
||||
0 > textHTMLLowercase.indexOf("</a>") && 0 > textHTMLLowercase.indexOf("</img>") && 0 > textHTMLLowercase.indexOf("</code>") &&
|
||||
0 > textHTMLLowercase.indexOf("</b>") && 0 > textHTMLLowercase.indexOf("</strong>") &&
|
||||
|
|
@ -488,9 +501,6 @@ export const paste = async (protyle: IProtyle, event: (ClipboardEvent | DragEven
|
|||
if (isHTML) {
|
||||
const tempElement = document.createElement("div");
|
||||
tempElement.innerHTML = textHTML;
|
||||
tempElement.querySelectorAll("[style]").forEach((e) => {
|
||||
e.removeAttribute("style");
|
||||
});
|
||||
// 移除空的 A 标签
|
||||
tempElement.querySelectorAll("a").forEach((e) => {
|
||||
if (e.innerHTML.trim() === "") {
|
||||
|
|
|
|||
1
app/src/types/config.d.ts
vendored
1
app/src/types/config.d.ts
vendored
|
|
@ -264,6 +264,7 @@ declare namespace Config {
|
|||
}
|
||||
|
||||
export interface IAppearanceStatusBar {
|
||||
msgTaskDatabaseIndexCommitDisabled: boolean;
|
||||
msgTaskHistoryDatabaseIndexCommitDisabled: boolean;
|
||||
msgTaskAssetDatabaseIndexCommitDisabled: boolean;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -535,6 +535,7 @@ func setAppearance(c *gin.Context) {
|
|||
}
|
||||
|
||||
model.Conf.Appearance = appearance
|
||||
util.StatusBarCfg = model.Conf.Appearance.StatusBar
|
||||
model.Conf.Lang = appearance.Lang
|
||||
oldLang := util.Lang
|
||||
util.Lang = model.Conf.Lang
|
||||
|
|
|
|||
|
|
@ -816,8 +816,8 @@ func ImportFromLocalPath(boxID, localPath string, toPath string) (err error) {
|
|||
return nil
|
||||
}
|
||||
|
||||
if !d.IsDir() && strings.Contains(filepath.ToSlash(currentPath), "/assets/") {
|
||||
// assets 文件夹下的文件算作资源文件
|
||||
if !d.IsDir() && !strings.HasSuffix(currentPath, ".md") && !strings.HasSuffix(currentPath, ".markdown") {
|
||||
// 非 Markdown 文件作为资源文件处理 https://github.com/siyuan-note/siyuan/issues/13817
|
||||
existName := assetsDone[currentPath]
|
||||
var name string
|
||||
if "" == existName {
|
||||
|
|
|
|||
|
|
@ -189,6 +189,9 @@ func StatusJob() {
|
|||
}
|
||||
count[action]++
|
||||
|
||||
if action == DatabaseIndexCommit && util.StatusBarCfg.MsgTaskDatabaseIndexCommitDisabled {
|
||||
continue
|
||||
}
|
||||
if action == HistoryDatabaseIndexCommit && util.StatusBarCfg.MsgTaskHistoryDatabaseIndexCommitDisabled {
|
||||
continue
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ package util
|
|||
|
||||
// StatusBar 底部状态栏配置。https://github.com/siyuan-note/siyuan/issues/16236
|
||||
type StatusBar struct {
|
||||
MsgTaskDatabaseIndexCommitDisabled bool `json:"msgTaskDatabaseIndexCommitDisabled"`
|
||||
MsgTaskHistoryDatabaseIndexCommitDisabled bool `json:"msgTaskHistoryDatabaseIndexCommitDisabled"`
|
||||
MsgTaskAssetDatabaseIndexCommitDisabled bool `json:"msgTaskAssetDatabaseIndexCommitDisabled"`
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue