This article is translated from ChatGPT.
🦋 Butterfly has been updated to 4.10.
📚 Table of Contents
🚀 Get Started - 📑 Theme Pages - 📌 Theme Configuration Part 1 - ⚔️ Theme Configuration Part 2 - ❓ Q&A - ⚡️ Advanced Tutorials
Math
Do not use MathJax syntax in the headings; the TOC may not display MathJax properly and may show the MathJax code instead.
It is recommended to use KaTeX for better rendering. There's an introduction below!
Modify your theme configuration file
:
1 | mathjax: |
If
per_page
is set totrue
, then Mathjax service will be loaded on every page. If set tofalse
, you need to addmathjax: true
in the Front-matter of the article to load Mathjax service for that specific article.
Next, you need to modify the default markdown
renderer to achieve the MathJax effect.
Check out: hexo-renderer-kramed
The following steps are performed in your Hexo blog directory (not the Butterfly directory):
Install the plugin
1
2npm uninstall hexo-renderer-marked --save
npm install hexo-renderer-kramed --saveConfigure the root configuration file of Hexo
1
2
3
4
5
6
7
8kramed:
gfm: true
pedantic: false
sanitize: false
tables: true
breaks: true
smartLists: true
smartypants: true
Result:
Do not use KaTeX syntax in the headings; the TOC cannot display KaTeX properly.
First, disable MathJax
(if you have configured it), and then modify your theme configuration file
to load katex.min.css
:
1 | katex: |
You do not need to add katex.min.js
to render mathematical equations. Instead, you need to uninstall your previous Hexo markdown renderer and install other plugins.
Uninstall the marked plugin and install hexo-renderer-markdown-it:
1 | npm un hexo-renderer-marked --save # Uninstall this if you have it |
Configure in the _config.yml
of the Hexo root directory:
1 | markdown: |
For other configurations, please refer to katex official documentation.
Note that the Katex generated by this method does not have italics.
Uninstall the marked plugin and install the new hexo-renderer-markdown-it-plus
:
1 | # Replace `hexo-renderer-kramed` or `hexo-renderer-marked`, etc., the markdown renderer of Hexo that you can find in your package.json, and uninstall it. |
Note that hexo-renderer-markdown-it-plus
is no longer actively maintained. So, we are using @upupming/hexo-renderer-markdown-it-plus
, which incorporates @neilsustc/markdown-it-katex
, which is also used by the VSCode plugin Markdown All in One, so we can get the latest KaTeX features like \tag{}
.
You can also control KaTeX settings through @neilsustc/markdown-it-katex
. All configurable options can be found at https://katex.org/docs/options.html. For example, if you want to disable the lengthy warning messages printed by KaTeX in the console, you can use the following configuration in the root directory's _config.yml
to set strict
to false:
1 | markdown_it_plus: |
Of course, you can use this feature to define some commonly used macros
.
Because KaTeX is faster and lighter, it does not have as many features as MathJax (such as right-click context menu). For users who were using MathJax, the theme also includes KaTeX's copy feature.
Search
Remember to run hexo clean
If you are using hexo-algoliasearch, please configure the
title
,permalink
, andcontent
parameters in thefields
setting.
You need to install hexo-algolia or hexo-algoliasearch and configure them according to their respective documentation.
Modify the
theme configuration file
1 | algolia_search: |
Remember to run hexo clean
You need to install hexo-generator-searchdb or hexo-generator-search and configure them according to their documentation.
Modify the
theme configuration file
1 | # Local search |
Parameter | Explanation |
---|---|
enable | Whether to enable local search |
preload | Preload: When enabled, the search file will be automatically loaded when entering the page. When disabled, the search file will only be loaded when clicking the search button. |
top_n_per_article | Top n results per article to display, default to show the first 1 result |
unescape | Unescape HTML strings to the readable format |
CDN | CDN address of the search file (default to use local link) |
DocSearch is another search service provided by Algolia. For specific application and usage instructions, please refer to the DocSearch documentation.
1 | docsearch: |
Parameter | Explanation |
---|---|
enable | [Required] Whether to enable DocSearch |
appId | [Required] Your Algolia application ID |
apiKey | [Required] Your Algolia search API key |
indexName | [Required] Your Algolia index name |
option | [Optional] Additional configurations for DocSearch. For specific options, please check here. |
Share
You can only choose one sharing service provider.
Comments
Starting from version 3.0.0, to enable comments, you need to fill in the desired comment system in comments-use
.
Support for dual comment display, just configure two comment systems (the first one will be shown as default).
1 | comments: |
Parameter | Explanation |
---|---|
use | Comment systems to use (Please note that up to two are supported, leave it empty if not needed) Note: Dual comments cannot be Disqus and Disqusjs together, as they share the same ID and will result in an error. |
text | Whether to display the name of the comment service provider |
lazyload | Whether to enable lazy load for comments. When enabled, the comment resources will only be loaded when scrolling to the comment section. (With lazyload enabled, the comment count will not be displayed.) |
count | Whether to display the comment count at the top of the article Livere, Giscus, and Utterances do not support displaying comment count. |
card_post_count | Whether to display the comment count on the home page article cards Gitalk, Livere, Giscus, and Utterances do not support displaying comment count. |
Single Comment
![image-20200731172506907](https://jsd.012700.xyz/gh/j
erryc127/CDN/img/hexo-theme-butterfly-docs-single-comments.png)
Dual Comments
Display Text
Hide Text
Register Disqus and configure your own Disqus account.
Modify the theme configuration file
:
1 | disqus: |
Since Disqus cannot be accessed in mainland China, you can use Disqusjs to display comments when Disqus is inaccessible. For more details, you can refer to Disqusjs.
Modify the theme configuration file
:
1 | disqusjs: |
When unable to access Disqus, it will be shown as:
Register LaiBili and configure your own LaiBili settings.
Modify the theme configuration file
:
1 | livere: |
You can find the LaiBili UID here:
Follow the instructions on gitalk to obtain your GitHub OAuth application's client ID and secret values. Also, check out its related configuration instructions.
Then, modify the theme configuration file
:
1 | gitalk: |
Follow the instructions on Valine to configure your LeanCloud application and view the corresponding configuration explanations.
Then, modify the theme configuration file
:
1 | valine: |
After enabling "visitor," the number of visitors on the article page will be provided by Valine instead of busuanzi.
Starting from Valine v1.4.5, custom emojis are supported. If you need to configure them yourself, create a JSON file named valine.json
in the Hexo working directory under source/_data/
, which is equivalent to the configuration emojiMaps
required by Valine. The valine.json
configuration can be done as follows:
valine.json
1 | { |
default_avatar
Parameter | Effect |
---|---|
Empty (default) | |
mp | |
identicon | |
monsterid | |
wavatar | |
retro | |
robohash | |
blank | |
404 |
Waline is a comment system derived from Valine with a backend.
you can see more detail in Waline Document
To configure it, update your theme configuration file as follows:
1 | waline: |
After enabling
pageview
, the number of visitors on your article pages will be provided by Waline instead of Busuanzi
Utterances is a comment tool based on GitHub issues. It requires fewer permissions compared to Gitalk.
you can see more detail in Utterances.
To configure it, update your theme configuration file as follows:
1 | utterances: |
Facebook Comments
is a comment plugin provided by Facebook, which requires users to log in to Facebook to leave comments.
To configure it, update your theme configuration file as follows:
1 | # Facebook Comments Plugin |
Twikoo is a simple, secure, and backend-free static website comment system, please refer to the Twikoo documentation.
You only need to fill in the obtained envId
in the configuration file:
1 | twikoo: |
Parameter | Description |
---|---|
envId | Environment ID |
region | Environment region, default is ap-shanghai. If your environment region is not Shanghai, pass this parameter. |
visitor | Whether to display article page views. |
option | Optional configuration. |
After enabling
visitor
, the number of visitors on your article pages will be provided by Twikoo instead of Busuanzi.
Giscus is a comment system based on GitHub Discussions.
1 | # Giscus |
Please refer to the Giscus documentation for specific configuration details.
remark42 is a comment system that only supports self-hosting. For deployment instructions, please check Installation | Remark42:
1 | remark42: |
artalk is a comment system that only supports self-hosting. For deployment instructions, please check Artalk | Self-Hosted Comment System.
1 | artalk: |
Online Chat
Starting from version 3.0, the Butterfly theme comes with built-in support for various online chat tools. You can choose to enable one to facilitate communication with your visitors.
All of these tools provide a button that can open/close the chat window.
The theme also offers a unified chat button with special theme features that can replace the individual buttons of these tools. This chat button will appear in the bottom right corner.
To enable the chat button, modify the theme config file
:
1 | # Chat Button [recommend] |
To avoid affecting visitor experience, the theme provides a chat_hide_show
configuration. When set to true
, the original chat button will only be displayed when scrolling up, and it will be hidden when scrolling down.
1 | # The origin chat button is displayed when scrolling up, and the button is hidden when scrolling down. |
If using the built-in chat button of the tools, the button's position may overlap with the bottom right corner icon. In that case, you can adjust the position using the rightside_bottom
configuration.
To configure Chatra, you need to know your Public key
.
- Open Chatra and register an account.
- In the
Preferences
section, you can find thePublic key
.
Modify your theme configuration file
:
1 | # chatra |
You can customize the appearance of Chatra
in the Chat Widget
settings.
Demo
To configure Tidio, you need to know your Public key
.
- Open Tidio and register an account.
- In
Preferences > Developer
, you can find thePublic key
.
Modify your theme configuration file
:
1 | # tidio |
You can customize the appearance of Tidio
in the Channels
settings.
Demo
To configure Daovoice, you need to know your app id
.
- Open Daovoice and register an account.
- Find your
app id
.
Modify your theme configuration file
:
1 | # daovoice |
You can customize the appearance of Daovoice
in the Chat Settings
.
Demo
To configure Crisp, you need to know your website ID
.
- Open Crisp and register an account.
- Find your
website ID
.
1 | # crisp |
Demo
Messenger is a chat service by Facebook.
For specific setup instructions, please refer to Facebook Chat Plugin - Messenger Platform.
1 | messenger: |
Analytics
To set up Baidu Analytics:
- Log in to the official website of Baidu Analytics.
- Find your Baidu Analytics tracking code.
- Modify your
theme configuration file
:
1 | baidu_analytics: Your tracking code |
To set up Google Analytics:
- Log in to the official website of Google Analytics.
- Find your Google Analytics tracking ID.
- Modify your
theme configuration file
:
1 | google_analytics: Your tracking code (usually starts with `UA-`) |
To set up Cloudflare Analytics:
- Log in to the official website of Cloudflare Analytics.
- Find the
JavaScript snippet
for your website. - Locate your
token
.
- Modify your
theme configuration file
:
1 | # Cloudflare Analytics |
To set up Microsoft Clarity:
- Log in to the official website of Microsoft Clarity.
- Create a
PROJECT
. - Find your
ID
.
- Modify your
theme configuration file
:
1 | # Microsoft Clarity |
Advertisements
The theme has integrated Google AdSense (Auto Ads).
Modify your theme configuration file
:
1 | google_adsense: |
Please replace Your_Publisher_ID
with your personal identification code provided by Google AdSense.
The theme provides three locations for manually inserting advertisements:
- Between posts on the homepage (an advertisement appears after every three posts).
- After the aside announcement.
- After the post content on the article page.
To add your advertisements, fill in the HTML code in the corresponding locations in the theme configuration file
:
1 | ad: |
For example:
1 | index: <ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="xxxxxxxxxxxx" data-ad-client="ca-pub-xxxxxxxxxx" data-ad-slot="xxxxxxxxxx"></ins><script>(adsbygoogle=window.adsbygoogle||[]).push({})</script> |
Website Verification
If you need to have your website indexed by search engines, you may need to log in to the corresponding search engine's management platform and submit your website for verification.
Each search engine will provide you with a verification code that you need to add to your website.
Modify your theme configuration file
:
1 | site_verification: |
Beautification/Effects
Custom Theme Colors
You can customize most of the UI colors in the theme.
To make changes, modify the theme configuration file
as follows:
Color values must be wrapped in double quotes, like
"#000"
, not#000
. Otherwise, it will cause an error during the build process!
1 | theme_color: |
Home Page Top Image Display Size
By default, the top image is displayed in full-screen mode, and the site-info area is centered.
1 | # Main Page Settings |
You can set index_top_img_height
to specify the height of the top image. If you leave both settings blank, the default values will be used.
For example:
1 | index_top_img_height: 400px |
This will change the top image height to 400 pixels.
Text Alignment Justification
You can set the text to be aligned on both sides, except for the last line.
1 | # Stretches the lines so that each line has equal width(文字向兩側對齊,對最後一行無效) |
text_align_justify: false
text_align_justify: true
Website Background
By default, the website background color is white. You can set it to display an image or a custom color.
Modify the theme configuration file
:
1 | # Image format: url(http://xxxxxx.com/xxx.jpg) |
Note: If your website's root directory is not '/'
, you need to include your root directory path when using local images. For example, if your website is https://yoursite.com/blog
and you want to reference an image located at img/xx.png
, you should set background
as url(/blog/img/xx.png)
.
background:'#49B202'
background: url(https://i.loli.net/2019/09/09/5oDRkWVKctx2b6A.png)
Footer Background
You can customize the background of the footer section.
Modify the theme configuration file
:
1 | # Whether to display an image background for the footer (same as top_img) |
Value | Effect |
---|---|
Empty/false | Display the default color |
img link | Display the image specified in the link |
Color ( HEX value - #0000FF RGB value - rgb(0,0,255) Color name - orange Gradient color - linear-gradient( 135deg, #E2B0FF 10%, #9F44D3 100%) ) | Display the corresponding color |
true | Display the same as top_img |
true
Typewriter Effect
You can add a typewriter effect to your website using the activate-power-mode library.
Modify the theme configuration file
:
1 | # Typewriter Effect (打字效果) |
Background Effects
Beautiful ribbon background, can be set to change ribbon on each refresh or click.
Modify the theme configuration file
.
1 | canvas_ribbon: |
Related configurations can be found at canvas_ribbon
Beautiful fluttering ribbon background that moves.
Modify the theme configuration file
.
1 | canvas_fluttering_ribbon: |
Modify the theme configuration file
.
1 | canvas_nest: |
Click Effects
The zIndex
is recommended to be set to -1
or 9999
.
-1
means the fireworks effect will be at the bottom.9999
means the fireworks effect will be in front.
Modify the theme configuration file
.
1 | fireworks: |
Modify the theme configuration file
.
1 | # Click to show hearts |
Modify the theme configuration file
.
1 | # Click to show text, you can modify the text as you like |
Page Beautification
Changes the styles of ol, ul, h1-h5 elements.
The field
configuration specifies where the beautification should be applied:
post
: Only applies to the article pages.site
: Applies to the entire site.
Modify the theme configuration file
.
1 | # Page beautification |
title-prefix-icon
should be filled with the Unicode of the desired Font Awesome icon.
Without beautification
With beautification
Custom Fonts and Font Sizes
Global Font
You can set the font-family
for the entire website.
If you don't need to configure this, leave it blank.
Modify the theme configuration file
:
1 | # Global font settings |
Blog Title Font
You can set the font-family
for the blog title.
If you don't need to configure this or don't want to use a web font, leave font_link
blank.
Modify the theme configuration file
:
1 | # Font settings for the site title and site subtitle |
Website Subtitle
You can set a subtitle or your favorite motto to be displayed on the homepage.
Modify the theme configuration file
as follows:
1 | # Website Subtitle |
Page Loading Animation (Preloader)
When visitors enter your website, slow loading speed may cause the top_img image to appear fragmented or incomplete, leading to waiting times. By enabling the preloader, a loading animation will be displayed, and the animation will disappear once the page has finished loading.
The Butterfly theme supports Pace.js for providing the loading animation. You can learn more about Pace.js here.
Configure butterfly.yml
as follows:
1 | # 加載動畫 Loading Animation |
fullpage-loading
Word Count
To add the word count feature to your Butterfly
theme, you need to follow these steps:
Open your hexo directory.
Install the
hexo-wordcount
plugin by running the following command:1
npm install hexo-wordcount --save
or
1
yarn add hexo-wordcount
Modify the
theme configuration file
:
1 | wordcount: |
Lightbox Plugins
You can only enable one at a time.
If you do not want to enable the lightbox plugins for a specific image, you can use the HTML format to embed the image and add the no-lightbox
class to it.
Modify the theme configuration file
to enable Fancybox:
1 | # fancybox http://fancyapps.com/fancybox/3/ |
Modify the theme configuration file
to enable Medium Zoom:
1 | medium_zoom: true |
Pjax
When users click on links, Pjax updates only the parts of the page that need to be changed through AJAX, and then uses HTML5's pushState to modify the browser's URL address. This approach avoids reloading the same resources (CSS/JS) repeatedly, thereby improving the loading speed of the web page.
1 | # Pjax |
For some third-party plugins, not all of them support Pjax. You can add web pages to the exclude
list to exclude them from using Pjax. Clicking on these pages will reload the entire website instead.
When using Pjax, some custom JavaScript code you've implemented might not work correctly on page transitions. You may need to reinitialize certain JavaScript functions when the page changes. Please refer to the Pjax documentation for more details.
Additionally, after enabling Pjax, individual page-specific JavaScript and CSS files will be loaded on all pages instead of being loaded selectively.
Butterfly's Pjax feature is still in beta and may have some issues. Please be aware of the following:
- Google AdSense might report errors (e.g., auto-ads).
If you encounter any issues while using Pjax, please feel free to report bugs so they can be addressed.
Snackbar pop-up
Enable Snackbar pop-up and customize its settings
In the theme configuration file
1 | # Snackbar 彈窗 |
Disable snackbar
Enable snackbar
Instantpage
To enable Instantpage, which prefetches links when the mouse hovers over them for more than 65 milliseconds to improve loading speed, set instantpage to true to enable the feature.
In the theme configuration file
1 | # https://instant.page/ |
Pangu
To enable the Pangu plugin, which automatically inserts a space between Chinese characters and English characters, follow these steps to modify the configuration file:
Open your Hexo theme configuration file.
Locate the
pangu
section and setenable
totrue
to enable the plugin:
1 | # https://github.com/vinta/pangu.js |
The field
parameter only supports two values: post
(only effective on the article page) and site
(effective site-wide). Choose the appropriate value based on where you want the plugin to work. If you want it to work only on the article pages, set it to post
; if you want it to work on the entire site, set it to site
.
PWA
To add Progressive Web App (PWA) features to your Butterfly
theme, you need to follow these steps:
Open your Hexo directory.
Install the
hexo-offline
plugin using eithernpm
oryarn
:1
2
3npm install hexo-offline --save
# or
yarn add hexo-offlineCreate a
hexo-offline.config.cjs
file in the root directory and add the following content:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17// offline config passed to workbox-build.
module.exports = {
globPatterns: ['**/*.{js,html,css,png,jpg,gif,svg,webp,eot,ttf,woff,woff2}'],
// Static file collection. If your site uses file types like webp, add them here.
globDirectory: 'public',
swDest: 'public/service-worker.js',
maximumFileSizeToCacheInBytes: 10485760, // Cache maximum file size in bytes.
skipWaiting: true,
clientsClaim: true,
runtimeCaching: [ // If you need to load CDN resources, configure this option. If not, you can skip this.
// CDNs - should be CacheFirst, since they should be used specific versions so should not change
{
urlPattern: /^https:\/\/cdn\.example\.com\/.*/, // Replace with your URL
handler: 'CacheFirst'
}
]
}For more details, refer to the official documentation of hexo-offline.
In the
theme configuration file
, enable the PWA option:1
2
3
4
5
6
7pwa:
enable: true
manifest: /img/pwa/manifest.json
apple_touch_icon: /img/pwa/apple-touch-icon.png
favicon_32_32: /img/pwa/32.png
favicon_16_16: /img/pwa/16.png
mask_icon: /img/pwa/safari-pinned-tab.svgCreate a
manifest.json
file in thesource/
directory:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47{
"name": "string",
"short_name": "Junzhou",
"theme_color": "#49b1f5",
"background_color": "#49b1f5",
"display": "standalone",
"scope": "/",
"start_url": "/",
"icons": [
{
"src": "images/pwaicons/36.png",
"sizes": "36x36",
"type": "image/png"
},
{
"src": "images/pwaicons/48.png",
"sizes": "48x48",
"type": "image/png"
},
{
"src": "images/pwaicons/72.png",
"sizes": "72x72",
"type": "image/png"
},
{
"src": "images/pwaicons/96.png",
"sizes": "96x96",
"type": "image/png"
},
{
"src": "images/pwaicons/144.png",
"sizes": "144x144",
"type": "image/png"
},
{
"src": "images/pwaicons/192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "images/pwaicons/512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"splash_pages": null
}You can also quickly generate a
manifest.json
using Web App Manifest. (Web App Manifest requires at least one 512x512 pixel icon.)To check if the PWA configuration is working correctly, you can use the
Lighthouse
Chrome plugin:- Open your blog page.
- Launch the
Lighthouse
plugin (the plugin requires at least one 512x512 pixel icon).
For more information about Progressive Web Apps (PWA) and details on how to implement them, please refer to Google Tools for Web Developers.
Open Graph
To add Open Graph meta data to the <head>
section of your website, including information such as thumbnail image, title, time, and more, you can modify your theme configuration file
as follows:
1 | # Open graph meta tags |
CSS Prefix
The css_prefix
option is used to automatically add vendor prefixes to certain CSS properties to ensure compatibility with different browsers. Enabling this option will increase the CSS file size by approximately 20%.
To enable the css_prefix
option, modify your theme configuration file
as follows:
1 | # Add the vendor prefixes to ensure compatibility |
Inject
Supported in version 2.3.0 and above
It allows you to add additional JavaScript, CSS, meta tags, and other content to your website. You can add these elements either to the head
(before the closing </body>
tag) or to the bottom
(before the closing </html>
tag). Please ensure that you add content in standard HTML format.
For example, to add custom CSS and a JavaScript file, you can use the following configuration in your theme configuration file:
1 | inject: |
Please note: If your website's root directory is not '/', and you are using local images, you need to add your root directory path. For instance, if your website is https://yoursite.com/blog
, and you want to reference css/xx.css
, then you should set it as <link rel="stylesheet" href="/blog/css/xx.css">
.
CDN
The last part of the configuration file is the CDN (Content Delivery Network) section. It contains links to the files that the theme references.
You can customize the CDN settings, but it's essential to ensure that the links are accessible after configuration.
1 | CDN: |
Parameter | Explanation |
---|---|
internal_provider | Internal theme files Options: local / jsdelivr / unpkg / cdnjs / custom 'local' for local loading, 'custom' for custom format (requires configuring custom_format )Note: If using the Dev version, only 'local' can be set. |
third_party_provider | Third-party files Options: local / jsdelivr / unpkg / cdnjs / custom 'local' for local loading, 'custom' for custom format (requires configuring custom_format )Note: If you choose 'local', you need to install the hexo-butterfly-extjs plugin. |
version | true/false to add a specified version number to CDN links |
custom_format | Custom format for CDN links |
option | Allows changing specific files here, which will override the original configuration. |
version
Version
If you want to modify the version number, you can do so in the 'plugins.yml' file located in the theme directory. Find the corresponding plugin and update its version number.
However, please ensure that the version number you choose is supported and available on the CDN you are using. CDN providers may not always have the latest version of a plugin immediately, so it's essential to check if your selected version is available before making the change. Using an unsupported version may lead to issues with loading the plugin or cause other compatibility problems.
custom_format
Here are the parameters and their explanations for customizing the CDN:
Parameter | Explanation |
---|---|
name | The package name on npm. |
file | The file path on npm. |
min_file | The compressed file path on npm. |
cdnjs_name | The package name on cdnjs. |
cdnjs_file | The file path on cdnjs. |
min_cdnjs_file | The compressed file path on cdnjs. |
version | The version number of the plugin. |
Here are some of the available third-party CDN providers:
Please ensure that the CDN you choose has the necessary third-party plugins used by your theme.
Provider | Format | Remarks |
---|---|---|
Staticfile (七牛雲) | https://cdn.staticfile.org/${cdnjs_name}/${version}/${min_cdnjs_file} | Sync from cdnjs |
BootCDN | https://cdn.bootcdn.net/ajax/libs/${cdnjs_name}/${version}/${min_cdnjs_file} | Sync from cdnjs |
Baomitu (360) | Latest version: https://lib.baomitu.com/${cdnjs_name}/latest/${min_cdnjs_file} Specified version: https://lib.baomitu.com/${cdnjs_name}/${version}/${min_cdnjs_file} | Sync from cdnjs |
Elemecdn | Latest version: https://npm.elemecdn.com/${name}@latest/${file} Specified version: https://npm.elemecdn.com/${name}@${version}/${file} | Sync from npm |