{"meta":{"title":"青云工作室-博客","subtitle":"qystudio","description":"一个对技术执迷不悟，旨在技术分享、好软推荐、原创发布的团队博客","author":"青云工作室","url":"https://www.qystu.cc","root":"/"},"pages":[{"title":"404","date":"2023-04-27T13:32:33.385Z","updated":"2023-04-27T13:32:33.385Z","comments":true,"path":"404.html","permalink":"https://www.qystu.cc/404.html","excerpt":"","text":".cls-1{fill:url(#未命名的渐变_217);}.cls-2{fill:url(#未命名的渐变_16);}.cls-3{fill:url(#未命名的渐变_16-2);}.cls-4{fill:url(#未命名的渐变_19);}.cls-5{fill:url(#未命名的渐变_19-2);}.cls-6{fill:url(#未命名的渐变_14);}.cls-7{fill:url(#未命名的渐变_23);}.cls-8{fill:url(#未命名的渐变_248);}.cls-9{fill:url(#未命名的渐变_248-2);}.cls-10{fill:url(#未命名的渐变_23-2);}.cls-11{fill:url(#未命名的渐变_248-3);}.cls-12{fill:url(#未命名的渐变_248-4);}.cls-13{fill:url(#未命名的渐变_234);}.cls-14{fill:url(#未命名的渐变_248-5);}.cls-15{fill:url(#未命名的渐变_248-6);}.cls-16{fill:url(#未命名的渐变_248-7);}.cls-17{fill:url(#未命名的渐变_248-8);}.cls-18{fill:url(#未命名的渐变_248-9);}.cls-19{fill:url(#未命名的渐变_248-10);}.cls-20{fill:url(#未命名的渐变_234-2);}.cls-21{fill:url(#未命名的渐变_248-11);}.cls-22{fill:url(#未命名的渐变_248-12);}.cls-23{fill:url(#未命名的渐变_248-13);}.cls-24{fill:url(#未命名的渐变_23-3);}.cls-25{fill:url(#未命名的渐变_23-4);}.cls-26{fill:url(#未命名的渐变_248-14);}.cls-27{fill:url(#未命名的渐变_234-3);}.cls-28{fill:#fed4c2;}.cls-29{fill:#ffd5c3;}.cls-30{fill:#feb99b;}.cls-31{fill:url(#未命名的渐变_18);}.cls-32{fill:#343434;}.cls-33{fill:#5c5c5c;}.cls-34{fill:#3e3e3e;}.cls-35{fill:#301b20;}.cls-36{fill:url(#未命名的渐变_18-2);}.cls-37{fill:#007adc;}您访问的页面找不到了，请检查网络 .default{ width :75%; margin: 0 auto; } 很抱歉，您访问的页面去月球了~~ 送我回家","author":"青云工作室"},{"title":"about","date":"2021-02-27T02:45:11.000Z","updated":"2021-03-21T07:13:42.000Z","comments":false,"path":"about/index.html","permalink":"https://www.qystu.cc/about/index.html","excerpt":"","text":"关于这里是青云工作室的小站,是一群有神奇灵魂的人们的聚集地 我们可以在小站进行技术交流、沟通、分享,文章甚至不限于博主,只要是发送至博主且团队审核通过,将由博主代发并注明作者 欢迎加入我们并成为我们中的一员，我们希望网站是多作者“共笔”的方式分享优秀的文章，如果你有什么好的创意想法和经验心得都可以向网站进行投搞 联系博主博客： 网站，RSSQQ群：660414614tg群：t.me/qystudio邮箱： admin#qystu.cc 客观评价 性格 指挥官 ENTJ-A 在 16personalities 了解更多关于 指挥官 .post-tips { color: #999999; font-size:14px; bottom:1rem; left:2rem } .post-tips a { color:#999999!important; border:none!important } .post-tips a:hover { color:#999999!important } .author-content-item .author-content-item-tips { opacity:.8; font-size:.8rem; margin-bottom:.5rem } .author-content-item.personalities .image { position:absolute; right:-40px; bottom:-10rem; transition:transform 2s cubic-bezier(.13,.45,.21,1.02) } .author-content-item.personalities:hover .image { transform:rotate(-10deg) } @media screen and (max-width:768px) { .author-content-item.personalities { min-height:360px } .author-content-item.personalities .image { right:-70px } } .author-content-item.personalities .title2 { font-size:36px; font-weight:700; line-height:1.1 } .author-content-item .author-content-item-title { font-size:36px; font-weight:700; line-height:1 } 网站数据 fetch('https://v6-widget.51.la/v6/JgfdvE9NYUjOrkIE/quote.js').then(res => res.text()).then((data) => { let title = ['最近活跃访客', '今日人数', '今日访问', '昨日人数', '昨日访问', '本月访问', '总访问量'] let num = data.match(/(?","author":"青云工作室"},{"title":"categories","date":"2021-03-21T07:11:56.000Z","updated":"2021-03-21T07:22:49.000Z","comments":false,"path":"categories/index.html","permalink":"https://www.qystu.cc/categories/index.html","excerpt":"","text":"","author":"青云工作室"},{"title":"join","date":"2022-08-05T02:19:52.000Z","updated":"2023-04-27T13:32:33.385Z","comments":true,"path":"join/index.html","permalink":"https://www.qystu.cc/join/index.html","excerpt":"","text":"每一个星球都有一个驱动核心，每一种思想都有影响力的种子。感受世界的温度，年轻的你也能成为改变世界的动力，百度珍惜你所有的潜力。你的潜力，是改变世界的动力！–by baidu 招贤纳士我们同样欢迎各位加入我们青云 要求乐于学习的心敢于创新，敢于尝试 好处可以学习到一些前端知识绕过我们跳进的坑使用青云所能获取的资源但是没有工资，同样无需学费 怎么加入我们 在评论区留言告诉我 向admin@qystu.cc发送邮件告诉我们的负责人 成为青云的作者要求乐于奉献的心热爱开源社区，愿意分享 怎么加入我们 在评论区留言告诉我 向admin@qystu.cc发送邮件告诉我们的负责人"},{"title":"links","date":"2023-04-27T13:32:33.385Z","updated":"2023-04-27T13:32:33.385Z","comments":true,"path":"links/index.html","permalink":"https://www.qystu.cc/links/index.html","excerpt":"","text":"友链 loadQexoFriends(\"friend-content\", \"https://setting.qystu.cc\") 申请友链申请方式申请要求友链声明申请格式我的信息先将本站的友链添加到您的友链，相关方式如下 先看要求!!!!! 在线申请 qexo_friend_api(\"friends-api\",\"https://setting.qystu.cc\"); 评论申请 按照以下格式在本站留言区先注册账号再留言，待博主为您添上友链(我可能几星期才看一次评论😘) 内容持续更新且可以稳定访问(文章数量大于20) 网页整洁无繁杂广告推广 博客主页被百度或谷歌等搜索引擎收录 能够正常加载(https)没有被墙的迹象 能够快速加载(dom加载时间小于5s) 拥有独立域名(不能是免费域名) 网站合法合规(没有被搜索引擎ban掉) 申请完成后评论区通知我，建议注册用户，可以得到好朋友标签一枚 本站会可能主动保存您的 HTTPS 形式的头像图片链接 本站会定期清理无法访问的友链，如果更换了链接信息请重新申请！ 本站会定期查看双方是否互为友链，如果取消本站友链，本站也会将您的友链移除 查看格式 123456title: # 名称avatar: # 头像url: # 链接screenshot: # 截图keywords: # 关键词description: # 描述 名称：QYstudio链接：https://qystu.cc头像：https://cravatar.cn/avatar/e554da26e947151c678f1f2a8f78e72b描述：不因何事去制作 只因兴趣而创造","author":"青云工作室"},{"title":"messages","date":"2021-08-18T13:06:52.000Z","updated":"2023-04-27T13:32:33.389Z","comments":true,"path":"messages/index.html","permalink":"https://www.qystu.cc/messages/index.html","excerpt":"","text":"欢迎你的来访，请遵守相关法律法规，文明灌水，谢谢合作~","author":"青云工作室"},{"title":"privacy","date":"2022-08-05T02:20:22.000Z","updated":"2023-04-27T13:32:33.389Z","comments":true,"path":"privacy/index.html","permalink":"https://www.qystu.cc/privacy/index.html","excerpt":"","text":"本页面所列之内容为 “QYstudio” 网站及其附属站点（以下简称 “本站”）所采用之著作权规范、评论规则、免责声明、隐私政策。 一、著作权规范第 1 条 （著作权法律适用）本站所发布内容（包括但不限于文字、图表、照片、音视频、数据、代码等）之著作权，均受包括但不限于以下中华人民共和国法律法规的保护： 《中华人民共和国著作权法》 《信息网络传播权保护条例》 第 2 条 （著作权许可协议）本站作品采用了六种著作权许可协议，转载或引用前请留意文末标注的许可协议。如您认为本站内容侵犯了您的权益，请与本站联系，本站将在核实后及时予以删除。 CC BY-NC-SA 4.0：转载或引用时，需注明出处、且不得用于商业用途，细节要求见许可协议； 禁止转载引用：默认禁止转载引用，如需转载或引用，请先联系作者获得授权； 原作许可协议：作品由他人创作，转载或引用时，请遵守原作之著作权许可协议。 来自互联网：作品来自互联网，未知来源，如有侵权请联系删除。 允许规范转载：转载或引用时，需要注明出处，无其他要求限制。 允许付费转载：转载或引用时，可以联系作者通过付费方式获得授权。 二、评论规则第 3 条 （评论提交信息）在本站发布评论需要您留下：昵称、邮箱、网站链接（可选），相关信息的隐私处理请查阅本站《隐私政策》。您提交评论即默认接受该评论采用 CC BY-NC-SA 4.0 知识共享许可协议。 第 4 条 （评论管理）发布的评论需要符合以下标准：合法、友善、相关、有益，不符合前述标准的评论将会被直接删除。如您认为您或他人发布的评论不适合展示在本站，请与本站联系，本站将在评估确认后予以删除。 三、免责声明第 5 条 （个人立场）本站内容仅为个人言论，不代表站长本人所属（或曾经所属）机构的观点。评论区的内容仅代表该评论发布者的观点，不代表本站认同该言论，且不对此内容产生的影响承担责任。 第 6 条 （内容责任）由于本站所发布的内容有其特定背景，而社会环境不断变化，又因获取资料信息限制，本站不对所发布内容之准确性、完整性、可靠性、可用性和及时性做保证。因此，相关读者有义务自行对所有内容在其预期用途中的适用性进行检查。在任何情况下，本站都不对因使用本站内容而造成的或与之有关的任何间接、附带或结果性损失负责或承担责任。 第 7 条 （链接责任）本站所发布的内容包含有外部网站链接，仅为方便读者而设。本站在添加链接时已尽可能检查其是否违反相关法律法规，但是外部网站内容始终由其相关提供者或运营者负责，本站无法控制这些外部网站，因此本站不对其内容承担任何责任。 四、隐私政策第 8 条 （隐私保护法律适用）本站依照以下中华人民共和国法律的相关规定，收集、存储、使用访客的隐私数据： 《中华人民共和国个人信息保护法》 《中华人民共和国网络安全法》 《中华人民共和国数据安全法》 由于前述的中国法律与欧盟《通用数据保护规则》（GDPR）可能存在冲突，本站不对欧盟用户提供服务。 第 9 条 （信息收集）以下类型的信息可能被收集： 您主动提交给本站的个人信息； 有关您计算机的信息，包括但不限于 IP 地址、浏览器类型和版本以及操作系统类型和版本； 有关您访问和使用本网站的信息，包括但不限于引荐来源、访问日期和时间、页面浏览量以及网站导航路径。 第 10 条 （信息使用）本站可能将您的信息用于以下用途： 为您提供本站的网站服务； 向您发送您指定的电子邮件通知； 确保本站的网站安全和防止欺诈； 其他符合法律规定的合理用途。 未经您的明确同意，本站不会将您的个人信息提供给任何第三方以供其或任何其他第三方用于营销。 第 11 条 （第三方服务）本站提供的服务可能会包含第三方的产品和服务，或包含通往他们的链接。本站无法控制第三方的隐私政策和规则，并且不对此承担任何责任。 本站也可能通过第三方获取由他们收集的您的信息。本站对这些信息的获取和使用将不受本隐私政策限制。然而，第三方能够向本站披露的信息依然会受到他们的隐私政策的限制。 第 12 条 （信息披露）本站不会主动公开披露用户信息，除非出现下列情形之一： 中国的法律法规规定应当公开披露的信息； 与中国的国家安全、重大公共利益有关，或与犯罪侦查、起诉、审判和判决执行等有关，而应中国执法机构要求提供的； 出于维护您或其他个人的生命、财产等重大合法权益但又很难得到本人同意的； 您自行在本站评论区公开的个人信息； 本政策另有特别规定的情况。 五、政策修订第 13 条 （更新修订）本站保留在任何时间修改、修订或更新本页政策内容的权利。 最后更新日期的变化表示该政策已被更新或编辑，更新或编辑的版本在发布后立即取代先前任何版本。浏览器、运营商、CDN 和其他组织或个人可能出于节省带宽或其他因素缓存本站的页面，在这种情况下导致您看到的页面内容和实际不符，应当以本站提供的为准。 最后更新日期：2022 年 08 月 05 日"},{"title":"talks","date":"2022-08-05T02:20:22.000Z","updated":"2023-04-27T13:32:33.389Z","comments":true,"path":"talks/index.html","permalink":"https://www.qystu.cc/talks/index.html","excerpt":"","text":"showQexoTalks(\"qexot\", \"https://setting.qystu.cc\", 5)"}],"posts":[{"title":"云寄2.0全新回归！用一生去抵达遥远的未来！让我们一起期待云寄时光邮局2.0正式发布！","slug":"totime","date":"2023-04-27T13:17:49.000Z","updated":"2023-04-27T13:17:49.000Z","comments":true,"path":"posts/55413.html","link":"","permalink":"https://www.qystu.cc/posts/55413.html","excerpt":"","text":"云寄2.0全新回归！用一生去抵达遥远的未来！让我们一起期待云寄时光邮局2.0正式发布","categories":[{"name":"totime","slug":"totime","permalink":"https://www.qystu.cc/categories/totime/"},{"name":"chuqis","slug":"chuqis","permalink":"https://www.qystu.cc/categories/chuqis/"}],"tags":[{"name":"totime","slug":"totime","permalink":"https://www.qystu.cc/tags/totime/"},{"name":"云寄","slug":"云寄","permalink":"https://www.qystu.cc/tags/%E4%BA%91%E5%AF%84/"}],"author":"qystudio"},{"title":"初七云测评","slug":"chuqiyun","date":"2023-04-27T11:27:30.000Z","updated":"2023-04-27T11:27:30.000Z","comments":true,"path":"posts/25124.html","link":"","permalink":"https://www.qystu.cc/posts/25124.html","excerpt":"","text":"初七云怎么样 初七云怎么样？初七云是一家国人主机商，提供 VPS、CDN 等，数据中心包括中国香港、美国等，国内直连优化或者 CN2 GIA 等优秀线路，还有 CERA 低价服务器。 初七云中 VPS 包括常规 VPS (经典轻量云服务器) 和 ECS (弹性云)，支持自定义配置。 初七云致力于创新IDC业内新平台，目前真正研发全新IDC财务结算系统，CDN插件，智慧虚拟主机管理系统，IDS网络管理系统 同时我们希望可以与业内同行互利共赢，实现IDC行业健康规范发展 官方网站https://www.chuqiyun.com/ 最新特惠活动 活动一： 华中高防16-32 180月 续费同价 不限量 66 折・骨折码：[qystu] (所有产品) 全球加速体验版 月流量：20G 域名：3 防护：自定义 网站预热： 支持 全球多节点负载 活动二： aff推介计划 新购返点7%以上，更多查看官网 代理75折 5元永久 香港精品云包括CTG GIA等线路 大陆方向优化 评论获取6折码 10-16评论获取99折扣码 纽约服务器低价钜惠 线路优秀 利好建站 蜂鸟云桌面全新技术，支持显卡云桌面，欢迎对接 普通体验型 gcc显卡云 gcpm高性能（适合各种游戏、软件、直播、模拟器多开、虚拟机多开、渲染、模型训练等）","categories":[],"tags":[{"name":"初七云","slug":"初七云","permalink":"https://www.qystu.cc/tags/%E5%88%9D%E4%B8%83%E4%BA%91/"},{"name":"IDC","slug":"IDC","permalink":"https://www.qystu.cc/tags/IDC/"}],"author":"qystudio"},{"title":"胡杨礼赞","slug":"胡杨礼赞","date":"2023-01-14T09:08:53.000Z","updated":"2023-01-14T12:41:23.000Z","comments":true,"path":"posts/52176.html","link":"","permalink":"https://www.qystu.cc/posts/52176.html","excerpt":"","text":"我赞美胡杨，赞美它那挺立的身姿，赞美它那无尽的毅力，所以我要高声地赞美胡杨。我初见胡杨，是一段干巴巴的树枝，干裂的树皮同被一个身强力壮的人硬扭的麻花一样，一条条不齐地盘旋在表面上。一个一个凹凹凸凸的小点，同麻疹一样撒在一条条纵横的沟壑间，给人一种就是普通的木头段子，在落叶堆间唾手可得的平凡之物，而不用给予任何理睬时，因一段家尊的口述后，我要高声赞美胡杨。“这段胡杨，是我去西北时，路过一片树林，起初我还不知道那是什么树，枝条一个个旁逸斜出，但这段胡杨的故事使我难忘，这段胡杨就是我在那捡的。”我爸顿了顿，饮了口茶。从他对我的简述我还没有领会到胡杨的特别，但后来的这样一句话，让我一开始看到胡杨时，那种从这段胡杨中渐渐溢出矗立西域千年的古老气息是从何而来的了。“胡杨生则三千年不死，死则三千年不倒，倒则三千年不朽。”这是在我内心最震撼的一句话。细看它之后才发现，这一截虬枝上，本是断折处应棱立而起的木碴，是被荒漠岁月的雄风磨去了棱角。枝条落在地上，向上的那一面已被西北沙漠的烈日烤得发黄发焦，这些是绝非一日而就的。家尊至西北关塞之日亦为四月，胡杨之叶乃未发也，枯叶存枝头，尚犹金也。予枝虽不齐，但生志犹高也。日挂枝头，大江东去，杨满金沙丘。登丘而望其林也，树虽旁逸斜出，日照投其影，影布石上，甚异之。虽然这样的胡杨相貌不扬，但岁月嵌在上面，那种难以掩饰的威严每每能震慑住我。这是生命与时间迸发出的火焰，把鼻子凑上去细细地嗅，有一种檀木发出的被岁月冲淡的浅浅香气。我用手抚摸这这从千里外来的“老人”，本是对破木头的鄙夷，以全然转变为对岁月的仰望了。日日夜夜浓缩在这样一段胡杨里，是生命，是历史，也是我感受到华夏大地不屈服的毅力。“我把一段小胡杨枝送给了一位叔叔，他一开始也以为这是块破木头，但他听了胡杨背后的故事，也突然使他迷上了胡杨的精神品质，他说将会把段胡杨好好收藏，也是我寓意着他的事业如胡杨一样常青。”我爸最后向我说，“我这还有一小段胡杨，虽然不能拿来当做封存美术馆的艺术品，但有时候吧，胡杨的意志才是人们追求的。不论日晒雨淋，都不应倒下。生命给我们种种坎坷，究竟是一种恩赐，还是一种折磨？”父亲向我抛下了一个疑问。自愧不如，这个问题我还尚无得到解释，但我却理解了胡杨崎岖表面上一条条沟壑的深意，这是生命一定会有的，生命必须有裂缝，阳光才照得进来。听故事的人变成讲故事的人，讲故事的人变成了故事里的人，生命即如胡杨，时间能证明一切。这是从胡杨的一生中得出的道理。是啊！没有什么能够超脱时间的束缚，我们虽没有千年的寿命，但我们能做的，只有自强不息，因为这样，时间才永远无法击败我们的心志。谨以此文，记矛盾老先生和送给我的父亲。","categories":[{"name":"散文","slug":"散文","permalink":"https://www.qystu.cc/categories/%E6%95%A3%E6%96%87/"}],"tags":[{"name":"散文","slug":"散文","permalink":"https://www.qystu.cc/tags/%E6%95%A3%E6%96%87/"},{"name":"抒情","slug":"抒情","permalink":"https://www.qystu.cc/tags/%E6%8A%92%E6%83%85/"}],"author":"guitar"},{"title":"小米12su与vivox90pro+综合对比及机圈未来趋势","slug":"vivox90","date":"2023-01-12T05:16:56.000Z","updated":"2023-01-12T05:16:56.000Z","comments":true,"path":"posts/10907.html","link":"","permalink":"https://www.qystu.cc/posts/10907.html","excerpt":"","text":"性能方面小米12su和 vivo x90pro+作为2022年的年度影像旗舰，综合实力两者不相上下，但性能方面vivo会强些。12su由于是7月发布，只能用上骁龙8＋，其闪存和内存分别是 ufs3.1和LPDDR5。而vivo x90pro+为12月发布，用上了高通最新的骁龙8Gen2，内存和闪存也分别升级到了最新规格，为 ufs4.0和 LPDDR5x 此次骁龙 8 Gen2 采用了 1+2+2+3 四丛集方案，具体为 1 颗 3.19GHz 主频 Cortex-X3 超大核，2 个 2.8GHz 主频 A715 大核心，2 个 2.8GHz 主频 A710 中核以及 3 个 2.0GHz 主频 A510 小核心，GPU 为 Adreno 740。 CPU方面为正常迭代升级，主要为降低功耗。而GPU则有亮点，高通增加GPU面积高达50％，但频率却大幅降低至680兆，为的是在低频下得到更好的能效比。根据极客湾的测试，骁龙 8gen2的GPU在性能上比A16高出了18％，且满载功耗仅有8w，表现非常不错。 屏幕小米12su采用三星E5屏幕，vivo x90pro+采用三星E6，都为2k+120hz，且都有微棱镜技术。虽然显示效果方面大差不差，但E6屏幕的激发亮度更高，并且E6屏幕有1920hzPWM调光，护眼效果比E5好很多。都有ltpo技术。 充电小米12su采用4860mAh＋67w有线＋50w无线 vivo x90pro+采用4700mAh＋80w有线＋50w无线 影像小米12su：主摄采用索尼IMX989感光器，其尺寸规格1英寸，这是目前主流手机中所用到最大尺寸的感光器。5000万总像素，默认四合一输出约1250万像素，镜头集成光学防抖，等效焦距23毫米，F/1.9光圈。除了感光器之外，镜头镀膜也采用了ALD镀膜以及IRCF旋涂技术，旨在减少眩光和鬼影。 超广采用索尼IMX586感光器，尺寸规格1/2英寸，4800万像素，默认四合一输出1200万像素，镜头等效焦距13毫米，镜头光圈f/2.2。 潜望长焦也是采用的IMX586感光器，5x光学变焦，等效焦距120毫米，光圈F/4.1，集成光学防抖。 vivo x90pro+：主摄为5000万像素IMX989，1英寸，支持OIS防抖，f/1.75大光圈，外加T*镀膜，抗鬼影和炫光效果十分不错。 人像为5000万像素IMX758，2x光学变焦，支持OIS，1/2.51英寸底，f/1.6大光圈。 超广角为4800万像素IMX598，1/2英寸底，f/2.2光圈。 潜望长焦为6400万像素OV64B，3.5x光学变焦，支持OIS防抖，1/2英寸底，f/3.5光圈。 总结小米12su和vivo x90pro+影像规格都非常高。由于vivo有 T*镀膜，因此抗炫光能力更强。得益于2x人像镜头的加入，vivo的焦段覆盖更全面，但也造成了vivo在10x以上画质不如小米。vivo还采用了自研影像芯片v2，使得极限暗光场景和夜景视频表现更为出色。但整体来说，这两部机器的影像都非常出色。 看法但受限于机身内部空间，vivo本次并没有上微云台，但由于机圈内卷现状，各厂商也不得不最求更大的底。 如果vivo去掉2x镜头，再引入融合算法，让2x由主摄裁切＋潜望融合的方式可能会更好，由于融合只能是画面中心，正好在人像模式下，背景能得到自然的虚化，中心人物的解析力也会不错。去掉2x镜头，还可以节省内部空间，使的超广角或潜望的底更大或者加入微云台，使视频效果更好。 或者vivo保留人像镜头，但主摄还是用之前的Gn1。众所周知，在白天光线充足的场景，GN1的效果和1英寸基本没什么差距。而夜景，得益于影响芯片的加入，即使是GN1，也会有非常不错的效果。并且这样还能加入微云台技术，使视频稳定性更好","categories":[{"name":"手机","slug":"手机","permalink":"https://www.qystu.cc/categories/%E6%89%8B%E6%9C%BA/"}],"tags":[{"name":"手机","slug":"手机","permalink":"https://www.qystu.cc/tags/%E6%89%8B%E6%9C%BA/"},{"name":"vivo","slug":"vivo","permalink":"https://www.qystu.cc/tags/vivo/"},{"name":"天玑","slug":"天玑","permalink":"https://www.qystu.cc/tags/%E5%A4%A9%E7%8E%91/"},{"name":"x90","slug":"x90","permalink":"https://www.qystu.cc/tags/x90/"},{"name":"小米","slug":"小米","permalink":"https://www.qystu.cc/tags/%E5%B0%8F%E7%B1%B3/"},{"name":"高通","slug":"高通","permalink":"https://www.qystu.cc/tags/%E9%AB%98%E9%80%9A/"},{"name":"骁龙 8 Gen2","slug":"骁龙-8-Gen2","permalink":"https://www.qystu.cc/tags/%E9%AA%81%E9%BE%99-8-Gen2/"}],"author":"God_V"},{"title":"qexo多作者解决方案","slug":"qexo多用户","date":"2023-01-12T04:45:34.000Z","updated":"2023-01-14T12:31:13.000Z","comments":true,"path":"posts/32667.html","link":"","permalink":"https://www.qystu.cc/posts/32667.html","excerpt":"","text":"在一个博客可能会有多个作者在写文章，比如我的博客，所以我折腾abudu大大好久 abudu大大真是一个好开发，满足用户需求 方法废话不说了，直接上方法 打开 qexo域名/userscrpits.html创建子账号 然后是否为管理按需填写 然后完结撒花 再次感谢abudu大佬成功又水一篇文章 推荐文章（由hexo文章推荐插件驱动）DIY最低成本图床serviceworkers首屏优化为hexo加一个自动部署","categories":[{"name":"hexo","slug":"hexo","permalink":"https://www.qystu.cc/categories/hexo/"}],"tags":[{"name":"hexo","slug":"hexo","permalink":"https://www.qystu.cc/tags/hexo/"},{"name":"博客","slug":"博客","permalink":"https://www.qystu.cc/tags/%E5%8D%9A%E5%AE%A2/"},{"name":"qexo","slug":"qexo","permalink":"https://www.qystu.cc/tags/qexo/"}],"author":"qystudio"},{"title":"DIY最低成本图床","slug":"DIY最低成本图床","date":"2023-01-01T05:12:55.000Z","updated":"2023-01-01T06:09:45.000Z","comments":true,"path":"posts/11159.html","link":"","permalink":"https://www.qystu.cc/posts/11159.html","excerpt":"","text":"backblaze我在使用了许许多多的图床后一直没有很好的解决方案 我早期使用过了jsd+github的图床，但是因为jsd的icp备案被注销，且不能使用国内的cdn节点，这个方法随之不可用了 后来我将cdn仓库通过npm发包，并且使用知乎和饿了么的加速服务，但是知乎添加的白名单而不可用，随后饿了么也停止了服务，但是后来又重启了服务 这几个方案的潜在不稳定性告诉我，迫切需要一个自建的图床 不久我在cyfan的博客中发现了Backblaze自建图床的方案 2015年9月，Backblaze推出了新产品B2 Cloud Storage。作为基础架构即服务（IaaS），它的目标是软件集成（尽管也提供Web前端和API）。它直接与类似服务Amazon S3，Microsoft Azure和Google Cloud竞争。在2018年4月，Backblaze宣布了云计算合作伙伴关系，它将直接将Backblaze的数据中心与其合作伙伴Packet和ServerCentral连接起来，为存储在B2 Cloud Storage中的数据提供高性能的云计算，而无需支付任何费用。 B2 Cloud Storage非常客气，有以下优点： 用户永久免费10GB直链存储 每天1GB下行流量 无限量的上传流量 每天下载请求2500次免费 每天上传请求2500次免费 基于CloudFlareCDN 而且超出免费额度的价钱也十分合理【不过我不会往里头冲一分钱的！】 然而我偶然得知，Backblaze加入了CloudFlare的 带宽联盟（ Bandwidth Alliance） Backblaze与CloudFlare之间的流量直接免费，也就是每天无限量下行流量，配上CloudFlare超长缓存，每天下载请求无限次免费。 注册我们点击这里去注册一个账号，建议使用google账号注册，会更加方便 新建桶 新建一个桶，设置为公开： 上传一个文件，点击右边的信息按钮，我们要在这里获取一些信息： 自定义域名这一步需要你有个域名，开个子域给图床： 看到你上面的friendly url，把他的域名f00x.backblaze2.com解析到你想要的域名 这里我们先去Cloudflare新建一个workers 代码如下 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182&#x27;use strict&#x27;;const b2Domain = &#x27;assets.qystudio.ml&#x27;; // configure this as per instructions aboveconst b2Bucket = &#x27;qystupic&#x27;; // configure this as per instructions aboveconst b2UrlPath = `/file/$&#123;b2Bucket&#125;/`;addEventListener(&#x27;fetch&#x27;, event =&gt; &#123; return event.respondWith(fileReq(event));&#125;);// define the file extensions we wish to add basic access control headers toconst corsFileTypes = [&#x27;png&#x27;, &#x27;jpg&#x27;, &#x27;gif&#x27;, &#x27;jpeg&#x27;, &#x27;webp&#x27;, &#x27;css&#x27;, &#x27;js&#x27;, &#x27;html&#x27;];// backblaze returns some additional headers that are useful for debugging, but unnecessary in production. We can remove these to save some sizeconst removeHeaders = [ &#x27;x-bz-content-sha1&#x27;, &#x27;x-bz-file-id&#x27;, &#x27;x-bz-file-name&#x27;, &#x27;x-bz-info-src_last_modified_millis&#x27;, &#x27;X-Bz-Upload-Timestamp&#x27;, &#x27;Expires&#x27;];const expiration = 31536000; // override browser cache for images - 1 year// define a function we can re-use to fix headersconst fixHeaders = function(url, status, headers)&#123; let newHdrs = new Headers(headers); // add basic cors headers for images if(corsFileTypes.includes(url.pathname.split(&#x27;.&#x27;).pop()))&#123; newHdrs.set(&#x27;Access-Control-Allow-Origin&#x27;, &#x27;*&#x27;); &#125; // override browser cache for files when 200 if(status === 200)&#123; newHdrs.set(&#x27;Cache-Control&#x27;, &quot;public, max-age=&quot; + expiration); &#125;else&#123; // only cache other things for 5 minutes newHdrs.set(&#x27;Cache-Control&#x27;, &#x27;public, max-age=300&#x27;); &#125; // set ETag for efficient caching where possible const ETag = newHdrs.get(&#x27;x-bz-content-sha1&#x27;) || newHdrs.get(&#x27;x-bz-info-src_last_modified_millis&#x27;) || newHdrs.get(&#x27;x-bz-file-id&#x27;); if(ETag)&#123; newHdrs.set(&#x27;ETag&#x27;, ETag); &#125; // remove unnecessary headers removeHeaders.forEach(header =&gt; &#123; newHdrs.delete(header); &#125;); return newHdrs;&#125;;async function fileReq(event)&#123; const cache = caches.default; // Cloudflare edge caching const url = new URL(event.request.url); if(url.host === b2Domain &amp;&amp; !url.pathname.startsWith(b2UrlPath))&#123; url.pathname = b2UrlPath + url.pathname; &#125; let response = await cache.match(url); // try to find match for this request in the edge cache if(response)&#123; // use cache found on Cloudflare edge. Set X-Worker-Cache header for helpful debug let newHdrs = fixHeaders(url, response.status, response.headers); newHdrs.set(&#x27;X-Worker-Cache&#x27;, &quot;true&quot;); return new Response(response.body, &#123; status: response.status, statusText: response.statusText, headers: newHdrs &#125;); &#125; // no cache, fetch image, apply Cloudflare lossless compression response = await fetch(url, &#123;cf: &#123;polish: &quot;lossless&quot;&#125;&#125;); let newHdrs = fixHeaders(url, response.status, response.headers); if(response.status === 200)&#123; response = new Response(response.body, &#123; status: response.status, statusText: response.statusText, headers: newHdrs &#125;); &#125;else&#123; response = new Response(&#x27;File not found!&#x27;, &#123; status: 404 &#125;) &#125; event.waitUntil(cache.put(url, response.clone())); return response;&#125; 然后在workers的触发器里面找到路由设置为 域名/* 到这里我们离成功只有一步之遥 配置缓存储存桶设置我们打开这里 点击桶，进入桶设定： 里头写上: &#123;&quot;cache-control&quot;:&quot;max-age=43200000&quot;&#125; 这个意思是强制缓存 43200000 ,大约是50天.然而这里注意一下，时间太长有个问题，你修改一张图片，外面可以能要50天才能更改，这样只能通过手动清除缓存做到了。 点击CORS设置,选择: 与所有HTTPS来源共享此存储桶中的所有内容。 cf缓存设置在域名里面找到规则，新建规则如下设置 到这里我们就大功告成了，完结撒花 其他你甚至还可以配置国内cdn回源到这里，以提升速度 就像这样 推荐文章（由hexo文章推荐插件驱动）qexo多作者解决方���为hexo加一个自动部署github图床之弃用jsd(图床���用npm镜像加速)","categories":[{"name":"hexo","slug":"hexo","permalink":"https://www.qystu.cc/categories/hexo/"},{"name":"建站","slug":"hexo/建站","permalink":"https://www.qystu.cc/categories/hexo/%E5%BB%BA%E7%AB%99/"}],"tags":[{"name":"hexo","slug":"hexo","permalink":"https://www.qystu.cc/tags/hexo/"},{"name":"图床","slug":"图床","permalink":"https://www.qystu.cc/tags/%E5%9B%BE%E5%BA%8A/"}],"author":"qystudio"},{"title":"年度回顾与展望","slug":"年度回顾与展望","date":"2022-12-30T10:43:35.000Z","updated":"2022-12-31T03:40:08.000Z","comments":true,"path":"posts/47618.html","link":"","permalink":"https://www.qystu.cc/posts/47618.html","excerpt":"","text":"前言又到了年末之时距离2023你还剩下两天，这时写这篇文章正好 回顾回顾这一年青云做了许许多多的改动 青云工作室博客更新了主题，更加简洁大方 青云更换了域名 由qystudio.ltd改为qystu.cc 青云迁移了所有服务 青云工作室进行了备案，主体为拾小染网络科技（上海）有限责任公司 青云工作室转移了主体，隶属于武汉初柒网络科技有限公司，保留独立性 青云负责人加入了武汉初柒网络科技有限公司 青云将网站移动到了dcloud中，提高了网络速度 青云招收了3位作者为青云提供文章 青云更换了serviceworker脚本来加速网站 青云更换了sw安装脚本 青云部署了新的jsd代理cdn.chuqis.com不仅支持jsd的常规使用同时代理了cdnjs且支持了青云的图床使用 展望我们希望未来可以 招收更多作者加入青云博客，尝试多作者模式 与携手初柒科技获得更多发展 更新博客主题，极致优化速度 优化SEO，对蜘蛛优化，增加搜索引擎流量 推广青云博客，收获更多流量 更多参与开源社区活动，聚焦公益项目 远航最后希望在新的一年了，青云可以扬帆远航 同时预祝大家新年快乐😀 大吉大利","categories":[{"name":"qystudio","slug":"qystudio","permalink":"https://www.qystu.cc/categories/qystudio/"}],"tags":[{"name":"生活","slug":"生活","permalink":"https://www.qystu.cc/tags/%E7%94%9F%E6%B4%BB/"},{"name":"青云","slug":"青云","permalink":"https://www.qystu.cc/tags/%E9%9D%92%E4%BA%91/"},{"name":"2023","slug":"2023","permalink":"https://www.qystu.cc/tags/2023/"}],"author":"jason"},{"title":"netlify反代","slug":"netlifyredirects","date":"2022-12-29T13:18:42.000Z","updated":"2022-12-30T08:38:37.000Z","comments":true,"path":"posts/23787.html","link":"","permalink":"https://www.qystu.cc/posts/23787.html","excerpt":"","text":"起因我在使用netlify部署博客后，经过测试速度，我觉得作为一款非国内产品速度相当不错 所以我想到了我部署在vercel的jsd反代如果我把反代部署在netlify那么cdn的速度会有提升说干就干 ps:如果你不想看我叨叨，你可以点击跳转到代码处直接查看代码使用 需要的东西一个netlify账号 一个github账号 查阅文档打开netlify的文档查看 格式找到了路由设置的相关内容后可以看到这些内容和格式 If you specify your redirect rules in your Netlify configuration file, you can use a more structured configuration format with additional capabilities such as signed proxy redirects. In a netlify.toml file, we use TOML’s array of tables to specify each individual redirect rule. The following keywords are available: from: The path you want to redirect. to: The URL or path you want to redirect to. status: The HTTP status code you want to use in that redirect; 301 by default. force: Whether to override any existing content in the path or not; false by default. Visit the shadowing instructions for more details. query: Query string parameters REQUIRED to match the redirect. Visit the query parameters instructions for more details. conditions: Conditions to match the redirect, including country, role, and cookie presence conditions. headers: Additional request headers to send in proxy redirects. signed: Name of an environment variable for signed proxy redirects. 目录反代目录匹配因为反代jsd同时需要反代jsd目录下的所有文件，所以这里需要有一个路径匹配 原文如下 An asterisk indicates a splat that will match anything that follows it. You can use the splat in your rewrites or redirects like this: /news/* /blog/:splat This would redirect paths like /news/2004/01/10/my-story to /blog/2004/01/10/my-story. 所以我需要在 from的/后面添加* to的/后面添加:splat 实践代码这里我需要http返回状态码为200 这样我的国内服务器就能再次反代netlify的cdn 整合完上面的设置配置就是这样了 这里我们需要把下面的代码放在新建名为 netlify.toml的文件中 注意这里的文件必须在仓库的根目录 123456[[redirects]]from = &quot;/*&quot;to = &quot;https://cdn.jsdelivr.net/:splat&quot;status = 200force = trueheaders = &#123;X-From = &quot;Netlify&quot;&#125; 然后把这个仓库上传到github 之后我们点击这里在netlify新建一个项目并且选择已经上传到github仓库 然后等待部署完成即可 完结撒花👏","categories":[{"name":"web","slug":"web","permalink":"https://www.qystu.cc/categories/web/"}],"tags":[{"name":"netlify","slug":"netlify","permalink":"https://www.qystu.cc/tags/netlify/"},{"name":"反代","slug":"反代","permalink":"https://www.qystu.cc/tags/%E5%8F%8D%E4%BB%A3/"},{"name":"jsdelivr","slug":"jsdelivr","permalink":"https://www.qystu.cc/tags/jsdelivr/"}],"author":"qystudio"},{"title":"serviceworkers首屏优化","slug":"sw首屏优化","date":"2022-11-18T06:40:54.000Z","updated":"2023-04-27T13:32:33.385Z","comments":true,"path":"posts/52948.html","link":"","permalink":"https://www.qystu.cc/posts/52948.html","excerpt":"","text":"本片文章默认你已经会使用sw来加速网站了 前言前阵子，我开始用cyf大佬的sw加速方案，前前后后我使用了三个不同作者所开发的sw加速，但是因cyf的代码过于难以了解（我菜），而去使用了yfun大佬的代码，以便网页在前端被更新 为什么要首屏优化在使用cyf大佬的方案是我发现了cyf的首屏优化方案 事实上，ServiceWorker最显著的缺点是要在第一次加载网页安装后，刷新一次才能激活。即访客第一次访问是不受sw控制的。换句话说，访客首屏不受加速，其加载速度与你的服务器有直接联系 [虽然安装完成后就起飞了,但安装前就是屑]。 更加令人抓狂的是，在首屏加载时，静态资源会被直接获取，并且不缓存，而sw激活后又会强制第二次获取，拉跨速度。不过我们可以尽可能弱化这一劣势。我们可以用js打断所有的请求，以确保首屏只加载一个html和一个sw.js，其余资源都不会加载，降低首屏加载延迟。 所以我尝试使用了cyf大佬的首屏优化，而且有一个帅气的sw安装页面谁不爱呢 我前后使用了两种首屏优化样式这里都分享出来 方案1（by cyfan） 打开复制源码 12345678910111213141516171819202122232425262728293031323334353637383940414243&lt;!-- sw前端竞速 --&gt;&lt;script&gt;(async () =&gt; &#123;//使用匿名函数确保body已载入 /* QYBlogHelper_Set 存储在LocalStorage中,用于指示sw安装状态 0 或不存在 未安装 1 已打断 2 已安装 3 已激活,并且已缓存必要的文件(此处未写出,无需理会) */ if (&#x27;serviceWorker&#x27; in navigator) &#123; //如果支持sw if (Number(window.localStorage.getItem(&#x27;QYBlogHelper_Set&#x27;)) &lt; 1) &#123; setTimeout(async () =&gt; &#123; console.log(&#x27;检测到您的浏览器没有安装QYBlogHelper，开始注册&#x27;) window.stop() window.localStorage.setItem(&#x27;QYBlogHelper_Set&#x27;, 1) const replacehtml = await fetch(&#x27;https://npm.elemecdn.com/chenyfan-blog@1.0.13/public/notice.html&#x27;) document.body.innerHTML = await replacehtml.text() $(&#x27;#info&#x27;).innerText = &#x27;尝试安装QYBlogHelper...&#x27;; &#125;, 0); &#125; const $ = document.querySelector.bind(document);//语法糖 navigator.serviceWorker.register(`/sw.js?time=$&#123;new Date().getTime()&#125;`)//随机数,强制更新 .then(async () =&gt; &#123; if (Number(window.localStorage.getItem(&#x27;QYBlogHelper_Set&#x27;)) &lt; 2) &#123; setTimeout(() =&gt; &#123; $(&#x27;#info&#x27;).innerText = &#x27;安装成功,稍等片刻...&#x27;; &#125;, 0); setTimeout(() =&gt; &#123; window.localStorage.setItem(&#x27;QYBlogHelper_Set&#x27;, 2) console.log(&#x27;准备跳转&#x27;) window.location.reload()//刷新,以载入sw &#125;, 500)//安装后等待500ms使其激活 &#125; &#125;) .catch(err =&gt; console.error(`QYBlogHelperError:$&#123;err&#125;`)) &#125; else &#123; setTimeout(() =&gt; &#123; $(&#x27;#info&#x27;).innerText = &#x27;很抱歉,我们已不再支持您的浏览器.&#x27;; &#125;, 0); &#125;&#125;)()&lt;/script&gt; 方案2（by yfun） 打开复制源码 123456789101112131415161718192021222324252627282930313233343536373839&lt;!-- sw前端竞速 --&gt;&lt;script&gt;(async () =&gt; &#123;//使用匿名函数确保body已载入 /* QYBlogHelper_Set 存储在LocalStorage中,用于指示sw安装状态 0 或不存在 未安装 1 已打断 2 已安装 3 已激活,并且已缓存必要的文件(此处未写出,无需理会) */ if (&#x27;serviceWorker&#x27; in navigator) &#123; //如果支持sw if (Number(window.localStorage.getItem(&#x27;QYBlogHelper_Set&#x27;)) &lt; 1) &#123; setTimeout(async () =&gt; &#123; console.log(&#x27;检测到您的浏览器没有安装QYBlogHelper，开始注册&#x27;) window.stop() window.localStorage.setItem(&#x27;QYBlogHelper_Set&#x27;, 1) const replacehtml = await fetch(&#x27;https://npm.elemecdn.com/qycdn@0.9.13/html/swinstall.html&#x27;) document.body.innerHTML = await replacehtml.text() &#125;, 0); &#125; const $ = document.querySelector.bind(document);//语法糖 navigator.serviceWorker.register(`/sw.js?time=$&#123;new Date().getTime()&#125;`)//随机数,强制更新 .then(async () =&gt; &#123; if (Number(window.localStorage.getItem(&#x27;QYBlogHelper_Set&#x27;)) &lt; 2) &#123; setTimeout(() =&gt; &#123; window.localStorage.setItem(&#x27;QYBlogHelper_Set&#x27;, 2) console.log(&#x27;准备跳转&#x27;) window.location.reload()//刷新,以载入sw &#125;, 500)//安装后等待500ms使其激活 &#125; &#125;) .catch(err =&gt; console.error(`QYBlogHelperError:$&#123;err&#125;`)) &#125; else &#123; setTimeout(() =&gt; &#123; console.log(&#x27;很抱歉,我们已不再支持您的浏览器&#x27;); &#125;, 0); &#125;&#125;)()&lt;/script&gt; 注意事项我们尽可能将打断代码提到&lt;head&gt; 以确保不被其他资源堵塞，对于hexo来说打开主题的head.ejs，在&lt;head&gt;标签靠前的位置中加入，否则可能达不到理想的加速效果推荐文章（由hexo文章推荐插件驱动）qexo多作者解决方案为hexo加一个自动部署qexo的搭建与使用部署团队服务导航网站 Team-nav","categories":[{"name":"web","slug":"web","permalink":"https://www.qystu.cc/categories/web/"}],"tags":[{"name":"前端","slug":"前端","permalink":"https://www.qystu.cc/tags/%E5%89%8D%E7%AB%AF/"},{"name":"博客","slug":"博客","permalink":"https://www.qystu.cc/tags/%E5%8D%9A%E5%AE%A2/"},{"name":"web","slug":"web","permalink":"https://www.qystu.cc/tags/web/"},{"name":"sw","slug":"sw","permalink":"https://www.qystu.cc/tags/sw/"}],"author":"青云工作室"},{"title":"阿里云搭建frp服务实现本地内网穿透","slug":"阿里云搭建frp服务实现本地内网穿透","date":"2022-10-23T03:15:33.000Z","updated":"2022-10-23T03:34:51.000Z","comments":true,"path":"posts/38304.html","link":"","permalink":"https://www.qystu.cc/posts/38304.html","excerpt":"","text":"背景利用阿里云搭建frp服务，本地frp客户端来实现内网穿透，来达到访问没有公网ip的远程机器 frp服务端搭建首先我们先安装一键部署frp的脚本,如果是阿里云的服务器直接用以下源： Aliyun123wget https://code.aliyun.com/MvsCode/frps-onekey/raw/master/install-frps.sh -O ./install-frps.shchmod 700 ./install-frps.sh./install-frps.sh install 首先选择下载源：： 默认是阿里云 回车 frp的监听端口我选7000 默认是5443默认就直接回车 vhost_http_port端口默认是80,但是我80端口已经给nginx了所以随便设置了8080,因为我用不到这个 同上我默认的443端口也是被占用了，所以直接随机给了4433 dashboard是监控面板网址的端口我们直接用默认的回车就行 监控面板的用户名和密码设置,接下来的一些日志配置直接回车就行,配置好后: 以上是我的frp服务器的配置 我已经把6443端口用nginx转发到我自己的域名上了登录就可以看到各种仪表盘 本地frp客户端搭建进入github下载,我选择的是64位windows 解压后修改frpc.ini文件配置,这是我的配置 12345678910[common]server_addr = 47.110.134.2 #frp服务器地址server_port = 7000 #frp服务器监听端口token = hBanuRmGrwNlNe10 #服务器token是随机的在上图的配置中有[mstsc]type = tcplocal_ip = 127.0.0.1 local_port = 3389 #因为我是开远程桌面RDP所以是映射3389端口remote_port = 6000 进入cmd 运行frp客户端 1frpc.exe -c frpc.ini 报错：[service.go:103] login to server failed 原因是没有打开阿里云服务器安全组的7000端口,现在去打开 再次运行后, login to server success成功 试试远程连接，连不上 原因是没有打开阿里云安全组的6000端口,现在去打开 再次连接可以连上了 最后还有一点小坑，这里的登陆密码不能用pin码,我用户密码忘记了,需要用cmd管理员模式运行 1net user username password 重置密码,这里非常感谢钢明兄 其他命令Uninstall（卸载）1./install-frps.sh uninstall Update（更新）1./install-frps.sh update","categories":[{"name":"web","slug":"web","permalink":"https://www.qystu.cc/categories/web/"}],"tags":[{"name":"阿里云","slug":"阿里云","permalink":"https://www.qystu.cc/tags/%E9%98%BF%E9%87%8C%E4%BA%91/"},{"name":"frp","slug":"frp","permalink":"https://www.qystu.cc/tags/frp/"},{"name":"内网穿透","slug":"内网穿透","permalink":"https://www.qystu.cc/tags/%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F/"}],"author":"qystudio"},{"title":"为hexo加一个自动部署","slug":"hexo action","date":"2022-07-14T06:40:10.000Z","updated":"2022-12-30T08:34:07.000Z","comments":true,"path":"posts/61056.html","link":"","permalink":"https://www.qystu.cc/posts/61056.html","excerpt":"","text":"Hexo 博客的Github Action自动化部署是什么？简单说，就是把hexo博客的源代码上传到github代码仓库，github在代码发生变动的时候，自动通过安装一系列nodejs环境和相关依赖，生成html页面到github pages仓库。 再简单点说，就是把本地生成博客的工作，全部交给github执行。 为什么要actionhexo 是一款快速、简洁且高效的静态博客框架，因为它的高可定制性，所以深受各个程序员的喜爱，我也曾一头扎进去研究过，魔改了vlts主题，在使用过程中，也渐渐的发现了一些问题 情景一，当浏览自己某篇博客时发现了一些错误之后想要马上修改时，将要经历经历一下步骤在本地的hexo博客文件夹中找到source/_post文件夹找到那个md文件，打开修改然后还要经历hexo clean,hexo g，hexo d 情景二，当想要马上写一篇博客时，需要经历以下步骤在博客根目录中hexo n “博客名”点击进入source/_post文件夹中找到这个md文件并打开写博客然后还要经历hexo clean,hexo g，hexo d且hexo是由nodejs编写的，性能不佳，生产需要较长时间action的高性能可以解决这些问题 这样做的好处随时随地都能修改或增加博文 使用hpp,qexo,wexa等编辑器 前言网上这种教程一大堆，有的装了插件不一样（gulp等等），有的部署方法（ssh、令牌）不一样，以至于自动化部署的文件写法也不一样。 我这里尽量写一个适合小白和大多数hexo博客的一个自动化部署的教程。 总体步骤 ： 使用Github令牌部署hexo博客 Github新建一个私有仓库，并上传hexo博客源码 配置Github Action实现自动化部署 How to do获取github令牌前往github新建一个token 注意token只会显示一次注意保存，同时注意``注意``注意千万不要暴露token 注意先保存，等新建仓库后填入 在源码仓库的密钥处填入 PERSONAL_TOKEN里面写密钥即可 上传源码首先初始化本地仓库 1234git init git add . git commit -m &quot;first commit&quot; git branch -M main git remote add origin https://github.com/username/xxx.git 注意自己看着改 然后把在.git/config里面修改类似这样的远程路径https://github.com/username/xxx.git改成https://TOKEN@github.com/username/xxx.git 1git push -u origin main 然后你就可以看到你的源码被推送到了远程仓库 配置自动流程既然做的这一步了，就只差一步了配置自动化流程，帮助我们自动生成网页文件并推送到静态页面仓库 打开action new workflow 或者在本地新建.github/workflows/main.yml的文件 填入以下代码 已经很详细的看了上面的阐述，并且我不会直接照搬 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950name: Deploy&#x27;on&#x27;: - workflow_dispatch - pushjobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 with: ref: main - name: Setup Node uses: actions/setup-node@v2 with: node-version: 16.x - name: Install Hexo run: | npm install hexo-cli -g npm install -g gulp //如果没有gulp把这行去掉 - name: Cache Modules uses: actions/cache@v2.1.1 id: cache-modules with: path: node_modules key: $&#123;&#123;runner.OS&#125;&#125;-$&#123;&#123;hashFiles(&#x27;**/package-lock.json&#x27;)&#125;&#125; - name: Install Dependencies if: steps.cache-modules.outputs.cache-hit != &#x27;true&#x27; run: | npm ci - name: Setting Token run: | sed -i &quot;s/.Baidu_Token/$&#123;&#123; secrets.BAIDU_TOKEN &#125;&#125;/&quot; _config.yml - name: Generate run: | hexo clean hexo recommend hexo generate gulp //如果没有gulp把这行去掉 git clone https://github.com/username/username.github.io.git .public - name: Deploy uses: peaceiris/actions-gh-pages@v3 with: personal_token: $&#123;&#123; secrets.PERSONAL_TOKEN &#125;&#125; publish_dir: ./public external_repository: username/username.github.io publish_branch: main exclude_assets: &#x27;&#x27; user_name: github-actions[bot] user_email: github-actions[bot]@users.noreply.github.com 推荐文章（由hexo文章推荐插件驱动）qexo多作者解决方案DIY最低成本图床serviceworkers首屏优化","categories":[{"name":"hexo","slug":"hexo","permalink":"https://www.qystu.cc/categories/hexo/"},{"name":"web","slug":"web","permalink":"https://www.qystu.cc/categories/web/"}],"tags":[{"name":"hexo","slug":"hexo","permalink":"https://www.qystu.cc/tags/hexo/"},{"name":"博客","slug":"博客","permalink":"https://www.qystu.cc/tags/%E5%8D%9A%E5%AE%A2/"},{"name":"action","slug":"action","permalink":"https://www.qystu.cc/tags/action/"},{"name":"建站","slug":"建站","permalink":"https://www.qystu.cc/tags/%E5%BB%BA%E7%AB%99/"}],"author":"青云工作室"},{"title":"关于接管运营博客的事项","slug":"关于接管运营博客的事项","date":"2022-07-11T14:47:03.000Z","updated":"2022-07-11T14:48:06.000Z","comments":true,"path":"posts/44737.html","link":"","permalink":"https://www.qystu.cc/posts/44737.html","excerpt":"","text":"原因回顾青云工作室因为一些私人原因，没有太多时间来运营此网站，于是便在2022/4/11开始停更 解决方案在经过慎重考虑之后，Jason将文章更新和友链维护的工作交给了我，而网站美化，维护则由他继续负责","categories":[],"tags":[],"author":"Kindle deep"},{"title":"闭关修炼一月后，我出来啦","slug":"再起航","date":"2022-07-04T12:55:29.000Z","updated":"2022-07-06T05:48:15.000Z","comments":true,"path":"posts/51585.html","link":"","permalink":"https://www.qystu.cc/posts/51585.html","excerpt":"","text":"经历了中考我解放啦相信大家可以从标题中看到我的兴奋。 经历了一个月的中考备考，收获了很多累死我了 考的不错，报喜啦 暑假准备做什么？维护博客 魔改主题(偷偷说一句pr有问题) 催狗子熙写官网 挑战五天不停更 写一个新的友链提交 练字 预习高中数理化 搞点钱 总结如果还有再补充","categories":[{"name":"哔哔","slug":"哔哔","permalink":"https://www.qystu.cc/categories/%E5%93%94%E5%93%94/"}],"tags":[{"name":"起航","slug":"起航","permalink":"https://www.qystu.cc/tags/%E8%B5%B7%E8%88%AA/"}],"author":"Jason"},{"title":"(转)论《河中石兽》的理论是否正确","slug":"论《河中石兽》的理论是否正确","date":"2022-05-29T10:12:12.000Z","updated":"2022-05-29T10:12:12.000Z","comments":true,"path":"posts/51727.html","link":"","permalink":"https://www.qystu.cc/posts/51727.html","excerpt":"","text":"论假设老兵解释有道理，即河中石兽可以向上游翻滚，则其每次翻滚的动能必然来自势能，即重心的降低，因此，可以肯定在翻滚数次之后，其重心必然越降越低，直至没入河床之下，所以，除非有其它能量来源推动石像，否则绝无可能翻滚到上游数里。 近日读到一篇新闻报道，说都江堰河道施工中挖到汉代无头石像。报道说近年一共挖到包括战国时代都江堰之父李冰在内的5尊石像。有人推测它们可能就是历史记载中的“三神石人”，但无法确认。报道转而叙述，史载元代治水专家曾造三十吨重的铁牛，明代曾铸造五吨重的铁龟，目前尚未发掘到。那赶紧到下游附近去找找铁牛和铁龟啊。然而，民俗学家蒋永志“给出了一个观点，铁牛与铁龟并不在鱼嘴下游，而在上游。据他介绍，铁牛和铁龟非常重，按照重物在水流中活动的规律，越重的东西可能往上移而不是往下游移。因此，他认为这几件宝物不可能在下游，而是在鱼嘴上游。” 十之八九，蒋永志的观点“重物在水流中活动的规律”来自初中一年级语文课本，选自纪晓岚《阅微草堂笔记》的一篇《河中石兽》。 该文大意是说，沧州一座庙里的石兽，估计是石狮子之类，多年前沉入了河中，下游找了十多里没找到。庙里的教书先生说石重沙轻，肯定在原处的泥沙下面。而一老水手则说肯定在上游，因为水会把石像底部朝向上游方向的沙子冲走，形成坑穴，导致石像向上游翻滚。故事最后说果然在上游几里外找到石像。 “河里的石狮子水越冲越往上游走，还能走几十里”，你信吗？但是多数语文老师还会手脚并用，连比带画地为那些处于惊讶和渴求知识的幼小的心灵解释其背后的物理原理。“老水手”说的，能错吗？“实践出真知”啊。看来知识分子要接受贫下中农再教育并不是毛主席的独创，几百年前纪晓岚就知道拿个教书匠来衬托劳动人民的“丰富智慧”。我现在仍然记得当时自己因为无论如何不能理解这些艰深智慧而感到自惭形秽。 然而，这是真的吗？这么重要的一个现象，为什么我在之后多年的学习当中再也没有键到过类似的描述？我通过多个英文关键词在google上没有搜到任何相关记述。难道国外的劳动人民没有如此丰富的“智慧”？有人质疑过吗？有人做过实验吗？这篇课文仍然在初中的语文课本中吗？ 实际上，这个问题不需要去搜什么文献，只需坐下来运用中学的物理知识分析一下就能得出向上游翻滚几十里是不合理的。首先，水中裹携沙子的激流在石像的下游一侧水流突然减速，沙子沉积，的确会阻碍石像向下游冲刷。此外，因为石兽逆流一面沙子被冲刷而形成坑穴，因此，石像有很大可能会滑倒这个坑穴力。这和上面那个实验的结果是一致的，也就是说，石像的确可能略微向上游方向下滑少许。然而，下滑的前提是重心降低，怎么可能跑到上游势能高的地方呢？ “实验是检验理论的唯一标准”。在中文搜索中发现真的有中学语文老师做过简单实验。在“中国教师梁恕俭”的博客中《你怀疑过“河中石兽”吗》一文提到，梁老师把砖头放到沙子上模拟这个河中石兽的情景，然后用手挖去一面的沙子以模拟水流对沙子的冲击，结果呢，砖头根本不会翻转，而是直接整体滑到坑里，更没有也不可能“翻滚到上游”。梁老师还画了一个示意图，做了石块的翻动的受力分析，否定了石像向上游远距离翻滚的可能性。 有的人提出，有没有可能水流不断晃动石块，下面不断有沙子垫高石块，然后垫高了，又滑下，以至于游走到上游去了呢？我认为这不可能。第一，水流小的话晃不动大石块，水流太大又会连沙带石一齐冲下去。第二，哪条河中没有沟沟坎坎？哪条河中没有零零碎碎石块？难道大石像不会被卡到石块中？第三，在极其罕见的情况下它抬升了一下有可能，成年累月地被水流拍击的情况下逆流抬升向上走几十里，这除了相信这个石像真的变成“神兽”，否则绝无可能。简单计算可知，十年走十里，也就是每年走500米，每天要走一米三。我看这石像恐怕不是在走，而是在跑。 这篇《河中石兽》如此可疑，也不奇怪，因为它出自纪晓岚《阅微草堂笔记》卷十六《姑妄听之》。姑妄听之？。。。就这么一篇道听途说、连古人都不信的文章，在2013年人教版初中语文教材修订中，在大量的增删中，竟然得以保留。我猜想，一是因为这篇文章的内容奇特，能够吸引“阅读兴趣”，另一方面，课本里其它文章绝大多数都是“为赋新词强说愁”的感性文章，就这么一篇能和物理知识扯上关系的知性文章，不舍得删。 这下可好，现在当年的初中生成长为“民俗专家”了，“姑妄听之”也演变成了“重物在水流中活动的规律”了，开始为长江打捞提供严肃建议了。。。 结最后，请教一下水动力学教授，专家， (1) 在你们的教学实验之中，是否听说过水沙冲击下重物反而会向上游长距离移动的任何例子？ (2) 如果上述问题的答案是否定的，那么初中语文课本给出这样一篇明显违反能量守恒原理的文章，要不要建议教育部从课本中删去？谁来提这个建议呢？ 评违反能量守恒原理的文章在课本里有意思吗。。。","categories":[{"name":"语文","slug":"语文","permalink":"https://www.qystu.cc/categories/%E8%AF%AD%E6%96%87/"}],"tags":[{"name":"语文","slug":"语文","permalink":"https://www.qystu.cc/tags/%E8%AF%AD%E6%96%87/"}],"author":"jason"},{"title":"悼念","slug":"悼文-carrotzhou","date":"2022-04-26T13:34:49.000Z","updated":"2022-04-26T13:34:49.000Z","comments":true,"path":"posts/9478.html","link":"","permalink":"https://www.qystu.cc/posts/9478.html","excerpt":"","text":"之前在tg收到的信息，今天在微信公众号得到证实，胡萝卜周离世 胡萝卜周的准确离开时间是在今年一月份，根据他父亲的描述，他因一氧化碳中毒而意外身亡。 痛心！一路走好","categories":[],"tags":[],"author":"青云工作室"},{"title":"github图床之弃用jsd(图床使用npm镜像加速)","slug":"github图床之弃用jsd","date":"2022-04-05T06:20:57.000Z","updated":"2023-04-27T13:32:33.385Z","comments":true,"path":"posts/34886.html","link":"","permalink":"https://www.qystu.cc/posts/34886.html","excerpt":"","text":"缘起2021/12/20日，赶在旧年的末尾，一则JSdelivrSSL证书错误缓缓上了v2ex论坛热点。 此前JSD由于各种原因,曾经不正常了一段时间,所以大家并未对此感冒.正当人们以为这只是JSdelivr每年一度的年经阵痛,发个issue,过一段时间就好了的时候.官方直接爆出大料:JSDelivr had lost their ICP license 由此可见,过去的几年里,当人们发现JSD对个人面向国内加速拥有者无与伦比的效果时,各种滥用方式层出不穷:图床曾一阵流行,国内搜索引擎JSdelivr十有八九都是作为图床的,连PicGo插件都出了Github+JSdelivr图床;猛一点的,直接做视频床,甚至为了突破单文件20M限制开发了一套ts切片m3u8一条龙服务;作妖的,托管了不少突破网络审查的脚本和规则集;寻死的,添加了大量的政治宗教敏感,有些甚至不配称为宗教,直接上来就是骗钱的. jsd并不是没有发布许可条款，但这并不能阻止白嫖大军的进程。在羊毛大军中，只要是你是免费的、公益的，你就要做好被薅爆的结果。但是薅羊毛的前提是羊还活着，倘若羊被薅死了，哪来的羊毛给诸君所薅？ 总之，不管怎样，JSDelivr在决定将节点设置为NearChina，可以肯定的是，在最近很长一段时间内，我们都无法享受国内外双料同时加速的快感，换句话说，jsd在中国就被永久地打入了冷宫。 npm发包Before Start那么我们怎么才能继续愉快的使用cdn加速呢 jsd 反代 npm 自建cdn绝对不可能😭 ，这太费钱包了 npm发包将github的cdn仓库编辑一个action使其在每次更新文件时把文件打包到npm仓库里 说做就做 workflows1234567891011121314151617181920212223242526272829303132name: npm-publish on: push: branches: - main workflow_dispatch: jobs: npm-publish: name: npm-publish runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Set up Node.js uses: actions/setup-node@master with: node-version: 12 registry-url: https://registry.npmjs.org - name: update run: | npm version patch - name: Publish run: | npm publish env: NODE_AUTH_TOKEN: $&#123;&#123; secrets.npm_token &#125;&#125; 这样就可以方便的分发cdn文件的npm了 镜像既然有npm，那么类似jsd的镜像就很多了 https://npm.elemecdn.com https://cdn.jsdelivr.net/npm https://unpkg.com https://u.pigax.cn/npm https://unpkg.pigax.cn/ https://cdn-jsd.pigax.cn/npm https://cdn1.tianli0.top/npm 需要许可 https://cdn.cnortles.top/npm https://jsd.hin.cool/npm https://jsdelivr.panbaidu.cn/npm 其他方案(前端竞速)去看cyfan的博客 小结这篇文章在2月就准备开始写了，憋到今天才发布 前端竞速不会的还在问，会用的同学已经用起来了，我的博客速度怎么样，留言告诉我 推荐文章（由hexo文章推荐插件驱动）qexo多作者解决方案DIY最低成本图床为hexo加一个自动部署","categories":[{"name":"hexo","slug":"hexo","permalink":"https://www.qystu.cc/categories/hexo/"}],"tags":[{"name":"hexo","slug":"hexo","permalink":"https://www.qystu.cc/tags/hexo/"},{"name":"cdn","slug":"cdn","permalink":"https://www.qystu.cc/tags/cdn/"},{"name":"加速","slug":"加速","permalink":"https://www.qystu.cc/tags/%E5%8A%A0%E9%80%9F/"}],"author":"青云工作室"},{"title":"停更通知","slug":"停更通知","date":"2022-03-24T00:29:21.000Z","updated":"2022-03-24T00:29:21.000Z","comments":true,"path":"posts/25002.html","link":"","permalink":"https://www.qystu.cc/posts/25002.html","excerpt":"","text":"停更青云团队由于一些原因，工作力不从心 经过慎重考虑，青云工作室准备在2022/4/11开始停更 重启时间重启时间预计定在8月中旬 再起航在8月重启网站时，我们将带来更好的网站，更快的速度 同时会重构开往的官网 预计我们会在开源美化的主题同时，尝试开源全部源码 而且青云将建立一个基于gitea的代码托管平台，拥有CI/CD 请耐心等待，青云将变得更好 聊天扯淡加群","categories":[],"tags":[],"author":"Jason"},{"title":"qexo的搭建与使用","slug":"qexo的搭建与使用","date":"2022-03-19T12:01:18.000Z","updated":"2022-03-19T12:01:18.000Z","comments":true,"path":"posts/37212.html","link":"","permalink":"https://www.qystu.cc/posts/37212.html","excerpt":"","text":"为什么写这篇文章你是否一直在找一个hexo后台，但不尽人意，或许在没有qexo之前，hpp是一个很好的选择，但是显然拥有更多能力的qexo是更好的选择 为什么qexo拥有如下功能 自定义图床上传图片 在线配置编辑 在线文章管理 在线页面管理 在线友链管理 较为完善的缓存功能 Webhook 清除缓存 自动检查更新 实验性的在线更新 开放的 API 那么看起来qexo是非常强大的 怎么用申请 MongoDB注册 MongoDB 账号 创建免费 MongoDB 数据库，区域推荐选择 AWS / N.Virginia (us-east-1) 在 Clusters 页面点击 CONNECT，按步骤设置允许所有 IP 地址的连接），创建数据库用户，并记录数据库连接信息，密码即为你所设置的值 一键部署点击按钮开始部署 重新进入项目，在项目设置界面添加环境变量 Environment Variables 名称 意义 示例 DOMAINS 你所允许通信的安全域名 注意双引号而且是英文半角 [“.vercel.app”, “127.0.0.1”, “.yoursite.com”] MONGODB_HOST MongoDB 连接地址 mongodb+srv://cluster0.xxxx.mongodb.net MONGODB_PORT MongoDB 通信端口 默认应填写 27017 27017 MONGODB_USER MongoDB 用户名 abudu MONGODB_DB MongoDB 数据库名 Cluster0 MONGODB_PASS MongoDB 密码 JWo0xxxxxxxx 在 Deployments 点击 Redeploy 开始部署，若没有 Error 信息即可打开域名进入初始化引导 相关api写在前面 Qexo 的 API 后方通常加上斜杠，否则可能出现重定向，可能会影响使用 若没有特殊说明，以下 API 都需要鉴权 ，具体方法为在 POST 或 GET 中添加项 token=”API密钥” Qexo 的 API 分为对公与程序内部调用两种，分别位于 pub 和 api 路径下，本文只说明对外 API，即可以通过 API 密钥进行校验 若没有特殊说明，本文提到的参数均需要 POST 请求 对公 APIpub/save/修改文件 file content 文件路径 内容 position-relative overflow-auto1234&#123; &quot;msg&quot;: &quot;OK!&quot;, &quot;status&quot;: true&#125; pub/save_post/修改文章 file content 文章名 内容 position-relative overflow-auto1234&#123; &quot;msg&quot;: &quot;OK!&quot;, &quot;status&quot;: true&#125; pub/save_draft/保存文章草稿 file content 文章名 内容 position-relative overflow-auto1234&#123; &quot;msg&quot;: &quot;OK!&quot;, &quot;status&quot;: true&#125; pub/new/新建文件 file content 文件路径 内容 position-relative overflow-auto1234&#123; &quot;msg&quot;: &quot;OK!&quot;, &quot;status&quot;: true&#125; pub/delete/删除文件 file 文件路径 position-relative overflow-auto1234&#123; &quot;msg&quot;: &quot;OK!&quot;, &quot;status&quot;: true&#125; pub/delete_post/删除文章 file 文章名 position-relative overflow-auto1234&#123; &quot;msg&quot;: &quot;OK!&quot;, &quot;status&quot;: true&#125; pub/create_webhook/创建 Webhook 事件 uri https://xxx/api/webhook/ position-relative overflow-auto1234&#123; &quot;msg&quot;: &quot;设置成功！&quot;, &quot;status&quot;: true&#125; pub/get_update/获取更新 position-relative overflow-auto12345678&#123; &quot;hasNew&quot;: false, &quot;newer&quot;: &quot;1.5.5&quot;, &quot;newer_link&quot;: &quot;https://github.com/am-abudu/Qexo/releases/tag/1.5.5&quot;, &quot;newer_time&quot;: &quot;2022-02-16 23:27:23&quot;, &quot;newer_text&quot;: &quot; 修复已知BUG; 添加友链清理功能 &quot;, &quot;status&quot;: true&#125; pub/get_posts/获取文章列表 position-relative overflow-auto12345678910111213141516171819&#123; &quot;status&quot;: true, &quot;posts&quot;: [ &#123; &quot;name&quot;: &quot;10&quot;, &quot;fullname&quot;: &quot;10.md&quot;, &quot;path&quot;: &quot;source/_posts/10.md&quot;, &quot;size&quot;: 592, &quot;status&quot;: true &#125;, &#123; &quot;name&quot;: &quot;11&quot;, &quot;fullname&quot;: &quot;11.md&quot;, &quot;path&quot;: &quot;source/_posts/11.md&quot;, &quot;size&quot;: 1118, &quot;status&quot;: true &#125; ]&#125; pub/get_pages/获取页面列表 position-relative overflow-auto123456789101112131415&#123; &quot;status&quot;: true, &quot;pages&quot;: [ &#123; &quot;name&quot;: &quot;404&quot;, &quot;path&quot;: &quot;source/404/index.md&quot;, &quot;size&quot;: 5059 &#125;, &#123; &quot;name&quot;: &quot;about&quot;, &quot;path&quot;: &quot;source/about/index.md&quot;, &quot;size&quot;: 141 &#125; ]&#125; pub/get_configs/获取配置列表 position-relative overflow-auto123456789101112131415&#123; &quot;status&quot;: true, &quot;configs&quot;: [ &#123; &quot;name&quot;: &quot;main.yml&quot;, &quot;path&quot;: &quot;.github/workflows/main.yml&quot;, &quot;size&quot;: 1500 &#125;, &#123; &quot;name&quot;: &quot;_config.butterfly.yml&quot;, &quot;path&quot;: &quot;_config.butterfly.yml&quot;, &quot;size&quot;: 27990 &#125; ]&#125; pub/get_images/获取图片列表 position-relative overflow-auto12345678910111213141516171819&#123; &quot;status&quot;: true, &quot;images&quot;: [ &#123; &quot;name&quot;: &quot;avatar-new-test3.png&quot;, &quot;size&quot;: 556194, &quot;url&quot;: &quot;https://xxx&quot;, &quot;date&quot;: &quot;2021-11-15 23:03:53&quot;, &quot;time&quot;: &quot;1636988633.7590833&quot; &#125;, &#123; &quot;name&quot;: &quot;image.png&quot;, &quot;size&quot;: 2080250, &quot;url&quot;: &quot;https://xxx&quot;, &quot;date&quot;: &quot;2022-02-15 16:05:39&quot;, &quot;time&quot;: &quot;1644912339.5202296&quot; &#125; ]&#125; pub/fix/自动修复程序 position-relative overflow-auto1234&#123; &quot;msg&quot;: &quot;尝试自动修复了 1 个字段，请在稍后检查和修改配置&quot;, &quot;status&quot;: true&#125; pub/friends/获取友链 无需鉴权 position-relative overflow-auto12345678910111213141516171819&#123; &quot;data&quot;: [ &#123; &quot;name&quot;: &quot;iMaeGoo’s Blog&quot;, &quot;url&quot;: &quot;https://www.imaegoo.com/&quot;, &quot;image&quot;: &quot;https://www.imaegoo.com/images/avatar.jpg&quot;, &quot;description&quot;: &quot;虹墨空间站&quot;, &quot;time&quot;: &quot;1642516414.3821218&quot; &#125;, &#123; &quot;name&quot;: &quot;Icarus&quot;, &quot;url&quot;: &quot;https://ppoffice.github.io/hexo-theme-icarus/&quot;, &quot;image&quot;: &quot;https://ppoffice.github.io/hexo-theme-icarus/img/avatar.png&quot;, &quot;description&quot;: &quot;本站主题&quot;, &quot;time&quot;: &quot;1642516682.7982264&quot; &#125; ], &quot;status&quot;: true&#125; pub/add_friend新增友链 name url image description status 名称 链接 图片URL 描述 状态(隐藏/显示) position-relative overflow-auto12345&#123; &quot;msg&quot;: &quot;添加成功！&quot;, &quot;time&quot;: &quot;1642516682.7982264&quot;, &quot;status&quot;: true&#125; pub/edit_friend编辑友链 name url image description time status 名称 链接 图片URL 描述 该友链的时间戳 状态(隐藏/显示) position-relative overflow-auto1234&#123; &quot;msg&quot;: &quot;修改成功！&quot;, &quot;status&quot;: true&#125; pub/del_friend删除友链 time 该友链的时间戳 position-relative overflow-auto1234&#123; &quot;msg&quot;: &quot;删除成功！&quot;, &quot;status&quot;: true&#125; pub/ask_friend申请友链 无需鉴权但需要在设置中开启 name url image description 名称 链接 图片URL 描述 position-relative overflow-auto12345&#123; &quot;msg&quot;: &quot;申请成功！&quot;, &quot;time&quot;: &quot;1642516682.7982264&quot;, &quot;status&quot;: true&#125; pub/last 已移除于1.6.2获取博主最后在线时间 已移除请使用/pub/status/ position-relative overflow-auto1234&#123; &quot;msg&quot;: &quot;1645543096&quot;, &quot;status&quot;: true&#125; pub/get_custom获取自定义的字段 无需鉴权 key 字段名 position-relative overflow-auto1234&#123; &quot;data&quot;: &quot;xxxx&quot;, &quot;status&quot;: true&#125; pub/get_notifications获取消息 position-relative overflow-auto123456789101112131415161718&#123; &quot;data&quot;: [ &#123; &quot;label&quot;: &quot;title&quot;, &quot;content&quot;: &quot;text&quot;, &quot;timestamp&quot;: &quot;1647668134.7664979&quot;, &quot;time&quot;: &quot;2022-03-19 13:35:34&quot; &#125;, &#123; &quot;label&quot;: &quot;title1&quot;, &quot;content&quot;: &quot;text1&quot;, &quot;timestamp&quot;: &quot;1647668134.7664979&quot;, &quot;time&quot;: &quot;2022-03-19 13:35:34&quot; &#125;, ], &quot;status&quot;: true&#125; pub/status获取博客基本信息 无需鉴权 position-relative overflow-auto1234567&#123; &quot;data&quot;: &#123; &quot;posts&quot;: &quot;68&quot;, &quot;last&quot;: &quot;1648050031&quot; &#125;, &quot;status&quot;: true&#125; 错误示例错误返回在大多数情况相同 position-relative overflow-auto1234&#123; &quot;msg&quot;: &quot;Error Message&quot;, &quot;status&quot;: false&#125; 更多去问abudu 终于水完这篇文章了 推荐文章（由hexo文章推荐插件驱动）qexo多作者解决方案serviceworkers首屏优化为hexo加一个自动部署","categories":[{"name":"hexo","slug":"hexo","permalink":"https://www.qystu.cc/categories/hexo/"}],"tags":[{"name":"博客","slug":"博客","permalink":"https://www.qystu.cc/tags/%E5%8D%9A%E5%AE%A2/"},{"name":"后台","slug":"后台","permalink":"https://www.qystu.cc/tags/%E5%90%8E%E5%8F%B0/"}],"author":"青云工作室"},{"title":"gulp更新4.0后的报错(gulp报Did you forget to signal async completion?)","slug":"gulp更新4.0后的报错","date":"2022-02-15T06:28:55.000Z","updated":"2022-02-15T06:28:55.000Z","comments":true,"path":"posts/55153.html","link":"","permalink":"https://www.qystu.cc/posts/55153.html","excerpt":"","text":"缘起今天我升级了gulp到4.0,在git三件套之后,网站并没有更新,我便登录了github查看action的运行状况,便有此文 问题在查看了日志最后发现了如下报错 1Did you forget to signal async completion? 在查看了gulp官网之后我人傻了,全是英文 这是一个新特性,简单来说就是原因: gulp 不再支持同步任务了。 因为同步任务常常会导致难以调试的细微错误,例如忘记从任务 (task)中返回 stream。 当你看到 “ Did you forget to signal async completion ?” 警告时,说明你并未使用前面提到的返回方式 意思是你没有写一个任务完成的返回通知(如果我描述有误评论区告诉我) 官网的原文是When you see the “Did you forget to signal async completion?” warning, none of the techniques mentioned above were used. You’ll need to use the error-first callback or return a stream, promise, event emitter, child process, or observable to resolve the issue. 解决方案官网的解决方案是Using async/await 即把原来类似这样的代码 1234const gulp = require(&#x27;gulp&#x27;);gulp.task(&#x27;testGulp&#x27;, () =&gt; &#123; console.log(&#x27;Hello World!&#x27;);&#125;); 改成这样 1234const gulp = require(&#x27;gulp&#x27;);gulp.task(&#x27;testGulp&#x27;, async() =&gt; &#123; await console.log(&#x27;Hello World!&#x27;);&#125;); 就正常了 更简单的方法在我一顿搜索之后发现了更简单的方法 在不使用文件流的情况下，向task的函数里传入一个名叫done的回调函数，以结束task 例如源代码是这样的 1gulp.task(&#x27;default&#x27;, gulp.series(&#x27;one&#x27;)); 那只要添加一个done的回调函数即可 1234gulp.task(&quot;default&quot;, done =&gt; &#123; gulp.series(&quot;one&quot;); done(); &#125;); 结语又码了700多字,如果有其他问题可以在评论区回复噢，我会尽量回复的😃 推荐文章（由hexo文章推荐插件驱动）qexo多作者解决方案serviceworkers首屏优化为hexo加一个自动部署","categories":[{"name":"web","slug":"web","permalink":"https://www.qystu.cc/categories/web/"}],"tags":[{"name":"前端","slug":"前端","permalink":"https://www.qystu.cc/tags/%E5%89%8D%E7%AB%AF/"},{"name":"gulp","slug":"gulp","permalink":"https://www.qystu.cc/tags/gulp/"},{"name":"博客","slug":"博客","permalink":"https://www.qystu.cc/tags/%E5%8D%9A%E5%AE%A2/"}],"author":"青云工作室"},{"title":"给博客加入链接安全跳转页(添加一个和CSDN一样的链接跳转页)","slug":"给博客加入链接安全跳转页","date":"2022-01-21T11:26:49.000Z","updated":"2022-01-21T11:26:49.000Z","comments":true,"path":"posts/25250.html","link":"","permalink":"https://www.qystu.cc/posts/25250.html","excerpt":"","text":"前言或是出于优化 SEO，或是出于加强网站体验，很多博客都给文章中的外部链接加上了个二次跳转，本博客也不例外。 在逛别人的博客的时候，发现了有一种叫 go.php的东西，可以经过自己站点的网页再跳转出去，方便SEO优化。但是像Hexo这类静态博客，想要从源HTML修改链接难度有点大，这里我们采用JavaScript动态修改 部署点我fork此仓库，然后在vercel中部署 或使用他部署 修改打开 js/index.js修改个人信息123456789101112131415161718192021222324252627282930313233343536373839404142434445$(document).ready(()=&gt;&#123;console.log(&quot;Running...&quot;) if(window.location.hash===&quot;&quot;)&#123; document.getElementsByClassName(&quot;loading-text&quot;)[0].innerHTML = &quot;参数错误，将跳转回青云工作室&lt;dot&gt;...&lt;/dot&gt;&quot; setTimeout(()=&gt;&#123; window.location.href = &quot;https://qystu.cc/&quot;/* 这里 */ &#125;,5000) return; &#125; let reg = new RegExp(/#(.*)/g); let base64 = reg.exec(window.location.hash) let link = window.atob(base64[1]) let referrer = document.referrer.split(&#x27;/&#x27;)[2]; referrer = referrer===undefined?&quot;&quot;:referrer.split(&#x27;.&#x27;) if(referrer[referrer.length-2]+&#x27;.&#x27;+referrer[referrer.length-1]!=&quot;pai233.top&quot; || document.referrer===&quot;&quot;)&#123; swal.fire(&#123; title: &quot;确定访问？&quot;, text: &quot;该网址不属于青云工作室，你确定要打开&quot;+link+&quot;吗？&quot;,/* 这里 */ type: &quot;warning&quot;, showCancelButton: true, confirmButtonColor: &quot;#DD6B55&quot;, confirmButtonText: &quot;确定&quot;, cancelButtonText: &quot;取消&quot;, &#125;).then(function(isConfirm)&#123; console.log(isConfirm) if (isConfirm) &#123; console.log(&#x27;setTimeout&#x27;) setTimeout(function()&#123; window.location.href = link &#125;,3000) &#125; else &#123; window.opener=null; window.open(&#x27;&#x27;,&#x27;_self&#x27;); window.close(); /* 微信浏览器关闭 */ WeixinJSBridge.call(&#x27;closeWindow&#x27;); &#125; &#125;) &#125;else&#123; setTimeout(function()&#123; window.location.href = link &#125;,3000) &#125;&#125;) 打开 js/checker.js123456789101112131415161718192021222324252627282930313233343536$(document).ready(function()&#123; checkLink();&#125;);// 若博客启用了Pjax请去掉注释。// $(document).on(&#x27;pjax:complete&#x27;, function () &#123;// checkLink();// &#125;);async function checkLink()&#123; let link = document.getElementsByTagName(&#x27;a&#x27;); for(var i=0;i&lt;link.length;i++)&#123; //如果你的博客添加了Gitter聊天窗，请去掉下方注释 if(link[i].href===&quot;&quot; /*|| link[i].className===&quot;gitter-open-chat-button&quot;*/)continue; if(!await checkLocalSite(link[i].href))&#123; link[i].href = &quot;[你的Go Jumper的部署地址]#&quot;+window.btoa(link[i].href) //console.log(&quot;edit.&quot;) &#125; &#125;&#125;async function checkLocalSite(url)&#123; try&#123; //console.log(&quot;check:&quot;,url) let reg = new RegExp(/\\/\\/(.*)\\//g) let domain = reg.exec(url)[1].split(&#x27;/&#x27;)[0].split(&#x27;.&#x27;) //console.log(domain,domain[domain.length-2]+&#x27;.&#x27;+domain[domain.length-1]) domain = &#123; //二级域名请去除下一行的注释 check: (/*domain[domain.length-3]+&#x27;.&#x27;+*/domain[domain.length-2]+&#x27;.&#x27;+domain[domain.length-1]).split(&#x27;/&#x27;)[0], original: domain &#125; //console.log(domain)/* 这里 */ if(domain.check===&quot;qystu.cc&quot; || domain.original[0].split(&#x27;/&#x27;)[0]===&quot;localhost:4000&quot;)return true;//将domain.check修改为根或二级域名，domain.original[0].split(&#x27;/&#x27;)[0]修改为本地测试页面 return false; &#125;catch(err)&#123; return true; &#125;&#125; 引入最后在博客的 _config.yml中引入例如vlts的 123import: script: - &lt;script src=&quot;https://cdn.jsdelivr.net/gh/qystudio0/go-jumper/js/checker.js&quot;&gt;&lt;/script&gt; 如果你的主题不支持引入那么可以在head里添加 1&lt;script src=&quot;https://cdn.jsdelivr.net/gh/qystudio0/go-jumper/js/checker.js&quot;&gt;&lt;/script&gt; 结语这样，当博客加载完毕的时候，博客的全部外链就会被加上二级跳转，但是源HTML里的外链不变。可以优化 SEO和加强网站体验 本文修改自pai233 源码参考自go-jumper 推荐文章（由hexo文章推荐插件驱动）qexo多作者解决方案serviceworkers首屏优化为hexo加一个自动部署部署团队服务导航网站 Team-nav","categories":[{"name":"web","slug":"web","permalink":"https://www.qystu.cc/categories/web/"}],"tags":[{"name":"博客","slug":"博客","permalink":"https://www.qystu.cc/tags/%E5%8D%9A%E5%AE%A2/"},{"name":"web","slug":"web","permalink":"https://www.qystu.cc/tags/web/"},{"name":"跳转","slug":"跳转","permalink":"https://www.qystu.cc/tags/%E8%B7%B3%E8%BD%AC/"}],"author":"青云工作室"},{"title":"做一个特殊的ppt","slug":"做一个特殊的ppt","date":"2021-12-25T05:42:12.000Z","updated":"2023-04-27T13:32:33.385Z","comments":true,"path":"posts/59121.html","link":"","permalink":"https://www.qystu.cc/posts/59121.html","excerpt":"","text":"居然可以用js写ppt用powerpoint或者keynote写演示文稿，对于代码、数学公式等的支持一直是个痛点。而且对于前端同学来说，一身的css功力用不上也是个痛点。对于使用markdown来写文档的同学来说，将文档转成ppt需要重新排版也是件重复性的工作量。 于是我们需要一个基于web技术的ppt框架，reveal.js在这个领域成名已久了，而且上个月还有发布新版本，维护得还蛮好，第一步我们就选它了。 将 reveal.js 运行起来首先clone一份reveal.js最新的代码 1git clone https://github.com/hakimel/reveal.js 我们照抄一份index.html，比如叫做study.html： 1&lt;!doctype html&gt;&lt;html&gt; &lt;head&gt; &lt;meta charset=&quot;utf-8&quot;&gt; &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no&quot;&gt; &lt;title&gt;reveal.js&lt;/title&gt; &lt;link rel=&quot;stylesheet&quot; href=&quot;dist/reset.css&quot;&gt; &lt;link rel=&quot;stylesheet&quot; href=&quot;dist/reveal.css&quot;&gt; &lt;link rel=&quot;stylesheet&quot; href=&quot;dist/theme/black.css&quot;&gt; &lt;!-- Theme used for syntax highlighted code --&gt; &lt;link rel=&quot;stylesheet&quot; href=&quot;plugin/highlight/monokai.css&quot;&gt; &lt;/head&gt; &lt;body&gt; &lt;div class=&quot;reveal&quot;&gt; &lt;div class=&quot;slides&quot;&gt; &lt;section&gt;Slide 1&lt;/section&gt; &lt;section&gt;Slide 2&lt;/section&gt; &lt;/div&gt; &lt;/div&gt; &lt;script src=&quot;dist/reveal.js&quot;&gt;&lt;/script&gt; &lt;script src=&quot;plugin/notes/notes.js&quot;&gt;&lt;/script&gt; &lt;script src=&quot;plugin/markdown/markdown.js&quot;&gt;&lt;/script&gt; &lt;script src=&quot;plugin/highlight/highlight.js&quot;&gt;&lt;/script&gt; &lt;script&gt; // More info about initialization &amp; config: // - https://revealjs.com/initialization/ // - https://revealjs.com/config/ Reveal.initialize(&#123; hash: true, // Learn about plugins: https://revealjs.com/plugins/ plugins: [ RevealMarkdown, RevealHighlight, RevealNotes ] &#125;);&lt;/script&gt; &lt;/body&gt;&lt;/html&gt; 在reveal.js目录下运行npm install, 然后运行npm start就可以启动一个server来查看上面的ppt网页。默认使用8000端口，如果被占用了可以通过指定port参数换一个，比如我们换成30800吧： 1npm start -- --port=30800 然后通过访问浏览器的127.0.0.1:30800/study.html就可以看到我们的ppt啦： reveal.js step by step上面这个网页其实挺容易懂的，不用react或vue框架，也不需要配置webpack。其核心内容部分其实非常简单，就是每一页演示文稿对应一个section。 123456&lt;div class=&quot;reveal&quot;&gt;&lt;div class=&quot;slides&quot;&gt;&lt;section&gt;Slide 1&lt;/section&gt;&lt;section&gt;Slide 2&lt;/section&gt;&lt;/div&gt; &lt;/div&gt; 支持 markdownreveal.js的第一个强大功能是直接可以使用markdown来写演示文稿。在我们上面默认的html模板中已经加载了RevealMarkdown插件。所以我们要做的就是在下面的模板上写markdown就好。 1234&lt;section data-markdown&gt;&lt;textarea data-markdown&gt;&lt;/textarea&gt;&lt;/section&gt; 我们来看个例子： 123456789&lt;section data-markdown&gt; &lt;textarea data-markdown&gt;推荐系统的主要算法包括：- 矩阵分解- 线性模型- 树模型- 深度学习模型 &lt;/textarea&gt;&lt;/section&gt; 生成的幻灯片如下： 换个主题如果觉得黑底白字的太丑了，我们可以换个主题。 主题就是个css，在这条语句里引用： 1&lt;link rel=&quot;stylesheet&quot; href=&quot;dist/theme/black.css&quot;&gt; 换成dist/theme/下面其它的css主题，或者干脆自己撸一个。 比如改成： 1&lt;link rel=&quot;stylesheet&quot; href=&quot;dist/theme/beige.css&quot;&gt; 效果变成这样： 支持数学公式支持数学公式的js库和插件默认并没有包含在默认模板中，我们需要将其增加进来。 我们先把数学公式库的js引进来： 1&lt;script src=&quot;plugin/math/math.js&quot;&gt;&lt;/script&gt; 然后在初始化时Reveal.initialize增加对于数学公式的配置,并且引入cdn上的mathjax库： 123456789Reveal.initialize(&#123;hash: true, math: &#123; mathjax:&quot;https://cdn.jsdelivr.net/gh/mathjax/mathjax@2.7.8/MathJax.js&quot;, config: &quot;TeX-AMS_HTML-full&quot;, // pass other options into `MathJax.Hub.Config()` TeX: &#123; Macros: &#123; RR: &quot;&#123;\\\\bf R&#125;&quot; &#125; &#125;, &#125;, 最后，在plugins中增加RevealMath插件： 1plugins: [RevealMarkdown, RevealHighlight, RevealNotes, RevealMath], &#125;); 完整的代码如下： 123456789101112131415&lt;script src=&quot;plugin/math/math.js&quot;&gt;&lt;/script&gt;&lt;script&gt; Reveal.initialize(&#123;hash: true,math: &#123;mathjax:&quot;https://cdn.jsdelivr.net/gh/mathjax/mathjax@2.7.8/MathJax.js&quot;,config: &quot;TeX-AMS_HTML-full&quot;,// pass other options into `MathJax.Hub.Config()` TeX: &#123; Macros: &#123; RR: &quot;&#123;\\\\bf R&#125;&quot; &#125; &#125;, &#125;,plugins: [RevealMarkdown, RevealHighlight, RevealNotes, RevealMath], &#125;);&lt;/script&gt; 插件引入之后我们就可以在幻灯片中写公式了。 可以直接在section中写： 12345&lt;section&gt; \\[\\begin&#123;aligned&#125; \\ MAE(X,h)=\\frac&#123;1&#125;&#123;m&#125; \\sum_&#123;i=1&#125;^m|h(x^i)-y^&#123;(i)&#125;| \\ \\end&#123;aligned&#125; \\]&lt;/section&gt; 也可以嵌入到markdown中： 12345&lt;section data-markdown&gt;&lt;textarea data-markdown&gt; $MAE(X,h)=\\frac&#123;1&#125;&#123;m&#125; \\sum_&#123;i=1&#125;^m|h(x^i)-y^&#123;(i)&#125;|$ &lt;/textarea&gt;&lt;/section&gt; 出来的效果是这样的： 代码高亮代码高亮默认是支持的，我们可以在markdown里面用```来使用： 显示出来的效果如下： 也可以直接使用html的pre和code标签来显示： 12345678910111213141516171819&lt;section&gt; &lt;pre&gt; &lt;code class=&quot;language-javascript&quot;&gt; model.compile(&#123; optimizer: tf.train.sgd(0.000001), loss: &#x27;meanSquaredError&#x27; &#125;);return model.fitDataset(flattenedDataset, &#123; epochs: 10, callbacks: &#123; onEpochEnd: async (epoch, logs) =&gt; &#123; console.log(epoch + &#x27;:&#x27; + logs.loss); &#125; &#125; &#125;); &lt;/code&gt; &lt;/pre&gt;&lt;/section&gt; 显示的效果如下： 代码高亮的theme也是可以更换的，只要更换plugin/highlight下面的css即可，例： 1&lt;link rel=&quot;stylesheet&quot; href=&quot;plugin/highlight/zenburn.css&quot; /&gt; 我们顺便把reveal.js的theme也换一下： 1&lt;link rel=&quot;stylesheet&quot; href=&quot;dist/theme/moon.css&quot; /&gt; 效果变成下面这样： 我们汇总下上面的代码： 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889&lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head&gt;&lt;meta charset=&quot;utf-8&quot; /&gt;&lt;metaname=&quot;viewport&quot;content=&quot;width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no&quot; /&gt;&lt;title&gt;reveal.js学习&lt;/title&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;dist/reset.css&quot; /&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;dist/reveal.css&quot; /&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;dist/theme/moon.css&quot; /&gt;&lt;!-- Theme used for syntax highlighted code --&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;plugin/highlight/monokai.css&quot; /&gt;&lt;/head&gt;&lt;body&gt;&lt;div class=&quot;reveal&quot;&gt;&lt;div class=&quot;slides&quot;&gt;&lt;section&gt;Slide 1&lt;/section&gt;&lt;section&gt; \\[\\begin&#123;aligned&#125; \\ MAE(X,h)=\\frac&#123;1&#125;&#123;m&#125; \\sum_&#123;i=1&#125;^m|h(x^i)-y^&#123;(i)&#125;| \\ \\end&#123;aligned&#125; \\]&lt;/section&gt;&lt;section data-markdown&gt;&lt;textarea data-markdown&gt;推荐系统的主要算法包括：- 矩阵分解- 线性模型- 树模型- 深度学习模型 &lt;/textarea &gt;&lt;/section&gt;&lt;section data-markdown&gt;&lt;textarea data-markdown&gt; $MAE(X,h)=\\frac&#123;1&#125;&#123;m&#125; \\sum_&#123;i=1&#125;^m|h(x^i)-y^&#123;(i)&#125;|$ &lt;/textarea&gt;&lt;/section&gt;&lt;section&gt;&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt; model.compile(&#123; optimizer: tf.train.sgd(0.000001), loss: &#x27;meanSquaredError&#x27; &#125;); return model.fitDataset(flattenedDataset, &#123; epochs: 10, callbacks: &#123; onEpochEnd: async (epoch, logs) =&gt; &#123; console.log(epoch + &#x27;:&#x27; + logs.loss); &#125; &#125; &#125;);&lt;/code&gt;&lt;/pre&gt;&lt;/section&gt;&lt;/div&gt;&lt;/div&gt;&lt;script src=&quot;dist/reveal.js&quot;&gt;&lt;/script&gt;&lt;script src=&quot;plugin/notes/notes.js&quot;&gt;&lt;/script&gt;&lt;script src=&quot;plugin/markdown/markdown.js&quot;&gt;&lt;/script&gt;&lt;script src=&quot;plugin/highlight/highlight.js&quot;&gt;&lt;/script&gt;&lt;script src=&quot;plugin/math/math.js&quot;&gt;&lt;/script&gt;&lt;script&gt;// More info about initialization &amp; config:// - https://revealjs.com/initialization/// - https://revealjs.com/config/ Reveal.initialize(&#123;hash: true,math: &#123;mathjax:&quot;https://cdn.jsdelivr.net/gh/mathjax/mathjax@2.7.8/MathJax.js&quot;,config: &quot;TeX-AMS_HTML-full&quot;,// pass other options into `MathJax.Hub.Config()` TeX: &#123; Macros: &#123; RR: &quot;&#123;\\\\bf R&#125;&quot; &#125; &#125;, &#125;,// Learn about plugins: https://revealjs.com/plugins/ plugins: [RevealMarkdown, RevealHighlight, RevealNotes, RevealMath], &#125;);&lt;/script&gt;&lt;/body&gt;&lt;/html&gt; 背景图片section支持data-background-image属性来指定背景图片。例： 1&lt;section data-background-image=&quot;https://cdn.jsdelivr.net/www.jsdelivr.com/000a3f2b6a7baa6ae0f786a251fd105e4b230d8e/img/landing/network-map@2x.png&quot;&gt; section&gt; HTML and CSS比起markdown，HTML和CSS也是写演示文稿的好手段，可控的方法更多。而且也可以跟reveal.js的功能有更好的结合。 在section中，可以像在普通网页中一样写HTML标签： 123456789&lt;section&gt;&lt;h3 style=&quot;&#123;color: #ffec3d;&#125;&quot;&gt;推荐系统的冷启动h3&gt;&lt;ul&gt;&lt;li&gt;利用热门数据li&gt;&lt;li&gt;利用用户注册信息li&gt;&lt;li&gt;利用第三方数据li&gt;&lt;li&gt;利用物品内容属性li&gt;&lt;/ul&gt;&lt;/section&gt; 我们也可以在header中写style属性给section中使用。 比如默认字体太大了，我们可以给调一调： 12345&lt;style&gt;ul &#123;font-size: 18px; &#125;&lt;/style&gt; 淡入淡出结合html标签，可以指定淡入淡出的效果。这可以通过给标签添加class属性为fragment实现。 我们来看个淡入的例子： 123456789&lt;section&gt;&lt;h3&gt;推荐系统的冷启动h3&gt;&lt;ul&gt;&lt;li class=&quot;fragment&quot;&gt;利用热门数据li&gt;&lt;li class=&quot;fragment&quot;&gt;利用用户注册信息li&gt;&lt;li class=&quot;fragment&quot;&gt;利用第三方数据li&gt;&lt;li class=&quot;fragment&quot;&gt;利用物品内容属性li&gt;&lt;/ul&gt;&lt;/section&gt; 除了淡入之外，我们还可以对某项进行标红： 123456789&lt;section&gt;&lt;h3&gt;推荐系统的冷启动&lt;/h3&gt;&lt;ul&gt;&lt;li class=&quot;fragment highlight-red&quot;&gt;利用热门数据&lt;/li&gt;&lt;li&gt;利用用户注册信息&lt;/li&gt;&lt;li&gt;利用第三方数据&lt;/li&gt;&lt;li&gt;利用物品内容属性&lt;/li&gt;&lt;/ul&gt;&lt;/section&gt; 效果如下： 导出为 PDF演示文稿做好之后，除了在浏览器中看，我们也可以导出成为pdf格式。方法是在URI之后增加”?print-pdf”后缀，比如：http://0.0.0.0:30800/study.html?print-pdf 然后我们再用另存为pdf格式功能来保存下来就好。 更进一步除了上面介绍的基本特性之外，reveal.js支持自动播放、自制插件、支持处理事件等等有利于开发人员写slides的特性。相信能给你的slides带来新的好玩的东西，将汇报与分享变成乐趣。Enjoy it! 推荐文章（由hexo文章推荐插件驱动）serviceworkers首屏优化gulp更新4.0后的报错(gulp报Did you forget to signal async completion?)软件屏蔽器 秒杀流氓软件","categories":[{"name":"web","slug":"web","permalink":"https://www.qystu.cc/categories/web/"}],"tags":[{"name":"前端","slug":"前端","permalink":"https://www.qystu.cc/tags/%E5%89%8D%E7%AB%AF/"},{"name":"tools","slug":"tools","permalink":"https://www.qystu.cc/tags/tools/"},{"name":"PPT","slug":"PPT","permalink":"https://www.qystu.cc/tags/PPT/"}],"author":"青云工作室"},{"title":"软件屏蔽器 秒杀流氓软件","slug":"软件屏蔽器","date":"2021-12-13T10:24:20.000Z","updated":"2023-04-27T13:32:33.385Z","comments":true,"path":"posts/64280.html","link":"","permalink":"https://www.qystu.cc/posts/64280.html","excerpt":"","text":"为什么要软件屏蔽器我在网上冲浪十多年，经历过的套路，安装过的流氓软件数不清。 其中有一种套路，是当之无愧的小白杀手，老司机也时常中招，肆虐互联网二十余年未曾消失，至今仍然盛行。 屏幕前的小伙伴或多或少被它教训过，它就是久经不衰，厂商屡用不爽的“捆绑安装”。 捆绑安装之妙处，在于不经意间，悄悄在后台帮你装上360全家桶、百度全家桶、金山全家桶等国产流氓三剑客。 让电脑忽地走进三国大战时代，成为三大杀毒巨头厮杀的战场。 CPU、内存时时刻刻占用100%，鼠标好像背上了好几辆特斯拉，滑半天鼠标没反应，偶尔当场爆炸原地消失不见。 许多电脑小白起初不以为然，自我安慰道：多装几个杀毒软件，防御力更强。 直到某天打开桌面，才发现三剑客们嫌自家兵力不足。 又去招兵买马，把自家兄弟，如XX视频、XX浏览器、XX阅读器拉进战场。 有的跑去拉帮结派，把一刀9999，是兄弟就来砍死我的传奇大哥扯了过来，扩张地盘。 最终电脑经不住不请自来的软件们的轮番折腾，宕机不干了。 懂哥的形容或许夸张了些，现实生活中却时刻发生着相似的事情。 捆绑安装，是无数小白的噩梦。 软件屏蔽器为了拯救那些深陷泥潭，惨遭流氓软件折磨的人群，懂哥特意找来素有“捆绑克星”的开源小工具。 最近在男性搏击论坛Github挺火的，本体几百KB大，具有阻止流氓软件捆绑安装的功能，很好的保护到电脑。 推荐小白用户、以及给家里的孩子、老人家安装使用，自己平时不用再担心他们乱点广告，省心。 PS：软件屏蔽器下载链接放在文章末尾了，感兴趣的小伙伴请自取。 软件屏蔽器的工作原理，主要是把部分国内主流的捆绑安装重灾品牌，添加进黑名单。 例如著名的2345导航、快压、YY、瑞星等，一旦黑名单内的品牌有安装行为，将强行终止，扼杀捆绑安装。 打开软件首页，能看到作者提前为我们罗列的黑名单网站。 我们只需点击全部屏蔽+保存更改，即可一键干掉大部分的捆绑安装隐患。 操作完成后，懂哥尝试下载安装360，系统立马提示：已阻止此应用，安装失败。 该效果同样适用于金山毒霸、传奇、2345等知名流氓软件。 如果存在漏网之鱼，软件屏蔽器支持手动添加网站或软件，咱们自己稍微操作下就行。 有些小伙伴可能担心软件屏蔽器不安全，其实没必要顾虑太多。 软件屏蔽器是全球最大的程序员论坛github上的开源项目，所有代码公开可见，经过论坛审核，几千万程序员盯着，想藏病毒木马近乎不可能。 由于涉及到屏蔽修改等敏感功能，杀毒软件和windows自带的防火墙容易报毒误杀。 懂哥下载时就被误杀了好几次，小伙伴遇到此类情况，记得允许通过或暂时关闭杀软。 下载下载链接下次补 就只放github链接了 推荐文章（由hexo文章推荐插件驱动）做一个特殊的pptwindow上帝模式","categories":[{"name":"software","slug":"software","permalink":"https://www.qystu.cc/categories/software/"}],"tags":[{"name":"tools","slug":"tools","permalink":"https://www.qystu.cc/tags/tools/"},{"name":"去广告","slug":"去广告","permalink":"https://www.qystu.cc/tags/%E5%8E%BB%E5%B9%BF%E5%91%8A/"}],"author":"青云工作室"},{"title":"window上帝模式","slug":"window上帝模式","date":"2021-12-12T10:17:26.000Z","updated":"2023-04-27T13:32:33.385Z","comments":true,"path":"posts/63659.html","link":"","permalink":"https://www.qystu.cc/posts/63659.html","excerpt":"","text":"为什么要写最近要用个功能，因为前阵子重装系统了，突然发现没有，然后我就炸毛了，仅以此文作为记录 什么是上帝模式这个名字看起来很酷，上帝模式就是打开全部的控制面板，就能发现一些目前看不见的功能。 如果你想要更高级的一些功能，可以试试这个模式， 开启之后，系统隐藏的很多功能你都能使用。 这个名字看起来很酷，上帝模式就是打开全部的控制面板，就能发现一些目前看不见的功能。 如果你想要更高级的一些功能，可以试试这个模式， 开启之后，系统隐藏的很多功能你都能使用。 如何使用新建一个文件夹，然后将文件夹重命名为： 1GodMode.&#123;ED7BA470-8E54-465E-825C-99712043E01C&#125; 回车确认之后，就是开启上帝模式了，打开文件夹你会看到很多系统设置项目，包括了系统设置选项和各种工具。 比如一键删除浏览的历史记录、阻止或允许弹窗、等等，你们可以可以根据自己需求去使用 推荐文章（由hexo文章推荐插件驱动）做一个特殊的ppt软件屏蔽器 秒杀流氓软件win11安装初体验(副下载)Windows上的IPv6","categories":[{"name":"tools","slug":"tools","permalink":"https://www.qystu.cc/categories/tools/"}],"tags":[{"name":"windows","slug":"windows","permalink":"https://www.qystu.cc/tags/windows/"},{"name":"tools","slug":"tools","permalink":"https://www.qystu.cc/tags/tools/"}],"author":"青云工作室"},{"title":"卸载工具 IObit Uninstaller","slug":"卸载工具 IObit Uninstaller","date":"2021-10-17T12:19:44.000Z","updated":"2023-04-27T13:32:33.385Z","comments":true,"path":"posts/42493.html","link":"","permalink":"https://www.qystu.cc/posts/42493.html","excerpt":"","text":"功能介绍清洁和加速电脑：你可能会注意到你的电脑变得越来越慢，让你气急败坏。因为时间的推移，一些原因是程序无法被删除，未使用的程序，以及卸载程序的残留在内存中堆积。IObit Uninstaller 可以帮助您完全快速地卸载顽固的程序及其残留。甚至在Windows 10和Windows 8中的不受欢迎的应用程序也可以很容易删除。 主要特点主要特点： 在几个方面删除程序：正常和批次。批量方法需要在要删除几个程序的案件。 支持模块强制删除允许您删除不能以通常的方式删除的程序，并在文件系统清理自己的“足迹”。此外，该模块将能够删除任何文件或文件夹，包括系统（例如，Windows文件夹 - 但最好不要与该操作系统无法启动后也这样做）。 删除插件和工具栏的互联网浏览器。 将所有设置特定的浏览器。 支持文件粉碎“永久”删除文件和文件夹。这个工具是必要的，谁想要从计算机中永久删除您的个人文件（例如，您的银行帐户数据库），所以没有计划将无法恢复。 杂志的支持，包含远程程序的历史记录（名称，时间，使用的方法和删除的文件的列表）。 创建并查看恢复点 问题更少的Windows更新：IObit Uninstaller 可以帮助用户轻松地从Windows更新选项卡管理Windows更新。如果任何更新遇到兼容性问题，您可以轻松地使用IObit Uninstaller 快速、完整地删除它们。您还可以创建系统还原点，以防发生意外事件。 更快更安全浏览：烦人的工具栏和插件降低了您的在线浏览体验，并侵犯了您的在线隐私。IObit Uninstaller 是用于检测和删除恶意和基于广告的插件的最佳卸载工具，以避免更改您的主页，跟踪您的活动或弹出广告。IObit Uninstaller 还支持为 Windows 10 用户删除 Microsoft Edge 扩展。 更强大的工具：IObit Uninstaller 也可以自动检测第三方卸载程序的残留，并通过强大的扫描可彻底、快速地删除它们。“工具”中的清理软件，可以清理标准卸载和Windows修补程序缓存文件留下的文件，以释放更多的电脑空间。 测试图 下载链接下载推荐文章（由hexo文章推荐插件驱动）无广告、无推送，最最纯净的WPS版本","categories":[{"name":"software","slug":"software","permalink":"https://www.qystu.cc/categories/software/"}],"tags":[{"name":"software","slug":"software","permalink":"https://www.qystu.cc/tags/software/"},{"name":"软件","slug":"软件","permalink":"https://www.qystu.cc/tags/%E8%BD%AF%E4%BB%B6/"},{"name":"卸载","slug":"卸载","permalink":"https://www.qystu.cc/tags/%E5%8D%B8%E8%BD%BD/"},{"name":"IObit","slug":"IObit","permalink":"https://www.qystu.cc/tags/IObit/"}],"author":"青云工作室"},{"title":"数字基础设施开源操作系统欧拉全新发布","slug":"数字基础设施开源操作系统欧拉全新发布","date":"2021-09-25T11:14:55.000Z","updated":"2023-04-27T13:32:33.385Z","comments":true,"path":"posts/35934.html","link":"","permalink":"https://www.qystu.cc/posts/35934.html","excerpt":"","text":"发布9月25日，在华为全联接2021大会上，面向数字基础设施的开源操作系统欧拉（openEuler）全新发布。欧拉操作系统可广泛部署于服务器、云计算、边缘计算、嵌入式等各种形态设备，应用场景覆盖IT（Information Technology）、CT（Communication Technology）和OT（Operational Technology），实现统一操作系统支持多设备，应用一次开发覆盖全场景 华为计算产品线总裁邓泰华表示，操作系统“碎片化”现状，导致数字基础设施产生大量“软烟囱”，带来生态割裂、应用重复开发、协同繁琐的挑战，数字化新时代，呼唤新的统一操作系统。 特性在ICT领域，华为提供服务器、存储、云服务、边缘计算、基站、路由器、工业控制等产品和解决方案，都需要搭载操作系统，所以华为一直在构建能力，旨在通过统一的操作系统架构来满足不同应用场景的需求。 本次欧拉全新升级，同时支持服务器、云计算、边缘计算、嵌入式等各种形态设备的需求。支持多样性计算，致力于提供安全、稳定、易用的操作系统；并通过为应用提供确定性保障能力，支持OT领域应用及OT与ICT的融合。至此全新发布的欧拉操作系统可覆盖从IT、CT到OT数字基础设施全场景。 欧拉创造性的提出全栈原子化解耦，支持版本灵活构建、服务自由组合，通过一套架构灵活支持南向多样性设备，北向全场景应用。 统一操作系统，支持多设备： 采用全量组件原子化架构，支持内核灵活组合，全栈服务化按需构建，可根据设备不同的资源能力和业务特征进行灵活裁剪、按需构建，满足不同设备对于操作系统的要求。 支持构建服务自助化，“菜单式”配置内核和系统服务，可以对软件包、文件、函数等不同层级进行分级灵活组合，自动化、简化操作系统版本构建。 提供多设备协同套件，包括“边云”协同，统一数据、网络和管理；集群多节点协同，可支持PB级内存池，实现不同设备之间的能力互助和资源共享，发挥硬件最优性能。 应用一次开发，覆盖全场景： 标准API，实现操作系统与应用交互语言的统一； 欧拉SDK统一封装各种应用所需的数据、音视频、安全等能力，使能极简开发，并增强应用性能； 欧拉Devkit提供跨设备开发向导、自动测试平台等插件，并可方便的集成到主流的应用开发平台。 欧拉和鸿蒙已经实现了内核技术共享，未来计划在欧拉构筑分布式软总线能力，让搭载欧拉操作系统的设备可以自动识别和连接鸿蒙终端。后续进一步在安全OS、设备驱动框架、以及新编程语言等方面实现共享。通过能力共享、实现生态互通，“欧拉+鸿蒙”更好的服务数字全场景。 本次大会正式发布了第一个支持数字基础设施全场景的openEuler 21.09创新版本，将于9月30日在社区上线。该版本不仅对服务器和云计算场景能力进行了增强，还实现了对于边缘计算和嵌入式场景的支持。2022年一季度，欧拉开源社区将发布支持全场景融合的社区LTS版本，使能合作伙伴面向不同场景发布商业发行版。 结语欧拉自开源以来获得产业界的积极支持和响应，是中国最具活力的开源社区。截至目前，已有超过6000名开发者和100多家企业、高校、组织和机构加入欧拉社区，汇聚从处理器、整机、操作系统发行版厂商、到行业应用等全产业链，十多家主流操作系统领军企业发行基于欧拉的商业版本。欧拉的全新发布将吸引更多云、边缘、嵌入式领域伙伴加入社区，共同加速欧拉在数字基础设施全领域的广泛应用。华为将始终坚持在基础软件上的长期投入，联合全产业链合作伙伴，共同构建开放共赢的操作系统开源生态。 相关链接https://repo.openeuler.org/openEuler-21.09/ 推荐文章（由hexo文章推荐插件驱动）华为宣布将发布操作系统openEuler欧拉win11安装初体验(副下载)Windows 10 21H2 太阳谷更新镜像发布","categories":[{"name":"系统","slug":"系统","permalink":"https://www.qystu.cc/categories/%E7%B3%BB%E7%BB%9F/"}],"tags":[{"name":"系统","slug":"系统","permalink":"https://www.qystu.cc/tags/%E7%B3%BB%E7%BB%9F/"},{"name":"欧拉","slug":"欧拉","permalink":"https://www.qystu.cc/tags/%E6%AC%A7%E6%8B%89/"},{"name":"服务器","slug":"服务器","permalink":"https://www.qystu.cc/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/"}],"author":"青云工作室"},{"title":"华为宣布将发布操作系统openEuler欧拉","slug":"华为宣布将发布操作系统openEuler欧拉","date":"2021-09-24T11:25:14.000Z","updated":"2023-04-27T13:32:33.385Z","comments":true,"path":"posts/18567.html","link":"","permalink":"https://www.qystu.cc/posts/18567.html","excerpt":"","text":"华为宣布将发布操作系统openEuler欧拉据@华为计算 官微消息，9月25日，华为将全新发布操作系统openEuler欧拉。 此前，任正非在中央研究院创新先锋座谈会上与部分科学家、专家、实习生的讲话中表示，鸿蒙、欧拉任重道远，你们还需更加努力。 鸿蒙已经开始了前进的步伐，我们还心怀忐忑地对它的期盼。 欧拉正在大踏步地前进，欧拉的定位是瞄准国家数字基础设施的操作系统和生态底座，承担着支撑构建领先、可靠、安全的数字基础的历史使命，既要面向服务器，又要面向通信和实时操作系统，这是一个很难的命题。 任正非称，未来软件将吞噬一切，说明未来信息社会的数字化基础架构核心是软件。 数字社会首先要终端数字化，更难的是行业终端数字化，只有行业终端数字化了，才可能建立起智能化和软件服务的基础。 直播邀请 推荐文章（由hexo文章推荐插件驱动）数字基础设施开源操作系统欧拉全新发布win11安装初体验(副下载)Windows 10 21H2 太阳谷更新镜像发布","categories":[{"name":"系统","slug":"系统","permalink":"https://www.qystu.cc/categories/%E7%B3%BB%E7%BB%9F/"}],"tags":[{"name":"系统","slug":"系统","permalink":"https://www.qystu.cc/tags/%E7%B3%BB%E7%BB%9F/"},{"name":"欧拉","slug":"欧拉","permalink":"https://www.qystu.cc/tags/%E6%AC%A7%E6%8B%89/"},{"name":"华为","slug":"华为","permalink":"https://www.qystu.cc/tags/%E5%8D%8E%E4%B8%BA/"}],"author":"青云工作室"},{"title":"使用PicGO-Gitee搭建博客图床","slug":"使用PicGO-Gitee搭建博客图床","date":"2021-08-30T13:04:55.000Z","updated":"2023-04-27T13:32:33.385Z","comments":true,"path":"posts/14166.html","link":"","permalink":"https://www.qystu.cc/posts/14166.html","excerpt":"","text":"建立gitee（码云）图床库注册码云的方法很简单，网站引导都是中文，不多说了，我们直接建立自己的图床库。 软件关于软件的下载与安装，可以自行参考使用PicGo+GitHub搭建免费个人图床 点击右上角的+号，新建仓库 新建仓库的要点如下： 输入一个仓库名称其次将仓库设为公开！！！不公开，将导致无法访问勾选使用Readme文件初始化这个仓库这个选项勾上，这样码云会自动给你的仓库建立master分支，这点很重要！！！ 我因为这点折腾了很久，因为使用github做图床picgo好像会自动帮你生成master分支，而picgo里的gitee插件不会帮你自动生成分支。 点击创建进入下一步 配置PicGo安装了gitee-uploader 1.1.2插件之后，我们开始配置插件 配置插件的要点如下： repo：用户名/仓库名称，比如我自己的仓库ljs0712/img，找不到的可以直接复制仓库的url branch：分支，这里写上master token：填入码云的私人令牌 path：路径，一般写上img customPath：提交消息，这一项和下一项customURL都不用填。在提交到码云后，会显示提交消息，插件默认提交的是 Upload 图片名 by picGo - 时间 至于这个token怎么获取，下面登录进自己的码云点击头像，进入设置 找到右边安全设置里面的私人令牌 点击生成新令牌，把projects这一项勾上，其他的不用勾，然后提交 这里需要验证一下密码，验证密码之后会出来一串数字，这一串数字就是你的token，将这串数字复制到刚才的配置里面去。 注意：这个令牌只会明文显示一次，建议在配置插件的时候再来生成令牌，直接复制进去，搞丢了又要重新生成一个。 现在保存你刚才的配置，然后将它设置为默认图床，大功告成。 推荐文章（由hexo文章推荐插件驱动）qexo多作者解决方案DIY最低成本图床serviceworkers首屏优化","categories":[{"name":"web","slug":"web","permalink":"https://www.qystu.cc/categories/web/"}],"tags":[{"name":"图床","slug":"图床","permalink":"https://www.qystu.cc/tags/%E5%9B%BE%E5%BA%8A/"},{"name":"博客","slug":"博客","permalink":"https://www.qystu.cc/tags/%E5%8D%9A%E5%AE%A2/"}],"author":"青云工作室"},{"title":"win11安装初体验(副下载)","slug":"win11安装初体验(副下载)","date":"2021-06-21T07:15:18.000Z","updated":"2023-04-27T13:32:33.385Z","comments":true,"path":"posts/48475.html","link":"","permalink":"https://www.qystu.cc/posts/48475.html","excerpt":"","text":"6月15号深夜，Windows 11预览版的镜像，从国内论坛首先流出，各大QQ群和微信群都在广泛分享。16号白天，各大QQ群都时不时能看到群友在谈论Windows 11的话题。至此，Windows 11已经板上钉钉，无可争议了。 本次泄露的镜像具体构建号是Build 21996，包含了Windows 11家庭版、教育版、专业版。昨天上午已经下载了Windows 11的镜像，并在虚拟机里安装测试了，现在跟大家分享一下测试体验。 一、安装由于是预览版系统，BUG比较多，而且是英文版的，所以不建议在实体机上使用。采用的是Parallels Desktop虚拟机，安装过程已经全程录像了，安装过程花了16分钟。 二、测试测试软件Windows 11 对设备的硬性要求，具体可见下图。 我们可以先检测自己的电脑是否可以升级到Windows11 那么如何检测呢？ 可以安装微软提供的Windows电脑监控状况检查软件进行检测 需要注意的是，本软件需要在Windows10上运行，Windows7上是无法运行的 安装完成后，直接打开，首页就可以看到： 我们检查这台电脑是否满足系统要求 如果想进行升级,则当其可用时可获取免费升级 点击立即检查，就能得知是否可以运行Windows11了 修复如果遇到不支持时可以用这些方法 1.常规修复事实上，过去几年出货的 PC 都有 TPM 2.0。因此，可能是您的计算机支持 TPM，但它被禁用，导致运行状况检查应用程序报告 Windows 11 无法在您的计算机上运行。 如果禁用，您必须打开 BIOS 菜单并手动启用 TPM。 检查 TPM 是否已启用要检查您的计算机是否具有兼容的 TPM，请在 PowerShell 窗口中运行命令 get-tpm。 打开“开始”菜单并搜索 Windows Powershell。 右键单击“Windows PowerShell”并点击以管理员身份运行。 窗口打开后，键入并输入get-tpm。 检查 TPM 是否存在并启用。 或者，您可以按 Win + R，键入tpm.msc，然后按 Enter。TPM 管理窗口打开后，检查“状态”和“TPM 规范版本”。 在 BIOS 菜单中启用 TPM如果未启用 TPM，您可以通过 BIOS 菜单启用它，如下所示： 关闭你的电脑。 重新启动它，在启动过程中，按 F1、F2、F10、F11、DEL**打开 BIOS 或 UEFI 菜单 -**键因制造商而异 - 请查看用户手册或制造商网站以获取确切信息。 BIOS 或 UEFI 菜单打开后，点击安全选项。 在这里，查找 TPM 并检查它是否已启用。如果没有，请启用它。 现在，确保Save and Exit。然后，重新启动您的 PC。 在某些设备上，您可以在高级设置 &gt; 安全 &gt; 可信计算或设置 &gt; 杂项 &gt; 可信计算中找到该选项。 开启安全启动安全启动是一种安全标准，可帮助确保设备仅使用制造商信任的软件启动。这有助于防止恶意软件，并且通常在所有现代计算机上都可用。 您的 PC 必须支持安全启动才能与 Windows 11 兼容。 检查是否启用了安全启动要检查您的计算机上是否启用了安全启动： 按Windows+R打开运行窗口。 键入并输入msinfo32。 窗口打开后，查找“安全启动状态”。 检查它是否打开。如果没有，请通过以下步骤启用它。 相关提示 2 在应用程序不允许的情况下截取屏幕截图的方法；无需root 在 BIOS 菜单中启用安全启动与 TPM 一样，您可以从 BIOS 菜单启用安全启动。 按照上述 TPM 步骤打开 BIOS 或 UEFI 菜单。 转到“启动”选项卡。您可能必须进入高级模式。 寻找安全启动选项。检查它是否已启用。 如果没有，请启用它。 保存并退出，然后重新启动您的 PC。 最后，打开PC健康检查工具，检查兼容性，看是否通过测试。如果没有，请重新检查您的计算机规格。 2.注册表大法 这种方法是外媒WindowsLatest报道的，在进行镜像安装时，Win11会提示“该电脑无法运行Win11”。 不要慌，在这个界面按Shift+F10，打开命令行界面，输入regedit打开注册表，然后定位到： HKEY_LOCAL_MACHINE\\SYSTEM\\Setup 创建一个名为“LabConfig”的项，接着在“LabConfig”下创建两个DWORD值： 键为“BypassTPMCheck”，值为“00000001” 键为“BypassSecureBootCheck”，值为“00000001” 保存退出后，上图的提示就消失了，大家就可以正常安装Win11。 3.dll破解 如果想通过直接从Win11 ISO镜像运行setup.exe程序来升级系统，而非全新安装，还有另一种简单的解决方法。 大家需要找到Win10 ISO的appraiserres.dll文件，替换Win11 ISO的同名文件。完成后，需要使用第三方工具（如Rufus或AnyBurn）重新创建ISO镜像，然后再次运行安装文件。 4.了解为什么您的 PC 与 Windows 11 不兼容WhyNotWin11 是一款便携式兼容性检查工具，可扫描您的硬件并告诉您 PC 与 Windows 11 不兼容的原因。您可以使用此工具替代 Microsoft 的 PC 健康检查工具： 从GitHub下载 WhyNotWin11。 如果您的浏览器阻止了该应用程序，请单击三个点并保留该文件。 同样，Windows 可能会标记该应用程序并阻止安装。单击“更多信息”，然后单击“仍然运行”。 当提示运行应用程序时，单击确定。 它会立即检查并告诉您您的 PC 是否可以运行 Windows 11。 如果您的 PC 不兼容，它会告诉您您的机器缺乏的确切要求。 它的工作原理是将您的计算机硬件与当前已知的要求相匹配： 引导类型 CPU架构 CPU代 核心数 CPU频率 DirectX 支持 磁盘分区 内存 安全启动 贮存 TPM 最小值 如果所有要求都标记为绿色并显示“OK”，则您的计算机兼容 Windows 11。但是，任何参数都以红色显示并带有 X，这就是导致兼容性问题的原因。如果可能，您可以进行更改以使 Windows 11 在设备上运行。 三、体验Windows 11预览版给我的印象主要有以下几个： 开机logo变了 任务栏按钮居中 无处不在的圆角矩形 新增了快速分屏功能 高斯模糊更好看了 开机logo首先谈谈开机logo。Windows 11的开机画面中央是正方形的微软logo，而Windows 10则是梯形的。 改语言由于这次泄露的镜像是英文版的，没有自带简体中文语言，因此安装完成需要手动去设置里添加语言 把地区改成中国，语言改成中文（简体，中国），并在Language里添加中文（简体，中国），然后注销系统，即可获取中文系统界面。 不过，目前还仅仅是部分UI的简单汉化，很多的内置软件都没有被彻底汉化，可能是因为微软还没跟进翻译吧。 激活那么，装完系统需要激活，经过测试，使用激活工具也可以顺利激活成功，还是数字权利激活。不过系统版本被激活工具识别错误，相信作者也会及时跟进。 任务栏任务栏居中，可以说是Windows 11给人的最直观的感受，左对齐了几十年的Win按钮，终于跑到中间去了。有点像macOS的风格了，有木有？ 那么，任务栏的第一个按钮还是Windows按钮，不过logo换了一个，之前是纯黑色的，现在变成了蓝色渐变色的了。 点击Windows按钮之后，会弹出一个浮动的、不与任务栏连接在一起的开始菜单窗口，主要显示的是已固定和推荐的项目，可以把常用的软件固定在开始菜单里。 点击开始菜单窗口右上角的“所有应用”按钮，即可进入Windows菜单，这个和Windows 10类似，所有安装的软件都在这里了，不过不再显示动态磁贴了： 开始菜单右下角是关机按钮，可以执行睡眠、关机、重启操作。 在Windows按钮上右击，可以弹出相关的菜单，和Windows 10上差不多，不过背景颜色改成了白色。 另外，在设置里，还可以选择哪些快捷方式显示在开始菜窗口里： 任务栏上的第二个按钮是搜索按钮，和Windows 10上的操作差不多，不做过多介绍。 任务栏上的第三个按钮是多任务按钮，可以新建桌面： 任务栏上的第四个按钮是“小组件”按钮，有点像Windows 10上“资讯和兴趣”按钮，不过这次它直接显示在屏幕左侧，里面都是各种资讯广告、天气之类的。 不知道微软之后会不会开放接口，如果发展地好的话，可能会变成类似于安卓和iOS系统上的“负一屏”，里面可以添加各种小工具，也是不错的。 此外，任务栏上会显示当前已经开启的软件，并且正在运行的程序，其图标下方会出现一个小横线，并且你当前正在使用的软件，它的小横线会更长一些。 在任务栏上右击，不会再像Windows 10那样，出现各种选项，取而代之的是任务栏设置选项。 而在任务栏上的图标上右击，也可以快速取消固定。 有些用户可能习惯了左对齐的任务栏，那么，在设置里也可以设定菜单栏的对齐方式，改成左对齐，就和Windows 10差不多了。 圆角矩形被传了很久的圆角矩形，终于来了，系统内置的软件基本都已经实现了圆角矩形，这又是一项从macOS抄袭到Windows上的功能。 但是，第三方软件暂时还没适配，需要开发厂商及时适配才能显示为圆角矩形，萝卜哥测试了火绒，目前它还不是圆角的。 新的分屏功能Windows 11还新增了快速分屏功能，可能很多人都没发现。 以往的窗口放大按钮，单纯就是放大功能。而在Windows 11中，微软将其进行优化，只要鼠标在最大化图标上停留几秒钟，即可出现分屏功能。 目前，Windows 11预览版提供了4种分屏模式，萝卜哥做了个动图演示： 高斯模糊Windows 11上的背景模糊，貌似更好看了，对不？ 控制面板有人可能会好奇，控制面板还在不在，是不是全部统一到了设置里去了。那么，就目前的Windows 11预览版来说，控制面板还是存在的，割裂感依然存在，不排除后期微软更新之后，会逐步去除控制面板。 其他Windows 11采用了新的图标风格，这在萝卜哥之前写的“太阳谷更新”文章里，已经提到了。 此外，Windows 11还修改了很多系统声音特效，删除、错误、完成等提示音全部改了。 微软还给Windows 11换了新的内置壁纸和主题，以往存在于Windows 8、Windows 10上的壁纸，全部删除了，换成了新壁纸，具体看今天的第二篇推文。 四、下载百度网盘：https://pan.baidu.com/s/1IxC39lBxCJuOWiNCY0e7Xg 提取码: 6666 天翼云：https://cloud.189.cn/web/share?code=FFFfQnNJneuy OneDrive：http://dwz.win/apE7 密码：hlbz 磁力链接： 12magnet:?xt=urn:btih:209922c98ec03a2cbf0eebe631f9c1d577795645&amp;dn=21996.1.210529-1541.co_release_CLIENT_CONSUMER_x64FRE_en-us.isomagnet:?xt=urn:btih:7101c26a2ba10ab2374dcc171f92a443bdc986c5&amp;dn=21996.1.210529-1541.co_release_CLIENT_CONSUMER_x64FRE_en-us.iso 镜像校验值： MD5: 179bfe07f7050093ee595ddd85a30201 SHA1: 3b6da9194ba303ac7dbbf2e521716c809500919c 测试工具下载:https://aka.ms/GetPCHealthCheckApp 推荐文章（由hexo文章推荐插件驱动）window上帝模式数字基础设施开源操作系统欧拉全新发布华为宣布将发布操作系统openEuler欧拉Windows上的IPv6","categories":[{"name":"系统","slug":"系统","permalink":"https://www.qystu.cc/categories/%E7%B3%BB%E7%BB%9F/"}],"tags":[{"name":"windows","slug":"windows","permalink":"https://www.qystu.cc/tags/windows/"},{"name":"系统","slug":"系统","permalink":"https://www.qystu.cc/tags/%E7%B3%BB%E7%BB%9F/"}],"author":"青云工作室"},{"title":"Windows 10 21H2 太阳谷更新镜像发布","slug":"Windows 10 21H2 太阳谷更新镜像发布","date":"2021-05-03T10:32:18.000Z","updated":"2023-04-27T13:32:33.385Z","comments":true,"path":"posts/78415.html","link":"","permalink":"https://www.qystu.cc/posts/78415.html","excerpt":"","text":"微软将于2021年下半年推出Windows 10大更新，代号叫“太阳谷”更新 关于这个话题，撰写帖子了，比如：界面大变样，微软Win10太阳谷概念图曝光 但这些资讯大都来自国外网站，只可惜微软一直没提供镜像下载，因此没办法实际上手体验。 不过，就在4月11日，微软开放了Win10 Build 21354 ISO镜像下载，也就是俗称的21H2，这个版本即将于2021年下半年推送给大众。 我们第一时间下载并体验了，下面就一些情况进行说明。 一、下载下载页面：https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewiso 电脑浏览器访问上面的网址，然后拉到网页下方，从Select edition里选择Windows 10 Insider Preview (Dev Channel) - Build 21354： 从语言里选择Chinese Simplified，然后点击Confirm： 然后就可以得到最新测试版镜像了，注意链接有时效性，得到链接后尽快下载，推荐使用IDM或者迅雷进行下载： 二、安装由于是测试版系统，因此推荐大家在虚拟机里安装测试，并不推荐在实体机上安装，毕竟在实体机上遇到系统bug，将会是一件很难受的事情。 Windows系统：可以使用VMWare Workstation或者VirtualBox等虚拟机macOS系统：可以使用Parallels Desktop、VMware Fusion或者VirtualBox等虚拟机 三、体验1、新图标装完系统最大的感受，就是图标换了： 用户文件、控制面板、此电脑、回收站图标均进行了较大改动： 视频、图片、文档、下载、音乐、桌面等6个图标都进行了修改，同时取消了3D模型的文件夹 文件夹图标更换了新样式，更“黄”了，有木有： 以列表样式查看文件夹，文件夹之间的间隔更大了： 控制面板、命令提示符、运行的新图标： 控制面板里也采用了新样式： 2、开始菜单开始菜单里的通用应用，也全部更换了新的图标： 3、预装软件预装软件和之前版本的系统，有所变化。 除了图片查看器、音视频播放器、小娜、计算器、便签、邮件等常规应用之外，删除了3D模型，但增加安装了Microsoft Whiteboard、Microsoft TO DO、Microsoft资讯。其中Microsoft Whiteboard和Microsoft TO DO需要登录Microsoft账户之后才能使用，Microsoft资讯打开就能用，不需要登录。 Microsoft Whiteboard是一个白板应用，简单来说，就是可以在里面涂涂画画，对于一些从事于教育行业的人士来说，可能有点用处，给学生画图做演示。 多说一句，微软白板应用Android和iOS版同样也上架了Google Play Store和Apple App Store，需要的用户可以去下载使用。不过现在好像还在内测阶段。 Microsoft TO DO是个免费的待办事项软件，是微软收购的，它同样也有各大平台的版本，包括Android、iOS、macOS版。 Microsoft资讯，就是个资讯合集软件，资讯分类还是很全的，娱乐、新闻、生活、财经、教育、科技等等。 其实在Win8、Win8.1系统里，资讯是默认内置在系统里的，后来在Win10 TH1（Build 10240）里取消了，现在Win10 21H2（Build 21354）版本又加回来了。 4、任务栏21H2版本的任务栏，新增了两个项目，分别是“News and interests”、“Pen button”，由于这还是测试版系统，这两个项目都没有翻译。 萝卜哥帮大家翻译一下，这两个新增的分别是“新闻和兴趣”、“笔按钮”。其中，“新闻和兴趣”默认是勾选的，“笔按钮”需要手动开启才会显示。 “新闻和兴趣”：它默认显示的是当地的天气。如果点击一下这个天气图标，就会弹出资讯。 “笔按钮”：点一下这个按钮，就会显示白板和截图的按钮。另外，在系统设置里，也可以对笔进行进一步详细的设定。 四、建议正如前面说过，Win10 Build 21354还是测试版本，不建议大家在实体机上安装。测试版往往有比较多的bug，在虚拟机里玩玩就好，提前体验一下即将发布的新系统，过过瘾就好 推荐文章（由hexo文章推荐插件驱动）window上帝模式数字基础设施开源操作系统欧拉全新发布华为宣布将发布操作系统openEuler欧拉Windows上的IPv6","categories":[{"name":"系统","slug":"系统","permalink":"https://www.qystu.cc/categories/%E7%B3%BB%E7%BB%9F/"}],"tags":[{"name":"windows","slug":"windows","permalink":"https://www.qystu.cc/tags/windows/"},{"name":"系统","slug":"系统","permalink":"https://www.qystu.cc/tags/%E7%B3%BB%E7%BB%9F/"}],"author":"青云工作室"},{"title":"使用PicGo+GitHub搭建免费个人图床","slug":"使用PicGo-GitHub搭建免费个人图床","date":"2021-04-03T13:59:45.000Z","updated":"2021-04-03T13:59:45.000Z","comments":true,"path":"posts/14158.html","link":"","permalink":"https://www.qystu.cc/posts/14158.html","excerpt":"","text":"一、Q&amp;A1.为什么要用到图床因为比如你的博客/网站存在大量图片，如果你引用的是本地图片，上传部署到服务器必然要耗时很长，而且图片占用服务器大量的存储空间。 如果采用图床的话，图片在第三方的云空间，直接引用上传到云空间生成的url即可，上传到服务器的包不再含有图片文件，节省上传时间和服务器空间。 博主最深刻的体验就是初期使用wordpress自带的图片编辑器裁切图片。过了一段时间由于服务器费用问题，打算迁移站点，下载到本地后发现，1张图片居然生成了6-7张子文件，虽然大小不是很大，不过数量很多，看着就头痛。使用图床就完全没有这些问题，一张图片在文章内只占用了链接字符的空间，服务器会很轻便 2.使用GitHub存储图片的优缺点优点不必多说：免费、稳定（不会突然跑路）缺点：每个仓库只有1GB容量，不过可以通过建立多个仓库解决。上传的图片是公开的，别人可以通过访问你的GitHub仓库看到 二、配置Github1. 注册github（已经注册请跳过）2.新建仓库点击 git 主页右上角的 + 创建 New repository； 3.创建 token 并复制保存点击右上角头像，然后进入设置；在页面最下找到 Developer settings，点击进入；点击”Personal access tokens”按钮点击generate new token 按钮 填 description（也是随心填），勾选复选框 repo ，接着到页面底部 Generate token 就完成了； 注：创建成功后，会生成一串token，这串token之后不会再显示，所以第一次看到的时候，可以建个文本文件好好保存，忘记了只有重新生成，每次都不一样。 三、配置PicGo1.下载&amp;安装git地址：PicGo 2. 配置图床仓库名 即你的仓库名分支名 默认 master Token 就是刚刚复制的那一串字符存储路径 这个可以填也可以不填，填了的话图片就上传到仓库名下的子目录域名 https://raw.githubusercontent.com/[username]/[仓库名]/master 注：我的域名为什么是cdn开头，后文要说 四、进阶使用教程1.使用cdn解决GitHub国内访问缓慢的问题使用jsDelivr CDN 加速访问（jsDelivr 是一个免费开源的 CDN 解决方案） 将自定义域名设置为【https://cdn.jsdelivr.net/gh/用户名/图床仓库名 】。 2.使用githubPlus替代PicGo自带GitHub上传工具PicGo自带的GitHub上传工具，不能同步删除GitHub仓库中的图片，这会导致我们在上传了不需要的图片后，产生冗余资源（强迫症表示很难受），因此，我们需要利用PicGo强大的插件功能实现同步操作相册和仓库图片 点击PicGo左侧菜单最下方的插件设置，在搜索框中输入github-plus 点击灰色的安装按钮 安装完成后在左侧菜单找到github-plus，设置方法同Github图床设置 别忘了设置后保存设置并点击“设为默认图床”按钮 推荐文章（由hexo文章推荐插件驱动）qexo多作者解决方案DIY最低成本图床serviceworkers首屏优化","categories":[{"name":"web","slug":"web","permalink":"https://www.qystu.cc/categories/web/"}],"tags":[{"name":"图床","slug":"图床","permalink":"https://www.qystu.cc/tags/%E5%9B%BE%E5%BA%8A/"},{"name":"博客","slug":"博客","permalink":"https://www.qystu.cc/tags/%E5%8D%9A%E5%AE%A2/"}],"author":"青云工作室"},{"title":"hexo史上最全搭建教程","slug":"hexo史上最全搭建教程","date":"2021-03-07T06:32:18.000Z","updated":"2021-03-07T06:01:08.000Z","comments":true,"path":"posts/51935.html","link":"","permalink":"https://www.qystu.cc/posts/51935.html","excerpt":"","text":"前言现在市面上的博客很多，如CSDN，博客园，简书等平台，可以直接在上面发表，用户交互做的好，写的文章百度也能搜索的到。缺点是比较不自由，会受到平台的各种限制和恶心的广告。 而自己购买域名和服务器，搭建博客的成本实在是太高了，不光是说这些购买成本，单单是花力气去自己搭这么一个网站，还要定期的维护它，对于我们大多数人来说，实在是没有这样的精力和时间。 在众多博客软件中,选择是一个重要因素,决定了易用性美观度等问题。那么就有第三种选择，利用hexo生成网页并直接在github page平台上托管我们的博客。这样就可以安心的来写作，又不需要定期维护，而且hexo作为一个快速简洁的博客框架，用它来搭建博客真的非常容易。 目录 第一部分：hexo的初级搭建还有部署到github page上，以及个人域名的绑定。 第二部分：hexo的基本配置，更换主题，实现多终端工作，以及在coding page部署实现国内外分流 第三部分：hexo添加各种功能，包括搜索的SEO，阅读量统计，访问量统计和评论系统等。 第一部分hexo的初级搭建还有部署到github page上，以及个人域名的绑定。 Hexo简介Hexo是一款基于Node.js的静态博客框架，依赖少易于安装使用，可以方便的生成静态网页托管在GitHub和Coding上，是搭建博客的首选框架。大家可以进入hexo官网进行详细查看，因为Hexo的创建者是台湾人，对中文的支持很友好，可以选择中文进行查看。 Hexo搭建步骤 安装Git 安装Node.js 安装Hexo GitHub创建个人仓库 生成SSH添加到GitHub 将hexo部署到GitHub 设置个人域名 发布文章 1. 安装GitGit是目前世界上最先进的分布式版本控制系统，可以有效、高速的处理从很小到非常大的项目版本管理。也就是用来管理你的hexo博客文章，上传到GitHub的工具。Git非常强大，我觉得建议每个人都去了解一下 windows：到git官网上下载,Download git,下载后会有一个Git Bash的命令行工具，以后就用这个工具来使用git。 linux：对linux来说实在是太简单了，因为最早的git就是在linux上编写的，只需要一行代码 1sudo apt-get install git 安装好后，用git –version 来查看一下版本 2. 安装nodejsHexo是基于nodeJS编写的，所以需要安装一下nodeJs和里面的npm工具。 windows：nodejs选择LTS版本就行了。 linux： 12sudo apt-get install nodejssudo apt-get install npm 安装完后，打开命令行 12node -vnpm -v 检查一下有没有安装成功 顺便说一下，windows在git安装完后，就可以直接使用git bash来敲命令行了，不用自带的cmd，cmd有点难用。 win7的用户可以使用历史版本12.18.4 3. 安装hexo前面git和nodejs安装好后，就可以安装hexo了，你可以先创建一个文件夹blog，然后cd到这个文件夹下（或者在这个文件夹下直接右键git bash打开）。 输入命令 1npm install -g hexo-cli 依旧用hexo -v查看一下版本 至此就全部安装完了。 接下来初始化一下hexo 1hexo init myblog 这个myblog可以自己取什么名字都行，然后 12cd myblog //进入这个myblog文件夹npm install 新建完成后，指定文件夹目录下有： node_modules: 依赖包public：存放生成的页面scaffolds：生成文章的一些模板source：用来存放你的文章themes：主题_config.yml: 博客的配置文件 12hexo ghexo server 打开hexo的服务，在浏览器输入localhost:4000就可以看到你生成的博客了。 大概长这样： 使用ctrl+c可以把服务关掉。 4. GitHub创建个人仓库首先，你先要有一个GitHub账户，去注册一个吧。 注册完登录后，在GitHub.com中看到一个New repository，新建仓库 创建一个和你用户名相同的仓库，后面加.github.io，只有这样，将来要部署到GitHub page的时候，才会被识别，也就是xxxx.github.io，其中xxx就是你注册GitHub的用户名。我这里是已经建过了。 点击create repository。 5. 生成SSH添加到GitHub回到你的git bash中， 12git config --global user.name &quot;yourname&quot;git config --global user.email &quot;youremail&quot; 这里的yourname输入你的GitHub用户名，youremail输入你GitHub的邮箱。这样GitHub才能知道你是不是对应它的账户。 可以用以下两条，检查一下你有没有输对 12git config user.namegit config user.email 然后创建SSH,一路回车 1ssh-keygen -t rsa -C &quot;youremail&quot; 这个时候它会告诉你已经生成了.ssh的文件夹。在你的电脑中找到这个文件夹。 ssh，简单来讲，就是一个秘钥，其中，id_rsa是你这台电脑的私人秘钥，不能给别人看的，id_rsa.pub是公共秘钥，可以随便给别人看。把这个公钥放在GitHub上，这样当你链接GitHub自己的账户时，它就会根据公钥匹配你的私钥，当能够相互匹配时，才能够顺利的通过git上传你的文件到GitHub上。 而后在GitHub的setting中，找到SSH keys的设置选项，点击New SSH key把你的id_rsa.pub里面的信息复制进去。 在gitbash中，查看是否成功 1ssh -T git@github.com 6. 将hexo部署到GitHub这一步，我们就可以将hexo和GitHub关联起来，也就是将hexo生成的文章部署到GitHub上，打开站点配置文件 _config.yml，翻到最后，修改为YourgithubName就是你的GitHub账户 1234deploy: type: git repo: https://github.com/YourgithubName/YourgithubName.github.io.git branch: master 这个时候需要先安装deploy-git ，也就是部署的命令,这样你才能用命令部署到GitHub。 1npm install hexo-deployer-git --save 然后 123hexo cleanhexo generatehexo deploy 其中 hexo clean清除了你之前生成的东西，也可以不加。hexo generate 顾名思义，生成静态文章，可以用 hexo g缩写hexo deploy 部署文章，可以用hexo d缩写 注意deploy时可能要你输入username和password。 得到下图就说明部署成功了，过一会儿就可以在http://yourname.github.io 这个网站看到你的博客了！！ 7. 设置个人域名现在你的个人网站的地址是 yourname.github.io，如果觉得这个网址逼格不太够，这就需要你设置个人域名了。但是需要花钱。 注册一个阿里云账户,在阿里云上买一个域名，我买的是 qystu.cc，各个后缀的价格不太一样，比如最广泛的.com就比较贵，看个人喜好咯。 你需要先去进行实名认证,然后在域名控制台中，看到你购买的域名。 点解析进去，添加解析。 其中，根据github docs 说明 应添加A记录的4个IP 1234185.199.108.153185.199.109.153185.199.110.153185.199.111.153 注意，解析线路选择默认，不要像我一样选境外。这个境外是后面来做国内外分流用的,在后面的博客中会讲到。记得现在选择默认！！ 登录GitHub，进入之前创建的仓库，点击settings，设置Custom domain，输入我的域名qystu.cc 然后在你的博客文件source中创建一个名为CNAME文件，不要后缀。写上你的域名。 最后，在git bash中，输入 123hexo cleanhexo ghexo d 过不了多久，再打开你的浏览器，输入你自己的域名，就可以看到搭建的网站啦！ 接下来你就可以正式开始写文章了。 1hexo new newpapername 然后在source/_post中打开markdown文件，就可以开始编辑了。当你写完的时候，再 123hexo cleanhexo ghexo d 就可以看到更新了。 第二部分hexo的基本配置，更换主题，实现多终端工作，以及在coding page部署实现国内外分流。 1. hexo基本配置在文件根目录下的_config.yml，就是整个hexo框架的配置文件了。可以在里面修改大部分的配置。详细可参考官方的配置描述。 网站 参数 描述 title 网站标题 subtitle 网站副标题 description 网站描述 author 您的名字,作者 language 网站使用的语言,不是编程语言 timezone 网站时区。Hexo 默认使用您电脑的时区。时区列表。比如说：America/New_York, Japan, 和 UTC 。 网址 参数 描述 url 网址 root 网站根目录 permalink 文章的永久链接格式 permalink_defaults 永久链接中各部分的默认值 在这里，你需要把url改成你的网站域名。 permalink，也就是你生成某个文章时的那个链接格式。 比如我新建一个文章叫temp.md，那么这个时候他自动生成的地址就是http://yoursite.com/2018/09/05/temp。 以下是官方给出的示例，关于链接的变量还有很多，需要的可以去官网上查找 永久链接 。 参数 结果 :year/:month/:day/:title/ 2013/07/14/hello-world :year-:month-:day-:title.html 2013-07-14-hello-world.html :category/:title foo/bar/hello-world Hexo默认的静态URL格式是 :year/:month/:day/:title，也就是按照年、月、日、标题来生成固定链接的。如http://xxx.yy.com/2020/07/06/hello-world 这种默认配置的缺点就是一般文件名是中文，导致url链接里有中文出现，这会造成很多问题，也不利于seo，另外就是年月日都会有分隔符 百度蜘蛛抓取网页的规则: 对于蜘蛛说网页权重越高、信用度越高抓取越频繁，例如网站的首页和内页。蜘蛛先抓取网站的首页，因为首页权重更高，并且大部分的链接都是指向首页。然后通过首页抓取网站的内页，并不是所有内页蜘蛛都会去抓取。 搜索引擎认为对于一般的中小型站点，3层足够承受所有的内容了，所以蜘蛛经常抓取的内容是前三层，而超过三层的内容蜘蛛认为那些内容并不重要，所以不经常爬取。出于这个原因所以permalink后面跟着的最好不要超过2个斜杠 使用 hexo-abbrlink 插件可以完美解决，具体使用方法如下： 安装插件1npm install hexo-abbrlink --save 再往下翻，中间这些都默认就好了。 12345678theme: landscape# Deployment## Docs: https://hexo.io/docs/deployment.htmldeploy: type: git repo: &lt;repository url&gt; branch: [branch] theme就是选择什么主题，也就是在theme这个文件夹下，在官网上有很多个主题，默认给你安装的是lanscape这个主题。当你需要更换主题时，在官网上下载，把主题的文件放在theme文件夹下，再修改这个参数就可以了。 接下来这个deploy就是网站的部署的，repo就是仓库(Repository)的简写。branch选择仓库的哪个分支。这个在之前进行github page部署的时候已经修改过了，不再赘述。而这个在后面进行双平台部署的时候会再次用到。 Front-matterFront-matter 是文件最上方以 — 分隔的区域，用于指定个别文件的变量，举例来说： 123title: Hello Worlddate: 2013/7/13 20:46:25--- 下是预先定义的参数，您可在模板中使用这些参数值并加以利用。 参数 描述 layout 布局 title 标题 date 建立日期 updated 更新日期 comments 开启文章的评论功能 tags 标签(不适用于分页) categories 分类(不适用于分页) permalink 覆盖文章网址 其中，分类和标签需要区别一下，分类具有顺序性和层次性，也就是说 Foo, Bar 不等于 Bar, Foo；而标签没有顺序和层次。 12345categories:- Diarytags:- PS3- Games layout（布局）当你每一次使用代码 1hexo new paper 它其实默认使用的是post这个布局，也就是在source文件夹下的_post里面。 Hexo 有三种默认布局：post、page 和 draft，它们分别对应不同的路径，而您自定义的其他布局和 post 相同，都将储存到 source/_posts 文件夹。 布局 路径 post source/_posts page source draft source/_drafts 而new这个命令其实是： 1hexo new [layout] &lt;title&gt; 只不过这个layout默认是post罢了。 page如果你想另起一页，那么可以使用 1hexo new page board 系统会自动给你在source文件夹下创建一个board文件夹，以及board文件夹中的index.md，这样你访问的board对应的链接就是http://xxx.xxx/board draftdraft是草稿的意思，也就是你如果想写文章，又不希望被看到，那么可以 1hexo new draft newpage 这样会在source/_draft中新建一个newpage.md文件，如果你的草稿文件写的过程中，想要预览一下，那么可以使用 1hexo server --draft 在本地端口中开启服务预览。 如果你的草稿文件写完了，想要发表到post中， 1hexo publish draft newpage 就会自动把newpage.md发送到post中。 2. 更换主题到这一步，如果你觉得默认的landscape主题不好看，那么可以在官网的主题中，选择你喜欢的一个主题进行修改就可以啦。点这里 这里有200多个主题可以选。不过最受欢迎的就是那么几个，比如NexT主题，非常的简洁好看，大多数人都选择这个，关于这个的教程也比较多。不过我选择的是volantis 不管怎么样，至少是符合我个人的审美。 直接在github链接上下载下来，然后放到theme文件夹下就行了，然后再在刚才说的配置文件中把theme换成那个主题文件夹的名字，它就会自动在theme文件夹中搜索你配置的主题。 而后进入volantis这个文件夹，可以看到里面也有一个配置文件_config.xml menu（菜单栏）也就是上面菜单栏上的这些东西。 其中，About这个你是找不到网页的，因为你的文章中没有about这个东西。如果你想要的话，可以执行命令 1hexo new page about 它就会在根目录下source文件夹中新建了一个about文件夹，以及index.md，在index.md中写上你想要写的东西，就可以在网站上展示出来了。 customize(定制)在这里可以修改你的个人logo，默认是那个hueman，在source/css/images文件夹中放入自己要的logo，再改一下url的链接名字就可以了。 favicon是网站中出现的那个小图标的icon，找一张你喜欢的logo，然后转换成ico格式，放在images文件夹下，配置一下路径就行。 social_links ，可以显示你的社交链接，而且是有logo的。 tips: 在这里可以添加一个rss功能，也就是那个符号像wifi一样的东西。 添加RSS 什么是RSS？ RSS也就是订阅功能，你可以理解为类似与订阅公众号的功能，来订阅各种博客，杂志等等。 为什么要用RSS？ 就如同订阅公众号一样，你对某个公众号感兴趣，你总不可能一直时不时搜索这个公众号来看它的文章吧。博客也是一样，如果你喜欢某个博主，或者某个平台的内容，你可以通过RSS订阅它们，然后在RSS阅读器上可以实时推送这些消息。现在网上的垃圾消息太多了，如果你每一天都在看这些消息中度过，漫无目的的浏览，只会让你的时间一点一点的流逝，太不值得了。如果你关注的博主每次都发的消息都是精华，而且不是每一天十几条几十条的轰炸你，那么这个博主就值得你的关注，你就可以通过RSS订阅他。 在我的理解中，如果你不想每天都被那些没有质量的消息轰炸，只想安安静静的关注几个博主，每天看一些有质量的内容也不用太多，那么RSS订阅值得你的拥有。 添加RSS功能 先安装RSS插件 1npm i hexo-generator-feed 而后在你整个项目的_config.yml中找到Extensions，添加： 12345678910# Extensions## Plugins: https://hexo.io/plugins/#RSS订阅plugin:- hexo-generator-feed#Feed Atomfeed: type: atom path: atom.xml limit: 20 这个时候你的RSS链接就是 域名/atom.xml了。 所以，在主题配置文件中的这个social links，开启RSS的页面功能，这样你网站上就有那个像wifi一样符号的RSS logo了，注意空格。 1rss: /atom.xml 如何关注RSS？ 首先，你需要一个RSS阅读器，在这里我推荐inoreader，宇宙第一RSS阅读器，而且中文支持的挺好。不过它没有PC端的程序，只有网页版，chrome上有插件。在官网上用google账号或者自己注册账号登录，就可以开始你的关注之旅了。 每次需要关注某个博主时，就点开他的RSS链接，把链接复制到inoreader上，就能关注了 在安卓端，inoreader也有下载，不过因为国内google是登录不了的，你需要在inoreader官网上把你的密码修改了，然后就可以用账户名和密码登录了。 在IOS端，没用过，好像是reader 3可以支持inoreader账户，还有个readon也不错，可以去试试。 search(搜索框)默认搜索框是不能够用的， you need to install hexo-generator-json-content before using Insight Search 它已经告诉你了，如果想要使用，就安装这个插件。 comment(评论系统)这里的多数都是国外的，基本用不了。这个valine好像不错，还能统计文章阅读量，但更加建议使用waline，安全性更强，可以自己试一试，链接。 miscellaneous(其他)这里我就改了一个links，可以添加友链。注意空格要对！不然会报错！ 总结：整个主题看起来好像很复杂的样子，但是仔细捋一捋其实也比较流畅， languages: 顾名思义layout：布局文件，其实后期想要修改自定义网站上的东西，添加各种各样的信息，主要是在这里修改，其中comment是评论系统，common是常规的布局，最常修改的在这里面，比如修改页面head和footer的内容。scripts：js脚本，暂时没什么用source：里面放了一些css的样式，以及图片 3. git分支进行多终端工作问题来了，如果你现在在自己的笔记本上写的博客，部署在了网站上，那么你在家里用台式机，或者实验室的台式机，发现你电脑里面没有博客的文件，或者要换电脑了，最后不知道怎么移动文件，怎么办？ 在这里我们就可以利用git的分支系统进行多终端工作了，这样每次打开不一样的电脑，只需要进行简单的配置和在github上把文件同步下来，就可以无缝操作了。 机制机制是这样的，由于hexo d上传部署到github的其实是hexo编译后的文件，是用来生成网页的，不包含源文件。 也就是上传的是在本地目录里自动生成的.deploy_git里面。 其他文件 ，包括我们写在source 里面的，和配置文件，主题文件，都没有上传到github 所以可以利用git的分支管理，将源文件上传到github的另一个分支即可。 上传分支首先，先在github上新建一个hexo分支，如图： 然后在这个仓库的settings中，选择默认分支为hexo分支（这样每次同步的时候就不用指定分支，比较方便）。 然后在本地的任意目录下，打开git bash， 1git clone git@github.com:yorame/yourname.github.io.git 将其克隆到本地，因为默认分支已经设成了hexo，所以clone时只clone了hexo。 接下来在克隆到本地的yourname.github.io中，把除了.git 文件夹外的所有文件都删掉 把之前我们写的博客源文件全部复制过来，除了.deploy_git。这里应该说一句，复制过来的源文件应该有一个.gitignore，用来忽略一些不需要的文件，如果没有的话，自己新建一个，在里面写上如下，表示这些类型文件不需要git： 1234567.DS_StoreThumbs.dbdb.json*.lognode_modules/public/.deploy*/ 注意，如果你之前克隆过theme中的主题文件，那么应该把主题文件中的.git文件夹删掉，因为git不能嵌套上传，最好是显示隐藏文件，检查一下有没有，否则上传的时候会出错，导致你的主题文件无法上传，这样你的配置在别的电脑上就用不了了。 而后 123git add .git commit –m &quot;add branch&quot;git push 这样就上传完了，可以去你的github上看一看hexo分支有没有上传上去，其中node_modules、public、db.json已经被忽略掉了，没有关系，不需要上传的，因为在别的电脑上需要重新输入命令安装 。 这样就上传完了。 更换电脑操作一样的，跟之前的环境搭建一样， 安装git 1sudo apt-get install git 设置git全局邮箱和用户名 12git config --global user.name &quot;yourgithubname&quot;git config --global user.email &quot;yourgithubemail&quot; 设置ssh key 12345ssh-keygen -t rsa -C &quot;youremail&quot;#生成后填到github和coding上（有coding平台的话）#验证是否成功ssh -T git@github.comssh -T git@git.coding.net #(有coding平台的话) 安装nodejs 12sudo apt-get install nodejssudo apt-get install npm 安装hexo 1sudo npm install hexo-cli -g 但是已经不需要初始化了， 直接在任意文件夹下， 1git clone git@……………… 然后进入克隆到的文件夹： 123cd xxx.github.ionpm installnpm install hexo-deployer-git --save 生成，部署： 12hexo ghexo d 然后就可以开始写你的新博客了 1hexo new newpage Tips: 不要忘了，每次写完最好都把源文件上传一下 123git add .git commit –m &quot;xxxx&quot;git push 如果是在已经编辑过的电脑上，已经有clone文件夹了，那么，每次只要和远端同步一下就行了 1git pull 4.coding page上部署实现国内外分流之前我们已经把hexo托管在github了，但是github是国外的，而且百度的爬虫是不能够爬取github的，所以如果你希望你做的博客能够在百度引擎上被收录，而且想要更快的访问，那么可以在国内的coding page做一个托管，这样在国内访问就是coding page，国外就走github page。 1. 申请coding账户，新建项目先申请一个账户，然后创建新的项目，这一步项目名称应该是随意的。 2. 添加ssh key这一步跟github一样。 添加后，检查一下是不是添加成功 1ssh -T git@git.coding.net 3. 修改_config.ymlhexo官方文档是这样的： 123456deploy: type: gitmessage: [message] repo: github: &lt;repository url&gt;,[branch] coding: &lt;repository url&gt;,[branch] 那么，我们只需要： 12345deploy: type: git repo: coding: git@git.coding.net:yourname/yourname.git,master github: git@github.com:yourname/yourname.github.io.git,master 4. 部署保存一下，直接 12hexo ghexo d 这样就可以在coding的项目上看到你部署的文件了。 5.开启coding pages服务，绑定域名6.阿里云添加解析这个时候就可以把之前github的解析改成境外，把coding的解析设为默认了。 7.去除coding page的跳转广告coding page的一个比较恶心人的地方就是，你只是银牌会员的话，访问会先跳转到一个广告，再到你自己的域名。那么它也给出了消除的办法。右上角切换到coding的旧版界面，默认新版是不行的。然后再来到pages服务这里。 只要你在页面上添加一行文字，写Hosted by Coding Pages，然后点下面的小勾勾，两个工作日内它就会审核通过了。 1&lt;p&gt;Hosted by &lt;a href=&quot;https://pages.coding.me&quot; style=&quot;font-weight: bold&quot;&gt;Coding Pages&lt;/a&gt;&lt;/p&gt; 我的选择是把这一行代码放在主题文件夹/layout/common/footer.ejs里面，也就是本来在页面中看到的页脚部分。 当然，为了统一，我又在后面加上了and Github哈哈，可以不加。 1&lt;p&gt;&lt;span&gt;Hosted by &lt;a href=&quot;https://pages.coding.me&quot; style=&quot;font-weight: bold&quot;&gt;Coding Pages&lt;/a&gt;&lt;/span&gt; and &lt;span&gt;&lt;a href=&quot;https://github.com&quot; style=&quot;font-weight: bold&quot;&gt;Github&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; 这是最终加上去的代码。 第三部分hexo添加各种功能，包括搜索的SEO，阅读量统计，访问量统计和评论系统等。 1.SEO优化推广是很麻烦的事情，怎么样别人才能知道我们呢，首先需要让搜索引擎收录你的这个网站，别人才能搜索的到。那么这就需要SEO优化了。 SEO是由英文Search Engine Optimization缩写而来， 中文意译为“搜索引擎优化”。SEO是指通过站内优化比如网站结构调整、网站内容建设、网站代码优化等以及站外优化。 百度seo刚建站的时候是没有搜索引擎收录我们的网站的。可以在搜索引擎中输入site:&lt;域名&gt; 来查看一下。 登录百度站长平台添加网站 登录百度站长平台，在站点管理中添加你自己的网站。 验证网站有三种方式：文件验证、HTML标签验证、CNAME验证。 第三种方式最简单，只要将它提供给你的那个xxxxx使用CNAME解析到xxx.baidu.com就可以了。也就是登录你的阿里云，把这个解析填进去就OK了。 提交链接 我们需要使用npm自动生成网站的sitemap，然后将生成的sitemap提交到百度和其他搜索引擎 12npm install hexo-generator-sitemap --save npm install hexo-generator-baidu-sitemap --save 这时候你需要在你的根目录下_config.xml中看看url有没有改成你自己的： 重新部署后，就可以在public文件夹下看到生成的sitemap.xml和baidusitemap.xml了。 然后就可以向百度提交你的站点地图了。 这里建议使用自动提交。 自动提交又分为三种：主动推送、自动推送、sitemap。 可以三个一起提交不要紧，我选择的是后两种。 自动推送：把百度生成的自动推送代码，放在主题文件/layout/common/head.ejs的适当位置，然后验证一下就可以了。sitemap：把两个sitemap地址，提交上去，看到状态正常就OK了。 ps: 百度收录比较慢，慢慢等个十天半个月再去site:&lt;域名&gt;看看有没有被收录。 pps:由于github屏蔽了百度的爬虫，需要自定义robot.txt 或使用百度主动提交链接 前提，您得注册百度站长工具，然后在工具-&gt;网页抓取-&gt;链接提交里找到你的密匙。 首先，在Hexo根目录下，安装插件： 1npm install hexo-baidu-url-submit --save 最后，加入新的deployer: 12345deploy:- type: ##原有的 bucket: www.qystu.cc- type: baidu_url_submitter google的SEO流程一样，google更简单，而且收录更快，进入google站点地图，提交网站和sitemap.xml，就可以了。 如果你这个域名在google这里出了问题，那你就提交 yourname.github.io，这个链接，效果是一样的。 不出意外的话一天内google就能收录你的网站了。 其他的搜索，如搜狗搜索，360搜索，流程是一样的，这里就不再赘述。 2.评论系统可以使用valine或waline 3.添加百度统计百度统计可以在后台上看到你网站的访问数，浏览量，浏览链接分布等很重要的信息。所以添加百度统计能更有效的让你掌握你的网站情况。 百度统计，注册一下，这里的账号好像和百度账号不是一起的。 照样把代码复制到head.ejs文件中，然后再进行一下安装检查，半小时左右就可以在百度统计里面看到自己的网站信息了。 总结到这里就基本做完了。其实都是参考别的博主的设置的，不一定仅限于volantis主题，你可以在网络中寻找到各种各样的hexo主题,其他主题的设置也是大体相同的，所以如果你希望设置别的主题，那么仔细看一下这个主题的代码结构，也能够把上边的功能添加进去。 多看看别的博主的那些功能，如果有你能找到自己喜欢的功能，那么好好发动搜索技能，很快就能找到怎么做了。加油吧！ 推荐文章（由hexo文章推荐插件驱动）qexo多作者解决方案DIY最低成本图床serviceworkers首屏优化","categories":[{"name":"web","slug":"web","permalink":"https://www.qystu.cc/categories/web/"}],"tags":[{"name":"hexo","slug":"hexo","permalink":"https://www.qystu.cc/tags/hexo/"},{"name":"博客","slug":"博客","permalink":"https://www.qystu.cc/tags/%E5%8D%9A%E5%AE%A2/"},{"name":"建站","slug":"建站","permalink":"https://www.qystu.cc/tags/%E5%BB%BA%E7%AB%99/"}],"author":"青云工作室"},{"title":"建站博客折腾之路","slug":"建站博客折腾之路","date":"2021-03-06T06:32:55.000Z","updated":"2021-03-07T06:01:37.000Z","comments":true,"path":"posts/48495.html","link":"","permalink":"https://www.qystu.cc/posts/48495.html","excerpt":"","text":"前言想必很多人都有一个属于自己的草根站长梦想，但却由于技术水平、资金、关系资源等种种原因，往往徘徊在坚持与放弃之间！“梦想还是要有的，万一实现了呢！”没错，今天我就要帮助那些有站长梦的人实现这个梦想，不需要你会敲代码，今天我们攻克技术、资金、资源难关拿下一个网站！ 现在市面上的博客很多，如CSDN，博客园，简书等平台，可以直接在上面发表，用户交互做的好，写的文章百度也能搜索的到。缺点是比较不自由，会受到平台的各种限制和恶心的广告。 作为一个coder，我无时无刻不想拥有一个自己的个人博客网站，也从未放弃过探索这条道路，从网站编程开始，慢慢接触云服务器。中间经历了很多曲折的路，技术不达标、不够资金买云服务 而自己购买域名和服务器，搭建博客的成本实在是太高了，不光是说这些购买成本，单单是花力气去自己搭这么一个网站，还要定期的维护它，对于我们大多数人来说，实在是没有这样的精力和时间。 目录所以我的网站将发布以下系列文章 hexo博客建站系列文章 wordpress博客建站系列文章 discuz论坛建站系列文章 总结我的文章将以不间断的形式更新，作者今年初三中考更新比较慢，勿催更，谢谢 推荐文章（由hexo文章推荐插件驱动）qexo多作者解决方案serviceworkers首屏优化为hexo加一个自动部署","categories":[{"name":"web","slug":"web","permalink":"https://www.qystu.cc/categories/web/"}],"tags":[{"name":"博客","slug":"博客","permalink":"https://www.qystu.cc/tags/%E5%8D%9A%E5%AE%A2/"},{"name":"建站","slug":"建站","permalink":"https://www.qystu.cc/tags/%E5%BB%BA%E7%AB%99/"}],"author":"青云工作室"},{"title":"无广告、无推送，最最纯净的WPS版本","slug":"无广告、无推送，最最纯净的WPS版本","date":"2021-02-21T07:20:57.000Z","updated":"2021-03-21T07:27:37.000Z","comments":true,"path":"posts/61939.html","link":"","permalink":"https://www.qystu.cc/posts/61939.html","excerpt":"无广告、无推送，最最纯净的WPS版本另附四大权限与下载地址","text":"无广告、无推送，最最纯净的WPS版本另附四大权限与下载地址 前言就在去年12月，教育部考试中心突然发布《关于做好2021年全国计算机等级考试工作的通知》，新增计算机考试科目，正式将国产办公软件——WPS，作为全国计算机等级考试二级考试科目之一，调整将于今年开始，3月开考。 如今WPS进入二级考试科目，标志着我国国产办公软件正式步入快速发展阶段，只有拥有了第一批忠实和熟练的用户，WPS才能得到更好的推广和教学，或许在不久的将来，WPS能够像MS Office一样成为世界性的知名办公软件。 在教育部考试中心的通知信函中还有这么一句：从三月开始，一级，二级WPS Office科目应用软件将使用新版的教育考试专用版WPS Office软件，考点可到中国教育考试网下载。 这说明，WPS将专门为计算机等级考试而开发一款新的教育考试版，届时考生考试将使用此版本，这种情况下的WPS版本八成会是纯净版。 目前此版本已经可以下载，WPS教育考试版真的就是无广告版本。 教育考试网提供的WPS教育考试版版本号为11.1.0，大小为149MB，相对与WPS官网的个人免费版要小整整4MB。 安装之后可以看到，教育考试版主界面和功能基本和免费版一致，除了无法直接发现到的无广告特征之外，教育考试版相比于免费版还具有以下专属功能： 福利01教育类模板资源专享福利 教育考试版将原有的稻壳儿内容资源进行教育类优化，除了享有更加优质的文字、表格、演示等模板资源外，还可免费享受其他版本的部分收费模板资源。 02专业绘图+ LaTeX专享福利LaTeX的初次使用者，就可以在短时间内生成高质量的文档和复杂的数学公式，同时，思维导图、流程图也能让学生的结构化学习能力提升。 03汉仪上百款字体限免专享WPS云字体中特别针对教育版为师生全面限免开放了107种汉仪字体。 04WPS精品课教育版为师生提供优秀的精品课程，赠送WPS办公技巧免费课程。在报考WPS二级考试的同时，WPS还会为考生赠送四个月的免费会员，所以如果大家今年有人报考的话，千万别忘记了领取。 WPS教育考试版不仅限于师生使用，由于其具有的优良特性，非常适合用来替代大家正在使用的WPS个人版。 下载下载链接：点击下载 推荐文章（由hexo文章推荐插件驱动）卸载工具 IObit Uninstaller","categories":[{"name":"software","slug":"software","permalink":"https://www.qystu.cc/categories/software/"}],"tags":[{"name":"software","slug":"software","permalink":"https://www.qystu.cc/tags/software/"},{"name":"软件","slug":"软件","permalink":"https://www.qystu.cc/tags/%E8%BD%AF%E4%BB%B6/"},{"name":"WPS","slug":"WPS","permalink":"https://www.qystu.cc/tags/WPS/"}],"author":"青云工作室"}],"categories":[{"name":"totime","slug":"totime","permalink":"https://www.qystu.cc/categories/totime/"},{"name":"chuqis","slug":"chuqis","permalink":"https://www.qystu.cc/categories/chuqis/"},{"name":"散文","slug":"散文","permalink":"https://www.qystu.cc/categories/%E6%95%A3%E6%96%87/"},{"name":"手机","slug":"手机","permalink":"https://www.qystu.cc/categories/%E6%89%8B%E6%9C%BA/"},{"name":"hexo","slug":"hexo","permalink":"https://www.qystu.cc/categories/hexo/"},{"name":"建站","slug":"hexo/建站","permalink":"https://www.qystu.cc/categories/hexo/%E5%BB%BA%E7%AB%99/"},{"name":"qystudio","slug":"qystudio","permalink":"https://www.qystu.cc/categories/qystudio/"},{"name":"web","slug":"web","permalink":"https://www.qystu.cc/categories/web/"},{"name":"哔哔","slug":"哔哔","permalink":"https://www.qystu.cc/categories/%E5%93%94%E5%93%94/"},{"name":"语文","slug":"语文","permalink":"https://www.qystu.cc/categories/%E8%AF%AD%E6%96%87/"},{"name":"software","slug":"software","permalink":"https://www.qystu.cc/categories/software/"},{"name":"tools","slug":"tools","permalink":"https://www.qystu.cc/categories/tools/"},{"name":"系统","slug":"系统","permalink":"https://www.qystu.cc/categories/%E7%B3%BB%E7%BB%9F/"}],"tags":[{"name":"totime","slug":"totime","permalink":"https://www.qystu.cc/tags/totime/"},{"name":"云寄","slug":"云寄","permalink":"https://www.qystu.cc/tags/%E4%BA%91%E5%AF%84/"},{"name":"初七云","slug":"初七云","permalink":"https://www.qystu.cc/tags/%E5%88%9D%E4%B8%83%E4%BA%91/"},{"name":"IDC","slug":"IDC","permalink":"https://www.qystu.cc/tags/IDC/"},{"name":"散文","slug":"散文","permalink":"https://www.qystu.cc/tags/%E6%95%A3%E6%96%87/"},{"name":"抒情","slug":"抒情","permalink":"https://www.qystu.cc/tags/%E6%8A%92%E6%83%85/"},{"name":"手机","slug":"手机","permalink":"https://www.qystu.cc/tags/%E6%89%8B%E6%9C%BA/"},{"name":"vivo","slug":"vivo","permalink":"https://www.qystu.cc/tags/vivo/"},{"name":"天玑","slug":"天玑","permalink":"https://www.qystu.cc/tags/%E5%A4%A9%E7%8E%91/"},{"name":"x90","slug":"x90","permalink":"https://www.qystu.cc/tags/x90/"},{"name":"小米","slug":"小米","permalink":"https://www.qystu.cc/tags/%E5%B0%8F%E7%B1%B3/"},{"name":"高通","slug":"高通","permalink":"https://www.qystu.cc/tags/%E9%AB%98%E9%80%9A/"},{"name":"骁龙 8 Gen2","slug":"骁龙-8-Gen2","permalink":"https://www.qystu.cc/tags/%E9%AA%81%E9%BE%99-8-Gen2/"},{"name":"hexo","slug":"hexo","permalink":"https://www.qystu.cc/tags/hexo/"},{"name":"博客","slug":"博客","permalink":"https://www.qystu.cc/tags/%E5%8D%9A%E5%AE%A2/"},{"name":"qexo","slug":"qexo","permalink":"https://www.qystu.cc/tags/qexo/"},{"name":"图床","slug":"图床","permalink":"https://www.qystu.cc/tags/%E5%9B%BE%E5%BA%8A/"},{"name":"生活","slug":"生活","permalink":"https://www.qystu.cc/tags/%E7%94%9F%E6%B4%BB/"},{"name":"青云","slug":"青云","permalink":"https://www.qystu.cc/tags/%E9%9D%92%E4%BA%91/"},{"name":"2023","slug":"2023","permalink":"https://www.qystu.cc/tags/2023/"},{"name":"netlify","slug":"netlify","permalink":"https://www.qystu.cc/tags/netlify/"},{"name":"反代","slug":"反代","permalink":"https://www.qystu.cc/tags/%E5%8F%8D%E4%BB%A3/"},{"name":"jsdelivr","slug":"jsdelivr","permalink":"https://www.qystu.cc/tags/jsdelivr/"},{"name":"前端","slug":"前端","permalink":"https://www.qystu.cc/tags/%E5%89%8D%E7%AB%AF/"},{"name":"web","slug":"web","permalink":"https://www.qystu.cc/tags/web/"},{"name":"sw","slug":"sw","permalink":"https://www.qystu.cc/tags/sw/"},{"name":"阿里云","slug":"阿里云","permalink":"https://www.qystu.cc/tags/%E9%98%BF%E9%87%8C%E4%BA%91/"},{"name":"frp","slug":"frp","permalink":"https://www.qystu.cc/tags/frp/"},{"name":"内网穿透","slug":"内网穿透","permalink":"https://www.qystu.cc/tags/%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F/"},{"name":"action","slug":"action","permalink":"https://www.qystu.cc/tags/action/"},{"name":"建站","slug":"建站","permalink":"https://www.qystu.cc/tags/%E5%BB%BA%E7%AB%99/"},{"name":"起航","slug":"起航","permalink":"https://www.qystu.cc/tags/%E8%B5%B7%E8%88%AA/"},{"name":"语文","slug":"语文","permalink":"https://www.qystu.cc/tags/%E8%AF%AD%E6%96%87/"},{"name":"cdn","slug":"cdn","permalink":"https://www.qystu.cc/tags/cdn/"},{"name":"加速","slug":"加速","permalink":"https://www.qystu.cc/tags/%E5%8A%A0%E9%80%9F/"},{"name":"后台","slug":"后台","permalink":"https://www.qystu.cc/tags/%E5%90%8E%E5%8F%B0/"},{"name":"gulp","slug":"gulp","permalink":"https://www.qystu.cc/tags/gulp/"},{"name":"跳转","slug":"跳转","permalink":"https://www.qystu.cc/tags/%E8%B7%B3%E8%BD%AC/"},{"name":"tools","slug":"tools","permalink":"https://www.qystu.cc/tags/tools/"},{"name":"PPT","slug":"PPT","permalink":"https://www.qystu.cc/tags/PPT/"},{"name":"去广告","slug":"去广告","permalink":"https://www.qystu.cc/tags/%E5%8E%BB%E5%B9%BF%E5%91%8A/"},{"name":"windows","slug":"windows","permalink":"https://www.qystu.cc/tags/windows/"},{"name":"software","slug":"software","permalink":"https://www.qystu.cc/tags/software/"},{"name":"软件","slug":"软件","permalink":"https://www.qystu.cc/tags/%E8%BD%AF%E4%BB%B6/"},{"name":"卸载","slug":"卸载","permalink":"https://www.qystu.cc/tags/%E5%8D%B8%E8%BD%BD/"},{"name":"IObit","slug":"IObit","permalink":"https://www.qystu.cc/tags/IObit/"},{"name":"系统","slug":"系统","permalink":"https://www.qystu.cc/tags/%E7%B3%BB%E7%BB%9F/"},{"name":"欧拉","slug":"欧拉","permalink":"https://www.qystu.cc/tags/%E6%AC%A7%E6%8B%89/"},{"name":"服务器","slug":"服务器","permalink":"https://www.qystu.cc/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/"},{"name":"华为","slug":"华为","permalink":"https://www.qystu.cc/tags/%E5%8D%8E%E4%B8%BA/"},{"name":"WPS","slug":"WPS","permalink":"https://www.qystu.cc/tags/WPS/"}]}