diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..93385d9 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,7 @@ +version: 2 +updates: +- package-ecosystem: npm + directory: "/" + schedule: + interval: daily + open-pull-requests-limit: 20 diff --git a/.github/workflows/hexo.yml b/.github/workflows/hexo.yml new file mode 100644 index 0000000..fc03777 --- /dev/null +++ b/.github/workflows/hexo.yml @@ -0,0 +1,54 @@ +name: Deploy Hexo with GitHub Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: ["master"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + # Build job + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Setup Pages + uses: actions/configure-pages@v3 + - name: Setup Node.js environment + uses: actions/setup-node@v2.5.2 + - name: Build with Hexo + run: | + npm install -g hexo-cli + npm install + hexo g + - name: Upload artifact + uses: actions/upload-pages-artifact@v1 + with: + path: ./public + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v2 diff --git a/.gitignore b/.gitignore index 063b0e4..3f80c99 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,6 @@ db.json *.log node_modules/ public/ -.deploy*/ \ No newline at end of file +.deploy*/ +_multiconfig.yml +.vscode \ No newline at end of file diff --git a/_config.melody.yml b/_config.melody.yml deleted file mode 100644 index 242b6b4..0000000 --- a/_config.melody.yml +++ /dev/null @@ -1,340 +0,0 @@ -# --------------- -# Theme color for customize -# Notice: color value must in double quotes like "#000" or may cause error! -# --------------- -# theme_color: -# enable: true -# main: "#49B1F5" -# paginator: "#00C4B6" -# button_hover: "#FF7242" -# text_selection: "#00C4B6" -# link_color: "#858585" -# hr_color: "#A4D8FA" -# tag_start_color: "#A4D8FA" -# tag_end_color: "#1B9EF3" -# header_text_color: "#EEEEEE" -# footer_text_color: "#EEEEEE" - -# Main menu navigation -menu: - # Home: / - # Archives: /archives - # Tags: /tags - # Categories: /categories - #XXX: /xxx - -# Favicon -# --------------- -favicon: /melody-favicon.ico - -# PWA -# See https://github.com/JLHwung/hexo-offline -# --------------- -pwa: - enable: false - manifest: /manifest.json - # If you don't want to trouble, just ignore the following things - # See https://realfavicongenerator.net/ - # theme_color: "#49B1F5" - # apple_touch_icon: /apple-touch-icon.png - # favicon_32_32: /favicon-32x32.png - # favicon_16_16: /favicon-16x16.png - # mask_icon: /safari-pinned-tab.svg - -# Highlight theme -# --------------- -highlight_theme: default - -code_word_wrap: true #or false - -# Nav settings -# see the icon_name in fontawesome website. -# And you need to add the `fa` or `fab` prefix by your self. -# --------------- -#social: -#icon_name fa: url -#icon_name fab: url - -# Algolia search -# --------------- -algolia_search: - enable: false - hits: - per_page: 10 - -# Local search -# Please see doc for more details: https://molunerfinn.com/hexo-theme-melody-doc/third-party-support.html#local-search -# --------------- -local_search: - enable: false - -# MathJax -# Please see doc for more details: https://molunerfinn.com/hexo-theme-melody-doc/third-party-support.html#mathjax -# --------------- -mathjax: - enable: false - cdn: https://cdn.jsdelivr.net/npm/mathjax/MathJax.js?config=TeX-AMS-MML_HTMLorMML - -# KaTeX -# Please see doc for more details: https://molunerfinn.com/hexo-theme-melody-doc/third-party-support.html#katex -# --------------- -katex: - enable: false - cdn: - css: https://cdn.jsdelivr.net/npm/katex@latest/dist/katex.min.css - hide_scrollbar: true - -# Toggle fireworks (IE >= 10) -# --------------- -fireworks: false - -# Analysis -# --------------- -baidu_analytics: - -google_analytics: - -# Tencent_analytics ID -tencent_analytics: - -# stylesheets loaded in the
-# --------------- -stylesheets: - - /css/index.css -# scripts loaded in the end of the body -# --------------- -scripts: - - /js/utils.js - - /js/fancybox.js - - /js/sidebar.js - - /js/copy.js - - /js/fireworks.js - - /js/transition.js - - /js/scroll.js - - /js/head.js - -# cdn for third-party library -# --------------- -cdn: - css: - fontawesome: https://cdn.jsdelivr.net/npm/font-awesome@latest/css/font-awesome.min.css - # fontawesomeV5: https://use.fontawesome.com/releases/v5.3.1/css/all.css - js: - anime: https://cdn.jsdelivr.net/npm/animejs@latest/anime.min.js - jquery: https://cdn.jsdelivr.net/npm/jquery@latest/dist/jquery.min.js - fancybox: https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@latest/dist/jquery.fancybox.min.js - velocity: https://cdn.jsdelivr.net/npm/velocity-animate@latest/velocity.min.js - velocity-ui: https://cdn.jsdelivr.net/npm/velocity-ui-pack@latest/velocity.ui.min.js - -# Post info settings -# --------------- -avatar: /img/hanxi.png - -top_img: true # false or url of img - -top_img_height: 60 # best range: 60 - 100 - -post_meta: - date_type: created # created or updated - categories: true - tags: true - -# Please see doc for more details: https://molunerfinn.com/hexo-theme-melody-doc/additional-package-support.html#word-counting -wordcount: - enable: false - -toc: - enable: true - number: true - -post_copyright: - enable: true - license: CC BY-NC-SA 4.0 - license_url: https://creativecommons.org/licenses/by-nc-sa/4.0/ - -# Please see doc for more details: https://molunerfinn.com/hexo-theme-melody-doc/theme-config.html#auto-excerpt -auto_excerpt: - enable: false - length: 150 - -# slide -# For reveal.js config, see https://github.com/hakimel/reveal.js#configuration -slide: - separator: --- - separator_vertical: -- - charset: utf-8 - theme: black - codeTheme: monokai - # optional - mouseWheel: false - transition: slide - transitionSpeed: default - parallaxBackgroundImage: "" - parallaxBackgroundSize: "" - parallaxBackgroundHorizontal: null - parallaxBackgroundVertical: null - loop: false - autoSlide: false - controlsBackArrows: 'faded' - controlsLayout: 'bottom-right' # Determines where controls appear, "edges" or "bottom-right" - progress: true - showNotes: false - autoPlayMedia: false - backgroundTransition: 'fade' - -# QR_code: -# - itemlist: -# img: -# text: - -# adv: -# enable: false -# info: - -# Share System -# --------------- -addThis: - enable: false - #pubid: - -# sharejs: -# enable: false -# disabled_sites: - -# Comments System -# --------------- -disqus: - enable: false - #shortname: - #count: - -# laibili: -# enable: false -# uid: - -# gitment -# enable: false -# owner: -# repo: -# client_id: -# client_secret: - -gitalk: - enable: true - client_id: 59acb985ed36e87d9e7c - client_secret: 5c51ccb34584be5080f169988900fb759c4041c0 - repo: icesoulhanxi.github.io - owner: IceSoulHanxi - admin: IceSoulHanxi - -# valine comment system. https://valine.js.org -# valine: -# enable: false # if you want use valine,please set this value is true -# appId: # leancloud application app id -# appKey: # leancloud application app key -# notify: false # valine mail notify (true/false) https://github.com/xCss/Valine/wiki -# verify: false # valine verify code (true/false) -# recordip: false # whether record commentor's ip (true/false) -# pageSize: 10 # comment list page size -# avatar: mm # gravatar style https://valine.js.org/#/avatar -# lang: zh-cn # i18n: zh-cn/en -# placeholder: Just go go # valine comment input placeholder(like: Please leave your footprints ) -# guest_info: nick,mail,link #valine comment header inf - -# vssue: - # enable: false # Set to true to enable - # platform: github-v4 - # owner: - # repo: - # clientId: - # clientSecret: # only required for some of the platforms - # autoCreateIssue: false # Auto create issue on platform (github/...) - # baseURL: "" # For self-hosted gitlab/bitbucket only, see here: https://vssue.js.org/options/#baseurl - # perPage: 10 # How much comment/page - # labels: 'Vssue' - -# Footer Settings -# --------------- -since: 2020 - -# footer_custom_text: put custom text directly or put hitokoto to fetch random texts - -ICP: - enable: false - #text: - -# busuanzi count for PV / UV in site -busuanzi: - # count values only if the other configs are false - enable: true - # custom uv span for the whole site - site_uv: true - site_uv_header: - site_uv_footer: - # custom pv span for the whole site - site_pv: true - site_pv_header: - site_pv_footer: - # custom pv span for one page only - page_pv: true - page_pv_header: - page_pv_footer: - -# canvas_ribbon -# See: https://github.com/hustcc/ribbon.js -canvas_ribbon: - enable: false - size: 150 - alpha: 0.6 - zIndex: -1 - click_to_change: false - -# Sidebar Settings -# --------------- -# links_title: Links -# links: -# Name: url - -# Follow Me Button -follow: - enable: true - url: 'https://github.com/IceSoulHanxi' - text: 'Follow Me' - -# controls the sidebar showing or hidden in different pages -sidebar_display: post # all/index/post/index-none/post-none/hidden - -# Ads -# --------------- -# Google Adsense -google_adsense: - enable: false - js: //pagead2.googlesyndication.com/pagead/js/adsbygoogle.js - client: ca-pub-........... - enable_page_level_ads: true - -# Google Webmaster tools verification setting -# See: https://www.google.com/webmasters/ -google_site_verification: - -# Bing Webmaster tools verification setting -# See: https://www.bing.com/webmaster/ -bing_site_verification: - -# Yandex Webmaster tools verification setting -# See: https://webmaster.yandex.ru/ -#yandex_site_verification: - -# Baidu Webmaster tools verification setting -# See: https://ziyuan.baidu.com/site/ -baidu_site_verification: - -# 360 Webmaster tools verification setting -# see http://zhanzhang.so.com/ -qihu_site_verification: - -# avoid baidu transformation -disable_baidu_transformation: true - -# 404 Page SubTitle -404Text: diff --git a/_config.next.yml b/_config.next.yml new file mode 100644 index 0000000..6d6f584 --- /dev/null +++ b/_config.next.yml @@ -0,0 +1,929 @@ +# =============================================================== +# It's recommended to use Alternate Theme Config to configure NexT +# Modifying this file may result in merge conflict +# See: https://theme-next.js.org/docs/getting-started/configuration +# =============================================================== + +# --------------------------------------------------------------- +# Theme Core Configuration Settings +# See: https://theme-next.js.org/docs/theme-settings/ +# --------------------------------------------------------------- + +# Allow to cache content generation. +cache: + enable: true + +# Remove unnecessary files after hexo generate. +minify: false + +# Define custom file paths. +# Create your custom files in site directory `source/_data` and uncomment needed files below. +custom_file_path: + #head: source/_data/head.njk + #header: source/_data/header.njk + #sidebar: source/_data/sidebar.njk + #postMeta: source/_data/post-meta.njk + #postBodyStart: source/_data/post-body-start.njk + #postBodyEnd: source/_data/post-body-end.njk + #footer: source/_data/footer.njk + #bodyEnd: source/_data/body-end.njk + #variable: source/_data/variables.styl + #mixin: source/_data/mixins.styl + #style: source/_data/styles.styl + + +# --------------------------------------------------------------- +# Scheme Settings +# --------------------------------------------------------------- + +# Schemes +# scheme: Muse +scheme: Mist +#scheme: Pisces +#scheme: Gemini + +# Dark Mode +darkmode: false + + +# --------------------------------------------------------------- +# Site Information Settings +# --------------------------------------------------------------- + +favicon: + small: /images/favicon-16x16-next.png + medium: /images/favicon-32x32-next.png + apple_touch_icon: /images/apple-touch-icon-next.png + safari_pinned_tab: /images/logo.svg + #android_manifest: /manifest.json + +# Custom Logo (Warning: Do not support scheme Mist) +custom_logo: #/uploads/custom-logo.png + +# Creative Commons 4.0 International License. +# See: https://creativecommons.org/about/cclicenses/ +creative_commons: + # Available values: by | by-nc | by-nc-nd | by-nc-sa | by-nd | by-sa | cc-zero + license: by-nc-sa + # Available values: big | small + size: small + sidebar: false + post: false + # You can set a language value if you prefer a translated version of CC license, e.g. deed.zh + # CC licenses are available in 39 languages, you can find the specific and correct abbreviation you need on https://creativecommons.org + language: zh-CN + +# Open graph settings +# See: https://hexo.io/docs/helpers#open-graph +open_graph: + enable: true + options: + #twitter_card: and code blocks.
+ codes:
+ external: true
+ family:
+
+
+# ---------------------------------------------------------------
+# SEO Settings
+# See: https://theme-next.js.org/docs/theme-settings/seo
+# ---------------------------------------------------------------
+
+# If true, site-subtitle will be added to the title of index page.
+# Remember to set up your site-subtitle in Hexo `_config.yml` (e.g. subtitle: Subtitle)
+index_with_subtitle: false
+
+# Automatically add external URL with Base64 encrypt & decrypt.
+exturl: false
+# If true, an icon will be attached to each external URL
+exturl_icon: true
+
+# Google Webmaster tools verification.
+# See: https://developers.google.com/search
+google_site_verification:
+
+# Bing Webmaster tools verification.
+# See: https://www.bing.com/webmasters
+bing_site_verification:
+
+# Yandex Webmaster tools verification.
+# See: https://webmaster.yandex.ru
+yandex_site_verification:
+
+# Baidu Webmaster tools verification.
+# See: https://ziyuan.baidu.com/site
+baidu_site_verification:
+
+
+# ---------------------------------------------------------------
+# Tags Settings
+# See: https://theme-next.js.org/docs/tag-plugins/
+# ---------------------------------------------------------------
+
+# Note tag (bootstrap callout)
+note:
+ # Note tag style values:
+ # - simple bootstrap callout old alert style. Default.
+ # - modern bootstrap callout new (v2-v3) alert style.
+ # - flat flat callout style with background, like on Mozilla or StackOverflow.
+ # - disabled disable all CSS styles import of note tag.
+ style: simple
+ icons: false
+ # Offset lighter of background in % for modern and flat styles (modern: -12 | 12; flat: -18 | 6).
+ # Offset also applied to label tag variables. This option can work with disabled note tag.
+ light_bg_offset: 0
+
+# Tabs tag
+tabs:
+ # Make the nav bar of tabs with long content stick to the top.
+ sticky: false
+ transition:
+ tabs: false
+ labels: true
+
+# PDF tag
+# NexT will try to load pdf files natively, if failed, pdf.js will be used.
+# So, you have to install the dependency of pdf.js if you want to use pdf tag and make it available to all browsers.
+# Dependencies: https://github.com/next-theme/theme-next-pdf
+pdf:
+ enable: false
+ # Default height
+ height: 500px
+
+# Mermaid tag
+mermaid:
+ enable: false
+ # Available themes: default | dark | forest | neutral
+ theme:
+ light: default
+ dark: dark
+
+# WaveDrom tag
+wavedrom:
+ enable: false
+
+# ---------------------------------------------------------------
+# Third Party Plugins & Services Settings
+# See: https://theme-next.js.org/docs/third-party-services/
+# More plugins: https://github.com/next-theme/awesome-next
+# ---------------------------------------------------------------
+
+# ---------------------------------------------------------------
+# Math Formulas Render Support
+# See: https://theme-next.js.org/docs/third-party-services/math-equations
+# Warning: Please install / uninstall the relevant renderer according to the documentation.
+# Server-side plugin: https://github.com/next-theme/hexo-filter-mathjax
+# ---------------------------------------------------------------
+
+math:
+ # Default (false) will load mathjax / katex script on demand.
+ # That is it only render those page which has `mathjax: true` in front-matter.
+ # If you set it to true, it will load mathjax / katex script EVERY PAGE.
+ every_page: false
+
+ mathjax:
+ enable: false
+ # Available values: none | ams | all
+ tags: none
+
+ katex:
+ enable: false
+ # See: https://github.com/KaTeX/KaTeX/tree/master/contrib/copy-tex
+ copy_tex: false
+
+
+# ---------------------------------------------------------------
+# External Libraries
+# See: https://theme-next.js.org/docs/third-party-services/external-libraries
+# ---------------------------------------------------------------
+
+# Easily enable fast Ajax navigation on your website.
+# For more information: https://github.com/next-theme/pjax
+pjax: false
+
+# FancyBox is a tool that offers a nice and elegant way to add zooming functionality for images.
+# For more information: https://fancyapps.com/fancybox/
+fancybox: false
+
+# Medium Zoom is a JavaScript library for zooming images like Medium.
+# Warning: Do not enable both `fancybox` and `mediumzoom`.
+# For more information: https://medium-zoom.francoischalifour.com
+mediumzoom: false
+
+# Vanilla JavaScript plugin for lazyloading images.
+# For more information: https://apoorv.pro/lozad.js/demo/
+lazyload: true
+
+# Automatically insert whitespace between CJK and half-width characters.
+# For more information: https://github.com/vinta/pangu.js
+# Server-side plugin: https://github.com/next-theme/hexo-pangu
+pangu: false
+
+# Prefetch links based on what is in the user's viewport.
+# For more information: https://getquick.link
+# Front-matter variable (nonsupport home archive).
+quicklink:
+ enable: false
+
+ # Home page and archive page can be controlled through home and archive options below.
+ # This configuration item is independent of `enable`.
+ home: false
+ archive: false
+
+ # Default (true) will initialize quicklink after the load event fires.
+ delay: true
+ # Custom a time in milliseconds by which the browser must execute prefetching.
+ timeout: 3000
+ # Default (true) will attempt to use the fetch() API if supported (rather than link[rel=prefetch]).
+ priority: true
+
+
+# ---------------------------------------------------------------
+# Animation Settings
+# ---------------------------------------------------------------
+
+# Use Animate.css to animate everything.
+# For more information: https://animate.style
+motion:
+ enable: true
+ async: false
+ transition:
+ # All available transition variants: https://theme-next.js.org/animate/
+ menu_item: fadeInDown
+ post_block: fadeIn
+ post_header: fadeInDown
+ post_body: fadeInDown
+ coll_header: fadeInLeft
+ # Only for Pisces | Gemini.
+ sidebar: fadeInUp
+
+# Progress bar in the top during page loading.
+# For more information: https://github.com/CodeByZach/pace
+pace:
+ enable: true
+ # All available colors:
+ # black | blue | green | orange | pink | purple | red | silver | white | yellow
+ color: blue
+ # All available themes:
+ # big-counter | bounce | barber-shop | center-atom | center-circle | center-radar | center-simple
+ # corner-indicator | fill-left | flat-top | flash | loading-bar | mac-osx | material | minimal
+ theme: minimal
+
+# Generate a ribbon in your website with HTML5 canvas.
+# For more information: https://github.com/hustcc/ribbon.js
+canvas_ribbon:
+ enable: false
+ size: 300 # The width of the ribbon
+ alpha: 0.6 # The transparency of the ribbon
+ zIndex: -1 # The display level of the ribbon
+
+
+# ---------------------------------------------------------------
+# Comments Settings
+# See: https://theme-next.js.org/docs/third-party-services/comments
+# ---------------------------------------------------------------
+
+# Multiple Comment System Support
+comments:
+ # Available values: tabs | buttons
+ style: tabs
+ # Choose a comment system to be displayed by default.
+ # Available values: disqus | disqusjs | changyan | livere | gitalk | utterances
+ active: gitalk
+ # Setting `true` means remembering the comment system selected by the visitor.
+ storage: true
+ # Lazyload all comment systems.
+ lazyload: true
+ # Modify texts or order for any naves, here are some examples.
+ nav:
+ #disqus:
+ # text: Load Disqus
+ # order: -1
+ #gitalk:
+ # order: -2
+
+# Disqus
+# For more information: https://disqus.com
+disqus:
+ enable: false
+ shortname:
+ count: true
+
+# DisqusJS
+# For more information: https://disqusjs.skk.moe
+disqusjs:
+ enable: false
+ # API Endpoint of Disqus API (https://disqus.com/api/docs/).
+ # Leave api empty if you are able to connect to Disqus API. Otherwise you need a reverse proxy for it.
+ # For example:
+ # api: https://disqus.skk.moe/disqus/
+ api:
+ apikey: # Register new application from https://disqus.com/api/applications/
+ shortname: # See: https://disqus.com/admin/settings/general/
+
+# Changyan
+# For more information: https://changyan.kuaizhan.com
+changyan:
+ enable: false
+ appid:
+ appkey:
+ # Show comments count
+ count: true
+
+# LiveRe comments system
+# You can get your uid from https://livere.com/insight/myCode (General web site)
+livere_uid: #
+
+# Gitalk
+# For more information: https://gitalk.github.io
+gitalk:
+ enable: true
+ github_id: IceSoulHanxi # GitHub repo owner
+ repo: IceSoulHanxi.github.io # Repository name to store issues
+ client_id: 59acb985ed36e87d9e7c # GitHub Application Client ID
+ client_secret: ffdca78339f91b96492027df408a56a6a0484a0e # GitHub Application Client Secret
+ admin_user: IceSoulHanxi # GitHub repo owner and collaborators, only these guys can initialize gitHub issues
+ distraction_free_mode: true # Facebook-like distraction free mode
+ # When the official proxy is not available, you can change it to your own proxy address
+ proxy: https://cors-anywhere.azm.workers.dev/https://github.com/login/oauth/access_token # This is official proxy address
+ # Gitalk's display language depends on user's browser or system environment
+ # If you want everyone visiting your site to see a uniform language, you can set a force language value
+ # Available values: en | es-ES | fr | ru | zh-CN | zh-TW
+ language: zh-CN
+
+# Utterances
+# For more information: https://utteranc.es
+utterances:
+ enable: false
+ repo: user-name/repo-name # Github repository owner and name
+ # Available values: pathname | url | title | og:title
+ issue_term: pathname
+ # Available values: github-light | github-dark | preferred-color-scheme | github-dark-orange | icy-dark | dark-blue | photon-dark | boxy-light
+ theme: github-light
+
+# Isso
+# For more information: https://isso-comments.de
+isso: #
+
+
+# ---------------------------------------------------------------
+# Post Widgets & Content Sharing Services
+# See: https://theme-next.js.org/docs/third-party-services/post-widgets
+# ---------------------------------------------------------------
+
+# AddToAny Share. See: https://www.addtoany.com
+addtoany:
+ enable: false
+ buttons:
+ - facebook
+ - twitter
+
+
+# ---------------------------------------------------------------
+# Statistics and Analytics
+# See: https://theme-next.js.org/docs/third-party-services/statistics-and-analytics
+# ---------------------------------------------------------------
+
+# Google Analytics
+# See: https://analytics.google.com
+google_analytics:
+ tracking_id: #
+ # By default, NexT will load an external gtag.js script on your site.
+ # If you only need the pageview feature, set the following option to true to get a better performance.
+ only_pageview: false
+
+# Baidu Analytics
+# See: https://tongji.baidu.com
+baidu_analytics: #
+
+# Growingio Analytics
+# See: https://www.growingio.com
+growingio_analytics: #
+
+# Cloudflare Web Analytics
+# See: https://www.cloudflare.com/web-analytics/
+cloudflare_analytics:
+
+# Microsoft Clarity Analytics
+# See: https://clarity.microsoft.com/
+clarity_analytics: #
+
+# Matomo Analytics
+# See: https://matomo.org/
+matomo:
+ enable: false
+ server_url: # https://www.example.com/
+ site_id: #
+
+# Umami Analytics
+# See: https://umami.is/
+umami:
+ enable: false
+ script_url: # https://umami.example.com/script.js
+ website_id: #
+ host_url: #
+
+# Plausible Analytics
+# See: https://plausible.io/
+plausible:
+ enable: false
+ script_url: # https://plausible.io/js/script.js
+ site_domain: # www.example.com
+
+# Show number of visitors of each article.
+# You can visit https://www.leancloud.cn to get AppID and AppKey.
+leancloud_visitors:
+ enable: false
+ app_id: #
+ app_key: #
+ # Required for apps from CN region
+ server_url: #
+ # Dependencies: https://github.com/theme-next/hexo-leancloud-counter-security
+ # If you don't care about security in leancloud counter and just want to use it directly
+ # (without hexo-leancloud-counter-security plugin), set `security` to `false`.
+ security: true
+
+# Another tool to show number of visitors to each article.
+# Visit https://console.firebase.google.com/u/0/ to get apiKey and projectId.
+# Visit https://firebase.google.com/docs/firestore/ to get more information about firestore.
+firestore:
+ enable: false
+ collection: articles # Required, a string collection name to access firestore database
+ apiKey: # Required
+ projectId: # Required
+
+# Show Views / Visitors of the website / page with busuanzi.
+# For more information: http://ibruce.info/2015/04/04/busuanzi/
+busuanzi_count:
+ enable: false
+ total_visitors: true
+ total_visitors_icon: fa fa-user
+ total_views: true
+ total_views_icon: fa fa-eye
+ post_views: true
+ post_views_icon: far fa-eye
+
+
+# ---------------------------------------------------------------
+# Search Services
+# See: https://theme-next.js.org/docs/third-party-services/search-services
+# ---------------------------------------------------------------
+
+# Algolia Search
+# For more information: https://www.algolia.com
+algolia_search:
+ enable: false
+ hits:
+ per_page: 10
+
+# Local Search
+# Dependencies: https://github.com/next-theme/hexo-generator-searchdb
+local_search:
+ enable: false
+ # If auto, trigger search by changing input.
+ # If manual, trigger search by pressing enter key or search button.
+ trigger: auto
+ # Show top n results per article, show all results by setting to -1
+ top_n_per_article: 1
+ # Unescape html strings to the readable one.
+ unescape: false
+ # Preload the search data when the page loads.
+ preload: false
+
+
+# ---------------------------------------------------------------
+# Chat Services
+# See: https://theme-next.js.org/docs/third-party-services/chat-services
+# ---------------------------------------------------------------
+
+# A button to open designated chat widget in sidebar.
+# Firstly, you need to enable and configure the chat service.
+chat:
+ enable: false
+ icon: fa fa-comment # Icon name in Font Awesome, set false to disable icon.
+
+# Chatra is a functional, easy to use piece of chat software for websites.
+# For more information: https://chatra.com
+# Dashboard: https://app.chatra.io/settings/general
+chatra:
+ enable: false
+ async: true
+ id: # Visit Dashboard to get your ChatraID
+ #embed: # Unfinished experimental feature for developers. See: https://chatra.com/help/api/#injectto
+
+# Tidio is a powerful, all-in-one customer service tool.
+# For more information: https://www.tidio.com
+# Dashboard: https://www.tidio.com/panel/dashboard
+tidio:
+ enable: false
+ key: # Public Key, get it from dashboard. See: https://www.tidio.com/panel/settings/developer
+
+# Gitter is a chat and networking platform.
+# For more information: https://gitter.im
+gitter:
+ enable: false
+ room:
+
+
+# ---------------------------------------------------------------
+# CDN Settings
+# See: https://theme-next.js.org/docs/advanced-settings/vendors
+# ---------------------------------------------------------------
+
+vendors:
+ # The CDN provider of NexT internal scripts.
+ # Available values: local | jsdelivr | unpkg | cdnjs | custom
+ # Warning: If you are using the latest master branch of NexT, please set `internal: local`
+ internal: custom
+ # The default CDN provider of third-party plugins.
+ # Available values: local | jsdelivr | unpkg | cdnjs | custom
+ # Dependencies for `plugins: local`: https://github.com/next-theme/plugins
+ plugins: custom
+ # Custom CDN URL
+ # For example:
+ # custom_cdn_url: https://cdn.jsdelivr.net/npm/${npm_name}@${version}/${minified}
+ # custom_cdn_url: https://cdnjs.cloudflare.com/ajax/libs/${cdnjs_name}/${version}/${cdnjs_file}
+ custom_cdn_url: https://cdn.staticfile.org/${cdnjs_name}/${version}/${cdnjs_file}
+ # custom_cdn_url: https://npm.elemecdn.com/${npm_name}@${version}/${minified}
+
+# Assets
+# Accelerate delivery of static files using a CDN
+# The js option is only valid when vendors.internal is local.
+css: css
+js: js
+images: images
diff --git a/_config.yml b/_config.yml
index 60ba97f..a276f76 100644
--- a/_config.yml
+++ b/_config.yml
@@ -8,14 +8,13 @@ subtitle: ''
description: ''
keywords: [Java, Kotlin, Vertx, Hexo]
author: 寒兮
-language: zh-Hans
+language: zh-CN
timezone: ''
# URL
-## If your site is put in a subdirectory, set url as 'http://example.com/child' and root as '/child/'
-url: https://icesoulhanxi.github.io/
-root: /
-permalink: :year/:month/:day/:title/
+## Set your site url here. For example, if you use GitHub Page, set url as 'https://username.github.io/project'
+url: https://blog.ixnah.com
+permalink: posts/:title/
permalink_defaults:
pretty_urls:
trailing_index: true # Set to false to remove trailing 'index.html' from permalinks
@@ -30,6 +29,8 @@ category_dir: categories
code_dir: downloads/code
i18n_dir: :lang
skip_render:
+ - lib/**/*
+ - books/**/*
# Writing
new_post_name: :title.md # File name of new posts
@@ -46,11 +47,11 @@ relative_link: false
future: true
highlight:
enable: true
- line_number: false
+ line_number: true
auto_detect: false
tab_replace: ''
wrap: true
- hljs: false
+ hljs: true
prismjs:
enable: false
preprocess: true
@@ -98,7 +99,7 @@ ignore:
# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
-theme: melody
+theme: next
# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
diff --git a/package-lock.json b/package-lock.json
deleted file mode 100644
index b5e4d24..0000000
--- a/package-lock.json
+++ /dev/null
@@ -1,1968 +0,0 @@
-{
- "name": "hexo-site",
- "version": "0.0.0",
- "lockfileVersion": 1,
- "requires": true,
- "dependencies": {
- "@types/babel-types": {
- "version": "7.0.9",
- "resolved": "https://registry.npm.taobao.org/@types/babel-types/download/@types/babel-types-7.0.9.tgz",
- "integrity": "sha1-Ade4aUn0VUAqlMeIiD/kuldMrUE="
- },
- "@types/babylon": {
- "version": "6.16.5",
- "resolved": "https://registry.npm.taobao.org/@types/babylon/download/@types/babylon-6.16.5.tgz?cache=0&sync_timestamp=1605053109520&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fbabylon%2Fdownload%2F%40types%2Fbabylon-6.16.5.tgz",
- "integrity": "sha1-HFZB22nrjN83jt0ltL53VL7rSLQ=",
- "requires": {
- "@types/babel-types": "*"
- }
- },
- "JSONStream": {
- "version": "1.3.5",
- "resolved": "https://registry.npm.taobao.org/JSONStream/download/JSONStream-1.3.5.tgz",
- "integrity": "sha1-MgjB8I06TZkmGrZPkjArwV4RHKA=",
- "requires": {
- "jsonparse": "^1.2.0",
- "through": ">=2.2.7 <3"
- }
- },
- "a-sync-waterfall": {
- "version": "1.0.1",
- "resolved": "https://registry.npm.taobao.org/a-sync-waterfall/download/a-sync-waterfall-1.0.1.tgz",
- "integrity": "sha1-dba2qnJZi0l6El56J3DxT0yKH6c="
- },
- "abbrev": {
- "version": "1.1.1",
- "resolved": "https://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz",
- "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg="
- },
- "accepts": {
- "version": "1.3.7",
- "resolved": "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz",
- "integrity": "sha1-UxvHJlF6OytB+FACHGzBXqq1B80=",
- "requires": {
- "mime-types": "~2.1.24",
- "negotiator": "0.6.2"
- }
- },
- "acorn": {
- "version": "3.3.0",
- "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-3.3.0.tgz?cache=0&sync_timestamp=1602534380346&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-3.3.0.tgz",
- "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo="
- },
- "acorn-globals": {
- "version": "3.1.0",
- "resolved": "https://registry.npm.taobao.org/acorn-globals/download/acorn-globals-3.1.0.tgz",
- "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=",
- "requires": {
- "acorn": "^4.0.4"
- },
- "dependencies": {
- "acorn": {
- "version": "4.0.13",
- "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-4.0.13.tgz?cache=0&sync_timestamp=1602534380346&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-4.0.13.tgz",
- "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c="
- }
- }
- },
- "align-text": {
- "version": "0.1.4",
- "resolved": "https://registry.npm.taobao.org/align-text/download/align-text-0.1.4.tgz",
- "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
- "requires": {
- "kind-of": "^3.0.2",
- "longest": "^1.0.1",
- "repeat-string": "^1.5.2"
- }
- },
- "amdefine": {
- "version": "1.0.1",
- "resolved": "https://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz",
- "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
- },
- "ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz",
- "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U="
- },
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
- "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "anymatch": {
- "version": "3.1.1",
- "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.1.tgz",
- "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=",
- "requires": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- }
- },
- "archy": {
- "version": "1.0.0",
- "resolved": "https://registry.npm.taobao.org/archy/download/archy-1.0.0.tgz",
- "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA="
- },
- "argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fargparse%2Fdownload%2Fargparse-1.0.10.tgz",
- "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=",
- "requires": {
- "sprintf-js": "~1.0.2"
- }
- },
- "asap": {
- "version": "2.0.6",
- "resolved": "https://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz",
- "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
- },
- "async": {
- "version": "0.2.10",
- "resolved": "https://registry.npm.taobao.org/async/download/async-0.2.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync%2Fdownload%2Fasync-0.2.10.tgz",
- "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E="
- },
- "atob": {
- "version": "2.1.2",
- "resolved": "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz",
- "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k="
- },
- "babel-runtime": {
- "version": "6.26.0",
- "resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz",
- "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
- "requires": {
- "core-js": "^2.4.0",
- "regenerator-runtime": "^0.11.0"
- }
- },
- "babel-types": {
- "version": "6.26.0",
- "resolved": "https://registry.npm.taobao.org/babel-types/download/babel-types-6.26.0.tgz?cache=0&sync_timestamp=1593529712686&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-types%2Fdownload%2Fbabel-types-6.26.0.tgz",
- "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
- "requires": {
- "babel-runtime": "^6.26.0",
- "esutils": "^2.0.2",
- "lodash": "^4.17.4",
- "to-fast-properties": "^1.0.3"
- }
- },
- "babylon": {
- "version": "6.18.0",
- "resolved": "https://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz?cache=0&sync_timestamp=1593529713109&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabylon%2Fdownload%2Fbabylon-6.18.0.tgz",
- "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM="
- },
- "balanced-match": {
- "version": "1.0.0",
- "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
- },
- "basic-auth": {
- "version": "2.0.1",
- "resolved": "https://registry.npm.taobao.org/basic-auth/download/basic-auth-2.0.1.tgz",
- "integrity": "sha1-uZgnm/R844NEtPPPkW1Gebv1Hjo=",
- "requires": {
- "safe-buffer": "5.1.2"
- }
- },
- "binary-extensions": {
- "version": "2.1.0",
- "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.1.0.tgz",
- "integrity": "sha1-MPpAyef+B9vIlWeM0ocCTeokHdk="
- },
- "bluebird": {
- "version": "3.7.2",
- "resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz",
- "integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28="
- },
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz",
- "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=",
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz",
- "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=",
- "requires": {
- "fill-range": "^7.0.1"
- }
- },
- "bytes": {
- "version": "3.0.0",
- "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz",
- "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
- },
- "camel-case": {
- "version": "4.1.1",
- "resolved": "https://registry.npm.taobao.org/camel-case/download/camel-case-4.1.1.tgz",
- "integrity": "sha1-H8QchU8A4vfQE53+uhVC1olv5Uc=",
- "requires": {
- "pascal-case": "^3.1.1",
- "tslib": "^1.10.0"
- }
- },
- "camelcase": {
- "version": "1.2.1",
- "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-1.2.1.tgz?cache=0&sync_timestamp=1603921884289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-1.2.1.tgz",
- "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk="
- },
- "center-align": {
- "version": "0.1.3",
- "resolved": "https://registry.npm.taobao.org/center-align/download/center-align-0.1.3.tgz",
- "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
- "requires": {
- "align-text": "^0.1.3",
- "lazy-cache": "^1.0.3"
- }
- },
- "chalk": {
- "version": "4.1.0",
- "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1593529719605&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz",
- "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "character-parser": {
- "version": "2.2.0",
- "resolved": "https://registry.npm.taobao.org/character-parser/download/character-parser-2.2.0.tgz",
- "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=",
- "requires": {
- "is-regex": "^1.0.3"
- }
- },
- "chokidar": {
- "version": "3.4.3",
- "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.4.3.tgz?cache=0&sync_timestamp=1602585438968&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.4.3.tgz",
- "integrity": "sha1-wd84IxRI5FykrFiObHlXO6alfVs=",
- "requires": {
- "anymatch": "~3.1.1",
- "braces": "~3.0.2",
- "fsevents": "~2.1.2",
- "glob-parent": "~5.1.0",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.5.0"
- }
- },
- "clean-css": {
- "version": "4.2.3",
- "resolved": "https://registry.npm.taobao.org/clean-css/download/clean-css-4.2.3.tgz",
- "integrity": "sha1-UHtd59l7SO5T2ErbAWD/YhY4D3g=",
- "requires": {
- "source-map": "~0.6.0"
- }
- },
- "clipboard": {
- "version": "2.0.6",
- "resolved": "https://registry.npm.taobao.org/clipboard/download/clipboard-2.0.6.tgz",
- "integrity": "sha1-UpISlu7A/fd+rRdJQhshyWhkc3Y=",
- "optional": true,
- "requires": {
- "good-listener": "^1.2.2",
- "select": "^1.1.2",
- "tiny-emitter": "^2.0.0"
- }
- },
- "cliui": {
- "version": "2.1.0",
- "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-2.1.0.tgz",
- "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
- "requires": {
- "center-align": "^0.1.1",
- "right-align": "^0.1.1",
- "wordwrap": "0.0.2"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
- "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
- "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI="
- },
- "command-exists": {
- "version": "1.2.9",
- "resolved": "https://registry.npm.taobao.org/command-exists/download/command-exists-1.2.9.tgz",
- "integrity": "sha1-xQclrzgIyKsCYP1gsB+/oluVT2k="
- },
- "commander": {
- "version": "5.1.0",
- "resolved": "https://registry.npm.taobao.org/commander/download/commander-5.1.0.tgz?cache=0&sync_timestamp=1605992767704&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-5.1.0.tgz",
- "integrity": "sha1-Rqu9FlL44Fm92u+Zu9yyrZzxea4="
- },
- "compressible": {
- "version": "2.0.18",
- "resolved": "https://registry.npm.taobao.org/compressible/download/compressible-2.0.18.tgz",
- "integrity": "sha1-r1PMprBw1MPAdQ+9dyhqbXzEb7o=",
- "requires": {
- "mime-db": ">= 1.43.0 < 2"
- }
- },
- "compression": {
- "version": "1.7.4",
- "resolved": "https://registry.npm.taobao.org/compression/download/compression-1.7.4.tgz",
- "integrity": "sha1-lVI+/xcMpXwpoMpB5v4TH0Hlu48=",
- "requires": {
- "accepts": "~1.3.5",
- "bytes": "3.0.0",
- "compressible": "~2.0.16",
- "debug": "2.6.9",
- "on-headers": "~1.0.2",
- "safe-buffer": "5.1.2",
- "vary": "~1.1.2"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1605791507452&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
- "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
- }
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
- },
- "connect": {
- "version": "3.7.0",
- "resolved": "https://registry.npm.taobao.org/connect/download/connect-3.7.0.tgz",
- "integrity": "sha1-XUk0iRDKpeB6AYALAw0MNfIEhPg=",
- "requires": {
- "debug": "2.6.9",
- "finalhandler": "1.1.2",
- "parseurl": "~1.3.3",
- "utils-merge": "1.0.1"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1605791507452&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
- "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
- }
- },
- "constantinople": {
- "version": "3.1.2",
- "resolved": "https://registry.npm.taobao.org/constantinople/download/constantinople-3.1.2.tgz",
- "integrity": "sha1-1F7XJPV9PRBQABen06iJwTga5kc=",
- "requires": {
- "@types/babel-types": "^7.0.0",
- "@types/babylon": "^6.16.2",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0"
- }
- },
- "core-js": {
- "version": "2.6.11",
- "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz?cache=0&sync_timestamp=1604675690423&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz",
- "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw="
- },
- "cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-7.0.3.tgz",
- "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=",
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- }
- },
- "css": {
- "version": "2.2.4",
- "resolved": "https://registry.npm.taobao.org/css/download/css-2.2.4.tgz?cache=0&sync_timestamp=1593663869717&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss%2Fdownload%2Fcss-2.2.4.tgz",
- "integrity": "sha1-xkZ1XHOXHyu6amAeLPL9cbEpiSk=",
- "requires": {
- "inherits": "^2.0.3",
- "source-map": "^0.6.1",
- "source-map-resolve": "^0.5.2",
- "urix": "^0.1.0"
- }
- },
- "css-parse": {
- "version": "1.7.0",
- "resolved": "https://registry.npm.taobao.org/css-parse/download/css-parse-1.7.0.tgz",
- "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs="
- },
- "cuid": {
- "version": "2.1.8",
- "resolved": "https://registry.npm.taobao.org/cuid/download/cuid-2.1.8.tgz",
- "integrity": "sha1-y7iPlUFx4NV0dgbAE5+2XFEB6sA="
- },
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1605791507452&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz",
- "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
- },
- "decode-uri-component": {
- "version": "0.2.0",
- "resolved": "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz",
- "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
- },
- "deepmerge": {
- "version": "4.2.2",
- "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-4.2.2.tgz",
- "integrity": "sha1-RNLqNnm49NT/ujPwPYZfwee/SVU="
- },
- "delegate": {
- "version": "3.2.0",
- "resolved": "https://registry.npm.taobao.org/delegate/download/delegate-3.2.0.tgz",
- "integrity": "sha1-tmtxwxWFIuirV0T3INjKDCr1kWY=",
- "optional": true
- },
- "depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npm.taobao.org/depd/download/depd-2.0.0.tgz",
- "integrity": "sha1-tpYWPMdXVg0JzyLMj60Vcbeedt8="
- },
- "destroy": {
- "version": "1.0.4",
- "resolved": "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz",
- "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
- },
- "doctypes": {
- "version": "1.1.0",
- "resolved": "https://registry.npm.taobao.org/doctypes/download/doctypes-1.1.0.tgz",
- "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk="
- },
- "dom-serializer": {
- "version": "1.1.0",
- "resolved": "https://registry.npm.taobao.org/dom-serializer/download/dom-serializer-1.1.0.tgz?cache=0&sync_timestamp=1600026762467&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-serializer%2Fdownload%2Fdom-serializer-1.1.0.tgz",
- "integrity": "sha1-X3yCjxv8RIh9wqMVq1xFaR1US1g=",
- "requires": {
- "domelementtype": "^2.0.1",
- "domhandler": "^3.0.0",
- "entities": "^2.0.0"
- }
- },
- "domelementtype": {
- "version": "2.0.2",
- "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.0.2.tgz",
- "integrity": "sha1-87blSSAeRvWItZRj3XcYcTH+aXE="
- },
- "domhandler": {
- "version": "3.3.0",
- "resolved": "https://registry.npm.taobao.org/domhandler/download/domhandler-3.3.0.tgz",
- "integrity": "sha1-bbfqRuRhfrFc+HXfaLK4UkzgA3o=",
- "requires": {
- "domelementtype": "^2.0.1"
- }
- },
- "domutils": {
- "version": "2.4.2",
- "resolved": "https://registry.npm.taobao.org/domutils/download/domutils-2.4.2.tgz?cache=0&sync_timestamp=1601761294162&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-2.4.2.tgz",
- "integrity": "sha1-fuW+JhlE4a1IfZqgYWcgAQEjkis=",
- "requires": {
- "dom-serializer": "^1.0.1",
- "domelementtype": "^2.0.1",
- "domhandler": "^3.3.0"
- }
- },
- "ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz",
- "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
- },
- "ejs": {
- "version": "2.7.4",
- "resolved": "https://registry.npm.taobao.org/ejs/download/ejs-2.7.4.tgz?cache=0&sync_timestamp=1597678433620&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fejs%2Fdownload%2Fejs-2.7.4.tgz",
- "integrity": "sha1-SGYSh1c9zFPjZsehrlLDoSDuybo="
- },
- "encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz",
- "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
- },
- "entities": {
- "version": "2.1.0",
- "resolved": "https://registry.npm.taobao.org/entities/download/entities-2.1.0.tgz?cache=0&sync_timestamp=1602898797807&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-2.1.0.tgz",
- "integrity": "sha1-mS0xKc999ocLlsV4WMJJoSD4uLU="
- },
- "escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz",
- "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
- },
- "escape-string-regexp": {
- "version": "2.0.0",
- "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-2.0.0.tgz",
- "integrity": "sha1-owME6Z2qMuI7L9IPUbq9B8/8o0Q="
- },
- "esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz",
- "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE="
- },
- "esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz",
- "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q="
- },
- "etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz",
- "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
- },
- "fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz",
- "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=",
- "requires": {
- "to-regex-range": "^5.0.1"
- }
- },
- "finalhandler": {
- "version": "1.1.2",
- "resolved": "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.2.tgz",
- "integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=",
- "requires": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.3",
- "statuses": "~1.5.0",
- "unpipe": "~1.0.0"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1605791507452&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
- "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
- }
- },
- "fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz",
- "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
- },
- "fsevents": {
- "version": "2.1.3",
- "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.1.3.tgz?cache=0&sync_timestamp=1604593363910&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-2.1.3.tgz",
- "integrity": "sha1-+3OHA66NL5/pAMM4Nt3r7ouX8j4=",
- "optional": true
- },
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz",
- "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0="
- },
- "glob": {
- "version": "7.0.6",
- "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.0.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.0.6.tgz",
- "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.2",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "glob-parent": {
- "version": "5.1.1",
- "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.1.1.tgz",
- "integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=",
- "requires": {
- "is-glob": "^4.0.1"
- }
- },
- "good-listener": {
- "version": "1.2.2",
- "resolved": "https://registry.npm.taobao.org/good-listener/download/good-listener-1.2.2.tgz",
- "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=",
- "optional": true,
- "requires": {
- "delegate": "^3.1.2"
- }
- },
- "graceful-fs": {
- "version": "4.2.4",
- "resolved": "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.4.tgz",
- "integrity": "sha1-Ila94U02MpWMRl68ltxGfKB6Kfs="
- },
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz",
- "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=",
- "requires": {
- "function-bind": "^1.1.1"
- }
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz",
- "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s="
- },
- "has-symbols": {
- "version": "1.0.1",
- "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.1.tgz",
- "integrity": "sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg="
- },
- "hexo": {
- "version": "5.2.0",
- "resolved": "https://registry.npm.taobao.org/hexo/download/hexo-5.2.0.tgz",
- "integrity": "sha1-z4suPfO6KYBaF9lhRa1Bs4QyqOU=",
- "requires": {
- "abbrev": "^1.1.1",
- "archy": "^1.0.0",
- "bluebird": "^3.5.2",
- "chalk": "^4.0.0",
- "hexo-cli": "^4.0.0",
- "hexo-front-matter": "^2.0.0",
- "hexo-fs": "^3.1.0",
- "hexo-i18n": "^1.0.0",
- "hexo-log": "^2.0.0",
- "hexo-util": "^2.4.0",
- "js-yaml": "^3.12.0",
- "micromatch": "^4.0.2",
- "moment": "^2.22.2",
- "moment-timezone": "^0.5.21",
- "nunjucks": "^3.2.1",
- "pretty-hrtime": "^1.0.3",
- "resolve": "^1.8.1",
- "strip-ansi": "^6.0.0",
- "text-table": "^0.2.0",
- "tildify": "^2.0.0",
- "titlecase": "^1.1.2",
- "warehouse": "^4.0.0"
- },
- "dependencies": {
- "hexo-cli": {
- "version": "4.2.0",
- "resolved": "https://registry.npm.taobao.org/hexo-cli/download/hexo-cli-4.2.0.tgz",
- "integrity": "sha1-dGR7xyqQuc6/BK9bxwg5qygaMF0=",
- "requires": {
- "abbrev": "^1.1.1",
- "bluebird": "^3.5.5",
- "chalk": "^4.0.0",
- "command-exists": "^1.2.8",
- "hexo-fs": "^3.0.1",
- "hexo-log": "^2.0.0",
- "hexo-util": "^2.0.0",
- "minimist": "^1.2.5",
- "resolve": "^1.11.0",
- "tildify": "^2.0.0"
- }
- }
- }
- },
- "hexo-deployer-git": {
- "version": "2.1.0",
- "resolved": "https://registry.npm.taobao.org/hexo-deployer-git/download/hexo-deployer-git-2.1.0.tgz",
- "integrity": "sha1-LnLwXXsxjb4pkp0VbqE/kTI1T/E=",
- "requires": {
- "bluebird": "^3.5.0",
- "chalk": "^3.0.0",
- "hexo-fs": "^2.0.0",
- "hexo-util": "^1.0.0",
- "moment": "^2.18.0",
- "swig-templates": "^2.0.2"
- },
- "dependencies": {
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-3.0.0.tgz?cache=0&sync_timestamp=1593529719605&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-3.0.0.tgz",
- "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "hexo-fs": {
- "version": "2.0.1",
- "resolved": "https://registry.npm.taobao.org/hexo-fs/download/hexo-fs-2.0.1.tgz",
- "integrity": "sha1-q73K3sBnqDJtFLSOEBk1zxpPSOk=",
- "requires": {
- "bluebird": "^3.5.1",
- "chokidar": "^3.0.0",
- "escape-string-regexp": "^2.0.0",
- "graceful-fs": "^4.1.11"
- }
- },
- "hexo-util": {
- "version": "1.9.1",
- "resolved": "https://registry.npm.taobao.org/hexo-util/download/hexo-util-1.9.1.tgz",
- "integrity": "sha1-FdwQ0NykdMl4zbqcIOjQQXrJk94=",
- "requires": {
- "bluebird": "^3.5.2",
- "camel-case": "^4.0.0",
- "cross-spawn": "^7.0.0",
- "deepmerge": "^4.2.2",
- "highlight.js": "^9.13.1",
- "htmlparser2": "^4.0.0",
- "prismjs": "^1.17.1",
- "punycode.js": "^2.1.0",
- "strip-indent": "^3.0.0",
- "striptags": "^3.1.1"
- }
- },
- "highlight.js": {
- "version": "9.18.5",
- "resolved": "https://registry.npm.taobao.org/highlight.js/download/highlight.js-9.18.5.tgz",
- "integrity": "sha1-0Yo1mGfzeME41oGe38KorNXymCU="
- }
- }
- },
- "hexo-front-matter": {
- "version": "2.0.0",
- "resolved": "https://registry.npm.taobao.org/hexo-front-matter/download/hexo-front-matter-2.0.0.tgz?cache=0&sync_timestamp=1596019507637&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhexo-front-matter%2Fdownload%2Fhexo-front-matter-2.0.0.tgz",
- "integrity": "sha1-A/Oanu2xbFRI27O+x9/yxOIkAGw=",
- "requires": {
- "js-yaml": "^3.13.1"
- }
- },
- "hexo-fs": {
- "version": "3.1.0",
- "resolved": "https://registry.npm.taobao.org/hexo-fs/download/hexo-fs-3.1.0.tgz",
- "integrity": "sha1-IFL/csaM2ixXeoeqDqeYCuUD+pk=",
- "requires": {
- "bluebird": "^3.5.1",
- "chokidar": "^3.0.0",
- "graceful-fs": "^4.1.11",
- "hexo-util": "^2.0.0"
- }
- },
- "hexo-generator-archive": {
- "version": "1.0.0",
- "resolved": "https://registry.npm.taobao.org/hexo-generator-archive/download/hexo-generator-archive-1.0.0.tgz",
- "integrity": "sha1-rSr7EiMqZeL4YI/Byj8ZFi+2N4Y=",
- "requires": {
- "hexo-pagination": "1.0.0"
- }
- },
- "hexo-generator-category": {
- "version": "1.0.0",
- "resolved": "https://registry.npm.taobao.org/hexo-generator-category/download/hexo-generator-category-1.0.0.tgz",
- "integrity": "sha1-zSorA+sybaPvgh1uKUCEiMwTLrU=",
- "requires": {
- "hexo-pagination": "1.0.0"
- }
- },
- "hexo-generator-index": {
- "version": "2.0.0",
- "resolved": "https://registry.npm.taobao.org/hexo-generator-index/download/hexo-generator-index-2.0.0.tgz",
- "integrity": "sha1-FecfTSjunSFy4td+jR26BIgu3I8=",
- "requires": {
- "hexo-pagination": "1.0.0",
- "timsort": "^0.3.0"
- }
- },
- "hexo-generator-tag": {
- "version": "1.0.0",
- "resolved": "https://registry.npm.taobao.org/hexo-generator-tag/download/hexo-generator-tag-1.0.0.tgz",
- "integrity": "sha1-VOwj3pQJx1WE6oHjYFelkDGwIvE=",
- "requires": {
- "hexo-pagination": "1.0.0"
- }
- },
- "hexo-i18n": {
- "version": "1.0.0",
- "resolved": "https://registry.npm.taobao.org/hexo-i18n/download/hexo-i18n-1.0.0.tgz",
- "integrity": "sha1-eYP7OjE+kGFbhN2PqUanHEie9b0=",
- "requires": {
- "sprintf-js": "^1.0.3"
- }
- },
- "hexo-log": {
- "version": "2.0.0",
- "resolved": "https://registry.npm.taobao.org/hexo-log/download/hexo-log-2.0.0.tgz",
- "integrity": "sha1-HcyOlgApsIshmU/ixWxOPWNG6JM=",
- "requires": {
- "chalk": "^4.0.0"
- }
- },
- "hexo-pagination": {
- "version": "1.0.0",
- "resolved": "https://registry.npm.taobao.org/hexo-pagination/download/hexo-pagination-1.0.0.tgz",
- "integrity": "sha1-ycDKNmUme56dCon8PtyvMnaQfcE="
- },
- "hexo-renderer-ejs": {
- "version": "1.0.0",
- "resolved": "https://registry.npm.taobao.org/hexo-renderer-ejs/download/hexo-renderer-ejs-1.0.0.tgz",
- "integrity": "sha1-Q8TeSe6uIkA2pFffhg6xwUxotLQ=",
- "requires": {
- "ejs": "^2.6.1"
- }
- },
- "hexo-renderer-marked": {
- "version": "3.3.0",
- "resolved": "https://registry.npm.taobao.org/hexo-renderer-marked/download/hexo-renderer-marked-3.3.0.tgz",
- "integrity": "sha1-VLzp8A01bHE5Ky/DqIHff/ba6L0=",
- "requires": {
- "hexo-util": "^2.1.0",
- "marked": "^1.0.0"
- }
- },
- "hexo-renderer-pug": {
- "version": "1.0.0",
- "resolved": "https://registry.npm.taobao.org/hexo-renderer-pug/download/hexo-renderer-pug-1.0.0.tgz",
- "integrity": "sha1-4jz6U9MIoJha6OwrJaT40kxLTcw=",
- "requires": {
- "pug": "^2.0.1"
- }
- },
- "hexo-renderer-stylus": {
- "version": "2.0.1",
- "resolved": "https://registry.npm.taobao.org/hexo-renderer-stylus/download/hexo-renderer-stylus-2.0.1.tgz",
- "integrity": "sha1-xlVm6X6QWKUuRsgrDEXPVh9LlMs=",
- "requires": {
- "nib": "^1.1.2",
- "stylus": "^0.54.8"
- }
- },
- "hexo-server": {
- "version": "2.0.0",
- "resolved": "https://registry.npm.taobao.org/hexo-server/download/hexo-server-2.0.0.tgz",
- "integrity": "sha1-GtksyKfTUo/sb/pl/4RT8kL3mD8=",
- "requires": {
- "bluebird": "^3.5.5",
- "chalk": "^4.0.0",
- "compression": "^1.7.4",
- "connect": "^3.7.0",
- "mime": "^2.4.3",
- "morgan": "^1.9.1",
- "open": "^7.0.0",
- "serve-static": "^1.14.1"
- }
- },
- "hexo-theme-melody": {
- "version": "1.9.0",
- "resolved": "https://registry.npm.taobao.org/hexo-theme-melody/download/hexo-theme-melody-1.9.0.tgz",
- "integrity": "sha1-AtYrsUT1JucpQ2oB2OeUyJTiy1E="
- },
- "hexo-util": {
- "version": "2.4.0",
- "resolved": "https://registry.npm.taobao.org/hexo-util/download/hexo-util-2.4.0.tgz",
- "integrity": "sha1-9cAJmgoXGLOtJwYeXk0fuet/K0E=",
- "requires": {
- "bluebird": "^3.5.2",
- "camel-case": "^4.0.0",
- "cross-spawn": "^7.0.0",
- "deepmerge": "^4.2.2",
- "highlight.js": "^10.0.0",
- "htmlparser2": "^4.0.0",
- "prismjs": "^1.17.1",
- "strip-indent": "^3.0.0",
- "striptags": "^3.1.1"
- }
- },
- "highlight.js": {
- "version": "10.4.0",
- "resolved": "https://registry.npm.taobao.org/highlight.js/download/highlight.js-10.4.0.tgz",
- "integrity": "sha1-7zzkdeXfp6SEhCYLSeokLdq4I6A="
- },
- "htmlparser2": {
- "version": "4.1.0",
- "resolved": "https://registry.npm.taobao.org/htmlparser2/download/htmlparser2-4.1.0.tgz?cache=0&sync_timestamp=1603670804521&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-4.1.0.tgz",
- "integrity": "sha1-mk7xYfLkYl6/ffvmwKL1LRilnng=",
- "requires": {
- "domelementtype": "^2.0.1",
- "domhandler": "^3.0.0",
- "domutils": "^2.0.0",
- "entities": "^2.0.0"
- }
- },
- "http-errors": {
- "version": "1.7.3",
- "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.3.tgz",
- "integrity": "sha1-bGGeT5xgMIw4UZSYwU+7EKrOuwY=",
- "requires": {
- "depd": "~1.1.2",
- "inherits": "2.0.4",
- "setprototypeof": "1.1.1",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.0"
- },
- "dependencies": {
- "depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz",
- "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
- }
- }
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "requires": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz",
- "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w="
- },
- "is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz",
- "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=",
- "requires": {
- "binary-extensions": "^2.0.0"
- }
- },
- "is-buffer": {
- "version": "1.1.6",
- "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz?cache=0&sync_timestamp=1604432378894&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz",
- "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4="
- },
- "is-core-module": {
- "version": "2.1.0",
- "resolved": "https://registry.npm.taobao.org/is-core-module/download/is-core-module-2.1.0.tgz",
- "integrity": "sha1-pMwDHZsaymPuy9GKZQ4Ty07quUY=",
- "requires": {
- "has": "^1.0.3"
- }
- },
- "is-docker": {
- "version": "2.1.1",
- "resolved": "https://registry.npm.taobao.org/is-docker/download/is-docker-2.1.1.tgz",
- "integrity": "sha1-QSWojkTkUNOE4JBH7eca3C0UQVY="
- },
- "is-expression": {
- "version": "3.0.0",
- "resolved": "https://registry.npm.taobao.org/is-expression/download/is-expression-3.0.0.tgz",
- "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=",
- "requires": {
- "acorn": "~4.0.2",
- "object-assign": "^4.0.1"
- },
- "dependencies": {
- "acorn": {
- "version": "4.0.13",
- "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-4.0.13.tgz?cache=0&sync_timestamp=1602534380346&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-4.0.13.tgz",
- "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c="
- }
- }
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
- },
- "is-glob": {
- "version": "4.0.1",
- "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz",
- "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=",
- "requires": {
- "is-extglob": "^2.1.1"
- }
- },
- "is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz",
- "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss="
- },
- "is-plain-object": {
- "version": "3.0.1",
- "resolved": "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-3.0.1.tgz?cache=0&sync_timestamp=1599667316315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-object%2Fdownload%2Fis-plain-object-3.0.1.tgz",
- "integrity": "sha1-Zi2S0kwKpDAkB7DUXSHyJRyF+Fs="
- },
- "is-promise": {
- "version": "2.2.2",
- "resolved": "https://registry.npm.taobao.org/is-promise/download/is-promise-2.2.2.tgz",
- "integrity": "sha1-OauVnMv5p3TPB597QMeib3YxNfE="
- },
- "is-regex": {
- "version": "1.1.1",
- "resolved": "https://registry.npm.taobao.org/is-regex/download/is-regex-1.1.1.tgz?cache=0&sync_timestamp=1596555709354&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regex%2Fdownload%2Fis-regex-1.1.1.tgz",
- "integrity": "sha1-xvmKrMVG9s7FRooHt7FTq1ZKV7k=",
- "requires": {
- "has-symbols": "^1.0.1"
- }
- },
- "is-wsl": {
- "version": "2.2.0",
- "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-2.2.0.tgz",
- "integrity": "sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE=",
- "requires": {
- "is-docker": "^2.0.0"
- }
- },
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
- },
- "js-stringify": {
- "version": "1.0.2",
- "resolved": "https://registry.npm.taobao.org/js-stringify/download/js-stringify-1.0.2.tgz",
- "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds="
- },
- "js-yaml": {
- "version": "3.14.0",
- "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.14.0.tgz?cache=0&sync_timestamp=1593529722001&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.0.tgz",
- "integrity": "sha1-p6NBcPJqIbsWJCTYray0ETpp5II=",
- "requires": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- }
- },
- "jsonparse": {
- "version": "1.3.1",
- "resolved": "https://registry.npm.taobao.org/jsonparse/download/jsonparse-1.3.1.tgz",
- "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA="
- },
- "jstransformer": {
- "version": "1.0.0",
- "resolved": "https://registry.npm.taobao.org/jstransformer/download/jstransformer-1.0.0.tgz",
- "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=",
- "requires": {
- "is-promise": "^2.0.0",
- "promise": "^7.0.1"
- }
- },
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "^1.1.5"
- }
- },
- "lazy-cache": {
- "version": "1.0.4",
- "resolved": "https://registry.npm.taobao.org/lazy-cache/download/lazy-cache-1.0.4.tgz",
- "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4="
- },
- "lodash": {
- "version": "4.17.20",
- "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.20.tgz?cache=0&sync_timestamp=1597336125847&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz",
- "integrity": "sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI="
- },
- "longest": {
- "version": "1.0.1",
- "resolved": "https://registry.npm.taobao.org/longest/download/longest-1.0.1.tgz",
- "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
- },
- "lower-case": {
- "version": "2.0.1",
- "resolved": "https://registry.npm.taobao.org/lower-case/download/lower-case-2.0.1.tgz",
- "integrity": "sha1-Oe6zbjlhFcwF4pQi6uqeaSyUCMc=",
- "requires": {
- "tslib": "^1.10.0"
- }
- },
- "marked": {
- "version": "1.2.5",
- "resolved": "https://registry.npm.taobao.org/marked/download/marked-1.2.5.tgz?cache=0&sync_timestamp=1605794811098&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmarked%2Fdownload%2Fmarked-1.2.5.tgz",
- "integrity": "sha1-pEsx8qC4tb/WEPANVdGVLRrB39s="
- },
- "micromatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-4.0.2.tgz?cache=0&sync_timestamp=1593529693281&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.2.tgz",
- "integrity": "sha1-T8sJmb+fvC/L3SEvbWKbmlbDklk=",
- "requires": {
- "braces": "^3.0.1",
- "picomatch": "^2.0.5"
- }
- },
- "mime": {
- "version": "2.4.6",
- "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.4.6.tgz?cache=0&sync_timestamp=1593529693583&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.6.tgz",
- "integrity": "sha1-5bQHyQ20QvK+tbFiNz0Htpr/pNE="
- },
- "mime-db": {
- "version": "1.44.0",
- "resolved": "https://registry.npm.taobao.org/mime-db/download/mime-db-1.44.0.tgz?cache=0&sync_timestamp=1600831145015&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.44.0.tgz",
- "integrity": "sha1-+hHF6wrKEzS0Izy01S8QxaYnL5I="
- },
- "mime-types": {
- "version": "2.1.27",
- "resolved": "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.27.tgz",
- "integrity": "sha1-R5SfmOJ56lMRn1ci4PNOUpvsAJ8=",
- "requires": {
- "mime-db": "1.44.0"
- }
- },
- "min-indent": {
- "version": "1.0.1",
- "resolved": "https://registry.npm.taobao.org/min-indent/download/min-indent-1.0.1.tgz",
- "integrity": "sha1-pj9oFnOzBXH76LwlaGrnRu76mGk="
- },
- "minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz",
- "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "minimist": {
- "version": "1.2.5",
- "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz",
- "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI="
- },
- "mkdirp": {
- "version": "0.5.5",
- "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz?cache=0&sync_timestamp=1593529694459&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz",
- "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=",
- "requires": {
- "minimist": "^1.2.5"
- }
- },
- "moment": {
- "version": "2.29.1",
- "resolved": "https://registry.npm.taobao.org/moment/download/moment-2.29.1.tgz?cache=0&sync_timestamp=1601983320283&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmoment%2Fdownload%2Fmoment-2.29.1.tgz",
- "integrity": "sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M="
- },
- "moment-timezone": {
- "version": "0.5.32",
- "resolved": "https://registry.npm.taobao.org/moment-timezone/download/moment-timezone-0.5.32.tgz?cache=0&sync_timestamp=1605362752878&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmoment-timezone%2Fdownload%2Fmoment-timezone-0.5.32.tgz",
- "integrity": "sha1-23Z3zDzGgP0wMD69kLDaHKDf7MI=",
- "requires": {
- "moment": ">= 2.9.0"
- }
- },
- "morgan": {
- "version": "1.10.0",
- "resolved": "https://registry.npm.taobao.org/morgan/download/morgan-1.10.0.tgz",
- "integrity": "sha1-CRd4q8H8R801CYJGU9rh+qtrF9c=",
- "requires": {
- "basic-auth": "~2.0.1",
- "debug": "2.6.9",
- "depd": "~2.0.0",
- "on-finished": "~2.3.0",
- "on-headers": "~1.0.2"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1605791507452&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
- "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz",
- "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk="
- },
- "negotiator": {
- "version": "0.6.2",
- "resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz",
- "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs="
- },
- "nib": {
- "version": "1.1.2",
- "resolved": "https://registry.npm.taobao.org/nib/download/nib-1.1.2.tgz",
- "integrity": "sha1-amnt5AgblcDe+L4CSkyK4MLLtsc=",
- "requires": {
- "stylus": "0.54.5"
- },
- "dependencies": {
- "source-map": {
- "version": "0.1.43",
- "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.1.43.tgz?cache=0&sync_timestamp=1593529658602&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.1.43.tgz",
- "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
- "requires": {
- "amdefine": ">=0.0.4"
- }
- },
- "stylus": {
- "version": "0.54.5",
- "resolved": "https://registry.npm.taobao.org/stylus/download/stylus-0.54.5.tgz",
- "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=",
- "requires": {
- "css-parse": "1.7.x",
- "debug": "*",
- "glob": "7.0.x",
- "mkdirp": "0.5.x",
- "sax": "0.5.x",
- "source-map": "0.1.x"
- }
- }
- }
- },
- "no-case": {
- "version": "3.0.3",
- "resolved": "https://registry.npm.taobao.org/no-case/download/no-case-3.0.3.tgz",
- "integrity": "sha1-whtDTB/+SLOQh+hs+00lgunfGPg=",
- "requires": {
- "lower-case": "^2.0.1",
- "tslib": "^1.10.0"
- }
- },
- "normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz?cache=0&sync_timestamp=1593529695654&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-path%2Fdownload%2Fnormalize-path-3.0.0.tgz",
- "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU="
- },
- "nunjucks": {
- "version": "3.2.2",
- "resolved": "https://registry.npm.taobao.org/nunjucks/download/nunjucks-3.2.2.tgz",
- "integrity": "sha1-RfkV/vD4n7qzjEidyFAl9khZ9GY=",
- "requires": {
- "a-sync-waterfall": "^1.0.0",
- "asap": "^2.0.3",
- "chokidar": "^3.3.0",
- "commander": "^5.1.0"
- }
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
- },
- "on-finished": {
- "version": "2.3.0",
- "resolved": "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz",
- "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
- "requires": {
- "ee-first": "1.1.1"
- }
- },
- "on-headers": {
- "version": "1.0.2",
- "resolved": "https://registry.npm.taobao.org/on-headers/download/on-headers-1.0.2.tgz",
- "integrity": "sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8="
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "requires": {
- "wrappy": "1"
- }
- },
- "open": {
- "version": "7.3.0",
- "resolved": "https://registry.npm.taobao.org/open/download/open-7.3.0.tgz",
- "integrity": "sha1-RUYf3uRkRPNkW24U6zypS4Lhvmk=",
- "requires": {
- "is-docker": "^2.0.0",
- "is-wsl": "^2.1.1"
- }
- },
- "optimist": {
- "version": "0.6.1",
- "resolved": "https://registry.npm.taobao.org/optimist/download/optimist-0.6.1.tgz",
- "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
- "requires": {
- "minimist": "~0.0.1",
- "wordwrap": "~0.0.2"
- },
- "dependencies": {
- "minimist": {
- "version": "0.0.10",
- "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-0.0.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-0.0.10.tgz",
- "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8="
- }
- }
- },
- "parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz?cache=0&sync_timestamp=1593529696791&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparseurl%2Fdownload%2Fparseurl-1.3.3.tgz",
- "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ="
- },
- "pascal-case": {
- "version": "3.1.1",
- "resolved": "https://registry.npm.taobao.org/pascal-case/download/pascal-case-3.1.1.tgz",
- "integrity": "sha1-WsGXUTPtYZKB6Ikglz0s0fJ53l8=",
- "requires": {
- "no-case": "^3.0.3",
- "tslib": "^1.10.0"
- }
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
- },
- "path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz",
- "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U="
- },
- "path-parse": {
- "version": "1.0.6",
- "resolved": "https://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz",
- "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw="
- },
- "picomatch": {
- "version": "2.2.2",
- "resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz",
- "integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0="
- },
- "pretty-hrtime": {
- "version": "1.0.3",
- "resolved": "https://registry.npm.taobao.org/pretty-hrtime/download/pretty-hrtime-1.0.3.tgz",
- "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE="
- },
- "prismjs": {
- "version": "1.22.0",
- "resolved": "https://registry.npm.taobao.org/prismjs/download/prismjs-1.22.0.tgz",
- "integrity": "sha1-c8NACvxYqCPdfu0CP44c6f2Jd/o=",
- "requires": {
- "clipboard": "^2.0.0"
- }
- },
- "promise": {
- "version": "7.3.1",
- "resolved": "https://registry.npm.taobao.org/promise/download/promise-7.3.1.tgz",
- "integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=",
- "requires": {
- "asap": "~2.0.3"
- }
- },
- "pug": {
- "version": "2.0.4",
- "resolved": "https://registry.npm.taobao.org/pug/download/pug-2.0.4.tgz?cache=0&sync_timestamp=1590410429990&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpug%2Fdownload%2Fpug-2.0.4.tgz",
- "integrity": "sha1-7naC7ApgSUs41IqI8F87CskxN30=",
- "requires": {
- "pug-code-gen": "^2.0.2",
- "pug-filters": "^3.1.1",
- "pug-lexer": "^4.1.0",
- "pug-linker": "^3.0.6",
- "pug-load": "^2.0.12",
- "pug-parser": "^5.0.1",
- "pug-runtime": "^2.0.5",
- "pug-strip-comments": "^1.0.4"
- }
- },
- "pug-attrs": {
- "version": "2.0.4",
- "resolved": "https://registry.npm.taobao.org/pug-attrs/download/pug-attrs-2.0.4.tgz",
- "integrity": "sha1-svRMQ55OtK1dTvJcrCDRitKMwzY=",
- "requires": {
- "constantinople": "^3.0.1",
- "js-stringify": "^1.0.1",
- "pug-runtime": "^2.0.5"
- }
- },
- "pug-code-gen": {
- "version": "2.0.2",
- "resolved": "https://registry.npm.taobao.org/pug-code-gen/download/pug-code-gen-2.0.2.tgz",
- "integrity": "sha1-rQlnFirqB33PeHg42U7RSssCF8I=",
- "requires": {
- "constantinople": "^3.1.2",
- "doctypes": "^1.1.0",
- "js-stringify": "^1.0.1",
- "pug-attrs": "^2.0.4",
- "pug-error": "^1.3.3",
- "pug-runtime": "^2.0.5",
- "void-elements": "^2.0.1",
- "with": "^5.0.0"
- }
- },
- "pug-error": {
- "version": "1.3.3",
- "resolved": "https://registry.npm.taobao.org/pug-error/download/pug-error-1.3.3.tgz",
- "integrity": "sha1-80L7AIdS1YA0wYXeA2At2f/hX6Y="
- },
- "pug-filters": {
- "version": "3.1.1",
- "resolved": "https://registry.npm.taobao.org/pug-filters/download/pug-filters-3.1.1.tgz",
- "integrity": "sha1-qyzILbnuzPV4vaiRMOJSoNsCaqc=",
- "requires": {
- "clean-css": "^4.1.11",
- "constantinople": "^3.0.1",
- "jstransformer": "1.0.0",
- "pug-error": "^1.3.3",
- "pug-walk": "^1.1.8",
- "resolve": "^1.1.6",
- "uglify-js": "^2.6.1"
- }
- },
- "pug-lexer": {
- "version": "4.1.0",
- "resolved": "https://registry.npm.taobao.org/pug-lexer/download/pug-lexer-4.1.0.tgz",
- "integrity": "sha1-UxzeSMfAsfy7wrhUhchmXjFInP0=",
- "requires": {
- "character-parser": "^2.1.1",
- "is-expression": "^3.0.0",
- "pug-error": "^1.3.3"
- }
- },
- "pug-linker": {
- "version": "3.0.6",
- "resolved": "https://registry.npm.taobao.org/pug-linker/download/pug-linker-3.0.6.tgz",
- "integrity": "sha1-9b8hiw79Zc5mcPevxRZY0Pgpifs=",
- "requires": {
- "pug-error": "^1.3.3",
- "pug-walk": "^1.1.8"
- }
- },
- "pug-load": {
- "version": "2.0.12",
- "resolved": "https://registry.npm.taobao.org/pug-load/download/pug-load-2.0.12.tgz",
- "integrity": "sha1-04yF64X24vcE3qFNzKlBRNNdPns=",
- "requires": {
- "object-assign": "^4.1.0",
- "pug-walk": "^1.1.8"
- }
- },
- "pug-parser": {
- "version": "5.0.1",
- "resolved": "https://registry.npm.taobao.org/pug-parser/download/pug-parser-5.0.1.tgz",
- "integrity": "sha1-A+etpItoQL04Ivhn19kPhC0P/ck=",
- "requires": {
- "pug-error": "^1.3.3",
- "token-stream": "0.0.1"
- }
- },
- "pug-runtime": {
- "version": "2.0.5",
- "resolved": "https://registry.npm.taobao.org/pug-runtime/download/pug-runtime-2.0.5.tgz?cache=0&sync_timestamp=1590409234802&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpug-runtime%2Fdownload%2Fpug-runtime-2.0.5.tgz",
- "integrity": "sha1-baeXbDa/IvaOczw1kkDYrnoylTo="
- },
- "pug-strip-comments": {
- "version": "1.0.4",
- "resolved": "https://registry.npm.taobao.org/pug-strip-comments/download/pug-strip-comments-1.0.4.tgz",
- "integrity": "sha1-zBtt4fbo9ZMc8C7GbN/9P1Dq+Kg=",
- "requires": {
- "pug-error": "^1.3.3"
- }
- },
- "pug-walk": {
- "version": "1.1.8",
- "resolved": "https://registry.npm.taobao.org/pug-walk/download/pug-walk-1.1.8.tgz",
- "integrity": "sha1-tAj2fyeRL4wh2i9FtyMMS9Kl6no="
- },
- "punycode.js": {
- "version": "2.1.0",
- "resolved": "https://registry.npm.taobao.org/punycode.js/download/punycode.js-2.1.0.tgz",
- "integrity": "sha1-85N/epFBUsLcF+nCgKLPhqJrfNo="
- },
- "range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npm.taobao.org/range-parser/download/range-parser-1.2.1.tgz",
- "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE="
- },
- "readdirp": {
- "version": "3.5.0",
- "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.5.0.tgz?cache=0&sync_timestamp=1602584394621&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.5.0.tgz",
- "integrity": "sha1-m6dMAZsV02UnjS6Ru4xI17TULJ4=",
- "requires": {
- "picomatch": "^2.2.1"
- }
- },
- "regenerator-runtime": {
- "version": "0.11.1",
- "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz?cache=0&sync_timestamp=1595456367497&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz",
- "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk="
- },
- "repeat-string": {
- "version": "1.6.1",
- "resolved": "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz",
- "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
- },
- "resolve": {
- "version": "1.19.0",
- "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.19.0.tgz",
- "integrity": "sha1-GvW/YwQJc0oGfK4pMYqsf6KaJnw=",
- "requires": {
- "is-core-module": "^2.1.0",
- "path-parse": "^1.0.6"
- }
- },
- "resolve-url": {
- "version": "0.2.1",
- "resolved": "https://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz",
- "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
- },
- "rfdc": {
- "version": "1.1.4",
- "resolved": "https://registry.npm.taobao.org/rfdc/download/rfdc-1.1.4.tgz",
- "integrity": "sha1-unLME2egzNnPgahws7WL060H+MI="
- },
- "right-align": {
- "version": "0.1.3",
- "resolved": "https://registry.npm.taobao.org/right-align/download/right-align-0.1.3.tgz",
- "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
- "requires": {
- "align-text": "^0.1.1"
- }
- },
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz",
- "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0="
- },
- "safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz",
- "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo="
- },
- "sax": {
- "version": "0.5.8",
- "resolved": "https://registry.npm.taobao.org/sax/download/sax-0.5.8.tgz?cache=0&sync_timestamp=1593529670203&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsax%2Fdownload%2Fsax-0.5.8.tgz",
- "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE="
- },
- "select": {
- "version": "1.1.2",
- "resolved": "https://registry.npm.taobao.org/select/download/select-1.1.2.tgz",
- "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=",
- "optional": true
- },
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz",
- "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0="
- },
- "send": {
- "version": "0.17.1",
- "resolved": "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz",
- "integrity": "sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg=",
- "requires": {
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "destroy": "~1.0.4",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "~1.7.2",
- "mime": "1.6.0",
- "ms": "2.1.1",
- "on-finished": "~2.3.0",
- "range-parser": "~1.2.1",
- "statuses": "~1.5.0"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1605791507452&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
- "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
- "requires": {
- "ms": "2.0.0"
- },
- "dependencies": {
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
- }
- },
- "depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz",
- "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
- },
- "mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz?cache=0&sync_timestamp=1593529693583&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz",
- "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE="
- },
- "ms": {
- "version": "2.1.1",
- "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz",
- "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo="
- }
- }
- },
- "serve-static": {
- "version": "1.14.1",
- "resolved": "https://registry.npm.taobao.org/serve-static/download/serve-static-1.14.1.tgz",
- "integrity": "sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk=",
- "requires": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.17.1"
- }
- },
- "setprototypeof": {
- "version": "1.1.1",
- "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz",
- "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM="
- },
- "shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz",
- "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=",
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-3.0.0.tgz",
- "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI="
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1593529658602&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz",
- "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM="
- },
- "source-map-resolve": {
- "version": "0.5.3",
- "resolved": "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.3.tgz",
- "integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=",
- "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.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz",
- "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
- },
- "sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
- },
- "statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz",
- "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
- },
- "strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz",
- "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=",
- "requires": {
- "ansi-regex": "^5.0.0"
- }
- },
- "strip-indent": {
- "version": "3.0.0",
- "resolved": "https://registry.npm.taobao.org/strip-indent/download/strip-indent-3.0.0.tgz",
- "integrity": "sha1-wy4c7pQLazQyx3G8LFS8znPNMAE=",
- "requires": {
- "min-indent": "^1.0.0"
- }
- },
- "striptags": {
- "version": "3.1.1",
- "resolved": "https://registry.npm.taobao.org/striptags/download/striptags-3.1.1.tgz",
- "integrity": "sha1-yMPn/db7S7OjKjt1LltePjgJPr0="
- },
- "stylus": {
- "version": "0.54.8",
- "resolved": "https://registry.npm.taobao.org/stylus/download/stylus-0.54.8.tgz",
- "integrity": "sha1-PaPmWWa8Vnp7BEv+DuzmU+CZ0Uc=",
- "requires": {
- "css-parse": "~2.0.0",
- "debug": "~3.1.0",
- "glob": "^7.1.6",
- "mkdirp": "~1.0.4",
- "safer-buffer": "^2.1.2",
- "sax": "~1.2.4",
- "semver": "^6.3.0",
- "source-map": "^0.7.3"
- },
- "dependencies": {
- "css-parse": {
- "version": "2.0.0",
- "resolved": "https://registry.npm.taobao.org/css-parse/download/css-parse-2.0.0.tgz",
- "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=",
- "requires": {
- "css": "^2.0.0"
- }
- },
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz?cache=0&sync_timestamp=1605791507452&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz",
- "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "glob": {
- "version": "7.1.6",
- "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz",
- "integrity": "sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY=",
- "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"
- }
- },
- "mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-1.0.4.tgz?cache=0&sync_timestamp=1593529694459&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz",
- "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34="
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- },
- "sax": {
- "version": "1.2.4",
- "resolved": "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz?cache=0&sync_timestamp=1593529670203&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsax%2Fdownload%2Fsax-1.2.4.tgz",
- "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk="
- },
- "source-map": {
- "version": "0.7.3",
- "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz?cache=0&sync_timestamp=1593529658602&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.7.3.tgz",
- "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M="
- }
- }
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1606205060845&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
- "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "swig-templates": {
- "version": "2.0.3",
- "resolved": "https://registry.npm.taobao.org/swig-templates/download/swig-templates-2.0.3.tgz",
- "integrity": "sha1-a0xDtGIXXfKo2oV6IEM3nsbqb9A=",
- "requires": {
- "optimist": "~0.6",
- "uglify-js": "2.6.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz?cache=0&sync_timestamp=1593529658602&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
- },
- "uglify-js": {
- "version": "2.6.0",
- "resolved": "https://registry.npm.taobao.org/uglify-js/download/uglify-js-2.6.0.tgz?cache=0&sync_timestamp=1606071597176&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglify-js%2Fdownload%2Fuglify-js-2.6.0.tgz",
- "integrity": "sha1-JeqhzDVQ45QQzu+v0c+7a20V8AE=",
- "requires": {
- "async": "~0.2.6",
- "source-map": "~0.5.1",
- "uglify-to-browserify": "~1.0.0",
- "yargs": "~3.10.0"
- }
- }
- }
- },
- "text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz",
- "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
- },
- "through": {
- "version": "2.3.8",
- "resolved": "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz",
- "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
- },
- "tildify": {
- "version": "2.0.0",
- "resolved": "https://registry.npm.taobao.org/tildify/download/tildify-2.0.0.tgz",
- "integrity": "sha1-8gXzZ01nfOaYtwZ6melJzgO0dUo="
- },
- "timsort": {
- "version": "0.3.0",
- "resolved": "https://registry.npm.taobao.org/timsort/download/timsort-0.3.0.tgz",
- "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q="
- },
- "tiny-emitter": {
- "version": "2.1.0",
- "resolved": "https://registry.npm.taobao.org/tiny-emitter/download/tiny-emitter-2.1.0.tgz",
- "integrity": "sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM=",
- "optional": true
- },
- "titlecase": {
- "version": "1.1.3",
- "resolved": "https://registry.npm.taobao.org/titlecase/download/titlecase-1.1.3.tgz",
- "integrity": "sha1-/G1l/1grBgJBB2jvGgm3BQYxPcM="
- },
- "to-fast-properties": {
- "version": "1.0.3",
- "resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.3.tgz",
- "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc="
- },
- "to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz",
- "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=",
- "requires": {
- "is-number": "^7.0.0"
- }
- },
- "toidentifier": {
- "version": "1.0.0",
- "resolved": "https://registry.npm.taobao.org/toidentifier/download/toidentifier-1.0.0.tgz",
- "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM="
- },
- "token-stream": {
- "version": "0.0.1",
- "resolved": "https://registry.npm.taobao.org/token-stream/download/token-stream-0.0.1.tgz",
- "integrity": "sha1-zu78cXp2xDFvEm0LnbqlXX598Bo="
- },
- "tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1602286603545&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz",
- "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA="
- },
- "uglify-js": {
- "version": "2.8.29",
- "resolved": "https://registry.npm.taobao.org/uglify-js/download/uglify-js-2.8.29.tgz?cache=0&sync_timestamp=1606071597176&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglify-js%2Fdownload%2Fuglify-js-2.8.29.tgz",
- "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
- "requires": {
- "source-map": "~0.5.1",
- "uglify-to-browserify": "~1.0.0",
- "yargs": "~3.10.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz?cache=0&sync_timestamp=1593529658602&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
- }
- }
- },
- "uglify-to-browserify": {
- "version": "1.0.2",
- "resolved": "https://registry.npm.taobao.org/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz",
- "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc="
- },
- "unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz",
- "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
- },
- "urix": {
- "version": "0.1.0",
- "resolved": "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz",
- "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
- },
- "utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz",
- "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
- },
- "vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz",
- "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
- },
- "void-elements": {
- "version": "2.0.1",
- "resolved": "https://registry.npm.taobao.org/void-elements/download/void-elements-2.0.1.tgz",
- "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w="
- },
- "warehouse": {
- "version": "4.0.0",
- "resolved": "https://registry.npm.taobao.org/warehouse/download/warehouse-4.0.0.tgz",
- "integrity": "sha1-RYMrxD4f0yO9nTyGsnYUMLoNHns=",
- "requires": {
- "JSONStream": "^1.0.7",
- "bluebird": "^3.2.2",
- "cuid": "^2.1.4",
- "graceful-fs": "^4.1.3",
- "is-plain-object": "^3.0.0",
- "rfdc": "^1.1.4"
- }
- },
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz",
- "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=",
- "requires": {
- "isexe": "^2.0.0"
- }
- },
- "window-size": {
- "version": "0.1.0",
- "resolved": "https://registry.npm.taobao.org/window-size/download/window-size-0.1.0.tgz",
- "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0="
- },
- "with": {
- "version": "5.1.1",
- "resolved": "https://registry.npm.taobao.org/with/download/with-5.1.1.tgz",
- "integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=",
- "requires": {
- "acorn": "^3.1.0",
- "acorn-globals": "^3.0.0"
- }
- },
- "wordwrap": {
- "version": "0.0.2",
- "resolved": "https://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.2.tgz",
- "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8="
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
- },
- "yargs": {
- "version": "3.10.0",
- "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-3.10.0.tgz?cache=0&sync_timestamp=1605465839188&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-3.10.0.tgz",
- "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
- "requires": {
- "camelcase": "^1.0.2",
- "cliui": "^2.1.0",
- "decamelize": "^1.0.0",
- "window-size": "0.1.0"
- }
- }
- }
-}
diff --git a/package.json b/package.json
index 11b10a1..4712e18 100644
--- a/package.json
+++ b/package.json
@@ -9,20 +9,22 @@
"server": "hexo server"
},
"hexo": {
- "version": "5.2.0"
+ "version": "6.3.0"
},
"dependencies": {
- "hexo": "^5.0.0",
- "hexo-deployer-git": "^2.1.0",
- "hexo-generator-archive": "^1.0.0",
- "hexo-generator-category": "^1.0.0",
- "hexo-generator-index": "^2.0.0",
- "hexo-generator-tag": "^1.0.0",
- "hexo-renderer-ejs": "^1.0.0",
- "hexo-renderer-marked": "^3.0.0",
- "hexo-renderer-pug": "^1.0.0",
- "hexo-renderer-stylus": "^2.0.1",
- "hexo-server": "^2.0.0",
- "hexo-theme-melody": "^1.9.0"
+ "css": "^3.0.0",
+ "hexo": "^6.3.0",
+ "hexo-fs": "^4.1.1",
+ "hexo-generator-archive": "^2.0.0",
+ "hexo-generator-category": "^2.0.0",
+ "hexo-generator-index": "^3.0.0",
+ "hexo-generator-tag": "^2.0.0",
+ "hexo-renderer-ejs": "^2.0.0",
+ "hexo-renderer-marked": "^6.0.0",
+ "hexo-renderer-stylus": "^3.0.0",
+ "hexo-server": "^3.0.0",
+ "hexo-theme-next": "^8.18.1",
+ "hexo-util": "^3.0.1",
+ "js-yaml": "^4.1.0"
}
-}
+}
\ No newline at end of file
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
new file mode 100644
index 0000000..1d0fc61
--- /dev/null
+++ b/pnpm-lock.yaml
@@ -0,0 +1,1702 @@
+lockfileVersion: '6.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+dependencies:
+ css:
+ specifier: ^3.0.0
+ version: 3.0.0
+ hexo:
+ specifier: ^6.3.0
+ version: 6.3.0
+ hexo-fs:
+ specifier: ^4.1.1
+ version: 4.1.1
+ hexo-generator-archive:
+ specifier: ^2.0.0
+ version: 2.0.0
+ hexo-generator-category:
+ specifier: ^2.0.0
+ version: 2.0.0
+ hexo-generator-index:
+ specifier: ^3.0.0
+ version: 3.0.0
+ hexo-generator-tag:
+ specifier: ^2.0.0
+ version: 2.0.0
+ hexo-renderer-ejs:
+ specifier: ^2.0.0
+ version: 2.0.0
+ hexo-renderer-marked:
+ specifier: ^6.0.0
+ version: 6.0.0
+ hexo-renderer-stylus:
+ specifier: ^3.0.0
+ version: 3.0.0
+ hexo-server:
+ specifier: ^3.0.0
+ version: 3.0.0
+ hexo-theme-next:
+ specifier: ^8.18.1
+ version: 8.18.1
+ hexo-util:
+ specifier: ^3.0.1
+ version: 3.0.1
+ js-yaml:
+ specifier: ^4.1.0
+ version: 4.1.0
+
+packages:
+
+ /@adobe/css-tools@4.2.0:
+ resolution: {integrity: sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA==}
+ dev: false
+
+ /@tootallnate/once@2.0.0:
+ resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
+ engines: {node: '>= 10'}
+ dev: false
+
+ /a-sync-waterfall@1.0.1:
+ resolution: {integrity: sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==}
+ dev: false
+
+ /abab@2.0.6:
+ resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
+ dev: false
+
+ /abbrev@1.1.1:
+ resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
+ dev: false
+
+ /abbrev@2.0.0:
+ resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ dev: false
+
+ /accepts@1.3.8:
+ resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
+ engines: {node: '>= 0.6'}
+ dependencies:
+ mime-types: 2.1.35
+ negotiator: 0.6.3
+ dev: false
+
+ /acorn-globals@7.0.1:
+ resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==}
+ dependencies:
+ acorn: 8.9.0
+ acorn-walk: 8.2.0
+ dev: false
+
+ /acorn-walk@8.2.0:
+ resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
+ engines: {node: '>=0.4.0'}
+ dev: false
+
+ /acorn@8.9.0:
+ resolution: {integrity: sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+ dev: false
+
+ /agent-base@6.0.2:
+ resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
+ engines: {node: '>= 6.0.0'}
+ dependencies:
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /ansi-regex@5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+ dev: false
+
+ /ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+ dependencies:
+ color-convert: 2.0.1
+ dev: false
+
+ /anymatch@3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+ dev: false
+
+ /archy@1.0.0:
+ resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==}
+ dev: false
+
+ /argparse@2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+ dev: false
+
+ /asap@2.0.6:
+ resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
+ dev: false
+
+ /async@3.2.4:
+ resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==}
+ dev: false
+
+ /asynckit@0.4.0:
+ resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+ dev: false
+
+ /atob@2.1.2:
+ resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==}
+ engines: {node: '>= 4.5.0'}
+ hasBin: true
+ dev: false
+
+ /balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ dev: false
+
+ /basic-auth@2.0.1:
+ resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==}
+ engines: {node: '>= 0.8'}
+ dependencies:
+ safe-buffer: 5.1.2
+ dev: false
+
+ /binary-extensions@2.2.0:
+ resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
+ engines: {node: '>=8'}
+ dev: false
+
+ /bluebird@3.7.2:
+ resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==}
+ dev: false
+
+ /brace-expansion@1.1.11:
+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+ dev: false
+
+ /brace-expansion@2.0.1:
+ resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+ dependencies:
+ balanced-match: 1.0.2
+ dev: false
+
+ /braces@3.0.2:
+ resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
+ engines: {node: '>=8'}
+ dependencies:
+ fill-range: 7.0.1
+ dev: false
+
+ /bytes@3.0.0:
+ resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==}
+ engines: {node: '>= 0.8'}
+ dev: false
+
+ /camel-case@4.1.2:
+ resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
+ dependencies:
+ pascal-case: 3.1.2
+ tslib: 2.6.0
+ dev: false
+
+ /chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+ dev: false
+
+ /chokidar@3.5.3:
+ resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
+ engines: {node: '>= 8.10.0'}
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.2
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.2
+ dev: false
+
+ /color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+ dependencies:
+ color-name: 1.1.4
+ dev: false
+
+ /color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ dev: false
+
+ /combined-stream@1.0.8:
+ resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
+ engines: {node: '>= 0.8'}
+ dependencies:
+ delayed-stream: 1.0.0
+ dev: false
+
+ /command-exists@1.2.9:
+ resolution: {integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==}
+ dev: false
+
+ /commander@5.1.0:
+ resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==}
+ engines: {node: '>= 6'}
+ dev: false
+
+ /compressible@2.0.18:
+ resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==}
+ engines: {node: '>= 0.6'}
+ dependencies:
+ mime-db: 1.52.0
+ dev: false
+
+ /compression@1.7.4:
+ resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ accepts: 1.3.8
+ bytes: 3.0.0
+ compressible: 2.0.18
+ debug: 2.6.9
+ on-headers: 1.0.2
+ safe-buffer: 5.1.2
+ vary: 1.1.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+ dev: false
+
+ /connect@3.7.0:
+ resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==}
+ engines: {node: '>= 0.10.0'}
+ dependencies:
+ debug: 2.6.9
+ finalhandler: 1.1.2
+ parseurl: 1.3.3
+ utils-merge: 1.0.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /cross-spawn@7.0.3:
+ resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
+ engines: {node: '>= 8'}
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+ dev: false
+
+ /css@3.0.0:
+ resolution: {integrity: sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==}
+ dependencies:
+ inherits: 2.0.4
+ source-map: 0.6.1
+ source-map-resolve: 0.6.0
+ dev: false
+
+ /cssom@0.3.8:
+ resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
+ dev: false
+
+ /cssom@0.5.0:
+ resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==}
+ dev: false
+
+ /cssstyle@2.3.0:
+ resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==}
+ engines: {node: '>=8'}
+ dependencies:
+ cssom: 0.3.8
+ dev: false
+
+ /cuid@2.1.8:
+ resolution: {integrity: sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg==}
+ deprecated: Cuid and other k-sortable and non-cryptographic ids (Ulid, ObjectId, KSUID, all UUIDs) are all insecure. Use @paralleldrive/cuid2 instead.
+ dev: false
+
+ /data-urls@3.0.2:
+ resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ abab: 2.0.6
+ whatwg-mimetype: 3.0.0
+ whatwg-url: 11.0.0
+ dev: false
+
+ /debug@2.6.9:
+ resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.0.0
+ dev: false
+
+ /debug@4.3.4:
+ resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.2
+ dev: false
+
+ /decimal.js@10.4.3:
+ resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
+ dev: false
+
+ /decode-uri-component@0.2.2:
+ resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==}
+ engines: {node: '>=0.10'}
+ dev: false
+
+ /deep-is@0.1.4:
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+ dev: false
+
+ /deepmerge@4.3.1:
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /define-lazy-prop@2.0.0:
+ resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
+ engines: {node: '>=8'}
+ dev: false
+
+ /delayed-stream@1.0.0:
+ resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
+ engines: {node: '>=0.4.0'}
+ dev: false
+
+ /depd@2.0.0:
+ resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
+ engines: {node: '>= 0.8'}
+ dev: false
+
+ /destroy@1.2.0:
+ resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
+ engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
+ dev: false
+
+ /dom-serializer@1.4.1:
+ resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 4.3.1
+ entities: 2.2.0
+ dev: false
+
+ /dom-serializer@2.0.0:
+ resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ entities: 4.5.0
+ dev: false
+
+ /domelementtype@2.3.0:
+ resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
+ dev: false
+
+ /domexception@4.0.0:
+ resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==}
+ engines: {node: '>=12'}
+ dependencies:
+ webidl-conversions: 7.0.0
+ dev: false
+
+ /domhandler@4.3.1:
+ resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
+ engines: {node: '>= 4'}
+ dependencies:
+ domelementtype: 2.3.0
+ dev: false
+
+ /domhandler@5.0.3:
+ resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
+ engines: {node: '>= 4'}
+ dependencies:
+ domelementtype: 2.3.0
+ dev: false
+
+ /dompurify@2.4.5:
+ resolution: {integrity: sha512-jggCCd+8Iqp4Tsz0nIvpcb22InKEBrGz5dw3EQJMs8HPJDsKbFIO3STYtAvCfDx26Muevn1MHVI0XxjgFfmiSA==}
+ dev: false
+
+ /domutils@2.8.0:
+ resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
+ dependencies:
+ dom-serializer: 1.4.1
+ domelementtype: 2.3.0
+ domhandler: 4.3.1
+ dev: false
+
+ /domutils@3.1.0:
+ resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
+ dependencies:
+ dom-serializer: 2.0.0
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ dev: false
+
+ /ee-first@1.1.1:
+ resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
+ dev: false
+
+ /ejs@3.1.9:
+ resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==}
+ engines: {node: '>=0.10.0'}
+ hasBin: true
+ dependencies:
+ jake: 10.8.7
+ dev: false
+
+ /encodeurl@1.0.2:
+ resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
+ engines: {node: '>= 0.8'}
+ dev: false
+
+ /entities@2.2.0:
+ resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
+ dev: false
+
+ /entities@3.0.1:
+ resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==}
+ engines: {node: '>=0.12'}
+ dev: false
+
+ /entities@4.5.0:
+ resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+ engines: {node: '>=0.12'}
+ dev: false
+
+ /escape-html@1.0.3:
+ resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
+ dev: false
+
+ /escodegen@2.0.0:
+ resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==}
+ engines: {node: '>=6.0'}
+ hasBin: true
+ dependencies:
+ esprima: 4.0.1
+ estraverse: 5.3.0
+ esutils: 2.0.3
+ optionator: 0.8.3
+ optionalDependencies:
+ source-map: 0.6.1
+ dev: false
+
+ /esprima@4.0.1:
+ resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
+ engines: {node: '>=4'}
+ hasBin: true
+ dev: false
+
+ /estraverse@5.3.0:
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
+ engines: {node: '>=4.0'}
+ dev: false
+
+ /esutils@2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /etag@1.8.1:
+ resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
+ engines: {node: '>= 0.6'}
+ dev: false
+
+ /fast-equals@3.0.3:
+ resolution: {integrity: sha512-NCe8qxnZFARSHGztGMZOO/PC1qa5MIFB5Hp66WdzbCRAz8U8US3bx1UTgLS49efBQPcUtO9gf5oVEY8o7y/7Kg==}
+ dev: false
+
+ /fast-levenshtein@2.0.6:
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+ dev: false
+
+ /filelist@1.0.4:
+ resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
+ dependencies:
+ minimatch: 5.1.6
+ dev: false
+
+ /fill-range@7.0.1:
+ resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ to-regex-range: 5.0.1
+ dev: false
+
+ /finalhandler@1.1.2:
+ resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==}
+ engines: {node: '>= 0.8'}
+ dependencies:
+ debug: 2.6.9
+ encodeurl: 1.0.2
+ escape-html: 1.0.3
+ on-finished: 2.3.0
+ parseurl: 1.3.3
+ statuses: 1.5.0
+ unpipe: 1.0.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /form-data@4.0.0:
+ resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
+ engines: {node: '>= 6'}
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ mime-types: 2.1.35
+ dev: false
+
+ /fresh@0.5.2:
+ resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
+ engines: {node: '>= 0.6'}
+ dev: false
+
+ /fs.realpath@1.0.0:
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+ dev: false
+
+ /fsevents@2.3.2:
+ resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /function-bind@1.1.1:
+ resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
+ dev: false
+
+ /glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+ dependencies:
+ is-glob: 4.0.3
+ dev: false
+
+ /glob@7.2.3:
+ resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+ dev: false
+
+ /graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+ dev: false
+
+ /has-flag@4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+ dev: false
+
+ /has@1.0.3:
+ resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
+ engines: {node: '>= 0.4.0'}
+ dependencies:
+ function-bind: 1.1.1
+ dev: false
+
+ /hexo-cli@4.3.1:
+ resolution: {integrity: sha512-nYe7yJhXT7MwlDEpIAjneMfz0wnWTdIhRv+cVW2OPTw8JtG2X+8Y/sYhPDvQz/ZqjFRZ4qgiKFXN5orFJ/u1vg==}
+ engines: {node: '>=14'}
+ hasBin: true
+ dependencies:
+ abbrev: 2.0.0
+ bluebird: 3.7.2
+ command-exists: 1.2.9
+ hexo-fs: 4.1.1
+ hexo-log: 4.0.1
+ hexo-util: 2.7.0
+ minimist: 1.2.8
+ picocolors: 1.0.0
+ resolve: 1.22.2
+ tildify: 2.0.0
+ dev: false
+
+ /hexo-front-matter@3.0.0:
+ resolution: {integrity: sha512-hSQTPUmB/BCe1BFYmXRkPyLk8rqbBqHCQq+rjwwOJuEfOADrFaVK2VPZb90tJzPyXE1xSxpgCxE/AZq0CyTVwg==}
+ engines: {node: '>=12.13.0'}
+ dependencies:
+ js-yaml: 4.1.0
+ dev: false
+
+ /hexo-fs@3.1.0:
+ resolution: {integrity: sha512-SfoDH7zlU9Iop+bAfEONXezbNIkpVX1QqjNCBYpapilZR+xVOCfTEdlNixanrKBbLGPb2fXqrdDBFgrKuiVGQQ==}
+ engines: {node: '>=10.13.0'}
+ dependencies:
+ bluebird: 3.7.2
+ chokidar: 3.5.3
+ graceful-fs: 4.2.11
+ hexo-util: 2.7.0
+ dev: false
+
+ /hexo-fs@4.1.1:
+ resolution: {integrity: sha512-aDysNTyv8ElcerbFVbPLRXnYt+QDY6gAOZZ5DLbCxudY0Ywppqd+uZ03gZ2BDypIBvmNB27WYWYz76M+Yv/YXw==}
+ engines: {node: '>=14'}
+ dependencies:
+ bluebird: 3.7.2
+ chokidar: 3.5.3
+ graceful-fs: 4.2.11
+ hexo-util: 2.7.0
+ dev: false
+
+ /hexo-generator-archive@2.0.0:
+ resolution: {integrity: sha512-KikJk7dGFbtNHOgqtLFGf5T/S8n1paGp+Gy0KfVDz+HKYhGbXOouyiZkmc3O9KrYt6ja14rmkMhq7KKGtvfehw==}
+ engines: {node: '>=14'}
+ dependencies:
+ hexo-pagination: 3.0.0
+ dev: false
+
+ /hexo-generator-category@2.0.0:
+ resolution: {integrity: sha512-9OduRBf3WeRDa4BR0kAfRjOVHur7v3fm0NKAwbjUiqULigAdNZVZPO3cHKW2MlBbl/lI5PuWdhQ9zZ99CCCAgQ==}
+ engines: {node: '>=14'}
+ dependencies:
+ hexo-pagination: 3.0.0
+ dev: false
+
+ /hexo-generator-index@3.0.0:
+ resolution: {integrity: sha512-83AuNN4cWdLVi//3ugR8E3kR6rrOwhXZt+hOCm1IjtIGj353/GlrtpMHpqZHU5kqipzj4miy9dweVdukXglVWw==}
+ engines: {node: '>=14'}
+ dependencies:
+ hexo-pagination: 3.0.0
+ dev: false
+
+ /hexo-generator-tag@2.0.0:
+ resolution: {integrity: sha512-1px/hF3veEohWDN8jjzchQhaiz+uOStUvvMaBJC9vWOlALh30UFcapL8IrvAwwJZjFRVA+WqGgDRqoQ8+yaaFw==}
+ engines: {node: '>=14'}
+ dependencies:
+ hexo-pagination: 3.0.0
+ dev: false
+
+ /hexo-i18n@1.0.0:
+ resolution: {integrity: sha512-yw90JHr7ybUHN/QOkpHmlWJj1luVk5/v8CUU5NRA0n4TFp6av8NT7ujZ10GDawgnQEdMHnN5PUfAbNIVGR6axg==}
+ engines: {node: '>=8.6.0'}
+ dependencies:
+ sprintf-js: 1.1.2
+ dev: false
+
+ /hexo-log@3.2.0:
+ resolution: {integrity: sha512-fk7jOW3hvKiAv4Q/d8UxaQlARwcv+5KjGcnxexUrqBqyWbMCLmw7jhMHTSRLNNQpaoTlF5ff+kQkPi4yhp9iag==}
+ engines: {node: '>=12.4.0'}
+ dependencies:
+ picocolors: 1.0.0
+ dev: false
+
+ /hexo-log@4.0.1:
+ resolution: {integrity: sha512-jB2EADDJIwtepfUxiNCTN/5Ysa0B7vYMzkih69FAiubXcnMomKgx5WOlqODVfKnXYw0OQk1Fxrf5LVmfpR0i8w==}
+ engines: {node: '>=14'}
+ dependencies:
+ picocolors: 1.0.0
+ dev: false
+
+ /hexo-pagination@3.0.0:
+ resolution: {integrity: sha512-8oo1iozloZo7TojPVYg4IxL3SJKCBdSJ908fTlIxIK7TWJIKdYnQlW31+12DBJ0NhVZA/lZisPObGF08wT8fKw==}
+ engines: {node: '>=14'}
+ dev: false
+
+ /hexo-renderer-ejs@2.0.0:
+ resolution: {integrity: sha512-qCjE1IdwgDgv65qyb0KMVCwCdSVAkH0vwAe9XihjvaKWkmb9dtt8DgErOdqCXn0HReSyWiEVP2BrLRj3gyHwOQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ ejs: 3.1.9
+ dev: false
+
+ /hexo-renderer-marked@6.0.0:
+ resolution: {integrity: sha512-/B/ud8q9pNldbipuv6cPyqL+fir973+blV79n6j59M3S8LRz/4hLXwd0TA4RHxcHVrgPakeWUtiH3UWo6B6Pag==}
+ engines: {node: '>=14'}
+ dependencies:
+ dompurify: 2.4.5
+ hexo-util: 2.7.0
+ jsdom: 20.0.3
+ marked: 4.3.0
+ transitivePeerDependencies:
+ - bufferutil
+ - canvas
+ - supports-color
+ - utf-8-validate
+ dev: false
+
+ /hexo-renderer-stylus@3.0.0:
+ resolution: {integrity: sha512-wgKOcjUzq1i4Y70luoyYDbh91QeQcDzJO+v1598LgY+IdREFAm+vy1MWtl/TZsVXyPaEtsULNi3Vi22hdsPUSA==}
+ engines: {node: '>=14'}
+ dependencies:
+ nib: 1.2.0(stylus@0.59.0)
+ stylus: 0.59.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /hexo-server@3.0.0:
+ resolution: {integrity: sha512-u4s0ty9Aew6jV+a9oMrXBwhrRpUQ0U8PWM/88a5aHgDru58VY81mVrxOFxs788NAsWQ8OvsJtF5m7mnXoRnSIA==}
+ engines: {node: '>=12.13.0'}
+ dependencies:
+ bluebird: 3.7.2
+ compression: 1.7.4
+ connect: 3.7.0
+ mime: 3.0.0
+ morgan: 1.10.0
+ open: 8.4.2
+ picocolors: 1.0.0
+ serve-static: 1.15.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /hexo-theme-next@8.18.1:
+ resolution: {integrity: sha512-cfj4FKXJZjFmWQ5hX1yQHYCu+qzRce/hxw3403jCCnQHkfcTSoT0I7OJCWktCydJ2p43JSKiOpL5n6N4yRggZw==}
+ dev: false
+
+ /hexo-util@2.7.0:
+ resolution: {integrity: sha512-hQM3h34nhDg0bSe/Tg1lnpODvNkz7h2u0+lZGzlKL0Oufp+5KCAEUX9wal7/xC7ax3/cwEn8IuoU75kNpZLpJQ==}
+ engines: {node: '>=12.4.0'}
+ dependencies:
+ bluebird: 3.7.2
+ camel-case: 4.1.2
+ cross-spawn: 7.0.3
+ deepmerge: 4.3.1
+ highlight.js: 11.8.0
+ htmlparser2: 7.2.0
+ prismjs: 1.29.0
+ strip-indent: 3.0.0
+ dev: false
+
+ /hexo-util@3.0.1:
+ resolution: {integrity: sha512-ri3WsEUWSfrjydYPeOaWvrYIzfVBiaXUy0846051MkuJxBcNtG2o87q0KFGiniSMmi0XxLQhSl415anU3+FFlA==}
+ engines: {node: '>=14'}
+ dependencies:
+ bluebird: 3.7.2
+ camel-case: 4.1.2
+ cross-spawn: 7.0.3
+ deepmerge: 4.3.1
+ highlight.js: 11.8.0
+ htmlparser2: 8.0.2
+ prismjs: 1.29.0
+ strip-indent: 3.0.0
+ dev: false
+
+ /hexo@6.3.0:
+ resolution: {integrity: sha512-4Jq+rWd8sYvR1YdIQyndN/9WboQ/Mqm6eax8CjrjO+ePFm2oMVafSOx9WEyJ42wcLOHjfyMfnlQhnUuNmJIpPg==}
+ engines: {node: '>=12.13.0'}
+ hasBin: true
+ dependencies:
+ abbrev: 1.1.1
+ archy: 1.0.0
+ bluebird: 3.7.2
+ hexo-cli: 4.3.1
+ hexo-front-matter: 3.0.0
+ hexo-fs: 3.1.0
+ hexo-i18n: 1.0.0
+ hexo-log: 3.2.0
+ hexo-util: 2.7.0
+ js-yaml: 4.1.0
+ js-yaml-js-types: 1.0.1(js-yaml@4.1.0)
+ micromatch: 4.0.5
+ moize: 6.1.6
+ moment: 2.29.4
+ moment-timezone: 0.5.43
+ nunjucks: 3.2.4
+ picocolors: 1.0.0
+ pretty-hrtime: 1.0.3
+ resolve: 1.22.2
+ strip-ansi: 6.0.1
+ text-table: 0.2.0
+ tildify: 2.0.0
+ titlecase: 1.1.3
+ warehouse: 4.0.2
+ transitivePeerDependencies:
+ - chokidar
+ dev: false
+
+ /highlight.js@11.8.0:
+ resolution: {integrity: sha512-MedQhoqVdr0U6SSnWPzfiadUcDHfN/Wzq25AkXiQv9oiOO/sG0S7XkvpFIqWBl9Yq1UYyYOOVORs5UW2XlPyzg==}
+ engines: {node: '>=12.0.0'}
+ dev: false
+
+ /html-encoding-sniffer@3.0.0:
+ resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
+ engines: {node: '>=12'}
+ dependencies:
+ whatwg-encoding: 2.0.0
+ dev: false
+
+ /htmlparser2@7.2.0:
+ resolution: {integrity: sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==}
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 4.3.1
+ domutils: 2.8.0
+ entities: 3.0.1
+ dev: false
+
+ /htmlparser2@8.0.2:
+ resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==}
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ domutils: 3.1.0
+ entities: 4.5.0
+ dev: false
+
+ /http-errors@2.0.0:
+ resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
+ engines: {node: '>= 0.8'}
+ dependencies:
+ depd: 2.0.0
+ inherits: 2.0.4
+ setprototypeof: 1.2.0
+ statuses: 2.0.1
+ toidentifier: 1.0.1
+ dev: false
+
+ /http-proxy-agent@5.0.0:
+ resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
+ engines: {node: '>= 6'}
+ dependencies:
+ '@tootallnate/once': 2.0.0
+ agent-base: 6.0.2
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /https-proxy-agent@5.0.1:
+ resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
+ engines: {node: '>= 6'}
+ dependencies:
+ agent-base: 6.0.2
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /iconv-lite@0.6.3:
+ resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ safer-buffer: 2.1.2
+ dev: false
+
+ /inflight@1.0.6:
+ resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
+ dependencies:
+ once: 1.4.0
+ wrappy: 1.0.2
+ dev: false
+
+ /inherits@2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+ dev: false
+
+ /is-binary-path@2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+ dependencies:
+ binary-extensions: 2.2.0
+ dev: false
+
+ /is-core-module@2.12.1:
+ resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==}
+ dependencies:
+ has: 1.0.3
+ dev: false
+
+ /is-docker@2.2.1:
+ resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
+ engines: {node: '>=8'}
+ hasBin: true
+ dev: false
+
+ /is-extglob@2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-extglob: 2.1.1
+ dev: false
+
+ /is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+ dev: false
+
+ /is-plain-object@5.0.0:
+ resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /is-potential-custom-element-name@1.0.1:
+ resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
+ dev: false
+
+ /is-wsl@2.2.0:
+ resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
+ engines: {node: '>=8'}
+ dependencies:
+ is-docker: 2.2.1
+ dev: false
+
+ /isexe@2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+ dev: false
+
+ /jake@10.8.7:
+ resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ async: 3.2.4
+ chalk: 4.1.2
+ filelist: 1.0.4
+ minimatch: 3.1.2
+ dev: false
+
+ /js-yaml-js-types@1.0.1(js-yaml@4.1.0):
+ resolution: {integrity: sha512-5tpfyORs8OQ43alNERbWfYRCtWgykvzYgY46fUhrQi2+kS7N0NuuFYLZ/IrfmVm5muLTndeMublgraXiFRjEPw==}
+ peerDependencies:
+ js-yaml: 4.x
+ dependencies:
+ esprima: 4.0.1
+ js-yaml: 4.1.0
+ dev: false
+
+ /js-yaml@4.1.0:
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ hasBin: true
+ dependencies:
+ argparse: 2.0.1
+ dev: false
+
+ /jsdom@20.0.3:
+ resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ canvas: ^2.5.0
+ peerDependenciesMeta:
+ canvas:
+ optional: true
+ dependencies:
+ abab: 2.0.6
+ acorn: 8.9.0
+ acorn-globals: 7.0.1
+ cssom: 0.5.0
+ cssstyle: 2.3.0
+ data-urls: 3.0.2
+ decimal.js: 10.4.3
+ domexception: 4.0.0
+ escodegen: 2.0.0
+ form-data: 4.0.0
+ html-encoding-sniffer: 3.0.0
+ http-proxy-agent: 5.0.0
+ https-proxy-agent: 5.0.1
+ is-potential-custom-element-name: 1.0.1
+ nwsapi: 2.2.5
+ parse5: 7.1.2
+ saxes: 6.0.0
+ symbol-tree: 3.2.4
+ tough-cookie: 4.1.3
+ w3c-xmlserializer: 4.0.0
+ webidl-conversions: 7.0.0
+ whatwg-encoding: 2.0.0
+ whatwg-mimetype: 3.0.0
+ whatwg-url: 11.0.0
+ ws: 8.13.0
+ xml-name-validator: 4.0.0
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+ dev: false
+
+ /jsonparse@1.3.1:
+ resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
+ engines: {'0': node >= 0.2.0}
+ dev: false
+
+ /levn@0.3.0:
+ resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ prelude-ls: 1.1.2
+ type-check: 0.3.2
+ dev: false
+
+ /lower-case@2.0.2:
+ resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
+ dependencies:
+ tslib: 2.6.0
+ dev: false
+
+ /marked@4.3.0:
+ resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==}
+ engines: {node: '>= 12'}
+ hasBin: true
+ dev: false
+
+ /micro-memoize@4.1.2:
+ resolution: {integrity: sha512-+HzcV2H+rbSJzApgkj0NdTakkC+bnyeiUxgT6/m7mjcz1CmM22KYFKp+EVj1sWe4UYcnriJr5uqHQD/gMHLD+g==}
+ dev: false
+
+ /micromatch@4.0.5:
+ resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
+ engines: {node: '>=8.6'}
+ dependencies:
+ braces: 3.0.2
+ picomatch: 2.3.1
+ dev: false
+
+ /mime-db@1.52.0:
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
+ engines: {node: '>= 0.6'}
+ dev: false
+
+ /mime-types@2.1.35:
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
+ engines: {node: '>= 0.6'}
+ dependencies:
+ mime-db: 1.52.0
+ dev: false
+
+ /mime@1.6.0:
+ resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
+ engines: {node: '>=4'}
+ hasBin: true
+ dev: false
+
+ /mime@3.0.0:
+ resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==}
+ engines: {node: '>=10.0.0'}
+ hasBin: true
+ dev: false
+
+ /min-indent@1.0.1:
+ resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
+ engines: {node: '>=4'}
+ dev: false
+
+ /minimatch@3.1.2:
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ dependencies:
+ brace-expansion: 1.1.11
+ dev: false
+
+ /minimatch@5.1.6:
+ resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
+ engines: {node: '>=10'}
+ dependencies:
+ brace-expansion: 2.0.1
+ dev: false
+
+ /minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+ dev: false
+
+ /moize@6.1.6:
+ resolution: {integrity: sha512-vSKdIUO61iCmTqhdoIDrqyrtp87nWZUmBPniNjO0fX49wEYmyDO4lvlnFXiGcaH1JLE/s/9HbiK4LSHsbiUY6Q==}
+ dependencies:
+ fast-equals: 3.0.3
+ micro-memoize: 4.1.2
+ dev: false
+
+ /moment-timezone@0.5.43:
+ resolution: {integrity: sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==}
+ dependencies:
+ moment: 2.29.4
+ dev: false
+
+ /moment@2.29.4:
+ resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==}
+ dev: false
+
+ /morgan@1.10.0:
+ resolution: {integrity: sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ basic-auth: 2.0.1
+ debug: 2.6.9
+ depd: 2.0.0
+ on-finished: 2.3.0
+ on-headers: 1.0.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /ms@2.0.0:
+ resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
+ dev: false
+
+ /ms@2.1.2:
+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+ dev: false
+
+ /ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+ dev: false
+
+ /negotiator@0.6.3:
+ resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
+ engines: {node: '>= 0.6'}
+ dev: false
+
+ /nib@1.2.0(stylus@0.59.0):
+ resolution: {integrity: sha512-7HgrnMl/3yOmWykueO8/D0q+0iWwe7Z+CK2Eaq/xQV8w1hK80WN1oReRQkfkrztbAAnp/nTHkUSl5EcVkor6JQ==}
+ peerDependencies:
+ stylus: '*'
+ dependencies:
+ stylus: 0.59.0
+ dev: false
+
+ /no-case@3.0.4:
+ resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
+ dependencies:
+ lower-case: 2.0.2
+ tslib: 2.6.0
+ dev: false
+
+ /normalize-path@3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /nunjucks@3.2.4:
+ resolution: {integrity: sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==}
+ engines: {node: '>= 6.9.0'}
+ hasBin: true
+ peerDependencies:
+ chokidar: ^3.3.0
+ peerDependenciesMeta:
+ chokidar:
+ optional: true
+ dependencies:
+ a-sync-waterfall: 1.0.1
+ asap: 2.0.6
+ commander: 5.1.0
+ dev: false
+
+ /nwsapi@2.2.5:
+ resolution: {integrity: sha512-6xpotnECFy/og7tKSBVmUNft7J3jyXAka4XvG6AUhFWRz+Q/Ljus7znJAA3bxColfQLdS+XsjoodtJfCgeTEFQ==}
+ dev: false
+
+ /on-finished@2.3.0:
+ resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==}
+ engines: {node: '>= 0.8'}
+ dependencies:
+ ee-first: 1.1.1
+ dev: false
+
+ /on-finished@2.4.1:
+ resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
+ engines: {node: '>= 0.8'}
+ dependencies:
+ ee-first: 1.1.1
+ dev: false
+
+ /on-headers@1.0.2:
+ resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==}
+ engines: {node: '>= 0.8'}
+ dev: false
+
+ /once@1.4.0:
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+ dependencies:
+ wrappy: 1.0.2
+ dev: false
+
+ /open@8.4.2:
+ resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ define-lazy-prop: 2.0.0
+ is-docker: 2.2.1
+ is-wsl: 2.2.0
+ dev: false
+
+ /optionator@0.8.3:
+ resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.3.0
+ prelude-ls: 1.1.2
+ type-check: 0.3.2
+ word-wrap: 1.2.3
+ dev: false
+
+ /parse5@7.1.2:
+ resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
+ dependencies:
+ entities: 4.5.0
+ dev: false
+
+ /parseurl@1.3.3:
+ resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
+ engines: {node: '>= 0.8'}
+ dev: false
+
+ /pascal-case@3.1.2:
+ resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
+ dependencies:
+ no-case: 3.0.4
+ tslib: 2.6.0
+ dev: false
+
+ /path-is-absolute@1.0.1:
+ resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /path-key@3.1.1:
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+ engines: {node: '>=8'}
+ dev: false
+
+ /path-parse@1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+ dev: false
+
+ /picocolors@1.0.0:
+ resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
+ dev: false
+
+ /picomatch@2.3.1:
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+ engines: {node: '>=8.6'}
+ dev: false
+
+ /prelude-ls@1.1.2:
+ resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==}
+ engines: {node: '>= 0.8.0'}
+ dev: false
+
+ /pretty-hrtime@1.0.3:
+ resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==}
+ engines: {node: '>= 0.8'}
+ dev: false
+
+ /prismjs@1.29.0:
+ resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
+ engines: {node: '>=6'}
+ dev: false
+
+ /psl@1.9.0:
+ resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
+ dev: false
+
+ /punycode@2.3.0:
+ resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
+ engines: {node: '>=6'}
+ dev: false
+
+ /querystringify@2.2.0:
+ resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
+ dev: false
+
+ /range-parser@1.2.1:
+ resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
+ engines: {node: '>= 0.6'}
+ dev: false
+
+ /readable-stream@3.6.2:
+ resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
+ engines: {node: '>= 6'}
+ dependencies:
+ inherits: 2.0.4
+ string_decoder: 1.3.0
+ util-deprecate: 1.0.2
+ dev: false
+
+ /readdirp@3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+ dependencies:
+ picomatch: 2.3.1
+ dev: false
+
+ /requires-port@1.0.0:
+ resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
+ dev: false
+
+ /resolve@1.22.2:
+ resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==}
+ hasBin: true
+ dependencies:
+ is-core-module: 2.12.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+ dev: false
+
+ /rfdc@1.3.0:
+ resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==}
+ dev: false
+
+ /safe-buffer@5.1.2:
+ resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
+ dev: false
+
+ /safe-buffer@5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+ dev: false
+
+ /safer-buffer@2.1.2:
+ resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+ dev: false
+
+ /sax@1.2.4:
+ resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==}
+ dev: false
+
+ /saxes@6.0.0:
+ resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
+ engines: {node: '>=v12.22.7'}
+ dependencies:
+ xmlchars: 2.2.0
+ dev: false
+
+ /send@0.18.0:
+ resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ debug: 2.6.9
+ depd: 2.0.0
+ destroy: 1.2.0
+ encodeurl: 1.0.2
+ escape-html: 1.0.3
+ etag: 1.8.1
+ fresh: 0.5.2
+ http-errors: 2.0.0
+ mime: 1.6.0
+ ms: 2.1.3
+ on-finished: 2.4.1
+ range-parser: 1.2.1
+ statuses: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /serve-static@1.15.0:
+ resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ encodeurl: 1.0.2
+ escape-html: 1.0.3
+ parseurl: 1.3.3
+ send: 0.18.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /setprototypeof@1.2.0:
+ resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
+ dev: false
+
+ /shebang-command@2.0.0:
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
+ dependencies:
+ shebang-regex: 3.0.0
+ dev: false
+
+ /shebang-regex@3.0.0:
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
+ dev: false
+
+ /source-map-resolve@0.6.0:
+ resolution: {integrity: sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==}
+ deprecated: See https://github.com/lydell/source-map-resolve#deprecated
+ dependencies:
+ atob: 2.1.2
+ decode-uri-component: 0.2.2
+ dev: false
+
+ /source-map@0.6.1:
+ resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
+ engines: {node: '>=0.10.0'}
+ requiresBuild: true
+ dev: false
+
+ /source-map@0.7.4:
+ resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
+ engines: {node: '>= 8'}
+ dev: false
+
+ /sprintf-js@1.1.2:
+ resolution: {integrity: sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==}
+ dev: false
+
+ /statuses@1.5.0:
+ resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
+ engines: {node: '>= 0.6'}
+ dev: false
+
+ /statuses@2.0.1:
+ resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
+ engines: {node: '>= 0.8'}
+ dev: false
+
+ /string_decoder@1.3.0:
+ resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
+ dependencies:
+ safe-buffer: 5.2.1
+ dev: false
+
+ /strip-ansi@6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+ dependencies:
+ ansi-regex: 5.0.1
+ dev: false
+
+ /strip-indent@3.0.0:
+ resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ min-indent: 1.0.1
+ dev: false
+
+ /stylus@0.59.0:
+ resolution: {integrity: sha512-lQ9w/XIOH5ZHVNuNbWW8D822r+/wBSO/d6XvtyHLF7LW4KaCIDeVbvn5DF8fGCJAUCwVhVi/h6J0NUcnylUEjg==}
+ hasBin: true
+ dependencies:
+ '@adobe/css-tools': 4.2.0
+ debug: 4.3.4
+ glob: 7.2.3
+ sax: 1.2.4
+ source-map: 0.7.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /supports-color@7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+ dependencies:
+ has-flag: 4.0.0
+ dev: false
+
+ /supports-preserve-symlinks-flag@1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+ dev: false
+
+ /symbol-tree@3.2.4:
+ resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
+ dev: false
+
+ /text-table@0.2.0:
+ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
+ dev: false
+
+ /through2@4.0.2:
+ resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
+ dependencies:
+ readable-stream: 3.6.2
+ dev: false
+
+ /tildify@2.0.0:
+ resolution: {integrity: sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==}
+ engines: {node: '>=8'}
+ dev: false
+
+ /titlecase@1.1.3:
+ resolution: {integrity: sha512-pQX4oiemzjBEELPqgK4WE+q0yhAqjp/yzusGtlSJsOuiDys0RQxggepYmo0BuegIDppYS3b3cpdegRwkpyN3hw==}
+ hasBin: true
+ dev: false
+
+ /to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+ dependencies:
+ is-number: 7.0.0
+ dev: false
+
+ /toidentifier@1.0.1:
+ resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
+ engines: {node: '>=0.6'}
+ dev: false
+
+ /tough-cookie@4.1.3:
+ resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==}
+ engines: {node: '>=6'}
+ dependencies:
+ psl: 1.9.0
+ punycode: 2.3.0
+ universalify: 0.2.0
+ url-parse: 1.5.10
+ dev: false
+
+ /tr46@3.0.0:
+ resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==}
+ engines: {node: '>=12'}
+ dependencies:
+ punycode: 2.3.0
+ dev: false
+
+ /tslib@2.6.0:
+ resolution: {integrity: sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==}
+ dev: false
+
+ /type-check@0.3.2:
+ resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ prelude-ls: 1.1.2
+ dev: false
+
+ /universalify@0.2.0:
+ resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
+ engines: {node: '>= 4.0.0'}
+ dev: false
+
+ /unpipe@1.0.0:
+ resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
+ engines: {node: '>= 0.8'}
+ dev: false
+
+ /url-parse@1.5.10:
+ resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
+ dependencies:
+ querystringify: 2.2.0
+ requires-port: 1.0.0
+ dev: false
+
+ /util-deprecate@1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+ dev: false
+
+ /utils-merge@1.0.1:
+ resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
+ engines: {node: '>= 0.4.0'}
+ dev: false
+
+ /vary@1.1.2:
+ resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
+ engines: {node: '>= 0.8'}
+ dev: false
+
+ /w3c-xmlserializer@4.0.0:
+ resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==}
+ engines: {node: '>=14'}
+ dependencies:
+ xml-name-validator: 4.0.0
+ dev: false
+
+ /warehouse@4.0.2:
+ resolution: {integrity: sha512-GixS7SolBGu81rnxYM6bScxdElLM97Jx/kr0a6B6PGBWFqvHeuWFj7QbgEX1YWZSxiJt/aR6dBVQKC/PvvihdQ==}
+ engines: {node: '>=10.13.0'}
+ dependencies:
+ bluebird: 3.7.2
+ cuid: 2.1.8
+ graceful-fs: 4.2.11
+ hexo-log: 3.2.0
+ is-plain-object: 5.0.0
+ jsonparse: 1.3.1
+ rfdc: 1.3.0
+ through2: 4.0.2
+ dev: false
+
+ /webidl-conversions@7.0.0:
+ resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
+ engines: {node: '>=12'}
+ dev: false
+
+ /whatwg-encoding@2.0.0:
+ resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
+ engines: {node: '>=12'}
+ dependencies:
+ iconv-lite: 0.6.3
+ dev: false
+
+ /whatwg-mimetype@3.0.0:
+ resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==}
+ engines: {node: '>=12'}
+ dev: false
+
+ /whatwg-url@11.0.0:
+ resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ tr46: 3.0.0
+ webidl-conversions: 7.0.0
+ dev: false
+
+ /which@2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+ dependencies:
+ isexe: 2.0.0
+ dev: false
+
+ /word-wrap@1.2.3:
+ resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /wrappy@1.0.2:
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+ dev: false
+
+ /ws@8.13.0:
+ resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: '>=5.0.2'
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ dev: false
+
+ /xml-name-validator@4.0.0:
+ resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
+ engines: {node: '>=12'}
+ dev: false
+
+ /xmlchars@2.2.0:
+ resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
+ dev: false
diff --git a/readme.md b/readme.md
new file mode 100644
index 0000000..d03744b
--- /dev/null
+++ b/readme.md
@@ -0,0 +1 @@
+# 寒兮的小黑屋
\ No newline at end of file
diff --git a/scripts/index.js b/scripts/index.js
new file mode 100644
index 0000000..c458b5a
--- /dev/null
+++ b/scripts/index.js
@@ -0,0 +1,23 @@
+'use strict';
+
+const fs = require('hexo-fs');
+const path = require('path');
+const url_for = hexo.extend.helper.get('url_for').bind(hexo);
+
+hexo.extend.tag.register("books", async function (args) {
+ const viewerUrl = url_for('lib/pdf/web/viewer.html');
+ const booksDir = path.join(hexo.source_dir, "books", ...args);
+ if (!await fs.exists(booksDir)) {
+ return "";
+ }
+ const files = await fs.listDir(booksDir);
+ if (files.length <= 0) {
+ return "";
+ }
+ return `` + files.filter((f) => f.endsWith(".pdf")).map((f) => {
+ let fileName = path.basename(f);
+ fileName = fileName.substring(0, fileName.lastIndexOf("."));
+ const fullPath = path.join("/books", ...args, ...f.split("\\"));
+ return `${fileName} 在线阅读 下载阅读 `
+ }).join(` `) + `
`;
+}, { async: true });
\ No newline at end of file
diff --git a/source/_posts/Hexo-book-list.md b/source/_posts/Hexo-book-list.md
new file mode 100644
index 0000000..cfb086d
--- /dev/null
+++ b/source/_posts/Hexo-book-list.md
@@ -0,0 +1,66 @@
+---
+title: Hexo实现生成PDF电子书列表并在线预览
+date: 2023-06-29 12:00:00
+tags:
+ - Hexo
+ - 前端
+ - JavaScript
+ - PDF.js
+---
+## 前因
+最近收集了一些编程相关的PDF电子书, 在电脑上使用office或者浏览器查看体验尚可
+
+但是日常非常多碎片时间只能使用手机或平板等移动设备, 收集这些电子书的目的一个是为了学习, 另一个则是为了填补这些碎片时间, 不至于外出闲时只抱着几个QQ群无意义闲聊, 所以说针对移动设备的支持就是必要的
+
+首先, 想着在电脑上开一个文件服务器直接通过手机的浏览器访问就能解决问题, 于是就拉了个Nginx的Docker服务把电子书内容挂载进去, 在电脑上使用Edge浏览器测试是没有问题的, 但是到手机的Edge浏览器上一试, 本来想的是直接预览内容结果变成了下载文件, 下载完文件再通过手机上的WPS打开预览, 并且由于没有公网IPv4, 在外出时就只能使用zerotier组网再连接电脑上的文件服务器, 过程就变得非常繁琐
+
+在这么凑合用了2天后, 觉得确实太麻烦了, 同时多下几个电子书后也非常难管理, 导致在看内容之前就已经开始打退堂鼓了, 所以必须寻求更好的解决方案, 基于主要问题没有公网IPv4不方便直接访问, 目前手里也没有能一直保持在线的公网服务器, 为了这点万年不变的静态内容去买个服务器, 我也没这闲钱, 于是打算再再再次复活使用Hexo挂载到github pages服务的博客
+
+Hexo怎么使用、如何部署到pages服务由于之前几次反反复复的心血来潮已经烂熟于心, 但是现在还是遇到了一个问题, 这些电子书应该怎么管理, 手动在文件里建列表虽然现在可行, 但是以后有了更多内容怎么办, 所以说开始在网上查找有没有像Nginx文件列表那样的插件, 在查找一番后没找到满意的内容后, 决定开坑自己写
+
+## 进入正题
+Hexo是一个通过将markdown、ejs等内容通过编译渲染成纯静态内容的博客系统, 要实现预定的目标就只能在渲染时做处理, 在查看[官方文档](https://hexo.io/zh-cn/docs/plugins)后, 可通过在`scripts`文件夹下加入js文件实现扩展功能
+
+在尝试文档中的各种API折腾大半天后, 选择使用[标签插件](https://hexo.io/zh-cn/api/tag)功能解决了需求, 该功能是在渲染过程中扫描标签并通过预定的函数直接生成html嵌入, 对多模板与多模板引擎的兼容性较好
+
+### PDF.js引入
+文件列表的管理解决了, 但还是只能下载查看, 于是引入了[PDF.js](https://github.com/mozilla/pdf.js)来实现移动设备在线查看
+
+由于目前我选择的模板是[NexT](https://github.com/theme-next/hexo-theme-next), 其已经提供了[PDF.js的成品](https://github.com/next-theme/theme-next-pdf), 则照其说明引入
+
+#### 步骤1. 打开Hexo文件夹
+切换到Hexo根目录内, 里面必须要有`source`文件夹
+```shell
+$ cd hexo-site
+$ ls
+_config.next.yml db.json package-lock.json scaffolds themes
+_config.yml node_modules package.json source
+```
+
+#### 步骤2. 下载模块
+安装模块到`source/lib`文件夹下
+```shell
+$ git clone https://github.com/next-theme/theme-next-pdf source/lib/pdf
+```
+
+#### 步骤3. 设置
+在Hexo的配置文件`_config.yml`中找到`skip_render`项并按下面修改
+```yaml
+skip_render:
+ - lib/**/* # PDF.js模块目录
+ - books/**/* # 存放PDF电子书的目录
+```
+
+### 如何使用
+将[脚本文件](https://github.com/IceSoulHanxi/IceSoulHanxi.github.io/raw/master/scripts/index.js)放入`scripts`文件夹下
+将PDF电子书放入`source/books`文件夹下
+在需要嵌入所有电子书文件列表的页面位置插入以下内容
+```
+{% books %}
+```
+如果需要分类或者分目录可以将目录层级写在`books`标签后面
+例如只显示`source/books/java/lock`中的文件
+```
+{% books java lock %}
+```
+然后只需要按照Hexo正常部署流程即可查看文件列表
\ No newline at end of file
diff --git a/source/_posts/Java-dev-tutorial.md b/source/_posts/Java-dev-tutorial.md
new file mode 100644
index 0000000..60d21f0
--- /dev/null
+++ b/source/_posts/Java-dev-tutorial.md
@@ -0,0 +1,10 @@
+---
+title: Java进阶书籍
+date: 2023-06-29 00:00:00
+tags:
+ - Java
+ - 电子书列表
+---
+来自 [https://gitee.com/uitc/save-paper](https://gitee.com/uitc/save-paper)
+
+{% books save-paper %}
\ No newline at end of file
diff --git a/source/_posts/Java-interview.md b/source/_posts/Java-interview.md
new file mode 100644
index 0000000..c065a98
--- /dev/null
+++ b/source/_posts/Java-interview.md
@@ -0,0 +1,10 @@
+---
+title: Java面试题
+date: 2023-06-29 00:00:00
+tags:
+ - Java
+ - 电子书列表
+---
+来自 [https://github.com/hong52ni/JavaAdvance-Interview](https://github.com/hong52ni/JavaAdvance-Interview)
+
+{% books interview %}
\ No newline at end of file
diff --git a/source/_posts/Migrate-mysql8-to-mariadb.md b/source/_posts/Migrate-mysql8-to-mariadb.md
new file mode 100644
index 0000000..a6bc8d4
--- /dev/null
+++ b/source/_posts/Migrate-mysql8-to-mariadb.md
@@ -0,0 +1,116 @@
+---
+title: Mysql8迁移至Mariadb
+date: 2023-07-02 00:00:00
+tags:
+ - 数据库
+---
+## 问题定位
+朋友找到我, 说服务器上的Mysql在宕机后出现问题, 想让我帮忙看看, 具体错误日志如下
+
+```log
+2023-07-02T07:28:31.633124Z 0 [System] [MY-010116] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.33) starting as process 21344
+2023-07-02T07:28:31.660800Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
+2023-07-02T07:28:33.398409Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
+2023-07-02T07:28:33.791414Z 0 [System] [MY-010229] [Server] Starting XA crash recovery...
+2023-07-02T07:28:33.794059Z 0 [System] [MY-010232] [Server] XA crash recovery finished.
+
+InnoDB: Progress in percents: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
+2023-07-02T07:28:33.909793Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
+2023-07-02T07:28:33.910106Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
+2023-07-02T07:28:33.930909Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060
+2023-07-02T07:28:33.930963Z 0 [System] [MY-010931] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: ready for connections. Version: '8.0.33' socket: '' port: 3306 MySQL Community Server - GPL.
+2023-07-02T07:28:42Z UTC - mysqld got exception 0xc0000005 ;
+Most likely, you have hit a bug, but this error can also be caused by malfunctioning hardware.
+Thread pointer: 0x17041543570
+Attempting backtrace. You can use the following information to find out
+where mysqld died. If you see no messages after this, something went
+terribly wrong...
+7ff60e060a7a mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
+7ff60e060bf1 mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
+7ff60e0a7315 mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
+7ff60e066ce9 mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
+7ff60e069779 mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
+7ff60dface00 mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
+7ff60dfadf39 mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
+7ff60dfb6d8b mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
+7ff60dee6a26 mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
+7ff60dee60b4 mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
+7ff60dfb8150 mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
+7ff60e07abac mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
+7ff60e07a474 mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
+7ff60e079ead mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
+7ff60e075a0c mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
+7ff60e07bab6 mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
+7ff60df4f9f0 mysqld.exe!?deallocate@?$allocator@V?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@std@@@std@@QEAAXQEAV?$sub_match@V?$_String_const_iterator@V?$_String_val@U?$_Simple_types@D@std@@@std@@@std@@@2@_K@Z()
+7ff60ddfd778 mysqld.exe!?open@Zstd_dec@compression@transaction@binary_log@@UEAA_NXZ()
+7ff60cd07b33 mysqld.exe!?ha_write_row@handler@@QEAAHPEAE@Z()
+7ff60d1eb68c mysqld.exe!?write_record@@YA_NPEAVTHD@@PEAUTABLE@@PEAVCOPY_INFO@@2@Z()
+7ff60d1e811e mysqld.exe!?execute_inner@Sql_cmd_insert_values@@MEAA_NPEAVTHD@@@Z()
+7ff60cfda982 mysqld.exe!?execute@Sql_cmd_dml@@UEAA_NPEAVTHD@@@Z()
+7ff60ced561a mysqld.exe!?mysql_execute_command@@YAHPEAVTHD@@_N@Z()
+7ff60d05e8c8 mysqld.exe!?execute@Prepared_statement@@AEAA_NPEAVTHD@@PEAVString@@_N@Z()
+7ff60d05ecc6 mysqld.exe!?execute_loop@Prepared_statement@@QEAA_NPEAVTHD@@PEAVString@@_N@Z()
+7ff60d060d13 mysqld.exe!?mysqld_stmt_execute@@YAXPEAVTHD@@PEAVPrepared_statement@@_NKPEAUPS_PARAM@@@Z()
+7ff60cecec81 mysqld.exe!?dispatch_command@@YA_NPEAVTHD@@PEBTCOM_DATA@@W4enum_server_command@@@Z()
+7ff60ced07a6 mysqld.exe!?do_command@@YA_NPEAVTHD@@@Z()
+7ff60ccfb458 mysqld.exe!?thread_id@THD@@QEBAIXZ()
+7ff60e317029 mysqld.exe!?my_init_dynamic_array@@YA_NPEAUDYNAMIC_ARRAY@@IIPEAXII@Z()
+7ff60dd93a8c mysqld.exe!?my_thread_self_setname@@YAXPEBD@Z()
+7fff715c6b4c ucrtbase.dll!_recalloc()
+7fff728c4ed0 KERNEL32.DLL!BaseThreadInitThunk()
+7fff73d8e20b ntdll.dll!RtlUserThreadStart()
+
+Trying to get some variables.
+Some pointers may be invalid and cause the dump to abort.
+Query (17065eb0370): INSERT INTO co_block (time, user, wid, x, y, z, type, data, meta, blockdata, action, rolled_back) VALUES (1688282922, 6, 1, -464, 66, 384, 4, 0, NULL, '14,15,8,9,10,11,12', 0, 0),(1688282922, 6, 1, -464, 66, 384, 5, 0, NULL, '13', 1, 0),(1688282922, 6, 1, 592, 79, 1201, 4, 0, NULL, '6,7,8,9,10,11,12', 0, 0),(1688282922, 6, 1, 592, 79, 1201, 5, 0, NULL, '13', 1, 0),(1688282922, 6, 1, 593, 79, 1201, 4, 0, NULL, '14,15,8,9,10,11,12', 0, 0),(1688282922, 6, 1, 593, 79, 1201, 5, 0, NULL, '13', 1, 0),(1688282922, 6, 1, -1362, 71, 2254, 4, 0, NULL, '6,7,17,18,10,19,20', 0, 0),(1688282922, 6, 1, -1362, 71, 2254, 5, 0, NULL, '13', 1, 0),(1688282922, 6, 1, -6281, 64, -4001, 4, 0, NULL, '6,7,17,18,10,19,20', 0, 0),(1688282922, 6, 1, -6281, 64, -4001, 5, 0, NULL, '13', 1, 0),(1688282922, 6, 1, -6281, 64, -4002, 4, 0, NULL, '14,15,17,18,10,19,20', 0, 0),(1688282922, 6, 1, -6281, 64, -4002, 5, 0, NULL, '13', 1, 0),(1688282922, 6, 1, -470, 95, 254, 4, 0, NULL, '6,7,8,9,10,11,12', 0, 0)
+Connection ID (thread ID): 40
+Status: NOT_KILLED
+
+The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
+information that should help you find out what is causing the crash.
+```
+根据日志可知, mysql的版本是8.0.33社区版, 是在向表`co_block`批量插入数据时出现错误
+第一反应是该表文件出现故障, 就向配置文件中的`mysqld`项下加入`innodb_force_recovery=1`, 把数据备份并把该表移除并重建
+操作完成后, 认为问题应该解决了, 在开启数据库后马上又挂了, 问题依旧
+随后在上述日志中注意到以下内容
+```log
+7ff60ddfd778 mysqld.exe!?open@Zstd_dec@compression@transaction@binary_log@@UEAA_NXZ()
+```
+又认为是binlog文件损坏, 又在数据库执行以下内容
+```sql
+reset master; --- 清空所有binlog从头开始计数
+```
+尝试后发现问题依旧, 于是在配置中加入`skip_log_bin`关闭binlog并启动服务
+在确认binlog关闭后, 数据库服务还是崩溃了, 并且错误日志依旧
+于是定位到代码[libbinlogevents/src/compression/zstd_dec.cpp#L50](https://github.com/mysql/mysql-server/blob/mysql-8.0.33/libbinlogevents/src/compression/zstd_dec.cpp#L50)
+确认到是初始化zstd压缩失败, 查看[该文件提交日志](https://github.com/mysql/mysql-server/commits/mysql-8.0.33/libbinlogevents/src/compression/zstd_dec.cpp)了解到mysql8.0.33默认启用zstd压缩代替了lz4
+排除了数据文件损坏的原因后, 确定是mysql社区版的程序问题, 重心从修复数据文件的方向转变成程序替换
+在重装与降级mysql后发现问题依旧, 只好尝试使用其他兼容mysql的发行版
+## 迁移
+由于使用的mysql8, 为了兼容性本来打算使用percona8
+但是由于服务器环境是Windows Server, 而percona没有提供Windows版本
+并且根据程序内容判断, 是没有使用mysql8新特性
+于是决定使用mysql之父另起炉灶的mariadb
+而mariadb相当于mysql5.7, 从mysql8降级到mysql5.7还是存在一些需要处理的内容
+### 1. 导出数据
+旧数据库服务配置加入`innodb_force_recovery=1`后重新启动服务, 将所有数据表导出为sql文件
+### 2. 处理数据
+mysql8使用`utf8mb4_0900_ai_ci`作为默认字符串编码格式
+而mysql5.7环境下不存在该格式, 在sql文件中将其替换为`utf8mb4_general_ci`
+### 3. 安装Mariadb并导入数据
+在mariadb首页下载了推荐的版本11.0.2.GA并安装, 使用mysql8原账号密码与端口号启动
+在mariadb中执行导出的sql文件, 成功将所有数据导入到mariadb
+本以为到此处问题已经解决, 启动应用后却出现了新状况, 控制台输出如下
+```log
+java.sql.SQLException: Unknown system variable 'transaction_isolation'
+ at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:130) ~[mysql-connector-j-8.0.33.jar:8.0.33]
+ at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-j-8.0.33.jar:8.0.33]
+ at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:825) ~[mysql-connector-j-8.0.33.jar:8.0.33]
+ at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:446) ~[mysql-connector-j-8.0.33.jar:8.0.33]
+ at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:239) ~[mysql-connector-j-8.0.33.jar:8.0.33]
+ at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:188) ~[mysql-connector-j-8.0.33.jar:8.0.33]
+```
+问题在于mysql8将`tx_isolation`重命名为`transaction_isolation`
+但是经过查询[mysql-connect-j:8.0.33的源码](https://github.com/mysql/mysql-connector-j/blob/8.0.33/src/main/user-impl/java/com/mysql/cj/jdbc/ConnectionImpl.java#L584)确认该版本是向下兼容旧命名的
+随后在各大开发社区上查询, 在该[issue](https://github.com/SkytAsul/JukeBox/issues/48#issuecomment-1605280097)中确认是mariadb的版本问题, 至于具体是什么原因暂未细究
+将mariadb-11.0.2.GA卸载, 安装mariadb-11.1.1.RC, 并重新导入数据后问题成功解决
\ No newline at end of file
diff --git a/source/_posts/hello-world.md b/source/_posts/hello-world.md
deleted file mode 100644
index 821780c..0000000
--- a/source/_posts/hello-world.md
+++ /dev/null
@@ -1,38 +0,0 @@
----
-title: Hello World
----
-Welcome to [Hexo](https://hexo.io/)! This is your very first post. Check [documentation](https://hexo.io/docs/) for more info. If you get any problems when using Hexo, you can find the answer in [troubleshooting](https://hexo.io/docs/troubleshooting.html) or you can ask me on [GitHub](https://github.com/hexojs/hexo/issues).
-
-## Quick Start
-
-### Create a new post
-
-``` bash
-$ hexo new "My New Post"
-```
-
-More info: [Writing](https://hexo.io/docs/writing.html)
-
-### Run server
-
-``` bash
-$ hexo server
-```
-
-More info: [Server](https://hexo.io/docs/server.html)
-
-### Generate static files
-
-``` bash
-$ hexo generate
-```
-
-More info: [Generating](https://hexo.io/docs/generating.html)
-
-### Deploy to remote sites
-
-``` bash
-$ hexo deploy
-```
-
-More info: [Deployment](https://hexo.io/docs/one-command-deployment.html)
diff --git a/source/about/index.md b/source/about/index.md
new file mode 100644
index 0000000..d4a8365
--- /dev/null
+++ b/source/about/index.md
@@ -0,0 +1,4 @@
+---
+title: 关于我
+date: 2023-06-29 00:00:00
+---
diff --git "a/source/books/interview/2020\345\271\264\346\234\200\346\226\260\347\211\210--Java+\346\234\200\345\270\270\350\247\201\347\232\204+200++\351\235\242\350\257\225\351\242\230\346\261\207\346\200\273+\347\255\224\346\241\210\346\200\273\347\273\223\346\261\207\346\200\273.pdf" "b/source/books/interview/2020\345\271\264\346\234\200\346\226\260\347\211\210--Java+\346\234\200\345\270\270\350\247\201\347\232\204+200++\351\235\242\350\257\225\351\242\230\346\261\207\346\200\273+\347\255\224\346\241\210\346\200\273\347\273\223\346\261\207\346\200\273.pdf"
new file mode 100644
index 0000000..4401fc8
Binary files /dev/null and "b/source/books/interview/2020\345\271\264\346\234\200\346\226\260\347\211\210--Java+\346\234\200\345\270\270\350\247\201\347\232\204+200++\351\235\242\350\257\225\351\242\230\346\261\207\346\200\273+\347\255\224\346\241\210\346\200\273\347\273\223\346\261\207\346\200\273.pdf" differ
diff --git "a/source/books/interview/BIO,NIO,AIO,Netty\351\235\242\350\257\225\351\242\230 35\351\201\223.pdf" "b/source/books/interview/BIO,NIO,AIO,Netty\351\235\242\350\257\225\351\242\230 35\351\201\223.pdf"
new file mode 100644
index 0000000..7de4078
Binary files /dev/null and "b/source/books/interview/BIO,NIO,AIO,Netty\351\235\242\350\257\225\351\242\230 35\351\201\223.pdf" differ
diff --git "a/source/books/interview/Dubbo\346\234\215\345\212\241\346\241\206\346\236\266\351\235\242\350\257\225\351\242\230\345\217\212\347\255\224\346\241\210.pdf" "b/source/books/interview/Dubbo\346\234\215\345\212\241\346\241\206\346\236\266\351\235\242\350\257\225\351\242\230\345\217\212\347\255\224\346\241\210.pdf"
new file mode 100644
index 0000000..0542d90
Binary files /dev/null and "b/source/books/interview/Dubbo\346\234\215\345\212\241\346\241\206\346\236\266\351\235\242\350\257\225\351\242\230\345\217\212\347\255\224\346\241\210.pdf" differ
diff --git "a/source/books/interview/Dubbo\351\235\242\350\257\225\351\242\230 47\351\201\223.pdf" "b/source/books/interview/Dubbo\351\235\242\350\257\225\351\242\230 47\351\201\223.pdf"
new file mode 100644
index 0000000..c624951
Binary files /dev/null and "b/source/books/interview/Dubbo\351\235\242\350\257\225\351\242\230 47\351\201\223.pdf" differ
diff --git "a/source/books/interview/Dubbo\351\235\242\350\257\225\351\242\230\344\270\200(41\351\242\230).pdf" "b/source/books/interview/Dubbo\351\235\242\350\257\225\351\242\230\344\270\200(41\351\242\230).pdf"
new file mode 100644
index 0000000..713df62
Binary files /dev/null and "b/source/books/interview/Dubbo\351\235\242\350\257\225\351\242\230\344\270\200(41\351\242\230).pdf" differ
diff --git "a/source/books/interview/Dubbo\351\235\242\350\257\225\351\242\230\344\272\214.pdf" "b/source/books/interview/Dubbo\351\235\242\350\257\225\351\242\230\344\272\214.pdf"
new file mode 100644
index 0000000..87d94f8
Binary files /dev/null and "b/source/books/interview/Dubbo\351\235\242\350\257\225\351\242\230\344\272\214.pdf" differ
diff --git "a/source/books/interview/ElasticSearch\351\235\242\350\257\225\351\242\230 30\351\201\223.pdf" "b/source/books/interview/ElasticSearch\351\235\242\350\257\225\351\242\230 30\351\201\223.pdf"
new file mode 100644
index 0000000..69bef41
Binary files /dev/null and "b/source/books/interview/ElasticSearch\351\235\242\350\257\225\351\242\230 30\351\201\223.pdf" differ
diff --git "a/source/books/interview/JAVA\346\240\270\345\277\203\351\235\242\350\257\225\347\237\245\350\257\206\346\225\264\347\220\206.pdf" "b/source/books/interview/JAVA\346\240\270\345\277\203\351\235\242\350\257\225\347\237\245\350\257\206\346\225\264\347\220\206.pdf"
new file mode 100644
index 0000000..39091a4
Binary files /dev/null and "b/source/books/interview/JAVA\346\240\270\345\277\203\351\235\242\350\257\225\347\237\245\350\257\206\346\225\264\347\220\206.pdf" differ
diff --git "a/source/books/interview/JVM\345\270\270\350\247\201\351\235\242\350\257\225\351\242\230\346\214\207\345\215\227.pdf" "b/source/books/interview/JVM\345\270\270\350\247\201\351\235\242\350\257\225\351\242\230\346\214\207\345\215\227.pdf"
new file mode 100644
index 0000000..80fc51d
Binary files /dev/null and "b/source/books/interview/JVM\345\270\270\350\247\201\351\235\242\350\257\225\351\242\230\346\214\207\345\215\227.pdf" differ
diff --git "a/source/books/interview/JVM\345\270\270\350\247\201\351\235\242\350\257\225\351\242\230\350\247\243\346\236\220.pdf" "b/source/books/interview/JVM\345\270\270\350\247\201\351\235\242\350\257\225\351\242\230\350\247\243\346\236\220.pdf"
new file mode 100644
index 0000000..5c2eacf
Binary files /dev/null and "b/source/books/interview/JVM\345\270\270\350\247\201\351\235\242\350\257\225\351\242\230\350\247\243\346\236\220.pdf" differ
diff --git "a/source/books/interview/JVM\347\273\274\345\220\210\351\235\242\350\257\225\351\242\230\346\261\207\346\200\273.docx" "b/source/books/interview/JVM\347\273\274\345\220\210\351\235\242\350\257\225\351\242\230\346\261\207\346\200\273.docx"
new file mode 100644
index 0000000..dc06d5e
Binary files /dev/null and "b/source/books/interview/JVM\347\273\274\345\220\210\351\235\242\350\257\225\351\242\230\346\261\207\346\200\273.docx" differ
diff --git "a/source/books/interview/JavaGuide\351\235\242\350\257\225\347\252\201\345\207\273\347\211\210.pdf" "b/source/books/interview/JavaGuide\351\235\242\350\257\225\347\252\201\345\207\273\347\211\210.pdf"
new file mode 100644
index 0000000..bef4b96
Binary files /dev/null and "b/source/books/interview/JavaGuide\351\235\242\350\257\225\347\252\201\345\207\273\347\211\210.pdf" differ
diff --git "a/source/books/interview/Java\345\237\272\347\241\200\351\235\242\350\257\225\351\242\230 91\351\201\223.pdf" "b/source/books/interview/Java\345\237\272\347\241\200\351\235\242\350\257\225\351\242\230 91\351\201\223.pdf"
new file mode 100644
index 0000000..e74aa52
Binary files /dev/null and "b/source/books/interview/Java\345\237\272\347\241\200\351\235\242\350\257\225\351\242\230 91\351\201\223.pdf" differ
diff --git "a/source/books/interview/Java\345\271\266\345\217\221\347\274\226\347\250\213\346\234\200\345\205\250\351\235\242\350\257\225\351\242\230 123\351\201\223.pdf" "b/source/books/interview/Java\345\271\266\345\217\221\347\274\226\347\250\213\346\234\200\345\205\250\351\235\242\350\257\225\351\242\230 123\351\201\223.pdf"
new file mode 100644
index 0000000..e78f92f
Binary files /dev/null and "b/source/books/interview/Java\345\271\266\345\217\221\347\274\226\347\250\213\346\234\200\345\205\250\351\235\242\350\257\225\351\242\230 123\351\201\223.pdf" differ
diff --git "a/source/books/interview/Java\350\231\232\346\213\237\346\234\272\357\274\210JVM\357\274\211\351\235\242\350\257\225\351\242\230 51\351\201\223.pdf" "b/source/books/interview/Java\350\231\232\346\213\237\346\234\272\357\274\210JVM\357\274\211\351\235\242\350\257\225\351\242\230 51\351\201\223.pdf"
new file mode 100644
index 0000000..29957fb
Binary files /dev/null and "b/source/books/interview/Java\350\231\232\346\213\237\346\234\272\357\274\210JVM\357\274\211\351\235\242\350\257\225\351\242\230 51\351\201\223.pdf" differ
diff --git a/source/books/interview/Kafka.xmind b/source/books/interview/Kafka.xmind
new file mode 100644
index 0000000..7630251
Binary files /dev/null and b/source/books/interview/Kafka.xmind differ
diff --git "a/source/books/interview/Linux\351\235\242\350\257\225\351\242\230 50\351\201\223.pdf" "b/source/books/interview/Linux\351\235\242\350\257\225\351\242\230 50\351\201\223.pdf"
new file mode 100644
index 0000000..bb287a9
Binary files /dev/null and "b/source/books/interview/Linux\351\235\242\350\257\225\351\242\230 50\351\201\223.pdf" differ
diff --git "a/source/books/interview/Memcache \351\235\242\350\257\225\351\242\230 23\351\201\223.pdf" "b/source/books/interview/Memcache \351\235\242\350\257\225\351\242\230 23\351\201\223.pdf"
new file mode 100644
index 0000000..196ab42
Binary files /dev/null and "b/source/books/interview/Memcache \351\235\242\350\257\225\351\242\230 23\351\201\223.pdf" differ
diff --git "a/source/books/interview/MyBatis\351\235\242\350\257\225\351\242\230\344\270\200.pdf" "b/source/books/interview/MyBatis\351\235\242\350\257\225\351\242\230\344\270\200.pdf"
new file mode 100644
index 0000000..f42fa2f
Binary files /dev/null and "b/source/books/interview/MyBatis\351\235\242\350\257\225\351\242\230\344\270\200.pdf" differ
diff --git "a/source/books/interview/MySQL\351\235\242\350\257\225\344\270\223\351\242\23001.pdf" "b/source/books/interview/MySQL\351\235\242\350\257\225\344\270\223\351\242\23001.pdf"
new file mode 100644
index 0000000..9e1a951
Binary files /dev/null and "b/source/books/interview/MySQL\351\235\242\350\257\225\344\270\223\351\242\23001.pdf" differ
diff --git "a/source/books/interview/MySQL\351\235\242\350\257\225\344\270\223\351\242\23002 .pdf" "b/source/books/interview/MySQL\351\235\242\350\257\225\344\270\223\351\242\23002 .pdf"
new file mode 100644
index 0000000..1792ba7
Binary files /dev/null and "b/source/books/interview/MySQL\351\235\242\350\257\225\344\270\223\351\242\23002 .pdf" differ
diff --git "a/source/books/interview/MySQL\351\235\242\350\257\225\344\270\223\351\242\23003 .pdf" "b/source/books/interview/MySQL\351\235\242\350\257\225\344\270\223\351\242\23003 .pdf"
new file mode 100644
index 0000000..1c3ff81
Binary files /dev/null and "b/source/books/interview/MySQL\351\235\242\350\257\225\344\270\223\351\242\23003 .pdf" differ
diff --git "a/source/books/interview/MySQL\351\235\242\350\257\225\351\242\230 40\351\201\223.pdf" "b/source/books/interview/MySQL\351\235\242\350\257\225\351\242\230 40\351\201\223.pdf"
new file mode 100644
index 0000000..4e8e87d
Binary files /dev/null and "b/source/books/interview/MySQL\351\235\242\350\257\225\351\242\230 40\351\201\223.pdf" differ
diff --git "a/source/books/interview/MySQL\351\235\242\350\257\225\351\242\230\357\274\210\345\220\253\347\255\224\346\241\210\357\274\211.pdf" "b/source/books/interview/MySQL\351\235\242\350\257\225\351\242\230\357\274\210\345\220\253\347\255\224\346\241\210\357\274\211.pdf"
new file mode 100644
index 0000000..83c20ff
Binary files /dev/null and "b/source/books/interview/MySQL\351\235\242\350\257\225\351\242\230\357\274\210\345\220\253\347\255\224\346\241\210\357\274\211.pdf" differ
diff --git "a/source/books/interview/Mybatis\351\235\242\350\257\225\351\242\230\344\272\214.pdf" "b/source/books/interview/Mybatis\351\235\242\350\257\225\351\242\230\344\272\214.pdf"
new file mode 100644
index 0000000..c82994d
Binary files /dev/null and "b/source/books/interview/Mybatis\351\235\242\350\257\225\351\242\230\344\272\214.pdf" differ
diff --git "a/source/books/interview/Mybatis\351\235\242\350\257\225\351\242\230\357\274\210\345\220\253\347\255\224\346\241\210\357\274\211.pdf" "b/source/books/interview/Mybatis\351\235\242\350\257\225\351\242\230\357\274\210\345\220\253\347\255\224\346\241\210\357\274\211.pdf"
new file mode 100644
index 0000000..6cfd72d
Binary files /dev/null and "b/source/books/interview/Mybatis\351\235\242\350\257\225\351\242\230\357\274\210\345\220\253\347\255\224\346\241\210\357\274\211.pdf" differ
diff --git "a/source/books/interview/Netty\347\273\274\345\220\210\351\235\242\350\257\225\351\242\230.pdf" "b/source/books/interview/Netty\347\273\274\345\220\210\351\235\242\350\257\225\351\242\230.pdf"
new file mode 100644
index 0000000..a1631f4
Binary files /dev/null and "b/source/books/interview/Netty\347\273\274\345\220\210\351\235\242\350\257\225\351\242\230.pdf" differ
diff --git "a/source/books/interview/Netty\351\235\242\350\257\225\351\242\230 20\351\201\223.pdf" "b/source/books/interview/Netty\351\235\242\350\257\225\351\242\230 20\351\201\223.pdf"
new file mode 100644
index 0000000..0f8e2ac
Binary files /dev/null and "b/source/books/interview/Netty\351\235\242\350\257\225\351\242\230 20\351\201\223.pdf" differ
diff --git "a/source/books/interview/Nginx\351\235\242\350\257\225\351\242\230 23\351\201\223.pdf" "b/source/books/interview/Nginx\351\235\242\350\257\225\351\242\230 23\351\201\223.pdf"
new file mode 100644
index 0000000..68864ee
Binary files /dev/null and "b/source/books/interview/Nginx\351\235\242\350\257\225\351\242\230 23\351\201\223.pdf" differ
diff --git "a/source/books/interview/Nginx\351\235\242\350\257\225\351\242\230\344\270\200.pdf" "b/source/books/interview/Nginx\351\235\242\350\257\225\351\242\230\344\270\200.pdf"
new file mode 100644
index 0000000..23f0446
Binary files /dev/null and "b/source/books/interview/Nginx\351\235\242\350\257\225\351\242\230\344\270\200.pdf" differ
diff --git "a/source/books/interview/RabbitMQ \350\241\245\345\205\205 6\351\201\223.pdf" "b/source/books/interview/RabbitMQ \350\241\245\345\205\205 6\351\201\223.pdf"
new file mode 100644
index 0000000..111a5a7
Binary files /dev/null and "b/source/books/interview/RabbitMQ \350\241\245\345\205\205 6\351\201\223.pdf" differ
diff --git "a/source/books/interview/RabbitMQ\351\235\242\350\257\225\351\242\230 22\351\201\223.pdf" "b/source/books/interview/RabbitMQ\351\235\242\350\257\225\351\242\230 22\351\201\223.pdf"
new file mode 100644
index 0000000..9cb449a
Binary files /dev/null and "b/source/books/interview/RabbitMQ\351\235\242\350\257\225\351\242\230 22\351\201\223.pdf" differ
diff --git "a/source/books/interview/Redis\351\235\242\350\257\225\351\242\230 42\351\201\223.pdf" "b/source/books/interview/Redis\351\235\242\350\257\225\351\242\230 42\351\201\223.pdf"
new file mode 100644
index 0000000..61cf86e
Binary files /dev/null and "b/source/books/interview/Redis\351\235\242\350\257\225\351\242\230 42\351\201\223.pdf" differ
diff --git "a/source/books/interview/Redis\351\235\242\350\257\225\351\242\230\344\270\200.pdf" "b/source/books/interview/Redis\351\235\242\350\257\225\351\242\230\344\270\200.pdf"
new file mode 100644
index 0000000..3d28dda
Binary files /dev/null and "b/source/books/interview/Redis\351\235\242\350\257\225\351\242\230\344\270\200.pdf" differ
diff --git "a/source/books/interview/Redis\351\235\242\350\257\225\351\242\230\344\270\211.pdf" "b/source/books/interview/Redis\351\235\242\350\257\225\351\242\230\344\270\211.pdf"
new file mode 100644
index 0000000..bcb5daa
Binary files /dev/null and "b/source/books/interview/Redis\351\235\242\350\257\225\351\242\230\344\270\211.pdf" differ
diff --git "a/source/books/interview/Redis\351\235\242\350\257\225\351\242\230\344\272\224.pdf" "b/source/books/interview/Redis\351\235\242\350\257\225\351\242\230\344\272\224.pdf"
new file mode 100644
index 0000000..cb26c37
Binary files /dev/null and "b/source/books/interview/Redis\351\235\242\350\257\225\351\242\230\344\272\224.pdf" differ
diff --git "a/source/books/interview/Redis\351\235\242\350\257\225\351\242\230\345\233\233.pdf" "b/source/books/interview/Redis\351\235\242\350\257\225\351\242\230\345\233\233.pdf"
new file mode 100644
index 0000000..77fc21f
Binary files /dev/null and "b/source/books/interview/Redis\351\235\242\350\257\225\351\242\230\345\233\233.pdf" differ
diff --git "a/source/books/interview/Redis\351\235\242\350\257\225\351\242\230\357\274\210\345\220\253\347\255\224\346\241\210\357\274\211.pdf" "b/source/books/interview/Redis\351\235\242\350\257\225\351\242\230\357\274\210\345\220\253\347\255\224\346\241\210\357\274\211.pdf"
new file mode 100644
index 0000000..8a1201e
Binary files /dev/null and "b/source/books/interview/Redis\351\235\242\350\257\225\351\242\230\357\274\210\345\220\253\347\255\224\346\241\210\357\274\211.pdf" differ
diff --git "a/source/books/interview/Redis\351\253\230\351\242\221\351\235\242\350\257\225\351\242\230 .pdf" "b/source/books/interview/Redis\351\253\230\351\242\221\351\235\242\350\257\225\351\242\230 .pdf"
new file mode 100644
index 0000000..111729f
Binary files /dev/null and "b/source/books/interview/Redis\351\253\230\351\242\221\351\235\242\350\257\225\351\242\230 .pdf" differ
diff --git "a/source/books/interview/SpringBoot\351\235\242\350\257\225\344\270\223\351\242\230.pdf" "b/source/books/interview/SpringBoot\351\235\242\350\257\225\344\270\223\351\242\230.pdf"
new file mode 100644
index 0000000..84784ff
Binary files /dev/null and "b/source/books/interview/SpringBoot\351\235\242\350\257\225\344\270\223\351\242\230.pdf" differ
diff --git "a/source/books/interview/SpringBoot\351\235\242\350\257\225\351\242\230 30\351\201\223.pdf" "b/source/books/interview/SpringBoot\351\235\242\350\257\225\351\242\230 30\351\201\223.pdf"
new file mode 100644
index 0000000..68c98bf
Binary files /dev/null and "b/source/books/interview/SpringBoot\351\235\242\350\257\225\351\242\230 30\351\201\223.pdf" differ
diff --git "a/source/books/interview/SpringBoot\351\235\242\350\257\225\351\242\230 44\351\201\223.pdf" "b/source/books/interview/SpringBoot\351\235\242\350\257\225\351\242\230 44\351\201\223.pdf"
new file mode 100644
index 0000000..0202db9
Binary files /dev/null and "b/source/books/interview/SpringBoot\351\235\242\350\257\225\351\242\230 44\351\201\223.pdf" differ
diff --git "a/source/books/interview/SpringCloud\351\235\242\350\257\225\344\270\223\351\242\230.pdf" "b/source/books/interview/SpringCloud\351\235\242\350\257\225\344\270\223\351\242\230.pdf"
new file mode 100644
index 0000000..fb18ba3
Binary files /dev/null and "b/source/books/interview/SpringCloud\351\235\242\350\257\225\344\270\223\351\242\230.pdf" differ
diff --git "a/source/books/interview/SpringCloud\351\235\242\350\257\225\351\242\230 49\351\201\223.pdf" "b/source/books/interview/SpringCloud\351\235\242\350\257\225\351\242\230 49\351\201\223.pdf"
new file mode 100644
index 0000000..c516e5e
Binary files /dev/null and "b/source/books/interview/SpringCloud\351\235\242\350\257\225\351\242\230 49\351\201\223.pdf" differ
diff --git "a/source/books/interview/SpringMVC\351\235\242\350\257\225\351\242\230 29\351\201\223.pdf" "b/source/books/interview/SpringMVC\351\235\242\350\257\225\351\242\230 29\351\201\223.pdf"
new file mode 100644
index 0000000..738847d
Binary files /dev/null and "b/source/books/interview/SpringMVC\351\235\242\350\257\225\351\242\230 29\351\201\223.pdf" differ
diff --git "a/source/books/interview/Spring\351\235\242\350\257\225\351\242\230 75\351\201\223.pdf" "b/source/books/interview/Spring\351\235\242\350\257\225\351\242\230 75\351\201\223.pdf"
new file mode 100644
index 0000000..1b39f62
Binary files /dev/null and "b/source/books/interview/Spring\351\235\242\350\257\225\351\242\230 75\351\201\223.pdf" differ
diff --git "a/source/books/interview/Spring\351\235\242\350\257\225\351\242\230\357\274\210\345\220\253\347\255\224\346\241\210\357\274\211.pdf" "b/source/books/interview/Spring\351\235\242\350\257\225\351\242\230\357\274\210\345\220\253\347\255\224\346\241\210\357\274\211.pdf"
new file mode 100644
index 0000000..72fbc32
Binary files /dev/null and "b/source/books/interview/Spring\351\235\242\350\257\225\351\242\230\357\274\210\345\220\253\347\255\224\346\241\210\357\274\211.pdf" differ
diff --git "a/source/books/interview/TCP\357\274\214UDP\357\274\214Socket\357\274\214Http\347\275\221\347\273\234\347\274\226\347\250\213\351\235\242\350\257\225\351\242\230 47\351\201\223.pdf" "b/source/books/interview/TCP\357\274\214UDP\357\274\214Socket\357\274\214Http\347\275\221\347\273\234\347\274\226\347\250\213\351\235\242\350\257\225\351\242\230 47\351\201\223.pdf"
new file mode 100644
index 0000000..52f8bd2
Binary files /dev/null and "b/source/books/interview/TCP\357\274\214UDP\357\274\214Socket\357\274\214Http\347\275\221\347\273\234\347\274\226\347\250\213\351\235\242\350\257\225\351\242\230 47\351\201\223.pdf" differ
diff --git "a/source/books/interview/Tomcat\344\274\230\345\214\226\347\233\270\345\205\263\351\235\242\350\257\225\351\227\256\351\242\230.pdf" "b/source/books/interview/Tomcat\344\274\230\345\214\226\347\233\270\345\205\263\351\235\242\350\257\225\351\227\256\351\242\230.pdf"
new file mode 100644
index 0000000..bd0ae87
Binary files /dev/null and "b/source/books/interview/Tomcat\344\274\230\345\214\226\347\233\270\345\205\263\351\235\242\350\257\225\351\227\256\351\242\230.pdf" differ
diff --git "a/source/books/interview/Tomcat\347\273\274\345\220\210\351\235\242\350\257\225\351\242\230.pdf" "b/source/books/interview/Tomcat\347\273\274\345\220\210\351\235\242\350\257\225\351\242\230.pdf"
new file mode 100644
index 0000000..068be2d
Binary files /dev/null and "b/source/books/interview/Tomcat\347\273\274\345\220\210\351\235\242\350\257\225\351\242\230.pdf" differ
diff --git "a/source/books/interview/Tomcat\351\235\242\350\257\225\351\242\230 14\351\201\223.pdf" "b/source/books/interview/Tomcat\351\235\242\350\257\225\351\242\230 14\351\201\223.pdf"
new file mode 100644
index 0000000..dae274d
Binary files /dev/null and "b/source/books/interview/Tomcat\351\235\242\350\257\225\351\242\230 14\351\201\223.pdf" differ
diff --git "a/source/books/interview/Zookeeper\351\235\242\350\257\225\351\242\230 20\351\201\223.pdf" "b/source/books/interview/Zookeeper\351\235\242\350\257\225\351\242\230 20\351\201\223.pdf"
new file mode 100644
index 0000000..78f1245
Binary files /dev/null and "b/source/books/interview/Zookeeper\351\235\242\350\257\225\351\242\230 20\351\201\223.pdf" differ
diff --git "a/source/books/interview/Zookeeper\351\235\242\350\257\225\351\242\230 28\351\201\223.pdf" "b/source/books/interview/Zookeeper\351\235\242\350\257\225\351\242\230 28\351\201\223.pdf"
new file mode 100644
index 0000000..cb56c0c
Binary files /dev/null and "b/source/books/interview/Zookeeper\351\235\242\350\257\225\351\242\230 28\351\201\223.pdf" differ
diff --git "a/source/books/interview/Zookeeper\351\235\242\350\257\225\351\242\230.pdf" "b/source/books/interview/Zookeeper\351\235\242\350\257\225\351\242\230.pdf"
new file mode 100644
index 0000000..7374afb
Binary files /dev/null and "b/source/books/interview/Zookeeper\351\235\242\350\257\225\351\242\230.pdf" differ
diff --git "a/source/books/interview/java\351\235\242\350\257\225\351\242\230_\346\266\210\346\201\257\344\270\255\351\227\264\344\273\266--RabbitMQ(20\351\242\230).pdf" "b/source/books/interview/java\351\235\242\350\257\225\351\242\230_\346\266\210\346\201\257\344\270\255\351\227\264\344\273\266--RabbitMQ(20\351\242\230).pdf"
new file mode 100644
index 0000000..05b4b82
Binary files /dev/null and "b/source/books/interview/java\351\235\242\350\257\225\351\242\230_\346\266\210\346\201\257\344\270\255\351\227\264\344\273\266--RabbitMQ(20\351\242\230).pdf" differ
diff --git "a/source/books/interview/java\351\235\242\350\257\225\351\242\230_\346\266\210\346\201\257\344\270\255\351\227\264\344\273\266--RocketMq(14\351\242\230).pdf" "b/source/books/interview/java\351\235\242\350\257\225\351\242\230_\346\266\210\346\201\257\344\270\255\351\227\264\344\273\266--RocketMq(14\351\242\230).pdf"
new file mode 100644
index 0000000..e16eca2
Binary files /dev/null and "b/source/books/interview/java\351\235\242\350\257\225\351\242\230_\346\266\210\346\201\257\344\270\255\351\227\264\344\273\266--RocketMq(14\351\242\230).pdf" differ
diff --git "a/source/books/interview/kafka44\347\237\245\350\257\206\347\202\271\357\274\210\345\237\272\347\241\200+\350\277\233\351\230\266+\351\253\230\351\230\266\357\274\211.pdf" "b/source/books/interview/kafka44\347\237\245\350\257\206\347\202\271\357\274\210\345\237\272\347\241\200+\350\277\233\351\230\266+\351\253\230\351\230\266\357\274\211.pdf"
new file mode 100644
index 0000000..2b050bb
Binary files /dev/null and "b/source/books/interview/kafka44\347\237\245\350\257\206\347\202\271\357\274\210\345\237\272\347\241\200+\350\277\233\351\230\266+\351\253\230\351\230\266\357\274\211.pdf" differ
diff --git "a/source/books/interview/zookeeper\351\235\242\350\257\225\344\270\223\351\242\230.pdf" "b/source/books/interview/zookeeper\351\235\242\350\257\225\344\270\223\351\242\230.pdf"
new file mode 100644
index 0000000..08cc9ca
Binary files /dev/null and "b/source/books/interview/zookeeper\351\235\242\350\257\225\344\270\223\351\242\230.pdf" differ
diff --git "a/source/books/interview/\343\200\220\347\276\216\345\233\242\343\200\221Java \345\262\227 154 \351\201\223\351\235\242\350\257\225\351\242\230.pdf" "b/source/books/interview/\343\200\220\347\276\216\345\233\242\343\200\221Java \345\262\227 154 \351\201\223\351\235\242\350\257\225\351\242\230.pdf"
new file mode 100644
index 0000000..68682b0
Binary files /dev/null and "b/source/books/interview/\343\200\220\347\276\216\345\233\242\343\200\221Java \345\262\227 154 \351\201\223\351\235\242\350\257\225\351\242\230.pdf" differ
diff --git "a/source/books/interview/\344\272\254\344\270\234\347\257\207.pdf" "b/source/books/interview/\344\272\254\344\270\234\347\257\207.pdf"
new file mode 100644
index 0000000..58cd666
Binary files /dev/null and "b/source/books/interview/\344\272\254\344\270\234\347\257\207.pdf" differ
diff --git "a/source/books/interview/\345\215\216\344\270\272\347\257\207.pdf" "b/source/books/interview/\345\215\216\344\270\272\347\257\207.pdf"
new file mode 100644
index 0000000..34bf15d
Binary files /dev/null and "b/source/books/interview/\345\215\216\344\270\272\347\257\207.pdf" differ
diff --git "a/source/books/interview/\345\244\232\347\272\277\347\250\213\351\235\242\350\257\22559\351\242\230\357\274\210\345\220\253\347\255\224\346\241\210\357\274\211.pdf" "b/source/books/interview/\345\244\232\347\272\277\347\250\213\351\235\242\350\257\22559\351\242\230\357\274\210\345\220\253\347\255\224\346\241\210\357\274\211.pdf"
new file mode 100644
index 0000000..5a17e1e
Binary files /dev/null and "b/source/books/interview/\345\244\232\347\272\277\347\250\213\351\235\242\350\257\22559\351\242\230\357\274\210\345\220\253\347\255\224\346\241\210\357\274\211.pdf" differ
diff --git "a/source/books/interview/\345\244\247\346\225\260\346\215\256\351\235\242\350\257\225\351\242\230 100\351\201\223.pdf" "b/source/books/interview/\345\244\247\346\225\260\346\215\256\351\235\242\350\257\225\351\242\230 100\351\201\223.pdf"
new file mode 100644
index 0000000..a748f72
Binary files /dev/null and "b/source/books/interview/\345\244\247\346\225\260\346\215\256\351\235\242\350\257\225\351\242\230 100\351\201\223.pdf" differ
diff --git "a/source/books/interview/\345\244\264\346\235\241\347\257\207.pdf" "b/source/books/interview/\345\244\264\346\235\241\347\257\207.pdf"
new file mode 100644
index 0000000..b3d7ddb
Binary files /dev/null and "b/source/books/interview/\345\244\264\346\235\241\347\257\207.pdf" differ
diff --git "a/source/books/interview/\346\211\213\345\206\231\342\200\234Kafka\347\254\224\350\256\260\342\200\235.pdf" "b/source/books/interview/\346\211\213\345\206\231\342\200\234Kafka\347\254\224\350\256\260\342\200\235.pdf"
new file mode 100644
index 0000000..ebddfbd
Binary files /dev/null and "b/source/books/interview/\346\211\213\345\206\231\342\200\234Kafka\347\254\224\350\256\260\342\200\235.pdf" differ
diff --git "a/source/books/interview/\346\273\264\346\273\264\347\257\207.pdf" "b/source/books/interview/\346\273\264\346\273\264\347\257\207.pdf"
new file mode 100644
index 0000000..9caad5e
Binary files /dev/null and "b/source/books/interview/\346\273\264\346\273\264\347\257\207.pdf" differ
diff --git "a/source/books/interview/\347\231\276\345\272\246\347\257\207.pdf" "b/source/books/interview/\347\231\276\345\272\246\347\257\207.pdf"
new file mode 100644
index 0000000..8ed0d95
Binary files /dev/null and "b/source/books/interview/\347\231\276\345\272\246\347\257\207.pdf" differ
diff --git "a/source/books/interview/\347\276\216\345\233\242\347\257\207.pdf" "b/source/books/interview/\347\276\216\345\233\242\347\257\207.pdf"
new file mode 100644
index 0000000..51dc839
Binary files /dev/null and "b/source/books/interview/\347\276\216\345\233\242\347\257\207.pdf" differ
diff --git "a/source/books/interview/\350\205\276\350\256\257\347\257\207.pdf" "b/source/books/interview/\350\205\276\350\256\257\347\257\207.pdf"
new file mode 100644
index 0000000..b982c8e
Binary files /dev/null and "b/source/books/interview/\350\205\276\350\256\257\347\257\207.pdf" differ
diff --git "a/source/books/interview/\350\256\276\350\256\241\346\250\241\345\274\217\351\235\242\350\257\225\351\242\230 14\351\201\223.pdf" "b/source/books/interview/\350\256\276\350\256\241\346\250\241\345\274\217\351\235\242\350\257\225\351\242\230 14\351\201\223.pdf"
new file mode 100644
index 0000000..2435a84
Binary files /dev/null and "b/source/books/interview/\350\256\276\350\256\241\346\250\241\345\274\217\351\235\242\350\257\225\351\242\230 14\351\201\223.pdf" differ
diff --git "a/source/books/interview/\351\235\242\350\257\225\345\277\205\345\244\207\344\271\213\344\271\220\350\247\202\351\224\201\344\270\216\346\202\262\350\247\202\351\224\201.pdf" "b/source/books/interview/\351\235\242\350\257\225\345\277\205\345\244\207\344\271\213\344\271\220\350\247\202\351\224\201\344\270\216\346\202\262\350\247\202\351\224\201.pdf"
new file mode 100644
index 0000000..6f4ae5d
Binary files /dev/null and "b/source/books/interview/\351\235\242\350\257\225\345\277\205\345\244\207\344\271\213\344\271\220\350\247\202\351\224\201\344\270\216\346\202\262\350\247\202\351\224\201.pdf" differ
diff --git "a/source/books/save-paper/Java8 \345\207\275\346\225\260\345\274\217\347\274\226\347\250\213.pdf" "b/source/books/save-paper/Java8 \345\207\275\346\225\260\345\274\217\347\274\226\347\250\213.pdf"
new file mode 100644
index 0000000..c67215d
Binary files /dev/null and "b/source/books/save-paper/Java8 \345\207\275\346\225\260\345\274\217\347\274\226\347\250\213.pdf" differ
diff --git "a/source/books/save-paper/Java8 \345\256\236\346\210\230.pdf" "b/source/books/save-paper/Java8 \345\256\236\346\210\230.pdf"
new file mode 100644
index 0000000..94d9075
Binary files /dev/null and "b/source/books/save-paper/Java8 \345\256\236\346\210\230.pdf" differ
diff --git "a/source/books/save-paper/Java\345\271\266\345\217\221\347\274\226\347\250\213\350\211\272\346\234\257.pdf" "b/source/books/save-paper/Java\345\271\266\345\217\221\347\274\226\347\250\213\350\211\272\346\234\257.pdf"
new file mode 100644
index 0000000..07f0887
Binary files /dev/null and "b/source/books/save-paper/Java\345\271\266\345\217\221\347\274\226\347\250\213\350\211\272\346\234\257.pdf" differ
diff --git "a/source/books/save-paper/Java\350\257\255\350\250\200\350\247\204\350\214\203_\347\254\2549\347\211\210(\350\213\261\346\226\207).pdf" "b/source/books/save-paper/Java\350\257\255\350\250\200\350\247\204\350\214\203_\347\254\2549\347\211\210(\350\213\261\346\226\207).pdf"
new file mode 100644
index 0000000..799a3e2
Binary files /dev/null and "b/source/books/save-paper/Java\350\257\255\350\250\200\350\247\204\350\214\203_\347\254\2549\347\211\210(\350\213\261\346\226\207).pdf" differ
diff --git "a/source/books/save-paper/Linux-UNIX\347\263\273\347\273\237\347\274\226\347\250\213\346\211\213\345\206\214.pdf" "b/source/books/save-paper/Linux-UNIX\347\263\273\347\273\237\347\274\226\347\250\213\346\211\213\345\206\214.pdf"
new file mode 100644
index 0000000..74c04ce
Binary files /dev/null and "b/source/books/save-paper/Linux-UNIX\347\263\273\347\273\237\347\274\226\347\250\213\346\211\213\345\206\214.pdf" differ
diff --git "a/source/books/save-paper/Linux\351\253\230\346\200\247\350\203\275\346\234\215\345\212\241\345\231\250\347\274\226\347\250\213.pdf" "b/source/books/save-paper/Linux\351\253\230\346\200\247\350\203\275\346\234\215\345\212\241\345\231\250\347\274\226\347\250\213.pdf"
new file mode 100644
index 0000000..08f1daf
Binary files /dev/null and "b/source/books/save-paper/Linux\351\253\230\346\200\247\350\203\275\346\234\215\345\212\241\345\231\250\347\274\226\347\250\213.pdf" differ
diff --git "a/source/books/save-paper/Netty \345\256\236\346\210\230.pdf" "b/source/books/save-paper/Netty \345\256\236\346\210\230.pdf"
new file mode 100644
index 0000000..974afa2
Binary files /dev/null and "b/source/books/save-paper/Netty \345\256\236\346\210\230.pdf" differ
diff --git a/source/books/save-paper/effective-java.pdf b/source/books/save-paper/effective-java.pdf
new file mode 100644
index 0000000..98edec6
Binary files /dev/null and b/source/books/save-paper/effective-java.pdf differ
diff --git "a/source/books/save-paper/\345\276\256\346\234\215\345\212\241\344\273\216\350\256\276\350\256\241\345\210\260\351\203\250\347\275\262.pdf" "b/source/books/save-paper/\345\276\256\346\234\215\345\212\241\344\273\216\350\256\276\350\256\241\345\210\260\351\203\250\347\275\262.pdf"
new file mode 100644
index 0000000..ba07d3e
Binary files /dev/null and "b/source/books/save-paper/\345\276\256\346\234\215\345\212\241\344\273\216\350\256\276\350\256\241\345\210\260\351\203\250\347\275\262.pdf" differ
diff --git "a/source/books/save-paper/\346\267\261\345\205\245\347\220\206\350\247\243Java\350\231\232\346\213\237\346\234\272\357\274\232\357\274\210\347\254\2543\347\211\210).pdf" "b/source/books/save-paper/\346\267\261\345\205\245\347\220\206\350\247\243Java\350\231\232\346\213\237\346\234\272\357\274\232\357\274\210\347\254\2543\347\211\210).pdf"
new file mode 100644
index 0000000..57ab942
Binary files /dev/null and "b/source/books/save-paper/\346\267\261\345\205\245\347\220\206\350\247\243Java\350\231\232\346\213\237\346\234\272\357\274\232\357\274\210\347\254\2543\347\211\210).pdf" differ
diff --git "a/source/books/save-paper/\347\256\227\346\263\225\345\233\276\350\247\243.pdf" "b/source/books/save-paper/\347\256\227\346\263\225\345\233\276\350\247\243.pdf"
new file mode 100644
index 0000000..b5d0848
Binary files /dev/null and "b/source/books/save-paper/\347\256\227\346\263\225\345\233\276\350\247\243.pdf" differ
diff --git "a/source/books/save-paper/\347\256\227\346\263\225\345\257\274\350\256\272(\350\213\261\346\226\207\347\254\254\344\270\211\347\211\210).pdf" "b/source/books/save-paper/\347\256\227\346\263\225\345\257\274\350\256\272(\350\213\261\346\226\207\347\254\254\344\270\211\347\211\210).pdf"
new file mode 100644
index 0000000..818897e
Binary files /dev/null and "b/source/books/save-paper/\347\256\227\346\263\225\345\257\274\350\256\272(\350\213\261\346\226\207\347\254\254\344\270\211\347\211\210).pdf" differ
diff --git "a/source/books/save-paper/\351\207\215\346\236\204-\346\224\271\345\226\204\346\227\242\346\234\211\344\273\243\347\240\201\347\232\204\350\256\276\350\256\241[\347\254\2542\347\211\210].pdf" "b/source/books/save-paper/\351\207\215\346\236\204-\346\224\271\345\226\204\346\227\242\346\234\211\344\273\243\347\240\201\347\232\204\350\256\276\350\256\241[\347\254\2542\347\211\210].pdf"
new file mode 100644
index 0000000..ab256bd
Binary files /dev/null and "b/source/books/save-paper/\351\207\215\346\236\204-\346\224\271\345\226\204\346\227\242\346\234\211\344\273\243\347\240\201\347\232\204\350\256\276\350\256\241[\347\254\2542\347\211\210].pdf" differ
diff --git "a/source/books/save-paper/\351\230\277\351\207\214\345\267\264\345\267\264Java\345\274\200\345\217\221\346\211\213\345\206\214\357\274\210\345\265\251\345\261\261\347\211\210\357\274\211.pdf" "b/source/books/save-paper/\351\230\277\351\207\214\345\267\264\345\267\264Java\345\274\200\345\217\221\346\211\213\345\206\214\357\274\210\345\265\251\345\261\261\347\211\210\357\274\211.pdf"
new file mode 100644
index 0000000..4d4c5cc
Binary files /dev/null and "b/source/books/save-paper/\351\230\277\351\207\214\345\267\264\345\267\264Java\345\274\200\345\217\221\346\211\213\345\206\214\357\274\210\345\265\251\345\261\261\347\211\210\357\274\211.pdf" differ
diff --git "a/source/books/save-paper/\351\253\230\346\200\247\350\203\275MySQL(\347\254\2543\347\211\210).pdf" "b/source/books/save-paper/\351\253\230\346\200\247\350\203\275MySQL(\347\254\2543\347\211\210).pdf"
new file mode 100644
index 0000000..826603f
Binary files /dev/null and "b/source/books/save-paper/\351\253\230\346\200\247\350\203\275MySQL(\347\254\2543\347\211\210).pdf" differ
diff --git a/source/images/alipay.png b/source/images/alipay.png
new file mode 100644
index 0000000..6f91b5f
Binary files /dev/null and b/source/images/alipay.png differ
diff --git a/source/img/hanxi.png b/source/images/hanxi.png
similarity index 100%
rename from source/img/hanxi.png
rename to source/images/hanxi.png
diff --git a/source/images/wechatpay.png b/source/images/wechatpay.png
new file mode 100644
index 0000000..5b04188
Binary files /dev/null and b/source/images/wechatpay.png differ
diff --git a/source/lib/pdf/.github/workflows/update.yml b/source/lib/pdf/.github/workflows/update.yml
new file mode 100644
index 0000000..9d50a82
--- /dev/null
+++ b/source/lib/pdf/.github/workflows/update.yml
@@ -0,0 +1,36 @@
+name: Update
+
+on:
+ schedule:
+ - cron: '0 0 * * 0'
+
+jobs:
+ update:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/checkout@v2
+ with:
+ path: pdf.js
+ repository: mozilla/pdf.js
+ - name: Use Node.js
+ uses: actions/setup-node@v2
+ - name: Build
+ run: |
+ cd pdf.js
+ npm install --legacy-peer-deps
+ npx gulp publish
+ cd ..
+ cp -r pdf.js/build/generic/* .
+ - name: Config
+ run: |
+ git config --global user.name 'Mimi'
+ git config --global user.email 'stevenjoezhang@users.noreply.github.com'
+ - name: Commit
+ run: |
+ git add .
+ git commit -m 'Update pdf.js'
+ - name: Push
+ run: |
+ git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}
+ git push
diff --git a/source/lib/pdf/LICENSE b/source/lib/pdf/LICENSE
new file mode 100644
index 0000000..f433b1a
--- /dev/null
+++ b/source/lib/pdf/LICENSE
@@ -0,0 +1,177 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
diff --git a/source/lib/pdf/README.md b/source/lib/pdf/README.md
new file mode 100644
index 0000000..be8a038
--- /dev/null
+++ b/source/lib/pdf/README.md
@@ -0,0 +1,70 @@
+# [PDF.js](https://github.com/mozilla/pdf.js) for [NexT](https://github.com/next-theme/hexo-theme-next)
+
+## Introduce
+
+This is a plugin that allows to preview PDF files in the blog pages.
+
+If the browser supports embedded PDFs natively, NexT will create a `