<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>hexo - 标签 - 菠菜眾長</title><link>https://lruihao.cn/tags/hexo/</link><description>hexo - 标签 - 菠菜眾長</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><managingEditor>1024@lruihao.cn (Lruihao)</managingEditor><webMaster>1024@lruihao.cn (Lruihao)</webMaster><lastBuildDate>Sun, 03 Oct 2021 15:27:58 +0800</lastBuildDate><atom:link href="https://lruihao.cn/tags/hexo/" rel="self" type="application/rss+xml"/><item><title>个人博客从 Hexo 迁移至 Hugo</title><link>https://lruihao.cn/posts/hexo-to-hugo/</link><pubDate>Sun, 03 Oct 2021 15:27:58 +0800</pubDate><author>Lruihao</author><guid>https://lruihao.cn/posts/hexo-to-hugo/</guid><description><![CDATA[<blockquote>
<p>电脑升级 win 11 后，分盘操作存在 bug, 然后又不小心把装代码的盘格式化了，虽然都有备份到 github, 但是当时为了省事，hexo Node 安装的很多以来插件都没有备份，现在又下载不到了，所以 hexo 博客没办法完整复原，另外，早就觉得基于 Node 的 hexo 实在有些臃肿，且博客内容多了以后部署太慢，就干脆乘机换了好了，经过一段时间寻找，最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。</p>
</blockquote>
<h2 id="hugo-准备">Hugo 准备</h2>
<h3 id="概念">概念</h3>
<blockquote>
<p>Hugo is a fast and modern static site generator written in Go, and designed to make website creation fun again.</p>
</blockquote>
<p>那 hugo 基于编译语言 GO 构建，对于静态页面的构建肯定是碾压 hexo 的存在，其官方标语也是很直白 <code>&quot;The world’s fastest framework for building websites&quot;</code>, 作为先后使用过 hexo 和 hugo 的我来说，这确实名副其实。</p>
<ul>
<li><a href="https://gohugo.io"target="_blank" rel="external nofollow noopener noreferrer">gohugo<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li>
</ul>
<h3 id="安装">安装</h3>
<p>hugo 提供了很多种安装方式，Git, Docker, Binary.<br>
个人电脑使用二进制安装是最方便快捷的，无需安装其他依赖。<br>
到 <a href="https://github.com/gohugoio/hugo/releases"target="_blank" rel="external nofollow noopener noreferrer">Hugo Releases<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 下载对应的 windows 操作系统版本的 Hugo 二进制文件，玩就要玩全的，所以我就选择了扩展版本，此次选择的最新版为 <code>hugo_extended_0.88.1_Windows-64bit.zip</code>, 然后自行解压安装即可。</p>
<h3 id="生成站点">生成站点</h3>
<p>使用 Hugo 快速生成站点，比如希望生成到 <code>/path/to/site</code> 路径：</p>
<div class="highlight" id="id-1"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">hugo new site /path/to/site</span></span></code></pre></td></tr></table>
</div>
</div><p>站点目录结构：</p>
<pre><code>▸ archetypes/    # 配置文章模板，相当于 hexo 的 scaffolds
▸ content/       # 文章页面内容，相当于 hexo 的 source
▸ data/          # 可存放一些 yaml, json, toml 格式的数据
▸ layouts/       # 页面布局源码，改造主题可不动主题源码
▸ static/        # 静态文件存放
  config.toml    # 站点配置文件，相当于 hexo 的 _config.yml
</code></pre>
<h3 id="创建文章">创建文章</h3>
<p>注： 路径要写以 <code>content/</code> 为根目录的相对路径</p>
<div class="highlight" id="id-2"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">hugo new path/fileName</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="添加主题">添加主题</h3>
<p>添加主题的方式选用 Git 子模组的形式，为了日后快速升级，避免在使用 hexo 中因大量魔改 next 主题而导致难以升级的困扰。<br>
精挑细选最终选择了 <del><a href="https://github.com/dillonzq/LoveIt"target="_blank" rel="external nofollow noopener noreferrer">LoveIt<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></del> =&gt; <a href="https://github.com/Lruihao/FixIt"target="_blank" rel="external nofollow noopener noreferrer">FixIt<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
<div class="highlight" id="id-3"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git init
</span></span><span class="line"><span class="cl">git submodule add https://github.com/Lruihao/FixIt.git themes/FixIt</span></span></code></pre></td></tr></table>
</div>
</div><p>在 <code>config.toml</code> 添加 <del>theme = &ldquo;LoveIt&rdquo;</del></p>
<div class="highlight" id="id-4"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">theme = &#34;FixIt&#34;</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="在本地启动网站">在本地启动网站</h3>
<p>使用以下命令启动网站：</p>
<div class="highlight" id="id-5"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">hugo serve --disableFastRender</span></span></code></pre></td></tr></table>
</div>
</div><p>去查看 <code>http://localhost:1313</code></p>
<h3 id="hugo-build">hugo build</h3>
<p>使用以下命令生成静态文件，然后自己可手动选择部署到 github pages 或 COS 等服务器</p>
<div class="highlight" id="id-6"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">hugo --minify</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="写作指北">写作指北</h2>
<ul>
<li><a href="https://fixit.lruihao.cn/zh-cn/theme-documentation-basics"target="_blank" rel="external nofollow noopener noreferrer">FixIt 主题文档 - 基本概念<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li>
<li><a href="https://fixit.lruihao.cn/zh-cn/theme-documentation-content/"target="_blank" rel="external nofollow noopener noreferrer">FixIt 主题文档 - 内容<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li>
<li><a href="https://fixit.lruihao.cn/zh-cn/theme-documentation-built-in-shortcodes/"target="_blank" rel="external nofollow noopener noreferrer">FixIt 主题文档 - 内置 Shortcodes<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li>
<li><a href="https://fixit.lruihao.cn/zh-cn/theme-documentation-extended-shortcodes/"target="_blank" rel="external nofollow noopener noreferrer">FixIt 主题文档 - 扩展 Shortcodes<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li>
</ul>
<h2 id="todo-list">Todo list</h2>
<a href="https://github.com/Lruihao/hugo-blog"target="_blank" rel="external nofollow noopener noreferrer" class="card-link"><span class="cl-backdrop" style="--cl-bg-url: url(/fixit.min.svg);"></span>
    <span class="cl-content">
      <span class="cl-text">
        <span class="cl-title">本站源码备份</span>
        <span class="cl-meta">
          <svg class="cl-icon-link" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z" fill="#a9a9b3"></path><path d="M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z" fill="#a9a9b3"></path></svg>
          <span class="cl-url">https://github.com/Lruihao/hugo-blog</span>
        </span>
      </span><svg class="cl-icon-globe" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="64" height="64"><path d="M960 512c0 249.408-203.2 448-448 448-244.778667 0-448-198.592-448-448S262.592 64 512 64s448 198.592 448 448" fill="#2196F3"></path><path d="M507.52 718.08c0-8.96-4.48-13.44-13.44-17.92-26.88-8.96-53.76-8.96-76.16-31.381333-4.48-8.96-4.48-17.92-8.96-26.88-8.96-8.96-31.36-13.44-44.8-17.92h-89.6c-13.44-4.48-22.4-22.4-31.36-35.84 0-4.48 0-13.461333-8.96-13.461334-8.96-4.458667-17.92 4.501333-26.88 0-4.48-4.458667-4.48-8.96-4.48-13.418666 0-13.461333 8.96-26.901333 17.92-35.861334 13.44-8.96 26.88 4.48 40.32 4.48 4.48 0 4.48 0 8.96 4.48 13.44 4.48 17.92 22.4 17.92 35.861334v8.96c0 4.48 4.48 4.48 8.96 4.48 4.48-22.4 4.48-44.821333 8.96-67.2 0-26.88 26.88-53.781333 49.28-62.72 8.96-4.458667 13.44 4.501333 22.4 0 26.88-8.96 94.08-35.84 80.64-71.658667-8.96-31.381333-35.84-62.698667-71.68-58.24-8.96 4.501333-13.44 8.96-22.4 13.461333-13.44 8.96-40.32 35.84-53.76 35.84-22.4-4.48-22.4-35.84-17.92-49.301333 4.48-17.92 44.8-76.138667 71.68-67.178667l17.92 17.92c8.96 4.48 22.4 4.48 35.84 4.48 4.48 0 8.96 0 13.44-4.48 4.48-4.48 4.48-4.48 4.48-8.96 0-13.44-13.44-26.901333-22.4-35.861333s-22.4-17.92-35.84-22.378667c-44.8-13.461333-116.48 4.458667-152.32 35.84-35.84 31.36-62.72 85.12-80.64 129.92-8.96 26.88-17.92 62.698667-22.4 94.08-4.48 22.4-8.96 40.32 4.48 62.698667 13.44 26.88 40.32 53.781333 67.2 71.68 17.92 13.44 53.76 13.44 71.68 35.84 13.44 17.941333 8.96 40.32 8.96 62.72 0 26.88 17.92 49.28 26.88 71.658667 4.48 13.461333 8.96 31.381333 13.44 44.821333 0 4.48 4.48 31.36 4.48 35.84 26.88 13.44 49.28 26.901333 80.64 35.861333 4.48 0 22.4-26.901333 22.4-31.381333 13.44-13.44 22.4-31.36 35.84-40.32 8.96-4.48 17.92-8.96 26.88-17.941333 8.96-8.96 13.44-26.88 17.92-40.32 4.48-8.938667 8.96-26.858667 4.48-40.298667M516.48 305.92c4.48 0 8.96-4.48 17.92-8.96 13.44-8.96 26.901333-22.4 40.32-31.36 13.461333-8.96 26.901333-22.4 35.861333-31.36 13.44-8.96 22.4-26.88 26.88-40.341333 4.48-8.96 17.941333-26.88 13.44-40.32-4.48-8.96-26.88-13.44-35.84-17.92C579.2 126.698667 547.84 122.24 512 122.24c-13.44 0-31.36 4.458667-35.84 17.92-4.48 22.4 13.44 17.92 31.36 22.4 0 0 4.48 35.84 4.48 40.32 4.48 22.421333-8.96 35.84-8.96 58.24 0 13.44 0 35.84 8.96 44.8h4.48zM892.8 619.52c4.501333-8.96 4.501333-22.4 8.96-31.36 4.501333-22.421333 4.501333-44.8 4.501333-67.2 0-44.8-4.501333-89.578667-17.92-129.92-8.96-13.44-13.461333-26.88-17.941333-40.341333-8.96-22.378667-22.4-44.8-40.32-62.698667-17.92-22.4-40.341333-85.12-80.64-67.2-13.44 4.501333-22.4 22.421333-31.36 31.381333l-26.88 40.32c-4.501333 4.48-8.96 13.44-4.501333 17.92 0 4.48 4.501333 4.48 8.96 4.48 8.96 4.501333 13.461333 4.501333 22.421333 8.96 4.48 0 8.96 4.501333 4.48 8.96 0 0 0 4.501333-4.48 4.501334-22.421333 22.4-44.8 40.32-67.2 62.698666-4.48 4.48-8.96 13.44-8.96 17.92s4.48 4.48 4.48 8.96c0 4.501333-4.48 4.501333-8.96 8.96-8.96 4.501333-17.92 8.96-22.4 13.461334-4.48 8.96 0 22.4-4.48 31.36-4.48 22.4-17.941333 40.32-26.901333 62.72-8.96 13.418667-13.418667 26.88-22.378667 40.32 0 17.92-4.501333 31.36 4.458667 44.8 22.421333 31.36 62.72 13.44 94.08 26.901333 8.96 4.458667 17.92 4.458667 22.421333 13.418667 13.418667 13.461333 13.418667 35.861333 17.92 49.301333 4.458667 17.92 8.96 35.84 17.92 53.76 4.48 22.421333 13.44 44.821333 17.92 62.72 40.341333-31.36 76.16-67.178667 103.04-112 26.88-31.424 40.341333-67.242667 53.76-103.104" fill="#CDDC39"></path></svg></span></a>
