Update docs

This commit is contained in:
Mimi 2022-10-20 19:21:38 +08:00
parent f0594f65bd
commit a1eb4ca01c
3 changed files with 50 additions and 43 deletions

View File

@ -26,32 +26,62 @@ Add Live2D widget to web page. Compatible with PJAX.
- [demo.html](https://mi.js.org/live2d-widget/demo/demo.html) ,展现基础效果 - [demo.html](https://mi.js.org/live2d-widget/demo/demo.html) ,展现基础效果
- [login.html](https://mi.js.org/live2d-widget/demo/login.html) ,仿 NPM 的登陆界面 - [login.html](https://mi.js.org/live2d-widget/demo/login.html) ,仿 NPM 的登陆界面
## 依赖 Dependencies
本插件需要 Font Awesome 图标支持,请确保相关样式表已在页面中加载。以 Font Awesome v6 为例,请在 `<head>` 中加入:
Font Awesome is required for this plugin. Take Font Awesome v6 as an example, please add the following in `<head>`:
```xml
<link rel="stylesheet" href="https://fastly.jsdelivr.net/npm/@fortawesome/fontawesome-free@6/css/all.min.css">
```
否则图标将无法正常显示。(如果网页中已经加载了任何版本的 Font Awesome就不要重复加载了
## 使用 Usage ## 使用 Usage
将这一行代码加入 `<head>` 或 `<body>`,即可展现出效果: 将这一行代码加入 html 页面的 `head``body` 中,即可展现出效果:
```xml ```xml
<script src="https://fastly.jsdelivr.net/gh/stevenjoezhang/live2d-widget@latest/autoload.js"></script> <script src="https://fastly.jsdelivr.net/gh/stevenjoezhang/live2d-widget@latest/autoload.js"></script>
``` ```
如果网站启用了 PJAX由于看板娘不必每页刷新因此要注意将相关脚本放到 PJAX 刷新区域之外。 如果网站启用了 PJAX由于看板娘不必每页刷新因此要注意将相关脚本放到 PJAX 刷新区域之外。
换句话说,如果你是小白,或者只需要最基础的功能,就只用把这一行代码,连同前面加载 Font Awesome 的一行代码,一起放到 html 的 `<head>` 中即可 换句话说,如果你是小白,或者只需要最基础的功能,那么只用这一行代码即可加载看板娘。
对于用各种模版引擎(例如 NunjucksJinja 或者 PHP生成的页面也要自行修改方法类似只是可能略为麻烦。以 [Hexo](https://hexo.io) 为例,需要在主题相关的 ejs 或 njk 模版中正确配置路径,才可以加载。 对于用各种模版引擎(例如 NunjucksJinja 或者 PHP生成的页面也要自行修改方法类似只是可能略为麻烦。以 [Hexo](https://hexo.io) 为例,需要在主题相关的 ejs 或 njk 模版中正确配置路径,才可以加载。
**但是!我们强烈推荐自己进行配置,否则很多功能是不完整的,并且可能产生问题** **但是!我们强烈推荐自己进行配置,让看板娘更加适合你的网站**
如果你有兴趣自己折腾的话,请看下面的详细说明。 如果你有兴趣自己折腾的话,请看下面的详细说明。
## 配置 Configuration
你可以对照 `autoload.js` 的源码查看可选的配置项目。`autoload.js` 会自动加载三个文件:`waifu.css``live2d.min.js` 和 `waifu-tips.js`。`waifu-tips.js` 会创建 `initWidget` 函数,这就是加载看板娘的主函数。`initWidget` 函数接收一个 Object 类型的参数,作为看板娘的配置。以下是配置方式:
| 选项 | 类型 | 默认值 | 说明 |
| - | - | - | - |
| `waifuPath` | `string` | `https://fastly.jsdelivr.net/gh/stevenjoezhang/live2d-widget@latest/waifu-tips.json` | 看板娘资源路径,可自行修改 |
| `apiPath` | `string` | `https://live2d.fghrsh.net/api/` | API 路径,可选参数 |
| `cdnPath` | `string` | `https://fastly.jsdelivr.net/gh/fghrsh/live2d_api/` | CDN 路径,可选参数 |
| `tools` | `string[]` | 见 `autoload.js` | 加载的小工具按钮,可选参数 |
其中,`apiPath` 和 `cdnPath` 两个参数设置其中一项即可。`apiPath` 是后端 API 的 URL可以自行搭建并增加模型需要修改的内容比较多此处不再赘述可以参考 [live2d_api](https://github.com/fghrsh/live2d_api)。而 `cdnPath` 则是通过 jsDelivr 这样的 CDN 服务加载资源,更加稳定。
## 自定义 Customization
如果以上「配置」部分提供的选项还不足以满足你的需求,那么你可以自己进行修改。本仓库的目录结构如下:
- `src/waifu-tips.js` 包含了按钮和对话框的逻辑;
- `waifu-tips.js` 是由 `src/waifu-tips.js` 自动打包生成的,不建议直接修改;
- `waifu-tips.json` 中定义了触发条件(`selector`CSS 选择器)和触发时显示的文字(`text`
- `waifu.css` 是看板娘的样式表。
源文件是对 Hexo 的 [NexT 主题](http://github.com/next-theme/hexo-theme-next)有效的,为了适用于你自己的网页,可能需要自行修改,或增加新内容。
**警告:作者不对包括但不限于 `waifu-tips.js``waifu-tips.json` 文件中的内容负责,请自行确保它们是合适的。**
要在本地部署本项目的开发测试环境,你需要安装 Node.js 和 npm然后执行以下命令
```bash
git clone https://github.com/stevenjoezhang/live2d-widget.git
npm install
npm run build
```
如果有任何疑问,欢迎提 Issue。如果有任何修改建议欢迎提 Pull Request。
## 部署 Deploy
在本地完成了修改后,你可以将修改后的项目部署在服务器上,或者通过 CDN 加载,以便在网页中使用。
### Using CDN ### Using CDN
要自定义有关内容,可以把这个仓库 Fork 一份,然后进行修改。这时,使用方法对应地变为 要自定义有关内容,可以把这个仓库 Fork 一份,然后把修改后的内容通过 git push 到你的仓库中。这时,使用方法对应地变为
```xml ```xml
<script src="https://fastly.jsdelivr.net/gh/username/live2d-widget@latest/autoload.js"></script> <script src="https://fastly.jsdelivr.net/gh/username/live2d-widget@latest/autoload.js"></script>
``` ```
@ -63,18 +93,12 @@ Font Awesome is required for this plugin. Take Font Awesome v6 as an example, pl
你也可以直接把这些文件放到服务器上,而不是通过 CDN 加载。 你也可以直接把这些文件放到服务器上,而不是通过 CDN 加载。
- 如果你能够通过 `ssh` 访问你的主机,请把整个仓库克隆到服务器上。执行: - 如果你能够通过 `ssh` 访问你的主机,请把 Fork 并修改后的代码仓库克隆到服务器上。
```bash
cd /path/to/your/webroot
# Clone this repository
git clone https://github.com/stevenjoezhang/live2d-widget.git
```
- 如果你的主机无法用 `ssh` 连接(例如一般的虚拟主机),请选择 `Download ZIP`,然后通过 `ftp` 等方式上传到主机上,再解压到网站的目录下。 - 如果你的主机无法用 `ssh` 连接(例如一般的虚拟主机),请选择 `Download ZIP`,然后通过 `ftp` 等方式上传到主机上,再解压到网站的目录下。
- 如果你是通过 Hexo 等工具部署的静态博客,请在博客源文件(即 `source`)目录下,执行前述的 `git clone` 命令。重新部署博客时,相关文件就会自动上传到对应的路径下。为了避免这些文件被 Hexo 插件错误地修改,可能需要设置 `skip_render` - 如果你是通过 Hexo 等工具部署的静态博客,请把本项目的代码放在博客源文件目录下(例如 `source` 目录)。重新部署博客时,相关文件就会自动上传到对应的路径下。为了避免这些文件被 Hexo 插件错误地修改,可能需要设置 `skip_render`
这样,整个项目就可以通过你的服务器 IP 或者域名从公网访问了。不妨试试能否正常地通过浏览器打开 `autoload.js``live2d.min.js` 等文件,并确认这些文件的内容是完整和正确的。 这样,整个项目就可以通过你的服务器 IP 或者域名从公网访问了。不妨试试能否正常地通过浏览器打开 `autoload.js``live2d.min.js` 等文件,并确认这些文件的内容是完整和正确的。
一切正常的话,接下来修改一些配置就行了。(需要通过服务器上的文本编辑器修改;你也可以先在本地完成这一步骤,再上传到服务器上) 一切正常的话,接下来修改 `autoload.js` 中的常量 `live2d_path``live2d-widget` 这一目录的 URL 即可。比如说,如果你能够通过
修改 `autoload.js` 中的常量 `live2d_path``live2d-widget` 这一目录的 URL。比如说如果你能够通过
``` ```
https://example.com/path/to/live2d-widget/live2d.min.js https://example.com/path/to/live2d-widget/live2d.min.js
``` ```
@ -82,28 +106,13 @@ https://example.com/path/to/live2d-widget/live2d.min.js
``` ```
https://example.com/path/to/live2d-widget/ https://example.com/path/to/live2d-widget/
``` ```
路径末尾的 `/` 一定要加上。具体可以参考 `autoload.js` 内的注释。 路径末尾的 `/` 一定要加上。
完成后,在你要添加看板娘的界面加入 完成后,在你要添加看板娘的界面加入
```xml ```xml
<script src="https://example.com/path/to/live2d-widget/autoload.js"></script> <script src="https://example.com/path/to/live2d-widget/autoload.js"></script>
``` ```
就可以加载了。 就可以加载了。
## 后端 API
`initWidget` 方法接受名为 `apiPath``cdnPath` 的参数,两者设置其中一项即可。其中 `apiPath` 为后端 API 的 URL可以自行搭建并增加模型需要修改的内容比较多此处不再赘述。而 `cdnPath` 则是通过 jsDelivr 这样的 CDN 服务加载资源,更加稳定。
## 目录结构 Files
- `waifu-tips.js` 包含了按钮和对话框的逻辑;
- `waifu-tips.json` 中定义了触发条件(`selector`CSS 选择器)和触发时显示的文字(`text`
- `waifu.css` 是看板娘的样式表。
源文件是对 Hexo 的 [NexT 主题](http://github.com/next-theme/hexo-theme-next)有效的,为了适用于你自己的网页,可能需要自行修改,或增加新内容。
**警告:作者不对包括但不限于 `waifu-tips.js``waifu-tips.json` 文件中的内容负责,请自行确保它们是合适的。**
如果有任何疑问,欢迎提 Issue。如果有任何修改建议欢迎提 Pull Request。
## 鸣谢 Thanks ## 鸣谢 Thanks
<a href="https://www.browserstack.com/"><img height="80" src="https://live.browserstack.com/images/opensource/browserstack-logo.svg" alt="BrowserStack Logo"></a> <a href="https://www.browserstack.com/"><img height="80" src="https://live.browserstack.com/images/opensource/browserstack-logo.svg" alt="BrowserStack Logo"></a>
@ -129,7 +138,6 @@ https://github.com/xiazeyu/live2d-widget.js
https://github.com/summerscar/live2dDemo https://github.com/summerscar/live2dDemo
关于后端 API 模型: 关于后端 API 模型:
https://github.com/fghrsh/live2d_api
https://github.com/xiazeyu/live2d-widget-models https://github.com/xiazeyu/live2d-widget-models
https://github.com/xiaoski/live2d_models_collection https://github.com/xiaoski/live2d_models_collection
@ -168,3 +176,5 @@ https://community.live2d.com/discussion/140/webgl-developer-licence-and-javascri
https://www.fghrsh.net/post/170.html https://www.fghrsh.net/post/170.html
2020年1月1日起本项目不再依赖于 jQuery。 2020年1月1日起本项目不再依赖于 jQuery。
2022年11月1日起本项目不再需要用户单独加载 Font Awesome。

View File

@ -31,6 +31,7 @@ if (screen.width >= 768) {
loadExternalResource(live2d_path + "live2d.min.js", "js"), loadExternalResource(live2d_path + "live2d.min.js", "js"),
loadExternalResource(live2d_path + "waifu-tips.js", "js") loadExternalResource(live2d_path + "waifu-tips.js", "js")
]).then(() => { ]).then(() => {
// 配置参数的具体用法见 README.md
initWidget({ initWidget({
waifuPath: live2d_path + "waifu-tips.json", waifuPath: live2d_path + "waifu-tips.json",
//apiPath: "https://live2d.fghrsh.net/api/", //apiPath: "https://live2d.fghrsh.net/api/",
@ -39,9 +40,6 @@ if (screen.width >= 768) {
}); });
}); });
} }
// initWidget 第一个参数为 waifu-tips.json 的路径,第二个参数为 API 地址
// API 后端可自行搭建,参考 https://github.com/fghrsh/live2d_api
// 初始化看板娘会自动加载指定目录下的 waifu-tips.json
console.log(` console.log(`
__,.ヘヽ. / , __,.ヘヽ. / ,

View File

@ -3,7 +3,6 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>Live2D 看板娘 / Demo</title> <title>Live2D 看板娘 / Demo</title>
<link rel="stylesheet" href="https://fastly.jsdelivr.net/npm/@fortawesome/fontawesome-free@6/css/all.min.css">
<style> <style>
#github svg { #github svg {
transition: all 1s; transition: all 1s;