diff --git a/.babelrc b/.babelrc new file mode 100644 index 000000000..60c397109 --- /dev/null +++ b/.babelrc @@ -0,0 +1,11 @@ +{ + "presets": [ + [ + "@babel/preset-env", + { + "targets": "> 0.25%, not dead" + } + ], + "minify" + ] +} diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 000000000..4752606cc --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,17 @@ +version: 2.1 +jobs: + build-check: + docker: + - image: cibuilds/hugo:0.62 + working_directory: ~/LoveIt + steps: + - checkout + - run: git submodule sync + - run: git submodule update --init + - run: hugo --source=exampleSite -v --gc + - run: htmlproofer exampleSite/public --check-html --allow-hash-href --empty-alt-ignore --disable-external + +workflows: + build-check-exampleSite: + jobs: + - build-check diff --git a/.gitignore b/.gitignore index 5675a014d..51ffa8619 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,9 @@ # Hugo default output directory -public -/exampleSite/resources -/exampleSite/zh/resources +public/ +/exampleSite/resources/ + +node_modules/ +build/ ## OS Files # Windows diff --git a/README.md b/README.md index 6ebdd975f..5541a8ec2 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# LoveIt Theme | Hugo +# LoveIt Theme | Hugo [![Netlify Status](https://api.netlify.com/api/v1/badges/e60303f2-862c-4342-bf59-7c9adb10812e/deploy-status)](https://app.netlify.com/sites/hugo-loveit/deploys) -[![Netlify Status](https://api.netlify.com/api/v1/badges/e60303f2-862c-4342-bf59-7c9adb10812e/deploy-status)](https://app.netlify.com/sites/hugo-loveit-en/deploys) +[![GitHub release (latest by date)](https://img.shields.io/github/v/release/dillonzq/LoveIt?style=flat-square)](https://github.com/dillonzq/LoveIt/releases) [![Hugo](https://img.shields.io/badge/Hugo-%5E0.62.0-blue?style=flat-square&logo=hugo)](https://gohugo.io/) [![License](https://img.shields.io/github/license/dillonzq/LoveIt?style=flat-square)](https://github.com/dillonzq/LoveIt/blob/master/LICENSE) [![CircleCI](https://img.shields.io/circleci/build/github/dillonzq/LoveIt/develop?label=CI&style=flat-square&logo=circleci)](https://app.circleci.com/pipelines/github/dillonzq/LoveIt) -English README | [中文说明](README.zh.md) +English README | [中文说明](README.zh-cn.md) **LoveIt** is a **clean**, **elegant** but **advanced** blog theme for [Hugo](https://gohugo.io/). @@ -13,37 +13,37 @@ read [Why choose LoveIt](#why-choose-loveit) so that you can choose the one that ![Hugo Theme LoveIt](images/Apple-Devices-Preview.png) -## [Demo Site](https://hugo-loveit-en.netlify.com) +## [Demo Site](https://hugo-loveit.netlify.com) -To see this theme in action, here is a live [demo site](https://hugo-loveit-en.netlify.com) which is rendered with **LoveIt** theme. +To see this theme in action, here is a live [demo site](https://hugo-loveit.netlify.com) which is rendered with **LoveIt** theme. ## Why choose LoveIt Compared to the original LeaveIt theme and the KeepIt theme, the LoveIt theme has the following modifications. -* Fixed title bar -* System native fonts -* Home subtitles typewriter effect -* A new list of home posts, compatible with the latest version of Hugo -* Replace all theme icons with [Font Awesome](https://fontawesome.com/) -* A lot of style detail adjustments, including color, font size, margins, code preview style -* More readable dark mode -* Some beautiful CSS animations -* Easy-to-use and self-expanding article catalog, while adapting to the mobile side -* More suitable as a blog theme, the gallery function has been removed, but the image is lazy loaded to improve performance -* Extended markdown syntax for [Font Awesome](https://fontawesome.com/) icons -* Math formula support by [Katex](https://katex.org/) -* Diagram syntax shortcode support by [mermaid](https://github.com/knsv/mermaid) -* Embedded music player support by [APlayer](https://github.com/MoePlayer/APlayer) and [MetingJS](https://github.com/metowolf/MetingJS) -* Bilibili player support -* Kinds of admonitions shortcode support -* Custom align and float style shortcodes support -* CDN for all third-party libraries support +* Custom **Header** +* Custom **CSS Style** +* A new **home page**, compatible with the latest version of Hugo +* A lot of **style detail adjustments,** including color, font size, margins, code preview style +* More readable **dark mode** +* Some beautiful **CSS animations** +* Easy-to-use and self-expanding **table of contents** +* Extended markdown syntax for **[Font Awesome](https://fontawesome.com/) icons** +* Extended markdown syntax for **ruby annotation** +* **Mathematical formula** support by [Katex](https://katex.org/) +* **Diagram syntax** shortcode support by [mermaid](https://github.com/knsv/mermaid) +* **Interactive data visualization** shortcode supported by [ECharts](https://echarts.apache.org/) +* Embedded **music player** support by [APlayer](https://github.com/MoePlayer/APlayer) and [MetingJS](https://github.com/metowolf/MetingJS) +* **Bilibili** player support +* Kinds of **admonitions** shortcode support +* Custom style shortcodes support +* **CDN** for all third-party libraries support +* ... In short, if you prefer the design language and freedom of the LoveIt theme, if you want to use the extended Font Awesome icons conveniently, -if you want to embed math formulas, flowcharts, music or Bilibili videos in your posts, +if you want to embed mathematical formulas, flowcharts, music or Bilibili videos in your posts, the LoveIt theme may be more suitable for you. I hope you will LoveIt ❤️! @@ -52,138 +52,59 @@ I hope you will LoveIt ❤️! ### Performance and SEO -* Optimized for performance: 99/100 on mobile and 100/100 on desktop in [Google PageSpeed Insights](https://developers.google.com/speed/pagespeed/insights) -* Optimized SEO performance with a correct SEO SCHEMA based on JSON-LD -* [Google Analytics](https://analytics.google.com/analytics) support -* Search engine verification support (Google, Bind, Yandex and Baidu) -* CDN for all third-party libraries support -* Automatically converted images with Lazy Load by [lazysizes](https://github.com/aFarkas/lazysizes) +* Optimized for **performance**: 99/100 on mobile and 100/100 on desktop in [Google PageSpeed Insights](https://developers.google.com/speed/pagespeed/insights) +* Optimized SEO performance with a correct **SEO SCHEMA** based on JSON-LD +* [**Google Analytics**](https://analytics.google.com/analytics) support +* Search engine **verification** support (Google, Bind, Yandex and Baidu) +* **CDN** for third-party libraries support +* Automatically converted images with **Lazy Load** by [lazysizes](https://github.com/aFarkas/lazysizes) ### Appearance and Layout -* Desktops/Mobiles Responsive layout -* Dark/Light Mode -* A More coerent style beetwen page and sections -* Pagination support -* Easy-to-use and self-expanding article catalog, while adapting to the mobile side -* Multilanguage support and I18N ready -* Beautiful CSS animation +* **Responsive** layout +* **Dark/Light** mode +* Globally consistent **design language** +* **Pagination** support +* Easy-to-use and self-expanding **table of contents** +* **Multilanguage** support and i18n ready +* Beautiful **CSS animation** ### Social and Comment Systems -* Gravatar support by [Gravatar](https://gravatar.com) -* Local Avatar support -* Up to 54 social sites supported -* Share post support -* Disqus comment system support by [Disqus](https://disqus.com) -* Gitalk comment system support by [Gitalk](https://github.com/gitalk/gitalk) -* Valine comment system support by [Valine](https://valine.js.org/) -* Facebook comment system support by [Facebook](https://developers.facebook.com/docs/plugins/comments/) +* **Gravatar** supported by [Gravatar](https://gravatar.com) +* Local **Avatar** support +* Up to **59** social sites supported +* Up to **28** share sites support +* **Disqus** comment system supported by [Disqus](https://disqus.com) +* **Gitalk** comment system supported by [Gitalk](https://github.com/gitalk/gitalk) +* **Valine** comment system supported by [Valine](https://valine.js.org/) +* **Facebook comments** system supported by [Facebook](https://developers.facebook.com/docs/plugins/comments/) ### Extended Features -* Automatically highlighting code by chroma in Hugo -* Extended markdown syntax for [Font Awesome](https://fontawesome.com/) icons -* Math formula support by [Katex](https://katex.org/) -* Diagram syntax shortcode support by [mermaid](https://github.com/knsv/mermaid) -* Embedded music player support by [APlayer](https://github.com/MoePlayer/APlayer) and [MetingJS](https://github.com/metowolf/MetingJS) -* Bilibili player support -* Kinds of admonitions shortcode support -* Custom align and float style shortcodes support -* Animated typing support by [TypeIt](https://typeitjs.com/) -* Animated coutdown support by [jQuery.countdown](https://github.com/hilios/jQuery.countdown) -* Dynamic to top support by [Smooth Scroll](https://github.com/cferdinandi/smooth-scroll) +* Automatically **highlighting** code +* **Images gallery** supported by [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js) +* Extended markdown syntax for **[Font Awesome](https://fontawesome.com/) icons** +* Extended markdown syntax for **ruby annotation** +* **Mathematical formula** supported by [Katex](https://katex.org/) +* **Diagrams** shortcode supported by [mermaid](https://github.com/knsv/mermaid) +* **Interactive data visualization** shortcode supported by [ECharts](https://echarts.apache.org/) +* **Music player** shortcode supported by [APlayer](https://github.com/MoePlayer/APlayer) and [MetingJS](https://github.com/metowolf/MetingJS) +* **Bilibili player** shortcode +* Kinds of **admonitions** shortcode +* **Custom style** shortcode +* **Animated typing** supported by [TypeIt](https://typeitjs.com/) +* **Dynamic scroll** supported by [Smooth Scroll](https://github.com/cferdinandi/smooth-scroll) * ... -## Getting Started - -Clone this repository to your hugo theme directory. - -```bash - cd themes - git clone https://github.com/dillonzq/LoveIt.git -``` - -Or, make this repository a submodule of your site directory. - -```bash - git submodule add https://github.com/dillonzq/LoveIt.git themes/LoveIt -``` - -Next, open `config.toml` in the base of the Hugo site and ensure the theme option is set to KeepIt: - -```bash - theme = "LoveIt" -``` - -For more information read the [official setup guide](https://gohugo.io/documentation/) of Hugo. - -## Site Configuration - -Take a look in the `exampleSite` folder. - -This directory contains an example config file and the content for the demo for `en` and `zh` languages. -It serves as an example setup for your website. - -Copy the `config.toml` to the root directory of your website. Overwrite the existing config file if necessary. - -## Content Suggestions - -A few suggestions to help you get a good looking site quickly: - -* Keep blog posts in the `content/posts` directory, for example: `content/posts/my-first-post.md` -* Keep static pages in the `content` directory, for example: `content/about.md` -* Keep media like images in the `static` directory, for example: `static/images/2019/9/screenshot.png` - -## Customizing styles for your website - -If you want to change some styling to fit your own website needs, you can edit them: - -* `assets/css/_varibales.scss`: You can override the variables in `_variables.scss` to customize the style -* `assets/css/_custom.scss`: You can put your custom css in this file - -## Favicons, Browserconfig, Manifest - -It is recommended to put your own favicons - -* apple-touch-icon.png (180x180) -* favicon-32x32.png (32x32) -* favicon-16x16.png (16x16) -* mstile-150x150.png (150x150) -* android-chrome-192x192.png (192x192) -* android-chrome-512x512.png (512x512) - -into `/static`. They’re easily created via [https://realfavicongenerator.net/](https://realfavicongenerator.net/). - -Customize `browserconfig.xml` and `site.webmanifest` to set theme-color and background-color. - -## Tips - -### Set `production` environment when generating site - -Because some features are only in production mode, so you need to add a `production` environment variables when generating your site. - -```bash - HUGO_ENV=production hugo --gc --minify -``` - -### How to toggle dark-light mode - -* You can click the circle icon to toggle dark-light mode. In the desktop version the circle icon is to the right and in the mobile version is positioned to the left, close to the site title. -* If you want to make your own theme toggle-able element, you can create an element with a class `.theme-switch`. See [here](https://github.com/dillonzq/LoveIt/blob/master/assets/js/blog.js#L14) - -### Home Post model - -If you want to show posts on index instead of a personal profile, just open `config.toml`, add the following line: - -```toml - [params] - home_mode = "post" -``` +## Documentation -### Add logo and cover for SEO +* [Documentation Page](https://hugo-loveit.netlify.com/categories/documentation/) +* Build Documentation Locally: -Add a logo image (127x40) and a cover image (800x600) in the `static` directory. + ```bash + hugo server --source=exampleSite + ``` ## Questions, ideas, bugs, pull requests @@ -196,19 +117,19 @@ LoveIt is licensed under the MIT license. Check the [LICENSE file](https://githu Thanks to the authors of following resources included in the theme: * [Font Awesome](https://fontawesome.com/) +* [Fork Awesome](https://forkaweso.me/Fork-Awesome/) * [Animate.css](https://daneden.github.io/animate.css/) * [lazysizes](https://github.com/aFarkas/lazysizes) +* [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js) * [Smooth Scroll](https://github.com/cferdinandi/smooth-scroll) * [TypeIt](https://typeitjs.com/) -* [jQuery](https://github.com/jquery/jquery) -* [jQuery.countdown](https://github.com/hilios/jQuery.countdown) * [Katex](https://katex.org/) * [mermaid](https://github.com/knsv/mermaid) +* [ECharts](https://echarts.apache.org/) * [APlayer](https://github.com/MoePlayer/APlayer) * [MetingJS](https://github.com/metowolf/MetingJS) * [Gitalk](https://github.com/gitalk/gitalk) * [Valine](https://valine.js.org/) -* [Facebook](https://developers.facebook.com/docs/plugins/comments/) ## Author diff --git a/README.zh-cn.md b/README.zh-cn.md new file mode 100644 index 000000000..21ba9d018 --- /dev/null +++ b/README.zh-cn.md @@ -0,0 +1,131 @@ +# LoveIt 主题 | Hugo [![Netlify Status](https://api.netlify.com/api/v1/badges/e60303f2-862c-4342-bf59-7c9adb10812e/deploy-status)](https://app.netlify.com/sites/hugo-loveit/deploys) + +[![GitHub release (latest by date)](https://img.shields.io/github/v/release/dillonzq/LoveIt?style=flat-square)](https://github.com/dillonzq/LoveIt/releases) [![Hugo](https://img.shields.io/badge/Hugo-%5E0.62.0-blue?style=flat-square&logo=hugo)](https://gohugo.io/) [![License](https://img.shields.io/github/license/dillonzq/LoveIt?style=flat-square)](https://github.com/dillonzq/LoveIt/blob/master/LICENSE) [![CircleCI](https://img.shields.io/circleci/build/github/dillonzq/LoveIt/develop?label=CI&style=flat-square&logo=circleci)](https://app.circleci.com/pipelines/github/dillonzq/LoveIt) + +[English README](README.md) | 中文说明 + +[LoveIt](https://github.com/dillonzq/LoveIt) 是一个**简洁**、**优雅**且**高效**的 [Hugo](https://gohugo.io/) 博客主题。 + +它的原型基于 [LeaveIt 主题](https://github.com/liuzc/LeaveIt/) 和 [KeepIt 主题](https://github.com/liuzc/LeaveIt/)。 + +由于三个主题外观的相似性,如果你对于它们的不同之处有疑问,请阅读 [为什么选择 LoveIt](#为什么选择-LoveIt),以便你能选择最适合你的一个。 + +![Hugo 主题 LoveIt](images/Apple-Devices-Preview.png) + +## 主题[预览](https://hugo-loveit.netlify.com/zh-cn/) + +为了直观地浏览主题特性,这里有一个基于 **LoveIt** 主题渲染的 [预览网站](https://hugo-loveit.netlify.com/zh-cn/)。 + +## 为什么选择 LoveIt + +相较于 LeaveIt 主题 和 KeepIt 主题,LoveIt 主题主要有以下修改 + +* 自定义**标题栏** +* 自定义**CSS 样式** +* 焕然一新的**主页**,已经兼容最新版 Hugo +* 大量的**样式细节调整**,包括颜色、字体大小、边距、代码预览样式 +* 可读性更强的**暗黑模式** +* 一些美观的 **CSS 动画** +* 易用和自动展开的**文章目录** +* 支持基于 **[Font Awesome](https://fontawesome.com/) 图标**的扩展 Markdown 语法 +* 支持**上标注释**的扩展 Markdown 语法 +* 支持基于 [Katex](https://katex.org/) 的**数学公式** +* 支持基于 [mermaid](https://github.com/knsv/mermaid) 的**图表**生成功能 +* 支持基于 [ECharts](https://echarts.apache.org/) 的**交互式数据可视化**生成功能 +* 支持基于 [APlayer](https://github.com/MoePlayer/APlayer) 和 [MetingJS](https://github.com/metowolf/MetingJS) 的内嵌**音乐播放器** +* 支持内嵌 **Bilibili** 视频 +* 支持多种**注释**的 shortcode +* 支持自定义样式的 shortcode +* 支持所有第三方库的 **CDN** +* ... + +所以,如果你更偏好 LoveIt 主题的设计语言和自由度,如果你想便捷地使用扩展的 Font Awesome 图标,如果你想在文章内嵌数学公式、流程图、音乐或是 Bilibili 视频, +那么,LoveIt 主题可能是更适合你。 +希望你会 LoveIt ❤️! + +## 特性 + +### 性能和 SEO + +* **性能**优化:在 [Google PageSpeed Insights](https://developers.google.com/speed/pagespeed/insights) 中, 99/100 的移动设备得分和 100/100 的桌面设备得分 +* 使用基于 JSON-LD 格式 的 **SEO SCHEMA** 文件进行 SEO 优化 +* 支持 **[Google Analytics](https://analytics.google.com/analytics)** +* 支持搜索引擎的**网站验证** (Google, Bind, Yandex and Baidu) +* 支持所有第三方库的 **CDN** +* 基于 [lazysizes](https://github.com/aFarkas/lazysizes) 自动转换图片为**懒加载** + +### 外观和布局 + +* **响应式**布局 +* **夜晚/白天** 主题模式 +* 全局一致的**设计语言** +* 支持**分页** +* 易用和自动展开的**文章目录** +* 支持**多语言**和国际化 +* 美观的 **CSS 动画** + +### 社交和评论系统 + +* 支持 **[Gravatar](https://gravatar.com)** 头像 +* 支持本地**头像** +* 支持多达 **59** 种社交链接 +* 支持多达 **28** 种网站分享 +* 支持 **[Disqus](https://disqus.com)** 评论系统 +* 支持 **[Gitalk](https://github.com/gitalk/gitalk)** 评论系统 +* 支持 **[Valine](https://valine.js.org/)** 评论系统 +* 支持 **[Facebook](https://developers.facebook.com/docs/plugins/comments/) 评论**系统 + +### 扩展功能 + +* 支持**代码高亮** +* 支持基于 [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js) 的**图片画廊** +* 支持 **[Font Awesome](https://fontawesome.com/) 图标**的扩展 Markdown 语法 +* 支持**上标注释**的扩展 Markdown 语法 +* 支持基于 [Katex](https://katex.org/) 的**数学公式** +* 支持基于 [mermaid](https://github.com/knsv/mermaid) 的**图表** shortcode +* 支持基于 [ECharts](https://echarts.apache.org/) 的**交互式数据可视化** shortcode +* 支持基于 [APlayer](https://github.com/MoePlayer/APlayer) 和 [MetingJS](https://github.com/metowolf/MetingJS) 的**音乐播放器** shortcode +* 支持 **Bilibili 视频** shortcode +* 支持多种**注释**的 shortcode +* 支持**自定义样式**的 shortcode +* 支持基于 [TypeIt](https://typeitjs.com/) 的**打字动画** shortcode +* 支持基于 [Smooth Scroll](https://github.com/cferdinandi/smooth-scroll) 的**滚动动画** +* ... + +## 文档 + +* [文档页面](https://hugo-loveit.netlify.com/zh-cn/categories/documentation/) +* 在本地构建文档: + + ```bash + hugo server --source=exampleSite + ``` + +## 问题、想法、 bugs 和 PRs + +所有的反馈都是欢迎的!详见 [issue tracker](https://github.com/dillonzq/LoveIt/issues)。 + +## 许可协议 + +LoveIt 根据 MIT 许可协议授权。 更多信息请查看 [LICENSE 文件](https://github.com/dillonzq/LoveIt/blob/master/LICENSE)。 + +LoveIt 主题中用到了以下项目,感谢它们的作者: + +* [Font Awesome](https://fontawesome.com/) +* [Fork Awesome](https://forkaweso.me/Fork-Awesome/) +* [Animate.css](https://daneden.github.io/animate.css/) +* [lazysizes](https://github.com/aFarkas/lazysizes) +* [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js) +* [Smooth Scroll](https://github.com/cferdinandi/smooth-scroll) +* [TypeIt](https://typeitjs.com/) +* [Katex](https://katex.org/) +* [mermaid](https://github.com/knsv/mermaid) +* [ECharts](https://echarts.apache.org/) +* [APlayer](https://github.com/MoePlayer/APlayer) +* [MetingJS](https://github.com/metowolf/MetingJS) +* [Gitalk](https://github.com/gitalk/gitalk) +* [Valine](https://valine.js.org/) + +## 作者 + +[Dillon](https://dillonzq.com) diff --git a/README.zh.md b/README.zh.md deleted file mode 100644 index 10ecb2a49..000000000 --- a/README.zh.md +++ /dev/null @@ -1,209 +0,0 @@ -# LoveIt 主题 | Hugo - -[![Netlify Status](https://api.netlify.com/api/v1/badges/c51d4765-deb8-43d2-954c-720527879667/deploy-status)](https://app.netlify.com/sites/hugo-loveit-zh/deploys) - -[English README](README.md) | 中文说明 - -[LoveIt](https://github.com/dillonzq/LoveIt) 是一个**简洁**、**优雅**且**高效**的 [Hugo](https://gohugo.io/) 博客主题。 - -它的原型基于 [LeaveIt 主题](https://github.com/liuzc/LeaveIt/) 和 [KeepIt 主题](https://github.com/liuzc/LeaveIt/)。 - -由于三个主题外观的相似性,如果你对于它们的不同之处有疑问,请阅读 [为什么选择 LoveIt](#为什么选择-LoveIt),以便你能选择最适合你的一个。 - -![Hugo 主题 LoveIt](images/Apple-Devices-Preview.png) - -## 主题[预览](https://hugo-loveit-zh.netlify.com) - -为了直观地浏览主题特性,这里有一个基于 **LoveIt** 主题渲染的 [预览网站](https://hugo-loveit-zh.netlify.com)。 - -## 为什么选择 LoveIt - -相较于 LeaveIt 主题 和 KeepIt 主题,LoveIt 主题主要有以下修改 - -* 固定的标题栏 -* 系统原生字体 -* 主页副标题的打字机效果 -* 焕然一新的主页文章列表,已经兼容最新版 Hugo -* 所有主题图标替换为 [Font Awesome](https://fontawesome.com/) -* 大量的样式细节调整,包括颜色、字体大小、边距、代码预览样式 -* 可读性更强的暗黑模式 -* 一些美观的 CSS 动画 -* 易用和自动展开的文章目录,同时适配移动端 -* 为了更适合作为博客主题,去除了画廊功能,但保留了图片懒加载以提高性能 -* 使用 [Font Awesome](https://fontawesome.com/) 图标的扩展 Markdown 语法 -* 支持基于 [Katex](https://katex.org/) 的数学公式 -* 支持基于 [mermaid](https://github.com/knsv/mermaid) 的图表和流程图生成功能 -* 支持基于 [APlayer](https://github.com/MoePlayer/APlayer) 和 [MetingJS](https://github.com/metowolf/MetingJS) 的内嵌音乐播放器 -* 支持内嵌 Bilibili 视频 -* 支持多种提醒样式的 shortcode -* 支持自定义对齐和浮动方式的 shortcode -* 支持所有第三方库的 CDN -* 更加丰富的自定义设置 - -所以,如果你更偏好 LoveIt 主题的设计语言和自由度,如果你想便捷地使用扩展的 Font Awesome 图标,如果你想在文章内嵌数学公式、流程图、音乐或是 Bilibili 视频, -那么,LoveIt 主题可能是更适合你。 -希望你会 LoveIt ❤️! - -## 特性 - -### 性能和 SEO - -* 性能优化:在 [Google PageSpeed Insights](https://developers.google.com/speed/pagespeed/insights) 中, 99/100 的移动设备得分和 100/100 的桌面设备得分 -* 使用基于 JSON-LD 格式 的 SEO SCHEMA 文件进行 SEO 优化 -* 支持 [Google Analytics](https://analytics.google.com/analytics) -* 支持搜索引擎的网站验证 (Google, Bind, Yandex and Baidu) -* 支持所有第三方库的 CDN -* 基于 [lazysizes](https://github.com/aFarkas/lazysizes) 自动转换图片为懒加载 - -### 外观和布局 - -* 桌面设备/移动设备 响应式布局 -* 暗黑/明亮 模式 -* 页面和列表保持一致的视觉样式 -* 支持分页 -* 易用和自动展开的文章目录,同时适配移动端 -* 支持多语言和国际化 -* 美观的 CSS 动画 - -### 社交和评论系统 - -* 支持 [Gravatar](https://gravatar.com) 头像 -* 支持本地头像 -* 支持多达 54 种社交链接 -* 支持文章分享 -* 支持 [Disqus](https://disqus.com) 评论系统 -* 支持 [Gitalk](https://github.com/gitalk/gitalk) 评论系统 -* 支持 [Valine](https://valine.js.org/) 评论系统 - -### 扩展功能 - -* 基于 Hugo 使用的 chroma 进行代码高亮 -* 使用 [Font Awesome](https://fontawesome.com/) 图标的扩展 Markdown 语法 -* 支持基于 [Katex](https://katex.org/) 的数学公式 -* 支持基于 [mermaid](https://github.com/knsv/mermaid) 的图表和流程图生成功能 -* 支持基于 [APlayer](https://github.com/MoePlayer/APlayer) 和 [MetingJS](https://github.com/metowolf/MetingJS) 的内嵌音乐播放器 -* 支持内嵌 Bilibili 视频 -* 支持多种提醒样式的 shortcode -* 支持自定义对齐和浮动方式的 shortcode -* 支持基于 [TypeIt](https://typeitjs.com/) 的打字动画 -* 支持基于 [jQuery.countdown](https://github.com/hilios/jQuery.countdown) 的倒计时动画 -* 支持基于 [Smooth Scroll](https://github.com/cferdinandi/smooth-scroll) 的回到顶部动画 -* ... - -## 快速开始 - -直接克隆这个代码库到你的 Hugo 主题目录, - -```bash - cd themes - git clone https://github.com/dillonzq/LoveIt.git -``` - -或者,把这个代码库作为子模块。 - -```bash - git submodule add https://github.com/dillonzq/LoveIt.git themes/LoveIt -``` - -下一步, 打开 Hugo 网站的根目录下的 `config.toml` 文件来把 `theme` 设置为 `LoveIt`: - -```bash - theme = "LoveIt" -``` - -更多信息请查看 Hugo 的 [官方安装指南](https://gohugo.io/documentation/)。 - -## 网站设置 - -请看一看 `exampleSite` 目录下的文件。 - -这个目录包含了 `en` 和 `zh` 两种语言的预览网站配置。它可以作为你的网站的配置模板。 - -复制 `config.toml` 文件到你的 Hugo 网站代码根目录。必要的话覆盖原始配置文件。 - -## 目录结构建议 - -以下是一些方便你清晰管理和生成文章的目录结构建议: - -* 保持博客文章存放在 `content/posts` 目录,例如: `content/posts/我的第一篇文章.md` -* 保持简单的静态页面存放在 `content` 目录,例如: `content/about.md` -* 保持图片之类的媒体资源存放在 `static` 目录,例如: `static/images/2019/9/screenshot.png` - -## 为你的网站自定义样式 - -如果你想改变一些网站样式来满足你的需求,你可以编辑: - -* `assets/css/_varibales.scss`: 你可以覆盖 `_variables.scss` 中的变量来自定义样式 -* `assets/css/_custom.scss`: 你可以把自定义的样式放在这个文件 -* 需要使用hugo extended版本编译sass,否则修改css无法生效 - -## 网站图标、浏览器配置、网站清单 - -强烈建议你把: - -* apple-touch-icon.png (180x180) -* favicon-32x32.png (32x32) -* favicon-16x16.png (16x16) -* mstile-150x150.png (150x150) -* android-chrome-192x192.png (192x192) -* android-chrome-512x512.png (512x512) - -放在 `/static` 目录。利用 [https://realfavicongenerator.net/](https://realfavicongenerator.net/) 可以很容易地生成这些文件。 - -可以自定义 `browserconfig.xml` 和 `site.webmanifest` 文件来设置 theme-color 和 background-color。 - -## 小技巧 - -### 在生成网站时设置 `production` 环境变量 - -由于主题的一些功能仅在生产环境有效,所以你需要在生成网站时设置 `production` 环境变量。 - -```bash - HUGO_ENV=production hugo --gc --minify -``` - -### 怎样切换网站 暗黑-明亮 模式 - -* 你可以点击圆形图标来切换网站 暗黑-明亮 模式。桌面模式下圆形图标在网页右上角,移动设备模式下在网站左上角标题旁边 -* 如果你想自定义切换网站 暗黑-明亮 模式的元素,可以使用一个 class 包含 `.theme-switch` 的元素,详见[此处](https://github.com/dillonzq/LoveIt/blob/master/assets/js/blog.js#L14) - -### 主页预览文章模式 - -如果你想在主页显示文章而不仅仅是个人信息,请打开配置文件 `config.toml`,并增加下面一行: - -```toml - [params] - home_mode = "post" -``` - -### 增加网站 logo 和封面用于 SEO 优化 - -增加一个 logo 图片 (127x40) 和一个封面图片 (800x600) 在 `static` 目录。 - -## 问题、想法、 bugs 和 PRs - -所有的反馈都是欢迎的!详见 [issue tracker](https://github.com/dillonzq/LoveIt/issues)。 - -## 许可协议 - -LoveIt 根据 MIT 许可协议授权。 更多信息请查看 [LICENSE 文件](https://github.com/dillonzq/LoveIt/blob/master/LICENSE)。 - -感谢以下在主题中使用过的项目的作者: - -* [Font Awesome](https://fontawesome.com/) -* [Animate.css](https://daneden.github.io/animate.css/) -* [lazysizes](https://github.com/aFarkas/lazysizes) -* [Smooth Scroll](https://github.com/cferdinandi/smooth-scroll) -* [TypeIt](https://typeitjs.com/) -* [jQuery](https://github.com/jquery/jquery) -* [jQuery.countdown](https://github.com/hilios/jQuery.countdown) -* [Katex](https://katex.org/) -* [mermaid](https://github.com/knsv/mermaid) -* [APlayer](https://github.com/MoePlayer/APlayer) -* [MetingJS](https://github.com/metowolf/MetingJS) -* [Gitalk](https://github.com/gitalk/gitalk) -* [Valine](https://valine.js.org/) - -## 作者 - -[Dillon](https://dillonzq.com) diff --git a/archetypes/default.md b/archetypes/default.md index 51a441a09..b1fb41086 100644 --- a/archetypes/default.md +++ b/archetypes/default.md @@ -1,25 +1,28 @@ --- -author: "" -author_link: "" title: "{{ replace .TranslationBaseName "-" " " | title }}" date: {{ .Date }} lastmod: {{ .Date }} draft: true +author: "" +authorLink: "" description: "" -show_in_homepage: true -description_as_summary: false license: "" tags: [] categories: [] +hiddenFromHomePage: false -featured_image: "" -featured_image_preview: "" +featuredImage: "" +featuredImagePreview: "" -comment: true toc: false -auto_collapse_toc: true +autoCollapseToc: true math: false +lightgallery: true +linkToMarkdown: true +share: + enable: true +comment: true --- - \ No newline at end of file + diff --git a/assets/css/_aplayer/dark.scss b/assets/css/_aplayer/dark.scss deleted file mode 100644 index 11bdac851..000000000 --- a/assets/css/_aplayer/dark.scss +++ /dev/null @@ -1,114 +0,0 @@ -.aplayer { - .dark-theme & { - background: #212121; - - &.aplayer-withlist { - .aplayer-info { - border-bottom-color: #5c5c5c; - } - } - - &.aplayer-fixed { - .aplayer-list { - border-color: #5c5c5c; - } - } - - .aplayer-body { - background-color: #212121; - } - - .aplayer-info { - border-top-color: #212121; - } - - .aplayer-info { - .aplayer-music { - .aplayer-title { - color: #fff; - } - - .aplayer-author { - color: #fff; - } - } - - .aplayer-controller { - .aplayer-time { - color: #eee; - - .aplayer-icon { - path { - fill: #eee; - } - } - } - } - } - - .aplayer-list { - background-color: #212121; - - &::-webkit-scrollbar-thumb { - background-color: #999; - } - - &::-webkit-scrollbar-thumb:hover { - background-color: #bbb; - } - - li { - color: #fff; - border-top-color: #666; - - &:hover { - background: #4e4e4e; - } - - &.aplayer-list-light { - background: #6c6c6c; - } - - .aplayer-list-index { - color: #ddd; - } - - .aplayer-list-author { - color: #ddd; - } - } - } - - .aplayer-lrc { - text-shadow: -1px -1px 0 #666; - - &:before { - background: -moz-linear-gradient(top, rgba(33,33,33,1) 0%, rgba(33,33,33,0) 100%); - background: -webkit-linear-gradient(top, rgba(33,33,33,1) 0%,rgba(33,33,33,0) 100%); - background: linear-gradient(to bottom, rgba(33,33,33,1) 0%,rgba(33,33,33,0) 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#212121', endColorstr='#00212121',GradientType=0 ); - } - - &:after { - background: -moz-linear-gradient(top, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%); - background: -webkit-linear-gradient(top, rgba(33,33,33,0) 0%,rgba(33,33,33,0.8) 100%); - background: linear-gradient(to bottom, rgba(33,33,33,0) 0%,rgba(33,33,33,0.8) 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00212121', endColorstr='#cc212121',GradientType=0 ); - } - - p { - color: #fff; - } - } - - .aplayer-miniswitcher { - background: #484848; - - .aplayer-icon { - path { - fill: #eee; - } - } - } - } -} diff --git a/assets/css/_core/_base.scss b/assets/css/_core/_base.scss index 57b4b2b98..d68daaa91 100644 --- a/assets/css/_core/_base.scss +++ b/assets/css/_core/_base.scss @@ -1,5 +1,9 @@ html { font-family: $global-font-family; + font-size: $global-font-size; + font-weight: $global-font-weight; + line-height: $global-line-height; + width:100%; } /* scrollbar, only support webkit */ @@ -25,11 +29,9 @@ html { } body { - font-size: 16px; - font-weight: 400; - line-height: 1.5rem; background-color: $global-background-color; color: $global-font-color; + overflow-wrap: break-word; &::before { content: ""; @@ -56,6 +58,10 @@ body { } } +b, strong { + font-weight: bold; +} + a { color: $global-link-color; text-decoration: none; @@ -73,3 +79,50 @@ a { } } } + +b, strong { + font-weight: bold; +} + +#dynamic-to-top { + display: none; + overflow: hidden; + width: auto; + z-index: 90; + position: fixed; + bottom: 2rem; + right: 2rem; + top: auto; + left: auto; + font-family: sans-serif; + font-size: 1rem; + color: #fff; + text-decoration: none; + font-weight: bold; + padding: 1rem 1rem; + border: 1px solid $global-border-color; + background: #222; + outline: none; + &:hover { + background: #000; + cursor: pointer; + } + &:active { + background: #000; + outline: none; + } + &:focus, &:hover { + outline: none; + } + span { + display: block; + overflow: hidden; + width: .875rem; + height: .75rem; + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAKCAYAAACE2W/HAAAACXBIWXMAAArwAAAK8AFCrDSYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAKVJREFUeNqUz7ENgzAURdErUSXQMgdTZJFIqeg8DFI2YQeEvAEbUJja3y9NEiwCUXIlN/62jww7Saok3Z+r4pckXSRNWpskXb5deClHfeo7ylGrLqnbTmOMs/e+9d63McZ554GOlFLId0IIvXOuAUqgdM41IYQ+P5NSCpjZkitADRTZTwqgznUzWzCzZaMc9dbNbGEYhuuOclQB1OM43gBO/N/5MQAeMwpyB1MtLQAAAABJRU5ErkJggg==') no-repeat center center; + } + + .dark-theme &{ + border: 1px solid $global-border-color-dark; + } +} diff --git a/assets/css/_core/_media.scss b/assets/css/_core/_media.scss index 29a3db4b6..dbcade847 100644 --- a/assets/css/_core/_media.scss +++ b/assets/css/_core/_media.scss @@ -2,8 +2,7 @@ .page { max-width: 780px; - .post-toc { - width: 300px; + #toc-auto { margin-left: 800px; } } @@ -13,8 +12,7 @@ .page { max-width: 680px; - .post-toc { - width: 240px; + #toc-auto { margin-left: 700px; } } @@ -24,16 +22,15 @@ .page { max-width: 560px; - .post-toc { - width: 180px; + #toc-auto { margin-left: 580px; } } } @media only screen and (max-width: 960px) { - .navbar { - .navbar-container { + #header-desktop { + .header-wrapper { margin: 0 1rem; } } @@ -41,27 +38,28 @@ .page { max-width: 80%; - .post-toc { + #toc-auto { display: none; } - .post-toc-mobile { + #toc-static { display: block; } } } -@media only screen and (max-width: 560px) { - .navbar { +@media only screen and (max-width: 720px) { + #header-desktop { display: none; } - .navbar-mobile { + #header-mobile { display: block; } .page { max-width: 100%; + padding-top: $page-padding-top-mobile; .categories-card { .card-item { @@ -80,8 +78,4 @@ } } } - - .dynamic-to-top { - display: none !important; - } } diff --git a/assets/css/_page/_404.scss b/assets/css/_page/_404.scss index f6d9195e2..4b2790f0b 100644 --- a/assets/css/_page/_404.scss +++ b/assets/css/_page/_404.scss @@ -1,4 +1,4 @@ -.notfound { +#content-404 { font-size: 1.8rem; line-height: 3rem; transform: translateY(30vh); diff --git a/assets/css/_page/_archive.scss b/assets/css/_page/_archive.scss new file mode 100644 index 000000000..2c6fed2dc --- /dev/null +++ b/assets/css/_page/_archive.scss @@ -0,0 +1,9 @@ +.archive { + .single-title { + text-align: right; + padding-bottom: 2rem; + } + + @import "../_partial/_archive/terms"; + @import "../_partial/_archive/tags"; +} diff --git a/assets/css/_page/_home.scss b/assets/css/_page/_home.scss index 2f21d4bc6..0de22fec0 100644 --- a/assets/css/_page/_home.scss +++ b/assets/css/_page/_home.scss @@ -1,55 +1,70 @@ /** Home **/ -.home-intro { - transform: translateY(25vh); - text-align: center; - - .home-avatar { - padding: 0.6rem; - - img { - width: 8rem; - height: auto; - display: inline-block; - -webkit-border-radius: 100%; - border-radius: 100%; - -webkit-box-shadow: 0 0 0 0.3618em rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 0.3618em rgba(0, 0, 0, 0.05); - margin: 0 auto; - -webkit-transition: all ease 0.4s; - -moz-transition: all ease 0.4s; - -o-transition: all ease 0.4s; - transition: all ease 0.4s; - cursor: pointer; - - &:hover { - position: relative; - -webkit-transform: translateY(-0.75rem); - -moz-transform: translateY(-0.75rem); - -ms-transform: translateY(-0.75rem); - -o-transform: translateY(-0.75rem); - transform: translateY(-0.75rem); - cursor: pointer; - } - } - } +@import "../_partial/_home/summary"; - .home-description { - font-size: 1rem; - font-weight: normal; - margin: 0; - padding: .4rem; - } +@mixin page-home($profile, $posts) { + .home { + @if $profile { + .home-profile { + transform: translateY(if($posts, 0, 16vh)); + padding: if($posts, 2rem, 0) 0; + text-align: center; + + .home-avatar { + padding: 0.6rem; + + img { + width: if($posts, 6rem, 8rem); + height: auto; + display: inline-block; + -webkit-border-radius: 100%; + border-radius: 100%; + -webkit-box-shadow: 0 0 0 0.3618em rgba(0, 0, 0, 0.05); + box-shadow: 0 0 0 0.3618em rgba(0, 0, 0, 0.05); + margin: 0 auto; + -webkit-transition: all ease 0.4s; + -moz-transition: all ease 0.4s; + -o-transition: all ease 0.4s; + transition: all ease 0.4s; + cursor: pointer; - .home-social-links { - padding-top: .6rem; + &:hover { + position: relative; + -webkit-transform: translateY(-0.75rem); + -moz-transform: translateY(-0.75rem); + -ms-transform: translateY(-0.75rem); + -o-transform: translateY(-0.75rem); + transform: translateY(-0.75rem); + cursor: pointer; + } + } + } - i { - font-size: 1.45rem; + .home-description { + font-size: 1rem; + font-weight: normal; + margin: 0; + padding: .4rem; + } + + .home-social-links { + padding-top: .6rem; + + i { + font-size: 1.45rem; + } + + img { + width: 1.5rem; + height: 1.5rem; + } + } + } } - img { - width: 1.5rem; - height: 1.5rem; + @if $posts { + @include summary; } } } + +@include page-home($home-profile, $home-posts); diff --git a/assets/css/_page/_index.scss b/assets/css/_page/_index.scss index 405a90a76..4b0ca057f 100644 --- a/assets/css/_page/_index.scss +++ b/assets/css/_page/_index.scss @@ -1,30 +1,13 @@ -@import "_home"; -@import "_404"; - .page { position: relative; width: 100%; max-width: 980px; margin: 0 auto; - padding-top: 6rem; - - @import "_post"; - @import "_posts"; -} - -.archive { - .post-title { - text-align: right; - padding-bottom: 2rem; - } - - @import "_terms"; - @import "_tags"; + padding-top: $page-padding-top-desktop; } -.single { - .post-title { - text-align: right; - padding-bottom: 2rem; - } -} +@import "_single"; +@import "_special"; +@import "_archive"; +@import "_home"; +@import "_404"; diff --git a/assets/css/_page/_post.scss b/assets/css/_page/_post.scss deleted file mode 100644 index 164a84876..000000000 --- a/assets/css/_page/_post.scss +++ /dev/null @@ -1,377 +0,0 @@ -/** Post **/ -.post-title { - margin: 0 !important; - font-size: 1.8rem; - line-height: 3rem; -} - -.post-meta { - font-size: .88rem; - color: $global-font-secondary-color; - - span { - display: inline-block; - } - - .dark-theme & { - color: $global-font-secondary-color-dark; - } - - a { - color: $post-link-color; - - .dark-theme & { - color: $post-link-color-dark; - } - - &:hover { - color: $post-link-hover-color; - - .dark-theme & { - color: $post-link-hover-color-dark; - } - } - } - - .author { - font-size: 1.05rem; - } -} - -.post-featured-image { - padding-top: .6rem; - - img { - display: block; - max-width: 100%; - height: auto; - margin: 0 auto; - overflow: hidden; - } -} - -@import "../_partial/_post/toc"; - -.post-content { - .post-dummy-target:target { - display: inline-block; - position: relative; - top: -5.6rem; - visibility: hidden; - } - - h1, - h2, - h3, - h4, - h5, - h6 { - font-weight: bold; - - .dark-theme & { - font-weight: bolder; - } - } - - h2, - h3, - h4, - h5, - h6 { - padding-top: .8rem; - padding-bottom: .3rem; - } - - h2::before { - content: "#"; - margin-right: .3125rem; - color: $post-link-color; - - .dark-theme & { - color: $post-link-color-dark; - } - } - - h3::before, - h4::before, - h5::before, - h6::before { - content: "|"; - margin-right: .3125rem; - color: $post-link-color; - - .dark-theme & { - color: $post-link-color-dark; - } - } - - p { - font-size: 1rem; - margin: .5rem 0 .5rem 0; - } - - a { - color: $post-link-color; - - .dark-theme & { - color: $post-link-color-dark; - } - } - - a:hover { - color: $post-link-hover-color; - - .dark-theme &:hover { - color: $post-link-hover-color-dark; - font-weight: bold; - } - } - - ul { - padding-left: 2rem; - list-style-type: disc; - } - - ruby { - background: $code-background-color; - - rt { - color: $global-font-secondary-color; - } - - .dark-theme & { - background: $code-background-color-dark; - - rt { - color: $global-font-secondary-color-dark; - } - } - } - - .table-wrapper { - overflow-x: auto; - - &::-webkit-scrollbar { - background-color: $table-background-color; - - .dark-theme & { - background-color: $table-background-color-dark; - } - } - - > table { - width: 100%; - max-width: 100%; - margin: .625rem 0; - border-spacing: 0; - background: $table-background-color; - - .dark-theme & { - background: $table-background-color-dark; - } - - thead { - background: $table-thead-color; - - .dark-theme & { - background-color: $table-thead-color-dark; - } - } - - th, td { - padding: .3rem 1rem; - border: 1px double $global-border-color; - - .dark-theme & { - border: 1px double $global-border-color-dark; - } - } - } - } - - figure { - text-align: center; - } - - .image-caption:not(:empty) { - min-width: 20%; - max-width: 80%; - display: inline-block; - padding: .625rem; - margin: 0 auto; - border-bottom: 1px solid #d9d9d9; - font-size: .875rem; - color: #969696; - line-height: 1.7; - } - - img { - display: block; - max-width: 100%; - height: auto; - margin: 0 auto; - overflow: hidden; - } - - blockquote { - font-size: 1rem; - display: block; - border-width: 1px 0; - border-style: solid; - border-color: $global-border-color; - padding: 1.5em 1.2em 0.5em 1.2em; - margin: 0 0 2em 0; - position: relative; - - &::before { - content: '\201C'; - position: absolute; - top: 0em; - left: 50%; - transform: translate(-50%, -50%); - width: 3rem; - height: 2rem; - font: 6em/1.08em 'PT Sans', sans-serif; - color: $post-link-color; - text-align: center; - - .dark-theme & { - color: $post-link-color-dark; - } - } - - &::after { - content: '#blockquote' attr(cite); - display: block; - text-align: right; - font-size: 0.875em; - color: $post-link-color; - - .dark-theme & { - color: $post-link-color-dark; - } - } - - .dark-theme & { - border-color: $global-border-color-dark; - } - } - - .footnotes { - color: $global-font-secondary-color; - - .dark-theme & { - color: $global-font-secondary-color-dark; - } - } - - @import "../_partial/_post/code"; - @import "../_partial/_post/admonition"; - - .mermaid { - width: 100%; - margin: 3% auto; - text-align: center; - - @import "../_mermaid/neutral/index"; - - .dark-theme & { - @import "../_mermaid/dark/index"; - } - } - - @import "../_aplayer/dark.scss"; - - .echarts { - width: 100%; - height: 30rem; - margin: 3% auto; - text-align: center; - } - - .bilibili { - position: relative; - width: 100%; - height: 0; - padding-bottom: 75%; - margin: 3% auto; - text-align: center; - - iframe { - position: absolute; - width: 100%; - height: 100%; - left: 0; - top: 0; - } - } - - hr { - margin: 1rem 0; - position: relative; - border-top: 1px dashed $global-border-color; - border-bottom: none; - - .dark-theme & { - border-top: 1px dashed $global-border-color-dark; - } - } - - kbd { - display: inline-block; - padding: .25em; - background-color: $global-background-color; - border: 1px solid $global-border-color; - border-bottom-color: $global-border-color; - border-radius: 3px; - -webkit-box-shadow: inset 0 -1px 0 $global-border-color; - box-shadow: inset 0 -1px 0 $global-border-color; - font-size: .8em; - line-height: 1.25rem; - font-family: $code-font-family; - color: $code-color; - - .dark-theme & { - background-color: $global-background-color-dark; - border: 1px solid $global-border-color-dark; - border-bottom-color: $global-border-color-dark; - -webkit-box-shadow: inset 0 -1px 0 $global-border-color-dark; - box-shadow: inset 0 -1px 0 $global-border-color-dark; - color: $code-color-dark; - } - } - - .typeit { - .code { - padding: .375rem; - font-size: .875rem; - font-family: $code-font-family; - font-weight: bold; - word-break: break-all; - } - } - - .align-left { - text-align: left; - } - - .align-center { - text-align: center; - } - - .align-right { - text-align: right; - } - - .float-left { - float: left; - } - - .float-right { - float: right; - } -} - -@import "../_partial/_post/footer"; - -@import "../_partial/_post/comment"; diff --git a/assets/css/_page/_posts.scss b/assets/css/_page/_posts.scss deleted file mode 100644 index 43e4a18b4..000000000 --- a/assets/css/_page/_posts.scss +++ /dev/null @@ -1,130 +0,0 @@ -.home-intro { - transform: translateY(0); - padding: 2rem 0 2rem 0; - - .home-avatar { - img { - width: 6rem; - } - } -} - -.post { - padding-top: 1rem; - padding-bottom: .8rem; - color: $global-font-color; - border-bottom: 1px dashed $global-border-color; - - .dark-theme & { - color: $global-font-color-dark; - border-bottom: 1px dashed $global-border-color-dark; - } - - .post-featured-image-preview { - width: 100%; - padding: 30% 0 0; - position: relative; - margin: 0.6rem auto; - - img { - position: absolute; - width: 100%; - height: 100%; - left: 0; - top: 0; - object-fit: cover; - } - } - - .post-list-title { - font-size: 1.6rem; - } - - .post-meta { - font-size: .875rem !important; - a { - color: $global-font-secondary-color !important; - - .dark-theme & { - color: $global-font-secondary-color-dark !important; - } - - &:hover { - color: $global-link-hover-color !important; - - .dark-theme & { - color: $global-link-hover-color-dark !important; - } - } - } - } - - .post-content { - padding-top: .2rem; - font-size: .9rem; - width: 100%; - max-height: 7rem; - overflow: hidden; - - h2, - h3, - h4, - h5, - h6 { - font-size: 1rem; - line-height: 1rem; - padding-top: .3rem; - padding-bottom: .3rem; - } - - p { - margin: 0; - padding-top: .3rem; - padding-bottom: .3rem; - } - } - - .post-footer { - margin-top: .5rem; - display: flex; - justify-content: space-between; - align-items: center; - font-size: .875rem !important; - - a { - color: $post-link-color !important; - - .dark-theme & { - color: $post-link-color-dark !important; - } - - &:hover { - color: $post-link-hover-color !important; - - .dark-theme & { - color: $post-link-hover-color-dark !important; - } - } - } - - .post-tags { - padding: 0; - - a { - color: $global-link-color !important; - - .dark-theme & { - color: $global-link-color-dark !important; - } - - &:hover { - color: $global-link-hover-color !important; - - .dark-theme & { - color: $global-link-hover-color-dark !important; - } - } - } - } - } -} \ No newline at end of file diff --git a/assets/css/_page/_single.scss b/assets/css/_page/_single.scss new file mode 100644 index 000000000..a7cd994c2 --- /dev/null +++ b/assets/css/_page/_single.scss @@ -0,0 +1,329 @@ +/** Single **/ +.single { + .single-title { + margin: 0; + font-size: 1.8rem; + line-height: 3rem; + } + + .post-meta { + font-size: .875rem; + color: $global-font-secondary-color; + + span { + display: inline-block; + } + + .dark-theme & { + color: $global-font-secondary-color-dark; + } + + a { + color: $single-link-color; + + .dark-theme & { + color: $single-link-color-dark; + } + + &:hover { + color: $single-link-hover-color; + + .dark-theme & { + color: $single-link-hover-color-dark; + } + } + } + + .author { + font-size: 1.05rem; + } + } + + .featured-image { + padding-top: .6rem; + + img { + display: block; + max-width: 100%; + height: auto; + margin: 0 auto; + overflow: hidden; + } + } + + @import "../_partial/_single/toc"; + + .content { + h2, + h3, + h4, + h5, + h6 { + font-weight: bold; + margin: 1.2rem 0; + + .dark-theme & { + font-weight: bolder; + } + + & > a:first-child::before { + content: "|"; + margin-right: .3125rem; + color: $single-link-color; + + .dark-theme & { + color: $single-link-color-dark; + } + } + } + + h2 > a:first-child::before { + content: "#"; + } + + p { + font-size: 1rem; + margin: .5rem 0; + } + + a { + word-break: break-all; + word-break: break-word; + color: $single-link-color; + + .dark-theme & { + color: $single-link-color-dark; + } + } + + a:hover { + color: $single-link-hover-color; + + .dark-theme &:hover { + color: $single-link-hover-color-dark; + font-weight: bold; + } + } + + ul { + padding-left: 2rem; + list-style-type: disc; + } + + ruby { + background: $code-background-color; + + rt { + color: $global-font-secondary-color; + } + + .dark-theme & { + background: $code-background-color-dark; + + rt { + color: $global-font-secondary-color-dark; + } + } + } + + .table-wrapper { + overflow-x: auto; + + &::-webkit-scrollbar { + background-color: $table-background-color; + + .dark-theme & { + background-color: $table-background-color-dark; + } + } + + > table { + width: 100%; + max-width: 100%; + margin: .625rem 0; + border-spacing: 0; + background: $table-background-color; + + .dark-theme & { + background: $table-background-color-dark; + } + + thead { + background: $table-thead-color; + + .dark-theme & { + background-color: $table-thead-color-dark; + } + } + + th, td { + padding: .3rem 1rem; + border: 1px double $global-border-color; + + .dark-theme & { + border: 1px double $global-border-color-dark; + } + } + } + } + + figure { + text-align: center; + + .image-caption:not(:empty) { + min-width: 20%; + max-width: 80%; + display: inline-block; + padding: .625rem; + margin: 0 auto; + border-bottom: 1px solid #d9d9d9; + font-size: .875rem; + color: #969696; + line-height: 1.7; + } + + img { + display: block; + max-width: 96%; + height: auto; + margin: 0 auto; + overflow: hidden; + transition: all 0.2s ease-in-out; + } + + a.lightgallery:hover img { + transform: scale(1.02); + } + } + + .lazyloading { + object-fit: none; + } + + blockquote { + font-size: 1rem; + display: block; + border-width: 1px 0; + border-style: solid; + border-color: $global-border-color; + padding: 1.5em 1.2em 0.5em 1.2em; + margin: 0 0 2em 0; + position: relative; + + &::before { + content: '\201C'; + position: absolute; + top: 0em; + left: 50%; + transform: translate(-50%, -50%); + width: 3rem; + height: 2rem; + font: 6em/1.08em 'PT Sans', sans-serif; + color: $single-link-color; + text-align: center; + + .dark-theme & { + color: $single-link-color-dark; + } + } + + &::after { + content: '#blockquote' attr(cite); + display: block; + text-align: right; + font-size: 0.875em; + color: $single-link-color; + + .dark-theme & { + color: $single-link-color-dark; + } + } + + .dark-theme & { + border-color: $global-border-color-dark; + } + } + + .footnotes { + color: $global-font-secondary-color; + + .dark-theme & { + color: $global-font-secondary-color-dark; + } + } + + @import "../_partial/_single/code"; + @import "../_partial/_single/admonition"; + + .echarts { + width: 100%; + height: 30rem; + margin: 3% auto; + text-align: center; + } + + .bilibili { + position: relative; + width: 100%; + height: 0; + padding-bottom: 75%; + margin: 3% auto; + text-align: center; + + iframe { + position: absolute; + width: 100%; + height: 100%; + left: 0; + top: 0; + } + } + + hr { + margin: 1rem 0; + position: relative; + border-top: 1px dashed $global-border-color; + border-bottom: none; + + .dark-theme & { + border-top: 1px dashed $global-border-color-dark; + } + } + + kbd { + display: inline-block; + padding: .25rem; + background-color: $global-background-color; + border: 1px solid $global-border-color; + border-bottom-color: $global-border-color; + border-radius: 3px; + -webkit-box-shadow: inset 0 -1px 0 $global-border-color; + box-shadow: inset 0 -1px 0 $global-border-color; + font-size: .8rem; + font-family: $code-font-family; + color: $code-color; + + .dark-theme & { + background-color: $global-background-color-dark; + border: 1px solid $global-border-color-dark; + border-bottom-color: $global-border-color-dark; + -webkit-box-shadow: inset 0 -1px 0 $global-border-color-dark; + box-shadow: inset 0 -1px 0 $global-border-color-dark; + color: $code-color-dark; + } + } + + .typeit { + .code { + padding: .375rem; + font-size: .875rem; + font-family: $code-font-family; + font-weight: bold; + word-break: break-all; + } + } + } + + @import "../_partial/_single/footer"; + @import "../_partial/_single/comment"; +} diff --git a/assets/css/_page/_special.scss b/assets/css/_page/_special.scss new file mode 100644 index 000000000..00bb32a7b --- /dev/null +++ b/assets/css/_page/_special.scss @@ -0,0 +1,6 @@ +.special { + .single-title { + text-align: right; + padding-bottom: 2rem; + } +} diff --git a/assets/css/_page/_tags.scss b/assets/css/_partial/_archive/_tags.scss similarity index 94% rename from assets/css/_page/_tags.scss rename to assets/css/_partial/_archive/_tags.scss index 9e466eae8..05f352c4e 100644 --- a/assets/css/_page/_tags.scss +++ b/assets/css/_partial/_archive/_tags.scss @@ -5,7 +5,7 @@ display: inline-block; position: relative; margin: 5px 10px; - word-wrap: break-word; + overflow-wrap: break-word; transition-duration: .3s; transition-property: transform; transition-timing-function: ease-out; diff --git a/assets/css/_page/_terms.scss b/assets/css/_partial/_archive/_terms.scss similarity index 100% rename from assets/css/_page/_terms.scss rename to assets/css/_partial/_archive/_terms.scss diff --git a/assets/css/_partial/_footer.scss b/assets/css/_partial/_footer.scss index 89e7954ad..fe17fe02d 100644 --- a/assets/css/_partial/_footer.scss +++ b/assets/css/_partial/_footer.scss @@ -10,47 +10,3 @@ } } } - -.dynamic-to-top { - display: none; - overflow: hidden; - width: auto; - z-index: 90; - position: fixed; - bottom: 2rem; - right: 2rem; - top: auto; - left: auto; - font-family: sans-serif; - font-size: 1rem; - color: #fff; - text-decoration: none; - text-shadow: 0 1px 0 #333; - font-weight: bold; - padding: 1rem 1rem; - border: 1px solid $global-border-color; - background: #222; - &:hover { - background: #000; - cursor: pointer; - } - &:active { - background: #000; - outline: none; - } - outline: none; - &:focus, &:hover { - outline: none; - } - span { - display: block; - overflow: hidden; - width: .875rem; - height: .75rem; - background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAKCAYAAACE2W/HAAAACXBIWXMAAArwAAAK8AFCrDSYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAKVJREFUeNqUz7ENgzAURdErUSXQMgdTZJFIqeg8DFI2YQeEvAEbUJja3y9NEiwCUXIlN/62jww7Saok3Z+r4pckXSRNWpskXb5deClHfeo7ylGrLqnbTmOMs/e+9d63McZ554GOlFLId0IIvXOuAUqgdM41IYQ+P5NSCpjZkitADRTZTwqgznUzWzCzZaMc9dbNbGEYhuuOclQB1OM43gBO/N/5MQAeMwpyB1MtLQAAAABJRU5ErkJggg==') no-repeat center center; - } - - .dark-theme &{ - border: 1px solid $global-border-color-dark; - } -} diff --git a/assets/css/_partial/_header.scss b/assets/css/_partial/_header.scss new file mode 100644 index 000000000..263d5939a --- /dev/null +++ b/assets/css/_partial/_header.scss @@ -0,0 +1,178 @@ +header { + width: 100%; + z-index: 100; + background-color: $header-background-color; + + .dark-theme & { + background-color: $header-background-color-dark; + } + + .header-title { + font-weight: bold; + } + + .select-language { + font-weight: $global-font-weight; + border: none; + box-shadow: none; + background: transparent; + background-image: none; + -webkit-appearance: none; + color: $global-font-color; + + .dark-theme & { + color: $global-font-color-dark; + } + + &:focus { + outline: none; + } + + &:hover { + cursor: pointer; + } + } +} + +#header-desktop { + display: block; + position: $header-position-desktop; + height: $header-height-desktop; + line-height: $header-height-desktop; + + .header-wrapper { + width: auto; + text-align: center; + margin: 0 4rem; + display: flex; + justify-content: space-between; + + .header-title a { + padding: 0 8px; + font-size: 1.25rem; + + i { + line-height: 2rem; + } + } + + .menu a { + padding: 0 8px; + + &.active { + font-weight: 900; + color: $header-hover-color; + + .dark-theme & { + color: $header-hover-color-dark; + } + } + } + } +} + +#header-mobile { + display: none; + position: $header-position-mobile; + height: $header-height-mobile; + line-height: $header-height-mobile; + + .header-wrapper { + padding: 0; + margin: 0; + transition: all 0.3s ease 0s; + + .header-container { + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; + font-size: 1.125rem; + padding-right: 1rem; + padding-left: 1rem; + box-sizing: border-box; + + .header-title { + font-size: 1.25rem; + } + + .menu-toggle { + cursor: pointer; + line-height: 4rem; + + span { + display: block; + background: $global-font-color; + width: 1.5rem; + height: 2px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-transition: .1s margin .1s, .1s transform; + -moz-transition: .1s margin .1s, .1s transform; + transition: .1s margin .1s, .1s transform; + + .dark-theme & { + background: $global-font-color-dark; + } + } + + span:nth-child(1) { + margin-bottom: .5rem; + } + + span:nth-child(3) { + margin-top: .5rem; + } + + &.active { + span { + -webkit-transition: .1s margin, .1s transform .1s; + -moz-transition: .1s margin, .1s transform .1s; + transition: .1s margin, .1s transform .1s; + } + + span:nth-child(1) { + -moz-transform: rotate(45deg) translate(.4rem, .5rem); + -ms-transform: rotate(45deg) translate(.4rem, .5rem); + -webkit-transform: rotate(45deg) translate(.4rem, .5rem); + transform: rotate(45deg) translate(.4rem, .5rem); + } + + span:nth-child(2) { + opacity: 0 + } + + span:nth-child(3) { + -moz-transform: rotate(-45deg) translate(.4rem, -.5rem); + -ms-transform: rotate(-45deg) translate(.4rem, -.5rem); + -webkit-transform: rotate(-45deg) translate(.4rem, -.5rem); + transform: rotate(-45deg) translate(.4rem, -.5rem); + } + } + } + } + + .menu { + text-align: center; + background: $global-background-color; + border-top: 2px solid $global-font-color; + display: none; + box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.1), 0px 4px 8px rgba(0, 0, 0, 0.1); + + a { + display: block; + line-height: 2.5rem; + } + + &.active { + display: block; + } + + .dark-theme & { + background: $global-background-color-dark; + border-top: 2px solid $global-font-color-dark; + } + } + } +} diff --git a/assets/css/_partial/_home/_summary.scss b/assets/css/_partial/_home/_summary.scss new file mode 100644 index 000000000..aada46d15 --- /dev/null +++ b/assets/css/_partial/_home/_summary.scss @@ -0,0 +1,136 @@ +@mixin summary { + .summary { + padding-top: 1rem; + padding-bottom: .8rem; + color: $global-font-color; + border-bottom: 1px dashed $global-border-color; + + .dark-theme & { + color: $global-font-color-dark; + border-bottom: 1px dashed $global-border-color-dark; + } + + .featured-image-preview { + width: 100%; + padding: 30% 0 0; + position: relative; + margin: 0.6rem auto; + + img { + position: absolute; + width: 100%; + height: 100%; + left: 0; + top: 0; + object-fit: cover; + } + } + + .single-title { + font-size: 1.6rem; + } + + .content { + display: -moz-box; + display: -webkit-box; + -moz-box-orient: vertical; + -webkit-box-orient: vertical; + -webkit-line-clamp: 3; + margin-top: .3rem; + width: 100%; + overflow: hidden; + text-overflow: ellipsis; + overflow-wrap: break-word; + color: $global-font-secondary-color; + + .dark-theme & { + color: $global-font-secondary-color-dark; + } + + h2, + h3, + h4, + h5, + h6, + p { + font-size: 1rem; + display: inline; + + &::after { + content: "\A"; + white-space: pre; + } + } + + h2, + h3, + h4, + h5, + h6 { + line-height: 2; + + &::before { + content: "|"; + margin-right: .3125rem; + color: $single-link-color; + + .dark-theme & { + color: $single-link-color-dark; + } + } + } + + h2 { + font-size: 1.2rem; + + &::before { + content: "#"; + } + } + } + + .post-footer { + margin-top: .5rem; + display: flex; + justify-content: space-between; + align-items: center; + font-size: .875rem !important; + + a { + color: $single-link-color !important; + + .dark-theme & { + color: $single-link-color-dark !important; + } + + &:hover { + color: $single-link-hover-color !important; + + .dark-theme & { + color: $single-link-hover-color-dark !important; + } + } + } + + .post-tags { + padding: 0; + + a { + color: $global-link-color !important; + + .dark-theme & { + color: $global-link-color-dark !important; + } + + &:hover { + color: $global-link-hover-color !important; + + .dark-theme & { + color: $global-link-hover-color-dark !important; + } + } + } + } + } + } +} diff --git a/assets/css/_partial/_navbar.scss b/assets/css/_partial/_navbar.scss deleted file mode 100644 index 10ce1bc29..000000000 --- a/assets/css/_partial/_navbar.scss +++ /dev/null @@ -1,156 +0,0 @@ -.navbar { - display: block; - position: fixed; - width: 100%; - z-index: 100; - height: 4rem; - line-height: 4rem; - background-color: $navbar-background-color; - - .dark-theme & { - background-color: $navbar-background-color-dark; - } - - .navbar-container { - width: auto; - text-align: center; - margin: 0 4rem; - display: flex; - justify-content: space-between; - - .navbar-header a { - padding: 0 8px; - font-size: 20px; - - i { - line-height: 2em; - } - } - - .navbar-menu a { - padding: 0 8px; - - &.active { - font-weight: 900; - color: $navbar-hover-color; - - .dark-theme & { - color: $navbar-hover-color-dark; - } - } - } - } -} - -.navbar-mobile { - display: none; - position: fixed; - width: 100%; - z-index: 100; - transition: all 0.3s ease 0s; - - .navbar-container { - padding: 0; - margin: 0; - height: 4.5em; - line-height: 4.5em; - background: $global-background-color; - - .navbar-header { - display: flex; - justify-content: space-between; - align-items: center; - width: 100%; - font-size: 18px; - padding-right: 1em; - padding-left: 1em; - box-sizing: border-box; - - .navbar-header-title { - font-size: 20px; - } - - .menu-toggle { - cursor: pointer; - line-height: 4.5em; - - span { - display: block; - background: #000; - width: 24px; - height: 2px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - -webkit-transition: .2s margin .2s, .2s transform; - -moz-transition: .2s margin .2s, .2s transform; - transition: .2s margin .2s, .2s transform; - - .dark-theme & { - background: $global-font-color-dark; - } - } - - span:nth-child(1) { - margin-bottom: 8px; - } - - span:nth-child(3) { - margin-top: 8px; - } - - &.active { - span { - -webkit-transition: .2s margin, .2s transform .2s; - -moz-transition: .2s margin, .2s transform .2s; - transition: .2s margin, .2s transform .2s; - } - - span:nth-child(1) { - -moz-transform: rotate(45deg) translate(4px, 6px); - -ms-transform: rotate(45deg) translate(4px, 6px); - -webkit-transform: rotate(45deg) translate(4px, 6px); - transform: rotate(45deg) translate(4px, 6px); - } - - span:nth-child(2) { - opacity: 0 - } - - span:nth-child(3) { - -moz-transform: rotate(-45deg) translate(8px, -10px); - -ms-transform: rotate(-45deg) translate(8px, -10px); - -webkit-transform: rotate(-45deg) translate(8px, -10px); - transform: rotate(-45deg) translate(8px, -10px); - } - } - } - } - - .navbar-menu { - text-align: center; - background: $global-background-color; - border-top: 2px solid $global-font-color; - display: none; - box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.1), 0px 4px 8px rgba(0, 0, 0, 0.1); - - a { - display: block; - line-height: 2.5em; - } - - &.active { - display: block; - } - - .dark-theme & { - background: $global-background-color-dark; - border-top: 2px solid $global-font-color-dark; - } - } - - .dark-theme & { - background: $global-background-color-dark; - } - } -} diff --git a/assets/css/_partial/_pagination.scss b/assets/css/_partial/_pagination.scss index 9019b343e..78e5030cb 100644 --- a/assets/css/_partial/_pagination.scss +++ b/assets/css/_partial/_pagination.scss @@ -1,4 +1,4 @@ - /** pagination **/ +/** pagination **/ .pagination { display: flex; flex-direction: row; @@ -6,7 +6,7 @@ list-style: none; white-space: nowrap; width: 100%; - padding-top: 1rem; + padding: 1rem 0 0; a { -webkit-font-smoothing: antialiased; diff --git a/assets/css/_partial/_post/_code.scss b/assets/css/_partial/_post/_code.scss deleted file mode 100644 index 63ce97f30..000000000 --- a/assets/css/_partial/_post/_code.scss +++ /dev/null @@ -1,234 +0,0 @@ -code, -pre { - font-size: $code-font-size; - font-family: $code-font-family; - color: $code-color; - padding: 5px; - background: $code-background-color; - - .dark-theme & { - color: $code-color-dark; - background: $code-background-color-dark; - } -} - -.highlight > pre.chroma { - padding: 38px 7px 8px; - overflow-x: auto; -} - -.highlight > .chroma { - margin: 1em 0; - position: relative; - font-family: $code-font-family; - - code { - padding: 0; - } - - pre { - margin: 0; - padding: 38px 7px 8px; - overflow-x: visible; - } - - &::after { - position: absolute; - top: 0; - right: 0; - left: 0; - padding: 2px 7px; - font-size: $code-font-size; - font-weight: bold; - color: $code-info-color; - background: darken($code-background-color, 3%); - content: 'Code'; - - .dark-theme & { - color: $code-info-color-dark; - background: darken($code-background-color-dark, 3%); - } - } - - @each $type, $text in $code-type-map { - &.#{$type}::after { - content: $text; - } - } - - .lntd { - // Fix code block null line height and - // Synchronous gutter and code line highly. - line-height: round($code-font-size * 1.5); - - &:first-child { - width: 10px; - } - - &:last-child { - vertical-align: top; - } - } - - table, tr, td { - margin: 0; - padding: 0; - width: 100%; - border-collapse: collapse; - border-color: $code-background-color; - - .dark-theme & { - border-color: $code-background-color-dark; - } - } - - /* LineNumbersTable */ - .lnt { - color: $code-info-color; - } - - /* LineHighlight */ - .hl { - display: block; - background-color: darken($code-background-color, 5%); - - .dark-theme & { - background-color: darken($code-background-color-dark, 5%); - } - } -} - -.highlight { - /* Parentheses */ .p { color: #A9A9B3 } - /* Keyword */ .k { color: #859900 } - /* KeywordConstant */ .kc { color: #859900; font-weight: bold } - /* KeywordDeclaration */ .kd { color: #859900 } - /* KeywordNamespace */ .kn { color: #dc322f; font-weight: bold } - /* KeywordPseudo */ .kp { color: #859900 } - /* KeywordReserved */ .kr { color: #859900 } - /* KeywordType */ .kt { color: #859900; font-weight: bold } - /* Name */ .n { color: #268bd2 } - /* NameAttribute */ .na { color: #268bd2 } - /* NameBuiltin */ .nb { color: #cb4b16 } - /* NameBuiltinPseudo */ .bp { color: #268bd2 } - /* NameClass */ .nc { color: #cb4b16 } - /* NameConstant */ .no { color: #268bd2 } - /* NameDecorator */ .nd { color: #268bd2 } - /* NameEntity */ .ni { color: #268bd2 } - /* NameException */ .ne { color: #268bd2 } - /* NameFunction */ .nf { color: #268bd2 } - /* NameFunctionMagic */ .fm { color: #268bd2 } - /* NameLabel */ .nl { color: #268bd2 } - /* NameNamespace */ .nn { color: #268bd2 } - /* NameOther */ .nx { color: #268bd2 } - /* NameProperty */ .py { color: #268bd2 } - /* NameTag */ .nt { color: #268bd2; font-weight: bold } - /* NameVariable */ .nv { color: #268bd2 } - /* NameVariableClass */ .vc { color: #268bd2 } - /* NameVariableGlobal */ .vg { color: #268bd2 } - /* NameVariableInstance */ .vi { color: #268bd2 } - /* NameVariableMagic */ .vm { color: #268bd2 } - /* Literal */ .l { color: #2aa198 } - /* LiteralDate */ .ld { color: #2aa198 } - /* LiteralString */ .s { color: #2aa198 } - /* LiteralStringAffix */ .sa { color: #2aa198 } - /* LiteralStringBacktick */ .sb { color: #2aa198 } - /* LiteralStringChar */ .sc { color: #2aa198 } - /* LiteralStringDelimiter */ .dl { color: #2aa198 } - /* LiteralStringDoc */ .sd { color: #2aa198 } - /* LiteralStringDouble */ .s2 { color: #2aa198 } - /* LiteralStringEscape */ .se { color: #2aa198 } - /* LiteralStringHeredoc */ .sh { color: #2aa198 } - /* LiteralStringInterpol */ .si { color: #2aa198 } - /* LiteralStringOther */ .sx { color: #2aa198 } - /* LiteralStringRegex */ .sr { color: #2aa198 } - /* LiteralStringSingle */ .s1 { color: #2aa198 } - /* LiteralStringSymbol */ .ss { color: #2aa198 } - /* LiteralNumber */ .m { color: #2aa198; font-weight: bold } - /* LiteralNumberBin */ .mb { color: #2aa198; font-weight: bold } - /* LiteralNumberFloat */ .mf { color: #2aa198; font-weight: bold } - /* LiteralNumberHex */ .mh { color: #2aa198; font-weight: bold } - /* LiteralNumberInteger */ .mi { color: #2aa198; font-weight: bold } - /* LiteralNumberIntegerLong */ .il { color: #2aa198; font-weight: bold } - /* LiteralNumberOct */ .mo { color: #2aa198; font-weight: bold } - /* OperatorWord */ .ow { color: #859900 } - /* Comment */ .c { color: #93a1a1; font-style: italic } - /* CommentHashbang */ .ch { color: #93a1a1; font-style: italic } - /* CommentMultiline */ .cm { color: #93a1a1; font-style: italic } - /* CommentSingle */ .c1 { color: #93a1a1; font-style: italic } - /* CommentSpecial */ .cs { color: #93a1a1; font-style: italic } - /* CommentPreproc */ .cp { color: #93a1a1; font-style: italic } - /* CommentPreprocFile */ .cpf { color: #93a1a1; font-style: italic } - /* Generic */ .g { color: #d33682 } - /* GenericDeleted */ .gd { color: #b58900 } - /* GenericEmph */ .ge { color: #d33682 } - /* GenericError */ .gr { color: #d33682 } - /* GenericHeading */ .gh { color: #d33682 } - /* GenericInserted */ .gi { color: #859900 } - /* GenericOutput */ .go { color: #d33682 } - /* GenericPrompt */ .gp { color: #d33682 } - /* GenericStrong */ .gs { color: #d33682 } - /* GenericSubheading */ .gu { color: #d33682 } - /* GenericTraceback */ .gt { color: #d33682 } - - .dark-theme & { - background: $code-background-color-dark; - - /* Parentheses */ .p { color: #A9A9B3 } - /* Keyword */ .k { color: #D371E3 } - /* KeywordConstant */ .kc { color: #D371E3 } - /* KeywordDeclaration */ .kd { color: #D371E3 } - /* KeywordNamespace */ .kn { color: #D371E3 } - /* KeywordPseudo */ .kp { color: #D371E3 } - /* KeywordReserved */ .kr { color: #D371E3 } - /* KeywordType */ .kt { color: #8be9fd } - /* NameAttribute */ .na { color: #41B1F5 } - /* NameBuiltin */ .nb { color: #8be9fd; font-style: italic } - /* NameClass */ .nc { color: #E5BF78 } - /* NameFunction */ .nf { color: #19B8C0 } - /* NameX */ .nx { color: #F16473 } - /* NameLabel */ .nl { color: #8be9fd; font-style: italic } - /* NameTag */ .nt { color: #D371E3 } - /* NameVariable */ .nv { color: #8be9fd; font-style: italic } - /* NameVariableClass */ .vc { color: #8be9fd; font-style: italic } - /* NameVariableGlobal */ .vg { color: #8be9fd; font-style: italic } - /* NameVariableInstance */ .vi { color: #8be9fd; font-style: italic } - /* LiteralString */ .s { color: #8BC56F } - /* LiteralStringAffix */ .sa { color: #8BC56F } - /* LiteralStringBacktick */ .sb { color: #8BC56F } - /* LiteralStringChar */ .sc { color: #8BC56F } - /* LiteralStringDelimiter */ .dl { color: #8BC56F } - /* LiteralStringDoc */ .sd { color: #8BC56F } - /* LiteralStringDouble */ .s2 { color: #8BC56F } - /* LiteralStringEscape */ .se { color: #8BC56F } - /* LiteralStringHeredoc */ .sh { color: #8BC56F } - /* LiteralStringInterpol */ .si { color: #8BC56F } - /* LiteralStringOther */ .sx { color: #8BC56F } - /* LiteralStringRegex */ .sr { color: #8BC56F } - /* LiteralStringSingle */ .s1 { color: #8BC56F } - /* LiteralStringSymbol */ .ss { color: #8BC56F } - /* LiteralNumber */ .m { color: #bd93f9 } - /* LiteralNumberBin */ .mb { color: #bd93f9 } - /* LiteralNumberFloat */ .mf { color: #bd93f9 } - /* LiteralNumberHex */ .mh { color: #bd93f9 } - /* LiteralNumberInteger */ .mi { color: #bd93f9 } - /* LiteralNumberIntegerLong */ .il { color: #bd93f9 } - /* LiteralNumberOct */ .mo { color: #bd93f9 } - /* Operator */ .o { color: #D371E3 } - /* OperatorWord */ .ow { color: #D371E3 } - /* Comment */ .c { color: #7E848F } - /* CommentHashbang */ .ch { color: #7E848F } - /* CommentMultiline */ .cm { color: #7E848F } - /* CommentSingle */ .c1 { color: #7E848F } - /* CommentSpecial */ .cs { color: #7E848F } - /* CommentPreproc */ .cp { color: #D371E3 } - /* CommentPreprocFile */ .cpf { color: #D371E3 } - /* GenericDeleted */ .gd { color: #8b080b } - /* GenericEmph */ .ge { text-decoration: underline } - /* GenericHeading */ .gh { font-weight: bold } - /* GenericInserted */ .gi { font-weight: bold } - /* GenericOutput */ .go { color: #44475a } - /* GenericSubheading */ .gu { font-weight: bold } - /* GenericUnderline */ .gl { text-decoration: underline } - } -} diff --git a/assets/css/_partial/_post/_admonition.scss b/assets/css/_partial/_single/_admonition.scss similarity index 82% rename from assets/css/_partial/_post/_admonition.scss rename to assets/css/_partial/_single/_admonition.scss index 7d44a96c5..69a791334 100644 --- a/assets/css/_partial/_post/_admonition.scss +++ b/assets/css/_partial/_single/_admonition.scss @@ -8,19 +8,22 @@ .admonition-title { margin: 0 -0.75rem; - padding: .5rem .75rem .5rem 2.5rem; - border-bottom: .1rem solid map-get($admonition-background-color-map, 'note'); + padding: .2rem .75rem .2rem 1.8rem; + border-bottom: .05rem solid map-get($admonition-background-color-map, 'note'); background-color: map-get($admonition-background-color-map, 'note'); - font-weight: 700; + } + + .admonition-content { + margin: .5rem 0; } i.icon { - font-size: 16px; + font-size: 0.85rem; color: map-get($admonition-color-map, 'note'); cursor: auto; position: absolute; - left: .75rem; - top: .75rem; + left: .6rem; + top: .6rem; } @each $type, $color in $admonition-color-map { @@ -61,8 +64,8 @@ details.admonition { i.details { position: absolute; - top: .75rem; - right: .75rem; + top: .5rem; + right: .5rem; color: $global-font-color; .dark-theme & { diff --git a/assets/css/_partial/_single/_code.scss b/assets/css/_partial/_single/_code.scss new file mode 100644 index 000000000..1bcdb7b83 --- /dev/null +++ b/assets/css/_partial/_single/_code.scss @@ -0,0 +1,109 @@ +code { + font-size: $code-font-size; + font-family: $code-font-family; + padding: .2rem .4rem; + color: $code-color; + + .dark-theme & { + color: $code-color-dark; + } +} + +code, pre, .highlight table, .highlight tr, .highlight td { + background: $code-background-color; + + .dark-theme & { + background: $code-background-color-dark; + } +} + +.highlight > .chroma { + margin: 1rem 0; + + code, pre { + margin: 0; + padding: 0; + } + + &::before { + display: block; + padding: .4rem; + font-family: $global-font-family; + font-weight: bold; + color: $code-info-color; + background: darken($code-background-color, 3%); + content: 'Code'; + + .dark-theme & { + color: $code-info-color-dark; + background: darken($code-background-color-dark, 3%); + } + } + + @each $type, $text in $code-type-map { + &.#{$type}::before { + content: $text; + } + } + + table, tr, td { + margin: 0; + border: none !important; + } + + td { + padding: .2rem .4rem; + } + + .lntd { + &:first-child { + width: 1.2rem; + + /* LineNumbersTable */ + .lnt { + color: $code-info-color; + } + + /* LineHighlight */ + .hl { + font-weight: bolder; + } + } + + &:last-child { + /* LineHighlight */ + .hl { + display: block; + background-color: darken($code-background-color, 5%); + + .dark-theme & { + background-color: darken($code-background-color-dark, 5%); + } + } + } + } +} + +.highlight { + font-family: $code-font-family; + font-size: $code-font-size; + line-height: round($code-font-size * 1.4); + /* Comment */ .c, + /* CommentHashbang */ .ch, + /* CommentMultiline */ .cm, + /* CommentSingle */ .c1, + /* CommentSpecial */ .cs, + /* CommentPreproc */ .cp, + /* CommentPreprocFile */ .cpf { font-style: italic } + /* GenericUnderline */ .gl { text-decoration: underline } + + @each $class, $color in $code-highlight-color-map { + .#{$class} { color: $color; } + } + + .dark-theme & { + @each $class, $color in $code-highlight-color-map-dark { + .#{$class} { color: $color; } + } + } +} diff --git a/assets/css/_partial/_post/_comment.scss b/assets/css/_partial/_single/_comment.scss similarity index 56% rename from assets/css/_partial/_post/_comment.scss rename to assets/css/_partial/_single/_comment.scss index 27bcb30cf..21dbd9dd4 100644 --- a/assets/css/_partial/_post/_comment.scss +++ b/assets/css/_partial/_single/_comment.scss @@ -1,3 +1,3 @@ -.post-comment { +.comment { padding: 4rem 0; } diff --git a/assets/css/_partial/_post/_footer.scss b/assets/css/_partial/_single/_footer.scss similarity index 68% rename from assets/css/_partial/_post/_footer.scss rename to assets/css/_partial/_single/_footer.scss index 41f0c5a6c..8cf44b2e7 100644 --- a/assets/css/_partial/_post/_footer.scss +++ b/assets/css/_partial/_single/_footer.scss @@ -20,6 +20,22 @@ .dark-theme & { color: $global-font-secondary-color-dark; } + + a { + color: $single-link-color; + + .dark-theme & { + color: $single-link-color-dark; + } + + &:hover { + color: $single-link-hover-color; + + .dark-theme & { + color: $single-link-hover-color-dark; + } + } + } } .post-info-license { @@ -31,20 +47,23 @@ } } - .post-info-md - a { - font-size: 0.8em; - color: $post-link-color; - - .dark-theme & { - color: $post-link-color-dark; - } + .post-info-md { + font-size: 0.8rem; + width: 8rem; - &:hover { - color: $post-link-hover-color; + a { + color: $single-link-color; .dark-theme & { - color: $post-link-hover-color-dark; + color: $single-link-color-dark; + } + + &:hover { + color: $single-link-hover-color; + + .dark-theme & { + color: $single-link-hover-color-dark; + } } } } diff --git a/assets/css/_partial/_post/_toc.scss b/assets/css/_partial/_single/_toc.scss similarity index 71% rename from assets/css/_partial/_post/_toc.scss rename to assets/css/_partial/_single/_toc.scss index 5a132fa4d..ed3ed654b 100644 --- a/assets/css/_partial/_post/_toc.scss +++ b/assets/css/_partial/_single/_toc.scss @@ -1,25 +1,25 @@ -.post-toc { +#toc-auto { display: block; position: absolute; - width: 360px; + width: 100%; margin-left: 1000px; padding: 0 .8rem; border-left: 1px solid $global-border-color; - word-wrap: break-word; + overflow-wrap: break-word; box-sizing: border-box; - top: 12rem; + top: if($header-normal-mode-desktop, 7rem, 12rem); .dark-theme & { border-left: 1px solid $global-border-color-dark; } - .post-toc-title { + .toc-title { font-weight: 400; margin: .8rem 0; text-transform: uppercase; } - .post-toc-content { + .toc-content { &.always-active ul { display: block; } @@ -37,10 +37,10 @@ content: "|"; font-weight: bolder; margin-right: .5rem; - color: $post-link-color; + color: $single-link-color; .dark-theme & { - color: $post-link-color-dark; + color: $single-link-color-dark; } } @@ -54,33 +54,32 @@ } } - .toc-link.active { + a.active { font-weight: bold; - color: $post-link-hover-color; + color: $single-link-color; .dark-theme & { - color: $post-link-hover-color-dark; + color: $single-link-color-dark; } &::before { - font-weight: bolder; - color: $post-link-hover-color; + color: $single-link-hover-color; .dark-theme & { - color: $post-link-hover-color-dark; + color: $single-link-hover-color-dark; } } } } } -.post-toc-mobile { +#toc-static { display: none; padding-top: .8rem; details { summary { - .post-toc-title { + .toc-title { display: block; display: flex; justify-content: space-between; @@ -111,7 +110,7 @@ } } - .post-toc-content { + .toc-content { border: 2px solid $code-background-color; >nav>ul { @@ -132,3 +131,21 @@ } } } + +.toc { + ruby { + background: $code-background-color; + + rt { + color: $global-font-secondary-color; + } + + .dark-theme & { + background: $code-background-color-dark; + + rt { + color: $global-font-secondary-color-dark; + } + } + } +} diff --git a/assets/css/_variables.scss b/assets/css/_variables.scss index 00b4af55c..c8a56fd07 100644 --- a/assets/css/_variables.scss +++ b/assets/css/_variables.scss @@ -1,12 +1,13 @@ -@charset 'utf-8'; - // ============================== // Variables // ============================== // ========== Global ========== // -// Font family +// Font and Line Height $global-font-family: -apple-system, BlinkMacSystemFont, PingFang SC, Microsoft Yahei, Segoe UI, Helvetica, Arial, sans-serif, Segoe UI Emoji !default; +$global-font-size: 16px; +$global-font-weight: 400; +$global-line-height: 1.5rem; // Color of the background $global-background-color: #fff !default; @@ -47,24 +48,36 @@ $selection-color: rgba(38, 139, 211, 0.2) !default; $selection-color-dark: rgba(38, 139, 211, 0.3) !default; // ========== Selection ========== // -// ========== Navbar ========== // -// Color of the navbar background -$navbar-background-color: #fafafa !default; -$navbar-background-color-dark: #252627 !default; +// ========== Header ========== // +// Height of the header +$header-height-desktop: 4rem !default; +$header-height-mobile: 4rem !default; + +// Color of the header background +$header-background-color: #f8f8f8 !default; +$header-background-color-dark: #252627 !default; + +// Position of the header +$header-position-desktop: if($header-normal-mode-desktop, static, fixed) !default; +$header-position-mobile: if($header-normal-mode-mobile, static, fixed) !default; -// Color of the hover navbar item -$navbar-hover-color: #161209 !default; -$navbar-hover-color-dark: #fff !default; -// ========== Navbar ========== // +// Top of the page padding +$page-padding-top-desktop: if($header-normal-mode-desktop, 1rem, 6rem) !default; +$page-padding-top-mobile: if($header-normal-mode-mobile, 1rem, 6rem) !default; -// ========== Post Content ========== // -// Color of the post link -$post-link-color: #2d96bd !default; -$post-link-color-dark: #eee !default; +// Color of the hover header item +$header-hover-color: #161209 !default; +$header-hover-color-dark: #fff !default; +// ========== Header ========== // -// Color of the hover post link -$post-link-hover-color: #ef3982 !default; -$post-link-hover-color-dark: #2d96bd !default; +// ========== Single Content ========== // +// Color of the single link +$single-link-color: #2d96bd !default; +$single-link-color-dark: #eee !default; + +// Color of the hover single link +$single-link-hover-color: #ef3982 !default; +$single-link-hover-color-dark: #2d96bd !default; // Color of the table background $table-background-color: #fff !default; @@ -73,7 +86,7 @@ $table-background-color-dark: #272c34 !default; // Color of the table thead $table-thead-color: #ededed !default; $table-thead-color-dark: #20252b !default; -// ========== Post Content ========== // +// ========== Single Content ========== // // ========== Pagination ========== // // Color of the link in pagination @@ -110,48 +123,207 @@ $code-type-map: ( language-c: 'C', language-cs: 'C#', language-cpp: 'C++', - language-css: 'CSS', + language-clojure: 'Clojure', language-coffeescript: 'CoffeeScript', + language-css: 'CSS', + language-dart: 'Dart', + language-diff: 'Diff', + language-erlang: 'Erlang', + language-go: 'Go', + language-go-html-template: 'Go HTML Template', + language-groovy: 'Groovy', + language-haskell: 'Haskell', language-html: 'HTML', - language-xml: 'XML', language-http: 'HTTP', - language-json: 'JSON', + language-xml: 'XML', language-java: 'Java', language-js: 'JavaScript', language-javascript: 'JavaScript', + language-json: 'JSON', + language-kotlin: 'Kotlin', + language-latex: 'LaTeX', + language-less: 'Less', + language-lisp: 'Lisp', + language-lua: 'Lua', language-makefile: 'Makefile', language-markdown: 'Markdown', + language-matlab: 'Matlab', language-objectivec: 'Objective-C', language-php: 'PHP', language-perl: 'Perl', language-python: 'Python', + language-r: 'R', language-ruby: 'Ruby', - language-sql: 'SQL', - language-shell: 'Shell', - language-erlang: 'Erlang', - language-go: 'Go', - language-go-html-template: 'Go HTML Template', - language-groovy: 'Groovy', - language-haskell: 'Haskell', - language-kotlin: 'Kotlin', - language-clojure: 'Clojure', - language-less: 'Less', - language-lisp: 'Lisp', - language-lua: 'Lua', - language-matlab: 'Matlab', language-rust: 'Rust', - language-scss: 'Scss', language-scala: 'Scala', + language-scss: 'Scss', + language-shell: 'Shell', + language-sql: 'SQL', language-swift: 'Swift', + language-tex: 'TeX', + language-toml: 'TOML', + language-ts: 'TypeScript', language-typescript: 'TypeScript', + language-vue: 'Vue', language-yml: 'YAML', language-yaml: 'YAML', - language-toml: 'TOML', - language-diff: 'Diff', +) !default; + +// Color map of the code highlight +$code-highlight-color-map: ( + /* Parentheses */ 'p': #a9a9b3, + /* Keyword */ 'k': #b501a9, + /* KeywordConstant */ 'kc': #b501a9, + /* KeywordDeclaration */ 'kd': #b501a9, + /* KeywordNamespace */ 'kn': #b501a9, + /* KeywordPseudo */ 'kp': #b501a9, + /* KeywordReserved */ 'kr': #b501a9, + /* KeywordType */ 'kt': #b501a9, + /* Name */ 'n': #333333, + /* NameAttribute */ 'na': #2b77fa, + /* NameBuiltin */ 'nb': #f74840, + /* NameBuiltinPseudo */ 'bp': #f74840, + /* NameClass */ 'nc': #cb8100, + /* NameConstant */ 'no': #2b77fa, + /* NameDecorator */ 'nd': #0086c1, + /* NameEntity */ 'ni': #2b77fa, + /* NameException */ 'ne': #2b77fa, + /* NameFunction */ 'nf': #2b77fa, + /* NameFunctionMagic */ 'fm': #1ccad6, + /* NameLabel */ 'nl': #2b77fa, + /* NameNamespace */ 'nn': #2b77fa, + /* NameOther */ 'nx': #333333, + /* NameProperty */ 'py': #2b77fa, + /* NameTag */ 'nt': #2b77fa, + /* NameVariable */ 'nv': #2b77fa, + /* NameVariableClass */ 'vc': #2b77fa, + /* NameVariableGlobal */ 'vg': #2b77fa, + /* NameVariableInstance */ 'vi': #2b77fa, + /* NameVariableMagic */ 'vm': #2b77fa, + /* Literal */ 'l': #2aa198, + /* LiteralDate */ 'ld': #2aa198, + /* LiteralString */ 's': #24a443, + /* LiteralStringAffix */ 'sa': #24a443, + /* LiteralStringBacktick */ 'sb': #24a443, + /* LiteralStringChar */ 'sc': #24a443, + /* LiteralStringDelimiter */ 'dl': #24a443, + /* LiteralStringDoc */ 'sd': #24a443, + /* LiteralStringDouble */ 's2': #24a443, + /* LiteralStringEscape */ 'se': #24a443, + /* LiteralStringHeredoc */ 'sh': #24a443, + /* LiteralStringInterpol */ 'si': #24a443, + /* LiteralStringOther */ 'sx': #24a443, + /* LiteralStringRegex */ 'sr': #24a443, + /* LiteralStringSingle */ 's1': #24a443, + /* LiteralStringSymbol */ 'ss': #24a443, + /* LiteralNumber */ 'm': #e2893c, + /* LiteralNumberBin */ 'mb': #e2893c, + /* LiteralNumberFloat */ 'mf': #e2893c, + /* LiteralNumberHex */ 'mh': #e2893c, + /* LiteralNumberInteger */ 'mi': #e2893c, + /* LiteralNumberIntegerLong */ 'il': #e2893c, + /* LiteralNumberOct */ 'mo': #e2893c, + /* Operator */ 'o': #f19b04, + /* OperatorWord */ 'ow': #b501a9, + /* Comment */ 'c': #a0a1a8, + /* CommentHashbang */ 'ch': #a0a1a8, + /* CommentMultiline */ 'cm': #a0a1a8, + /* CommentSingle */ 'c1': #a0a1a8, + /* CommentSpecial */ 'cs': #a0a1a8, + /* CommentPreproc */ 'cp': #a0a1a8, + /* CommentPreprocFile */ 'cpf': #a0a1a8, + /* Generic */ 'g': #e72d40, + /* GenericDeleted */ 'gd': #e72d40, + /* GenericEmph */ 'ge': #e72d40, + /* GenericError */ 'gr': #e72d40, + /* GenericHeading */ 'gh': #e72d40, + /* GenericInserted */ 'gi': #e72d40, + /* GenericOutput */ 'go': #e72d40, + /* GenericPrompt */ 'gp': #e72d40, + /* GenericStrong */ 'gs': #e72d40, + /* GenericSubheading */ 'gu': #e72d40, + /* GenericTraceback */ 'gt': #e72d40, + /* TextWhitespace */ 'w': #bbbbbb, +) !default; +$code-highlight-color-map-dark: ( + /* Parentheses */ 'p': #a9a9b3, + /* Keyword */ 'k': #d371e3, + /* KeywordConstant */ 'kc': #d371e3, + /* KeywordDeclaration */ 'kd': #d371e3, + /* KeywordNamespace */ 'kn': #d371e3, + /* KeywordPseudo */ 'kp': #d371e3, + /* KeywordReserved */ 'kr': #d371e3, + /* KeywordType */ 'kt': #d371e3, + /* Name */ 'n': #a9b2c0, + /* NameAttribute */ 'na': #41b0f5, + /* NameBuiltin */ 'nb': #19b9c4, + /* NameBuiltinPseudo */ 'bp': #ecbf6f, + /* NameClass */ 'nc': #ecbf6f, + /* NameConstant */ 'no': #41b0f5, + /* NameDecorator */ 'nd': #ecbf6f, + /* NameEntity */ 'ni': #41b0f5, + /* NameException */ 'ne': #41b0f5, + /* NameFunction */ 'nf': #41b0f5, + /* NameFunctionMagic */ 'fm': #19b9c4, + /* NameLabel */ 'nl': #41b0f5, + /* NameNamespace */ 'nn': #41b0f5, + /* NameOther */ 'nx': #a9a9b3, + /* NameProperty */ 'py': #41b0f5, + /* NameTag */ 'nt': #41b0f5, + /* NameVariable */ 'nv': #41b0f5, + /* NameVariableClass */ 'vc': #41b0f5, + /* NameVariableGlobal */ 'vg': #41b0f5, + /* NameVariableInstance */ 'vi': #41b0f5, + /* NameVariableMagic */ 'vm': #41b0f5, + /* Literal */ 'l': #2aa198, + /* LiteralDate */ 'ld': #2aa198, + /* LiteralString */ 's': #8cc570, + /* LiteralStringAffix */ 'sa': #8cc570, + /* LiteralStringBacktick */ 'sb': #8cc570, + /* LiteralStringChar */ 'sc': #8cc570, + /* LiteralStringDelimiter */ 'dl': #8cc570, + /* LiteralStringDoc */ 'sd': #8cc570, + /* LiteralStringDouble */ 's2': #8cc570, + /* LiteralStringEscape */ 'se': #8cc570, + /* LiteralStringHeredoc */ 'sh': #8cc570, + /* LiteralStringInterpol */ 'si': #8cc570, + /* LiteralStringOther */ 'sx': #8cc570, + /* LiteralStringRegex */ 'sr': #8cc570, + /* LiteralStringSingle */ 's1': #8cc570, + /* LiteralStringSymbol */ 'ss': #8cc570, + /* LiteralNumber */ 'm': #db985c, + /* LiteralNumberBin */ 'mb': #db985c, + /* LiteralNumberFloat */ 'mf': #db985c, + /* LiteralNumberHex */ 'mh': #db985c, + /* LiteralNumberInteger */ 'mi': #db985c, + /* LiteralNumberIntegerLong */ 'il': #db985c, + /* LiteralNumberOct */ 'mo': #db985c, + /* Operator */ 'o': #ecbf6f, + /* OperatorWord */ 'ow': #d371e3, + /* Comment */ 'c': #7e848f, + /* CommentHashbang */ 'ch': #7e848f, + /* CommentMultiline */ 'cm': #7e848f, + /* CommentSingle */ 'c1': #7e848f, + /* CommentSpecial */ 'cs': #7e848f, + /* CommentPreproc */ 'cp': #7e848f, + /* CommentPreprocFile */ 'cpf': #7e848f, + /* Generic */ 'g': #f16372, + /* GenericDeleted */ 'gd': #f16372, + /* GenericEmph */ 'ge': #f16372, + /* GenericError */ 'gr': #f16372, + /* GenericHeading */ 'gh': #f16372, + /* GenericInserted */ 'gi': #f16372, + /* GenericOutput */ 'go': #f16372, + /* GenericPrompt */ 'gp': #f16372, + /* GenericStrong */ 'gs': #f16372, + /* GenericSubheading */ 'gu': #f16372, + /* GenericTraceback */ 'gt': #f16372, + /* TextWhitespace */ 'w': #bbbbbb, ) !default; // ========== Code ========== // // ========== Admonition ========== // +// Color map of the admonition $admonition-color-map: ( 'note': #448aff, 'abstract': #00b0ff, @@ -167,6 +339,7 @@ $admonition-color-map: ( 'quote': #9e9e9e, ) !default; +// Color map of the admonition background $admonition-background-color-map: ( 'note': rgba(68,138,255,.1), 'abstract': rgba(0,176,255,.1), diff --git a/assets/css/custom-style.scss b/assets/css/custom-style.scss deleted file mode 100644 index 99701cd0f..000000000 --- a/assets/css/custom-style.scss +++ /dev/null @@ -1,14 +0,0 @@ -@import "_variables"; -@import "_custom"; - -@import "_core/normalize"; -@import "_core/base"; -@import "_core/layout"; - -@import "_page/index"; - -@import "_partial/navbar"; -@import "_partial/footer"; -@import "_partial/pagination"; - -@import "_core/media"; diff --git a/assets/css/lib/VERSION b/assets/css/lib/VERSION deleted file mode 100644 index f50ca4ef6..000000000 --- a/assets/css/lib/VERSION +++ /dev/null @@ -1,5 +0,0 @@ -fontawesome-free@5.11.2 -gittalk@1.5.0 -katex@0.11.1 -aplayer@1.10.1 -animate.css@3.7.2 \ No newline at end of file diff --git a/assets/css/lib/fontawesome-free/all.min.css b/assets/css/lib/fontawesome-free/all.min.css deleted file mode 100755 index f37bbc7ae..000000000 --- a/assets/css/lib/fontawesome-free/all.min.css +++ /dev/null @@ -1,5 +0,0 @@ -/*! - * Font Awesome Free 5.11.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ -.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900} \ No newline at end of file diff --git a/assets/css/style.scss b/assets/css/style.scss deleted file mode 100644 index 3c580d8c2..000000000 --- a/assets/css/style.scss +++ /dev/null @@ -1,13 +0,0 @@ -@import "_variables"; - -@import "_core/normalize"; -@import "_core/base"; -@import "_core/layout"; - -@import "_page/index"; - -@import "_partial/navbar"; -@import "_partial/footer"; -@import "_partial/pagination"; - -@import "_core/media"; diff --git a/assets/css/style.template.scss b/assets/css/style.template.scss new file mode 100644 index 000000000..c9799fdb4 --- /dev/null +++ b/assets/css/style.template.scss @@ -0,0 +1,28 @@ +@charset 'utf-8'; + +$home-profile: {{ if .Site.Params.home.profile.enable }}true{{ else }}false{{ end }}; +$home-posts: {{ if ne .Site.Params.home.posts.enable false }}true{{ else }}false{{ end }}; +$header-normal-mode-desktop: {{ if eq .Site.Params.header.desktopMode "normal" }}true{{ else }}false{{ end }}; +$header-normal-mode-mobile: {{ if eq .Site.Params.header.mobileMode "normal" }}true{{ else }}false{{ end }}; + +@import "_variables"; + +{{- if fileExists "config/css/_override.scss" -}} + @import "_override"; +{{- end -}} + +@import "_core/normalize"; +@import "_core/base"; +@import "_core/layout"; + +@import "_page/index"; + +@import "_partial/header"; +@import "_partial/footer"; +@import "_partial/pagination"; + +@import "_core/media"; + +{{- if fileExists "config/css/_custom.scss" -}} + @import "_custom"; +{{- end -}} diff --git a/assets/js/blog.js b/assets/js/blog.js deleted file mode 100644 index d68201cab..000000000 --- a/assets/js/blog.js +++ /dev/null @@ -1,302 +0,0 @@ -jQuery(function($) { - - 'use strict'; - - var _Blog = window._Blog || {}; - - _Blog.toggleMobileMenu = function() { - $('#menu-toggle').on('click', () => { - $('#menu-toggle').toggleClass('active'); - $('#mobile-menu').toggleClass('active'); - }); - }; - - _Blog.toggleTheme = function() { - $('.theme-switch').on('click', () => { - $('body').toggleClass('dark-theme'); - isDark = !isDark; - window.localStorage && window.localStorage.setItem('theme', isDark ? 'dark' : 'light'); - this.echarts(); - }); - }; - - _Blog.changeTitle = function() { - var currentTitle = document.title; - window.onblur = function() { - document.title = currentTitle; - }; - window.onfocus = function() { - document.title = currentTitle; - }; - }; - - _Blog.dynamicToTop = function() { - const min = 300; - var $toTop = $('#dynamic-to-top'); - $(window).scroll(() => { - var scrollTop = $(window).scrollTop(); - if (typeof document.body.style.maxHeight === 'undefined') { - $toTop.css({ - 'position': 'absolute', - 'top': scrollTop + $(window).height() - 20, - }); - } - if (scrollTop > min) { - (function fadeIn(el, display){ - display = display || "block"; - if (el.style.display !== display) { - el.style.opacity = 0; - el.style.display = display; - (function fade() { - var val = parseFloat(el.style.opacity); - if (!((val += .1) > 1)) { - el.style.opacity = val; - requestAnimationFrame(fade); - } - })(); - } - })(document.getElementById('dynamic-to-top')); - } else { - (function fadeOut(el){ - if (el.style.display !== "none") { - el.style.opacity = 1; - (function fade() { - if ((el.style.opacity -= .1) < 0) { - el.style.display = "none"; - } else { - requestAnimationFrame(fade); - } - })(); - } - })(document.getElementById('dynamic-to-top')); - } - }); - }; - - _Blog.chroma = function () { - const blocks = document.querySelectorAll('.highlight > .chroma'); - for (let i = 0; i < blocks.length; i++) { - const block = blocks[i]; - const codes = block.querySelectorAll('pre.chroma > code'); - const code = codes[codes.length - 1]; - const lang = code ? code.className.toLowerCase() : ''; - block.className += ' ' + lang; - } - }; - - _Blog.responsiveTable = function() { - const tables = document.querySelectorAll('.post-content table'); - for (let i = 0; i < tables.length; i++) { - const table = tables[i]; - const wrapper = document.createElement('div'); - wrapper.className = 'table-wrapper'; - table.parentElement.replaceChild(wrapper, table); - wrapper.appendChild(table); - } - }; - - _Blog._refactorToc = function(toc) { - // when headings do not start with `h1` - const oldTocList = toc.children[0]; - let newTocList = oldTocList; - let temp; - while (newTocList.children.length === 1 - && (temp = newTocList.children[0].children[0]).tagName === 'UL') { - newTocList = temp; - } - if (newTocList !== oldTocList) toc.replaceChild(newTocList, oldTocList); - }; - - _Blog._linkToc = function() { - const links = document.querySelectorAll('#TableOfContents a:first-child'); - for (let i = 0; i < links.length; i++) links[i].className += ' toc-link'; - - for (let num = 1; num <= 6; num++) { - const headers = document.querySelectorAll('.post-content>h' + num); - for (let i = 0; i < headers.length; i++) { - const header = headers[i]; - header.innerHTML = `${header.innerHTML}`; - } - } - }; - - _Blog._initToc = function() { - const $toc = $('#post-toc'); - if ($toc.length && $toc.css('display') !== 'none') { - const SPACING = 80; - const $footer = $('#post-footer'); - const minTop = $toc.position().top;; - const mainTop = $('main').position().top; - const minScrollTop = minTop + mainTop - SPACING; - const changeTocState = function() { - const scrollTop = $(window).scrollTop(); - const maxTop = $footer.position().top - $toc.height(); - const maxScrollTop = maxTop + mainTop - SPACING; - - const tocState = { - start: { - 'position': 'absolute', - 'top': minTop, - }, - process: { - 'position': 'fixed', - 'top': SPACING, - }, - end: { - 'position': 'absolute', - 'top': maxTop, - } - }; - - if (scrollTop < minScrollTop) { - $toc.css(tocState.start); - } else if (scrollTop > maxScrollTop) { - $toc.css(tocState.end); - } else { - $toc.css(tocState.process); - } - }; - changeTocState(); - - const HEADERFIX = 120; - const $toclink = $('.toc-link'); - const $headerlink = $('.headerlink'); - const $tocLinkLis = $('.post-toc-content li'); - const activeIndex = function () { - const scrollTop = $(window).scrollTop(); - const headerlinkTop = $.map($headerlink, function(link) { - return $(link).offset().top; - }); - const searchActiveTocIndex = function(array, target) { - for (let i = 0; i < array.length - 1; i++) { - if ( target < array[i + 1]) return i; - } - return array.length - 1; - }; - - const activeTocIndex = searchActiveTocIndex(headerlinkTop, scrollTop + HEADERFIX); - - $($toclink).removeClass('active'); - $($tocLinkLis).removeClass('has-active'); - - if (activeTocIndex !== -1) { - $($toclink[activeTocIndex]).addClass('active'); - let ancestor = $toclink[activeTocIndex].parentNode; - while (ancestor.tagName !== 'NAV') { - $(ancestor).addClass('has-active'); - ancestor = ancestor.parentNode.parentNode; - } - } - }; - activeIndex(); - if (!this._initTocOnce) { - $(window).scroll(changeTocState); - $(window).scroll(activeIndex); - this._initTocOnce = true; - } - } - }; - - _Blog.toc = function() { - const tocContainer = document.getElementById('post-toc'); - if (tocContainer !== null) { - const toc = document.getElementById('TableOfContents'); - if (toc === null) { - // toc = true, but there are no headings - tocContainer.parentNode.removeChild(tocContainer); - } else { - this._refactorToc(toc); - this._linkToc(); - this._initToc(); - // Listen for orientation changes - window.addEventListener("resize", function() { - this.setTimeout(_Blog._initToc, 0); - }, false); - } - } - }; - - _Blog.mermaid = function() { - if (window.mermaidMap) { - const mermaidAPI = mermaid.mermaidAPI - Object.keys(mermaidMap).forEach((id) => { - const element = document.getElementById(id); - mermaidAPI.render("d" + id, mermaidMap[id], (svgCode) => { - element.innerHTML = svgCode; - const svg = element.firstChild; - svg.style.width = "100%" - }, element); - }); - } - } - - _Blog.echarts = function() { - if (window.echartsMap) { - for (let i = 0; i < echartsArr.length; i++) { - echartsArr[i].dispose(); - } - echartsArr = []; - Object.keys(echartsMap).forEach((id) => { - let myChart = echarts.init(document.getElementById(id), window.isDark ? 'dark' : 'macarons', {renderer: 'svg'}); - myChart.setOption(echartsMap[id]); - echartsArr.push(myChart); - }); - window.addEventListener("resize", function() { - this.setTimeout(() => { - for (let i = 0; i < echartsArr.length; i++) { - echartsArr[i].resize(); - } - }, 0); - }, false); - } - } - - _Blog.countdown = function() { - if (window.countdownMap) { - Object.keys(countdownMap).forEach(function(id) { - $(`#${id}`).countdown(countdownMap[id]['date'], {elapse: true}) - .on('update.countdown', function(event) { - $(this).html(event.strftime(countdownMap[id]['pattern'])); - }); - }); - } - }; - - _Blog.typeit = function() { - if (window.typeitArr) { - for (let i = 0; i < typeitArr.length; i++) { - const group = typeitArr[i]; - (function typeone(i) { - const content = document.getElementById(`r${group[i]}`).innerHTML; - if (i === group.length - 1) { - new TypeIt(`#${group[i]}`, { - strings: content, - }).go(); - return; - } - let instance = new TypeIt(`#${group[i]}`, { - strings: content, - afterComplete: () => { - instance.destroy(); - typeone(i + 1); - }, - }).go(); - })(0); - } - } - }; - - $(document).ready(() => { - _Blog.toggleMobileMenu(); - _Blog.toggleTheme(); - _Blog.changeTitle(); - _Blog.dynamicToTop(); - _Blog.chroma(); - _Blog.responsiveTable(); - _Blog.mermaid(); - _Blog.echarts(); - _Blog.countdown(); - _Blog.typeit(); - _Blog.toc(); - }); -}); diff --git a/assets/js/lib/VERSION b/assets/js/lib/VERSION deleted file mode 100644 index 77dc0ee58..000000000 --- a/assets/js/lib/VERSION +++ /dev/null @@ -1,12 +0,0 @@ -gitalk@1.5.0 -valine@1.3.10 -jquery@3.4.1 -lazysizes@5.1.2 -katex@0.11.1 -mermaid@8.4.2 -echarts@4.5.0 -typeit@6.0.3 -jquery-countdown@2.2.0 -aplayer@1.10.1 -meting@2.0.1 -smooth-scroll@16.1.0 \ No newline at end of file diff --git a/assets/js/lib/echarts/echarts.min.js b/assets/js/lib/echarts/echarts.min.js deleted file mode 100644 index 384f23225..000000000 --- a/assets/js/lib/echarts/echarts.min.js +++ /dev/null @@ -1,22 +0,0 @@ - -/* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -*/ - - -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.echarts={})}(this,function(t){"use strict";var e=2311,n=function(){return e++},v="object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?{browser:{},os:{},node:!1,wxa:!0,canvasSupported:!0,svgSupported:!1,touchEventsSupported:!0,domSupported:!1}:"undefined"==typeof document&&"undefined"!=typeof self?{browser:{},os:{},node:!1,worker:!0,canvasSupported:!0,domSupported:!1}:"undefined"==typeof navigator?{browser:{},os:{},node:!0,worker:!1,canvasSupported:!0,svgSupported:!0,domSupported:!1}:function(t){var e={},i=t.match(/Firefox\/([\d.]+)/),n=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),a=t.match(/Edge\/([\d.]+)/),o=/micromessenger/i.test(t);i&&(e.firefox=!0,e.version=i[1]);n&&(e.ie=!0,e.version=n[1]);a&&(e.edge=!0,e.version=a[1]);o&&(e.weChat=!0);return{browser:e,os:{},node:!1,canvasSupported:!!document.createElement("canvas").getContext,svgSupported:"undefined"!=typeof SVGRect,touchEventsSupported:"ontouchstart"in window&&!e.ie&&!e.edge,pointerEventsSupported:"onpointerdown"in window&&(e.edge||e.ie&&11<=e.version),domSupported:"undefined"!=typeof document}}(navigator.userAgent);var s={"[object Function]":1,"[object RegExp]":1,"[object Date]":1,"[object Error]":1,"[object CanvasGradient]":1,"[object CanvasPattern]":1,"[object Image]":1,"[object Canvas]":1},l={"[object Int8Array]":1,"[object Uint8Array]":1,"[object Uint8ClampedArray]":1,"[object Int16Array]":1,"[object Uint16Array]":1,"[object Int32Array]":1,"[object Uint32Array]":1,"[object Float32Array]":1,"[object Float64Array]":1},u=Object.prototype.toString,i=Array.prototype,r=i.forEach,h=i.filter,a=i.slice,c=i.map,d=i.reduce,o={};function f(t,e){"createCanvas"===t&&(y=null),o[t]=e}function D(t){if(null==t||"object"!=typeof t)return t;var e=t,i=u.call(t);if("[object Array]"===i){if(!$(t)){e=[];for(var n=0,a=t.length;n>1)%2;s.cssText=["position:absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","width:0","height:0",n[l]+":0",a[u]+":0",n[1-l]+":auto",a[1-u]+":auto",""].join("!important;"),t.appendChild(r),i.push(r)}return i}(t,r),r);if(s)return s(Rt,n,a),i.zrX=Rt[0],void(i.zrY=Rt[1])}i.zrX=i.zrY=0}function Vt(t,e,i){if(null!=(e=e||window.event).zrX)return e;var n=e.type;if(n&&0<=n.indexOf("touch")){var a="touchend"!==n?e.targetTouches[0]:e.changedTouches[0];a&&zt(t,a,e,i)}else zt(t,e,e,i),e.zrDelta=e.wheelDelta?e.wheelDelta/120:-(e.detail||0)/3;var o=e.button;return null==e.which&&void 0!==o&&Ot.test(e.type)&&(e.which=1&o?1:2&o?3:4&o?2:0),e}function Gt(t,e,i){Nt?t.addEventListener(e,i):t.attachEvent("on"+e,i)}var Ft=Nt?function(t){t.preventDefault(),t.stopPropagation(),t.cancelBubble=!0}:function(t){t.returnValue=!1,t.cancelBubble=!0};function Wt(t){return 2===t.which||3===t.which}function Ht(){this._track=[]}function Zt(t){var e=t[1][0]-t[0][0],i=t[1][1]-t[0][1];return Math.sqrt(e*e+i*i)}Ht.prototype={constructor:Ht,recognize:function(t,e,i){return this._doTrack(t,e,i),this._recognize(t)},clear:function(){return this._track.length=0,this},_doTrack:function(t,e,i){var n=t.touches;if(n){for(var a={points:[],touches:[],target:e,event:t},o=0,r=n.length;o=this._maxSize&&0>4|(3840&n)>>8,240&n|(240&n)>>4,15&n|(15&n)<<4,1),Oe(t,e),e):void Le(e,0,0,0,1):7===a.length?0<=(n=parseInt(a.substr(1),16))&&n<=16777215?(Le(e,(16711680&n)>>16,(65280&n)>>8,255&n,1),Oe(t,e),e):void Le(e,0,0,0,1):void 0;var o=a.indexOf("("),r=a.indexOf(")");if(-1!==o&&r+1===a.length){var s=a.substr(0,o),l=a.substr(o+1,r-(o+1)).split(","),u=1;switch(s){case"rgba":if(4!==l.length)return void Le(e,0,0,0,1);u=Te(l.pop());case"rgb":return 3!==l.length?void Le(e,0,0,0,1):(Le(e,Ae(l[0]),Ae(l[1]),Ae(l[2]),u),Oe(t,e),e);case"hsla":return 4!==l.length?void Le(e,0,0,0,1):(l[3]=Te(l[3]),Re(l,e),Oe(t,e),e);case"hsl":return 3!==l.length?void Le(e,0,0,0,1):(Re(l,e),Oe(t,e),e);default:return}}Le(e,0,0,0,1)}}function Re(t,e){var i=(parseFloat(t[0])%360+360)%360/360,n=Te(t[1]),a=Te(t[2]),o=a<=.5?a*(n+1):a+n-a*n,r=2*a-o;return Le(e=e||[],Me(255*De(r,o,i+1/3)),Me(255*De(r,o,i)),Me(255*De(r,o,i-1/3)),1),4===t.length&&(e[3]=t[3]),e}function ze(t,e){var i=Ee(t);if(i){for(var n=0;n<3;n++)i[n]=e<0?i[n]*(1-e)|0:(255-i[n])*e+i[n]|0,255e);i++);i=Math.min(i-1,u-2)}C=e;var n=g[(D=i)+1]-g[i];if(0!=n)if(S=(e-g[i])/n,l)if(I=m[i],M=m[0===i?i:i-1],A=m[u-2=i.x&&t<=i.x+i.width&&e>=i.y&&e<=i.y+i.height},clone:function(){return new bi(this.x,this.y,this.width,this.height)},copy:function(t){this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height},plain:function(){return{x:this.x,y:this.y,width:this.width,height:this.height}}},bi.create=function(t){return new bi(t.x,t.y,t.width,t.height)};var Si=function(t){for(var e in t=t||{},pi.call(this,t),t)t.hasOwnProperty(e)&&(this[e]=t[e]);this._children=[],this.__storage=null,this.__dirty=!0};Si.prototype={constructor:Si,isGroup:!0,type:"group",silent:!1,children:function(){return this._children.slice()},childAt:function(t){return this._children[t]},childOfName:function(t){for(var e=this._children,i=0;i>>1])<0?l=o:s=1+o;var u=n-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;0>>1);0>>1);o(t,e[i+h])<0?l=h:r=h+1}return l}function Li(p,g){var r,s,m=Ii,l=0,v=[];function e(t){var e=r[t],i=s[t],n=r[t+1],a=s[t+1];s[t]=i+a,t===l-3&&(r[t+1]=r[t+2],s[t+1]=s[t+2]),l--;var o=Ci(p[n],p,e,i,0,g);e+=o,0!==(i-=o)&&0!==(a=Di(p[e+i-1],p,n,a,a-1,g))&&(i<=a?function(t,e,i,n){var a=0;for(a=0;as[t+1])break;e(t)}},this.forceMergeRuns=function(){for(;1>=1;return t+e}(a);do{if((o=Ai(t,i,n,e))=e.maxIterations){t+=e.ellipsis;break}var s=0===r?mn(t,a,e.ascCharWidth,e.cnCharWidth):0f)return{lines:[],width:0,height:0};C.textWidth=ln(C.text,w);var S=x.textWidth,M=null==S||"auto"===S;if("string"==typeof S&&"%"===S.charAt(S.length-1))C.percentWidth=S,u.push(C),S=0;else{if(M){S=C.textWidth;var I=x.textBackgroundColor,A=I&&I.image;A&&tn(A=$i(A))&&(S=Math.max(S,A.width*b/A.height))}var T=_?_[1]+_[3]:0;S+=T;var D=null!=d?d-v:null;null!=D&&Dn[0]){for(r=0;rt);r++);o=i[n[r]]}if(n.splice(r+1,0,t),!(i[t]=e).virtual)if(o){var l=o.dom;l.nextSibling?s.insertBefore(e.dom,l.nextSibling):s.appendChild(e.dom)}else s.firstChild?s.insertBefore(e.dom,s.firstChild):s.appendChild(e.dom)}else ci("Layer of zlevel "+t+" is not valid")},eachLayer:function(t,e){var i,n,a=this._zlevelList;for(n=0;n=o.length&&o.push({option:t})}}),o}function Aa(t){var r=Q();va(t,function(t,e){var i=t.exist;i&&r.set(i.id,t)}),va(t,function(t,e){var i=t.option;Y(!i||null==i.id||!r.get(i.id)||r.get(i.id)===t,"id duplicates: "+(i&&i.id)),i&&null!=i.id&&r.set(i.id,t),t.keyInfo||(t.keyInfo={})}),va(t,function(t,e){var i=t.exist,n=t.option,a=t.keyInfo;if(ya(n)){if(a.name=null!=n.name?n.name+"":i?i.name:_a+e,i)a.id=i.id;else if(null!=n.id)a.id=n.id+"";else for(var o=0;a.id="\0"+a.name+"\0"+o++,r.get(a.id););r.set(a.id,t)}})}function Ta(t){var e=t.name;return!(!e||!e.indexOf(_a))}function Da(t){return ya(t)&&t.id&&0===(t.id+"").indexOf("\0_ec_\0")}function Ca(e,t){return null!=t.dataIndexInside?t.dataIndexInside:null!=t.dataIndex?k(t.dataIndex)?N(t.dataIndex,function(t){return e.indexOfRawIndex(t)}):e.indexOfRawIndex(t.dataIndex):null!=t.name?k(t.name)?N(t.name,function(t){return e.indexOfName(t)}):e.indexOfName(t.name):void 0}function La(){var e="__\0ec_inner_"+ka+++"_"+Math.random().toFixed(5);return function(t){return t[e]||(t[e]={})}}var ka=0;function Pa(s,l,u){if(R(l)){var t={};t[l+"Index"]=0,l=t}var e=u&&u.defaultMainType;!e||Na(l,e+"Index")||Na(l,e+"Id")||Na(l,e+"Name")||(l[e+"Index"]=0);var h={};return va(l,function(t,e){t=l[e];if("dataIndex"!==e&&"dataIndexInside"!==e){var i=e.match(/^(\w+)(Index|Id|Name)$/)||[],n=i[1],a=(i[2]||"").toLowerCase();if(!(!n||!a||null==t||"index"===a&&"none"===t||u&&u.includeMainTypes&&_(u.includeMainTypes,n)<0)){var o={mainType:n};"index"===a&&"all"===t||(o[a]=t);var r=s.queryComponents(o);h[n+"Models"]=r,h[n+"Model"]=r[0]}}else h[e]=t}),h}function Na(t,e){return t&&t.hasOwnProperty(e)}function Oa(t,e,i){t.setAttribute?t.setAttribute(e,i):t[e]=i}function Ea(t){return"auto"===t?v.domSupported?"html":"richText":t||"html"}function Ra(t,i){var n=Q(),a=[];return E(t,function(t){var e=i(t);(n.get(e)||(a.push(e),n.set(e,[]))).push(t)}),{keys:a,buckets:n}}var za=".",Ba="___EC__COMPONENT__CONTAINER___";function Va(t){var e={main:"",sub:""};return t&&(t=t.split(za),e.main=t[0]||"",e.sub=t[1]||""),e}function Ga(t){(t.$constructor=t).extend=function(t){function e(){t.$constructor?t.$constructor.apply(this,arguments):i.apply(this,arguments)}var i=this;return L(e.prototype,t),e.extend=this.extend,e.superCall=Ha,e.superApply=Za,w(e,this),e.superClass=i,e}}var Fa=0;function Wa(t){var e=["__\0is_clz",Fa++,Math.random().toFixed(3)].join("_");t.prototype[e]=!0,t.isInstance=function(t){return!(!t||!t[e])}}function Ha(t,e){var i=U(arguments,2);return this.superClass.prototype[e].apply(t,i)}function Za(t,e,i){return this.superClass.prototype[e].apply(t,i)}function Ua(i,t){t=t||{};var a={};if(i.registerClass=function(t,e){if(e)if(function(t){Y(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(t),'componentType "'+t+'" illegal')}(e),(e=Va(e)).sub){if(e.sub!==Ba){(function(t){var e=a[t.main];e&&e[Ba]||((e=a[t.main]={})[Ba]=!0);return e})(e)[e.sub]=t}}else a[e.main]=t;return t},i.getClass=function(t,e,i){var n=a[t];if(n&&n[Ba]&&(n=e?n[e]:null),i&&!n)throw new Error(e?"Component "+t+"."+(e||"")+" not exists. Load it first.":t+".type should be specified.");return n},i.getClassesByMainType=function(t){t=Va(t);var i=[],e=a[t.main];return e&&e[Ba]?E(e,function(t,e){e!==Ba&&i.push(t)}):i.push(e),i},i.hasClass=function(t){return t=Va(t),!!a[t.main]},i.getAllClassMainTypes=function(){var i=[];return E(a,function(t,e){i.push(e)}),i},i.hasSubTypes=function(t){t=Va(t);var e=a[t.main];return e&&e[Ba]},i.parseClassType=Va,t.registerWhenExtend){var n=i.extend;n&&(i.extend=function(t){var e=n.call(this,t);return i.registerClass(e,t.type)})}return i}function Xa(s){for(var t=0;tthis._ux||Fo(e-this._yi)>this._uy||this._len<5;return this.addData(ko.L,t,e),this._ctx&&i&&(this._needsDash()?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),i&&(this._xi=t,this._yi=e),this},bezierCurveTo:function(t,e,i,n,a,o){return this.addData(ko.C,t,e,i,n,a,o),this._ctx&&(this._needsDash()?this._dashedBezierTo(t,e,i,n,a,o):this._ctx.bezierCurveTo(t,e,i,n,a,o)),this._xi=a,this._yi=o,this},quadraticCurveTo:function(t,e,i,n){return this.addData(ko.Q,t,e,i,n),this._ctx&&(this._needsDash()?this._dashedQuadraticTo(t,e,i,n):this._ctx.quadraticCurveTo(t,e,i,n)),this._xi=i,this._yi=n,this},arc:function(t,e,i,n,a,o){return this.addData(ko.A,t,e,i,i,n,a-n,0,o?0:1),this._ctx&&this._ctx.arc(t,e,i,n,a,o),this._xi=Bo(a)*i+t,this._yi=Vo(a)*i+e,this},arcTo:function(t,e,i,n,a){return this._ctx&&this._ctx.arcTo(t,e,i,n,a),this},rect:function(t,e,i,n){return this._ctx&&this._ctx.rect(t,e,i,n),this.addData(ko.R,t,e,i,n),this},closePath:function(){this.addData(ko.Z);var t=this._ctx,e=this._x0,i=this._y0;return t&&(this._needsDash()&&this._dashedLineTo(e,i),t.closePath()),this._xi=e,this._yi=i,this},fill:function(t){t&&t.fill(),this.toStatic()},stroke:function(t){t&&t.stroke(),this.toStatic()},setLineDash:function(t){if(t instanceof Array){this._lineDash=t;for(var e=this._dashIdx=0,i=0;ie.length&&(this._expandData(),e=this.data);for(var i=0;il||Fo(r-a)>u||c===h-1)&&(t.lineTo(o,r),n=o,a=r);break;case ko.C:t.bezierCurveTo(s[c++],s[c++],s[c++],s[c++],s[c++],s[c++]),n=s[c-2],a=s[c-1];break;case ko.Q:t.quadraticCurveTo(s[c++],s[c++],s[c++],s[c++]),n=s[c-2],a=s[c-1];break;case ko.A:var f=s[c++],p=s[c++],g=s[c++],m=s[c++],v=s[c++],y=s[c++],x=s[c++],_=s[c++],w=m=er[n=0]+t&&r<=er[1]+t?h:0}if(o){l=n;n=jo(a),a=jo(l)}else n=jo(n),a=jo(a);aMath.PI/2&&p<1.5*Math.PI&&(h=-h),c+=h)}}return c}function rr(t,e,i,n,a){for(var o=0,r=0,s=0,l=0,u=0,h=0;hMath.abs(o[1])?0=e[1])return i[1]}else{if(t>=e[0])return i[0];if(t<=e[1])return i[1]}else{if(t===e[0])return i[0];if(t===e[1])return i[1]}return(t-e[0])/a*o+i[0]}function xl(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?function(t){return t.replace(/^\s+|\s+$/g,"")}(t).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t}function _l(t,e,i){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),i?t:+t}function wl(t){return t.sort(function(t,e){return t-e}),t}function bl(t){if(t=+t,isNaN(t))return 0;for(var e=1,i=0;Math.round(t*e)/e!==t;)e*=10,i++;return i}function Sl(t){var e=t.toString(),i=e.indexOf("e");if(0h&&(h=u[d],c=d);++s[c],u[c]=0,++l}return s[e]/a}var Al=9007199254740991;function Tl(t){var e=2*Math.PI;return(t%e+e)%e}function Dl(t){return-vl"'])/g,Fl={"&":"&","<":"<",">":">",'"':""","'":"'"};function Wl(t){return null==t?"":(t+"").replace(Gl,function(t,e){return Fl[e]})}function Hl(t,e){return"{"+t+(null==e?"":e)+"}"}var Zl=["a","b","c","d","e","f","g"];function Ul(t,e,i){k(e)||(e=[e]);var n=e.length;if(!n)return"";for(var a=e[0].$vars||[],o=0;o':'':{renderMode:a,content:"{marker"+o+"|} ",style:{color:i}}:""}function jl(t,e){return"0000".substr(0,e-(t+="").length)+t}function ql(t,e,i){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var n=Ll(e),a=i?"UTC":"",o=n["get"+a+"FullYear"](),r=n["get"+a+"Month"]()+1,s=n["get"+a+"Date"](),l=n["get"+a+"Hours"](),u=n["get"+a+"Minutes"](),h=n["get"+a+"Seconds"](),c=n["get"+a+"Milliseconds"]();return t=t.replace("MM",jl(r,2)).replace("M",r).replace("yyyy",o).replace("yy",o%100).replace("dd",jl(s,2)).replace("d",s).replace("hh",jl(l,2)).replace("h",l).replace("mm",jl(u,2)).replace("m",u).replace("ss",jl(h,2)).replace("s",h).replace("SSS",jl(c,3))}function Kl(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t}var $l=fn;var Jl=(Object.freeze||Object)({addCommas:zl,toCamelCase:Bl,normalizeCssArray:Vl,encodeHTML:Wl,formatTpl:Ul,formatTplSimple:Xl,getTooltipMarker:Yl,formatTime:ql,capitalFirst:Kl,truncateText:$l,getTextBoundingRect:function(t){return un(t.text,t.font,t.textAlign,t.textVerticalAlign,t.textPadding,t.textLineHeight,t.rich,t.truncate)},getTextRect:function(t,e,i,n,a,o,r,s){return un(t,e,i,n,a,s,o,r)}}),Ql=E,tu=["left","right","top","bottom","width","height"],eu=[["width","left","right"],["height","top","bottom"]];function iu(h,c,d,f,p){var g=0,m=0;null==f&&(f=1/0),null==p&&(p=1/0);var v=0;c.eachChild(function(t,e){var i,n,a=t.position,o=t.getBoundingRect(),r=c.childAt(e+1),s=r&&r.getBoundingRect();if("horizontal"===h){var l=o.width+(s?-s.x+o.x:0);v=f<(i=g+l)||t.newline?(g=0,i=l,m+=v+d,o.height):Math.max(v,o.height)}else{var u=o.height+(s?-s.y+o.y:0);v=p<(n=m+u)||t.newline?(g+=v+d,m=0,n=u,o.width):Math.max(v,o.width)}t.newline||(a[0]=g,a[1]=m,"horizontal"===h?g=i+d:m=n+d)})}var nu=iu;A(iu,"vertical"),A(iu,"horizontal");function au(t,e,i){i=Vl(i||0);var n=e.width,a=e.height,o=xl(t.left,n),r=xl(t.top,a),s=xl(t.right,n),l=xl(t.bottom,a),u=xl(t.width,n),h=xl(t.height,a),c=i[2]+i[0],d=i[1]+i[3],f=t.aspect;switch(isNaN(u)&&(u=n-s-d-o),isNaN(h)&&(h=a-l-c-r),null!=f&&(isNaN(u)&&isNaN(h)&&(n/ae)return t[n];return t[i-1]}(s,i):r;if((l=l||r)&&l.length){var u=l[a];return t&&(o[t]=u),n.colorIdx=(a+1)%l.length,u}}};function xu(t){var e=t.get("coordinateSystem"),i={coordSysName:e,coordSysDims:[],axisMap:Q(),categoryAxisMap:Q()},n=_u[e];if(n)return n(t,i,i.axisMap,i.categoryAxisMap),i}var _u={cartesian2d:function(t,e,i,n){var a=t.getReferringComponents("xAxis")[0],o=t.getReferringComponents("yAxis")[0];e.coordSysDims=["x","y"],i.set("x",a),i.set("y",o),wu(a)&&(n.set("x",a),e.firstCategoryDimIndex=0),wu(o)&&(n.set("y",o),e.firstCategoryDimIndex=1)},singleAxis:function(t,e,i,n){var a=t.getReferringComponents("singleAxis")[0];e.coordSysDims=["single"],i.set("single",a),wu(a)&&(n.set("single",a),e.firstCategoryDimIndex=0)},polar:function(t,e,i,n){var a=t.getReferringComponents("polar")[0],o=a.findAxisModel("radiusAxis"),r=a.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],i.set("radius",o),i.set("angle",r),wu(o)&&(n.set("radius",o),e.firstCategoryDimIndex=0),wu(r)&&(n.set("angle",r),e.firstCategoryDimIndex=1)},geo:function(t,e,i,n){e.coordSysDims=["lng","lat"]},parallel:function(t,a,o,r){var s=t.ecModel,e=s.getComponent("parallel",t.get("parallelIndex")),l=a.coordSysDims=e.dimensions.slice();E(e.parallelAxisIndex,function(t,e){var i=s.getComponent("parallelAxis",t),n=l[e];o.set(n,i),wu(i)&&null==a.firstCategoryDimIndex&&(r.set(n,i),a.firstCategoryDimIndex=e)})}};function wu(t){return"category"===t.get("type")}var bu="original",Su="arrayRows",Mu="objectRows",Iu="keyedColumns",Au="unknown",Tu="typedArray",Du="column",Cu="row";function Lu(t){this.fromDataset=t.fromDataset,this.data=t.data||(t.sourceFormat===Iu?{}:[]),this.sourceFormat=t.sourceFormat||Au,this.seriesLayoutBy=t.seriesLayoutBy||Du,this.dimensionsDefine=t.dimensionsDefine,this.encodeDefine=t.encodeDefine&&Q(t.encodeDefine),this.startIndex=t.startIndex||0,this.dimensionsDetectCount=t.dimensionsDetectCount}Lu.seriesDataToSource=function(t){return new Lu({data:t,sourceFormat:V(t)?Tu:bu,fromDataset:!1})},Wa(Lu);var ku=La();function Pu(t){var e=t.option,i=e.data,n=V(i)?Tu:bu,a=!1,o=e.seriesLayoutBy,r=e.sourceHeader,s=e.dimensions,l=function(t){var e=t.option;if(!e.data)return t.ecModel.getComponent("dataset",e.datasetIndex||0)}(t);if(l){var u=l.option;i=u.source,n=ku(l).sourceFormat,a=!0,o=o||u.seriesLayoutBy,null==r&&(r=u.sourceHeader),s=s||u.dimensions}var h=function(t,e,i,n,a){if(!t)return{dimensionsDefine:Nu(a)};var o,r,s,l;if(e===Su)"auto"===n||null==n?Ou(function(t){null!=t&&"-"!==t&&(R(t)?null==r&&(r=1):r=0)},i,t,10):r=n?1:0,a||1!==r||(a=[],Ou(function(t,e){a[e]=null!=t?t:""},i,t)),o=a?a.length:i===Cu?t.length:t[0]?t[0].length:null;else if(e===Mu)a||(a=function(t){var e,i=0;for(;i":"\n",f="richText"===c,p={},g=0;function i(t){return{renderMode:c,content:Wl(zl(t)),style:p}}var m=this.getData(),o=m.mapDimension("defaultedTooltip",!0),n=o.length,r=this.getRawValue(a),s=k(r),v=m.getItemVisual(a,"color");z(v)&&v.colorStops&&(v=(v.colorStops[0]||{}).color),v=v||"transparent";var l=(1":"",n=i+u.join(i||", ");return{renderMode:c,content:n,style:p}}(r):i(n?Mh(m,a,o[0]):s?r[0]:r)).content,u=d.seriesIndex+"at"+g,y=Yl({color:v,type:"item",renderMode:c,markerId:u});p[u]=v,++g;var x=m.getName(a),_=this.name;Ta(this)||(_=""),_=_?Wl(_)+(h?": ":e):"";var w="string"==typeof y?y:y.content;return{html:h?w+_+l:_+w+(x?Wl(x)+": "+l:l),markers:p}},isAnimationEnabled:function(){if(v.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),t},restoreData:function(){this.dataTask.dirty()},getColorFromPalette:function(t,e,i){var n=this.ecModel,a=yu.getColorFromPalette.call(this,t,e,i);return a=a||n.getColorFromPalette(t,e,i)},coordDimToDataDim:function(t){return this.getRawData().mapDimension(t,!0)},getProgressive:function(){return this.get("progressive")},getProgressiveThreshold:function(){return this.get("progressiveThreshold")},getAxisTooltipData:null,getTooltipPosition:null,pipeTask:null,preventIncremental:null,pipelineContext:null});function Hh(t){var e=t.name;Ta(t)||(t.name=function(t){var i=t.getRawData(),e=i.mapDimension("seriesName",!0),n=[];return E(e,function(t){var e=i.getDimensionInfo(t);e.displayName&&n.push(e.displayName)}),n.join(" ")}(t)||e)}function Zh(t){return t.model.getRawData().count()}function Uh(t){var e=t.model;return e.setData(e.getRawData().cloneShallow()),Xh}function Xh(t,e){t.end>e.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function Yh(e,i){E(e.CHANGABLE_METHODS,function(t){e.wrapMethod(t,A(jh,i))})}function jh(t){var e=qh(t);e&&e.setOutputEnd(this.count())}function qh(t){var e=(t.ecModel||{}).scheduler,i=e&&e.getPipeline(t.uid);if(i){var n=i.currentTask;if(n){var a=n.agentStubMap;a&&(n=a.get(t.uid))}return n}}b(Wh,Th),b(Wh,yu);var Kh=function(){this.group=new Si,this.uid=ml("viewComponent")};Kh.prototype={constructor:Kh,init:function(t,e){},render:function(t,e,i,n){},dispose:function(){},filterForExposedEvent:null};var $h=Kh.prototype;$h.updateView=$h.updateLayout=$h.updateVisual=function(t,e,i,n){},Ga(Kh),Ua(Kh,{registerWhenExtend:!0});function Jh(){var s=La();return function(t){var e=s(t),i=t.pipelineContext,n=e.large,a=e.progressiveRender,o=e.large=i.large,r=e.progressiveRender=i.progressiveRender;return!!(n^o||a^r)&&"reset"}}var Qh=La(),tc=Jh();function ec(){this.group=new Si,this.uid=ml("viewChart"),this.renderTask=Dh({plan:oc,reset:rc}),this.renderTask.context={view:this}}var ic=ec.prototype={type:"chart",init:function(t,e){},render:function(t,e,i,n){},highlight:function(t,e,i,n){ac(t.getData(),n,"emphasis")},downplay:function(t,e,i,n){ac(t.getData(),n,"normal")},remove:function(t,e){this.group.removeAll()},dispose:function(){},incrementalPrepareRender:null,incrementalRender:null,updateTransform:null,filterForExposedEvent:null};function nc(t,e,i){if(t&&(t.trigger(e,i),t.isGroup&&!Rs(t)))for(var n=0,a=t.childCount();nc?i+=p(g("data.partialData"),{displayCnt:c}):i+=g("data.allData");for(var r=[],s=0;si.blockIndex?i.step:null,o=n&&n.modDataCount;return{step:a,modBy:null!=o?Math.ceil(o/a):null,modDataCount:o}}},xc.getPipeline=function(t){return this._pipelineMap.get(t)},xc.updateStreamModes=function(t,e){var i=this._pipelineMap.get(t.uid),n=t.getData().count(),a=i.progressiveEnabled&&e.incrementalPrepareRender&&n>=i.threshold,o=t.get("large")&&n>=t.get("largeThreshold"),r="mod"===t.get("progressiveChunkMode")?n:null;t.pipelineContext=i.context={progressiveRender:a,modDataCount:r,large:o}},xc.restorePipelines=function(t){var n=this,a=n._pipelineMap=Q();t.eachSeries(function(t){var e=t.getProgressive(),i=t.uid;a.set(i,{id:i,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:e&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(e||700),count:0}),kc(n,t,t.dataTask)})},xc.prepareStageTasks=function(){var i=this._stageTaskMap,n=this.ecInstance.getModel(),a=this.api;E(this._allHandlers,function(t){var e=i.get(t.uid)||i.set(t.uid,[]);t.reset&&function(n,a,t,o,r){var s=t.seriesTaskMap||(t.seriesTaskMap=Q()),e=a.seriesType,i=a.getTargetSeries;a.createOnAllSeries?o.eachRawSeries(l):e?o.eachRawSeriesByType(e,l):i&&i(o,r).each(l);function l(t){var e=t.uid,i=s.get(e)||s.set(e,Dh({plan:Ac,reset:Tc,count:Lc}));i.context={model:t,ecModel:o,api:r,useClearVisual:a.isVisual&&!a.isLayout,plan:a.plan,reset:a.reset,scheduler:n},kc(n,t,i)}var u=n._pipelineMap;s.each(function(t,e){u.get(e)||(t.dispose(),s.removeKey(e))})}(this,t,e,n,a),t.overallReset&&function(n,t,e,i,a){var o=e.overallTask=e.overallTask||Dh({reset:bc});o.context={ecModel:i,api:a,overallReset:t.overallReset,scheduler:n};var r=o.agentStubMap=o.agentStubMap||Q(),s=t.seriesType,l=t.getTargetSeries,u=!0,h=t.modifyOutputEnd;s?i.eachRawSeriesByType(s,c):l?l(i,a).each(c):(u=!1,E(i.getSeries(),c));function c(t){var e=t.uid,i=r.get(e);i||(i=r.set(e,Dh({reset:Sc,onDirty:Ic})),o.dirty()),i.context={model:t,overallProgress:u,modifyOutputEnd:h},i.agent=o,i.__block=u,kc(n,t,i)}var d=n._pipelineMap;r.each(function(t,e){d.get(e)||(t.dispose(),o.dirty(),r.removeKey(e))})}(this,t,e,n,a)},this)},xc.prepareView=function(t,e,i,n){var a=t.renderTask,o=a.context;o.model=e,o.ecModel=i,o.api=n,a.__block=!t.incrementalPrepareRender,kc(this,e,a)},xc.performDataProcessorTasks=function(t,e){_c(this,this._dataProcessorHandlers,t,e,{block:!0})},xc.performVisualTasks=function(t,e,i){_c(this,this._visualHandlers,t,e,i)},xc.performSeriesTasks=function(t){var e;t.eachSeries(function(t){e|=t.dataTask.perform()}),this.unfinished|=e},xc.plan=function(){this._pipelineMap.each(function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)})};var wc=xc.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)};function bc(t){t.overallReset(t.ecModel,t.api,t.payload)}function Sc(t,e){return t.overallProgress&&Mc}function Mc(){this.agent.dirty(),this.getDownstream().dirty()}function Ic(){this.agent&&this.agent.dirty()}function Ac(t){return t.plan&&t.plan(t.model,t.ecModel,t.api,t.payload)}function Tc(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=wa(t.reset(t.model,t.ecModel,t.api,t.payload));return 1t.get("hoverLayerThreshold")&&!v.node&&t.eachSeries(function(t){if(!t.preventUsingHoverLayer){var e=i._chartsMap[t.__viewId];e.__alive&&e.group.traverse(function(t){t.useHoverLayer=!0})}})}(n,t),mc(n._zr.dom,t)}function kd(e,i){sd(Vd,function(t){t(e,i)})}yd.resize=function(t){if(!this._disposed){this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var i=e.resetOption("media"),n=t&&t.silent;this[dd]=!0,i&&wd(this),_d.update.call(this),this[dd]=!1,Id.call(this,n),Ad.call(this,n)}}},yd.showLoading=function(t,e){if(!this._disposed&&(ud(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),Wd[t])){var i=Wd[t](this._api,e),n=this._zr;this._loadingFX=i,n.add(i)}},yd.hideLoading=function(){this._disposed||(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},yd.makeActionFromEvent=function(t){var e=L({},t);return e.type=Rd[t.type],e},yd.dispatchAction=function(t,e){this._disposed||(ud(e)||(e={silent:!!e}),Ed[t.type]&&this._model&&(this[dd]?this._pendingActions.push(t):(Md.call(this,t,e.silent),e.flush?this._zr.flush(!0):!1!==e.flush&&v.browser.weChat&&this._throttledZrFlush(),Id.call(this,e.silent),Ad.call(this,e.silent))))},yd.appendData=function(t){if(!this._disposed){var e=t.seriesIndex;this.getModel().getSeriesByIndex(e).appendData(t),this._scheduler.unfinished=!0}},yd.on=gd("on",!1),yd.off=gd("off",!1),yd.one=gd("one",!1);var Pd=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];function Nd(t,e){var i=t.get("z"),n=t.get("zlevel");e.group.traverse(function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=n&&(t.zlevel=n))})}function Od(){this.eventInfo}yd._initEvents=function(){sd(Pd,function(u){function t(t){var e,i=this.getModel(),n=t.target;if("globalout"===u)e={};else if(n&&null!=n.dataIndex){var a=n.dataModel||i.getSeriesByIndex(n.seriesIndex);e=a&&a.getDataParams(n.dataIndex,n.dataType,n)||{}}else n&&n.eventData&&(e=L({},n.eventData));if(e){var o=e.componentType,r=e.componentIndex;"markLine"!==o&&"markPoint"!==o&&"markArea"!==o||(o="series",r=e.seriesIndex);var s=o&&null!=r&&i.getComponent(o,r),l=s&&this["series"===s.mainType?"_chartsMap":"_componentsMap"][s.__viewId];e.event=t,e.type=u,this._ecEventProcessor.eventInfo={targetEl:n,packedEvent:e,model:s,view:l},this.trigger(u,e)}}t.zrEventfulCallAtLast=!0,this._zr.on(u,t,this)},this),sd(Rd,function(t,e){this._messageCenter.on(e,function(t){this.trigger(e,t)},this)},this)},yd.isDisposed=function(){return this._disposed},yd.clear=function(){this._disposed||this.setOption({series:[]},!0)},yd.dispose=function(){if(!this._disposed){this._disposed=!0,Oa(this.getDom(),Yd,"");var e=this._api,i=this._model;sd(this._componentsViews,function(t){t.dispose(i,e)}),sd(this._chartsViews,function(t){t.dispose(i,e)}),this._zr.dispose(),delete Hd[this.id]}},b(vd,Ct),Od.prototype={constructor:Od,normalizeQuery:function(t){var s={},l={},u={};if(R(t)){var e=hd(t);s.mainType=e.main||null,s.subType=e.sub||null}else{var h=["Index","Name","Id"],c={name:1,dataIndex:1,dataType:1};E(t,function(t,e){for(var i=!1,n=0;nx[1]&&(x[1]=y)}e&&(this._nameList[d]=e[f])}this._rawCount=this._count=l,this._extent={},Lf(this)},Df._initDataFromProvider=function(t,e){if(!(e<=t)){for(var i,n=this._chunkSize,a=this._rawData,o=this._storage,r=this.dimensions,s=r.length,l=this._dimensionInfos,u=this._nameList,h=this._idList,c=this._rawExtent,d=this._nameRepeatCount={},f=this._chunkCount,p=0;pM[1]&&(M[1]=S)}if(!a.pure){var I=u[v];if(m&&null==I)if(null!=m.name)u[v]=I=m.name;else if(null!=i){var A=r[i],T=o[A][y];if(T){I=T[x];var D=l[A].ordinalMeta;D&&D.categories.length&&(I=D.categories[I])}}var C=null==m?null:m.id;null==C&&null!=I&&(d[I]=d[I]||0,0=this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,i=e[t];if(null!=i&&it))return o;a=o-1}}return-1},Df.indicesOfNearest=function(t,e,i){var n=[];if(!this._storage[t])return n;null==i&&(i=1/0);for(var a=Number.MAX_VALUE,o=-1,r=0,s=this.count();rt[I][1])&&(M=!1)}M&&(o[r++]=this.getRawIndex(m))}return rw[1]&&(w[1]=_)}}}return a},Df.downSample=function(t,e,i,n){for(var a=Rf(this,[t]),o=a._storage,r=[],s=Math.floor(1/e),l=o[t],u=this.count(),h=this._chunkSize,c=a._rawExtent[t],d=new(Sf(this))(u),f=0,p=0;pc[1]&&(c[1]=x),d[f++]=_}return a._count=f,a._indices=d,a.getRawIndex=Nf,a},Df.getItemModel=function(t){var e=this.hostModel;return new dl(this.getRawDataItem(t),e,e&&e.ecModel)},Df.diff=function(e){var i=this;return new df(e?e.getIndices():[],this.getIndices(),function(t){return Of(e,t)},function(t){return Of(i,t)})},Df.getVisual=function(t){var e=this._visual;return e&&e[t]},Df.setVisual=function(t,e){if(vf(t))for(var i in t)t.hasOwnProperty(i)&&this.setVisual(i,t[i]);else this._visual=this._visual||{},this._visual[t]=e},Df.setLayout=function(t,e){if(vf(t))for(var i in t)t.hasOwnProperty(i)&&this.setLayout(i,t[i]);else this._layout[t]=e},Df.getLayout=function(t){return this._layout[t]},Df.getItemLayout=function(t){return this._itemLayouts[t]},Df.setItemLayout=function(t,e,i){this._itemLayouts[t]=i?L(this._itemLayouts[t]||{},e):e},Df.clearItemLayouts=function(){this._itemLayouts.length=0},Df.getItemVisual=function(t,e,i){var n=this._itemVisuals[t],a=n&&n[e];return null!=a||i?a:this.getVisual(e)},Df.setItemVisual=function(t,e,i){var n=this._itemVisuals[t]||{},a=this.hasItemVisual;if(this._itemVisuals[t]=n,vf(e))for(var o in e)e.hasOwnProperty(o)&&(n[o]=e[o],a[o]=!0);else n[e]=i,a[e]=!0},Df.clearAllVisual=function(){this._visual={},this._itemVisuals=[],this.hasItemVisual={}};function Vf(t){t.seriesIndex=this.seriesIndex,t.dataIndex=this.dataIndex,t.dataType=this.dataType}function Gf(t,e,i){Lu.isInstance(e)||(e=Lu.seriesDataToSource(e)),i=i||{},t=(t||[]).slice();for(var n=(i.dimsDef||[]).slice(),l=Q(i.encodeDef),a=Q(),o=Q(),u=[],r=function(t,e,i,n){var a=Math.max(t.dimensionsDetectCount||1,e.length,i.length,n||0);return E(e,function(t){var e=t.dimsDef;e&&(a=Math.max(a,e.length))}),a}(e,t,n,i.dimCount),s=0;s=e[0]&&t<=e[1]},Yf.prototype.normalize=function(t){var e=this._extent;return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])},Yf.prototype.scale=function(t){var e=this._extent;return t*(e[1]-e[0])+e[0]},Yf.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1])},Yf.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},Yf.prototype.getExtent=function(){return this._extent.slice()},Yf.prototype.setExtent=function(t,e){var i=this._extent;isNaN(t)||(i[0]=t),isNaN(e)||(i[1]=e)},Yf.prototype.isBlank=function(){return this._isBlank},Yf.prototype.setBlank=function(t){this._isBlank=t},Yf.prototype.getLabel=null,Ga(Yf),Ua(Yf,{registerWhenExtend:!0}),jf.createByAxisModel=function(t){var e=t.option,i=e.data,n=i&&N(i,$f);return new jf({categories:n,needCollect:!n,deduplication:!1!==e.dedplication})};var qf=jf.prototype;function Kf(t){return t._map||(t._map=Q(t.categories))}function $f(t){return z(t)&&null!=t.value?t.value:t+""}qf.getOrdinal=function(t){return Kf(this).get(t)},qf.parseAndCollect=function(t){var e,i=this._needCollect;if("string"!=typeof t&&!i)return t;if(i&&!this._deduplication)return e=this.categories.length,this.categories[e]=t,e;var n=Kf(this);return null==(e=n.get(t))&&(i?(e=this.categories.length,this.categories[e]=t,n.set(t,e)):e=NaN),e};var Jf=Yf.prototype,Qf=Yf.extend({type:"ordinal",init:function(t,e){t&&!k(t)||(t=new jf({categories:t})),this._ordinalMeta=t,this._extent=e||[0,t.categories.length-1]},parse:function(t){return"string"==typeof t?this._ordinalMeta.getOrdinal(t):Math.round(t)},contain:function(t){return t=this.parse(t),Jf.contain.call(this,t)&&null!=this._ordinalMeta.categories[t]},normalize:function(t){return Jf.normalize.call(this,this.parse(t))},scale:function(t){return Math.round(Jf.scale.call(this,t))},getTicks:function(){for(var t=[],e=this._extent,i=e[0];i<=e[1];)t.push(i),i++;return t},getLabel:function(t){if(!this.isBlank())return this._ordinalMeta.categories[t]},count:function(){return this._extent[1]-this._extent[0]+1},unionExtentFromData:function(t,e){this.unionExtent(t.getApproximateExtent(e))},getOrdinalMeta:function(){return this._ordinalMeta},niceTicks:et,niceExtent:et});Qf.create=function(){return new Qf};var tp=_l;function ep(t){return Sl(t)+2}function ip(t,e,i){t[e]=Math.max(Math.min(t[e],i[1]),i[0])}function np(t,e){isFinite(t[0])||(t[0]=e[0]),isFinite(t[1])||(t[1]=e[1]),ip(t,0,e),ip(t,1,e),t[0]>t[1]&&(t[0]=t[1])}var ap=_l,op=Yf.extend({type:"interval",_interval:0,_intervalPrecision:2,setExtent:function(t,e){var i=this._extent;isNaN(t)||(i[0]=parseFloat(t)),isNaN(e)||(i[1]=parseFloat(e))},unionExtent:function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1]),op.prototype.setExtent.call(this,e[0],e[1])},getInterval:function(){return this._interval},setInterval:function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=ep(t)},getTicks:function(){return function(t,e,i,n){var a=[];if(!t)return a;e[0](a.length?a[a.length-1]:i[1])&&a.push(e[1]),a}(this._interval,this._extent,this._niceExtent,this._intervalPrecision)},getLabel:function(t,e){if(null==t)return"";var i=e&&e.precision;return null==i?i=Sl(t)||0:"auto"===i&&(i=this._intervalPrecision),zl(t=ap(t,i,!0))},niceTicks:function(t,e,i){t=t||5;var n=this._extent,a=n[1]-n[0];if(isFinite(a)){a<0&&(a=-a,n.reverse());var o=function(t,e,i,n){var a={},o=t[1]-t[0],r=a.interval=Nl(o/e,!0);null!=i&&r>>1;t[a][1]>1^-(1&s),l=l>>1^-(1&l),a=s+=a,o=l+=o,n.push([s/i,l/i])}return n}ag.prototype={constructor:ag,properties:null,getBoundingRect:function(){var t=this._rect;if(t)return t;for(var e=Number.MAX_VALUE,i=[e,e],n=[-e,-e],a=[],o=[],r=this.geometries,s=0;ss[1];d(e[0].coord,s[0])&&(n?e[0].coord=s[0]:e.shift());n&&d(s[0],e[0].coord)&&e.unshift({coord:s[0]});d(s[1],o.coord)&&(n?o.coord=s[1]:e.pop());n&&d(o.coord,s[1])&&e.push({coord:s[1]});function d(t,e){return t=_l(t),e=_l(e),c?en[0]&&(n[0]=o[0]),o[1]>n[1]&&(n[1]=o[1])}return{min:e?i:n,max:e?n:i}}var Kg=hr.extend({type:"ec-polyline",shape:{points:[],smooth:0,smoothConstraint:!0,smoothMonotone:null,connectNulls:!1},style:{fill:null,stroke:"#000"},brush:Cr(hr.prototype.brush),buildPath:function(t,e){var i=e.points,n=0,a=i.length,o=qg(i,e.smoothConstraint);if(e.connectNulls){for(;0n)return!1;return!0}(o,e))){var r=e.mapDimension(o.dim),s={};return E(o.getViewLabels(),function(t){s[t.tickValue]=1}),function(t){return!s.hasOwnProperty(e.get(r,t))}}}}function om(t,e,i){if("cartesian2d"!==t.type)return Qg(t,e,i);var n=t.getBaseAxis().isHorizontal(),a=Jg(t,e,i);if(!i.get("clip",!0)){var o=a.shape,r=Math.max(o.width,o.height);n?(o.y-=r,o.height+=2*r):(o.x-=r,o.width+=2*r)}return a}ec.extend({type:"line",init:function(){var t=new Si,e=new Ng;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},render:function(t,e,i){var n=t.coordinateSystem,a=this.group,o=t.getData(),r=t.getModel("lineStyle"),s=t.getModel("areaStyle"),l=o.mapArray(o.getItemLayout),u="polar"===n.type,h=this._coordSys,c=this._symbolDraw,d=this._polyline,f=this._polygon,p=this._lineGroup,g=t.get("animation"),m=!s.isEmpty(),v=s.get("origin"),y=function(t,e,i){if(!i.valueDim)return[];for(var n=[],a=0,o=e.count();ah[c-1].coord&&(h.reverse(),d.reverse());var f=h[0].coord-10,p=h[c-1].coord+10,g=p-f;if(g<.001)return"transparent";E(h,function(t){t.offset=(t.coord-f)/g}),h.push({offset:c?h[c-1].offset:.5,color:d[1]||"transparent"}),h.unshift({offset:c?h[0].offset:.5,color:d[0]||"transparent"});var m=new Jr(0,0,0,0,h,!0);return m[n]=f,m[n+"2"]=p,m}}}(o,n)||o.getVisual("color");d.useStyle(C(r.getLineStyle(),{fill:"none",stroke:M,lineJoin:"bevel"}));var I=t.get("smooth");if(I=im(t.get("smooth")),d.setShape({smooth:I,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")}),f){var A=o.getCalculationInfo("stackedOnSeries"),T=0;f.useStyle(C(s.getAreaStyle(),{fill:M,opacity:.7,lineJoin:"bevel"})),A&&(T=im(A.get("smooth"))),f.setShape({smooth:I,stackedOnSmooth:T,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")})}this._data=o,this._coordSys=n,this._stackedOnPoints=y,this._points=l,this._step=S,this._valueOrigin=v},dispose:function(){},highlight:function(t,e,i,n){var a=t.getData(),o=Ca(a,n);if(!(o instanceof Array)&&null!=o&&0<=o){var r=a.getItemGraphicEl(o);if(!r){var s=a.getItemLayout(o);if(!s)return;(r=new Sg(a,o)).position=s,r.setZ(t.get("zlevel"),t.get("z")),r.ignore=isNaN(s[0])||isNaN(s[1]),r.__temp=!0,a.setItemGraphicEl(o,r),r.stopSymbolAnimation(!0),this.group.add(r)}r.highlight()}else ec.prototype.highlight.call(this,t,e,i,n)},downplay:function(t,e,i,n){var a=t.getData(),o=Ca(a,n);if(null!=o&&0<=o){var r=a.getItemGraphicEl(o);r&&(r.__temp?(a.setItemGraphicEl(o,null),this.group.remove(r)):r.downplay())}else ec.prototype.downplay.call(this,t,e,i,n)},_newPolyline:function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new Kg({shape:{points:t},silent:!0,z2:10}),this._lineGroup.add(e),this._polyline=e},_newPolygon:function(t,e){var i=this._polygon;return i&&this._lineGroup.remove(i),i=new $g({shape:{points:t,stackedOnPoints:e},silent:!0}),this._lineGroup.add(i),this._polygon=i},_updateAnimation:function(t,e,i,n,a,o){var r=this._polyline,s=this._polygon,l=t.hostModel,u=function(t,e,i,n,a,o,r,s){for(var l=function(t,e){var i=[];return e.diff(t).add(function(t){i.push({cmd:"+",idx:t})}).update(function(t,e){i.push({cmd:"=",idx:e,idx1:t})}).remove(function(t){i.push({cmd:"-",idx:t})}).execute(),i}(t,e),u=[],h=[],c=[],d=[],f=[],p=[],g=[],m=Bg(a,e,r),v=Bg(o,t,s),y=0;ye&&(e=t[i]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,i=0;ie[1]&&e.reverse(),e},getOtherAxis:function(){this.grid.getOtherAxis()},pointToData:function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},toLocalCoord:null,toGlobalCoord:null},w(fm,vg);var pm={show:!0,zlevel:0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#333",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#ccc"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.3)","rgba(200,200,200,0.3)"]}}},gm={};gm.categoryAxis=m({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},pm),gm.valueAxis=m({boundaryGap:[0,0],splitNumber:5},pm),gm.timeAxis=C({scale:!0,min:"dataMin",max:"dataMax"},gm.valueAxis),gm.logAxis=C({scale:!0,logBase:10},gm.valueAxis);function mm(o,t,r,e){E(vm,function(a){t.extend({type:o+"Axis."+a,mergeDefaultAndTheme:function(t,e){var i=this.layoutMode,n=i?su(t):{};m(t,e.getTheme().get(a+"Axis")),m(t,this.getDefaultOption()),t.type=r(o,t),i&&ru(t,n,i)},optionUpdated:function(){"category"===this.option.type&&(this.__ordinalMeta=jf.createByAxisModel(this))},getCategories:function(t){var e=this.option;if("category"===e.type)return t?e.data:this.__ordinalMeta.categories},getOrdinalMeta:function(){return this.__ordinalMeta},defaultOption:p([{},gm[a+"Axis"],e],!0)})}),fu.registerSubTypeDefaulter(o+"Axis",A(r,o))}var vm=["value","category","time","log"],ym=fu.extend({type:"cartesian2dAxis",axis:null,init:function(){ym.superApply(this,"init",arguments),this.resetRange()},mergeOption:function(){ym.superApply(this,"mergeOption",arguments),this.resetRange()},restoreData:function(){ym.superApply(this,"restoreData",arguments),this.resetRange()},getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"grid",index:this.option.gridIndex,id:this.option.gridId})[0]}});function xm(t,e){return e.type||(e.data?"category":"value")}m(ym.prototype,Hp);var _m={offset:0};function wm(t,e){return t.getCoordSysModel()===e}function bm(t,e,i){this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this._initCartesian(t,e,i),this.model=t}mm("x",ym,xm,_m),mm("y",ym,xm,_m),fu.extend({type:"grid",dependencies:["xAxis","yAxis"],layoutMode:"box",coordinateSystem:null,defaultOption:{show:!1,zlevel:0,z:0,left:"10%",top:60,right:"10%",bottom:60,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"}});var Sm=bm.prototype;function Mm(t,e,i,n){i.getAxesOnZeroOf=function(){return a?[a]:[]};var a,o=t[e],r=i.model,s=r.get("axisLine.onZero"),l=r.get("axisLine.onZeroAxisIndex");if(s){if(null!=l)Im(o[l])&&(a=o[l]);else for(var u in o)if(o.hasOwnProperty(u)&&Im(o[u])&&!n[h(o[u])]){a=o[u];break}a&&(n[h(a)]=!0)}function h(t){return t.dim+"_"+t.index}}function Im(t){return t&&"category"!==t.type&&"time"!==t.type&&function(t){var e=t.scale.getExtent(),i=e[0],n=e[1];return!(0u[1]?-1:1,c=["start"===o?u[0]-h*l:"end"===o?u[1]+h*l:(u[0]+u[1])/2,zm(o)?t.labelOffset+r*l:0],d=e.get("nameRotate");null!=d&&(d=d*Lm/180),zm(o)?n=Nm(t.rotation,null!=d?d:t.rotation,r):(n=function(t,e,i,n){var a,o,r=Tl(i-t.rotation),s=n[0]>n[1],l="start"===e&&!s||"start"!==e&&s;a=Dl(r-Lm/2)?(o=l?"bottom":"top","center"):Dl(r-1.5*Lm)?(o=l?"top":"bottom","center"):(o="middle",r<1.5*Lm&&Lm/2l[1]&&l.reverse(),(null==r||r>l[1])&&(r=l[1]),r=i.r0}}});var Tv=Math.PI/180;function Dv(a,t,e,i,n,o,r){function s(t,e,i){for(var n=t;na[n].y+a[n].height)return void l(n,i/2);l(e-1,i/2)}function l(t,e){for(var i=t;0<=i&&(a[i].y-=e,!(0a[i-1].y+a[i-1].height));i--);}function u(t,e,i,n,a,o){for(var r=e?Number.MAX_VALUE:0,s=0,l=t.length;s=e?p.push(a[g]):f.push(a[g]);u(f,!1,t,e,i,n),u(p,!0,t,e,i,n)}function Cv(t){return"center"===t.position}function Lv(I,A,t,e,i){var T,D,C=I.getData(),L=[],k=!1,P=(I.get("minShowLabelAngle")||0)*Tv;C.each(function(t){var e=C.getItemLayout(t),i=C.getItemModel(t),n=i.getModel("label"),a=n.get("position")||i.get("emphasis.label.position"),o=i.getModel("labelLine"),r=o.get("length"),s=o.get("length2");if(!(e.anglei[0]&&isFinite(u)&&isFinite(i[0]););else{var h=a.getTicks().length-1;f"+N(t,function(t,e){var i=a.get(a.mapDimension(t.dim),n);return Wl(t.name+" : "+i)}).join("
")},defaultOption:{zlevel:0,z:2,coordinateSystem:"radar",legendHoverLink:!0,radarIndex:0,lineStyle:{width:2,type:"solid"},label:{position:"top"},symbol:"emptyCircle",symbolSize:4}});hf({type:"radar",render:function(l,t,e){var i=l.coordinateSystem,g=this.group,m=l.getData(),s=this._data;function u(t,e){var i=t.getItemVisual(e,"symbol")||"circle",n=t.getItemVisual(e,"color");if("none"!==i){var a=function(t){return k(t)||(t=[+t,+t]),t}(t.getItemVisual(e,"symbolSize")),o=Jp(i,-1,-1,2,2,n);return o.attr({style:{strokeNoScale:!0},z2:100,scale:[a[0]/2,a[1]/2]}),o}}function h(t,e,i,n,a,o){i.removeAll();for(var r=0;r"+Wl(n+" : "+i)},getTooltipPosition:function(t){if(null!=t){var e=this.getData().getName(t),i=this.coordinateSystem,n=i.getRegion(e);return n&&i.dataToPoint(n.center)}},setZoom:function(t){this.option.zoom=t},setCenter:function(t){this.option.center=t},defaultOption:{zlevel:0,z:2,coordinateSystem:"geo",map:"",left:"center",top:"center",aspectScale:.75,showLegendSymbol:!0,dataRangeHoverLink:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",areaColor:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{areaColor:"rgba(255,215,0,0.8)"}}}}),xv);var ry="\0_ec_interaction_mutex";function sy(t,e){return!!ly(t)[e]}function ly(t){return t[ry]||(t[ry]={})}function uy(i){this.pointerChecker,this._zr=i,this._opt={};var t=T,n=t(hy,this),a=t(cy,this),o=t(dy,this),r=t(fy,this),s=t(py,this);Ct.call(this),this.setPointerChecker=function(t){this.pointerChecker=t},this.enable=function(t,e){this.disable(),this._opt=C(D(e)||{},{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),null==t&&(t=!0),!0!==t&&"move"!==t&&"pan"!==t||(i.on("mousedown",n),i.on("mousemove",a),i.on("mouseup",o)),!0!==t&&"scale"!==t&&"zoom"!==t||(i.on("mousewheel",r),i.on("pinch",s))},this.disable=function(){i.off("mousedown",n),i.off("mousemove",a),i.off("mouseup",o),i.off("mousewheel",r),i.off("pinch",s)},this.dispose=this.disable,this.isDragging=function(){return this._dragging},this.isPinching=function(){return this._pinching}}function hy(t){if(!(Wt(t)||t.target&&t.target.draggable)){var e=t.offsetX,i=t.offsetY;this.pointerChecker&&this.pointerChecker(t,e,i)&&(this._x=e,this._y=i,this._dragging=!0)}}function cy(t){if(this._dragging&&vy("moveOnMouseMove",t,this._opt)&&"pinch"!==t.gestureEvent&&!sy(this._zr,"globalPan")){var e=t.offsetX,i=t.offsetY,n=this._x,a=this._y,o=e-n,r=i-a;this._x=e,this._y=i,this._opt.preventDefaultMouseMove&&Ft(t.event),my(this,"pan","moveOnMouseMove",t,{dx:o,dy:r,oldX:n,oldY:a,newX:e,newY:i})}}function dy(t){Wt(t)||(this._dragging=!1)}function fy(t){var e=vy("zoomOnMouseWheel",t,this._opt),i=vy("moveOnMouseWheel",t,this._opt),n=t.wheelDelta,a=Math.abs(n),o=t.offsetX,r=t.offsetY;if(0!==n&&(e||i)){if(e){var s=3x.x)||(m-=Math.PI);var b=v?"left":"right",S=o.labelModel.get("rotate"),M=S*(Math.PI/180);g.setStyle({textPosition:o.labelModel.get("position")||b,textRotation:null==S?-m:M,textOrigin:"center",verticalAlign:"middle"})}if(s.parentNode&&s.parentNode!==u){var I=i.__edge;js(I=I||(i.__edge=new qr({shape:hx(o,f,f),style:C({opacity:0,strokeNoScale:!0},o.lineStyle)})),{shape:hx(o,d,p),style:{opacity:1}},a),n.add(I)}}function ux(t,e,i,n,a,o){for(var r,s=t.tree.getNodeByDataIndex(e),l=t.tree.root,u=s.getModel(),h=(o=sx(s,u,o),s.parentNode===l?s:s.parentNode||s);null==(r=h.getLayout());)h=h.parentNode===l?h:h.parentNode||h;js(i,{position:[r.x+1,r.y+1]},a,function(){n.remove(i),t.setItemGraphicEl(e,null)}),i.fadeOut(null,{keepLabel:!0});var c=i.__edge;c&&js(c,{shape:hx(o,r,r),style:{opacity:0}},a,function(){n.remove(c)})}function hx(t,e,i){var n,a,o,r,s,l,u,h,c=t.orient;if("radial"!==t.layout)return s=e.x,u=e.y,l=i.x,h=i.y,"LR"!==c&&"RL"!==c||(n=s+(l-s)*t.curvature,a=u,o=l+(s-l)*t.curvature,r=h),"TB"!==c&&"BT"!==c||(n=s,a=u+(h-u)*t.curvature,o=l,r=h+(u-h)*t.curvature),{x1:s,y1:u,x2:l,y2:h,cpx1:n,cpy1:a,cpx2:o,cpy2:r};s=e.rawX,u=e.rawY,l=i.rawX,h=i.rawY;var d=ex(s,u),f=ex(s,u+(h-u)*t.curvature),p=ex(l,h+(u-h)*t.curvature),g=ex(l,h);return{x1:d.x,y1:d.y,x2:g.x,y2:g.y,cpx1:f.x,cpy1:f.y,cpx2:p.x,cpy2:p.y}}function cx(t,e){for(var i,n=[t];i=n.pop();)if(e(i),i.isExpand){var a=i.children;if(a.length)for(var o=a.length-1;0<=o;o--)n.push(a[o])}}qy.prototype={constructor:qy,isRemoved:function(){return this.dataIndex<0},eachNode:function(t,e,i){"function"==typeof t&&(i=e,e=t,t=null),R(t=t||{})&&(t={order:t});var n,a=t.order||"preorder",o=this[t.attr||"children"];"preorder"===a&&(n=e.call(i,this));for(var r=0;!n&&re&&(e=n.height)}this.height=e+1},getNodeById:function(t){if(this.getId()===t)return this;for(var e=0,i=this.children,n=i.length;eo&&(o=t.depth)});var r=t.expandAndCollapse&&0<=t.initialTreeDepth?t.initialTreeDepth:o;return a.root.eachNode("preorder",function(t){var e=t.hostTree.data.getRawDataItem(t.dataIndex);t.isExpand=e&&null!=e.collapsed?!e.collapsed:t.depth<=r}),a.data},getOrient:function(){var t=this.get("orient");return"horizontal"===t?t="LR":"vertical"===t&&(t="TB"),t},setZoom:function(t){this.option.zoom=t},setCenter:function(t){this.option.center=t},formatTooltip:function(t){for(var e=this.getData().tree,i=e.root.children[0],n=e.getNodeByDataIndex(t),a=n.getValue(),o=n.name;n&&n!==i;)o=n.parentNode.name+"."+o,n=n.parentNode;return Wl(o+(isNaN(a)||null==a?"":" : "+a))},defaultOption:{zlevel:0,z:2,coordinateSystem:"view",left:"12%",top:"12%",right:"12%",bottom:"12%",layout:"orthogonal",roam:!1,nodeScaleRatio:.4,center:null,zoom:1,orient:"LR",symbol:"emptyCircle",symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{color:"#ccc",width:1.5,curveness:.5},itemStyle:{color:"lightsteelblue",borderColor:"#c23531",borderWidth:1.5},label:{show:!0,color:"#555"},leaves:{label:{show:!0}},animationEasing:"linear",animationDuration:700,animationDurationUpdate:1e3}}),hf({type:"tree",init:function(t,e){this._oldTree,this._mainGroup=new Si,this._controller=new uy(e.getZr()),this._controllerHost={target:this.group},this.group.add(this._mainGroup)},render:function(n,t,i,e){var a=n.getData(),o=n.layoutInfo,r=this._mainGroup,s=n.get("layout");"radial"===s?r.attr("position",[o.x+o.width/2,o.y+o.height/2]):r.attr("position",[o.x,o.y]),this._updateViewCoordSys(n,o,s),this._updateController(n,t,i);var l=this._data,u={expandAndCollapse:n.get("expandAndCollapse"),layout:s,orient:n.getOrient(),curvature:n.get("lineStyle.curveness"),symbolRotate:n.get("symbolRotate"),symbolOffset:n.get("symbolOffset"),hoverAnimation:n.get("hoverAnimation"),useNameLabel:!0,fadeIn:!0};a.diff(l).add(function(t){rx(a,t)&&lx(a,t,null,r,n,u)}).update(function(t,e){var i=l.getItemGraphicEl(e);rx(a,t)?lx(a,t,i,r,n,u):i&&ux(l,e,i,r,n,u)}).remove(function(t){var e=l.getItemGraphicEl(t);e&&ux(l,t,e,r,n,u)}).execute(),this._nodeScaleRatio=n.get("nodeScaleRatio"),this._updateNodeAndLinkScale(n),!0===u.expandAndCollapse&&a.eachItemGraphicEl(function(t,e){t.off("click").on("click",function(){i.dispatchAction({type:"treeExpandAndCollapse",seriesId:n.id,dataIndex:e})})}),this._data=a},_updateViewCoordSys:function(t){var i=t.getData(),n=[];i.each(function(t){var e=i.getItemLayout(t);!e||isNaN(e.x)||isNaN(e.y)||n.push([+e.x,+e.y])});var e=[],a=[];Io(n,e,a);var o=this._min,r=this._max;a[0]-e[0]==0&&(e[0]=o?o[0]:e[0]-1,a[0]=r?r[0]:a[0]+1),a[1]-e[1]==0&&(e[1]=o?o[1]:e[1]-1,a[1]=r?r[1]:a[1]+1);var s=t.coordinateSystem=new Py;s.zoomLimit=t.get("scaleLimit"),s.setBoundingRect(e[0],e[1],a[0]-e[0],a[1]-e[1]),s.setCenter(t.get("center")),s.setZoom(t.get("zoom")),this.group.attr({position:s.position,scale:s.scale}),this._viewCoordSys=s,this._min=e,this._max=a},_updateController:function(a,t,o){var e=this._controller,i=this._controllerHost,r=this.group;e.setPointerChecker(function(t,e,i){var n=r.getBoundingRect();return n.applyTransform(r.transform),n.contain(e,i)&&!wy(t,o,a)}),e.enable(a.get("roam")),i.zoomLimit=a.get("scaleLimit"),i.zoom=a.coordinateSystem.getZoom(),e.off("pan").off("zoom").on("pan",function(t){yy(i,t.dx,t.dy),o.dispatchAction({seriesId:a.id,type:"treeRoam",dx:t.dx,dy:t.dy})},this).on("zoom",function(t){xy(i,t.scale,t.originX,t.originY),o.dispatchAction({seriesId:a.id,type:"treeRoam",zoom:t.scale,originX:t.originX,originY:t.originY}),this._updateNodeAndLinkScale(a)},this)},_updateNodeAndLinkScale:function(t){var e=t.getData(),i=this._getNodeGlobalScale(t),n=[i,i];e.eachItemGraphicEl(function(t,e){t.attr("scale",n)})},_getNodeGlobalScale:function(t){var e=t.coordinateSystem;if("view"!==e.type)return 1;var i=this._nodeScaleRatio,n=e.scale,a=n&&n[0]||1;return((e.getZoom()-1)*i+1)/a},dispose:function(){this._controller&&this._controller.dispose(),this._controllerHost={}},remove:function(){this._mainGroup.removeAll(),this._data=null}}),tf({type:"treeExpandAndCollapse",event:"treeExpandAndCollapse",update:"update"},function(n,t){t.eachComponent({mainType:"series",subType:"tree",query:n},function(t){var e=n.dataIndex,i=t.getData().tree.getNodeByDataIndex(e);i.isExpand=!i.isExpand})}),tf({type:"treeRoam",event:"treeRoam",update:"none"},function(i,t){t.eachComponent({mainType:"series",subType:"tree",query:i},function(t){var e=Cy(t.coordinateSystem,i);t.setCenter&&t.setCenter(e.center),t.setZoom&&t.setZoom(e.zoom)})});function dx(t,e,i){if(t&&0<=_(e,t.type)){var n=i.getData().tree.root,a=t.targetNode;if("string"==typeof a&&(a=n.getNodeById(a)),a&&n.contains(a))return{node:a};var o=t.targetNodeId;if(null!=o&&(a=n.getNodeById(o)))return{node:a}}}function fx(t){for(var e=[];t;)(t=t.parentNode)&&e.push(t);return e.reverse()}function px(t,e){return 0<=_(fx(t),e)}function gx(t,e){for(var i=[];t;){var n=t.dataIndex;i.push({name:t.name,dataIndex:n,value:e.getRawValue(n)}),t=t.parentNode}return i.reverse(),i}af(rm("tree","circle")),nf(function(t,e){t.eachSeriesByType("tree",function(t){!function(t,e){var i=function(t,e){return au(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,e);t.layoutInfo=i;var n=t.get("layout"),a=0,o=0,r=null;r="radial"===n?(a=2*Math.PI,o=Math.min(i.height,i.width)/2,tx(function(t,e){return(t.parentNode===e.parentNode?1:2)/t.depth})):(a=i.width,o=i.height,tx());var s=t.getData().tree.root,l=s.children[0];if(l){!function(t){t.hierNode={defaultAncestor:null,ancestor:t,prelim:0,modifier:0,change:0,shift:0,i:0,thread:null};for(var e,i,n=[t];e=n.pop();)if(i=e.children,e.isExpand&&i.length)for(var a=i.length-1;0<=a;a--){var o=i[a];o.hierNode={defaultAncestor:null,ancestor:o,prelim:0,modifier:0,change:0,shift:0,i:a,thread:null},n.push(o)}}(s),function(t,e,i){for(var n,a=[t],o=[];n=a.pop();)if(o.push(n),n.isExpand){var r=n.children;if(r.length)for(var s=0;sh.getLayout().x&&(h=t),t.depth>c.depth&&(c=t)});var d=u===h?1:r(u,h)/2,f=d-u.getLayout().x,p=0,g=0,m=0,v=0;if("radial"===n)p=a/(h.getLayout().x+d+f),g=o/(c.depth-1||1),cx(l,function(t){m=(t.getLayout().x+f)*p,v=(t.depth-1)*g;var e=ex(m,v);t.setLayout({x:e.x,y:e.y,rawX:m,rawY:v},!0)});else{var y=t.getOrient();"RL"===y||"LR"===y?(g=o/(h.getLayout().x+d+f),p=a/(c.depth-1||1),cx(l,function(t){v=(t.getLayout().x+f)*g,m="LR"===y?(t.depth-1)*p:a-(t.depth-1)*p,t.setLayout({x:m,y:v},!0)})):"TB"!==y&&"BT"!==y||(p=a/(h.getLayout().x+d+f),g=o/(c.depth-1||1),cx(l,function(t){m=(t.getLayout().x+f)*p,v="TB"===y?(t.depth-1)*g:o-(t.depth-1)*g,t.setLayout({x:m,y:v},!0)}))}}}(t,e)})}),Wh.extend({type:"series.treemap",layoutMode:"box",dependencies:["grid","polar"],preventUsingHoverLayer:!0,_viewRoot:null,defaultOption:{progressive:0,left:"center",top:"middle",right:null,bottom:null,width:"80%",height:"80%",sort:!0,clipWindow:"origin",squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:"▶",zoomToNodeRatio:.1024,roam:!0,nodeClick:"zoomToNode",animation:!0,animationDurationUpdate:900,animationEasing:"quinticInOut",breadcrumb:{show:!0,height:22,left:"center",top:"bottom",emptyItemWidth:25,itemStyle:{color:"rgba(0,0,0,0.7)",borderColor:"rgba(255,255,255,0.7)",borderWidth:1,shadowColor:"rgba(150,150,150,1)",shadowBlur:3,shadowOffsetX:0,shadowOffsetY:0,textStyle:{color:"#fff"}},emphasis:{textStyle:{}}},label:{show:!0,distance:0,padding:5,position:"inside",color:"#fff",ellipsis:!0},upperLabel:{show:!1,position:[0,"50%"],height:20,color:"#fff",ellipsis:!0,verticalAlign:"middle"},itemStyle:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:"#fff",borderColorSaturation:null},emphasis:{upperLabel:{show:!0,position:[0,"50%"],color:"#fff",ellipsis:!0,verticalAlign:"middle"}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:"index",visibleMin:10,childrenVisibleMin:null,levels:[]},getInitialData:function(t,e){var i={name:t.name,children:t.data};!function i(t){var n=0;E(t.children,function(t){i(t);var e=t.value;k(e)&&(e=e[0]),n+=e});var e=t.value;k(e)&&(e=e[0]);null!=e&&!isNaN(e)||(e=n);e<0&&(e=0);k(t.value)?t.value[0]=e:t.value=e}(i);var n=t.levels||[];n=t.levels=function(t,e){var n,i=e.get("color");if(!i)return;if(E(t=t||[],function(t){var e=new dl(t),i=e.get("color");(e.get("itemStyle.color")||i&&"none"!==i)&&(n=!0)}),!n){(t[0]||(t[0]={})).color=i.slice()}return t}(n,e);var a={};return a.levels=n,Ky.createTree(i,this,a).data},optionUpdated:function(){this.resetViewRoot()},formatTooltip:function(t){var e=this.getData(),i=this.getRawValue(t),n=k(i)?zl(i[0]):zl(i);return Wl(e.getName(t)+": "+n)},getDataParams:function(t){var e=Wh.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(t);return e.treePathInfo=gx(i,this),e},setLayoutInfo:function(t){this.layoutInfo=this.layoutInfo||{},L(this.layoutInfo,t)},mapIdToIndex:function(t){var e=this._idIndexMap;e||(e=this._idIndexMap=Q(),this._idIndexMapCount=0);var i=e.get(t);return null==i&&e.set(t,i=this._idIndexMapCount++),i},getViewRoot:function(){return this._viewRoot},resetViewRoot:function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)}});var mx=5;function vx(t){this.group=new Si,t.add(this.group)}function yx(t,e,i,n,a,o){var r=[[a?t:t-mx,e],[t+i,e],[t+i,e+n],[a?t:t-mx,e+n]];return o||r.splice(2,0,[t+i+mx,e+n/2]),a||r.push([t,e+n/2]),r}vx.prototype={constructor:vx,render:function(t,e,i,n){var a=t.getModel("breadcrumb"),o=this.group;if(o.removeAll(),a.get("show")&&i){var r=a.getModel("itemStyle"),s=r.getModel("textStyle"),l={pos:{left:a.get("left"),right:a.get("right"),top:a.get("top"),bottom:a.get("bottom")},box:{width:e.getWidth(),height:e.getHeight()},emptyItemWidth:a.get("emptyItemWidth"),totalWidth:0,renderList:[]};this._prepare(i,l,s),this._renderContent(t,l,r,s,n),ou(o,l.pos,l.box)}},_prepare:function(t,e,i){for(var n=t;n;n=n.parentNode){var a=n.getModel().get("name"),o=i.getTextRect(a),r=Math.max(o.width+16,e.emptyItemWidth);e.totalWidth+=r+8,e.renderList.push({node:n,text:a,width:r})}},_renderContent:function(t,e,i,n,a){for(var o,r,s=0,l=e.emptyItemWidth,u=t.get("breadcrumb.height"),h=function(t,e,i){var n=e.width,a=e.height,o=xl(t.x,n),r=xl(t.y,a),s=xl(t.x2,n),l=xl(t.y2,a);return(isNaN(o)||isNaN(parseFloat(t.x)))&&(o=0),(isNaN(s)||isNaN(parseFloat(t.x2)))&&(s=n),(isNaN(r)||isNaN(parseFloat(t.y)))&&(r=0),(isNaN(l)||isNaN(parseFloat(t.y2)))&&(l=a),i=Vl(i||0),{width:Math.max(s-o-i[1]-i[3],0),height:Math.max(l-r-i[0]-i[2],0)}}(e.pos,e.box),c=e.totalWidth,d=e.renderList,f=d.length-1;0<=f;f--){var p=d[f],g=p.node,m=p.width,v=p.text;c>h.width&&(c-=m-l,m=l,v=null);var y=new Rr({shape:{points:yx(s,0,m,u,f===d.length-1,0===f)},style:C(i.getItemStyle(),{lineJoin:"bevel",text:v,textFill:n.getTextColor(),textFont:n.getFont()}),z:10,onclick:A(a,g)});this.group.add(y),o=t,r=g,y.eventData={componentType:"series",componentSubType:"treemap",componentIndex:o.componentIndex,seriesIndex:o.componentIndex,seriesName:o.name,seriesType:"treemap",selfType:"breadcrumb",nodeData:{dataIndex:r&&r.dataIndex,name:r&&r.name},treePathInfo:r&&gx(r,o)},s+=m+8}},remove:function(){this.group.removeAll()}};function xx(t){var e=Lx(t);return e.stroke=e.fill=e.lineWidth=null,e}var _x=T,bx=Si,Sx=Hr,Mx=E,Ix=["label"],Ax=["emphasis","label"],Tx=["upperLabel"],Dx=["emphasis","upperLabel"],Cx=10,Lx=Xa([["fill","color"],["stroke","strokeColor"],["lineWidth","strokeWidth"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]);function kx(d,r,s,l,u,i,f,t,e,n){if(f){var p=f.getLayout();if(p&&p.isInView){var h=p.width,c=p.height,g=p.borderWidth,m=p.invisible,v=f.getRawIndex(),y=t&&t.getRawIndex(),a=f.viewChildren,x=p.upperHeight,o=a&&a.length,_=f.getModel("itemStyle"),w=f.getModel("emphasis.itemStyle"),b=T("nodeGroup",bx);if(b){if(e.add(b),b.attr("position",[p.x||0,p.y||0]),b.__tmNodeWidth=h,b.__tmNodeHeight=c,p.isAboveViewRoot)return b;var S=T("background",Sx,n,1);if(S&&function(t,n,a){n.dataIndex=f.dataIndex,n.seriesIndex=d.seriesIndex,n.setShape({x:0,y:0,width:h,height:c});var o=f.getVisual("borderColor",!0),r=w.get("borderColor");I(n,function(){var t=xx(_);t.fill=o;var e=Lx(w);if(e.fill=r,a){var i=h-2*g;A(t,e,o,i,x,{x:g,y:0,width:i,height:x})}else t.text=e.text=null;n.setStyle(t),Os(n,e)}),t.add(n)}(b,S,o&&p.upperHeight),!o){var M=T("content",Sx,n,2);M&&function(t,i){i.dataIndex=f.dataIndex,i.seriesIndex=d.seriesIndex;var n=Math.max(h-2*g,0),a=Math.max(c-2*g,0);i.culling=!0,i.setShape({x:g,y:g,width:n,height:a});var o=f.getVisual("color",!0);I(i,function(){var t=xx(_);t.fill=o;var e=Lx(w);A(t,e,o,n,a),i.setStyle(t),Os(i,e)}),t.add(i)}(b,M)}return b}}}function I(t,e){m?t.invisible||i.push(t):(e(),t.__tmWillVisible||(t.invisible=!1))}function A(t,e,i,n,a,o){var r=f.getModel(),s=W(d.getFormattedLabel(f.dataIndex,"normal",null,null,o?"upperLabel":"label"),r.get("name"));if(!o&&p.isLeafRoot){var l=d.get("drillDownIcon",!0);s=l?l+" "+s:s}var u=r.getModel(o?Tx:Ix),h=r.getModel(o?Dx:Ax),c=u.getShallow("show");Bs(t,e,u,h,{defaultText:c?s:null,autoColor:i,isRectText:!0}),o&&(t.textRect=D(o)),t.truncate=c&&u.get("ellipsis")?{outerWidth:n,outerHeight:a,minChar:2}:null}function T(t,e,i,n){var a=null!=y&&s[t][y],o=u[t];return a?(s[t][y]=null,function(t,e,i){(t[v]={}).old="nodeGroup"===i?e.position.slice():L({},e.shape)}(o,a,t)):m||((a=new e({z:function(t,e){var i=t*Cx+e;return(i-1)/i}(i,n)})).__tmDepth=i,function(t,e,i){var n=t[v]={},a=f.parentNode;if(a&&(!l||"drillDown"===l.direction)){var o=0,r=0,s=u.background[a.getRawIndex()];!l&&s&&s.old&&(o=s.old.width,r=s.old.height),n.old="nodeGroup"===i?[0,r]:{x:o,y:r,width:0,height:0}}n.fadein="nodeGroup"!==i}(o,0,a.__tmStorageName=t)),r[t][v]=a}}hf({type:"treemap",init:function(t,e){this._containerGroup,this._storage={nodeGroup:[],background:[],content:[]},this._oldTree,this._breadcrumb,this._controller,this._state="ready"},render:function(t,e,i,n){if(!(_(e.findComponents({mainType:"series",subType:"treemap",query:n}),t)<0)){this.seriesModel=t,this.api=i,this.ecModel=e;var a=dx(n,["treemapZoomToNode","treemapRootToNode"],t),o=n&&n.type,r=t.layoutInfo,s=!this._oldTree,l=this._storage,u="treemapRootToNode"===o&&a&&l?{rootNodeGroup:l.nodeGroup[a.node.getRawIndex()],direction:n.direction}:null,h=this._giveContainerGroup(r),c=this._doRender(h,t,u);s||o&&"treemapZoomToNode"!==o&&"treemapRootToNode"!==o?c.renderFinally():this._doAnimation(h,c,t,u),this._resetController(i),this._renderBreadcrumb(t,i,a)}},_giveContainerGroup:function(t){var e=this._containerGroup;return e||(e=this._containerGroup=new bx,this._initEvents(e),this.group.add(e)),e.attr("position",[t.x,t.y]),e},_doRender:function(t,e,i){var n=e.getData().tree,a=this._oldTree,o={nodeGroup:[],background:[],content:[]},r={nodeGroup:[],background:[],content:[]},s=this._storage,l=[],c=A(kx,e,r,s,i,o,l);!function o(r,s,l,u,h){u?Mx(s=r,function(t,e){t.isRemoved()||i(e,e)}):new df(s,r,t,t).add(i).update(i).remove(A(i,null)).execute();function t(t){return t.getId()}function i(t,e){var i=null!=t?r[t]:null,n=null!=e?s[e]:null,a=c(i,n,l,h);a&&o(i&&i.viewChildren||[],n&&n.viewChildren||[],a,u,h+1)}}(n.root?[n.root]:[],a&&a.root?[a.root]:[],t,n===a||!a,0);var u,h,d=(h={nodeGroup:[],background:[],content:[]},(u=s)&&Mx(u,function(t,e){var i=h[e];Mx(t,function(t){t&&(i.push(t),t.__tmWillDelete=1)})}),h);return this._oldTree=n,this._storage=r,{lastsForAnimation:o,willDeleteEls:d,renderFinally:function(){Mx(d,function(t){Mx(t,function(t){t.parent&&t.parent.remove(t)})}),Mx(l,function(t){t.invisible=!0,t.dirty()})}}},_doAnimation:function(t,o,e,s){if(e.get("animation")){var l=e.get("animationDurationUpdate"),u=e.get("animationEasing"),h=function(){var o,r=[],s={};return{add:function(t,e,i,n,a){return R(n)&&(a=n,n=0),!s[t.id]&&(s[t.id]=1,r.push({el:t,target:e,time:i,delay:n,easing:a}),!0)},done:function(t){return o=t,this},start:function(){for(var t=r.length,e=0,i=r.length;e=r.length||t===r[t.depth]){var i=o_(l,c,t,e,y,s);n(t,i,a,o,r,s)}})}else p=e_(c),t.setVisual("color",p)}(o,{},N(a.levelModels,function(t){return t?t.get(Jx):null}),r,t.getViewRoot().getAncestors(),t)}};function t_(i,n,a,o){var r=L({},n);return E(["color","colorAlpha","colorSaturation"],function(t){var e=i.get(t,!0);null==e&&a&&(e=a[t]),null==e&&(e=n[t]),null==e&&(e=o.get(t)),null!=e&&(r[t]=e)}),r}function e_(t){var e=i_(t,"color");if(e){var i=i_(t,"colorAlpha"),n=i_(t,"colorSaturation");return n&&(e=He(e,null,null,n)),i&&(e=Ze(e,i)),e}}function i_(t,e){var i=t[e];if(null!=i&&"none"!==i)return i}function n_(t,e,i,n,a,o){if(o&&o.length){var r=a_(e,"color")||null!=a.color&&"none"!==a.color&&(a_(e,"colorAlpha")||a_(e,"colorSaturation"));if(r){var s=e.get("visualMin"),l=e.get("visualMax"),u=i.dataExtent.slice();null!=s&&su[1]&&(u[1]=l);var h=e.get("colorMappingBy"),c={type:r.name,dataExtent:u,visual:r.range};"color"!==c.type||"index"!==h&&"id"!==h?c.mappingMethod="linear":(c.mappingMethod="category",c.loop=!0);var d=new Bx(c);return d.__drColorMappingBy=h,d}}}function a_(t,e){var i=t.get(e);return $x(i)&&i.length?{name:e,range:i}:null}function o_(t,e,i,n,a,o){var r=L({},e);if(a){var s=a.type,l="color"===s&&a.__drColorMappingBy,u="index"===l?n:"id"===l?o.mapIdToIndex(i.getId()):i.getValue(t.get("visualDimension"));r[s]=a.mapValueToVisual(u)}return r}var r_=Math.max,s_=Math.min,l_=W,u_=E,h_=["itemStyle","borderWidth"],c_=["itemStyle","gapWidth"],d_=["upperLabel","show"],f_=["upperLabel","height"],p_={seriesType:"treemap",reset:function(t,e,i,n){var a=i.getWidth(),o=i.getHeight(),r=t.option,s=au(t.getBoxLayoutParams(),{width:i.getWidth(),height:i.getHeight()}),l=r.size||[],u=xl(l_(s.width,l[0]),a),h=xl(l_(s.height,l[1]),o),c=n&&n.type,d=dx(n,["treemapZoomToNode","treemapRootToNode"],t),f="treemapRender"===c||"treemapMove"===c?n.rootRect:null,p=t.getViewRoot(),g=fx(p);if("treemapMove"!==c){var m="treemapZoomToNode"===c?function(t,e,i,n,a){var o,r=(e||{}).node,s=[n,a];if(!r||r===i)return s;var l=n*a,u=l*t.option.zoomToNodeRatio;for(;o=r.parentNode;){for(var h=0,c=o.children,d=0,f=c.length;ds[1]&&(s[1]=e)})}else s=[NaN,NaN];return{sum:n,dataExtent:s}}(e,r,s);if(0===u.sum)return t.viewChildren=[];if(u.sum=function(t,e,i,n,a){if(!n)return i;for(var o=t.get("visibleMin"),r=a.length,s=r,l=r-1;0<=l;l--){var u=a["asc"===n?r-l-1:l].getValue();u/i*ei[l[r]])&&(h=i[l[r]]);for(var c=0,d=t.length;c "+d)),u++)}var f,p=i.get("coordinateSystem");if("cartesian2d"===p||"polar"===p)f=Xf(t,i);else{var g=Hu.get(p),m=g&&"view"!==g.type&&g.dimensions||[];_(m,"value")<0&&m.concat(["value"]);var v=Wf(t,{coordDimensions:m});(f=new Tf(v,i)).initData(t)}var y=new Tf(["value"],i);return y.initData(l,s),a&&a(f,y),Wy({mainData:f,struct:o,structAttr:"graph",datas:{node:f,edge:y},datasAttr:{node:"data",edge:"edgeData"}}),o.update(),o}var A_=uf({type:"series.graph",init:function(t){A_.superApply(this,"init",arguments),this.legendDataProvider=function(){return this._categoriesData},this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},mergeOption:function(t){A_.superApply(this,"mergeOption",arguments),this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},mergeDefaultAndTheme:function(t){A_.superApply(this,"mergeDefaultAndTheme",arguments),ba(t,["edgeLabel"],["show"])},getInitialData:function(t,s){var e=t.edges||t.links||[],i=t.data||t.nodes||[],l=this;if(i&&e)return I_(i,e,this,!0,function(t,e){t.wrapMethod("getItemModel",function(t){var e=l._categoriesModels[t.getShallow("category")];return e&&(e.parentModel=t.parentModel,t.parentModel=e),t});var i=l.getModel("edgeLabel"),n=new dl({label:i.option},i.parentModel,s),a=l.getModel("emphasis.edgeLabel"),o=new dl({emphasis:{label:a.option}},a.parentModel,s);function r(t){return(t=this.parsePath(t))&&"label"===t[0]?n:t&&"emphasis"===t[0]&&"label"===t[1]?o:this.parentModel}e.wrapMethod("getItemModel",function(t){return t.customizeGetParent(r),t})}).data},getGraph:function(){return this.getData().graph},getEdgeData:function(){return this.getGraph().edgeData},getCategoriesData:function(){return this._categoriesData},formatTooltip:function(t,e,i){if("edge"!==i)return A_.superApply(this,"formatTooltip",arguments);var n=this.getData(),a=this.getDataParams(t,i),o=n.graph.getEdgeByIndex(t),r=n.getName(o.node1.dataIndex),s=n.getName(o.node2.dataIndex),l=[];return null!=r&&l.push(r),null!=s&&l.push(s),l=Wl(l.join(" > ")),a.value&&(l+=" : "+Wl(a.value)),l},_updateCategoriesData:function(){var t=N(this.option.categories||[],function(t){return null!=t.value?t:L({value:0},t)}),e=new Tf(["value"],this);e.initData(t),this._categoriesData=e,this._categoriesModels=e.mapArray(function(t){return e.getItemModel(t,!0)})},setZoom:function(t){this.option.zoom=t},setCenter:function(t){this.option.center=t},isAnimationEnabled:function(){return A_.superCall(this,"isAnimationEnabled")&&!("force"===this.get("layout")&&this.get("force.layoutAnimation"))},defaultOption:{zlevel:0,z:2,coordinateSystem:"view",legendHoverLink:!0,hoverAnimation:!0,layout:null,focusNodeAdjacency:!1,circular:{rotateLabel:!1},force:{initLayout:null,repulsion:[0,50],gravity:.1,friction:.6,edgeLength:30,layoutAnimation:!0},left:"center",top:"center",symbol:"circle",symbolSize:10,edgeSymbol:["none","none"],edgeSymbolSize:10,edgeLabel:{position:"middle"},draggable:!1,roam:!1,center:null,zoom:1,nodeScaleRatio:.6,label:{show:!1,formatter:"{b}"},itemStyle:{},lineStyle:{color:"#aaa",width:1,curveness:0,opacity:.5},emphasis:{label:{show:!0}}}}),T_=Ur.prototype,D_=qr.prototype;function C_(t){return isNaN(+t.cpx1)||isNaN(+t.cpy1)}var L_=ds({type:"ec-line",style:{stroke:"#000",fill:null},shape:{x1:0,y1:0,x2:0,y2:0,percent:1,cpx1:null,cpy1:null},buildPath:function(t,e){this[C_(e)?"_buildPathLine":"_buildPathCurve"](t,e)},_buildPathLine:T_.buildPath,_buildPathCurve:D_.buildPath,pointAt:function(t){return this[C_(this.shape)?"_pointAtLine":"_pointAtCurve"](t)},_pointAtLine:T_.pointAt,_pointAtCurve:D_.pointAt,tangentAt:function(t){var e=this.shape,i=C_(e)?[e.x2-e.x1,e.y2-e.y1]:this._tangentAtCurve(t);return mt(i,i)},_tangentAtCurve:D_.tangentAt}),k_=["fromSymbol","toSymbol"];function P_(t){return"_"+t+"Type"}function N_(t,e,i){var n=e.getItemVisual(i,"color"),a=e.getItemVisual(i,t),o=e.getItemVisual(i,t+"Size");if(a&&"none"!==a){k(o)||(o=[o,o]);var r=Jp(a,-o[0]/2,-o[1]/2,o[0],o[1],n);return r.name=t,r}}function O_(t,e){t.x1=e[0][0],t.y1=e[0][1],t.x2=e[1][0],t.y2=e[1][1],t.percent=1;var i=e[2];i?(t.cpx1=i[0],t.cpy1=i[1]):(t.cpx1=NaN,t.cpy1=NaN)}function E_(t,e,i){Si.call(this),this._createLine(t,e,i)}var R_=E_.prototype;function z_(t){this._ctor=t||E_,this.group=new Si}R_.beforeUpdate=function(){var t=this.childOfName("fromSymbol"),e=this.childOfName("toSymbol"),i=this.childOfName("label");if(t||e||!i.ignore){for(var n=1,a=this.parent;a;)a.scale&&(n/=a.scale[0]),a=a.parent;var o=this.childOfName("line");if(this.__dirty||o.__dirty){var r=o.shape.percent,s=o.pointAt(0),l=o.pointAt(r),u=ht([],l,s);if(mt(u,u),t){t.attr("position",s);var h=o.tangentAt(0);t.attr("rotation",Math.PI/2-Math.atan2(h[1],h[0])),t.attr("scale",[n*r,n*r])}if(e){e.attr("position",l);h=o.tangentAt(1);e.attr("rotation",-Math.PI/2-Math.atan2(h[1],h[0])),e.attr("scale",[n*r,n*r])}if(!i.ignore){var c,d,f;i.attr("position",l);var p=5*n;if("end"===i.__position)c=[u[0]*p+l[0],u[1]*p+l[1]],d=.8=t&&(0===e?0:n[e-1][0])o&&(e[1-n]=e[n]+c.sign*o),e}function bw(t,e){var i=t[e]-t[1-e];return{span:Math.abs(i),sign:0a*(1-h[0])?(l="jump",r=s-a*(1-h[2])):0<=(r=s-a*h[1])&&(r=s-a*(1-h[1]))<=0&&(r=0),(r*=e.axisExpandWidth/u)?ww(r,n,o,"all"):l="none";else{a=n[1]-n[0];(n=[Aw(0,o[1]*s/a-a/2)])[1]=Iw(o[1],n[0]+a),n[0]=n[1]-a}return{axisExpandWindow:n,behavior:l}}},Hu.register("parallel",{create:function(n,a){var o=[];return n.eachComponent("parallel",function(t,e){var i=new kw(t,n,a);i.name="parallel_"+e,i.resize(t,a),(t.coordinateSystem=i).model=t,o.push(i)}),n.eachSeries(function(t){if("parallel"===t.get("coordinateSystem")){var e=n.queryComponents({mainType:"parallel",index:t.get("parallelIndex"),id:t.get("parallelId")})[0];t.coordinateSystem=e.coordinateSystem}}),o}});var Nw=fu.extend({type:"baseParallelAxis",axis:null,activeIntervals:[],getAreaSelectStyle:function(){return Xa([["fill","color"],["lineWidth","borderWidth"],["stroke","borderColor"],["width","width"],["opacity","opacity"]])(this.getModel("areaSelectStyle"))},setActiveIntervals:function(t){var e=this.activeIntervals=D(t);if(e)for(var i=e.length-1;0<=i;i--)wl(e[i])},getActiveState:function(t){var e=this.activeIntervals;if(!e.length)return"normal";if(null==t||isNaN(t))return"inactive";if(1===e.length){var i=e[0];if(i[0]<=t&&t<=i[1])return"active"}else for(var n=0,a=e.length;nf&&(f=m.depth),g.setLayout({depth:v?m.depth:c},!0),"vertical"===o?g.setLayout({dy:i},!0):g.setLayout({dx:i},!0);for(var y=0;y "))},preventIncremental:function(){return!!this.get("effect.show")},getProgressive:function(){var t=this.option.progressive;return null==t?this.option.large?1e4:this.get("progressive"):t},getProgressiveThreshold:function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?2e4:this.get("progressiveThreshold"):t},defaultOption:{coordinateSystem:"geo",zlevel:0,z:2,legendHoverLink:!0,hoverAnimation:!0,xAxisIndex:0,yAxisIndex:0,symbol:["none","none"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:"circle",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,clip:!0,label:{show:!1,position:"end"},lineStyle:{opacity:.5}}});function PS(t,e,i){Si.call(this),this.add(this.createLine(t,e,i)),this._updateEffectSymbol(t,e)}var NS=PS.prototype;function OS(t,e,i){Si.call(this),this._createPolyline(t,e,i)}NS.createLine=function(t,e,i){return new E_(t,e,i)},NS._updateEffectSymbol=function(t,e){var i=t.getItemModel(e).getModel("effect"),n=i.get("symbolSize"),a=i.get("symbol");k(n)||(n=[n,n]);var o=i.get("color")||t.getItemVisual(e,"color"),r=this.childAt(1);this._symbolType!==a&&(this.remove(r),(r=Jp(a,-.5,-.5,1,1,o)).z2=100,r.culling=!0,this.add(r)),r&&(r.setStyle("shadowColor",o),r.setStyle(i.getItemStyle(["color"])),r.attr("scale",n),r.setColor(o),r.attr("scale",n),this._symbolType=a,this._updateEffectAnimation(t,i,e))},NS._updateEffectAnimation=function(e,t,i){var n=this.childAt(1);if(n){var a=this,o=e.getItemLayout(i),r=1e3*t.get("period"),s=t.get("loop"),l=t.get("constantSpeed"),u=W(t.get("delay"),function(t){return t/e.count()*r/3}),h="function"==typeof u;if(n.ignore=!0,this.updateAnimationPoints(n,o),0e);r++);r=Math.min(r-1,a-2)}wt(t.position,i[r],i[r+1],(e-n[r])/(n[r+1]-n[r]));var s=i[r+1][0]-i[r][0],l=i[r+1][1]-i[r][1];t.rotation=-Math.atan2(l,s)-Math.PI/2,this._lastFrame=r,this._lastFramePercent=e,t.ignore=!1}},w(RS,PS);var BS=ds({shape:{polyline:!1,curveness:0,segs:[]},buildPath:function(t,e){var i=e.segs,n=e.curveness;if(e.polyline)for(var a=0;a=e[0]&&t<=e[1]}}(y,e.option.range):function(e,n,a){var i=e[1]-e[0],o=(n=N(n,function(t){return{interval:[(t.interval[0]-e[0])/i,(t.interval[1]-e[0])/i]}})).length,r=0;return function(t){for(var e=r;e=e.y&&t[1]<=e.y+e.height:i.contain(i.toLocalCoord(t[1]))&&t[0]>=e.y&&t[0]<=e.y+e.height},pointToData:function(t){var e=this.getAxis();return[e.coordToData(e.toLocalCoord(t["horizontal"===e.orient?0:1]))]},dataToPoint:function(t){var e=this.getAxis(),i=this.getRect(),n=[],a="horizontal"===e.orient?0:1;return t instanceof Array&&(t=t[0]),n[a]=e.toGlobalCoord(e.dataToCoord(+t)),n[1-a]=0==a?i.y+i.height/2:i.x+i.width/2,n}}).dimensions});var vM=["axisLine","axisTickLabel","axisName"],yM="splitLine",xM=Um.extend({type:"singleAxis",axisPointerClass:"SingleAxisPointer",render:function(t,e,i,n){var a=this.group;a.removeAll();var o=mM(t),r=new Cm(t,o);E(vM,r.add,r),a.add(r.getGroup()),t.get(yM+".show")&&this["_"+yM](t),xM.superCall(this,"render",t,e,i,n)},_splitLine:function(t){var e=t.axis;if(!e.scale.isBlank()){var i=t.getModel("splitLine"),n=i.getModel("lineStyle"),a=n.get("width"),o=n.get("color");o=o instanceof Array?o:[o];for(var r=t.coordinateSystem.getRect(),s=e.isHorizontal(),l=[],u=0,h=e.getTicksCoords({tickModel:i}),c=[],d=[],f=0;fr)return!0;if(o){var s=Wm(t).seriesDataCount,l=n.getExtent();return Math.abs(l[0]-l[1])/s>r}return!1},makeElOption:function(t,e,i,n,a){},createPointerEl:function(t,e,i,n){var a=e.pointer;if(a){var o=zM(t).pointerEl=new ol[a.type](BM(e.pointer));t.add(o)}},createLabelEl:function(t,e,i,n){if(e.label){var a=zM(t).labelEl=new Hr(BM(e.label));t.add(a),WM(a,n)}},updatePointerEl:function(t,e,i){var n=zM(t).pointerEl;n&&e.pointer&&(n.setStyle(e.pointer.style),i(n,{shape:e.pointer.shape}))},updateLabelEl:function(t,e,i,n){var a=zM(t).labelEl;a&&(a.setStyle(e.label.style),i(a,{shape:e.label.shape,position:e.label.position}),WM(a,n))},_renderHandle:function(t){if(!this._dragging&&this.updateHandleTransform){var e,i=this._axisPointerModel,n=this._api.getZr(),a=this._handle,o=i.getModel("handle"),r=i.get("status");if(!o.get("show")||!r||"hide"===r)return a&&n.remove(a),void(this._handle=null);this._handle||(e=!0,a=this._handle=el(o.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){Ft(t.event)},onmousedown:VM(this._onHandleDragMove,this,0,0),drift:VM(this._onHandleDragMove,this),ondragend:VM(this._onHandleDragEnd,this)}),n.add(a)),ZM(a,i,!1);a.setStyle(o.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var s=o.get("size");k(s)||(s=[s,s]),a.attr("scale",[s[0]/2,s[1]/2]),dc(this,"_doDispatchAxisPointer",o.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,e)}},_moveHandleToValue:function(t,e){FM(this._axisPointerModel,!e&&this._moveAnimation,this._handle,HM(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},_onHandleDragMove:function(t,e){var i=this._handle;if(i){this._dragging=!0;var n=this.updateHandleTransform(HM(i),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=n,i.stopAnimation(),i.attr(HM(n)),zM(i).lastProp=null,this._doDispatchAxisPointer()}},_doDispatchAxisPointer:function(){if(this._handle){var t=this._payloadInfo,e=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:e.axis.dim,axisIndex:e.componentIndex}]})}},_onHandleDragEnd:function(t){if(this._dragging=!1,this._handle){var e=this._axisPointerModel.get("value");this._moveHandleToValue(e),this._api.dispatchAction({type:"hideTip"})}},getHandleTransform:null,updateHandleTransform:null,clear:function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),i=this._group,n=this._handle;e&&i&&(this._lastGraphicKey=null,i&&e.remove(i),n&&e.remove(n),this._group=null,this._handle=null,this._payloadInfo=null)},doClear:function(){},buildLabel:function(t,e,i){return{x:t[i=i||0],y:t[1-i],width:e[i],height:e[1-i]}}}).constructor=GM);var QM=GM.extend({makeElOption:function(t,e,i,n,a){var o=i.axis,r=o.grid,s=n.get("type"),l=tI(r,o).getOtherAxis(o).getGlobalExtent(),u=o.toGlobalCoord(o.dataToCoord(e,!0));if(s&&"none"!==s){var h=UM(n),c=eI[s](o,u,l);c.style=h,t.graphicKey=c.type,t.pointer=c}qM(e,t,qm(r.model,i),i,n,a)},getHandleTransform:function(t,e,i){var n=qm(e.axis.grid.model,e,{labelInside:!1});return n.labelMargin=i.get("handle.margin"),{position:jM(e.axis,t,n),rotation:n.rotation+(n.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(t,e,i,n){var a=i.axis,o=a.grid,r=a.getGlobalExtent(!0),s=tI(o,a).getOtherAxis(a).getGlobalExtent(),l="x"===a.dim?0:1,u=t.position;u[l]+=e[l],u[l]=Math.min(r[1],u[l]),u[l]=Math.max(r[0],u[l]);var h=(s[1]+s[0])/2,c=[h,h];c[l]=u[l];return{position:u,rotation:t.rotation,cursorPoint:c,tooltipOption:[{verticalAlign:"middle"},{align:"center"}][l]}}});function tI(t,e){var i={};return i[e.dim+"AxisIndex"]=e.index,t.getCartesian(i)}var eI={line:function(t,e,i){return{type:"Line",subPixelOptimize:!0,shape:KM([e,i[0]],[e,i[1]],iI(t))}},shadow:function(t,e,i){var n=Math.max(1,t.getBandWidth()),a=i[1]-i[0];return{type:"Rect",shape:$M([e-n/2,i[0]],[n,a],iI(t))}}};function iI(t){return"x"===t.dim?0:1}Um.registerAxisPointerClass("CartesianAxisPointer",QM),Jd(function(t){if(t){t.axisPointer&&0!==t.axisPointer.length||(t.axisPointer={});var e=t.axisPointer.link;e&&!k(e)&&(t.axisPointer.link=[e])}}),Qd(cd.PROCESSOR.STATISTIC,function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=Gm(t,e)}),tf({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},function(t,e,i){var n=t.currTrigger,r=[t.x,t.y],a=t,o=t.dispatchAction||T(i.dispatchAction,i),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){CM(r)&&(r=wM({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},e).point);var l=CM(r),u=a.axesInfo,h=s.axesInfo,c="leave"===n||CM(r),d={},f={},p={list:[],map:{}},g={showPointer:SM(AM,f),showTooltip:SM(TM,p)};bM(s.coordSysMap,function(t,e){var o=l||t.containPoint(r);bM(s.coordSysAxesInfo[e],function(t,e){var i=t.axis,n=function(t,e){for(var i=0;i<(t||[]).length;i++){var n=t[i];if(e.axis.dim===n.axisDim&&e.axis.model.componentIndex===n.axisIndex)return n}}(u,t);if(!c&&o&&(!u||n)){var a=n&&n.value;null!=a||l||(a=i.pointToData(r)),null!=a&&IM(t,a,g,!1,d)}})});var m={};return bM(h,function(a,t){var o=a.linkGroup;o&&!f[t]&&bM(o.axesInfo,function(t,e){var i=f[e];if(t!==a&&i){var n=i.value;o.mapper&&(n=a.axis.scale.parse(o.mapper(n,DM(t),DM(a)))),m[a.key]=n}})}),bM(m,function(t,e){IM(h[e],t,g,!0,d)}),function(a,t,e){var o=e.axesInfo=[];bM(t,function(t,e){var i=t.axisPointerModel.option,n=a[e];n?(t.useHandle||(i.status="show"),i.value=n.value,i.seriesDataIndices=(n.payloadBatch||[]).slice()):t.useHandle||(i.status="hide"),"show"===i.status&&o.push({axisDim:t.axis.dim,axisIndex:t.axis.model.componentIndex,value:i.value})})}(f,h,d),function(t,e,i,n){if(CM(e)||!t.list.length)return n({type:"hideTip"});var a=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};n({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:i.tooltipOption,position:i.position,dataIndexInside:a.dataIndexInside,dataIndex:a.dataIndex,seriesIndex:a.seriesIndex,dataByCoordSys:t.list})}(p,r,t,o),function(t,e,i){var n=i.getZr(),a="axisPointerLastHighlights",o=MM(n)[a]||{},r=MM(n)[a]={};bM(t,function(t,e){var i=t.axisPointerModel.option;"show"===i.status&&bM(i.seriesDataIndices,function(t){var e=t.seriesIndex+" | "+t.dataIndex;r[e]=t})});var s=[],l=[];E(o,function(t,e){r[e]||l.push(t)}),E(r,function(t,e){o[e]||s.push(t)}),l.length&&i.dispatchAction({type:"downplay",escapeConnect:!0,batch:l}),s.length&&i.dispatchAction({type:"highlight",escapeConnect:!0,batch:s})}(h,0,i),d}});var nI=["x","y"],aI=["width","height"],oI=GM.extend({makeElOption:function(t,e,i,n,a){var o=i.axis,r=o.coordinateSystem,s=lI(r,1-sI(o)),l=r.dataToPoint(e)[0],u=n.get("type");if(u&&"none"!==u){var h=UM(n),c=rI[u](o,l,s);c.style=h,t.graphicKey=c.type,t.pointer=c}qM(e,t,mM(i),i,n,a)},getHandleTransform:function(t,e,i){var n=mM(e,{labelInside:!1});return n.labelMargin=i.get("handle.margin"),{position:jM(e.axis,t,n),rotation:n.rotation+(n.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(t,e,i,n){var a=i.axis,o=a.coordinateSystem,r=sI(a),s=lI(o,r),l=t.position;l[r]+=e[r],l[r]=Math.min(s[1],l[r]),l[r]=Math.max(s[0],l[r]);var u=lI(o,1-r),h=(u[1]+u[0])/2,c=[h,h];return c[r]=l[r],{position:l,rotation:t.rotation,cursorPoint:c,tooltipOption:{verticalAlign:"middle"}}}}),rI={line:function(t,e,i){return{type:"Line",subPixelOptimize:!0,shape:KM([e,i[0]],[e,i[1]],sI(t))}},shadow:function(t,e,i){var n=t.getBandWidth(),a=i[1]-i[0];return{type:"Rect",shape:$M([e-n/2,i[0]],[n,a],sI(t))}}};function sI(t){return t.isHorizontal()?0:1}function lI(t,e){var i=t.getRect();return[i[nI[e]],i[nI[e]]+i[aI[e]]]}Um.registerAxisPointerClass("SingleAxisPointer",oI),lf({type:"single"});var uI=Wh.extend({type:"series.themeRiver",dependencies:["singleAxis"],nameMap:null,init:function(t){uI.superApply(this,"init",arguments),this.legendDataProvider=function(){return this.getRawData()}},fixData:function(t){var e=t.length,i=Ra(t,function(t){return t[2]}),n=[];i.buckets.each(function(t,e){n.push({name:e,dataList:t})});for(var a=n.length,o=-1,r=-1,s=0;sMath.PI/2?"right":"left"):y&&"center"!==y?"left"===y?(d=l.r0+v,f>Math.PI/2&&(y="right")):"right"===y&&(d=l.r-v,f>Math.PI/2&&(y="left")):(d=(l.r+l.r0)/2,y="center"),c.attr("style",{text:s,textAlign:y,textVerticalAlign:S("verticalAlign")||"middle",opacity:S("opacity")});var x=d*p+l.cx,_=d*g+l.cy;c.attr("position",[x,_]);var w=S("rotate"),b=0;function S(t){var e=o.get(t);return null==e?a.get(t):e}"radial"===w?(b=-f)<-Math.PI/2&&(b+=Math.PI):"tangential"===w?(b=Math.PI/2-f)>Math.PI/2?b-=Math.PI:b<-Math.PI/2&&(b+=Math.PI):"number"==typeof w&&(b=w*Math.PI/180),c.attr("rotation",b)},vI._initEvents=function(t,e,i,n){t.off("mouseover").off("mouseout").off("emphasis").off("normal");function a(){r.onEmphasis(n)}function o(){r.onNormal()}var r=this;i.isAnimationEnabled()&&t.on("mouseover",a).on("mouseout",o).on("emphasis",a).on("normal",o).on("downplay",function(){r.onDownplay()}).on("highlight",function(){r.onHighlight()})},w(mI,Si);ec.extend({type:"sunburst",init:function(){},render:function(a,o,t,e){var n=this;this.seriesModel=a,this.api=t,this.ecModel=o;var r=a.getData(),s=r.tree.root,i=a.getViewRoot(),l=this.group,u=a.get("renderLabelForZeroData"),h=[];i.eachNode(function(t){h.push(t)});var c=this._oldChildren||[];if(function(i,n){if(0===i.length&&0===n.length)return;function t(t){return t.getId()}function e(t,e){!function(t,e){u||!t||t.getValue()||(t=null);if(t!==s&&e!==s)if(e&&e.piece)t?(e.piece.updateData(!1,t,"normal",a,o),r.setItemGraphicEl(t.dataIndex,e.piece)):function(t){if(!t)return;t.piece&&(l.remove(t.piece),t.piece=null)}(e);else if(t){var i=new mI(t,a,o);l.add(i),r.setItemGraphicEl(t.dataIndex,i)}}(null==t?null:i[t],null==e?null:n[e])}new df(n,i,t,t).add(e).update(e).remove(A(e,null)).execute()}(h,c),function(t,e){if(0=i.r0}}});var yI="sunburstRootToNode";tf({type:yI,update:"updateView"},function(a,t){t.eachComponent({mainType:"series",subType:"sunburst",query:a},function(t,e){var i=dx(a,[yI],t);if(i){var n=t.getViewRoot();n&&(a.direction=px(n,i.node)?"rollUp":"drillDown"),t.resetViewRoot(i.node)}})});var xI="sunburstHighlight";tf({type:xI,update:"updateView"},function(n,t){t.eachComponent({mainType:"series",subType:"sunburst",query:n},function(t,e){var i=dx(n,[xI],t);i&&(n.highlight=i.node)})});tf({type:"sunburstUnhighlight",update:"updateView"},function(i,t){t.eachComponent({mainType:"series",subType:"sunburst",query:i},function(t,e){i.unhighlight=!0})});var _I=Math.PI/180;function wI(t,e){if("function"==typeof e)return t.sort(e);var n="asc"===e;return t.sort(function(t,e){var i=(t.getValue()-e.getValue())*(n?1:-1);return 0==i?(t.dataIndex-e.dataIndex)*(n?-1:1):i})}function bI(o,r){return r=r||[0,0],N(["x","y"],function(t,e){var i=this.getAxis(t),n=r[e],a=o[e]/2;return"category"===i.type?i.getBandWidth():Math.abs(i.dataToCoord(n-a)-i.dataToCoord(n+a))},this)}af(A(Av,"sunburst")),nf(A(function(t,e,C,i){e.eachSeriesByType(t,function(t){var e=t.get("center"),i=t.get("radius");k(i)||(i=[0,i]),k(e)||(e=[e,e]);var n=C.getWidth(),a=C.getHeight(),h=Math.min(n,a),c=xl(e[0],n),d=xl(e[1],a),f=xl(i[0],h/2),o=xl(i[1],h/2),r=-t.get("startAngle")*_I,p=t.get("minAngle")*_I,g=t.getData().tree.root,s=t.getViewRoot(),m=s.depth,l=t.get("sort");null!=l&&!function e(t,i){var n=t.children||[];t.children=wI(n,i);n.length&&E(t.children,function(t){e(t,i)})}(s,l);var u=0;E(s.children,function(t){isNaN(t.getValue())||u++});var v=s.getValue(),y=Math.PI/(v||u)*2,x=0t[1]&&t.reverse(),{coordSys:{type:"polar",cx:a.cx,cy:a.cy,r:t[1],r0:t[0]},api:{coord:T(function(t){var e=o.dataToRadius(t[0]),i=r.dataToAngle(t[1]),n=a.coordToPoint([e,i]);return n.push(e,i*Math.PI/180),n}),size:T(II,a)}}},calendar:function(i){var t=i.getRect(),e=i.getRangeInfo();return{coordSys:{type:"calendar",x:t.x,y:t.y,width:t.width,height:t.height,cellWidth:i.getCellWidth(),cellHeight:i.getCellHeight(),rangeInfo:{start:e.start,end:e.end,weeks:e.weeks,dayCount:e.allDay}},api:{coord:function(t,e){return i.dataToPoint(t,e)}}}}};function NI(t,e,i,n,a){null==i[t]||a||(e[t]=i[t],i[t]=n[t])}function OI(o,r,e,t){var i=o.get("renderItem"),n=o.coordinateSystem,a={};n&&(a=n.prepareCustoms?n.prepareCustoms():PI[n.type](n));var s,l,u,h,c,d=C({getWidth:t.getWidth,getHeight:t.getHeight,getZr:t.getZr,getDevicePixelRatio:t.getDevicePixelRatio,value:function(t,e){return null==e&&(e=s),r.get(r.getDimension(t||0),e)},style:function(t,e){null==e&&(e=s),g(e);var i=l.getModel(TI).getItemStyle();null!=c&&(i.fill=c);var n=r.getItemVisual(e,"opacity");null!=n&&(i.opacity=n);var a=t?VI(t,u):u;return Gs(i,a,null,{autoColor:c,isRectText:!0}),i.text=a.getShallow("show")?H(o.getFormattedLabel(e,"normal"),bg(r,e)):null,t&&GI(i,t),i},styleEmphasis:function(t,e){null==e&&(e=s),g(e);var i=l.getModel(DI).getItemStyle(),n=t?VI(t,h):h;return Gs(i,n,null,{isRectText:!0},!0),i.text=n.getShallow("show")?Z(o.getFormattedLabel(e,"emphasis"),o.getFormattedLabel(e,"normal"),bg(r,e)):null,t&&GI(i,t),i},visual:function(t,e){return null==e&&(e=s),r.getItemVisual(e,t)},barLayout:function(t){if(n.getBaseAxis){return function(t){var e=[],i=t.axis;if("category"===i.type){for(var n=i.getBandWidth(),a=0;ae[1]&&e.reverse();var i=t.getExtent(),n=Math.PI/180;return{cx:this.cx,cy:this.cy,r0:e[0],r:e[1],startAngle:-i[0]*n,endAngle:-i[1]*n,clockwise:t.inverse,contain:function(t,e){var i=t-this.cx,n=e-this.cy,a=i*i+n*n,o=this.r,r=this.r0;return a<=o*o&&r*r<=a}}}};var KI=fu.extend({type:"polarAxis",axis:null,getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"polar",index:this.option.polarIndex,id:this.option.polarId})[0]}});m(KI.prototype,Hp);var $I={splitNumber:5};function JI(t,e){return e.type||(e.data?"category":"value")}function QI(t,e){var i=this,n=i.getAngleAxis(),a=i.getRadiusAxis();if(n.scale.setExtent(1/0,-1/0),a.scale.setExtent(1/0,-1/0),t.eachSeries(function(t){if(t.coordinateSystem===i){var e=t.getData();E(e.mapDimension("radius",!0),function(t){a.scale.unionExtentFromData(e,Uf(e,t))}),E(e.mapDimension("angle",!0),function(t){n.scale.unionExtentFromData(e,Uf(e,t))})}}),zp(n.scale,n.model),zp(a.scale,a.model),"category"===n.type&&!n.onBand){var o=n.getExtent(),r=360/n.scale.count();n.inverse?o[1]+=r:o[1]-=r,n.setExtent(o[0],o[1])}}function tA(t,e){if(t.type=e.get("type"),t.scale=Bp(e),t.onBand=e.get("boundaryGap")&&"category"===t.type,t.inverse=e.get("inverse"),"angleAxis"===e.mainType){t.inverse^=e.get("clockwise");var i=e.get("startAngle");t.setExtent(i,i+(t.inverse?-360:360))}(e.axis=t).model=e}mm("angle",KI,JI,{startAngle:90,clockwise:!0,splitNumber:12,axisLabel:{rotate:!1}}),mm("radius",KI,JI,$I),sf({type:"polar",dependencies:["polarAxis","angleAxis"],coordinateSystem:null,findAxisModel:function(t){var e;return this.ecModel.eachComponent(t,function(t){t.getCoordSysModel()===this&&(e=t)},this),e},defaultOption:{zlevel:0,z:0,center:["50%","50%"],radius:"80%"}}),Hu.register("polar",{dimensions:qI.prototype.dimensions,create:function(i,s){var l=[];return i.eachComponent("polar",function(t,e){var i=new qI(e);i.update=QI;var n=i.getRadiusAxis(),a=i.getAngleAxis(),o=t.findAxisModel("radiusAxis"),r=t.findAxisModel("angleAxis");tA(n,o),tA(a,r),function(t,e,i){var n=e.get("center"),a=i.getWidth(),o=i.getHeight();t.cx=xl(n[0],a),t.cy=xl(n[1],o);var r=t.getRadiusAxis(),s=Math.min(a,o)/2,l=e.get("radius");null==l?l=[0,"100%"]:k(l)||(l=[0,l]),l=[xl(l[0],s),xl(l[1],s)],r.inverse?r.setExtent(l[1],l[0]):r.setExtent(l[0],l[1])}(i,t,s),l.push(i),(t.coordinateSystem=i).model=t}),i.eachSeries(function(t){if("polar"===t.get("coordinateSystem")){var e=i.queryComponents({mainType:"polar",index:t.get("polarIndex"),id:t.get("polarId")})[0];t.coordinateSystem=e.coordinateSystem}}),l}});var eA=["axisLine","axisLabel","axisTick","splitLine","splitArea"];function iA(t,e,i){e[1]>e[0]&&(e=e.slice().reverse());var n=t.coordToPoint([e[0],i]),a=t.coordToPoint([e[1],i]);return{x1:n[0],y1:n[1],x2:a[0],y2:a[1]}}function nA(t){return t.getRadiusAxis().inverse?0:1}function aA(t){var e=t[0],i=t[t.length-1];e&&i&&Math.abs(Math.abs(e.coord-i.coord)-360)<1e-4&&t.pop()}Um.extend({type:"angleAxis",axisPointerClass:"PolarAxisPointer",render:function(e,t){if(this.group.removeAll(),e.get("show")){var i=e.axis,n=i.polar,a=n.getRadiusAxis().getExtent(),o=i.getTicksCoords(),r=N(i.getViewLabels(),function(t){return(t=D(t)).coord=i.dataToCoord(t.tickValue),t});aA(r),aA(o),E(eA,function(t){!e.get(t+".show")||i.scale.isBlank()&&"axisLine"!==t||this["_"+t](e,n,o,a,r)},this)}},_axisLine:function(t,e,i,n){var a,o=t.getModel("axisLine.lineStyle"),r=nA(e),s=r?0:1;(a=0===n[s]?new Lr({shape:{cx:e.cx,cy:e.cy,r:n[r]},style:o.getLineStyle(),z2:1,silent:!0}):new Nr({shape:{cx:e.cx,cy:e.cy,r:n[r],r0:n[s]},style:o.getLineStyle(),z2:1,silent:!0})).style.fill=null,this.group.add(a)},_axisTick:function(t,e,i,n){var a=t.getModel("axisTick"),o=(a.get("inside")?-1:1)*a.get("length"),r=n[nA(e)],s=N(i,function(t){return new Ur({shape:iA(e,[r,r+o],t.coord)})});this.group.add(ys(s,{style:C(a.getModel("lineStyle").getLineStyle(),{stroke:t.get("axisLine.lineStyle.color")})}))},_axisLabel:function(c,d,t,f,e){var p=c.getCategories(!0),g=c.getModel("axisLabel"),m=g.get("margin"),v=c.get("triggerEvent");E(e,function(t,e){var i=g,n=t.tickValue,a=f[nA(d)],o=d.coordToPoint([a+m,t.coord]),r=d.cx,s=d.cy,l=Math.abs(o[0]-r)/a<.3?"center":o[0]>r?"left":"right",u=Math.abs(o[1]-s)/a<.3?"middle":o[1]>s?"top":"bottom";p&&p[n]&&p[n].textStyle&&(i=new dl(p[n].textStyle,g,g.ecModel));var h=new Dr({silent:Cm.isLabelSilent(c)});this.group.add(h),Gs(h.style,i,{x:o[0],y:o[1],textFill:i.getTextColor()||c.get("axisLine.lineStyle.color"),text:t.formattedLabel,textAlign:l,textVerticalAlign:u}),v&&(h.eventData=Cm.makeAxisEventDataBase(c),h.eventData.targetType="axisLabel",h.eventData.value=t.rawLabel)},this)},_splitLine:function(t,e,i,n){var a=t.getModel("splitLine").getModel("lineStyle"),o=a.get("color"),r=0;o=o instanceof Array?o:[o];for(var s=[],l=0;lm?"left":"right",h=Math.abs(l[1]-v)/g<.3?"middle":l[1]>v?"top":"bottom"}return{position:l,align:u,verticalAlign:h}}(e,i,0,s,d))}});var lA={line:function(t,e,i,n,a){return"angle"===t.dim?{type:"Line",shape:KM(e.coordToPoint([n[0],i]),e.coordToPoint([n[1],i]))}:{type:"Circle",shape:{cx:e.cx,cy:e.cy,r:i}}},shadow:function(t,e,i,n,a){var o=Math.max(1,t.getBandWidth()),r=Math.PI/180;return"angle"===t.dim?{type:"Sector",shape:JM(e.cx,e.cy,n[0],n[1],(-i-o/2)*r,(o/2-i)*r)}:{type:"Sector",shape:JM(e.cx,e.cy,i-o/2,i+o/2,0,2*Math.PI)}}};function uA(n,t){t.update="updateView",tf(t,function(t,e){var i={};return e.eachComponent({mainType:"geo",query:t},function(e){e[n](t.name),E(e.coordinateSystem.regions,function(t){i[t.name]=e.isSelected(t.name)||!1})}),{selected:i,name:t.name}})}Um.registerAxisPointerClass("PolarAxisPointer",sA),nf(A(function(t,e,i){var N={},O=function(t){var g={};E(t,function(t,e){var i=t.getData(),n=t.coordinateSystem,a=n.getBaseAxis(),o=UI(n,a),r=a.getExtent(),s="category"===a.type?a.getBandWidth():Math.abs(r[1]-r[0])/i.count(),l=g[o]||{bandWidth:s,remainedWidth:s,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},u=l.stacks;g[o]=l;var h=ZI(t);u[h]||l.autoWidthCount++,u[h]=u[h]||{width:0,maxWidth:0};var c=xl(t.get("barWidth"),s),d=xl(t.get("barMaxWidth"),s),f=t.get("barGap"),p=t.get("barCategoryGap");c&&!u[h].width&&(c=Math.min(l.remainedWidth,c),u[h].width=c,l.remainedWidth-=c),d&&(u[h].maxWidth=d),null!=f&&(l.gap=f),null!=p&&(l.categoryGap=p)});var d={};return E(g,function(t,i){d[i]={};var e=t.stacks,n=t.bandWidth,a=xl(t.categoryGap,n),o=xl(t.gap,1),r=t.remainedWidth,s=t.autoWidthCount,l=(r-a)/(s+(s-1)*o);l=Math.max(l,0),E(e,function(t,e){var i=t.maxWidth;i&&i=n.start.time&&i.timeo.end.time&&t.reverse(),t},_getRangeInfo:function(t){var e;(t=[this.getDateInfo(t[0]),this.getDateInfo(t[1])])[0].time>t[1].time&&(e=!0,t.reverse());var i=Math.floor(t[1].time/864e5)-Math.floor(t[0].time/864e5)+1,n=new Date(t[0].time),a=n.getDate(),o=t[1].date.getDate();if(n.setDate(a+i-1),n.getDate()!==o)for(var r=0n.weeks||0===t&&en.lweek)return!1;var a=7*(t-1)-n.fweek+e,o=new Date(n.start.time);return o.setDate(n.start.d+a),this.getDateInfo(o)}},hA.dimensions=hA.prototype.dimensions,hA.getDimensionsInfo=hA.prototype.getDimensionsInfo,hA.create=function(i,n){var a=[];return i.eachComponent("calendar",function(t){var e=new hA(t,i,n);a.push(e),t.coordinateSystem=e}),i.eachSeries(function(t){"calendar"===t.get("coordinateSystem")&&(t.coordinateSystem=a[t.get("calendarIndex")||0])}),a},Hu.register("calendar",hA);var dA=fu.extend({type:"calendar",coordinateSystem:null,defaultOption:{zlevel:0,z:2,left:80,top:60,cellSize:20,orient:"horizontal",splitLine:{show:!0,lineStyle:{color:"#000",width:1,type:"solid"}},itemStyle:{color:"#fff",borderWidth:1,borderColor:"#ccc"},dayLabel:{show:!0,firstDay:0,position:"start",margin:"50%",nameMap:"en",color:"#000"},monthLabel:{show:!0,position:"start",margin:5,align:"center",nameMap:"en",formatter:null,color:"#000"},yearLabel:{show:!0,position:null,margin:30,formatter:null,color:"#ccc",fontFamily:"sans-serif",fontWeight:"bolder",fontSize:20}},init:function(t,e,i,n){var a=su(t);dA.superApply(this,"init",arguments),fA(t,a)},mergeOption:function(t,e){dA.superApply(this,"mergeOption",arguments),fA(this.option,t)}});function fA(t,e){var i=t.cellSize;k(i)?1===i.length&&(i[1]=i[0]):i=t.cellSize=[i,i];var n=N([0,1],function(t){return function(t,e){return null!=t[eu[e][0]]||null!=t[eu[e][1]]&&null!=t[eu[e][2]]}(e,t)&&(i[t]="auto"),null!=i[t]&&"auto"!==i[t]});ru(t,e,{type:"box",ignoreSize:n})}var pA={EN:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],CN:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},gA={EN:["S","M","T","W","T","F","S"],CN:["日","一","二","三","四","五","六"]};lf({type:"calendar",_tlpoints:null,_blpoints:null,_firstDayOfMonth:null,_firstDayPoints:null,render:function(t,e,i){var n=this.group;n.removeAll();var a=t.coordinateSystem,o=a.getRangeInfo(),r=a.getOrient();this._renderDayRect(t,o,n),this._renderLines(t,o,r,n),this._renderYearText(t,o,r,n),this._renderMonthText(t,r,n),this._renderWeekText(t,o,r,n)},_renderDayRect:function(t,e,i){for(var n=t.coordinateSystem,a=t.getModel("itemStyle").getItemStyle(),o=n.getCellWidth(),r=n.getCellHeight(),s=e.start.time;s<=e.end.time;s=n.getNextNDay(s,1).time){var l=n.dataToRect([s],!1).tl,u=new Hr({shape:{x:l[0],y:l[1],width:o,height:r},cursor:"default",style:a});i.add(u)}},_renderLines:function(i,t,n,a){var o=this,r=i.coordinateSystem,s=i.getModel("splitLine.lineStyle").getLineStyle(),l=i.get("splitLine.show"),e=s.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var u=t.start,h=0;u.time<=t.end.time;h++){d(u.formatedDate),0===h&&(u=r.getDateInfo(t.start.y+"-"+t.start.m));var c=u.date;c.setMonth(c.getMonth()+1),u=r.getDateInfo(c)}function d(t){o._firstDayOfMonth.push(r.getDateInfo(t)),o._firstDayPoints.push(r.dataToRect([t],!1).tl);var e=o._getLinePointsOfOneWeek(i,t,n);o._tlpoints.push(e[0]),o._blpoints.push(e[e.length-1]),l&&o._drawSplitline(e,s,a)}d(r.getNextNDay(t.end.time,1).formatedDate),l&&this._drawSplitline(o._getEdgesPoints(o._tlpoints,e,n),s,a),l&&this._drawSplitline(o._getEdgesPoints(o._blpoints,e,n),s,a)},_getEdgesPoints:function(t,e,i){var n=[t[0].slice(),t[t.length-1].slice()],a="horizontal"===i?0:1;return n[0][a]=n[0][a]-e/2,n[1][a]=n[1][a]+e/2,n},_drawSplitline:function(t,e,i){var n=new zr({z2:20,shape:{points:t},style:e});i.add(n)},_getLinePointsOfOneWeek:function(t,e,i){var n=t.coordinateSystem;e=n.getDateInfo(e);for(var a=[],o=0;o<7;o++){var r=n.getNextNDay(e.time,o),s=n.dataToRect([r.time],!1);a[2*r.day]=s.tl,a[2*r.day+1]=s["horizontal"===i?"bl":"tr"]}return a},_formatterLabel:function(t,e){return"string"==typeof t&&t?Xl(t,e):"function"==typeof t?t(e):e.nameMap},_yearTextPositionControl:function(t,e,i,n,a){e=e.slice();var o=["center","bottom"];"bottom"===n?(e[1]+=a,o=["center","top"]):"left"===n?e[0]-=a:"right"===n?(e[0]+=a,o=["center","top"]):e[1]-=a;var r=0;return"left"!==n&&"right"!==n||(r=Math.PI/2),{rotation:r,position:e,style:{textAlign:o[0],textVerticalAlign:o[1]}}},_renderYearText:function(t,e,i,n){var a=t.getModel("yearLabel");if(a.get("show")){var o=a.get("margin"),r=a.get("position");r=r||("horizontal"!==i?"top":"left");var s=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]],l=(s[0][0]+s[1][0])/2,u=(s[0][1]+s[1][1])/2,h="horizontal"===i?0:1,c={top:[l,s[h][1]],bottom:[l,s[1-h][1]],left:[s[1-h][0],u],right:[s[h][0],u]},d=e.start.y;+e.end.y>+e.start.y&&(d=d+"-"+e.end.y);var f=a.get("formatter"),p={start:e.start.y,end:e.end.y,nameMap:d},g=this._formatterLabel(f,p),m=new Dr({z2:30});Gs(m.style,a,{text:g}),m.attr(this._yearTextPositionControl(m,c[r],i,r,o)),n.add(m)}},_monthTextPositionControl:function(t,e,i,n,a){var o="left",r="top",s=t[0],l=t[1];return"horizontal"===i?(l+=a,e&&(o="center"),"start"===n&&(r="bottom")):(s+=a,e&&(r="middle"),"start"===n&&(o="right")),{x:s,y:l,textAlign:o,textVerticalAlign:r}},_renderMonthText:function(t,e,i){var n=t.getModel("monthLabel");if(n.get("show")){var a=n.get("nameMap"),o=n.get("margin"),r=n.get("position"),s=n.get("align"),l=[this._tlpoints,this._blpoints];R(a)&&(a=pA[a.toUpperCase()]||[]);var u="start"===r?0:1,h="horizontal"===e?0:1;o="start"===r?-o:o;for(var c="center"===s,d=0;dd.getHeight()&&(i.textPosition="top",o=!0);var r=o?-5-n.height:p+8;a+n.width/2>d.getWidth()?(i.textPosition=["100%",r],i.textAlign="right"):a-n.width/2<0&&(i.textPosition=[0,r],i.textAlign="left")}})}function t(t,e){var i,n=g[t],a=g[e],o=new dl(l[n],h,h.ecModel);if(n&&!a){if(function(t){return 0===t.indexOf("my")}(n))i={model:o,onclick:o.option.onclick,featureName:n};else{var r=SA(n);if(!r)return;i=new r(o,c,d)}u[n]=i}else{if(!(i=u[a]))return;i.model=o,i.ecModel=c,i.api=d}n||!a?o.get("show")&&!i.unusable?(function(a,o,t){var r=a.getModel("iconStyle"),s=a.getModel("emphasis.iconStyle"),e=o.getIcons?o.getIcons():a.get("icon"),l=a.get("title")||{};if("string"==typeof e){var i=e,n=l;l={},(e={})[t]=i,l[t]=n}var u=a.iconPaths={};E(e,function(t,e){var i=el(t,{},{x:-p/2,y:-p/2,width:p,height:p});i.setStyle(r.getItemStyle()),i.hoverStyle=s.getItemStyle(),i.setStyle({text:l[e],textAlign:s.get("textAlign"),textBorderRadius:s.get("textBorderRadius"),textPadding:s.get("textPadding"),textFill:null});var n=h.getModel("tooltip");n&&n.get("show")&&i.attr("tooltip",L({content:l[e],formatter:n.get("formatter",!0)||function(){return l[e]},formatterParams:{componentType:"toolbox",name:e,title:l[e],$vars:["name","title"]},position:n.get("position",!0)||"bottom"},n.option)),Os(i),h.get("showTitle")&&(i.__title=l[e],i.on("mouseover",function(){var t=s.getItemStyle(),e="vertical"===h.get("orient")?null==h.get("right")?"right":"left":null==h.get("bottom")?"bottom":"top";i.setStyle({textFill:s.get("textFill")||t.fill||t.stroke||"#000",textBackgroundColor:s.get("textBackgroundColor"),textPosition:s.get("textPosition")||e})}).on("mouseout",function(){i.setStyle({textFill:null,textBackgroundColor:null})})),i.trigger(a.get("iconStatus."+e)||"normal"),f.add(i),i.on("click",T(o.onclick,o,c,d,e)),u[e]=i})}(o,i,n),o.setIconStatus=function(t,e){var i=this.option,n=this.iconPaths;i.iconStatus=i.iconStatus||{},i.iconStatus[t]=e,n[t]&&n[t].trigger(e)},i.render&&i.render(o,c,d,s)):i.remove&&i.remove(c,d):i.dispose&&i.dispose(c,d)}},updateView:function(t,e,i,n){E(this._features,function(t){t.updateView&&t.updateView(t.model,e,i,n)})},remove:function(e,i){E(this._features,function(t){t.remove&&t.remove(e,i)}),this.group.removeAll()},dispose:function(e,i){E(this._features,function(t){t.dispose&&t.dispose(e,i)})}});var AA=gc.toolbox.saveAsImage;function TA(t){this.model=t}TA.defaultOption={show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:AA.title,type:"png",connectedBackgroundColor:"#fff",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:AA.lang.slice()},TA.prototype.unusable=!v.canvasSupported,TA.prototype.onclick=function(t,e){var i=this.model,n=i.get("name")||t.get("title.0.text")||"echarts",a=i.get("type",!0)||"png",o=e.getConnectedDataURL({type:a,backgroundColor:i.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",connectedBackgroundColor:i.get("connectedBackgroundColor"),excludeComponents:i.get("excludeComponents"),pixelRatio:i.get("pixelRatio")});if("function"!=typeof MouseEvent||v.browser.ie||v.browser.edge)if(window.navigator.msSaveOrOpenBlob){for(var r=atob(o.split(",")[1]),s=r.length,l=new Uint8Array(s);s--;)l[s]=r.charCodeAt(s);var u=new Blob([l]);window.navigator.msSaveOrOpenBlob(u,n+"."+a)}else{var h=i.get("lang"),c='';window.open().document.write(c)}else{var d=document.createElement("a");d.download=n+"."+a,d.target="_blank",d.href=o;var f=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});d.dispatchEvent(f)}},bA("saveAsImage",TA);var DA=gc.toolbox.magicType;function CA(t){this.model=t}CA.defaultOption={show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z",tiled:"M2.3,2.2h22.8V25H2.3V2.2z M35,2.2h22.8V25H35V2.2zM2.3,35h22.8v22.8H2.3V35z M35,35h22.8v22.8H35V35z"},title:D(DA.title),option:{},seriesIndex:{}};var LA=CA.prototype;LA.getIcons=function(){var t=this.model,e=t.get("icon"),i={};return E(t.get("type"),function(t){e[t]&&(i[t]=e[t])}),i};var kA={line:function(t,e,i,n){if("bar"===t)return m({id:e,type:"line",data:i.get("data"),stack:i.get("stack"),markPoint:i.get("markPoint"),markLine:i.get("markLine")},n.get("option.line")||{},!0)},bar:function(t,e,i,n){if("line"===t)return m({id:e,type:"bar",data:i.get("data"),stack:i.get("stack"),markPoint:i.get("markPoint"),markLine:i.get("markLine")},n.get("option.bar")||{},!0)},stack:function(t,e,i,n){if("line"===t||"bar"===t)return m({id:e,stack:"__ec_magicType_stack__"},n.get("option.stack")||{},!0)},tiled:function(t,e,i,n){if("line"===t||"bar"===t)return m({id:e,stack:""},n.get("option.tiled")||{},!0)}},PA=[["line","bar"],["stack","tiled"]];LA.onclick=function(u,t,h){var c=this.model,e=c.get("seriesIndex."+h);if(kA[h]){var d={series:[]};E(PA,function(t){0<=_(t,h)&&E(t,function(t){c.setIconStatus(t,"normal")})}),c.setIconStatus(h,"emphasis"),u.eachComponent({mainType:"series",query:null==e?null:{seriesIndex:e}},function(t){var e=t.subType,i=t.id,n=kA[h](e,i,t,c);n&&(C(n,t.option),d.series.push(n));var a=t.coordinateSystem;if(a&&"cartesian2d"===a.type&&("line"===h||"bar"===h)){var o=a.getAxesByScale("ordinal")[0];if(o){var r=o.dim+"Axis",s=u.queryComponents({mainType:r,index:t.get(name+"Index"),id:t.get(name+"Id")})[0].componentIndex;d[r]=d[r]||[];for(var l=0;l<=s;l++)d[r][s]=d[r][s]||{};d[r][s].boundaryGap="bar"===h}}}),t.dispatchAction({type:"changeMagicType",currentType:h,newOption:d})}},tf({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(t,e){e.mergeOption(t.newOption)}),bA("magicType",CA);var NA=gc.toolbox.dataView,OA=new Array(60).join("-"),EA="\t";function RA(t){var e=function(t){var a={},o=[],r=[];return t.eachRawSeries(function(t){var e=t.coordinateSystem;if(!e||"cartesian2d"!==e.type&&"polar"!==e.type)o.push(t);else{var i=e.getBaseAxis();if("category"===i.type){var n=i.dim+"_"+i.index;a[n]||(a[n]={categoryAxis:i,valueAxis:e.getOtherAxis(i),series:[]},r.push({axisDim:i.dim,axisIndex:i.index})),a[n].series.push(t)}else o.push(t)}}),{seriesGroupByCategoryAxis:a,other:o,meta:r}}(t);return{value:M([function(t){var h=[];return E(t,function(t,e){var i=t.categoryAxis,n=t.valueAxis.dim,a=[" "].concat(N(t.series,function(t){return t.name})),o=[i.model.getCategories()];E(t.series,function(t){o.push(t.getRawData().mapArray(n,function(t){return t}))});for(var r=[a.join(EA)],s=0;st[1]&&t.reverse(),t}function qA(t,e){return Pa(t,e,{includeMainTypes:UA})}YA.setOutputRanges=function(t,e){this.matchOutputRanges(t,e,function(t,e,i){if((t.coordRanges||(t.coordRanges=[])).push(e),!t.coordRange){t.coordRange=e;var n=QA[t.brushType](0,i,e);t.__rangeOffset={offset:eT[t.brushType](n.values,t.range,[1,1]),xyMinMax:n.xyMinMax}}})},YA.matchOutputRanges=function(t,n,a){FA(t,function(i){var t=this.findTargetInfo(i,n);t&&!0!==t&&E(t.coordSyses,function(t){var e=QA[i.brushType](1,t,i.range);a(i,e.values,t,n)})},this)},YA.setInputRanges=function(t,a){FA(t,function(t){var e=this.findTargetInfo(t,a);if(t.range=t.range||[],e&&!0!==e){t.panelId=e.panelId;var i=QA[t.brushType](0,e.coordSys,t.coordRange),n=t.__rangeOffset;t.range=n?eT[t.brushType](i.values,n.offset,function(t,e){var i=nT(t),n=nT(e),a=[i[0]/n[0],i[1]/n[1]];return isNaN(a[0])&&(a[0]=1),isNaN(a[1])&&(a[1]=1),a}(i.xyMinMax,n.xyMinMax)):i.values}},this)},YA.makePanelOpts=function(i,n){return N(this._targetInfoList,function(t){var e=t.getPanelRect();return{panelId:t.panelId,defaultBrushType:n&&n(t),clipPath:Mb(e),isTargetByCursor:Ab(e,i,t.coordSysModel),getLinearBrushOtherExtent:Ib(e)}})},YA.controlSeries=function(t,e,i){var n=this.findTargetInfo(t,i);return!0===n||n&&0<=WA(n.coordSyses,e.coordinateSystem)},YA.findTargetInfo=function(t,e){for(var i=this._targetInfoList,n=qA(e,t),a=0;an[1]&&(n[1]=e[1])})}),n[1]c[1];if(r&&!s&&!l)return!0;r&&(n=!0),s&&(e=!0),l&&(i=!0)}return n&&e&&i}):gT(h,function(t){if("empty"===a)i.setData(u=u.map(t,function(t){return function(t){return t>=c[0]&&t<=c[1]}(t)?t:NaN}));else{var e={};e[t]=c,u.selectRange(e)}}),gT(h,function(t){u.setApproximateExtent(c,t)}))})}}};var yT=E,xT=dT,_T=sf({type:"dataZoom",dependencies:["xAxis","yAxis","zAxis","radiusAxis","angleAxis","singleAxis","series"],defaultOption:{zlevel:0,z:4,orient:null,xAxisIndex:null,yAxisIndex:null,filterMode:"filter",throttle:null,start:0,end:100,startValue:null,endValue:null,minSpan:null,maxSpan:null,minValueSpan:null,maxValueSpan:null,rangeMode:null},init:function(t,e,i){this._dataIntervalByAxis={},this._dataInfo={},this._axisProxies={},this.textStyleModel,this._autoThrottle=!0,this._rangePropMode=["percent","percent"];var n=wT(t);this.settledOption=n,this.mergeDefaultAndTheme(t,i),this.doInit(n)},mergeOption:function(t){var e=wT(t);m(this.option,t,!0),m(this.settledOption,e,!0),this.doInit(e)},doInit:function(t){var i=this.option;v.canvasSupported||(i.realtime=!1),this._setDefaultThrottle(t),bT(this,t);var n=this.settledOption;yT([["start","startValue"],["end","endValue"]],function(t,e){"value"===this._rangePropMode[e]&&(i[t[0]]=n[t[0]]=null)},this),this.textStyleModel=this.getModel("textStyle"),this._resetTarget(),this._giveAxisProxies()},_giveAxisProxies:function(){var r=this._axisProxies;this.eachTargetAxis(function(t,e,i,n){var a=this.dependentModels[t.axis][e],o=a.__dzAxisProxy||(a.__dzAxisProxy=new pT(t.name,e,this,n));r[t.name+"_"+e]=o},this)},_resetTarget:function(){var i=this.option,t=this._judgeAutoMode();xT(function(t){var e=t.axisIndex;i[e]=wa(i[e])},this),"axisIndex"===t?this._autoSetAxisIndex():"orient"===t&&this._autoSetOrient()},_judgeAutoMode:function(){var e=this.option,i=!1;xT(function(t){null!=e[t.axisIndex]&&(i=!0)},this);var t=e.orient;return null==t&&i?"orient":i?void 0:(null==t&&(e.orient="horizontal"),"axisIndex")},_autoSetAxisIndex:function(){var o=!0,e=this.get("orient",!0),r=this.option,t=this.dependentModels;if(o){var i="vertical"===e?"y":"x";t[i+"Axis"].length?(r[i+"AxisIndex"]=[0],o=!1):yT(t.singleAxis,function(t){o&&t.get("orient",!0)===e&&(r.singleAxisIndex=[t.componentIndex],o=!1)})}o&&xT(function(t){if(o){var e=[],i=this.dependentModels[t.axis];if(i.length&&!e.length)for(var n=0,a=i.length;ne[0][1]&&(e[0][1]=o[0]),o[1]e[1][1]&&(e[1][1]=o[1])}return e&&sD(e)}};function sD(t){return new bi(t[0][0],t[1][0],t[0][1]-t[0][0],t[1][1]-t[1][0])}var lD=["#ddd"];sf({type:"brush",dependencies:["geo","grid","xAxis","yAxis","parallel","series"],defaultOption:{toolbox:null,brushLink:null,seriesIndex:"all",geoIndex:null,xAxisIndex:null,yAxisIndex:null,brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:"rgba(120,140,180,0.3)",borderColor:"rgba(120,140,180,0.8)"},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0,z:1e4},areas:[],brushType:null,brushOption:{},coordInfoList:[],optionUpdated:function(t,e){var i=this.option;e||qT(i,t,["inBrush","outOfBrush"]);var n=i.inBrush=i.inBrush||{};i.outOfBrush=i.outOfBrush||{color:lD},n.hasOwnProperty("liftZ")||(n.liftZ=5)},setAreas:function(t){t&&(this.areas=N(t,function(t){return uD(this.option,t)},this))},setBrushOption:function(t){this.brushOption=uD(this.option,t),this.brushType=this.brushOption.brushType}});function uD(t,e){return m({brushType:t.brushType,brushMode:t.brushMode,transformable:t.transformable,brushStyle:new dl(t.brushStyle).getItemStyle(),removeOnClick:t.removeOnClick,z:t.z},e,!0)}function hD(t,e,i,n){n&&n.$from===t.id||this._brushController.setPanels(t.brushTargetManager.makePanelOpts(i)).enableBrush(t.brushOption).updateCovers(t.areas.slice())}lf({type:"brush",init:function(t,e){this.ecModel=t,this.api=e,this.model,(this._brushController=new jw(e.getZr())).on("brush",T(this._onBrush,this)).mount()},render:function(t){return this.model=t,hD.apply(this,arguments)},updateTransform:hD,updateView:hD,dispose:function(){this._brushController.dispose()},_onBrush:function(t,e){var i=this.model.id;this.model.brushTargetManager.setOutputRanges(t,this.ecModel),e.isEnd&&!e.removeOnClick||this.api.dispatchAction({type:"brush",brushId:i,areas:D(t),$from:i}),e.isEnd&&this.api.dispatchAction({type:"brushEnd",brushId:i,areas:D(t),$from:i})}}),tf({type:"brush",event:"brush"},function(e,t){t.eachComponent({mainType:"brush",query:e},function(t){t.setAreas(e.areas)})}),tf({type:"brushSelect",event:"brushSelected",update:"none"},function(){}),tf({type:"brushEnd",event:"brushEnd",update:"none"},function(){});var cD=gc.toolbox.brush;function dD(t,e,i){this.model=t,this.ecModel=e,this.api=i,this._brushType,this._brushMode}dD.defaultOption={show:!0,type:["rect","polygon","lineX","lineY","keep","clear"],icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:D(cD.title)};var fD=dD.prototype;fD.render=fD.updateView=function(e,t,i){var n,a,o;t.eachComponent({mainType:"brush"},function(t){n=t.brushType,a=t.brushOption.brushMode||"single",o|=t.areas.length}),this._brushType=n,this._brushMode=a,E(e.get("type",!0),function(t){e.setIconStatus(t,("keep"===t?"multiple"===a:"clear"===t?o:t===n)?"emphasis":"normal")})},fD.getIcons=function(){var t=this.model,e=t.get("icon",!0),i={};return E(t.get("type",!0),function(t){e[t]&&(i[t]=e[t])}),i},fD.onclick=function(t,e,i){var n=this._brushType,a=this._brushMode;"clear"===i?(e.dispatchAction({type:"axisAreaSelect",intervals:[]}),e.dispatchAction({type:"brush",command:"clear",areas:[]})):e.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:"keep"===i?n:n!==i&&i,brushMode:"keep"===i?"multiple"===a?"single":"multiple":a}})},bA("brush",dD),Jd(function(t,e){var i=t&&t.brush;if(k(i)||(i=i?[i]:[]),i.length){var n=[];E(i,function(t){var e=t.hasOwnProperty("toolbox")?t.toolbox:[];e instanceof Array&&(n=n.concat(e))});var a=t&&t.toolbox;k(a)&&(a=a[0]),a||(a={feature:{}},t.toolbox=[a]);var o=a.feature||(a.feature={}),r=o.brush||(o.brush={}),s=r.type||(r.type=[]);s.push.apply(s,n),function(i){var e={};E(i,function(t){e[t]=1}),i.length=0,E(e,function(t,e){i.push(e)})}(s),e&&!s.length&&s.push.apply(s,UT)}}),sf({type:"title",layoutMode:{type:"box",ignoreSize:!0},defaultOption:{zlevel:0,z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bolder",color:"#333"},subtextStyle:{color:"#aaa"}}}),lf({type:"title",render:function(t,e,i){if(this.group.removeAll(),t.get("show")){var n=this.group,a=t.getModel("textStyle"),o=t.getModel("subtextStyle"),r=t.get("textAlign"),s=H(t.get("textBaseline"),t.get("textVerticalAlign")),l=new Dr({style:Gs({},a,{text:t.get("text"),textFill:a.getTextColor()},{disableBox:!0}),z2:10}),u=l.getBoundingRect(),h=t.get("subtext"),c=new Dr({style:Gs({},o,{text:h,textFill:o.getTextColor(),y:u.height+t.get("itemGap"),textVerticalAlign:"top"},{disableBox:!0}),z2:10}),d=t.get("link"),f=t.get("sublink"),p=t.get("triggerEvent",!0);l.silent=!d&&!p,c.silent=!f&&!p,d&&l.on("click",function(){window.open(d,"_"+t.get("target"))}),f&&c.on("click",function(){window.open(f,"_"+t.get("subtarget"))}),l.eventData=c.eventData=p?{componentType:"title",componentIndex:t.componentIndex}:null,n.add(l),h&&n.add(c);var g=n.getBoundingRect(),m=t.getBoxLayoutParams();m.width=g.width,m.height=g.height;var v=au(m,{width:i.getWidth(),height:i.getHeight()},t.get("padding"));r||("middle"===(r=t.get("left")||t.get("right"))&&(r="center"),"right"===r?v.x+=v.width:"center"===r&&(v.x+=v.width/2)),s||("center"===(s=t.get("top")||t.get("bottom"))&&(s="middle"),"bottom"===s?v.y+=v.height:"middle"===s&&(v.y+=v.height/2),s=s||"top"),n.attr("position",[v.x,v.y]);var y={textAlign:r,textVerticalAlign:s};l.setStyle(y),c.setStyle(y),g=n.getBoundingRect();var x=v.margin,_=t.getItemStyle(["color","opacity"]);_.fill=t.get("backgroundColor");var w=new Hr({shape:{x:g.x-x[3],y:g.y-x[0],width:g.width+x[1]+x[3],height:g.height+x[0]+x[2],r:t.get("borderRadius")},style:_,subPixelOptimize:!0,silent:!0});n.add(w)}}});function pD(t){var e=t.itemStyle||(t.itemStyle={}),i=e.emphasis||(e.emphasis={}),n=t.label||t.label||{},a=n.normal||(n.normal={}),o={normal:1,emphasis:1};E(n,function(t,e){o[e]||gD(a,e)||(a[e]=t)}),i.label&&!gD(n,"emphasis")&&(n.emphasis=i.label,delete i.label)}function gD(t,e){return t.hasOwnProperty(e)}fu.registerSubTypeDefaulter("timeline",function(){return"slider"}),tf({type:"timelineChange",event:"timelineChanged",update:"prepareAndUpdate"},function(t,e){var i=e.getComponent("timeline");return i&&null!=t.currentIndex&&(i.setCurrentIndex(t.currentIndex),!i.get("loop",!0)&&i.isIndexMax()&&i.setPlayState(!1)),e.resetOption("timeline"),C({currentIndex:i.option.currentIndex},t)}),tf({type:"timelinePlayChange",event:"timelinePlayChanged",update:"update"},function(t,e){var i=e.getComponent("timeline");i&&null!=t.playState&&i.setPlayState(t.playState)});var mD=fu.extend({type:"timeline",layoutMode:"box",defaultOption:{zlevel:0,z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},init:function(t,e,i){this._data,this._names,this.mergeDefaultAndTheme(t,i),this._initData()},mergeOption:function(t){mD.superApply(this,"mergeOption",arguments),this._initData()},setCurrentIndex:function(t){null==t&&(t=this.option.currentIndex);var e=this._data.count();this.option.loop?t=(t%e+e)%e:(e<=t&&(t=e-1),t<0&&(t=0)),this.option.currentIndex=t},getCurrentIndex:function(){return this.option.currentIndex},isIndexMax:function(){return this.getCurrentIndex()>=this._data.count()-1},setPlayState:function(t){this.option.autoPlay=!!t},getPlayState:function(){return!!this.option.autoPlay},_initData:function(){var t=this.option,e=t.data||[],i=t.axisType,a=this._names=[];if("category"===i){var o=[];E(e,function(t,e){var i,n=Ma(t);z(t)?(i=D(t)).value=e:i=e,o.push(i),R(n)||null!=n&&!isNaN(n)||(n=""),a.push(n+"")}),e=o}var n={category:"ordinal",time:"time"}[i]||"number";(this._data=new Tf([{name:"value",type:n}],this)).initData(e,a)},getData:function(){return this._data},getCategories:function(){if("category"===this.get("axisType"))return this._names.slice()}});b(mD.extend({type:"timeline.slider",defaultOption:{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"emptyCircle",symbolSize:10,lineStyle:{show:!0,width:2,color:"#304654"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#304654"},itemStyle:{color:"#304654",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:13,color:"#c23531",borderWidth:5,borderColor:"rgba(194,53,49, 0.5)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:22,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"path://M18.6,50.8l22.5-22.5c0.2-0.2,0.3-0.4,0.3-0.7c0-0.3-0.1-0.5-0.3-0.7L18.7,4.4c-0.1-0.1-0.2-0.3-0.2-0.5 c0-0.4,0.3-0.8,0.8-0.8c0.2,0,0.5,0.1,0.6,0.3l23.5,23.5l0,0c0.2,0.2,0.3,0.4,0.3,0.7c0,0.3-0.1,0.5-0.3,0.7l-0.1,0.1L19.7,52 c-0.1,0.1-0.3,0.2-0.5,0.2c-0.4,0-0.8-0.3-0.8-0.8C18.4,51.2,18.5,51,18.6,50.8z",prevIcon:"path://M43,52.8L20.4,30.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7L42.9,6.4c0.1-0.1,0.2-0.3,0.2-0.5 c0-0.4-0.3-0.8-0.8-0.8c-0.2,0-0.5,0.1-0.6,0.3L18.3,28.8l0,0c-0.2,0.2-0.3,0.4-0.3,0.7c0,0.3,0.1,0.5,0.3,0.7l0.1,0.1L41.9,54 c0.1,0.1,0.3,0.2,0.5,0.2c0.4,0,0.8-0.3,0.8-0.8C43.2,53.2,43.1,53,43,52.8z",color:"#304654",borderColor:"#304654",borderWidth:1},emphasis:{label:{show:!0,color:"#c23531"},itemStyle:{color:"#c23531"},controlStyle:{color:"#c23531",borderColor:"#c23531",borderWidth:2}},data:[]}}),Th);function vD(t,e,i,n){vg.call(this,t,e,i),this.type=n||"value",this.model=null}var yD=Kh.extend({type:"timeline"});vD.prototype={constructor:vD,getLabelModel:function(){return this.model.getModel("label")},isHorizontal:function(){return"horizontal"===this.model.get("orient")}},w(vD,vg);var xD=T,_D=E,wD=Math.PI;function bD(t,e,i,n,a,o){var r=e.get("color");a?(a.setColor(r),i.add(a),o&&o.onUpdate(a)):((a=Jp(t.get("symbol"),-1,-1,2,2,r)).setStyle("strokeNoScale",!0),i.add(a),o&&o.onCreate(a));var s=e.getItemStyle(["color","symbol","symbolSize"]);a.setStyle(s),n=m({rectHover:!0,z2:100},n,!0);var l=t.get("symbolSize");(l=l instanceof Array?l.slice():[+l,+l])[0]/=2,l[1]/=2,n.scale=l;var u=t.get("symbolOffset");if(u){var h=n.position=n.position||[0,0];h[0]+=xl(u[0],l[0]),h[1]+=xl(u[1],l[1])}var c=t.get("symbolRotate");return n.rotation=(c||0)*Math.PI/180||0,a.attr(n),a.updateTransform(),a}function SD(t,e,i,n,a){if(!t.dragging){var o=n.getModel("checkpointStyle"),r=i.dataToCoord(n.getData().get(["value"],e));a||!o.get("animation",!0)?t.attr({position:[r,0]}):(t.stopAnimation(!0),t.animateTo({position:[r,0]},o.get("animationDuration",!0),o.get("animationEasing",!0)))}}yD.extend({type:"timeline.slider",init:function(t,e){this.api=e,this._axis,this._viewRect,this._timer,this._currentPointer,this._mainGroup,this._labelGroup},render:function(e,t,i,n){if(this.model=e,this.api=i,this.ecModel=t,this.group.removeAll(),e.get("show",!0)){var a=this._layout(e,i),o=this._createGroup("mainGroup"),r=this._createGroup("labelGroup"),s=this._axis=this._createAxis(a,e);e.formatTooltip=function(t){return Wl(s.scale.getLabel(t))},_D(["AxisLine","AxisTick","Control","CurrentPointer"],function(t){this["_render"+t](a,o,s,e)},this),this._renderAxisLabel(a,r,s,e),this._position(a,e)}this._doPlayStop()},remove:function(){this._clearTimer(),this.group.removeAll()},dispose:function(){this._clearTimer()},_layout:function(t,e){var i=t.get("label.position"),n=t.get("orient"),a=function(t,e){return au(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()},t.get("padding"))}(t,e);null==i||"auto"===i?i="horizontal"===n?a.y+a.height/2n[1]&&(i=n[1]),i"),a&&(o+=ID(a),null!=i&&(o+=" : ")),null!=i&&(o+=ID(n)),o},getData:function(){return this._data},setData:function(t){this._data=t}});b(TD,Th),TD.extend({type:"markPoint",defaultOption:{zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{show:!0,position:"inside"},itemStyle:{borderWidth:2},emphasis:{label:{show:!0}}}});var DD=_;function CD(t,e,i,n,a,o){var r=[],s=Zf(e,n)?e.getCalculationInfo("stackResultDimension"):n,l=RD(e,s,t),u=e.indicesOfNearest(s,l)[0];r[a]=e.get(i,u),r[o]=e.get(n,u);var h=bl(e.get(n,u));return 0<=(h=Math.min(h,20))&&(r[o]=+r[o].toFixed(h)),r}var LD=A,kD={min:LD(CD,"min"),max:LD(CD,"max"),average:LD(CD,"average")};function PD(t,e){var i=t.getData(),n=t.coordinateSystem;if(e&&!function(t){return!isNaN(parseFloat(t.x))&&!isNaN(parseFloat(t.y))}(e)&&!k(e.coord)&&n){var a=n.dimensions,o=ND(e,i,n,t);if((e=D(e)).type&&kD[e.type]&&o.baseAxis&&o.valueAxis){var r=DD(a,o.baseAxis.dim),s=DD(a,o.valueAxis.dim);e.coord=kD[e.type](i,o.baseDataDim,o.valueDataDim,r,s),e.value=e.coord[s]}else{for(var l=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],u=0;u<2;u++)kD[l[u]]&&(l[u]=RD(i,i.mapDimension(a[u]),l[u]));e.coord=l}}return e}function ND(t,e,i,n){var a={};return null!=t.valueIndex||null!=t.valueDim?(a.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,a.valueAxis=i.getAxis(function(t,e){var i=t.getData(),n=i.dimensions;e=i.getDimension(e);for(var a=0;ai[a],f=[-h.x,-h.y];e||(f[n]=s.position[n]);var p=[0,0],g=[-c.x,-c.y],m=H(t.get("pageButtonGap",!0),t.get("itemGap",!0));d&&("end"===t.get("pageButtonPosition",!0)?g[n]+=i[a]-c[a]:p[n]+=c[a]+m);g[1-n]+=h[o]/2-c[o]/2,s.attr("position",f),l.attr("position",p),u.attr("position",g);var v={x:0,y:0};if(v[a]=d?i[a]:h[a],v[o]=Math.max(h[o],c[o]),v[r]=Math.min(0,c[r]+g[1-n]),l.__rectSize=i[a],d){var y={x:0,y:0};y[a]=Math.max(i[a]-c[a]-m,0),y[o]=v[o],l.setClipPath(new Hr({shape:y})),l.__rectSize=y[a]}else u.eachChild(function(t){t.attr({invisible:!0,silent:!0})});var x=this._getPageInfo(t);return null!=x.pageIndex&&js(s,{position:x.contentPosition},d&&t),this._updatePageInfoView(t,x),v},_pageGo:function(t,e,i){var n=this._getPageInfo(e)[t];null!=n&&i.dispatchAction({type:"legendScroll",scrollDataIndex:n,legendId:e.id})},_updatePageInfoView:function(n,a){var o=this._controllerGroup;E(["pagePrev","pageNext"],function(t){var e=null!=a[t+"DataIndex"],i=o.childOfName(t);i&&(i.setStyle("fill",e?n.get("pageIconColor",!0):n.get("pageIconInactiveColor",!0)),i.cursor=e?"pointer":"default")});var t=o.childOfName("pageText"),e=n.get("pageFormatter"),i=a.pageIndex,r=null!=i?i+1:0,s=a.pageCount;t&&e&&t.setStyle("text",R(e)?e.replace("{current}",r).replace("{total}",s):e({current:r,total:s}))},_getPageInfo:function(t){var e=t.get("scrollDataIndex",!0),i=this.getContentGroup(),n=this._containerGroup.__rectSize,a=t.getOrient().index,o=cC[a],r=dC[a],s=this._findTargetItemIndex(e),l=i.children(),u=l[s],h=l.length,c=h?1:0,d={contentPosition:i.position.slice(),pageCount:c,pageIndex:c-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!u)return d;var f=y(u);d.contentPosition[a]=-f.s;for(var p=s+1,g=f,m=f,v=null;p<=h;++p)(!(v=y(l[p]))&&m.e>g.s+n||v&&!x(v,g.s))&&(g=m.i>g.i?m:v)&&(null==d.pageNextDataIndex&&(d.pageNextDataIndex=g.i),++d.pageCount),m=v;for(p=s-1,g=f,m=f,v=null;-1<=p;--p)(v=y(l[p]))&&x(m,v.s)||!(g.i=e&&t.s<=e+n}},_findTargetItemIndex:function(n){var a,o,t=this.getContentGroup();return this._showController&&t.eachChild(function(t,e){var i=t.__legendDataIndex;null==o&&null!=i&&(o=e),i===n&&(a=e)}),null!=a?a:o}});tf("legendScroll","legendscroll",function(t,e){var i=t.scrollDataIndex;null!=i&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},function(t){t.setScrollDataIndex(i)})});_T.extend({type:"dataZoom.slider",layoutMode:"box",defaultOption:{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#2f4554",width:.5,opacity:.3},areaStyle:{color:"rgba(47,69,84,0.3)",opacity:.3}},borderColor:"#ddd",fillerColor:"rgba(167,183,204,0.4)",handleIcon:"M8.2,13.6V3.9H6.3v9.7H3.1v14.9h3.3v9.7h1.8v-9.7h3.3V13.6H8.2z M9.7,24.4H4.8v-1.4h4.9V24.4z M9.7,19.1H4.8v-1.4h4.9V19.1z",handleSize:"100%",handleStyle:{color:"#a7b7cc"},labelPrecision:null,labelFormatter:null,showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#333"}}});var pC=Hr,gC=yl,mC=wl,vC=T,yC=E,xC="horizontal",_C="vertical",wC=["line","bar","candlestick","scatter"],bC=ST.extend({type:"dataZoom.slider",init:function(t,e){this._displayables={},this._orient,this._range,this._handleEnds,this._size,this._handleWidth,this._handleHeight,this._location,this._dragging,this._dataShadowInfo,this.api=e},render:function(t,e,i,n){bC.superApply(this,"render",arguments),dc(this,"_dispatchZoomAction",this.dataZoomModel.get("throttle"),"fixRate"),this._orient=t.get("orient"),!1!==this.dataZoomModel.get("show")?(n&&"dataZoom"===n.type&&n.from===this.uid||this._buildView(),this._updateView()):this.group.removeAll()},remove:function(){bC.superApply(this,"remove",arguments),fc(this,"_dispatchZoomAction")},dispose:function(){bC.superApply(this,"dispose",arguments),fc(this,"_dispatchZoomAction")},_buildView:function(){var t=this.group;t.removeAll(),this._resetLocation(),this._resetInterval();var e=this._displayables.barGroup=new Si;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(e),this._positionGroup()},_resetLocation:function(){var t=this.dataZoomModel,e=this.api,i=this._findCoordRect(),n={width:e.getWidth(),height:e.getHeight()},a=this._orient===xC?{right:n.width-i.x-i.width,top:n.height-30-7,width:i.width,height:30}:{right:7,top:i.y,width:30,height:i.height},o=su(t.option);E(["right","top","width","height"],function(t){"ph"===o[t]&&(o[t]=a[t])});var r=au(o,n,t.padding);this._location={x:r.x,y:r.y},this._size=[r.width,r.height],this._orient===_C&&this._size.reverse()},_positionGroup:function(){var t=this.group,e=this._location,i=this._orient,n=this.dataZoomModel.getFirstTargetAxisModel(),a=n&&n.get("inverse"),o=this._displayables.barGroup,r=(this._dataShadowInfo||{}).otherAxisInverse;o.attr(i!==xC||a?i===xC&&a?{scale:r?[-1,1]:[-1,-1]}:i!==_C||a?{scale:r?[-1,-1]:[-1,1],rotation:Math.PI/2}:{scale:r?[1,-1]:[1,1],rotation:Math.PI/2}:{scale:r?[1,1]:[1,-1]});var s=t.getBoundingRect([o]);t.attr("position",[e.x-s.x,e.y-s.y])},_getViewExtent:function(){return[0,this._size[0]]},_renderBackground:function(){var t=this.dataZoomModel,e=this._size,i=this._displayables.barGroup;i.add(new pC({silent:!0,shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:t.get("backgroundColor")},z2:-40})),i.add(new pC({shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:"transparent"},z2:0,onclick:T(this._onClickPanelClick,this)}))},_renderDataShadow:function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(t){var e=this._size,i=t.series,n=i.getRawData(),a=i.getShadowDim?i.getShadowDim():t.otherDim;if(null!=a){var o=n.getDataExtent(a),r=.3*(o[1]-o[0]);o=[o[0]-r,o[1]+r];var s,l=[0,e[1]],u=[0,e[0]],h=[[e[0],0],[0,0]],c=[],d=u[1]/(n.count()-1),f=0,p=Math.round(n.count()/e[0]);n.each([a],function(t,e){if(0e[0]||i[1]<0||i[1]>e[1])){var n=this._handleEnds,a=(n[0]+n[1])/2,o=this._updateInterval("all",i[0]-a);this._updateView(),o&&this._dispatchZoomAction()}},_dispatchZoomAction:function(){var t=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,start:t[0],end:t[1]})},_findCoordRect:function(){var i;if(yC(this.getTargetCoordInfo(),function(t){if(!i&&t.length){var e=t[0].model.coordinateSystem;i=e.getRect&&e.getRect()}}),!i){var t=this.api.getWidth(),e=this.api.getHeight();i={x:.2*t,y:.2*e,width:.6*t,height:.6*e}}return i}});function SC(t){return"vertical"===t?"ns-resize":"ew-resize"}_T.extend({type:"dataZoom.inside",defaultOption:{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}});var MC="\0_ec_dataZoom_roams";function IC(t,n){var e=TC(t),a=n.dataZoomId,o=n.coordId;E(e,function(t,e){var i=t.dataZoomInfos;i[a]&&_(n.allCoordIds,o)<0&&(delete i[a],t.count--)}),DC(e);var i=e[o];i||((i=e[o]={coordId:o,dataZoomInfos:{},count:0}).controller=function(t,r){var e=new uy(t.getZr());return E(["pan","zoom","scrollMove"],function(o){e.on(o,function(n){var a=[];E(r.dataZoomInfos,function(t){if(n.isAvailableBehavior(t.dataZoomModel.option)){var e=(t.getRange||{})[o],i=e&&e(r.controller,n);!t.dataZoomModel.get("disabled",!0)&&i&&a.push({dataZoomId:t.dataZoomId,start:i[0],end:i[1]})}}),a.length&&r.dispatchAction(a)})}),e}(t,i),i.dispatchAction=A(CC,t)),i.dataZoomInfos[a]||i.count++,i.dataZoomInfos[a]=n;var r=function(t){var n,a={type_true:2,type_move:1,type_false:0,type_undefined:-1},o=!0;return E(t,function(t){var e=t.dataZoomModel,i=!e.get("disabled",!0)&&(!e.get("zoomLock",!0)||"move");a["type_"+n]"],k(t)&&(t=t.slice(),n=!0),a=e?t:n?[u(t[0]),u(t[1])]:u(t),R(l)?l.replace("{value}",n?a[0]:a).replace("{value2}",n?a[1]:a):O(l)?n?l(t[0],t[1]):l(t):n?t[0]===s[0]?i[0]+" "+a[1]:t[1]===s[1]?i[1]+" "+a[0]:a[0]+" - "+a[1]:a;function u(t){return t===s[0]?"min":t===s[1]?"max":(+t).toFixed(Math.min(r,20))}},resetExtent:function(){var t=this.option,e=XC([t.min,t.max]);this._dataExtent=e},getDataDimension:function(t){var e=this.option.dimension,i=t.dimensions;if(null!=e||i.length){if(null!=e)return t.getDimension(e);for(var n=t.dimensions,a=n.length-1;0<=a;a--){var o=n[a];if(!t.getDimensionInfo(o).isCalculationCoord)return o}}},getExtent:function(){return this._dataExtent.slice()},completeVisualOption:function(){var t=this.ecModel,e=this.option,i={inRange:e.inRange,outOfRange:e.outOfRange},n=e.target||(e.target={}),a=e.controller||(e.controller={});m(n,i),m(a,i);var u=this.isCategory();function o(n){ZC(e.color)&&!n.inRange&&(n.inRange={color:e.color.slice().reverse()}),n.inRange=n.inRange||{color:t.get("gradientColor")},UC(this.stateList,function(t){var e=n[t];if(R(e)){var i=GC(e,"active",u);i?(n[t]={},n[t][e]=i):delete n[t]}},this)}o.call(this,n),o.call(this,a),function(t,e,i){var n=t[e],a=t[i];n&&!a&&(a=t[i]={},UC(n,function(t,e){if(Bx.isValidType(e)){var i=GC(e,"inactive",u);null!=i&&(a[e]=i,"color"!==e||a.hasOwnProperty("opacity")||a.hasOwnProperty("colorAlpha")||(a.opacity=[0,0]))}}))}.call(this,n,"inRange","outOfRange"),function(o){var r=(o.inRange||{}).symbol||(o.outOfRange||{}).symbol,s=(o.inRange||{}).symbolSize||(o.outOfRange||{}).symbolSize,l=this.get("inactiveColor");UC(this.stateList,function(t){var e=this.itemSize,i=o[t];null==(i=i||(o[t]={color:u?l:[l]})).symbol&&(i.symbol=r&&D(r)||(u?"roundRect":["roundRect"])),null==i.symbolSize&&(i.symbolSize=s&&D(s)||(u?e[0]:[e[0],e[0]])),i.symbol=WC(i.symbol,function(t){return"none"===t||"square"===t?"roundRect":t});var n=i.symbolSize;if(null!=n){var a=-1/0;HC(n,function(t){ae[1]&&e.reverse(),e[0]=Math.max(e[0],t[0]),e[1]=Math.min(e[1],t[1]))},completeVisualOption:function(){jC.prototype.completeVisualOption.apply(this,arguments),E(this.stateList,function(t){var e=this.option.controller[t].symbolSize;e&&e[0]!==e[1]&&(e[0]=0)},this)},setSelected:function(t){this.option.range=t.slice(),this._resetRange()},getSelected:function(){var t=this.getExtent(),e=wl((this.get("range")||[]).slice());return e[0]>t[1]&&(e[0]=t[1]),e[1]>t[1]&&(e[1]=t[1]),e[0]=i[1]||t<=e[1])?"inRange":"outOfRange"},findTargetDataIndices:function(n){var a=[];return this.eachTargetSeries(function(t){var i=[],e=t.getData();e.each(this.getDataDimension(e),function(t,e){n[0]<=t&&t<=n[1]&&i.push(e)},this),a.push({seriesId:t.id,dataIndex:i})},this),a},getVisualMeta:function(i){var t=$C(this,"outOfRange",this.getExtent()),e=$C(this,"inRange",this.option.range.slice()),n=[];function a(t,e){n.push({value:t,color:i(t,e)})}for(var o=0,r=0,s=e.length,l=t.length;rt[1])break;i.push({color:this.getControllerVisual(o,"color",e),offset:a/100})}return i.push({color:this.getControllerVisual(t[1],"color",e),offset:1}),i},_createBarPoints:function(t,e){var i=this.visualMapModel.itemSize;return[[i[0]-e[0],t[0]],[i[0],t[0]],[i[0],t[1]],[i[0]-e[1],t[1]]]},_createBarGroup:function(t){var e=this._orient,i=this.visualMapModel.get("inverse");return new Si("horizontal"!==e||i?"horizontal"===e&&i?{scale:"bottom"===t?[-1,1]:[1,1],rotation:-Math.PI/2}:"vertical"!==e||i?{scale:"left"===t?[1,1]:[-1,1]}:{scale:"left"===t?[1,-1]:[-1,-1]}:{scale:"bottom"===t?[1,1]:[-1,1],rotation:Math.PI/2})},_updateHandle:function(n,a){if(this._useHandle){var o=this._shapes,r=this.visualMapModel,s=o.handleThumbs,l=o.handleLabels;iL([0,1],function(t){var e=s[t];e.setStyle("fill",a.handlesColor[t]),e.position[1]=n[t];var i=$s(o.handleLabelPoints[t],Ks(e,this.group));l[t].setStyle({x:i[0],y:i[1],text:r.formatValueText(this._dataInterval[t]),textVerticalAlign:"middle",textAlign:this._applyTransform("horizontal"===this._orient?0===t?"bottom":"top":"left",o.barGroup)})},this)}},_showIndicator:function(t,e,i,n){var a=this.visualMapModel,o=a.getExtent(),r=a.itemSize,s=[0,r[1]],l=eL(t,o,s,!0),u=this._shapes,h=u.indicator;if(h){h.position[1]=l,h.attr("invisible",!1),h.setShape("points",function(t,e,i,n){return t?[[0,-nL(e,aL(i,0))],[6,0],[0,nL(e,aL(n-i,0))]]:[[0,0],[5,-5],[5,5]]}(!!i,n,l,r[1]));var c=this.getControllerVisual(t,"color",{convertOpacityToAlpha:!0});h.setStyle("fill",c);var d=$s(u.indicatorLabelPoint,Ks(h,this.group)),f=u.indicatorLabel;f.attr("invisible",!1);var p=this._applyTransform("left",u.barGroup),g=this._orient;f.setStyle({text:(i||"")+a.formatValueText(e),textVerticalAlign:"horizontal"===g?p:"middle",textAlign:"horizontal"===g?"center":p,x:d[0],y:d[1]})}},_enableHoverLinkToSeries:function(){var n=this;this._shapes.barGroup.on("mousemove",function(t){if(n._hovering=!0,!n._dragging){var e=n.visualMapModel.itemSize,i=n._applyTransform([t.offsetX,t.offsetY],n._shapes.barGroup,!0,!0);i[1]=nL(aL(0,i[1]),e[1]),n._doHoverLinkToSeries(i[1],0<=i[0]&&i[0]<=e[0])}}).on("mouseout",function(){n._hovering=!1,n._dragging||n._clearHoverLinkToSeries()})},_enableHoverLinkFromSeries:function(){var t=this.api.getZr();this.visualMapModel.option.hoverLink?(t.on("mouseover",this._hoverLinkFromSeriesMouseOver,this),t.on("mouseout",this._hideIndicator,this)):this._clearHoverLinkFromSeries()},_doHoverLinkToSeries:function(t,e){var i=this.visualMapModel,n=i.itemSize;if(i.option.hoverLink){var a=[0,n[1]],o=i.getExtent();t=nL(aL(a[0],t),a[1]);var r=function(t,e,i){var n=6,a=t.get("hoverLinkDataSize");a&&(n=eL(a,e,i,!0)/2);return n}(i,o,a),s=[t-r,t+r],l=eL(t,a,o,!0),u=[eL(s[0],a,o,!0),eL(s[1],a,o,!0)];s[0] ",r):this._showIndicator(l,l,"≈ ",r));var h=this._hoverLinkDataIndices,c=[];(e||sL(i))&&(c=this._hoverLinkDataIndices=i.findTargetDataIndices(u));var d=function(t,e){var i={},n={};return a(t||[],i),a(e||[],n,i),[o(i),o(n)];function a(t,e,i){for(var n=0,a=t.length;ni&&n([i,e[0]],"outOfRange"),n(e.slice()),i=e[1])},this),{stops:o,outerColors:r}}function n(t,e){var i=s.getRepresentValue({interval:t});e=e||s.getValueState(i);var n=a(i,e);t[0]===-1/0?r[0]=n:t[1]===1/0?r[1]=n:o.push({value:t[0],color:n},{value:t[1],color:n})}}}),hL={splitNumber:function(){var t=this.option,e=this._pieceList,i=Math.min(t.precision,20),n=this.getExtent(),a=t.splitNumber;a=Math.max(parseInt(a,10),1),t.splitNumber=a;for(var o=(n[1]-n[0])/a;+o.toFixed(i)!==o&&i<5;)i++;t.precision=i,o=+o.toFixed(i);var r=0;t.minOpen&&e.push({index:r++,interval:[-1/0,n[0]],close:[0,0]});for(var s=n[0],l=r+a;r","≥"][e[0]]];t.text=t.text||this.formatValueText(null!=t.value?t.value:t.interval,!1,i)},this)}};function cL(t,e){var i=t.inverse;("vertical"===t.orient?!i:i)&&e.reverse()}JC.extend({type:"visualMap.piecewise",doRender:function(){var o=this.group;o.removeAll();var r=this.visualMapModel,s=r.get("textGap"),t=r.textStyleModel,l=t.getFont(),u=t.getTextColor(),h=this._getItemAlign(),c=r.itemSize,e=this._getViewData(),i=e.endsText,d=W(r.get("showLabel",!0),!i);i&&this._renderEndsText(o,i[0],c,d,h),E(e.viewPieceList,function(t){var e=t.piece,i=new Si;i.onclick=T(this._onItemClick,this,e),this._enableHoverLink(i,t.indexInModelPieceList);var n=r.getRepresentValue(e);if(this._createItemSymbol(i,n,[0,0,c[0],c[1]]),d){var a=this.visualMapModel.getValueState(n);i.add(new Dr({style:{x:"right"===h?-s:c[0]+s,y:c[1]/2,text:e.text,textVerticalAlign:"middle",textAlign:h,textFont:l,textFill:u,opacity:"outOfRange"===a?.5:1}}))}o.add(i)},this),i&&this._renderEndsText(o,i[1],c,d,h),nu(r.get("orient"),o,r.get("itemGap")),this.renderBackground(o),this.positionGroup(o)},_enableHoverLink:function(t,i){function e(t){var e=this.visualMapModel;e.option.hoverLink&&this.api.dispatchAction({type:t,batch:tL(e.findTargetDataIndices(i),e)})}t.on("mouseover",T(e,this,"highlight")).on("mouseout",T(e,this,"downplay"))},_getItemAlign:function(){var t=this.visualMapModel,e=t.option;if("vertical"===e.orient)return QC(t,this.api,t.itemSize);var i=e.align;return i&&"auto"!==i||(i="left"),i},_renderEndsText:function(t,e,i,n,a){if(e){var o=new Si,r=this.visualMapModel.textStyleModel;o.add(new Dr({style:{x:n?"right"===a?i[0]:0:i[0]/2,y:i[1]/2,textVerticalAlign:"middle",textAlign:n?a:"center",text:e,textFont:r.getFont(),textFill:r.getTextColor()}})),t.add(o)}},_getViewData:function(){var t=this.visualMapModel,e=N(t.getPieceList(),function(t,e){return{piece:t,indexInModelPieceList:e}}),i=t.get("text"),n=t.get("orient"),a=t.get("inverse");return("horizontal"===n?a:!a)?e.reverse():i=i&&i.slice().reverse(),{viewPieceList:e,endsText:i}},_createItemSymbol:function(t,e,i){t.add(Jp(this.getControllerVisual(e,"symbol"),i[0],i[1],i[2],i[3],this.getControllerVisual(e,"color")))},_onItemClick:function(t){var e=this.visualMapModel,i=e.option,n=D(i.selected),a=e.getSelectedMapKey(t);"single"===i.selectedMode?(n[a]=!0,E(n,function(t,e){n[e]=e===a})):n[a]=!n[a],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:n})}});Jd(OC);var dL,fL="urn:schemas-microsoft-com:vml",pL="undefined"==typeof window?null:window,gL=!1,mL=pL&&pL.document;function vL(t){return dL(t)}if(mL&&!v.canvasSupported)try{mL.namespaces.zrvml||mL.namespaces.add("zrvml",fL),dL=function(t){return mL.createElement("')}}catch(t){dL=function(t){return mL.createElement("<"+t+' xmlns="'+fL+'" class="zrvml">')}}var yL,xL=Ho.CMD,_L=Math.round,wL=Math.sqrt,bL=Math.abs,SL=Math.cos,ML=Math.sin,IL=Math.max;if(!v.canvasSupported){var AL=",",TL="progid:DXImageTransform.Microsoft",DL=21600,CL=DL/2,LL=function(t){t.style.cssText="position:absolute;left:0;top:0;width:1px;height:1px;",t.coordsize=DL+","+DL,t.coordorigin="0,0"},kL=function(t,e,i){return"rgb("+[t,e,i].join(",")+")"},PL=function(t,e){e&&t&&e.parentNode!==t&&t.appendChild(e)},NL=function(t,e){e&&t&&e.parentNode===t&&t.removeChild(e)},OL=function(t,e,i){return 1e5*(parseFloat(t)||0)+1e3*(parseFloat(e)||0)+i},EL=Fn,RL=function(t,e,i){var n=Ee(e);i=+i,isNaN(i)&&(i=1),n&&(t.color=kL(n[0],n[1],n[2]),t.opacity=i*n[3])},zL=function(t,e,i,n){var a="fill"===e,o=t.getElementsByTagName(e)[0];null!=i[e]&&"none"!==i[e]&&(a||!a&&i.lineWidth)?(t[a?"filled":"stroked"]="true",i[e]instanceof jr&&NL(t,o),o=o||vL(e),a?function(t,e,i){var n,a,o=e.fill;if(null!=o)if(o instanceof jr){var r,s=0,l=[0,0],u=0,h=1,c=i.getBoundingRect(),d=c.width,f=c.height;if("linear"===o.type){r="gradient";var p=i.transform,g=[o.x*d,o.y*f],m=[o.x2*d,o.y2*f];p&&(bt(g,g,p),bt(m,m,p));var v=m[0]-g[0],y=m[1]-g[1];(s=180*Math.atan2(v,y)/Math.PI)<0&&(s+=360),s<1e-6&&(s=0)}else{r="gradientradial";g=[o.x*d,o.y*f],p=i.transform;var x=i.scale,_=d,w=f;l=[(g[0]-c.x)/_,(g[1]-c.y)/w],p&&bt(g,g,p),_/=x[0]*DL,w/=x[1]*DL;var b=IL(_,w);u=0/b,h=2*o.r/b-u}var S=o.colorStops.slice();S.sort(function(t,e){return t.offset-e.offset});for(var M=S.length,I=[],A=[],T=0;T=c&&d<=i+1){for(var n=[],a=0;a=c&&d<=a+1)return Ik(h,e.components,u,l);p[t]=e}else p[t]=void 0}var s;f++}for(;f<=e;){var r=o();if(r)return r}},pushComponent:function(t,e,i){var n=t[t.length-1];n&&n.added===e&&n.removed===i?t[t.length-1]={count:n.count+1,added:e,removed:i}:t.push({count:1,added:e,removed:i})},extractCommon:function(t,e,i,n){for(var a=e.length,o=i.length,r=t.newPos,s=r-n,l=0;r+10;)n[r]=arguments[r+2];if(!g(e))return e;var o=e.attributes||e.props,i=G.h(e.nodeName||e.type,o,e.children||o&&o.children),a=[i,t];return n&&n.length?a.push(n):t&&t.children&&a.push(t.children),m(G.cloneElement.apply(void 0,a))}function g(e){return e&&(e instanceof q||e.$$typeof===z)}function y(e,t){return t._refProxies[e]||(t._refProxies[e]=function(n){t&&t.refs&&(t.refs[e]=n,null===n&&(delete t._refProxies[e],t=null))})}function b(e){var t=e.nodeName,n=e.attributes;if(n&&"string"==typeof t){var r={};for(var o in n)r[o.toLowerCase()]=o;if(r.ondoubleclick&&(n.ondblclick=n[r.ondoubleclick],delete n[r.ondoubleclick]),r.onchange&&("textarea"===t||"input"===t.toLowerCase()&&!/^fil|che|rad/i.test(n.type))){var i=r.oninput||"oninput";n[i]||(n[i]=A([n[i],n[r.onchange]]),delete n[r.onchange])}}}function w(e){var t=e.attributes;if(t){var n=t.className||t.class;n&&(t.className=n)}}function _(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function x(e,t){for(var n in e)if(!(n in t))return!0;for(var r in t)if(e[r]!==t[r])return!0;return!1}function E(e){return e&&e.base||e}function S(){}function C(e){function t(e,t){k(this),I.call(this,e,t,W),M.call(this,e,t)}return e=_({constructor:t},e),e.mixins&&O(e,N(e.mixins)),e.statics&&_(t,e.statics),e.propTypes&&(t.propTypes=e.propTypes),e.defaultProps&&(t.defaultProps=e.defaultProps),e.getDefaultProps&&(t.defaultProps=e.getDefaultProps()),S.prototype=I.prototype,t.prototype=_(new S,e),t.displayName=e.displayName||"Component",t}function N(e){for(var t={},n=0;n1)for(var n=1;n=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t){e.exports=!0},function(e,t,n){var r=n(53),o=n(40);e.exports=Object.keys||function(e){return r(e,o)}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var r=n(35);e.exports=function(e){return Object(r(e))}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t,n){var r=n(7).f,o=n(12),i=n(2)("toStringTag");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,i)&&r(e,i,{configurable:!0,value:t})}},function(e,t,n){n(101);for(var r=n(1),o=n(11),i=n(15),a=n(2)("toStringTag"),u="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),s=0;s0?r:n)(e)}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){var r=n(6),o=n(98),i=n(40),a=n(38)("IE_PROTO"),u=function(){},s=function(){var e,t=n(31)("iframe"),r=i.length;for(t.style.display="none",n(55).appendChild(t),t.src="javascript:",e=t.contentWindow.document,e.open(),e.write(" +``` + +### `highlight` + +[Documentation of `highlight`](https://gohugo.io/content-management/shortcodes/#instagram) + +Example `highlight` Input: + +```markdown +{{}} +
+
+

{{ .Title }}

+ {{ range .Pages }} + {{ .Render "summary"}} + {{ end }} +
+
+{{}} +``` + +The rendered output looks like this: + +{{< highlight html >}} +
+
+

{{ .Title }}

+ {{ range .Pages }} + {{ .Render "summary"}} + {{ end }} +
+
+{{< /highlight >}} + +### `instagram` + +[Documentation of `instagram`](https://gohugo.io/content-management/shortcodes/#instagram) + +Example `instagram` Input: + +```markdown +{{}} +``` + +The rendered output looks like this: + +{{< instagram BWNjjyYFxVx hidecaption >}} + +### `param` + +[Documentation of `param`](https://gohugo.io/content-management/shortcodes/#param) + +Example `param` Input: + +```markdown +{{}} +``` + +The rendered output looks like this: + +{{< param description >}} + +### `ref` and `relref` {#ref-and-relref} + +[Documentation of `ref` and `relref`](https://gohugo.io/content-management/shortcodes/#ref-and-relref) + +### `tweet` + +[Documentation of `tweet`](https://gohugo.io/content-management/shortcodes/#tweet) + +Example `tweet` Input: + +```markdown +{{}} +``` + +The rendered output looks like this: + +{{< tweet 877500564405444608 >}} + +### `vimeo` + +[Documentation of `vimeo`](https://gohugo.io/content-management/shortcodes/#vimeo) + +Example `vimeo` Input: + +```markdown +{{}} +``` + +The rendered output looks like this: + +{{< vimeo 146022717 >}} + +### `youtube` + +[Documentation of `youtube`](https://gohugo.io/content-management/shortcodes/#youtube) + +Example `youtube` Input: + +```markdown +{{}} +``` + +The rendered output looks like this: + +{{< youtube w7Ft2ymGmfc >}} + +## LoveIt Shortcodes + +**LoveIt** provides multiple shortcodes on top of existing ones. + +### `style` + +`style` is a shortcode to insert custom style in your post. + +The `style` shortcode can use two parameters. The first is the custom style content and the second is the HTML tag around the content you want to change style, and whose default value is `p`. + +Example `style` Input: + +```markdown +{{}} +This is a right-aligned paragraph. +{{}} +``` + +The rendered output looks like this: + +{{< style "text-align: right" >}} +This is a right-aligned paragraph. +{{< /style >}} + +### `image` + +`image` shortcode is an alternative to [`figure` shortcode](#figure). `image` shortcode can take full advantage of the dependent libraries of [lazysizes](https://github.com/aFarkas/lazysizes) and [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js). + +The `image` shortcode can use the following named parameters: + +* **src** + + URL of the image to be displayed. + +* **description** + + Image description. + +* **title** + + Image title. + +* **class** + + `class` attribute of the HTML `figure` tag. + +* **src_s** + + URL of the image thumbnail, used for lightgallery. + +* **src_l** + + URL of the HD image, used for lightgallery. + +Example `image` Input: + +```markdown +{{}} +``` + +The rendered output looks like this: + +{{< image src="/images/theme-documentation-shortcodes/lighthouse.jpg" title="Lighthouse (`image`)" src-s="/images/theme-documentation-shortcodes/lighthouse-small.jpg" src-l="/images/theme-documentation-shortcodes/lighthouse-large.jpg" >}} + +### `admonition` + +The `admonition` shortcode supports **12** types of banners to help you put notice in your page and `Markdown` format is supported. + +{{< admonition >}} +A **note** banner +{{< /admonition >}} + +{{< admonition abstract >}} +An **abstract** banner +{{< /admonition >}} + +{{< admonition info >}} +A **info** banner +{{< /admonition >}} + +{{< admonition tip >}} +A **tip** banner +{{< /admonition >}} + +{{< admonition success >}} +A **success** banner +{{< /admonition >}} + +{{< admonition question >}} +A **question** banner +{{< /admonition >}} + +{{< admonition warning >}} +A **warning** banner +{{< /admonition >}} + +{{< admonition failure >}} +A **failure** banner +{{< /admonition >}} + +{{< admonition danger >}} +A **danger** banner +{{< /admonition >}} + +{{< admonition bug >}} +A **bug** banner +{{< /admonition >}} + +{{< admonition example >}} +An **example** banner +{{< /admonition >}} + +{{< admonition quote >}} +A **quote** banner +{{< /admonition >}} + +The `admonition` shortcode can use the following named parameters: + +* **type** + + Type of the `admonition` banner, default is **note** + +* **title** + + Title of the `admonition` banner, default is the type name of the banner + +* **details** + + if `true`, the content will be expandable/collapsible. + +You can also use the positional parameters in the order of **type**, **title** and **details**. + +Example `admonition` Input: + +```markdown +{{}} +A **tip** banner +{{}} +Or +{{}} +A **tip** banner +{{}} +``` + +The rendered output looks like this: + +{{< admonition tip "This is a tip" true >}} +A **tip** banner +{{< /admonition >}} + +### `mermaid` + +[mermaid](https://mermaidjs.github.io/) is a library helping you to generate diagram and flowcharts from text, in a similar manner as Markdown. + +Just insert your mermaid code in the `mermaid` shortcode and that’s it. + +#### Flowchart {#flowchart} + +Example **flowchart** `mermaid` Input: + +```markdown +{{}} +graph LR; + A[Hard edge] -->|Link text| B(Round edge) + B --> C{Decision} + C -->|One| D[Result one] + C -->|Two| E[Result two] +{{}} +``` + +The rendered output looks like this: + +{{< mermaid >}} +graph LR; + A[Hard edge] -->|Link text| B(Round edge) + B --> C{Decision} + C -->|One| D[Result one] + C -->|Two| E[Result two] +{{< /mermaid >}} + +#### Sequence Diagram {#sequence-diagram} + +Example **sequence diagram** `mermaid` Input: + +```markdown +{{}} +sequenceDiagram + participant Alice + participant Bob + Alice->>John: Hello John, how are you? + loop Healthcheck + John->John: Fight against hypochondria + end + Note right of John: Rational thoughts
prevail... + John-->Alice: Great! + John->Bob: How about you? + Bob-->John: Jolly good! +{{}} +``` + +The rendered output looks like this: + +{{< mermaid >}} +sequenceDiagram + participant Alice + participant Bob + Alice->>John: Hello John, how are you? + loop Healthcheck + John->John: Fight against hypochondria + end + Note right of John: Rational thoughts
prevail... + John-->Alice: Great! + John->Bob: How about you? + Bob-->John: Jolly good! +{{< /mermaid >}} + +#### GANTT {#gantt} + +Example **GANTT** `mermaid` Input: + +```markdown +{{}} +gantt + dateFormat YYYY-MM-DD + title Adding GANTT diagram functionality to mermaid + section A section + Completed task :done, des1, 2014-01-06,2014-01-08 + Active task :active, des2, 2014-01-09, 3d + Future task : des3, after des2, 5d + Future task2 : des4, after des3, 5d + section Critical tasks + Completed task in the critical line :crit, done, 2014-01-06,24h + Implement parser and jison :crit, done, after des1, 2d + Create tests for parser :crit, active, 3d + Future task in critical line :crit, 5d + Create tests for renderer :2d + Add to mermaid :1d +{{}} +``` + +The rendered output looks like this: + +{{< mermaid >}} +gantt + dateFormat YYYY-MM-DD + title Adding GANTT diagram functionality to mermaid + section A section + Completed task :done, des1, 2014-01-06,2014-01-08 + Active task :active, des2, 2014-01-09, 3d + Future task : des3, after des2, 5d + Future task2 : des4, after des3, 5d + section Critical tasks + Completed task in the critical line :crit, done, 2014-01-06,24h + Implement parser and jison :crit, done, after des1, 2d + Create tests for parser :crit, active, 3d + Future task in critical line :crit, 5d + Create tests for renderer :2d + Add to mermaid :1d +{{< /mermaid >}} + +#### Class Diagram {#class-diagram} + +Example **class diagram** `mermaid` Input: + +```markdown +{{}} +classDiagram + Class01 <|-- AveryLongClass : Cool + Class03 *-- Class04 + Class05 o-- Class06 + Class07 .. Class08 + Class09 --> C2 : Where am i? + Class09 --* C3 + Class09 --|> Class07 + Class07 : equals() + Class07 : Object[] elementData + Class01 : size() + Class01 : int chimp + Class01 : int gorilla + Class08 <--> C2: Cool label +{{}} +``` + +The rendered output looks like this: + +{{< mermaid >}} +classDiagram + Class01 <|-- AveryLongClass : Cool + Class03 *-- Class04 + Class05 o-- Class06 + Class07 .. Class08 + Class09 --> C2 : Where am i? + Class09 --* C3 + Class09 --|> Class07 + Class07 : equals() + Class07 : Object[] elementData + Class01 : size() + Class01 : int chimp + Class01 : int gorilla + Class08 <--> C2: Cool label +{{< /mermaid >}} + +#### State Diagram {#state-diagram} + +Example **state diagram** `mermaid` Input: + +```markdown +{{}} +stateDiagram + [*] --> Still + Still --> [*] + Still --> Moving + Moving --> Still + Moving --> Crash + Crash --> [*] +{{}} +``` + +The rendered output looks like this: + +{{< mermaid >}} +stateDiagram + [*] --> Still + Still --> [*] + Still --> Moving + Moving --> Still + Moving --> Crash + Crash --> [*] +{{< /mermaid >}} + +#### Git Graph {#git-graph} + +Example **git graph** `mermaid` Input: + +```markdown +{{}} +gitGraph: +options +{ + "nodeSpacing": 100, + "nodeRadius": 10 +} +end + commit + branch newbranch + checkout newbranch + commit + commit + checkout master + commit + commit + merge newbranch +{{}} +``` + +The rendered output looks like this: + +{{< mermaid >}} +gitGraph: +options +{ + "nodeSpacing": 100, + "nodeRadius": 10 +} +end + commit + branch newbranch + checkout newbranch + commit + commit + checkout master + commit + commit + merge newbranch +{{< /mermaid >}} + +#### Pie {#pie} + +Example **pie** `mermaid` Input: + +```markdown +{{}} +pie + "Dogs" : 386 + "Cats" : 85 + "Rats" : 15 +{{}} +``` + +The rendered output looks like this: + +{{< mermaid >}} +pie + "Dogs" : 386 + "Cats" : 85 + "Rats" : 15 +{{< /mermaid >}} + +### `echarts` + +[ECharts](https://echarts.apache.org/) is a library helping you to generate interactive data visualization. + +The basic chart types ECharts supports include [line series](https://echarts.apache.org/en/option.html#series-line), [bar series](https://echarts.apache.org/en/option.html#series-line), [scatter series](https://echarts.apache.org/en/option.html#series-scatter), [pie charts](https://echarts.apache.org/en/option.html#series-pie), [candle-stick series](https://echarts.apache.org/en/option.html#series-candlestick), [boxplot series](https://echarts.apache.org/en/option.html#series-boxplot) for statistics, [map series](https://echarts.apache.org/en/option.html#series-map), [heatmap series](https://echarts.apache.org/en/option.html#series-heatmap), [lines series](https://echarts.apache.org/en/option.html#series-lines) for directional information, [graph series](https://echarts.apache.org/en/option.html#series-graph) for relationships, [treemap series](https://echarts.apache.org/en/option.html#series-treemap), [sunburst series](https://echarts.apache.org/en/option.html#series-sunburst), [parallel series](https://echarts.apache.org/en/option.html#series-parallel) for multi-dimensional data, [funnel series](https://echarts.apache.org/en/option.html#series-funnel), [gauge series](https://echarts.apache.org/en/option.html#series-gauge). And it's extremely easy to create a combinition of them with ECharts. + +Just insert your ECharts option in `JSON`/`YAML`/`TOML` format in the `echarts` shortcode and that’s it. + +Example `echarts` Input in `JSON` format: + +```json +{{/* echarts */}} +{ + "title": { + "text": "Summary Line Chart", + "top": "2%", + "left": "center" + }, + "tooltip": { + "trigger": "axis" + }, + "legend": { + "data": ["Email Marketing", "Affiliate Advertising", "Video Advertising", "Direct View", "Search Engine"], + "top": "10%" + }, + "grid": { + "left": "5%", + "right": "5%", + "bottom": "5%", + "top": "20%", + "containLabel": true + }, + "toolbox": { + "feature": { + "saveAsImage": { + "title": "Save as Image" + } + } + }, + "xAxis": { + "type": "category", + "boundaryGap": false, + "data": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] + }, + "yAxis": { + "type": "value" + }, + "series": [ + { + "name": "Email Marketing", + "type": "line", + "stack": "Total", + "data": [120, 132, 101, 134, 90, 230, 210] + }, + { + "name": "Affiliate Advertising", + "type": "line", + "stack": "Total", + "data": [220, 182, 191, 234, 290, 330, 310] + }, + { + "name": "Video Advertising", + "type": "line", + "stack": "Total", + "data": [150, 232, 201, 154, 190, 330, 410] + }, + { + "name": "Direct View", + "type": "line", + "stack": "Total", + "data": [320, 332, 301, 334, 390, 330, 320] + }, + { + "name": "Search Engine", + "type": "line", + "stack": "Total", + "data": [820, 932, 901, 934, 1290, 1330, 1320] + } + ] +} +{{}} +``` + +The same in `YAML` format: + +```yaml +{{}} +title: + text: Summary Line Chart + top: 2% + left: center +tooltip: + trigger: axis +legend: + data: + - Email Marketing + - Affiliate Advertising + - Video Advertising + - Direct View + - Search Engine + top: 10% +grid: + left: 5% + right: 5% + bottom: 5% + top: 20% + containLabel: true +toolbox: + feature: + saveAsImage: + title: Save as Image +xAxis: + type: category + boundaryGap: false + data: + - Monday + - Tuesday + - Wednesday + - Thursday + - Friday + - Saturday + - Sunday +yAxis: + type: value +series: + - name: Email Marketing + type: line + stack: Total + data: + - 120 + - 132 + - 101 + - 134 + - 90 + - 230 + - 210 + - name: Affiliate Advertising + type: line + stack: Total + data: + - 220 + - 182 + - 191 + - 234 + - 290 + - 330 + - 310 + - name: Video Advertising + type: line + stack: Total + data: + - 150 + - 232 + - 201 + - 154 + - 190 + - 330 + - 410 + - name: Direct View + type: line + stack: Total + data: + - 320 + - 332 + - 301 + - 334 + - 390 + - 330 + - 320 + - name: Search Engine + type: line + stack: Total + data: + - 820 + - 932 + - 901 + - 934 + - 1290 + - 1330 + - 1320 +{{}} +``` + +The same in `TOML` format: + +```toml +{{}} +[title] +text = "Summary Line Chart" +top = "2%" +left = "center" + +[tooltip] +trigger = "axis" + +[legend] +data = [ + "Email Marketing", + "Affiliate Advertising", + "Video Advertising", + "Direct View", + "Search Engine" +] +top = "10%" + +[grid] +left = "5%" +right = "5%" +bottom = "5%" +top = "20%" +containLabel = true + +[toolbox] +[toolbox.feature] +[toolbox.feature.saveAsImage] +title = "Save as Image" + +[xAxis] +type = "category" +boundaryGap = false +data = [ + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + "Sunday" +] + +[yAxis] +type = "value" + +[[series]] +name = "Email Marketing" +type = "line" +stack = "Total" +data = [ + 120.0, + 132.0, + 101.0, + 134.0, + 90.0, + 230.0, + 210.0 +] + +[[series]] +name = "Affiliate Advertising" +type = "line" +stack = "Total" +data = [ + 220.0, + 182.0, + 191.0, + 234.0, + 290.0, + 330.0, + 310.0 +] + +[[series]] +name = "Video Advertising" +type = "line" +stack = "Total" +data = [ + 150.0, + 232.0, + 201.0, + 154.0, + 190.0, + 330.0, + 410.0 +] + +[[series]] +name = "Direct View" +type = "line" +stack = "Total" +data = [ + 320.0, + 332.0, + 301.0, + 334.0, + 390.0, + 330.0, + 320.0 +] + +[[series]] +name = "Search Engine" +type = "line" +stack = "Total" +data = [ + 820.0, + 932.0, + 901.0, + 934.0, + 1290.0, + 1330.0, + 1320.0 +] +{{}} +``` + +The rendered output looks like this: + +{{< echarts >}} +{ + "title": { + "text": "Summary Line Chart", + "top": "2%", + "left": "center" + }, + "tooltip": { + "trigger": "axis" + }, + "legend": { + "data": ["Email Marketing", "Affiliate Advertising", "Video Advertising", "Direct View", "Search Engine"], + "top": "10%" + }, + "grid": { + "left": "5%", + "right": "5%", + "bottom": "5%", + "top": "20%", + "containLabel": true + }, + "toolbox": { + "feature": { + "saveAsImage": { + "title": "Save as Image" + } + } + }, + "xAxis": { + "type": "category", + "boundaryGap": false, + "data": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] + }, + "yAxis": { + "type": "value" + }, + "series": [ + { + "name": "Email Marketing", + "type": "line", + "stack": "Total", + "data": [120, 132, 101, 134, 90, 230, 210] + }, + { + "name": "Affiliate Advertising", + "type": "line", + "stack": "Total", + "data": [220, 182, 191, 234, 290, 330, 310] + }, + { + "name": "Video Advertising", + "type": "line", + "stack": "Total", + "data": [150, 232, 201, 154, 190, 330, 410] + }, + { + "name": "Direct View", + "type": "line", + "stack": "Total", + "data": [320, 332, 301, 334, 390, 330, 320] + }, + { + "name": "Search Engine", + "type": "line", + "stack": "Total", + "data": [820, 932, 901, 934, 1290, 1330, 1320] + } + ] +} +{{< /echarts >}} + +### `music` + +The `music` shortcode embeds a responsive music player based on [APlayer](https://github.com/MoePlayer/APlayer) and [MetingJS](https://github.com/metowolf/MetingJS). + +The `music` shortcode can use the following named parameters: + +|parameter |default |description| +|:---------------|:------------:|:----------| +|url |**require** |music URL| +|name |options |music name| +|artist |options |music artist| +|cover |options |music cover URL| +|server |**require** |music platform: `netease`, `tencent`, `kugou`, `xiami`, `baidu`| +|type |**require** |`song`, `playlist`, `album`, `search`, `artist`| +|id |**require** |song id / playlist id / album id / search keyword| +|auto |options |music link, support: `netease`, `tencent`, `xiami`| +|fixed |`false` |enable fixed mode| +|mini |`false` |enable mini mode| +|autoplay |`false` |audio autoplay| +|theme |`#a9a9b3` |main color| +|loop |`all` |player loop play, values: 'all', 'one', 'none'| +|order |`list` |player play order, values: 'list', 'random'| +|volume |`0.7` |default volume, notice that player will remember user setting, default volume will not work after user set volume themselves| +|mutex |`true` |prevent to play multiple player at the same time, pause other players when this player start play| +|list-folded |`false` |indicate whether list should folded at first| +|list-max-height |`340px` |list max height| + +#### Custom Music URL {#custom-music-url} + +Example `music` Input: + +```markdown +{{}} +``` + +The rendered output looks like this: + +{{< music url="https://rainymood.com/audio1110/0.m4a" name=rainymood artist=rainymood cover="https://rainymood.com/i/badge.jpg" >}} + +#### Music Platform URL Automatic Identification {#automatic-identification} + +Example `music` Input: + +```markdown +{{}} +Or +{{}} +``` + +The rendered output looks like this: + +{{< music auto="https://music.163.com/#/playlist?id=60198" >}} + +#### Custom Server, Type and ID {#custom-server} + +Example `music` Input: + +```markdown +{{}} +Or +{{}} +``` + +The rendered output looks like this: + +{{< music netease song 1868553 >}} + +### `bilibili` + +The `bilibili` shortcode embeds a responsive video player for bilibili videos. + +When the video only has one part, only the `av` ID of the video is required, e.g.: + +```code +https://www.bilibili.com/video/av47027633 +``` + +Example `bilibili` Input: + +```markdown +{{}} +Or +{{}} +``` + +The rendered output looks like this: + +{{< bilibili av=47027633 >}} + +When the video has multiple parts, in addition to the `av` ID of the video, +`p` is also required, whose default value is `1`, e.g.: + +```code +https://www.bilibili.com/video/av36570401?p=3 +``` + +Example `bilibili` Input with `p`: + +```markdown +{{}} +Or +{{}} +``` + +The rendered output looks like this: + +{{< bilibili av=36570401 p=3 >}} + +### `typeit` + +The `typeit` shortcode provides typing animation based on [TypeIt](https://typeitjs.com/). + +Just insert your content in the `typeit` shortcode and that’s it. + +#### Simple Content {#simple-content} + +Simple content is allowed in `Markdown` format and **without** rich block content such as images and more... + +Example `typeit` Input: + +```markdown +{{}} +This is a *paragraph* with **typing animation** based on [TypeIt](https://typeitjs.com/)... +{{}} +``` + +The rendered output looks like this: + +{{< typeit >}} +This is a *paragraph* with **typing animation** based on [TypeIt](https://typeitjs.com/)... +{{< /typeit >}} + +Alternatively, you can use custom **HTML tags**. + +Example `typeit` Input with `h4` tag: + +```markdown +{{}} +This is a *paragraph* with **typing animation** based on [TypeIt](https://typeitjs.com/)... +{{}} +``` + +The rendered output looks like this: + +{{< typeit tag=h4 >}} +This is a *paragraph* with **typing animation** based on [TypeIt](https://typeitjs.com/)... +{{< /typeit >}} + +#### Code Content {#code-content} + +Code content is allowed and will be highlighted by named parameter `code` for the type of code language. + +Example `typeit` Input with `code`: + +```markdown +{{}} +public class HelloWorld { + public static void main(String []args) { + System.out.println("Hello World"); + } +} +{{}} +``` + +The rendered output looks like this: + +{{< typeit code=java >}} +public class HelloWorld { + public static void main(String []args) { + System.out.println("Hello World"); + } +} +{{< /typeit >}} + +#### Group Content {#group-content} + +All typing animations start at the same time by default. +But sometimes you may want to start a set of `typeit` contents in order. + +A set of `typeit` contents with the same value of named parameter `group` will start typing animation in sequence. + +Example `typeit` Input with `group`: + +```markdown +{{}} +**First** this paragraph begins +{{}} + +{{}} +**Then** this paragraph begins +{{}} +``` + +The rendered output looks like this: + +{{< typeit group=paragraph >}} +**First** this paragraph begins +{{< /typeit >}} + +{{< typeit group=paragraph >}} +**Then** this paragraph begins +{{< /typeit >}} diff --git a/exampleSite/content/posts/theme-documentation-shortcodes.fr.md b/exampleSite/content/posts/theme-documentation-shortcodes.fr.md new file mode 100644 index 000000000..9be2f2e53 --- /dev/null +++ b/exampleSite/content/posts/theme-documentation-shortcodes.fr.md @@ -0,0 +1,1177 @@ +--- +weight: 3 +title: "Thème Documentation - Shortcodes" +date: 2020-03-04T16:29:59+08:00 +lastmod: 2020-03-04T16:29:59+08:00 +draft: false +author: "Dillon" +authorLink: "https://dillonzq.com" +description: "Le thème LoveIt fournit plusieurs shortcodes en plus de ceux intégrés dans Hugo." +license: "" + +tags: ["shortcodes"] +categories: ["documentation"] +hiddenFromHomePage: false + +featuredImage: "/images/theme-documentation-shortcodes/featured-image.jpg" +featuredImagePreview: "" + +toc: true +autoCollapseToc: true +math: false +lightgallery: true +linkToMarkdown: true +share: + enable: true +comment: true +--- + +Le thème **LoveIt** fournit plusieurs shortcodes en plus de ceux intégrés dans Hugo. + + + +{{< admonition warning >}} +Sorry, this article has not been completely translated into **French**. +Welcome to take the time to propose a translation by [making a PR](https://github.com/dillonzq/LoveIt/pulls) to the theme! +{{< /admonition >}} + +Hugo uses Markdown for its simple content format. However, there are a lot of things that Markdown doesn’t support well. You could use pure HTML to expand possibilities. + +But this happens to be a bad idea. Everyone uses Markdown because it’s pure and simple to read even non-rendered. You should avoid HTML to keep it as simple as possible. + +To avoid this limitations, Hugo created [shortcodes](https://gohugo.io/extras/shortcodes/). +A shortcode is a simple snippet that can generate reasonable HTML code and conforms to Markdown's design philosophy. + +## Hugo’s Built-in Shortcodes + +Hugo ships with a set of predefined shortcodes that represent very common usage. These shortcodes are provided for author convenience and to keep your markdown content clean. + +### `figure` {#figure} + +[Documentation of `figure`](https://gohugo.io/content-management/shortcodes/#figure) + +Example `figure` Input: + +```markdown +{{}} +``` + +The rendered output looks like this: + +{{< figure src="/images/theme-documentation-shortcodes/lighthouse.jpg" title="Lighthouse (figure)" >}} + +The HTML looks like this: + +```html +
+ +
+

Lighthouse (figure)

+
+
+``` + +### `gist` + +[Documentation of `gist`](https://gohugo.io/content-management/shortcodes/#gist) + +Example `gist` Input: + +```markdown +{{}} +``` + +The rendered output looks like this: + +{{< gist spf13 7896402 >}} + +The HTML looks like this: + +```html + +``` + +### `highlight` + +[Documentation of `highlight`](https://gohugo.io/content-management/shortcodes/#instagram) + +Example `highlight` Input: + +```markdown +{{}} +
+
+

{{ .Title }}

+ {{ range .Pages }} + {{ .Render "summary"}} + {{ end }} +
+
+{{}} +``` + +The rendered output looks like this: + +{{< highlight html >}} +
+
+

{{ .Title }}

+ {{ range .Pages }} + {{ .Render "summary"}} + {{ end }} +
+
+{{< /highlight >}} + +### `instagram` + +[Documentation of `instagram`](https://gohugo.io/content-management/shortcodes/#instagram) + +Example `instagram` Input: + +```markdown +{{}} +``` + +The rendered output looks like this: + +{{< instagram BWNjjyYFxVx hidecaption >}} + +### `param` + +[Documentation of `param`](https://gohugo.io/content-management/shortcodes/#param) + +Example `param` Input: + +```markdown +{{}} +``` + +The rendered output looks like this: + +{{< param description >}} + +### `ref` and `relref` {#ref-and-relref} + +[Documentation of `ref` and `relref`](https://gohugo.io/content-management/shortcodes/#ref-and-relref) + +### `tweet` + +[Documentation of `tweet`](https://gohugo.io/content-management/shortcodes/#tweet) + +Example `tweet` Input: + +```markdown +{{}} +``` + +The rendered output looks like this: + +{{< tweet 877500564405444608 >}} + +### `vimeo` + +[Documentation of `vimeo`](https://gohugo.io/content-management/shortcodes/#vimeo) + +Example `vimeo` Input: + +```markdown +{{}} +``` + +The rendered output looks like this: + +{{< vimeo 146022717 >}} + +### `youtube` + +[Documentation of `youtube`](https://gohugo.io/content-management/shortcodes/#youtube) + +Example `youtube` Input: + +```markdown +{{}} +``` + +The rendered output looks like this: + +{{< youtube w7Ft2ymGmfc >}} + +## LoveIt Shortcodes + +**LoveIt** provides multiple shortcodes on top of existing ones. + +### `style` + +`style` is a shortcode to insert custom style in your post. + +The `style` shortcode can use two parameters. The first is the custom style content and the second is the HTML tag around the content you want to change style, and whose default value is `p`. + +Example `style` Input: + +```markdown +{{}} +This is a right-aligned paragraph. +{{}} +``` + +The rendered output looks like this: + +{{< style "text-align: right" >}} +This is a right-aligned paragraph. +{{< /style >}} + +### `image` + +`image` shortcode is an alternative to [`figure` shortcode](#figure). `image` shortcode can take full advantage of the dependent libraries of [lazysizes](https://github.com/aFarkas/lazysizes) and [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js). + +The `image` shortcode can use the following named parameters: + +* **src** + + URL of the image to be displayed. + +* **description** + + Image description. + +* **title** + + Image title. + +* **class** + + `class` attribute of the HTML `figure` tag. + +* **src_s** + + URL of the image thumbnail, used for lightgallery. + +* **src_l** + + URL of the HD image, used for lightgallery. + +Example `image` Input: + +```markdown +{{}} +``` + +The rendered output looks like this: + +{{< image src="/images/theme-documentation-shortcodes/lighthouse.jpg" title="Lighthouse (`image`)" src-s="/images/theme-documentation-shortcodes/lighthouse-small.jpg" src-l="/images/theme-documentation-shortcodes/lighthouse-large.jpg" >}} + +### `admonition` + +The `admonition` shortcode supports **12** types of banners to help you put notice in your page and `Markdown` format is supported. + +{{< admonition >}} +A **note** banner +{{< /admonition >}} + +{{< admonition abstract >}} +An **abstract** banner +{{< /admonition >}} + +{{< admonition info >}} +A **info** banner +{{< /admonition >}} + +{{< admonition tip >}} +A **tip** banner +{{< /admonition >}} + +{{< admonition success >}} +A **success** banner +{{< /admonition >}} + +{{< admonition question >}} +A **question** banner +{{< /admonition >}} + +{{< admonition warning >}} +A **warning** banner +{{< /admonition >}} + +{{< admonition failure >}} +A **failure** banner +{{< /admonition >}} + +{{< admonition danger >}} +A **danger** banner +{{< /admonition >}} + +{{< admonition bug >}} +A **bug** banner +{{< /admonition >}} + +{{< admonition example >}} +An **example** banner +{{< /admonition >}} + +{{< admonition quote >}} +A **quote** banner +{{< /admonition >}} + +The `admonition` shortcode can use the following named parameters: + +* **type** + + Type of the `admonition` banner, default is **note** + +* **title** + + Title of the `admonition` banner, default is the type name of the banner + +* **details** + + if `true`, the content will be expandable/collapsible. + +You can also use the positional parameters in the order of **type**, **title** and **details**. + +Example `admonition` Input: + +```markdown +{{}} +A **tip** banner +{{}} +Or +{{}} +A **tip** banner +{{}} +``` + +The rendered output looks like this: + +{{< admonition tip "This is a tip" true >}} +A **tip** banner +{{< /admonition >}} + +### `mermaid` + +[mermaid](https://mermaidjs.github.io/) is a library helping you to generate diagram and flowcharts from text, in a similar manner as Markdown. + +Just insert your mermaid code in the `mermaid` shortcode and that’s it. + +#### Flowchart {#flowchart} + +Example **flowchart** `mermaid` Input: + +```markdown +{{}} +graph LR; + A[Hard edge] -->|Link text| B(Round edge) + B --> C{Decision} + C -->|One| D[Result one] + C -->|Two| E[Result two] +{{}} +``` + +The rendered output looks like this: + +{{< mermaid >}} +graph LR; + A[Hard edge] -->|Link text| B(Round edge) + B --> C{Decision} + C -->|One| D[Result one] + C -->|Two| E[Result two] +{{< /mermaid >}} + +#### Sequence Diagram {#sequence-diagram} + +Example **sequence diagram** `mermaid` Input: + +```markdown +{{}} +sequenceDiagram + participant Alice + participant Bob + Alice->>John: Hello John, how are you? + loop Healthcheck + John->John: Fight against hypochondria + end + Note right of John: Rational thoughts
prevail... + John-->Alice: Great! + John->Bob: How about you? + Bob-->John: Jolly good! +{{}} +``` + +The rendered output looks like this: + +{{< mermaid >}} +sequenceDiagram + participant Alice + participant Bob + Alice->>John: Hello John, how are you? + loop Healthcheck + John->John: Fight against hypochondria + end + Note right of John: Rational thoughts
prevail... + John-->Alice: Great! + John->Bob: How about you? + Bob-->John: Jolly good! +{{< /mermaid >}} + +#### GANTT {#gantt} + +Example **GANTT** `mermaid` Input: + +```markdown +{{}} +gantt + dateFormat YYYY-MM-DD + title Adding GANTT diagram functionality to mermaid + section A section + Completed task :done, des1, 2014-01-06,2014-01-08 + Active task :active, des2, 2014-01-09, 3d + Future task : des3, after des2, 5d + Future task2 : des4, after des3, 5d + section Critical tasks + Completed task in the critical line :crit, done, 2014-01-06,24h + Implement parser and jison :crit, done, after des1, 2d + Create tests for parser :crit, active, 3d + Future task in critical line :crit, 5d + Create tests for renderer :2d + Add to mermaid :1d +{{}} +``` + +The rendered output looks like this: + +{{< mermaid >}} +gantt + dateFormat YYYY-MM-DD + title Adding GANTT diagram functionality to mermaid + section A section + Completed task :done, des1, 2014-01-06,2014-01-08 + Active task :active, des2, 2014-01-09, 3d + Future task : des3, after des2, 5d + Future task2 : des4, after des3, 5d + section Critical tasks + Completed task in the critical line :crit, done, 2014-01-06,24h + Implement parser and jison :crit, done, after des1, 2d + Create tests for parser :crit, active, 3d + Future task in critical line :crit, 5d + Create tests for renderer :2d + Add to mermaid :1d +{{< /mermaid >}} + +#### Class Diagram {#class-diagram} + +Example **class diagram** `mermaid` Input: + +```markdown +{{}} +classDiagram + Class01 <|-- AveryLongClass : Cool + Class03 *-- Class04 + Class05 o-- Class06 + Class07 .. Class08 + Class09 --> C2 : Where am i? + Class09 --* C3 + Class09 --|> Class07 + Class07 : equals() + Class07 : Object[] elementData + Class01 : size() + Class01 : int chimp + Class01 : int gorilla + Class08 <--> C2: Cool label +{{}} +``` + +The rendered output looks like this: + +{{< mermaid >}} +classDiagram + Class01 <|-- AveryLongClass : Cool + Class03 *-- Class04 + Class05 o-- Class06 + Class07 .. Class08 + Class09 --> C2 : Where am i? + Class09 --* C3 + Class09 --|> Class07 + Class07 : equals() + Class07 : Object[] elementData + Class01 : size() + Class01 : int chimp + Class01 : int gorilla + Class08 <--> C2: Cool label +{{< /mermaid >}} + +#### State Diagram {#state-diagram} + +Example **state diagram** `mermaid` Input: + +```markdown +{{}} +stateDiagram + [*] --> Still + Still --> [*] + Still --> Moving + Moving --> Still + Moving --> Crash + Crash --> [*] +{{}} +``` + +The rendered output looks like this: + +{{< mermaid >}} +stateDiagram + [*] --> Still + Still --> [*] + Still --> Moving + Moving --> Still + Moving --> Crash + Crash --> [*] +{{< /mermaid >}} + +#### Git Graph {#git-graph} + +Example **git graph** `mermaid` Input: + +```markdown +{{}} +gitGraph: +options +{ + "nodeSpacing": 100, + "nodeRadius": 10 +} +end + commit + branch newbranch + checkout newbranch + commit + commit + checkout master + commit + commit + merge newbranch +{{}} +``` + +The rendered output looks like this: + +{{< mermaid >}} +gitGraph: +options +{ + "nodeSpacing": 100, + "nodeRadius": 10 +} +end + commit + branch newbranch + checkout newbranch + commit + commit + checkout master + commit + commit + merge newbranch +{{< /mermaid >}} + +#### Pie {#pie} + +Example **pie** `mermaid` Input: + +```markdown +{{}} +pie + "Dogs" : 386 + "Cats" : 85 + "Rats" : 15 +{{}} +``` + +The rendered output looks like this: + +{{< mermaid >}} +pie + "Dogs" : 386 + "Cats" : 85 + "Rats" : 15 +{{< /mermaid >}} + +### `echarts` + +[ECharts](https://echarts.apache.org/) is a library helping you to generate interactive data visualization. + +The basic chart types ECharts supports include [line series](https://echarts.apache.org/en/option.html#series-line), [bar series](https://echarts.apache.org/en/option.html#series-line), [scatter series](https://echarts.apache.org/en/option.html#series-scatter), [pie charts](https://echarts.apache.org/en/option.html#series-pie), [candle-stick series](https://echarts.apache.org/en/option.html#series-candlestick), [boxplot series](https://echarts.apache.org/en/option.html#series-boxplot) for statistics, [map series](https://echarts.apache.org/en/option.html#series-map), [heatmap series](https://echarts.apache.org/en/option.html#series-heatmap), [lines series](https://echarts.apache.org/en/option.html#series-lines) for directional information, [graph series](https://echarts.apache.org/en/option.html#series-graph) for relationships, [treemap series](https://echarts.apache.org/en/option.html#series-treemap), [sunburst series](https://echarts.apache.org/en/option.html#series-sunburst), [parallel series](https://echarts.apache.org/en/option.html#series-parallel) for multi-dimensional data, [funnel series](https://echarts.apache.org/en/option.html#series-funnel), [gauge series](https://echarts.apache.org/en/option.html#series-gauge). And it's extremely easy to create a combinition of them with ECharts. + +Just insert your ECharts option in `JSON`/`YAML`/`TOML` format in the `echarts` shortcode and that’s it. + +Example `echarts` Input in `JSON` format: + +```json +{{/* echarts */}} +{ + "title": { + "text": "Summary Line Chart", + "top": "2%", + "left": "center" + }, + "tooltip": { + "trigger": "axis" + }, + "legend": { + "data": ["Email Marketing", "Affiliate Advertising", "Video Advertising", "Direct View", "Search Engine"], + "top": "10%" + }, + "grid": { + "left": "5%", + "right": "5%", + "bottom": "5%", + "top": "20%", + "containLabel": true + }, + "toolbox": { + "feature": { + "saveAsImage": { + "title": "Save as Image" + } + } + }, + "xAxis": { + "type": "category", + "boundaryGap": false, + "data": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] + }, + "yAxis": { + "type": "value" + }, + "series": [ + { + "name": "Email Marketing", + "type": "line", + "stack": "Total", + "data": [120, 132, 101, 134, 90, 230, 210] + }, + { + "name": "Affiliate Advertising", + "type": "line", + "stack": "Total", + "data": [220, 182, 191, 234, 290, 330, 310] + }, + { + "name": "Video Advertising", + "type": "line", + "stack": "Total", + "data": [150, 232, 201, 154, 190, 330, 410] + }, + { + "name": "Direct View", + "type": "line", + "stack": "Total", + "data": [320, 332, 301, 334, 390, 330, 320] + }, + { + "name": "Search Engine", + "type": "line", + "stack": "Total", + "data": [820, 932, 901, 934, 1290, 1330, 1320] + } + ] +} +{{}} +``` + +The same in `YAML` format: + +```yaml +{{}} +title: + text: Summary Line Chart + top: 2% + left: center +tooltip: + trigger: axis +legend: + data: + - Email Marketing + - Affiliate Advertising + - Video Advertising + - Direct View + - Search Engine + top: 10% +grid: + left: 5% + right: 5% + bottom: 5% + top: 20% + containLabel: true +toolbox: + feature: + saveAsImage: + title: Save as Image +xAxis: + type: category + boundaryGap: false + data: + - Monday + - Tuesday + - Wednesday + - Thursday + - Friday + - Saturday + - Sunday +yAxis: + type: value +series: + - name: Email Marketing + type: line + stack: Total + data: + - 120 + - 132 + - 101 + - 134 + - 90 + - 230 + - 210 + - name: Affiliate Advertising + type: line + stack: Total + data: + - 220 + - 182 + - 191 + - 234 + - 290 + - 330 + - 310 + - name: Video Advertising + type: line + stack: Total + data: + - 150 + - 232 + - 201 + - 154 + - 190 + - 330 + - 410 + - name: Direct View + type: line + stack: Total + data: + - 320 + - 332 + - 301 + - 334 + - 390 + - 330 + - 320 + - name: Search Engine + type: line + stack: Total + data: + - 820 + - 932 + - 901 + - 934 + - 1290 + - 1330 + - 1320 +{{}} +``` + +The same in `TOML` format: + +```toml +{{}} +[title] +text = "Summary Line Chart" +top = "2%" +left = "center" + +[tooltip] +trigger = "axis" + +[legend] +data = [ + "Email Marketing", + "Affiliate Advertising", + "Video Advertising", + "Direct View", + "Search Engine" +] +top = "10%" + +[grid] +left = "5%" +right = "5%" +bottom = "5%" +top = "20%" +containLabel = true + +[toolbox] +[toolbox.feature] +[toolbox.feature.saveAsImage] +title = "Save as Image" + +[xAxis] +type = "category" +boundaryGap = false +data = [ + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + "Sunday" +] + +[yAxis] +type = "value" + +[[series]] +name = "Email Marketing" +type = "line" +stack = "Total" +data = [ + 120.0, + 132.0, + 101.0, + 134.0, + 90.0, + 230.0, + 210.0 +] + +[[series]] +name = "Affiliate Advertising" +type = "line" +stack = "Total" +data = [ + 220.0, + 182.0, + 191.0, + 234.0, + 290.0, + 330.0, + 310.0 +] + +[[series]] +name = "Video Advertising" +type = "line" +stack = "Total" +data = [ + 150.0, + 232.0, + 201.0, + 154.0, + 190.0, + 330.0, + 410.0 +] + +[[series]] +name = "Direct View" +type = "line" +stack = "Total" +data = [ + 320.0, + 332.0, + 301.0, + 334.0, + 390.0, + 330.0, + 320.0 +] + +[[series]] +name = "Search Engine" +type = "line" +stack = "Total" +data = [ + 820.0, + 932.0, + 901.0, + 934.0, + 1290.0, + 1330.0, + 1320.0 +] +{{}} +``` + +The rendered output looks like this: + +{{< echarts >}} +{ + "title": { + "text": "Summary Line Chart", + "top": "2%", + "left": "center" + }, + "tooltip": { + "trigger": "axis" + }, + "legend": { + "data": ["Email Marketing", "Affiliate Advertising", "Video Advertising", "Direct View", "Search Engine"], + "top": "10%" + }, + "grid": { + "left": "5%", + "right": "5%", + "bottom": "5%", + "top": "20%", + "containLabel": true + }, + "toolbox": { + "feature": { + "saveAsImage": { + "title": "Save as Image" + } + } + }, + "xAxis": { + "type": "category", + "boundaryGap": false, + "data": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] + }, + "yAxis": { + "type": "value" + }, + "series": [ + { + "name": "Email Marketing", + "type": "line", + "stack": "Total", + "data": [120, 132, 101, 134, 90, 230, 210] + }, + { + "name": "Affiliate Advertising", + "type": "line", + "stack": "Total", + "data": [220, 182, 191, 234, 290, 330, 310] + }, + { + "name": "Video Advertising", + "type": "line", + "stack": "Total", + "data": [150, 232, 201, 154, 190, 330, 410] + }, + { + "name": "Direct View", + "type": "line", + "stack": "Total", + "data": [320, 332, 301, 334, 390, 330, 320] + }, + { + "name": "Search Engine", + "type": "line", + "stack": "Total", + "data": [820, 932, 901, 934, 1290, 1330, 1320] + } + ] +} +{{< /echarts >}} + +### `music` + +The `music` shortcode embeds a responsive music player based on [APlayer](https://github.com/MoePlayer/APlayer) and [MetingJS](https://github.com/metowolf/MetingJS). + +The `music` shortcode can use the following named parameters: + +|parameter |default |description| +|:---------------|:------------:|:----------| +|url |**require** |music URL| +|name |options |music name| +|artist |options |music artist| +|cover |options |music cover URL| +|server |**require** |music platform: `netease`, `tencent`, `kugou`, `xiami`, `baidu`| +|type |**require** |`song`, `playlist`, `album`, `search`, `artist`| +|id |**require** |song id / playlist id / album id / search keyword| +|auto |options |music link, support: `netease`, `tencent`, `xiami`| +|fixed |`false` |enable fixed mode| +|mini |`false` |enable mini mode| +|autoplay |`false` |audio autoplay| +|theme |`#a9a9b3` |main color| +|loop |`all` |player loop play, values: 'all', 'one', 'none'| +|order |`list` |player play order, values: 'list', 'random'| +|volume |`0.7` |default volume, notice that player will remember user setting, default volume will not work after user set volume themselves| +|mutex |`true` |prevent to play multiple player at the same time, pause other players when this player start play| +|list-folded |`false` |indicate whether list should folded at first| +|list-max-height |`340px` |list max height| + +#### Custom Music URL {#custom-music-url} + +Example `music` Input: + +```markdown +{{}} +``` + +The rendered output looks like this: + +{{< music url="https://rainymood.com/audio1110/0.m4a" name=rainymood artist=rainymood cover="https://rainymood.com/i/badge.jpg" >}} + +#### Music Platform URL Automatic Identification {#automatic-identification} + +Example `music` Input: + +```markdown +{{}} +Or +{{}} +``` + +The rendered output looks like this: + +{{< music auto="https://music.163.com/#/playlist?id=60198" >}} + +#### Custom Server, Type and ID {#custom-server} + +Example `music` Input: + +```markdown +{{}} +Or +{{}} +``` + +The rendered output looks like this: + +{{< music netease song 1868553 >}} + +### `bilibili` + +The `bilibili` shortcode embeds a responsive video player for bilibili videos. + +When the video only has one part, only the `av` ID of the video is required, e.g.: + +```code +https://www.bilibili.com/video/av47027633 +``` + +Example `bilibili` Input: + +```markdown +{{}} +Or +{{}} +``` + +The rendered output looks like this: + +{{< bilibili av=47027633 >}} + +When the video has multiple parts, in addition to the `av` ID of the video, +`p` is also required, whose default value is `1`, e.g.: + +```code +https://www.bilibili.com/video/av36570401?p=3 +``` + +Example `bilibili` Input with `p`: + +```markdown +{{}} +Or +{{}} +``` + +The rendered output looks like this: + +{{< bilibili av=36570401 p=3 >}} + +### `typeit` + +The `typeit` shortcode provides typing animation based on [TypeIt](https://typeitjs.com/). + +Just insert your content in the `typeit` shortcode and that’s it. + +#### Simple Content {#simple-content} + +Simple content is allowed in `Markdown` format and **without** rich block content such as images and more... + +Example `typeit` Input: + +```markdown +{{}} +This is a *paragraph* with **typing animation** based on [TypeIt](https://typeitjs.com/)... +{{}} +``` + +The rendered output looks like this: + +{{< typeit >}} +This is a *paragraph* with **typing animation** based on [TypeIt](https://typeitjs.com/)... +{{< /typeit >}} + +Alternatively, you can use custom **HTML tags**. + +Example `typeit` Input with `h4` tag: + +```markdown +{{}} +This is a *paragraph* with **typing animation** based on [TypeIt](https://typeitjs.com/)... +{{}} +``` + +The rendered output looks like this: + +{{< typeit tag=h4 >}} +This is a *paragraph* with **typing animation** based on [TypeIt](https://typeitjs.com/)... +{{< /typeit >}} + +#### Code Content {#code-content} + +Code content is allowed and will be highlighted by named parameter `code` for the type of code language. + +Example `typeit` Input with `code`: + +```markdown +{{}} +public class HelloWorld { + public static void main(String []args) { + System.out.println("Hello World"); + } +} +{{}} +``` + +The rendered output looks like this: + +{{< typeit code=java >}} +public class HelloWorld { + public static void main(String []args) { + System.out.println("Hello World"); + } +} +{{< /typeit >}} + +#### Group Content {#group-content} + +All typing animations start at the same time by default. +But sometimes you may want to start a set of `typeit` contents in order. + +A set of `typeit` contents with the same value of named parameter `group` will start typing animation in sequence. + +Example `typeit` Input with `group`: + +```markdown +{{}} +**First** this paragraph begins +{{}} + +{{}} +**Then** this paragraph begins +{{}} +``` + +The rendered output looks like this: + +{{< typeit group=paragraph >}} +**First** this paragraph begins +{{< /typeit >}} + +{{< typeit group=paragraph >}} +**Then** this paragraph begins +{{< /typeit >}} diff --git a/exampleSite/content/posts/theme-documentation-shortcodes.zh-cn.md b/exampleSite/content/posts/theme-documentation-shortcodes.zh-cn.md new file mode 100644 index 000000000..b05861d21 --- /dev/null +++ b/exampleSite/content/posts/theme-documentation-shortcodes.zh-cn.md @@ -0,0 +1,1173 @@ +--- +weight: 3 +title: "主题文档 - Shortcodes" +date: 2020-03-04T16:29:59+08:00 +lastmod: 2020-03-04T16:29:59+08:00 +draft: false +author: "Dillon" +authorLink: "https://dillonzq.com" +description: "LoveIt 主题在 Hugo 内置的 shortcode 的基础上提供多个新的 shortcode." +license: "" + +tags: ["shortcodes"] +categories: ["documentation"] +hiddenFromHomePage: false + +featuredImage: "/images/theme-documentation-shortcodes/featured-image.jpg" +featuredImagePreview: "" + +toc: true +autoCollapseToc: true +math: false +lightgallery: true +linkToMarkdown: true +share: + enable: true +comment: true +--- + +**LoveIt** 主题在 Hugo 内置的 shortcode 的基础上提供多个新的 shortcode. + + + +Hugo 使用 Markdown 为其简单的内容格式. 但是, Markdown 在很多方面都无法很好地支持. 你可以使用纯 HTML 来扩展可能性. + +但这恰好是一个坏主意. 大家使用 Markdown, 正是因为它即使不经过渲染也可以轻松阅读. 应该尽可能避免使用 HTML 以保持内容简洁. + +为了避免这种限制, Hugo 创建了 [shortcodes](https://gohugo.io/extras/shortcodes/). +shortcode 是一个简单代码段, 可以生成合理的 HTML 代码, 并且符合 Markdown 的设计哲学. + +## Hugo 内置 shortcodes {#hugo} + +Hugo 附带了一组预定义的 shortcodes, 它们实现了一些非常常见的用法. +提供这些 shortcodes 是为了方便保持你的 Markdown 内容简洁. + +### `figure` {#figure} + +[`figure` 的文档](https://gohugo.io/content-management/shortcodes/#figure) + +一个 `figure` 示例: + +```markdown +{{}} +``` + +呈现的输出效果如下: + +{{< figure src="/images/theme-documentation-shortcodes/lighthouse.jpg" title="Lighthouse (figure)" >}} + +输出的 HTML 看起来像这样: + +```html +
+ +
+

Lighthouse (figure)

+
+
+``` + +### `gist` + +[`gist` 的文档](https://gohugo.io/content-management/shortcodes/#gist) + +一个 `gist` 示例: + +```markdown +{{}} +``` + +呈现的输出效果如下: + +{{< gist spf13 7896402 >}} + +输出的 HTML 看起来像这样: + +```html + +``` + +### `highlight` + +[`highlight` 的文档](https://gohugo.io/content-management/shortcodes/#instagram) + +一个 `highlight` 示例: + +```markdown +{{}} +
+
+

{{ .Title }}

+ {{ range .Pages }} + {{ .Render "summary"}} + {{ end }} +
+
+{{}} +``` + +呈现的输出效果如下: + +{{< highlight html >}} +
+
+

{{ .Title }}

+ {{ range .Pages }} + {{ .Render "summary"}} + {{ end }} +
+
+{{< /highlight >}} + +### `instagram` + +[`instagram` 的文档](https://gohugo.io/content-management/shortcodes/#instagram) + +一个 `instagram` 示例: + +```markdown +{{}} +``` + +呈现的输出效果如下: + +{{< instagram BWNjjyYFxVx hidecaption >}} + +### `param` + +[`param` 的文档](https://gohugo.io/content-management/shortcodes/#param) + +一个 `param` 示例: + +```markdown +{{}} +``` + +呈现的输出效果如下: + +{{< param description >}} + +### `ref` 和 `relref` {#ref-and-relref} + +[`ref` 和 `relref` 的文档](https://gohugo.io/content-management/shortcodes/#ref-and-relref) + +### `tweet` + +[`tweet` 的文档](https://gohugo.io/content-management/shortcodes/#tweet) + +一个 `tweet` 示例: + +```markdown +{{}} +``` + +呈现的输出效果如下: + +{{< tweet 877500564405444608 >}} + +### `vimeo` + +[`vimeo` 的文档](https://gohugo.io/content-management/shortcodes/#vimeo) + +一个 `vimeo` 示例: + +```markdown +{{}} +``` + +呈现的输出效果如下: + +{{< vimeo 146022717 >}} + +### `youtube` + +[`youtube` 的文档](https://gohugo.io/content-management/shortcodes/#youtube) + +一个 `youtube` 示例: + +```markdown +{{}} +``` + +呈现的输出效果如下: + +{{< youtube w7Ft2ymGmfc >}} + +## LoveIt shortcodes {#loveit} + +**LoveIt** 在现有内置的 shortcodes 的基础上提供了多个 shortcodes. + +### `style` + +`style` shortcode 用来在你的文章中插入自定义样式. + +`style` shortcode 使用两个参数. +第一个是自定义样式的内容, 第二个是包裹你要更改样式的内容的 HTML 标签, 默认值是 `p`. + +一个 `style` 示例: + +```markdown +{{}} +This is a right-aligned paragraph. +{{}} +``` + +呈现的输出效果如下: + +{{< style "text-align: right" >}} +This is a right-aligned paragraph. +{{< /style >}} + +### `image` + +`image` shortcode 是 [`figure` shortcode](#figure) 的替代. `image` shortcode 可以充分利用 [lazysizes](https://github.com/aFarkas/lazysizes) 和 [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js) 两个依赖库. + +`image` shortcode 可以使用以下命名参数: + +* **src** + + 图片的 URL. + +* **description** + + 图片描述. + +* **title** + + 图片标题. + +* **class** + + HTML `figure` 标签的 `class` 属性. + +* **src_s** + + 图片缩略图的 URL, 用在画廊模式中. + +* **src_l** + + 高清图片的 URL, 用在画廊模式中. + +一个 `image` 示例: + +```markdown +{{}} +``` + +呈现的输出效果如下: + +{{< image src="/images/theme-documentation-shortcodes/lighthouse.jpg" title="Lighthouse (`image`)" src-s="/images/theme-documentation-shortcodes/lighthouse-small.jpg" src-l="/images/theme-documentation-shortcodes/lighthouse-large.jpg" >}} + +### `admonition` + +`admonition` shortcode 支持 **12** 种 帮助你在页面中插入提示的横幅. 同时, `Markdown` 格式文本是支持的. + +{{< admonition >}} +一个 **注意** 横幅 +{{< /admonition >}} + +{{< admonition abstract >}} +一个 **摘要** 横幅 +{{< /admonition >}} + +{{< admonition info >}} +一个 **信息** 横幅 +{{< /admonition >}} + +{{< admonition tip >}} +一个 **技巧** 横幅 +{{< /admonition >}} + +{{< admonition success >}} +一个 **成功** 横幅 +{{< /admonition >}} + +{{< admonition question >}} +一个 **问题** 横幅 +{{< /admonition >}} + +{{< admonition warning >}} +一个 **警告** 横幅 +{{< /admonition >}} + +{{< admonition failure >}} +一个 **失败** 横幅 +{{< /admonition >}} + +{{< admonition danger >}} +一个 **危险** 横幅 +{{< /admonition >}} + +{{< admonition bug >}} +一个 **Bug** 横幅 +{{< /admonition >}} + +{{< admonition example >}} +一个 **示例** 横幅 +{{< /admonition >}} + +{{< admonition quote >}} +一个 **引用** 横幅 +{{< /admonition >}} + +`admonition` shortcode 可以使用以下命名参数: + +* **type** + + `admonition` 横幅的类型, 默认值是 **note** + +* **title** + + `admonition` 横幅的标题, 默认值是横幅的类型名称 + +* **details** + + 如果设为 `true`, 横幅内容将是可展开/可折叠. + +你还可以按 **type**, **title** 和 **details** 的顺序使用位置参数. + +一个 `admonition` 示例: + +```markdown +{{}} +一个 **技巧** 横幅 +{{}} +Or +{{}} +一个 **技巧** 横幅 +{{}} +``` + +呈现的输出效果如下: + +{{< admonition tip "This is a tip" true >}} +一个 **技巧** 横幅 +{{< /admonition >}} + +### `mermaid` + +[mermaid](https://mermaidjs.github.io/) 是一个可以帮助你在文章中生成图表和流程图的库, 类似 Markdown 的语法. + +只需将你的 mermaid 代码插入 `mermaid` shortcode 中即可. + +#### 流程图 {#flowchart} + +一个 **流程图** `mermaid` 示例: + +```markdown +{{}} +graph LR; + A[Hard edge] -->|Link text| B(Round edge) + B --> C{Decision} + C -->|One| D[Result one] + C -->|Two| E[Result two] +{{}} +``` + +呈现的输出效果如下: + +{{< mermaid >}} +graph LR; + A[Hard edge] -->|Link text| B(Round edge) + B --> C{Decision} + C -->|One| D[Result one] + C -->|Two| E[Result two] +{{< /mermaid >}} + +#### 时序图 {#sequence-diagram} + +一个 **时序图** `mermaid` 示例: + +```markdown +{{}} +sequenceDiagram + participant Alice + participant Bob + Alice->>John: Hello John, how are you? + loop Healthcheck + John->John: Fight against hypochondria + end + Note right of John: Rational thoughts
prevail... + John-->Alice: Great! + John->Bob: How about you? + Bob-->John: Jolly good! +{{}} +``` + +呈现的输出效果如下: + +{{< mermaid >}} +sequenceDiagram + participant Alice + participant Bob + Alice->>John: Hello John, how are you? + loop Healthcheck + John->John: Fight against hypochondria + end + Note right of John: Rational thoughts
prevail... + John-->Alice: Great! + John->Bob: How about you? + Bob-->John: Jolly good! +{{< /mermaid >}} + +#### 甘特图 {#gantt} + +一个 **甘特图** `mermaid` 示例: + +```markdown +{{}} +gantt + dateFormat YYYY-MM-DD + title Adding GANTT diagram functionality to mermaid + section A section + Completed task :done, des1, 2014-01-06,2014-01-08 + Active task :active, des2, 2014-01-09, 3d + Future task : des3, after des2, 5d + Future task2 : des4, after des3, 5d + section Critical tasks + Completed task in the critical line :crit, done, 2014-01-06,24h + Implement parser and jison :crit, done, after des1, 2d + Create tests for parser :crit, active, 3d + Future task in critical line :crit, 5d + Create tests for renderer :2d + Add to mermaid :1d +{{}} +``` + +呈现的输出效果如下: + +{{< mermaid >}} +gantt + dateFormat YYYY-MM-DD + title Adding GANTT diagram functionality to mermaid + section A section + Completed task :done, des1, 2014-01-06,2014-01-08 + Active task :active, des2, 2014-01-09, 3d + Future task : des3, after des2, 5d + Future task2 : des4, after des3, 5d + section Critical tasks + Completed task in the critical line :crit, done, 2014-01-06,24h + Implement parser and jison :crit, done, after des1, 2d + Create tests for parser :crit, active, 3d + Future task in critical line :crit, 5d + Create tests for renderer :2d + Add to mermaid :1d +{{< /mermaid >}} + +#### 类图 {#class-diagram} + +一个 **类图** `mermaid` 示例: + +```markdown +{{}} +classDiagram + Class01 <|-- AveryLongClass : Cool + Class03 *-- Class04 + Class05 o-- Class06 + Class07 .. Class08 + Class09 --> C2 : Where am i? + Class09 --* C3 + Class09 --|> Class07 + Class07 : equals() + Class07 : Object[] elementData + Class01 : size() + Class01 : int chimp + Class01 : int gorilla + Class08 <--> C2: Cool label +{{}} +``` + +呈现的输出效果如下: + +{{< mermaid >}} +classDiagram + Class01 <|-- AveryLongClass : Cool + Class03 *-- Class04 + Class05 o-- Class06 + Class07 .. Class08 + Class09 --> C2 : Where am i? + Class09 --* C3 + Class09 --|> Class07 + Class07 : equals() + Class07 : Object[] elementData + Class01 : size() + Class01 : int chimp + Class01 : int gorilla + Class08 <--> C2: Cool label +{{< /mermaid >}} + +#### 状态图 {#state-diagram} + +一个 **状态图** `mermaid` 示例: + +```markdown +{{}} +stateDiagram + [*] --> Still + Still --> [*] + Still --> Moving + Moving --> Still + Moving --> Crash + Crash --> [*] +{{}} +``` + +呈现的输出效果如下: + +{{< mermaid >}} +stateDiagram + [*] --> Still + Still --> [*] + Still --> Moving + Moving --> Still + Moving --> Crash + Crash --> [*] +{{< /mermaid >}} + +#### Git 图 {#git-graph} + +一个 **Git 图** `mermaid` 示例: + +```markdown +{{}} +gitGraph: +options +{ + "nodeSpacing": 100, + "nodeRadius": 10 +} +end + commit + branch newbranch + checkout newbranch + commit + commit + checkout master + commit + commit + merge newbranch +{{}} +``` + +呈现的输出效果如下: + +{{< mermaid >}} +gitGraph: +options +{ + "nodeSpacing": 100, + "nodeRadius": 10 +} +end + commit + branch newbranch + checkout newbranch + commit + commit + checkout master + commit + commit + merge newbranch +{{< /mermaid >}} + +#### 饼图 {#pie} + +一个 **饼图** `mermaid` 示例: + +```markdown +{{}} +pie + "Dogs" : 386 + "Cats" : 85 + "Rats" : 15 +{{}} +``` + +呈现的输出效果如下: + +{{< mermaid >}} +pie + "Dogs" : 386 + "Cats" : 85 + "Rats" : 15 +{{< /mermaid >}} + +### `echarts` + +[ECharts](https://echarts.apache.org/) 是一个帮助你生成交互式数据可视化的库. + +ECharts 提供了常规的 [折线图](https://echarts.apache.org/zh/option.html#series-line), [柱状图](https://echarts.apache.org/zh/option.html#series-line), [散点图](https://echarts.apache.org/zh/option.html#series-scatter), [饼图](https://echarts.apache.org/zh/option.html#series-pie), [K线图](https://echarts.apache.org/zh/option.html#series-candlestick), 用于统计的 [盒形图](https://echarts.apache.org/zh/option.html#series-boxplot), 用于地理数据可视化的 [地图](https://echarts.apache.org/zh/option.html#series-map), [热力图](https://echarts.apache.org/zh/option.html#series-heatmap), [线图](https://echarts.apache.org/zh/option.html#series-lines), 用于关系数据可视化的 [关系图](https://echarts.apache.org/zh/option.html#series-graph), [treemap](https://echarts.apache.org/zh/option.html#series-treemap), [旭日图](https://echarts.apache.org/zh/option.html#series-sunburst), 多维数据可视化的 [平行坐标](https://echarts.apache.org/zh/option.html#series-parallel), 还有用于 BI 的 [漏斗图](https://echarts.apache.org/zh/option.html#series-funnel), [仪表盘](https://echarts.apache.org/zh/option.html#series-gauge), 并且支持图与图之间的混搭. + +只需在 `echarts` shortcode 中以 `JSON`/`YAML`/`TO ML`格式插入 ECharts 选项即可. + +一个 `JSON` 格式的 `echarts` 示例: + +```json +{{/* echarts */}} +{ + "title": { + "text": "折线统计图", + "top": "2%", + "left": "center" + }, + "tooltip": { + "trigger": "axis" + }, + "legend": { + "data": ["邮件营销", "联盟广告", "视频广告", "直接访问", "搜索引擎"], + "top": "10%" + }, + "grid": { + "left": "5%", + "right": "5%", + "bottom": "5%", + "top": "20%", + "containLabel": true + }, + "toolbox": { + "feature": { + "saveAsImage": { + "title": "保存为图片" + } + } + }, + "xAxis": { + "type": "category", + "boundaryGap": false, + "data": ["周一", "周二", "周三", "周四", "周五", "周六", "周日"] + }, + "yAxis": { + "type": "value" + }, + "series": [ + { + "name": "邮件营销", + "type": "line", + "stack": "总量", + "data": [120, 132, 101, 134, 90, 230, 210] + }, + { + "name": "联盟广告", + "type": "line", + "stack": "总量", + "data": [220, 182, 191, 234, 290, 330, 310] + }, + { + "name": "视频广告", + "type": "line", + "stack": "总量", + "data": [150, 232, 201, 154, 190, 330, 410] + }, + { + "name": "直接访问", + "type": "line", + "stack": "总量", + "data": [320, 332, 301, 334, 390, 330, 320] + }, + { + "name": "搜索引擎", + "type": "line", + "stack": "总量", + "data": [820, 932, 901, 934, 1290, 1330, 1320] + } + ] +} +{{}} +``` + +一个 `YAML` 格式的 `echarts` 示例: + +```yaml +{{}} +title: + text: 折线统计图 + top: 2% + left: center +tooltip: + trigger: axis +legend: + data: + - 邮件营销 + - 联盟广告 + - 视频广告 + - 直接访问 + - 搜索引擎 + top: 10% +grid: + left: 5% + right: 5% + bottom: 5% + top: 20% + containLabel: true +toolbox: + feature: + saveAsImage: + title: 保存为图片 +xAxis: + type: category + boundaryGap: false + data: + - 周一 + - 周二 + - 周三 + - 周四 + - 周五 + - 周六 + - 周日 +yAxis: + type: value +series: + - name: 邮件营销 + type: line + stack: 总量 + data: + - 120 + - 132 + - 101 + - 134 + - 90 + - 230 + - 210 + - name: 联盟广告 + type: line + stack: 总量 + data: + - 220 + - 182 + - 191 + - 234 + - 290 + - 330 + - 310 + - name: 视频广告 + type: line + stack: 总量 + data: + - 150 + - 232 + - 201 + - 154 + - 190 + - 330 + - 410 + - name: 直接访问 + type: line + stack: 总量 + data: + - 320 + - 332 + - 301 + - 334 + - 390 + - 330 + - 320 + - name: 搜索引擎 + type: line + stack: 总量 + data: + - 820 + - 932 + - 901 + - 934 + - 1290 + - 1330 + - 1320 +{{}} +``` + +一个 `TOML` 格式的 `echarts` 示例: + +```toml +{{}} +[title] +text = "折线统计图" +top = "2%" +left = "center" + +[tooltip] +trigger = "axis" + +[legend] +data = [ + "邮件营销", + "联盟广告", + "视频广告", + "直接访问", + "搜索引擎" +] +top = "10%" + +[grid] +left = "5%" +right = "5%" +bottom = "5%" +top = "20%" +containLabel = true + +[toolbox] +[toolbox.feature] +[toolbox.feature.saveAsImage] +title = "保存为图片" + +[xAxis] +type = "category" +boundaryGap = false +data = [ + "周一", + "周二", + "周三", + "周四", + "周五", + "周六", + "周日" +] + +[yAxis] +type = "value" + +[[series]] +name = "邮件营销" +type = "line" +stack = "总量" +data = [ + 120.0, + 132.0, + 101.0, + 134.0, + 90.0, + 230.0, + 210.0 +] + +[[series]] +name = "联盟广告" +type = "line" +stack = "总量" +data = [ + 220.0, + 182.0, + 191.0, + 234.0, + 290.0, + 330.0, + 310.0 +] + +[[series]] +name = "视频广告" +type = "line" +stack = "总量" +data = [ + 150.0, + 232.0, + 201.0, + 154.0, + 190.0, + 330.0, + 410.0 +] + +[[series]] +name = "直接访问" +type = "line" +stack = "总量" +data = [ + 320.0, + 332.0, + 301.0, + 334.0, + 390.0, + 330.0, + 320.0 +] + +[[series]] +name = "搜索引擎" +type = "line" +stack = "总量" +data = [ + 820.0, + 932.0, + 901.0, + 934.0, + 1290.0, + 1330.0, + 1320.0 +] +{{}} +``` + +呈现的输出效果如下: + +{{< echarts >}} +{ + "title": { + "text": "折线统计图", + "top": "2%", + "left": "center" + }, + "tooltip": { + "trigger": "axis" + }, + "legend": { + "data": ["邮件营销", "联盟广告", "视频广告", "直接访问", "搜索引擎"], + "top": "10%" + }, + "grid": { + "left": "5%", + "right": "5%", + "bottom": "5%", + "top": "20%", + "containLabel": true + }, + "toolbox": { + "feature": { + "saveAsImage": { + "title": "保存为图片" + } + } + }, + "xAxis": { + "type": "category", + "boundaryGap": false, + "data": ["周一", "周二", "周三", "周四", "周五", "周六", "周日"] + }, + "yAxis": { + "type": "value" + }, + "series": [ + { + "name": "邮件营销", + "type": "line", + "stack": "总量", + "data": [120, 132, 101, 134, 90, 230, 210] + }, + { + "name": "联盟广告", + "type": "line", + "stack": "总量", + "data": [220, 182, 191, 234, 290, 330, 310] + }, + { + "name": "视频广告", + "type": "line", + "stack": "总量", + "data": [150, 232, 201, 154, 190, 330, 410] + }, + { + "name": "直接访问", + "type": "line", + "stack": "总量", + "data": [320, 332, 301, 334, 390, 330, 320] + }, + { + "name": "搜索引擎", + "type": "line", + "stack": "总量", + "data": [820, 932, 901, 934, 1290, 1330, 1320] + } + ] +} +{{< /echarts >}} + +### `music` + +`music` shortcode 基于 [APlayer](https://github.com/MoePlayer/APlayer) 和 [MetingJS](https://github.com/metowolf/MetingJS) 提供了一个内嵌的响应式音乐播放器. + +`music` shortcode 可以使用以下命名参数: + +|参数 |默认值 |描述| +|:---------------|:------------:|:----------| +|url |**必须** |音乐的 URL| +|name |可选 |音乐名称| +|artist |可选 |音乐的创作者| +|cover |封面 |音乐封面的 URL| +|server |**必须** |音乐平台: `netease`, `tencent`, `kugou`, `xiami`, `baidu`| +|type |**必须** |`song`, `playlist`, `album`, `search`, `artist`| +|id |**必须** |song id / playlist id / album id / 搜索关键字| +|auto |可选 |音乐链接, 支持平台: `netease`, `tencent`, `xiami`| +|fixed |`false` |启用固定模式| +|mini |`false` |启用迷你模式| +|autoplay |`false` |自动播放| +|theme |`#a9a9b3` |主题色| +|loop |`all` |循环模式, 值: 'all', 'one', 'none'| +|order |`list` |播放顺序, 值: 'list', 'random'| +|volume |`0.7` |默认音量, 请注意, 播放器会记住用户设置, 用户自己设置音量后默认音量将不起作用| +|mutex |`true` |防止同时有多个播放器, 在此播放器开始播放时暂停其他播放器| +|list-folded |`false` |列表默认是否折叠| +|list-max-height |`340px` |列表最大高度| + +#### 自定义音乐 URL {#custom-music-url} + +一个 `music` 示例: + +```markdown +{{}} +``` + +呈现的输出效果如下: + +{{< music url="https://rainymood.com/audio1110/0.m4a" name=rainymood artist=rainymood cover="https://rainymood.com/i/badge.jpg" >}} + +#### 来自音乐平台的 URL 自动识别 {#automatic-identification} + +一个 `music` 示例: + +```markdown +{{}} +Or +{{}} +``` + +呈现的输出效果如下: + +{{< music auto="https://music.163.com/#/playlist?id=60198" >}} + +#### 自定义平台, 类型和 ID {#custom-server} + +一个 `music` 示例: + +```markdown +{{}} +Or +{{}} +``` + +呈现的输出效果如下: + +{{< music netease song 1868553 >}} + +### `bilibili` + +`bilibili` shortcode 提供了一个内嵌的用来播放 bilibili 视频的响应式播放器. + +如果视频只有一个部分, 则仅需要视频的 `av` ID, 例如: + +```code +https://www.bilibili.com/video/av47027633 +``` + +一个 `bilibili` 示例: + +```markdown +{{}} +Or +{{}} +``` + +呈现的输出效果如下: + +{{< bilibili av=47027633 >}} + +如果视频包含多个部分, 则除了视频的 `av` ID之外, 还需要 `p`, 默认值为 `1`, 例如: + +```code +https://www.bilibili.com/video/av36570401?p=3 +``` + +一个带有 `p` 参数的 `bilibili` 示例: + +```markdown +{{}} +Or +{{}} +``` + +呈现的输出效果如下: + +{{< bilibili av=36570401 p=3 >}} + +### `typeit` + +`typeit` shortcode 基于 [TypeIt](https://typeitjs.com/) 提供了打字动画. + +只需将你需要打字动画的内容插入 `typeit` shortcode 中即可. + +#### 简单内容 {#simple-content} + +允许使用 `Markdown` 格式的简单内容, 并且 **不包含** 富文本的块内容, 例如图像等等... + +一个 `typeit` 示例: + +```markdown +{{}} +这一个带有基于 [TypeIt](https://typeitjs.com/) 的 **打字动画** 的 *段落*... +{{}} +``` + +呈现的输出效果如下: + +{{< typeit >}} +这一个带有基于 [TypeIt](https://typeitjs.com/) 的 **打字动画** 的 *段落*... +{{< /typeit >}} + +另外, 你也可以自定义 **HTML 标签**. + +一个带有 `h4` 标签的 `typeit` 示例: + +```markdown +{{}} +这一个带有基于 [TypeIt](https://typeitjs.com/) 的 **打字动画** 的 *段落*... +{{}} +``` + +呈现的输出效果如下: + +{{< typeit tag=h4 >}} +这一个带有基于 [TypeIt](https://typeitjs.com/) 的 **打字动画** 的 *段落*... +{{< /typeit >}} + +#### 代码内容 {#code-content} + +代码内容也是允许的, 并且通过使用参数 `code` 指定语言类型可以实习语法高亮. + +一个带有 `code` 参数的 `typeit` 示例: + +```markdown +{{}} +public class HelloWorld { + public static void main(String []args) { + System.out.println("Hello World"); + } +} +{{}} +``` + +呈现的输出效果如下: + +{{< typeit code=java >}} +public class HelloWorld { + public static void main(String []args) { + System.out.println("Hello World"); + } +} +{{< /typeit >}} + +#### 分组内容 {#code-content} + +默认情况下, 所有打字动画都是同时开始的. +但是有时你可能需要按顺序开始一组 `typeit` 内容的打字动画. + +一组具有相同 `group` 参数值的 `typeit` 内容将按顺序开始打字动画. + +一个带有 `group` 参数的 `typeit` 示例: + +```markdown +{{}} +**首先**, 这个段落开始 +{{}} + +{{}} +**然后**, 这个段落开始 +{{}} +``` + +呈现的输出效果如下: + +{{< typeit group=paragraph >}} +**首先**, 这个段落开始 +{{< /typeit >}} + +{{< typeit group=paragraph >}} +**然后**, 这个段落开始 +{{< /typeit >}} diff --git a/exampleSite/static/images/markdown.png b/exampleSite/static/images/basic-markdown-syntax/featured-image.png similarity index 100% rename from exampleSite/static/images/markdown.png rename to exampleSite/static/images/basic-markdown-syntax/featured-image.png diff --git a/exampleSite/static/images/emoji.jpg b/exampleSite/static/images/emoji-support/featured-image.jpg similarity index 100% rename from exampleSite/static/images/emoji.jpg rename to exampleSite/static/images/emoji-support/featured-image.jpg diff --git a/exampleSite/static/images/hugo.png b/exampleSite/static/images/hugo.png deleted file mode 100644 index 10265e45e..000000000 Binary files a/exampleSite/static/images/hugo.png and /dev/null differ diff --git a/exampleSite/static/images/theme-documentation-basics/basic-configuration-preview.png b/exampleSite/static/images/theme-documentation-basics/basic-configuration-preview.png new file mode 100644 index 000000000..06424caef Binary files /dev/null and b/exampleSite/static/images/theme-documentation-basics/basic-configuration-preview.png differ diff --git a/exampleSite/static/images/theme-documentation-basics/complete-configuration-preview.gif b/exampleSite/static/images/theme-documentation-basics/complete-configuration-preview.gif new file mode 100644 index 000000000..fcdef0830 Binary files /dev/null and b/exampleSite/static/images/theme-documentation-basics/complete-configuration-preview.gif differ diff --git a/exampleSite/static/images/theme-documentation-basics/featured-image.webp b/exampleSite/static/images/theme-documentation-basics/featured-image.webp new file mode 100644 index 000000000..a9c94200e Binary files /dev/null and b/exampleSite/static/images/theme-documentation-basics/featured-image.webp differ diff --git a/exampleSite/static/images/theme-documentation-basics/language-switch.gif b/exampleSite/static/images/theme-documentation-basics/language-switch.gif new file mode 100644 index 000000000..ce3d8a3d0 Binary files /dev/null and b/exampleSite/static/images/theme-documentation-basics/language-switch.gif differ diff --git a/exampleSite/static/images/theme-documentation-content/featured-image.jpg b/exampleSite/static/images/theme-documentation-content/featured-image.jpg new file mode 100644 index 000000000..2fcae9ea3 Binary files /dev/null and b/exampleSite/static/images/theme-documentation-content/featured-image.jpg differ diff --git a/exampleSite/static/images/theme-documentation-content/summary.png b/exampleSite/static/images/theme-documentation-content/summary.png new file mode 100644 index 000000000..7e040cd80 Binary files /dev/null and b/exampleSite/static/images/theme-documentation-content/summary.png differ diff --git a/exampleSite/static/images/theme-documentation-shortcodes/featured-image.jpg b/exampleSite/static/images/theme-documentation-shortcodes/featured-image.jpg new file mode 100644 index 000000000..5fa138310 Binary files /dev/null and b/exampleSite/static/images/theme-documentation-shortcodes/featured-image.jpg differ diff --git a/exampleSite/static/images/theme-documentation-shortcodes/lighthouse-large.jpg b/exampleSite/static/images/theme-documentation-shortcodes/lighthouse-large.jpg new file mode 100644 index 000000000..f4da68e60 Binary files /dev/null and b/exampleSite/static/images/theme-documentation-shortcodes/lighthouse-large.jpg differ diff --git a/exampleSite/static/images/theme-documentation-shortcodes/lighthouse-small.jpg b/exampleSite/static/images/theme-documentation-shortcodes/lighthouse-small.jpg new file mode 100644 index 000000000..f73d5eadb Binary files /dev/null and b/exampleSite/static/images/theme-documentation-shortcodes/lighthouse-small.jpg differ diff --git a/exampleSite/static/images/theme-documentation-shortcodes/lighthouse.jpg b/exampleSite/static/images/theme-documentation-shortcodes/lighthouse.jpg new file mode 100644 index 000000000..d72a27b4a Binary files /dev/null and b/exampleSite/static/images/theme-documentation-shortcodes/lighthouse.jpg differ diff --git a/exampleSite/zh/config.toml b/exampleSite/zh/config.toml deleted file mode 100644 index 9f12b820c..000000000 --- a/exampleSite/zh/config.toml +++ /dev/null @@ -1,346 +0,0 @@ -baseURL = "https://example.com/" -# 网站语言 -languageCode = "zh" -# [en, zh, ...] 设定主题的国际化 -defaultContentLanguage = "zh" -# 网站标题 -title = "LoveIt 主题" -# 主题 -theme = "LoveIt" -# 是否使用 git 信息来生成文章的上次修改时间 -enableGitInfo = false -# 是否包括中日韩文字 -hasCJKLanguage = true -# 默认每页列表显示的文章数目 -paginate = 12 -# 是否使用 emoji 代码 -enableEmoji = true -# 是否使用 robots.txt -enableRobotsTXT = true -# [UA-XXXXXXXX-X] 谷歌分析代号 -googleAnalytics = "" -# 版权描述,仅仅用于 SEO -copyright = "This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License." -# 日期格式 -dateFormatToUse = "2006-01-02" - -# Hugo 解析文档的配置 -[markup] - # 代码高亮设置 (https://gohugo.io/content-management/syntax-highlighting) - [markup.highlight] - codeFences = true - guessSyntax = true - lineNoStart = 1 - lineNos = true - lineNumbersInTable = true - noClasses = false - style = "monokai" - tabWidth = 4 - # Goldmark 是 Hugo 0.60 以来的默认 Markdown 解析库 - [markup.goldmark] - [markup.goldmark.extensions] - definitionList = true - footnote = true - linkify = true - strikethrough = true - table = true - taskList = true - typographer = true - [markup.goldmark.renderer] - # 是否在文档中直接使用 HTML 标签 - unsafe = true - # 目录设置 - [markup.tableOfContents] - startLevel = 2 - endLevel = 6 - -# 作者信息 -[author] - name = "xxxx" - link = "" - -# 网站地图信息 -[sitemap] - changefreq = "weekly" - filename = "sitemap.xml" - priority = 0.5 - -# Permalinks 信息 (https://gohugo.io/content-management/urls/#permalinks) -[Permalinks] - posts = ":year/:month/:filename" - -# 菜单信息 -[menu] - [[menu.main]] - identifier = "posts" - name = "文章" - url = "posts" - weight = 1 - - [[menu.main]] - identifier = "tags" - name = "标签" - url = "tags" - weight = 2 - - [[menu.main]] - identifier = "categories" - name = "分类" - url = "categories" - weight = 3 - - [[menu.main]] - identifier = "about" - name = "关于" - url = "about" - weight = 4 - - [[menu.main]] - identifier = "en" - pre = '' - name = "" - title = "English" - url = "https://hugo-loveit-en.netlify.com" - weight = 5 - -[params] - # LoveIt 主题版本 - version = "0.1.X" - # 网站描述 - description = "关于 LoveIt 主题" - # 网站关键词 - keywords = ["Theme", "Hugo"] - - # 主页信息设置 - ## [post, other] 主页模式 - home_mode = "post" - ## 主页在 post 模式下每页 post 显示数量 - home_paginate = 6 - ## 主页显示头像的 URL - avatar = "images/avatar.png" - ## 主页显示的网站副标题 - subtitle = "一个简洁、优雅且高效的 Hugo 主题" - - # 在文章页面是否使用分享功能 - socialShare = true - - # 页面底部版权信息设置 - ## 网站创立年份 - since = 2019 - ## ICP 备案信息,仅在中国使用 (允许使用 HTML 格式) - icp = "" - ## 许可协议信息 (允许使用 HTML 格式) - license= 'CC BY-NC 4.0' - - # 用于生成文章上次修改时间的公共 git 仓库路径,仅在 enableGitInfo 设为 true 时有效 - gitRepo = "" - - # 数学公式 (KaTeX https://katex.org/) - [params.math] - enable = true - block_left_delimiter = "" - block_right_delimiter = "" - inline_left_delimiter = "$" - inline_right_delimiter = "$" - # KaTeX 插件 copy_tex - copy_tex = true - # KaTeX 插件 mhchem - mhchem = true - - # 是否在文章页面显示原始 Markdown 文档链接 - linkToMarkdown = true - - # 网站验证代码,用于 Google/Bing/Yandex/Pinterest/Baidu - google_verification = "" - bing_verification = "" - yandex_verification = "" - pinterest_verification = "" - baidu_verification = "" - - # CSS 和 JS 文件的 CDN 设置 - [params.cdn] - ## 例如 '' - fontawesome_free_css = '' - animate_css = '' - gitalk_css = '' - gitalk_js = '' - valine_js = '' - jquery_js = '' - lazysizes_js = '' - smooth_scroll_js = '' - katex_css = '' - katex_js = '' - katex_auto_render_js = '' - katex_copy_tex_css = '' - katex_copy_tex_js = '' - katex_mhchem_js = '' - mermaid_js = '' - echarts_js = '' - echarts_macarons_js = '' - typeit_js = '' - jquery_countdown_js = '' - aplayer_css = '' - aplayer_js = '' - meting_js = '' - - # Gravatar 信息,用于优先在主页显示的头像 - [params.gravatar] - email = "" - - # 主页的社交信息设置 - [params.social] - GitHub = "xxxx" - Linkedin = "xxxx" - Twitter = "xxxx" - #Instagram = "xxxx" - Email = "xxxx@outlook.com" - Facebook = "xxxx" - Telegram = "xxxx" - #Medium = "xxxx" - #Gitlab = "xxxx" - #Youtubelegacy = "xxxx" - #Youtubecustom = "xxxx" - #Youtubechannel = "xxxx" - #Tumblr ="xxxx" - #Quora = "xxxx" - #Keybase = "xxxx" - #Pinterest = "xxxx" - #Reddit = "xxxx" - #Codepen = "xxxx" - #FreeCodeCamp = "xxxx" - #Bitbucket = "xxxx" - #Stackoverflow = "xxxx" - #Weibo = "xxxx" - #Odnoklassniki = "xxxx" - #VKontakte = "xxxx" - #Flickr = "xxxx" - #Xing = "xxxx" - #Snapchat = "xxxx" - #Soundcloud = "xxxx" - #Spotify = "xxxx" - #Bandcamp = "xxxx" - #Paypal = "xxxx" - #Fivehundredpx = "xxxx" - #Mix = "xxxx" - #Goodreads = "xxxx" - #Lastfm = "xxxx" - #Foursquare = "xxxx" - #Hackernews = "xxxx" - #Kickstarter = "xxxx" - #Patreon = "xxxx" - #Steam = "xxxx" - #Twitch = "xxxx" - #Strava = "xxxx" - #Skype = "xxxx" - #Whatsapp = "xxxx" - #Zhihu = "xxxx" - #Douban = "xxxx" - #Angellist = "xxxx" - #Slidershare = "xxxx" - #Jsfiddle = "xxxx" - #Deviantart = "xxxx" - #Behance = "xxxx" - #Dribble = "xxxx" - #Wordpress = "xxxx" - #Vine = "xxxx" - #Googlescholar = "xxxx" - #Researchgate = "xxxx" - #Mastodon = "xxxx" - #Thingiverse = "xxxx" - #Devto = "xxxx" - #Gitea = "xxxx" - #XMPP = "xxxx" - #Matrix ="xxxx" - - # 文章页面的分享信息设置 - [params.share] - enable = true - Twitter = true - Facebook = true - Reddit = true - #Linkedin = true - #Pinterest = true - #HackerNews = true - #Mix = true - #Tumblr = true - #VKontakte = true - #Weibo = true - - # 出版者信息,仅用于 SEO - [params.publisher] - name = "xxxx" - [params.publisher.logo] - url = "logo.png" - width = 127 - height = 40 - - # 网站图标信息,仅用于 SEO - [params.logo] - url = "logo.png" - width = 127 - height = 40 - - # 网站图标信息,仅用于 SEO - [params.image] - url = "cover.png" - width = 800 - height = 600 - - # Disqus 评论系统设置 (https://disqus.com/) - [params.disqus] - # Disqus 的用户名,用来在文章中启用 Disqus 评论系统 - shortname = "dillonzq" - - # Gittalk 评论系统设置 (https://github.com/gitalk/gitalk) - [params.gitalk] - owner = "" - repo = "" - clientId = "" - clientSecret = "" - - # Valine 评论系统设置 (https://github.com/xCss/Valine) - [params.valine] - enable = false - appId = "" - appKey = "" - notify = false - verify = true - avatar = "mp" - placeholder = "你的评论 ..." - visitor = true - recordIP = true - - # Facebook 评论系统设置 (https://developers.facebook.com/docs/plugins/comments) - [params.facebook] - enable = false - width = "100%" - numPosts = 10 - appId = "" - languageCode = "en_US" - -# 隐私信息设置 (https://gohugo.io/about/hugo-and-gdpr/) -[privacy] - [privacy.googleAnalytics] - anonymizeIP = true - - [privacy.youtube] - privacyEnhanced = true - -# 用于输出 Markdown 格式文档的设置 -[mediaTypes] - [mediaTypes."text/plain"] - suffixes = ["md"] - -# 用于输出 Markdown 格式文档的设置 -[outputFormats.MarkDown] - mediaType = "text/plain" - isPlainText = true - isHTML = false - -# 用于 Hugo 输出文档的设置 -[outputs] - home = ["HTML", "RSS"] - page = ["HTML", "MarkDown"] - section = ["HTML", "RSS"] - taxonomy = ["HTML", "RSS"] - taxonomyTerm = ["HTML"] diff --git a/exampleSite/zh/config/css/_custom.scss b/exampleSite/zh/config/css/_custom.scss deleted file mode 100644 index 96aca03a0..000000000 --- a/exampleSite/zh/config/css/_custom.scss +++ /dev/null @@ -1,15 +0,0 @@ -// ============================== -// Custom style -// 自定义样式 -// ============================== -// You can override the variables in assets/css/_variables.scss to customize the style -// 您可以覆盖 assets/css/_variables.scss 中的变量以自定义样式 - -@import url(https://fonts.googleapis.com/css?family=Lato:100,300,400,700,900); - -$global-font-family: Lato, -apple-system, BlinkMacSystemFont, PingFang SC, Microsoft Yahei, Segoe UI, Helvetica, Arial, sans-serif, Segoe UI Emoji; - - -@import url('https://fonts.googleapis.com/css?family=Fira+Mono:400,700&display=swap&subset=latin-ext'); - -$code-font-family: Fira Mono, Source Code Pro, Menlo, Consolas, Monaco, monospace; diff --git a/exampleSite/zh/content/about.md b/exampleSite/zh/content/about.md deleted file mode 100644 index 8bc3ba66e..000000000 --- a/exampleSite/zh/content/about.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: "关于 LoveIt" -date: 2019-08-02T11:04:49+08:00 -draft: false ---- - -[LoveIt :(far fa-heart):](https://github.com/dillonzq/LoveIt) 是一个由 [Dillon](https://dillonzq.com) 开发的**简洁**、**优雅**且**高效**的 [Hugo](https://gohugo.io/) 博客主题。 - -它的原型基于 [LeaveIt 主题](https://github.com/liuzc/LeaveIt/) 和 [KeepIt 主题](https://github.com/liuzc/LeaveIt/)。 - -![Hugo 主题 LoveIt](/images/Apple-Devices-Preview.png) - -### 特性 - -#### 性能和 SEO - -* :(fas fa-rocket): 性能优化:在 [Google PageSpeed Insights](https://developers.google.com/speed/pagespeed/insights) 中, 99/100 的移动设备得分和 100/100 的桌面设备得分 -* :(fab fa-searchengin): 使用基于 JSON-LD 格式 的 SEO SCHEMA 文件进行 SEO 优化 -* :(fab fa-google): 支持 [Google Analytics](https://analytics.google.com/analytics) -* :(fas fa-search): 支持搜索引擎的网站验证 (Google, Bind, Yandex and Baidu) -* :(fas fa-tachometer-alt): 支持所有第三方库的 CDN -* :(far fa-images): 基于 [lazysizes](https://github.com/aFarkas/lazysizes) 自动转换图片为懒加载 - -#### 外观和布局 - -* :(fas fa-desktop): / :(fas fa-mobile): 响应式布局 -* :(fas fa-moon): / :(fas fa-sun): 模式 -* :(fas fa-layer-group): 页面和列表保持一致的视觉样式 -* :(fas fa-ellipsis-h): 支持分页 -* :(far fa-list-alt): 易用和自动展开的文章目录,同时适配移动端 -* :(fas fa-language): 支持多语言和国际化 -* :(fab fa-css3-alt): 美观的 CSS 动画 - -#### 社交和评论系统 - -* :(far fa-user): 支持 [Gravatar](https://gravatar.com) 头像 -* :(fas fa-user-circle): 支持本地头像 -* :(far fa-id-card): 支持多达 54 种社交链接 -* :(fas fa-share-square): 支持文章分享 -* :(far fa-comment): 支持 [Disqus](https://disqus.com) 评论系统 -* :(far fa-comment-dots): 支持 [Gitalk](https://github.com/gitalk/gitalk) 评论系统 -* :(far fa-comment-alt): 支持 [Valine](https://valine.js.org/) 评论系统 - -#### 扩展功能 - -* :(fas fa-code): 基于 Hugo 使用的 chroma 进行代码高亮 -* :(fab fa-font-awesome): 使用 [Font Awesome](https://fontawesome.com/) 图标的扩展 Markdown 语法 -* :(fas fa-square-root-alt): 支持基于 [Katex](https://katex.org/) 的数学公式 -* :(fas fa-project-diagram): 支持基于 [mermaid](https://github.com/knsv/mermaid) 的图表和流程图生成功能 -* :(fas fa-music): 支持基于 [APlayer](https://github.com/MoePlayer/APlayer) 和 [MetingJS](https://github.com/metowolf/MetingJS) 的内嵌音乐播放器 -* :(fas fa-tv): 支持内嵌 Bilibili 视频 -* :(far fa-bell): 支持多种提醒样式的 shortcode -* :(fas fa-align-left): 支持自定义对齐和浮动方式的 shortcode -* :(fas fa-i-cursor): 支持基于 [TypeIt](https://typeitjs.com/) 的打字动画 -* :(far fa-clock): 支持基于 [jQuery.countdown](https://github.com/hilios/jQuery.countdown) 的倒计时动画 -* :(fas fa-arrow-up): 支持基于 [Smooth Scroll](https://github.com/cferdinandi/smooth-scroll) 的回到顶部动画 -* ... - -### 许可协议 - -LoveIt 根据 MIT 许可协议授权。 - -更多信息请查看 [LICENSE 文件](https://github.com/dillonzq/LoveIt/blob/master/LICENSE)。 - -感谢以下在主题中使用过的项目的作者: - -* [Font Awesome](https://fontawesome.com/) -* [Animate.css](https://daneden.github.io/animate.css/) -* [lazysizes](https://github.com/aFarkas/lazysizes) -* [Smooth Scroll](https://github.com/cferdinandi/smooth-scroll) -* [TypeIt](https://typeitjs.com/) -* [jQuery](https://github.com/jquery/jquery) -* [jQuery.countdown](https://github.com/hilios/jQuery.countdown) -* [Katex](https://katex.org/) -* [mermaid](https://github.com/knsv/mermaid) -* [APlayer](https://github.com/MoePlayer/APlayer) -* [MetingJS](https://github.com/metowolf/MetingJS) -* [Gitalk](https://github.com/gitalk/gitalk) -* [Valine](https://valine.js.org/) diff --git a/exampleSite/zh/content/posts/Basic-Markdown-Preview.md b/exampleSite/zh/content/posts/Basic-Markdown-Preview.md deleted file mode 100644 index 86b94aacb..000000000 --- a/exampleSite/zh/content/posts/Basic-Markdown-Preview.md +++ /dev/null @@ -1,943 +0,0 @@ ---- -author: "" -author_link: "" -title: "Markdown 基本语法预览" -date: 2019-08-25T16:22:42+08:00 -lastmod: 2019-08-25T16:22:42+08:00 -draft: false -description: "这是一篇用于预览 Markdown 基本语法的文章。" -show_in_homepage: true -description_as_summary: false -license: "" - -tags: [ - "Hugo", - "主题", -] -categories: [ - "预览", -] - -featured_image: "" -featured_image_preview: "" - -comment: true -toc: true -auto_collapse_toc: true -math: true ---- - -这是一篇用于预览 :(fab fa-markdown): Markdown 基本语法的文章。 - -文章内容基于 [GitHub Flavored Markdown Spec](https://github.github.com/gfm)。 - -不包含复杂的规则说明,仅仅展示 GFM 所约定的 Markdown 基本语法。 - - - -## 1 引言 - -:(fab fa-markdown): **Markdown** 是一种用于编写结构化文档的纯文本格式。它基于电子邮件和论坛文章的格式所约定。 -它由 John Gruber (在 Aaron Swartz 的帮助下)开发,于 2004 年以语法描述和用于将 Markdown 转换为 HTML 的 Perl 脚本 (Markdown.pl) 的形式发布。 - -在接下来的十年中,许多实现被开发出来。一些用脚注、表和其他文档元素的约定扩展了原始 Markdown 语法。 -有些允许 Markdown 文档以 HTML 以外的格式呈现。 像 reddit,StackOverflow 和 GitHub 这样的网站有上百万的用户在使用 Markdown。 -Markdown 开始被应用于网络以外的领域,包括作者书籍、文章、幻灯片、信件和课堂笔记。 - -## 2 块和内联元素 - -我们可以把一个文档看成一系列的块,如段落、引用、列表、标题和代码块。 - -有些块(如引号和列表)可以包含其它的块,即 **容器块**; -其他的块(如标题和段落)则包含内联元素(如文本、链接、强调、图像、内联代码等),即 **叶子块**。 - -块的符号总是优先于内联元素的符号。例如: - -```markdown -- `one -- two` -``` - -- `one -- two` - -## 3 叶子块 - -本节描述用于组成 Markdown 文档的不同类型的叶子块。 - -### 3.1 换行符 - -```markdown -*** ------- - ____ -``` - -*** ------- - ____ - -### 3.2 标题 - -{{% admonition "note" "关于 ATX 风格标题和 Setext 风格标题" %}} -本文只展示 ATX 风格标题,关于 Setext 风格标题的介绍请参考 [GFM Setext headings 说明](https://github.github.com/gfm/#setext-heading)。 - -笔者不推荐在 Hugo 的 Markdown 文档中使用 Setext 风格标题。 -{{% /admonition %}} - -```markdown -## H2 二级标题 -### H3 三级标题 -#### H4 四级标题 -##### H5 五级标题 -###### H6 六级标题 -``` - -## H2 二级标题 - -### H3 三级标题 - -#### H4 四级标题 - -##### H5 五级标题 - -###### H6 六级标题 - -### 3.3 代码块 - -{{% admonition "note" "关于缩进式代码块和围栏式代码块" %}} -本文只展示围栏式代码块,关于缩进式代码块的介绍请参考 [GFM Indented code blocks 说明](https://github.github.com/gfm/#indented-code-block)。 - -笔者不推荐在 Hugo 的 Markdown 文档中使用缩进式代码块。 -{{% /admonition %}} - -``````markdown -``` -foo() -``` - -~~~ -foo() -~~~ - -```` -foo() -```` - -```ruby -def foo(x) - return 3 -end -``` -`````` - -``` -foo() -``` - -~~~ -foo() -~~~ - -```` -foo() -```` - -```ruby -def foo(x) - return 3 -end -``` - -{{< highlight go "hl_lines=3 5-7,linenostart=20" >}} -package main - -import "fmt" - -func main() { - fmt.Println("Hello, 世界") -} -{{< / highlight >}} - -### 3.4 段落 - -```markdown -这是一个段落。 -这还是之前段落的一部分。 - -这是新的段落。 -``` - -这是一个段落。 -这还是之前段落的一部分。 - -这是新的段落。 - -### 3.5 引用链接的定义 - -```markdown -[foo]: /url "title" - -[foo] - -[bar]: /url - -[bar] -``` - -[foo]: /url "title" - -[foo] - -[bar]: /url - -[bar] - -### 3.6 空白行 - -块之间的空白行将被忽略,除了它们在确定列表是紧还是松时所起的作用。 - -文档开头和结尾的空行也会被忽略。 - -## 4 容器块 - -### 4.1 引用 - -```markdown -> Foo -> -> - **bar** -> - baz -``` - -> Foo -> -> - **bar** -> - baz - -### 4.2 无序列表 - -```markdown -- 项目 1 - * 项目 A - - 项目 B - 一些说明 - + 项目 a - * 项目 b - - 项目 c - + 项目 C -+ 项目 2 -* 项目 3 -``` - -- 项目 1 - * 项目 A - - 项目 B - 一些说明 - + 项目 a - * 项目 b - - 项目 c - + 项目 C -+ 项目 2 -* 项目 3 - -### 4.3 有序列表 - -```markdown -1. 项目 1 - 1. 项目 A - 2. 项目 B - 一些说明 - 1. 项目 a - 2. 项目 b - 3. 项目 c - 3. 项目 C -2. 项目 2 -3. 项目 3 -``` - -1. 项目 1 - 1. 项目 A - 2. 项目 B - 一些说明 - 1. 项目 a - 2. 项目 b - 3. 项目 c - 3. 项目 C -2. 项目 2 -3. 项目 3 - -### 4.4 任务列表 - -```markdown -- [ ] 任务 1 - * [X] 任务 A - - 任务 B - + [ ] 任务 a - * [ ] 任务 b - - [X] 任务 c - + [X] 任务 C -+ [ ] 任务 2 -* [X] 任务 3 -``` - -- [ ] 任务 1 - * [X] 任务 A - - 任务 B - + [ ] 任务 a - * [ ] 任务 b - - [X] 任务 c - + [X] 任务 C -+ [ ] 任务 2 -* [X] 任务 3 - -### 4.5 表格 - -```markdown -| _颜色_ | 水果 | 蔬菜 | -| ---------- |:---------------:| -----------:| -| 红色 | *苹果* | 辣椒 | -| ~~橙色~~ | 橘子 | **胡萝卜** | -| 绿色 | ~~***梨子***~~ | 菠菜 | -``` - -| _颜色_ | 水果 | 蔬菜 | -| ---------- |:---------------:| -----------:| -| 红色 | *苹果* | 辣椒 | -| ~~橙色~~ | 橘子 | **胡萝卜** | -| 绿色 | ~~***梨子***~~ | 菠菜 | - - -## 3. 页内锚 - -```markdown -[脚注](#footnote) - -## 4. 脚注 {#footnote} -``` - -[脚注](#footnote) - -## 4. 脚注 {#footnote} - -```markdown -这是一个基本的数字脚注[^1] - -带有 "label" 标签的脚注[^label] - -下定义的脚注[^!DEF] - -带有链接的脚注[^pa] - -[^1]: 这是一个基本的数字脚注 -[^label]: 带有 "label" 标签的脚注 -[^pa]: [LoveIt 主题](https://github.com/dillonzq/LoveIt) -[^!DEF]: 下定义的脚注 -``` - -这是一个基本的数字脚注[^1] - -带有 "label" 标签的脚注[^label] - -下定义的脚注[^!DEF] - -带有链接的脚注[^pa] - -[^1]: 这是一个基本的数字脚注 -[^label]: 带有 "label" 标签的脚注 -[^pa]: [LoveIt 主题](https://github.com/dillonzq/LoveIt) -[^!DEF]: 下定义的脚注 - -## 5. 内联格式 - -```markdown -`内联代码块` - -ctrl+alt+del - -**加粗 1** 和 __加粗 2__ - -*倾斜 1* 和 _倾斜 2_ - -~~删除线~~ - -***加粗 1 和 倾斜 1*** - -___加粗 2 和 倾斜 2___ - -__*加粗 2 和 倾斜 1*__ - -**_加粗 1 和 倾斜 2_** - -~~*删除线 倾斜 1*~~ 和 *~~删除线 倾斜 2~~* - -~~_删除线 倾斜 2_~~ 和 _~~删除线 倾斜 2~~_ - -~~**删除线 加粗 1**~~ 和 **~~删除线 加粗 1~~** - -~~__删除线 加粗 2__~~ 和 __~~删除线 加粗 2~~__ - -~~***删除线 倾斜 1 加粗 1***~~ 和 ***~~删除线 倾斜 1 加粗 1~~*** - -~~___删除线 倾斜 2 加粗 2___~~ 和 ___~~删除线 倾斜 2 加粗 2~~___ - -**~~*删除线 倾斜 1 加粗 1*~~** 和 *~~**删除线 倾斜 1 加粗 1**~~* - -__~~_删除线 倾斜 2 加粗 2_~~__ 和 _~~__删除线 倾斜 2 加粗 2__~~_ - -**~~_删除线 倾斜 2 加粗 1_~~** 和 _~~**删除线 倾斜 2 加粗 1**~~_ - -__~~*删除线 倾斜 1 加粗 2*~~__ 和 *~~__删除线 倾斜 1 加粗 2__~~* -``` - -`内联代码块` - -ctrl+alt+del - -**加粗 1** 和 __加粗 2__ - -*倾斜 1* 和 _倾斜 2_ - -~~删除线~~ - -***加粗 1 和 倾斜 1*** - -___加粗 2 和 倾斜 2___ - -__*加粗 2 和 倾斜 1*__ - -**_加粗 1 和 倾斜 2_** - -~~*删除线 倾斜 1*~~ 和 *~~删除线 倾斜 2~~* - -~~_删除线 倾斜 2_~~ 和 _~~删除线 倾斜 2~~_ - -~~**删除线 加粗 1**~~ 和 **~~删除线 加粗 1~~** - -~~__删除线 加粗 2__~~ 和 __~~删除线 加粗 2~~__ - -~~***删除线 倾斜 1 加粗 1***~~ 和 ***~~删除线 倾斜 1 加粗 1~~*** - -~~___删除线 倾斜 2 加粗 2___~~ 和 ___~~删除线 倾斜 2 加粗 2~~___ - -**~~*删除线 倾斜 1 加粗 1*~~** 和 *~~**删除线 倾斜 1 加粗 1**~~* - -__~~_删除线 倾斜 2 加粗 2_~~__ 和 _~~__删除线 倾斜 2 加粗 2__~~_ - -**~~_删除线 倾斜 2 加粗 1_~~** 和 _~~**删除线 倾斜 2 加粗 1**~~_ - -__~~*删除线 倾斜 1 加粗 2*~~__ 和 *~~__删除线 倾斜 1 加粗 2__~~* - -## 6. 图片 - -```markdown -Web image -![Web Picture](https://static.dillonzq.com/images/20190817130904-U6cPUk.jpg "Web Picture") - -Local image -![Local Picture](/images/Apple-Devices-Preview.png) - -contact@revolunet.com - -@revolunet - -Issue #1 - -https://github.com/revolunet/sublimetext-markdown-preview/ - -This is a link https://github.com/revolunet/sublimetext-markdown-preview/. - -This is a link "https://github.com/revolunet/sublimetext-markdown-preview/". - -With this link (https://github.com/revolunet/sublimetext-markdown-preview/), it still works. -``` - -Web image -![Web Picture](https://static.dillonzq.com/images/20190817130904-U6cPUk.jpg "Web Picture") - -Local image -![Local Picture](/images/Apple-Devices-Preview.png) - - - - - -@revolunet - -Issue #1 - -https://github.com/revolunet/sublimetext-markdown-preview/ - -This is a link https://github.com/revolunet/sublimetext-markdown-preview/. - -This is a link "https://github.com/revolunet/sublimetext-markdown-preview/". - -With this link (https://github.com/revolunet/sublimetext-markdown-preview/), it still works. - -## Abbreviation - -Abbreviations source are found in a separate markdown file specified in frontmatter. -``` -The HTML specification -is maintained by the W3C. - -*[HTML]: Hyper Text Markup Language -*[W3C]: World Wide Web Consortium -``` - -The HTML specification -is maintained by the W3C. - -## Unordered List - -``` -Unordered List - -- item 1 - * item A - * item B - more text - + item a - + item b - + item c - * item C -- item 2 -- item 3 -``` - -Unordered List - -- item 1 - * item A - * item B - more text - + item a - + item b - + item c - * item C -- item 2 -- item 3 - -## Ordered List - -``` -Ordered List - -1. item 1 - 1. item A - 2. item B - more text - 1. item a - 2. item b - 3. item c - 3. item C -2. item 2 -3. item 3 -``` - -Ordered List - -1. item 1 - 1. item A - 2. item B - more text - 1. item a - 2. item b - 3. item c - 3. item C -2. item 2 -3. item 3 - -## Mixed Lists - -`Really Mixed Lists` should break with `sane_lists` on. - -``` -Mixed Lists - -- item 1 - * [X] item A - * [ ] item B - more text - 1. item a - 2. itemb - 3. item c - * [X] item C -- item 2 -- item 3 - - -Really Mixed Lists - -- item 1 - * [X] item A - - item B - more text - 1. item a - + itemb - + [ ] item c - 3. item C -2. item 2 -- [X] item 3 -``` - -Mixed Lists - -- item 1 - * [X] item A - * [ ] item B - more text - 1. item a - 2. itemb - 3. item c - * [X] item C -- item 2 -- item 3 - - -Really Mixed Lists - -- item 1 - * [X] item A - - item B - more text - 1. item a - + itemb - + [ ] item c - 3. item C -2. item 2 -- [X] item 3 - -## Blocks - -``` - This is a block. - - This is more of a block. - -``` - - This is a block. - - This is more of a block. - -## Block Quotes - -``` -> This is a block quote ->> How does it look? -``` - -> This is a block quote. ->> How does it look? -> I think it looks good. - -## Fenced Block - -Assuming guessing is not enabled. - -````` -``` -// Fenced **without** highlighting -function doIt() { - for (var i = 1; i <= slen ; i^^) { - setTimeout("document.z.textdisplay.value = newMake()", i*300); - setTimeout("window.status = newMake()", i*300); - } -} -``` - -```javascript -// Fenced **with** highlighting -function doIt() { - for (var i = 1; i <= slen ; i^^) { - setTimeout("document.z.textdisplay.value = newMake()", i*300); - setTimeout("window.status = newMake()", i*300); - } -} -``` -````` - -``` -// Fenced **without** highlighting -function doIt() { - for (var i = 1; i <= slen ; i^^) { - setTimeout("document.z.textdisplay.value = newMake()", i*300); - setTimeout("window.status = newMake()", i*300); - } -} -``` - -```javascript -// Fenced **with** highlighting -function doIt() { - for (var i = 1; i <= slen ; i^^) { - setTimeout("document.z.textdisplay.value = newMake()", i*300); - setTimeout("window.status = newMake()", i*300); - } -} -``` - -## Tables - -``` -| _颜色_ | 水果 | 蔬菜 | -| ------------- |:---------------:| -----------------:| -| red | *苹果* | [辣椒](#Tables) | -| ~~橙色~~ | 橘子 | **胡萝卜** | -| 绿色 | ~~***梨子***~~ | 菠菜 | -``` - -| _颜色_ | 水果 | 蔬菜 | -| ------------- |:---------------:| ------------:| -| red | *苹果* | [辣椒](#Tables) | -| ~~橙色~~ | 橘子 | **胡萝卜** | -| 绿色 | ~~***梨子***~~ | 菠菜 | - -Class or Enum | Year | Month | Day | Hours | Minutes | Seconds* | Zone Offset | Zone ID | toString Output | Where Discussed ------------------------ | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |:-------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------:| ------------------------------------------------------------------------------------- |:-------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------:| -------------------------------------------------- | --------------------------------------------------------------------------------------------------- -`Instant` | | | | | |
![checked](/favicon-16x16.png)
| | | `2013-08-20T15:16:26.355Z` | [Instant Class](https://docs.oracle.com/javase/tutorial/datetime/iso/instant.html) -`LocalDate` |
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
| | | | | | `2013-08-20` | [Date Classes](https://docs.oracle.com/javase/tutorial/datetime/iso/date.html) -`LocalDateTime` |
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
| | | `2013-08-20T08:16:26.937` | [Date and Time Classes](https://docs.oracle.com/javase/tutorial/datetime/iso/datetime.html) -`ZonedDateTime` |
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
| `2013-08-21T00:16:26.941+09:00[Asia/Tokyo]` | [Time Zone and Offset Classes](https://docs.oracle.com/javase/tutorial/datetime/iso/timezones.html) -`LocalTime` | | | |
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
| | | `08:16:26.943` | [Date and Time Classes](https://docs.oracle.com/javase/tutorial/datetime/iso/datetime.html) -`MonthDay` | |
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
| | | | | | `--08-20` | [Date Classes](https://docs.oracle.com/javase/tutorial/datetime/iso/date.html) -`Year` |
![checked](/favicon-16x16.png)
| | | | | | | | `2013` | [Date Classes](https://docs.oracle.com/javase/tutorial/datetime/iso/date.html) -`YearMonth` |
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
| | | | | | | `2013-08` | [Date Classes](https://docs.oracle.com/javase/tutorial/datetime/iso/date.html) -`Month` | |
![checked](/favicon-16x16.png)
| | | | | | | `AUGUST` | [DayOfWeek and Month Enums](https://docs.oracle.com/javase/tutorial/datetime/iso/enum.html) -`OffsetDateTime` |
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
| | `2013-08-20T08:16:26.954-07:00` | [Time Zone and Offset Classes](https://docs.oracle.com/javase/tutorial/datetime/iso/timezones.html) -`OffsetTime` | | | |
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
| | `08:16:26.957-07:00` | [Time Zone and Offset Classes](https://docs.oracle.com/javase/tutorial/datetime/iso/timezones.html) -`Duration` | | | \** | \** | \** |
![checked](/favicon-16x16.png)
| | | `PT20H` (20 hours) | [Period and Duration](https://docs.oracle.com/javase/tutorial/datetime/iso/period.html) -`Period` |
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
|
![checked](/favicon-16x16.png)
| | | | \*** | \*** | `P10D` (10 days) | [Period and Duration](https://docs.oracle.com/javase/tutorial/datetime/iso/period.html) - -## Smart Strong - -``` -Text with double__underscore__words. - -__Strong__ still works. - -__this__works__too__ -``` - -Text with double__underscore__words. - -__Strong__ still works. - -__this__works__too__ - -## Smarty - -``` -"double quotes" - -'single quotes' - -da--sh - -elipsis... -``` - -"double quotes" - -'single quotes' - -da--sh - -elipsis... - -## Neseted Fences - -```` - ``` - This will still be parsed - as a normal indented code block. - ``` - -``` -This will still be parsed -as a fenced code block. -``` - -- This is a list that contains multiple code blocks. - - - Here is an indented block - - ``` - This will still be parsed - as a normal indented code block. - ``` - - - Here is a fenced code block: - - ``` - This will still be parsed - as a fenced code block. - ``` - - > ``` - > Blockquotes? - > Not a problem! - > ``` -```` - - ``` - This will still be parsed - as a normal indented code block. - ``` - -``` -This will still be parsed -as a fenced code block. -``` - -- This is a list that contains multiple code blocks. - - - Here is an indented block - - ``` - This will still be parsed - as a normal indented code block. - ``` - - - Here is a fenced code block: - - ``` - This will still be parsed - as a fenced code block. - ``` - - > ``` - > Blockquotes? - > Not a problem! - > ``` - -## Github Emoji {#section-7} - -```markdown -This is a test for emoji :smile:. The emojis are images linked to github assets :octocat:. -``` - -This is a test for emoji :smile:. The emojis are images linked to github assets :octocat:. - -### People - -:+1::-1::alien::angel::anger::angry::anguished::astonished::baby::blue_heart::blush::boom::bow::bowtie::boy::bride_with_veil::broken_heart::bust_in_silhouette::busts_in_silhouette::clap::cold_sweat::collision::confounded::confused::construction_worker::cop::couple::couple_with_heart::couplekiss::cry::crying_cat_face::cupid::dancer::dancers::dash::disappointed::disappointed_relieved::dizzy::dizzy_face::droplet::ear::exclamation::expressionless::eyes::facepunch::family::fearful::feelsgood::feet::finnadie::fire::fist::flushed::frowning::fu::girl::goberserk::godmode::green_heart::grey_exclamation::grey_question::grimacing::grin::grinning::guardsman::haircut::hand::hankey::hear_no_evil::heart::heart_eyes::heart_eyes_cat::heartbeat::heartpulse::hurtrealbad::hushed::imp::information_desk_person::innocent::japanese_goblin::japanese_ogre::joy::joy_cat::kiss::kissing::kissing_cat::kissing_closed_eyes::kissing_heart::kissing_smiling_eyes::laughing::lips::love_letter::man::man_with_gua_pi_mao::man_with_turban::mask::massage::metal::muscle::musical_note::nail_care::neckbeard::neutral_face::no_good::no_mouth::nose::notes::ok_hand::ok_woman::older_man::older_woman::open_hands::open_mouth::pensive::persevere::person_frowning::person_with_blond_hair::person_with_pouting_face::point_down::point_left::point_right::point_up::point_up_2::poop::pouting_cat::pray::princess::punch::purple_heart::question::rage::rage1::rage2::rage3::rage4::raised_hand::raised_hands::raising_hand::relaxed::relieved::revolving_hearts::runner::running::satisfied::scream::scream_cat::see_no_evil::shit::skull::sleeping::sleepy::smile::smile_cat::smiley::smiley_cat::smiling_imp::smirk::smirk_cat::sob::sparkles::sparkling_heart::speak_no_evil::speech_balloon::star::star2::stuck_out_tongue::stuck_out_tongue_closed_eyes::stuck_out_tongue_winking_eye::sunglasses::suspect::sweat::sweat_drops::sweat_smile::thought_balloon::thumbsdown::thumbsup::tired_face::tongue::triumph::trollface::two_hearts::two_men_holding_hands::two_women_holding_hands::unamused::v::walking::wave::weary::wink::woman::worried::yellow_heart::yum::zzz: - -### Nature - -:ant::baby_chick::bear::bee::beetle::bird::blossom::blowfish::boar::bouquet::bug::cactus::camel::cat::cat2::cherry_blossom::chestnut::chicken::cloud::cow::cow2::crescent_moon::crocodile::cyclone::deciduous_tree::dog::dog2::dolphin::dragon::dragon_face::dromedary_camel::ear_of_rice::earth_africa::earth_americas::earth_asia::elephant::evergreen_tree::fallen_leaf::first_quarter_moon::first_quarter_moon_with_face::fish::foggy::four_leaf_clover::frog::full_moon::full_moon_with_face::globe_with_meridians::goat::hamster::hatched_chick::hatching_chick::herb::hibiscus::honeybee::horse::koala::last_quarter_moon::last_quarter_moon_with_face::leaves::leopard::maple_leaf::milky_way::monkey::monkey_face::moon::mouse::mouse2::mushroom::new_moon::new_moon_with_face::night_with_stars::ocean::octocat::octopus::ox::palm_tree::panda_face::partly_sunny::paw_prints::penguin::pig::pig2::pig_nose::poodle::rabbit::rabbit2::racehorse::ram::rat::rooster::rose::seedling::sheep::shell::snail::snake::snowflake::snowman::squirrel::sun_with_face::sunflower::sunny::tiger::tiger2::tropical_fish::tulip::turtle::umbrella::volcano::waning_crescent_moon::waning_gibbous_moon::water_buffalo::waxing_crescent_moon::waxing_gibbous_moon::whale::whale2::wolf::zap: - -### Objects - -:8ball::alarm_clock::apple::art::athletic_shoe::baby_bottle::balloon::bamboo::banana::bar_chart::baseball::basketball::bath::bathtub::battery::beer::beers::bell::bento::bicyclist::bikini::birthday::black_joker::black_nib::blue_book::bomb::book::bookmark::bookmark_tabs::books::boot::bowling::bread::briefcase::bulb::cake::calendar::calling::camera::candy::card_index::cd::chart_with_downwards_trend::chart_with_upwards_trend::cherries::chocolate_bar::christmas_tree::clapper::clipboard::closed_book::closed_lock_with_key::closed_umbrella::clubs::cocktail::coffee::computer::confetti_ball::cookie::corn::credit_card::crown::crystal_ball::curry::custard::dango::dart::date::diamonds::dollar::dolls::door::doughnut::dress::dvd::e-mail::egg::eggplant::electric_plug::email::envelope::envelope_with_arrow::euro::eyeglasses::fax::file_folder::fireworks::fish_cake::fishing_pole_and_fish::flags::flashlight::flipper::floppy_disk::flower_playing_cards::football::footprints::fork_and_knife::fried_shrimp::fries::game_die::gem::ghost::gift::gift_heart::golf::grapes::green_apple::green_book::guitar::gun::hamburger::hammer::handbag::headphones::hearts::high_brightness::high_heel::hocho::honey_pot::horse_racing::hourglass::hourglass_flowing_sand::ice_cream::icecream::inbox_tray::incoming_envelope::iphone::jack_o_lantern::jeans::key::kimono::lantern::ledger::lemon::lipstick::lock::lock_with_ink_pen::lollipop::loop::loud_sound::loudspeaker::low_brightness::mag::mag_right::mahjong::mailbox::mailbox_closed::mailbox_with_mail::mailbox_with_no_mail::mans_shoe::meat_on_bone::mega::melon::memo::microphone::microscope::minidisc::money_with_wings::moneybag::mortar_board::mountain_bicyclist::movie_camera::musical_keyboard::musical_score::mute::name_badge::necktie::newspaper::no_bell::notebook::notebook_with_decorative_cover::nut_and_bolt::oden::open_book::open_file_folder::orange_book::outbox_tray::package::page_facing_up::page_with_curl::pager::paperclip::peach::pear::pencil::pencil2::phone::pill::pineapple::pizza::postal_horn::postbox::pouch::poultry_leg::pound::purse::pushpin::radio::ramen::ribbon::rice::rice_ball::rice_cracker::rice_scene::ring::rugby_football::running_shirt_with_sash::sake::sandal::santa::satellite::saxophone::school_satchel::scissors::scroll::seat::shaved_ice::shirt::shoe::shower::ski::smoking::snowboarder::soccer::sound::space_invader::spades::spaghetti::sparkle::sparkler::speaker::stew::straight_ruler::strawberry::surfer::sushi::sweet_potato::swimmer::syringe::tada::tanabata_tree::tangerine::tea::telephone::telephone_receiver::telescope::tennis::toilet::tomato::tophat::triangular_ruler::trophy::tropical_drink::trumpet::tshirt::tv::unlock::vhs::video_camera::video_game::violin::watch::watermelon::wind_chime::wine_glass::womans_clothes::womans_hat::wrench::yen: - -### Places - -:aerial_tramway::airplane::ambulance::anchor::articulated_lorry::atm::bank::barber::beginner::bike::blue_car::boat::bridge_at_night::bullettrain_front::bullettrain_side::bus::busstop::car::carousel_horse::checkered_flag::church::circus_tent::city_sunrise::city_sunset::cn::construction::convenience_store::crossed_flags::de::department_store::es::european_castle::european_post_office::factory::ferris_wheel::fire_engine::fountain::fr::fuelpump::gb::helicopter::hospital::hotel::hotsprings::house::house_with_garden::it::izakaya_lantern::japan::japanese_castle::jp::kr::light_rail::love_hotel::minibus::monorail::mount_fuji::mountain_cableway::mountain_railway::moyai::office::oncoming_automobile::oncoming_bus::oncoming_police_car::oncoming_taxi::performing_arts::police_car::post_office::railway_car::rainbow::red_car::rocket::roller_coaster::rotating_light::round_pushpin::rowboat::ru::sailboat::school::ship::slot_machine::speedboat::stars::station::statue_of_liberty::steam_locomotive::sunrise::sunrise_over_mountains::suspension_railway::taxi::tent::ticket::tokyo_tower::tractor::traffic_light::train::train2::tram::triangular_flag_on_post::trolleybus::truck::uk::us::vertical_traffic_light::warning::wedding: - -### Symbols - -:100::1234::a::ab::abc::abcd::accept::aquarius::aries::arrow_backward::arrow_double_down::arrow_double_up::arrow_down::arrow_down_small::arrow_forward::arrow_heading_down::arrow_heading_up::arrow_left::arrow_lower_left::arrow_lower_right::arrow_right::arrow_right_hook::arrow_up::arrow_up_down::arrow_up_small::arrow_upper_left::arrow_upper_right::arrows_clockwise::arrows_counterclockwise::b::baby_symbol::back::baggage_claim::ballot_box_with_check::bangbang::black_circle::black_large_square::black_medium_small_square::black_medium_square::black_small_square::black_square_button::cancer::capital_abcd::capricorn::chart::children_crossing::cinema::cl::clock1::clock10::clock1030::clock11::clock1130::clock12::clock1230::clock130::clock2::clock230::clock3::clock330::clock4::clock430::clock5::clock530::clock6::clock630::clock7::clock730::clock8::clock830::clock9::clock930::congratulations::cool::copyright::curly_loop::currency_exchange::customs::diamond_shape_with_a_dot_inside::do_not_litter::eight::eight_pointed_black_star::eight_spoked_asterisk::end::fast_forward::five::four::free::gemini::hash::heart_decoration::heavy_check_mark::heavy_division_sign::heavy_dollar_sign::heavy_exclamation_mark::heavy_minus_sign::heavy_multiplication_x::heavy_plus_sign::id::ideograph_advantage::information_source::interrobang::keycap_ten::koko::large_blue_circle::large_blue_diamond::large_orange_diamond::left_luggage::left_right_arrow::leftwards_arrow_with_hook::leo::libra::link::m::mens::metro::mobile_phone_off::negative_squared_cross_mark::new::ng::nine::no_bicycles::no_entry::no_entry_sign::no_mobile_phones::no_pedestrians::no_smoking::non-potable_water::o::o2::ok::on::one::ophiuchus::parking::part_alternation_mark::passport_control::pisces::potable_water::put_litter_in_its_place::radio_button::recycle::red_circle::registered::repeat::repeat_one::restroom::rewind::sa::sagittarius::scorpius::secret::seven::shipit::signal_strength::six::six_pointed_star::small_blue_diamond::small_orange_diamond::small_red_triangle::small_red_triangle_down::soon::sos::symbols::taurus::three::tm::top::trident::twisted_rightwards_arrows::two::u5272::u5408::u55b6::u6307::u6708::u6709::u6e80::u7121::u7533::u7981::u7a7a::underage::up::vibration_mode::virgo::vs::wavy_dash::wc::wheelchair::white_check_mark::white_circle::white_flower::white_large_square::white_medium_small_square::white_medium_square::white_small_square::white_square_button::womens::x::zero: - -## Insert - -``` -^^insert^^ - -^^*insert 倾斜*^^ *^^insert 倾斜 2^^* - -^^_insert 倾斜_^^ _^^insert 倾斜 2^^_ - -^^**insert 加粗**^^ **^^insert 加粗 2^^** - -^^__insert 加粗__^^ __^^insert 加粗 2^^__ - -^^***insert 倾斜 加粗***^^ ***^^insert 倾斜 加粗 2^^*** - -^^___insert 倾斜 加粗___^^ ___^^insert 倾斜 加粗 2^^___ - -**^^*insert 倾斜 加粗*^^** *^^**insert 倾斜 加粗 2**^^* - -__^^_insert 倾斜 加粗_^^__ _^^__insert 倾斜 加粗 2__^^_ - -**^^_insert 倾斜 加粗_^^** _^^**insert 倾斜 加粗 2**^^_ - -__^^*insert 倾斜 加粗*^^__ *^^__insert 倾斜 加粗 2__^^* -``` - -^^insert^^ - -^^*insert 倾斜*^^ *^^insert 倾斜 2^^* - -^^_insert 倾斜_^^ _^^insert 倾斜 2^^_ - -^^**insert 加粗**^^ **^^insert 加粗 2^^** - -^^__insert 加粗__^^ __^^insert 加粗 2^^__ - -^^***insert 倾斜 加粗***^^ ***^^insert 倾斜 加粗 2^^*** - -^^___insert 倾斜 加粗___^^ ___^^insert 倾斜 加粗 2^^___ - -**^^*insert 倾斜 加粗*^^** *^^**insert 倾斜 加粗 2**^^* - -__^^_insert 倾斜 加粗_^^__ _^^__insert 倾斜 加粗 2__^^_ - -**^^_insert 倾斜 加粗_^^** _^^**insert 倾斜 加粗 2**^^_ - -__^^*insert 倾斜 加粗*^^__ *^^__insert 倾斜 加粗 2__^^* - -## Admonition - -{{% admonition "note" "Admonition note" %}} -This is the content of the admonition. -{{% /admonition %}} - -{{% admonition "abstract" "Admonition abstract" %}} -This is the content of the admonition. -{{% /admonition %}} - -{{% admonition "info" "Admonition info" %}} -This is the content of the admonition. -{{% /admonition %}} - -{{% admonition "tip" "Admonition tip" %}} -This is the content of the admonition. -{{% /admonition %}} - -{{% admonition "success" "Admonition success" %}} -This is the content of the admonition. -{{% /admonition %}} - -{{% admonition "question" "Admonition question" %}} -This is the content of the admonition. -{{% /admonition %}} - -{{% admonition "warning" "Admonition warning" %}} -This is the content of the admonition. -{{% /admonition %}} - -{{% admonition "failure" "Admonition failure" %}} -This is the content of the admonition. -{{% /admonition %}} - -{{% admonition "danger" "Admonition danger" %}} -This is the content of the admonition. -{{% /admonition %}} - -{{% admonition "bug" "Admonition bug" %}} -This is the content of the admonition. -{{% /admonition %}} - -{{% admonition "example" "Admonition example" %}} -This is the content of the admonition. -{{% /admonition %}} - -{{% admonition "quote" "Admonition quote" %}} -This is the content of the admonition. -{{% /admonition %}} - -{{% admonition title="Admonition" details="true" %}} -This is the content of the admonition. -{{% /admonition %}} diff --git a/exampleSite/zh/content/posts/test.md b/exampleSite/zh/content/posts/test.md deleted file mode 100644 index f2a59ec6a..000000000 --- a/exampleSite/zh/content/posts/test.md +++ /dev/null @@ -1,322 +0,0 @@ ---- -author: "" -author_link: "" -title: "Test Page" -date: 2019-08-04T22:49:56+08:00 -lastmod: 2019-08-17T22:41:56+08:00 -draft: true -description: "This is a test page." -show_in_homepage: false -description_as_summary: false -license: "" - -tags: [ - "Hugo", - "主题", -] -categories: [ - "预览", -] - -featured_image: "" -featured_image_preview: "" - -comment: false -toc: true -auto_collapse_toc: true -math: true -dev: true ---- - -## This is a test page - -Test all features in development[^link test]. - -[^link test]: https://www.google.com/ - - - -## Test ECharts - -{{< dev/echarts >}} -title : { - text: '某站点用户访问来源', - subtext: '纯属虚构', - x:'center' -}, -tooltip : { - trigger: 'item', - formatter: "{a}
{b} : {c} ({d}%)" -}, -legend: { - orient: 'vertical', - left: 'left', - data: ['直接访问','邮件营销','联盟广告','视频广告','搜索引擎'] -}, -series : [ - { - name: '访问来源', - type: 'pie', - radius : '55%', - center: ['50%', '60%'], - data:[ - {value:335, name:'直接访问'}, - {value:310, name:'邮件营销'}, - {value:234, name:'联盟广告'}, - {value:135, name:'视频广告'}, - {value:1548, name:'搜索引擎'} - ], - itemStyle: { - emphasis: { - shadowBlur: 10, - shadowOffsetX: 0, - shadowColor: 'rgba(0, 0, 0, 0.5)' - } - } - } -] -{{< /dev/echarts >}} - -## Test Mermaid - -{{< mermaid >}} -classDiagram - Animal <|-- Duck - Animal <|-- Fish - Animal <|-- Zebra - Animal : +int age - Animal : +String gender - Animal: +isMammal() - Animal: +mate() - class Duck{ - +String beakColor - +swim() - +quack() - } - class Fish{ - -int sizeInFeet - -canEat() - } - class Zebra{ - +bool is_wild - +run() - } -{{< /mermaid >}} - -## Test Ruby - -人最重要的特点是会思考,建站初衷无非是保存思维的电子快照。 -当然各种文档工具亦或是简单的文本编辑器也能随时记录点滴, -选择建个人网站无非是想满足 [技术爱好者]^(Technology enthusiast) 的偏执。 - -## Test Music - -## Test Toc - -Toc - -### Toc1 - -Toc - -#### Toc 1-1 - -Toc - -#### Toc 1-2 - -Toc - -#### Toc 1-3 - -Toc - -### Toc2 - -Toc - -#### Toc 2-1 - -Toc - -#### Toc 2-2 - -Toc - -### Toc3 - -Toc - -## Test Table - -| Tables | Are | Cool | -| :------------ |:-------------:| -----:| -| col 3 is | right-aligned | $1600 | -| col 2 is | centered | $12 | -| zebra stripes | are neat | $1 | - -## Test kbd - -ctrl+alt+del - -## Test Mixed Lists - -Mixed Lists - -- item 1 - * [X] item A - * [ ] item B - more text - 1. item a - 2. itemb - 3. item c - * [X] item C -- item 2 -- item 3 - -Really Mixed Lists - -- item 1 - * [X] item A - - item B - more text - 1. item a - + itemb - + [ ] item c - 1. item C -1. item 2 -- [X] item 3 - -## Test fa (Font Awesome) - -:(fab fa-weixin fa-2x): - -## Test Footnote - -This is a footnote[^1] - -[^1]: This is a footnote - -## Test Admonition - -{{% admonition quote %}} -biu biu biu. -{{% /admonition %}} - -{{% admonition quote "I'm title!" false %}} -biu biu biu. -{{% /admonition %}} - -{{% admonition example "I'm title!" false %}} -biu biu biu. -{{% /admonition %}} - -{{% admonition bug "I'm title!" false %}} -biu biu biu. -{{% /admonition %}} - -{{% admonition danger "I'm title!" false %}} -biu biu biu. -{{% /admonition %}} - -{{% admonition failure "I'm title!" false %}} -biu biu biu. -{{% /admonition %}} - -{{% admonition warning "I'm title!" false %}} -biu biu biu. -{{% /admonition %}} - -{{% admonition question "I'm title!" false %}} -biu biu biu. -{{% /admonition %}} - -{{% admonition success "I'm title!" false %}} -biu biu biu. -{{% /admonition %}} - -{{% admonition tip "I'm title!" false %}} -biu biu biu. -{{% /admonition %}} - -{{% admonition info "I'm title!" true %}} -**biu biu biu.** -{{% /admonition %}} - -{{% admonition note "I'm title!" false %}} -**biu biu biu.** -{{% /admonition %}} - -{{% admonition type="abstract" title="Test Admonition" %}} -This is a Admonition. -{{% /admonition %}} - -## Test Highlight - -`ls` 命令 - -```go -// You can edit this code! -// Click here and start typing. -package main - -import "fmt" - -func main() { - fmt.Println("Hello, 世界", "Hello, 世界", "Hello, 世界", "Hello, 世界", "Hello, 世界", "Hello, 世界", "Hello, 世界", "Hello, 世界") -} -``` - -- This is a list that contains multiple code blocks. - - - Here is an indented block - - ```Code - This will still be parsed - as a normal indented code block. - ``` - - - Here is a fenced code block: - - ```Code - This will still be parsed - as a fenced code block. - ``` - - > ```Code - > Blockquotes? - > Not a problem! - > ``` - -## Test Typeit - -{{< typeit group="test" tag="h3" >}} -Here is a story about love... -{{< /typeit >}} - -{{< typeit group="test" code="java" >}} -u.accepted(); // [2018/01/05](/since/) special -int a = 1; -{{< /typeit >}} - -## Test Img - -![Gif](https://static.dillonzq.com/images/20190817130904-U6cPUk.jpg "Title") - -## Test Align - -{{% align right %}} -**Test Text** -{{% /align %}} - -## Test Katex - -$$ c = \pm\sqrt{a^2 + b^2} $$ - -Left \\( c = \pm\sqrt{a^2 + b^2} \\) Right - -Left $ c = \pm\sqrt{a^2 + b^2} $ Right - -$ \ce{CO2 + C -> 2 CO} $ - -$ \ce{Hg^2+ ->[I-] HgI2 ->[I-] [Hg^{II}I4]^2-} $ diff --git a/exampleSite/zh/static/android-chrome-192x192.png b/exampleSite/zh/static/android-chrome-192x192.png deleted file mode 100644 index 87ba30b8c..000000000 Binary files a/exampleSite/zh/static/android-chrome-192x192.png and /dev/null differ diff --git a/exampleSite/zh/static/android-chrome-512x512.png b/exampleSite/zh/static/android-chrome-512x512.png deleted file mode 100644 index 3e52be3b0..000000000 Binary files a/exampleSite/zh/static/android-chrome-512x512.png and /dev/null differ diff --git a/exampleSite/zh/static/apple-touch-icon.png b/exampleSite/zh/static/apple-touch-icon.png deleted file mode 100644 index 26f95ea87..000000000 Binary files a/exampleSite/zh/static/apple-touch-icon.png and /dev/null differ diff --git a/exampleSite/zh/static/browserconfig.xml b/exampleSite/zh/static/browserconfig.xml deleted file mode 100644 index a47e5a5b8..000000000 --- a/exampleSite/zh/static/browserconfig.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - #2d89ef - - - diff --git a/exampleSite/zh/static/favicon-16x16.png b/exampleSite/zh/static/favicon-16x16.png deleted file mode 100644 index 0594fcf07..000000000 Binary files a/exampleSite/zh/static/favicon-16x16.png and /dev/null differ diff --git a/exampleSite/zh/static/favicon-32x32.png b/exampleSite/zh/static/favicon-32x32.png deleted file mode 100644 index 1d3f09af0..000000000 Binary files a/exampleSite/zh/static/favicon-32x32.png and /dev/null differ diff --git a/exampleSite/zh/static/favicon.ico b/exampleSite/zh/static/favicon.ico deleted file mode 100644 index 525402165..000000000 Binary files a/exampleSite/zh/static/favicon.ico and /dev/null differ diff --git a/exampleSite/zh/static/images/Apple-Devices-Preview.png b/exampleSite/zh/static/images/Apple-Devices-Preview.png deleted file mode 100644 index d1bd34c90..000000000 Binary files a/exampleSite/zh/static/images/Apple-Devices-Preview.png and /dev/null differ diff --git a/exampleSite/zh/static/images/avatar.png b/exampleSite/zh/static/images/avatar.png deleted file mode 100644 index f8d370d75..000000000 Binary files a/exampleSite/zh/static/images/avatar.png and /dev/null differ diff --git a/exampleSite/zh/static/logo.png b/exampleSite/zh/static/logo.png deleted file mode 100644 index f8d370d75..000000000 Binary files a/exampleSite/zh/static/logo.png and /dev/null differ diff --git a/exampleSite/zh/static/mstile-150x150.png b/exampleSite/zh/static/mstile-150x150.png deleted file mode 100644 index 0332bbea4..000000000 Binary files a/exampleSite/zh/static/mstile-150x150.png and /dev/null differ diff --git a/exampleSite/zh/static/safari-pinned-tab.svg b/exampleSite/zh/static/safari-pinned-tab.svg deleted file mode 100644 index 05faebc3a..000000000 --- a/exampleSite/zh/static/safari-pinned-tab.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - -Created by potrace 1.11, written by Peter Selinger 2001-2013 - - - - - diff --git a/exampleSite/zh/static/site.webmanifest b/exampleSite/zh/static/site.webmanifest deleted file mode 100644 index 73497a5c8..000000000 --- a/exampleSite/zh/static/site.webmanifest +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "LoveIt", - "short_name": "LoveIt", - "icons": [ - { - "src": "/android-chrome-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "/android-chrome-512x512.png", - "sizes": "512x512", - "type": "image/png" - } - ], - "theme_color": "#ffffff", - "background_color": "#ffffff", - "display": "standalone" -} diff --git a/i18n/en.toml b/i18n/en.toml index 6d9570554..1526ef04a 100644 --- a/i18n/en.toml +++ b/i18n/en.toml @@ -7,8 +7,8 @@ other = "Posts" # === Post === # === Taxonomy === -[all] -other = "all " +[allSome] +other = "All %s" [tag] other = "Tag" @@ -33,26 +33,21 @@ other = "More" other = "Switch Theme" # === partials/header.html === -# === partials/comments.html === -[valineLang] -other = "en" -# === partials/comments.html === - # === partials/footer.html === -[powered] +[poweredBySome] other = "Powered by %s" [theme] -other = "Theme - " +other = "Theme" # === partials/footer.html === -# === partials/post/share.html === -[share] +# === partials/plugin/share.html === +[shareOn] other = "Share on" -# === partials/post/share.html === +# === partials/plugin/share.html === # === posts/single.html === -[toc] +[contents] other = "Contents" [publish] @@ -67,8 +62,8 @@ other = "about {{ .Count }} words" [readingTime] other = "{{ .Count }} min" -[pageviews] -other = " pageviews" +[views] +other = "views" [author] other = "Author" @@ -79,6 +74,9 @@ other = "The article was updated on %s" [license] other = "Published under the %s license" +[seeMarkdown] +other = "Read Markdown" + [back] other = "Back" @@ -87,18 +85,6 @@ other = "Home" [readMore] other = "Read More" - -[day] -other = "d" - -[hour] -other = "hr" - -[minute] -other = "min" - -[second] -other = "sec" # === posts/single.html === # === 404.html === @@ -111,3 +97,41 @@ other = "The page you're looking for doesn't exist. Sorry." [backToHome] other = "Back to Home" # === 404.html === + +# === shortcodes/admonition.html === +[note] +other = "Note" + +[abstract] +other = "Abstract" + +[info] +other = "Info" + +[tip] +other = "Tip" + +[success] +other = "Success" + +[question] +other = "Question" + +[warning] +other = "Warning" + +[failure] +other = "Failure" + +[danger] +other = "Danger" + +[bug] +other = "Bug" + +[example] +other = "Example" + +[quote] +other = "Quote" +# === shortcodes/admonition.html === diff --git a/i18n/fr.toml b/i18n/fr.toml new file mode 100644 index 000000000..053db8542 --- /dev/null +++ b/i18n/fr.toml @@ -0,0 +1,137 @@ +# Translations for French +# https://gohugo.io/content-management/multilingual/#translation-of-strings + +# === Post === +[posts] +other = "Posts" +# === Post === + +# === Taxonomy === +[allSome] +other = "Tous %s" + +[tag] +other = "Balise" + +[tags] +other = "Balises" + +[category] +other = "Catégorie" + +[categories] +other = "Catégories" +# === Taxonomy === + +# === Pagination === +[more] +other = "Plus" +# === Pagination === + +# === partials/header.html === +[switchTheme] +other = "Changer de Thème" +# === partials/header.html === + +# === partials/footer.html === +[poweredBySome] +other = "Propulsé par %s" + +[theme] +other = "Thème" +# === partials/footer.html === + +# === partials/plugin/share.html === +[shareOn] +other = "Partager sur" +# === partials/plugin/share.html === + +# === posts/single.html === +[contents] +other = "Contenu" + +[publish] +other = "publié sur" + +[included] +other = "inclus dans" + +[wordCount] +other = "environ {{ .Count }} mots" + +[readingTime] +other = "{{ .Count }} min" + +[views] +other = "vues" + +[author] +other = "Auteur" + +[lastMod] +other = "Dernière mise à jour le %s" + +[license] +other = "Publié sous licence %s" + +[seeMarkdown] +other = "Lire Markdown" + +[back] +other = "Retour" + +[home] +other = "Accueil" + +[readMore] +other = "En savoir plus" +# === posts/single.html === + +# === 404.html === +[pageNotFound] +other = "Page non trouvée" + +[pageNotFoundText] +other = "Désolé, la page recherchée n'existe pas." + +[backToHome] +other = "Retour à l'accueil" +# === 404.html === + +# === shortcodes/admonition.html === +[note] +other = "Remarque" + +[abstract] +other = "Abstrait" + +[info] +other = "Info" + +[tip] +other = "Astuces" + +[success] +other = "Succès" + +[question] +other = "Question" + +[warning] +other = "Avertissement" + +[failure] +other = "Échec" + +[danger] +other = "Danger" + +[bug] +other = "Bug" + +[example] +other = "Exemple" + +[quote] +other = "Citation" +# === shortcodes/admonition.html === diff --git a/i18n/zh.toml b/i18n/zh-CN.toml similarity index 68% rename from i18n/zh.toml rename to i18n/zh-CN.toml index 6b2db781b..376a6997f 100644 --- a/i18n/zh.toml +++ b/i18n/zh-CN.toml @@ -7,8 +7,8 @@ other = "文章" # === Post === # === Taxonomy === -[all] -other = "所有" +[allSome] +other = "所有%s" [tag] other = "标签" @@ -33,26 +33,21 @@ other = "更多" other = "切换主题" # === partials/header.html === -# === partials/comments.html === -[valineLang] -other = "zh-cn" -# === partials/comments.html === - # === partials/footer.html === -[powered] +[poweredBySome] other = "由 %s 强力驱动" [theme] -other = "主题 - " +other = "主题" # === partials/footer.html === -# === partials/post/share.html === -[share] +# === partials/plugin/share.html === +[shareOn] other = "分享到" -# === partials/post/share.html === +# === partials/plugin/share.html === # === posts/single.html === -[toc] +[contents] other = "目录" [publish] @@ -67,8 +62,8 @@ other = "约 {{ .Count }} 字" [readingTime] other = "预计阅读 {{ .Count }} 分钟" -[pageviews] -other = " 次阅读" +[views] +other = "次阅读" [author] other = "作者" @@ -79,7 +74,7 @@ other = "本文于 %s 更新" [license] other = "采用 %s 协议发布" -[seeMarkDown] +[seeMarkdown] other = "阅读原始文档" [back] @@ -90,18 +85,6 @@ other = "主页" [readMore] other = "阅读全文" - -[day] -other = "天" - -[hour] -other = "时" - -[minute] -other = "分" - -[second] -other = "秒" # === posts/single.html === # === 404.html === @@ -114,3 +97,41 @@ other = "抱歉,您要查找的页面不存在。" [backToHome] other = "回到主页" # === 404.html === + +# === shortcodes/admonition.html === +[note] +other = "注意" + +[abstract] +other = "摘要" + +[info] +other = "信息" + +[tip] +other = "技巧" + +[success] +other = "成功" + +[question] +other = "问题" + +[warning] +other = "警告" + +[failure] +other = "失败" + +[danger] +other = "危险" + +[bug] +other = "Bug" + +[example] +other = "示例" + +[quote] +other = "引用" +# === shortcodes/admonition.html === diff --git a/layouts/404.html b/layouts/404.html index ed901efb7..fbc5d7ffa 100644 --- a/layouts/404.html +++ b/layouts/404.html @@ -3,20 +3,20 @@ {{- end -}} {{- define "content" -}} -
+

{{- T "pageNotFoundText" -}}  - ↩︎ + ↩︎

-{{- end -}} \ No newline at end of file +{{- end -}} diff --git a/layouts/_default/_markup/render-image.html b/layouts/_default/_markup/render-image.html index 1ce94c1c6..cfe5ed3b7 100644 --- a/layouts/_default/_markup/render-image.html +++ b/layouts/_default/_markup/render-image.html @@ -1,11 +1,10 @@ -
- {{- /* Lazyload */ -}} - {{- $loading := resources.Get "svg/loading.svg" | minify -}} - {{ .Text }} - {{- $caption := .Title | default .Text -}} - {{- with $caption -}} +{{- with .Title -}} +
+ {{- partial "plugin/image.html" (dict "src" $.Destination "title" $.Title "description" $.Text "lightgallery" true "scratch" ($.Page.Scratch.Get "scratch")) -}}
- {{- . -}} + {{- . | safeHTML -}}
- {{- end -}} -
\ No newline at end of file +
+{{- else -}} + {{- partial "plugin/image.html" (dict "src" .Destination "title" .Title "description" .Text "lightgallery" false "scratch" (.Page.Scratch.Get "scratch")) -}} +{{- end -}} diff --git a/layouts/_default/_markup/render-link.html b/layouts/_default/_markup/render-link.html index 01f37d199..35e77e87f 100644 --- a/layouts/_default/_markup/render-link.html +++ b/layouts/_default/_markup/render-link.html @@ -1,3 +1,2 @@ - - {{- .Text | safeHTML -}} - \ No newline at end of file +{{- $options := dict "href" .Destination "title" .Title "content" .Text -}} +{{- partial "plugin/link.html" $options -}} diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index 249ab81ea..90f5b6fbe 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -3,20 +3,42 @@ {{- errorf "\n\nThere are two possible situations that led to this error:\n 1. You haven't copied the config.toml yet. See https://github.com/dillonzq/LoveIt#installation \n 2. You have an incompatible update. See https://github.com//dillonzq/LoveIt/blob/master/CHANGELOG.md \n\n有两种可能的情况会导致这个错误发生:\n 1. 你还没有复制 config.toml 参考 https://github.com/dillonzq/LoveIt#installation \n 2. 你进行了一次不兼容的更新 参考 https://github.com//dillonzq/LoveIt/blob/master/CHANGELOG.md \n" -}} {{- end -}} +{{- $scratch := newScratch -}} +{{- .Scratch.Set "scratch" $scratch -}} +{{- if eq hugo.Environment "production" -}} + {{- $scratch.Set "production" true -}} + {{- $scratch.Set "CDN" .Site.Params.cdn -}} +{{- end -}} + - + + + {{- block "title" . }}{{ .Site.Title }}{{ end -}} - {{- partial "head.html" . -}} + + + {{- partial "head/meta.html" . -}} + {{- partial "head/link.html" . -}} + {{- partial "head/seo.html" . -}} {{- /* Check theme isDark before body rendering */ -}} @@ -32,11 +54,11 @@
{{- /* Dynamic to top button */ -}} - +   - {{- /* Load scripts */ -}} - {{- partial "scripts.html" . -}} + {{- /* Load JavaScript scripts and CSS */ -}} + {{- partial "assets.html" . -}} - \ No newline at end of file + diff --git a/layouts/_default/section.html b/layouts/_default/section.html index 499fd23ab..415314b2d 100644 --- a/layouts/_default/section.html +++ b/layouts/_default/section.html @@ -1,12 +1,12 @@ {{- define "title" }} - {{- T "all" | humanize}}{{ T .Section | default .Section | humanize }} | {{ .Site.Title -}} + {{- T .Section | default .Section | printf (T "allSome") }} | {{ .Site.Title -}} {{- end -}} {{- define "content" -}}
{{- /* Title */ -}} -

- {{- T "all" | humanize}}{{ T .Section | default .Section | humanize -}} +

+ {{- T .Section | default .Section | humanize | printf (T "allSome") -}}

{{- /* Paginate */ -}} @@ -25,4 +25,4 @@

{{ .Key }}

{{- end -}} {{- partial "paginator.html" . -}}
-{{- end -}} \ No newline at end of file +{{- end -}} diff --git a/layouts/_default/single.html b/layouts/_default/single.html index 51d61ecbe..5bdc32eea 100644 --- a/layouts/_default/single.html +++ b/layouts/_default/single.html @@ -1,15 +1,15 @@ {{- define "title" }}{{ .Title }} | {{ .Site.Title }}{{ end -}} {{- define "content" -}} -
+
{{- /* Title */ -}} -

+

{{- .Title -}}

{{- /* Content */ -}} -
- {{- partial "hook/content.html" .Content | safeHTML -}} +
+ {{- partial "single/content.html" .Content -}}
-{{- end -}} \ No newline at end of file +{{- end -}} diff --git a/layouts/_default/summary.html b/layouts/_default/summary.html index 3c37dbbd0..ee74fc7e6 100644 --- a/layouts/_default/summary.html +++ b/layouts/_default/summary.html @@ -1,50 +1,55 @@ -
+{{- $scratch := .Scratch.Get "scratch" -}} + +
{{- /* Featured image */ -}} - {{- with .Params.featured_image -}} -
- {{- $image := $.Params.featured_image_preview | default . -}} - {{- partial "image" $image -}} + {{- with .Params.featuredImage -}} + {{- end -}} {{- /* Title */ -}} -

+

{{ .Title }}

{{- /* Meta */ -}} {{- /* Summary content */ -}} -
- {{- if .Params.description_as_summary -}} -

- {{- .Params.description -}} -

+
+ {{- with .Summary -}} + {{- partial "single/content.html" . -}} {{- else -}} - {{- partial "hook/content.html" .Summary | safeHTML -}} + {{- .Description | safeHTML -}} {{- end -}}
@@ -54,11 +59,13 @@

{{- with .Params.tags -}} {{- end -}}

-
\ No newline at end of file +
diff --git a/layouts/index.atom.xml b/layouts/index.atom.xml index b07556eb6..6e29f962a 100644 --- a/layouts/index.atom.xml +++ b/layouts/index.atom.xml @@ -4,7 +4,7 @@ {{- if not .Date.IsZero -}} - {{- .Date.Format "02-01-2006T15:04:05-07:00" | safeHTML -}} + {{- .Date.Format "02-01-2006T15:04:05-07:00" -}} {{- end -}} @@ -21,9 +21,7 @@ Hugo -- gohugo.io {{- range first 15 (where .Data.Pages "Type" "in" .Site.Params.mainSections) -}} - - {{- printf "<![CDATA[%s]]>" .Title | safeHTML -}} - + <![CDATA[{{ .Title -}}]]> {{- .Permalink -}} @@ -36,14 +34,12 @@ {{- end -}} - {{- .Date.Format "2006-01-02T15:04:05-07:00" | safeHTML -}} + {{- .Date.Format "2006-01-02T15:04:05-07:00" -}} - {{- .Lastmod.Format "2006-01-02T15:04:05-07:00" | safeHTML -}} + {{- .Lastmod.Format "2006-01-02T15:04:05-07:00" -}} - - {{- printf "" .Content | safeHTML -}} - + {{- end -}} - \ No newline at end of file + diff --git a/layouts/index.html b/layouts/index.html index 47825dede..5fad69f9b 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -1,14 +1,20 @@ {{- define "content" -}} - {{- /* Home mode [post] */ -}} - {{- if eq .Site.Params.home_mode "post" -}} -
- {{- /* Profile */ -}} +
+ {{- /* Profile */ -}} + {{- if .Site.Params.home.profile.enable -}} {{- partial "home/profile.html" . -}} + {{- end -}} + {{- /* Posts */ -}} + {{- if ne .Site.Params.home.posts.enable false -}} {{- /* Paginate */ -}} {{- $paginator := where .Site.RegularPages "Type" "posts" -}} - {{- $paginator = where $paginator "Params.show_in_homepage" "!=" false -}} - {{- with .Site.Params.home_paginate -}} + {{- if ne .Site.Params.home.posts.mode.defaultHiddenFromHomePage false -}} + {{- $paginator = where $paginator "Params.hiddenfromhomepage" "!=" true -}} + {{- else -}} + {{- $paginator = where $paginator "Params.hiddenfromhomepage" false -}} + {{- end -}} + {{- with .Site.Params.home.posts.paginate -}} {{- $paginator = $.Paginate $paginator . -}} {{- else -}} {{- $paginator = $.Paginate $paginator -}} @@ -17,11 +23,6 @@ {{- .Render "summary" -}} {{- end -}} {{- partial "paginator.html" . -}} -
- - {{- /* Home mode [other] */ -}} - {{- else -}} - {{- /* Profile */ -}} - {{- partial "home/profile.html" . -}} - {{- end -}} -{{- end -}} \ No newline at end of file + {{- end -}} +
+{{- end -}} diff --git a/layouts/partials/assets.html b/layouts/partials/assets.html new file mode 100644 index 000000000..aa901c580 --- /dev/null +++ b/layouts/partials/assets.html @@ -0,0 +1,244 @@ +{{- $scratch := .Scratch.Get "scratch" -}} +{{- $CDN := $scratch.Get "CDN" -}} + +{{- /* Fork Awesome */ -}} +{{- if $scratch.Get "forkawesome" -}} + {{- slice "lib/forkawesome/fork-awesome.scss" | $scratch.Add "linkLocal" -}} +{{- end -}} + +{{- /* iconfont */ -}} +{{- if $scratch.Get "iconfont" -}} + {{- slice "lib/iconfont/iconfont.css" | $scratch.Add "linkLocal" -}} +{{- end -}} + +{{- /* Smooth Scroll */ -}} +{{- with $CDN.smoothScrollJS -}} + {{- slice . | $scratch.Add "scriptCDN" -}} +{{- else -}} + {{- slice "lib/smooth-scroll/smooth-scroll.polyfills.min.js" | $scratch.Add "scriptLocal" -}} +{{- end -}} + +{{- /* Sharer.js */ -}} +{{- if $scratch.Get "share" -}} + {{- with $CDN.sharerJS -}} + {{- slice . | $scratch.Add "scriptCDN" -}} + {{- else -}} + {{- slice "lib/sharer/sharer.min.js" | $scratch.Add "scriptLocal" -}} + {{- end -}} +{{- end -}} + +{{- /* lazysizes */ -}} +{{- with $CDN.lazysizesJS -}} + {{- slice . | $scratch.Add "scriptCDN" -}} +{{- else -}} + {{- slice "lib/lazysizes/lazysizes.min.js" | $scratch.Add "scriptLocal" -}} +{{- end -}} + +{{- /* lightgallery.js */ -}} +{{- if ne .Page.Site.Params.page.lightgallery false | and (ne .Page.Params.lightgallery false) -}} + {{- with $CDN.lightgalleryCSS -}} + {{- slice . | $scratch.Add "linkCDN" -}} + {{- else -}} + {{- slice "lib/lightgallery/lightgallery.min.css" | $scratch.Add "linkLocal" -}} + {{- end -}} + {{- with $CDN.lightgalleryJS -}} + {{- slice . | $scratch.Add "scriptCDN" -}} + {{- else -}} + {{- slice "lib/lightgallery/lightgallery.min.js" | $scratch.Add "scriptLocal" -}} + {{- end -}} + {{- with $CDN.lightgalleryThumbnailJS -}} + {{- slice . | $scratch.Add "scriptCDN" -}} + {{- else -}} + {{- slice "lib/lightgallery/lg-thumbnail.min.js" | $scratch.Add "scriptLocal" -}} + {{- end -}} + {{- with $CDN.lightgalleryZoomJS -}} + {{- slice . | $scratch.Add "scriptCDN" -}} + {{- else -}} + {{- slice "lib/lightgallery/lg-zoom.min.js" | $scratch.Add "scriptLocal" -}} + {{- end -}} + +{{- end -}} + +{{- /* TypeIt */ -}} +{{- with $scratch.Get "typeitMap" -}} + {{- with $CDN.typeitJS -}} + {{- slice . | $scratch.Add "scriptCDN" -}} + {{- else -}} + {{- slice "lib/typeit/typeit.min.js" | $scratch.Add "scriptLocal" -}} + {{- end -}} + {{- range $key, $val := . -}} + {{- slice $val | $scratch.Add "typeitArr" -}} + {{- end -}} + +{{- end -}} + +{{- /* KaTeX */ -}} +{{- if ne .Site.Params.math.enable false | and .Params.math -}} + {{- with $CDN.katexCSS -}} + {{- slice . | $scratch.Add "linkCDN" -}} + {{- else -}} + {{- slice "lib/katex/katex.min.css" | $scratch.Add "linkLocal" -}} + {{- end -}} + {{- with $CDN.katexJS -}} + {{- slice . | $scratch.Add "scriptCDN" -}} + {{- else -}} + {{- slice "lib/katex/katex.min.js" | $scratch.Add "scriptLocal" -}} + {{- end -}} + {{- with $CDN.katexAutoRenderJS -}} + {{- slice . | $scratch.Add "scriptCDN" -}} + {{- else -}} + {{- slice "lib/katex/auto-render.min.js" | $scratch.Add "scriptLocal" -}} + {{- end -}} + {{- $math := .Site.Params.math -}} + {{- if $math.copyTex -}} + {{- with $CDN.katexCopyTexCSS -}} + {{- slice . | $scratch.Add "linkCDN" -}} + {{- else -}} + {{- slice "lib/katex/copy-tex.min.css" | $scratch.Add "linkLocal" -}} + {{- end -}} + {{- with $CDN.katexCopyTexJS -}} + {{- slice . | $scratch.Add "scriptCDN" -}} + {{- else -}} + {{- slice "lib/katex/copy-tex.min.js" | $scratch.Add "scriptLocal" -}} + {{- end -}} + {{- end -}} + {{- if $math.mhchem -}} + {{- with $CDN.katexMhchemJS -}} + {{- slice . | $scratch.Add "scriptCDN" -}} + {{- else -}} + {{- slice "lib/katex/mhchem.min.js" | $scratch.Add "scriptLocal" -}} + {{- end -}} + {{- end -}} + +{{- end -}} + +{{- /* mermaid */ -}} +{{- with $scratch.Get "mermaidArr" -}} + {{- with $CDN.mermaidJS -}} + {{- slice . | $scratch.Add "scriptCDN" -}} + {{- else -}} + {{- slice "lib/mermaid/mermaid.min.js" | $scratch.Add "scriptLocal" -}} + {{- end -}} + {{- slice "lib/mermaid/mermaid.scss" | $scratch.Add "linkLocal" -}} + +{{- end -}} + +{{- /* ECharts */ -}} +{{- with $scratch.Get "echartsArr" -}} + {{- with $CDN.echartsJS -}} + {{- slice . | $scratch.Add "scriptCDN" -}} + {{- else -}} + {{- slice "lib/echarts/echarts.min.js" | $scratch.Add "scriptLocal" -}} + {{- end -}} + {{- with $CDN.echartsMacaronsJS -}} + {{- slice . | $scratch.Add "scriptCDN" -}} + {{- else -}} + {{- slice "lib/echarts/macarons.js" | $scratch.Add "scriptLocal" -}} + {{- end -}} + +{{- end -}} + +{{- /* Music */ -}} +{{- if $scratch.Get "music" -}} + {{- /* APlayer */ -}} + {{- with $CDN.aplayerCSS -}} + {{- slice . | $scratch.Add "linkCDN" -}} + {{- else -}} + {{- slice "lib/aplayer/APlayer.min.css" | $scratch.Add "linkLocal" -}} + {{- end -}} + {{- slice "lib/aplayer/dark.scss" | $scratch.Add "linkLocal" -}} + {{- with $CDN.aplayerJS -}} + {{- slice . | $scratch.Add "scriptCDN" -}} + {{- else -}} + {{- slice "lib/aplayer/APlayer.min.js" | $scratch.Add "scriptLocal" -}} + {{- end -}} + + {{- /* MetingJS */ -}} + {{- with $CDN.metingJS -}} + {{- slice . | $scratch.Add "scriptCDN" -}} + {{- else -}} + {{- slice "lib/meting/Meting.min.js" | $scratch.Add "scriptLocal" -}} + {{- end -}} +{{- end -}} + +{{- /* Dev feature */ -}} +{{- if .Params.dev -}} +{{- end -}} + +{{- with $scratch.Get "contentMap" -}} + +{{- end -}} + +{{- /* Theme script */ -}} +{{- slice "js/theme.min.js" | $scratch.Add "scriptLocal" -}} +{{- $_ := (resources.Get "js/theme.min.js.map").RelPermalink -}} + +{{- range $scratch.Get "linkCDN" -}} + {{- safeHTML . -}} +{{- end -}} +{{- range $scratch.Get "linkLocal" -}} + {{- $res := resources.Get . -}} + {{- if strings.HasSuffix . ".scss" -}} + {{- $options := dict "outputStyle" "compressed" "enableSourceMap" true -}} + {{- $res = toCSS $options $res -}} + {{- else if not (strings.HasSuffix . ".min.css") -}} + {{- $res = minify $res -}} + {{- end -}} + {{- $res = $res | resources.Fingerprint "sha256" -}} + +{{- end -}} + +{{- range $scratch.Get "scriptCDN" -}} + {{- safeHTML . -}} +{{- end -}} +{{- range $scratch.Get "scriptLocal" -}} + {{- $res := resources.Get . -}} + {{- if not (strings.HasSuffix . ".min.js") -}} + {{- $res = minify $res -}} + {{- end -}} + {{- $res = $res | resources.Fingerprint "sha256" -}} + +{{- end -}} + +{{- /* Google analytics async */ -}} +{{- if $scratch.Get "production" | and .Site.GoogleAnalytics -}} + {{- template "_internal/google_analytics_async.html" . -}} +{{- end -}} diff --git a/layouts/partials/comment.html b/layouts/partials/comment.html new file mode 100644 index 000000000..14b2cf45c --- /dev/null +++ b/layouts/partials/comment.html @@ -0,0 +1,116 @@ +{{- $scratch := .Scratch.Get "scratch" -}} + +{{- if $scratch.Get "production" | and (ne .Site.Params.comment.enable false) | and (ne .Params.comment false) -}} + {{- $CDN := $scratch.Get "CDN" -}} + + {{- /* Disqus Comment System */ -}} + {{- with .Site.Params.comment.disqus.shortname -}} +
+ {{- $script := printf `` . -}} + {{- slice $script | $scratch.Add "scriptCDN" -}} + + {{- end -}} + + {{- /* Gitalk Comment System */ -}} + {{- if .Site.Params.comment.gitalk.owner -}} + {{- $gitalk := .Site.Params.comment.gitalk -}} +
+ {{- with $CDN.gitalkCSS -}} + {{- slice . | $scratch.Add "linkCDN" -}} + {{- else -}} + {{- slice "lib/gitalk/gitalk.css" | $scratch.Add "linkLocal" -}} + {{- end -}} + {{- with $CDN.gitalkJS -}} + {{- slice . | $scratch.Add "scriptCDN" -}} + {{- else -}} + {{- slice "lib/gitalk/gitalk.min.js" | $scratch.Add "scriptLocal" -}} + {{- end -}} + + + {{- end -}} + + {{- /* Valine Comment System */ -}} + {{- if .Site.Params.comment.valine.enable -}} + {{- $valine := .Site.Params.comment.valine -}} +
+ {{- slice "lib/valine/dark.scss" | $scratch.Add "linkLocal" -}} + {{- with $CDN.valineJS -}} + {{- slice . | $scratch.Add "scriptCDN" -}} + {{- else -}} + {{- slice "lib/valine/Valine.min.js" | $scratch.Add "scriptLocal" -}} + {{- end -}} + + + {{- end -}} + + {{- /* Facebook Comment System */ -}} + {{- if .Site.Params.comment.facebook.enable -}} + {{- $facebook := .Site.Params.comment.facebook -}} +
+
+ {{- $script := `` -}} + {{- $script = printf $script $facebook.languageCode $facebook.appId -}} + {{- slice $script | $scratch.Add "scriptCDN" -}} + + {{- end -}} +{{- end -}} diff --git a/layouts/partials/comments.html b/layouts/partials/comments.html deleted file mode 100644 index 76c3254b5..000000000 --- a/layouts/partials/comments.html +++ /dev/null @@ -1,107 +0,0 @@ -{{- if eq (getenv "HUGO_ENV") "production" | and .IsPage | and (ne .Params.comment false) -}} - {{- /* Disqus Comment System */ -}} - {{- if .Site.Params.disqus.shortname -}} -
- - - {{- end -}} - - {{- /* Gitalk Comment System */ -}} - {{- if .Site.Params.gitalk.owner -}} -
- {{- if .Site.Params.cdn.gitalk_css -}} - {{- .Site.Params.cdn.gitalk_css | safeHTML -}} - {{- else -}} - {{- $res := resources.Get "css/lib/gitalk/gitalk.css" | resources.Minify -}} - - {{- end -}} - {{- if .Site.Params.cdn.gitalk_js -}} - {{ .Site.Params.cdn.gitalk_js | safeHTML -}} - {{- else -}} - {{- $res := resources.Get "js/lib/gitalk/gitalk.min.js" | resources.Minify -}} - - {{- end -}} - - - {{- end -}} - - {{- /* Valine Comment System */ -}} - {{- if .Site.Params.valine.enable -}} -
- {{- if .Site.Params.cdn.valine_js -}} - {{- .Site.Params.cdn.valine_js | safeHTML -}} - {{- else -}} - {{- $res := resources.Get "js/lib/valine/Valine.min.js" | resources.Minify -}} - - {{- end -}} - - - {{- end -}} - - {{- /* Facebook Comment System */ -}} - {{- if .Site.Params.facebook.enable -}} -
- -
- - {{- end -}} -{{- end -}} \ No newline at end of file diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html index 3a5f03c1a..22bdd6590 100644 --- a/layouts/partials/footer.html +++ b/layouts/partials/footer.html @@ -2,13 +2,13 @@ - \ No newline at end of file + diff --git a/layouts/partials/function/checkbox.html b/layouts/partials/function/checkbox.html new file mode 100644 index 000000000..2283592b9 --- /dev/null +++ b/layouts/partials/function/checkbox.html @@ -0,0 +1,9 @@ +{{- /* Checkbox unchecked */ -}} +{{- $old := `` -}} +{{- $new := `` -}} +{{- $content := replace . $old $new -}} + +{{- /* Checkbox checked */ -}} +{{- $old = `` -}} +{{- $new = `` -}} +{{- return replace $content $old $new -}} diff --git a/layouts/partials/function/escape.html b/layouts/partials/function/escape.html new file mode 100644 index 000000000..1ff794f9c --- /dev/null +++ b/layouts/partials/function/escape.html @@ -0,0 +1,5 @@ +{{- /* Escape character */ -}} +{{- /* {?X} -> X */ -}} +{{- $REin := `\{\?(.)\}` -}} +{{- $REout := `$1` -}} +{{- return replaceRE $REin $REout . -}} diff --git a/layouts/partials/function/fontawesome.html b/layouts/partials/function/fontawesome.html new file mode 100644 index 000000000..270aab5b0 --- /dev/null +++ b/layouts/partials/function/fontawesome.html @@ -0,0 +1,5 @@ +{{- /* Font Awesome */ -}} +{{- /* :(far fa-circle): -> */ -}} +{{- $REin := `:\(([\w- ]+?)\):` -}} +{{- $REout := `` -}} +{{- return replaceRE $REin $REout . -}} diff --git a/layouts/partials/function/id.html b/layouts/partials/function/id.html new file mode 100644 index 000000000..c70290839 --- /dev/null +++ b/layouts/partials/function/id.html @@ -0,0 +1,8 @@ +{{- /* ID */ -}} +{{- /* Content -> unique ID */ -}} +{{- /* shuffle md5 as id */ -}} +{{- $id := delimit (split (md5 now.Unix) "" | shuffle | first 6) "" | printf "id-%s" -}} +{{- with .scratch -}} + {{- .SetInMap "contentMap" $id $.content -}} +{{- end -}} +{{- return $id -}} diff --git a/layouts/partials/function/ruby.html b/layouts/partials/function/ruby.html new file mode 100644 index 000000000..49aa35be5 --- /dev/null +++ b/layouts/partials/function/ruby.html @@ -0,0 +1,5 @@ +{{- /* Ruby */ -}} +{{- /* [EN]^(English) -> ENEnglish */ -}} +{{- $REin := `\[(.+?)\]\^\((.+?)\)` -}} +{{- $REout := `$1$2` -}} +{{- return replaceRE $REin $REout . -}} diff --git a/layouts/partials/head.html b/layouts/partials/head.html deleted file mode 100644 index 3eee7223e..000000000 --- a/layouts/partials/head.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -{{- with .Site.Params.google_verification -}} - -{{- end -}} -{{- with .Site.Params.bing_verification -}} - -{{- end -}} -{{- with .Site.Params.yandex_verification -}} - -{{- end -}} -{{- with .Site.Params.pinterest_verification -}} - -{{- end -}} -{{- with .Site.Params.baidu_verification -}} - -{{- end -}} -{{- if .PrevInSection -}} - -{{- end -}} -{{- if .NextInSection -}} - -{{- end -}} - - - - - - - - - -{{- with .OutputFormats.Get "RSS" -}} - - -{{- end -}} - -{{- template "_internal/opengraph.html" . -}} - -{{- $share := .Params.share.enable | default .Site.Params.share.enable | eq true -}} -{{- if $share | and (.Params.Share.Twitter | default .Site.Params.Share.Twitter | eq true) -}} - {{- template "_internal/twitter_cards.html" . -}} -{{- end -}} - -{{- partial "seo.html" . -}} - -{{- $options := dict "targetPath" "css/style.min.css" "outputStyle" "compressed" "enableSourceMap" true -}} -{{- if fileExists "config/css/_custom.scss" -}} - {{- $options = dict "includePaths" (slice "config/css") | merge $options -}} - {{- $res := resources.Get "css/custom-style.scss" | toCSS $options -}} - -{{- else -}} - {{- $res := resources.Get "css/style.scss" | toCSS $options -}} - -{{- end -}} - -{{- if eq (getenv "HUGO_ENV") "production" | and .Site.Params.cdn.fontawesome_free_css -}} - {{- .Site.Params.cdn.fontawesome_free_css | safeHTML -}} -{{- else -}} - {{- $res := resources.Get "css/lib/fontawesome-free/all.min.css" -}} - -{{- end -}} -{{- if eq (getenv "HUGO_ENV") "production" | and .Site.Params.cdn.animate_css -}} - {{- .Site.Params.cdn.animate_css | safeHTML -}} -{{- else -}} - {{ $res := resources.Get "css/lib/animate/animate.min.css" -}} - -{{- end -}} \ No newline at end of file diff --git a/layouts/partials/head/link.html b/layouts/partials/head/link.html new file mode 100644 index 000000000..9b007ec8a --- /dev/null +++ b/layouts/partials/head/link.html @@ -0,0 +1,47 @@ +{{- $scratch := .Scratch.Get "scratch" -}} +{{- $CDN := $scratch.Get "CDN" -}} + + + + + + + + + +{{- if .PrevInSection -}} + +{{- end -}} +{{- if .NextInSection -}} + +{{- end -}} + +{{- with .OutputFormats.Get "RSS" -}} + + +{{- end -}} + +{{- /* Font Awesome */ -}} +{{- with $CDN.fontawesomeFreeCSS -}} + {{- . | safeHTML -}} +{{- else -}} + {{- $res := resources.Get "lib/fontawesome-free/all.min.css" | resources.Fingerprint "sha256" -}} + +{{- end -}} + +{{- /* Animate.css */ -}} +{{- with $CDN.animateCSS -}} + {{- . | safeHTML -}} +{{- else -}} + {{ $res := resources.Get "lib/animate/animate.min.css" | resources.Fingerprint "sha256" -}} + +{{- end -}} + +{{- /* style.min.css */ -}} +{{- $res := resources.Get "css/style.template.scss" -}} +{{- $options := dict "targetPath" "css/style.min.css" -}} +{{- $options = dict "includePaths" (slice "config/css") | merge $options -}} +{{- $options = dict "outputStyle" "compressed" | merge $options -}} +{{- $options = dict "enableSourceMap" true | merge $options -}} +{{- $res = resources.ExecuteAsTemplate "style.scss" . $res | toCSS $options | resources.Fingerprint "sha256" -}} + diff --git a/layouts/partials/head/meta.html b/layouts/partials/head/meta.html new file mode 100644 index 000000000..a85d74feb --- /dev/null +++ b/layouts/partials/head/meta.html @@ -0,0 +1,5 @@ +{{- template "_internal/opengraph.html" . -}} +{{- template "_internal/twitter_cards.html" . -}} + + + diff --git a/layouts/partials/seo.html b/layouts/partials/head/seo.html similarity index 81% rename from layouts/partials/seo.html rename to layouts/partials/head/seo.html index 3d816b60c..5a2228690 100644 --- a/layouts/partials/seo.html +++ b/layouts/partials/head/seo.html @@ -1,10 +1,26 @@ +{{- with .Site.Params.verification.google -}} + +{{- end -}} +{{- with .Site.Params.verification.bing -}} + +{{- end -}} +{{- with .Site.Params.verification.yandex -}} + +{{- end -}} +{{- with .Site.Params.verification.pinterest -}} + +{{- end -}} +{{- with .Site.Params.verification.baidu -}} + +{{- end -}} + {{- /* Home SEO */ -}} {{- if .IsHome -}} -{{- end -}} \ No newline at end of file +{{- end -}} diff --git a/layouts/partials/header.html b/layouts/partials/header.html index 1dd2a2980..d4b0951d3 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -1,44 +1,91 @@ -{{- /* Desktop navbar */ -}} - + -{{- /* Mobile navbar */ -}} - \ No newline at end of file + + + diff --git a/layouts/partials/home/profile.html b/layouts/partials/home/profile.html index 959e0addc..ad3d7f734 100644 --- a/layouts/partials/home/profile.html +++ b/layouts/partials/home/profile.html @@ -1,34 +1,33 @@ -
- {{- $avatar := "" -}} - {{- if .Site.Params.gravatar.email -}} - {{- $avatar = (printf "https://www.gravatar.com/avatar/%s?s=240&d=mp" (md5 .Site.Params.gravatar.email)) -}} - {{- else if .Site.Params.avatar -}} - {{- $avatar = .Site.Params.avatar -}} +{{- $scratch := .Scratch.Get "scratch" -}} + +
+ {{- $avatar := .Site.Params.home.profile.avatarURL -}} + {{- with .Site.Params.home.profile.gravatarEmail -}} + {{- $avatar = md5 . | printf "https://www.gravatar.com/avatar/%s?s=240&d=mp" -}} {{- end -}} - {{- if $avatar -}} + {{- with $avatar -}} {{- end -}} - {{- with .Site.Params.subtitle -}} + {{- with .Site.Params.home.profile.subtitle -}}

- {{- $id := md5 . | printf "tp-%s" -}} - -
- {{- with $.Scratch.Get "typeitMap" -}} - {{- $.Scratch.Set "typeitMap" (dict $id (slice $id) | merge .) -}} + {{- if $.Site.Params.home.profile.typeit -}} + {{- $id := partial "function/id.html" (dict "content" . "scratch" $scratch) -}} +
+ {{- $scratch.SetInMap "typeitMap" $id (slice $id) -}} {{- else -}} - {{- $.Scratch.Set "typeitMap" (dict $id (slice $id)) -}} + {{- . -}} {{- end -}}

{{- end -}}
diff --git a/layouts/partials/home/social.html b/layouts/partials/home/social.html deleted file mode 100644 index 712f3e911..000000000 --- a/layouts/partials/home/social.html +++ /dev/null @@ -1,304 +0,0 @@ - -{{- with .Site.Params.Social.Github -}} - - - -{{- end -}} -{{- with .Site.Params.Social.LinkedIn -}} - - - -{{- end -}} -{{- with .Site.Params.Social.Twitter -}} - - - -{{- end -}} -{{- with .Site.Params.Social.Instagram -}} - - - -{{- end -}} -{{- with .Site.Params.Social.Facebook}} - - - -{{- end -}} -{{- with .Site.Params.Social.Telegram}} - - - -{{- end -}} -{{- with .Site.Params.Social.Medium}} - - - -{{- end -}} -{{- with .Site.Params.Social.Gitlab}} - - - -{{- end -}} -{{- with .Site.Params.Social.Youtubelegacy}} - - - -{{- end -}} -{{- with .Site.Params.Social.Youtubecustom}} - - - -{{- end -}} -{{- with .Site.Params.Social.Youtubechannel}} - - - -{{- end -}} -{{- with .Site.Params.Social.Tumblr}} - - - -{{- end -}} -{{- with .Site.Params.Social.Quora}} - - - -{{- end -}} -{{- with .Site.Params.Social.Keybase}} - - - -{{- end -}} -{{- with .Site.Params.Social.Pinterest}} - - - -{{- end -}} -{{- with .Site.Params.Social.Reddit}} - - - -{{- end -}} -{{- with .Site.Params.Social.Codepen}} - - - -{{- end -}} -{{- with .Site.Params.Social.FreeCodeCamp}} - - - -{{- end -}} -{{- with .Site.Params.Social.Bitbucket}} - - - -{{- end -}} -{{- with .Site.Params.Social.Stackoverflow}} - - - -{{- end -}} -{{- with .Site.Params.Social.Weibo}} - - - -{{- end -}} -{{- with .Site.Params.Social.Odnoklassniki}} - - - -{{- end -}} -{{- with .Site.Params.Social.VKontakte}} - - - -{{- end -}} -{{- with .Site.Params.Social.Flickr}} - - - -{{- end -}} -{{- with .Site.Params.Social.Xing}} - - - -{{- end -}} -{{- with .Site.Params.Social.Snapchat}} - - - -{{- end -}} -{{- with .Site.Params.Social.Soundcloud}} - - - -{{- end -}} -{{- with .Site.Params.Social.Spotify}} - - - -{{- end -}} -{{- with .Site.Params.Social.Bandcamp}} - - - -{{- end -}} -{{- with .Site.Params.Social.Paypal}} - - - -{{- end -}} -{{- with .Site.Params.Social.Fivehundredpx}} - - - -{{- end -}} -{{- with .Site.Params.Social.Mix}} - - - -{{- end -}} -{{- with .Site.Params.Social.Goodreads}} - - - -{{- end -}} -{{- with .Site.Params.Social.Lastfm}} - - - -{{- end -}} -{{- with .Site.Params.Social.Foursquare}} - - - -{{- end -}} -{{- with .Site.Params.Social.Hackernews}} - - - -{{- end -}} -{{- with .Site.Params.Social.Kickstarter}} - - - -{{- end -}} -{{- with .Site.Params.Social.Patreon}} - - - -{{- end -}} -{{- with .Site.Params.Social.Steam}} - - - -{{- end -}} -{{- with .Site.Params.Social.Twitch}} - - - -{{- end -}} -{{- with .Site.Params.Social.Strava}} - - - -{{- end -}} -{{- with .Site.Params.Social.Skype}} - - - -{{- end -}} -{{- with .Site.Params.Social.Whatsapp}} - - - -{{- end -}} -{{- with .Site.Params.Social.Zhihu}} - - - -{{- end -}} -{{- with .Site.Params.Social.Angellist}} - - - -{{- end -}} -{{- with .Site.Params.Social.Slideshare}} - - - -{{- end -}} -{{- with .Site.Params.Social.Jsfiddle}} - - - -{{- end -}} -{{- with .Site.Params.Social.Deviantart}} - - - -{{- end -}} -{{- with .Site.Params.Social.Behance}} - - - -{{- end -}} -{{- with .Site.Params.Social.Dribble}} - - - -{{- end -}} -{{- with .Site.Params.Social.Wordpress}} - - - -{{- end -}} -{{- with .Site.Params.Social.Vine}} - - - -{{- end -}} -{{- with .Site.Params.Social.Googlescholar}} - - - -{{- end -}} -{{- with .Site.Params.Social.Researchgate}} - - - -{{- end -}} -{{- with .Site.Params.Social.Mastodon}} - - - -{{- end -}} -{{- with .Site.Params.Social.Devto}} - - - -{{- end -}} -{{- with .Site.Params.Social.Email}} - - - -{{- end -}} -{{- with .Site.Params.Social.Gitea}} - - - -{{- end -}} -{{- with .Site.Params.Social.XMPP}} - - - -{{- end -}} -{{- with .Site.Params.Social.Matrix}} - - - -{{- end -}} -{{- with .Site.Params.Social.Custom}} - {{- . | safeHTML -}} -{{- end -}} diff --git a/layouts/partials/hook/content.html b/layouts/partials/hook/content.html deleted file mode 100644 index b932c004d..000000000 --- a/layouts/partials/hook/content.html +++ /dev/null @@ -1,43 +0,0 @@ -{{- /* Font Awesome */ -}} -{{- /* :(far fa-circle): -> */ -}} -{{- $REin := `:\(([\w- ]+?)\):` -}} -{{- $REout := `` -}} -{{- $content := replaceRE $REin $REout . -}} - -{{- /* Ruby */ -}} -{{- /* [EN]^(English) -> ENEnglish */ -}} -{{- $REin = `\[(.+?)\]\^\((.+?)\)` -}} -{{- $REout = `$1$2` -}} -{{- $content = replaceRE $REin $REout $content -}} - -{{- /* Checkbox */ -}} -{{- $REin = `` -}} -{{- $REout = `` -}} -{{- $content = replaceRE $REin $REout $content -}} - -{{- /* Checkbox checked */ -}} -{{- $REin = `` -}} -{{- $REout = `` -}} -{{- $content = replaceRE $REin $REout $content -}} - -{{- /* Fix [return] */ -}} -{{- $REin = `\[return\]` -}} -{{- $REout = `↩︎` -}} -{{- $content = replaceRE $REin $REout $content -}} - -{{- /* Dummy target */ -}} -{{- $REin = `<(h[23456]) (id=".+?")>` -}} -{{- $REout = `<$1>` -}} -{{- $content = replaceRE $REin $REout $content -}} - -{{- /* Dummy target */ -}} -{{- $REin = `<(.+) (id="fnref:.+?")>` -}} -{{- $REout = `<$1>` -}} -{{- $content = replaceRE $REin $REout $content -}} - -{{- /* Dummy target */ -}} -{{- $REin = `
  • \s?

    ` -}} -{{- $REout = `

  • ` -}} -{{- $content = replaceRE $REin $REout $content -}} - -{{- return $content -}} \ No newline at end of file diff --git a/layouts/partials/image.html b/layouts/partials/image.html deleted file mode 100644 index c76f886bb..000000000 --- a/layouts/partials/image.html +++ /dev/null @@ -1,3 +0,0 @@ -{{- /* Lazyload */ -}} -{{- $res := resources.Get "svg/loading.svg" | minify -}} -featured image \ No newline at end of file diff --git a/layouts/partials/paginator.html b/layouts/partials/paginator.html index 7adf97922..170144fb3 100644 --- a/layouts/partials/paginator.html +++ b/layouts/partials/paginator.html @@ -1,6 +1,6 @@ -{{- if gt $.Paginator.TotalPages 1 -}} +{{- if gt .Paginator.TotalPages 1 -}}

      - {{- $.Scratch.Set "paginator.ellipsed" false -}} + {{- .Scratch.Set "paginator.ellipsed" false -}} {{- range $.Paginator.Pagers -}} {{- $right := sub .TotalPages .PageNumber -}} {{- $showNumber := or (le .PageNumber 1) (eq $right 0) -}} @@ -27,4 +27,4 @@ {{- end -}} {{- end -}}
    -{{- end -}} \ No newline at end of file +{{- end -}} diff --git a/layouts/partials/plugin/icon.html b/layouts/partials/plugin/icon.html new file mode 100644 index 000000000..9898a08cd --- /dev/null +++ b/layouts/partials/plugin/icon.html @@ -0,0 +1,25 @@ +{{- $type := .type | default "fa" -}} +{{- $classList := split .class " " -}} +{{- /* Fork Awesome */ -}} +{{- if eq $type "fo" -}} + {{- $newClassList := slice -}} + {{- range $classList -}} + {{- if eq . "fa" -}} + {{- $newClassList = $newClassList | append "fo" -}} + {{- else -}} + {{- $newClassList = $newClassList | append (replaceRE `^fa\-(.+)$` `fo-$1` .) -}} + {{- end -}} + {{- end -}} + {{- $classList = $newClassList -}} + {{- with .scratch -}} + {{- .Set "forkawesome" true -}} + {{- end -}} + +{{- /* default is Font Awesome */ -}} +{{- /* Others */ -}} +{{- else if ne $type "fa" -}} + {{- with .scratch -}} + {{- .Set "iconfont" true -}} + {{- end -}} +{{- end -}} + diff --git a/layouts/partials/plugin/image.html b/layouts/partials/plugin/image.html new file mode 100644 index 000000000..99a698d42 --- /dev/null +++ b/layouts/partials/plugin/image.html @@ -0,0 +1,30 @@ +{{- /* lazysizes and lightgallery.js */ -}} +{{- $small := .src_s | default .src -}} +{{- $large := .src_l | default .src -}} +{{- $loading := resources.Get "svg/loading.svg" | minify -}} +{{- if not .src | and .src_s -}} + {{- $loading = resources.Get "svg/loading.small.svg" | minify -}} +{{- end -}} +{{- if .lightgallery -}} + + {{ .title | default .description }} + + {{- with .scratch -}} + {{- .Set "lightgallery" true -}} + {{- end -}} +{{- else -}} + {{ .title | default .description }} +{{- end -}} diff --git a/layouts/partials/plugin/link.html b/layouts/partials/plugin/link.html new file mode 100644 index 000000000..c71bf3454 --- /dev/null +++ b/layouts/partials/plugin/link.html @@ -0,0 +1,8 @@ + + {{- with .icon -}} + {{- partial "plugin/icon.html" . -}} + {{- end -}} + {{- with .content -}} + {{- . | safeHTML -}} + {{- end -}} + diff --git a/layouts/partials/plugin/share.html b/layouts/partials/plugin/share.html new file mode 100644 index 000000000..08eba8f39 --- /dev/null +++ b/layouts/partials/plugin/share.html @@ -0,0 +1,201 @@ +{{- $scratch := .Scratch.Get "scratch" -}} + +{{- if ne .Site.Params.share.enable false | and (ne .Params.share.enable false) -}} + {{- $scratch.Set "share" true -}} + + {{- /* 001: Twitter */ -}} + {{- if .Params.Share.Twitter | default .Site.Params.Share.Twitter | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-twitter fa-fw") -}} + + {{- end -}} + + {{- /* 002: Facebook */ -}} + {{- if .Params.Share.Facebook | default .Site.Params.Share.Facebook | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-facebook-square fa-fw") -}} + + {{- end -}} + + {{- /* 003: Linkedin */ -}} + {{- if .Params.Share.Linkedin | default .Site.Params.Share.Linkedin | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-linkedin fa-fw") -}} + + {{- end -}} + + {{- /* 004: WhatsApp */ -}} + {{- if .Params.Share.Whatsapp | default .Site.Params.Share.Whatsapp | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-whatsapp fa-fw") -}} + + {{- end -}} + + {{- /* 005: Viber */ -}} + {{- if .Params.Share.Viber | default .Site.Params.Share.Viber | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-viber fa-fw") -}} + + {{- end -}} + + {{- /* 006: Pinterest */ -}} + {{- if .Params.Share.Pinterest | default .Site.Params.Share.Pinterest | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-pinterest fa-fw") -}} + + {{- end -}} + + {{- /* 007: Tumblr */ -}} + {{- if .Params.Share.Tumblr | default .Site.Params.Share.Tumblr | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-tumblr fa-fw") -}} + + {{- end -}} + + {{- /* 008: Hacker News */ -}} + {{- if .Params.Share.Hackernews | default .Site.Params.Share.Hackernews | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-hacker-news fa-fw") -}} + + {{- end -}} + + {{- /* 009: Reddit */ -}} + {{- if .Params.Share.Reddit | default .Site.Params.Share.Reddit | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-reddit fa-fw") -}} + + {{- end -}} + + {{- /* 010: VK */ -}} + {{- if .Params.Share.VK | default .Site.Params.Share.VK | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-vk fa-fw") -}} + + {{- end -}} + + {{- /* 011: Buffer */ -}} + {{- if .Params.Share.Buffer | default .Site.Params.Share.Buffer | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-buffer fa-fw") -}} + + {{- end -}} + + {{- /* 012: Xing */ -}} + {{- if .Params.Share.Xing | default .Site.Params.Share.Xing | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-xing fa-fw") -}} + + {{- end -}} + + {{- /* 013: Line */ -}} + {{- if .Params.Share.Line | default .Site.Params.Share.Line | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-line fa-fw") -}} + + {{- end -}} + + {{- /* 014: Instapaper */ -}} + {{- if .Params.Share.Instapaper | default .Site.Params.Share.Instapaper | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "loveit it-instapaper-fill" "type" "other" "scratch" $scratch) -}} + + {{- end -}} + + {{- /* 015: Pocket */ -}} + {{- if .Params.Share.Pocket | default .Site.Params.Share.Pocket | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-get-pocket fa-fw") -}} + + {{- end -}} + + {{- /* 016: Digg */ -}} + {{- if .Params.Share.Digg | default .Site.Params.Share.Digg | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-digg fa-fw") -}} + + {{- end -}} + + {{- /* 017: StumbleUpon */ -}} + {{- if .Params.Share.Stumbleupon | default .Site.Params.Share.Stumbleupon | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-stumbleupon fa-fw") -}} + + {{- end -}} + + {{- /* 018: Flipboard */ -}} + {{- if .Params.Share.Flipboard | default .Site.Params.Share.Flipboard | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-flipboard fa-fw") -}} + + {{- end -}} + + {{- /* 019: 微博 */ -}} + {{- if .Params.Share.Weibo | default .Site.Params.Share.Weibo | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-weibo fa-fw") -}} + + {{- end -}} + + {{- /* 020: 人人 */ -}} + {{- if .Params.Share.Renren | default .Site.Params.Share.Renren | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-renren fa-fw") -}} + + {{- end -}} + + {{- /* 021: Myspace */ -}} + {{- if .Params.Share.Myspace | default .Site.Params.Share.Myspace | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "loveit it-myspace-fill" "type" "other" "scratch" $scratch) -}} + + {{- end -}} + + {{- /* 022: Blogger */ -}} + {{- if .Params.Share.Blogger | default .Site.Params.Share.Blogger | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-blogger fa-fw") -}} + + {{- end -}} + + {{- /* 023: 百度 */ -}} + {{- if .Params.Share.Baidu | default .Site.Params.Share.Baidu | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "loveit it-baidu-fill" "type" "other" "scratch" $scratch) -}} + + {{- end -}} + + {{- /* 024: OK.RU */ -}} + {{- if .Params.Share.Odnoklassniki | default .Site.Params.Share.Odnoklassniki | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-odnoklassniki fa-fw") -}} + + {{- end -}} + + {{- /* 025: Evernote */ -}} + {{- if .Params.Share.Evernote | default .Site.Params.Share.Evernote | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-evernote fa-fw") -}} + + {{- end -}} + + {{- /* 026: Skype */ -}} + {{- if .Params.Share.Skype | default .Site.Params.Share.Skype | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-skype fa-fw") -}} + + {{- end -}} + + {{- /* 027: Trello */ -}} + {{- if .Params.Share.Trello | default .Site.Params.Share.Trello | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-trello fa-fw") -}} + + {{- end -}} + + {{- /* 028: Mix */ -}} + {{- if .Params.Share.Mix | default .Site.Params.Share.Mix | eq true -}} + + {{- partial "plugin/icon.html" (dict "class" "fab fa-mix fa-fw") -}} + + {{- end -}} +{{- end -}} diff --git a/layouts/partials/plugin/social.html b/layouts/partials/plugin/social.html new file mode 100644 index 000000000..bb6dc3fa9 --- /dev/null +++ b/layouts/partials/plugin/social.html @@ -0,0 +1,434 @@ +{{- $scratch := .Scratch.Get "scratch" -}} + +{{- /* 001: Github */ -}} +{{- with .Site.Params.Social.Github -}} + {{- $options := dict "href" (printf "https://github.com/%s" .) "title" "GitHub" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-github-alt fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 002: LinkedIn */ -}} +{{- with .Site.Params.Social.LinkedIn -}} + {{- $options := dict "href" (printf "https://linkedin.com/in/%s" .) "title" "LinkedIn" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-linkedin fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 003: Twitter */ -}} +{{- with .Site.Params.Social.Twitter -}} + {{- $options := dict "href" (printf "https://twitter.com/%s" .) "title" "Twitter" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-twitter fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 004: Instagram */ -}} +{{- with .Site.Params.Social.Instagram -}} + {{- $options := dict "href" (printf "https://www.instagram.com/%s" .) "title" "Instagram" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-instagram fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 005: Facebook */ -}} +{{- with .Site.Params.Social.Facebook -}} + {{- $options := dict "href" (printf "https://facebook.com/%s" .) "title" "Facebook" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-facebook fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 006: Telegram */ -}} +{{- with .Site.Params.Social.Telegram -}} + {{- $options := dict "href" (printf "https://t.me/%s" .) "title" "Telegram" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-telegram-plane fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 007: Medium */ -}} +{{- with .Site.Params.Social.Medium -}} + {{- $options := dict "href" (printf "https://medium.com/%s" .) "title" "Medium" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-medium fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 008: Medium */ -}} +{{- with .Site.Params.Social.Gitlab -}} + {{- $options := dict "href" (printf "https://gitlab.com/%s" .) "title" "GitLab" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-gitlab fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 009: YouTube Legacy */ -}} +{{- with .Site.Params.Social.Youtubelegacy -}} + {{- $options := dict "href" (printf "https://www.youtube.com/user/%s" .) "title" "YouTube" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-youtube fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 010: YouTube Custom */ -}} +{{- with .Site.Params.Social.Youtubecustom -}} + {{- $options := dict "href" (printf "https://www.youtube.com/c/%s" .) "title" "YouTube" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-youtube fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 011: Youtube Channel */ -}} +{{- with .Site.Params.Social.Youtubechannel -}} + {{- $options := dict "href" (printf "https://www.youtube.com/channel/%s" .) "title" "YouTube" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-youtube fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 012: Tumblr */ -}} +{{- with .Site.Params.Social.Tumblr -}} + {{- $options := dict "href" (printf "https://%s.tumblr.com" .) "title" "Tumblr" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-tumblr fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 013: Quora */ -}} +{{- with .Site.Params.Social.Quora -}} + {{- $options := dict "href" (printf "https://www.quora.com/profile/%s" .) "title" "Quora" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-quora fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 014: Keybase */ -}} +{{- with .Site.Params.Social.Keybase -}} + {{- $options := dict "href" (printf "https://keybase.io/%s" .) "title" "Keybase" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-keybase fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 015: Pinterest */ -}} +{{- with .Site.Params.Social.Pinterest -}} + {{- $options := dict "href" (printf "https://www.pinterest.com/%s" .) "title" "Pinterest" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-pinterest fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 016: Reddit */ -}} +{{- with .Site.Params.Social.Reddit -}} + {{- $options := dict "href" (printf "https://www.reddit.com/user/%s" .) "title" "Reddit" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-reddit fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 017: CodePen */ -}} +{{- with .Site.Params.Social.Codepen -}} + {{- $options := dict "href" (printf "https://codepen.io/%s" .) "title" "CodePen" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-codepen fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 018: freeCodeCamp */ -}} +{{- with .Site.Params.Social.FreeCodeCamp -}} + {{- $options := dict "href" (printf "https://freecodecamp.org/%s" .) "title" "freeCodeCamp" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-free-code-camp fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 019: Bitbucket */ -}} +{{- with .Site.Params.Social.Bitbucket -}} + {{- $options := dict "href" (printf "https://bitbucket.org/%s" .) "title" "Bitbucket" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-bitbucket fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 020: Stack Overflow */ -}} +{{- with .Site.Params.Social.Stackoverflow -}} + {{- $options := dict "href" (printf "https://stackoverflow.com/users/%s" .) "title" "Stack Overflow" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-stack-overflow fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 021: 微博 */ -}} +{{- with .Site.Params.Social.Weibo -}} + {{- $options := dict "href" (printf "https://weibo.com/%s" .) "title" "微博" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-weibo fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 022: OK.RU */ -}} +{{- with .Site.Params.Social.Odnoklassniki -}} + {{- $options := dict "href" (printf "https://ok.ru/%s" .) "title" "OK.RU" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-odnoklassniki fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 023: VK */ -}} +{{- with .Site.Params.Social.VK -}} + {{- $options := dict "href" (printf "https://vk.com/%s" .) "title" "VK" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-vk fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 024: Flickr */ -}} +{{- with .Site.Params.Social.Flickr -}} + {{- $options := dict "href" (printf "https://www.flickr.com/photos/%s" .) "title" "Flickr" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-flickr fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 025: Xing */ -}} +{{- with .Site.Params.Social.Xing -}} + {{- $options := dict "href" (printf "https://www.xing.com/profile/%s" .) "title" "Xing" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-xing fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 026: Snapchat */ -}} +{{- with .Site.Params.Social.Snapchat -}} + {{- $options := dict "href" (printf "https://www.snapchat.com/add/%s" .) "title" "Snapchat" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-snapchat fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 027: SoundCloud */ -}} +{{- with .Site.Params.Social.Soundcloud -}} + {{- $options := dict "href" (printf "https://soundcloud.com/%s" .) "title" "SoundCloud" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-soundcloud fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 028: Spotify */ -}} +{{- with .Site.Params.Social.Spotify -}} + {{- $options := dict "href" (printf "https://open.spotify.com/user/%s" .) "title" "Spotify" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-spotify fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 029: Bandcamp */ -}} +{{- with .Site.Params.Social.Bandcamp -}} + {{- $options := dict "href" (printf "https://%s.bandcamp.com/" .) "title" "Bandcamp" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-bandcamp fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 030: PayPal */ -}} +{{- with .Site.Params.Social.Paypal -}} + {{- $options := dict "href" (printf "https://paypal.me/%s" .) "title" "PayPal" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-paypal fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 031: 500px */ -}} +{{- with .Site.Params.Social.Fivehundredpx -}} + {{- $options := dict "href" (printf "https://500px.com/%s" .) "title" "500px" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-500px fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 032: Mix */ -}} +{{- with .Site.Params.Social.Mix -}} + {{- $options := dict "href" (printf "https://mix.com/%s" .) "title" "Mix" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-mix fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 033: Goodreads */ -}} +{{- with .Site.Params.Social.Goodreads -}} + {{- $options := dict "href" (printf "https://www.goodreads.com/user/show/%s" .) "title" "Goodreads" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-goodreads fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 034: Last.fm */ -}} +{{- with .Site.Params.Social.Lastfm -}} + {{- $options := dict "href" (printf "https://www.last.fm/user/%s" .) "title" "Last.fm" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-lastfm fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 035: Foursquare */ -}} +{{- with .Site.Params.Social.Foursquare -}} + {{- $options := dict "href" (printf "https://foursquare.com/%s" .) "title" "Foursquare" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-foursquare fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 036: Hacker News */ -}} +{{- with .Site.Params.Social.Hackernews -}} + {{- $options := dict "href" (printf "https://news.ycombinator.com/user?id=%s" .) "title" "Hacker News" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-hacker-news fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 037: Kickstarter */ -}} +{{- with .Site.Params.Social.Kickstarter -}} + {{- $options := dict "href" (printf "https://kickstarter.com/profile/%s" .) "title" "Kickstarter" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-kickstarter fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 038: Patreon */ -}} +{{- with .Site.Params.Social.Patreon -}} + {{- $options := dict "href" (printf "https://patreon.com/%s" .) "title" "Patreon" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-patreon fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 039: Steam */ -}} +{{- with .Site.Params.Social.Steam -}} + {{- $options := dict "href" (printf "https://steamcommunity.com/id/%s" .) "title" "Steam" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-steam fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 040: Twitch */ -}} +{{- with .Site.Params.Social.Twitch -}} + {{- $options := dict "href" (printf "https://www.twitch.tv/%s" .) "title" "Twitch" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-twitch fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 041: Strava */ -}} +{{- with .Site.Params.Social.Strava -}} + {{- $options := dict "href" (printf "https://www.strava.com/athletes/%s" .) "title" "Strava" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-strava fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 042: Skype */ -}} +{{- with .Site.Params.Social.Skype -}} + {{- $options := dict "href" (printf "skype:%s" .) "title" "Skype" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-skype fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 043: WhatsApp */ -}} +{{- with .Site.Params.Social.Whatsapp -}} + {{- $options := dict "href" (printf "https://wa.me/%s" .) "title" "WhatsApp" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-whatsapp fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 044: 知乎 */ -}} +{{- with .Site.Params.Social.Zhihu -}} + {{- $options := dict "href" (printf "https://www.zhihu.com/people/%s" .) "title" "知乎" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "loveit it-zhihu-line" "type" "other" "scratch" $scratch) | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 045: Angellist */ -}} +{{- with .Site.Params.Social.Angellist -}} + {{- $options := dict "href" (printf "https://angel.co/%s" .) "title" "Angellist" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-angellist fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 046: SlideShare */ -}} +{{- with .Site.Params.Social.Slideshare -}} + {{- $options := dict "href" (printf "https://slideshare.com/%s" .) "title" "SlideShare" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-slideshare fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 047: JSFiddle */ -}} +{{- with .Site.Params.Social.Jsfiddle -}} + {{- $options := dict "href" (printf "https://jsfiddle.com/%s" .) "title" "JSFiddle" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-jsfiddle fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 048: DeviantArt */ -}} +{{- with .Site.Params.Social.Deviantart -}} + {{- $options := dict "href" (printf "https://%s.deviantart.com/" .) "title" "DeviantArt" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-deviantart fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 049: Behance */ -}} +{{- with .Site.Params.Social.Behance -}} + {{- $options := dict "href" (printf "https://behance.net/%s" .) "title" "Behance" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-behance fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 050: Dribbble */ -}} +{{- with .Site.Params.Social.Dribble -}} + {{- $options := dict "href" (printf "https://dribbble.com/%s" .) "title" "Dribbble" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-dribbble fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 051: WordPress */ -}} +{{- with .Site.Params.Social.Wordpress -}} + {{- $options := dict "href" (printf "https://%s.wordpress.com/" .) "title" "WordPress" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-wordpress fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 052: Vine */ -}} +{{- with .Site.Params.Social.Vine -}} + {{- $options := dict "href" (printf "https://vine.co/%s" .) "title" "Vine" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-vine fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 053: Google Scholar */ -}} +{{- with .Site.Params.Social.Googlescholar -}} + {{- $options := dict "href" (printf "https://scholar.google.com/citations?%s" .) "title" "Google Scholar" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-google fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 054: ResearchGate */ -}} +{{- with .Site.Params.Social.Researchgate -}} + {{- $options := dict "href" (printf "https://www.researchgate.net/profile/%s" .) "title" "ResearchGate" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-researchgate fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 055: Mastodon */ -}} +{{- with .Site.Params.Social.Mastodon -}} + {{- $MastodonPrefix := $.Site.Params.Social.MastodonPrefix | default "https://mastodon.social" -}} + {{- $options := dict "href" (printf "%s/%s" $MastodonPrefix .) "title" "Mastodon" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-mastodon fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 054: Dev.To */ -}} +{{- with .Site.Params.Social.Devto -}} + {{- $options := dict "href" (printf "https://dev.to/%s" .) "title" "Dev.To" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fab fa-dev fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 055: Gitea */ -}} +{{- with .Site.Params.Social.Gitea -}} + {{- $options := dict "href" . "title" "Gitea" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fa fa-gitea fa-fw" "type" "fo" "scratch" $scratch) | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 056: XMPP */ -}} +{{- with .Site.Params.Social.XMPP -}} + {{- $options := dict "href" (printf "xmpp:%s" .) "title" "XMPP" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fa fa-xmpp fa-fw" "type" "fo" "scratch" $scratch) | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 057: Matrix */ -}} +{{- with .Site.Params.Social.Matrix -}} + {{- $options := dict "href" (printf "https://matrix.to/#/%s" .) "title" "Matrix" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "fa fa-matrix-org fa-fw" "type" "fo" "scratch" $scratch) | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 058: bilibili */ -}} +{{- with .Site.Params.Social.Bilibili -}} + {{- $options := dict "href" (printf "https://space.bilibili.com/%s" .) "title" "bilibili" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "loveit it-bilibili-fill" "type" "other" "scratch" $scratch) | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* 059: Email */ -}} +{{- with .Site.Params.Social.Email -}} + {{- $options := dict "href" (printf "mailto:%s" .) "title" "Email" "rel" "me" -}} + {{- $options = dict "icon" (dict "class" "far fa-envelope fa-fw") | merge $options -}} + {{- partial "plugin/link.html" $options -}} +{{- end -}} + +{{- /* Custom */ -}} +{{- with .Site.Params.Social.Custom -}} + {{- . | safeHTML -}} +{{- end -}} diff --git a/layouts/partials/post/share.html b/layouts/partials/post/share.html deleted file mode 100644 index d03eb8266..000000000 --- a/layouts/partials/post/share.html +++ /dev/null @@ -1,71 +0,0 @@ -{{- if .Params.share.enable | default .Site.Params.share.enable | eq true -}} - {{- /* Share on Twitter */ -}} - {{- if .Params.Share.Twitter | default .Site.Params.Share.Twitter | eq true -}} - - - - {{- end -}} - - {{- /* Share on Facebook */ -}} - {{- if .Params.Share.Facebook | default .Site.Params.Share.Facebook | eq true -}} - - - - {{- end -}} - - {{- /* Share on Reddit */ -}} - {{- if .Params.Share.Reddit | default .Site.Params.Share.Reddit | eq true -}} - - - - {{- end -}} - - {{- /* Share on Linkedin */ -}} - {{- if .Params.Share.Linkedin | default .Site.Params.Share.Linkedin | eq true -}} - - - - {{- end -}} - - {{- /* Share on Pinterest */ -}} - {{- if .Params.Share.Pinterest | default .Site.Params.Share.Pinterest | eq true -}} - - - - {{- end -}} - - {{- /* Share on Hacker News */ -}} - {{- if .Params.Share.Hackernews | default .Site.Params.Share.Hackernews | eq true -}} - - - - {{- end -}} - - {{- /* Share on Mix */ -}} - {{- if .Params.Share.Mix | default .Site.Params.Share.Mix | eq true -}} - - - - {{- end -}} - - {{- /* Share on Tumblr */ -}} - {{- if .Params.Share.Tumblr | default .Site.Params.Share.Tumblr | eq true -}} - - - - {{- end -}} - - {{- /* Share on VKontakte */ -}} - {{- if .Params.Share.VKontakte | default .Site.Params.Share.VKontakte | eq true -}} - - - - {{- end -}} - - {{- /* Share on Weibo */ -}} - {{- if .Params.Share.Weibo | default .Site.Params.Share.Weibo | eq true -}} - - - - {{- end -}} -{{- end -}} \ No newline at end of file diff --git a/layouts/partials/scripts.html b/layouts/partials/scripts.html deleted file mode 100644 index 9b7ca1972..000000000 --- a/layouts/partials/scripts.html +++ /dev/null @@ -1,224 +0,0 @@ -{{- /* Google analytics async */ -}} -{{- if eq (getenv "HUGO_ENV") "production" | and .Site.GoogleAnalytics -}} - {{- template "_internal/google_analytics_async.html" . -}} -{{- end -}} - -{{- /* jQuery https://github.com/jquery/jquery */ -}} -{{- $jquery := "" -}} -{{- if eq (getenv "HUGO_ENV") "production" | and .Site.Params.cdn.jquery_js -}} - {{- $jquery = .Site.Params.cdn.jquery_js -}} -{{- else -}} - {{- $res := resources.Get "js/lib/jquery/jquery.slim.min.js" -}} - {{- $jquery = printf "" $res.RelPermalink -}} -{{- end -}} -{{- $jquery | safeHTML -}} - -{{- /* lazysizes https://github.com/aFarkas/lazysizes */ -}} -{{- $lazysizes := "" -}} -{{- if eq (getenv "HUGO_ENV") "production" | and .Site.Params.cdn.lazysizes_js -}} - {{- $lazysizes = .Site.Params.cdn.lazysizes_js -}} -{{- else -}} - {{- $res := resources.Get "js/lib/lazysizes/lazysizes.min.js" -}} - {{- $lazysizes = printf "" $res.RelPermalink -}} -{{- end -}} -{{- $lazysizes | safeHTML -}} - -{{- /* Smooth Scroll https://github.com/cferdinandi/smooth-scroll */ -}} -{{- $smooth_scroll := "" -}} -{{- if eq (getenv "HUGO_ENV") "production" | and .Site.Params.cdn.smooth_scroll_js -}} - {{- $smooth_scroll = .Site.Params.cdn.smooth_scroll_js -}} -{{- else -}} - {{- $res := resources.Get "js/lib/smooth-scroll/smooth-scroll.polyfills.min.js" -}} - {{- $smooth_scroll = printf "" $res.RelPermalink -}} -{{- end -}} -{{- $smooth_scroll = delimit (slice $smooth_scroll "") "" -}} -{{- $smooth_scroll | safeHTML -}} - -{{- /* TypeIt https://github.com/alexmacarthur/typeit */ -}} -{{- with .Scratch.Get "typeitMap" -}} - {{- $typeit := "" -}} - {{- if eq (getenv "HUGO_ENV") "production" | and .Site.Params.cdn.typeit_js -}} - {{- $typeit = .Site.Params.cdn.typeit_js -}} - {{- else -}} - {{- $res := resources.Get "js/lib/typeit/typeit.min.js" -}} - {{- $typeit = printf "" $res.RelPermalink -}} - {{- end -}} - {{- $typeit | safeHTML -}} - {{- $typeitArr := slice -}} - {{- range $key, $val := . -}} - {{- $typeitArr = $typeitArr | append (slice $val) -}} - {{- end -}} - -{{- end -}} - -{{- /* KaTeX https://github.com/KaTeX/KaTeX */ -}} -{{- if .Site.Params.math.enable | and (ne .Params.math false) -}} - {{- $math := .Site.Params.math -}} - {{- $katex_css := "" -}} - {{- if eq (getenv "HUGO_ENV") "production" | and .Site.Params.cdn.katex_css -}} - {{- $katex_css = .Site.Params.cdn.katex_css -}} - {{- else -}} - {{- $res := resources.Get "css/lib/katex/katex.min.css" -}} - {{- $katex_css = printf "" $res.RelPermalink -}} - {{- end -}} - {{- $katex_js := "" -}} - {{- if eq (getenv "HUGO_ENV") "production" | and .Site.Params.cdn.katex_js -}} - {{- $katex_js = .Site.Params.cdn.katex_js -}} - {{- else -}} - {{- $res := resources.Get "js/lib/katex/katex.min.js" -}} - {{- $katex_js = printf "" $res.RelPermalink -}} - {{- end -}} - {{- $katex_auto_render_js := "" -}} - {{- if eq (getenv "HUGO_ENV") "production" | and .Site.Params.cdn.katex_auto_render_js -}} - {{- $katex_auto_render_js = .Site.Params.cdn.katex_auto_render_js -}} - {{- else -}} - {{- $res := resources.Get "js/lib/katex/auto-render.min.js" -}} - {{- $katex_auto_render_js = printf "" $res.RelPermalink -}} - {{- end -}} - {{- $katex := delimit (slice $katex_css $katex_js $katex_auto_render_js) "" -}} - {{- if $math.copy_tex -}} - {{- $katex_copy_tex_css := "" -}} - {{- if eq (getenv "HUGO_ENV") "production" | and .Site.Params.cdn.katex_copy_tex_css -}} - {{- $katex_copy_tex_css = .Site.Params.cdn.katex_copy_tex_css -}} - {{- else -}} - {{- $res := resources.Get "css/lib/katex/copy-tex.min.css" -}} - {{- $katex_copy_tex_css = printf "" $res.RelPermalink -}} - {{- end -}} - {{- $katex_copy_tex_js := "" -}} - {{- if eq (getenv "HUGO_ENV") "production" | and .Site.Params.cdn.katex_copy_tex_js -}} - {{- $katex_copy_tex_js = .Site.Params.cdn.katex_copy_tex_js -}} - {{- else -}} - {{- $res := resources.Get "js/lib/katex/copy-tex.min.js" -}} - {{- $katex_copy_tex_js = printf "" $res.RelPermalink -}} - {{- end -}} - {{- $katex = delimit (slice $katex $katex_copy_tex_css $katex_copy_tex_js) "" -}} - {{- end -}} - {{- if $math.mhchem -}} - {{- $katex_mhchem_js := "" -}} - {{- if eq (getenv "HUGO_ENV") "production" | and .Site.Params.cdn.katex_mhchem_js -}} - {{- $katex_mhchem_js = .Site.Params.cdn.katex_mhchem_js -}} - {{- else -}} - {{- $res := resources.Get "js/lib/katex/mhchem.min.js" -}} - {{- $katex_mhchem_js = printf "" $res.RelPermalink -}} - {{- end -}} - {{- $katex = delimit (slice $katex $katex_mhchem_js) "" -}} - {{- end -}} - {{- $katex | safeHTML -}} - -{{- end -}} - -{{- /* mermaid https://github.com/knsv/mermaid */ -}} -{{- with .Scratch.Get "mermaidMap" -}} - {{- $mermaid := "" -}} - {{- if eq (getenv "HUGO_ENV") "production" | and .Site.Params.cdn.mermaid_js -}} - {{- $mermaid = .Site.Params.cdn.mermaid_js -}} - {{- else -}} - {{- $res := resources.Get "js/lib/mermaid/mermaid.min.js" -}} - {{- $mermaid = printf "" $res.RelPermalink -}} - {{- end -}} - {{- $mermaidInit := "" -}} - {{- $mermaid = delimit (slice $mermaid $mermaidInit) "" -}} - {{- $mermaid | safeHTML -}} - -{{- end -}} - -{{- /* Music */ -}} -{{- if .Scratch.Get "music" -}} - {{- /* APlayer https://github.com/MoePlayer/APlayer */ -}} - {{- $aplayer_css := "" -}} - {{- if eq (getenv "HUGO_ENV") "production" | and .Site.Params.cdn.aplayer_css -}} - {{- $aplayer_css = .Site.Params.cdn.aplayer_css -}} - {{- else -}} - {{- $res := resources.Get "css/lib/aplayer/APlayer.min.css" -}} - {{- $aplayer_css = printf "" $res.RelPermalink -}} - {{- end -}} - {{- $aplayer_js := "" -}} - {{- if eq (getenv "HUGO_ENV") "production" | and .Site.Params.cdn.aplayer_js -}} - {{- $aplayer_js = .Site.Params.cdn.aplayer_js -}} - {{- else -}} - {{- $res := resources.Get "js/lib/aplayer/APlayer.min.js" -}} - {{- $aplayer_js = printf "" $res.RelPermalink -}} - {{- end -}} - {{- $aplayer := delimit (slice $aplayer_css $aplayer_js) "" -}} - {{- $aplayer | safeHTML -}} - - {{- /* MetingJS https://github.com/metowolf/MetingJS */ -}} - {{- $meting := "" -}} - {{- if eq (getenv "HUGO_ENV") "production" | and .Site.Params.cdn.meting_js -}} - {{- $meting = .Site.Params.cdn.meting_js -}} - {{- else -}} - {{- $res := resources.Get "js/lib/meting/Meting.min.js" -}} - {{- $meting = printf "" $res.RelPermalink -}} - {{- end -}} - {{- $meting | safeHTML -}} -{{- end -}} - -{{- /* jQuery.countdown https://github.com/hilios/jQuery.countdown */ -}} -{{- with .Scratch.Get "countdownMap" -}} - {{- $countdown := "" -}} - {{- if eq (getenv "HUGO_ENV") "production" | and .Site.Params.cdn.jquery_countdown_js -}} - {{- $countdown = .Site.Params.cdn.jquery_countdown_js -}} - {{- else -}} - {{- $res := resources.Get "js/lib/jquery-countdown/jquery.countdown.min.js" -}} - {{- $countdown = printf "" $res.RelPermalink -}} - {{- end -}} - {{- $countdown | safeHTML -}} - -{{- end -}} - -{{- /* dev feature */ -}} -{{- if .Params.dev -}} - {{- /* ECharts https://github.com/apache/incubator-echarts */ -}} - {{- with .Scratch.Get "echartsMap" -}} - {{- $echarts_js := "" -}} - {{- if eq (getenv "HUGO_ENV") "production" | and .Site.Params.cdn.echarts_js -}} - {{- $echarts_js = .Site.Params.cdn.echarts_js -}} - {{- else -}} - {{- $res := resources.Get "js/lib/echarts/echarts.min.js" -}} - {{- $echarts_js = printf "" $res.RelPermalink -}} - {{- end -}} - {{- $echarts_macarons_js := "" -}} - {{- if eq (getenv "HUGO_ENV") "production" | and .Site.Params.cdn.echarts_macarons_js -}} - {{- $echarts_macarons_js = .Site.Params.cdn.echarts_macarons_js -}} - {{- else -}} - {{- $res := resources.Get "js/lib/echarts/macarons.js" | minify -}} - {{- $echarts_macarons_js = printf "" $res.RelPermalink -}} - {{- end -}} - {{- $echarts := delimit (slice $echarts_js $echarts_macarons_js) "" -}} - {{- $echarts | safeHTML -}} - - {{- end -}} -{{- end -}} - -{{- /* Blog script */ -}} -{{- $res := resources.Get "/js/blog.js" | minify -}} - \ No newline at end of file diff --git a/layouts/partials/single/content.html b/layouts/partials/single/content.html new file mode 100644 index 000000000..efab5669c --- /dev/null +++ b/layouts/partials/single/content.html @@ -0,0 +1,11 @@ +{{- $content := . -}} + +{{- $content = partial "function/fontawesome.html" $content -}} + +{{- $content = partial "function/ruby.html" $content -}} + +{{- $content = partial "function/checkbox.html" $content -}} + +{{- $content = partial "function/escape.html" $content -}} + +{{- $content | safeHTML -}} diff --git a/layouts/partials/post/footer.html b/layouts/partials/single/footer.html similarity index 64% rename from layouts/partials/post/footer.html rename to layouts/partials/single/footer.html index 56a3a4742..af0efeb17 100644 --- a/layouts/partials/post/footer.html +++ b/layouts/partials/single/footer.html @@ -5,6 +5,12 @@
  • @@ -41,14 +45,16 @@
    {{- with .Params.tags -}} {{- range . -}} - -  {{ . }}  - + + + {{ . }} + +   {{- end -}} {{- end -}}
    - {{ T "back" }} | {{ T "home" }} + {{ T "back" }} | {{ T "home" }}
    @@ -60,4 +66,4 @@ {{- end -}}
    - \ No newline at end of file + diff --git a/layouts/posts/single.html b/layouts/posts/single.html index 3c61c7be7..25ffb073c 100644 --- a/layouts/posts/single.html +++ b/layouts/posts/single.html @@ -1,70 +1,75 @@ {{- define "title" }}{{ .Title }} | {{ .Site.Title }}{{ end -}} {{- define "content" -}} -
    + {{- $scratch := .Scratch.Get "scratch" -}} +
    {{- /* Title */ -}} -

    {{ .Title }}

    +

    {{ .Title }}

    {{- /* Meta */ -}}
    -{{- end -}} \ No newline at end of file +{{- end -}} diff --git a/layouts/rss.xml b/layouts/rss.xml index 7c5274ddd..b2aa76424 100644 --- a/layouts/rss.xml +++ b/layouts/rss.xml @@ -30,7 +30,7 @@ {{- end -}} {{- if not .Date.IsZero -}} - {{- .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML -}} + {{- .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" -}} {{- end -}} @@ -43,7 +43,7 @@ {{- .Permalink -}} - {{- .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML -}} + {{- .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" -}} {{- with .Site.Author.email -}} @@ -59,4 +59,4 @@ {{- end -}} - \ No newline at end of file + diff --git a/layouts/shortcodes/admonition.html b/layouts/shortcodes/admonition.html index 539bd2ce4..08123e962 100644 --- a/layouts/shortcodes/admonition.html +++ b/layouts/shortcodes/admonition.html @@ -1,4 +1,5 @@ -{{- $_hugo_config := `{ "version": 1 }` -}} +{{- $inner := .Inner | .Page.RenderString -}} + {{- $iconMap := dict "note" "fas fa-pencil-alt" -}} {{- $iconMap = dict "abstract" "fas fa-list-ul" | merge $iconMap -}} {{- $iconMap = dict "info" "fas fa-info-circle" | merge $iconMap -}} @@ -15,40 +16,40 @@ {{- if .IsNamedParams -}} {{- $type := .Get "type" | default "note" -}} - {{- if eq (.Get "details") "true" -}} + {{- if .Get "details" -}}
    - {{- with .Get "title" -}} - - {{ . }} - - {{- end -}} - {{- .Inner -}} + + {{ .Get "title" | default (T $type) }} + +
    + {{- $inner -}} +
    {{- else -}}
    - {{- with .Get "title" -}} -

    {{ . }}

    - {{- end -}} - {{- .Inner -}} +

    {{ .Get "title" | default (T $type) }}

    +
    + {{- $inner -}} +
    {{- end -}} {{- else -}} - {{- $type := .Get 0 -}} - {{- if eq (.Get 2) "true" -}} + {{- $type := .Get 0 | default "note" -}} + {{- if .Get 2 -}}
    - {{- with .Get 1 -}} - - {{ . }} - - {{- end -}} - {{- .Inner -}} + + {{ .Get 1 | default (T $type) }} + +
    + {{- $inner -}} +
    {{- else -}}
    - {{- with .Get 1 -}} -

    {{ . }}

    - {{- end -}} - {{- .Inner -}} +

    {{ .Get 1 | default (T $type) }}

    +
    + {{- $inner -}} +
    {{- end -}} -{{- end -}} \ No newline at end of file +{{- end -}} diff --git a/layouts/shortcodes/align.html b/layouts/shortcodes/align.html deleted file mode 100644 index 51f261709..000000000 --- a/layouts/shortcodes/align.html +++ /dev/null @@ -1,5 +0,0 @@ -{{ $_hugo_config := `{ "version": 1 }` -}} - -
    - {{- .Inner -}} -
    \ No newline at end of file diff --git a/layouts/shortcodes/bilibili.html b/layouts/shortcodes/bilibili.html index 5f3112a6b..0bb2b17c6 100644 --- a/layouts/shortcodes/bilibili.html +++ b/layouts/shortcodes/bilibili.html @@ -1,7 +1,7 @@
    {{- if .IsNamedParams -}} - + {{- else -}} - + {{- end -}} -
    \ No newline at end of file + diff --git a/layouts/shortcodes/countdown.html b/layouts/shortcodes/countdown.html deleted file mode 100644 index 4c95a1b48..000000000 --- a/layouts/shortcodes/countdown.html +++ /dev/null @@ -1,12 +0,0 @@ -{{- if .Get "date" -}} - {{- $date := .Get "date" -}} - {{- $id := delimit (split (md5 $date) "" | shuffle) "" | printf "countdown-%s" -}} - {{- $defaultPattern := printf "%%D %s %%H %s %%M %s %%S %s" (T "day") (T "hour") (T "minute") (T "second") -}} - {{- $new := dict $id (dict "date" $date "pattern" (.Get "pattern" | default $defaultPattern)) -}} - {{- with .Page.Scratch.Get "countdownMap" -}} - {{- .Page.Scratch.Set "countdownMap" (merge . $new) -}} - {{- else -}} - {{- .Page.Scratch.Set "countdownMap" $new -}} - {{- end -}} -
    -{{- end -}} \ No newline at end of file diff --git a/layouts/shortcodes/dev/echarts.html b/layouts/shortcodes/dev/echarts.html deleted file mode 100644 index c207ea746..000000000 --- a/layouts/shortcodes/dev/echarts.html +++ /dev/null @@ -1,10 +0,0 @@ - -{{- $id := delimit (split (md5 .Inner) "" | shuffle) "" | printf "echarts-%s" -}} -{{- $echartsMap := .Page.Scratch.Get "echartsMap" -}} -{{- if $echartsMap -}} - {{ $echartsMap = .Inner | printf "{%s}" | dict $id | merge $echartsMap -}} -{{- else -}} - {{ $echartsMap = .Inner | printf "{%s}" | dict $id -}} -{{- end -}} -{{- .Page.Scratch.Set "echartsMap" $echartsMap -}} -
    \ No newline at end of file diff --git a/layouts/shortcodes/echarts.html b/layouts/shortcodes/echarts.html new file mode 100644 index 000000000..9d609f046 --- /dev/null +++ b/layouts/shortcodes/echarts.html @@ -0,0 +1,6 @@ +{{- $scratch := .Page.Scratch.Get "scratch" -}} + +{{- $content := .Inner | transform.Unmarshal | jsonify -}} +{{- $id := partial "function/id.html" (dict "content" $content "scratch" $scratch) -}} +
    +{{- slice $id | $scratch.Add "echartsArr" -}} diff --git a/layouts/shortcodes/float.html b/layouts/shortcodes/float.html deleted file mode 100644 index f2a8140c8..000000000 --- a/layouts/shortcodes/float.html +++ /dev/null @@ -1,5 +0,0 @@ -{{ $_hugo_config := `{ "version": 1 }` -}} - -
    - {{- .Inner -}} -
    \ No newline at end of file diff --git a/layouts/shortcodes/image.html b/layouts/shortcodes/image.html new file mode 100644 index 000000000..4887b9da2 --- /dev/null +++ b/layouts/shortcodes/image.html @@ -0,0 +1,18 @@ + + {{- $options := .Get "src" | dict "src" -}} + {{- $options = .Get "src_s" | dict "src_s" | merge $options -}} + {{- $options = .Get "src_l" | dict "src_l" | merge $options -}} + {{- $title := .Get "title" | $.Page.RenderString -}} + {{- $options = $title | dict "title" | merge $options -}} + {{- $description := .Get "description" | $.Page.RenderString -}} + {{- $options = $description | dict "description" | merge $options -}} + {{- $lightgallery := ne .Page.Site.Params.page.lightgallery false | and (ne .Page.Params.lightgallery false) -}} + {{- $options = $lightgallery | dict "lightgallery" | merge $options -}} + {{- $options = .Page.Scratch.Get "scratch" | dict "scratch" | merge $options -}} + {{- partial "plugin/image.html" $options -}} + {{- with $title | default $description -}} +
    + {{- . | safeHTML -}} +
    + {{- end -}} + diff --git a/layouts/shortcodes/mermaid.html b/layouts/shortcodes/mermaid.html index c52451e36..dd11ce899 100644 --- a/layouts/shortcodes/mermaid.html +++ b/layouts/shortcodes/mermaid.html @@ -1,10 +1,5 @@ - -{{- $id := delimit (split (md5 .Inner) "" | shuffle) "" | printf "mermaid-%s" -}} -{{- $mermaidMap := .Page.Scratch.Get "mermaidMap" -}} -{{- if $mermaidMap -}} - {{- $mermaidMap = trim .Inner "\n" | dict $id | merge $mermaidMap -}} -{{- else -}} - {{- $mermaidMap = trim .Inner "\n" | dict $id -}} -{{- end -}} -{{- .Page.Scratch.Set "mermaidMap" $mermaidMap -}} -
    \ No newline at end of file +{{- $scratch := .Page.Scratch.Get "scratch" -}} + +{{- $id := partial "function/id.html" (dict "content" (trim .Inner "\n") "scratch" $scratch) -}} +
    +{{- slice $id | $scratch.Add "mermaidArr" -}} diff --git a/layouts/shortcodes/music.html b/layouts/shortcodes/music.html index b70d66420..ca8a51f48 100644 --- a/layouts/shortcodes/music.html +++ b/layouts/shortcodes/music.html @@ -1,12 +1,42 @@ -{{- .Page.Scratch.Set "music" "true" -}} +{{- $scratch := .Page.Scratch.Get "scratch" -}} + {{- if .IsNamedParams -}} - + {{- if .Get "url" -}} + + {{- else if .Get "auto" -}} + + {{- else -}} + + {{- end -}} +{{- else if strings.HasSuffix (.Get 0) "http" -}} + {{- else -}} - -{{- end -}} \ No newline at end of file + +{{- end -}} +{{- $scratch.Set "music" true -}} diff --git a/layouts/shortcodes/style.html b/layouts/shortcodes/style.html new file mode 100644 index 000000000..f5848c587 --- /dev/null +++ b/layouts/shortcodes/style.html @@ -0,0 +1,3 @@ +{{- $content := .Inner | .Page.RenderString -}} +{{- $tag := .Get 1 | default "div" -}} +{{- printf `<%s style="%s">%s` $tag ($.Get 0) $content $tag | safeHTML -}} diff --git a/layouts/shortcodes/typeit.html b/layouts/shortcodes/typeit.html index 5733686ab..fdbecf15d 100644 --- a/layouts/shortcodes/typeit.html +++ b/layouts/shortcodes/typeit.html @@ -1,56 +1,33 @@ - -{{- $content := replaceRE `(?s)^\n*(.*?)\n*$` "$1\n" .Inner -}} - -{{- $id := delimit (split (md5 $content) "" | shuffle) "" | printf "typeit-%s" -}} +{{- $scratch := .Page.Scratch.Get "scratch" -}} -
    - - {{- if .Get "raw" -}} - -
    - {{- else if .Get "code" -}} - - {{- $content = highlight $content (.Get "code") "linenos=false" -}} - - {{- $content = replaceRE `
    ]*>(?s)(.*)
    ` "$1" $content -}} - - {{- $content = replaceRE `(]*>)([^<>]*)\[([^<>]+)\]\(([^<>]+)\)([^<>]*)()` "$1$2$6$3$1$5$6" $content -}} - - {{- $content = replaceRE ` ` " " $content | replaceRE `(<\w+) ` "$1 " | replaceRE `\n` "
    " -}} - - {{- $content = replaceRE `
    ` "
    " $content -}} - -
    - {{- else -}} - {{- $tag := .Get "tag" | default "p" -}} - {{- $content = $content | markdownify | chomp -}} - - {{- printf "<%s id=%s>" $tag $id $tag | safeHTML -}} - {{- end -}} +{{- $content := .Inner -}} +{{- $classList := .Get "class" | slice -}} +{{- $tag := .Get "tag" | default "div" -}} - {{- $typeitMap := .Page.Scratch.Get "typeitMap" -}} - {{- $group := slice $id -}} - {{- with .Get "group" -}} - {{- if $typeitMap -}} - {{- if index $typeitMap . -}} - {{- $group = index $typeitMap . | append $id -}} - {{- end -}} - {{- $typeitMap = dict . $group | merge $typeitMap -}} - {{- else -}} - {{- $typeitMap = dict . $group -}} - {{- end -}} - {{- else -}} - {{- if $typeitMap -}} - {{- $typeitMap = dict $id $group | merge $typeitMap -}} - {{- else -}} - {{- $typeitMap = dict $id $group -}} - {{- end -}} - {{- end -}} - {{- .Page.Scratch.Set "typeitMap" $typeitMap -}} +{{- with .Get "code" -}} + {{- /* highlight code content without line number */ -}} + {{- $content = highlight $content . "linenos=false" -}} + {{- /* delete outer label */ -}} + {{- $content = replaceRE `
    ]*>(?s)(.*)
    ` "$1" $content -}} + {{- /* parsing markdown links */ -}} + {{- $content = replaceRE `(]*>)([^<>]*)\[([^<>]+)\]\(([^<>]+)\)([^<>]*)()` "$1$2$6$3$1$5$6" $content -}} + {{- /* replace " " to " " and replace "\n" to "
    " */ -}} + {{- $content = replaceRE ` ` " " $content | replaceRE `(<\w+) ` "$1 " | replaceRE `\n` "
    " -}} + {{- /* fix "
    " location error which is a bug of Typeit HTML parser */ -}} + {{- $content = replaceRE `
    ` "
    " $content -}} + {{- $classList = $classList | append "highlight" -}} +{{- else -}} + {{- $content = $content | .Page.RenderString -}} +{{- end -}} + +{{- /* trim the newline */ -}} +{{- $content = trim $content "\n" -}} +{{- $id := partial "function/id.html" (dict "content" $content "scratch" $scratch) -}} +{{- $key := .Get "group" | default $id -}} +{{- $group := index ($scratch.Get "typeitMap" | default dict) $key -}} +{{- $group = $group | default slice | append $id -}} +{{- $scratch.SetInMap "typeitMap" $key $group -}} + +
    + {{- printf `<%s id="%s" class="%s">` $tag $id (delimit $classList " ") $tag | safeHTML -}}
    diff --git a/layouts/sitemap.xml b/layouts/sitemap.xml index 62bb93246..d13d92802 100644 --- a/layouts/sitemap.xml +++ b/layouts/sitemap.xml @@ -9,7 +9,7 @@ {{- if not .Lastmod.IsZero -}} - {{- safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) -}} + {{- .Lastmod.Format "2006-01-02T15:04:05-07:00" -}} {{- end -}} {{- with .Sitemap.ChangeFreq -}} @@ -38,4 +38,4 @@ {{- end -}} {{- end -}} - \ No newline at end of file + diff --git a/layouts/taxonomy/list.html b/layouts/taxonomy/list.html index f77bdafe8..34bd9d651 100644 --- a/layouts/taxonomy/list.html +++ b/layouts/taxonomy/list.html @@ -5,7 +5,7 @@ {{- define "content" -}}
    {{- /* Title */ -}} -

    +

    {{- $taxonomy := .Data.Singular -}} {{- if eq $taxonomy "category" -}}  {{ humanize .Title }} @@ -32,4 +32,4 @@

    {{ .Key }}

    {{- end -}} {{- partial "paginator.html" . -}}
    -{{- end -}} \ No newline at end of file +{{- end -}} diff --git a/layouts/taxonomy/terms.html b/layouts/taxonomy/terms.html index 7204b9f0a..8faaf2b16 100644 --- a/layouts/taxonomy/terms.html +++ b/layouts/taxonomy/terms.html @@ -9,7 +9,7 @@
    {{- /* Title */ -}} -

    +

    {{- T "all" | humanize}}{{ T $taxonomies | default $taxonomies | humanize -}}

    @@ -36,7 +36,7 @@

    {{- end -}} {{- if gt (len $pages) 5 -}} - {{ T "more" }} >> + {{ T "more" }} >> {{- end -}}

    @@ -54,4 +54,4 @@

    {{- end -}} -{{- end -}} \ No newline at end of file +{{- end -}} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..d15459b7f --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3905 @@ +{ + "name": "loveit-src", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/cli": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.8.4.tgz", + "integrity": "sha512-XXLgAm6LBbaNxaGhMAznXXaxtCWfuv6PIDJ9Alsy9JYTOh+j2jJz+L/162kkfU1j/pTSxK1xGmlwI4pdIMkoag==", + "dev": true, + "requires": { + "chokidar": "^2.1.8", + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.0.0", + "lodash": "^4.17.13", + "make-dir": "^2.1.0", + "slash": "^2.0.0", + "source-map": "^0.5.0" + } + }, + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/compat-data": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.5.tgz", + "integrity": "sha512-jWYUqQX/ObOhG1UiEkbH5SANsE/8oKXiQWjj7p7xgj9Zmnt//aUvyz4dBkK0HNsS8/cbyC5NmmH87VekW+mXFg==", + "dev": true, + "requires": { + "browserslist": "^4.8.5", + "invariant": "^2.2.4", + "semver": "^5.5.0" + } + }, + "@babel/core": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.4.tgz", + "integrity": "sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helpers": "^7.8.4", + "@babel/parser": "^7.8.4", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.4", + "@babel/types": "^7.8.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", + "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-call-delegate": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz", + "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.4.tgz", + "integrity": "sha512-3k3BsKMvPp5bjxgMdrFyq0UaEO48HciVrOVF0+lon8pp95cyJ2ujAh0TrBHNMnJGT2rr0iKOJPFFbSqjDyf/Pg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.8.4", + "browserslist": "^4.8.5", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz", + "integrity": "sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q==", + "dev": true, + "requires": { + "@babel/helper-regex": "^7.8.3", + "regexpu-core": "^4.6.0" + } + }, + "@babel/helper-define-map": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", + "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/types": "^7.8.3", + "lodash": "^4.17.13" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", + "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", + "dev": true, + "requires": { + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", + "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", + "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-module-imports": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-module-transforms": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz", + "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3", + "lodash": "^4.17.13" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", + "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", + "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", + "dev": true, + "requires": { + "lodash": "^4.17.13" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", + "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-wrap-function": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-replace-supers": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz", + "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-simple-access": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", + "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", + "dev": true, + "requires": { + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-wrap-function": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", + "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helpers": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", + "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", + "dev": true, + "requires": { + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.4", + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", + "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", + "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", + "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz", + "integrity": "sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz", + "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", + "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", + "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", + "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", + "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", + "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "lodash": "^4.17.13" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz", + "integrity": "sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-define-map": "^7.8.3", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", + "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz", + "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", + "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", + "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", + "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.4.tgz", + "integrity": "sha512-iAXNlOWvcYUYoV8YIxwS7TxGRJcxyl8eQCfT+A5j8sKUzRFvJdcyjp97jL2IghWSRDaL2PU2O2tX8Cu9dTBq5A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", + "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", + "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", + "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz", + "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz", + "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz", + "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz", + "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", + "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", + "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", + "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz", + "integrity": "sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA==", + "dev": true, + "requires": { + "@babel/helper-call-delegate": "^7.8.3", + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", + "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz", + "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.0" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", + "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", + "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", + "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", + "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-regex": "^7.8.3" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", + "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", + "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", + "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/preset-env": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.4.tgz", + "integrity": "sha512-HihCgpr45AnSOHRbS5cWNTINs0TwaR8BS8xIIH+QwiW8cKL0llV91njQMpeMReEPVs+1Ao0x3RLEBLtt1hOq4w==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.8.4", + "@babel/helper-compilation-targets": "^7.8.4", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-proposal-async-generator-functions": "^7.8.3", + "@babel/plugin-proposal-dynamic-import": "^7.8.3", + "@babel/plugin-proposal-json-strings": "^7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.8.3", + "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.8.3", + "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.8.3", + "@babel/plugin-transform-async-to-generator": "^7.8.3", + "@babel/plugin-transform-block-scoped-functions": "^7.8.3", + "@babel/plugin-transform-block-scoping": "^7.8.3", + "@babel/plugin-transform-classes": "^7.8.3", + "@babel/plugin-transform-computed-properties": "^7.8.3", + "@babel/plugin-transform-destructuring": "^7.8.3", + "@babel/plugin-transform-dotall-regex": "^7.8.3", + "@babel/plugin-transform-duplicate-keys": "^7.8.3", + "@babel/plugin-transform-exponentiation-operator": "^7.8.3", + "@babel/plugin-transform-for-of": "^7.8.4", + "@babel/plugin-transform-function-name": "^7.8.3", + "@babel/plugin-transform-literals": "^7.8.3", + "@babel/plugin-transform-member-expression-literals": "^7.8.3", + "@babel/plugin-transform-modules-amd": "^7.8.3", + "@babel/plugin-transform-modules-commonjs": "^7.8.3", + "@babel/plugin-transform-modules-systemjs": "^7.8.3", + "@babel/plugin-transform-modules-umd": "^7.8.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", + "@babel/plugin-transform-new-target": "^7.8.3", + "@babel/plugin-transform-object-super": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.8.4", + "@babel/plugin-transform-property-literals": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.3", + "@babel/plugin-transform-reserved-words": "^7.8.3", + "@babel/plugin-transform-shorthand-properties": "^7.8.3", + "@babel/plugin-transform-spread": "^7.8.3", + "@babel/plugin-transform-sticky-regex": "^7.8.3", + "@babel/plugin-transform-template-literals": "^7.8.3", + "@babel/plugin-transform-typeof-symbol": "^7.8.4", + "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/types": "^7.8.3", + "browserslist": "^4.8.5", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "@babel/runtime": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.4.tgz", + "integrity": "sha512-neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.2" + } + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "optional": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "optional": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true, + "optional": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "optional": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true, + "optional": true + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true, + "optional": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "optional": true + }, + "babel-helper-evaluate-path": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.5.0.tgz", + "integrity": "sha512-mUh0UhS607bGh5wUMAQfOpt2JX2ThXMtppHRdRU1kL7ZLRWIXxoV2UIV1r2cAeeNeU1M5SB5/RSUgUxrK8yOkA==", + "dev": true + }, + "babel-helper-flip-expressions": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.4.3.tgz", + "integrity": "sha1-NpZzahKKwYvCUlS19AoizrPB0/0=", + "dev": true + }, + "babel-helper-is-nodes-equiv": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz", + "integrity": "sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ=", + "dev": true + }, + "babel-helper-is-void-0": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-helper-is-void-0/-/babel-helper-is-void-0-0.4.3.tgz", + "integrity": "sha1-fZwBtFYee5Xb2g9u7kj1tg5nMT4=", + "dev": true + }, + "babel-helper-mark-eval-scopes": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.4.3.tgz", + "integrity": "sha1-0kSjvvmESHJgP/tG4izorN9VFWI=", + "dev": true + }, + "babel-helper-remove-or-void": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.4.3.tgz", + "integrity": "sha1-pPA7QAd6D/6I5F0HAQ3uJB/1rmA=", + "dev": true + }, + "babel-helper-to-multiple-sequence-expressions": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.5.0.tgz", + "integrity": "sha512-m2CvfDW4+1qfDdsrtf4dwOslQC3yhbgyBFptncp4wvtdrDHqueW7slsYv4gArie056phvQFhT2nRcGS4bnm6mA==", + "dev": true + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", + "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-minify-builtins": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.5.0.tgz", + "integrity": "sha512-wpqbN7Ov5hsNwGdzuzvFcjgRlzbIeVv1gMIlICbPj0xkexnfoIDe7q+AZHMkQmAE/F9R5jkrB6TLfTegImlXag==", + "dev": true + }, + "babel-plugin-minify-constant-folding": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.5.0.tgz", + "integrity": "sha512-Vj97CTn/lE9hR1D+jKUeHfNy+m1baNiJ1wJvoGyOBUx7F7kJqDZxr9nCHjO/Ad+irbR3HzR6jABpSSA29QsrXQ==", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "^0.5.0" + } + }, + "babel-plugin-minify-dead-code-elimination": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.5.1.tgz", + "integrity": "sha512-x8OJOZIrRmQBcSqxBcLbMIK8uPmTvNWPXH2bh5MDCW1latEqYiRMuUkPImKcfpo59pTUB2FT7HfcgtG8ZlR5Qg==", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "^0.5.0", + "babel-helper-mark-eval-scopes": "^0.4.3", + "babel-helper-remove-or-void": "^0.4.3", + "lodash": "^4.17.11" + } + }, + "babel-plugin-minify-flip-comparisons": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.4.3.tgz", + "integrity": "sha1-AMqHDLjxO0XAOLPB68DyJyk8llo=", + "dev": true, + "requires": { + "babel-helper-is-void-0": "^0.4.3" + } + }, + "babel-plugin-minify-guarded-expressions": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.4.4.tgz", + "integrity": "sha512-RMv0tM72YuPPfLT9QLr3ix9nwUIq+sHT6z8Iu3sLbqldzC1Dls8DPCywzUIzkTx9Zh1hWX4q/m9BPoPed9GOfA==", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "^0.5.0", + "babel-helper-flip-expressions": "^0.4.3" + } + }, + "babel-plugin-minify-infinity": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.4.3.tgz", + "integrity": "sha1-37h2obCKBldjhO8/kuZTumB7Oco=", + "dev": true + }, + "babel-plugin-minify-mangle-names": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.5.0.tgz", + "integrity": "sha512-3jdNv6hCAw6fsX1p2wBGPfWuK69sfOjfd3zjUXkbq8McbohWy23tpXfy5RnToYWggvqzuMOwlId1PhyHOfgnGw==", + "dev": true, + "requires": { + "babel-helper-mark-eval-scopes": "^0.4.3" + } + }, + "babel-plugin-minify-numeric-literals": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.4.3.tgz", + "integrity": "sha1-jk/VYcefeAEob/YOjF/Z3u6TwLw=", + "dev": true + }, + "babel-plugin-minify-replace": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.5.0.tgz", + "integrity": "sha512-aXZiaqWDNUbyNNNpWs/8NyST+oU7QTpK7J9zFEFSA0eOmtUNMU3fczlTTTlnCxHmq/jYNFEmkkSG3DDBtW3Y4Q==", + "dev": true + }, + "babel-plugin-minify-simplify": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.5.1.tgz", + "integrity": "sha512-OSYDSnoCxP2cYDMk9gxNAed6uJDiDz65zgL6h8d3tm8qXIagWGMLWhqysT6DY3Vs7Fgq7YUDcjOomhVUb+xX6A==", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "^0.5.0", + "babel-helper-flip-expressions": "^0.4.3", + "babel-helper-is-nodes-equiv": "^0.0.1", + "babel-helper-to-multiple-sequence-expressions": "^0.5.0" + } + }, + "babel-plugin-minify-type-constructors": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.4.3.tgz", + "integrity": "sha1-G8bxW4f3qxCF1CszC3F2V6IVZQA=", + "dev": true, + "requires": { + "babel-helper-is-void-0": "^0.4.3" + } + }, + "babel-plugin-transform-inline-consecutive-adds": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.4.3.tgz", + "integrity": "sha1-Mj1Ho+pjqDp6w8gRro5pQfrysNE=", + "dev": true + }, + "babel-plugin-transform-member-expression-literals": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.9.4.tgz", + "integrity": "sha1-NwOcmgwzE6OUlfqsL/OmtbnQOL8=", + "dev": true + }, + "babel-plugin-transform-merge-sibling-variables": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.4.tgz", + "integrity": "sha1-hbQi/DN3tEnJ0c3kQIcgNTJAHa4=", + "dev": true + }, + "babel-plugin-transform-minify-booleans": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.4.tgz", + "integrity": "sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg=", + "dev": true + }, + "babel-plugin-transform-property-literals": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.4.tgz", + "integrity": "sha1-mMHSHiVXNlc/k+zlRFn2ziSYXTk=", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "babel-plugin-transform-regexp-constructors": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.4.3.tgz", + "integrity": "sha1-WLd3W2OvzzMyj66aX4j71PsLSWU=", + "dev": true + }, + "babel-plugin-transform-remove-console": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz", + "integrity": "sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A=", + "dev": true + }, + "babel-plugin-transform-remove-debugger": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.4.tgz", + "integrity": "sha1-QrcnYxyXl44estGZp67IShgznvI=", + "dev": true + }, + "babel-plugin-transform-remove-undefined": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.5.0.tgz", + "integrity": "sha512-+M7fJYFaEE/M9CXa0/IRkDbiV3wRELzA1kKQFCJ4ifhrzLKn/9VCCgj9OFmYWwBd8IB48YdgPkHYtbYq+4vtHQ==", + "dev": true, + "requires": { + "babel-helper-evaluate-path": "^0.5.0" + } + }, + "babel-plugin-transform-simplify-comparison-operators": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz", + "integrity": "sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk=", + "dev": true + }, + "babel-plugin-transform-undefined-to-void": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz", + "integrity": "sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA=", + "dev": true + }, + "babel-preset-minify": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-minify/-/babel-preset-minify-0.5.1.tgz", + "integrity": "sha512-1IajDumYOAPYImkHbrKeiN5AKKP9iOmRoO2IPbIuVp0j2iuCcj0n7P260z38siKMZZ+85d3mJZdtW8IgOv+Tzg==", + "dev": true, + "requires": { + "babel-plugin-minify-builtins": "^0.5.0", + "babel-plugin-minify-constant-folding": "^0.5.0", + "babel-plugin-minify-dead-code-elimination": "^0.5.1", + "babel-plugin-minify-flip-comparisons": "^0.4.3", + "babel-plugin-minify-guarded-expressions": "^0.4.4", + "babel-plugin-minify-infinity": "^0.4.3", + "babel-plugin-minify-mangle-names": "^0.5.0", + "babel-plugin-minify-numeric-literals": "^0.4.3", + "babel-plugin-minify-replace": "^0.5.0", + "babel-plugin-minify-simplify": "^0.5.1", + "babel-plugin-minify-type-constructors": "^0.4.3", + "babel-plugin-transform-inline-consecutive-adds": "^0.4.3", + "babel-plugin-transform-member-expression-literals": "^6.9.4", + "babel-plugin-transform-merge-sibling-variables": "^6.9.4", + "babel-plugin-transform-minify-booleans": "^6.9.4", + "babel-plugin-transform-property-literals": "^6.9.4", + "babel-plugin-transform-regexp-constructors": "^0.4.3", + "babel-plugin-transform-remove-console": "^6.9.4", + "babel-plugin-transform-remove-debugger": "^6.9.4", + "babel-plugin-transform-remove-undefined": "^0.5.0", + "babel-plugin-transform-simplify-comparison-operators": "^6.9.4", + "babel-plugin-transform-undefined-to-void": "^6.9.4", + "lodash": "^4.17.11" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "optional": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "browserslist": { + "version": "4.8.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.7.tgz", + "integrity": "sha512-gFOnZNYBHrEyUML0xr5NJ6edFaaKbTFX9S9kQHlYfCP0Rit/boRIz4G+Avq6/4haEKJXdGGUnoolx+5MWW2BoA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001027", + "electron-to-chromium": "^1.3.349", + "node-releases": "^1.1.49" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "optional": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001027", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001027.tgz", + "integrity": "sha512-7xvKeErvXZFtUItTHgNtLgS9RJpVnwBlWX8jSo/BO8VsF6deszemZSkJJJA1KOKrXuzZH4WALpAJdq5EyfgMLg==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "optional": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "optional": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "optional": true + }, + "core-js-compat": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz", + "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==", + "dev": true, + "requires": { + "browserslist": "^4.8.3", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true, + "optional": true + }, + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true, + "optional": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "electron-to-chromium": { + "version": "1.3.352", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.352.tgz", + "integrity": "sha512-dL/RyoueFG3UMhG0q3weAQvr+Tbqx/axAnOXYIIOsoYnV+2i+nRvX2S6msEo2+JARbBP8MFkkSYQ8AoY9Bh4Og==", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "optional": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "optional": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "optional": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "optional": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "find-versions": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz", + "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==", + "dev": true, + "requires": { + "semver-regex": "^2.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "optional": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "optional": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", + "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1", + "node-pre-gyp": "*" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "3.2.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.9.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.14.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4.4.2" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.7.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.1", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.13", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.1.1", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true, + "optional": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "optional": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "husky": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-4.2.3.tgz", + "integrity": "sha512-VxTsSTRwYveKXN4SaH1/FefRJYCtx+wx04sSVcOpD7N2zjoHxa+cEJ07Qg5NmV3HAK+IRKOyNVpi2YBIVccIfQ==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "ci-info": "^2.0.0", + "compare-versions": "^3.5.1", + "cosmiconfig": "^6.0.0", + "find-versions": "^3.2.0", + "opencollective-postinstall": "^2.0.2", + "pkg-dir": "^4.2.0", + "please-upgrade-node": "^3.2.0", + "slash": "^3.0.0", + "which-pm-runs": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true, + "optional": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "optional": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "optional": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "optional": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "optional": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "optional": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true, + "optional": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "optional": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json5": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "optional": true + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "requires": { + "leven": "^3.1.0" + } + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "optional": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "optional": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "optional": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "optional": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, + "optional": true + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "node-releases": { + "version": "1.1.49", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.49.tgz", + "integrity": "sha512-xH8t0LS0disN0mtRCh+eByxFPie+msJUBL/lJDBuap53QGiYPa9joh83K4pCZgWJ+2L4b9h88vCVdXQ60NO2bg==", + "dev": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "optional": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "optional": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "optional": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "opencollective-postinstall": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz", + "integrity": "sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==", + "dev": true + }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "optional": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true, + "optional": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dev": true, + "requires": { + "semver-compare": "^1.0.0" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true, + "optional": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "optional": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", + "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", + "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", + "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "dev": true, + "requires": { + "private": "^0.1.6" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpu-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", + "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.1.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + } + }, + "regjsgen": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", + "dev": true + }, + "regjsparser": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.3.tgz", + "integrity": "sha512-8uZvYbnfAtEm9Ab8NTb3hdLwL4g/LQzEYP7Xs27T96abJCCE2d6r3cPZPQEsLKy0vRSGVNG+/zVGtLr86HQduA==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true, + "optional": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true, + "optional": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "optional": true + }, + "resolve": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true, + "optional": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "optional": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "optional": true, + "requires": { + "ret": "~0.1.10" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true + }, + "semver-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", + "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "optional": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "optional": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "optional": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true, + "optional": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "optional": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "optional": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", + "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", + "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "optional": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "optional": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "optional": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "optional": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true, + "optional": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "optional": true + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true, + "optional": true + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true, + "optional": true + }, + "which-pm-runs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", + "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "yaml": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.7.2.tgz", + "integrity": "sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.6.3" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 000000000..8ba283148 --- /dev/null +++ b/package.json @@ -0,0 +1,39 @@ +{ + "name": "loveit-src", + "version": "0.1.0", + "description": "LoveIt theme source file", + "main": "index.js", + "dependencies": {}, + "devDependencies": { + "@babel/cli": "^7.8.4", + "@babel/core": "^7.8.4", + "@babel/preset-env": "^7.8.4", + "babel-preset-minify": "^0.5.1", + "husky": "^4.2.3" + }, + "scripts": { + "build": "npx babel src --out-file assets/js/theme.min.js --source-maps", + "start": "hugo server --source=exampleSite --themesDir=../.. --disableFastRender", + "copy": "hugo -v --source=exampleSite --themesDir=../.. -D --gc --minify && rm -rf resources && cp -rf exampleSite/resources resources" + }, + "husky": { + "hooks": { + "pre-commit": "npm run build && npm run copy && git add .", + "pre-push": "npm run build && npm run copy && git add ." + } + }, + "repository": { + "type": "git", + "url": "git+https://github.com/dillonzq/LoveIt.git" + }, + "keywords": [ + "hugo", + "theme" + ], + "author": "Dillon", + "license": "MIT", + "bugs": { + "url": "https://github.com/dillonzq/LoveIt/issues" + }, + "homepage": "https://github.com/dillonzq/LoveIt#readme" +} diff --git a/resources/_gen/assets/scss/css/custom-style.scss_a707772b4d98a91469dad78dcf3d2e9a.content b/resources/_gen/assets/scss/css/custom-style.scss_a707772b4d98a91469dad78dcf3d2e9a.content deleted file mode 100644 index 133bd6309..000000000 --- a/resources/_gen/assets/scss/css/custom-style.scss_a707772b4d98a91469dad78dcf3d2e9a.content +++ /dev/null @@ -1,3 +0,0 @@ -@import url(https://fonts.googleapis.com/css?family=Lato:100,300,400,700,900);@import url("https://fonts.googleapis.com/css?family=Fira+Mono:400,700&display=swap&subset=latin-ext");/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace, monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html{font-family:Lato,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft Yahei,Segoe UI,Helvetica,Arial,sans-serif,Segoe UI Emoji}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background-color:#87878d}::-webkit-scrollbar-thumb:hover{background-color:#a9a9b3}::selection{background:rgba(38,139,211,0.2)}.dark-theme ::selection{background:rgba(38,139,211,0.3)}body{font-size:16px;font-weight:400;line-height:1.5rem;background-color:#fff;color:#161209}body::before{content:"";background-repeat:no-repeat;background-position:center;opacity:0.05;position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;-webkit-filter:grayscale(100%);-moz-filter:grayscale(100%);-ms-filter:grayscale(100%);-o-filter:grayscale(100%);filter:grayscale(100%);filter:gray}body.dark-theme{color:#a9a9b3;background-color:#292a2d}a{color:#161209;text-decoration:none;transition:color 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease}a:hover{color:#2d96bd}.dark-theme a{color:#a9a9b3}.dark-theme a:hover{color:#fff}.wrapper{display:flex;flex-direction:column;min-height:97.5vh;width:100%}.wrapper main{flex:1 0 auto}.wrapper main .container{padding-left:1rem;padding-right:1rem}.footer{height:2rem;width:100%;text-align:center;line-height:1.5rem;padding-top:2rem}.home-intro{transform:translateY(25vh);text-align:center}.home-intro .home-avatar{padding:0.6rem}.home-intro .home-avatar img{width:8rem;height:auto;display:inline-block;-webkit-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);margin:0 auto;-webkit-transition:all ease 0.4s;-moz-transition:all ease 0.4s;-o-transition:all ease 0.4s;transition:all ease 0.4s;cursor:pointer}.home-intro .home-avatar img:hover{position:relative;-webkit-transform:translateY(-0.75rem);-moz-transform:translateY(-0.75rem);-ms-transform:translateY(-0.75rem);-o-transform:translateY(-0.75rem);transform:translateY(-0.75rem);cursor:pointer}.home-intro .home-description{font-size:1rem;font-weight:normal;margin:0;padding:.4rem}.home-intro .home-social-links{padding-top:.6rem}.home-intro .home-social-links i{font-size:1.45rem}.home-intro .home-social-links img{width:1.5rem;height:1.5rem}.notfound{font-size:1.8rem;line-height:3rem;transform:translateY(30vh);text-align:center}.page{position:relative;width:100%;max-width:980px;margin:0 auto;padding-top:6rem}.page .post-title{margin:0 !important;font-size:1.8rem;line-height:3rem}.page .post-meta{font-size:.88rem;color:#a9a9b3}.page .post-meta span{display:inline-block}.dark-theme .page .post-meta{color:#5d5d5f}.page .post-meta a{color:#2d96bd}.dark-theme .page .post-meta a{color:#eee}.page .post-meta a:hover{color:#ef3982}.dark-theme .page .post-meta a:hover{color:#2d96bd}.page .post-meta .author{font-size:1.05rem}.page .post-featured-image{padding-top:.6rem}.page .post-featured-image img{display:block;max-width:100%;height:auto;margin:0 auto;overflow:hidden}.page .post-toc{display:block;position:absolute;width:360px;margin-left:1000px;padding:0 .8rem;border-left:1px solid #dcdcdc;word-wrap:break-word;box-sizing:border-box;top:12rem}.dark-theme .page .post-toc{border-left:1px solid #4a4b50}.page .post-toc .post-toc-title{font-weight:400;margin:.8rem 0;text-transform:uppercase}.page .post-toc .post-toc-content.always-active ul{display:block}.page .post-toc .post-toc-content>nav>ul{margin:.625rem 0}.page .post-toc .post-toc-content ul{text-indent:-0.85rem;padding-left:.625rem;list-style:none}.page .post-toc .post-toc-content ul a::before{content:"|";font-weight:bolder;margin-right:.5rem;color:#2d96bd}.dark-theme .page .post-toc .post-toc-content ul a::before{color:#eee}.page .post-toc .post-toc-content ul ul{padding-left:1.25rem;display:none}.page .post-toc .post-toc-content ul .has-active>ul{display:block}.page .post-toc .post-toc-content .toc-link.active{font-weight:bold;color:#ef3982}.dark-theme .page .post-toc .post-toc-content .toc-link.active{color:#2d96bd}.page .post-toc .post-toc-content .toc-link.active::before{font-weight:bolder;color:#ef3982}.dark-theme .page .post-toc .post-toc-content .toc-link.active::before{color:#2d96bd}.page .post-toc-mobile{display:none;padding-top:.8rem}.page .post-toc-mobile details summary .post-toc-title{display:block;display:flex;justify-content:space-between;font-size:1.2em;font-weight:bold;line-height:2em;padding:0 .625rem;background:#f5f5f5}.page .post-toc-mobile details summary .post-toc-title i.details{line-height:2em}.dark-theme .page .post-toc-mobile details summary .post-toc-title{background:#272C34}.page .post-toc-mobile details summary::-webkit-details-marker{display:none}.page .post-toc-mobile details[open] i.details{transform:rotate(180deg)}.page .post-toc-mobile .post-toc-content{border:2px solid #f5f5f5}.page .post-toc-mobile .post-toc-content>nav>ul{margin:.625rem 0}.page .post-toc-mobile .post-toc-content ul{padding-left:.625rem;list-style:none}.page .post-toc-mobile .post-toc-content ul ul{padding-left:1.25rem}.dark-theme .page .post-toc-mobile .post-toc-content{border:2px solid #272C34}.page .post-content .post-dummy-target:target{display:inline-block;position:relative;top:-5.6rem;visibility:hidden}.page .post-content h1,.page .post-content h2,.page .post-content h3,.page .post-content h4,.page .post-content h5,.page .post-content h6{font-weight:bold}.dark-theme .page .post-content h1,.dark-theme .page .post-content h2,.dark-theme .page .post-content h3,.dark-theme .page .post-content h4,.dark-theme .page .post-content h5,.dark-theme .page .post-content h6{font-weight:bolder}.page .post-content h2,.page .post-content h3,.page .post-content h4,.page .post-content h5,.page .post-content h6{padding-top:.8rem;padding-bottom:.3rem}.page .post-content h2::before{content:"#";margin-right:.3125rem;color:#2d96bd}.dark-theme .page .post-content h2::before{color:#eee}.page .post-content h3::before,.page .post-content h4::before,.page .post-content h5::before,.page .post-content h6::before{content:"|";margin-right:.3125rem;color:#2d96bd}.dark-theme .page .post-content h3::before,.dark-theme .page .post-content h4::before,.dark-theme .page .post-content h5::before,.dark-theme .page .post-content h6::before{color:#eee}.page .post-content p{font-size:1rem;margin:.5rem 0 .5rem 0}.page .post-content a{color:#2d96bd}.dark-theme .page .post-content a{color:#eee}.page .post-content a:hover{color:#ef3982}.dark-theme .page .post-content a:hover:hover{color:#2d96bd;font-weight:bold}.page .post-content ul{padding-left:2rem;list-style-type:disc}.page .post-content ruby{background:#f5f5f5}.page .post-content ruby rt{color:#a9a9b3}.dark-theme .page .post-content ruby{background:#272C34}.dark-theme .page .post-content ruby rt{color:#5d5d5f}.page .post-content .table-wrapper{overflow-x:auto}.page .post-content .table-wrapper::-webkit-scrollbar{background-color:#fff}.dark-theme .page .post-content .table-wrapper::-webkit-scrollbar{background-color:#272c34}.page .post-content .table-wrapper>table{width:100%;max-width:100%;margin:.625rem 0;border-spacing:0;background:#fff}.dark-theme .page .post-content .table-wrapper>table{background:#272c34}.page .post-content .table-wrapper>table thead{background:#ededed}.dark-theme .page .post-content .table-wrapper>table thead{background-color:#20252b}.page .post-content .table-wrapper>table th,.page .post-content .table-wrapper>table td{padding:.3rem 1rem;border:1px double #dcdcdc}.dark-theme .page .post-content .table-wrapper>table th,.dark-theme .page .post-content .table-wrapper>table td{border:1px double #4a4b50}.page .post-content figure{text-align:center}.page .post-content .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:.625rem;margin:0 auto;border-bottom:1px solid #d9d9d9;font-size:.875rem;color:#969696;line-height:1.7}.page .post-content img{display:block;max-width:100%;height:auto;margin:0 auto;overflow:hidden}.page .post-content blockquote{font-size:1rem;display:block;border-width:1px 0;border-style:solid;border-color:#dcdcdc;padding:1.5em 1.2em 0.5em 1.2em;margin:0 0 2em 0;position:relative}.page .post-content blockquote::before{content:'\201C';position:absolute;top:0em;left:50%;transform:translate(-50%, -50%);width:3rem;height:2rem;font:6em/1.08em 'PT Sans', sans-serif;color:#2d96bd;text-align:center}.dark-theme .page .post-content blockquote::before{color:#eee}.page .post-content blockquote::after{content:"#blockquote" attr(cite);display:block;text-align:right;font-size:0.875em;color:#2d96bd}.dark-theme .page .post-content blockquote::after{color:#eee}.dark-theme .page .post-content blockquote{border-color:#4a4b50}.page .post-content .footnotes{color:#a9a9b3}.dark-theme .page .post-content .footnotes{color:#5d5d5f}.page .post-content code,.page .post-content pre{font-size:13px;font-family:Fira Mono,Source Code Pro,Menlo,Consolas,Monaco,monospace;color:#E74C3C;padding:5px;background:#f5f5f5}.dark-theme .page .post-content code,.dark-theme .page .post-content pre{color:#E5BF78;background:#272C34}.page .post-content .highlight>pre.chroma{padding:38px 7px 8px;overflow-x:auto}.page .post-content .highlight>.chroma{margin:1em 0;position:relative;font-family:Fira Mono,Source Code Pro,Menlo,Consolas,Monaco,monospace}.page .post-content .highlight>.chroma code{padding:0}.page .post-content .highlight>.chroma pre{margin:0;padding:38px 7px 8px;overflow-x:visible}.page .post-content .highlight>.chroma::after{position:absolute;top:0;right:0;left:0;padding:2px 7px;font-size:13px;font-weight:bold;color:#b1b0b0;background:#ededed;content:'Code'}.dark-theme .page .post-content .highlight>.chroma::after{color:#b1b0b0;background:#20252b}.page .post-content .highlight>.chroma.language-bash::after{content:"Bash"}.page .post-content .highlight>.chroma.language-c::after{content:"C"}.page .post-content .highlight>.chroma.language-cs::after{content:"C#"}.page .post-content .highlight>.chroma.language-cpp::after{content:"C++"}.page .post-content .highlight>.chroma.language-css::after{content:"CSS"}.page .post-content .highlight>.chroma.language-coffeescript::after{content:"CoffeeScript"}.page .post-content .highlight>.chroma.language-html::after{content:"HTML"}.page .post-content .highlight>.chroma.language-xml::after{content:"XML"}.page .post-content .highlight>.chroma.language-http::after{content:"HTTP"}.page .post-content .highlight>.chroma.language-json::after{content:"JSON"}.page .post-content .highlight>.chroma.language-java::after{content:"Java"}.page .post-content .highlight>.chroma.language-js::after{content:"JavaScript"}.page .post-content .highlight>.chroma.language-javascript::after{content:"JavaScript"}.page .post-content .highlight>.chroma.language-makefile::after{content:"Makefile"}.page .post-content .highlight>.chroma.language-markdown::after{content:"Markdown"}.page .post-content .highlight>.chroma.language-objectivec::after{content:"Objective-C"}.page .post-content .highlight>.chroma.language-php::after{content:"PHP"}.page .post-content .highlight>.chroma.language-perl::after{content:"Perl"}.page .post-content .highlight>.chroma.language-python::after{content:"Python"}.page .post-content .highlight>.chroma.language-ruby::after{content:"Ruby"}.page .post-content .highlight>.chroma.language-sql::after{content:"SQL"}.page .post-content .highlight>.chroma.language-shell::after{content:"Shell"}.page .post-content .highlight>.chroma.language-erlang::after{content:"Erlang"}.page .post-content .highlight>.chroma.language-go::after{content:"Go"}.page .post-content .highlight>.chroma.language-go-html-template::after{content:"Go HTML Template"}.page .post-content .highlight>.chroma.language-groovy::after{content:"Groovy"}.page .post-content .highlight>.chroma.language-haskell::after{content:"Haskell"}.page .post-content .highlight>.chroma.language-kotlin::after{content:"Kotlin"}.page .post-content .highlight>.chroma.language-clojure::after{content:"Clojure"}.page .post-content .highlight>.chroma.language-less::after{content:"Less"}.page .post-content .highlight>.chroma.language-lisp::after{content:"Lisp"}.page .post-content .highlight>.chroma.language-lua::after{content:"Lua"}.page .post-content .highlight>.chroma.language-matlab::after{content:"Matlab"}.page .post-content .highlight>.chroma.language-rust::after{content:"Rust"}.page .post-content .highlight>.chroma.language-scss::after{content:"Scss"}.page .post-content .highlight>.chroma.language-scala::after{content:"Scala"}.page .post-content .highlight>.chroma.language-swift::after{content:"Swift"}.page .post-content .highlight>.chroma.language-typescript::after{content:"TypeScript"}.page .post-content .highlight>.chroma.language-yml::after{content:"YAML"}.page .post-content .highlight>.chroma.language-yaml::after{content:"YAML"}.page .post-content .highlight>.chroma.language-toml::after{content:"TOML"}.page .post-content .highlight>.chroma.language-diff::after{content:"Diff"}.page .post-content .highlight>.chroma .lntd{line-height:20px}.page .post-content .highlight>.chroma .lntd:first-child{width:10px}.page .post-content .highlight>.chroma .lntd:last-child{vertical-align:top}.page .post-content .highlight>.chroma table,.page .post-content .highlight>.chroma tr,.page .post-content .highlight>.chroma td{margin:0;padding:0;width:100%;border-collapse:collapse;border-color:#f5f5f5}.dark-theme .page .post-content .highlight>.chroma table,.dark-theme .page .post-content .highlight>.chroma tr,.dark-theme .page .post-content .highlight>.chroma td{border-color:#272C34}.page .post-content .highlight>.chroma .lnt{color:#b1b0b0}.page .post-content .highlight>.chroma .hl{display:block;background-color:#e8e8e8}.dark-theme .page .post-content .highlight>.chroma .hl{background-color:#1c2025}.page .post-content .highlight .p{color:#A9A9B3}.page .post-content .highlight .k{color:#859900}.page .post-content .highlight .kc{color:#859900;font-weight:bold}.page .post-content .highlight .kd{color:#859900}.page .post-content .highlight .kn{color:#dc322f;font-weight:bold}.page .post-content .highlight .kp{color:#859900}.page .post-content .highlight .kr{color:#859900}.page .post-content .highlight .kt{color:#859900;font-weight:bold}.page .post-content .highlight .n{color:#268bd2}.page .post-content .highlight .na{color:#268bd2}.page .post-content .highlight .nb{color:#cb4b16}.page .post-content .highlight .bp{color:#268bd2}.page .post-content .highlight .nc{color:#cb4b16}.page .post-content .highlight .no{color:#268bd2}.page .post-content .highlight .nd{color:#268bd2}.page .post-content .highlight .ni{color:#268bd2}.page .post-content .highlight .ne{color:#268bd2}.page .post-content .highlight .nf{color:#268bd2}.page .post-content .highlight .fm{color:#268bd2}.page .post-content .highlight .nl{color:#268bd2}.page .post-content .highlight .nn{color:#268bd2}.page .post-content .highlight .nx{color:#268bd2}.page .post-content .highlight .py{color:#268bd2}.page .post-content .highlight .nt{color:#268bd2;font-weight:bold}.page .post-content .highlight .nv{color:#268bd2}.page .post-content .highlight .vc{color:#268bd2}.page .post-content .highlight .vg{color:#268bd2}.page .post-content .highlight .vi{color:#268bd2}.page .post-content .highlight .vm{color:#268bd2}.page .post-content .highlight .l{color:#2aa198}.page .post-content .highlight .ld{color:#2aa198}.page .post-content .highlight .s{color:#2aa198}.page .post-content .highlight .sa{color:#2aa198}.page .post-content .highlight .sb{color:#2aa198}.page .post-content .highlight .sc{color:#2aa198}.page .post-content .highlight .dl{color:#2aa198}.page .post-content .highlight .sd{color:#2aa198}.page .post-content .highlight .s2{color:#2aa198}.page .post-content .highlight .se{color:#2aa198}.page .post-content .highlight .sh{color:#2aa198}.page .post-content .highlight .si{color:#2aa198}.page .post-content .highlight .sx{color:#2aa198}.page .post-content .highlight .sr{color:#2aa198}.page .post-content .highlight .s1{color:#2aa198}.page .post-content .highlight .ss{color:#2aa198}.page .post-content .highlight .m{color:#2aa198;font-weight:bold}.page .post-content .highlight .mb{color:#2aa198;font-weight:bold}.page .post-content .highlight .mf{color:#2aa198;font-weight:bold}.page .post-content .highlight .mh{color:#2aa198;font-weight:bold}.page .post-content .highlight .mi{color:#2aa198;font-weight:bold}.page .post-content .highlight .il{color:#2aa198;font-weight:bold}.page .post-content .highlight .mo{color:#2aa198;font-weight:bold}.page .post-content .highlight .ow{color:#859900}.page .post-content .highlight .c{color:#93a1a1;font-style:italic}.page .post-content .highlight .ch{color:#93a1a1;font-style:italic}.page .post-content .highlight .cm{color:#93a1a1;font-style:italic}.page .post-content .highlight .c1{color:#93a1a1;font-style:italic}.page .post-content .highlight .cs{color:#93a1a1;font-style:italic}.page .post-content .highlight .cp{color:#93a1a1;font-style:italic}.page .post-content .highlight .cpf{color:#93a1a1;font-style:italic}.page .post-content .highlight .g{color:#d33682}.page .post-content .highlight .gd{color:#b58900}.page .post-content .highlight .ge{color:#d33682}.page .post-content .highlight .gr{color:#d33682}.page .post-content .highlight .gh{color:#d33682}.page .post-content .highlight .gi{color:#859900}.page .post-content .highlight .go{color:#d33682}.page .post-content .highlight .gp{color:#d33682}.page .post-content .highlight .gs{color:#d33682}.page .post-content .highlight .gu{color:#d33682}.page .post-content .highlight .gt{color:#d33682}.dark-theme .page .post-content .highlight{background:#272C34}.dark-theme .page .post-content .highlight .p{color:#A9A9B3}.dark-theme .page .post-content .highlight .k{color:#D371E3}.dark-theme .page .post-content .highlight .kc{color:#D371E3}.dark-theme .page .post-content .highlight .kd{color:#D371E3}.dark-theme .page .post-content .highlight .kn{color:#D371E3}.dark-theme .page .post-content .highlight .kp{color:#D371E3}.dark-theme .page .post-content .highlight .kr{color:#D371E3}.dark-theme .page .post-content .highlight .kt{color:#8be9fd}.dark-theme .page .post-content .highlight .na{color:#41B1F5}.dark-theme .page .post-content .highlight .nb{color:#8be9fd;font-style:italic}.dark-theme .page .post-content .highlight .nc{color:#E5BF78}.dark-theme .page .post-content .highlight .nf{color:#19B8C0}.dark-theme .page .post-content .highlight .nx{color:#F16473}.dark-theme .page .post-content .highlight .nl{color:#8be9fd;font-style:italic}.dark-theme .page .post-content .highlight .nt{color:#D371E3}.dark-theme .page .post-content .highlight .nv{color:#8be9fd;font-style:italic}.dark-theme .page .post-content .highlight .vc{color:#8be9fd;font-style:italic}.dark-theme .page .post-content .highlight .vg{color:#8be9fd;font-style:italic}.dark-theme .page .post-content .highlight .vi{color:#8be9fd;font-style:italic}.dark-theme .page .post-content .highlight .s{color:#8BC56F}.dark-theme .page .post-content .highlight .sa{color:#8BC56F}.dark-theme .page .post-content .highlight .sb{color:#8BC56F}.dark-theme .page .post-content .highlight .sc{color:#8BC56F}.dark-theme .page .post-content .highlight .dl{color:#8BC56F}.dark-theme .page .post-content .highlight .sd{color:#8BC56F}.dark-theme .page .post-content .highlight .s2{color:#8BC56F}.dark-theme .page .post-content .highlight .se{color:#8BC56F}.dark-theme .page .post-content .highlight .sh{color:#8BC56F}.dark-theme .page .post-content .highlight .si{color:#8BC56F}.dark-theme .page .post-content .highlight .sx{color:#8BC56F}.dark-theme .page .post-content .highlight .sr{color:#8BC56F}.dark-theme .page .post-content .highlight .s1{color:#8BC56F}.dark-theme .page .post-content .highlight .ss{color:#8BC56F}.dark-theme .page .post-content .highlight .m{color:#bd93f9}.dark-theme .page .post-content .highlight .mb{color:#bd93f9}.dark-theme .page .post-content .highlight .mf{color:#bd93f9}.dark-theme .page .post-content .highlight .mh{color:#bd93f9}.dark-theme .page .post-content .highlight .mi{color:#bd93f9}.dark-theme .page .post-content .highlight .il{color:#bd93f9}.dark-theme .page .post-content .highlight .mo{color:#bd93f9}.dark-theme .page .post-content .highlight .o{color:#D371E3}.dark-theme .page .post-content .highlight .ow{color:#D371E3}.dark-theme .page .post-content .highlight .c{color:#7E848F}.dark-theme .page .post-content .highlight .ch{color:#7E848F}.dark-theme .page .post-content .highlight .cm{color:#7E848F}.dark-theme .page .post-content .highlight .c1{color:#7E848F}.dark-theme .page .post-content .highlight .cs{color:#7E848F}.dark-theme .page .post-content .highlight .cp{color:#D371E3}.dark-theme .page .post-content .highlight .cpf{color:#D371E3}.dark-theme .page .post-content .highlight .gd{color:#8b080b}.dark-theme .page .post-content .highlight .ge{text-decoration:underline}.dark-theme .page .post-content .highlight .gh{font-weight:bold}.dark-theme .page .post-content .highlight .gi{font-weight:bold}.dark-theme .page .post-content .highlight .go{color:#44475a}.dark-theme .page .post-content .highlight .gu{font-weight:bold}.dark-theme .page .post-content .highlight .gl{text-decoration:underline}.page .post-content .admonition{position:relative;margin:.9765em 0;padding:0 .75rem;background-color:rgba(68,138,255,0.1);border-left:0.25rem solid #448aff;overflow:auto}.page .post-content .admonition .admonition-title{margin:0 -0.75rem;padding:.5rem .75rem .5rem 2.5rem;border-bottom:0.1rem solid rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.1);font-weight:700}.page .post-content .admonition i.icon{font-size:16px;color:#448aff;cursor:auto;position:absolute;left:.75rem;top:.75rem}.page .post-content .admonition.note{border-left-color:#448aff}.page .post-content .admonition.note i.icon{color:#448aff}.page .post-content .admonition.abstract{border-left-color:#00b0ff}.page .post-content .admonition.abstract i.icon{color:#00b0ff}.page .post-content .admonition.info{border-left-color:#00b8d4}.page .post-content .admonition.info i.icon{color:#00b8d4}.page .post-content .admonition.tip{border-left-color:#00bfa5}.page .post-content .admonition.tip i.icon{color:#00bfa5}.page .post-content .admonition.success{border-left-color:#00c853}.page .post-content .admonition.success i.icon{color:#00c853}.page .post-content .admonition.question{border-left-color:#64dd17}.page .post-content .admonition.question i.icon{color:#64dd17}.page .post-content .admonition.warning{border-left-color:#ff9100}.page .post-content .admonition.warning i.icon{color:#ff9100}.page .post-content .admonition.failure{border-left-color:#ff5252}.page .post-content .admonition.failure i.icon{color:#ff5252}.page .post-content .admonition.danger{border-left-color:#ff1744}.page .post-content .admonition.danger i.icon{color:#ff1744}.page .post-content .admonition.bug{border-left-color:#f50057}.page .post-content .admonition.bug i.icon{color:#f50057}.page .post-content .admonition.example{border-left-color:#651fff}.page .post-content .admonition.example i.icon{color:#651fff}.page .post-content .admonition.quote{border-left-color:#9e9e9e}.page .post-content .admonition.quote i.icon{color:#9e9e9e}.page .post-content .admonition.note{background-color:rgba(68,138,255,0.1)}.page .post-content .admonition.note .admonition-title{border-bottom-color:rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.1)}.page .post-content .admonition.abstract{background-color:rgba(0,176,255,0.1)}.page .post-content .admonition.abstract .admonition-title{border-bottom-color:rgba(0,176,255,0.1);background-color:rgba(0,176,255,0.1)}.page .post-content .admonition.info{background-color:rgba(0,184,212,0.1)}.page .post-content .admonition.info .admonition-title{border-bottom-color:rgba(0,184,212,0.1);background-color:rgba(0,184,212,0.1)}.page .post-content .admonition.tip{background-color:rgba(0,191,165,0.1)}.page .post-content .admonition.tip .admonition-title{border-bottom-color:rgba(0,191,165,0.1);background-color:rgba(0,191,165,0.1)}.page .post-content .admonition.success{background-color:rgba(0,200,83,0.1)}.page .post-content .admonition.success .admonition-title{border-bottom-color:rgba(0,200,83,0.1);background-color:rgba(0,200,83,0.1)}.page .post-content .admonition.question{background-color:rgba(100,221,23,0.1)}.page .post-content .admonition.question .admonition-title{border-bottom-color:rgba(100,221,23,0.1);background-color:rgba(100,221,23,0.1)}.page .post-content .admonition.warning{background-color:rgba(255,145,0,0.1)}.page .post-content .admonition.warning .admonition-title{border-bottom-color:rgba(255,145,0,0.1);background-color:rgba(255,145,0,0.1)}.page .post-content .admonition.failure{background-color:rgba(255,82,82,0.1)}.page .post-content .admonition.failure .admonition-title{border-bottom-color:rgba(255,82,82,0.1);background-color:rgba(255,82,82,0.1)}.page .post-content .admonition.danger{background-color:rgba(255,23,68,0.1)}.page .post-content .admonition.danger .admonition-title{border-bottom-color:rgba(255,23,68,0.1);background-color:rgba(255,23,68,0.1)}.page .post-content .admonition.bug{background-color:rgba(245,0,87,0.1)}.page .post-content .admonition.bug .admonition-title{border-bottom-color:rgba(245,0,87,0.1);background-color:rgba(245,0,87,0.1)}.page .post-content .admonition.example{background-color:rgba(101,31,255,0.1)}.page .post-content .admonition.example .admonition-title{border-bottom-color:rgba(101,31,255,0.1);background-color:rgba(101,31,255,0.1)}.page .post-content .admonition.quote{background-color:rgba(158,158,158,0.1)}.page .post-content .admonition.quote .admonition-title{border-bottom-color:rgba(158,158,158,0.1);background-color:rgba(158,158,158,0.1)}.page .post-content .admonition:last-child{margin-bottom:.75rem}.page .post-content details.admonition summary{display:block;outline:none;cursor:pointer}.page .post-content details.admonition summary::-webkit-details-marker{display:none}.page .post-content details.admonition summary i.details{position:absolute;top:.75rem;right:.75rem;color:#161209}.dark-theme .page .post-content details.admonition summary i.details{color:#a9a9b3}.page .post-content details.admonition[open] i.details{transform:rotate(180deg)}.page .post-content .mermaid{width:100%;margin:3% auto;text-align:center}.page .post-content .mermaid .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);color:#333}.page .post-content .mermaid .label text{fill:#333}.page .post-content .mermaid .node rect,.page .post-content .mermaid .node circle,.page .post-content .mermaid .node ellipse,.page .post-content .mermaid .node polygon{fill:#eee;stroke:#999;stroke-width:1px}.page .post-content .mermaid .node .label{text-align:center}.page .post-content .mermaid .node.clickable{cursor:pointer}.page .post-content .mermaid .arrowheadPath{fill:#333}.page .post-content .mermaid .edgePath .path{stroke:#666;stroke-width:1.5px}.page .post-content .mermaid .edgeLabel{background-color:#fff;text-align:center}.page .post-content .mermaid .cluster rect{fill:#eaf2fb;stroke:#26a;stroke-width:1px}.page .post-content .mermaid .cluster text{fill:#333}.page .post-content .mermaid div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#eaf2fb;border:1px solid #26a;border-radius:2px;pointer-events:none;z-index:100}.page .post-content .mermaid .actor{stroke:#999;fill:#eee}.page .post-content .mermaid text.actor{fill:#333;stroke:none}.page .post-content .mermaid .actor-line{stroke:#666}.page .post-content .mermaid .messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.page .post-content .mermaid .messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.page .post-content .mermaid #arrowhead{fill:#333}.page .post-content .mermaid .sequenceNumber{fill:#fff}.page .post-content .mermaid #sequencenumber{fill:#333}.page .post-content .mermaid #crosshead path{fill:#333 !important;stroke:#333 !important}.page .post-content .mermaid .messageText{fill:#333;stroke:none}.page .post-content .mermaid .labelBox{stroke:#999;fill:#eee}.page .post-content .mermaid .labelText{fill:#333;stroke:none}.page .post-content .mermaid .loopText{fill:#333;stroke:none}.page .post-content .mermaid .loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#999}.page .post-content .mermaid .note{stroke:#770;fill:#ffa}.page .post-content .mermaid .noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:14px}.page .post-content .mermaid .activation0{fill:#f4f4f4;stroke:#666}.page .post-content .mermaid .activation1{fill:#f4f4f4;stroke:#666}.page .post-content .mermaid .activation2{fill:#f4f4f4;stroke:#666}.page .post-content .mermaid .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}.page .post-content .mermaid .section{stroke:none;opacity:0.2}.page .post-content .mermaid .section0{fill:#80b3e6}.page .post-content .mermaid .section2{fill:#80b3e6}.page .post-content .mermaid .section1,.page .post-content .mermaid .section3{fill:#fff;opacity:0.2}.page .post-content .mermaid .sectionTitle0{fill:#333}.page .post-content .mermaid .sectionTitle1{fill:#333}.page .post-content .mermaid .sectionTitle2{fill:#333}.page .post-content .mermaid .sectionTitle3{fill:#333}.page .post-content .mermaid .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .post-content .mermaid .grid .tick{stroke:#e6e5e5;opacity:0.3;shape-rendering:crispEdges}.page .post-content .mermaid .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .post-content .mermaid .grid path{stroke-width:0}.page .post-content .mermaid .today{fill:none;stroke:#d42;stroke-width:2px}.page .post-content .mermaid .task{stroke-width:2}.page .post-content .mermaid .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .post-content .mermaid .taskText:not([font-size]){font-size:11px}.page .post-content .mermaid .taskTextOutsideRight{fill:#333;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .post-content .mermaid .taskTextOutsideLeft{fill:#333;text-anchor:end;font-size:11px}.page .post-content .mermaid .task.clickable{cursor:pointer}.page .post-content .mermaid .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.page .post-content .mermaid .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.page .post-content .mermaid .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.page .post-content .mermaid .taskText0,.page .post-content .mermaid .taskText1,.page .post-content .mermaid .taskText2,.page .post-content .mermaid .taskText3{fill:#fff}.page .post-content .mermaid .task0,.page .post-content .mermaid .task1,.page .post-content .mermaid .task2,.page .post-content .mermaid .task3{fill:#26a;stroke:#1a4d80}.page .post-content .mermaid .taskTextOutside0,.page .post-content .mermaid .taskTextOutside2{fill:#333}.page .post-content .mermaid .taskTextOutside1,.page .post-content .mermaid .taskTextOutside3{fill:#333}.page .post-content .mermaid .active0,.page .post-content .mermaid .active1,.page .post-content .mermaid .active2,.page .post-content .mermaid .active3{fill:#eee;stroke:#1a4d80}.page .post-content .mermaid .activeText0,.page .post-content .mermaid .activeText1,.page .post-content .mermaid .activeText2,.page .post-content .mermaid .activeText3{fill:#333 !important}.page .post-content .mermaid .done0,.page .post-content .mermaid .done1,.page .post-content .mermaid .done2,.page .post-content .mermaid .done3{stroke:#666;fill:#bbb;stroke-width:2}.page .post-content .mermaid .doneText0,.page .post-content .mermaid .doneText1,.page .post-content .mermaid .doneText2,.page .post-content .mermaid .doneText3{fill:#333 !important}.page .post-content .mermaid .crit0,.page .post-content .mermaid .crit1,.page .post-content .mermaid .crit2,.page .post-content .mermaid .crit3{stroke:#b1361b;fill:#d42;stroke-width:2}.page .post-content .mermaid .activeCrit0,.page .post-content .mermaid .activeCrit1,.page .post-content .mermaid .activeCrit2,.page .post-content .mermaid .activeCrit3{stroke:#b1361b;fill:#eee;stroke-width:2}.page .post-content .mermaid .doneCrit0,.page .post-content .mermaid .doneCrit1,.page .post-content .mermaid .doneCrit2,.page .post-content .mermaid .doneCrit3{stroke:#b1361b;fill:#bbb;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.page .post-content .mermaid .milestone{transform:rotate(45deg) scale(0.8, 0.8)}.page .post-content .mermaid .milestoneText{font-style:italic}.page .post-content .mermaid .doneCritText0,.page .post-content .mermaid .doneCritText1,.page .post-content .mermaid .doneCritText2,.page .post-content .mermaid .doneCritText3{fill:#333 !important}.page .post-content .mermaid .activeCritText0,.page .post-content .mermaid .activeCritText1,.page .post-content .mermaid .activeCritText2,.page .post-content .mermaid .activeCritText3{fill:#333 !important}.page .post-content .mermaid .titleText{text-anchor:middle;font-size:18px;fill:#333;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .post-content .mermaid g.classGroup text{fill:#999;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}.page .post-content .mermaid g.classGroup text .title{font-weight:bolder}.page .post-content .mermaid g.classGroup rect{fill:#eee;stroke:#999}.page .post-content .mermaid g.classGroup line{stroke:#999;stroke-width:1}.page .post-content .mermaid .classLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:0.5}.page .post-content .mermaid .classLabel .label{fill:#999;font-size:10px}.page .post-content .mermaid .relation{stroke:#999;stroke-width:1;fill:none}.page .post-content .mermaid #compositionStart{fill:#999;stroke:#999;stroke-width:1}.page .post-content .mermaid #compositionEnd{fill:#999;stroke:#999;stroke-width:1}.page .post-content .mermaid #aggregationStart{fill:#eee;stroke:#999;stroke-width:1}.page .post-content .mermaid #aggregationEnd{fill:#eee;stroke:#999;stroke-width:1}.page .post-content .mermaid #dependencyStart{fill:#999;stroke:#999;stroke-width:1}.page .post-content .mermaid #dependencyEnd{fill:#999;stroke:#999;stroke-width:1}.page .post-content .mermaid #extensionStart{fill:#999;stroke:#999;stroke-width:1}.page .post-content .mermaid #extensionEnd{fill:#999;stroke:#999;stroke-width:1}.page .post-content .mermaid .commit-id,.page .post-content .mermaid .commit-msg,.page .post-content .mermaid .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .post-content .mermaid .pieTitleText{text-anchor:middle;font-size:25px;fill:#333;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .post-content .mermaid .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .post-content .mermaid g.stateGroup text{fill:#999;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .post-content .mermaid g.stateGroup text{fill:#999;stroke:none;font-size:10px}.page .post-content .mermaid g.stateGroup .state-title{font-weight:bolder;fill:#000}.page .post-content .mermaid g.stateGroup rect{fill:#eee;stroke:#999}.page .post-content .mermaid g.stateGroup line{stroke:#999;stroke-width:1}.page .post-content .mermaid .transition{stroke:#999;stroke-width:1;fill:none}.page .post-content .mermaid .stateGroup .composit{fill:white;border-bottom:1px}.page .post-content .mermaid .state-note{stroke:#770;fill:#ffa}.page .post-content .mermaid .state-note text{fill:black;stroke:none;font-size:10px}.page .post-content .mermaid .stateLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:0.5}.page .post-content .mermaid .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .post-content .mermaid :root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}.dark-theme .page .post-content .mermaid .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);color:#333}.dark-theme .page .post-content .mermaid .label text{fill:#333}.dark-theme .page .post-content .mermaid .node rect,.dark-theme .page .post-content .mermaid .node circle,.dark-theme .page .post-content .mermaid .node ellipse,.dark-theme .page .post-content .mermaid .node polygon{fill:#BDD5EA;stroke:purple;stroke-width:1px}.dark-theme .page .post-content .mermaid .node .label{text-align:center}.dark-theme .page .post-content .mermaid .node.clickable{cursor:pointer}.dark-theme .page .post-content .mermaid .arrowheadPath{fill:#d3d3d3}.dark-theme .page .post-content .mermaid .edgePath .path{stroke:#d3d3d3;stroke-width:1.5px}.dark-theme .page .post-content .mermaid .edgeLabel{background-color:#e8e8e8;text-align:center}.dark-theme .page .post-content .mermaid .cluster rect{fill:#6D6D65;stroke:rgba(255,255,255,0.25);stroke-width:1px}.dark-theme .page .post-content .mermaid .cluster text{fill:#F9FFFE}.dark-theme .page .post-content .mermaid div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#6D6D65;border:1px solid rgba(255,255,255,0.25);border-radius:2px;pointer-events:none;z-index:100}.dark-theme .page .post-content .mermaid .actor{stroke:#81B1DB;fill:#BDD5EA}.dark-theme .page .post-content .mermaid text.actor{fill:#000;stroke:none}.dark-theme .page .post-content .mermaid .actor-line{stroke:#d3d3d3}.dark-theme .page .post-content .mermaid .messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#d3d3d3}.dark-theme .page .post-content .mermaid .messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#d3d3d3}.dark-theme .page .post-content .mermaid #arrowhead{fill:#d3d3d3}.dark-theme .page .post-content .mermaid .sequenceNumber{fill:#fff}.dark-theme .page .post-content .mermaid #sequencenumber{fill:#d3d3d3}.dark-theme .page .post-content .mermaid #crosshead path{fill:#d3d3d3 !important;stroke:#d3d3d3 !important}.dark-theme .page .post-content .mermaid .messageText{fill:#d3d3d3;stroke:none}.dark-theme .page .post-content .mermaid .labelBox{stroke:#81B1DB;fill:#BDD5EA}.dark-theme .page .post-content .mermaid .labelText{fill:#323D47;stroke:none}.dark-theme .page .post-content .mermaid .loopText{fill:#d3d3d3;stroke:none}.dark-theme .page .post-content .mermaid .loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#81B1DB}.dark-theme .page .post-content .mermaid .note{stroke:rgba(255,255,255,0.25);fill:#fff5ad}.dark-theme .page .post-content .mermaid .noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:14px}.dark-theme .page .post-content .mermaid .activation0{fill:#f4f4f4;stroke:#666}.dark-theme .page .post-content .mermaid .activation1{fill:#f4f4f4;stroke:#666}.dark-theme .page .post-content .mermaid .activation2{fill:#f4f4f4;stroke:#666}.dark-theme .page .post-content .mermaid .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .post-content .mermaid .section{stroke:none;opacity:0.2}.dark-theme .page .post-content .mermaid .section0{fill:rgba(255,255,255,0.3)}.dark-theme .page .post-content .mermaid .section2{fill:#EAE8B9}.dark-theme .page .post-content .mermaid .section1,.dark-theme .page .post-content .mermaid .section3{fill:#fff;opacity:0.2}.dark-theme .page .post-content .mermaid .sectionTitle0{fill:#F9FFFE}.dark-theme .page .post-content .mermaid .sectionTitle1{fill:#F9FFFE}.dark-theme .page .post-content .mermaid .sectionTitle2{fill:#F9FFFE}.dark-theme .page .post-content .mermaid .sectionTitle3{fill:#F9FFFE}.dark-theme .page .post-content .mermaid .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .post-content .mermaid .grid .tick{stroke:#d3d3d3;opacity:0.3;shape-rendering:crispEdges}.dark-theme .page .post-content .mermaid .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .post-content .mermaid .grid path{stroke-width:0}.dark-theme .page .post-content .mermaid .today{fill:none;stroke:#DB5757;stroke-width:2px}.dark-theme .page .post-content .mermaid .task{stroke-width:2}.dark-theme .page .post-content .mermaid .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .post-content .mermaid .taskText:not([font-size]){font-size:11px}.dark-theme .page .post-content .mermaid .taskTextOutsideRight{fill:#323D47;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .post-content .mermaid .taskTextOutsideLeft{fill:#323D47;text-anchor:end;font-size:11px}.dark-theme .page .post-content .mermaid .task.clickable{cursor:pointer}.dark-theme .page .post-content .mermaid .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.dark-theme .page .post-content .mermaid .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.dark-theme .page .post-content .mermaid .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.dark-theme .page .post-content .mermaid .taskText0,.dark-theme .page .post-content .mermaid .taskText1,.dark-theme .page .post-content .mermaid .taskText2,.dark-theme .page .post-content .mermaid .taskText3{fill:#323D47}.dark-theme .page .post-content .mermaid .task0,.dark-theme .page .post-content .mermaid .task1,.dark-theme .page .post-content .mermaid .task2,.dark-theme .page .post-content .mermaid .task3{fill:#BDD5EA;stroke:rgba(255,255,255,0.5)}.dark-theme .page .post-content .mermaid .taskTextOutside0,.dark-theme .page .post-content .mermaid .taskTextOutside2{fill:#d3d3d3}.dark-theme .page .post-content .mermaid .taskTextOutside1,.dark-theme .page .post-content .mermaid .taskTextOutside3{fill:#d3d3d3}.dark-theme .page .post-content .mermaid .active0,.dark-theme .page .post-content .mermaid .active1,.dark-theme .page .post-content .mermaid .active2,.dark-theme .page .post-content .mermaid .active3{fill:#81B1DB;stroke:rgba(255,255,255,0.5)}.dark-theme .page .post-content .mermaid .activeText0,.dark-theme .page .post-content .mermaid .activeText1,.dark-theme .page .post-content .mermaid .activeText2,.dark-theme .page .post-content .mermaid .activeText3{fill:#323D47 !important}.dark-theme .page .post-content .mermaid .done0,.dark-theme .page .post-content .mermaid .done1,.dark-theme .page .post-content .mermaid .done2,.dark-theme .page .post-content .mermaid .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}.dark-theme .page .post-content .mermaid .doneText0,.dark-theme .page .post-content .mermaid .doneText1,.dark-theme .page .post-content .mermaid .doneText2,.dark-theme .page .post-content .mermaid .doneText3{fill:#323D47 !important}.dark-theme .page .post-content .mermaid .crit0,.dark-theme .page .post-content .mermaid .crit1,.dark-theme .page .post-content .mermaid .crit2,.dark-theme .page .post-content .mermaid .crit3{stroke:#E83737;fill:#E83737;stroke-width:2}.dark-theme .page .post-content .mermaid .activeCrit0,.dark-theme .page .post-content .mermaid .activeCrit1,.dark-theme .page .post-content .mermaid .activeCrit2,.dark-theme .page .post-content .mermaid .activeCrit3{stroke:#E83737;fill:#81B1DB;stroke-width:2}.dark-theme .page .post-content .mermaid .doneCrit0,.dark-theme .page .post-content .mermaid .doneCrit1,.dark-theme .page .post-content .mermaid .doneCrit2,.dark-theme .page .post-content .mermaid .doneCrit3{stroke:#E83737;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.dark-theme .page .post-content .mermaid .milestone{transform:rotate(45deg) scale(0.8, 0.8)}.dark-theme .page .post-content .mermaid .milestoneText{font-style:italic}.dark-theme .page .post-content .mermaid .doneCritText0,.dark-theme .page .post-content .mermaid .doneCritText1,.dark-theme .page .post-content .mermaid .doneCritText2,.dark-theme .page .post-content .mermaid .doneCritText3{fill:#323D47 !important}.dark-theme .page .post-content .mermaid .activeCritText0,.dark-theme .page .post-content .mermaid .activeCritText1,.dark-theme .page .post-content .mermaid .activeCritText2,.dark-theme .page .post-content .mermaid .activeCritText3{fill:#323D47 !important}.dark-theme .page .post-content .mermaid .titleText{text-anchor:middle;font-size:18px;fill:#323D47;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .post-content .mermaid g.classGroup text{fill:purple;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}.dark-theme .page .post-content .mermaid g.classGroup text .title{font-weight:bolder}.dark-theme .page .post-content .mermaid g.classGroup rect{fill:#BDD5EA;stroke:purple}.dark-theme .page .post-content .mermaid g.classGroup line{stroke:purple;stroke-width:1}.dark-theme .page .post-content .mermaid .classLabel .box{stroke:none;stroke-width:0;fill:#BDD5EA;opacity:0.5}.dark-theme .page .post-content .mermaid .classLabel .label{fill:purple;font-size:10px}.dark-theme .page .post-content .mermaid .relation{stroke:purple;stroke-width:1;fill:none}.dark-theme .page .post-content .mermaid #compositionStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .page .post-content .mermaid #compositionEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .page .post-content .mermaid #aggregationStart{fill:#BDD5EA;stroke:purple;stroke-width:1}.dark-theme .page .post-content .mermaid #aggregationEnd{fill:#BDD5EA;stroke:purple;stroke-width:1}.dark-theme .page .post-content .mermaid #dependencyStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .page .post-content .mermaid #dependencyEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .page .post-content .mermaid #extensionStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .page .post-content .mermaid #extensionEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .page .post-content .mermaid .commit-id,.dark-theme .page .post-content .mermaid .commit-msg,.dark-theme .page .post-content .mermaid .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .post-content .mermaid .pieTitleText{text-anchor:middle;font-size:25px;fill:#323D47;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .post-content .mermaid .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .post-content .mermaid g.stateGroup text{fill:purple;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .post-content .mermaid g.stateGroup text{fill:purple;stroke:none;font-size:10px}.dark-theme .page .post-content .mermaid g.stateGroup .state-title{font-weight:bolder;fill:#000}.dark-theme .page .post-content .mermaid g.stateGroup rect{fill:#BDD5EA;stroke:purple}.dark-theme .page .post-content .mermaid g.stateGroup line{stroke:purple;stroke-width:1}.dark-theme .page .post-content .mermaid .transition{stroke:purple;stroke-width:1;fill:none}.dark-theme .page .post-content .mermaid .stateGroup .composit{fill:white;border-bottom:1px}.dark-theme .page .post-content .mermaid .state-note{stroke:rgba(255,255,255,0.25);fill:#fff5ad}.dark-theme .page .post-content .mermaid .state-note text{fill:black;stroke:none;font-size:10px}.dark-theme .page .post-content .mermaid .stateLabel .box{stroke:none;stroke-width:0;fill:#BDD5EA;opacity:0.5}.dark-theme .page .post-content .mermaid .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .post-content .mermaid :root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}.dark-theme .page .post-content .aplayer{background:#212121}.dark-theme .page .post-content .aplayer.aplayer-withlist .aplayer-info{border-bottom-color:#5c5c5c}.dark-theme .page .post-content .aplayer.aplayer-fixed .aplayer-list{border-color:#5c5c5c}.dark-theme .page .post-content .aplayer .aplayer-body{background-color:#212121}.dark-theme .page .post-content .aplayer .aplayer-info{border-top-color:#212121}.dark-theme .page .post-content .aplayer .aplayer-info .aplayer-music .aplayer-title{color:#fff}.dark-theme .page .post-content .aplayer .aplayer-info .aplayer-music .aplayer-author{color:#fff}.dark-theme .page .post-content .aplayer .aplayer-info .aplayer-controller .aplayer-time{color:#eee}.dark-theme .page .post-content .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path{fill:#eee}.dark-theme .page .post-content .aplayer .aplayer-list{background-color:#212121}.dark-theme .page .post-content .aplayer .aplayer-list::-webkit-scrollbar-thumb{background-color:#999}.dark-theme .page .post-content .aplayer .aplayer-list::-webkit-scrollbar-thumb:hover{background-color:#bbb}.dark-theme .page .post-content .aplayer .aplayer-list li{color:#fff;border-top-color:#666}.dark-theme .page .post-content .aplayer .aplayer-list li:hover{background:#4e4e4e}.dark-theme .page .post-content .aplayer .aplayer-list li.aplayer-list-light{background:#6c6c6c}.dark-theme .page .post-content .aplayer .aplayer-list li .aplayer-list-index{color:#ddd}.dark-theme .page .post-content .aplayer .aplayer-list li .aplayer-list-author{color:#ddd}.dark-theme .page .post-content .aplayer .aplayer-lrc{text-shadow:-1px -1px 0 #666}.dark-theme .page .post-content .aplayer .aplayer-lrc:before{background:-moz-linear-gradient(top, #212121 0%, rgba(33,33,33,0) 100%);background:-webkit-linear-gradient(top, #212121 0%, rgba(33,33,33,0) 100%);background:linear-gradient(to bottom, #212121 0%, rgba(33,33,33,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#212121', endColorstr='#00212121',GradientType=0 )}.dark-theme .page .post-content .aplayer .aplayer-lrc:after{background:-moz-linear-gradient(top, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%);background:-webkit-linear-gradient(top, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%);background:linear-gradient(to bottom, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00212121', endColorstr='#cc212121',GradientType=0 )}.dark-theme .page .post-content .aplayer .aplayer-lrc p{color:#fff}.dark-theme .page .post-content .aplayer .aplayer-miniswitcher{background:#484848}.dark-theme .page .post-content .aplayer .aplayer-miniswitcher .aplayer-icon path{fill:#eee}.page .post-content .echarts{width:100%;height:30rem;margin:3% auto;text-align:center}.page .post-content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.page .post-content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.page .post-content hr{margin:1rem 0;position:relative;border-top:1px dashed #dcdcdc;border-bottom:none}.dark-theme .page .post-content hr{border-top:1px dashed #4a4b50}.page .post-content kbd{display:inline-block;padding:.25em;background-color:#fff;border:1px solid #dcdcdc;border-bottom-color:#dcdcdc;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 #dcdcdc;box-shadow:inset 0 -1px 0 #dcdcdc;font-size:.8em;line-height:1.25rem;font-family:Fira Mono,Source Code Pro,Menlo,Consolas,Monaco,monospace;color:#E74C3C}.dark-theme .page .post-content kbd{background-color:#292a2d;border:1px solid #4a4b50;border-bottom-color:#4a4b50;-webkit-box-shadow:inset 0 -1px 0 #4a4b50;box-shadow:inset 0 -1px 0 #4a4b50;color:#E5BF78}.page .post-content .typeit .code{padding:.375rem;font-size:.875rem;font-family:Fira Mono,Source Code Pro,Menlo,Consolas,Monaco,monospace;font-weight:bold;word-break:break-all}.page .post-content .align-left{text-align:left}.page .post-content .align-center{text-align:center}.page .post-content .align-right{text-align:right}.page .post-content .float-left{float:left}.page .post-content .float-right{float:right}.page .post-footer{margin-top:3rem}.page .post-footer .post-info{border-bottom:1px solid #dcdcdc;padding:1rem 0 0.3rem}.dark-theme .page .post-footer .post-info{border-bottom:1px solid #4a4b50}.page .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.page .post-footer .post-info .post-info-line .post-info-mod{font-size:0.8em;color:#a9a9b3}.dark-theme .page .post-footer .post-info .post-info-line .post-info-mod{color:#5d5d5f}.page .post-footer .post-info .post-info-line .post-info-license{font-size:0.8em;color:#a9a9b3}.dark-theme .page .post-footer .post-info .post-info-line .post-info-license{color:#5d5d5f}.page .post-footer .post-info .post-info-line .post-info-md a{font-size:0.8em;color:#2d96bd}.dark-theme .page .post-footer .post-info .post-info-line .post-info-md a{color:#eee}.page .post-footer .post-info .post-info-line .post-info-md a:hover{color:#ef3982}.dark-theme .page .post-footer .post-info .post-info-line .post-info-md a:hover{color:#2d96bd}.page .post-footer .post-info-more{padding:0.3rem 0 1rem;display:flex;justify-content:space-between;font-size:0.9rem}.page .post-footer .post-nav::before,.page .post-footer .post-nav::after{content:' ';display:table}.page .post-footer .post-nav a.prev,.page .post-footer .post-nav a.next{font-size:1rem;font-weight:600;transition-duration:.3s;transition-property:transform;transition-timing-function:ease-out}.page .post-footer .post-nav a.prev{float:left}.page .post-footer .post-nav a.prev:hover{transform:translateX(-4px)}.page .post-footer .post-nav a.next{float:right}.page .post-footer .post-nav a.next:hover{transform:translateX(4px)}.page .post-comment{padding:4rem 0}.page .home-intro{transform:translateY(0);padding:2rem 0 2rem 0}.page .home-intro .home-avatar img{width:6rem}.page .post{padding-top:1rem;padding-bottom:.8rem;color:#161209;border-bottom:1px dashed #dcdcdc}.dark-theme .page .post{color:#a9a9b3;border-bottom:1px dashed #4a4b50}.page .post .post-featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin:0.6rem auto}.page .post .post-featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;object-fit:cover}.page .post .post-list-title{font-size:1.6rem}.page .post .post-meta{font-size:.875rem !important}.page .post .post-meta a{color:#a9a9b3 !important}.dark-theme .page .post .post-meta a{color:#5d5d5f !important}.page .post .post-meta a:hover{color:#2d96bd !important}.dark-theme .page .post .post-meta a:hover{color:#fff !important}.page .post .post-content{padding-top:.2rem;font-size:.9rem;width:100%;max-height:7rem;overflow:hidden}.page .post .post-content h2,.page .post .post-content h3,.page .post .post-content h4,.page .post .post-content h5,.page .post .post-content h6{font-size:1rem;line-height:1rem;padding-top:.3rem;padding-bottom:.3rem}.page .post .post-content p{margin:0;padding-top:.3rem;padding-bottom:.3rem}.page .post .post-footer{margin-top:.5rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem !important}.page .post .post-footer a{color:#2d96bd !important}.dark-theme .page .post .post-footer a{color:#eee !important}.page .post .post-footer a:hover{color:#ef3982 !important}.dark-theme .page .post .post-footer a:hover{color:#2d96bd !important}.page .post .post-footer .post-tags{padding:0}.page .post .post-footer .post-tags a{color:#161209 !important}.dark-theme .page .post .post-footer .post-tags a{color:#a9a9b3 !important}.page .post .post-footer .post-tags a:hover{color:#2d96bd !important}.dark-theme .page .post .post-footer .post-tags a:hover{color:#fff !important}.archive .post-title{text-align:right;padding-bottom:2rem}.archive .archive-item{margin-left:2rem}.archive .categories-card{margin:0 auto;margin-top:3rem;display:flex;align-items:center;justify-content:space-between;flex-direction:row;flex-wrap:wrap;padding:0 2.5rem;line-height:1.6rem}.archive .categories-card .card-item{font-size:.875rem;text-align:left;width:45%;display:flex;align-items:flex-start;margin-top:2rem;min-height:10rem;padding:0 2%;position:relative}.archive .categories-card .card-item .card-item-wrapper{width:100%;overflow:hidden}.archive .categories-card .card-item .card-item-wrapper .card-item-title{font-size:1.2rem;font-weight:bold;display:inline-block}.archive .categories-card .card-item .card-item-wrapper span{float:right;padding-right:1rem}.archive .archive-item-link{display:inline-block;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:95%}.archive .archive-item-link:hover{color:#2d96bd;background-color:transparent}.dark-theme .archive .archive-item-link{color:#a9a9b3;text-decoration:none;transition:color 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease}.dark-theme .archive .archive-item-link:hover{color:#fff;text-decoration:none;transition:color 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease}.archive .archive-item-date{float:right;text-align:right;color:#a9a9b3}.dark-theme .archive .archive-item-date{color:#5d5d5f}.archive .more-post{text-align:right}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;word-wrap:break-word;transition-duration:.3s;transition-property:transform;transition-timing-function:ease-out}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{color:#2d96bd;transform:scale(1.1)}.dark-theme .archive .tag-cloud-tags a:active,.dark-theme .archive .tag-cloud-tags a:focus,.dark-theme .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a small{color:#a9a9b3}.dark-theme .archive .tag-cloud-tags a small{color:#fff}.single .post-title{text-align:right;padding-bottom:2rem}.navbar{display:block;position:fixed;width:100%;z-index:100;height:4rem;line-height:4rem;background-color:#fafafa}.dark-theme .navbar{background-color:#252627}.navbar .navbar-container{width:auto;text-align:center;margin:0 4rem;display:flex;justify-content:space-between}.navbar .navbar-container .navbar-header a{padding:0 8px;font-size:20px}.navbar .navbar-container .navbar-header a i{line-height:2em}.navbar .navbar-container .navbar-menu a{padding:0 8px}.navbar .navbar-container .navbar-menu a.active{font-weight:900;color:#161209}.dark-theme .navbar .navbar-container .navbar-menu a.active{color:#fff}.navbar-mobile{display:none;position:fixed;width:100%;z-index:100;transition:all 0.3s ease 0s}.navbar-mobile .navbar-container{padding:0;margin:0;height:4.5em;line-height:4.5em;background:#fff}.navbar-mobile .navbar-container .navbar-header{display:flex;justify-content:space-between;align-items:center;width:100%;font-size:18px;padding-right:1em;padding-left:1em;box-sizing:border-box}.navbar-mobile .navbar-container .navbar-header .navbar-header-title{font-size:20px}.navbar-mobile .navbar-container .navbar-header .menu-toggle{cursor:pointer;line-height:4.5em}.navbar-mobile .navbar-container .navbar-header .menu-toggle span{display:block;background:#000;width:24px;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:.2s margin .2s, .2s transform;-moz-transition:.2s margin .2s, .2s transform;transition:.2s margin .2s, .2s transform}.dark-theme .navbar-mobile .navbar-container .navbar-header .menu-toggle span{background:#a9a9b3}.navbar-mobile .navbar-container .navbar-header .menu-toggle span:nth-child(1){margin-bottom:8px}.navbar-mobile .navbar-container .navbar-header .menu-toggle span:nth-child(3){margin-top:8px}.navbar-mobile .navbar-container .navbar-header .menu-toggle.active span{-webkit-transition:.2s margin, .2s transform .2s;-moz-transition:.2s margin, .2s transform .2s;transition:.2s margin, .2s transform .2s}.navbar-mobile .navbar-container .navbar-header .menu-toggle.active span:nth-child(1){-moz-transform:rotate(45deg) translate(4px, 6px);-ms-transform:rotate(45deg) translate(4px, 6px);-webkit-transform:rotate(45deg) translate(4px, 6px);transform:rotate(45deg) translate(4px, 6px)}.navbar-mobile .navbar-container .navbar-header .menu-toggle.active span:nth-child(2){opacity:0}.navbar-mobile .navbar-container .navbar-header .menu-toggle.active span:nth-child(3){-moz-transform:rotate(-45deg) translate(8px, -10px);-ms-transform:rotate(-45deg) translate(8px, -10px);-webkit-transform:rotate(-45deg) translate(8px, -10px);transform:rotate(-45deg) translate(8px, -10px)}.navbar-mobile .navbar-container .navbar-menu{text-align:center;background:#fff;border-top:2px solid #161209;display:none;box-shadow:0px 2px 4px rgba(0,0,0,0.1),0px 4px 8px rgba(0,0,0,0.1)}.navbar-mobile .navbar-container .navbar-menu a{display:block;line-height:2.5em}.navbar-mobile .navbar-container .navbar-menu.active{display:block}.dark-theme .navbar-mobile .navbar-container .navbar-menu{background:#292a2d;border-top:2px solid #a9a9b3}.dark-theme .navbar-mobile .navbar-container{background:#292a2d}.copyright{font-size:.875rem}.copyright .copyright-line{width:100%}.copyright .copyright-line .icp-br{display:none}.dynamic-to-top{display:none;overflow:hidden;width:auto;z-index:90;position:fixed;bottom:2rem;right:2rem;top:auto;left:auto;font-family:sans-serif;font-size:1rem;color:#fff;text-decoration:none;text-shadow:0 1px 0 #333;font-weight:bold;padding:1rem 1rem;border:1px solid #dcdcdc;background:#222;outline:none}.dynamic-to-top:hover{background:#000;cursor:pointer}.dynamic-to-top:active{background:#000;outline:none}.dynamic-to-top:focus,.dynamic-to-top:hover{outline:none}.dynamic-to-top span{display:block;overflow:hidden;width:.875rem;height:.75rem;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAKCAYAAACE2W/HAAAACXBIWXMAAArwAAAK8AFCrDSYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAKVJREFUeNqUz7ENgzAURdErUSXQMgdTZJFIqeg8DFI2YQeEvAEbUJja3y9NEiwCUXIlN/62jww7Saok3Z+r4pckXSRNWpskXb5deClHfeo7ylGrLqnbTmOMs/e+9d63McZ554GOlFLId0IIvXOuAUqgdM41IYQ+P5NSCpjZkitADRTZTwqgznUzWzCzZaMc9dbNbGEYhuuOclQB1OM43gBO/N/5MQAeMwpyB1MtLQAAAABJRU5ErkJggg==") no-repeat center center}.dark-theme .dynamic-to-top{border:1px solid #4a4b50}.pagination{display:flex;flex-direction:row;justify-content:center;list-style:none;white-space:nowrap;width:100%;padding-top:1rem}.pagination a{-webkit-font-smoothing:antialiased;font-size:.8rem;color:#bfbfbf;letter-spacing:.1rem;font-weight:700;padding:5px 5px;text-decoration:none;transition:0.3s}.pagination li{padding-bottom:3px;margin:0 20px;box-sizing:border-box;position:relative;display:inline}.pagination li.disabled{display:none}.pagination li:hover a{color:#000}.dark-theme .pagination li:hover a{color:#fff}.pagination li:before,.pagination li:after{position:absolute;content:"";width:0;height:3px;background:#000;transition:0.3s;bottom:0px}.dark-theme .pagination li:before,.dark-theme .pagination li:after{background:#fff}.pagination li:before .active,.pagination li:after .active{width:100%}.pagination li:before{left:50%}.pagination li:after{right:50%}.pagination li:hover:before,.pagination li:hover:after{width:50%}.pagination li.active a{color:#000}.dark-theme .pagination li.active a{color:#fff}.pagination li.active:before,.pagination li.active:after{width:60%}@media only screen and (max-width: 1800px){.page{max-width:780px}.page .post-toc{width:300px;margin-left:800px}}@media only screen and (max-width: 1440px){.page{max-width:680px}.page .post-toc{width:240px;margin-left:700px}}@media only screen and (max-width: 1200px){.page{max-width:560px}.page .post-toc{width:180px;margin-left:580px}}@media only screen and (max-width: 960px){.navbar .navbar-container{margin:0 1rem}.page{max-width:80%}.page .post-toc{display:none}.page .post-toc-mobile{display:block}}@media only screen and (max-width: 560px){.navbar{display:none}.navbar-mobile{display:block}.page{max-width:100%}.page .categories-card .card-item{width:100%}.copyright .copyright-line .icp-splitter{display:none}.copyright .copyright-line .icp-br{display:block}.dynamic-to-top{display:none !important}} - -/*# sourceMappingURL=style.min.css.map */ \ No newline at end of file diff --git a/resources/_gen/assets/scss/css/custom-style.scss_a707772b4d98a91469dad78dcf3d2e9a.json b/resources/_gen/assets/scss/css/custom-style.scss_a707772b4d98a91469dad78dcf3d2e9a.json deleted file mode 100644 index 0095485dc..000000000 --- a/resources/_gen/assets/scss/css/custom-style.scss_a707772b4d98a91469dad78dcf3d2e9a.json +++ /dev/null @@ -1 +0,0 @@ -{"Target":"css/style.min.css","MediaType":"text/css","Data":{}} \ No newline at end of file diff --git a/resources/_gen/assets/scss/css/style.scss_d75fd08668b4bae707167bbce4d8ca46.content b/resources/_gen/assets/scss/css/style.scss_d75fd08668b4bae707167bbce4d8ca46.content deleted file mode 100644 index 9034278c0..000000000 --- a/resources/_gen/assets/scss/css/style.scss_d75fd08668b4bae707167bbce4d8ca46.content +++ /dev/null @@ -1,3 +0,0 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace, monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft Yahei,Segoe UI,Helvetica,Arial,sans-serif,Segoe UI Emoji}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background-color:#87878d}::-webkit-scrollbar-thumb:hover{background-color:#a9a9b3}::selection{background:rgba(38,139,211,0.2)}.dark-theme ::selection{background:rgba(38,139,211,0.3)}body{font-size:16px;font-weight:400;line-height:1.5rem;background-color:#fff;color:#161209}body::before{content:"";background-repeat:no-repeat;background-position:center;opacity:0.05;position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;-webkit-filter:grayscale(100%);-moz-filter:grayscale(100%);-ms-filter:grayscale(100%);-o-filter:grayscale(100%);filter:grayscale(100%);filter:gray}body.dark-theme{color:#a9a9b3;background-color:#292a2d}a{color:#161209;text-decoration:none;transition:color 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease}a:hover{color:#2d96bd}.dark-theme a{color:#a9a9b3}.dark-theme a:hover{color:#fff}.wrapper{display:flex;flex-direction:column;min-height:97.5vh;width:100%}.wrapper main{flex:1 0 auto}.wrapper main .container{padding-left:1rem;padding-right:1rem}.footer{height:2rem;width:100%;text-align:center;line-height:1.5rem;padding-top:2rem}.home-intro{transform:translateY(25vh);text-align:center}.home-intro .home-avatar{padding:0.6rem}.home-intro .home-avatar img{width:8rem;height:auto;display:inline-block;-webkit-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);margin:0 auto;-webkit-transition:all ease 0.4s;-moz-transition:all ease 0.4s;-o-transition:all ease 0.4s;transition:all ease 0.4s;cursor:pointer}.home-intro .home-avatar img:hover{position:relative;-webkit-transform:translateY(-0.75rem);-moz-transform:translateY(-0.75rem);-ms-transform:translateY(-0.75rem);-o-transform:translateY(-0.75rem);transform:translateY(-0.75rem);cursor:pointer}.home-intro .home-description{font-size:1rem;font-weight:normal;margin:0;padding:.4rem}.home-intro .home-social-links{padding-top:.6rem}.home-intro .home-social-links i{font-size:1.45rem}.home-intro .home-social-links img{width:1.5rem;height:1.5rem}.notfound{font-size:1.8rem;line-height:3rem;transform:translateY(30vh);text-align:center}.page{position:relative;width:100%;max-width:980px;margin:0 auto;padding-top:6rem}.page .post-title{margin:0 !important;font-size:1.8rem;line-height:3rem}.page .post-meta{font-size:.88rem;color:#a9a9b3}.page .post-meta span{display:inline-block}.dark-theme .page .post-meta{color:#5d5d5f}.page .post-meta a{color:#2d96bd}.dark-theme .page .post-meta a{color:#eee}.page .post-meta a:hover{color:#ef3982}.dark-theme .page .post-meta a:hover{color:#2d96bd}.page .post-meta .author{font-size:1.05rem}.page .post-featured-image{padding-top:.6rem}.page .post-featured-image img{display:block;max-width:100%;height:auto;margin:0 auto;overflow:hidden}.page .post-toc{display:block;position:absolute;width:360px;margin-left:1000px;padding:0 .8rem;border-left:1px solid #dcdcdc;word-wrap:break-word;box-sizing:border-box;top:12rem}.dark-theme .page .post-toc{border-left:1px solid #4a4b50}.page .post-toc .post-toc-title{font-weight:400;margin:.8rem 0;text-transform:uppercase}.page .post-toc .post-toc-content.always-active ul{display:block}.page .post-toc .post-toc-content>nav>ul{margin:.625rem 0}.page .post-toc .post-toc-content ul{text-indent:-0.85rem;padding-left:.625rem;list-style:none}.page .post-toc .post-toc-content ul a::before{content:"|";font-weight:bolder;margin-right:.5rem;color:#2d96bd}.dark-theme .page .post-toc .post-toc-content ul a::before{color:#eee}.page .post-toc .post-toc-content ul ul{padding-left:1.25rem;display:none}.page .post-toc .post-toc-content ul .has-active>ul{display:block}.page .post-toc .post-toc-content .toc-link.active{font-weight:bold;color:#ef3982}.dark-theme .page .post-toc .post-toc-content .toc-link.active{color:#2d96bd}.page .post-toc .post-toc-content .toc-link.active::before{font-weight:bolder;color:#ef3982}.dark-theme .page .post-toc .post-toc-content .toc-link.active::before{color:#2d96bd}.page .post-toc-mobile{display:none;padding-top:.8rem}.page .post-toc-mobile details summary .post-toc-title{display:block;display:flex;justify-content:space-between;font-size:1.2em;font-weight:bold;line-height:2em;padding:0 .625rem;background:#f5f5f5}.page .post-toc-mobile details summary .post-toc-title i.details{line-height:2em}.dark-theme .page .post-toc-mobile details summary .post-toc-title{background:#272C34}.page .post-toc-mobile details summary::-webkit-details-marker{display:none}.page .post-toc-mobile details[open] i.details{transform:rotate(180deg)}.page .post-toc-mobile .post-toc-content{border:2px solid #f5f5f5}.page .post-toc-mobile .post-toc-content>nav>ul{margin:.625rem 0}.page .post-toc-mobile .post-toc-content ul{padding-left:.625rem;list-style:none}.page .post-toc-mobile .post-toc-content ul ul{padding-left:1.25rem}.dark-theme .page .post-toc-mobile .post-toc-content{border:2px solid #272C34}.page .post-content .post-dummy-target:target{display:inline-block;position:relative;top:-5.6rem;visibility:hidden}.page .post-content h1,.page .post-content h2,.page .post-content h3,.page .post-content h4,.page .post-content h5,.page .post-content h6{font-weight:bold}.dark-theme .page .post-content h1,.dark-theme .page .post-content h2,.dark-theme .page .post-content h3,.dark-theme .page .post-content h4,.dark-theme .page .post-content h5,.dark-theme .page .post-content h6{font-weight:bolder}.page .post-content h2,.page .post-content h3,.page .post-content h4,.page .post-content h5,.page .post-content h6{padding-top:.8rem;padding-bottom:.3rem}.page .post-content h2::before{content:"#";margin-right:.3125rem;color:#2d96bd}.dark-theme .page .post-content h2::before{color:#eee}.page .post-content h3::before,.page .post-content h4::before,.page .post-content h5::before,.page .post-content h6::before{content:"|";margin-right:.3125rem;color:#2d96bd}.dark-theme .page .post-content h3::before,.dark-theme .page .post-content h4::before,.dark-theme .page .post-content h5::before,.dark-theme .page .post-content h6::before{color:#eee}.page .post-content p{font-size:1rem;margin:.5rem 0 .5rem 0}.page .post-content a{color:#2d96bd}.dark-theme .page .post-content a{color:#eee}.page .post-content a:hover{color:#ef3982}.dark-theme .page .post-content a:hover:hover{color:#2d96bd;font-weight:bold}.page .post-content ul{padding-left:2rem;list-style-type:disc}.page .post-content ruby{background:#f5f5f5}.page .post-content ruby rt{color:#a9a9b3}.dark-theme .page .post-content ruby{background:#272C34}.dark-theme .page .post-content ruby rt{color:#5d5d5f}.page .post-content .table-wrapper{overflow-x:auto}.page .post-content .table-wrapper::-webkit-scrollbar{background-color:#fff}.dark-theme .page .post-content .table-wrapper::-webkit-scrollbar{background-color:#272c34}.page .post-content .table-wrapper>table{width:100%;max-width:100%;margin:.625rem 0;border-spacing:0;background:#fff}.dark-theme .page .post-content .table-wrapper>table{background:#272c34}.page .post-content .table-wrapper>table thead{background:#ededed}.dark-theme .page .post-content .table-wrapper>table thead{background-color:#20252b}.page .post-content .table-wrapper>table th,.page .post-content .table-wrapper>table td{padding:.3rem 1rem;border:1px double #dcdcdc}.dark-theme .page .post-content .table-wrapper>table th,.dark-theme .page .post-content .table-wrapper>table td{border:1px double #4a4b50}.page .post-content figure{text-align:center}.page .post-content .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:.625rem;margin:0 auto;border-bottom:1px solid #d9d9d9;font-size:.875rem;color:#969696;line-height:1.7}.page .post-content img{display:block;max-width:100%;height:auto;margin:0 auto;overflow:hidden}.page .post-content blockquote{font-size:1rem;display:block;border-width:1px 0;border-style:solid;border-color:#dcdcdc;padding:1.5em 1.2em 0.5em 1.2em;margin:0 0 2em 0;position:relative}.page .post-content blockquote::before{content:'\201C';position:absolute;top:0em;left:50%;transform:translate(-50%, -50%);width:3rem;height:2rem;font:6em/1.08em 'PT Sans', sans-serif;color:#2d96bd;text-align:center}.dark-theme .page .post-content blockquote::before{color:#eee}.page .post-content blockquote::after{content:"#blockquote" attr(cite);display:block;text-align:right;font-size:0.875em;color:#2d96bd}.dark-theme .page .post-content blockquote::after{color:#eee}.dark-theme .page .post-content blockquote{border-color:#4a4b50}.page .post-content .footnotes{color:#a9a9b3}.dark-theme .page .post-content .footnotes{color:#5d5d5f}.page .post-content code,.page .post-content pre{font-size:13px;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace;color:#E74C3C;padding:5px;background:#f5f5f5}.dark-theme .page .post-content code,.dark-theme .page .post-content pre{color:#E5BF78;background:#272C34}.page .post-content .highlight>pre.chroma{padding:38px 7px 8px;overflow-x:auto}.page .post-content .highlight>.chroma{margin:1em 0;position:relative;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace}.page .post-content .highlight>.chroma code{padding:0}.page .post-content .highlight>.chroma pre{margin:0;padding:38px 7px 8px;overflow-x:visible}.page .post-content .highlight>.chroma::after{position:absolute;top:0;right:0;left:0;padding:2px 7px;font-size:13px;font-weight:bold;color:#b1b0b0;background:#ededed;content:'Code'}.dark-theme .page .post-content .highlight>.chroma::after{color:#b1b0b0;background:#20252b}.page .post-content .highlight>.chroma.language-bash::after{content:"Bash"}.page .post-content .highlight>.chroma.language-c::after{content:"C"}.page .post-content .highlight>.chroma.language-cs::after{content:"C#"}.page .post-content .highlight>.chroma.language-cpp::after{content:"C++"}.page .post-content .highlight>.chroma.language-css::after{content:"CSS"}.page .post-content .highlight>.chroma.language-coffeescript::after{content:"CoffeeScript"}.page .post-content .highlight>.chroma.language-html::after{content:"HTML"}.page .post-content .highlight>.chroma.language-xml::after{content:"XML"}.page .post-content .highlight>.chroma.language-http::after{content:"HTTP"}.page .post-content .highlight>.chroma.language-json::after{content:"JSON"}.page .post-content .highlight>.chroma.language-java::after{content:"Java"}.page .post-content .highlight>.chroma.language-js::after{content:"JavaScript"}.page .post-content .highlight>.chroma.language-javascript::after{content:"JavaScript"}.page .post-content .highlight>.chroma.language-makefile::after{content:"Makefile"}.page .post-content .highlight>.chroma.language-markdown::after{content:"Markdown"}.page .post-content .highlight>.chroma.language-objectivec::after{content:"Objective-C"}.page .post-content .highlight>.chroma.language-php::after{content:"PHP"}.page .post-content .highlight>.chroma.language-perl::after{content:"Perl"}.page .post-content .highlight>.chroma.language-python::after{content:"Python"}.page .post-content .highlight>.chroma.language-ruby::after{content:"Ruby"}.page .post-content .highlight>.chroma.language-sql::after{content:"SQL"}.page .post-content .highlight>.chroma.language-shell::after{content:"Shell"}.page .post-content .highlight>.chroma.language-erlang::after{content:"Erlang"}.page .post-content .highlight>.chroma.language-go::after{content:"Go"}.page .post-content .highlight>.chroma.language-go-html-template::after{content:"Go HTML Template"}.page .post-content .highlight>.chroma.language-groovy::after{content:"Groovy"}.page .post-content .highlight>.chroma.language-haskell::after{content:"Haskell"}.page .post-content .highlight>.chroma.language-kotlin::after{content:"Kotlin"}.page .post-content .highlight>.chroma.language-clojure::after{content:"Clojure"}.page .post-content .highlight>.chroma.language-less::after{content:"Less"}.page .post-content .highlight>.chroma.language-lisp::after{content:"Lisp"}.page .post-content .highlight>.chroma.language-lua::after{content:"Lua"}.page .post-content .highlight>.chroma.language-matlab::after{content:"Matlab"}.page .post-content .highlight>.chroma.language-rust::after{content:"Rust"}.page .post-content .highlight>.chroma.language-scss::after{content:"Scss"}.page .post-content .highlight>.chroma.language-scala::after{content:"Scala"}.page .post-content .highlight>.chroma.language-swift::after{content:"Swift"}.page .post-content .highlight>.chroma.language-typescript::after{content:"TypeScript"}.page .post-content .highlight>.chroma.language-yml::after{content:"YAML"}.page .post-content .highlight>.chroma.language-yaml::after{content:"YAML"}.page .post-content .highlight>.chroma.language-toml::after{content:"TOML"}.page .post-content .highlight>.chroma.language-diff::after{content:"Diff"}.page .post-content .highlight>.chroma .lntd{line-height:20px}.page .post-content .highlight>.chroma .lntd:first-child{width:10px}.page .post-content .highlight>.chroma .lntd:last-child{vertical-align:top}.page .post-content .highlight>.chroma table,.page .post-content .highlight>.chroma tr,.page .post-content .highlight>.chroma td{margin:0;padding:0;width:100%;border-collapse:collapse;border-color:#f5f5f5}.dark-theme .page .post-content .highlight>.chroma table,.dark-theme .page .post-content .highlight>.chroma tr,.dark-theme .page .post-content .highlight>.chroma td{border-color:#272C34}.page .post-content .highlight>.chroma .lnt{color:#b1b0b0}.page .post-content .highlight>.chroma .hl{display:block;background-color:#e8e8e8}.dark-theme .page .post-content .highlight>.chroma .hl{background-color:#1c2025}.page .post-content .highlight .p{color:#A9A9B3}.page .post-content .highlight .k{color:#859900}.page .post-content .highlight .kc{color:#859900;font-weight:bold}.page .post-content .highlight .kd{color:#859900}.page .post-content .highlight .kn{color:#dc322f;font-weight:bold}.page .post-content .highlight .kp{color:#859900}.page .post-content .highlight .kr{color:#859900}.page .post-content .highlight .kt{color:#859900;font-weight:bold}.page .post-content .highlight .n{color:#268bd2}.page .post-content .highlight .na{color:#268bd2}.page .post-content .highlight .nb{color:#cb4b16}.page .post-content .highlight .bp{color:#268bd2}.page .post-content .highlight .nc{color:#cb4b16}.page .post-content .highlight .no{color:#268bd2}.page .post-content .highlight .nd{color:#268bd2}.page .post-content .highlight .ni{color:#268bd2}.page .post-content .highlight .ne{color:#268bd2}.page .post-content .highlight .nf{color:#268bd2}.page .post-content .highlight .fm{color:#268bd2}.page .post-content .highlight .nl{color:#268bd2}.page .post-content .highlight .nn{color:#268bd2}.page .post-content .highlight .nx{color:#268bd2}.page .post-content .highlight .py{color:#268bd2}.page .post-content .highlight .nt{color:#268bd2;font-weight:bold}.page .post-content .highlight .nv{color:#268bd2}.page .post-content .highlight .vc{color:#268bd2}.page .post-content .highlight .vg{color:#268bd2}.page .post-content .highlight .vi{color:#268bd2}.page .post-content .highlight .vm{color:#268bd2}.page .post-content .highlight .l{color:#2aa198}.page .post-content .highlight .ld{color:#2aa198}.page .post-content .highlight .s{color:#2aa198}.page .post-content .highlight .sa{color:#2aa198}.page .post-content .highlight .sb{color:#2aa198}.page .post-content .highlight .sc{color:#2aa198}.page .post-content .highlight .dl{color:#2aa198}.page .post-content .highlight .sd{color:#2aa198}.page .post-content .highlight .s2{color:#2aa198}.page .post-content .highlight .se{color:#2aa198}.page .post-content .highlight .sh{color:#2aa198}.page .post-content .highlight .si{color:#2aa198}.page .post-content .highlight .sx{color:#2aa198}.page .post-content .highlight .sr{color:#2aa198}.page .post-content .highlight .s1{color:#2aa198}.page .post-content .highlight .ss{color:#2aa198}.page .post-content .highlight .m{color:#2aa198;font-weight:bold}.page .post-content .highlight .mb{color:#2aa198;font-weight:bold}.page .post-content .highlight .mf{color:#2aa198;font-weight:bold}.page .post-content .highlight .mh{color:#2aa198;font-weight:bold}.page .post-content .highlight .mi{color:#2aa198;font-weight:bold}.page .post-content .highlight .il{color:#2aa198;font-weight:bold}.page .post-content .highlight .mo{color:#2aa198;font-weight:bold}.page .post-content .highlight .ow{color:#859900}.page .post-content .highlight .c{color:#93a1a1;font-style:italic}.page .post-content .highlight .ch{color:#93a1a1;font-style:italic}.page .post-content .highlight .cm{color:#93a1a1;font-style:italic}.page .post-content .highlight .c1{color:#93a1a1;font-style:italic}.page .post-content .highlight .cs{color:#93a1a1;font-style:italic}.page .post-content .highlight .cp{color:#93a1a1;font-style:italic}.page .post-content .highlight .cpf{color:#93a1a1;font-style:italic}.page .post-content .highlight .g{color:#d33682}.page .post-content .highlight .gd{color:#b58900}.page .post-content .highlight .ge{color:#d33682}.page .post-content .highlight .gr{color:#d33682}.page .post-content .highlight .gh{color:#d33682}.page .post-content .highlight .gi{color:#859900}.page .post-content .highlight .go{color:#d33682}.page .post-content .highlight .gp{color:#d33682}.page .post-content .highlight .gs{color:#d33682}.page .post-content .highlight .gu{color:#d33682}.page .post-content .highlight .gt{color:#d33682}.dark-theme .page .post-content .highlight{background:#272C34}.dark-theme .page .post-content .highlight .p{color:#A9A9B3}.dark-theme .page .post-content .highlight .k{color:#D371E3}.dark-theme .page .post-content .highlight .kc{color:#D371E3}.dark-theme .page .post-content .highlight .kd{color:#D371E3}.dark-theme .page .post-content .highlight .kn{color:#D371E3}.dark-theme .page .post-content .highlight .kp{color:#D371E3}.dark-theme .page .post-content .highlight .kr{color:#D371E3}.dark-theme .page .post-content .highlight .kt{color:#8be9fd}.dark-theme .page .post-content .highlight .na{color:#41B1F5}.dark-theme .page .post-content .highlight .nb{color:#8be9fd;font-style:italic}.dark-theme .page .post-content .highlight .nc{color:#E5BF78}.dark-theme .page .post-content .highlight .nf{color:#19B8C0}.dark-theme .page .post-content .highlight .nx{color:#F16473}.dark-theme .page .post-content .highlight .nl{color:#8be9fd;font-style:italic}.dark-theme .page .post-content .highlight .nt{color:#D371E3}.dark-theme .page .post-content .highlight .nv{color:#8be9fd;font-style:italic}.dark-theme .page .post-content .highlight .vc{color:#8be9fd;font-style:italic}.dark-theme .page .post-content .highlight .vg{color:#8be9fd;font-style:italic}.dark-theme .page .post-content .highlight .vi{color:#8be9fd;font-style:italic}.dark-theme .page .post-content .highlight .s{color:#8BC56F}.dark-theme .page .post-content .highlight .sa{color:#8BC56F}.dark-theme .page .post-content .highlight .sb{color:#8BC56F}.dark-theme .page .post-content .highlight .sc{color:#8BC56F}.dark-theme .page .post-content .highlight .dl{color:#8BC56F}.dark-theme .page .post-content .highlight .sd{color:#8BC56F}.dark-theme .page .post-content .highlight .s2{color:#8BC56F}.dark-theme .page .post-content .highlight .se{color:#8BC56F}.dark-theme .page .post-content .highlight .sh{color:#8BC56F}.dark-theme .page .post-content .highlight .si{color:#8BC56F}.dark-theme .page .post-content .highlight .sx{color:#8BC56F}.dark-theme .page .post-content .highlight .sr{color:#8BC56F}.dark-theme .page .post-content .highlight .s1{color:#8BC56F}.dark-theme .page .post-content .highlight .ss{color:#8BC56F}.dark-theme .page .post-content .highlight .m{color:#bd93f9}.dark-theme .page .post-content .highlight .mb{color:#bd93f9}.dark-theme .page .post-content .highlight .mf{color:#bd93f9}.dark-theme .page .post-content .highlight .mh{color:#bd93f9}.dark-theme .page .post-content .highlight .mi{color:#bd93f9}.dark-theme .page .post-content .highlight .il{color:#bd93f9}.dark-theme .page .post-content .highlight .mo{color:#bd93f9}.dark-theme .page .post-content .highlight .o{color:#D371E3}.dark-theme .page .post-content .highlight .ow{color:#D371E3}.dark-theme .page .post-content .highlight .c{color:#7E848F}.dark-theme .page .post-content .highlight .ch{color:#7E848F}.dark-theme .page .post-content .highlight .cm{color:#7E848F}.dark-theme .page .post-content .highlight .c1{color:#7E848F}.dark-theme .page .post-content .highlight .cs{color:#7E848F}.dark-theme .page .post-content .highlight .cp{color:#D371E3}.dark-theme .page .post-content .highlight .cpf{color:#D371E3}.dark-theme .page .post-content .highlight .gd{color:#8b080b}.dark-theme .page .post-content .highlight .ge{text-decoration:underline}.dark-theme .page .post-content .highlight .gh{font-weight:bold}.dark-theme .page .post-content .highlight .gi{font-weight:bold}.dark-theme .page .post-content .highlight .go{color:#44475a}.dark-theme .page .post-content .highlight .gu{font-weight:bold}.dark-theme .page .post-content .highlight .gl{text-decoration:underline}.page .post-content .admonition{position:relative;margin:.9765em 0;padding:0 .75rem;background-color:rgba(68,138,255,0.1);border-left:0.25rem solid #448aff;overflow:auto}.page .post-content .admonition .admonition-title{margin:0 -0.75rem;padding:.5rem .75rem .5rem 2.5rem;border-bottom:0.1rem solid rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.1);font-weight:700}.page .post-content .admonition i.icon{font-size:16px;color:#448aff;cursor:auto;position:absolute;left:.75rem;top:.75rem}.page .post-content .admonition.note{border-left-color:#448aff}.page .post-content .admonition.note i.icon{color:#448aff}.page .post-content .admonition.abstract{border-left-color:#00b0ff}.page .post-content .admonition.abstract i.icon{color:#00b0ff}.page .post-content .admonition.info{border-left-color:#00b8d4}.page .post-content .admonition.info i.icon{color:#00b8d4}.page .post-content .admonition.tip{border-left-color:#00bfa5}.page .post-content .admonition.tip i.icon{color:#00bfa5}.page .post-content .admonition.success{border-left-color:#00c853}.page .post-content .admonition.success i.icon{color:#00c853}.page .post-content .admonition.question{border-left-color:#64dd17}.page .post-content .admonition.question i.icon{color:#64dd17}.page .post-content .admonition.warning{border-left-color:#ff9100}.page .post-content .admonition.warning i.icon{color:#ff9100}.page .post-content .admonition.failure{border-left-color:#ff5252}.page .post-content .admonition.failure i.icon{color:#ff5252}.page .post-content .admonition.danger{border-left-color:#ff1744}.page .post-content .admonition.danger i.icon{color:#ff1744}.page .post-content .admonition.bug{border-left-color:#f50057}.page .post-content .admonition.bug i.icon{color:#f50057}.page .post-content .admonition.example{border-left-color:#651fff}.page .post-content .admonition.example i.icon{color:#651fff}.page .post-content .admonition.quote{border-left-color:#9e9e9e}.page .post-content .admonition.quote i.icon{color:#9e9e9e}.page .post-content .admonition.note{background-color:rgba(68,138,255,0.1)}.page .post-content .admonition.note .admonition-title{border-bottom-color:rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.1)}.page .post-content .admonition.abstract{background-color:rgba(0,176,255,0.1)}.page .post-content .admonition.abstract .admonition-title{border-bottom-color:rgba(0,176,255,0.1);background-color:rgba(0,176,255,0.1)}.page .post-content .admonition.info{background-color:rgba(0,184,212,0.1)}.page .post-content .admonition.info .admonition-title{border-bottom-color:rgba(0,184,212,0.1);background-color:rgba(0,184,212,0.1)}.page .post-content .admonition.tip{background-color:rgba(0,191,165,0.1)}.page .post-content .admonition.tip .admonition-title{border-bottom-color:rgba(0,191,165,0.1);background-color:rgba(0,191,165,0.1)}.page .post-content .admonition.success{background-color:rgba(0,200,83,0.1)}.page .post-content .admonition.success .admonition-title{border-bottom-color:rgba(0,200,83,0.1);background-color:rgba(0,200,83,0.1)}.page .post-content .admonition.question{background-color:rgba(100,221,23,0.1)}.page .post-content .admonition.question .admonition-title{border-bottom-color:rgba(100,221,23,0.1);background-color:rgba(100,221,23,0.1)}.page .post-content .admonition.warning{background-color:rgba(255,145,0,0.1)}.page .post-content .admonition.warning .admonition-title{border-bottom-color:rgba(255,145,0,0.1);background-color:rgba(255,145,0,0.1)}.page .post-content .admonition.failure{background-color:rgba(255,82,82,0.1)}.page .post-content .admonition.failure .admonition-title{border-bottom-color:rgba(255,82,82,0.1);background-color:rgba(255,82,82,0.1)}.page .post-content .admonition.danger{background-color:rgba(255,23,68,0.1)}.page .post-content .admonition.danger .admonition-title{border-bottom-color:rgba(255,23,68,0.1);background-color:rgba(255,23,68,0.1)}.page .post-content .admonition.bug{background-color:rgba(245,0,87,0.1)}.page .post-content .admonition.bug .admonition-title{border-bottom-color:rgba(245,0,87,0.1);background-color:rgba(245,0,87,0.1)}.page .post-content .admonition.example{background-color:rgba(101,31,255,0.1)}.page .post-content .admonition.example .admonition-title{border-bottom-color:rgba(101,31,255,0.1);background-color:rgba(101,31,255,0.1)}.page .post-content .admonition.quote{background-color:rgba(158,158,158,0.1)}.page .post-content .admonition.quote .admonition-title{border-bottom-color:rgba(158,158,158,0.1);background-color:rgba(158,158,158,0.1)}.page .post-content .admonition:last-child{margin-bottom:.75rem}.page .post-content details.admonition summary{display:block;outline:none;cursor:pointer}.page .post-content details.admonition summary::-webkit-details-marker{display:none}.page .post-content details.admonition summary i.details{position:absolute;top:.75rem;right:.75rem;color:#161209}.dark-theme .page .post-content details.admonition summary i.details{color:#a9a9b3}.page .post-content details.admonition[open] i.details{transform:rotate(180deg)}.page .post-content .mermaid{width:100%;margin:3% auto;text-align:center}.page .post-content .mermaid .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);color:#333}.page .post-content .mermaid .label text{fill:#333}.page .post-content .mermaid .node rect,.page .post-content .mermaid .node circle,.page .post-content .mermaid .node ellipse,.page .post-content .mermaid .node polygon{fill:#eee;stroke:#999;stroke-width:1px}.page .post-content .mermaid .node .label{text-align:center}.page .post-content .mermaid .node.clickable{cursor:pointer}.page .post-content .mermaid .arrowheadPath{fill:#333}.page .post-content .mermaid .edgePath .path{stroke:#666;stroke-width:1.5px}.page .post-content .mermaid .edgeLabel{background-color:#fff;text-align:center}.page .post-content .mermaid .cluster rect{fill:#eaf2fb;stroke:#26a;stroke-width:1px}.page .post-content .mermaid .cluster text{fill:#333}.page .post-content .mermaid div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#eaf2fb;border:1px solid #26a;border-radius:2px;pointer-events:none;z-index:100}.page .post-content .mermaid .actor{stroke:#999;fill:#eee}.page .post-content .mermaid text.actor{fill:#333;stroke:none}.page .post-content .mermaid .actor-line{stroke:#666}.page .post-content .mermaid .messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.page .post-content .mermaid .messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.page .post-content .mermaid #arrowhead{fill:#333}.page .post-content .mermaid .sequenceNumber{fill:#fff}.page .post-content .mermaid #sequencenumber{fill:#333}.page .post-content .mermaid #crosshead path{fill:#333 !important;stroke:#333 !important}.page .post-content .mermaid .messageText{fill:#333;stroke:none}.page .post-content .mermaid .labelBox{stroke:#999;fill:#eee}.page .post-content .mermaid .labelText{fill:#333;stroke:none}.page .post-content .mermaid .loopText{fill:#333;stroke:none}.page .post-content .mermaid .loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#999}.page .post-content .mermaid .note{stroke:#770;fill:#ffa}.page .post-content .mermaid .noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:14px}.page .post-content .mermaid .activation0{fill:#f4f4f4;stroke:#666}.page .post-content .mermaid .activation1{fill:#f4f4f4;stroke:#666}.page .post-content .mermaid .activation2{fill:#f4f4f4;stroke:#666}.page .post-content .mermaid .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}.page .post-content .mermaid .section{stroke:none;opacity:0.2}.page .post-content .mermaid .section0{fill:#80b3e6}.page .post-content .mermaid .section2{fill:#80b3e6}.page .post-content .mermaid .section1,.page .post-content .mermaid .section3{fill:#fff;opacity:0.2}.page .post-content .mermaid .sectionTitle0{fill:#333}.page .post-content .mermaid .sectionTitle1{fill:#333}.page .post-content .mermaid .sectionTitle2{fill:#333}.page .post-content .mermaid .sectionTitle3{fill:#333}.page .post-content .mermaid .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .post-content .mermaid .grid .tick{stroke:#e6e5e5;opacity:0.3;shape-rendering:crispEdges}.page .post-content .mermaid .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .post-content .mermaid .grid path{stroke-width:0}.page .post-content .mermaid .today{fill:none;stroke:#d42;stroke-width:2px}.page .post-content .mermaid .task{stroke-width:2}.page .post-content .mermaid .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .post-content .mermaid .taskText:not([font-size]){font-size:11px}.page .post-content .mermaid .taskTextOutsideRight{fill:#333;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .post-content .mermaid .taskTextOutsideLeft{fill:#333;text-anchor:end;font-size:11px}.page .post-content .mermaid .task.clickable{cursor:pointer}.page .post-content .mermaid .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.page .post-content .mermaid .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.page .post-content .mermaid .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.page .post-content .mermaid .taskText0,.page .post-content .mermaid .taskText1,.page .post-content .mermaid .taskText2,.page .post-content .mermaid .taskText3{fill:#fff}.page .post-content .mermaid .task0,.page .post-content .mermaid .task1,.page .post-content .mermaid .task2,.page .post-content .mermaid .task3{fill:#26a;stroke:#1a4d80}.page .post-content .mermaid .taskTextOutside0,.page .post-content .mermaid .taskTextOutside2{fill:#333}.page .post-content .mermaid .taskTextOutside1,.page .post-content .mermaid .taskTextOutside3{fill:#333}.page .post-content .mermaid .active0,.page .post-content .mermaid .active1,.page .post-content .mermaid .active2,.page .post-content .mermaid .active3{fill:#eee;stroke:#1a4d80}.page .post-content .mermaid .activeText0,.page .post-content .mermaid .activeText1,.page .post-content .mermaid .activeText2,.page .post-content .mermaid .activeText3{fill:#333 !important}.page .post-content .mermaid .done0,.page .post-content .mermaid .done1,.page .post-content .mermaid .done2,.page .post-content .mermaid .done3{stroke:#666;fill:#bbb;stroke-width:2}.page .post-content .mermaid .doneText0,.page .post-content .mermaid .doneText1,.page .post-content .mermaid .doneText2,.page .post-content .mermaid .doneText3{fill:#333 !important}.page .post-content .mermaid .crit0,.page .post-content .mermaid .crit1,.page .post-content .mermaid .crit2,.page .post-content .mermaid .crit3{stroke:#b1361b;fill:#d42;stroke-width:2}.page .post-content .mermaid .activeCrit0,.page .post-content .mermaid .activeCrit1,.page .post-content .mermaid .activeCrit2,.page .post-content .mermaid .activeCrit3{stroke:#b1361b;fill:#eee;stroke-width:2}.page .post-content .mermaid .doneCrit0,.page .post-content .mermaid .doneCrit1,.page .post-content .mermaid .doneCrit2,.page .post-content .mermaid .doneCrit3{stroke:#b1361b;fill:#bbb;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.page .post-content .mermaid .milestone{transform:rotate(45deg) scale(0.8, 0.8)}.page .post-content .mermaid .milestoneText{font-style:italic}.page .post-content .mermaid .doneCritText0,.page .post-content .mermaid .doneCritText1,.page .post-content .mermaid .doneCritText2,.page .post-content .mermaid .doneCritText3{fill:#333 !important}.page .post-content .mermaid .activeCritText0,.page .post-content .mermaid .activeCritText1,.page .post-content .mermaid .activeCritText2,.page .post-content .mermaid .activeCritText3{fill:#333 !important}.page .post-content .mermaid .titleText{text-anchor:middle;font-size:18px;fill:#333;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .post-content .mermaid g.classGroup text{fill:#999;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}.page .post-content .mermaid g.classGroup text .title{font-weight:bolder}.page .post-content .mermaid g.classGroup rect{fill:#eee;stroke:#999}.page .post-content .mermaid g.classGroup line{stroke:#999;stroke-width:1}.page .post-content .mermaid .classLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:0.5}.page .post-content .mermaid .classLabel .label{fill:#999;font-size:10px}.page .post-content .mermaid .relation{stroke:#999;stroke-width:1;fill:none}.page .post-content .mermaid #compositionStart{fill:#999;stroke:#999;stroke-width:1}.page .post-content .mermaid #compositionEnd{fill:#999;stroke:#999;stroke-width:1}.page .post-content .mermaid #aggregationStart{fill:#eee;stroke:#999;stroke-width:1}.page .post-content .mermaid #aggregationEnd{fill:#eee;stroke:#999;stroke-width:1}.page .post-content .mermaid #dependencyStart{fill:#999;stroke:#999;stroke-width:1}.page .post-content .mermaid #dependencyEnd{fill:#999;stroke:#999;stroke-width:1}.page .post-content .mermaid #extensionStart{fill:#999;stroke:#999;stroke-width:1}.page .post-content .mermaid #extensionEnd{fill:#999;stroke:#999;stroke-width:1}.page .post-content .mermaid .commit-id,.page .post-content .mermaid .commit-msg,.page .post-content .mermaid .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .post-content .mermaid .pieTitleText{text-anchor:middle;font-size:25px;fill:#333;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .post-content .mermaid .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .post-content .mermaid g.stateGroup text{fill:#999;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .post-content .mermaid g.stateGroup text{fill:#999;stroke:none;font-size:10px}.page .post-content .mermaid g.stateGroup .state-title{font-weight:bolder;fill:#000}.page .post-content .mermaid g.stateGroup rect{fill:#eee;stroke:#999}.page .post-content .mermaid g.stateGroup line{stroke:#999;stroke-width:1}.page .post-content .mermaid .transition{stroke:#999;stroke-width:1;fill:none}.page .post-content .mermaid .stateGroup .composit{fill:white;border-bottom:1px}.page .post-content .mermaid .state-note{stroke:#770;fill:#ffa}.page .post-content .mermaid .state-note text{fill:black;stroke:none;font-size:10px}.page .post-content .mermaid .stateLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:0.5}.page .post-content .mermaid .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .post-content .mermaid :root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}.dark-theme .page .post-content .mermaid .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);color:#333}.dark-theme .page .post-content .mermaid .label text{fill:#333}.dark-theme .page .post-content .mermaid .node rect,.dark-theme .page .post-content .mermaid .node circle,.dark-theme .page .post-content .mermaid .node ellipse,.dark-theme .page .post-content .mermaid .node polygon{fill:#BDD5EA;stroke:purple;stroke-width:1px}.dark-theme .page .post-content .mermaid .node .label{text-align:center}.dark-theme .page .post-content .mermaid .node.clickable{cursor:pointer}.dark-theme .page .post-content .mermaid .arrowheadPath{fill:#d3d3d3}.dark-theme .page .post-content .mermaid .edgePath .path{stroke:#d3d3d3;stroke-width:1.5px}.dark-theme .page .post-content .mermaid .edgeLabel{background-color:#e8e8e8;text-align:center}.dark-theme .page .post-content .mermaid .cluster rect{fill:#6D6D65;stroke:rgba(255,255,255,0.25);stroke-width:1px}.dark-theme .page .post-content .mermaid .cluster text{fill:#F9FFFE}.dark-theme .page .post-content .mermaid div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#6D6D65;border:1px solid rgba(255,255,255,0.25);border-radius:2px;pointer-events:none;z-index:100}.dark-theme .page .post-content .mermaid .actor{stroke:#81B1DB;fill:#BDD5EA}.dark-theme .page .post-content .mermaid text.actor{fill:#000;stroke:none}.dark-theme .page .post-content .mermaid .actor-line{stroke:#d3d3d3}.dark-theme .page .post-content .mermaid .messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#d3d3d3}.dark-theme .page .post-content .mermaid .messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#d3d3d3}.dark-theme .page .post-content .mermaid #arrowhead{fill:#d3d3d3}.dark-theme .page .post-content .mermaid .sequenceNumber{fill:#fff}.dark-theme .page .post-content .mermaid #sequencenumber{fill:#d3d3d3}.dark-theme .page .post-content .mermaid #crosshead path{fill:#d3d3d3 !important;stroke:#d3d3d3 !important}.dark-theme .page .post-content .mermaid .messageText{fill:#d3d3d3;stroke:none}.dark-theme .page .post-content .mermaid .labelBox{stroke:#81B1DB;fill:#BDD5EA}.dark-theme .page .post-content .mermaid .labelText{fill:#323D47;stroke:none}.dark-theme .page .post-content .mermaid .loopText{fill:#d3d3d3;stroke:none}.dark-theme .page .post-content .mermaid .loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#81B1DB}.dark-theme .page .post-content .mermaid .note{stroke:rgba(255,255,255,0.25);fill:#fff5ad}.dark-theme .page .post-content .mermaid .noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:14px}.dark-theme .page .post-content .mermaid .activation0{fill:#f4f4f4;stroke:#666}.dark-theme .page .post-content .mermaid .activation1{fill:#f4f4f4;stroke:#666}.dark-theme .page .post-content .mermaid .activation2{fill:#f4f4f4;stroke:#666}.dark-theme .page .post-content .mermaid .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .post-content .mermaid .section{stroke:none;opacity:0.2}.dark-theme .page .post-content .mermaid .section0{fill:rgba(255,255,255,0.3)}.dark-theme .page .post-content .mermaid .section2{fill:#EAE8B9}.dark-theme .page .post-content .mermaid .section1,.dark-theme .page .post-content .mermaid .section3{fill:#fff;opacity:0.2}.dark-theme .page .post-content .mermaid .sectionTitle0{fill:#F9FFFE}.dark-theme .page .post-content .mermaid .sectionTitle1{fill:#F9FFFE}.dark-theme .page .post-content .mermaid .sectionTitle2{fill:#F9FFFE}.dark-theme .page .post-content .mermaid .sectionTitle3{fill:#F9FFFE}.dark-theme .page .post-content .mermaid .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .post-content .mermaid .grid .tick{stroke:#d3d3d3;opacity:0.3;shape-rendering:crispEdges}.dark-theme .page .post-content .mermaid .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .post-content .mermaid .grid path{stroke-width:0}.dark-theme .page .post-content .mermaid .today{fill:none;stroke:#DB5757;stroke-width:2px}.dark-theme .page .post-content .mermaid .task{stroke-width:2}.dark-theme .page .post-content .mermaid .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .post-content .mermaid .taskText:not([font-size]){font-size:11px}.dark-theme .page .post-content .mermaid .taskTextOutsideRight{fill:#323D47;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .post-content .mermaid .taskTextOutsideLeft{fill:#323D47;text-anchor:end;font-size:11px}.dark-theme .page .post-content .mermaid .task.clickable{cursor:pointer}.dark-theme .page .post-content .mermaid .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.dark-theme .page .post-content .mermaid .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.dark-theme .page .post-content .mermaid .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.dark-theme .page .post-content .mermaid .taskText0,.dark-theme .page .post-content .mermaid .taskText1,.dark-theme .page .post-content .mermaid .taskText2,.dark-theme .page .post-content .mermaid .taskText3{fill:#323D47}.dark-theme .page .post-content .mermaid .task0,.dark-theme .page .post-content .mermaid .task1,.dark-theme .page .post-content .mermaid .task2,.dark-theme .page .post-content .mermaid .task3{fill:#BDD5EA;stroke:rgba(255,255,255,0.5)}.dark-theme .page .post-content .mermaid .taskTextOutside0,.dark-theme .page .post-content .mermaid .taskTextOutside2{fill:#d3d3d3}.dark-theme .page .post-content .mermaid .taskTextOutside1,.dark-theme .page .post-content .mermaid .taskTextOutside3{fill:#d3d3d3}.dark-theme .page .post-content .mermaid .active0,.dark-theme .page .post-content .mermaid .active1,.dark-theme .page .post-content .mermaid .active2,.dark-theme .page .post-content .mermaid .active3{fill:#81B1DB;stroke:rgba(255,255,255,0.5)}.dark-theme .page .post-content .mermaid .activeText0,.dark-theme .page .post-content .mermaid .activeText1,.dark-theme .page .post-content .mermaid .activeText2,.dark-theme .page .post-content .mermaid .activeText3{fill:#323D47 !important}.dark-theme .page .post-content .mermaid .done0,.dark-theme .page .post-content .mermaid .done1,.dark-theme .page .post-content .mermaid .done2,.dark-theme .page .post-content .mermaid .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}.dark-theme .page .post-content .mermaid .doneText0,.dark-theme .page .post-content .mermaid .doneText1,.dark-theme .page .post-content .mermaid .doneText2,.dark-theme .page .post-content .mermaid .doneText3{fill:#323D47 !important}.dark-theme .page .post-content .mermaid .crit0,.dark-theme .page .post-content .mermaid .crit1,.dark-theme .page .post-content .mermaid .crit2,.dark-theme .page .post-content .mermaid .crit3{stroke:#E83737;fill:#E83737;stroke-width:2}.dark-theme .page .post-content .mermaid .activeCrit0,.dark-theme .page .post-content .mermaid .activeCrit1,.dark-theme .page .post-content .mermaid .activeCrit2,.dark-theme .page .post-content .mermaid .activeCrit3{stroke:#E83737;fill:#81B1DB;stroke-width:2}.dark-theme .page .post-content .mermaid .doneCrit0,.dark-theme .page .post-content .mermaid .doneCrit1,.dark-theme .page .post-content .mermaid .doneCrit2,.dark-theme .page .post-content .mermaid .doneCrit3{stroke:#E83737;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.dark-theme .page .post-content .mermaid .milestone{transform:rotate(45deg) scale(0.8, 0.8)}.dark-theme .page .post-content .mermaid .milestoneText{font-style:italic}.dark-theme .page .post-content .mermaid .doneCritText0,.dark-theme .page .post-content .mermaid .doneCritText1,.dark-theme .page .post-content .mermaid .doneCritText2,.dark-theme .page .post-content .mermaid .doneCritText3{fill:#323D47 !important}.dark-theme .page .post-content .mermaid .activeCritText0,.dark-theme .page .post-content .mermaid .activeCritText1,.dark-theme .page .post-content .mermaid .activeCritText2,.dark-theme .page .post-content .mermaid .activeCritText3{fill:#323D47 !important}.dark-theme .page .post-content .mermaid .titleText{text-anchor:middle;font-size:18px;fill:#323D47;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .post-content .mermaid g.classGroup text{fill:purple;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}.dark-theme .page .post-content .mermaid g.classGroup text .title{font-weight:bolder}.dark-theme .page .post-content .mermaid g.classGroup rect{fill:#BDD5EA;stroke:purple}.dark-theme .page .post-content .mermaid g.classGroup line{stroke:purple;stroke-width:1}.dark-theme .page .post-content .mermaid .classLabel .box{stroke:none;stroke-width:0;fill:#BDD5EA;opacity:0.5}.dark-theme .page .post-content .mermaid .classLabel .label{fill:purple;font-size:10px}.dark-theme .page .post-content .mermaid .relation{stroke:purple;stroke-width:1;fill:none}.dark-theme .page .post-content .mermaid #compositionStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .page .post-content .mermaid #compositionEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .page .post-content .mermaid #aggregationStart{fill:#BDD5EA;stroke:purple;stroke-width:1}.dark-theme .page .post-content .mermaid #aggregationEnd{fill:#BDD5EA;stroke:purple;stroke-width:1}.dark-theme .page .post-content .mermaid #dependencyStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .page .post-content .mermaid #dependencyEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .page .post-content .mermaid #extensionStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .page .post-content .mermaid #extensionEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .page .post-content .mermaid .commit-id,.dark-theme .page .post-content .mermaid .commit-msg,.dark-theme .page .post-content .mermaid .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .post-content .mermaid .pieTitleText{text-anchor:middle;font-size:25px;fill:#323D47;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .post-content .mermaid .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .post-content .mermaid g.stateGroup text{fill:purple;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .post-content .mermaid g.stateGroup text{fill:purple;stroke:none;font-size:10px}.dark-theme .page .post-content .mermaid g.stateGroup .state-title{font-weight:bolder;fill:#000}.dark-theme .page .post-content .mermaid g.stateGroup rect{fill:#BDD5EA;stroke:purple}.dark-theme .page .post-content .mermaid g.stateGroup line{stroke:purple;stroke-width:1}.dark-theme .page .post-content .mermaid .transition{stroke:purple;stroke-width:1;fill:none}.dark-theme .page .post-content .mermaid .stateGroup .composit{fill:white;border-bottom:1px}.dark-theme .page .post-content .mermaid .state-note{stroke:rgba(255,255,255,0.25);fill:#fff5ad}.dark-theme .page .post-content .mermaid .state-note text{fill:black;stroke:none;font-size:10px}.dark-theme .page .post-content .mermaid .stateLabel .box{stroke:none;stroke-width:0;fill:#BDD5EA;opacity:0.5}.dark-theme .page .post-content .mermaid .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .post-content .mermaid :root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}.dark-theme .page .post-content .aplayer{background:#212121}.dark-theme .page .post-content .aplayer.aplayer-withlist .aplayer-info{border-bottom-color:#5c5c5c}.dark-theme .page .post-content .aplayer.aplayer-fixed .aplayer-list{border-color:#5c5c5c}.dark-theme .page .post-content .aplayer .aplayer-body{background-color:#212121}.dark-theme .page .post-content .aplayer .aplayer-info{border-top-color:#212121}.dark-theme .page .post-content .aplayer .aplayer-info .aplayer-music .aplayer-title{color:#fff}.dark-theme .page .post-content .aplayer .aplayer-info .aplayer-music .aplayer-author{color:#fff}.dark-theme .page .post-content .aplayer .aplayer-info .aplayer-controller .aplayer-time{color:#eee}.dark-theme .page .post-content .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path{fill:#eee}.dark-theme .page .post-content .aplayer .aplayer-list{background-color:#212121}.dark-theme .page .post-content .aplayer .aplayer-list::-webkit-scrollbar-thumb{background-color:#999}.dark-theme .page .post-content .aplayer .aplayer-list::-webkit-scrollbar-thumb:hover{background-color:#bbb}.dark-theme .page .post-content .aplayer .aplayer-list li{color:#fff;border-top-color:#666}.dark-theme .page .post-content .aplayer .aplayer-list li:hover{background:#4e4e4e}.dark-theme .page .post-content .aplayer .aplayer-list li.aplayer-list-light{background:#6c6c6c}.dark-theme .page .post-content .aplayer .aplayer-list li .aplayer-list-index{color:#ddd}.dark-theme .page .post-content .aplayer .aplayer-list li .aplayer-list-author{color:#ddd}.dark-theme .page .post-content .aplayer .aplayer-lrc{text-shadow:-1px -1px 0 #666}.dark-theme .page .post-content .aplayer .aplayer-lrc:before{background:-moz-linear-gradient(top, #212121 0%, rgba(33,33,33,0) 100%);background:-webkit-linear-gradient(top, #212121 0%, rgba(33,33,33,0) 100%);background:linear-gradient(to bottom, #212121 0%, rgba(33,33,33,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#212121', endColorstr='#00212121',GradientType=0 )}.dark-theme .page .post-content .aplayer .aplayer-lrc:after{background:-moz-linear-gradient(top, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%);background:-webkit-linear-gradient(top, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%);background:linear-gradient(to bottom, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00212121', endColorstr='#cc212121',GradientType=0 )}.dark-theme .page .post-content .aplayer .aplayer-lrc p{color:#fff}.dark-theme .page .post-content .aplayer .aplayer-miniswitcher{background:#484848}.dark-theme .page .post-content .aplayer .aplayer-miniswitcher .aplayer-icon path{fill:#eee}.page .post-content .echarts{width:100%;height:30rem;margin:3% auto;text-align:center}.page .post-content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.page .post-content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.page .post-content hr{margin:1rem 0;position:relative;border-top:1px dashed #dcdcdc;border-bottom:none}.dark-theme .page .post-content hr{border-top:1px dashed #4a4b50}.page .post-content kbd{display:inline-block;padding:.25em;background-color:#fff;border:1px solid #dcdcdc;border-bottom-color:#dcdcdc;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 #dcdcdc;box-shadow:inset 0 -1px 0 #dcdcdc;font-size:.8em;line-height:1.25rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace;color:#E74C3C}.dark-theme .page .post-content kbd{background-color:#292a2d;border:1px solid #4a4b50;border-bottom-color:#4a4b50;-webkit-box-shadow:inset 0 -1px 0 #4a4b50;box-shadow:inset 0 -1px 0 #4a4b50;color:#E5BF78}.page .post-content .typeit .code{padding:.375rem;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace;font-weight:bold;word-break:break-all}.page .post-content .align-left{text-align:left}.page .post-content .align-center{text-align:center}.page .post-content .align-right{text-align:right}.page .post-content .float-left{float:left}.page .post-content .float-right{float:right}.page .post-footer{margin-top:3rem}.page .post-footer .post-info{border-bottom:1px solid #dcdcdc;padding:1rem 0 0.3rem}.dark-theme .page .post-footer .post-info{border-bottom:1px solid #4a4b50}.page .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.page .post-footer .post-info .post-info-line .post-info-mod{font-size:0.8em;color:#a9a9b3}.dark-theme .page .post-footer .post-info .post-info-line .post-info-mod{color:#5d5d5f}.page .post-footer .post-info .post-info-line .post-info-license{font-size:0.8em;color:#a9a9b3}.dark-theme .page .post-footer .post-info .post-info-line .post-info-license{color:#5d5d5f}.page .post-footer .post-info .post-info-line .post-info-md a{font-size:0.8em;color:#2d96bd}.dark-theme .page .post-footer .post-info .post-info-line .post-info-md a{color:#eee}.page .post-footer .post-info .post-info-line .post-info-md a:hover{color:#ef3982}.dark-theme .page .post-footer .post-info .post-info-line .post-info-md a:hover{color:#2d96bd}.page .post-footer .post-info-more{padding:0.3rem 0 1rem;display:flex;justify-content:space-between;font-size:0.9rem}.page .post-footer .post-nav::before,.page .post-footer .post-nav::after{content:' ';display:table}.page .post-footer .post-nav a.prev,.page .post-footer .post-nav a.next{font-size:1rem;font-weight:600;transition-duration:.3s;transition-property:transform;transition-timing-function:ease-out}.page .post-footer .post-nav a.prev{float:left}.page .post-footer .post-nav a.prev:hover{transform:translateX(-4px)}.page .post-footer .post-nav a.next{float:right}.page .post-footer .post-nav a.next:hover{transform:translateX(4px)}.page .post-comment{padding:4rem 0}.page .home-intro{transform:translateY(0);padding:2rem 0 2rem 0}.page .home-intro .home-avatar img{width:6rem}.page .post{padding-top:1rem;padding-bottom:.8rem;color:#161209;border-bottom:1px dashed #dcdcdc}.dark-theme .page .post{color:#a9a9b3;border-bottom:1px dashed #4a4b50}.page .post .post-featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin:0.6rem auto}.page .post .post-featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;object-fit:cover}.page .post .post-list-title{font-size:1.6rem}.page .post .post-meta{font-size:.875rem !important}.page .post .post-meta a{color:#a9a9b3 !important}.dark-theme .page .post .post-meta a{color:#5d5d5f !important}.page .post .post-meta a:hover{color:#2d96bd !important}.dark-theme .page .post .post-meta a:hover{color:#fff !important}.page .post .post-content{padding-top:.2rem;font-size:.9rem;width:100%;max-height:7rem;overflow:hidden}.page .post .post-content h2,.page .post .post-content h3,.page .post .post-content h4,.page .post .post-content h5,.page .post .post-content h6{font-size:1rem;line-height:1rem;padding-top:.3rem;padding-bottom:.3rem}.page .post .post-content p{margin:0;padding-top:.3rem;padding-bottom:.3rem}.page .post .post-footer{margin-top:.5rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem !important}.page .post .post-footer a{color:#2d96bd !important}.dark-theme .page .post .post-footer a{color:#eee !important}.page .post .post-footer a:hover{color:#ef3982 !important}.dark-theme .page .post .post-footer a:hover{color:#2d96bd !important}.page .post .post-footer .post-tags{padding:0}.page .post .post-footer .post-tags a{color:#161209 !important}.dark-theme .page .post .post-footer .post-tags a{color:#a9a9b3 !important}.page .post .post-footer .post-tags a:hover{color:#2d96bd !important}.dark-theme .page .post .post-footer .post-tags a:hover{color:#fff !important}.archive .post-title{text-align:right;padding-bottom:2rem}.archive .archive-item{margin-left:2rem}.archive .categories-card{margin:0 auto;margin-top:3rem;display:flex;align-items:center;justify-content:space-between;flex-direction:row;flex-wrap:wrap;padding:0 2.5rem;line-height:1.6rem}.archive .categories-card .card-item{font-size:.875rem;text-align:left;width:45%;display:flex;align-items:flex-start;margin-top:2rem;min-height:10rem;padding:0 2%;position:relative}.archive .categories-card .card-item .card-item-wrapper{width:100%;overflow:hidden}.archive .categories-card .card-item .card-item-wrapper .card-item-title{font-size:1.2rem;font-weight:bold;display:inline-block}.archive .categories-card .card-item .card-item-wrapper span{float:right;padding-right:1rem}.archive .archive-item-link{display:inline-block;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:95%}.archive .archive-item-link:hover{color:#2d96bd;background-color:transparent}.dark-theme .archive .archive-item-link{color:#a9a9b3;text-decoration:none;transition:color 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease}.dark-theme .archive .archive-item-link:hover{color:#fff;text-decoration:none;transition:color 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease}.archive .archive-item-date{float:right;text-align:right;color:#a9a9b3}.dark-theme .archive .archive-item-date{color:#5d5d5f}.archive .more-post{text-align:right}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;word-wrap:break-word;transition-duration:.3s;transition-property:transform;transition-timing-function:ease-out}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{color:#2d96bd;transform:scale(1.1)}.dark-theme .archive .tag-cloud-tags a:active,.dark-theme .archive .tag-cloud-tags a:focus,.dark-theme .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a small{color:#a9a9b3}.dark-theme .archive .tag-cloud-tags a small{color:#fff}.single .post-title{text-align:right;padding-bottom:2rem}.navbar{display:block;position:fixed;width:100%;z-index:100;height:4rem;line-height:4rem;background-color:#fafafa}.dark-theme .navbar{background-color:#252627}.navbar .navbar-container{width:auto;text-align:center;margin:0 4rem;display:flex;justify-content:space-between}.navbar .navbar-container .navbar-header a{padding:0 8px;font-size:20px}.navbar .navbar-container .navbar-header a i{line-height:2em}.navbar .navbar-container .navbar-menu a{padding:0 8px}.navbar .navbar-container .navbar-menu a.active{font-weight:900;color:#161209}.dark-theme .navbar .navbar-container .navbar-menu a.active{color:#fff}.navbar-mobile{display:none;position:fixed;width:100%;z-index:100;transition:all 0.3s ease 0s}.navbar-mobile .navbar-container{padding:0;margin:0;height:4.5em;line-height:4.5em;background:#fff}.navbar-mobile .navbar-container .navbar-header{display:flex;justify-content:space-between;align-items:center;width:100%;font-size:18px;padding-right:1em;padding-left:1em;box-sizing:border-box}.navbar-mobile .navbar-container .navbar-header .navbar-header-title{font-size:20px}.navbar-mobile .navbar-container .navbar-header .menu-toggle{cursor:pointer;line-height:4.5em}.navbar-mobile .navbar-container .navbar-header .menu-toggle span{display:block;background:#000;width:24px;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:.2s margin .2s, .2s transform;-moz-transition:.2s margin .2s, .2s transform;transition:.2s margin .2s, .2s transform}.dark-theme .navbar-mobile .navbar-container .navbar-header .menu-toggle span{background:#a9a9b3}.navbar-mobile .navbar-container .navbar-header .menu-toggle span:nth-child(1){margin-bottom:8px}.navbar-mobile .navbar-container .navbar-header .menu-toggle span:nth-child(3){margin-top:8px}.navbar-mobile .navbar-container .navbar-header .menu-toggle.active span{-webkit-transition:.2s margin, .2s transform .2s;-moz-transition:.2s margin, .2s transform .2s;transition:.2s margin, .2s transform .2s}.navbar-mobile .navbar-container .navbar-header .menu-toggle.active span:nth-child(1){-moz-transform:rotate(45deg) translate(4px, 6px);-ms-transform:rotate(45deg) translate(4px, 6px);-webkit-transform:rotate(45deg) translate(4px, 6px);transform:rotate(45deg) translate(4px, 6px)}.navbar-mobile .navbar-container .navbar-header .menu-toggle.active span:nth-child(2){opacity:0}.navbar-mobile .navbar-container .navbar-header .menu-toggle.active span:nth-child(3){-moz-transform:rotate(-45deg) translate(8px, -10px);-ms-transform:rotate(-45deg) translate(8px, -10px);-webkit-transform:rotate(-45deg) translate(8px, -10px);transform:rotate(-45deg) translate(8px, -10px)}.navbar-mobile .navbar-container .navbar-menu{text-align:center;background:#fff;border-top:2px solid #161209;display:none;box-shadow:0px 2px 4px rgba(0,0,0,0.1),0px 4px 8px rgba(0,0,0,0.1)}.navbar-mobile .navbar-container .navbar-menu a{display:block;line-height:2.5em}.navbar-mobile .navbar-container .navbar-menu.active{display:block}.dark-theme .navbar-mobile .navbar-container .navbar-menu{background:#292a2d;border-top:2px solid #a9a9b3}.dark-theme .navbar-mobile .navbar-container{background:#292a2d}.copyright{font-size:.875rem}.copyright .copyright-line{width:100%}.copyright .copyright-line .icp-br{display:none}.dynamic-to-top{display:none;overflow:hidden;width:auto;z-index:90;position:fixed;bottom:2rem;right:2rem;top:auto;left:auto;font-family:sans-serif;font-size:1rem;color:#fff;text-decoration:none;text-shadow:0 1px 0 #333;font-weight:bold;padding:1rem 1rem;border:1px solid #dcdcdc;background:#222;outline:none}.dynamic-to-top:hover{background:#000;cursor:pointer}.dynamic-to-top:active{background:#000;outline:none}.dynamic-to-top:focus,.dynamic-to-top:hover{outline:none}.dynamic-to-top span{display:block;overflow:hidden;width:.875rem;height:.75rem;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAKCAYAAACE2W/HAAAACXBIWXMAAArwAAAK8AFCrDSYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAKVJREFUeNqUz7ENgzAURdErUSXQMgdTZJFIqeg8DFI2YQeEvAEbUJja3y9NEiwCUXIlN/62jww7Saok3Z+r4pckXSRNWpskXb5deClHfeo7ylGrLqnbTmOMs/e+9d63McZ554GOlFLId0IIvXOuAUqgdM41IYQ+P5NSCpjZkitADRTZTwqgznUzWzCzZaMc9dbNbGEYhuuOclQB1OM43gBO/N/5MQAeMwpyB1MtLQAAAABJRU5ErkJggg==") no-repeat center center}.dark-theme .dynamic-to-top{border:1px solid #4a4b50}.pagination{display:flex;flex-direction:row;justify-content:center;list-style:none;white-space:nowrap;width:100%;padding-top:1rem}.pagination a{-webkit-font-smoothing:antialiased;font-size:.8rem;color:#bfbfbf;letter-spacing:.1rem;font-weight:700;padding:5px 5px;text-decoration:none;transition:0.3s}.pagination li{padding-bottom:3px;margin:0 20px;box-sizing:border-box;position:relative;display:inline}.pagination li.disabled{display:none}.pagination li:hover a{color:#000}.dark-theme .pagination li:hover a{color:#fff}.pagination li:before,.pagination li:after{position:absolute;content:"";width:0;height:3px;background:#000;transition:0.3s;bottom:0px}.dark-theme .pagination li:before,.dark-theme .pagination li:after{background:#fff}.pagination li:before .active,.pagination li:after .active{width:100%}.pagination li:before{left:50%}.pagination li:after{right:50%}.pagination li:hover:before,.pagination li:hover:after{width:50%}.pagination li.active a{color:#000}.dark-theme .pagination li.active a{color:#fff}.pagination li.active:before,.pagination li.active:after{width:60%}@media only screen and (max-width: 1800px){.page{max-width:780px}.page .post-toc{width:300px;margin-left:800px}}@media only screen and (max-width: 1440px){.page{max-width:680px}.page .post-toc{width:240px;margin-left:700px}}@media only screen and (max-width: 1200px){.page{max-width:560px}.page .post-toc{width:180px;margin-left:580px}}@media only screen and (max-width: 960px){.navbar .navbar-container{margin:0 1rem}.page{max-width:80%}.page .post-toc{display:none}.page .post-toc-mobile{display:block}}@media only screen and (max-width: 560px){.navbar{display:none}.navbar-mobile{display:block}.page{max-width:100%}.page .categories-card .card-item{width:100%}.copyright .copyright-line .icp-splitter{display:none}.copyright .copyright-line .icp-br{display:block}.dynamic-to-top{display:none !important}} - -/*# sourceMappingURL=style.min.css.map */ \ No newline at end of file diff --git a/resources/_gen/assets/scss/css/style.scss_d75fd08668b4bae707167bbce4d8ca46.json b/resources/_gen/assets/scss/css/style.scss_d75fd08668b4bae707167bbce4d8ca46.json deleted file mode 100644 index 0095485dc..000000000 --- a/resources/_gen/assets/scss/css/style.scss_d75fd08668b4bae707167bbce4d8ca46.json +++ /dev/null @@ -1 +0,0 @@ -{"Target":"css/style.min.css","MediaType":"text/css","Data":{}} \ No newline at end of file diff --git a/resources/_gen/assets/scss/css/style.template.scss_40942e46c3aa444eabf479d066570690.content b/resources/_gen/assets/scss/css/style.template.scss_40942e46c3aa444eabf479d066570690.content new file mode 100644 index 000000000..1c53340e1 --- /dev/null +++ b/resources/_gen/assets/scss/css/style.template.scss_40942e46c3aa444eabf479d066570690.content @@ -0,0 +1,3 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace, monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft Yahei,Segoe UI,Helvetica,Arial,sans-serif,Segoe UI Emoji;font-size:16px;font-weight:400;line-height:1.5rem;width:100%}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background-color:#87878d}::-webkit-scrollbar-thumb:hover{background-color:#a9a9b3}::selection{background:rgba(38,139,211,0.2)}.dark-theme ::selection{background:rgba(38,139,211,0.3)}body{background-color:#fff;color:#161209;overflow-wrap:break-word}body::before{content:"";background-repeat:no-repeat;background-position:center;opacity:0.05;position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;-webkit-filter:grayscale(100%);-moz-filter:grayscale(100%);-ms-filter:grayscale(100%);-o-filter:grayscale(100%);filter:grayscale(100%);filter:gray}body.dark-theme{color:#a9a9b3;background-color:#292a2d}b,strong{font-weight:bold}a{color:#161209;text-decoration:none;transition:color 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease}a:hover{color:#2d96bd}.dark-theme a{color:#a9a9b3}.dark-theme a:hover{color:#fff}b,strong{font-weight:bold}#dynamic-to-top{display:none;overflow:hidden;width:auto;z-index:90;position:fixed;bottom:2rem;right:2rem;top:auto;left:auto;font-family:sans-serif;font-size:1rem;color:#fff;text-decoration:none;font-weight:bold;padding:1rem 1rem;border:1px solid #dcdcdc;background:#222;outline:none}#dynamic-to-top:hover{background:#000;cursor:pointer}#dynamic-to-top:active{background:#000;outline:none}#dynamic-to-top:focus,#dynamic-to-top:hover{outline:none}#dynamic-to-top span{display:block;overflow:hidden;width:.875rem;height:.75rem;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAKCAYAAACE2W/HAAAACXBIWXMAAArwAAAK8AFCrDSYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAKVJREFUeNqUz7ENgzAURdErUSXQMgdTZJFIqeg8DFI2YQeEvAEbUJja3y9NEiwCUXIlN/62jww7Saok3Z+r4pckXSRNWpskXb5deClHfeo7ylGrLqnbTmOMs/e+9d63McZ554GOlFLId0IIvXOuAUqgdM41IYQ+P5NSCpjZkitADRTZTwqgznUzWzCzZaMc9dbNbGEYhuuOclQB1OM43gBO/N/5MQAeMwpyB1MtLQAAAABJRU5ErkJggg==") no-repeat center center}.dark-theme #dynamic-to-top{border:1px solid #4a4b50}.wrapper{display:flex;flex-direction:column;min-height:97.5vh;width:100%}.wrapper main{flex:1 0 auto}.wrapper main .container{padding-left:1rem;padding-right:1rem}.footer{height:2rem;width:100%;text-align:center;line-height:1.5rem;padding-top:2rem}.page{position:relative;width:100%;max-width:980px;margin:0 auto;padding-top:6rem}.single .single-title{margin:0;font-size:1.8rem;line-height:3rem}.single .post-meta{font-size:.875rem;color:#a9a9b3}.single .post-meta span{display:inline-block}.dark-theme .single .post-meta{color:#5d5d5f}.single .post-meta a{color:#2d96bd}.dark-theme .single .post-meta a{color:#eee}.single .post-meta a:hover{color:#ef3982}.dark-theme .single .post-meta a:hover{color:#2d96bd}.single .post-meta .author{font-size:1.05rem}.single .featured-image{padding-top:.6rem}.single .featured-image img{display:block;max-width:100%;height:auto;margin:0 auto;overflow:hidden}.single #toc-auto{display:block;position:absolute;width:100%;margin-left:1000px;padding:0 .8rem;border-left:1px solid #dcdcdc;overflow-wrap:break-word;box-sizing:border-box;top:12rem}.dark-theme .single #toc-auto{border-left:1px solid #4a4b50}.single #toc-auto .toc-title{font-weight:400;margin:.8rem 0;text-transform:uppercase}.single #toc-auto .toc-content.always-active ul{display:block}.single #toc-auto .toc-content>nav>ul{margin:.625rem 0}.single #toc-auto .toc-content ul{text-indent:-0.85rem;padding-left:.625rem;list-style:none}.single #toc-auto .toc-content ul a::before{content:"|";font-weight:bolder;margin-right:.5rem;color:#2d96bd}.dark-theme .single #toc-auto .toc-content ul a::before{color:#eee}.single #toc-auto .toc-content ul ul{padding-left:1.25rem;display:none}.single #toc-auto .toc-content ul .has-active>ul{display:block}.single #toc-auto .toc-content a.active{font-weight:bold;color:#2d96bd}.dark-theme .single #toc-auto .toc-content a.active{color:#eee}.single #toc-auto .toc-content a.active::before{color:#ef3982}.dark-theme .single #toc-auto .toc-content a.active::before{color:#2d96bd}.single #toc-static{display:none;padding-top:.8rem}.single #toc-static details summary .toc-title{display:block;display:flex;justify-content:space-between;font-size:1.2em;font-weight:bold;line-height:2em;padding:0 .625rem;background:#f5f5f5}.single #toc-static details summary .toc-title i.details{line-height:2em}.dark-theme .single #toc-static details summary .toc-title{background:#272C34}.single #toc-static details summary::-webkit-details-marker{display:none}.single #toc-static details[open] i.details{transform:rotate(180deg)}.single #toc-static .toc-content{border:2px solid #f5f5f5}.single #toc-static .toc-content>nav>ul{margin:.625rem 0}.single #toc-static .toc-content ul{padding-left:.625rem;list-style:none}.single #toc-static .toc-content ul ul{padding-left:1.25rem}.dark-theme .single #toc-static .toc-content{border:2px solid #272C34}.single .toc ruby{background:#f5f5f5}.single .toc ruby rt{color:#a9a9b3}.dark-theme .single .toc ruby{background:#272C34}.dark-theme .single .toc ruby rt{color:#5d5d5f}.single .content h2,.single .content h3,.single .content h4,.single .content h5,.single .content h6{font-weight:bold;margin:1.2rem 0}.dark-theme .single .content h2,.dark-theme .single .content h3,.dark-theme .single .content h4,.dark-theme .single .content h5,.dark-theme .single .content h6{font-weight:bolder}.single .content h2>a:first-child::before,.single .content h3>a:first-child::before,.single .content h4>a:first-child::before,.single .content h5>a:first-child::before,.single .content h6>a:first-child::before{content:"|";margin-right:.3125rem;color:#2d96bd}.dark-theme .single .content h2>a:first-child::before,.dark-theme .single .content h3>a:first-child::before,.dark-theme .single .content h4>a:first-child::before,.dark-theme .single .content h5>a:first-child::before,.dark-theme .single .content h6>a:first-child::before{color:#eee}.single .content h2>a:first-child::before{content:"#"}.single .content p{font-size:1rem;margin:.5rem 0}.single .content a{word-break:break-all;word-break:break-word;color:#2d96bd}.dark-theme .single .content a{color:#eee}.single .content a:hover{color:#ef3982}.dark-theme .single .content a:hover:hover{color:#2d96bd;font-weight:bold}.single .content ul{padding-left:2rem;list-style-type:disc}.single .content ruby{background:#f5f5f5}.single .content ruby rt{color:#a9a9b3}.dark-theme .single .content ruby{background:#272C34}.dark-theme .single .content ruby rt{color:#5d5d5f}.single .content .table-wrapper{overflow-x:auto}.single .content .table-wrapper::-webkit-scrollbar{background-color:#fff}.dark-theme .single .content .table-wrapper::-webkit-scrollbar{background-color:#272c34}.single .content .table-wrapper>table{width:100%;max-width:100%;margin:.625rem 0;border-spacing:0;background:#fff}.dark-theme .single .content .table-wrapper>table{background:#272c34}.single .content .table-wrapper>table thead{background:#ededed}.dark-theme .single .content .table-wrapper>table thead{background-color:#20252b}.single .content .table-wrapper>table th,.single .content .table-wrapper>table td{padding:.3rem 1rem;border:1px double #dcdcdc}.dark-theme .single .content .table-wrapper>table th,.dark-theme .single .content .table-wrapper>table td{border:1px double #4a4b50}.single .content figure{text-align:center}.single .content figure .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:.625rem;margin:0 auto;border-bottom:1px solid #d9d9d9;font-size:.875rem;color:#969696;line-height:1.7}.single .content figure img{display:block;max-width:96%;height:auto;margin:0 auto;overflow:hidden;transition:all 0.2s ease-in-out}.single .content figure a.lightgallery:hover img{transform:scale(1.02)}.single .content .lazyloading{object-fit:none}.single .content blockquote{font-size:1rem;display:block;border-width:1px 0;border-style:solid;border-color:#dcdcdc;padding:1.5em 1.2em 0.5em 1.2em;margin:0 0 2em 0;position:relative}.single .content blockquote::before{content:'\201C';position:absolute;top:0em;left:50%;transform:translate(-50%, -50%);width:3rem;height:2rem;font:6em/1.08em 'PT Sans', sans-serif;color:#2d96bd;text-align:center}.dark-theme .single .content blockquote::before{color:#eee}.single .content blockquote::after{content:"#blockquote" attr(cite);display:block;text-align:right;font-size:0.875em;color:#2d96bd}.dark-theme .single .content blockquote::after{color:#eee}.dark-theme .single .content blockquote{border-color:#4a4b50}.single .content .footnotes{color:#a9a9b3}.dark-theme .single .content .footnotes{color:#5d5d5f}.single .content code{font-size:13px;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace;padding:.2rem .4rem;color:#E74C3C}.dark-theme .single .content code{color:#E5BF78}.single .content code,.single .content pre,.single .content .highlight table,.single .content .highlight tr,.single .content .highlight td{background:#f5f5f5}.dark-theme .single .content code,.dark-theme .single .content pre,.dark-theme .single .content .highlight table,.dark-theme .single .content .highlight tr,.dark-theme .single .content .highlight td{background:#272C34}.single .content .highlight>.chroma{margin:1rem 0}.single .content .highlight>.chroma code,.single .content .highlight>.chroma pre{margin:0;padding:0}.single .content .highlight>.chroma::before{display:block;padding:.4rem;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft Yahei,Segoe UI,Helvetica,Arial,sans-serif,Segoe UI Emoji;font-weight:bold;color:#b1b0b0;background:#ededed;content:'Code'}.dark-theme .single .content .highlight>.chroma::before{color:#b1b0b0;background:#20252b}.single .content .highlight>.chroma.language-bash::before{content:"Bash"}.single .content .highlight>.chroma.language-c::before{content:"C"}.single .content .highlight>.chroma.language-cs::before{content:"C#"}.single .content .highlight>.chroma.language-cpp::before{content:"C++"}.single .content .highlight>.chroma.language-clojure::before{content:"Clojure"}.single .content .highlight>.chroma.language-coffeescript::before{content:"CoffeeScript"}.single .content .highlight>.chroma.language-css::before{content:"CSS"}.single .content .highlight>.chroma.language-dart::before{content:"Dart"}.single .content .highlight>.chroma.language-diff::before{content:"Diff"}.single .content .highlight>.chroma.language-erlang::before{content:"Erlang"}.single .content .highlight>.chroma.language-go::before{content:"Go"}.single .content .highlight>.chroma.language-go-html-template::before{content:"Go HTML Template"}.single .content .highlight>.chroma.language-groovy::before{content:"Groovy"}.single .content .highlight>.chroma.language-haskell::before{content:"Haskell"}.single .content .highlight>.chroma.language-html::before{content:"HTML"}.single .content .highlight>.chroma.language-http::before{content:"HTTP"}.single .content .highlight>.chroma.language-xml::before{content:"XML"}.single .content .highlight>.chroma.language-java::before{content:"Java"}.single .content .highlight>.chroma.language-js::before{content:"JavaScript"}.single .content .highlight>.chroma.language-javascript::before{content:"JavaScript"}.single .content .highlight>.chroma.language-json::before{content:"JSON"}.single .content .highlight>.chroma.language-kotlin::before{content:"Kotlin"}.single .content .highlight>.chroma.language-latex::before{content:"LaTeX"}.single .content .highlight>.chroma.language-less::before{content:"Less"}.single .content .highlight>.chroma.language-lisp::before{content:"Lisp"}.single .content .highlight>.chroma.language-lua::before{content:"Lua"}.single .content .highlight>.chroma.language-makefile::before{content:"Makefile"}.single .content .highlight>.chroma.language-markdown::before{content:"Markdown"}.single .content .highlight>.chroma.language-matlab::before{content:"Matlab"}.single .content .highlight>.chroma.language-objectivec::before{content:"Objective-C"}.single .content .highlight>.chroma.language-php::before{content:"PHP"}.single .content .highlight>.chroma.language-perl::before{content:"Perl"}.single .content .highlight>.chroma.language-python::before{content:"Python"}.single .content .highlight>.chroma.language-r::before{content:"R"}.single .content .highlight>.chroma.language-ruby::before{content:"Ruby"}.single .content .highlight>.chroma.language-rust::before{content:"Rust"}.single .content .highlight>.chroma.language-scala::before{content:"Scala"}.single .content .highlight>.chroma.language-scss::before{content:"Scss"}.single .content .highlight>.chroma.language-shell::before{content:"Shell"}.single .content .highlight>.chroma.language-sql::before{content:"SQL"}.single .content .highlight>.chroma.language-swift::before{content:"Swift"}.single .content .highlight>.chroma.language-tex::before{content:"TeX"}.single .content .highlight>.chroma.language-toml::before{content:"TOML"}.single .content .highlight>.chroma.language-ts::before{content:"TypeScript"}.single .content .highlight>.chroma.language-typescript::before{content:"TypeScript"}.single .content .highlight>.chroma.language-vue::before{content:"Vue"}.single .content .highlight>.chroma.language-yml::before{content:"YAML"}.single .content .highlight>.chroma.language-yaml::before{content:"YAML"}.single .content .highlight>.chroma table,.single .content .highlight>.chroma tr,.single .content .highlight>.chroma td{margin:0;border:none !important}.single .content .highlight>.chroma td{padding:.2rem .4rem}.single .content .highlight>.chroma .lntd:first-child{width:1.2rem}.single .content .highlight>.chroma .lntd:first-child .lnt{color:#b1b0b0}.single .content .highlight>.chroma .lntd:first-child .hl{font-weight:bolder}.single .content .highlight>.chroma .lntd:last-child .hl{display:block;background-color:#e8e8e8}.dark-theme .single .content .highlight>.chroma .lntd:last-child .hl{background-color:#1c2025}.single .content .highlight{font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace;font-size:13px;line-height:18px}.single .content .highlight .c,.single .content .highlight .ch,.single .content .highlight .cm,.single .content .highlight .c1,.single .content .highlight .cs,.single .content .highlight .cp,.single .content .highlight .cpf{font-style:italic}.single .content .highlight .gl{text-decoration:underline}.single .content .highlight .p{color:#a9a9b3}.single .content .highlight .k{color:#b501a9}.single .content .highlight .kc{color:#b501a9}.single .content .highlight .kd{color:#b501a9}.single .content .highlight .kn{color:#b501a9}.single .content .highlight .kp{color:#b501a9}.single .content .highlight .kr{color:#b501a9}.single .content .highlight .kt{color:#b501a9}.single .content .highlight .n{color:#333}.single .content .highlight .na{color:#2b77fa}.single .content .highlight .nb{color:#f74840}.single .content .highlight .bp{color:#f74840}.single .content .highlight .nc{color:#cb8100}.single .content .highlight .no{color:#2b77fa}.single .content .highlight .nd{color:#0086c1}.single .content .highlight .ni{color:#2b77fa}.single .content .highlight .ne{color:#2b77fa}.single .content .highlight .nf{color:#2b77fa}.single .content .highlight .fm{color:#1ccad6}.single .content .highlight .nl{color:#2b77fa}.single .content .highlight .nn{color:#2b77fa}.single .content .highlight .nx{color:#333}.single .content .highlight .py{color:#2b77fa}.single .content .highlight .nt{color:#2b77fa}.single .content .highlight .nv{color:#2b77fa}.single .content .highlight .vc{color:#2b77fa}.single .content .highlight .vg{color:#2b77fa}.single .content .highlight .vi{color:#2b77fa}.single .content .highlight .vm{color:#2b77fa}.single .content .highlight .l{color:#2aa198}.single .content .highlight .ld{color:#2aa198}.single .content .highlight .s{color:#24a443}.single .content .highlight .sa{color:#24a443}.single .content .highlight .sb{color:#24a443}.single .content .highlight .sc{color:#24a443}.single .content .highlight .dl{color:#24a443}.single .content .highlight .sd{color:#24a443}.single .content .highlight .s2{color:#24a443}.single .content .highlight .se{color:#24a443}.single .content .highlight .sh{color:#24a443}.single .content .highlight .si{color:#24a443}.single .content .highlight .sx{color:#24a443}.single .content .highlight .sr{color:#24a443}.single .content .highlight .s1{color:#24a443}.single .content .highlight .ss{color:#24a443}.single .content .highlight .m{color:#e2893c}.single .content .highlight .mb{color:#e2893c}.single .content .highlight .mf{color:#e2893c}.single .content .highlight .mh{color:#e2893c}.single .content .highlight .mi{color:#e2893c}.single .content .highlight .il{color:#e2893c}.single .content .highlight .mo{color:#e2893c}.single .content .highlight .o{color:#f19b04}.single .content .highlight .ow{color:#b501a9}.single .content .highlight .c{color:#a0a1a8}.single .content .highlight .ch{color:#a0a1a8}.single .content .highlight .cm{color:#a0a1a8}.single .content .highlight .c1{color:#a0a1a8}.single .content .highlight .cs{color:#a0a1a8}.single .content .highlight .cp{color:#a0a1a8}.single .content .highlight .cpf{color:#a0a1a8}.single .content .highlight .g{color:#e72d40}.single .content .highlight .gd{color:#e72d40}.single .content .highlight .ge{color:#e72d40}.single .content .highlight .gr{color:#e72d40}.single .content .highlight .gh{color:#e72d40}.single .content .highlight .gi{color:#e72d40}.single .content .highlight .go{color:#e72d40}.single .content .highlight .gp{color:#e72d40}.single .content .highlight .gs{color:#e72d40}.single .content .highlight .gu{color:#e72d40}.single .content .highlight .gt{color:#e72d40}.single .content .highlight .w{color:#bbb}.dark-theme .single .content .highlight .p{color:#a9a9b3}.dark-theme .single .content .highlight .k{color:#d371e3}.dark-theme .single .content .highlight .kc{color:#d371e3}.dark-theme .single .content .highlight .kd{color:#d371e3}.dark-theme .single .content .highlight .kn{color:#d371e3}.dark-theme .single .content .highlight .kp{color:#d371e3}.dark-theme .single .content .highlight .kr{color:#d371e3}.dark-theme .single .content .highlight .kt{color:#d371e3}.dark-theme .single .content .highlight .n{color:#a9b2c0}.dark-theme .single .content .highlight .na{color:#41b0f5}.dark-theme .single .content .highlight .nb{color:#19b9c4}.dark-theme .single .content .highlight .bp{color:#ecbf6f}.dark-theme .single .content .highlight .nc{color:#ecbf6f}.dark-theme .single .content .highlight .no{color:#41b0f5}.dark-theme .single .content .highlight .nd{color:#ecbf6f}.dark-theme .single .content .highlight .ni{color:#41b0f5}.dark-theme .single .content .highlight .ne{color:#41b0f5}.dark-theme .single .content .highlight .nf{color:#41b0f5}.dark-theme .single .content .highlight .fm{color:#19b9c4}.dark-theme .single .content .highlight .nl{color:#41b0f5}.dark-theme .single .content .highlight .nn{color:#41b0f5}.dark-theme .single .content .highlight .nx{color:#a9a9b3}.dark-theme .single .content .highlight .py{color:#41b0f5}.dark-theme .single .content .highlight .nt{color:#41b0f5}.dark-theme .single .content .highlight .nv{color:#41b0f5}.dark-theme .single .content .highlight .vc{color:#41b0f5}.dark-theme .single .content .highlight .vg{color:#41b0f5}.dark-theme .single .content .highlight .vi{color:#41b0f5}.dark-theme .single .content .highlight .vm{color:#41b0f5}.dark-theme .single .content .highlight .l{color:#2aa198}.dark-theme .single .content .highlight .ld{color:#2aa198}.dark-theme .single .content .highlight .s{color:#8cc570}.dark-theme .single .content .highlight .sa{color:#8cc570}.dark-theme .single .content .highlight .sb{color:#8cc570}.dark-theme .single .content .highlight .sc{color:#8cc570}.dark-theme .single .content .highlight .dl{color:#8cc570}.dark-theme .single .content .highlight .sd{color:#8cc570}.dark-theme .single .content .highlight .s2{color:#8cc570}.dark-theme .single .content .highlight .se{color:#8cc570}.dark-theme .single .content .highlight .sh{color:#8cc570}.dark-theme .single .content .highlight .si{color:#8cc570}.dark-theme .single .content .highlight .sx{color:#8cc570}.dark-theme .single .content .highlight .sr{color:#8cc570}.dark-theme .single .content .highlight .s1{color:#8cc570}.dark-theme .single .content .highlight .ss{color:#8cc570}.dark-theme .single .content .highlight .m{color:#db985c}.dark-theme .single .content .highlight .mb{color:#db985c}.dark-theme .single .content .highlight .mf{color:#db985c}.dark-theme .single .content .highlight .mh{color:#db985c}.dark-theme .single .content .highlight .mi{color:#db985c}.dark-theme .single .content .highlight .il{color:#db985c}.dark-theme .single .content .highlight .mo{color:#db985c}.dark-theme .single .content .highlight .o{color:#ecbf6f}.dark-theme .single .content .highlight .ow{color:#d371e3}.dark-theme .single .content .highlight .c{color:#7e848f}.dark-theme .single .content .highlight .ch{color:#7e848f}.dark-theme .single .content .highlight .cm{color:#7e848f}.dark-theme .single .content .highlight .c1{color:#7e848f}.dark-theme .single .content .highlight .cs{color:#7e848f}.dark-theme .single .content .highlight .cp{color:#7e848f}.dark-theme .single .content .highlight .cpf{color:#7e848f}.dark-theme .single .content .highlight .g{color:#f16372}.dark-theme .single .content .highlight .gd{color:#f16372}.dark-theme .single .content .highlight .ge{color:#f16372}.dark-theme .single .content .highlight .gr{color:#f16372}.dark-theme .single .content .highlight .gh{color:#f16372}.dark-theme .single .content .highlight .gi{color:#f16372}.dark-theme .single .content .highlight .go{color:#f16372}.dark-theme .single .content .highlight .gp{color:#f16372}.dark-theme .single .content .highlight .gs{color:#f16372}.dark-theme .single .content .highlight .gu{color:#f16372}.dark-theme .single .content .highlight .gt{color:#f16372}.dark-theme .single .content .highlight .w{color:#bbb}.single .content .admonition{position:relative;margin:.9765em 0;padding:0 .75rem;background-color:rgba(68,138,255,0.1);border-left:0.25rem solid #448aff;overflow:auto}.single .content .admonition .admonition-title{margin:0 -0.75rem;padding:.2rem .75rem .2rem 1.8rem;border-bottom:0.05rem solid rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.1)}.single .content .admonition .admonition-content{margin:.5rem 0}.single .content .admonition i.icon{font-size:0.85rem;color:#448aff;cursor:auto;position:absolute;left:.6rem;top:.6rem}.single .content .admonition.note{border-left-color:#448aff}.single .content .admonition.note i.icon{color:#448aff}.single .content .admonition.abstract{border-left-color:#00b0ff}.single .content .admonition.abstract i.icon{color:#00b0ff}.single .content .admonition.info{border-left-color:#00b8d4}.single .content .admonition.info i.icon{color:#00b8d4}.single .content .admonition.tip{border-left-color:#00bfa5}.single .content .admonition.tip i.icon{color:#00bfa5}.single .content .admonition.success{border-left-color:#00c853}.single .content .admonition.success i.icon{color:#00c853}.single .content .admonition.question{border-left-color:#64dd17}.single .content .admonition.question i.icon{color:#64dd17}.single .content .admonition.warning{border-left-color:#ff9100}.single .content .admonition.warning i.icon{color:#ff9100}.single .content .admonition.failure{border-left-color:#ff5252}.single .content .admonition.failure i.icon{color:#ff5252}.single .content .admonition.danger{border-left-color:#ff1744}.single .content .admonition.danger i.icon{color:#ff1744}.single .content .admonition.bug{border-left-color:#f50057}.single .content .admonition.bug i.icon{color:#f50057}.single .content .admonition.example{border-left-color:#651fff}.single .content .admonition.example i.icon{color:#651fff}.single .content .admonition.quote{border-left-color:#9e9e9e}.single .content .admonition.quote i.icon{color:#9e9e9e}.single .content .admonition.note{background-color:rgba(68,138,255,0.1)}.single .content .admonition.note .admonition-title{border-bottom-color:rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.1)}.single .content .admonition.abstract{background-color:rgba(0,176,255,0.1)}.single .content .admonition.abstract .admonition-title{border-bottom-color:rgba(0,176,255,0.1);background-color:rgba(0,176,255,0.1)}.single .content .admonition.info{background-color:rgba(0,184,212,0.1)}.single .content .admonition.info .admonition-title{border-bottom-color:rgba(0,184,212,0.1);background-color:rgba(0,184,212,0.1)}.single .content .admonition.tip{background-color:rgba(0,191,165,0.1)}.single .content .admonition.tip .admonition-title{border-bottom-color:rgba(0,191,165,0.1);background-color:rgba(0,191,165,0.1)}.single .content .admonition.success{background-color:rgba(0,200,83,0.1)}.single .content .admonition.success .admonition-title{border-bottom-color:rgba(0,200,83,0.1);background-color:rgba(0,200,83,0.1)}.single .content .admonition.question{background-color:rgba(100,221,23,0.1)}.single .content .admonition.question .admonition-title{border-bottom-color:rgba(100,221,23,0.1);background-color:rgba(100,221,23,0.1)}.single .content .admonition.warning{background-color:rgba(255,145,0,0.1)}.single .content .admonition.warning .admonition-title{border-bottom-color:rgba(255,145,0,0.1);background-color:rgba(255,145,0,0.1)}.single .content .admonition.failure{background-color:rgba(255,82,82,0.1)}.single .content .admonition.failure .admonition-title{border-bottom-color:rgba(255,82,82,0.1);background-color:rgba(255,82,82,0.1)}.single .content .admonition.danger{background-color:rgba(255,23,68,0.1)}.single .content .admonition.danger .admonition-title{border-bottom-color:rgba(255,23,68,0.1);background-color:rgba(255,23,68,0.1)}.single .content .admonition.bug{background-color:rgba(245,0,87,0.1)}.single .content .admonition.bug .admonition-title{border-bottom-color:rgba(245,0,87,0.1);background-color:rgba(245,0,87,0.1)}.single .content .admonition.example{background-color:rgba(101,31,255,0.1)}.single .content .admonition.example .admonition-title{border-bottom-color:rgba(101,31,255,0.1);background-color:rgba(101,31,255,0.1)}.single .content .admonition.quote{background-color:rgba(158,158,158,0.1)}.single .content .admonition.quote .admonition-title{border-bottom-color:rgba(158,158,158,0.1);background-color:rgba(158,158,158,0.1)}.single .content .admonition:last-child{margin-bottom:.75rem}.single .content details.admonition summary{display:block;outline:none;cursor:pointer}.single .content details.admonition summary::-webkit-details-marker{display:none}.single .content details.admonition summary i.details{position:absolute;top:.5rem;right:.5rem;color:#161209}.dark-theme .single .content details.admonition summary i.details{color:#a9a9b3}.single .content details.admonition[open] i.details{transform:rotate(180deg)}.single .content .echarts{width:100%;height:30rem;margin:3% auto;text-align:center}.single .content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.single .content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.single .content hr{margin:1rem 0;position:relative;border-top:1px dashed #dcdcdc;border-bottom:none}.dark-theme .single .content hr{border-top:1px dashed #4a4b50}.single .content kbd{display:inline-block;padding:.25rem;background-color:#fff;border:1px solid #dcdcdc;border-bottom-color:#dcdcdc;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 #dcdcdc;box-shadow:inset 0 -1px 0 #dcdcdc;font-size:.8rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace;color:#E74C3C}.dark-theme .single .content kbd{background-color:#292a2d;border:1px solid #4a4b50;border-bottom-color:#4a4b50;-webkit-box-shadow:inset 0 -1px 0 #4a4b50;box-shadow:inset 0 -1px 0 #4a4b50;color:#E5BF78}.single .content .typeit .code{padding:.375rem;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace;font-weight:bold;word-break:break-all}.single .post-footer{margin-top:3rem}.single .post-footer .post-info{border-bottom:1px solid #dcdcdc;padding:1rem 0 0.3rem}.dark-theme .single .post-footer .post-info{border-bottom:1px solid #4a4b50}.single .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.single .post-footer .post-info .post-info-line .post-info-mod{font-size:0.8em;color:#a9a9b3}.dark-theme .single .post-footer .post-info .post-info-line .post-info-mod{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-mod a{color:#2d96bd}.dark-theme .single .post-footer .post-info .post-info-line .post-info-mod a{color:#eee}.single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#ef3982}.dark-theme .single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#2d96bd}.single .post-footer .post-info .post-info-line .post-info-license{font-size:0.8em;color:#a9a9b3}.dark-theme .single .post-footer .post-info .post-info-line .post-info-license{color:#5d5d5f}.single .post-footer .post-info .post-info-line .post-info-md{font-size:0.8rem;width:8rem}.single .post-footer .post-info .post-info-line .post-info-md a{color:#2d96bd}.dark-theme .single .post-footer .post-info .post-info-line .post-info-md a{color:#eee}.single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#ef3982}.dark-theme .single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#2d96bd}.single .post-footer .post-info-more{padding:0.3rem 0 1rem;display:flex;justify-content:space-between;font-size:0.9rem}.single .post-footer .post-nav::before,.single .post-footer .post-nav::after{content:' ';display:table}.single .post-footer .post-nav a.prev,.single .post-footer .post-nav a.next{font-size:1rem;font-weight:600;transition-duration:.3s;transition-property:transform;transition-timing-function:ease-out}.single .post-footer .post-nav a.prev{float:left}.single .post-footer .post-nav a.prev:hover{transform:translateX(-4px)}.single .post-footer .post-nav a.next{float:right}.single .post-footer .post-nav a.next:hover{transform:translateX(4px)}.single .comment{padding:4rem 0}.special .single-title{text-align:right;padding-bottom:2rem}.archive .single-title{text-align:right;padding-bottom:2rem}.archive .archive-item{margin-left:2rem}.archive .categories-card{margin:0 auto;margin-top:3rem;display:flex;align-items:center;justify-content:space-between;flex-direction:row;flex-wrap:wrap;padding:0 2.5rem;line-height:1.6rem}.archive .categories-card .card-item{font-size:.875rem;text-align:left;width:45%;display:flex;align-items:flex-start;margin-top:2rem;min-height:10rem;padding:0 2%;position:relative}.archive .categories-card .card-item .card-item-wrapper{width:100%;overflow:hidden}.archive .categories-card .card-item .card-item-wrapper .card-item-title{font-size:1.2rem;font-weight:bold;display:inline-block}.archive .categories-card .card-item .card-item-wrapper span{float:right;padding-right:1rem}.archive .archive-item-link{display:inline-block;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:95%}.archive .archive-item-link:hover{color:#2d96bd;background-color:transparent}.dark-theme .archive .archive-item-link{color:#a9a9b3;text-decoration:none;transition:color 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease}.dark-theme .archive .archive-item-link:hover{color:#fff;text-decoration:none;transition:color 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease}.archive .archive-item-date{float:right;text-align:right;color:#a9a9b3}.dark-theme .archive .archive-item-date{color:#5d5d5f}.archive .more-post{text-align:right}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;overflow-wrap:break-word;transition-duration:.3s;transition-property:transform;transition-timing-function:ease-out}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{color:#2d96bd;transform:scale(1.1)}.dark-theme .archive .tag-cloud-tags a:active,.dark-theme .archive .tag-cloud-tags a:focus,.dark-theme .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a small{color:#a9a9b3}.dark-theme .archive .tag-cloud-tags a small{color:#fff}.home .home-profile{transform:translateY(0);padding:2rem 0;text-align:center}.home .home-profile .home-avatar{padding:0.6rem}.home .home-profile .home-avatar img{width:6rem;height:auto;display:inline-block;-webkit-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);margin:0 auto;-webkit-transition:all ease 0.4s;-moz-transition:all ease 0.4s;-o-transition:all ease 0.4s;transition:all ease 0.4s;cursor:pointer}.home .home-profile .home-avatar img:hover{position:relative;-webkit-transform:translateY(-0.75rem);-moz-transform:translateY(-0.75rem);-ms-transform:translateY(-0.75rem);-o-transform:translateY(-0.75rem);transform:translateY(-0.75rem);cursor:pointer}.home .home-profile .home-description{font-size:1rem;font-weight:normal;margin:0;padding:.4rem}.home .home-profile .home-social-links{padding-top:.6rem}.home .home-profile .home-social-links i{font-size:1.45rem}.home .home-profile .home-social-links img{width:1.5rem;height:1.5rem}.home .summary{padding-top:1rem;padding-bottom:.8rem;color:#161209;border-bottom:1px dashed #dcdcdc}.dark-theme .home .summary{color:#a9a9b3;border-bottom:1px dashed #4a4b50}.home .summary .featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin:0.6rem auto}.home .summary .featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;object-fit:cover}.home .summary .single-title{font-size:1.6rem}.home .summary .content{display:-moz-box;display:-webkit-box;-moz-box-orient:vertical;-webkit-box-orient:vertical;-webkit-line-clamp:3;margin-top:.3rem;width:100%;overflow:hidden;text-overflow:ellipsis;overflow-wrap:break-word;color:#a9a9b3}.dark-theme .home .summary .content{color:#5d5d5f}.home .summary .content h2,.home .summary .content h3,.home .summary .content h4,.home .summary .content h5,.home .summary .content h6,.home .summary .content p{font-size:1rem;display:inline}.home .summary .content h2::after,.home .summary .content h3::after,.home .summary .content h4::after,.home .summary .content h5::after,.home .summary .content h6::after,.home .summary .content p::after{content:"\A";white-space:pre}.home .summary .content h2,.home .summary .content h3,.home .summary .content h4,.home .summary .content h5,.home .summary .content h6{line-height:2}.home .summary .content h2::before,.home .summary .content h3::before,.home .summary .content h4::before,.home .summary .content h5::before,.home .summary .content h6::before{content:"|";margin-right:.3125rem;color:#2d96bd}.dark-theme .home .summary .content h2::before,.dark-theme .home .summary .content h3::before,.dark-theme .home .summary .content h4::before,.dark-theme .home .summary .content h5::before,.dark-theme .home .summary .content h6::before{color:#eee}.home .summary .content h2{font-size:1.2rem}.home .summary .content h2::before{content:"#"}.home .summary .post-footer{margin-top:.5rem;display:flex;justify-content:space-between;align-items:center;font-size:.875rem !important}.home .summary .post-footer a{color:#2d96bd !important}.dark-theme .home .summary .post-footer a{color:#eee !important}.home .summary .post-footer a:hover{color:#ef3982 !important}.dark-theme .home .summary .post-footer a:hover{color:#2d96bd !important}.home .summary .post-footer .post-tags{padding:0}.home .summary .post-footer .post-tags a{color:#161209 !important}.dark-theme .home .summary .post-footer .post-tags a{color:#a9a9b3 !important}.home .summary .post-footer .post-tags a:hover{color:#2d96bd !important}.dark-theme .home .summary .post-footer .post-tags a:hover{color:#fff !important}#content-404{font-size:1.8rem;line-height:3rem;transform:translateY(30vh);text-align:center}header{width:100%;z-index:100;background-color:#f8f8f8}.dark-theme header{background-color:#252627}header .header-title{font-weight:bold}header .select-language{font-weight:400;border:none;box-shadow:none;background:transparent;background-image:none;-webkit-appearance:none;color:#161209}.dark-theme header .select-language{color:#a9a9b3}header .select-language:focus{outline:none}header .select-language:hover{cursor:pointer}#header-desktop{display:block;position:fixed;height:4rem;line-height:4rem}#header-desktop .header-wrapper{width:auto;text-align:center;margin:0 4rem;display:flex;justify-content:space-between}#header-desktop .header-wrapper .header-title a{padding:0 8px;font-size:1.25rem}#header-desktop .header-wrapper .header-title a i{line-height:2rem}#header-desktop .header-wrapper .menu a{padding:0 8px}#header-desktop .header-wrapper .menu a.active{font-weight:900;color:#161209}.dark-theme #header-desktop .header-wrapper .menu a.active{color:#fff}#header-mobile{display:none;position:fixed;height:4rem;line-height:4rem}#header-mobile .header-wrapper{padding:0;margin:0;transition:all 0.3s ease 0s}#header-mobile .header-wrapper .header-container{display:flex;justify-content:space-between;align-items:center;width:100%;font-size:1.125rem;padding-right:1rem;padding-left:1rem;box-sizing:border-box}#header-mobile .header-wrapper .header-container .header-title{font-size:1.25rem}#header-mobile .header-wrapper .header-container .menu-toggle{cursor:pointer;line-height:4rem}#header-mobile .header-wrapper .header-container .menu-toggle span{display:block;background:#161209;width:1.5rem;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:.1s margin .1s, .1s transform;-moz-transition:.1s margin .1s, .1s transform;transition:.1s margin .1s, .1s transform}.dark-theme #header-mobile .header-wrapper .header-container .menu-toggle span{background:#a9a9b3}#header-mobile .header-wrapper .header-container .menu-toggle span:nth-child(1){margin-bottom:.5rem}#header-mobile .header-wrapper .header-container .menu-toggle span:nth-child(3){margin-top:.5rem}#header-mobile .header-wrapper .header-container .menu-toggle.active span{-webkit-transition:.1s margin, .1s transform .1s;-moz-transition:.1s margin, .1s transform .1s;transition:.1s margin, .1s transform .1s}#header-mobile .header-wrapper .header-container .menu-toggle.active span:nth-child(1){-moz-transform:rotate(45deg) translate(0.4rem, 0.5rem);-ms-transform:rotate(45deg) translate(0.4rem, 0.5rem);-webkit-transform:rotate(45deg) translate(0.4rem, 0.5rem);transform:rotate(45deg) translate(0.4rem, 0.5rem)}#header-mobile .header-wrapper .header-container .menu-toggle.active span:nth-child(2){opacity:0}#header-mobile .header-wrapper .header-container .menu-toggle.active span:nth-child(3){-moz-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-ms-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-webkit-transform:rotate(-45deg) translate(0.4rem, -0.5rem);transform:rotate(-45deg) translate(0.4rem, -0.5rem)}#header-mobile .header-wrapper .menu{text-align:center;background:#fff;border-top:2px solid #161209;display:none;box-shadow:0px 2px 4px rgba(0,0,0,0.1),0px 4px 8px rgba(0,0,0,0.1)}#header-mobile .header-wrapper .menu a{display:block;line-height:2.5rem}#header-mobile .header-wrapper .menu.active{display:block}.dark-theme #header-mobile .header-wrapper .menu{background:#292a2d;border-top:2px solid #a9a9b3}.copyright{font-size:.875rem}.copyright .copyright-line{width:100%}.copyright .copyright-line .icp-br{display:none}.pagination{display:flex;flex-direction:row;justify-content:center;list-style:none;white-space:nowrap;width:100%;padding:1rem 0 0}.pagination a{-webkit-font-smoothing:antialiased;font-size:.8rem;color:#bfbfbf;letter-spacing:.1rem;font-weight:700;padding:5px 5px;text-decoration:none;transition:0.3s}.pagination li{padding-bottom:3px;margin:0 20px;box-sizing:border-box;position:relative;display:inline}.pagination li.disabled{display:none}.pagination li:hover a{color:#000}.dark-theme .pagination li:hover a{color:#fff}.pagination li:before,.pagination li:after{position:absolute;content:"";width:0;height:3px;background:#000;transition:0.3s;bottom:0px}.dark-theme .pagination li:before,.dark-theme .pagination li:after{background:#fff}.pagination li:before .active,.pagination li:after .active{width:100%}.pagination li:before{left:50%}.pagination li:after{right:50%}.pagination li:hover:before,.pagination li:hover:after{width:50%}.pagination li.active a{color:#000}.dark-theme .pagination li.active a{color:#fff}.pagination li.active:before,.pagination li.active:after{width:60%}@media only screen and (max-width: 1800px){.page{max-width:780px}.page #toc-auto{margin-left:800px}}@media only screen and (max-width: 1440px){.page{max-width:680px}.page #toc-auto{margin-left:700px}}@media only screen and (max-width: 1200px){.page{max-width:560px}.page #toc-auto{margin-left:580px}}@media only screen and (max-width: 960px){#header-desktop .header-wrapper{margin:0 1rem}.page{max-width:80%}.page #toc-auto{display:none}.page #toc-static{display:block}}@media only screen and (max-width: 720px){#header-desktop{display:none}#header-mobile{display:block}.page{max-width:100%;padding-top:6rem}.page .categories-card .card-item{width:100%}.copyright .copyright-line .icp-splitter{display:none}.copyright .copyright-line .icp-br{display:block}} + +/*# sourceMappingURL=style.min.css.map */ \ No newline at end of file diff --git a/resources/_gen/assets/scss/css/style.template.scss_40942e46c3aa444eabf479d066570690.json b/resources/_gen/assets/scss/css/style.template.scss_40942e46c3aa444eabf479d066570690.json new file mode 100644 index 000000000..358f1f73c --- /dev/null +++ b/resources/_gen/assets/scss/css/style.template.scss_40942e46c3aa444eabf479d066570690.json @@ -0,0 +1 @@ +{"Target":"css/style.min.8596c27951d415c1b2ad9aee1d642e8057049327eca5ce9e397bdd27d84ca62a.css","MediaType":"text/css","Data":{"Integrity":"sha256-hZbCeVHUFcGyrZruHWQugFcEkyfspc6eOXvdJ9hMpio="}} \ No newline at end of file diff --git a/resources/_gen/assets/scss/lib/aplayer/dark.scss_6a9b89851c76ccc96568016ff9eba049.content b/resources/_gen/assets/scss/lib/aplayer/dark.scss_6a9b89851c76ccc96568016ff9eba049.content new file mode 100644 index 000000000..e5e021686 --- /dev/null +++ b/resources/_gen/assets/scss/lib/aplayer/dark.scss_6a9b89851c76ccc96568016ff9eba049.content @@ -0,0 +1,3 @@ +.dark-theme .aplayer{background:#212121}.dark-theme .aplayer.aplayer-withlist .aplayer-info{border-bottom-color:#5c5c5c}.dark-theme .aplayer.aplayer-fixed .aplayer-list{border-color:#5c5c5c}.dark-theme .aplayer .aplayer-body{background-color:#212121}.dark-theme .aplayer .aplayer-info{border-top-color:#212121}.dark-theme .aplayer .aplayer-info .aplayer-music .aplayer-title{color:#fff}.dark-theme .aplayer .aplayer-info .aplayer-music .aplayer-author{color:#fff}.dark-theme .aplayer .aplayer-info .aplayer-controller .aplayer-time{color:#eee}.dark-theme .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path{fill:#eee}.dark-theme .aplayer .aplayer-list{background-color:#212121}.dark-theme .aplayer .aplayer-list::-webkit-scrollbar-thumb{background-color:#999}.dark-theme .aplayer .aplayer-list::-webkit-scrollbar-thumb:hover{background-color:#bbb}.dark-theme .aplayer .aplayer-list li{color:#fff;border-top-color:#666}.dark-theme .aplayer .aplayer-list li:hover{background:#4e4e4e}.dark-theme .aplayer .aplayer-list li.aplayer-list-light{background:#6c6c6c}.dark-theme .aplayer .aplayer-list li .aplayer-list-index{color:#ddd}.dark-theme .aplayer .aplayer-list li .aplayer-list-author{color:#ddd}.dark-theme .aplayer .aplayer-lrc{text-shadow:-1px -1px 0 #666}.dark-theme .aplayer .aplayer-lrc:before{background:-moz-linear-gradient(top, #212121 0%, rgba(33,33,33,0) 100%);background:-webkit-linear-gradient(top, #212121 0%, rgba(33,33,33,0) 100%);background:linear-gradient(to bottom, #212121 0%, rgba(33,33,33,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#212121', endColorstr='#00212121',GradientType=0 )}.dark-theme .aplayer .aplayer-lrc:after{background:-moz-linear-gradient(top, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%);background:-webkit-linear-gradient(top, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%);background:linear-gradient(to bottom, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00212121', endColorstr='#cc212121',GradientType=0 )}.dark-theme .aplayer .aplayer-lrc p{color:#fff}.dark-theme .aplayer .aplayer-miniswitcher{background:#484848}.dark-theme .aplayer .aplayer-miniswitcher .aplayer-icon path{fill:#eee} + +/*# sourceMappingURL=dark.css.map */ \ No newline at end of file diff --git a/resources/_gen/assets/scss/lib/aplayer/dark.scss_6a9b89851c76ccc96568016ff9eba049.json b/resources/_gen/assets/scss/lib/aplayer/dark.scss_6a9b89851c76ccc96568016ff9eba049.json new file mode 100644 index 000000000..abbb8099c --- /dev/null +++ b/resources/_gen/assets/scss/lib/aplayer/dark.scss_6a9b89851c76ccc96568016ff9eba049.json @@ -0,0 +1 @@ +{"Target":"lib/aplayer/dark.cf3d10211c52ef53113d7dc3ab708c366141ee4459043a50b02215bc8a2ef76a.css","MediaType":"text/css","Data":{"Integrity":"sha256-zz0QIRxS71MRPX3Dq3CMNmFB7kRZBDpQsCIVvIou92o="}} \ No newline at end of file diff --git a/resources/_gen/assets/scss/lib/mermaid/mermaid.scss_6a9b89851c76ccc96568016ff9eba049.content b/resources/_gen/assets/scss/lib/mermaid/mermaid.scss_6a9b89851c76ccc96568016ff9eba049.content new file mode 100644 index 000000000..fdc54a72f --- /dev/null +++ b/resources/_gen/assets/scss/lib/mermaid/mermaid.scss_6a9b89851c76ccc96568016ff9eba049.content @@ -0,0 +1,3 @@ +.page .mermaid{width:100%;margin:3% auto;text-align:center}.page .mermaid>svg{max-width:100%}.page .mermaid .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);color:#333}.page .mermaid .label text{fill:#333}.page .mermaid .node rect,.page .mermaid .node circle,.page .mermaid .node ellipse,.page .mermaid .node polygon,.page .mermaid .node path{fill:#eee;stroke:#999;stroke-width:1px}.page .mermaid .node .label{text-align:center}.page .mermaid .node.clickable{cursor:pointer}.page .mermaid .arrowheadPath{fill:#333}.page .mermaid .edgePath .path{stroke:#666;stroke-width:1.5px}.page .mermaid .edgeLabel{background-color:#fff;text-align:center}.page .mermaid .cluster rect{fill:#eaf2fb;stroke:#26a;stroke-width:1px}.page .mermaid .cluster text{fill:#333}.page .mermaid div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#eaf2fb;border:1px solid #26a;border-radius:2px;pointer-events:none;z-index:100}.page .mermaid .actor{stroke:#999;fill:#eee}.page .mermaid text.actor{fill:#333;stroke:none}.page .mermaid .actor-line{stroke:#666}.page .mermaid .messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.page .mermaid .messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#333}.page .mermaid #arrowhead{fill:#333}.page .mermaid .sequenceNumber{fill:#fff}.page .mermaid #sequencenumber{fill:#333}.page .mermaid #crosshead path{fill:#333 !important;stroke:#333 !important}.page .mermaid .messageText{fill:#333;stroke:none}.page .mermaid .labelBox{stroke:#999;fill:#eee}.page .mermaid .labelText{fill:#333;stroke:none}.page .mermaid .loopText{fill:#333;stroke:none}.page .mermaid .loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#999}.page .mermaid .note{stroke:#770;fill:#ffa}.page .mermaid .noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:14px}.page .mermaid .activation0{fill:#f4f4f4;stroke:#666}.page .mermaid .activation1{fill:#f4f4f4;stroke:#666}.page .mermaid .activation2{fill:#f4f4f4;stroke:#666}.page .mermaid .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid .section{stroke:none;opacity:0.2}.page .mermaid .section0{fill:#80b3e6}.page .mermaid .section2{fill:#80b3e6}.page .mermaid .section1,.page .mermaid .section3{fill:#fff;opacity:0.2}.page .mermaid .sectionTitle0{fill:#333}.page .mermaid .sectionTitle1{fill:#333}.page .mermaid .sectionTitle2{fill:#333}.page .mermaid .sectionTitle3{fill:#333}.page .mermaid .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid .grid .tick{stroke:#e6e6e6;opacity:0.8;shape-rendering:crispEdges}.page .mermaid .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid .grid path{stroke-width:0}.page .mermaid .today{fill:none;stroke:#d42;stroke-width:2px}.page .mermaid .task{stroke-width:2}.page .mermaid .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid .taskText:not([font-size]){font-size:11px}.page .mermaid .taskTextOutsideRight{fill:#333;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid .taskTextOutsideLeft{fill:#333;text-anchor:end;font-size:11px}.page .mermaid .task.clickable{cursor:pointer}.page .mermaid .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.page .mermaid .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.page .mermaid .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.page .mermaid .taskText0,.page .mermaid .taskText1,.page .mermaid .taskText2,.page .mermaid .taskText3{fill:#fff}.page .mermaid .task0,.page .mermaid .task1,.page .mermaid .task2,.page .mermaid .task3{fill:#26a;stroke:#1a4d80}.page .mermaid .taskTextOutside0,.page .mermaid .taskTextOutside2{fill:#333}.page .mermaid .taskTextOutside1,.page .mermaid .taskTextOutside3{fill:#333}.page .mermaid .active0,.page .mermaid .active1,.page .mermaid .active2,.page .mermaid .active3{fill:#eee;stroke:#1a4d80}.page .mermaid .activeText0,.page .mermaid .activeText1,.page .mermaid .activeText2,.page .mermaid .activeText3{fill:#333 !important}.page .mermaid .done0,.page .mermaid .done1,.page .mermaid .done2,.page .mermaid .done3{stroke:#666;fill:#bbb;stroke-width:2}.page .mermaid .doneText0,.page .mermaid .doneText1,.page .mermaid .doneText2,.page .mermaid .doneText3{fill:#333 !important}.page .mermaid .crit0,.page .mermaid .crit1,.page .mermaid .crit2,.page .mermaid .crit3{stroke:#b1361b;fill:#d42;stroke-width:2}.page .mermaid .activeCrit0,.page .mermaid .activeCrit1,.page .mermaid .activeCrit2,.page .mermaid .activeCrit3{stroke:#b1361b;fill:#eee;stroke-width:2}.page .mermaid .doneCrit0,.page .mermaid .doneCrit1,.page .mermaid .doneCrit2,.page .mermaid .doneCrit3{stroke:#b1361b;fill:#bbb;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.page .mermaid .milestone{transform:rotate(45deg) scale(0.8, 0.8)}.page .mermaid .milestoneText{font-style:italic}.page .mermaid .doneCritText0,.page .mermaid .doneCritText1,.page .mermaid .doneCritText2,.page .mermaid .doneCritText3{fill:#333 !important}.page .mermaid .activeCritText0,.page .mermaid .activeCritText1,.page .mermaid .activeCritText2,.page .mermaid .activeCritText3{fill:#333 !important}.page .mermaid .titleText{text-anchor:middle;font-size:18px;fill:#333;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid g.classGroup text{fill:#999;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}.page .mermaid g.classGroup text .title{font-weight:bolder}.page .mermaid g.clickable{cursor:pointer}.page .mermaid g.classGroup rect{fill:#eee;stroke:#999}.page .mermaid g.classGroup line{stroke:#999;stroke-width:1}.page .mermaid .classLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:0.5}.page .mermaid .classLabel .label{fill:#999;font-size:10px}.page .mermaid .relation{stroke:#999;stroke-width:1;fill:none}.page .mermaid .dashed-line{stroke-dasharray:3}.page .mermaid #compositionStart{fill:#999;stroke:#999;stroke-width:1}.page .mermaid #compositionEnd{fill:#999;stroke:#999;stroke-width:1}.page .mermaid #aggregationStart{fill:#eee;stroke:#999;stroke-width:1}.page .mermaid #aggregationEnd{fill:#eee;stroke:#999;stroke-width:1}.page .mermaid #dependencyStart{fill:#999;stroke:#999;stroke-width:1}.page .mermaid #dependencyEnd{fill:#999;stroke:#999;stroke-width:1}.page .mermaid #extensionStart{fill:#999;stroke:#999;stroke-width:1}.page .mermaid #extensionEnd{fill:#999;stroke:#999;stroke-width:1}.page .mermaid .commit-id,.page .mermaid .commit-msg,.page .mermaid .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid .pieTitleText{text-anchor:middle;font-size:25px;fill:#333;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid g.stateGroup text{fill:#999;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid g.stateGroup text{fill:#999;stroke:none;font-size:10px}.page .mermaid g.stateGroup .state-title{font-weight:bolder;fill:#000}.page .mermaid g.stateGroup rect{fill:#eee;stroke:#999}.page .mermaid g.stateGroup line{stroke:#999;stroke-width:1}.page .mermaid .transition{stroke:#999;stroke-width:1;fill:none}.page .mermaid .stateGroup .composit{fill:white;border-bottom:1px}.page .mermaid .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}.page .mermaid .state-note{stroke:#770;fill:#ffa}.page .mermaid .state-note text{fill:black;stroke:none;font-size:10px}.page .mermaid .stateLabel .box{stroke:none;stroke-width:0;fill:#eee;opacity:0.5}.page .mermaid .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.page .mermaid :root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}.dark-theme .page .mermaid .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);color:#333}.dark-theme .page .mermaid .label text{fill:#333}.dark-theme .page .mermaid .node rect,.dark-theme .page .mermaid .node circle,.dark-theme .page .mermaid .node ellipse,.dark-theme .page .mermaid .node polygon,.dark-theme .page .mermaid .node path{fill:#BDD5EA;stroke:purple;stroke-width:1px}.dark-theme .page .mermaid .node .label{text-align:center}.dark-theme .page .mermaid .node.clickable{cursor:pointer}.dark-theme .page .mermaid .arrowheadPath{fill:#d3d3d3}.dark-theme .page .mermaid .edgePath .path{stroke:#d3d3d3;stroke-width:1.5px}.dark-theme .page .mermaid .edgeLabel{background-color:#e8e8e8;text-align:center}.dark-theme .page .mermaid .cluster rect{fill:#6D6D65;stroke:rgba(255,255,255,0.25);stroke-width:1px}.dark-theme .page .mermaid .cluster text{fill:#F9FFFE}.dark-theme .page .mermaid div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#6D6D65;border:1px solid rgba(255,255,255,0.25);border-radius:2px;pointer-events:none;z-index:100}.dark-theme .page .mermaid .actor{stroke:#81B1DB;fill:#BDD5EA}.dark-theme .page .mermaid text.actor{fill:#000;stroke:none}.dark-theme .page .mermaid .actor-line{stroke:#d3d3d3}.dark-theme .page .mermaid .messageLine0{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#d3d3d3}.dark-theme .page .mermaid .messageLine1{stroke-width:1.5;stroke-dasharray:'2 2';stroke:#d3d3d3}.dark-theme .page .mermaid #arrowhead{fill:#d3d3d3}.dark-theme .page .mermaid .sequenceNumber{fill:#fff}.dark-theme .page .mermaid #sequencenumber{fill:#d3d3d3}.dark-theme .page .mermaid #crosshead path{fill:#d3d3d3 !important;stroke:#d3d3d3 !important}.dark-theme .page .mermaid .messageText{fill:#d3d3d3;stroke:none}.dark-theme .page .mermaid .labelBox{stroke:#81B1DB;fill:#BDD5EA}.dark-theme .page .mermaid .labelText{fill:#323D47;stroke:none}.dark-theme .page .mermaid .loopText{fill:#d3d3d3;stroke:none}.dark-theme .page .mermaid .loopLine{stroke-width:2;stroke-dasharray:'2 2';stroke:#81B1DB}.dark-theme .page .mermaid .note{stroke:rgba(255,255,255,0.25);fill:#fff5ad}.dark-theme .page .mermaid .noteText{fill:black;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:14px}.dark-theme .page .mermaid .activation0{fill:#f4f4f4;stroke:#666}.dark-theme .page .mermaid .activation1{fill:#f4f4f4;stroke:#666}.dark-theme .page .mermaid .activation2{fill:#f4f4f4;stroke:#666}.dark-theme .page .mermaid .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .mermaid .section{stroke:none;opacity:0.2}.dark-theme .page .mermaid .section0{fill:rgba(255,255,255,0.3)}.dark-theme .page .mermaid .section2{fill:#EAE8B9}.dark-theme .page .mermaid .section1,.dark-theme .page .mermaid .section3{fill:#fff;opacity:0.2}.dark-theme .page .mermaid .sectionTitle0{fill:#F9FFFE}.dark-theme .page .mermaid .sectionTitle1{fill:#F9FFFE}.dark-theme .page .mermaid .sectionTitle2{fill:#F9FFFE}.dark-theme .page .mermaid .sectionTitle3{fill:#F9FFFE}.dark-theme .page .mermaid .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .mermaid .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}.dark-theme .page .mermaid .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .mermaid .grid path{stroke-width:0}.dark-theme .page .mermaid .today{fill:none;stroke:#DB5757;stroke-width:2px}.dark-theme .page .mermaid .task{stroke-width:2}.dark-theme .page .mermaid .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .mermaid .taskText:not([font-size]){font-size:11px}.dark-theme .page .mermaid .taskTextOutsideRight{fill:#323D47;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .mermaid .taskTextOutsideLeft{fill:#323D47;text-anchor:end;font-size:11px}.dark-theme .page .mermaid .task.clickable{cursor:pointer}.dark-theme .page .mermaid .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.dark-theme .page .mermaid .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.dark-theme .page .mermaid .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}.dark-theme .page .mermaid .taskText0,.dark-theme .page .mermaid .taskText1,.dark-theme .page .mermaid .taskText2,.dark-theme .page .mermaid .taskText3{fill:#323D47}.dark-theme .page .mermaid .task0,.dark-theme .page .mermaid .task1,.dark-theme .page .mermaid .task2,.dark-theme .page .mermaid .task3{fill:#BDD5EA;stroke:rgba(255,255,255,0.5)}.dark-theme .page .mermaid .taskTextOutside0,.dark-theme .page .mermaid .taskTextOutside2{fill:#d3d3d3}.dark-theme .page .mermaid .taskTextOutside1,.dark-theme .page .mermaid .taskTextOutside3{fill:#d3d3d3}.dark-theme .page .mermaid .active0,.dark-theme .page .mermaid .active1,.dark-theme .page .mermaid .active2,.dark-theme .page .mermaid .active3{fill:#81B1DB;stroke:rgba(255,255,255,0.5)}.dark-theme .page .mermaid .activeText0,.dark-theme .page .mermaid .activeText1,.dark-theme .page .mermaid .activeText2,.dark-theme .page .mermaid .activeText3{fill:#323D47 !important}.dark-theme .page .mermaid .done0,.dark-theme .page .mermaid .done1,.dark-theme .page .mermaid .done2,.dark-theme .page .mermaid .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}.dark-theme .page .mermaid .doneText0,.dark-theme .page .mermaid .doneText1,.dark-theme .page .mermaid .doneText2,.dark-theme .page .mermaid .doneText3{fill:#323D47 !important}.dark-theme .page .mermaid .crit0,.dark-theme .page .mermaid .crit1,.dark-theme .page .mermaid .crit2,.dark-theme .page .mermaid .crit3{stroke:#E83737;fill:#E83737;stroke-width:2}.dark-theme .page .mermaid .activeCrit0,.dark-theme .page .mermaid .activeCrit1,.dark-theme .page .mermaid .activeCrit2,.dark-theme .page .mermaid .activeCrit3{stroke:#E83737;fill:#81B1DB;stroke-width:2}.dark-theme .page .mermaid .doneCrit0,.dark-theme .page .mermaid .doneCrit1,.dark-theme .page .mermaid .doneCrit2,.dark-theme .page .mermaid .doneCrit3{stroke:#E83737;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}.dark-theme .page .mermaid .milestone{transform:rotate(45deg) scale(0.8, 0.8)}.dark-theme .page .mermaid .milestoneText{font-style:italic}.dark-theme .page .mermaid .doneCritText0,.dark-theme .page .mermaid .doneCritText1,.dark-theme .page .mermaid .doneCritText2,.dark-theme .page .mermaid .doneCritText3{fill:#323D47 !important}.dark-theme .page .mermaid .activeCritText0,.dark-theme .page .mermaid .activeCritText1,.dark-theme .page .mermaid .activeCritText2,.dark-theme .page .mermaid .activeCritText3{fill:#323D47 !important}.dark-theme .page .mermaid .titleText{text-anchor:middle;font-size:18px;fill:#323D47;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .mermaid g.classGroup text{fill:purple;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}.dark-theme .page .mermaid g.classGroup text .title{font-weight:bolder}.dark-theme .page .mermaid g.clickable{cursor:pointer}.dark-theme .page .mermaid g.classGroup rect{fill:#BDD5EA;stroke:purple}.dark-theme .page .mermaid g.classGroup line{stroke:purple;stroke-width:1}.dark-theme .page .mermaid .classLabel .box{stroke:none;stroke-width:0;fill:#BDD5EA;opacity:0.5}.dark-theme .page .mermaid .classLabel .label{fill:purple;font-size:10px}.dark-theme .page .mermaid .relation{stroke:purple;stroke-width:1;fill:none}.dark-theme .page .mermaid .dashed-line{stroke-dasharray:3}.dark-theme .page .mermaid #compositionStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .page .mermaid #compositionEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .page .mermaid #aggregationStart{fill:#BDD5EA;stroke:purple;stroke-width:1}.dark-theme .page .mermaid #aggregationEnd{fill:#BDD5EA;stroke:purple;stroke-width:1}.dark-theme .page .mermaid #dependencyStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .page .mermaid #dependencyEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .page .mermaid #extensionStart{fill:purple;stroke:purple;stroke-width:1}.dark-theme .page .mermaid #extensionEnd{fill:purple;stroke:purple;stroke-width:1}.dark-theme .page .mermaid .commit-id,.dark-theme .page .mermaid .commit-msg,.dark-theme .page .mermaid .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .mermaid .pieTitleText{text-anchor:middle;font-size:25px;fill:#323D47;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .mermaid .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .mermaid g.stateGroup text{fill:purple;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .mermaid g.stateGroup text{fill:purple;stroke:none;font-size:10px}.dark-theme .page .mermaid g.stateGroup .state-title{font-weight:bolder;fill:#000}.dark-theme .page .mermaid g.stateGroup rect{fill:#BDD5EA;stroke:purple}.dark-theme .page .mermaid g.stateGroup line{stroke:purple;stroke-width:1}.dark-theme .page .mermaid .transition{stroke:purple;stroke-width:1;fill:none}.dark-theme .page .mermaid .stateGroup .composit{fill:white;border-bottom:1px}.dark-theme .page .mermaid .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}.dark-theme .page .mermaid .state-note{stroke:rgba(255,255,255,0.25);fill:#fff5ad}.dark-theme .page .mermaid .state-note text{fill:black;stroke:none;font-size:10px}.dark-theme .page .mermaid .stateLabel .box{stroke:none;stroke-width:0;fill:#BDD5EA;opacity:0.5}.dark-theme .page .mermaid .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}.dark-theme .page .mermaid :root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive} + +/*# sourceMappingURL=mermaid.css.map */ \ No newline at end of file diff --git a/resources/_gen/assets/scss/lib/mermaid/mermaid.scss_6a9b89851c76ccc96568016ff9eba049.json b/resources/_gen/assets/scss/lib/mermaid/mermaid.scss_6a9b89851c76ccc96568016ff9eba049.json new file mode 100644 index 000000000..0a98c2e89 --- /dev/null +++ b/resources/_gen/assets/scss/lib/mermaid/mermaid.scss_6a9b89851c76ccc96568016ff9eba049.json @@ -0,0 +1 @@ +{"Target":"lib/mermaid/mermaid.828bd139deac55c048b4d9ed77d849196aada4a0ea2268d7c59946e8d71665b7.css","MediaType":"text/css","Data":{"Integrity":"sha256-govROd6sVcBItNntd9hJGWqtpKDqImjXxZlG6NcWZbc="}} \ No newline at end of file diff --git a/src/js/theme.js b/src/js/theme.js new file mode 100644 index 000000000..62759a191 --- /dev/null +++ b/src/js/theme.js @@ -0,0 +1,325 @@ +(() => { + 'use strict'; + + class Util { + forEach(elements, handler) { + elements = elements || []; + for (let i = 0; i < elements.length; i++) { + handler(elements[i]); + } + } + + getScrollTop() { + return (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop; + } + + isMobile() { + return window.matchMedia('only screen and (max-width: 560px)').matches; + } + + isTocStatic() { + return window.matchMedia('only screen and (max-width: 960px)').matches; + } + } + + class Theme { + constructor() { + this.util = new Util(); + this.newScrollTop = this.util.getScrollTop(); + this.oldScrollTop = this.newScrollTop; + this.scrollEventSet = new Set(); + this.resizeEventSet = new Set(); + } + + initMenuMobile() { + const menuToggleMobile = document.getElementById('menu-toggle-mobile'); + const menuMobile = document.getElementById('menu-mobile'); + this._menuMobileOnScroll = this._menuMobileOnScroll || (() => { + menuToggleMobile.classList.remove('active'); + menuMobile.classList.remove('active'); + }); + if (this.util.isMobile()) { + menuToggleMobile.onclick = () => { + menuToggleMobile.classList.toggle('active'); + menuMobile.classList.toggle('active'); + }; + this.scrollEventSet.add(this._menuMobileOnScroll); + } else { + this.scrollEventSet.delete(this._menuMobileOnScroll); + } + } + + initSwitchTheme() { + this.util.forEach(document.getElementsByClassName('theme-switch'), (button) => { + button.onclick = () => { + document.body.classList.toggle('dark-theme'); + window.isDark = !window.isDark; + window.localStorage && window.localStorage.setItem('theme', window.isDark ? 'dark' : 'light'); + this.initEcharts(); + }; + }); + } + + initHighlight() { + this.util.forEach(document.querySelectorAll('.highlight > .chroma'), (block) => { + const codes = block.querySelectorAll('pre.chroma > code'); + const code = codes[codes.length - 1]; + const lang = code ? code.className.toLowerCase() : ''; + block.className += ' ' + lang; + }); + this.util.forEach(document.querySelectorAll('.highlight > pre.chroma'), (block) => { + const chroma = document.createElement('div'); + chroma.className = block.className; + const table = document.createElement('table'); + chroma.appendChild(table); + const tbody = document.createElement('tbody'); + table.appendChild(tbody); + const tr = document.createElement('tr'); + tbody.appendChild(tr); + const td = document.createElement('td'); + tr.appendChild(td); + block.parentElement.replaceChild(chroma, block); + td.appendChild(block); + }); + } + + initTable() { + this.util.forEach(document.querySelectorAll('.content table'), (table) => { + const wrapper = document.createElement('div'); + wrapper.className = 'table-wrapper'; + table.parentElement.replaceChild(wrapper, table); + wrapper.appendChild(table); + }); + } + + initHeaderLink() { + for (let num = 1; num <= 6; num++) { + this.util.forEach(document.querySelectorAll('.page.single .content > h' + num), (header) => { + header.classList.add('headerLink'); + header.innerHTML = `${header.innerHTML}`; + }); + } + } + + initToc() { + const tocCore = document.getElementById('TableOfContents'); + if (tocCore === null) return; + if (this.util.isTocStatic()) { + const tocContentStatic = document.getElementById('toc-content-static'); + if (tocCore.parentElement !== tocContentStatic) { + tocCore.parentElement.removeChild(tocCore); + tocContentStatic.appendChild(tocCore); + } + if (this._tocOnScroll) this.scrollEventSet.delete(this._tocOnScroll); + } else { + const tocContentAuto = document.getElementById('toc-content-auto'); + if (tocCore.parentElement !== tocContentAuto) { + tocCore.parentElement.removeChild(tocCore); + tocContentAuto.appendChild(tocCore); + } + const toc = document.getElementById('toc-auto'); + const page = document.getElementsByClassName('page')[0]; + toc.style.maxWidth = `${page.getBoundingClientRect().left - 40}px`; + this._tocLinks = this._tocLinks || tocCore.getElementsByTagName('a'); + this._tocLis = this._tocLis || tocCore.getElementsByTagName('li'); + this._headerLinks = this._headerLinks || document.getElementsByClassName('headerLink') || []; + const headerIsFixed = window.desktopHeaderMode !== 'normal'; + const headerHeight = document.getElementById('header-desktop').offsetHeight; + const TOP_SPACING = 20 + (headerIsFixed ? headerHeight : 0); + const minTocTop = toc.offsetTop; + const minScrollTop = minTocTop - TOP_SPACING + (headerIsFixed ? 0 : headerHeight); + this._tocOnScroll = this._tocOnScroll || (() => { + const footerTop = document.getElementById('post-footer').offsetTop; + const maxTocTop = footerTop - toc.getBoundingClientRect().height; + const maxScrollTop = maxTocTop - TOP_SPACING + (headerIsFixed ? 0 : headerHeight); + if (this.newScrollTop < minScrollTop) { + toc.style.position = 'absolute'; + toc.style.top = `${minTocTop}px`; + } else if (this.newScrollTop > maxScrollTop) { + toc.style.position = 'absolute'; + toc.style.top = `${maxTocTop}px`; + } else { + toc.style.position = 'fixed'; + toc.style.top = `${TOP_SPACING}px`; + } + + this.util.forEach(this._tocLinks, (link) => { link.classList.remove('active'); }); + this.util.forEach(this._tocLis, (link) => { link.classList.remove('has-active'); }); + const INDEX_SPACING = 20 + (headerIsFixed ? headerHeight : 0); + let activeTocIndex = this._headerLinks.length - 1; + for (let i = 0; i < this._headerLinks.length - 1; i++) { + const thisTop = this._headerLinks[i].getBoundingClientRect().top; + const nextTop = this._headerLinks[i + 1].getBoundingClientRect().top; + if ((i == 0 && thisTop > INDEX_SPACING) + || (thisTop <= INDEX_SPACING && nextTop > INDEX_SPACING)) { + activeTocIndex = i; + break; + } + } + if (activeTocIndex !== -1) { + this._tocLinks[activeTocIndex].classList.add('active'); + let parent = this._tocLinks[activeTocIndex].parentElement; + while (parent !== tocCore) { + parent.classList.add('has-active'); + parent = parent.parentElement.parentElement; + } + } + }); + this._tocOnScroll(); + this.scrollEventSet.add(this._tocOnScroll); + } + } + + initMermaid() { + if (window.mermaidArr) { + mermaid.initialize({startOnLoad: false, theme: 'null'}); + this.util.forEach(window.mermaidArr, (id) => { + const element = document.getElementById(id); + mermaid.mermaidAPI.render('svg-' + id, window.contentMap[id], (svgCode) => { + element.innerHTML = svgCode; + }, element); + }); + } + } + + initEcharts() { + if (window.echartsArr) { + this._echartsArr = this._echartsArr || []; + for (let i = 0; i < this._echartsArr.length; i++) { + this._echartsArr[i].dispose(); + } + this._echartsArr = []; + this.util.forEach(window.echartsArr, (id) => { + const chart = echarts.init(document.getElementById(id), window.isDark ? 'dark' : 'macarons', {renderer: 'svg'}); + chart.setOption(JSON.parse(window.contentMap[id])); + this._echartsArr.push(chart); + }); + this._echartsOnResize = this._echartsOnResize || (() => { + for (let i = 0; i < this._echartsArr.length; i++) { + this._echartsArr[i].resize(); + } + }); + this.resizeEventSet.add(this._echartsOnResize); + } + } + + initTypeit() { + if (window.typeitArr) { + for (let i = 0; i < window.typeitArr.length; i++) { + const group = window.typeitArr[i]; + (function typeone(i) { + const id = group[i]; + if (i === group.length - 1) { + new TypeIt(`#${id}`, { + strings: window.contentMap[id], + }).go(); + return; + } + let instance = new TypeIt(`#${id}`, { + strings: window.contentMap[id], + afterComplete: () => { + instance.destroy(); + typeone(i + 1); + }, + }).go(); + })(0); + } + } + } + + initSmoothScroll() { + if ((!this.util.isMobile() && window.desktopHeaderMode === 'normal') + || (this.util.isMobile() && window.mobileHeaderMode === 'normal')) { + new SmoothScroll('[href^="#"]', {speed: 300, speedAsDuration: true}); + } else { + new SmoothScroll('[href^="#"]', {speed: 300, speedAsDuration: true, header: '#header-desktop'}); + } + } + + onScroll() { + const headers = []; + if (window.desktopHeaderMode === 'auto') headers.push(document.getElementById('header-desktop')); + if (window.mobileHeaderMode === 'auto') headers.push(document.getElementById('header-mobile')); + this.util.forEach(headers, (header) => { + header.classList.add('animated'); + header.classList.add('faster'); + }); + const toTopButton = document.getElementById('dynamic-to-top'); + const MIN_SCROLL = 20; + window.addEventListener('scroll', () => { + this.newScrollTop = this.util.getScrollTop(); + const scroll = this.newScrollTop - this.oldScrollTop; + this.util.forEach(headers, (header) => { + if (scroll > MIN_SCROLL) { + header.classList.remove('fadeInDown'); + header.classList.add('fadeOutUp'); + } else if (scroll < - MIN_SCROLL) { + header.classList.remove('fadeOutUp'); + header.classList.add('fadeInDown'); + } + }); + if (this.newScrollTop > 400) { + if (scroll > MIN_SCROLL) { + toTopButton.classList.remove('fadeIn'); + toTopButton.classList.add('fadeOut'); + } else if (scroll < - MIN_SCROLL) { + toTopButton.style.display = 'block'; + toTopButton.classList.remove('fadeOut'); + toTopButton.classList.add('fadeIn'); + } + } else { + toTopButton.style.display = 'none'; + } + if (!this._scrollTimeout) { + this._scrollTimeout = window.setTimeout(() => { + this._scrollTimeout = null; + for (let event of this.scrollEventSet) event(); + }, 10); + } + this.oldScrollTop = this.newScrollTop; + }, false); + } + + onResize() { + window.addEventListener('resize', () => { + if (!this._resizeTimeout) { + this._resizeTimeout = window.setTimeout(() => { + this._resizeTimeout = null; + for (let event of this.resizeEventSet) event(); + this.initMenuMobile(); + this.initToc(); + this.initSmoothScroll(); + this.initMermaid() + }, 100); + } + }, false); + } + + init() { + this.initMenuMobile(); + this.initSwitchTheme(); + this.initHighlight(); + this.initTable(); + this.initHeaderLink(); + this.initMermaid(); + this.initEcharts(); + this.initTypeit(); + this.initToc(); + this.initSmoothScroll(); + + this.onScroll(); + this.onResize(); + } + } + + const themeInit = () => { + const theme = new Theme(); + theme.init(); + }; + + if (document.readyState !== 'loading') { + themeInit(); + } else { + document.addEventListener('DOMContentLoaded', themeInit, false); + } +})(); diff --git a/static/css/lib/webfonts/fa-brands-400.woff b/static/css/lib/webfonts/fa-brands-400.woff deleted file mode 100644 index 834493c81..000000000 Binary files a/static/css/lib/webfonts/fa-brands-400.woff and /dev/null differ diff --git a/static/css/lib/webfonts/fa-brands-400.woff2 b/static/css/lib/webfonts/fa-brands-400.woff2 deleted file mode 100644 index 8a88b3890..000000000 Binary files a/static/css/lib/webfonts/fa-brands-400.woff2 and /dev/null differ diff --git a/static/css/lib/webfonts/fa-regular-400.woff b/static/css/lib/webfonts/fa-regular-400.woff deleted file mode 100644 index cde5a3f59..000000000 Binary files a/static/css/lib/webfonts/fa-regular-400.woff and /dev/null differ diff --git a/static/css/lib/webfonts/fa-regular-400.woff2 b/static/css/lib/webfonts/fa-regular-400.woff2 deleted file mode 100644 index 1d7481337..000000000 Binary files a/static/css/lib/webfonts/fa-regular-400.woff2 and /dev/null differ diff --git a/static/css/lib/webfonts/fa-solid-900.woff b/static/css/lib/webfonts/fa-solid-900.woff deleted file mode 100644 index 001d143db..000000000 Binary files a/static/css/lib/webfonts/fa-solid-900.woff and /dev/null differ diff --git a/static/css/lib/webfonts/fa-solid-900.woff2 b/static/css/lib/webfonts/fa-solid-900.woff2 deleted file mode 100644 index 762e7dca4..000000000 Binary files a/static/css/lib/webfonts/fa-solid-900.woff2 and /dev/null differ diff --git a/static/lib/fonts/forkawesome-webfont.eot b/static/lib/fonts/forkawesome-webfont.eot new file mode 100644 index 000000000..b96d208fa Binary files /dev/null and b/static/lib/fonts/forkawesome-webfont.eot differ diff --git a/static/lib/fonts/forkawesome-webfont.svg b/static/lib/fonts/forkawesome-webfont.svg new file mode 100644 index 000000000..e99720454 --- /dev/null +++ b/static/lib/fonts/forkawesome-webfont.svg @@ -0,0 +1,2849 @@ + + + + + +Created by FontForge 20180321 at Mon Feb 18 18:29:30 2019 + By Julien Deswaef +The Fork Awesome font is licensed under the SIL OFL 1.1 (http://scripts.sil.org/OFL). Fork Awesome is a fork based of off Font Awesome 4.7.0 by Dave Gandy. More info on licenses at https://forkawesome.github.io + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/lib/fonts/forkawesome-webfont.ttf b/static/lib/fonts/forkawesome-webfont.ttf new file mode 100644 index 000000000..6cf62efb8 Binary files /dev/null and b/static/lib/fonts/forkawesome-webfont.ttf differ diff --git a/static/lib/fonts/forkawesome-webfont.woff b/static/lib/fonts/forkawesome-webfont.woff new file mode 100644 index 000000000..477da445a Binary files /dev/null and b/static/lib/fonts/forkawesome-webfont.woff differ diff --git a/static/lib/fonts/forkawesome-webfont.woff2 b/static/lib/fonts/forkawesome-webfont.woff2 new file mode 100644 index 000000000..f3520b533 Binary files /dev/null and b/static/lib/fonts/forkawesome-webfont.woff2 differ diff --git a/static/lib/fonts/lg.eot b/static/lib/fonts/lg.eot new file mode 100644 index 000000000..51264c4fd Binary files /dev/null and b/static/lib/fonts/lg.eot differ diff --git a/static/lib/fonts/lg.svg b/static/lib/fonts/lg.svg new file mode 100644 index 000000000..83d681f11 --- /dev/null +++ b/static/lib/fonts/lg.svg @@ -0,0 +1,47 @@ + + + + + + +{ + "fontFamily": "lg", + "majorVersion": 1, + "minorVersion": 0, + "fontURL": "https://github.com/sachinchoolur/lightgallery.js", + "copyright": "sachin", + "license": "MLT", + "licenseURL": "http://opensource.org/licenses/MIT", + "version": "Version 1.0", + "fontId": "lg", + "psName": "lg", + "subFamily": "Regular", + "fullName": "lg", + "description": "Font generated by IcoMoon." +} + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/lib/fonts/lg.ttf b/static/lib/fonts/lg.ttf new file mode 100644 index 000000000..8ad81996e Binary files /dev/null and b/static/lib/fonts/lg.ttf differ diff --git a/static/lib/fonts/lg.woff b/static/lib/fonts/lg.woff new file mode 100644 index 000000000..d98ff6054 Binary files /dev/null and b/static/lib/fonts/lg.woff differ diff --git a/static/lib/iconfont/iconfont.eot b/static/lib/iconfont/iconfont.eot new file mode 100644 index 000000000..5f872f835 Binary files /dev/null and b/static/lib/iconfont/iconfont.eot differ diff --git a/static/lib/iconfont/iconfont.svg b/static/lib/iconfont/iconfont.svg new file mode 100644 index 000000000..a1a745320 --- /dev/null +++ b/static/lib/iconfont/iconfont.svg @@ -0,0 +1,494 @@ + + + + + +Created by iconfont + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/lib/iconfont/iconfont.ttf b/static/lib/iconfont/iconfont.ttf new file mode 100644 index 000000000..94c77818a Binary files /dev/null and b/static/lib/iconfont/iconfont.ttf differ diff --git a/static/lib/iconfont/iconfont.woff b/static/lib/iconfont/iconfont.woff new file mode 100644 index 000000000..4dff1cec5 Binary files /dev/null and b/static/lib/iconfont/iconfont.woff differ diff --git a/static/lib/iconfont/iconfont.woff2 b/static/lib/iconfont/iconfont.woff2 new file mode 100644 index 000000000..395e93997 Binary files /dev/null and b/static/lib/iconfont/iconfont.woff2 differ diff --git a/static/lib/img/loading.gif b/static/lib/img/loading.gif new file mode 100644 index 000000000..d3bbc8062 Binary files /dev/null and b/static/lib/img/loading.gif differ diff --git a/static/lib/img/video-play.png b/static/lib/img/video-play.png new file mode 100644 index 000000000..489354036 Binary files /dev/null and b/static/lib/img/video-play.png differ diff --git a/static/lib/img/vimeo-play.png b/static/lib/img/vimeo-play.png new file mode 100644 index 000000000..ef7d24572 Binary files /dev/null and b/static/lib/img/vimeo-play.png differ diff --git a/static/lib/img/youtube-play.png b/static/lib/img/youtube-play.png new file mode 100644 index 000000000..dfebb91fd Binary files /dev/null and b/static/lib/img/youtube-play.png differ diff --git a/static/css/lib/katex/fonts/KaTeX_AMS-Regular.ttf b/static/lib/katex/fonts/KaTeX_AMS-Regular.ttf similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_AMS-Regular.ttf rename to static/lib/katex/fonts/KaTeX_AMS-Regular.ttf diff --git a/static/css/lib/katex/fonts/KaTeX_AMS-Regular.woff b/static/lib/katex/fonts/KaTeX_AMS-Regular.woff similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_AMS-Regular.woff rename to static/lib/katex/fonts/KaTeX_AMS-Regular.woff diff --git a/static/css/lib/katex/fonts/KaTeX_AMS-Regular.woff2 b/static/lib/katex/fonts/KaTeX_AMS-Regular.woff2 similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_AMS-Regular.woff2 rename to static/lib/katex/fonts/KaTeX_AMS-Regular.woff2 diff --git a/static/css/lib/katex/fonts/KaTeX_Caligraphic-Bold.ttf b/static/lib/katex/fonts/KaTeX_Caligraphic-Bold.ttf similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Caligraphic-Bold.ttf rename to static/lib/katex/fonts/KaTeX_Caligraphic-Bold.ttf diff --git a/static/css/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff b/static/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff rename to static/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff diff --git a/static/css/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff2 b/static/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff2 similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff2 rename to static/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff2 diff --git a/static/css/lib/katex/fonts/KaTeX_Caligraphic-Regular.ttf b/static/lib/katex/fonts/KaTeX_Caligraphic-Regular.ttf similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Caligraphic-Regular.ttf rename to static/lib/katex/fonts/KaTeX_Caligraphic-Regular.ttf diff --git a/static/css/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff b/static/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff rename to static/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff diff --git a/static/css/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff2 b/static/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff2 similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff2 rename to static/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff2 diff --git a/static/css/lib/katex/fonts/KaTeX_Fraktur-Bold.ttf b/static/lib/katex/fonts/KaTeX_Fraktur-Bold.ttf similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Fraktur-Bold.ttf rename to static/lib/katex/fonts/KaTeX_Fraktur-Bold.ttf diff --git a/static/css/lib/katex/fonts/KaTeX_Fraktur-Bold.woff b/static/lib/katex/fonts/KaTeX_Fraktur-Bold.woff similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Fraktur-Bold.woff rename to static/lib/katex/fonts/KaTeX_Fraktur-Bold.woff diff --git a/static/css/lib/katex/fonts/KaTeX_Fraktur-Bold.woff2 b/static/lib/katex/fonts/KaTeX_Fraktur-Bold.woff2 similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Fraktur-Bold.woff2 rename to static/lib/katex/fonts/KaTeX_Fraktur-Bold.woff2 diff --git a/static/css/lib/katex/fonts/KaTeX_Fraktur-Regular.ttf b/static/lib/katex/fonts/KaTeX_Fraktur-Regular.ttf similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Fraktur-Regular.ttf rename to static/lib/katex/fonts/KaTeX_Fraktur-Regular.ttf diff --git a/static/css/lib/katex/fonts/KaTeX_Fraktur-Regular.woff b/static/lib/katex/fonts/KaTeX_Fraktur-Regular.woff similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Fraktur-Regular.woff rename to static/lib/katex/fonts/KaTeX_Fraktur-Regular.woff diff --git a/static/css/lib/katex/fonts/KaTeX_Fraktur-Regular.woff2 b/static/lib/katex/fonts/KaTeX_Fraktur-Regular.woff2 similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Fraktur-Regular.woff2 rename to static/lib/katex/fonts/KaTeX_Fraktur-Regular.woff2 diff --git a/static/css/lib/katex/fonts/KaTeX_Main-Bold.ttf b/static/lib/katex/fonts/KaTeX_Main-Bold.ttf similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Main-Bold.ttf rename to static/lib/katex/fonts/KaTeX_Main-Bold.ttf diff --git a/static/css/lib/katex/fonts/KaTeX_Main-Bold.woff b/static/lib/katex/fonts/KaTeX_Main-Bold.woff similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Main-Bold.woff rename to static/lib/katex/fonts/KaTeX_Main-Bold.woff diff --git a/static/css/lib/katex/fonts/KaTeX_Main-Bold.woff2 b/static/lib/katex/fonts/KaTeX_Main-Bold.woff2 similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Main-Bold.woff2 rename to static/lib/katex/fonts/KaTeX_Main-Bold.woff2 diff --git a/static/css/lib/katex/fonts/KaTeX_Main-BoldItalic.ttf b/static/lib/katex/fonts/KaTeX_Main-BoldItalic.ttf similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Main-BoldItalic.ttf rename to static/lib/katex/fonts/KaTeX_Main-BoldItalic.ttf diff --git a/static/css/lib/katex/fonts/KaTeX_Main-BoldItalic.woff b/static/lib/katex/fonts/KaTeX_Main-BoldItalic.woff similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Main-BoldItalic.woff rename to static/lib/katex/fonts/KaTeX_Main-BoldItalic.woff diff --git a/static/css/lib/katex/fonts/KaTeX_Main-BoldItalic.woff2 b/static/lib/katex/fonts/KaTeX_Main-BoldItalic.woff2 similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Main-BoldItalic.woff2 rename to static/lib/katex/fonts/KaTeX_Main-BoldItalic.woff2 diff --git a/static/css/lib/katex/fonts/KaTeX_Main-Italic.ttf b/static/lib/katex/fonts/KaTeX_Main-Italic.ttf similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Main-Italic.ttf rename to static/lib/katex/fonts/KaTeX_Main-Italic.ttf diff --git a/static/css/lib/katex/fonts/KaTeX_Main-Italic.woff b/static/lib/katex/fonts/KaTeX_Main-Italic.woff similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Main-Italic.woff rename to static/lib/katex/fonts/KaTeX_Main-Italic.woff diff --git a/static/css/lib/katex/fonts/KaTeX_Main-Italic.woff2 b/static/lib/katex/fonts/KaTeX_Main-Italic.woff2 similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Main-Italic.woff2 rename to static/lib/katex/fonts/KaTeX_Main-Italic.woff2 diff --git a/static/css/lib/katex/fonts/KaTeX_Main-Regular.ttf b/static/lib/katex/fonts/KaTeX_Main-Regular.ttf similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Main-Regular.ttf rename to static/lib/katex/fonts/KaTeX_Main-Regular.ttf diff --git a/static/css/lib/katex/fonts/KaTeX_Main-Regular.woff b/static/lib/katex/fonts/KaTeX_Main-Regular.woff similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Main-Regular.woff rename to static/lib/katex/fonts/KaTeX_Main-Regular.woff diff --git a/static/css/lib/katex/fonts/KaTeX_Main-Regular.woff2 b/static/lib/katex/fonts/KaTeX_Main-Regular.woff2 similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Main-Regular.woff2 rename to static/lib/katex/fonts/KaTeX_Main-Regular.woff2 diff --git a/static/css/lib/katex/fonts/KaTeX_Math-BoldItalic.ttf b/static/lib/katex/fonts/KaTeX_Math-BoldItalic.ttf similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Math-BoldItalic.ttf rename to static/lib/katex/fonts/KaTeX_Math-BoldItalic.ttf diff --git a/static/css/lib/katex/fonts/KaTeX_Math-BoldItalic.woff b/static/lib/katex/fonts/KaTeX_Math-BoldItalic.woff similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Math-BoldItalic.woff rename to static/lib/katex/fonts/KaTeX_Math-BoldItalic.woff diff --git a/static/css/lib/katex/fonts/KaTeX_Math-BoldItalic.woff2 b/static/lib/katex/fonts/KaTeX_Math-BoldItalic.woff2 similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Math-BoldItalic.woff2 rename to static/lib/katex/fonts/KaTeX_Math-BoldItalic.woff2 diff --git a/static/css/lib/katex/fonts/KaTeX_Math-Italic.ttf b/static/lib/katex/fonts/KaTeX_Math-Italic.ttf similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Math-Italic.ttf rename to static/lib/katex/fonts/KaTeX_Math-Italic.ttf diff --git a/static/css/lib/katex/fonts/KaTeX_Math-Italic.woff b/static/lib/katex/fonts/KaTeX_Math-Italic.woff similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Math-Italic.woff rename to static/lib/katex/fonts/KaTeX_Math-Italic.woff diff --git a/static/css/lib/katex/fonts/KaTeX_Math-Italic.woff2 b/static/lib/katex/fonts/KaTeX_Math-Italic.woff2 similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Math-Italic.woff2 rename to static/lib/katex/fonts/KaTeX_Math-Italic.woff2 diff --git a/static/css/lib/katex/fonts/KaTeX_SansSerif-Bold.ttf b/static/lib/katex/fonts/KaTeX_SansSerif-Bold.ttf similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_SansSerif-Bold.ttf rename to static/lib/katex/fonts/KaTeX_SansSerif-Bold.ttf diff --git a/static/css/lib/katex/fonts/KaTeX_SansSerif-Bold.woff b/static/lib/katex/fonts/KaTeX_SansSerif-Bold.woff similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_SansSerif-Bold.woff rename to static/lib/katex/fonts/KaTeX_SansSerif-Bold.woff diff --git a/static/css/lib/katex/fonts/KaTeX_SansSerif-Bold.woff2 b/static/lib/katex/fonts/KaTeX_SansSerif-Bold.woff2 similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_SansSerif-Bold.woff2 rename to static/lib/katex/fonts/KaTeX_SansSerif-Bold.woff2 diff --git a/static/css/lib/katex/fonts/KaTeX_SansSerif-Italic.ttf b/static/lib/katex/fonts/KaTeX_SansSerif-Italic.ttf similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_SansSerif-Italic.ttf rename to static/lib/katex/fonts/KaTeX_SansSerif-Italic.ttf diff --git a/static/css/lib/katex/fonts/KaTeX_SansSerif-Italic.woff b/static/lib/katex/fonts/KaTeX_SansSerif-Italic.woff similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_SansSerif-Italic.woff rename to static/lib/katex/fonts/KaTeX_SansSerif-Italic.woff diff --git a/static/css/lib/katex/fonts/KaTeX_SansSerif-Italic.woff2 b/static/lib/katex/fonts/KaTeX_SansSerif-Italic.woff2 similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_SansSerif-Italic.woff2 rename to static/lib/katex/fonts/KaTeX_SansSerif-Italic.woff2 diff --git a/static/css/lib/katex/fonts/KaTeX_SansSerif-Regular.ttf b/static/lib/katex/fonts/KaTeX_SansSerif-Regular.ttf similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_SansSerif-Regular.ttf rename to static/lib/katex/fonts/KaTeX_SansSerif-Regular.ttf diff --git a/static/css/lib/katex/fonts/KaTeX_SansSerif-Regular.woff b/static/lib/katex/fonts/KaTeX_SansSerif-Regular.woff similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_SansSerif-Regular.woff rename to static/lib/katex/fonts/KaTeX_SansSerif-Regular.woff diff --git a/static/css/lib/katex/fonts/KaTeX_SansSerif-Regular.woff2 b/static/lib/katex/fonts/KaTeX_SansSerif-Regular.woff2 similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_SansSerif-Regular.woff2 rename to static/lib/katex/fonts/KaTeX_SansSerif-Regular.woff2 diff --git a/static/css/lib/katex/fonts/KaTeX_Script-Regular.ttf b/static/lib/katex/fonts/KaTeX_Script-Regular.ttf similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Script-Regular.ttf rename to static/lib/katex/fonts/KaTeX_Script-Regular.ttf diff --git a/static/css/lib/katex/fonts/KaTeX_Script-Regular.woff b/static/lib/katex/fonts/KaTeX_Script-Regular.woff similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Script-Regular.woff rename to static/lib/katex/fonts/KaTeX_Script-Regular.woff diff --git a/static/css/lib/katex/fonts/KaTeX_Script-Regular.woff2 b/static/lib/katex/fonts/KaTeX_Script-Regular.woff2 similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Script-Regular.woff2 rename to static/lib/katex/fonts/KaTeX_Script-Regular.woff2 diff --git a/static/css/lib/katex/fonts/KaTeX_Size1-Regular.ttf b/static/lib/katex/fonts/KaTeX_Size1-Regular.ttf similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Size1-Regular.ttf rename to static/lib/katex/fonts/KaTeX_Size1-Regular.ttf diff --git a/static/css/lib/katex/fonts/KaTeX_Size1-Regular.woff b/static/lib/katex/fonts/KaTeX_Size1-Regular.woff similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Size1-Regular.woff rename to static/lib/katex/fonts/KaTeX_Size1-Regular.woff diff --git a/static/css/lib/katex/fonts/KaTeX_Size1-Regular.woff2 b/static/lib/katex/fonts/KaTeX_Size1-Regular.woff2 similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Size1-Regular.woff2 rename to static/lib/katex/fonts/KaTeX_Size1-Regular.woff2 diff --git a/static/css/lib/katex/fonts/KaTeX_Size2-Regular.ttf b/static/lib/katex/fonts/KaTeX_Size2-Regular.ttf similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Size2-Regular.ttf rename to static/lib/katex/fonts/KaTeX_Size2-Regular.ttf diff --git a/static/css/lib/katex/fonts/KaTeX_Size2-Regular.woff b/static/lib/katex/fonts/KaTeX_Size2-Regular.woff similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Size2-Regular.woff rename to static/lib/katex/fonts/KaTeX_Size2-Regular.woff diff --git a/static/css/lib/katex/fonts/KaTeX_Size2-Regular.woff2 b/static/lib/katex/fonts/KaTeX_Size2-Regular.woff2 similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Size2-Regular.woff2 rename to static/lib/katex/fonts/KaTeX_Size2-Regular.woff2 diff --git a/static/css/lib/katex/fonts/KaTeX_Size3-Regular.ttf b/static/lib/katex/fonts/KaTeX_Size3-Regular.ttf similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Size3-Regular.ttf rename to static/lib/katex/fonts/KaTeX_Size3-Regular.ttf diff --git a/static/css/lib/katex/fonts/KaTeX_Size3-Regular.woff b/static/lib/katex/fonts/KaTeX_Size3-Regular.woff similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Size3-Regular.woff rename to static/lib/katex/fonts/KaTeX_Size3-Regular.woff diff --git a/static/css/lib/katex/fonts/KaTeX_Size3-Regular.woff2 b/static/lib/katex/fonts/KaTeX_Size3-Regular.woff2 similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Size3-Regular.woff2 rename to static/lib/katex/fonts/KaTeX_Size3-Regular.woff2 diff --git a/static/css/lib/katex/fonts/KaTeX_Size4-Regular.ttf b/static/lib/katex/fonts/KaTeX_Size4-Regular.ttf similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Size4-Regular.ttf rename to static/lib/katex/fonts/KaTeX_Size4-Regular.ttf diff --git a/static/css/lib/katex/fonts/KaTeX_Size4-Regular.woff b/static/lib/katex/fonts/KaTeX_Size4-Regular.woff similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Size4-Regular.woff rename to static/lib/katex/fonts/KaTeX_Size4-Regular.woff diff --git a/static/css/lib/katex/fonts/KaTeX_Size4-Regular.woff2 b/static/lib/katex/fonts/KaTeX_Size4-Regular.woff2 similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Size4-Regular.woff2 rename to static/lib/katex/fonts/KaTeX_Size4-Regular.woff2 diff --git a/static/css/lib/katex/fonts/KaTeX_Typewriter-Regular.ttf b/static/lib/katex/fonts/KaTeX_Typewriter-Regular.ttf similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Typewriter-Regular.ttf rename to static/lib/katex/fonts/KaTeX_Typewriter-Regular.ttf diff --git a/static/css/lib/katex/fonts/KaTeX_Typewriter-Regular.woff b/static/lib/katex/fonts/KaTeX_Typewriter-Regular.woff similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Typewriter-Regular.woff rename to static/lib/katex/fonts/KaTeX_Typewriter-Regular.woff diff --git a/static/css/lib/katex/fonts/KaTeX_Typewriter-Regular.woff2 b/static/lib/katex/fonts/KaTeX_Typewriter-Regular.woff2 similarity index 100% rename from static/css/lib/katex/fonts/KaTeX_Typewriter-Regular.woff2 rename to static/lib/katex/fonts/KaTeX_Typewriter-Regular.woff2 diff --git a/static/css/lib/webfonts/fa-brands-400.eot b/static/lib/webfonts/fa-brands-400.eot similarity index 92% rename from static/css/lib/webfonts/fa-brands-400.eot rename to static/lib/webfonts/fa-brands-400.eot index dc432594e..e4ccce2d5 100644 Binary files a/static/css/lib/webfonts/fa-brands-400.eot and b/static/lib/webfonts/fa-brands-400.eot differ diff --git a/static/css/lib/webfonts/fa-brands-400.svg b/static/lib/webfonts/fa-brands-400.svg similarity index 96% rename from static/css/lib/webfonts/fa-brands-400.svg rename to static/lib/webfonts/fa-brands-400.svg index 2991063a0..eb0f26fcb 100644 --- a/static/css/lib/webfonts/fa-brands-400.svg +++ b/static/lib/webfonts/fa-brands-400.svg @@ -1,12 +1,12 @@ -Created by FontForge 20190801 at Mon Sep 23 12:52:52 2019 +Created by FontForge 20190801 at Tue Feb 4 18:05:39 2020 By Robert Madole Copyright (c) Font Awesome @@ -23,7 +23,7 @@ Copyright (c) Font Awesome bbox="-0.200195 -66.9505 641.5 448.3" underline-thickness="25" underline-position="-50" - unicode-range="U+0020-F8E8" + unicode-range="U+0020-F957" /> - + - + +d="M274.69 173.31l-108.69 -71.3096l71.3096 108.69zM256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM411.85 265.21c-2.71094 -1.13477 -4.91211 -4.44043 -4.91211 -7.37988c0 -0.880859 0.274414 -2.25684 0.612305 -3.07031 +v0c1.12988 -2.72559 4.44043 -4.9375 7.39062 -4.9375c0.87793 0 2.24902 0.272461 3.05957 0.607422l14.75 6.11035c2.72754 1.12891 4.94141 4.44043 4.94141 7.39258c0 0.879883 -0.273438 2.25391 -0.611328 3.06738v0 +c-1.12793 2.73047 -4.44043 4.94629 -7.39453 4.94629c-0.876953 0 -2.24512 -0.271484 -3.05566 -0.606445zM314.43 354c-0.341797 -0.818359 -0.620117 -2.20117 -0.620117 -3.08789c0 -2.95215 2.21387 -6.26367 4.94043 -7.39258v0 +c0.810547 -0.334961 2.18164 -0.607422 3.05957 -0.607422c2.9502 0 6.26074 2.21191 7.39062 4.9375l6.12988 14.7803c0.335938 0.811523 0.608398 2.18164 0.608398 3.05957c0 2.9502 -2.21289 6.26172 -4.93848 7.39062v0 +c-0.813477 0.337891 -2.18848 0.612305 -3.07031 0.612305c-2.93848 0 -6.24512 -2.20117 -7.37988 -4.91211zM256 388c-4.41602 0 -8 -3.58398 -8 -8v-16c0 -4.41602 3.58398 -8 8 -8v0c4.41602 0 8 3.58398 8 8v16c0 4.41602 -3.58398 8 -8 8v0zM181 373.08 +c-2.72461 -1.12988 -4.93555 -4.44043 -4.93555 -7.38965c0 -0.869141 0.266602 -2.22656 0.595703 -3.03027l6.12988 -14.7803c1.09863 -2.80664 4.43555 -5.08398 7.44922 -5.08398c4.41602 0 8 3.58398 8 8c0 0.922852 -0.299805 2.3584 -0.668945 3.2041l-6.11035 14.75 +c-1.12891 2.72754 -4.44043 4.94141 -7.39258 4.94141c-0.879883 0 -2.25391 -0.273438 -3.06738 -0.611328zM117.42 330.59c-1.29297 -1.29297 -2.35156 -3.82617 -2.35156 -5.65527c0 -1.81445 1.03613 -4.33398 2.31152 -5.625l11.3105 -11.3096 +c1.29297 -1.29199 3.82617 -2.34082 5.6543 -2.34082s4.3623 1.04883 5.65527 2.34082v0c1.28418 1.29199 2.32617 3.81836 2.32617 5.63965c0 1.82227 -1.04199 4.34863 -2.32617 5.64062l-11.2695 11.3096c-1.29395 1.29297 -3.82715 2.3418 -5.65527 2.3418 +s-4.3623 -1.04883 -5.65527 -2.3418v0zM60 192c0 -4.41602 3.58398 -8 8 -8h16c4.41602 0 8 3.58398 8 8v0c0 4.41602 -3.58398 8 -8 8h-16c-4.41602 0 -8 -3.58398 -8 -8v0zM100.15 118.79c2.71094 1.13477 4.91211 4.44043 4.91211 7.37988 +c0 0.880859 -0.274414 2.25684 -0.612305 3.07031v0c-1.12988 2.72559 -4.44043 4.9375 -7.39062 4.9375c-0.87793 0 -2.24902 -0.272461 -3.05957 -0.607422l-14.75 -6.11035c-2.72754 -1.12891 -4.94141 -4.44043 -4.94141 -7.39258 +c0 -0.879883 0.273438 -2.25391 0.611328 -3.06738v0c1.12793 -2.73047 4.44043 -4.94629 7.39453 -4.94629c0.876953 0 2.24512 0.271484 3.05566 0.606445zM104.48 254.79c0.333008 0.80957 0.604492 2.14551 0.604492 3.02051 +c0 2.94922 -2.21094 6.25977 -4.93457 7.38965l-14.7803 6.12988c-0.811523 0.335938 -2.18164 0.608398 -3.05957 0.608398c-2.9502 0 -6.26172 -2.21289 -7.39062 -4.93848v0c-0.337891 -0.813477 -0.612305 -2.18848 -0.612305 -3.07031 +c0 -2.93848 2.20117 -6.24512 4.91211 -7.37988l14.7803 -6.12012c0.814453 -0.338867 2.19141 -0.614258 3.07422 -0.614258c2.96582 0 6.28418 2.22852 7.40625 4.97461v0zM197.57 30c0.369141 0.845703 0.668945 2.28125 0.668945 3.2041c0 4.41602 -3.58398 8 -8 8 +c-3.01367 0 -6.35059 -2.27734 -7.44922 -5.08398l-6.12988 -14.7803c-0.335938 -0.811523 -0.608398 -2.18164 -0.608398 -3.05957c0 -4.41797 3.58594 -8.00293 8.00293 -8.00293c2.95312 0 6.2666 2.21387 7.39551 4.94238zM264 4v16c0 4.41602 -3.58398 8 -8 8v0 +c-4.41602 0 -8 -3.58398 -8 -8v-16c0 -4.41602 3.58398 -8 8 -8v0c4.41602 0 8 3.58398 8 8zM331 10.9199c2.72461 1.12988 4.93555 4.44043 4.93555 7.38965c0 0.869141 -0.266602 2.22656 -0.595703 3.03027l-6.12988 14.7803 +c-1.12891 2.72559 -4.44043 4.9375 -7.39062 4.9375c-0.87793 0 -2.24805 -0.272461 -3.05957 -0.607422v0c-2.72559 -1.12988 -4.9375 -4.44043 -4.9375 -7.39062c0 -0.87793 0.272461 -2.24902 0.607422 -3.05957l6.11035 -14.75 +c1.12891 -2.72754 4.44043 -4.94141 7.39258 -4.94141c0.879883 0 2.25391 0.273438 3.06738 0.611328v0zM394.58 53.4102c1.29297 1.29297 2.35156 3.82617 2.35156 5.65527c0 1.81445 -1.03613 4.33398 -2.31152 5.625l-11.3105 11.3096 +c-1.29297 1.29199 -3.82617 2.34082 -5.6543 2.34082s-4.3623 -1.04883 -5.65527 -2.34082v0c-1.28418 -1.29199 -2.32617 -3.81836 -2.32617 -5.63965c0 -1.82227 1.04199 -4.34863 2.32617 -5.64062l11.2695 -11.3096c1.29395 -1.29297 3.82715 -2.3418 5.65527 -2.3418 +s4.3623 1.04883 5.65527 2.3418v0zM286.25 161.75l115.41 175.91l-175.91 -115.41l-115.41 -175.91zM437.08 117c0.337891 0.813477 0.612305 2.18848 0.612305 3.07031c0 2.93848 -2.20117 6.24512 -4.91211 7.37988l-14.7803 6.12012 +c-0.818359 0.341797 -2.20117 0.620117 -3.08789 0.620117c-2.95215 0 -6.26367 -2.21387 -7.39258 -4.94043v0c-0.334961 -0.810547 -0.607422 -2.18164 -0.607422 -3.05957c0 -2.9502 2.21191 -6.26074 4.9375 -7.39062l14.7803 -6.12988 +c0.811523 -0.335938 2.18164 -0.608398 3.05957 -0.608398c2.9502 0 6.26172 2.21289 7.39062 4.93848v0zM444 184c4.41602 0 8 3.58398 8 8v0c0 4.41602 -3.58398 8 -8 8h-16c-4.41602 0 -8 -3.58398 -8 -8v0c0 -4.41602 3.58398 -8 8 -8h16z" /> - + +d="M481.92 313.52c6.46973 -12.7793 22.4697 -41.6494 21.9697 -85.0791c-0.0791016 -37.5908 -26.4893 -83.4844 -58.9492 -102.44c-14.957 -8.88379 -41.2148 -16.1318 -58.6104 -16.1797c-0.139648 0 -52.6504 -2.56055 -80.5098 16.8096 +c-5.85059 4.08008 -9.14062 8.94043 -9.14062 14c0 6.16016 4.82031 9 6.39062 11c9.7998 12.75 15.1094 28.1699 15.1094 38.5703c0 32.71 -11 59.2998 -33 83.0996c-1.16016 1.25 -42.9795 50.1807 -122.25 50.1807c-63.2393 0 -123.46 -32.6504 -149.46 -79.1406 +c24.04 111.98 123.58 195.66 242.44 195.66c96.3496 0 184.96 -46.1797 226.01 -126.48zM212.77 -27.6699c1.28027 -0.570312 29.0107 -20.5898 67.1309 -27.21c-6.53809 -0.628906 -17.1748 -1.13965 -23.7422 -1.13965c-87.0234 0 -187.626 63.9521 -224.559 142.75 +c-25.75 55.4697 -24.0801 105.96 -23 118.27c4.16992 34.2803 27.0801 59.7002 46.8408 74.7998c29.6299 22.6904 68.8193 35.6904 107.529 35.6904c7.0498 0 43.9199 -0.900391 77.6406 -18.5898c32.5596 -17.1006 47.3193 -37.5801 56.5596 -53.5107 +c1.54688 -2.70312 3.73828 -7.24609 4.88965 -10.1396c-4.21973 4.65039 -40.0596 44.2002 -99.0596 -1c-22.9014 -16.6006 -48.4238 -51.957 -56.9697 -78.9199c-14.1406 -40.4004 -12.8398 -88.5801 20.0996 -136c10.2158 -15.1748 31.1104 -35.334 46.6396 -45z +M463.49 70.6602c1.99316 -1.25879 3.6123 -4.19531 3.6123 -6.55273c0 -1.25195 -0.547852 -3.12305 -1.22266 -4.17773c-47.5703 -75.4297 -127.86 -108.87 -163 -108.87c-22.7002 0 -48.1299 6.95996 -71.7002 19.6104c-33 17.6699 -49.4893 38.7598 -56 47.6699 +c-46.3301 63.5303 -28.25 122.29 -13.3301 151.66c8.06445 15.8418 25.4287 38.2422 38.7607 50c-3.50684 -6.9668 -6.42773 -18.9512 -6.52051 -26.75c0 -80.9404 79.8506 -144 171.521 -144h0.341797c19.7266 0 50.7314 5.6084 69.208 12.5195 +c5.78809 2.16992 14.9316 6.25586 20.4102 9.12012c0.969727 0.539062 2.65723 0.975586 3.76562 0.975586c1.24316 0 3.10449 -0.540039 4.1543 -1.20508z" /> - + +d="M97.2197 351.79c-43.2197 -41.6201 -64.9697 -92.5898 -64.8193 -154.021c0.15918 -68 23.0293 -122.67 67.4795 -165c9.33984 -8.34961 13.2002 -14.9199 13.2002 -20.5498c0 -2.75 -1.90039 -5.62012 -3.81055 -8.37988 +c-1.92676 -1.89453 -5.67676 -3.61426 -8.36914 -3.83984c-10.2803 0 -24.6807 12.1396 -43.4707 35.79c-36.5898 44.8701 -53.1992 94.3398 -54.0596 161.87s20.3096 113.34 61.79 160.6c14.9199 16.9004 27.3594 25.6904 35.8398 25.6904 +c2.56152 -0.0585938 6.32031 -1.33105 8.38965 -2.83984c1.91016 -1.91016 3.83008 -4.66016 3.83008 -7.41992c0 -4.78027 -5.63965 -11.25 -16 -21.9004zM239.47 27.9297c0.580078 -0.370117 0.910156 -0.549805 0.910156 -0.549805zM333.26 27.3799l0.169922 0.129883 +c-0.189453 -0.129883 -0.259766 -0.179688 -0.169922 -0.129883zM336.39 185.56c16.2305 -4.14941 24.04 24.04 30.0303 30.0508c84.71 -110.101 -27.5098 -184.45 -33 -188.101c3.86035 3.04004 44.3301 49.7705 21.5801 76.5498 +c-1 1.03027 -67.2998 -20.0596 -54.8398 53.54c8.30957 48.6807 -7.60059 71.1309 -7.60059 71.1309c-17.9697 -37.29 -32.5 -53.8604 -43.5 -72.1602c-56.9492 -92.9404 -16.2793 -124.29 -9.5498 -128.641c-10.54 6.5 -108.27 70.8799 -34 175.23 +c78.3701 110.189 62.8301 159.57 62.8301 159.57c118.46 -94.2803 51.8105 -173.021 68.0498 -177.171zM510.88 358.31c41.4404 -47.3096 62.6699 -93.1592 61.75 -160.649s-17.4697 -117.021 -54.0596 -161.87c-18.79 -23.6602 -33.1904 -35.79 -43.4707 -35.79 +c-2.69238 0.231445 -6.44141 1.95605 -8.36914 3.84961c-1.91016 2.76074 -3.81055 5.63086 -3.81055 8.38086c0.0205078 5.62988 3.86035 12.1992 13.2002 20.5498c44.4795 42.3701 67.3203 97 67.4795 165c0.180664 61.4697 -21.5898 112.45 -64.8193 154.06 +c-10.4004 10.6406 -16 17.1201 -16 21.9004c0 2.75977 1.91992 5.50977 3.83008 7.41992c2.06934 1.50977 5.82812 2.78125 8.38965 2.83984c8.51953 0 21 -8.79004 35.8799 -25.6904z" /> @@ -3492,5 +3502,69 @@ l1.7002 8.78027c0.0078125 0.105469 0.0146484 0.27832 0.0146484 0.384766s-0.00683 c-0.540039 -2.03027 -0.820312 -3.57031 -1.82031 -8.4502c-1.83008 -9.41992 -3.52051 -18.6094 -5.40039 -32c-1.63184 -12.0586 -3.24414 -31.7168 -3.59961 -43.8799c-0.290039 -4.2334 -0.525391 -11.1123 -0.525391 -15.3545 c0 -4.24316 0.235352 -11.1221 0.525391 -15.3555c0.766602 -27.0928 5.43359 -48.7598 14 -65c8.57324 -16.2061 23.0801 -27.873 43.5195 -35c20.4404 -7.12695 48.9209 -10.6172 85.4414 -10.4697h4.59961c36.5605 -0.15332 65.0439 3.33691 85.4502 10.4707 c20.4336 7.12012 34.9365 18.7871 43.5098 35.001s13.2402 37.8809 14 65.001z" /> + + + + + + + + + diff --git a/static/css/lib/webfonts/fa-brands-400.ttf b/static/lib/webfonts/fa-brands-400.ttf similarity index 93% rename from static/css/lib/webfonts/fa-brands-400.ttf rename to static/lib/webfonts/fa-brands-400.ttf index efb9019c8..08622a3b0 100644 Binary files a/static/css/lib/webfonts/fa-brands-400.ttf and b/static/lib/webfonts/fa-brands-400.ttf differ diff --git a/static/lib/webfonts/fa-brands-400.woff b/static/lib/webfonts/fa-brands-400.woff new file mode 100644 index 000000000..a43870c27 Binary files /dev/null and b/static/lib/webfonts/fa-brands-400.woff differ diff --git a/static/lib/webfonts/fa-brands-400.woff2 b/static/lib/webfonts/fa-brands-400.woff2 new file mode 100644 index 000000000..3c5189de1 Binary files /dev/null and b/static/lib/webfonts/fa-brands-400.woff2 differ diff --git a/static/css/lib/webfonts/fa-regular-400.eot b/static/lib/webfonts/fa-regular-400.eot similarity index 94% rename from static/css/lib/webfonts/fa-regular-400.eot rename to static/lib/webfonts/fa-regular-400.eot index a734de28f..dbc06a4a3 100644 Binary files a/static/css/lib/webfonts/fa-regular-400.eot and b/static/lib/webfonts/fa-regular-400.eot differ diff --git a/static/css/lib/webfonts/fa-regular-400.svg b/static/lib/webfonts/fa-regular-400.svg similarity index 98% rename from static/css/lib/webfonts/fa-regular-400.svg rename to static/lib/webfonts/fa-regular-400.svg index 79bf64b78..273a98411 100644 --- a/static/css/lib/webfonts/fa-regular-400.svg +++ b/static/lib/webfonts/fa-regular-400.svg @@ -1,12 +1,12 @@ -Created by FontForge 20190801 at Mon Sep 23 12:52:52 2019 +Created by FontForge 20190801 at Tue Feb 4 18:05:39 2020 By Robert Madole Copyright (c) Font Awesome @@ -435,14 +435,14 @@ c-44.1123 0 -80 35.8877 -80 80v8c0 30.8779 25.1211 56 56 56h293.917c24.5 0 47.08 c-4.41113 0 -8 -3.58887 -8 -8v-8c0 -17.6445 14.3555 -32 32 -32h213.471c25.2021 0 42.626 -25.293 33.6299 -48.8457l-24.5518 -64.2812c-7.05371 -18.4658 -25.0732 -30.873 -44.8398 -30.873h-113.709c-22.0557 0 -40 -17.9443 -40 -40c0 -4.41113 3.58887 -8 8 -8 h131.552h0.0517578c7.44141 0 19.1074 -2.19238 26.041 -4.89355l99.752 -38.7881c18.5898 -7.22852 30.6035 -24.7881 30.6035 -44.7363v-23.582h128z" /> +d="M501.03 331.824c6.05762 -9.77832 10.9746 -27.0498 10.9746 -38.5518c0 -4.80664 -0.915039 -12.499 -2.04297 -17.1709l-57.623 -241.963c-12.748 -54.1729 -68.2627 -98.1387 -123.915 -98.1387h-0.345703h-107.455h-0.224609 +c-33.8135 0 -81.2148 18.834 -105.807 42.041l-91.3652 85.9766c-12.8213 12.0469 -23.2266 36.1016 -23.2266 53.6943c0 16.1299 8.97266 38.7529 20.0273 50.499c5.31836 5.66406 29.875 29.3926 68.1152 21.8477l-24.3594 82.1973 +c-1.68164 5.66406 -3.0459 15.0576 -3.0459 20.9668c0 37.5938 30.417 70.502 67.8955 73.4551c-0.204102 2.03125 -0.369141 5.33691 -0.369141 7.37891c0 31.627 24.8594 63.6895 55.4902 71.5684c43.248 10.9785 80.5645 -17.7012 89.6602 -53.0723l13.6836 -53.207 +l4.64648 22.6602c6.76074 32.417 39.123 58.8115 72.2373 58.916c8.73438 0 56.625 -3.26953 70.7383 -54.0801c15.0664 0.710938 46.9199 -3.50977 66.3105 -35.0176zM463.271 287.219c7.86914 32.9844 -42.1211 45.2695 -50.0859 11.9219l-24.8008 -104.146 +c-4.38867 -18.4141 -31.7783 -11.8926 -28.0557 6.2168l28.5479 139.166c7.39844 36.0703 -43.3076 45.0703 -50.1182 11.9629l-31.791 -154.971c-3.54883 -17.3086 -28.2832 -18.0469 -32.7109 -0.804688l-47.3262 184.035 +c-8.43359 32.8105 -58.3691 20.2676 -49.8652 -12.8359l42.4414 -165.039c4.81641 -18.7207 -23.3711 -26.9121 -28.9648 -8.00781l-31.3438 105.779c-9.6875 32.6465 -59.1191 18.2578 -49.3867 -14.625l36.0137 -121.539 +c5.61816 -18.9521 10.1777 -50.377 10.1777 -70.1436v-0.00878906c0 -6.54297 -8.05664 -10.9355 -13.4824 -5.82617l-51.123 48.1074c-24.7852 23.4082 -60.0527 -14.1875 -35.2793 -37.4902l91.3691 -85.9805c16.9629 -16.0068 49.6592 -28.998 72.9824 -28.998h0.154297 +h107.455h0.216797c34.7402 0 69.3936 27.4443 77.3525 61.2598z" /> -Created by FontForge 20190801 at Mon Sep 23 12:52:52 2019 +Created by FontForge 20190801 at Tue Feb 4 18:05:39 2020 By Robert Madole Copyright (c) Font Awesome @@ -23,7 +23,7 @@ Copyright (c) Font Awesome bbox="-0.983398 -64.9834 640.104 448.427" underline-thickness="25" underline-position="-50" - unicode-range="U+0020-F8D9" + unicode-range="U+0020-F941" /> +d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM348.49 127c1.94043 2.4209 3.51465 6.90332 3.51465 10.0059c0 4.24512 -2.69043 9.84277 -6.00488 12.4941l-58 42.5v144c0 8.83203 -7.16797 16 -16 16h-32 +c-8.83203 0 -16 -7.16797 -16 -16v-155.55v-0.00488281c0 -10.6074 6.71973 -24.5957 15 -31.2256l67 -49.7197v0c2.41895 -1.93555 6.89746 -3.50586 9.99512 -3.50586c4.24512 0 9.84277 2.69043 12.4951 6.00586l20 25v0z" /> +d="M505.12 428.906c6.95508 -32.2031 6.95508 -57.4062 6.86133 -82.6094c0 -102.688 -55.4375 -164.781 -128.035 -211.094v-104.438c0 -16.3594 -11.8789 -35.5625 -26.5078 -42.8594l-98.7275 -49.3906c-2.81934 -1.27441 -7.61621 -2.40137 -10.707 -2.51562 +c-13.2471 0.00195312 -24.002 10.7539 -24.0059 24v103.844l-22.4746 -22.4688c-13.1211 -13.1562 -34.1211 -11.1875 -45.2773 0l-50.9043 50.9062c-12.9961 12.9922 -11.3652 33.8887 0 45.25l22.4746 22.4688h-103.811c-13.2461 0.00195312 -24.001 10.7539 -24.0059 24 +c0.111328 3.09082 1.23828 7.88574 2.51562 10.7031l49.4355 98.8125c7.33008 14.6094 26.5391 26.4688 42.8867 26.4844h104.215c46.2168 72.7969 108.122 128 211.354 128c25.0996 0 50.3086 0 82.5059 -6.90625c5.54883 -1.1875 11.0176 -6.65625 12.207 -12.1875z +M384.04 280c22.0732 0.0078125 39.9971 17.9277 40.0098 40c0 22.0801 -17.9199 40 -40 40s-40 -17.9199 -40 -40c0 -22.0742 17.916 -39.9951 39.9902 -40z" /> @@ -1332,8 +1332,8 @@ d="M416 400v-48h-96v48c0 8.83984 7.16016 16 16 16h64c8.83984 0 16 -7.16016 16 -1 c3.45996 129.78 61.4004 150.16 63.9102 244.01zM448.09 288.01c2.50977 -93.8496 60.4502 -114.229 63.9102 -244.01v-44c0 -17.6699 -14.3301 -32 -32 -32h-96c-17.6699 0 -32 14.3301 -32 32v160h-32v160h96.1602c17.6299 0 31.4502 -14.3701 31.9297 -31.9902zM176 416 c8.83984 0 16 -7.16016 16 -16v-48h-96v48c0 8.83984 7.16016 16 16 16h64zM224 160v160h64v-160h-64z" /> +d="M320 416v-96h-64v96c0 17.6641 14.3359 32 32 32s32 -14.3359 32 -32zM368 288c8.83203 0 16 -7.16797 16 -16v-32c0 -8.83203 -7.16797 -16 -16 -16h-16v-32c-0.0107422 -72.1074 -57.3555 -142.354 -128 -156.8v-99.2002h-64v99.2002 +c-70.6445 14.4463 -127.989 84.6924 -128 156.8v32h-16c-8.83203 0 -16 7.16797 -16 16v32c0 8.83203 7.16797 16 16 16h352zM128 416v-96h-64v96c0 17.6641 14.3359 32 32 32s32 -14.3359 32 -32z" /> +d="M510.9 302.729l-68.2969 -286.823c-10.502 -44.1084 -55.8252 -79.9062 -101.166 -79.9062h-127.363c-29.7637 0 -71.5107 16.5547 -93.1855 36.9531l-108.298 101.92c-6.92383 6.53418 -12.542 19.5635 -12.542 29.083c0 22.0762 17.916 39.9922 39.9922 39.9922 +c8.7334 0 20.9922 -4.84961 27.3623 -10.8252l60.5928 -57.0254v0c0 22.6758 -5.22852 58.7256 -11.6699 80.4668l-42.6885 144.075c-0.90918 3.06934 -1.64746 8.1582 -1.64746 11.3594c0 22.083 17.9229 40.0059 40.0059 40.0059 +c16.4922 0 33.6768 -12.833 38.3594 -28.6465l37.1543 -125.395c0.975586 -3.29199 4.55469 -5.96484 7.98828 -5.96484c4.59863 0 8.33105 3.73242 8.33105 8.33105c0 0.582031 -0.117188 1.51172 -0.262695 2.0752l-50.3047 195.641 +c-0.696289 2.70703 -1.26172 7.17285 -1.26172 9.96875c0 22.0781 17.918 39.9961 39.9961 39.9961c17.1152 0 34.4678 -13.4521 38.7344 -30.0273l56.0947 -218.158c1.11035 -4.31934 5.63184 -7.82617 10.0918 -7.82617c4.69238 0 9.26562 3.73047 10.208 8.32715 +l37.6826 183.704c3.6416 17.6387 21.2139 31.9541 39.2246 31.9541c3.41309 0 8.82422 -0.835938 12.0781 -1.86426c19.8604 -6.2998 30.8623 -27.6738 26.6758 -48.085l-33.8389 -164.967c-0.0849609 -0.414062 -0.154297 -1.09375 -0.154297 -1.51758 +c0 -4.16797 3.38281 -7.55176 7.55176 -7.55176c3.29297 0 6.58398 2.59961 7.34668 5.80273l29.3975 123.459c4.03906 16.9619 21.4688 30.7285 38.9053 30.7285c22.0771 0 39.9941 -17.917 39.9941 -39.9941c0 -2.59277 -0.487305 -6.74316 -1.08789 -9.26562z" /> +d="M304 128c8.83203 0 16 -7.16797 16 -16s-7.16797 -16 -16 -16s-16 7.16797 -16 16s7.16797 16 16 16zM336 224c8.83203 0 16 -7.16797 16 -16s-7.16797 -16 -16 -16s-16 7.16797 -16 16s7.16797 16 16 16zM368 160c-8.83203 0 -16 7.16797 -16 16s7.16797 16 16 16 +s16 -7.16797 16 -16s-7.16797 -16 -16 -16zM336 128c-8.83203 0 -16 7.16797 -16 16s7.16797 16 16 16s16 -7.16797 16 -16s-7.16797 -16 -16 -16zM304 192c8.83203 0 16 -7.16797 16 -16s-7.16797 -16 -16 -16s-16 7.16797 -16 16s7.16797 16 16 16zM432 224 +c-8.83203 0 -16 7.16797 -16 16s7.16797 16 16 16s16 -7.16797 16 -16s-7.16797 -16 -16 -16zM384 208c0 8.83203 7.16797 16 16 16s16 -7.16797 16 -16s-7.16797 -16 -16 -16s-16 7.16797 -16 16zM368 256c8.83203 0 16 -7.16797 16 -16s-7.16797 -16 -16 -16 +s-16 7.16797 -16 16s7.16797 16 16 16zM464 224c8.83203 0 16 -7.16797 16 -16s-7.16797 -16 -16 -16s-16 7.16797 -16 16s7.16797 16 16 16zM496 256c8.83203 0 16 -7.16797 16 -16s-7.16797 -16 -16 -16s-16 7.16797 -16 16s7.16797 16 16 16zM432 192 +c8.83203 0 16 -7.16797 16 -16s-7.16797 -16 -16 -16s-16 7.16797 -16 16s7.16797 16 16 16zM400 160c8.83203 0 16 -7.16797 16 -16s-7.16797 -16 -16 -16s-16 7.16797 -16 16s7.16797 16 16 16zM336 96c8.83203 0 16 -7.16797 16 -16s-7.16797 -16 -16 -16 +s-16 7.16797 -16 16s7.16797 16 16 16zM304 64c8.83203 0 16 -7.16797 16 -16s-7.16797 -16 -16 -16s-16 7.16797 -16 16s7.16797 16 16 16zM368 128c8.83203 0 16 -7.16797 16 -16s-7.16797 -16 -16 -16s-16 7.16797 -16 16s7.16797 16 16 16zM389.65 346.35 +c2.58691 -2.58691 4.6875 -7.65527 4.6875 -11.3145s-2.10059 -8.72852 -4.6875 -11.3154l-169.381 -169.37c-2.58691 -2.58691 -7.65527 -4.6875 -11.3145 -4.6875s-8.72852 2.10059 -11.3154 4.6875l-11.2998 11.3105c-2.58496 2.58594 -4.68262 7.65332 -4.68262 11.3096 +c0 3.65723 2.09766 8.72363 4.68262 11.3105l5.66016 5.66992c-17.6602 17.9219 -31.9961 52.8887 -32 78.0498c0 19.2402 5.2998 37.0801 13.9297 52.8604l-10 10c-9.44434 9.47461 -27.9678 17.1641 -41.3457 17.1641c-2.10254 0 -5.5 -0.22168 -7.58398 -0.494141 +c-30 -3.73047 -51 -31.7803 -51 -61.9307v-305.6c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v303.15c0 67.9395 55.4902 129.35 123.44 128.85c27.7246 -0.138672 66.1006 -16.1992 85.6592 -35.8496l10 -10 +c15.8203 8.5498 33.6602 13.8496 52.9004 13.8496c25.1631 -0.000976562 60.1289 -14.3369 78.0498 -32l5.66992 5.66016c2.58691 2.58691 7.65625 4.6875 11.3154 4.6875s8.72754 -2.10059 11.3145 -4.6875z" /> +d="M32 64v48h448v-48c-0.0478516 -23.5742 -14.3848 -55.4229 -32 -71.0898v-40.9102c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v16h-256v-16c0 -8.83203 -7.16797 -16 -16 -16h-32c-8.83203 0 -16 7.16797 -16 16v40.9102 +c-17.6152 15.667 -31.9521 47.5156 -32 71.0898zM496 192c8.83203 0 16 -7.16797 16 -16v-16c0 -8.83203 -7.16797 -16 -16 -16h-480c-8.83203 0 -16 7.16797 -16 16v16c0 8.83203 7.16797 16 16 16h16v186.75v0.00585938c0 38.2256 31.0244 69.25 69.25 69.25 +c15.835 0 37.7734 -9.08789 48.9697 -20.2861l19.2607 -19.2695c29.8994 13.1299 59.1094 7.60938 79.7295 -8.62012l0.169922 0.169922c2.58691 2.58496 7.65332 4.68262 11.3105 4.68262c3.65625 0 8.72266 -2.09766 11.3096 -4.68262l11.3096 -11.3096 +c2.58789 -2.58691 4.68848 -7.65625 4.68848 -11.3154s-2.10059 -8.72852 -4.68848 -11.3154l-105.369 -105.369c-2.58691 -2.58789 -7.65625 -4.68848 -11.3154 -4.68848s-8.72852 2.10059 -11.3154 4.68848l-11.3096 11.3096 +c-2.57617 2.58496 -4.66797 7.64551 -4.66797 11.2949s2.0918 8.70996 4.66797 11.2949l0.169922 0.169922c-16.2295 20.6201 -21.75 49.8506 -8.62012 79.7305l-19.2695 19.2598c-3.43652 3.42969 -10.165 6.21387 -15.0205 6.21387 +c-11.71 0 -21.2344 -9.50391 -21.2598 -21.2139v-186.75h416z" /> d="M464 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v352c0 26.5 21.5 48 48 48h416zM380.4 125.5l-67.1006 66.5l67.1006 66.5c4.7998 4.7998 4.7998 12.5996 0 17.4004l-40.5 40.5 c-4.80078 4.7998 -12.6006 4.7998 -17.4004 0l-66.5 -67.1006l-66.5 67.1006c-4.7998 4.7998 -12.5996 4.7998 -17.4004 0l-40.5 -40.5c-4.7998 -4.80078 -4.7998 -12.6006 0 -17.4004l67.1006 -66.5l-67.1006 -66.5c-4.7998 -4.7998 -4.7998 -12.5996 0 -17.4004 l40.5 -40.5c4.80078 -4.7998 12.6006 -4.7998 17.4004 0l66.5 67.1006l66.5 -67.1006c4.7998 -4.7998 12.5996 -4.7998 17.4004 0l40.5 40.5c4.7998 4.80078 4.7998 12.6006 0 17.4004z" /> + + +d="M32 224h32v-192h-32h-0.0380859c-17.6436 0 -31.9619 14.3184 -31.9619 31.9619v0.0380859v128v0.0380859c0 17.6436 14.3184 31.9619 31.9619 31.9619h0.0380859zM544 272v-272c-0.0351562 -35.293 -28.707 -63.9648 -64 -64h-320 +c-35.293 0.0351562 -63.9648 28.707 -64 64v272v0.0263672c0 44.1455 35.8281 79.9736 79.9736 79.9736h0.0263672h112v64c0 17.6641 14.3359 32 32 32s32 -14.3359 32 -32v-64h112h0.0263672c44.1455 0 79.9736 -35.8281 79.9736 -79.9736v-0.0263672zM264 192 +c0 22.0801 -17.9199 40 -40 40s-40 -17.9199 -40 -40s17.9199 -40 40 -40h0.00292969c22.0781 0 39.9971 17.9189 39.9971 39.9971v0.00292969zM256 64h-64v-32h64v32zM352 64h-64v-32h64v32zM456 192c0 22.0801 -17.9199 40 -40 40s-40 -17.9199 -40 -40 +s17.9199 -40 40 -40h0.00292969c22.0781 0 39.9971 17.9189 39.9971 39.9971v0.00292969zM448 64h-64v-32h64v32zM640 192v-128v-0.0380859c0 -17.6436 -14.3184 -31.9619 -31.9619 -31.9619h-0.0380859h-32v192h32h0.0380859c17.6436 0 31.9619 -14.3184 31.9619 -31.9619 +v-0.0380859z" /> +d="M223.999 224c17.6328 -0.03125 31.9727 -14.3672 32.0078 -32c0 -17.6641 -14.3359 -32 -32 -32s-32 14.3359 -32 32c0 17.6602 14.333 31.9961 31.9922 32zM438.171 320c16.3789 -29.375 15.0039 -73.125 -25.1309 -128c40.1348 -54.875 41.5098 -98.625 25.1309 -128 +c-29.1309 -52.375 -101.646 -43.625 -116.275 -41.875c-21.5039 -51.25 -54.2617 -86.125 -97.8965 -86.125s-76.3906 34.875 -97.8965 86.125c-14.627 -1.75 -87.1426 -10.5 -116.273 41.875c-16.3789 29.375 -15.0039 73.125 25.1289 128 +c-40.1328 54.875 -41.5078 98.625 -25.1289 128c10.877 19.5 40.5078 50.625 116.273 41.875c21.5059 51.25 54.2617 86.125 97.8965 86.125s76.3926 -34.875 97.8965 -86.125c75.7656 8.875 105.398 -22.375 116.275 -41.875zM63.3389 96 +c3.75195 -6.625 19.0059 -11.875 43.6348 -11c-2.75 13 -5.125 26.375 -6.75 40.125c-7.75195 6.25 -15.0039 12.625 -21.8809 19.125c-15.1289 -23.5 -19.0039 -41 -15.0039 -48.25zM100.224 258.875c1.625 13.5 3.875 26.875 6.75 40.25c-1.875 0 -4 0.375 -5.75 0.375 +c-21.5059 0 -34.5078 -5.375 -37.8848 -11.5c-4 -7.25 -0.125 -24.75 15.0039 -48.25c6.87695 6.5 14.1289 12.875 21.8809 19.125zM223.999 384c-9.50195 0 -22.2539 -13.5 -33.8828 -37.25c11.2539 -3.75 22.5059 -8 33.8828 -12.875 +c11.3789 4.875 22.6309 9.125 33.8828 12.875c-11.627 23.75 -24.3809 37.25 -33.8828 37.25zM223.999 0c9.50195 0 22.2559 13.5 33.8828 37.25c-11.252 3.75 -22.5039 8 -33.8828 12.875c-11.377 -4.875 -22.6289 -9.125 -33.8828 -12.875 +c11.6289 -23.75 24.3809 -37.25 33.8828 -37.25zM223.999 112c44.1602 0 80 35.8398 80 80s-35.8398 80 -80 80s-80 -35.8398 -80 -80s35.8398 -80 80 -80zM384.659 96c4 7.25 0.125 24.75 -15.0039 48.25c-6.875 -6.5 -14.127 -12.875 -21.8789 -19.125 +c-1.625 -13.75 -4 -27.125 -6.75195 -40.125c24.6309 -0.875 40.0098 4.375 43.6348 11zM369.655 239.75c15.1289 23.5 19.0039 41 15.0039 48.25c-3.375 6.125 -16.3789 11.5 -37.8828 11.5c-1.75 0 -3.87695 -0.375 -5.75195 -0.375 +c2.87695 -13.375 5.12695 -26.75 6.75195 -40.25c7.75195 -6.25 15.0039 -12.625 21.8789 -19.125z" /> +d="M128 192c70.6562 0 128 -57.3438 128 -128s-57.3438 -128 -128 -128s-128 57.3438 -128 128s57.3438 128 128 128zM507 246.86c14.2402 -24.3799 -3.58008 -54.8604 -32.0898 -54.8604h-213.82c-28.5098 0 -46.3301 30.4805 -32.0898 54.8604l106.93 182.85 +c5.97266 10.0967 20.3398 18.291 32.0703 18.291s26.0977 -8.19434 32.0703 -18.291zM480 160c17.6641 0 32 -14.3359 32 -32v-160c0 -17.6641 -14.3359 -32 -32 -32h-160c-17.6641 0 -32 14.3359 -32 32v160c0 17.6641 14.3359 32 32 32h160z" /> +d="M464 320c26.4961 0 48 -21.5039 48 -48v-224c0 -26.4961 -21.5039 -48 -48 -48h-416c-26.4961 0 -48 21.5039 -48 48v288c0 26.4961 21.5039 48 48 48h160l64 -64h192zM359.5 152v16c0 8.83203 -7.16797 16 -16 16h-64v64c0 8.83203 -7.16797 16 -16 16h-16 +c-8.83203 0 -16 -7.16797 -16 -16v-64h-64c-8.83203 0 -16 -7.16797 -16 -16v-16c0 -8.83203 7.16797 -16 16 -16h64v-64c0 -8.83203 7.16797 -16 16 -16h16c8.83203 0 16 7.16797 16 16v64h64c8.83203 0 16 7.16797 16 16z" /> - - + +d="M438.406 70.4062c-3.20312 -12.8125 -3.20312 -57.6094 0 -73.6094c6.39062 -6.39062 9.58887 -12.792 9.59375 -19.2031v-16c0 -16 -12.7969 -25.5938 -25.5938 -25.5938h-326.406c-54.4062 0 -96 41.5938 -96 96v320c0 54.4062 41.5938 96 96 96h326.406 +c16 0 25.5938 -9.59375 25.5938 -25.5938v-332.812c0 -9.59375 -3.19824 -15.9893 -9.59375 -19.1875zM380.797 64h-284.797c-16 0 -32 -12.7969 -32 -32s12.7969 -32 32 -32h284.797v64zM128.016 271.984c0 -0.515625 0.140625 -0.984375 0.140625 -1.5l37.1094 -32.4688 +c1.50488 -1.31934 2.72656 -4.01465 2.72656 -6.01562c0 -4.41211 -3.58008 -7.99609 -7.99219 -8h-0.015625c-1.625 0.0820312 -3.97656 0.97168 -5.25 1.98438l-23.5938 20.6406c11.5469 -49.5781 55.7656 -86.625 108.859 -86.625s97.3125 37.0469 108.875 86.625 +l-23.5938 -20.6406c-1.25 -1.08691 -3.60938 -1.96875 -5.26562 -1.96875v0h-0.015625c-1.9502 0.108398 -4.64551 1.32617 -6.01562 2.71875c-1.01074 1.27832 -1.89941 3.6377 -1.98438 5.26562c0.107422 1.9541 1.33203 4.64941 2.73438 6.01562l37.1094 32.4688 +c0.015625 0.53125 0.15625 1 0.15625 1.51562c0 11.0469 -2.09375 21.5156 -5.0625 31.5938l-21.2656 -21.25c-1.29492 -1.2959 -3.83105 -2.34766 -5.66309 -2.34766c-4.41895 0 -8.00488 3.58594 -8.00488 8.00488c0 1.82812 1.04883 4.36133 2.33984 5.65527 +l26.4219 26.4062c-8.47949 17.6582 -29.249 39.7295 -46.3594 49.2656c5.2959 -8.46484 9.59375 -23.4395 9.59375 -33.4248c0 -16.7217 -10.5977 -38.7705 -23.6562 -49.2158c8.64258 -8.95605 15.6562 -26.3262 15.6562 -38.7725 +c0 -25.0283 -19.8799 -49.5117 -44.375 -54.6494l-1.42188 34.2812l12.6719 -8.625c0.557617 -0.379883 1.55762 -0.6875 2.23242 -0.6875h0.0175781h0.0253906c2.19727 0 3.98145 1.7832 3.98145 3.98047c0 0.609375 -0.254883 1.52832 -0.569336 2.05078l-8.53125 14.3125 +l17.9062 3.71875c1.75977 0.367188 3.1875 2.12402 3.1875 3.92188s-1.42773 3.55469 -3.1875 3.92188l-17.9062 3.71875l8.53125 14.3125c0.314453 0.522461 0.569336 1.44141 0.569336 2.05078c0 2.19727 -1.78418 3.98047 -3.98145 3.98047h-0.0253906 +c-0.668945 -0.0263672 -1.67676 -0.327148 -2.25 -0.671875l-14.1875 -9.65625l-4.6875 112.297c-0.0927734 2.11328 -1.88477 3.82812 -4 3.82812s-3.90723 -1.71484 -4 -3.82812l-4.625 -110.812l-12 8.15625c-0.561523 0.380859 -1.56836 0.69043 -2.24707 0.69043 +c-2.20996 0 -4.00293 -1.79297 -4.00293 -4.00293c0 -0.607422 0.251953 -1.52441 0.5625 -2.04688l8.53125 -14.3125l-17.9062 -3.71875c-1.75977 -0.364258 -3.1875 -2.11719 -3.1875 -3.91406s1.42773 -3.5498 3.1875 -3.91406l17.9062 -3.73438l-8.53125 -14.2969 +c-0.285156 -0.529297 -0.537109 -1.44629 -0.5625 -2.04688c0.0507812 -0.928711 0.611328 -2.23047 1.25 -2.90625c0.639648 -0.603516 1.87109 -1.09277 2.75 -1.09375c0.677734 0.00292969 1.68555 0.311523 2.25 0.6875l10.3594 7.04688l-1.35938 -32.7188 +c-24.4951 5.14746 -44.375 29.6396 -44.375 54.6699c0 12.4482 7.01367 29.8232 15.6562 38.7832c-13.0586 10.4434 -23.6562 32.4893 -23.6562 49.21c0 9.99316 4.30469 24.9775 9.60938 33.4463c-17.1104 -9.53906 -37.8867 -31.6104 -46.375 -49.2656l26.4219 -26.4219 +c1.28516 -1.29199 2.3291 -3.81934 2.3291 -5.64258c0 -4.41504 -3.58398 -7.99902 -7.99902 -7.99902c-1.82324 0 -4.35059 1.04395 -5.64258 2.3291l-21.2656 21.2656c-2.98438 -10.0938 -5.07812 -20.5625 -5.0625 -31.625z" /> d="M422.19 338.05c5.3291 -3.24023 5.2998 -11.2695 -0.0507812 -14.46l-198.14 -118.14l-198.13 118.14c-5.35059 3.19043 -5.37988 11.2305 -0.0605469 14.46l165.971 100.88c19.9102 12.1006 44.5195 12.1006 64.4297 0zM436.03 293.42 c5.33008 3.17969 11.9697 -0.839844 11.9697 -7.25v-197.7c0 -23.7598 -12.1104 -45.7393 -31.79 -57.7002l-152.16 -92.4795c-10.6602 -6.48047 -24.0498 1.5498 -24.0498 14.4297v223.82zM0 286.17c0 6.41016 6.63965 10.4297 11.9697 7.25l196.03 -116.88v-223.81 c0 -12.8906 -13.3799 -20.9102 -24.0498 -14.4307l-152.16 92.4697c-19.6797 11.9609 -31.79 33.9307 -31.79 57.7002v197.7z" /> - + +d="M511.328 427.197c-11.6074 -38.7021 -34.3076 -111.702 -61.3037 -187.701c6.99902 -2.09375 13.4043 -4 18.6074 -5.59277c6.28125 -1.91504 11.3789 -8.79785 11.3789 -15.3643c0 -2.21094 -0.842773 -5.58984 -1.88086 -7.54199 +c-22.1055 -42.2969 -82.6904 -152.795 -142.479 -214.403c-0.999023 -1.09375 -1.99902 -2.5 -2.99902 -3.5c-31.501 -31.5098 -93.2285 -57.083 -137.784 -57.083c-107.546 0 -194.83 87.2842 -194.83 194.831c0 44.5391 25.5566 106.25 57.0469 137.748 +c1 1 2.40625 2 3.49902 3c61.6006 59.9053 171.975 120.405 214.374 142.498c1.95215 1.03809 5.33008 1.88086 7.54102 1.88086c6.56641 0 13.4492 -5.09863 15.3613 -11.3809c1.59375 -5.09375 3.5 -11.5928 5.59277 -18.5928 +c75.8955 26.999 148.978 49.7021 187.675 61.2959c1.26465 0.382812 3.36426 0.692383 4.68555 0.692383c8.93262 0 16.1826 -7.25 16.1826 -16.1826c0 -1.29785 -0.298828 -3.35938 -0.667969 -4.60352zM319.951 127.998 +c-0.00976562 70.6348 -57.3457 127.962 -127.98 127.962c-70.6455 0 -127.98 -57.335 -127.98 -127.98c0 -70.6445 57.335 -127.979 127.98 -127.979h0.00488281c70.6426 0 127.976 57.333 127.976 127.976v0.0224609zM191.971 159.997 +c-0.00292969 -17.6582 -14.3359 -31.9902 -31.9951 -31.9902c-17.6611 0 -31.9951 14.334 -31.9951 31.9951s14.334 31.9951 31.9951 31.9951h0.0361328c17.6416 0 31.959 -14.3174 31.959 -31.959v-0.0410156zM223.966 79.998 +c-0.000976562 -8.8291 -7.16797 -15.9951 -15.998 -15.9951s-15.9971 7.16699 -15.9971 15.998c0 8.83008 7.16699 15.9971 15.9971 15.9971c8.80371 -0.0283203 15.9707 -7.19629 15.998 -16z" /> +d="M502.609 137.958l-96.7041 -96.7168c-5.15039 -5.13184 -15.2324 -9.29785 -22.5029 -9.29785c-7.27148 0 -17.3535 4.16602 -22.5039 9.29785l-80.3262 80.418l-9.89258 -9.9082c9.41016 -20.7256 17.0469 -56.0186 17.0469 -78.7803 +c0 -26.3193 -10.0596 -66.5244 -22.4541 -89.7422c-4.50098 -8.50098 -16.3936 -9.59473 -23.207 -2.79785l-107.519 107.515l-17.7998 -17.7988c0.703125 -2.60938 1.60938 -5.00098 1.60938 -7.79785v-0.000976562c0 -17.667 -14.3379 -32.0059 -32.0049 -32.0059 +s-32.0059 14.3389 -32.0059 32.0059s14.3389 32.0049 32.0059 32.0049c2.79688 0 5.18848 -0.90625 7.79785 -1.60938l17.7998 17.7998l-107.518 107.515c-6.79883 6.8125 -5.7041 18.6113 2.79688 23.2061c23.2197 12.3936 63.4248 22.4531 89.7451 22.4531 +c22.7627 0 58.0576 -7.63672 78.7832 -17.0469l9.79883 9.79883l-80.3105 80.417c-5.13086 5.16602 -9.29395 15.2686 -9.29395 22.5498s4.16309 17.3838 9.29395 22.5498l96.7197 96.7168c5.11621 5.13281 15.1514 9.29785 22.3984 9.29785h0.105469h0.0449219 +c7.28223 0 17.3857 -4.16602 22.5527 -9.29785l80.3262 -80.3076l47.8047 47.8965c5.43262 5.42773 16.0742 9.83398 23.7539 9.83398s18.3213 -4.40625 23.7539 -9.83398l47.5088 -47.5059c5.42188 -5.43555 9.82129 -16.0771 9.82129 -23.7539 +s-4.39941 -18.3184 -9.82129 -23.7529l-47.8057 -47.8975l80.3105 -80.417c5.12305 -5.13672 9.28125 -15.1934 9.28125 -22.4482c0 -7.30469 -4.20703 -17.4111 -9.39062 -22.5576zM219.562 250.567l73.8252 73.8223l-68.918 68.8994l-73.8096 -73.8066zM457.305 160.461 +l-68.9023 68.916l-73.8242 -73.8232l68.918 -68.8994z" /> +d="M305.449 -14.5898c7.3916 -7.29785 6.18848 -20.0967 -3 -25.0039c-77.7129 -41.8027 -176.726 -29.9102 -242.344 35.708c-65.6016 65.6035 -77.5098 164.523 -35.6914 242.332c4.89062 9.09473 17.6895 10.2979 25.0029 3l116.812 -116.813l27.3945 27.3945 +c-0.6875 2.60938 -1.59375 5.00098 -1.59375 7.81348c0 17.666 14.3379 32.0039 32.0039 32.0039s32.0039 -14.3379 32.0039 -32.0039s-14.3379 -32.0039 -32.0039 -32.0039c-2.79785 0 -5.2041 0.890625 -7.79785 1.59375l-27.4102 -27.4102zM511.976 144.933 +c0.0136719 -0.248047 0.0253906 -0.650391 0.0253906 -0.899414c0 -8.84668 -7.18066 -16.0615 -16.0273 -16.1025h-32.1133c-8.27148 0.0244141 -15.3916 6.74512 -15.8926 15.002c-7.50098 129.519 -111.515 234.533 -240.937 241.534 +c-8.28125 0.441406 -15.0029 7.5293 -15.0029 15.8223c0 0.0234375 0 0.0625 0.000976562 0.0859375v31.5986c0.0361328 8.84766 7.24609 16.0273 16.0938 16.0273c0.250977 0 0.657227 -0.0107422 0.908203 -0.0253906c163.224 -8.59473 294.443 -139.816 302.944 -303.043 +zM415.964 145.229c0.0195312 -0.299805 0.0361328 -0.788086 0.0361328 -1.08887c0 -8.91309 -7.23438 -16.1758 -16.1475 -16.21h-32.208c-8.08594 0.0585938 -15.2061 6.64648 -15.8926 14.7051c-6.90625 77.0107 -68.1172 138.91 -144.924 145.224 +c-8.16602 0.585938 -14.7959 7.70605 -14.7988 15.8926v32.1143v0.00390625c0 8.90625 7.22754 16.1338 16.1338 16.1338c0.322266 0 0.84375 -0.0185547 1.16504 -0.0419922c110.123 -8.50098 198.229 -96.6074 206.636 -206.732z" /> +d="M319.41 128c71.4902 -3.09961 128.59 -61.5996 128.59 -133.79c0 -32.1318 -26.0781 -58.21 -58.21 -58.21h-331.58c-32.1318 0 -58.21 26.0781 -58.21 58.21c0 72.1904 57.0996 130.69 128.59 133.79l95.4102 -95.3896zM224 144c-70.6562 0 -128 57.3438 -128 128 +v110.18c0 12.2393 9.30078 25.6611 20.7598 29.96l84.7705 31.79c5.99707 2.24902 16.0645 4.07422 22.4697 4.07422s16.4727 -1.8252 22.4697 -4.07422l84.7705 -31.75c11.459 -4.29883 20.7598 -17.7217 20.7598 -29.9609v-0.0390625v-110.18 +c0 -70.6562 -57.3438 -128 -128 -128zM184 376.33v-16.6602c0 -2.75977 2.24023 -5 5 -5h21.6699v-21.6699c0 -2.75977 2.24023 -5 5 -5h16.6602c2.75977 0 5 2.24023 5 5v21.6699h21.6699c2.75977 0 5 2.24023 5 5v16.6602c0 2.75977 -2.24023 5 -5 5h-21.6699v21.6699 +c0 2.75977 -2.24023 5 -5 5h-16.6602c-2.75977 0 -5 -2.24023 -5 -5v-21.6699h-21.6699c-2.75977 0 -5 -2.24023 -5 -5zM144 288v-16c0 -44.1602 35.8398 -80 80 -80s80 35.8398 80 80v16h-160z" /> @@ -4663,5 +4686,15 @@ d="M0 96v128h384v-128c0 -88.3203 -71.6797 -160 -160 -160h-64c-88.3203 0 -160 71. + + diff --git a/static/css/lib/webfonts/fa-solid-900.ttf b/static/lib/webfonts/fa-solid-900.ttf similarity index 90% rename from static/css/lib/webfonts/fa-solid-900.ttf rename to static/lib/webfonts/fa-solid-900.ttf index edf3d5dce..9dd8c7fd7 100644 Binary files a/static/css/lib/webfonts/fa-solid-900.ttf and b/static/lib/webfonts/fa-solid-900.ttf differ diff --git a/static/lib/webfonts/fa-solid-900.woff b/static/lib/webfonts/fa-solid-900.woff new file mode 100644 index 000000000..3c9ef9342 Binary files /dev/null and b/static/lib/webfonts/fa-solid-900.woff differ diff --git a/static/lib/webfonts/fa-solid-900.woff2 b/static/lib/webfonts/fa-solid-900.woff2 new file mode 100644 index 000000000..ba7507b18 Binary files /dev/null and b/static/lib/webfonts/fa-solid-900.woff2 differ