<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>https://blog.linyunlink.top/</id>
  <title type="text">凌云·LinYun 博客</title>
  <subtitle type="text">拂雪凌云端</subtitle>
  <updated>2026-07-28T00:00:00.000Z</updated>
  <author><name>雪野和花</name></author>
  <link rel="alternate" href="https://blog.linyunlink.top/"/>
  <link rel="self" href="https://blog.linyunlink.top/atom.xml"/>
  <generator uri="https://github.com/CuteLeaf/Firefly">Firefly v6.16.8</generator>
    <entry>
      <id>https://blog.linyunlink.top/posts/260728/</id>
      <title type="text">陨落的一代神卡Giffgaff：使用经历与反思</title>
      <published>2026-07-28T00:00:00.000Z</published>
      <updated>2026-07-28T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/260728/"/>
      <summary type="text">这波Giffgaff杀猪算是吃爽了，依旧带英百年传统空手套白狼</summary>
      <content type="html"><![CDATA[<section><h2>初次接触<a href="#初次接触"><span>#</span></a></h2><p>第一次听说Giffgaff，是在2025年的B站上。那时候这张卡还能直接寄到中国，只是我当时没什么需求，就没去申请然后后面就不邮寄中国了，而且激活需要充值10英镑，首次支付还必须用借记卡或信用卡，而我当时既没有Visa也没有万事达卡，自然也就没再理会。后来虽然又陆续刷到不少人推荐，我也始终没深入去了解。</p><p>直到今年，我使用海外平台的频率越来越高，接码需求随之激增。恰好年初我在招商银行办了一张万事达借记卡，支付问题迎刃而解，我便开始认真考虑搞一张国外手机卡来收短信验证码。一查才发现，Giffgaff用来纯收验证码其实相当划算：每年只需要发两条短信即可保号，成本不过0.6英镑，开卡充的10英镑话费足够用上十几年卖卡的说：一卡传三代。可惜免费邮寄中国的服务已经停了，我只好在电商平台花了42.5元买了一张，当时正值Giffgaff卡涨价初期之前都是免费送，后来竟涨到七八十块一张，足见当时这张卡有多火。</p><p>激活过程很顺利，之后我陆续注册了不少软件，也帮朋友接过码前几天帮人收Claude验证码，结果秒封号，而我连注册好几个都不需要验证码，实在难绷。整体用下来体验尚可，但花了一百三十多块成本弄来一张只能接码的卡其他服务根本用不起，心里还是觉得有点亏。不过当时论坛上关于封号的反馈只是零星个案，大家普遍认为问题不大，Giffgaff的用户群体因此越滚越大，加上支持eSIM申请，它几乎坐稳了英国保号神卡的头把交椅，价格自然水涨船高。</p></section>
<section><h2>神卡陨落<a href="#神卡陨落"><span>#</span></a></h2><p>2026年7月27日，论坛上突然有人发帖说被封号，随后越来越多的人跟帖表示遭遇同样情况——Giffgaff给出的理由是”在英国以外区域长期漫游”，直接永久暂停并封禁账号。从当天早上起，封号报告如雪片般涌来，气氛明显不对劲。不过鉴于上一次封号潮波及面不大，很多人仍抱着侥幸心理，觉得这不过是Giffgaff的小打小闹。但当我看到有人贴出的邮件截图，心里一沉：</p><blockquote><p>We need to make you aware that, following a review of your account usage, we have made the decision to disconnect your service (mobile number ending XXXX). In line with our terms and conditions, our services are intended primarily for use within the UK, with roaming provided for short-term travel only. As your usage pattern suggests extended or permanent use outside the UK, your account no longer meets the eligibility requirements for the service. As a result, your service will be disconnected shortly, and any associated access will cease.</p><p>Please note this is our final position on this matter.</p><p>We appreciate your understanding and thank you for your previous custom.</p></blockquote><p>这一次，Giffgaff明确将封禁归因于”漫游”，措辞斩钉截铁，与以往含糊其辞的态度截然不同。我敏锐地意识到，这恐怕不再是虚张声势，一代神卡可能真的要落幕了。</p></section>
<section><h2>及时止损<a href="#及时止损"><span>#</span></a></h2><p>意识到事态严重，我立刻赶往Giffgaff社区查询退款流程，发现可以通过提交工单申请退回余额。我二话不说，当即申请退还剩余的9.7英镑——提交时间大约是英国当地时间中午12点。几个小时后，我便收到了工作人员的回复，确认将退还这笔款项，随后退款邮件也到了：</p><p></p><figure><img src="https://image.linyunlink.top/260728/1.jpg" alt="退款邮件" /><figcaption>退款邮件</figcaption></figure><p></p><p>邮件说5个工作日内会原路退回，实际上只过了一天，87.71元人民币就稳稳落回了我的账户。那一刻，我庆幸自己赌对了方向。此后，越来越多的用户选择观望，结果账号接二连三被永久封禁，等他们再想去退款时，早已为时过晚。大量用户疯狂涌入申请退款，工单编号一度飙到5000多号，但封号仍在继续，被封禁的账户几乎无法拿回话费，所有人都在与时间赛跑。我虽然成功提现，账户暂时安全，但该来的终究躲不过——当晚，我的邮箱里也躺进了一封同样的封禁通知：</p><p></p><figure><img src="https://image.linyunlink.top/260728/2.jpg" alt="封禁邮件" /><figcaption>封禁邮件</figcaption></figure><p></p><p>回顾整个过程，我不得不庆幸自己没在犹豫上多耽搁一秒，否则那将近90块钱就只能打水漂了。</p></section>
<section><h2>事后反思<a href="#事后反思"><span>#</span></a></h2><p>直到现在，封号浪潮仍未平息，截至目前大约有半数用户受到波及。那些没被封禁的人里，也有不少并未成功申请退款，我无疑是幸运的。但仔细想想，这整件事更像是一场英国企业对中国的云英国用户的”大规模杀猪”——一封邮件便宣告死刑，数百数千人无处申诉，分文难追。每一句写在条款里的字未来的某一天就会杀死用户的体验。</p><p>这可能算不上什么惊天动地的大事，但它确实给许多人上了一课：一旦风向转变，所谓”神卡”也不过是一纸邮件就能抹去的数字资产。任何以优惠和便利为饵的服务，背后都可能藏着随时翻脸的条款。能多留一条后路就多留一条，这才是应对这才是最佳的智慧骗你的，看到不对赶紧跑路别赌啊。</p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.linyunlink.top/posts/260726/</id>
      <title type="text">博客的搬家日记</title>
      <published>2026-07-26T00:00:00.000Z</published>
      <updated>2026-07-26T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/260726/"/>
      <summary type="text">最近几个月花了不少的时间迁移博客，中间还碰壁不少，作文以记之</summary>
      <content type="html"><![CDATA[<p>曾经本博客是使用NotionNext作为本站的博客系统的，优点就是我不需要去一个一个地去处理Markdown文件，我可以在Notion上轻松地编辑文章。总体在使用的2年左右时间里系统都是保持正常运转的，但是进入2026年的时候，Notion的API经常更新，导致文章的获取会发生一些问题；其次就是NotionNext项目的更新频率逐渐下降，现在几乎只发布修复补丁类的小更新，没有什么实质性的大更新；并且NotionNext的可自定义程度实在是太低了，想要在一篇文章内嵌入一段HTML、使用一个插件都是很困难的，整体而言就是扩展性很差。所以，我就有了迁移博客的想法。</p>
<p>首先我最先想到的就是Hexo了，因为这个非常出名，而且安知鱼主题和原来NotionNext的主题很适配，但是我就遇到了第一个难关——配置文件太复杂了。没错，太复杂了，都挤在一个文件里，天呐，这简直就是灾难好吧。我有尝试着去修改配置文件但是大概有放弃了三四次吧，就真的不想碰Hexo了 吓出PTSD了。但是心里想要迁移博客的欲望就是难以压抑住，然后我就发现了Halo这个项目。</p>
<p>第一次接触这个项目是看到友情链接中<a href="https://blog.tsoo.net/" target="_blank">bbb-lsy07</a>同志的博客。我记得当时用测速网站进行网站测速的时候（当时申请友情链接是要看加载速度的），发现他的站快速测试的情况下加载很缓慢 其实这是个伏笔，后面我就知道为什么了，我就建议他使用CDN。刚好最近非常热衷于使用Docker-compose部署项目，然后我就抱着试试水的心态，使用了Halo，然后发现里面的Hao主题好像就是安知鱼主题的变体，那我就被吸引了，里面琳琅满目的插件真的太诱人了，控制面板太方便了，动态博客太爽了！幼小的我哪见过动态博客系统啊，直接上了船，博客数据全部迁移到Halo。我套上EdgeOne之后发现了问题，测速结果怎么黄一块红一块的？这这这，这不对吧？我连上服务器一看CPU占用，100%，我满脑袋问号，50QPS就能把服务打爆了，这我每天不提心吊胆的。算了还是用静态博客吧。</p>
<p>突然发现<a href="https://blog.liushen.fun/" target="_blank">Liushen大佬的博客</a>的博客更换了Astro，于是找了个主题试试咸淡，发现我使用的主题配置文件划分的很清晰，和之前使用NotionNext的配置类似，然后使用起来也很好理解，基本没有遇到什么问题，尝试了一段时间就把数据迁移过来了，不过主题的样式就大变样了。不过嘛，旧的不去新的不来，新主题也不错的哦！现在博客可以使用MDX来编写博文，扩展性强大了不少，还能使用“剧透”遮罩 二次元狂喜。</p>
<p>总之捣鼓了许久的博客迁移也是正式完成了，顺便还能水一篇文章发发，嘻嘻，善哉！</p>]]></content>
    </entry>
    <entry>
      <id>https://blog.linyunlink.top/posts/250818/</id>
      <title type="text">阿里云ESA试水~</title>
      <published>2025-08-18T00:00:00.000Z</published>
      <updated>2025-08-18T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/250818/"/>
      <summary type="text">EdgeOne挺火的，阿里云ESA也下场免费送了，身为白嫖怪必须试试</summary>
      <content type="html"><![CDATA[<p>前段时间EdgeOne的免费CDN送得沸沸扬扬，结果没实名海外站根本没办法用国内节点，优选还很麻烦，最近阿里云中国站和海外站都开始送免费的ESA，对标的就是EdgeOne。</p>
<p>免费领取链接：<a href="http://s.tb.cn/e6.0DENEf" target="_blank">http://s.tb.cn/e6.0DENEf</a></p>
<p>这个活动可以免费领取一个月的基础版，国内免费50GB流量，可以直接使用国内节点或者全球节点（需要备案），海外站流量无限，但是需要参加活动解锁国内节点，基础版的超额流量费中国站是￥0.198/GB的，还可以接受。</p>
<p>下图是我领取的免费套餐：</p>
<p></p><figure><img src="https://image.linyunlink.top/250818/1.jpg" alt="esa2.png" /><figcaption>esa2.png</figcaption></figure><p></p>
<p>然后我就开始加速我的主页，因为主页跑在服务器上单节点压力比较大，海外延迟也极高，简单添加了下源站IP，配置了CNAME之后，去ESA后台申请免费的SSL证书，加速就完成啦~测速一下，速度非常漂亮，全绿：</p>
<p></p><figure><img src="https://image.linyunlink.top/250818/2.jpg" alt="esa4.png" /><figcaption>esa4.png</figcaption></figure><p></p>
<p>但是呢，防人之心不可无，谁也不想一觉起来，收到阿里云发来的巨额账单吧，相信这种事发生在自己身上肯定笑不出来，所以我们可以设置一个用量封顶，一切就安定了，安安心心睡觉吧！</p>
<p></p><figure><img src="https://image.linyunlink.top/250818/3.jpg" alt="esa5.png" /><figcaption>esa5.png</figcaption></figure><p></p>
<p>当然，如果需要更多的免费套餐，可以参加官方的活动一直领取，一周一个社交媒体账户可以领取9.9无门槛代金券抵扣ESA有关的全部费用awa，别看了，快去领吧！</p>]]></content>
    </entry>
    <entry>
      <id>https://blog.linyunlink.top/posts/250622/</id>
      <title type="text">Azure学生订阅1：白嫖免费的MySQL和PostgreSQL</title>
      <published>2025-06-22T00:00:00.000Z</published>
      <updated>2025-06-22T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/250622/"/>
      <summary type="text">领完了Azure的虚拟机，账号不会放着吃灰吧？没事，再薅一点！</summary>
      <content type="html"><![CDATA[<p>最近不知道怎么的，GitHub的学生包申请好像变简单了，一次就过了，那肯定得狠狠地利用一下，这诱惑最大的就是Azure的这100$赠金和免费服务了。服务器都是上千兆的带宽，免费的虚拟机、数据库、115GiB/月的出站流量，真是赛博善人（善人+1）。</p>
<p>然而网上似乎大部分都是虚拟机的开通教程，然后数据库就很少，而且Azure的计费也是出了名的阴，你也算不准什么时候扣费，这篇教程也是1.8$买的教训，分享给大家，特别是Azure即用即付账户的使用者，避免信用卡扣费（这可不像学生订阅扣储值的）。</p>
<section><h1>配置介绍<a href="#配置介绍"><span>#</span></a></h1>

<table><thead><tr><th>项目</th><th>MySQL</th><th>PostgreSQL</th></tr></thead><tbody><tr><td>免费使用时长</td><td>750小时/月</td><td>750小时/月</td></tr><tr><td>免费存储</td><td>32GB</td><td>32GB</td></tr><tr><td>免费备份存储</td><td>32GB</td><td>32GB</td></tr><tr><td>性能配置</td><td>可突发B1ms,1 vCUP,2G RAM</td><td>可突发B1ms,1 vCUP,2G RAM</td></tr><tr><td>数据库IOPS</td><td>396 IOPS</td><td>120 IOPS</td></tr><tr><td>支持的数据库版本</td><td>MySQL 5.7(已停用)/ 8.0/ 8.4(公共预览版) /9.3(公共预览版)</td><td>Postgre 11/ 12/ 13/ 14/ 15/ 16/ 17(预览)</td></tr></tbody></table></section>
<section><h1>创建教程&amp;避坑指南<a href="#创建教程避坑指南"><span>#</span></a></h1><section><h2>MySQL的创建<a href="#mysql的创建"><span>#</span></a></h2><p>1.进入这个网址（<a href="https://portal.azure.com/#create/Microsoft.MySQLServer" target="_blank">https://portal.azure.com/#create/Microsoft.MySQLServer</a>），点击<code>高级创建</code>（注意）。</p><p>2.填写相关配置，如<code>资源组</code>、<code>服务器名称</code>、<code>身份认证信息</code>等，不要<code>启用高可用性配置</code>。</p><p>3.随后配置以下内容，注意这里有很多坑，首先，区域的选择，我建议选韩国中部，这个是可以进行IOPS预配的区域，实测East US、East US 2、East Asia、Japan East都不能创建成功，错误原因是该区域不支持预配。如果尝试了其他区域可以的话可用文末留言告诉我。然后点击<code>配置服务器</code>。</p><p></p><figure><img src="https://image.linyunlink.top/250622/1.jpg" alt="1.jpg" /><figcaption>1.jpg</figcaption></figure><p></p><p>然后进入到下面这个页面，我们主要修改存储大小为32GB，预配IOPS为396，取消存储自动增长，然后保存即可。参考下图填写配置即可：</p><p></p><figure><img src="https://image.linyunlink.top/250622/2.jpg" alt="2.jpg" /><figcaption>2.jpg</figcaption></figure><p></p><p>4.最好一路继续就创建成功啦！</p></section><section><h2>PostgreSQL的创建<a href="#postgresql的创建"><span>#</span></a></h2><p>其实这个和MySQL的创建大差不差，我列出几个要点即可，这里的坑比MySQL少得多，创建链接是<a href="https://portal.azure.com/#create/Microsoft.PostgreSQLServer" target="_blank">https://portal.azure.com/#create/Microsoft.PostgreSQLServer</a>。</p><p>进去之后大体流程同上，配置完其他的内容之后，还是点击<code>配置服务器</code>，里面修改成下面图片的样子就好啦！</p><p></p><figure><img src="https://image.linyunlink.top/250622/3.jpg" alt="3.jpg" /><figcaption>3.jpg</figcaption></figure><p></p><p>然保存之后也是一路继续就配置好啦！</p></section><section><h2>绑定域名相关<a href="#绑定域名相关"><span>#</span></a></h2><p>这个我们只需要进入相对应的数据库的资源里面，在概述里面有一个<code>服务器名称</code>（MySQL）或者<code>终结点</code>（PostgreSQL），一般格式就是<code>&lt;服务器名称&gt;.&lt;mysql/postgre&gt;.database.azure.com</code>，只需要拿着这个去域名里面做一个CNAME记录就好了，但是不要套CDN（就是Cloudflare的小橙云的按钮）。</p></section></section>
<section><h1>最后<a href="#最后"><span>#</span></a></h1><p>今天的白嫖列出也到站休息，如果各位在实际操作或者使用的时候遇到了什么问题，也可用邮箱或者下方评论与我联系，我会竭尽所能为你提供帮助。这篇文章写于2025年6月22日，Azure可能会更新创建的流程或者页面，如果有什么不懂的欢迎联系我哦~</p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.linyunlink.top/posts/241206/</id>
      <title type="text">终于兑换上必应的礼品卡辣！</title>
      <published>2024-12-06T00:00:00.000Z</published>
      <updated>2024-12-06T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/241206/"/>
      <summary type="text">攒了好久的Bing积分终于兑换了一份礼品卡咯，（开心耶）</summary>
      <content type="html"><![CDATA[<p>本人于今日（2024年12月6日）使用必应积分兑换盒马100元礼品卡，望周知。</p>
<p></p><figure><img src="https://image.linyunlink.top/241206/01.jpg" alt="01.jpg" /><figcaption>01.jpg</figcaption></figure><p></p>
<p></p><figure><img src="https://image.linyunlink.top/241206/02.jpg" alt="02.jpg" /><figcaption>02.jpg</figcaption></figure><p></p>
<p>好耶（窃喜），没想到没有被微软中途制裁而中道崩殂，也没卡在兑换上，整体上觉得微软必应真的很不错。</p>]]></content>
    </entry>
    <entry>
      <id>https://blog.linyunlink.top/posts/241130/</id>
      <title type="text">剧本：《孔乙己》</title>
      <published>2024-11-30T00:00:00.000Z</published>
      <updated>2024-11-30T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/241130/"/>
      <summary type="text">分享一个剧本《孔乙己》，仅此而已</summary>
      <content type="html"><![CDATA[<section><h2><strong>演员需求：</strong><a href="#演员需求"><span>#</span></a></h2><ol>
<li>孔乙己</li>
<li>【少年】伙计（12岁）</li>
<li>【中年】伙计（32岁）</li>
<li>丁举人</li>
<li>咸亨酒店掌柜</li>
<li>（众）短衫【大于等于5人】</li>
<li>（众）小孩【大于等于2人】</li>
<li>（众）小厮【2人】</li>
</ol></section>
<section><h2><strong>演绎流程：</strong><a href="#演绎流程"><span>#</span></a></h2><ol>
<li>第一幕：伙计中年忆往事</li>
<li>第二幕：乙己饮酒咸亨庄</li>
<li>第三幕：丁家窃书遭毒打</li>
<li>第四幕：潦倒复来饮黄酒</li>
<li>第五幕：不见乙己全剧终</li>
</ol></section>
<section><h2>剧本正文：<a href="#剧本正文"><span>#</span></a></h2><section><h3><strong>第一幕：伙计中年忆往事</strong><a href="#第一幕伙计中年忆往事"><span>#</span></a></h3><p><strong>出场演员：中年伙计、（众）短衫、少年伙计、咸丰酒店掌柜、孔乙己</strong></p><p><strong>场景：咸丰酒店</strong></p><p>中：在鲁镇，在一大柜台上，四文就可以买一碗酒，倘若多出一文还可以再买一碟盐煮笋，或是一碟茴香豆，如果可以出到十几文钱就可以买荤菜了。可是短衣帮的人大抵是没有这个钱的。</p><p>短1：伙计！来碗酒！（其余短衫均作站立喝酒状）</p><p>少：好嘞。（短1准备离开）欸！你还没付四文钱呢！</p><p>短1：钱啊，回头再给，先赊着！（喝酒并离开）</p><p>中：但是孔乙己是个特例，他是唯一一个穿长衫，还站着喝酒的人，而且他还有赊必还。</p><p>孔：（上台，做斯文状）子曰：唯酒无量。来一碗酒，（伙计递酒给孔、孔付钱）这是上次欠的，这次一并还了。（众人大笑、随后全部下场）</p><p>中：自十二岁起在酒店干活，已经二十多年了，主顾、掌柜都没啥好声气，也只有孔乙己来的时候，可以笑一笑，所以至今还记得他，也还记得他的几件事情……（下场）</p></section><section><h3><strong>第二幕：乙己饮酒咸亨庄</strong><a href="#第二幕乙己饮酒咸亨庄"><span>#</span></a></h3><p><strong>出场演员：孔乙己、（众）短衫、少年伙计、（众）小孩、咸丰酒店掌柜</strong></p><p><strong>场景：咸丰酒店</strong></p><p>短2：（喊）孔乙己又来喝酒啦？你脸上又添新伤疤了！</p><p>孔：（忽视短2）温两碗酒，来一碟茴香豆。（用手排出7个钱）</p><p>短1：孔乙己，你一定又去偷东西了！</p><p>孔：（瞪大眼睛）你！你怎么凭空污人清白呢！（摆手）</p><p>短1：什么清白啊？前天你偷了何家的书，我亲眼看见你被吊着打呢！</p><p>孔：（争辩）窃书不算偷！叫做窃书！……读书人的事那能算偷吗？君子固穷，小人穷斯滥矣。（众指着孔大笑）</p><p>（众人接着喝酒，伙计从孔乙己身边走过）</p><p>孔：等等，你读过书么？（伙计点头）好，那我考考你，我问你，“茴”字怎么写啊？（等一会）你不会啊？那我教你。</p><p>少：哼！还要你来教我？是不是草字头下面一个回啊？</p><p>孔：对了！你可知道“回”有四种写法？我写给你看。（用手指蘸酒、伙计走开、孔作惋惜状并叹气）</p><p>（孩子此时跑来，看着茴香豆）</p><p>孔：哦？你们也想吃豆子？来，一人一颗，拿去吃吧。</p><p>（孔弯下腰，给众小孩每一个人发一颗豆子，众小孩仍伸手看着豆子）</p><p>孔：还想要啊？（用手罩住碟子）不多了，我已经不多了。（看豆子、摇头）不多不多！多乎哉？不多也，不多也！（起身离开、所有人下场）</p></section><section><h3><strong>第三幕：丁家窃书遭毒打</strong><a href="#第三幕丁家窃书遭毒打"><span>#</span></a></h3><p><strong>出场演员：孔乙己、丁举人、（众）小厮、（众）短衫</strong></p><p><strong>场景：丁人家</strong></p><p>丁：（指着孔乙己）昏了头了你！还敢偷我家的书？我告诉你，这书我不看，也轮不着你这种下人看！你俩先让他在服辩上签字，然后给我往死里打！</p><p>众厮：是，老爷！（丁举人点头离开）</p><p>厮1：（拿着服辩）你给我快点签字！（孔签字）哼，你偷了举人大人的书，今天你是死定了！</p><p>厮2：别废话了，打断这个偷书贼的狗腿！（开始打孔乙己）</p><p>（与此同时）</p><p>短3：听说丁家抓住一个贼，我们快去看看！</p><p>短4：好！我们去看看！</p><p>众短：走，走，去看看。</p><p>（走到对面观看孔乙己被打）</p><p>短2：这不是孔乙己吗？</p><p>短5：没错就是孔乙己！</p><p>短1：他还是去偷别人书，但是这次他完蛋了，丁举人肯定会打死他的。我们还是走吧。（众人点头）</p><p>（众短衫走开，下场后其他人下场）</p></section><section><h3><strong>第四幕：潦倒复来饮黄酒</strong><a href="#第四幕潦倒复来饮黄酒"><span>#</span></a></h3><p><strong>出场演员：孔乙己、咸丰酒店掌柜、（众）短衫、少年伙计</strong></p><p><strong>场景：咸丰酒店</strong></p><p>掌：好久没见到孔乙己了，上次还欠了十九个钱没还呢？</p><p>短5：你还不知道啊？孔乙己偷了丁举人家的书，我们几个亲眼看见的，写了服辩然后就是一顿打，要知道丁举人可是远近有名的恶霸，孔乙己十有八九是被打死了！</p><p>众短：（七嘴八舌）是啊。</p><p>（这时孔用手撑着走路到桌子下面）</p><p>孔：温一碗酒。（声音略大）温一碗酒。</p><p>掌：是孔乙己吗？欠的十九个钱呢？</p><p>孔：这……下次还吧……这次是现钱……酒要好。</p><p>掌：（笑）孔乙己，你又偷别人东西啦？</p><p>孔：不要取笑！</p><p>掌：取笑？那你的腿是怎么断的？</p><p>孔：（眼神闪避）跌断，跌……断的。</p><p>（众人大笑，孔喝完酒离开，众人紧接着下场）</p><p>掌：快过年了，孔乙己还欠了十九个钱呢！（走到另一边）都端午了，孔乙己还欠了十九个钱啊！（随后下场）</p></section><section><h3><strong>第五幕：不见乙己全剧终</strong><a href="#第五幕不见乙己全剧终"><span>#</span></a></h3><p><strong>出场演员：全员</strong></p><p><strong>场景：无</strong></p><p>中：记得从那以后，我再也没见到孔乙己，到了端午，掌柜的也没再过问那欠下的十九文钱……像孔乙己这样腿断了还来喝酒的人，这么久都不来喝酒了，那大约孔乙己的确死了吧？</p><p>（所有人上台）</p><p>齐：（朗诵）孔乙己，你是这样一个文人！清高的你，不愿承认犯下的过错；懒惰的你，靠偷窃来维持生活。你从来不被人关爱——受尽冷嘲热讽，你有时关爱别人——送出你的豆子！一切都怪那个社会啊！万恶的科举毒害了你，封建的礼教禁锢了你！这虽然葬送了你的一生，却让我们看见了你的传奇！</p></section></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.linyunlink.top/posts/240811/</id>
      <title type="text">博客被恶意盗用，彰显出网络版权维权之难</title>
      <published>2024-08-11T00:00:00.000Z</published>
      <updated>2024-08-11T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/240811/"/>
      <summary type="text">我就一小站，有啥可盗用的？（大雾</summary>
      <content type="html"><![CDATA[<section><h1>写在前面<a href="#写在前面"><span>#</span></a></h1><p>私自镜像我们的网站是违反本站用户协议和侵犯知识产权的行为，我们鼓励转载文章（不包括本站的样式），但是请注明出处。</p><p>相关条款：</p><blockquote><p>本站《用户协议》（第一版第三次修订案）第三款第2条第(7)点：</p><p>CC BY-NC-SA 4.0协议</p></blockquote></section>
<section><h1>起因<a href="#起因"><span>#</span></a></h1><p>2024年8月11日，我在网上冲浪时，使用Google时，搜索了“LinYunLink”，突然发现了一个别样的站点——hzydyswkj.com。至此本文的故事就出现了……</p><p>我点进了该网站，发现这个网站盗用了我们的站点，直接复制了所有内容，样式都没有改变，单纯将简体中文翻译成了台湾繁体中文，于是我对比了HTML：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>&lt;!-- saved from url=(0027)https://www.linyunlink.top/ --&gt;</span></div></div><div><div><div>2</div></div><div><span>&lt;</span><span>html</span><span>&gt;</span></div></div><div><div><div>3</div></div><div>
</div></div><div><div><div>4</div></div><div><span>&lt;</span><span>head</span><span>&gt;</span></div></div><div><div><div>5</div></div><div><span><span>    </span></span><span>&lt;</span><span>meta</span><span> </span><span>http-equiv</span><span>=</span><span>"Content-Type"</span><span> </span><span>content</span><span>=</span><span>"text/html; charset=UTF-8"</span><span>&gt;</span></div></div><div><div><div>6</div></div><div><span><span>    </span></span><span>&lt;</span><span>meta</span><span> </span><span>name</span><span>=</span><span>"color-scheme"</span><span> </span><span>content</span><span>=</span><span>"light dark"</span><span>&gt;</span></div></div><div><div><div>7</div></div><div><span>&lt;/</span><span>head</span><span>&gt;</span></div></div><div><div><div>8</div></div><div>
</div></div><div><div><div>9</div></div><div><span>&lt;</span><span>body</span><span>&gt;</span></div></div><div><div><div>10</div></div><div><span>    </span><span>&lt;!-- 下列HTML元素完全相同省略 --&gt;</span></div></div><div><div><div>11</div></div><div><span>&lt;/</span><span>body</span><span>&gt;</span></div></div></code></pre><div><div></div><div></div></div></figure></div><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>&lt;!-- saved from url=(0022)https://hzydyswkj.com/ --&gt;</span></div></div><div><div><div>2</div></div><div><span>&lt;</span><span>html</span><span>&gt;</span></div></div><div><div><div>3</div></div><div>
</div></div><div><div><div>4</div></div><div><span>&lt;</span><span>head</span><span>&gt;</span></div></div><div><div><div>5</div></div><div><span><span>    </span></span><span>&lt;</span><span>meta</span><span> </span><span>http-equiv</span><span>=</span><span>"Content-Type"</span><span> </span><span>content</span><span>=</span><span>"text/html; charset=UTF-8"</span><span>&gt;</span></div></div><div><div><div>6</div></div><div><span><span>    </span></span><span>&lt;</span><span>meta</span><span> </span><span>name</span><span>=</span><span>"color-scheme"</span><span> </span><span>content</span><span>=</span><span>"light dark"</span><span>&gt;</span></div></div><div><div><div>7</div></div><div><span>&lt;/</span><span>head</span><span>&gt;</span></div></div><div><div><div>8</div></div><div>
</div></div><div><div><div>9</div></div><div><span>&lt;</span><span>body</span><span>&gt;</span></div></div><div><div><div>10</div></div><div><span>    </span><span>&lt;!-- 下列HTML元素完全相同省略 --&gt;</span></div></div><div><div><div>11</div></div><div><span>&lt;/</span><span>body</span><span>&gt;</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>很好，中间部分几乎完全相同。我们查询了对方网站的Whois，同时在没用的小废鼠的帮助下，发现对方信息非常隐蔽，使用了PHP，植入了Google广告，疑似每个月更换一个博客。其DNS服务器使用的是Cloudflare。于是我们提起了投诉，但是并没有下文了。</p></section>
<section><h1>后续<a href="#后续"><span>#</span></a></h1><p>截至目前2024年8月11日，该域名已经无法访问，显示重定向过多，域名也要在10月过期，如果有续费的话，说明还有人操纵，但是现在什么也不知道……</p><p>总之，似乎是胜利了，但实际上根本没有维权——根本没法维权，对面是谁都不知道。方便的互联网有时也不方便……</p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.linyunlink.top/posts/240810/</id>
      <title type="text">利用红磷制取白磷</title>
      <published>2024-08-10T00:00:00.000Z</published>
      <updated>2024-08-10T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/240810/"/>
      <summary type="text">本合集包括理论、制取、性质，请注意安全！</summary>
      <content type="html"><![CDATA[<section><h1>1.理论<a href="#1理论"><span>#</span></a></h1><p>我们进行一个实验操作之前，了解反应原理是很重要的，这有助于我们选取适当的仪器、药品，调整我们的实验操作。</p><section><h2>反应原理<a href="#反应原理"><span>#</span></a></h2><span><span><span>4P=ΔP4↑4P\xlongequal[\quad\quad]{\Delta}P_4\uparrow</span><span><span><span></span><span>4</span><span>P</span><span></span><span><span><span><span><span><span></span><span><span><span>Δ</span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span></span><span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span><span></span><span><span>P</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>↑</span></span></span></span></span></section><section><h2>反应物<a href="#反应物"><span>#</span></a></h2><section><h3>红磷<a href="#红磷"><span>#</span></a></h3><p>红磷，化学式为<span><span>PP</span><span><span><span></span><span>P</span></span></span></span>。紫红色粉末。燃烧会产生五氧化二磷（<span><span>P2O5P_2O_5</span><span><span><span></span><span><span>P</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span><span>O</span><span><span><span><span><span><span></span><span><span>5</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span>），着火点约为260℃。无毒，不溶于二硫化碳（<span><span>CS2CS_2</span><span><span><span></span><span>C</span><span><span>S</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span>）。熔解时不会变成蒸汽而直接转化为白磷。</p></section></section><section><h2>生成物<a href="#生成物"><span>#</span></a></h2><section><h3>白磷<a href="#白磷"><span>#</span></a></h3><p>白磷，化学式为<span><span>P4P_4</span><span><span><span></span><span><span>P</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span>。白色或浅黄色半透明性固体。质软，冷时性脆，见光色变深。暴露空气中在暗处产生绿色磷光和白烟。在湿空气中约40℃着火。燃烧会产生五氧化二磷（<span><span>P2O5P_2O_5</span><span><span><span></span><span><span>P</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span><span>O</span><span><span><span><span><span><span></span><span><span>5</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span>）。白磷有剧毒，磷氧化合物也有毒性。易溶于二硫化碳（<span><span>CS2CS_2</span><span><span><span></span><span>C</span><span><span>S</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span>）。</p></section></section><section><h2>可能发生的其他反应<a href="#可能发生的其他反应"><span>#</span></a></h2><span><span><span>4P+5O2=点燃2P2O54P+5O_2\xlongequal[\quad\quad]{点燃}2P_2O_5</span><span><span><span></span><span>4</span><span>P</span><span></span><span>+</span><span></span></span><span><span></span><span>5</span><span><span>O</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span><span><span><span><span><span></span><span><span><span>点燃</span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span></span><span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span><span></span><span>2</span><span><span>P</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span><span>O</span><span><span><span><span><span><span></span><span><span>5</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span></span><span><span><span>P4+5O2=点燃2P2O5P_4+5O_2\xlongequal[\quad\quad]{点燃}2P_2O_5</span><span><span><span></span><span><span>P</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span>5</span><span><span>O</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span><span><span><span><span><span></span><span><span><span>点燃</span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span></span><span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span><span></span><span>2</span><span><span>P</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span><span>O</span><span><span><span><span><span><span></span><span><span>5</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span></span><span><span><span>P4+3O2=点燃2P2O3P_4+3O_2\xlongequal[\quad\quad]{点燃}2P_2O_3</span><span><span><span></span><span><span>P</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span>3</span><span><span>O</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span><span><span><span><span><span></span><span><span><span>点燃</span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span></span><span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span><span></span><span>2</span><span><span>P</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span><span>O</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span></span><span><span><span>P4+2O2=P4O+O3P_4+2O_2\xlongequal[\quad\quad]{}P_4O+O_3</span><span><span><span></span><span><span>P</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span>2</span><span><span>O</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span><span><span><span><span><span></span><span><span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span></span><span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span><span></span><span><span>P</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>O</span><span></span><span>+</span><span></span></span><span><span></span><span><span>O</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span></span></section></section>
<section><h1>2.制取<a href="#2制取"><span>#</span></a></h1><section><h2>注意<a href="#注意"><span>#</span></a></h2><p>请遵守实验室安全守则，在通风柜完成下列实验。</p><p>请尽可能对自己进行保护，如佩戴防毒面具等。</p></section><section><h2>实验所需药品<a href="#实验所需药品"><span>#</span></a></h2><ol>
<li>红磷</li>
<li>热的蒸馏水</li>
</ol></section><section><h2>实验所需仪器<a href="#实验所需仪器"><span>#</span></a></h2><ol>
<li>酒精灯</li>
<li>试管（<span><span>Φ=1cm,l=10cm\Phi=1cm,l=10cm</span><span><span><span></span><span>Φ</span><span></span><span>=</span><span></span></span><span><span></span><span>1</span><span>c</span><span>m</span><span>,</span><span></span><span>l</span><span></span><span>=</span><span></span></span><span><span></span><span>10</span><span>c</span><span>m</span></span></span></span>）</li>
<li>试管夹/铁架台（带铁夹）</li>
<li>玻璃杯(<span><span>V=100mLV=100mL</span><span><span><span></span><span>V</span><span></span><span>=</span><span></span></span><span><span></span><span>100</span><span>m</span><span>L</span></span></span></span>)</li>
<li>药匙+纸槽</li>
<li>水槽</li>
<li>镊子</li>
</ol></section><section><h2>实验步骤<a href="#实验步骤"><span>#</span></a></h2><ol>
<li>向试管中加入约1g的红磷；</li>
<li>用塞子密封[重要]，有条件的可以填充保护气，如丁烷、二氧化碳、稀有气体等；</li>
<li>用试管夹或者铁架台夹住试管，试管略向下倾斜；</li>
<li>用酒精灯预热，后对着试管底部集中加热，塞子可能弹开；</li>
<li>待红磷全部反应，等待试管冷却到室温，取下试管；</li>
<li>带着塞子倒扣入水中，用热水使试管微热，方便白磷融化流出；</li>
<li>用镊子夹出小块白磷，投入装有热水的烧杯内；</li>
<li>白磷融化变成一大块时，冷却烧杯内的水，取出白磷；</li>
<li>将白磷放在水中贮存。</li>
</ol></section><section><h2>可用的提纯方案<a href="#可用的提纯方案"><span>#</span></a></h2><p>1.重结晶法</p><p>使用二硫化碳溶解白磷，过滤后等待二硫化碳完全挥发，可取得纯洁的白磷。</p><p>2.蒸馏法（较危险）</p><p>进行减压蒸馏粗白磷，馏出的为较为纯净的白磷。注意：需要反复检查气密性，否则可能产生包括但不限于爆炸、中毒、火灾等实验事故。</p></section></section>
<section><h1>3.性质<a href="#3性质"><span>#</span></a></h1><section><h2>与热的浓碱溶液的反应（鬼火）<a href="#与热的浓碱溶液的反应鬼火"><span>#</span></a></h2><p>白磷可以和氢氧化钠和氢氧化钾的热的浓溶液反应，产生磷化氢气体，以氢氧化钠为例，反应方程式如下：</p><span><span><span>P4+3KOH(浓)+3H2O=ΔPH3↑+3KH2PO2P_4 + 3KOH(浓) + 3H_2O\xlongequal[\quad\quad]{\Delta}PH_3\uparrow + 3KH_2PO_2</span><span><span><span></span><span><span>P</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span>3</span><span>K</span><span>O</span><span>H</span><span>(</span><span>浓</span><span>)</span><span></span><span>+</span><span></span></span><span><span></span><span>3</span><span><span>H</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>O</span><span></span><span><span><span><span><span><span></span><span><span><span>Δ</span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span></span><span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span><span></span><span>P</span><span><span>H</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>↑</span><span></span></span><span><span></span><span>+</span><span>3</span><span>K</span><span><span>H</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>P</span><span><span>O</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span></span><p>磷化氢气体燃烧会产生绿色火焰，这就是所谓的“鬼火”。</p></section><section><h2>白磷的无害化处理<a href="#白磷的无害化处理"><span>#</span></a></h2><p>白磷以及其大部分氧化物都有很大的毒性，我们通常使用硫酸铜溶液对其进行无害化处理，这是一个氧化还原反应，白磷充当还原剂，反应方程式如下：</p><span><span><span>P4+10CuSO4+16H2O=10Cu+4H3PO4+10H2SO4P_4+10CuSO_4+16H_2O\xlongequal[\quad\quad]{}10Cu+4H_3PO_4+10H_2SO_4</span><span><span><span></span><span><span>P</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span>10</span><span>C</span><span>u</span><span>S</span><span><span>O</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span>16</span><span><span>H</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>O</span><span></span><span><span><span><span><span><span></span><span><span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span></span><span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span><span></span><span>10</span><span>C</span><span>u</span><span></span><span>+</span><span></span></span><span><span></span><span>4</span><span><span>H</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>P</span><span><span>O</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span>10</span><span><span>H</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>S</span><span><span>O</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span></span><span><span><span>11P4+60CuSO4+96H2O=20Cu3P↓+24H3PO4+60H2SO411P_4+60CuSO_4+96H_2O\xlongequal[\quad\quad]{}20Cu_3P↓+24H_3PO_4+60H_2SO_4</span><span><span><span></span><span>11</span><span><span>P</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span>60</span><span>C</span><span>u</span><span>S</span><span><span>O</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span>96</span><span><span>H</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>O</span><span></span><span><span><span><span><span><span></span><span><span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span></span><span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span><span></span><span>20</span><span>C</span><span><span>u</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>P</span><span></span><span>↓</span><span></span></span><span><span></span><span>+</span><span>24</span><span><span>H</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>P</span><span><span>O</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span>60</span><span><span>H</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>S</span><span><span>O</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span></span><p>白磷全部转换为无毒的磷酸和磷化铜。但是相信你看到第二个方程式的配平你会感到惊讶，但是我可以保证，配平是正确的！这很令人抓狂。</p></section></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.linyunlink.top/posts/240729/</id>
      <title type="text">免费使用Lark搭建一个属于你的域名邮箱</title>
      <published>2024-07-29T00:00:00.000Z</published>
      <updated>2024-07-29T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/240729/"/>
      <summary type="text">使用Lark免费搭建一个支持SMTP的域名邮箱，自己的邮箱自己管控！</summary>
      <content type="html"><![CDATA[<section><h2>为什么选择Lark？<a href="#为什么选择lark"><span>#</span></a></h2><p>Lark，即飞书国际版，是字节跳动旗下的企业管理工具，免费版支持50个用户，可以绑定域名邮箱，支持SMTP，每个邮箱每天可发450封。相较于国内飞书，Lark不需要手机号进行注册，而且飞书未经认证一条只可以发送100封，Lark的限制更少！</p></section>
<section><h2>准备材料<a href="#准备材料"><span>#</span></a></h2><ol>
<li>一个正常的人</li>
<li>一个Lark账户</li>
</ol><p>没的话去<a href="https://www.larksuite.com/" target="_blank">https://www.larksuite.com/</a>注册一个，注册需要邮箱和全海外IP的环境，中国国内无法直接注册！</p></section>
<section><h2>搭建教程<a href="#搭建教程"><span>#</span></a></h2><p>1.首先我们去<a href="https://www.larksuite.com/zh_cn/download" target="_blank">Lark | 立即下载Lark — 国际版 (larksuite.com)</a>下载一下Windows客户端，不要使用其他系统操作，Windows更加方便！找到<code>企业管理-产品设置-邮箱</code>；</p><p><img src="https://image.linyunlink.top/240729/01.jpg" alt="" /></p><p>2.添加一个域名，虽然看起来只可以使用顶级域，但是实际上是可以使用二级域名的，按照指引添加DNS记录，添加用户，完成配置，这里不给出图片了；</p><p><img src="https://image.linyunlink.top/240729/02.jpg" alt="" /></p><p>3.为了获取支持SMTP的邮箱，我们需要点击<code>地址管理-公共邮箱-创建公共邮箱</code>进行创建；</p><p><img src="https://image.linyunlink.top/240729/03.jpg" alt="" /></p><p>4.然后填写<code>名称</code>和地址，然后开启<code>IMAP/SMTP服务</code>，然后点击<code>创建</code>；</p><p><img src="https://image.linyunlink.top/240729/04.jpg" alt="" /></p><p>5.最后我们可以查看一下我们创建好的公共邮箱，这里有SMTP的地址以及密码，密码是可以修改的；</p><p><img src="https://image.linyunlink.top/240729/05.jpg" alt="" /></p><p><img src="https://image.linyunlink.top/240729/06.jpg" alt="" /></p><ol>
<li>然后我们就可以拿着邮箱尽情玩耍辣！</li>
</ol></section>
<section><h2>免费版使用限制<a href="#免费版使用限制"><span>#</span></a></h2><p>1.每天每个邮箱只能发送450封邮件</p><p>（10个邮箱就是4500封）</p><p>2.每天每个邮箱只能对外发送给200个不同的邮箱</p><p>（10个就是2000个不同的外部邮箱）</p><p>3.一共100GB的邮箱存储空间</p><p>其他应该就没有什么使用限制了，快去试试吧！</p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.linyunlink.top/posts/240728/</id>
      <title type="text">凌云·LinYun博客运营1周年！</title>
      <published>2024-07-28T00:00:00.000Z</published>
      <updated>2024-07-28T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/240728/"/>
      <summary type="text">随着linyun.link的到期，凌云·LinYun博客也迎来了1周年！</summary>
      <content type="html"><![CDATA[<hr />
<section><h1>回顾<a href="#回顾"><span>#</span></a></h1><p>在过去的一年里我们经历了2个阶段。第一个阶段我们使用Gridea进行写作，静态的博客托管在Github上，使用GitTalk作为评论系统，毕竟是GitHub Page外加GitTalk，访问效果不是很尽如人意。于是我们使用NotionNext来重构了我们的博客，不过大部分文章就没有再迁移新的博客了~~（懒）~~，前后托管在Netlify和Vercel上，访问速度上来了，评论系统也换成了Twikoo。原来的linyun.link域名也停用了，使用linyunlink.top作为新的域名，既有老域名的影子，也有顶尖的意思。</p><hr /><hr /></section>
<section><h1>现况<a href="#现况"><span>#</span></a></h1><p>现在博客访问大概加载需要10s左右，图片全部自己托管了，国外访问速度不错，国内不行，Twikoo评论的回复邮箱也从E5订阅的Outlook 365替换成了Lark的公共邮箱。总体而言访问速度也还行。博客截至目前一共有4个友情链接。</p><hr /><hr /></section>
<section><h1>展望<a href="#展望"><span>#</span></a></h1><ul>
<li>  继续优化性能，提升国内访问速度</li>
<li>  加入“十年之约”项目</li>
<li>  建立一些其他公共服务</li>
<li>  申请更多的友情链接</li>
<li>  …………</li>
</ul><hr /></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.linyunlink.top/posts/240707/</id>
      <title type="text">使用Python调用搭建的翻译API</title>
      <published>2024-07-07T00:00:00.000Z</published>
      <updated>2024-07-07T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/240707/"/>
      <summary type="text">我们搭建好了API，下一步就是调用它……</summary>
      <content type="html"><![CDATA[<p>API的搭建参考这篇文章</p>
<p><a href="%E4%BD%BF%E7%94%A8Cloudflare%20Workers%20AI%E6%90%AD%E5%BB%BA%E5%B1%9E%E4%BA%8E%E4%BD%A0%E7%9A%84%E7%BF%BB%E8%AF%91API%20897d464d50a440a2b661ba4fe8ebd036.md">使用Cloudflare Workers AI搭建属于你的翻译API</a></p>
<section><h2>获取翻译API的URL<a href="#获取翻译api的url"><span>#</span></a></h2><p>如果我们要翻译“Hello World”（en to zh），那我们就访问一个特定的URL，我们就是要通过Python自动获取这个URL，我们可以使用这个函数：</p><div><div><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>def</span><span> </span><span>get_url</span><span>(</span></div></div><div><div><div>2</div></div><div><span><span>        </span></span><span>api_url</span><span>:</span><span> </span><span>str</span><span>,</span></div></div><div><div><div>3</div></div><div><span><span>        </span></span><span>text</span><span>:</span><span> </span><span>str</span><span>,</span></div></div><div><div><div>4</div></div><div><span><span>        </span></span><span>source_language</span><span>:</span><span> </span><span>str</span><span>,</span></div></div><div><div><div>5</div></div><div><span><span>        </span></span><span>target_language</span><span>:</span><span> </span><span>str</span></div></div><div><div><div>6</div></div><div><span>):</span></div></div><div><div><div>7</div></div><div><span>    </span><span>"""</span></div></div><div><div><div>8</div></div><div><span><span>    </span></span><span>传入参数</span></div></div><div><div><div>9</div></div><div><span><span>    </span></span><span>: api_url 翻译api的URL 需要指明HTTP或者HTTPS 结尾加上"/"</span></div></div><div><div><div>10</div></div><div><span><span>      </span></span><span>传入示例：https://translate.linyunlink.top/</span></div></div><div><div><div>11</div></div><div><span><span>    </span></span><span>: text 你即将翻译的文本</span></div></div><div><div><div>12</div></div><div><span><span>    </span></span><span>: source_language 翻译文本源语言</span></div></div><div><div><div>13</div></div><div><span><span>    </span></span><span>: target_language 翻译文本靶语言</span></div></div><div><div><div>14</div></div><div>
</div></div><div><div><div>15</div></div><div><span><span>    </span></span><span>返回值</span></div></div><div><div><div>16</div></div><div><span><span>    </span></span><span>: url 翻译api的标准URL</span></div></div><div><div><div>17</div></div><div>
</div></div><div><div><div>18</div></div><div><span><span>    </span></span><span>注意</span></div></div><div><div><div>19</div></div><div><span><span>    </span></span><span>: 请保证传入参数的准确性，不要浪费api的资源</span></div></div><div><div><div>20</div></div><div><span><span>    </span></span><span>"""</span></div></div><div><div><div>21</div></div><div><span><span>    </span></span><span>url </span><span>=</span><span> api_url </span><span>+</span><span> </span><span>"?text=</span><span>{}</span><span>&amp;source_language=</span><span>{}</span><span>&amp;target_language=</span><span>{}</span><span>"</span><span><span>.</span><span>format</span><span>(</span></span></div></div><div><div><div>22</div></div><div><span><span>        </span></span><span>text, source_language, target_language</span></div></div><div><div><div>23</div></div><div><span><span>    </span></span><span>)</span></div></div><div><div><div>24</div></div><div>
</div></div><div><div><div>25</div></div><div><span>    </span><span>return</span><span> url</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><p>我们运行这个语句，就可以获得URL：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>if</span><span> </span><span>__name__</span><span><span> </span><span>==</span><span> </span></span><span>"__main__"</span><span>:</span></div></div><div><div><div>2</div></div><div><span>    </span><span>print</span><span>(</span></div></div><div><div><div>3</div></div><div><span><span>        </span></span><span>get_url</span><span>(</span></div></div><div><div><div>4</div></div><div><span>            </span><span>"https://translate.linyunlink.top/"</span><span>,</span></div></div><div><div><div>5</div></div><div><span>            </span><span>"Hello world!"</span><span>,</span></div></div><div><div><div>6</div></div><div><span>            </span><span>"en"</span><span>,</span></div></div><div><div><div>7</div></div><div><span>            </span><span>"zh"</span></div></div><div><div><div>8</div></div><div><span><span>        </span></span><span>)</span></div></div><div><div><div>9</div></div><div><span><span>    </span></span><span>)</span></div></div></code></pre><div><div></div><div></div></div></figure></div></section>
<section><h2>获取JSON<a href="#获取json"><span>#</span></a></h2><p>接着我们需要从得到的URL里面获取JSON，首先我们引入一下<code>requests</code>库：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>import</span><span> requests</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>然后定义一个函数：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>def</span><span> </span><span>get_translated_json</span><span>(</span><span>url</span><span>:</span><span> </span><span>str</span><span>):</span></div></div><div><div><div>2</div></div><div><span>    </span><span>"""</span></div></div><div><div><div>3</div></div><div><span><span>    </span></span><span>传入参数</span></div></div><div><div><div>4</div></div><div><span><span>    </span></span><span>: url 翻译api的标准URL</span></div></div><div><div><div>5</div></div><div>
</div></div><div><div><div>6</div></div><div><span><span>    </span></span><span>返回值</span></div></div><div><div><div>7</div></div><div><span><span>    </span></span><span>: translated_json api返回的JSON</span></div></div><div><div><div>8</div></div><div><span><span>    </span></span><span>"""</span></div></div><div><div><div>9</div></div><div><span><span>    </span></span><span>response </span><span>=</span><span> requests.</span><span>get</span><span>(url)</span></div></div><div><div><div>10</div></div><div><span><span>    </span></span><span>translated_json </span><span>=</span><span> response.content.</span><span>decode</span><span>()</span></div></div><div><div><div>11</div></div><div><span>    </span><span>return</span><span> translated_json</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>传入刚刚获取的url就可以了，不出意外的，我们打印一下translated_json，结果应该是这样的：</p><p></p><figure><img src="https://image.linyunlink.top/240707/01.jpg" alt="Untitled" /><figcaption>Untitled</figcaption></figure><p></p></section>
<section><h2>获取翻译结果<a href="#获取翻译结果"><span>#</span></a></h2><p>我们将JSON转换为字典，然后提取<code>”response”</code>对应的字典，然后提取这个字典里面<code>”translated_text“</code>对应的字符串。</p><p>先引入json库：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>import</span><span> json</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>定义一个函数处理数据：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>def</span><span> </span><span>get_translated_text</span><span>(</span><span>translated_json</span><span>):</span></div></div><div><div><div>2</div></div><div><span>    </span><span>"""</span></div></div><div><div><div>3</div></div><div><span><span>    </span></span><span>传入参数</span></div></div><div><div><div>4</div></div><div><span><span>    </span></span><span>: translated_json api返回的JSON</span></div></div><div><div><div>5</div></div><div><span><span>    </span></span><span>返回值</span></div></div><div><div><div>6</div></div><div><span><span>    </span></span><span>: translated_text 翻译结果或者是错误信息</span></div></div><div><div><div>7</div></div><div><span><span>    </span></span><span>"""</span></div></div><div><div><div>8</div></div><div><span><span>    </span></span><span>response_dict </span><span>=</span><span> json.</span><span>loads</span><span>(translated_json)</span></div></div><div><div><div>9</div></div><div><span><span>    </span></span><span>translated_response </span><span>=</span><span> response_dict[</span><span>'response'</span><span>]</span></div></div><div><div><div>10</div></div><div><span><span>    </span></span><span>translated_text </span><span>=</span><span> translated_response[</span><span>'translated_text'</span><span>]</span></div></div><div><div><div>11</div></div><div>
</div></div><div><div><div>12</div></div><div><span>    </span><span>return</span><span> translated_text</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>返回值就是我们想要的结果：<code>您好世界！</code></p></section>
<section><h2>More?<a href="#more"><span>#</span></a></h2><ul>
<li>UI界面</li>
<li>判断传入是否正确</li>
<li>……</li>
</ul><p>你可以自己去尝试，这有无数种可能！</p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.linyunlink.top/posts/240706/</id>
      <title type="text">使用LaTex公式解决博客内的公式与化学方程式</title>
      <published>2024-07-06T00:00:00.000Z</published>
      <updated>2024-07-06T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/240706/"/>
      <summary type="text">不得不说LaTex解决了化学方程式的输入，太好用啦！</summary>
      <content type="html"><![CDATA[<p>如果你是一个热爱分享知识的博主，那么你在分享化学、物理或者化学知识的时候，你也许会对公式感到抓狂，但是LaTex可以帮你解决这一点，让公式不再是图片！</p>
<section><h1>数学篇<a href="#数学篇"><span>#</span></a></h1><p>我们这里简单介绍一下部分基础的LaTex语法，更多高级语法大家可以自行搜索。</p><section><h2>指数&amp;下标<a href="#指数下标"><span>#</span></a></h2><p>Latex的指数表达式：<code>x^9</code>(单个字符) / <code>x^{10}</code>(多个字符,花括号内包裹指数)</p><p>效果分别是：<span><span>x9x^9</span><span><span><span></span><span><span>x</span><span><span><span><span><span><span></span><span><span>9</span></span></span></span></span></span></span></span></span></span></span> / <span><span>x10x^{10}</span><span><span><span></span><span><span>x</span><span><span><span><span><span><span></span><span><span><span>10</span></span></span></span></span></span></span></span></span></span></span></span></p><p>Latex的下标表达式：<code>x_a</code>(单个字符) / <code>x_{max}</code>(多个字符,花括号内包裹下标)</p><p>效果分别是：<span><span>xax_a</span><span><span><span></span><span><span>x</span><span><span><span><span><span><span></span><span><span>a</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span> / <span><span>xmaxx_{max}</span><span><span><span></span><span><span>x</span><span><span><span><span><span><span></span><span><span><span>ma</span><span>x</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span></p></section><section><h2>分数&amp;分式<a href="#分数分式"><span>#</span></a></h2><p>LaTex的表达式：<code>\frac{分子}{分母}</code></p><p>E.X.</p>

<table><thead><tr><th>表达式</th><th>效果</th></tr></thead><tbody><tr><td><code>\frac{1}{3}</code></td><td><span><span>13\frac{1}{3}</span><span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span>3</span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span>1</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span></span></span></span></td></tr><tr><td><code>\frac{x}{x^2-4x+9}</code></td><td><span><span>xx2−4x+9\frac{x}{x^2-4x+9}</span><span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span><span>x</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span>−</span><span>4</span><span>x</span><span>+</span><span>9</span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span>x</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span></span></span></span></td></tr></tbody></table></section><section><h2>公式举例<a href="#公式举例"><span>#</span></a></h2><p>勾股定理：<code>a^2+b^2=c^2</code></p><span><span><span>a2+b2=c2a^2+b^2=c^2</span><span><span><span></span><span><span>a</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span><span>b</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span>c</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span></span></span></span></span><p>海伦公式：<code>S=\sqrt{p(p-a)(p-b)(p-c)},p=\frac{1}{2}(a+b+c)</code></p><span><span><span>S=p(p−a)(p−b)(p−c),p=12(a+b+c)S=\sqrt{p(p-a)(p-b)(p-c)},p=\frac{1}{2}(a+b+c)</span><span><span><span></span><span>S</span><span></span><span>=</span><span></span></span><span><span></span><span><span><span><span><span><span></span><span><span>p</span><span>(</span><span>p</span><span></span><span>−</span><span></span><span>a</span><span>)</span><span>(</span><span>p</span><span></span><span>−</span><span></span><span>b</span><span>)</span><span>(</span><span>p</span><span></span><span>−</span><span></span><span>c</span><span>)</span></span></span><span><span></span><span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span>,</span><span></span><span>p</span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span>2</span></span></span><span><span></span><span></span></span><span><span></span><span><span>1</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span>(</span><span>a</span><span></span><span>+</span><span></span></span><span><span></span><span>b</span><span></span><span>+</span><span></span></span><span><span></span><span>c</span><span>)</span></span></span></span></span><p>扇形的面积公式：<code>S=\frac{\theta}{360\degree}\pi r^2</code></p><span><span><span>S=θ360°πr2S=\frac{\theta}{360\degree}\pi r^2</span><span><span><span></span><span>S</span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span>360°</span></span></span><span><span></span><span></span></span><span><span></span><span><span>θ</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span>π</span><span><span>r</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span></span></span></span></span></section></section>
<section><h1>物理篇<a href="#物理篇"><span>#</span></a></h1><section><h2>公式举例<a href="#公式举例-1"><span>#</span></a></h2><p>重力公式：<code>G=mg</code></p><span><span><span>G=mgG=mg</span><span><span><span></span><span>G</span><span></span><span>=</span><span></span></span><span><span></span><span>m</span><span>g</span></span></span></span></span><p>比热容：<code>c=\frac{Q}{m\Delta t}</code></p><span><span><span>c=QmΔtc=\frac{Q}{m\Delta t}</span><span><span><span></span><span>c</span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span>m</span><span>Δ</span><span>t</span></span></span><span><span></span><span></span></span><span><span></span><span><span>Q</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span></span></span></span></span><p>比热容导出公式：<code>Q=cm\Delta t</code></p><span><span><span>Q=cmΔtQ=cm\Delta t</span><span><span><span></span><span>Q</span><span></span><span>=</span><span></span></span><span><span></span><span>c</span><span>m</span><span>Δ</span><span>t</span></span></span></span></span><p>质能方程式：<code>E=mc^2</code></p><span><span><span>E=mc2E=mc^2</span><span><span><span></span><span>E</span><span></span><span>=</span><span></span></span><span><span></span><span>m</span><span><span>c</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span></span></span></span></span><p>并联电路电阻规律：<code>\frac{1}{R}=\frac{1}{R_1}+\frac{1}{R_2}+…+\frac{1}{R_n}</code></p><span><span><span>1R=1R1+1R2+…+1Rn\frac{1}{R}=\frac{1}{R_1}+\frac{1}{R_2}+…+\frac{1}{R_n}</span><span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span>R</span></span></span><span><span></span><span></span></span><span><span></span><span><span>1</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span>R</span><span><span><span><span><span><span></span><span><span>1</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span><span><span></span><span></span></span><span><span></span><span><span>1</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span></span><span>+</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span>R</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span><span><span></span><span></span></span><span><span></span><span><span>1</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span></span><span>+</span><span></span></span><span><span></span><span>…</span><span></span><span>+</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span>R</span><span><span><span><span><span><span></span><span><span>n</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span><span><span></span><span></span></span><span><span></span><span><span>1</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span></span></span></span></span></section></section>
<section><h1>化学篇<a href="#化学篇"><span>#</span></a></h1><p>对于化学我们需要解决的东西就不同于物理和数学了，他需要解决长等号以及可逆符号，还有反应条件。</p><section><h2>核素&amp;离子<a href="#核素离子"><span>#</span></a></h2><p>对于氚这样的核素我们不仅仅可以表示为T，还可以用下面这种方式来表达：<code>^3_1H</code></p><span><span><span>13H^3_1H</span><span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span>1</span></span></span><span><span></span><span><span>3</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>H</span></span></span></span></span><p>对于铀-235，我们应该这样表达：<code>^{235}_{\ \ 92}U</code>(<code>\</code> 表示空格)</p><span><span><span>  92235U^{235}_{\ \ 92}U</span><span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span><span> </span></span><span><span> </span></span><span>92</span></span></span></span><span><span></span><span><span><span>235</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>U</span></span></span></span></span><p>而离子的表达就更简单了，只涉及到了上标和下标的问题，比如氢离子是<code>H^+</code>，硫酸根离子是<code>SO_4^{2-}</code>，四氨合铜离子是<code>Cu(NH_3)_4]^+</code></p><span><span><span>H+,SO42−,[Cu(NH3)4]+H^+,SO_4^{2-},[Cu(NH_3)_4]^+</span><span><span><span></span><span><span>H</span><span><span><span><span><span><span></span><span><span>+</span></span></span></span></span></span></span></span><span>,</span><span></span><span>S</span><span><span>O</span><span><span><span><span><span><span></span><span><span>4</span></span></span><span><span></span><span><span><span>2</span><span>−</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>,</span><span></span><span>[</span><span>C</span><span>u</span><span>(</span><span>N</span><span><span>H</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span><span>)</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span><span>]</span><span><span><span><span><span><span></span><span><span>+</span></span></span></span></span></span></span></span></span></span></span></span></section><section><h2>反应方程式<a href="#反应方程式"><span>#</span></a></h2><p>长等号：<code>\xlongequal[\quad\quad]{}</code></p><span><span><span>=\xlongequal[\quad\quad]{}</span><span><span><span></span><span><span><span><span><span><span></span><span><span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span></span><span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span><p>加上反应条件：<code>\xlongequal[\quad\quad]{\Delta}</code></p><span><span><span>=Δ\xlongequal[\quad\quad]{\Delta}</span><span><span><span></span><span><span><span><span><span><span></span><span><span><span>Δ</span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span></span><span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span><p>多个反应条件：<code>\xlongequal[\Delta]{MnO_2}</code></p><span><span><span>=ΔMnO2\xlongequal[\Delta]{MnO_2}</span><span><span><span></span><span><span><span><span><span><span></span><span><span><span>M</span><span>n</span><span><span>O</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span>Δ</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span><p>可逆符号：<code>\xrightleftharpoons[\quad\quad]{}</code></p><span><span><span>⇌\xrightleftharpoons[\quad\quad]{}</span><span><span><span></span><span><span><span><span><span><span></span><span><span></span></span></span><span><span></span><span><span></span><span></span></span></span><span><span></span><span><span><span></span><span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span><p>加上反应条件：<code>\xrightleftharpoons[\quad\quad]{\Delta}</code></p><span><span><span>⇌Δ\xrightleftharpoons[\quad\quad]{\Delta}</span><span><span><span></span><span><span><span><span><span><span></span><span><span><span>Δ</span></span></span></span><span><span></span><span><span></span><span></span></span></span><span><span></span><span><span><span></span><span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span><p>多个反应条件：<code>\xrightleftharpoons[条件B]{条件A}</code></p><span><span><span>⇌条件B条件A\xrightleftharpoons[条件B]{条件A}</span><span><span><span></span><span><span><span><span><span><span></span><span><span><span>条件</span><span>A</span></span></span></span><span><span></span><span><span></span><span></span></span></span><span><span></span><span><span><span>条件</span><span>B</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span><p>气体符号：<code>\uparrow</code>，<span><span>↑\uparrow</span><span><span><span></span><span>↑</span></span></span></span></p><p>沉淀符号：<code>\downarrow</code>，<span><span>↓\downarrow</span><span><span><span></span><span>↓</span></span></span></span></p></section><section><h2>方程式举例<a href="#方程式举例"><span>#</span></a></h2><p>一水合氨的电离：<code>NH_3\sdot H_2O\xrightleftharpoons[\quad\quad]{} NH_4^++OH^-</code></p><span><span><span>NH3⋅H2O⇌NH4++OH−NH_3\sdot H_2O\xrightleftharpoons[\quad\quad]{} NH_4^++OH^-</span><span><span><span></span><span>N</span><span><span>H</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>⋅</span><span></span></span><span><span></span><span><span>H</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>O</span><span></span><span><span><span><span><span><span></span><span><span></span></span></span><span><span></span><span><span></span><span></span></span></span><span><span></span><span><span><span></span><span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span><span></span><span>N</span><span><span>H</span><span><span><span><span><span><span></span><span><span>4</span></span></span><span><span></span><span><span>+</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span>O</span><span><span>H</span><span><span><span><span><span><span></span><span><span>−</span></span></span></span></span></span></span></span></span></span></span></span><p>氯酸钾制氧气：<code>2KClO_3\xlongequal[\Delta]{MnO_2}2KCl+3O_2\uparrow</code></p><span><span><span>2KClO3=ΔMnO22KCl+3O2↑2KClO_3\xlongequal[\Delta]{MnO_2}2KCl+3O_2\uparrow</span><span><span><span></span><span>2</span><span>K</span><span>C</span><span>l</span><span><span>O</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span><span><span><span><span><span></span><span><span><span>M</span><span>n</span><span><span>O</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span>Δ</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span><span></span><span>2</span><span>K</span><span>C</span><span>l</span><span></span><span>+</span><span></span></span><span><span></span><span>3</span><span><span>O</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>↑</span></span></span></span></span><p>氢氧化铜的生成：<code>Cu^{2+}+2OH^-\xlongequal[\quad\quad]{}Cu(OH)_2\downarrow</code></p><span><span><span>Cu2++2OH−=Cu(OH)2↓Cu^{2+}+2OH^-\xlongequal[\quad\quad]{}Cu(OH)_2\downarrow</span><span><span><span></span><span>C</span><span><span>u</span><span><span><span><span><span><span></span><span><span><span>2</span><span>+</span></span></span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span>2</span><span>O</span><span><span>H</span><span><span><span><span><span><span></span><span><span>−</span></span></span></span></span></span></span></span><span></span><span><span><span><span><span><span></span><span><span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span></span><span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span><span></span><span>C</span><span>u</span><span>(</span><span>O</span><span>H</span><span><span>)</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>↓</span></span></span></span></span></section></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.linyunlink.top/posts/240702/</id>
      <title type="text">使用Cloudflare Workers AI搭建属于你的翻译API</title>
      <published>2024-07-02T00:00:00.000Z</published>
      <updated>2024-07-02T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/240702/"/>
      <summary type="text">试试吧，搭建过程并不困难，但是你需要一个托管在Cloudflare的域名。或许你可以找一个免费的域名?</summary>
      <content type="html"><![CDATA[<p>我们都知道，有这样一个公司，提供免费CDN、免费域名托管、免费边缘函数计算、免费对象存储、免费内网穿透、免费部署Pages、免费KV、免费SSL证书……他就是Cloudflare！</p>
<p>就在前不久Cloudflare推出了免费的Workers AI，这就允许我们使用AI模型搭建一个翻译API，这相当简单，请看下面的教程。</p>
<section><h2>搭建教程<a href="#搭建教程"><span>#</span></a></h2><p>在<code>Cloudflare dashboard</code>找到<code>AI - Workers AI</code>，找到下面这个模型（<code>@cf/meta/m2m100-1.2b</code>），这就是我们要使用的模型。</p><p></p><figure><img src="https://image.linyunlink.top/240702/01.jpg" alt="Untitled" /><figcaption>Untitled</figcaption></figure><p></p><p>然后我们找到<code>使用WOrkers模板</code>创建，然后在里面找到<code>Translation AI</code>，点击创建，根据提示自行创建。</p><p>创建完之后点击Workers内的<code>编辑代码</code>，将<code>index.js</code>的代码替换成我的：</p><div><div><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>export</span><span> </span><span>default</span><span> {</span></div></div><div><div><div>2</div></div><div><span>  </span><span>async</span><span> </span><span>fetch</span><span><span>(</span><span>request</span><span>, </span><span>env</span><span>) {</span></span></div></div><div><div><div>3</div></div><div><span>    </span><span>const</span><span> </span><span>urlStr</span><span> </span><span>=</span><span><span> </span><span>request</span><span>.</span></span><span>url</span></div></div><div><div><div>4</div></div><div><span>    </span><span>const</span><span> </span><span>urlObj</span><span> </span><span>=</span><span> </span><span>new</span><span> </span><span>URL</span><span>(</span><span>urlStr</span><span>)</span></div></div><div><div><div>5</div></div><div><span>    </span><span>let</span><span> </span><span>text</span><span> </span><span>=</span><span><span>  </span><span>urlObj</span><span>.</span></span><span>searchParams</span><span>.</span><span>get</span><span>(</span><span>'text'</span><span>)</span></div></div><div><div><div>6</div></div><div><span>    </span><span>let</span><span> </span><span>source_language</span><span> </span><span>=</span><span><span> </span><span>urlObj</span><span>.</span></span><span>searchParams</span><span>.</span><span>get</span><span>(</span><span>'source_language'</span><span>)</span></div></div><div><div><div>7</div></div><div><span>    </span><span>let</span><span> </span><span>target_language</span><span> </span><span>=</span><span><span> </span><span>urlObj</span><span>.</span></span><span>searchParams</span><span>.</span><span>get</span><span>(</span><span>'target_language'</span><span>)</span></div></div><div><div><div>8</div></div><div><span>    </span><span>const</span><span> </span><span>inputs</span><span> </span><span>=</span><span> {</span></div></div><div><div><div>9</div></div><div><span>      </span><span>text</span><span>:</span><span> </span><span>text</span><span>,</span></div></div><div><div><div>10</div></div><div><span>      </span><span>source_lang</span><span>:</span><span> </span><span>source_language</span><span>,</span></div></div><div><div><div>11</div></div><div><span>      </span><span>target_lang</span><span>:</span><span> </span><span>target_language</span></div></div><div><div><div>12</div></div><div><span><span>    </span></span><span>};</span></div></div><div><div><div>13</div></div><div><span>    </span><span>if</span><span>(</span><span>text</span><span>==</span><span>null</span><span>){</span></div></div><div><div><div>14</div></div><div><span>      </span><span>return</span><span><span> </span><span>Response</span><span>.</span></span><span>json</span><span>({ </span><span>inputs</span><span>, </span><span>response</span><span>:</span><span>{</span></div></div><div><div><div>15</div></div><div><span>        </span><span>translated_text</span><span>:</span><span> </span><span>"ERROR: value 'text' is missing"</span></div></div><div><div><div>16</div></div><div><span><span>      </span></span><span>} } );</span></div></div><div><div><div>17</div></div><div><span><span>    </span></span><span>}</span></div></div><div><div><div>18</div></div><div><span>    </span><span>if</span><span>(</span><span>source_language</span><span>==</span><span>null</span><span>){</span></div></div><div><div><div>19</div></div><div><span>      </span><span>return</span><span><span> </span><span>Response</span><span>.</span></span><span>json</span><span>({ </span><span>inputs</span><span>, </span><span>response</span><span>:</span><span> {</span></div></div><div><div><div>20</div></div><div><span>        </span><span>translated_text</span><span>:</span><span> </span><span>"ERROR: value 'source_language' is missing"</span></div></div><div><div><div>21</div></div><div><span><span>      </span></span><span>}} );</span></div></div><div><div><div>22</div></div><div><span><span>    </span></span><span>}</span></div></div><div><div><div>23</div></div><div><span>    </span><span>if</span><span>(</span><span>target_language</span><span>==</span><span>null</span><span>){</span></div></div><div><div><div>24</div></div><div><span>      </span><span>return</span><span><span> </span><span>Response</span><span>.</span></span><span>json</span><span>({ </span><span>inputs</span><span>, </span><span>response</span><span>:</span><span> {</span></div></div><div><div><div>25</div></div><div><span>        </span><span>translated_text</span><span>:</span><span> </span><span>"ERROR: value 'target_language' is missing"</span></div></div><div><div><div>26</div></div><div><span><span>      </span></span><span>}} );</span></div></div><div><div><div>27</div></div><div><span><span>    </span></span><span>}</span></div></div><div><div><div>28</div></div><div><span>    </span><span>else</span><span> {</span></div></div><div><div><div>29</div></div><div><span>      </span><span>const</span><span> </span><span>response</span><span> </span><span>=</span><span> </span><span>await</span><span><span> </span><span>env</span><span>.</span></span><span>AI</span><span>.</span><span>run</span><span>(</span><span>'@cf/meta/m2m100-1.2b'</span><span>, </span><span>inputs</span><span>);</span></div></div><div><div><div>30</div></div><div><span>      </span><span>return</span><span><span> </span><span>Response</span><span>.</span></span><span>json</span><span>({ </span><span>inputs</span><span>, </span><span>response</span><span> });</span></div></div><div><div><div>31</div></div><div><span><span>    </span></span><span>}</span></div></div><div><div><div>32</div></div><div><span><span>  </span></span><span>},</span></div></div><div><div><div>33</div></div><div><span>};</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><p>这是最基础的版本，如果你需要一个访问密钥的话可以使用下面的代码：</p><div><div><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>export</span><span> </span><span>default</span><span> {</span></div></div><div><div><div>2</div></div><div><span>  </span><span>async</span><span> </span><span>fetch</span><span><span>(</span><span>request</span><span>, </span><span>env</span><span>) {</span></span></div></div><div><div><div>3</div></div><div><span>    </span><span>const</span><span> </span><span>urlStr</span><span> </span><span>=</span><span><span> </span><span>request</span><span>.</span></span><span>url</span></div></div><div><div><div>4</div></div><div><span>    </span><span>const</span><span> </span><span>urlObj</span><span> </span><span>=</span><span> </span><span>new</span><span> </span><span>URL</span><span>(</span><span>urlStr</span><span>)</span></div></div><div><div><div>5</div></div><div><span>    </span><span>let</span><span> </span><span>text</span><span> </span><span>=</span><span><span>  </span><span>urlObj</span><span>.</span></span><span>searchParams</span><span>.</span><span>get</span><span>(</span><span>'text'</span><span>)</span></div></div><div><div><div>6</div></div><div><span>    </span><span>let</span><span> </span><span>source_language</span><span> </span><span>=</span><span><span> </span><span>urlObj</span><span>.</span></span><span>searchParams</span><span>.</span><span>get</span><span>(</span><span>'source_language'</span><span>)</span></div></div><div><div><div>7</div></div><div><span>    </span><span>let</span><span> </span><span>target_language</span><span> </span><span>=</span><span><span> </span><span>urlObj</span><span>.</span></span><span>searchParams</span><span>.</span><span>get</span><span>(</span><span>'target_language'</span><span>)</span></div></div><div><div><div>8</div></div><div><span>    </span><span>let</span><span> </span><span>key</span><span> </span><span>=</span><span><span> </span><span>urlObj</span><span>.</span></span><span>searchParams</span><span>.</span><span>get</span><span>(</span><span>'key'</span><span>)</span></div></div><div><div><div>9</div></div><div><span>    </span><span>const</span><span> </span><span>inputs</span><span> </span><span>=</span><span> {</span></div></div><div><div><div>10</div></div><div><span>      </span><span>text</span><span>:</span><span> </span><span>text</span><span>,</span></div></div><div><div><div>11</div></div><div><span>      </span><span>source_lang</span><span>:</span><span> </span><span>source_language</span><span>,</span></div></div><div><div><div>12</div></div><div><span>      </span><span>target_lang</span><span>:</span><span> </span><span>target_language</span></div></div><div><div><div>13</div></div><div><span><span>    </span></span><span>};</span></div></div><div><div><div>14</div></div><div><span>    </span><span>if</span><span> (</span><span>key</span><span> </span><span>!==</span><span>"设置你想要的密钥"</span><span>){</span></div></div><div><div><div>15</div></div><div><span>      </span><span>return</span><span><span> </span><span>Response</span><span>.</span></span><span>json</span><span>({ </span><span>inputs</span><span>, </span><span>response</span><span>:</span><span>"ERROR: wrong key"</span><span>} );</span></div></div><div><div><div>16</div></div><div><span><span>    </span></span><span>}</span></div></div><div><div><div>17</div></div><div><span>    </span><span>else</span><span>{</span></div></div><div><div><div>18</div></div><div><span>      </span><span>if</span><span>(</span><span>text</span><span>==</span><span>null</span><span>){</span></div></div><div><div><div>19</div></div><div><span>        </span><span>return</span><span><span> </span><span>Response</span><span>.</span></span><span>json</span><span>({ </span><span>inputs</span><span>, </span><span>response</span><span>:</span><span>{</span></div></div><div><div><div>20</div></div><div><span>          </span><span>translated_text</span><span>:</span><span> </span><span>"ERROR: value 'text' is missing"</span></div></div><div><div><div>21</div></div><div><span><span>        </span></span><span>} } );</span></div></div><div><div><div>22</div></div><div><span><span>      </span></span><span>}</span></div></div><div><div><div>23</div></div><div><span>      </span><span>if</span><span>(</span><span>source_language</span><span>==</span><span>null</span><span>){</span></div></div><div><div><div>24</div></div><div><span>        </span><span>return</span><span><span> </span><span>Response</span><span>.</span></span><span>json</span><span>({ </span><span>inputs</span><span>, </span><span>response</span><span>:</span><span> {</span></div></div><div><div><div>25</div></div><div><span>          </span><span>translated_text</span><span>:</span><span> </span><span>"ERROR: value 'source_language' is missing"</span></div></div><div><div><div>26</div></div><div><span><span>        </span></span><span>}} );</span></div></div><div><div><div>27</div></div><div><span><span>      </span></span><span>}</span></div></div><div><div><div>28</div></div><div><span>      </span><span>if</span><span>(</span><span>target_language</span><span>==</span><span>null</span><span>){</span></div></div><div><div><div>29</div></div><div><span>        </span><span>return</span><span><span> </span><span>Response</span><span>.</span></span><span>json</span><span>({ </span><span>inputs</span><span>, </span><span>response</span><span>:</span><span> {</span></div></div><div><div><div>30</div></div><div><span>          </span><span>translated_text</span><span>:</span><span> </span><span>"ERROR: value 'target_language' is missing"</span></div></div><div><div><div>31</div></div><div><span><span>        </span></span><span>}} );</span></div></div><div><div><div>32</div></div><div><span><span>      </span></span><span>}</span></div></div><div><div><div>33</div></div><div><span>      </span><span>else</span><span> {</span></div></div><div><div><div>34</div></div><div><span>        </span><span>const</span><span> </span><span>response</span><span> </span><span>=</span><span> </span><span>await</span><span><span> </span><span>env</span><span>.</span></span><span>AI</span><span>.</span><span>run</span><span>(</span><span>'@cf/meta/m2m100-1.2b'</span><span>, </span><span>inputs</span><span>);</span></div></div><div><div><div>35</div></div><div><span>        </span><span>return</span><span><span> </span><span>Response</span><span>.</span></span><span>json</span><span>({ </span><span>inputs</span><span>, </span><span>response</span><span> });</span></div></div><div><div><div>36</div></div><div><span><span>      </span></span><span>}</span></div></div><div><div><div>37</div></div><div><span><span>    </span></span><span>}</span></div></div><div><div><div>38</div></div><div><span><span>  </span></span><span>},</span></div></div><div><div><div>39</div></div><div><span>};</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><p>编辑好代码后，点击部署即可，参照下图配置自定义域：</p><p></p><figure><img src="https://image.linyunlink.top/240702/02.jpg" alt="Untitled" /><figcaption>Untitled</figcaption></figure><p></p></section>
<section><h2>如何使用<a href="#如何使用"><span>#</span></a></h2><p>对于第一个代码你需要传入一组数据，包含三个参数，键分别为<code>text</code>,<code>source_language</code>和<code>target_language</code>：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>// 传入参数</span></div></div><div><div><div>2</div></div><div><span>{</span></div></div><div><div><div>3</div></div><div><span>  </span><span>"text"</span><span>: </span><span>"你好啊"</span><span>,</span></div></div><div><div><div>4</div></div><div><span>  </span><span>"source_language"</span><span>: </span><span>"zh"</span><span>,</span></div></div><div><div><div>5</div></div><div><span>  </span><span>"target_language"</span><span>: </span><span>"en"</span></div></div><div><div><div>6</div></div><div><span>}</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p><a href="https://xx.xxxxx.xxx/?text=%E4%BD%A0%E5%A5%BD%E5%95%8A&amp;source_language=zh&amp;target_language=en" target="_blank">https://xx.xxxxx.xxx/?text=你好啊&amp;source_language=zh&amp;target_language=en</a></p><p>这个链接就可以查询到结果，不出意外返回的JSON应该是这样的：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>{</span></div></div><div><div><div>2</div></div><div><span>    </span><span>"inputs"</span><span>: {</span></div></div><div><div><div>3</div></div><div><span>        </span><span>"text"</span><span>: </span><span>"你好啊"</span><span>,</span></div></div><div><div><div>4</div></div><div><span>        </span><span>"source_lang"</span><span>: </span><span>"zh"</span><span>,</span></div></div><div><div><div>5</div></div><div><span>        </span><span>"target_lang"</span><span>: </span><span>"en"</span></div></div><div><div><div>6</div></div><div><span><span>    </span></span><span>},</span></div></div><div><div><div>7</div></div><div><span>    </span><span>"response"</span><span>: {</span></div></div><div><div><div>8</div></div><div><span>        </span><span>"translated_text"</span><span>: </span><span>"Hello to you."</span></div></div><div><div><div>9</div></div><div><span><span>    </span></span><span>}</span></div></div><div><div><div>10</div></div><div><span>}</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>不同于传入的参数，传出的参数中<code>*_language</code>都变成了<code>*_lang</code>，开发者需要注意。</p><p>对于使用了带有密钥的方案，只需额外传入参数<code>key</code>即可，返回的JSON也会在<code>inputs</code>中多一个<code>key</code>的参数，其他不变动，URL也只需要加上<code>&amp;key=你自己设置的key</code>即可。</p></section>
<section><h2>限制<a href="#限制"><span>#</span></a></h2><p>虽然Cloudflare允许并且鼓励我们白嫖，但是绝对不会没有限制，限制如下：</p><p><strong>Cloudflare Workers and Pages 免费计划 Limit</strong></p><p><strong>Workers 和 Pages Functions</strong></p><blockquote><p>每个请求最多占用 10 毫秒 CPU 时间</p><p>每天最多 100,000 (UTC+0)</p></blockquote><p><strong>Workers AI</strong></p><blockquote><p>访问我们目录中的所有 AI 模型</p><p>每天最多 10,000 个神经元</p></blockquote></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.linyunlink.top/posts/240629/</id>
      <title type="text">NotionNext更新冲突手动解决方案</title>
      <published>2024-06-29T00:00:00.000Z</published>
      <updated>2024-06-29T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/240629/"/>
      <summary type="text">NotionNext更新冲突？网上教程还要VS code和git?通通不需要，马上解决冲突！</summary>
      <content type="html"><![CDATA[<p>正常情况下，如果你要更新NotionNext，在你<code>frok</code>的项目里点击<code>Sync Fork</code>，如果有更新就是像下面一样，可以直接更新，直接点击<code>Update branch</code>即可，不要点击<code>Discard XX commits</code>，这样的话你的修改就全部没了。</p>
<p></p><figure><img src="https://image.linyunlink.top/240629/01.jpg" alt="01.jg" /><figcaption>01.jg</figcaption></figure><p></p>
<p>但是有的时候如果哪一天出现了下面的提示，那一定是勤劳的tangly1024又更新了配置文件，Github无法理解差异，没办法直接更新了。</p>
<p></p><figure><img src="https://image.linyunlink.top/240629/02.jpg" alt="02.jpg" /><figcaption>02.jpg</figcaption></figure><p></p>
<p>根据tangly1024的教程，我们需要放弃所有的配置文件，重头再来，这肯定不是我们想要的，也有使用Git来解决的，但是我们需要让技术小白也能学会——直接在Github网页端进行解决冲突。</p>
<section><h3>解决步骤<a href="#解决步骤"><span>#</span></a></h3><p>先打开<code>Pull requests</code>，点击<code>New pull request</code>新建一个合并请求；</p><p></p><figure><img src="https://image.linyunlink.top/240629/03.jpg" alt="03.jpg" /><figcaption>03.jpg</figcaption></figure><p></p><p>点击<code>Create pull request</code>建立合并请求；</p><p></p><figure><img src="https://image.linyunlink.top/240629/04.jpg" alt="04.jpg" /><figcaption>04.jpg</figcaption></figure><p></p><p>在<code>Add a title</code>里面随便设置一个标题，点击<code>Create pull request</code>，创建合并请求；</p><p></p><figure><img src="https://image.linyunlink.top/240629/05.jpg" alt="05.jpg" /><figcaption>05.jpg</figcaption></figure><p></p><p>拉到最底下，点击<code>Resolve conflicts</code>，手动解决冲突；</p><p></p><figure><img src="https://image.linyunlink.top/240629/06.jpg" alt="06.jpg" /><figcaption>06.jpg</figcaption></figure><p></p><p>修改冲突的代码，修改好之后点击<code>Mark as resolved</code>，标记为已经解决；</p><p></p><figure><img src="https://image.linyunlink.top/240629/07.jpg" alt="07.jpg" /><figcaption>07.jpg</figcaption></figure><p></p><p>再点击<code>Commit merge</code>，提交更新；</p><p></p><figure><img src="https://image.linyunlink.top/240629/08.jpg" alt="08.jpg" /><figcaption>08.jpg</figcaption></figure><p></p><p>如果你调试之后一切正常了，更新也完成了，记得去tangly1024的NotionNext仓库，打开<code>Pull requests</code>，找到自己的合并请求，然后把它关闭掉。</p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.linyunlink.top/posts/240627/</id>
      <title type="text">使用UpTimeFlare搭建属于你自己的状态监控吧！</title>
      <published>2024-06-27T00:00:00.000Z</published>
      <updated>2024-06-27T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/240627/"/>
      <summary type="text">你是否想要为你的各个站点和服务器添加状态监控？又碍于没有资源？现在你可以免费来搭建一个属于你的！</summary>
      <content type="html"><![CDATA[<p><strong>项目地址：</strong><a href="https://github.com/lyc8503/UptimeFlare" target="_blank">https://github.com/lyc8503/UptimeFlare</a></p>
<section><h1>项目介绍<a href="#项目介绍"><span>#</span></a></h1><p>类似于UpTimeRobot，这个项目允许你使用Cloudflare和Github搭建一个属于你自己的状态监控页面。下面是作者给出的效果展示图：</p><p></p><figure><img src="https://image.linyunlink.top/240627/01.jpg" alt="Untitled" /><figcaption>Untitled</figcaption></figure><p></p></section>
<section><h1>搭建教程<a href="#搭建教程"><span>#</span></a></h1><section><h3>材料准备<a href="#材料准备"><span>#</span></a></h3><ol>
<li>一个活人（看到的都有吧）</li>
<li>一台可以进行操作的设备（推荐Windows、MacOS和Linux Desktop）</li>
<li>一个Github账户（没用的去<a href="https://github.com%E6%B3%A8%E5%86%8C%EF%BC%89" target="_blank">https://github.com注册）</a></li>
<li>一个Cloudflare账户（没有的去<a href="https://www.cloudflare.com%E6%B3%A8%E5%86%8C%EF%BC%89" target="_blank">https://www.cloudflare.com注册）</a></li>
<li>一个域名（可选，建议托管在Cloudflare）</li>
</ol></section><section><h3>前期准备<a href="#前期准备"><span>#</span></a></h3><p>首先我们先复制一份这个项目仓库，点击项目页面右上角的<code>Use this template</code>然后点击<code>Create a new repository</code>(不建议直接<code>Fork</code>，建议作为私有仓库使用)。然后在创建仓库页面设置一个仓库名，比如就叫<code>UpTimeFlare</code>，将<code>Public</code>改为<code>Private</code>，然后点击<code>Create repository</code>，于是就完成了最简单的第一步。这一步比较简单，就不给出操作截图了。</p><p>随后我们需要一个Cloudflare账户，注册的过程就跳过了。登录好了之后访问<a href="https://dash.cloudflare.com/profile/api-tokens" target="_blank">Cloudflare API Token申请页面</a>创建一个令牌，点击使用模板中的<code>编辑Cloudflare Workers</code>，点击。</p><p></p><figure><img src="https://image.linyunlink.top/240627/02.jpg" alt="Untitled" /><figcaption>Untitled</figcaption></figure><p></p><p>接着如下图，就修改这两个参数，然后点击<code>继续以显示摘要</code>，然后点击<code>创建令牌</code>。</p><p></p><figure><img src="https://image.linyunlink.top/240627/03.jpg" alt="Untitled" /><figcaption>Untitled</figcaption></figure><p></p><p>然后点击<code>Copy</code>复制API令牌，下面的步骤里要用。</p><p></p><figure><img src="https://image.linyunlink.top/240627/04.jpg" alt="Untitled" /><figcaption>Untitled</figcaption></figure><p></p><p>接着我们回到我们刚刚复制的那个仓库，依次点击<code>Settings - Secrets and variables - Actions</code>，点击<code>New repository secrets</code>创建一个新的密钥，<code>Name</code>设置为<code>CLOUDFLARE_API_TOKEN</code>，<code>Secret</code>就设置成你刚刚复制的API令牌。</p><p></p><figure><img src="https://image.linyunlink.top/240627/05.jpg" alt="Untitled" /><figcaption>Untitled</figcaption></figure><p></p></section><section><h3>修改配置<a href="#修改配置"><span>#</span></a></h3><p>然后我们就要开始设置状态监控了。回到仓库的<code>Code</code>界面，全程我们只需要修改一个配置文件，就是<code>uptime.config.ts</code>，我们点击这个文件，点击右上角的笔<code>Edit this file</code>，起初的配置文件是完整版本的，有些功能我们不需要，可以删除，比如下面这个（位于配置文件的第61到74行）：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span><span>  </span></span><span>notification</span><span>: {</span></div></div><div><div><div>2</div></div><div><span>    </span><span>// [Optional] apprise API server URL</span></div></div><div><div><div>3</div></div><div><span>    </span><span>// if not specified, no notification will be sent</span></div></div><div><div><div>4</div></div><div><span><span>    </span></span><span>appriseApiServer</span><span>: </span><span>"https://apprise.example.com/notify"</span><span>,</span></div></div><div><div><div>5</div></div><div><span>    </span><span>// [Optional] recipient URL for apprise, refer to https://github.com/caronc/apprise</span></div></div><div><div><div>6</div></div><div><span>    </span><span>// if not specified, no notification will be sent</span></div></div><div><div><div>7</div></div><div><span><span>    </span></span><span>recipientUrl</span><span>: </span><span>"tgram://bottoken/ChatID"</span><span>,</span></div></div><div><div><div>8</div></div><div><span>    </span><span>// [Optional] timezone used in notification messages, default to "Etc/GMT"</span></div></div><div><div><div>9</div></div><div><span><span>    </span></span><span>timeZone</span><span>: </span><span>"Asia/Shanghai"</span><span>,</span></div></div><div><div><div>10</div></div><div><span>    </span><span>// [Optional] grace period in minutes before sending a notification</span></div></div><div><div><div>11</div></div><div><span>    </span><span>// notification will be sent only if the monitor is down for N continuous checks after the initial failure</span></div></div><div><div><div>12</div></div><div><span>    </span><span>// if not specified, notification will be sent immediately</span></div></div><div><div><div>13</div></div><div><span><span>    </span></span><span>gracePeriod</span><span>: </span><span>5</span><span>,</span></div></div><div><div><div>14</div></div><div><span><span>  </span></span><span>},</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>如果没有需要我们可以直接删掉，如果需要可以参照原仓库中的<code>Wiki</code>进行配置，为了节省时间，我把一个精简版本的配置文件放在下面，可以删掉原来的所有内容，复制一下我的，然后自行调试：</p><div><div><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>const</span><span> </span><span>pageConfig</span><span> </span><span>=</span><span> {</span></div></div><div><div><div>2</div></div><div><span>  </span><span>// 状态页面的标题，类似于HTML里面的&lt;title&gt;&lt;/title&gt;</span></div></div><div><div><div>3</div></div><div><span><span>  </span></span><span>title</span><span>:</span><span> </span><span>"凌云服务状态"</span><span>,</span></div></div><div><div><div>4</div></div><div><span>  </span><span>// 状态页面右上角的按钮，按顺序从左往右在页面上排列</span></div></div><div><div><div>5</div></div><div><span><span>  </span></span><span>links</span><span>:</span><span> [</span></div></div><div><div><div>6</div></div><div><span>    </span><span>// 这个是普通按钮</span></div></div><div><div><div>7</div></div><div><span><span>    </span></span><span>{ </span><span>link</span><span>:</span><span> </span><span>'网址'</span><span><span>, </span><span>label</span></span><span>:</span><span> </span><span>'按钮名称'</span><span>},</span></div></div><div><div><div>8</div></div><div><span>    </span><span>// 这个是显示成蓝色按钮的高光按钮</span></div></div><div><div><div>9</div></div><div><span><span>    </span></span><span>{ </span><span>link</span><span>:</span><span> </span><span>'网址'</span><span><span>, </span><span>label</span></span><span>:</span><span> </span><span>'按钮名称'</span><span><span>, </span><span>highlight</span></span><span>:</span><span> </span><span>true</span><span> },</span></div></div><div><div><div>10</div></div><div><span><span>  </span></span><span>],</span></div></div><div><div><div>11</div></div><div><span>}</span></div></div><div><div><div>12</div></div><div>
</div></div><div><div><div>13</div></div><div><span>const</span><span> </span><span>workerConfig</span><span> </span><span>=</span><span> {</span></div></div><div><div><div>14</div></div><div><span>  </span><span>// Write KV at most every 3 minutes unless the status changed.</span></div></div><div><div><div>15</div></div><div><span><span>  </span></span><span>kvWriteCooldownMinutes</span><span>:</span><span> </span><span>3</span><span>,</span></div></div><div><div><div>16</div></div><div><span>  </span><span>// Define all your monitors here</span></div></div><div><div><div>17</div></div><div><span><span>  </span></span><span>monitors</span><span>:</span><span> [</span></div></div><div><div><div>18</div></div><div><span>    </span><span>// ==========[服务监控]==========</span></div></div><div><div><div>19</div></div><div><span>    </span><span>// 这是一个例子，用于监控一个网页</span></div></div><div><div><div>20</div></div><div><span>    </span><span>// 如果是端口监控，可以参照原作者的Wiki</span></div></div><div><div><div>21</div></div><div><span><span>    </span></span><span>{</span></div></div><div><div><div>22</div></div><div><span>      </span><span>// id必须唯一，使用英文和下划线</span></div></div><div><div><div>23</div></div><div><span><span>      </span></span><span>id</span><span>:</span><span> </span><span>'linyun_blog_monitor'</span><span>,</span></div></div><div><div><div>24</div></div><div><span>      </span><span>// 监控页面展示的监控名称</span></div></div><div><div><div>25</div></div><div><span><span>      </span></span><span>name</span><span>:</span><span> </span><span>'凌云·LinYun 博客'</span><span>,</span></div></div><div><div><div>26</div></div><div><span>      </span><span>// 请求形式，HTTP请求一般用GET和POST，分不清就用GET</span></div></div><div><div><div>27</div></div><div><span><span>      </span></span><span>method</span><span>:</span><span> </span><span>'GET'</span><span>,</span></div></div><div><div><div>28</div></div><div><span>      </span><span>// 你监控的网站的地址</span></div></div><div><div><div>29</div></div><div><span><span>      </span></span><span>target</span><span>:</span><span> </span><span>'https://www.linyunlink.top/'</span><span>,</span></div></div><div><div><div>30</div></div><div><span><span>    </span></span><span>},</span></div></div><div><div><div>31</div></div><div><span><span>  </span></span><span>],</span></div></div><div><div><div>32</div></div><div><span><span>  </span></span><span>callbacks</span><span>:</span><span> {</span></div></div><div><div><div>33</div></div><div><span>    </span><span>onStatusChange</span><span>:</span><span> </span><span>async</span><span> (</span></div></div><div><div><div>34</div></div><div><span><span>      </span></span><span>env</span><span>:</span><span> </span><span>any</span><span>,</span></div></div><div><div><div>35</div></div><div><span><span>      </span></span><span>monitor</span><span>:</span><span> </span><span>any</span><span>,</span></div></div><div><div><div>36</div></div><div><span><span>      </span></span><span>isUp</span><span>:</span><span> </span><span>boolean</span><span>,</span></div></div><div><div><div>37</div></div><div><span><span>      </span></span><span>timeIncidentStart</span><span>:</span><span> </span><span>number</span><span>,</span></div></div><div><div><div>38</div></div><div><span><span>      </span></span><span>timeNow</span><span>:</span><span> </span><span>number</span><span>,</span></div></div><div><div><div>39</div></div><div><span><span>      </span></span><span>reason</span><span>:</span><span> </span><span>string</span></div></div><div><div><div>40</div></div><div><span><span>    </span></span><span>) </span><span>=&gt;</span><span> {</span></div></div><div><div><div>41</div></div><div><span>      </span><span>// This callback will be called when there's a status change for any monitor</span></div></div><div><div><div>42</div></div><div><span>      </span><span>// Write any Typescript code here</span></div></div><div><div><div>43</div></div><div>
</div></div><div><div><div>44</div></div><div><span>      </span><span>// This will not follow the grace period settings and will be called immediately when the status changes</span></div></div><div><div><div>45</div></div><div><span>      </span><span>// You need to handle the grace period manually if you want to implement it</span></div></div><div><div><div>46</div></div><div><span><span>    </span></span><span>},</span></div></div><div><div><div>47</div></div><div><span>    </span><span>onIncident</span><span>:</span><span> </span><span>async</span><span> (</span></div></div><div><div><div>48</div></div><div><span><span>      </span></span><span>env</span><span>:</span><span> </span><span>any</span><span>,</span></div></div><div><div><div>49</div></div><div><span><span>      </span></span><span>monitor</span><span>:</span><span> </span><span>any</span><span>,</span></div></div><div><div><div>50</div></div><div><span><span>      </span></span><span>timeIncidentStart</span><span>:</span><span> </span><span>number</span><span>,</span></div></div><div><div><div>51</div></div><div><span><span>      </span></span><span>timeNow</span><span>:</span><span> </span><span>number</span><span>,</span></div></div><div><div><div>52</div></div><div><span><span>      </span></span><span>reason</span><span>:</span><span> </span><span>string</span></div></div><div><div><div>53</div></div><div><span><span>    </span></span><span>) </span><span>=&gt;</span><span> {</span></div></div><div><div><div>54</div></div><div><span>      </span><span>// This callback will be called EVERY 1 MINTUE if there's an on-going incident for any monitor</span></div></div><div><div><div>55</div></div><div><span>      </span><span>// Write any Typescript code here</span></div></div><div><div><div>56</div></div><div><span><span>    </span></span><span>},</span></div></div><div><div><div>57</div></div><div><span><span>  </span></span><span>},</span></div></div><div><div><div>58</div></div><div><span>}</span></div></div><div><div><div>59</div></div><div>
</div></div><div><div><div>60</div></div><div><span>// Don't forget this, otherwise compilation fails.</span></div></div><div><div><div>61</div></div><div><span>export</span><span> { </span><span>pageConfig</span><span>, </span><span>workerConfig</span><span> }</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><p>在上面的代码里，下面的内容可以反复堆叠，达到多个监控的效果，但是<code>id</code>一定要不唯一，以防止冲突，其他的按要求自行调整，每个监控的设置还有更多进阶配置，可以参照作者的<code>Wiki</code>来设置，这里不过多赘述了。</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span><span>    </span></span><span>{</span></div></div><div><div><div>2</div></div><div><span>      </span><span>// id必须唯一，使用英文和下划线</span></div></div><div><div><div>3</div></div><div><span><span>      </span></span><span>id</span><span>: </span><span>'linyun_blog_monitor'</span><span>,</span></div></div><div><div><div>4</div></div><div><span>      </span><span>// 监控页面展示的监控名称</span></div></div><div><div><div>5</div></div><div><span><span>      </span></span><span>name</span><span>: </span><span>'凌云·LinYun 博客'</span><span>,</span></div></div><div><div><div>6</div></div><div><span>      </span><span>// 请求形式，HTTP请求一般用GET和POST，分不清就用GET</span></div></div><div><div><div>7</div></div><div><span><span>      </span></span><span>method</span><span>: </span><span>'GET'</span><span>,</span></div></div><div><div><div>8</div></div><div><span>      </span><span>// 你监控的网站的地址</span></div></div><div><div><div>9</div></div><div><span><span>      </span></span><span>target</span><span>: </span><span>'https://www.linyunlink.top/'</span><span>,</span></div></div><div><div><div>10</div></div><div><span><span>    </span></span><span>},</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>接着我们保存文件，不出意外进入<code>Actions</code>页面，就会发现有一个<code>Action</code>在运行了，但是不出意外，肯定会报错，不要慌张，我们如果发现报错发生在<code>Build Page</code>并且报错内容和下面一眼，请往后看：</p><div><figure><figcaption><span></span><span>Terminal window</span></figcaption><pre><code><div><div><div>1</div></div><div><span>▲</span><span>  </span><span>Linting</span><span> </span><span>and</span><span> </span><span>checking</span><span> </span><span>validity</span><span> </span><span>of</span><span> </span><span>types</span><span> </span><span>...</span></div></div><div><div><div>2</div></div><div><span>▲</span><span>  </span><span>Failed</span><span> </span><span>to</span><span> </span><span>compile.</span></div></div><div><div><div>3</div></div><div><span>▲</span><span>  </span><span>./pages/index.tsx:106:25</span></div></div><div><div><div>4</div></div><div><span>▲</span><span>  </span><span>Type</span><span> </span><span>error:</span><span> </span><span>Property</span><span> </span><span>'tooltip'</span><span> </span><span>does</span><span> </span><span>not</span><span> </span><span>exist</span><span> </span><span>on</span><span> </span><span>type</span><span> </span><span>'{ id: string; name: string; method: string; target: string; }'.</span></div></div><div><div><div>5</div></div><div><span>▲</span></div></div><div><div><div>6</div></div><div><span>▲</span><span>    </span><span>104</span><span> |       </span><span>id:</span><span> </span><span>monitor.id,</span></div></div><div><div><div>7</div></div><div><span>▲</span><span>    </span><span>105</span><span> |       </span><span>name:</span><span> </span><span>monitor.name,</span></div></div><div><div><div>8</div></div><div><span>▲</span><span>  &gt; </span><span>106</span><span> |       </span><span>tooltip:</span><span> </span><span>monitor?.tooltip,</span></div></div><div><div><div>9</div></div><div><span>▲</span><span>        |                         </span><span>^</span></div></div><div><div><div>10</div></div><div><span>▲</span><span>    </span><span>107</span><span> |       </span><span>statusPageLink:</span><span> </span><span>monitor?.statusPageLink</span></div></div><div><div><div>11</div></div><div><span>▲</span><span>    </span><span>108</span><span> |     }</span></div></div><div><div><div>12</div></div><div><span>▲</span><span>    </span><span>109</span><span> |   })</span></div></div><div><div><div>13</div></div><div><span>▲</span><span>  </span><span>Error:</span><span> </span><span>Command</span><span> </span><span>"npm run build"</span><span> </span><span>exited</span><span> </span><span>with</span><span> </span><span>1</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>我们发现是项目<code>pages</code>目录下的<code>index.tsx</code>文件报错了，我们先不急着打开这个文件，继续看报错，报错说<code>tooltip</code>不存在，其实在最开始设置监控的配置文件里有两个可选的配置分别是<code>tooltip</code>和<code>statusPageLink</code>，作者的本意是可以不填写的，但是定义的时候没有实现，导致了错误，作者目前已经承认这个是一个Bug（参照原项目的Issues），但是目前还没有被修复，但是我给出了两种解决办法，读者可以自行斟酌，选择合适的方法。</p></section><section><h3>方法一：修改<code>uptime.config.ts</code>（推荐）<a href="#方法一修改uptimeconfigts推荐"><span>#</span></a></h3><p>我们还是打开刚刚的配置文件，不需要修改太多内容，只需要修改监控相关的配置就好了，根据下面的代码，添加两个参数：</p><div><div><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>// 原来的配置--------------------&gt;</span></div></div><div><div><div>2</div></div><div><span><span>    </span></span><span>{</span></div></div><div><div><div>3</div></div><div><span>      </span><span>// id必须唯一，使用英文和下划线</span></div></div><div><div><div>4</div></div><div><span><span>      </span></span><span>id</span><span>: </span><span>'linyun_blog_monitor'</span><span>,</span></div></div><div><div><div>5</div></div><div><span>      </span><span>// 监控页面展示的监控名称</span></div></div><div><div><div>6</div></div><div><span><span>      </span></span><span>name</span><span>: </span><span>'凌云·LinYun 博客'</span><span>,</span></div></div><div><div><div>7</div></div><div><span>      </span><span>// 请求形式，HTTP请求一般用GET和POST，分不清就用GET</span></div></div><div><div><div>8</div></div><div><span><span>      </span></span><span>method</span><span>: </span><span>'GET'</span><span>,</span></div></div><div><div><div>9</div></div><div><span>      </span><span>// 你监控的网站的地址</span></div></div><div><div><div>10</div></div><div><span><span>      </span></span><span>target</span><span>: </span><span>'https://www.linyunlink.top/'</span><span>,</span></div></div><div><div><div>11</div></div><div><span><span>    </span></span><span>},</span></div></div><div><div><div>12</div></div><div><span>// &lt;--------------------原来的配置</span></div></div><div><div><div>13</div></div><div>
</div></div><div><div><div>14</div></div><div><span>// 修改后的配置--------------------&gt;</span></div></div><div><div><div>15</div></div><div><span><span>    </span></span><span>{</span></div></div><div><div><div>16</div></div><div><span>      </span><span>// id必须唯一，使用英文和下划线</span></div></div><div><div><div>17</div></div><div><span><span>      </span></span><span>id</span><span>: </span><span>'linyun_blog_monitor'</span><span>,</span></div></div><div><div><div>18</div></div><div><span>      </span><span>// 监控页面展示的监控名称</span></div></div><div><div><div>19</div></div><div><span><span>      </span></span><span>name</span><span>: </span><span>'凌云·LinYun 博客'</span><span>,</span></div></div><div><div><div>20</div></div><div><span>      </span><span>// 请求形式，HTTP请求一般用GET和POST，分不清就用GET</span></div></div><div><div><div>21</div></div><div><span><span>      </span></span><span>method</span><span>: </span><span>'GET'</span><span>,</span></div></div><div><div><div>22</div></div><div><span>      </span><span>// 你监控的网站的地址</span></div></div><div><div><div>23</div></div><div><span><span>      </span></span><span>target</span><span>: </span><span>'https://www.linyunlink.top/'</span><span>,</span></div></div><div><div><div>24</div></div><div><span>      </span><span>// 监控页面悬浮提示</span></div></div><div><div><div>25</div></div><div><span><span>      </span></span><span>tooltip</span><span>: </span><span>'凌云·LinYun 博客'</span><span>,</span></div></div><div><div><div>26</div></div><div><span>      </span><span>// 监控页面点击监控跳转链接</span></div></div><div><div><div>27</div></div><div><span><span>      </span></span><span>statusPageLink</span><span>: </span><span>'https://www.linyunlink.top/'</span><span>,</span></div></div><div><div><div>28</div></div><div><span><span>    </span></span><span>},</span></div></div><div><div><div>29</div></div><div><span>// &lt;--------------------修改后的配置</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><p>修改好之后保存，Action会重新运行，就不会产生刚刚的错误了。</p><p>这个办法新增了<code>tooltip</code>和<code>statusPageLink</code>，解决的无法找到这两个参数了错误，但是每一个监控都要添加这两个参数，否则可能还会产生相同的报错。</p></section><section><h3>方法二：修改<code>/pages/index.tsx</code><a href="#方法二修改pagesindextsx"><span>#</span></a></h3><p>我们进入项目的<code>pages</code>目录，打开<code>index.tsx</code>，修改下面这两行代码（位于第106和107行）：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span><span>      </span></span><span>tooltip</span><span>: </span><span>monitor</span><span>?.</span><span>tooltip</span><span>,</span></div></div><div><div><div>2</div></div><div><span><span>      </span></span><span>statusPageLink</span><span>: </span><span>monitor</span><span>?.</span><span>statusPageLink</span><span>,</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>修改成下面这两行代码：</p><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span><span>      </span></span><span>tooltip</span><span>: </span><span>'None'</span><span>, </span><span>//monitor?.tooltip,</span></div></div><div><div><div>2</div></div><div><span><span>      </span></span><span>statusPageLink</span><span>: </span><span>'None'</span><span>, </span><span>//monitor?.statusPageLink,</span></div></div></code></pre><div><div></div><div></div></div></figure></div><p>然后再保存，就不会产生刚刚的错误了，但是所有的监控页面悬浮提示都变成了None，点击监控就会跳转到404页面，不是很推荐这个方法。这个方法的原理就是不调用用户设置的参数，直接采用默认值，规避了用户没有定义的问题，但是用户也没法再自定义这两个参数了。</p></section><section><h3>访问站点<a href="#访问站点"><span>#</span></a></h3><p>打开<code>Cloudflare Dashboard</code>，点击<code>Wokers 和 Pages</code>，如果你和我一样看到了下面两个项目，祝贺你你已经搭建成功了，点击上面的UpTimeFlare的项目就可以查看访问链接啦！</p><p></p><figure><img src="https://image.linyunlink.top/240627/06.jpg" alt="Untitled" /><figcaption>Untitled</figcaption></figure><p></p></section><section><h3>绑定域名<a href="#绑定域名"><span>#</span></a></h3><p>如果你有一个域名的话，你也可以考虑给你的状态页面绑定一个域名，这个操作也很简单，我们只需要添加一条<code>CNAME</code>记录就好了，但是如果你的域名托管在Cloudflare上，你只需要打开Pages里面的uptimeflare，然后点击自定义域，按照提示操作就完成了！</p><p>记录示例(XXXXXXX.pages.dev修改成自己的链接)：</p>

<table><thead><tr><th>类型</th><th>记录值</th></tr></thead><tbody><tr><td>CNAME</td><td>XXXXXXX.pages.dev</td></tr></tbody></table></section><section><h2>写在最后<a href="#写在最后"><span>#</span></a></h2><p>到此为止，你就完成了所有的搭建过程，感谢你的阅读。如果你有什么问题，欢迎在下面评论，我会给出答复，尽可能帮助你。awa</p></section></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.linyunlink.top/posts/240623/</id>
      <title type="text">银镜实验与铜镜实验：差异中的共同</title>
      <published>2024-06-23T00:00:00.000Z</published>
      <updated>2024-06-23T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/240623/"/>
      <summary type="text">铜镜实验和银镜实验在前面的博文中已经介绍，如此相似的他们又有什么异同呢？让我们来一探究竟。</summary>
      <content type="html"><![CDATA[<p>银镜实验与铜镜实验都可以让我们获得精彩的实验效果，实验的原料都简单易得，实验操作也不是十分复杂，但是可以肯定的是，他们都存在差异，但差异中也蕴含着相同，让我们来看看吧！</p>
<section><h2>一、金属单质与盐<a href="#一金属单质与盐"><span>#</span></a></h2><p>两个实验最大的不同就是两者的材质是不同的，一个是银(<span><span>AgAg</span><span><span><span></span><span>A</span><span>g</span></span></span></span>)，另外一个是(<span><span>CuCu</span><span><span><span></span><span>C</span><span>u</span></span></span></span>)，在元素周期表中，他们都属于第11族（IB）的元素，只是他们所处的电子层不同。除此之外，实验使用的盐为我们提供了这些元素，我们分别使用了硝酸银(<span><span>AgNO3AgNO_3</span><span><span><span></span><span>A</span><span>g</span><span>N</span><span><span>O</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span>)以及硫酸铜（<span><span>CuSO4CuSO_4</span><span><span><span></span><span>C</span><span>u</span><span>S</span><span><span>O</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span>)，他们在水中电解成的阳离子分别是<span><span>Ag+Ag^+</span><span><span><span></span><span>A</span><span><span>g</span><span><span><span><span><span><span></span><span><span>+</span></span></span></span></span></span></span></span></span></span></span>和<span><span>Cu2+Cu^{2+}</span><span><span><span></span><span>C</span><span><span>u</span><span><span><span><span><span><span></span><span><span><span>2</span><span>+</span></span></span></span></span></span></span></span></span></span></span></span>。而盐的选取主要是考虑溶解性而选择，其实个人认为硫酸铜(<span><span>CuSO4CuSO_4</span><span><span><span></span><span>C</span><span>u</span><span>S</span><span><span>O</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span>)改成硝酸铜[<span><span>Cu(NO3)2Cu(NO_3)_2</span><span><span><span></span><span>C</span><span>u</span><span>(</span><span>N</span><span><span>O</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span><span>)</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span>]其实也是可以的。</p></section>
<section><h2>二、还原反应与氧化剂<a href="#二还原反应与氧化剂"><span>#</span></a></h2><p>我们知道，我们使用了硝酸银(<span><span>AgNO3AgNO_3</span><span><span><span></span><span>A</span><span>g</span><span>N</span><span><span>O</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span>)以及硫酸铜（<span><span>CuSO4CuSO_4</span><span><span><span></span><span>C</span><span>u</span><span>S</span><span><span>O</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span>)作为反应物，他们在水中电解成的阳离子分别是<span><span>Ag+Ag^+</span><span><span><span></span><span>A</span><span><span>g</span><span><span><span><span><span><span></span><span><span>+</span></span></span></span></span></span></span></span></span></span></span>和<span><span>Cu2+Cu^{2+}</span><span><span><span></span><span>C</span><span><span>u</span><span><span><span><span><span><span></span><span><span><span>2</span><span>+</span></span></span></span></span></span></span></span></span></span></span></span>，要把<span><span>Ag+Ag^+</span><span><span><span></span><span>A</span><span><span>g</span><span><span><span><span><span><span></span><span><span>+</span></span></span></span></span></span></span></span></span></span></span>还原成为<span><span>AgAg</span><span><span><span></span><span>A</span><span>g</span></span></span></span>比把<span><span>Cu2+Cu^{2+}</span><span><span><span></span><span>C</span><span><span>u</span><span><span><span><span><span><span></span><span><span><span>2</span><span>+</span></span></span></span></span></span></span></span></span></span></span></span>还原到<span><span>Cu+Cu^+</span><span><span><span></span><span>C</span><span><span>u</span><span><span><span><span><span><span></span><span><span>+</span></span></span></span></span></span></span></span></span></span></span>再还原到<span><span>CuCu</span><span><span><span></span><span>C</span><span>u</span></span></span></span>简单地多，所有导致了反应时间的差异。</p></section>
<section><h2>三、还原剂的选择<a href="#三还原剂的选择"><span>#</span></a></h2><p>银镜实验中我们使用葡萄糖或者碱性葡萄糖作为还原剂，而铜镜实验则利用还原性更强的抗坏血酸，但是理论上，碱性葡萄糖应该也是可以用来完成铜镜实验的，可以肯定的是，葡萄糖溶液肯定不能直接完成铜镜实验。葡萄糖的还原性来源于它所含有的醛基，而抗坏血酸的还原性来自于它的连二烯醇的结构，容易释放出氢原子而具有很强的还原性。</p></section>
<section><h2>四、原理相关<a href="#四原理相关"><span>#</span></a></h2><p>其实两个实验都使用了氨水(<span><span>NH4⋅H2ONH_4\cdot H_2O</span><span><span><span></span><span>N</span><span><span>H</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>⋅</span><span></span></span><span><span></span><span><span>H</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>O</span></span></span></span>)，它起到了络合的作用。而且整个实验主要的反应就是氧化还原反应。这导致了两个实验的相似性。</p><p>综上所述，两个实验在原理和药品上都存在相似之处，而不同都是为了适应两种不同金属的化学性质不同而导致的，因为穷此处我们并没有分析金镜实验与这两个实验的差异，后续我会查阅相关资料，进行阐述。</p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.linyunlink.top/posts/240617/</id>
      <title type="text">2024年上海市初中学业水平考试物理压强压轴题简易解法</title>
      <published>2024-06-17T00:00:00.000Z</published>
      <updated>2024-06-17T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/240617/"/>
      <summary type="text">说难其实也不难，就是一个新题型，教研员就爱搞花头(bushi</summary>
      <content type="html"><![CDATA[<p><strong>2024年上海市初中学业水平考试综合测试于2024年6月15日下午2时开考，其物理部分难度相较于2023年显著上升，作为今年的应届生，下面的解法是我临场想到的，个人认为比较简单，可能不太完整，欢迎指出错误。</strong></p>
<section><h1><strong>真题复现</strong><a href="#真题复现"><span>#</span></a></h1><p></p><figure><img src="https://image.linyunlink.top/240617/01.jpg" alt="Untitled" /><figcaption>Untitled</figcaption></figure><p></p></section>
<section><h1><strong>解答过程</strong><a href="#解答过程"><span>#</span></a></h1><p><strong>第一问：</strong><span><span>p甲=F甲S甲=G甲S甲=m甲gS甲=1.2kg×9.8N/kg1.2×10−3m3=980Pap_甲=\frac{F_甲}{S_甲}=\frac{G_甲}{S_甲}=\frac{m_甲g}{S_甲}=\frac{1.2kg\times9.8N/kg}{1.2\times10^{-3}m^3}=980Pa</span><span><span><span></span><span><span>p</span><span><span><span><span><span><span></span><span><span>甲</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span><span>S</span><span><span><span><span><span><span></span><span><span>甲</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span><span>F</span><span><span><span><span><span><span></span><span><span>甲</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span><span>S</span><span><span><span><span><span><span></span><span><span>甲</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span><span>G</span><span><span><span><span><span><span></span><span><span>甲</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span><span>S</span><span><span><span><span><span><span></span><span><span>甲</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span><span>m</span><span><span><span><span><span><span></span><span><span>甲</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>g</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span>1.2</span><span>×</span><span>1</span><span><span>0</span><span><span><span><span><span><span></span><span><span><span>−</span><span>3</span></span></span></span></span></span></span></span></span><span><span>m</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span></span></span></span></span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span>1.2</span><span>k</span><span>g</span><span>×</span><span>9.8</span><span>N</span><span>/</span><span>k</span><span>g</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span></span><span>=</span><span></span></span><span><span></span><span>980</span><span>P</span><span>a</span></span></span></span></p><p><strong>第二问：</strong><span><span>V水=m水ρ水=1.5kg1×103kg/m3=1.5×10−3m3V_水=\frac{m_水}{\rho _水}=\frac{1.5kg}{1\times10^3kg/m^3}=1.5\times10^{-3}m^3</span><span><span><span></span><span><span>V</span><span><span><span><span><span><span></span><span><span>水</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span><span>ρ</span><span><span><span><span><span><span></span><span><span>水</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span><span>m</span><span><span><span><span><span><span></span><span><span>水</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span>1</span><span>×</span><span>1</span><span><span>0</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span></span></span></span></span><span>k</span><span>g</span><span>/</span><span><span>m</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span></span></span></span></span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span>1.5</span><span>k</span><span>g</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span></span><span>=</span><span></span></span><span><span></span><span>1.5</span><span></span><span>×</span><span></span></span><span><span></span><span>1</span><span><span>0</span><span><span><span><span><span><span></span><span><span><span>−</span><span>3</span></span></span></span></span></span></span></span></span><span><span>m</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span></span></span></span></span></span></span></span></p><p><strong>第三问：</strong></p><p><span><span>∵容器乙漂浮\because 容器乙漂浮</span><span><span><span></span><span>∵</span><span></span></span><span><span></span><span>容器乙漂浮</span></span></span></span></p><p><span><span>∴F浮=G水\therefore F_浮=G_水</span><span><span><span></span><span>∴</span><span></span></span><span><span></span><span><span>F</span><span><span><span><span><span><span></span><span><span>浮</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span>G</span><span><span><span><span><span><span></span><span><span>水</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span></p><p><span><span>∵容器乙是柱形容器\because 容器乙是柱形容器</span><span><span><span></span><span>∵</span><span></span></span><span><span></span><span>容器乙是柱形容器</span></span></span></span></p><p><span><span>∴F水=G水\therefore F_水=G_水</span><span><span><span></span><span>∴</span><span></span></span><span><span></span><span><span>F</span><span><span><span><span><span><span></span><span><span>水</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span>G</span><span><span><span><span><span><span></span><span><span>水</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span></p><p><span><span>∴F浮=F水\therefore F_浮=F_水</span><span><span><span></span><span>∴</span><span></span></span><span><span></span><span><span>F</span><span><span><span><span><span><span></span><span><span>浮</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span>F</span><span><span><span><span><span><span></span><span><span>水</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span></p><p><span><span>∵F浮=F向上−F向下且F向下=0N\because F_浮=F_{向上}-F_{向下}且F_{向下}=0N</span><span><span><span></span><span>∵</span><span></span></span><span><span></span><span><span>F</span><span><span><span><span><span><span></span><span><span>浮</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span>F</span><span><span><span><span><span><span></span><span><span><span>向上</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>−</span><span></span></span><span><span></span><span><span>F</span><span><span><span><span><span><span></span><span><span><span>向下</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>且</span><span><span>F</span><span><span><span><span><span><span></span><span><span><span>向下</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span>0</span><span>N</span></span></span></span></p><p><span><span>∴F水=F向上\therefore F_水=F_{向上}</span><span><span><span></span><span>∴</span><span></span></span><span><span></span><span><span>F</span><span><span><span><span><span><span></span><span><span>水</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span>F</span><span><span><span><span><span><span></span><span><span><span>向上</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span></p><p><span><span>∴F水S乙=F向上S乙\therefore \frac{F_水}{S_乙}=\frac{F_{向上}}{S_乙}</span><span><span><span></span><span>∴</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span><span>S</span><span><span><span><span><span><span></span><span><span>乙</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span><span>F</span><span><span><span><span><span><span></span><span><span>水</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span><span>S</span><span><span><span><span><span><span></span><span><span>乙</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span><span>F</span><span><span><span><span><span><span></span><span><span><span>向上</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span></span></span></span></p><p><span><span>即p水=p向上即p_水=p_{向上}</span><span><span><span></span><span>即</span><span><span>p</span><span><span><span><span><span><span></span><span><span>水</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span>p</span><span><span><span><span><span><span></span><span><span><span>向上</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span></p><p><span><span>∴ρ液gh液=ρ水gh水\therefore \rho _液gh_液=\rho _水gh_水</span><span><span><span></span><span>∴</span><span></span></span><span><span></span><span><span>ρ</span><span><span><span><span><span><span></span><span><span>液</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>g</span><span><span>h</span><span><span><span><span><span><span></span><span><span>液</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span>ρ</span><span><span><span><span><span><span></span><span><span>水</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>g</span><span><span>h</span><span><span><span><span><span><span></span><span><span>水</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span></p><p><span><span>即ρ液h液=ρ水h水即\rho _液h_液=\rho _水h_水</span><span><span><span></span><span>即</span><span><span>ρ</span><span><span><span><span><span><span></span><span><span>液</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span><span>h</span><span><span><span><span><span><span></span><span><span>液</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span>ρ</span><span><span><span><span><span><span></span><span><span>水</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span><span>h</span><span><span><span><span><span><span></span><span><span>水</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span></p><p><span><span>∴ρ液×(0.2m+0.05m)=1×103kg/m3×0.2m\therefore \rho_液\times(0.2m+0.05m)=1\times10^3kg/m^3\times0.2m</span><span><span><span></span><span>∴</span><span></span></span><span><span></span><span><span>ρ</span><span><span><span><span><span><span></span><span><span>液</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>×</span><span></span></span><span><span></span><span>(</span><span>0.2</span><span>m</span><span></span><span>+</span><span></span></span><span><span></span><span>0.05</span><span>m</span><span>)</span><span></span><span>=</span><span></span></span><span><span></span><span>1</span><span></span><span>×</span><span></span></span><span><span></span><span>1</span><span><span>0</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span></span></span></span></span><span>k</span><span>g</span><span>/</span><span><span>m</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span></span></span></span></span><span></span><span>×</span><span></span></span><span><span></span><span>0.2</span><span>m</span></span></span></span></p><p><span><span>解得ρ液=800kg/m3解得\rho_液=800kg/m^3</span><span><span><span></span><span>解得</span><span><span>ρ</span><span><span><span><span><span><span></span><span><span>液</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span>800</span><span>k</span><span>g</span><span>/</span><span><span>m</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span></span></span></span></span></span></span></span></p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.linyunlink.top/posts/240616/</id>
      <title type="text">铜镜实验：以铜为镜可以正衣冠</title>
      <published>2024-06-16T00:00:00.000Z</published>
      <updated>2024-06-16T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/240616/"/>
      <summary type="text">铜镜实验，进阶版的银镜实验，快来试试吧！</summary>
      <content type="html"><![CDATA[<p>类似于银镜实验，我们发现了铜镜实验。但是网传这个实验成功率更低，（但是我没有失败过），特地出一期教程，并给出基本的原理以及与银镜实验简要的对比。</p>
<section><h1><strong>实验过程</strong><a href="#实验过程"><span>#</span></a></h1><section><h2>实验所需药品<a href="#实验所需药品"><span>#</span></a></h2><p>1.[无机，碱] 浓氨水（<span><span>NH4OHNH_4OH</span><span><span><span></span><span>N</span><span><span>H</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>O</span><span>H</span></span></span></span>,<span><span>NH3⋅H2ONH_3 \cdot H_2O</span><span><span><span></span><span>N</span><span><span>H</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>⋅</span><span></span></span><span><span></span><span><span>H</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>O</span></span></span></span>）</p><p>浓氨水用于络合，太稀了的话需要很多溶液，强烈建议使用浓溶液。</p><p>参考：本人使用的是“西陇”的“氨水 AR”</p><p>2.[无机，盐] 硫酸铜，五水（<span><span>CuSO4⋅5H2OCuSO_4\cdot 5H_2O</span><span><span><span></span><span>C</span><span>u</span><span>S</span><span><span>O</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>⋅</span><span></span></span><span><span></span><span>5</span><span><span>H</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>O</span></span></span></span>）</p><p>不建议使用无水硫酸铜（硫酸铜粉末），效果不好成本还更高。</p><p>参考：本人使用的是“国药”的“硫酸铜，五水 AR”</p><p>3.[有机，酸] L(+)-抗坏血酸（<span><span>C6H8O6C_6H_8O_6</span><span><span><span></span><span><span>C</span><span><span><span><span><span><span></span><span><span>6</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span><span>H</span><span><span><span><span><span><span></span><span><span>8</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span><span>O</span><span><span><span><span><span><span></span><span><span>6</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span>）</p><p>实验中用作还原剂，用于还原<span><span>Cu2+Cu^{2+}</span><span><span><span></span><span>C</span><span><span>u</span><span><span><span><span><span><span></span><span><span><span>2</span><span>+</span></span></span></span></span></span></span></span></span></span></span></span>到<span><span>Cu+Cu^{+}</span><span><span><span></span><span>C</span><span><span>u</span><span><span><span><span><span><span></span><span><span><span>+</span></span></span></span></span></span></span></span></span></span></span></span>直到变为单质铜。</p><p>参考：本人使用的是“国药”的“L(+)-抗坏血酸 AR”</p><p>4.[混合物] 液体石蜡</p><p>防止铜镜氧化氧化用的，铜很容易氧化。</p><p>参考：本人使用的是“国药”的“液体石蜡 AR”</p><p>5.[无机，氧化物]水</p></section><section><h2>实验步骤<a href="#实验步骤"><span>#</span></a></h2><p>1.称量：称取5g硫酸铜晶体以及3g抗坏血酸，并量取20ml的水；</p><p>2.将5g硫酸铜晶体加入20g水中，持续搅拌为溶液；</p><blockquote><p>接下来的步骤都要<strong>尽快完成</strong>，否则很容易失败</p></blockquote><p>3.将3g的抗坏血酸加入到溶液中，溶液变绿色，搅拌到，全部溶解；</p><p>4.加入浓氨水，建议直接倒，有黄色沉淀产生，加到沉淀刚好溶解，再加一点微微过量；</p><p>5.转移溶液，将溶液倒入样品瓶中，盖上盖子，一定要倒满，<strong>不能</strong>留有气泡；</p><p>6.倒放样品瓶，瓶盖朝下，等到12小时反应进行，铜镜形成；</p><ol>
<li>倒出反应后的溶液，用水清洗2-3次；</li>
<li>倒入液体石蜡，密封保存。</li>
</ol></section></section>
<section><h1>可选操作<a href="#可选操作"><span>#</span></a></h1><p>玻璃瓶清洗和敏化，请参考本站“银镜实验：化学之美”的文章</p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.linyunlink.top/posts/240504/</id>
      <title type="text">银镜实验：化学之美</title>
      <published>2024-05-04T00:00:00.000Z</published>
      <updated>2024-05-04T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/240504/"/>
      <summary type="text">经典化学实验，典型的氧化还原反应，快来学一学怎么完成这个实验吧！</summary>
      <content type="html"><![CDATA[<p>[备注：本实验出自《普通高中教科书·化学选择性必修3 有机化学基础》，人教版有实验过程，而沪科教版只是一笔带过，此处以此为基础进行实验。除部分引用文字(均会注明出处)外，文本以及图片均为原创。]</p>
<section><h1>I.实验原理<a href="#i实验原理"><span>#</span></a></h1><p>本实验主要利用了葡萄糖中含有的游离醛基（—CHO）所具有的还原性：</p><p></p><figure><img src="https://image.linyunlink.top/240504/01.jpg" alt="葡萄糖" /><figcaption>葡萄糖</figcaption></figure><p></p><blockquote><p>葡萄糖分子中含有醛基，能发生银镜反应，也能与新制氢氧化铜反应生成砖红色的氧化亚铜沉淀，因此葡萄糖具有还原性，属于还原性糖。</p></blockquote><section><h3>葡萄糖还原性的验证<a href="#葡萄糖还原性的验证"><span>#</span></a></h3><p>1.向硫酸铜溶液中加入过量氢氧化钠溶液，制得含氢氧化铜的悬浊液（一定要新制氢氧化铜，不要久置的）;</p><span><span><span>CuSO4+NaOH=Cu(OH)2↓+Na2SO4CuSO_4+NaOH\xlongequal {\quad\quad} Cu(OH)_2\downarrow +Na_2SO_4</span><span><span><span></span><span>C</span><span>u</span><span>S</span><span><span>O</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span>N</span><span>a</span><span>O</span><span>H</span><span></span><span><span><span><span><span><span></span><span><span><span></span><span></span></span></span></span><span><span></span><span></span></span></span></span></span></span><span></span></span><span><span></span><span>C</span><span>u</span><span>(</span><span>O</span><span>H</span><span><span>)</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>↓</span><span></span></span><span><span></span><span>+</span><span>N</span><span><span>a</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>S</span><span><span>O</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></span></span><p>2.向悬浊液中加入10%的葡萄糖溶液。观察现象，发现有砖红色的沉淀产生，蓝色固体开始消失；</p><span><span><span>C6H12O6+2Cu(OH)=ΔC6H12O7+Cu2O+2H2OC_6H_{12}O_6+2Cu(OH)\xlongequal[\quad\quad]{\Delta}C_6H_{12}O_7+Cu_2O+2H_2O</span><span><span><span></span><span><span>C</span><span><span><span><span><span><span></span><span><span>6</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span><span>H</span><span><span><span><span><span><span></span><span><span><span>12</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span><span>O</span><span><span><span><span><span><span></span><span><span>6</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span>2</span><span>C</span><span>u</span><span>(</span><span>O</span><span>H</span><span>)</span><span></span><span><span><span><span><span><span></span><span><span><span>Δ</span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span></span><span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span><span></span><span><span>C</span><span><span><span><span><span><span></span><span><span>6</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span><span>H</span><span><span><span><span><span><span></span><span><span><span>12</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span><span>O</span><span><span><span><span><span><span></span><span><span>7</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span>C</span><span><span>u</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>O</span><span></span><span>+</span><span></span></span><span><span></span><span>2</span><span><span>H</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>O</span></span></span></span></span><aside>
💡 备注：避免歧义，$C_6H_{12}O_6$指的是葡萄糖，$C_6H_{12}O_7$指的是葡萄糖酸。</aside><p>在银镜反应中，葡萄糖溶液作为还原剂（或碱性葡萄糖溶液，即氢氧化钠与葡萄糖的混合溶液，葡萄糖在碱性环境中还原性被大大加强），还原出银单质附着在玻璃器皿壁上，达到镀银的效果。</p><span><span><span>C6H12O6+2Ag(NH3)2OH=水浴加热C6H15NO7+2Ag↓+3NH3↑+H2OC_6H_{12}O_6+2Ag(NH_3)_2OH\xlongequal[\quad\quad]{水浴加热}C_6H_{15}NO_7+2Ag\downarrow+3NH_3\uparrow+H_2O</span><span><span><span></span><span><span>C</span><span><span><span><span><span><span></span><span><span>6</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span><span>H</span><span><span><span><span><span><span></span><span><span><span>12</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span><span>O</span><span><span><span><span><span><span></span><span><span>6</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span>2</span><span>A</span><span>g</span><span>(</span><span>N</span><span><span>H</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span><span>)</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>O</span><span>H</span><span></span><span><span><span><span><span><span></span><span><span><span>水浴加热</span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span></span><span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span><span></span><span><span>C</span><span><span><span><span><span><span></span><span><span>6</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span><span>H</span><span><span><span><span><span><span></span><span><span><span>15</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>N</span><span><span>O</span><span><span><span><span><span><span></span><span><span>7</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span>2</span><span>A</span><span>g</span><span></span><span>↓</span><span></span></span><span><span></span><span>+</span><span>3</span><span>N</span><span><span>H</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>↑</span><span></span></span><span><span></span><span>+</span><span><span>H</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>O</span></span></span></span></span><aside>
💡 备注：避免歧义，$C_6H_{12}O_6$指的是葡萄糖，$C_6H_{15}NO_7$指的是葡萄糖酸铵。</aside><p>此外，在本实验中还涉及到银氨溶液的配制、氨水络合性的问题，在此不过多赘述，这里给出一系列的反应方程式，读者可以自行研究，原理并不复杂。</p></section><section><h3><strong>银氨溶液的配制反应方程式</strong><a href="#银氨溶液的配制反应方程式"><span>#</span></a></h3><span><span><span>AgNO3+NH4OH=NH4NO3+AgOH↓AgNO_3+NH_4OH \xlongequal[\quad\quad]{} NH_4NO_3+AgOH\downarrow</span><span><span><span></span><span>A</span><span>g</span><span>N</span><span><span>O</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span>N</span><span><span>H</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>O</span><span>H</span><span></span><span><span><span><span><span><span></span><span><span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span></span><span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span><span></span><span>N</span><span><span>H</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>N</span><span><span>O</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span>A</span><span>g</span><span>O</span><span>H</span><span></span><span>↓</span></span></span></span></span><span><span><span>2AgOH=Ag2O+H2O（AgOH不稳定常温便分解）2AgOH \xlongequal[\quad\quad]{} Ag_2O+H_2O（AgOH不稳定常温便分解）</span><span><span><span></span><span>2</span><span>A</span><span>g</span><span>O</span><span>H</span><span></span><span><span><span><span><span><span></span><span><span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span></span><span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span><span></span><span>A</span><span><span>g</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>O</span><span></span><span>+</span><span></span></span><span><span></span><span><span>H</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>O</span><span>（</span><span>A</span><span>g</span><span>O</span><span>H</span><span>不稳定常温便分解）</span></span></span></span></span><span><span><span>Ag2O+NH4OH=2[Ag(NH3)2]OH+3H2OAg_2O+NH_4OH \xlongequal[\quad\quad]{} 2[Ag(NH_3)_2]OH+3H_2O</span><span><span><span></span><span>A</span><span><span>g</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>O</span><span></span><span>+</span><span></span></span><span><span></span><span>N</span><span><span>H</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>O</span><span>H</span><span></span><span><span><span><span><span><span></span><span><span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span></span><span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span><span></span><span>2</span><span>[</span><span>A</span><span>g</span><span>(</span><span>N</span><span><span>H</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span><span>)</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>]</span><span>O</span><span>H</span><span></span><span>+</span><span></span></span><span><span></span><span>3</span><span><span>H</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>O</span></span></span></span></span></section></section>
<section><h1>II.实验步骤<a href="#ii实验步骤"><span>#</span></a></h1><section><h2>1.常温葡萄糖法<a href="#1常温葡萄糖法"><span>#</span></a></h2><section><h3>a.实验所需药品<a href="#a实验所需药品"><span>#</span></a></h3><p>1.葡萄糖（固体）</p><p>2.稀氨水</p><p>3.硝酸银（2%溶液）</p><p>4.蒸馏水</p></section><section><h3>b.实验步骤<a href="#b实验步骤"><span>#</span></a></h3><p>**STEP 1.**配制5%的葡萄糖溶液，备用；</p><p>**STEP 2.**加入适量的硝酸银溶液；</p><p>**STER 3.**用胶头滴管逐滴滴加氨水，直至沉淀全部溶解；</p><p>**STEP 4.**倒入约银氨溶液<span><span>13\frac{1}{3}</span><span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span>3</span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span>1</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span></span></span></span>的葡萄糖；</p><p>**STEP 5.**等待银镜生成，实验结束。</p></section></section><section><h2>2.碱性葡萄糖法<a href="#2碱性葡萄糖法"><span>#</span></a></h2><section><h3>a.实验所需药品<a href="#a实验所需药品-1"><span>#</span></a></h3><p>1.葡萄糖（固体）</p><p>2.稀氨水</p><p>3.硝酸银（2%溶液）</p><p>4.氢氧化钠（固体）</p><p>5.蒸馏水</p></section><section><h3>b.实验步骤<a href="#b实验步骤-1"><span>#</span></a></h3><p>**STEP 1.**配制5%的葡萄糖溶液，加入一定量的氢氧化钠，备用；</p><p>**STEP 2.**加入适量的硝酸银溶液；</p><p>**STER 3.**用胶头滴管逐滴滴加氨水，直至沉淀全部溶解；</p><p>**STEP 4.**倒入适量的碱性葡萄糖溶液；</p><p>**STEP 5.**等待银镜生成，试验结束。</p><aside>
💡 “一定量”和“适量”均未知，我没有成功试出量的多少，读者可以参考其他人的数据，此处只提供一个思路，但是切记碱不要加太多，还原性过强可能导致银单质直接以粉末状的形式快速被还原出来，来不及形成银镜。</aside></section></section><section><h2>3.水浴加热法<a href="#3水浴加热法"><span>#</span></a></h2><p>与<strong>法1：常温葡萄糖法</strong>完全相同，只是在成镜的时候给容器进行水域加热，这种办法制造的银镜上的银单质容易脱落，读者可以自行阅读**《普通高中教科书·化学选择性必修3 有机化学基础》（人教版）**来了解反应过程，原理都是相同的。</p></section></section>
<section><h1>III.可选操作<a href="#iii可选操作"><span>#</span></a></h1><section><h2>1.玻璃反应容器清洁<a href="#1玻璃反应容器清洁"><span>#</span></a></h2><p>**STEP 1.**用蒸馏水洗涤玻璃反应容器；</p><p>**STEP 2.**用氢氧化钠溶液洗涤玻璃反应容器，作用1分钟；</p><p>**STEP 3.**再次用蒸馏水洗涤玻璃反应容器；</p><p>**STEP 4.**用盐酸洗涤玻璃反应容器，作用1分钟；</p><p>**STEP 5.**再次用蒸馏水彻底洗涤干净玻璃反应容器。</p></section><section><h2>2.玻璃反应容器敏化<a href="#2玻璃反应容器敏化"><span>#</span></a></h2><p>**STEP 1.**完成“玻璃反应容器清洁”部分的操作；</p><p>**STEP 2.**倒入氯化亚锡溶液，作用1分钟；</p><p>**STEP 3.**用蒸馏水彻底洗涤干净玻璃反应容器。</p></section><section><h2>3.实验成品永久保存<a href="#3实验成品永久保存"><span>#</span></a></h2><p>**STEP 1.**用蒸馏水洗涤反应后的容器2-3次；</p><p>**STEP 2.**倒入液体石蜡，装满以防止银脱落，并密封保存。</p></section></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.linyunlink.top/posts/240503/</id>
      <title type="text">“秦九韶—海伦公式”的向量法证明</title>
      <published>2024-05-03T00:00:00.000Z</published>
      <updated>2024-05-03T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/240503/"/>
      <summary type="text">也许你已经知道如何用几何法证明了，但是你也许不知道向量法也可以</summary>
      <content type="html"><![CDATA[<p>阅读本文之前请确保你知道向量相乘内积的定义式的含义，公式如下：</p>
<span><span><span>a⃗⋅b⃗=∣a⃗∣∣b⃗∣cos&lt;a⃗,b⃗&gt;\vec a \cdot \vec b = |\vec a||\vec b|cos\left&lt; \vec a, \vec b \right&gt; \\
</span><span><span><span></span><span><span><span><span><span><span></span><span>a</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span></span><span>⋅</span><span></span></span><span><span></span><span><span><span><span><span><span></span><span>b</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span>∣</span><span><span><span><span><span><span></span><span>a</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span>∣∣</span><span><span><span><span><span><span></span><span>b</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span>∣</span><span>cos</span><span></span><span><span><span>⟨</span></span><span><span><span><span><span><span></span><span>a</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span>,</span><span></span><span><span><span><span><span><span></span><span>b</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span><span>⟩</span></span></span></span><span></span></span></span></span>
<section><h2>公式证明：<a href="#公式证明"><span>#</span></a></h2><p></p><figure><img src="https://image.linyunlink.top/240503/01.jpg" alt="三角形ABC" /><figcaption>三角形ABC</figcaption></figure><p></p><p>对于<span><span>ΔABC\Delta ABC</span><span><span><span></span><span>Δ</span><span>A</span><span>B</span><span>C</span></span></span></span>，不妨设<span><span>BC=a,CA=b,AB=c,BC→=a⃗,CA→=b⃗,AB→=c⃗BC=a,CA=b,AB=c,\overrightarrow {BC}=\vec a,\overrightarrow {CA}=\vec b,\overrightarrow {AB}=\vec c</span><span><span><span></span><span>B</span><span>C</span><span></span><span>=</span><span></span></span><span><span></span><span>a</span><span>,</span><span></span><span>C</span><span>A</span><span></span><span>=</span><span></span></span><span><span></span><span>b</span><span>,</span><span></span><span>A</span><span>B</span><span></span><span>=</span><span></span></span><span><span></span><span>c</span><span>,</span><span></span><span><span><span><span><span><span></span><span><span>B</span><span>C</span></span></span><span><span></span><span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span><span><span><span><span></span><span>a</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span>,</span><span></span><span><span><span><span><span><span></span><span><span>C</span><span>A</span></span></span><span><span></span><span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span><span><span><span><span></span><span>b</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span>,</span><span></span><span><span><span><span><span><span></span><span><span>A</span><span>B</span></span></span><span><span></span><span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span><span><span><span><span></span><span>c</span></span><span><span></span><span><span></span></span></span></span></span></span></span></span></span></span></p><p>则由三角形面积公式：<span><span>S=12bc⋅sinAS=\frac{1}{2}bc\sdot sinA</span><span><span><span></span><span>S</span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span>2</span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span>1</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span>b</span><span>c</span><span></span><span>⋅</span><span></span></span><span><span></span><span>s</span><span>in</span><span>A</span></span></span></span></p><p>得<span><span>S2=14b2c2⋅sin2AS^2=\frac{1}{4}b^2c^2\sdot sin^2A</span><span><span><span></span><span><span>S</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span>4</span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span>1</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span><span>b</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span><span>c</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span></span><span>⋅</span><span></span></span><span><span></span><span>s</span><span>i</span><span><span>n</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span>A</span></span></span></span></p><p><span><span>∴S2=14b2c2⋅(1−cos2A)\therefore S^2=\frac{1}{4}b^2c^2\sdot (1-cos^2A)</span><span><span><span></span><span>∴</span><span></span></span><span><span></span><span><span>S</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span>4</span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span>1</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span><span>b</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span><span>c</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span></span><span>⋅</span><span></span></span><span><span></span><span>(</span><span>1</span><span></span><span>−</span><span></span></span><span><span></span><span>co</span><span><span>s</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span>A</span><span>)</span></span></span></span></p><p>由内积定义式，有：<span><span>cosA=(−b⃗)⋅c⃗∣−b⃗∣∣c⃗∣cosA=\frac{(-\vec b)\sdot\vec c}{|-\vec b||\vec c|}</span><span><span><span></span><span>cos</span><span>A</span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span>∣</span><span>−</span><span><span><span><span><span><span></span><span>b</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span>∣∣</span><span><span><span><span><span><span></span><span>c</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span>∣</span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span>(</span><span>−</span><span><span><span><span><span><span></span><span>b</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span>)</span><span>⋅</span><span><span><span><span><span><span></span><span>c</span></span><span><span></span><span><span></span></span></span></span></span></span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span></span></span></span></p><p><span><span>∵b⃗+c⃗=−a⃗\because \vec b+\vec c=-\vec a</span><span><span><span></span><span>∵</span><span></span></span><span><span></span><span><span><span><span><span><span></span><span>b</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span><span><span><span><span><span></span><span>c</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span>−</span><span><span><span><span><span><span></span><span>a</span></span><span><span></span><span><span></span></span></span></span></span></span></span></span></span></span></p><p><span><span>∴(b⃗+c⃗)2=∣b⃗∣2+∣c⃗∣2+2b⃗⋅c⃗=∣a⃗∣2\therefore (\vec b+\vec c)^2=|\vec b|^2+|\vec c|^2+2\vec b\sdot\vec c=|\vec a|^2</span><span><span><span></span><span>∴</span><span></span></span><span><span></span><span>(</span><span><span><span><span><span><span></span><span>b</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span><span><span><span><span><span></span><span>c</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span><span>)</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span>∣</span><span><span><span><span><span><span></span><span>b</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span><span>∣</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span>∣</span><span><span><span><span><span><span></span><span>c</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span><span>∣</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span>2</span><span><span><span><span><span><span></span><span>b</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span></span><span>⋅</span><span></span></span><span><span></span><span><span><span><span><span><span></span><span>c</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span>∣</span><span><span><span><span><span><span></span><span>a</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span><span>∣</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span></span></span></span></p><p><span><span>∴b⃗⋅c⃗=12(a2−b2−c2)\therefore\vec b\sdot\vec c=\frac{1}{2}(a^2-b^2-c^2)</span><span><span><span></span><span>∴</span><span></span></span><span><span></span><span><span><span><span><span><span></span><span>b</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span></span><span>⋅</span><span></span></span><span><span></span><span><span><span><span><span><span></span><span>c</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span>2</span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span>1</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span>(</span><span><span>a</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span></span><span>−</span><span></span></span><span><span></span><span><span>b</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span></span><span>−</span><span></span></span><span><span></span><span><span>c</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span>)</span></span></span></span></p><p><span><span>∴cos2A=(b⃗⋅c⃗)2∣b⃗∣2∣c⃗∣2=[12(a2−b2−c2)]2b2c2=b2+c2−a24b2c2\therefore cos^2A=\frac{(\vec b\sdot\vec c)^2}{|\vec b|^2|\vec c|^2}=\frac{[\frac{1}{2}(a^2-b^2-c^2)]^2}{b^2c^2}=\frac{b^2+c^2-a^2}{4b^2c^2}</span><span><span><span></span><span>∴</span><span></span></span><span><span></span><span>co</span><span><span>s</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span>A</span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span>∣</span><span><span><span><span><span><span></span><span>b</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span><span>∣</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span>∣</span><span><span><span><span><span><span></span><span>c</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span><span>∣</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span>(</span><span><span><span><span><span><span></span><span>b</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span>⋅</span><span><span><span><span><span><span></span><span>c</span></span><span><span></span><span><span></span></span></span></span></span></span></span><span><span>)</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span><span>b</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span><span>c</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span>[</span><span><span></span><span><span><span><span><span><span></span><span><span><span>2</span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span>1</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span>(</span><span><span>a</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span>−</span><span><span>b</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span>−</span><span><span>c</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span>)</span><span><span>]</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span>4</span><span><span>b</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span><span>c</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span><span>b</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span>+</span><span><span>c</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span>−</span><span><span>a</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span></span></span></span></p><p><span><span>∴S2=14b2c2[1−(b2+c2−a2)24b2c2]\therefore S^2=\frac{1}{4}b^2c^2[1-\frac{(b^2+c^2-a^2)^2}{4b^2c^2}]</span><span><span><span></span><span>∴</span><span></span></span><span><span></span><span><span>S</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span>4</span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span>1</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span><span>b</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span><span>c</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span>[</span><span>1</span><span></span><span>−</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span>4</span><span><span>b</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span><span>c</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span>(</span><span><span>b</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span>+</span><span><span>c</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span>−</span><span><span>a</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span><span>)</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span>]</span></span></span></span></p><p><span><span>∴S2=116[4b2c2−(b2+c2−a2)2]\therefore S^2=\frac{1}{16}[4b^2c^2-(b^2+c^2-a^2)^2]</span><span><span><span></span><span>∴</span><span></span></span><span><span></span><span><span>S</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span>16</span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span>1</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span>[</span><span>4</span><span><span>b</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span><span>c</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span></span><span>−</span><span></span></span><span><span></span><span>(</span><span><span>b</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span><span>c</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span></span><span>−</span><span></span></span><span><span></span><span><span>a</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span><span>)</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span>]</span></span></span></span></p><p>因式分解后得：<span><span>S2=116(a+b+c)(a+b−c)(a+c−b)(b+c−a)S^2=\frac{1}{16}(a+b+c)(a+b-c)(a+c-b)(b+c-a)</span><span><span><span></span><span><span>S</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span>16</span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span>1</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span>(</span><span>a</span><span></span><span>+</span><span></span></span><span><span></span><span>b</span><span></span><span>+</span><span></span></span><span><span></span><span>c</span><span>)</span><span>(</span><span>a</span><span></span><span>+</span><span></span></span><span><span></span><span>b</span><span></span><span>−</span><span></span></span><span><span></span><span>c</span><span>)</span><span>(</span><span>a</span><span></span><span>+</span><span></span></span><span><span></span><span>c</span><span></span><span>−</span><span></span></span><span><span></span><span>b</span><span>)</span><span>(</span><span>b</span><span></span><span>+</span><span></span></span><span><span></span><span>c</span><span></span><span>−</span><span></span></span><span><span></span><span>a</span><span>)</span></span></span></span></p><p>我们设<span><span>a+b+c=2pa+b+c=2p</span><span><span><span></span><span>a</span><span></span><span>+</span><span></span></span><span><span></span><span>b</span><span></span><span>+</span><span></span></span><span><span></span><span>c</span><span></span><span>=</span><span></span></span><span><span></span><span>2</span><span>p</span></span></span></span>,则<span><span>p=12(a+b+c)p=\frac{1}{2}(a+b+c)</span><span><span><span></span><span>p</span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span>2</span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span>1</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span>(</span><span>a</span><span></span><span>+</span><span></span></span><span><span></span><span>b</span><span></span><span>+</span><span></span></span><span><span></span><span>c</span><span>)</span></span></span></span></p><p>那么<span><span>S2=p(p−a)(p−b)(p−c)S^2=p(p-a)(p-b)(p-c)</span><span><span><span></span><span><span>S</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span></span></span></span></span><span></span><span>=</span><span></span></span><span><span></span><span>p</span><span>(</span><span>p</span><span></span><span>−</span><span></span></span><span><span></span><span>a</span><span>)</span><span>(</span><span>p</span><span></span><span>−</span><span></span></span><span><span></span><span>b</span><span>)</span><span>(</span><span>p</span><span></span><span>−</span><span></span></span><span><span></span><span>c</span><span>)</span></span></span></span></p><p><span><span>∴S=p(p−a)(p−b)(p−c)\therefore S=\sqrt{p(p-a)(p-b)(p-c)}</span><span><span><span></span><span>∴</span><span></span></span><span><span></span><span>S</span><span></span><span>=</span><span></span></span><span><span></span><span><span><span><span><span><span></span><span><span>p</span><span>(</span><span>p</span><span></span><span>−</span><span></span><span>a</span><span>)</span><span>(</span><span>p</span><span></span><span>−</span><span></span><span>b</span><span>)</span><span>(</span><span>p</span><span></span><span>−</span><span></span><span>c</span><span>)</span></span></span><span><span></span><span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span></span></span></p><p><strong>证明完毕.</strong></p></section>
<section><h2>结论<a href="#结论"><span>#</span></a></h2><p>对于任意一个给定三边长度<span><span>a,b,ca,b,c</span><span><span><span></span><span>a</span><span>,</span><span></span><span>b</span><span>,</span><span></span><span>c</span></span></span></span>的三角形其面积都可以用以下公式求解:</p><span><span><span>S=p(p−a)(p−b)(p−c),其中p=12(a+b+c)S=\sqrt{p(p-a)(p-b)(p-c)},其中p=\frac{1}{2}(a+b+c)</span><span><span><span></span><span>S</span><span></span><span>=</span><span></span></span><span><span></span><span><span><span><span><span><span></span><span><span>p</span><span>(</span><span>p</span><span></span><span>−</span><span></span><span>a</span><span>)</span><span>(</span><span>p</span><span></span><span>−</span><span></span><span>b</span><span>)</span><span>(</span><span>p</span><span></span><span>−</span><span></span><span>c</span><span>)</span></span></span><span><span></span><span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span>,</span><span></span><span>其中</span><span>p</span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span>2</span></span></span><span><span></span><span></span></span><span><span></span><span><span>1</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span>(</span><span>a</span><span></span><span>+</span><span></span></span><span><span></span><span>b</span><span></span><span>+</span><span></span></span><span><span></span><span>c</span><span>)</span></span></span></span></span><p>注：p其实就是半周长，可以表示为<span><span>p=12Cp=\frac{1}{2}C</span><span><span><span></span><span>p</span><span></span><span>=</span><span></span></span><span><span></span><span><span></span><span><span><span><span><span><span></span><span><span><span>2</span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span>1</span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span>C</span></span></span></span></p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.linyunlink.top/posts/240502/</id>
      <title type="text">对比之下，Vercel与Netlify谁更胜一筹？</title>
      <published>2024-05-02T00:00:00.000Z</published>
      <updated>2024-05-02T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/240502/"/>
      <summary type="text">其实不管是Vercel还是Netlify，白嫖就是爽啊 [划掉]</summary>
      <content type="html"><![CDATA[<section><h2>Part 1 Netlify和Vercel是什么？<a href="#part-1-netlify和vercel是什么"><span>#</span></a></h2><p>Netlify和Vercel都是美国的托管平台，允许用户搭建一些网站前端构建，类似于Github Action的构建功能，两个公司总部均坐落于美国旧金山，市值都在20亿美元之上。两者非常相似，是白嫖客搭建博客等小项目的不二之选，使用起来操作方式也很相似，那么他们的差异是什么，谁更好用一点呢？</p></section>
<section><h2>Part 2 对比双方异同：谁更胜一筹？<a href="#part-2-对比双方异同谁更胜一筹"><span>#</span></a></h2>

<table><thead><tr><th><strong>对比项目</strong></th><th><strong>Vercel</strong></th><th><strong>Netlify</strong></th></tr></thead><tbody><tr><td>最低使用费用</td><td>FREE</td><td>FREE，但是容易产生账单</td></tr><tr><td>构建支持的平台</td><td>Github GitLab等</td><td>Github Azure DevOps等</td></tr><tr><td>免费限制的流量</td><td>不限</td><td>100 GBit/mo</td></tr><tr><td>免费构建时间限制</td><td>1000 分钟/mo</td><td>300 分钟/mo</td></tr><tr><td>国内访问速度</td><td>快</td><td>快</td></tr><tr><td>免费二级域名</td><td>vercel.app</td><td>netlify.app</td></tr><tr><td>二级域名国内可访问性</td><td>无法访问，需要域名</td><td>可以直接访问</td></tr><tr><td>站点数量上限</td><td>Unknown</td><td>500个</td></tr><tr><td>绑定域名</td><td>可以</td><td>可以</td></tr><tr><td>注册相关</td><td>可以邮箱注册和Github等第三方注册登录，不容易封号，可能会判定滥用</td><td>使用邮箱注册和其他第三方注册，国内大概率注册就封号，无法自动解除，需要人工申诉</td></tr></tbody></table></section>
<section><h2>Part 3 总结<a href="#part-3-总结"><span>#</span></a></h2><p>对比下来Vercel和Netlify有很大的相同点，也有明显的差异，对于我而言，我觉得Netlify更胜一筹，毕竟Vercel不绑定域名就访问不了vercel.app的二级域名，无形地增加了成本。虽然Netlify容易封号，但是申诉之后1天就解封了，处理速度很快，而且100Gbit/mo像这种小博客可以说是绰绰有余了。所以总得来说,还是比较推荐Netlify的。但是如果有一个自己的域名的话，Vercel的免费限制相比之下也是更少的，还需要读者自己权衡。</p><p>最后附上Vercel和Netlify的官网，读者可以自己尝试使用：</p><p>Netlify官网: <a href="https://netlify.com/" target="_blank">https://netlify.com/</a></p><p>Vercel官网: <a href="https://vercel.com/" target="_blank">https://vercel.com/</a></p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.linyunlink.top/posts/240501/</id>
      <title type="text">碱式碳酸铜的制取与性质探究</title>
      <published>2024-05-01T00:00:00.000Z</published>
      <updated>2024-05-01T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/240501/"/>
      <summary type="text">可用作颜料的碱式碳酸铜你也可以自己制取！谁不爱绿色呢awa</summary>
      <content type="html"><![CDATA[<blockquote><p>根据一年的学习、实验，实际上下文的沉降法产品为碱式硫酸铜，此处指正，还望见谅。</p></blockquote>
<p>碱式碳酸铜，俗称铜锈，是一种绿色的无定形固体，其化学式为<span><span>Cux(OH)y(CO3)z⋅nH2OCu_x(OH)_y(CO_3)_z\sdot nH_2O</span><span><span><span></span><span>C</span><span><span>u</span><span><span><span><span><span><span></span><span><span>x</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>(</span><span>O</span><span>H</span><span><span>)</span><span><span><span><span><span><span></span><span><span>y</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>(</span><span>C</span><span><span>O</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span><span>)</span><span><span><span><span><span><span></span><span><span>z</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>⋅</span><span></span></span><span><span></span><span>n</span><span><span>H</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>O</span></span></span></span>，常用作颜料，此处制取的碱式碳酸铜主要是<span><span>Cu2(OH)2CO3⋅nH2O。Cu_2(OH)_2CO_3\sdot nH_2O。</span><span><span><span></span><span>C</span><span><span>u</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>(</span><span>O</span><span>H</span><span><span>)</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>C</span><span><span>O</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>⋅</span><span></span></span><span><span></span><span>n</span><span><span>H</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>O</span><span>。</span></span></span></span></p>
<p>此处的制取使用硫酸铜溶液和碳酸氢钠溶液，反应原理可以简述为：</p>
<span><span><span>CuSO4+4NaHCO3=Cu2(OH)2CO3↓+3CO2↑+2Na2SO4+H2OCuSO_4 + 4NaHCO_3\xlongequal[\quad\quad]{}Cu_2(OH)_2CO_3\downarrow + 3CO_2\uparrow + 2Na_2SO_4 + H_2O</span><span><span><span></span><span>C</span><span>u</span><span>S</span><span><span>O</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span>4</span><span>N</span><span>a</span><span>H</span><span>C</span><span><span>O</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span><span><span><span><span><span></span><span><span></span></span></span><span><span></span><span></span></span><span><span></span><span><span><span></span><span></span></span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span><span></span></span><span><span></span><span>C</span><span><span>u</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>(</span><span>O</span><span>H</span><span><span>)</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>C</span><span><span>O</span><span><span><span><span><span><span></span><span><span>3</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>↓</span><span></span></span><span><span></span><span>+</span><span>3</span><span>C</span><span><span>O</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>↑</span><span></span></span><span><span></span><span>+</span><span>2</span><span>N</span><span><span>a</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>S</span><span><span>O</span><span><span><span><span><span><span></span><span><span>4</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span></span><span>+</span><span></span></span><span><span></span><span><span>H</span><span><span><span><span><span><span></span><span><span>2</span></span></span></span><span>​</span></span><span><span><span></span></span></span></span></span></span><span>O</span></span></span></span></span>
<p>但这个反应其实很复杂，不会直接制取到我们想要的绿色碱式碳酸铜，而是偏蓝色的沉淀，我们只需要在大量水中沉淀久置或者100℃加热就可以将其转换为绿色的碱式碳酸铜。</p>
<section><h2>制取过程<a href="#制取过程"><span>#</span></a></h2><p><strong>1.准备阶段</strong></p><p>实验药品：硫酸铜晶体、碳酸氢钠、蒸馏水</p><p>用取25g硫酸铜晶体和55g碳酸氢钠（微过量）均用水配成溶液，保证全部溶解即可。注意尽量不要使用开水配置溶液，因为碳酸氢钠遇热分解，会生成氢氧化钠和二氧化碳，会与硫酸铜生成氢氧化铜，但是只要产生的二氧化碳足够多，也可以将氢氧化铜转换为碱式碳酸铜的，但是尽可能避免。</p><p><strong>2.混合两溶液</strong></p><p>建议向碳酸氢钠溶液中加入硫酸铜溶液，因为反应过程中会产生二氧化碳气体，直接加入会喷溅，造成损失，过程中可以使用玻璃棒搅拌悬浊液。</p><p><strong>3.加热或久置</strong></p><p>100摄氏度加热悬浊液至固体全部变绿且体积急剧变小或者倾去反应后上层澄清液，加入足够多的水沉淀久置知道固体全部变绿且体积急剧缩小，相比之下久置可以是制取的碱式碳酸铜颗粒更大（未经验证，单次实验发现，可能有偶然性）。</p><p><strong>4.过滤并烘干</strong></p><p>过滤悬浊液，烘干滤渣，注意烘干温度，防止碱式碳酸铜受热分解为氧化铜、水和二氧化碳。</p><p><strong>5.完成制取</strong></p></section>
<section><h2>性质探究<a href="#性质探究"><span>#</span></a></h2><p><strong>1.碱式碳酸铜与氨水反应</strong></p><p>现象：绿色固体溶解，溶液呈深蓝色。</p><p>原理：碱式碳酸铜与氨水反应，其中的铜元素进入溶液变成铜离子，因为氨水具有络合性，生成了四氨合铜络离子，其颜色为深蓝色。</p><p><strong>2.酒精灯加热碱式碳酸铜</strong></p><p>现象：绿色固体变黑色，有无色液体生成</p><p>进一步实验：将生成气体通入澄清石灰水，有白色沉淀；将无色液体滴入无水硫酸铜中，白色粉末变蓝色；将黑色固体投入稀盐酸中，黑色固体消失，溶液呈蓝色。</p><p>结论：碱式碳酸铜受热分解为氧化铜、水和二氧化碳。</p><p><strong>3.碱式碳酸铜与酸的反应</strong></p><p>（以盐酸为例）</p><p>现象：固体溶于酸，产生无色气体，溶液变蓝色，将气体通入澄清石灰水中产生白色沉淀。</p><p>结论：碱式碳酸铜与盐酸反应生成氯化铜和二氧化碳，反应也会生成水，但无法定性地分析其生成，以为氢氧根和酸中的氢元素会生成水。</p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.linyunlink.top/posts/230723/</id>
      <title type="text">什么？你说你的Cloudflare Works无法访问？</title>
      <published>2023-07-23T00:00:00.000Z</published>
      <updated>2023-07-23T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/230723/"/>
      <summary type="text">想要知道怎么解决？看了这篇文章你就会了！如果你没有域名的话请回避。</summary>
      <content type="html"><![CDATA[<p>也许你已经看过了我关于搭建Github加速站的文章，可是你搭建完兴冲冲地打开Cloudflare提供的二级域名时，浏览器却给你一个无法连接的错误。这个时候不要慌，按照我下面的步骤就可以解决！</p>
<section><h2>解决方案<a href="#解决方案"><span>#</span></a></h2><p>1.登录到你的Cloudflare并绑定一个域名，绑定好了就像这样：</p><p></p><figure><img src="https://image.linyunlink.top/230723/01.jpg" alt="Untitled" /><figcaption>Untitled</figcaption></figure><p></p><p>2.紧接着我们进入到域名的管理界面，随后点击左侧的Workers路由;</p><p></p><figure><img src="https://image.linyunlink.top/230723/02.jpg" alt="Untitled" /><figcaption>Untitled</figcaption></figure><p></p><p>3.然后点击“添加路由”按钮，假设你的Cloudflare Workers叫做github，想要绑定到github.linyunlink.top，那么就按照下图来设置，设置好了点击保存。其他的以此类推：</p><p></p><figure><img src="https://image.linyunlink.top/230723/03.jpg" alt="Untitled" /><figcaption>Untitled</figcaption></figure><p></p><p>注意：路由一定要在结尾加上“/*”表示该域名下的其他地址都允许被访问。</p><p>4.随后添加一条DNS记录，可以借鉴下面的配置，只是当作占位用的，让Cloudflare DNS知道github这个子域可以被访问，设置好了点击保存；</p><p></p><figure><img src="https://image.linyunlink.top/230723/04.jpg" alt="Untitled" /><figcaption>Untitled</figcaption></figure><p></p><p>注意：一定要把代理状态调到已代理，就是把小云朵点亮。</p><p>到此为止，配置就完成了，打开配置好的域名，就可以访问了！是不是脑子会了手还不会，那就按照方法一步一步操作，相信你可以完成的。</p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.linyunlink.top/posts/230716/</id>
      <title type="text">使用CF Works搭建GitHub加速站</title>
      <published>2023-07-16T00:00:00.000Z</published>
      <updated>2023-07-16T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/230716/"/>
      <summary type="text">拒绝KB级别的下载速度，优雅地使用Github，重点是这完全免费，且有手就会！</summary>
      <content type="html"><![CDATA[<section><h1>I.背景介绍<a href="#i背景介绍"><span>#</span></a></h1><p>Github作为世界上最大的代码托管平台，这无异于是开发者的天堂，但是对于中国的开发者而言这却像是地狱，时不时一个Time Out（连接超时），要不然直接无法访问，令人十分抓狂。这个时候一个自己专用的加速站的出现就可以帮你解脱出来，甚至下载速度可以达到5MB/s的下载速度，拒绝KB级别的下载！下面是搭建教程</p></section>
<section><h1>II.搭建方法<a href="#ii搭建方法"><span>#</span></a></h1><p>Step 1：你需要注册一个Cloudflare账号（如有跳过此步骤）；</p><p>Step 2：创建一个Cloudflare Worker；</p><p>Step 3：对Worker的main.js进行编辑，使用如下代码；</p><div><div><div><figure><figcaption></figcaption><pre><code><div><div><div>1</div></div><div><span>// 你要镜像的网站.</span></div></div><div><div><div>2</div></div><div><span>const</span><span> </span><span>upstream</span><span> </span><span>=</span><span> </span><span>'github.com'</span></div></div><div><div><div>3</div></div><div>
</div></div><div><div><div>4</div></div><div><span>// 镜像网站的目录，比如你想镜像某个网站的二级目录则填写二级目录的目录名，镜像 google 用不到，默认即可.</span></div></div><div><div><div>5</div></div><div><span>const</span><span> </span><span>upstream_path</span><span> </span><span>=</span><span> </span><span>'/'</span></div></div><div><div><div>6</div></div><div>
</div></div><div><div><div>7</div></div><div><span>// 镜像站是否有手机访问专用网址，没有则填一样的.</span></div></div><div><div><div>8</div></div><div><span>const</span><span> </span><span>upstream_mobile</span><span> </span><span>=</span><span> </span><span>'github.com'</span></div></div><div><div><div>9</div></div><div>
</div></div><div><div><div>10</div></div><div><span>// 屏蔽国家和地区.</span></div></div><div><div><div>11</div></div><div><span>const</span><span> </span><span>blocked_region</span><span> </span><span>=</span><span> [</span><span>'KP'</span><span>, </span><span>'SY'</span><span>, </span><span>'PK'</span><span>, </span><span>'CU'</span><span>]</span></div></div><div><div><div>12</div></div><div>
</div></div><div><div><div>13</div></div><div><span>// 屏蔽 IP 地址.</span></div></div><div><div><div>14</div></div><div><span>const</span><span> </span><span>blocked_ip_address</span><span> </span><span>=</span><span> [</span><span>'0.0.0.0'</span><span>, </span><span>'127.0.0.1'</span><span>]</span></div></div><div><div><div>15</div></div><div>
</div></div><div><div><div>16</div></div><div><span>// 镜像站是否开启 HTTPS.</span></div></div><div><div><div>17</div></div><div><span>const</span><span> </span><span>https</span><span> </span><span>=</span><span> </span><span>true</span></div></div><div><div><div>18</div></div><div>
</div></div><div><div><div>19</div></div><div><span>// 文本替换.</span></div></div><div><div><div>20</div></div><div><span>const</span><span> </span><span>replace_dict</span><span> </span><span>=</span><span> {</span></div></div><div><div><div>21</div></div><div><span>    </span><span>'$upstream'</span><span>:</span><span> </span><span>'$custom_domain'</span><span>,</span></div></div><div><div><div>22</div></div><div><span>    </span><span>'//github.com'</span><span>:</span><span> </span><span>''</span></div></div><div><div><div>23</div></div><div><span>}</span></div></div><div><div><div>24</div></div><div>
</div></div><div><div><div>25</div></div><div><span>// 以下保持默认，不要动</span></div></div><div><div><div>26</div></div><div><span>addEventListener</span><span>(</span><span>'fetch'</span><span><span>, </span><span>event</span><span> </span></span><span>=&gt;</span><span> {</span></div></div><div><div><div>27</div></div><div><span><span>    </span></span><span>event</span><span>.</span><span>respondWith</span><span>(</span><span>fetchAndApply</span><span><span>(</span><span>event</span><span>.</span></span><span>request</span><span>));</span></div></div><div><div><div>28</div></div><div><span>})</span></div></div><div><div><div>29</div></div><div>
</div></div><div><div><div>30</div></div><div><span>async</span><span> </span><span>function</span><span> </span><span>fetchAndApply</span><span><span>(</span><span>request</span><span>) {</span></span></div></div><div><div><div>31</div></div><div>
</div></div><div><div><div>32</div></div><div><span>    </span><span>const</span><span> </span><span>region</span><span> </span><span>=</span><span><span> </span><span>request</span><span>.</span></span><span>headers</span><span>.</span><span>get</span><span>(</span><span>'cf-ipcountry'</span><span>).</span><span>toUpperCase</span><span>();</span></div></div><div><div><div>33</div></div><div><span>    </span><span>const</span><span> </span><span>ip_address</span><span> </span><span>=</span><span><span> </span><span>request</span><span>.</span></span><span>headers</span><span>.</span><span>get</span><span>(</span><span>'cf-connecting-ip'</span><span>);</span></div></div><div><div><div>34</div></div><div><span>    </span><span>const</span><span> </span><span>user_agent</span><span> </span><span>=</span><span><span> </span><span>request</span><span>.</span></span><span>headers</span><span>.</span><span>get</span><span>(</span><span>'user-agent'</span><span>);</span></div></div><div><div><div>35</div></div><div>
</div></div><div><div><div>36</div></div><div><span>    </span><span>let</span><span><span> </span><span>response</span><span> </span></span><span>=</span><span> </span><span>null</span><span>;</span></div></div><div><div><div>37</div></div><div><span>    </span><span>let</span><span><span> </span><span>url</span><span> </span></span><span>=</span><span> </span><span>new</span><span> </span><span>URL</span><span><span>(</span><span>request</span><span>.</span></span><span>url</span><span>);</span></div></div><div><div><div>38</div></div><div><span>    </span><span>let</span><span><span> </span><span>url_hostname</span><span> </span></span><span>=</span><span><span> </span><span>url</span><span>.</span></span><span>hostname</span><span>;</span></div></div><div><div><div>39</div></div><div>
</div></div><div><div><div>40</div></div><div><span>    </span><span>if</span><span><span> (</span><span>https</span><span> </span></span><span>==</span><span> </span><span>true</span><span>) {</span></div></div><div><div><div>41</div></div><div><span><span>        </span></span><span>url</span><span>.</span><span>protocol</span><span> </span><span>=</span><span> </span><span>'https:'</span><span>;</span></div></div><div><div><div>42</div></div><div><span><span>    </span></span><span>} </span><span>else</span><span> {</span></div></div><div><div><div>43</div></div><div><span><span>        </span></span><span>url</span><span>.</span><span>protocol</span><span> </span><span>=</span><span> </span><span>'http:'</span><span>;</span></div></div><div><div><div>44</div></div><div><span><span>    </span></span><span>}</span></div></div><div><div><div>45</div></div><div>
</div></div><div><div><div>46</div></div><div><span>    </span><span>if</span><span> (</span><span>await</span><span> </span><span>device_status</span><span><span>(</span><span>user_agent</span><span>)) {</span></span></div></div><div><div><div>47</div></div><div><span>        </span><span>var</span><span><span> </span><span>upstream_domain</span><span> </span></span><span>=</span><span><span> </span><span>upstream</span><span>;</span></span></div></div><div><div><div>48</div></div><div><span><span>    </span></span><span>} </span><span>else</span><span> {</span></div></div><div><div><div>49</div></div><div><span>        </span><span>var</span><span><span> </span><span>upstream_domain</span><span> </span></span><span>=</span><span><span> </span><span>upstream_mobile</span><span>;</span></span></div></div><div><div><div>50</div></div><div><span><span>    </span></span><span>}</span></div></div><div><div><div>51</div></div><div>
</div></div><div><div><div>52</div></div><div><span><span>    </span></span><span>url</span><span>.</span><span>host</span><span> </span><span>=</span><span><span> </span><span>upstream_domain</span><span>;</span></span></div></div><div><div><div>53</div></div><div><span>    </span><span>if</span><span><span> (</span><span>url</span><span>.</span></span><span>pathname</span><span> </span><span>==</span><span> </span><span>'/'</span><span>) {</span></div></div><div><div><div>54</div></div><div><span><span>        </span></span><span>url</span><span>.</span><span>pathname</span><span> </span><span>=</span><span><span> </span><span>upstream_path</span><span>;</span></span></div></div><div><div><div>55</div></div><div><span><span>    </span></span><span>} </span><span>else</span><span> {</span></div></div><div><div><div>56</div></div><div><span><span>        </span></span><span>url</span><span>.</span><span>pathname</span><span> </span><span>=</span><span><span> </span><span>upstream_path</span><span> </span></span><span>+</span><span><span> </span><span>url</span><span>.</span></span><span>pathname</span><span>;</span></div></div><div><div><div>57</div></div><div><span><span>    </span></span><span>}</span></div></div><div><div><div>58</div></div><div>
</div></div><div><div><div>59</div></div><div><span>    </span><span>if</span><span><span> (</span><span>blocked_region</span><span>.</span></span><span>includes</span><span><span>(</span><span>region</span><span>)) {</span></span></div></div><div><div><div>60</div></div><div><span><span>        </span></span><span>response</span><span> </span><span>=</span><span> </span><span>new</span><span> </span><span>Response</span><span>(</span><span>'Access denied: WorkersProxy is not available in your region yet.'</span><span>, {</span></div></div><div><div><div>61</div></div><div><span>            </span><span>status</span><span>:</span><span> </span><span>403</span></div></div><div><div><div>62</div></div><div><span><span>        </span></span><span>});</span></div></div><div><div><div>63</div></div><div><span><span>    </span></span><span>} </span><span>else</span><span> </span><span>if</span><span><span> (</span><span>blocked_ip_address</span><span>.</span></span><span>includes</span><span><span>(</span><span>ip_address</span><span>)) {</span></span></div></div><div><div><div>64</div></div><div><span><span>        </span></span><span>response</span><span> </span><span>=</span><span> </span><span>new</span><span> </span><span>Response</span><span>(</span><span>'Access denied: Your IP address is blocked by WorkersProxy.'</span><span>, {</span></div></div><div><div><div>65</div></div><div><span>            </span><span>status</span><span>:</span><span> </span><span>403</span></div></div><div><div><div>66</div></div><div><span><span>        </span></span><span>});</span></div></div><div><div><div>67</div></div><div><span><span>    </span></span><span>} </span><span>else</span><span> {</span></div></div><div><div><div>68</div></div><div><span>        </span><span>let</span><span><span> </span><span>method</span><span> </span></span><span>=</span><span><span> </span><span>request</span><span>.</span></span><span>method</span><span>;</span></div></div><div><div><div>69</div></div><div><span>        </span><span>let</span><span><span> </span><span>request_headers</span><span> </span></span><span>=</span><span><span> </span><span>request</span><span>.</span></span><span>headers</span><span>;</span></div></div><div><div><div>70</div></div><div><span>        </span><span>let</span><span><span> </span><span>new_request_headers</span><span> </span></span><span>=</span><span> </span><span>new</span><span> </span><span>Headers</span><span><span>(</span><span>request_headers</span><span>);</span></span></div></div><div><div><div>71</div></div><div>
</div></div><div><div><div>72</div></div><div><span><span>        </span></span><span>new_request_headers</span><span>.</span><span>set</span><span>(</span><span>'Host'</span><span><span>, </span><span>url</span><span>.</span></span><span>hostname</span><span>);</span></div></div><div><div><div>73</div></div><div><span><span>        </span></span><span>new_request_headers</span><span>.</span><span>set</span><span>(</span><span>'Referer'</span><span><span>, </span><span>url</span><span>.</span></span><span>hostname</span><span>);</span></div></div><div><div><div>74</div></div><div>
</div></div><div><div><div>75</div></div><div><span>        </span><span>let</span><span><span> </span><span>original_response</span><span> </span></span><span>=</span><span> </span><span>await</span><span> </span><span>fetch</span><span><span>(</span><span>url</span><span>.</span></span><span>href</span><span>, {</span></div></div><div><div><div>76</div></div><div><span>            </span><span>method</span><span>:</span><span><span> </span><span>method</span><span>,</span></span></div></div><div><div><div>77</div></div><div><span>            </span><span>headers</span><span>:</span><span><span> </span><span>new_request_headers</span></span></div></div><div><div><div>78</div></div><div><span><span>        </span></span><span>})</span></div></div><div><div><div>79</div></div><div>
</div></div><div><div><div>80</div></div><div><span>        </span><span>let</span><span><span> </span><span>original_response_clone</span><span> </span></span><span>=</span><span><span> </span><span>original_response</span><span>.</span></span><span>clone</span><span>();</span></div></div><div><div><div>81</div></div><div><span>        </span><span>let</span><span><span> </span><span>original_text</span><span> </span></span><span>=</span><span> </span><span>null</span><span>;</span></div></div><div><div><div>82</div></div><div><span>        </span><span>let</span><span><span> </span><span>response_headers</span><span> </span></span><span>=</span><span><span> </span><span>original_response</span><span>.</span></span><span>headers</span><span>;</span></div></div><div><div><div>83</div></div><div><span>        </span><span>let</span><span><span> </span><span>new_response_headers</span><span> </span></span><span>=</span><span> </span><span>new</span><span> </span><span>Headers</span><span><span>(</span><span>response_headers</span><span>);</span></span></div></div><div><div><div>84</div></div><div><span>        </span><span>let</span><span><span> </span><span>status</span><span> </span></span><span>=</span><span><span> </span><span>original_response</span><span>.</span></span><span>status</span><span>;</span></div></div><div><div><div>85</div></div><div>
</div></div><div><div><div>86</div></div><div><span><span>        </span></span><span>new_response_headers</span><span>.</span><span>set</span><span>(</span><span>'access-control-allow-origin'</span><span>, </span><span>'*'</span><span>);</span></div></div><div><div><div>87</div></div><div><span><span>        </span></span><span>new_response_headers</span><span>.</span><span>set</span><span>(</span><span>'access-control-allow-credentials'</span><span>, </span><span>true</span><span>);</span></div></div><div><div><div>88</div></div><div><span><span>        </span></span><span>new_response_headers</span><span>.</span><span>delete</span><span>(</span><span>'content-security-policy'</span><span>);</span></div></div><div><div><div>89</div></div><div><span><span>        </span></span><span>new_response_headers</span><span>.</span><span>delete</span><span>(</span><span>'content-security-policy-report-only'</span><span>);</span></div></div><div><div><div>90</div></div><div><span><span>        </span></span><span>new_response_headers</span><span>.</span><span>delete</span><span>(</span><span>'clear-site-data'</span><span>);</span></div></div><div><div><div>91</div></div><div>
</div></div><div><div><div>92</div></div><div><span>        </span><span>const</span><span> </span><span>content_type</span><span> </span><span>=</span><span><span> </span><span>new_response_headers</span><span>.</span></span><span>get</span><span>(</span><span>'content-type'</span><span>);</span></div></div><div><div><div>93</div></div><div><span>        </span><span>if</span><span><span> (</span><span>content_type</span><span>.</span></span><span>includes</span><span>(</span><span>'text/html'</span><span>) </span><span>&amp;&amp;</span><span><span> </span><span>content_type</span><span>.</span></span><span>includes</span><span>(</span><span>'UTF-8'</span><span>)) {</span></div></div><div><div><div>94</div></div><div><span><span>            </span></span><span>original_text</span><span> </span><span>=</span><span> </span><span>await</span><span> </span><span>replace_response_text</span><span><span>(</span><span>original_response_clone</span><span>, </span><span>upstream_domain</span><span>, </span><span>url_hostname</span><span>);</span></span></div></div><div><div><div>95</div></div><div><span><span>        </span></span><span>} </span><span>else</span><span> {</span></div></div><div><div><div>96</div></div><div><span><span>            </span></span><span>original_text</span><span> </span><span>=</span><span><span> </span><span>original_response_clone</span><span>.</span></span><span>body</span></div></div><div><div><div>97</div></div><div><span><span>        </span></span><span>}</span></div></div><div><div><div>98</div></div><div>
</div></div><div><div><div>99</div></div><div><span><span>        </span></span><span>response</span><span> </span><span>=</span><span> </span><span>new</span><span> </span><span>Response</span><span><span>(</span><span>original_text</span><span>, {</span></span></div></div><div><div><div>100</div></div><div><span><span>            </span></span><span>status</span><span>,</span></div></div><div><div><div>101</div></div><div><span>            </span><span>headers</span><span>:</span><span><span> </span><span>new_response_headers</span></span></div></div><div><div><div>102</div></div><div><span><span>        </span></span><span>})</span></div></div><div><div><div>103</div></div><div><span><span>    </span></span><span>}</span></div></div><div><div><div>104</div></div><div><span>    </span><span>return</span><span><span> </span><span>response</span><span>;</span></span></div></div><div><div><div>105</div></div><div><span>}</span></div></div><div><div><div>106</div></div><div>
</div></div><div><div><div>107</div></div><div><span>async</span><span> </span><span>function</span><span> </span><span>replace_response_text</span><span><span>(</span><span>response</span><span>, </span><span>upstream_domain</span><span>, </span><span>host_name</span><span>) {</span></span></div></div><div><div><div>108</div></div><div><span>    </span><span>let</span><span><span> </span><span>text</span><span> </span></span><span>=</span><span> </span><span>await</span><span><span> </span><span>response</span><span>.</span></span><span>text</span><span>()</span></div></div><div><div><div>109</div></div><div>
</div></div><div><div><div>110</div></div><div><span>    </span><span>var</span><span><span> </span><span>i</span><span>, </span><span>j</span><span>;</span></span></div></div><div><div><div>111</div></div><div><span>    </span><span>for</span><span><span> (</span><span>i</span><span> </span></span><span>in</span><span><span> </span><span>replace_dict</span><span>) {</span></span></div></div><div><div><div>112</div></div><div><span><span>        </span></span><span>j</span><span> </span><span>=</span><span><span> </span><span>replace_dict</span><span>[</span><span>i</span><span>]</span></span></div></div><div><div><div>113</div></div><div><span>        </span><span>if</span><span><span> (</span><span>i</span><span> </span></span><span>==</span><span> </span><span>'$upstream'</span><span>) {</span></div></div><div><div><div>114</div></div><div><span><span>            </span></span><span>i</span><span> </span><span>=</span><span><span> </span><span>upstream_domain</span></span></div></div><div><div><div>115</div></div><div><span><span>        </span></span><span>} </span><span>else</span><span> </span><span>if</span><span><span> (</span><span>i</span><span> </span></span><span>==</span><span> </span><span>'$custom_domain'</span><span>) {</span></div></div><div><div><div>116</div></div><div><span><span>            </span></span><span>i</span><span> </span><span>=</span><span><span> </span><span>host_name</span></span></div></div><div><div><div>117</div></div><div><span><span>        </span></span><span>}</span></div></div><div><div><div>118</div></div><div>
</div></div><div><div><div>119</div></div><div><span>        </span><span>if</span><span><span> (</span><span>j</span><span> </span></span><span>==</span><span> </span><span>'$upstream'</span><span>) {</span></div></div><div><div><div>120</div></div><div><span><span>            </span></span><span>j</span><span> </span><span>=</span><span><span> </span><span>upstream_domain</span></span></div></div><div><div><div>121</div></div><div><span><span>        </span></span><span>} </span><span>else</span><span> </span><span>if</span><span><span> (</span><span>j</span><span> </span></span><span>==</span><span> </span><span>'$custom_domain'</span><span>) {</span></div></div><div><div><div>122</div></div><div><span><span>            </span></span><span>j</span><span> </span><span>=</span><span><span> </span><span>host_name</span></span></div></div><div><div><div>123</div></div><div><span><span>        </span></span><span>}</span></div></div><div><div><div>124</div></div><div>
</div></div><div><div><div>125</div></div><div><span>        </span><span>let</span><span><span> </span><span>re</span><span> </span></span><span>=</span><span> </span><span>new</span><span> </span><span>RegExp</span><span><span>(</span><span>i</span><span>, </span></span><span>'g'</span><span>)</span></div></div><div><div><div>126</div></div><div><span><span>        </span></span><span>text</span><span> </span><span>=</span><span><span> </span><span>text</span><span>.</span></span><span>replace</span><span><span>(</span><span>re</span><span>, </span><span>j</span><span>);</span></span></div></div><div><div><div>127</div></div><div><span><span>    </span></span><span>}</span></div></div><div><div><div>128</div></div><div><span>    </span><span>return</span><span><span> </span><span>text</span><span>;</span></span></div></div><div><div><div>129</div></div><div><span>}</span></div></div><div><div><div>130</div></div><div>
</div></div><div><div><div>131</div></div><div><span>async</span><span> </span><span>function</span><span> </span><span>device_status</span><span><span>(</span><span>user_agent_info</span><span>) {</span></span></div></div><div><div><div>132</div></div><div><span>    </span><span>var</span><span><span> </span><span>agents</span><span> </span></span><span>=</span><span> [</span><span>"Android"</span><span>, </span><span>"iPhone"</span><span>, </span><span>"SymbianOS"</span><span>, </span><span>"Windows Phone"</span><span>, </span><span>"iPad"</span><span>, </span><span>"iPod"</span><span>];</span></div></div><div><div><div>133</div></div><div><span>    </span><span>var</span><span><span> </span><span>flag</span><span> </span></span><span>=</span><span> </span><span>true</span><span>;</span></div></div><div><div><div>134</div></div><div><span>    </span><span>for</span><span> (</span><span>var</span><span><span> </span><span>v</span><span> </span></span><span>=</span><span> </span><span>0</span><span><span>; </span><span>v</span><span> </span></span><span>&lt;</span><span><span> </span><span>agents</span><span>.</span></span><span>length</span><span><span>; </span><span>v</span></span><span>++</span><span>) {</span></div></div><div><div><div>135</div></div><div><span>        </span><span>if</span><span><span> (</span><span>user_agent_info</span><span>.</span></span><span>indexOf</span><span><span>(</span><span>agents</span><span>[</span><span>v</span><span>]) </span></span><span>&gt;</span><span> </span><span>0</span><span>) {</span></div></div><div><div><div>136</div></div><div><span><span>            </span></span><span>flag</span><span> </span><span>=</span><span> </span><span>false</span><span>;</span></div></div><div><div><div>137</div></div><div><span>            </span><span>break</span><span>;</span></div></div><div><div><div>138</div></div><div><span><span>        </span></span><span>}</span></div></div><div><div><div>139</div></div><div><span><span>    </span></span><span>}</span></div></div><div><div><div>140</div></div><div><span>    </span><span>return</span><span><span> </span><span>flag</span><span>;</span></span></div></div><div><div><div>141</div></div><div><span>}</span></div></div></code></pre><div><div></div><div></div></div></figure><div></div></div><span>展开</span><span>收起</span></div></div><p>Step 4：自行修改调试后，保存配置；</p><p>Step 5：进入Worker提供的链接即可享用！</p></section>
<section><h1>III.其他问题<a href="#iii其他问题"><span>#</span></a></h1><ul>
<li>
<p>Q: CF Worker的链接无法访问怎么解决?</p>
<p>由于中国大陆的DNS污染.work均无法正常访问，最简单的方法就是在Cloudflare上套一个自己的域名，然后绑定Worker路由，然后再创建一个随意解析的CNAME记录与Worker路由的二级域名相同来使其生效。</p>
</li>
<li>
<p>Q: 项目的原理是什么？</p>
<p>其实就是反代，这里使用了Cloudflare免费的Woker来处理，走了Cloudflare的国外服务器的流量，然后发送到自己的主机上，理论上就可以加速所有国外网站，比如Google。但是这样的话是无法登录账号的。</p>
</li>
<li>
<p>Q: 使用CF Worker免费吗？</p>
<p>免费的，但是中国大陆使用还需要准备一个域名。</p>
</li>
<li>
<p>Q: 使用CF Worker有什么限制吗？</p>
<p>当然，天下没有免费的午餐，Cloudflare Worker免费计划只能每天每个账户10,000次请求，还限制了CPU时间，但是个人使用这些额度可以说是绰绰有余了。</p>
</li>
</ul><p>好了，以上就是本文的全部内容了。但是有一句话希望大家牢记：技术不用用在违法的事情上。</p></section>]]></content>
    </entry>
    <entry>
      <id>https://blog.linyunlink.top/posts/hello-world/</id>
      <title type="text">Hello World!</title>
      <published>2022-05-16T00:00:00.000Z</published>
      <updated>2022-05-16T00:00:00.000Z</updated>
      <author><name>雪野和花</name></author>
      <link rel="alternate" href="https://blog.linyunlink.top/posts/hello-world/"/>
      <summary type="text">过去，现在，未来……</summary>
      <content type="html"><![CDATA[<p>Hello World!（你好，世界！）</p>
<p>这里是终点，也是起点。</p>
<p>过去已经成为了过去，</p>
<p>但是未来永远是未来，</p>
<p>你和所有人都拥有她</p>
<p>——也只拥有她</p>
<p>——她就是现在啊！</p>
<p>不要过多流连过去，</p>
<p>不要过分展望未来。</p>
<p>现在，就是现在，</p>
<p>和我一起高呼吧！</p>
<p>你好，世界！</p>]]></content>
    </entry>
</feed>
