// ==UserScript== // @name Circle 阅读助手脚本版 // @namespace https://ranhe.xyz/ // @version 0.0.1 // @description 让网页赏心悦目、让阅读回归初心。Circle 阅读助手提供更隐私、更轻松、更舒适的阅读体验。 // @author wenguang.fe@gmail.com // @match https://*/* // @match http://*/* // @license MIT // @noframes // @downloadURL none // ==/UserScript== (() => { "use strict"; function e(e) { return e && e.nodeType && 1 === e.nodeType } function t(e) { if (!c(e)) return !1; var t = e.nodeValue.trim(); return t.length <= 0 || /^[\s\xA0]+$/.test(t) } function n(e, t) { return Object.prototype.toString.call(e) === "[object ".concat(t, "]") } function r(e) { return n(e, "Undefined") } function i(e) { return n(e, "Number") } function a(e) { return n(e, "String") } function o(e) { return n(e, "Function") } function l(e) { return n(e, "Array") } function c(e) { return n(e, "Text") } function u(e, t) { return e && e.tagName && e.tagName.toLowerCase() === t } function s(e) { e && e.parentElement && e.parentElement.removeChild(e) } function d(e) { return a(e) ? e.toLowerCase() : "" } function f(e, t) { var n = document.createElement(e); return h(t, (function(e, t) { g(n, t, e) })), n } function h(e, t) { if (!r(e) && o(t)) { var n = 0; if (e.forEach) { var i = e.length; if (i <= 0) return; for (; n < i && !t(e[n], n);) n++ } else { var a = Object.keys(e), l = a.length; if (l <= 0) return; for (; n < l && !t(e[a[n]], a[n]);) n++ } } } function v(e, t) { return e[t] ? e[t] : e.style && e.style[t] ? e.style[t] : window.getComputedStyle ? window.getComputedStyle(e, null)[t] : e.currentStyle ? e.currentStyle[t] : void 0 } function m(e, t, n) { if (e && a(t) && !r(n)) { var o = i(n) && !["zIndex", "opacity"].includes(t) ? "".concat(n, "px") : n; e.style[t] = o } } function p(e, t) { if (e) return a(t) ? e.getAttribute(t) : Array.prototype.slice.call(e.attributes) .reduce((function(e, t) { return "".concat(e, " ") .concat(t.nodeValue) }), "") } function g(e, t, n) { if (e && e.setAttribute && a(t) && !r(n)) { var o = i(n) && !["zIndex", "opacity"].includes(t) ? "".concat(n, "px") : n; switch (t) { case "innerHTML": case "innerText": case "className": case "textContent": e[t] = o; break; case "style": h(n, (function(t, n) { m(e, n, t) })); break; default: e.setAttribute(t, o) } } } function y(e, t) { if (e) if (a(t)) e.removeAttribute(t); else { var n = []; h(e.attributes, (function(e) { var r = e.nodeName; o(t) && t(r) && n.push(r) })), h(n, (function(t) { e.removeAttribute(t) })) } } function b(e) { var t = e.getElementsByTagName("a"), n = 0; h(t, (function(e) { n += S(e) .length })); var r = S(e) .length; return n / (r <= 0 ? 1 : r) } function E(t) { if (!e(t)) return !1; if (["br", "hr", "img", "body"].includes(d(t.tagName))) return !0; var n = t.getBoundingClientRect(); return !(n.height <= 0 || n.width <= 0) && ("0" !== v(t, "opacity") && "hidden" !== v(t, "visibility")) } function S(t) { if (!t) return ""; var n = ""; a(t) ? n = t : c(t) ? n = t.nodeValue : e(t) && (n = t.textContent); var r = (n || "") .trim(); return r.length > 0 ? r.replace(/^ +| +$/g, "") : "" } function w(e) { if (e && e.getBoundingClientRect) { if (e._rect) return e._rect; var t = window.scrollX, n = window.scrollY, r = e.getBoundingClientRect(); return t <= 0 && n <= 0 ? (e._rect = r, e._rect) : (e._rect = { top: r.top + n, right: r.right - t, bottom: r.bottom - n, left: r.left + t, width: r.width, height: r.height }, e._rect) } } function C(e, t, n) { for (var r, i = document.createNodeIterator(e, NodeFilter.SHOW_TEXT, { acceptNode: function(e) { return t(e) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT } }); r = i.nextNode();) n(r) } function x(e) { return !a(e) || e.trim() .length <= 0 ? 0 : /[\u4e00-\u9fa5]/.test(e) ? e.length : e.split(" ") .length } function N(e) { var t = ""; h(e.attributes, (function(e) { var n = e.nodeName; if (!["class", "role", "src", "alt"].includes(n) && !/thumbnail/i.test(n)) { var r = "".concat(e.nodeValue); return (r.startsWith("http") || /src|url|origin/i.test(n)) && r.split("/") .length > 1 && r.length > 10 ? (t = r.split(/\s/) .shift(), !0) : void 0 } })); var n = t || e.src; if (n && !n.endsWith("svg")) return n; var r = "".concat(window.getComputedStyle(e) .backgroundImage) .replace(/url\("(.*?)"\)/, "$1"); return a(r) && "none" !== r && r.split("/") .length > 1 ? r : "" } function L(e) { for (var t = []; e;) { var n = e.id; if (n) { t.unshift("#".concat(n)); break } var r = e.tagName.toLocaleLowerCase(); if ("body" === r || "html" === r) { t.unshift(r); break } for (var i = 1, a = e.previousElementSibling; a;) i++, a = a.previousElementSibling; t.unshift("".concat(r, ":nth-child(") .concat(i, ")")), e = e.parentElement } return t.join(" > ") } function k(n) { var r = 0; return h(n.childNodes, (function(n) { !e(n) && t(n) || r++ })), r } var A = ["div"], T = ["div", "span", "p"], q = ["i", "em"], j = /^on|^data|^id$|^style$|placeholder|spellcheck|contenteditable/, O = ["size", "face", "color"], _ = ['[id*="comment"]', '[class*="comment"]'], B = ['[id*="Modal"]', '[class*="Modal"]', '[id*="modal"]', '[class*="modal"]'], W = ["h1", "h2", "h3", "h4", "h5", "h6"], z = ["border", "hspace", "vspace", "align"], P = ["noscript", "form", "input", "textarea", "button", "style", "script", "link", "ins", "iframe", "canvas", "footer", "aside"], M = ["b", "strong", "h1", "h2", "h3", "h4", "h5", "h6", "th"]; function V(e, t, n) { var r = f(t), i = e.mirrorElement; for (i && (r.mirrorElement = i); e.firstChild;) r.appendChild(e.firstChild); return !n && h(e.attributes, (function(e) { var t = e.nodeName, n = e.nodeValue; n && g(r, t, n) })), e.parentElement.replaceChild(r, e), r } function R(e) { var t = f("dom"); t.innerHTML = e.innerHTML; var n = t.children; if (1 === n.length && u(n[0], "img")) return n[0].src } function I(t, n) { for (var r = t; r && (c(r) || e(r) && ["a", "span"].includes(r.nodeName.toLowerCase()));) r = n(r) } function F(e, t, n) { h(t, (function(t) { var r = n[t]; r && "normal" !== r && m(e, t, r) })) } function H(e) { var t = e.src; t && t.startsWith("data") && e.classList.add("base64"); var n = e.naturalWidth, r = e.naturalHeight; n <= 0 || r <= 0 || (e.classList.remove("tiny", "large"), n < 78 && r < 78 ? e.classList.add("tiny") : e.classList.add("large")) } function $(e) { h(e.querySelectorAll("div, ol, ul, li, section"), (function(e) { k(e) <= 0 && s(e) })), h(e.querySelectorAll("ul, ol"), (function(e) { e.querySelectorAll("*") .length > e.innerText.replace(/\n/gi, "") .length && s(e) })); for (var n = e.firstChild, r = function() { if (!c(n)) return n = n.nextSibling, "continue"; var e = S(n); if (x(e) <= 0) return n = n.nextSibling, "continue"; var t = f("p"), r = f("span"); return r.textContent = e, t.appendChild(r), I(n.previousSibling, (function(e) { return t.insertBefore(e, r), e.previousSibling })), n.parentElement.replaceChild(t, n), (n = t.nextSibling) ? (I(n, (function(e) { return t.appendChild(e), n = t.nextSibling })), n ? void(n = n.nextSibling) : "break") : "break" }; n;) { var i = r(); if ("continue" !== i && "break" === i) break } var a = e.querySelectorAll("br"); a.length >= 2 && h(a, (function(e) { var n = function(e) { for (var n = e.nextSibling; n && c(n) && t(n);) n = n.nextSibling; return n }(e), r = function(e) { for (var n = e.previousSibling; n && c(n) && t(n);) n = n.previousSibling; return n }(e); (n || r) && (c(r) || c(n)) || s(e) })), h(e.querySelectorAll("p"), (function(e) { var t = e.getElementsByTagName("br"); if (!(t.length <= 1)) { var n = [], r = e.parentElement, i = e.nextSibling; h(t, (function(e) { if (e) { var t = e.nextSibling; if (t) { for (var a, o = f("p"); t && !u(t, "br");) a = t.nextSibling, o.appendChild(t), t = a; i ? r.insertBefore(o, i) : r.appendChild(o), n.push(e) } } })), h(n, s) } })), h(e.querySelectorAll("p, span, li"), (function(e) { var t = e.childNodes; if (t.length <= 0) s(e); else if (1 === t.length && u(t[0], "br")) s(e); else { var n = t[0]; if (c(n)) { var r = n.nodeValue; r.length > 0 && /^\s+/.test(r) && (n.nodeValue = r.trim()) } } })), h(e.querySelectorAll("pre"), (function(e) { var t = e.parentElement; if (t && u(t, "td") && !t.classList.contains("gutter")) { var n = t.closest("table"); if (n) { var r = n.querySelectorAll("tr"); if (1 === r.length) if (!(r[0].querySelectorAll("td") .length > 2)) { var i = n.parentElement; i && i.replaceChild(e, n) } } } })), h(e.querySelectorAll(".flex"), (function(e) { var t = e.querySelectorAll("pre"); t.length <= 0 || h(t, (function(e) { var t = e.parentElement; t.classList.contains("zone-width") || t.classList.add("zone-width") })) })), T.forEach((function(t) { h(e.querySelectorAll(t), (function(e) { e.childNodes.length <= 0 && s(e) })) })) } function D(t, n, r) { ! function(t) { h(t.querySelectorAll(P.join(",")), s), h(t.querySelectorAll(B.join(",")), (function(e) { e.mirrorElement && !E(e) && s(e) })); var n = []; if (h(t.querySelectorAll(_.join(",")), (function(e) { if (u(e, "div")) { var t = e.mirrorElement; if (t) { var r = t.getBoundingClientRect(); r.width <= 0 || r.height <= 200 || n.push(e) } } })), n.length > 0) { for (var r = n[0]; r.parentElement !== t;) r = r.parentElement; r !== t && s(r) } h(t.querySelectorAll("li"), (function(e) { var t = e.querySelectorAll("div"), n = e.querySelectorAll("img"); t.length > 0 && n.length > 0 && b(e) > .8 && s(e) })), h(t.querySelectorAll("font"), (function(e) { y(e, (function(e) { return O.includes(e) })) })), h(t.querySelectorAll("img"), (function(t) { if (y(t, (function(e) { return z.includes(e) })), t.addEventListener("error", (function() { s(t) })), t.complete && H(t), t.addEventListener("load", (function() { H(t) })), t && t.mirrorElement) { var n = t.mirrorElement, r = n.nextSibling, i = n.previousSibling, a = ""; if (i && u(i, "noscript")) { var o = R(i); o && (a = o) } else if (r && u(r, "noscript")) { var l = R(r); l && (a = l) } else { var c = n.closest("figure"); if (c && e(c)) { var d = c.querySelectorAll("noscript"); if (1 === d.length) { var f = R(d[0]); f && (a = f) } } }!a && (a = N(n)), a && p(t, "src") !== a ? g(t, "src", a) : n.addEventListener("load", (function() { g(t, "src", n.src) })), !p(t, "src") && s(t) } })) }(t), function(e, t, n) { var r = 0, i = 0, o = 0, l = 0; function c(e) { r && (r += e), i && (i += e), o && (o += e), l && (l += e) } for (var u = e, d = [], f = w(e.mirrorElement || e); u;) { var v = void 0, g = u.mirrorElement; if (g) { var E = u.nodeName.toLowerCase(), C = window.getComputedStyle(g), x = C.float, N = C.display; if ("none" !== N && "0" !== C.opacity || "img" !== E && "hidden" === C.visibility && (v = u), !v) { var L = S(u), k = ["目录", "大纲"]; n && k.push(n), t && k.push(t), k.includes(L) && (v = u) } if (u !== e) { if (!v) { y(u, (function(e) { return j.test(e) })); var T = u.className; T && (a(T) && ("td" === E && "gutter" === T || T.indexOf("crayon-") >= 0) || u.removeAttribute("class")) } if (!v) { var O = C.clear; O && "both" === O && u.classList.add("both"); var _ = window.getComputedStyle(g, ":after") .clear; _ && "both" === _ && u.classList.add("both") } } if (!v && u !== e) { if ("div" === E) { var B = g.querySelectorAll("blockquote, dl, div, ol, p, pre, table, ul"); if (!(r || x && "none" !== x) && B.length <= 0) { var z = V(u, "p"); E = "p", u = z, g = z.mirrorElement } else "inline-block" === N && u.classList.add("inline-block") } else E.includes("-") && E.indexOf("inner") <= -1 && ["block", "inline-block", "flex", "inline-flex"].includes(N) && u.classList.add(N); A.includes(E) && g.querySelectorAll("img") .length > 0 && ["flex", "inline-flex"].includes(N) && (u.classList.add(N), F(u, ["align-items", "justify-content"], C)) } if (!v) { var P = w(g); "img" !== E && u !== e && (!r && x && "none" !== x && (P.height >= 130 || g.childElementCount > 0) && (r = 1), !o && C.fontStyle && "normal" !== C.fontStyle && (u !== e && !q.includes(E) && (u.style.fontStyle = C.fontStyle), o = 1), !l && C.fontWeight && "normal" !== C.fontWeight && C.fontWeight > 400 && (u !== e && !M.includes(E) && (u.style.fontWeight = C.fontWeight), l = 1)); var R = C.width || P.width; r && 1 === r && (P.width === f.width ? u.classList.add("full-width") : g.querySelectorAll("img") .length > 0 && (x && "none" !== x && !W.includes(E) && u.classList.add(x), !W.includes(E) && R && "auto" !== R && parseFloat(R) > 10 && m(u, "maxWidth", R))); var I = void 0; switch (E) { case "svg": "absolute" === C.position && R && "auto" !== R && parseFloat(R) < 80 && (v = u); break; case "table": !i && (i = 1); break; case "img": r && x && "none" !== x && m(u, "float", x), !i && R && "auto" !== R && parseFloat(R) > 10 && !g.classList.contains("lazy") && m(u, "maxWidth", R), F(u, ["border-radius"], C); break; case "a": if ((I = p(u, "href")) && I.length && ("#" === I[0] || "javascript:" === I.substring(0, 11))) if (b(u.parentElement) > .8) v = u; else { var H = u.mirrorElement, $ = V(u, "span", !0); $.mirrorElement = H, E = "span", u = $ } } } } var D = u.firstElementChild; if (D) u = D, c(1); else { for (var K = void 0; u !== e && !(K = u.nextElementSibling);) u = u.parentElement, c(-1); if (u === e) { v && s(v); break } u = K, 1 === r && (r = 0), 1 === i && (i = 0), 1 === o && (o = 0), 1 === l && (l = 0) } v && d.push(v) } h(d, s) }(t, n, r), $(t) } function K(e) { for (var t = e, n = e.cloneNode(!0); t;) { n.mirrorElement = t; var r = t.firstElementChild; if (r) t = r, n = n.firstElementChild; else { for (var i = void 0; t !== e && !(i = t.nextElementSibling);) t = t.parentElement, n = n.parentElement; if (t === e) break; t = i, n = n.nextElementSibling } } return n } function U(t) { var n = t.url, r = t.cover, i = t.time, o = t.title, l = t.article; h(l.querySelectorAll("div,p"), (function(e) { e.childNodes.length <= 0 && s(e) })); for (var d, v = l; e(d = v) && 1 === k(d);) { var m = v.firstElementChild; e(m) && (v = m) } if (u(v, "div")) y(v); else { var p = f("div"); p.mirrorElement = v.mirrorElement, function(e, t) { for (var n, r = e.firstChild; r;) n = r.nextSibling, r = t(r) ? null : n }(v, (function(e) { p.appendChild(e) })), v = p } y(v, (function() { return !0 })); var g = v.firstChild; if (e(r)) { var b = N(r); if (a(b) && !b.startsWith("data:")) { var E = f("div", { className: "cover" }), w = f("img", { src: N(r) }); w.addEventListener("load", (function() { this.naturalWidth / this.naturalHeight > 4 && s(E) })), w.addEventListener("error", (function() { s(E) })), E.appendChild(w), v.insertBefore(E, g) } } var C = f("h1", { className: "title" }), x = f("a", { href: n, target: "_blank" }); C.appendChild(x), v.insertBefore(C, g); var L = o || document.title; return a(L) && L.length > 0 ? x.innerText = L : function(e, t, n) { var r = e.ownerDocument; if (r) { var i = r.querySelector("head > title"); if (i) { var a = new MutationObserver((function(e) { if (e && !(e.length < 1)) { var n = e[0].addedNodes; if (n && !(n.length < 1)) { var r = n[0]; if (r && c(r)) { var i = S(r); i && i.length > 0 && (a.disconnect(), t && t(i)) } } } })); a.observe(i, { childList: !0 }), setTimeout((function() { a.disconnect(), n && n() }), 3e3) } } }(v, (function(e) { x.innerText = e }), (function() { S(x) <= 0 && s(C) })), a(i) && i.length > 0 && v.insertBefore(f("p", { className: "time", innerText: i }), g), v } function X(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var r = Object.getOwnPropertySymbols(e); t && (r = r.filter((function(t) { return Object.getOwnPropertyDescriptor(e, t) .enumerable }))), n.push.apply(n, r) } return n } function Y(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; t % 2 ? X(Object(n), !0) .forEach((function(t) { J(e, t, n[t]) })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : X(Object(n)) .forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) })) } return e } function J(e, t, n) { return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } function Z(e, t) { for (var n = 0; n < t.length; n++) { var r = t[n]; r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r) } } var G = function() { function e(t) { ! function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, e); var n = this; n.node = t, n.scrollTop = 0, n.running = !1, n._render = !1, n.timer = null, n.count = 0, n.keys = []; var r = f("div"); r.appendChild(f("style", { textContent: "\n html.circle-html{\n --circle-track-width:8px;\n --circle-track:#e2e2e2;\n --circle-thumb: #9e9e9e;\n --circle-radius: 4px;\n\n margin: 0px !important;\n padding: 0px !important;\n overflow: auto !important;\n background: #fff !important;\n max-width: initial !important;\n }\n html.circle-html>body.circle-hidden{\n width:100% !important;\n height:100% !important;\n opacity:0 !important;\n pointer-events:none !important;\n position:fixed !important;\n top:0px !important;\n left:0px !important;\n }import { maxZindex } from '../../../circle/core/dom';\n\n " })); var i = r.attachShadow({ mode: "open" }); n.stylesheet = f("style", { textContent: `[class*=ant-]::-ms-clear,[class*=ant-] input::-ms-clear,[class*=ant-] input::-ms-reveal,[class^=ant-]::-ms-clear,[class^=ant-] input::-ms-clear,[class^=ant-] input::-ms-reveal{display:none}body,html{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}body{margin:0;color:rgba(0,0,0,.85);font-size:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variant:tabular-nums;line-height:1.5715;background-color:#fff;font-feature-settings:"tnum"}[tabindex="-1"]:focus{outline:none!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[data-original-title],abbr[title]{text-decoration:underline;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-top:0;margin-bottom:1em}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#1890ff;text-decoration:none;background-color:transparent;outline:none;cursor:pointer;transition:color .3s;-webkit-text-decoration-skip:objects}a:hover{color:#40a9ff}a:active{color:#096dd9}a:active,a:focus,a:hover{text-decoration:none;outline:0}a[disabled]{color:rgba(0,0,0,.25);cursor:not-allowed}code,kbd,pre,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;color:rgba(0,0,0,.45);text-align:left;caption-side:bottom}button,input,optgroup,select,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}::selection{color:#fff;background:#1890ff}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}.root{--font:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--size:20px;--width:800px;--space:0;--lineheight:1.8;--weight:400;--blockspace:32px;--indent:0em;--titlealign:left;--align:left;--imageleft:auto;--imageright:auto;--imagehide:block;--margin:80px;--padding:80px;--columncount:2;--columngap:60px;--title1:2em;--title1weight:500;--title2:1.6em;--title2weight:500;--title3:1.2em;--title3weight:500;--title4:1em;--title4weight:500;--title5:1em;--title5weight:500;--title6:1em;--title6weight:500;--color:#1b1b1b;--link:#416ed2;--hover:#305ab7;--visited:#305ab7;--select:#1b1b1b;--selectbg:#bbd6fc;--bg-r:237;--bg-g:237;--bg-b:237;--bg:#ededed;--canvas:#fff}.root code,.root tt{border-radius:3px;padding:0 5px;margin:0 5px}.root pre{padding:.6em .8em;word-wrap:break-word;border-radius:3px}.root pre code{display:inline;margin:0;padding:0;background:0 0;border:0}.root kbd{margin:0 .2em;padding:.15em .4em .1em;font-size:90%;border-bottom-width:2px;border-radius:3px}.root blockquote{padding:.1em 1em;opacity:.85}.root blockquote>:first-child{margin-top:0}.root blockquote>:last-child{margin-bottom:0}.root blockquote p{margin:0}.root hr{clear:both;margin:15px 0;height:0;overflow:hidden;border:none;background:transparent;padding:0}.root table{width:100%;max-width:100%;border:1px solid transparent;border-collapse:collapse}.root figure{overflow:auto}.root figure>figcaption,.root figure>img,.root figure>pre,.root figure>table{margin:0!important}.root tr td,.root tr th{padding:6px 13px}.root tr td p,.root tr th p{margin:0}.root img,.root video{max-width:100%;height:auto}.root embed{max-width:100%}.root li div,.root li p{margin:0}.root mark{padding:0;margin:0;color:initial;background-color:initial}.root svg{width:20px;height:20px}.root :focus{outline:none}.root [role=separator]:after{content:"";display:block;clear:both;margin:25px 0;height:0;overflow:hidden;border:none;background:transparent;padding:0}.root [role=separator]:last-child:after{display:none}.root .line{display:block}.root .left{float:left;margin-right:12px}.root .right{float:right;margin-left:12px}.root .both{clear:both}.root .full-width{width:100%;max-width:100%!important}.root .noise{display:none}.root .block{display:block}.root .inline-block{display:inline-block}.root .flex{display:flex}.root .inline-flex{display:inline-flex}.root .zone-width{min-width:0}.root{color:var(--color);background:var(--bg)}.root code,.root tt{border:1px solid rgba(var(--bg-r),var(--bg-g),var(--bg-b),.6);background:rgba(var(--bg-r),var(--bg-g),var(--bg-b),.4)}.root pre{background:rgba(var(--bg-r),var(--bg-g),var(--bg-b),.5)}.root kbd{border:1px solid rgba(var(--bg-r),var(--bg-g),var(--bg-b),1)}.root blockquote{border-left:4px solid rgba(var(--bg-r),var(--bg-g),var(--bg-b),1)}.root hr{border-bottom:1px solid rgba(var(--bg-r),var(--bg-g),var(--bg-b),1)}.root table th:hover,.root table tr:hover{background:rgba(var(--bg-r),var(--bg-g),var(--bg-b),.6)}.root table tr{border-bottom:1px solid rgba(var(--bg-r),var(--bg-g),var(--bg-b),.6)}.root table thead tr:first-child{background:rgba(var(--bg-r),var(--bg-g),var(--bg-b),.4)}.root h1,.root h2,.root h3,.root h4,.root h5,.root h6{color:var(--color)}.root a{color:var(--link)}.root a:hover{color:var(--hover)}.root a:active,.root a:visited{color:var(--visited)}.root .hightlight-block,.root ::selection{color:var(--select);background-color:var(--selectbg)}.root .hightlight-block a{color:var(--select)}.root .hightlight{text-decoration:underline}.root .title a{color:var(--color)}.root .title a:hover{color:var(--link)}.root .footer{color:var(--color)}.root.paper .page,.root.solid{background:var(--canvas)}.root{margin:0;padding:1px;display:none;text-shadow:none;font-weight:400;line-height:1.5715;font-size:var(--size);font-variant:tabular-nums;font-feature-settings:"tnum";font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.root h1{font-size:var(--title1);font-weight:var(--title1weight)}.root h2{font-size:var(--title2);font-weight:var(--title2weight)}.root h3{font-size:var(--title3);font-weight:var(--title3weight)}.root h4{font-size:var(--title4);font-weight:var(--title4weight)}.root h5{font-size:var(--title5);font-weight:var(--title5weight)}.root h6{font-size:var(--title6);font-weight:var(--title6weight)}.root blockquote,.root code,.root h1,.root h2,.root h3,.root h4,.root h5,.root h6,.root ol,.root pre,.root ul{text-indent:0}.root .block,.root blockquote,.root dl,.root figcaption,.root li,.root ol,.root p,.root pre,.root section,.root table,.root ul{margin:var(--blockspace) 0}.root .flex .block,.root .flex blockquote,.root .flex dl,.root .flex figcaption,.root .flex ol,.root .flex p,.root .flex pre,.root .flex section,.root .flex table,.root .flex ul,.root .inline-flex .block,.root .inline-flex blockquote,.root .inline-flex dl,.root .inline-flex figcaption,.root .inline-flex ol,.root .inline-flex p,.root .inline-flex pre,.root .inline-flex section,.root .inline-flex table,.root .inline-flex ul{margin:0}.root .flex>*,.root .inline-flex>*{margin-left:10px!important;margin-right:10px!important}.root .flex>:first-child,.root .inline-flex>:first-child{margin-left:0!important}.root .flex>:last-child,.root .inline-flex>:last-child{margin-right:0!important}.root .container{min-height:610px;max-width:var(--width);margin:var(--margin) auto}.root .page{margin-bottom:20px;word-break:break-word;font-size:var(--size);font-family:var(--font);line-height:var(--lineheight);text-indent:var(--indent);letter-spacing:var(--space);font-weight:var(--weight);text-align:var(--align);border-bottom:1px solid var(--color)}.root .page>:first-child{margin-top:0}.root .page>:last-child{margin-bottom:0}.root .page:last-child{margin-bottom:0;border-bottom-width:0}.root .page:after,.root .page:before{content:"";display:block;clear:both;height:0}.root .page img{width:100%;display:var(--imagehide)}.root .page img.large{margin:var(--blockspace) var(--imageright) var(--blockspace) var(--imageleft)!important}.root .page img.base64,.root .page img.tiny{width:auto}.root .page .cover{margin-bottom:16px}.root .page .cover img{margin:0!important;width:100%}.root .page .title{text-indent:0;text-align:var(--titlealign);margin-bottom:var(--blockspace)}.root .page .time{opacity:.6;margin-top:-2%}.root .footer{text-align:center;opacity:.4;font-size:15px;padding:0 0 20px}.root .footer .link{list-style:none;display:flex;justify-content:center;margin:6px 0;padding:0}.root .footer .link li{margin:0 5px}.root .footer .link li a{color:var(--color)}.root.paper .page{padding:var(--padding);border-bottom-width:0;box-shadow:0 0 6px rgba(0,0,0,.15)}.root.paper .page .cover{max-width:calc(100% + 160px);margin:-80px -80px 16px}@media screen and (max-width:600px){.root .container{margin:20px 16px}.root.paper .page{padding:20px}.root.paper .cover{max-width:calc(100% + 40px);margin:-20px -20px 20px}}.entry{opacity:.8;top:10px;right:20px;width:25px;height:25px;cursor:pointer;z-index:99999;position:fixed;border:4px solid #63ab67;border-radius:50%;transition:all .2s}.entry:hover{opacity:1}.entry-close{border:0;opacity:.5}.entry-close:after,.entry-close:before{top:12px;left:0;position:absolute;content:"";width:24px;height:3px;background:#020202}.entry-close:before{transform:rotate(45deg)}.entry-close:after{transform:rotate(-45deg)}` }), i.appendChild(n.stylesheet), n.root = f("div", { className: "root paper" }), n.container = f("div", { className: "container" }), n.root.appendChild(n.container); var a, o = ((a = f("div", { className: "footer notranslate" })) .appendChild(f("ul", { className: "link", innerHTML: '\n
  • 获取新版脚本
  • \n
  • 下载基础版
  • \n
  • 下载专业版
  • \n
  • 捐赠支持 ❤️
  • \n ' })), a.appendChild(f("div", { className: "copyright", innerText: "脚本 Circle 阅读助手排版,版权归 ".concat(location.hostname, " 所有") })), a); n.root.appendChild(o), n.entry = f("div", { className: "entry" }), i.appendChild(n.entry), i.appendChild(n.root), document.documentElement.appendChild(r) } var t, n, r; return t = e, (n = [{ key: "start", value: function() { var e = this; e.running ? e.destory() : e.render() } }, { key: "bootstrap", value: function() { var e = this, t = function() { var e = document._zindex; if (i(e)) return e; var t = 0; return h(document.body.querySelectorAll("*"), (function(e) { var n = Number.parseInt(document.defaultView.getComputedStyle(e, null) .getPropertyValue("z-index"), 10); n > t && (t = n) })), t <= 0 ? void 0 : (t++, document._zindex = t, t) }(); t && (e.entry.style.zindex = t), e.entry.addEventListener("click", (function() { e.start() })), document.addEventListener("keydown", (function(t) { var n = document.activeElement; if (!n || u(n, "body")) { if (o(window.getSelection)) { var r = window.getSelection(); if ("Range" === r.type && c(r.focusNode)) return } var i = function(e) { var t = (e.key || "") .trim() .length > 0 ? e.key : e.code; if (t && !["alt", "control", "meta", "shift"].includes(d(t))) { var n = [t]; if (e.altKey && n.unshift("alt"), e.ctrlKey && n.unshift("ctrl"), e.metaKey && n.unshift("meta"), !(n.length <= 0)) return n.join("+") .replace(/?/g, "?") .replace(/Escape/g, "escape") } }(t); if (i && e.keys.push(i), e.count++, 1 === e.count) e.timer = setTimeout((function() { e.count = 0, e.keys.length <= 0 || ("escape" === e.keys.join(" ") && e.destory(), e.keys = []) }), 500); else if (2 === e.count) { if (e.timer && clearTimeout(e.timer), e.count = 0, e.keys.length <= 0) return; "a a" === e.keys.join(" ") && e.start(), e.keys = [] } } })) } }, { key: "render", value: function() { var e = this; if (!e.running) { if (e.running = !0, e.scrollTop = window.pageYOffset, !e._render) { e._render = !0; var t = U(Y(Y({}, e.node), {}, { article: K(e.node.article), title: S(e.node.title) })); t.classList.add("page"), e.container.appendChild(t), D(t) } e.entry.classList.add("entry-close"), document.body.classList.add("circle-hidden"), document.documentElement.classList.add("circle-html"), e.root.style.display = "block" } } }, { key: "destory", value: function() { var e = this; if (e.running) { e.running = !1, e.entry.classList.remove("entry-close"), document.body.classList.remove("circle-hidden"), document.documentElement.classList.remove("circle-html"), e.root.style.display = "none"; var t = e.scrollTop; window.scrollTo({ left: 0, top: t || 0, behavior: "instant" }), e.scrollTop = 0 } } }]) && Z(t.prototype, n), r && Z(t, r), Object.defineProperty(t, "prototype", { writable: !1 }), e }(); var Q = /pubdate|publish|dateline/i, ee = /(20\d{2}([.\-/|年月\s]{1,3}\d{1,2}){2}日?(\s?\d{2}:\d{2}(:\d{2})?)?)|(\d{1,5}\s?(分钟|小时|天)前)/gi; function te(e, t) { for (var n = e, r = t(n); !r && n;) r = t(n = n.parentElement); return r } function ne(t, n, r) { var i; if (t.head && h(t.head.getElementsByTagName("meta"), (function(e) { var t = p(e, "content"); if (t && /\d+/.test(t)) { var n = p(e, "name"), r = p(e, "property"); Q.test(n) && Q.test(r) && (i = t) } })), i) return i; if (e(r)) { var a = te(r, (function(e) { return e.nextElementSibling })); if (a === n) return; var o = S(a) .match(ee); if (l(o)) return o[0] } else { var c = S(te(n, (function(e) { return e.previousElementSibling }))) .match(ee); if (l(c)) return c[0] } } var re, ie, ae = ["h1", "h2"], oe = ["h1", "h2", "h3", '[id*="title"]', '[id*="Title"]', '[class*="title"]', '[class*="Title"]', '[id*="headline"]', '[class*="headline"]']; function le(e, t) { if (!E(e)) return !0; var n = w(e), r = Math.abs(t.left - n.left), a = t.top - n.top; if (r > 100 || a > 600 || a < -60) return !0; var o = S(e); if (x(o) > 100 || x(o) <= 4) return !0; var l = window.getComputedStyle(e), c = parseInt(l.fontSize); return (i(c) ? c : 12) <= 12 || e.getElementsByTagName("a") .length > 1 } function ce(t, n) { if (a(re)) { var r = t.querySelector(re); if (e(r)) return r; re = null } var i = [], o = w(n); if (h(t.body.querySelectorAll(ae.join(",")), (function(e) { le(e, o) || i.push(e) })), 1 === i.length && e(i[0])) return re = L(i[0]), i[0]; var c = t.title; if (c) { var u, s = 0; if (i = [], h(t.body.querySelectorAll(oe.join(",")), (function(e) { if (!le(e, o)) { i.push(e); var t = S(e), n = function(e, t) { if (!a(e) || !a(t) || e.length < 0 || t.length < 0) return ""; if (e.length > t.length) { var n = e; e = t, t = n } for (var r = e.length, i = r; i > 0; i--) for (var o = 0; o < r - i; o++) { var l = e.substr(o, i + 1); if (t.indexOf(l) >= 0) return l } return "" }(c, t) .length; n < 3 || s < n && (s = n, u = e) } })), e(u)) return re = L(u), u; if (1 === i.length) return re = L(i[0]), i[0]; if (s = 0, h(i, (function(e) { var t = Number.parseInt(document.defaultView.getComputedStyle(e, null) .getPropertyValue("font-size"), 10); t > s && (s = t, u = e) })), e(u)) return re = L(u), u; var d = function(e) { for (var t = 0, n = [], r = e; t < 2 && r;) { var i = r.previousElementSibling; if (i) E(i) && (n.push(i), t++), r = i; else { var a = r.parentElement; if (!a) break; var o = a.previousElementSibling; if (!o) break; E(o) && (n.push(o), t++), r = o } } if (!(n.length <= 0)) { var l = []; return h(n, (function(e) { C(e, (function(e) { if (E(e.parentElement)) return !0 }), (function(e) { var t = e.parentElement; !l.includes(t) && l.push(t) })) })), l } }(); if (l(d)) return s = 0, h(d, (function(e) { if (!le(e, o)) { var t = Number.parseInt(document.defaultView.getComputedStyle(e, null) .getPropertyValue("font-size"), 10); t > s && (s = t, u = e) } })), e(u) ? (re = L(u), u) : void 0 } } var ue, se = /span|p/i, de = /body|hentry|main/i, fe = /div|article|body|main|td/i, he = /article|body|post|content|entry/i, ve = /:|。|;|,|,|\.|\?|、|“|“/, me = /comment|meta|replies|reply|footer|footnote|noise/, pe = ["table"], ge = ["a", "style", "script", "button"], ye = ["h2", "h3", "h4", "h5", "h6", "td", "pre", "em", "strong"], be = ["feed", "menu", "menubar", "dialog", "alert", "alertdialog", "navigation", "complementary"]; function Ee(e, t, n) { h(function(e) { for (var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 3, n = arguments.length > 2 ? arguments[2] : void 0, r = 0, i = e.parentElement, a = []; i && !u(i, "html") && !(o(n) && n(i, r) && (a.push(i), ++r >= t));) i = i.parentElement; return a }(e, 4, (function(e, t) { return t <= 0 ? fe.test(e.nodeName) || he.test("".concat(e.className, " ") .concat(e.id)) : !se.test(e.nodeName) })), (function(e, r) { if (!be.includes(p(e, "role"))) { var a = "".concat(e.className, " ") .concat(e.id); if (!me.test(a)) { var o = "".concat(e.tagName, " ") .concat(a); he.test(o) && (t += r <= 0 ? 10 : 2), de.test(o) && (t += r <= 0 ? 5 : 1), !i(e.score) && (e.score = 0), e.score += t / (r < 2 ? r + 2 : 3 * r), n && n(e) } } })) } function Se(e) { var t = 0; return h(e, (function(e) { e.childNodes.length > 0 && t++ })), 1 === t } function we(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, n = e.id; if (n) return "#".concat(n); if (u(e, "body")) return "body"; var r = "> ".concat(d(e.tagName)); t <= 1 && e.classList.length > 0 && (r += ".".concat(Array.prototype.slice.call(e.classList) .join("."))); var i = e.parentElement; return i ? we(i, t + 1) + " " + r : r } function Ce(t, n) { if (!e(t)) return t; var r = we(t); if (!r || !/\.|#/.test(r)) return t; var i = r.split(">"); if (i.length > 0 && !/\.|#/.test(i.pop())) return t; var a = []; try { a = n.querySelectorAll(r) } catch (e) {} if (a.length <= 2) return t; var o = function(e, t) { for (; e; e = e.parentElement) if (e.contains(t)) return e }(a[0], a[1]); return e(o) ? (o.mirrorParent = !0, o) : t } function xe(t) { var n; if (a(ue)) { if (e(n = t.querySelector(ue))) return n; ue = null } var r, i = 0; t.body && h(t.body.querySelectorAll("img"), (function(e) { var t = function(e) { var t = 0; if (!E(e)) return t; var n = e.width, r = e.height, i = e.naturalWidth, a = e.naturalHeight; return n > 500 && r > 300 && i > 800 && a > 500 && (t += (i > a ? i : a) / 500), t }(e); t <= 0 || (i++, Ee(e, t)) })); var o = []; if (t.body && C(t.body, (function(e) { var t = e.parentElement; if (E(t)) { var n = d(t.nodeName); if (!ge.includes(n)) { var r = S(e); if (!(r.split(ve) .length <= 2)) { var i = x(r); if (ye.includes(n) && i > 4) return !0; if (!(i < 10)) return !0 } } } }), (function(e) { o.push(function(e) { for (var t = e; t;) { var n = t.parentElement; if (!(u(n, "span") || n.childElementCount <= 0 || Se(n.children))) break; t = n } return t }(e)) })), o.length <= 2 && h(t.body.querySelectorAll("p"), (function(e) { if (E(e)) { var t = d(e.nodeName); if (!ge.includes(t)) { var n = S(e); if (!(n.split(ve) .length <= 2)) x(n) < 10 || o.push(e) } } })), !(o.length <= 0)) { var l = []; h(o, (function(e) { var t = function(e) { var t = 1, n = S(e); t += n.split(ve) .length, t += Math.min(Math.floor(x(n) / 100), 3); var r = (c(e) ? e.parentElement : e) .nodeName.toLowerCase(); return pe.includes(r) && (t += 1), ye.includes(r) && (t += 2), e.score = t, e.score }(e); t <= 0 || (i++, Ee(e, t, (function(e) { !l.includes(e) && l.push(e) }))) })); var s = l.sort((function(e, t) { return e.score - t.score })); n = s.pop(); var f = s.pop(); if (e(f) && !he.test("".concat(n.tagName, " ") .concat(n.className)) && he.test("".concat(f.tagName, " ") .concat(f.className)) && (n = f), e(n)) { r = n.score; var v = x(S(n)); if (!(!n || r < 30 || i < (v > 200 ? 1 : 3) || v < 100)) if (n.querySelectorAll("*") .length <= 0 && v > 5e3) n.classList.add("noise"); else { var m = w(n); if (m.width * m.height < 172e3) n.classList.add("noise"); else { var p = n.parentElement; if (p) { var g = w(p); if (t.documentElement.offsetWidth > 800 && (m.width < 300 || g.width < 300)) n.classList.add("noise"); else { if (n.getElementsByTagName("div") .length < 2) { var y = Ce(n, t); return ue = L(y), y } if (!(n.getElementsByTagName("a") .length > 16 && b(n) > .35)) { var N = Ce(n, t); return ue = L(N), N } } } else n.classList.add("noise") } } } } } function Ne(t, n) { if (!e(n)) return !0; if (/article|post|content/i.test("".concat(n.className, " ") .concat(n.id))) return !0; if (n.contains(t)) return !0; var r = w(t), i = w(n); return Math.abs(i.top - (r.top + r.height / 2)) < 600 || void 0 } function Le(t, n) { var r = ce(t, n), i = function(t, n) { var r; if (a(ie)) { if (e(r = t.querySelector(ie))) return r; ie = null } var i = t.body.getElementsByTagName("img"); if (!(i.length <= 0)) { var o = n.getBoundingClientRect(), l = o.top, c = []; if (h(i, (function(e) { if (E(e)) { var t = e.getBoundingClientRect(); t.top >= l || t.width / t.height < 5 && t.width > .8 * o.width && c.push(e) } })), !(c.length <= 0)) return r = c.pop(), ie = L(r), r } }(t, n), o = t.URL.startsWith("http") ? t.URL : location.href; if (!e(r)) return { url: o, cover: i, article: n, time: ne(t, n), title: t.title ? t.title.replace(/(.*)[|\-\\/>»] .*/gi, "$1") : "" }; var l = w(r), c = w(n); if (Math.abs(c.left - l.left) >= c.width) return { url: o, cover: i, article: n, time: ne(t, n), title: t.title ? t.title.replace(/(.*)[|\-\\/>»] .*/gi, "$1") : "" }; for (var s = n; !Ne(r, s) && !u(s, "body");) s = s.parentElement; return { url: o, title: r, cover: i, article: s, time: ne(t, n, r) } } var ke = 0; function Ae(t, n, r) { ! function(e) { e && e.body && h(e.body.querySelectorAll(['[id*="more"]', '[class*="more"]'].join(",")), (function(e) { var t = e; if (u(e, "a") || (t = e.querySelector("a")), u(t, "a") && /阅读全文|readmore/.test(t.innerText)) { var n = t.href; n && !n.startsWith("javascript") || t && t.click && t.click() } })) }(t); var i = function(t, n) { var r = xe(t); if (e(r)) { var i = w(r); if (!("nextpage" !== n && i.top > 1800)) return r; r.classList.add("noise") } }(t, r); e(i) ? (ke = 0, n(Le(t, i))) : setTimeout((function() { ke < 5 ? (ke++, Ae(t, n, r)) : (ke = 0, n()) }), 500) }! function(e) { var t; function n(r) { r && r.type && "readystatechange" == r.type && "complete" != document.readyState || (t && clearTimeout(t), document.removeEventListener("DOMContentLoaded", n, !1), document.removeEventListener("readystatechange", n, !1), e()) } "complete" !== document.readyState ? (document.addEventListener("DOMContentLoaded", n, !1), document.addEventListener("readystatechange", n, !1), function e() { t && clearTimeout(t), t = setTimeout((function() { document.body ? n() : e() }), 4e3) }()) : e() }((function() { Ae(document, (function(e) { r(e) || new G(e) .bootstrap() })) })) })();