<blockquote>
<p>原来 hexo 做了大量的美化和扩展功能，迁移到 hugo 想尽可能多的保留。取之精华，去其糟粕。</p>
</blockquote>
<h3 id="base">Base</h3>
<ul>
<li>
<p><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> 迁移 hexo 所有文章内容</p>
</li>
<li>
<details>
<summary><i class="far fa-check-square fa-fw"></i>迁移 hexo 所有页面内容</summary>
<ul>
<li><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> 留言页面</li>
<li><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> 网友打赏支持页面，整合到留言页面</li>
<li><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> 重写关于页面，一切从简</li>
<li><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> 友情链接页面</li>
<li><i class="fa-regular fa-square fa-fw" aria-hidden="true"></i> <del>重写 404 页面</del></li>
<li><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> 站点时间和不蒜子计数改到 hello-world 页面</li>
</ul>
</li>
</ul>
</details>
<ul>
<li>
<p><i class="fa-regular fa-square fa-fw" aria-hidden="true"></i> <del><a href="https://img.lruihao.cn"target="_blank" rel="external nofollow noopener noreferrer">cos-album<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 和 <a href="https://sz.journey.lruihao.cn"target="_blank" rel="external nofollow noopener noreferrer">🍚 饭醉团伙 🍷<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 整合到博客 cos-album/ <a href="https://github.com/Lruihao/hugo-blog/issues/7"target="_blank" rel="external nofollow noopener noreferrer">#7 (wontfix)<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></del></p>
</li>
<li>
<p><i class="fa-regular fa-square fa-fw" aria-hidden="true"></i> <del>新增 demo/, 以子模组的形式存放前端 demo, serverless 记账本等</del> （保持原本博客的纯粹性）</p>
</li>
<li>
<p><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> 博客 valine 评论，阅读数迁移，可用 leancloud API 写代码转化（但似乎没必要）</p>
</li>
<li>
<p><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> 博客 SEO 优化迁移 <sup><a href="#seo-ref">baidu_urls.txt</a></sup><a id="seo"></a></p>
</li>
<li>
<p><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> <code>Github actions</code> 自动部署到 <strong>Github pages</strong> 和 <strong>COS</strong> 脚本编写</p>
</li>
<li>
<p><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> hugo 本地管理 shell 脚本工具编写</p>
</li>
<li>
<p><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> 知乎卡片式链接 改成 hugo shortcodes, 取名 <code>cardlink</code></p>
</li>
<li>
<details>
<summary><i class="far fa-check-square fa-fw"></i>zxm/沐目体 归档 :( <a href="https://github.com/Lruihao/hugo-blog/issues/6" target="_blank" rel="noopener noreferrer">#6</a></summary>
<ul>
<li><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> 安装 沐目体</li>
<li><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> 压缩 沐目体 fontspider</li>
<li><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> 沐目体 post 修订</li>
<li><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> typyit 配合 随机诗词和网易云热评 API</li>
<li><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> 实时预览功能 base on Vuejs</li>
<li><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> [恋爱叙事体] <code>love</code> 归档</li>
<li><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> [光] 归档</li>
</ul>
</li>
</ul>
</details>
<ul>
<li><i class="fa-regular fa-square fa-fw" aria-hidden="true"></i> hugo 内容加密研究 <a href="https://github.com/Lruihao/hugo-blog/issues/3"target="_blank" rel="external nofollow noopener noreferrer">#3<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li>
<li><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> <code>Lruihao/hugo-blog/README.md</code> 撰写，MIT, 发布 1.0.0 版本做完整备份，base on theme version</li>
<li><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> 更换 gravatar 头像 <a href="https://github.com/Lruihao/hugo-blog/issues/4"target="_blank" rel="external nofollow noopener noreferrer">#4<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li>
<li><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> 博客在线编辑器研究 github1s 等 <a href="https://github.com/Lruihao/hugo-blog/issues/5"target="_blank" rel="external nofollow noopener noreferrer">#5<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li>
</ul>
<hr>
<p><a id="seo-ref"></a><code>[baidu_urls.txt]:</code><a href="#seo">↩︎</a></p>
<p><em>生成百度链接集合小技巧，关掉归档分页，在归档页面控制台执行以下代码即可获得所有文章链接</em></p>
<div class="highlight" id="id-7"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-javascript" data-lang="javascript"><span class="line"><span class="cl"><span class="kd">let</span> <span class="nx">urls</span> <span class="o">=</span> <span class="p">[];</span>
</span></span><span class="line"><span class="cl"><span class="k">for</span> <span class="p">(</span><span class="kd">let</span> <span class="nx">a</span> <span class="k">of</span> <span class="nb">document</span><span class="p">.</span><span class="nx">querySelectorAll</span><span class="p">(</span><span class="s1">&#39;.archive-item a&#39;</span><span class="p">))</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nx">urls</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">a</span><span class="p">.</span><span class="nx">href</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">urls</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span><span class="s1">&#39;\n&#39;</span><span class="p">));</span></span></span></code></pre></td></tr></table>
</div>
</div><blockquote>
<p><a href="https://github.com/hugo-fixit/FixIt/releases/tag/v0.2.15" rel="external nofollow noopener noreferrer" target="_blank"></a> FixIt 主题已支持自动输出 <code>baidu_urls.txt</code> 文件</p>
</blockquote>
<hr>
<h3 id="theme-fixit">Theme FixIt</h3>
<blockquote>
<p><del>hugo LoveIt 主题整体优化，必要时建 PR 或 issue 到 LoveIt 仓库</del> (LoveIt 已停更一年多）<br>
<del>先把自己发现和 LoveIt 原 repo 的 issue 尽可能的修复，修改的原则是：<strong>不改动原项目代码</strong>，</del><br>
<del>唯一途径就是在站点相同的目录用<strong>新增</strong>的方式替代<strong>修改、删除</strong>操作。</del><br>
<del>之后再等等看作者是否还会更新，如已做大量的更改，再做考虑整合为一个新的主题。</del><br>
为了更好的完善博客功能以及修复 BUG 已创建新的主题 FixIt (fork from LoveIt)</p>
</blockquote>
<a href="https://github.com/Lruihao/FixIt"target="_blank" rel="external nofollow noopener noreferrer" class="card-link"><span class="cl-backdrop" style="--cl-bg-url: url(/fixit.min.svg);"></span>
    <span class="cl-content">
      <span class="cl-text">
        <span class="cl-title">Hugo theme FixIt</span>
        <span class="cl-meta">
          <svg class="cl-icon-link" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z" fill="#a9a9b3"></path><path d="M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z" fill="#a9a9b3"></path></svg>
          <span class="cl-url">https://github.com/Lruihao/FixIt</span>
        </span>
      </span><svg class="cl-icon-globe" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="64" height="64"><path d="M960 512c0 249.408-203.2 448-448 448-244.778667 0-448-198.592-448-448S262.592 64 512 64s448 198.592 448 448" fill="#2196F3"></path><path d="M507.52 718.08c0-8.96-4.48-13.44-13.44-17.92-26.88-8.96-53.76-8.96-76.16-31.381333-4.48-8.96-4.48-17.92-8.96-26.88-8.96-8.96-31.36-13.44-44.8-17.92h-89.6c-13.44-4.48-22.4-22.4-31.36-35.84 0-4.48 0-13.461333-8.96-13.461334-8.96-4.458667-17.92 4.501333-26.88 0-4.48-4.458667-4.48-8.96-4.48-13.418666 0-13.461333 8.96-26.901333 17.92-35.861334 13.44-8.96 26.88 4.48 40.32 4.48 4.48 0 4.48 0 8.96 4.48 13.44 4.48 17.92 22.4 17.92 35.861334v8.96c0 4.48 4.48 4.48 8.96 4.48 4.48-22.4 4.48-44.821333 8.96-67.2 0-26.88 26.88-53.781333 49.28-62.72 8.96-4.458667 13.44 4.501333 22.4 0 26.88-8.96 94.08-35.84 80.64-71.658667-8.96-31.381333-35.84-62.698667-71.68-58.24-8.96 4.501333-13.44 8.96-22.4 13.461333-13.44 8.96-40.32 35.84-53.76 35.84-22.4-4.48-22.4-35.84-17.92-49.301333 4.48-17.92 44.8-76.138667 71.68-67.178667l17.92 17.92c8.96 4.48 22.4 4.48 35.84 4.48 4.48 0 8.96 0 13.44-4.48 4.48-4.48 4.48-4.48 4.48-8.96 0-13.44-13.44-26.901333-22.4-35.861333s-22.4-17.92-35.84-22.378667c-44.8-13.461333-116.48 4.458667-152.32 35.84-35.84 31.36-62.72 85.12-80.64 129.92-8.96 26.88-17.92 62.698667-22.4 94.08-4.48 22.4-8.96 40.32 4.48 62.698667 13.44 26.88 40.32 53.781333 67.2 71.68 17.92 13.44 53.76 13.44 71.68 35.84 13.44 17.941333 8.96 40.32 8.96 62.72 0 26.88 17.92 49.28 26.88 71.658667 4.48 13.461333 8.96 31.381333 13.44 44.821333 0 4.48 4.48 31.36 4.48 35.84 26.88 13.44 49.28 26.901333 80.64 35.861333 4.48 0 22.4-26.901333 22.4-31.381333 13.44-13.44 22.4-31.36 35.84-40.32 8.96-4.48 17.92-8.96 26.88-17.941333 8.96-8.96 13.44-26.88 17.92-40.32 4.48-8.938667 8.96-26.858667 4.48-40.298667M516.48 305.92c4.48 0 8.96-4.48 17.92-8.96 13.44-8.96 26.901333-22.4 40.32-31.36 13.461333-8.96 26.901333-22.4 35.861333-31.36 13.44-8.96 22.4-26.88 26.88-40.341333 4.48-8.96 17.941333-26.88 13.44-40.32-4.48-8.96-26.88-13.44-35.84-17.92C579.2 126.698667 547.84 122.24 512 122.24c-13.44 0-31.36 4.458667-35.84 17.92-4.48 22.4 13.44 17.92 31.36 22.4 0 0 4.48 35.84 4.48 40.32 4.48 22.421333-8.96 35.84-8.96 58.24 0 13.44 0 35.84 8.96 44.8h4.48zM892.8 619.52c4.501333-8.96 4.501333-22.4 8.96-31.36 4.501333-22.421333 4.501333-44.8 4.501333-67.2 0-44.8-4.501333-89.578667-17.92-129.92-8.96-13.44-13.461333-26.88-17.941333-40.341333-8.96-22.378667-22.4-44.8-40.32-62.698667-17.92-22.4-40.341333-85.12-80.64-67.2-13.44 4.501333-22.4 22.421333-31.36 31.381333l-26.88 40.32c-4.501333 4.48-8.96 13.44-4.501333 17.92 0 4.48 4.501333 4.48 8.96 4.48 8.96 4.501333 13.461333 4.501333 22.421333 8.96 4.48 0 8.96 4.501333 4.48 8.96 0 0 0 4.501333-4.48 4.501334-22.421333 22.4-44.8 40.32-67.2 62.698666-4.48 4.48-8.96 13.44-8.96 17.92s4.48 4.48 4.48 8.96c0 4.501333-4.48 4.501333-8.96 8.96-8.96 4.501333-17.92 8.96-22.4 13.461334-4.48 8.96 0 22.4-4.48 31.36-4.48 22.4-17.941333 40.32-26.901333 62.72-8.96 13.418667-13.418667 26.88-22.378667 40.32 0 17.92-4.501333 31.36 4.458667 44.8 22.421333 31.36 62.72 13.44 94.08 26.901333 8.96 4.458667 17.92 4.458667 22.421333 13.418667 13.418667 13.461333 13.418667 35.861333 17.92 49.301333 4.458667 17.92 8.96 35.84 17.92 53.76 4.48 22.421333 13.44 44.821333 17.92 62.72 40.341333-31.36 76.16-67.178667 103.04-112 26.88-31.424 40.341333-67.242667 53.76-103.104" fill="#CDDC39"></path></svg></span></a>
<p>进度更新至 <a href="https://github.com/Lruihao/hugo-blog/issues/8"target="_blank" rel="external nofollow noopener noreferrer">#8<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
<ul>
<li><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> CSS 优化，背景，元素圆角化，外圆内方，居中对齐等</li>
<li><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> 沐目体引入</li>
<li><i class="fa-regular fa-square fa-fw" aria-hidden="true"></i> TOC 序号生成</li>
<li><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> Fix: 无标题时也会生成目录的 BUG</li>
<li><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> subtitle 等细节优化</li>
<li><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> Fix: typeit 打印代码时跑版的问题</li>
<li><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> Fix: 文章 <code>h1</code> 标题多行跑版</li>
<li><i class="fa-regular fa-check-square fa-fw" aria-hidden="true"></i> Code Review</li>
</ul>]]></description></item><item><title>hexo-theme-next @modified LRH</title><link>https://lruihao.cn/posts/hexo-theme-next/</link><pubDate>Thu, 21 Mar 2019 16:43:19 +0000</pubDate><author>Lruihao</author><guid>https://lruihao.cn/posts/hexo-theme-next/</guid><description><![CDATA[<div class="featured-image">
        <img src="/posts/hexo-theme-next/images/next.png" referrerpolicy="no-referrer">
      </div><div class="details admonition danger open">
    <div class="details-summary admonition-title">
      <i class="icon fa-solid fa-skull-crossbones fa-fw" aria-hidden="true"></i>危险<i class="details-icon fa-solid fa-angle-right fa-fw" aria-hidden="true"></i>
    </div>
    <div class="details-content">
      <div class="admonition-content"><span style="color: #d9534f;font-size: 1.2em;"><strong>如无必要，不再更新！（2019.09.13）</strong></span><br>
今晚我做出了一个慎重的决定，由于博主时间精力有限，需要更多的时间来工作和学习。所以我将<strong>放弃对 next 的主题的自定义修改</strong>，next 主题官方已经更新到了 7.0+的版本，喜欢 next 主题风格的朋友可以在 github 更新。<br>
我这也算是上古版本了，版本差距实在过大，所以我也将放弃博客使用主题的更新。<br>
以下仍为当前博客使用主题，lib 资源已打包 github。</div>
    </div>
  </div>
<div class="details admonition success open">
    <div class="details-summary admonition-title">
      <i class="icon fa-solid fa-check-circle fa-fw" aria-hidden="true"></i>next<i class="details-icon fa-solid fa-angle-right fa-fw" aria-hidden="true"></i>
    </div>
    <div class="details-content">
      <div class="admonition-content">基于 <a href="https://github.com/theme-next/hexo-theme-next"target="_blank" rel="external nofollow noopener noreferrer">hexo-theme-next 6.0+<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 的 Pisces 模板做的 DIY 扩展性设计（部分兼容 next 其他几种模板）。主要是一些 custom style 还有一些第三方的 js。修改的地方太多也有点小乱就不提 PR 了。<br>
<a href="https://github.com/Lruihao/hexo-theme-next"target="_blank" rel="external nofollow noopener noreferrer">modified<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>  官方 Demo =&gt; <a href="https://theme-next.org"target="_blank" rel="external nofollow noopener noreferrer">https://theme-next.org<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a><br>
记录一下折腾过程，以后备份恢复博客也好方便自己。本文之前的美化修改请见 <a href="/tags/hexo/">hexo 标签</a>。<br>
<strong>主题中若有遗漏第三方插件或应用的 key 及 id 值等请修改为自己对应的值</strong></div>
    </div>
  </div>
<p>主要的几个自定义文件</p>
<div class="highlight" id="id-1"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl">_config.swig                                 #主题配置文件 相关账户信息自己注册替换
</span></span><span class="line"><span class="cl">\layout\custom\head.swig                     #在头部自定义加入标签
</span></span><span class="line"><span class="cl">\layout\custom\google_adsense.swig           #谷歌广告模块，内有注释暂时弃用
</span></span><span class="line"><span class="cl">\layout\_layout.swig                         #主布局
</span></span><span class="line"><span class="cl">\layout\_macro\post.swig                     #文章布局
</span></span><span class="line"><span class="cl">\layout\_macro\post-copyright.swig           #文章版权
</span></span><span class="line"><span class="cl">\layout\_macro\siderbar.swig                 #侧栏模板
</span></span><span class="line"><span class="cl">\layout\_third-party\copy-code.swig          #复制按钮
</span></span><span class="line"><span class="cl">\layout\_partials\comments.swig              #评论主模板
</span></span><span class="line"><span class="cl">\layout\_partials\footer.swig                #底部模板#该模块在 layout.swig 引入，用于在 body 自定义标签
</span></span><span class="line"><span class="cl">\layout\_partials\footer_custom.swig         #footer 自定义文件
</span></span><span class="line"><span class="cl">\layout\_third-party\custom.swig             #该模块在 layout.swig 引入用于在 body 自定义标签
</span></span><span class="line"><span class="cl">\source\css\_custom\customs.styl             #主要用户自定义样式表
</span></span><span class="line"><span class="cl">\source\fonts\                               #引入了一些我的手写体及外部字体
</span></span><span class="line"><span class="cl">\scripts\qcloudcdn.js                        #腾讯云 cos 桶刷新缓存的脚本，不需要可删掉 [^1]</span></span></code></pre></td></tr></table>
</div>
</div><p><a href="https://lruihao.cn/posts/cos-hexo.html#CDN%E5%88%B7%E6%96%B0"target="_blank" rel="external nofollow noopener noreferrer">^1<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
<h2 id="初步安装">初步安装</h2>
<blockquote>
<p>安装整个改过的主题，然后下载相应的 lib 资源解压放入 source 文件夹</p>
</blockquote>
<div class="highlight" id="id-2"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> hexo
</span></span><span class="line"><span class="cl">git clone https://github.com/Lruihao/hexo-theme-next themes/next</span></span></code></pre></td></tr></table>
</div>
</div><p>主题配置文件<code>_config.yml</code>, 选择主题</p>
<div class="highlight" id="id-3"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">theme: next</span></span></code></pre></td></tr></table>
</div>
</div><a href="http://github.com/Lruihao/hexo-theme-next/releases/tag/v6.9.1"target="_blank" rel="external nofollow noopener noreferrer" class="card-link"><span class="cl-backdrop" style="--cl-bg-url: url(/fixit.min.svg);"></span>
    <span class="cl-content">
      <span class="cl-text">
        <span class="cl-title">lib 下载</span>
        <span class="cl-meta">
          <svg class="cl-icon-link" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z" fill="#a9a9b3"></path><path d="M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z" fill="#a9a9b3"></path></svg>
          <span class="cl-url">http://github.com/Lruihao/hexo-theme-next/releases/tag/v6.9.1</span>
        </span>
      </span><svg class="cl-icon-globe" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="64" height="64"><path d="M960 512c0 249.408-203.2 448-448 448-244.778667 0-448-198.592-448-448S262.592 64 512 64s448 198.592 448 448" fill="#2196F3"></path><path d="M507.52 718.08c0-8.96-4.48-13.44-13.44-17.92-26.88-8.96-53.76-8.96-76.16-31.381333-4.48-8.96-4.48-17.92-8.96-26.88-8.96-8.96-31.36-13.44-44.8-17.92h-89.6c-13.44-4.48-22.4-22.4-31.36-35.84 0-4.48 0-13.461333-8.96-13.461334-8.96-4.458667-17.92 4.501333-26.88 0-4.48-4.458667-4.48-8.96-4.48-13.418666 0-13.461333 8.96-26.901333 17.92-35.861334 13.44-8.96 26.88 4.48 40.32 4.48 4.48 0 4.48 0 8.96 4.48 13.44 4.48 17.92 22.4 17.92 35.861334v8.96c0 4.48 4.48 4.48 8.96 4.48 4.48-22.4 4.48-44.821333 8.96-67.2 0-26.88 26.88-53.781333 49.28-62.72 8.96-4.458667 13.44 4.501333 22.4 0 26.88-8.96 94.08-35.84 80.64-71.658667-8.96-31.381333-35.84-62.698667-71.68-58.24-8.96 4.501333-13.44 8.96-22.4 13.461333-13.44 8.96-40.32 35.84-53.76 35.84-22.4-4.48-22.4-35.84-17.92-49.301333 4.48-17.92 44.8-76.138667 71.68-67.178667l17.92 17.92c8.96 4.48 22.4 4.48 35.84 4.48 4.48 0 8.96 0 13.44-4.48 4.48-4.48 4.48-4.48 4.48-8.96 0-13.44-13.44-26.901333-22.4-35.861333s-22.4-17.92-35.84-22.378667c-44.8-13.461333-116.48 4.458667-152.32 35.84-35.84 31.36-62.72 85.12-80.64 129.92-8.96 26.88-17.92 62.698667-22.4 94.08-4.48 22.4-8.96 40.32 4.48 62.698667 13.44 26.88 40.32 53.781333 67.2 71.68 17.92 13.44 53.76 13.44 71.68 35.84 13.44 17.941333 8.96 40.32 8.96 62.72 0 26.88 17.92 49.28 26.88 71.658667 4.48 13.461333 8.96 31.381333 13.44 44.821333 0 4.48 4.48 31.36 4.48 35.84 26.88 13.44 49.28 26.901333 80.64 35.861333 4.48 0 22.4-26.901333 22.4-31.381333 13.44-13.44 22.4-31.36 35.84-40.32 8.96-4.48 17.92-8.96 26.88-17.941333 8.96-8.96 13.44-26.88 17.92-40.32 4.48-8.938667 8.96-26.858667 4.48-40.298667M516.48 305.92c4.48 0 8.96-4.48 17.92-8.96 13.44-8.96 26.901333-22.4 40.32-31.36 13.461333-8.96 26.901333-22.4 35.861333-31.36 13.44-8.96 22.4-26.88 26.88-40.341333 4.48-8.96 17.941333-26.88 13.44-40.32-4.48-8.96-26.88-13.44-35.84-17.92C579.2 126.698667 547.84 122.24 512 122.24c-13.44 0-31.36 4.458667-35.84 17.92-4.48 22.4 13.44 17.92 31.36 22.4 0 0 4.48 35.84 4.48 40.32 4.48 22.421333-8.96 35.84-8.96 58.24 0 13.44 0 35.84 8.96 44.8h4.48zM892.8 619.52c4.501333-8.96 4.501333-22.4 8.96-31.36 4.501333-22.421333 4.501333-44.8 4.501333-67.2 0-44.8-4.501333-89.578667-17.92-129.92-8.96-13.44-13.461333-26.88-17.941333-40.341333-8.96-22.378667-22.4-44.8-40.32-62.698667-17.92-22.4-40.341333-85.12-80.64-67.2-13.44 4.501333-22.4 22.421333-31.36 31.381333l-26.88 40.32c-4.501333 4.48-8.96 13.44-4.501333 17.92 0 4.48 4.501333 4.48 8.96 4.48 8.96 4.501333 13.461333 4.501333 22.421333 8.96 4.48 0 8.96 4.501333 4.48 8.96 0 0 0 4.501333-4.48 4.501334-22.421333 22.4-44.8 40.32-67.2 62.698666-4.48 4.48-8.96 13.44-8.96 17.92s4.48 4.48 4.48 8.96c0 4.501333-4.48 4.501333-8.96 8.96-8.96 4.501333-17.92 8.96-22.4 13.461334-4.48 8.96 0 22.4-4.48 31.36-4.48 22.4-17.941333 40.32-26.901333 62.72-8.96 13.418667-13.418667 26.88-22.378667 40.32 0 17.92-4.501333 31.36 4.458667 44.8 22.421333 31.36 62.72 13.44 94.08 26.901333 8.96 4.458667 17.92 4.458667 22.421333 13.418667 13.418667 13.461333 13.418667 35.861333 17.92 49.301333 4.458667 17.92 8.96 35.84 17.92 53.76 4.48 22.421333 13.44 44.821333 17.92 62.72 40.341333-31.36 76.16-67.178667 103.04-112 26.88-31.424 40.341333-67.242667 53.76-103.104" fill="#CDDC39"></path></svg></span></a>
<p></p>
<h2 id="更新内容">更新内容</h2>
<blockquote>
<p>更多自定义详见源码</p>
</blockquote>
<h3 id="links-模板">links 模板</h3>
<blockquote>
<p>自定义友链模板，打开<code>hexo\themes\next\layout\</code>新建<code>links.swig</code>文件，写下以下内容后保存。</p>
</blockquote>
<div class="highlight" id="id-4"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">  1
</span><span class="lnt">  2
</span><span class="lnt">  3
</span><span class="lnt">  4
</span><span class="lnt">  5
</span><span class="lnt">  6
</span><span class="lnt">  7
</span><span class="lnt">  8
</span><span class="lnt">  9
</span><span class="lnt"> 10
</span><span class="lnt"> 11
</span><span class="lnt"> 12
</span><span class="lnt"> 13
</span><span class="lnt"> 14
</span><span class="lnt"> 15
</span><span class="lnt"> 16
</span><span class="lnt"> 17
</span><span class="lnt"> 18
</span><span class="lnt"> 19
</span><span class="lnt"> 20
</span><span class="lnt"> 21
</span><span class="lnt"> 22
</span><span class="lnt"> 23
</span><span class="lnt"> 24
</span><span class="lnt"> 25
</span><span class="lnt"> 26
</span><span class="lnt"> 27
</span><span class="lnt"> 28
</span><span class="lnt"> 29
</span><span class="lnt"> 30
</span><span class="lnt"> 31
</span><span class="lnt"> 32
</span><span class="lnt"> 33
</span><span class="lnt"> 34
</span><span class="lnt"> 35
</span><span class="lnt"> 36
</span><span class="lnt"> 37
</span><span class="lnt"> 38
</span><span class="lnt"> 39
</span><span class="lnt"> 40
</span><span class="lnt"> 41
</span><span class="lnt"> 42
</span><span class="lnt"> 43
</span><span class="lnt"> 44
</span><span class="lnt"> 45
</span><span class="lnt"> 46
</span><span class="lnt"> 47
</span><span class="lnt"> 48
</span><span class="lnt"> 49
</span><span class="lnt"> 50
</span><span class="lnt"> 51
</span><span class="lnt"> 52
</span><span class="lnt"> 53
</span><span class="lnt"> 54
</span><span class="lnt"> 55
</span><span class="lnt"> 56
</span><span class="lnt"> 57
</span><span class="lnt"> 58
</span><span class="lnt"> 59
</span><span class="lnt"> 60
</span><span class="lnt"> 61
</span><span class="lnt"> 62
</span><span class="lnt"> 63
</span><span class="lnt"> 64
</span><span class="lnt"> 65
</span><span class="lnt"> 66
</span><span class="lnt"> 67
</span><span class="lnt"> 68
</span><span class="lnt"> 69
</span><span class="lnt"> 70
</span><span class="lnt"> 71
</span><span class="lnt"> 72
</span><span class="lnt"> 73
</span><span class="lnt"> 74
</span><span class="lnt"> 75
</span><span class="lnt"> 76
</span><span class="lnt"> 77
</span><span class="lnt"> 78
</span><span class="lnt"> 79
</span><span class="lnt"> 80
</span><span class="lnt"> 81
</span><span class="lnt"> 82
</span><span class="lnt"> 83
</span><span class="lnt"> 84
</span><span class="lnt"> 85
</span><span class="lnt"> 86
</span><span class="lnt"> 87
</span><span class="lnt"> 88
</span><span class="lnt"> 89
</span><span class="lnt"> 90
</span><span class="lnt"> 91
</span><span class="lnt"> 92
</span><span class="lnt"> 93
</span><span class="lnt"> 94
</span><span class="lnt"> 95
</span><span class="lnt"> 96
</span><span class="lnt"> 97
</span><span class="lnt"> 98
</span><span class="lnt"> 99
</span><span class="lnt">100
</span><span class="lnt">101
</span><span class="lnt">102
</span><span class="lnt">103
</span><span class="lnt">104
</span><span class="lnt">105
</span><span class="lnt">106
</span><span class="lnt">107
</span><span class="lnt">108
</span><span class="lnt">109
</span><span class="lnt">110
</span><span class="lnt">111
</span><span class="lnt">112
</span><span class="lnt">113
</span><span class="lnt">114
</span><span class="lnt">115
</span><span class="lnt">116
</span><span class="lnt">117
</span><span class="lnt">118
</span><span class="lnt">119
</span><span class="lnt">120
</span><span class="lnt">121
</span><span class="lnt">122
</span><span class="lnt">123
</span><span class="lnt">124
</span><span class="lnt">125
</span><span class="lnt">126
</span><span class="lnt">127
</span><span class="lnt">128
</span><span class="lnt">129
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% extends &#39;_layout.swig&#39; %}
</span></span><span class="line"><span class="cl">{% import &#39;_macro/sidebar.swig&#39; as sidebar_template %}
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  {% block title %}{#
</span></span><span class="line"><span class="cl">  #}{% set page_title_suffix = &#39; | &#39; + title %}{#
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  #}{% if page.type === &#34;categories&#34; and not page.title %}{#
</span></span><span class="line"><span class="cl">    #}{{ __(&#39;title.category&#39;) + page_title_suffix }}{#
</span></span><span class="line"><span class="cl">  #}{% elif page.type === &#34;tags&#34; and not page.title %}{#
</span></span><span class="line"><span class="cl">    #}{{ __(&#39;title.tag&#39;) + page_title_suffix }}{#
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  #}{% elif page.type === &#34;photos&#34; and not page.title %}{#
</span></span><span class="line"><span class="cl">  #}{{ __(&#39;title.photos&#39;) + page_title_suffix }}{#
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  #}{% else %}{#
</span></span><span class="line"><span class="cl">    #}{{ page.title + page_title_suffix }}{#
</span></span><span class="line"><span class="cl">  #}{% endif %}{#
</span></span><span class="line"><span class="cl">#}{% endblock %}
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">{% block page_class %}page-post-detail{% endblock %}
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">{% block content %}
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  &lt;div id=&#34;posts&#34; class=&#34;posts-expand&#34;&gt;
</span></span><span class="line"><span class="cl">    {##################}
</span></span><span class="line"><span class="cl">    {#### PAGE BLOCK ###}
</span></span><span class="line"><span class="cl">    {##################}
</span></span><span class="line"><span class="cl">    &lt;div class=&#34;post-block page&#34;&gt;
</span></span><span class="line"><span class="cl">      {% include &#39;_partials/page-header.swig&#39; %}
</span></span><span class="line"><span class="cl">      {#################}
</span></span><span class="line"><span class="cl">      {#### PAGE BODY ###}
</span></span><span class="line"><span class="cl">      {#################}
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">      &lt;script src=&#34;//at.alicdn.com/t/font_578712_g26jo2kbzd5qm2t9.js&#34;&gt;&lt;/script&gt;
</span></span><span class="line"><span class="cl">      &lt;div class=&#34;post-body{% if theme.han %} han-init-context{% endif %}{% if page.direction &amp;&amp; page.direction.toLowerCase() === &#39;rtl&#39; %} rtl{% endif %}&#34;&gt;
</span></span><span class="line"><span class="cl">        &lt;div class=&#34;links-list&#34;&gt;
</span></span><span class="line"><span class="cl">          {% for svg,link in site.data.links %}
</span></span><span class="line"><span class="cl">            &lt;div class=&#34;card-box&#34; title=&#34;{{ link.info }}&#34;&gt;
</span></span><span class="line"><span class="cl">              &lt;a href=&#34;{{ link.site }}&#34; target=&#34;_blank&#34;&gt;
</span></span><span class="line"><span class="cl">                {% if link.avatar %}
</span></span><span class="line"><span class="cl">                  &lt;img class=&#34;card-avatar&#34; data-original=&#34;{{ link.avatar }}&#34; alt=&#34;{{ link.nickname }}&#34;/&gt;
</span></span><span class="line"><span class="cl">                {% else %}
</span></span><span class="line"><span class="cl">                  &lt;svg class=&#34;card-avatar&#34; aria-hidden=&#34;true&#34;&gt;
</span></span><span class="line"><span class="cl">                    &lt;use xlink:href=&#34;#icon-{{svg+1}}&#34;&gt;&lt;/use&gt;
</span></span><span class="line"><span class="cl">                  &lt;/svg&gt;
</span></span><span class="line"><span class="cl">                {% endif %}
</span></span><span class="line"><span class="cl">                &lt;span title=&#34;{{ link.nickname }}&#34;&gt;@{{ link.nickname }}&lt;/span&gt;
</span></span><span class="line"><span class="cl">              &lt;/a&gt;
</span></span><span class="line"><span class="cl">            &lt;/div&gt;
</span></span><span class="line"><span class="cl">          {% endfor %}
</span></span><span class="line"><span class="cl">        &lt;/div&gt;
</span></span><span class="line"><span class="cl">        {{ page.content }}
</span></span><span class="line"><span class="cl">      &lt;/div&gt;
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">      &lt;style&gt;
</span></span><span class="line"><span class="cl">        /* @Author: lruihao.cn */
</span></span><span class="line"><span class="cl">        .links-list {
</span></span><span class="line"><span class="cl">          margin-top: 1rem;
</span></span><span class="line"><span class="cl">          display: flex;
</span></span><span class="line"><span class="cl">          flex-direction: row;
</span></span><span class="line"><span class="cl">          justify-content: space-between;
</span></span><span class="line"><span class="cl">          flex-wrap: wrap;
</span></span><span class="line"><span class="cl">        }
</span></span><span class="line"><span class="cl">        .card-box {
</span></span><span class="line"><span class="cl">          width: 150px;
</span></span><span class="line"><span class="cl">          height: 200px;
</span></span><span class="line"><span class="cl">          font-size: 1rem;
</span></span><span class="line"><span class="cl">          text-align: center;
</span></span><span class="line"><span class="cl">          background: rgba(255,255,255,0.3);
</span></span><span class="line"><span class="cl">          box-sizing: border-box;
</span></span><span class="line"><span class="cl">          box-shadow: 3px 3px 5px #aaa;
</span></span><span class="line"><span class="cl">          border-radius: 5px;
</span></span><span class="line"><span class="cl">          transition-duration: 0.3s;
</span></span><span class="line"><span class="cl">          margin-bottom: 1rem;
</span></span><span class="line"><span class="cl">          display: flex;
</span></span><span class="line"><span class="cl">          flex-direction: column;
</span></span><span class="line"><span class="cl">        }
</span></span><span class="line"><span class="cl">        .card-box:hover {
</span></span><span class="line"><span class="cl">          background: #fff;
</span></span><span class="line"><span class="cl">          transform: scale(1.03);
</span></span><span class="line"><span class="cl">          box-shadow: 0 0 3px #aaa;
</span></span><span class="line"><span class="cl">        }
</span></span><span class="line"><span class="cl">        .card-box a {
</span></span><span class="line"><span class="cl">          border:none;
</span></span><span class="line"><span class="cl">        }
</span></span><span class="line"><span class="cl">        .card-avatar {
</span></span><span class="line"><span class="cl">          width: 100%!important;
</span></span><span class="line"><span class="cl">          height: 150px!important;
</span></span><span class="line"><span class="cl">          border-radius: 5px;
</span></span><span class="line"><span class="cl">          margin: 0;
</span></span><span class="line"><span class="cl">          padding: 0;
</span></span><span class="line"><span class="cl">        }
</span></span><span class="line"><span class="cl">        .card-box span{
</span></span><span class="line"><span class="cl">          display: block;
</span></span><span class="line"><span class="cl">          position: relative;
</span></span><span class="line"><span class="cl">          bottom: 1rem;
</span></span><span class="line"><span class="cl">          align-self: flex-end;
</span></span><span class="line"><span class="cl">          color: #2bbc8a;
</span></span><span class="line"><span class="cl">          font-weight: bold;
</span></span><span class="line"><span class="cl">          max-width: 100%;
</span></span><span class="line"><span class="cl">          overflow: hidden;
</span></span><span class="line"><span class="cl">          white-space: nowrap;
</span></span><span class="line"><span class="cl">          text-overflow: ellipsis;
</span></span><span class="line"><span class="cl">          margin-top: 15px;
</span></span><span class="line"><span class="cl">        }
</span></span><span class="line"><span class="cl">        .card-box span:hover {
</span></span><span class="line"><span class="cl">          color: #d480aa;
</span></span><span class="line"><span class="cl">        }
</span></span><span class="line"><span class="cl">      &lt;/style&gt;
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">      {#####################}
</span></span><span class="line"><span class="cl">      {#### END PAGE BODY ###}
</span></span><span class="line"><span class="cl">      {#####################}
</span></span><span class="line"><span class="cl">    &lt;/div&gt;
</span></span><span class="line"><span class="cl">    {% include &#39;_partials/breadcrumb.swig&#39; %}
</span></span><span class="line"><span class="cl">    {######################}
</span></span><span class="line"><span class="cl">    {#### END PAGE BLOCK ###}
</span></span><span class="line"><span class="cl">    {######################}
</span></span><span class="line"><span class="cl">  &lt;/div&gt;
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">{% endblock %}
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">{% block sidebar %}
</span></span><span class="line"><span class="cl">  {{ sidebar_template.render(false) }}
</span></span><span class="line"><span class="cl">{% endblock %}
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">{% block script_extra %}
</span></span><span class="line"><span class="cl">  {% include &#39;_scripts/pages/post-details.swig&#39; %}
</span></span><span class="line"><span class="cl">{% endblock %}</span></span></code></pre></td></tr></table>
</div>
</div><ul>
<li><strong>若未使用懒加载请将模板中的<code>data-original</code>属性改为<code>src</code></strong></li>
<li><strong>若懒加载无法加载预览图请手动添加<code>src=&quot;/images/loading.gif&quot;</code></strong></li>
<li><strong>若 fancybox 显示 alt 内容请更换 fancybox2 或者将 alt 属值删除</strong></li>
</ul>
<div class="highlight" id="id-5"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">&lt;img class=&#34;card-avatar&#34; data-original=&#34;{{ link.avatar }}&#34; alt=&#34;{{ link.nickname }}&#34;/&gt;</span></span></code></pre></td></tr></table>
</div>
</div><p>然后<code>hexo n page links</code>新建一个页面文章配置写下如下内容：</p>
<div class="highlight" id="id-6"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-XMl" data-lang="XMl"><span class="line"><span class="cl">---
</span></span><span class="line"><span class="cl">title: 友情链接
</span></span><span class="line"><span class="cl">layout: links
</span></span><span class="line"><span class="cl">---</span></span></code></pre></td></tr></table>
</div>
</div><p>然后在<code>links</code>页面文件夹下面新建文件夹<code>_data</code>，再在里面新建<code>links.yml</code>，内容如下</p>
<div class="highlight" id="id-7"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl">- nickname: 博採眾長
</span></span><span class="line"><span class="cl">  avatar: http://lruihao.cn/images/avatar.png
</span></span><span class="line"><span class="cl">  site: http://lruihao.cn
</span></span><span class="line"><span class="cl">  info: 一个菜鸟的博客
</span></span><span class="line"><span class="cl">- nickname:                 #友链名称
</span></span><span class="line"><span class="cl">  avatar:                   #友链头像
</span></span><span class="line"><span class="cl">  site:                     #友链地址
</span></span><span class="line"><span class="cl">  info:                     #友链说明</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="备案信息自定义">备案信息自定义</h3>
<div class="highlight" id="id-8"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl">## -------------------------------------------------------------
</span></span><span class="line"><span class="cl">## footer_custom Settings
</span></span><span class="line"><span class="cl">## -------------------------------------------------------------
</span></span><span class="line"><span class="cl">beian:
</span></span><span class="line"><span class="cl">  enable: true
</span></span><span class="line"><span class="cl">  gov: 湘公网安备 43030402000254 号
</span></span><span class="line"><span class="cl">  recordcode: 43030402000254
</span></span><span class="line"><span class="cl">  icp: 湘 ICP 备 18020535 号</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="文字抖动特效">文字抖动特效</h3>
<div class="highlight" id="id-9"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl"><span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">&#34;shaky&#34;</span><span class="nt">&gt;</span>（づ●&#39;◡&#39;●) づ ❥内容区<span class="nt">&lt;/div&gt;</span></span></span></code></pre></td></tr></table>
</div>
</div><div class="shaky">（づ●'◡'●) づ ❥内容区</div>
<h3 id="左下角微信公众号">左下角微信公众号</h3>
<div class="highlight" id="id-10"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl">\source\css\_custom\customs.styl</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="相关文章收纳">相关文章收纳</h3>
<p>加入 H5 标签，实现可收纳功能，点击查看详情。</p>
<h3 id="chat-services">Chat Services</h3>
<blockquote>
<p>共 chatra,tidio,daovoice 三个选项，三选一</p>
</blockquote>
<div class="highlight" id="id-11"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">## Chatra Support
</span></span><span class="line"><span class="cl">## See: https://chatra.io
</span></span><span class="line"><span class="cl">## Dashboard: https://app.chatra.io/settings/general
</span></span><span class="line"><span class="cl">chatra:
</span></span><span class="line"><span class="cl">  enable: false
</span></span><span class="line"><span class="cl">  async: true
</span></span><span class="line"><span class="cl">  id: ## visit Dashboard to get your ChatraID
</span></span><span class="line"><span class="cl">  #embed: ## unfinished experimental feature for developers, See: https://chatra.io/help/api/#injectto
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">## Tidio Support
</span></span><span class="line"><span class="cl">## See: https://www.tidiochat.com
</span></span><span class="line"><span class="cl">## Dashboard: https://www.tidiochat.com/panel/dashboard
</span></span><span class="line"><span class="cl">tidio:
</span></span><span class="line"><span class="cl">  enable: false
</span></span><span class="line"><span class="cl">  key: ## Public Key, get it from Dashboard, See: https://www.tidiochat.com/panel/settings/developer
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">#在线客服
</span></span><span class="line"><span class="cl">daovoice: true
</span></span><span class="line"><span class="cl">daovoice_app_id: xxxx   ## http://www.daovoice.io/</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="pdf-和-mermaid-解析模块">pdf 和 Mermaid 解析模块</h3>
<p><a href="https://lruihao.cn/posts/next-pdf/"target="_blank" rel="external nofollow noopener noreferrer">pdf 传送门<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
<div class="highlight" id="id-12"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">pdf:
</span></span><span class="line"><span class="cl">  enable: false
</span></span><span class="line"><span class="cl">  ## Default height
</span></span><span class="line"><span class="cl">  height: 500px
</span></span><span class="line"><span class="cl">  pdfobject:
</span></span><span class="line"><span class="cl">    cdn: //cdn.jsdelivr.net/npm/pdfobject@2/pdfobject.min.js
</span></span><span class="line"><span class="cl">    #cdn: //cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">## Mermaid tag
</span></span><span class="line"><span class="cl">mermaid:
</span></span><span class="line"><span class="cl">  enable: false
</span></span><span class="line"><span class="cl">  ## Available themes: default | dark | forest | neutral
</span></span><span class="line"><span class="cl">  theme: forest
</span></span><span class="line"><span class="cl">  cdn: //cdn.jsdelivr.net/npm/mermaid@8/dist/mermaid.min.js
</span></span><span class="line"><span class="cl">  #cdn: //cdnjs.cloudflare.com/ajax/libs/mermaid/8.0.0/mermaid.min.js</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="模仿-csdn-转发样式">模仿 csdn 转发样式</h3>
<div class="highlight" id="id-13"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-diff" data-lang="diff"><span class="line"><span class="cl">...
</span></span><span class="line"><span class="cl">   &lt;a class=&#34;post-title-link&#34; href=&#34;{{ url_for(post.path) }}&#34; itemprop=&#34;url&#34;&gt;
</span></span><span class="line"><span class="cl"><span class="gi">+    {% if post.repost %}
</span></span></span><span class="line"><span class="cl"><span class="gi">+      &lt;span class=&#34;repost&#34;&gt;转&lt;/span&gt;
</span></span></span><span class="line"><span class="cl"><span class="gi">+    {% endif %}
</span></span></span><span class="line"><span class="cl"><span class="gi"></span>     {{ post.title | default(__(&#39;post.untitled&#39;))}}
</span></span><span class="line"><span class="cl">   &lt;/a&gt;
</span></span><span class="line"><span class="cl"> {% else -%}
</span></span><span class="line"><span class="cl"><span class="gi">+  {% if post.repost %}
</span></span></span><span class="line"><span class="cl"><span class="gi">+    &lt;span class=&#34;repost&#34;&gt;转&lt;/span&gt;
</span></span></span><span class="line"><span class="cl"><span class="gi">+  {% endif %}
</span></span></span><span class="line"><span class="cl"><span class="gi"></span>   {{- post.title -}}
</span></span><span class="line"><span class="cl">...
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight" id="id-14"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-css" data-lang="css"><span class="line"><span class="cl"><span class="p">.</span><span class="nc">repost</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="k">color</span><span class="p">:</span> <span class="mh">#5acc79</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">  <span class="k">border</span><span class="p">:</span> <span class="mi">1</span><span class="kt">px</span> <span class="kc">solid</span> <span class="mh">#e7f4df</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">  <span class="k">border-radius</span><span class="p">:</span> <span class="mi">20</span><span class="kt">px</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">  <span class="k">padding</span><span class="p">:</span> <span class="mi">2</span><span class="kt">px</span> <span class="mi">5</span><span class="kt">px</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">  <span class="k">font-size</span><span class="p">:</span> <span class="mi">15</span><span class="kt">px</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">  <span class="k">font-weight</span><span class="p">:</span> <span class="mi">500</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight" id="id-15"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl">---
</span></span><span class="line"><span class="cl">title: xxxx
</span></span><span class="line"><span class="cl">repost: true
</span></span><span class="line"><span class="cl">---</span></span></code></pre></td></tr></table>
</div>
</div><p><a href="https://lruihao.cn/tags/%e4%bb%96%e5%b1%b1%e4%b9%8b%e7%9f%b3/"target="_blank" rel="external nofollow noopener noreferrer">预览<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
<h3 id="热度页面">热度页面</h3>
<blockquote>
<p>打开<code>hexo\themes\next\layout</code>新建 top.swig 文件，写下如下内容保存：</p>
</blockquote>
<div class="highlight" id="id-16"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">  1
</span><span class="lnt">  2
</span><span class="lnt">  3
</span><span class="lnt">  4
</span><span class="lnt">  5
</span><span class="lnt">  6
</span><span class="lnt">  7
</span><span class="lnt">  8
</span><span class="lnt">  9
</span><span class="lnt"> 10
</span><span class="lnt"> 11
</span><span class="lnt"> 12
</span><span class="lnt"> 13
</span><span class="lnt"> 14
</span><span class="lnt"> 15
</span><span class="lnt"> 16
</span><span class="lnt"> 17
</span><span class="lnt"> 18
</span><span class="lnt"> 19
</span><span class="lnt"> 20
</span><span class="lnt"> 21
</span><span class="lnt"> 22
</span><span class="lnt"> 23
</span><span class="lnt"> 24
</span><span class="lnt"> 25
</span><span class="lnt"> 26
</span><span class="lnt"> 27
</span><span class="lnt"> 28
</span><span class="lnt"> 29
</span><span class="lnt"> 30
</span><span class="lnt"> 31
</span><span class="lnt"> 32
</span><span class="lnt"> 33
</span><span class="lnt"> 34
</span><span class="lnt"> 35
</span><span class="lnt"> 36
</span><span class="lnt"> 37
</span><span class="lnt"> 38
</span><span class="lnt"> 39
</span><span class="lnt"> 40
</span><span class="lnt"> 41
</span><span class="lnt"> 42
</span><span class="lnt"> 43
</span><span class="lnt"> 44
</span><span class="lnt"> 45
</span><span class="lnt"> 46
</span><span class="lnt"> 47
</span><span class="lnt"> 48
</span><span class="lnt"> 49
</span><span class="lnt"> 50
</span><span class="lnt"> 51
</span><span class="lnt"> 52
</span><span class="lnt"> 53
</span><span class="lnt"> 54
</span><span class="lnt"> 55
</span><span class="lnt"> 56
</span><span class="lnt"> 57
</span><span class="lnt"> 58
</span><span class="lnt"> 59
</span><span class="lnt"> 60
</span><span class="lnt"> 61
</span><span class="lnt"> 62
</span><span class="lnt"> 63
</span><span class="lnt"> 64
</span><span class="lnt"> 65
</span><span class="lnt"> 66
</span><span class="lnt"> 67
</span><span class="lnt"> 68
</span><span class="lnt"> 69
</span><span class="lnt"> 70
</span><span class="lnt"> 71
</span><span class="lnt"> 72
</span><span class="lnt"> 73
</span><span class="lnt"> 74
</span><span class="lnt"> 75
</span><span class="lnt"> 76
</span><span class="lnt"> 77
</span><span class="lnt"> 78
</span><span class="lnt"> 79
</span><span class="lnt"> 80
</span><span class="lnt"> 81
</span><span class="lnt"> 82
</span><span class="lnt"> 83
</span><span class="lnt"> 84
</span><span class="lnt"> 85
</span><span class="lnt"> 86
</span><span class="lnt"> 87
</span><span class="lnt"> 88
</span><span class="lnt"> 89
</span><span class="lnt"> 90
</span><span class="lnt"> 91
</span><span class="lnt"> 92
</span><span class="lnt"> 93
</span><span class="lnt"> 94
</span><span class="lnt"> 95
</span><span class="lnt"> 96
</span><span class="lnt"> 97
</span><span class="lnt"> 98
</span><span class="lnt"> 99
</span><span class="lnt">100
</span><span class="lnt">101
</span><span class="lnt">102
</span><span class="lnt">103
</span><span class="lnt">104
</span><span class="lnt">105
</span><span class="lnt">106
</span><span class="lnt">107
</span><span class="lnt">108
</span><span class="lnt">109
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% extends &#39;_layout.swig&#39; %}
</span></span><span class="line"><span class="cl">{% import &#39;_macro/sidebar.swig&#39; as sidebar_template %}
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  {% block title %}{#
</span></span><span class="line"><span class="cl">  #}{% set page_title_suffix = &#39; | &#39; + title %}{#
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  #}{% if page.type === &#34;categories&#34; and not page.title %}{#
</span></span><span class="line"><span class="cl">    #}{{ __(&#39;title.category&#39;) + page_title_suffix }}{#
</span></span><span class="line"><span class="cl">  #}{% elif page.type === &#34;tags&#34; and not page.title %}{#
</span></span><span class="line"><span class="cl">    #}{{ __(&#39;title.tag&#39;) + page_title_suffix }}{#
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  #}{% elif page.type === &#34;photos&#34; and not page.title %}{#
</span></span><span class="line"><span class="cl">  #}{{ __(&#39;title.photos&#39;) + page_title_suffix }}{#
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  #}{% else %}{#
</span></span><span class="line"><span class="cl">    #}{{ page.title + page_title_suffix }}{#
</span></span><span class="line"><span class="cl">  #}{% endif %}{#
</span></span><span class="line"><span class="cl">#}{% endblock %}
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">{% block page_class %}page-post-detail{% endblock %}
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">{% block content %}
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  &lt;div id=&#34;posts&#34; class=&#34;posts-expand&#34;&gt;
</span></span><span class="line"><span class="cl">    {##################}
</span></span><span class="line"><span class="cl">    {#### PAGE BLOCK ###}
</span></span><span class="line"><span class="cl">    {##################}
</span></span><span class="line"><span class="cl">    &lt;div class=&#34;post-block page&#34;&gt;
</span></span><span class="line"><span class="cl">      {% include &#39;_partials/page-header.swig&#39; %}
</span></span><span class="line"><span class="cl">      {#################}
</span></span><span class="line"><span class="cl">      {#### PAGE BODY ###}
</span></span><span class="line"><span class="cl">      {#################}
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">      &lt;div class=&#34;post-body{% if theme.han %} han-init-context{% endif %}{% if page.direction &amp;&amp; page.direction.toLowerCase() === &#39;rtl&#39; %} rtl{% endif %}&#34;&gt;
</span></span><span class="line"><span class="cl">        {{ page.content }}
</span></span><span class="line"><span class="cl">        &lt;div id=&#34;top&#34;&gt;&lt;/div&gt;
</span></span><span class="line"><span class="cl">      &lt;/div&gt;
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">      &lt;style&gt;
</span></span><span class="line"><span class="cl">        #top{
</span></span><span class="line"><span class="cl">          display: flex;
</span></span><span class="line"><span class="cl">          flex-direction: row;
</span></span><span class="line"><span class="cl">          justify-content: space-between;
</span></span><span class="line"><span class="cl">          flex-wrap: wrap;
</span></span><span class="line"><span class="cl">          width: 100%;
</span></span><span class="line"><span class="cl">          min-height: calc({{ page.limit }} * 20px);
</span></span><span class="line"><span class="cl">        }
</span></span><span class="line"><span class="cl">        #top div{
</span></span><span class="line"><span class="cl">          width: 400px;
</span></span><span class="line"><span class="cl">          height: 40px;
</span></span><span class="line"><span class="cl">          max-width: 400px;
</span></span><span class="line"><span class="cl">          overflow: hidden;
</span></span><span class="line"><span class="cl">          white-space: nowrap;
</span></span><span class="line"><span class="cl">          text-overflow: ellipsis;
</span></span><span class="line"><span class="cl">        }
</span></span><span class="line"><span class="cl">        #top a{
</span></span><span class="line"><span class="cl">          color: #555;
</span></span><span class="line"><span class="cl">          text-decoration: none;
</span></span><span class="line"><span class="cl">          outline: 0;
</span></span><span class="line"><span class="cl">          border-bottom: 1px solid #999;
</span></span><span class="line"><span class="cl">          word-wrap: break-word;
</span></span><span class="line"><span class="cl">        }
</span></span><span class="line"><span class="cl">      &lt;/style&gt;
</span></span><span class="line"><span class="cl">      &lt;script src=&#34;https://cdn1.lncld.net/static/js/av-core-mini-0.6.4.js&#34;&gt;&lt;/script&gt;
</span></span><span class="line"><span class="cl">      &lt;script&gt;AV.initialize(&#34;{{ theme.valine.appid }}&#34;, &#34;{{ theme.valine.appkey }}&#34;);&lt;/script&gt;
</span></span><span class="line"><span class="cl">      &lt;script type=&#34;text/javascript&#34;&gt;
</span></span><span class="line"><span class="cl">        setTimeout(function(){
</span></span><span class="line"><span class="cl">          var time=0
</span></span><span class="line"><span class="cl">          var title=&#34;&#34;
</span></span><span class="line"><span class="cl">          var url=&#34;&#34;
</span></span><span class="line"><span class="cl">          var query = new AV.Query(&#39;Counter&#39;);
</span></span><span class="line"><span class="cl">          query.notEqualTo(&#39;id&#39;,0);
</span></span><span class="line"><span class="cl">          query.descending(&#39;time&#39;);
</span></span><span class="line"><span class="cl">          query.limit({{ page.limit }}); //设置篇数
</span></span><span class="line"><span class="cl">          query.find().then(function (todo) {
</span></span><span class="line"><span class="cl">            for (var i=0;i&lt;{{ page.limit }};i++){
</span></span><span class="line"><span class="cl">              var result=todo[i].attributes;
</span></span><span class="line"><span class="cl">              time=result.time;
</span></span><span class="line"><span class="cl">              title=result.title;
</span></span><span class="line"><span class="cl">              category=result.categories
</span></span><span class="line"><span class="cl">              url=result.url;
</span></span><span class="line"><span class="cl">              var content=&#34;&lt;div&gt;&#34;+&#34;【文章热度：&#34;+time+&#34;℃】&#34;+&#34;&lt;a href=&#39;&#34;+&#34;{{ config.url }}&#34;+&#34;&#34;+url+&#34;&#39;&gt;&#34;+title+&#34;&lt;/a&gt;&#34;+&#34;&lt;/div&gt;&#34;;
</span></span><span class="line"><span class="cl">              document.getElementById(&#34;top&#34;).innerHTML+=content;
</span></span><span class="line"><span class="cl">            }
</span></span><span class="line"><span class="cl">          }, function (error) {
</span></span><span class="line"><span class="cl">            console.log(&#34;error&#34;);
</span></span><span class="line"><span class="cl">          });
</span></span><span class="line"><span class="cl">        },1000)
</span></span><span class="line"><span class="cl">      &lt;/script&gt;
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">      {#####################}
</span></span><span class="line"><span class="cl">      {#### END PAGE BODY ###}
</span></span><span class="line"><span class="cl">      {#####################}
</span></span><span class="line"><span class="cl">    &lt;/div&gt;
</span></span><span class="line"><span class="cl">    {% include &#39;_partials/breadcrumb.swig&#39; %}
</span></span><span class="line"><span class="cl">    {######################}
</span></span><span class="line"><span class="cl">    {#### END PAGE BLOCK ###}
</span></span><span class="line"><span class="cl">    {######################}
</span></span><span class="line"><span class="cl">  &lt;/div&gt;
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">{% endblock %}
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">{% block sidebar %}
</span></span><span class="line"><span class="cl">  {{ sidebar_template.render(false) }}
</span></span><span class="line"><span class="cl">{% endblock %}
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">{% block script_extra %}
</span></span><span class="line"><span class="cl">  {% include &#39;_scripts/pages/post-details.swig&#39; %}
</span></span><span class="line"><span class="cl">{% endblock %}</span></span></code></pre></td></tr></table>
</div>
</div><p>其中第 36 行改成你自己的 leancloud 的 appid 和 appkey, 比如我的是在主题配置文件里面的 valine 配置下，所以我就写成<code>theme.valine.appid</code>。和我一样就不需要修改，其他自行配置。</p>
<p>然后<code>hexo n page top</code>新建一个页面文章配置写下如下内容，limit 表示显示篇数：</p>
<div class="highlight" id="id-17"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-XMl" data-lang="XMl"><span class="line"><span class="cl">---
</span></span><span class="line"><span class="cl">title: 热度
</span></span><span class="line"><span class="cl">layout: top
</span></span><span class="line"><span class="cl">limit: 20
</span></span><span class="line"><span class="cl">---</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="复制按钮样式">复制按钮样式</h3>
<p>

</p>
<blockquote>
<p>本来只想简单美化一下变成 night 样式的，后来写完发现 3dbtn 也挺喜欢的。</p>
</blockquote>
<div class="highlight" id="id-18"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="nl">codeblock:</span>
</span></span><span class="line"><span class="cl">  <span class="err">##</span> <span class="n">Manual</span> <span class="n">define</span> <span class="n">the</span> <span class="n">border</span> <span class="n">radius</span> <span class="n">in</span> <span class="n">codeblock</span>
</span></span><span class="line"><span class="cl">  <span class="err">##</span> <span class="n">Leave</span> <span class="n">it</span> <span class="n">empty</span> <span class="k">for</span> <span class="n">the</span> <span class="k">default</span> <span class="mi">1</span>
</span></span><span class="line"><span class="cl">  <span class="n">border_radius</span><span class="o">:</span> <span class="mi">5</span>
</span></span><span class="line"><span class="cl">  <span class="err">##</span> <span class="n">Add</span> <span class="n">copy</span> <span class="n">button</span> <span class="n">on</span> <span class="n">codeblock</span>
</span></span><span class="line"><span class="cl">  <span class="n">copy_button</span><span class="o">:</span>
</span></span><span class="line"><span class="cl">    <span class="n">enable</span><span class="o">:</span> <span class="kc">true</span>
</span></span><span class="line"><span class="cl">    <span class="err">##</span> <span class="n">Show</span> <span class="n">text</span> <span class="n">copy</span> <span class="n">result</span>
</span></span><span class="line"><span class="cl">    <span class="n">show_result</span><span class="o">:</span> <span class="kc">true</span>
</span></span><span class="line"><span class="cl">    <span class="err">##</span> <span class="n">Style</span><span class="o">:</span> <span class="err">&#39;</span><span class="n">light</span><span class="o">,</span><span class="n">night</span><span class="o">,</span><span class="n">flat</span><span class="o">,</span><span class="mf">3d</span><span class="n">btn</span><span class="err">&#39;</span> <span class="n">is</span> <span class="n">currently</span> <span class="n">available</span><span class="o">,</span> <span class="n">leave</span> <span class="n">it</span> <span class="n">empty</span> <span class="n">or</span> <span class="n">light</span> <span class="n">is</span> <span class="k">default</span> <span class="n">theme</span>
</span></span><span class="line"><span class="cl">    <span class="n">style</span><span class="o">:</span> <span class="n">night</span></span></span></code></pre></td></tr></table>
</div>
</div>]]></description></item><item><title>模仿知乎卡片式链接</title><link>https://lruihao.cn/posts/linkcard/</link><pubDate>Fri, 15 Mar 2019 15:21:39 +0000</pubDate><author>Lruihao</author><guid>https://lruihao.cn/posts/linkcard/</guid><description><![CDATA[<blockquote>
<p>模仿知乎的卡片式链接，idea 来自 [兰州小红鸡]</p>
</blockquote>
<h2 id="源码">源码</h2>
<blockquote>
<p><strong>2021/10/2 1:29 更新</strong></p>
</blockquote>
<p>这是一种后加载，创建<code>linkcard.js</code>放到<code>source/js/src/</code>，然后在<code>next\layout\_macro\post.swig</code>中引用</p>
<div class="highlight" id="id-1"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-js" data-lang="js"><span class="line"><span class="cl"><span class="kd">function</span> <span class="nx">cardLink</span><span class="p">()</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="kd">let</span> <span class="nx">$cardLinks</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">querySelectorAll</span><span class="p">(</span><span class="s1">&#39;.card-link&#39;</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">  <span class="k">if</span> <span class="p">(</span><span class="nx">$cardLinks</span><span class="p">.</span><span class="nx">length</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="k">return</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl">  <span class="c1">//插入样式
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>  <span class="kd">let</span> <span class="nx">$linkStyle</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">&#39;style&#39;</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">  <span class="nx">$linkStyle</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span>
</span></span><span class="line"><span class="cl">    <span class="s1">&#39;.card-link,.card-link:hover{text-decoration:none;border:none!important;color:inherit!important}.card-link{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;color:inherit;text-decoration:none}.ztext{word-break:break-word;line-height:1.6}.card-link-backdrop{position:absolute;top:0;left:0;right:0;bottom:0;background-image:url(/images/card-link-bg.jpg);background-repeat:no-repeat;-webkit-filter:blur(20px);filter:blur(20px);background-size:cover;background-position:center}.card-link,.card-link:hover{text-decoration:none;border:none!important;color:inherit!important}.card-link-content{position:relative;display:flex;align-items:center;justify-content:space-between;padding:12px;border-radius:inherit;background-color:rgba(246,246,246,0.88)}.card-link-text{overflow:hidden}.card-link-title{display:-webkit-box;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;max-height:calc(16px * 1.25 * 2);font-size:16px;font-weight:500;line-height:1.25;color:#1a1a1a}.card-link-meta{display:flex;margin-top:4px;font-size:14px;line-height:20px;color:#999;white-space:nowrap}.card-link-url{display: inline-flex;align-items: center;}.card-link-imageCell{margin-left:8px;border-radius:6px}.card-link-image{display:block;width:60px;height:60px;border-radius:inherit}&#39;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">  <span class="nb">document</span><span class="p">.</span><span class="nx">querySelector</span><span class="p">(</span><span class="s1">&#39;body&#39;</span><span class="p">).</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">$linkStyle</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">  <span class="c1">//渲染 DOM
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>  <span class="k">for</span> <span class="p">(</span><span class="kd">let</span> <span class="nx">$cardLink</span> <span class="k">of</span> <span class="nx">$cardLinks</span><span class="p">)</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nx">$cardLink</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="sb">`&lt;span class=&#39;card-link-backdrop&#39;&gt;&lt;/span&gt;&lt;span class=&#39;card-link-content&#39;&gt;&lt;span class=&#39;card-link-text&#39;&gt;&lt;span class=&#39;card-link-title&#39;&gt;</span><span class="si">${</span><span class="nx">$cardLink</span><span class="p">.</span><span class="nx">innerText</span><span class="si">}</span><span class="sb">&lt;/span&gt;&lt;span class=&#39;card-link-meta&#39;&gt;&lt;span class=&#39;card-link-url&#39;&gt;&lt;svg class=&#39;Zi Zi--InsertLink&#39; fill=&#39;currentColor&#39; viewBox=&#39;0 0 24 24&#39; width=&#39;17&#39; height=&#39;17&#39;&gt;&lt;path d=&#39;M6.77 17.23c-.905-.904-.94-2.333-.08-3.193l3.059-3.06-1.192-1.19-3.059 3.058c-1.489 1.489-1.427 3.954.138 5.519s4.03 1.627 5.519.138l3.059-3.059-1.192-1.192-3.059 3.06c-.86.86-2.289.824-3.193-.08zm3.016-8.673l1.192 1.192 3.059-3.06c.86-.86 2.289-.824 3.193.08.905.905.94 2.334.08 3.194l-3.059 3.06 1.192 1.19 3.059-3.058c1.489-1.489 1.427-3.954-.138-5.519s-4.03-1.627-5.519-.138L9.786 8.557zm-1.023 6.68c.33.33.863.343 1.177.029l5.34-5.34c.314-.314.3-.846-.03-1.176-.33-.33-.862-.344-1.176-.03l-5.34 5.34c-.314.314-.3.846.03 1.177z&#39; fill-rule=&#39;evenodd&#39;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;</span><span class="si">${</span><span class="nx">$cardLink</span><span class="p">.</span><span class="nx">href</span><span class="si">}</span><span class="sb">&lt;/span&gt;&lt;/span&gt;&lt;span class=&#39;card-link-imageCell&#39;&gt;&lt;img class=&#39;card-link-image&#39; alt=&#39;card-link icon&#39; src=&#39;https://lruihao.cn/images/linkicon.png&#39;&gt;&lt;/span&gt;&lt;/span&gt;`</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="nb">window</span><span class="p">.</span><span class="nx">onload</span> <span class="o">=</span> <span class="p">()</span> <span class="p">=&gt;</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nx">cardLink</span><span class="p">();</span>
</span></span><span class="line"><span class="cl"><span class="p">};</span></span></span></code></pre></td></tr></table>
</div>
</div><h2 id="使用">使用</h2>
<div class="highlight" id="id-2"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="c">&lt;!--知乎卡片链接--&gt;</span>
</span></span><span class="line"><span class="cl"><span class="p">&lt;</span><span class="nt">script</span> <span class="na">type</span><span class="o">=</span><span class="s">&#34;text/javascript&#34;</span> <span class="na">src</span><span class="o">=</span><span class="s">&#34;/js/src/card-link.js&#34;</span><span class="p">&gt;&lt;/</span><span class="nt">script</span><span class="p">&gt;</span></span></span></code></pre></td></tr></table>
</div>
</div><p>html 链接写法，a 标签加上<code>class=&quot;card-link&quot;</code></p>
<div class="highlight" id="id-3"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">&lt;a href=&#34;https://github.com/Lruihao/lruihao.github.io&#34; target=&#34;_blank&#34; class=&#34;card-link&#34;&gt;Lruihao 博客&lt;/a&gt;</span></span></code></pre></td></tr></table>
</div>
</div><a href="https://github.com/Lruihao/lruihao.github.io"target="_blank" rel="external nofollow noopener noreferrer" class="card-link"><span class="cl-backdrop" style="--cl-bg-url: url(/fixit.min.svg);"></span>
    <span class="cl-content">
      <span class="cl-text">
        <span class="cl-title">Lruihao 博客</span>
        <span class="cl-meta">
          <svg class="cl-icon-link" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z" fill="#a9a9b3"></path><path d="M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z" fill="#a9a9b3"></path></svg>
          <span class="cl-url">https://github.com/Lruihao/lruihao.github.io</span>
        </span>
      </span><svg class="cl-icon-globe" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="64" height="64"><path d="M960 512c0 249.408-203.2 448-448 448-244.778667 0-448-198.592-448-448S262.592 64 512 64s448 198.592 448 448" fill="#2196F3"></path><path d="M507.52 718.08c0-8.96-4.48-13.44-13.44-17.92-26.88-8.96-53.76-8.96-76.16-31.381333-4.48-8.96-4.48-17.92-8.96-26.88-8.96-8.96-31.36-13.44-44.8-17.92h-89.6c-13.44-4.48-22.4-22.4-31.36-35.84 0-4.48 0-13.461333-8.96-13.461334-8.96-4.458667-17.92 4.501333-26.88 0-4.48-4.458667-4.48-8.96-4.48-13.418666 0-13.461333 8.96-26.901333 17.92-35.861334 13.44-8.96 26.88 4.48 40.32 4.48 4.48 0 4.48 0 8.96 4.48 13.44 4.48 17.92 22.4 17.92 35.861334v8.96c0 4.48 4.48 4.48 8.96 4.48 4.48-22.4 4.48-44.821333 8.96-67.2 0-26.88 26.88-53.781333 49.28-62.72 8.96-4.458667 13.44 4.501333 22.4 0 26.88-8.96 94.08-35.84 80.64-71.658667-8.96-31.381333-35.84-62.698667-71.68-58.24-8.96 4.501333-13.44 8.96-22.4 13.461333-13.44 8.96-40.32 35.84-53.76 35.84-22.4-4.48-22.4-35.84-17.92-49.301333 4.48-17.92 44.8-76.138667 71.68-67.178667l17.92 17.92c8.96 4.48 22.4 4.48 35.84 4.48 4.48 0 8.96 0 13.44-4.48 4.48-4.48 4.48-4.48 4.48-8.96 0-13.44-13.44-26.901333-22.4-35.861333s-22.4-17.92-35.84-22.378667c-44.8-13.461333-116.48 4.458667-152.32 35.84-35.84 31.36-62.72 85.12-80.64 129.92-8.96 26.88-17.92 62.698667-22.4 94.08-4.48 22.4-8.96 40.32 4.48 62.698667 13.44 26.88 40.32 53.781333 67.2 71.68 17.92 13.44 53.76 13.44 71.68 35.84 13.44 17.941333 8.96 40.32 8.96 62.72 0 26.88 17.92 49.28 26.88 71.658667 4.48 13.461333 8.96 31.381333 13.44 44.821333 0 4.48 4.48 31.36 4.48 35.84 26.88 13.44 49.28 26.901333 80.64 35.861333 4.48 0 22.4-26.901333 22.4-31.381333 13.44-13.44 22.4-31.36 35.84-40.32 8.96-4.48 17.92-8.96 26.88-17.941333 8.96-8.96 13.44-26.88 17.92-40.32 4.48-8.938667 8.96-26.858667 4.48-40.298667M516.48 305.92c4.48 0 8.96-4.48 17.92-8.96 13.44-8.96 26.901333-22.4 40.32-31.36 13.461333-8.96 26.901333-22.4 35.861333-31.36 13.44-8.96 22.4-26.88 26.88-40.341333 4.48-8.96 17.941333-26.88 13.44-40.32-4.48-8.96-26.88-13.44-35.84-17.92C579.2 126.698667 547.84 122.24 512 122.24c-13.44 0-31.36 4.458667-35.84 17.92-4.48 22.4 13.44 17.92 31.36 22.4 0 0 4.48 35.84 4.48 40.32 4.48 22.421333-8.96 35.84-8.96 58.24 0 13.44 0 35.84 8.96 44.8h4.48zM892.8 619.52c4.501333-8.96 4.501333-22.4 8.96-31.36 4.501333-22.421333 4.501333-44.8 4.501333-67.2 0-44.8-4.501333-89.578667-17.92-129.92-8.96-13.44-13.461333-26.88-17.941333-40.341333-8.96-22.378667-22.4-44.8-40.32-62.698667-17.92-22.4-40.341333-85.12-80.64-67.2-13.44 4.501333-22.4 22.421333-31.36 31.381333l-26.88 40.32c-4.501333 4.48-8.96 13.44-4.501333 17.92 0 4.48 4.501333 4.48 8.96 4.48 8.96 4.501333 13.461333 4.501333 22.421333 8.96 4.48 0 8.96 4.501333 4.48 8.96 0 0 0 4.501333-4.48 4.501334-22.421333 22.4-44.8 40.32-67.2 62.698666-4.48 4.48-8.96 13.44-8.96 17.92s4.48 4.48 4.48 8.96c0 4.501333-4.48 4.501333-8.96 8.96-8.96 4.501333-17.92 8.96-22.4 13.461334-4.48 8.96 0 22.4-4.48 31.36-4.48 22.4-17.941333 40.32-26.901333 62.72-8.96 13.418667-13.418667 26.88-22.378667 40.32 0 17.92-4.501333 31.36 4.458667 44.8 22.421333 31.36 62.72 13.44 94.08 26.901333 8.96 4.458667 17.92 4.458667 22.421333 13.418667 13.418667 13.461333 13.418667 35.861333 17.92 49.301333 4.458667 17.92 8.96 35.84 17.92 53.76 4.48 22.421333 13.44 44.821333 17.92 62.72 40.341333-31.36 76.16-67.178667 103.04-112 26.88-31.424 40.341333-67.242667 53.76-103.104" fill="#CDDC39"></path></svg></span></a>]]></description></item><item><title>利用腾讯云对象存储 COS 桶托管 hexo 博客</title><link>https://lruihao.cn/posts/cos-hexo/</link><pubDate>Tue, 22 Jan 2019 14:57:08 +0000</pubDate><author>Lruihao</author><guid>https://lruihao.cn/posts/cos-hexo/</guid><description><![CDATA[<blockquote>
<p>本以为 coding pages 与腾讯云合作后会更好，没想到正是这种初期 bug 不断，速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了，本想挂到云服务器上，但是这个云服务器只续费了半年，可能不会再续费，前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章，知道了对象存储这个玩意，腾讯云 COS 提供免费 50G 的存储空间，还有 CDN 加速服务，我觉得是个不错的选择，部署后发现速度还挺好。<br>
适用于 hexo, hugo 等静态博客的部署。</p>
</blockquote>
<h2 id="创建存储桶">创建存储桶</h2>
<p>打开腾讯云控制台&ndash;云产品&ndash;存储&ndash;对象存储，然后创建存储桶。<br>
</p>
<h2 id="开启静态网站设置">开启静态网站设置</h2>
<p>在基础配置打开静态网站（关掉强制 https)<br>
</p>
<h2 id="绑定域名">绑定域名</h2>
<p></p>
<p>SSL 设置<br>
</p>
<h2 id="域名解析添加记录">域名解析，添加记录</h2>
<p>去 dns 服务商添加域名解析记录 CNAME 指向上面的域名</p>
<h2 id="hexo-设置">hexo 设置</h2>
<ul>
<li>安装插件</li>
</ul>
<div class="highlight" id="id-1"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">npm install hexo-deployer-cos --save</span></span></code></pre></td></tr></table>
</div>
</div><ul>
<li>站点配置文件</li>
</ul>
<div class="highlight" id="id-2"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">deploy:
</span></span><span class="line"><span class="cl">  type: cos
</span></span><span class="line"><span class="cl">  bucket: yourBucketName #cos 桶名称
</span></span><span class="line"><span class="cl">  appId: yourAppId #cos 桶名称后数字
</span></span><span class="line"><span class="cl">  secretId: yourSecretId  #云 API 密钥
</span></span><span class="line"><span class="cl">  secretKey: yourSecretKey #云 API 密钥
</span></span><span class="line"><span class="cl">  region: yourRegion #所属地域</span></span></code></pre></td></tr></table>
</div>
</div><ul>
<li>发布还是一样的</li>
</ul>
<div class="highlight" id="id-3"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">hexo clean
</span></span><span class="line"><span class="cl">hexo g -d</span></span></code></pre></td></tr></table>
</div>
</div><p>结果类似于<br>
</p>
<h2 id="cdn-刷新">CDN 刷新</h2>
<p>每次更新博客内容完后，都要登陆腾讯云 CDN&ndash;缓存刷新，手动刷新一下 CDN。</p>
<p>用脚本在每次更新后刷新</p>
<ul>
<li>安装</li>
</ul>
<div class="highlight" id="id-4"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">npm install qcloud-cdn-node-sdk --save</span></span></code></pre></td></tr></table>
</div>
</div><ul>
<li>创建<code>qcloudcdn.js</code>放入<code>script</code>文件夹</li>
</ul>
<div class="highlight" id="id-5"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-js" data-lang="js"><span class="line"><span class="cl"><span class="kr">const</span> <span class="nx">qcloudSDK</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">&#39;qcloud-cdn-node-sdk&#39;</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nx">qcloudSDK</span><span class="p">.</span><span class="nx">config</span><span class="p">({</span>
</span></span><span class="line"><span class="cl">  <span class="nx">secretId</span><span class="o">:</span> <span class="s1">&#39;你的 ID&#39;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="nx">secretKey</span><span class="o">:</span> <span class="s1">&#39;你的密钥&#39;</span>
</span></span><span class="line"><span class="cl"><span class="p">});</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nx">qcloudSDK</span><span class="p">.</span><span class="nx">request</span><span class="p">(</span>
</span></span><span class="line"><span class="cl">  <span class="s1">&#39;RefreshCdnDir&#39;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">  <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="s1">&#39;dirs.1&#39;</span><span class="o">:</span> <span class="s1">&#39;http://博客地址&#39;</span>
</span></span><span class="line"><span class="cl">  <span class="p">},</span>
</span></span><span class="line"><span class="cl">  <span class="p">(</span><span class="nx">res</span><span class="p">)</span> <span class="p">=&gt;</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">res</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">);</span></span></span></code></pre></td></tr></table>
</div>
</div><h2 id="自动-cdn-刷新配置-推荐">自动 CDN 刷新配置 （推荐）</h2>
<ol>
<li>进入腾讯云，找到 函数计算 -&gt; CDN 缓存刷新函数 -&gt; 创建 CDN 缓存刷新函数</li>
<li>修改 <code>index.js</code> 内容后重新部署</li>
</ol>
<div class="highlight" id="id-6"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span><span class="lnt">30
</span><span class="lnt">31
</span><span class="lnt">32
</span><span class="lnt">33
</span><span class="lnt">34
</span><span class="lnt">35
</span><span class="lnt">36
</span><span class="lnt">37
</span><span class="lnt">38
</span><span class="lnt">39
</span><span class="lnt">40
</span><span class="lnt">41
</span><span class="lnt">42
</span><span class="lnt">43
</span><span class="lnt">44
</span><span class="lnt">45
</span><span class="lnt">46
</span><span class="lnt">47
</span><span class="lnt">48
</span><span class="lnt">49
</span><span class="lnt">50
</span><span class="lnt">51
</span><span class="lnt">52
</span><span class="lnt">53
</span><span class="lnt">54
</span><span class="lnt">55
</span><span class="lnt">56
</span><span class="lnt">57
</span><span class="lnt">58
</span><span class="lnt">59
</span><span class="lnt">60
</span><span class="lnt">61
</span><span class="lnt">62
</span><span class="lnt">63
</span><span class="lnt">64
</span><span class="lnt">65
</span><span class="lnt">66
</span><span class="lnt">67
</span><span class="lnt">68
</span><span class="lnt">69
</span><span class="lnt">70
</span><span class="lnt">71
</span><span class="lnt">72
</span><span class="lnt">73
</span><span class="lnt">74
</span><span class="lnt">75
</span><span class="lnt">76
</span><span class="lnt">77
</span><span class="lnt">78
</span><span class="lnt">79
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-js" data-lang="js"><span class="line"><span class="cl"><span class="s1">&#39;use strict&#39;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="kr">const</span> <span class="nx">CosSdk</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">&#39;cos-nodejs-sdk-v5&#39;</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="kr">const</span> <span class="nx">CdnSdk</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">&#39;./common/CdnSdk&#39;</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="kr">const</span> <span class="nx">CdnRefreshTask</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">&#39;./common/CdnRefreshTask&#39;</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="kr">const</span> <span class="p">{</span> <span class="nx">getParams</span><span class="p">,</span> <span class="nx">getObjectUrl</span><span class="p">,</span> <span class="nx">logger</span><span class="p">,</span> <span class="nx">getLogSummary</span> <span class="p">}</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">&#39;./common/utils&#39;</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nx">exports</span><span class="p">.</span><span class="nx">main_handler</span> <span class="o">=</span> <span class="kr">async</span> <span class="p">(</span><span class="nx">event</span><span class="p">,</span> <span class="nx">context</span><span class="p">,</span> <span class="nx">callback</span><span class="p">)</span> <span class="p">=&gt;</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="cm">/**
</span></span></span><span class="line"><span class="cl"><span class="cm">   * parse param from event and process.env
</span></span></span><span class="line"><span class="cl"><span class="cm">   */</span>
</span></span><span class="line"><span class="cl">  <span class="kr">const</span> <span class="p">{</span> <span class="nx">objects</span><span class="p">,</span> <span class="nx">cdnHosts</span><span class="p">,</span> <span class="nx">secretId</span><span class="p">,</span> <span class="nx">secretKey</span><span class="p">,</span> <span class="nx">token</span> <span class="p">}</span> <span class="o">=</span> <span class="nx">getParams</span><span class="p">(</span><span class="nx">event</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  <span class="nx">logger</span><span class="p">({</span>
</span></span><span class="line"><span class="cl">    <span class="nx">title</span><span class="o">:</span> <span class="s1">&#39;param is parsed success, param as follow: &#39;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="nx">data</span><span class="o">:</span> <span class="p">{</span> <span class="nx">objects</span><span class="p">,</span> <span class="nx">cdnHosts</span><span class="p">,</span> <span class="nx">event</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">  <span class="p">});</span>
</span></span><span class="line"><span class="cl">  <span class="cm">/**
</span></span></span><span class="line"><span class="cl"><span class="cm">   * init cos instance
</span></span></span><span class="line"><span class="cl"><span class="cm">   */</span>
</span></span><span class="line"><span class="cl">  <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">secretId</span> <span class="o">||</span> <span class="o">!</span><span class="nx">secretKey</span> <span class="o">||</span> <span class="o">!</span><span class="nx">token</span><span class="p">)</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="sb">`secretId, secretKey or token is missing`</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  <span class="kr">const</span> <span class="nx">cdnSdkInstance</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CdnSdk</span><span class="p">({</span> <span class="nx">secretId</span><span class="p">,</span> <span class="nx">secretKey</span><span class="p">,</span> <span class="nx">token</span> <span class="p">});</span>
</span></span><span class="line"><span class="cl">  <span class="kr">const</span> <span class="nx">cosInstance</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CosSdk</span><span class="p">({</span>
</span></span><span class="line"><span class="cl">    <span class="nx">SecretId</span><span class="o">:</span> <span class="nx">secretId</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="nx">SecretKey</span><span class="o">:</span> <span class="nx">secretKey</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="nx">XCosSecurityToken</span><span class="o">:</span> <span class="nx">token</span>
</span></span><span class="line"><span class="cl">  <span class="p">});</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  <span class="kr">const</span> <span class="nx">taskList</span> <span class="o">=</span> <span class="nx">objects</span><span class="p">.</span><span class="nx">map</span><span class="p">(({</span> <span class="nx">bucket</span><span class="p">,</span> <span class="nx">region</span><span class="p">,</span> <span class="nx">key</span> <span class="p">})</span> <span class="p">=&gt;</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="cm">/* 变更内容-START */</span>
</span></span><span class="line"><span class="cl">    <span class="kr">const</span> <span class="nx">purgeUrls</span> <span class="o">=</span> <span class="p">[];</span>
</span></span><span class="line"><span class="cl">    <span class="nx">cdnHosts</span><span class="p">.</span><span class="nx">forEach</span><span class="p">((</span><span class="nx">host</span><span class="p">)</span> <span class="p">=&gt;</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">      <span class="kr">const</span> <span class="nx">tempUrl</span> <span class="o">=</span> <span class="nx">getObjectUrl</span><span class="p">({</span>
</span></span><span class="line"><span class="cl">        <span class="nx">cosInstance</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">        <span class="nx">bucket</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">        <span class="nx">region</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">        <span class="nx">key</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">        <span class="nx">origin</span><span class="o">:</span> <span class="sb">`</span><span class="si">${</span><span class="o">/^</span><span class="p">(</span><span class="nx">http</span><span class="err">\</span><span class="o">:</span><span class="err">\</span><span class="o">/</span><span class="err">\</span><span class="o">/|</span><span class="nx">https</span><span class="err">\</span><span class="o">:</span><span class="err">\</span><span class="o">/</span><span class="err">\</span><span class="o">/</span><span class="p">)</span><span class="o">/</span><span class="p">.</span><span class="nx">test</span><span class="p">(</span><span class="nx">host</span><span class="p">)</span> <span class="o">?</span> <span class="s1">&#39;&#39;</span> <span class="o">:</span> <span class="s1">&#39;https://&#39;</span><span class="si">}${</span><span class="nx">host</span><span class="si">}</span><span class="sb">`</span>
</span></span><span class="line"><span class="cl">      <span class="p">});</span>
</span></span><span class="line"><span class="cl">      <span class="nx">purgeUrls</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">tempUrl</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">      <span class="c1">// 如果以 /index.html 结尾，则增加目录首页/。
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>      <span class="c1">// 例如 https://www.xxxx.com/index.html, 则增加 https://www.xxxx.com/。
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>      <span class="k">if</span> <span class="p">(</span><span class="nx">tempUrl</span><span class="p">.</span><span class="nx">lastIndexOf</span><span class="p">(</span><span class="s1">&#39;/index.html&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="nx">tempUrl</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">11</span><span class="p">)</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="nx">purgeUrls</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">tempUrl</span><span class="p">.</span><span class="nx">substr</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nx">tempUrl</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">10</span><span class="p">));</span>
</span></span><span class="line"><span class="cl">      <span class="p">}</span>
</span></span><span class="line"><span class="cl">    <span class="p">});</span>
</span></span><span class="line"><span class="cl">    <span class="k">return</span> <span class="k">new</span> <span class="nx">CdnRefreshTask</span><span class="p">({</span>
</span></span><span class="line"><span class="cl">      <span class="nx">cdnSdkInstance</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">      <span class="nx">urls</span><span class="o">:</span> <span class="nx">purgeUrls</span>
</span></span><span class="line"><span class="cl">    <span class="p">});</span>
</span></span><span class="line"><span class="cl">    <span class="cm">/* 变更内容-END */</span>
</span></span><span class="line"><span class="cl">  <span class="p">});</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  <span class="kr">const</span> <span class="nx">taskResults</span> <span class="o">=</span> <span class="p">[];</span>
</span></span><span class="line"><span class="cl">  <span class="k">for</span> <span class="p">(</span><span class="kr">const</span> <span class="nx">task</span> <span class="k">of</span> <span class="nx">taskList</span><span class="p">)</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="kr">const</span> <span class="nx">results</span> <span class="o">=</span> <span class="kr">await</span> <span class="nx">task</span><span class="p">.</span><span class="nx">runPurgeTasks</span><span class="p">();</span>
</span></span><span class="line"><span class="cl">    <span class="nx">taskResults</span><span class="p">.</span><span class="nx">push</span><span class="p">(...</span><span class="nx">results</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  <span class="nx">logger</span><span class="p">({</span>
</span></span><span class="line"><span class="cl">    <span class="nx">title</span><span class="o">:</span> <span class="s1">&#39;cdn refresh full logs:&#39;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="nx">data</span><span class="o">:</span> <span class="nx">taskResults</span>
</span></span><span class="line"><span class="cl">  <span class="p">});</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  <span class="kr">const</span> <span class="p">{</span> <span class="nx">status</span><span class="p">,</span> <span class="nx">messages</span> <span class="p">}</span> <span class="o">=</span> <span class="nx">getLogSummary</span><span class="p">(</span><span class="nx">taskResults</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  <span class="nx">logger</span><span class="p">({</span>
</span></span><span class="line"><span class="cl">    <span class="nx">messages</span><span class="o">:</span> <span class="nx">messages</span><span class="p">.</span><span class="nx">map</span><span class="p">((</span><span class="nx">item</span><span class="p">)</span> <span class="p">=&gt;</span> <span class="nx">item</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/\,\ /g</span><span class="p">,</span> <span class="s1">&#39;\n&#39;</span><span class="p">))</span>
</span></span><span class="line"><span class="cl">  <span class="p">});</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  <span class="k">if</span> <span class="p">(</span><span class="nx">status</span> <span class="o">===</span> <span class="s1">&#39;fail&#39;</span><span class="p">)</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="k">throw</span> <span class="nx">messages</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span><span class="s1">&#39;; &#39;</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="k">return</span> <span class="nx">messages</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span><span class="s1">&#39;; &#39;</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">};</span></span></span></code></pre></td></tr></table>
</div>
</div>]]></description></item><item><title>在搜索、文章底部、侧栏添加最近文章模块</title><link>https://lruihao.cn/posts/recent-posts/</link><pubDate>Wed, 16 Jan 2019 17:50:52 +0000</pubDate><author>Lruihao</author><guid>https://lruihao.cn/posts/recent-posts/</guid><description><![CDATA[<blockquote>
<p>首先在主题配置文件添加以下关键字</p>
</blockquote>
<div class="highlight" id="id-1"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">recent_posts:
</span></span><span class="line"><span class="cl">  enable: true
</span></span><span class="line"><span class="cl">  search: true
</span></span><span class="line"><span class="cl">  post: false
</span></span><span class="line"><span class="cl">  sidebar: false
</span></span><span class="line"><span class="cl">  icon: history
</span></span><span class="line"><span class="cl">  title: 近期文章
</span></span><span class="line"><span class="cl">  layout: block</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="侧栏">侧栏</h2>
<p>在 <code>next/layout/_macro/sidebar.swig</code> 中的 <code>if theme.links</code> 对应的 <code>endif</code> 后面。</p>
<div class="highlight" id="id-2"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% if theme.recent_posts.enable and theme.recent_posts.sidebar %}
</span></span><span class="line"><span class="cl">  &lt;div class=&#34;links-of-blogroll motion-element {{ &#34;links-of-blogroll-&#34; + theme.recent_posts.layout  }}&#34;&gt;
</span></span><span class="line"><span class="cl">   &lt;div class=&#34;links-of-blogroll-title&#34;&gt;
</span></span><span class="line"><span class="cl">     &lt;i class=&#34;fa fa-history fa-{{ theme.recent_posts.icon | lower }}&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;
</span></span><span class="line"><span class="cl">     {{ theme.recent_posts.title }}
</span></span><span class="line"><span class="cl">   &lt;/div&gt;
</span></span><span class="line"><span class="cl">   &lt;ul class=&#34;links-of-blogroll-list&#34;&gt;
</span></span><span class="line"><span class="cl">     {% set posts = site.posts.sort(&#39;-date&#39;) %}
</span></span><span class="line"><span class="cl">     {% for post in posts.slice(&#39;0&#39;, &#39;3&#39;) %}
</span></span><span class="line"><span class="cl">       &lt;li&gt;
</span></span><span class="line"><span class="cl">         &lt;a href=&#34;{{ url_for(post.path) }}&#34; title=&#34;{{ post.title }}&#34; target=&#34;_blank&#34;&gt;{{ post.title }}&lt;/a&gt;
</span></span><span class="line"><span class="cl">       &lt;/li&gt;
</span></span><span class="line"><span class="cl">     {% endfor %}
</span></span><span class="line"><span class="cl">   &lt;/ul&gt;
</span></span><span class="line"><span class="cl"> &lt;/div&gt;
</span></span><span class="line"><span class="cl">{% endif %}</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="搜索结果处添加">搜索结果处添加</h2>
<p>找到路径<code>H:\hexo\themes\hexo-theme-next\layout\_partials\search</code>下<code>localsearch.swig</code>文件<br>
把<code>&lt;div id=&quot;local-search-result&quot;&gt;&lt;/div&gt;</code>修改成以下内容（这里显示 15 篇）</p>
<div class="highlight" id="id-3"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl"><span class="nt">&lt;div</span> <span class="na">id=</span><span class="s">&#34;local-search-result&#34;</span><span class="nt">&gt;</span>
</span></span><span class="line"><span class="cl">  {% if theme.recent_posts.enable and theme.recent_posts.search %}
</span></span><span class="line"><span class="cl">    <span class="nt">&lt;div</span> <span class="na">style=</span><span class="s">&#34;text-align: center;padding: 3px 0 0;&#34;</span><span class="nt">&gt;</span>
</span></span><span class="line"><span class="cl">     <span class="nt">&lt;div</span> <span class="na">style=</span><span class="s">&#34;margin-top: 20px;font-size: 18px;font-weight: 600;border-bottom: 1px solid #ccc;&#34;</span><span class="nt">&gt;</span>
</span></span><span class="line"><span class="cl">       <span class="nt">&lt;i</span> <span class="na">class=</span><span class="s">&#34;fa fa-{{ theme.recent_posts.icon }}&#34;</span> <span class="na">aria-hidden=</span><span class="s">&#34;true&#34;</span><span class="nt">&gt;&lt;/i&gt;</span>
</span></span><span class="line"><span class="cl">       {{ theme.recent_posts.title }}
</span></span><span class="line"><span class="cl">     <span class="nt">&lt;/div&gt;</span>
</span></span><span class="line"><span class="cl">     <span class="nt">&lt;ul</span> <span class="na">style=</span><span class="s">&#34;margin: 0;padding: 0;list-style: none;&#34;</span><span class="nt">&gt;</span>
</span></span><span class="line"><span class="cl">       {% set posts = site.posts.sort(&#39;-date&#39;) %}
</span></span><span class="line"><span class="cl">       {% for post in posts.slice(&#39;0&#39;, &#39;15&#39;) %}
</span></span><span class="line"><span class="cl">         <span class="nt">&lt;li&gt;</span>
</span></span><span class="line"><span class="cl">           <span class="nt">&lt;a</span> <span class="na">href=</span><span class="s">&#34;{{ url_for(post.path) }}&#34;</span> <span class="na">title=</span><span class="s">&#34;{{ post.title }}&#34;</span> <span class="na">target=</span><span class="s">&#34;_blank&#34;</span><span class="nt">&gt;</span>{{ post.title }}<span class="nt">&lt;/a&gt;</span>
</span></span><span class="line"><span class="cl">         <span class="nt">&lt;/li&gt;</span>
</span></span><span class="line"><span class="cl">       {% endfor %}
</span></span><span class="line"><span class="cl">     <span class="nt">&lt;/ul&gt;</span>
</span></span><span class="line"><span class="cl">    <span class="nt">&lt;/div&gt;</span>
</span></span><span class="line"><span class="cl">  {% endif %}
</span></span><span class="line"><span class="cl"><span class="nt">&lt;/div&gt;</span></span></span></code></pre></td></tr></table>
</div>
</div><h2 id="文章尾部添加">文章尾部添加</h2>
<p>把代码加在<code>H:\hexo\themes\hexo-theme-next\layout\_macro\post.swig</code>里的相应位置（我加在 tags 后）</p>
<div class="highlight" id="id-4"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl">{% if not is_index and theme.recent_posts.enable and theme.recent_posts.post %}
</span></span><span class="line"><span class="cl">  <span class="nt">&lt;div</span> <span class="na">style=</span><span class="s">&#34;text-align: center;padding: 10px 0 0;&#34;</span><span class="nt">&gt;</span>
</span></span><span class="line"><span class="cl">   <span class="nt">&lt;div</span> <span class="na">style=</span><span class="s">&#34;margin: 60px 0px 10px;font-size: 18px;border-bottom: 1px solid #eee;&#34;</span><span class="nt">&gt;</span>
</span></span><span class="line"><span class="cl">     <span class="nt">&lt;i</span> <span class="na">class=</span><span class="s">&#34;fa fa-{{ theme.recent_posts.icon }}&#34;</span> <span class="na">aria-hidden=</span><span class="s">&#34;true&#34;</span><span class="nt">&gt;&lt;/i&gt;</span>
</span></span><span class="line"><span class="cl">     {{ theme.recent_posts.title }}
</span></span><span class="line"><span class="cl">   <span class="nt">&lt;/div&gt;</span>
</span></span><span class="line"><span class="cl">   <span class="nt">&lt;ul</span> <span class="na">style=</span><span class="s">&#34;margin: 0;padding: 0;list-style: none;font-size: 11px;&#34;</span><span class="nt">&gt;</span>
</span></span><span class="line"><span class="cl">     {% set posts = site.posts.sort(&#39;-date&#39;) %}
</span></span><span class="line"><span class="cl">     {% for post in posts.slice(&#39;0&#39;, &#39;5&#39;) %}
</span></span><span class="line"><span class="cl">         <span class="nt">&lt;a</span> <span class="na">href=</span><span class="s">&#34;{{ url_for(post.path) }}&#34;</span> <span class="na">title=</span><span class="s">&#34;{{ post.title }}&#34;</span> <span class="na">target=</span><span class="s">&#34;_blank&#34;</span><span class="nt">&gt;</span>{{ post.title }}<span class="nt">&lt;/a&gt;</span><span class="ni">&amp;emsp;</span>
</span></span><span class="line"><span class="cl">     {% endfor %}
</span></span><span class="line"><span class="cl">   <span class="nt">&lt;/ul&gt;</span>
</span></span><span class="line"><span class="cl">  <span class="nt">&lt;/div&gt;</span>
</span></span><span class="line"><span class="cl">{% endif %}</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="其他">其他</h2>
<p>可尝试将<code>-date</code>改为<code>-update</code></p>
]]></description></item><item><title>hexo 插件及 next 内置样式集</title><link>https://lruihao.cn/posts/nextplugin/</link><pubDate>Sat, 24 Nov 2018 16:54:09 +0000</pubDate><author>Lruihao</author><guid>https://lruihao.cn/posts/nextplugin/</guid><description><![CDATA[<blockquote>
<p>2021/10/2 更新<br>
博客已迁移至 Hugo, 插件演示不适用，已删除。<br>
让文章写的好看又简洁又好用的插件！<a href="https://hexo.io/zh-cn/docs/tag-plugins.html"target="_blank" rel="external nofollow noopener noreferrer">hexo 完整的标签列表<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>，<a href="https://theme-next.org/docs/tag-plugins/"target="_blank" rel="external nofollow noopener noreferrer">next 插件列表<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
</blockquote>
<h3 id="hexo-插件">hexo 插件</h3>
<h4 id="hexo-lazyload-imagehttpsgithubcomtroy-yanghexo-lazyload-image"><a href="https://github.com/Troy-Yang/hexo-lazyload-image"target="_blank" rel="external nofollow noopener noreferrer">hexo-lazyload-image<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></h4>
<div class="highlight" id="id-1"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">npm install hexo-lazyload-image --save</span></span></code></pre></td></tr></table>
</div>
</div><p>First add configuration in <code>_config.yml</code> from your hexo project.</p>
<div class="highlight" id="id-2"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl">lazyload:
</span></span><span class="line"><span class="cl">  enable: true
</span></span><span class="line"><span class="cl">  onlypost: false
</span></span><span class="line"><span class="cl">  loadingImg: # eg ./images/loading.gif</span></span></code></pre></td></tr></table>
</div>
</div><h4 id="hexo-ruby-marks">hexo-ruby-marks</h4>
<blockquote>
<p>不支持<code>ruby</code>新标签的浏览器将显示<code>rp</code>中的内容。</p>
</blockquote>
<div class="highlight" id="id-3"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl"><span class="nt">&lt;ruby&gt;</span>博採眾長<span class="nt">&lt;rp&gt;</span>（<span class="nt">&lt;/rp&gt;</span> <span class="nt">&lt;rt&gt;</span>lruihao.cn<span class="nt">&lt;/rt&gt;&lt;rp&gt;</span>）<span class="nt">&lt;/rp&gt;&lt;/ruby&gt;</span></span></span></code></pre></td></tr></table>
</div>
</div><p><ruby>博採眾長<rp>（</rp> <rt>lruihao.cn</rt><rp>）</rp></ruby></p>
<p><strong>插件使用</strong></p>
<div class="highlight" id="id-4"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">npm i hexo-ruby-marks</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight" id="id-5"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl">{% ruby _**base**_|_**top text**_ %}</span></span></code></pre></td></tr></table>
</div>
</div><h4 id="hexo-pwahttpsgithubcomlavas-projecthexo-pwa"><a href="https://github.com/lavas-project/hexo-pwa"target="_blank" rel="external nofollow noopener noreferrer">hexo-pwa<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></h4>
<div class="highlight" id="id-6"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">npm install --save hexo-pwa</span></span></code></pre></td></tr></table>
</div>
</div><blockquote>
<p>You can configure this plugin in <code>_config.yml</code>.（配置完即可使用不许单独设置<code>manifest.json</code>文件及配置，插件生成）</p>
</blockquote>
<div class="highlight" id="id-7"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span><span class="lnt">30
</span><span class="lnt">31
</span><span class="lnt">32
</span><span class="lnt">33
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">pwa:
</span></span><span class="line"><span class="cl">  manifest:
</span></span><span class="line"><span class="cl">    path: /manifest.json
</span></span><span class="line"><span class="cl">    body:
</span></span><span class="line"><span class="cl">      name: hexo
</span></span><span class="line"><span class="cl">      short_name: hexo
</span></span><span class="line"><span class="cl">      icons:
</span></span><span class="line"><span class="cl">        - src: /images/android-chrome-192x192.png
</span></span><span class="line"><span class="cl">          sizes: 192x192
</span></span><span class="line"><span class="cl">          type: image/png
</span></span><span class="line"><span class="cl">        - src: /images/android-chrome-512x512.png
</span></span><span class="line"><span class="cl">          sizes: 512x512
</span></span><span class="line"><span class="cl">          type: image/png
</span></span><span class="line"><span class="cl">      start_url: /index.html
</span></span><span class="line"><span class="cl">      theme_color: &#39;#ffffff&#39;
</span></span><span class="line"><span class="cl">      background_color: &#39;#ffffff&#39;
</span></span><span class="line"><span class="cl">      display: standalone
</span></span><span class="line"><span class="cl">  serviceWorker:
</span></span><span class="line"><span class="cl">    path: /sw.js
</span></span><span class="line"><span class="cl">    preload:
</span></span><span class="line"><span class="cl">      urls:
</span></span><span class="line"><span class="cl">        - /
</span></span><span class="line"><span class="cl">      posts: 5
</span></span><span class="line"><span class="cl">    opts:
</span></span><span class="line"><span class="cl">      networkTimeoutSeconds: 5
</span></span><span class="line"><span class="cl">    routes:
</span></span><span class="line"><span class="cl">      - pattern: !!js/regexp /hm.baidu.com/
</span></span><span class="line"><span class="cl">        strategy: networkOnly
</span></span><span class="line"><span class="cl">      - pattern: !!js/regexp /.*\.(js|css|jpg|jpeg|png|gif)$/
</span></span><span class="line"><span class="cl">        strategy: cacheFirst
</span></span><span class="line"><span class="cl">      - pattern: !!js/regexp /\//
</span></span><span class="line"><span class="cl">        strategy: networkFirst
</span></span><span class="line"><span class="cl">  priority: 5</span></span></code></pre></td></tr></table>
</div>
</div><h4 id="hexo-tag-dplayer">hexo-tag-dplayer</h4>
<p><a href="https://github.com/MoePlayer/hexo-tag-dplayer"target="_blank" rel="external nofollow noopener noreferrer">hexo-tag-dplayer<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
<div class="highlight" id="id-8"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">npm install hexo-tag-dplayer --save</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight" id="id-9"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl">{% dplayer key=value ... %}</span></span></code></pre></td></tr></table>
</div>
</div><p>key can be</p>
<div class="highlight" id="id-10"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">dplayer options:
</span></span><span class="line"><span class="cl">    &#39;autoplay&#39;, &#39;loop&#39;, &#39;screenshot&#39;, &#39;hotkey&#39;, &#39;mutex&#39;, &#39;dmunlimited&#39; : bool options, use &#34;yes&#34; &#34;y&#34; &#34;true&#34; &#34;1&#34; &#34;on&#34; or just without value to enable
</span></span><span class="line"><span class="cl">    &#39;preload&#39;, &#39;theme&#39;, &#39;lang&#39;, &#39;logo&#39;, &#39;url&#39;, &#39;pic&#39;, &#39;thumbnails&#39;, &#39;vidtype&#39;, &#39;suburl&#39;, &#39;subtype&#39;, &#39;subbottom&#39;, &#39;subcolor&#39;, &#39;subcolor&#39;, &#39;id&#39;, &#39;api&#39;, &#39;token&#39;, &#39;addition&#39;, &#39;dmuser&#39; : string arguments
</span></span><span class="line"><span class="cl">    &#39;volume&#39;, &#39;maximum&#39; : number arguments
</span></span><span class="line"><span class="cl">container options:
</span></span><span class="line"><span class="cl">    &#39;width&#39;, &#39;height&#39; : string, used in container element style
</span></span><span class="line"><span class="cl">other:
</span></span><span class="line"><span class="cl">    &#39;code&#39; : value of this key will be append to script tag</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight" id="id-11"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl">{% dplayer &#34;url=https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.mp4&#34; &#34;addition=https://dplayer.daoapp.io/bilibili?aid=4157142&#34; &#34;api=https://api.prprpr.me/dplayer/&#34; &#34;pic=https://moeplayer.b0.upaiyun.com/dplayer/hikarunara.jpg&#34; &#34;id=9E2E3368B56CDBB4&#34; &#34;loop=yes&#34; &#34;theme=#FADFA3&#34; &#34;autoplay=false&#34; &#34;token=tokendemo&#34; %}</span></span></code></pre></td></tr></table>
</div>
</div><h4 id="hexo-tag-aplayer">hexo-tag-aplayer</h4>
<p><a href="https://github.com/MoePlayer/hexo-tag-aplayer"target="_blank" rel="external nofollow noopener noreferrer">more<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
<div class="highlight" id="id-12"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">npm install --save hexo-tag-aplayer</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight" id="id-13"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl">{% aplayer title author url [picture_url, narrow, autoplay, width:xxx, lrc:xxx] %}</span></span></code></pre></td></tr></table>
</div>
</div><p><strong>标签参数</strong></p>
<ul>
<li><code>title</code> : 曲目标题</li>
<li><code>author</code>: 曲目作者</li>
<li><code>url</code>: 音乐文件 URL 地址</li>
<li><code>picture_url</code>: （可选） 音乐对应的图片地址</li>
<li><code>narrow</code>: （可选）播放器袖珍风格</li>
<li><code>autoplay</code>: （可选） 自动播放，移动端浏览器暂时不支持此功能</li>
<li><code>width:xxx</code>: （可选） 播放器宽度 （默认：100%)</li>
<li><code>lrc:xxx</code>: （可选）歌词文件 URL 地址</li>
</ul>
<p>当开启 Hexo 的 <a href="https://hexo.io/zh-cn/docs/asset-folders.html#%E6%96%87%E7%AB%A0%E8%B5%84%E6%BA%90%E6%96%87%E4%BB%B6%E5%A4%B9"target="_blank" rel="external nofollow noopener noreferrer">文章资源文件夹<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 功能时，可以将图片、音乐文件、歌词文件放入与文章对应的资源文件夹中，然后直接引用：</p>
<div class="highlight" id="id-14"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% aplayer &#34;Caffeine&#34; &#34;Jeff Williams&#34; &#34;caffeine.mp3&#34; &#34;picture.jpg&#34; &#34;lrc:caffeine.txt&#34; %}
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">{% aplayer &#34;你离开了南京，从此没人和我说话&#34; &#34;李志&#34; &#34;https://cdn-1256932288.cos.ap-chengdu.myqcloud.com/files/nanjing.mp3&#34; &#34;https://p2.music.126.net/UuSe-Vc6rS7JtRJSQgDU2g==/2323268069553116.jpg?param=300x300&#34; %}</span></span></code></pre></td></tr></table>
</div>
</div><meting-js url="https://cdn-1256932288.cos.ap-chengdu.myqcloud.com/files/nanjing.mp3" name="李志" artist="你离开了南京，从此没人和我说话" cover="https://p2.music.126.net/UuSe-Vc6rS7JtRJSQgDU2g==/2323268069553116.jpg?param=300x300" theme="#448aff"></meting-js>
<h4 id="hexo-pdf">hexo-pdf</h4>
<p><a href="https://lruihao.cn/posts/next-pdf/"target="_blank" rel="external nofollow noopener noreferrer">pdf 传送门<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
<h4 id="hexo-filter-flowchart流程图">hexo-filter-flowchart（流程图）</h4>
<p><a href="https://flowchart.js.org"target="_blank" rel="external nofollow noopener noreferrer">语法<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
<div class="highlight" id="id-15"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">npm install --save hexo-filter-flowchart</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight" id="id-16"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl">```%flow #去掉%号
</span></span><span class="line"><span class="cl">st=&gt;start: Start|past:&gt;https://lruihao.cn[blank]
</span></span><span class="line"><span class="cl">e=&gt;end: End:&gt;https://www.lruihao.cn[blank]
</span></span><span class="line"><span class="cl">op1=&gt;operation: My Operation|past
</span></span><span class="line"><span class="cl">op2=&gt;operation: Stuff|current
</span></span><span class="line"><span class="cl">sub1=&gt;subroutine: My Subroutine|invalid
</span></span><span class="line"><span class="cl">cond=&gt;condition: Yes
</span></span><span class="line"><span class="cl">or No?|approved:&gt;/hexo/nextplugin.html
</span></span><span class="line"><span class="cl">c2=&gt;condition: Good idea|rejected
</span></span><span class="line"><span class="cl">io=&gt;inputoutput: catch something...|request
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">st-&gt;op1(right)-&gt;cond
</span></span><span class="line"><span class="cl">cond(yes, right)-&gt;c2
</span></span><span class="line"><span class="cl">cond(no)-&gt;sub1(left)-&gt;op1
</span></span><span class="line"><span class="cl">c2(yes)-&gt;io-&gt;e
</span></span><span class="line"><span class="cl">c2(no)-&gt;op2-&gt;e
</span></span><span class="line"><span class="cl">```</span></span></code></pre></td></tr></table>
</div>
</div><h4 id="hexo-spoiler">hexo-spoiler</h4>
<div class="highlight" id="id-17"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">npm install hexo-spoiler --save</span></span></code></pre></td></tr></table>
</div>
</div><blockquote>
<p>If hexo can&rsquo;t detect this plugin automatically, you need to modify the <code>plugins</code> section of <code>[path_to_your_site]/_config.yml</code> manually, like:</p>
</blockquote>
<div class="highlight" id="id-18"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">plugins</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span>- <span class="l">hexo-spoiler</span></span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight" id="id-19"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-plain" data-lang="plain"><span class="line"><span class="cl">{% spoiler [text] %}</span></span></code></pre></td></tr></table>
</div>
</div><blockquote>
<p>It will pixelate your text, and click to reveal. Click again to hide your text again.
But you need to add <code>&lt;br&gt;</code> manually if you want line breaks after/before it.</p>
</blockquote>
<p>When you writes:</p>
<div class="highlight" id="id-20"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-plain" data-lang="plain"><span class="line"><span class="cl">{% spoiler text %}
</span></span><span class="line"><span class="cl">{% spoiler ~~text~~ %}
</span></span><span class="line"><span class="cl">{% spoiler *text* %}
</span></span><span class="line"><span class="cl">{% spoiler **text** %}&lt;br&gt;
</span></span><span class="line"><span class="cl">{% spoiler **hello welcome to 博採眾長！** %}</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="宅音乐侧栏播放器插件">宅音乐侧栏播放器插件</h3>
<p><a href="https://player.lruihao.cn"target="_blank" rel="external nofollow noopener noreferrer"><del>体验</del><i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> <a href="https://github.com/Lruihao/zhai-music"target="_blank" rel="external nofollow noopener noreferrer">源码<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
<blockquote>
<p>目前在 next 中可能引起部分 css 冲突，建议在 next 中使用在单个页面中。<br>
依赖于 jQuery，一行 js 可以引入播放器插件。</p>
</blockquote>
<h3 id="caniuse">caniuse</h3>
<h4 id="使用">使用</h4>
<div class="highlight" id="id-21"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% caniuse feature @ periods %}
</span></span><span class="line"><span class="cl">&lt;!-- Tag Alias --&gt;
</span></span><span class="line"><span class="cl">{% can feature @ periods %}
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">feature : Search for the feature you want on https://caniuse.com, then click on the hash sign to the left of the search result heading and you will get the unique name of this feature.
</span></span><span class="line"><span class="cl">periods : Select the browser versions to display. Supported values: past_1, past_2, past_3, past_4, past_5, current, future_3, future_2, future_1. If this value is empty, the default value &#39;current&#39; will be used.</span></span></code></pre></td></tr></table>
</div>
</div><h4 id="栗子">栗子</h4>
<p><strong>Caniuse without periods</strong></p>
<div class="highlight" id="id-22"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% caniuse fetch %}</span></span></code></pre></td></tr></table>
</div>
</div><p><strong>Caniuse with current period</strong></p>
<div class="highlight" id="id-23"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% can sharedarraybuffer @ current %}</span></span></code></pre></td></tr></table>
</div>
</div><p><strong>Caniuse with future periods</strong></p>
<div class="highlight" id="id-24"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% caniuse loading-lazy-attr @ future_3,future_2,future_1 %}</span></span></code></pre></td></tr></table>
</div>
</div><p><strong>Caniuse with past periods</strong></p>
<div class="highlight" id="id-25"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% caniuse link-rel-modulepreload @ past_1,past_2,past_3,past_4,past_5 %}</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="include-raw">Include Raw</h3>
<p>This tag include any raw content into your posts. Path is relative to your site source directory.</p>
<div class="highlight" id="id-26"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% include_raw &#39;_data/path/to/file.html&#39; %}</span></span></code></pre></td></tr></table>
</div>
</div><p>Let&rsquo;s create include-raw.html file in <code>_data</code> directory under site root directory with following content:</p>
<div class="highlight" id="id-27"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">Any &lt;strong&gt;raw content&lt;/strong&gt; may be included with this tag.</span></span></code></pre></td></tr></table>
</div>
</div><p>Then in any post we can use this content with include_raw tag:</p>
<div class="highlight" id="id-28"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% include_raw &#39;_data/path/to/include-raw.html&#39; %}</span></span></code></pre></td></tr></table>
</div>
</div><p>Any <strong>raw content</strong> may be included with this tag.</p>
<h3 id="button">button</h3>
<p><a href="https://theme-next.org/docs/tag-plugins/button"target="_blank" rel="external nofollow noopener noreferrer">more info<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
<div class="highlight" id="id-29"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% button url, text, icon [class], [title] %}
</span></span><span class="line"><span class="cl">&lt;!-- Tag Alias --&gt;
</span></span><span class="line"><span class="cl">{% btn url, text, icon [class], [title] %}
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">url     : Absolute or relative path to URL.
</span></span><span class="line"><span class="cl">text    : Button text. Required if no icon specified.
</span></span><span class="line"><span class="cl">icon    : FontAwesome icon name (without &#39;fa-&#39; at the begining). Required if no text specified.
</span></span><span class="line"><span class="cl">[class] : FontAwesome class(es): fa-fw | fa-lg | fa-2x | fa-3x | fa-4x | fa-5x
</span></span><span class="line"><span class="cl">          Optional parameter.
</span></span><span class="line"><span class="cl">[title] : Tooltip at mouseover.
</span></span><span class="line"><span class="cl">          Optional parameter.</span></span></code></pre></td></tr></table>
</div>
</div><div class="text-center">{% btn #, Text & Large Icon & Title, home fa-fw fa-lg, Title %}</div>
```
<h3 id="mermaid">Mermaid</h3>
<p><a href="https://theme-next.org/docs/tag-plugins/mermaid"target="_blank" rel="external nofollow noopener noreferrer">more info<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
<p>example</p>
<div class="highlight" id="id-30"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% mermaid gitGraph: %}
</span></span><span class="line"><span class="cl">options
</span></span><span class="line"><span class="cl">{
</span></span><span class="line"><span class="cl">    &#34;nodeSpacing&#34;: 150,
</span></span><span class="line"><span class="cl">    &#34;nodeRadius&#34;: 10
</span></span><span class="line"><span class="cl">}
</span></span><span class="line"><span class="cl">end
</span></span><span class="line"><span class="cl">commit
</span></span><span class="line"><span class="cl">branch newbranch
</span></span><span class="line"><span class="cl">checkout newbranch
</span></span><span class="line"><span class="cl">commit
</span></span><span class="line"><span class="cl">checkout master
</span></span><span class="line"><span class="cl">commit
</span></span><span class="line"><span class="cl">merge newbranch
</span></span><span class="line"><span class="cl">{% endmermaid %}</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="video">video</h3>
<h4 id="usage">Usage</h4>
<div class="highlight" id="id-31"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl">{% video url %}</span></span></code></pre></td></tr></table>
</div>
</div><h4 id="examples">Examples</h4>
<div class="highlight" id="id-32"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% video https://example.com/sample.mp4 %}
</span></span><span class="line"><span class="cl">{% video /path/to/your/video.mp4 %}</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="tab-选项卡">tab 选项卡</h3>
<blockquote>
<p>&ldquo;tab&quot;为选项卡的名称，可以自定义，数字是几表示从第几个选项卡开始。非必须，若数值为-1 则隐藏选项卡内容。
<a href="https://theme-next.org/docs/tag-plugins/tabs"target="_blank" rel="external nofollow noopener noreferrer">查看更多<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
</blockquote>
<div class="highlight" id="id-33"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% tabs Unique name, [index] %}
</span></span><span class="line"><span class="cl">&lt;!-- tab [Tab caption] [@icon] --&gt;
</span></span><span class="line"><span class="cl">Any content (support inline tags too).
</span></span><span class="line"><span class="cl">&lt;!-- endtab --&gt;
</span></span><span class="line"><span class="cl">{% endtabs %}
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Unique name   : Unique name of tabs block tag without comma.
</span></span><span class="line"><span class="cl">                Will be used in #id&#39;s as prefix for each tab with their index numbers.
</span></span><span class="line"><span class="cl">                If there are whitespaces in name, for generate #id all whitespaces will replaced by dashes.
</span></span><span class="line"><span class="cl">                Only for current url of post/page must be unique!
</span></span><span class="line"><span class="cl">[index]       : Index number of active tab.
</span></span><span class="line"><span class="cl">                If not specified, first tab (1) will be selected.
</span></span><span class="line"><span class="cl">                If index is -1, no tab will be selected. It&#39;s will be something like spoiler.
</span></span><span class="line"><span class="cl">                Optional parameter.
</span></span><span class="line"><span class="cl">[Tab caption] : Caption of current tab.
</span></span><span class="line"><span class="cl">                If not caption specified, unique name with tab index suffix will be used as caption of tab.
</span></span><span class="line"><span class="cl">                If not caption specified, but specified icon, caption will empty.
</span></span><span class="line"><span class="cl">                Optional parameter.
</span></span><span class="line"><span class="cl">[@icon]       : FontAwesome icon name (without &#39;fa-&#39; at the begining).
</span></span><span class="line"><span class="cl">                Can be specified with or without space; e.g. &#39;Tab caption @icon&#39; similar to &#39;Tab caption@icon&#39;.
</span></span><span class="line"><span class="cl">                Optional parameter.</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight" id="id-34"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% tabs tab,2 %}
</span></span><span class="line"><span class="cl">&lt;!-- tab --&gt;
</span></span><span class="line"><span class="cl">this is tab1
</span></span><span class="line"><span class="cl">&lt;!-- endtab --&gt;
</span></span><span class="line"><span class="cl">&lt;!-- tab --&gt;
</span></span><span class="line"><span class="cl">this is tab2
</span></span><span class="line"><span class="cl">&lt;!-- endtab --&gt;
</span></span><span class="line"><span class="cl">&lt;!-- tab --&gt;
</span></span><span class="line"><span class="cl">this is tab3
</span></span><span class="line"><span class="cl">&lt;!-- endtab --&gt;
</span></span><span class="line"><span class="cl">{% endtabs %}</span></span></code></pre></td></tr></table>
</div>
</div><blockquote>
<p>数值为-1</p>
</blockquote>
<div class="highlight" id="id-35"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% tabs 选项，-1 %}
</span></span><span class="line"><span class="cl">&lt;!-- tab --&gt;
</span></span><span class="line"><span class="cl">**选项 1**
</span></span><span class="line"><span class="cl">&lt;!-- endtab --&gt;
</span></span><span class="line"><span class="cl">&lt;!-- tab --&gt;
</span></span><span class="line"><span class="cl">**选项 2**
</span></span><span class="line"><span class="cl">&lt;!-- endtab --&gt;
</span></span><span class="line"><span class="cl">&lt;!-- tab --&gt;
</span></span><span class="line"><span class="cl">**选项 3**
</span></span><span class="line"><span class="cl">&lt;!-- endtab --&gt;
</span></span><span class="line"><span class="cl">{% endtabs %}</span></span></code></pre></td></tr></table>
</div>
</div><blockquote>
<p>名字写在选项里面</p>
</blockquote>
<div class="highlight" id="id-36"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% tabs Fourth unique name %}
</span></span><span class="line"><span class="cl">&lt;!-- tab Solution 1 --&gt;
</span></span><span class="line"><span class="cl">**This is Tab 1.**
</span></span><span class="line"><span class="cl">&lt;!-- endtab --&gt;
</span></span><span class="line"><span class="cl">&lt;!-- tab Solution 2 --&gt;
</span></span><span class="line"><span class="cl">**This is Tab 2.**
</span></span><span class="line"><span class="cl">&lt;!-- endtab --&gt;
</span></span><span class="line"><span class="cl">&lt;!-- tab Solution 3 --&gt;
</span></span><span class="line"><span class="cl">**This is Tab 3.**
</span></span><span class="line"><span class="cl">&lt;!-- endtab --&gt;
</span></span><span class="line"><span class="cl">{% endtabs %}</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="note-便签">note 便签</h3>
<blockquote>
<p>主题配置文件搜索 note, 可设置风格和图标是否显示。</p>
</blockquote>
<div class="highlight" id="id-37"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl"># Note tag (bs-callout).
</span></span><span class="line"><span class="cl">note:
</span></span><span class="line"><span class="cl">  # Note tag style values:
</span></span><span class="line"><span class="cl">  #  - simple    bs-callout old alert style. Default.
</span></span><span class="line"><span class="cl">  #  - modern    bs-callout new (v2-v3) alert style.
</span></span><span class="line"><span class="cl">  #  - flat      flat callout style with background, like on Mozilla or StackOverflow.
</span></span><span class="line"><span class="cl">  #  - disabled  disable all CSS styles import of note tag.
</span></span><span class="line"><span class="cl">  style: flat
</span></span><span class="line"><span class="cl">  icons: true
</span></span><span class="line"><span class="cl">  border_radius: 15
</span></span><span class="line"><span class="cl">  # Offset lighter of background in % for modern and flat styles (modern: -12 | 12; flat: -18 | 6).
</span></span><span class="line"><span class="cl">  # Offset also applied to label tag variables. This option can work with disabled note tag.
</span></span><span class="line"><span class="cl">  light_bg_offset: 0</span></span></code></pre></td></tr></table>
</div>
</div><p>写法</p>
<div class="highlight" id="id-38"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% note default %}</span></span></code></pre></td></tr></table>
</div>
</div><h4 id="default">default</h4>
<p>类型还有以下几种
{% endnote %}
{% note primary %}</p>
<h4 id="primary">primary</h4>
<p>内容
{% endnote %}
{% note success %}</p>
<h4 id="success">success</h4>
<p>内容
{% endnote %}
{% note info %}</p>
<h4 id="info">info</h4>
<p>内容
{% endnote %}
{% note warning %}</p>
<h4 id="warning">warning</h4>
<p>内容
{% endnote %}
{% note danger %}</p>
<h4 id="danger">danger</h4>
<p>内容
{% endnote %}
{% note %}</p>
<h4 id="不填">不填</h4>
<p>内容
{% endnote %}
{% note danger no-icon %}</p>
<h4 id="danger-no-icon">danger no-icon</h4>
<p>内容
{% endnote %}</p>
<div class="highlight" id="id-39"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">### 引用（文本居中）</span></span></code></pre></td></tr></table>
</div>
</div><p>{% cq %}
<strong>there are test words</strong>
{% endcq %}</p>
<div class="highlight" id="id-40"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">### [Font Awesome 图标](https://www.runoob.com/font-awesome/fontawesome-tutorial.html)
</span></span><span class="line"><span class="cl">&gt; Font Awesome 是一套绝佳的图标字体库和 CSS 框架。
</span></span><span class="line"><span class="cl">&gt; Font Awesome 字体为您提供可缩放矢量图标，它可以被定制大小、颜色、阴影以及任何可以用 CSS 的样式。
</span></span><span class="line"><span class="cl">&gt; 要使用 Font Awesome 图标，请在 HTML 页面的 部分中添加以下行：
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">#### 1、国内推荐 CDN</span></span></code></pre></td></tr></table>
</div>
</div><link rel="stylesheet" href="https://cdn.staticfile.org/font-awesome/4.7.0/css/font-awesome.css">
```
#### 2、海外推荐 CDN
<div class="highlight" id="id-41"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">&lt;link rel=&#34;stylesheet&#34; href=&#34;https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css&#34;&gt;</span></span></code></pre></td></tr></table>
</div>
</div><p>next 已经引用了，可以直接用，比如：</p>
<div class="highlight" id="id-42"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">&lt;i class=&#34;fa fa-car&#34;&gt;&lt;/i&gt;
</span></span><span class="line"><span class="cl">&lt;i class=&#34;fa fa-car&#34; style=&#34;font-size:48px;&#34;&gt;&lt;/i&gt;
</span></span><span class="line"><span class="cl">&lt;i class=&#34;fa fa-car&#34; style=&#34;font-size:60px;color:red;&#34;&gt;&lt;/i&gt;
</span></span><span class="line"><span class="cl">&lt;i class=&#34;fa fa-car fa-lg&#34;&gt;&lt;/i&gt;
</span></span><span class="line"><span class="cl">&lt;i class=&#34;fa fa-car fa-2x&#34;&gt;&lt;/i&gt;
</span></span><span class="line"><span class="cl">&lt;i class=&#34;fa fa-car fa-3x&#34;&gt;&lt;/i&gt;
</span></span><span class="line"><span class="cl">&lt;i class=&#34;fa fa-car fa-4x&#34;&gt;&lt;/i&gt;
</span></span><span class="line"><span class="cl">&lt;i class=&#34;fa fa-car fa-5x&#34;&gt;&lt;/i&gt;</span></span></code></pre></td></tr></table>
</div>
</div><p><i class="fa fa-car"></i> <i class="fa fa-car" style="font-size:48px;"></i> <i class="fa fa-car" style="font-size:60px;color:red;"></i> <i class="fa fa-car fa-lg"></i> <i class="fa fa-car fa-2x"></i> <i class="fa fa-car fa-3x"></i> <i class="fa fa-car fa-4x"></i> <i class="fa fa-car fa-5x"></i></p>
<p>动态图标</p>
<div class="highlight" id="id-43"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">&lt;i class=&#34;fa fa-spinner fa-spin&#34;&gt;&lt;/i&gt;
</span></span><span class="line"><span class="cl">&lt;i class=&#34;fa fa-circle-o-notch fa-spin&#34;&gt;&lt;/i&gt;
</span></span><span class="line"><span class="cl">&lt;i class=&#34;fa fa-refresh fa-spin&#34;&gt;&lt;/i&gt;
</span></span><span class="line"><span class="cl">&lt;i class=&#34;fa fa-cog fa-spin&#34;&gt;&lt;/i&gt;
</span></span><span class="line"><span class="cl">&lt;i class=&#34;fa fa-spinner fa-pulse&#34;&gt;&lt;/i&gt;</span></span></code></pre></td></tr></table>
</div>
</div><p><i class="fa fa-spinner fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-refresh fa-spin"></i> <i class="fa fa-cog fa-spin"></i> <i class="fa fa-spinner fa-pulse"></i></p>
<h3 id="代码块等">代码块等</h3>
<div class="highlight" id="id-44"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-cpp" data-lang="cpp"><span class="line"><span class="cl"><span class="p">[</span><span class="n">language</span><span class="p">]</span> <span class="p">[</span><span class="n">title</span><span class="p">]</span> <span class="p">[</span><span class="n">url</span><span class="p">]</span> <span class="p">[</span><span class="n">link</span> <span class="n">text</span><span class="p">]</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">code</span> <span class="n">snippet</span></span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight" id="id-45"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-diff" data-lang="diff"><span class="line"><span class="cl"><span class="gd">-  printf(&#34;Hello World!&#34;);
</span></span></span><span class="line"><span class="cl"><span class="gd"></span><span class="gi">+  printf(&#34;Hello_World!&#34;);
</span></span></span></code></pre></td></tr></table>
</div>
</div><p><strong>iframe</strong>
在文章中插入 iframe。</p>
<div class="highlight" id="id-46"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% iframe url [width] [height] %}</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="todo-list">Todo list</h3>
<ul>
<li><i class="fa fa-check-square"></i> 已完成</li>
<li><i class="fa fa-square"></i> 未完成</li>
</ul>
<div class="highlight" id="id-47"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span><span class="lnt">9
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-http" data-lang="http"><span class="line"><span class="cl"><span class="err">&lt;ul&gt;
</span></span></span><span class="line"><span class="cl"><span class="err">&lt;li&gt;&lt;i class=&#34;fa fa-check-square&#34;&gt;&lt;/i&gt; 已完成&lt;/li&gt;
</span></span></span><span class="line"><span class="cl"><span class="err">&lt;li&gt;&lt;i class=&#34;fa fa-square&#34;&gt;&lt;/i&gt; 未完成&lt;/li&gt;
</span></span></span><span class="line"><span class="cl"><span class="err">&lt;/ul&gt;
</span></span></span><span class="line"><span class="cl"><span class="err">
</span></span></span><span class="line"><span class="cl"><span class="err">&lt;!--或者--&gt;
</span></span></span><span class="line"><span class="cl"><span class="err">
</span></span></span><span class="line"><span class="cl"><span class="err">- &lt;i class=&#34;fa fa-check-square&#34;&gt;&lt;/i&gt; 已完成
</span></span></span><span class="line"><span class="cl"><span class="err">- &lt;i class=&#34;fa fa-square&#34;&gt;&lt;/i&gt; 未完成</span></span></span></code></pre></td></tr></table>
</div>
</div><h3 id="label">Label</h3>
<p>主题配置文件中打开</p>
<div class="highlight" id="id-48"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl"># Label tag.
</span></span><span class="line"><span class="cl">label: true</span></span></code></pre></td></tr></table>
</div>
</div><p><code>@</code>前面的是 label 的名字，后面的是要显示的文字</p>
<div class="highlight" id="id-49"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% label default@default %}
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">primary success info warning danger</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="其他httpwwwmykernelcnmy-hexo-next-1html"><a href="http://www.mykernel.cn/my-hexo-next-1.html"target="_blank" rel="external nofollow noopener noreferrer">其他<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></h3>
<blockquote>
<p>包括小色块、左侧色条、右侧色条、上方色条、数字色块（需要自定义样式）</p>
</blockquote>]]></description></item><item><title>next添加支持pdf</title><link>https://lruihao.cn/posts/next-pdf/</link><pubDate>Fri, 09 Nov 2018 12:51:48 +0000</pubDate><author>Lruihao</author><guid>https://lruihao.cn/posts/next-pdf/</guid><description><![CDATA[<blockquote>
<p>最新的 next 主题已经更新了支持 PDF 功能，<del>写法也和链接写法一样</del>，可是我没有更新，我按 github 上那个 readme 试了一下好像不可以，所以用了另外一种插件的方法。</p>
</blockquote>
<h2 id="iframe推荐">iframe(推荐)</h2>
<div class="highlight" id="id-1"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-xml" data-lang="xml"><span class="line"><span class="cl"><span class="nt">&lt;iframe</span> <span class="na">src=</span><span class="s">&#34;/posts/next-pdf/1.pdf&#34;</span> <span class="na">style=</span><span class="s">&#34;width: 100%;height: 800px;&#34;</span><span class="nt">&gt;&lt;/iframe&gt;</span></span></span></code></pre></td></tr></table>
</div>
</div><h2 id="模板自带">模板自带</h2>
<blockquote>
<p>今天（2019.4.3）又看了一下，改了写法，写法和插件一样，我在我的模板里也更新了。（插件模板二选一即可,个人更喜欢插件）
但是如果安装插件后，也是优先模板的 pdf 脚本解析 pdf,所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。</p>
</blockquote>
<div class="highlight" id="id-2"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span><span class="lnt">9
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-js" data-lang="js"><span class="line"><span class="cl"><span class="cm">/*
</span></span></span><span class="line"><span class="cl"><span class="cm">&#39;use strict&#39;;
</span></span></span><span class="line"><span class="cl"><span class="cm">
</span></span></span><span class="line"><span class="cl"><span class="cm">function pdf(args) {
</span></span></span><span class="line"><span class="cl"><span class="cm">  return `&lt;div class=&#34;pdf&#34; target=&#34;${args[0]}&#34; height=&#34;${args[1] || &#39;&#39;}&#34;&gt;&lt;/div&gt;`;
</span></span></span><span class="line"><span class="cl"><span class="cm">}
</span></span></span><span class="line"><span class="cl"><span class="cm">
</span></span></span><span class="line"><span class="cl"><span class="cm">hexo.extend.tag.register(&#39;pdf&#39;, pdf, {ends: false});
</span></span></span><span class="line"><span class="cl"><span class="cm">*/</span></span></span></code></pre></td></tr></table>
</div>
</div><h2 id="pdf-插件推荐">pdf 插件(推荐)</h2>
<h3 id="安装">安装</h3>
<div class="highlight" id="id-3"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">npm install --save hexo-pdf</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="使用">使用</h3>
<div class="highlight" id="id-4"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% pdf url %}</span></span></code></pre></td></tr></table>
</div>
</div><p>比如本文</p>
<div class="highlight" id="id-5"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% pdf /posts/next-pdf/1.pdf %}</span></span></code></pre></td></tr></table>
</div>
</div><iframe src="/posts/next-pdf/1.pdf" style="width: 100%;height: 800px;"></iframe>
]]></description></item><item><title>hexo 博客源码备份</title><link>https://lruihao.cn/posts/blog-backup/</link><pubDate>Sat, 03 Nov 2018 12:49:28 +0000</pubDate><author>Lruihao</author><guid>https://lruihao.cn/posts/blog-backup/</guid><description><![CDATA[<div class="featured-image">
        <img src="/posts/blog-backup/images/1.png" referrerpolicy="no-referrer">
      </div><h2 id="备份-hexo-博客">备份 hexo 博客</h2>
<div class="highlight" id="id-1"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span><span class="lnt">9
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">//如果 themes/next（主题文件）下面有。git，请删除这个。git 文件夹。
</span></span><span class="line"><span class="cl">cd hexo
</span></span><span class="line"><span class="cl">git init  //初始化本地仓库
</span></span><span class="line"><span class="cl">git add source themes scaffolds _config.yml package.json package-lock.json  //将必要的文件依次添加
</span></span><span class="line"><span class="cl">git commit -m &#34;blog hexo&#34;
</span></span><span class="line"><span class="cl">git branch hexo  //新建 hexo 分支
</span></span><span class="line"><span class="cl">git checkout hexo  //切换到 hexo 分支上
</span></span><span class="line"><span class="cl">git remote add origin git@github.com:username/username.github.io.git  //将本地与 Github 项目对接
</span></span><span class="line"><span class="cl">git push origin hexo  //push 到 Github 项目的 hexo 分支上</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="在其他终端克隆和更新-hexo-博客">在其他终端克隆和更新 hexo 博客</h2>
<blockquote>
<p>nodejs,git,hexo 已经安装好，即搭建完成</p>
</blockquote>
<h3 id="克隆-hexo-博客备份">克隆 hexo 博客备份</h3>
<div class="highlight" id="id-2"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">git clone -b hexo git@github.com:username/username.github.io.git  //将 Github 中 hexo 分支 clone 到本地
</span></span><span class="line"><span class="cl">cd user.github.io
</span></span><span class="line"><span class="cl">npm install  //注意，这里一定要切换到刚刚 clone 的文件夹内执行，安装必要的所需组件，不用再 init</span></span></code></pre></td></tr></table>
</div>
</div><p>这样我们的备份文件就会原封不动的拷贝到本地。</p>
<h3 id="写新文章并备份和部署备用操作">写新文章并备份和部署（备用操作）</h3>
<blockquote>
<p>其实源码拷下来了，这步不做我们也知道怎么做了，完全没必要按照教程死搬硬套。灵活一点就行了。</p>
</blockquote>
<div class="highlight" id="id-3"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">//进入 username.github.io 文件夹，应是 hexo 分支
</span></span><span class="line"><span class="cl">git pull origin hexo //本地和远端的融合
</span></span><span class="line"><span class="cl">hexo new post &#34;new post name&#34;  //写新文章
</span></span><span class="line"><span class="cl">git add source
</span></span><span class="line"><span class="cl">git commit -m &#34;xxx&#34;
</span></span><span class="line"><span class="cl">git push origin hexo  //备份
</span></span><span class="line"><span class="cl">hexo d -g  //部署</span></span></code></pre></td></tr></table>
</div>
</div><p><a href="https://blog.csdn.net/Monkey_LZL/article/details/60870891"target="_blank" rel="external nofollow noopener noreferrer">参考<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
]]></description></item><item><title>网页离开时改变标题“崩溃欺骗”</title><link>https://lruihao.cn/posts/crash-cheat/</link><pubDate>Wed, 26 Sep 2018 16:36:08 +0000</pubDate><author>Lruihao</author><guid>https://lruihao.cn/posts/crash-cheat/</guid><description><![CDATA[<blockquote>
<p>从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的，不想再和每个人都说一遍了，耽误时间，索性写一下。</p>
</blockquote>
<h2 id="创建一个-js-文件">创建一个 js 文件</h2>
<p>我们先创建一个 js 文件，我们用记事本就好了，然后改个文件名，不妨就叫<code>crash-cheat.js</code>吧，你们可以随意！<br>
然后把文件放到 source 文件夹的 js 文件夹的 src 里面。（我用的 next 主题，放这里统一存放，其他主题随意）</p>
<p>崩溃欺骗 (Jquery 版）</p>
<div class="highlight" id="id-1"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-js" data-lang="js"><span class="line"><span class="cl"><span class="kd">var</span> <span class="nx">OriginTitle</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">title</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="kd">var</span> <span class="nx">titleTime</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="nb">document</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="s1">&#39;visibilitychange&#39;</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="k">if</span> <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">hidden</span><span class="p">)</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nx">$</span><span class="p">(</span><span class="s1">&#39;[rel=&#34;icon&#34;]&#39;</span><span class="p">).</span><span class="nx">attr</span><span class="p">(</span><span class="s1">&#39;href&#39;</span><span class="p">,</span> <span class="s1">&#39;https://i.loli.net/2018/08/24/5b7fcb00ed9bf.png&#39;</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="nb">document</span><span class="p">.</span><span class="nx">title</span> <span class="o">=</span> <span class="s1">&#39;怎么回事╭(°A°`)╮&#39;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="nx">clearTimeout</span><span class="p">(</span><span class="nx">titleTime</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nx">$</span><span class="p">(</span><span class="s2">&#34;[rel=&#39;icon&#39;]&#34;</span><span class="p">).</span><span class="nx">attr</span><span class="p">(</span><span class="s1">&#39;href&#39;</span><span class="p">,</span> <span class="s1">&#39;https://i.loli.net/2018/09/25/5baa4f21661e7.png&#39;</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="nb">document</span><span class="p">.</span><span class="nx">title</span> <span class="o">=</span> <span class="s1">&#39;小老弟 (ฅ&gt;ω&lt;*ฅ)&#39;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="nx">titleTime</span> <span class="o">=</span> <span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">      <span class="nb">document</span><span class="p">.</span><span class="nx">title</span> <span class="o">=</span> <span class="nx">OriginTitle</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">      <span class="nx">$</span><span class="p">(</span><span class="s2">&#34;[rel=&#39;icon&#39;]&#34;</span><span class="p">).</span><span class="nx">attr</span><span class="p">(</span><span class="s1">&#39;href&#39;</span><span class="p">,</span> <span class="s1">&#39;/images/favicon-32x32-next.png&#39;</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="p">},</span> <span class="mi">2000</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">});</span></span></span></code></pre></td></tr></table>
</div>
</div><p>崩溃欺骗 (JS 版）</p>
<div class="highlight" id="id-2"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-js" data-lang="js"><span class="line"><span class="cl"><span class="kd">var</span> <span class="nx">oldTitle</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">title</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="kd">var</span> <span class="nx">titleTime</span><span class="p">;</span> <span class="c1">//標題恢復計時器
</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="nb">document</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="s1">&#39;visibilitychange&#39;</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="k">if</span> <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">hidden</span><span class="p">)</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nb">document</span><span class="p">.</span><span class="nx">querySelector</span><span class="p">(</span><span class="s2">&#34;[rel=&#39;icon&#39;]&#34;</span><span class="p">).</span><span class="nx">setAttribute</span><span class="p">(</span><span class="s1">&#39;href&#39;</span><span class="p">,</span> <span class="s1">&#39;/images/icons/favicon-32.png&#39;</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="nb">document</span><span class="p">.</span><span class="nx">title</span> <span class="o">=</span> <span class="s1">&#39;網站崩潰了！&#39;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="nx">clearTimeout</span><span class="p">(</span><span class="nx">titleTime</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="nb">document</span><span class="p">.</span><span class="nx">title</span> <span class="o">=</span> <span class="s1">&#39;其實並沒有！&#39;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="nb">document</span><span class="p">.</span><span class="nx">querySelector</span><span class="p">(</span><span class="s2">&#34;[rel=&#39;icon&#39;]&#34;</span><span class="p">).</span><span class="nx">setAttribute</span><span class="p">(</span><span class="s1">&#39;href&#39;</span><span class="p">,</span> <span class="s1">&#39;/images/icons/crash.png&#39;</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="nx">titleTime</span> <span class="o">=</span> <span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">      <span class="nb">document</span><span class="p">.</span><span class="nx">title</span> <span class="o">=</span> <span class="nx">oldTitle</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="p">},</span> <span class="mi">1000</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">});</span></span></span></code></pre></td></tr></table>
</div>
</div><h2 id="使用">使用</h2>
<p>在<code>hexo\themes\hexo-theme-next\layout</code>文件路径找到<code>layout.swig</code>文件，其他有些主题用的是<code>.ejs</code>后缀，一样的。<br>
然后打开文件，在<code>&lt;body&gt;&lt;/body&gt;</code>之间加入调用刚刚的 js。</p>
<div class="highlight" id="id-3"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p">&lt;</span><span class="nt">script</span> <span class="na">type</span><span class="o">=</span><span class="s">&#34;text/javascript&#34;</span> <span class="na">src</span><span class="o">=</span><span class="s">&#34;/js/src/crash-cheat.js&#34;</span><span class="p">&gt;&lt;/</span><span class="nt">script</span><span class="p">&gt;</span></span></span></code></pre></td></tr></table>
</div>
</div><p>重新部署博客就可以了。</p>]]></description></item><item><title>hexo next 主题添加字数统计（2018）</title><link>https://lruihao.cn/posts/hexo-wordcount/</link><pubDate>Thu, 30 Aug 2018 13:15:50 +0000</pubDate><author>Lruihao</author><guid>https://lruihao.cn/posts/hexo-wordcount/</guid><description><![CDATA[<div class="details admonition warning open">
    <div class="details-summary admonition-title">
      <i class="icon fa-solid fa-exclamation-triangle fa-fw" aria-hidden="true"></i>警告<i class="details-icon fa-solid fa-angle-right fa-fw" aria-hidden="true"></i>
    </div>
    <div class="details-content">
      <div class="admonition-content"><p><strong>2018/11/1 说明
next 主题好像更新了，现在自带的可以用了，如果可以用了，以下教程可以忽略！！！</strong></p>
<p>最近有几个小伙伴问我博客的字数统计怎么实现的，怎么网上的教程不管用啊？一开始我搭建博客的时候也遇到了类似的问题，按照 github 上 wordcount 的 readme 操作后，并没有什么用，我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词，next 本身似乎也并没有在主题配置文件提供选项（或许是个人原因），所以只好自己动手加一个了。为了不重复回答问题，先做个原创记录。转载请注明出处。在此抛转引玉，如果有更好的方法请在留言区提出，我会及时更改。同时也希望小伙伴多发扬折腾精神，多专研，少提问，毕竟还是 RTFSC 大法好！(Read the fucking source code)</p>
</div>
    </div>
  </div>
<h2 id="安装">安装</h2>
<p><a href="https://github.com/willin/hexo-wordcount"target="_blank" rel="external nofollow noopener noreferrer">wordcount github<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>
如果没有安装 hexo-wordcount 插件，先安装该插件：</p>
<div class="highlight" id="id-1"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">npm i --save hexo-wordcount
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"># Node 版本 7.6.0 之前，请安装 2.x 版本 (Node.js v7.6.0 and previous)
</span></span><span class="line"><span class="cl">npm install hexo-wordcount@2 --save</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="post-添加">post 添加</h2>
<p>打开<code>hexo\themes\hexo-theme-next\layout\_macro</code>路径下的 post.swig 文件，既然没有字数统计那么我们就加一个，简单暴力地直接在阅读数后面加上一条就好了，在文件类搜索关键词<code>busuanzi</code>, 我用的是不蒜子，如果用的了 leancloud 的搜 leancloud 就好了，其他类似。找到这段代码后</p>
<div class="highlight" id="id-2"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% if not is_index and theme.busuanzi_count.enable and theme.busuanzi_count.post_views %}
</span></span><span class="line"><span class="cl">    &lt;span class=&#34;post-meta-divider&#34;&gt;|&lt;/span&gt;
</span></span><span class="line"><span class="cl">    &lt;span class=&#34;post-meta-item-icon&#34;
</span></span><span class="line"><span class="cl">    {% if not theme.post_meta.item_text %} title=&#34;{{ __(&#39;post.views&#39;) }}&#34; {% endif %}&gt;
</span></span><span class="line"><span class="cl">    &lt;i class=&#34;fa fa-{{ theme.busuanzi_count.post_views_icon }}&#34;&gt;&lt;/i&gt;
</span></span><span class="line"><span class="cl">    {% if theme.post_meta.item_text %} {{__(&#39;post.views&#39;) + __(&#39;symbol.colon&#39;) }} {% endif %}
</span></span><span class="line"><span class="cl">    &lt;span class=&#34;busuanzi-value&#34; id=&#34;busuanzi_value_page_pv&#34; &gt;&lt;/span&gt;
</span></span><span class="line"><span class="cl">    &lt;/span&gt;
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">{% endif %}</span></span></code></pre></td></tr></table>
</div>
</div><p>在<code>endif</code>上面，即本文代码块那个空行处添加以下代码</p>
<div class="highlight" id="id-3"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">&lt;span class=&#34;post-meta-divider&#34;&gt;|&lt;/span&gt;
</span></span><span class="line"><span class="cl">&lt;span title=&#34;{{ __(&#39;post.wordcount&#39;) }}&#34;&gt;&lt;span class=&#34;post-meta-item-icon&#34;&gt;&lt;i class=&#34;fa fa-file-word-o&#34;&gt;&lt;/i&gt;&lt;/span&gt;字数： {{ wordcount(post.content) }}&lt;/span&gt;</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="全站添加">全站添加</h2>
<p>打开<code>hexo\themes\hexo-theme-next\layout\_partials</code>路径下 footer.swig 文件，在你喜欢的位置添加以下代码</p>
<div class="highlight" id="id-4"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">&lt;div class=&#34;theme-info&#34;&gt;
</span></span><span class="line"><span class="cl">  &lt;div class=&#34;powered-by&#34;&gt;&lt;/div&gt;
</span></span><span class="line"><span class="cl">  &lt;span class=&#34;post-count&#34;&gt;全站共 {{ totalcount(site) }} 字&lt;/span&gt;
</span></span><span class="line"><span class="cl">&lt;/div&gt;</span></span></code></pre></td></tr></table>
</div>
</div>]]></description></item><item><title>hexo d 出错</title><link>https://lruihao.cn/posts/hexo-d-error/</link><pubDate>Tue, 21 Aug 2018 22:15:01 +0000</pubDate><author>Lruihao</author><guid>https://lruihao.cn/posts/hexo-d-error/</guid><description><![CDATA[<p>搭建这个博客以来，隔一段时间就出现一次部署失败的错误，每次都差不多，莫名其妙地出现的。前几次不知道怎么瞎搞就好了。<br>
现在做一下记录，防止以后出错用。<br>
错误如下</p>
<div class="highlight" id="id-1"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">Connection reset by 13.229.188.59 port <span class="m">22</span>
</span></span><span class="line"><span class="cl">fatal: sha1 file <span class="s1">&#39;&lt;stdout&gt;&#39;</span> write error: Broken pipe
</span></span><span class="line"><span class="cl">fatal: The remote end hung up unexpectedly
</span></span><span class="line"><span class="cl">FATAL Something<span class="s1">&#39;s wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html
</span></span></span><span class="line"><span class="cl"><span class="s1">Error: Connection reset by 13.229.188.59 port 22
</span></span></span><span class="line"><span class="cl"><span class="s1">fatal: sha1 file &#39;</span>&lt;stdout&gt;<span class="err">&#39;</span> write error: Broken pipe
</span></span><span class="line"><span class="cl">fatal: The remote end hung up unexpectedly
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">at ChildProcess.&lt;anonymous&gt; <span class="o">(</span>H:<span class="se">\H</span>exo<span class="se">\n</span>ode_modules<span class="se">\h</span>exo-util<span class="se">\l</span>ib<span class="se">\s</span>pawn.js:37:17<span class="o">)</span>
</span></span><span class="line"><span class="cl">    at emitTwo <span class="o">(</span>events.js:106:13<span class="o">)</span>
</span></span><span class="line"><span class="cl">    at ChildProcess.emit <span class="o">(</span>events.js:191:7<span class="o">)</span>
</span></span><span class="line"><span class="cl">    at ChildProcess.cp.emit <span class="o">(</span>H:<span class="se">\H</span>exo<span class="se">\n</span>ode_modules<span class="se">\c</span>ross-spawn<span class="se">\l</span>ib<span class="se">\e</span>noent.js:40:29<span class="o">)</span>
</span></span><span class="line"><span class="cl">    at maybeClose <span class="o">(</span>internal/child_process.js:850:16<span class="o">)</span>
</span></span><span class="line"><span class="cl">    at Socket.&lt;anonymous&gt; <span class="o">(</span>internal/child_process.js:323:11<span class="o">)</span>
</span></span><span class="line"><span class="cl">    at emitOne <span class="o">(</span>events.js:96:13<span class="o">)</span>
</span></span><span class="line"><span class="cl">    at Socket.emit <span class="o">(</span>events.js:188:7<span class="o">)</span>
</span></span><span class="line"><span class="cl">    at Pipe._handle.close <span class="o">[</span>as _onclose<span class="o">]</span> <span class="o">(</span>net.js:492:12<span class="o">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">...</span></span></code></pre></td></tr></table>
</div>
</div><p>确保 ssh 正常，hexo-deploy-git 插件正常的情况下删除。deploy_git 文件夹就好了。
最后吐槽一下，这个鬼错误，搞我一晚上醉了。我又打算重装了的。/吐血</p>]]></description></item><item><title>hexo 个性化 - next 主题动态显示 subtitle</title><link>https://lruihao.cn/posts/dongtaisub/</link><pubDate>Mon, 20 Aug 2018 16:16:40 +0000</pubDate><author>Lruihao</author><guid>https://lruihao.cn/posts/dongtaisub/</guid><description><![CDATA[<blockquote>
<p>本文适合我这种纯小白。
目前为止，全网也就只有一个博主写到过这样动态显示 subtitle 的文章。<a href="https://www.jianshu.com/p/df2c844eeabf"target="_blank" rel="external nofollow noopener noreferrer">传送门<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>（关键词：js, 后加载）<br>
但是嘞，该博写的不怎么详细，17 年底写的。当然更大的可能是 next 更新了一些文件结构，所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了，今天突然心血来潮。翻了翻原博主博客的源码，再与自己的对比了一下，发现了一些端倪。稍作调整后如下：</p>
</blockquote>
<h2 id="修改站点配置文件主要修改-subtitle">修改站点配置文件，主要修改 subtitle</h2>
<div class="highlight" id="id-1"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">subtitle: 不怕万人阻挡，只怕自己投降。W 你如何回忆，决定你是一个怎样的人！W 这是一个句子。W 这是另一个句子。W 这些句子你们不要搞一样的不然怎么叫个性签名-_-！。</span></span></code></pre></td></tr></table>
</div>
</div><p>句子与句子之间以 W 分割，后续需要根据该标志位去拆分句子组。<br>
<strong>小伙伴们博主这里只是提供一个思路，不要和我用一模一样的啊，不然撞了多尴尬呀</strong></p>
<h2 id="修改-headerindexswig">修改 header\index.swig</h2>
<p>修改 <code>themes\next\layout_partials\header</code> 下面的 <code>index.swig</code> 文件<br>
在最开头添加如下代码：<br>
（这里用的原博的 js)</p>
<div class="highlight" id="id-2"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="o">&lt;</span><span class="n">script</span><span class="o">&gt;</span>
</span></span><span class="line"><span class="cl"> <span class="n">function</span> <span class="nf">GetRandomNum</span><span class="o">(</span><span class="n">Min</span><span class="o">,</span><span class="n">Max</span><span class="o">)</span>
</span></span><span class="line"><span class="cl">  <span class="o">{</span>
</span></span><span class="line"><span class="cl">    <span class="n">var</span> <span class="n">Range</span> <span class="o">=</span> <span class="n">Max</span> <span class="o">-</span> <span class="n">Min</span><span class="o">;</span>
</span></span><span class="line"><span class="cl">    <span class="n">var</span> <span class="n">Rand</span> <span class="o">=</span> <span class="n">Math</span><span class="o">.</span><span class="na">random</span><span class="o">();</span>
</span></span><span class="line"><span class="cl">    <span class="k">return</span><span class="o">(</span><span class="n">Min</span> <span class="o">+</span> <span class="n">Math</span><span class="o">.</span><span class="na">round</span><span class="o">(</span><span class="n">Rand</span> <span class="o">*</span> <span class="n">Range</span><span class="o">));</span>
</span></span><span class="line"><span class="cl">  <span class="o">}</span>
</span></span><span class="line"><span class="cl"><span class="n">function</span> <span class="nf">setSidebarMarginTop</span> <span class="o">(</span><span class="n">headerOffset</span><span class="o">)</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl">    <span class="k">return</span> <span class="n">$</span><span class="o">(</span><span class="err">&#39;#</span><span class="n">sidebar</span><span class="err">&#39;</span><span class="o">).</span><span class="na">css</span><span class="o">({</span> <span class="err">&#39;</span><span class="n">margin</span><span class="o">-</span><span class="n">top</span><span class="err">&#39;</span><span class="o">:</span> <span class="n">headerOffset</span> <span class="o">});</span>
</span></span><span class="line"><span class="cl">  <span class="o">}</span>
</span></span><span class="line"><span class="cl"> <span class="n">function</span> <span class="nf">getHeaderOffset</span> <span class="o">()</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl">    <span class="k">return</span> <span class="n">$</span><span class="o">(</span><span class="err">&#39;</span><span class="o">.</span><span class="na">header</span><span class="o">-</span><span class="n">inner</span><span class="err">&#39;</span><span class="o">).</span><span class="na">height</span><span class="o">()</span> <span class="o">+</span> <span class="n">CONFIG</span><span class="o">.</span><span class="na">sidebar</span><span class="o">.</span><span class="na">offset</span><span class="o">;</span>
</span></span><span class="line"><span class="cl">  <span class="o">}</span>
</span></span><span class="line"><span class="cl">  <span class="n">window</span><span class="o">.</span><span class="na">onload</span><span class="o">=</span><span class="n">function</span><span class="o">(){</span>
</span></span><span class="line"><span class="cl">    <span class="n">var</span> <span class="n">subtitle</span> <span class="o">=</span> <span class="s">&#34;{{config.subtitle}}&#34;</span><span class="o">;</span>
</span></span><span class="line"><span class="cl">     <span class="n">var</span> <span class="n">mytitle</span> <span class="o">=</span> <span class="n">subtitle</span><span class="o">.</span><span class="na">split</span><span class="o">(</span><span class="s">&#34;W&#34;</span><span class="o">);</span>
</span></span><span class="line"><span class="cl">     <span class="n">var</span> <span class="n">max</span> <span class="o">=</span> <span class="n">mytitle</span><span class="o">.</span><span class="na">length</span><span class="o">-</span><span class="mi">1</span><span class="o">;</span>
</span></span><span class="line"><span class="cl">     <span class="n">var</span> <span class="n">index</span> <span class="o">=</span> <span class="n">GetRandomNum</span><span class="o">(</span><span class="mi">0</span><span class="o">,</span><span class="n">max</span><span class="o">);</span>
</span></span><span class="line"><span class="cl">     <span class="n">var</span> <span class="n">text</span> <span class="o">=</span> <span class="n">mytitle</span><span class="o">[</span><span class="n">index</span><span class="o">];</span>
</span></span><span class="line"><span class="cl">     <span class="n">$</span><span class="o">(</span><span class="s">&#34;#helloTitle&#34;</span><span class="o">).</span><span class="na">html</span><span class="o">(</span><span class="n">text</span><span class="o">);</span>
</span></span><span class="line"><span class="cl">     <span class="n">var</span> <span class="n">headOffset</span> <span class="o">=</span> <span class="n">getHeaderOffset</span><span class="o">();</span>
</span></span><span class="line"><span class="cl">     <span class="n">setSidebarMarginTop</span><span class="o">(</span><span class="n">headOffset</span><span class="o">);</span>
</span></span><span class="line"><span class="cl">     <span class="c1">//动态 subtitle 设置
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>  <span class="o">}</span>
</span></span><span class="line"><span class="cl"><span class="o">&lt;/</span><span class="n">script</span><span class="o">&gt;</span></span></span></code></pre></td></tr></table>
</div>
</div><h2 id="修改-brandswig">修改 brand.swig</h2>
<p>找到</p>
<div class="highlight" id="id-3"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% if subtitle %}
</span></span><span class="line"><span class="cl">  {% if theme.seo %}
</span></span><span class="line"><span class="cl">    ...
</span></span><span class="line"><span class="cl">  {% else %}
</span></span><span class="line"><span class="cl">    ...
</span></span><span class="line"><span class="cl">  {% endif %}
</span></span><span class="line"><span class="cl">{% endif %}</span></span></code></pre></td></tr></table>
</div>
</div><p>把这一段，把原来的修改成以下代码即可<br>
ps: <code>title</code>和<code>subtitle</code>的<code>字体</code>还有<code>颜色</code>也可以在这个文件修改，即使用<code>style</code>标签，按个人爱好修改也可不要。</p>
<div class="highlight" id="id-4"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% if subtitle %}
</span></span><span class="line"><span class="cl">  {% if theme.seo %}
</span></span><span class="line"><span class="cl">    &lt;p class=&#34;site-subtitle&#34; id=&#34;helloTitle&#34; itemprop=&#34;description&#34;&gt;&lt;/p&gt;
</span></span><span class="line"><span class="cl">  {% else %}
</span></span><span class="line"><span class="cl">    &lt;p id=&#34;helloTitle&#34; class=&#34;site-subtitle&#34;&gt;&lt;/p&gt;
</span></span><span class="line"><span class="cl">  {% endif %}
</span></span><span class="line"><span class="cl">{% endif %}</span></span></code></pre></td></tr></table>
</div>
</div><p>之后部署后每次刷新就可以看到不同的 subtitle 了，开心 😀</p>
<h2 id="今日诗词">今日诗词</h2>
<p><a href="https://www.jinrishici.com/"target="_blank" rel="external nofollow noopener noreferrer">今日诗词<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
<div class="highlight" id="id-5"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-XML" data-lang="XML"><span class="line"><span class="cl"><span class="nt">&lt;span</span> <span class="na">id=</span><span class="s">&#34;jinrishici-sentence&#34;</span><span class="nt">&gt;</span>正在加载今日诗词 ....<span class="nt">&lt;/span&gt;</span>
</span></span><span class="line"><span class="cl"><span class="nt">&lt;script</span> <span class="na">src=</span><span class="s">&#34;https://sdk.jinrishici.com/v2/browser/jinrishici.js&#34;</span> <span class="na">charset=</span><span class="s">&#34;utf-8&#34;</span><span class="nt">&gt;&lt;/script&gt;</span></span></span></code></pre></td></tr></table>
</div>
</div><hr>
<div id="jinrishici-sentence" style="text-align:center;">正在加载今日诗词 ....</div>
<script src="https://sdk.jinrishici.com/v2/browser/jinrishici.js" charset="utf-8"></script>
<hr>
<h2 id="api-调用">api 调用</h2>
<p>直接 js 调用 api 简单快速</p>
<blockquote>
<p>2021/9/30 更新<br>
<a href="https://api.imjad.cn/hitokoto.md"target="_blank" rel="external nofollow noopener noreferrer">一言 api-参数详见<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 已经挂了</p>
</blockquote>
<div class="highlight" id="id-6"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p">&lt;</span><span class="nt">div</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl">  <span class="p">&lt;</span><span class="nt">script</span> <span class="na">type</span><span class="o">=</span><span class="s">&#34;text/javascript&#34;</span> <span class="na">src</span><span class="o">=</span><span class="s">&#34;https://api.imjad.cn/hitokoto/?cat=&amp;charset=utf-8&amp;length=&amp;encode=js&amp;fun=sync&amp;source=&#34;</span><span class="p">&gt;&lt;/</span><span class="nt">script</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl">  <span class="p">&lt;</span><span class="nt">div</span> <span class="na">id</span><span class="o">=</span><span class="s">&#34;hitokoto&#34;</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl">    <span class="p">&lt;</span><span class="nt">script</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl">      <span class="nx">hitokoto</span><span class="p">();</span>
</span></span><span class="line"><span class="cl">    <span class="p">&lt;/</span><span class="nt">script</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl">  <span class="p">&lt;/</span><span class="nt">div</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl"><span class="p">&lt;/</span><span class="nt">div</span><span class="p">&gt;</span></span></span></code></pre></td></tr></table>
</div>
</div>]]></description></item><item><title>在 Android 上搭建 hexo 博客</title><link>https://lruihao.cn/posts/termux/</link><pubDate>Sat, 11 Aug 2018 16:59:05 +0000</pubDate><author>Lruihao</author><guid>https://lruihao.cn/posts/termux/</guid><description><![CDATA[<blockquote>
<p>暑假刚开始的时候放假回家没带电脑，只能玩手机，想折腾一下博客都没有条件，在一个发现一个 app, 卧槽 😱，termux 真的强大！（初始化需要科学上网）安卓手机上的 linux 简直了，在手机就可以搭了一个 hexo 博客，只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅，还只想到这些！一开始想回校后，折腾一下 hexo-admin 实现类似动态博客一样的多终端管理（手动滑稽），现在发现 termux 这样子的操作也不错嘛，挺装哔 hhhhhh**<a href="https://lruihao.gitee.io"target="_blank" rel="external nofollow noopener noreferrer">部署后的效果<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>**</p>
</blockquote>
<h2 id="准备">准备</h2>
<ul>
<li>Termux</li>
<li>文件管理器（RE,MT 文件管理器等高级一点的）</li>
</ul>
<h2 id="开始">开始</h2>
<p>打开 Termux，输入$<code>pkg install nodejs</code>安装 Nodejs，在输入<code>pkg install git</code>安装 Git。<br>
过程会出现一个提示，输入 y 回车确认即可。<br>
按照 Hexo 官网提示安装 Hexo。</p>
<div class="highlight" id="id-1"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">npm install hexo-cli -g
</span></span><span class="line"><span class="cl">hexo init blog
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> blog</span></span></code></pre></td></tr></table>
</div>
</div><p><strong>注意 ssh 配置先安装：</strong><code>pkg install openssh</code><br>
然后按照基本操作配置 Hexo，GitHub 或者 gitee,coding 等连上，部署测试一次。<br>
安装部署插件<code>npm install hexo-deployer-git --save</code>，部署<code>hexo d -g</code><br>
没有问题的话进行下一步。</p>
<h2 id="编辑">编辑</h2>
<p>写文章的话创建 md 文件命令和电脑上一样，文件管理器打开<code>/data/data/com.termux/files/home/i/source/_posts/</code> 编辑文章 md 文件。这种方式需要 Root。<br>
没有 Root 的话可以使用 Vim，网上很多教程。但是这种方式相对来说更麻烦。</p>
<h2 id="参考">参考</h2>
<ul>
<li><a href="https://www.sqlsec.com/2018/05/termux.html?yyue=a21bo.50862.201879"target="_blank" rel="external nofollow noopener noreferrer">termux 高级终端安装使用配置教程<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li>
<li><a href="https://www.oyohyee.com/post/Note/Termux"target="_blank" rel="external nofollow noopener noreferrer">使用 Termux 在手机上运行 linux 黑科技<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li>
<li><a href="https://lruihao.cn/hexo%20&#43;%20github%20%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2.html"target="_blank" rel="external nofollow noopener noreferrer">hexo 搭建过程<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li>
<li><a href="https://my.oschina.net/ryaneLee/blog/638440"target="_blank" rel="external nofollow noopener noreferrer">超详细教程<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li>
</ul>
<h2 id="效果图未连接-githubcoding-等">效果图（未连接 github，coding 等）</h2>
<p><a href="https://wx1.sinaimg.cn/mw690/006vSs63gy1ft2a0jo3hmj30u01hcguh.jpg"target="_blank" rel="external nofollow noopener noreferrer">效果图 1<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a><br>
<a href="https://wx4.sinaimg.cn/mw690/006vSs63gy1ft2a0kmm5xj30u01hcn2a.jpg"target="_blank" rel="external nofollow noopener noreferrer">效果图 2<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>
<a href="https://wx3.sinaimg.cn/mw690/006vSs63gy1ft2a0lqt61j30u01hctla.jpg"target="_blank" rel="external nofollow noopener noreferrer">效果图 3<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a><br>
<a href="https://wx2.sinaimg.cn/mw690/006vSs63gy1ft2a0mgkm6j30u01hc78l.jpg"target="_blank" rel="external nofollow noopener noreferrer">效果图 4<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>]]></description></item><item><title>hexo 博客自定义 console log</title><link>https://lruihao.cn/posts/console-log/</link><pubDate>Sat, 04 Aug 2018 16:19:06 +0000</pubDate><author>Lruihao</author><guid>https://lruihao.cn/posts/console-log/</guid><description><![CDATA[<p>看到知乎，百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。<br>
我主要用到的工具：</p>
<ul>
<li>console.log()</li>
<li>Notepad++</li>
<li><a href="http://picascii.com"target="_blank" rel="external nofollow noopener noreferrer">在线图片转文字工具<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li>
</ul>
<h2 id="用法">用法</h2>
<p>用 js 在<code>&lt;body&gt;&lt;/body&gt;</code>使用 console.log() 就行了，hexo 的主题文件在<code>_layout.swig</code>里，所以我们打开该文件，在该位置，添加 js 就行了；</p>
<p><figure><a class="lightgallery" href="/posts/console-log/images/console.png" data-thumbnail="/posts/console-log/images/console.png" data-sub-html="<h2>/posts/console-log/images/console.png</h2><p>console</p>"></a><figcaption class="image-caption"></figcaption>
  </figure></p>
<h2 id="图案">图案</h2>
<p>我用的我自己的一张照片（电脑上照片就那么几张。)，然后用 在线图片转文字工具 转字符，<br>
选择文件，设置大小，然后生成，</p>
<p><figure><a class="lightgallery" href="/posts/console-log/images/QQ1.png" data-thumbnail="/posts/console-log/images/QQ1.png" data-sub-html="<h2>/posts/console-log/images/QQ1.png</h2><p>1</p>"></a><figcaption class="image-caption"></figcaption>
  </figure><br>
<figure><a class="lightgallery" href="/posts/console-log/images/QQ2.png" data-thumbnail="/posts/console-log/images/QQ2.png" data-sub-html="<h2>/posts/console-log/images/QQ2.png</h2><p>2</p>"></a><figcaption class="image-caption"></figcaption>
  </figure></p>
<p>生成后，复制 TXT 文件（下面那个框，上面的是 HTML 代码）<br>
<figure><a class="lightgallery" href="/posts/console-log/images/QQ3.png" data-thumbnail="/posts/console-log/images/QQ3.png" data-sub-html="<h2>/posts/console-log/images/QQ3.png</h2><p>3</p>"></a><figcaption class="image-caption"></figcaption>
  </figure><br>
粘贴到 Notepad++ 里面，然后按图操作；<br>
<figure><a class="lightgallery" href="/posts/console-log/images/QQ4.png" data-thumbnail="/posts/console-log/images/QQ4.png" data-sub-html="<h2>/posts/console-log/images/QQ4.png</h2><p>4</p>"></a><figcaption class="image-caption"></figcaption>
  </figure><br>
Ctrl+H 替换<br>
<figure><a class="lightgallery" href="/posts/console-log/images/QQ5.png" data-thumbnail="/posts/console-log/images/QQ5.png" data-sub-html="<h2>/posts/console-log/images/QQ5.png</h2><p>5</p>"></a><figcaption class="image-caption"></figcaption>
  </figure><br>
<figure><a class="lightgallery" href="/posts/console-log/images/QQ6.png" data-thumbnail="/posts/console-log/images/QQ6.png" data-sub-html="<h2>/posts/console-log/images/QQ6.png</h2><p>6</p>"></a><figcaption class="image-caption"></figcaption>
  </figure><br>
最后就变成一个字符串了。</p>
<h2 id="效果图">效果图</h2>
<p><figure><a class="lightgallery" href="/posts/console-log/images/QQ7.png" data-thumbnail="/posts/console-log/images/QQ7.png" data-sub-html="<h2>/posts/console-log/images/QQ7.png</h2><p>7</p>"></a><figcaption class="image-caption"></figcaption>
  </figure><br>
<a href="https://lruihao.cn"target="_blank" rel="external nofollow noopener noreferrer">线上 demo<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>, 按 F12 找到 console</p>
<h2 id="我的-txt">我的 txt</h2>
<div class="highlight" id="id-1"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-txt" data-lang="txt"><span class="line"><span class="cl">\n`              @@#``@@@@@@@@@@@@@@@@@@##,`   \n`              @@#`;@@@@@@@@@@@@@@@@@@@&#39;:&#39;   \n`              @@#`@@@@@@@@@@@@@@@@@@@#+#;`  \n`              @@#`@@@@@@@@@@@@@@@@@@###@&#39;.  \n`              @@+.@@@@@@@@@@@@@@@@@@@@@##,  \n`              @@#,@@@@@@@@@@@@@@@@@@@@@@#,  \n`              #@#:@@@@@@@@@@@@@@@@@@@@@@@,  \n`              #@#&#39;@@@@@@@@@@@@@@@@@@@@@@@.  \n`              +@#;@@@@@@@@@@@@@@@@@@@@@@#   \n`          `;: ;@#&#39;@@@@@@@@@@@@@@@@@@+&#39;+@&#39;   \n`    `,,;&#39;;&#39;+&#39;;&#39;@@+:@@@@@@@@@@@@##@#&#39;,.:#;   \n,, ``    ``..,:;@@#&#39;@@@@@@@@#####@@@@#:`:.   \n`       `````:++@@@@@@@@@@@@@###@@@@#+,..    \n        ``````.#@@@@@@@@@@@@@@#@@@#++#&#39;``    \n`    ```.,,:,.`:@@@@@@@@@@@@@###@@@##&#39;.`     \n``..`````..,::;+@@@@@@@@@@@@#+`::+##&#39;`.      \n`      ````.```,@@@@@@@@@@@##;``.,&#39;;` `      \n``.;@@@@@@@@@@@@@@@@@@@@@@###;``..``````     \n#@@@@@@@@@@@@@@@@@@@@@@@@##@#;``,``,.``      \n@@@@@@@@@@@@@@@@@@@.`````..``.. +` `:`       \n@+&#39;&#39;++#####@@#`.@@@``````` ` `,```  ``       \n&#39;;;;;&#39;+##+&#39;+.`;+@@@,..```` `` :,.            \n;::,,:;+#++``,,#@@@&#39;..``````` ,`.``          \n;,,,,...&#39;#.,,..#@@@#,,.`````` .````          \n:,,,,....`,::;&#39;&#39;+#@#;,..`````````.``         \n:,,,.....&#39;##++&#39;&#39;&#39;;:+&#39;:,.`..,,...`            \n:,,,...#####+&#39;+#@@@&#39;.&#39;;+:.  ` ``             \n;,,.`&#39;####&#39;#,`.`+@@@+&#39;``` `.`                \n;,.`#@@@#+:&#39;+++##+@##@,,,,`                  \n&#39;,.#@@###&#39;&#39;&#39;&#39;;:,.```,+#.                     \n+,#@@@####;,,..```````````````         `.:,::\n+@@@@###+;,,..``````````````````          `.,\n#@@@##+&#39;,,,........``````````````            \n@@@@#+:,,,,`........``````````               \n@@@#+:,,,,.`````.....``````````           `` \n@@##&#39;:,......`````....```  `````          ```\n@@@#&#39;:,....,..``````..````    ```         ```\n@@@#&#39;,....,,,..```````````     ```         ..\n@@@#,.....,,,,.``  ````````   ``````         \n@@@+....,,,,,..`````````````   ``````````    \n@@@:....,,,,.LiRuihao````````  ```````````` \n#@@,....,,,,.Always Be Yourself !````````````\n,##,,...,::,.````````````..``````   `......``\n,&#39;#,,..,,:::.`````````........``````   `.,,..\n\n 你好！\n 欢迎进入什么都不会的李瑞豪的个人网站！\nhttps://lruihao.cn\nhttps://www.lruihao.cn\nhttps://lruihao.github.io\nhttps://liruihao.coding.me\n\n\n\n</span></span></code></pre></td></tr></table>
</div>
</div><p>其他个人网站，个人博客也是可以的。</p>]]></description></item><item><title>hexo+github 搭建个人博客及美化</title><link>https://lruihao.cn/posts/hexobuild/</link><pubDate>Fri, 01 Jun 2018 14:34:23 +0000</pubDate><author>Lruihao</author><guid>https://lruihao.cn/posts/hexobuild/</guid><description><![CDATA[<p><strong><a href="/categories/hexo/">更多关于 hexo</a></strong></p>
<h2 id="首先">首先</h2>
<p><a href="https://hexo.io/zh-cn/docs/index.html"target="_blank" rel="external nofollow noopener noreferrer">官方文档<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 是我们的第一手资料，也是最好的。
安装 Hexo 相当简单。然而在安装前，您必须检查电脑中是否已安装下列应用程序：</p>
<ul>
<li><a href="https://nodejs.org/en/"target="_blank" rel="external nofollow noopener noreferrer">Node.js<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li>
<li><a href="https://git-scm.com/"target="_blank" rel="external nofollow noopener noreferrer">Git<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li>
</ul>
<h2 id="hexo-安装">hexo 安装</h2>
<p>如果您的电脑中已经安装上述必备程序，那么恭喜您！接下来只需要使用 npm 即可完成 Hexo 的安装。</p>
<div class="highlight" id="id-1"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">npm install -g hexo-cli</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="建站">建站</h2>
<p>安装 Hexo 完成后，请执行下列命令，Hexo 将会在指定文件夹中新建所需要的文件。</p>
<div class="highlight" id="id-2"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">hexo init &lt;folder&gt;
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> &lt;folder&gt;
</span></span><span class="line"><span class="cl">npm install</span></span></code></pre></td></tr></table>
</div>
</div><p><folder>为一个文件夹的名字
新建完成后，指定文件夹的目录如下：</p>
<div class="highlight" id="id-3"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">.
</span></span><span class="line"><span class="cl">├── _config.yml
</span></span><span class="line"><span class="cl">├── package.json
</span></span><span class="line"><span class="cl">├── scaffolds
</span></span><span class="line"><span class="cl">├── source
</span></span><span class="line"><span class="cl">|   ├── _drafts
</span></span><span class="line"><span class="cl">|   └── _posts
</span></span><span class="line"><span class="cl">└── themes</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="安装-hexo-插件">安装 hexo 插件</h2>
<p>全装上吧，没事。</p>
<div class="highlight" id="id-4"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">npm install hexo-generator-index --save
</span></span><span class="line"><span class="cl">npm install hexo-generator-archive --save
</span></span><span class="line"><span class="cl">npm install hexo-generator-category --save
</span></span><span class="line"><span class="cl">npm install hexo-generator-tag --save
</span></span><span class="line"><span class="cl">npm install hexo-server --save
</span></span><span class="line"><span class="cl">npm install hexo-deployer-git --save
</span></span><span class="line"><span class="cl">npm install hexo-deployer-heroku --save
</span></span><span class="line"><span class="cl">npm install hexo-deployer-rsync --save
</span></span><span class="line"><span class="cl">npm install hexo-deployer-openshift --save
</span></span><span class="line"><span class="cl">npm install hexo-renderer-marked@0.2 --save
</span></span><span class="line"><span class="cl">npm install hexo-renderer-stylus@0.2 --save
</span></span><span class="line"><span class="cl">npm install hexo-generator-feed@1 --save
</span></span><span class="line"><span class="cl">npm install hexo-generator-sitemap@1 --save</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="本地查看效果">本地查看效果</h2>
<p>执行下面语句，执行完再登录 localhost:4000 查看效果（执行完不要按 Ctrl+C，不然就停止了）</p>
<div class="highlight" id="id-5"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">hexo g
</span></span><span class="line"><span class="cl">hexo s</span></span></code></pre></td></tr></table>
</div>
</div><p><strong>其他步骤在这里不赘述，参见 <a href="https://my.oschina.net/ryaneLee/blog/638440"target="_blank" rel="external nofollow noopener noreferrer">超详细教程<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></strong>
<strong><a href="https://lruihao.cn/posts/termux/"target="_blank" rel="external nofollow noopener noreferrer">安卓上搭建 hexo 博客<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></strong></p>
<h2 id="部署">部署</h2>
<div class="highlight" id="id-6"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">hexo g -d</span></span></code></pre></td></tr></table>
</div>
</div><p>部署后我们可以浏览器搜 username.github.io 查看自己的博客效果，比如我的 <a href="https://lruihao.github.io/"target="_blank" rel="external nofollow noopener noreferrer">lruihao.github.io<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
<h2 id="美化">美化</h2>
<p><strong>这些美化都写的很详细，我建议你们自己好好看看吧，我也是在这里看到的，如果问我和这里说的是一样的。</strong></p>
<ul>
<li><a href="/categories/hexo/">hexo 个性化教程</a></li>
<li><a href="http://www.zhaojun.im"target="_blank" rel="external nofollow noopener noreferrer">valine 特别鸣谢赵俊 👍<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li>
<li><a href="https://asdfv1929.github.io/tags/Hexo/"target="_blank" rel="external nofollow noopener noreferrer">asdfv1929<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li>
<li><a href="https://hexo.io/themes/"target="_blank" rel="external nofollow noopener noreferrer">hexo 官方主题集合<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>，<del>我用的是 aloha 主题</del>，该主题 <a href="https://github.com/henryhuang/hexo-theme-aloha/wiki/zh_CN"target="_blank" rel="external nofollow noopener noreferrer">官方文档<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>，<strong>后改用 next 主题 <a href="https://theme-next.iissnan.com/"target="_blank" rel="external nofollow noopener noreferrer">next 主题<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></strong></li>
<li><a href="https://hexo.io/plugins"target="_blank" rel="external nofollow noopener noreferrer">hexo 官方插件<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>
<del>说说我的主题遇到的一些问题，由于这个主题用的人少，所以作者优化的不是很好（next 使用最多），当然也可以反过来说，所以自己美化了一点</del></li>
</ul>
<h3 id="博文置顶">博文置顶</h3>
<p>修改 <code>hero-generator-index</code> 插件，把文件：<code>node_modules/hexo-generator-index/lib/generator.js</code> 内的代码替换为：</p>
<div class="highlight" id="id-7"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="err">&#39;</span><span class="n">use</span> <span class="n">strict</span><span class="err">&#39;</span><span class="o">;</span>
</span></span><span class="line"><span class="cl"><span class="n">var</span> <span class="n">pagination</span> <span class="o">=</span> <span class="n">require</span><span class="o">(</span><span class="err">&#39;</span><span class="n">hexo</span><span class="o">-</span><span class="n">pagination</span><span class="err">&#39;</span><span class="o">);</span>
</span></span><span class="line"><span class="cl"><span class="n">module</span><span class="o">.</span><span class="na">exports</span> <span class="o">=</span> <span class="n">function</span><span class="o">(</span><span class="n">locals</span><span class="o">){</span>
</span></span><span class="line"><span class="cl">  <span class="n">var</span> <span class="n">config</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="na">config</span><span class="o">;</span>
</span></span><span class="line"><span class="cl">  <span class="n">var</span> <span class="n">posts</span> <span class="o">=</span> <span class="n">locals</span><span class="o">.</span><span class="na">posts</span><span class="o">;</span>
</span></span><span class="line"><span class="cl">    <span class="n">posts</span><span class="o">.</span><span class="na">data</span> <span class="o">=</span> <span class="n">posts</span><span class="o">.</span><span class="na">data</span><span class="o">.</span><span class="na">sort</span><span class="o">(</span><span class="n">function</span><span class="o">(</span><span class="n">a</span><span class="o">,</span> <span class="n">b</span><span class="o">)</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl">        <span class="k">if</span><span class="o">(</span><span class="n">a</span><span class="o">.</span><span class="na">top</span> <span class="o">&amp;&amp;</span> <span class="n">b</span><span class="o">.</span><span class="na">top</span><span class="o">)</span> <span class="o">{</span> <span class="c1">// 两篇文章 top 都有定义
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>            <span class="k">if</span><span class="o">(</span><span class="n">a</span><span class="o">.</span><span class="na">top</span> <span class="o">==</span> <span class="n">b</span><span class="o">.</span><span class="na">top</span><span class="o">)</span> <span class="k">return</span> <span class="n">b</span><span class="o">.</span><span class="na">date</span> <span class="o">-</span> <span class="n">a</span><span class="o">.</span><span class="na">date</span><span class="o">;</span> <span class="c1">// 若 top 值一样则按照文章日期降序排
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>            <span class="k">else</span> <span class="k">return</span> <span class="n">b</span><span class="o">.</span><span class="na">top</span> <span class="o">-</span> <span class="n">a</span><span class="o">.</span><span class="na">top</span><span class="o">;</span> <span class="c1">// 否则按照 top 值降序排
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>        <span class="o">}</span>
</span></span><span class="line"><span class="cl">        <span class="k">else</span> <span class="k">if</span><span class="o">(</span><span class="n">a</span><span class="o">.</span><span class="na">top</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="n">b</span><span class="o">.</span><span class="na">top</span><span class="o">)</span> <span class="o">{</span> <span class="c1">// 以下是只有一篇文章 top 有定义，那么将有 top 的排在前面（这里用异或操作居然不行 233）
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>            <span class="k">return</span> <span class="o">-</span><span class="mi">1</span><span class="o">;</span>
</span></span><span class="line"><span class="cl">        <span class="o">}</span>
</span></span><span class="line"><span class="cl">        <span class="k">else</span> <span class="k">if</span><span class="o">(!</span><span class="n">a</span><span class="o">.</span><span class="na">top</span> <span class="o">&amp;&amp;</span> <span class="n">b</span><span class="o">.</span><span class="na">top</span><span class="o">)</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl">            <span class="k">return</span> <span class="mi">1</span><span class="o">;</span>
</span></span><span class="line"><span class="cl">        <span class="o">}</span>
</span></span><span class="line"><span class="cl">        <span class="k">else</span> <span class="k">return</span> <span class="n">b</span><span class="o">.</span><span class="na">date</span> <span class="o">-</span> <span class="n">a</span><span class="o">.</span><span class="na">date</span><span class="o">;</span> <span class="c1">// 都没定义按照文章日期降序排
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="o">});</span>
</span></span><span class="line"><span class="cl">  <span class="n">var</span> <span class="n">paginationDir</span> <span class="o">=</span> <span class="n">config</span><span class="o">.</span><span class="na">pagination_dir</span> <span class="o">||</span> <span class="err">&#39;</span><span class="n">page</span><span class="err">&#39;</span><span class="o">;</span>
</span></span><span class="line"><span class="cl">  <span class="k">return</span> <span class="n">pagination</span><span class="o">(</span><span class="err">&#39;&#39;</span><span class="o">,</span> <span class="n">posts</span><span class="o">,</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl">    <span class="n">perPage</span><span class="o">:</span> <span class="n">config</span><span class="o">.</span><span class="na">index_generator</span><span class="o">.</span><span class="na">per_page</span><span class="o">,</span>
</span></span><span class="line"><span class="cl">    <span class="n">layout</span><span class="o">:</span> <span class="o">[</span><span class="err">&#39;</span><span class="n">index</span><span class="err">&#39;</span><span class="o">,</span> <span class="err">&#39;</span><span class="n">archive</span><span class="err">&#39;</span><span class="o">],</span>
</span></span><span class="line"><span class="cl">    <span class="n">format</span><span class="o">:</span> <span class="n">paginationDir</span> <span class="o">+</span> <span class="err">&#39;</span><span class="o">/%</span><span class="n">d</span><span class="o">/</span><span class="err">&#39;</span><span class="o">,</span>
</span></span><span class="line"><span class="cl">    <span class="n">data</span><span class="o">:</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl">      <span class="n">__index</span><span class="o">:</span> <span class="kc">true</span>
</span></span><span class="line"><span class="cl">    <span class="o">}</span>
</span></span><span class="line"><span class="cl">  <span class="o">});</span>
</span></span><span class="line"><span class="cl"><span class="o">};</span></span></span></code></pre></td></tr></table>
</div>
</div><h3 id="about-页面">about 页面</h3>
<p>about 页面可以用 HTML 写，你想怎么写都行，我用的最简单的方法，直接<code>hexo n page &quot;about&quot;</code>后，会生成一个 md 文件，也就是后面说的文章，直接写文章就行了。</p>
<h3 id="添加搜索评论分享">添加搜索，评论，分享</h3>
<p>搜索功能真心好用，当文章多起来的时候，标签提供的作用已经很少了，只能简单索引，搜索却能精确查找，这里我用的依旧是最简单的本地站内搜索。
安装<code>hexo-generator-searchdb</code></p>
<p>在站点的根目录下执行以下命令：</p>
<div class="highlight" id="id-8"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">npm install hexo-generator-searchdb --save</span></span></code></pre></td></tr></table>
</div>
</div><p>配置站点配置文件
新增以下内容到任意位置：</p>
<div class="highlight" id="id-9"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">search:
</span></span><span class="line"><span class="cl">  path: search.xml
</span></span><span class="line"><span class="cl">  field: post
</span></span><span class="line"><span class="cl">  format: html
</span></span><span class="line"><span class="cl">  limit: 10000</span></span></code></pre></td></tr></table>
</div>
</div><p>配置主题配置文件</p>
<div class="highlight" id="id-10"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">## Local search
</span></span><span class="line"><span class="cl">local_search:
</span></span><span class="line"><span class="cl">  enable: true</span></span></code></pre></td></tr></table>
</div>
</div><p><a href="https://blog.naaln.com/2016/07/hexo-with-algolia/"target="_blank" rel="external nofollow noopener noreferrer">algolia 参考文件<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a><br>
让搜索引擎找到你的博客，还是看到邱承佳学长博文有写到 <a href="https://blog.csdn.net/qq_26891045/article/details/51280470"target="_blank" rel="external nofollow noopener noreferrer">传送门<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
<h3 id="添加访客数阅读量等">添加访客数，阅读量等</h3>
<p>评论有多说（多说好像挂了），计数有不蒜，我用的不蒜子，还有其他的。</p>
<h4 id="文章阅读量">文章阅读量</h4>
<blockquote>
<p>以下适合非 next 主题的部分主题，next 主题已经自带，到主题配置文件修改就好了。</p>
</blockquote>
<p>打开以下路径在你喜欢的地方添加代码，<code>\blog\hexo\themes\主题名字、layout\_partial</code>，找到 <code>article.ejs</code>文件</p>
<div class="highlight" id="id-11"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p">&lt;</span><span class="nt">div</span> <span class="na">align</span><span class="o">=</span><span class="s">&#34;left&#34;</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl">  <span class="p">&lt;</span><span class="nt">span</span> <span class="na">id</span><span class="o">=</span><span class="s">&#34;busuanzi_container_page_pv&#34;</span><span class="p">&gt;</span> 本文总阅读量<span class="p">&lt;</span><span class="nt">span</span> <span class="na">id</span><span class="o">=</span><span class="s">&#34;busuanzi_value_page_pv&#34;</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span>次 <span class="p">&lt;/</span><span class="nt">span</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl"><span class="p">&lt;/</span><span class="nt">div</span><span class="p">&gt;</span></span></span></code></pre></td></tr></table>
</div>
</div><h4 id="站点访问量访客数">站点访问量，访客数</h4>
<p>打开以下路径在你喜欢的地方添加代码，<code>\blog\hexo\themes\主题名字、layout\_partial</code>，找到 <code>footer.ejs</code>文件</p>
<div class="highlight" id="id-12"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p">&lt;</span><span class="nt">script</span> <span class="na">src</span><span class="o">=</span><span class="s">&#34;//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js&#34;</span> <span class="na">async</span> <span class="na">defer</span><span class="p">&gt;&lt;/</span><span class="nt">script</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="p">&lt;</span><span class="nt">span</span> <span class="na">id</span><span class="o">=</span><span class="s">&#34;busuanzi_container_page_pv&#34;</span><span class="p">&gt;</span> 本站总访问量<span class="p">&lt;</span><span class="nt">span</span> <span class="na">id</span><span class="o">=</span><span class="s">&#34;busuanzi_value_site_pv&#34;</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span>次 | <span class="p">&lt;/</span><span class="nt">span</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl"><span class="p">&lt;</span><span class="nt">span</span> <span class="na">id</span><span class="o">=</span><span class="s">&#34;busuanzi_container_site_uv&#34;</span><span class="p">&gt;</span> 本站访客数<span class="p">&lt;</span><span class="nt">span</span> <span class="na">id</span><span class="o">=</span><span class="s">&#34;busuanzi_value_site_uv&#34;</span><span class="p">&gt;&lt;/</span><span class="nt">span</span><span class="p">&gt;</span>人次 <span class="p">&lt;/</span><span class="nt">span</span><span class="p">&gt;</span></span></span></code></pre></td></tr></table>
</div>
</div><p><strong>2018.10.08 更新
不蒜子官网说七牛强制过期域名<del>dn-lbstatics.qbox.me</del>, 所以 js 文件位置发生改变，改为<code>busuanzi.ibruce.info</code></strong></p>
<h2 id="写文章">写文章</h2>
<p>hexo 文章用轻量型标签语言 Markdown 编写</p>
<ul>
<li><a href="https://sspai.com/post/25137"target="_blank" rel="external nofollow noopener noreferrer">markdown 入门<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li>
<li><a href="https://markdown.tw/"target="_blank" rel="external nofollow noopener noreferrer">繁体原始文件<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li>
<li><a href="https://github.com/othree/markdown-syntax-zhtw/blob/master/syntax.md"target="_blank" rel="external nofollow noopener noreferrer">繁体原始文件 github<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li>
</ul>
]]></description></item><item><title>hexo 添加图片，音乐，链接，视频</title><link>https://lruihao.cn/posts/hexowrite/</link><pubDate>Thu, 31 May 2018 23:19:22 +0000</pubDate><author>Lruihao</author><guid>https://lruihao.cn/posts/hexowrite/</guid><description><![CDATA[<blockquote>
<p><strong>如果实在搞得头晕直接去 <a href="https://www.jianshu.com/"target="_blank" rel="external nofollow noopener noreferrer">简书<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 写文章，再把简书生成的 md 文章复制过来就好了（简书是个不错的 Markdown 在线编辑器），还可以去 <a href="https://maxiang.io/"target="_blank" rel="external nofollow noopener noreferrer">马克飞象，专为印象笔记打造的 Markdown 编辑器<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>，<a href="https://www.typora.io/#"target="_blank" rel="external nofollow noopener noreferrer">typora 也是不错的<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>，突然发现 <a href="https://www.csdn.net/"target="_blank" rel="external nofollow noopener noreferrer">csdn<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 也支持 Markdown 编译器了</strong></p>
</blockquote>
<h2 id="1-首先">1. 首先</h2>
<p>刚刚搭博客，很多都不懂，就连插入图片的路径问题都把我整的要命。（我用的 Sublime Text 3 编译器）<br>
下面讲讲：</p>
<h3 id="11-设置站点配置_configyml">1.1 设置站点配置_config.yml</h3>
<div class="highlight" id="id-1"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">post_asset_folder: true</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="12-安装插件">1.2 安装插件</h3>
<div class="highlight" id="id-2"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">npm install https://github.com/CodeFalling/hexo-asset-image -- save</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="13-下次再运行-hexo-n-xxxx来生成-md-博文时下路径">1.3 下次再运行 hexo n &ldquo;xxxx&quot;来生成 md 博文时，下路径</h3>
<div class="highlight" id="id-3"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">/source/_posts</span></span></code></pre></td></tr></table>
</div>
</div><p>文件夹内除了 xxxx.md 文件还有一个同名的文件夹，在 xxxx.md 中想引入图片时，先把图片复制到 xxxx 这个文件夹中，然后只需要在 xxxx.md 中按照 markdown 的格式引入图片。</p>
<h2 id="2-添加图片">2. 添加图片</h2>
<p>首先大家可以查看 hexo 官方文档 <a href="https://hexo.io/zh-cn/docs/asset-folders.html"target="_blank" rel="external nofollow noopener noreferrer">资源文件夹章节<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
<h3 id="21-markdown-添加">2.1 markdown 添加</h3>
<p>相对路径添加（我被这个相对路径搞得要死，前面各种出错，大家可以对照我的来插入图片 &hellip;）</p>
<div class="highlight" id="id-4"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">#直接写图片名就好了，图片实例见下
</span></span><span class="line"><span class="cl">![kyrie irving](294136.jpg)
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">#如果改了 Permalink 就要加上文章名，即同名文件夹名
</span></span><span class="line"><span class="cl">![kyrie irving](hexo-添加图片，音乐，链接，视频/294136.jpg)
</span></span><span class="line"><span class="cl">#代码压缩后前面还要加一个/
</span></span><span class="line"><span class="cl">![kyrie irving](/hexo-添加图片，音乐，链接，视频/294136.jpg)</span></span></code></pre></td></tr></table>
</div>
</div><p></p>
<h3 id="22-插件添加">2.2 插件添加</h3>
<p><a href="https://mr-houzi.github.io/2017/10/24/Hexo-asset-img/"target="_blank" rel="external nofollow noopener noreferrer">传送门<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a><br>
这种方式被很多人诟病，但有时候也不失一种好方式，简单快捷。<br>
还有图片名字显示，不错的。</p>
<div class="highlight" id="id-5"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{% asset_img 297787.jpg kyrie irving %}</span></span></code></pre></td></tr></table>
</div>
</div><p></p>
<h2 id="3-音乐">3. 音乐</h2>
<p>大家可以看 <a href="https://music.163.com"target="_blank" rel="external nofollow noopener noreferrer">网易云音乐<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 的官网，播放音乐可以生成外链，直接拿来用就行了。iframe 插件可以在代码中设置宽高等参数，auto 为自动播放。flash 不可以自己设置参数。看喜好，随便你。
其他音乐，把插件中的链接替换成要播放的链接就可以了</p>
<div class="highlight" id="id-6"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">#iframe 插件
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">&lt;iframe frameborder=&#34;no&#34; border=&#34;0&#34; marginwidth=&#34;0&#34; marginheight=&#34;0&#34; width=330 height=86 src=&#34;//music.163.com/outchain/player?type=2&amp;id=66651&amp;auto=0&amp;height=66&#34;&gt;
</span></span><span class="line"><span class="cl">&lt;/iframe&gt;</span></span></code></pre></td></tr></table>
</div>
</div><iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width=330 height=86 src="//music.163.com/outchain/player?type=2&id=66651&auto=0&height=66"></iframe>
<div class="highlight" id="id-7"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">#flash 插件
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">&lt;embed src=&#34;//music.163.com/style/swf/widget.swf?sid=40249713&amp;type=2&amp;auto=0&amp;width=320&amp;height=66&#34; width=&#34;340&#34; height=&#34;86&#34;  allowNetworking=&#34;all&#34;&gt;
</span></span><span class="line"><span class="cl">&lt;/embed&gt;</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="4-添加链接">4. 添加链接</h2>
<div class="highlight" id="id-8"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">[我的微博](https://weibo.com/liahao)
</span></span><span class="line"><span class="cl">{% link text url title %}</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="5-添加视频">5. 添加视频</h2>
<blockquote>
<p>视频链接最好是打开就是视频的链接（youku，YouTube，抖音等）
可以把视频上传到优酷，抖音等生成外链再拿来用。（优酷上传需要注册和实名认证）
<a href="https://lruihao.cn/posts/nextplugin/"target="_blank" rel="external nofollow noopener noreferrer">插件参考资料<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>
</blockquote>
<p>自拍手写视频（优酷）</p>
<blockquote>
<p>实验室无聊拍的</p>
</blockquote>
<div class="highlight" id="id-9"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">&lt;iframe
</span></span><span class="line"><span class="cl">	height=500 width=100%
</span></span><span class="line"><span class="cl">	src=&#34;https://player.youku.com/embed/XMzY0MzgxNDMyOA==&#34;
</span></span><span class="line"><span class="cl">	frameborder=0 allowfullscreen&gt;
</span></span><span class="line"><span class="cl">&lt;/iframe&gt;</span></span></code></pre></td></tr></table>
</div>
</div><iframe 
	height=500 width=100% 
	src="https://player.youku.com/embed/XMzY0MzgxNDMyOA==" 
	frameborder=0 allowfullscreen>
</iframe>
<h2 id="工具集合">工具集合</h2>
<p><a href="https://picgo.github.io/PicGo-Doc/zh/"target="_blank" rel="external nofollow noopener noreferrer">Picgo<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>
<a href="https://maxiang.io/"target="_blank" rel="external nofollow noopener noreferrer">马克飞象<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>、CSDN、简书
<a href="https://sm.ms/"target="_blank" rel="external nofollow noopener noreferrer">SM.MS 图床<i class="fa-solid fa-external-link-alt fa-fw fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>]]></description></item></channel></rss>