3 |
--------------------------------------------------------------------------------
/LICENSE-APACHE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "[]"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright [yyyy] [name of copyright owner]
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/themes/webstack/layouts/partials/content_main.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{ if $.Site.Params.showArticle }}
5 | {{ range .Site.Data.articles }}
6 | {{ if .list }}
7 |
8 |
9 | {{ .taxonomy }}
10 |
11 |
12 |
13 |
14 |
15 | {{ range .list }}
16 |
17 |
18 |
{{ .term }} 作者
19 |
20 |
21 |
22 | {{ $index := 0 }}
23 | {{ range .links }}
24 | {{ $index = add $index 1 }}
25 |
26 | {{ $index }}
27 | {{ .title }}
28 |
29 | {{ if gt (len (findRE "[\u4e00-\u9fff]" .author)) 0 }}
30 | {{ if gt (len .author) 15 }}
31 | {{ printf "%s..." (substr .author 0 5) }}
32 | {{ else }}
33 | {{ .author }}
34 | {{ end }}
35 | {{ else }}
36 | {{ $authorStr := string .author }}
37 | {{ if gt (len $authorStr) 10 }}
38 | {{ substr $authorStr 0 10 }}
39 | {{ else }}
40 | {{ string $authorStr }}
41 | {{ end }}
42 | {{ end }}
43 |
44 |
45 | {{ end }}
46 |
47 |
48 |
52 |
53 |
54 | {{ end }}
55 |
56 |
57 |
58 |
59 | {{ end }}
60 | {{ end }}
61 | {{ end }}
62 |
63 | {{ range .Site.Data.advertisement }}
64 |
65 | {{ range .links }}
66 | {{ if .ads }}
67 |
68 |
69 |
70 | {{ end }}
71 | {{ end }}
72 |
73 | {{ end }}
74 |
75 |
76 |
77 | {{ range .Site.Data.recommend }}
78 |
79 |
80 |
81 | {{ .taxonomy }}
82 |
83 |
85 |
86 |
87 | {{ range .links }}
88 | {{ if .ads }}
89 |
90 |
91 |
92 | {{ if .url }}
93 |
94 |
95 |
96 | {{ else }}
97 |
98 | {{ end }}
99 |
100 |
101 | {{ else }}
102 |
142 | {{ end }}
143 | {{ end }}
144 |
145 |
146 | {{ end }}
147 |
148 | {{ range .Site.Data.webstack }}
149 | {{ if .list }}
150 | {{ $taxonomy := .taxonomy }}
151 | {{ range .list }}
152 |
153 |
154 |
155 |
156 |
157 | {{ .term }}
158 |
159 |
160 |
161 |
162 |
163 |
164 | {{ range .links }}
165 |
203 | {{ end }}
204 |
205 |
206 |
207 | {{ end }}
208 | {{ else }}
209 |
210 |
211 |
212 |
213 |
214 |
215 | {{ .taxonomy }}
216 |
217 |
219 |
220 |
221 |
222 | {{ range .links }}
223 |
263 | {{ end }}
264 |
265 |
266 | {{ end }}
267 | {{ end }}
268 |
269 |
270 | 友情链接
271 |
272 |
273 |
274 | {{ range .Site.Data.friendlinks }}
275 |
{{ .title }}
276 | {{ end }}
277 |
278 |
279 |
280 |
281 |
--------------------------------------------------------------------------------
/themes/webstack/layouts/partials/content_search.html:
--------------------------------------------------------------------------------
1 |
246 |
--------------------------------------------------------------------------------
/themes/webstack/assets/js/spiderbox.js:
--------------------------------------------------------------------------------
1 | /* 控制台输出 */
2 | function makeMulti(string) {
3 | let l = String(string)
4 | l = l.substring(l.indexOf("/*") + 3, l.lastIndexOf("*/"))
5 | return "%c " + l
6 | };
7 | const string = function () {
8 | /*
9 | _____ _ __ ____
10 | / ___/____ (_)___/ /__ _____/ __ )____ _ __ 爬虫爬得欢
11 | \__ \/ __ \/ / __ / _ \/ ___/ __ / __ \| |/_/ 监狱要坐穿
12 | ___/ / /_/ / / /_/ / __/ / / /_/ / /_/ /> < 数据玩得溜
13 | /____/ .___/_/\__,_/\___/_/ /_____/\____/_/|_| 牢饭吃个够
14 | /_/
15 | */
16 | };
17 | console.log(makeMulti(string), "color: #0084ff");
18 | console.log("\n %c © WuKongSec %c wukongsec.com %c © BOB'S BLOG %c itbob.cn %c © SpiderBox %c spiderbox.cn \n", "color: #ffffff; background: #f1404b; padding:5px 0;", "background: #fadfa3; padding:5px 0;", "color: #fadfa3; background: #030307; padding:5px 0;", "background: #fadfa3; padding:5px 0;", "color: #ffffff; background: #0084ff; padding:5px 0;", "background: #fadfa3; padding:5px 0;");
19 |
20 | /* 弹窗一:say hello baby */
21 | // $(document).ready(function () {
22 | // // 检查是否是 Chromium 内核且版本小于 100
23 | // function isOldChromium() {
24 | // try {
25 | // const userAgent = navigator.userAgent;
26 | // const chromeMatch = userAgent.match(/Chrome\/(\d+)/);
27 | // if (chromeMatch && chromeMatch[1]) {
28 | // const chromeVersion = parseInt(chromeMatch[1], 10);
29 | // return chromeVersion < 100;
30 | // }
31 | // return false;
32 | // } catch (error) {
33 | // console.error("Error detecting Chromium version:", error);
34 | // // 出现异常时默认不弹出弹窗
35 | // return true;
36 | // }
37 | // }
38 | //
39 | // if (isOldChromium()) {
40 | // return;
41 | // }
42 | //
43 | // // 检查本地存储中的标志位,如果标志位为 true,则不再弹出弹窗
44 | // let lastPopupTime = localStorage.getItem("FUCK_GIZAWORKS");
45 | // lastPopupTime = new Date(lastPopupTime).getTime();
46 | // const currentTime = new Date().getTime();
47 | // const timeDifferenceInDays = Math.floor((currentTime - lastPopupTime) / (1000 * 60 * 60 * 24));
48 | // if (!lastPopupTime || timeDifferenceInDays >= 10) {
49 | // Swal.fire({
50 | // // width: 300,
51 | // title: "欢迎",
52 | // // text: "SpiderBox 仍处于初期建设当中,
欢迎扫码关注站长公众号:虫技",
53 | // html: `
54 | //
55 | //
56 | // 欢迎扫码关注站长公众号:虫技
57 | //
58 | //
59 | //
60 | //
点此了解近期更新情况
61 | // `,
62 | // showCancelButton: true,
63 | // confirmButtonText: "俺知道了",
64 | // cancelButtonText: "烦死了,近期不再弹出!",
65 | // confirmButtonColor: "#0084ff",
66 | // imageUrl: "https://static.wukongsec.com/spiderbox/images/qrcode/IT_BOB.jpg",
67 | // // imageUrl: "https://spiderapi.cn/img/qrcode/gzh.png",
68 | // // imageWidth: 300,
69 | // // imageHeight: 300,
70 | // imageAlt: "公众号:虫技",
71 | // showClass: {
72 | // popup: "swal2-show"
73 | // },
74 | // hideClass: {
75 | // popup: "swal2-hide"
76 | // }
77 | // }).then((result) => {
78 | // if (result.isConfirmed) {
79 | //
80 | // } else {
81 | // localStorage.setItem("FUCK_GIZAWORKS", new Date().toISOString());
82 | // }
83 | // });
84 | // const popupContainer = document.querySelector('.swal2-container');
85 | // popupContainer.style.zIndex = '9999';
86 | // }
87 | // });
88 |
89 | /* 弹窗二:交流群 */
90 | // $(document).ready(function () {
91 | // const showGroupElement = document.getElementById("show-group");
92 | // showGroupElement.addEventListener("click", function () {
93 | // Swal.fire({
94 | // text: "扫码加入QQ / 微信交流群",
95 | // confirmButtonText: "俺知道了",
96 | // confirmButtonColor: "#0084ff",
97 | // imageWidth: 420,
98 | // imageUrl: "https://static.wukongsec.com/spiderbox/images/group.webp",
99 | // imageAlt: "QQ / 微信交流群",
100 | // showClass: {
101 | // popup: "swal2-show"
102 | // },
103 | // hideClass: {
104 | // popup: "swal2-hide"
105 | // },
106 | // allowOutsideClick: false,
107 | // customClass: {
108 | // image: "custom-swal-image"
109 | // }
110 | // }).then((result) => {
111 | // if (result.isConfirmed) {
112 | // Swal.close();
113 | // }
114 | // });
115 | // const popupContainer = document.querySelector(".swal2-container");
116 | // popupContainer.style.zIndex = "9999";
117 | // })
118 | // });
119 |
120 | /* 弹窗三:免责声明 */
121 |
122 | const showDisclaimerElement = document.getElementById("show-disclaimer");
123 | showDisclaimerElement.addEventListener("click", function () {
124 | let popupWidth = "55%";
125 | if (window.innerWidth < 768) {
126 | popupWidth = "95%";
127 | }
128 | Swal.fire({
129 | html: `
130 |
131 |
免责声明
132 |
欢迎使用我们的导航站 [SpiderBox 虫盒]!请在使用本站点之前仔细阅读以下免责声明,要访问和使用本站点,您必须接受以下条款和条件!如果您不同意这些条款和条件,请勿使用本站点!
133 |
134 |
135 | 信息准确性
136 | 本站点提供的导航链接和信息仅供参考,尽管我们努力确保信息的准确性和完整性,但我们不对信息的准确性、完整性、实时性或适用性作出任何明示或暗示的陈述或担保,您应该自行核实和验证您所获得的信息!
137 |
138 |
139 | 使用风险
140 | 使用本站点提供的导航链接和信息是基于您自己的判断和风险,我们不对您使用本站点导航链接导致的任何损失、损害或不便负责,在使用导航链接之前,请确保您已经充分了解所涉及的风险!
141 |
142 |
143 | 第三方链接
144 | 本站点包含的所有指向第三方网站的链接仅供您的方便提供,不代表我们对这些第三方网站的认可或担保,我们对这些第三方网站的内容、隐私政策和行为不承担任何责任,您在访问这些链接时需谨慎自负风险!
145 |
146 |
147 | 知识产权和版权
148 | 本站点为非营利性网站,尊重知识产权和版权,基于互联网之分享精神,如果您认为本站点包含侵犯您的知识产权或版权的内容,请与我们联系,我们会尽快删除或更正相关内容!
149 |
150 |
151 | 法律合规
152 | 您使用本站点的行为应遵守适用的法律法规,您对任何违反法律法规的行为负有全部责任,我们不对您的任何违法行为负责!
153 |
154 |
155 | 免责声明的变更
156 | 我们保留随时修改或更新本免责声明的权利,请您定期查阅本页面以获取最新信息!
157 |
158 |
159 |
160 |
联系方式
161 |
162 |
163 | 站长邮箱:
164 | 点击获取
165 |
166 |
167 | 站长公众号: 虫技
168 |
169 |
170 |
2023年08月17日
171 |
172 | `,
173 | width: popupWidth,
174 | showCancelButton: true,
175 | confirmButtonText: "同意",
176 | cancelButtonText: "不同意",
177 | confirmButtonColor: "#0084ff",
178 | showClass: {
179 | popup: "swal2-show"
180 | },
181 | hideClass: {
182 | popup: "swal2-hide"
183 | },
184 | allowOutsideClick: false,
185 | customClass: {
186 | // popup: "custom-swal-popup"
187 | container: "custom-swal-container"
188 | }
189 | }).then((result) => {
190 | if (result.isConfirmed) {
191 | Swal.close();
192 | } else if (result.dismiss === Swal.DismissReason.cancel) {
193 | window.close();
194 | }
195 | });
196 | const popupContainer = document.querySelector(".swal2-container");
197 | popupContainer.style.zIndex = "9999";
198 |
199 | let showEmailElement = document.getElementById("show-email");
200 | showEmailElement.addEventListener("click", function () {
201 | showEmailElement.innerHTML = atob("YWRtaW5AaXRib2IuY24=");
202 | });
203 | });
204 |
205 | /* 弹窗四:打赏赞助 */
206 | // $(document).ready(function () {
207 | // const showSponsorElement = document.getElementById("show-sponsor");
208 | // showSponsorElement.addEventListener("click", function () {
209 | // Swal.fire({
210 | // text: "所有打赏、赞助将用于 SpiderBox 的域名、服务器、COS 等项目续费。",
211 | // confirmButtonText: "俺知道了",
212 | // confirmButtonColor: "#0084ff",
213 | // imageWidth: 420,
214 | // imageUrl: "https://static.wukongsec.com/spiderbox/images/sponsor.webp",
215 | // imageAlt: "微信 / 支付宝收款码",
216 | // showClass: {
217 | // popup: "swal2-show"
218 | // },
219 | // hideClass: {
220 | // popup: "swal2-hide"
221 | // },
222 | // allowOutsideClick: false,
223 | // customClass: {
224 | // image: "custom-swal-image"
225 | // }
226 | // }).then((result) => {
227 | // if (result.isConfirmed) {
228 | // Swal.close();
229 | // }
230 | // });
231 |
232 | // const popupContainer = document.querySelector(".swal2-container");
233 | // popupContainer.style.zIndex = "9999";
234 | // })
235 | // });
236 |
237 | function getCookie(name) {
238 | const nameEQ = name + "=";
239 | const cookies = document.cookie.split(';');
240 | for (let cookie of cookies) {
241 | cookie = cookie.trim();
242 | if (cookie.indexOf(nameEQ) === 0) {
243 | return cookie.substring(nameEQ.length);
244 | }
245 | }
246 | return null;
247 | }
248 |
249 | /* 夜间(日间)模式记忆判断 */
250 | (function () {
251 | let nightCookie = getCookie('_SPIDERBOX_NIGHT_') === '1';
252 | if (nightCookie) {
253 | document.body.classList.remove('io-grey-mode');
254 | document.body.classList.add('io-black-mode');
255 | console.log('夜间模式开启');
256 | $(".switch-dark-mode").attr("data-original-title", "日间模式");
257 | $(".mode-ico").removeClass("icon-night");
258 | $(".mode-ico").addClass("icon-light");
259 | }
260 | })();
261 |
262 | /* 夜间(日间)模式切换 */
263 | // $("#search-bg").css("background-image", "url({{ with $.Site.Params.cdnURL }}{{ . }}{{ end }}{{ $.Site.Params.images.searchImageL }})"); //默认浅色背景
264 | function switchNightMode() {
265 | const cookieName = "_SPIDERBOX_NIGHT_"
266 | const date = new Date();
267 | date.setFullYear(date.getFullYear() + 1); // 设置为 1 年后过期
268 |
269 | let nightCookie = getCookie(cookieName) === '1';
270 | let nightClass = document.body.classList.contains('io-black-mode');
271 | let night = nightCookie || nightClass;
272 | // let night = document.cookie.replace(/(?:(?:^|.*;\s*)night\s*\=\s*([^;]*).*$)|^.*$/, "$1") || '0';
273 |
274 | if (night) {
275 | // $("#search-bg").css("background-image", "url({{ with $.Site.Params.cdnURL }}{{ . }}{{ end }}{{ $.Site.Params.images.searchImageD }})")
276 | document.body.classList.remove('io-black-mode');
277 | document.body.classList.add('io-grey-mode');
278 | document.cookie = `${cookieName}=0; expires=${date.toUTCString()}; path=/`;
279 | console.log('切换至日间模式');
280 | $(".switch-dark-mode").attr("data-original-title", "夜间模式");
281 | $(".mode-ico").removeClass("icon-light");
282 | $(".mode-ico").addClass("icon-night");
283 | } else {
284 | // $("#search-bg").css("background-image", "url({{ with $.Site.Params.cdnURL }}{{ . }}{{ end }}{{ $.Site.Params.images.searchImageL }})");
285 | document.body.classList.remove('io-grey-mode');
286 | document.body.classList.add('io-black-mode');
287 | document.cookie = `${cookieName}=1; expires=${date.toUTCString()}; path=/`;
288 | console.log('切换至夜间模式');
289 | $(".switch-dark-mode").attr("data-original-title", "日间模式");
290 | $(".mode-ico").removeClass("icon-night");
291 | $(".mode-ico").addClass("icon-light");
292 | }
293 | }
294 |
295 | /* 图片懒加载 */
296 | window.addEventListener('DOMContentLoaded', (event) => {
297 | let observer = new IntersectionObserver((entries, observe) => {
298 | entries.forEach(item => {
299 | // 获取当前正在观察的元素
300 | let target = item.target
301 | if (item.isIntersecting && target.dataset.src) {
302 | target.src = target.dataset.src
303 | // 删除data-src属性
304 | target.removeAttribute("data-src")
305 | // 取消观察
306 | observe.unobserve(item.target)
307 | }
308 | })
309 | })
310 | // let allLazyImgs = document.querySelectorAll(".lazy")
311 | // allLazyImgs.forEach(item => {
312 | // // 遍历观察元素
313 | // observer.observe(item)
314 | // })
315 | let allLazyImgs = document.querySelectorAll(".lazy")
316 | let isScrolling = false;
317 |
318 | window.addEventListener('scroll', function () {
319 | if (!isScrolling) {
320 | window.requestAnimationFrame(function () {
321 | allLazyImgs.forEach(item => {
322 | if (isElementInViewport(item) && item.dataset.src) {
323 | observer.observe(item);
324 | }
325 | });
326 | isScrolling = false;
327 | });
328 | }
329 | isScrolling = true;
330 | });
331 |
332 | function isElementInViewport(el) {
333 | let rect = el.getBoundingClientRect();
334 | return (
335 | rect.bottom >= 0 &&
336 | rect.right >= 0 &&
337 | rect.top <= (window.innerHeight || document.documentElement.clientHeight) &&
338 | rect.left <= (window.innerWidth || document.documentElement.clientWidth)
339 | );
340 | }
341 |
342 | allLazyImgs.forEach(item => {
343 | if (isElementInViewport(item) && item.dataset.src) {
344 | observer.observe(item);
345 | }
346 | });
347 | });
348 |
349 | /* 初始化检查侧边栏是否需要展开 */
350 | window.addEventListener('DOMContentLoaded', (event) => {
351 | // 检查 localStorage 中的 mini_sidebar 是否为 true,默认 true
352 | const isMiniSidebar = localStorage.getItem('mini_sidebar') === 'true' || localStorage.getItem('mini_sidebar') === null;
353 | const sidebarElement = document.getElementById('sidebar');
354 |
355 | if (isMiniSidebar) {
356 | sidebarElement.classList.add('mini-sidebar');
357 | sidebarElement.classList.remove('animate-nav');
358 | sidebarElement.style.width = '60px';
359 | $('.header-mini-btn input[type="checkbox"]').prop("checked", true);
360 | } else {
361 | sidebarElement.classList.add('animate-nav');
362 | sidebarElement.classList.remove('mini-sidebar');
363 | sidebarElement.style.width = '170px';
364 | $('.header-mini-btn input[type="checkbox"]').prop("checked", false);
365 | }
366 | });
367 |
368 | // 最近文章/视频,右键复制标题链接作者
369 | document.addEventListener("contextmenu", (event) => {
370 | // 检查是否右键点击了 .hot-list 项
371 | const hotListItem = event.target.closest(".hot-list");
372 | if (hotListItem) {
373 | // 阻止默认右键菜单
374 | event.preventDefault();
375 | // 获取标题、链接和作者信息
376 | const title = hotListItem.querySelector("a").textContent;
377 | const link = hotListItem.querySelector("a").href;
378 | const author = hotListItem.querySelector(".hot-rank").getAttribute("title");
379 | // 拼接内容
380 | const content = `• 标题: ${title}\n• 链接: ${link}\n• 作者: ${author}\n• 来源: 由 spiderbox.cn 提供搜集聚合服务`;
381 | // 将内容复制到剪贴板
382 | navigator.clipboard.writeText(content).then(() => {
383 | // https://alertifyjs.com/ 弹窗
384 | alertify.set('notifier', 'position', 'top-center');
385 | alertify.set('notifier', 'delay', 3);
386 | alertify.success('链接已复制到剪贴板');
387 | }).catch((err) => {
388 | console.error("链接复制失败:", err);
389 | });
390 | }
391 | });
392 |
393 | /* 新弹窗:say hello baby */
394 | window.addEventListener('DOMContentLoaded', (event) => {
395 | // 检查本地存储中的标志位对应的时间,如果时间在15天内,则不弹窗
396 | let lastPopupTime = localStorage.getItem("_SPIDERBOX_SHOW_START_POPUP_");
397 | lastPopupTime = new Date(lastPopupTime).getTime();
398 | const currentTime = new Date().getTime();
399 | const timeDifferenceInDays = Math.floor((currentTime - lastPopupTime) / (1000 * 60 * 60 * 24));
400 | if (!lastPopupTime || timeDifferenceInDays >= 30) { // 30 天内不再弹窗
401 | alertify.confirm(
402 | "欢迎访问虫盒",
403 | "1️⃣ 站长公众号:
虫技 丨
关于站长 丨
更新日志 丨
在线反馈/交流/联系 " +
404 | "2️⃣ 尊重原创,遵守开源协议,一直被模仿,从未被超越,恶意抄袭
案例一 、
案例二 " +
405 | "3️⃣ 添加站长微信:
IT-BOB ,加入微信交流群,行业大佬云集,机器人实时推送全网优质文章",
406 | function () {},
407 | function () {
408 | localStorage.setItem("_SPIDERBOX_SHOW_START_POPUP_", new Date().toISOString());
409 | alertify.success('30 天内不再弹出');
410 | }).set({
411 | labels: {ok: '俺知道了', cancel: '烦死了,近期不再弹出!'},
412 | 'movable': false,
413 | 'reverseButtons': true,
414 | 'closable': false
415 | });
416 | }
417 | });
418 |
--------------------------------------------------------------------------------
/themes/webstack/layouts/partials/modal_search.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | 搜索
11 | 社区
12 | API
13 | 求职
14 | 购物
15 | 娱乐
16 |
17 |
18 |
54 |
90 |
117 |
145 |
177 |
209 |
210 |
215 |
218 |
219 |
220 |
223 |
224 |
225 |
226 |
--------------------------------------------------------------------------------
/themes/webstack/assets/css/alertify.css:
--------------------------------------------------------------------------------
1 | /**
2 | * alertifyjs 1.14.0 http://alertifyjs.com
3 | * AlertifyJS is a javascript framework for developing pretty browser dialogs and notifications.
4 | * Copyright 2024 Mohammad Younes
(http://alertifyjs.com)
5 | * Licensed under GPL 3 */
6 | .alertify .ajs-dimmer{position:fixed;z-index:1981;top:0;right:0;bottom:0;left:0;padding:0;margin:0;background-color:#252525;opacity:.5}.alertify .ajs-modal{position:fixed;top:0;right:0;left:0;bottom:0;padding:0;overflow-y:auto;z-index:1981}.alertify .ajs-dialog{position:relative;margin:16% auto;min-height:110px;min-width:35%;max-width:550px;padding:24px 24px 0 24px;outline:0;background-color:#fff;font-family:DingTalk-JinBuTi,sans-serif}.alertify .ajs-dialog.ajs-capture:before{content:'';position:absolute;top:0;right:0;bottom:0;left:0;display:block;z-index:1}.alertify .ajs-reset{position:absolute!important;display:inline!important;width:0!important;height:0!important;opacity:0!important}.alertify .ajs-commands{position:absolute;right:4px;margin:-14px 24px 0 0;z-index:2}.alertify .ajs-commands button{display:none;width:10px;height:10px;margin-left:10px;padding:10px;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}.alertify .ajs-commands button.ajs-close{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAh0lEQVQYlY2QsQ0EIQwEB9cBAR1CJUaI/gigDnwR6NBL/7/xWLNrZ2b8EwGotVpr7eOitWa1VjugiNB7R1UPrKrWe0dEAHBbXUqxMQbeewDmnHjvyTm7C3zDwAUd9c63YQdUVdu6EAJzzquz7HXvTiklt+H9DQFYaxFjvDqllFyMkbXWvfpXHjJrWFgdBq/hAAAAAElFTkSuQmCC)}.alertify .ajs-commands button.ajs-maximize{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAOUlEQVQYlWP8//8/AzGAhYGBgaG4uBiv6t7eXkYmooxjYGAgWiELsvHYFMCcRX2rSXcjoSBiJDbAAeD+EGu+8BZcAAAAAElFTkSuQmCC)}.alertify .ajs-header{color:#000;font-weight:700;background:#fafafa;border-bottom:#eee 1px solid;border-radius:2px 2px 0 0;margin:-24px -24px 0;padding:16px 24px}.alertify .ajs-body{min-height:56px;color:#000}.alertify .ajs-body .ajs-content{padding:16px 24px 16px 16px}.alertify .ajs-body .ajs-content a{color:#0084ff}.alertify .ajs-body .ajs-content a:hover{color:#0068d4;font-weight:700}.alertify .ajs-footer{padding:6px;margin-left:-24px;margin-right:-24px;min-height:43px;background:#fbfbfb;border-top:#eee 1px solid;border-radius:0 0 2px 2px}.alertify .ajs-footer .ajs-buttons.ajs-primary{text-align:right}.alertify .ajs-footer .ajs-buttons.ajs-primary .ajs-button{margin:4px}.alertify .ajs-footer .ajs-buttons.ajs-auxiliary{float:left;clear:none;text-align:left}.alertify .ajs-footer .ajs-buttons.ajs-auxiliary .ajs-button{margin:4px}.alertify .ajs-footer .ajs-buttons .ajs-button{padding:5px 10px;min-height:35px;background-color:transparent;color:#000;border:0;outline:0;font-size:14px;font-weight:700;text-transform:uppercase;border-radius:.25em;font-family:DingTalk-JinBuTi,sans-serif}.alertify .ajs-footer .ajs-buttons .ajs-button.ajs-ok{color:#fff;background-color:#0084ff}.alertify .ajs-footer .ajs-buttons .ajs-button.ajs-cancel{color:#fff;background-color:#6e7881}.alertify .ajs-footer .ajs-buttons .ajs-button.ajs-ok:hover{background-color:#0068d4}.alertify .ajs-footer .ajs-buttons .ajs-button.ajs-cancel:hover{background-color:#636973}.alertify .ajs-handle{position:absolute;display:none;width:10px;height:10px;right:0;bottom:0;z-index:1;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMS8xNEDQYmMAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAQ0lEQVQYlaXNMQoAIAxD0dT7H657l0KX3iJuUlBUNOsPPCGJm7VDp6ryeMxMuDsAQH7owW3pyn3RS26iKxERMLN3ugOaAkaL3sWVigAAAABJRU5ErkJggg==);-webkit-transform:scaleX(1);transform:scaleX(1);cursor:se-resize}.alertify.ajs-no-overflow .ajs-body .ajs-content{overflow:hidden!important}.alertify.ajs-no-padding.ajs-maximized .ajs-body .ajs-content{left:0;right:0;padding:0}.alertify.ajs-no-padding:not(.ajs-maximized) .ajs-body{margin-left:-24px;margin-right:-24px}.alertify.ajs-no-padding:not(.ajs-maximized) .ajs-body .ajs-content{padding:0}.alertify.ajs-no-padding.ajs-resizable .ajs-body .ajs-content{left:0;right:0}.alertify.ajs-maximizable .ajs-commands button.ajs-maximize,.alertify.ajs-maximizable .ajs-commands button.ajs-restore{display:inline-block}.alertify.ajs-closable .ajs-commands button.ajs-close{display:inline-block}.alertify.ajs-maximized .ajs-dialog{width:100%!important;height:100%!important;max-width:none!important;margin:0 auto!important;top:0!important;left:0!important}.alertify.ajs-maximized.ajs-modeless .ajs-modal{position:fixed!important;min-height:100%!important;max-height:none!important;margin:0!important}.alertify.ajs-maximized .ajs-commands button.ajs-maximize{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAASklEQVQYlZWQ0QkAMQhDtXRincOZX78KVtrDCwgqJNEoIB3MPLj7lRUROlpyVXGzby6zWuY+kz6tj5sBMTMAyVV3/595RbOh3cAXsww1raeiOcoAAAAASUVORK5CYII=)}.alertify.ajs-maximized .ajs-dialog,.alertify.ajs-resizable .ajs-dialog{padding:0}.alertify.ajs-maximized .ajs-commands,.alertify.ajs-resizable .ajs-commands{margin:14px 24px 0 0}.alertify.ajs-maximized .ajs-header,.alertify.ajs-resizable .ajs-header{position:absolute;top:0;left:0;right:0;margin:0;padding:16px 24px}.alertify.ajs-maximized .ajs-body,.alertify.ajs-resizable .ajs-body{min-height:224px;display:inline-block}.alertify.ajs-maximized .ajs-body .ajs-content,.alertify.ajs-resizable .ajs-body .ajs-content{position:absolute;top:50px;right:24px;bottom:50px;left:24px;overflow:auto}.alertify.ajs-maximized .ajs-footer,.alertify.ajs-resizable .ajs-footer{position:absolute;left:0;right:0;bottom:0;margin:0}.alertify.ajs-resizable:not(.ajs-maximized) .ajs-dialog{min-width:548px}.alertify.ajs-resizable:not(.ajs-maximized) .ajs-handle{display:block}.alertify.ajs-movable:not(.ajs-maximized) .ajs-header{cursor:move}.alertify.ajs-modeless .ajs-dimmer,.alertify.ajs-modeless .ajs-reset{display:none}.alertify.ajs-modeless .ajs-modal{overflow:visible;max-width:none;max-height:0}.alertify.ajs-modeless.ajs-pinnable .ajs-commands button.ajs-pin{display:inline-block;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAQklEQVQYlcWPMQ4AIAwCqU9u38GbcbHRWN1MvKQDhQFMEpKImGJA0gCgnYw0V0rwxseg5erT4oSkQVI5d9f+e9+xA0NbLpWfitPXAAAAAElFTkSuQmCC)}.alertify.ajs-modeless.ajs-unpinned .ajs-modal{position:absolute}.alertify.ajs-modeless.ajs-unpinned .ajs-commands button.ajs-pin{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAO0lEQVQYlWP8//8/AzGAiShV6AqLi4txGs+CLoBLMYbC3t5eRmyaWfBZhwwYkX2NTxPRvibKjRhW4wMAhxkYGbLu3pEAAAAASUVORK5CYII=)}.alertify.ajs-modeless:not(.ajs-unpinned) .ajs-body{max-height:500px;overflow:auto}.alertify.ajs-basic .ajs-header{opacity:0}.alertify.ajs-basic .ajs-footer{visibility:hidden}.alertify.ajs-frameless .ajs-header{position:absolute;top:0;left:0;right:0;min-height:60px;margin:0;padding:0;opacity:0;z-index:1}.alertify.ajs-frameless .ajs-footer{display:none}.alertify.ajs-frameless .ajs-body .ajs-content{position:absolute;top:0;right:0;bottom:0;left:0}.alertify.ajs-frameless:not(.ajs-resizable) .ajs-dialog{padding-top:0}.alertify.ajs-frameless:not(.ajs-resizable) .ajs-dialog .ajs-commands{margin-top:0}.ajs-no-overflow{overflow:hidden!important;outline:0}.ajs-no-overflow.ajs-fixed{position:fixed;top:0;right:0;bottom:0;left:0;overflow-y:scroll!important}.ajs-no-selection,.ajs-no-selection *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media screen and (max-width:568px){.alertify .ajs-dialog{min-width:150px}.alertify:not(.ajs-maximized) .ajs-modal{padding:0 5%}.alertify:not(.ajs-maximized).ajs-resizable .ajs-dialog{min-width:initial;min-width:auto}}@media screen and (min-width:900px){.alertify .ajs-dialog{min-width:75%}}@media screen and (min-width:1200px){.alertify .ajs-dialog{min-width:55%}}@media screen and (min-width:1500px){.alertify .ajs-dialog{min-width:50%}}@media screen and (min-width:1800px){.alertify .ajs-dialog{min-width:40%}}@media screen and (min-width:2300px){.alertify .ajs-dialog{min-width:30%}}@-moz-document url-prefix(){.alertify button:focus{outline:1px dotted #3593d2}}.alertify .ajs-dimmer,.alertify .ajs-modal{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition-property:opacity,visibility;transition-property:opacity,visibility;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transition-duration:250ms;transition-duration:250ms}.alertify.ajs-hidden .ajs-dimmer,.alertify.ajs-hidden .ajs-modal{visibility:hidden;opacity:0}.alertify.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-duration:.5s;animation-duration:.5s}.alertify.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-duration:250ms;animation-duration:250ms}.alertify .ajs-dialog.ajs-shake{-webkit-animation-name:ajs-shake;animation-name:ajs-shake;-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes ajs-shake{0%,100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes ajs-shake{0%,100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.alertify.ajs-slide.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-slideIn;animation-name:ajs-slideIn;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1.275);animation-timing-function:cubic-bezier(.175,.885,.32,1.275)}.alertify.ajs-slide.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-slideOut;animation-name:ajs-slideOut;-webkit-animation-timing-function:cubic-bezier(.6,-.28,.735,.045);animation-timing-function:cubic-bezier(.6,-.28,.735,.045)}.alertify.ajs-zoom.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-zoomIn;animation-name:ajs-zoomIn}.alertify.ajs-zoom.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-zoomOut;animation-name:ajs-zoomOut}.alertify.ajs-fade.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-fadeIn;animation-name:ajs-fadeIn}.alertify.ajs-fade.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-fadeOut;animation-name:ajs-fadeOut}.alertify.ajs-pulse.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-pulseIn;animation-name:ajs-pulseIn}.alertify.ajs-pulse.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-pulseOut;animation-name:ajs-pulseOut}.alertify.ajs-flipx.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-flipInX;animation-name:ajs-flipInX}.alertify.ajs-flipx.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-flipOutX;animation-name:ajs-flipOutX}.alertify.ajs-flipy.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-flipInY;animation-name:ajs-flipInY}.alertify.ajs-flipy.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-flipOutY;animation-name:ajs-flipOutY}@-webkit-keyframes ajs-pulseIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes ajs-pulseIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@-webkit-keyframes ajs-pulseOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes ajs-pulseOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes ajs-zoomIn{0%{opacity:0;-webkit-transform:scale3d(.25,.25,.25);transform:scale3d(.25,.25,.25)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes ajs-zoomIn{0%{opacity:0;-webkit-transform:scale3d(.25,.25,.25);transform:scale3d(.25,.25,.25)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@-webkit-keyframes ajs-zoomOut{0%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}100%{opacity:0;-webkit-transform:scale3d(.25,.25,.25);transform:scale3d(.25,.25,.25)}}@keyframes ajs-zoomOut{0%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}100%{opacity:0;-webkit-transform:scale3d(.25,.25,.25);transform:scale3d(.25,.25,.25)}}@-webkit-keyframes ajs-fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes ajs-fadeIn{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes ajs-fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes ajs-fadeOut{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes ajs-flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes ajs-flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@-webkit-keyframes ajs-flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@keyframes ajs-flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@-webkit-keyframes ajs-flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes ajs-flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@-webkit-keyframes ajs-flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@keyframes ajs-flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@-webkit-keyframes ajs-slideIn{0%{margin-top:-100%}100%{margin-top:5%}}@keyframes ajs-slideIn{0%{margin-top:-100%}100%{margin-top:5%}}@-webkit-keyframes ajs-slideOut{0%{margin-top:5%}100%{margin-top:-100%}}@keyframes ajs-slideOut{0%{margin-top:5%}100%{margin-top:-100%}}.alertify-notifier{position:fixed;width:0;overflow:visible;z-index:1982;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.alertify-notifier .ajs-message{position:relative;width:220px;max-height:0;padding:0;opacity:0;margin:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition-duration:250ms;transition-duration:250ms;-webkit-transition-timing-function:linear;transition-timing-function:linear}.alertify-notifier .ajs-message.ajs-visible{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.275);transition-timing-function:cubic-bezier(.175,.885,.32,1.275);opacity:1;max-height:100%;padding:10px;margin-top:10px}.alertify-notifier .ajs-message.ajs-success{background:#2daf8b;color:#fff;border-radius:10px;text-align:center}.alertify-notifier .ajs-message.ajs-error{background:rgba(217,92,92,.95);color:#fff}.alertify-notifier .ajs-message.ajs-warning{background:rgba(252,248,215,.95);color:#fff}.alertify-notifier .ajs-message .ajs-close{position:absolute;top:0;right:0;width:16px;height:16px;cursor:pointer;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAABGdBTUEAALGPC/xhBQAAAFBJREFUGBl1j0EKADEIA+ve/P9f9bh1hEihNBfjVCO1v7RKVqJK4h8gM5cAPR42AkQEpSXPwMTyoi13n5N9YqJehm3Fnr7nL1D0ZEbD5OubGyC7a9gx+9eNAAAAAElFTkSuQmCC);background-repeat:no-repeat;background-position:center center;background-color:rgba(0,0,0,.5);border-top-right-radius:2px}.alertify-notifier.ajs-top{top:10px}.alertify-notifier.ajs-bottom{bottom:10px}.alertify-notifier.ajs-right{right:10px}.alertify-notifier.ajs-right .ajs-message{right:-320px}.alertify-notifier.ajs-right .ajs-message.ajs-visible{right:290px}.alertify-notifier.ajs-left{left:10px}.alertify-notifier.ajs-left .ajs-message{left:-300px}.alertify-notifier.ajs-left .ajs-message.ajs-visible{left:0}.alertify-notifier.ajs-center{left:50%}.alertify-notifier.ajs-center .ajs-message{-webkit-transform:translateX(-50%);transform:translateX(-50%)}.alertify-notifier.ajs-center .ajs-message.ajs-visible{left:50%;-webkit-transition-timing-function:cubic-bezier(.57,.43,.1,.65);transition-timing-function:cubic-bezier(.57,.43,.1,.65)}.alertify-notifier.ajs-center.ajs-top .ajs-message{top:-300px}.alertify-notifier.ajs-center.ajs-top .ajs-message.ajs-visible{top:0}.alertify-notifier.ajs-center.ajs-bottom .ajs-message{bottom:-300px}.alertify-notifier.ajs-center.ajs-bottom .ajs-message.ajs-visible{bottom:0}.ajs-no-transition.alertify .ajs-dialog,.ajs-no-transition.alertify .ajs-dimmer,.ajs-no-transition.alertify .ajs-modal{-webkit-transition:none!important;transition:none!important;-webkit-animation:none!important;animation:none!important}.ajs-no-transition.alertify-notifier .ajs-message{-webkit-transition:none!important;transition:none!important;-webkit-animation:none!important;animation:none!important}@media(prefers-reduced-motion:reduce){.alertify .ajs-dialog,.alertify .ajs-dimmer,.alertify .ajs-modal{-webkit-transition:none!important;transition:none!important;-webkit-animation:none!important;animation:none!important}.alertify-notifier .ajs-message{-webkit-transition:none!important;transition:none!important;-webkit-animation:none!important;animation:none!important}}
--------------------------------------------------------------------------------
/data/articles.yml:
--------------------------------------------------------------------------------
1 | - icon: fas fa-list
2 | list:
3 | - links:
4 | - author: 冷月不是程序员
5 | release_time: 2025.12.23 00:38:13
6 | title: 想入行网络爬虫到底要学什么?一个视频告诉你
7 | url: https://www.bilibili.com/video/BV15DBxBZEP2
8 | - author: 时一十一姐呀
9 | release_time: 2025.12.22 09:07:07
10 | title: 阿里10+数据相关岗位热招感兴趣的可以看看~
11 | url: https://www.bilibili.com/video/BV1uRBHBzE6R
12 | - author: 带带弟弟学爬虫
13 | release_time: 2025.12.21 15:48:25
14 | title: 安卓flutter--xx一番赏 (更新)
15 | url: https://www.bilibili.com/video/BV16bqmBbELR
16 | - author: 陈不不and挽风的逆向
17 | release_time: 2025.12.19 22:32:21
18 | title: wasm-vmp二进制加壳工具免费使用
19 | url: https://www.bilibili.com/video/BV1ywBFBvEsM
20 | - author: 陈不不and挽风的逆向
21 | release_time: 2025.12.19 22:13:45
22 | title: cyjsvmp在线版大更新
23 | url: https://www.bilibili.com/video/BV18YBFB5E3d
24 | - author: 时一十一姐呀
25 | release_time: 2025.12.19 08:30:13
26 | title: p2-Easy Scraper插件单页列表抓取
27 | url: https://www.bilibili.com/video/BV1UmqRBbEt4
28 | - author: 时一十一姐呀
29 | release_time: 2025.12.19 08:26:16
30 | title: p3-Easy Scraper插件翻页列表抓取
31 | url: https://www.bilibili.com/video/BV1umqRB8Eq2
32 | - author: 时一十一姐呀
33 | release_time: 2025.12.19 08:26:11
34 | title: p4-Easy Scraper详情抓取
35 | url: https://www.bilibili.com/video/BV1UmqRBbE7P
36 | - author: 时一十一姐呀
37 | release_time: 2025.12.19 08:17:38
38 | title: p1-Easy Scraper爬虫插件安装
39 | url: https://www.bilibili.com/video/BV1DyqRBhEMm
40 | - author: B站用户骚神
41 | release_time: 2025.12.18 13:17:04
42 | title: 【DrissionPage专用绿色开发版谷歌浏览器】下载程序(开源)
43 | url: https://www.bilibili.com/video/BV1bsqHBKEnZ
44 | - author: 和沐阳学逆向
45 | release_time: 2025.12.16 17:11:29
46 | title: 66.解放双手!用 AutoGLM 在 iPhone 上实现 AI 自动操控
47 | url: https://www.bilibili.com/video/BV1gEqhBwE67
48 | - author: B站用户骚神
49 | release_time: 2025.12.16 15:46:22
50 | title: 【骚神插件】v9.7.7 新增万能元素定位,DrissionPage、PlayWright、Selenium、JS通杀!
51 | url: https://www.bilibili.com/video/BV1PVqaBsEhg
52 | - author: B站用户骚神
53 | release_time: 2025.12.16 15:02:04
54 | title: 【DrissionPage小技巧】-海象运算符简化元素查找逻辑
55 | url: https://www.bilibili.com/video/BV1TKqaBFErD
56 | - author: 和沐阳学逆向
57 | release_time: 2025.12.13 19:56:13
58 | title: 65.Open-AutoGLM 快速上手:一句指令实现 APP 自动化操作
59 | url: https://www.bilibili.com/video/BV1qGmdBBEQm
60 | - author: Alone逆向安全
61 | release_time: 2025.12.13 12:14:04
62 | title: 安卓逆向-某黑盒app逆向 hkey纯算7位(ttd离线分析)
63 | url: https://www.bilibili.com/video/BV1sYmQBBEjk
64 | - author: 悦来客栈的老板
65 | release_time: 2025.12.10 10:24:29
66 | title: 手把手教你还原ob混淆(三)
67 | url: https://www.bilibili.com/video/BV11AmxBAEVL
68 | - author: B站用户骚神
69 | release_time: 2025.12.09 14:43:10
70 | title: 【DrissionPageMCP】让AI自动帮你写爬虫代码!!
71 | url: https://www.bilibili.com/video/BV1Q42QBUEm7
72 | - author: 悦来客栈的老板
73 | release_time: 2025.12.09 10:11:47
74 | title: 手把手教你还原ob混淆(二)
75 | url: https://www.bilibili.com/video/BV1nm2SB4Euj
76 | - author: 若水0014
77 | release_time: 2025.12.05 18:40:06
78 | title: C++虚函数和多态的自制替代方案fast_interface
79 | url: https://www.bilibili.com/video/BV1mD25BqE3w
80 | - author: 悦来客栈的老板
81 | release_time: 2025.12.05 16:47:15
82 | title: 手把手教你还原ob混淆(一)
83 | url: https://www.bilibili.com/video/BV1Yc2jBSEJV
84 | - author: r0ysue
85 | release_time: 2025.12.04 21:37:51
86 | title: 黑产工具案例:直播推流 + 虚拟摄像头 + 多开分身 + 改机指纹
87 | url: https://www.bilibili.com/video/BV19f2iBrEoG
88 | - author: 漠染千舟
89 | release_time: 2025.12.03 02:01:50
90 | title: win11文件名bug
91 | url: https://www.bilibili.com/video/BV1NNSbBjEXD
92 | - author: 漠染千舟
93 | release_time: 2025.12.03 02:01:29
94 | title: 击溃vm2源码解读
95 | url: https://www.bilibili.com/video/BV15mStBZEu8
96 | - author: 漠染千舟
97 | release_time: 2025.12.03 01:55:28
98 | title: js代理对象的全面检测
99 | url: https://www.bilibili.com/video/BV1VSStB4En6
100 | - author: 逆向狗都不学
101 | release_time: 2025.12.02 18:13:11
102 | title: 本地AST还原Akamai混淆代码
103 | url: https://www.bilibili.com/video/BV13xSsBjE3S
104 | - author: 小肩膀-逆向安全培训
105 | release_time: 2025.11.29 17:20:45
106 | title: 01.现代C++讲解目标
107 | url: https://www.bilibili.com/video/BV1vGUZBgEeB
108 | - author: 小肩膀-逆向安全培训
109 | release_time: 2025.11.29 17:08:45
110 | title: 魔改浏览器过CDP机器人检测演示
111 | url: https://www.bilibili.com/video/BV1woUoBHEvW
112 | - author: 小肩膀-逆向安全培训
113 | release_time: 2025.11.29 17:08:24
114 | title: chromium浏览器开发mojo多进程通信介绍
115 | url: https://www.bilibili.com/video/BV1woUoBHE93
116 | - author: 小肩膀-逆向安全培训
117 | release_time: 2025.11.29 17:05:35
118 | title: 浏览器内核定制系列大课教程介绍
119 | url: https://www.bilibili.com/video/BV1AoUoBHEV5
120 | - author: 小肩膀-逆向安全培训
121 | release_time: 2025.11.29 16:58:27
122 | title: 01.safari内核编译虚拟机配置
123 | url: https://www.bilibili.com/video/BV1BAUZBjESw
124 | logo: images/logo/bilibili_32x32.png
125 | term: 哔哩哔哩
126 | - links:
127 | - author: 个人信息与数据保护实务评论
128 | release_time: 2025.12.25 16:27:30
129 | title: 国家市场监管总局、国家网信办联合发布:关于变更个人信息出境认证依据标准的公告
130 | url: https://mp.weixin.qq.com/s?__biz=MzI1ODY3NDk2Nw==&mid=2247519825&idx=1&sn=b1526997b48512184756300e39f33eaa
131 | - author: 个人信息与数据保护实务评论
132 | release_time: 2025.12.25 16:27:30
133 | title: 网安协会发布2025年第6批完成个人信息收集使用优化改进的App清单
134 | url: https://mp.weixin.qq.com/s?__biz=MzI1ODY3NDk2Nw==&mid=2247519825&idx=2&sn=4cda9b47f106c1bfc5378f4ff8fbe10a
135 | - author: 布鲁的Python之旅
136 | release_time: 2025.12.25 16:24:02
137 | title: Python+PyQt5开发的英雄联盟的数据分析及预测的GUI系统
138 | url: https://mp.weixin.qq.com/s?__biz=MzkwMDY3OTg0Mw==&mid=2247486270&idx=1&sn=96cfc671ed10d0b47a6e4a28a1024a30
139 | - author: 奋飞安全
140 | release_time: 2025.12.25 15:58:46
141 | title: 不让我用?这个真不能忍 - 某视频App强制启动
142 | url: https://mp.weixin.qq.com/s?__biz=MzI4NzMwNDI3OQ==&mid=2247485043&idx=1&sn=3c741b6dad1c52027eb62013f112f3fd
143 | - author: 逆向有你
144 | release_time: 2025.12.25 15:10:57
145 | title: JS逆向 -- 某省过验证码逆向
146 | url: https://mp.weixin.qq.com/s?__biz=MzA4MzgzNTU5MA==&mid=2652041035&idx=1&sn=567898bcd91ceaac66ee3c5d825347b0
147 | - author: 哆啦安全
148 | release_time: 2025.12.25 15:05:57
149 | title: APK安全加固平台V5.2
150 | url: https://mp.weixin.qq.com/s?__biz=Mzg2NzUzNzk1Mw==&mid=2247499425&idx=1&sn=f92ff3d7add367c335b2164d2408912a
151 | - author: 将往的爬虫逆向日记
152 | release_time: 2025.12.25 11:30:00
153 | title: AST从入门到入土:简单的控制流平坦化
154 | url: https://mp.weixin.qq.com/s?__biz=MzI1MjE1NjIyMw==&mid=2650862143&idx=1&sn=42ec5faad49b96e4acfeded716a4e677
155 | - author: 爬虫逆向小林哥
156 | release_time: 2025.12.25 09:00:00
157 | title: 【网页逆向】xhs-x-s-c-b1参数纯算分析
158 | url: https://mp.weixin.qq.com/s?__biz=MzU4MDY4ODU2MA==&mid=2247486963&idx=1&sn=7d2aaf8b325dfecc92d418f9b24e094c
159 | - author: 未闻Code
160 | release_time: 2025.12.24 21:00:00
161 | title: 我零基础,自学了AI应用开发
162 | url: https://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ==&mid=2648991321&idx=1&sn=9c0eca99394d49b02b77f307782a88f0
163 | - author: 無色逆向
164 | release_time: 2025.12.24 09:47:45
165 | title: 腾讯滑块验证码vmp逆向分析-算法篇
166 | url: https://mp.weixin.qq.com/s?__biz=Mzg5MjYyNTgxMQ==&mid=2247484445&idx=1&sn=76112ce639e75b46453db286ea5ee388
167 | - author: 未闻Code
168 | release_time: 2025.12.23 21:06:00
169 | title: 一日一技:忘记 Celery,拥抱 arq
170 | url: https://mp.weixin.qq.com/s?__biz=MzI2MzEwNTY3OQ==&mid=2648991320&idx=1&sn=d5bfc3b36868f4e97173b8fc8f33fc5d
171 | - author: 虫迹追踪
172 | release_time: 2025.12.23 20:35:18
173 | title: js逆向-某公共资源交易服务平台加密分析
174 | url: https://mp.weixin.qq.com/s?__biz=Mzg4NDU2MTYwMQ==&mid=2247485223&idx=1&sn=63c76698ce07a9c4c8780f8c99b28802
175 | - author: 冰敷逆向笔记
176 | release_time: 2025.12.23 18:09:36
177 | title: 使用AST还原字面量混淆的【公式化解法】
178 | url: https://mp.weixin.qq.com/s?__biz=MzI0NDg0ODE1MQ==&mid=2247483861&idx=1&sn=6d585905232932bcf6ecbc4ff22c23c7
179 | - author: 布鲁的Python之旅
180 | release_time: 2025.12.23 17:15:01
181 | title: 【Web开发-03】Python运动员伤病风险预测系统
182 | url: https://mp.weixin.qq.com/s?__biz=MzkwMDY3OTg0Mw==&mid=2247486257&idx=1&sn=1782631109812dbcb8a7d27e20dba16d
183 | - author: 个人信息与数据保护实务评论
184 | release_time: 2025.12.23 16:14:53
185 | title: 中汽协:重庆长安等9家车企43款车型汽车数据处理5项安全要求
186 | url: https://mp.weixin.qq.com/s?__biz=MzI1ODY3NDk2Nw==&mid=2247519822&idx=1&sn=dfaad03cbf0fc973e1e4a04e54f746b8
187 | - author: 极验
188 | release_time: 2025.12.23 15:58:43
189 | title: 快手 P0 级事故:“内容审核”已死,“前置拦截”当立
190 | url: https://mp.weixin.qq.com/s?__biz=MzI2MDE5MTQxNg==&mid=2649724085&idx=1&sn=83de27cbd0d1765825f05c1469944c53
191 | - author: 小白技术社
192 | release_time: 2025.12.23 12:00:00
193 | title: 重生之我用AI写APatch的FRP模块
194 | url: https://mp.weixin.qq.com/s?__biz=MzI4NTE1NDMwMA==&mid=2247485318&idx=1&sn=8186e099677b09fa85eb33d8cb32eb15
195 | - author: 無色逆向
196 | release_time: 2025.12.23 10:17:10
197 | title: 腾讯滑块验证码vmp逆向分析-补环境篇
198 | url: https://mp.weixin.qq.com/s?__biz=Mzg5MjYyNTgxMQ==&mid=2247484407&idx=1&sn=d17bd5edc46b5e973103e3ded2c81c47
199 | - author: 小小杨学编程
200 | release_time: 2025.12.22 21:24:00
201 | title: 某商城小程序JSVMP纯算分析
202 | url: https://mp.weixin.qq.com/s?__biz=MzkxNzcwMzIyMw==&mid=2247484665&idx=1&sn=e648c089a603b32590cb5efde2093708
203 | - author: 静夜随想
204 | release_time: 2025.12.22 20:39:21
205 | title: 一个非常好用的自动化参数
206 | url: https://mp.weixin.qq.com/s?__biz=MjM5Njg2MDY0OQ==&mid=2652811203&idx=1&sn=5f65ce0d405d1c5bbe204f168772039c
207 | - author: 布鲁的Python之旅
208 | release_time: 2025.12.22 15:00:01
209 | title: 【Web开发-02】Python构建豆瓣电影推荐系统
210 | url: https://mp.weixin.qq.com/s?__biz=MzkwMDY3OTg0Mw==&mid=2247486248&idx=1&sn=6545e6e0627de29508c00efdfa07b24a
211 | - author: 逆向有你
212 | release_time: 2025.12.22 10:25:44
213 | title: 安卓逆向 -- 【解密实战】简单的图片加密分析
214 | url: https://mp.weixin.qq.com/s?__biz=MzA4MzgzNTU5MA==&mid=2652040983&idx=1&sn=6925d185a0b882055a9e36acaef1d5f2
215 | - author: 逆向OneByOne
216 | release_time: 2025.12.22 09:00:00
217 | title: 阿里有10+数据相关岗位热招快来快来
218 | url: https://mp.weixin.qq.com/s?__biz=MzU5NTcyMDc1Ng==&mid=2247494122&idx=1&sn=55b5e1c878486902273f1ec9f3c6a3ed
219 | - author: 二进制磨剑
220 | release_time: 2025.12.22 09:00:00
221 | title: BinLab | 免费 | LLVM 动手写编译器
222 | url: https://mp.weixin.qq.com/s?__biz=MzI1Mjk2MTM1OQ==&mid=2247485846&idx=1&sn=4e87f373f71706be1caf3f05d6523535
223 | - author: 虫迹追踪
224 | release_time: 2025.12.21 12:19:03
225 | title: js逆向-手把手教你扣代码
226 | url: https://mp.weixin.qq.com/s?__biz=Mzg4NDU2MTYwMQ==&mid=2247485201&idx=1&sn=65c23e7761571fa3354a461d357770c6
227 | - author: 哆啦安全
228 | release_time: 2025.12.20 10:36:32
229 | title: Unity手游无Root注入工具
230 | url: https://mp.weixin.qq.com/s?__biz=Mzg2NzUzNzk1Mw==&mid=2247499408&idx=1&sn=5260012899e6425667e8d24a354dd9d7
231 | - author: 布鲁的Python之旅
232 | release_time: 2025.12.19 14:36:08
233 | title: 【Web开发-01】Python构建心衰预测系统
234 | url: https://mp.weixin.qq.com/s?__biz=MzkwMDY3OTg0Mw==&mid=2247486235&idx=1&sn=810814552bd77ac923b2ca77e100e362
235 | - author: 奋飞安全
236 | release_time: 2025.12.19 14:25:56
237 | title: 给你的Ida插上翅膀
238 | url: https://mp.weixin.qq.com/s?__biz=MzI4NzMwNDI3OQ==&mid=2247485015&idx=1&sn=956e5bba1ad3b789c221e97b45b12e0e
239 | - author: Python成长路
240 | release_time: 2025.12.19 08:42:35
241 | title: 学习逆向的一百多个公众号整理汇总
242 | url: https://mp.weixin.qq.com/s?__biz=MzU0OTkwODU2MA==&mid=2247485929&idx=1&sn=d9624defa4cb0879d236e1754e007122
243 | - author: 逆向OneByOne
244 | release_time: 2025.12.19 08:40:11
245 | title: Easy-Scraper爬虫插件
246 | url: https://mp.weixin.qq.com/s?__biz=MzU5NTcyMDc1Ng==&mid=2247494085&idx=1&sn=b4fabfbb75769f6f520134d60f844297
247 | logo: images/logo/mpweixin_32x32.png
248 | term: 公众号
249 | - links:
250 | - author: HackXK
251 | release_time: 2025.12.23 14:35:00
252 | title: '[iOS逆向] 一款外挂辅助的分析逆向'
253 | url: https://www.52pojie.cn/thread-2081862-1-1.html
254 | - author: gggqqqxxx
255 | release_time: 2025.12.23 12:16:00
256 | title: 某wx小游戏反编译逆向分析
257 | url: https://www.52pojie.cn/thread-2081826-1-1.html
258 | - author: 0xsdeo
259 | release_time: 2025.12.22 14:45:00
260 | title: Hook CryptoJS所有对称加密算法
261 | url: https://www.52pojie.cn/thread-2081618-1-1.html
262 | - author: Dellevin
263 | release_time: 2025.12.21 22:46:00
264 | title: 宝塔面板去除专业版推广精简面板不必要功能
265 | url: https://www.52pojie.cn/thread-2081502-1-1.html
266 | - author: Milo1210
267 | release_time: 2025.12.20 00:56:00
268 | title: 安卓逆向实战:某 App 360脱壳、加密协议还原与请求伪造全记录(学习记录贴)
269 | url: https://www.52pojie.cn/thread-2081208-1-1.html
270 | - author: 220e285
271 | release_time: 2025.12.19 21:50:00
272 | title: 安卓逆向新手关于某运动健康app的脱壳修复(未完成)
273 | url: https://www.52pojie.cn/thread-2081184-1-1.html
274 | - author: 中二
275 | release_time: 2025.12.17 21:22:00
276 | title: Tbooking验证码逆向分析
277 | url: https://www.52pojie.cn/thread-2080682-1-1.html
278 | - author: Nulsec
279 | release_time: 2025.12.16 22:27:00
280 | title: 某短视频指纹和纯算 sig3 逆向分析
281 | url: https://www.52pojie.cn/thread-2080428-1-1.html
282 | - author: HackXK
283 | release_time: 2025.12.12 11:01:00
284 | title: 分析“安装巨魔”验证逆向
285 | url: https://www.52pojie.cn/thread-2079431-1-1.html
286 | - author: HackXK
287 | release_time: 2025.12.11 22:05:00
288 | title: iOS应用逆向攻防实战-雅俗共赏
289 | url: https://www.52pojie.cn/thread-2079337-1-1.html
290 | - author: jackp0t
291 | release_time: 2025.12.11 10:23:00
292 | title: frida检测对抗————libmsaoaidsec.so绕过
293 | url: https://www.52pojie.cn/thread-2079166-1-1.html
294 | - author: HackXK
295 | release_time: 2025.12.10 23:24:00
296 | title: iOS微信自定义头像插件逆向分析与破解
297 | url: https://www.52pojie.cn/thread-2079083-1-1.html
298 | - author: '15028352577'
299 | release_time: 2025.12.10 21:52:00
300 | title: 某qMusicSign参数vmp逆向分析
301 | url: https://www.52pojie.cn/thread-2079071-1-1.html
302 | - author: buluo533
303 | release_time: 2025.12.10 21:13:00
304 | title: AST自动插桩jsvmp的简单实现
305 | url: https://www.52pojie.cn/thread-2079058-1-1.html
306 | - author: 嘟嘟ЯR
307 | release_time: 2025.12.09 19:36:00
308 | title: 分享lb投屏,免更新的不完美修改方法
309 | url: https://www.52pojie.cn/thread-2078788-1-1.html
310 | - author: emart
311 | release_time: 2025.12.09 15:59:00
312 | title: 某考勤终端摄像头虚拟化方案分享
313 | url: https://www.52pojie.cn/thread-2078733-1-1.html
314 | - author: 审判者压缩
315 | release_time: 2025.12.08 21:25:00
316 | title: '[原创]AI时代免费工具:用通义灵码和MCP工具构建逆向分析工作流'
317 | url: https://www.52pojie.cn/thread-2078564-1-1.html
318 | - author: xiayutianz
319 | release_time: 2025.12.06 16:24:00
320 | title: 某应用AntiToken算法分析
321 | url: https://www.52pojie.cn/thread-2078117-1-1.html
322 | - author: zcg9783
323 | release_time: 2025.12.06 13:18:00
324 | title: 记一次去除某设备的各种限制
325 | url: https://www.52pojie.cn/thread-2078087-1-1.html
326 | - author: luliucheng
327 | release_time: 2025.12.05 23:24:00
328 | title: '[全网首发但已失效] 123 盘提取带中文提取码的文件'
329 | url: https://www.52pojie.cn/thread-2078001-1-1.html
330 | - author: yixiua
331 | release_time: 2025.12.03 15:16:00
332 | title: 某对frida检测
333 | url: https://www.52pojie.cn/thread-2077394-1-1.html
334 | - author: 220e285
335 | release_time: 2025.12.03 00:31:00
336 | title: 关于安卓逆向的学习日记------(二)
337 | url: https://www.52pojie.cn/thread-2077262-1-1.html
338 | - author: hy256
339 | release_time: 2025.11.30 21:01:00
340 | title: SpiderDemo T3 protobuf混淆解析挑战题解
341 | url: https://www.52pojie.cn/thread-2076729-1-1.html
342 | - author: bananashipsBBQ
343 | release_time: 2025.11.29 15:18:00
344 | title: 对某移动安全sdk的深入探究
345 | url: https://www.52pojie.cn/thread-2076506-1-1.html
346 | - author: Barih
347 | release_time: 2025.11.28 20:57:00
348 | title: 某DB去开屏广告+本地vip(ProxyPin重写)
349 | url: https://www.52pojie.cn/thread-2076382-1-1.html
350 | - author: tuhouni
351 | release_time: 2025.11.28 15:29:00
352 | title: 极验滑块第4代逆向分析
353 | url: https://www.52pojie.cn/thread-2076316-1-1.html
354 | - author: mysticz
355 | release_time: 2025.11.27 12:36:00
356 | title: Python爬虫进阶:spiderdemo困难题JSVMP-T6题解
357 | url: https://www.52pojie.cn/thread-2076005-1-1.html
358 | - author: philia114514
359 | release_time: 2025.11.26 22:10:00
360 | title: 一简单app绕检测
361 | url: https://www.52pojie.cn/thread-2075901-1-1.html
362 | - author: jianchi
363 | release_time: 2025.11.26 18:49:00
364 | title: 新人偶然逛到坛友的网页,顺便解一个加密练手
365 | url: https://www.52pojie.cn/thread-2075870-1-1.html
366 | - author: cqy666
367 | release_time: 2025.11.24 18:24:00
368 | title: 一键启动CeServer或Frida服务整合root版
369 | url: https://www.52pojie.cn/thread-2075344-1-1.html
370 | logo: images/logo/52pojie_32x32.png
371 | term: 吾爱破解
372 | - links:
373 | - author: 狗都不学爬虫_
374 | release_time: 2025.12.25 13:45:11
375 | title: JS逆向 - 某程 w-payload-source 纯算、补环境分析
376 | url: https://blog.csdn.net/qq_53444631/article/details/156267650
377 | - author: 溏心蛋*
378 | release_time: 2025.12.24 01:56:13
379 | title: 某验全家桶分析,秒了~
380 | url: https://blog.csdn.net/L1416279170/article/details/156206606
381 | - author: 用户aWuR48joYy
382 | release_time: 2025.12.23 19:32:00
383 | title: 某某校园 App 协议与逆向分析
384 | url: https://xz.aliyun.com/news/90938
385 | - author: 逐影安全
386 | release_time: 2025.12.23 10:41:00
387 | title: 【原创解决方案附工具】Pixel 全链路渗透测试环境构建附原创工具
388 | url: https://xz.aliyun.com/news/90929
389 | - author: 逆向新手
390 | release_time: 2025.12.21 12:21:18
391 | title: js逆向-手把手教你扣代码
392 | url: https://blog.csdn.net/weixin_46672080/article/details/156127504
393 | - author: xiusi
394 | release_time: 2025.12.19 20:31:16
395 | title: '[原创]深入浅出 Unicorn 框架学习'
396 | url: https://bbs.kanxue.com/thread-289502.htm
397 | - author: Python成长路
398 | release_time: 2025.12.19 16:50:41
399 | title: 学习逆向的一百多个公众号整理汇总
400 | url: https://blog.csdn.net/Qwertyuiop2016/article/details/156059133
401 | - author: bcloud
402 | release_time: 2025.12.19 15:06:00
403 | title: 某App渗透测试实战:从信息泄漏到OSS凭据暴露的多维度漏洞分析
404 | url: https://xz.aliyun.com/news/90901
405 | - author: αβγδεξπ
406 | release_time: 2025.12.18 19:35:17
407 | title: '[原创] ιldb 脚本 —— 你才叫 lldb,我叫 "约塔 ldb"'
408 | url: https://bbs.kanxue.com/thread-289492.htm
409 | - author: 逆向新手
410 | release_time: 2025.12.18 18:05:23
411 | title: js逆向-某省特种设备aes加密研究
412 | url: https://blog.csdn.net/weixin_46672080/article/details/156060574
413 | - author: wangYи
414 | release_time: 2025.12.18 17:43:13
415 | title: 某东APP端sslpning抓包+ep,cipher,sign等魔改算法+so层解析
416 | url: https://blog.csdn.net/weixin_59616601/article/details/151115908
417 | - author: yumeiko
418 | release_time: 2025.12.18 13:22:04
419 | title: '[原创]某东登录中的安全验证码分析'
420 | url: https://bbs.kanxue.com/thread-289491.htm
421 | - author: 鬼手56
422 | release_time: 2025.12.18 11:59:12
423 | title: 告别黑盒 Agent:用多 Agent 与半 Agent 思路,落地 hatchify 与 Claude Agent Skills
424 | url: https://guishou.blog.csdn.net/article/details/156015302
425 | - author: 悦来客栈的老板
426 | release_time: 2025.12.18 10:12:42
427 | title: AST反混淆插件|去控制流前if语句转三目表达式
428 | url: https://blog.csdn.net/qq523176585/article/details/156089785
429 | - author: 人九
430 | release_time: 2025.12.18 00:23:05
431 | title: '[原创] 某强祖师 手游 逆向 分析'
432 | url: https://bbs.kanxue.com/thread-289489.htm
433 | - author: 用户vlhq4llSzI
434 | release_time: 2025.12.17 21:52:00
435 | title: 基于Frida的OLLVM混淆代码动态分析技术研究
436 | url: https://xz.aliyun.com/news/90884
437 | - author: 悦来客栈的老板
438 | release_time: 2025.12.17 21:04:24
439 | title: AST反混淆插件|去控制流前对运算符的简化操作
440 | url: https://blog.csdn.net/qq523176585/article/details/156030755
441 | - author: H1m
442 | release_time: 2025.12.17 16:43:27
443 | title: FRIDA2
444 | url: https://bbs.kanxue.com/thread-289488.htm
445 | - author: 爱喝水的木子
446 | release_time: 2025.12.17 16:40:58
447 | title: MiMo-V2-Flash
448 | url: https://blog.csdn.net/Linux_rm_rf_/article/details/156021661
449 | - author: H1m
450 | release_time: 2025.12.17 16:39:27
451 | title: '[原创]安卓FRIDA'
452 | url: https://bbs.kanxue.com/thread-289487.htm
453 | - author: s1nec-1o
454 | release_time: 2025.12.16 17:22:23
455 | title: '[原创]手把手还原 sig3 算法'
456 | url: https://bbs.kanxue.com/thread-289476.htm
457 | - author: 悦来客栈的老板
458 | release_time: 2025.12.16 16:19:01
459 | title: 拿到Photoshop的源码了,发现两个意想不到的秘密......
460 | url: https://blog.csdn.net/qq523176585/article/details/155994128
461 | - author: younghare
462 | release_time: 2025.12.15 11:13:00
463 | title: '[原创]个人微信、企业微信先后通过好友请求'
464 | url: https://bbs.kanxue.com/thread-289462.htm
465 | - author: dreameriii
466 | release_time: 2025.12.14 14:13:00
467 | title: '[原创][推荐][原创]用奥卡姆剃刀解决 ollvm 间接跳转和函数调用'
468 | url: https://bbs.kanxue.com/thread-289439.htm
469 | - author: mb_nkjfyhkg
470 | release_time: 2025.12.12 17:32:04
471 | title: '[原创]Kernel Patch Ultra(BTF特性分支)'
472 | url: https://bbs.kanxue.com/thread-289419.htm
473 | - author: xiusi
474 | release_time: 2025.12.12 17:15:59
475 | title: '[分享]Ollvm 指令替换混淆还原神器:GAMBA 使用指南'
476 | url: https://bbs.kanxue.com/thread-289418.htm
477 | - author: 狗都不学爬虫_
478 | release_time: 2025.12.12 16:43:20
479 | title: 小程序逆向 - PPMT(black_box、td_sign、x-sign参数)纯算
480 | url: https://blog.csdn.net/qq_53444631/article/details/155857844
481 | - author: 悦来客栈的老板
482 | release_time: 2025.12.11 20:05:31
483 | title: AST反混淆技术:从混乱代码到清晰逻辑的解码之道
484 | url: https://blog.csdn.net/qq523176585/article/details/155958334
485 | - author: A0tem
486 | release_time: 2025.12.11 17:37:55
487 | title: '[原创]学习通风控参数分析&Frida绕过(下)'
488 | url: https://bbs.kanxue.com/thread-289405.htm
489 | - author: A0tem
490 | release_time: 2025.12.11 16:32:50
491 | title: '[原创]学某通风控参数分析&Frida绕过(上)'
492 | url: https://bbs.kanxue.com/thread-289404.htm
493 | logo: images/logo/kanxue_32x32.png
494 | term: 看雪论坛/先知社区/CSDN等
495 | taxonomy: 最新文章/视频
496 |
--------------------------------------------------------------------------------
/themes/webstack/assets/css/custom-style.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: "OxaniumRegular";
3 | src: url("https://static.wukongsec.com/public/fonts/OxaniumRegular-Lite-222.woff2");
4 | }
5 |
6 | @font-face {
7 | font-family: "DingTalk-JinBuTi";
8 | src: url("https://static.wukongsec.com/public/fonts/DingTalk-JinBuTi-Lite-3000.woff2");
9 | }
10 |
11 | /* 自定义鼠标指针样式 */
12 | * {
13 | cursor: url("https://static.wukongsec.com/spiderbox/images/mouse/pointer.cur"), auto;
14 | }
15 |
16 | div {
17 | cursor: url("https://static.wukongsec.com/spiderbox/images/mouse/default.cur"), auto;
18 | }
19 |
20 | input {
21 | cursor: text;
22 | }
23 |
24 | /* 调整全局字体大小 */
25 | body,
26 | html {
27 | font-size: 15px;
28 | }
29 |
30 | h4 {
31 | font-weight: bolder;
32 | }
33 |
34 | /* 左导航悬浮 sidebar-menu-inner 宽度调整为 90px */
35 | .sidebar-popup.sidebar-menu-inner > div > ul > li.sidebar-item > ul {
36 | position: absolute;
37 | top: 0;
38 | left: 10px;
39 | width: 90px;
40 | z-index: 99
41 | }
42 |
43 | .sidebar-popup.sidebar-menu-inner ul {
44 | width: 90px
45 | }
46 |
47 | .sidebar-popup.sidebar-menu-inner ul li {
48 | width: 90px
49 | }
50 |
51 | /* 搜索框搜索图标颜色 */
52 | .header-big #search button i {
53 | color: #666;
54 | font-size: 18px
55 | }
56 |
57 | /* 顶部导航栏字体+图标颜色 */
58 | .big-header-banner .page-header {
59 | color: #ffffff;
60 | background: rgba(255, 255, 255, 0);
61 | box-shadow: none;
62 | transition: color .3s, background-color .3s
63 | }
64 |
65 | .big-header-banner:not(.header-bg) .page-header .navbar-nav > li > a,
66 | .big-header-banner:not(.header-bg) .navbar-menu a:not(.dropdown-item) {
67 | color: #d4d4d4;
68 | }
69 |
70 | .big-header-banner:not(.header-bg) .page-header .navbar-nav > li > a:hover,
71 | .big-header-banner:not(.header-bg) .navbar-menu a:not(.dropdown-item):hover {
72 | /* color: #dc3545; */
73 | color: #ffffff;
74 | }
75 |
76 | .big-header-banner:not(.header-bg) .header-mini-btn path {
77 | stroke: #ffffff;
78 | }
79 |
80 | .big-header-banner:not(.header-bg) .header-mini-btn label:hover path {
81 | stroke: #ffffff;
82 | }
83 |
84 | /* 搜索栏字体+背景 */
85 | /* .header-big #search-text {
86 | color: #fff;
87 | } */
88 |
89 | .io-black-mode .header-big #search-text {
90 | color: #fff;
91 | }
92 |
93 | /* 搜索activate图标颜色 */
94 | .header-big .search-type input:checked + label:before {
95 | content: '';
96 | border-width: 8px 8px 0 8px;
97 | border-style: solid;
98 | border-color: #ffffff transparent transparent !important;
99 | position: absolute;
100 | left: 50%;
101 | top: 0;
102 | margin-left: -8px
103 | }
104 |
105 | /* 主页搜索搜索框(头+底部)字体颜色 */
106 | .header-big:not(.no-bg) .s-type-list {
107 | color: #fff
108 | }
109 |
110 | .header-big:not(.no-bg) .text-muted,
111 | .header-big:not(.no-bg) .search-type .menu-item a,
112 | .header-big:not(.no-bg) .big-title .h1 {
113 | color: #fff !important
114 | }
115 |
116 | /* 主页header-banner底部宽度 */
117 | .post-top {
118 | padding-bottom: 50px
119 | }
120 |
121 | /* 左导航二级导航标题左侧距离 */
122 | .sidebar-menu-inner ul li ul li a {
123 | margin-left: 30px;
124 | }
125 |
126 | /* 搜索部分背景样式 */
127 | .header-big.css-color {
128 | /* background-size: unset; */
129 | /* background-position: unset; */
130 | /* animation: unset; */
131 | /* background-size:400%; */
132 | /* background-position:0% 100%; */
133 | -webkit-animation: gradient 7.5s ease-in-out infinite;
134 | animation: gradient 7.5s ease-in-out infinite
135 | }
136 |
137 | /* 搜索热词样式调整 */
138 | .search-hot-text {
139 | position: absolute;
140 | z-index: 100;
141 | width: 100%;
142 | border-radius: 0 0 10px 10px;
143 | background: #FFF;
144 | box-shadow: 0 4px 5px 0 #cccccc94;
145 | overflow: hidden;
146 | }
147 |
148 | .search-hot-text ul {
149 | margin: 0;
150 | padding: 5px 0;
151 | }
152 |
153 | .search-hot-text ul li {
154 | line-height: 30px;
155 | font-size: 14px;
156 | padding: 0 25px;
157 | color: #777;
158 | cursor: pointer;
159 | }
160 |
161 | .io-black-mode .search-hot-text ul li {
162 | color: #fff;
163 | }
164 |
165 | .search-hot-text ul li.current {
166 | background: #f1f1f1;
167 | color: #2196f3;
168 | }
169 |
170 | .search-hot-text ul li:hover {
171 | background: #f1f1f1;
172 | color: #2196f3;
173 | cursor: pointer;
174 | }
175 |
176 | .search-hot-text ul li span {
177 | display: inline-block;
178 | width: 20px;
179 | height: 20px;
180 | font-size: 12px;
181 | line-height: 20px;
182 | text-align: center;
183 | background: #e5e5e5;
184 | margin-right: 10px;
185 | border-radius: 10px;
186 | color: #999;
187 | }
188 |
189 | footer.main-footer .footer-text {
190 | font-family: "OxaniumRegular", sans-serif;
191 | letter-spacing: 1px;
192 | text-align: center;
193 | }
194 |
195 | /* footer.main-footer .footer-text a {
196 | color: #007bff;
197 | } */
198 |
199 | footer.main-footer .footer-text a:hover {
200 | color: #007bff;
201 | }
202 |
203 | /* About页面 */
204 | .panel .panel-body a {
205 | color: #007bff;
206 | }
207 |
208 | .panel .panel-body a:hover {
209 | color: #979898;
210 | }
211 |
212 | /* 网格背景 */
213 | .io-grey-mode .page-container .grid-bg {
214 | /* background-image: linear-gradient(rgba(50, 0, 0, 0.05) 1px, transparent 0), linear-gradient(90deg, rgba(50, 0, 0, 0.05) 1px, transparent 0); */
215 | /* background-size: 15px 15px; */
216 | background-color: #eee;
217 | /* max-width: 100%; */
218 | /* min-height: 100vh; */
219 | /* margin: 0 auto; */
220 | /* background-color: rgba(76, 76, 76, 0) !important; */
221 | /* background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260' viewBox='0 0 260 260'%3E%3Cg fill-rule='evenodd'%3E%3Cg fill='%23000000' fill-opacity='0.06'%3E%3Cpath d='M24.37 16c.2.65.39 1.32.54 2H21.17l1.17 2.34.45.9-.24.11V28a5 5 0 0 1-2.23 8.94l-.02.06a8 8 0 0 1-7.75 6h-20a8 8 0 0 1-7.74-6l-.02-.06A5 5 0 0 1-17.45 28v-6.76l-.79-1.58-.44-.9.9-.44.63-.32H-20a23.01 23.01 0 0 1 44.37-2zm-36.82 2a1 1 0 0 0-.44.1l-3.1 1.56.89 1.79 1.31-.66a3 3 0 0 1 2.69 0l2.2 1.1a1 1 0 0 0 .9 0l2.21-1.1a3 3 0 0 1 2.69 0l2.2 1.1a1 1 0 0 0 .9 0l2.21-1.1a3 3 0 0 1 2.69 0l2.2 1.1a1 1 0 0 0 .86.02l2.88-1.27a3 3 0 0 1 2.43 0l2.88 1.27a1 1 0 0 0 .85-.02l3.1-1.55-.89-1.79-1.42.71a3 3 0 0 1-2.56.06l-2.77-1.23a1 1 0 0 0-.4-.09h-.01a1 1 0 0 0-.4.09l-2.78 1.23a3 3 0 0 1-2.56-.06l-2.3-1.15a1 1 0 0 0-.45-.11h-.01a1 1 0 0 0-.44.1L.9 19.22a3 3 0 0 1-2.69 0l-2.2-1.1a1 1 0 0 0-.45-.11h-.01a1 1 0 0 0-.44.1l-2.21 1.11a3 3 0 0 1-2.69 0l-2.2-1.1a1 1 0 0 0-.45-.11h-.01zm0-2h-4.9a21.01 21.01 0 0 1 39.61 0h-2.09l-.06-.13-.26.13h-32.31zm30.35 7.68l1.36-.68h1.3v2h-36v-1.15l.34-.17 1.36-.68h2.59l1.36.68a3 3 0 0 0 2.69 0l1.36-.68h2.59l1.36.68a3 3 0 0 0 2.69 0L2.26 23h2.59l1.36.68a3 3 0 0 0 2.56.06l1.67-.74h3.23l1.67.74a3 3 0 0 0 2.56-.06zM-13.82 27l16.37 4.91L18.93 27h-32.75zm-.63 2h.34l16.66 5 16.67-5h.33a3 3 0 1 1 0 6h-34a3 3 0 1 1 0-6zm1.35 8a6 6 0 0 0 5.65 4h20a6 6 0 0 0 5.66-4H-13.1z'/%3E%3Cpath id='path6_fill-copy' d='M284.37 16c.2.65.39 1.32.54 2H281.17l1.17 2.34.45.9-.24.11V28a5 5 0 0 1-2.23 8.94l-.02.06a8 8 0 0 1-7.75 6h-20a8 8 0 0 1-7.74-6l-.02-.06a5 5 0 0 1-2.24-8.94v-6.76l-.79-1.58-.44-.9.9-.44.63-.32H240a23.01 23.01 0 0 1 44.37-2zm-36.82 2a1 1 0 0 0-.44.1l-3.1 1.56.89 1.79 1.31-.66a3 3 0 0 1 2.69 0l2.2 1.1a1 1 0 0 0 .9 0l2.21-1.1a3 3 0 0 1 2.69 0l2.2 1.1a1 1 0 0 0 .9 0l2.21-1.1a3 3 0 0 1 2.69 0l2.2 1.1a1 1 0 0 0 .86.02l2.88-1.27a3 3 0 0 1 2.43 0l2.88 1.27a1 1 0 0 0 .85-.02l3.1-1.55-.89-1.79-1.42.71a3 3 0 0 1-2.56.06l-2.77-1.23a1 1 0 0 0-.4-.09h-.01a1 1 0 0 0-.4.09l-2.78 1.23a3 3 0 0 1-2.56-.06l-2.3-1.15a1 1 0 0 0-.45-.11h-.01a1 1 0 0 0-.44.1l-2.21 1.11a3 3 0 0 1-2.69 0l-2.2-1.1a1 1 0 0 0-.45-.11h-.01a1 1 0 0 0-.44.1l-2.21 1.11a3 3 0 0 1-2.69 0l-2.2-1.1a1 1 0 0 0-.45-.11h-.01zm0-2h-4.9a21.01 21.01 0 0 1 39.61 0h-2.09l-.06-.13-.26.13h-32.31zm30.35 7.68l1.36-.68h1.3v2h-36v-1.15l.34-.17 1.36-.68h2.59l1.36.68a3 3 0 0 0 2.69 0l1.36-.68h2.59l1.36.68a3 3 0 0 0 2.69 0l1.36-.68h2.59l1.36.68a3 3 0 0 0 2.56.06l1.67-.74h3.23l1.67.74a3 3 0 0 0 2.56-.06zM246.18 27l16.37 4.91L278.93 27h-32.75zm-.63 2h.34l16.66 5 16.67-5h.33a3 3 0 1 1 0 6h-34a3 3 0 1 1 0-6zm1.35 8a6 6 0 0 0 5.65 4h20a6 6 0 0 0 5.66-4H246.9z'/%3E%3Cpath d='M159.5 21.02A9 9 0 0 0 151 15h-42a9 9 0 0 0-8.5 6.02 6 6 0 0 0 .02 11.96A8.99 8.99 0 0 0 109 45h42a9 9 0 0 0 8.48-12.02 6 6 0 0 0 .02-11.96zM151 17h-42a7 7 0 0 0-6.33 4h54.66a7 7 0 0 0-6.33-4zm-9.34 26a8.98 8.98 0 0 0 3.34-7h-2a7 7 0 0 1-7 7h-4.34a8.98 8.98 0 0 0 3.34-7h-2a7 7 0 0 1-7 7h-4.34a8.98 8.98 0 0 0 3.34-7h-2a7 7 0 0 1-7 7h-7a7 7 0 1 1 0-14h42a7 7 0 1 1 0 14h-9.34zM109 27a9 9 0 0 0-7.48 4H101a4 4 0 1 1 0-8h58a4 4 0 0 1 0 8h-.52a9 9 0 0 0-7.48-4h-42z'/%3E%3Cpath d='M39 115a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm6-8a6 6 0 1 1-12 0 6 6 0 0 1 12 0zm-3-29v-2h8v-6H40a4 4 0 0 0-4 4v10H22l-1.33 4-.67 2h2.19L26 130h26l3.81-40H58l-.67-2L56 84H42v-6zm-4-4v10h2V74h8v-2h-8a2 2 0 0 0-2 2zm2 12h14.56l.67 2H22.77l.67-2H40zm13.8 4H24.2l3.62 38h22.36l3.62-38z'/%3E%3Cpath d='M129 92h-6v4h-6v4h-6v14h-3l.24 2 3.76 32h36l3.76-32 .24-2h-3v-14h-6v-4h-6v-4h-8zm18 22v-12h-4v4h3v8h1zm-3 0v-6h-4v6h4zm-6 6v-16h-4v19.17c1.6-.7 2.97-1.8 4-3.17zm-6 3.8V100h-4v23.8a10.04 10.04 0 0 0 4 0zm-6-.63V104h-4v16a10.04 10.04 0 0 0 4 3.17zm-6-9.17v-6h-4v6h4zm-6 0v-8h3v-4h-4v12h1zm27-12v-4h-4v4h3v4h1v-4zm-6 0v-8h-4v4h3v4h1zm-6-4v-4h-4v8h1v-4h3zm-6 4v-4h-4v8h1v-4h3zm7 24a12 12 0 0 0 11.83-10h7.92l-3.53 30h-32.44l-3.53-30h7.92A12 12 0 0 0 130 126z'/%3E%3Cpath d='M212 86v2h-4v-2h4zm4 0h-2v2h2v-2zm-20 0v.1a5 5 0 0 0-.56 9.65l.06.25 1.12 4.48a2 2 0 0 0 1.94 1.52h.01l7.02 24.55a2 2 0 0 0 1.92 1.45h4.98a2 2 0 0 0 1.92-1.45l7.02-24.55a2 2 0 0 0 1.95-1.52L224.5 96l.06-.25a5 5 0 0 0-.56-9.65V86a14 14 0 0 0-28 0zm4 0h6v2h-9a3 3 0 1 0 0 6H223a3 3 0 1 0 0-6H220v-2h2a12 12 0 1 0-24 0h2zm-1.44 14l-1-4h24.88l-1 4h-22.88zm8.95 26l-6.86-24h18.7l-6.86 24h-4.98zM150 242a22 22 0 1 0 0-44 22 22 0 0 0 0 44zm24-22a24 24 0 1 1-48 0 24 24 0 0 1 48 0zm-28.38 17.73l2.04-.87a6 6 0 0 1 4.68 0l2.04.87a2 2 0 0 0 2.5-.82l1.14-1.9a6 6 0 0 1 3.79-2.75l2.15-.5a2 2 0 0 0 1.54-2.12l-.19-2.2a6 6 0 0 1 1.45-4.46l1.45-1.67a2 2 0 0 0 0-2.62l-1.45-1.67a6 6 0 0 1-1.45-4.46l.2-2.2a2 2 0 0 0-1.55-2.13l-2.15-.5a6 6 0 0 1-3.8-2.75l-1.13-1.9a2 2 0 0 0-2.5-.8l-2.04.86a6 6 0 0 1-4.68 0l-2.04-.87a2 2 0 0 0-2.5.82l-1.14 1.9a6 6 0 0 1-3.79 2.75l-2.15.5a2 2 0 0 0-1.54 2.12l.19 2.2a6 6 0 0 1-1.45 4.46l-1.45 1.67a2 2 0 0 0 0 2.62l1.45 1.67a6 6 0 0 1 1.45 4.46l-.2 2.2a2 2 0 0 0 1.55 2.13l2.15.5a6 6 0 0 1 3.8 2.75l1.13 1.9a2 2 0 0 0 2.5.8zm2.82.97a4 4 0 0 1 3.12 0l2.04.87a4 4 0 0 0 4.99-1.62l1.14-1.9a4 4 0 0 1 2.53-1.84l2.15-.5a4 4 0 0 0 3.09-4.24l-.2-2.2a4 4 0 0 1 .97-2.98l1.45-1.67a4 4 0 0 0 0-5.24l-1.45-1.67a4 4 0 0 1-.97-2.97l.2-2.2a4 4 0 0 0-3.09-4.25l-2.15-.5a4 4 0 0 1-2.53-1.84l-1.14-1.9a4 4 0 0 0-5-1.62l-2.03.87a4 4 0 0 1-3.12 0l-2.04-.87a4 4 0 0 0-4.99 1.62l-1.14 1.9a4 4 0 0 1-2.53 1.84l-2.15.5a4 4 0 0 0-3.09 4.24l.2 2.2a4 4 0 0 1-.97 2.98l-1.45 1.67a4 4 0 0 0 0 5.24l1.45 1.67a4 4 0 0 1 .97 2.97l-.2 2.2a4 4 0 0 0 3.09 4.25l2.15.5a4 4 0 0 1 2.53 1.84l1.14 1.9a4 4 0 0 0 5 1.62l2.03-.87zM152 207a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm6 2a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm-11 1a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm-6 0a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm3-5a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm-8 8a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm3 6a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm0 6a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm4 7a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm5-2a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm5 4a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm4-6a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm6-4a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm-4-3a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm4-3a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm-5-4a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm-24 6a1 1 0 1 1 2 0 1 1 0 0 1-2 0zm16 5a5 5 0 1 0 0-10 5 5 0 0 0 0 10zm7-5a7 7 0 1 1-14 0 7 7 0 0 1 14 0zm86-29a1 1 0 0 0 0 2h2a1 1 0 0 0 0-2h-2zm19 9a1 1 0 0 1 1-1h2a1 1 0 0 1 0 2h-2a1 1 0 0 1-1-1zm-14 5a1 1 0 0 0 0 2h2a1 1 0 0 0 0-2h-2zm-25 1a1 1 0 0 0 0 2h2a1 1 0 0 0 0-2h-2zm5 4a1 1 0 0 0 0 2h2a1 1 0 0 0 0-2h-2zm9 0a1 1 0 0 1 1-1h2a1 1 0 0 1 0 2h-2a1 1 0 0 1-1-1zm15 1a1 1 0 0 1 1-1h2a1 1 0 0 1 0 2h-2a1 1 0 0 1-1-1zm12-2a1 1 0 0 0 0 2h2a1 1 0 0 0 0-2h-2zm-11-14a1 1 0 0 1 1-1h2a1 1 0 0 1 0 2h-2a1 1 0 0 1-1-1zm-19 0a1 1 0 0 0 0 2h2a1 1 0 0 0 0-2h-2zm6 5a1 1 0 0 1 1-1h2a1 1 0 0 1 0 2h-2a1 1 0 0 1-1-1zm-25 15c0-.47.01-.94.03-1.4a5 5 0 0 1-1.7-8 3.99 3.99 0 0 1 1.88-5.18 5 5 0 0 1 3.4-6.22 3 3 0 0 1 1.46-1.05 5 5 0 0 1 7.76-3.27A30.86 30.86 0 0 1 246 184c6.79 0 13.06 2.18 18.17 5.88a5 5 0 0 1 7.76 3.27 3 3 0 0 1 1.47 1.05 5 5 0 0 1 3.4 6.22 4 4 0 0 1 1.87 5.18 4.98 4.98 0 0 1-1.7 8c.02.46.03.93.03 1.4v1h-62v-1zm.83-7.17a30.9 30.9 0 0 0-.62 3.57 3 3 0 0 1-.61-4.2c.37.28.78.49 1.23.63zm1.49-4.61c-.36.87-.68 1.76-.96 2.68a2 2 0 0 1-.21-3.71c.33.4.73.75 1.17 1.03zm2.32-4.54c-.54.86-1.03 1.76-1.49 2.68a3 3 0 0 1-.07-4.67 3 3 0 0 0 1.56 1.99zm1.14-1.7c.35-.5.72-.98 1.1-1.46a1 1 0 1 0-1.1 1.45zm5.34-5.77c-1.03.86-2 1.79-2.9 2.77a3 3 0 0 0-1.11-.77 3 3 0 0 1 4-2zm42.66 2.77c-.9-.98-1.87-1.9-2.9-2.77a3 3 0 0 1 4.01 2 3 3 0 0 0-1.1.77zm1.34 1.54c.38.48.75.96 1.1 1.45a1 1 0 1 0-1.1-1.45zm3.73 5.84c-.46-.92-.95-1.82-1.5-2.68a3 3 0 0 0 1.57-1.99 3 3 0 0 1-.07 4.67zm1.8 4.53c-.29-.9-.6-1.8-.97-2.67.44-.28.84-.63 1.17-1.03a2 2 0 0 1-.2 3.7zm1.14 5.51c-.14-1.21-.35-2.4-.62-3.57.45-.14.86-.35 1.23-.63a2.99 2.99 0 0 1-.6 4.2zM275 214a29 29 0 0 0-57.97 0h57.96zM72.33 198.12c-.21-.32-.34-.7-.34-1.12v-12h-2v12a4.01 4.01 0 0 0 7.09 2.54c.57-.69.91-1.57.91-2.54v-12h-2v12a1.99 1.99 0 0 1-2 2 2 2 0 0 1-1.66-.88zM75 176c.38 0 .74-.04 1.1-.12a4 4 0 0 0 6.19 2.4A13.94 13.94 0 0 1 84 185v24a6 6 0 0 1-6 6h-3v9a5 5 0 1 1-10 0v-9h-3a6 6 0 0 1-6-6v-24a14 14 0 0 1 14-14 5 5 0 0 0 5 5zm-17 15v12a1.99 1.99 0 0 0 1.22 1.84 2 2 0 0 0 2.44-.72c.21-.32.34-.7.34-1.12v-12h2v12a3.98 3.98 0 0 1-5.35 3.77 3.98 3.98 0 0 1-.65-.3V209a4 4 0 0 0 4 4h16a4 4 0 0 0 4-4v-24c.01-1.53-.23-2.88-.72-4.17-.43.1-.87.16-1.28.17a6 6 0 0 1-5.2-3 7 7 0 0 1-6.47-4.88A12 12 0 0 0 58 185v6zm9 24v9a3 3 0 1 0 6 0v-9h-6z'/%3E%3Cpath d='M-17 191a1 1 0 0 0 0 2h2a1 1 0 0 0 0-2h-2zm19 9a1 1 0 0 1 1-1h2a1 1 0 0 1 0 2H3a1 1 0 0 1-1-1zm-14 5a1 1 0 0 0 0 2h2a1 1 0 0 0 0-2h-2zm-25 1a1 1 0 0 0 0 2h2a1 1 0 0 0 0-2h-2zm5 4a1 1 0 0 0 0 2h2a1 1 0 0 0 0-2h-2zm9 0a1 1 0 0 1 1-1h2a1 1 0 0 1 0 2h-2a1 1 0 0 1-1-1zm15 1a1 1 0 0 1 1-1h2a1 1 0 0 1 0 2h-2a1 1 0 0 1-1-1zm12-2a1 1 0 0 0 0 2h2a1 1 0 0 0 0-2H4zm-11-14a1 1 0 0 1 1-1h2a1 1 0 0 1 0 2h-2a1 1 0 0 1-1-1zm-19 0a1 1 0 0 0 0 2h2a1 1 0 0 0 0-2h-2zm6 5a1 1 0 0 1 1-1h2a1 1 0 0 1 0 2h-2a1 1 0 0 1-1-1zm-25 15c0-.47.01-.94.03-1.4a5 5 0 0 1-1.7-8 3.99 3.99 0 0 1 1.88-5.18 5 5 0 0 1 3.4-6.22 3 3 0 0 1 1.46-1.05 5 5 0 0 1 7.76-3.27A30.86 30.86 0 0 1-14 184c6.79 0 13.06 2.18 18.17 5.88a5 5 0 0 1 7.76 3.27 3 3 0 0 1 1.47 1.05 5 5 0 0 1 3.4 6.22 4 4 0 0 1 1.87 5.18 4.98 4.98 0 0 1-1.7 8c.02.46.03.93.03 1.4v1h-62v-1zm.83-7.17a30.9 30.9 0 0 0-.62 3.57 3 3 0 0 1-.61-4.2c.37.28.78.49 1.23.63zm1.49-4.61c-.36.87-.68 1.76-.96 2.68a2 2 0 0 1-.21-3.71c.33.4.73.75 1.17 1.03zm2.32-4.54c-.54.86-1.03 1.76-1.49 2.68a3 3 0 0 1-.07-4.67 3 3 0 0 0 1.56 1.99zm1.14-1.7c.35-.5.72-.98 1.1-1.46a1 1 0 1 0-1.1 1.45zm5.34-5.77c-1.03.86-2 1.79-2.9 2.77a3 3 0 0 0-1.11-.77 3 3 0 0 1 4-2zm42.66 2.77c-.9-.98-1.87-1.9-2.9-2.77a3 3 0 0 1 4.01 2 3 3 0 0 0-1.1.77zm1.34 1.54c.38.48.75.96 1.1 1.45a1 1 0 1 0-1.1-1.45zm3.73 5.84c-.46-.92-.95-1.82-1.5-2.68a3 3 0 0 0 1.57-1.99 3 3 0 0 1-.07 4.67zm1.8 4.53c-.29-.9-.6-1.8-.97-2.67.44-.28.84-.63 1.17-1.03a2 2 0 0 1-.2 3.7zm1.14 5.51c-.14-1.21-.35-2.4-.62-3.57.45-.14.86-.35 1.23-.63a2.99 2.99 0 0 1-.6 4.2zM15 214a29 29 0 0 0-57.97 0h57.96z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); */
222 | }
223 |
224 | /* 头部背景 */
225 | .header-custom {
226 | background-image: linear-gradient(45deg, #8618db 0%, #d711ff 50%, #460fdd 100%);
227 | /* background-image: linear-gradient(-20deg, #b721ff 0%, #21d4fd 100%); */
228 | /* background-image: linear-gradient(to right, #00dbde 0%, #fc00ff 100%); */
229 | /* background: linear-gradient(220.55deg, #00E0EE 0%, #AD00FE 100%); */
230 | /* background-image: linear-gradient(45deg, #00DBDE 0%, #FC00FF 100%); */
231 | }
232 |
233 | /* 暗黑模式下头部背景 */
234 | .io-black-mode .header-custom {
235 | background-image: linear-gradient(45deg, #24003f 0%, #5b0075 50%, #1c0054 100%);
236 | }
237 |
238 | /* @media (max-width: 768px) {
239 | #menu-item-sponsor {
240 | display: none;
241 | }
242 | } */
243 |
244 |
245 | /* 自定义弹窗样式 */
246 | .custom-swal-container {
247 | text-align: left;
248 | padding: 20px;
249 | border-radius: 10px;
250 | }
251 |
252 | .custom-swal-container h3 {
253 | text-align: center;
254 | color: #b9316f;
255 | background-color: #eaeaea;
256 | border-radius: 10px;
257 | padding: 8px 5px;
258 | }
259 |
260 | .custom-swal-ol {
261 | list-style-type: decimal;
262 | padding-left: 20px;
263 | margin-top: 10px;
264 | margin-bottom: 10px;
265 | }
266 |
267 | .custom-swal-ol li {
268 | margin-bottom: 10px;
269 | }
270 |
271 | .custom-swal-ol li span {
272 | text-align: left;
273 | font-weight: bold;
274 | margin-bottom: 5px;
275 | }
276 |
277 | .custom-swal-date {
278 | text-align: right;
279 | }
280 |
281 | /* 设置水平居中 */
282 | .custom-swal-image {
283 | display: block;
284 | margin: 2em auto;
285 | }
286 |
287 | /* 正在加载页面,样式三 */
288 | #preloader2 {
289 | position: relative
290 | }
291 |
292 | #preloader2:before {
293 | width: 20px;
294 | height: 20px;
295 | border-radius: 20px;
296 | content: '';
297 | position: absolute;
298 | background: #db448b;
299 | left: -20px;
300 | animation: preloader2_before 1.5s infinite ease-in-out;
301 | }
302 |
303 | #preloader2:after {
304 | width: 20px;
305 | height: 20px;
306 | border-radius: 20px;
307 | content: '';
308 | position: absolute;
309 | background: #f1404b;
310 | animation: preloader2_after 1.5s infinite ease-in-out;
311 | }
312 |
313 | @keyframes preloader2_before {
314 | 0% {
315 | transform: translateX(0px) rotate(0deg)
316 | }
317 |
318 | 50% {
319 | transform: translateX(50px) scale(1.2) rotate(260deg);
320 | background: #f1404b;
321 | border-radius: 0;
322 | }
323 |
324 | 100% {
325 | transform: translateX(0px) rotate(0deg)
326 | }
327 | }
328 |
329 | @keyframes preloader2_after {
330 | 0% {
331 | transform: translateX(0px)
332 | }
333 |
334 | 50% {
335 | transform: translateX(-50px) scale(1.2) rotate(-260deg);
336 | background: #db448b;
337 | border-radius: 0;
338 | }
339 |
340 | 100% {
341 | transform: translateX(0px)
342 | }
343 | }
344 |
345 | /* 正在加载页面,样式一 */
346 | .preloader1 {
347 | width: 250px;
348 | height: 50px;
349 | line-height: 50px;
350 | text-align: center;
351 | position: absolute;
352 | top: 50%;
353 | left: 50%;
354 | transform: translate(-50%, -50%);
355 | font-family: helvetica, arial, sans-serif;
356 | /* text-transform: uppercase; */
357 | font-weight: 900;
358 | color: #0084ff;
359 | letter-spacing: 0.2em
360 | }
361 |
362 | .preloader1::before,
363 | .preloader1::after {
364 | content: "";
365 | display: block;
366 | width: 15px;
367 | height: 15px;
368 | background: #0084ff;
369 | position: absolute;
370 | animation: load .7s infinite alternate ease-in-out
371 | }
372 |
373 | .preloader1::before {
374 | top: 0
375 | }
376 |
377 | .preloader1::after {
378 | bottom: 0
379 | }
380 |
381 | @keyframes load {
382 | 0% {
383 | left: 0;
384 | height: 30px;
385 | width: 15px
386 | }
387 |
388 | 50% {
389 | height: 8px;
390 | width: 40px
391 | }
392 |
393 | 100% {
394 | left: 235px;
395 | height: 30px;
396 | width: 15px
397 | }
398 | }
399 |
400 | /* 404 页面 */
401 | .not-found {
402 | font-family: "OxaniumRegular", sans-serif;
403 | margin: auto;
404 | text-align: center;
405 | font-size: 8vw;
406 | color: #353535;
407 | animation: uk-text-shadow-glitch .65s cubic-bezier(1, -1.91, 0, 2.79) 0s infinite normal both running;
408 | }
409 |
410 | @keyframes uk-text-shadow-glitch {
411 | 0% {
412 | text-shadow: none
413 | }
414 |
415 | 25% {
416 | text-shadow: -2px -2px 0 #ff004f, 2px 2px 0 #00f7ef
417 | }
418 |
419 | 50% {
420 | text-shadow: 2px -2px 0 #ff004f, -2px 2px 0 #00f7ef
421 | }
422 |
423 | 75% {
424 | text-shadow: -2px 2px 0 #ff004f, 2px -2px 0 #00f7ef
425 | }
426 |
427 | 100% {
428 | text-shadow: 2px 2px 0 #ff004f, -2px -2px 0 #00f7ef
429 | }
430 | }
431 |
432 | @keyframes uk-flicker {
433 | 0% {
434 | opacity: 0
435 | }
436 |
437 | 10% {
438 | opacity: .6;
439 | transform: scale(.8)
440 | }
441 |
442 | 20% {
443 | opacity: 0
444 | }
445 |
446 | 40% {
447 | opacity: 1
448 | }
449 |
450 | 50% {
451 | opacity: .2;
452 | transform: scale(1.1)
453 | }
454 |
455 | 100% {
456 | opacity: 1;
457 | transform: scale(1)
458 | }
459 | }
460 |
461 |
462 | #lytoday {
463 | text-align: left;
464 | }
465 |
466 | .hot-body::-webkit-scrollbar-thumb {
467 | background-color: #82828280;
468 | -webkit-border-radius: 4px;
469 | border-radius: 4px
470 | }
471 |
472 | .hot-body::-webkit-scrollbar {
473 | width: 3px;
474 | height: 3px
475 | }
476 |
477 | .hot-panel::-webkit-scrollbar-thumb {
478 | background-color: #82828280;
479 | -webkit-border-radius: 4px;
480 | border-radius: 4px
481 | }
482 |
483 | .hot-panel::-webkit-scrollbar {
484 | width: 3px !important;
485 | height: 3px !important
486 | }
487 |
488 | .sidebar-menu::-webkit-scrollbar-thumb {
489 | background-color: #82828280;
490 | -webkit-border-radius: 4px;
491 | border-radius: 4px
492 | }
493 |
494 | .sidebar-menu::-webkit-scrollbar {
495 | width: 3px !important;
496 | height: 3px !important
497 | }
498 |
499 | .hot-panel {
500 | display: flex;
501 | flex-wrap: wrap;
502 | justify-content: center;
503 | align-content: center
504 | }
505 |
506 | .hot-card {
507 | flex: 1;
508 | min-width: 300px;
509 | margin: 5px;
510 | padding: 15px 20px 5px;
511 | width: 20%;
512 | background: #fff;
513 | border-width: 0;
514 | border-radius: 10px;
515 | box-shadow: 0px 0px 20px -5px #9e9e9e33
516 | }
517 |
518 | .hot-head {
519 | height: 36px
520 | }
521 |
522 | .hot-head img {
523 | width: 16px;
524 | height: 16px;
525 | margin-right: 5px;
526 | margin-bottom: 2px;
527 | border-style: none;
528 | vertical-align: middle
529 | }
530 |
531 | .hot-title {
532 | font-size: 16px;
533 | margin-bottom: 8px;
534 | display: inline-block
535 | }
536 |
537 | .hot-unit {
538 | float: right;
539 | font-size: 14px;
540 | color: #555555;
541 | /*margin-right: 2rem*/
542 | }
543 |
544 | .hot-body {
545 | overflow: auto;
546 | overflow-x: hidden;
547 | height: 360px;
548 | padding: 5px
549 | }
550 |
551 | .hot-footer {
552 | margin-top: 10px;
553 | border-top: 1px solid #dddddd;
554 | padding: 10px 0 0
555 | }
556 |
557 | .hot-time {
558 | float: right;
559 | color: #838383;
560 | font-size: 14px;
561 | margin: 2px
562 | }
563 |
564 | .hot-table {
565 | list-style-type: none;
566 | padding: 0;
567 | margin: 0
568 | }
569 |
570 | .hot-list {
571 | font-size: 14px;
572 | min-height: 1.8rem;
573 | padding: 0;
574 | margin: 0;
575 | display: flex
576 | }
577 |
578 | .hot-list:nth-of-type(1) > .hot-index:first-child {
579 | color: #fff;
580 | background: #FE2D46
581 | }
582 |
583 | .hot-list:nth-of-type(2) > .hot-index:first-child {
584 | color: #fff;
585 | background: #F60
586 | }
587 |
588 | .hot-list:nth-of-type(3) > .hot-index:first-child {
589 | color: #fff;
590 | background: #FAA90E
591 | }
592 |
593 | .hot-list a {
594 | width: 80%;
595 | color: #333333;
596 | text-decoration: none
597 | }
598 |
599 | .hot-list a:hover {
600 | color: #f3434e
601 | }
602 |
603 | .hot-index {
604 | width: 18px;
605 | height: 18px;
606 | font-size: 14px;
607 | text-align: center;
608 | margin-right: 12px;
609 | border-radius: 4px;
610 | color: #333;
611 | background: #dbdbdb;
612 | display: table;
613 | padding: 0 3px
614 | }
615 |
616 | .span-year {
617 | padding: 0px 3px;
618 | height: 18px;
619 | font-size: 14px;
620 | text-align: center;
621 | margin-right: 12px;
622 | border-radius: 4px;
623 | color: #333;
624 | background: #dbdbdb;
625 | display: inline-block
626 | }
627 |
628 | .hot-rank {
629 | white-space: nowrap;
630 | margin-left: auto;
631 | margin-right: 5px;
632 | color: #939393
633 | }
634 |
635 | .hot-tag {
636 | width: 18px;
637 | height: 18px;
638 | border-radius: 4px;
639 | text-align: center;
640 | font-size: 12px;
641 | color: #fff;
642 | display: table;
643 | background: #ff9406;
644 | padding: 1px
645 | }
646 |
647 | .hot-tag-1 {
648 | background: #ff9406
649 | }
650 |
651 | .hot-tag-3 {
652 | background: #ff3852
653 | }
654 |
655 | .hot-tag-5 {
656 | background: #0bbd33
657 | }
658 |
659 | .hot-tag-8 {
660 | background: #cb3aab
661 | }
662 |
663 | .hot-tag-16 {
664 | background: #5f5f5f
665 | }
666 |
667 | .hot-tag-20 {
668 | background: #ff9406
669 | }
670 |
671 | .hot-tag:empty {
672 | background: none
673 | }
674 |
675 | .hot-time i {
676 | margin-right: 3px;
677 | font-style: normal
678 | }
679 |
680 | .span-lunar i {
681 | font-weight: bold;
682 | margin-right: 5px;
683 | font-style: normal
684 | }
685 |
686 | .hot-list i {
687 | font-style: normal
688 | }
689 |
690 | .span-lunar {
691 | font-weight: bold;
692 | margin-right: 15px;
693 | white-space: nowrap
694 | }
695 |
696 | .span-yan {
697 | text-indent: 2em;
698 | line-height: 1.5;
699 | font-size: 16px
700 | }
701 |
702 | @media (max-width: 768px) {
703 | .hot-panel {
704 | flex-direction: row;
705 | overflow-x: auto;
706 | justify-content: flex-start;
707 | flex-wrap: nowrap;
708 | }
709 |
710 | .hot-card {
711 | width: 100%
712 | }
713 | }
714 |
715 | .hot-panel {
716 | display: flex;
717 | overflow-x: auto !important;
718 | flex-wrap: nowrap !important;
719 | justify-content: flex-start !important;
720 | align-content: center;
721 | }
722 |
723 | .hot-body {
724 | height: 225px !important;
725 | }
726 |
727 | @media screen and (max-width: 1200px) {
728 | .hot-title {
729 | font-size: 14px;
730 | }
731 | .hot-list {
732 | font-size: 13px;
733 | }
734 | .hot-time{
735 | font-size: 13px;
736 | }
737 | }
738 |
739 | /* 广告位置背景颜色透明 */
740 | .col-12 .card {
741 | background-color: transparent !important;
742 | }
743 |
744 | /* 广告位(新) */
745 | .gg-container {
746 | display: grid;
747 | gap: 10px; /* 更现代的标准间距 */
748 | grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
749 | /*padding: 12px;*/
750 | /*max-width: 1600px; !* 限制最大宽度避免在大屏幕上过宽 *! */
751 | margin: 0 0 15px auto; /* 居中容器 */
752 | }
753 |
754 | .gg-link {
755 | position: relative;
756 | display: block;
757 | overflow: hidden;
758 | border-radius: 8px; /* 添加圆角 */
759 | box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); /* 添加柔和阴影 */
760 | transition: transform 0.2s ease; /* 悬停动画 */
761 | }
762 |
763 | .gg-link:hover {
764 | transform: translateY(-8px); /* 悬停微动效 */
765 | box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
766 | }
767 |
768 | .gg-image {
769 | width: 100%;
770 | height: auto;
771 | object-fit: cover;
772 | aspect-ratio: 8 / 1; /* 保持宽高比(1200:150 = 8:1) */
773 | }
774 |
775 | /* 移动端优化 */
776 | @media (max-width: 768px) {
777 | .gg-container {
778 | grid-template-columns: 1fr;
779 | gap: 12px;
780 | padding: 8px;
781 | }
782 |
783 | /*.gg-image {*/
784 | /* aspect-ratio: 4 / 1; !* 移动端采用更高比例 *!*/
785 | /*}*/
786 | }
787 |
788 | /* 小屏手机优化 */
789 | @media (max-width: 480px) {
790 | .gg-container {
791 | gap: 8px;
792 | }
793 |
794 | .gg-link {
795 | border-radius: 4px;
796 | }
797 | }
798 |
799 | .menu-item-has-children {
800 | margin-right: 16px;
801 | }
802 |
--------------------------------------------------------------------------------