Files
llbzow.github.io/live2d-widget/README.html
2022-11-17 14:25:21 +00:00

555 lines
32 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<script src="/live2d-widget/autoload.js"></script>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
<meta name="theme-color" content="#222">
<meta name="generator" content="Hexo 6.2.0">
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
<link rel="mask-icon" href="/images/logo.svg" color="#222">
<link rel="stylesheet" href="/css/main.css">
<link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">
<link rel="stylesheet" href="/lib/pace/pace-theme-minimal.min.css">
<script src="/lib/pace/pace.min.js"></script>
<script id="hexo-configurations">
var NexT = window.NexT || {};
var CONFIG = {"hostname":"example.com","root":"/","scheme":"Gemini","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":false,"show_result":false,"style":null},"back2top":{"enable":true,"sidebar":false,"scrollpercent":false},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":false,"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":false,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}}};
</script>
<meta name="description" content="Live2D Widget 特性 Feature在网页中添加 Live2D 看板娘。兼容 PJAX支持无刷新加载。Add Live2D widget to web page. Compatible with PJAX. (注:以上人物模型仅供展示之用,本仓库并不包含任何模型。) 你也可以查看示例网页: 在 米米的博客 的左下角可查看效果 demo.html展现基础功能 login.html">
<meta property="og:type" content="website">
<meta property="og:title" content="流量不足ow的个人博客">
<meta property="og:url" content="http://example.com/live2d-widget/README.html">
<meta property="og:site_name" content="流量不足ow的个人博客">
<meta property="og:description" content="Live2D Widget 特性 Feature在网页中添加 Live2D 看板娘。兼容 PJAX支持无刷新加载。Add Live2D widget to web page. Compatible with PJAX. (注:以上人物模型仅供展示之用,本仓库并不包含任何模型。) 你也可以查看示例网页: 在 米米的博客 的左下角可查看效果 demo.html展现基础功能 login.html">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://forthebadge.com/images/badges/built-with-love.svg">
<meta property="og:image" content="https://forthebadge.com/images/badges/uses-html.svg">
<meta property="og:image" content="https://forthebadge.com/images/badges/made-with-javascript.svg">
<meta property="og:image" content="https://forthebadge.com/images/badges/contains-cat-gifs.svg">
<meta property="og:image" content="https://forthebadge.com/images/badges/powered-by-electricity.svg">
<meta property="og:image" content="https://forthebadge.com/images/badges/makes-people-smile.svg">
<meta property="og:image" content="http://example.com/live2d-widget/assets/screenshot-2.png">
<meta property="og:image" content="http://example.com/live2d-widget/assets/screenshot-3.png">
<meta property="og:image" content="http://example.com/live2d-widget/assets/screenshot-1.png">
<meta property="og:image" content="https://live.browserstack.com/images/opensource/browserstack-logo.svg">
<meta property="og:image" content="https://raw.githubusercontent.com/jsdelivr/jsdelivr-media/master/default/svg/jsdelivr-logo-horizontal.svg">
<meta property="article:published_time" content="2022-11-07T17:12:32.299Z">
<meta property="article:modified_time" content="2022-11-07T16:45:40.960Z">
<meta property="article:author" content="llbzow">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://forthebadge.com/images/badges/built-with-love.svg">
<link rel="canonical" href="http://example.com/live2d-widget/README">
<script id="page-configurations">
// https://hexo.io/docs/variables.html
CONFIG.page = {
sidebar: "",
isHome : false,
isPost : false,
lang : 'zh-CN'
};
</script>
<script>
(function () {
if ('') {
if (prompt('请输入文章密码') !== '') {
alert('密码错误!');
if (history.length === 1) {
location.replace("http://blog.llbzow.tk"); // 这里替换成你的首页
} else {
history.back();
}
}
}
})();
</script>
<title> | 流量不足ow的个人博客
</title>
<noscript>
<style>
.use-motion .brand,
.use-motion .menu-item,
.sidebar-inner,
.use-motion .post-block,
.use-motion .pagination,
.use-motion .comments,
.use-motion .post-header,
.use-motion .post-body,
.use-motion .collection-header { opacity: initial; }
.use-motion .site-title,
.use-motion .site-subtitle {
opacity: initial;
top: initial;
}
.use-motion .logo-line-before i { left: initial; }
.use-motion .logo-line-after i { right: initial; }
</style>
</noscript>
</head>
<body itemscope itemtype="http://schema.org/WebPage">
<div class="container use-motion">
<div class="headband"></div>
<header class="header" itemscope itemtype="http://schema.org/WPHeader">
<div class="header-inner"><div class="site-brand-container">
<div class="site-nav-toggle">
<div class="toggle" aria-label="切换导航栏">
<span class="toggle-line toggle-line-first"></span>
<span class="toggle-line toggle-line-middle"></span>
<span class="toggle-line toggle-line-last"></span>
</div>
</div>
<div class="site-meta">
<a href="/" class="brand" rel="start">
<span class="logo-line-before"><i></i></span>
<h1 class="site-title">流量不足ow的个人博客</h1>
<span class="logo-line-after"><i></i></span>
</a>
</div>
<div class="site-nav-right">
<div class="toggle popup-trigger">
</div>
</div>
</div>
<nav class="site-nav">
<ul id="menu" class="main-menu menu">
<li class="menu-item menu-item-home">
<a href="/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a>
</li>
<li class="menu-item menu-item-about">
<a href="/about/" rel="section"><i class="fa fa-user fa-fw"></i>关于</a>
</li>
<li class="menu-item menu-item-tags">
<a href="/tags/" rel="section"><i class="fa fa-tags fa-fw"></i>标签</a>
</li>
<li class="menu-item menu-item-categories">
<a href="/categories/" rel="section"><i class="fa fa-th fa-fw"></i>分类</a>
</li>
<li class="menu-item menu-item-archives">
<a href="/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>归档</a>
</li>
</ul>
</nav>
</div>
</header>
<div class="back-to-top">
<i class="fa fa-arrow-up"></i>
<span>0%</span>
</div>
<main class="main">
<div class="main-inner">
<div class="content-wrap">
<div class="content page posts-expand">
<div class="post-block" lang="zh-CN">
<header class="post-header">
<h1 class="post-title" itemprop="name headline">
</h1>
<div class="post-meta">
</div>
</header>
<div class="post-body">
<h1 id="Live2D-Widget"><a href="#Live2D-Widget" class="headerlink" title="Live2D Widget"></a>Live2D Widget</h1><p><img src="https://forthebadge.com/images/badges/built-with-love.svg"><br><img src="https://forthebadge.com/images/badges/uses-html.svg"><br><img src="https://forthebadge.com/images/badges/made-with-javascript.svg"><br><img src="https://forthebadge.com/images/badges/contains-cat-gifs.svg"><br><img src="https://forthebadge.com/images/badges/powered-by-electricity.svg"><br><img src="https://forthebadge.com/images/badges/makes-people-smile.svg"></p>
<h2 id="特性-Feature"><a href="#特性-Feature" class="headerlink" title="特性 Feature"></a>特性 Feature</h2><p>在网页中添加 Live2D 看板娘。兼容 PJAX支持无刷新加载。<br>Add Live2D widget to web page. Compatible with PJAX.</p>
<p><img src="assets/screenshot-2.png" width="280"><img src="assets/screenshot-3.png" width="280"><img src="assets/screenshot-1.png" width="270"></p>
<p>(注:以上人物模型仅供展示之用,本仓库并不包含任何模型。)</p>
<p>你也可以查看示例网页:</p>
<ul>
<li><a target="_blank" rel="noopener" href="https://zhangshuqiao.org/">米米的博客</a> 的左下角可查看效果</li>
<li><a target="_blank" rel="noopener" href="https://mi.js.org/live2d-widget/demo/demo.html">demo.html</a>,展现基础功能</li>
<li><a target="_blank" rel="noopener" href="https://mi.js.org/live2d-widget/demo/login.html">login.html</a>,仿 NPM 的登陆界面</li>
</ul>
<h2 id="使用-Usage"><a href="#使用-Usage" class="headerlink" title="使用 Usage"></a>使用 Usage</h2><p>如果你是小白,或者只需要最基础的功能,那么只用将这一行代码加入 html 页面的 <code>head</code><code>body</code> 中,即可加载看板娘:</p>
<figure class="highlight xml"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">script</span> <span class="attr">src</span>=<span class="string">&quot;https://fastly.jsdelivr.net/gh/stevenjoezhang/live2d-widget@latest/autoload.js&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br></pre></td></tr></table></figure>
<p>添加代码的位置取决于你的网站的构建方式。例如,如果你使用的是 <a target="_blank" rel="noopener" href="https://hexo.io/">Hexo</a>,那么需要在主题的模版文件中添加以上代码。对于用各种模版引擎生成的页面,修改方法类似。<br>如果网站启用了 PJAX由于看板娘不必每页刷新需要注意将该脚本放到 PJAX 刷新区域之外。</p>
<p><strong>但是!我们强烈推荐自己进行配置,让看板娘更加适合你的网站!</strong><br>如果你有兴趣自己折腾的话,请看下面的详细说明。</p>
<h2 id="配置-Configuration"><a href="#配置-Configuration" class="headerlink" title="配置 Configuration"></a>配置 Configuration</h2><p>你可以对照 <code>autoload.js</code> 的源码查看可选的配置项目。<code>autoload.js</code> 会自动加载三个文件:<code>waifu.css</code><code>live2d.min.js</code><code>waifu-tips.js</code><code>waifu-tips.js</code> 会创建 <code>initWidget</code> 函数,这就是加载看板娘的主函数。<code>initWidget</code> 函数接收一个 Object 类型的参数,作为看板娘的配置。以下是配置选项:</p>
<table>
<thead>
<tr>
<th>选项</th>
<th>类型</th>
<th>默认值</th>
<th>说明</th>
</tr>
</thead>
<tbody><tr>
<td><code>waifuPath</code></td>
<td><code>string</code></td>
<td><code>https://fastly.jsdelivr.net/gh/stevenjoezhang/live2d-widget@latest/waifu-tips.json</code></td>
<td>看板娘资源路径,可自行修改</td>
</tr>
<tr>
<td><code>apiPath</code></td>
<td><code>string</code></td>
<td><code>https://live2d.fghrsh.net/api/</code></td>
<td>API 路径,可选参数</td>
</tr>
<tr>
<td><code>cdnPath</code></td>
<td><code>string</code></td>
<td><code>https://fastly.jsdelivr.net/gh/fghrsh/live2d_api/</code></td>
<td>CDN 路径,可选参数</td>
</tr>
<tr>
<td><code>tools</code></td>
<td><code>string[]</code></td>
<td><code>autoload.js</code></td>
<td>加载的小工具按钮,可选参数</td>
</tr>
</tbody></table>
<p>其中,<code>apiPath</code><code>cdnPath</code> 两个参数设置其中一项即可。<code>apiPath</code> 是后端 API 的 URL可以自行搭建并增加模型需要修改的内容比较多此处不再赘述可以参考 <a target="_blank" rel="noopener" href="https://github.com/fghrsh/live2d_api">live2d_api</a>。而 <code>cdnPath</code> 则是通过 jsDelivr 这样的 CDN 服务加载资源,更加稳定。</p>
<h2 id="自定义-Customization"><a href="#自定义-Customization" class="headerlink" title="自定义 Customization"></a>自定义 Customization</h2><p>如果以上「配置」部分提供的选项还不足以满足你的需求,那么你可以自己进行修改。本仓库的目录结构如下:</p>
<ul>
<li><code>src/waifu-tips.js</code> 包含了按钮和对话框的逻辑;</li>
<li><code>waifu-tips.js</code> 是由 <code>src/waifu-tips.js</code> 自动打包生成的,不建议直接修改;</li>
<li><code>waifu-tips.json</code> 中定义了触发条件(<code>selector</code>CSS 选择器)和触发时显示的文字(<code>text</code></li>
<li><code>waifu.css</code> 是看板娘的样式表。</li>
</ul>
<p><code>waifu-tips.json</code> 中默认的 CSS 选择器规则是对 Hexo 的 <a target="_blank" rel="noopener" href="http://github.com/next-theme/hexo-theme-next">NexT 主题</a> 有效的,为了适用于你自己的网页,可能需要自行修改,或增加新内容。<br><strong>警告:<code>waifu-tips.json</code> 中的内容可能不适合所有年龄段,或不宜在工作期间访问。在使用时,请自行确保它们是合适的。</strong></p>
<p>要在本地部署本项目的开发测试环境,你需要安装 Node.js 和 npm然后执行以下命令</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">git <span class="built_in">clone</span> https://github.com/stevenjoezhang/live2d-widget.git</span><br><span class="line">npm install</span><br><span class="line">npm run build</span><br></pre></td></tr></table></figure>
<p>如果有任何疑问,欢迎提 Issue。如果有任何修改建议欢迎提 Pull Request。</p>
<h2 id="部署-Deploy"><a href="#部署-Deploy" class="headerlink" title="部署 Deploy"></a>部署 Deploy</h2><p>在本地完成了修改后,你可以将修改后的项目部署在服务器上,或者通过 CDN 加载,以便在网页中使用。</p>
<h3 id="Using-CDN"><a href="#Using-CDN" class="headerlink" title="Using CDN"></a>Using CDN</h3><p>要自定义有关内容,可以把这个仓库 Fork 一份,然后把修改后的内容通过 git push 到你的仓库中。这时,使用方法对应地变为</p>
<figure class="highlight xml"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">script</span> <span class="attr">src</span>=<span class="string">&quot;https://fastly.jsdelivr.net/gh/username/live2d-widget@latest/autoload.js&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br></pre></td></tr></table></figure>
<p>将此处的 <code>username</code> 替换为你的 GitHub 用户名。为了使 CDN 的内容正常刷新,需要创建新的 git tag 并推送至 GitHub 仓库中,否则此处的 <code>@latest</code> 仍然指向更新前的文件。此外 CDN 本身存在缓存,因此改动可能需要一定的时间生效。相关文档:</p>
<ul>
<li><a target="_blank" rel="noopener" href="https://git-scm.com/book/en/v2/Git-Basics-Tagging">Git Basics - Tagging</a></li>
<li><a target="_blank" rel="noopener" href="https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository">Managing releases in a repository</a></li>
</ul>
<h3 id="Self-host"><a href="#Self-host" class="headerlink" title="Self-host"></a>Self-host</h3><p>你也可以直接把这些文件放到服务器上,而不是通过 CDN 加载。</p>
<ul>
<li>如果你能够通过 <code>ssh</code> 连接你的主机,请把 Fork 并修改后的代码仓库克隆到服务器上。</li>
<li>如果你的主机无法用 <code>ssh</code> 连接(例如一般的虚拟主机),请在本地修改好代码后,通过 <code>ftp</code> 等方式将文件上传到主机的网站的目录下。</li>
<li>如果你是通过 Hexo 等工具部署的静态博客,请把本项目的代码放在博客源文件目录下(例如 <code>source</code> 目录)。重新部署博客时,相关文件就会自动上传到对应的路径下。为了避免这些文件被 Hexo 插件错误地修改,可能需要设置 <code>skip_render</code></li>
</ul>
<p>这样,整个项目就可以通过你的域名访问了。不妨试试能否正常地通过浏览器打开 <code>autoload.js</code><code>live2d.min.js</code> 等文件,并确认这些文件的内容是完整和正确的。<br>一切正常的话,接下来修改 <code>autoload.js</code> 中的常量 <code>live2d_path</code><code>live2d-widget</code> 这一目录的 URL 即可。比如说,如果你能够通过</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">https://example.com/path/to/live2d-widget/live2d.min.js</span><br></pre></td></tr></table></figure>
<p>访问到 <code>live2d.min.js</code>,那么就把 <code>live2d_path</code> 的值修改为</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">https://example.com/path/to/live2d-widget/</span><br></pre></td></tr></table></figure>
<p>路径末尾的 <code>/</code> 一定要加上。<br>完成后,在你要添加看板娘的界面加入</p>
<figure class="highlight xml"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">script</span> <span class="attr">src</span>=<span class="string">&quot;https://example.com/path/to/live2d-widget/autoload.js&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br></pre></td></tr></table></figure>
<p>就可以加载了。</p>
<h2 id="鸣谢-Thanks"><a href="#鸣谢-Thanks" class="headerlink" title="鸣谢 Thanks"></a>鸣谢 Thanks</h2><p><a target="_blank" rel="noopener" href="https://www.browserstack.com/"><img height="80" src="https://live.browserstack.com/images/opensource/browserstack-logo.svg" alt="BrowserStack Logo"></a></p>
<blockquote>
<p>感谢 BrowserStack 容许我们在真实的浏览器中测试此项目。<br>Thanks to <a target="_blank" rel="noopener" href="https://www.browserstack.com/">BrowserStack</a> for providing the infrastructure that allows us to test in real browsers!</p>
</blockquote>
<p><a target="_blank" rel="noopener" href="https://www.jsdelivr.com"><img height="80" src="https://raw.githubusercontent.com/jsdelivr/jsdelivr-media/master/default/svg/jsdelivr-logo-horizontal.svg"></a></p>
<blockquote>
<p>感谢 jsDelivr 提供的 CDN 服务。<br>Thanks jsDelivr for providing public CDN service.</p>
</blockquote>
<p>代码自这篇博文魔改而来:<br><a target="_blank" rel="noopener" href="https://www.fghrsh.net/post/123.html">https://www.fghrsh.net/post/123.html</a></p>
<p>感谢 <a target="_blank" rel="noopener" href="https://hitokoto.cn/">一言</a> 提供的语句接口。</p>
<p>点击看板娘的纸飞机按钮时,会出现一个彩蛋,这来自于 <a target="_blank" rel="noopener" href="http://www.websiteasteroids.com/">WebsiteAsteroids</a></p>
<h2 id="更多-More"><a href="#更多-More" class="headerlink" title="更多 More"></a>更多 More</h2><p>更多内容可以参考:<br><a target="_blank" rel="noopener" href="https://nocilol.me/archives/lab/add-dynamic-poster-girl-with-live2d-to-your-blog-02">https://nocilol.me/archives/lab/add-dynamic-poster-girl-with-live2d-to-your-blog-02</a><br><a target="_blank" rel="noopener" href="https://github.com/xiazeyu/live2d-widget.js">https://github.com/xiazeyu/live2d-widget.js</a><br><a target="_blank" rel="noopener" href="https://github.com/summerscar/live2dDemo">https://github.com/summerscar/live2dDemo</a></p>
<p>关于后端 API 模型:<br><a target="_blank" rel="noopener" href="https://github.com/xiazeyu/live2d-widget-models">https://github.com/xiazeyu/live2d-widget-models</a><br><a target="_blank" rel="noopener" href="https://github.com/xiaoski/live2d_models_collection">https://github.com/xiaoski/live2d_models_collection</a></p>
<p>除此之外,还有桌面版本:<br><a target="_blank" rel="noopener" href="https://github.com/amorist/platelet">https://github.com/amorist/platelet</a><br><a target="_blank" rel="noopener" href="https://github.com/akiroz/Live2D-Widget">https://github.com/akiroz/Live2D-Widget</a><br><a target="_blank" rel="noopener" href="https://github.com/zenghongtu/PPet">https://github.com/zenghongtu/PPet</a><br><a target="_blank" rel="noopener" href="https://github.com/LikeNeko/L2dPetForMac">https://github.com/LikeNeko/L2dPetForMac</a></p>
<p>以及 Wallpaper Engine<br><a target="_blank" rel="noopener" href="https://github.com/guansss/nep-live2d">https://github.com/guansss/nep-live2d</a></p>
<h2 id="许可证-License"><a href="#许可证-License" class="headerlink" title="许可证 License"></a>许可证 License</h2><p>Released under the GNU General Public License v3<br><a target="_blank" rel="noopener" href="http://www.gnu.org/licenses/gpl-3.0.html">http://www.gnu.org/licenses/gpl-3.0.html</a></p>
<p>本仓库并不包含任何模型,用作展示的所有 Live2D 模型、图片、动作数据等版权均属于其原作者,仅供研究学习,不得用于商业用途。</p>
<p>Live2D 官方网站:<br><a target="_blank" rel="noopener" href="https://www.live2d.com/en/">https://www.live2d.com/en/</a><br><a target="_blank" rel="noopener" href="https://live2d.github.io/">https://live2d.github.io</a></p>
<p>Live2D Cubism Core は Live2D Proprietary Software License で提供しています。<br><a target="_blank" rel="noopener" href="https://www.live2d.com/eula/live2d-proprietary-software-license-agreement_en.html">https://www.live2d.com/eula/live2d-proprietary-software-license-agreement_en.html</a><br>Live2D Cubism Components は Live2D Open Software License で提供しています。<br><a target="_blank" rel="noopener" href="http://www.live2d.com/eula/live2d-open-software-license-agreement_en.html">http://www.live2d.com/eula/live2d-open-software-license-agreement_en.html</a></p>
<blockquote>
<p>The terms and conditions do prohibit modification, but obfuscating in <code>live2d.min.js</code> would not be considered illegal modification.</p>
</blockquote>
<p><a target="_blank" rel="noopener" href="https://community.live2d.com/discussion/140/webgl-developer-licence-and-javascript-question">https://community.live2d.com/discussion/140/webgl-developer-licence-and-javascript-question</a></p>
<h2 id="更新-Update"><a href="#更新-Update" class="headerlink" title="更新 Update"></a>更新 Update</h2><p>2018年10月31日由 fghrsh 提供的原 API 停用,请更新至新地址。参考文章:<br><a target="_blank" rel="noopener" href="https://www.fghrsh.net/post/170.html">https://www.fghrsh.net/post/170.html</a></p>
<p>2020年1月1日起本项目不再依赖于 jQuery。</p>
<p>2022年11月1日起本项目不再需要用户单独加载 Font Awesome。</p>
<link rel="stylesheet" href="/css/spoiler.css" type="text/css"><script src="/js/spoiler.js" type="text/javascript" async></script>
</div>
</div>
</div>
<div class="comments" id="gitalk-container"></div>
<script>
window.addEventListener('tabs:register', () => {
let { activeClass } = CONFIG.comments;
if (CONFIG.comments.storage) {
activeClass = localStorage.getItem('comments_active') || activeClass;
}
if (activeClass) {
let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
if (activeTab) {
activeTab.click();
}
}
});
if (CONFIG.comments.storage) {
window.addEventListener('tabs:click', event => {
if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
let commentClass = event.target.classList[1];
localStorage.setItem('comments_active', commentClass);
});
}
</script>
</div>
<div class="toggle sidebar-toggle">
<span class="toggle-line toggle-line-first"></span>
<span class="toggle-line toggle-line-middle"></span>
<span class="toggle-line toggle-line-last"></span>
</div>
<aside class="sidebar">
<div class="sidebar-inner">
<ul class="sidebar-nav motion-element">
<li class="sidebar-nav-toc">
文章目录
</li>
<li class="sidebar-nav-overview">
站点概览
</li>
</ul>
<!--noindex-->
<div class="post-toc-wrap sidebar-panel">
<div class="post-toc motion-element"><ol class="nav"><li class="nav-item nav-level-1"><a class="nav-link" href="#Live2D-Widget"><span class="nav-number">1.</span> <span class="nav-text">Live2D Widget</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#%E7%89%B9%E6%80%A7-Feature"><span class="nav-number">1.1.</span> <span class="nav-text">特性 Feature</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E4%BD%BF%E7%94%A8-Usage"><span class="nav-number">1.2.</span> <span class="nav-text">使用 Usage</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E9%85%8D%E7%BD%AE-Configuration"><span class="nav-number">1.3.</span> <span class="nav-text">配置 Configuration</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E8%87%AA%E5%AE%9A%E4%B9%89-Customization"><span class="nav-number">1.4.</span> <span class="nav-text">自定义 Customization</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E9%83%A8%E7%BD%B2-Deploy"><span class="nav-number">1.5.</span> <span class="nav-text">部署 Deploy</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#Using-CDN"><span class="nav-number">1.5.1.</span> <span class="nav-text">Using CDN</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#Self-host"><span class="nav-number">1.5.2.</span> <span class="nav-text">Self-host</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E9%B8%A3%E8%B0%A2-Thanks"><span class="nav-number">1.6.</span> <span class="nav-text">鸣谢 Thanks</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E6%9B%B4%E5%A4%9A-More"><span class="nav-number">1.7.</span> <span class="nav-text">更多 More</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E8%AE%B8%E5%8F%AF%E8%AF%81-License"><span class="nav-number">1.8.</span> <span class="nav-text">许可证 License</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%E6%9B%B4%E6%96%B0-Update"><span class="nav-number">1.9.</span> <span class="nav-text">更新 Update</span></a></li></ol></li></ol></div>
</div>
<!--/noindex-->
<div class="site-overview-wrap sidebar-panel">
<div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
<img class="site-author-image" itemprop="image" alt="llbzow"
src="/images/avatar.png">
<p class="site-author-name" itemprop="name">llbzow</p>
<div class="site-description" itemprop="description"></div>
</div>
<div class="site-state-wrap motion-element">
<nav class="site-state">
<div class="site-state-item site-state-posts">
<a href="/archives/">
<span class="site-state-item-count">8</span>
<span class="site-state-item-name">日志</span>
</a>
</div>
<div class="site-state-item site-state-categories">
<a href="/categories/">
<span class="site-state-item-count">2</span>
<span class="site-state-item-name">分类</span></a>
</div>
<div class="site-state-item site-state-tags">
<a href="/tags/">
<span class="site-state-item-count">2</span>
<span class="site-state-item-name">标签</span></a>
</div>
</nav>
</div>
</div>
</div>
</aside>
<div id="sidebar-dimmer"></div>
</div>
</main>
<footer class="footer">
<div class="footer-inner">
<div class="copyright">
&copy; 2022-06
<span itemprop="copyrightYear">2022</span>
<span class="with-love">
<i class="fa fa-heart"></i>
</span>
<span class="author" itemprop="copyrightHolder">llbzow</span>
</div>
<!--
<div class="powered-by">由 <a href="https://hexo.io/" class="theme-link" rel="noopener" target="_blank">Hexo</a> & <a href="https://theme-next.org/" class="theme-link" rel="noopener" target="_blank">NexT.Gemini</a> 强力驱动
</div>
-->
<div class="busuanzi-count">
<script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
<span class="post-meta-item" id="busuanzi_container_site_uv" style="display: none;">
<span class="post-meta-item-icon">
<i class="fa fa-user"></i>
</span>
<span class="site-uv" title="总访客量">
<span id="busuanzi_value_site_uv"></span>
</span>
</span>
<span class="post-meta-divider">|</span>
<span class="post-meta-item" id="busuanzi_container_site_pv" style="display: none;">
<span class="post-meta-item-icon">
<i class="fa fa-eye"></i>
</span>
<span class="site-pv" title="总访问量">
<span id="busuanzi_value_site_pv"></span>
</span>
</span>
</div>
</div>
</footer>
</div>
<script color='0,0,255' opacity='0.5' zIndex='-1' count='99' src="/lib/canvas-nest/canvas-nest.min.js"></script>
<script size="300" alpha="0.6" zIndex="-1" src="/lib/canvas-ribbon/canvas-ribbon.js"></script>
<script src="/lib/anime.min.js"></script>
<script src="/lib/velocity/velocity.min.js"></script>
<script src="/lib/velocity/velocity.ui.min.js"></script>
<script src="/js/utils.js"></script>
<script src="/js/motion.js"></script>
<script src="/js/schemes/pisces.js"></script>
<script src="/js/next-boot.js"></script>
<script defer src="/lib/three/three.min.js"></script>
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.css">
<script>
NexT.utils.loadComments(document.querySelector('#gitalk-container'), () => {
NexT.utils.getScript('//cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.js', () => {
var gitalk = new Gitalk({
clientID : '1e2867144d855824b913# GitHub Application Client ID',
clientSecret: '3c474768436b020bd64b81c163e40c7ac7e3f1d6# GitHub Application Client Secret',
repo : 'BlogComments# Repository name to store issues',
owner : 'llbzow# GitHub repo owner',
admin : ['llbzow# GitHub repo owner and collaborators, only these guys can initialize gitHub issues'],
id : 'f38fb2319f66b8110707a7a81c6dd4d3',
language: '',
distractionFreeMode: true
});
gitalk.render('gitalk-container');
}, window.Gitalk);
});
</script>
</body>
</html>