<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://blog.17lai.site</id>
    <title>夜法之书 • Posts by &#34;hexo&#34; category</title>
    <link href="https://blog.17lai.site" />
    <updated>2026-08-07T02:00:00.000Z</updated>
    <category term="github" />
    <category term="jekyll" />
    <category term="blog" />
    <category term="linux" />
    <category term="hardlink" />
    <category term="bt" />
    <category term="pt" />
    <category term="qnap" />
    <category term="硬盘" />
    <category term="nas" />
    <category term="gitlab" />
    <category term="git" />
    <category term="crack" />
    <category term="embeded" />
    <category term="hisilicon" />
    <category term="driver" />
    <category term="3798m" />
    <category term="mpp" />
    <category term="unf" />
    <category term="kernel" />
    <category term="markdown" />
    <category term="picgo" />
    <category term="wiz" />
    <category term="joplin" />
    <category term="typora" />
    <category term="宝塔" />
    <category term="vps" />
    <category term="建站" />
    <category term="nginx" />
    <category term="apache" />
    <category term="mysql" />
    <category term="3G" />
    <category term="4G" />
    <category term="3531a" />
    <category term="移植" />
    <category term="嵌入式" />
    <category term="docker" />
    <category term="lamp" />
    <category term="php" />
    <category term="tomcat" />
    <category term="qbittorrent" />
    <category term="ssd" />
    <category term="hdd" />
    <category term="启动" />
    <category term="transmission" />
    <category term="pdca" />
    <category term="5w2h" />
    <category term="smart" />
    <category term="swot" />
    <category term="grow" />
    <category term="okr" />
    <category term="wbs" />
    <category term="registry" />
    <category term="教程" />
    <category term="email" />
    <category term="https" />
    <category term="ssl" />
    <category term="debian" />
    <category term="laptop" />
    <category term="ed2k" />
    <category term="ati" />
    <category term="tls" />
    <category term="隐私" />
    <category term="安全" />
    <category term="优化" />
    <category term="emby" />
    <category term="sonarr" />
    <category term="jeckett" />
    <category term="portainer" />
    <category term="gitbook" />
    <category term="note" />
    <category term="mariadb" />
    <category term="mermaid" />
    <category term="webdav" />
    <category term="web" />
    <category term="http" />
    <category term="css" />
    <category term="js" />
    <category term="3a" />
    <category term="ae" />
    <category term="image" />
    <category term="vim" />
    <category term="ide" />
    <category term="ccs" />
    <category term="ai" />
    <category term="face" />
    <category term="thinkpad" />
    <category term="sound" />
    <category term="speaker" />
    <category term="music" />
    <category term="韩红" />
    <category term="刮削" />
    <category term="musicbrainz" />
    <category term="mp3tag" />
    <category term="cmake" />
    <category term="develop" />
    <category term="ipv6" />
    <category term="hexo" />
    <category term="matery" />
    <category term="npm" />
    <category term="traefik" />
    <category term="proxy" />
    <category term="swarm" />
    <category term="ubuntu" />
    <category term="tmm" />
    <category term="字幕" />
    <category term="plex" />
    <category term="earthly" />
    <category term="ci/cd" />
    <category term="mstream" />
    <category term="selfhost" />
    <category term="plantuml" />
    <category term="mathjax" />
    <category term="中岛美嘉" />
    <category term="vscode" />
    <category term="插件" />
    <category term="编码" />
    <category term="tools" />
    <category term="winrar" />
    <category term="node" />
    <category term="jenkins" />
    <category term="emoji" />
    <category term="shell" />
    <category term="isp" />
    <category term="awb" />
    <category term="mywork" />
    <category term="cdn" />
    <category term="seo" />
    <category term="devops" />
    <category term="fitness" />
    <category term="健身" />
    <category term="运动" />
    <category term="drowio" />
    <category term="man" />
    <category term="k8s" />
    <category term="harbor" />
    <category term="框架" />
    <category term="图解" />
    <category term="管理" />
    <category term="竞品分析" />
    <category term="doxygen" />
    <category term="rss" />
    <category term="rsshub" />
    <category term="中医" />
    <category term="西医" />
    <category term="文化历史" />
    <category term="os" />
    <category term="自制" />
    <category term="社会观察" />
    <category term="知识" />
    <category term="智慧" />
    <category term="bash" />
    <category term="驱动" />
    <category term="sensor" />
    <category term="nodeppt" />
    <category term="故事" />
    <category term="编译器" />
    <category term="C" />
    <category term="compiler" />
    <category term="vercel" />
    <category term="写作" />
    <category term="potplayer" />
    <category term="action" />
    <category term="workflow" />
    <category term="yandex" />
    <category term="source" />
    <category term="hack" />
    <category term="download" />
    <category term="概率" />
    <category term="普朗克" />
    <category term="pmbok" />
    <category term="ipd" />
    <category term="绩效" />
    <category term="投资" />
    <category term="理财" />
    <category term="金融" />
    <category term="waline" />
    <category term="不可能三角" />
    <category term="chatgpt" />
    <category term="openai" />
    <category term="calibre" />
    <category term="douban" />
    <category term="book" />
    <category term="IPD" />
    <category term="MM方法论" />
    <category term="端到端" />
    <category term="信用卡" />
    <category term="echarts" />
    <category term="search" />
    <category term="读书评鉴" />
    <category term="穿越必备" />
    <category term="易学" />
    <category term="google" />
    <category term="开源" />
    <category term="定制服务器" />
    <category term="profile" />
    <category term="人性" />
    <category term="人格分析" />
    <category term="tampermonkey" />
    <category term="zhihu" />
    <category term="csdn" />
    <category term="juejin" />
    <category term="高考" />
    <category term="专业" />
    <category term="office" />
    <category term="kms" />
    <category term="破解" />
    <category term="webhook" />
    <category term="密码" />
    <category term="bitwarden" />
    <category term="刀郎" />
    <category term="umami" />
    <category term="健康" />
    <category term="恢复" />
    <category term="养生" />
    <category term="windows" />
    <category term="垃圾清理" />
    <category term="速度优化" />
    <category term="天干" />
    <category term="地支" />
    <category term="热水器" />
    <category term="维护" />
    <category term="汽车" />
    <category term="阳历" />
    <category term="阴历" />
    <category term="阴阳和历" />
    <category term="测速" />
    <category term="nat" />
    <category term="光猫" />
    <category term="zlibrary" />
    <category term="sql" />
    <category term="study" />
    <category term="english" />
    <category term="雅思" />
    <category term="postgresql" />
    <category term="ipfs" />
    <category term="sqlite" />
    <category term="dns" />
    <category term="smartdns" />
    <category term="dnsmasq" />
    <category term="物理" />
    <category term="侠义相对论" />
    <category term="科学" />
    <category term="广义相对论" />
    <category term="高薪" />
    <category term="llm" />
    <category term="api" />
    <category term="免费" />
    <category term="ollama" />
    <category term="传媒" />
    <category term="功能测试" />
    <category term="tag" />
    <category term="interaction" />
    <category term="codex" />
    <category term="electron" />
    <category term="layout" />
    <entry>
        <id>https://blog.17lai.site/posts/8a11fe0a/</id>
        <title>Hexo主题功能测试-内容tag篇</title>
        <link rel="alternate" href="https://blog.17lai.site/posts/8a11fe0a/"/>
        <content type="html">&lt;h1 id=&#34;内容-tag-插件完整教程与测试&#34;&gt;内容 tag 插件完整教程与测试&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;本文既是 &lt;strong&gt;matery 主题内容 tag 插件的完整使用教程&lt;/strong&gt;，也是 &lt;strong&gt;自动化测试靶场&lt;/strong&gt;。主题原生注册的 tag 见 &lt;code&gt;themes/matery/scripts/tags/&lt;/code&gt;（index.js 统一注册）。自动化测试会断言下方标注的渲染标记。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;1-便签-note&#34;&gt;1. 便签 note&lt;/h2&gt;
&lt;h3 id=&#34;用途&#34;&gt;用途&lt;/h3&gt;
&lt;p&gt;文章内的彩色提示块，用于警示/成功/信息/危险等强调内容。&lt;/p&gt;
&lt;h3 id=&#34;语法&#34;&gt;语法&lt;/h3&gt;

&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% note 颜色 %&amp;#125;内容&amp;#123;% endnote %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;颜色&lt;/strong&gt;（可选，默认 default）：&lt;code&gt;default&lt;/code&gt; / &lt;code&gt;primary&lt;/code&gt; / &lt;code&gt;success&lt;/code&gt; / &lt;code&gt;info&lt;/code&gt; / &lt;code&gt;warning&lt;/code&gt; / &lt;code&gt;danger&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;别名&lt;/strong&gt;：&lt;code&gt;&amp;#123;% subnote %&amp;#125;&lt;/code&gt;（次级便签）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;全部颜色示例&#34;&gt;全部颜色示例&lt;/h3&gt;
&lt;div class=&#34;note default&#34;&gt;&lt;p&gt;&lt;strong&gt;default&lt;/strong&gt; 默认便签——普通提示&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;note primary&#34;&gt;&lt;p&gt;&lt;strong&gt;primary&lt;/strong&gt; 主要便签——重点强调&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;note success&#34;&gt;&lt;p&gt;&lt;strong&gt;success&lt;/strong&gt; 成功便签——操作完成提示&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;note info&#34;&gt;&lt;p&gt;&lt;strong&gt;info&lt;/strong&gt; 信息便签——补充说明&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;note warning&#34;&gt;&lt;p&gt;&lt;strong&gt;warning&lt;/strong&gt; 警告便签——注意事项&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;note danger&#34;&gt;&lt;p&gt;&lt;strong&gt;danger&lt;/strong&gt; 危险便签——严重警告&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id=&#34;实现效果&#34;&gt;实现效果&lt;/h3&gt;
&lt;p&gt;彩色圆角卡片，左侧色条 + 图标（成功 ✓ / 警告 ⚠ / 危险 ✕）。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：页面含 &lt;code&gt;class=&amp;quot;note&lt;/code&gt; 标记（6 种颜色各 1 处）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;2-时间线-timeline&#34;&gt;2. 时间线 timeline&lt;/h2&gt;
&lt;h3 id=&#34;用途-2&#34;&gt;用途&lt;/h3&gt;
&lt;p&gt;按时间顺序展示事件/版本记录/成长历程。&lt;/p&gt;
&lt;h3 id=&#34;语法-2&#34;&gt;语法&lt;/h3&gt;

&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% timeline 标题,颜色 %&amp;#125;
&amp;lt;!-- timeline 时间节点 --&amp;gt;
- 事件内容（支持 Markdown）
&amp;lt;!-- endtimeline --&amp;gt;
&amp;#123;% endtimeline %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;标题&lt;/strong&gt;：时间线整体标题&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;颜色&lt;/strong&gt;（可选）：&lt;code&gt;green&lt;/code&gt; / &lt;code&gt;blue&lt;/code&gt; / &lt;code&gt;red&lt;/code&gt; / &lt;code&gt;orange&lt;/code&gt; 等&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间节点&lt;/strong&gt;：&lt;code&gt;&amp;lt;!-- timeline 日期 --&amp;gt;&lt;/code&gt; 分隔每个事件&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;示例&#34;&gt;示例&lt;/h3&gt;
&lt;div class=&#34;timeline green&#34;&gt;&lt;div class=&#39;timeline-item headline&#39;&gt;&lt;div class=&#39;timeline-item-title&#39;&gt;&lt;div class=&#39;item-circle&#39;&gt;&lt;p&gt;主题功能演进记录&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&#39;timeline-item&#39;&gt;&lt;div class=&#39;timeline-item-title&#39;&gt;&lt;div class=&#39;item-circle&#39;&gt;&lt;p&gt;2026-08&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&#39;timeline-item-content&#39;&gt;&lt;ul&gt;
&lt;li&gt;新增内容 tag 测试页（note/timeline/tabs/label 等完整教程）&lt;/li&gt;
&lt;li&gt;相册数据重构（galleries.yml 三种形式）&lt;/li&gt;
&lt;li&gt;统一 lightGallery 图像查看库&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&#39;timeline-item&#39;&gt;&lt;div class=&#39;timeline-item-title&#39;&gt;&lt;div class=&#39;item-circle&#39;&gt;&lt;p&gt;2026-07&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&#39;timeline-item-content&#39;&gt;&lt;ul&gt;
&lt;li&gt;评论区架构优化（comment: waline）&lt;/li&gt;
&lt;li&gt;修复 href=/ MIME 样式错误&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h3 id=&#34;实现效果-2&#34;&gt;实现效果&lt;/h3&gt;
&lt;p&gt;垂直时间线 + 圆点标记，支持颜色主题，标题用 Markdown 渲染。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：页面含 &lt;code&gt;timeline&lt;/code&gt; 标记 + 3 个时间节点。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;3-标签页-tabs&#34;&gt;3. 标签页 tabs&lt;/h2&gt;
&lt;h3 id=&#34;用途-3&#34;&gt;用途&lt;/h3&gt;
&lt;p&gt;多标签内容切换，适合分类展示/步骤说明/对比内容。&lt;/p&gt;
&lt;h3 id=&#34;语法-3&#34;&gt;语法&lt;/h3&gt;

&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% tabs 唯一名称,激活序号 %&amp;#125;
&amp;lt;!-- tab 标签标题 --&amp;gt;
内容（支持 Markdown 和内联 tag）
&amp;lt;!-- endtab --&amp;gt;
&amp;#123;% endtabs %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;唯一名称&lt;/strong&gt;：必填，用于生成 id（空格转 &lt;code&gt;-&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;激活序号&lt;/strong&gt;：可选，默认 1（第一个标签激活）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;标签标题&lt;/strong&gt;：&lt;code&gt;&amp;lt;!-- tab 标题 --&amp;gt;&lt;/code&gt; 定义每个标签&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;示例（默认激活第一个）&#34;&gt;示例（默认激活第一个）&lt;/h3&gt;
&lt;div class=&#34;tag-common tabs&#34; id=&#34;主题功能对比&#34;&gt;&lt;ul class=&#34;nav-tabs&#34;&gt;&lt;li class=&#34;tab active&#34;&gt;&lt;a data-target=&#34;主题功能对比-1&#34;&gt;优点&lt;/a&gt;&lt;/li&gt;&lt;li class=&#34;tab&#34;&gt;&lt;a data-target=&#34;主题功能对比-2&#34;&gt;缺点&lt;/a&gt;&lt;/li&gt;&lt;li class=&#34;tab&#34;&gt;&lt;a data-target=&#34;主题功能对比-3&#34;&gt;适用场景&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class=&#34;tab-content&#34;&gt;&lt;div class=&#34;tab-pane active&#34; id=&#34;主题功能对比-1&#34;&gt;&lt;ul&gt;
&lt;li&gt;功能全面：内容 tag 覆盖 10+ 插件&lt;/li&gt;
&lt;li&gt;配置灵活：每个功能可独立开关&lt;/li&gt;
&lt;li&gt;性能优化：懒加载 + 占位防 CLS&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div class=&#34;tab-pane&#34; id=&#34;主题功能对比-2&#34;&gt;&lt;ul&gt;
&lt;li&gt;配置项多，上手有学习成本&lt;/li&gt;
&lt;li&gt;部分功能依赖外部 CDN&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div class=&#34;tab-pane&#34; id=&#34;主题功能对比-3&#34;&gt;&lt;ul&gt;
&lt;li&gt;技术博客：代码/教程/对比&lt;/li&gt;
&lt;li&gt;个人博客：相册/项目/历程&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h3 id=&#34;实现效果-3&#34;&gt;实现效果&lt;/h3&gt;
&lt;p&gt;Materialize tabs 风格，点击切换，激活标签高亮。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：页面含 &lt;code&gt;nav-tabs&lt;/code&gt; 标记 + 3 个标签。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;4-行内标签-label&#34;&gt;4. 行内标签 label&lt;/h2&gt;
&lt;h3 id=&#34;用途-4&#34;&gt;用途&lt;/h3&gt;
&lt;p&gt;行内彩色小标签，用于关键词/状态/分类标注。&lt;/p&gt;
&lt;h3 id=&#34;语法-4&#34;&gt;语法&lt;/h3&gt;

&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% label 颜色@文字 %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;颜色&lt;/strong&gt;（可选，默认 default）：&lt;code&gt;default&lt;/code&gt; / &lt;code&gt;primary&lt;/code&gt; / &lt;code&gt;success&lt;/code&gt; / &lt;code&gt;info&lt;/code&gt; / &lt;code&gt;warning&lt;/code&gt; / &lt;code&gt;danger&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;★ 注意参数顺序&lt;/strong&gt;：颜色在 &lt;code&gt;@&lt;/code&gt; 前，文字在 &lt;code&gt;@&lt;/code&gt; 后（源码 &lt;code&gt;split(&#39;@&#39;)&lt;/code&gt;，&lt;code&gt;classes=args[0]&lt;/code&gt;、&lt;code&gt;text=args[1]&lt;/code&gt;）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;全部颜色示例-2&#34;&gt;全部颜色示例&lt;/h3&gt;
&lt;span class=&#34;label label-default&#34;&gt;默认&lt;/span&gt; &lt;span class=&#34;label label-primary&#34;&gt;主要&lt;/span&gt; &lt;span class=&#34;label label-success&#34;&gt;成功&lt;/span&gt; &lt;span class=&#34;label label-info&#34;&gt;信息&lt;/span&gt; &lt;span class=&#34;label label-warning&#34;&gt;警告&lt;/span&gt; &lt;span class=&#34;label label-danger&#34;&gt;危险&lt;/span&gt;
&lt;h3 id=&#34;实现效果-4&#34;&gt;实现效果&lt;/h3&gt;
&lt;p&gt;行内圆角彩色标签，文字白底或彩色背景。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：页面含 &lt;code&gt;class=&amp;quot;label&lt;/code&gt; 标记（6 种颜色）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;5-按钮-button&#34;&gt;5. 按钮 button&lt;/h2&gt;
&lt;h3 id=&#34;用途-5&#34;&gt;用途&lt;/h3&gt;
&lt;p&gt;文章内 CTA 按钮，用于跳转/下载/操作入口。&lt;/p&gt;
&lt;h3 id=&#34;语法-5&#34;&gt;语法&lt;/h3&gt;

&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% button 链接,文字,图标,title %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;★ 链接在第一个参数&lt;/strong&gt;（源码 &lt;code&gt;url=args[0]&lt;/code&gt;、&lt;code&gt;text=args[1]&lt;/code&gt;），文字第二&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;链接&lt;/strong&gt;：必填，跳转 URL（可相对路径 &lt;code&gt;/&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;文字&lt;/strong&gt;：按钮显示文字&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;图标&lt;/strong&gt;（可选）：Font Awesome 图标名（如 &lt;code&gt;home&lt;/code&gt;、&lt;code&gt;github&lt;/code&gt;，自动补 &lt;code&gt;fa fa-&lt;/code&gt; 前缀）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;title&lt;/strong&gt;（可选）：hover 提示文字（非颜色！）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;别名&lt;/strong&gt;：&lt;code&gt;&amp;#123;% btn %&amp;#125;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;示例-2&#34;&gt;示例&lt;/h3&gt;
&lt;a class=&#34;theme-btn&#34; href=&#34;/&#34; title=&#34;首页&#34;&gt;&lt;i class=&#34;fa fa-home&#34;&gt;&lt;/i&gt;返回首页&lt;/a&gt;
&lt;a class=&#34;theme-btn&#34; href=&#34;https://github.com/appotry&#34; title=&#34;GitHub&#34;&gt;&lt;i class=&#34;fa fa-github&#34;&gt;&lt;/i&gt;访问GitHub&lt;/a&gt;
&lt;a class=&#34;theme-btn&#34; href=&#34;/about&#34; title=&#34;关于&#34;&gt;&lt;i class=&#34;fa fa-user-circle&#34;&gt;&lt;/i&gt;关于我&lt;/a&gt;
&lt;a class=&#34;theme-btn&#34; href=&#34;/tags&#34; title=&#34;标签&#34;&gt;纯文字按钮&lt;/a&gt;
&lt;h3 id=&#34;实现效果-5&#34;&gt;实现效果&lt;/h3&gt;
&lt;p&gt;Materialize 风格按钮，带图标 + 波浪点击效果。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：页面含 &lt;code&gt;btn&lt;/code&gt; 标记（≥4 个按钮）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;6-GitHub-卡片-githubCard&#34;&gt;6. GitHub 卡片 githubCard&lt;/h2&gt;
&lt;h3 id=&#34;用途-6&#34;&gt;用途&lt;/h3&gt;
&lt;p&gt;展示 GitHub 仓库信息卡片（星标/分支/简介）。&lt;/p&gt;
&lt;h3 id=&#34;语法-6&#34;&gt;语法&lt;/h3&gt;

&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% githubCard user:用户名 repo:仓库名 %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;user&lt;/strong&gt;：必填，GitHub 用户名&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;repo&lt;/strong&gt;：必填，仓库名&lt;/li&gt;
&lt;li&gt;可选参数（高级）：&lt;code&gt;width&lt;/code&gt; / &lt;code&gt;height&lt;/code&gt; / &lt;code&gt;theme&lt;/code&gt; / &lt;code&gt;align&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;示例-3&#34;&gt;示例&lt;/h3&gt;

&lt;div class=&#34;github-card-container&#34; style=&#34;position: relative; min-height: 150px;&#34;&gt;
  &lt;div class=&#34;github-card&#34; data-user=&#34;appotry&#34; data-repo=&#34;hexo&#34;&gt;&lt;/div&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;github-card-error&#34;&gt;
      JavaScript is required to load GitHub Cards
    &lt;/div&gt;
  &lt;/noscript&gt;
&lt;/div&gt;
    

&lt;div class=&#34;github-card-container&#34; style=&#34;position: relative; min-height: 150px;&#34;&gt;
  &lt;div class=&#34;github-card&#34; data-user=&#34;hexojs&#34; data-repo=&#34;hexo&#34;&gt;&lt;/div&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;github-card-error&#34;&gt;
      JavaScript is required to load GitHub Cards
    &lt;/div&gt;
  &lt;/noscript&gt;
&lt;/div&gt;
    
&lt;h3 id=&#34;实现效果-6&#34;&gt;实现效果&lt;/h3&gt;
&lt;p&gt;仓库卡片：仓库名 + 简介 + 星标/分支数，点击跳转仓库。依赖 GitHub API（失败时降级为链接）。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：页面含 &lt;code&gt;github-card&lt;/code&gt; 或仓库名链接标记。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;7-Mermaid-流程图&#34;&gt;7. Mermaid 流程图&lt;/h2&gt;
&lt;h3 id=&#34;用途-7&#34;&gt;用途&lt;/h3&gt;
&lt;p&gt;渲染 Mermaid 图表（流程图/时序图/类图等）。&lt;/p&gt;
&lt;h3 id=&#34;Front-matter-配置（重要）&#34;&gt;Front-matter 配置（重要）&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;mermaid: true    # 在文章 front-matter 中开启（否则 Mermaid 不渲染）&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;同时需在主题 &lt;code&gt;_config.yml&lt;/code&gt; 启用：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;post:
  mermaid:
    enable: true&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;语法-7&#34;&gt;语法&lt;/h3&gt;

&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% mermaid %&amp;#125;
graph TD
    A --&amp;gt; B
&amp;#123;% endmermaid %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;

&lt;h3 id=&#34;示例-1：流程图（graph）&#34;&gt;示例 1：流程图（graph）&lt;/h3&gt;

&lt;pre&gt;
&lt;code class=&#34;mermaid&#34; &gt;
graph TD
    A[构建] --&gt; B{测试}
    B --&gt;|通过| C[部署]
    B --&gt;|失败| D[修复]
    D --&gt; B
    C --&gt; E[监控]
&lt;/code&gt;
&lt;/pre&gt;
&lt;h3 id=&#34;示例-2：时序图（sequenceDiagram）&#34;&gt;示例 2：时序图（sequenceDiagram）&lt;/h3&gt;

&lt;pre&gt;
&lt;code class=&#34;mermaid&#34; &gt;
sequenceDiagram
    participant U as 用户
    participant S as 服务器
    participant D as 数据库
    U-&gt;&gt;S: 发起请求
    S-&gt;&gt;D: 查询数据
    D--&gt;&gt;S: 返回结果
    S--&gt;&gt;U: 响应页面
&lt;/code&gt;
&lt;/pre&gt;
&lt;h3 id=&#34;示例-3：类图（classDiagram）&#34;&gt;示例 3：类图（classDiagram）&lt;/h3&gt;

&lt;pre&gt;
&lt;code class=&#34;mermaid&#34; &gt;
classDiagram
    class 用户 {
        +String 姓名
        +登录()
    }
    class 博客 {
        +String 标题
        +发布()
    }
    用户 --&gt; 博客
&lt;/code&gt;
&lt;/pre&gt;
&lt;h3 id=&#34;实现效果-7&#34;&gt;实现效果&lt;/h3&gt;
&lt;p&gt;Mermaid 渲染为 SVG 图表，暗色模式自适应（主题已适配）。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：页面含 &lt;code&gt;class=&amp;quot;mermaid&amp;quot;&lt;/code&gt; 标记（≥3 个图表）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;8-PDF-嵌入-pdf&#34;&gt;8. PDF 嵌入 pdf&lt;/h2&gt;
&lt;h3 id=&#34;用途-8&#34;&gt;用途&lt;/h3&gt;
&lt;p&gt;文章内嵌 PDF 文件查看器。&lt;/p&gt;
&lt;h3 id=&#34;语法-8&#34;&gt;语法&lt;/h3&gt;

&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% pdf 文件URL %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;文件URL&lt;/strong&gt;：PDF 文件地址（本地或远程）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;示例-4&#34;&gt;示例&lt;/h3&gt;

&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% pdf &amp;#x2F;medias_webp&amp;#x2F;docs&amp;#x2F;sample.pdf %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;

&lt;h3 id=&#34;实现效果-8&#34;&gt;实现效果&lt;/h3&gt;
&lt;p&gt;PDF.js 查看器（翻页/缩放/下载）。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：页面含 pdf 相关容器标记。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;9-插入片段-insertmd&#34;&gt;9. 插入片段 insertmd&lt;/h2&gt;
&lt;h3 id=&#34;用途-9&#34;&gt;用途&lt;/h3&gt;
&lt;p&gt;插入 &lt;code&gt;source/_template/&lt;/code&gt; 下的 Markdown 模板片段，实现内容复用。&lt;/p&gt;
&lt;h3 id=&#34;语法-9&#34;&gt;语法&lt;/h3&gt;

&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% insertmd &amp;#39;文件名.md&amp;#39; %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;文件名&lt;/strong&gt;：&lt;code&gt;source/_template/&lt;/code&gt; 下的文件名（含 .md）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;示例-5&#34;&gt;示例&lt;/h3&gt;

&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% insertmd &amp;#39;disclaimer.md&amp;#39; %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;

&lt;h3 id=&#34;实现效果-9&#34;&gt;实现效果&lt;/h3&gt;
&lt;p&gt;渲染模板片段内容到当前位置（异步加载，支持嵌套）。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：渲染后含模板片段内容。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;10-微信对话卡片-wechat-dialog&#34;&gt;10. 微信对话卡片 wechat_dialog&lt;/h2&gt;
&lt;h3 id=&#34;用途-10&#34;&gt;用途&lt;/h3&gt;
&lt;p&gt;渲染微信聊天界面卡片，用于对话示例/客服场景。&lt;/p&gt;
&lt;h3 id=&#34;语法-10&#34;&gt;语法&lt;/h3&gt;

&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% wechat_dialog %&amp;#125;
User: 用户说的话
Assistant: AI&amp;#x2F;客服的回复
&amp;#123;% endwechat_dialog %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;行格式&lt;/strong&gt;：&lt;code&gt;User:&lt;/code&gt; 开头 = 右侧用户气泡；&lt;code&gt;Assistant:&lt;/code&gt; 开头 = 左侧助手气泡&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;支持&lt;/strong&gt;：多行内容、Markdown 渲染（加粗/列表等）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;别名&lt;/strong&gt;：&lt;code&gt;&amp;#123;% wd %&amp;#125;&lt;/code&gt; 等价于 &lt;code&gt;&amp;#123;% wechat_dialog %&amp;#125;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;示例-6&#34;&gt;示例&lt;/h3&gt;
&lt;div class=&#34;chat-container&#34;&gt;
        &lt;div class=&#34;chat-message user&#34;&gt;
          &lt;img no-lazy class=&#34;avatar&#34; 
               src=&#34;/medias_webp/avatar/2.jpg&#34; 
               alt=&#34;User&#34;&gt;
          &lt;div class=&#34;chat-content&#34;&gt;&lt;p&gt;你好，我想了解 matery 主题&lt;/p&gt;
&lt;/div&gt;
        &lt;/div&gt;
      
        &lt;div class=&#34;chat-message assistant&#34;&gt;
          &lt;img no-lazy class=&#34;avatar&#34; 
               src=&#34;/medias_webp/avatar/1.jpg&#34; 
               alt=&#34;Assistant&#34;&gt;
          &lt;div class=&#34;chat-content&#34;&gt;&lt;p&gt;好的，有什么可以帮您？&lt;/p&gt;
&lt;/div&gt;
        &lt;/div&gt;
      
        &lt;div class=&#34;chat-message user&#34;&gt;
          &lt;img no-lazy class=&#34;avatar&#34; 
               src=&#34;/medias_webp/avatar/2.jpg&#34; 
               alt=&#34;User&#34;&gt;
          &lt;div class=&#34;chat-content&#34;&gt;&lt;p&gt;主题支持哪些功能？&lt;/p&gt;
&lt;/div&gt;
        &lt;/div&gt;
      
        &lt;div class=&#34;chat-message assistant&#34;&gt;
          &lt;img no-lazy class=&#34;avatar&#34; 
               src=&#34;/medias_webp/avatar/1.jpg&#34; 
               alt=&#34;Assistant&#34;&gt;
          &lt;div class=&#34;chat-content&#34;&gt;&lt;p&gt;内容 tag、相册、搜索、评论等 &lt;strong&gt;20+&lt;/strong&gt; 功能&lt;/p&gt;
&lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
&lt;h3 id=&#34;实现效果-10&#34;&gt;实现效果&lt;/h3&gt;
&lt;p&gt;微信风格气泡对话，左右分列，头像+气泡。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：页面含微信对话容器标记（&lt;code&gt;.chat-container&lt;/code&gt;）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;附：tag-插件速查表&#34;&gt;附：tag 插件速查表&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;插件&lt;/th&gt;
&lt;th&gt;语法&lt;/th&gt;
&lt;th&gt;关键参数&lt;/th&gt;
&lt;th&gt;是否需要 frontmatter&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;note&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;#123;% note 颜色 %&amp;#125;内容&amp;#123;% endnote %&amp;#125;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;6 色&lt;/td&gt;
&lt;td&gt;否&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;timeline&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;#123;% timeline 标题,颜色 %&amp;#125;...&amp;#123;% endtimeline %&amp;#125;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;标题/颜色&lt;/td&gt;
&lt;td&gt;否&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;tabs&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;#123;% tabs 名称,序号 %&amp;#125;...&amp;#123;% endtabs %&amp;#125;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;名称/序号&lt;/td&gt;
&lt;td&gt;否&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;label&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;#123;% label 颜色@文字 %&amp;#125;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;颜色在前文字在后&lt;/td&gt;
&lt;td&gt;否&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;button&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;#123;% button 链接,文字,图标,title %&amp;#125;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;链接第一/文字第二&lt;/td&gt;
&lt;td&gt;否&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;githubCard&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;#123;% githubCard user:xx repo:yy %&amp;#125;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;user/repo&lt;/td&gt;
&lt;td&gt;否&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;mermaid&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;#123;% mermaid %&amp;#125;...&amp;#123;% endmermaid %&amp;#125;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;图表类型&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;是（mermaid: true）&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;pdf&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;#123;% pdf URL %&amp;#125;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;URL&lt;/td&gt;
&lt;td&gt;否&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;insertmd&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;#123;% insertmd &#39;file.md&#39; %&amp;#125;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;文件名&lt;/td&gt;
&lt;td&gt;否&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;wechat_dialog&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;#123;% wechat_dialog %&amp;#125;User:/Assistant: 行&amp;#123;% endwechat_dialog %&amp;#125;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;User/Assistant 行&lt;/td&gt;
&lt;td&gt;否&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;link rel=&#34;stylesheet&#34; href=&#34;https://fastly.jsdelivr.net/npm/markmap-toolbar@0.18.10/dist/style.css&#34;&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/d3@7&#34;&gt;&lt;/script&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/markmap-view@0.18.10&#34;&gt;&lt;/script&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/markmap-toolbar@0.18.10&#34;&gt;&lt;/script&gt;
&lt;link rel=&#34;stylesheet&#34; href=&#34;/css/markmap.css&#34;&gt;

&lt;script src=&#34;/js/markmap.js&#34;&gt;&lt;/script&gt;
</content>
        <category term="教程" />
        <category term="功能测试" />
        <category term="tag" />
        <updated>2026-08-07T02:00:00.000Z</updated>
    </entry>
    <entry>
        <id>https://blog.17lai.site/posts/94f68311/</id>
        <title>Hexo主题功能测试-交互视觉篇</title>
        <link rel="alternate" href="https://blog.17lai.site/posts/94f68311/"/>
        <content type="html">&lt;h1 id=&#34;交互与视觉功能完整教程与测试&#34;&gt;交互与视觉功能完整教程与测试&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;本文既是 &lt;strong&gt;matery 主题交互视觉功能的完整使用教程&lt;/strong&gt;，也是 &lt;strong&gt;自动化测试靶场&lt;/strong&gt;。覆盖：代码块增强、图片灯箱、打字机、页面特效、繁简转换、进度条、回顶、打赏、打印。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;1-代码块增强&#34;&gt;1. 代码块增强&lt;/h2&gt;
&lt;h3 id=&#34;用途&#34;&gt;用途&lt;/h3&gt;
&lt;p&gt;代码块显示语言标签、提供复制/展开/折叠/全屏操作，超长代码自动限高。&lt;/p&gt;
&lt;h3 id=&#34;配置（主题-config-yml-的-code-块）&#34;&gt;配置（主题 &lt;code&gt;_config.yml&lt;/code&gt; 的 &lt;code&gt;code&lt;/code&gt; 块）&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;code:
  # 代码语言标签
  language: &amp;#123; enable: true &amp;#125;
  # 复制按钮
  copy_btn: true
  # 展开&amp;#x2F;折叠按钮（超长代码）
  show_full: true
  # 代码块最大高度（超过则折叠）
  height_limit: 450&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;用法&#34;&gt;用法&lt;/h3&gt;
&lt;p&gt;标准 Markdown 代码块即可（自动增强）：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markdown&#34; data-language=&#34;markdown&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markdown&#34;&gt;&amp;#96;&amp;#96;&amp;#96;bash
# Bash 示例
echo &amp;quot;Hello Matery&amp;quot;
&amp;#96;&amp;#96;&amp;#96;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;示例（多语言）&#34;&gt;示例（多语言）&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-bash&#34; data-language=&#34;bash&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;# Bash：系统操作
sudo apt update
docker compose up -d
systemctl status nginx&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-python&#34; data-language=&#34;python&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-python&#34;&gt;# Python：数据处理
def process(data):
    &amp;quot;&amp;quot;&amp;quot;处理数据并返回结果&amp;quot;&amp;quot;&amp;quot;
    result &amp;#x3D; [x * 2 for x in data if x &amp;gt; 0]
    return result

print(process([1, -2, 3, 4]))&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-javascript&#34; data-language=&#34;javascript&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-javascript&#34;&gt;&amp;#x2F;&amp;#x2F; JavaScript：异步请求
async function fetchData(url) &amp;#123;
  const response &amp;#x3D; await fetch(url);
  const data &amp;#x3D; await response.json();
  console.log(&amp;quot;数据:&amp;quot;, data);
&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;# YAML：配置文件
server:
  host: 0.0.0.0
  port: 8080
  workers: 4&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;实现效果&#34;&gt;实现效果&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;右上角语言标签（bash/python/js/yaml）&lt;/li&gt;
&lt;li&gt;复制按钮（点击复制代码）&lt;/li&gt;
&lt;li&gt;超长代码显示&amp;quot;展开&amp;quot;按钮&lt;/li&gt;
&lt;li&gt;全屏按钮（代码大屏查看）&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：页面含 &lt;code&gt;code-area&lt;/code&gt; 标记（≥4 个代码块）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;2-图片灯箱-lightGallery&#34;&gt;2. 图片灯箱 lightGallery&lt;/h2&gt;
&lt;h3 id=&#34;用途-2&#34;&gt;用途&lt;/h3&gt;
&lt;p&gt;文章图片点击放大浏览，支持缩放/翻页/下载。&lt;/p&gt;
&lt;h3 id=&#34;配置（主题-config-yml）&#34;&gt;配置（主题 &lt;code&gt;_config.yml&lt;/code&gt;）&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;# libs.js.lightgallery 已全局加载（v1.10 全模块）
# 文章图片自动被 articleInit 包装为 .img-item
image_zoom:
  enable: true&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;用法-2&#34;&gt;用法&lt;/h3&gt;
&lt;p&gt;普通 Markdown 图片即可（自动增强）：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markdown&#34; data-language=&#34;markdown&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markdown&#34;&gt;![图片描述](&amp;#x2F;medias_webp&amp;#x2F;featureimages&amp;#x2F;1.webp)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;示例&#34;&gt;示例&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;/medias_webp/featureimages/1.webp&#34; alt=&#34;灯箱测试图1&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;/medias_webp/featureimages/2.webp&#34; alt=&#34;灯箱测试图2&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;实现效果-2&#34;&gt;实现效果&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;图片 hover 阴影 + 边框&lt;/li&gt;
&lt;li&gt;点击弹出灯箱（全屏 + 缩放 + 翻页）&lt;/li&gt;
&lt;li&gt;支持字幕（alt/title 显示）&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：图片被包装为 &lt;code&gt;.img-item&lt;/code&gt;，点击弹出 &lt;code&gt;.lg-outer&lt;/code&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;3-打字机-Typed&#34;&gt;3. 打字机 Typed&lt;/h2&gt;
&lt;h3 id=&#34;用途-3&#34;&gt;用途&lt;/h3&gt;
&lt;p&gt;Banner 副标题/文章标题逐字打字动画。&lt;/p&gt;
&lt;h3 id=&#34;配置（主题-config-yml）-2&#34;&gt;配置（主题 &lt;code&gt;_config.yml&lt;/code&gt;）&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;subtitle:
  enable: true
  typed:
    enable: true      # 启用打字机
    loop: true        # 循环轮播
    showCursor: true  # 显示光标
    cursorChar: &amp;quot;_&amp;quot;   # 光标字符
    startDelay: 100   # 启动延迟(ms)
    typeSpeed: 80     # 打字速度(ms&amp;#x2F;字)
    backSpeed: 50     # 删除速度(ms&amp;#x2F;字)

post:
  typed:
    enable: true      # 文章标题打字机&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;实现效果-3&#34;&gt;实现效果&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Banner 副标题逐字打出&lt;/li&gt;
&lt;li&gt;文章页标题打字效果&lt;/li&gt;
&lt;li&gt;光标闪烁 + 循环轮播&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：页面含 &lt;code&gt;#typed&lt;/code&gt; 或 &lt;code&gt;.typed-cursor&lt;/code&gt; 标记。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;4-页面特效&#34;&gt;4. 页面特效&lt;/h2&gt;
&lt;h3 id=&#34;用途-4&#34;&gt;用途&lt;/h3&gt;
&lt;p&gt;10 种装饰特效（樱花/水波/落叶/雪花/飘带等）。&lt;/p&gt;
&lt;h3 id=&#34;配置（主题-config-yml）-3&#34;&gt;配置（主题 &lt;code&gt;_config.yml&lt;/code&gt;）&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;# 每个特效独立开关，桌面宽 &amp;gt;1400px + 访问 &amp;gt;2 次启用
sakura: &amp;#123; enable: false &amp;#125;        # 樱花飘落
ripples: &amp;#123; enable: false &amp;#125;       # 水波荡漾
leaf: &amp;#123; enable: false &amp;#125;          # 落叶
snowflake: &amp;#123; enable: false &amp;#125;     # 雪花
snowdown: &amp;#123; enable: false &amp;#125;      # 落雪
ribbon: &amp;#123; enable: false &amp;#125;        # 静态飘带
ribbon_dynamic: &amp;#123; enable: false &amp;#125; # 动态飘带
fireworks: &amp;#123; enable: false &amp;#125;     # 点击烟花
clicklove: &amp;#123; enable: false &amp;#125;     # 点击爱心
mouseStar: &amp;#123; enable: false &amp;#125;     # 鼠标星星
popupText: &amp;#123; enable: false &amp;#125;     # 点击文字
buble: &amp;#123; enable: false &amp;#125;         # 气泡&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;启用条件&#34;&gt;启用条件&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;桌面宽 &amp;gt; &lt;code&gt;1400px&lt;/code&gt;（&lt;code&gt;BP.fun&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;localStorage 访问计数 &amp;gt; 2&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;实现效果-4&#34;&gt;实现效果&lt;/h3&gt;
&lt;p&gt;页面装饰动画，桌面端体验增强，移动端自动关闭（性能）。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：特效脚本按门控加载（&lt;code&gt;windowWidth &amp;gt; BP.fun&lt;/code&gt;）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;5-繁简转换&#34;&gt;5. 繁简转换&lt;/h2&gt;
&lt;h3 id=&#34;用途-5&#34;&gt;用途&lt;/h3&gt;
&lt;p&gt;页面繁体/简体一键切换。&lt;/p&gt;
&lt;h3 id=&#34;配置（主题-config-yml）-4&#34;&gt;配置（主题 &lt;code&gt;_config.yml&lt;/code&gt;）&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;# 默认编码：1&amp;#x3D;简体 2&amp;#x3D;繁体
zh_default: 1
footer:
  translate:
    enable: true&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;实现效果-5&#34;&gt;实现效果&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;页脚&amp;quot;繁/简&amp;quot;切换按钮&lt;/li&gt;
&lt;li&gt;点击全局转换文字&lt;/li&gt;
&lt;li&gt;localStorage 记忆用户选择&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：页面含 &lt;code&gt;#translateLink&lt;/code&gt; 或切换按钮。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;6-阅读进度条-返回顶部&#34;&gt;6. 阅读进度条 / 返回顶部&lt;/h2&gt;
&lt;h3 id=&#34;用途-6&#34;&gt;用途&lt;/h3&gt;
&lt;p&gt;阅读进度指示 + 一键回到顶部。&lt;/p&gt;
&lt;h3 id=&#34;配置（主题-config-yml）-5&#34;&gt;配置（主题 &lt;code&gt;_config.yml&lt;/code&gt;）&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;# 阅读进度条
fun_features:
  progressbar:
    enable: true
    height_px: 3
    color: &amp;quot;#29d&amp;quot;

# 返回顶部按钮
backTop:
  enable: true&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;实现效果-6&#34;&gt;实现效果&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;顶部进度条随滚动增长&lt;/li&gt;
&lt;li&gt;右下角返回顶部按钮（带平滑滚动）&lt;/li&gt;
&lt;li&gt;移动端按钮尺寸自适应&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：页面含 &lt;code&gt;.progress-bar&lt;/code&gt; 或 &lt;code&gt;#backTop&lt;/code&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;7-打赏弹窗&#34;&gt;7. 打赏弹窗&lt;/h2&gt;
&lt;h3 id=&#34;用途-7&#34;&gt;用途&lt;/h3&gt;
&lt;p&gt;文章打赏按钮 + 微信/支付宝二维码弹窗。&lt;/p&gt;
&lt;h3 id=&#34;配置（主题-config-yml-的-post-reward）&#34;&gt;配置（主题 &lt;code&gt;_config.yml&lt;/code&gt; 的 &lt;code&gt;post.reward&lt;/code&gt;）&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;post:
  reward:
    enable: true
    title: 码字辛苦，打赏作者！
    wechat: &amp;#x2F;medias_webp&amp;#x2F;reward&amp;#x2F;wechat.webp
    alipay: &amp;#x2F;medias_webp&amp;#x2F;reward&amp;#x2F;alipay.webp&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;文章-front-matter-控制&#34;&gt;文章 front-matter 控制&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;reward: true    # 开启本文打赏（可选，默认按全局）&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;实现效果-7&#34;&gt;实现效果&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;文章底部&amp;quot;赏&amp;quot;按钮&lt;/li&gt;
&lt;li&gt;点击弹出二维码 dialog（支付宝/微信 tabs）&lt;/li&gt;
&lt;li&gt;关闭按钮 + 点击遮罩关闭&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：页面含 &lt;code&gt;#reward&lt;/code&gt; + 打赏按钮。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;8-打印样式&#34;&gt;8. 打印样式&lt;/h2&gt;
&lt;h3 id=&#34;用途-8&#34;&gt;用途&lt;/h3&gt;
&lt;p&gt;打印文章时的排版优化。&lt;/p&gt;
&lt;h3 id=&#34;配置（主题-config-yml）-6&#34;&gt;配置（主题 &lt;code&gt;_config.yml&lt;/code&gt;）&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;# 移植自 fluid 的打印样式
print:
  enable: true&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;实现效果-8&#34;&gt;实现效果&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;打印时隐藏导航/侧栏/页脚&lt;/li&gt;
&lt;li&gt;正文居中 + 优化留白&lt;/li&gt;
&lt;li&gt;链接显示 URL&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：CSS 含 &lt;code&gt;@media print&lt;/code&gt; 规则。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;附：交互视觉功能速查表&#34;&gt;附：交互视觉功能速查表&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;功能&lt;/th&gt;
&lt;th&gt;配置键&lt;/th&gt;
&lt;th&gt;参数要点&lt;/th&gt;
&lt;th&gt;自动化断言标记&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;代码块&lt;/td&gt;
&lt;td&gt;&lt;code&gt;code&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;language/copy_btn/show_full&lt;/td&gt;
&lt;td&gt;&lt;code&gt;code-area&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;灯箱&lt;/td&gt;
&lt;td&gt;&lt;code&gt;image_zoom&lt;/code&gt; + &lt;code&gt;libs.js.lightgallery&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;enable&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.img-item&lt;/code&gt; / &lt;code&gt;.lg-outer&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;打字机&lt;/td&gt;
&lt;td&gt;&lt;code&gt;subtitle.typed&lt;/code&gt; / &lt;code&gt;post.typed&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;loop/showCursor/速度&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#typed&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;特效&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sakura&lt;/code&gt; 等 10+ 开关&lt;/td&gt;
&lt;td&gt;桌面+访问&amp;gt;2 门控&lt;/td&gt;
&lt;td&gt;&lt;code&gt;windowWidth &amp;gt; BP.fun&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;繁简&lt;/td&gt;
&lt;td&gt;&lt;code&gt;zh_default&lt;/code&gt; + &lt;code&gt;translate&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1/2 编码&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#translateLink&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;进度条&lt;/td&gt;
&lt;td&gt;&lt;code&gt;progressbar&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;height/color&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.progress-bar&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;回顶&lt;/td&gt;
&lt;td&gt;&lt;code&gt;backTop&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;enable&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#backTop&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;打赏&lt;/td&gt;
&lt;td&gt;&lt;code&gt;post.reward&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;wechat/alipay 图&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#reward&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;打印&lt;/td&gt;
&lt;td&gt;&lt;code&gt;print&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;enable&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@media print&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;link rel=&#34;stylesheet&#34; href=&#34;https://fastly.jsdelivr.net/npm/markmap-toolbar@0.18.10/dist/style.css&#34;&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/d3@7&#34;&gt;&lt;/script&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/markmap-view@0.18.10&#34;&gt;&lt;/script&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/markmap-toolbar@0.18.10&#34;&gt;&lt;/script&gt;
&lt;link rel=&#34;stylesheet&#34; href=&#34;/css/markmap.css&#34;&gt;

&lt;script src=&#34;/js/markmap.js&#34;&gt;&lt;/script&gt;
</content>
        <category term="教程" />
        <category term="功能测试" />
        <category term="interaction" />
        <updated>2026-08-07T02:00:00.000Z</updated>
    </entry>
    <entry>
        <id>https://blog.17lai.site/posts/4008905a/</id>
        <title>Hexo主题功能测试-布局与页面篇</title>
        <link rel="alternate" href="https://blog.17lai.site/posts/4008905a/"/>
        <content type="html">&lt;h1 id=&#34;布局与页面功能完整教程与测试&#34;&gt;布局与页面功能完整教程与测试&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;本文既是 &lt;strong&gt;matery 主题布局与页面功能的完整使用教程&lt;/strong&gt;，也是 &lt;strong&gt;自动化测试靶场&lt;/strong&gt;。覆盖：文章布局特性、侧边栏组件、响应式断点、相册、搜索、评论、暗色模式、加密、RSS/站点地图、PWA。自动化测试（&lt;code&gt;tools/tests/release-test.sh&lt;/code&gt;）会断言下方标注的渲染标记。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;1-文章布局特性&#34;&gt;1. 文章布局特性&lt;/h2&gt;
&lt;h3 id=&#34;1-1-上下篇导航（上一篇-下一篇）&#34;&gt;1.1 上下篇导航（上一篇/下一篇）&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;用途&lt;/strong&gt;：文章底部展示上一篇/下一篇卡片，引导读者连续阅读。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;配置&lt;/strong&gt;（主题 &lt;code&gt;_config.yml&lt;/code&gt;）：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;# 文章底部上下篇导航（自动按时间排序相邻文章）
prenext:
  enable: true&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;实现效果&lt;/strong&gt;：文章末尾左右两张卡片，显示相邻文章标题 + 缩略图，hover 有渐变背景。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：文章页含 &lt;code&gt;#prenext-posts&lt;/code&gt; 容器。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;1-2-版权声明&#34;&gt;1.2 版权声明&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;用途&lt;/strong&gt;：文章底部展示版权/许可协议，注明作者与转载规则。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;配置&lt;/strong&gt;（主题 &lt;code&gt;_config.yml&lt;/code&gt;）：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;post:
  copyright: true          # 显示版权声明
  license: 本文采用 CC BY-NC-SA 4.0 许可协议&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;实现效果&lt;/strong&gt;：文章底部灰色版权卡片，含作者、链接、许可协议三行。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：文章页含版权声明容器（&lt;code&gt;#copyright&lt;/code&gt; 或 &lt;code&gt;.post-copyright&lt;/code&gt;）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;1-3-文章时效提示&#34;&gt;1.3 文章时效提示&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;用途&lt;/strong&gt;：对过期文章显示&amp;quot;内容可能已过时&amp;quot;提示，按天数分级（警告/错误样式）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;配置&lt;/strong&gt;（主题 &lt;code&gt;_config.yml&lt;/code&gt;）：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;post:
  outdate:
    enable: true
    warning_day: 365      # 超过 365 天显示警告样式 note
    error_day: 3650       # 超过 3650 天显示错误样式 note&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;实现效果&lt;/strong&gt;：文章开头显示过期提示 note，天数越长样式越醒目。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：文章页含时效提示元素（&lt;code&gt;outdate&lt;/code&gt; 相关 class）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;1-4-TOC-目录&#34;&gt;1.4 TOC 目录&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;用途&lt;/strong&gt;：右侧（或侧边栏）显示文章章节导航，点击跳转对应标题，滚动高亮当前章节。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;配置&lt;/strong&gt;（主题 &lt;code&gt;_config.yml&lt;/code&gt;）：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;# TOC 目录
toc:
  enable: true
  # 锚点偏移（配合固定导航栏）
  anchor_offset: 60&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;实现效果&lt;/strong&gt;：桌面端右侧悬浮目录树，随滚动高亮当前标题；移动端折叠进侧边栏。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：文章页含 &lt;code&gt;#toc-content&lt;/code&gt; 目录容器。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;1-5-广告位&#34;&gt;1.5 广告位&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;用途&lt;/strong&gt;：TOC 下方预留广告位（卡片形式）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;配置&lt;/strong&gt;：广告卡片由 &lt;code&gt;_partial/side-bar-ad.ejs&lt;/code&gt; 渲染，内容在模板中维护。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实现效果&lt;/strong&gt;：侧边栏 TOC 下方展示广告卡片（&lt;code&gt;.tgCard&lt;/code&gt;）。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：文章页含 &lt;code&gt;.tgCard&lt;/code&gt; 广告容器。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;2-侧边栏组件（widgets）&#34;&gt;2. 侧边栏组件（widgets）&lt;/h2&gt;
&lt;h3 id=&#34;2-1-分类雷达图&#34;&gt;2.1 分类雷达图&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;用途&lt;/strong&gt;：&lt;code&gt;/categories/&lt;/code&gt; 页面用 canvas 雷达图展示各分类文章数量分布。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实现效果&lt;/strong&gt;：分类页顶部 canvas 雷达图，每个分类一个维度。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：&lt;code&gt;/categories/&lt;/code&gt; 含 &lt;code&gt;&amp;lt;canvas&amp;gt;&lt;/code&gt; 元素。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;2-2-标签云&#34;&gt;2.2 标签云&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;用途&lt;/strong&gt;：&lt;code&gt;/tags/&lt;/code&gt; 页面以 chip 样式展示全部标签，点击跳转对应标签页。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实现效果&lt;/strong&gt;：标签页彩色圆角 chip，hover 高亮。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：&lt;code&gt;/tags/&lt;/code&gt; 含 &lt;code&gt;.tag-chips .chip&lt;/code&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;2-3-词云&#34;&gt;2.3 词云&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;用途&lt;/strong&gt;：&lt;code&gt;/tags/&lt;/code&gt; 页面 canvas 词云，标签大小/颜色按权重分布。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实现效果&lt;/strong&gt;：标签页 canvas 词云（字号 ∝ 文章数）。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：&lt;code&gt;/tags/&lt;/code&gt; 含词云 canvas 容器。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;2-4-归档时间线&#34;&gt;2.4 归档时间线&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;用途&lt;/strong&gt;：&lt;code&gt;/archives/&lt;/code&gt; 页面按年/月时间线归档全部文章。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实现效果&lt;/strong&gt;：垂直时间线，圆点 + 年份折叠。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：&lt;code&gt;/archives/&lt;/code&gt; 含 &lt;code&gt;#cd-timeline&lt;/code&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;2-5-关于页统计&#34;&gt;2.5 关于页统计&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;用途&lt;/strong&gt;：&lt;code&gt;/about/&lt;/code&gt; 页面用多张图表展示站点统计（文章数/分类/标签/时间线等）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;实现效果&lt;/strong&gt;：关于页多组 canvas 图表。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：&lt;code&gt;/about/&lt;/code&gt; 含多个 &lt;code&gt;&amp;lt;canvas&amp;gt;&lt;/code&gt; 元素。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;3-响应式断点&#34;&gt;3. 响应式断点&lt;/h2&gt;
&lt;h3 id=&#34;配置（themes-matery-source-css-variables-base-styl）&#34;&gt;配置（&lt;code&gt;themes/matery/source/css/_variables/base.styl&lt;/code&gt;）&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-styl&#34; data-language=&#34;styl&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-styl&#34;&gt;$breakpoint-sm: 368px   &amp;#x2F;&amp;#x2F; 超小屏（手机竖屏）
$breakpoint-md: 768px   &amp;#x2F;&amp;#x2F; 平板&amp;#x2F;手机横屏
$breakpoint-lg: 992px   &amp;#x2F;&amp;#x2F; 桌面
$breakpoint-fun: 1400px &amp;#x2F;&amp;#x2F; 特效启用阈值（大屏）&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;各断点布局&#34;&gt;各断点布局&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;断点&lt;/th&gt;
&lt;th&gt;布局表现&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;768px&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;导航折叠为汉堡菜单，正文单列&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;768–992px&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;平板布局，侧边栏收起&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;gt;992px&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;桌面三栏（正文+侧边栏+TOC）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;&amp;gt;1400px&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;特效启用（樱花/水波等）&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;实现效果&#34;&gt;实现效果&lt;/h3&gt;
&lt;p&gt;Bootstrap/Materialize 栅格自适应，侧边栏在窄屏自动隐藏，TOC 移动端折叠。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：&lt;code&gt;&amp;lt;768px&lt;/code&gt; 导航折叠；&lt;code&gt;&amp;gt;992px&lt;/code&gt; 桌面三栏；&lt;code&gt;&amp;gt;1400px&lt;/code&gt; 特效启用。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;4-相册功能&#34;&gt;4. 相册功能&lt;/h2&gt;
&lt;h3 id=&#34;数据源（source-data-galleries-yml）&#34;&gt;数据源（&lt;code&gt;source/_data/galleries.yml&lt;/code&gt;）&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;相册名:
  photos: 单张图对象 | 字符串路径 | 目录路径  # 三种形式
  cover: 封面图
  description: 描述&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;页面结构&#34;&gt;页面结构&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/galleries/&lt;/code&gt; — 相册列表页（卡片 + 封面）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/galleries/&amp;lt;名称&amp;gt;/&lt;/code&gt; — 单个相册页（灯箱 + caption）&lt;/li&gt;
&lt;li&gt;加密相册：front-matter 加 &lt;code&gt;password&lt;/code&gt;，进入需解密&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;实现效果-2&#34;&gt;实现效果&lt;/h3&gt;
&lt;p&gt;列表卡片 + 内页 lightGallery 灯箱浏览，加密相册解密后显示。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/galleries/&lt;/code&gt; 相册列表&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/galleries/2020/&lt;/code&gt; 灯箱 + caption&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/galleries/private/&lt;/code&gt; 加密解密 UI&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;5-搜索功能&#34;&gt;5. 搜索功能&lt;/h2&gt;
&lt;h3 id=&#34;配置（根-config-yml-的-search-块）&#34;&gt;配置（根 &lt;code&gt;_config.yml&lt;/code&gt; 的 &lt;code&gt;search&lt;/code&gt; 块）&lt;/h3&gt;
&lt;p&gt;三引擎：&lt;code&gt;local&lt;/code&gt;（本地 search.json）+ &lt;code&gt;algolia&lt;/code&gt;（Algolia API）+ &lt;code&gt;pagefind&lt;/code&gt;（Pagefind 索引）。&lt;/p&gt;
&lt;h3 id=&#34;实现效果-3&#34;&gt;实现效果&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;导航栏搜索框（&lt;code&gt;#searchInput&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;搜索弹窗实时结果&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/search.json&lt;/code&gt; 为本地搜索数据源&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：页面含 &lt;code&gt;#searchInput&lt;/code&gt;；&lt;code&gt;/search.json&lt;/code&gt; 可访问；弹窗可打开。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;6-评论系统&#34;&gt;6. 评论系统&lt;/h2&gt;
&lt;h3 id=&#34;配置（根-config-yml）&#34;&gt;配置（根 &lt;code&gt;_config.yml&lt;/code&gt;）&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;comment: waline    # 评论引擎
waline:
  serverURL: https:&amp;#x2F;&amp;#x2F;waline.17lai.site
  ...&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;页面 front-matter 控制：&lt;code&gt;comment: waline&lt;/code&gt;（文章/留言/友链/说说页）。&lt;/p&gt;
&lt;h3 id=&#34;实现效果-4&#34;&gt;实现效果&lt;/h3&gt;
&lt;p&gt;Waline 评论框（Markdown/Emoji/点赞/后台管理）。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：文章/msg/friends/bb 页含 &lt;code&gt;#comments&lt;/code&gt;；waline 初始化脚本存在。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;7-暗色模式&#34;&gt;7. 暗色模式&lt;/h2&gt;
&lt;h3 id=&#34;配置（主题-config-yml）&#34;&gt;配置（主题 &lt;code&gt;_config.yml&lt;/code&gt;）&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;dark_mode:
  enable: true
  default: auto   # auto | light | dark&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;auto&lt;/strong&gt;：优先 &lt;code&gt;prefers-color-scheme&lt;/code&gt;，其次本地时间 18:00–6:00 自动暗色&lt;/li&gt;
&lt;li&gt;切换按钮：手动切换后覆盖默认模式&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;实现效果-5&#34;&gt;实现效果&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;[data-user-color-scheme=&amp;quot;dark&amp;quot;]&lt;/code&gt; 属性驱动全套 CSS 变量切换，图片/图表自适应。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：CSS 含 &lt;code&gt;[data-user-color-scheme=&amp;quot;dark&amp;quot;]&lt;/code&gt; 规则；切换按钮可切换明暗。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;8-加密文章&#34;&gt;8. 加密文章&lt;/h2&gt;
&lt;h3 id=&#34;配置（根-config-yml）-2&#34;&gt;配置（根 &lt;code&gt;_config.yml&lt;/code&gt;）&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;encrypt:
  tags:
    - 私密    # 按标签加密
  default_abstract: 本文已加密
  ...&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;文章只需打上加密标签，阅读时需输入密码。&lt;/p&gt;
&lt;h3 id=&#34;实现效果-6&#34;&gt;实现效果&lt;/h3&gt;
&lt;p&gt;文章页显示解密 UI（&lt;code&gt;#hbePass&lt;/code&gt;），输入正确密码后渲染正文。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：tag 加密文章含 &lt;code&gt;#hbePass&lt;/code&gt; 解密 UI。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;9-RSS-站点地图&#34;&gt;9. RSS / 站点地图&lt;/h2&gt;
&lt;h3 id=&#34;配置（根-config-yml）-3&#34;&gt;配置（根 &lt;code&gt;_config.yml&lt;/code&gt;）&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;feed:            # hexo-feed 生成
  type: atom
  path: atom.xml
sitemap:         # hexo-generator-sitemap
  path: sitemap.xml&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;产物&#34;&gt;产物&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/rss.xml&lt;/code&gt;、&lt;code&gt;/atom.xml&lt;/code&gt;、&lt;code&gt;/feed.json&lt;/code&gt; — 订阅源&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/sitemap.xml&lt;/code&gt;、&lt;code&gt;/baidusitemap.xml&lt;/code&gt; — 搜索引擎抓取&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：&lt;code&gt;/rss.xml&lt;/code&gt;、&lt;code&gt;/atom.xml&lt;/code&gt;、&lt;code&gt;/feed.json&lt;/code&gt;、&lt;code&gt;/sitemap.xml&lt;/code&gt; 均可访问。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;10-PWA&#34;&gt;10. PWA&lt;/h2&gt;
&lt;h3 id=&#34;配置（根-config-yml-userConfig-sw-tmp-js）&#34;&gt;配置（根 &lt;code&gt;_config.yml&lt;/code&gt; + &lt;code&gt;userConfig/sw.tmp.js&lt;/code&gt;）&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;pwa:
  enable: true
  manifest: ...   # 名称&amp;#x2F;图标&amp;#x2F;主题色&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;code&gt;sw.tmp.js&lt;/code&gt; 是 Service Worker 模板，CI 时注入离线缓存版本号 &lt;code&gt;17lai-cache-{时间戳}&lt;/code&gt; 生成 &lt;code&gt;source/sw.js&lt;/code&gt;。&lt;/p&gt;
&lt;h3 id=&#34;实现效果-7&#34;&gt;实现效果&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;可安装（manifest）&lt;/li&gt;
&lt;li&gt;离线缓存静态资源&lt;/li&gt;
&lt;li&gt;版本更新自动刷新&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;测试断言&lt;/strong&gt;：&lt;code&gt;/sw.js&lt;/code&gt; 可访问，SW 注册正常（localhost 豁免）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;附：布局页面功能速查表&#34;&gt;附：布局页面功能速查表&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;功能&lt;/th&gt;
&lt;th&gt;页面/位置&lt;/th&gt;
&lt;th&gt;关键配置&lt;/th&gt;
&lt;th&gt;自动化断言标记&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;上下篇&lt;/td&gt;
&lt;td&gt;文章底部&lt;/td&gt;
&lt;td&gt;&lt;code&gt;prenext&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#prenext-posts&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;版权声明&lt;/td&gt;
&lt;td&gt;文章底部&lt;/td&gt;
&lt;td&gt;&lt;code&gt;post.copyright&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#copyright&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;时效提示&lt;/td&gt;
&lt;td&gt;文章开头&lt;/td&gt;
&lt;td&gt;&lt;code&gt;post.outdate&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;outdate&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TOC&lt;/td&gt;
&lt;td&gt;右侧/侧栏&lt;/td&gt;
&lt;td&gt;&lt;code&gt;toc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#toc-content&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;广告位&lt;/td&gt;
&lt;td&gt;TOC 下方&lt;/td&gt;
&lt;td&gt;&lt;code&gt;_partial/side-bar-ad.ejs&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.tgCard&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;分类雷达图&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/categories/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;自动&lt;/td&gt;
&lt;td&gt;&lt;code&gt;canvas&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;标签云/词云&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/tags/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;自动&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.tag-chips&lt;/code&gt; / &lt;code&gt;canvas&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;归档时间线&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/archives/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;自动&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#cd-timeline&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;关于页图表&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/about/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;自动&lt;/td&gt;
&lt;td&gt;&lt;code&gt;canvas&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;相册&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/galleries/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;galleries.yml&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;灯箱 + 加密 UI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;搜索&lt;/td&gt;
&lt;td&gt;导航栏&lt;/td&gt;
&lt;td&gt;&lt;code&gt;search&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#searchInput&lt;/code&gt; / &lt;code&gt;search.json&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;评论&lt;/td&gt;
&lt;td&gt;文章/msg 等&lt;/td&gt;
&lt;td&gt;&lt;code&gt;comment: waline&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#comments&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;暗色模式&lt;/td&gt;
&lt;td&gt;全局&lt;/td&gt;
&lt;td&gt;&lt;code&gt;dark_mode&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;data-user-color-scheme&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;加密&lt;/td&gt;
&lt;td&gt;标签驱动&lt;/td&gt;
&lt;td&gt;&lt;code&gt;encrypt.tags&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;#hbePass&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RSS/Sitemap&lt;/td&gt;
&lt;td&gt;根路径&lt;/td&gt;
&lt;td&gt;&lt;code&gt;feed&lt;/code&gt; / &lt;code&gt;sitemap&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/rss.xml&lt;/code&gt; 等&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PWA&lt;/td&gt;
&lt;td&gt;全局&lt;/td&gt;
&lt;td&gt;&lt;code&gt;pwa&lt;/code&gt; + &lt;code&gt;sw.tmp.js&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/sw.js&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;link rel=&#34;stylesheet&#34; href=&#34;https://fastly.jsdelivr.net/npm/markmap-toolbar@0.18.10/dist/style.css&#34;&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/d3@7&#34;&gt;&lt;/script&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/markmap-view@0.18.10&#34;&gt;&lt;/script&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/markmap-toolbar@0.18.10&#34;&gt;&lt;/script&gt;
&lt;link rel=&#34;stylesheet&#34; href=&#34;/css/markmap.css&#34;&gt;

&lt;script src=&#34;/js/markmap.js&#34;&gt;&lt;/script&gt;
</content>
        <category term="教程" />
        <category term="功能测试" />
        <category term="layout" />
        <updated>2026-08-07T02:00:00.000Z</updated>
    </entry>
    <entry>
        <id>https://blog.17lai.site/posts/843eb2k9/</id>
        <title>自建Umami访问统计服务并统计静态博客UV/PV</title>
        <link rel="alternate" href="https://blog.17lai.site/posts/843eb2k9/"/>
        <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/umami-software/umami&#34;&gt;Umami&lt;/a&gt; 是一个开源网页访问统计服务，类似Google Analytics。专注于简单，快速，隐私安全。相对于把数据交给大公司，收到各种各样的限制，各种付费解锁功能，自建访问统计，自己掌握访问统计数据更好！还可以统计网页的PV, UV，功能定制化更高！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;span id=&#34;more&#34;&gt;&lt;/span&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2025/05/02/20250502182221.webp&#34; alt=&#34;Umami&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;Umami-统计&#34;&gt;Umami 统计&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;本文同时包含 Umami v2（旧版）和 v3（最新版）的说明。v2 内容已标注，如果你是全新安装请直接看 v3 部分。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id=&#34;安装（v2-版本）&#34;&gt;安装（v2 版本）&lt;/h3&gt;
&lt;p&gt;创建下面这些文件&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-ini&#34; data-language=&#34;ini&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-ini&#34;&gt;# .env
UMAMI_DB_USER&amp;#x3D;umami
UMAMI_DB_PASSWORD&amp;#x3D;password
UMAMI_DB_NAME&amp;#x3D;umami
UMAMI_APP_SECRET&amp;#x3D;vwVXxxxxxLLJWSC&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;# docker-compose.yaml
services:
  umami:
    build:
      context: https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;umami-software&amp;#x2F;umami.git#v2.15.1
      args:
        BASE_PATH: &amp;#x2F;umami
        DATABASE_TYPE: postgresql
    environment:
      PORT: &amp;quot;4000&amp;quot;
      DATABASE_URL: postgres:&amp;#x2F;&amp;#x2F;$&amp;#123;UMAMI_DB_USER&amp;#125;:$&amp;#123;UMAMI_DB_PASSWORD&amp;#125;@umami-db:5432&amp;#x2F;$&amp;#123;UMAMI_DB_NAME&amp;#125;
      DATABASE_TYPE: postgresql
      APP_SECRET: $&amp;#123;UMAMI_APP_SECRET&amp;#125;
      DISABLE_TELEMETRY: 1
    healthcheck:
      test: [&amp;quot;CMD-SHELL&amp;quot;, &amp;quot;curl http:&amp;#x2F;&amp;#x2F;localhost:4000&amp;#x2F;api&amp;#x2F;heartbeat&amp;quot;]
      interval: 60s
      timeout: 15s
      retries: 5
    depends_on:
      umami-db:
        condition: service_healthy
    deploy:
      resources:
        limits:
          memory: 2G
          cpus: &amp;quot;1&amp;quot;

  umami-db:
    image: postgres:15-alpine
    environment:
      - POSTGRES_PASSWORD&amp;#x3D;$&amp;#123;UMAMI_DB_PASSWORD&amp;#125;
      - POSTGRES_USER&amp;#x3D;$&amp;#123;UMAMI_DB_USER&amp;#125;
      - POSTGRES_DB&amp;#x3D;$&amp;#123;UMAMI_DB_NAME&amp;#125;
    healthcheck:
      test: [&amp;quot;CMD-SHELL&amp;quot;, &amp;quot;pg_isready -U $$&amp;#123;POSTGRES_USER&amp;#125; -d $$&amp;#123;POSTGRES_DB&amp;#125;&amp;quot;]
      interval: 60s
      timeout: 15s
      retries: 5
    volumes:
      - umami_pg_data:&amp;#x2F;var&amp;#x2F;lib&amp;#x2F;postgresql&amp;#x2F;data

volumes:
  umami_pg_data:&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-bash&#34; data-language=&#34;bash&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;# docker build and install
$ docker compose up --wait --wait-timeout 360

# docker umami logs 查看
$ docker compose logs umami&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;hr&gt;
&lt;h2 id=&#34;迁移到-Umami-v3&#34;&gt;迁移到 Umami v3&lt;/h2&gt;
&lt;p&gt;Umami 从 v3 开始&lt;strong&gt;移除了 MySQL 支持&lt;/strong&gt;，仅保留 PostgreSQL。同时引入了更安全的 &lt;strong&gt;Share Token&lt;/strong&gt; 机制，用于前端公开统计展示，无需再暴露任何用户凭据。&lt;/p&gt;
&lt;h3 id=&#34;v2-→-v3-主要变化&#34;&gt;v2 → v3 主要变化&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;项目&lt;/th&gt;
&lt;th&gt;v2&lt;/th&gt;
&lt;th&gt;v3&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;数据库&lt;/td&gt;
&lt;td&gt;MySQL / PostgreSQL&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;仅 PostgreSQL&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;前端认证&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Authorization: Bearer&lt;/code&gt;（用户 JWT）&lt;/td&gt;
&lt;td&gt;&lt;code&gt;X-Umami-Share-Token&lt;/code&gt;（网站级只读 token）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;响应格式&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;#123;&amp;quot;pageviews&amp;quot;:&amp;#123;&amp;quot;value&amp;quot;:N&amp;#125;&amp;#125;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;#123;&amp;quot;pageviews&amp;quot;: N&amp;#125;&lt;/code&gt;（直接数字）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;页面过滤参数&lt;/td&gt;
&lt;td&gt;&lt;code&gt;url&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;时间戳单位&lt;/td&gt;
&lt;td&gt;毫秒&lt;/td&gt;
&lt;td&gt;毫秒（不变）&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;安装-v3（全新安装）&#34;&gt;安装 v3（全新安装）&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;# docker-compose.yaml (v3)
services:
  umami:
    image: ghcr.io&amp;#x2F;umami-software&amp;#x2F;umami:latest
    ports:
      - &amp;quot;3000:3000&amp;quot;
    environment:
      DATABASE_URL: postgresql:&amp;#x2F;&amp;#x2F;$&amp;#123;UMAMI_DB_USER&amp;#125;:$&amp;#123;UMAMI_DB_PASSWORD&amp;#125;@umami-db:5432&amp;#x2F;$&amp;#123;UMAMI_DB_NAME&amp;#125;
      DATABASE_TYPE: postgresql
      APP_SECRET: $&amp;#123;UMAMI_APP_SECRET&amp;#125;
    depends_on:
      umami-db:
        condition: service_healthy

  umami-db:
    image: postgres:16-alpine
    environment:
      POSTGRES_PASSWORD: $&amp;#123;UMAMI_DB_PASSWORD&amp;#125;
      POSTGRES_USER: $&amp;#123;UMAMI_DB_USER&amp;#125;
      POSTGRES_DB: $&amp;#123;UMAMI_DB_NAME&amp;#125;
    healthcheck:
      test: [&amp;quot;CMD-SHELL&amp;quot;, &amp;quot;pg_isready -U $$&amp;#123;POSTGRES_USER&amp;#125;&amp;quot;]
    volumes:
      - umami_pg_data:&amp;#x2F;var&amp;#x2F;lib&amp;#x2F;postgresql&amp;#x2F;data

volumes:
  umami_pg_data:&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;MySQL-→-PostgreSQL-迁移（v2-升级-v3）&#34;&gt;MySQL → PostgreSQL 迁移（v2 升级 v3）&lt;/h3&gt;
&lt;p&gt;如果已有 v2 MySQL 数据需要迁移，官方推荐步骤如下：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;先安装 v2 PostgreSQL 版本&lt;/strong&gt;，让 Prisma 创建好正确的表结构&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;清空 &lt;code&gt;_prisma_migrations&lt;/code&gt; 和 &lt;code&gt;user&lt;/code&gt; 表&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;用 pgloader 将 MySQL 数据导入 PostgreSQL&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;升级到 v3 镜像&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;具体迁移步骤可参考 &lt;a href=&#34;https://umami.is/docs/guides/migrate-mysql-postgresql&#34;&gt;官方迁移文档&lt;/a&gt;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;Umami-UV-PV-统计显示（v3-方案）&#34;&gt;Umami UV / PV 统计显示（v3 方案）&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Umami 统计了 UV PV 等各种访问数据。v3 提供了 &lt;strong&gt;Share Token&lt;/strong&gt; 机制，可以为单个网站生成一个只读的 JWT token，暴露在前端也没有安全风险。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;方案对比&#34;&gt;方案对比&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;方案&lt;/th&gt;
&lt;th&gt;安全性&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;s&gt;v2: View only 用户 Bearer token&lt;/s&gt;&lt;/td&gt;
&lt;td&gt;❌ 泄露可查看&lt;strong&gt;所有&lt;/strong&gt;网站&lt;/td&gt;
&lt;td&gt;v3 中已失效（权限检查变更）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;v3: Share Token&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ 泄露仅限&lt;strong&gt;单个&lt;/strong&gt;网站 stats&lt;/td&gt;
&lt;td&gt;本文推荐方案&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id=&#34;Umami-UV-PV-统计显示（v2-方案）&#34;&gt;Umami UV / PV 统计显示（v2 方案）&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;以下为 v2 版本的配置方式，v3 请参考上方。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;新建-View-only-权限的用户（v2）&#34;&gt;新建 &lt;code&gt;View only&lt;/code&gt; 权限的用户（v2）&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;Settings&amp;#96; -&amp;gt; &amp;#96;Users&amp;#96; -&amp;gt; &amp;#96;Create user&amp;#96; -&amp;gt; 填写账号密码，&amp;#96;Role&amp;#96; 选择 &amp;#96;View only&amp;#96; -&amp;gt; &amp;#96;Save&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2024/03/28/20240328054222.webp&#34; alt=&#34;新建用户&#34;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Q: 为什么不直接调用 Umami 的 API 获取数据，而是要额外创建一个账户？&lt;/p&gt;
&lt;p&gt;A: 博客是 &lt;strong&gt;静态开源无服务器&lt;/strong&gt; 的，所有代码都展示在前端，包括 API 调用。而 Umami 的 &lt;code&gt;admin&lt;/code&gt; API 权限太大了，如果使用 &lt;code&gt;admin&lt;/code&gt; 权限的 API Token，那么这个 token 可以获取、修改、删除所有网站的数据，会有严重的安全隐患。&lt;/p&gt;
&lt;p&gt;所以我们需要创建一个 &lt;code&gt;View only&lt;/code&gt; 权限的用户，使用这个 &lt;code&gt;低权限的用户&lt;/code&gt;的 API Token 来访问我们的浏览量等数据。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;新建-Team-并添加用户和网站&#34;&gt;新建 &lt;code&gt;Team&lt;/code&gt; 并添加用户和网站&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;Settings&lt;/code&gt; -&amp;gt; &lt;code&gt;Teams&lt;/code&gt; -&amp;gt; &lt;code&gt;Create team&lt;/code&gt; -&amp;gt; 填写名称 -&amp;gt; &lt;code&gt;Save&lt;/code&gt; -&amp;gt; 找到刚刚创建的 &lt;code&gt;Team&lt;/code&gt; -&amp;gt; &lt;code&gt;Edit&lt;/code&gt; -&amp;gt; 复制 &lt;code&gt;Access code&lt;/code&gt;，点击 &lt;code&gt;Websites&lt;/code&gt; 中点击 &lt;code&gt;Add website&lt;/code&gt; 选中你想共享的网站&lt;/p&gt;
&lt;p&gt;换一个浏览器登录 Umami（使用&lt;code&gt;View only&lt;/code&gt; 权限的用户） -&amp;gt; &lt;code&gt;Settings&lt;/code&gt; -&amp;gt; &lt;code&gt;Teams&lt;/code&gt; -&amp;gt; &lt;code&gt;Join team&lt;/code&gt; -&amp;gt; 输入 &lt;code&gt;Access code&lt;/code&gt; -&amp;gt; &lt;code&gt;Join&lt;/code&gt; -&amp;gt; 如果没有出错的话，点击 &lt;code&gt;Dashboard&lt;/code&gt; 就可以看到你刚刚添加的网站了&lt;/p&gt;
&lt;h3 id=&#34;获取-View-only-用户的-API-Token&#34;&gt;获取 &lt;code&gt;View only&lt;/code&gt; 用户的 API Token&lt;/h3&gt;
&lt;p&gt;根据 Umami 的文档，我们可以通过以下方式获取 API Token：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-awk&#34; data-language=&#34;awk&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-awk&#34;&gt;POST &amp;#x2F;api&amp;#x2F;auth&amp;#x2F;login&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;例如 你的网站地址为 &lt;code&gt;example.com&lt;/code&gt;，那么你需要使用 &lt;code&gt;View only&lt;/code&gt; 的账户密码向 &lt;code&gt;https://example.com/api/auth/login&lt;/code&gt; 发送一个 POST 请求，请求体为：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-json&#34; data-language=&#34;json&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;#123;
  &amp;quot;username&amp;quot;: &amp;quot;your-username&amp;quot;,
  &amp;quot;password&amp;quot;: &amp;quot;your-password&amp;quot;
&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;如果成功，你应该会得到以下的结果：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-json&#34; data-language=&#34;json&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;#123;
  &amp;quot;token&amp;quot;: &amp;quot;eyTMjU2IiwiY...4Q0JDLUhWxnIjoiUE_A&amp;quot;,
  &amp;quot;user&amp;quot;: &amp;#123;
    &amp;quot;id&amp;quot;: &amp;quot;cd33a605-d785-42a1-9365-d6cad3b7befd&amp;quot;,
    &amp;quot;username&amp;quot;: &amp;quot;your-username&amp;quot;,
    &amp;quot;createdAt&amp;quot;: &amp;quot;2020-04-20 01:00:00&amp;quot;
  &amp;#125;
&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;保存 token 值，并在所有请求中发送带 &lt;code&gt;Bearer &amp;lt;token&amp;gt;&lt;/code&gt; 值的 &lt;code&gt;Authorization&lt;/code&gt; 标头。请求标头应该如下所示：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-nginx&#34; data-language=&#34;nginx&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-nginx&#34;&gt;Authorization: Bearer eyTMjU2IiwiY...4Q0JDLUhWxnIjoiUE_A&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;发送请求获取数据&#34;&gt;发送请求获取数据&lt;/h3&gt;
&lt;p&gt;这里要用到类似于 &lt;code&gt;postman&lt;/code&gt; 的 API 测试工具，可以使用的是开源的 &lt;a href=&#34;https://github.com/hoppscotch/hoppscotch&#34;&gt;hoppscotch&lt;/a&gt;，你也可以使用 &lt;code&gt;curl&lt;/code&gt; 或者其他工具。&lt;/p&gt;
&lt;p&gt;先分析一下官方文档的 API 接口：&lt;br&gt;
&lt;code&gt;GET /api/websites/&amp;#123;websiteId&amp;#125;/stats&lt;/code&gt;&lt;br&gt;
&lt;img src=&#34;https://cimg1.17lai.site/data/2024/03/28/20240328054222-1.webp&#34; alt=&#34;API&#34;&gt;&lt;/p&gt;
&lt;p&gt;有两个必填的 查询参数：&lt;code&gt;startAt&lt;/code&gt; 和 &lt;code&gt;endAt&lt;/code&gt;，都是 Unix 毫秒时间戳，表示开始时间和结束时间&lt;/p&gt;
&lt;p&gt;&lt;code&gt;websiteId&lt;/code&gt; 和 &lt;code&gt;startAt&lt;/code&gt; 需要我们自己获取&lt;/p&gt;
&lt;p&gt;&lt;code&gt;websiteId&lt;/code&gt; 可以在 &lt;code&gt;Dashboard&lt;/code&gt; -&amp;gt; &lt;code&gt;View details&lt;/code&gt; -&amp;gt; 看浏览器栏的地址 &lt;code&gt;https://example.com/websites/&amp;#123;websiteId&amp;#125;&lt;/code&gt; 中找到&lt;/p&gt;
&lt;p&gt;&lt;code&gt;startAt&lt;/code&gt; 可发送 &lt;code&gt;GET&lt;/code&gt; 请求到 &lt;code&gt;https://example.com/api/websites/&amp;#123;websiteId&amp;#125;&lt;/code&gt;，请求头为&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-nginx&#34; data-language=&#34;nginx&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-nginx&#34;&gt;Authorization: Bearer eyTMjU2IiwiY...4Q0JDLUhWxnIjoiUE_A&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;在返回结果中找到 &lt;code&gt;createdAt&lt;/code&gt; 字段，这个字段就是 &lt;code&gt;startAt&lt;/code&gt; 的值，也就是你的网站创建时间，数据的开始时间&lt;br&gt;
&lt;img src=&#34;https://cimg1.17lai.site/data/2024/03/28/20240328054222-2.webp&#34; alt=&#34;createdAt&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;编写页面&#34;&gt;编写页面&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2024/03/28/20240328054222-3.webp&#34; alt=&#34;页面展示&#34;&gt;&lt;/p&gt;
&lt;p&gt;代码如下，修改你对应的参数即可运行：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markup&#34; data-language=&#34;markup&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markup&#34;&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang&amp;#x3D;&amp;quot;en&amp;quot;&amp;gt;

&amp;lt;head&amp;gt;
    &amp;lt;meta charset&amp;#x3D;&amp;quot;UTF-8&amp;quot;&amp;gt;
    &amp;lt;meta name&amp;#x3D;&amp;quot;viewport&amp;quot; content&amp;#x3D;&amp;quot;width&amp;#x3D;device-width, initial-scale&amp;#x3D;1.0&amp;quot;&amp;gt;
    &amp;lt;title&amp;gt;Document&amp;lt;&amp;#x2F;title&amp;gt;
&amp;lt;&amp;#x2F;head&amp;gt;

&amp;lt;body&amp;gt;
    &amp;lt;div style&amp;#x3D;&amp;quot;text-align:center;&amp;quot;&amp;gt;
        &amp;lt;h1&amp;gt;Umami 网站统计&amp;lt;&amp;#x2F;h1&amp;gt;
        &amp;lt;span&amp;gt;总访问量 &amp;lt;span id&amp;#x3D;&amp;quot;umami-site-pv&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;span&amp;gt; 次&amp;lt;&amp;#x2F;span&amp;gt;

        &amp;lt;span&amp;gt;总访客数 &amp;lt;span id&amp;#x3D;&amp;quot;umami-site-uv&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;span&amp;gt; 人&amp;lt;&amp;#x2F;span&amp;gt;
    &amp;lt;&amp;#x2F;div&amp;gt;

    &amp;lt;script&amp;gt;
        &amp;#x2F;&amp;#x2F; 从配置文件中获取 umami 的配置
        const website_id &amp;#x3D; &amp;#39;xxx&amp;#39;;

        &amp;#x2F;&amp;#x2F; 拼接请求地址
        const request_url &amp;#x3D; &amp;#39;https:&amp;#x2F;&amp;#x2F;xxx.com&amp;#39; + &amp;#39;&amp;#x2F;api&amp;#x2F;websites&amp;#x2F;&amp;#39; + website_id + &amp;#39;&amp;#x2F;stats&amp;#39;;

        const start_time &amp;#x3D; new Date(&amp;#39;2024-01-01&amp;#39;).getTime();
        const end_time &amp;#x3D; new Date().getTime();

        const token &amp;#x3D; &amp;#39;xxxxxx&amp;#39;;

        &amp;#x2F;&amp;#x2F; 检查配置是否为空
        if (!website_id) &amp;#123;
            throw new Error(&amp;quot;Umami website_id is empty&amp;quot;);
        &amp;#125;
        if (!request_url) &amp;#123;
            throw new Error(&amp;quot;Umami request_url is empty&amp;quot;);
        &amp;#125;
        if (!start_time) &amp;#123;
            throw new Error(&amp;quot;Umami start_time is empty&amp;quot;);
        &amp;#125;
        if (!token) &amp;#123;
            throw new Error(&amp;quot;Umami token is empty&amp;quot;);
        &amp;#125;

        const params &amp;#x3D; new URLSearchParams(&amp;#123;
            startAt: start_time,
            endAt: end_time,
        &amp;#125;);

        const request_header &amp;#x3D; &amp;#123;
            method: &amp;quot;GET&amp;quot;,
            headers: &amp;#123;
                &amp;quot;Content-Type&amp;quot;: &amp;quot;application&amp;#x2F;json&amp;quot;,
                &amp;quot;Authorization&amp;quot;: &amp;quot;Bearer &amp;quot; + token,
            &amp;#125;,
        &amp;#125;;

        async function allStats() &amp;#123;
            try &amp;#123;
                const response &amp;#x3D; await fetch(&amp;#96;$&amp;#123;request_url&amp;#125;?$&amp;#123;params&amp;#125;&amp;#96;, request_header);
                const data &amp;#x3D; await response.json();
                const uniqueVisitors &amp;#x3D; data.pageviews.value; &amp;#x2F;&amp;#x2F; 获取独立访客数
                const pageViews &amp;#x3D; data.pageviews.value; &amp;#x2F;&amp;#x2F; 获取页面浏览量

                let ele1 &amp;#x3D; document.querySelector(&amp;quot;#umami-site-pv&amp;quot;)
                if (ele1) &amp;#123;
                    ele1.textContent &amp;#x3D; pageViews; &amp;#x2F;&amp;#x2F; 设置页面浏览量
                &amp;#125;

                let ele2 &amp;#x3D; document.querySelector(&amp;quot;#umami-site-uv&amp;quot;)
                if (ele2) &amp;#123;
                    ele2.textContent &amp;#x3D; uniqueVisitors;
                &amp;#125;

                console.log(uniqueVisitors, pageViews);
                console.log(data);
            &amp;#125; catch (error) &amp;#123;
                console.error(error);
                return &amp;quot;-1&amp;quot;;
            &amp;#125;
        &amp;#125;
        allStats();
    &amp;lt;&amp;#x2F;script&amp;gt;
&amp;lt;&amp;#x2F;body&amp;gt;

&amp;lt;&amp;#x2F;html&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;hr&gt;
&lt;h2 id=&#34;Umami-UV-PV-统计显示（v3-Share-Token-方案）&#34;&gt;Umami UV / PV 统计显示（v3 Share Token 方案）&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;v3 推荐的公开统计方案 — 为每个网站生成独立的 Share Token，暴露在前端也安全。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;1-创建-Share&#34;&gt;1. 创建 Share&lt;/h3&gt;
&lt;p&gt;登录 Umami 后，通过 API 为你的博客网站创建一个 Share（只需做一次）：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-bash&#34; data-language=&#34;bash&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;# 登录获取 admin token
TOKEN&amp;#x3D;$(curl -s -X POST https:&amp;#x2F;&amp;#x2F;你的umami域名&amp;#x2F;api&amp;#x2F;auth&amp;#x2F;login \
  -H &amp;#39;Content-Type: application&amp;#x2F;json&amp;#39; \
  -d &amp;#39;&amp;#123;&amp;quot;username&amp;quot;:&amp;quot;admin&amp;quot;,&amp;quot;password&amp;quot;:&amp;quot;你的密码&amp;quot;&amp;#125;&amp;#39; | python3 -c &amp;#39;import sys,json;print(json.load(sys.stdin)[&amp;quot;token&amp;quot;])&amp;#39;)

# 为博客网站创建 share（websiteId 替换成你的）
SHARE_RESP&amp;#x3D;$(curl -s -X POST https:&amp;#x2F;&amp;#x2F;你的umami域名&amp;#x2F;api&amp;#x2F;websites&amp;#x2F;&amp;#123;websiteId&amp;#125;&amp;#x2F;shares \
  -H &amp;quot;Authorization: Bearer $TOKEN&amp;quot; \
  -H &amp;#39;Content-Type: application&amp;#x2F;json&amp;#39; \
  -d &amp;#39;&amp;#123;&amp;quot;name&amp;quot;:&amp;quot;blog-stats&amp;quot;,&amp;quot;parameters&amp;quot;:&amp;#123;&amp;quot;overview&amp;quot;:true,&amp;quot;events&amp;quot;:true&amp;#125;&amp;#125;&amp;#39;)

echo $SHARE_RESP&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;记录返回的 &lt;code&gt;slug&lt;/code&gt; 值，然后通过 slug 获取 Share Token：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-bash&#34; data-language=&#34;bash&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;# 获取 Share JWT token（只读，仅限该网站）
curl https:&amp;#x2F;&amp;#x2F;你的umami域名&amp;#x2F;api&amp;#x2F;share&amp;#x2F;&amp;#123;slug&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;返回：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-json&#34; data-language=&#34;json&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;#123;
  &amp;quot;shareId&amp;quot;: &amp;quot;...&amp;quot;,
  &amp;quot;websiteId&amp;quot;: &amp;quot;...&amp;quot;,
  &amp;quot;token&amp;quot;: &amp;quot;eyJhbGciOiJIUzI1NiIs...&amp;quot;,
  &amp;quot;parameters&amp;quot;: &amp;#123; &amp;quot;overview&amp;quot;: true, &amp;quot;events&amp;quot;: true &amp;#125;
&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;code&gt;token&lt;/code&gt; 字段的值就是 Share Token，保存到前端配置中。&lt;/p&gt;
&lt;h3 id=&#34;2-API-差异说明&#34;&gt;2. API 差异说明&lt;/h3&gt;
&lt;p&gt;与 v2 相比，v3 有以下变化：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;项目&lt;/th&gt;
&lt;th&gt;v2&lt;/th&gt;
&lt;th&gt;v3&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;认证 Header&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Authorization: Bearer &amp;lt;token&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;X-Umami-Share-Token: &amp;lt;token&amp;gt;&lt;/code&gt; + &lt;code&gt;X-Umami-Share-Context: share&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;响应格式&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;#123;&amp;quot;pageviews&amp;quot;:&amp;#123;&amp;quot;value&amp;quot;:N&amp;#125;&amp;#125;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;#123;&amp;quot;pageviews&amp;quot;: N&amp;#125;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;页面过滤参数&lt;/td&gt;
&lt;td&gt;&lt;code&gt;?url=/path/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;?path=/path/&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;时间戳&lt;/td&gt;
&lt;td&gt;毫秒（不变）&lt;/td&gt;
&lt;td&gt;毫秒&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;3-编写前端代码（v3）&#34;&gt;3. 编写前端代码（v3）&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markup&#34; data-language=&#34;markup&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markup&#34;&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang&amp;#x3D;&amp;quot;en&amp;quot;&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset&amp;#x3D;&amp;quot;UTF-8&amp;quot;&amp;gt;
    &amp;lt;title&amp;gt;Umami 网站统计 - v3&amp;lt;&amp;#x2F;title&amp;gt;
&amp;lt;&amp;#x2F;head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;div style&amp;#x3D;&amp;quot;text-align:center;&amp;quot;&amp;gt;
        &amp;lt;h1&amp;gt;Umami 网站统计&amp;lt;&amp;#x2F;h1&amp;gt;
        &amp;lt;span&amp;gt;总访问量 &amp;lt;span id&amp;#x3D;&amp;quot;umami-site-pv&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;span&amp;gt; 次&amp;lt;&amp;#x2F;span&amp;gt;
        &amp;lt;span&amp;gt;总访客数 &amp;lt;span id&amp;#x3D;&amp;quot;umami-site-uv&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;span&amp;gt; 人&amp;lt;&amp;#x2F;span&amp;gt;
    &amp;lt;&amp;#x2F;div&amp;gt;

    &amp;lt;script&amp;gt;
        const website_id &amp;#x3D; &amp;#39;xxx&amp;#39;;       &amp;#x2F;&amp;#x2F; 你的网站 UUID
        const share_token &amp;#x3D; &amp;#39;xxx&amp;#39;;       &amp;#x2F;&amp;#x2F; 上一步获取的 Share JWT
        const api_server &amp;#x3D; &amp;#39;https:&amp;#x2F;&amp;#x2F;你的umami域名&amp;#39;;
        const start_time &amp;#x3D; new Date(&amp;#39;2024-01-01&amp;#39;).getTime();

        const request_url &amp;#x3D; api_server + &amp;#39;&amp;#x2F;api&amp;#x2F;websites&amp;#x2F;&amp;#39; + website_id + &amp;#39;&amp;#x2F;stats&amp;#39;;
        const params &amp;#x3D; new URLSearchParams(&amp;#123;
            startAt: start_time,
            endAt: new Date().getTime(),
        &amp;#125;);

        async function fetchStats() &amp;#123;
            const resp &amp;#x3D; await fetch(request_url + &amp;#39;?&amp;#39; + params, &amp;#123;
                headers: &amp;#123;
                    &amp;#39;X-Umami-Share-Token&amp;#39;: share_token,
                    &amp;#39;X-Umami-Share-Context&amp;#39;: &amp;#39;share&amp;#39;,
                &amp;#125;,
            &amp;#125;);
            const data &amp;#x3D; await resp.json();

            &amp;#x2F;&amp;#x2F; v3 直接返回数字，无需 .value
            document.querySelector(&amp;#39;#umami-site-pv&amp;#39;).textContent &amp;#x3D; data.pageviews;
            document.querySelector(&amp;#39;#umami-site-uv&amp;#39;).textContent &amp;#x3D; data.visitors;
        &amp;#125;
        fetchStats();
    &amp;lt;&amp;#x2F;script&amp;gt;
&amp;lt;&amp;#x2F;body&amp;gt;
&amp;lt;&amp;#x2F;html&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;4-获取单页浏览数&#34;&gt;4. 获取单页浏览数&lt;/h3&gt;
&lt;p&gt;v3 的过滤参数从 &lt;code&gt;url&lt;/code&gt; 改为了 &lt;code&gt;path&lt;/code&gt;：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-javascript&#34; data-language=&#34;javascript&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-javascript&#34;&gt;&amp;#x2F;&amp;#x2F; v2: ?url&amp;#x3D;&amp;#x2F;posts&amp;#x2F;hello-world&amp;#x2F;
&amp;#x2F;&amp;#x2F; v3: ?path&amp;#x3D;&amp;#x2F;posts&amp;#x2F;hello-world&amp;#x2F;

async function pageStats(path) &amp;#123;
    const resp &amp;#x3D; await fetch(request_url + &amp;#39;?&amp;#39; + params + &amp;#39;&amp;amp;path&amp;#x3D;&amp;#39; + path, &amp;#123;
        headers: &amp;#123;
            &amp;#39;X-Umami-Share-Token&amp;#39;: share_token,
            &amp;#39;X-Umami-Share-Context&amp;#39;: &amp;#39;share&amp;#39;,
        &amp;#125;,
    &amp;#125;);
    const data &amp;#x3D; await resp.json();
    &amp;#x2F;&amp;#x2F; data.pageviews 就是该页面的浏览量
    console.log(path, &amp;#39;pageviews:&amp;#39;, data.pageviews);
&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;5-安全性说明&#34;&gt;5. 安全性说明&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;方案&lt;/th&gt;
&lt;th&gt;泄露影响&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;v2: View only 用户 JWT&lt;/td&gt;
&lt;td&gt;可访问&lt;strong&gt;所有&lt;/strong&gt;网站 stats&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;v2: Admin 用户 JWT&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;完全控制权&lt;/strong&gt;（最危险）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;v3: Share Token&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;仅限单个网站&lt;/strong&gt; stats，只读&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Share Token 的 JWT payload 只包含：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-json&#34; data-language=&#34;json&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;#123; &amp;quot;shareId&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;websiteId&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;shareType&amp;quot;: 1 &amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;没有用户身份，没有管理权限。即使完全公开在浏览器中，攻击者也&lt;strong&gt;只能看到这一个网站的访问统计数据&lt;/strong&gt;，而这些数据在页面上本来就已经公开显示。&lt;/p&gt;
&lt;h3 id=&#34;6-Token-过期处理&#34;&gt;6. Token 过期处理&lt;/h3&gt;
&lt;p&gt;Share Token 永不过期（除非你删除对应的 Share）。如果需要更换，只需：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-bash&#34; data-language=&#34;bash&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;# 列出所有 shares
curl https:&amp;#x2F;&amp;#x2F;你的umami域名&amp;#x2F;api&amp;#x2F;websites&amp;#x2F;&amp;#123;websiteId&amp;#125;&amp;#x2F;shares \
  -H &amp;quot;Authorization: Bearer $TOKEN&amp;quot;

# 删除旧的
curl -X DELETE https:&amp;#x2F;&amp;#x2F;你的umami域名&amp;#x2F;api&amp;#x2F;share&amp;#x2F;id&amp;#x2F;&amp;#123;shareId&amp;#125; \
  -H &amp;quot;Authorization: Bearer $TOKEN&amp;quot;

# 重新创建
curl -X POST https:&amp;#x2F;&amp;#x2F;你的umami域名&amp;#x2F;api&amp;#x2F;websites&amp;#x2F;&amp;#123;websiteId&amp;#125;&amp;#x2F;shares \
  -H &amp;quot;Authorization: Bearer $TOKEN&amp;quot; \
  -H &amp;#39;Content-Type: application&amp;#x2F;json&amp;#39; \
  -d &amp;#39;&amp;#123;&amp;quot;name&amp;quot;:&amp;quot;blog-stats&amp;quot;,&amp;quot;parameters&amp;quot;:&amp;#123;&amp;quot;overview&amp;quot;:true,&amp;quot;events&amp;quot;:true&amp;#125;&amp;#125;&amp;#39;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;hr&gt;
&lt;h2 id=&#34;参考-致谢&#34;&gt;参考&amp;amp;致谢&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/umami-software/umami&#34;&gt;umami-software/umami: Umami is a simple, fast, privacy-focused alternative to Google Analytics.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.ovvv.top/posts/4259ee82/&#34;&gt;Umami UV / PV 统计显示&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://umami.is/docs/websites-api&#34;&gt;https://umami.is/docs/websites-api&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://umami.is/docs/authentication&#34;&gt;https://umami.is/docs/authentication&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://umami.is/docs/website-stats&#34;&gt;https://umami.is/docs/website-stats&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;雷打真孝子，财发狠心，麻绳专挑细处断，恶运专找苦命人！&lt;/p&gt;
&lt;p&gt;​																													——俗语赏析&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;系列教程&#34;&gt;&lt;strong&gt;系列教程&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;全部文章RSS订阅&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&#34;Hexo系列&#34;&gt;&lt;strong&gt;Hexo系列&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;/categories/hexo/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;&lt;strong&gt;HexoRSS分类订阅&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[十万字图文教程]基于Hexo的matery主题搭建博客并深度优化完全一站式教程&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/40300608/&#34;&gt;Hexo Docker环境与Hexo基础配置篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/4d8a0b22/&#34;&gt;hexo博客自定义修改篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/9b056c86/&#34;&gt;hexo博客网络优化篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/5311b619/&#34;&gt;hexo博客增强部署篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/4a2050e2/&#34;&gt;hexo博客个性定制篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/84b4059a/&#34;&gt;hexo博客常见问题篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/253706ff/&#34;&gt;hexo博客博文撰写篇之完美笔记大攻略终极完全版&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/cf0f47fd/&#34;&gt;Hexo Markdown以及各种插件功能测试&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;markdown 各种其它语法插件，latex公式支持，mermaid图表，plant uml图表，URL卡片，bilibili卡片，github卡片，豆瓣卡片，插入音乐和视频，插入脑图，插入PDF，嵌入iframe&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/217ccdc1/&#34;&gt;在 Hexo 博客中插入 ECharts 动态图表&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/546887ac/&#34;&gt;使用nodeppt给hexo博客嵌入PPT演示&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/a3c81cc3/&#34;&gt;GithubProfile美化与自动获取RSS文章教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/e922fac8/&#34;&gt;Vercel部署高级用法教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/eb731135/&#34;&gt;webhook部署Hexo静态博客指南&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/8f9792ab/&#34;&gt;在宝塔VPS上面采用docker部署waline全流程图解教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/843eb2k9/&#34;&gt;自建Umami访问统计服务并统计静态博客UV/PV&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&#34;Docker系列&#34;&gt;&lt;strong&gt;Docker系列&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;/categories/docker/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;&lt;strong&gt;Docker 分类 RSS 订阅&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/42b6a86d/&#34;&gt;Docker使用简明教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/9912bd5d/&#34;&gt;使用jeckett,sonarr,iyuu,qt,emby打造全自动追剧流程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/1802a8a7/&#34;&gt;为知笔记私有化Docker部署&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/593cc323/&#34;&gt;Earthly 一个更加强大的镜像构建工具&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/90e60aac/&#34;&gt;使用 Shell 脚本实现一个简单 Docker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/465d2738/&#34;&gt;如何使用Traefik V2 在Ubuntu20.04 上面来做 Dockers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/462f1e5c/&#34;&gt;通过IPV6访问Qnap NAS中Docker的服务&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&#34;笔记系列&#34;&gt;&lt;strong&gt;笔记系列&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;/categories/note/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;&lt;strong&gt;Note分类RSS订阅&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/a8535f26/&#34;&gt;完美笔记进化论&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/253706ff/&#34;&gt;hexo博客博文撰写篇之完美笔记大攻略终极完全版&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/e6086437/&#34;&gt;Joplin入门指南&amp;amp;实践方案&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/45f878cd/&#34;&gt;替代Evernote免费开源笔记Joplin-网盘同步笔记历史版本Markdown可视化&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/92d347d6/&#34;&gt;Joplin 插件以及其Markdown语法。All in One!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/e3ee7f8b/&#34;&gt;Joplin 插件使用推荐&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/1802a8a7/&#34;&gt;为知笔记私有化Docker部署&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&#34;Gitbook使用系列&#34;&gt;&lt;strong&gt;Gitbook使用系列&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;/categories/gitbook/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;Gitbook分类RSS订阅&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/7fe86002/&#34;&gt;GitBook+GitLab撰写发布技术文档-Part1:GitBook篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/7790e989/&#34;&gt;GitBook+GitLab撰写发布技术文档-Part2:GitLab篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/d6bad1e5/&#34;&gt;自己动手制作电子书的最佳方式（支持PDF、ePub、mobi等格式）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&#34;Gitlab-使用系列&#34;&gt;&lt;strong&gt;Gitlab 使用系列&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;/categories/gitlab/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;&lt;strong&gt;Gitlab RSS 分类订阅&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/acc13b70/&#34;&gt;&lt;strong&gt;Gitlab的安装及使用教程完全版&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/29a820b3/&#34;&gt;破解Gitlab EE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/d08eb7b/&#34;&gt;Gitlab的安装及使用&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/1879721e/&#34;&gt;CI/CD与Git Flow与GitLab&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;link rel=&#34;stylesheet&#34; href=&#34;https://fastly.jsdelivr.net/npm/markmap-toolbar@0.18.10/dist/style.css&#34;&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/d3@7&#34;&gt;&lt;/script&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/markmap-view@0.18.10&#34;&gt;&lt;/script&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/markmap-toolbar@0.18.10&#34;&gt;&lt;/script&gt;
&lt;link rel=&#34;stylesheet&#34; href=&#34;/css/markmap.css&#34;&gt;

&lt;script src=&#34;/js/markmap.js&#34;&gt;&lt;/script&gt;
</content>
        <category term="docker" />
        <category term="hexo" />
        <category term="umami" />
        <updated>2024-12-08T13:07:25.000Z</updated>
    </entry>
    <entry>
        <id>https://blog.17lai.site/posts/8f9792ab/</id>
        <title>在宝塔VPS上面采用docker部署waline全流程图解教程</title>
        <link rel="alternate" href="https://blog.17lai.site/posts/8f9792ab/"/>
        <content type="html">&lt;blockquote&gt;
&lt;p&gt;本文介绍了在宝塔系统上基于 MySQL，采用 Docker部署 Waline 的方法，并提供 Github 社交登陆，渐变彩色邮件通知模板！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;span id=&#34;more&#34;&gt;&lt;/span&gt;
&lt;h2 id=&#34;准备工作&#34;&gt;准备工作&lt;/h2&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;注册一个邮箱，并开启SMTP 。waline 邮件通知需要用到&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;你得有一个vps 。 目前个人能找到的最便宜的 VPS 服务商: &lt;a href=&#34;https://my.racknerd.com/aff.php?aff=3312&#34;&gt;racknerd VPS&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;安装配置好宝塔。 &lt;a href=&#34;/posts/7b4e434c/&#34;&gt;宝塔安装与配置简明教程&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;创建waline-数据库&#34;&gt;创建waline 数据库&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;以 mysql 数据库为例&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2023/02/21/20230221011317.webp&#34; alt=&#34;创建mysql数据库&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;MySQL-数据库初始化&#34;&gt;MySQL 数据库初始化&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://waline.js.org/guide/database.html#mysql&#34;&gt;https://waline.js.org/guide/database.html#mysql&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/walinejs/waline/blob/main/assets/waline.sql&#34;&gt;https://github.com/walinejs/waline/blob/main/assets/waline.sql&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-sql&#34; data-language=&#34;sql&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-sql&#34;&gt;&amp;#x2F;*!40101 SET @OLD_CHARACTER_SET_CLIENT&amp;#x3D;@@CHARACTER_SET_CLIENT *&amp;#x2F;;
&amp;#x2F;*!40101 SET @OLD_CHARACTER_SET_RESULTS&amp;#x3D;@@CHARACTER_SET_RESULTS *&amp;#x2F;;
&amp;#x2F;*!40101 SET @OLD_COLLATION_CONNECTION&amp;#x3D;@@COLLATION_CONNECTION *&amp;#x2F;;
&amp;#x2F;*!40101 SET NAMES utf8 *&amp;#x2F;;
SET NAMES utf8mb4;
&amp;#x2F;*!40014 SET @OLD_FOREIGN_KEY_CHECKS&amp;#x3D;@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS&amp;#x3D;0 *&amp;#x2F;;
&amp;#x2F;*!40101 SET @OLD_SQL_MODE&amp;#x3D;@@SQL_MODE, SQL_MODE&amp;#x3D;&amp;#39;NO_AUTO_VALUE_ON_ZERO&amp;#39; *&amp;#x2F;;
&amp;#x2F;*!40111 SET @OLD_SQL_NOTES&amp;#x3D;@@SQL_NOTES, SQL_NOTES&amp;#x3D;0 *&amp;#x2F;;


# Dump of table wl_Comment
# ------------------------------------------------------------

CREATE TABLE &amp;#96;wl_Comment&amp;#96; (
  &amp;#96;id&amp;#96; int(11) unsigned NOT NULL AUTO_INCREMENT,
  &amp;#96;user_id&amp;#96; int(11) DEFAULT NULL,
  &amp;#96;comment&amp;#96; text,
  &amp;#96;insertedAt&amp;#96; timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  &amp;#96;ip&amp;#96; varchar(100) DEFAULT &amp;#39;&amp;#39;,
  &amp;#96;link&amp;#96; varchar(255) DEFAULT NULL,
  &amp;#96;mail&amp;#96; varchar(255) DEFAULT NULL,
  &amp;#96;nick&amp;#96; varchar(255) DEFAULT NULL,
  &amp;#96;pid&amp;#96; int(11) DEFAULT NULL,
  &amp;#96;rid&amp;#96; int(11) DEFAULT NULL,
  &amp;#96;sticky&amp;#96; boolean DEFAULT NULL,
  &amp;#96;status&amp;#96; varchar(50) NOT NULL DEFAULT &amp;#39;&amp;#39;,
  &amp;#96;like&amp;#96; int(11) DEFAULT NULL,
  &amp;#96;ua&amp;#96; text,
  &amp;#96;url&amp;#96; varchar(255) DEFAULT NULL,
  &amp;#96;createdAt&amp;#96; timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  &amp;#96;updatedAt&amp;#96; timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (&amp;#96;id&amp;#96;)
) ENGINE&amp;#x3D;InnoDB DEFAULT CHARSET&amp;#x3D;utf8mb4;



# Dump of table wl_Counter
# ------------------------------------------------------------

CREATE TABLE &amp;#96;wl_Counter&amp;#96; (
  &amp;#96;id&amp;#96; int(11) unsigned NOT NULL AUTO_INCREMENT,
  &amp;#96;time&amp;#96; int(11) DEFAULT NULL,
  &amp;#96;reaction0&amp;#96; int(11) DEFAULT NULL,
  &amp;#96;reaction1&amp;#96; int(11) DEFAULT NULL,
  &amp;#96;reaction2&amp;#96; int(11) DEFAULT NULL,
  &amp;#96;reaction3&amp;#96; int(11) DEFAULT NULL,
  &amp;#96;reaction4&amp;#96; int(11) DEFAULT NULL,
  &amp;#96;reaction5&amp;#96; int(11) DEFAULT NULL,
  &amp;#96;reaction6&amp;#96; int(11) DEFAULT NULL,
  &amp;#96;reaction7&amp;#96; int(11) DEFAULT NULL,
  &amp;#96;reaction8&amp;#96; int(11) DEFAULT NULL,
  &amp;#96;url&amp;#96; varchar(255) NOT NULL DEFAULT &amp;#39;&amp;#39;,
  &amp;#96;createdAt&amp;#96; timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  &amp;#96;updatedAt&amp;#96; timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (&amp;#96;id&amp;#96;)
) ENGINE&amp;#x3D;InnoDB DEFAULT CHARSET&amp;#x3D;utf8mb4;



# Dump of table wl_Users
# ------------------------------------------------------------

CREATE TABLE &amp;#96;wl_Users&amp;#96; (
  &amp;#96;id&amp;#96; int(11) unsigned NOT NULL AUTO_INCREMENT,
  &amp;#96;display_name&amp;#96; varchar(255) NOT NULL DEFAULT &amp;#39;&amp;#39;,
  &amp;#96;email&amp;#96; varchar(255) NOT NULL DEFAULT &amp;#39;&amp;#39;,
  &amp;#96;password&amp;#96; varchar(255) NOT NULL DEFAULT &amp;#39;&amp;#39;,
  &amp;#96;type&amp;#96; varchar(50) NOT NULL DEFAULT &amp;#39;&amp;#39;,
  &amp;#96;label&amp;#96; varchar(255) DEFAULT NULL,
  &amp;#96;url&amp;#96; varchar(255) DEFAULT NULL,
  &amp;#96;avatar&amp;#96; varchar(255) DEFAULT NULL,
  &amp;#96;github&amp;#96; varchar(255) DEFAULT NULL,
  &amp;#96;twitter&amp;#96; varchar(255) DEFAULT NULL,
  &amp;#96;facebook&amp;#96; varchar(255) DEFAULT NULL,
  &amp;#96;google&amp;#96; varchar(255) DEFAULT NULL,
  &amp;#96;weibo&amp;#96; varchar(255) DEFAULT NULL,
  &amp;#96;qq&amp;#96; varchar(255) DEFAULT NULL,
  &amp;#96;2fa&amp;#96; varchar(32) DEFAULT NULL,
  &amp;#96;createdAt&amp;#96; timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  &amp;#96;updatedAt&amp;#96; timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (&amp;#96;id&amp;#96;)
) ENGINE&amp;#x3D;InnoDB DEFAULT CHARSET&amp;#x3D;utf8mb4;




&amp;#x2F;*!40111 SET SQL_NOTES&amp;#x3D;@OLD_SQL_NOTES *&amp;#x2F;;
&amp;#x2F;*!40101 SET SQL_MODE&amp;#x3D;@OLD_SQL_MODE *&amp;#x2F;;
&amp;#x2F;*!40014 SET FOREIGN_KEY_CHECKS&amp;#x3D;@OLD_FOREIGN_KEY_CHECKS *&amp;#x2F;;
&amp;#x2F;*!40101 SET CHARACTER_SET_CLIENT&amp;#x3D;@OLD_CHARACTER_SET_CLIENT *&amp;#x2F;;
&amp;#x2F;*!40101 SET CHARACTER_SET_RESULTS&amp;#x3D;@OLD_CHARACTER_SET_RESULTS *&amp;#x2F;;
&amp;#x2F;*!40101 SET COLLATION_CONNECTION&amp;#x3D;@OLD_COLLATION_CONNECTION *&amp;#x2F;;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2023/02/21/20230221011317-1.webp&#34; alt=&#34;管理数据库&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2023/02/21/20230221011317-2.webp&#34; alt=&#34;导入sql初始化文件&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2023/02/21/20230221011317-3.webp&#34; alt=&#34;执行sql初始化文件&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;docker-安装-waline&#34;&gt;docker 安装 waline&lt;/h2&gt;
&lt;h3 id=&#34;vps-yml-文件&#34;&gt;&lt;code&gt;vps.yml&lt;/code&gt; 文件&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;# docker compose文件 

version: &amp;quot;3&amp;quot;
services:
  waline:
    container_name: waline
    image: lizheming&amp;#x2F;waline:latest
    hostname: waline
    restart: always
    volumes:
      - &amp;#x2F;www&amp;#x2F;docker&amp;#x2F;waline&amp;#x2F;data:&amp;#x2F;app&amp;#x2F;data
    network_mode: host
    env_file:
      - .env # 由于单引号和双引号过多，邮件通知模板只能放在这里面
    environment:
      TZ: &amp;#39;Asia&amp;#x2F;Shanghai&amp;#39;
      
      MYSQL_DB: &amp;#39;waline&amp;#39;
      MYSQL_USER: &amp;#39;waline&amp;#39;
      MYSQL_PASSWORD: &amp;#39;[随机密码]&amp;#39; # 前面创建数据库时生成的随机密码
      
      SITE_NAME: &amp;#39;夜法之书&amp;#39;
      SITE_URL: &amp;#39;https:&amp;#x2F;&amp;#x2F;blog.17lai.site&amp;#39;
      SECURE_DOMAINS: &amp;#39;blog.17lai.site,blog.17lai.fun&amp;#39;
      AUTHOR_EMAIL: &amp;#39;xxx@gmail.com&amp;#39;
      
      # 电报通知
      TG_BOT_TOKEN: &amp;#39;xxxxx&amp;#39;
      TG_CHAT_ID: &amp;#39;xxxxx&amp;#39;
      
      # 邮件通知
      SMTP_SERVICE: &amp;#39;126&amp;#39;
      SMTP_HOST: &amp;#39;smtp.126.com&amp;#39;
      SMTP_PORT: &amp;#39;465&amp;#39;
      SMTP_USER: &amp;#39;xxxxx@126.com&amp;#39;
      SMTP_PASS: &amp;#39;xxxxx&amp;#39;
      SENDER_NAME: &amp;#39;夜法之书&amp;#39;
      SENDER_EMAIL: &amp;#39;xxxxx@126.com&amp;#39;	# 注意这里需要和 SMTP_USER 一致
      
      AKISMET_KEY: xxxxx	# 反垃圾邮件
      
      LEVELS: &amp;#39;0,10,20,50,100,200&amp;#39;
      DISABLE_REGION: &amp;#39;true&amp;#39;
      
      # google RECAPTCHA
      RECAPTCHA_V3_KEY: xxxx
      RECAPTCHA_V3_SECRET: xxxx
      
      # github 社交登录
      GITHUB_ID: xxxx
      GITHUB_SECRET: xxxx&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;blockquote&gt;
&lt;p&gt;注意这里的端口地址，并使用host模式，以方便连接主机的 MySQL 数据库&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;env文件&#34;&gt;&lt;code&gt;.env&lt;/code&gt;文件&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-ini&#34; data-language=&#34;ini&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-ini&#34;&gt;MAIL_SUBJECT&amp;#x3D;&amp;#39;&amp;#123;&amp;#123;parent.nick | safe&amp;#125;&amp;#125;，『&amp;#123;&amp;#123;site.name | safe&amp;#125;&amp;#125;』上的评论收到了回复&amp;#39;
MAIL_TEMPLATE&amp;#x3D;&amp;#39;&amp;lt;div style&amp;#x3D;&amp;quot;border-radius: 10px 10px 10px 10px;font-size:14px;color:#555555;width: 666px;font-family:&amp;quot;Century Gothic&amp;quot;,&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;Hiragino Sans GB&amp;quot;,微软雅黑,&amp;quot;Microsoft Yahei&amp;quot;,Tahoma,Helvetica,Arial,&amp;quot;SimSun&amp;quot;,sans-serif;margin:50px auto;border:1px solid #eee;max-width:100%;background: #ffffff repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 1px 5px rgba(0, 0, 0, 0.15);&amp;quot;&amp;gt;&amp;lt;div style&amp;#x3D;&amp;quot;width:100%;background:#49BDAD;color:#ffffff;border-radius: 10px 10px 0 0;background-image: -moz-linear-gradient(0deg, rgb(67, 198, 184), rgb(255, 209, 244));background-image: -webkit-linear-gradient(0deg, rgb(67, 198, 184), rgb(255, 209, 244));height: 66px;&amp;quot;&amp;gt;&amp;lt;p style&amp;#x3D;&amp;quot;font-size:15px;word-break:break-all;padding: 23px 32px;margin:0;background-color: hsla(0,0%,100%,.4);border-radius: 10px 10px 0 0;&amp;quot;&amp;gt;您在&amp;lt;a style&amp;#x3D;&amp;quot;text-decoration:none;color: #ffffff;&amp;quot; href&amp;#x3D;&amp;quot;&amp;#123;&amp;#123;site.url&amp;#125;&amp;#125;&amp;quot; target&amp;#x3D;&amp;quot;_blank&amp;quot;&amp;gt;&amp;#123;&amp;#123;site.name&amp;#125;&amp;#125;&amp;lt;&amp;#x2F;a&amp;gt;上的留言有新回复啦！&amp;lt;&amp;#x2F;p&amp;gt;&amp;lt;&amp;#x2F;div&amp;gt;&amp;lt;div style&amp;#x3D;&amp;quot;margin:40px auto;width:90%&amp;quot;&amp;gt;&amp;lt;p&amp;gt;Hi, &amp;#123;&amp;#123;parent.nick&amp;#125;&amp;#125;，您曾在文章上发表评论：&amp;lt;&amp;#x2F;p&amp;gt;&amp;lt;div style&amp;#x3D;&amp;quot;background: #fafafa repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);margin:20px 0px;padding:15px;border-radius:5px;font-size:14px;color:#555555;&amp;quot;&amp;gt;&amp;#123;&amp;#123;self.comment | safe&amp;#125;&amp;#125;&amp;lt;&amp;#x2F;div&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;&amp;#123;&amp;#123;self.nick&amp;#125;&amp;#125;&amp;lt;&amp;#x2F;strong&amp;gt; 给您的回复如下：&amp;lt;&amp;#x2F;p&amp;gt;&amp;lt;div style&amp;#x3D;&amp;quot;background:#fafafa repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);margin:20px 0px;padding:15px;border-radius:5px;font-size:14px;color:#555555;&amp;quot;&amp;gt;&amp;#123;&amp;#123;self.comment | safe&amp;#125;&amp;#125;&amp;lt;&amp;#x2F;div&amp;gt;&amp;lt;p&amp;gt;您可以点击&amp;lt;a style&amp;#x3D;&amp;quot;text-decoration:none; color:#12addb&amp;quot; href&amp;#x3D;&amp;quot;&amp;#123;&amp;#123;site.postUrl&amp;#125;&amp;#125;&amp;quot; target&amp;#x3D;&amp;quot;_blank&amp;quot;&amp;gt;查看回复的完整內容&amp;lt;&amp;#x2F;a&amp;gt;，欢迎再次光临&amp;lt;a style&amp;#x3D;&amp;quot;text-decoration:none; color:#12addb&amp;quot; href&amp;#x3D;&amp;quot;&amp;#123;&amp;#123;site.url&amp;#125;&amp;#125;&amp;quot; target&amp;#x3D;&amp;quot;_blank&amp;quot;&amp;gt;&amp;#123;&amp;#123;site.name&amp;#125;&amp;#125;&amp;lt;&amp;#x2F;a&amp;gt;。&amp;lt;hr &amp;#x2F;&amp;gt;&amp;lt;p style&amp;#x3D;&amp;quot;font-size:12px;color:#b7adad&amp;quot;&amp;gt;本邮件为系统自动发送，请勿直接回复邮件哦，可到博文内容回复。&amp;lt;&amp;#x2F;p&amp;gt;&amp;lt;&amp;#x2F;p&amp;gt;&amp;lt;style type&amp;#x3D;&amp;quot;text&amp;#x2F;css&amp;quot;&amp;gt;a:link&amp;#123;text-decoration:none&amp;#125;a:visited&amp;#123;text-decoration:none&amp;#125;a:hover&amp;#123;text-decoration:none&amp;#125;a:active&amp;#123;text-decoration:none&amp;#125;&amp;lt;&amp;#x2F;style&amp;gt;&amp;lt;&amp;#x2F;div&amp;gt;&amp;lt;&amp;#x2F;div&amp;gt;&amp;#39;
MAIL_SUBJECT_ADMIN&amp;#x3D;&amp;#39;&amp;#123;&amp;#123;site.name | safe&amp;#125;&amp;#125; 上有新评论了&amp;#39;
MAIL_TEMPLATE_ADMIN&amp;#x3D;&amp;#39;&amp;lt;div style&amp;#x3D;&amp;quot;border-radius: 10px 10px 10px 10px;font-size:14px;color:#555555;width: 666px;font-family:&amp;quot;Century Gothic&amp;quot;,&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;Hiragino Sans GB&amp;quot;,微软雅黑,&amp;quot;Microsoft Yahei&amp;quot;,Tahoma,Helvetica,Arial,&amp;quot;SimSun&amp;quot;,sans-serif;margin:50px auto;border:1px solid #eee;max-width:100%;background: #ffffff repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 1px 5px rgba(0, 0, 0, 0.15);&amp;quot;&amp;gt;&amp;lt;div style&amp;#x3D;&amp;quot;width:100%;background:#49BDAD;color:#ffffff;border-radius: 10px 10px 0 0;background-image: -moz-linear-gradient(0deg, rgb(67, 198, 184), rgb(255, 209, 244));background-image: -webkit-linear-gradient(0deg, rgb(67, 198, 184), rgb(255, 209, 244));height: 66px;&amp;quot;&amp;gt;&amp;lt;p style&amp;#x3D;&amp;quot;font-size:15px;word-break:break-all;padding: 23px 32px;margin:0;background-color: hsla(0,0%,100%,.4);border-radius: 10px 10px 0 0;&amp;quot;&amp;gt;您在&amp;lt;a style&amp;#x3D;&amp;quot;text-decoration:none;color: #ffffff;&amp;quot;href&amp;#x3D;&amp;quot;&amp;#123;&amp;#123;site.url&amp;#125;&amp;#125;&amp;quot;target&amp;#x3D;&amp;quot;_blank&amp;quot;&amp;gt;&amp;#123;&amp;#123;site.name&amp;#125;&amp;#125;&amp;lt;&amp;#x2F;a&amp;gt;上的留言有新评论啦！&amp;lt;&amp;#x2F;p&amp;gt;&amp;lt;&amp;#x2F;div&amp;gt;&amp;lt;div style&amp;#x3D;&amp;quot;margin:40px auto;width:90%&amp;quot;&amp;gt;&amp;lt;p&amp;gt;&amp;#123;&amp;#123;self.nick&amp;#125;&amp;#125;回复说：&amp;lt;&amp;#x2F;p&amp;gt;&amp;lt;div style&amp;#x3D;&amp;quot;background: #fafafa repeating-linear-gradient(-45deg,#fff,#fff 1.125rem,transparent 1.125rem,transparent 2.25rem);box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);margin:20px 0px;padding:15px;border-radius:5px;font-size:14px;color:#555555;&amp;quot;&amp;gt;&amp;#123;&amp;#123;self.comment | safe&amp;#125;&amp;#125;&amp;lt;&amp;#x2F;div&amp;gt;&amp;lt;p&amp;gt;您可以点击&amp;lt;a style&amp;#x3D;&amp;quot;text-decoration:none; color:#12addb&amp;quot;href&amp;#x3D;&amp;quot;&amp;#123;&amp;#123;site.postUrl&amp;#125;&amp;#125;&amp;quot;target&amp;#x3D;&amp;quot;_blank&amp;quot;&amp;gt;查看回复的完整內容&amp;lt;&amp;#x2F;a&amp;gt;。&amp;lt;hr&amp;#x2F;&amp;gt;&amp;lt;&amp;#x2F;p&amp;gt;&amp;lt;style type&amp;#x3D;&amp;quot;text&amp;#x2F;css&amp;quot;&amp;gt;a:link&amp;#123;text-decoration:none&amp;#125;a:visited&amp;#123;text-decoration:none&amp;#125;a:hover&amp;#123;text-decoration:none&amp;#125;a:active&amp;#123;text-decoration:none&amp;#125;&amp;lt;&amp;#x2F;style&amp;gt;&amp;lt;&amp;#x2F;div&amp;gt;&amp;lt;&amp;#x2F;div&amp;gt;&amp;#39;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;blockquote&gt;
&lt;p&gt;由于单引号和双引号过多，邮件通知模板只能放在env文件里面&lt;/p&gt;
&lt;p&gt;这个邮件通知模板效果如下&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2023/02/21/20230221011317-4.webp&#34; alt=&#34;Waline 邮件通知&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;安装waline&#34;&gt;安装waline&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-bash&#34; data-language=&#34;bash&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;docker-compose -p &amp;quot;container&amp;quot; -f .&amp;#x2F;vps.yml up -d --build&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h2 id=&#34;域名配置&#34;&gt;域名配置&lt;/h2&gt;
&lt;h3 id=&#34;域名设置&#34;&gt;域名设置&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2023/02/21/20230221011317-5.webp&#34; alt=&#34;waline 域名配置&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;设置反向代理&#34;&gt;设置反向代理&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;宝塔设置反向代理方法如下&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2023/02/21/20230221011317-6.webp&#34; alt=&#34;waline 反向代理配置&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;DNS-配置&#34;&gt;DNS 配置&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;这里以DNSPod 为例&lt;/p&gt;
&lt;p&gt;直接使用ip就是如下示例&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2023/02/21/20230221011317-7.webp&#34; alt=&#34;DNSpod 配置&#34;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;如果使用vercel ，那么域名配置方法如下&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;cname-china.vercel-dns.com&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2023/02/21/20230221011317-8.webp&#34; alt=&#34;vercel 部署 waline dns 配置&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;添加-GitHub-社交登录&#34;&gt;添加 GitHub 社交登录&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;开启 GitHub 账号登录功能需要配置 GitHub OAuth 密钥。点击 &lt;a href=&#34;https://github.com/settings/applications/new&#34;&gt;Register a new OAuth application&lt;/a&gt; 进入 GitHub OAuth 应用申请页面。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;配置注意事项如下:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Application name: 应用名称，会在用户授权时显示，推荐使用博客名称。&lt;/li&gt;
&lt;li&gt;Homepage URL: 应用主页地址，会在用户授权时显示，推荐使用博客地址。&lt;/li&gt;
&lt;li&gt;Appcation description: 应用描述，会在用户授权时显示，非必填项。&lt;/li&gt;
&lt;li&gt;Authorization callback URL: 应用的回调地址，登录时需要使用。填入 &lt;code&gt;&amp;lt;serverURL&amp;gt;/oauth/github&lt;/code&gt; 其中 &lt;code&gt;&amp;lt;serverURL&amp;gt;&lt;/code&gt; 是你的 Waline 服务端地址。&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;填写完成后点击 Register application 即可成功创建。页面中会显示 Client ID。点击 Client secrets 栏右边的 Generate a new client secret 按钮则可以获取到该应用的 Client secrets。&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;显示在 GitHub的 &lt;code&gt;Settings -&amp;gt; Developer settings -&amp;gt; OAuth Apps -&amp;gt; 又见苍岚&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2023/02/21/20230221011317-9.webp&#34; alt=&#34;github 社交登录配置&#34;&gt;&lt;/p&gt;
&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;使用以上信息配置环境变量，重新部署。&lt;/li&gt;
&lt;/ol&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;环境变量名称&lt;/th&gt;
&lt;th&gt;备注&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;GITHUB_ID&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;对应 GitHub OAuth App 中的 Client ID&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;GITHUB_SECRET&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;对应 GitHub OAuth App 中的 Client secrets&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ol start=&#34;4&#34;&gt;
&lt;li&gt;之后即可使用 GitHub 登录&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2023/02/21/20230221011317-10.webp&#34; alt=&#34;github waline 登录&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;添加邮件通知&#34;&gt;添加邮件通知&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;上文中已经在 docker compose 文件中添加了邮件通知功能，下面介绍另一个邮件通知模板&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;紫罗兰永恒花园信笺模板&#34;&gt;紫罗兰永恒花园信笺模板&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;这个模板测试还存在一些bug， css 需要一些调整&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2023/02/21/20230221012416.webp&#34; alt=&#34;紫罗兰永恒花园信笺模板&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;.env&lt;/code&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-ini&#34; data-language=&#34;ini&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-ini&#34;&gt;MAIL_SUBJECT&amp;#x3D;&amp;#39;&amp;#123;&amp;#123;parent.nick | safe&amp;#125;&amp;#125;，『&amp;#123;&amp;#123;site.name | safe&amp;#125;&amp;#125;』上的评论收到了回复&amp;#39;
MAIL_TEMPLATE&amp;#x3D;&amp;#39;&amp;lt;div style&amp;#x3D;&amp;quot;background: url(https:&amp;#x2F;&amp;#x2F;npm.elemecdn.com&amp;#x2F;sarakale-assets@v1&amp;#x2F;Article&amp;#x2F;email&amp;#x2F;bg2.png);padding:20px 0px 20px;margin:0px;background-color:#d6d6d6;width:100%;&amp;quot;&amp;gt;&amp;lt;style type&amp;#x3D;&amp;quot;text&amp;#x2F;css&amp;quot;&amp;gt;@media screen and (max-width:600px)&amp;#123;.afterimg,.beforeimg&amp;#123;display:none!important&amp;#125;&amp;#125;&amp;lt;&amp;#x2F;style&amp;gt;&amp;lt;div style&amp;#x3D;&amp;quot;border-radius: 10px 10px 10px 10px;font-size:14px;color: #555555;width: 530px;font-family:&amp;quot;Century Gothic&amp;quot;,&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;Hiragino Sans GB&amp;quot;,微软雅黑,&amp;quot;Microsoft Yahei&amp;quot;,Tahoma,Helvetica,Arial,&amp;quot;SimSun&amp;quot;,sans-serif;margin:50px auto;max-width:100%;background: ##ffffff;&amp;quot;&amp;gt;&amp;lt;img class&amp;#x3D;&amp;quot;beforeimg&amp;quot; style&amp;#x3D;&amp;quot;margin-top: -30px;margin-bottom: -120px;width:530px;height:317px;z-index:-100;pointer-events:none&amp;quot; src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;npm.elemecdn.com&amp;#x2F;hexo-butterfly-envelope&amp;#x2F;lib&amp;#x2F;before.png&amp;quot;&amp;gt;&amp;lt;img src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;npm.elemecdn.com&amp;#x2F;hexo-butterfly-envelope&amp;#x2F;lib&amp;#x2F;violet.jpg&amp;quot; style&amp;#x3D;&amp;quot;width:100%;overflow:hidden;pointer-events:none&amp;quot;&amp;gt;&amp;lt;div style&amp;#x3D;&amp;quot;width:100%;background:#f8d1ce;color:#9d2850;border-radius: 10px 10px 0 0;background-image: -moz-linear-gradient(0deg, rgb(67, 198, 184), rgb(255, 209, 244));height: 66px;background: url(https:&amp;#x2F;&amp;#x2F;npm.elemecdn.com&amp;#x2F;sarakale-assets@v1&amp;#x2F;Article&amp;#x2F;email&amp;#x2F;line034_666x66.png) left top no-repeat;&amp;quot;&amp;gt;&amp;lt;p style&amp;#x3D;&amp;quot;font-size:16px;font-weight: bold;text-align:center;word-break:break-all;padding: 23px 32px;margin:0;&amp;quot;&amp;gt;您在&amp;lt;a style&amp;#x3D;&amp;quot;text-decoration:none;color: #9d2850;&amp;quot; href&amp;#x3D;&amp;quot;&amp;#123;&amp;#123;site.url&amp;#125;&amp;#125;&amp;quot;&amp;gt;『&amp;#123;&amp;#123;site.name | safe&amp;#125;&amp;#125;』&amp;lt;&amp;#x2F;a&amp;gt;上的留言有新回复啦！&amp;lt;&amp;#x2F;p&amp;gt;&amp;lt;&amp;#x2F;div&amp;gt;&amp;lt;div class&amp;#x3D;&amp;quot;formmain&amp;quot; style&amp;#x3D;&amp;quot;background:#fff;width:96%;max-width:800px;margin:auto auto;border-radius:5px;border: 1px solid #564f4f59;overflow:hidden;pointer-events:none&amp;quot;&amp;gt;&amp;lt;div style&amp;#x3D;&amp;quot;margin:40px auto;width:90%;&amp;quot;&amp;gt;&amp;lt;p&amp;gt;Hi，&amp;#123;&amp;#123;parent.nick&amp;#125;&amp;#125;，您曾在文章上发表评论：&amp;lt;&amp;#x2F;p&amp;gt;&amp;lt;div style&amp;#x3D;&amp;quot;background: #eee;margin:20px 0px;padding:15px;border-radius:5px;font-size:15px;color:#555555;&amp;quot;&amp;gt;&amp;#123;&amp;#123;parent.comment | safe&amp;#125;&amp;#125;&amp;lt;&amp;#x2F;div&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;&amp;#123;&amp;#123;self.nick&amp;#125;&amp;#125;&amp;lt;&amp;#x2F;strong&amp;gt; 给您的回复如下：&amp;lt;&amp;#x2F;p&amp;gt;&amp;lt;div style&amp;#x3D;&amp;quot;background: #eee;margin:20px 0px;padding:15px;border-radius:5px;font-size:15px;color:#555555;&amp;quot;&amp;gt;&amp;#123;&amp;#123;self.comment | safe&amp;#125;&amp;#125;&amp;lt;&amp;#x2F;div&amp;gt;&amp;lt;p&amp;gt;您可以点击&amp;lt;a style&amp;#x3D;&amp;quot;text-decoration:none; color:#cf5c83&amp;quot; href&amp;#x3D;&amp;quot;&amp;#123;&amp;#123;site.postUrl&amp;#125;&amp;#125;&amp;quot; target&amp;#x3D;&amp;quot;_blank&amp;quot;&amp;gt; 查看回复的完整內容 &amp;lt;&amp;#x2F;a&amp;gt;，欢迎再次光临&amp;lt;a style&amp;#x3D;&amp;quot;text-decoration:none; color:#cf5c83&amp;quot; href&amp;#x3D;&amp;quot;&amp;#123;&amp;#123;site.url&amp;#125;&amp;#125;&amp;quot; target&amp;#x3D;&amp;quot;_blank&amp;quot;&amp;gt; &amp;#123;&amp;#123;site.name&amp;#125;&amp;#125; &amp;lt;&amp;#x2F;a&amp;gt;。&amp;lt;hr &amp;#x2F;&amp;gt;&amp;lt;p style&amp;#x3D;&amp;quot;font-size:14px;color:#b7adad;text-align:center&amp;quot;&amp;gt;本邮件为系统自动发送，请勿直接回复邮件哦，可到博文内容回复。&amp;lt;br &amp;#x2F;&amp;gt;https:&amp;#x2F;&amp;#x2F;example.com&amp;lt;&amp;#x2F;p&amp;gt;&amp;lt;&amp;#x2F;p&amp;gt;&amp;lt;img src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;npm.elemecdn.com&amp;#x2F;hexo-butterfly-envelope&amp;#x2F;lib&amp;#x2F;line.png&amp;quot; style&amp;#x3D;&amp;quot;width:100%;margin:25px auto 5px auto;display:block;pointer-events:none&amp;quot;&amp;gt;&amp;lt;p class&amp;#x3D;&amp;quot;bottomhr&amp;quot; style&amp;#x3D;&amp;quot;font-size:12px;text-align:center;color:#999&amp;quot;&amp;gt;自动书记人偶竭诚为您服务！&amp;lt;&amp;#x2F;p&amp;gt;&amp;lt;&amp;#x2F;div&amp;gt;&amp;lt;&amp;#x2F;div&amp;gt;&amp;lt;img class&amp;#x3D;&amp;quot;afterimg&amp;quot; style&amp;#x3D;&amp;quot;width:530px;height:317px;margin-top: -155px;z-index:100;&amp;quot;src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;npm.elemecdn.com&amp;#x2F;hexo-butterfly-envelope&amp;#x2F;lib&amp;#x2F;after.png&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;div&amp;gt;&amp;lt;&amp;#x2F;div&amp;gt;&amp;#39;
MAIL_SUBJECT_ADMIN&amp;#x3D;&amp;#39;&amp;#123;&amp;#123;site.name | safe&amp;#125;&amp;#125; 上有新评论了&amp;#39;
MAIL_TEMPLATE_ADMIN&amp;#x3D;&amp;#39;&amp;lt;div style&amp;#x3D;&amp;quot;background: url(https:&amp;#x2F;&amp;#x2F;npm.elemecdn.com&amp;#x2F;sarakale-assets@v1&amp;#x2F;Article&amp;#x2F;email&amp;#x2F;bg2.png);padding:20px 0px 20px;margin:0px;background-color:#d6d6d6;width:100%;&amp;quot;&amp;gt;&amp;lt;style type&amp;#x3D;&amp;quot;text&amp;#x2F;css&amp;quot;&amp;gt;@media screen and (max-width:600px)&amp;#123;.afterimg,.beforeimg&amp;#123;display:none!important&amp;#125;&amp;#125;&amp;lt;&amp;#x2F;style&amp;gt;&amp;lt;div style&amp;#x3D;&amp;quot;border-radius: 10px 10px 10px 10px;font-size:14px;color: #555555;width: 530px;font-family:&amp;quot;Century Gothic&amp;quot;,&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;Hiragino Sans GB&amp;quot;,微软雅黑,&amp;quot;Microsoft Yahei&amp;quot;,Tahoma,Helvetica,Arial,&amp;quot;SimSun&amp;quot;,sans-serif;margin:50px auto;max-width:100%;background: ##ffffff;&amp;quot;&amp;gt;&amp;lt;img class&amp;#x3D;&amp;quot;beforeimg&amp;quot; style&amp;#x3D;&amp;quot;margin-top: -30px;margin-bottom: -120px;width:530px;height:317px;z-index:-100;pointer-events:none&amp;quot; src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;npm.elemecdn.com&amp;#x2F;hexo-butterfly-envelope&amp;#x2F;lib&amp;#x2F;before.png&amp;quot;&amp;gt;&amp;lt;img src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;npm.elemecdn.com&amp;#x2F;hexo-butterfly-envelope&amp;#x2F;lib&amp;#x2F;violet.jpg&amp;quot; style&amp;#x3D;&amp;quot;width:100%;overflow:hidden;pointer-events:none&amp;quot;&amp;gt;&amp;lt;div style&amp;#x3D;&amp;quot;width:100%;background:#f8d1ce;color:#9d2850;border-radius: 10px 10px 0 0;background-image: -moz-linear-gradient(0deg, rgb(67, 198, 184), rgb(255, 209, 244));height: 66px;background: url(https:&amp;#x2F;&amp;#x2F;npm.elemecdn.com&amp;#x2F;sarakale-assets@v1&amp;#x2F;Article&amp;#x2F;email&amp;#x2F;line034_666x66.png) left top no-repeat;&amp;quot;&amp;gt;&amp;lt;p style&amp;#x3D;&amp;quot;font-size:16px;font-weight: bold;text-align:center;word-break:break-all;padding: 23px 32px;margin:0;&amp;quot;&amp;gt;您在&amp;lt;a style&amp;#x3D;&amp;quot;text-decoration:none;color: #9d2850;&amp;quot; href&amp;#x3D;&amp;quot;&amp;#123;&amp;#123;site.url&amp;#125;&amp;#125;&amp;quot;target&amp;#x3D;&amp;quot;_blank&amp;quot;&amp;gt;&amp;#123;&amp;#123;site.name&amp;#125;&amp;#125;&amp;lt;&amp;#x2F;a&amp;gt;上的文章有了新的评论&amp;lt;&amp;#x2F;p&amp;gt;&amp;lt;&amp;#x2F;div&amp;gt;&amp;lt;div class&amp;#x3D;&amp;quot;formmain&amp;quot; style&amp;#x3D;&amp;quot;background:#fff;width:96%;max-width:800px;margin:auto auto;border-radius:5px;border: 1px solid #564f4f59;overflow:hidden;pointer-events:none&amp;quot;&amp;gt;&amp;lt;div style&amp;#x3D;&amp;quot;margin:40px auto;width:90%;&amp;quot;&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;&amp;#123;&amp;#123;self.nick&amp;#125;&amp;#125;&amp;lt;&amp;#x2F;strong&amp;gt; 回复说：&amp;lt;&amp;#x2F;p&amp;gt;&amp;lt;div style&amp;#x3D;&amp;quot;background: #eee;margin:20px 0px;padding:15px;border-radius:5px;font-size:15px;color:#555555;&amp;quot;&amp;gt;&amp;#123;&amp;#123;self.comment | safe&amp;#125;&amp;#125;&amp;lt;&amp;#x2F;div&amp;gt;&amp;lt;p style&amp;#x3D;&amp;quot;text-align:center;&amp;quot;&amp;gt;您可以点击&amp;lt;a style&amp;#x3D;&amp;quot;text-decoration:none;color:#cf5c83&amp;quot; href&amp;#x3D;&amp;quot;&amp;#123;&amp;#123;site.postUrl&amp;#125;&amp;#125;&amp;quot; target&amp;#x3D;&amp;quot;_blank&amp;quot;&amp;gt;查看回复的完整內容&amp;lt;&amp;#x2F;a&amp;gt;&amp;lt;&amp;#x2F;p&amp;gt;&amp;lt;img src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;npm.elemecdn.com&amp;#x2F;hexo-butterfly-envelope&amp;#x2F;lib&amp;#x2F;line.png&amp;quot; style&amp;#x3D;&amp;quot;width:100%;margin:25px auto 5px auto;display:block;pointer-events:none&amp;quot;&amp;gt;&amp;lt;p class&amp;#x3D;&amp;quot;bottomhr&amp;quot; style&amp;#x3D;&amp;quot;font-size:12px;text-align:center;color:#999&amp;quot;&amp;gt;自动书记人偶竭诚为您服务！&amp;lt;&amp;#x2F;p&amp;gt;&amp;lt;&amp;#x2F;div&amp;gt;&amp;lt;&amp;#x2F;div&amp;gt;&amp;lt;img class&amp;#x3D;&amp;quot;afterimg&amp;quot; style&amp;#x3D;&amp;quot;width:530px;height:317px;margin-top: -155px;z-index:100;&amp;quot;src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;npm.elemecdn.com&amp;#x2F;hexo-butterfly-envelope&amp;#x2F;lib&amp;#x2F;after.png&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;div&amp;gt;&amp;lt;&amp;#x2F;div&amp;gt;&amp;#39;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;blockquote&gt;
&lt;p&gt;如果采用vercel部署，修改部署repo 的 ～/index.js 文件&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-javascript&#34; data-language=&#34;javascript&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-javascript&#34;&gt;const Application &amp;#x3D; require(&amp;#39;@waline&amp;#x2F;vercel&amp;#39;);
module.exports &amp;#x3D; Application(&amp;#123;
  async postSave(comment) &amp;#123;
  mailSubjectAdmin: &amp;#39;&amp;#123;&amp;#123;site.name | safe&amp;#125;&amp;#125; 上有新评论了&amp;#39;,
  mailTemplateAdmin: &amp;#96;&amp;lt;div style&amp;#x3D;&amp;quot;background: url(https:&amp;#x2F;&amp;#x2F;npm.elemecdn.com&amp;#x2F;sarakale-assets@v1&amp;#x2F;Article&amp;#x2F;email&amp;#x2F;bg2.png);padding:20px 0px 20px;margin:0px;background-color:#d6d6d6;width:100%;&amp;quot;&amp;gt;
	&amp;lt;style type&amp;#x3D;&amp;quot;text&amp;#x2F;css&amp;quot;&amp;gt;@media screen and (max-width:600px)&amp;#123;.afterimg,.beforeimg&amp;#123;display:none!important&amp;#125;&amp;#125;&amp;lt;&amp;#x2F;style&amp;gt;
	&amp;lt;div style&amp;#x3D;&amp;quot;border-radius: 10px 10px 10px 10px;font-size:14px;color: #555555;width: 530px;font-family:&amp;#39;Century Gothic&amp;#39;,&amp;#39;Trebuchet MS&amp;#39;,&amp;#39;Hiragino Sans GB&amp;#39;,微软雅黑,&amp;#39;Microsoft Yahei&amp;#39;,Tahoma,Helvetica,Arial,&amp;#39;SimSun&amp;#39;,sans-serif;margin:50px auto;max-width:100%;background: ##ffffff;&amp;quot;&amp;gt;
	&amp;lt;img class&amp;#x3D;&amp;quot;beforeimg&amp;quot; style&amp;#x3D;&amp;quot;margin-top: -30px;margin-bottom: -120px;width:530px;height:317px;z-index:-100;pointer-events:none&amp;quot; src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;npm.elemecdn.com&amp;#x2F;hexo-butterfly-envelope&amp;#x2F;lib&amp;#x2F;before.png&amp;quot;&amp;gt;
	&amp;lt;img src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;npm.elemecdn.com&amp;#x2F;hexo-butterfly-envelope&amp;#x2F;lib&amp;#x2F;violet.jpg&amp;quot; style&amp;#x3D;&amp;quot;width:100%;overflow:hidden;pointer-events:none&amp;quot;&amp;gt;
		&amp;lt;div style&amp;#x3D;&amp;quot;width:100%;background:#f8d1ce;color:#9d2850;border-radius: 10px 10px 0 0;background-image: -moz-linear-gradient(0deg, rgb(67, 198, 184), rgb(255, 209, 244));height: 66px;background: url(https:&amp;#x2F;&amp;#x2F;npm.elemecdn.com&amp;#x2F;sarakale-assets@v1&amp;#x2F;Article&amp;#x2F;email&amp;#x2F;line034_666x66.png) left top no-repeat;&amp;quot;&amp;gt;
		&amp;lt;p style&amp;#x3D;&amp;quot;font-size:16px;font-weight: bold;text-align:center;word-break:break-all;padding: 23px 32px;margin:0;&amp;quot;&amp;gt;
		您在&amp;lt;a style&amp;#x3D;&amp;quot;text-decoration:none;color: #9d2850;&amp;quot; href&amp;#x3D;&amp;quot;&amp;#123;&amp;#123;site.url&amp;#125;&amp;#125;&amp;quot;target&amp;#x3D;&amp;quot;_blank&amp;quot;&amp;gt;&amp;#123;&amp;#123;site.name&amp;#125;&amp;#125;&amp;lt;&amp;#x2F;a&amp;gt;上的文章有了新的评论&amp;lt;&amp;#x2F;p&amp;gt;
		&amp;lt;&amp;#x2F;div&amp;gt;
		&amp;lt;div class&amp;#x3D;&amp;quot;formmain&amp;quot; style&amp;#x3D;&amp;quot;background:#fff;width:96%;max-width:800px;margin:auto auto;border-radius:5px;border: 1px solid #564f4f59;overflow:hidden;pointer-events:none&amp;quot;&amp;gt;
			&amp;lt;div style&amp;#x3D;&amp;quot;margin:40px auto;width:90%;&amp;quot;&amp;gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;&amp;#123;&amp;#123;self.nick&amp;#125;&amp;#125;&amp;lt;&amp;#x2F;strong&amp;gt; 回复说：&amp;lt;&amp;#x2F;p&amp;gt;
			&amp;lt;div style&amp;#x3D;&amp;quot;background: #eee;margin:20px 0px;padding:15px;border-radius:5px;font-size:15px;color:#555555;&amp;quot;&amp;gt;&amp;#123;&amp;#123;self.comment | safe&amp;#125;&amp;#125;&amp;lt;&amp;#x2F;div&amp;gt;
			&amp;lt;p style&amp;#x3D;&amp;quot;text-align:center;&amp;quot;&amp;gt;您可以点击&amp;lt;a style&amp;#x3D;&amp;quot;text-decoration:none;color:#cf5c83&amp;quot; href&amp;#x3D;&amp;quot;&amp;#123;&amp;#123;site.postUrl&amp;#125;&amp;#125;&amp;quot; target&amp;#x3D;&amp;quot;_blank&amp;quot;&amp;gt;查看回复的完整內容&amp;lt;&amp;#x2F;a&amp;gt;&amp;lt;&amp;#x2F;p&amp;gt;
			&amp;lt;img src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;npm.elemecdn.com&amp;#x2F;hexo-butterfly-envelope&amp;#x2F;lib&amp;#x2F;line.png&amp;quot; style&amp;#x3D;&amp;quot;width:100%;margin:25px auto 5px auto;display:block;pointer-events:none&amp;quot;&amp;gt;
			&amp;lt;p class&amp;#x3D;&amp;quot;bottomhr&amp;quot; style&amp;#x3D;&amp;quot;font-size:12px;text-align:center;color:#999&amp;quot;&amp;gt;自动书记人偶竭诚为您服务！&amp;lt;&amp;#x2F;p&amp;gt;
			&amp;lt;&amp;#x2F;div&amp;gt;
		&amp;lt;&amp;#x2F;div&amp;gt;
		&amp;lt;img class&amp;#x3D;&amp;quot;afterimg&amp;quot; style&amp;#x3D;&amp;quot;width:530px;height:317px;margin-top: -155px;z-index:100;&amp;quot;src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;npm.elemecdn.com&amp;#x2F;hexo-butterfly-envelope&amp;#x2F;lib&amp;#x2F;after.png&amp;quot;&amp;gt;
		&amp;lt;&amp;#x2F;div&amp;gt;
&amp;lt;&amp;#x2F;div&amp;gt;&amp;#96;,
  mailSubject: &amp;#39;&amp;#123;&amp;#123;parent.nick&amp;#125;&amp;#125;，您在『&amp;#123;&amp;#123;site.name&amp;#125;&amp;#125;』上发表的评论收到了来自 &amp;#123;&amp;#123;self.nick&amp;#125;&amp;#125; 的回复&amp;#39;,
  mailTemplate: &amp;#96;&amp;lt;div style&amp;#x3D;&amp;quot;background: url(https:&amp;#x2F;&amp;#x2F;npm.elemecdn.com&amp;#x2F;sarakale-assets@v1&amp;#x2F;Article&amp;#x2F;email&amp;#x2F;bg2.png);padding:20px 0px 20px;margin:0px;background-color:#d6d6d6;width:100%;&amp;quot;&amp;gt;
	&amp;lt;style type&amp;#x3D;&amp;quot;text&amp;#x2F;css&amp;quot;&amp;gt;@media screen and (max-width:600px)&amp;#123;.afterimg,.beforeimg&amp;#123;display:none!important&amp;#125;&amp;#125;&amp;lt;&amp;#x2F;style&amp;gt;
	&amp;lt;div style&amp;#x3D;&amp;quot;border-radius: 10px 10px 10px 10px;font-size:14px;color: #555555;width: 530px;font-family:&amp;#39;Century Gothic&amp;#39;,&amp;#39;Trebuchet MS&amp;#39;,&amp;#39;Hiragino Sans GB&amp;#39;,微软雅黑,&amp;#39;Microsoft Yahei&amp;#39;,Tahoma,Helvetica,Arial,&amp;#39;SimSun&amp;#39;,sans-serif;margin:50px auto;max-width:100%;background: ##ffffff;&amp;quot;&amp;gt;
	&amp;lt;img class&amp;#x3D;&amp;quot;beforeimg&amp;quot; style&amp;#x3D;&amp;quot;margin-top: -30px;margin-bottom: -120px;width:530px;height:317px;z-index:-100;pointer-events:none&amp;quot; src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;npm.elemecdn.com&amp;#x2F;hexo-butterfly-envelope&amp;#x2F;lib&amp;#x2F;before.png&amp;quot;&amp;gt;
	&amp;lt;img src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;npm.elemecdn.com&amp;#x2F;hexo-butterfly-envelope&amp;#x2F;lib&amp;#x2F;violet.jpg&amp;quot; style&amp;#x3D;&amp;quot;width:100%;overflow:hidden;pointer-events:none&amp;quot;&amp;gt;
		&amp;lt;div style&amp;#x3D;&amp;quot;width:100%;background:#f8d1ce;color:#9d2850;border-radius: 10px 10px 0 0;background-image: -moz-linear-gradient(0deg, rgb(67, 198, 184), rgb(255, 209, 244));height: 66px;background: url(https:&amp;#x2F;&amp;#x2F;npm.elemecdn.com&amp;#x2F;sarakale-assets@v1&amp;#x2F;Article&amp;#x2F;email&amp;#x2F;line034_666x66.png) left top no-repeat;&amp;quot;&amp;gt;
		&amp;lt;p style&amp;#x3D;&amp;quot;font-size:16px;font-weight: bold;text-align:center;word-break:break-all;padding: 23px 32px;margin:0;&amp;quot;&amp;gt;
		您在&amp;lt;a style&amp;#x3D;&amp;quot;text-decoration:none;color: #9d2850;&amp;quot; href&amp;#x3D;&amp;quot;&amp;#123;&amp;#123;site.url&amp;#125;&amp;#125;&amp;quot;&amp;gt;『&amp;#123;&amp;#123;site.name | safe&amp;#125;&amp;#125;』&amp;lt;&amp;#x2F;a&amp;gt;上的留言有新回复啦！&amp;lt;&amp;#x2F;p&amp;gt;
		&amp;lt;&amp;#x2F;div&amp;gt;
		&amp;lt;div class&amp;#x3D;&amp;quot;formmain&amp;quot; style&amp;#x3D;&amp;quot;background:#fff;width:96%;max-width:800px;margin:auto auto;border-radius:5px;border: 1px solid #564f4f59;overflow:hidden;pointer-events:none&amp;quot;&amp;gt;
			&amp;lt;div style&amp;#x3D;&amp;quot;margin:40px auto;width:90%;&amp;quot;&amp;gt;&amp;lt;p&amp;gt;Hi，&amp;#123;&amp;#123;parent.nick&amp;#125;&amp;#125;，您曾在文章上发表评论：&amp;lt;&amp;#x2F;p&amp;gt;
			&amp;lt;div style&amp;#x3D;&amp;quot;background: #eee;margin:20px 0px;padding:15px;border-radius:5px;font-size:15px;color:#555555;&amp;quot;&amp;gt;&amp;#123;&amp;#123;parent.comment | safe&amp;#125;&amp;#125;&amp;lt;&amp;#x2F;div&amp;gt;
			&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;&amp;#123;&amp;#123;self.nick&amp;#125;&amp;#125;&amp;lt;&amp;#x2F;strong&amp;gt; 给您的回复如下：&amp;lt;&amp;#x2F;p&amp;gt;
			&amp;lt;div style&amp;#x3D;&amp;quot;background: #eee;margin:20px 0px;padding:15px;border-radius:5px;font-size:15px;color:#555555;&amp;quot;&amp;gt;&amp;#123;&amp;#123;self.comment | safe&amp;#125;&amp;#125;&amp;lt;&amp;#x2F;div&amp;gt;
			&amp;lt;p&amp;gt;您可以点击&amp;lt;a style&amp;#x3D;&amp;quot;text-decoration:none; color:#cf5c83&amp;quot; href&amp;#x3D;&amp;quot;&amp;#123;&amp;#123;site.postUrl&amp;#125;&amp;#125;&amp;quot; target&amp;#x3D;&amp;quot;_blank&amp;quot;&amp;gt; 查看回复的完整內容 &amp;lt;&amp;#x2F;a&amp;gt;，欢迎再次光临&amp;lt;a style&amp;#x3D;&amp;quot;text-decoration:none; color:#cf5c83&amp;quot; href&amp;#x3D;&amp;quot;&amp;#123;&amp;#123;site.url&amp;#125;&amp;#125;&amp;quot; target&amp;#x3D;&amp;quot;_blank&amp;quot;&amp;gt; &amp;#123;&amp;#123;site.name&amp;#125;&amp;#125; &amp;lt;&amp;#x2F;a&amp;gt;。&amp;lt;hr &amp;#x2F;&amp;gt;
			&amp;lt;p style&amp;#x3D;&amp;quot;font-size:14px;color:#b7adad;text-align:center&amp;quot;&amp;gt;本邮件为系统自动发送，请勿直接回复邮件哦，可到博文内容回复。&amp;lt;br &amp;#x2F;&amp;gt;https:&amp;#x2F;&amp;#x2F;example.com&amp;lt;&amp;#x2F;p&amp;gt;
			&amp;lt;&amp;#x2F;p&amp;gt;
			&amp;lt;img src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;npm.elemecdn.com&amp;#x2F;hexo-butterfly-envelope&amp;#x2F;lib&amp;#x2F;line.png&amp;quot; style&amp;#x3D;&amp;quot;width:100%;margin:25px auto 5px auto;display:block;pointer-events:none&amp;quot;&amp;gt;
			&amp;lt;p class&amp;#x3D;&amp;quot;bottomhr&amp;quot; style&amp;#x3D;&amp;quot;font-size:12px;text-align:center;color:#999&amp;quot;&amp;gt;自动书记人偶竭诚为您服务！&amp;lt;&amp;#x2F;p&amp;gt;
			&amp;lt;&amp;#x2F;div&amp;gt;
		&amp;lt;&amp;#x2F;div&amp;gt;
		&amp;lt;img class&amp;#x3D;&amp;quot;afterimg&amp;quot; style&amp;#x3D;&amp;quot;width:530px;height:317px;margin-top: -155px;z-index:100;&amp;quot;src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;npm.elemecdn.com&amp;#x2F;hexo-butterfly-envelope&amp;#x2F;lib&amp;#x2F;after.png&amp;quot;&amp;gt;
		&amp;lt;&amp;#x2F;div&amp;gt;
&amp;lt;&amp;#x2F;div&amp;gt;&amp;#96;
  &amp;#125;,
&amp;#125;);&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h2 id=&#34;注意事项&#34;&gt;注意事项&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;默认创建好waline 后，尽快创建第一个登录用户！ 默认第一个登录用户为管理员， 默认地址为 &lt;code&gt;[域名]/ui&lt;/code&gt;， 例如本文中就是 &lt;code&gt;waline.17lai.site/ui &lt;/code&gt;&lt;/li&gt;
&lt;li&gt;waline 自带数据导入导出，目前测试导入同一份数据2次，会使同一份数据在数据库中出现两次！&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;Cloudflare-设置&#34;&gt;Cloudflare 设置&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;使用了 Cloudflare 时需要注意的配置事项！&lt;/p&gt;
&lt;p&gt;如果使用了 CF 的服务，不配置这里，waline 就获取不到正确的地理位置，但 CF 还支持下面功能，&lt;a href=&#34;https://developers.cloudflare.com/rules/transform/managed-transforms/configure/&#34;&gt;官方文档&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2024/02/28/20240228215815.webp&#34; alt=&#34;img&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;设置方法&#34;&gt;设置方法&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2024/02/25/20240225021212.webp&#34; alt=&#34;IP 地理位置&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2024/02/25/20240225021212-1.webp&#34; alt=&#34;访问者位置标头&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;参考-致谢&#34;&gt;参考&amp;amp;致谢&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.zywvvd.com/notes/hexo/theme/fluid/fluid-github-login/fluid-github-login/&#34;&gt;Waline 添加 GitHub 社交登录&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.sarakale.top/blog/posts/537344b2.html&#34;&gt;waline 邮件通知模板样式一览&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://akilar.top/posts/e2d3c450/&#34;&gt;信笺样式留言板&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;雷打真孝子，财发狠心，麻绳专挑细处断，恶运专找苦命人！&lt;/p&gt;
&lt;p&gt;​																													——俗语赏析&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;系列教程&#34;&gt;&lt;strong&gt;系列教程&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;全部文章RSS订阅&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&#34;Hexo系列&#34;&gt;&lt;strong&gt;Hexo系列&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;/categories/hexo/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;&lt;strong&gt;HexoRSS分类订阅&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[十万字图文教程]基于Hexo的matery主题搭建博客并深度优化完全一站式教程&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/40300608/&#34;&gt;Hexo Docker环境与Hexo基础配置篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/4d8a0b22/&#34;&gt;hexo博客自定义修改篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/9b056c86/&#34;&gt;hexo博客网络优化篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/5311b619/&#34;&gt;hexo博客增强部署篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/4a2050e2/&#34;&gt;hexo博客个性定制篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/84b4059a/&#34;&gt;hexo博客常见问题篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/253706ff/&#34;&gt;hexo博客博文撰写篇之完美笔记大攻略终极完全版&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/cf0f47fd/&#34;&gt;Hexo Markdown以及各种插件功能测试&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;markdown 各种其它语法插件，latex公式支持，mermaid图表，plant uml图表，URL卡片，bilibili卡片，github卡片，豆瓣卡片，插入音乐和视频，插入脑图，插入PDF，嵌入iframe&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/217ccdc1/&#34;&gt;在 Hexo 博客中插入 ECharts 动态图表&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/546887ac/&#34;&gt;使用nodeppt给hexo博客嵌入PPT演示&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/a3c81cc3/&#34;&gt;GithubProfile美化与自动获取RSS文章教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/e922fac8/&#34;&gt;Vercel部署高级用法教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/eb731135/&#34;&gt;webhook部署Hexo静态博客指南&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/8f9792ab/&#34;&gt;在宝塔VPS上面采用docker部署waline全流程图解教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/843eb2k9/&#34;&gt;自建Umami访问统计服务并统计静态博客UV/PV&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&#34;Docker系列&#34;&gt;&lt;strong&gt;Docker系列&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;/categories/docker/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;&lt;strong&gt;Docker 分类 RSS 订阅&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/42b6a86d/&#34;&gt;Docker使用简明教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/9912bd5d/&#34;&gt;使用jeckett,sonarr,iyuu,qt,emby打造全自动追剧流程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/1802a8a7/&#34;&gt;为知笔记私有化Docker部署&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/593cc323/&#34;&gt;Earthly 一个更加强大的镜像构建工具&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/90e60aac/&#34;&gt;使用 Shell 脚本实现一个简单 Docker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/465d2738/&#34;&gt;如何使用Traefik V2 在Ubuntu20.04 上面来做 Dockers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/462f1e5c/&#34;&gt;通过IPV6访问Qnap NAS中Docker的服务&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&#34;笔记系列&#34;&gt;&lt;strong&gt;笔记系列&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;/categories/note/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;&lt;strong&gt;Note分类RSS订阅&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/a8535f26/&#34;&gt;完美笔记进化论&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/253706ff/&#34;&gt;hexo博客博文撰写篇之完美笔记大攻略终极完全版&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/e6086437/&#34;&gt;Joplin入门指南&amp;amp;实践方案&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/45f878cd/&#34;&gt;替代Evernote免费开源笔记Joplin-网盘同步笔记历史版本Markdown可视化&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/92d347d6/&#34;&gt;Joplin 插件以及其Markdown语法。All in One!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/e3ee7f8b/&#34;&gt;Joplin 插件使用推荐&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/1802a8a7/&#34;&gt;为知笔记私有化Docker部署&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&#34;Gitbook使用系列&#34;&gt;&lt;strong&gt;Gitbook使用系列&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;/categories/gitbook/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;Gitbook分类RSS订阅&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/7fe86002/&#34;&gt;GitBook+GitLab撰写发布技术文档-Part1:GitBook篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/7790e989/&#34;&gt;GitBook+GitLab撰写发布技术文档-Part2:GitLab篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/d6bad1e5/&#34;&gt;自己动手制作电子书的最佳方式（支持PDF、ePub、mobi等格式）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&#34;Gitlab-使用系列&#34;&gt;&lt;strong&gt;Gitlab 使用系列&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;/categories/gitlab/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;&lt;strong&gt;Gitlab RSS 分类订阅&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/acc13b70/&#34;&gt;&lt;strong&gt;Gitlab的安装及使用教程完全版&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/29a820b3/&#34;&gt;破解Gitlab EE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/d08eb7b/&#34;&gt;Gitlab的安装及使用&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/1879721e/&#34;&gt;CI/CD与Git Flow与GitLab&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;link rel=&#34;stylesheet&#34; href=&#34;https://fastly.jsdelivr.net/npm/markmap-toolbar@0.18.10/dist/style.css&#34;&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/d3@7&#34;&gt;&lt;/script&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/markmap-view@0.18.10&#34;&gt;&lt;/script&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/markmap-toolbar@0.18.10&#34;&gt;&lt;/script&gt;
&lt;link rel=&#34;stylesheet&#34; href=&#34;/css/markmap.css&#34;&gt;

&lt;script src=&#34;/js/markmap.js&#34;&gt;&lt;/script&gt;
</content>
        <category term="宝塔" />
        <category term="docker" />
        <category term="hexo" />
        <category term="waline" />
        <updated>2023-02-20T14:18:01.000Z</updated>
    </entry>
    <entry>
        <id>https://blog.17lai.site/posts/e922fac8/</id>
        <title>Vercel部署高级用法教程</title>
        <link rel="alternate" href="https://blog.17lai.site/posts/e922fac8/"/>
        <content type="html">&lt;blockquote&gt;
&lt;p&gt;Vercel使用有不少需要仔细配置的地方，可惜的是，自定义Vercel缓存时间，Vercel重定向等使用方法略复杂，不是开箱即用，有一定使用门槛，故这里单独列一篇文章详细说明Vercel的一些高级使用方法！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;span id=&#34;more&#34;&gt;&lt;/span&gt;
&lt;h2 id=&#34;为什么使用-vercel&#34;&gt;为什么使用 vercel&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;国内 &lt;code&gt;Github Pages&lt;/code&gt; 速度较慢。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;vercel&lt;/code&gt; 速度快且能够自定义域名，能实现和 &lt;code&gt;Github Pages&lt;/code&gt; 一样的效果&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;vercel 官方地址：&lt;a href=&#34;https://vercel.com/&#34;&gt;vercel.com/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;开始使用&#34;&gt;开始使用&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;首先注册一个账号 &lt;a href=&#34;https://vercel.com/&#34;&gt;https://vercel.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;注册成功后进入页面，点击 &lt;code&gt;News Project&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2022/09/04/20220904114329.webp&#34; alt=&#34;img&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;然后通过绑定的 &lt;code&gt;github&lt;/code&gt; 或者 &lt;code&gt;gitlab&lt;/code&gt; 导入需要部署的项目&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2022/09/04/20220904114329-1.webp&#34; alt=&#34;img&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;如果导入的项目是打包好的静态页，&lt;code&gt;FRAMEWORK PRESET&lt;/code&gt; 选择 &lt;code&gt;Other&lt;/code&gt; 。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2022/09/04/20220904114329-2.webp&#34; alt=&#34;img&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;点击 &lt;code&gt;deployed&lt;/code&gt; 进行部署，如果部署失败可以查看报错信息是不是上一步的某些选项没有覆盖。部署成功后会进入如图所示的界面&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2022/09/27/re_214145.webp&#34; alt=&#34;img&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;如何自定义域名&#34;&gt;如何自定义域名&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;腾讯云域名地址：&lt;a href=&#34;https://console.cloud.tencent.com/domain&#34;&gt;console.cloud.tencent.com/domain&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;vercel&lt;/code&gt; 静态页挂载地址：&lt;/li&gt;
&lt;li&gt;进入到 setting 中可对项目进行一些设置，如项目名称&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2022/09/04/20220904114329-4.webp&#34; alt=&#34;vercel 自定义域名&#34;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;下面演示如何自定义域名，默认情况下部署成功后 &lt;code&gt;vercel&lt;/code&gt; 会给你生成一个默认的域名，如果想要修改成自己的域名可将域名名称修改成自己的。&lt;/li&gt;
&lt;li&gt;当选择修改成自己的域名名称后，&lt;code&gt;vercel&lt;/code&gt; 会检查域名指向的 &lt;code&gt;DNS&lt;/code&gt; 对不对，如果不对的话会提示你域名的 DNS 应该如何配置，按照 &lt;code&gt;vercel&lt;/code&gt; 提示的 &lt;code&gt;DNS&lt;/code&gt; 信息&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在自己的域名的 &lt;code&gt;DNS&lt;/code&gt; 配置中进行配置，如图&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2022/09/04/20220904114329-5.webp&#34; alt=&#34;img&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;配置多个域名&#34;&gt;配置多个域名&lt;/h2&gt;
&lt;p&gt;对其他新增的域名选择重定向到自己的主域名即可&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2022/09/04/20220904114329-6.webp&#34; alt=&#34;vercel 多域名配置&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;自定义Vercel服务器位置&#34;&gt;自定义Vercel服务器位置&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Vercel线路已经很快了，但是可以通过选择Vercel部署服务器位置，更进一步加快中国大陆，亚洲区域的访问速度！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2022/09/04/20220904120615.webp&#34; alt=&#34;Vercel服务器选择&#34;&gt;&lt;/p&gt;
&lt;p&gt;香港服务器虽然没有严格测试，但是中国大陆速度应该是最快的！&lt;/p&gt;
&lt;h2 id=&#34;自定义Header缓存时间&#34;&gt;自定义Header缓存时间&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://vercel.com/docs/project-configuration#project-configuration/headers&#34;&gt;vercel.com/docs&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;使用Vercel必备配置，本地缓存加速访问！&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;vercel.json&lt;/code&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-json&#34; data-language=&#34;json&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;#123;
  &amp;quot;headers&amp;quot;: [
    &amp;#123;
      &amp;quot;source&amp;quot;: &amp;quot;&amp;#x2F;sw.js&amp;quot;,
      &amp;quot;headers&amp;quot;: [
        &amp;#123;
          &amp;quot;key&amp;quot;: &amp;quot;Cache-Control&amp;quot;,
          &amp;quot;value&amp;quot;: &amp;quot;public, max-age&amp;#x3D;0, must-revalidate&amp;quot;
        &amp;#125;
      ]
    &amp;#125;,
    &amp;#123;
      &amp;quot;source&amp;quot;: &amp;quot;(.*)&amp;quot;,
      &amp;quot;headers&amp;quot;: [
        &amp;#123;
          &amp;quot;key&amp;quot;: &amp;quot;Cache-Control&amp;quot;,
          &amp;quot;value&amp;quot;: &amp;quot;public, s-maxage&amp;#x3D;86400, max-age&amp;#x3D;86400&amp;quot;
        &amp;#125;
      ]
    &amp;#125;
  ]
&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h2 id=&#34;Vercel自定义404&#34;&gt;Vercel自定义404&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://vercel.com/guides/custom-404-page&#34;&gt;learn how to customize the 404 page&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;Vercel流量超标怎么办？&#34;&gt;Vercel流量超标怎么办？&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;最近查看了一下Vercel流量使用情况，发现RSS订阅流量太大了，占了30GB流量！&lt;/p&gt;
&lt;p&gt;免费Vercel账户每月只有100G免费流量，怎么办？&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;有两种解决方法：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;使用 DNS 多线路分流，例如&lt;a href=&#34;/posts/5311b619/#DNSPOD-%E5%A4%9A%E7%BA%BF%E8%B7%AF%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1&#34;&gt;DNSPOD 多线路负载均衡&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;使用 Vercel 提供的 &lt;a href=&#34;https://vercel.com/docs/project-configuration#project-configuration/redirects&#34;&gt;redirects&lt;/a&gt; 或者 &lt;a href=&#34;https://vercel.com/docs/project-configuration#project-configuration/rewrites&#34;&gt;rewrites&lt;/a&gt;功能，把rss访问重定向到其它部署方式，例如Cloudflare&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2022/09/27/20220927103610.webp&#34; alt=&#34;Vercel 流量&#34;&gt;&lt;/p&gt;
&lt;p&gt;查看方法：&lt;a href=&#34;https://vercel.com/dashboard&#34;&gt;dashboard&lt;/a&gt; -&amp;gt; &lt;a href=&#34;https://vercel.com/dashboard/usage&#34;&gt;usage&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;由于个人blog也部署到Cloudflare上面了，&lt;a href=&#34;https://cfblog.17lai.site&#34;&gt;https://cfblog.17lai.site&lt;/a&gt;，Cloudflare的流量目前看着没限制，如是，可以使用如下重定向方法&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-json&#34; data-language=&#34;json&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;redirects&amp;quot;: [
		&amp;#123; &amp;quot;source&amp;quot;: &amp;quot;&amp;#x2F;atom.xml&amp;quot;, &amp;quot;destination&amp;quot;: &amp;quot;https:&amp;#x2F;&amp;#x2F;cfblog.17lai.site&amp;#x2F;atom.xml&amp;quot; &amp;#125;,
		&amp;#123; &amp;quot;source&amp;quot;: &amp;quot;&amp;#x2F;rss.xml&amp;quot;, &amp;quot;destination&amp;quot;: &amp;quot;https:&amp;#x2F;&amp;#x2F;cfblog.17lai.site&amp;#x2F;rss.xml&amp;quot; &amp;#125;
  	]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;详细 Cloudflare 部署方法，戳 &lt;a href=&#34;/posts/5311b619/#cloudflare-Pages-%E9%83%A8%E7%BD%B2&#34;&gt;cloudflare Pages 部署&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;个人使用最终版本如下，各位使用修改对应部分即可。文件路径 &lt;code&gt;[hexo]/source/vercel.json&lt;/code&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-json&#34; data-language=&#34;json&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;#123;
  &amp;quot;headers&amp;quot;: [
    &amp;#123;
      &amp;quot;source&amp;quot;: &amp;quot;&amp;#x2F;medias&amp;#x2F;(.*)&amp;quot;,
      &amp;quot;headers&amp;quot;: [
        &amp;#123; &amp;quot;key&amp;quot;: &amp;quot;Cache-Control&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;public, s-maxage&amp;#x3D;31536000, max-age&amp;#x3D;31536000, immutable&amp;quot; &amp;#125;
      ]
    &amp;#125;,
    &amp;#123;
      &amp;quot;source&amp;quot;: &amp;quot;&amp;#x2F;medias_webp&amp;#x2F;(.*)&amp;quot;,
      &amp;quot;headers&amp;quot;: [
        &amp;#123; &amp;quot;key&amp;quot;: &amp;quot;Cache-Control&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;public, s-maxage&amp;#x3D;31536000, max-age&amp;#x3D;31536000, immutable&amp;quot; &amp;#125;
      ]
    &amp;#125;,
    &amp;#123;
      &amp;quot;source&amp;quot;: &amp;quot;&amp;#x2F;(.*)\\.woff2&amp;quot;,
      &amp;quot;headers&amp;quot;: [
        &amp;#123; &amp;quot;key&amp;quot;: &amp;quot;Cache-Control&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;public, s-maxage&amp;#x3D;31536000, max-age&amp;#x3D;31536000, immutable&amp;quot; &amp;#125;,
        &amp;#123; &amp;quot;key&amp;quot;: &amp;quot;Access-Control-Allow-Origin&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;*&amp;quot; &amp;#125;
      ]
    &amp;#125;,
    &amp;#123;
      &amp;quot;source&amp;quot;: &amp;quot;&amp;#x2F;(.*)\\.mjs&amp;quot;,
      &amp;quot;headers&amp;quot;: [
        &amp;#123; &amp;quot;key&amp;quot;: &amp;quot;Cache-Control&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;public, s-maxage&amp;#x3D;31536000, max-age&amp;#x3D;31536000, immutable&amp;quot; &amp;#125;
      ]
    &amp;#125;,
    &amp;#123;
      &amp;quot;source&amp;quot;: &amp;quot;&amp;#x2F;(.*)\\.js&amp;quot;,
      &amp;quot;headers&amp;quot;: [
        &amp;#123; &amp;quot;key&amp;quot;: &amp;quot;Cache-Control&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;public, s-maxage&amp;#x3D;31536000, max-age&amp;#x3D;31536000, immutable&amp;quot; &amp;#125;
      ]
    &amp;#125;,
    &amp;#123;
      &amp;quot;source&amp;quot;: &amp;quot;&amp;#x2F;(.*)\\.css&amp;quot;,
      &amp;quot;headers&amp;quot;: [
        &amp;#123; &amp;quot;key&amp;quot;: &amp;quot;Cache-Control&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;public, s-maxage&amp;#x3D;31536000, max-age&amp;#x3D;31536000, immutable&amp;quot; &amp;#125;
      ]
    &amp;#125;,
    &amp;#123;
      &amp;quot;source&amp;quot;: &amp;quot;&amp;#x2F;(.*)\\.webp&amp;quot;,
      &amp;quot;headers&amp;quot;: [
        &amp;#123; &amp;quot;key&amp;quot;: &amp;quot;Cache-Control&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;public, s-maxage&amp;#x3D;31536000, max-age&amp;#x3D;31536000, immutable&amp;quot; &amp;#125;
      ]
    &amp;#125;,
    &amp;#123;
      &amp;quot;source&amp;quot;: &amp;quot;&amp;#x2F;(.*)\\.json&amp;quot;,
      &amp;quot;headers&amp;quot;: [
        &amp;#123; &amp;quot;key&amp;quot;: &amp;quot;Cache-Control&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;public, s-maxage&amp;#x3D;7776000, max-age&amp;#x3D;7776000&amp;quot; &amp;#125;
      ]
    &amp;#125;,
    &amp;#123;
      &amp;quot;source&amp;quot;: &amp;quot;&amp;#x2F;sw.js&amp;quot;,
      &amp;quot;headers&amp;quot;: [
        &amp;#123; &amp;quot;key&amp;quot;: &amp;quot;Cache-Control&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;public, max-age&amp;#x3D;0, must-revalidate&amp;quot; &amp;#125;
      ]
    &amp;#125;,
    &amp;#123;
      &amp;quot;source&amp;quot;: &amp;quot;&amp;#x2F;(.*)\\.html&amp;quot;,
      &amp;quot;headers&amp;quot;: [
        &amp;#123; &amp;quot;key&amp;quot;: &amp;quot;Cache-Control&amp;quot;, &amp;quot;value&amp;quot;: &amp;quot;public, s-maxage&amp;#x3D;1800, max-age&amp;#x3D;1800&amp;quot; &amp;#125;
      ]
    &amp;#125;
  ],

  &amp;quot;regions&amp;quot;: [&amp;quot;hkg1&amp;quot;]
&amp;#125;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h2 id=&#34;Vercel-账号被禁怎么办？&#34;&gt;Vercel 账号被禁怎么办？&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Your Personal Account was automatically blocked because its usage exceeds the fair use policy&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;最近某个 vercel app 流量超标了！ 程序可能被攻击了，或者程序存在某个bug。发现的时候，账号已经被禁用了。&lt;/p&gt;
&lt;p&gt;等了一个月后，账号没有自动解禁！&lt;/p&gt;
&lt;p&gt;怎么解封了？ 在这里 &lt;a href=&#34;https://vercel.com/help#issues&#34;&gt;https://vercel.com/help#issues&lt;/a&gt; 点击 【Create a case】，然后邮件联系解封！邮件回复说：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;accounts will not auto-unblock after they’ve been blocked for exceeded limits. I can do that manually, but I must first be sure that the underlying issue has been resolved.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;技术支持要求解决掉超出限制的原因，然后再回复邮件！应该就可以解禁了。&lt;/p&gt;
&lt;p&gt;删除了被攻击或者出bug的 vercel app 之后再次回复邮件，得到回复：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;After review, I have unblocked your account. Please note that this is a one-time consideration, and future usage overages may require purchasing a Pro team subscription to unblock your account.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;账号终于解禁了，但是再次超出限制就得交钱解禁？ &lt;a href=&#34;https://vercel.com/pricing&#34;&gt;20$每月&lt;/a&gt;的价格太高了！&lt;/p&gt;
&lt;h2 id=&#34;乒乓部署&#34;&gt;乒乓部署&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;也可以叫旋转门部署。&lt;/p&gt;
&lt;p&gt;解决调试博客插件，修改半成品文章时部署到云端会影响正在查阅博客的用户的问题！&lt;/p&gt;
&lt;p&gt;使用Docker版本本地预览是很不错，但是 jsdelivr 版本发布需要在 Github 生成新 release 这时本地就不行了。乒乓部署可以解决这个问题！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;具体方法就是同时部署到两个地方A和B，博客域名在两个服务器之间切换。这里以 Vercel 为例&lt;/p&gt;
&lt;h3 id=&#34;准备工作：&#34;&gt;准备工作：&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;创建2个Github仓库，对应服务器A和B的部署&lt;/li&gt;
&lt;li&gt;建立两个服务器A和B，分别关联两个 Github 仓库&lt;/li&gt;
&lt;li&gt;把调试完毕的代码上传到两个仓库&lt;/li&gt;
&lt;li&gt;这时通过服务器A和B都是可以正常浏览的&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;要调试的时候：&#34;&gt;要调试的时候：&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;发布到A之前，把博客域名转移到服务器B&lt;/li&gt;
&lt;li&gt;在服务A做一些调试，在线 debug 工作&lt;/li&gt;
&lt;li&gt;特别是在线 &lt;a href=&#34;https://pagespeed.web.dev/&#34;&gt;pageseed&lt;/a&gt; 测试调优，这种事必备方法。简单不需要新的 jsdelivr 版本调试本地 &lt;a href=&#34;https://github.com/appotry/docker-hexo&#34;&gt;docker-hexo&lt;/a&gt; 调试即可！&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2022/08/20/20220820181601.webp&#34; alt=&#34;输入想转移的域名&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2022/08/20/20220820181557.webp&#34; alt=&#34;点击确认转移域名&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;调试完毕后：&#34;&gt;调试完毕后：&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;把域名切换到服务器A&lt;/li&gt;
&lt;li&gt;同时部署到服务器B，服务器B同步A的部署内容，以便下次备用&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;总结就是服务器A现行，服务器B做后备，调试发布使用A，调试A的时候B就顶上前台！&lt;/p&gt;
&lt;p&gt;这样，调试和正常部署网络服务两不误。是不是感觉自己是个大聪明！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;参考-致谢&#34;&gt;参考&amp;amp;致谢&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://vercel.com/docs/project-configuration#project-configuration/redirects&#34;&gt;https://vercel.com/docs/project-configuration#project-configuration/redirects&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://vercel.com/guides/how-to-enable-cors&#34;&gt;how-to-enable-cors&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;系列教程&#34;&gt;&lt;strong&gt;系列教程&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;全部文章RSS订阅&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&#34;Hexo系列&#34;&gt;&lt;strong&gt;Hexo系列&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;/categories/hexo/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;&lt;strong&gt;HexoRSS分类订阅&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[十万字图文教程]基于Hexo的matery主题搭建博客并深度优化完全一站式教程&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/40300608/&#34;&gt;Hexo Docker环境与Hexo基础配置篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/4d8a0b22/&#34;&gt;hexo博客自定义修改篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/9b056c86/&#34;&gt;hexo博客网络优化篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/5311b619/&#34;&gt;hexo博客增强部署篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/4a2050e2/&#34;&gt;hexo博客个性定制篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/84b4059a/&#34;&gt;hexo博客常见问题篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/253706ff/&#34;&gt;hexo博客博文撰写篇之完美笔记大攻略终极完全版&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/cf0f47fd/&#34;&gt;Hexo Markdown以及各种插件功能测试&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;markdown 各种其它语法插件，latex公式支持，mermaid图表，plant uml图表，URL卡片，bilibili卡片，github卡片，豆瓣卡片，插入音乐和视频，插入脑图，插入PDF，嵌入iframe&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/217ccdc1/&#34;&gt;在 Hexo 博客中插入 ECharts 动态图表&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/546887ac/&#34;&gt;使用nodeppt给hexo博客嵌入PPT演示&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/a3c81cc3/&#34;&gt;GithubProfile美化与自动获取RSS文章教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/e922fac8/&#34;&gt;Vercel部署高级用法教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/eb731135/&#34;&gt;webhook部署Hexo静态博客指南&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/8f9792ab/&#34;&gt;在宝塔VPS上面采用docker部署waline全流程图解教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/843eb2k9/&#34;&gt;自建Umami访问统计服务并统计静态博客UV/PV&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&#34;笔记系列&#34;&gt;&lt;strong&gt;笔记系列&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;/categories/note/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;&lt;strong&gt;Note分类RSS订阅&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/a8535f26/&#34;&gt;完美笔记进化论&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/253706ff/&#34;&gt;hexo博客博文撰写篇之完美笔记大攻略终极完全版&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/e6086437/&#34;&gt;Joplin入门指南&amp;amp;实践方案&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/45f878cd/&#34;&gt;替代Evernote免费开源笔记Joplin-网盘同步笔记历史版本Markdown可视化&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/92d347d6/&#34;&gt;Joplin 插件以及其Markdown语法。All in One!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/e3ee7f8b/&#34;&gt;Joplin 插件使用推荐&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/1802a8a7/&#34;&gt;为知笔记私有化Docker部署&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&#34;Gitbook使用系列&#34;&gt;&lt;strong&gt;Gitbook使用系列&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;/categories/gitbook/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;Gitbook分类RSS订阅&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/7fe86002/&#34;&gt;GitBook+GitLab撰写发布技术文档-Part1:GitBook篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/7790e989/&#34;&gt;GitBook+GitLab撰写发布技术文档-Part2:GitLab篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/d6bad1e5/&#34;&gt;自己动手制作电子书的最佳方式（支持PDF、ePub、mobi等格式）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&#34;Gitlab-使用系列&#34;&gt;&lt;strong&gt;Gitlab 使用系列&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;/categories/gitlab/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;&lt;strong&gt;Gitlab RSS 分类订阅&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/acc13b70/&#34;&gt;&lt;strong&gt;Gitlab的安装及使用教程完全版&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/29a820b3/&#34;&gt;破解Gitlab EE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/d08eb7b/&#34;&gt;Gitlab的安装及使用&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/1879721e/&#34;&gt;CI/CD与Git Flow与GitLab&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;link rel=&#34;stylesheet&#34; href=&#34;https://fastly.jsdelivr.net/npm/markmap-toolbar@0.18.10/dist/style.css&#34;&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/d3@7&#34;&gt;&lt;/script&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/markmap-view@0.18.10&#34;&gt;&lt;/script&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/markmap-toolbar@0.18.10&#34;&gt;&lt;/script&gt;
&lt;link rel=&#34;stylesheet&#34; href=&#34;/css/markmap.css&#34;&gt;

&lt;script src=&#34;/js/markmap.js&#34;&gt;&lt;/script&gt;
</content>
        <category term="blog" />
        <category term="hexo" />
        <category term="vercel" />
        <updated>2022-09-04T03:33:11.000Z</updated>
    </entry>
    <entry>
        <id>https://blog.17lai.site/posts/253706ff/</id>
        <title>hexo博客博文撰写篇之完美笔记大攻略终极完全版</title>
        <link rel="alternate" href="https://blog.17lai.site/posts/253706ff/"/>
        <content type="html">&lt;blockquote&gt;
&lt;p&gt;hexo博客文章卷写技巧，包括MarkDown，hexo技巧，html插入，美化方法，写作方法，写作工具，知识储备方法，AI助手，开发工具，等一系列全介绍！终极攻略篇。&lt;/p&gt;
&lt;p&gt;当然，这些写作技巧也可以用在hexo , hugo, next.js， wordpress上面，或者还是其它类型博客。&lt;/p&gt;
&lt;p&gt;在任何类型的写作上面，这些都是用得着的写作技巧！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;span id=&#34;more&#34;&gt;&lt;/span&gt;
&lt;h2 id=&#34;使用草稿&#34;&gt;使用草稿&lt;/h2&gt;
&lt;h3 id=&#34;新建文章&#34;&gt;新建文章&lt;/h3&gt;
&lt;p&gt;一般我们都会使用 &lt;code&gt;hexo new &amp;lt;title&amp;gt;&lt;/code&gt; 来建立文章，这种建立方法会将新文章建立在 &lt;code&gt;source/_posts&lt;/code&gt; 目录下，当使用 &lt;code&gt;hexo generate&lt;/code&gt; 编译 markdown 文件时，会将其 HTML 结果编译在 &lt;code&gt;public&lt;/code&gt; 目录下，之后 &lt;code&gt;hexo deploy&lt;/code&gt; 将会把 &lt;code&gt;public&lt;/code&gt; 目录下所有文章部署到 &lt;a href=&#34;https://so.csdn.net/so/search?q=GitHub&amp;amp;spm=1001.2101.3001.7020&#34;&gt;GitHub&lt;/a&gt;，这是我们熟悉的 Hexo 流程。&lt;/p&gt;
&lt;p&gt;这种建立文章方式的缺点是：若我们同时编辑多篇文章，只要其中一篇文章尚未编辑完成，也会随着 &lt;code&gt;hexo deploy&lt;/code&gt; 一起部署到 GitHub，也就是 GitHub 可能会看到我们尚未完成的文章。&lt;/p&gt;
&lt;h3 id=&#34;新建草稿&#34;&gt;新建草稿&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-bash&#34; data-language=&#34;bash&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;hexo new draft &amp;lt;title&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;Hexo 另外提供 &lt;code&gt;draft&lt;/code&gt; 机制，它的原理是新文章将建立在 &lt;code&gt;source/_drafts&lt;/code&gt; 目录下，因此 &lt;code&gt;hexo generate&lt;/code&gt; 并不会将其编译到 &lt;code&gt;public&lt;/code&gt; 目录下，所以 &lt;code&gt;hexo deploy&lt;/code&gt; 也不会将其部署到 GitHub。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-bash&#34; data-language=&#34;bash&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;hexo S --draft&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;虽然 &lt;code&gt;hexo generate&lt;/code&gt; 不会编译 &lt;code&gt;source/_drafts&lt;/code&gt; 目录下的文章，但 Hexo 的 &lt;code&gt;Hexo server&lt;/code&gt; 另外提供 &lt;code&gt;--draft&lt;/code&gt; 参数，这让我们只要搭配 &lt;code&gt;hexo-browsersync&lt;/code&gt; plugins，就可以达到一边编辑 &lt;code&gt;markdown&lt;/code&gt; 文章，一边使用浏览器预览的目的。&lt;/p&gt;
&lt;h3 id=&#34;将草稿发布为正式文章&#34;&gt;将草稿发布为正式文章&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-bash&#34; data-language=&#34;bash&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;hexo P &amp;lt;filename&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;其中 &lt;code&gt;&amp;lt;filename&amp;gt;&lt;/code&gt; 为不包含 &lt;code&gt;md&lt;/code&gt; 后缀的文章名称。它的原理只是将文章从 &lt;code&gt;source/_drafts&lt;/code&gt; 移动到 &lt;code&gt;source/_posts&lt;/code&gt; 而已。&lt;/p&gt;
&lt;p&gt;之后的 &lt;code&gt;hexo generate&lt;/code&gt; 与 &lt;code&gt;hexo deploy&lt;/code&gt; 的用法就完全一样了。&lt;/p&gt;
&lt;p&gt;若日后想将正式文章转为为草稿，只需手动将文章从 &lt;code&gt;source/_posts&lt;/code&gt; 目录移动到 &lt;code&gt;source/_drafts&lt;/code&gt; 目录即可。&lt;/p&gt;
&lt;h3 id=&#34;新建普通页面&#34;&gt;新建普通页面&lt;/h3&gt;
&lt;p&gt;这种形式类似是“关于”，“了解我们”之类的文章。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-bash&#34; data-language=&#34;bash&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;hexo new page c&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;创建一个标题为c的page&lt;/p&gt;
&lt;p&gt;和前两种不同，这个命令会在source文件夹内创建出c文件夹，与_posts，_drafts并列。文件夹里面有一个index.md文件。&lt;/p&gt;
&lt;p&gt;注意：刷新页面后，c并没有出现在页面中，而是需要访问&lt;code&gt;http://localhost:4000/c/&lt;/code&gt;才可以看到。&lt;/p&gt;
&lt;h2 id=&#34;hexo命令速记&#34;&gt;hexo命令速记&lt;/h2&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-bash&#34; data-language=&#34;bash&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;# 开启服务
hexo server

# 新建文章
hexo new a

# 新建草稿
hexo new draft b

# 发布草稿成为文章
hexo publish b

# 普通页面
hexo new page c

# 清空缓存
hexo clean
# 生成静态文章
hexo generate 或者是 hexo g
# 部署文章
hexo deploy 或者是 hexo d&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;Front-matter&#34;&gt;Front-matter&lt;/h3&gt;
&lt;p&gt;Front-matter 是文件最上方以 &lt;code&gt;---&lt;/code&gt; 分隔的区域，用于指定个别文件的变量，举例来说：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;---
title: Hello World
date: 2013&amp;#x2F;7&amp;#x2F;13 20:46:25
---&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;以下是预先定义的参数，您可在模板中使用这些参数值并加以利用。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;参数&lt;/th&gt;
&lt;th&gt;描述&lt;/th&gt;
&lt;th&gt;默认值&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;layout&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;布局&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://hexo.io/zh-cn/docs/configuration#%E6%96%87%E7%AB%A0&#34;&gt;&lt;code&gt;config.default_layout&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;title&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;标题&lt;/td&gt;
&lt;td&gt;文章的文件名&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;date&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;建立日期&lt;/td&gt;
&lt;td&gt;文件建立日期&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;updated&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;更新日期&lt;/td&gt;
&lt;td&gt;文件更新日期&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;comments&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;开启文章的评论功能&lt;/td&gt;
&lt;td&gt;true&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tags&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;标签（不适用于分页）&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;categories&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;分类（不适用于分页）&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;permalink&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;覆盖文章网址&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;excerpt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Page excerpt in plain text. Use &lt;a href=&#34;https://hexo.io/docs/tag-plugins#Post-Excerpt&#34;&gt;this plugin&lt;/a&gt; to format the text&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;disableNunjucks&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Disable rendering of Nunjucks tag &lt;code&gt;&amp;#123;&amp;#123; &amp;#125;&amp;#125;&lt;/code&gt;/&lt;code&gt;&amp;#123;% %&amp;#125;&lt;/code&gt; and &lt;a href=&#34;https://hexo.io/docs/tag-plugins&#34;&gt;tag plugins&lt;/a&gt; when enabled&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lang&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set the language to override &lt;a href=&#34;https://hexo.io/docs/internationalization#Path&#34;&gt;auto-detection&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Inherited from &lt;code&gt;_config.yml&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;布局&#34;&gt;布局&lt;/h3&gt;
&lt;p&gt;The default layout is &lt;code&gt;post&lt;/code&gt;, in accordance to the value of &lt;a href=&#34;https://hexo.io/docs/configuration#Writing&#34;&gt;&lt;code&gt;default_layout&lt;/code&gt;&lt;/a&gt; setting in &lt;code&gt;_config.yml&lt;/code&gt;. When the layout is disabled (&lt;code&gt;layout: false&lt;/code&gt;) in an article, it will not be processed with a theme. However, it will still be rendered by any available renderer: if an article is written in Markdown and a Markdown renderer (like the default &lt;a href=&#34;https://github.com/hexojs/hexo-renderer-marked&#34;&gt;hexo-renderer-marked&lt;/a&gt;) is installed, it will be rendered to HTML.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://hexo.io/docs/tag-plugins&#34;&gt;Tag plugins&lt;/a&gt; are always processed regardless of layout, unless disabled by the &lt;code&gt;disableNunjucks&lt;/code&gt; setting or &lt;a href=&#34;https://hexo.io/api/renderer#Disable-Nunjucks-tags&#34;&gt;renderer&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;分类和标签&#34;&gt;分类和标签&lt;/h3&gt;
&lt;p&gt;只有文章支持分类和标签，您可以在 Front-matter 中设置。在其他系统中，分类和标签听起来很接近，但是在 Hexo 中两者有着明显的差别：分类具有顺序性和层次性，也就是说 &lt;code&gt;Foo, Bar&lt;/code&gt; 不等于 &lt;code&gt;Bar, Foo&lt;/code&gt;；而标签没有顺序和层次。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;categories:
- Diary
tags:
- PS3
- Games&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;details class=&#34;note &#34;&gt;&lt;summary&gt;&lt;p&gt;warn 分类方法的分歧&lt;/p&gt;
&lt;/summary&gt;
  &lt;p&gt;如果您有过使用 WordPress 的经验，就很容易误解 Hexo 的分类方式。WordPress 支持对一篇文章设置多个分类，而且这些分类可以是同级的，也可以是父子分类。但是 Hexo 不支持指定多个同级分类。下面的指定方法：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;categories:
  - Diary
  - Life&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;会使分类&lt;code&gt;Life&lt;/code&gt;成为&lt;code&gt;Diary&lt;/code&gt;的子分类，而不是并列分类。因此，有必要为您的文章选择尽可能准确的分类。&lt;/p&gt;
&lt;p&gt;如果你需要为文章添加多个分类，可以尝试以下 list 中的方法。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;categories:
- [Diary, PlayStation]
- [Diary, Games]
- [Life]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;此时这篇文章同时包括三个分类： &lt;code&gt;PlayStation&lt;/code&gt; 和 &lt;code&gt;Games&lt;/code&gt; 分别都是父分类 &lt;code&gt;Diary&lt;/code&gt; 的子分类，同时 &lt;code&gt;Life&lt;/code&gt; 是一个没有子分类的分类。&lt;/p&gt;

  &lt;/details&gt;
&lt;h3 id=&#34;JSON-Front-matter&#34;&gt;JSON Front-matter&lt;/h3&gt;
&lt;p&gt;除了 YAML 外，你也可以使用 JSON 来编写 Front-matter，只要将 &lt;code&gt;---&lt;/code&gt; 代换成 &lt;code&gt;;;;&lt;/code&gt; 即可。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-json&#34; data-language=&#34;json&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;title&amp;quot;: &amp;quot;Hello World&amp;quot;,
&amp;quot;date&amp;quot;: &amp;quot;2013&amp;#x2F;7&amp;#x2F;13 20:46:25&amp;quot;
;;;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;主题Front-matter&#34;&gt;主题Front-matter&lt;/h3&gt;
&lt;p&gt;不同主题还有自己定义的&lt;code&gt;Front-matter&lt;/code&gt;，以提供不同的特殊功能&lt;/p&gt;
&lt;h4 id=&#34;Front-matter-选项详解&#34;&gt;Front-matter 选项详解&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;Front-matter&lt;/code&gt; 选项中的所有内容均为&lt;strong&gt;非必填&lt;/strong&gt;的。但我仍然建议至少填写 &lt;code&gt;title&lt;/code&gt; 和 &lt;code&gt;date&lt;/code&gt; 的值。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;配置选项&lt;/th&gt;
&lt;th&gt;默认值&lt;/th&gt;
&lt;th&gt;描述&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;title&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Markdown&lt;/code&gt; 的文件标题&lt;/td&gt;
&lt;td&gt;文章标题，强烈建议填写此选项&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;date&lt;/td&gt;
&lt;td&gt;文件创建时的日期时间&lt;/td&gt;
&lt;td&gt;发布时间，强烈建议填写此选项，且最好保证全局唯一&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;author&lt;/td&gt;
&lt;td&gt;根 &lt;code&gt;_config.yml&lt;/code&gt; 中的 &lt;code&gt;author&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;文章作者&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;img&lt;/td&gt;
&lt;td&gt;&lt;code&gt;featureImages&lt;/code&gt; 中的某个值&lt;/td&gt;
&lt;td&gt;文章特征图，推荐使用图床(腾讯云、七牛云、又拍云等)来做图片的路径.如: &lt;code&gt;http://xxx.com/xxx.jpg&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;top&lt;/td&gt;
&lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;推荐文章（文章是否置顶），如果 &lt;code&gt;top&lt;/code&gt; 值为 &lt;code&gt;true&lt;/code&gt;，则会作为首页推荐文章&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;hide&lt;/td&gt;
&lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;隐藏文章，如果&lt;code&gt;hide&lt;/code&gt;值为&lt;code&gt;true&lt;/code&gt;，则文章不会在首页显示&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cover&lt;/td&gt;
&lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;v1.0.2&lt;/code&gt;版本新增，表示该文章是否需要加入到首页轮播封面中&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;coverImg&lt;/td&gt;
&lt;td&gt;无&lt;/td&gt;
&lt;td&gt;&lt;code&gt;v1.0.2&lt;/code&gt;版本新增，表示该文章在首页轮播封面需要显示的图片路径，如果没有，则默认使用文章的特色图片&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;password&lt;/td&gt;
&lt;td&gt;无&lt;/td&gt;
&lt;td&gt;文章阅读密码，如果要对文章设置阅读验证密码的话，就可以设置 &lt;code&gt;password&lt;/code&gt; 的值，该值必须是用 &lt;code&gt;SHA256&lt;/code&gt; 加密后的密码，防止被他人识破。前提是在主题的 &lt;code&gt;config.yml&lt;/code&gt; 中激活了 &lt;code&gt;verifyPassword&lt;/code&gt; 选项&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;toc&lt;/td&gt;
&lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;是否开启 TOC，可以针对某篇文章单独关闭 TOC 的功能。前提是在主题的 &lt;code&gt;config.yml&lt;/code&gt; 中激活了 &lt;code&gt;toc&lt;/code&gt; 选项&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;mathjax&lt;/td&gt;
&lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;是否开启数学公式支持 ，本文章是否开启 &lt;code&gt;mathjax&lt;/code&gt;，且需要在主题的 &lt;code&gt;_config.yml&lt;/code&gt; 文件中也需要开启才行&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;summary&lt;/td&gt;
&lt;td&gt;无&lt;/td&gt;
&lt;td&gt;文章摘要，自定义的文章摘要内容，如果这个属性有值，文章卡片摘要就显示这段文字，否则程序会自动截取文章的部分内容作为摘要&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;categories&lt;/td&gt;
&lt;td&gt;无&lt;/td&gt;
&lt;td&gt;文章分类，本主题的分类表示宏观上大的分类，只建议一篇文章一个分类&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;tags&lt;/td&gt;
&lt;td&gt;无&lt;/td&gt;
&lt;td&gt;文章标签，一篇文章可以多个标签&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;keywords&lt;/td&gt;
&lt;td&gt;文章标题&lt;/td&gt;
&lt;td&gt;文章关键字，SEO 时需要&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;reprintPolicy&lt;/td&gt;
&lt;td&gt;cc_by&lt;/td&gt;
&lt;td&gt;文章转载规则， 可以是 cc_by, cc_by_nd, cc_by_sa, cc_by_nc, cc_by_nc_nd, cc_by_nc_sa, cc0, noreprint 或 pay 中的一个&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;注意&lt;/strong&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;如果 &lt;code&gt;img&lt;/code&gt; 属性不填写的话，文章特色图会根据文章标题的 &lt;code&gt;hashcode&lt;/code&gt; 的值取余，然后选取主题中对应的特色图片，从而达到让所有文章的特色图&lt;strong&gt;各有特色&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;date&lt;/code&gt; 的值尽量保证每篇文章是唯一的，因为本主题中 &lt;code&gt;Gitalk&lt;/code&gt; 和 &lt;code&gt;Gitment&lt;/code&gt; 识别 &lt;code&gt;id&lt;/code&gt; 是通过 &lt;code&gt;date&lt;/code&gt; 的值来作为唯一标识的。&lt;/li&gt;
&lt;li&gt;如果要对文章设置阅读验证密码的功能，不仅要在 Front-matter 中设置采用了 SHA256 加密的 password 的值，还需要在主题的 &lt;code&gt;_config.yml&lt;/code&gt; 中激活了配置。有些在线的 SHA256 加密的地址，可供你使用：&lt;a href=&#34;http://tool.oschina.net/encrypt?type=2&#34;&gt;开源中国在线工具&lt;/a&gt;、&lt;a href=&#34;http://encode.chahuo.com/&#34;&gt;chahuo&lt;/a&gt;、&lt;a href=&#34;http://tool.chinaz.com/tools/hash.aspx&#34;&gt;站长工具&lt;/a&gt;。&lt;/li&gt;
&lt;li&gt;您可以在文章md文件的 front-matter 中指定 reprintPolicy 来给单个文章配置转载规则&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;以下为文章的 &lt;code&gt;Front-matter&lt;/code&gt; 示例。&lt;/p&gt;
&lt;h4 id=&#34;最简示例&#34;&gt;最简示例&lt;/h4&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;---
title: typora-vue-theme主题介绍
date: 2018-09-07 09:25:00
---&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h2 id=&#34;使用模板&#34;&gt;使用模板&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;hexo new&lt;/code&gt;使用的模板，最好自己定制修改&lt;/p&gt;
&lt;p&gt;下面是博主使用的&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;scaffolds/post.md&lt;/code&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-ini&#34; data-language=&#34;ini&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-ini&#34;&gt;---
layout: post
title: &amp;#123;&amp;#123; title &amp;#125;&amp;#125;
date: &amp;#123;&amp;#123; date &amp;#125;&amp;#125;
author: 夜法之书
categories: [web]	# 文章分类 建议只写一个
tags: # 文章标签 文章卡片显示用
    - EncryptedTag
    - web
    - http
keywords: web, http	# seo标签
summary: 简介，这里修改
img: &amp;#x2F;medias_webp&amp;#x2F;cover&amp;#x2F;write.webp
top: false      # 首页推荐文件
hide: false
cover: false    # 首页轮播
coverImg: &amp;#x2F;medias_webp&amp;#x2F;cover&amp;#x2F;write.webp
toc: true       # 是否开启目录
tochide: false   # 默认是否隐藏目录
mathjax: false
mermaid: false
echarts: false
comment: waline
# password: false 	# SHA256 string  matery主题自带加密
reprintPolicy: cc_by_nc_sa
# password: &amp;quot;&amp;quot;    # hexo-blog-encrypt 插件需要的
wrong_pass_message: 抱歉, 这个密码看着不太对, 请再试试.
wrong_hash_message: 抱歉, 这个文章不能被校验, 不过您还是能看看解密后的内容.
---

&amp;gt; 简介
&amp;gt; 

&amp;lt;!-- more --&amp;gt;
图片

正文

参考&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h2 id=&#34;hexo内置标签&#34;&gt;hexo内置标签&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;所有hexo主题都支持的标签&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;quote&#34;&gt;quote&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% blockquote [author[, source]] [link] [source_link_title] %&amp;#125;
content
&amp;#123;% endblockquote %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;没有提供参数，则只输出普通的 blockquote&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% blockquote %&amp;#125;
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque hendrerit lacus ut purus iaculis feugiat. Sed nec tempor elit, quis aliquam neque. Curabitur sed diam eget dolor fermentum semper at eu lorem.
&amp;#123;% endblockquote %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;blockquote&gt;&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque hendrerit lacus ut purus iaculis feugiat. Sed nec tempor elit, quis aliquam neque. Curabitur sed diam eget dolor fermentum semper at eu lorem.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;引用书上的句子&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% blockquote David Levithan, Wide Awake %&amp;#125;
Do not just seek happiness for yourself. Seek happiness for all. Through kindness. Through mercy.
&amp;#123;% endblockquote %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;blockquote&gt;&lt;p&gt;Do not just seek happiness for yourself. Seek happiness for all. Through kindness. Through mercy.&lt;/p&gt;
&lt;footer&gt;&lt;strong&gt;David Levithan&lt;/strong&gt;&lt;cite&gt;Wide Awake&lt;/cite&gt;&lt;/footer&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;引用 Twitter&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% blockquote @DevDocs https:&amp;#x2F;&amp;#x2F;twitter.com&amp;#x2F;devdocs&amp;#x2F;status&amp;#x2F;356095192085962752 %&amp;#125;
NEW: DevDocs now comes with syntax highlighting. http:&amp;#x2F;&amp;#x2F;devdocs.io
&amp;#123;% endblockquote %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;blockquote&gt;&lt;p&gt;NEW: DevDocs now comes with syntax highlighting. &lt;a href=&#34;http://devdocs.io&#34;&gt;http://devdocs.io&lt;/a&gt;&lt;/p&gt;
&lt;footer&gt;&lt;strong&gt;@DevDocs&lt;/strong&gt;&lt;cite&gt;&lt;a href=&#34;https://twitter.com/devdocs/status/356095192085962752&#34;&gt;twitter.com/devdocs/status/356095192085962752&lt;/a&gt;&lt;/cite&gt;&lt;/footer&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;引用网络上的文章&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% blockquote Seth Godin http:&amp;#x2F;&amp;#x2F;sethgodin.typepad.com&amp;#x2F;seths_blog&amp;#x2F;2009&amp;#x2F;07&amp;#x2F;welcome-to-island-marketing.html Welcome to Island Marketing %&amp;#125;
Every interaction is both precious and an opportunity to delight.
&amp;#123;% endblockquote %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;blockquote&gt;&lt;p&gt;Every interaction is both precious and an opportunity to delight.&lt;/p&gt;
&lt;footer&gt;&lt;strong&gt;Seth Godin&lt;/strong&gt;&lt;cite&gt;&lt;a href=&#34;http://sethgodin.typepad.com/seths_blog/2009/07/welcome-to-island-marketing.html&#34;&gt;Welcome to Island Marketing&lt;/a&gt;&lt;/cite&gt;&lt;/footer&gt;&lt;/blockquote&gt;
&lt;h3 id=&#34;代码块&#34;&gt;代码块&lt;/h3&gt;
&lt;p&gt;在文章中插入代码。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markdown&#34; data-language=&#34;markdown&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markdown&#34;&gt;markdown支持行内代码和区块代码

&amp;#96;行代码&amp;#96;

&amp;#96;&amp;#96;&amp;#96;
代码块
&amp;#96;&amp;#96;&amp;#96;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;别名：&lt;/strong&gt; code&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% codeblock [title] [lang:language] [url] [link text] [additional options] %&amp;#125;
code snippet
&amp;#123;% endcodeblock %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;Specify additional options in &lt;code&gt;option:value&lt;/code&gt; format, e.g. &lt;code&gt;line_number:false first_line:5&lt;/code&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&#34;text-align:left&#34;&gt;Extra Options&lt;/th&gt;
&lt;th style=&#34;text-align:left&#34;&gt;Description&lt;/th&gt;
&lt;th style=&#34;text-align:left&#34;&gt;Default&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;line_number&lt;/code&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Show line number&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;line_threshold&lt;/code&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Only show line numbers as long as the numbers of lines of the code block exceed such threshold.&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;highlight&lt;/code&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Enable code highlighting&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;first_line&lt;/code&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Specify the first line number&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;mark&lt;/code&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Line highlight specific line(s), each value separated by a comma. Specify number range using a dash Example: &lt;code&gt;mark:1,4-7,10&lt;/code&gt; will mark line 1, 4 to 7 and 10.&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;wrap&lt;/code&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;Wrap the code block in &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/HTML/Element/table&#34;&gt;``&lt;/a&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;样例&#34;&gt;样例&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;普通的代码块&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% codeblock %&amp;#125;
alert(&amp;#39;Hello World!&amp;#39;);
&amp;#123;% endcodeblock %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;alert(&amp;#39;Hello World!&amp;#39;);&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;指定语言&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% codeblock lang:objc %&amp;#125;
[rectangle setX: 10 y: 10 width: 20 height: 20];
&amp;#123;% endcodeblock %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-objectivec&#34; data-language=&#34;objectivec&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-objectivec&#34;&gt;[rectangle setX: 10 y: 10 width: 20 height: 20];&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;附加说明&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% codeblock Array.map %&amp;#125;
array.map(callback[, thisArg])
&amp;#123;% endcodeblock %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;div class=&#34;caption&#34;&gt;&lt;span&gt;Array.map&lt;/span&gt;&lt;/div&gt;&lt;code class=&#34;language-none&#34;&gt;array.map(callback[, thisArg])&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;附加说明和网址&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% codeblock _.compact http:&amp;#x2F;&amp;#x2F;underscorejs.org&amp;#x2F;#compact Underscore.js %&amp;#125;
_.compact([0, 1, false, 2, &amp;#39;&amp;#39;, 3]);
&amp;#x3D;&amp;gt; [1, 2, 3]
&amp;#123;% endcodeblock %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;div class=&#34;caption&#34;&gt;&lt;span&gt;_.compact&lt;/span&gt;&lt;a href=&#34;http://underscorejs.org/#compact&#34;&gt;Underscore.js&lt;/a&gt;&lt;/div&gt;&lt;code class=&#34;language-none&#34;&gt;_.compact([0, 1, false, 2, &amp;#39;&amp;#39;, 3]);
&amp;#x3D;&amp;gt; [1, 2, 3]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;Include-Code&#34;&gt;Include Code&lt;/h3&gt;
&lt;p&gt;插入 &lt;code&gt;source/downloads/code&lt;/code&gt; 文件夹内的代码文件。&lt;code&gt;source/downloads/code&lt;/code&gt; 不是固定的，取决于你在配置文件中 &lt;code&gt;code_dir&lt;/code&gt; 的配置。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% include_code [title] [lang:language] [from:line] [to:line] path&amp;#x2F;to&amp;#x2F;file %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;样例-2&#34;&gt;样例&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;嵌入 test.js 文件全文&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% include_code lang:javascript test.js %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;只嵌入第 3 行&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% include_code lang:javascript from:3 to:3 test.js %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;嵌入第 5 行至第 8 行&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% include_code lang:javascript from:5 to:8 test.js %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;嵌入第 5 行至文件结束&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% include_code lang:javascript from:5 test.js %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;嵌入第 1 行至第 8 行&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% include_code lang:javascript to:8 test.js %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;Pull-Quote&#34;&gt;Pull Quote&lt;/h3&gt;
&lt;p&gt;在文章中插入 Pull quote。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% pullquote [class] %&amp;#125;
content
&amp;#123;% endpullquote %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;jsFiddle&#34;&gt;jsFiddle&lt;/h3&gt;
&lt;p&gt;在文章中嵌入 jsFiddle。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% jsfiddle shorttag [tabs] [skin] [width] [height] %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;Gist&#34;&gt;Gist&lt;/h3&gt;
&lt;p&gt;在文章中嵌入 Gist。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% gist gist_id [filename] %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;iframe&#34;&gt;iframe&lt;/h3&gt;
&lt;p&gt;在文章中插入 iframe。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% iframe url [width] [height] %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;Image&#34;&gt;Image&lt;/h3&gt;
&lt;p&gt;在文章中插入指定大小的图片。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% img [class names] &amp;#x2F;path&amp;#x2F;to&amp;#x2F;image [width] [height] &amp;#39;&amp;quot;title text&amp;quot; &amp;quot;alt text&amp;quot;&amp;#39; %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;Link&#34;&gt;Link&lt;/h3&gt;
&lt;p&gt;在文章中插入链接，并自动给外部链接添加 &lt;code&gt;target=&amp;quot;_blank&amp;quot;&lt;/code&gt; 属性。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% link text url [external] [title] %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;Youtube&#34;&gt;Youtube&lt;/h3&gt;
&lt;p&gt;在文章中插入 Youtube 视频。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% youtube video_id [type] [cookie] %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h4 id=&#34;Examples&#34;&gt;Examples&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;视频&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% youtube lJIrF4YjHfQ %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;播放列表&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% youtube PL9hW1uS6HUfscJ9DHkOSoOX45MjXduUxo &amp;#39;playlist&amp;#39; %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;隐私模式&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;禁止 YouTube cookie&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% youtube lJIrF4YjHfQ false %&amp;#125;
&amp;#123;% youtube PL9hW1uS6HUfscJ9DHkOSoOX45MjXduUxo &amp;#39;playlist&amp;#39; false %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;Vimeo&#34;&gt;Vimeo&lt;/h3&gt;
&lt;p&gt;在文章中插入 Vimeo 视频。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% vimeo video_id %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;Raw&#34;&gt;Raw&lt;/h3&gt;
&lt;p&gt;如果您想在文章中插入 Swig 标签，可以尝试使用 Raw 标签，以免发生解析异常。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% raw %&amp;#125;
content
&amp;#123;% endraw %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;引用文章&#34;&gt;引用文章&lt;/h3&gt;
&lt;p&gt;引用其他文章的链接。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% post_path filename %&amp;#125;
&amp;#123;% post_link filename [title] [escape] %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;在使用此标签时可以忽略文章文件所在的路径或者文章的永久链接信息、如语言、日期。&lt;/p&gt;
&lt;p&gt;例如，在文章中使用 &lt;code&gt;&amp;#123;% post_link how-to-bake-a-cake %&amp;#125;&lt;/code&gt; 时，只需有一个名为 &lt;code&gt;how-to-bake-a-cake.md&lt;/code&gt; 的文章文件即可。即使这个文件位于站点文件夹的 &lt;code&gt;source/posts/2015-02-my-family-holiday&lt;/code&gt; 目录下、或者文章的永久链接是 &lt;code&gt;2018/en/how-to-bake-a-cake&lt;/code&gt;，都没有影响。&lt;/p&gt;
&lt;p&gt;默认链接文字是文章的标题，你也可以自定义要显示的文本。&lt;/p&gt;
&lt;p&gt;默认对文章的标题和自定义标题里的特殊字符进行转义。可以使用&lt;code&gt;escape&lt;/code&gt;选项，禁止对特殊字符进行转义。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;链接使用文章的标题&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% post_link hexo-3-8-released %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;链接使用自定义文字&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% post_link hexo-3-8-released &amp;#39;通往文章的链接&amp;#39; %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;对标题的特殊字符进行转义&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% post_link hexo-4-released &amp;#39;How to use &amp;lt;b&amp;gt; tag in title&amp;#39; %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;禁止对标题的特殊字符进行转义&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% post_link hexo-4-released &amp;#39;&amp;lt;b&amp;gt;bold&amp;lt;&amp;#x2F;b&amp;gt; custom title&amp;#39; false %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h2 id=&#34;引用资源&#34;&gt;引用资源&lt;/h2&gt;
&lt;p&gt;引用文章的资源。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markdown&#34; data-language=&#34;markdown&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markdown&#34;&gt;&amp;#123;% asset_path filename %&amp;#125;
&amp;#123;% asset_img [class names] slug [width] [height] [title text [alt text]] %&amp;#125;
&amp;#123;% asset_link filename [title] [escape] %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;资源&lt;code&gt;（Asset）&lt;/code&gt;代表 &lt;code&gt;source&lt;/code&gt; 文件夹中除了文章以外的所有文件，例如图片、CSS、JS 文件等。比方说，如果你的Hexo项目中只有少量图片，那最简单的方法就是将它们放在 &lt;code&gt;source/images&lt;/code&gt; 文件夹中。然后通过类似于 &lt;code&gt;![](/images/image.jpg)&lt;/code&gt; 的方法访问它们。&lt;/p&gt;
&lt;p&gt;对于那些想要更有规律地提供图片和其他资源以及想要将他们的资源分布在各个文章上的人来说，Hexo也提供了更组织化的方式来管理资源。这个稍微有些复杂但是管理资源非常方便的功能可以通过将 &lt;code&gt;config.yml&lt;/code&gt; 文件中的 &lt;code&gt;post_asset_folder&lt;/code&gt; 选项设为 &lt;code&gt;true&lt;/code&gt; 来打开。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;_config.ymlpost_asset_folder: true&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;当资源文件管理功能打开后，Hexo将会在你每一次通过 &lt;code&gt;hexo new [layout] &amp;lt;title&amp;gt;&lt;/code&gt; 命令创建新文章时自动创建一个文件夹。这个资源文件夹将会有与这个文章文件一样的名字。将所有与你的文章有关的资源放在这个关联文件夹中之后，你可以通过相对路径来引用它们，这样你就得到了一个更简单而且方便得多的工作流。&lt;/p&gt;
&lt;h3 id=&#34;相对路径引用的标签插件&#34;&gt;相对路径引用的标签插件&lt;/h3&gt;
&lt;p&gt;通过常规的 markdown 语法和相对路径来引用图片和其它资源可能会导致它们在存档页或者主页上显示不正确。在Hexo 2时代，社区创建了很多插件来解决这个问题。但是，随着Hexo 3 的发布，许多新的&lt;a href=&#34;https://hexo.io/docs/tag-plugins#Include-Assets&#34;&gt;标签插件&lt;/a&gt;被加入到了核心代码中。这使得你可以更简单地在文章中引用你的资源。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% asset_path slug %&amp;#125;
&amp;#123;% asset_img slug [title] %&amp;#125;
&amp;#123;% asset_link slug [title] %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;比如说：当你打开文章资源文件夹功能后，你把一个 &lt;code&gt;example.jpg&lt;/code&gt; 图片放在了你的资源文件夹中，如果通过使用相对路径的常规 markdown 语法 &lt;code&gt;![](example.jpg)&lt;/code&gt; ，它将 &lt;em&gt;不会&lt;/em&gt; 出现在首页上。（但是它会在文章中按你期待的方式工作）&lt;/p&gt;
&lt;p&gt;正确的引用图片方式是使用下列的标签插件而不是 markdown ：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;#123;% asset_img example.jpg This is an example image %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;通过这种方式，图片将会同时出现在文章和主页以及归档页中。&lt;/p&gt;
&lt;h3 id=&#34;Embedding-an-image-using-markdown&#34;&gt;Embedding an image using markdown&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/hexojs/hexo-renderer-marked&#34;&gt;hexo-renderer-marked&lt;/a&gt; 3.1.0 introduced a new option that allows you to embed an image in markdown without using &lt;code&gt;asset_img&lt;/code&gt; tag plugin.&lt;/p&gt;
&lt;p&gt;To enable:&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;_config.ymlpost_asset_folder: true
marked:
  prependRoot: true
  postAsset: true&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;Once enabled, an asset image will be automatically resolved to its corresponding post’s path. For example, “image.jpg” is located at “/2020/01/02/foo/image.jpg”, meaning it is an asset image of “/2020/01/02/foo/“ post, &lt;code&gt;![](image.jpg)&lt;/code&gt; will be rendered as &lt;code&gt;&amp;lt;img src=&amp;quot;/2020/01/02/foo/image.jpg&amp;quot;&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;Embed-image&#34;&gt;Embed image&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;hexo-renderer-marked 3.1.0+ can (optionally) resolves the post’s path of an image automatically, refer to &lt;a href=&#34;https://hexo.io/docs/asset-folders#Embedding-an-image-using-markdown&#34;&gt;this section&lt;/a&gt; on how to enable it.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;“foo.jpg” is located at &lt;code&gt;http://example.com/2020/01/02/hello/foo.jpg&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Default (no option)&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markdown&#34; data-language=&#34;markdown&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markdown&#34;&gt;&amp;#123;% asset_img foo.jpg %&amp;#125;
&amp;lt;img src&amp;#x3D;&amp;quot;&amp;#x2F;2020&amp;#x2F;01&amp;#x2F;02&amp;#x2F;hello&amp;#x2F;foo.jpg&amp;quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;Custom class&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markdown&#34; data-language=&#34;markdown&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markdown&#34;&gt;&amp;#123;% asset_img post-image foo.jpg %&amp;#125;
&amp;lt;img src&amp;#x3D;&amp;quot;&amp;#x2F;2020&amp;#x2F;01&amp;#x2F;02&amp;#x2F;hello&amp;#x2F;foo.jpg&amp;quot; class&amp;#x3D;&amp;quot;post-image&amp;quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;Display size&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markdown&#34; data-language=&#34;markdown&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markdown&#34;&gt;&amp;#123;% asset_img foo.jpg 500 400 %&amp;#125;
&amp;lt;img src&amp;#x3D;&amp;quot;&amp;#x2F;2020&amp;#x2F;01&amp;#x2F;02&amp;#x2F;hello&amp;#x2F;foo.jpg&amp;quot; width&amp;#x3D;&amp;quot;500&amp;quot; height&amp;#x3D;&amp;quot;400&amp;quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;Title &amp;amp; Alt&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markdown&#34; data-language=&#34;markdown&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markdown&#34;&gt;&amp;#123;% asset_img logo.svg &amp;quot;lorem ipsum&amp;#39;dolor&amp;#39;&amp;quot; %&amp;#125;
&amp;lt;img src&amp;#x3D;&amp;quot;&amp;#x2F;2020&amp;#x2F;01&amp;#x2F;02&amp;#x2F;hello&amp;#x2F;foo.jpg&amp;quot; title&amp;#x3D;&amp;quot;lorem ipsum&amp;quot; alt&amp;#x3D;&amp;quot;dolor&amp;quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;文章摘要和截断&#34;&gt;文章摘要和截断&lt;/h3&gt;
&lt;p&gt;在文章中使用 &lt;code&gt;&amp;lt;!-- more --&amp;gt;&lt;/code&gt;，那么 &lt;code&gt;&amp;lt;!-- more --&amp;gt;&lt;/code&gt; 之前的文字将会被视为摘要。首页中将只出现这部分文字，同时这部分文字也会出现在正文之中。&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markdown&#34; data-language=&#34;markdown&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markdown&#34;&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
&amp;lt;!-- more --&amp;gt;
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;首页中将只会出现&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markdown&#34; data-language=&#34;markdown&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markdown&#34;&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;正文中则会出现&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markdown&#34; data-language=&#34;markdown&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markdown&#34;&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;注意，摘要可能会被 Front Matter 中的 &lt;code&gt;excerpt&lt;/code&gt; 覆盖。&lt;/p&gt;
&lt;h2 id=&#34;引用数据&#34;&gt;引用数据&lt;/h2&gt;
&lt;p&gt;有时您可能需要在主题中使用某些资料，而这些资料并不在文章内，并且是需要重复使用的，那么您可以考虑使用 Hexo 3.0 新增的「数据文件」功能。此功能会载入 &lt;code&gt;source/_data&lt;/code&gt; 内的 YAML 或 JSON 文件，如此一来您便能在网站中复用这些文件了。&lt;/p&gt;
&lt;p&gt;举例来说，在 &lt;code&gt;source/_data&lt;/code&gt; 文件夹中新建 &lt;code&gt;menu.yml&lt;/code&gt; 文件：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;Home: &amp;#x2F;
Gallery: &amp;#x2F;gallery&amp;#x2F;
Archives: &amp;#x2F;archives&amp;#x2F;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;您就能在模板中使用这些资料：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markup&#34; data-language=&#34;markup&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markup&#34;&gt;&amp;lt;% for (var link in site.data.menu) &amp;#123; %&amp;gt;
  &amp;lt;a href&amp;#x3D;&amp;quot;&amp;lt;%&amp;#x3D; site.data.menu[link] %&amp;gt;&amp;quot;&amp;gt; &amp;lt;%&amp;#x3D; link %&amp;gt; &amp;lt;&amp;#x2F;a&amp;gt;
&amp;lt;% &amp;#125; %&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;渲染结果如下 :&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markup&#34; data-language=&#34;markup&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markup&#34;&gt;&amp;lt;a href&amp;#x3D;&amp;quot;&amp;#x2F;&amp;quot;&amp;gt; Home &amp;lt;&amp;#x2F;a&amp;gt;
&amp;lt;a href&amp;#x3D;&amp;quot;&amp;#x2F;gallery&amp;#x2F;&amp;quot;&amp;gt; Gallery &amp;lt;&amp;#x2F;a&amp;gt;
&amp;lt;a href&amp;#x3D;&amp;quot;&amp;#x2F;archives&amp;#x2F;&amp;quot;&amp;gt; Archives &amp;lt;&amp;#x2F;a&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h2 id=&#34;Markdown写作&#34;&gt;Markdown写作&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;下文着重介绍了MarkDown语法&lt;/p&gt;
&lt;/blockquote&gt;

    &lt;div class=&#34;vkr-url-wrapper&#34;&gt;
        &lt;a href=&#34;/posts/92d347d6/&#34;&gt;&lt;img class=&#34;avatar&#34; src=&#34;/medias_webp/cover/joplin.webp&#34;&gt;&lt;/a&gt;
        &lt;div class=&#34;desc-wrapper&#34;&gt;
            &lt;a href=&#34;/posts/92d347d6/&#34;&gt;Joplin 插件以及其Markdown语法。All in One!&lt;/a&gt;
            &lt;hr /&gt;
            &lt;div class=&#34;desc&#34;&gt;Joplin 实用插件介绍，以及Markdown语法说明。All in One! 强烈推荐，绝对是替代各种商业等笔记工具的第一选择。&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    
&lt;h2 id=&#34;中文技术文档的写作规范&#34;&gt;中文技术文档的写作规范&lt;/h2&gt;
&lt;iframe src=&#34;/docs/tech-write-note/&#34; width=&#34;100%&#34; height=&#34;500&#34; name=&#34;topFrame&#34; scrolling=&#34;yes&#34;  noresize=&#34;noresize&#34; frameborder=&#34;0&#34; id=&#34;topFrame&#34; loading=&#34;lazy&#34; &gt;&lt;/iframe&gt;
&lt;p&gt;直接访问 &lt;a href=&#34;/docs/tech-write-note/&#34;&gt;中文技术文档的写作规范&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;hexo插件强化写作&#34;&gt;hexo插件强化写作&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;下文介绍了一些Markdown语法，和一些常用的有用的&lt;code&gt;Hexo&lt;/code&gt;插件&lt;/p&gt;
&lt;/blockquote&gt;

    &lt;div class=&#34;vkr-url-wrapper&#34;&gt;
        &lt;a href=&#34;/posts/cf0f47fd/&#34;&gt;&lt;img class=&#34;avatar&#34; src=&#34;/medias_webp/cover/write.webp&#34;&gt;&lt;/a&gt;
        &lt;div class=&#34;desc-wrapper&#34;&gt;
            &lt;a href=&#34;/posts/cf0f47fd/&#34;&gt;Hexo Markdown以及各种插件功能测试&lt;/a&gt;
            &lt;hr /&gt;
            &lt;div class=&#34;desc&#34;&gt;hexo matery hexo博客的一些功能测试，新插件的靶场。数学公式，Mermaid,plantuml图表绘制，音乐视频插入，bilibilid、豆瓣卡片等等。&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    
&lt;h2 id=&#34;主题插件&#34;&gt;主题插件&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;很多主题内置很多tag语法，可以大大美化最终呈现效果&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;使用fontawesome图标&#34;&gt;使用&lt;code&gt;fontawesome&lt;/code&gt;图标&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;醒目度提升一大个等级！&lt;/p&gt;
&lt;p&gt;更多图标，这里查找 &lt;a href=&#34;https://fontawesome.com/v6/search&#34;&gt;fontawesome&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i class=&#34;fas fa-pencil-alt&#34;&gt;&lt;/i&gt; 支持Markdown&lt;br&gt;
&lt;i&gt;Hexo 支持 GitHub Flavored Markdown 的所有功能, 甚至可以整合 Octopress 的大多数插件. &lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i class=&#34;fas fa-cloud-upload-alt&#34;&gt;&lt;/i&gt; 一键部署&lt;i&gt;只需一条指令即可部署到Github Pages, 或其他网站&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i class=&#34;fas fa-cog&#34;&gt;&lt;/i&gt; 丰富的插件&lt;br&gt;
&lt;i&gt;Hexo 拥有强大的插件系统, 安装插件可以让 Hexo 支持 Jade, CoffeeScript. &lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markdown&#34; data-language=&#34;markdown&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markdown&#34;&gt;- &amp;lt;i class&amp;#x3D;&amp;quot;fas fa-pencil-alt&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;i&amp;gt; 支持Markdown
&amp;lt;i&amp;gt;Hexo 支持 GitHub Flavored Markdown 的所有功能, 甚至可以整合 Octopress 的大多数插件. &amp;lt;&amp;#x2F;i&amp;gt;
- &amp;lt;i class&amp;#x3D;&amp;quot;fas fa-cloud-upload-alt&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;i&amp;gt; 一键部署
&amp;lt;i&amp;gt;只需一条指令即可部署到Github Pages, 或其他网站&amp;lt;&amp;#x2F;i&amp;gt;
- &amp;lt;i class&amp;#x3D;&amp;quot;fas fa-cog&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;i&amp;gt; 丰富的插件
&amp;lt;i&amp;gt;Hexo 拥有强大的插件系统, 安装插件可以让 Hexo 支持 Jade, CoffeeScript. &amp;lt;&amp;#x2F;i&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;i class=&#34;fab fa-github&#34;&gt;&lt;/i&gt;&lt;br&gt;
&lt;i class=&#34;fab fa-github fa-lg&#34;&gt;&lt;/i&gt;&lt;br&gt;
&lt;i class=&#34;fab fa-github fa-2x&#34;&gt;&lt;/i&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markdown&#34; data-language=&#34;markdown&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markdown&#34;&gt;&amp;#96;&amp;lt;i class&amp;#x3D;&amp;quot;fab fa-github&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;i&amp;gt;&amp;#96;
&amp;#96;&amp;lt;i class&amp;#x3D;&amp;quot;fab fa-github fa-lg&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;i&amp;gt;&amp;#96;
&amp;#96;&amp;lt;i class&amp;#x3D;&amp;quot;fab fa-github fa-2x&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;i&amp;gt;&amp;#96;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h2 id=&#34;使用颜文字&#34;&gt;使用颜文字&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;颜文字算是中文圈特有的文化符号了  &lt;strong&gt;(｡◕‿◕｡)ﾉ♥&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markdown&#34; data-language=&#34;markdown&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markdown&#34;&gt;击掌&amp;#x2F;打招呼 ╭(●｀∀´●)╯╰(●’◡’●)╮ (●’◡’●)ﾉ ヾ(*´▽‘*)ﾉ

手拉手 ╭(′▽&amp;#96;)╭(′▽&amp;#96;)╯

好困呀（揉眼睛 ( ‘-ωก̀ )

已阅留爪  (ฅ´ω&amp;#96;ฅ)

勾手指可萌啦 ( ｡ớ ₃ờ)ھ

开心  ♪（＾∀＾●）ﾉｼ （●´∀｀）♪

爱你么么哒 ( ˘ ³˘)♥ ( ˘ ³˘) •́ε•̀)ฅ (๑•́ ₃•̀๑٥) (๑ºั ³ ˘๑)♥ (๑ơ ₃ ơ)ﻌﻌﻌ♥ (ㆀ˘･з･˘)

ε٩(๑&amp;gt; ₃ &amp;lt;)۶з

爱心眼 ( •́ .̫ •̀ ) (´・ω・&amp;#96;) (●′ω&amp;#96;●) (´,,•ω•,,‘) (´；ω；‘) (´・н・‘) (›´ω&amp;#96;‹ ) (๑•ั็ω•็ั๑)( ˘•ω•˘ ) (●´ϖ&amp;#96;●) ( •̀∀•́ )

疑问  ◔ ‸◔？ （⊙.⊙）

逃跑 ε&amp;#x3D;ε&amp;#x3D;ε&amp;#x3D;ε&amp;#x3D;ε&amp;#x3D;ε&amp;#x3D;┌(;￣◇￣)┘

撒花 ｡:.ﾟヽ(｡◕‿◕｡)ﾉﾟ.:｡+ﾟ

瞥眼  (¬､¬) (￢_￢)

盯  ≖‿≖✧  o‿≖✧ (๑•̀ㅂ•́)و✧

中老年人&amp;#x2F;脸红系列  ( ˙灬˙ ) (´•灬•‘) ε٩ (๑&amp;gt; 灬 &amp;lt;)۶з ( ˘•灬•˘ )(´-灬-‘) (๑´灬&amp;#96;๑) ٩(๑&amp;#96;灬´๑)۶ (•̅灬•̅ ) (๑ơ 灬 ơ) (ง •̀灬•́)ง

加油！ (ง •̀_•́)ง (*•̀ㅂ•́)و

无奈  ╮(๑•́ ₃•̀๑)╭

猫爪 ฅ’ω’ฅ ฅ(๑˙o˙๑)ฅ ٩(๛˘³˘)۶♥ ฅ(๑*д*๑)ฅ ฅ(๑˙o˙๑)ฅ ʕ•̀ω•́ʔ✧ (๑•̀ㅁ•́ฅ)ฅʕ•̫͡•ʔฅ ʕ•͡-•ʔ

伸懒腰  ٩(๑´0&amp;#96;๑)۶

害羞  （&amp;#x2F;&amp;#x2F;▽&amp;#x2F;&amp;#x2F;）

委屈 (,,•́ . •̀,,) (๑•́ ₃•̀๑) (๑•́ ₃ •̀),,Ծ‸Ծ,,

着急&amp;#x2F;救命系列   ﾍ(;´Д｀ﾍ) (&amp;#x2F;ﾟДﾟ)&amp;#x2F; (*゜ロ゜)ノ Σ( ￣д￣；) ！！！ Σ(っ °Д °;)っ ( •̀д•́) Σ( ° △ °|||)︴ &amp;#x3D;´Å‘&amp;#x3D;

各种哭法 π__π  T.T  ε(┬┬＿┬┬)3  ╥﹏╥  ┬＿┬  (╥╯^╰╥)

冒汗皱眉系列 (;¬_¬) ( ´◔ ‸◔&amp;#96;) (눈_눈) ( ∙̆ .̯ ∙̆ ) (;￢д￢) (“▔□▔)

呆子  (•ิ_•ิ)

认真脸  (..•˘_˘•..)

喂喂 ((٩(&amp;#x2F;&amp;#x2F;̀Д&amp;#x2F;́&amp;#x2F;)۶))

盖被子  (:3[▓▓] (:3[▓▓▓▓▓▓▓▓▓] (¦3[▓▓]

爬地 _(:з」∠)_  _(:qゝ∠)_  _(・ω・｣ ∠)_

嘿嘿嘿  ๑乛◡乛๑ (●´∀｀●)

闭眼满足  (｡￫‿￩｡) （๑￫‿ฺ￩๑）（&amp;#x3D;ˇωˇ&amp;#x3D;）（⺻▽⺻ ）&amp;lt;(￣︶￣)&amp;gt;(•‾̑⌣‾̑•)✧˖° (๑˘ ˘๑)  ♥(｡￫v￩｡)♥

哇呀 &amp;gt;ㅂ&amp;lt;  (๑&amp;gt;m&amp;lt;๑)  o(&amp;gt;ω&amp;lt;)o  ≥▽≤

噜啦啦   (づ￣ 3￣)づ ( ˙ε ˙ ) 乛 з乛 (￣ε￣) (｡◕ฺˇε ˇ◕ฺ｡）(๑¯ิε ¯ิ๑) ( ´´ิ∀´ )

流口水  ԅ(¯﹃¯ԅ) （¯﹃¯）

好呲  (๑´ڡ&amp;#96;๑) (๑＞ڡ＜)☆

生气  (｀д′) (￣^￣) 哼！ &amp;lt;(｀^′)&amp;gt;

瞪眼  ٩͡[๏̯͡๏]

掀桌系列

无表情掀桌 ( ╯-_-)╯┴—┴ (ノ—_—)ノ~┴————┴ （╯－＿－）╯╧╧ （ノ*-_-*)ノ┴—┴ 

娇蛮掀桌 (&amp;#x2F;&amp;#x3D; _ &amp;#x3D;)&amp;#x2F;~┴┴

无语掀 （╯#-_-)╯╧═╧ ( ╯#-_-)╯┴—┴

大力掀 (╯#-_-)╯~~~~~~~~~~~~~~~~~╧═╧ 

抓狂掀桌 (╯￣Д￣)╯╘═╛ (ノ&amp;#x3D;Д&amp;#x3D;)ノ┻━┻ （╯#-皿-)╯~~╧═╧ (╯’ – ‘)╯︵ ┻━┻

再他妈的掀一次 (╯°Д°)╯︵ ┻━┻ (｀□′)╯┴┴ ┴—┴ ╰(｀□′╰)

泪奔掀桌 ((ノ*T_T*)ノ┴—┴ (┙&amp;gt;∧&amp;lt;)┙へ┻┻

摆好 （\#-_-)\┯━┯ 桌放好 ┬─┬ ノ( ‘ – ‘ノ) 摆好摆好

其它 ╭(￣▽￣)╯╧═╧ 单手掀 ╧═╧(-_-)╧═╧ 桌子飞人

卖萌

(•‾̑⌣‾̑•)✧˖°(๑¯ิε ¯ิ๑) (๑•́ ₃ •̀๑) ( ∙̆ .̯ ∙̆ ) (๑˘ ˘๑) (●′ω&amp;#96;●) ︶ε╰✿ ✿◡‿◡ (●･̆⍛･̆●)

♫ ♫♬♪♫ ヾ(。◕ฺ∀◕ฺ)ノ♫♬ 。ﾟ+.ﾟヽ(●´ω｀●)ﾉ。 （●´3｀）~♪

（●&amp;gt;∀&amp;lt;●）ィェ━ィ★彡 ♥♥(o￫ܫ￩o)♫ (〃＾∇＾)ぇ∧∧∧っ

*゜✲ฺ(✿◕ฺ ∀◕ฺ)ฺノ†゜* （●´д｀）.。o

ヽ(.◕ฺˇд ˇ◕ฺ;)ﾉ

((٩(&amp;#x2F;&amp;#x2F;̀Д&amp;#x2F;́&amp;#x2F;)۶)) (´；ω；&amp;#96;) ( &amp;#96;)3′)  v(ﾟｰﾟ) &amp;#x3D;≡Σ((( つ•̀ω•́)つ

(；′⌒&amp;#96;) ╰(*´︶&amp;#96;*)╯ ( ´´ิ∀´ิ&amp;#96; ) (´∩｀。) ( ื▿ ื) (｡ŏ_ŏ) ( •ิ _ •ิ ) ヽ(*΄◞ิ౪◟ิ‵ *)ﾉ ( ˘ ³˘)

(๑&amp;gt;m&amp;lt;๑) (; ´_ゝ&amp;#96;) (*ˉ﹃ˉ) (◍’౪&amp;#96;◍)ﾉﾞ (｡◝‿◜｡) (ಠ .̫.̫ ಠ) (´◞⊖◟&amp;#96;) (。≖ˇェˇ≖｡) ℰ⋆‿⋆ℰ

(ಠ .̫.̫ ಠ) p(´⌒｀｡q) ┗(´D&amp;#96;* (´D&amp;#96;*(´D&amp;#96;*)┛ &amp;lt;(▰˘◡˘▰)&amp;gt; (・ω&amp;lt; )★ (*ﾟｪﾟ*) ✧ (≖ ‿ ≖)✧

(◕ܫ◕) (｀◕‸◕´+) (▼ _ ▼) ( ◉ืൠ◉ื) ㄟ(◑‿◐ )ㄏ (●’◡’●)ﾉ♥ (｡◕ˇ∀ˇ◕） ~Ⴚ(●ტ●)Ⴢ~

⊙.⊙ ( ◔ ڼ ◔ ) ( ´◔ ‸◔&amp;#96;) (☍﹏⁰) (♥◠‿◠)ﾉ ✪ω✪ ʅ(‾◡◝)ʃ (๑°3°๑) ლ(╹◡╹ლ )

இwஇ (๑꒪◞౪◟꒪๑) (๑◕ܫ￩๑)b (*☉౪⊙*)　ヾ(o゜_,゜o)ノ ლↀѡↀლ (｡▰´◞◟｀▰｡)

( ͡° ͜ʖ ͡°) 　( ͡° ͜ʖ ͡°)✧ (*゜ロ゜)ノ 　 ( ´･∀･｀) °(°ˊДˋ°) ° (つ﹏⊂) –\(˙&amp;lt;&amp;gt;˙)&amp;#x2F;-

心情好 萌 满足

ლ(´ڡ&amp;#96;ლ) (*≧m≦*) (*･ω･) ヾ(｡･ω･｡) (&amp;#x3D;ﾟωﾟ)ﾉ (○’ω’○) (´・ω・&amp;#96;) (。-&amp;#96;ω´-) (。⌒∇⌒)。(ﾉ≧∀≦)ﾉ

(￣ω￣;) (◡‿◡✿) (◕‿◕✿) ♪(^∇^*) o(^▽^)o (●´▽｀●) (&amp;#x3D;￣ω￣&amp;#x3D;) o(*￣▽￣*)ブ (￣ε￣*) ( o｀ω′)

o((&amp;gt;ω&amp;lt; ))o o(〃’▽’〃)o (＠゜▽゜) (*＾-゜)v ＼( ^▽^ )／ (｡・&amp;#96;ω´･) o(*&amp;#x2F;&amp;#x2F;&amp;#x2F;&amp;#x2F;▽&amp;#x2F;&amp;#x2F;&amp;#x2F;&amp;#x2F;*)q (・ω&amp;lt; )★

(*〞艸〝) (◍’౪&amp;#96;◍)ﾉﾞ(●’◡’●)ﾉ♥ヾ(o゜_,゜o)ノ (๑＞ڡ＜)☆ (・∀・(・∀・(・∀・*) ლ(･ิω･ิლ) (๑°3°๑)

(˘❥˘) ︶ε╰✿ ƪ(•̃͡ε•̃͡)∫ʃ (*^︹^*)♡ ヽ(ｏﾟ∀ﾟｏ)ﾉ •́ε•̀~ ˇ▽ˇ （´◔౪◔）٩(๛ ˘ ³˘)۶ (๑•́ ₃ •̀๑) (*¯︶¯*) (●′ω&amp;#96;●)

(U◕‿‿◕U）（*&amp;#x2F;ω＼*）(´இωஇ｀)゜(´∀｀)♡ (ღ˘⌣˘ღ) ヽ(○´∀&amp;#96;)ﾉ♪ (*´∀&amp;#96;*) (⁎⚈᷀᷁ᴗ⚈᷀᷁⁎) ( ´･◡･&amp;#96; )

心情不好

(→_←) (︶︹︺) （ﾉ´д｀）(･_-｡ ) ˋ(′～‵”)ˊ(　TロT)σ ( T﹏T ) (; ´_ゝ&amp;#96;) (,,Ծ‸Ծ,,) (ಥ_ಥ) ( ꈨຶ ˙̫̮ ꈨຶ )

(;´༎ຶД༎ຶ&amp;#96;) (⌇ຶД⌇ຶ) (＞人＜) (°̥̥̥̥̥̥̥̥-°̥̥̥̥̥̥̥̥ ) థ౪థ இдஇ p(´⌒｀｡q) ( ´•︵•&amp;#96; ) º·(˚ ˃̣̣̥᷄⌓˂̣̣̥᷅ )‧º·˚ (´-ι_-｀) (┳◇┳) ( &amp;gt;﹏&amp;lt;。)～ ( ̤இॕ⌓இॕ ̤) °(ಗдಗ。)° (´இ皿இ｀)゜(´；ω；｀) ｡：ﾟ(｡ﾉω＼｡)ﾟ･｡(;*△*;) ( ཀ͝ ∧ ཀ͝ )

呆呆的 无奈和汗颜

〜(￣△￣〜) (〜￣△￣)〜 (*｡_｡) (；￣Д￣）(´Д｀) (*￣m￣) （￣～￣;） (￣ェ￣;) (￣◇￣;)

┐(─__─)┌ (*´Д&amp;#96;) （＝＿＝）(￣ー￣*||| (-_-メ) (￣ ‘i ￣;) (￣ε(#￣) ( ¯▽¯；) (*ﾟｪﾟ*) (。≖ˇェˇ≖｡)

(◒｡◒) ( ᖛ ̫ ᖛ )ʃ) ヽ(´o｀；（；￣ェ￣）( ´Д&amp;#96;)y━･~~

搞怪颜文字

ヘ(￣ω￣ヘ) ♪(┌・。・)┌ (－ｏ⌒) ☆～（ゝ。∂）╮(╯▽╰)╭ (￣︶￣)ψ (ˉ﹃ˉ) ೭(˵¯̴͒ꇴ¯̴͒˵)౨

_(:з」∠)_ ( ◉ืൠ◉ื) 罒ω罒 (☝ ՞ਊ ՞)☝⃔⌄ ⃔ ─&amp;#x3D;≡Σ((( つ•̀ω•́)つ ٩꒰⍢ ꒱۶⁼³₌₃ Σ(￣。￣ﾉ)ﾉ ฅ(*ơ ₃ơ)ฅ”

(｢･ω･)｢ (。･o･｡)ﾉ ~ (o´〰&amp;#96;o) ( • ̀ω ⁃᷄)✧ (ФwФ) ( ื▿ ื) ◐&amp;#x2F;v&amp;#x2F;◐ （ゝω・）(੭ु ‾̑ω‾̑)੭ु⁾⁾

(ू ͒•‧̫•ू⑅ ͒) ᕦ(ò_óˇ)ᕤ ( ͡° ͜ʖ ͡°)

斜眼 鄙视状

(ਛ_≻ਛ) ( ﹁ ﹁ ) (¬д¬。) ( ¬､¬) (;¬_¬) (；¬д¬) (′д｀σ)σ .╮(﹀_﹀”)╭

认真的样子

(&amp;#96;･ω･´)ゞ(๑•̀.̫•́๑) (̿▀̿̿Ĺ̯̿̿▀̿ ̿)̄ ( ‾ʖ̫‾) ( •̀ .̫ •́ )✧ (๑•̀_•́๑) (ง •̀_•́)ง (｀◕‸◕´+) ( ∙̆ .̯ ∙̆ ) (•ิ_•ิ)

惊恐 担心

(,,#ﾟДﾟ) (」゜ロ゜)」 (;° ロ°) ヽ（゜ロ゜；）ノ (￣口￣)!! ┌(。Д。)┐(⊙ˍ⊙) Σ( ° △ °|||)︴

（⊙＿⊙；）… (っ °Д °;)っ щ(゜ロ゜щ)

不满 傲娇状

(￣^￣) o(´^｀)o （￣へ￣）φ(￣ー￣ ) ╮(～▽～)╭ b(￣▽￣)d （￣ c￣）y▂ξ (ˉ▽￣～)

o(一︿一+)o ε＝（＞ε＜）ˋ﹏ˊﾉ(≖ A ≖))ﾉ &amp;#x3D;3&amp;#x3D;3&amp;#x3D;3 (‵▽′)&amp;#x2F;

气愤

（╬￣皿￣） ヽ(ｏ&amp;#96;皿′ｏ)ﾉ ヽ(≧Д≦)ノ （＞д＜） （;≧皿≦） ヽ(#&amp;#96;Д´)ﾉ [○･｀Д´･○] ヽ( ｀0´)ﾉ

Σ(-&amp;#96;Д´-ﾉ；)ﾉ o(-&amp;#96;д´- ｡) ヽ(●-&amp;#96;Д´-)ノ （｀＾´）ノ (╯‵□′)╯︵ ┴─┴ （╯－＿－）╯╧╧ ┗|｀O′|┛

(o#゜ 曲゜)o (╯‵□′)╯···*～● 凸(艹皿艹 ) (ʘдʘ╬) ╰（‵□′）╯ s(・｀ヘ´・;)ゞ 山(≧皿≦)山

(ノ｀Д´)ノ (┙&amp;gt;∧&amp;lt;)┙へ┻┻

双人

(●ゝω)ノヽ(∀＜●) o(╬￣皿￣)&amp;#x3D;○# (￣#)3￣) ╭(′▽&amp;#96;)╭(′▽&amp;#96;)╯(￣ε(#￣)☆╰╮o(￣皿￣&amp;#x2F;&amp;#x2F;&amp;#x2F;)

( *￣▽￣)((≧︶≦*) (～￣▽￣)→))*￣▽￣*)o (┘￣︶￣)┘└(￣︶￣└) (〃￣︶￣)人(￣︶￣〃)

&amp;lt;( ‵□′)───C＜─___-)|| └(￣ ￣└)(┘￣ ￣)┘ ( *￣▽￣)((≧︶≦*) └│∵│┐┌│∵│┘ヽ(*´∀｀)八(´∀｀*)ノ \(“▔□▔)&amp;#x2F;\(“▔□▔)&amp;#x2F; （*＾ω＾）人（＾ω＾*）(((*°▽°*)八(*°▽°*)))♪ヽ(＾▽＾)人(＾▽＾)人(＾▽＾)ﾉ

｡*:★(´・ω・人・ω・&amp;#96;)｡:゜★｡ヽ(∀゜ )人( ゜∀)ノ

得意 &amp;lt;(￣︶￣)&amp;gt; 乾杯 []~(￣▽￣)~* 滿足 (￣ˇ￣) 沒睡醒 (￣﹏￣) 狡猾(‵﹏′)

被打一巴掌 (￣ε(#￣) 無言 (￣.￣) 無奈 ╮(￣▽￣)╭ 裝傻 (￣▽￣)~*

驚訝 (⊙ˍ⊙) 發現(￣.￣)+ 驚嚇 Σ( ° △ °|||)︴ 冷 (￣▽￣)” 沒辦法 ╮(╯▽╰)╭

貓咪臉 (&amp;#x3D;￣ω￣&amp;#x3D;) 疑惑 (￣３￣)a 阿達 (￣0 ￣)y 重創 (。_。) 不 (＞﹏＜)

懷疑 (→_→) 睏 (￣o￣) . z Z 崇拜 m( _ _ )m 我想想 (ˇˍˇ) 生氣 &amp;lt;(￣ ﹌ ￣)&amp;gt;

就是你 &amp;lt;(￣ ﹌ ￣)@m

小眼睛

( ・ˍ・) (・ˍ・*) （p・_q） (〃・ｏ・〃) (*^・_・) (。・ˍ・。) (*・０・) (・ε・●) (｡･ω･) (。・д・。) (・∀・) （／ˍ・、） (・□・、*) (・－・。) (・▽・。) (・_・。)

(・O・。) (ノ△・。) (＠・ˍ・) (*・・*) 人(・ε・；) (・ o ・) (・ェ・o) (′・∀・『)

瞇瞇眼

(* ￣ー￣) (￣ー￣〃) (＠￣ー￣＠) (* ￣︿￣) (*￣∇￣*) &amp;lt;(ˍ ˍ*)&amp;gt;

(￣(●●)￣) (￣・・￣) (ー∀ー) (￣ｏ￣) (￣、￣) (*￣△￣*) (￣へ￣) (￣□￣) (￣～￣；) (。-ˍ-。 ) (￣ε￣；) (￣┬￣；) (￣∀￣) (ノへ￣、) (*￣ro￣)

(ー人ー) (*￣ｍ￣)

日系小眼睛

(′▽&amp;#96;〃) ( ′ｏ&amp;#96;) (′ェ&amp;#96;) (′ε&amp;#96; ) (&amp;#x3D;′ー&amp;#96;) ( ′θ&amp;#96;) (′○&amp;#96; ) ( ′－&amp;#96;) (′∀&amp;#96;&amp;#x3D;)

(*′▽&amp;#96;) (*′ノ0&amp;#96;) ( ′ロ&amp;#96; ) (′～&amp;#96;；） (′ ︿ &amp;#96;) (*′∇&amp;#96;*) (′ｍ&amp;#96;） (′0ノ&amp;#96;*)

(＠。ε。＠) (&amp;#x3D;′∇&amp;#96;&amp;#x3D;） (●′ω&amp;#96;●) (′～&amp;#96;●) (′へ&amp;#96;、 ) (〃′o&amp;#96;) ( ；′⌒&amp;#96;)

日系大眼睛

(ΘΘ) (Θ～Θ〃) (ΘｏΘ) (ΘェΘ) (Θ∀Θ＃) (ΘдΘ；) (Θ皿Θメ) (ΘーΘ*)

(Θ０Θ●) (Θ▽Θ) (ΘεΘ◎) (Θ◇Θ。) (ΘへΘ) (ΘˍΘ＝) (Θ、Θ) (Θ△Θ＠)

(Θ３Θ)

圆珠眼

(°ー°〃) (＃°Д°) (。□。) (*。∀。) (*。∇^*) (* ^ー。)

(＠。ー。 ＠) (。∇^☆) (ｏ。◇。) ( 。 ▽ 。) (＃。ε。＃) (。∇^d) (。・。；) (。皿。メ) (* 。 ３ ^) (〃。 ｏ 。〃) ( °◇ °) ( 。⊿。) (°□°；) ( ロ)。 。 (。Д。 ；) (*。ノO。) (； 。。)

紧闭眼

(&amp;gt;&amp;lt;) (;&amp;gt;&amp;lt;) (&amp;gt;_&amp;lt;) (&amp;gt;.&amp;lt;) (&amp;gt;o&amp;lt;) （＞▽＜） (＞Ｏ＜) (o&amp;gt;▽&amp;lt;) (&amp;gt;◇&amp;lt; ) (&amp;gt;▽&amp;lt;) (;&amp;gt;△&amp;lt;) (&amp;gt;з&amp;lt;) (o&amp;gt;ェ&amp;lt;) (＞д＜) (&amp;gt;皿&amp;lt;) (&amp;gt;_&amp;lt;、) (&amp;#x2F;_＜。) (&amp;gt;。；) (&amp;gt;。ヘ) (ノ_&amp;lt;) (＞。☆) (&amp;gt;y&amp;lt;;)

小狗嘴

(-ω- ) (+ω+) (*ω* ) ( ^ω^) (;ω;) (。ω。) (『ω′) (・ω・&amp;#x3D;) (￣ω￣)

(〃ω〃) (≧ω≦) (。・ω・) (&amp;#x3D;・ω・&amp;#x3D;) ( ＞ω＜) (′・ω・&amp;#96;) (&amp;#x2F;ω＼) (&amp;#x2F;ω・＼)

(&amp;#x2F;・ω・＼) (ΘωΘ) (ΦωΦ)

悲伤眼

(ＵＵ＊) (ｕｕ〃) (ｕｏｕ〃) (Ｕ３Ｕ*) (●Ｕ_Ｕ●) (ｕ～ｕ&amp;#x3D;)

(＠Ｕ▽Ｕ＠) (ＵAＵ＊) (Ｕ△Ｕ●) (ｕДｕ〃) (Ｕ◇Ｕ◎) (○ｕAｕ○)

(ｕ▽ｕ＃) (＠Ｕ～Ｕ＠) (ｕ△ｕ＊) (ｕ◇ｕ〃) (ＵДＵ◎) (＝ｕ３ｕ＝)

(ｕ_ｕ＃) (ＵｏＵ＊)



＜（￣︶￣）＞ 满足且得意

＜（￣︶￣）／ 满足并且伸出手表示赞同

＜（＠￣︶￣＠）＞ 满足地脸红

（＃￣▽￣＃） 害羞

＼（￣︶￣）／ 抱抱

ｂ（￣▽￣）ｄ 竖起双手拇指说好

╰（￣▽￣）╭ 眉飞色舞

（￣︶￣）↗ 出发吧

○（＊￣︶￣＊）○ 吃饱睡好

♀（￣▽￣）／ 优质女孩

♂（￣▽￣）／ 优质男孩

╮（╯◇╰）╭ 啾～啾～亲一个

╭（′▽‵）╭（′▽‵）╭（′▽‵）╯ GO!

（￣▽￣）～■□～（￣▽￣） 干杯

＜（￣︶￣）＞＜（￣︶￣）＞＜（￣︶￣）＞ 当我们同在一起

伤心

（┬＿┬） 流泪

（＞﹏＜） 痛苦

（┬＿┬）↘ 跌倒

〒▽〒 真命苦

生气

…（⊙＿⊙；）… 嘎？

（￣∞￣） 猪！

（︶︿︶） 不满

╰（‵□′）╯ 暴怒

（（‵□′）） 暴怒

（︶︿︶）＝凸 比中指

（╯－＿－）╯╧╧ 翻桌A

（╯‵□′）╯︵┴─┴ 翻桌B

┴─┴︵╰（‵□′╰） 翻桌C

╭∩╮（￣▽￣）╭∩╮ 哼，去你的

┴┴︵╰（‵□′）╯︵┴┴ 拆房子

（╬￣皿￣）＝○＃（￣＃）３￣） 看拳

＜（‵□′）＞───Ｃε（┬＿┬）３ 生气扭耳朵

＜( ￣︿￣)︵θ︵θ︵θ︵θ︵☆（＞口＜－） 无影脚攻击

道歉

〈（＿ ＿）〉 道歉、鞠躬

无奈、尴尬

╮（￣▽￣）╭

╮（╯＿╰）╭

╮（﹀＿﹀）╭

╮（￣﹏￣）╭

ˋ（′～‵）ˊ

┐（─__─）┌

（￣口￣）

（＃－.－）

（─.─||）

≡￣﹏￣≡

其他

（～￣▽￣～） 装傻

\(“▔□▔)&amp;#x2F;\(“▔□▔)&amp;#x2F;\(“▔□▔)&amp;#x2F; 大冷场

&amp;lt;(￣3￣)&amp;gt;

－(&amp;gt;口＜-)

&amp;lt;(￣ c￣)y▂ξ 抽烟

（￣Ｑ￣）╯ 滚一边去
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h2 id=&#34;使用emoji&#34;&gt;使用emoji&lt;/h2&gt;
&lt;p&gt;⭕✅☑✔✖❌❎🌓🌔🌕🌖🌗🌘🌙🌚🌛🌜☀🌝🌞⭐🌟💉💊&lt;/p&gt;
&lt;p&gt;😀😁😂😃😎😍😘😗😙😚☺😇😐😑😶😏😣😥😮😯😪😫😴😭&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;更多 emoji 参考 ( 👁️︠ ‿‿ ︡👁️)✊&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/80938cfe/&#34;&gt;emoji表情符号&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://unicode.org/emoji/charts/full-emoji-list.html&#34;&gt;full-emoji-list&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://fsymbols.com/&#34;&gt;fsymbols&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;插入html&#34;&gt;插入html&lt;/h2&gt;
&lt;p&gt;&lt;a id=&#34;demo&#34;&gt;跳转位置演示（跳转位置设置点）&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;我们可以在 Markdown 中插入一些简单的 HTML 代码或 CSS 片段来获得更多扩展，使得文章内容更具有多样性。以下演示几个简单功能。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;文字颜色&#34;&gt;文字颜色&lt;/h3&gt;
&lt;p&gt;&lt;span  style=&#34;color: #519D9E; &#34;&gt;#519D9E颜色演示&lt;/span&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markup&#34; data-language=&#34;markup&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markup&#34;&gt;&amp;lt;p&amp;gt;&amp;lt;span  style&amp;#x3D;&amp;quot;color: #519D9E; &amp;quot;&amp;gt;#519D9E颜色演示&amp;lt;&amp;#x2F;span&amp;gt;&amp;lt;&amp;#x2F;p&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;文字大小&#34;&gt;文字大小&lt;/h3&gt;
&lt;p&gt;&lt;span  style=&#34;font-size:0.7em;&#34;&gt;0.7em 文字大小演示&lt;/span&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markup&#34; data-language=&#34;markup&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markup&#34;&gt;&amp;lt;p&amp;gt;&amp;lt;span  style&amp;#x3D;&amp;quot;font-size:0.7em;&amp;quot;&amp;gt;0.7em 文字大小演示&amp;lt;&amp;#x2F;span&amp;gt;&amp;lt;&amp;#x2F;p&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;文字位置&#34;&gt;文字位置&lt;/h3&gt;
&lt;p style=&#34;text-align:center&#34;&gt;内容居中演示&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markdown&#34; data-language=&#34;markdown&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markdown&#34;&gt;&amp;lt;p style&amp;#x3D;&amp;quot;text-align:center&amp;quot;&amp;gt;内容居中演示&amp;lt;&amp;#x2F;p&amp;gt; # 可以修改 text-align 参数来设置文字位置。&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;页内跳转&#34;&gt;页内跳转&lt;/h3&gt;
&lt;p&gt;&lt;a ignore-external-link href=&#34;#demo&#34;&gt;点击到达跳转位置演示&lt;/a&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;lt;a ignore-external-link href&amp;#x3D;&amp;quot;#demo&amp;quot;&amp;gt;点击到达跳转位置演示&amp;lt;&amp;#x2F;a&amp;gt; # 在需要跳转的地方添加此代码。
&amp;lt;a ignore-external-link id&amp;#x3D;&amp;quot;demo&amp;quot;&amp;gt;跳转位置演示（跳转位置设置点）&amp;lt;&amp;#x2F;a&amp;gt; # 在跳转位置添加次代码。&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;综合演示&#34;&gt;综合演示&lt;/h3&gt;
&lt;p style=&#34;text-align:center;color:#8EC0E4;font-size:1.5em;font-weight: bold;&#34;&gt;
综合演示
&lt;br&gt;
优雅使用 Hexo 写文章
&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markdown&#34; data-language=&#34;markdown&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markdown&#34;&gt;&amp;lt;p style&amp;#x3D;&amp;quot;text-align:center;color:#8EC0E4;font-size:1.5em;font-weight: bold;&amp;quot;&amp;gt;
综合演示
&amp;lt;br&amp;gt;
优雅使用 Hexo 写文章
&amp;lt;&amp;#x2F;p&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;iframe-页面镶套&#34;&gt;iframe 页面镶套&lt;/h3&gt;
&lt;p&gt;iframe 页面镶套可以帮助我们更好的展示一个页面。比如以下演示页面。&lt;/p&gt;
&lt;h4 id=&#34;iframe自动加载&#34;&gt;iframe自动加载&lt;/h4&gt;
&lt;iframe src=&#34;/galleries/&#34; width=&#34;100%&#34; height=&#34;500&#34; loading=&#34;lazy&#34; name=&#34;topFrame&#34; scrolling=&#34;yes&#34;  noresize=&#34;noresize&#34; frameborder=&#34;0&#34; id=&#34;topFrame&#34; loading=&#34;lazy&#34;&gt;&lt;/iframe&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markup&#34; data-language=&#34;markup&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markup&#34;&gt;&amp;lt;iframe src&amp;#x3D;&amp;quot;&amp;#x2F;galleries&amp;#x2F;&amp;quot; width&amp;#x3D;&amp;quot;100%&amp;quot; height&amp;#x3D;&amp;quot;500&amp;quot; loading&amp;#x3D;&amp;quot;lazy&amp;quot; name&amp;#x3D;&amp;quot;topFrame&amp;quot; scrolling&amp;#x3D;&amp;quot;yes&amp;quot;  noresize&amp;#x3D;&amp;quot;noresize&amp;quot; frameborder&amp;#x3D;&amp;quot;0&amp;quot; id&amp;#x3D;&amp;quot;topFrame&amp;quot; loading&amp;#x3D;&amp;quot;lazy&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;iframe&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h4 id=&#34;iframe鼠标点击加载&#34;&gt;iframe鼠标点击加载&lt;/h4&gt;
  &lt;ul&gt;
    &lt;li&gt; &lt;a id=&#34;download&#34; onclick=&#34;frameA.src=&#39;/&#39;&#34;  aria-label=&#34;iframe测试&#34;&gt;点击加载主页&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt; &lt;a id=&#34;download&#34; onclick=&#34;frameB.location=&#39;/galleries/&#39;&#34; &gt;点击加载相册&lt;/a&gt; &lt;/li&gt;
  &lt;/ul&gt;
  &lt;iframe id=&#34;frameA&#34; src=&#34;&#34; loading=&#34;lazy&#34; style=&#34;width:100%;height:500px;background-image:url(/medias_webp/loading.webp);background-size: 100% 100%;&#34; frameborder=&#34;0&#34;&gt;&lt;/iframe&gt;  
&lt;iframe name=&#34;frameB&#34; src=&#34;&#34; loading=&#34;lazy&#34; style=&#34;width:100%;height:500px;background-image:url(/medias_webp/loading.webp);background-size: 100% 100%;&#34;  frameborder=&#34;2&#34;&gt;&lt;/iframe&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markup&#34; data-language=&#34;markup&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markup&#34;&gt;  &amp;lt;ul&amp;gt;
    &amp;lt;li&amp;gt; &amp;lt;a id&amp;#x3D;&amp;quot;download&amp;quot; onclick&amp;#x3D;&amp;quot;frameA.src&amp;#x3D;&amp;#39;&amp;#x2F;&amp;#39;&amp;quot;  aria-label&amp;#x3D;&amp;quot;iframe测试&amp;quot;&amp;gt;点击加载主页&amp;lt;&amp;#x2F;a&amp;gt; &amp;lt;&amp;#x2F;li&amp;gt;
    &amp;lt;li&amp;gt; &amp;lt;a id&amp;#x3D;&amp;quot;download&amp;quot; onclick&amp;#x3D;&amp;quot;frameB.location&amp;#x3D;&amp;#39;&amp;#x2F;galleries&amp;#x2F;&amp;#39;&amp;quot; &amp;gt;点击加载相册&amp;lt;&amp;#x2F;a&amp;gt; &amp;lt;&amp;#x2F;li&amp;gt;
  &amp;lt;&amp;#x2F;ul&amp;gt;
  &amp;lt;iframe id&amp;#x3D;&amp;quot;frameA&amp;quot; src&amp;#x3D;&amp;quot;&amp;quot; loading&amp;#x3D;&amp;quot;lazy&amp;quot; style&amp;#x3D;&amp;quot;width:100%;height:500px;background-image:url(&amp;#x2F;medias_webp&amp;#x2F;loading.webp);background-size: 100% 100%;&amp;quot; frameborder&amp;#x3D;&amp;quot;0&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;iframe&amp;gt;  
&amp;lt;iframe name&amp;#x3D;&amp;quot;frameB&amp;quot; src&amp;#x3D;&amp;quot;&amp;quot; loading&amp;#x3D;&amp;quot;lazy&amp;quot; style&amp;#x3D;&amp;quot;width:100%;height:500px;background-image:url(&amp;#x2F;medias_webp&amp;#x2F;loading.webp);background-size: 100% 100%;&amp;quot;  frameborder&amp;#x3D;&amp;quot;2&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;iframe&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;object标签&#34;&gt;object标签&lt;/h3&gt;
&lt;p&gt;&lt;object width=&#34;100%&#34; height=&#34;400&#34; data=&#34;/galleries/&#34;&gt;&lt;/object&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markup&#34; data-language=&#34;markup&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markup&#34;&gt;&amp;lt;object width&amp;#x3D;&amp;quot;100%&amp;quot; height&amp;#x3D;&amp;quot;400&amp;quot; data&amp;#x3D;&amp;quot;&amp;#x2F;galleries&amp;#x2F;&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;object&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;details-标签&#34;&gt;details 标签&lt;/h3&gt;
&lt;p&gt;用于展示代码较多需要折叠或折叠相关内容，以下为演示。&lt;code&gt;summary&lt;/code&gt; 填写显示名称。&lt;/p&gt;
&lt;details&gt;
&lt;summary&gt;Demo&lt;/summary&gt;
&lt;p&gt;&lt;a href=&#34;/&#34; target=&#34;_blank&#34;&gt;&lt;b&gt;夜法之书&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;欢迎光临&lt;/b&gt;&lt;/p&gt;
&lt;img width=&#34;200&#34; src=&#34;/favicon.webp&#34; alt=&#34;wechat&#34;&gt;
&lt;/details&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markdown&#34; data-language=&#34;markdown&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markdown&#34;&gt;&amp;lt;details&amp;gt;
&amp;lt;summary&amp;gt;Demo&amp;lt;&amp;#x2F;summary&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;a href&amp;#x3D;&amp;quot;&amp;#x2F;&amp;quot; target&amp;#x3D;&amp;quot;_blank&amp;quot;&amp;gt;&amp;lt;b&amp;gt;夜法之书&amp;lt;&amp;#x2F;b&amp;gt;&amp;lt;&amp;#x2F;a&amp;gt;&amp;lt;&amp;#x2F;p&amp;gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;欢迎光临&amp;lt;&amp;#x2F;b&amp;gt;&amp;lt;&amp;#x2F;p&amp;gt;
&amp;lt;img width&amp;#x3D;&amp;quot;200&amp;quot; src&amp;#x3D;&amp;quot;&amp;#x2F;favicon.webp&amp;quot; alt&amp;#x3D;&amp;quot;wechat&amp;quot;&amp;gt;
&amp;lt;&amp;#x2F;details&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h2 id=&#34;配图&#34;&gt;配图&lt;/h2&gt;
&lt;p&gt;众所周知，&lt;strong&gt;博客好不好看，配图占一半&lt;/strong&gt;。这里给大家推荐几个我常用找配图的地方。&lt;strong&gt;另外，请遵循相关网站的版权协议。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.google.com/imghp?hl=zh-CN&#34;&gt;Google Image&lt;/a&gt;是你的好搭档&lt;/p&gt;
&lt;h3 id=&#34;Wallpaper-Hub&#34;&gt;Wallpaper Hub&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2022/08/18/20220818103222.webp&#34; alt=&#34;Wallpaper Hub&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;https://wallpaperhub.app/&#34;&gt;点击跳转到 Wallpaper Hub&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;Wallhaven&#34;&gt;Wallhaven&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2022/08/18/20220818103222-1.webp&#34; alt=&#34;Wallhaven&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;https://wallhaven.cc/&#34;&gt;点击跳转到 Wallhaven&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;Unsplash&#34;&gt;Unsplash&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2022/08/18/20220818103222-2.webp&#34; alt=&#34;Unsplash&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;https://unsplash.com/&#34;&gt;点击跳转到 Unsplash&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;插入Mermaid&#34;&gt;插入Mermaid&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;直接在我网页前端生成SVG图像，能够实现非常复杂，美观的流程图！&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;/posts/cf0f47fd/#Mermaid&#34;&gt;Mermaid 简明教程&lt;/a&gt;  &lt;a href=&#34;/posts/cf0f47fd/#plant-uml&#34;&gt;pluntuml 简明教程&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markdown&#34; data-language=&#34;markdown&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markdown&#34;&gt;graph LR
    1[Sonarr] &amp;#x3D;&amp;#x3D; request Jackett &amp;#x2F; Prowlarr Torznab api &amp;#x3D;&amp;#x3D;&amp;gt; 2(JProxy) &amp;#x3D;&amp;#x3D; proxy Sonarr request &amp;#x3D;&amp;#x3D;&amp;gt; 3(Jackett &amp;#x2F; Prowlarr) 
    3(Jackett &amp;#x2F; Prowlarr) &amp;#x3D;&amp;#x3D; return &amp;#x3D;&amp;#x3D;&amp;gt; 2(JProxy) &amp;#x3D;&amp;#x3D; return result after format &amp;#x3D;&amp;#x3D;&amp;gt; 1(Sonarr)
    2(JProxy) &amp;#x3D;&amp;#x3D; replace search key &amp;#x3D;&amp;#x3D;&amp;gt; 2(JProxy)
    2(JProxy) &amp;#x3D;&amp;#x3D; format result title &amp;#x3D;&amp;#x3D;&amp;gt; 2(JProxy)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;pre&gt;&lt;code class=&#34;mermaid&#34;&gt;graph LR
    1[Sonarr] &amp;#x3D;&amp;#x3D; request Jackett &amp;#x2F; Prowlarr Torznab api &amp;#x3D;&amp;#x3D;&amp;gt; 2(JProxy) &amp;#x3D;&amp;#x3D; proxy Sonarr request &amp;#x3D;&amp;#x3D;&amp;gt; 3(Jackett &amp;#x2F; Prowlarr) 
    3(Jackett &amp;#x2F; Prowlarr) &amp;#x3D;&amp;#x3D; return &amp;#x3D;&amp;#x3D;&amp;gt; 2(JProxy) &amp;#x3D;&amp;#x3D; return result after format &amp;#x3D;&amp;#x3D;&amp;gt; 1(Sonarr)
    2(JProxy) &amp;#x3D;&amp;#x3D; replace search key &amp;#x3D;&amp;#x3D;&amp;gt; 2(JProxy)
    2(JProxy) &amp;#x3D;&amp;#x3D; format result title &amp;#x3D;&amp;#x3D;&amp;gt; 2(JProxy)&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&#34;数学公式&#34;&gt;数学公式&lt;/h2&gt;
&lt;h3 id=&#34;GeoGebra（网页版-桌面-手机）&#34;&gt;&lt;strong&gt;GeoGebra（网页版 &amp;amp; 桌面 &amp;amp; 手机）&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://www.geogebra.org/&#34;&gt;https://www.geogebra.org/&lt;/a&gt;&lt;/p&gt;
&lt;h4 id=&#34;📌-最强参数动态可视化工具之一&#34;&gt;📌 &lt;strong&gt;最强参数动态可视化工具之一&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;特点&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;画函数、几何图形、参数曲线、微积分相关图形&lt;/li&gt;
&lt;li&gt;支持 &lt;strong&gt;滑块（slider）动态参数&lt;/strong&gt; 拖动，可以实时观察变化&lt;/li&gt;
&lt;li&gt;支持三维图形&lt;/li&gt;
&lt;li&gt;可插入公式、表达式、参数、表格&lt;/li&gt;
&lt;li&gt;支持导出图像、分享链接&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;📊 &lt;strong&gt;优点&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;交互式非常强&lt;/li&gt;
&lt;li&gt;可保存文件、分享到网页&lt;/li&gt;
&lt;li&gt;动态滑动参数调整非常自然&lt;/li&gt;
&lt;li&gt;免费且功能强大&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;示例：GeoGebra-怎么做动态参数&#34;&gt;示例：GeoGebra 怎么做动态参数&lt;/h4&gt;
&lt;h4 id=&#34;1-输入公式&#34;&gt;1) 输入公式&lt;/h4&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;f(x) &amp;#x3D; a * sin(bx + c)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h4 id=&#34;2-自动提示创建滑块-a-b-c&#34;&gt;2) 自动提示创建滑块 a, b, c&lt;/h4&gt;
&lt;p&gt;图形就会出现滑块：&lt;br&gt;
🟦 a — 控制振幅&lt;br&gt;
🟩 b — 控制频率&lt;br&gt;
🟥 c — 控制相位&lt;/p&gt;
&lt;p&gt;拖动滑块实时变图形！&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&#34;📌-在-Hexo-博客里嵌入可交互图（例如-Geogebra-Desmos）&#34;&gt;📌 在 Hexo 博客里嵌入可交互图（例如 Geogebra/Desmos）&lt;/h4&gt;
&lt;p&gt;你也可以在 Hexo 文章里嵌入：&lt;/p&gt;
&lt;p&gt;🔹 &lt;strong&gt;Desmos iframe 嵌入&lt;/strong&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markup&#34; data-language=&#34;markup&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markup&#34;&gt;&amp;lt;iframe src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;www.desmos.com&amp;#x2F;calculator?embed&amp;quot; width&amp;#x3D;&amp;quot;600&amp;quot; height&amp;#x3D;&amp;quot;400&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;iframe&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;🔹 &lt;strong&gt;GeoGebra 嵌入&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;GeoGebra 提供分享链接 → 嵌入：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markup&#34; data-language=&#34;markup&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markup&#34;&gt;&amp;lt;iframe src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;www.geogebra.org&amp;#x2F;classic&amp;#x2F;XXXXXX&amp;quot; width&amp;#x3D;&amp;quot;800&amp;quot; height&amp;#x3D;&amp;quot;600&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;iframe&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;hr&gt;
&lt;h4 id=&#34;📌-另外附上几款针对公式OCR与解题的工具（非拖动参数）&#34;&gt;📌 另外附上几款针对公式OCR与解题的工具（非拖动参数）&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;工具&lt;/th&gt;
&lt;th&gt;功能&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Mathpix Snip&lt;/td&gt;
&lt;td&gt;公式 OCR → LaTeX + 解析&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Photomath&lt;/td&gt;
&lt;td&gt;拍照解题、步骤解析&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft Math Solver&lt;/td&gt;
&lt;td&gt;解题 + 图形显示&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mathway&lt;/td&gt;
&lt;td&gt;解题 + 图像&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;这些更适合 &lt;em&gt;识别公式与求解步骤&lt;/em&gt;，而不是 &lt;em&gt;动态参数实验&lt;/em&gt;。&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&#34;🎯-你适合哪种？&#34;&gt;🎯 你适合哪种？&lt;/h4&gt;
&lt;p&gt;✅ &lt;strong&gt;教学/视觉化分析&lt;/strong&gt; → &lt;em&gt;GeoGebra / Desmos&lt;/em&gt;&lt;br&gt;
✅ &lt;strong&gt;公式识别 → LaTeX 导出&lt;/strong&gt; → &lt;em&gt;Mathpix Snip&lt;/em&gt;&lt;br&gt;
✅ &lt;strong&gt;自动解析/求解&lt;/strong&gt; → &lt;em&gt;Wolfram Alpha&lt;/em&gt;&lt;br&gt;
✅ &lt;strong&gt;科研符号运算&lt;/strong&gt; → &lt;em&gt;Mathematica/Maple&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;插入音乐和视频&#34;&gt;插入音乐和视频&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&#34;/posts/cf0f47fd/#%E6%8F%92%E5%85%A5%E9%9F%B3%E4%B9%90%E5%92%8C%E8%A7%86%E9%A2%91&#34;&gt;教程： 插入音乐和视频&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;插入优美的音乐可以愉悦阅读过程&lt;/p&gt;
&lt;p&gt;插入视频教程或者视频Live可以极大提高知识传播速度！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;内容为王&#34;&gt;内容为王&lt;/h2&gt;
&lt;p&gt;前面提到了那么多的方法和工具，但是&lt;mark&gt;内容才是最重要的&lt;/mark&gt;！&lt;/p&gt;
&lt;p&gt;内容好，前面提到的写作技巧和工具都可以忽略；内容不好，再多的方法和工具都是白费！谨记！&lt;/p&gt;
&lt;h2 id=&#34;尺度控制&#34;&gt;尺度控制&lt;/h2&gt;
&lt;p&gt;不同平台，能够容忍的尺度是不同的！&lt;/p&gt;
&lt;p&gt;面对不同的人群，不同地域，不同背景的读者，写作尺度需要区分！也就是需要主动自我阉割！&lt;/p&gt;
&lt;p&gt;能说的比能写的至少严格一个等级，私密场合口耳相传的可以更接近真相！&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;能写出来，广泛传播的大众平台言论，都是被阉割删减过的。顶多给你一个入门的方向指引，甚至很多时候故意给你一个错误的方向误导你！&lt;/p&gt;
&lt;p&gt;很多假话，套话，写一写，喊一喊，自己真信就是傻逼了&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;文学技巧&#34;&gt;文学技巧&lt;/h2&gt;
&lt;p&gt;对于技术文章，是不需要什么文学技巧的，有足够的行业积累，才能够写的深入浅出！&lt;/p&gt;
&lt;p&gt;如果你写的是头条账号，瓜田李下，下里巴人才能够吸引眼球，一些写作技巧，如适当的疑问，引用，递进，顶珠，等方法可以大大提高流量。但是，不要做标题党，广大读者包括笔者都痛恨标题党！&lt;/p&gt;
&lt;h3 id=&#34;关于谣言&#34;&gt;关于谣言&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;造谣一张嘴，辟谣跑断腿！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;社交平台通过故意制造谣言，引起社会对立，可以极大提高平台活跃度与曝光量！&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Facebook 内部员工就爆料 Facebook 故意挑起种族仇恨言论（具体详情请自行搜索新闻来源）。&lt;/p&gt;
&lt;p&gt;微博为什么是女权发源地，这与微博的故意放纵，背后资本都是相关的。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;另外，有不少收钱发帖的账号！&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;国家应该对接受资本资助的平台账号备案，并严令禁止社交平台账号接受国外资本资助！&lt;/p&gt;
&lt;p&gt;这种账号日常就发一些没有时间，地点，人物等详细细节的文章，引导舆论，或者文化打压，渗透！&lt;/p&gt;
&lt;p&gt;关键这种你很难举报，博主举报了很多次，平台都说举报不成立，不算谣言！即使举报成功了，谣言也已经传播开了，对于造谣者来说也没多大损失！顶多删除一条就是，这种应该严惩的行为目前没看到什么法律法规的约束！&lt;/p&gt;
&lt;p&gt;但是，国家早晚会对这一块整治，法律会严惩这些造谣者的！别看这些造谣者一时收黑钱一时爽，总会有清算的一天的。各位读者遇到这类文章也多点击一下举报吧，举报间谍成功奖励50W哦！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;私有笔记云&#34;&gt;私有笔记云&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;平时不积累，用时方嫌少！&lt;/p&gt;
&lt;p&gt;建立自己的知识库，就显得那么重要了&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/a8535f26/&#34;&gt;完美笔记进化论&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;经历了很长时间，使用了各种各样的方案，最终选择了一种相对完美的方式。docker私有部署运行的joplin，使用markdown语法，github作为图床，picgo作为图像自动上传后端，pypora作为MD编辑器，Snipaste作为截图工具。后备gitlab ee selfhost备份，自建图床VPS多线负载均衡。cloudflare partner cdn加速，jsdelivr加速。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;pigo图床搭建与配置&lt;/li&gt;
&lt;li&gt;Joplin教程&lt;/li&gt;
&lt;li&gt;Snipaste截图工具&lt;/li&gt;
&lt;li&gt;Typora 作为Markdown编辑器最强&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

    &lt;div class=&#34;vkr-url-wrapper&#34;&gt;
        &lt;a href=&#34;/posts/a8535f26/&#34;&gt;&lt;img class=&#34;avatar&#34; src=&#34;/medias_webp/cover/wiznote.webp&#34;&gt;&lt;/a&gt;
        &lt;div class=&#34;desc-wrapper&#34;&gt;
            &lt;a href=&#34;/posts/a8535f26/&#34;&gt;完美笔记进化论&lt;/a&gt;
            &lt;hr /&gt;
            &lt;div class=&#34;desc&#34;&gt;wiznote docker版作为笔记管理搜索工具，typora作为markdown编辑器，只使用markdown格式笔记，Picgo作为图上上传工具，github作为图像图床，Snippaste作为截屏工具。一起组成笔记工具链。整体免费，满足selfhost， 富文本，多平台，版本管理，目录管理，可搜索，对图像友好的苛刻要求，超越市面所有产品，wiznote 还可以对外网提供服务。&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.17lai.fun/posts/e6086437/&#34;&gt;Joplin入门指南&amp;amp;实践方案&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Joplin和使用&lt;/li&gt;
&lt;li&gt;Joplin同步与备份&lt;/li&gt;
&lt;li&gt;Joplin导入与导出&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.17lai.fun/posts/45f878cd/&#34;&gt;替代Evernote免费开源笔记Joplin-网盘同步笔记历史版本Markdown可视化&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Joplin安装使用，调用外部编辑器，网盘同步等等&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/92d347d6/&#34;&gt;Joplin 插件以及其Markdown语法。All in One!&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Joplin简明教程&lt;/li&gt;
&lt;li&gt;markdown语法简明教程&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/e3ee7f8b/&#34;&gt;Joplin 插件使用推荐&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;教你用各种插件打造一个强大的笔记工具。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/1802a8a7/&#34;&gt;为知笔记私有化Docker部署&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;如何部署自己私有的为知笔记。&lt;/li&gt;
&lt;li&gt;其实博主更推荐私有部署joplin&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;私有Nas&#34;&gt;私有Nas&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;丰富自己的知识图谱！&lt;/p&gt;
&lt;p&gt;数据最值钱，自己的数据真正属于自己的，所以你需要一个私有&lt;code&gt;Nas&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;/posts/9912bd5d/&#34;&gt;&lt;strong&gt;使用jeckett,sonarr,iyuu,qt,emby打造全自动追剧流程&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&#34;vkr-url-wrapper&#34;&gt;
        &lt;a href=&#34;/posts/9912bd5d/&#34;&gt;&lt;img class=&#34;avatar&#34; src=&#34;/medias_webp/cover/emby.webp&#34;&gt;&lt;/a&gt;
        &lt;div class=&#34;desc-wrapper&#34;&gt;
            &lt;a href=&#34;/posts/9912bd5d/&#34;&gt;使用jeckett,sonarr,iyuu,qt,emby打造全自动追剧流程&lt;/a&gt;
            &lt;hr /&gt;
            &lt;div class=&#34;desc&#34;&gt;jackett 作为种子源，sonarr剧集管理，bt下载，qbittorrent主力下载，使用iyuu转移辅种，emby，jellyfin做海报墙，sunfinder自动下载字幕。基本算是完美打通全流程自动追剧。bt种子文件命名规则SxxExx的自动识别下载，国内的资源手动查找下载，自动推送到emby刮削好&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    
&lt;blockquote&gt;
&lt;p&gt;结构化自己的图书，音乐，和视频！&lt;/p&gt;
&lt;p&gt;丰富自己的见识，知识储备&lt;/p&gt;
&lt;/blockquote&gt;

    &lt;div class=&#34;vkr-url-wrapper&#34;&gt;
        &lt;a href=&#34;/posts/dc1c8194/&#34;&gt;&lt;img class=&#34;avatar&#34; src=&#34;/medias_webp/cover/book.webp&#34;&gt;&lt;/a&gt;
        &lt;div class=&#34;desc-wrapper&#34;&gt;
            &lt;a href=&#34;/posts/dc1c8194/&#34;&gt;如何建立自己的私人电子图书馆&lt;/a&gt;
            &lt;hr /&gt;
            &lt;div class=&#34;desc&#34;&gt;图书管理员似乎是个非常有前途的职业，远的有孔子，游学之前当图书管理员，近的有本朝开国毛教员，也当了很长时间图书管理员。我们也可以自己做个私人电子图书馆，当个图书管理员，说不定很有前途？&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    

    &lt;div class=&#34;vkr-url-wrapper&#34;&gt;
        &lt;a href=&#34;/posts/3847ad58/&#34;&gt;&lt;img class=&#34;avatar&#34; src=&#34;/medias_webp/cover/music.webp&#34;&gt;&lt;/a&gt;
        &lt;div class=&#34;desc-wrapper&#34;&gt;
            &lt;a href=&#34;/posts/3847ad58/&#34;&gt;如何使用media Go,MusicBrainz,Mp3tag工具刮削音乐 整理音乐资料库&lt;/a&gt;
            &lt;hr /&gt;
            &lt;div class=&#34;desc&#34;&gt;音乐文件则是将歌名、歌手、专辑、发行时间、歌词、封面图等信息写入文件标签，称为ID3 Tag 。它能够在MP3中附加曲子的演出者、作者以及其它类别资讯，方便众多乐曲的管理。&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    

    &lt;div class=&#34;vkr-url-wrapper&#34;&gt;
        &lt;a href=&#34;/posts/e6d40157/&#34;&gt;&lt;img class=&#34;avatar&#34; src=&#34;/medias_webp/cover/emby.webp&#34;&gt;&lt;/a&gt;
        &lt;div class=&#34;desc-wrapper&#34;&gt;
            &lt;a href=&#34;/posts/e6d40157/&#34;&gt;如何使用tinyMediaManager刮削电影和电视剧，动画，并自动下载字幕&lt;/a&gt;
            &lt;hr /&gt;
            &lt;div class=&#34;desc&#34;&gt;tinyMediaManager是最好用的视频刮削工具，可以刮削电影，动画，电视剧。使用TinyMediaManager生成nfo元数据文件，多媒体软件解析生成海报墙展示丰富的影片信息，配合Emby，Plex使用体验绝佳&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/db7bf49b/&#34;&gt;音视频图书和音乐自动化管理框架图解&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/9912bd5d/&#34;&gt;使用jeckett,sonarr,iyuu,qt,emby打造全自动追剧流程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/e6d40157/&#34;&gt;如何使用tinyMediaManager刮削电影和电视剧，动画，并自动下载字幕&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/8f76d9dd/&#34;&gt;Transmission 使用及其配置&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/f6b32521/&#34;&gt;Qbittorrent 参数详细设置教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/bb600b4b/&#34;&gt;PT 工具集，Linux硬链接助手&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/77da2f80/&#34;&gt;QNAP 修改应用启动顺序&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/10fee780/&#34;&gt;qnap硬盘移动位置&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/5b1993ac/&#34;&gt;qnap IO 错误消除&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;RSS订阅&#34;&gt;RSS订阅&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;一直输出知识怎么能行？身体被掏空，急需补充能量！&lt;/p&gt;
&lt;p&gt;那么，你就需要一个好用的&lt;code&gt;RSS&lt;/code&gt;订阅工具，&lt;code&gt;TTRSS&lt;/code&gt;是一个好选择&lt;/p&gt;
&lt;/blockquote&gt;

    &lt;div class=&#34;vkr-url-wrapper&#34;&gt;
        &lt;a href=&#34;/posts/f4926c88/&#34;&gt;&lt;img class=&#34;avatar&#34; src=&#34;/medias_webp/cover/rss.webp&#34;&gt;&lt;/a&gt;
        &lt;div class=&#34;desc-wrapper&#34;&gt;
            &lt;a href=&#34;/posts/f4926c88/&#34;&gt;RSS的使用与Tiny Tiny RSS Selfhost自建&lt;/a&gt;
            &lt;hr /&gt;
            &lt;div class=&#34;desc&#34;&gt;RSS是一种消息来源的格式规范，网站可以按照这种格式规范提供文章的标题、摘要、全文等信息给订阅用户，用户可以通过订阅不同网站 RSS 链接的方式将不同的信息源进行聚合，在一个工具里阅读这些内容&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    
&lt;h2 id=&#34;文献参考&#34;&gt;文献参考&lt;/h2&gt;
&lt;p&gt;除了 rss 还有最新前沿可以需要参阅。推荐使用 &lt;a href=&#34;https://www.zotero.org/&#34;&gt;zotero&lt;/a&gt; 来管理论文文献。&lt;/p&gt;
&lt;p&gt;以下是主要中文文献网站的综合指南，涵盖免费与付费资源，结合权威性、覆盖范围和访问方式，并标注免费可用的平台：&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&#34;📚-权威付费平台（需机构订阅或个人付费）&#34;&gt;📚 &lt;strong&gt;权威付费平台（需机构订阅或个人付费）&lt;/strong&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;中国知网 (CNKI)&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;地位&lt;/strong&gt;：国内最大综合性学术数据库，覆盖95%以上中文期刊。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;资源&lt;/strong&gt;：期刊、博硕论文、会议、专利等（文献量超2亿篇）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;限制&lt;/strong&gt;：个人用户按篇付费（15-25元/篇），学校或机构订阅为主。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;免费替代&lt;/strong&gt;：iData镜像站（每日限1-2篇免费下载）。&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;&lt;strong&gt;万方数据&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;整合期刊、学位、会议、专利等资源，期刊库每周更新。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;特点&lt;/strong&gt;：文档清晰度高，但检索需精准技巧。&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;&lt;strong&gt;维普数据库 (VIP)&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;专注科技期刊（1989年至今），按《中图法》分类。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;不足&lt;/strong&gt;：部分领域更新较慢。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id=&#34;🆓-免费开放平台（无需订阅）&#34;&gt;🆓 &lt;strong&gt;免费开放平台（无需订阅）&lt;/strong&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;国家哲学社会科学文献中心&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;网址&lt;/strong&gt;：&lt;a href=&#34;http://www.ncpssd.org&#34;&gt;http://www.ncpssd.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;资源&lt;/strong&gt;：社科类期刊为主，注册后可免费下载全文。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;特点&lt;/strong&gt;：国家推出，文献较新但核心期刊覆盖率低于知网。&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;&lt;strong&gt;PubScholar公益学术平台&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;网址&lt;/strong&gt;：&lt;a href=&#34;https://pubscholar.cn&#34;&gt;https://pubscholar.cn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;资源&lt;/strong&gt;：整合中科院资源，开放8,000万篇全文（含论文、专利）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;亮点&lt;/strong&gt;：每日更新，含中科院学位论文、预印本等特色数据。&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;&lt;strong&gt;中国国家数字图书馆&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;网址&lt;/strong&gt;：&lt;a href=&#34;http://www.nlc.cn&#34;&gt;http://www.nlc.cn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;资源&lt;/strong&gt;：图书、古籍、期刊（需实名注册）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;限制&lt;/strong&gt;：版权期内图书仅可读前两章。&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&#34;4&#34;&gt;
&lt;li&gt;&lt;strong&gt;汉斯出版社&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;网址&lt;/strong&gt;：&lt;a href=&#34;http://www.hanspub.org&#34;&gt;http://www.hanspub.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;资源&lt;/strong&gt;：125本开源中文学术期刊，支持PDF/HTML免费下载。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id=&#34;🔍-特色资源与工具&#34;&gt;🔍 &lt;strong&gt;特色资源与工具&lt;/strong&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Scholaread 靠岸学术&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;网址&lt;/strong&gt;：&lt;a href=&#34;https://www.scholaread.cn&#34;&gt;https://www.scholaread.cn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能&lt;/strong&gt;：&lt;/li&gt;
&lt;li&gt;集成知网、Sci-Hub等引擎入口，一键获取文献。&lt;/li&gt;
&lt;li&gt;AI辅助阅读（翻译、图表解析、速览模式）。&lt;/li&gt;
&lt;li&gt;免费使用，支持跨平台同步。&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;&lt;strong&gt;公共图书馆服务&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;中国国家图书馆&lt;/strong&gt;：实名注册后免费使用维普、万方等数据库。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;地方图书馆&lt;/strong&gt;：如广州图书馆、杭州图书馆提供文献传递服务。&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;&lt;strong&gt;开放获取期刊平台&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;DOAJ&lt;/strong&gt;：全球开放获取期刊检索（含310种中文期刊）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cnplinker&lt;/strong&gt;：收录1.85万种OA期刊，支持免费下载。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id=&#34;💎-免费资源获取技巧&#34;&gt;💎 &lt;strong&gt;免费资源获取技巧&lt;/strong&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;预印本平台&lt;/strong&gt;：&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;中国预印本服务系统&lt;/strong&gt;：获取未正式发表的科技论文。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SINDAP&lt;/strong&gt;：全球预印本一站式检索（74万篇）。&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;&lt;strong&gt;文献传递服务&lt;/strong&gt;：&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;通过全国图书馆参考咨询联盟申请，邮箱接收全文。&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;&lt;strong&gt;高校资源利用&lt;/strong&gt;：&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;毕业校友可尝试通过母校图书馆的远程访问系统（如VPN）登录知网等库。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id=&#34;📊-平台选择建议&#34;&gt;📊 &lt;strong&gt;平台选择建议&lt;/strong&gt;&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;需求场景&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;推荐平台&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;原因&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;社科文献下载&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;国家哲学社会科学文献中心&lt;/td&gt;
&lt;td&gt;免费、更新快、注册简单&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;科技论文与专利&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;PubScholar&lt;/td&gt;
&lt;td&gt;中科院资源，全文开放量大&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;一站式检索&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Scholaread靠岸学术&lt;/td&gt;
&lt;td&gt;集成多引擎+AI阅读工具&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;历史文献/古籍&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;中国国家数字图书馆&lt;/td&gt;
&lt;td&gt;古籍全文免费，资源独特&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;提示：知网虽为最大中文库，但免费替代方案已足够满足多数需求。优先使用 &lt;strong&gt;PubScholar&lt;/strong&gt;（综合性强）、&lt;strong&gt;国家哲社文献中心&lt;/strong&gt;（社科专精）及 &lt;strong&gt;Scholaread&lt;/strong&gt;（检索+阅读工具）可降低获取成本。若需下载学位论文等深度资源，建议通过公共图书馆的文献传递服务申请。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;图书参考&#34;&gt;图书参考&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;除了前沿的博客 RSS 订阅，文献 RSS 订阅，还有文献查阅之外，还有图书参考，虽然不是最新最前沿，但还是有很多参考价值的！&lt;/p&gt;
&lt;/blockquote&gt;

    &lt;div class=&#34;vkr-url-wrapper&#34;&gt;
        &lt;a href=&#34;/posts/7d34898d/&#34;&gt;&lt;img class=&#34;avatar&#34; src=&#34;/medias_webp/cover/book.webp&#34;&gt;&lt;/a&gt;
        &lt;div class=&#34;desc-wrapper&#34;&gt;
            &lt;a href=&#34;/posts/7d34898d/&#34;&gt;Zlibrary 图书资源下载与 Calibre 图书管理打造结构化电子图书馆高阶教程&lt;/a&gt;
            &lt;hr /&gt;
            &lt;div class=&#34;desc&#34;&gt;电子书不仅要下载可看，还要有书签，封面，简洁，作者，出版社等元数据帮助记忆和管理，否则，下载了一堆没法查找和没下载差不多！再加上世界上最大的电子书图书馆 Zlibrary ，这里几乎能找到所有的电子化图书！Calibre 和 Zlibrary 结合起来使用，就可以创建结构化的电子图书馆！本文将介绍Calibre 的使用，刮削，图书管理，web 界面的图书管理，重点介绍 Zlibrary 的使用。&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    
&lt;h2 id=&#34;图书-音乐-视频参考&#34;&gt;图书&amp;amp;音乐&amp;amp;视频参考&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;结构化自己的图书，音乐，和视频！&lt;/p&gt;
&lt;p&gt;正因为你懂得多，才能明白自己的无知，才能明白如何更快更好的去学习新知识！&lt;/p&gt;
&lt;/blockquote&gt;

    &lt;div class=&#34;vkr-url-wrapper&#34;&gt;
        &lt;a href=&#34;/posts/db7bf49b/&#34;&gt;&lt;img class=&#34;avatar&#34; src=&#34;/medias_webp/cover/book.webp&#34;&gt;&lt;/a&gt;
        &lt;div class=&#34;desc-wrapper&#34;&gt;
            &lt;a href=&#34;/posts/db7bf49b/&#34;&gt;视频图书和音乐完全自动化管理框架图解&lt;/a&gt;
            &lt;hr /&gt;
            &lt;div class=&#34;desc&#34;&gt;音视频，音乐和图书管理全过程自动化解决方案框架图解！结构化你的音视频、音乐和图书资源。所有过程一张图搞定！&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    

    &lt;div class=&#34;vkr-url-wrapper&#34;&gt;
        &lt;a href=&#34;/posts/dc1c8194/&#34;&gt;&lt;img class=&#34;avatar&#34; src=&#34;/medias_webp/cover/book.webp&#34;&gt;&lt;/a&gt;
        &lt;div class=&#34;desc-wrapper&#34;&gt;
            &lt;a href=&#34;/posts/dc1c8194/&#34;&gt;如何建立自己的私人电子图书馆--出版书籍，网络小说，漫画一网打尽!&lt;/a&gt;
            &lt;hr /&gt;
            &lt;div class=&#34;desc&#34;&gt;图书管理员似乎是个非常有前途的职业，远的有孔子，游学之前当图书管理员，近的有本朝开国毛教员，也当了很长时间图书管理员。我们也可以自己做个私人电子图书馆，当个图书管理员，说不定很有前途？&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    

    &lt;div class=&#34;vkr-url-wrapper&#34;&gt;
        &lt;a href=&#34;/posts/3847ad58/&#34;&gt;&lt;img class=&#34;avatar&#34; src=&#34;/medias_webp/cover/music.webp&#34;&gt;&lt;/a&gt;
        &lt;div class=&#34;desc-wrapper&#34;&gt;
            &lt;a href=&#34;/posts/3847ad58/&#34;&gt;如何使用media Go,MusicBrainz,Mp3tag工具刮削音乐 整理音乐资料库&lt;/a&gt;
            &lt;hr /&gt;
            &lt;div class=&#34;desc&#34;&gt;音乐文件则是将歌名、歌手、专辑、发行时间、歌词、封面图等信息写入文件标签，称为ID3 Tag 。它能够在MP3中附加曲子的演出者、作者以及其它类别资讯，方便众多乐曲的管理。&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    

    &lt;div class=&#34;vkr-url-wrapper&#34;&gt;
        &lt;a href=&#34;/posts/2b9325d0/&#34;&gt;&lt;img class=&#34;avatar&#34; src=&#34;/medias_webp/cover/music.webp&#34;&gt;&lt;/a&gt;
        &lt;div class=&#34;desc-wrapper&#34;&gt;
            &lt;a href=&#34;/posts/2b9325d0/&#34;&gt;私人在线音乐服务器搭建与使用介绍&lt;/a&gt;
            &lt;hr /&gt;
            &lt;div class=&#34;desc&#34;&gt;私人在线音乐服务器搭建与使用介绍！Mstream Docker 部署， rclone 挂载 webdav 网盘。 cloudflare parterner加速&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    

    &lt;div class=&#34;vkr-url-wrapper&#34;&gt;
        &lt;a href=&#34;/posts/e6d40157/&#34;&gt;&lt;img class=&#34;avatar&#34; src=&#34;/medias_webp/cover/emby.webp&#34;&gt;&lt;/a&gt;
        &lt;div class=&#34;desc-wrapper&#34;&gt;
            &lt;a href=&#34;/posts/e6d40157/&#34;&gt;如何使用tinyMediaManager刮削电影和电视剧，动画，并自动下载字幕&lt;/a&gt;
            &lt;hr /&gt;
            &lt;div class=&#34;desc&#34;&gt;tinyMediaManager是最好用的视频刮削工具，可以刮削电影，动画，电视剧。使用TinyMediaManager生成nfo元数据文件，多媒体软件解析生成海报墙展示丰富的影片信息，配合Emby，Plex使用体验绝佳&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    

    &lt;div class=&#34;vkr-url-wrapper&#34;&gt;
        &lt;a href=&#34;/posts/9912bd5d/&#34;&gt;&lt;img class=&#34;avatar&#34; src=&#34;/medias_webp/cover/emby.webp&#34;&gt;&lt;/a&gt;
        &lt;div class=&#34;desc-wrapper&#34;&gt;
            &lt;a href=&#34;/posts/9912bd5d/&#34;&gt;使用jeckett,sonarr,iyuu,qt,emby打造全自动追剧流程&lt;/a&gt;
            &lt;hr /&gt;
            &lt;div class=&#34;desc&#34;&gt;使用jeckett,sonarr,iyuu,qt,emby打造全自动追剧流程。jackett 作为种子源，sonarr剧集管理，bt下载，qbittorrent主力下载，使用iyuu转移辅种，emby，jellyfin做海报墙，sunfinder自动下载字幕。结合本地DNS管理，DNS去广告，Nginx反向代理去端口访问，形成一个完整解决方案。&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    
&lt;h2 id=&#34;私人资料库与私人搜索引擎&#34;&gt;私人资料库与私人搜索引擎&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;资料太多，就需要结构化整理了，再加上本地 AI 管理，加上线上 AI 查询结合使用，效率直接起飞！&lt;/p&gt;
&lt;/blockquote&gt;

    &lt;div class=&#34;vkr-url-wrapper&#34;&gt;
        &lt;a href=&#34;/posts/8f152670/&#34;&gt;&lt;img class=&#34;avatar&#34; src=&#34;/medias_webp/cover/search.webp&#34;&gt;&lt;/a&gt;
        &lt;div class=&#34;desc-wrapper&#34;&gt;
            &lt;a href=&#34;/posts/8f152670/&#34;&gt;如何创建属于自己的私人资料库与私人搜索引擎&lt;/a&gt;
            &lt;hr /&gt;
            &lt;div class=&#34;desc&#34;&gt;平时积累了很多私人工具和资料，可以极大的提高工作效率，并丰富个人知识图谱。这里整理了一下所使用的各种工具和方法，包括AI助手，RSS搜索引擎，邮件网关，代码搜索，笔记管理，音视频图书管理仓库等等！&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    
&lt;h2 id=&#34;博客搭建&#34;&gt;博客搭建&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;为什么推荐每个人都自建一个独立博客网站？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一个自我展示的名片！&lt;/li&gt;
&lt;li&gt;最大的言论自由，不被任何外人以及公司审查删帖封号！&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;/posts/40300608/&#34;&gt;[三万字教程]基于Hexo的matery主题搭建博客并深度优化&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&#34;vkr-url-wrapper&#34;&gt;
        &lt;a href=&#34;/posts/40300608/&#34;&gt;&lt;img class=&#34;avatar&#34; src=&#34;/medias_webp/cover/hexo.webp&#34;&gt;&lt;/a&gt;
        &lt;div class=&#34;desc-wrapper&#34;&gt;
            &lt;a href=&#34;/posts/40300608/&#34;&gt;[三万字教程]基于Hexo的matery主题搭建博客并深度优化&lt;/a&gt;
            &lt;hr /&gt;
            &lt;div class=&#34;desc&#34;&gt;一文介绍了Hexo利用github page搭建博客全过程，还附带一个博主自己定制过的`hexo Docker`，使用docker 配合博文将引导你搭建一个功能完善的blog，并指导全程免费seo优化，性能极致优化过程和工具。并附带几个常见问题的解决方案在文章最后。&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    
&lt;p&gt;&lt;a href=&#34;/posts/253706ff/&#34;&gt;hexo博客博文撰写篇之完美笔记大攻略终极完全版&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&#34;vkr-url-wrapper&#34;&gt;
        &lt;a href=&#34;/posts/253706ff/&#34;&gt;&lt;img class=&#34;avatar&#34; src=&#34;/medias_webp/cover/hexo.webp&#34;&gt;&lt;/a&gt;
        &lt;div class=&#34;desc-wrapper&#34;&gt;
            &lt;a href=&#34;/posts/253706ff/&#34;&gt;hexo博客博文撰写篇之完美笔记大攻略终极完全版&lt;/a&gt;
            &lt;hr /&gt;
            &lt;div class=&#34;desc&#34;&gt;hexo博客文章卷写技巧，包括MarkDown，hexo技巧，html插入，美化方法，写作方法，知识储备方法，开发工具，等一系列全介绍！终极攻略篇&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    
&lt;p&gt;系列文章&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/40300608/&#34;&gt;Hexo Docker环境与Hexo基础配置篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/4d8a0b22/&#34;&gt;hexo博客自定义修改篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/9b056c86/&#34;&gt;hexo博客网络优化篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/5311b619/&#34;&gt;hexo博客增强部署篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/4a2050e2/&#34;&gt;hexo博客个性定制篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/84b4059a/&#34;&gt;hexo博客常见问题篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/253706ff/&#34;&gt;hexo博客博文撰写篇之完美笔记大攻略终极完全版&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/cf0f47fd/&#34;&gt;Hexo Markdown以及各种插件功能测试&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;markdown 各种其它语法插件，latex公式支持，mermaid图表，plant uml图表，URL卡片，bilibili卡片，github卡片，豆瓣卡片，插入音乐和视频，插入脑图，插入PDF，嵌入iframe&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;/posts/217ccdc1/&#34;&gt;在 Hexo 博客中插入 ECharts 动态图表&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;/posts/546887ac/&#34;&gt;使用nodeppt给hexo博客嵌入PPT演示&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;Gitbook使用&#34;&gt;Gitbook使用&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;长篇专业电子书制作工具&lt;/p&gt;
&lt;p&gt;当你的文章写的长了，就可以考虑用Gitbook来制作电子书了&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;/posts/7fe86002/&#34;&gt;GitBook+GitLab撰写发布技术文档-Part1:GitBook篇&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;/posts/7790e989/&#34;&gt;GitBook+GitLab撰写发布技术文档-Part2:GitLab篇&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;/posts/d6bad1e5/&#34;&gt;自己动手制作电子书的最佳方式（支持PDF、ePub、mobi等格式）&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;开发工具&#34;&gt;开发工具&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;上面都是说的写作工具，该说说开发工具了。私有建立一个完善的&lt;code&gt;DevOps&lt;/code&gt;将极大的提高你的开发效率和能力！&lt;/p&gt;
&lt;/blockquote&gt;

    &lt;div class=&#34;vkr-url-wrapper&#34;&gt;
        &lt;a href=&#34;/posts/ab63eb8f/&#34;&gt;&lt;img class=&#34;avatar&#34; src=&#34;/medias_webp/cover/devops.webp&#34;&gt;&lt;/a&gt;
        &lt;div class=&#34;desc-wrapper&#34;&gt;
            &lt;a href=&#34;/posts/ab63eb8f/&#34;&gt;自建全套开源Devops开发系统&lt;/a&gt;
            &lt;hr /&gt;
            &lt;div class=&#34;desc&#34;&gt;目标：单节点，以最低成本，最低消耗，使用开源软件实现一个可用的DevOps！满足中小企业的研发、测试、运维需求。&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;/posts/ab63eb8f/&#34;&gt;自建全套开源Devops开发系统&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;/posts/d32a07a7/&#34;&gt;Git介绍以及分支模型图解&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;/posts/39563241/&#34;&gt;三万字无坑搭建基于Docker+K8S+GitLab/SVN+Jenkins+Harbor持续集成交付环境&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;/posts/3437994a/&#34;&gt;DevOps系列—【Jenkinsfile+Dockerfile+nginx+vue】&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;/posts/f4c3ad41/&#34;&gt;项目开发管理工具推荐&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;/posts/acc13b70/&#34;&gt;Gitlab的安装及使用教程完全版&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;/posts/d08eb7b/&#34;&gt;Gitlab的安装及使用&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;/posts/acc13b70/&#34;&gt;&lt;strong&gt;Gitlab的安装及使用教程完全版&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;/posts/29a820b3/&#34;&gt;破解Gitlab EE&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;/posts/d08eb7b/&#34;&gt;Gitlab的安装及使用&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;/posts/1879721e/&#34;&gt;CI/CD与Git Flow与GitLab&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;Docker使用&#34;&gt;Docker使用&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/42b6a86d/&#34;&gt;Docker使用简明教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/9912bd5d/&#34;&gt;使用jeckett,sonarr,iyuu,qt,emby打造全自动追剧流程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/1802a8a7/&#34;&gt;为知笔记私有化Docker部署&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/593cc323/&#34;&gt;Earthly 一个更加强大的镜像构建工具&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/90e60aac/&#34;&gt;使用 Shell 脚本实现一个简单 Docker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/465d2738/&#34;&gt;如何使用Traefik V2 在Ubuntu20.04 上面来做 Dockers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/462f1e5c/&#34;&gt;通过IPV6访问Qnap NAS中Docker的服务&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;博客美观性&#34;&gt;博客美观性&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;博客美观性增强方法&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;使用标准Markdown语法&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;使用hexo tag&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;使用 hexo  主题 tag&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;使用hexo 插件&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://www.fhdq.net/&#34;&gt;特殊符号&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;CSS自定义&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;博文可迁移性&#34;&gt;博文可迁移性&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;博客文章可迁移性评价&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;使用标准Markdown语法&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;少用hexo tag&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;少用 hexo  主题 tag&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;少用hexo 插件&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;可以说，美观和可迁移性是不可兼得的。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;写作工具&#34;&gt;写作工具&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;工欲善其事，必先利其器&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Markdown编辑器 &lt;a href=&#34;https://typoraio.cn/&#34;&gt;Typora&lt;/a&gt;，早期beta版本免费&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;截图 &lt;a href=&#34;https://zh.snipaste.com/&#34;&gt;snippaste&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;动图 ScreentoGIF&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;图床 &lt;a href=&#34;https://picgo.github.io/PicGo-Doc/zh/&#34;&gt;Picgo&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;脑图 &lt;a href=&#34;https://app.diagrams.net/&#34;&gt;Draw.IO&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;密码同步+随机生成+保存 &lt;a href=&#34;https://hub.docker.com/r/vaultwarden/server&#34;&gt;BitWarden Docker&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;图片处理 Photoshop？&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;笔记工具 &lt;a href=&#34;/posts/39563241/&#34;&gt;git + gitlab docker&lt;/a&gt; 或者 &lt;a href=&#34;/posts/92d347d6/&#34;&gt;Joplin Docker&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;PDF 转换 Markdown , json 工具 &lt;a href=&#34;https://github.com/opendatalab/MinerU&#34;&gt;MinerU&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;AI-助手&#34;&gt;AI 助手&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;熟练使用各种AI 工具可以极大的提升工作与写作体验！下面简单介绍几种&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://chatgpt.com/&#34;&gt;ChatGPT&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://claude.ai/&#34;&gt;https://claude.ai/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/ollama/ollama&#34;&gt;ollama/ollama: 本地搭建各种大模型&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Stability-AI/stablediffusion&#34;&gt;Stability-AI/stablediffusion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/pinokiocomputer/pinokio&#34;&gt;pinokiocomputer/pinokio: AI Browser&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;图书管理&#34;&gt;图书管理&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://calibre-ebook.com/&#34;&gt;calibre&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;文献管理&#34;&gt;文献管理&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.zotero.org/&#34;&gt;zotero&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://zotero-chinese.com/user-guide/why-use-zotero&#34;&gt;zetero 中文社区&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://zhuanlan.zhihu.com/p/669287007&#34;&gt;zotero入门教程&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;编辑器&#34;&gt;编辑器&lt;/h3&gt;
&lt;p&gt;有些基于JavaScript的Markdown编辑器在处理大型文档时可能会表现出性能问题，以下是一些高性能的Markdown编辑器推荐，这些编辑器大多是桌面应用程序，通常能提供更流畅的使用体验：&lt;/p&gt;
&lt;h4 id=&#34;Typora&#34;&gt;&lt;strong&gt;Typora&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;特点&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;实时预览&lt;/li&gt;
&lt;li&gt;支持自定义主题&lt;/li&gt;
&lt;li&gt;集成表格、图表、代码块和数学公式&lt;/li&gt;
&lt;li&gt;无干扰的写作模式&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优点&lt;/strong&gt;：界面简洁，性能优异，支持多种导出格式。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;下载&lt;/strong&gt;：&lt;a href=&#34;https://typora.io/&#34;&gt;Typora&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;Mark-Text&#34;&gt;&lt;strong&gt;Mark Text&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;特点&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;实时预览&lt;/li&gt;
&lt;li&gt;支持CommonMark和GFM&lt;/li&gt;
&lt;li&gt;多标签页支持&lt;/li&gt;
&lt;li&gt;主题自定义&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优点&lt;/strong&gt;：开源，轻量且功能丰富。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;下载&lt;/strong&gt;：&lt;a href=&#34;https://marktext.app/&#34;&gt;Mark Text&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;Obsidian&#34;&gt;&lt;strong&gt;Obsidian&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;特点&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;强大的链接和笔记组织功能&lt;/li&gt;
&lt;li&gt;支持插件扩展&lt;/li&gt;
&lt;li&gt;离线使用&lt;/li&gt;
&lt;li&gt;实时预览和多面板支持&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优点&lt;/strong&gt;：适合笔记和知识管理，性能良好。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;下载&lt;/strong&gt;：&lt;a href=&#34;https://obsidian.md/&#34;&gt;Obsidian&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;Zettlr&#34;&gt;&lt;strong&gt;Zettlr&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;特点&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;专为学术写作设计&lt;/li&gt;
&lt;li&gt;支持文献管理&lt;/li&gt;
&lt;li&gt;实时预览&lt;/li&gt;
&lt;li&gt;多种导出格式（如LaTeX、PDF）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优点&lt;/strong&gt;：开源，适合长篇文档和学术写作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;下载&lt;/strong&gt;：&lt;a href=&#34;https://www.zettlr.com/&#34;&gt;Zettlr&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;HedgeDoc&#34;&gt;&lt;strong&gt;HedgeDoc&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;特点&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;实时协作&lt;/li&gt;
&lt;li&gt;支持嵌入媒体和LaTeX公式&lt;/li&gt;
&lt;li&gt;可自托管&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优点&lt;/strong&gt;：适合团队协作，开源。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;下载&lt;/strong&gt;：&lt;a href=&#34;https://hedgedoc.org/&#34;&gt;HedgeDoc&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;VNote&#34;&gt;&lt;strong&gt;VNote&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;特点&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;多标签页&lt;/li&gt;
&lt;li&gt;支持Markdown、Vim/Emacs模式&lt;/li&gt;
&lt;li&gt;集成文件管理&lt;/li&gt;
&lt;li&gt;实时预览和分屏模式&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优点&lt;/strong&gt;：性能稳定，适合技术写作和管理。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;下载&lt;/strong&gt;：&lt;a href=&#34;https://tamlok.github.io/vnote/&#34;&gt;VNote&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些Markdown编辑器大多是本地应用程序，具有更高的性能和稳定性，适合处理大型文档和复杂的写作需求。你可以根据自己的需求选择合适的编辑器。&lt;/p&gt;
&lt;h3 id=&#34;图片上传&#34;&gt;图片上传&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/PicGo&#34;&gt;Picgo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;截图&#34;&gt;截图&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;snipaste&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;FastStone Capture&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ScreenToGif&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;笔记管理&#34;&gt;笔记管理&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://joplinapp.org/&#34;&gt;Joplin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;疑难杂陈&#34;&gt;疑难杂陈&lt;/h2&gt;
&lt;p&gt;问答 1：&lt;code&gt;hexo g&lt;/code&gt;出错怎么办？&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;npm包升级到最新试试？&lt;/li&gt;
&lt;li&gt;npm modules 模流删除，重新安装&lt;/li&gt;
&lt;li&gt;先移除所有文章，编译看看是否文章中出现了语法错误！&lt;/li&gt;
&lt;li&gt;可以用二分法定位语法错误&lt;/li&gt;
&lt;li&gt;特别注意插件tag语法是否有误&lt;/li&gt;
&lt;li&gt;hexo或者npm包先删除编译试试&lt;/li&gt;
&lt;li&gt;hexo，theme主题功能先零时关闭试试&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;问答2：笔记丢失怎么办？&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;使用 Git 保存 + Gitlab 服务器&lt;/li&gt;
&lt;li&gt;使用 Joplin，没有任何限制的批量导入导出 Markdown！&lt;/li&gt;
&lt;li&gt;不要使用任何私有格式的笔记工具，例如X知笔记&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;问答3：修改不生效怎么办？&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;本地 Docker 或者直接本地测试时，重启 hexo docker，hexo 一些修改需要下一次启动才能生效&lt;/li&gt;
&lt;li&gt;重启电脑&lt;/li&gt;
&lt;li&gt;如果插件问题，试着删除插件，重新安装插件测试&lt;/li&gt;
&lt;li&gt;如果使用了 CDN 服务，在线测试时，修改不生效怎么办？清除 CDN 缓存，暂时停用 CDN（如Cloudflare），CTRL + F5 来刷新网页试试！或者检查CDN版本是否正确，如 Jsdelivr&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;后记&#34;&gt;后记&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;写到这篇文章，基本把博客很大部分文章都串起来了，串成了一个圆环，一颗颗珍珠终于连成一串美丽的珍珠项链。一篇篇博文不再是孤岛，而是开始连成一片大陆了。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;参考&#34;&gt;参考&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://hexo.io/zh-cn/docs/&#34;&gt;Hexo Doc&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://hexo.fluid-dev.com/posts/fluid-write/&#34;&gt;搭配 Fluid 如何优雅的写一篇文章&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://yearito.cn/posts/hexo-writing-skills.html&#34;&gt;Hexo 搭建个人博客系列：写作技巧篇&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;系列教程&#34;&gt;&lt;strong&gt;系列教程&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;全部文章RSS订阅&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&#34;Hexo系列&#34;&gt;&lt;strong&gt;Hexo系列&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;/categories/hexo/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;&lt;strong&gt;HexoRSS分类订阅&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[十万字图文教程]基于Hexo的matery主题搭建博客并深度优化完全一站式教程&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/40300608/&#34;&gt;Hexo Docker环境与Hexo基础配置篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/4d8a0b22/&#34;&gt;hexo博客自定义修改篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/9b056c86/&#34;&gt;hexo博客网络优化篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/5311b619/&#34;&gt;hexo博客增强部署篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/4a2050e2/&#34;&gt;hexo博客个性定制篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/84b4059a/&#34;&gt;hexo博客常见问题篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/253706ff/&#34;&gt;hexo博客博文撰写篇之完美笔记大攻略终极完全版&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/cf0f47fd/&#34;&gt;Hexo Markdown以及各种插件功能测试&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;markdown 各种其它语法插件，latex公式支持，mermaid图表，plant uml图表，URL卡片，bilibili卡片，github卡片，豆瓣卡片，插入音乐和视频，插入脑图，插入PDF，嵌入iframe&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/217ccdc1/&#34;&gt;在 Hexo 博客中插入 ECharts 动态图表&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/546887ac/&#34;&gt;使用nodeppt给hexo博客嵌入PPT演示&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/a3c81cc3/&#34;&gt;GithubProfile美化与自动获取RSS文章教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/e922fac8/&#34;&gt;Vercel部署高级用法教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/eb731135/&#34;&gt;webhook部署Hexo静态博客指南&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/8f9792ab/&#34;&gt;在宝塔VPS上面采用docker部署waline全流程图解教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/843eb2k9/&#34;&gt;自建Umami访问统计服务并统计静态博客UV/PV&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&#34;笔记系列&#34;&gt;&lt;strong&gt;笔记系列&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;/categories/note/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;&lt;strong&gt;Note分类RSS订阅&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/a8535f26/&#34;&gt;完美笔记进化论&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/253706ff/&#34;&gt;hexo博客博文撰写篇之完美笔记大攻略终极完全版&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/e6086437/&#34;&gt;Joplin入门指南&amp;amp;实践方案&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/45f878cd/&#34;&gt;替代Evernote免费开源笔记Joplin-网盘同步笔记历史版本Markdown可视化&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/92d347d6/&#34;&gt;Joplin 插件以及其Markdown语法。All in One!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/e3ee7f8b/&#34;&gt;Joplin 插件使用推荐&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/1802a8a7/&#34;&gt;为知笔记私有化Docker部署&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;link rel=&#34;stylesheet&#34; href=&#34;https://fastly.jsdelivr.net/npm/markmap-toolbar@0.18.10/dist/style.css&#34;&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/d3@7&#34;&gt;&lt;/script&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/markmap-view@0.18.10&#34;&gt;&lt;/script&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/markmap-toolbar@0.18.10&#34;&gt;&lt;/script&gt;
&lt;link rel=&#34;stylesheet&#34; href=&#34;/css/markmap.css&#34;&gt;

&lt;script src=&#34;/js/markmap.js&#34;&gt;&lt;/script&gt;
</content>
        <category term="markdown" />
        <category term="hexo" />
        <category term="写作" />
        <updated>2022-08-17T03:01:03.000Z</updated>
    </entry>
    <entry>
        <id>https://blog.17lai.site/posts/546887ac/</id>
        <title>使用nodeppt给hexo博客嵌入PPT演示</title>
        <link rel="alternate" href="https://blog.17lai.site/posts/546887ac/"/>
        <content type="html">&lt;blockquote&gt;
&lt;p&gt;给网页添加PPT演示功能，一定会炫酷到你的小伙伴，这里介绍nodeppt给hexo博客添加PPT演示功能，当然PPT演示也可以独立域名访问&lt;/p&gt;
&lt;/blockquote&gt;
&lt;span id=&#34;more&#34;&gt;&lt;/span&gt;
&lt;h2 id=&#34;插入PPT&#34;&gt;插入PPT&lt;/h2&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/ksky521/nodeppt&#34;&gt;Github&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://nodeppt.js.org/&#34;&gt;demo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;iframe src=&#34;https://nodeppt.js.org/#slide=1&#34; width=&#34;100%&#34; height=&#34;600&#34; name=&#34;topFrame&#34; scrolling=&#34;yes&#34; noresize=&#34;noresize&#34; frameborder=&#34;0&#34; id=&#34;topFrame&#34;&gt;
&lt;/iframe&gt;
&lt;h3 id=&#34;安装nodeppt&#34;&gt;安装nodeppt&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-bash&#34; data-language=&#34;bash&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;$ npm install -g nodeppt&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;使用nodeppt&#34;&gt;使用nodeppt&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-bash&#34; data-language=&#34;bash&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;# new：使用线上模板创建一个新的 md 文件
# create a new slide with an official template
$ nodeppt new slide.md
# 使用模板
$ nodeppt new username&amp;#x2F;repo xxx.md

# create a new slide straight from a github template
$ nodeppt new slide.md -t username&amp;#x2F;repo

# serve：启动一个 md 文件的 webpack dev server
# start local sever show slide
$ nodeppt serve slide.md
# start local sever show slide with port
$ nodeppt serve slide.md -p port

# build：编译产出一个 md 文件
# to build a slide
$ nodeppt build slide.md&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;生成的网页可以使用键盘操作(类似PPT操作)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Page: ↑/↓/←/→ Space Home End&lt;/li&gt;
&lt;li&gt;Fullscreen: F&lt;/li&gt;
&lt;li&gt;Overview: -/+&lt;/li&gt;
&lt;li&gt;Speaker Note: N&lt;/li&gt;
&lt;li&gt;Grid Background: Enter&lt;/li&gt;
&lt;li&gt;nodeppt 有演讲者模式，在页面 url 后面增加&lt;code&gt;?mode=speaker&lt;/code&gt; 既可以打开演讲者模式，双屏同步&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;端口port的好处是可以照着官网的demo文件学习和修改，保证多个slide.md在浏览器查看时不会冲突，默认的链接是&lt;a href=&#34;http://192.168.0.105:8080/%E3%80%82&#34;&gt;http://192.168.0.105:8080/。&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;官网的demo文件在&lt;a href=&#34;https://github.com/ksky521/nodeppt/tree/master/site&#34;&gt;Github&lt;/a&gt;其中的&lt;a href=&#34;https://github.com/ksky521/nodeppt/blob/master/site/index.md&#34;&gt;index.md&lt;/a&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;产生pdf：直接在浏览器上&lt;code&gt;command+P/ctrl+P&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;产生html：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;之前版本通过&lt;code&gt;nodeppt generate ./ppts/demo.md -a&lt;/code&gt;，见&lt;a href=&#34;https://github.com/zhangry868/nodePPT#html%E7%89%88&#34;&gt;Github nodePPT v1.2.0&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;当前版本产生html利用&lt;strong&gt;built&lt;/strong&gt;指令 ，例如&lt;code&gt;nodeppt build slide.md&lt;/code&gt;，产生的html在默认文件夹&lt;code&gt;dist&lt;/code&gt;中，包含CSS、IMG、JS三个文件夹和demo.html。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;在nodeppt仓库的Issue上找到一个小哥做的爬虫程序，亲测有效。会生成一个html文件，虽然文件会大一点。不过用&lt;a href=&#34;https://github.com/ksky521/nodeppt/blob/master/site/index.md&#34;&gt;index.md&lt;/a&gt;文件实验，发现(某些)图片响应时间过长导致失败，不过自己写的markdown基本无压力转html，给小哥点大大的赞👍而且小哥表示：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;之前试过直接用build，效果没问题，但build出来会有几个文件，如果通过手机或email分享出去直接播放的话稍显麻烦。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;nodeppt入门&#34;&gt;nodeppt入门&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;配置与hexo的post文件头一样，用yaml 语法设定基本配置&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;title: nodeppt markdown 演示
speaker: 三水清
url: https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;ksky521&amp;#x2F;nodeppt
js:
    - https:&amp;#x2F;&amp;#x2F;www.echartsjs.com&amp;#x2F;asset&amp;#x2F;theme&amp;#x2F;shine.js
prismTheme: solarizedlight
plugins:
    - echarts
    - mermaid
    - katex&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;正文使用&lt;code&gt;&amp;lt;slide&amp;gt;&lt;/code&gt;对整个 markdown 文件进行拆分，拆成单页的幻灯片内容。&lt;/li&gt;
&lt;li&gt;图片、样式、布局、icon、动画等设置可以看看仓库的文档和demo文件学习。&lt;/li&gt;
&lt;li&gt;演讲者模式的批注通过来&lt;code&gt;:::&lt;/code&gt;语法添加，然后再页面的链接添加&lt;code&gt;?mode=speaker&lt;/code&gt;，按&lt;code&gt;N&lt;/code&gt;开启演讲中模式。&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;:::note
## Note here
:::&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;踩坑&#34;&gt;踩坑&lt;/h3&gt;
&lt;h3 id=&#34;CSS样式导入失败&#34;&gt;CSS样式导入失败&lt;/h3&gt;
&lt;p&gt;生成的html数学公式的格式全部错误，即使在nodeppt的配置部分引入katex的JS和CSS，导出的文档仍然会出错。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;通过nodeppt build的html页面&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;打开生成的html文件可以看到&lt;a href=&#34;https://github.com/ksky521/nodeppt/issues/286&#34;&gt;2&lt;/a&gt;&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markup&#34; data-language=&#34;markup&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markup&#34;&gt;&amp;lt;link rel&amp;#x3D;&amp;quot;stylesheet&amp;quot; href&amp;#x3D;&amp;quot;&amp;#x2F;&amp;#x2F;cdn.staticfile.org&amp;#x2F;font-awesome&amp;#x2F;4.7.0&amp;#x2F;css&amp;#x2F;font-awesome.min.css&amp;quot; &amp;#x2F;&amp;gt;
&amp;lt;link rel&amp;#x3D;&amp;quot;stylesheet&amp;quot; href&amp;#x3D;&amp;quot;&amp;#x2F;&amp;#x2F;cdn.staticfile.org&amp;#x2F;prism&amp;#x2F;1.15.0&amp;#x2F;themes&amp;#x2F;prism.min.css&amp;quot; &amp;#x2F;&amp;gt;
&amp;lt;link rel&amp;#x3D;&amp;quot;stylesheet&amp;quot; href&amp;#x3D;&amp;quot;&amp;#x2F;&amp;#x2F;cdn.staticfile.org&amp;#x2F;KaTeX&amp;#x2F;0.10.0-rc.1&amp;#x2F;katex.min.css&amp;quot; &amp;#x2F;&amp;gt;
&amp;lt;link rel&amp;#x3D;&amp;quot;stylesheet&amp;quot; href&amp;#x3D;&amp;quot;&amp;#x2F;&amp;#x2F;cdn.staticfile.org&amp;#x2F;KaTeX&amp;#x2F;0.5.1&amp;#x2F;katex.min.css&amp;quot; &amp;#x2F;&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;只要把文件中所有&lt;code&gt;//&lt;/code&gt;开头的都替换成&lt;code&gt;http://&lt;/code&gt;，如&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markup&#34; data-language=&#34;markup&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markup&#34;&gt;&amp;lt;link rel&amp;#x3D;stylesheet href&amp;#x3D;https:&amp;#x2F;&amp;#x2F;cdn.staticfile.org&amp;#x2F;font-awesome&amp;#x2F;4.7.0&amp;#x2F;css&amp;#x2F;font-awesome.min.css&amp;gt;
&amp;lt;link rel&amp;#x3D;stylesheet href&amp;#x3D;https:&amp;#x2F;&amp;#x2F;cdn.staticfile.org&amp;#x2F;prism&amp;#x2F;1.15.0&amp;#x2F;themes&amp;#x2F;prism.min.css&amp;gt;
&amp;lt;link rel&amp;#x3D;stylesheet href&amp;#x3D;https:&amp;#x2F;&amp;#x2F;cdn.staticfile.org&amp;#x2F;KaTeX&amp;#x2F;0.10.0-rc.1&amp;#x2F;katex.min.css&amp;gt;
&amp;lt;link rel&amp;#x3D;stylesheet href&amp;#x3D;https:&amp;#x2F;&amp;#x2F;cdn.staticfile.org&amp;#x2F;KaTeX&amp;#x2F;0.5.1&amp;#x2F;katex.min.css&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;这样控制台就不会报错了，数学公式和fa-icon能正常显示了。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;通过py程序爬的html页面&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;配合katex官网的&lt;a href=&#34;https://katex.org/docs/browser.html#starter-template&#34;&gt;使用文档&lt;/a&gt;，在生成的html文件&lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;引用katex的JS和CSS。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markup&#34; data-language=&#34;markup&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markup&#34;&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;!-- KaTeX requires the use of the HTML5 doctype. Without it, KaTeX may not render properly --&amp;gt;
&amp;lt;html&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;link rel&amp;#x3D;&amp;quot;stylesheet&amp;quot; href&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;cdn.jsdelivr.net&amp;#x2F;npm&amp;#x2F;katex@0.11.1&amp;#x2F;dist&amp;#x2F;katex.min.css&amp;quot; integrity&amp;#x3D;&amp;quot;sha384-zB1R0rpPzHqg7Kpt0Aljp8JPLqbXI3bhnPWROx27a9N0Ll6ZP&amp;#x2F;+DiW&amp;#x2F;UqRcLbRjq&amp;quot; crossorigin&amp;#x3D;&amp;quot;anonymous&amp;quot;&amp;gt;

    &amp;lt;!-- The loading of KaTeX is deferred to speed up page rendering --&amp;gt;
    &amp;lt;script defer src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;cdn.jsdelivr.net&amp;#x2F;npm&amp;#x2F;katex@0.11.1&amp;#x2F;dist&amp;#x2F;katex.min.js&amp;quot; integrity&amp;#x3D;&amp;quot;sha384-y23I5Q6l+B6vatafAwxRu&amp;#x2F;0oK&amp;#x2F;79VlbSz7Q9aiSZUvyWYIYsd+qj+o24G5ZU2zJz&amp;quot; crossorigin&amp;#x3D;&amp;quot;anonymous&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;script&amp;gt;

    &amp;lt;!-- To automatically render math in text elements, include the auto-render extension: --&amp;gt;
    &amp;lt;script defer src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;cdn.jsdelivr.net&amp;#x2F;npm&amp;#x2F;katex@0.11.1&amp;#x2F;dist&amp;#x2F;contrib&amp;#x2F;auto-render.min.js&amp;quot; integrity&amp;#x3D;&amp;quot;sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI&amp;quot; crossorigin&amp;#x3D;&amp;quot;anonymous&amp;quot;
        onload&amp;#x3D;&amp;quot;renderMathInElement(document.body);&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;script&amp;gt;
  &amp;lt;&amp;#x2F;head&amp;gt;
  ...
&amp;lt;&amp;#x2F;html&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;添加后公式都能正确显示了。&lt;/p&gt;
&lt;h3 id=&#34;在博客添加nodeppt&#34;&gt;在博客添加nodeppt&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;通过py程序爬的html页面&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在Hexo博客里想调用或者链接nodeppt生成的html，需要hexo设置&lt;code&gt;skip_render&lt;/code&gt;, 指定不进行渲染的文件或文件夹，例如在&lt;code&gt;source&lt;/code&gt;目录下新建&lt;code&gt;nodeppt&lt;/code&gt;来存放nodeppt生成的html，则需要在根目录下的&lt;code&gt;_config.yml&lt;/code&gt;文件添加&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;skip_render: 
  - nodeppt&amp;#x2F;*.html&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;通过nodeppt build的html页面&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;skip_render: 
  - nodeppt&amp;#x2F;**&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;文件匹配是基于正则匹配的，如果需要忽略全部文件(&lt;code&gt;/*&lt;/code&gt;)、指定类型type文件(&lt;code&gt;/*.type&lt;/code&gt;)、全部文件以及子目录(&lt;code&gt;/**&lt;/code&gt;)以及多个文件需要用(&lt;code&gt;- file/**&lt;/code&gt;)。&lt;/p&gt;
&lt;p&gt;对应的文件访问格式是&lt;code&gt;../../nodeppt/file.html&lt;/code&gt;或&lt;code&gt;../../nodeppt/file/demo.html&lt;/code&gt;，本页演示的加载是通过&lt;code&gt;iframe&lt;/code&gt;实现的。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;&amp;lt;iframe src&amp;#x3D;&amp;quot;..&amp;#x2F;..&amp;#x2F;nodeppt&amp;#x2F;file.html&amp;quot; width&amp;#x3D;&amp;quot;100%&amp;quot; height&amp;#x3D;&amp;quot;500&amp;quot; name&amp;#x3D;&amp;quot;topFrame&amp;quot; scrolling&amp;#x3D;&amp;quot;yes&amp;quot; noresize&amp;#x3D;&amp;quot;noresize&amp;quot; frameborder&amp;#x3D;&amp;quot;0&amp;quot; id&amp;#x3D;&amp;quot;topFrame&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;iframe&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;注意：如果这一步不执行的话，debug会发现nodeppt生成的html会被hexo处理，产生错误&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-none&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;FATAL Something&amp;#39;s wrong. Maybe you can find the solution here: https:&amp;#x2F;&amp;#x2F;hexo.io&amp;#x2F;docs&amp;#x2F;troubleshooting.html
Nunjucks Error:  [Line 9418, Column 3465] expected variable end&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;至于使用cdn来使用html似乎不行，出来的是html的源码，而不是网页。如果使用cdn的方式能成功就不用这么麻烦的&lt;code&gt;skip_render&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;有一种简单的方法就是用github或者coding等部署nodeppt的html，再iframe的src填对应的网址。如果hexo的&lt;code&gt;skip_render&lt;/code&gt;设置正确，也可通过网址主页下的nodeppt下找到。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://pxxyyz.com/nodeppt/%E5%A4%9A%E5%A4%8D%E5%8F%98%E8%BF%91%E6%9C%9F%E8%BF%9B%E5%B1%95/demo.html&#34;&gt;https://pxxyyz.com/nodeppt/%E5%A4%9A%E5%A4%8D%E5%8F%98%E8%BF%91%E6%9C%9F%E8%BF%9B%E5%B1%95/demo.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://uwrfy5.coding-pages.com/&#34;&gt;http://uwrfy5.coding-pages.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;相关项目&#34;&gt;相关项目&lt;/h2&gt;
&lt;h3 id=&#34;slidev&#34;&gt;slidev&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;又一个 Web 演示PPT，基于 VUE&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/slidevjs/slidev&#34;&gt;slidev&lt;/a&gt; 开发相当活跃！在线试用 &lt;a href=&#34;https://sli.dev/new&#34;&gt;sli.dev/new&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class=&#34;github-card-container&#34; style=&#34;position: relative; min-height: 150px;&#34;&gt;
  &lt;div class=&#34;github-card&#34; data-user=&#34;slidevjs&#34; data-repo=&#34;slidev&#34;&gt;&lt;/div&gt;
  &lt;noscript&gt;
    &lt;div class=&#34;github-card-error&#34;&gt;
      JavaScript is required to load GitHub Cards
    &lt;/div&gt;
  &lt;/noscript&gt;
&lt;/div&gt;
    
&lt;h3 id=&#34;presenterm&#34;&gt;presenterm&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;又一个 Web 演示PPT，基于 rust, 终端风格&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/mfontanini/presenterm&#34;&gt;presenterm&lt;/a&gt; A markdown terminal slideshow tool&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;参考&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;编辑整理 &lt;a href=&#34;https://pxxyyz.com/posts/44941/&#34;&gt;https://pxxyyz.com/posts/44941/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;系列教程&#34;&gt;&lt;strong&gt;系列教程&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;全部文章RSS订阅&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&#34;Hexo系列&#34;&gt;&lt;strong&gt;Hexo系列&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;/categories/hexo/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;&lt;strong&gt;HexoRSS分类订阅&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[十万字图文教程]基于Hexo的matery主题搭建博客并深度优化完全一站式教程&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/40300608/&#34;&gt;Hexo Docker环境与Hexo基础配置篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/4d8a0b22/&#34;&gt;hexo博客自定义修改篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/9b056c86/&#34;&gt;hexo博客网络优化篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/5311b619/&#34;&gt;hexo博客增强部署篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/4a2050e2/&#34;&gt;hexo博客个性定制篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/84b4059a/&#34;&gt;hexo博客常见问题篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/253706ff/&#34;&gt;hexo博客博文撰写篇之完美笔记大攻略终极完全版&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/cf0f47fd/&#34;&gt;Hexo Markdown以及各种插件功能测试&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;markdown 各种其它语法插件，latex公式支持，mermaid图表，plant uml图表，URL卡片，bilibili卡片，github卡片，豆瓣卡片，插入音乐和视频，插入脑图，插入PDF，嵌入iframe&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/217ccdc1/&#34;&gt;在 Hexo 博客中插入 ECharts 动态图表&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/546887ac/&#34;&gt;使用nodeppt给hexo博客嵌入PPT演示&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/a3c81cc3/&#34;&gt;GithubProfile美化与自动获取RSS文章教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/e922fac8/&#34;&gt;Vercel部署高级用法教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/eb731135/&#34;&gt;webhook部署Hexo静态博客指南&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/8f9792ab/&#34;&gt;在宝塔VPS上面采用docker部署waline全流程图解教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/843eb2k9/&#34;&gt;自建Umami访问统计服务并统计静态博客UV/PV&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;link rel=&#34;stylesheet&#34; href=&#34;https://fastly.jsdelivr.net/npm/markmap-toolbar@0.18.10/dist/style.css&#34;&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/d3@7&#34;&gt;&lt;/script&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/markmap-view@0.18.10&#34;&gt;&lt;/script&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/markmap-toolbar@0.18.10&#34;&gt;&lt;/script&gt;
&lt;link rel=&#34;stylesheet&#34; href=&#34;/css/markmap.css&#34;&gt;

&lt;script src=&#34;/js/markmap.js&#34;&gt;&lt;/script&gt;
</content>
        <category term="hexo" />
        <category term="matery" />
        <category term="nodeppt" />
        <updated>2022-08-11T13:48:59.000Z</updated>
    </entry>
    <entry>
        <id>https://blog.17lai.site/posts/217ccdc1/</id>
        <title>在 Hexo 博客中插入 ECharts 动态图表</title>
        <link rel="alternate" href="https://blog.17lai.site/posts/217ccdc1/"/>
        <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&#34;http://echarts.baidu.com/index.html&#34;&gt;ECharts&lt;/a&gt;，一个纯 Javascript 的图表库，可以流畅的运行在 PC 和移动设备上，兼容当前绝大部分浏览器（IE8/9/10/11，Chrome，Firefox，Safari等），底层依赖轻量级的 Canvas 类库 ZRender，提供直观，生动，可交互，可高度个性化定制的数据可视化图表。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;span id=&#34;more&#34;&gt;&lt;/span&gt;
&lt;h2 id=&#34;插入-ECharts-动态图表&#34;&gt;插入 ECharts 动态图表&lt;/h2&gt;
&lt;p&gt;在 &lt;a href=&#34;http://blog.udacity.com/2016/03/12-best-charting-libraries-for-web-developers.html&#34;&gt;12 Best Charting Libraries for Web Developers - Christopher Watkins&lt;/a&gt; 一文中，博主 Christopher Watkins 向我们介绍了 12 款为网页开发者推荐的绘图库。其中不乏大名鼎鼎的 Google Charts，D3.js 和 HighCharts 这样的富图表库，还有不少其他的特型图表库，它们在展示某些特定的图表时，非常出色。百度开发维护的 ECharts 当然也在其中。&lt;/p&gt;
&lt;p&gt;ECharts 作为国产工具，在语言上对中文开发者有着天然的优势，官方文档对每一个细节、参数、配置都有详尽的说明，对于新手非常的友好。另外一个重要的方面，就是 ECharts 的图表颜值很高，默认的主题和配色可以呈现出优雅漂亮的图表。所以，我也一直选择 ECharts 作为我的网页图表绘图工具。&lt;/p&gt;
&lt;h2 id=&#34;Hexo-中的-ECharts&#34;&gt;Hexo 中的 ECharts&lt;/h2&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-bash&#34; data-language=&#34;bash&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;npm install hexo-tag-echarts --save&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;注意：ECharts官网教程-[5 分钟上手 ECharts]([&lt;a href=&#34;https://echarts.apache.org/zh/tutorial.html#5%20%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8B%20ECharts&#34;&gt;https://echarts.apache.org/zh/tutorial.html#5 分钟上手 ECharts&lt;/a&gt;](&lt;a href=&#34;https://echarts.apache.org/zh/tutorial.html#5&#34;&gt;https://echarts.apache.org/zh/tutorial.html#5&lt;/a&gt; 分钟上手 ECharts))里的&lt;code&gt;npm install echarts --save&lt;/code&gt;并不适合hexo博客，这种安装方式无效，请安装&lt;code&gt;hexo-tag-echarts&lt;/code&gt;插件。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;添加如下js文件&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markdown&#34; data-language=&#34;markdown&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markdown&#34;&gt;&amp;#x2F;&amp;#x2F; 通过jsDelivr的CDN引入echarts
&amp;lt;script src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;cdn.jsdelivr.net&amp;#x2F;npm&amp;#x2F;echarts@4.8.0&amp;#x2F;dist&amp;#x2F;echarts.min.js&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;script&amp;gt;
&amp;#x2F;&amp;#x2F; 使用GL里的各种组件时需要添加，否则可不需要
&amp;lt;script src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;cdn.jsdelivr.net&amp;#x2F;npm&amp;#x2F;echarts-gl@1.1.1&amp;#x2F;dist&amp;#x2F;echarts-gl.min.js&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;在markdown文件下添加echarts，格式如下&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markdown&#34; data-language=&#34;markdown&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markdown&#34;&gt;&amp;lt;script&amp;gt;
...
&amp;lt;&amp;#x2F;script&amp;gt;

&amp;#123;% echarts 400 &amp;#39;85%&amp;#39; %&amp;#125;
...
&amp;#123;% endecharts %&amp;#125;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt;中添加定义的变量和函数，若无设定则可删掉&lt;code&gt;&amp;lt;script&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;{% echarts 400 &#39;85%&#39; %}&lt;/code&gt;和&lt;code&gt;{% endecharts %}&lt;/code&gt;之间添加echarts的&lt;code&gt;option&lt;/code&gt; 。
&lt;ul&gt;
&lt;li&gt;参数400指定图表展示的高度为400px，85%则指定图表展示的宽度为85%，如不写明这两项参数则默认值为高度400px，宽度81%。&lt;/li&gt;
&lt;li&gt;title：标题组件，包含主标题和副标题。&lt;/li&gt;
&lt;li&gt;legend：图例组件。&lt;/li&gt;
&lt;li&gt;tooltip：提示框组件。&lt;/li&gt;
&lt;li&gt;toolbox：工具栏。内置有导出图片，数据视图，动态类型切换，数据区域缩放，重置五个工具。&lt;/li&gt;
&lt;li&gt;xAxis、yAxis：直角坐标系 grid 中的 x 轴、y轴。&lt;/li&gt;
&lt;li&gt;series：系列列表。每个系列通过&lt;code&gt;type&lt;/code&gt;决定自己的图表类型。
&lt;ul&gt;
&lt;li&gt;series-line：折线/面积图&lt;/li&gt;
&lt;li&gt;series-bar：柱状/条形图&lt;/li&gt;
&lt;li&gt;series-pie：饼图&lt;/li&gt;
&lt;li&gt;series-scatter：散点图&lt;/li&gt;
&lt;li&gt;series-radar：雷达图&lt;/li&gt;
&lt;li&gt;series-tree：树图&lt;/li&gt;
&lt;li&gt;series-boxplot：箱形图&lt;/li&gt;
&lt;li&gt;series-candlestick：K线图&lt;/li&gt;
&lt;li&gt;series-heatmap：热力图&lt;/li&gt;
&lt;li&gt;series-graph：关系图&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;多个图表的数据和函数可能会冲突，请注意！&lt;/li&gt;
&lt;li&gt;直接在html中直接绘制，然后用&lt;code&gt;&amp;lt;iframe&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/code&gt;展示效果更佳。关于hexo的html文件渲染问题，可以参考&lt;a href=&#34;https://pxxyyz.com/posts/13656/&#34;&gt;Fluid+自定义html&lt;/a&gt;，主要是去掉&lt;code&gt;head&lt;/code&gt;部分的说明。&lt;/li&gt;
&lt;li&gt;在html绘图ECharts的格式如下：&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markup&#34; data-language=&#34;markup&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markup&#34;&gt;&amp;lt;script src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;cdn.jsdelivr.net&amp;#x2F;npm&amp;#x2F;echarts@5.3.3&amp;#x2F;dist&amp;#x2F;echarts.min.js&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;script&amp;gt;
&amp;lt;!-- 为 ECharts 准备一个具备大小（宽高）的 DOM --&amp;gt;
&amp;lt;div id&amp;#x3D;&amp;quot;main&amp;quot; style&amp;#x3D;&amp;quot;width: 600px;height:400px;&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;div&amp;gt;
&amp;lt;script type&amp;#x3D;&amp;quot;text&amp;#x2F;javascript&amp;quot;&amp;gt;
  &amp;#x2F;&amp;#x2F; 基于准备好的dom，初始化echarts实例
  var myChart &amp;#x3D; echarts.init(document.getElementById(&amp;#39;main&amp;#39;));
  &amp;#x2F;&amp;#x2F; 指定图表的配置项和数据
  var option &amp;#x3D; &amp;#123;
    ...
  &amp;#125;;
  &amp;#x2F;&amp;#x2F; 使用刚指定的配置项和数据显示图表。
  myChart.setOption(option);
  &amp;#x2F;&amp;#x2F; 刷新调整
  window.onresize &amp;#x3D; function () &amp;#123;
    myChart.resize();
  &amp;#125;
&amp;lt;&amp;#x2F;script&amp;gt;Copy&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;部分echart需要引入其他js，如&lt;code&gt;bmap&lt;/code&gt;、&lt;code&gt;jquery&lt;/code&gt;等，请自行添加。&lt;/li&gt;
&lt;li&gt;使用百度地图的api需要&lt;a href=&#34;http://lbsyun.baidu.com/apiconsole/key?application=key&#34;&gt;申请密钥(ak)&lt;/a&gt;，使用格式如下，注意替换&lt;code&gt;FAKE_AK&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markup&#34; data-language=&#34;markup&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markup&#34;&gt;&amp;lt;script type&amp;#x3D;&amp;quot;text&amp;#x2F;javascript&amp;quot; src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;api.map.baidu.com&amp;#x2F;api?v&amp;#x3D;2.0&amp;amp;ak&amp;#x3D;FAKE_AK&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;script&amp;gt;
&amp;lt;script type&amp;#x3D;&amp;quot;text&amp;#x2F;javascript&amp;quot; src&amp;#x3D;&amp;quot;https:&amp;#x2F;&amp;#x2F;api.map.baidu.com&amp;#x2F;getscript?v&amp;#x3D;2.0&amp;amp;ak&amp;#x3D;FAKE_AK&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;script&amp;gt;Copy&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;script src=&#34;https://cdn.jsdelivr.net/npm/echarts@4.8.0/dist/echarts.min.js&#34;&gt;&lt;/script&gt;
&lt;script src=&#34;https://api.map.baidu.com/getscript?v=2.0&amp;ak=84y4lPUPCHIrwRUQPc61uBewdYZ1pHM2&#34;&gt;&lt;/script&gt;
&lt;script src=&#34;https://cdn.jsdelivr.net/npm/echarts-gl@1.1.1/dist/echarts-gl.min.js&#34;&gt;&lt;/script&gt;
&lt;h2 id=&#34;实例&#34;&gt;实例&lt;/h2&gt;
&lt;p&gt;下面给出一些&lt;a href=&#34;https://echarts.apache.org/examples/zh/index.html&#34;&gt;echarts官方实例&lt;/a&gt;，大多数都可以&lt;strong&gt;交互&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id=&#34;折线图Line&#34;&gt;折线图Line&lt;/h3&gt;
&lt;h4 id=&#34;Stacked-area-chart&#34;&gt;&lt;a href=&#34;https://echarts.apache.org/examples/zh/editor.html?c=area-stack&#34;&gt;Stacked area chart&lt;/a&gt;&lt;/h4&gt;
&lt;div id=&#34;echarts7356&#34; style=&#34;width: 85%;height: 400px;margin: 0 auto&#34;&gt;&lt;/div&gt;
&lt;script type=&#34;text/javascript&#34;&gt;
        // 基于准备好的dom，初始化echarts实例
        var myChart = echarts.init(document.getElementById(&#39;echarts7356&#39;));

        // 指定图表的配置项和数据
        var option = option = {
    title: {
        text: &#39;堆叠区域图&#39;
    },
    tooltip: {
        trigger: &#39;axis&#39;,
        axisPointer: {
            type: &#39;cross&#39;,
            label: {
                backgroundColor: &#39;#6a7985&#39;
            }
        }
    },
    legend: {
        data: [&#39;邮件营销&#39;, &#39;联盟广告&#39;, &#39;视频广告&#39;, &#39;直接访问&#39;, &#39;搜索引擎&#39;]
    },
    toolbox: {
        feature: {
            saveAsImage: {}
        }
    },
    grid: {
        left: &#39;3%&#39;,
        right: &#39;4%&#39;,
        bottom: &#39;3%&#39;,
        containLabel: true
    },
    xAxis: [
        {
            type: &#39;category&#39;,
            boundaryGap: false,
            data: [&#39;周一&#39;, &#39;周二&#39;, &#39;周三&#39;, &#39;周四&#39;, &#39;周五&#39;, &#39;周六&#39;, &#39;周日&#39;]
        }
    ],
    yAxis: [
        {
            type: &#39;value&#39;
        }
    ],
    series: [
        {
            name: &#39;邮件营销&#39;,
            type: &#39;line&#39;,
            stack: &#39;总量&#39;,
            areaStyle: {},
            data: [120, 132, 101, 134, 90, 230, 210]
        },
        {
            name: &#39;联盟广告&#39;,
            type: &#39;line&#39;,
            stack: &#39;总量&#39;,
            areaStyle: {},
            data: [220, 182, 191, 234, 290, 330, 310]
        },
        {
            name: &#39;视频广告&#39;,
            type: &#39;line&#39;,
            stack: &#39;总量&#39;,
            areaStyle: {},
            data: [150, 232, 201, 154, 190, 330, 410]
        },
        {
            name: &#39;直接访问&#39;,
            type: &#39;line&#39;,
            stack: &#39;总量&#39;,
            areaStyle: {},
            data: [320, 332, 301, 334, 390, 330, 320]
        },
        {
            name: &#39;搜索引擎&#39;,
            type: &#39;line&#39;,
            stack: &#39;总量&#39;,
            label: {
                normal: {
                    show: true,
                    position: &#39;top&#39;
                }
            },
            areaStyle: {},
            data: [820, 932, 901, 934, 1290, 1330, 1320]
        }
    ]
};

        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
&lt;/script&gt;
&lt;h4 id=&#34;Area-Pieces&#34;&gt;&lt;a href=&#34;https://echarts.apache.org/examples/zh/editor.html?c=area-pieces&#34;&gt;Area Pieces&lt;/a&gt;&lt;/h4&gt;
&lt;div id=&#34;echarts9329&#34; style=&#34;width: 85%;height: 400px;margin: 0 auto&#34;&gt;&lt;/div&gt;
&lt;script type=&#34;text/javascript&#34;&gt;
        // 基于准备好的dom，初始化echarts实例
        var myChart = echarts.init(document.getElementById(&#39;echarts9329&#39;));

        // 指定图表的配置项和数据
        var option = option = {
    xAxis: {
        type: &#39;category&#39;,
        boundaryGap: false
    },
    yAxis: {
        type: &#39;value&#39;,
        boundaryGap: [0, &#39;30%&#39;]
    },
    visualMap: {
        type: &#39;piecewise&#39;,
        show: false,
        dimension: 0,
        seriesIndex: 0,
        pieces: [{
            gt: 1,
            lt: 3,
            color: &#39;rgba(0, 180, 0, 0.5)&#39;
        }, {
            gt: 5,
            lt: 7,
            color: &#39;rgba(0, 180, 0, 0.5)&#39;
        }]
    },
    series: [
        {
            type: &#39;line&#39;,
            smooth: 0.6,
            symbol: &#39;none&#39;,
            lineStyle: {
                color: &#39;green&#39;,
                width: 5
            },
            markLine: {
                symbol: [&#39;none&#39;, &#39;none&#39;],
                label: {show: false},
                data: [
                    {xAxis: 1},
                    {xAxis: 3},
                    {xAxis: 5},
                    {xAxis: 7}
                ]
            },
            areaStyle: {},
            data: [
                [&#39;2019-10-10&#39;, 200],
                [&#39;2019-10-11&#39;, 400],
                [&#39;2019-10-12&#39;, 650],
                [&#39;2019-10-13&#39;, 500],
                [&#39;2019-10-14&#39;, 250],
                [&#39;2019-10-15&#39;, 300],
                [&#39;2019-10-16&#39;, 450],
                [&#39;2019-10-17&#39;, 300],
                [&#39;2019-10-18&#39;, 100]
            ]
        }
    ]
};

        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
&lt;/script&gt;
&lt;h4 id=&#34;Rainfall&#34;&gt;&lt;a href=&#34;https://echarts.apache.org/examples/zh/editor.html?c=area-rainfall&#34;&gt;Rainfall&lt;/a&gt;&lt;/h4&gt;
&lt;div id=&#34;echarts5534&#34; style=&#34;width: 85%;height: 400px;margin: 0 auto&#34;&gt;&lt;/div&gt;
&lt;script type=&#34;text/javascript&#34;&gt;
        // 基于准备好的dom，初始化echarts实例
        var myChart = echarts.init(document.getElementById(&#39;echarts5534&#39;));

        // 指定图表的配置项和数据
        var option = option = {
    title: {
        text: &#39;雨量流量关系图&#39;,
        subtext: &#39;数据来自西安兰特水电测控技术有限公司&#39;,
        left: &#39;center&#39;,
        align: &#39;right&#39;
    },
    grid: {
        bottom: 80
    },
    toolbox: {
        feature: {
            dataZoom: {
                yAxisIndex: &#39;none&#39;
            },
            restore: {},
            saveAsImage: {}
        }
    },
    tooltip: {
        trigger: &#39;axis&#39;,
        axisPointer: {
            type: &#39;cross&#39;,
            animation: false,
            label: {
                backgroundColor: &#39;#505765&#39;
            }
        }
    },
    legend: {
        data: [&#39;流量&#39;, &#39;降雨量&#39;],
        left: 10
    },
    dataZoom: [
        {
            show: true,
            realtime: true,
            start: 65,
            end: 85
        },
        {
            type: &#39;inside&#39;,
            realtime: true,
            start: 65,
            end: 85
        }
    ],
    xAxis: [
        {
            type: &#39;category&#39;,
            boundaryGap: false,
            axisLine: {onZero: false},
            data: [
                &#39;2009/6/12 2:00&#39;, &#39;2009/6/12 3:00&#39;, &#39;2009/6/12 4:00&#39;, &#39;2009/6/12 5:00&#39;, &#39;2009/6/12 6:00&#39;, &#39;2009/6/12 7:00&#39;, &#39;2009/6/12 8:00&#39;, &#39;2009/6/12 9:00&#39;, &#39;2009/6/12 10:00&#39;, &#39;2009/6/12 11:00&#39;, &#39;2009/6/12 12:00&#39;, &#39;2009/6/12 13:00&#39;, &#39;2009/6/12 14:00&#39;, &#39;2009/6/12 15:00&#39;, &#39;2009/6/12 16:00&#39;, &#39;2009/6/12 17:00&#39;, &#39;2009/6/12 18:00&#39;, &#39;2009/6/12 19:00&#39;, &#39;2009/6/12 20:00&#39;, &#39;2009/6/12 21:00&#39;, &#39;2009/6/12 22:00&#39;, &#39;2009/6/12 23:00&#39;,
                &#39;2009/6/13 0:00&#39;, &#39;2009/6/13 1:00&#39;, &#39;2009/6/13 2:00&#39;, &#39;2009/6/13 3:00&#39;, &#39;2009/6/13 4:00&#39;, &#39;2009/6/13 5:00&#39;, &#39;2009/6/13 6:00&#39;, &#39;2009/6/13 7:00&#39;, &#39;2009/6/13 8:00&#39;, &#39;2009/6/13 9:00&#39;, &#39;2009/6/13 10:00&#39;, &#39;2009/6/13 11:00&#39;, &#39;2009/6/13 12:00&#39;, &#39;2009/6/13 13:00&#39;, &#39;2009/6/13 14:00&#39;, &#39;2009/6/13 15:00&#39;, &#39;2009/6/13 16:00&#39;, &#39;2009/6/13 17:00&#39;, &#39;2009/6/13 18:00&#39;, &#39;2009/6/13 19:00&#39;, &#39;2009/6/13 20:00&#39;, &#39;2009/6/13 21:00&#39;, &#39;2009/6/13 22:00&#39;, &#39;2009/6/13 23:00&#39;,
                &#39;2009/6/14 0:00&#39;, &#39;2009/6/14 1:00&#39;, &#39;2009/6/14 2:00&#39;, &#39;2009/6/14 3:00&#39;, &#39;2009/6/14 4:00&#39;, &#39;2009/6/14 5:00&#39;, &#39;2009/6/14 6:00&#39;, &#39;2009/6/14 7:00&#39;, &#39;2009/6/14 8:00&#39;, &#39;2009/6/14 9:00&#39;, &#39;2009/6/14 10:00&#39;, &#39;2009/6/14 11:00&#39;, &#39;2009/6/14 12:00&#39;, &#39;2009/6/14 13:00&#39;, &#39;2009/6/14 14:00&#39;, &#39;2009/6/14 15:00&#39;, &#39;2009/6/14 16:00&#39;, &#39;2009/6/14 17:00&#39;, &#39;2009/6/14 18:00&#39;, &#39;2009/6/14 19:00&#39;, &#39;2009/6/14 20:00&#39;, &#39;2009/6/14 21:00&#39;, &#39;2009/6/14 22:00&#39;, &#39;2009/6/14 23:00&#39;,
                &#39;2009/6/15 0:00&#39;, &#39;2009/6/15 1:00&#39;, &#39;2009/6/15 2:00&#39;, &#39;2009/6/15 3:00&#39;, &#39;2009/6/15 4:00&#39;, &#39;2009/6/15 5:00&#39;, &#39;2009/6/15 6:00&#39;, &#39;2009/6/15 7:00&#39;, &#39;2009/6/15 8:00&#39;, &#39;2009/6/15 9:00&#39;, &#39;2009/6/15 10:00&#39;, &#39;2009/6/15 11:00&#39;, &#39;2009/6/15 12:00&#39;, &#39;2009/6/15 13:00&#39;, &#39;2009/6/15 14:00&#39;, &#39;2009/6/15 15:00&#39;, &#39;2009/6/15 16:00&#39;, &#39;2009/6/15 17:00&#39;, &#39;2009/6/15 18:00&#39;, &#39;2009/6/15 19:00&#39;, &#39;2009/6/15 20:00&#39;, &#39;2009/6/15 21:00&#39;, &#39;2009/6/15 22:00&#39;, &#39;2009/6/15 23:00&#39;,
                &#39;2009/6/15 0:00&#39;, &#39;2009/6/16 1:00&#39;, &#39;2009/6/16 2:00&#39;, &#39;2009/6/16 3:00&#39;, &#39;2009/6/16 4:00&#39;, &#39;2009/6/16 5:00&#39;, &#39;2009/6/16 6:00&#39;, &#39;2009/6/16 7:00&#39;, &#39;2009/6/16 8:00&#39;, &#39;2009/6/16 9:00&#39;, &#39;2009/6/16 10:00&#39;, &#39;2009/6/16 11:00&#39;, &#39;2009/6/16 12:00&#39;, &#39;2009/6/16 13:00&#39;, &#39;2009/6/16 14:00&#39;, &#39;2009/6/16 15:00&#39;, &#39;2009/6/16 16:00&#39;, &#39;2009/6/16 17:00&#39;, &#39;2009/6/16 18:00&#39;, &#39;2009/6/16 19:00&#39;, &#39;2009/6/16 20:00&#39;, &#39;2009/6/16 21:00&#39;, &#39;2009/6/16 22:00&#39;, &#39;2009/6/16 23:00&#39;,
                &#39;2009/6/15 0:00&#39;, &#39;2009/6/17 1:00&#39;, &#39;2009/6/17 2:00&#39;, &#39;2009/6/17 3:00&#39;, &#39;2009/6/17 4:00&#39;, &#39;2009/6/17 5:00&#39;, &#39;2009/6/17 6:00&#39;, &#39;2009/6/17 7:00&#39;, &#39;2009/6/17 8:00&#39;, &#39;2009/6/17 9:00&#39;, &#39;2009/6/17 10:00&#39;, &#39;2009/6/17 11:00&#39;, &#39;2009/6/17 12:00&#39;, &#39;2009/6/17 13:00&#39;, &#39;2009/6/17 14:00&#39;, &#39;2009/6/17 15:00&#39;, &#39;2009/6/17 16:00&#39;, &#39;2009/6/17 17:00&#39;, &#39;2009/6/17 18:00&#39;, &#39;2009/6/17 19:00&#39;, &#39;2009/6/17 20:00&#39;, &#39;2009/6/17 21:00&#39;, &#39;2009/6/17 22:00&#39;, &#39;2009/6/17 23:00&#39;,
                &#39;2009/6/18 0:00&#39;, &#39;2009/6/18 1:00&#39;, &#39;2009/6/18 2:00&#39;, &#39;2009/6/18 3:00&#39;, &#39;2009/6/18 4:00&#39;, &#39;2009/6/18 5:00&#39;, &#39;2009/6/18 6:00&#39;, &#39;2009/6/18 7:00&#39;, &#39;2009/6/18 8:00&#39;, &#39;2009/6/18 9:00&#39;, &#39;2009/6/18 10:00&#39;, &#39;2009/6/18 11:00&#39;, &#39;2009/6/18 12:00&#39;, &#39;2009/6/18 13:00&#39;, &#39;2009/6/18 14:00&#39;, &#39;2009/6/18 15:00&#39;, &#39;2009/6/18 16:00&#39;, &#39;2009/6/18 17:00&#39;, &#39;2009/6/18 18:00&#39;, &#39;2009/6/18 19:00&#39;, &#39;2009/6/18 20:00&#39;, &#39;2009/6/18 21:00&#39;, &#39;2009/6/18 22:00&#39;, &#39;2009/6/18 23:00&#39;,
                &#39;2009/6/15 0:00&#39;, &#39;2009/6/19 1:00&#39;, &#39;2009/6/19 2:00&#39;, &#39;2009/6/19 3:00&#39;, &#39;2009/6/19 4:00&#39;, &#39;2009/6/19 5:00&#39;, &#39;2009/6/19 6:00&#39;, &#39;2009/6/19 7:00&#39;, &#39;2009/6/19 8:00&#39;, &#39;2009/6/19 9:00&#39;, &#39;2009/6/19 10:00&#39;, &#39;2009/6/19 11:00&#39;, &#39;2009/6/19 12:00&#39;, &#39;2009/6/19 13:00&#39;, &#39;2009/6/19 14:00&#39;, &#39;2009/6/19 15:00&#39;, &#39;2009/6/19 16:00&#39;, &#39;2009/6/19 17:00&#39;, &#39;2009/6/19 18:00&#39;, &#39;2009/6/19 19:00&#39;, &#39;2009/6/19 20:00&#39;, &#39;2009/6/19 21:00&#39;, &#39;2009/6/19 22:00&#39;, &#39;2009/6/19 23:00&#39;,
                &#39;2009/6/20 0:00&#39;, &#39;2009/6/20 1:00&#39;, &#39;2009/6/20 2:00&#39;, &#39;2009/6/20 3:00&#39;, &#39;2009/6/20 4:00&#39;, &#39;2009/6/20 5:00&#39;, &#39;2009/6/20 6:00&#39;, &#39;2009/6/20 7:00&#39;, &#39;2009/6/20 8:00&#39;, &#39;2009/6/20 9:00&#39;, &#39;2009/6/20 10:00&#39;, &#39;2009/6/20 11:00&#39;, &#39;2009/6/20 12:00&#39;, &#39;2009/6/20 13:00&#39;, &#39;2009/6/20 14:00&#39;, &#39;2009/6/20 15:00&#39;, &#39;2009/6/20 16:00&#39;, &#39;2009/6/20 17:00&#39;, &#39;2009/6/20 18:00&#39;, &#39;2009/6/20 19:00&#39;, &#39;2009/6/20 20:00&#39;, &#39;2009/6/20 21:00&#39;, &#39;2009/6/20 22:00&#39;, &#39;2009/6/20 23:00&#39;,
                &#39;2009/6/21 0:00&#39;, &#39;2009/6/21 1:00&#39;, &#39;2009/6/21 2:00&#39;, &#39;2009/6/21 3:00&#39;, &#39;2009/6/21 4:00&#39;, &#39;2009/6/21 5:00&#39;, &#39;2009/6/21 6:00&#39;, &#39;2009/6/21 7:00&#39;, &#39;2009/6/21 8:00&#39;, &#39;2009/6/21 9:00&#39;, &#39;2009/6/21 10:00&#39;, &#39;2009/6/21 11:00&#39;, &#39;2009/6/21 12:00&#39;, &#39;2009/6/21 13:00&#39;, &#39;2009/6/21 14:00&#39;, &#39;2009/6/21 15:00&#39;, &#39;2009/6/21 16:00&#39;, &#39;2009/6/21 17:00&#39;, &#39;2009/6/21 18:00&#39;, &#39;2009/6/21 19:00&#39;, &#39;2009/6/21 20:00&#39;, &#39;2009/6/21 21:00&#39;, &#39;2009/6/21 22:00&#39;, &#39;2009/6/21 23:00&#39;,
                &#39;2009/6/22 0:00&#39;, &#39;2009/6/22 1:00&#39;, &#39;2009/6/22 2:00&#39;, &#39;2009/6/22 3:00&#39;, &#39;2009/6/22 4:00&#39;, &#39;2009/6/22 5:00&#39;, &#39;2009/6/22 6:00&#39;, &#39;2009/6/22 7:00&#39;, &#39;2009/6/22 8:00&#39;, &#39;2009/6/22 9:00&#39;, &#39;2009/6/22 10:00&#39;, &#39;2009/6/22 11:00&#39;, &#39;2009/6/22 12:00&#39;, &#39;2009/6/22 13:00&#39;, &#39;2009/6/22 14:00&#39;, &#39;2009/6/22 15:00&#39;, &#39;2009/6/22 16:00&#39;, &#39;2009/6/22 17:00&#39;, &#39;2009/6/22 18:00&#39;, &#39;2009/6/22 19:00&#39;, &#39;2009/6/22 20:00&#39;, &#39;2009/6/22 21:00&#39;, &#39;2009/6/22 22:00&#39;, &#39;2009/6/22 23:00&#39;,
                &#39;2009/6/23 0:00&#39;, &#39;2009/6/23 1:00&#39;, &#39;2009/6/23 2:00&#39;, &#39;2009/6/23 3:00&#39;, &#39;2009/6/23 4:00&#39;, &#39;2009/6/23 5:00&#39;, &#39;2009/6/23 6:00&#39;, &#39;2009/6/23 7:00&#39;, &#39;2009/6/23 8:00&#39;, &#39;2009/6/23 9:00&#39;, &#39;2009/6/23 10:00&#39;, &#39;2009/6/23 11:00&#39;, &#39;2009/6/23 12:00&#39;, &#39;2009/6/23 13:00&#39;, &#39;2009/6/23 14:00&#39;, &#39;2009/6/23 15:00&#39;, &#39;2009/6/23 16:00&#39;, &#39;2009/6/23 17:00&#39;, &#39;2009/6/23 18:00&#39;, &#39;2009/6/23 19:00&#39;, &#39;2009/6/23 20:00&#39;, &#39;2009/6/23 21:00&#39;, &#39;2009/6/23 22:00&#39;, &#39;2009/6/23 23:00&#39;,
                &#39;2009/6/24 0:00&#39;, &#39;2009/6/24 1:00&#39;, &#39;2009/6/24 2:00&#39;, &#39;2009/6/24 3:00&#39;, &#39;2009/6/24 4:00&#39;, &#39;2009/6/24 5:00&#39;, &#39;2009/6/24 6:00&#39;, &#39;2009/6/24 7:00&#39;, &#39;2009/6/24 8:00&#39;, &#39;2009/6/24 9:00&#39;, &#39;2009/6/24 10:00&#39;, &#39;2009/6/24 11:00&#39;, &#39;2009/6/24 12:00&#39;, &#39;2009/6/24 13:00&#39;, &#39;2009/6/24 14:00&#39;, &#39;2009/6/24 15:00&#39;, &#39;2009/6/24 16:00&#39;, &#39;2009/6/24 17:00&#39;, &#39;2009/6/24 18:00&#39;, &#39;2009/6/24 19:00&#39;, &#39;2009/6/24 20:00&#39;, &#39;2009/6/24 21:00&#39;, &#39;2009/6/24 22:00&#39;, &#39;2009/6/24 23:00&#39;,
                &#39;2009/6/25 0:00&#39;, &#39;2009/6/25 1:00&#39;, &#39;2009/6/25 2:00&#39;, &#39;2009/6/25 3:00&#39;, &#39;2009/6/25 4:00&#39;, &#39;2009/6/25 5:00&#39;, &#39;2009/6/25 6:00&#39;, &#39;2009/6/25 7:00&#39;, &#39;2009/6/25 8:00&#39;, &#39;2009/6/25 9:00&#39;, &#39;2009/6/25 10:00&#39;, &#39;2009/6/25 11:00&#39;, &#39;2009/6/25 12:00&#39;, &#39;2009/6/25 13:00&#39;, &#39;2009/6/25 14:00&#39;, &#39;2009/6/25 15:00&#39;, &#39;2009/6/25 16:00&#39;, &#39;2009/6/25 17:00&#39;, &#39;2009/6/25 18:00&#39;, &#39;2009/6/25 19:00&#39;, &#39;2009/6/25 20:00&#39;, &#39;2009/6/25 21:00&#39;, &#39;2009/6/25 22:00&#39;, &#39;2009/6/25 23:00&#39;,
                &#39;2009/6/26 0:00&#39;, &#39;2009/6/26 1:00&#39;, &#39;2009/6/26 2:00&#39;, &#39;2009/6/26 3:00&#39;, &#39;2009/6/26 4:00&#39;, &#39;2009/6/26 5:00&#39;, &#39;2009/6/26 6:00&#39;, &#39;2009/6/26 7:00&#39;, &#39;2009/6/26 8:00&#39;, &#39;2009/6/26 9:00&#39;, &#39;2009/6/26 10:00&#39;, &#39;2009/6/26 11:00&#39;, &#39;2009/6/26 12:00&#39;, &#39;2009/6/26 13:00&#39;, &#39;2009/6/26 14:00&#39;, &#39;2009/6/26 15:00&#39;, &#39;2009/6/26 16:00&#39;, &#39;2009/6/26 17:00&#39;, &#39;2009/6/26 18:00&#39;, &#39;2009/6/26 19:00&#39;, &#39;2009/6/26 20:00&#39;, &#39;2009/6/26 21:00&#39;, &#39;2009/6/26 22:00&#39;, &#39;2009/6/26 23:00&#39;,
                &#39;2009/6/27 0:00&#39;, &#39;2009/6/27 1:00&#39;, &#39;2009/6/27 2:00&#39;, &#39;2009/6/27 3:00&#39;, &#39;2009/6/27 4:00&#39;, &#39;2009/6/27 5:00&#39;, &#39;2009/6/27 6:00&#39;, &#39;2009/6/27 7:00&#39;, &#39;2009/6/27 8:00&#39;, &#39;2009/6/27 9:00&#39;, &#39;2009/6/27 10:00&#39;, &#39;2009/6/27 11:00&#39;, &#39;2009/6/27 12:00&#39;, &#39;2009/6/27 13:00&#39;, &#39;2009/6/27 14:00&#39;, &#39;2009/6/27 15:00&#39;, &#39;2009/6/27 16:00&#39;, &#39;2009/6/27 17:00&#39;, &#39;2009/6/27 18:00&#39;, &#39;2009/6/27 19:00&#39;, &#39;2009/6/27 20:00&#39;, &#39;2009/6/27 21:00&#39;, &#39;2009/6/27 22:00&#39;, &#39;2009/6/27 23:00&#39;,
                &#39;2009/6/28 0:00&#39;, &#39;2009/6/28 1:00&#39;, &#39;2009/6/28 2:00&#39;, &#39;2009/6/28 3:00&#39;, &#39;2009/6/28 4:00&#39;, &#39;2009/6/28 5:00&#39;, &#39;2009/6/28 6:00&#39;, &#39;2009/6/28 7:00&#39;, &#39;2009/6/28 8:00&#39;, &#39;2009/6/28 9:00&#39;, &#39;2009/6/28 10:00&#39;, &#39;2009/6/28 11:00&#39;, &#39;2009/6/28 12:00&#39;, &#39;2009/6/28 13:00&#39;, &#39;2009/6/28 14:00&#39;, &#39;2009/6/28 15:00&#39;, &#39;2009/6/28 16:00&#39;, &#39;2009/6/28 17:00&#39;, &#39;2009/6/28 18:00&#39;, &#39;2009/6/28 19:00&#39;, &#39;2009/6/28 20:00&#39;, &#39;2009/6/28 21:00&#39;, &#39;2009/6/28 22:00&#39;, &#39;2009/6/28 23:00&#39;,
                &#39;2009/6/29 0:00&#39;, &#39;2009/6/29 1:00&#39;, &#39;2009/6/29 2:00&#39;, &#39;2009/6/29 3:00&#39;, &#39;2009/6/29 4:00&#39;, &#39;2009/6/29 5:00&#39;, &#39;2009/6/29 6:00&#39;, &#39;2009/6/29 7:00&#39;, &#39;2009/6/29 8:00&#39;, &#39;2009/6/29 9:00&#39;, &#39;2009/6/29 10:00&#39;, &#39;2009/6/29 11:00&#39;, &#39;2009/6/29 12:00&#39;, &#39;2009/6/29 13:00&#39;, &#39;2009/6/29 14:00&#39;, &#39;2009/6/29 15:00&#39;, &#39;2009/6/29 16:00&#39;, &#39;2009/6/29 17:00&#39;, &#39;2009/6/29 18:00&#39;, &#39;2009/6/29 19:00&#39;, &#39;2009/6/29 20:00&#39;, &#39;2009/6/29 21:00&#39;, &#39;2009/6/29 22:00&#39;, &#39;2009/6/29 23:00&#39;,
                &#39;2009/6/30 0:00&#39;, &#39;2009/6/30 1:00&#39;, &#39;2009/6/30 2:00&#39;, &#39;2009/6/30 3:00&#39;, &#39;2009/6/30 4:00&#39;, &#39;2009/6/30 5:00&#39;, &#39;2009/6/30 6:00&#39;, &#39;2009/6/30 7:00&#39;, &#39;2009/6/30 8:00&#39;, &#39;2009/6/30 9:00&#39;, &#39;2009/6/30 10:00&#39;, &#39;2009/6/30 11:00&#39;, &#39;2009/6/30 12:00&#39;, &#39;2009/6/30 13:00&#39;, &#39;2009/6/30 14:00&#39;, &#39;2009/6/30 15:00&#39;, &#39;2009/6/30 16:00&#39;, &#39;2009/6/30 17:00&#39;, &#39;2009/6/30 18:00&#39;, &#39;2009/6/30 19:00&#39;, &#39;2009/6/30 20:00&#39;, &#39;2009/6/30 21:00&#39;, &#39;2009/6/30 22:00&#39;, &#39;2009/6/30 23:00&#39;,
                &#39;2009/7/1 0:00&#39;, &#39;2009/7/1 1:00&#39;, &#39;2009/7/1 2:00&#39;, &#39;2009/7/1 3:00&#39;, &#39;2009/7/1 4:00&#39;, &#39;2009/7/1 5:00&#39;, &#39;2009/7/1 6:00&#39;, &#39;2009/7/1 7:00&#39;, &#39;2009/7/1 8:00&#39;, &#39;2009/7/1 9:00&#39;, &#39;2009/7/1 10:00&#39;, &#39;2009/7/1 11:00&#39;, &#39;2009/7/1 12:00&#39;, &#39;2009/7/1 13:00&#39;, &#39;2009/7/1 14:00&#39;, &#39;2009/7/1 15:00&#39;, &#39;2009/7/1 16:00&#39;, &#39;2009/7/1 17:00&#39;, &#39;2009/7/1 18:00&#39;, &#39;2009/7/1 19:00&#39;, &#39;2009/7/1 20:00&#39;, &#39;2009/7/1 21:00&#39;, &#39;2009/7/1 22:00&#39;, &#39;2009/7/1 23:00&#39;,
                &#39;2009/7/2 0:00&#39;, &#39;2009/7/2 1:00&#39;, &#39;2009/7/2 2:00&#39;, &#39;2009/7/2 3:00&#39;, &#39;2009/7/2 4:00&#39;, &#39;2009/7/2 5:00&#39;, &#39;2009/7/2 6:00&#39;, &#39;2009/7/2 7:00&#39;, &#39;2009/7/2 8:00&#39;, &#39;2009/7/2 9:00&#39;, &#39;2009/7/2 10:00&#39;, &#39;2009/7/2 11:00&#39;, &#39;2009/7/2 12:00&#39;, &#39;2009/7/2 13:00&#39;, &#39;2009/7/2 14:00&#39;, &#39;2009/7/2 15:00&#39;, &#39;2009/7/2 16:00&#39;, &#39;2009/7/2 17:00&#39;, &#39;2009/7/2 18:00&#39;, &#39;2009/7/2 19:00&#39;, &#39;2009/7/2 20:00&#39;, &#39;2009/7/2 21:00&#39;, &#39;2009/7/2 22:00&#39;, &#39;2009/7/2 23:00&#39;,
                &#39;2009/7/3 0:00&#39;, &#39;2009/7/3 1:00&#39;, &#39;2009/7/3 2:00&#39;, &#39;2009/7/3 3:00&#39;, &#39;2009/7/3 4:00&#39;, &#39;2009/7/3 5:00&#39;, &#39;2009/7/3 6:00&#39;, &#39;2009/7/3 7:00&#39;, &#39;2009/7/3 8:00&#39;, &#39;2009/7/3 9:00&#39;, &#39;2009/7/3 10:00&#39;, &#39;2009/7/3 11:00&#39;, &#39;2009/7/3 12:00&#39;, &#39;2009/7/3 13:00&#39;, &#39;2009/7/3 14:00&#39;, &#39;2009/7/3 15:00&#39;, &#39;2009/7/3 16:00&#39;, &#39;2009/7/3 17:00&#39;, &#39;2009/7/3 18:00&#39;, &#39;2009/7/3 19:00&#39;, &#39;2009/7/3 20:00&#39;, &#39;2009/7/3 21:00&#39;, &#39;2009/7/3 22:00&#39;, &#39;2009/7/3 23:00&#39;,
                &#39;2009/7/4 0:00&#39;, &#39;2009/7/4 1:00&#39;, &#39;2009/7/4 2:00&#39;, &#39;2009/7/4 3:00&#39;, &#39;2009/7/4 4:00&#39;, &#39;2009/7/4 5:00&#39;, &#39;2009/7/4 6:00&#39;, &#39;2009/7/4 7:00&#39;, &#39;2009/7/4 8:00&#39;, &#39;2009/7/4 9:00&#39;, &#39;2009/7/4 10:00&#39;, &#39;2009/7/4 11:00&#39;, &#39;2009/7/4 12:00&#39;, &#39;2009/7/4 13:00&#39;, &#39;2009/7/4 14:00&#39;, &#39;2009/7/4 15:00&#39;, &#39;2009/7/4 16:00&#39;, &#39;2009/7/4 17:00&#39;, &#39;2009/7/4 18:00&#39;, &#39;2009/7/4 19:00&#39;, &#39;2009/7/4 20:00&#39;, &#39;2009/7/4 21:00&#39;, &#39;2009/7/4 22:00&#39;, &#39;2009/7/4 23:00&#39;,
                &#39;2009/7/5 0:00&#39;, &#39;2009/7/5 1:00&#39;, &#39;2009/7/5 2:00&#39;, &#39;2009/7/5 3:00&#39;, &#39;2009/7/5 4:00&#39;, &#39;2009/7/5 5:00&#39;, &#39;2009/7/5 6:00&#39;, &#39;2009/7/5 7:00&#39;, &#39;2009/7/5 8:00&#39;, &#39;2009/7/5 9:00&#39;, &#39;2009/7/5 10:00&#39;, &#39;2009/7/5 11:00&#39;, &#39;2009/7/5 12:00&#39;, &#39;2009/7/5 13:00&#39;, &#39;2009/7/5 14:00&#39;, &#39;2009/7/5 15:00&#39;, &#39;2009/7/5 16:00&#39;, &#39;2009/7/5 17:00&#39;, &#39;2009/7/5 18:00&#39;, &#39;2009/7/5 19:00&#39;, &#39;2009/7/5 20:00&#39;, &#39;2009/7/5 21:00&#39;, &#39;2009/7/5 22:00&#39;, &#39;2009/7/5 23:00&#39;,
                &#39;2009/7/6 0:00&#39;, &#39;2009/7/6 1:00&#39;, &#39;2009/7/6 2:00&#39;, &#39;2009/7/6 3:00&#39;, &#39;2009/7/6 4:00&#39;, &#39;2009/7/6 5:00&#39;, &#39;2009/7/6 6:00&#39;, &#39;2009/7/6 7:00&#39;, &#39;2009/7/6 8:00&#39;, &#39;2009/7/6 9:00&#39;, &#39;2009/7/6 10:00&#39;, &#39;2009/7/6 11:00&#39;, &#39;2009/7/6 12:00&#39;, &#39;2009/7/6 13:00&#39;, &#39;2009/7/6 14:00&#39;, &#39;2009/7/6 15:00&#39;, &#39;2009/7/6 16:00&#39;, &#39;2009/7/6 17:00&#39;, &#39;2009/7/6 18:00&#39;, &#39;2009/7/6 19:00&#39;, &#39;2009/7/6 20:00&#39;, &#39;2009/7/6 21:00&#39;, &#39;2009/7/6 22:00&#39;, &#39;2009/7/6 23:00&#39;,
                &#39;2009/7/7 0:00&#39;, &#39;2009/7/7 1:00&#39;, &#39;2009/7/7 2:00&#39;, &#39;2009/7/7 3:00&#39;, &#39;2009/7/7 4:00&#39;, &#39;2009/7/7 5:00&#39;, &#39;2009/7/7 6:00&#39;, &#39;2009/7/7 7:00&#39;, &#39;2009/7/7 8:00&#39;, &#39;2009/7/7 9:00&#39;, &#39;2009/7/7 10:00&#39;, &#39;2009/7/7 11:00&#39;, &#39;2009/7/7 12:00&#39;, &#39;2009/7/7 13:00&#39;, &#39;2009/7/7 14:00&#39;, &#39;2009/7/7 15:00&#39;, &#39;2009/7/7 16:00&#39;, &#39;2009/7/7 17:00&#39;, &#39;2009/7/7 18:00&#39;, &#39;2009/7/7 19:00&#39;, &#39;2009/7/7 20:00&#39;, &#39;2009/7/7 21:00&#39;, &#39;2009/7/7 22:00&#39;, &#39;2009/7/7 23:00&#39;,
                &#39;2009/7/8 0:00&#39;, &#39;2009/7/8 1:00&#39;, &#39;2009/7/8 2:00&#39;, &#39;2009/7/8 3:00&#39;, &#39;2009/7/8 4:00&#39;, &#39;2009/7/8 5:00&#39;, &#39;2009/7/8 6:00&#39;, &#39;2009/7/8 7:00&#39;, &#39;2009/7/8 8:00&#39;, &#39;2009/7/8 9:00&#39;, &#39;2009/7/8 10:00&#39;, &#39;2009/7/8 11:00&#39;, &#39;2009/7/8 12:00&#39;, &#39;2009/7/8 13:00&#39;, &#39;2009/7/8 14:00&#39;, &#39;2009/7/8 15:00&#39;, &#39;2009/7/8 16:00&#39;, &#39;2009/7/8 17:00&#39;, &#39;2009/7/8 18:00&#39;, &#39;2009/7/8 19:00&#39;, &#39;2009/7/8 20:00&#39;, &#39;2009/7/8 21:00&#39;, &#39;2009/7/8 22:00&#39;, &#39;2009/7/8 23:00&#39;,
                &#39;2009/7/9 0:00&#39;, &#39;2009/7/9 1:00&#39;, &#39;2009/7/9 2:00&#39;, &#39;2009/7/9 3:00&#39;, &#39;2009/7/9 4:00&#39;, &#39;2009/7/9 5:00&#39;, &#39;2009/7/9 6:00&#39;, &#39;2009/7/9 7:00&#39;, &#39;2009/7/9 8:00&#39;, &#39;2009/7/9 9:00&#39;, &#39;2009/7/9 10:00&#39;, &#39;2009/7/9 11:00&#39;, &#39;2009/7/9 12:00&#39;, &#39;2009/7/9 13:00&#39;, &#39;2009/7/9 14:00&#39;, &#39;2009/7/9 15:00&#39;, &#39;2009/7/9 16:00&#39;, &#39;2009/7/9 17:00&#39;, &#39;2009/7/9 18:00&#39;, &#39;2009/7/9 19:00&#39;, &#39;2009/7/9 20:00&#39;, &#39;2009/7/9 21:00&#39;, &#39;2009/7/9 22:00&#39;, &#39;2009/7/9 23:00&#39;,
                &#39;2009/7/10 0:00&#39;, &#39;2009/7/10 1:00&#39;, &#39;2009/7/10 2:00&#39;, &#39;2009/7/10 3:00&#39;, &#39;2009/7/10 4:00&#39;, &#39;2009/7/10 5:00&#39;, &#39;2009/7/10 6:00&#39;, &#39;2009/7/10 7:00&#39;, &#39;2009/7/10 8:00&#39;, &#39;2009/7/10 9:00&#39;, &#39;2009/7/10 10:00&#39;, &#39;2009/7/10 11:00&#39;, &#39;2009/7/10 12:00&#39;, &#39;2009/7/10 13:00&#39;, &#39;2009/7/10 14:00&#39;, &#39;2009/7/10 15:00&#39;, &#39;2009/7/10 16:00&#39;, &#39;2009/7/10 17:00&#39;, &#39;2009/7/10 18:00&#39;, &#39;2009/7/10 19:00&#39;, &#39;2009/7/10 20:00&#39;, &#39;2009/7/10 21:00&#39;, &#39;2009/7/10 22:00&#39;, &#39;2009/7/10 23:00&#39;,
                &#39;2009/7/11 0:00&#39;, &#39;2009/7/11 1:00&#39;, &#39;2009/7/11 2:00&#39;, &#39;2009/7/11 3:00&#39;, &#39;2009/7/11 4:00&#39;, &#39;2009/7/11 5:00&#39;, &#39;2009/7/11 6:00&#39;, &#39;2009/7/11 7:00&#39;, &#39;2009/7/11 8:00&#39;, &#39;2009/7/11 9:00&#39;, &#39;2009/7/11 10:00&#39;, &#39;2009/7/11 11:00&#39;, &#39;2009/7/11 12:00&#39;, &#39;2009/7/11 13:00&#39;, &#39;2009/7/11 14:00&#39;, &#39;2009/7/11 15:00&#39;, &#39;2009/7/11 16:00&#39;, &#39;2009/7/11 17:00&#39;, &#39;2009/7/11 18:00&#39;, &#39;2009/7/11 19:00&#39;, &#39;2009/7/11 20:00&#39;, &#39;2009/7/11 21:00&#39;, &#39;2009/7/11 22:00&#39;, &#39;2009/7/11 23:00&#39;,
                &#39;2009/7/12 0:00&#39;, &#39;2009/7/12 1:00&#39;, &#39;2009/7/12 2:00&#39;, &#39;2009/7/12 3:00&#39;, &#39;2009/7/12 4:00&#39;, &#39;2009/7/12 5:00&#39;, &#39;2009/7/12 6:00&#39;, &#39;2009/7/12 7:00&#39;, &#39;2009/7/12 8:00&#39;, &#39;2009/7/12 9:00&#39;, &#39;2009/7/12 10:00&#39;, &#39;2009/7/12 11:00&#39;, &#39;2009/7/12 12:00&#39;, &#39;2009/7/12 13:00&#39;, &#39;2009/7/12 14:00&#39;, &#39;2009/7/12 15:00&#39;, &#39;2009/7/12 16:00&#39;, &#39;2009/7/12 17:00&#39;, &#39;2009/7/12 18:00&#39;, &#39;2009/7/12 19:00&#39;, &#39;2009/7/12 20:00&#39;, &#39;2009/7/12 21:00&#39;, &#39;2009/7/12 22:00&#39;, &#39;2009/7/12 23:00&#39;,
                &#39;2009/7/13 0:00&#39;, &#39;2009/7/13 1:00&#39;, &#39;2009/7/13 2:00&#39;, &#39;2009/7/13 3:00&#39;, &#39;2009/7/13 4:00&#39;, &#39;2009/7/13 5:00&#39;, &#39;2009/7/13 6:00&#39;, &#39;2009/7/13 7:00&#39;, &#39;2009/7/13 8:00&#39;, &#39;2009/7/13 9:00&#39;, &#39;2009/7/13 10:00&#39;, &#39;2009/7/13 11:00&#39;, &#39;2009/7/13 12:00&#39;, &#39;2009/7/13 13:00&#39;, &#39;2009/7/13 14:00&#39;, &#39;2009/7/13 15:00&#39;, &#39;2009/7/13 16:00&#39;, &#39;2009/7/13 17:00&#39;, &#39;2009/7/13 18:00&#39;, &#39;2009/7/13 19:00&#39;, &#39;2009/7/13 20:00&#39;, &#39;2009/7/13 21:00&#39;, &#39;2009/7/13 22:00&#39;, &#39;2009/7/13 23:00&#39;,
                &#39;2009/7/14 0:00&#39;, &#39;2009/7/14 1:00&#39;, &#39;2009/7/14 2:00&#39;, &#39;2009/7/14 3:00&#39;, &#39;2009/7/14 4:00&#39;, &#39;2009/7/14 5:00&#39;, &#39;2009/7/14 6:00&#39;, &#39;2009/7/14 7:00&#39;, &#39;2009/7/14 8:00&#39;, &#39;2009/7/14 9:00&#39;, &#39;2009/7/14 10:00&#39;, &#39;2009/7/14 11:00&#39;, &#39;2009/7/14 12:00&#39;, &#39;2009/7/14 13:00&#39;, &#39;2009/7/14 14:00&#39;, &#39;2009/7/14 15:00&#39;, &#39;2009/7/14 16:00&#39;, &#39;2009/7/14 17:00&#39;, &#39;2009/7/14 18:00&#39;, &#39;2009/7/14 19:00&#39;, &#39;2009/7/14 20:00&#39;, &#39;2009/7/14 21:00&#39;, &#39;2009/7/14 22:00&#39;, &#39;2009/7/14 23:00&#39;,
                &#39;2009/7/15 0:00&#39;, &#39;2009/7/15 1:00&#39;, &#39;2009/7/15 2:00&#39;, &#39;2009/7/15 3:00&#39;, &#39;2009/7/15 4:00&#39;, &#39;2009/7/15 5:00&#39;, &#39;2009/7/15 6:00&#39;, &#39;2009/7/15 7:00&#39;, &#39;2009/7/15 8:00&#39;, &#39;2009/7/15 9:00&#39;, &#39;2009/7/15 10:00&#39;, &#39;2009/7/15 11:00&#39;, &#39;2009/7/15 12:00&#39;, &#39;2009/7/15 13:00&#39;, &#39;2009/7/15 14:00&#39;, &#39;2009/7/15 15:00&#39;, &#39;2009/7/15 16:00&#39;, &#39;2009/7/15 17:00&#39;, &#39;2009/7/15 18:00&#39;, &#39;2009/7/15 19:00&#39;, &#39;2009/7/15 20:00&#39;, &#39;2009/7/15 21:00&#39;, &#39;2009/7/15 22:00&#39;, &#39;2009/7/15 23:00&#39;,
                &#39;2009/7/16 0:00&#39;, &#39;2009/7/16 1:00&#39;, &#39;2009/7/16 2:00&#39;, &#39;2009/7/16 3:00&#39;, &#39;2009/7/16 4:00&#39;, &#39;2009/7/16 5:00&#39;, &#39;2009/7/16 6:00&#39;, &#39;2009/7/16 7:00&#39;, &#39;2009/7/16 8:00&#39;, &#39;2009/7/16 9:00&#39;, &#39;2009/7/16 10:00&#39;, &#39;2009/7/16 11:00&#39;, &#39;2009/7/16 12:00&#39;, &#39;2009/7/16 13:00&#39;, &#39;2009/7/16 14:00&#39;, &#39;2009/7/16 15:00&#39;, &#39;2009/7/16 16:00&#39;, &#39;2009/7/16 17:00&#39;, &#39;2009/7/16 18:00&#39;, &#39;2009/7/16 19:00&#39;, &#39;2009/7/16 20:00&#39;, &#39;2009/7/16 21:00&#39;, &#39;2009/7/16 22:00&#39;, &#39;2009/7/16 23:00&#39;,
                &#39;2009/7/17 0:00&#39;, &#39;2009/7/17 1:00&#39;, &#39;2009/7/17 2:00&#39;, &#39;2009/7/17 3:00&#39;, &#39;2009/7/17 4:00&#39;, &#39;2009/7/17 5:00&#39;, &#39;2009/7/17 6:00&#39;, &#39;2009/7/17 7:00&#39;, &#39;2009/7/17 8:00&#39;, &#39;2009/7/17 9:00&#39;, &#39;2009/7/17 10:00&#39;, &#39;2009/7/17 11:00&#39;, &#39;2009/7/17 12:00&#39;, &#39;2009/7/17 13:00&#39;, &#39;2009/7/17 14:00&#39;, &#39;2009/7/17 15:00&#39;, &#39;2009/7/17 16:00&#39;, &#39;2009/7/17 17:00&#39;, &#39;2009/7/17 18:00&#39;, &#39;2009/7/17 19:00&#39;, &#39;2009/7/17 20:00&#39;, &#39;2009/7/17 21:00&#39;, &#39;2009/7/17 22:00&#39;, &#39;2009/7/17 23:00&#39;,
                &#39;2009/7/18 0:00&#39;, &#39;2009/7/18 1:00&#39;, &#39;2009/7/18 2:00&#39;, &#39;2009/7/18 3:00&#39;, &#39;2009/7/18 4:00&#39;, &#39;2009/7/18 5:00&#39;, &#39;2009/7/18 6:00&#39;, &#39;2009/7/18 7:00&#39;, &#39;2009/7/18 8:00&#39;, &#39;2009/7/18 9:00&#39;, &#39;2009/7/18 10:00&#39;, &#39;2009/7/18 11:00&#39;, &#39;2009/7/18 12:00&#39;, &#39;2009/7/18 13:00&#39;, &#39;2009/7/18 14:00&#39;, &#39;2009/7/18 15:00&#39;, &#39;2009/7/18 16:00&#39;, &#39;2009/7/18 17:00&#39;, &#39;2009/7/18 18:00&#39;, &#39;2009/7/18 19:00&#39;, &#39;2009/7/18 20:00&#39;, &#39;2009/7/18 21:00&#39;, &#39;2009/7/18 22:00&#39;, &#39;2009/7/18 23:00&#39;,
                &#39;2009/7/19 0:00&#39;, &#39;2009/7/19 1:00&#39;, &#39;2009/7/19 2:00&#39;, &#39;2009/7/19 3:00&#39;, &#39;2009/7/19 4:00&#39;, &#39;2009/7/19 5:00&#39;, &#39;2009/7/19 6:00&#39;, &#39;2009/7/19 7:00&#39;, &#39;2009/7/19 8:00&#39;, &#39;2009/7/19 9:00&#39;, &#39;2009/7/19 10:00&#39;, &#39;2009/7/19 11:00&#39;, &#39;2009/7/19 12:00&#39;, &#39;2009/7/19 13:00&#39;, &#39;2009/7/19 14:00&#39;, &#39;2009/7/19 15:00&#39;, &#39;2009/7/19 16:00&#39;, &#39;2009/7/19 17:00&#39;, &#39;2009/7/19 18:00&#39;, &#39;2009/7/19 19:00&#39;, &#39;2009/7/19 20:00&#39;, &#39;2009/7/19 21:00&#39;, &#39;2009/7/19 22:00&#39;, &#39;2009/7/19 23:00&#39;,
                &#39;2009/7/20 0:00&#39;, &#39;2009/7/20 1:00&#39;, &#39;2009/7/20 2:00&#39;, &#39;2009/7/20 3:00&#39;, &#39;2009/7/20 4:00&#39;, &#39;2009/7/20 5:00&#39;, &#39;2009/7/20 6:00&#39;, &#39;2009/7/20 7:00&#39;, &#39;2009/7/20 8:00&#39;, &#39;2009/7/20 9:00&#39;, &#39;2009/7/20 10:00&#39;, &#39;2009/7/20 11:00&#39;, &#39;2009/7/20 12:00&#39;, &#39;2009/7/20 13:00&#39;, &#39;2009/7/20 14:00&#39;, &#39;2009/7/20 15:00&#39;, &#39;2009/7/20 16:00&#39;, &#39;2009/7/20 17:00&#39;, &#39;2009/7/20 18:00&#39;, &#39;2009/7/20 19:00&#39;, &#39;2009/7/20 20:00&#39;, &#39;2009/7/20 21:00&#39;, &#39;2009/7/20 22:00&#39;, &#39;2009/7/20 23:00&#39;,
                &#39;2009/7/21 0:00&#39;, &#39;2009/7/21 1:00&#39;, &#39;2009/7/21 2:00&#39;, &#39;2009/7/21 3:00&#39;, &#39;2009/7/21 4:00&#39;, &#39;2009/7/21 5:00&#39;, &#39;2009/7/21 6:00&#39;, &#39;2009/7/21 7:00&#39;, &#39;2009/7/21 8:00&#39;, &#39;2009/7/21 9:00&#39;, &#39;2009/7/21 10:00&#39;, &#39;2009/7/21 11:00&#39;, &#39;2009/7/21 12:00&#39;, &#39;2009/7/21 13:00&#39;, &#39;2009/7/21 14:00&#39;, &#39;2009/7/21 15:00&#39;, &#39;2009/7/21 16:00&#39;, &#39;2009/7/21 17:00&#39;, &#39;2009/7/21 18:00&#39;, &#39;2009/7/21 19:00&#39;, &#39;2009/7/21 20:00&#39;, &#39;2009/7/21 21:00&#39;, &#39;2009/7/21 22:00&#39;, &#39;2009/7/21 23:00&#39;,
                &#39;2009/7/22 0:00&#39;, &#39;2009/7/22 1:00&#39;, &#39;2009/7/22 2:00&#39;, &#39;2009/7/22 3:00&#39;, &#39;2009/7/22 4:00&#39;, &#39;2009/7/22 5:00&#39;, &#39;2009/7/22 6:00&#39;, &#39;2009/7/22 7:00&#39;, &#39;2009/7/22 8:00&#39;, &#39;2009/7/22 9:00&#39;, &#39;2009/7/22 10:00&#39;, &#39;2009/7/22 11:00&#39;, &#39;2009/7/22 12:00&#39;, &#39;2009/7/22 13:00&#39;, &#39;2009/7/22 14:00&#39;, &#39;2009/7/22 15:00&#39;, &#39;2009/7/22 16:00&#39;, &#39;2009/7/22 17:00&#39;, &#39;2009/7/22 18:00&#39;, &#39;2009/7/22 19:00&#39;, &#39;2009/7/22 20:00&#39;, &#39;2009/7/22 21:00&#39;, &#39;2009/7/22 22:00&#39;, &#39;2009/7/22 23:00&#39;,
                &#39;2009/7/23 0:00&#39;, &#39;2009/7/23 1:00&#39;, &#39;2009/7/23 2:00&#39;, &#39;2009/7/23 3:00&#39;, &#39;2009/7/23 4:00&#39;, &#39;2009/7/23 5:00&#39;, &#39;2009/7/23 6:00&#39;, &#39;2009/7/23 7:00&#39;, &#39;2009/7/23 8:00&#39;, &#39;2009/7/23 9:00&#39;, &#39;2009/7/23 10:00&#39;, &#39;2009/7/23 11:00&#39;, &#39;2009/7/23 12:00&#39;, &#39;2009/7/23 13:00&#39;, &#39;2009/7/23 14:00&#39;, &#39;2009/7/23 15:00&#39;, &#39;2009/7/23 16:00&#39;, &#39;2009/7/23 17:00&#39;, &#39;2009/7/23 18:00&#39;, &#39;2009/7/23 19:00&#39;, &#39;2009/7/23 20:00&#39;, &#39;2009/7/23 21:00&#39;, &#39;2009/7/23 22:00&#39;, &#39;2009/7/23 23:00&#39;,
                &#39;2009/7/24 0:00&#39;, &#39;2009/7/24 1:00&#39;, &#39;2009/7/24 2:00&#39;, &#39;2009/7/24 3:00&#39;, &#39;2009/7/24 4:00&#39;, &#39;2009/7/24 5:00&#39;, &#39;2009/7/24 6:00&#39;, &#39;2009/7/24 7:00&#39;, &#39;2009/7/24 8:00&#39;, &#39;2009/7/24 9:00&#39;, &#39;2009/7/24 10:00&#39;, &#39;2009/7/24 11:00&#39;, &#39;2009/7/24 12:00&#39;, &#39;2009/7/24 13:00&#39;, &#39;2009/7/24 14:00&#39;, &#39;2009/7/24 15:00&#39;, &#39;2009/7/24 16:00&#39;, &#39;2009/7/24 17:00&#39;, &#39;2009/7/24 18:00&#39;, &#39;2009/7/24 19:00&#39;, &#39;2009/7/24 20:00&#39;, &#39;2009/7/24 21:00&#39;, &#39;2009/7/24 22:00&#39;, &#39;2009/7/24 23:00&#39;,
                &#39;2009/7/25 0:00&#39;, &#39;2009/7/25 1:00&#39;, &#39;2009/7/25 2:00&#39;, &#39;2009/7/25 3:00&#39;, &#39;2009/7/25 4:00&#39;, &#39;2009/7/25 5:00&#39;, &#39;2009/7/25 6:00&#39;, &#39;2009/7/25 7:00&#39;, &#39;2009/7/25 8:00&#39;, &#39;2009/7/25 9:00&#39;, &#39;2009/7/25 10:00&#39;, &#39;2009/7/25 11:00&#39;, &#39;2009/7/25 12:00&#39;, &#39;2009/7/25 13:00&#39;, &#39;2009/7/25 14:00&#39;, &#39;2009/7/25 15:00&#39;, &#39;2009/7/25 16:00&#39;, &#39;2009/7/25 17:00&#39;, &#39;2009/7/25 18:00&#39;, &#39;2009/7/25 19:00&#39;, &#39;2009/7/25 20:00&#39;, &#39;2009/7/25 21:00&#39;, &#39;2009/7/25 22:00&#39;, &#39;2009/7/25 23:00&#39;,
                &#39;2009/7/26 0:00&#39;, &#39;2009/7/26 1:00&#39;, &#39;2009/7/26 2:00&#39;, &#39;2009/7/26 3:00&#39;, &#39;2009/7/26 4:00&#39;, &#39;2009/7/26 5:00&#39;, &#39;2009/7/26 6:00&#39;, &#39;2009/7/26 7:00&#39;, &#39;2009/7/26 8:00&#39;, &#39;2009/7/26 9:00&#39;, &#39;2009/7/26 10:00&#39;, &#39;2009/7/26 11:00&#39;, &#39;2009/7/26 12:00&#39;, &#39;2009/7/26 13:00&#39;, &#39;2009/7/26 14:00&#39;, &#39;2009/7/26 15:00&#39;, &#39;2009/7/26 16:00&#39;, &#39;2009/7/26 17:00&#39;, &#39;2009/7/26 18:00&#39;, &#39;2009/7/26 19:00&#39;, &#39;2009/7/26 20:00&#39;, &#39;2009/7/26 21:00&#39;, &#39;2009/7/26 22:00&#39;, &#39;2009/7/26 23:00&#39;,
                &#39;2009/7/27 0:00&#39;, &#39;2009/7/27 1:00&#39;, &#39;2009/7/27 2:00&#39;, &#39;2009/7/27 3:00&#39;, &#39;2009/7/27 4:00&#39;, &#39;2009/7/27 5:00&#39;, &#39;2009/7/27 6:00&#39;, &#39;2009/7/27 7:00&#39;, &#39;2009/7/27 8:00&#39;, &#39;2009/7/27 9:00&#39;, &#39;2009/7/27 10:00&#39;, &#39;2009/7/27 11:00&#39;, &#39;2009/7/27 12:00&#39;, &#39;2009/7/27 13:00&#39;, &#39;2009/7/27 14:00&#39;, &#39;2009/7/27 15:00&#39;, &#39;2009/7/27 16:00&#39;, &#39;2009/7/27 17:00&#39;, &#39;2009/7/27 18:00&#39;, &#39;2009/7/27 19:00&#39;, &#39;2009/7/27 20:00&#39;, &#39;2009/7/27 21:00&#39;, &#39;2009/7/27 22:00&#39;, &#39;2009/7/27 23:00&#39;,
                &#39;2009/7/28 0:00&#39;, &#39;2009/7/28 1:00&#39;, &#39;2009/7/28 2:00&#39;, &#39;2009/7/28 3:00&#39;, &#39;2009/7/28 4:00&#39;, &#39;2009/7/28 5:00&#39;, &#39;2009/7/28 6:00&#39;, &#39;2009/7/28 7:00&#39;, &#39;2009/7/28 8:00&#39;, &#39;2009/7/28 9:00&#39;, &#39;2009/7/28 10:00&#39;, &#39;2009/7/28 11:00&#39;, &#39;2009/7/28 12:00&#39;, &#39;2009/7/28 13:00&#39;, &#39;2009/7/28 14:00&#39;, &#39;2009/7/28 15:00&#39;, &#39;2009/7/28 16:00&#39;, &#39;2009/7/28 17:00&#39;, &#39;2009/7/28 18:00&#39;, &#39;2009/7/28 19:00&#39;, &#39;2009/7/28 20:00&#39;, &#39;2009/7/28 21:00&#39;, &#39;2009/7/28 22:00&#39;, &#39;2009/7/28 23:00&#39;,
                &#39;2009/7/29 0:00&#39;, &#39;2009/7/29 1:00&#39;, &#39;2009/7/29 2:00&#39;, &#39;2009/7/29 3:00&#39;, &#39;2009/7/29 4:00&#39;, &#39;2009/7/29 5:00&#39;, &#39;2009/7/29 6:00&#39;, &#39;2009/7/29 7:00&#39;, &#39;2009/7/29 8:00&#39;, &#39;2009/7/29 9:00&#39;, &#39;2009/7/29 10:00&#39;, &#39;2009/7/29 11:00&#39;, &#39;2009/7/29 12:00&#39;, &#39;2009/7/29 13:00&#39;, &#39;2009/7/29 14:00&#39;, &#39;2009/7/29 15:00&#39;, &#39;2009/7/29 16:00&#39;, &#39;2009/7/29 17:00&#39;, &#39;2009/7/29 18:00&#39;, &#39;2009/7/29 19:00&#39;, &#39;2009/7/29 20:00&#39;, &#39;2009/7/29 21:00&#39;, &#39;2009/7/29 22:00&#39;, &#39;2009/7/29 23:00&#39;,
                &#39;2009/7/30 0:00&#39;, &#39;2009/7/30 1:00&#39;, &#39;2009/7/30 2:00&#39;, &#39;2009/7/30 3:00&#39;, &#39;2009/7/30 4:00&#39;, &#39;2009/7/30 5:00&#39;, &#39;2009/7/30 6:00&#39;, &#39;2009/7/30 7:00&#39;, &#39;2009/7/30 8:00&#39;, &#39;2009/7/30 9:00&#39;, &#39;2009/7/30 10:00&#39;, &#39;2009/7/30 11:00&#39;, &#39;2009/7/30 12:00&#39;, &#39;2009/7/30 13:00&#39;, &#39;2009/7/30 14:00&#39;, &#39;2009/7/30 15:00&#39;, &#39;2009/7/30 16:00&#39;, &#39;2009/7/30 17:00&#39;, &#39;2009/7/30 18:00&#39;, &#39;2009/7/30 19:00&#39;, &#39;2009/7/30 20:00&#39;, &#39;2009/7/30 21:00&#39;, &#39;2009/7/30 22:00&#39;, &#39;2009/7/30 23:00&#39;,
                &#39;2009/7/31 0:00&#39;, &#39;2009/7/31 1:00&#39;, &#39;2009/7/31 2:00&#39;, &#39;2009/7/31 3:00&#39;, &#39;2009/7/31 4:00&#39;, &#39;2009/7/31 5:00&#39;, &#39;2009/7/31 6:00&#39;, &#39;2009/7/31 7:00&#39;, &#39;2009/7/31 8:00&#39;, &#39;2009/7/31 9:00&#39;, &#39;2009/7/31 10:00&#39;, &#39;2009/7/31 11:00&#39;, &#39;2009/7/31 12:00&#39;, &#39;2009/7/31 13:00&#39;, &#39;2009/7/31 14:00&#39;, &#39;2009/7/31 15:00&#39;, &#39;2009/7/31 16:00&#39;, &#39;2009/7/31 17:00&#39;, &#39;2009/7/31 18:00&#39;, &#39;2009/7/31 19:00&#39;, &#39;2009/7/31 20:00&#39;, &#39;2009/7/31 21:00&#39;, &#39;2009/7/31 22:00&#39;, &#39;2009/7/31 23:00&#39;,
                &#39;2009/8/1 0:00&#39;, &#39;2009/8/1 1:00&#39;, &#39;2009/8/1 2:00&#39;, &#39;2009/8/1 3:00&#39;, &#39;2009/8/1 4:00&#39;, &#39;2009/8/1 5:00&#39;, &#39;2009/8/1 6:00&#39;, &#39;2009/8/1 7:00&#39;, &#39;2009/8/1 8:00&#39;, &#39;2009/8/1 9:00&#39;, &#39;2009/8/1 10:00&#39;, &#39;2009/8/1 11:00&#39;, &#39;2009/8/1 12:00&#39;, &#39;2009/8/1 13:00&#39;, &#39;2009/8/1 14:00&#39;, &#39;2009/8/1 15:00&#39;, &#39;2009/8/1 16:00&#39;, &#39;2009/8/1 17:00&#39;, &#39;2009/8/1 18:00&#39;, &#39;2009/8/1 19:00&#39;, &#39;2009/8/1 20:00&#39;, &#39;2009/8/1 21:00&#39;, &#39;2009/8/1 22:00&#39;, &#39;2009/8/1 23:00&#39;, &#39;2009/8/2 0:00&#39;, &#39;2009/8/2 1:00&#39;, &#39;2009/8/2 2:00&#39;, &#39;2009/8/2 3:00&#39;, &#39;2009/8/2 4:00&#39;, &#39;2009/8/2 5:00&#39;, &#39;2009/8/2 6:00&#39;, &#39;2009/8/2 7:00&#39;, &#39;2009/8/2 8:00&#39;, &#39;2009/8/2 9:00&#39;, &#39;2009/8/2 10:00&#39;, &#39;2009/8/2 11:00&#39;, &#39;2009/8/2 12:00&#39;, &#39;2009/8/2 13:00&#39;, &#39;2009/8/2 14:00&#39;, &#39;2009/8/2 15:00&#39;, &#39;2009/8/2 16:00&#39;, &#39;2009/8/2 17:00&#39;, &#39;2009/8/2 18:00&#39;, &#39;2009/8/2 19:00&#39;, &#39;2009/8/2 20:00&#39;, &#39;2009/8/2 21:00&#39;, &#39;2009/8/2 22:00&#39;, &#39;2009/8/2 23:00&#39;, &#39;2009/8/3 0:00&#39;, &#39;2009/8/3 1:00&#39;, &#39;2009/8/3 2:00&#39;, &#39;2009/8/3 3:00&#39;, &#39;2009/8/3 4:00&#39;, &#39;2009/8/3 5:00&#39;, &#39;2009/8/3 6:00&#39;, &#39;2009/8/3 7:00&#39;, &#39;2009/8/3 8:00&#39;, &#39;2009/8/3 9:00&#39;, &#39;2009/8/3 10:00&#39;, &#39;2009/8/3 11:00&#39;, &#39;2009/8/3 12:00&#39;, &#39;2009/8/3 13:00&#39;, &#39;2009/8/3 14:00&#39;, &#39;2009/8/3 15:00&#39;, &#39;2009/8/3 16:00&#39;, &#39;2009/8/3 17:00&#39;, &#39;2009/8/3 18:00&#39;, &#39;2009/8/3 19:00&#39;, &#39;2009/8/3 20:00&#39;, &#39;2009/8/3 21:00&#39;, &#39;2009/8/3 22:00&#39;, &#39;2009/8/3 23:00&#39;, &#39;2009/8/4 0:00&#39;, &#39;2009/8/4 1:00&#39;, &#39;2009/8/4 2:00&#39;, &#39;2009/8/4 3:00&#39;, &#39;2009/8/4 4:00&#39;, &#39;2009/8/4 5:00&#39;, &#39;2009/8/4 6:00&#39;, &#39;2009/8/4 7:00&#39;, &#39;2009/8/4 8:00&#39;, &#39;2009/8/4 9:00&#39;, &#39;2009/8/4 10:00&#39;, &#39;2009/8/4 11:00&#39;, &#39;2009/8/4 12:00&#39;, &#39;2009/8/4 13:00&#39;, &#39;2009/8/4 14:00&#39;, &#39;2009/8/4 15:00&#39;, &#39;2009/8/4 16:00&#39;, &#39;2009/8/4 17:00&#39;, &#39;2009/8/4 18:00&#39;, &#39;2009/8/4 19:00&#39;, &#39;2009/8/4 20:00&#39;, &#39;2009/8/4 21:00&#39;, &#39;2009/8/4 22:00&#39;, &#39;2009/8/4 23:00&#39;, &#39;2009/8/5 0:00&#39;, &#39;2009/8/5 1:00&#39;, &#39;2009/8/5 2:00&#39;, &#39;2009/8/5 3:00&#39;, &#39;2009/8/5 4:00&#39;, &#39;2009/8/5 5:00&#39;, &#39;2009/8/5 6:00&#39;, &#39;2009/8/5 7:00&#39;, &#39;2009/8/5 8:00&#39;, &#39;2009/8/5 9:00&#39;, &#39;2009/8/5 10:00&#39;, &#39;2009/8/5 11:00&#39;, &#39;2009/8/5 12:00&#39;, &#39;2009/8/5 13:00&#39;, &#39;2009/8/5 14:00&#39;, &#39;2009/8/5 15:00&#39;, &#39;2009/8/5 16:00&#39;, &#39;2009/8/5 17:00&#39;, &#39;2009/8/5 18:00&#39;, &#39;2009/8/5 19:00&#39;, &#39;2009/8/5 20:00&#39;, &#39;2009/8/5 21:00&#39;, &#39;2009/8/5 22:00&#39;, &#39;2009/8/5 23:00&#39;, &#39;2009/8/6 0:00&#39;, &#39;2009/8/6 1:00&#39;, &#39;2009/8/6 2:00&#39;, &#39;2009/8/6 3:00&#39;, &#39;2009/8/6 4:00&#39;, &#39;2009/8/6 5:00&#39;, &#39;2009/8/6 6:00&#39;, &#39;2009/8/6 7:00&#39;, &#39;2009/8/6 8:00&#39;, &#39;2009/8/6 9:00&#39;, &#39;2009/8/6 10:00&#39;, &#39;2009/8/6 11:00&#39;, &#39;2009/8/6 12:00&#39;, &#39;2009/8/6 13:00&#39;, &#39;2009/8/6 14:00&#39;, &#39;2009/8/6 15:00&#39;, &#39;2009/8/6 16:00&#39;, &#39;2009/8/6 17:00&#39;, &#39;2009/8/6 18:00&#39;, &#39;2009/8/6 19:00&#39;, &#39;2009/8/6 20:00&#39;, &#39;2009/8/6 21:00&#39;, &#39;2009/8/6 22:00&#39;, &#39;2009/8/6 23:00&#39;, &#39;2009/8/7 0:00&#39;, &#39;2009/8/7 1:00&#39;, &#39;2009/8/7 2:00&#39;, &#39;2009/8/7 3:00&#39;, &#39;2009/8/7 4:00&#39;, &#39;2009/8/7 5:00&#39;, &#39;2009/8/7 6:00&#39;, &#39;2009/8/7 7:00&#39;, &#39;2009/8/7 8:00&#39;, &#39;2009/8/7 9:00&#39;, &#39;2009/8/7 10:00&#39;, &#39;2009/8/7 11:00&#39;, &#39;2009/8/7 12:00&#39;, &#39;2009/8/7 13:00&#39;, &#39;2009/8/7 14:00&#39;, &#39;2009/8/7 15:00&#39;, &#39;2009/8/7 16:00&#39;, &#39;2009/8/7 17:00&#39;, &#39;2009/8/7 18:00&#39;, &#39;2009/8/7 19:00&#39;, &#39;2009/8/7 20:00&#39;, &#39;2009/8/7 21:00&#39;, &#39;2009/8/7 22:00&#39;, &#39;2009/8/7 23:00&#39;, &#39;2009/8/8 0:00&#39;, &#39;2009/8/8 1:00&#39;, &#39;2009/8/8 2:00&#39;, &#39;2009/8/8 3:00&#39;, &#39;2009/8/8 4:00&#39;, &#39;2009/8/8 5:00&#39;, &#39;2009/8/8 6:00&#39;, &#39;2009/8/8 7:00&#39;, &#39;2009/8/8 8:00&#39;, &#39;2009/8/8 9:00&#39;, &#39;2009/8/8 10:00&#39;, &#39;2009/8/8 11:00&#39;, &#39;2009/8/8 12:00&#39;, &#39;2009/8/8 13:00&#39;, &#39;2009/8/8 14:00&#39;, &#39;2009/8/8 15:00&#39;, &#39;2009/8/8 16:00&#39;, &#39;2009/8/8 17:00&#39;, &#39;2009/8/8 18:00&#39;, &#39;2009/8/8 19:00&#39;, &#39;2009/8/8 20:00&#39;, &#39;2009/8/8 21:00&#39;, &#39;2009/8/8 22:00&#39;, &#39;2009/8/8 23:00&#39;, &#39;2009/8/9 0:00&#39;, &#39;2009/8/9 1:00&#39;, &#39;2009/8/9 2:00&#39;, &#39;2009/8/9 3:00&#39;, &#39;2009/8/9 4:00&#39;, &#39;2009/8/9 5:00&#39;, &#39;2009/8/9 6:00&#39;, &#39;2009/8/9 7:00&#39;, &#39;2009/8/9 8:00&#39;, &#39;2009/8/9 9:00&#39;, &#39;2009/8/9 10:00&#39;, &#39;2009/8/9 11:00&#39;, &#39;2009/8/9 12:00&#39;, &#39;2009/8/9 13:00&#39;, &#39;2009/8/9 14:00&#39;, &#39;2009/8/9 15:00&#39;, &#39;2009/8/9 16:00&#39;, &#39;2009/8/9 17:00&#39;, &#39;2009/8/9 18:00&#39;, &#39;2009/8/9 19:00&#39;, &#39;2009/8/9 20:00&#39;, &#39;2009/8/9 21:00&#39;, &#39;2009/8/9 22:00&#39;, &#39;2009/8/9 23:00&#39;, &#39;2009/8/10 0:00&#39;, &#39;2009/8/10 1:00&#39;, &#39;2009/8/10 2:00&#39;, &#39;2009/8/10 3:00&#39;, &#39;2009/8/10 4:00&#39;, &#39;2009/8/10 5:00&#39;, &#39;2009/8/10 6:00&#39;, &#39;2009/8/10 7:00&#39;, &#39;2009/8/10 8:00&#39;, &#39;2009/8/10 9:00&#39;, &#39;2009/8/10 10:00&#39;, &#39;2009/8/10 11:00&#39;, &#39;2009/8/10 12:00&#39;, &#39;2009/8/10 13:00&#39;, &#39;2009/8/10 14:00&#39;, &#39;2009/8/10 15:00&#39;, &#39;2009/8/10 16:00&#39;, &#39;2009/8/10 17:00&#39;, &#39;2009/8/10 18:00&#39;, &#39;2009/8/10 19:00&#39;, &#39;2009/8/10 20:00&#39;, &#39;2009/8/10 21:00&#39;, &#39;2009/8/10 22:00&#39;, &#39;2009/8/10 23:00&#39;, &#39;2009/8/11 0:00&#39;, &#39;2009/8/11 1:00&#39;, &#39;2009/8/11 2:00&#39;, &#39;2009/8/11 3:00&#39;, &#39;2009/8/11 4:00&#39;, &#39;2009/8/11 5:00&#39;, &#39;2009/8/11 6:00&#39;, &#39;2009/8/11 7:00&#39;, &#39;2009/8/11 8:00&#39;, &#39;2009/8/11 9:00&#39;, &#39;2009/8/11 10:00&#39;, &#39;2009/8/11 11:00&#39;, &#39;2009/8/11 12:00&#39;, &#39;2009/8/11 13:00&#39;, &#39;2009/8/11 14:00&#39;, &#39;2009/8/11 15:00&#39;, &#39;2009/8/11 16:00&#39;, &#39;2009/8/11 17:00&#39;, &#39;2009/8/11 18:00&#39;, &#39;2009/8/11 19:00&#39;, &#39;2009/8/11 20:00&#39;, &#39;2009/8/11 21:00&#39;, &#39;2009/8/11 22:00&#39;, &#39;2009/8/11 23:00&#39;, &#39;2009/8/12 0:00&#39;, &#39;2009/8/12 1:00&#39;, &#39;2009/8/12 2:00&#39;, &#39;2009/8/12 3:00&#39;, &#39;2009/8/12 4:00&#39;, &#39;2009/8/12 5:00&#39;, &#39;2009/8/12 6:00&#39;, &#39;2009/8/12 7:00&#39;, &#39;2009/8/12 8:00&#39;, &#39;2009/8/12 9:00&#39;, &#39;2009/8/12 10:00&#39;, &#39;2009/8/12 11:00&#39;, &#39;2009/8/12 12:00&#39;, &#39;2009/8/12 13:00&#39;, &#39;2009/8/12 14:00&#39;, &#39;2009/8/12 15:00&#39;, &#39;2009/8/12 16:00&#39;, &#39;2009/8/12 17:00&#39;, &#39;2009/8/12 18:00&#39;, &#39;2009/8/12 19:00&#39;, &#39;2009/8/12 20:00&#39;, &#39;2009/8/12 21:00&#39;, &#39;2009/8/12 22:00&#39;, &#39;2009/8/12 23:00&#39;, &#39;2009/8/13 0:00&#39;, &#39;2009/8/13 1:00&#39;, &#39;2009/8/13 2:00&#39;, &#39;2009/8/13 3:00&#39;, &#39;2009/8/13 4:00&#39;, &#39;2009/8/13 5:00&#39;, &#39;2009/8/13 6:00&#39;, &#39;2009/8/13 7:00&#39;, &#39;2009/8/13 8:00&#39;, &#39;2009/8/13 9:00&#39;, &#39;2009/8/13 10:00&#39;, &#39;2009/8/13 11:00&#39;, &#39;2009/8/13 12:00&#39;, &#39;2009/8/13 13:00&#39;, &#39;2009/8/13 14:00&#39;, &#39;2009/8/13 15:00&#39;, &#39;2009/8/13 16:00&#39;, &#39;2009/8/13 17:00&#39;, &#39;2009/8/13 18:00&#39;, &#39;2009/8/13 19:00&#39;, &#39;2009/8/13 20:00&#39;, &#39;2009/8/13 21:00&#39;, &#39;2009/8/13 22:00&#39;, &#39;2009/8/13 23:00&#39;, &#39;2009/8/14 0:00&#39;, &#39;2009/8/14 1:00&#39;, &#39;2009/8/14 2:00&#39;, &#39;2009/8/14 3:00&#39;, &#39;2009/8/14 4:00&#39;, &#39;2009/8/14 5:00&#39;, &#39;2009/8/14 6:00&#39;, &#39;2009/8/14 7:00&#39;, &#39;2009/8/14 8:00&#39;, &#39;2009/8/14 9:00&#39;, &#39;2009/8/14 10:00&#39;, &#39;2009/8/14 11:00&#39;, &#39;2009/8/14 12:00&#39;, &#39;2009/8/14 13:00&#39;, &#39;2009/8/14 14:00&#39;, &#39;2009/8/14 15:00&#39;, &#39;2009/8/14 16:00&#39;, &#39;2009/8/14 17:00&#39;, &#39;2009/8/14 18:00&#39;, &#39;2009/8/14 19:00&#39;, &#39;2009/8/14 20:00&#39;, &#39;2009/8/14 21:00&#39;, &#39;2009/8/14 22:00&#39;, &#39;2009/8/14 23:00&#39;, &#39;2009/8/15 0:00&#39;, &#39;2009/8/15 1:00&#39;, &#39;2009/8/15 2:00&#39;, &#39;2009/8/15 3:00&#39;, &#39;2009/8/15 4:00&#39;, &#39;2009/8/15 5:00&#39;, &#39;2009/8/15 6:00&#39;, &#39;2009/8/15 7:00&#39;, &#39;2009/8/15 8:00&#39;, &#39;2009/8/15 9:00&#39;, &#39;2009/8/15 10:00&#39;, &#39;2009/8/15 11:00&#39;, &#39;2009/8/15 12:00&#39;, &#39;2009/8/15 13:00&#39;, &#39;2009/8/15 14:00&#39;, &#39;2009/8/15 15:00&#39;, &#39;2009/8/15 16:00&#39;, &#39;2009/8/15 17:00&#39;, &#39;2009/8/15 18:00&#39;, &#39;2009/8/15 19:00&#39;, &#39;2009/8/15 20:00&#39;, &#39;2009/8/15 21:00&#39;, &#39;2009/8/15 22:00&#39;, &#39;2009/8/15 23:00&#39;, &#39;2009/8/16 0:00&#39;, &#39;2009/8/16 1:00&#39;, &#39;2009/8/16 2:00&#39;, &#39;2009/8/16 3:00&#39;, &#39;2009/8/16 4:00&#39;, &#39;2009/8/16 5:00&#39;, &#39;2009/8/16 6:00&#39;, &#39;2009/8/16 7:00&#39;, &#39;2009/8/16 8:00&#39;, &#39;2009/8/16 9:00&#39;, &#39;2009/8/16 10:00&#39;, &#39;2009/8/16 11:00&#39;, &#39;2009/8/16 12:00&#39;, &#39;2009/8/16 13:00&#39;, &#39;2009/8/16 14:00&#39;, &#39;2009/8/16 15:00&#39;, &#39;2009/8/16 16:00&#39;, &#39;2009/8/16 17:00&#39;, &#39;2009/8/16 18:00&#39;, &#39;2009/8/16 19:00&#39;, &#39;2009/8/16 20:00&#39;, &#39;2009/8/16 21:00&#39;, &#39;2009/8/16 22:00&#39;, &#39;2009/8/16 23:00&#39;, &#39;2009/8/17 0:00&#39;, &#39;2009/8/17 1:00&#39;, &#39;2009/8/17 2:00&#39;, &#39;2009/8/17 3:00&#39;, &#39;2009/8/17 4:00&#39;, &#39;2009/8/17 5:00&#39;, &#39;2009/8/17 6:00&#39;, &#39;2009/8/17 7:00&#39;, &#39;2009/8/17 8:00&#39;, &#39;2009/8/17 9:00&#39;, &#39;2009/8/17 10:00&#39;, &#39;2009/8/17 11:00&#39;, &#39;2009/8/17 12:00&#39;, &#39;2009/8/17 13:00&#39;, &#39;2009/8/17 14:00&#39;, &#39;2009/8/17 15:00&#39;, &#39;2009/8/17 16:00&#39;, &#39;2009/8/17 17:00&#39;, &#39;2009/8/17 18:00&#39;, &#39;2009/8/17 19:00&#39;, &#39;2009/8/17 20:00&#39;, &#39;2009/8/17 21:00&#39;, &#39;2009/8/17 22:00&#39;, &#39;2009/8/17 23:00&#39;, &#39;2009/8/18 0:00&#39;, &#39;2009/8/18 1:00&#39;, &#39;2009/8/18 2:00&#39;, &#39;2009/8/18 3:00&#39;, &#39;2009/8/18 4:00&#39;, &#39;2009/8/18 5:00&#39;, &#39;2009/8/18 6:00&#39;, &#39;2009/8/18 7:00&#39;, &#39;2009/8/18 8:00&#39;, &#39;2009/8/18 9:00&#39;, &#39;2009/8/18 10:00&#39;, &#39;2009/8/18 11:00&#39;, &#39;2009/8/18 12:00&#39;, &#39;2009/8/18 13:00&#39;, &#39;2009/8/18 14:00&#39;, &#39;2009/8/18 15:00&#39;, &#39;2009/8/18 16:00&#39;, &#39;2009/8/18 17:00&#39;, &#39;2009/8/18 18:00&#39;, &#39;2009/8/18 19:00&#39;, &#39;2009/8/18 20:00&#39;, &#39;2009/8/18 21:00&#39;, &#39;2009/8/18 22:00&#39;, &#39;2009/8/18 23:00&#39;, &#39;2009/8/19 0:00&#39;, &#39;2009/8/19 1:00&#39;, &#39;2009/8/19 2:00&#39;, &#39;2009/8/19 3:00&#39;, &#39;2009/8/19 4:00&#39;, &#39;2009/8/19 5:00&#39;, &#39;2009/8/19 6:00&#39;, &#39;2009/8/19 7:00&#39;, &#39;2009/8/19 8:00&#39;, &#39;2009/8/19 9:00&#39;, &#39;2009/8/19 10:00&#39;, &#39;2009/8/19 11:00&#39;, &#39;2009/8/19 12:00&#39;, &#39;2009/8/19 13:00&#39;, &#39;2009/8/19 14:00&#39;, &#39;2009/8/19 15:00&#39;, &#39;2009/8/19 16:00&#39;, &#39;2009/8/19 17:00&#39;, &#39;2009/8/19 18:00&#39;, &#39;2009/8/19 19:00&#39;, &#39;2009/8/19 20:00&#39;, &#39;2009/8/19 21:00&#39;, &#39;2009/8/19 22:00&#39;, &#39;2009/8/19 23:00&#39;, &#39;2009/8/20 0:00&#39;, &#39;2009/8/20 1:00&#39;, &#39;2009/8/20 2:00&#39;, &#39;2009/8/20 3:00&#39;, &#39;2009/8/20 4:00&#39;, &#39;2009/8/20 5:00&#39;, &#39;2009/8/20 6:00&#39;, &#39;2009/8/20 7:00&#39;, &#39;2009/8/20 8:00&#39;, &#39;2009/8/20 9:00&#39;, &#39;2009/8/20 10:00&#39;, &#39;2009/8/20 11:00&#39;, &#39;2009/8/20 12:00&#39;, &#39;2009/8/20 13:00&#39;, &#39;2009/8/20 14:00&#39;, &#39;2009/8/20 15:00&#39;, &#39;2009/8/20 16:00&#39;, &#39;2009/8/20 17:00&#39;, &#39;2009/8/20 18:00&#39;, &#39;2009/8/20 19:00&#39;, &#39;2009/8/20 20:00&#39;, &#39;2009/8/20 21:00&#39;, &#39;2009/8/20 22:00&#39;, &#39;2009/8/20 23:00&#39;, &#39;2009/8/21 0:00&#39;, &#39;2009/8/21 1:00&#39;, &#39;2009/8/21 2:00&#39;, &#39;2009/8/21 3:00&#39;, &#39;2009/8/21 4:00&#39;, &#39;2009/8/21 5:00&#39;, &#39;2009/8/21 6:00&#39;, &#39;2009/8/21 7:00&#39;, &#39;2009/8/21 8:00&#39;, &#39;2009/8/21 9:00&#39;, &#39;2009/8/21 10:00&#39;, &#39;2009/8/21 11:00&#39;, &#39;2009/8/21 12:00&#39;, &#39;2009/8/21 13:00&#39;, &#39;2009/8/21 14:00&#39;, &#39;2009/8/21 15:00&#39;, &#39;2009/8/21 16:00&#39;, &#39;2009/8/21 17:00&#39;, &#39;2009/8/21 18:00&#39;, &#39;2009/8/21 19:00&#39;, &#39;2009/8/21 20:00&#39;, &#39;2009/8/21 21:00&#39;, &#39;2009/8/21 22:00&#39;, &#39;2009/8/21 23:00&#39;, &#39;2009/8/22 0:00&#39;, &#39;2009/8/22 1:00&#39;, &#39;2009/8/22 2:00&#39;, &#39;2009/8/22 3:00&#39;, &#39;2009/8/22 4:00&#39;, &#39;2009/8/22 5:00&#39;, &#39;2009/8/22 6:00&#39;, &#39;2009/8/22 7:00&#39;, &#39;2009/8/22 8:00&#39;, &#39;2009/8/22 9:00&#39;, &#39;2009/8/22 10:00&#39;, &#39;2009/8/22 11:00&#39;, &#39;2009/8/22 12:00&#39;, &#39;2009/8/22 13:00&#39;, &#39;2009/8/22 14:00&#39;, &#39;2009/8/22 15:00&#39;, &#39;2009/8/22 16:00&#39;, &#39;2009/8/22 17:00&#39;, &#39;2009/8/22 18:00&#39;, &#39;2009/8/22 19:00&#39;, &#39;2009/8/22 20:00&#39;, &#39;2009/8/22 21:00&#39;, &#39;2009/8/22 22:00&#39;, &#39;2009/8/22 23:00&#39;, &#39;2009/8/23 0:00&#39;, &#39;2009/8/23 1:00&#39;, &#39;2009/8/23 2:00&#39;, &#39;2009/8/23 3:00&#39;, &#39;2009/8/23 4:00&#39;, &#39;2009/8/23 5:00&#39;, &#39;2009/8/23 6:00&#39;, &#39;2009/8/23 7:00&#39;, &#39;2009/8/23 8:00&#39;, &#39;2009/8/23 9:00&#39;, &#39;2009/8/23 10:00&#39;, &#39;2009/8/23 11:00&#39;, &#39;2009/8/23 12:00&#39;, &#39;2009/8/23 13:00&#39;, &#39;2009/8/23 14:00&#39;, &#39;2009/8/23 15:00&#39;, &#39;2009/8/23 16:00&#39;, &#39;2009/8/23 17:00&#39;, &#39;2009/8/23 18:00&#39;, &#39;2009/8/23 19:00&#39;, &#39;2009/8/23 20:00&#39;, &#39;2009/8/23 21:00&#39;, &#39;2009/8/23 22:00&#39;, &#39;2009/8/23 23:00&#39;, &#39;2009/8/24 0:00&#39;, &#39;2009/8/24 1:00&#39;, &#39;2009/8/24 2:00&#39;, &#39;2009/8/24 3:00&#39;, &#39;2009/8/24 4:00&#39;, &#39;2009/8/24 5:00&#39;, &#39;2009/8/24 6:00&#39;, &#39;2009/8/24 7:00&#39;, &#39;2009/8/24 8:00&#39;, &#39;2009/8/24 9:00&#39;, &#39;2009/8/24 10:00&#39;, &#39;2009/8/24 11:00&#39;, &#39;2009/8/24 12:00&#39;, &#39;2009/8/24 13:00&#39;, &#39;2009/8/24 14:00&#39;, &#39;2009/8/24 15:00&#39;, &#39;2009/8/24 16:00&#39;, &#39;2009/8/24 17:00&#39;, &#39;2009/8/24 18:00&#39;, &#39;2009/8/24 19:00&#39;, &#39;2009/8/24 20:00&#39;, &#39;2009/8/24 21:00&#39;, &#39;2009/8/24 22:00&#39;, &#39;2009/8/24 23:00&#39;, &#39;2009/8/25 0:00&#39;, &#39;2009/8/25 1:00&#39;, &#39;2009/8/25 2:00&#39;, &#39;2009/8/25 3:00&#39;, &#39;2009/8/25 4:00&#39;, &#39;2009/8/25 5:00&#39;, &#39;2009/8/25 6:00&#39;, &#39;2009/8/25 7:00&#39;, &#39;2009/8/25 8:00&#39;, &#39;2009/8/25 9:00&#39;, &#39;2009/8/25 10:00&#39;, &#39;2009/8/25 11:00&#39;, &#39;2009/8/25 12:00&#39;, &#39;2009/8/25 13:00&#39;, &#39;2009/8/25 14:00&#39;, &#39;2009/8/25 15:00&#39;, &#39;2009/8/25 16:00&#39;, &#39;2009/8/25 17:00&#39;, &#39;2009/8/25 18:00&#39;, &#39;2009/8/25 19:00&#39;, &#39;2009/8/25 20:00&#39;, &#39;2009/8/25 21:00&#39;, &#39;2009/8/25 22:00&#39;, &#39;2009/8/25 23:00&#39;, &#39;2009/8/26 0:00&#39;, &#39;2009/8/26 1:00&#39;, &#39;2009/8/26 2:00&#39;, &#39;2009/8/26 3:00&#39;, &#39;2009/8/26 4:00&#39;, &#39;2009/8/26 5:00&#39;, &#39;2009/8/26 6:00&#39;, &#39;2009/8/26 7:00&#39;, &#39;2009/8/26 8:00&#39;, &#39;2009/8/26 9:00&#39;, &#39;2009/8/26 10:00&#39;, &#39;2009/8/26 11:00&#39;, &#39;2009/8/26 12:00&#39;, &#39;2009/8/26 13:00&#39;, &#39;2009/8/26 14:00&#39;, &#39;2009/8/26 15:00&#39;, &#39;2009/8/26 16:00&#39;, &#39;2009/8/26 17:00&#39;, &#39;2009/8/26 18:00&#39;, &#39;2009/8/26 19:00&#39;, &#39;2009/8/26 20:00&#39;, &#39;2009/8/26 21:00&#39;, &#39;2009/8/26 22:00&#39;, &#39;2009/8/26 23:00&#39;, &#39;2009/8/27 0:00&#39;, &#39;2009/8/27 1:00&#39;, &#39;2009/8/27 2:00&#39;, &#39;2009/8/27 3:00&#39;, &#39;2009/8/27 4:00&#39;, &#39;2009/8/27 5:00&#39;, &#39;2009/8/27 6:00&#39;, &#39;2009/8/27 7:00&#39;, &#39;2009/8/27 8:00&#39;, &#39;2009/8/27 9:00&#39;, &#39;2009/8/27 10:00&#39;, &#39;2009/8/27 11:00&#39;, &#39;2009/8/27 12:00&#39;, &#39;2009/8/27 13:00&#39;, &#39;2009/8/27 14:00&#39;, &#39;2009/8/27 15:00&#39;, &#39;2009/8/27 16:00&#39;, &#39;2009/8/27 17:00&#39;, &#39;2009/8/27 18:00&#39;, &#39;2009/8/27 19:00&#39;, &#39;2009/8/27 20:00&#39;, &#39;2009/8/27 21:00&#39;, &#39;2009/8/27 22:00&#39;, &#39;2009/8/27 23:00&#39;, &#39;2009/8/28 0:00&#39;, &#39;2009/8/28 1:00&#39;, &#39;2009/8/28 2:00&#39;, &#39;2009/8/28 3:00&#39;, &#39;2009/8/28 4:00&#39;, &#39;2009/8/28 5:00&#39;, &#39;2009/8/28 6:00&#39;, &#39;2009/8/28 7:00&#39;, &#39;2009/8/28 8:00&#39;, &#39;2009/8/28 9:00&#39;, &#39;2009/8/28 10:00&#39;, &#39;2009/8/28 11:00&#39;, &#39;2009/8/28 12:00&#39;, &#39;2009/8/28 13:00&#39;, &#39;2009/8/28 14:00&#39;, &#39;2009/8/28 15:00&#39;, &#39;2009/8/28 16:00&#39;, &#39;2009/8/28 17:00&#39;, &#39;2009/8/28 18:00&#39;, &#39;2009/8/28 19:00&#39;, &#39;2009/8/28 20:00&#39;, &#39;2009/8/28 21:00&#39;, &#39;2009/8/28 22:00&#39;, &#39;2009/8/28 23:00&#39;, &#39;2009/8/29 0:00&#39;, &#39;2009/8/29 1:00&#39;, &#39;2009/8/29 2:00&#39;, &#39;2009/8/29 3:00&#39;, &#39;2009/8/29 4:00&#39;, &#39;2009/8/29 5:00&#39;, &#39;2009/8/29 6:00&#39;, &#39;2009/8/29 7:00&#39;, &#39;2009/8/29 8:00&#39;, &#39;2009/8/29 9:00&#39;, &#39;2009/8/29 10:00&#39;, &#39;2009/8/29 11:00&#39;, &#39;2009/8/29 12:00&#39;, &#39;2009/8/29 13:00&#39;, &#39;2009/8/29 14:00&#39;, &#39;2009/8/29 15:00&#39;, &#39;2009/8/29 16:00&#39;, &#39;2009/8/29 17:00&#39;, &#39;2009/8/29 18:00&#39;, &#39;2009/8/29 19:00&#39;, &#39;2009/8/29 20:00&#39;, &#39;2009/8/29 21:00&#39;, &#39;2009/8/29 22:00&#39;, &#39;2009/8/29 23:00&#39;, &#39;2009/8/30 0:00&#39;, &#39;2009/8/30 1:00&#39;, &#39;2009/8/30 2:00&#39;, &#39;2009/8/30 3:00&#39;, &#39;2009/8/30 4:00&#39;, &#39;2009/8/30 5:00&#39;, &#39;2009/8/30 6:00&#39;, &#39;2009/8/30 7:00&#39;, &#39;2009/8/30 8:00&#39;, &#39;2009/8/30 9:00&#39;, &#39;2009/8/30 10:00&#39;, &#39;2009/8/30 11:00&#39;, &#39;2009/8/30 12:00&#39;, &#39;2009/8/30 13:00&#39;, &#39;2009/8/30 14:00&#39;, &#39;2009/8/30 15:00&#39;, &#39;2009/8/30 16:00&#39;, &#39;2009/8/30 17:00&#39;, &#39;2009/8/30 18:00&#39;, &#39;2009/8/30 19:00&#39;, &#39;2009/8/30 20:00&#39;, &#39;2009/8/30 21:00&#39;, &#39;2009/8/30 22:00&#39;, &#39;2009/8/30 23:00&#39;, &#39;2009/8/31 0:00&#39;, &#39;2009/8/31 1:00&#39;, &#39;2009/8/31 2:00&#39;, &#39;2009/8/31 3:00&#39;, &#39;2009/8/31 4:00&#39;, &#39;2009/8/31 5:00&#39;, &#39;2009/8/31 6:00&#39;, &#39;2009/8/31 7:00&#39;, &#39;2009/8/31 8:00&#39;, &#39;2009/8/31 9:00&#39;, &#39;2009/8/31 10:00&#39;, &#39;2009/8/31 11:00&#39;, &#39;2009/8/31 12:00&#39;, &#39;2009/8/31 13:00&#39;, &#39;2009/8/31 14:00&#39;, &#39;2009/8/31 15:00&#39;, &#39;2009/8/31 16:00&#39;, &#39;2009/8/31 17:00&#39;, &#39;2009/8/31 18:00&#39;, &#39;2009/8/31 19:00&#39;, &#39;2009/8/31 20:00&#39;, &#39;2009/8/31 21:00&#39;, &#39;2009/8/31 22:00&#39;, &#39;2009/8/31 23:00&#39;,
                &#39;2009/9/1 0:00&#39;, &#39;2009/9/1 1:00&#39;, &#39;2009/9/1 2:00&#39;, &#39;2009/9/1 3:00&#39;, &#39;2009/9/1 4:00&#39;, &#39;2009/9/1 5:00&#39;, &#39;2009/9/1 6:00&#39;, &#39;2009/9/1 7:00&#39;, &#39;2009/9/1 8:00&#39;, &#39;2009/9/1 9:00&#39;, &#39;2009/9/1 10:00&#39;, &#39;2009/9/1 11:00&#39;, &#39;2009/9/1 12:00&#39;, &#39;2009/9/1 13:00&#39;, &#39;2009/9/1 14:00&#39;, &#39;2009/9/1 15:00&#39;, &#39;2009/9/1 16:00&#39;, &#39;2009/9/1 17:00&#39;, &#39;2009/9/1 18:00&#39;, &#39;2009/9/1 19:00&#39;, &#39;2009/9/1 20:00&#39;, &#39;2009/9/1 21:00&#39;, &#39;2009/9/1 22:00&#39;, &#39;2009/9/1 23:00&#39;, &#39;2009/9/2 0:00&#39;, &#39;2009/9/2 1:00&#39;, &#39;2009/9/2 2:00&#39;, &#39;2009/9/2 3:00&#39;, &#39;2009/9/2 4:00&#39;, &#39;2009/9/2 5:00&#39;, &#39;2009/9/2 6:00&#39;, &#39;2009/9/2 7:00&#39;, &#39;2009/9/2 8:00&#39;, &#39;2009/9/2 9:00&#39;, &#39;2009/9/2 10:00&#39;, &#39;2009/9/2 11:00&#39;, &#39;2009/9/2 12:00&#39;, &#39;2009/9/2 13:00&#39;, &#39;2009/9/2 14:00&#39;, &#39;2009/9/2 15:00&#39;, &#39;2009/9/2 16:00&#39;, &#39;2009/9/2 17:00&#39;, &#39;2009/9/2 18:00&#39;, &#39;2009/9/2 19:00&#39;, &#39;2009/9/2 20:00&#39;, &#39;2009/9/2 21:00&#39;, &#39;2009/9/2 22:00&#39;, &#39;2009/9/2 23:00&#39;, &#39;2009/9/3 0:00&#39;, &#39;2009/9/3 1:00&#39;, &#39;2009/9/3 2:00&#39;, &#39;2009/9/3 3:00&#39;, &#39;2009/9/3 4:00&#39;, &#39;2009/9/3 5:00&#39;, &#39;2009/9/3 6:00&#39;, &#39;2009/9/3 7:00&#39;, &#39;2009/9/3 8:00&#39;, &#39;2009/9/3 9:00&#39;, &#39;2009/9/3 10:00&#39;, &#39;2009/9/3 11:00&#39;, &#39;2009/9/3 12:00&#39;, &#39;2009/9/3 13:00&#39;, &#39;2009/9/3 14:00&#39;, &#39;2009/9/3 15:00&#39;, &#39;2009/9/3 16:00&#39;, &#39;2009/9/3 17:00&#39;, &#39;2009/9/3 18:00&#39;, &#39;2009/9/3 19:00&#39;, &#39;2009/9/3 20:00&#39;, &#39;2009/9/3 21:00&#39;, &#39;2009/9/3 22:00&#39;, &#39;2009/9/3 23:00&#39;, &#39;2009/9/4 0:00&#39;, &#39;2009/9/4 1:00&#39;, &#39;2009/9/4 2:00&#39;, &#39;2009/9/4 3:00&#39;, &#39;2009/9/4 4:00&#39;, &#39;2009/9/4 5:00&#39;, &#39;2009/9/4 6:00&#39;, &#39;2009/9/4 7:00&#39;, &#39;2009/9/4 8:00&#39;, &#39;2009/9/4 9:00&#39;, &#39;2009/9/4 10:00&#39;, &#39;2009/9/4 11:00&#39;, &#39;2009/9/4 12:00&#39;, &#39;2009/9/4 13:00&#39;, &#39;2009/9/4 14:00&#39;, &#39;2009/9/4 15:00&#39;, &#39;2009/9/4 16:00&#39;, &#39;2009/9/4 17:00&#39;, &#39;2009/9/4 18:00&#39;, &#39;2009/9/4 19:00&#39;, &#39;2009/9/4 20:00&#39;, &#39;2009/9/4 21:00&#39;, &#39;2009/9/4 22:00&#39;, &#39;2009/9/4 23:00&#39;, &#39;2009/9/5 0:00&#39;, &#39;2009/9/5 1:00&#39;, &#39;2009/9/5 2:00&#39;, &#39;2009/9/5 3:00&#39;, &#39;2009/9/5 4:00&#39;, &#39;2009/9/5 5:00&#39;, &#39;2009/9/5 6:00&#39;, &#39;2009/9/5 7:00&#39;, &#39;2009/9/5 8:00&#39;, &#39;2009/9/5 9:00&#39;, &#39;2009/9/5 10:00&#39;, &#39;2009/9/5 11:00&#39;, &#39;2009/9/5 12:00&#39;, &#39;2009/9/5 13:00&#39;, &#39;2009/9/5 14:00&#39;, &#39;2009/9/5 15:00&#39;, &#39;2009/9/5 16:00&#39;, &#39;2009/9/5 17:00&#39;, &#39;2009/9/5 18:00&#39;, &#39;2009/9/5 19:00&#39;, &#39;2009/9/5 20:00&#39;, &#39;2009/9/5 21:00&#39;, &#39;2009/9/5 22:00&#39;, &#39;2009/9/5 23:00&#39;, &#39;2009/9/6 0:00&#39;, &#39;2009/9/6 1:00&#39;, &#39;2009/9/6 2:00&#39;, &#39;2009/9/6 3:00&#39;, &#39;2009/9/6 4:00&#39;, &#39;2009/9/6 5:00&#39;, &#39;2009/9/6 6:00&#39;, &#39;2009/9/6 7:00&#39;, &#39;2009/9/6 8:00&#39;, &#39;2009/9/6 9:00&#39;, &#39;2009/9/6 10:00&#39;, &#39;2009/9/6 11:00&#39;, &#39;2009/9/6 12:00&#39;, &#39;2009/9/6 13:00&#39;, &#39;2009/9/6 14:00&#39;, &#39;2009/9/6 15:00&#39;, &#39;2009/9/6 16:00&#39;, &#39;2009/9/6 17:00&#39;, &#39;2009/9/6 18:00&#39;, &#39;2009/9/6 19:00&#39;, &#39;2009/9/6 20:00&#39;, &#39;2009/9/6 21:00&#39;, &#39;2009/9/6 22:00&#39;, &#39;2009/9/6 23:00&#39;, &#39;2009/9/7 0:00&#39;, &#39;2009/9/7 1:00&#39;, &#39;2009/9/7 2:00&#39;, &#39;2009/9/7 3:00&#39;, &#39;2009/9/7 4:00&#39;, &#39;2009/9/7 5:00&#39;, &#39;2009/9/7 6:00&#39;, &#39;2009/9/7 7:00&#39;, &#39;2009/9/7 8:00&#39;, &#39;2009/9/7 9:00&#39;, &#39;2009/9/7 10:00&#39;, &#39;2009/9/7 11:00&#39;, &#39;2009/9/7 12:00&#39;, &#39;2009/9/7 13:00&#39;, &#39;2009/9/7 14:00&#39;, &#39;2009/9/7 15:00&#39;, &#39;2009/9/7 16:00&#39;, &#39;2009/9/7 17:00&#39;, &#39;2009/9/7 18:00&#39;, &#39;2009/9/7 19:00&#39;, &#39;2009/9/7 20:00&#39;, &#39;2009/9/7 21:00&#39;, &#39;2009/9/7 22:00&#39;, &#39;2009/9/7 23:00&#39;, &#39;2009/9/8 0:00&#39;, &#39;2009/9/8 1:00&#39;, &#39;2009/9/8 2:00&#39;, &#39;2009/9/8 3:00&#39;, &#39;2009/9/8 4:00&#39;, &#39;2009/9/8 5:00&#39;, &#39;2009/9/8 6:00&#39;, &#39;2009/9/8 7:00&#39;, &#39;2009/9/8 8:00&#39;, &#39;2009/9/8 9:00&#39;, &#39;2009/9/8 10:00&#39;, &#39;2009/9/8 11:00&#39;, &#39;2009/9/8 12:00&#39;, &#39;2009/9/8 13:00&#39;, &#39;2009/9/8 14:00&#39;, &#39;2009/9/8 15:00&#39;, &#39;2009/9/8 16:00&#39;, &#39;2009/9/8 17:00&#39;, &#39;2009/9/8 18:00&#39;, &#39;2009/9/8 19:00&#39;, &#39;2009/9/8 20:00&#39;, &#39;2009/9/8 21:00&#39;, &#39;2009/9/8 22:00&#39;, &#39;2009/9/8 23:00&#39;, &#39;2009/9/9 0:00&#39;, &#39;2009/9/9 1:00&#39;, &#39;2009/9/9 2:00&#39;, &#39;2009/9/9 3:00&#39;, &#39;2009/9/9 4:00&#39;, &#39;2009/9/9 5:00&#39;, &#39;2009/9/9 6:00&#39;, &#39;2009/9/9 7:00&#39;, &#39;2009/9/9 8:00&#39;, &#39;2009/9/9 9:00&#39;, &#39;2009/9/9 10:00&#39;, &#39;2009/9/9 11:00&#39;, &#39;2009/9/9 12:00&#39;, &#39;2009/9/9 13:00&#39;, &#39;2009/9/9 14:00&#39;, &#39;2009/9/9 15:00&#39;, &#39;2009/9/9 16:00&#39;, &#39;2009/9/9 17:00&#39;, &#39;2009/9/9 18:00&#39;, &#39;2009/9/9 19:00&#39;, &#39;2009/9/9 20:00&#39;, &#39;2009/9/9 21:00&#39;, &#39;2009/9/9 22:00&#39;, &#39;2009/9/9 23:00&#39;, &#39;2009/9/10 0:00&#39;, &#39;2009/9/10 1:00&#39;, &#39;2009/9/10 2:00&#39;, &#39;2009/9/10 3:00&#39;, &#39;2009/9/10 4:00&#39;, &#39;2009/9/10 5:00&#39;, &#39;2009/9/10 6:00&#39;, &#39;2009/9/10 7:00&#39;, &#39;2009/9/10 8:00&#39;, &#39;2009/9/10 9:00&#39;, &#39;2009/9/10 10:00&#39;, &#39;2009/9/10 11:00&#39;, &#39;2009/9/10 12:00&#39;, &#39;2009/9/10 13:00&#39;, &#39;2009/9/10 14:00&#39;, &#39;2009/9/10 15:00&#39;, &#39;2009/9/10 16:00&#39;, &#39;2009/9/10 17:00&#39;, &#39;2009/9/10 18:00&#39;, &#39;2009/9/10 19:00&#39;, &#39;2009/9/10 20:00&#39;, &#39;2009/9/10 21:00&#39;, &#39;2009/9/10 22:00&#39;, &#39;2009/9/10 23:00&#39;, &#39;2009/9/11 0:00&#39;, &#39;2009/9/11 1:00&#39;, &#39;2009/9/11 2:00&#39;, &#39;2009/9/11 3:00&#39;, &#39;2009/9/11 4:00&#39;, &#39;2009/9/11 5:00&#39;, &#39;2009/9/11 6:00&#39;, &#39;2009/9/11 7:00&#39;, &#39;2009/9/11 8:00&#39;, &#39;2009/9/11 9:00&#39;, &#39;2009/9/11 10:00&#39;, &#39;2009/9/11 11:00&#39;, &#39;2009/9/11 12:00&#39;, &#39;2009/9/11 13:00&#39;, &#39;2009/9/11 14:00&#39;, &#39;2009/9/11 15:00&#39;, &#39;2009/9/11 16:00&#39;, &#39;2009/9/11 17:00&#39;, &#39;2009/9/11 18:00&#39;, &#39;2009/9/11 19:00&#39;, &#39;2009/9/11 20:00&#39;, &#39;2009/9/11 21:00&#39;, &#39;2009/9/11 22:00&#39;, &#39;2009/9/11 23:00&#39;, &#39;2009/9/12 0:00&#39;, &#39;2009/9/12 1:00&#39;, &#39;2009/9/12 2:00&#39;, &#39;2009/9/12 3:00&#39;, &#39;2009/9/12 4:00&#39;, &#39;2009/9/12 5:00&#39;, &#39;2009/9/12 6:00&#39;, &#39;2009/9/12 7:00&#39;, &#39;2009/9/12 8:00&#39;, &#39;2009/9/12 9:00&#39;, &#39;2009/9/12 10:00&#39;, &#39;2009/9/12 11:00&#39;, &#39;2009/9/12 12:00&#39;, &#39;2009/9/12 13:00&#39;, &#39;2009/9/12 14:00&#39;, &#39;2009/9/12 15:00&#39;, &#39;2009/9/12 16:00&#39;, &#39;2009/9/12 17:00&#39;, &#39;2009/9/12 18:00&#39;, &#39;2009/9/12 19:00&#39;, &#39;2009/9/12 20:00&#39;, &#39;2009/9/12 21:00&#39;, &#39;2009/9/12 22:00&#39;, &#39;2009/9/12 23:00&#39;, &#39;2009/9/13 0:00&#39;, &#39;2009/9/13 1:00&#39;, &#39;2009/9/13 2:00&#39;, &#39;2009/9/13 3:00&#39;, &#39;2009/9/13 4:00&#39;, &#39;2009/9/13 5:00&#39;, &#39;2009/9/13 6:00&#39;, &#39;2009/9/13 7:00&#39;, &#39;2009/9/13 8:00&#39;, &#39;2009/9/13 9:00&#39;, &#39;2009/9/13 10:00&#39;, &#39;2009/9/13 11:00&#39;, &#39;2009/9/13 12:00&#39;, &#39;2009/9/13 13:00&#39;, &#39;2009/9/13 14:00&#39;, &#39;2009/9/13 15:00&#39;, &#39;2009/9/13 16:00&#39;, &#39;2009/9/13 17:00&#39;, &#39;2009/9/13 18:00&#39;, &#39;2009/9/13 19:00&#39;, &#39;2009/9/13 20:00&#39;, &#39;2009/9/13 21:00&#39;, &#39;2009/9/13 22:00&#39;, &#39;2009/9/13 23:00&#39;, &#39;2009/9/14 0:00&#39;, &#39;2009/9/14 1:00&#39;, &#39;2009/9/14 2:00&#39;, &#39;2009/9/14 3:00&#39;, &#39;2009/9/14 4:00&#39;, &#39;2009/9/14 5:00&#39;, &#39;2009/9/14 6:00&#39;, &#39;2009/9/14 7:00&#39;, &#39;2009/9/14 8:00&#39;, &#39;2009/9/14 9:00&#39;, &#39;2009/9/14 10:00&#39;, &#39;2009/9/14 11:00&#39;, &#39;2009/9/14 12:00&#39;, &#39;2009/9/14 13:00&#39;, &#39;2009/9/14 14:00&#39;, &#39;2009/9/14 15:00&#39;, &#39;2009/9/14 16:00&#39;, &#39;2009/9/14 17:00&#39;, &#39;2009/9/14 18:00&#39;, &#39;2009/9/14 19:00&#39;, &#39;2009/9/14 20:00&#39;, &#39;2009/9/14 21:00&#39;, &#39;2009/9/14 22:00&#39;, &#39;2009/9/14 23:00&#39;, &#39;2009/9/15 0:00&#39;, &#39;2009/9/15 1:00&#39;, &#39;2009/9/15 2:00&#39;, &#39;2009/9/15 3:00&#39;, &#39;2009/9/15 4:00&#39;, &#39;2009/9/15 5:00&#39;, &#39;2009/9/15 6:00&#39;, &#39;2009/9/15 7:00&#39;, &#39;2009/9/15 8:00&#39;, &#39;2009/9/15 9:00&#39;, &#39;2009/9/15 10:00&#39;, &#39;2009/9/15 11:00&#39;, &#39;2009/9/15 12:00&#39;, &#39;2009/9/15 13:00&#39;, &#39;2009/9/15 14:00&#39;, &#39;2009/9/15 15:00&#39;, &#39;2009/9/15 16:00&#39;, &#39;2009/9/15 17:00&#39;, &#39;2009/9/15 18:00&#39;, &#39;2009/9/15 19:00&#39;, &#39;2009/9/15 20:00&#39;, &#39;2009/9/15 21:00&#39;, &#39;2009/9/15 22:00&#39;, &#39;2009/9/15 23:00&#39;, &#39;2009/9/16 0:00&#39;, &#39;2009/9/16 1:00&#39;, &#39;2009/9/16 2:00&#39;, &#39;2009/9/16 3:00&#39;, &#39;2009/9/16 4:00&#39;, &#39;2009/9/16 5:00&#39;, &#39;2009/9/16 6:00&#39;, &#39;2009/9/16 7:00&#39;, &#39;2009/9/16 8:00&#39;, &#39;2009/9/16 9:00&#39;, &#39;2009/9/16 10:00&#39;, &#39;2009/9/16 11:00&#39;, &#39;2009/9/16 12:00&#39;, &#39;2009/9/16 13:00&#39;, &#39;2009/9/16 14:00&#39;, &#39;2009/9/16 15:00&#39;, &#39;2009/9/16 16:00&#39;, &#39;2009/9/16 17:00&#39;, &#39;2009/9/16 18:00&#39;, &#39;2009/9/16 19:00&#39;, &#39;2009/9/16 20:00&#39;, &#39;2009/9/16 21:00&#39;, &#39;2009/9/16 22:00&#39;, &#39;2009/9/16 23:00&#39;, &#39;2009/9/17 0:00&#39;, &#39;2009/9/17 1:00&#39;, &#39;2009/9/17 2:00&#39;, &#39;2009/9/17 3:00&#39;, &#39;2009/9/17 4:00&#39;, &#39;2009/9/17 5:00&#39;, &#39;2009/9/17 6:00&#39;, &#39;2009/9/17 7:00&#39;, &#39;2009/9/17 8:00&#39;, &#39;2009/9/17 9:00&#39;, &#39;2009/9/17 10:00&#39;, &#39;2009/9/17 11:00&#39;, &#39;2009/9/17 12:00&#39;, &#39;2009/9/17 13:00&#39;, &#39;2009/9/17 14:00&#39;, &#39;2009/9/17 15:00&#39;, &#39;2009/9/17 16:00&#39;, &#39;2009/9/17 17:00&#39;, &#39;2009/9/17 18:00&#39;, &#39;2009/9/17 19:00&#39;, &#39;2009/9/17 20:00&#39;, &#39;2009/9/17 21:00&#39;, &#39;2009/9/17 22:00&#39;, &#39;2009/9/17 23:00&#39;, &#39;2009/9/18 0:00&#39;, &#39;2009/9/18 1:00&#39;, &#39;2009/9/18 2:00&#39;, &#39;2009/9/18 3:00&#39;, &#39;2009/9/18 4:00&#39;, &#39;2009/9/18 5:00&#39;, &#39;2009/9/18 6:00&#39;, &#39;2009/9/18 7:00&#39;, &#39;2009/9/18 8:00&#39;, &#39;2009/9/18 9:00&#39;, &#39;2009/9/18 10:00&#39;, &#39;2009/9/18 11:00&#39;, &#39;2009/9/18 12:00&#39;, &#39;2009/9/18 13:00&#39;, &#39;2009/9/18 14:00&#39;, &#39;2009/9/18 15:00&#39;, &#39;2009/9/18 16:00&#39;, &#39;2009/9/18 17:00&#39;, &#39;2009/9/18 18:00&#39;, &#39;2009/9/18 19:00&#39;, &#39;2009/9/18 20:00&#39;, &#39;2009/9/18 21:00&#39;, &#39;2009/9/18 22:00&#39;, &#39;2009/9/18 23:00&#39;, &#39;2009/9/19 0:00&#39;, &#39;2009/9/19 1:00&#39;, &#39;2009/9/19 2:00&#39;, &#39;2009/9/19 3:00&#39;, &#39;2009/9/19 4:00&#39;, &#39;2009/9/19 5:00&#39;, &#39;2009/9/19 6:00&#39;, &#39;2009/9/19 7:00&#39;, &#39;2009/9/19 8:00&#39;, &#39;2009/9/19 9:00&#39;, &#39;2009/9/19 10:00&#39;, &#39;2009/9/19 11:00&#39;, &#39;2009/9/19 12:00&#39;, &#39;2009/9/19 13:00&#39;, &#39;2009/9/19 14:00&#39;, &#39;2009/9/19 15:00&#39;, &#39;2009/9/19 16:00&#39;, &#39;2009/9/19 17:00&#39;, &#39;2009/9/19 18:00&#39;, &#39;2009/9/19 19:00&#39;, &#39;2009/9/19 20:00&#39;, &#39;2009/9/19 21:00&#39;, &#39;2009/9/19 22:00&#39;, &#39;2009/9/19 23:00&#39;, &#39;2009/9/20 0:00&#39;, &#39;2009/9/20 1:00&#39;, &#39;2009/9/20 2:00&#39;, &#39;2009/9/20 3:00&#39;, &#39;2009/9/20 4:00&#39;, &#39;2009/9/20 5:00&#39;, &#39;2009/9/20 6:00&#39;, &#39;2009/9/20 7:00&#39;, &#39;2009/9/20 8:00&#39;, &#39;2009/9/20 9:00&#39;, &#39;2009/9/20 10:00&#39;, &#39;2009/9/20 11:00&#39;, &#39;2009/9/20 12:00&#39;, &#39;2009/9/20 13:00&#39;, &#39;2009/9/20 14:00&#39;, &#39;2009/9/20 15:00&#39;, &#39;2009/9/20 16:00&#39;, &#39;2009/9/20 17:00&#39;, &#39;2009/9/20 18:00&#39;, &#39;2009/9/20 19:00&#39;, &#39;2009/9/20 20:00&#39;, &#39;2009/9/20 21:00&#39;, &#39;2009/9/20 22:00&#39;, &#39;2009/9/20 23:00&#39;, &#39;2009/9/21 0:00&#39;, &#39;2009/9/21 1:00&#39;, &#39;2009/9/21 2:00&#39;, &#39;2009/9/21 3:00&#39;, &#39;2009/9/21 4:00&#39;, &#39;2009/9/21 5:00&#39;, &#39;2009/9/21 6:00&#39;, &#39;2009/9/21 7:00&#39;, &#39;2009/9/21 8:00&#39;, &#39;2009/9/21 9:00&#39;, &#39;2009/9/21 10:00&#39;, &#39;2009/9/21 11:00&#39;, &#39;2009/9/21 12:00&#39;, &#39;2009/9/21 13:00&#39;, &#39;2009/9/21 14:00&#39;, &#39;2009/9/21 15:00&#39;, &#39;2009/9/21 16:00&#39;, &#39;2009/9/21 17:00&#39;, &#39;2009/9/21 18:00&#39;, &#39;2009/9/21 19:00&#39;, &#39;2009/9/21 20:00&#39;, &#39;2009/9/21 21:00&#39;, &#39;2009/9/21 22:00&#39;, &#39;2009/9/21 23:00&#39;, &#39;2009/9/22 0:00&#39;, &#39;2009/9/22 1:00&#39;, &#39;2009/9/22 2:00&#39;, &#39;2009/9/22 3:00&#39;, &#39;2009/9/22 4:00&#39;, &#39;2009/9/22 5:00&#39;, &#39;2009/9/22 6:00&#39;, &#39;2009/9/22 7:00&#39;, &#39;2009/9/22 8:00&#39;, &#39;2009/9/22 9:00&#39;, &#39;2009/9/22 10:00&#39;, &#39;2009/9/22 11:00&#39;, &#39;2009/9/22 12:00&#39;, &#39;2009/9/22 13:00&#39;, &#39;2009/9/22 14:00&#39;, &#39;2009/9/22 15:00&#39;, &#39;2009/9/22 16:00&#39;, &#39;2009/9/22 17:00&#39;, &#39;2009/9/22 18:00&#39;, &#39;2009/9/22 19:00&#39;, &#39;2009/9/22 20:00&#39;, &#39;2009/9/22 21:00&#39;, &#39;2009/9/22 22:00&#39;, &#39;2009/9/22 23:00&#39;, &#39;2009/9/23 0:00&#39;, &#39;2009/9/23 1:00&#39;, &#39;2009/9/23 2:00&#39;, &#39;2009/9/23 3:00&#39;, &#39;2009/9/23 4:00&#39;, &#39;2009/9/23 5:00&#39;, &#39;2009/9/23 6:00&#39;, &#39;2009/9/23 7:00&#39;, &#39;2009/9/23 8:00&#39;, &#39;2009/9/23 9:00&#39;, &#39;2009/9/23 10:00&#39;, &#39;2009/9/23 11:00&#39;, &#39;2009/9/23 12:00&#39;, &#39;2009/9/23 13:00&#39;, &#39;2009/9/23 14:00&#39;, &#39;2009/9/23 15:00&#39;, &#39;2009/9/23 16:00&#39;, &#39;2009/9/23 17:00&#39;, &#39;2009/9/23 18:00&#39;, &#39;2009/9/23 19:00&#39;, &#39;2009/9/23 20:00&#39;, &#39;2009/9/23 21:00&#39;, &#39;2009/9/23 22:00&#39;, &#39;2009/9/23 23:00&#39;, &#39;2009/9/24 0:00&#39;, &#39;2009/9/24 1:00&#39;, &#39;2009/9/24 2:00&#39;, &#39;2009/9/24 3:00&#39;, &#39;2009/9/24 4:00&#39;, &#39;2009/9/24 5:00&#39;, &#39;2009/9/24 6:00&#39;, &#39;2009/9/24 7:00&#39;, &#39;2009/9/24 8:00&#39;, &#39;2009/9/24 9:00&#39;, &#39;2009/9/24 10:00&#39;, &#39;2009/9/24 11:00&#39;, &#39;2009/9/24 12:00&#39;, &#39;2009/9/24 13:00&#39;, &#39;2009/9/24 14:00&#39;, &#39;2009/9/24 15:00&#39;, &#39;2009/9/24 16:00&#39;, &#39;2009/9/24 17:00&#39;, &#39;2009/9/24 18:00&#39;, &#39;2009/9/24 19:00&#39;, &#39;2009/9/24 20:00&#39;, &#39;2009/9/24 21:00&#39;, &#39;2009/9/24 22:00&#39;, &#39;2009/9/24 23:00&#39;, &#39;2009/9/25 0:00&#39;, &#39;2009/9/25 1:00&#39;, &#39;2009/9/25 2:00&#39;, &#39;2009/9/25 3:00&#39;, &#39;2009/9/25 4:00&#39;, &#39;2009/9/25 5:00&#39;, &#39;2009/9/25 6:00&#39;, &#39;2009/9/25 7:00&#39;, &#39;2009/9/25 8:00&#39;, &#39;2009/9/25 9:00&#39;, &#39;2009/9/25 10:00&#39;, &#39;2009/9/25 11:00&#39;, &#39;2009/9/25 12:00&#39;, &#39;2009/9/25 13:00&#39;, &#39;2009/9/25 14:00&#39;, &#39;2009/9/25 15:00&#39;, &#39;2009/9/25 16:00&#39;, &#39;2009/9/25 17:00&#39;, &#39;2009/9/25 18:00&#39;, &#39;2009/9/25 19:00&#39;, &#39;2009/9/25 20:00&#39;, &#39;2009/9/25 21:00&#39;, &#39;2009/9/25 22:00&#39;, &#39;2009/9/25 23:00&#39;, &#39;2009/9/26 0:00&#39;, &#39;2009/9/26 1:00&#39;, &#39;2009/9/26 2:00&#39;, &#39;2009/9/26 3:00&#39;, &#39;2009/9/26 4:00&#39;, &#39;2009/9/26 5:00&#39;, &#39;2009/9/26 6:00&#39;, &#39;2009/9/26 7:00&#39;, &#39;2009/9/26 8:00&#39;, &#39;2009/9/26 9:00&#39;, &#39;2009/9/26 10:00&#39;, &#39;2009/9/26 11:00&#39;, &#39;2009/9/26 12:00&#39;, &#39;2009/9/26 13:00&#39;, &#39;2009/9/26 14:00&#39;, &#39;2009/9/26 15:00&#39;, &#39;2009/9/26 16:00&#39;, &#39;2009/9/26 17:00&#39;, &#39;2009/9/26 18:00&#39;, &#39;2009/9/26 19:00&#39;, &#39;2009/9/26 20:00&#39;, &#39;2009/9/26 21:00&#39;, &#39;2009/9/26 22:00&#39;, &#39;2009/9/26 23:00&#39;, &#39;2009/9/27 0:00&#39;, &#39;2009/9/27 1:00&#39;, &#39;2009/9/27 2:00&#39;, &#39;2009/9/27 3:00&#39;, &#39;2009/9/27 4:00&#39;, &#39;2009/9/27 5:00&#39;, &#39;2009/9/27 6:00&#39;, &#39;2009/9/27 7:00&#39;, &#39;2009/9/27 8:00&#39;, &#39;2009/9/27 9:00&#39;, &#39;2009/9/27 10:00&#39;, &#39;2009/9/27 11:00&#39;, &#39;2009/9/27 12:00&#39;, &#39;2009/9/27 13:00&#39;, &#39;2009/9/27 14:00&#39;, &#39;2009/9/27 15:00&#39;, &#39;2009/9/27 16:00&#39;, &#39;2009/9/27 17:00&#39;, &#39;2009/9/27 18:00&#39;, &#39;2009/9/27 19:00&#39;, &#39;2009/9/27 20:00&#39;, &#39;2009/9/27 21:00&#39;, &#39;2009/9/27 22:00&#39;, &#39;2009/9/27 23:00&#39;, &#39;2009/9/28 0:00&#39;, &#39;2009/9/28 1:00&#39;, &#39;2009/9/28 2:00&#39;, &#39;2009/9/28 3:00&#39;, &#39;2009/9/28 4:00&#39;, &#39;2009/9/28 5:00&#39;, &#39;2009/9/28 6:00&#39;, &#39;2009/9/28 7:00&#39;, &#39;2009/9/28 8:00&#39;, &#39;2009/9/28 9:00&#39;, &#39;2009/9/28 10:00&#39;, &#39;2009/9/28 11:00&#39;, &#39;2009/9/28 12:00&#39;, &#39;2009/9/28 13:00&#39;, &#39;2009/9/28 14:00&#39;, &#39;2009/9/28 15:00&#39;, &#39;2009/9/28 16:00&#39;, &#39;2009/9/28 17:00&#39;, &#39;2009/9/28 18:00&#39;, &#39;2009/9/28 19:00&#39;, &#39;2009/9/28 20:00&#39;, &#39;2009/9/28 21:00&#39;, &#39;2009/9/28 22:00&#39;, &#39;2009/9/28 23:00&#39;, &#39;2009/9/29 0:00&#39;, &#39;2009/9/29 1:00&#39;, &#39;2009/9/29 2:00&#39;, &#39;2009/9/29 3:00&#39;, &#39;2009/9/29 4:00&#39;, &#39;2009/9/29 5:00&#39;, &#39;2009/9/29 6:00&#39;, &#39;2009/9/29 7:00&#39;, &#39;2009/9/29 8:00&#39;, &#39;2009/9/29 9:00&#39;, &#39;2009/9/29 10:00&#39;, &#39;2009/9/29 11:00&#39;, &#39;2009/9/29 12:00&#39;, &#39;2009/9/29 13:00&#39;, &#39;2009/9/29 14:00&#39;, &#39;2009/9/29 15:00&#39;, &#39;2009/9/29 16:00&#39;, &#39;2009/9/29 17:00&#39;, &#39;2009/9/29 18:00&#39;, &#39;2009/9/29 19:00&#39;, &#39;2009/9/29 20:00&#39;, &#39;2009/9/29 21:00&#39;, &#39;2009/9/29 22:00&#39;, &#39;2009/9/29 23:00&#39;, &#39;2009/9/30 0:00&#39;, &#39;2009/9/30 1:00&#39;, &#39;2009/9/30 2:00&#39;, &#39;2009/9/30 3:00&#39;, &#39;2009/9/30 4:00&#39;, &#39;2009/9/30 5:00&#39;, &#39;2009/9/30 6:00&#39;, &#39;2009/9/30 7:00&#39;, &#39;2009/9/30 8:00&#39;, &#39;2009/9/30 9:00&#39;, &#39;2009/9/30 10:00&#39;, &#39;2009/9/30 11:00&#39;, &#39;2009/9/30 12:00&#39;, &#39;2009/9/30 13:00&#39;, &#39;2009/9/30 14:00&#39;, &#39;2009/9/30 15:00&#39;, &#39;2009/9/30 16:00&#39;, &#39;2009/9/30 17:00&#39;, &#39;2009/9/30 18:00&#39;, &#39;2009/9/30 19:00&#39;, &#39;2009/9/30 20:00&#39;, &#39;2009/9/30 21:00&#39;, &#39;2009/9/30 22:00&#39;, &#39;2009/9/30 23:00&#39;,
                &#39;2009/10/1 0:00&#39;, &#39;2009/10/1 1:00&#39;, &#39;2009/10/1 2:00&#39;, &#39;2009/10/1 3:00&#39;, &#39;2009/10/1 4:00&#39;, &#39;2009/10/1 5:00&#39;, &#39;2009/10/1 6:00&#39;, &#39;2009/10/1 7:00&#39;, &#39;2009/10/1 8:00&#39;, &#39;2009/10/1 9:00&#39;, &#39;2009/10/1 10:00&#39;, &#39;2009/10/1 11:00&#39;, &#39;2009/10/1 12:00&#39;, &#39;2009/10/1 13:00&#39;, &#39;2009/10/1 14:00&#39;, &#39;2009/10/1 15:00&#39;, &#39;2009/10/1 16:00&#39;, &#39;2009/10/1 17:00&#39;, &#39;2009/10/1 18:00&#39;, &#39;2009/10/1 19:00&#39;, &#39;2009/10/1 20:00&#39;, &#39;2009/10/1 21:00&#39;, &#39;2009/10/1 22:00&#39;, &#39;2009/10/1 23:00&#39;, &#39;2009/10/2 0:00&#39;, &#39;2009/10/2 1:00&#39;, &#39;2009/10/2 2:00&#39;, &#39;2009/10/2 3:00&#39;, &#39;2009/10/2 4:00&#39;, &#39;2009/10/2 5:00&#39;, &#39;2009/10/2 6:00&#39;, &#39;2009/10/2 7:00&#39;, &#39;2009/10/2 8:00&#39;, &#39;2009/10/2 9:00&#39;, &#39;2009/10/2 10:00&#39;, &#39;2009/10/2 11:00&#39;, &#39;2009/10/2 12:00&#39;, &#39;2009/10/2 13:00&#39;, &#39;2009/10/2 14:00&#39;, &#39;2009/10/2 15:00&#39;, &#39;2009/10/2 16:00&#39;, &#39;2009/10/2 17:00&#39;, &#39;2009/10/2 18:00&#39;, &#39;2009/10/2 19:00&#39;, &#39;2009/10/2 20:00&#39;, &#39;2009/10/2 21:00&#39;, &#39;2009/10/2 22:00&#39;, &#39;2009/10/2 23:00&#39;, &#39;2009/10/3 0:00&#39;, &#39;2009/10/3 1:00&#39;, &#39;2009/10/3 2:00&#39;, &#39;2009/10/3 3:00&#39;, &#39;2009/10/3 4:00&#39;, &#39;2009/10/3 5:00&#39;, &#39;2009/10/3 6:00&#39;, &#39;2009/10/3 7:00&#39;, &#39;2009/10/3 8:00&#39;, &#39;2009/10/3 9:00&#39;, &#39;2009/10/3 10:00&#39;, &#39;2009/10/3 11:00&#39;, &#39;2009/10/3 12:00&#39;, &#39;2009/10/3 13:00&#39;, &#39;2009/10/3 14:00&#39;, &#39;2009/10/3 15:00&#39;, &#39;2009/10/3 16:00&#39;, &#39;2009/10/3 17:00&#39;, &#39;2009/10/3 18:00&#39;, &#39;2009/10/3 19:00&#39;, &#39;2009/10/3 20:00&#39;, &#39;2009/10/3 21:00&#39;, &#39;2009/10/3 22:00&#39;, &#39;2009/10/3 23:00&#39;, &#39;2009/10/4 0:00&#39;, &#39;2009/10/4 1:00&#39;, &#39;2009/10/4 2:00&#39;, &#39;2009/10/4 3:00&#39;, &#39;2009/10/4 4:00&#39;, &#39;2009/10/4 5:00&#39;, &#39;2009/10/4 6:00&#39;, &#39;2009/10/4 7:00&#39;, &#39;2009/10/4 8:00&#39;, &#39;2009/10/4 9:00&#39;, &#39;2009/10/4 10:00&#39;, &#39;2009/10/4 11:00&#39;, &#39;2009/10/4 12:00&#39;, &#39;2009/10/4 13:00&#39;, &#39;2009/10/4 14:00&#39;, &#39;2009/10/4 15:00&#39;, &#39;2009/10/4 16:00&#39;, &#39;2009/10/4 17:00&#39;, &#39;2009/10/4 18:00&#39;, &#39;2009/10/4 19:00&#39;, &#39;2009/10/4 20:00&#39;, &#39;2009/10/4 21:00&#39;, &#39;2009/10/4 22:00&#39;, &#39;2009/10/4 23:00&#39;, &#39;2009/10/5 0:00&#39;, &#39;2009/10/5 1:00&#39;, &#39;2009/10/5 2:00&#39;, &#39;2009/10/5 3:00&#39;, &#39;2009/10/5 4:00&#39;, &#39;2009/10/5 5:00&#39;, &#39;2009/10/5 6:00&#39;, &#39;2009/10/5 7:00&#39;, &#39;2009/10/5 8:00&#39;, &#39;2009/10/5 9:00&#39;, &#39;2009/10/5 10:00&#39;, &#39;2009/10/5 11:00&#39;, &#39;2009/10/5 12:00&#39;, &#39;2009/10/5 13:00&#39;, &#39;2009/10/5 14:00&#39;, &#39;2009/10/5 15:00&#39;, &#39;2009/10/5 16:00&#39;, &#39;2009/10/5 17:00&#39;, &#39;2009/10/5 18:00&#39;, &#39;2009/10/5 19:00&#39;, &#39;2009/10/5 20:00&#39;, &#39;2009/10/5 21:00&#39;, &#39;2009/10/5 22:00&#39;, &#39;2009/10/5 23:00&#39;, &#39;2009/10/6 0:00&#39;, &#39;2009/10/6 1:00&#39;, &#39;2009/10/6 2:00&#39;, &#39;2009/10/6 3:00&#39;, &#39;2009/10/6 4:00&#39;, &#39;2009/10/6 5:00&#39;, &#39;2009/10/6 6:00&#39;, &#39;2009/10/6 7:00&#39;, &#39;2009/10/6 8:00&#39;, &#39;2009/10/6 9:00&#39;, &#39;2009/10/6 10:00&#39;, &#39;2009/10/6 11:00&#39;, &#39;2009/10/6 12:00&#39;, &#39;2009/10/6 13:00&#39;, &#39;2009/10/6 14:00&#39;, &#39;2009/10/6 15:00&#39;, &#39;2009/10/6 16:00&#39;, &#39;2009/10/6 17:00&#39;, &#39;2009/10/6 18:00&#39;, &#39;2009/10/6 19:00&#39;, &#39;2009/10/6 20:00&#39;, &#39;2009/10/6 21:00&#39;, &#39;2009/10/6 22:00&#39;, &#39;2009/10/6 23:00&#39;, &#39;2009/10/7 0:00&#39;, &#39;2009/10/7 1:00&#39;, &#39;2009/10/7 2:00&#39;, &#39;2009/10/7 3:00&#39;, &#39;2009/10/7 4:00&#39;, &#39;2009/10/7 5:00&#39;, &#39;2009/10/7 6:00&#39;, &#39;2009/10/7 7:00&#39;, &#39;2009/10/7 8:00&#39;, &#39;2009/10/7 9:00&#39;, &#39;2009/10/7 10:00&#39;, &#39;2009/10/7 11:00&#39;, &#39;2009/10/7 12:00&#39;, &#39;2009/10/7 13:00&#39;, &#39;2009/10/7 14:00&#39;, &#39;2009/10/7 15:00&#39;, &#39;2009/10/7 16:00&#39;, &#39;2009/10/7 17:00&#39;, &#39;2009/10/7 18:00&#39;, &#39;2009/10/7 19:00&#39;, &#39;2009/10/7 20:00&#39;, &#39;2009/10/7 21:00&#39;, &#39;2009/10/7 22:00&#39;, &#39;2009/10/7 23:00&#39;, &#39;2009/10/8 0:00&#39;, &#39;2009/10/8 1:00&#39;, &#39;2009/10/8 2:00&#39;, &#39;2009/10/8 3:00&#39;, &#39;2009/10/8 4:00&#39;, &#39;2009/10/8 5:00&#39;, &#39;2009/10/8 6:00&#39;, &#39;2009/10/8 7:00&#39;, &#39;2009/10/8 8:00&#39;, &#39;2009/10/8 9:00&#39;, &#39;2009/10/8 10:00&#39;, &#39;2009/10/8 11:00&#39;, &#39;2009/10/8 12:00&#39;, &#39;2009/10/8 13:00&#39;, &#39;2009/10/8 14:00&#39;, &#39;2009/10/8 15:00&#39;, &#39;2009/10/8 16:00&#39;, &#39;2009/10/8 17:00&#39;, &#39;2009/10/8 18:00&#39;, &#39;2009/10/8 19:00&#39;, &#39;2009/10/8 20:00&#39;, &#39;2009/10/8 21:00&#39;, &#39;2009/10/8 22:00&#39;, &#39;2009/10/8 23:00&#39;, &#39;2009/10/9 0:00&#39;, &#39;2009/10/9 1:00&#39;, &#39;2009/10/9 2:00&#39;, &#39;2009/10/9 3:00&#39;, &#39;2009/10/9 4:00&#39;, &#39;2009/10/9 5:00&#39;, &#39;2009/10/9 6:00&#39;, &#39;2009/10/9 7:00&#39;, &#39;2009/10/9 8:00&#39;, &#39;2009/10/9 9:00&#39;, &#39;2009/10/9 10:00&#39;, &#39;2009/10/9 11:00&#39;, &#39;2009/10/9 12:00&#39;, &#39;2009/10/9 13:00&#39;, &#39;2009/10/9 14:00&#39;, &#39;2009/10/9 15:00&#39;, &#39;2009/10/9 16:00&#39;, &#39;2009/10/9 17:00&#39;, &#39;2009/10/9 18:00&#39;, &#39;2009/10/9 19:00&#39;, &#39;2009/10/9 20:00&#39;, &#39;2009/10/9 21:00&#39;, &#39;2009/10/9 22:00&#39;, &#39;2009/10/9 23:00&#39;, &#39;2009/10/10 0:00&#39;, &#39;2009/10/10 1:00&#39;, &#39;2009/10/10 2:00&#39;, &#39;2009/10/10 3:00&#39;, &#39;2009/10/10 4:00&#39;, &#39;2009/10/10 5:00&#39;, &#39;2009/10/10 6:00&#39;, &#39;2009/10/10 7:00&#39;, &#39;2009/10/10 8:00&#39;, &#39;2009/10/10 9:00&#39;, &#39;2009/10/10 10:00&#39;, &#39;2009/10/10 11:00&#39;, &#39;2009/10/10 12:00&#39;, &#39;2009/10/10 13:00&#39;, &#39;2009/10/10 14:00&#39;, &#39;2009/10/10 15:00&#39;, &#39;2009/10/10 16:00&#39;, &#39;2009/10/10 17:00&#39;, &#39;2009/10/10 18:00&#39;, &#39;2009/10/10 19:00&#39;, &#39;2009/10/10 20:00&#39;, &#39;2009/10/10 21:00&#39;, &#39;2009/10/10 22:00&#39;, &#39;2009/10/10 23:00&#39;, &#39;2009/10/11 0:00&#39;, &#39;2009/10/11 1:00&#39;, &#39;2009/10/11 2:00&#39;, &#39;2009/10/11 3:00&#39;, &#39;2009/10/11 4:00&#39;, &#39;2009/10/11 5:00&#39;, &#39;2009/10/11 6:00&#39;, &#39;2009/10/11 7:00&#39;, &#39;2009/10/11 8:00&#39;, &#39;2009/10/11 9:00&#39;, &#39;2009/10/11 10:00&#39;, &#39;2009/10/11 11:00&#39;, &#39;2009/10/11 12:00&#39;, &#39;2009/10/11 13:00&#39;, &#39;2009/10/11 14:00&#39;, &#39;2009/10/11 15:00&#39;, &#39;2009/10/11 16:00&#39;, &#39;2009/10/11 17:00&#39;, &#39;2009/10/11 18:00&#39;, &#39;2009/10/11 19:00&#39;, &#39;2009/10/11 20:00&#39;, &#39;2009/10/11 21:00&#39;, &#39;2009/10/11 22:00&#39;, &#39;2009/10/11 23:00&#39;, &#39;2009/10/12 0:00&#39;, &#39;2009/10/12 1:00&#39;, &#39;2009/10/12 2:00&#39;, &#39;2009/10/12 3:00&#39;, &#39;2009/10/12 4:00&#39;, &#39;2009/10/12 5:00&#39;, &#39;2009/10/12 6:00&#39;, &#39;2009/10/12 7:00&#39;, &#39;2009/10/12 8:00&#39;, &#39;2009/10/12 9:00&#39;, &#39;2009/10/12 10:00&#39;, &#39;2009/10/12 11:00&#39;, &#39;2009/10/12 12:00&#39;, &#39;2009/10/12 13:00&#39;, &#39;2009/10/12 14:00&#39;, &#39;2009/10/12 15:00&#39;, &#39;2009/10/12 16:00&#39;, &#39;2009/10/12 17:00&#39;, &#39;2009/10/12 18:00&#39;, &#39;2009/10/12 19:00&#39;, &#39;2009/10/12 20:00&#39;, &#39;2009/10/12 21:00&#39;, &#39;2009/10/12 22:00&#39;, &#39;2009/10/12 23:00&#39;, &#39;2009/10/13 0:00&#39;, &#39;2009/10/13 1:00&#39;, &#39;2009/10/13 2:00&#39;, &#39;2009/10/13 3:00&#39;, &#39;2009/10/13 4:00&#39;, &#39;2009/10/13 5:00&#39;, &#39;2009/10/13 6:00&#39;, &#39;2009/10/13 7:00&#39;, &#39;2009/10/13 8:00&#39;, &#39;2009/10/13 9:00&#39;, &#39;2009/10/13 10:00&#39;, &#39;2009/10/13 11:00&#39;, &#39;2009/10/13 12:00&#39;, &#39;2009/10/13 13:00&#39;, &#39;2009/10/13 14:00&#39;, &#39;2009/10/13 15:00&#39;, &#39;2009/10/13 16:00&#39;, &#39;2009/10/13 17:00&#39;, &#39;2009/10/13 18:00&#39;, &#39;2009/10/13 19:00&#39;, &#39;2009/10/13 20:00&#39;, &#39;2009/10/13 21:00&#39;, &#39;2009/10/13 22:00&#39;, &#39;2009/10/13 23:00&#39;, &#39;2009/10/14 0:00&#39;, &#39;2009/10/14 1:00&#39;, &#39;2009/10/14 2:00&#39;, &#39;2009/10/14 3:00&#39;, &#39;2009/10/14 4:00&#39;, &#39;2009/10/14 5:00&#39;, &#39;2009/10/14 6:00&#39;, &#39;2009/10/14 7:00&#39;, &#39;2009/10/14 8:00&#39;, &#39;2009/10/14 9:00&#39;, &#39;2009/10/14 10:00&#39;, &#39;2009/10/14 11:00&#39;, &#39;2009/10/14 12:00&#39;, &#39;2009/10/14 13:00&#39;, &#39;2009/10/14 14:00&#39;, &#39;2009/10/14 15:00&#39;, &#39;2009/10/14 16:00&#39;, &#39;2009/10/14 17:00&#39;, &#39;2009/10/14 18:00&#39;, &#39;2009/10/14 19:00&#39;, &#39;2009/10/14 20:00&#39;, &#39;2009/10/14 21:00&#39;, &#39;2009/10/14 22:00&#39;, &#39;2009/10/14 23:00&#39;, &#39;2009/10/15 0:00&#39;, &#39;2009/10/15 1:00&#39;, &#39;2009/10/15 2:00&#39;, &#39;2009/10/15 3:00&#39;, &#39;2009/10/15 4:00&#39;, &#39;2009/10/15 5:00&#39;, &#39;2009/10/15 6:00&#39;, &#39;2009/10/15 7:00&#39;, &#39;2009/10/15 8:00&#39;, &#39;2009/10/15 9:00&#39;, &#39;2009/10/15 10:00&#39;, &#39;2009/10/15 11:00&#39;, &#39;2009/10/15 12:00&#39;, &#39;2009/10/15 13:00&#39;, &#39;2009/10/15 14:00&#39;, &#39;2009/10/15 15:00&#39;, &#39;2009/10/15 16:00&#39;, &#39;2009/10/15 17:00&#39;, &#39;2009/10/15 18:00&#39;, &#39;2009/10/15 19:00&#39;, &#39;2009/10/15 20:00&#39;, &#39;2009/10/15 21:00&#39;, &#39;2009/10/15 22:00&#39;, &#39;2009/10/15 23:00&#39;, &#39;2009/10/16 0:00&#39;, &#39;2009/10/16 1:00&#39;, &#39;2009/10/16 2:00&#39;, &#39;2009/10/16 3:00&#39;, &#39;2009/10/16 4:00&#39;, &#39;2009/10/16 5:00&#39;, &#39;2009/10/16 6:00&#39;, &#39;2009/10/16 7:00&#39;, &#39;2009/10/16 8:00&#39;, &#39;2009/10/16 9:00&#39;, &#39;2009/10/16 10:00&#39;, &#39;2009/10/16 11:00&#39;, &#39;2009/10/16 12:00&#39;, &#39;2009/10/16 13:00&#39;, &#39;2009/10/16 14:00&#39;, &#39;2009/10/16 15:00&#39;, &#39;2009/10/16 16:00&#39;, &#39;2009/10/16 17:00&#39;, &#39;2009/10/16 18:00&#39;, &#39;2009/10/16 19:00&#39;, &#39;2009/10/16 20:00&#39;, &#39;2009/10/16 21:00&#39;, &#39;2009/10/16 22:00&#39;, &#39;2009/10/16 23:00&#39;, &#39;2009/10/17 0:00&#39;, &#39;2009/10/17 1:00&#39;, &#39;2009/10/17 2:00&#39;, &#39;2009/10/17 3:00&#39;, &#39;2009/10/17 4:00&#39;, &#39;2009/10/17 5:00&#39;, &#39;2009/10/17 6:00&#39;, &#39;2009/10/17 7:00&#39;, &#39;2009/10/17 8:00&#39;, &#39;2009/10/17 9:00&#39;, &#39;2009/10/17 10:00&#39;, &#39;2009/10/17 11:00&#39;, &#39;2009/10/17 12:00&#39;, &#39;2009/10/17 13:00&#39;, &#39;2009/10/17 14:00&#39;, &#39;2009/10/17 15:00&#39;, &#39;2009/10/17 16:00&#39;, &#39;2009/10/17 17:00&#39;, &#39;2009/10/17 18:00&#39;, &#39;2009/10/17 19:00&#39;, &#39;2009/10/17 20:00&#39;, &#39;2009/10/17 21:00&#39;, &#39;2009/10/17 22:00&#39;, &#39;2009/10/17 23:00&#39;, &#39;2009/10/18 0:00&#39;, &#39;2009/10/18 1:00&#39;, &#39;2009/10/18 2:00&#39;, &#39;2009/10/18 3:00&#39;, &#39;2009/10/18 4:00&#39;, &#39;2009/10/18 5:00&#39;, &#39;2009/10/18 6:00&#39;, &#39;2009/10/18 7:00&#39;, &#39;2009/10/18 8:00&#39;
            ].map(function (str) {
                return str.replace(&#39; &#39;, &#39;\n&#39;);
            })
        }
    ],
    yAxis: [
        {
            name: &#39;流量(m^3/s)&#39;,
            type: &#39;value&#39;,
            max: 500
        },
        {
            name: &#39;降雨量(mm)&#39;,
            nameLocation: &#39;start&#39;,
            max: 5,
            type: &#39;value&#39;,
            inverse: true
        }
    ],
    series: [
        {
            name: &#39;流量&#39;,
            type: &#39;line&#39;,
            animation: false,
            areaStyle: {},
            lineStyle: {
                width: 1
            },
            markArea: {
                silent: true,
                data: [[{
                    xAxis: &#39;2009/9/12\n7:00&#39;
                }, {
                    xAxis: &#39;2009/9/22\n7:00&#39;
                }]]
            },
            data: [
                0.97,0.96,0.96,0.95,0.95,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.93,0.92,0.91,0.9,0.89,0.88,0.87,0.87,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.87,0.88,0.9,0.93,0.96,0.99,1.03,1.06,1.1,1.14,1.17,1.2,1.23,1.26,1.29,1.33,1.36,1.4,1.43,1.45,1.48,1.49,1.51,1.51,1.5,1.49,1.47,1.44,1.41,1.37,1.34,1.3,1.27,1.24,1.22,1.2,1.19,1.18,1.16,1.15,1.14,1.13,1.12,1.11,1.11,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.1,1.09,1.09,1.08,1.07,1.06,1.05,1.04,1.03,1.03,1.02,1.01,1.01,1,0.99,0.98,0.97,0.96,0.96,0.95,0.95,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.93,0.92,0.91,0.9,0.89,0.88,0.87,0.87,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.85,0.84,0.83,0.82,0.81,0.8,0.8,0.79,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.77,0.75,0.73,0.71,0.68,0.65,0.63,0.61,0.59,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.57,0.57,0.57,0.56,0.55,0.55,0.54,0.54,0.53,0.52,0.52,0.51,0.51,0.5,0.5,0.49,0.48,0.48,0.47,0.47,0.47,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.52,0.67,0.9,1.19,1.52,1.87,2.22,2.55,2.84,3.07,3.22,3.28,3.28,3.28,3.28,3.28,3.28,3.28,3.28,3.28,3.28,3.28,3.28,3.28,3.24,3.13,2.97,2.77,2.54,2.3,2.05,1.82,1.62,1.46,1.35,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.31,1.3,1.26,1.21,1.14,1.06,0.97,0.89,0.81,0.74,0.69,0.65,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.63,0.63,0.62,0.62,0.61,0.6,0.59,0.59,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.59,0.61,0.63,0.65,0.68,0.71,0.73,0.75,0.77,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.77,0.75,0.73,0.71,0.68,0.65,0.63,0.61,0.59,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.59,0.59,0.6,0.61,0.62,0.62,0.63,0.63,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.65,0.66,0.68,0.69,0.71,0.73,0.74,0.76,0.77,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.79,0.81,0.82,0.84,0.86,0.88,0.9,0.92,0.93,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.93,0.92,0.91,0.9,0.89,0.88,0.87,0.87,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.85,0.84,0.82,0.8,0.78,0.76,0.75,0.73,0.72,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.72,0.73,0.74,0.76,0.78,0.79,0.82,0.84,0.86,0.89,0.91,0.94,0.97,1,1.02,1.05,1.08,1.11,1.14,1.17,1.19,1.22,1.25,1.27,1.29,1.31,1.33,1.35,1.36,1.38,1.39,1.39,1.4,1.4,1.4,1.39,1.37,1.35,1.32,1.29,1.26,1.22,1.18,1.14,1.1,1.05,1.01,0.97,0.93,0.89,0.85,0.82,0.78,0.76,0.74,0.72,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.72,0.73,0.74,0.75,0.77,0.78,0.8,0.82,0.84,0.87,0.89,0.92,0.94,0.97,0.99,1.02,1.05,1.08,1.1,1.13,1.16,1.18,1.21,1.23,1.26,1.28,1.3,1.32,1.34,1.35,1.37,1.38,1.39,1.4,1.41,1.41,1.42,1.42,1.43,1.43,1.43,1.44,1.44,1.44,1.44,1.45,1.45,1.45,1.46,1.46,1.46,1.47,1.47,1.48,1.48,1.49,1.5,1.51,1.54,1.62,1.73,1.88,2.05,2.24,2.45,2.67,2.89,3.11,3.31,3.51,3.69,3.86,4.03,4.18,4.33,4.48,4.62,4.76,4.89,5.02,5.16,5.29,5.43,5.57,5.71,5.86,6.02,6.18,6.36,6.54,6.73,6.93,7.15,7.38,7.62,7.88,8.16,8.46,8.77,9.11,9.46,9.84,10.24,10.67,11.12,11.6,12.3,13.66,16,38.43,82.21,146.6,218.7,226,225.23,223.08,219.78,212,199.82,184.6,168,151.65,137.21,126.31,119.94,115.52,112.06,108.92,105.44,101,94.56,86.36,77.67,69.76,63.9,60.38,57.41,54.84,52.57,50.56,48.71,46.97,45.25,43.48,41.6,39.5,37.19,34.81,32.46,30.27,28.36,26.85,25.86,25.5,25.5,25.5,25.5,25.5,25.5,25.5,25.5,25.5,25.5,25.5,25.5,25.5,25.27,24.65,23.7,22.52,21.17,19.75,18.33,16.98,15.8,14.85,14.23,14,14.02,14.08,14.17,14.29,14.44,14.61,14.8,15.01,15.23,15.47,15.71,15.95,16.19,16.43,16.67,16.89,17.1,17.29,17.46,17.61,17.73,17.82,17.88,17.9,17.63,16.88,15.75,14.33,12.71,10.98,9.23,7.56,6.05,4.81,3.92,3.47,3.28,3.1,2.93,2.76,2.61,2.46,2.32,2.19,2.07,1.96,1.85,1.75,1.66,1.58,1.51,1.44,1.39,1.34,1.29,1.26,1.23,1.22,1.2,1.2,1.2,1.2,1.2,1.2,1.21,1.21,1.21,1.21,1.22,1.22,1.22,1.23,1.23,1.23,1.24,1.24,1.25,1.25,1.25,1.26,1.26,1.27,1.27,1.27,1.28,1.28,1.28,1.29,1.29,1.29,1.29,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.3,1.29,1.29,1.29,1.29,1.28,1.28,1.28,1.27,1.27,1.26,1.25,1.25,1.24,1.23,1.23,1.22,1.21,1.2,1.16,1.06,0.95,0.83,0.74,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.68,0.68,0.68,0.68,0.68,0.68,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.65,0.66,0.68,0.69,0.71,0.73,0.74,0.76,0.77,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.8,0.86,0.95,1.08,1.25,1.46,1.7,1.97,2.28,2.63,3.01,3.42,3.87,4.35,4.86,5.4,5.98,6.59,7.92,10.49,14.04,18.31,23.04,27.98,32.87,37.45,41.46,44.64,46.74,47.5,46.86,45.16,42.77,40.04,37.33,35,32.74,30.21,27.7,25.5,23.9,23.2,23.06,22.94,22.84,22.77,22.72,22.7,22.8,23.23,23.95,24.91,26.04,27.3,28.76,30.7,33.39,37.12,42.15,48.77,65.22,252.1,257,237.32,221.19,212,208.67,206.89,205.2,202.15,189.82,172,165.3,160.49,156.8,153.44,149.62,144.6,138.27,131,123.11,114.9,106.69,98.79,91.5,85.13,80,75.53,71.03,66.65,62.54,58.85,55.73,53.31,51.75,51.2,56.53,68.25,80,91.01,102.03,109,112.37,115.29,117.68,119.48,120.61,121,119.45,115.57,110.52,105.47,101.58,100,99.97,99.94,99.92,99.9,99.88,99.86,99.85,99.84,99.83,99.82,99.81,99.81,99.8,99.8,99.8,122.15,163.65,186,182.96,175.15,164.56,153.18,143,136,131.37,126.98,122.81,118.85,115.09,111.52,108.13,104.9,101.83,98.9,96.11,93.44,90.87,88.41,86.04,83.74,81.51,79.33,77.2,75.1,73.02,70.95,68.88,66.8,64.87,63.14,61.4,59.53,57.67,56,54.6,53.36,52.2,51.05,49.85,48.5,46.87,44.92,42.74,40.42,38.04,35.69,33.46,31.44,29.72,28.38,27.51,27.2,27.2,27.2,27.2,27.2,27.2,27.2,27.2,27.2,27.2,27.2,27.2,27.2,27.14,26.97,26.7,26.35,25.95,25.49,25.02,24.53,24.04,23.58,23.16,22.8,22.46,22.11,21.75,21.39,21.03,20.69,20.36,20.05,19.78,19.54,19.35,19.2,19.09,19,18.92,18.85,18.79,18.74,18.68,18.62,18.56,18.49,18.4,18.3,18.17,18.02,17.83,17.63,17.41,17.18,16.93,16.68,16.43,16.18,15.93,15.7,15.47,15.22,14.97,14.71,14.45,14.18,13.93,13.68,13.44,13.21,13,12.8,12.62,12.46,12.31,12.16,12.03,11.89,11.76,11.62,11.48,11.33,11.17,11,10.81,10.59,10.36,10.12,9.86,9.61,9.36,9.12,8.89,8.68,8.5,8.35,8.21,8.08,7.94,7.81,7.68,7.56,7.46,7.36,7.29,7.23,7.19,7.18,7.51,8.42,9.81,11.58,13.63,15.86,18.16,20.44,22.58,24.49,26.06,27.2,28.08,28.95,29.81,30.65,31.48,32.28,33.07,33.82,34.55,35.25,35.92,36.56,37.15,37.71,38.23,38.7,39.13,39.5,39.83,40.1,40.31,40.47,40.57,40.6,40.49,40.16,39.64,38.94,38.09,37.1,36,34.79,33.51,32.17,30.79,29.39,27.99,26.6,25.25,23.96,22.75,21.63,20.63,19.76,19.04,18.49,18.14,18,17.97,17.95,17.94,17.92,17.91,17.9,17.89,17.88,17.87,17.85,17.83,17.8,17.7,17.46,17.13,16.7,16.21,15.68,15.13,14.57,14.04,13.56,13.14,12.8,12.52,12.27,12.02,11.79,11.57,11.37,11.16,10.97,10.78,10.59,10.39,10.2,10.01,9.81,9.63,9.44,9.26,9.08,8.9,8.73,8.56,8.39,8.22,8.06,7.9,7.73,7.57,7.41,7.25,7.09,6.94,6.79,6.65,6.52,6.4,6.28,6.17,6.08,5.98,5.9,5.81,5.73,5.65,5.57,5.49,5.41,5.32,5.23,5.14,5.04,4.94,4.84,4.74,4.63,4.53,4.43,4.33,4.23,4.13,4.03,3.93,3.81,3.69,3.57,3.45,3.33,3.22,3.12,3.04,2.98,2.93,2.92,2.92,2.92,2.92,2.92,2.92,2.92,2.92,2.92,2.92,2.92,2.92,2.92,2.9,2.86,2.8,2.71,2.62,2.52,2.42,2.33,2.24,2.18,2.14,2.12,2.12,2.12,2.12,2.12,2.12,2.12,2.12,2.12,2.12,2.12,2.12,2.12,2.1,2.06,2,1.91,1.82,1.71,1.61,1.5,1.4,1.32,1.25,1.2,1.16,1.13,1.1,1.06,1.03,1,0.97,0.93,0.9,0.87,0.85,0.82,0.79,0.77,0.74,0.72,0.69,0.67,0.65,0.63,0.61,0.59,0.58,0.56,0.54,0.53,0.52,0.51,0.5,0.49,0.48,0.48,0.47,0.47,0.46,0.46,0.47,0.48,0.5,0.53,0.56,0.59,0.62,0.64,0.67,0.69,0.7,0.71,0.71,0.71,0.71,0.7,0.7,0.7,0.69,0.69,0.69,0.68,0.68,0.67,0.67,0.67,0.66,0.66,0.65,0.65,0.65,0.65,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.65,0.65,0.65,0.66,0.66,0.67,0.68,0.69,0.69,0.7,0.71,0.73,0.74,0.75,0.76,0.78,0.8,0.81,0.83,0.85,0.87,0.89,0.92,0.94,0.97,0.99,1.02,1.05,1.08,1.11,1.15,1.18,1.32,1.66,2.21,2.97,3.94,5.11,6.5,8.1,9.9,11.92,14.15,16.6,22.3,22.8,24.48,30.38,35.74,42.4,57.14,94.04,112.9,123.4,130.4,130,119.4,120.7,116.8,118.1,119.4,124.8,143.5,204,294,319.2,328.4,365,350.8,347.6,347.6,325,331.6,319.2,308,308,308,308,296.8,300,281,278.4,270.6,271,253.6,233.5,219.2,207.8,205.9,204,189.6,178.8,173.4,160,154.4,146,145,140.5,130.4,126.2,116.8,112.9,106.5,101.6,98.51,82.67,67.3,80.05,76.12,72.3,71.02,69.78,67.3,67.3,68.54,57.6,71.02,66.06,59.12,57.14,55.16,55.16,52.19,52.19,51.2,48.56,44.16,43,45.92,49.44,44.16,36.48,35.74,35,32.36,37.22,32.36,32.36,32.36,33.68,32.36,31.7,35.74,29.72,32.36,30.38,29.72,28.4,28.4,28.4,27.28,25.6,25.04,23.92,22.3,21.8,21.8,21.8,22.8,21.8,25.6,22.8,22.8,17.8,16.04,16.04,16.04,16.04,16.04,16.04,16.04,16.04,16.04,16.04,15.02,14,14.03,14.11,14.25,14.45,14.72,15.06,15.46,15.95,16.51,17.15,17.87,18.69,19.59,20.59,21.69,22.88,24.18,25.59,27.1,28.73,30.48,32.34,34.33,36.44,38.69,41.06,43.57,46.22,49.01,51.95,55.04,58.27,61.66,65.21,68.92,72.8,88.09,104.9,105.7,110.3,111.6,110.3,106.5,105.7,103.3,100,97.02,98.8,91.07,83.98,88.09,81.36,78.74,77.43,77.43,73.5,74.81,72.63,68.58,66.4,68.54,69.78,67.3,64.82,61.1,59.12,56.15,53.18,50.32,49.44,44.16,36.5,42.4,37.96,37.22,33.68,36.48,35.74,35,35,37.22,37.22,39.44,32.6,34.54,36.48,35.74,34.34,33.68,33.02,31.04,29.72,29.72,29.72,26.16,25.6,29.72,18.3,22.3,21.3,21.8,21.8,20.3,20.8,25.04,25.04,25.6,25.6,25.04,25.6,25.04,25.6,23.92,25.04,21.3,21.8,22.3,21.8,20.8,16.1,20.3,18.3,13.22,19.3,19.3,18.3,14.4,13.86,13.36,12.9,12.48,12.1,11.75,11.43,11.15,10.9,10.67,10.48,10.31,10.16,10.04,9.93,9.85,9.78,9.73,9.69,9.67,9.65,9.65,12.08,8.67,11.7,11.38,10.65,9.84,9.32,9.07,8.85,8.66,8.49,8.35,8.22,8.1,7.98,7.86,7.74,7.61,7.47,7.31,7.14,6.96,6.78,6.58,6.39,6.19,5.99,5.78,5.58,5.39,5.2,5.01,4.83,4.67,4.51,4.37,4.24,4.12,4.02,3.95,3.89,3.85,3.84,4.41,5.77,7.39,8.75,9.32,9.18,9,8.94,8.88,8.83,8.78,8.73,8.68,8.64,8.6,8.56,8.53,8.5,8.47,8.45,8.42,8.4,8.39,8.37,8.36,8.35,8.35,8.34,8.34,8.67,9.65,9.62,9.53,9.4,9.21,8.98,8.7,8.4,8.06,7.69,7.3,6.89,6.47,6.03,5.59,5.14,4.7,4.26,3.83,3.42,3.02,2.65,2.3,1.98,1.7,1.45,1.25,1.09,0.99,0.94,0.92,0.91,0.89,0.87,0.85,0.84,0.82,0.81,0.79,0.78,0.77,0.75,0.74,0.73,0.72,0.71,0.7,0.69,0.68,0.67,0.66,0.65,0.64,0.64,0.63,0.63,0.62,0.62,0.61,0.61,0.61,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.61,0.61,0.61,0.61,0.61,0.61,0.62,0.62,0.62,0.62,0.63,0.63,0.63,0.63,0.63,0.64,0.64,0.64,0.64,0.64,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.64,0.63,0.62,0.6,0.59,0.57,0.55,0.54,0.53,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.51,0.51,0.51,0.5,0.5,0.49,0.48,0.47,0.47,0.46,0.45,0.45,0.44,0.43,0.42,0.42,0.41,0.41,0.41,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.41,0.42,0.43,0.44,0.46,0.48,0.5,0.53,0.55,0.58,0.61,0.64,0.67,0.7,0.73,0.77,0.8,0.83,0.87,0.9,0.93,0.96,0.99,1.02,1.05,1.08,1.1,1.12,1.14,1.16,1.17,1.18,1.19,1.2,1.2,1.2,1.19,1.17,1.15,1.12,1.09,1.06,1.02,0.98,0.94,0.9,0.86,0.82,0.78,0.74,0.7,0.66,0.63,0.6,0.57,0.55,0.53,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.51,0.51,0.5,0.5,0.49,0.49,0.48,0.47,0.47,0.47,0.46,0.46,0.45,0.45,0.45,0.44,0.44,0.44,0.43,0.43,0.43,0.42,0.42,0.42,0.41,0.41,0.41,0.41,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.43,0.43,0.43,0.43,0.43,0.43,0.44,0.44,0.44,0.44,0.44,0.44,0.45,0.45,0.45
            ]
        },
        {
            name: &#39;降雨量&#39;,
            type: &#39;line&#39;,
            yAxisIndex: 1,
            animation: false,
            areaStyle: {},
            lineStyle: {
                width: 1
            },
            markArea: {
                silent: true,
                data: [
                    [{
                        xAxis: &#39;2009/9/10\n7:00&#39;
                    }, {
                        xAxis: &#39;2009/9/20\n7:00&#39;
                    }]
                ]
            },
            data: [
                0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005,0.017,0.017,0.017,0.017,0.011,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.021,0.026,0.03,0.036,0.036,0.195,0.221,0.019,0.013,0.017,0.03,0.03,0.03,0.046,0.045,0.038,0.084,0.045,0.045,0.037,0.034,0.035,0.036,0.044,0.052,0.048,0.109,0.033,0.029,0.04,0.042,0.042,0.042,0.073,0.076,0.062,0.066,0.066,0.075,0.096,0.128,0.121,0.128,0.14,0.226,0.143,0.097,0.018,0,0,0,0,0,0.018,0.047,0.054,0.054,0.054,0.036,0.185,0.009,0.038,0.061,0.077,0.091,0.126,0.69,0.182,0.349,0.231,0.146,0.128,0.167,0.1,0.075,0.071,0.071,0.117,0.01,0.002,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005,0.026,0.038,0.038,0.038,0.076,0.086,0.109,0.213,0.276,0.288,0.297,0.642,1.799,1.236,2.138,0.921,0.497,0.685,0.828,0.41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.018,0.024,0.024,0.024,0.024,0.006,0.003,0.046,0.046,0.046,0.046,0.043,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.204,0.303,1.028,1.328,1.524,1.41,1.362,1.292,1.191,0.529,0.501,0.944,1.81,2.899,0.859,0.126,0.087,0.047,0,0,0,0,0.011,0.028,0.028,0.028,0.028,0.017,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.099,0.159,0.297,0.309,0.309,0.614,0.818,1.436,1.195,0.553,0.542,0.955,0.898,0.466,0.386,0.556,0.388,0.221,0.192,0.192,0.187,0.166,0.18,0.302,0.158,0.009,0.009,0.009,0.009,0.009,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004,0.032,0.032,0.032,0.032,0.082,0.149,0.204,0.247,0.262,0.49,0.51,0.533,0.746,0.847,2.393,1.188,1.114,0.475,0.043,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.017,0.017,0.021,0.042,0.079,0.111,0.126,0.122,0.133,0.846,0.102,0.077,0.067,0.056,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0.011,0.017,0.017,0.017,0.017,0.006,0,0,0,0,0,0.01,0.03,0.054,0.067,0.07,0.25,0.251,0.494,0.065,0.054,0.054,0.064,0.084,0.077,0.101,0.132,0.248,0.069,0.117,0.115,0.087,0.326,0.036,0.009,0.009,0.009,0.009,0.009,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.039,0.04,0.04,0.04,0.229,0.079,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.023,0.069,0.082,0.082,0.082,0.503,0.774,0.038,0.012,0.012,0.012,0.016,0.02,0.028,0.051,0.06,0.064,0.19,0.15,0.164,0.139,0.13,0.085,0.031,0.023,0.022,0.007,0.005,0.005,0.001,0,0.02,0.048,0.048,0.053,0.056,0.036,0.008,0.008,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.013,0.017,0.036,0.068,0.095,0.233,0.272,0.377,0.722,1.494,3.756,0.954,0.439,0.442,0.462,0.373,0.249,0.214,0.1,0.044,0.037,0.023,0.002,0,0,0,0,0,0,0.02,0.024,0.024,0.024,0.024,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.008,0.017,0.017,0.045,0.186,0.308,0.241,0.241,0.893,4.067,4.494,5.015,3.494,2.057,1.411,0.718,0.407,0.313,0.339,1.537,1.105,0.218,0.136,0.03,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.037,0.448,1.2,1.309,1.309,1.425,1.223,0.471,0.767,0.423,0.273,0.412,0.646,0.481,0.239,0.131,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.044,0.15,0.223,0.388,0.513,0.883,2.828,4.786,5.959,4.95,6.434,6.319,3.35,2.806,4.204,1.395,1.015,1.015,0.836,0.74,0.72,0.615,0.477,0.192,0.046,0.007,0.007,0.007,0.007,0.007,0.007,0.007,0.008,0.005,0.005,0.005,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.012,0.012,0.012,0.012,0.011,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.012,0.028,0.028,0.028,0.138,0.092,0.082,0.082,0.096,0.719,0.155,0.042,0.047,0.129,0.021,0.021,0.014,0.009,0.029,0.067,0.088,0.095,0.095,0.138,0.091,0.032,0.025,0.025,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.045,0.228,0.297,0.325,0.339,0.581,1.244,0.796,0.517,0.227,0.053,0.006,0,0,0,0,0,0,0,0,0,0.003,0.005,0.005,0.005,0.005,0.081,0.129,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.014,0.041,0.041,0.041,0.041,0.027,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.009,0.017,0.017,0.017,0.017,0.355,0.174,0.009,0.009,0.012,0.136,0.208,0.208,0.208,0.215,7.359,1.858,0.458,0.053,0.053,0.047,0.045,0.045,0.059,0.136,0.188,0.206,0.21,0.588,1.517,6.02,4.688,4.42,0.624,0.326,0.359,0.553,0.899,0.94,2.95,9.415,5.752,1.092,0.096,0.035,0.026,0.018,0.015,0.011,0.011,0.011,0,0,0,0,0,0,0,0,0,0,0,0.056,0.27,0.314,0.351,0.354,0.609,0.796,1.857,0.848,0.538,0.214,0.178,0.178,0.201,0.231,0.227,0.272,0.397,0.45,1.014,2.917,1.675,0.081,0.059,0.059,0.148,0.075,0.075,0.078,0.236,0.784,0.784,0.784,0.784,0.741,0.115,0.058,0.058,0.058,0.029,0.015,0.015,0.015,0.015,0.012,0.008,0.604,0.985,1.305,2.273,2.528,2.336,2.496,2.281,1.397,1.713,3.259,1.167,0.745,0.548,1.058,0.684,0.728,0.392,0.179,0.283,0.283,0.46,0.08,0.099,0.099,0.099,0.1,0.143,0.137,0.238,0.317,0.262,0.225,0.792,0.426,0.332,0.261,0.11,0.093,0.102,0.171,0.292,0.504,0.605,1.745,2.485,1.964,0.33,0.171,0.259,0.242,0.215,0.366,0.354,0.205,0.203,0.262,0.153,0.13,0.137,0.362,0.691,0.295,0.433,0.154,0.056,0.053,0.053,0.053,0.051,0.047,0.065,0.078,0.091,0.206,0.813,0.102,0.151,0.05,0.024,0.004,0.001,0,0,0,0.021,0.021,0.021,0.021,0.021,0.013,0.013,0.013,0.013,0.013,0.013,0.013,0.013,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.008,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.018,0.021,0.021,0.021,0.021,0.003,0,0,0,0,0,0,0,0,0,0.024,0.173,0.261,0.267,0.267,0.534,1.354,1.772,0.72,0.218,0.018,0.018,0.028,0.036,0.032,0.194,0.082,0.035,0.286,0.027,0.038,0.038,0.027,0.021,0.014,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.016,0.017,0.017,0.031,0.047,0.043,0.056,0.104,0.149,0.179,0.205,0.328,0.998,0.522,1.851,3.727,3.273,2.204,1.169,1.006,1.179,0.74,0.741,1.065,0.925,0.671,0.497,0.431,0.327,0.277,0.126,0.581,0.207,0.359,2.485,0.038,0.036,0.003,0.003,0.003,0.003,0.004,0.098,0.023,0.021,0.021,0.022,0.041,0.041,0.043,0.045,0.043,0.014,0.014,0.014,0.014,0.014,0.014,0.014,0.031,0.046,0.063,0.119,0.107,0.092,0.085,0.065,0.06,0.054,0.042,0.039,0.046,0.044,0.028,0.028,0.02,0.013,0.013,0.013,0.013,0.016,0.032,0.031,0.031,0.031,0.028,0.011,0.011,0.011,0.011,0.011,0.023,0.024,0.024,0.024,0.019,0.015,0.015,0.015,0.015,0.015,0.015,0.013,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.011,0.017,0.024,0.026,0.061,0.172,0.206,0.213,0.267,0.511,0.668,0.157,0.017,0.017,0.017,0.046,0.054,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.017,0.017,0.017,0.017,0.016,0,0,0,0,0,0,0,0,0,0.01,0.017,0.017,0.017,0.017,0.012,0.017,0.017,0.017,0.017,0.012,0,0,0,0,0,0.003,0.031,0.066,0.093,0.112,0.122,0.202,0.068,0.041,0.022,0.011,0,0,0,0,0,0,0,0,0,0,0,0.002,0.005,0.012,0.021,0.021,0.019,0.033,0.03,0.026,0.026,0.034,0.095,0.024,0.024,0.024,0.023,0.019,0.018,0.018,0.018,0.011,0.03,0.045,0.044,0.044,0.044,0.022,0.009,0.024,0.033,0.033,0.033,0.024,0.009,0,0,0,0,0,0,0.003,0.017,0.017,0.017,0.017,0.014,0,0,0,0,0,0.032,0.032,0.032,0.032,0.032,0.005,0.008,0.009,0.014,0.014,0.009,0.005,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.007,0.009,0.009,0.009,0.009,0.043,0.063,0.084,0.098,0.101,0.213,0.334,0.383,0.43,0.448,0.511,0.801,0.835,1.642,1.614,1.496,1.496,1.476,1.068,0.481,0.22,0.119,0.099,0.07,0.072,0.063,0.076,0.14,0.205,0.28,0.297,0.3,0.479,0.877,1.098,1.611,1.629,1.686,1.686,1.631,1.528,1.862,1.703,1.531,2.196,0.395,0.416,0.453,0.728,0.917,0.986,1.17,2.171,3.011,2.909,3.301,1.377,0.778,0.799,0.947,1.039,0.879,0.76,1.372,1.674,1.674,1.68,1.823,1.793,1.162,0.783,0.216,0.152,0.152,0.152,0.049,0,0,0,0.117,0.127,0.127,0.127,0.127,0.127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003,0.005,0.005,0.005,0.005,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.309,0.364,0.364,0.364,0.364,0.063,0.01,0.01,0.01,0.012,0.015,0.015,0.11,0.55,0.824,0.825,0.829,1.39,1.429,1.342,1.43,1.636,1.717,2.135,2.203,3.191,3.022,1.589,0.86,0.807,0.645,0.595,0.588,0.557,0.552,1.271,0.708,0.677,0.629,0.714,0.203,0.133,0.061,0.062,0.018,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.072,0.29,0.438,0.53,0.557,0.873,1.039,1.04,0.208,0.049,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.039,0.039,0.039,0.039,0.098,0.008,0.007,0.007,0.007,0.007,0.007,0.007,0.007,0.007,0.007,0.056,0.062,0.065,0.065,0.065,0.047,0.216,0.256,0.315,0.4,0.502,0.449,0.47,0.571,0.814,1.153,0.774,0.202,0.086,0.075,0.071,0.032,0.019,0.003,0.004,0.004,0.004,0.004,0.004,0.004,0.007,0.072,0.153,0.256,0.306,0.404,0.698,0.733,0.823,0.715,0.563,0.404,0.293,0.217,0.213,0.202,0.202,0.294,0.704,0.797,1.359,1.101,0.72,0.514,0.539,0.434,0.389,0.387,0.386,0.375,0.369,0.319,0.239,0.183,0.136,0.062,0.052,0.096,0.119,0.119,0.114,0.127,0.132,0.139,0.169,0.191,0.278,0.254,0.214,0.237,0.221,0.143,0.129,0.125,0.109,0.1,0.087,0.06,0.038,0.029,0.029,0.028,0.048,0.053,0.053,0.111,0.125,0.102,0.097,0.097,0.039,0.02,0.02,0.02,0.014,0.004,0.031,0.043,0.047,0.052,0.08,0.144,0.182,0.176,0.171,0.149,0.112,0.025,0,0,0,0,0,0,0,0.016,0.031,0.031,0.031,0.031,0.015,0,0,0,0,0,0.005,0.005,0.005,0.005,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005,0.005,0.005,0.005,0.005,0.001,0,0,0
            ]
        }
    ]
};

        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
&lt;/script&gt;
&lt;h4 id=&#34;Line-Easing-Visualizing&#34;&gt;&lt;a href=&#34;https://echarts.apache.org/examples/zh/editor.html?c=line-easing&#34;&gt;Line Easing Visualizing&lt;/a&gt;&lt;/h4&gt;
&lt;script&gt;
var easingFuncs = {
    linear: function (k) {
        return k;
    },
    quadraticIn: function (k) {
        return k * k;
    },
    quadraticOut: function (k) {
        return k * (2 - k);
    },
    quadraticInOut: function (k) {
        if ((k *= 2) &lt; 1) { return 0.5 * k * k; }
        return -0.5 * (--k * (k - 2) - 1);
    },
    cubicIn: function (k) {
        return k * k * k;
    },
    cubicOut: function (k) {
        return --k * k * k + 1;
    },
    cubicInOut: function (k) {
        if ((k *= 2) &lt; 1) { return 0.5 * k * k * k; }
        return 0.5 * ((k -= 2) * k * k + 2);
    },
    quarticIn: function (k) {
        return k * k * k * k;
    },
    quarticOut: function (k) {
        return 1 - (--k * k * k * k);
    },
    quarticInOut: function (k) {
        if ((k *= 2) &lt; 1) { return 0.5 * k * k * k * k; }
        return -0.5 * ((k -= 2) * k * k * k - 2);
    },
    quinticIn: function (k) {
        return k * k * k * k * k;
    },
    quinticOut: function (k) {
        return --k * k * k * k * k + 1;
    },
    quinticInOut: function (k) {
        if ((k *= 2) &lt; 1) { return 0.5 * k * k * k * k * k; }
        return 0.5 * ((k -= 2) * k * k * k * k + 2);
    },
    sinusoidalIn: function (k) {
        return 1 - Math.cos(k * Math.PI / 2);
    },
    sinusoidalOut: function (k) {
        return Math.sin(k * Math.PI / 2);
    },
    sinusoidalInOut: function (k) {
        return 0.5 * (1 - Math.cos(Math.PI * k));
    },
    exponentialIn: function (k) {
        return k === 0 ? 0 : Math.pow(1024, k - 1);
    },
    exponentialOut: function (k) {
        return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);
    },
    exponentialInOut: function (k) {
        if (k === 0) {
            return 0;
        }
        if (k === 1) {
            return 1;
        }
        if ((k *= 2) &lt; 1) {
            return 0.5 * Math.pow(1024, k - 1);
        }
        return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);
    },
    circularIn: function (k) {
        return 1 - Math.sqrt(1 - k * k);
    },
    circularOut: function (k) {
        return Math.sqrt(1 - (--k * k));
    },
    circularInOut: function (k) {
        if ((k *= 2) &lt; 1) { return -0.5 * (Math.sqrt(1 - k * k) - 1); }
        return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);
    },
    elasticIn: function (k) {
        var s;
        var a = 0.1;
        var p = 0.4;
        if (k === 0) { return 0; }
        if (k === 1) { return 1; }
        if (!a || a &lt; 1) { a = 1; s = p / 4; }
        else { s = p * Math.asin(1 / a) / (2 * Math.PI); }
        return -(a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p));
    },
    elasticOut: function (k) {
        var s;
        var a = 0.1;
        var p = 0.4;
        if (k === 0) { return 0; }
        if (k === 1) { return 1; }
        if (!a || a &lt; 1) { a = 1; s = p / 4; }
        else { s = p * Math.asin(1 / a) / (2 * Math.PI); }
        return (a * Math.pow(2, -10 * k) * Math.sin((k - s) * (2 * Math.PI) / p) + 1);
    },
    elasticInOut: function (k) {
        var s;
        var a = 0.1;
        var p = 0.4;
        if (k === 0) { return 0; }
        if (k === 1) { return 1; }
        if (!a || a &lt; 1) { a = 1; s = p / 4; }
        else { s = p * Math.asin(1 / a) / (2 * Math.PI); }
        if ((k *= 2) &lt; 1) {
            return -0.5 * (a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p));
        }
        return a * Math.pow(2, -10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;
    },
    backIn: function (k) {
        var s = 1.70158;
        return k * k * ((s + 1) * k - s);
    },
    backOut: function (k) {
        var s = 1.70158;
        return --k * k * ((s + 1) * k + s) + 1;
    },
    backInOut: function (k) {
        var s = 1.70158 * 1.525;
        if ((k *= 2) &lt; 1) { return 0.5 * (k * k * ((s + 1) * k - s)); }
        return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);
    },
    bounceIn: function (k) {
        return 1 - easingFuncs.bounceOut(1 - k);
    },
    bounceOut: function (k) {
        if (k &lt; (1 / 2.75)) { return 7.5625 * k * k; }
        else if (k &lt; (2 / 2.75)) { return 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75; }
        else if (k &lt; (2.5 / 2.75)) { return 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375; }
        else { return 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375; }
    },
    bounceInOut: function (k) {
        if (k &lt; 0.5) { return easingFuncs.bounceIn(k * 2) * 0.5; }
        return easingFuncs.bounceOut(k * 2 - 1) * 0.5 + 0.5;
    }
};

var N_POINT = 30;

var grids = [];
var xAxes = [];
var yAxes = [];
var series = [];
var titles = [];
var count = 0;
echarts.util.each(easingFuncs, function (easingFunc, name) {
    var data = [];
    for (var i = 0; i &lt;= N_POINT; i++) {
        var x = i / N_POINT;
        var y = easingFunc(x);
        data.push([x, y]);
    }
    grids.push({
        show: true,
        borderWidth: 0,
        backgroundColor: &#39;#fff&#39;,
        shadowColor: &#39;rgba(0, 0, 0, 0.3)&#39;,
        shadowBlur: 2
    });
    xAxes.push({
        type: &#39;value&#39;,
        show: false,
        min: 0,
        max: 1,
        gridIndex: count
    });
    yAxes.push({
        type: &#39;value&#39;,
        show: false,
        min: -0.4,
        max: 1.4,
        gridIndex: count
    });
    series.push({
        name: name,
        type: &#39;line&#39;,
        xAxisIndex: count,
        yAxisIndex: count,
        data: data,
        showSymbol: false,
        animationEasing: name,
        animationDuration: 1000
    });
    titles.push({
        textAlign: &#39;center&#39;,
        text: name,
        textStyle: {
            fontSize: 12,
            fontWeight: &#39;normal&#39;
        }
    });
    count++;
});

var rowNumber = Math.ceil(Math.sqrt(count));
echarts.util.each(grids, function (grid, idx) {
    grid.left = ((idx % rowNumber) / rowNumber * 100 + 0.5) + &#39;%&#39;;
    grid.top = (Math.floor(idx / rowNumber) / rowNumber * 100 + 0.5) + &#39;%&#39;;
    grid.width = (1 / rowNumber * 100 - 1) + &#39;%&#39;;
    grid.height = (1 / rowNumber * 100 - 1) + &#39;%&#39;;

    titles[idx].left = parseFloat(grid.left) + parseFloat(grid.width) / 2 + &#39;%&#39;;
    titles[idx].top = parseFloat(grid.top) + &#39;%&#39;;
});
&lt;/script&gt;
&lt;div id=&#34;echarts9763&#34; style=&#34;width: 85%;height: 400px;margin: 0 auto&#34;&gt;&lt;/div&gt;
&lt;script type=&#34;text/javascript&#34;&gt;
        // 基于准备好的dom，初始化echarts实例
        var myChart = echarts.init(document.getElementById(&#39;echarts9763&#39;));

        // 指定图表的配置项和数据
        var option = option = {
    title: titles.concat([{
        text: &#39;Different Easing Functions&#39;,
        top: &#39;bottom&#39;,
        left: &#39;center&#39;
    }]),
    grid: grids,
    xAxis: xAxes,
    yAxis: yAxes,
    series: series
};

        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
&lt;/script&gt;
&lt;h3 id=&#34;柱状图Bar&#34;&gt;柱状图Bar&lt;/h3&gt;
&lt;h4 id=&#34;柱状图动画延迟&#34;&gt;&lt;a href=&#34;https://echarts.apache.org/examples/zh/editor.html?c=bar-animation-delay&#34;&gt;柱状图动画延迟&lt;/a&gt;&lt;/h4&gt;
&lt;script&gt;
var xAxisData = [];
var data01 = [];
var data02 = [];
for (var i = 0; i &lt; 100; i++) {
    xAxisData.push(&#39;类目&#39; + i);
    data01.push((Math.sin(i / 5) * (i / 5 -10) + i / 6) * 5);
    data02.push((Math.cos(i / 5) * (i / 5 -10) + i / 6) * 5);
}
&lt;/script&gt;
&lt;div id=&#34;echarts1559&#34; style=&#34;width: 85%;height: 400px;margin: 0 auto&#34;&gt;&lt;/div&gt;
&lt;script type=&#34;text/javascript&#34;&gt;
        // 基于准备好的dom，初始化echarts实例
        var myChart = echarts.init(document.getElementById(&#39;echarts1559&#39;));

        // 指定图表的配置项和数据
        var option = option = {
    title: {
        text: &#39;柱状图动画延迟&#39;
    },
    legend: {
        data: [&#39;bar01&#39;, &#39;bar02&#39;]
    },
    toolbox: {
        // y: &#39;bottom&#39;,
        feature: {
            magicType: {
                type: [&#39;stack&#39;, &#39;tiled&#39;]
            },
            dataView: {},
            saveAsImage: {
                pixelRatio: 2
            }
        }
    },
    tooltip: {},
    xAxis: {
        data: xAxisData,
        splitLine: {
            show: false
        }
    },
    yAxis: {
    },
    series: [{
        name: &#39;bar01&#39;,
        type: &#39;bar&#39;,
        data: data01,
        animationDelay: function (idx) {
            return idx * 10 + 50;
        }
    }, {
        name: &#39;bar02&#39;,
        type: &#39;bar&#39;,
        data: data02,
        animationDelay: function (idx) {
            return idx * 10 + 100;
        }
    }],
    animationEasing: &#39;elasticOut&#39;,
    animationDelayUpdate: function (idx) {
        return idx * 5;
    }
};

        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
&lt;/script&gt;
&lt;h4 id=&#34;柱状图框选&#34;&gt;&lt;a href=&#34;https://echarts.apache.org/examples/zh/editor.html?c=bar-brush&#34;&gt;柱状图框选&lt;/a&gt;&lt;/h4&gt;
&lt;script&gt;
var xAxisData = [];
var data1 = [];
var data2 = [];
var data3 = [];
var data4 = [];

for (var i = 0; i &lt; 10; i++) {
    xAxisData.push(&#39;Class&#39; + i);
    data1.push((Math.random() * 2).toFixed(2));
    data2.push(-Math.random().toFixed(2));
    data3.push((Math.random() * 5).toFixed(2));
    data4.push((Math.random() + 0.3).toFixed(2));
}

var emphasisStyle = {
    itemStyle: {
        barBorderWidth: 1,
        shadowBlur: 10,
        shadowOffsetX: 0,
        shadowOffsetY: 0,
        shadowColor: &#39;rgba(0,0,0,0.5)&#39;
    }
};

myChart.on(&#39;brushSelected&#39;, renderBrushed);

function renderBrushed(params) {
    var brushed = [];
    var brushComponent = params.batch[0];

    for (var sIdx = 0; sIdx &lt; brushComponent.selected.length; sIdx++) {
        var rawIndices = brushComponent.selected[sIdx].dataIndex;
        brushed.push(&#39;[Series &#39; + sIdx + &#39;] &#39; + rawIndices.join(&#39;, &#39;));
    }
    
    myChart.setOption({
        title: {
            backgroundColor: &#39;#333&#39;,
            text: &#39;SELECTED DATA INDICES: \n&#39; + brushed.join(&#39;\n&#39;),
            bottom: 0,
            right: 0,
            width: 100,
            textStyle: {
                fontSize: 12,
                color: &#39;#fff&#39;
            }
        }
    });
}
&lt;/script&gt;
&lt;div id=&#34;echarts12&#34; style=&#34;width: 85%;height: 400px;margin: 0 auto&#34;&gt;&lt;/div&gt;
&lt;script type=&#34;text/javascript&#34;&gt;
        // 基于准备好的dom，初始化echarts实例
        var myChart = echarts.init(document.getElementById(&#39;echarts12&#39;));

        // 指定图表的配置项和数据
        var option = option = {
    backgroundColor: &#39;#eee&#39;,
    legend: {
        data: [&#39;bar&#39;, &#39;bar2&#39;, &#39;bar3&#39;, &#39;bar4&#39;],
        left: 10
    },
    brush: {
        toolbox: [&#39;rect&#39;, &#39;polygon&#39;, &#39;lineX&#39;, &#39;lineY&#39;, &#39;keep&#39;, &#39;clear&#39;],
        xAxisIndex: 0
    },
    toolbox: {
        feature: {
            magicType: {
                type: [&#39;stack&#39;, &#39;tiled&#39;]
            },
            dataView: {}
        }
    },
    tooltip: {},
    xAxis: {
        data: xAxisData,
        name: &#39;X Axis&#39;,
        axisLine: {onZero: true},
        splitLine: {show: false},
        splitArea: {show: false}
    },
    yAxis: {
        inverse: true,
        splitArea: {show: false}
    },
    grid: {
        left: 100
    },
    visualMap: {
        type: &#39;continuous&#39;,
        dimension: 1,
        text: [&#39;High&#39;, &#39;Low&#39;],
        inverse: true,
        itemHeight: 200,
        calculable: true,
        min: -2,
        max: 6,
        top: 60,
        left: 10,
        inRange: {
            colorLightness: [0.4, 0.8]
        },
        outOfRange: {
            color: &#39;#bbb&#39;
        },
        controller: {
            inRange: {
                color: &#39;#2f4554&#39;
            }
        }
    },
    series: [
        {
            name: &#39;bar&#39;,
            type: &#39;bar&#39;,
            stack: &#39;one&#39;,
            emphasis: emphasisStyle,
            data: data1
        },
        {
            name: &#39;bar2&#39;,
            type: &#39;bar&#39;,
            stack: &#39;one&#39;,
            emphasis: emphasisStyle,
            data: data2
        },
        {
            name: &#39;bar3&#39;,
            type: &#39;bar&#39;,
            stack: &#39;two&#39;,
            emphasis: emphasisStyle,
            data: data3
        },
        {
            name: &#39;bar4&#39;,
            type: &#39;bar&#39;,
            stack: &#39;two&#39;,
            emphasis: emphasisStyle,
            data: data4
        }
    ]
};

        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
&lt;/script&gt;
&lt;h4 id=&#34;极坐标系下的堆叠柱状图&#34;&gt;&lt;a href=&#34;https://echarts.apache.org/examples/zh/editor.html?c=bar-polar-stack-radial&#34;&gt;极坐标系下的堆叠柱状图&lt;/a&gt;&lt;/h4&gt;
&lt;script&gt;

&lt;/script&gt;
&lt;div id=&#34;echarts3069&#34; style=&#34;width: 85%;height: 400px;margin: 0 auto&#34;&gt;&lt;/div&gt;
&lt;script type=&#34;text/javascript&#34;&gt;
        // 基于准备好的dom，初始化echarts实例
        var myChart = echarts.init(document.getElementById(&#39;echarts3069&#39;));

        // 指定图表的配置项和数据
        var option = option = {
    angleAxis: {
        type: &#39;category&#39;,
        data: [&#39;周一&#39;, &#39;周二&#39;, &#39;周三&#39;, &#39;周四&#39;, &#39;周五&#39;, &#39;周六&#39;, &#39;周日&#39;]
    },
    radiusAxis: {
    },
    polar: {
    },
    series: [{
        type: &#39;bar&#39;,
        data: [1, 2, 3, 4, 3, 5, 1],
        coordinateSystem: &#39;polar&#39;,
        name: &#39;A&#39;,
        stack: &#39;a&#39;
    }, {
        type: &#39;bar&#39;,
        data: [2, 4, 6, 1, 3, 2, 1],
        coordinateSystem: &#39;polar&#39;,
        name: &#39;B&#39;,
        stack: &#39;a&#39;
    }, {
        type: &#39;bar&#39;,
        data: [1, 2, 3, 4, 1, 2, 5],
        coordinateSystem: &#39;polar&#39;,
        name: &#39;C&#39;,
        stack: &#39;a&#39;
    }],
    legend: {
        show: true,
        data: [&#39;A&#39;, &#39;B&#39;, &#39;C&#39;]
    }
};

        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
&lt;/script&gt;
&lt;h3 id=&#34;饼图Pie&#34;&gt;饼图Pie&lt;/h3&gt;
&lt;h4 id=&#34;Texture-on-Pie-Chart&#34;&gt;&lt;a href=&#34;https://echarts.apache.org/examples/zh/editor.html?c=pie-pattern&#34;&gt;Texture on Pie Chart&lt;/a&gt;&lt;/h4&gt;
&lt;script&gt;
var piePatternSrc = &#39;data:image/jpeg;base64,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&#39;;
var bgPatternSrc = &#39;data:image/png;charset=utf-8;base64,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&#39;;

var piePatternImg = new Image();
piePatternImg.src = piePatternSrc;
var bgPatternImg = new Image();
bgPatternImg.src = bgPatternSrc;

var itemStyle = {
    normal: {
        opacity: 0.7,
        color: {
            image: piePatternImg,
            repeat: &#39;repeat&#39;
        },
        borderWidth: 3,
        borderColor: &#39;#235894&#39;
    }
};
&lt;/script&gt;
&lt;div id=&#34;echarts3382&#34; style=&#34;width: 85%;height: 400px;margin: 0 auto&#34;&gt;&lt;/div&gt;
&lt;script type=&#34;text/javascript&#34;&gt;
        // 基于准备好的dom，初始化echarts实例
        var myChart = echarts.init(document.getElementById(&#39;echarts3382&#39;));

        // 指定图表的配置项和数据
        var option = option = {
    backgroundColor: {
        image: bgPatternImg,
        repeat: &#39;repeat&#39;
    },
    title: {
        text: &#39;饼图纹理&#39;,
        textStyle: {
            color: &#39;#235894&#39;
        }
    },
    tooltip: {},
    series: [{
        name: &#39;pie&#39;,
        type: &#39;pie&#39;,
        selectedMode: &#39;single&#39;,
        selectedOffset: 30,
        clockwise: true,
        label: {
            fontSize: 18,
            color: &#39;#235894&#39;
        },
        labelLine: {
            lineStyle: {
                color: &#39;#235894&#39;
            }
        },
        data: [
            {value: 335, name: &#39;直接访问&#39;},
            {value: 310, name: &#39;邮件营销&#39;},
            {value: 234, name: &#39;联盟广告&#39;},
            {value: 135, name: &#39;视频广告&#39;},
            {value: 1548, name: &#39;搜索引擎&#39;}
        ],
        itemStyle: itemStyle
    }]
};

        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
&lt;/script&gt;
&lt;h3 id=&#34;地理坐标-地图GEO-Map&#34;&gt;地理坐标/地图GEO/Map&lt;/h3&gt;
&lt;h4 id=&#34;Air-Quality-Baidu-Map&#34;&gt;&lt;a href=&#34;https://echarts.apache.org/examples/zh/editor.html?c=effectScatter-bmap&#34;&gt;Air Quality - Baidu Map&lt;/a&gt;&lt;/h4&gt;
&lt;iframe src=&#34;/html-file/echarts/lines-bmap-bus/&#34; width=&#34;100%&#34; height=&#34;600&#34; name=&#34;topFrame&#34; scrolling=&#34;yes&#34; noresize=&#34;noresize&#34; frameborder=&#34;0&#34; id=&#34;topFrame&#34; loading=&#34;lazy&#34;&gt;&lt;/iframe&gt;
&lt;p&gt;可进入&lt;a href=&#34;/html-file/echarts/lines-bmap-bus/&#34;&gt;页面查看&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;K-线图Candlestick&#34;&gt;K 线图Candlestick&lt;/h3&gt;
&lt;h4 id=&#34;Candlestick-Brush&#34;&gt;&lt;a href=&#34;https://echarts.apache.org/examples/zh/editor.html?c=candlestick-brush&#34;&gt;Candlestick Brush&lt;/a&gt;&lt;/h4&gt;
&lt;iframe src=&#34;/html-file/echarts/candlestick-brush/&#34; width=&#34;100%&#34; height=&#34;600&#34; name=&#34;topFrame&#34; scrolling=&#34;yes&#34; noresize=&#34;noresize&#34; frameborder=&#34;0&#34; id=&#34;topFrame&#34; loading=&#34;lazy&#34;&gt;&lt;/iframe&gt;
&lt;p&gt;可进入&lt;a href=&#34;/html-file/echarts/candlestick-brush/&#34;&gt;页面查看&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;雷达图Radar&#34;&gt;雷达图Radar&lt;/h3&gt;
&lt;h4 id=&#34;Proportion-of-Browsers&#34;&gt;&lt;a href=&#34;https://echarts.apache.org/examples/zh/editor.html?c=radar2&#34;&gt;Proportion of Browsers&lt;/a&gt;&lt;/h4&gt;
&lt;div id=&#34;echarts5873&#34; style=&#34;width: 85%;height: 400px;margin: 0 auto&#34;&gt;&lt;/div&gt;
&lt;script type=&#34;text/javascript&#34;&gt;
        // 基于准备好的dom，初始化echarts实例
        var myChart = echarts.init(document.getElementById(&#39;echarts5873&#39;));

        // 指定图表的配置项和数据
        var option = option = {
    title: {
        text: &#39;浏览器占比变化&#39;,
        subtext: &#39;纯属虚构&#39;,
        top: 10,
        left: 10
    },
    tooltip: {
        trigger: &#39;item&#39;,
        backgroundColor: &#39;rgba(0,0,250,0.2)&#39;
    },
    legend: {
        type: &#39;scroll&#39;,
        bottom: 10,
        data: (function (){
            var list = [];
            for (var i = 1; i &lt;=28; i++) {
                list.push(i + 2000 + &#39;&#39;);
            }
            return list;
        })()
    },
    visualMap: {
        top: &#39;middle&#39;,
        right: 10,
        color: [&#39;red&#39;, &#39;yellow&#39;],
        calculable: true
    },
    radar: {
        indicator: [
            { text: &#39;IE8-&#39;, max: 400},
            { text: &#39;IE9+&#39;, max: 400},
            { text: &#39;Safari&#39;, max: 400},
            { text: &#39;Firefox&#39;, max: 400},
            { text: &#39;Chrome&#39;, max: 400}
        ]
    },
    series: (function (){
        var series = [];
        for (var i = 1; i &lt;= 28; i++) {
            series.push({
                name: &#39;浏览器（数据纯属虚构）&#39;,
                type: &#39;radar&#39;,
                symbol: &#39;none&#39;,
                lineStyle: {
                    width: 1
                },
                emphasis: {
                    areaStyle: {
                        color: &#39;rgba(0,250,0,0.3)&#39;
                    }
                },
                data: [{
                    value: [
                        (40 - i) * 10,
                        (38 - i) * 4 + 60,
                        i * 5 + 10,
                        i * 9,
                        i * i /2
                    ],
                    name: i + 2000 + &#39;&#39;
                }]
            });
        }
        return series;
    })()
};

        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
&lt;/script&gt;
&lt;h3 id=&#34;关系图Graph&#34;&gt;关系图Graph&lt;/h3&gt;
&lt;h4 id=&#34;Graph-Webkit-Dep&#34;&gt;&lt;a href=&#34;https://echarts.apache.org/examples/zh/editor.html?c=graph-webkit-dep&#34;&gt;Graph Webkit Dep&lt;/a&gt;&lt;/h4&gt;
&lt;iframe src=&#34;/html-file/echarts/graph-webkit-dep/&#34; width=&#34;100%&#34; height=&#34;600&#34; name=&#34;topFrame&#34; scrolling=&#34;yes&#34; noresize=&#34;noresize&#34; frameborder=&#34;0&#34; id=&#34;topFrame&#34; loading=&#34;lazy&#34;&gt;&lt;/iframe&gt;
&lt;p&gt;可进入&lt;a href=&#34;/html-file/echarts/graph-webkit-dep/&#34;&gt;页面查看&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;树图Tree&#34;&gt;树图Tree&lt;/h3&gt;
&lt;h4 id=&#34;Multiple-Trees&#34;&gt;&lt;a href=&#34;https://echarts.apache.org/examples/zh/editor.html?c=tree-legend&#34;&gt;Multiple Trees&lt;/a&gt;&lt;/h4&gt;
&lt;script&gt;
var data = {
    &#34;name&#34;: &#34;flare&#34;,
    &#34;children&#34;: [
        {
            &#34;name&#34;: &#34;data&#34;,
            &#34;children&#34;: [
                {
                     &#34;name&#34;: &#34;converters&#34;,
                     &#34;children&#34;: [
                      {&#34;name&#34;: &#34;Converters&#34;, &#34;value&#34;: 721},
                      {&#34;name&#34;: &#34;DelimitedTextConverter&#34;, &#34;value&#34;: 4294}
                     ]
                },
                {
                    &#34;name&#34;: &#34;DataUtil&#34;,
                    &#34;value&#34;: 3322
                }
            ]
        },
        {
            &#34;name&#34;: &#34;display&#34;,
            &#34;children&#34;: [
                {&#34;name&#34;: &#34;DirtySprite&#34;, &#34;value&#34;: 8833},
                {&#34;name&#34;: &#34;LineSprite&#34;, &#34;value&#34;: 1732},
                {&#34;name&#34;: &#34;RectSprite&#34;, &#34;value&#34;: 3623}
           ]
        },
        {
            &#34;name&#34;: &#34;flex&#34;,
            &#34;children&#34;: [
                {&#34;name&#34;: &#34;FlareVis&#34;, &#34;value&#34;: 4116}
            ]
        },
        {
           &#34;name&#34;: &#34;query&#34;,
           &#34;children&#34;: [
            {&#34;name&#34;: &#34;AggregateExpression&#34;, &#34;value&#34;: 1616},
            {&#34;name&#34;: &#34;And&#34;, &#34;value&#34;: 1027},
            {&#34;name&#34;: &#34;Arithmetic&#34;, &#34;value&#34;: 3891},
            {&#34;name&#34;: &#34;Average&#34;, &#34;value&#34;: 891},
            {&#34;name&#34;: &#34;BinaryExpression&#34;, &#34;value&#34;: 2893},
            {&#34;name&#34;: &#34;Comparison&#34;, &#34;value&#34;: 5103},
            {&#34;name&#34;: &#34;CompositeExpression&#34;, &#34;value&#34;: 3677},
            {&#34;name&#34;: &#34;Count&#34;, &#34;value&#34;: 781},
            {&#34;name&#34;: &#34;DateUtil&#34;, &#34;value&#34;: 4141},
            {&#34;name&#34;: &#34;Distinct&#34;, &#34;value&#34;: 933},
            {&#34;name&#34;: &#34;Expression&#34;, &#34;value&#34;: 5130},
            {&#34;name&#34;: &#34;ExpressionIterator&#34;, &#34;value&#34;: 3617},
            {&#34;name&#34;: &#34;Fn&#34;, &#34;value&#34;: 3240},
            {&#34;name&#34;: &#34;If&#34;, &#34;value&#34;: 2732},
            {&#34;name&#34;: &#34;IsA&#34;, &#34;value&#34;: 2039},
            {&#34;name&#34;: &#34;Literal&#34;, &#34;value&#34;: 1214},
            {&#34;name&#34;: &#34;Match&#34;, &#34;value&#34;: 3748},
            {&#34;name&#34;: &#34;Maximum&#34;, &#34;value&#34;: 843},
            {
             &#34;name&#34;: &#34;methods&#34;,
             &#34;children&#34;: [
              {&#34;name&#34;: &#34;add&#34;, &#34;value&#34;: 593},
              {&#34;name&#34;: &#34;and&#34;, &#34;value&#34;: 330},
              {&#34;name&#34;: &#34;average&#34;, &#34;value&#34;: 287},
              {&#34;name&#34;: &#34;count&#34;, &#34;value&#34;: 277},
              {&#34;name&#34;: &#34;distinct&#34;, &#34;value&#34;: 292},
              {&#34;name&#34;: &#34;div&#34;, &#34;value&#34;: 595},
              {&#34;name&#34;: &#34;eq&#34;, &#34;value&#34;: 594},
              {&#34;name&#34;: &#34;fn&#34;, &#34;value&#34;: 460},
              {&#34;name&#34;: &#34;gt&#34;, &#34;value&#34;: 603},
              {&#34;name&#34;: &#34;gte&#34;, &#34;value&#34;: 625},
              {&#34;name&#34;: &#34;iff&#34;, &#34;value&#34;: 748},
              {&#34;name&#34;: &#34;isa&#34;, &#34;value&#34;: 461},
              {&#34;name&#34;: &#34;lt&#34;, &#34;value&#34;: 597},
              {&#34;name&#34;: &#34;lte&#34;, &#34;value&#34;: 619},
              {&#34;name&#34;: &#34;max&#34;, &#34;value&#34;: 283},
              {&#34;name&#34;: &#34;min&#34;, &#34;value&#34;: 283},
              {&#34;name&#34;: &#34;mod&#34;, &#34;value&#34;: 591},
              {&#34;name&#34;: &#34;mul&#34;, &#34;value&#34;: 603},
              {&#34;name&#34;: &#34;neq&#34;, &#34;value&#34;: 599},
              {&#34;name&#34;: &#34;not&#34;, &#34;value&#34;: 386},
              {&#34;name&#34;: &#34;or&#34;, &#34;value&#34;: 323},
              {&#34;name&#34;: &#34;orderby&#34;, &#34;value&#34;: 307},
              {&#34;name&#34;: &#34;range&#34;, &#34;value&#34;: 772},
              {&#34;name&#34;: &#34;select&#34;, &#34;value&#34;: 296},
              {&#34;name&#34;: &#34;stddev&#34;, &#34;value&#34;: 363},
              {&#34;name&#34;: &#34;sub&#34;, &#34;value&#34;: 600},
              {&#34;name&#34;: &#34;sum&#34;, &#34;value&#34;: 280},
              {&#34;name&#34;: &#34;update&#34;, &#34;value&#34;: 307},
              {&#34;name&#34;: &#34;variance&#34;, &#34;value&#34;: 335},
              {&#34;name&#34;: &#34;where&#34;, &#34;value&#34;: 299},
              {&#34;name&#34;: &#34;xor&#34;, &#34;value&#34;: 354},
              {&#34;name&#34;: &#34;_&#34;, &#34;value&#34;: 264}
             ]
            },
            {&#34;name&#34;: &#34;Minimum&#34;, &#34;value&#34;: 843},
            {&#34;name&#34;: &#34;Not&#34;, &#34;value&#34;: 1554},
            {&#34;name&#34;: &#34;Or&#34;, &#34;value&#34;: 970},
            {&#34;name&#34;: &#34;Query&#34;, &#34;value&#34;: 13896},
            {&#34;name&#34;: &#34;Range&#34;, &#34;value&#34;: 1594},
            {&#34;name&#34;: &#34;StringUtil&#34;, &#34;value&#34;: 4130},
            {&#34;name&#34;: &#34;Sum&#34;, &#34;value&#34;: 791},
            {&#34;name&#34;: &#34;Variable&#34;, &#34;value&#34;: 1124},
            {&#34;name&#34;: &#34;Variance&#34;, &#34;value&#34;: 1876},
            {&#34;name&#34;: &#34;Xor&#34;, &#34;value&#34;: 1101}
           ]
          },
        {
           &#34;name&#34;: &#34;scale&#34;,
           &#34;children&#34;: [
            {&#34;name&#34;: &#34;IScaleMap&#34;, &#34;value&#34;: 2105},
            {&#34;name&#34;: &#34;LinearScale&#34;, &#34;value&#34;: 1316},
            {&#34;name&#34;: &#34;LogScale&#34;, &#34;value&#34;: 3151},
            {&#34;name&#34;: &#34;OrdinalScale&#34;, &#34;value&#34;: 3770},
            {&#34;name&#34;: &#34;QuantileScale&#34;, &#34;value&#34;: 2435},
            {&#34;name&#34;: &#34;QuantitativeScale&#34;, &#34;value&#34;: 4839},
            {&#34;name&#34;: &#34;RootScale&#34;, &#34;value&#34;: 1756},
            {&#34;name&#34;: &#34;Scale&#34;, &#34;value&#34;: 4268},
            {&#34;name&#34;: &#34;ScaleType&#34;, &#34;value&#34;: 1821},
            {&#34;name&#34;: &#34;TimeScale&#34;, &#34;value&#34;: 5833}
           ]
        }
    ]
};

var data2 = {
    &#34;name&#34;: &#34;flare&#34;,
    &#34;children&#34;: [
        {
            &#34;name&#34;: &#34;flex&#34;,
            &#34;children&#34;: [
                {&#34;name&#34;: &#34;FlareVis&#34;, &#34;value&#34;: 4116}
            ]
        },
        {
            &#34;name&#34;: &#34;scale&#34;,
            &#34;children&#34;: [
                {&#34;name&#34;: &#34;IScaleMap&#34;, &#34;value&#34;: 2105},
                {&#34;name&#34;: &#34;LinearScale&#34;, &#34;value&#34;: 1316},
                {&#34;name&#34;: &#34;LogScale&#34;, &#34;value&#34;: 3151},
                {&#34;name&#34;: &#34;OrdinalScale&#34;, &#34;value&#34;: 3770},
                {&#34;name&#34;: &#34;QuantileScale&#34;, &#34;value&#34;: 2435},
                {&#34;name&#34;: &#34;QuantitativeScale&#34;, &#34;value&#34;: 4839},
                {&#34;name&#34;: &#34;RootScale&#34;, &#34;value&#34;: 1756},
                {&#34;name&#34;: &#34;Scale&#34;, &#34;value&#34;: 4268},
                {&#34;name&#34;: &#34;ScaleType&#34;, &#34;value&#34;: 1821},
                {&#34;name&#34;: &#34;TimeScale&#34;, &#34;value&#34;: 5833}
           ]
        },
        {
            &#34;name&#34;: &#34;display&#34;,
            &#34;children&#34;: [
                {&#34;name&#34;: &#34;DirtySprite&#34;, &#34;value&#34;: 8833}
           ]
        }
    ]
};
&lt;/script&gt;
&lt;div id=&#34;echarts8941&#34; style=&#34;width: 85%;height: 400px;margin: 0 auto&#34;&gt;&lt;/div&gt;
&lt;script type=&#34;text/javascript&#34;&gt;
        // 基于准备好的dom，初始化echarts实例
        var myChart = echarts.init(document.getElementById(&#39;echarts8941&#39;));

        // 指定图表的配置项和数据
        var option = option = {
    tooltip: {
        trigger: &#39;item&#39;,
        triggerOn: &#39;mousemove&#39;
    },
    legend: {
        top: &#39;2%&#39;,
        left: &#39;3%&#39;,
        orient: &#39;vertical&#39;,
        data: [{
            name: &#39;tree1&#39;,
            icon: &#39;rectangle&#39;
        },
        {
            name: &#39;tree2&#39;,
            icon: &#39;rectangle&#39;
        }],
        borderColor: &#39;#c23531&#39;
    },
    series:[
        {
            type: &#39;tree&#39;,

            name: &#39;tree1&#39;,
    
            data: [data],
    
            top: &#39;5%&#39;,
            left: &#39;7%&#39;,
            bottom: &#39;2%&#39;,
            right: &#39;60%&#39;,
    
            symbolSize: 7,
    
            label: {
                position: &#39;left&#39;,
                verticalAlign: &#39;middle&#39;,
                align: &#39;right&#39;
            },
    
            leaves: {
                label: {
                    position: &#39;right&#39;,
                    verticalAlign: &#39;middle&#39;,
                    align: &#39;left&#39;
                }
            },
    
            expandAndCollapse: true,
    
            animationDuration: 550,
            animationDurationUpdate: 750
    
        },
        {
            type: &#39;tree&#39;,
            name: &#39;tree2&#39;,
            data: [data2],
    
            top: &#39;20%&#39;,
            left: &#39;60%&#39;,
            bottom: &#39;22%&#39;,
            right: &#39;18%&#39;,
    
            symbolSize: 7,
    
            label: {
                position: &#39;left&#39;,
                verticalAlign: &#39;middle&#39;,
                align: &#39;right&#39;
            },
    
            leaves: {
                label: {
                    position: &#39;right&#39;,
                    verticalAlign: &#39;middle&#39;,
                    align: &#39;left&#39;
                }
            },
    
            expandAndCollapse: true,
    
            animationDuration: 550,
            animationDurationUpdate: 750
        }
    ]
}

        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
&lt;/script&gt;
&lt;h3 id=&#34;日历坐标系Calendar&#34;&gt;日历坐标系Calendar&lt;/h3&gt;
&lt;h4 id=&#34;Calendar-Heatmap-Horizontal&#34;&gt;&lt;a href=&#34;https://echarts.apache.org/examples/zh/editor.html?c=calendar-horizontal&#34;&gt;Calendar Heatmap Horizontal&lt;/a&gt;&lt;/h4&gt;
&lt;script&gt;
function getVirtulData(year) {
    year = year || &#39;2017&#39;;
    var date = +echarts.number.parseDate(year + &#39;-01-01&#39;);
    var end = +echarts.number.parseDate((+year + 1) + &#39;-01-01&#39;);
    var dayTime = 3600 * 24 * 1000;
    var data = [];
    for (var time = date; time &lt; end; time += dayTime) {
        data.push([
            echarts.format.formatTime(&#39;yyyy-MM-dd&#39;, time),
            Math.floor(Math.random() * 1000)
        ]);
    }
    return data;
}
&lt;/script&gt;
&lt;div id=&#34;echarts6335&#34; style=&#34;width: 85%;height: 400px;margin: 0 auto&#34;&gt;&lt;/div&gt;
&lt;script type=&#34;text/javascript&#34;&gt;
        // 基于准备好的dom，初始化echarts实例
        var myChart = echarts.init(document.getElementById(&#39;echarts6335&#39;));

        // 指定图表的配置项和数据
        var option = option = {
    tooltip: {
        position: &#39;top&#39;
    },
    visualMap: {
        min: 0,
        max: 1000,
        calculable: true,
        orient: &#39;horizontal&#39;,
        left: &#39;center&#39;,
        top: &#39;top&#39;
    },

    calendar: [{
        range: &#39;2020&#39;,
        cellSize: [&#39;auto&#39;, 15]
    },
    {
        top: 260,
        range: &#39;2019&#39;,
        cellSize: [&#39;auto&#39;, 15]
    }],
    
    series: [{
        type: &#39;heatmap&#39;,
        coordinateSystem: &#39;calendar&#39;,
        calendarIndex: 0,
        data: getVirtulData(2020)
    }, {
        type: &#39;heatmap&#39;,
        coordinateSystem: &#39;calendar&#39;,
        calendarIndex: 1,
        data: getVirtulData(2019)
    }]
};

        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
&lt;/script&gt;
&lt;h3 id=&#34;3D&#34;&gt;3D&lt;/h3&gt;
&lt;h4 id=&#34;Bar3D-Simplex-Noise&#34;&gt;&lt;a href=&#34;https://echarts.apache.org/examples/zh/editor.html?c=bar3d-simplex-noise&amp;amp;gl=1&amp;amp;theme=dark&#34;&gt;Bar3D - Simplex Noise&lt;/a&gt;&lt;/h4&gt;
&lt;iframe src=&#34;/html-file/echarts/bar-3D-simplex-noise/&#34; width=&#34;100%&#34; height=&#34;600&#34; name=&#34;topFrame&#34; scrolling=&#34;yes&#34; noresize=&#34;noresize&#34; frameborder=&#34;0&#34; id=&#34;topFrame&#34; loading=&#34;lazy&#34;&gt;&lt;/iframe&gt;
&lt;p&gt;可进入&lt;a href=&#34;/html-file/echarts/bar-3D-simplex-noise/&#34;&gt;页面查看&lt;/a&gt;&lt;/p&gt;
&lt;h4 id=&#34;Surface-Wave&#34;&gt;&lt;a href=&#34;https://echarts.apache.org/examples/zh/editor.html?c=surface-wave&amp;amp;gl=1&#34;&gt;Surface Wave&lt;/a&gt;&lt;/h4&gt;
&lt;div id=&#34;echarts5261&#34; style=&#34;width: 85%;height: 400px;margin: 0 auto&#34;&gt;&lt;/div&gt;
&lt;script type=&#34;text/javascript&#34;&gt;
        // 基于准备好的dom，初始化echarts实例
        var myChart = echarts.init(document.getElementById(&#39;echarts5261&#39;));

        // 指定图表的配置项和数据
        var option = option = {
    tooltip: {},
    backgroundColor: &#39;#fff&#39;,
    visualMap: {
        show: false,
        dimension: 2,
        min: -1,
        max: 1,
        inRange: {
            color: [&#39;#313695&#39;, &#39;#4575b4&#39;, &#39;#74add1&#39;, &#39;#abd9e9&#39;, &#39;#e0f3f8&#39;, &#39;#ffffbf&#39;, &#39;#fee090&#39;, &#39;#fdae61&#39;, &#39;#f46d43&#39;, &#39;#d73027&#39;, &#39;#a50026&#39;]
        }
    },
    xAxis3D: {
        type: &#39;value&#39;
    },
    yAxis3D: {
        type: &#39;value&#39;
    },
    zAxis3D: {
        type: &#39;value&#39;,
        max: 1,
        splitNumber: 2
    },
    grid3D: {
        viewControl: {
            // projection: &#39;orthographic&#39;
        },
        boxHeight: 40
    },
    series: [{
        type: &#39;surface&#39;,
        wireframe: {
            show: false
        },
        shading: &#39;color&#39;,
        equation: {
            x: {
                step: 0.05,
                min: -3,
                max: 3,
            },
            y: {
                step: 0.05,
                min: -3,
                max: 3,
            },
            z: function (x, y) {
                return Math.sin(x * x + y * y) * x / 3.14
            }
        }
    }]
}

        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
&lt;/script&gt;
&lt;h2 id=&#34;pyecharts&#34;&gt;pyecharts&lt;/h2&gt;

    &lt;span id=&#34;mjx-d6c2954&#34;&gt;
      &lt;style&gt;
      #mjx-d6c2954{
        display:contents;
        mjx-assistive-mml {
          user-select: text !important;
          clip: auto !important;
          color: rgba(0,0,0,0);
        }
        
mjx-container[jax=&#34;SVG&#34;] {
  direction: ltr;
}

mjx-container[jax=&#34;SVG&#34;] &gt; svg {
  overflow: visible;
  min-height: 1px;
  min-width: 1px;
}

mjx-container[jax=&#34;SVG&#34;] &gt; svg a {
  fill: blue;
  stroke: blue;
}

mjx-assistive-mml {
  position: absolute !important;
  top: 0px;
  left: 0px;
  clip: rect(1px, 1px, 1px, 1px);
  padding: 1px 0px 0px 0px !important;
  border: 0px !important;
  display: block !important;
  width: auto !important;
  overflow: hidden !important;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

mjx-assistive-mml[display=&#34;block&#34;] {
  width: 100% !important;
}

mjx-container[jax=&#34;SVG&#34;][display=&#34;true&#34;] {
  display: block;
  text-align: center;
  margin: 1em 0;
}

mjx-container[jax=&#34;SVG&#34;][display=&#34;true&#34;][width=&#34;full&#34;] {
  display: flex;
}

mjx-container[jax=&#34;SVG&#34;][justify=&#34;left&#34;] {
  text-align: left;
}

mjx-container[jax=&#34;SVG&#34;][justify=&#34;right&#34;] {
  text-align: right;
}

g[data-mml-node=&#34;merror&#34;] &gt; g {
  fill: red;
  stroke: red;
}

g[data-mml-node=&#34;merror&#34;] &gt; rect[data-background] {
  fill: yellow;
  stroke: none;
}

g[data-mml-node=&#34;mtable&#34;] &gt; line[data-line], svg[data-table] &gt; g &gt; line[data-line] {
  stroke-width: 70px;
  fill: none;
}

g[data-mml-node=&#34;mtable&#34;] &gt; rect[data-frame], svg[data-table] &gt; g &gt; rect[data-frame] {
  stroke-width: 70px;
  fill: none;
}

g[data-mml-node=&#34;mtable&#34;] &gt; .mjx-dashed, svg[data-table] &gt; g &gt; .mjx-dashed {
  stroke-dasharray: 140;
}

g[data-mml-node=&#34;mtable&#34;] &gt; .mjx-dotted, svg[data-table] &gt; g &gt; .mjx-dotted {
  stroke-linecap: round;
  stroke-dasharray: 0,140;
}

g[data-mml-node=&#34;mtable&#34;] &gt; g &gt; svg {
  overflow: visible;
}

[jax=&#34;SVG&#34;] mjx-tool {
  display: inline-block;
  position: relative;
  width: 0;
  height: 0;
}

[jax=&#34;SVG&#34;] mjx-tool &gt; mjx-tip {
  position: absolute;
  top: 0;
  left: 0;
}

mjx-tool &gt; mjx-tip {
  display: inline-block;
  padding: .2em;
  border: 1px solid #888;
  font-size: 70%;
  background-color: #F8F8F8;
  color: black;
  box-shadow: 2px 2px 5px #AAAAAA;
}

g[data-mml-node=&#34;maction&#34;][data-toggle] {
  cursor: pointer;
}

mjx-status {
  display: block;
  position: fixed;
  left: 1em;
  bottom: 1em;
  min-width: 25%;
  padding: .2em .4em;
  border: 1px solid #888;
  font-size: 90%;
  background-color: #F8F8F8;
  color: black;
}

foreignObject[data-mjx-xml] {
  font-family: initial;
  line-height: normal;
  overflow: visible;
}

mjx-container[jax=&#34;SVG&#34;] path[data-c], mjx-container[jax=&#34;SVG&#34;] use[data-c] {
  stroke-width: 3;
}

g[data-mml-node=&#34;xypic&#34;] path {
  stroke-width: inherit;
}

.MathJax g[data-mml-node=&#34;xypic&#34;] path {
  stroke-width: inherit;
}

      }
      &lt;/style&gt;
      &lt;mjx-container class=&#34;MathJax&#34; jax=&#34;SVG&#34; display=&#34;true&#34; style=&#34;position: relative;&#34;&gt;&lt;svg style=&#34;vertical-align: -0.462ex;&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;24.801ex&#34; height=&#34;2.032ex&#34; role=&#34;img&#34; focusable=&#34;false&#34; viewBox=&#34;0 -694 10962 898&#34; aria-hidden=&#34;true&#34;&gt;&lt;g stroke=&#34;currentColor&#34; fill=&#34;currentColor&#34; stroke-width=&#34;0&#34; transform=&#34;scale(1,-1)&#34;&gt;&lt;g data-mml-node=&#34;math&#34;&gt;&lt;g data-mml-node=&#34;mtext&#34;&gt;&lt;path data-c=&#34;70&#34; d=&#34;M36 -148H50Q89 -148 97 -134V-126Q97 -119 97 -107T97 -77T98 -38T98 6T98 55T98 106Q98 140 98 177T98 243T98 296T97 335T97 351Q94 370 83 376T38 385H20V408Q20 431 22 431L32 432Q42 433 61 434T98 436Q115 437 135 438T165 441T176 442H179V416L180 390L188 397Q247 441 326 441Q407 441 464 377T522 216Q522 115 457 52T310 -11Q242 -11 190 33L182 40V-45V-101Q182 -128 184 -134T195 -145Q216 -148 244 -148H260V-194H252L228 -193Q205 -192 178 -192T140 -191Q37 -191 28 -194H20V-148H36ZM424 218Q424 292 390 347T305 402Q234 402 182 337V98Q222 26 294 26Q345 26 384 80T424 218Z&#34;&gt;&lt;/path&gt;&lt;path data-c=&#34;79&#34; d=&#34;M69 -66Q91 -66 104 -80T118 -116Q118 -134 109 -145T91 -160Q84 -163 97 -166Q104 -168 111 -168Q131 -168 148 -159T175 -138T197 -106T213 -75T225 -43L242 0L170 183Q150 233 125 297Q101 358 96 368T80 381Q79 382 78 382Q66 385 34 385H19V431H26L46 430Q65 430 88 429T122 428Q129 428 142 428T171 429T200 430T224 430L233 431H241V385H232Q183 385 185 366L286 112Q286 113 332 227L376 341V350Q376 365 366 373T348 383T334 385H331V431H337H344Q351 431 361 431T382 430T405 429T422 429Q477 429 503 431H508V385H497Q441 380 422 345Q420 343 378 235T289 9T227 -131Q180 -204 113 -204Q69 -204 44 -177T19 -116Q19 -89 35 -78T69 -66Z&#34; transform=&#34;translate(556,0)&#34;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g data-mml-node=&#34;mo&#34; transform=&#34;translate(1306.2,0)&#34;&gt;&lt;path data-c=&#34;2B&#34; d=&#34;M56 237T56 250T70 270H369V420L370 570Q380 583 389 583Q402 583 409 568V270H707Q722 262 722 250T707 230H409V-68Q401 -82 391 -82H389H387Q375 -82 369 -68V230H70Q56 237 56 250Z&#34;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g data-mml-node=&#34;mtext&#34; transform=&#34;translate(2306.4,0)&#34;&gt;&lt;path data-c=&#34;65&#34; d=&#34;M28 218Q28 273 48 318T98 391T163 433T229 448Q282 448 320 430T378 380T406 316T415 245Q415 238 408 231H126V216Q126 68 226 36Q246 30 270 30Q312 30 342 62Q359 79 369 104L379 128Q382 131 395 131H398Q415 131 415 121Q415 117 412 108Q393 53 349 21T250 -11Q155 -11 92 58T28 218ZM333 275Q322 403 238 411H236Q228 411 220 410T195 402T166 381T143 340T127 274V267H333V275Z&#34;&gt;&lt;/path&gt;&lt;path data-c=&#34;63&#34; d=&#34;M370 305T349 305T313 320T297 358Q297 381 312 396Q317 401 317 402T307 404Q281 408 258 408Q209 408 178 376Q131 329 131 219Q131 137 162 90Q203 29 272 29Q313 29 338 55T374 117Q376 125 379 127T395 129H409Q415 123 415 120Q415 116 411 104T395 71T366 33T318 2T249 -11Q163 -11 99 53T34 214Q34 318 99 383T250 448T370 421T404 357Q404 334 387 320Z&#34; transform=&#34;translate(444,0)&#34;&gt;&lt;/path&gt;&lt;path data-c=&#34;68&#34; d=&#34;M41 46H55Q94 46 102 60V68Q102 77 102 91T102 124T102 167T103 217T103 272T103 329Q103 366 103 407T103 482T102 542T102 586T102 603Q99 622 88 628T43 637H25V660Q25 683 27 683L37 684Q47 685 66 686T103 688Q120 689 140 690T170 693T181 694H184V367Q244 442 328 442Q451 442 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z&#34; transform=&#34;translate(888,0)&#34;&gt;&lt;/path&gt;&lt;path data-c=&#34;61&#34; d=&#34;M137 305T115 305T78 320T63 359Q63 394 97 421T218 448Q291 448 336 416T396 340Q401 326 401 309T402 194V124Q402 76 407 58T428 40Q443 40 448 56T453 109V145H493V106Q492 66 490 59Q481 29 455 12T400 -6T353 12T329 54V58L327 55Q325 52 322 49T314 40T302 29T287 17T269 6T247 -2T221 -8T190 -11Q130 -11 82 20T34 107Q34 128 41 147T68 188T116 225T194 253T304 268H318V290Q318 324 312 340Q290 411 215 411Q197 411 181 410T156 406T148 403Q170 388 170 359Q170 334 154 320ZM126 106Q126 75 150 51T209 26Q247 26 276 49T315 109Q317 116 318 175Q318 233 317 233Q309 233 296 232T251 223T193 203T147 166T126 106Z&#34; transform=&#34;translate(1444,0)&#34;&gt;&lt;/path&gt;&lt;path data-c=&#34;72&#34; d=&#34;M36 46H50Q89 46 97 60V68Q97 77 97 91T98 122T98 161T98 203Q98 234 98 269T98 328L97 351Q94 370 83 376T38 385H20V408Q20 431 22 431L32 432Q42 433 60 434T96 436Q112 437 131 438T160 441T171 442H174V373Q213 441 271 441H277Q322 441 343 419T364 373Q364 352 351 337T313 322Q288 322 276 338T263 372Q263 381 265 388T270 400T273 405Q271 407 250 401Q234 393 226 386Q179 341 179 207V154Q179 141 179 127T179 101T180 81T180 66V61Q181 59 183 57T188 54T193 51T200 49T207 48T216 47T225 47T235 46T245 46H276V0H267Q249 3 140 3Q37 3 28 0H20V46H36Z&#34; transform=&#34;translate(1944,0)&#34;&gt;&lt;/path&gt;&lt;path data-c=&#34;74&#34; d=&#34;M27 422Q80 426 109 478T141 600V615H181V431H316V385H181V241Q182 116 182 100T189 68Q203 29 238 29Q282 29 292 100Q293 108 293 146V181H333V146V134Q333 57 291 17Q264 -10 221 -10Q187 -10 162 2T124 33T105 68T98 100Q97 107 97 248V385H18V422H27Z&#34; transform=&#34;translate(2336,0)&#34;&gt;&lt;/path&gt;&lt;path data-c=&#34;73&#34; d=&#34;M295 316Q295 356 268 385T190 414Q154 414 128 401Q98 382 98 349Q97 344 98 336T114 312T157 287Q175 282 201 278T245 269T277 256Q294 248 310 236T342 195T359 133Q359 71 321 31T198 -10H190Q138 -10 94 26L86 19L77 10Q71 4 65 -1L54 -11H46H42Q39 -11 33 -5V74V132Q33 153 35 157T45 162H54Q66 162 70 158T75 146T82 119T101 77Q136 26 198 26Q295 26 295 104Q295 133 277 151Q257 175 194 187T111 210Q75 227 54 256T33 318Q33 357 50 384T93 424T143 442T187 447H198Q238 447 268 432L283 424L292 431Q302 440 314 448H322H326Q329 448 335 442V310L329 304H301Q295 310 295 316Z&#34; transform=&#34;translate(2725,0)&#34;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g data-mml-node=&#34;mo&#34; transform=&#34;translate(5703.2,0)&#34;&gt;&lt;path data-c=&#34;3D&#34; d=&#34;M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z&#34;&gt;&lt;/path&gt;&lt;/g&gt;&lt;g data-mml-node=&#34;mtext&#34; transform=&#34;translate(6759,0)&#34;&gt;&lt;path data-c=&#34;70&#34; d=&#34;M36 -148H50Q89 -148 97 -134V-126Q97 -119 97 -107T97 -77T98 -38T98 6T98 55T98 106Q98 140 98 177T98 243T98 296T97 335T97 351Q94 370 83 376T38 385H20V408Q20 431 22 431L32 432Q42 433 61 434T98 436Q115 437 135 438T165 441T176 442H179V416L180 390L188 397Q247 441 326 441Q407 441 464 377T522 216Q522 115 457 52T310 -11Q242 -11 190 33L182 40V-45V-101Q182 -128 184 -134T195 -145Q216 -148 244 -148H260V-194H252L228 -193Q205 -192 178 -192T140 -191Q37 -191 28 -194H20V-148H36ZM424 218Q424 292 390 347T305 402Q234 402 182 337V98Q222 26 294 26Q345 26 384 80T424 218Z&#34;&gt;&lt;/path&gt;&lt;path data-c=&#34;79&#34; d=&#34;M69 -66Q91 -66 104 -80T118 -116Q118 -134 109 -145T91 -160Q84 -163 97 -166Q104 -168 111 -168Q131 -168 148 -159T175 -138T197 -106T213 -75T225 -43L242 0L170 183Q150 233 125 297Q101 358 96 368T80 381Q79 382 78 382Q66 385 34 385H19V431H26L46 430Q65 430 88 429T122 428Q129 428 142 428T171 429T200 430T224 430L233 431H241V385H232Q183 385 185 366L286 112Q286 113 332 227L376 341V350Q376 365 366 373T348 383T334 385H331V431H337H344Q351 431 361 431T382 430T405 429T422 429Q477 429 503 431H508V385H497Q441 380 422 345Q420 343 378 235T289 9T227 -131Q180 -204 113 -204Q69 -204 44 -177T19 -116Q19 -89 35 -78T69 -66Z&#34; transform=&#34;translate(556,0)&#34;&gt;&lt;/path&gt;&lt;path data-c=&#34;65&#34; d=&#34;M28 218Q28 273 48 318T98 391T163 433T229 448Q282 448 320 430T378 380T406 316T415 245Q415 238 408 231H126V216Q126 68 226 36Q246 30 270 30Q312 30 342 62Q359 79 369 104L379 128Q382 131 395 131H398Q415 131 415 121Q415 117 412 108Q393 53 349 21T250 -11Q155 -11 92 58T28 218ZM333 275Q322 403 238 411H236Q228 411 220 410T195 402T166 381T143 340T127 274V267H333V275Z&#34; transform=&#34;translate(1084,0)&#34;&gt;&lt;/path&gt;&lt;path data-c=&#34;63&#34; d=&#34;M370 305T349 305T313 320T297 358Q297 381 312 396Q317 401 317 402T307 404Q281 408 258 408Q209 408 178 376Q131 329 131 219Q131 137 162 90Q203 29 272 29Q313 29 338 55T374 117Q376 125 379 127T395 129H409Q415 123 415 120Q415 116 411 104T395 71T366 33T318 2T249 -11Q163 -11 99 53T34 214Q34 318 99 383T250 448T370 421T404 357Q404 334 387 320Z&#34; transform=&#34;translate(1528,0)&#34;&gt;&lt;/path&gt;&lt;path data-c=&#34;68&#34; d=&#34;M41 46H55Q94 46 102 60V68Q102 77 102 91T102 124T102 167T103 217T103 272T103 329Q103 366 103 407T103 482T102 542T102 586T102 603Q99 622 88 628T43 637H25V660Q25 683 27 683L37 684Q47 685 66 686T103 688Q120 689 140 690T170 693T181 694H184V367Q244 442 328 442Q451 442 463 329Q464 322 464 190V104Q464 66 466 59T477 49Q498 46 526 46H542V0H534L510 1Q487 2 460 2T422 3Q319 3 310 0H302V46H318Q379 46 379 62Q380 64 380 200Q379 335 378 343Q372 371 358 385T334 402T308 404Q263 404 229 370Q202 343 195 315T187 232V168V108Q187 78 188 68T191 55T200 49Q221 46 249 46H265V0H257L234 1Q210 2 183 2T145 3Q42 3 33 0H25V46H41Z&#34; transform=&#34;translate(1972,0)&#34;&gt;&lt;/path&gt;&lt;path data-c=&#34;61&#34; d=&#34;M137 305T115 305T78 320T63 359Q63 394 97 421T218 448Q291 448 336 416T396 340Q401 326 401 309T402 194V124Q402 76 407 58T428 40Q443 40 448 56T453 109V145H493V106Q492 66 490 59Q481 29 455 12T400 -6T353 12T329 54V58L327 55Q325 52 322 49T314 40T302 29T287 17T269 6T247 -2T221 -8T190 -11Q130 -11 82 20T34 107Q34 128 41 147T68 188T116 225T194 253T304 268H318V290Q318 324 312 340Q290 411 215 411Q197 411 181 410T156 406T148 403Q170 388 170 359Q170 334 154 320ZM126 106Q126 75 150 51T209 26Q247 26 276 49T315 109Q317 116 318 175Q318 233 317 233Q309 233 296 232T251 223T193 203T147 166T126 106Z&#34; transform=&#34;translate(2528,0)&#34;&gt;&lt;/path&gt;&lt;path data-c=&#34;72&#34; d=&#34;M36 46H50Q89 46 97 60V68Q97 77 97 91T98 122T98 161T98 203Q98 234 98 269T98 328L97 351Q94 370 83 376T38 385H20V408Q20 431 22 431L32 432Q42 433 60 434T96 436Q112 437 131 438T160 441T171 442H174V373Q213 441 271 441H277Q322 441 343 419T364 373Q364 352 351 337T313 322Q288 322 276 338T263 372Q263 381 265 388T270 400T273 405Q271 407 250 401Q234 393 226 386Q179 341 179 207V154Q179 141 179 127T179 101T180 81T180 66V61Q181 59 183 57T188 54T193 51T200 49T207 48T216 47T225 47T235 46T245 46H276V0H267Q249 3 140 3Q37 3 28 0H20V46H36Z&#34; transform=&#34;translate(3028,0)&#34;&gt;&lt;/path&gt;&lt;path data-c=&#34;74&#34; d=&#34;M27 422Q80 426 109 478T141 600V615H181V431H316V385H181V241Q182 116 182 100T189 68Q203 29 238 29Q282 29 292 100Q293 108 293 146V181H333V146V134Q333 57 291 17Q264 -10 221 -10Q187 -10 162 2T124 33T105 68T98 100Q97 107 97 248V385H18V422H27Z&#34; transform=&#34;translate(3420,0)&#34;&gt;&lt;/path&gt;&lt;path data-c=&#34;73&#34; d=&#34;M295 316Q295 356 268 385T190 414Q154 414 128 401Q98 382 98 349Q97 344 98 336T114 312T157 287Q175 282 201 278T245 269T277 256Q294 248 310 236T342 195T359 133Q359 71 321 31T198 -10H190Q138 -10 94 26L86 19L77 10Q71 4 65 -1L54 -11H46H42Q39 -11 33 -5V74V132Q33 153 35 157T45 162H54Q66 162 70 158T75 146T82 119T101 77Q136 26 198 26Q295 26 295 104Q295 133 277 151Q257 175 194 187T111 210Q75 227 54 256T33 318Q33 357 50 384T93 424T143 442T187 447H198Q238 447 268 432L283 424L292 431Q302 440 314 448H322H326Q329 448 335 442V310L329 304H301Q295 310 295 316Z&#34; transform=&#34;translate(3809,0)&#34;&gt;&lt;/path&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;&lt;mjx-assistive-mml unselectable=&#34;on&#34; display=&#34;block&#34;&gt;&lt;math xmlns=&#34;http://www.w3.org/1998/Math/MathML&#34; display=&#34;block&#34;&gt;&lt;mtext&gt;py&lt;/mtext&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;mtext&gt;echarts&lt;/mtext&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mtext&gt;pyecharts&lt;/mtext&gt;&lt;/math&gt;&lt;/mjx-assistive-mml&gt;&lt;/mjx-container&gt;
    &lt;/span&gt;
  &lt;h3 id=&#34;是什么&#34;&gt;是什么&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Echarts 是一个由百度开源的数据可视化，凭借着良好的交互性，精巧的图表设计，得到了众多开发者的认可。而 Python 是一门富有表达力的语言，很适合用于数据处理。当数据分析遇上数据可视化时，pyecharts 诞生了。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;怎么用–py或jupyter&#34;&gt;怎么用–py或jupyter&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;pip 安装&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-bash&#34; data-language=&#34;bash&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;$ pip install pyecharts -U&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;生成 HTML&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-python&#34; data-language=&#34;python&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-python&#34;&gt;from pyecharts.charts import Bar
from pyecharts import options as opts

# V1 版本开始支持链式调用
bar &amp;#x3D; (
    Bar()
    .add_xaxis([&amp;quot;衬衫&amp;quot;, &amp;quot;毛衣&amp;quot;, &amp;quot;领带&amp;quot;, &amp;quot;裤子&amp;quot;, &amp;quot;风衣&amp;quot;, &amp;quot;高跟鞋&amp;quot;, &amp;quot;袜子&amp;quot;])
    .add_yaxis(&amp;quot;商家A&amp;quot;, [114, 55, 27, 101, 125, 27, 105])
    .add_yaxis(&amp;quot;商家B&amp;quot;, [57, 134, 137, 129, 145, 60, 49])
    .set_global_opts(title_opts&amp;#x3D;opts.TitleOpts(title&amp;#x3D;&amp;quot;某商场销售情况&amp;quot;))
)
bar.render()

# 不习惯链式调用的开发者依旧可以单独调用方法
bar &amp;#x3D; Bar()
bar.add_xaxis([&amp;quot;衬衫&amp;quot;, &amp;quot;毛衣&amp;quot;, &amp;quot;领带&amp;quot;, &amp;quot;裤子&amp;quot;, &amp;quot;风衣&amp;quot;, &amp;quot;高跟鞋&amp;quot;, &amp;quot;袜子&amp;quot;])
bar.add_yaxis(&amp;quot;商家A&amp;quot;, [114, 55, 27, 101, 125, 27, 105])
bar.add_yaxis(&amp;quot;商家B&amp;quot;, [57, 134, 137, 129, 145, 60, 49])
bar.set_global_opts(title_opts&amp;#x3D;opts.TitleOpts(title&amp;#x3D;&amp;quot;某商场销售情况&amp;quot;))
bar.render()&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Demo&lt;/strong&gt;：&lt;a href=&#34;https://github.com/pyecharts/pyecharts-gallery&#34;&gt;pyecharts 画廊&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/pyecharts/pyecharts&#34;&gt;pyecharts仓库&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;参考&#34;&gt;参考&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://kchen.cc/2016/11/05/echarts-in-hexo/&#34;&gt;在 Hexo 中插入 ECharts 动态图表&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://echarts.apache.org/examples/zh/index.html&#34;&gt;echarts examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://echarts.apache.org/zh/index.html&#34;&gt;echarts 官网&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://pxxyyz.com/posts/15698/&#34;&gt;Fluid+ECharts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;系列教程&#34;&gt;&lt;strong&gt;系列教程&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;全部文章RSS订阅&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&#34;Hexo系列&#34;&gt;&lt;strong&gt;Hexo系列&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;/categories/hexo/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;&lt;strong&gt;HexoRSS分类订阅&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[十万字图文教程]基于Hexo的matery主题搭建博客并深度优化完全一站式教程&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/40300608/&#34;&gt;Hexo Docker环境与Hexo基础配置篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/4d8a0b22/&#34;&gt;hexo博客自定义修改篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/9b056c86/&#34;&gt;hexo博客网络优化篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/5311b619/&#34;&gt;hexo博客增强部署篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/4a2050e2/&#34;&gt;hexo博客个性定制篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/84b4059a/&#34;&gt;hexo博客常见问题篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/253706ff/&#34;&gt;hexo博客博文撰写篇之完美笔记大攻略终极完全版&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/cf0f47fd/&#34;&gt;Hexo Markdown以及各种插件功能测试&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;markdown 各种其它语法插件，latex公式支持，mermaid图表，plant uml图表，URL卡片，bilibili卡片，github卡片，豆瓣卡片，插入音乐和视频，插入脑图，插入PDF，嵌入iframe&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/217ccdc1/&#34;&gt;在 Hexo 博客中插入 ECharts 动态图表&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/546887ac/&#34;&gt;使用nodeppt给hexo博客嵌入PPT演示&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/a3c81cc3/&#34;&gt;GithubProfile美化与自动获取RSS文章教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/e922fac8/&#34;&gt;Vercel部署高级用法教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/eb731135/&#34;&gt;webhook部署Hexo静态博客指南&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/8f9792ab/&#34;&gt;在宝塔VPS上面采用docker部署waline全流程图解教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/843eb2k9/&#34;&gt;自建Umami访问统计服务并统计静态博客UV/PV&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;link rel=&#34;stylesheet&#34; href=&#34;https://fastly.jsdelivr.net/npm/markmap-toolbar@0.18.10/dist/style.css&#34;&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/d3@7&#34;&gt;&lt;/script&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/markmap-view@0.18.10&#34;&gt;&lt;/script&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/markmap-toolbar@0.18.10&#34;&gt;&lt;/script&gt;
&lt;link rel=&#34;stylesheet&#34; href=&#34;/css/markmap.css&#34;&gt;

&lt;script src=&#34;/js/markmap.js&#34;&gt;&lt;/script&gt;
</content>
        <category term="hexo" />
        <category term="matery" />
        <category term="echarts" />
        <updated>2022-08-11T12:29:29.000Z</updated>
    </entry>
    <entry>
        <id>https://blog.17lai.site/posts/84b4059a/</id>
        <title>基于Hexo的matery主题搭建博客常见问题篇6</title>
        <link rel="alternate" href="https://blog.17lai.site/posts/84b4059a/"/>
        <content type="html">&lt;h3 id=&#34;Hexo系列&#34;&gt;&lt;strong&gt;Hexo系列&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;/categories/hexo/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;&lt;strong&gt;HexoRSS分类订阅&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[十万字图文教程]基于Hexo的matery主题搭建博客并深度优化完全一站式教程&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/40300608/&#34;&gt;Hexo Docker环境与Hexo基础配置篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/4d8a0b22/&#34;&gt;hexo博客自定义修改篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/9b056c86/&#34;&gt;hexo博客网络优化篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/5311b619/&#34;&gt;hexo博客增强部署篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/4a2050e2/&#34;&gt;hexo博客个性定制篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/84b4059a/&#34;&gt;hexo博客常见问题篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/253706ff/&#34;&gt;hexo博客博文撰写篇之完美笔记大攻略终极完全版&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/cf0f47fd/&#34;&gt;Hexo Markdown以及各种插件功能测试&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;markdown 各种其它语法插件，latex公式支持，mermaid图表，plant uml图表，URL卡片，bilibili卡片，github卡片，豆瓣卡片，插入音乐和视频，插入脑图，插入PDF，嵌入iframe&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/217ccdc1/&#34;&gt;在 Hexo 博客中插入 ECharts 动态图表&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/546887ac/&#34;&gt;使用nodeppt给hexo博客嵌入PPT演示&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/a3c81cc3/&#34;&gt;GithubProfile美化与自动获取RSS文章教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/e922fac8/&#34;&gt;Vercel部署高级用法教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/eb731135/&#34;&gt;webhook部署Hexo静态博客指南&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/8f9792ab/&#34;&gt;在宝塔VPS上面采用docker部署waline全流程图解教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/843eb2k9/&#34;&gt;自建Umami访问统计服务并统计静态博客UV/PV&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;独立博客相关组织&#34;&gt;独立博客相关组织&lt;/h2&gt;
&lt;p&gt;一些有趣的相关组织介绍。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;一个人码文太孤单，但是，别忘了，你还有这么多同路人！&lt;/p&gt;
&lt;p&gt;建立独立博客之后，可以试着加入一些博客联盟，相互学习，引流！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;BlogFinder&#34;&gt;&lt;a href=&#34;https://bf.zzxworld.com/&#34;&gt;BlogFinder&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;发现优秀的个人博客&lt;/p&gt;
&lt;h3 id=&#34;BlogWe&#34;&gt;&lt;a href=&#34;https://blogwe.com/&#34;&gt;BlogWe&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;致敬还在写博客的我们！&lt;/p&gt;
&lt;h3 id=&#34;笔墨迹&#34;&gt;&lt;a href=&#34;https://blogscn.fun/&#34;&gt;笔墨迹&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://blogscn.fun/random.html&#34;&gt;#&lt;/a&gt; 致敬还在写博客的我们&lt;/p&gt;
&lt;h3 id=&#34;博客录&#34;&gt;&lt;a href=&#34;https://boke.lu/&#34;&gt;博客录&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://bokelu.suijiboke.gs/&#34;&gt;#&lt;/a&gt; 博客收录展示平台&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.perass.com/&#34;&gt;&lt;strong&gt;博客之家&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;博客之家」—— 一个专注收录优质个人博客的导航网站。&lt;/p&gt;
&lt;p&gt;我们之所以做这件事，是因为相信个人博客是互联网世界里特别的存在。现在很多网站小编为了完成KPI，生产出大量“洗稿”或拼凑出来的内容。这些东西到底是在丰富互联网，还是在拉低整体内容质量？真的不好说。&lt;/p&gt;
&lt;p&gt;但个人博客不一样。没有业绩压力，没有流量绑架，博主写的都是自己真实的想法和见解。它像是互联网的一片自留地，安静、干净，也更有灵魂。&lt;/p&gt;
&lt;h3 id=&#34;博客圈&#34;&gt;&lt;a href=&#34;https://bokequan.cn/&#34;&gt;博客圈&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://bokequan.cn/cs&#34;&gt;#&lt;/a&gt; 致力于个人独立博客，按地区分类，由段先森维护&lt;/p&gt;
&lt;h3 id=&#34;博客志&#34;&gt;&lt;a href=&#34;http://www.jetli.com.cn/&#34;&gt;博客志&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;优秀个人独立博客导航&lt;/p&gt;
&lt;h3 id=&#34;博友圈&#34;&gt;&lt;a href=&#34;https://www.boyouquan.com/&#34;&gt;博友圈&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://www.boyouquan.com/planet-shuttle&#34;&gt;#&lt;/a&gt;  博客人的朋友圈&lt;/p&gt;
&lt;h3 id=&#34;川流&#34;&gt;&lt;a href=&#34;https://chuanliu.org/&#34;&gt;川流&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;川流，取川之意，流水之情&lt;/p&gt;
&lt;h3 id=&#34;个站商店&#34;&gt;&lt;a href=&#34;https://storeweb.cn/&#34;&gt;个站商店&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://storeweb.cn/s/2070&#34;&gt;#&lt;/a&gt; 一个精致的，带社交元素的个人网站发布平台，博客收录网站&lt;/p&gt;
&lt;h3 id=&#34;积薪&#34;&gt;&lt;a href=&#34;https://firewood.news/&#34;&gt;积薪&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;致敬那些还在写博客的人&lt;/p&gt;
&lt;h3 id=&#34;开往&#34;&gt;&lt;a href=&#34;https://www.travellings.cn/&#34;&gt;开往&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://www.travellings.cn/go.html&#34;&gt;#&lt;/a&gt; 让传统友链“活跃”，让网页相互接力，让流量相互流动，让网络开放起来&lt;/p&gt;
&lt;h3 id=&#34;未来信息&#34;&gt;&lt;a href=&#34;https://www.wlxxq.com/&#34;&gt;未来信息&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;希望在未来还能遇见你博客的信息&lt;/p&gt;
&lt;h3 id=&#34;十年之约&#34;&gt;&lt;a href=&#34;https://www.foreverblog.cn/&#34;&gt;十年之约&lt;/a&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;十年之约，即从加入这个活动起，我们的博客十年不关闭，保持更新和活力！&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.foreverblog.cn/treaty.html&#34;&gt;点击加入&lt;/a&gt;  &lt;a href=&#34;https://www.foreverblog.cn/blogs.html&#34;&gt;点击查看成员&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;中文博客列表导航项目&#34;&gt;&lt;a href=&#34;https://zhblogs.ohyee.cc/&#34;&gt;&lt;strong&gt;中文博客列表导航项目&lt;/strong&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;尝试链接几乎所有的中文博客&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://zhblogs.ohyee.cc/manager/join&#34;&gt;申请加入&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;中文独立博客列表&#34;&gt;&lt;a href=&#34;https://feeds.pub/cn-indie&#34;&gt;中文独立博客列表&lt;/a&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;一个自动合并&lt;code&gt;PR&lt;/code&gt;,&lt;code&gt;CVS&lt;/code&gt;管理博客列表的&lt;a href=&#34;https://github.com/zh-blogs&#34;&gt;Github项目&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;加入方法，点击 &lt;a href=&#34;https://github.com/timqian/chinese-independent-blogs/fork&#34;&gt;Fork chinese-independent-blogs&lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;在 &lt;a href=&#34;https://github.com/timqian/chinese-independent-blogs/blob/master/blogs-original.csv&#34;&gt;./blogs-original.csv&lt;/a&gt; 中填入博客的 名称、URL、RSS以及标签&lt;/li&gt;
&lt;li&gt;提交 PR&lt;/li&gt;
&lt;li&gt;(自动) PR 被 merge 之后 README 通过 &lt;a href=&#34;https://github.com/timqian/chinese-independent-blogs/blob/master/script.js&#34;&gt;./script.js&lt;/a&gt; 生成&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;中文独立博客文章聚合搜索&#34;&gt;&lt;a href=&#34;https://utopiablog.cn/&#34;&gt;中文独立博客文章聚合搜索&lt;/a&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;目标是做一个独立博客文章聚合搜索引擎&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;要不要加参考链接？&#34;&gt;要不要加参考链接？&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;要加！一定要加！&lt;/p&gt;
&lt;p&gt;本来就是白嫖了别人的成功，去掉署名声称是原创就要下做了。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;不加引用后果：&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;本来加个署名可以和原作者成为朋友，不加就弄成了仇人！&lt;/li&gt;
&lt;li&gt;别人不一定告你，告你，输是一定的。但违反人家发布协议，弄臭你很容易&lt;/li&gt;
&lt;li&gt;创作圈不大，很快大家都知道了&lt;/li&gt;
&lt;li&gt;文章人家原创，后续很可能还会更新、修改，留个链接好跟过去看看有没有更新&lt;/li&gt;
&lt;li&gt;等等其它&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;出错了，怎么办？&#34;&gt;出错了，怎么办？&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;首先，学会搜索，最好实用Google，准确率比X毒高几个数量级。你遇到过的问题，90%以上其他人也遇到过，网上能找到现成的解决方案。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;个人独立博客文章质量最高，&lt;a href=&#34;https://stackoverflow.com&#34;&gt;stackoverflow&lt;/a&gt;质量也很非常高，CSDN基本就是垃圾场，普通搜索文章能有50%准确率就非常不错了，独立博客和stackoverflow之类的80%以上的准确率！&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;如何调试博客&#34;&gt;如何调试博客&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;需要一定的web开发知识才能做。&lt;/p&gt;
&lt;p&gt;学会一些简单调试及基本html语言很容易，网上教程很多。&lt;/p&gt;
&lt;p&gt;按&lt;code&gt;F12&lt;/code&gt;进入调试模式，元素，网络，控制台，是常用的页面。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2023/03/14/20230314150208.webp&#34; alt=&#34;web debug&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2023/03/14/20230314150208-1.webp&#34; alt=&#34;如何网页调试&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;网站被克隆镜像了怎么办？&#34;&gt;网站被克隆镜像了怎么办？&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;在 analytic 后台（如umami）发现一些来源异常的域名，惊奇的发现你的网站被镜像了，下面是一些处理方法&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;JS-域名检测&#34;&gt;JS 域名检测&lt;/h3&gt;
&lt;p&gt;代码如下**（插入到页面 head 或 foot）**：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-javascript&#34; data-language=&#34;javascript&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-javascript&#34;&gt;&amp;lt;script&amp;gt;document.location.hostname!&amp;#x3D;&amp;#39;blog.17lai.site&amp;#39;&amp;amp;&amp;amp;(location.href&amp;#x3D;new URL(location.href).hostname&amp;#x3D;&amp;#39;blog.17lai.site&amp;#39;)&amp;lt;&amp;#x2F;script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;展开上面脚本&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-javascript&#34; data-language=&#34;javascript&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-javascript&#34;&gt;&amp;lt;script&amp;gt;
if (document.location.hostname !&amp;#x3D;&amp;#x3D; &amp;#39;blog.17lai.site&amp;#39;) &amp;#123;
  &amp;#x2F;&amp;#x2F; 获取当前页面的 URL 对象
  var url &amp;#x3D; new URL(document.location.href);
  
  &amp;#x2F;&amp;#x2F; 修改 hostname 为目标值
  url.hostname &amp;#x3D; &amp;#39;blog.17lai.site&amp;#39;;

  &amp;#x2F;&amp;#x2F; 跳转到修改后的 URL
  window.location.href &amp;#x3D; url.href;
&amp;#125;
&amp;lt;&amp;#x2F;script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;如果对方不讲武德的通过反代把文件内的域名全部替换为了他的域名，就出现了死循环。&lt;/p&gt;
&lt;p&gt;后来通过 String.fromCharCode 混淆的方式，把网址给混淆了，这样就防止了域名被修改。&lt;/p&gt;
&lt;p&gt;代码如下：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-javascript&#34; data-language=&#34;javascript&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-javascript&#34;&gt;&amp;lt;script&amp;gt;
if (document.location.hostname !&amp;#x3D;&amp;#x3D; decryptHostname()) &amp;#123;
  &amp;#x2F;&amp;#x2F; 获取当前页面的 URL 对象
  var url &amp;#x3D; new URL(document.location.href);
  
  &amp;#x2F;&amp;#x2F; 修改 hostname 为解密后的值
  url.hostname &amp;#x3D; decryptHostname();

  &amp;#x2F;&amp;#x2F; 跳转到修改后的 URL
  window.location.href &amp;#x3D; url.href;
&amp;#125;

function decryptHostname() &amp;#123;
  return String.fromCharCode(
    98, 108, 111, 103, 46, 49, 55, 108, 97, 105, 46, 115, 105, 116, 101
  ); &amp;#x2F;&amp;#x2F; 对应 &amp;#39;blog.17lai.site&amp;#39; 的 ASCII 码
&amp;#125;
&amp;lt;&amp;#x2F;script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;允许多个域名来源&#34;&gt;允许多个域名来源&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-javascript&#34; data-language=&#34;javascript&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-javascript&#34;&gt;&amp;lt;script&amp;gt;
(function() &amp;#123;
  var allowedHostnames &amp;#x3D; [
    &amp;#39;blog.17lai.site&amp;#39;,
    &amp;#39;example.com&amp;#39;,
    &amp;#39;another-allowed-site.com&amp;#39;
  ];

  var currentHostname &amp;#x3D; document.location.hostname;

  if (!isHostnameAllowed(currentHostname)) &amp;#123;
    &amp;#x2F;&amp;#x2F; 获取当前页面的 URL 对象
    var url &amp;#x3D; new URL(document.location.href);
    
    &amp;#x2F;&amp;#x2F; 修改 hostname 为允许的域名数组中的第一个
    url.hostname &amp;#x3D; allowedHostnames[0];

    &amp;#x2F;&amp;#x2F; 跳转到修改后的 URL
    window.location.href &amp;#x3D; url.href;
  &amp;#125;

  function isHostnameAllowed(hostname) &amp;#123;
    return allowedHostnames.includes(hostname);
  &amp;#125;
&amp;#125;)();
&amp;lt;&amp;#x2F;script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;使用 fromCharCode 来完善&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-javascript&#34; data-language=&#34;javascript&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-javascript&#34;&gt;&amp;lt;script&amp;gt;
(function() &amp;#123;
  var allowedHostnames &amp;#x3D; [
    decryptHostname([98, 108, 111, 103, 46, 49, 55, 108, 97, 105, 46, 115, 105, 116, 101]), &amp;#x2F;&amp;#x2F; &amp;#39;blog.17lai.site&amp;#39;
    decryptHostname([101, 120, 97, 109, 112, 108, 101, 46, 99, 111, 109]), &amp;#x2F;&amp;#x2F; &amp;#39;example.com&amp;#39;
    decryptHostname([97, 110, 111, 116, 104, 101, 114, 45, 97, 108, 108, 111, 119, 101, 100, 45, 115, 105, 116, 101, 46, 99, 111, 109]) &amp;#x2F;&amp;#x2F; &amp;#39;another-allowed-site.com&amp;#39;
  ];

  var currentHostname &amp;#x3D; document.location.hostname;

  if (!isHostnameAllowed(currentHostname)) &amp;#123;
    &amp;#x2F;&amp;#x2F; 获取当前页面的 URL 对象
    var url &amp;#x3D; new URL(document.location.href);
    
    &amp;#x2F;&amp;#x2F; 修改 hostname 为允许的域名数组中的第一个
    url.hostname &amp;#x3D; allowedHostnames[0];

    &amp;#x2F;&amp;#x2F; 跳转到修改后的 URL
    window.location.href &amp;#x3D; url.href;
  &amp;#125;

  function isHostnameAllowed(hostname) &amp;#123;
    return allowedHostnames.includes(hostname);
  &amp;#125;

  function decryptHostname(charCodes) &amp;#123;
    return String.fromCharCode.apply(null, charCodes);
  &amp;#125;
&amp;#125;)();
&amp;lt;&amp;#x2F;script&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h3 id=&#34;使用弹窗提示跳转&#34;&gt;使用弹窗提示跳转&lt;/h3&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-javascript&#34; data-language=&#34;javascript&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-javascript&#34;&gt;&amp;lt;script&amp;gt;
(function() &amp;#123;
  var allowedHostnames &amp;#x3D; [
    decryptHostname([98, 108, 111, 103, 46, 49, 55, 108, 97, 105, 46, 115, 105, 116, 101]), &amp;#x2F;&amp;#x2F; &amp;#39;blog.17lai.site&amp;#39;
    decryptHostname([101, 120, 97, 109, 112, 108, 101, 46, 99, 111, 109]), &amp;#x2F;&amp;#x2F; &amp;#39;example.com&amp;#39;
    decryptHostname([97, 110, 116, 111, 104, 101, 114, 45, 97, 108, 108, 111, 119, 101, 100, 45, 115, 105, 116, 101, 46, 99, 111, 109]) &amp;#x2F;&amp;#x2F; &amp;#39;another-allowed-site.com&amp;#39;
  ];

  var currentHostname &amp;#x3D; document.location.hostname;

  if (!isHostnameAllowed(currentHostname)) &amp;#123;
    showAlertAndRedirect();
  &amp;#125;

  function isHostnameAllowed(hostname) &amp;#123;
    return allowedHostnames.includes(hostname);
  &amp;#125;

  function decryptHostname(charCodes) &amp;#123;
    return String.fromCharCode.apply(null, charCodes);
  &amp;#125;

  function showAlertAndRedirect() &amp;#123;
    var countdown &amp;#x3D; 5;
    var alertDiv &amp;#x3D; document.createElement(&amp;#39;div&amp;#39;);
    alertDiv.style.position &amp;#x3D; &amp;#39;fixed&amp;#39;;
    alertDiv.style.width &amp;#x3D; &amp;#39;50%&amp;#39;;
    alertDiv.style.height &amp;#x3D; &amp;#39;50%&amp;#39;;
    alertDiv.style.top &amp;#x3D; &amp;#39;50%&amp;#39;;
    alertDiv.style.left &amp;#x3D; &amp;#39;50%&amp;#39;;
    alertDiv.style.transform &amp;#x3D; &amp;#39;translate(-50%, -50%)&amp;#39;;
    alertDiv.style.backgroundColor &amp;#x3D; &amp;#39;rgba(0, 0, 0, 0.7)&amp;#39;;
    alertDiv.style.color &amp;#x3D; &amp;#39;white&amp;#39;;
    alertDiv.style.display &amp;#x3D; &amp;#39;flex&amp;#39;;
    alertDiv.style.justifyContent &amp;#x3D; &amp;#39;center&amp;#39;;
    alertDiv.style.alignItems &amp;#x3D; &amp;#39;center&amp;#39;;
    alertDiv.style.fontSize &amp;#x3D; &amp;#39;24px&amp;#39;;
    alertDiv.style.textAlign &amp;#x3D; &amp;#39;center&amp;#39;;
    alertDiv.style.zIndex &amp;#x3D; &amp;#39;10000&amp;#39;;
    alertDiv.innerHTML &amp;#x3D; &amp;#39;&amp;lt;div&amp;gt;您访问的网页为镜像地址，&amp;lt;span id&amp;#x3D;&amp;quot;countdown&amp;quot;&amp;gt;&amp;#39; + countdown + &amp;#39;&amp;lt;&amp;#x2F;span&amp;gt;秒后会跳转到源地址&amp;lt;&amp;#x2F;div&amp;gt;&amp;#39;;
    document.body.appendChild(alertDiv);

    var countdownInterval &amp;#x3D; setInterval(function() &amp;#123;
      countdown--;
      document.getElementById(&amp;#39;countdown&amp;#39;).innerText &amp;#x3D; countdown;
      if (countdown &amp;lt;&amp;#x3D; 0) &amp;#123;
        clearInterval(countdownInterval);
        window.location.href &amp;#x3D; new URL(document.location.href).href.replace(currentHostname, allowedHostnames[0]);
      &amp;#125;
    &amp;#125;, 1000);
  &amp;#125;
&amp;#125;)();
&amp;lt;&amp;#x2F;script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h2 id=&#34;通过hexo-g-d部署时报Error-Spawn-failed错误&#34;&gt;通过&lt;code&gt;hexo g -d&lt;/code&gt;部署时报&lt;code&gt;Error: Spawn failed&lt;/code&gt;错误:&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;这是由于 git 本地记录的提交版本号与 github 上不一致导致的，通过&lt;code&gt;git reset --hard commitCode&lt;/code&gt;即可解决。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;检查本地最近提交记录，获取最后一次提交记录的更新时间及标识，如&lt;code&gt;280a7fdd46fcfd7d34e652aec15523dcd247fac8&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-bash&#34; data-language=&#34;bash&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;cd .deploy_git
cat .git&amp;#x2F;logs&amp;#x2F;HEAD&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;获取 github pages 服务所关联分支的最近一次提交记录，获取更新时间及标识。地址一般为：&lt;code&gt;https://github.com/用户名/仓库名/commits/分支名&lt;/code&gt;，如&lt;code&gt;https://github.com/lxl80/blog/commits/gh-pages&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;如果发现提交最新的提交时间/标识不一致，通过以下命令即可解决:&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-bash&#34; data-language=&#34;bash&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;git reset --hard f085038efdf79546c09641d37b2a2429c1ae8e60 #github上最新的提交标识&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h2 id=&#34;hexo-docker-本地访问内容没有更新&#34;&gt;hexo docker 本地访问内容没有更新&lt;/h2&gt;
&lt;p&gt;可能是node内部PM2模块的缓存机制导致的。pm2模块重启一下就可以了。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-bash&#34; data-language=&#34;bash&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;pm2 restart &amp;#x2F;hexo_run.js&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2023/03/14/20230314150208-2.webp&#34; alt=&#34;image-20220325143625352&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;fsevents报错&#34;&gt;fsevents报错&lt;/h2&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-bash&#34; data-language=&#34;bash&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;npm ERR! code EBADPLATFORM npm ERR! notsup Unsupported platform for
fsevents@2.3.2: wanted &amp;#123;&amp;quot;os&amp;quot;:&amp;quot;darwin&amp;quot;,&amp;quot;arch&amp;quot;:&amp;quot;any&amp;quot;&amp;#125; (current:
&amp;#123;&amp;quot;os&amp;quot;:&amp;quot;win32&amp;quot;,&amp;quot;arch&amp;quot;:&amp;quot;x64&amp;quot;&amp;#125;) npm ERR! notsup Valid OS:    darwin npm
ERR! notsup Valid Arch:  any npm ERR! notsup Actual OS:   win32 npm
ERR! notsup Actual Arch: x64&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;解决方法：修改package.json&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-javascript&#34; data-language=&#34;javascript&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-javascript&#34;&gt;&amp;quot;optionalDependencies&amp;quot;: &amp;#123;
  &amp;quot;fsevents&amp;quot;: &amp;quot;^2.3.2&amp;quot;
&amp;#125;,&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h2 id=&#34;关于百度无法爬取GitHub内容解决方案&#34;&gt;关于百度无法爬取GitHub内容解决方案&lt;/h2&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;使用coding搭建一个可以被百度爬取到的代码托管平台&lt;/li&gt;
&lt;li&gt;使用vps搭建一个hexo 镜像访问，专门针对搜索引擎。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Tips: 博主用了第二种方法，2个域名，前端域名用dnspod，采用cloudflare parter cname接入。dnspos有选路选择，针对搜索引擎进入vps搭建的blog，对于其它线路到cloudflare parter 加速过的github pages  cname。后端域名用cloudflare parter 以及免费版cloudflare管理。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;既然百度无法爬取GitHub，那么我们只需要找个可以被百度爬取到的代码托管平台即可（并且还提供pages服务），基本只有国内的平台了：&lt;code&gt;Gitee&lt;/code&gt;和&lt;code&gt;Coding&lt;/code&gt;！Gitee自定义域名要花钱（九十多，都可以买服务器了），而Coding是可以免费自定义域名的。这里推介大家使用企业版的Coding，因为企业版的Coding仓库服务器是在香港的，而普通版的服务器是在新加坡。地理原因，理论上企业版的更快一些！&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;将博客同时部署到两个仓库：GitHub和Coding&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;deploy:
- type: git
  repository: git@github.com:xxx&amp;#x2F;xxx.github.io.git
  branch: master

- type: git
  repository: git@e.coding.net:xxx&amp;#x2F;xxx.git
  branch: master&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;在域名那里，配置两个解析&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;线路类型作用：如果该值填“国内”，国内的IP就会去访问此项对应的&lt;code&gt;记录值地址&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;同理，如果该值填写“国外”，国外的IP就会去访问“国外”对应的&lt;code&gt;记录值地址&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;线路类型&lt;/code&gt;为&lt;code&gt;百度&lt;/code&gt;或者&lt;code&gt;国内&lt;/code&gt;，记录值为&lt;code&gt;Coding仓库的地址&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;线路类型&lt;/code&gt;为&lt;code&gt;默认&lt;/code&gt;或者&lt;code&gt;国外&lt;/code&gt;，记录值为&lt;code&gt;GitHub仓库地址&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2023/03/14/20230314150208-3.webp&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;这样来自&lt;code&gt;百度的spider&lt;/code&gt;就会去爬&lt;code&gt;国内Coding&lt;/code&gt;的地址，而两个仓库的内容又都是一样的，如果请求IP来自国外，它又会去访问&lt;code&gt;国外的GitHub&lt;/code&gt;，这样还有利于外国华侨和那些科学上网的用户访问，一石二鸟！（我真他妈天才！）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;如果你只用Coding仓库，那就不需要这么麻烦了&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;测试百度Spider能不能爬你的域名&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;在任意目录下执行以下命令（将“你的域名”换成你的域名）&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-bash&#34; data-language=&#34;bash&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;curl -A &amp;quot;Mozilla&amp;#x2F;5.0 (compatible; Baiduspider&amp;#x2F;2.0; +http:&amp;#x2F;&amp;#x2F;www.baidu.com&amp;#x2F;search&amp;#x2F;spider.html)&amp;quot; -o example.html 你的域名&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;执行完命令，在该目录下会生成一个文件：&lt;code&gt;example.html&lt;/code&gt;，打开它，如果显示&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;Moved Permanently&lt;/code&gt;，说明301，被重定向了&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;Found&lt;/code&gt;，也就是爬到了&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;如果打开是你的首页，说明爬取到的内容就是你的首页HTML内容。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;如果显示：&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2023/03/14/20230314150208-4.webp&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;说明域名是解析到GitHub的，403Forbidden访问禁止。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;busuanzi不蒜子计数显示异常，一闪就没&#34;&gt;busuanzi不蒜子计数显示异常，一闪就没&lt;/h2&gt;
&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;原因可能有两种live2d看板娘和busuanzi不蒜子计数冲突&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;busuanzi不蒜子网络访问异常。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;不在leancloud安全名单&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;不是正常域名访问&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;各种网络访问错误等等&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;近日安装了live2d看板娘插件，&lt;a href=&#34;https://github.com/EYHN/hexo-helper-live2d&#34;&gt;github项目地址&lt;/a&gt;，安装后却意外发现busuanzi不蒜子计数失效了,在页面中不显示，但强制刷新后出现，再刷新又消失。经排查，未发现问题，但事实是网站源码出现了变化。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;正常时&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-HTML&#34; data-language=&#34;HTML&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-HTML&#34;&gt;&amp;lt;div id&amp;#x3D;&amp;quot;busuanzi_container_page_pv&amp;quot; class&amp;#x3D;&amp;quot;info-break-policy&amp;quot; style&amp;#x3D;&amp;quot;display: inline;&amp;quot;&amp;gt;
    &amp;lt;i class&amp;#x3D;&amp;quot;far fa-eye fa-fw&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;i&amp;gt;阅读次数:&amp;nbsp;&amp;nbsp;
    &amp;lt;span id&amp;#x3D;&amp;quot;busuanzi_value_page_pv&amp;quot;&amp;gt;433&amp;lt;&amp;#x2F;span&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;异常时&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-HTML&#34; data-language=&#34;HTML&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-HTML&#34;&gt;&amp;lt;div id&amp;#x3D;&amp;quot;busuanzi_container_page_pv&amp;quot; class&amp;#x3D;&amp;quot;info-break-policy&amp;quot; style&amp;#x3D;&amp;quot;display: none;&amp;quot;&amp;gt;
    &amp;lt;i class&amp;#x3D;&amp;quot;far fa-eye fa-fw&amp;quot;&amp;gt;&amp;lt;&amp;#x2F;i&amp;gt;阅读次数:&amp;nbsp;&amp;nbsp;
    &amp;lt;span id&amp;#x3D;&amp;quot;busuanzi_value_page_pv&amp;quot;&amp;gt;434&amp;lt;&amp;#x2F;span&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;对比发现出现了多余的&lt;code&gt;style=&amp;quot;display: none;&lt;/code&gt;。经过搜索主题源码，发现这个文件&lt;code&gt;themes\matery\source\libs\others\busuanzi.pure.mini.js&lt;/code&gt;控制显示。&lt;/p&gt;
&lt;p&gt;可以直接下载下面这个地址的js替换，来自个人blog的js   &lt;a href=&#34;/libs/others/busuanzi.pure.mini.js&#34;&gt;busuanzi.pure.mini.js&lt;/a&gt;，直接下载这个js替换即可。下面源码经过了展开美化，原始文件是压缩去空格版本的。&lt;br&gt;
&lt;strong&gt;注意&lt;/strong&gt;： 这是一种破坏性修复，没有解决根本问题，临时修复方案。&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-javascript&#34; data-language=&#34;javascript&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-javascript&#34;&gt;var bszCaller, bszTag;
! function () &amp;#123;
    var c, d, e, a &amp;#x3D; !1,
        b &amp;#x3D; [];
    ready &amp;#x3D; function (c) &amp;#123;
        return a || &amp;quot;interactive&amp;quot; &amp;#x3D;&amp;#x3D;&amp;#x3D; document.readyState || &amp;quot;complete&amp;quot; &amp;#x3D;&amp;#x3D;&amp;#x3D; document.readyState ? c.call(document) :
            b.push(function () &amp;#123;
                return c.call(this)
            &amp;#125;), this
    &amp;#125;, d &amp;#x3D; function () &amp;#123;
        for (var a &amp;#x3D; 0, c &amp;#x3D; b.length; c &amp;gt; a; a++) b[a].apply(document);
        b &amp;#x3D; []
    &amp;#125;, e &amp;#x3D; function () &amp;#123;
        a || (a &amp;#x3D; !0, d.call(window), document.removeEventListener ? document.removeEventListener(
            &amp;quot;DOMContentLoaded&amp;quot;, e, !1) : document.attachEvent &amp;amp;&amp;amp; (document.detachEvent(&amp;quot;onreadystatechange&amp;quot;,
            e), window &amp;#x3D;&amp;#x3D; window.top &amp;amp;&amp;amp; (clearInterval(c), c &amp;#x3D; null)))
    &amp;#125;, document.addEventListener ? document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, e, !1) : document.attachEvent &amp;amp;&amp;amp; (
        document.attachEvent(&amp;quot;onreadystatechange&amp;quot;, function () &amp;#123;
            &amp;#x2F;loaded|complete&amp;#x2F;.test(document.readyState) &amp;amp;&amp;amp; e()
        &amp;#125;), window &amp;#x3D;&amp;#x3D; window.top &amp;amp;&amp;amp; (c &amp;#x3D; setInterval(function () &amp;#123;
            try &amp;#123;
                a || document.documentElement.doScroll(&amp;quot;left&amp;quot;)
            &amp;#125; catch (b) &amp;#123;
                return
            &amp;#125;
            e()
        &amp;#125;, 5)))
&amp;#125;(), bszCaller &amp;#x3D; &amp;#123;
    fetch: function (a, b) &amp;#123;
        var c &amp;#x3D; &amp;quot;BusuanziCallback_&amp;quot; + Math.floor(1099511627776 * Math.random());
        window[c] &amp;#x3D; this.evalCall(b), a &amp;#x3D; a.replace(&amp;quot;&amp;#x3D;BusuanziCallback&amp;quot;, &amp;quot;&amp;#x3D;&amp;quot; + c), scriptTag &amp;#x3D; document.createElement(
                &amp;quot;SCRIPT&amp;quot;), scriptTag.type &amp;#x3D; &amp;quot;text&amp;#x2F;javascript&amp;quot;, scriptTag.defer &amp;#x3D; !0, scriptTag.src &amp;#x3D; a,
            document.getElementsByTagName(&amp;quot;HEAD&amp;quot;)[0].appendChild(scriptTag)
    &amp;#125;,
    evalCall: function (a) &amp;#123;
        return function (b) &amp;#123;
            ready(function () &amp;#123;
                try &amp;#123;
                    a(b), scriptTag.parentElement.removeChild(scriptTag)
                &amp;#125; catch (c) &amp;#123;
                    bszTag.hides()
                &amp;#125;
            &amp;#125;)
        &amp;#125;
    &amp;#125;
&amp;#125;, bszCaller.fetch(&amp;quot;&amp;#x2F;&amp;#x2F;busuanzi.ibruce.info&amp;#x2F;busuanzi?jsonpCallback&amp;#x3D;BusuanziCallback&amp;quot;, function (a) &amp;#123;
    bszTag.texts(a), bszTag.shows()
&amp;#125;), bszTag &amp;#x3D; &amp;#123;
    bszs: [&amp;quot;site_pv&amp;quot;, &amp;quot;page_pv&amp;quot;, &amp;quot;site_uv&amp;quot;],
    texts: function (a) &amp;#123;
        this.bszs.map(function (b) &amp;#123;
            var c &amp;#x3D; document.getElementById(&amp;quot;busuanzi_value_&amp;quot; + b);
            c &amp;amp;&amp;amp; (c.innerHTML &amp;#x3D; a[b])
        &amp;#125;)
    &amp;#125;,
    hides: function () &amp;#123;
        this.bszs.map(function (a) &amp;#123;
            var b &amp;#x3D; document.getElementById(&amp;quot;busuanzi_container_&amp;quot; + a);
            b &amp;amp;&amp;amp; (b.style.display &amp;#x3D; &amp;quot;&amp;quot;)
        &amp;#125;)
    &amp;#125;,
    shows: function () &amp;#123;
        this.bszs.map(function (a) &amp;#123;
            var b &amp;#x3D; document.getElementById(&amp;quot;busuanzi_container_&amp;quot; + a);
            b &amp;amp;&amp;amp; (b.style.display &amp;#x3D; &amp;quot;inline&amp;quot;)
        &amp;#125;)
    &amp;#125;
&amp;#125;;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;替换的人请操作其实就是把其中的&lt;code&gt;b.style.display=&amp;quot;none&amp;quot;&lt;/code&gt;中&lt;code&gt;none&lt;/code&gt;去掉。&lt;/p&gt;
&lt;h2 id=&#34;不蒜子-busuanzi-文章计数出错问题&#34;&gt;不蒜子 (busuanzi) 文章计数出错问题&lt;/h2&gt;
&lt;p&gt;出现这个原因，和 Chrome 85 版本 Referrer Policy 更改有关。什么是 Referrer，简单理解，就是请求 Web 服务器时，可以在 HTTP Request 的请求头 (header) 中加上当前页面的 URL，例如我们在浏览某个博客页面，需要加载一些图片，从服务器请求这些图片时，referrer 就是当前的博客页面 URL。从这里也可以看出，referrer 可能会暴露请求来源的某些信息或者隐私，有一定的隐私或安全风险。之前版本的 Chrome 浏览器，如果网站没有指定自己的 Referrer Policy，那么 Chrome 默认 policy 是 no-referrer-when-downgrade，在 Chrome 85 版本中，为了保护用户的隐私，默认的 Referrer Policy 则变成了 strict-origin-when-cross-origin。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;no-referrer-when-downgrade: 当两个网站的 http 协议安全等级相当，或者目的网站安全协议等级高于当前网站(HTTP –&amp;gt; HTTP, HTTPS –&amp;gt; HTTPS, HTTP –&amp;gt; HTTPS)， referer 将会包含源网站的域名，路径，查询字符串；如果目的网站安全协议等级低于源网站 (HTTPS –&amp;gt; HTTP)，将不会发送这些信息。&lt;/li&gt;
&lt;li&gt;strict-origin-when-cross-origin： 只有当做同一域名请求时 (源网址和目标网址是同一域名），才发送域名，路径和请求字符串，当两个网站安全协议相当时，发送源网站的域名(没有具体路径信息和查询字符串)，如果目标网站安全协议等级低于源网站，不发送 header 信息。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;不蒜子统计博客文章访问量就是通过 referer 来计算的，通过上面的分析，如果 Referrer Policy 是 strict-origin-when-cross-origin，不蒜子接收到的只有博客的域名，没有文章的具体路径，所以具体某个文章的 PV 统计会出现错误。&lt;/p&gt;
&lt;p&gt;修复方法：&lt;/p&gt;
&lt;p&gt;在主题文件夹下/layout/_partial/head.ejs中添加&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markup&#34; data-language=&#34;markup&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markup&#34;&gt;&amp;lt;meta name&amp;#x3D;&amp;quot;referrer&amp;quot; content&amp;#x3D;&amp;quot;no-referrer-when-downgrade&amp;quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;h2 id=&#34;如何多个域名映射同一个github-pages&#34;&gt;如何多个域名映射同一个github pages&lt;/h2&gt;
&lt;p&gt;可能由于某种原因，换了一个域名，之前又有一些被搜索引擎收录，但是又不想让原来的链接失效，就需要让两个域名都映射到github pages中。本文介绍几种当前可能的方法。欢迎提出更多有效方法。&lt;/p&gt;
&lt;h4 id=&#34;直接映射有什么问题？&#34;&gt;直接映射有什么问题？&lt;/h4&gt;
&lt;p&gt;你可能会想，两个域名都映射到github pages不就可以了？然而事实并非如此。首先当前github 的CNAME中只支持一个域名。因此CNAME文件中只能有一个域名，&lt;a href=&#34;http://xn--username-899l3b5a044jc1fda430jxzcea946evknfa1b4382cha222gsq3nfc0d.github.io&#34;&gt;而如果在域名映射中将两个域名都映射到username.github.io&lt;/a&gt;，那么其中有一个会出现404错误。&lt;/p&gt;
&lt;h4 id=&#34;前提&#34;&gt;前提&lt;/h4&gt;
&lt;p&gt;以下方法的前提是你已经明白如何为自己的github pages添加自定义域名。&lt;/p&gt;
&lt;h4 id=&#34;需要注意什么？&#34;&gt;需要注意什么？&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;需要给各大网站提交新的域名网址，重新被收录&lt;/li&gt;
&lt;li&gt;域名变换前面网站的内容结构不能变，否则重定向也没有意义&lt;/li&gt;
&lt;li&gt;当前单纯的域名没有办法进行备案&lt;/li&gt;
&lt;li&gt;注意修改配置文件里的主域名为新的域名&lt;/li&gt;
&lt;li&gt;由于更换了新的域名，导致原来leancloud统计的访问数据需要重新计算，也就是网站访问量被清零了，leancloud也需要更新域名&lt;/li&gt;
&lt;li&gt;新的com域名可申请免费的SSL证书，保证https可访问，而不会提示不安全&lt;/li&gt;
&lt;li&gt;301重定向会将旧地址的权重转义到新地址上&lt;/li&gt;
&lt;li&gt;百度收录速度较慢&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;方法一：域名托管平台重定向&#34;&gt;方法一：域名托管平台重定向&lt;/h4&gt;
&lt;p&gt;有的域名服务商提供重定向功能，以阿里云为例，在域名映射添加记录的时候，可以选择显性URL或隐性URL。但是自己在尝试这种方法的时候，会提示我URL备案异常。可能是由于这个时候已经用新的域名映射了博客地址，但是新的域名实际上是没有备案的。更无奈的是，目前貌似没有办法单独对域名进行备案。因此本人放弃了该方法。&lt;/p&gt;
&lt;p&gt;如果你的博客也是部署在github上的，那么这种方法就不用尝试了，如果你的博客是部署在自己的服务器上的，那么网上都很多方法，这里就不介绍了。&lt;/p&gt;
&lt;h4 id=&#34;方法二：部署两个仓库&#34;&gt;方法二：部署两个仓库&lt;/h4&gt;
&lt;p&gt;我们注意到，除了github pages，还有coding.net可用。它与github类似。原来的域名映射到这个地址就可以了。而在部署hexo的时候，是可以添加两个仓库地址的：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-yaml&#34; data-language=&#34;yaml&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;deploy:
- type: git
  repository: git@github.com:username&amp;#x2F;username.github.io.git
  branch: master
- type: git
  repository: git@git.coding.net:username&amp;#x2F;username.git
  branch: coding-pages&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;这两个仓库内容唯一的差别就是域名不一样，即CNAME中的记录值不一样。这样当访问两个不同的域名的时候，是访问不同的两个平台仓库。但是原来域名的权重不会转到新的域名中去。&lt;/p&gt;
&lt;h4 id=&#34;方法三：新增项目重定向&#34;&gt;方法三：新增项目重定向&lt;/h4&gt;
&lt;p&gt;假如你已经有username.github.io项目，新建一个名为blog(名字自定义)的项目，在项目的setting中，开启github pages服务，&lt;a href=&#34;http://xn--username-459ll35a57ekxnernza274g644a01a417s.github.io&#34;&gt;并且将旧的域名映射到username.github.io&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;实际上，github pages并不是只能有一个，例如，你新创建的仓库访问地址为：&lt;a href=&#34;http://username.github.io/blog%E3%80%82&#34;&gt;username.github.io/blog。&lt;/a&gt;由于旧的域名映射会导致404错误，那么在我们的新项目中增加一个404.html，在页面中进行跳转即可：&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-markup&#34; data-language=&#34;markup&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-markup&#34;&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset&amp;#x3D;&amp;quot;utf-8&amp;quot;&amp;gt;
&amp;lt;title&amp;gt;&amp;lt;&amp;#x2F;title&amp;gt;
&amp;lt;&amp;#x2F;head&amp;gt;
 &amp;lt;script language&amp;#x3D;&amp;quot;javascript&amp;quot;&amp;gt;
var domain &amp;#x3D; &amp;quot;换成你自己的新域名&amp;quot;;
var src &amp;#x3D; window.location.href;
var prtc &amp;#x3D; src.substring(0, src.indexOf(&amp;#39;:&amp;#39;));
var target &amp;#x3D; src.substring(src.indexOf(&amp;#39;&amp;#x2F;&amp;#39;, src.indexOf(&amp;#39;:&amp;#39;) + 3));
window.location.href &amp;#x3D; prtc + &amp;quot;:&amp;#x2F;&amp;#x2F;&amp;quot; + domain + target;
location.href&amp;#x3D;prtc + &amp;quot;:&amp;#x2F;&amp;#x2F;&amp;quot; + domain + target;
&amp;lt;&amp;#x2F;script&amp;gt;
&amp;lt;body&amp;gt;
 &amp;lt;h1&amp;gt;&amp;lt;&amp;#x2F;h1&amp;gt;
&amp;lt;&amp;#x2F;body&amp;gt;
&amp;lt;&amp;#x2F;html&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;另外，需要利用google的地址更改功能，使得旧网址的权重往新网址转移。找到search console中的地址更改工具（设置按钮中找到）。&lt;/p&gt;
&lt;p&gt;除了增加404页面外，还需要增加CNAME文件，里面的内容是你原先的域名。&lt;/p&gt;
&lt;h2 id=&#34;Vercel流量超标怎么办？&#34;&gt;Vercel流量超标怎么办？&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;最近查看了一下Vercel流量使用情况，发现RSS订阅流量太大了，占了30GB流量！&lt;/p&gt;
&lt;p&gt;免费Vercel账户每月只有100G免费流量，怎么办？&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;有两种解决方法：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;使用 DNS 多线路分流，例如&lt;a href=&#34;/posts/5311b619/#DNSPOD-%E5%A4%9A%E7%BA%BF%E8%B7%AF%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1&#34;&gt;DNSPOD 多线路负载均衡&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;使用 Vercel 提供的 &lt;a href=&#34;https://vercel.com/docs/project-configuration#project-configuration/redirects&#34;&gt;redirects&lt;/a&gt; 或者 &lt;a href=&#34;https://vercel.com/docs/project-configuration#project-configuration/rewrites&#34;&gt;rewrites&lt;/a&gt;功能，把rss访问重定向到其它部署方式，例如Cloudflare&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&#34;https://cimg1.17lai.site/data/2022/09/04/20220904113544.webp&#34; alt=&#34;Vercel 流量&#34;&gt;&lt;/p&gt;
&lt;p&gt;查看方法：&lt;a href=&#34;https://vercel.com/dashboard&#34;&gt;dashboard&lt;/a&gt; -&amp;gt; &lt;a href=&#34;https://vercel.com/dashboard/usage&#34;&gt;usage&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;由于个人blog也部署到Cloudflare上面了，&lt;a href=&#34;https://cfblog.17lai.site&#34;&gt;https://cfblog.17lai.site&lt;/a&gt;，Cloudflare的流量目前看着没限制，如是，可以使用如下重定向方法&lt;/p&gt;
&lt;figure&gt;&lt;div class=&#34;code-area&#34;&gt;&lt;pre class=&#34;line-numbers language-json&#34; data-language=&#34;json&#34; data-start=&#34;1&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;&amp;quot;redirects&amp;quot;: [
		&amp;#123; &amp;quot;source&amp;quot;: &amp;quot;&amp;#x2F;atom.xml&amp;quot;, &amp;quot;destination&amp;quot;: &amp;quot;https:&amp;#x2F;&amp;#x2F;cfblog.17lai.site&amp;#x2F;atom.xml&amp;quot; &amp;#125;,
		&amp;#123; &amp;quot;source&amp;quot;: &amp;quot;&amp;#x2F;rss.xml&amp;quot;, &amp;quot;destination&amp;quot;: &amp;quot;https:&amp;#x2F;&amp;#x2F;cfblog.17lai.site&amp;#x2F;rss.xml&amp;quot; &amp;#125;
  	]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/figure&gt;
&lt;p&gt;更多Vercel部署用法，戳&lt;a href=&#34;/posts/e922fac8/&#34;&gt;vercel部署&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;其它主题&#34;&gt;其它主题&lt;/h2&gt;
&lt;p&gt;博主从这些主题学到了很多有用的技巧，大大丰富了个人定制&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/jerryc127/hexo-theme-butterfly&#34;&gt;hexo-theme-butterfly&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/next-theme/hexo-theme-next&#34;&gt;hexo-theme-next&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/fluid-dev/hexo-theme-fluid&#34;&gt;hexo-theme-fluid&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Lete114/Hexo-Theme-MengD&#34;&gt;Hexo-Theme-MengD&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/nekodeng/hexo-theme-itsneko&#34;&gt;hexo-theme-itsneko&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;参考-感谢&#34;&gt;参考&amp;amp;感谢&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;编写整个系列教程花费时间和精力很长，如有遗漏，可以联系添加！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://easyhexo.com/&#34;&gt;easyhexo 文档&lt;/a&gt; &lt;a href=&#34;https://github.com/EasyHexo/Easy-Hexo&#34;&gt;easyhexo GIthub&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.lixl.cn/2019/092856736.html&#34;&gt;基于Hexo的matery主题搭建博客并深度优化-悟尘记&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://hexo.io/zh-cn/docs/&#34;&gt;hexo 官方文档&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://blinkfox.github.io/2018/09/28/qian-duan/hexo-bo-ke-zhu-ti-zhi-hexo-theme-matery-de-jie-shao/&#34;&gt;闪烁之狐&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/blinkfox/hexo-theme-matery/blob/develop/README_CN.md&#34;&gt;hexo-theme-matery&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.sky03.cn/posts/42790.html#toc-heading-1&#34;&gt;Hexo 进阶之各种优化&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.cnblogs.com/Timesi/p/9556236.html&#34;&gt;Leancloud+Valine打造Hexo个人博客极简评论系统&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.sky03.cn/posts/42790.html&#34;&gt;Hexo进阶之各种优化&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://sitoi.cn/posts/15908.html&#34;&gt;自动部署篇&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.cnblogs.com/luoshuitianyi/p/10333928.html&#34;&gt;Hexo搭建(VPS)&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://boyinthesun.cn/post/error-live2d-busuanzi/&#34;&gt;解决live2d看板娘和busuanzi不蒜子计数冲突&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.yanbinghu.com/2019/03/29/25951.html&#34;&gt;多个域名映射同一个github pages&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://segmentfault.com/a/1190000016286007&#34;&gt;hexo博客简单支持PWA&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.imlete.cn/article/hexo-seo-autopush.html&#34;&gt;Hexo 每天自动提交网站url到搜索引擎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://yafine-blog.cn/posts/ebb2.html&#34;&gt;Hexo 博客订阅文章通知功能&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://yafine-blog.cn/posts/3b98.html&#34;&gt;修改 matery 原有主题相册&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.dyfa.top/posts/waterfall-flow-photo-album.html&#34;&gt;关于给hexo博客增加相册页面（实现瀑布流相册，实现加密相册）&lt;/a&gt; &lt;a href=&#34;https://github.com/17lai/hexo-theme-itsneko&#34;&gt;hexo-theme-itsneko&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://small-rose.github.io/posts/a53a9069.html&#34;&gt;Matery主题新手常见问题&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://hunterx.xyz/hexo-gitlab-cicd-conf.html&#34;&gt;hexo-gitlab-cicd-conf&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://jxyblog.top/article/2da64065.html&#34;&gt;更改hexo的主题为Matery,并进行初步的优化&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://luckyzmj.cn/posts/17fd92ae.html&#34;&gt;Hexo之渲染绕过&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://wiki.jikexueyuan.com/project/gulp-book/chapter4.html&#34;&gt;使用 gulp 压缩图片&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.huihongcloud.com/2021/10/23/python/python%E7%B2%BE%E7%AE%80font%20awesome%E5%AD%97%E4%BD%93/&#34;&gt;python精简font awesome字体&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://sunhwee.com/posts/6e8839eb.html&#34;&gt;Hexo+Github博客搭建完全教程&lt;/a&gt; &lt;a href=&#34;https://github.com/shw2018/hexo-blog-fly&#34;&gt;博客开源&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://segmentfault.com/a/1190000021474516&#34;&gt;Hexo主题使用Valine-Admin管理评论和评论提醒&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://m3df.xyz/2021/06/20/edd7462d/&#34;&gt;Hexo博客进阶：图片懒加载与代码压缩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://qvchuang.top/archives/d3c10307.html&#34;&gt;matery主题个性化定制&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.langzihan.top/2023/12/08/%E7%99%BE%E5%91%B3%E6%9D%82%E8%B4%A7/02.%E9%AD%94%E6%94%B9NexT%E4%B8%BB%E9%A2%98%E6%B7%BB%E5%8A%A0butterfly%E4%B8%AD%E7%9A%84%E6%97%B6%E9%97%B4%E8%BD%B4%E5%8A%9F%E8%83%BD/&#34;&gt;魔改 NexT 主题添加 butterfly 中的时间轴功能&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://crystalblog.xyz/&#34;&gt;crystalblog三部曲&lt;/a&gt; &lt;a href=&#34;https://crystalblog.xyz/2021082944649.html&#34;&gt;1&lt;/a&gt; &lt;a href=&#34;https://crystalblog.xyz/2021082917116.html&#34;&gt;2&lt;/a&gt; &lt;a href=&#34;https://crystalblog.xyz/2021082965135.html&#34;&gt;3&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://www.luckyzmj.cn/posts/e3e08109.html&#34;&gt;个人博客搭建&lt;/a&gt; &lt;a href=&#34;https://github.com/LuckyZmj/LuckyBlog&#34;&gt;博客开源&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://tellyouwhat.cn/p/pwa-your-blog-can-also-be-accessed-offline/&#34;&gt;PWA踩坑记-从零到一让你的博客也能离线访问&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.islu.cn/posts/21369.html#&#34;&gt;Matery主题添加暗色模式&lt;/a&gt; &lt;a href=&#34;https://dreamruins.gitee.io/tutorials/1121281946.html&#34;&gt;黑夜模式&lt;/a&gt; &lt;a href=&#34;https://github.com/ialoe/hexo-themes-matery-pro&#34;&gt;开源代码hexo-themes-matery-pro&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.skk.moe/post/hello-darkmode-my-old-friend/&#34;&gt;为网站添加用户友好的深色模式支持&lt;/a&gt; &lt;a href=&#34;https://github.com/fluid-dev/hexo-theme-fluid/blob/master/source/js/color-schema.js&#34;&gt;hexo-theme-fluid Dark&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.islu.cn/posts/2687.html&#34;&gt;加载动画(吃豆豆)&lt;/a&gt; &lt;a href=&#34;https://dreamruins.gitee.io/tutorials/1793947201.html&#34;&gt;加载动画旋转方块&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://cimoc.cn/2022/11/09/hexo-toc-active-li-caret/&#34;&gt;Hexo主题优化——TOC目录展开收缩的小箭头&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.ganxb2.com/25482.html&#34;&gt;hexo个人博客优化魔改非插件实现为博客增加安全跳转中台页面&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.voidking.com/dev-hexo-gulp/&#34;&gt;优化&lt;code&gt;search.xml&lt;/code&gt;大小&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://akilar.top/posts/5b8f515f/&#34;&gt;更好的Live2d Widget&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://guanqr.com/tech/website/introduction-and-basic-setting-of-waline/&#34;&gt;Waline 评论系统的介绍与基础配置&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.zywvvd.com/notes/hexo/theme/fluid/fluid-github-login/fluid-github-login/&#34;&gt;Waline 添加 GitHub 社交登录&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.sarakale.top/blog/posts/537344b2.html&#34;&gt;waline 邮件通知模板样式一览&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.techgrow.cn/posts/ae18fb85.html&#34;&gt;https://www.techgrow.cn/posts/ae18fb85.html&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.zywvvd.com/notes/hexo/theme/fluid/fluid-update/fluid-update/&#34;&gt;随机视频背景切换&lt;/a&gt; &lt;a href=&#34;https://www.zywvvd.com/notes/hexo/theme/fluid/fluid-video-bg-fixed/fluid-video-bg-fixed/&#34;&gt;视频背景&lt;/a&gt; &lt;a href=&#34;https://github.com/zywvvd/hexo-theme-fluid&#34;&gt;hexo-theme-fluid&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.webhek.com/post/video-background/&#34;&gt;使用视频作为网页背景的技术探讨&lt;/a&gt; 英文：&lt;a href=&#34;http://thenewcode.com/777/Create-Fullscreen-HTML5-Page-Background-Video#considerations&#34;&gt;Create Fullscreen HTML5 Page Background Video&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://yearito.cn/posts/hexo-writing-skills.html&#34;&gt;写作技巧篇&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.haoyizebo.com/posts/e9071e74/&#34;&gt;折腾：在 Hexo 的 page 中嵌入 iframe&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.justlovesmile.top/posts/86111745.html&#34;&gt;Hexo博客 | 插件推荐&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://dreamruins.gitee.io/tutorials/1564966496.html&#34;&gt;美化修改文章分类样式&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://cnhuazhu.top/next/2021/03/28/Hexo%E9%AD%94%E6%94%B9/Hexo%E9%AD%94%E6%94%B9%E8%AE%B0%E5%BD%95/&#34;&gt;Hexo魔改记录 各种特效添加&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.bmpi.dev/dev/guide-to-setup-blog-site-with-zero-cost-4/&#34;&gt;零成本搭建现代博客之加载速度优化篇&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.imlete.cn/article/CardLink.html&#34;&gt;使用 CardLink 库生产卡片式链接&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.imlete.cn/article/Service-Worker-Preferred-Request-Resource.html&#34;&gt;使用Service Worker优选请求资源&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.imlete.cn/article/hexo-seo-autopush.html&#34;&gt;Hexo 每天自动提交网站url到搜索引擎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://kiyanyang.github.io/posts/b66e483f/&#34;&gt;使用 VS Code 的任务（Tasks）便捷操作 Hexo&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.skk.moe/post/hello-darkmode-my-old-friend/&#34;&gt; 为网站添加用户友好的深色模式支持&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://kimidayo.cn/notes/hexo-theme-sakura/#Auto-Open-New-File&#34;&gt;实现代码框全屏显示&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.csdn.net/zhang0558/article/details/121421500&#34;&gt;谷歌网站收录移动设备易用性有问题&lt;/a&gt;  &lt;a href=&#34;https://search.google.com/test/mobile-friendly&#34;&gt;移动设备适合性测试&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/Akilarlxh/hexo-butterfly-tag-plugins-plus&#34;&gt;hexo-butterfly-tag-plugins-plus&lt;/a&gt; &lt;a href=&#34;https://akilar.top/posts/615e2dec/&#34;&gt;大量外挂标签&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.yfun.top/posts/2876015612&#34;&gt;实用GithubAction和NPM搭建自动转换webp图床&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.ovvv.top/posts/4259ee82/&#34;&gt;Umami UV / PV 统计显示&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://umami.is/docs/websites-api&#34;&gt;https://umami.is/docs/websites-api&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://umami.is/docs/authentication&#34;&gt;https://umami.is/docs/authentication&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://umami.is/docs/website-stats&#34;&gt;https://umami.is/docs/website-stats&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;性能&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.skk.moe/post/img-lazyload-hexo/&#34;&gt;图片 lazyload 的学问和在 Hexo 上的最佳实践&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.cnblogs.com/cangqinglang/p/15691484.html&#34;&gt;“web资源加载优先级”原来能这么精准控制 &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.skk.moe/post/prevent-disqus-from-slowing-your-site/&#34;&gt;使 Disqus 不再拖累性能和页面加载&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://juejin.cn/post/6959444386685927460&#34;&gt;hexo个人网站优化探索&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.benmarshall.me/lazy-load-iframes/&#34;&gt;lazy-load-iframes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.guozeyu.com/2022/03/website-optimization/&#34;&gt;Hexo架构与优化–Hexo，分区解析，CDN，图像压缩等&lt;/a&gt; &lt;a href=&#34;https://github.com/17lai/hexo-theme-Claudia&#34;&gt;hexo-theme-Claudia&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.cloudflare.com/zh-cn/http3-the-past-present-and-future-zh-cn&#34;&gt;HTTP/3：过去，现在，还有未来&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://webfem.com/post/performance-network&#34;&gt;前端性能优化-网络篇 - webfem&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;插件 &lt;a href=&#34;https://github.com/anzhiyu-c/hexo-theme-anzhiyu&#34;&gt;anzhiyu-c/hexo-theme-anzhiyu&lt;/a&gt; &lt;a href=&#34;https://blog.anheyu.com/posts/d50a.html&#34;&gt;安知鱼主题标签 Tag Plugins&lt;/a&gt; &lt;a href=&#34;https://akilar.top/posts/615e2dec/&#34;&gt;Tag Plugins Plus | Akilarの糖果屋&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;本教程还有其它五大部分，更多内容请见&lt;a href=&#34;/posts/4a2050e2/#Hexo%E7%B3%BB%E5%88%97&#34;&gt;Hexo系列教程&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;系列教程&#34;&gt;&lt;strong&gt;系列教程&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;全部文章RSS订阅&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&#34;Hexo系列&#34;&gt;&lt;strong&gt;Hexo系列&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;/categories/hexo/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;&lt;strong&gt;HexoRSS分类订阅&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[十万字图文教程]基于Hexo的matery主题搭建博客并深度优化完全一站式教程&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/40300608/&#34;&gt;Hexo Docker环境与Hexo基础配置篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/4d8a0b22/&#34;&gt;hexo博客自定义修改篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/9b056c86/&#34;&gt;hexo博客网络优化篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/5311b619/&#34;&gt;hexo博客增强部署篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/4a2050e2/&#34;&gt;hexo博客个性定制篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/84b4059a/&#34;&gt;hexo博客常见问题篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/253706ff/&#34;&gt;hexo博客博文撰写篇之完美笔记大攻略终极完全版&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/cf0f47fd/&#34;&gt;Hexo Markdown以及各种插件功能测试&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;markdown 各种其它语法插件，latex公式支持，mermaid图表，plant uml图表，URL卡片，bilibili卡片，github卡片，豆瓣卡片，插入音乐和视频，插入脑图，插入PDF，嵌入iframe&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/217ccdc1/&#34;&gt;在 Hexo 博客中插入 ECharts 动态图表&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/546887ac/&#34;&gt;使用nodeppt给hexo博客嵌入PPT演示&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/a3c81cc3/&#34;&gt;GithubProfile美化与自动获取RSS文章教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/e922fac8/&#34;&gt;Vercel部署高级用法教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/eb731135/&#34;&gt;webhook部署Hexo静态博客指南&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/8f9792ab/&#34;&gt;在宝塔VPS上面采用docker部署waline全流程图解教程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/843eb2k9/&#34;&gt;自建Umami访问统计服务并统计静态博客UV/PV&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&#34;笔记系列&#34;&gt;&lt;strong&gt;笔记系列&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;/categories/note/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;&lt;strong&gt;Note分类RSS订阅&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/a8535f26/&#34;&gt;完美笔记进化论&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/253706ff/&#34;&gt;hexo博客博文撰写篇之完美笔记大攻略终极完全版&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/e6086437/&#34;&gt;Joplin入门指南&amp;amp;实践方案&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/45f878cd/&#34;&gt;替代Evernote免费开源笔记Joplin-网盘同步笔记历史版本Markdown可视化&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/92d347d6/&#34;&gt;Joplin 插件以及其Markdown语法。All in One!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/e3ee7f8b/&#34;&gt;Joplin 插件使用推荐&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/1802a8a7/&#34;&gt;为知笔记私有化Docker部署&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&#34;Gitbook使用系列&#34;&gt;&lt;strong&gt;Gitbook使用系列&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;/categories/gitbook/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;Gitbook分类RSS订阅&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/7fe86002/&#34;&gt;GitBook+GitLab撰写发布技术文档-Part1:GitBook篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/7790e989/&#34;&gt;GitBook+GitLab撰写发布技术文档-Part2:GitLab篇&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/d6bad1e5/&#34;&gt;自己动手制作电子书的最佳方式（支持PDF、ePub、mobi等格式）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&#34;Gitlab-使用系列&#34;&gt;&lt;strong&gt;Gitlab 使用系列&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;/categories/gitlab/atom.xml&#34;&gt;&lt;i class=&#34;fas fa-rss&#34;&gt;&lt;/i&gt;&lt;strong&gt;Gitlab RSS 分类订阅&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/posts/acc13b70/&#34;&gt;&lt;strong&gt;Gitlab的安装及使用教程完全版&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/29a820b3/&#34;&gt;破解Gitlab EE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/d08eb7b/&#34;&gt;Gitlab的安装及使用&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/posts/1879721e/&#34;&gt;CI/CD与Git Flow与GitLab&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;link rel=&#34;stylesheet&#34; href=&#34;https://fastly.jsdelivr.net/npm/markmap-toolbar@0.18.10/dist/style.css&#34;&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/d3@7&#34;&gt;&lt;/script&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/markmap-view@0.18.10&#34;&gt;&lt;/script&gt;&lt;script src=&#34;https://fastly.jsdelivr.net/npm/markmap-toolbar@0.18.10&#34;&gt;&lt;/script&gt;
&lt;link rel=&#34;stylesheet&#34; href=&#34;/css/markmap.css&#34;&gt;

&lt;script src=&#34;/js/markmap.js&#34;&gt;&lt;/script&gt;
</content>
        <category term="github" />
        <category term="hexo" />
        <category term="matery" />
        <category term="cdn" />
        <category term="seo" />
        <updated>2022-03-27T07:28:46.000Z</updated>
    </entry>
</feed>
