mirror of
https://github.com/DefectingCat/DefectingCat.github.io
synced 2025-07-16 01:01:38 +00:00
5 lines
25 KiB
HTML
5 lines
25 KiB
HTML
<!DOCTYPE html><html lang="zh-CN" data-default-color-scheme=""auto""><head><meta charset="UTF-8"><link rel="apple-touch-icon" sizes="76x76" href="/images/img/apple-touch-icon.webp"><link rel="icon" type="image/png" href="/images/img/favicon.webp"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no,shrink-to-fit=no"><meta http-equiv="x-ua-compatible" content="ie=edge"><meta name="theme-color" content="#9DC8C8"><meta name="description" content=""><meta name="author" content="Defectink"><meta name="keywords" content=""><title>入坑IRC - 🍭Defectink</title><link rel="stylesheet" href="https://cdn.defectink.com/static/twitter-bootstrap/4.5.3/css/bootstrap.min.css"><link rel="stylesheet" href="https://cdn.defectink.com/static/github-markdown-css/4.0.0/github-markdown.min.css"><link rel="stylesheet" href="/lib/hint/hint.min.css"><link rel="stylesheet" href="https://cdn.defectink.com/static/highlight.js/10.0.0/styles/github-gist.min.css"><link rel="stylesheet" href="//at.alicdn.com/t/font_1749284_ba1fz6golrf.css"><link rel="stylesheet" href="https://cdn.defectink.com/static/t/font_1736178_kmeydafke9r.css"><link rel="stylesheet" href="/css/main.css"><link rel="stylesheet" href="/css/xfy.css"><script src="/js/utils.js"></script><script src="/js/color-schema.js"></script><meta name="generator" content="Hexo 5.2.0"><link rel="alternate" href="/xml/atom.xml" title="🍭Defectink" type="application/atom+xml"><link rel="alternate" href="/xml/rss.xml" title="🍭Defectink" type="application/rss+xml"></head><body><header style="height:75vh"><nav id="navbar" class="navbar fixed-top navbar-expand-lg navbar-dark scrolling-navbar"><div class="container"><a class="navbar-brand" href="/"> <strong>🍭Defectink</strong> </a> <button id="navbar-toggler-btn" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"><div class="animated-icon"><span></span><span></span><span></span></div></button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav ml-auto text-center"><li class="nav-item"><a class="nav-link" href="/">🏠 首页</a></li><li class="nav-item dropdown"><a class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">📕 索引</a><div class="dropdown-menu" aria-labelledby="navbarDropdown"><a class="dropdown-item" href="/categories/">🎁 分类</a> <a class="dropdown-item" href="/tags/">🎐 标签</a></div></li><li class="nav-item"><a class="nav-link" href="/archives/">📂 归档</a></li><li class="nav-item"><a class="nav-link" href="/about/">🎃 关于</a></li><li class="nav-item"><a class="nav-link" href="/links/">🙆♀️ 小伙伴</a></li><li class="nav-item"><a class="nav-link" href="/pgp/">🔐 PGP</a></li><li class="nav-item" id="search-btn"><a class="nav-link" data-toggle="modal" data-target="#modalSearch"> <i class="iconfont icon-search"></i> </a></li><li class="nav-item" id="color-toggle-btn"><a class="nav-link" href="javascript:"> <i class="iconfont icon-dark" id="color-toggle-icon"></i> </a></li></ul></div></div></nav><div class="banner intro-2" id="background" parallax="true" style="background:url(/images/img/post.webp) no-repeat center center;background-size:cover"><div class="full-bg-img"><div class="mask flex-center" style="background-color:rgba(0,0,0,.3)"><div class="container page-header text-center fade-in-up"><span class="h2" id="subtitle"></span><div class="mt-3"><span class="post-meta mr-2"><i class="iconfont icon-author" aria-hidden="true"></i> Defectink</span><span class="post-meta"><i class="iconfont icon-date-fill" aria-hidden="true"></i> <time datetime="2020-08-22 18:37" pubdate>2020年8月22日 晚上</time></span></div><div class="mt-1"><span class="post-meta mr-2"><i class="iconfont icon-chart"></i> 2k 字</span><span class="post-meta mr-2"><i class="iconfont icon-clock-fill"></i> 26 分钟</span></div></div></div></div></div></header><main><div class="container-fluid"><div class="row"><div class="d-none d-lg-block col-lg-2"></div><div class="col-lg-8 nopadding-md"><div class="container nopadding-md" id="board-ctn"><div class="py-5" id="board"><article class="post-content mx-auto" id="post"><h1 style="display:none">入坑IRC</h1><p class="note note-info">本文最后水于:2020年11月2日 凌晨</p><div class="markdown-body" id="post-body"><h2 id="IRC"><a href="#IRC" class="headerlink" title="IRC"></a>IRC</h2><p>IRC的全称为Internet Relay Chat,是一种应用层的协议。主要用于聊天,是早期互联网中主流的聊天工具,在今天依然也有不少人活跃。要使用它需要使用客户端来连接到服务器。</p><h2 id="IRC的组成"><a href="#IRC的组成" class="headerlink" title="IRC的组成"></a>IRC的组成</h2><h3 id="服务器"><a href="#服务器" class="headerlink" title="服务器"></a>服务器</h3><p>IRC是一个分布式的C/S架构。通过连接到一个服务器,就可以访问其连接的其他服务器上的频道。目前常见的有<code>irc.freenode.net</code>。</p><h3 id="频道"><a href="#频道" class="headerlink" title="频道"></a>频道</h3><p>频道存在于一个IRC服务器上。一个频道类似于一个聊天室,频道名称必须以#符号开始,例如#irchelp。</p><h3 id="客户端"><a href="#客户端" class="headerlink" title="客户端"></a>客户端</h3><p>客户端用于连接至服务器,目前有很多种基于字符/GUI的跨平台软件。我用的是HexChat,一款基于GUI的软件。</p><h2 id="使用"><a href="#使用" class="headerlink" title="使用"></a>使用</h2><p>简单的了解了IRC是一款用于聊天的应用协议之后,就是开始使用了。既然是基于C/S架构的,那么首先是准备好自己的客户端。我挑了一个常见的GUI客户端:HexChat。</p><h3 id="昵称注册"><a href="#昵称注册" class="headerlink" title="昵称注册"></a>昵称注册</h3><p>IRC并不像现代的聊天软件一样,需要先注册账号才能使用。它可以输入一个昵称后就进入服务器的频道内与人聊天。而昵称任然是需要唯一的,所以想要使用自己的昵称而不被别人占用,就需要注册昵称。类似于注册账号,基于邮箱与密码。</p><p>注册过程很简单,首先需要在聊天窗口中输入注册的命令:</p><pre><code class="hljs cpp">/msg nickserv <span class="hljs-keyword">register</span> password email</code></pre><p>因为是在聊天框里输入命令,所以一定要注意命令格式,否则一不小心可能就会将明文的密码发到频道里。在注册昵称时推荐不加入任何频道,这样就不会不小心发出去了。</p><p>输入注册命令后就会收到认证的邮件,邮件大概是这样的(freenode):</p><p><img src="../images/%E5%85%A5%E5%9D%91IRC/2020-08-22-11-55-07.webp" srcset="/images/img/loading.gif"></p><p>将邮件里的内容再输入一遍就注册完成了。</p><pre><code class="hljs markdown">/msg NickServ VERIFY REGISTER Defectink hr<span class="hljs-strong">****</span><span class="hljs-strong">****</span><span class="hljs-emphasis">*</span></code></pre><h3 id="认证"><a href="#认证" class="headerlink" title="认证"></a>认证</h3><p>当注册昵称过后,下次再使用这个昵称登录的时候就需要认证了。使用同样的<code>/msg</code>来进行认证:</p><pre><code class="hljs jboss-cli"><span class="hljs-string">/msg</span> nickserv identify password</code></pre><p>另一种说明身份的方法是设置服务器密码为您注册时提供的密码。</p><p>还可以对昵称设置进行保护,即在登录认证时,必须在30秒内向服务器表明身份,否则就强制改为其他昵称,并在一段时间内禁止此人使用此昵称(即便是在说明身份后)。在任意窗口中键入:<code>/msg nickserv set enforce on</code>。如果你登陆时在30秒内未能表明身份且被改为其他名字,请在改回原有名称前,输入<code>/msg nickserv release username password</code>以解除。</p><h3 id="SASL"><a href="#SASL" class="headerlink" title="SASL"></a>SASL</h3><p>不少 IRC 客户端都支持使用 SASL 自动登录。只需找到相应的选项,在 SASL 用户名密码部分分别填入自己的昵称和NickServ密码,就可以获得自动登录的效果。</p><p>不同的客户端有不同的设置方法,文档也很多。这是对于HexCaht的:</p><ol><li>Open the Network List (Ctrl + S)</li><li>The freenode network may already exist; find it in the list then click on Edit</li><li>In the <code>User name</code> field, enter your primary nick</li><li>Select <code>SASL (username + password)</code> for the <code>Login method</code> field</li><li>In the <code>Password</code> field, enter your NickServ password</li></ol><p><img src="../images/%E5%85%A5%E5%9D%91IRC/2020-08-22-15-28-26.webp" srcset="/images/img/loading.gif"></p><h2 id="频道-1"><a href="#频道-1" class="headerlink" title="频道"></a>频道</h2><p>以#号开头的字符串就是频道名,可以使用命令<code>/join</code>来加入频道。</p><p><code>/join #archlinux-cn</code></p><h3 id="建立频道"><a href="#建立频道" class="headerlink" title="建立频道"></a>建立频道</h3><p>创建频道同样也是使用<code>/join</code>来创建,如果创建的频道已经存在,则直接进入。建立频道可用于与自己的小伙伴聊天,也可以用于熟悉频道命令。</p><p>如果频道成功建立,那么我们就会成为频道的管理员。因为频道名和昵称一样需要具有唯一性,所以频道也需要注册。</p><p><code>/msg ChanServ REGISTER <#channel> <passwd></code></p><p>一般频道都通过ChanServ这个机器人管理.</p><p><code>/msg ChanServ SET <频道名> GUARD ON</code></p><p>在已注册的频道上委任管理员OP</p><p><code>/msg ChanServ op #xfy Defectink</code></p><p>设置频道简介</p><p><code>/topic <your_topic></code></p><h3 id="频道模式"><a href="#频道模式" class="headerlink" title="频道模式"></a>频道模式</h3><p>频道的模式用于设置频道的一些功能与限制。通过<code>/mode #channel</code>来列出频道模式,通过<code>/msg chanserv info #channel</code>来列出有MLOCK的模式。</p><p>使用<code>/mode #channel +(mode)</code>或者<code>/mode #channel -(mode)</code>来增加或删除模式。带有MLOCK的模式需要使用<code>/msg ChanServ SET #foo MLOCK +c</code></p><p>一些常用的模式:</p><table><thead><tr><th align="left">Mode(name)</th><th>Description</th></tr></thead><tbody><tr><td align="left">b (channel ban)</td><td>Prevent users from joining or speaking. Sending /mode #channel +b alone will return the current ban list. While on the channel, banned users will be unable to send to the channel or change nick. The most common form for a ban is +b nick!user@host. The wildcards * and ? are allowed, matching zero-or-more and exactly-one characters, respectively. Bans set on IP addresses will apply even if the affected user joins with a resolved or cloaked hostname. CIDR notation is supported in bans. The second form can be used for bans based on user data. You can append $#channel to any ban to redirect banned users to another channel.</td></tr><tr><td align="left">q (quiet)</td><td>Works like +b (ban user), but allows matching users to join the channel.</td></tr><tr><td align="left">c (colour filter)</td><td>Strip colour and formatting codes from channel messages.</td></tr><tr><td align="left">C (block CTCPs)</td><td>Blocks CTCP commands (other than /me actions).</td></tr><tr><td align="left">i (invite only)</td><td>Users are unable to join invite-only channels unless they are invited or match a +I entry.</td></tr><tr><td align="left">k (password)</td><td>To enter the channel, you must specify the password on your /join command. Keep in mind that modes locked with ChanServ’s MLOCK command can be seen by anyone recreating the channel; this includes keys. Also keep in mind that users being on the channel when +k is set will see the key as well.</td></tr><tr><td align="left">n (prevent external send)</td><td>Users outside the channel may not send messages to it. Keep in mind that bans and quiets will not apply to external users.</td></tr><tr><td align="left">l (join limit)</td><td>Takes a positive integer parameter. Limits the number of users who can be in the channel at the same time.</td></tr><tr><td align="left">m (moderated)</td><td>Only opped and voiced users can send to the channel. This mode does not prevent users from changing nicks.</td></tr><tr><td align="left">t (ops topic)</td><td>Only channel operators may set the channel topic.</td></tr></tbody></table><h3 id="管理员"><a href="#管理员" class="headerlink" title="管理员"></a>管理员</h3><p>频道管理员称为operation channel。通常为:</p><ol><li>sop (super operator) 频道的註册者,拥有操作频道所有权限,包括踢人。</li><li>aop (auto operator) 频道註册者信任的共同管理者,拥有部分权限,和第三个的差异在於,离开频道后再进入还是能拥有管理权限。</li><li>op 普通管理者,可能一旦离开频道就失去op。</li></ol><h2 id="weechat"><a href="#weechat" class="headerlink" title="weechat"></a>weechat</h2><p>weechat是一款基于命令行的客户端。</p><h3 id="添加服务器"><a href="#添加服务器" class="headerlink" title="添加服务器"></a>添加服务器</h3><pre><code class="hljs routeros"><span class="hljs-built_in">/server </span><span class="hljs-builtin-name">add</span> freenode chat.freenode.net</code></pre><h3 id="服务器选项"><a href="#服务器选项" class="headerlink" title="服务器选项"></a>服务器选项</h3><p>weechat的一些选项加油默认值,昵称默认为终端用户名。</p><pre><code class="hljs stylus">/set irc<span class="hljs-selector-class">.server</span><span class="hljs-selector-class">.freenode</span><span class="hljs-selector-class">.nicks</span> <span class="hljs-string">"mynick,mynick2,mynick3,mynick4,mynick5"</span></code></pre><p>设置用户和真实姓名:</p><pre><code class="hljs stylus">/set irc<span class="hljs-selector-class">.server</span><span class="hljs-selector-class">.freenode</span><span class="hljs-selector-class">.username</span> <span class="hljs-string">"My user name"</span>
|
||
/set irc<span class="hljs-selector-class">.server</span><span class="hljs-selector-class">.freenode</span><span class="hljs-selector-class">.realname</span> <span class="hljs-string">"My real name"</span></code></pre><p>在启动时启用自动连接到服务器:</p><pre><code class="hljs applescript">/<span class="hljs-keyword">set</span> irc.server.freenode.autoconnect <span class="hljs-keyword">on</span></code></pre><p>使用SSL连接:</p><pre><code class="hljs stylus">/set irc<span class="hljs-selector-class">.server</span><span class="hljs-selector-class">.freenode</span><span class="hljs-selector-class">.addresses</span> <span class="hljs-string">"chat.freenode.net/7000"</span>
|
||
/set irc<span class="hljs-selector-class">.server</span><span class="hljs-selector-class">.freenode</span><span class="hljs-selector-class">.ssl</span> on</code></pre><p>SASL:</p><pre><code class="hljs stylus">/set irc<span class="hljs-selector-class">.server</span><span class="hljs-selector-class">.freenode</span><span class="hljs-selector-class">.sasl_username</span> <span class="hljs-string">"mynick"</span>
|
||
/set irc<span class="hljs-selector-class">.server</span><span class="hljs-selector-class">.freenode</span><span class="hljs-selector-class">.sasl_password</span> <span class="hljs-string">"xxxxxxx"</span></code></pre><p>nickserv:</p><pre><code class="hljs stylus">/set irc<span class="hljs-selector-class">.server</span><span class="hljs-selector-class">.freenode</span><span class="hljs-selector-class">.command</span> <span class="hljs-string">"/msg nickserv identify xxxxxxx"</span></code></pre><p>autojoin:</p><pre><code class="hljs stylus">/set irc<span class="hljs-selector-class">.server</span><span class="hljs-selector-class">.freenode</span><span class="hljs-selector-class">.autojoin</span> <span class="hljs-string">"#channel1,#channel2"</span></code></pre><h3 id="连接服务器"><a href="#连接服务器" class="headerlink" title="连接服务器"></a>连接服务器</h3><pre><code class="hljs arduino">/<span class="hljs-built_in">connect</span> freenode</code></pre><pre><code class="hljs arduino">/<span class="hljs-built_in">disconnect</span> freenode</code></pre><h3 id="窗口-缓冲区管理"><a href="#窗口-缓冲区管理" class="headerlink" title="窗口/缓冲区管理"></a>窗口/缓冲区管理</h3><pre><code class="hljs jboss-cli"><span class="hljs-string">/buffer</span>
|
||
<span class="hljs-string">/window</span></code></pre><p>例如,将屏幕垂直分割为一个小窗口(1/3宽度)和一个大窗口(2/3),使用命令:</p><pre><code class="hljs angelscript">/window splitv <span class="hljs-number">33</span></code></pre><p>删除分割:</p><pre><code class="hljs sas">/<span class="hljs-meta">window</span> <span class="hljs-meta">merge</span></code></pre><h2 id="一些常用的命令"><a href="#一些常用的命令" class="headerlink" title="一些常用的命令"></a>一些常用的命令</h2><table><thead><tr><th align="left">示例命令</th><th align="left">备注</th></tr></thead><tbody><tr><td align="left"><code>/server irc.freenode.net</code></td><td align="left">连接到 <code>freenode</code> 网络</td></tr><tr><td align="left"><code>/nick myName</code></td><td align="left">更换昵称为 myName</td></tr><tr><td align="left"><code>/msg nickserv register password me@163.com</code></td><td align="left">注册昵称, 密码为 password, 邮箱为 <a href="mailto:me@163.com">me@163.com</a></td></tr><tr><td align="left"><code>/join #java</code></td><td align="left">进入 #java 聊天室</td></tr><tr><td align="left"><code>/exit</code></td><td align="left">退出账户</td></tr><tr><td align="left"><code>/nick zhijia</code></td><td align="left">登陆或切换用户名</td></tr><tr><td align="left"><code>/msg NickServ identify <password></code></td><td align="left">切换用户后登陆验证用户身份</td></tr><tr><td align="left"><code>/help</code></td><td align="left">帮助</td></tr><tr><td align="left"><code>/quit</code></td><td align="left">退出服务器</td></tr><tr><td align="left"><code>/whois 昵称</code></td><td align="left">查看某人的资料</td></tr><tr><td align="left"><code>/part</code></td><td align="left">离开频道</td></tr><tr><td align="left"><code>/query 昵称</code></td><td align="left">和某人开小窗口私聊</td></tr><tr><td align="left"><code>/away 原因</code></td><td align="left">离开</td></tr><tr><td align="left"><code>/away</code></td><td align="left">取消离开。当您不写原因时,就会取消离开状态</td></tr></tbody></table><h2 id="坑中"><a href="#坑中" class="headerlink" title="坑中"></a>坑中</h2><p>在今天日异月新的IM中,IRC肯定是较小众。虽然几乎就是上个世纪流行的沟通方式了,不过在今天回味一下也很棒,如果有人在一起聊天的话就更棒了。</p><p>freenode有个web版,入门体验很好。<a target="_blank" rel="noopener" href="https://webchat.freenode.net/">webchat</a></p><p>另外,#xfy on freenode.</p></div><hr><div><div class="post-metas mb-3"><div class="post-meta mr-3"><i class="iconfont icon-category"></i> <a class="hover-with-bg" href="/categories/%E6%97%A5%E5%B8%B8/">日常</a></div><div class="post-meta"><i class="iconfont icon-tags"></i> <a class="hover-with-bg" href="/tags/Linux/">Linux</a> <a class="hover-with-bg" href="/tags/tools/">tools</a> <a class="hover-with-bg" href="/tags/IRC/">IRC</a></div></div><p class="note note-warning"><a target="_blank" href="https://zh.wikipedia.org/wiki/Wikipedia:CC_BY-SA_3.0%E5%8D%8F%E8%AE%AE%E6%96%87%E6%9C%AC" rel="nofollow noopener noopener">CC BY-SA 3.0❤</a></p><div class="post-prevnext row"><article class="post-prev col-6"><a href="/defect/get-starting-for-node-js.html"><i class="iconfont icon-arrowleft"></i> <span class="hidden-mobile">Node.js之旅</span> <span class="visible-mobile">上一篇</span></a></article><article class="post-next col-6"><a href="/defect/function-of-javascript.html"><span class="hidden-mobile">JavaScript的函数</span> <span class="visible-mobile">下一篇</span><i class="iconfont icon-arrowright"></i></a></article></div></div><article class="comments" id="comments"><div id="vcomments"></div><script type="text/javascript">function loadValine(){addScript("https://cdn.defectink.com/static/valine/1.4.14/Valine.min.js",function(){new Valine({el:"#vcomments",app_id:"dD9t7mcIBVzJWag5ez6GPy2v-MdYXbMMI",app_key:"bWG6pmKsEscrH4JjrpNNAAy6",placeholder:"嘤嘤嘤???",path:window.location.pathname,avatar:"retro",meta:["nick","mail","link"],pageSize:"10",lang:"zh-CN",highlight:!0,recordIP:!1,serverURLs:""})})}waitElementVisible("vcomments",loadValine)</script><noscript>Please enable JavaScript to view the <a target="_blank" href="https://valine.js.org" rel="nofollow noopener noopener">comments powered by Valine.</a></noscript></article></article></div></div></div><div class="d-none d-lg-block col-lg-2 toc-container" id="toc-ctn"><div id="toc"><p class="toc-header"><i class="iconfont icon-list"></i> 目录</p><div id="tocbot"></div></div></div></div></div></main><a id="scroll-top-button" href="#" role="button"><i class="iconfont icon-arrowup" aria-hidden="true"></i></a><div class="modal fade" id="modalSearch" tabindex="-1" role="dialog" aria-labelledby="ModalLabel" aria-hidden="true"><div class="modal-dialog modal-dialog-scrollable modal-lg" role="document"><div class="modal-content"><div class="modal-header text-center"><h4 class="modal-title w-100 font-weight-bold">搜索</h4><button type="button" id="local-search-close" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button></div><div class="modal-body mx-3"><div class="md-form mb-5"><input type="text" id="local-search-input" class="form-control validate"> <label data-error="x" data-success="v" for="local-search-input">关键词</label></div><div class="list-group" id="local-search-result"></div></div></div></div></div><footer class="text-center mt-5 py-3"><div class="footer-content"><a href="https://hexo.io" target="_blank" rel="nofollow noopener"><span>Hexo</span></a><i class="iconfont icon-love"></i> <a href="https://github.com/fluid-dev/hexo-theme-fluid" target="_blank" rel="nofollow noopener"><span>Fluid</span></a></div><div class="beian"><a href="http://beian.miit.gov.cn/" target="_blank" rel="nofollow noopener">皖ICP备17017808号</a></div></footer><script src="https://cdn.defectink.com/static/jquery/3.4.1/jquery.min.js"></script><script src="https://cdn.defectink.com/static/twitter-bootstrap/4.5.3/js/bootstrap.min.js"></script><script src="/js/debouncer.js"></script><script src="/js/main.js"></script><script src="/js/lazyload.js"></script><script defer="defer" src="https://cdn.defectink.com/static/clipboard.js/2.0.6/clipboard.min.js"></script><script src="/js/clipboard-use.js"></script><script src="/js/xfy.js"></script><script src="https://cdn.defectink.com/static/tocbot/4.11.1/tocbot.min.js"></script><script>$(document).ready(function(){var t=$("#board-ctn").offset().top;tocbot.init({tocSelector:"#tocbot",contentSelector:"#post-body",headingSelector:"h1,h2,h3,h4,h5,h6",linkClass:"tocbot-link",activeLinkClass:"tocbot-active-link",listClass:"tocbot-list",isCollapsedClass:"tocbot-is-collapsed",collapsibleClass:"tocbot-is-collapsible",collapseDepth:3,scrollSmooth:!0,headingsOffset:-t}),0<$(".toc-list-item").length&&$("#toc").css("visibility","visible")})</script><script src="https://cdn.defectink.com/static/typed.js/2.0.11/typed.min.js"></script><script>var typed=new Typed("#subtitle",{strings:[" ","入坑IRC "],cursorChar:"❤",typeSpeed:70,loop:!1});typed.stop(),$(document).ready(function(){$(".typed-cursor").addClass("h2"),typed.start()})</script><script src="/js/local-search.js"></script><script>var path="/xml/local-search.xml",inputArea=document.querySelector("#local-search-input");inputArea.onclick=function(){searchFunc(path,"local-search-input","local-search-result"),this.onclick=null}</script><script src="https://cdn.defectink.com/static/fancybox/3.5.7/jquery.fancybox.min.js"></script><link rel="stylesheet" href="https://cdn.defectink.com/static/fancybox/3.5.7/jquery.fancybox.min.css"><script>$("#post img:not(.no-zoom img, img[no-zoom]), img[zoom]").each(function(){var t=document.createElement("a");$(t).attr("data-fancybox","images"),$(t).attr("href",$(this).attr("src")),$(this).wrap(t)})</script><script src="https://cdn.defectink.com/static/mermaid/8.5.0/mermaid.min.js"></script><script>window.mermaid&&mermaid.initialize({theme:"default"})</script></body></html> |