Replies: 2 comments
-
Here is a translated version of # Live2D Widget
![](https://forthebadge.com/images/badges/built-with-love.svg)
![](https://forthebadge.com/images/badges/uses-html.svg)
![](https://forthebadge.com/images/badges/made-with-javascript.svg)
![](https://forthebadge.com/images/badges/contains-cat-gifs.svg)
![](https://forthebadge.com/images/badges/powered-by-electricity.svg)
![](https://forthebadge.com/images/badges/makes-people-smile.svg)
## Features
Add Live2D widget to web page. Compatible with PJAX.
<img src="assets/screenshot-2.png" width="280"><img src="assets/screenshot-3.png" width="280"><img src="assets/screenshot-1.png" width="270">
(Note: The character models above are for demonstration purposes only and are not included in this repository.)
You can also check out example web pages:
- Check the effect in the lower left corner of [Mimi's Blog](https://zhangshuqiao.org)
- [demo.html](https://mi.js.org/live2d-widget/demo/demo.html) to demonstrate basic functionality
- [login.html](https://mi.js.org/live2d-widget/demo/login.html) to imitate the login interface of NPM
## Usage
If you are a beginner or only need the basic functionality, you can simply add the following line of code to the `head` or `body` of your HTML page to load the widget:
```xml
<script src="https://fastly.jsdelivr.net/gh/stevenjoezhang/live2d-widget@latest/autoload.js"></script>
```
The placement of the code depends on how your website is built. For example, if you are using [Hexo](https://hexo.io), you need to add the above code to the template file of your theme. The modification process is similar for pages generated using various template engines.
If your website uses PJAX, since the widget does not need to be refreshed on every page, make sure to place the script outside the PJAX refresh area.
**However, we strongly recommend configuring the widget yourself to make it more suitable for your website!**
If you are interested in customizing the widget, please refer to the detailed instructions below.
## Configuration
You can refer to the source code of `autoload.js` to see the available configuration options. `autoload.js` will automatically load three files: `waifu.css`, `live2d.min.js`, and `waifu-tips.js`. `waifu-tips.js` creates the `initWidget` function, which is the main function for loading the widget. The `initWidget` function accepts an object-type parameter as the configuration for the widget. The following are the available options:
| Option | Type | Default Value | Description |
| ------ | ---- | ------------- | ----------- |
| `waifuPath` | `string` | `https://fastly.jsdelivr.net/gh/stevenjoezhang/live2d-widget@latest/waifu-tips.json` | Path to the widget resources, can be modified |
| `apiPath` | `string` | `https://live2d.fghrsh.net/api/` | API path, optional |
| `cdnPath` | `string` | `https://fastly.jsdelivr.net/gh/fghrsh/live2d_api/` | CDN path, optional |
| `tools` | `string[]` | see `autoload.js` | Buttons of the loaded tools, optional |
Among them, the parameters `apiPath` and `cdnPath` only need to set one of them. `apiPath` is the URL of the backend API, which can be set up and modified by yourself (there are many things to modify, not discussed here). You can refer to [live2d_api](https://github.com/fghrsh/live2d_api) for more information. On the other hand, `cdnPath` is used to load resources through CDN services like jsDelivr, which provides better stability.
## Customization
If the options provided in the "Configuration" section above are not enough to meet your needs, you can make modifications yourself. The directory structure of this repository is as follows:
- `src/waifu-tips.js` contains the logic for the button and dialog box.
- `waifu-tips.js` is automatically generated by `src/waifu-tips.js` and it is not recommended to modify it directly.
- `waifu-tips.json` defines the triggering conditions (`selector`, CSS selector) and the displayed text when triggered (`text`).
- `waifu.css` is the style sheet for the virtual assistant.
By default, the CSS selector rules in `waifu-tips.json` are effective for the Hexo [NexT theme](http://github.com/next-theme/hexo-theme-next), but you may need to modify or add new content to make it suitable for your own website.
**Warning: The content in `waifu-tips.json` may not be suitable for all age groups or appropriate to access during work. Please ensure their suitability when using them.**
To deploy the development testing environment of this project locally, you need to install Node.js and npm, then execute the following commands:
```bash
git clone https://github.com/stevenjoezhang/live2d-widget.git
npm install
npm run build
```
If you have any questions, feel free to raise an issue. If you have any modification suggestions, welcome to submit a pull request.
## Deploy
After making modifications locally, you can deploy the modified project on a server or load it via a CDN for use on a webpage.
### Using CDN
To customize the content, you can fork this repository and push the modified content to your own repository using `git push`. In this case, the usage method becomes:
```xml
<script src="https://fastly.jsdelivr.net/gh/username/live2d-widget@latest/autoload.js"></script>
```
Replace `username` with your GitHub username. To ensure the content of the CDN is refreshed correctly, you need to create a new git tag and push it to the GitHub repository. Otherwise, `@latest` in the URL will still point to the previous version. Additionally, CDN itself has caching, so the changes may take some time to take effect. Relevant documentation:
- [Git Basics - Tagging](https://git-scm.com/book/en/v2/Git-Basics-Tagging)
- [Managing releases in a repository](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository)
### Self-host
Alternatively, you can directly host these files on your server instead of loading them via CDN.
- If you can connect to your host via `ssh`, clone the forked and modified code repository onto your server.
- If your host cannot be accessed via `ssh` (e.g., a regular virtual host), modify the code locally and upload the files to the website directory on the host using `ftp` or similar methods.
- If you are deploying a static blog using Hexo or similar tools, place the code of this project in the blog's source file directory (e.g., the `source` directory). When redeploying the blog, the relevant files will be automatically uploaded to the corresponding paths. To prevent these files from being incorrectly modified by Hexo plugins, you may need to set `skip_render`.
Afterwards, the entire project can be accessed through your domain name. You can try opening the `autoload.js` and `live2d.min.js` files in your browser and confirm that their content is complete and correct.
If everything is normal, you can proceed to modify the constant `live2d_path` in `autoload.js` to the URL of the `live2d-widget` directory. For example, if you can access `live2d.min.js` through the following URL:
```
https://example.com/path/to/live2d-widget/live2d.min.js
```
then modify the value of `live2d_path` to:
```
https://example.com/path/to/live2d-widget/
```
Make sure to include the trailing `/` in the path.
Once done, add the following code to the interface where you want to add the live2d-widget:
```xml
<script src="https://example.com/path/to/live2d-widget/autoload.js"></script>
```
This will load the widget.
## Thanks
<a href="https://www.browserstack.com/">
<picture>
<source media="(prefers-color-scheme: dark)" height="80" srcset="https://d98b8t1nnulk5.cloudfront.net/production/images/layout/logo-header.png?1469004780">
<source media="(prefers-color-scheme: light)" height="80" srcset="https://live.browserstack.com/images/opensource/browserstack-logo.svg">
<img alt="BrowserStack Logo" height="80" src="https://live.browserstack.com/images/opensource/browserstack-logo.svg">
</picture>
</a>
> Thanks to [BrowserStack](https://www.browserstack.com/) for providing the infrastructure that allows us to test in real browsers!
<a href="https://www.jsdelivr.com">
<picture>
<source media="(prefers-color-scheme: dark)" height="80" srcset="https://raw.githubusercontent.com/jsdelivr/jsdelivr-media/master/white/svg/jsdelivr-logo-horizontal.svg">
<source media="(prefers-color-scheme: light)" height="80" srcset="https://raw.githubusercontent.com/jsdelivr/jsdelivr-media/master/default/svg/jsdelivr-logo-horizontal.svg">
<img alt="jsDelivr Logo" height="80" src="https://raw.githubusercontent.com/jsdelivr/jsdelivr-media/master/default/svg/jsdelivr-logo-horizontal.svg">
</picture>
</a>
> Thanks to jsDelivr for providing public CDN service.
The code is modified based on this blog post:
https://www.fghrsh.net/post/123.html
Thanks to [Hitokoto](https://hitokoto.cn) for providing the sentence API.
|
Beta Was this translation helpful? Give feedback.
0 replies
-
Thanks man. Appreciate it! :) |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi there! I came across a "dynamic cat" @ https://csrgxtu.github.io and I was quite impressed by it. Sort of wanted to add one to my personal page, and after some ransacking I stumbled upon https://github.com/xiazeyu/live2d-widget.js which seemed to have gone stale and directed me this repository. So, here I am. The project looks awesome, and my kudos to everyone who have put this together. I'd like to see English translations/documentations if that's possible. I'd like to help you with detailed "user guides" style instructions on how to get started with this library, if you could give me the most important pointers, because I have 0 knowledge in Chinese. Hoping for a positive reply :)
Beta Was this translation helpful? Give feedback.
All reactions