diff --git a/index.html b/index.html
index 3cbdd20..b8e23aa 100644
--- a/index.html
+++ b/index.html
@@ -25,7 +25,6 @@
🔖{{ $t('nav.quickstart') }}
-
![](res/poweredby/book.ico)
{{ $t('nav.doc') }}
![](res/poweredby/github.png)
GitHub
![](res/poweredby/vue.png)
Vue.js
@@ -460,12 +459,14 @@
-
+
+
+
diff --git a/js/style.js b/js/style.js
index 9599069..f97becd 100644
--- a/js/style.js
+++ b/js/style.js
@@ -6,15 +6,32 @@
// 采用 highlight.js 库
Vue.use(hljs.vuePlugin);
+// 暗色模式
+
+const darkModePreference = window.matchMedia("(prefers-color-scheme: dark)");
+
+var updateDarkMode = function(e) {
+ var editor = ace.edit("manualfile");
+ if (e.matches) {
+ // dark mode
+ editor.setTheme("ace/theme/tomorrow_night");
+ } else {
+ // light mode
+ editor.setTheme("ace/theme/textmate");
+ }
+}
+
+darkModePreference.addEventListener("change", e => updateDarkMode(e));
+
// 删除线样式
Vue.directive('soutline',function(el,binding){
if(binding.value){
// el.style['text-decoration'] = 'none';
- el.style['color'] = '#666';
+ el.style['color'] = '#777';
el.style['opacity'] = '1.0';
} else {
// el.style['text-decoration'] = 'line-through';
- el.style['color'] = '#999';
+ el.style['color'] = '#777';
el.style['opacity'] = '0.5';
}
});
@@ -53,7 +70,7 @@ var warnCode = function (qselector) {
}
var blurCode = function (qselector) {
- highlightCode(qselector,"transparent");
+ highlightCode(qselector,"light-dark(white, rgb(30,30,30))");
}
// 设置分割栏的高度
@@ -99,7 +116,7 @@ var gomanual = function(){
})
langTools=ace.require("ace/ext/language_tools");
langTools.setCompleters([customCompleter]);
- editor.setTheme("ace/theme/textmate");
+ updateDarkMode(darkModePreference);
editor.session.setMode("ace/mode/latex");
editor.session.setValue(app.file);
editor.session.setUseWrapMode(true);
diff --git a/lib/theme-tomorrow_night.min.js b/lib/theme-tomorrow_night.min.js
new file mode 100644
index 0000000..89d6a63
--- /dev/null
+++ b/lib/theme-tomorrow_night.min.js
@@ -0,0 +1,8 @@
+ace.define("ace/theme/tomorrow_night-css",["require","exports","module"],function(e,t,n){n.exports=".ace-tomorrow-night .ace_gutter {\n background: #25282c;\n color: #C5C8C6\n}\n\n.ace-tomorrow-night .ace_print-margin {\n width: 1px;\n background: #25282c\n}\n\n.ace-tomorrow-night {\n background-color: #1D1F21;\n color: #C5C8C6\n}\n\n.ace-tomorrow-night .ace_cursor {\n color: #AEAFAD\n}\n\n.ace-tomorrow-night .ace_marker-layer .ace_selection {\n background: #373B41\n}\n\n.ace-tomorrow-night.ace_multiselect .ace_selection.ace_start {\n box-shadow: 0 0 3px 0px #1D1F21;\n}\n\n.ace-tomorrow-night .ace_marker-layer .ace_step {\n background: rgb(102, 82, 0)\n}\n\n.ace-tomorrow-night .ace_marker-layer .ace_bracket {\n margin: -1px 0 0 -1px;\n border: 1px solid #4B4E55\n}\n\n.ace-tomorrow-night .ace_marker-layer .ace_active-line {\n background: #282A2E\n}\n\n.ace-tomorrow-night .ace_gutter-active-line {\n background-color: #282A2E\n}\n\n.ace-tomorrow-night .ace_marker-layer .ace_selected-word {\n border: 1px solid #373B41\n}\n\n.ace-tomorrow-night .ace_invisible {\n color: #4B4E55\n}\n\n.ace-tomorrow-night .ace_keyword,\n.ace-tomorrow-night .ace_meta,\n.ace-tomorrow-night .ace_storage,\n.ace-tomorrow-night .ace_storage.ace_type,\n.ace-tomorrow-night .ace_support.ace_type {\n color: #B294BB\n}\n\n.ace-tomorrow-night .ace_keyword.ace_operator {\n color: #8ABEB7\n}\n\n.ace-tomorrow-night .ace_constant.ace_character,\n.ace-tomorrow-night .ace_constant.ace_language,\n.ace-tomorrow-night .ace_constant.ace_numeric,\n.ace-tomorrow-night .ace_keyword.ace_other.ace_unit,\n.ace-tomorrow-night .ace_support.ace_constant,\n.ace-tomorrow-night .ace_variable.ace_parameter {\n color: #DE935F\n}\n\n.ace-tomorrow-night .ace_constant.ace_other {\n color: #CED1CF\n}\n\n.ace-tomorrow-night .ace_invalid {\n color: #CED2CF;\n background-color: #DF5F5F\n}\n\n.ace-tomorrow-night .ace_invalid.ace_deprecated {\n color: #CED2CF;\n background-color: #B798BF\n}\n\n.ace-tomorrow-night .ace_fold {\n background-color: #81A2BE;\n border-color: #C5C8C6\n}\n\n.ace-tomorrow-night .ace_entity.ace_name.ace_function,\n.ace-tomorrow-night .ace_support.ace_function,\n.ace-tomorrow-night .ace_variable {\n color: #81A2BE\n}\n\n.ace-tomorrow-night .ace_support.ace_class,\n.ace-tomorrow-night .ace_support.ace_type {\n color: #F0C674\n}\n\n.ace-tomorrow-night .ace_heading,\n.ace-tomorrow-night .ace_markup.ace_heading,\n.ace-tomorrow-night .ace_string {\n color: #B5BD68\n}\n\n.ace-tomorrow-night .ace_entity.ace_name.ace_tag,\n.ace-tomorrow-night .ace_entity.ace_other.ace_attribute-name,\n.ace-tomorrow-night .ace_meta.ace_tag,\n.ace-tomorrow-night .ace_string.ace_regexp,\n.ace-tomorrow-night .ace_variable {\n color: #CC6666\n}\n\n.ace-tomorrow-night .ace_comment {\n color: #969896\n}\n\n.ace-tomorrow-night .ace_indent-guide {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHB3d/8PAAOIAdULw8qMAAAAAElFTkSuQmCC) right repeat-y\n}\n\n.ace-tomorrow-night .ace_indent-guide-active {\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQIW2PQ1dX9zzBz5sz/ABCcBFFentLlAAAAAElFTkSuQmCC) right repeat-y;\n}\n"}),ace.define("ace/theme/tomorrow_night",["require","exports","module","ace/theme/tomorrow_night-css","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-tomorrow-night",t.cssText=e("./tomorrow_night-css");var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass,!1)}); (function() {
+ ace.require(["ace/theme/tomorrow_night"], function(m) {
+ if (typeof module == "object" && typeof exports == "object" && module) {
+ module.exports = m;
+ }
+ });
+ })();
+
\ No newline at end of file
diff --git a/lib/vs2015.min.css b/lib/vs2015.min.css
new file mode 100644
index 0000000..ff01047
--- /dev/null
+++ b/lib/vs2015.min.css
@@ -0,0 +1 @@
+pre code.hljs{display:block;overflow-x:auto;padding:.5em}code.hljs{padding:3px 5px}.hljs{background:#1e1e1e;color:#dcdcdc}.hljs-keyword,.hljs-literal,.hljs-name,.hljs-symbol{color:#569cd6}.hljs-link{color:#569cd6;text-decoration:underline}.hljs-built_in,.hljs-type{color:#4ec9b0}.hljs-class,.hljs-number{color:#b8d7a3}.hljs-meta .hljs-string,.hljs-string{color:#d69d85}.hljs-regexp,.hljs-template-tag{color:#9a5334}.hljs-formula,.hljs-function,.hljs-params,.hljs-subst,.hljs-title{color:#dcdcdc}.hljs-comment,.hljs-quote{color:#57a64a;font-style:italic}.hljs-doctag{color:#608b4e}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-tag{color:#9b9b9b}.hljs-template-variable,.hljs-variable{color:#bd63c5}.hljs-attr,.hljs-attribute{color:#9cdcfe}.hljs-section{color:gold}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-bullet,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-selector-pseudo,.hljs-selector-tag{color:#d7ba7d}.hljs-addition{background-color:#144212;display:inline-block;width:100%}.hljs-deletion{background-color:#600;display:inline-block;width:100%}
\ No newline at end of file
diff --git a/main.css b/main.css
index c19f6b4..67cc381 100644
--- a/main.css
+++ b/main.css
@@ -1,3 +1,12 @@
+:root {
+ color-scheme: light dark;
+}
+
+body {
+ background-color: Canvas;
+ color: CanvasText;
+}
+
button,
summary{
outline: none;
@@ -5,12 +14,12 @@ summary{
}
a{
- color: gray;
+ color: light-dark(gray, lightgray);
text-decoration: none;
}
.nav{
- background:whitesmoke;
+ background:light-dark(whitesmoke, rgb(71, 71, 71));
padding: 5px 10px;
margin-bottom: 10px;
overflow-y: hidden;
@@ -85,7 +94,7 @@ a{
margin: 0 2em;
max-width: 50em;
font-size: smaller;
- color: gray;
+ color: light-dark(gray, lightgray);
}
#about #copyright-hint {
@@ -114,8 +123,8 @@ a{
}
.texCode,#texAllCode{
- border: 2px solid transparent;
- background-color: white;
+ border: 2px solid light-dark(white, rgb(30,30,30));
+ /* background-color: Canvas; */
}
#code {
@@ -168,6 +177,8 @@ textarea{
margin-bottom: 7px;
border-radius: 0px 0px 10px 10px;
border: 1.5px solid green;
+ background-color: white;
+ color: black;
}
.container{
@@ -201,11 +212,11 @@ footer{
#addtooltip button {
width: 100px;
text-align: left;
- background-color: white;
- border: 1px solid rgb(68, 68, 148);
+ background-color: Canvas;
+ border: 1px solid light-dark(rgb(68, 68, 148), skyblue);
border-radius: 0px;
transition: ease-in 0.2s;
- color: rgb(68, 68, 148);
+ color: light-dark(rgb(68, 68, 148), skyblue);
}
#addbuttons button {
@@ -268,7 +279,7 @@ footer{
details {
margin: 0px 2px 10px 0px;
padding: 10px;
- background: rgb(250, 250, 250);
+ background: light-dark(whitesmoke, rgb(52, 52, 52));
box-shadow: 1px 1px 1px 1px rgba(129, 129, 129, 0.4);
border-radius: 10px;
}
@@ -276,7 +287,7 @@ details {
summary {
margin: 5px;
font-weight: 600;
- color: gray;
+ color: light-dark(gray, lightgray);
}
#axis{
@@ -312,13 +323,13 @@ summary {
}
#series .upBut {
- background-color:rgb(255, 95, 95);
+ background-color: light-dark(rgb(255, 95, 95), rgb(157, 58, 58));
color: white;
- border: 1px solid red;
+ border: 1px solid light-dark(red, darkred);
}
#series .upBut:hover {
- background-color: rgb(255, 143, 143);
+ background-color: light-dark(rgb(255, 143, 143), rgb(199, 74, 74));
}
#series .deleteBut {
@@ -358,7 +369,7 @@ summary {
.seriesitem .type{
margin: 3px 0px 5px 0px;
- color: #666;
+ color: light-dark(#666, white);
}
.fileChooser {
@@ -389,8 +400,8 @@ summary {
height: 20px;
top: 0;
content: " ";
- background-color: #fff;
- color: #fff;
+ background-color: Canvas;
+ color: white;
display: inline-block;
visibility: visible;
border: 1px solid grey;
@@ -417,7 +428,7 @@ summary {
#series .ptd input[type=checkbox]:checked::after {
background-color: #ca710b;
- border: 1px solid red;
+ border: 1px solid light-dark(red, darkred);
content: "+";
font-size: 15px;
text-align: center;
@@ -454,7 +465,7 @@ summary {
cursor: col-resize;
}
.gutter.gutter-horizontal:hover {
- background-color: lightgray;
+ background-color: light-dark(lightgray, darkgray);
}
#panel-three{
overflow-x:hidden;
@@ -467,12 +478,12 @@ input[type=text]{
}
#data input[type=text]{
- background-color: rgba(255, 255, 255, 0.6);
+ background-color: light-dark((255, 255, 255, 0.6), (255, 255, 255, 0.4));
margin: 0px;
}
.seriesitem:hover {
- background-color: rgba(128, 128, 128, 0.1);
+ background-color: light-dark(rgba(128, 128, 128, 0.1), rgba(128, 128, 128, 0.3));
}
.parambar, .coordbar, .tableparambar{
@@ -505,7 +516,7 @@ input[type=text]{
.parambar {
/* background-color: rgba(173, 216, 230, 0.3); */
- background-color: white;
+ background-color: Canvas;
border-top: 1px solid blue;
border-bottom: 1px solid blue;
}
@@ -518,8 +529,8 @@ input[type=text]{
.tableparambar {
background-color: rgba(255, 0, 0, 0.1);
- border-top: 1px solid red;
- border-bottom: 1px solid red;
+ border-top: 1px solid light-dark(red, darkred);
+ border-bottom: 1px solid light-dark(red, darkred);
}
.param:focus,
diff --git a/res/function/func2tex.html b/res/function/func2tex.html
index bb2ac71..d9d8d92 100644
--- a/res/function/func2tex.html
+++ b/res/function/func2tex.html
@@ -9,6 +9,10 @@