mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-20 08:30:12 +01:00
This commit is contained in:
parent
7688733364
commit
4ee566cbd9
30 changed files with 153 additions and 163 deletions
|
|
@ -424,13 +424,8 @@ export class Asset extends Model {
|
|||
</div>
|
||||
</div> <!-- outerContainer -->
|
||||
<div id="printContainer"></div>`;
|
||||
const localPDF = JSON.parse(localStorage.getItem(Constants.LOCAL_PDFTHEME) || "{}");
|
||||
let pdfTheme;
|
||||
if (window.siyuan.config.appearance.mode === 0) {
|
||||
pdfTheme = localPDF.light || "light";
|
||||
} else {
|
||||
pdfTheme = localPDF.dark || "dark";
|
||||
}
|
||||
const localPDF = window.siyuan.storage[Constants.LOCAL_PDFTHEME]
|
||||
const pdfTheme = window.siyuan.config.appearance.mode === 0 ? localPDF.light : localPDF.dark;
|
||||
const darkElement = this.element.querySelector("#pdfDark");
|
||||
const lightElement = this.element.querySelector("#pdfLight");
|
||||
if (pdfTheme === "dark") {
|
||||
|
|
@ -448,7 +443,6 @@ export class Asset extends Model {
|
|||
localPDF.dark = "light";
|
||||
}
|
||||
this.element.firstElementChild.classList.remove("pdf__outer--dark");
|
||||
localStorage.setItem(Constants.LOCAL_PDFTHEME, JSON.stringify(localPDF));
|
||||
lightElement.classList.add("toggled");
|
||||
darkElement.classList.remove("toggled");
|
||||
});
|
||||
|
|
@ -459,7 +453,6 @@ export class Asset extends Model {
|
|||
localPDF.dark = "dark";
|
||||
}
|
||||
this.element.firstElementChild.classList.add("pdf__outer--dark");
|
||||
localStorage.setItem(Constants.LOCAL_PDFTHEME, JSON.stringify(localPDF));
|
||||
lightElement.classList.remove("toggled");
|
||||
darkElement.classList.add("toggled");
|
||||
});
|
||||
|
|
|
|||
|
|
@ -78,8 +78,8 @@ export const makeCard = (nodeElement: Element[]) => {
|
|||
focusByRange(range);
|
||||
}
|
||||
});
|
||||
dialog.element.setAttribute("data-key", "makeCard")
|
||||
dialog.element.style.zIndex = "199"
|
||||
dialog.element.setAttribute("data-key", "makeCard");
|
||||
dialog.element.style.zIndex = "199";
|
||||
dialog.element.addEventListener("click", (event) => {
|
||||
let target = event.target as HTMLElement;
|
||||
while (target && !target.isSameNode(dialog.element)) {
|
||||
|
|
@ -224,7 +224,7 @@ const viewCards = (deckID: string, title: string) => {
|
|||
if (response.data.pageCount > 1) {
|
||||
nextElement.removeAttribute("disabled");
|
||||
}
|
||||
dialog.element.style.zIndex = "200"
|
||||
dialog.element.style.zIndex = "200";
|
||||
dialog.element.addEventListener("click", (event) => {
|
||||
let target = event.target as HTMLElement;
|
||||
while (target && !dialog.element.isSameNode(target)) {
|
||||
|
|
|
|||
|
|
@ -15,19 +15,7 @@ import {isBrowser} from "../util/functions";
|
|||
export const bazaar = {
|
||||
element: undefined as Element,
|
||||
genHTML() {
|
||||
const localSortString = localStorage.getItem(Constants.LOCAL_BAZAAR);
|
||||
let localSort;
|
||||
if (!localSortString) {
|
||||
localSort = {
|
||||
theme: "0",
|
||||
template: "0",
|
||||
icon: "0",
|
||||
widget: "0",
|
||||
};
|
||||
localStorage.setItem(Constants.LOCAL_BAZAAR, JSON.stringify(localSort));
|
||||
} else {
|
||||
localSort = JSON.parse(localSortString);
|
||||
}
|
||||
const localSort = window.siyuan.storage[Constants.LOCAL_BAZAAR];
|
||||
const loadingHTML = `<div style="height: ${bazaar.element.clientHeight - 72}px;display: flex;align-items: center;justify-content: center;"><img src="/stage/loading-pure.svg"></div>`;
|
||||
return `<div class="fn__flex-column" style="height: 100%">
|
||||
<div class="layout-tab-bar fn__flex">
|
||||
|
|
@ -609,7 +597,7 @@ export const bazaar = {
|
|||
});
|
||||
} else {
|
||||
// sort
|
||||
const localSort = JSON.parse(localStorage.getItem(Constants.LOCAL_BAZAAR));
|
||||
const localSort = window.siyuan.storage[Constants.LOCAL_BAZAAR];
|
||||
const panelElement = selectElement.parentElement.parentElement;
|
||||
let html = "";
|
||||
if (selectElement.value === "0") { // 更新时间降序
|
||||
|
|
@ -638,7 +626,6 @@ export const bazaar = {
|
|||
});
|
||||
}
|
||||
localSort[selectElement.parentElement.parentElement.getAttribute("data-type")] = selectElement.value;
|
||||
localStorage.setItem(Constants.LOCAL_BAZAAR, JSON.stringify(localSort));
|
||||
panelElement.querySelector(".b3-cards").innerHTML = html;
|
||||
}
|
||||
});
|
||||
|
|
@ -667,7 +654,7 @@ export const bazaar = {
|
|||
bazaar.data[bazaarType] = response.data.packages;
|
||||
element.innerHTML = `<div class="b3-cards">${html}</div>`;
|
||||
|
||||
const localSort = JSON.parse(localStorage.getItem(Constants.LOCAL_BAZAAR));
|
||||
const localSort = window.siyuan.storage[Constants.LOCAL_BAZAAR];
|
||||
if (localSort[bazaarType.replace("s", "")] === "1") {
|
||||
html = "";
|
||||
Array.from(element.querySelectorAll(".b3-card")).sort((a, b) => {
|
||||
|
|
|
|||
|
|
@ -59,11 +59,11 @@ export abstract class Constants {
|
|||
|
||||
// localstorage
|
||||
public static readonly LOCAL_SEARCHEDATA = "local-searchedata";
|
||||
public static readonly LOCAL_SEARCHEKEYS = "local-searchekeys"; // "keys", "col", "row", "replaceKeys", "layout"
|
||||
public static readonly LOCAL_SEARCHEKEYS = "local-searchekeys";
|
||||
public static readonly LOCAL_DOCINFO = "local-docinfo"; // only mobile
|
||||
public static readonly LOCAL_DAILYNOTEID = "local-dailynoteid";
|
||||
public static readonly LOCAL_HISTORYNOTEID = "local-historynoteid";
|
||||
public static readonly LOCAL_CODELANG = "local-codelang";
|
||||
public static readonly LOCAL_DAILYNOTEID = "local-dailynoteid"; // string
|
||||
public static readonly LOCAL_HISTORYNOTEID = "local-historynoteid"; // string
|
||||
public static readonly LOCAL_CODELANG = "local-codelang"; // string
|
||||
public static readonly LOCAL_FONTSTYLES = "local-fontstyles";
|
||||
public static readonly LOCAL_EXPORTPDF = "local-exportpdf";
|
||||
public static readonly LOCAL_EXPORTWORD = "local-exportword";
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ const renderDoc = (element: HTMLElement, currentPage: number) => {
|
|||
const opElement = element.querySelector('.b3-select[data-type="opselect"]') as HTMLSelectElement;
|
||||
const typeElement = element.querySelector('.b3-select[data-type="typeselect"]') as HTMLSelectElement;
|
||||
const notebookElement = element.querySelector('.b3-select[data-type="notebookselect"]') as HTMLSelectElement;
|
||||
localStorage.setItem(Constants.LOCAL_HISTORYNOTEID, notebookElement.value);
|
||||
window.siyuan.storage[Constants.LOCAL_HISTORYNOTEID] = notebookElement.value;
|
||||
const docElement = element.querySelector('.history__text[data-type="docPanel"]');
|
||||
const assetElement = element.querySelector('.history__text[data-type="assetPanel"]');
|
||||
const mdElement = element.querySelector('.history__text[data-type="mdPanel"]') as HTMLTextAreaElement;
|
||||
|
|
@ -211,7 +211,7 @@ export const openHistory = () => {
|
|||
return;
|
||||
}
|
||||
|
||||
const currentNotebookId = localStorage.getItem(Constants.LOCAL_HISTORYNOTEID);
|
||||
const currentNotebookId = window.siyuan.storage[Constants.LOCAL_HISTORYNOTEID];
|
||||
let notebookSelectHTML = "";
|
||||
window.siyuan.notebooks.forEach((item) => {
|
||||
if (!item.closed) {
|
||||
|
|
|
|||
|
|
@ -122,9 +122,9 @@ class App {
|
|||
}),
|
||||
menus: new Menus()
|
||||
};
|
||||
setLocalStorage();
|
||||
fetchPost("/api/system/getConf", {}, response => {
|
||||
window.siyuan.config = response.data.conf;
|
||||
setLocalStorage();
|
||||
fetchGet(`/appearance/langs/${window.siyuan.config.appearance.lang}.json?v=${Constants.SIYUAN_VERSION}`, (lauguages) => {
|
||||
window.siyuan.languages = lauguages;
|
||||
bootSync();
|
||||
|
|
|
|||
|
|
@ -455,10 +455,10 @@ export const zoomOut = (protyle: IProtyle, id: string, focusId?: string, isPushB
|
|||
}
|
||||
}
|
||||
if (window.siyuan.mobileEditor) {
|
||||
localStorage.setItem(Constants.LOCAL_DOCINFO, JSON.stringify({
|
||||
window.siyuan.storage[Constants.LOCAL_DOCINFO] = {
|
||||
id,
|
||||
action: id === protyle.block.rootID ? [Constants.CB_GET_HL, Constants.CB_GET_CONTEXT] : [Constants.CB_GET_ALL]
|
||||
}));
|
||||
};
|
||||
if (isPushBack) {
|
||||
pushBack();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import {hideElements} from "../protyle/ui/hideElements";
|
|||
import {pushBack} from "./util/MobileBackFoward";
|
||||
|
||||
export const openMobileFileById = (id: string, action = [Constants.CB_GET_HL]) => {
|
||||
localStorage.setItem(Constants.LOCAL_DOCINFO, JSON.stringify({id, action}));
|
||||
window.siyuan.storage[Constants.LOCAL_DOCINFO] = {id, action};
|
||||
if (window.siyuan.mobileEditor) {
|
||||
hideElements(["toolbar", "hint", "util"], window.siyuan.mobileEditor.protyle);
|
||||
if (window.siyuan.mobileEditor.protyle.contentElement.classList.contains("fn__none")) {
|
||||
|
|
|
|||
|
|
@ -44,10 +44,10 @@ class App {
|
|||
window.siyuan.menus.menu.remove();
|
||||
}
|
||||
});
|
||||
setLocalStorage();
|
||||
fetchPost("/api/system/getConf", {}, confResponse => {
|
||||
confResponse.data.conf.keymap = Constants.SIYUAN_KEYMAP;
|
||||
window.siyuan.config = confResponse.data.conf;
|
||||
setLocalStorage();
|
||||
fetchGet(`/appearance/langs/${window.siyuan.config.appearance.lang}.json?v=${Constants.SIYUAN_VERSION}`, (lauguages) => {
|
||||
window.siyuan.languages = lauguages;
|
||||
document.title = window.siyuan.languages.siyuanNote;
|
||||
|
|
|
|||
|
|
@ -12,10 +12,10 @@ const forwardStack: IBackStack[] = [];
|
|||
|
||||
const focusStack = (backStack: IBackStack) => {
|
||||
const protyle = window.siyuan.mobileEditor.protyle;
|
||||
localStorage.setItem(Constants.LOCAL_DOCINFO, JSON.stringify({
|
||||
window.siyuan.storage[Constants.LOCAL_DOCINFO] = {
|
||||
id: backStack.id,
|
||||
action: backStack.callback,
|
||||
}));
|
||||
};
|
||||
hideElements(["toolbar", "hint", "util"], window.siyuan.mobileEditor.protyle);
|
||||
if (protyle.contentElement.classList.contains("fn__none")) {
|
||||
setEditMode(protyle, "wysiwyg");
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ export const initFramework = () => {
|
|||
});
|
||||
initEditorName();
|
||||
if (getOpenNotebookCount() > 0) {
|
||||
const localDoc = JSON.parse(localStorage.getItem(Constants.LOCAL_DOCINFO) || '{"id": ""}');
|
||||
const localDoc = window.siyuan.storage[Constants.LOCAL_DOCINFO];
|
||||
fetchPost("/api/block/checkBlockExist", {id: localDoc.id}, existResponse => {
|
||||
if (existResponse.data) {
|
||||
openMobileFileById(localDoc.id, localDoc.action);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import {fetchPost} from "../../util/fetch";
|
||||
import {getEventName, openByMobile, writeText} from "../../protyle/util/compatibility";
|
||||
import {exportLocalStorage, getEventName, openByMobile, writeText} from "../../protyle/util/compatibility";
|
||||
import {popSearch} from "./search";
|
||||
import {initAppearance} from "../settings/appearance";
|
||||
import {closePanel} from "./closePanel";
|
||||
|
|
@ -172,7 +172,9 @@ ${accountHTML}
|
|||
event.stopPropagation();
|
||||
break;
|
||||
} else if (target.id === "menuSafeQuit") {
|
||||
exportLocalStorage(() => {
|
||||
exitSiYuan();
|
||||
});
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
break;
|
||||
|
|
@ -439,9 +441,11 @@ ${accountHTML}
|
|||
event.stopPropagation();
|
||||
break;
|
||||
} else if (target.id === "menuLock") {
|
||||
exportLocalStorage(() => {
|
||||
fetchPost("/api/system/logoutAuth", {}, () => {
|
||||
window.location.href = "/";
|
||||
});
|
||||
});
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
break;
|
||||
|
|
@ -457,6 +461,7 @@ ${accountHTML}
|
|||
event.stopPropagation();
|
||||
break;
|
||||
} else if (target.id === "menuSyncNow") {
|
||||
exportLocalStorage();
|
||||
syncGuide();
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
|
|
|||
|
|
@ -37,17 +37,14 @@ export const toolbarSearchEvent = () => {
|
|||
onRecentBlocks(response.data.blocks, response.data.matchedRootCount,response.data.matchedBlockCount);
|
||||
});
|
||||
}
|
||||
const localData = JSON.parse(localStorage.getItem(Constants.LOCAL_SEARCHEDATA) || "{}");
|
||||
localData.k = inputElement.value;
|
||||
localStorage.setItem(Constants.LOCAL_SEARCHEDATA, JSON.stringify(localData));
|
||||
window.siyuan.storage[Constants.LOCAL_SEARCHEDATA].k = inputElement.value;
|
||||
}, Constants.TIMEOUT_SEARCH);
|
||||
};
|
||||
|
||||
const initToolbarSearch = () => {
|
||||
const inputElement = document.getElementById("toolbarSearch") as HTMLInputElement;
|
||||
inputElement.focus();
|
||||
const localData = JSON.parse(localStorage.getItem(Constants.LOCAL_SEARCHEDATA) || "{}");
|
||||
inputElement.value = localData.k || "";
|
||||
inputElement.value = window.siyuan.storage[Constants.LOCAL_SEARCHEDATA].k;
|
||||
inputElement.addEventListener("compositionend", (event: InputEvent) => {
|
||||
if (event && event.isComposing) {
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ export const saveExport = (option: { type: string, id: string }) => {
|
|||
renderPDF(option.id);
|
||||
}
|
||||
} else if (option.type === "word") {
|
||||
const localData = localStorage.getItem(Constants.LOCAL_EXPORTWORD);
|
||||
const localData = window.siyuan.storage[Constants.LOCAL_EXPORTWORD];
|
||||
const wordDialog = new Dialog({
|
||||
title: "Word " + window.siyuan.languages.config,
|
||||
content: `<div class="b3-dialog__content">
|
||||
|
|
@ -35,14 +35,14 @@ export const saveExport = (option: { type: string, id: string }) => {
|
|||
${window.siyuan.languages.exportPDF4}
|
||||
</div>
|
||||
<span class="fn__space"></span>
|
||||
<input id="removeAssets" class="b3-switch" type="checkbox" ${localData === "true" ? "checked" : ""}>
|
||||
<input id="removeAssets" class="b3-switch" type="checkbox" ${localData.removeAssets ? "checked" : ""}>
|
||||
</label>
|
||||
<label class="fn__flex b3-label">
|
||||
<div class="fn__flex-1">
|
||||
${window.siyuan.languages.exportPDF6}
|
||||
</div>
|
||||
<span class="fn__space"></span>
|
||||
<input id="mergeSubdocs" class="b3-switch" type="checkbox" ${localData === "true" ? "checked" : ""}>
|
||||
<input id="mergeSubdocs" class="b3-switch" type="checkbox" ${localData.mergeSubdocs ? "checked" : ""}>
|
||||
</label>
|
||||
</div>
|
||||
<div class="b3-dialog__action">
|
||||
|
|
@ -58,7 +58,6 @@ export const saveExport = (option: { type: string, id: string }) => {
|
|||
btnsElement[1].addEventListener("click", () => {
|
||||
const removeAssets = (wordDialog.element.querySelector("#removeAssets") as HTMLInputElement).checked;
|
||||
const mergeSubdocs = (wordDialog.element.querySelector("#mergeSubdocs") as HTMLInputElement).checked;
|
||||
localStorage.setItem(Constants.LOCAL_EXPORTWORD, JSON.stringify({removeAssets, mergeSubdocs}));
|
||||
getExportPath(option, removeAssets, mergeSubdocs);
|
||||
wordDialog.destroy();
|
||||
});
|
||||
|
|
@ -71,15 +70,7 @@ export const saveExport = (option: { type: string, id: string }) => {
|
|||
/// #if !BROWSER
|
||||
let originalZoomFactor = 1;
|
||||
const renderPDF = (id: string) => {
|
||||
const localData = JSON.parse(localStorage.getItem(Constants.LOCAL_EXPORTPDF) || JSON.stringify({
|
||||
landscape: false,
|
||||
marginType: "0",
|
||||
scale: 1,
|
||||
pageSize: "A4",
|
||||
removeAssets: true,
|
||||
keepFold: false,
|
||||
mergeSubdocs: false,
|
||||
}));
|
||||
const localData = window.siyuan.storage[Constants.LOCAL_EXPORTPDF];
|
||||
const servePath = window.location.protocol + "//" + window.location.host;
|
||||
const isDefault = (window.siyuan.config.appearance.mode === 1 && window.siyuan.config.appearance.themeDark === "midnight") || (window.siyuan.config.appearance.mode === 0 && window.siyuan.config.appearance.themeLight === "daylight");
|
||||
let themeStyle = "";
|
||||
|
|
|
|||
|
|
@ -591,7 +591,7 @@ export class Gutter {
|
|||
click() {
|
||||
let html = "";
|
||||
selectsElement.forEach(item => {
|
||||
item.querySelectorAll('[spellcheck]').forEach(editItem => {
|
||||
item.querySelectorAll("[spellcheck]").forEach(editItem => {
|
||||
const cloneNode = editItem.cloneNode(true) as HTMLElement;
|
||||
cloneNode.querySelectorAll('[data-type="backslash"]').forEach(slashItem => {
|
||||
slashItem.firstElementChild.remove();
|
||||
|
|
@ -980,7 +980,7 @@ export class Gutter {
|
|||
accelerator: window.siyuan.config.keymap.editor.general.copyPlainText.custom,
|
||||
click() {
|
||||
let text = "";
|
||||
nodeElement.querySelectorAll('[spellcheck]').forEach(item => {
|
||||
nodeElement.querySelectorAll("[spellcheck]").forEach(item => {
|
||||
const cloneNode = item.cloneNode(true) as HTMLElement;
|
||||
cloneNode.querySelectorAll('[data-type="backslash"]').forEach(slashItem => {
|
||||
slashItem.firstElementChild.remove();
|
||||
|
|
|
|||
|
|
@ -556,7 +556,7 @@ ${unicode2Emoji(emoji.unicode, true)}</button>`;
|
|||
}
|
||||
let textContent = value;
|
||||
if (value === "```") {
|
||||
textContent = value + (localStorage.getItem(Constants.LOCAL_CODELANG) || "") + Lute.Caret + "\n```";
|
||||
textContent = value + window.siyuan.storage[Constants.LOCAL_CODELANG] + Lute.Caret + "\n```";
|
||||
}
|
||||
const editableElement = getContenteditableElement(nodeElement);
|
||||
if (value === "![]()") { // https://github.com/siyuan-note/siyuan/issues/4586 1
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ export const highlightRender = (element: Element, cdn = Constants.PROTYLE_CDN) =
|
|||
let isPreview = false;
|
||||
if (element.classList.contains("code-block")) {
|
||||
// 编辑器内代码块编辑渲染
|
||||
codeElements = element.querySelectorAll('[spellcheck]');
|
||||
codeElements = element.querySelectorAll("[spellcheck]");
|
||||
} else {
|
||||
if (element.classList.contains("item__readme")) {
|
||||
// bazaar reademe
|
||||
|
|
@ -22,7 +22,7 @@ export const highlightRender = (element: Element, cdn = Constants.PROTYLE_CDN) =
|
|||
codeElements = element.querySelectorAll(".code-block code");
|
||||
isPreview = true;
|
||||
} else {
|
||||
codeElements = element.querySelectorAll('.code-block [spellcheck]');
|
||||
codeElements = element.querySelectorAll(".code-block [spellcheck]");
|
||||
}
|
||||
}
|
||||
if (codeElements.length === 0) {
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ export const fontMenu = (protyle: IProtyle) => {
|
|||
const element = document.createElement("div");
|
||||
element.classList.add("protyle-font");
|
||||
let lastColorHTML = "";
|
||||
const lastFonts = JSON.parse(localStorage.getItem(Constants.LOCAL_FONTSTYLES) || "[]");
|
||||
const lastFonts = window.siyuan.storage[Constants.LOCAL_FONTSTYLES];
|
||||
if (lastFonts.length > 0) {
|
||||
lastColorHTML = `<div style="margin-bottom: 2px" class="fn__flex">
|
||||
${window.siyuan.languages.lastUsed}<span class="fn__space"></span>
|
||||
|
|
@ -136,14 +136,13 @@ export const fontMenu = (protyle: IProtyle) => {
|
|||
};
|
||||
|
||||
export const fontEvent = (protyle: IProtyle, type?: string, color?: string) => {
|
||||
let localFontStyles = JSON.parse(localStorage.getItem(Constants.LOCAL_FONTSTYLES) || "[]");
|
||||
let localFontStyles = window.siyuan.storage[Constants.LOCAL_FONTSTYLES];
|
||||
if (type) {
|
||||
localFontStyles.splice(0, 0, `${type}${Constants.ZWSP}${color}`);
|
||||
localFontStyles = [...new Set(localFontStyles)];
|
||||
if (localFontStyles.length > 8) {
|
||||
localFontStyles.splice(7, 1);
|
||||
}
|
||||
localStorage.setItem(Constants.LOCAL_FONTSTYLES, JSON.stringify(localFontStyles));
|
||||
} else {
|
||||
if (localFontStyles.length === 0) {
|
||||
type = "color";
|
||||
|
|
|
|||
|
|
@ -1162,7 +1162,7 @@ export class Toolbar {
|
|||
if (event.key === "Enter") {
|
||||
const activeText = this.subElement.querySelector(".b3-list-item--focus").textContent;
|
||||
languageElement.textContent = activeText === window.siyuan.languages.clear ? "" : activeText;
|
||||
localStorage.setItem(Constants.LOCAL_CODELANG, languageElement.textContent);
|
||||
window.siyuan.storage[Constants.LOCAL_CODELANG] = languageElement.textContent;
|
||||
const editElement = getContenteditableElement(nodeElement);
|
||||
const lineNumber = nodeElement.getAttribute("linenumber");
|
||||
if (lineNumber === "true" || (lineNumber !== "false" && window.siyuan.config.editor.codeSyntaxHighlightLineNum)) {
|
||||
|
|
@ -1226,7 +1226,7 @@ export class Toolbar {
|
|||
return;
|
||||
}
|
||||
languageElement.textContent = listElement.textContent === window.siyuan.languages.clear ? "" : listElement.textContent;
|
||||
localStorage.setItem(Constants.LOCAL_CODELANG, languageElement.textContent);
|
||||
window.siyuan.storage[Constants.LOCAL_CODELANG] = languageElement.textContent;
|
||||
const nodeElement = hasClosestBlock(languageElement);
|
||||
if (nodeElement) {
|
||||
const editElement = getContenteditableElement(nodeElement);
|
||||
|
|
|
|||
|
|
@ -141,21 +141,79 @@ export const hotKey2Electron = (key: string) => {
|
|||
|
||||
export const setLocalStorage = () => {
|
||||
fetchPost("/api/storage/getLocalStorage", undefined, (response) => {
|
||||
if (response.data) {
|
||||
localStorage.clear();
|
||||
Object.keys(response.data).forEach(item => {
|
||||
if (item !== "setItem" && item !== "removeItem") {
|
||||
localStorage.setItem(item, response.data[item]);
|
||||
window.siyuan.storage = response.data;
|
||||
// 历史数据迁移
|
||||
const defaultStorage: any = {};
|
||||
defaultStorage[Constants.LOCAL_SEARCHEKEYS] = {
|
||||
keys: [],
|
||||
replaceKeys: [],
|
||||
col: "",
|
||||
row: "",
|
||||
layout: 0
|
||||
};
|
||||
defaultStorage[Constants.LOCAL_PDFTHEME] = {light: "light", dark: "dark"};
|
||||
defaultStorage[Constants.LOCAL_BAZAAR] = {
|
||||
theme: "0",
|
||||
template: "0",
|
||||
icon: "0",
|
||||
widget: "0",
|
||||
};
|
||||
defaultStorage[Constants.LOCAL_EXPORTWORD] = {removeAssets: false, mergeSubdocs: false};
|
||||
defaultStorage[Constants.LOCAL_EXPORTPDF] = {
|
||||
landscape: false,
|
||||
marginType: "0",
|
||||
scale: 1,
|
||||
pageSize: "A4",
|
||||
removeAssets: true,
|
||||
keepFold: false,
|
||||
mergeSubdocs: false,
|
||||
};
|
||||
defaultStorage[Constants.LOCAL_DOCINFO] = {
|
||||
id: "",
|
||||
action: []
|
||||
};
|
||||
defaultStorage[Constants.LOCAL_FONTSTYLES] = [];
|
||||
defaultStorage[Constants.LOCAL_SEARCHEDATA] = {
|
||||
sort: 0,
|
||||
group: 0,
|
||||
hasReplace: false,
|
||||
method: 0,
|
||||
hPath: "",
|
||||
idPath: [],
|
||||
k: "",
|
||||
r: "",
|
||||
types: {
|
||||
document: window.siyuan.config.search.document,
|
||||
heading: window.siyuan.config.search.heading,
|
||||
list: window.siyuan.config.search.list,
|
||||
listItem: window.siyuan.config.search.listItem,
|
||||
codeBlock: window.siyuan.config.search.codeBlock,
|
||||
htmlBlock: window.siyuan.config.search.htmlBlock,
|
||||
mathBlock: window.siyuan.config.search.mathBlock,
|
||||
table: window.siyuan.config.search.table,
|
||||
blockquote: window.siyuan.config.search.blockquote,
|
||||
superBlock: window.siyuan.config.search.superBlock,
|
||||
paragraph: window.siyuan.config.search.paragraph,
|
||||
}
|
||||
};
|
||||
|
||||
[Constants.LOCAL_SEARCHEKEYS, Constants.LOCAL_PDFTHEME, Constants.LOCAL_BAZAAR, Constants.LOCAL_EXPORTWORD,
|
||||
Constants.LOCAL_EXPORTPDF, Constants.LOCAL_DOCINFO, Constants.LOCAL_FONTSTYLES, Constants.LOCAL_SEARCHEDATA].forEach((key) => {
|
||||
if (typeof response.data[key] === "string") {
|
||||
try {
|
||||
window.siyuan.storage[key] = Object.assign(defaultStorage[key], JSON.parse(response.data[key]));
|
||||
} catch (e) {
|
||||
window.siyuan.storage[key] = defaultStorage[key];
|
||||
}
|
||||
} else if (typeof response.data[key] === "undefined") {
|
||||
window.siyuan.storage[key] = defaultStorage[key];
|
||||
}
|
||||
});
|
||||
} else {
|
||||
exportLocalStorage();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
export const exportLocalStorage = (cb?: () => void) => {
|
||||
fetchPost("/api/storage/setLocalStorage", {val: localStorage}, () => {
|
||||
fetchPost("/api/storage/setLocalStorage", {val: window.siyuan.storage}, () => {
|
||||
if (cb) {
|
||||
cb();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ export const processPasteCode = (html: string, text: string) => {
|
|||
if (isCode) {
|
||||
const code = text || html;
|
||||
if (/\n/.test(code) || pres.length === 1) {
|
||||
return `<div data-type="NodeCodeBlock" class="code-block" data-node-id="${Lute.NewNodeID()}"><div class="protyle-action"><span class="protyle-action--first protyle-action__language" contenteditable="false">${localStorage.getItem(Constants.LOCAL_CODELANG) || ""}</span><span class="fn__flex-1"></span><span class="protyle-icon protyle-icon--first protyle-action__copy"><svg><use xlink:href="#iconCopy"></use></svg></span><span class="protyle-icon protyle-icon--last protyle-action__menu"><svg><use xlink:href="#iconMore"></use></svg></span></div><div contenteditable="true" spellcheck="${window.siyuan.config.editor.spellcheck}">${code.replace(/&/g, "&").replace(/</g, "<")}<wbr></div><div class="protyle-attr" contenteditable="false">${Constants.ZWSP}</div></div>`;
|
||||
return `<div data-type="NodeCodeBlock" class="code-block" data-node-id="${Lute.NewNodeID()}"><div class="protyle-action"><span class="protyle-action--first protyle-action__language" contenteditable="false">${window.siyuan.storage[Constants.LOCAL_CODELANG]}</span><span class="fn__flex-1"></span><span class="protyle-icon protyle-icon--first protyle-action__copy"><svg><use xlink:href="#iconCopy"></use></svg></span><span class="protyle-icon protyle-icon--last protyle-action__menu"><svg><use xlink:href="#iconMore"></use></svg></span></div><div contenteditable="true" spellcheck="${window.siyuan.config.editor.spellcheck}">${code.replace(/&/g, "&").replace(/</g, "<")}<wbr></div><div class="protyle-attr" contenteditable="false">${Constants.ZWSP}</div></div>`;
|
||||
} else {
|
||||
return code;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -244,10 +244,10 @@ export const enter = (blockElement: HTMLElement, range: Range, protyle: IProtyle
|
|||
blockElement = protyle.wysiwyg.element.querySelector(`[data-node-id="${blockElement.getAttribute("data-node-id")}"]`);
|
||||
const languageElement = blockElement.querySelector(".protyle-action__language");
|
||||
if (languageElement) {
|
||||
if (localStorage.getItem(Constants.LOCAL_CODELANG) && languageElement.textContent === "") {
|
||||
languageElement.textContent = localStorage.getItem(Constants.LOCAL_CODELANG);
|
||||
if (window.siyuan.storage[Constants.LOCAL_CODELANG] && languageElement.textContent === "") {
|
||||
languageElement.textContent = window.siyuan.storage[Constants.LOCAL_CODELANG];
|
||||
} else {
|
||||
localStorage.setItem(Constants.LOCAL_CODELANG, languageElement.textContent);
|
||||
window.siyuan.storage[Constants.LOCAL_CODELANG] = languageElement.textContent;
|
||||
}
|
||||
highlightRender(blockElement);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -170,8 +170,8 @@ export const input = async (protyle: IProtyle, blockElement: HTMLElement, range:
|
|||
if (realType === "NodeCodeBlock") {
|
||||
const languageElement = realElement.querySelector(".protyle-action__language");
|
||||
if (languageElement) {
|
||||
if (localStorage.getItem(Constants.LOCAL_CODELANG) && languageElement.textContent === "") {
|
||||
languageElement.textContent = localStorage.getItem(Constants.LOCAL_CODELANG);
|
||||
if (window.siyuan.storage[Constants.LOCAL_CODELANG] && languageElement.textContent === "") {
|
||||
languageElement.textContent = window.siyuan.storage[Constants.LOCAL_CODELANG];
|
||||
}
|
||||
highlightRender(realElement);
|
||||
} else if (tempElement.content.childElementCount === 1) {
|
||||
|
|
|
|||
|
|
@ -1248,7 +1248,7 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
|
|||
const id = nodeElement.getAttribute("data-node-id");
|
||||
const html = nodeElement.outerHTML;
|
||||
const editElement = getContenteditableElement(nodeElement);
|
||||
editElement.innerHTML = "```" + (localStorage.getItem(Constants.LOCAL_CODELANG) || "") + "\n" + editElement.textContent + "<wbr>\n```";
|
||||
editElement.innerHTML = "```" + window.siyuan.storage[Constants.LOCAL_CODELANG] + "\n" + editElement.textContent + "<wbr>\n```";
|
||||
const newHTML = protyle.lute.SpinBlockDOM(nodeElement.outerHTML);
|
||||
nodeElement.outerHTML = newHTML;
|
||||
const newNodeElement = protyle.wysiwyg.element.querySelector(`[data-node-id="${id}"]`);
|
||||
|
|
|
|||
|
|
@ -45,22 +45,7 @@ export const openSearch = async (hotkey: string, key?: string, notebookId?: stri
|
|||
if (exitDialog) {
|
||||
return;
|
||||
}
|
||||
const localData = JSON.parse(localStorage.getItem(Constants.LOCAL_SEARCHEDATA) || "{}");
|
||||
if (!localData.types) {
|
||||
localData.types = {
|
||||
document: window.siyuan.config.search.document,
|
||||
heading: window.siyuan.config.search.heading,
|
||||
list: window.siyuan.config.search.list,
|
||||
listItem: window.siyuan.config.search.listItem,
|
||||
codeBlock: window.siyuan.config.search.codeBlock,
|
||||
htmlBlock: window.siyuan.config.search.htmlBlock,
|
||||
mathBlock: window.siyuan.config.search.mathBlock,
|
||||
table: window.siyuan.config.search.table,
|
||||
blockquote: window.siyuan.config.search.blockquote,
|
||||
superBlock: window.siyuan.config.search.superBlock,
|
||||
paragraph: window.siyuan.config.search.paragraph,
|
||||
};
|
||||
}
|
||||
const localData = window.siyuan.storage[Constants.LOCAL_SEARCHEDATA];
|
||||
let hPath = "";
|
||||
let idPath: string[] = [];
|
||||
if (notebookId) {
|
||||
|
|
@ -75,8 +60,8 @@ export const openSearch = async (hotkey: string, key?: string, notebookId?: stri
|
|||
idPath[0] = pathPosix().join(idPath[0], searchPath);
|
||||
}
|
||||
} else if (window.siyuan.config.keymap.general.globalSearch.custom === hotkey) {
|
||||
hPath = localData.hPath || "";
|
||||
idPath = localData.idPath || [];
|
||||
hPath = localData.hPath;
|
||||
idPath = localData.idPath;
|
||||
// 历史原因,2.5.2 之前为 string https://github.com/siyuan-note/siyuan/issues/6902
|
||||
if (typeof idPath === "string") {
|
||||
idPath = [idPath];
|
||||
|
|
@ -103,13 +88,13 @@ export const openSearch = async (hotkey: string, key?: string, notebookId?: stri
|
|||
dialog.element.setAttribute("data-key", hotkey);
|
||||
const edit = genSearch({
|
||||
k: key || localData.k,
|
||||
r: localData.r || "",
|
||||
r: localData.r,
|
||||
hasReplace: hotkey === window.siyuan.config.keymap.general.replace.custom,
|
||||
method: localData.method || 0,
|
||||
method: localData.method,
|
||||
hPath,
|
||||
idPath,
|
||||
group: localData.group || 0,
|
||||
sort: localData.sort || 0,
|
||||
group: localData.group,
|
||||
sort: localData.sort,
|
||||
types: localData.types
|
||||
}, dialog.element.querySelector(".b3-dialog__container").lastElementChild, () => {
|
||||
dialog.destroy();
|
||||
|
|
|
|||
|
|
@ -20,15 +20,12 @@ import {Dialog} from "../dialog";
|
|||
import {hasClosestByClassName} from "../protyle/util/hasClosest";
|
||||
|
||||
const saveKeyList = (type: "keys" | "replaceKeys", value: string) => {
|
||||
const searchKeys = JSON.parse(localStorage.getItem(Constants.LOCAL_SEARCHEKEYS) || "{}");
|
||||
let list: string[] = searchKeys[type] || [];
|
||||
let list: string[] = window.siyuan.storage[Constants.LOCAL_SEARCHEKEYS][type];
|
||||
list.splice(0, 0, value);
|
||||
list = Array.from(new Set(list));
|
||||
if (list.length > window.siyuan.config.search.limit) {
|
||||
list.splice(window.siyuan.config.search.limit, list.length - window.siyuan.config.search.limit);
|
||||
}
|
||||
searchKeys[type] = list;
|
||||
localStorage.setItem(Constants.LOCAL_SEARCHEKEYS, JSON.stringify(searchKeys));
|
||||
};
|
||||
|
||||
export const openGlobalSearch = (text: string, replace: boolean) => {
|
||||
|
|
@ -52,33 +49,18 @@ export const openGlobalSearch = (text: string, replace: boolean) => {
|
|||
icon: "iconSearch",
|
||||
title: window.siyuan.languages.search,
|
||||
callback(tab) {
|
||||
const localData = JSON.parse(localStorage.getItem(Constants.LOCAL_SEARCHEDATA) || "{}");
|
||||
if (!localData.types) {
|
||||
localData.types = {
|
||||
document: window.siyuan.config.search.document,
|
||||
heading: window.siyuan.config.search.heading,
|
||||
list: window.siyuan.config.search.list,
|
||||
listItem: window.siyuan.config.search.listItem,
|
||||
codeBlock: window.siyuan.config.search.codeBlock,
|
||||
htmlBlock: window.siyuan.config.search.htmlBlock,
|
||||
mathBlock: window.siyuan.config.search.mathBlock,
|
||||
table: window.siyuan.config.search.table,
|
||||
blockquote: window.siyuan.config.search.blockquote,
|
||||
superBlock: window.siyuan.config.search.superBlock,
|
||||
paragraph: window.siyuan.config.search.paragraph,
|
||||
};
|
||||
}
|
||||
const localData = window.siyuan.storage[Constants.LOCAL_SEARCHEDATA];
|
||||
const asset = new Search({
|
||||
tab,
|
||||
config: {
|
||||
k: text,
|
||||
r: "",
|
||||
hasReplace: false,
|
||||
method: localData.method || 0,
|
||||
method: localData.method,
|
||||
hPath: "",
|
||||
idPath: [],
|
||||
group: localData.group || 0,
|
||||
sort: localData.sort || 0,
|
||||
group: localData.group,
|
||||
sort: localData.sort,
|
||||
types: localData.types
|
||||
}
|
||||
});
|
||||
|
|
@ -109,7 +91,7 @@ export const genSearch = (config: ISearchOption, element: Element, closeCB?: ()
|
|||
enableIncludeChild = true;
|
||||
}
|
||||
});
|
||||
const data = JSON.parse(localStorage.getItem(Constants.LOCAL_SEARCHEKEYS) || "{}");
|
||||
const data = window.siyuan.storage[Constants.LOCAL_SEARCHEKEYS];
|
||||
element.innerHTML = `<div class="fn__flex-column" style="height: 100%;${closeCB ? "border-radius: 4px;overflow: hidden;" : ""}">
|
||||
<div class="b3-form__icon search__header">
|
||||
<span class="fn__a" id="searchHistoryBtn">
|
||||
|
|
@ -225,7 +207,7 @@ export const genSearch = (config: ISearchOption, element: Element, closeCB?: ()
|
|||
const documentSelf = document;
|
||||
const nextElement = dragElement.nextElementSibling as HTMLElement;
|
||||
const previousElement = dragElement.previousElementSibling as HTMLElement;
|
||||
const direction = JSON.parse(localStorage.getItem(Constants.LOCAL_SEARCHEKEYS) || "{}").layout === 1 ? "lr" : "tb";
|
||||
const direction = window.siyuan.storage[Constants.LOCAL_SEARCHEKEYS].layout === 1 ? "lr" : "tb";
|
||||
const x = event[direction === "lr" ? "clientX" : "clientY"];
|
||||
const previousSize = direction === "lr" ? previousElement.clientWidth : previousElement.clientHeight;
|
||||
const nextSize = direction === "lr" ? nextElement.clientWidth : nextElement.clientHeight;
|
||||
|
|
@ -250,9 +232,7 @@ export const genSearch = (config: ISearchOption, element: Element, closeCB?: ()
|
|||
documentSelf.ondragstart = null;
|
||||
documentSelf.onselectstart = null;
|
||||
documentSelf.onselect = null;
|
||||
const json = JSON.parse(localStorage.getItem(Constants.LOCAL_SEARCHEKEYS) || "{}");
|
||||
json[direction === "lr" ? "col" : "row"] = nextElement[direction === "lr" ? "clientWidth" : "clientHeight"] + "px";
|
||||
localStorage.setItem(Constants.LOCAL_SEARCHEKEYS, JSON.stringify(json));
|
||||
window.siyuan.storage[Constants.LOCAL_SEARCHEKEYS][direction === "lr" ? "col" : "row"] = nextElement[direction === "lr" ? "clientWidth" : "clientHeight"] + "px";
|
||||
if (direction === "lr") {
|
||||
setPadding(edit.protyle);
|
||||
}
|
||||
|
|
@ -403,7 +383,7 @@ export const genSearch = (config: ISearchOption, element: Element, closeCB?: ()
|
|||
event.preventDefault();
|
||||
break;
|
||||
} else if (target.id === "searchHistoryBtn") {
|
||||
const list = JSON.parse(localStorage.getItem(Constants.LOCAL_SEARCHEKEYS) || "{}");
|
||||
const list = window.siyuan.storage[Constants.LOCAL_SEARCHEKEYS];
|
||||
if (!list.keys || list.keys.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -423,7 +403,7 @@ export const genSearch = (config: ISearchOption, element: Element, closeCB?: ()
|
|||
event.preventDefault();
|
||||
return;
|
||||
} else if (target.id === "replaceHistoryBtn") {
|
||||
const list = JSON.parse(localStorage.getItem(Constants.LOCAL_SEARCHEKEYS) || "{}");
|
||||
const list = window.siyuan.storage[Constants.LOCAL_SEARCHEKEYS];
|
||||
if (!list.replaceKeys || list.replaceKeys.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -704,10 +684,7 @@ const addConfigMoreMenu = async (config: ISearchOption, edit: Protyle, element:
|
|||
}
|
||||
}]
|
||||
}).element);
|
||||
const localData = JSON.parse(localStorage.getItem(Constants.LOCAL_SEARCHEKEYS) || "{}");
|
||||
if (typeof localData.layout === "undefined") {
|
||||
localData.layout = 0;
|
||||
}
|
||||
const localData = window.siyuan.storage[Constants.LOCAL_SEARCHEKEYS];
|
||||
window.siyuan.menus.menu.append(new MenuItem({
|
||||
label: window.siyuan.languages.layout,
|
||||
type: "submenu",
|
||||
|
|
@ -725,7 +702,6 @@ const addConfigMoreMenu = async (config: ISearchOption, edit: Protyle, element:
|
|||
}
|
||||
setPadding(edit.protyle);
|
||||
localData.layout = 0;
|
||||
localStorage.setItem(Constants.LOCAL_SEARCHEKEYS, JSON.stringify(localData));
|
||||
}
|
||||
}, {
|
||||
label: window.siyuan.languages.leftRightLayout,
|
||||
|
|
@ -741,7 +717,6 @@ const addConfigMoreMenu = async (config: ISearchOption, edit: Protyle, element:
|
|||
}
|
||||
setPadding(edit.protyle);
|
||||
localData.layout = 1;
|
||||
localStorage.setItem(Constants.LOCAL_SEARCHEKEYS, JSON.stringify(localData));
|
||||
}
|
||||
}]
|
||||
}).element);
|
||||
|
|
@ -892,9 +867,8 @@ const updateConfig = (element: Element, item: ISearchOption, config: ISearchOpti
|
|||
}
|
||||
(element.querySelector("#searchInput") as HTMLInputElement).value = item.k;
|
||||
(element.querySelector("#replaceInput") as HTMLInputElement).value = item.r;
|
||||
Object.assign(config, item);
|
||||
window.siyuan.storage[Constants.LOCAL_SEARCHEDATA] = Object.assign({}, config, item);
|
||||
inputEvent(element, config, undefined, edit);
|
||||
localStorage.setItem(Constants.LOCAL_SEARCHEDATA, JSON.stringify(config));
|
||||
window.siyuan.menus.menu.remove();
|
||||
};
|
||||
|
||||
|
|
|
|||
2
app/src/types/index.d.ts
vendored
2
app/src/types/index.d.ts
vendored
|
|
@ -57,6 +57,7 @@ interface ICard {
|
|||
name: string
|
||||
size: number
|
||||
}
|
||||
|
||||
interface ISearchOption {
|
||||
name?: string
|
||||
sort: number, // 0:按块类型(默认),1:按创建时间升序,2:按创建时间降序,3:按更新时间升序,4:按更新时间降序,5:按内容顺序(仅在按文档分组时),6:按相关度升序,7:按相关度降序
|
||||
|
|
@ -149,6 +150,7 @@ interface INotebook {
|
|||
}
|
||||
|
||||
interface ISiyuan {
|
||||
storage?: { [key: string]: any },
|
||||
printWin?: import("electron").BrowserWindow
|
||||
transactionsTimeout?: number,
|
||||
transactions?: {
|
||||
|
|
|
|||
|
|
@ -53,13 +53,8 @@ export const loadAssets = (data: IAppearance) => {
|
|||
getAllModels().graph.forEach(item => {
|
||||
item.searchGraph(false);
|
||||
});
|
||||
const localPDF = JSON.parse(localStorage.getItem(Constants.LOCAL_PDFTHEME) || "{}");
|
||||
let pdfTheme: string;
|
||||
if (window.siyuan.config.appearance.mode === 0) {
|
||||
pdfTheme = localPDF.light || "light";
|
||||
} else {
|
||||
pdfTheme = localPDF.dark || "dark";
|
||||
}
|
||||
const pdfTheme = window.siyuan.config.appearance.mode === 0 ? window.siyuan.storage[Constants.LOCAL_PDFTHEME].light :
|
||||
window.siyuan.storage[Constants.LOCAL_PDFTHEME].dark;
|
||||
document.querySelectorAll(".pdf__outer").forEach(item => {
|
||||
const darkElement = item.querySelector("#pdfDark");
|
||||
const lightElement = item.querySelector("#pdfLight");
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ export const newDailyNote = () => {
|
|||
});
|
||||
return;
|
||||
}
|
||||
const localNotebookId = localStorage.getItem(Constants.LOCAL_DAILYNOTEID);
|
||||
const localNotebookId = window.siyuan.storage[Constants.LOCAL_DAILYNOTEID];
|
||||
if (localNotebookId && getNotebookName(localNotebookId) && !isMobile()) {
|
||||
fetchPost("/api/filetree/createDailyNote", {
|
||||
notebook: localNotebookId,
|
||||
|
|
@ -66,7 +66,7 @@ export const newDailyNote = () => {
|
|||
});
|
||||
btnsElement[1].addEventListener("click", () => {
|
||||
const notebook = selectElement.value;
|
||||
localStorage.setItem(Constants.LOCAL_DAILYNOTEID, notebook);
|
||||
window.siyuan.storage[Constants.LOCAL_DAILYNOTEID] = notebook;
|
||||
fetchPost("/api/filetree/createDailyNote", {
|
||||
notebook,
|
||||
app: Constants.SIYUAN_APPID,
|
||||
|
|
|
|||
|
|
@ -292,7 +292,7 @@ const initBar = () => {
|
|||
notebook: item.id,
|
||||
app: Constants.SIYUAN_APPID,
|
||||
});
|
||||
localStorage.setItem(Constants.LOCAL_DAILYNOTEID, item.id);
|
||||
window.siyuan.storage[Constants.LOCAL_DAILYNOTEID] = item.id;
|
||||
}
|
||||
}).element);
|
||||
}
|
||||
|
|
@ -380,11 +380,15 @@ const initWindow = () => {
|
|||
return;
|
||||
}
|
||||
const msgId = showMessage(window.siyuan.languages.exporting, -1);
|
||||
localStorage.setItem(Constants.LOCAL_EXPORTPDF, JSON.stringify(Object.assign(ipcData.pdfOptions, {
|
||||
window.siyuan.storage[Constants.LOCAL_EXPORTPDF] = {
|
||||
removeAssets: ipcData.removeAssets,
|
||||
keepFold: ipcData.keepFold,
|
||||
mergeSubdocs: ipcData.mergeSubdocs,
|
||||
})));
|
||||
landscape: ipcData.pdfOptions.landscape,
|
||||
marginType: ipcData.pdfOptions.marginType,
|
||||
pageSize: ipcData.pdfOptions.pageSize,
|
||||
scale: ipcData.pdfOptions.scale,
|
||||
};
|
||||
try {
|
||||
if (window.siyuan.config.export.addFooter) {
|
||||
ipcData.pdfOptions.displayHeaderFooter = true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue