Explorar o código

눈뽕 개선용 신형 스크립트 적용

https://github.com/openNAMU/openNAMU/issues/2313
잉여개발기 (SPDV) hai 1 ano
pai
achega
58dff43f82
Modificáronse 4 ficheiros con 60 adicións e 45 borrados
  1. 3 2
      views/ringo/index.html
  2. 1 1
      views/ringo/info.json
  3. 0 42
      views/ringo/js/skin_set.js
  4. 56 0
      views/ringo/js/skin_set_do.js

+ 3 - 2
views/ringo/index.html

@@ -1,6 +1,8 @@
 <!DOCTYPE html>
 <html lang="{{'language_tag'|load_lang}}">
     <head>
+        <style id="ringo_add_style"></style>
+        <script async src="/views/ringo/js/skin_set_do.js.cache_v1"></script>
         <meta charset="utf-8">
         {% if imp[3][0] != 0 %}
             <title>{{imp[0]}} {{imp[3][0]}} - {{imp[1][0]}}</title>
@@ -12,13 +14,12 @@
         <script defer src="https://code.iconify.design/1/1.0.3/iconify.min.js"></script>
         <script defer src="/views/ringo/js/main.js.cache_v2"></script>
         <script defer src="/views/ringo/js/sidebar.js.cache_v3"></script>
-        <script defer src="/views/ringo/js/skin_set.js.cache_v6"></script>
+        <script defer src="/views/ringo/js/skin_set.js.cache_v7"></script>
         <link rel="stylesheet" href="/views/ringo/css/main.css.cache_v11">
         {% if request.cookies.get('main_css_darkmode', '') == '1' %}
             {{imp[3][5]|safe}}
             <link rel="stylesheet" href="/views/ringo/css/dark.css.cache_v3">
         {% endif %}
-        <style id="ringo_add_style"></style>
         <link rel="shortcut icon" href="/views/main_css/file/favicon.ico.cache_v1">
         {{imp[1][5]|safe}}
         {{imp[2][3]|safe}}

+ 1 - 1
views/ringo/info.json

@@ -1,5 +1,5 @@
 {
     "name" : "Ringo",
-    "skin_ver" : "v1.1.4",
+    "skin_ver" : "v1.1.5",
     "require_ver" : "3500113"
 }

+ 0 - 42
views/ringo/js/skin_set.js

@@ -41,47 +41,6 @@ function ringo_get_post() {
     history.go(0);
 }
 
-function ringo_do_skin_set() {
-    if(!window.localStorage.getItem('main_css_use_sys_darkmode') || window.localStorage.getItem('main_css_use_sys_darkmode') === '1') {
-        if(window.matchMedia('(prefers-color-scheme: dark)').matches) {
-            document.cookie = 'main_css_darkmode=1; path=/';
-        } else {
-            document.cookie = 'main_css_darkmode=0; path=/';
-        }
-    }
-
-    if(window.localStorage.getItem('main_css_off_sidebar') && window.localStorage.getItem('main_css_off_sidebar') === '1') {
-        document.getElementById('ringo_add_style').innerHTML += `
-            section {
-                width: auto;
-                display: block;
-                margin: auto;
-            }
-
-            .do_fixed {
-                display: none;
-            }
-        `;
-    }
-
-    if(window.localStorage.getItem('main_css_fixed_width') && window.localStorage.getItem('main_css_fixed_width') !== '') {
-        let fixed_width_data = window.localStorage.getItem('main_css_fixed_width');
-        document.getElementById('ringo_add_style').innerHTML += `
-            article.main {
-                max-width: ` + fixed_width_data + `px;
-            }
-        `;
-    }
-
-    if(window.localStorage.getItem('main_css_sidebar_right') && window.localStorage.getItem('main_css_sidebar_right') === '1') {
-        document.getElementById('ringo_add_style').innerHTML += `
-            .do_fixed {
-                float: right;
-            }
-        `;
-    }
-}
-
 function ringo_load_skin_set() {
     let cookies = document.cookie;
     
@@ -172,5 +131,4 @@ function ringo_load_skin_set() {
     }
 }
 
-window.addEventListener('DOMContentLoaded', ringo_do_skin_set);
 window.addEventListener('DOMContentLoaded', ringo_load_skin_set);

+ 56 - 0
views/ringo/js/skin_set_do.js

@@ -0,0 +1,56 @@
+function ringo_do_regex_data(data) {
+    return new RegExp('(?:^|; )' + data + '=([^;]*)');
+}
+
+function ringo_do_skin_set() {
+    let cookies = document.cookie;
+
+    if(!window.localStorage.getItem('main_css_use_sys_darkmode') || window.localStorage.getItem('main_css_use_sys_darkmode') === '1') {
+        if(cookies.match(ringo_do_regex_data('main_css_darkmode')) && cookies.match(ringo_do_regex_data('main_css_darkmode'))[1] === '1') {
+            if(!window.matchMedia('(prefers-color-scheme: dark)').matches) {
+                document.cookie = 'main_css_darkmode=0; path=/';
+                history.go(0);
+            }
+        }
+        
+        if(!cookies.match(ringo_do_regex_data('main_css_darkmode')) || cookies.match(ringo_do_regex_data('main_css_darkmode'))[1] === '0') {
+            if(window.matchMedia('(prefers-color-scheme: dark)').matches) {
+                document.cookie = 'main_css_darkmode=1; path=/';
+                history.go(0);
+            }
+        }
+    }
+
+    if(window.localStorage.getItem('main_css_off_sidebar') && window.localStorage.getItem('main_css_off_sidebar') === '1') {
+        document.getElementById('ringo_add_style').innerHTML += `
+            section {
+                width: auto;
+                display: block;
+                margin: auto;
+            }
+
+            .do_fixed {
+                display: none;
+            }
+        `;
+    }
+
+    if(window.localStorage.getItem('main_css_fixed_width') && window.localStorage.getItem('main_css_fixed_width') !== '') {
+        let fixed_width_data = window.localStorage.getItem('main_css_fixed_width');
+        document.getElementById('ringo_add_style').innerHTML += `
+            article.main {
+                max-width: ` + fixed_width_data + `px;
+            }
+        `;
+    }
+
+    if(window.localStorage.getItem('main_css_sidebar_right') && window.localStorage.getItem('main_css_sidebar_right') === '1') {
+        document.getElementById('ringo_add_style').innerHTML += `
+            .do_fixed {
+                float: right;
+            }
+        `;
+    }
+}
+
+ringo_do_skin_set();