Skip to content

Commit 055a20d

Browse files
committedDec 20, 2023
添加自动暗黑模式 18 以后 6点以前
·
v1.0.6v0.0.0.7
1 parent eb3f477 commit 055a20d

File tree

1 file changed

+32
-23
lines changed

1 file changed

+32
-23
lines changed
 
Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,48 @@
11
export async function htmlTemplate(
22
p: { htmlContent: string; title: string; level: number },
33
config?: {
4-
siyuanPrefix: string;
5-
embedCode?: { head?: string; beforeBody?: string; afterBody?: string };
4+
siyuanPrefix: string
5+
embedCode?: { head?: string; beforeBody?: string; afterBody?: string }
66
},
77
) {
88
/** 根据level有几级返回多少个 '../' ,用于解决 file协议打开html文档无法正常加载资源 */
9-
let prePath = "";
9+
let prePath = ''
1010
if (config?.siyuanPrefix) {
11-
prePath = config.siyuanPrefix;
11+
prePath = config.siyuanPrefix
1212
} else {
1313
for (let i = 0; i < p.level; i++) {
14-
prePath += "../";
14+
prePath += '../'
1515
}
1616
}
17-
const version = "2.10.5";
17+
const version = '2.10.5'
18+
/** 思源中导出 html 代码: https://github1s.com/siyuan-note/siyuan/blob/HEAD/app/src/protyle/export/index.ts#L652 */
1819
//data-theme-mode="dark" data-light-theme="daylight" data-dark-theme="midnight"
1920
return `<!DOCTYPE html>
2021
<html lang="zh_CN" data-theme-mode="light" data-light-theme="daylight" data-dark-theme="midnight">
2122
<head>
22-
${config?.embedCode?.head ?? ""}
23+
${config?.embedCode?.head ?? ''}
2324
<meta charset="utf-8" />
2425
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
2526
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
2627
<meta name="apple-mobile-web-app-capable" content="yes" />
2728
<meta name="mobile-web-app-capable" content="yes" />
2829
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
2930
<link rel="stylesheet" type="text/css" id="baseStyle" href="${prePath}stage/build/export/base.css?${version}"/>
30-
<link rel="stylesheet" type="text/css" id="themeDefaultStyle" href="${prePath}appearance/themes/daylight/theme.css?${version}"/>
31+
<script>
32+
function isNightTime() {
33+
return true
34+
const currentHour = new Date().getHours();
35+
return currentHour >= 18 || currentHour < 6;
36+
}
37+
document.write('<link rel="stylesheet" type="text/css" id="themeDefaultStyle" href="${prePath}appearance/themes/'+(isNightTime()?'midnight':'daylight')+'/theme.css?${version}"/>');
38+
</script>
3139
<link rel="stylesheet" type="text/css" href="${prePath}appearance/oceanpress.css"/>
32-
3340
<title>${p.title}</title>
3441
</head>
3542
<body>
36-
${config?.embedCode?.beforeBody ?? ""}
43+
${config?.embedCode?.beforeBody ?? ''}
3744
<div class="protyle-wysiwyg protyle-wysiwyg--attr" id="preview">
38-
${p.htmlContent}
45+
${p.htmlContent}
3946
</div>
4047
<script src="${prePath}appearance/icons/material/icon.js?${version}"></script>
4148
<script src="${prePath}stage/build/export/protyle-method.js?${version}"></script>
@@ -44,7 +51,7 @@ export async function htmlTemplate(
4451
window.siyuan = {
4552
config: {
4653
appearance: {
47-
mode: 0,
54+
mode: isNightTime()?1:0,//主题 明亮=0 暗黑=1
4855
codeBlockThemeDark: "base16/dracula",
4956
codeBlockThemeLight: "github",
5057
},
@@ -58,17 +65,19 @@ export async function htmlTemplate(
5865
},
5966
languages: { copy: "复制" },
6067
};
68+
const cdn = "${prePath}stage/protyle";
6169
const previewElement = document.getElementById("preview");
62-
Protyle.highlightRender(previewElement, "${prePath}stage/protyle");
63-
Protyle.mathRender(previewElement, "${prePath}stage/protyle", false);
64-
Protyle.mermaidRender(previewElement, "${prePath}stage/protyle");
65-
Protyle.flowchartRender(previewElement, "${prePath}stage/protyle");
66-
Protyle.graphvizRender(previewElement, "${prePath}stage/protyle");
67-
Protyle.chartRender(previewElement, "${prePath}stage/protyle");
68-
Protyle.mindmapRender(previewElement, "${prePath}stage/protyle");
69-
Protyle.abcRender(previewElement, "${prePath}stage/protyle");
70+
71+
Protyle.highlightRender(previewElement, cdn);
72+
Protyle.mathRender(previewElement, cdn, false);
73+
Protyle.mermaidRender(previewElement, cdn);
74+
Protyle.flowchartRender(previewElement, cdn);
75+
Protyle.graphvizRender(previewElement, cdn);
76+
Protyle.chartRender(previewElement, cdn);
77+
Protyle.mindmapRender(previewElement, cdn);
78+
Protyle.abcRender(previewElement, cdn);
7079
Protyle.htmlRender(previewElement);
71-
Protyle.plantumlRender(previewElement, "${prePath}stage/protyle");
80+
Protyle.plantumlRender(previewElement, cdn);
7281
document.querySelectorAll(".protyle-action__copy").forEach((item) => {
7382
item.addEventListener("click", (event) => {
7483
navigator.clipboard.writeText(
@@ -79,7 +88,7 @@ export async function htmlTemplate(
7988
});
8089
});
8190
</script>
82-
${config?.embedCode?.afterBody ?? ""}
91+
${config?.embedCode?.afterBody ?? ''}
8392
</body>
84-
</html>`;
93+
</html>`
8594
}

0 commit comments

Comments
 (0)
Please sign in to comment.