// ==UserScript==
// @name 语雀夜间模式
// @namespace https://greasyfork.org/users/670174
// @version 0.2.5
// @description 让语雀的编辑模式显示成夜间模式的配色,保护眼睛。阅读模式因为是编译出来的样式表,有失效的可能。
// @author CWBeta
// @icon https://www.google.com/s2/favicons?domain=yuque.com
// @include *yuque.com*
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
console.log("【语雀夜间模式】运行中!")
// 可以用户自定义的颜色
var MAIN_BG_COLOR = "#333333"; //背景色
var TOOLBAR_BG_COLOR = "#242424"; //顶部工具栏背景色
var TOOLBAR_BORDER_COLOR = "#000000"; //顶部工具栏描边色
var FONT_DEFAULT_COLOR = "#ffffff"; //默认正文颜色
var LINK_COLOR = "#39C5BB"; // 正文链接颜色
var LIST_COLOR = "#66CCFF"; // 列表记号颜色
var FONT_SIDEBAR_COLOR = "#727272"; //侧面大纲正文颜色
var FONT_SIDEBAR_HOVER_COLOR = "#999999"; //侧面大纲鼠标悬停颜色
var SCROLLBAR_BG_COLOR = "#262626"; //大纲滚动条背景色
/**
* 16进制色值获取反色设置方法
* @param {String} oldColor 为16进制色值的字符串(例:'#000000')
* @return {String} 返回反色的色值(例:'#ffffff')
*/
function ReverseColor(oldColor)
{
oldColor = '0x' + oldColor.replace(/#/g, '');
let str = '000000' + (0xFFFFFF - oldColor).toString(16);
return '#'+ str.substring(str.length - 6, str.length);
}
function Awake()
{
var style = document.createElement("style");
style.type = "text/css";
var cssString = ".main-wrapper #main, .ne-editor-body,.ne-editor-extra-box,.ne-editor-wrap-box,.ant-input {background-color: "+MAIN_BG_COLOR+" !important;}"+
".main-wrapper #article-title, ne-text{color:"+FONT_DEFAULT_COLOR+";}"+
".ant-input{color:"+FONT_DEFAULT_COLOR+" !important;}"+
".ne-ui{filter: invert(100%); background-color: "+ReverseColor(TOOLBAR_BG_COLOR)+" !important;}"+
".ne-ui .ne-ui-random-tip{color:"+ReverseColor(FONT_DEFAULT_COLOR)+" !important;}"+
".ne-ui .ne-ui-toolbar-insert-card,.ne-ui .ant-dropdown,.ne-embed-icon-t-font-color #矩形,.ne-embed-icon-t-bg-color path[fill], .lark-editor-collab-users, #lake-doc-publish-button{filter: invert(100%);}"+
".lark-editor-header{filter: invert(100%);background-color: "+ReverseColor(TOOLBAR_BG_COLOR)+";border-color:"+ReverseColor(TOOLBAR_BORDER_COLOR)+" !important;}"+
".lark-editor-header .lark-editor-header-back{border-color: "+ReverseColor(TOOLBAR_BORDER_COLOR)+" !important;}"+
".ne-viewer-toc-sidebar,.ne-toc-sidebar{background-color: "+MAIN_BG_COLOR+" !important;}"+
".ne-toc-normal-view .ne-toc-content:after{background: "+SCROLLBAR_BG_COLOR+" !important;}"+
".ne-toc-normal-view .ne-toc-item a{color: "+FONT_SIDEBAR_COLOR+" !important;}"+
".ne-toc-sidebar-hover .ne-toc-view .ne-toc-item a{color: "+FONT_SIDEBAR_HOVER_COLOR+" !important;}"+
".ne-toc-view-inner::-webkit-scrollbar{display:none !important;}"+
".ne-viewer .ne-viewer-body,.ne-engine{--link-color:"+LINK_COLOR+" !important;}"+
"ne-oli-i, ne-uli-i{color:"+LIST_COLOR+" !important;}"+
".header{filter: invert(100%); background-color: "+ReverseColor(TOOLBAR_BG_COLOR)+";}"+
".header .ant-btn-primary,.header img,.header .HeadNewButton-module_header-add-btn_nJ9ub, .header .ant-popover{filter: invert(100%);}"+
".ReaderLayout-module_asidePinned_owRmW .ReaderLayout-module_crumb_wF-5C{filter: invert(100%); background-color: "+ReverseColor(TOOLBAR_BG_COLOR)+";}"+
".ReaderLayout-module_asidePinned_owRmW .ReaderLayout-module_crumb_wF-5C img{filter: invert(100%);}"+
".lake-board-canvas{background-color: "+MAIN_BG_COLOR+";}"+
".LakeBoardEditor-module_wrap_zK70p{border-color: "+TOOLBAR_BORDER_COLOR+" !important;}"+
"foreignObject div{color:"+FONT_DEFAULT_COLOR+" !important;}"+
".ne-engine [data-placeholder]::before {color:"+FONT_SIDEBAR_COLOR+" !important;}"+
"}";
try
{
style.appendChild(document.createTextNode(cssString));
}
catch(ex)
{
style.styleSheet.cssText = cssString;//针对IE
}
var head = document.getElementsByTagName("head")[0];
head.appendChild(style);
}
Awake();
})();