diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 6f36d0a..0000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,22 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "npm" - directory: "/" - schedule: - interval: "daily" - groups: - patch-updates: - patterns: - - "*" - update-types: - - "patch" - minor-updates: - patterns: - - "*" - update-types: - - "minor" - pull-request-branch-name: - separator: "-" - ignore: - - dependency-name: "*" - update-types: ["version-update:semver-major"] diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 918f40b..0000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,60 +0,0 @@ -name: Build Astro dist file - -on: - push: - branches: [main] # 推送到 main 分支时触发 - pull_request: - branches: [main] # 拉取请求时也触发(可选) - schedule: - - cron: "0 5 * * *" - -jobs: - build: - runs-on: ubuntu-latest - # 仅新增:声明工作流权限,解决GITHUB_TOKEN无写入权限的核心问题 - permissions: - contents: write - steps: - - name: Install pnpm - uses: pnpm/action-setup@v2 - with: - version: latest # 安装最新版本的 pnpm - - - name: Cache pnpm dependencies - uses: actions/cache@v3 - with: - path: ~/.pnpm-store - key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm- - - # 1. 拉取代码 - - name: Checkout code - uses: actions/checkout@v4 - # 仅新增:拉取完整仓库历史,避免推送分支时的历史缺失问题 - with: - fetch-depth: 0 - - # 2. 安装 Node.js(Astro 要求 Node.js 18+) - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 20 # 推荐 20.x - - # 3. 安装依赖(解决权限问题的关键步骤) - - name: Install dependencies - run: pnpm install --no-frozen-lockfile - # 若使用 pnpm/yarn,替换为 pnpm install 或 yarn install - - # 4. 构建项目,生成 dist 目录 - - name: Build Astro site - run: pnpm run build # 等价于 astro build,输出到 dist - - # 5. 推送到 page 分支 - - name: Deploy to page branch - uses: peaceiris/actions-gh-pages@v4 # 第三方 Action,简化推送流程 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} # 自动生成的临时令牌,有仓库操作权限 - publish_dir: ./dist # 要推送的目录(Astro 构建产物) - publish_branch: page # 目标分支(page 分支) - force_orphan: true # 强制创建孤儿分支(只保留 dist 内容,可选) \ No newline at end of file diff --git a/.gitignore b/.gitignore deleted file mode 100644 index dcac261..0000000 --- a/.gitignore +++ /dev/null @@ -1,27 +0,0 @@ -# build output -dist/ - -# generated types -.astro/ - -# dependencies -node_modules/ - -# logs -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* - -# environment variables -.env -.env.production - -# macOS-specific files -.DS_Store - -.vercel - -package-lock.json -bun.lockb -yarn.lock diff --git a/src/components/misc/Categories.astro b/.nojekyll similarity index 100% rename from src/components/misc/Categories.astro rename to .nojekyll diff --git a/.npmrc b/.npmrc deleted file mode 100644 index 6baea02..0000000 --- a/.npmrc +++ /dev/null @@ -1 +0,0 @@ -manage-package-manager-versions = true \ No newline at end of file diff --git a/.vercelignore b/.vercelignore deleted file mode 100644 index 4146d10..0000000 --- a/.vercelignore +++ /dev/null @@ -1,6 +0,0 @@ -node_modules -build -dist -.git -.trae -.log \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index 57c8cad..0000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "recommendations": ["biomejs.biome", "astro-build.astro-vscode"] -} diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 8ed0aaf..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "editor.formatOnSave": true, - "editor.defaultFormatter": "biomejs.biome", - "[javascript]": { - "editor.defaultFormatter": "biomejs.biome" - }, - "[javascriptreact]": { - "editor.defaultFormatter": "biomejs.biome" - }, - "[typescript]": { - "editor.defaultFormatter": "biomejs.biome" - }, - "[typescriptreact]": { - "editor.defaultFormatter": "biomejs.biome" - }, - "editor.codeActionsOnSave": { - "source.fixAll": "explicit", - "quickfix.biome": "always", - "source.organizeImports.biome": "always" - }, - "frontMatter.dashboard.openOnStart": false, - "Lingma.localMachineModel": true -} diff --git a/2/index.html b/2/index.html new file mode 100644 index 0000000..ec7dd73 --- /dev/null +++ b/2/index.html @@ -0,0 +1,913 @@ + Allen2030's Blog + + + + +
+ +
Cover Image of the Post
使用1panel搭建免费开源的icp虚拟备案系统
本教程手把手教你从购买雨云服务器开始,使用 1Panel 快速部署网站及数据库,并安装开源项目 dBd-Filing。内容覆盖服务器选购、环境配置、程序上传、MySQL 安装等完整建站流程,适合新手快速上手和个人项目搭建。
986 字
|
5 分钟
+
Cover Image of the Post
25.5.3-5.4被攻击经过
2025 年 5 月初,服务器突遭大规模访问请求,疑似遭受 DDoS 攻击。初期由免费 CDN 托底防御,后通过转移至 Cloudflare 并开启限流策略,成功缓解流量压力并终止攻击。本文记录整个过程与应对措施,供有类似需求的站长参考。
116 字
|
1 分钟
+
Cover Image of the Post
小米平板7pro澎湃os2Bate版使用体验
2025-04-17
更新至新系统版本后,整体体验有明显提升:动画更流畅、发热情况改善、应用切换更加顺畅。本文分享实际使用感受。
52 字
|
1 分钟
+
Cover Image of the Post
音乐播放器预览
本文展示了两种音乐播放器界面的视觉效果——默认样式与圆盘样式,分别呈现暂停、播放状态及歌词显示,便于界面设计对比与参考,适用于 UI 调整或前端开发场景。
46 字
|
1 分钟
+
Cover Image of the Post
爱国图片
本篇文章整理并分享了多张高质量爱国主题图片,包括《中华人民共和国国旗》《袁隆平·稻下乘凉梦》《永远的人民英雄》《开国大典》等经典画面,适合用于宣传设计、纪念活动或学习参考。文末附带图包下载链接,支持一键获取。
82 字
|
1 分钟
+
Cover Image of the Post
极域
2025-03-07
部分内容不向互联网公开
13 字
|
1 分钟
+
Cover Image of the Post
一班热榜历史记录2024-2025(下半学期)
2025-02-28
记录 2025 年 2 月 27 日与 28 日的班级日常:有同学积极领奖,也有不当行为和未交作业的情况。文中还特别送出新年祝福,并附有历史记录传送门,见证热榜成长足迹。
108 字
|
1 分钟
+
Cover Image of the Post
greasyfork新可用地址
本文介绍了 GreasyFork 在中国遭遇 SNI 阻断后提供的最新可用域名和镜像地址,并详细说明了访问限制、使用注意事项以及推荐的 DNS 服务器,确保用户能够稳定访问 GreasyFork 脚本资源。
358 字
|
2 分钟
+
Cover Image of the Post
启用cloudflare cdn后js无法正常加载解决办法
这个方法有效解决了开启 Cloudflare Rocket Loader 后导致的页面部分内容加载异常问题,关闭该功能后网站正常显示。
85 字
|
1 分钟
+
Cover Image of the Post
水-1
中国是一个拥有悠久历史和丰富文化传统的国家。几千年来,中华民族创造了灿烂的文化,涵盖了诗歌、书法、绘画、音乐、戏曲、建筑等多个领域,展现出独特的艺术魅力。书法被誉为“东方艺术之花”,不仅是文字的书写,更是一种富有美感和韵律的艺术表达。中国的传统绘画讲究意境和笔墨的运用,以山水和花鸟为常见题材,反映了人们对自然的热爱和哲理思考。音乐方面,古代乐曲如《广陵散》和《阳关三叠》等传承至今,表达了中国人细腻的情感与艺术追求。中国的戏曲种类繁多,京剧、豫剧、越剧等各具特色,结合唱念做打等表演形式,生动地传递故事和文化底蕴,深受各地人民喜爱。建筑则以长城、故宫等宏伟壮观的古代建筑闻名于世,它们不仅体现了精湛的工艺水平,还融入了“天人合一”的理念,强调人与自然的和谐共生。这些文化传统不仅丰富了中国人的精神世界,也为世界文化宝库增添了独特的色彩。它们体现了中华民族对美好生活的向往和不懈追求,彰显了深厚的历史积淀和文化自信。正是这些多样而独特的文化形式,使中国成为一个文化底蕴深厚、充满魅力的国家。
445 字
|
2 分钟
+
Cover Image of the Post
给你的博客加上一个十年倒计时吧
本文详细介绍了如何在 hexo-theme-anzhiyu 主题博客中添加自定义倒计时功能。通过新建JavaScript文件和在Markdown文件中插入HTML代码,实现动态倒计时显示,且支持自定义目标时间和样式。
367 字
|
2 分钟
1
2
3
\ No newline at end of file diff --git a/3/index.html b/3/index.html new file mode 100644 index 0000000..ed001b9 --- /dev/null +++ b/3/index.html @@ -0,0 +1,897 @@ + Allen2030's Blog + + + + +
+ +
Cover Image of the Post
安知鱼主题音乐馆默认歌单修改
本文介绍了如何在 hexo-theme-anzhiyu 主题中,通过修改 utils.js 文件中的 getCustomPlayList 函数,自定义歌单ID及音乐服务商,实现简化访问音乐接口的配置方法。
141 字
|
1 分钟
+
Cover Image of the Post
引入Aplayer播放音乐-自定义api地址
2024-12-07
本文分享如何在 akilar糖果屋主题中自定义 Aplayer 的 meting_js API 地址,解决官方API不稳定、歌曲播放断续的问题,通过在注入的 Aplayer 容器中添加 `data-meting_api` 参数,实现调用自定义的音乐接口。
321 字
|
2 分钟
+
Cover Image of the Post
购买雨云服务器并部署hexo博客-购买云服务器
2024-12-06
本文介绍了为什么选择云服务器来部署静态博客,指出相比于GitHub的限制和网络不稳定,云服务器具有更好的全国访问稳定性和更大存储空间。并详细讲解了如何在雨云云服务平台购买适合的云服务器。
260 字
|
1 分钟
+
Cover Image of the Post
butterfly导航栏图标修改
本文介绍如何为导航栏添加图标,通过FontAwesome官网选择合适的图标类名,并替换官方配置中的图标名称,实现自定义导航栏图标的效果。
118 字
|
1 分钟
+
Cover Image of the Post
12月到了
2024-12-03
12月到了我要更加努力
11 字
|
1 分钟
+
Cover Image of the Post
一班热榜历史记录2024-2025(上半学期)
2024-09-20
这是一份2024年10月至12月间的班级日常记录,涵盖了学生的学习表现、课堂纪律、考试成绩及师生互动等方面的详细情况。记录中既有对学生优异表现的表扬,也包括对不良行为的批评和纠正,同时穿插了班主任对学生整体表现的总结和鼓励,反映了班级管理和教学的日常状态。
3760 字
|
19 分钟
+
Cover Image of the Post
我的ai网站发布啦
2024-09-09
这是一个指向 AI 相关网站的链接,方便用户快速访问 fishcpy 提供的 AI 服务入口。
1 字
|
1 分钟
+
Cover Image of the Post
关于casaos国内无法拉取镜像解决方法
本文指导用户如何为 CasaOS 配置 Docker 镜像加速,通过编辑 `daemon.json` 文件添加多个镜像源,加速 Docker 镜像的下载。最后通过重启 Docker 服务和设备,使配置生效。
128 字
|
1 分钟
+
Cover Image of the Post
Markdown Example
A simple example of a Markdown blog post.
1593 字
|
8 分钟
+
Cover Image of the Post
站点历程
站点历程
207 字
|
1 分钟
\ No newline at end of file diff --git a/public/404.html b/404.html similarity index 100% rename from public/404.html rename to 404.html diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index aa1295b..0000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,21 +0,0 @@ - -# Contributing - -Thank you for your interest in contributing! - -## Before You Start - -If you plan to make major changes (especially new features or design changes), please open an issue or discussion before starting work. This helps ensure your effort aligns with the project's direction. - -## Submitting Code - -Please keep each pull request focused on a single purpose. Avoid mixing unrelated changes in one PR, as this can make reviewing and merging code more difficult. - -Please use the [Conventional Commits](https://www.conventionalcommits.org/) format for your commit messages whenever possible. This keeps our history clear and consistent. - -Before submitting code, please run the appropriate commands to check for errors and format your code. - -```bash -pnpm check -pnpm format -``` \ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 08fa51c..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2024 saicaca - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md deleted file mode 100644 index 2b3ac2c..0000000 --- a/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# 🐟 fishcpy 主题 -![Node.js >= 20](https://img.shields.io/badge/node.js-%3E%3D20-brightgreen) -![pnpm >= 9](https://img.shields.io/badge/pnpm-%3E%3D9-blue) - -> 基于[Astro](https://astro.build)构建的静态博客模板,由[Fuwari](https://github.com/saicaca/fuwari)修改而来。 - -[**🖥️ 实时演示 **](https://astro-theme-fishcpy.demo.fis.ink) - -![预览图](https://cdn.fis.ink/cdn/2025/09/06/68bb1a79306d1.webp) - ---- - -## ✨ 核心特性 - -- [x] 基于 [Astro](https://astro.build) 与 [Tailwind CSS](https://tailwindcss.com) 构建 -- [x] 流畅动画与页面过渡效果 -- [x] 浅色/深色模式 -- [x] 可自定义主题配色与横幅 -- [x] 响应式设计 -- [x] 搭载[Pagefind](https://pagefind.app/)的搜索功能 -- [x] [Markdown扩展功能](https://github.com/saicaca/fuwari?tab=readme-ov-file#-markdown-extended-syntax) -- [x] 目录功能 -- [x] RSS订阅源 -- [x] Twikoo与artalk评论区 - -## ⚡ 命令列表 - -| 命令 | 操作 | -|----------------------------|-----------------------------------------------------| -| `pnpm install` | 安装依赖项 | -| `pnpm dev` | 在 `localhost:4321` 启动开发服务器 | -| `pnpm build` | 将生产站点构建至 `./dist/` | -| `pnpm preview` | 部署前预览构建站点 | -| `pnpm check` | 运行代码质量与类型检查 | -| `pnpm format` | 使用 Biome 格式化代码 | -| `pnpm new-post <文件名>` | 创建新博客文章 | -| `pnpm astro ...` | 运行 Astro CLI 命令(例如 `astro add`) | -| `pnpm astro --help` | 显示 Astro CLI 帮助 | - -# 请完成必要的配置与修改后再部署项目,**不得使用“fishcpy”相关名称、Logo建立“镜像”网站或照搬文章内容而不标注来源**,否则我将设法与你联系。 - -## 📄 许可协议 - -本项目采用 MIT 许可协议授权。 - -基于 [Fuwari](https://github.com/saicaca/fuwari) 修改而来。 diff --git a/_astro/ArchivePanel.Cev_U4f_.js b/_astro/ArchivePanel.Cev_U4f_.js new file mode 100644 index 0000000..8ad8f77 --- /dev/null +++ b/_astro/ArchivePanel.Cev_U4f_.js @@ -0,0 +1,10 @@ +import{p as y,o as W,i as X,s as U,a as C}from"./translation.D40iFv2g.js";import{a as P,p as Z,f as S,b as $,s as tt,g as e,r as l,m as et,c as o,d as m,u as n,t as D,e as g,h as M}from"./render.nCRzbnaE.js";import{e as N,i as B}from"./each.ms7nIH9w.js";import{I as k}from"./zh_TW.GNQQ5Uve.js";import{g as at}from"./url-utils.Btk-Imyz.js";var rt=S(`
`),it=S(`
`),st=S('
');function ut(F,f){$(f,!1);let h=y(f,"tags",12),x=y(f,"categories",12),K=y(f,"sortedPosts",24,()=>[]);const v=new URLSearchParams(window.location.search);h(v.has("tag")?v.getAll("tag"):[]),x(v.has("category")?v.getAll("category"):[]);const L=v.get("uncategorized");function O(a){const r=a.data.customSlug||a.slug;return at(r)}let A=et([]);function R(a){const r=(a.getMonth()+1).toString().padStart(2,"0"),d=a.getDate().toString().padStart(2,"0");return`${r}-${d}`}function T(a){return a.map(r=>`#${r}`).join(" ")}W(async()=>{let a=K();h().length>0&&(a=a.filter(t=>Array.isArray(t.data.tags)&&t.data.tags.some(i=>h().includes(i)))),x().length>0&&(a=a.filter(t=>t.data.category&&x().includes(t.data.category))),L&&(a=a.filter(t=>!t.data.category));const r=a.reduce((t,i)=>{const u=i.data.published.getFullYear();return t[u]||(t[u]=[]),t[u].push(i),t},{}),d=Object.keys(r).map(t=>({year:Number.parseInt(t),posts:r[Number.parseInt(t)]}));d.sort((t,i)=>i.year-t.year),tt(A,d)}),X();var p=st();N(p,5,()=>e(A),B,(a,r)=>{var d=it(),t=o(d),i=o(t),u=o(i,!0);l(i);var z=m(i,4),Y=o(z);l(z),l(t);var q=m(t,2);N(q,1,()=>(e(r),n(()=>e(r).posts)),B,(w,s)=>{var c=rt(),I=o(c),b=o(I),E=o(b,!0);l(b);var _=m(b,4),G=o(_,!0);l(_);var j=m(_,2),H=o(j,!0);l(j),l(I),l(c),D((J,Q,V)=>{U(c,"href",J),U(c,"aria-label",(e(s),n(()=>e(s).data.title))),g(E,Q),g(G,(e(s),n(()=>e(s).data.title))),g(H,V)},[()=>(e(s),n(()=>O(e(s)))),()=>(e(s),n(()=>R(e(s).data.published))),()=>(e(s),n(()=>T(e(s).data.tags)))]),P(w,c)}),l(d),D(w=>{g(u,(e(r),n(()=>e(r).year))),g(Y,`${e(r),n(()=>e(r).posts.length)??""} ${w??""}`)},[()=>(M(C),e(r),M(k),n(()=>C(e(r).posts.length===1?k.postCount:k.postsCount)))]),P(a,d)}),l(p),P(F,p),Z()}export{ut as default}; diff --git a/_astro/DisplaySettings.BVAIwnNr.js b/_astro/DisplaySettings.BVAIwnNr.js new file mode 100644 index 0000000..dc26e36 --- /dev/null +++ b/_astro/DisplaySettings.BVAIwnNr.js @@ -0,0 +1,4 @@ +import{i as R,b as V,s as $,r as z,a as l}from"./translation.D40iFv2g.js";import{m as A,l as B,i as E,t as F,k as G,g as t,a as J,p as L,b as M,c as a,h as i,u as y,e as k,s as w,f as N,d as c,r as s}from"./render.nCRzbnaE.js";import{b as O}from"./input.BTugRrM_.js";import{I as o}from"./zh_TW.GNQQ5Uve.js";import{I as P}from"./Icon.DxCdS7bP.js";import{b as Q,c as H,d as I}from"./setting-utils.DIFyzipl.js";/* empty css */var T=N(`
`);function ae(D,j){M(j,!1);let e=A(Q());const p=H();function q(){w(e,H())}B(()=>(t(e),I),()=>{(t(e)||t(e)===0)&&I(t(e))}),E(),R();var n=T(),d=a(n),v=a(d),b=a(v),r=c(b);let m;var _=a(r),C=a(_);P(C,{icon:"fa6-solid:arrow-rotate-left",class:"text-[0.875rem]"}),s(_),s(r),s(v);var g=c(v,2),x=a(g),S=a(x,!0);s(x),s(g),s(d);var h=c(d,2),f=a(h);z(f),s(h),s(n),F((u,K)=>{k(b,`${u??""} `),m=V(r,1,"btn-regular w-7 h-7 rounded-md active:scale-90",null,m,{"opacity-0":t(e)===p,"pointer-events-none":t(e)===p}),k(S,t(e)),$(f,"aria-label",K)},[()=>(i(l),i(o),y(()=>l(o.themeColor))),()=>(i(l),i(o),y(()=>l(o.themeColor)))]),G("click",r,q),O(f,()=>t(e),u=>w(e,u)),J(D,n),L()}export{ae as default}; diff --git a/_astro/Icon.DxCdS7bP.js b/_astro/Icon.DxCdS7bP.js new file mode 100644 index 0000000..49a5574 --- /dev/null +++ b/_astro/Icon.DxCdS7bP.js @@ -0,0 +1 @@ +import{l as Le,o as Me,c as De,i as Ne,d as Re,e as ee}from"./translation.D40iFv2g.js";import{G as te,S as $e,Z as q,T as ze,n as ne,J as se,q as j,B,ad as qe,K as He,o as Qe,x as G,ae as Ue,y as Be,H as Ge,z as Ve,v as Ie,A as oe,t as Ke,af as We,ag as Ye,C as Je,_ as Ze,ah as Xe,ai as et,a8 as ie,a7 as tt,w as F,l as nt,i as st,a0 as re,j as ce,a as A,p as ot,b as it,s as ae,g as y,h as rt,aj as H,m as L,u as le,ak as ct,c as at,r as lt,al as ft,f as ut}from"./render.nCRzbnaE.js";class dt{anchor;#t=new Map;#n=new Map;#e=new Map;#s=new Set;#o=!0;constructor(t,s=!0){this.anchor=t,this.#o=s}#i=()=>{var t=te;if(this.#t.has(t)){var s=this.#t.get(t),o=this.#n.get(s);if(o)$e(o),this.#s.delete(s);else{var n=this.#e.get(s);n&&(this.#n.set(s,n.effect),this.#e.delete(s),n.fragment.lastChild.remove(),this.anchor.before(n.fragment),o=n.effect)}for(const[i,r]of this.#t){if(this.#t.delete(i),i===t)break;const c=this.#e.get(r);c&&(q(c.effect),this.#e.delete(r))}for(const[i,r]of this.#n){if(i===s||this.#s.has(i))continue;const c=()=>{if(Array.from(this.#t.values()).includes(i)){var l=document.createDocumentFragment();qe(r,l),l.append(ne()),this.#e.set(i,{effect:r,fragment:l})}else q(r);this.#s.delete(i),this.#n.delete(i)};this.#o||!o?(this.#s.add(i),ze(r,c,!1)):c()}}};#r=t=>{this.#t.delete(t);const s=Array.from(this.#t.values());for(const[o,n]of this.#e)s.includes(o)||(q(n.effect),this.#e.delete(o))};ensure(t,s){var o=te,n=He();if(s&&!this.#n.has(t)&&!this.#e.has(t))if(n){var i=document.createDocumentFragment(),r=ne();i.append(r),this.#e.set(t,{effect:se(()=>s(r)),fragment:i})}else this.#n.set(t,se(()=>s(this.anchor)));if(this.#t.set(o,t),n){for(const[c,a]of this.#n)c===t?o.skipped_effects.delete(a):o.skipped_effects.add(a);for(const[c,a]of this.#e)c===t?o.skipped_effects.delete(a.effect):o.skipped_effects.add(a.effect);o.oncommit(this.#i),o.ondiscard(this.#r)}else j&&(this.anchor=B),this.#i()}}function fe(e,t,s=!1){j&&G();var o=new dt(e),n=s?Ue:0;function i(r,c){if(j){const l=Be(e)===Ge;if(r===l){var a=Ve();Ie(a),o.anchor=a,oe(!1),o.ensure(r,c),oe(!0);return}}o.ensure(r,c)}Qe(()=>{var r=!1;t((c,a=!0)=>{r=!0,i(a,c)}),r||i(!1,null)},n)}function ht(e,t,s=!1,o=!1,n=!1){var i=e,r="";Ke(()=>{var c=We;if(r===(r=t()??"")){j&&G();return}if(c.nodes!==null&&(Ye(c.nodes.start,c.nodes.end),c.nodes=null),r!==""){if(j){B.data;for(var a=G(),l=a;a!==null&&(a.nodeType!==Je||a.data!=="");)l=a,a=Ze(a);if(a===null)throw Xe(),et;ie(B,l),i=Ie(a);return}var f=r+"";s?f=`${f}`:o&&(f=`${f}`);var d=tt(f);if((s||o)&&(d=F(d)),ie(F(d),d.lastChild),s||o)for(;F(d);)i.before(F(d));else i.before(d)}})}const _e=/^[a-z0-9]+(-[a-z0-9]+)*$/,R=(e,t,s,o="")=>{const n=e.split(":");if(e.slice(0,1)==="@"){if(n.length<2||n.length>3)return null;o=n.shift().slice(1)}if(n.length>3||!n.length)return null;if(n.length>1){const c=n.pop(),a=n.pop(),l={provider:n.length>0?n[0]:o,prefix:a,name:c};return t&&!M(l)?null:l}const i=n[0],r=i.split("-");if(r.length>1){const c={provider:o,prefix:r.shift(),name:r.join("-")};return t&&!M(c)?null:c}if(s&&o===""){const c={provider:o,prefix:"",name:i};return t&&!M(c,s)?null:c}return null},M=(e,t)=>e?!!((t&&e.prefix===""||e.prefix)&&e.name):!1,ke=Object.freeze({left:0,top:0,width:16,height:16}),N=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),$=Object.freeze({...ke,...N}),V=Object.freeze({...$,body:"",hidden:!1});function pt(e,t){const s={};!e.hFlip!=!t.hFlip&&(s.hFlip=!0),!e.vFlip!=!t.vFlip&&(s.vFlip=!0);const o=((e.rotate||0)+(t.rotate||0))%4;return o&&(s.rotate=o),s}function ue(e,t){const s=pt(e,t);for(const o in V)o in N?o in e&&!(o in s)&&(s[o]=N[o]):o in t?s[o]=t[o]:o in e&&(s[o]=e[o]);return s}function gt(e,t){const s=e.icons,o=e.aliases||Object.create(null),n=Object.create(null);function i(r){if(s[r])return n[r]=[];if(!(r in n)){n[r]=null;const c=o[r]&&o[r].parent,a=c&&i(c);a&&(n[r]=[c].concat(a))}return n[r]}return Object.keys(s).concat(Object.keys(o)).forEach(i),n}function mt(e,t,s){const o=e.icons,n=e.aliases||Object.create(null);let i={};function r(c){i=ue(o[c]||n[c],i)}return r(t),s.forEach(r),ue(e,i)}function Se(e,t){const s=[];if(typeof e!="object"||typeof e.icons!="object")return s;e.not_found instanceof Array&&e.not_found.forEach(n=>{t(n,null),s.push(n)});const o=gt(e);for(const n in o){const i=o[n];i&&(t(n,mt(e,n,i)),s.push(n))}return s}const yt={provider:"",aliases:{},not_found:{},...ke};function Q(e,t){for(const s in t)if(s in e&&typeof e[s]!=typeof t[s])return!1;return!0}function Te(e){if(typeof e!="object"||e===null)return null;const t=e;if(typeof t.prefix!="string"||!e.icons||typeof e.icons!="object"||!Q(e,yt))return null;const s=t.icons;for(const n in s){const i=s[n];if(!n||typeof i.body!="string"||!Q(i,V))return null}const o=t.aliases||Object.create(null);for(const n in o){const i=o[n],r=i.parent;if(!n||typeof r!="string"||!s[r]&&!o[r]||!Q(i,V))return null}return t}const de=Object.create(null);function bt(e,t){return{provider:e,prefix:t,icons:Object.create(null),missing:new Set}}function S(e,t){const s=de[e]||(de[e]=Object.create(null));return s[t]||(s[t]=bt(e,t))}function Ee(e,t){return Te(t)?Se(t,(s,o)=>{o?e.icons[s]=o:e.missing.add(s)}):[]}function vt(e,t,s){try{if(typeof s.body=="string")return e.icons[t]={...s},!0}catch{}return!1}let P=!1;function Ce(e){return typeof e=="boolean"&&(P=e),P}function xt(e){const t=typeof e=="string"?R(e,!0,P):e;if(t){const s=S(t.provider,t.prefix),o=t.name;return s.icons[o]||(s.missing.has(o)?null:void 0)}}function wt(e,t){const s=R(e,!0,P);if(!s)return!1;const o=S(s.provider,s.prefix);return t?vt(o,s.name,t):(o.missing.add(s.name),!0)}function It(e,t){if(typeof e!="object")return!1;if(typeof t!="string"&&(t=e.provider||""),P&&!t&&!e.prefix){let n=!1;return Te(e)&&(e.prefix="",Se(e,(i,r)=>{wt(i,r)&&(n=!0)})),n}const s=e.prefix;if(!M({prefix:s,name:"a"}))return!1;const o=S(t,s);return!!Ee(o,e)}const je=Object.freeze({width:null,height:null}),Pe=Object.freeze({...je,...N}),_t=/(-?[0-9.]*[0-9]+[0-9.]*)/g,kt=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function he(e,t,s){if(t===1)return e;if(s=s||100,typeof e=="number")return Math.ceil(e*t*s)/s;if(typeof e!="string")return e;const o=e.split(_t);if(o===null||!o.length)return e;const n=[];let i=o.shift(),r=kt.test(i);for(;;){if(r){const c=parseFloat(i);isNaN(c)?n.push(i):n.push(Math.ceil(c*t*s)/s)}else n.push(i);if(i=o.shift(),i===void 0)return n.join("");r=!r}}function St(e,t="defs"){let s="";const o=e.indexOf("<"+t);for(;o>=0;){const n=e.indexOf(">",o),i=e.indexOf("",i);if(r===-1)break;s+=e.slice(n+1,i).trim(),e=e.slice(0,o).trim()+e.slice(r+1)}return{defs:s,content:e}}function Tt(e,t){return e?""+e+""+t:t}function Et(e,t,s){const o=St(e);return Tt(o.defs,t+o.content+s)}const Ct=e=>e==="unset"||e==="undefined"||e==="none";function jt(e,t){const s={...$,...e},o={...Pe,...t},n={left:s.left,top:s.top,width:s.width,height:s.height};let i=s.body;[s,o].forEach(w=>{const b=[],p=w.hFlip,u=w.vFlip;let x=w.rotate;p?u?x+=2:(b.push("translate("+(n.width+n.left).toString()+" "+(0-n.top).toString()+")"),b.push("scale(-1 1)"),n.top=n.left=0):u&&(b.push("translate("+(0-n.left).toString()+" "+(n.height+n.top).toString()+")"),b.push("scale(1 -1)"),n.top=n.left=0);let I;switch(x<0&&(x-=Math.floor(x/4)*4),x=x%4,x){case 1:I=n.height/2+n.top,b.unshift("rotate(90 "+I.toString()+" "+I.toString()+")");break;case 2:b.unshift("rotate(180 "+(n.width/2+n.left).toString()+" "+(n.height/2+n.top).toString()+")");break;case 3:I=n.width/2+n.left,b.unshift("rotate(-90 "+I.toString()+" "+I.toString()+")");break}x%2===1&&(n.left!==n.top&&(I=n.left,n.left=n.top,n.top=I),n.width!==n.height&&(I=n.width,n.width=n.height,n.height=I)),b.length&&(i=Et(i,'',""))});const r=o.width,c=o.height,a=n.width,l=n.height;let f,d;r===null?(d=c===null?"1em":c==="auto"?l:c,f=he(d,a/l)):(f=r==="auto"?a:r,d=c===null?he(f,l/a):c==="auto"?l:c);const h={},m=(w,b)=>{Ct(b)||(h[w]=b.toString())};m("width",f),m("height",d);const v=[n.left,n.top,a,l];return h.viewBox=v.join(" "),{attributes:h,viewBox:v,body:i}}const Pt=/\sid="(\S+)"/g,Ot="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let Ft=0;function At(e,t=Ot){const s=[];let o;for(;o=Pt.exec(e);)s.push(o[1]);if(!s.length)return e;const n="suffix"+(Math.random()*16777216|Date.now()).toString(16);return s.forEach(i=>{const r=typeof t=="function"?t(i):t+(Ft++).toString(),c=i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");e=e.replace(new RegExp('([#;"])('+c+')([")]|\\.[a-z])',"g"),"$1"+r+n+"$3")}),e=e.replace(new RegExp(n,"g"),""),e}const K=Object.create(null);function Lt(e,t){K[e]=t}function W(e){return K[e]||K[""]}function J(e){let t;if(typeof e.resources=="string")t=[e.resources];else if(t=e.resources,!(t instanceof Array)||!t.length)return null;return{resources:t,path:e.path||"/",maxURL:e.maxURL||500,rotate:e.rotate||750,timeout:e.timeout||5e3,random:e.random===!0,index:e.index||0,dataAfterTimeout:e.dataAfterTimeout!==!1}}const Z=Object.create(null),E=["https://api.simplesvg.com","https://api.unisvg.com"],D=[];for(;E.length>0;)E.length===1||Math.random()>.5?D.push(E.shift()):D.push(E.pop());Z[""]=J({resources:["https://api.iconify.design"].concat(D)});function Mt(e,t){const s=J(t);return s===null?!1:(Z[e]=s,!0)}function X(e){return Z[e]}const Dt=()=>{let e;try{if(e=fetch,typeof e=="function")return e}catch{}};let pe=Dt();function Nt(e,t){const s=X(e);if(!s)return 0;let o;if(!s.maxURL)o=0;else{let n=0;s.resources.forEach(r=>{n=Math.max(n,r.length)});const i=t+".json?icons=";o=s.maxURL-n-s.path.length-i.length}return o}function Rt(e){return e===404}const $t=(e,t,s)=>{const o=[],n=Nt(e,t),i="icons";let r={type:i,provider:e,prefix:t,icons:[]},c=0;return s.forEach((a,l)=>{c+=a.length+1,c>=n&&l>0&&(o.push(r),r={type:i,provider:e,prefix:t,icons:[]},c=a.length),r.icons.push(a)}),o.push(r),o};function zt(e){if(typeof e=="string"){const t=X(e);if(t)return t.path}return"/"}const qt=(e,t,s)=>{if(!pe){s("abort",424);return}let o=zt(t.provider);switch(t.type){case"icons":{const i=t.prefix,c=t.icons.join(","),a=new URLSearchParams({icons:c});o+=i+".json?"+a.toString();break}case"custom":{const i=t.uri;o+=i.slice(0,1)==="/"?i.slice(1):i;break}default:s("abort",400);return}let n=503;pe(e+o).then(i=>{const r=i.status;if(r!==200){setTimeout(()=>{s(Rt(r)?"abort":"next",r)});return}return n=501,i.json()}).then(i=>{if(typeof i!="object"||i===null){setTimeout(()=>{i===404?s("abort",i):s("next",n)});return}setTimeout(()=>{s("success",i)})}).catch(()=>{s("next",n)})},Ht={prepare:$t,send:qt};function Qt(e){const t={loaded:[],missing:[],pending:[]},s=Object.create(null);e.sort((n,i)=>n.provider!==i.provider?n.provider.localeCompare(i.provider):n.prefix!==i.prefix?n.prefix.localeCompare(i.prefix):n.name.localeCompare(i.name));let o={provider:"",prefix:"",name:""};return e.forEach(n=>{if(o.name===n.name&&o.prefix===n.prefix&&o.provider===n.provider)return;o=n;const i=n.provider,r=n.prefix,c=n.name,a=s[i]||(s[i]=Object.create(null)),l=a[r]||(a[r]=S(i,r));let f;c in l.icons?f=t.loaded:r===""||l.missing.has(c)?f=t.missing:f=t.pending;const d={provider:i,prefix:r,name:c};f.push(d)}),t}function Oe(e,t){e.forEach(s=>{const o=s.loaderCallbacks;o&&(s.loaderCallbacks=o.filter(n=>n.id!==t))})}function Ut(e){e.pendingCallbacksFlag||(e.pendingCallbacksFlag=!0,setTimeout(()=>{e.pendingCallbacksFlag=!1;const t=e.loaderCallbacks?e.loaderCallbacks.slice(0):[];if(!t.length)return;let s=!1;const o=e.provider,n=e.prefix;t.forEach(i=>{const r=i.icons,c=r.pending.length;r.pending=r.pending.filter(a=>{if(a.prefix!==n)return!0;const l=a.name;if(e.icons[l])r.loaded.push({provider:o,prefix:n,name:l});else if(e.missing.has(l))r.missing.push({provider:o,prefix:n,name:l});else return s=!0,!0;return!1}),r.pending.length!==c&&(s||Oe([e],i.id),i.callback(r.loaded.slice(0),r.missing.slice(0),r.pending.slice(0),i.abort))})}))}let Bt=0;function Gt(e,t,s){const o=Bt++,n=Oe.bind(null,s,o);if(!t.pending.length)return n;const i={id:o,icons:t,callback:e,abort:n};return s.forEach(r=>{(r.loaderCallbacks||(r.loaderCallbacks=[])).push(i)}),n}function Vt(e,t=!0,s=!1){const o=[];return e.forEach(n=>{const i=typeof n=="string"?R(n,t,s):n;i&&o.push(i)}),o}var Kt={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function Wt(e,t,s,o){const n=e.resources.length,i=e.random?Math.floor(Math.random()*n):e.index;let r;if(e.random){let g=e.resources.slice(0);for(r=[];g.length>1;){const _=Math.floor(Math.random()*g.length);r.push(g[_]),g=g.slice(0,_).concat(g.slice(_+1))}r=r.concat(g)}else r=e.resources.slice(i).concat(e.resources.slice(0,i));const c=Date.now();let a="pending",l=0,f,d=null,h=[],m=[];typeof o=="function"&&m.push(o);function v(){d&&(clearTimeout(d),d=null)}function w(){a==="pending"&&(a="aborted"),v(),h.forEach(g=>{g.status==="pending"&&(g.status="aborted")}),h=[]}function b(g,_){_&&(m=[]),typeof g=="function"&&m.push(g)}function p(){return{startTime:c,payload:t,status:a,queriesSent:l,queriesPending:h.length,subscribe:b,abort:w}}function u(){a="failed",m.forEach(g=>{g(void 0,f)})}function x(){h.forEach(g=>{g.status==="pending"&&(g.status="aborted")}),h=[]}function I(g,_,T){const O=_!=="success";switch(h=h.filter(k=>k!==g),a){case"pending":break;case"failed":if(O||!e.dataAfterTimeout)return;break;default:return}if(_==="abort"){f=T,u();return}if(O){f=T,h.length||(r.length?z():u());return}if(v(),x(),!e.random){const k=e.resources.indexOf(g.resource);k!==-1&&k!==e.index&&(e.index=k)}a="completed",m.forEach(k=>{k(T)})}function z(){if(a!=="pending")return;v();const g=r.shift();if(g===void 0){if(h.length){d=setTimeout(()=>{v(),a==="pending"&&(x(),u())},e.timeout);return}u();return}const _={status:"pending",resource:g,callback:(T,O)=>{I(_,T,O)}};h.push(_),l++,d=setTimeout(z,e.rotate),s(g,t,_.callback)}return setTimeout(z),p}function Fe(e){const t={...Kt,...e};let s=[];function o(){s=s.filter(c=>c().status==="pending")}function n(c,a,l){const f=Wt(t,c,a,(d,h)=>{o(),l&&l(d,h)});return s.push(f),f}function i(c){return s.find(a=>c(a))||null}return{query:n,find:i,setIndex:c=>{t.index=c},getIndex:()=>t.index,cleanup:o}}function ge(){}const U=Object.create(null);function Yt(e){if(!U[e]){const t=X(e);if(!t)return;const s=Fe(t),o={config:t,redundancy:s};U[e]=o}return U[e]}function Jt(e,t,s){let o,n;if(typeof e=="string"){const i=W(e);if(!i)return s(void 0,424),ge;n=i.send;const r=Yt(e);r&&(o=r.redundancy)}else{const i=J(e);if(i){o=Fe(i);const r=e.resources?e.resources[0]:"",c=W(r);c&&(n=c.send)}}return!o||!n?(s(void 0,424),ge):o.query(t,n,s)().abort}function me(){}function Zt(e){e.iconsLoaderFlag||(e.iconsLoaderFlag=!0,setTimeout(()=>{e.iconsLoaderFlag=!1,Ut(e)}))}function Xt(e){const t=[],s=[];return e.forEach(o=>{(o.match(_e)?t:s).push(o)}),{valid:t,invalid:s}}function C(e,t,s){function o(){const n=e.pendingIcons;t.forEach(i=>{n&&n.delete(i),e.icons[i]||e.missing.add(i)})}if(s&&typeof s=="object")try{if(!Ee(e,s).length){o();return}}catch(n){console.error(n)}o(),Zt(e)}function ye(e,t){e instanceof Promise?e.then(s=>{t(s)}).catch(()=>{t(null)}):t(e)}function en(e,t){e.iconsToLoad?e.iconsToLoad=e.iconsToLoad.concat(t).sort():e.iconsToLoad=t,e.iconsQueueFlag||(e.iconsQueueFlag=!0,setTimeout(()=>{e.iconsQueueFlag=!1;const{provider:s,prefix:o}=e,n=e.iconsToLoad;if(delete e.iconsToLoad,!n||!n.length)return;const i=e.loadIcon;if(e.loadIcons&&(n.length>1||!i)){ye(e.loadIcons(n,o,s),f=>{C(e,n,f)});return}if(i){n.forEach(f=>{const d=i(f,o,s);ye(d,h=>{const m=h?{prefix:o,icons:{[f]:h}}:null;C(e,[f],m)})});return}const{valid:r,invalid:c}=Xt(n);if(c.length&&C(e,c,null),!r.length)return;const a=o.match(_e)?W(s):null;if(!a){C(e,r,null);return}a.prepare(s,o,r).forEach(f=>{Jt(s,f,d=>{C(e,f.icons,d)})})}))}const tn=(e,t)=>{const s=Vt(e,!0,Ce()),o=Qt(s);if(!o.pending.length){let a=!0;return t&&setTimeout(()=>{a&&t(o.loaded,o.missing,o.pending,me)}),()=>{a=!1}}const n=Object.create(null),i=[];let r,c;return o.pending.forEach(a=>{const{provider:l,prefix:f}=a;if(f===c&&l===r)return;r=l,c=f,i.push(S(l,f));const d=n[l]||(n[l]=Object.create(null));d[f]||(d[f]=[])}),o.pending.forEach(a=>{const{provider:l,prefix:f,name:d}=a,h=S(l,f),m=h.pendingIcons||(h.pendingIcons=new Set);m.has(d)||(m.add(d),n[l][f].push(d))}),i.forEach(a=>{const l=n[a.provider][a.prefix];l.length&&en(a,l)}),t?Gt(t,o,i):me};function nn(e,t){const s={...e};for(const o in t){const n=t[o],i=typeof n;o in je?(n===null||n&&(i==="string"||i==="number"))&&(s[o]=n):i===typeof s[o]&&(s[o]=o==="rotate"?n%4:n)}return s}const sn=/[\s,]+/;function on(e,t){t.split(sn).forEach(s=>{switch(s.trim()){case"horizontal":e.hFlip=!0;break;case"vertical":e.vFlip=!0;break}})}function rn(e,t=0){const s=e.replace(/^-?[0-9.]*/,"");function o(n){for(;n<0;)n+=4;return n%4}if(s===""){const n=parseInt(e);return isNaN(n)?0:o(n)}else if(s!==e){let n=0;switch(s){case"%":n=25;break;case"deg":n=90}if(n){let i=parseFloat(e.slice(0,e.length-s.length));return isNaN(i)?0:(i=i/n,i%1===0?o(i):0)}}return t}function cn(e,t){let s=e.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const o in t)s+=" "+o+'="'+t[o]+'"';return'"+e+""}function an(e){return e.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(//g,"%3E").replace(/\s+/g," ")}function ln(e){return"data:image/svg+xml,"+an(e)}function fn(e){return'url("'+ln(e)+'")'}const be={...Pe,inline:!1},un={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},dn={display:"inline-block"},Y={"background-color":"currentColor"},Ae={"background-color":"transparent"},ve={image:"var(--svg)",repeat:"no-repeat",size:"100% 100%"},xe={"-webkit-mask":Y,mask:Y,background:Ae};for(const e in xe){const t=xe[e];for(const s in ve)t[e+"-"+s]=ve[s]}function hn(e){return e+(e.match(/^[-0-9.]+$/)?"px":"")}function pn(e,t){const s=nn(be,t),o=t.mode||"svg",n=o==="svg"?{...un}:{};e.body.indexOf("xlink:")===-1&&delete n["xmlns:xlink"];let i=typeof t.style=="string"?t.style:"";for(let p in t){const u=t[p];if(u!==void 0)switch(p){case"icon":case"style":case"onLoad":case"mode":case"ssr":break;case"inline":case"hFlip":case"vFlip":s[p]=u===!0||u==="true"||u===1;break;case"flip":typeof u=="string"&&on(s,u);break;case"color":i=i+(i.length>0&&i.trim().slice(-1)!==";"?";":"")+"color: "+u+"; ";break;case"rotate":typeof u=="string"?s[p]=rn(u):typeof u=="number"&&(s[p]=u);break;case"ariaHidden":case"aria-hidden":u!==!0&&u!=="true"&&delete n["aria-hidden"];break;default:if(p.slice(0,3)==="on:")break;be[p]===void 0&&(n[p]=u)}}const r=jt(e,s),c=r.attributes;if(s.inline&&(i="vertical-align: -0.125em; "+i),o==="svg"){Object.assign(n,c),i!==""&&(n.style=i);let p=0,u=t.id;return typeof u=="string"&&(u=u.replace(/-/g,"_")),{svg:!0,attributes:n,body:At(r.body,u?()=>u+"ID"+p++:"iconifySvelte")}}const{body:a,width:l,height:f}=e,d=o==="mask"||(o==="bg"?!1:a.indexOf("currentColor")!==-1),h=cn(a,{...c,width:l+"",height:f+""}),v={"--svg":fn(h)},w=p=>{const u=c[p];u&&(v[p]=hn(u))};w("width"),w("height"),Object.assign(v,dn,d?Y:Ae);let b="";for(const p in v)b+=p+": "+v[p]+";";return n.style=b+i,{svg:!1,attributes:n}}Ce(!0);Lt("",Ht);if(typeof document<"u"&&typeof window<"u"){const e=window;if(e.IconifyPreload!==void 0){const t=e.IconifyPreload,s="Invalid IconifyPreload syntax.";typeof t=="object"&&t!==null&&(t instanceof Array?t:[t]).forEach(o=>{try{(typeof o!="object"||o===null||o instanceof Array||typeof o.icons!="object"||typeof o.prefix!="string"||!It(o))&&console.error(s)}catch{console.error(s)}})}if(e.IconifyProviders!==void 0){const t=e.IconifyProviders;if(typeof t=="object"&&t!==null)for(let s in t){const o="IconifyProviders["+s+"] is invalid.";try{const n=t[s];if(typeof n!="object"||!n||n.resources===void 0)continue;Mt(s,n)||console.error(o)}catch{console.error(o)}}}}function gn(e,t,s,o,n){function i(){t.loading&&(t.loading.abort(),t.loading=null)}if(typeof e=="object"&&e!==null&&typeof e.body=="string")return t.name="",i(),{data:{...$,...e}};let r;if(typeof e!="string"||(r=R(e,!1,!0))===null)return i(),null;const c=xt(r);if(!c)return s&&(!t.loading||t.loading.name!==e)&&(i(),t.name="",t.loading={name:e,abort:tn([r],o)}),null;i(),t.name!==e&&(t.name=e,n&&!t.destroyed&&n(e));const a=["iconify"];return r.prefix!==""&&a.push("iconify--"+r.prefix),r.provider!==""&&a.push("iconify--"+r.provider),{data:c,classes:a}}function we(e,t){return e?pn({...$,...e},t):null}var mn=ft(""),yn=ut("");function xn(e,t){const s=Le(t,["children","$$slots","$$events","$$legacy"]);it(t,!1);const o=L({name:"",loading:null,destroyed:!1});let n=L(!1),i=L(0),r=L();const c=h=>{typeof s.onLoad=="function"&&s.onLoad(h),Re()("load",{icon:h})};function a(){ct(i)}Me(()=>{ae(n,!0)}),De(()=>{H(o,y(o).destroyed=!0),y(o).loading&&(y(o).loading.abort(),H(o,y(o).loading=null))}),nt(()=>(y(i),rt(s),y(n),y(o),y(r),we),()=>{y(i);const h=!!s.ssr||y(n),m=gn(s.icon,y(o),h,a,c);ae(r,m?we(m.data,s):null),y(r)&&m.classes&&H(r,y(r).attributes.class=(typeof s.class=="string"?s.class+" ":"")+m.classes.join(" "))}),st(),Ne();var l=re(),f=ce(l);{var d=h=>{var m=re(),v=ce(m);{var w=p=>{var u=mn();ee(u,()=>({...y(r).attributes}));var x=at(u);ht(x,()=>(y(r),le(()=>y(r).body)),!0),lt(u),A(p,u)},b=p=>{var u=yn();ee(u,()=>({...y(r).attributes})),A(p,u)};fe(v,p=>{y(r),le(()=>y(r).svg)?p(w):p(b,!1)})}A(h,m)};fe(f,h=>{y(r)&&h(d)})}A(e,l),ot()}export{xn as I,ht as h,fe as i}; diff --git a/_astro/KaTeX_AMS-Regular.BQhdFMY1.woff2 b/_astro/KaTeX_AMS-Regular.BQhdFMY1.woff2 new file mode 100644 index 0000000..0acaaff Binary files /dev/null and b/_astro/KaTeX_AMS-Regular.BQhdFMY1.woff2 differ diff --git a/_astro/KaTeX_AMS-Regular.DMm9YOAa.woff b/_astro/KaTeX_AMS-Regular.DMm9YOAa.woff new file mode 100644 index 0000000..b804d7b Binary files /dev/null and b/_astro/KaTeX_AMS-Regular.DMm9YOAa.woff differ diff --git a/_astro/KaTeX_AMS-Regular.DRggAlZN.ttf b/_astro/KaTeX_AMS-Regular.DRggAlZN.ttf new file mode 100644 index 0000000..c6f9a5e Binary files /dev/null and b/_astro/KaTeX_AMS-Regular.DRggAlZN.ttf differ diff --git a/_astro/KaTeX_Caligraphic-Bold.ATXxdsX0.ttf b/_astro/KaTeX_Caligraphic-Bold.ATXxdsX0.ttf new file mode 100644 index 0000000..9ff4a5e Binary files /dev/null and b/_astro/KaTeX_Caligraphic-Bold.ATXxdsX0.ttf differ diff --git a/_astro/KaTeX_Caligraphic-Bold.BEiXGLvX.woff b/_astro/KaTeX_Caligraphic-Bold.BEiXGLvX.woff new file mode 100644 index 0000000..9759710 Binary files /dev/null and b/_astro/KaTeX_Caligraphic-Bold.BEiXGLvX.woff differ diff --git a/_astro/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2 b/_astro/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2 new file mode 100644 index 0000000..f390922 Binary files /dev/null and b/_astro/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2 differ diff --git a/_astro/KaTeX_Caligraphic-Regular.CTRA-rTL.woff b/_astro/KaTeX_Caligraphic-Regular.CTRA-rTL.woff new file mode 100644 index 0000000..9bdd534 Binary files /dev/null and b/_astro/KaTeX_Caligraphic-Regular.CTRA-rTL.woff differ diff --git a/_astro/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2 b/_astro/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2 new file mode 100644 index 0000000..75344a1 Binary files /dev/null and b/_astro/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2 differ diff --git a/_astro/KaTeX_Caligraphic-Regular.wX97UBjC.ttf b/_astro/KaTeX_Caligraphic-Regular.wX97UBjC.ttf new file mode 100644 index 0000000..f522294 Binary files /dev/null and b/_astro/KaTeX_Caligraphic-Regular.wX97UBjC.ttf differ diff --git a/_astro/KaTeX_Fraktur-Bold.BdnERNNW.ttf b/_astro/KaTeX_Fraktur-Bold.BdnERNNW.ttf new file mode 100644 index 0000000..4e98259 Binary files /dev/null and b/_astro/KaTeX_Fraktur-Bold.BdnERNNW.ttf differ diff --git a/_astro/KaTeX_Fraktur-Bold.BsDP51OF.woff b/_astro/KaTeX_Fraktur-Bold.BsDP51OF.woff new file mode 100644 index 0000000..e7730f6 Binary files /dev/null and b/_astro/KaTeX_Fraktur-Bold.BsDP51OF.woff differ diff --git a/_astro/KaTeX_Fraktur-Bold.CL6g_b3V.woff2 b/_astro/KaTeX_Fraktur-Bold.CL6g_b3V.woff2 new file mode 100644 index 0000000..395f28b Binary files /dev/null and b/_astro/KaTeX_Fraktur-Bold.CL6g_b3V.woff2 differ diff --git a/_astro/KaTeX_Fraktur-Regular.CB_wures.ttf b/_astro/KaTeX_Fraktur-Regular.CB_wures.ttf new file mode 100644 index 0000000..b8461b2 Binary files /dev/null and b/_astro/KaTeX_Fraktur-Regular.CB_wures.ttf differ diff --git a/_astro/KaTeX_Fraktur-Regular.CTYiF6lA.woff2 b/_astro/KaTeX_Fraktur-Regular.CTYiF6lA.woff2 new file mode 100644 index 0000000..735f694 Binary files /dev/null and b/_astro/KaTeX_Fraktur-Regular.CTYiF6lA.woff2 differ diff --git a/_astro/KaTeX_Fraktur-Regular.Dxdc4cR9.woff b/_astro/KaTeX_Fraktur-Regular.Dxdc4cR9.woff new file mode 100644 index 0000000..acab069 Binary files /dev/null and b/_astro/KaTeX_Fraktur-Regular.Dxdc4cR9.woff differ diff --git a/_astro/KaTeX_Main-Bold.Cx986IdX.woff2 b/_astro/KaTeX_Main-Bold.Cx986IdX.woff2 new file mode 100644 index 0000000..ab2ad21 Binary files /dev/null and b/_astro/KaTeX_Main-Bold.Cx986IdX.woff2 differ diff --git a/_astro/KaTeX_Main-Bold.Jm3AIy58.woff b/_astro/KaTeX_Main-Bold.Jm3AIy58.woff new file mode 100644 index 0000000..f38136a Binary files /dev/null and b/_astro/KaTeX_Main-Bold.Jm3AIy58.woff differ diff --git a/_astro/KaTeX_Main-Bold.waoOVXN0.ttf b/_astro/KaTeX_Main-Bold.waoOVXN0.ttf new file mode 100644 index 0000000..4060e62 Binary files /dev/null and b/_astro/KaTeX_Main-Bold.waoOVXN0.ttf differ diff --git a/_astro/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2 b/_astro/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2 new file mode 100644 index 0000000..5931794 Binary files /dev/null and b/_astro/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2 differ diff --git a/_astro/KaTeX_Main-BoldItalic.DzxPMmG6.ttf b/_astro/KaTeX_Main-BoldItalic.DzxPMmG6.ttf new file mode 100644 index 0000000..dc00797 Binary files /dev/null and b/_astro/KaTeX_Main-BoldItalic.DzxPMmG6.ttf differ diff --git a/_astro/KaTeX_Main-BoldItalic.SpSLRI95.woff b/_astro/KaTeX_Main-BoldItalic.SpSLRI95.woff new file mode 100644 index 0000000..67807b0 Binary files /dev/null and b/_astro/KaTeX_Main-BoldItalic.SpSLRI95.woff differ diff --git a/_astro/KaTeX_Main-Italic.3WenGoN9.ttf b/_astro/KaTeX_Main-Italic.3WenGoN9.ttf new file mode 100644 index 0000000..0e9b0f3 Binary files /dev/null and b/_astro/KaTeX_Main-Italic.3WenGoN9.ttf differ diff --git a/_astro/KaTeX_Main-Italic.BMLOBm91.woff b/_astro/KaTeX_Main-Italic.BMLOBm91.woff new file mode 100644 index 0000000..6f43b59 Binary files /dev/null and b/_astro/KaTeX_Main-Italic.BMLOBm91.woff differ diff --git a/_astro/KaTeX_Main-Italic.NWA7e6Wa.woff2 b/_astro/KaTeX_Main-Italic.NWA7e6Wa.woff2 new file mode 100644 index 0000000..b50920e Binary files /dev/null and b/_astro/KaTeX_Main-Italic.NWA7e6Wa.woff2 differ diff --git a/_astro/KaTeX_Main-Regular.B22Nviop.woff2 b/_astro/KaTeX_Main-Regular.B22Nviop.woff2 new file mode 100644 index 0000000..eb24a7b Binary files /dev/null and b/_astro/KaTeX_Main-Regular.B22Nviop.woff2 differ diff --git a/_astro/KaTeX_Main-Regular.Dr94JaBh.woff b/_astro/KaTeX_Main-Regular.Dr94JaBh.woff new file mode 100644 index 0000000..21f5812 Binary files /dev/null and b/_astro/KaTeX_Main-Regular.Dr94JaBh.woff differ diff --git a/_astro/KaTeX_Main-Regular.ypZvNtVU.ttf b/_astro/KaTeX_Main-Regular.ypZvNtVU.ttf new file mode 100644 index 0000000..dd45e1e Binary files /dev/null and b/_astro/KaTeX_Main-Regular.ypZvNtVU.ttf differ diff --git a/_astro/KaTeX_Math-BoldItalic.B3XSjfu4.ttf b/_astro/KaTeX_Math-BoldItalic.B3XSjfu4.ttf new file mode 100644 index 0000000..728ce7a Binary files /dev/null and b/_astro/KaTeX_Math-BoldItalic.B3XSjfu4.ttf differ diff --git a/_astro/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2 b/_astro/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2 new file mode 100644 index 0000000..2965702 Binary files /dev/null and b/_astro/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2 differ diff --git a/_astro/KaTeX_Math-BoldItalic.iY-2wyZ7.woff b/_astro/KaTeX_Math-BoldItalic.iY-2wyZ7.woff new file mode 100644 index 0000000..0ae390d Binary files /dev/null and b/_astro/KaTeX_Math-BoldItalic.iY-2wyZ7.woff differ diff --git a/_astro/KaTeX_Math-Italic.DA0__PXp.woff b/_astro/KaTeX_Math-Italic.DA0__PXp.woff new file mode 100644 index 0000000..eb5159d Binary files /dev/null and b/_astro/KaTeX_Math-Italic.DA0__PXp.woff differ diff --git a/_astro/KaTeX_Math-Italic.flOr_0UB.ttf b/_astro/KaTeX_Math-Italic.flOr_0UB.ttf new file mode 100644 index 0000000..70d559b Binary files /dev/null and b/_astro/KaTeX_Math-Italic.flOr_0UB.ttf differ diff --git a/_astro/KaTeX_Math-Italic.t53AETM-.woff2 b/_astro/KaTeX_Math-Italic.t53AETM-.woff2 new file mode 100644 index 0000000..215c143 Binary files /dev/null and b/_astro/KaTeX_Math-Italic.t53AETM-.woff2 differ diff --git a/_astro/KaTeX_SansSerif-Bold.CFMepnvq.ttf b/_astro/KaTeX_SansSerif-Bold.CFMepnvq.ttf new file mode 100644 index 0000000..2f65a8a Binary files /dev/null and b/_astro/KaTeX_SansSerif-Bold.CFMepnvq.ttf differ diff --git a/_astro/KaTeX_SansSerif-Bold.D1sUS0GD.woff2 b/_astro/KaTeX_SansSerif-Bold.D1sUS0GD.woff2 new file mode 100644 index 0000000..cfaa3bd Binary files /dev/null and b/_astro/KaTeX_SansSerif-Bold.D1sUS0GD.woff2 differ diff --git a/_astro/KaTeX_SansSerif-Bold.DbIhKOiC.woff b/_astro/KaTeX_SansSerif-Bold.DbIhKOiC.woff new file mode 100644 index 0000000..8d47c02 Binary files /dev/null and b/_astro/KaTeX_SansSerif-Bold.DbIhKOiC.woff differ diff --git a/_astro/KaTeX_SansSerif-Italic.C3H0VqGB.woff2 b/_astro/KaTeX_SansSerif-Italic.C3H0VqGB.woff2 new file mode 100644 index 0000000..349c06d Binary files /dev/null and b/_astro/KaTeX_SansSerif-Italic.C3H0VqGB.woff2 differ diff --git a/_astro/KaTeX_SansSerif-Italic.DN2j7dab.woff b/_astro/KaTeX_SansSerif-Italic.DN2j7dab.woff new file mode 100644 index 0000000..7e02df9 Binary files /dev/null and b/_astro/KaTeX_SansSerif-Italic.DN2j7dab.woff differ diff --git a/_astro/KaTeX_SansSerif-Italic.YYjJ1zSn.ttf b/_astro/KaTeX_SansSerif-Italic.YYjJ1zSn.ttf new file mode 100644 index 0000000..d5850df Binary files /dev/null and b/_astro/KaTeX_SansSerif-Italic.YYjJ1zSn.ttf differ diff --git a/_astro/KaTeX_SansSerif-Regular.BNo7hRIc.ttf b/_astro/KaTeX_SansSerif-Regular.BNo7hRIc.ttf new file mode 100644 index 0000000..537279f Binary files /dev/null and b/_astro/KaTeX_SansSerif-Regular.BNo7hRIc.ttf differ diff --git a/_astro/KaTeX_SansSerif-Regular.CS6fqUqJ.woff b/_astro/KaTeX_SansSerif-Regular.CS6fqUqJ.woff new file mode 100644 index 0000000..31b8482 Binary files /dev/null and b/_astro/KaTeX_SansSerif-Regular.CS6fqUqJ.woff differ diff --git a/_astro/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2 b/_astro/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2 new file mode 100644 index 0000000..a90eea8 Binary files /dev/null and b/_astro/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2 differ diff --git a/_astro/KaTeX_Script-Regular.C5JkGWo-.ttf b/_astro/KaTeX_Script-Regular.C5JkGWo-.ttf new file mode 100644 index 0000000..fd679bf Binary files /dev/null and b/_astro/KaTeX_Script-Regular.C5JkGWo-.ttf differ diff --git a/_astro/KaTeX_Script-Regular.D3wIWfF6.woff2 b/_astro/KaTeX_Script-Regular.D3wIWfF6.woff2 new file mode 100644 index 0000000..b3048fc Binary files /dev/null and b/_astro/KaTeX_Script-Regular.D3wIWfF6.woff2 differ diff --git a/_astro/KaTeX_Script-Regular.D5yQViql.woff b/_astro/KaTeX_Script-Regular.D5yQViql.woff new file mode 100644 index 0000000..0e7da82 Binary files /dev/null and b/_astro/KaTeX_Script-Regular.D5yQViql.woff differ diff --git a/_astro/KaTeX_Size1-Regular.C195tn64.woff b/_astro/KaTeX_Size1-Regular.C195tn64.woff new file mode 100644 index 0000000..7f292d9 Binary files /dev/null and b/_astro/KaTeX_Size1-Regular.C195tn64.woff differ diff --git a/_astro/KaTeX_Size1-Regular.Dbsnue_I.ttf b/_astro/KaTeX_Size1-Regular.Dbsnue_I.ttf new file mode 100644 index 0000000..871fd7d Binary files /dev/null and b/_astro/KaTeX_Size1-Regular.Dbsnue_I.ttf differ diff --git a/_astro/KaTeX_Size1-Regular.mCD8mA8B.woff2 b/_astro/KaTeX_Size1-Regular.mCD8mA8B.woff2 new file mode 100644 index 0000000..c5a8462 Binary files /dev/null and b/_astro/KaTeX_Size1-Regular.mCD8mA8B.woff2 differ diff --git a/_astro/KaTeX_Size2-Regular.B7gKUWhC.ttf b/_astro/KaTeX_Size2-Regular.B7gKUWhC.ttf new file mode 100644 index 0000000..7a212ca Binary files /dev/null and b/_astro/KaTeX_Size2-Regular.B7gKUWhC.ttf differ diff --git a/_astro/KaTeX_Size2-Regular.Dy4dx90m.woff2 b/_astro/KaTeX_Size2-Regular.Dy4dx90m.woff2 new file mode 100644 index 0000000..e1bccfe Binary files /dev/null and b/_astro/KaTeX_Size2-Regular.Dy4dx90m.woff2 differ diff --git a/_astro/KaTeX_Size2-Regular.oD1tc_U0.woff b/_astro/KaTeX_Size2-Regular.oD1tc_U0.woff new file mode 100644 index 0000000..d241d9b Binary files /dev/null and b/_astro/KaTeX_Size2-Regular.oD1tc_U0.woff differ diff --git a/_astro/KaTeX_Size3-Regular.CTq5MqoE.woff b/_astro/KaTeX_Size3-Regular.CTq5MqoE.woff new file mode 100644 index 0000000..e6e9b65 Binary files /dev/null and b/_astro/KaTeX_Size3-Regular.CTq5MqoE.woff differ diff --git a/_astro/KaTeX_Size3-Regular.DgpXs0kz.ttf b/_astro/KaTeX_Size3-Regular.DgpXs0kz.ttf new file mode 100644 index 0000000..00bff34 Binary files /dev/null and b/_astro/KaTeX_Size3-Regular.DgpXs0kz.ttf differ diff --git a/_astro/KaTeX_Size4-Regular.BF-4gkZK.woff b/_astro/KaTeX_Size4-Regular.BF-4gkZK.woff new file mode 100644 index 0000000..e1ec545 Binary files /dev/null and b/_astro/KaTeX_Size4-Regular.BF-4gkZK.woff differ diff --git a/_astro/KaTeX_Size4-Regular.DWFBv043.ttf b/_astro/KaTeX_Size4-Regular.DWFBv043.ttf new file mode 100644 index 0000000..74f0892 Binary files /dev/null and b/_astro/KaTeX_Size4-Regular.DWFBv043.ttf differ diff --git a/_astro/KaTeX_Size4-Regular.Dl5lxZxV.woff2 b/_astro/KaTeX_Size4-Regular.Dl5lxZxV.woff2 new file mode 100644 index 0000000..680c130 Binary files /dev/null and b/_astro/KaTeX_Size4-Regular.Dl5lxZxV.woff2 differ diff --git a/_astro/KaTeX_Typewriter-Regular.C0xS9mPB.woff b/_astro/KaTeX_Typewriter-Regular.C0xS9mPB.woff new file mode 100644 index 0000000..2432419 Binary files /dev/null and b/_astro/KaTeX_Typewriter-Regular.C0xS9mPB.woff differ diff --git a/_astro/KaTeX_Typewriter-Regular.CO6r4hn1.woff2 b/_astro/KaTeX_Typewriter-Regular.CO6r4hn1.woff2 new file mode 100644 index 0000000..771f1af Binary files /dev/null and b/_astro/KaTeX_Typewriter-Regular.CO6r4hn1.woff2 differ diff --git a/_astro/KaTeX_Typewriter-Regular.D3Ib7_Hf.ttf b/_astro/KaTeX_Typewriter-Regular.D3Ib7_Hf.ttf new file mode 100644 index 0000000..c83252c Binary files /dev/null and b/_astro/KaTeX_Typewriter-Regular.D3Ib7_Hf.ttf differ diff --git a/_astro/Layout.CcrqmrpS.css b/_astro/Layout.CcrqmrpS.css new file mode 100644 index 0000000..d0b0e0b --- /dev/null +++ b/_astro/Layout.CcrqmrpS.css @@ -0,0 +1,9 @@ +/*! + * OverlayScrollbars + * Version: 2.14.0 + * + * Copyright (c) Rene Haas | KingSora. + * https://github.com/KingSora + * + * Released under the MIT license. + */.os-size-observer,.os-size-observer-listener{scroll-behavior:auto!important;direction:inherit;pointer-events:none;overflow:hidden;visibility:hidden;box-sizing:border-box}.os-size-observer,.os-size-observer-listener,.os-size-observer-listener-item,.os-size-observer-listener-item-final{writing-mode:horizontal-tb;position:absolute;left:0;top:0}.os-size-observer{z-index:-1;contain:strict;display:flex;flex-direction:row;flex-wrap:nowrap;padding:inherit;border:inherit;box-sizing:inherit;margin:-133px;inset:0;transform:scale(.1)}.os-size-observer:before{content:"";flex:none;box-sizing:inherit;padding:10px;width:10px;height:10px}.os-size-observer-appear{animation:os-size-observer-appear-animation 1ms forwards}.os-size-observer-listener{box-sizing:border-box;position:relative;flex:auto;padding:inherit;border:inherit;margin:-133px;transform:scale(10)}.os-size-observer-listener.ltr{margin-right:-266px;margin-left:0}.os-size-observer-listener.rtl{margin-left:-266px;margin-right:0}.os-size-observer-listener:empty:before{content:"";width:100%;height:100%}.os-size-observer-listener:empty:before,.os-size-observer-listener>.os-size-observer-listener-item{display:block;position:relative;padding:inherit;border:inherit;box-sizing:content-box;flex:auto}.os-size-observer-listener-scroll{box-sizing:border-box;display:flex}.os-size-observer-listener-item{right:0;bottom:0;overflow:hidden;direction:ltr;flex:none}.os-size-observer-listener-item-final{transition:none}@keyframes os-size-observer-appear-animation{0%{cursor:auto}to{cursor:none}}.os-trinsic-observer{flex:none;box-sizing:border-box;position:relative;max-width:0px;max-height:1px;padding:0;margin:0;border:none;overflow:hidden;z-index:-1;height:0;top:calc(100% + 1px);contain:strict}.os-trinsic-observer:not(:empty){height:calc(100% + 1px);top:-1px}.os-trinsic-observer:not(:empty)>.os-size-observer{width:1000%;height:1000%;min-height:1px;min-width:1px}[data-overlayscrollbars-initialize]:not([data-overlayscrollbars-viewport]),[data-overlayscrollbars-viewport~=scrollbarHidden],html[data-overlayscrollbars-viewport~=scrollbarHidden]>body{scrollbar-width:none!important}[data-overlayscrollbars-initialize]:not([data-overlayscrollbars-viewport])::-webkit-scrollbar,[data-overlayscrollbars-initialize]:not([data-overlayscrollbars-viewport])::-webkit-scrollbar-corner,[data-overlayscrollbars-viewport~=scrollbarHidden]::-webkit-scrollbar,[data-overlayscrollbars-viewport~=scrollbarHidden]::-webkit-scrollbar-corner,html[data-overlayscrollbars-viewport~=scrollbarHidden]>body::-webkit-scrollbar,html[data-overlayscrollbars-viewport~=scrollbarHidden]>body::-webkit-scrollbar-corner{-webkit-appearance:none!important;appearance:none!important;display:none!important;width:0!important;height:0!important}[data-overlayscrollbars-initialize]:not([data-overlayscrollbars]):not(html):not(body){overflow:auto}html[data-overlayscrollbars-body]{overflow:hidden}html[data-overlayscrollbars-body],html[data-overlayscrollbars-body]>body{width:100%;height:100%;margin:0}html[data-overlayscrollbars-body]>body{overflow:visible;margin:0}[data-overlayscrollbars]{position:relative}[data-overlayscrollbars~=host],[data-overlayscrollbars-padding]{display:flex;align-items:stretch!important;flex-direction:row!important;flex-wrap:nowrap!important;scroll-behavior:auto!important}[data-overlayscrollbars-padding],[data-overlayscrollbars-viewport]:not([data-overlayscrollbars]){box-sizing:inherit;position:relative;flex:auto;height:auto;width:100%;min-width:0;padding:0;margin:0;border:none;z-index:0}[data-overlayscrollbars-viewport]:not([data-overlayscrollbars]){--os-vaw: 0;--os-vah: 0;outline:none}[data-overlayscrollbars-viewport]:not([data-overlayscrollbars]):focus{outline:none}[data-overlayscrollbars-viewport][data-overlayscrollbars-viewport~=arrange]:before{content:"";position:absolute;pointer-events:none;z-index:-1;min-width:1px;min-height:1px;width:var(--os-vaw);height:var(--os-vah)}[data-overlayscrollbars~=host],[data-overlayscrollbars-padding]{overflow:hidden!important}[data-overlayscrollbars~=host][data-overlayscrollbars~=noClipping],[data-overlayscrollbars-padding~=noClipping]{overflow:visible!important}[data-overlayscrollbars-viewport]{--os-viewport-overflow-x: hidden;--os-viewport-overflow-y: hidden;overflow-x:var(--os-viewport-overflow-x);overflow-y:var(--os-viewport-overflow-y)}[data-overlayscrollbars-viewport~=overflowXVisible]{--os-viewport-overflow-x: visible}[data-overlayscrollbars-viewport~=overflowXHidden]{--os-viewport-overflow-x: hidden}[data-overlayscrollbars-viewport~=overflowXScroll]{--os-viewport-overflow-x: scroll}[data-overlayscrollbars-viewport~=overflowYVisible]{--os-viewport-overflow-y: visible}[data-overlayscrollbars-viewport~=overflowYHidden]{--os-viewport-overflow-y: hidden}[data-overlayscrollbars-viewport~=overflowYScroll]{--os-viewport-overflow-y: scroll}[data-overlayscrollbars-viewport~=overflowImportant]{overflow-x:var(--os-viewport-overflow-x)!important;overflow-y:var(--os-viewport-overflow-y)!important}[data-overlayscrollbars-viewport~=noContent]:not(#osFakeId){font-size:0!important;line-height:0!important}[data-overlayscrollbars-viewport~=noContent]:not(#osFakeId):before,[data-overlayscrollbars-viewport~=noContent]:not(#osFakeId):after,[data-overlayscrollbars-viewport~=noContent]:not(#osFakeId)>*:not(#osFakeId){display:none!important;position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border-width:0!important}[data-overlayscrollbars-viewport~=measuring],[data-overlayscrollbars-viewport~=scrolling]{scroll-behavior:auto!important;scroll-snap-type:none!important}[data-overlayscrollbars-viewport~=measuring][data-overlayscrollbars-viewport~=overflowXVisible]{overflow-x:hidden!important}[data-overlayscrollbars-viewport~=measuring][data-overlayscrollbars-viewport~=overflowYVisible]{overflow-y:hidden!important}[data-overlayscrollbars-content]{box-sizing:inherit}[data-overlayscrollbars-contents]:not(#osFakeId):not([data-overlayscrollbars-padding]):not([data-overlayscrollbars-viewport]):not([data-overlayscrollbars-content]){display:contents}[data-overlayscrollbars-grid],[data-overlayscrollbars-grid] [data-overlayscrollbars-padding]{display:grid;grid-template:1fr/1fr}[data-overlayscrollbars-grid]>[data-overlayscrollbars-padding],[data-overlayscrollbars-grid]>[data-overlayscrollbars-viewport],[data-overlayscrollbars-grid]>[data-overlayscrollbars-padding]>[data-overlayscrollbars-viewport]{height:auto!important;width:auto!important}@property --os-scroll-percent{syntax: ""; inherits: true; initial-value: 0;}@property --os-viewport-percent{syntax: ""; inherits: true; initial-value: 0;}.os-scrollbar{--os-viewport-percent: 0;--os-scroll-percent: 0;--os-scroll-direction: 0;--os-scroll-percent-directional: calc( var(--os-scroll-percent) - (var(--os-scroll-percent) + (1 - var(--os-scroll-percent)) * -1) * var(--os-scroll-direction) );contain:size layout;contain:size layout style;transition:opacity .15s,visibility .15s,top .15s,right .15s,bottom .15s,left .15s;pointer-events:none;position:absolute;opacity:0;visibility:hidden}body>.os-scrollbar{position:fixed;z-index:99999}.os-scrollbar-transitionless{transition:none!important}.os-scrollbar-track{position:relative;padding:0!important;border:none!important}.os-scrollbar-handle{position:absolute}.os-scrollbar-track,.os-scrollbar-handle{pointer-events:none;width:100%;height:100%}.os-scrollbar.os-scrollbar-track-interactive .os-scrollbar-track,.os-scrollbar.os-scrollbar-handle-interactive .os-scrollbar-handle{pointer-events:auto;touch-action:none}.os-scrollbar-horizontal{bottom:0;left:0}.os-scrollbar-vertical{top:0;right:0}.os-scrollbar-rtl.os-scrollbar-horizontal{right:0}.os-scrollbar-rtl.os-scrollbar-vertical{right:auto;left:0}.os-scrollbar-visible{opacity:1;visibility:visible}.os-scrollbar-auto-hide.os-scrollbar-auto-hide-hidden{opacity:0;visibility:hidden}.os-scrollbar-interaction.os-scrollbar-visible{opacity:1;visibility:visible}.os-scrollbar-unusable,.os-scrollbar-unusable *,.os-scrollbar-wheel,.os-scrollbar-wheel *{pointer-events:none!important}.os-scrollbar-unusable .os-scrollbar-handle{opacity:0!important;transition:none!important}.os-scrollbar-horizontal .os-scrollbar-handle{bottom:0;left:calc(var(--os-scroll-percent-directional) * 100%);transform:translate(calc(var(--os-scroll-percent-directional) * -100%));width:calc(var(--os-viewport-percent) * 100%)}.os-scrollbar-vertical .os-scrollbar-handle{right:0;top:calc(var(--os-scroll-percent-directional) * 100%);transform:translateY(calc(var(--os-scroll-percent-directional) * -100%));height:calc(var(--os-viewport-percent) * 100%)}@supports (container-type: size){.os-scrollbar-track{container-type:size}.os-scrollbar-horizontal .os-scrollbar-handle{left:auto;transform:translate(calc(var(--os-scroll-percent-directional) * 100cqw + var(--os-scroll-percent-directional) * -100%))}.os-scrollbar-vertical .os-scrollbar-handle{top:auto;transform:translateY(calc(var(--os-scroll-percent-directional) * 100cqh + var(--os-scroll-percent-directional) * -100%))}.os-scrollbar-rtl.os-scrollbar-horizontal .os-scrollbar-handle{right:auto;left:0}}.os-scrollbar-rtl.os-scrollbar-vertical .os-scrollbar-handle{right:auto;left:0}.os-scrollbar.os-scrollbar-horizontal.os-scrollbar-cornerless,.os-scrollbar.os-scrollbar-horizontal.os-scrollbar-cornerless.os-scrollbar-rtl{left:0;right:0}.os-scrollbar.os-scrollbar-vertical.os-scrollbar-cornerless,.os-scrollbar.os-scrollbar-vertical.os-scrollbar-cornerless.os-scrollbar-rtl{top:0;bottom:0}@media print{.os-scrollbar{display:none}}.os-scrollbar{--os-size: 0;--os-padding-perpendicular: 0;--os-padding-axis: 0;--os-track-border-radius: 0;--os-track-bg: none;--os-track-bg-hover: none;--os-track-bg-active: none;--os-track-border: none;--os-track-border-hover: none;--os-track-border-active: none;--os-handle-border-radius: 0;--os-handle-bg: none;--os-handle-bg-hover: none;--os-handle-bg-active: none;--os-handle-border: none;--os-handle-border-hover: none;--os-handle-border-active: none;--os-handle-min-size: 33px;--os-handle-max-size: none;--os-handle-perpendicular-size: 100%;--os-handle-perpendicular-size-hover: 100%;--os-handle-perpendicular-size-active: 100%;--os-handle-interactive-area-offset: 0}.os-scrollbar-track{border:var(--os-track-border);border-radius:var(--os-track-border-radius);background:var(--os-track-bg);transition:opacity .15s,background-color .15s,border-color .15s}.os-scrollbar-track:hover{border:var(--os-track-border-hover);background:var(--os-track-bg-hover)}.os-scrollbar-track:active{border:var(--os-track-border-active);background:var(--os-track-bg-active)}.os-scrollbar-handle{border:var(--os-handle-border);border-radius:var(--os-handle-border-radius);background:var(--os-handle-bg)}.os-scrollbar-handle:hover{border:var(--os-handle-border-hover);background:var(--os-handle-bg-hover)}.os-scrollbar-handle:active{border:var(--os-handle-border-active);background:var(--os-handle-bg-active)}.os-scrollbar-track:before,.os-scrollbar-handle:before{content:"";position:absolute;inset:0;display:block}.os-scrollbar-horizontal{padding:var(--os-padding-perpendicular) var(--os-padding-axis);right:var(--os-size);height:var(--os-size)}.os-scrollbar-horizontal.os-scrollbar-rtl{left:var(--os-size);right:0}.os-scrollbar-horizontal .os-scrollbar-track:before{top:calc(var(--os-padding-perpendicular) * -1);bottom:calc(var(--os-padding-perpendicular) * -1)}.os-scrollbar-horizontal .os-scrollbar-handle{min-width:var(--os-handle-min-size);max-width:var(--os-handle-max-size);height:var(--os-handle-perpendicular-size);transition:opacity .15s,background-color .15s,border-color .15s,height .15s}.os-scrollbar-horizontal .os-scrollbar-handle:before{top:calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset)) * -1);bottom:calc(var(--os-padding-perpendicular) * -1)}.os-scrollbar-horizontal:hover .os-scrollbar-handle{height:var(--os-handle-perpendicular-size-hover)}.os-scrollbar-horizontal:active .os-scrollbar-handle{height:var(--os-handle-perpendicular-size-active)}.os-scrollbar-vertical{padding:var(--os-padding-axis) var(--os-padding-perpendicular);bottom:var(--os-size);width:var(--os-size)}.os-scrollbar-vertical .os-scrollbar-track:before{left:calc(var(--os-padding-perpendicular) * -1);right:calc(var(--os-padding-perpendicular) * -1)}.os-scrollbar-vertical .os-scrollbar-handle{min-height:var(--os-handle-min-size);max-height:var(--os-handle-max-size);width:var(--os-handle-perpendicular-size);transition:opacity .15s,background-color .15s,border-color .15s,width .15s}.os-scrollbar-vertical .os-scrollbar-handle:before{left:calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset)) * -1);right:calc(var(--os-padding-perpendicular) * -1)}.os-scrollbar-vertical.os-scrollbar-rtl .os-scrollbar-handle:before{right:calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset)) * -1);left:calc(var(--os-padding-perpendicular) * -1)}.os-scrollbar-vertical:hover .os-scrollbar-handle{width:var(--os-handle-perpendicular-size-hover)}.os-scrollbar-vertical:active .os-scrollbar-handle{width:var(--os-handle-perpendicular-size-active)}[data-overlayscrollbars-viewport~=measuring]>.os-scrollbar,.os-theme-none.os-scrollbar{display:none!important}.os-theme-dark,.os-theme-light{box-sizing:border-box;--os-size: 10px;--os-padding-perpendicular: 2px;--os-padding-axis: 2px;--os-track-border-radius: 10px;--os-handle-interactive-area-offset: 4px;--os-handle-border-radius: 10px}.os-theme-dark{--os-handle-bg: rgba(0, 0, 0, .44);--os-handle-bg-hover: rgba(0, 0, 0, .55);--os-handle-bg-active: rgba(0, 0, 0, .66)}.os-theme-light{--os-handle-bg: rgba(255, 255, 255, .44);--os-handle-bg-hover: rgba(255, 255, 255, .55);--os-handle-bg-active: rgba(255, 255, 255, .66)} diff --git a/_astro/Layout.DSulWsr7.css b/_astro/Layout.DSulWsr7.css new file mode 100644 index 0000000..1d598b7 --- /dev/null +++ b/_astro/Layout.DSulWsr7.css @@ -0,0 +1 @@ +/*! PhotoSwipe main CSS by Dmytro Semenov | photoswipe.com */.pswp{--pswp-bg: #000;--pswp-placeholder-bg: #222;--pswp-root-z-index: 100000;--pswp-preloader-color: rgba(79, 79, 79, .4);--pswp-preloader-color-secondary: rgba(255, 255, 255, .9);--pswp-icon-color: #fff;--pswp-icon-color-secondary: #4f4f4f;--pswp-icon-stroke-color: #4f4f4f;--pswp-icon-stroke-width: 2px;--pswp-error-text-color: var(--pswp-icon-color)}.pswp{position:fixed;top:0;left:0;width:100%;height:100%;z-index:var(--pswp-root-z-index);display:none;touch-action:none;outline:0;opacity:.003;contain:layout style size;-webkit-tap-highlight-color:rgba(0,0,0,0)}.pswp:focus{outline:0}.pswp *{box-sizing:border-box}.pswp img{max-width:none}.pswp--open{display:block}.pswp,.pswp__bg{transform:translateZ(0);will-change:opacity}.pswp__bg{opacity:.005;background:var(--pswp-bg)}.pswp,.pswp__scroll-wrap{overflow:hidden}.pswp__scroll-wrap,.pswp__bg,.pswp__container,.pswp__item,.pswp__content,.pswp__img,.pswp__zoom-wrap{position:absolute;top:0;left:0;width:100%;height:100%}.pswp__img,.pswp__zoom-wrap{width:auto;height:auto}.pswp--click-to-zoom.pswp--zoom-allowed .pswp__img{cursor:zoom-in}.pswp--click-to-zoom.pswp--zoomed-in .pswp__img{cursor:move;cursor:grab}.pswp--click-to-zoom.pswp--zoomed-in .pswp__img:active{cursor:grabbing}.pswp--no-mouse-drag.pswp--zoomed-in .pswp__img,.pswp--no-mouse-drag.pswp--zoomed-in .pswp__img:active,.pswp__img{cursor:zoom-out}.pswp__container,.pswp__img,.pswp__button,.pswp__counter{-webkit-user-select:none;-moz-user-select:none;user-select:none}.pswp__item{z-index:1;overflow:hidden}.pswp__hidden{display:none!important}.pswp__content{pointer-events:none}.pswp__content>*{pointer-events:auto}.pswp__error-msg-container{display:grid}.pswp__error-msg{margin:auto;font-size:1em;line-height:1;color:var(--pswp-error-text-color)}.pswp .pswp__hide-on-close{opacity:.005;will-change:opacity;transition:opacity var(--pswp-transition-duration) cubic-bezier(.4,0,.22,1);z-index:10;pointer-events:none}.pswp--ui-visible .pswp__hide-on-close{opacity:1;pointer-events:auto}.pswp__button{position:relative;display:block;width:50px;height:60px;padding:0;margin:0;overflow:hidden;cursor:pointer;background:none;border:0;box-shadow:none;opacity:.85;-webkit-appearance:none;-webkit-touch-callout:none}.pswp__button:hover,.pswp__button:active,.pswp__button:focus{transition:none;padding:0;background:none;border:0;box-shadow:none;opacity:1}.pswp__button:disabled{opacity:.3;cursor:auto}.pswp__icn{fill:var(--pswp-icon-color);color:var(--pswp-icon-color-secondary);position:absolute;top:14px;left:9px;width:32px;height:32px;overflow:hidden;pointer-events:none}.pswp__icn-shadow{stroke:var(--pswp-icon-stroke-color);stroke-width:var(--pswp-icon-stroke-width);fill:none}.pswp__icn:focus{outline:0}div.pswp__img--placeholder,.pswp__img--with-bg{background:var(--pswp-placeholder-bg)}.pswp__top-bar{position:absolute;left:0;top:0;width:100%;height:60px;display:flex;flex-direction:row;justify-content:flex-end;z-index:10;pointer-events:none!important}.pswp__top-bar>*{pointer-events:auto;will-change:opacity}.pswp__button--close{margin-right:6px}.pswp__button--arrow{position:absolute;width:75px;height:100px;top:50%;margin-top:-50px}.pswp__button--arrow:disabled{display:none;cursor:default}.pswp__button--arrow .pswp__icn{top:50%;margin-top:-30px;width:60px;height:60px;background:none;border-radius:0}.pswp--one-slide .pswp__button--arrow{display:none}.pswp--touch .pswp__button--arrow{visibility:hidden}.pswp--has_mouse .pswp__button--arrow{visibility:visible}.pswp__button--arrow--prev{right:auto;left:0}.pswp__button--arrow--next{right:0}.pswp__button--arrow--next .pswp__icn{left:auto;right:14px;transform:scaleX(-1)}.pswp__button--zoom{display:none}.pswp--zoom-allowed .pswp__button--zoom{display:block}.pswp--zoomed-in .pswp__zoom-icn-bar-v{display:none}.pswp__preloader{position:relative;overflow:hidden;width:50px;height:60px;margin-right:auto}.pswp__preloader .pswp__icn{opacity:0;transition:opacity .2s linear;animation:pswp-clockwise .6s linear infinite}.pswp__preloader--active .pswp__icn{opacity:.85}@keyframes pswp-clockwise{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pswp__counter{height:30px;margin-top:15px;margin-inline-start:20px;font-size:14px;line-height:30px;color:var(--pswp-icon-color);text-shadow:1px 1px 3px var(--pswp-icon-color-secondary);opacity:.85}.pswp--one-slide .pswp__counter{display:none} diff --git a/_astro/Layout.astro_astro_type_script_index_0_lang.BIVa_6cz.js b/_astro/Layout.astro_astro_type_script_index_0_lang.BIVa_6cz.js new file mode 100644 index 0000000..12bdbf2 --- /dev/null +++ b/_astro/Layout.astro_astro_type_script_index_0_lang.BIVa_6cz.js @@ -0,0 +1,4 @@ +import{_}from"./preload-helper.BlTxHScW.js";/*! + * PhotoSwipe Lightbox 5.4.4 - https://photoswipe.com + * (c) 2024 Dmytro Semenov + */function a(s,t,i){const e=document.createElement(t);return s&&(e.className=s),i&&i.appendChild(e),e}function E(s,t,i){let e=`translate3d(${s}px,0px,0)`;return i!==void 0&&(e+=` scale3d(${i},${i},1)`),e}function u(s,t,i){s.style.width=typeof t=="number"?`${t}px`:t,s.style.height=typeof i=="number"?`${i}px`:i}const h={IDLE:"idle",LOADING:"loading",LOADED:"loaded",ERROR:"error"};function S(s){return"button"in s&&s.button===1||s.ctrlKey||s.metaKey||s.altKey||s.shiftKey}function d(s,t,i=document){let e=[];if(s instanceof Element)e=[s];else if(s instanceof NodeList||Array.isArray(s))e=Array.from(s);else{const n=typeof s=="string"?s:t;n&&(e=Array.from(i.querySelectorAll(n)))}return e}function I(s){return typeof s=="function"&&s.prototype&&s.prototype.goTo}function m(){return!!(navigator.vendor&&navigator.vendor.match(/apple/i))}class C{constructor(t,i){this.type=t,this.defaultPrevented=!1,i&&Object.assign(this,i)}preventDefault(){this.defaultPrevented=!0}}class L{constructor(){this._listeners={},this._filters={},this.pswp=void 0,this.options=void 0}addFilter(t,i,e=100){var n,l,r;this._filters[t]||(this._filters[t]=[]),(n=this._filters[t])===null||n===void 0||n.push({fn:i,priority:e}),(l=this._filters[t])===null||l===void 0||l.sort((o,f)=>o.priority-f.priority),(r=this.pswp)===null||r===void 0||r.addFilter(t,i,e)}removeFilter(t,i){this._filters[t]&&(this._filters[t]=this._filters[t].filter(e=>e.fn!==i)),this.pswp&&this.pswp.removeFilter(t,i)}applyFilters(t,...i){var e;return(e=this._filters[t])===null||e===void 0||e.forEach(n=>{i[0]=n.fn.apply(this,i)}),i[0]}on(t,i){var e,n;this._listeners[t]||(this._listeners[t]=[]),(e=this._listeners[t])===null||e===void 0||e.push(i),(n=this.pswp)===null||n===void 0||n.on(t,i)}off(t,i){var e;this._listeners[t]&&(this._listeners[t]=this._listeners[t].filter(n=>i!==n)),(e=this.pswp)===null||e===void 0||e.off(t,i)}dispatch(t,i){var e;if(this.pswp)return this.pswp.dispatch(t,i);const n=new C(t,i);return(e=this._listeners[t])===null||e===void 0||e.forEach(l=>{l.call(this,n)}),n}}class A{constructor(t,i){if(this.element=a("pswp__img pswp__img--placeholder",t?"img":"div",i),t){const e=this.element;e.decoding="async",e.alt="",e.src=t,e.setAttribute("role","presentation")}this.element.setAttribute("aria-hidden","true")}setDisplayedSize(t,i){this.element&&(this.element.tagName==="IMG"?(u(this.element,250,"auto"),this.element.style.transformOrigin="0 0",this.element.style.transform=E(0,0,t/250)):u(this.element,t,i))}destroy(){var t;(t=this.element)!==null&&t!==void 0&&t.parentNode&&this.element.remove(),this.element=null}}class P{constructor(t,i,e){this.instance=i,this.data=t,this.index=e,this.element=void 0,this.placeholder=void 0,this.slide=void 0,this.displayedImageWidth=0,this.displayedImageHeight=0,this.width=Number(this.data.w)||Number(this.data.width)||0,this.height=Number(this.data.h)||Number(this.data.height)||0,this.isAttached=!1,this.hasSlide=!1,this.isDecoding=!1,this.state=h.IDLE,this.data.type?this.type=this.data.type:this.data.src?this.type="image":this.type="html",this.instance.dispatch("contentInit",{content:this})}removePlaceholder(){this.placeholder&&!this.keepPlaceholder()&&setTimeout(()=>{this.placeholder&&(this.placeholder.destroy(),this.placeholder=void 0)},1e3)}load(t,i){if(this.slide&&this.usePlaceholder())if(this.placeholder){const e=this.placeholder.element;e&&!e.parentElement&&this.slide.container.prepend(e)}else{const e=this.instance.applyFilters("placeholderSrc",this.data.msrc&&this.slide.isFirstSlide?this.data.msrc:!1,this);this.placeholder=new A(e,this.slide.container)}this.element&&!i||this.instance.dispatch("contentLoad",{content:this,isLazy:t}).defaultPrevented||(this.isImageContent()?(this.element=a("pswp__img","img"),this.displayedImageWidth&&this.loadImage(t)):(this.element=a("pswp__content","div"),this.element.innerHTML=this.data.html||""),i&&this.slide&&this.slide.updateContentSize(!0))}loadImage(t){var i,e;if(!this.isImageContent()||!this.element||this.instance.dispatch("contentLoadImage",{content:this,isLazy:t}).defaultPrevented)return;const n=this.element;this.updateSrcsetSizes(),this.data.srcset&&(n.srcset=this.data.srcset),n.src=(i=this.data.src)!==null&&i!==void 0?i:"",n.alt=(e=this.data.alt)!==null&&e!==void 0?e:"",this.state=h.LOADING,n.complete?this.onLoaded():(n.onload=()=>{this.onLoaded()},n.onerror=()=>{this.onError()})}setSlide(t){this.slide=t,this.hasSlide=!0,this.instance=t.pswp}onLoaded(){this.state=h.LOADED,this.slide&&this.element&&(this.instance.dispatch("loadComplete",{slide:this.slide,content:this}),this.slide.isActive&&this.slide.heavyAppended&&!this.element.parentNode&&(this.append(),this.slide.updateContentSize(!0)),(this.state===h.LOADED||this.state===h.ERROR)&&this.removePlaceholder())}onError(){this.state=h.ERROR,this.slide&&(this.displayError(),this.instance.dispatch("loadComplete",{slide:this.slide,isError:!0,content:this}),this.instance.dispatch("loadError",{slide:this.slide,content:this}))}isLoading(){return this.instance.applyFilters("isContentLoading",this.state===h.LOADING,this)}isError(){return this.state===h.ERROR}isImageContent(){return this.type==="image"}setDisplayedSize(t,i){if(this.element&&(this.placeholder&&this.placeholder.setDisplayedSize(t,i),!this.instance.dispatch("contentResize",{content:this,width:t,height:i}).defaultPrevented&&(u(this.element,t,i),this.isImageContent()&&!this.isError()))){const e=!this.displayedImageWidth&&t;this.displayedImageWidth=t,this.displayedImageHeight=i,e?this.loadImage(!1):this.updateSrcsetSizes(),this.slide&&this.instance.dispatch("imageSizeChange",{slide:this.slide,width:t,height:i,content:this})}}isZoomable(){return this.instance.applyFilters("isContentZoomable",this.isImageContent()&&this.state!==h.ERROR,this)}updateSrcsetSizes(){if(!this.isImageContent()||!this.element||!this.data.srcset)return;const t=this.element,i=this.instance.applyFilters("srcsetSizesWidth",this.displayedImageWidth,this);(!t.dataset.largestUsedSize||i>parseInt(t.dataset.largestUsedSize,10))&&(t.sizes=i+"px",t.dataset.largestUsedSize=String(i))}usePlaceholder(){return this.instance.applyFilters("useContentPlaceholder",this.isImageContent(),this)}lazyLoad(){this.instance.dispatch("contentLazyLoad",{content:this}).defaultPrevented||this.load(!0)}keepPlaceholder(){return this.instance.applyFilters("isKeepingPlaceholder",this.isLoading(),this)}destroy(){this.hasSlide=!1,this.slide=void 0,!this.instance.dispatch("contentDestroy",{content:this}).defaultPrevented&&(this.remove(),this.placeholder&&(this.placeholder.destroy(),this.placeholder=void 0),this.isImageContent()&&this.element&&(this.element.onload=null,this.element.onerror=null,this.element=void 0))}displayError(){if(this.slide){var t,i;let e=a("pswp__error-msg","div");e.innerText=(t=(i=this.instance.options)===null||i===void 0?void 0:i.errorMsg)!==null&&t!==void 0?t:"",e=this.instance.applyFilters("contentErrorElement",e,this),this.element=a("pswp__content pswp__error-msg-container","div"),this.element.appendChild(e),this.slide.container.innerText="",this.slide.container.appendChild(this.element),this.slide.updateContentSize(!0),this.removePlaceholder()}}append(){if(this.isAttached||!this.element)return;if(this.isAttached=!0,this.state===h.ERROR){this.displayError();return}if(this.instance.dispatch("contentAppend",{content:this}).defaultPrevented)return;const t="decode"in this.element;this.isImageContent()?t&&this.slide&&(!this.slide.isActive||m())?(this.isDecoding=!0,this.element.decode().catch(()=>{}).finally(()=>{this.isDecoding=!1,this.appendImage()})):this.appendImage():this.slide&&!this.element.parentNode&&this.slide.container.appendChild(this.element)}activate(){this.instance.dispatch("contentActivate",{content:this}).defaultPrevented||!this.slide||(this.isImageContent()&&this.isDecoding&&!m()?this.appendImage():this.isError()&&this.load(!1,!0),this.slide.holderElement&&this.slide.holderElement.setAttribute("aria-hidden","false"))}deactivate(){this.instance.dispatch("contentDeactivate",{content:this}),this.slide&&this.slide.holderElement&&this.slide.holderElement.setAttribute("aria-hidden","true")}remove(){this.isAttached=!1,!this.instance.dispatch("contentRemove",{content:this}).defaultPrevented&&(this.element&&this.element.parentNode&&this.element.remove(),this.placeholder&&this.placeholder.element&&this.placeholder.element.remove())}appendImage(){this.isAttached&&(this.instance.dispatch("contentAppendImage",{content:this}).defaultPrevented||(this.slide&&this.element&&!this.element.parentNode&&this.slide.container.appendChild(this.element),(this.state===h.LOADED||this.state===h.ERROR)&&this.removePlaceholder()))}}function T(s,t){if(s.getViewportSizeFn){const i=s.getViewportSizeFn(s,t);if(i)return i}return{x:document.documentElement.clientWidth,y:window.innerHeight}}function c(s,t,i,e,n){let l=0;if(t.paddingFn)l=t.paddingFn(i,e,n)[s];else if(t.padding)l=t.padding[s];else{const r="padding"+s[0].toUpperCase()+s.slice(1);t[r]&&(l=t[r])}return Number(l)||0}function z(s,t,i,e){return{x:t.x-c("left",s,t,i,e)-c("right",s,t,i,e),y:t.y-c("top",s,t,i,e)-c("bottom",s,t,i,e)}}const g=4e3;class b{constructor(t,i,e,n){this.pswp=n,this.options=t,this.itemData=i,this.index=e,this.panAreaSize=null,this.elementSize=null,this.fit=1,this.fill=1,this.vFill=1,this.initial=1,this.secondary=1,this.max=1,this.min=1}update(t,i,e){const n={x:t,y:i};this.elementSize=n,this.panAreaSize=e;const l=e.x/n.x,r=e.y/n.y;this.fit=Math.min(1,lr?l:r),this.vFill=Math.min(1,r),this.initial=this._getInitial(),this.secondary=this._getSecondary(),this.max=Math.max(this.initial,this.secondary,this._getMax()),this.min=Math.min(this.fit,this.initial,this.secondary),this.pswp&&this.pswp.dispatch("zoomLevelsUpdate",{zoomLevels:this,slideData:this.itemData})}_parseZoomLevelOption(t){const i=t+"ZoomLevel",e=this.options[i];if(e)return typeof e=="function"?e(this):e==="fill"?this.fill:e==="fit"?this.fit:Number(e)}_getSecondary(){let t=this._parseZoomLevelOption("secondary");return t||(t=Math.min(1,this.fit*3),this.elementSize&&t*this.elementSize.x>g&&(t=g/this.elementSize.x),t)}_getInitial(){return this._parseZoomLevelOption("initial")||this.fit}_getMax(){return this._parseZoomLevelOption("max")||Math.max(1,this.fit*4)}}function v(s,t,i){const e=t.createContentFromData(s,i);let n;const{options:l}=t;if(l){n=new b(l,s,-1);let r;t.pswp?r=t.pswp.viewportSize:r=T(l,t);const o=z(l,r,s,i);n.update(e.width,e.height,o)}return e.lazyLoad(),n&&e.setDisplayedSize(Math.ceil(e.width*n.initial),Math.ceil(e.height*n.initial)),e}function x(s,t){const i=t.getItemData(s);if(!t.dispatch("lazyLoadSlide",{index:s,itemData:i}).defaultPrevented)return v(i,t,s)}class D extends L{getNumItems(){var t;let i=0;const e=(t=this.options)===null||t===void 0?void 0:t.dataSource;e&&"length"in e?i=e.length:e&&"gallery"in e&&(e.items||(e.items=this._getGalleryDOMElements(e.gallery)),e.items&&(i=e.items.length));const n=this.dispatch("numItems",{dataSource:e,numItems:i});return this.applyFilters("numItems",n.numItems,e)}createContentFromData(t,i){return new P(t,this,i)}getItemData(t){var i;const e=(i=this.options)===null||i===void 0?void 0:i.dataSource;let n={};Array.isArray(e)?n=e[t]:e&&"gallery"in e&&(e.items||(e.items=this._getGalleryDOMElements(e.gallery)),n=e.items[t]);let l=n;l instanceof Element&&(l=this._domElementToItemData(l));const r=this.dispatch("itemData",{itemData:l||{},index:t});return this.applyFilters("itemData",r.itemData,t)}_getGalleryDOMElements(t){var i,e;return(i=this.options)!==null&&i!==void 0&&i.children||(e=this.options)!==null&&e!==void 0&&e.childSelector?d(this.options.children,this.options.childSelector,t)||[]:[t]}_domElementToItemData(t){const i={element:t},e=t.tagName==="A"?t:t.querySelector("a");if(e){i.src=e.dataset.pswpSrc||e.href,e.dataset.pswpSrcset&&(i.srcset=e.dataset.pswpSrcset),i.width=e.dataset.pswpWidth?parseInt(e.dataset.pswpWidth,10):0,i.height=e.dataset.pswpHeight?parseInt(e.dataset.pswpHeight,10):0,i.w=i.width,i.h=i.height,e.dataset.pswpType&&(i.type=e.dataset.pswpType);const l=t.querySelector("img");if(l){var n;i.msrc=l.currentSrc||l.src,i.alt=(n=l.getAttribute("alt"))!==null&&n!==void 0?n:""}(e.dataset.pswpCropped||e.dataset.cropped)&&(i.thumbCropped=!0)}return this.applyFilters("domItemData",i,t,e)}lazyLoadData(t,i){return v(t,this,i)}}class O extends D{constructor(t){super(),this.options=t||{},this._uid=0,this.shouldOpen=!1,this._preloadedContent=void 0,this.onThumbnailsClick=this.onThumbnailsClick.bind(this)}init(){d(this.options.gallery,this.options.gallerySelector).forEach(t=>{t.addEventListener("click",this.onThumbnailsClick,!1)})}onThumbnailsClick(t){if(S(t)||window.pswp)return;let i={x:t.clientX,y:t.clientY};!i.x&&!i.y&&(i=null);let e=this.getClickedIndex(t);e=this.applyFilters("clickedIndex",e,t,this);const n={gallery:t.currentTarget};e>=0&&(t.preventDefault(),this.loadAndOpen(e,n,i))}getClickedIndex(t){if(this.options.getClickedIndexFn)return this.options.getClickedIndexFn.call(this,t);const i=t.target,n=d(this.options.children,this.options.childSelector,t.currentTarget).findIndex(l=>l===i||l.contains(i));return n!==-1?n:this.options.children||this.options.childSelector?-1:0}loadAndOpen(t,i,e){if(window.pswp||!this.options)return!1;if(!i&&this.options.gallery&&this.options.children){const n=d(this.options.gallery);n[0]&&(i={gallery:n[0]})}return this.options.index=t,this.options.initialPointerPos=e,this.shouldOpen=!0,this.preload(t,i),!0}preload(t,i){const{options:e}=this;i&&(e.dataSource=i);const n=[],l=typeof e.pswpModule;if(I(e.pswpModule))n.push(Promise.resolve(e.pswpModule));else{if(l==="string")throw new Error("pswpModule as string is no longer supported");if(l==="function")n.push(e.pswpModule());else throw new Error("pswpModule is not valid")}typeof e.openPromise=="function"&&n.push(e.openPromise()),e.preloadFirstSlide!==!1&&t>=0&&(this._preloadedContent=x(t,this));const r=++this._uid;Promise.all(n).then(o=>{if(this.shouldOpen){const f=o[0];this._openPhotoswipe(f,r)}})}_openPhotoswipe(t,i){if(i!==this._uid&&this.shouldOpen||(this.shouldOpen=!1,window.pswp))return;const e=typeof t=="object"?new t.default(this.options):new t(this.options);this.pswp=e,window.pswp=e,Object.keys(this._listeners).forEach(n=>{var l;(l=this._listeners[n])===null||l===void 0||l.forEach(r=>{e.on(n,r)})}),Object.keys(this._filters).forEach(n=>{var l;(l=this._filters[n])===null||l===void 0||l.forEach(r=>{e.addFilter(n,r.fn,r.priority)})}),this._preloadedContent&&(e.contentLoader.addToCache(this._preloadedContent),this._preloadedContent=void 0),e.on("destroy",()=>{this.pswp=void 0,delete window.pswp}),e.init()}destroy(){var t;(t=this.pswp)===null||t===void 0||t.destroy(),this.shouldOpen=!1,this._listeners={},d(this.options.gallery,this.options.gallerySelector).forEach(i=>{i.removeEventListener("click",this.onThumbnailsClick,!1)})}}let p,M=_(()=>import("./photoswipe.esm.CKV1Bsxh.js"),[]);function y(){p=new O({gallery:".custom-md img, #post-cover img, .photo-gallery a",pswpModule:()=>M,closeSVG:'',zoomSVG:'',padding:{top:20,bottom:20,left:20,right:20},wheelToZoom:!0,arrowPrev:!1,arrowNext:!1,imageClickAction:"close",tapAction:"close",doubleTapAction:"zoom"}),p.addFilter("domItemData",(s,t)=>{if(t instanceof HTMLImageElement)s.src=t.src,s.w=Number(t.naturalWidth||window.innerWidth),s.h=Number(t.naturalHeight||window.innerHeight),s.msrc=t.src;else if(t instanceof HTMLAnchorElement){const i=t.querySelector("img");i&&(s.src=t.href||i.src,i.naturalWidth&&i.naturalHeight?(s.w=i.naturalWidth,s.h=i.naturalHeight):(s.w=window.innerWidth,s.h=Math.round(window.innerWidth*.75)),s.msrc=i.src)}return s}),p.init()}const w=()=>{p||y(),window.swup.hooks.on("page:view",()=>{y()}),window.swup.hooks.on("content:replace",()=>{p?.destroy?.()},{before:!0})};window.swup?w():document.addEventListener("swup:enable",w); diff --git a/_astro/Layout.astro_astro_type_script_index_1_lang.BE0brDS4.js b/_astro/Layout.astro_astro_type_script_index_1_lang.BE0brDS4.js new file mode 100644 index 0000000..1badc5d --- /dev/null +++ b/_astro/Layout.astro_astro_type_script_index_1_lang.BE0brDS4.js @@ -0,0 +1,9 @@ +import{B as es,g as ns,s as os,d as ss,b as cs,e as en,M as rs,f as is}from"./setting-utils.DIFyzipl.js";import{p as ls,u as as}from"./url-utils.Btk-Imyz.js";import"./zh_TW.GNQQ5Uve.js";/*! + * OverlayScrollbars + * Version: 2.14.0 + * + * Copyright (c) Rene Haas | KingSora. + * https://github.com/KingSora + * + * Released under the MIT license. + */const ht=(t,e)=>{const{o:n,i:o,u:s}=t;let c=n,r;const a=(l,d)=>{const b=c,S=l,u=d||(o?!o(b,S):b!==S);return(u||s)&&(c=S,r=b),[c,u,r]};return[e?l=>a(e(c,r),l):a,l=>[c,!!l,r]]},us=typeof window<"u"&&typeof HTMLElement<"u"&&!!window.document,mt=us?window:{},oo=Math.max,ds=Math.min,nn=Math.round,It=Math.abs,Bn=Math.sign,so=mt.cancelAnimationFrame,yn=mt.requestAnimationFrame,gn=mt.setTimeout,co=mt.clearTimeout,ke=t=>typeof mt[t]<"u"?mt[t]:void 0,fs=ke("MutationObserver"),Pn=ke("IntersectionObserver"),Ft=ke("ResizeObserver"),ce=ke("ScrollTimeline"),vn=t=>t===void 0,Me=t=>t===null,kt=t=>typeof t=="number",Qt=t=>typeof t=="string",De=t=>typeof t=="boolean",St=t=>typeof t=="function",bt=t=>Array.isArray(t),Oe=t=>typeof t=="object"&&!bt(t)&&!Me(t),bn=t=>{const e=!!t&&t.length,n=kt(e)&&e>-1&&e%1==0;return bt(t)||!St(t)&&n?e>0&&Oe(t)?e-1 in t:!0:!1},re=t=>!!t&&t.constructor===Object,Ae=t=>t instanceof HTMLElement,_e=t=>t instanceof Element;function J(t,e){if(bn(t))for(let n=0;ne(t[n],n,t)));return t}const ro=(t,e)=>t.indexOf(e)>=0,Yt=(t,e)=>t.concat(e),ct=(t,e,n)=>(!Qt(e)&&bn(e)?Array.prototype.push.apply(t,e):t.push(e),t),Dt=t=>Array.from(t||[]),wn=t=>bt(t)?t:!Qt(t)&&bn(t)?Dt(t):[t],Le=t=>!!t&&!t.length,Te=t=>Dt(new Set(t)),gt=(t,e,n)=>{J(t,s=>s?s.apply(void 0,e||[]):!0),n||(t.length=0)},io="paddingTop",lo="paddingRight",ao="paddingLeft",uo="paddingBottom",fo="marginLeft",po="marginRight",mo="marginBottom",xn="overflowX",Sn="overflowY",Be="width",Pe="height",$t="visible",xt="hidden",Gt="scroll",ps=t=>{const e=String(t||"");return e?e[0].toUpperCase()+e.slice(1):""},Re=(t,e,n,o)=>{if(t&&e){let s=!0;return J(n,(c=>{const r=t[c],a=e[c];r!==a&&(s=!1)})),s}return!1},ho=(t,e)=>Re(t,e,["w","h"]),Se=(t,e)=>Re(t,e,["x","y"]),ms=(t,e)=>Re(t,e,["t","r","b","l"]),k=(t,...e)=>t.bind(0,...e),Ut=t=>{let e;const n=t?gn:yn,o=t?co:so;return[s=>{o(e),e=n((()=>s()),St(t)?t():t)},()=>o(e)]},Rn=t=>{const e=St(t)?t():t;if(kt(e)){const n=e?gn:yn,o=e?co:so;return s=>{const c=n((()=>s()),e);return()=>{o(c)}}}return e&&e._},yo=(t,e)=>{const{p:n,v:o,S:s,m:c}=e||{};let r,a,i,p;const l=function(C){a&&a(),r&&r(),p=a=r=i=void 0,t.apply(this,C)},d=u=>c&&i?c(i,u):u,b=()=>{a&&i&&l(d(i)||i)},S=function(){const C=Dt(arguments),$=Rn(n);if($){const I=typeof s=="function"?s():s,N=Rn(o),g=d(C)||C,L=l.bind(0,g);a&&a(),I&&!p?(L(),p=!0,a=$((()=>p=void 0))):(a=$(L),N&&!r&&(r=N(b))),i=g}else l(C)};return S.O=b,S},go=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),ft=t=>t?Object.keys(t):[],G=(t,e,n,o,s,c,r)=>{const a=[e,n,o,s,c,r];return(typeof t!="object"||Me(t))&&!St(t)&&(t={}),J(a,(i=>{J(i,((p,l)=>{const d=i[l];if(t===d)return!0;const b=bt(d);if(d&&re(d)){const S=t[l];let u=S;b&&!bt(S)?u=[]:!b&&!re(S)&&(u={}),t[l]=G(u,d)}else t[l]=b?d.slice():d}))})),t},vo=(t,e)=>J(G({},t),((n,o,s)=>{n===void 0?delete s[o]:n&&re(n)&&(s[o]=vo(n))})),En=t=>!ft(t).length,ie=()=>{},bo=(t,e,n)=>oo(t,ds(e,n)),Nt=t=>Te((bt(t)?t:(t||"").split(" ")).filter((e=>e))),Cn=(t,e)=>t&&t.getAttribute(e),Nn=(t,e)=>t&&t.hasAttribute(e),Lt=(t,e,n)=>{J(Nt(e),(o=>{t&&t.setAttribute(o,String(n||""))}))},Et=(t,e)=>{J(Nt(e),(n=>t&&t.removeAttribute(n)))},Ne=(t,e)=>{const n=Nt(Cn(t,e)),o=k(Lt,t,e),s=(c,r)=>{const a=new Set(n);return J(Nt(c),(i=>{a[r](i)})),Dt(a).join(" ")};return{C:c=>o(s(c,"delete")),$:c=>o(s(c,"add")),H:c=>{const r=Nt(c);return r.reduce(((a,i)=>a&&n.includes(i)),r.length>0)}}},wo=(t,e,n)=>(Ne(t,e).C(n),k(On,t,e,n)),On=(t,e,n)=>(Ne(t,e).$(n),k(wo,t,e,n)),$e=(t,e,n,o)=>(o?On:wo)(t,e,n),An=(t,e,n)=>Ne(t,e).H(n),xo=t=>Ne(t,"class"),So=(t,e)=>{xo(t).C(e)},Ln=(t,e)=>(xo(t).$(e),k(So,t,e)),Eo=(t,e)=>{const n=e?_e(e)&&e:document;return n?Dt(n.querySelectorAll(t)):[]},hs=(t,e)=>{const n=e?_e(e)&&e:document;return n&&n.querySelector(t)},on=(t,e)=>_e(t)&&t.matches(e),Co=t=>on(t,"body"),sn=t=>t?Dt(t.childNodes):[],le=t=>t&&t.parentElement,Wt=(t,e)=>_e(t)&&t.closest(e),cn=t=>document.activeElement,ys=(t,e,n)=>{const o=Wt(t,e),s=t&&hs(n,o),c=Wt(s,e)===o;return o&&s?o===t||s===t||c&&Wt(Wt(t,n),e)!==o:!1},Kt=t=>{J(wn(t),(e=>{const n=le(e);e&&n&&n.removeChild(e)}))},pt=(t,e)=>k(Kt,t&&e&&J(wn(e),(n=>{n&&t.appendChild(n)})));let Oo;const gs=()=>Oo,vs=t=>{Oo=t},qt=t=>{const e=document.createElement("div");return Lt(e,"class",t),e},Ao=t=>{const e=qt(),n=gs(),o=t.trim();return e.innerHTML=n?n.createHTML(o):o,J(sn(e),(s=>Kt(s)))},zn=(t,e)=>t.getPropertyValue(e)||t[e]||"",Lo=t=>{const e=t||0;return isFinite(e)?e:0},we=t=>Lo(parseFloat(t||"")),rn=t=>Math.round(t*1e4)/1e4,To=t=>`${rn(Lo(t))}px`;function ae(t,e){t&&e&&J(e,((n,o)=>{try{const s=t.style,c=Me(n)||De(n)?"":kt(n)?To(n):n;o.indexOf("--")===0?s.setProperty(o,c):s[o]=c}catch{}}))}function Ot(t,e,n){const o=Qt(e);let s=o?"":{};if(t){const c=mt.getComputedStyle(t,n)||t.style;s=o?zn(c,e):Dt(e).reduce(((r,a)=>(r[a]=zn(c,a),r)),s)}return s}const Vn=(t,e,n)=>{const o=e?`${e}-`:"",s=n?`-${n}`:"",c=`${o}top${s}`,r=`${o}right${s}`,a=`${o}bottom${s}`,i=`${o}left${s}`,p=Ot(t,[c,r,a,i]);return{t:we(p[c]),r:we(p[r]),b:we(p[a]),l:we(p[i])}},Xe=(t,e)=>`translate${Oe(t)?`(${t.x},${t.y})`:`${e?"X":"Y"}(${t})`}`,bs=t=>!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length),ws={w:0,h:0},ze=(t,e)=>e?{w:e[`${t}Width`],h:e[`${t}Height`]}:ws,xs=t=>ze("inner",t||mt),Xt=k(ze,"offset"),$o=k(ze,"client"),He=k(ze,"scroll"),Tn=t=>{const e=parseFloat(Ot(t,Be))||0,n=parseFloat(Ot(t,Pe))||0;return{w:e-nn(e),h:n-nn(n)}},Ye=t=>t.getBoundingClientRect(),Ss=t=>!!t&&bs(t),ln=t=>!!(t&&(t[Pe]||t[Be])),Ho=(t,e)=>{const n=ln(t);return!ln(e)&&n},Fn=(t,e,n,o)=>{J(Nt(e),(s=>{t&&t.removeEventListener(s,n,o)}))},st=(t,e,n,o)=>{var s;const c=(s=o&&o.I)!=null?s:!0,r=o&&o.A||!1,a=o&&o.T||!1,i={passive:c,capture:r};return k(gt,Nt(e).map((p=>{const l=a?d=>{Fn(t,p,l,r),n&&n(d)}:n;return t&&t.addEventListener(p,l,i),k(Fn,t,p,l,r)})))},Io=t=>t.stopPropagation(),an=t=>t.preventDefault(),ko=t=>Io(t)||an(t),Ct=(t,e)=>{const{x:n,y:o}=kt(e)?{x:e,y:e}:e||{};kt(n)&&(t.scrollLeft=n),kt(o)&&(t.scrollTop=o)},yt=t=>({x:t.scrollLeft,y:t.scrollTop}),Mo=()=>({D:{x:0,y:0},M:{x:0,y:0}}),Es=(t,e)=>{const{D:n,M:o}=t,{w:s,h:c}=e,r=(d,b,S)=>{let u=Bn(d)*S,C=Bn(b)*S;if(u===C){const $=It(d),I=It(b);C=$>I?0:C,u=${const n=(o,s)=>o===0&&o<=s;return{x:n(t.x,e.x),y:n(t.y,e.y)}},Un=({D:t,M:e},n)=>{const o=(s,c,r)=>bo(0,1,(s-r)/(s-c)||0);return{x:o(t.x,e.x,n.x),y:o(t.y,e.y,n.y)}},un=t=>{t&&t.focus&&t.focus({preventScroll:!0,focusVisible:!1})},Wn=(t,e)=>{J(wn(e),t)},dn=t=>{const e=new Map,n=(c,r)=>{if(c){const a=e.get(c);Wn((i=>{a&&a[i?"delete":"clear"](i)}),r)}else e.forEach((a=>{a.clear()})),e.clear()},o=(c,r)=>{if(Qt(c)){const p=e.get(c)||new Set;return e.set(c,p),Wn((l=>{St(l)&&p.add(l)}),r),k(n,c,r)}De(r)&&r&&n();const a=ft(c),i=[];return J(a,(p=>{const l=c[p];l&&ct(i,o(p,l))})),k(gt,i)},s=(c,r)=>{J(Dt(e.get(c)),(a=>{r&&!Le(r)?a.apply(0,r):a()}))};return o(t||{}),[o,n,s]},Do={},_o={},Cs=t=>{J(t,(e=>J(e,((n,o)=>{Do[o]=e[o]}))))},Bo=(t,e,n)=>ft(t).map((o=>{const{static:s,instance:c}=t[o],[r,a,i]=n||[],p=n?c:s;if(p){const l=n?p(r,a,e):p(e);return(i||_o)[o]=l}})),Zt=t=>_o[t],Os="__osOptionsValidationPlugin",Jt="data-overlayscrollbars",Ee="os-environment",xe=`${Ee}-scrollbar-hidden`,Ke=`${Jt}-initialize`,Ce="noClipping",jn=`${Jt}-body`,Mt=Jt,As="host",Tt=`${Jt}-viewport`,Ls=xn,Ts=Sn,$s="arrange",Po="measuring",Hs="scrolling",Ro="scrollbarHidden",Is="noContent",fn=`${Jt}-padding`,qn=`${Jt}-content`,$n="os-size-observer",ks=`${$n}-appear`,Ms=`${$n}-listener`,Ds="os-trinsic-observer",_s="os-theme-none",vt="os-scrollbar",Bs=`${vt}-rtl`,Ps=`${vt}-horizontal`,Rs=`${vt}-vertical`,No=`${vt}-track`,Hn=`${vt}-handle`,Ns=`${vt}-visible`,zs=`${vt}-cornerless`,Xn=`${vt}-interaction`,Yn=`${vt}-unusable`,pn=`${vt}-auto-hide`,Gn=`${pn}-hidden`,Kn=`${vt}-wheel`,Vs=`${No}-interactive`,Fs=`${Hn}-interactive`,Us="__osSizeObserverPlugin",Ws=(t,e)=>{const{k:n}=e,[o,s]=t("showNativeOverlaidScrollbars");return[o&&n.x&&n.y,s]},jt=t=>t.indexOf($t)===0,js=t=>t.replace(`${$t}-`,""),mn=(t,e)=>{if(t==="auto")return e?Gt:xt;const n=t||xt;return[xt,Gt,$t].includes(n)?n:xt},qs=(t,e)=>{const{overflowX:n,overflowY:o}=Ot(t,[xn,Sn]);return{x:mn(n,e.x),y:mn(o,e.y)}},In="__osScrollbarsHidingPlugin",Xs="__osClickScrollPlugin",Qn=t=>JSON.stringify(t,((e,n)=>{if(St(n))throw 0;return n})),Zn=(t,e)=>t?`${e}`.split(".").reduce(((n,o)=>n&&go(n,o)?n[o]:void 0),t):void 0,Ys=[0,33],zo=[33,99],Vo=[222,666,!0],Gs={paddingAbsolute:!1,showNativeOverlaidScrollbars:!1,update:{elementEvents:[["img","load"]],debounce:{mutation:Ys,resize:null,event:zo,env:Vo},attributes:null,ignoreMutation:null,flowDirectionStyles:null},overflow:{x:"scroll",y:"scroll"},scrollbars:{theme:"os-theme-dark",visibility:"auto",autoHide:"never",autoHideDelay:1300,autoHideSuspend:!1,dragScroll:!0,clickScroll:!1,pointers:["mouse","touch","pen"]}},Fo=(t,e)=>{const n={},o=Yt(ft(e),ft(t));return J(o,(s=>{const c=t[s],r=e[s];if(Oe(c)&&Oe(r))G(n[s]={},Fo(c,r)),En(n[s])&&delete n[s];else if(go(e,s)&&r!==c){let a=!0;if(bt(c)||bt(r))try{Qn(c)===Qn(r)&&(a=!1)}catch{}a&&(n[s]=r)}})),n},Jn=(t,e,n)=>o=>[Zn(t,o),n||Zn(e,o)!==void 0];let Uo;const Ks=()=>Uo,Qs=t=>{Uo=t};let Qe;const Zs=()=>{const t=(g,L,H)=>{pt(document.body,g),pt(document.body,g);const B=$o(g),V=Xt(g),M=Tn(L);return H&&Kt(g),{x:V.h-B.h+M.h,y:V.w-B.w+M.w}},e=g=>{let L=!1;const H=Ln(g,xe);try{L=Ot(g,"scrollbar-width")==="none"||Ot(g,"display","::-webkit-scrollbar")==="none"}catch{}return H(),L},n=`.${Ee}{scroll-behavior:auto!important;position:fixed;opacity:0;visibility:hidden;overflow:scroll;height:200px;width:200px;z-index:-1}.${Ee} div{width:200%;height:200%;margin:10px 0}.${xe}{scrollbar-width:none!important}.${xe}::-webkit-scrollbar,.${xe}::-webkit-scrollbar-corner{appearance:none!important;display:none!important;width:0!important;height:0!important}`,s=Ao(`
`)[0],c=s.firstChild,r=s.lastChild,a=Ks();a&&(r.nonce=a);const[i,,p]=dn(),[l,d]=ht({o:t(s,c),i:Se},k(t,s,c,!0)),[b]=d(),S=e(s),u={x:b.x===0,y:b.y===0},C={elements:{host:null,padding:!S,viewport:g=>S&&Co(g)&&g,content:!1},scrollbars:{slot:!0},cancel:{nativeScrollbarsOverlaid:!1,body:null}},$=G({},Gs),I=k(G,{},$),N=k(G,{},C),K={P:b,k:u,U:S,J:!!ce,G:k(i,"r"),K:N,Z:g=>G(C,g)&&N(),tt:I,nt:g=>G($,g)&&I(),ot:G({},C),st:G({},$)};if(Et(s,"style"),Kt(s),st(mt,"resize",(()=>{p("r",[])})),St(mt.matchMedia)&&!S&&(!u.x||!u.y)){const g=L=>{const H=mt.matchMedia(`(resolution: ${mt.devicePixelRatio}dppx)`);st(H,"change",(()=>{L(),g(L)}),{T:!0})};g((()=>{const[L,H]=l();G(K.P,L),p("r",[H])}))}return K},At=()=>(Qe||(Qe=Zs()),Qe),Js=(t,e,n)=>{let o=!1;const s=n?new WeakMap:!1,c=()=>{o=!0},r=a=>{if(s&&n){const i=n.map((p=>{const[l,d]=p||[];return[d&&l?(a||Eo)(l,t):[],d]}));J(i,(p=>J(p[0],(l=>{const d=p[1],b=s.get(l)||[];if(t.contains(l)&&d){const u=st(l,d,(C=>{o?(u(),s.delete(l)):e(C)}));s.set(l,ct(b,u))}else gt(b),s.delete(l)}))))}};return r(),[c,r]},to=(t,e,n,o)=>{let s=!1;const{et:c,ct:r,rt:a,it:i,lt:p,ut:l}=o||{},[d,b]=Js(t,(()=>s&&n(!0)),a),S=c||[],u=r||[],C=Yt(S,u),$=(N,K)=>{if(!Le(K)){const g=p||ie,L=l||ie,H=[],B=[];let V=!1,M=!1;if(J(K,(y=>{const{attributeName:w,target:E,type:q,oldValue:z,addedNodes:X,removedNodes:j}=y,U=q==="attributes",et=q==="childList",W=t===E,rt=U&&w,O=rt&&Cn(E,w||""),T=Qt(O)?O:null,h=rt&&z!==T,m=ro(u,w)&&h;if(e&&(et||!W)){const v=U&&h,P=v&&i&&on(E,i),x=(P?!g(E,w,z,T):!U||v)&&!L(y,!!P,t,o);J(X,(_=>ct(H,_))),J(j,(_=>ct(H,_))),M=M||x}!e&&W&&h&&!g(E,w,z,T)&&(ct(B,w),V=V||m)})),b((y=>Te(H).reduce(((w,E)=>(ct(w,Eo(y,E)),on(E,y)?ct(w,E):w)),[]))),e)return!N&&M&&n(!1),[!1];if(!Le(B)||V){const y=[Te(B),V];return N||n.apply(0,y),y}}},I=new fs(k($,!1));return[()=>(I.observe(t,{attributes:!0,attributeOldValue:!0,attributeFilter:C,subtree:e,childList:e,characterData:e}),s=!0,()=>{s&&(d(),I.disconnect(),s=!1)}),()=>{if(s)return $(!0,I.takeRecords())}]};let Rt=null;const Wo=(t,e,n)=>{const{ft:o}=n||{},s=Zt(Us),[c]=ht({o:!1,u:!0});return()=>{const r=[],i=Ao(`
`)[0],p=i.firstChild,l=d=>{const b=bt(d)&&!Le(d);let S=!1,u=!1;if(b){const C=d[0],[$,,I]=c(C.contentRect),N=ln($);u=Ho($,I),S=!u&&!N}else u=d===!0;S||e({_t:!0,ft:u})};if(Ft){if(!De(Rt)){const u=new Ft(ie);u.observe(t,{get box(){Rt=!0}}),Rt=Rt||!1,u.disconnect()}const d=yo(l,{p:0,v:0}),b=u=>d(u),S=new Ft(b);if(S.observe(Rt?t:p),ct(r,[()=>{S.disconnect()},!Rt&&pt(t,i)]),Rt){const u=new Ft(b);u.observe(t,{box:"border-box"}),ct(r,(()=>u.disconnect()))}}else if(s){const[d,b]=s(p,l,o);ct(r,Yt([Ln(i,ks),st(i,"animationstart",d),pt(t,i)],b))}else return ie;return k(gt,r)}},tc=(t,e)=>{let n;const o=i=>i.h===0||i.isIntersecting||i.intersectionRatio>0,s=qt(Ds),[c]=ht({o:!1}),r=(i,p)=>{if(i){const l=c(o(i)),[,d]=l;return d&&!p&&e(l)&&[l]}},a=(i,p)=>r(p.pop(),i);return[()=>{const i=[];if(Pn)n=new Pn(k(a,!1),{root:t}),n.observe(s),ct(i,(()=>{n.disconnect()}));else{const p=()=>{const l=Xt(s);r(l)};ct(i,Wo(s,p)()),p()}return k(gt,ct(i,pt(t,s)))},()=>n&&a(!0,n.takeRecords())]},ec=(t,e,n,o)=>{let s,c,r,a,i,p,l,d;const b=`[${Mt}]`,S=`[${Tt}]`,u=["id","class","style","open","wrap","cols","rows"],{dt:C,vt:$,L:I,gt:N,ht:K,V:g,bt:L,wt:H,yt:B,St:V}=t,M=f=>Ot(f,"direction")==="rtl",y=()=>{let f,x,_;const A=yo(o,{p:()=>f,v:()=>x,S:()=>_,m(R,Q){const[D]=R,[Z]=Q;return[Yt(ft(D),ft(Z)).reduce(((F,ot)=>(F[ot]=D[ot]||Z[ot],F)),{})]}}),Y=(R,Q)=>{if(bt(Q)){const[D,Z,F]=Q;f=D,x=Z,_=F}else kt(Q)?(f=Q,x=!1,_=!1):(f=!1,x=!1,_=!1);A(R)};return Y.O=A.O,Y},w={Ot:!1,B:M(C)},E=At(),q=Zt(In),[z]=ht({i:ho,o:{w:0,h:0}},(()=>{const f=q&&q.R(t,e,w,E,n).Y,_=!(L&&g)&&An($,Mt,Ce),A=!g&&H($s),Y=A&&yt(N),R=Y&&V(),Q=B(Po,_),D=A&&f&&f(),Z=He(I),F=Tn(I);return D&&D(),Ct(N,Y),R&&R(),_&&Q(),{w:Z.w+F.w,h:Z.h+F.h}})),X=y(),j=f=>{const x=M(C);G(f,{Ct:d!==x}),G(w,{B:x}),d=x},U=(f,x)=>{const[_,A]=f,Y={$t:A};return G(w,{Ot:_}),x||o(Y),Y},et=({_t:f,ft:x})=>{const _=x?o:X,A={_t:f||x,ft:x};j(A),_(A,c)},W=(f,x)=>{const[,_]=z(),A={xt:_};return j(A),_&&!x&&X(A,f?r:s),A},rt=(f,x,_)=>{const A={Ht:x};return j(A),x&&!_&&X(A,s),A},[O,T]=K?tc($,U):[],h=!g&&Wo($,et,{ft:!0}),[m,v]=to($,!1,rt,{ct:u,et:u}),P=g&&Ft&&new Ft((f=>{const x=f[f.length-1].contentRect;et({_t:!0,ft:Ho(x,l)}),l=x}));return[()=>{P&&P.observe($);const f=h&&h(),x=O&&O(),_=m(),A=E.G((Y=>{const[,R]=z();X({Et:Y,xt:R,_t:L},a)}));return()=>{P&&P.disconnect(),f&&f(),x&&x(),p&&p(),_(),A()}},({zt:f,It:x,At:_})=>{const A={},[Y]=f("update.ignoreMutation"),[R,Q]=f("update.attributes"),[D,Z]=f("update.elementEvents"),[F,ot]=f("update.debounce"),ut=Z||Q,lt=x||_,it=nt=>St(Y)&&Y(nt);if(ut){i&&i(),p&&p();const[nt,tt]=to(K||I,!0,W,{et:Yt(u,R||[]),rt:D,it:b,ut:(at,dt)=>{const{target:_t,attributeName:Bt}=at;return(!dt&&Bt&&!g?ys(_t,b,S):!1)||!!Wt(_t,`.${vt}`)||!!it(at)}});p=nt(),i=tt}if(ot&&(X.O(),bt(F)||kt(F)?(s=F,c=!1,r=zo,a=Vo):re(F)?(s=F.mutation,c=F.resize,r=F.event,a=F.env):(s=!1,c=!1,r=!1,a=!1)),lt){const nt=v(),tt=T&&T(),at=i&&i();nt&&G(A,rt(nt[0],nt[1],lt)),tt&&G(A,U(tt[0],lt)),at&&G(A,W(at[0],lt))}return j(A),A},w]},jo=(t,e)=>St(e)?e.apply(0,t):e,nc=(t,e,n,o)=>{const s=vn(o)?n:o;return jo(t,s)||e.apply(0,t)},qo=(t,e,n,o)=>{const s=vn(o)?n:o,c=jo(t,s);return!!c&&(Ae(c)?c:e.apply(0,t))},oc=(t,e)=>{const{nativeScrollbarsOverlaid:n,body:o}=e||{},{k:s,U:c,K:r}=At(),{nativeScrollbarsOverlaid:a,body:i}=r().cancel,p=n??a,l=vn(o)?i:o,d=(s.x||s.y)&&p,b=t&&(Me(l)?!c:l);return!!d||!!b},sc=(t,e,n,o)=>{const s="--os-viewport-percent",c="--os-scroll-percent",r="--os-scroll-direction",{K:a}=At(),{scrollbars:i}=a(),{slot:p}=i,{dt:l,vt:d,L:b,Tt:S,gt:u,bt:C,V:$}=e,{scrollbars:I}=S?{}:t,{slot:N}=I||{},K=[],g=[],L=[],H=qo([l,d,b],(()=>$&&C?l:d),p,N),B=O=>{if(ce){let T=null,h=[];const m=new ce({source:u,axis:O}),v=()=>{T&&T.cancel(),T=null};return{kt:f=>{const{Dt:x}=n,_=Ge(x)[O],A=O==="x",Y=[Xe(0,A),Xe(`calc(-100% + 100cq${A?"w":"h"})`,A)],R=_?Y:Y.reverse();return h[0]===R[0]&&h[1]===R[1]||(h=R,v(),T=f.Mt.animate({clear:["left"],transform:R},{timeline:m})),v}}}},V={x:B("x"),y:B("y")},M=()=>{const{Rt:O,Vt:T}=n,h=(m,v)=>bo(0,1,m/(m+v)||0);return{x:h(T.x,O.x),y:h(T.y,O.y)}},y=(O,T,h)=>{const m=h?Ln:So;J(O,(v=>{m(v.Lt,T)}))},w=(O,T)=>{J(O,(h=>{const[m,v]=T(h);ae(m,v)}))},E=(O,T,h)=>{const m=De(h),v=m?h:!0,P=m?!h:!0;v&&y(g,O,T),P&&y(L,O,T)},q=()=>{const O=M(),T=h=>m=>[m.Lt,{[s]:rn(h)+""}];w(g,T(O.x)),w(L,T(O.y))},z=()=>{if(!ce){const{Dt:O}=n,T=Un(O,yt(u)),h=m=>v=>[v.Lt,{[c]:rn(m)+""}];w(g,h(T.x)),w(L,h(T.y))}},X=()=>{const{Dt:O}=n,T=Ge(O),h=m=>v=>[v.Lt,{[r]:m?"0":"1"}];w(g,h(T.x)),w(L,h(T.y)),ce&&(g.forEach(V.x.kt),L.forEach(V.y.kt))},j=()=>{if($&&!C){const{Rt:O,Dt:T}=n,h=Ge(T),m=Un(T,yt(u)),v=P=>{const{Lt:f}=P,x=le(f)===b&&f,_=(A,Y,R)=>{const Q=Y*A;return To(R?Q:-Q)};return[x,x&&{transform:Xe({x:_(m.x,O.x,h.x),y:_(m.y,O.y,h.y)})}]};w(g,v),w(L,v)}},U=O=>{const T=O?"x":"y",m=qt(`${vt} ${O?Ps:Rs}`),v=qt(No),P=qt(Hn),f={Lt:m,Ut:v,Mt:P},x=V[T];return ct(O?g:L,f),ct(K,[pt(m,v),pt(v,P),k(Kt,m),x&&x.kt(f),o(f,E,O)]),f},et=k(U,!0),W=k(U,!1),rt=()=>(pt(H,g[0].Lt),pt(H,L[0].Lt),k(gt,K));return et(),W(),[{Pt:q,Nt:z,qt:X,Bt:j,Ft:E,jt:{Xt:g,Yt:et,Wt:k(w,g)},Jt:{Xt:L,Yt:W,Wt:k(w,L)}},rt]},cc=(t,e,n,o)=>(s,c,r)=>{const{vt:a,L:i,V:p,gt:l,Gt:d,St:b}=e,{Lt:S,Ut:u,Mt:C}=s,[$,I]=Ut(333),[N,K]=Ut(444),g=B=>{St(l.scrollBy)&&l.scrollBy({behavior:"smooth",left:B.x,top:B.y})},L=()=>{const B="pointerup pointercancel lostpointercapture",V=`client${r?"X":"Y"}`,M=r?Be:Pe,y=r?"left":"top",w=r?"w":"h",E=r?"x":"y",q=(X,j)=>U=>{const{Rt:et}=n,W=Xt(u)[w]-Xt(C)[w],O=j*U/W*et[E];Ct(l,{[E]:X+O})},z=[];return st(u,"pointerdown",(X=>{const j=Wt(X.target,`.${Hn}`)===C,U=j?C:u,et=t.scrollbars,W=et[j?"dragScroll":"clickScroll"],{button:rt,isPrimary:O,pointerType:T}=X,{pointers:h}=et;if(rt===0&&O&&W&&(h||[]).includes(T)){gt(z),K();const v=!j&&(X.shiftKey||W==="instant"),P=k(Ye,C),f=k(Ye,u),x=(tt,at)=>(tt||P())[y]-(at||f())[y],_=nn(Ye(l)[M])/Xt(l)[w]||1,A=q(yt(l)[E],1/_),Y=X[V],R=P(),Q=f(),D=R[M],Z=x(R,Q)+D/2,F=Y-Q[y],ot=j?0:F-Z,ut=tt=>{gt(nt),U.releasePointerCapture(tt.pointerId)},lt=j||v,it=b(),nt=[st(d,B,ut),st(d,"selectstart",(tt=>an(tt)),{I:!1}),st(u,B,ut),lt&&st(u,"pointermove",(tt=>A(ot+(tt[V]-Y)))),lt&&(()=>{const tt=yt(l);it();const at=yt(l),dt={x:at.x-tt.x,y:at.y-tt.y};(It(dt.x)>3||It(dt.y)>3)&&(b(),Ct(l,tt),g(dt),N(it))})];if(U.setPointerCapture(X.pointerId),v)A(ot);else if(!j){const tt=Zt(Xs);if(tt){const at=tt(A,ot,D,(dt=>{dt?it():ct(nt,it)}));ct(nt,at),ct(z,k(at,!0))}}}}))};let H=!0;return k(gt,[st(C,"pointermove pointerleave",o),st(S,"pointerenter",(()=>{c(Xn,!0)})),st(S,"pointerleave pointercancel",(()=>{c(Xn,!1)})),!p&&st(S,"mousedown",(()=>{const B=cn();(Nn(B,Tt)||Nn(B,Mt)||B===document.body)&&gn(k(un,i),25)})),st(S,"wheel",(B=>{const{deltaX:V,deltaY:M,deltaMode:y}=B;H&&y===0&&le(S)===a&&g({x:V,y:M}),H=!1,c(Kn,!0),$((()=>{H=!0,c(Kn)})),an(B)}),{I:!1,A:!0}),st(S,"pointerdown",(()=>{const B=st(d,"click",(M=>{V(),ko(M)}),{T:!0,A:!0,I:!1}),V=st(d,"pointerup pointercancel",(()=>{V(),setTimeout(B,150)}),{A:!0,I:!0})}),{A:!0,I:!0}),L(),I,K])},rc=(t,e,n,o,s,c)=>{let r,a,i,p,l,d=ie,b=0;const S=["mouse","pen"],u=h=>S.includes(h.pointerType),[C,$]=Ut(),[I,N]=Ut(100),[K,g]=Ut(100),[L,H]=Ut((()=>b)),[B,V]=sc(t,s,o,cc(e,s,o,(h=>u(h)&&et()))),{vt:M,Kt:y,bt:w}=s,{Ft:E,Pt:q,Nt:z,qt:X,Bt:j}=B,U=(h,m)=>{if(H(),h)E(Gn);else{const v=k(E,Gn,!0);b>0&&!m?L(v):v()}},et=()=>{(i?!r:!p)&&(U(!0),I((()=>{U(!1)})))},W=h=>{E(pn,h,!0),E(pn,h,!1)},rt=h=>{u(h)&&(r=i,i&&U(!0))},O=[H,N,g,$,()=>d(),st(M,"pointerover",rt,{T:!0}),st(M,"pointerenter",rt),st(M,"pointerleave",(h=>{u(h)&&(r=!1,i&&U(!1))})),st(M,"pointermove",(h=>{u(h)&&a&&et()})),st(y,"scroll",(h=>{C((()=>{z(),et()})),c(h),j()}))],T=Zt(In);return[()=>k(gt,ct(O,V())),({zt:h,At:m,Qt:v,Zt:P})=>{const{tn:f,nn:x,sn:_,en:A}=P||{},{Ct:Y,ft:R}=v||{},{B:Q}=n,{k:D,U:Z}=At(),{cn:F,j:ot}=o,[ut,lt]=h("showNativeOverlaidScrollbars"),[it,nt]=h("scrollbars.theme"),[tt,at]=h("scrollbars.visibility"),[dt,_t]=h("scrollbars.autoHide"),[Bt,te]=h("scrollbars.autoHideSuspend"),[ue]=h("scrollbars.autoHideDelay"),[de,fe]=h("scrollbars.dragScroll"),[pe,Pt]=h("scrollbars.clickScroll"),[zt,Ve]=h("overflow"),Fe=R&&!m,Ue=ot.x||ot.y,We=f||x||A||Y||m,wt=_||at||Ve,je=ut&&D.x&&D.y,ee=!Z&&!T,qe=je||ee,Vt=(ne,oe,me)=>{const he=ne.includes(Gt)&&(tt===$t||tt==="auto"&&oe===Gt);return E(Ns,he,me),he};if(b=ue,Fe&&(Bt&&Ue?(W(!1),d(),K((()=>{d=st(y,"scroll",k(W,!0),{T:!0})}))):W(!0)),(lt||ee)&&E(_s,qe),nt&&(E(l),E(it,!0),l=it),te&&!Bt&&W(!0),_t&&(a=dt==="move",i=dt==="leave",p=dt==="never",U(p,!0)),fe&&E(Fs,de),Pt&&E(Vs,!!pe),wt){const ne=Vt(zt.x,F.x,!0),oe=Vt(zt.y,F.y,!1);E(zs,!(ne&&oe))}We&&(z(),q(),j(),A&&X(),E(Yn,!ot.x,!0),E(Yn,!ot.y,!1),E(Bs,Q&&!w))},{},B]},ic=t=>{const e=At(),{K:n,U:o}=e,{elements:s}=n(),{padding:c,viewport:r,content:a}=s,i=Ae(t),p=i?{}:t,{elements:l}=p,{padding:d,viewport:b,content:S}=l||{},u=i?t:p.target,C=Co(u),$=u.ownerDocument,I=$.documentElement,N=()=>$.defaultView||mt,K=k(nc,[u]),g=k(qo,[u]),L=k(qt,""),H=k(K,L,r),B=k(g,L,a),V=D=>{const Z=Xt(D),F=He(D),ot=Ot(D,xn),ut=Ot(D,Sn);return F.w-Z.w>0&&!jt(ot)||F.h-Z.h>0&&!jt(ut)},M=H(b),y=M===u,w=y&&C,E=!y&&B(S),q=!y&&M===E,z=w?I:M,X=w?z:u,j=!y&&g(L,c,d),U=!q&&E,et=[U,z,j,X].map((D=>Ae(D)&&!le(D)&&D)),W=D=>D&&ro(et,D),rt=!W(z)&&V(z)?z:u,O=w?I:z,h={dt:u,vt:X,L:z,rn:j,ht:U,gt:O,Kt:w?$:z,ln:C?I:rt,Gt:$,bt:C,Tt:i,V:y,an:N,wt:D=>An(z,Tt,D),yt:(D,Z)=>$e(z,Tt,D,Z),St:()=>$e(O,Tt,Hs,!0)},{dt:m,vt:v,rn:P,L:f,ht:x}=h,_=[()=>{Et(v,[Mt,Ke]),Et(m,Ke),C&&Et(I,[Ke,Mt])}];let A=sn([x,f,P,v,m].find((D=>D&&!W(D))));const Y=w?m:x||f,R=k(gt,_);return[h,()=>{const D=N(),Z=cn(),F=nt=>{pt(le(nt),sn(nt)),Kt(nt)},ot=nt=>st(nt,"focusin focusout focus blur",ko,{A:!0,I:!1}),ut="tabindex",lt=Cn(f,ut),it=ot(Z);return Lt(v,Mt,y?"":As),Lt(P,fn,""),Lt(f,Tt,""),Lt(x,qn,""),y||(Lt(f,ut,lt||"-1"),C&&Lt(I,jn,"")),pt(Y,A),pt(v,P),pt(P||v,!y&&f),pt(f,x),ct(_,[it,()=>{const nt=cn(),tt=W(f),at=tt&&nt===f?m:nt,dt=ot(at);Et(P,fn),Et(x,qn),Et(f,Tt),C&&Et(I,jn),lt?Lt(f,ut,lt):Et(f,ut),W(x)&&F(x),tt&&F(f),W(P)&&F(P),un(at),dt()}]),o&&!y&&(On(f,Tt,Ro),ct(_,k(Et,f,Tt))),un(!y&&C&&Z===m&&D.top===D?f:Z),it(),A=0,R},R]},lc=({ht:t})=>({Qt:e,un:n,At:o})=>{const{$t:s}=e||{},{Ot:c}=n;t&&(s||o)&&ae(t,{[Pe]:c&&"100%"})},ac=({vt:t,rn:e,L:n,V:o},s)=>{const[c,r]=ht({i:ms,o:Vn()},k(Vn,t,"padding",""));return({zt:a,Qt:i,un:p,At:l})=>{let[d,b]=r(l);const{U:S}=At(),{_t:u,xt:C,Ct:$}=i||{},{B:I}=p,[N,K]=a("paddingAbsolute");(u||b||(l||C))&&([d,b]=c(l));const L=!o&&(K||$||b);if(L){const H=!N||!e&&!S,B=d.r+d.l,V=d.t+d.b,M={[po]:H&&!I?-B:0,[mo]:H?-V:0,[fo]:H&&I?-B:0,top:H?-d.t:0,right:H?I?-d.r:"auto":0,left:H?I?"auto":-d.l:0,[Be]:H&&`calc(100% + ${B}px)`},y={[io]:H?d.t:0,[lo]:H?d.r:0,[uo]:H?d.b:0,[ao]:H?d.l:0};ae(e||n,M),ae(n,y),G(s,{rn:d,fn:!H,F:e?y:G({},M,y)})}return{_n:L}}},uc=(t,e)=>{const n=At(),{vt:o,rn:s,L:c,V:r,Kt:a,gt:i,bt:p,yt:l,an:d}=t,{U:b}=n,S=p&&r,u=k(oo,0),C={display:()=>!1,direction:m=>m!=="ltr",flexDirection:m=>m.endsWith("-reverse"),writingMode:m=>m!=="horizontal-tb"},$=ft(C),I={i:ho,o:{w:0,h:0}},N={i:Se,o:{}},K=m=>{l(Po,!S&&m)},g=()=>Ot(c,$),L=(m,v)=>{const P=!ft(m).length,f=!v&&$.some((lt=>{const it=m[lt];return Qt(it)&&C[lt](it)}));if(P&&!f||!Ss(c))return{D:{x:0,y:0},M:{x:1,y:1}};K(!0);const _=yt(i),A=st(a,Gt,(lt=>{const it=yt(i);lt.isTrusted&&it.x===_.x&&it.y===_.y&&Io(lt)}),{A:!0,T:!0}),Y=l(Is,!0);Ct(i,{x:0,y:0}),Y();const R=yt(i),Q=He(i);Ct(i,{x:Q.w,y:Q.h});const D=yt(i),Z={x:D.x-R.x,y:D.y-R.y};Ct(i,{x:-Q.w,y:-Q.h});const F=yt(i),ot={x:F.x-R.x,y:F.y-R.y},ut={x:It(Z.x)>=It(ot.x)?D.x:F.x,y:It(Z.y)>=It(ot.y)?D.y:F.y};return Ct(i,_),yn((()=>A())),{D:R,M:ut}},H=(m,v)=>{const P=mt.devicePixelRatio%1!==0?1:0,f={w:u(m.w-v.w),h:u(m.h-v.h)};return{w:f.w>P?f.w:0,h:f.h>P?f.h:0}},B=(m,v)=>{const P=(f,x,_,A)=>{const Y=f===$t?xt:js(f),R=jt(f),Q=jt(_);return!x&&!A?xt:R&&Q?$t:R?x&&A?Y:x?$t:xt:x?Y:Q&&A?$t:xt};return{x:P(v.x,m.x,v.y,m.y),y:P(v.y,m.y,v.x,m.x)}},V=m=>{const v=f=>[$t,xt,Gt].map((x=>h(mn(x),f))),P=v(!0).concat(v()).join(" ");l(P),l(ft(m).map((f=>h(m[f],f==="x"))).join(" "),!0)},[M,y]=ht(I,k(Tn,c)),[w,E]=ht(I,k(He,c)),[q,z]=ht(I),[X]=ht(N),[j,U]=ht(I),[et]=ht(N),[W]=ht({i:(m,v)=>Re(m,v,Te(Yt(ft(m),ft(v)))),o:{}}),[rt,O]=ht({i:(m,v)=>Se(m.D,v.D)&&Se(m.M,v.M),o:Mo()}),T=Zt(In),h=(m,v)=>`${v?Ls:Ts}${ps(m)}`;return({zt:m,Qt:v,un:P,At:f},{_n:x})=>{const{_t:_,Ht:A,xt:Y,Ct:R,ft:Q,Et:D}=v||{},Z=T&&T.R(t,e,P,n,m),{X:F,Y:ot,W:ut}=Z||{},[lt,it]=Ws(m,n),[nt,tt]=m("overflow"),at=jt(nt.x),dt=jt(nt.y),_t=_||x||Y||R||D||it;let Bt=y(f),te=E(f),ue=z(f),de=U(f);if(it&&b&&l(Ro,!lt),_t){An(o,Mt,Ce)&&K(!0);const Dn=ot&&ot(),[ye]=Bt=M(f),[ge]=te=w(f),ve=$o(c),be=S&&xs(d()),ts={w:u(ge.w+ye.w),h:u(ge.h+ye.h)},_n={w:u((be?be.w:ve.w+u(ve.w-ge.w))+ye.w),h:u((be?be.h:ve.h+u(ve.h-ge.h))+ye.h)};Dn&&Dn(),de=j(_n),ue=q(H(ts,_n),f)}const[fe,pe]=de,[Pt,zt]=ue,[Ve,Fe]=te,[Ue,We]=Bt,[wt,je]=X({x:Pt.w>0,y:Pt.h>0}),ee=at&&dt&&(wt.x||wt.y)||at&&wt.x&&!wt.y||dt&&wt.y&&!wt.x,qe=x||R||D||We||Fe||pe||zt||tt||it||_t||A&&S,[Vt]=m("update.flowDirectionStyles"),[ne,oe]=W(Vt?Vt(c):g(),f),me=R||Q||oe||je||f,[he,Qo]=me?rt(L(ne,!!Vt),f):O();let se=B(wt,nt);K(!1),qe&&(V(se),se=qs(c,wt),ut&&F&&(F(se,Ve,Ue),ae(c,ut(se))));const[Zo,Jo]=et(se);return $e(o,Mt,Ce,ee),$e(s,fn,Ce,ee),G(e,{cn:Zo,Vt:{x:fe.w,y:fe.h},Rt:{x:Pt.w,y:Pt.h},j:wt,Dt:Es(he,Pt)}),{sn:Jo,tn:pe,nn:zt,en:Qo||zt}}},dc=t=>{const[e,n,o]=ic(t),s={rn:{t:0,r:0,b:0,l:0},fn:!1,F:{[po]:0,[mo]:0,[fo]:0,[io]:0,[lo]:0,[uo]:0,[ao]:0},Vt:{x:0,y:0},Rt:{x:0,y:0},cn:{x:xt,y:xt},j:{x:!1,y:!1},Dt:Mo()},{dt:c,gt:r,V:a,St:i}=e,{U:p,k:l}=At(),d=!p&&(l.x||l.y),b=[lc(e),ac(e,s),uc(e,s)];return[n,S=>{const u={},$=d&&yt(r),I=$&&i();return J(b,(N=>{G(u,N(S,u)||{})})),Ct(r,$),I&&I(),a||Ct(c,0),u},s,e,o]},fc=(t,e,n,o,s)=>{let c=!1;const r=Jn(e,{}),[a,i,p,l,d]=dc(t),[b,S,u]=ec(l,p,r,(g=>{K({},g)})),[C,$,,I]=rc(t,e,u,p,l,s),N=g=>ft(g).some((L=>!!g[L])),K=(g,L)=>{if(n())return!1;const{dn:H,At:B,It:V,pn:M}=g,y=H||{},w=!!B||!c,E={zt:Jn(e,y,w),dn:y,At:w};if(M)return $(E),!1;const q=L||S(G({},E,{It:V})),z=i(G({},E,{un:u,Qt:q}));$(G({},E,{Qt:q,Zt:z}));const X=N(q),j=N(z),U=X||j||!En(y)||w;return c=!0,U&&o(g,{Qt:q,Zt:z}),U};return[()=>{const{ln:g,gt:L,St:H}=l,B=yt(g),V=[b(),a(),C()],M=H();return Ct(L,B),M(),k(gt,V)},K,()=>({vn:u,gn:p}),{hn:l,bn:I},d]},kn=new WeakMap,pc=(t,e)=>{kn.set(t,e)},mc=t=>{kn.delete(t)},Xo=t=>kn.get(t),Ht=(t,e,n)=>{const{tt:o}=At(),s=Ae(t),c=s?t:t.target,r=Xo(c);if(e&&!r){let a=!1;const i=[],p={},l=y=>{const w=vo(y),E=Zt(Os);return E?E(w,!0):w},d=G({},o(),l(e)),[b,S,u]=dn(),[C,$,I]=dn(n),N=(y,w)=>{I(y,w),u(y,w)},[K,g,L,H,B]=fc(t,d,(()=>a),(({dn:y,At:w},{Qt:E,Zt:q})=>{const{_t:z,Ct:X,$t:j,xt:U,Ht:et,ft:W}=E,{tn:rt,nn:O,sn:T,en:h}=q;N("updated",[M,{updateHints:{sizeChanged:!!z,directionChanged:!!X,heightIntrinsicChanged:!!j,overflowEdgeChanged:!!rt,overflowAmountChanged:!!O,overflowStyleChanged:!!T,scrollCoordinatesChanged:!!h,contentMutation:!!U,hostMutation:!!et,appear:!!W},changedOptions:y||{},force:!!w}])}),(y=>N("scroll",[M,y]))),V=y=>{mc(c),gt(i),a=!0,N("destroyed",[M,y]),S(),$()},M={options(y,w){if(y){const E=w?o():{},q=Fo(d,G(E,l(y)));En(q)||(G(d,q),g({dn:q}))}return G({},d)},on:C,off:(y,w)=>{y&&w&&$(y,w)},state(){const{vn:y,gn:w}=L(),{B:E}=y,{Vt:q,Rt:z,cn:X,j,rn:U,fn:et,Dt:W}=w;return G({},{overflowEdge:q,overflowAmount:z,overflowStyle:X,hasOverflow:j,scrollCoordinates:{start:W.D,end:W.M},padding:U,paddingAbsolute:et,directionRTL:E,destroyed:a})},elements(){const{dt:y,vt:w,rn:E,L:q,ht:z,gt:X,Kt:j}=H.hn,{jt:U,Jt:et}=H.bn,W=O=>{const{Mt:T,Ut:h,Lt:m}=O;return{scrollbar:m,track:h,handle:T}},rt=O=>{const{Xt:T,Yt:h}=O,m=W(T[0]);return G({},m,{clone:()=>{const v=W(h());return g({pn:!0}),v}})};return G({},{target:y,host:w,padding:E||q,viewport:q,content:z||q,scrollOffsetElement:X,scrollEventElement:j,scrollbarHorizontal:rt(U),scrollbarVertical:rt(et)})},update:y=>g({At:y,It:!0}),destroy:k(V,!1),plugin:y=>p[ft(y)[0]]};return ct(i,[B]),pc(c,M),Bo(Do,Ht,[M,b,p]),oc(H.hn.bt,!s&&t.cancel)?(V(!0),M):(ct(i,K()),N("initialized",[M]),M.update(),M)}return r};Ht.plugin=t=>{const e=bt(t),n=e?t:[t],o=n.map((s=>Bo(s,Ht)[0]));return Cs(n),e?o:o[0]};Ht.valid=t=>{const e=t&&t.elements,n=St(e)&&e();return re(n)&&!!Xo(n.target)};Ht.env=()=>{const{P:t,k:e,U:n,J:o,ot:s,st:c,K:r,Z:a,tt:i,nt:p}=At();return G({},{scrollbarsSize:t,scrollbarsOverlaid:e,scrollbarsHiding:n,scrollTimeline:o,staticDefaultInitialization:s,staticDefaultOptions:c,getDefaultInitialization:r,setDefaultInitialization:a,getDefaultOptions:i,setDefaultOptions:p})};Ht.nonce=Qs;Ht.trustedTypePolicy=vs;const hn=!!document.getElementById("banner-wrapper");function Mn(t,e){document.addEventListener("click",n=>{let o=document.getElementById(t),s=n.target;if(s instanceof Node){for(let c of e){let r=document.getElementById(c);if(r==s||r?.contains(s))return}o.classList.add("float-panel-closed")}})}Mn("display-setting",["display-setting","display-settings-switch"]);Mn("nav-menu-panel",["nav-menu-panel","nav-menu-switch"]);Mn("search-panel",["search-panel","search-bar","search-switch"]);function hc(){const t=ns();os(t)}function yc(){ss(cs())}function Yo(){const t=document.querySelector("body");if(!t)return;Ht({target:t,cancel:{nativeScrollbarsOverlaid:!0}},{scrollbars:{theme:"scrollbar-base scrollbar-auto py-1",autoHide:"move",autoHideDelay:500,autoHideSuspend:!1}});const e=document.querySelectorAll(".katex-display"),n={root:null,rootMargin:"100px",threshold:.1},o=c=>{if(!c.parentNode||c.hasAttribute("data-scrollbar-initialized"))return;const r=document.createElement("div");r.className="katex-display-container",r.setAttribute("aria-label","scrollable container for formulas"),c.parentNode.insertBefore(r,c),r.appendChild(c),Ht(r,{scrollbars:{theme:"scrollbar-base scrollbar-auto",autoHide:"leave",autoHideDelay:500,autoHideSuspend:!1}}),c.setAttribute("data-scrollbar-initialized","true")},s=new IntersectionObserver((c,r)=>{c.forEach(a=>{a.isIntersecting&&(o(a.target),r.unobserve(a.target))})},n);e.forEach(c=>{s.observe(c)})}function Go(){const t=document.getElementById("banner");if(!t){console.error("Banner element not found");return}t.classList.remove("opacity-0","scale-105")}function gc(){const t=new Event("loadComment");document.dispatchEvent(t)}function Ko(){const t=document.querySelector("body"),e=document.getElementById("g-pointer-1"),n=document.getElementById("g-pointer-2");if(!e||!n)return;if(window.matchMedia("(hover: none) or (pointer: coarse)").matches){n.style.display="none";return}e.offsetWidth/2;const s=n.offsetWidth/2;function c(r,a){n&&(n.style.transform=`translate(${r-s+1}px, ${a-s+1}px)`)}t?.addEventListener("mousemove",r=>{window.requestAnimationFrame(function(){c(r.clientX,r.clientY)})})}function eo(){hc(),yc(),Yo(),Go(),Ko()}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",eo):eo();const no=()=>{window.swup.hooks.on("link:click",()=>{if(document.documentElement.style.setProperty("--content-delay","0ms"),!hn)return;let t=window.innerHeight*(en/100)-72-16,e=document.getElementById("navbar-wrapper");!e||!document.body.classList.contains("lg:is-home")||(document.body.scrollTop>=t||document.documentElement.scrollTop>=t)&&e.classList.add("navbar-hidden")}),window.swup.hooks.on("content:replace",()=>{Yo(),gc(),Ko(),Go()}),window.swup.hooks.on("visit:start",t=>{const e=document.querySelector("body");ls(t.to.url,as("/"))?e.classList.add("lg:is-home"):e.classList.remove("lg:is-home");const n=document.getElementById("page-height-extend");n&&n.classList.remove("hidden");let o=document.getElementById("toc-wrapper");o&&o.classList.add("toc-not-ready")}),window.swup.hooks.on("page:view",()=>{const t=document.getElementById("page-height-extend");t&&t.classList.add("hidden")}),window.swup.hooks.on("visit:end",t=>{setTimeout(()=>{const e=document.getElementById("page-height-extend");e&&e.classList.add("hidden");const n=document.getElementById("toc-wrapper");n&&n.classList.remove("toc-not-ready")},200)})};window?.swup?.hooks?no():document.addEventListener("swup:enable",no);let Ze=document.getElementById("back-to-top-btn"),Je=document.getElementById("toc-wrapper"),tn=document.getElementById("navbar-wrapper");function vc(){let t=window.innerHeight*(en/100);if(Ze&&(document.body.scrollTop>t||document.documentElement.scrollTop>t?Ze.classList.remove("hide"):Ze.classList.add("hide")),hn&&Je&&(document.body.scrollTop>t||document.documentElement.scrollTop>t?Je.classList.remove("toc-hide"):Je.classList.add("toc-hide")),!!hn&&tn){const n=rs*16;let o=en;document.body.classList.contains("lg:is-home")&&window.innerWidth>=1024&&(o=is);let s=window.innerHeight*(o/100)-72-n-16;document.body.scrollTop>=s||document.documentElement.scrollTop>=s?tn.classList.add("navbar-hidden"):tn.classList.remove("navbar-hidden")}}window.onscroll=vc;window.onresize=()=>{let t=Math.floor(window.innerHeight*(es/100));t=t-t%4,document.documentElement.style.setProperty("--banner-height-extend",`${t}px`)};function Ie(){const t=document.getElementById("safe-redirect-modal"),e=document.getElementById("external-link-url"),n=document.getElementById("redirect-confirm");let o="";function s(){t&&t.classList.add("hidden"),o=""}function c(){o&&(window.open(o,"_blank"),s())}n&&n.addEventListener("click",c);const r=document.getElementById("redirect-close");r&&r.addEventListener("click",s),t&&t.addEventListener("click",i=>{i.target===t&&s()});function a(i){const l=i.target.closest("a");if(!l)return;const d=l.getAttribute("href");if(!(!d||d.startsWith("#")||d.startsWith("javascript:"))&&!d.startsWith("/"))try{const b=new URL(d,window.location.origin),S=b.hostname;!(S==="allen2030.com"||S.endsWith(".allen2030.com"))&&b.protocol.startsWith("http")&&(i.preventDefault(),i.stopPropagation(),i.stopImmediatePropagation(),o=d,e&&(e.textContent=d),t&&t.classList.remove("hidden"))}catch(b){console.error("Invalid URL:",b)}}document.addEventListener("click",a,!0)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",Ie):Ie();window?.swup?.hooks?window.swup.hooks.on("page:view",Ie):document.addEventListener("swup:enable",()=>{window.swup.hooks.on("page:view",Ie)}); diff --git a/_astro/LightDarkSwitch.CvGqrYM8.js b/_astro/LightDarkSwitch.CvGqrYM8.js new file mode 100644 index 0000000..2810ca8 --- /dev/null +++ b/_astro/LightDarkSwitch.CvGqrYM8.js @@ -0,0 +1 @@ +import{o as te,a as k,b as r}from"./translation.D40iFv2g.js";import{$ as ae,a0 as se,j as ne,a as P,p as le,b as oe,a1 as ie,a2 as re,s as K,g as n,c as a,r as s,d as l,t as ce,e as x,k as z,f as de}from"./render.nCRzbnaE.js";import{i as me,I as c}from"./Icon.DxCdS7bP.js";import{g as ue,A as d,a as ve,L as f,D as g,s as pe}from"./setting-utils.DIFyzipl.js";import{I as w}from"./zh_TW.GNQQ5Uve.js";var be=de('');function ke(C,G){oe(G,!0);const v=[f,g,d];let t=ie(re(d));te(()=>{K(t,ue(),!0);const e=window.matchMedia("(prefers-color-scheme: dark)"),o=i=>{n(t)===d&&ve(n(t))};return e.addEventListener("change",o),()=>{e.removeEventListener("change",o)}});function p(e){K(t,e,!0),pe(e)}function H(){let e=0;for(;e{var o=be(),i=a(o);i.__click=H;var b=a(i);let D;var F=a(b);c(F,{icon:"material-symbols:wb-sunny-outline-rounded",class:"text-[1.25rem]"}),s(b);var h=l(b,2);let L;var J=a(h);c(J,{icon:"material-symbols:dark-mode-outline-rounded",class:"text-[1.25rem]"}),s(h);var y=l(h,2);let S;var N=a(y);c(N,{icon:"material-symbols:radio-button-partial-outline",class:"text-[1.25rem]"}),s(y),s(i);var T=l(i,2),E=a(T),m=a(E);let I;m.__click=()=>p(f);var j=a(m);c(j,{icon:"material-symbols:wb-sunny-outline-rounded",class:"text-[1.25rem] mr-3"});var Q=l(j);s(m);var u=l(m,2);let O;u.__click=()=>p(g);var $=a(u);c($,{icon:"material-symbols:dark-mode-outline-rounded",class:"text-[1.25rem] mr-3"});var V=l($);s(u);var _=l(u,2);let q;_.__click=()=>p(d);var A=a(_);c(A,{icon:"material-symbols:radio-button-partial-outline",class:"text-[1.25rem] mr-3"});var X=l(A);s(_),s(E),s(T),s(o),ce((Y,Z,ee)=>{D=r(b,1,"absolute",null,D,{"opacity-0":n(t)!==f}),L=r(h,1,"absolute",null,L,{"opacity-0":n(t)!==g}),S=r(y,1,"absolute",null,S,{"opacity-0":n(t)!==d}),I=r(m,1,"flex transition whitespace-nowrap items-center !justify-start w-full btn-plain scale-animation rounded-lg h-9 px-3 font-medium active:scale-95 mb-0.5",null,I,{"current-theme-btn":n(t)===f}),x(Q,` ${Y??""}`),O=r(u,1,"flex transition whitespace-nowrap items-center !justify-start w-full btn-plain scale-animation rounded-lg h-9 px-3 font-medium active:scale-95 mb-0.5",null,O,{"current-theme-btn":n(t)===g}),x(V,` ${Z??""}`),q=r(_,1,"flex transition whitespace-nowrap items-center !justify-start w-full btn-plain scale-animation rounded-lg h-9 px-3 font-medium active:scale-95",null,q,{"current-theme-btn":n(t)===d}),x(X,` ${ee??""}`)},[()=>k(w.lightMode),()=>k(w.darkMode),()=>k(w.systemMode)]),z("mouseleave",o,U),z("mouseenter",i,R),P(e,o)};me(W,e=>{e(B)})}P(C,M),le()}ae(["click"]);export{ke as default}; diff --git a/_astro/Search.CiSkGqVZ.js b/_astro/Search.CiSkGqVZ.js new file mode 100644 index 0000000..40d9025 --- /dev/null +++ b/_astro/Search.CiSkGqVZ.js @@ -0,0 +1,4 @@ +import{o as A,i as C,r as G,a as S,s as L}from"./translation.D40iFv2g.js";import{l as H,i as J,j as N,t as z,k as E,g as e,a as T,p as O,b as Q,s as d,d as f,f as M,m as x,c as i,r as l,h as B,u as v,e as U}from"./render.nCRzbnaE.js";import{e as X,i as Z}from"./each.ms7nIH9w.js";import{I as w,h as $}from"./Icon.DxCdS7bP.js";import{b as ee}from"./input.BTugRrM_.js";import{I as R}from"./zh_TW.GNQQ5Uve.js";import{u as F}from"./url-utils.Btk-Imyz.js";/* empty css */var ae=M(`
`),te=M(`
`,1);function pe(j,D){Q(D,!1);let r=x(""),o=x([]),h=!1,c=x(!1);const re=[{url:F("/"),meta:{title:"This Is a Fake Search Result"},excerpt:"Because the search cannot work in the dev environment."},{url:F("/"),meta:{title:"If You Want to Test the Search"},excerpt:"Try running npm build && npm preview instead."}],K=()=>{document.getElementById("search-panel")?.classList.toggle("float-panel-closed")},y=(a,s)=>{const t=document.getElementById("search-panel");t&&!a&&(!e(r)||e(r).trim()==="")&&t.classList.add("float-panel-closed")},g=async(a,s)=>{if(!a){d(o,[]);return}if(e(c))try{let t=[];if(h&&window.pagefind){const n=await window.pagefind.search(a);n.results&&n.results.length>0?t=await Promise.all(n.results.map(u=>u.data())):t=[]}else t=[],console.error("Pagefind is not available in production environment.");d(o,t),y(e(o).length>0,s)}catch(t){console.error("Search error:",t),d(o,[]),y(!1)}finally{}};A(()=>{const a=()=>{d(c,!0),h=typeof window<"u"&&!!window.pagefind&&typeof window.pagefind.search=="function",console.log("Pagefind status on init:",h),e(r)&&g(e(r),!1)};document.addEventListener("pagefindready",()=>{console.log("Pagefind ready event received."),a()}),document.addEventListener("pagefindloaderror",()=>{console.warn("Pagefind load error event received. Search functionality will be limited."),a()}),setTimeout(()=>{e(c)||(console.log("Fallback: Initializing search after timeout."),a())},2e3)}),H(()=>(e(c),e(r)),()=>{e(c)&&(async()=>await g(e(r),!1))()}),J(),C();var _=te(),p=N(_),V=i(p);w(V,{icon:"material-symbols:search",class:"text-[1.25rem]"}),l(p);var k=f(p,2),b=i(k),I=i(b);w(I,{icon:"material-symbols:search",class:"absolute text-[1.25rem] pointer-events-none ml-3 transition my-auto text-black/30 dark:text-white/30"});var m=f(I,2);G(m),l(b);var W=f(b,2);X(W,1,()=>e(o),Z,(a,s)=>{var t=ae(),n=i(t),u=i(n,!0),Y=f(u);w(Y,{icon:"fa6-solid:chevron-right",class:"transition text-[0.75rem] translate-x-1 my-auto text-[var(--primary)]"}),l(n);var P=f(n,2),q=i(P);$(q,()=>(e(s),v(()=>e(s).excerpt))),l(P),l(t),z(()=>{L(t,"href",(e(s),v(()=>e(s).url))),U(u,(e(s),v(()=>e(s).meta.title)))}),T(a,t)}),l(k),z(a=>L(m,"placeholder",a),[()=>(B(S),B(R),v(()=>S(R.search)))]),E("click",p,K),ee(m,()=>e(r),a=>d(r,a)),E("input",m,()=>g(e(r),!1)),T(j,_),O()}export{pe as default}; diff --git a/_astro/Swup.CAlgnk7W.js b/_astro/Swup.CAlgnk7W.js new file mode 100644 index 0000000..7a0223d --- /dev/null +++ b/_astro/Swup.CAlgnk7W.js @@ -0,0 +1 @@ +const $=new WeakMap;function x(e,t,i,s){if(!e&&!$.has(t))return!1;const n=$.get(t)??new WeakMap;$.set(t,n);const o=n.get(i)??new Set;n.set(i,o);const r=o.has(s);return e?o.add(s):o.delete(s),r&&e}function R(e,t){let i=e.target;if(i instanceof Text&&(i=i.parentElement),i instanceof Element&&e.currentTarget instanceof Node){const s=i.closest(t);if(s&&e.currentTarget.contains(s))return s}}function D(e,t,i,s={}){const{signal:n,base:o=document}=s;if(n?.aborted)return;const{once:r,...a}=s,l=o instanceof Document?o.documentElement:o,c=!!(typeof s=="object"?s.capture:s),h=m=>{const g=R(m,String(e));if(g){const f=Object.assign(m,{delegateTarget:g});i.call(l,f),r&&(l.removeEventListener(t,h,a),x(!1,l,i,u))}},u=JSON.stringify({selector:e,type:t,capture:c});x(!0,l,i,u)||l.addEventListener(t,h,a),n?.addEventListener("abort",()=>{x(!1,l,i,u)})}function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;tString(e).toLowerCase().replace(/[\s/_.]+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+|-+$/g,"")||t||"",S=({hash:e}={})=>window.location.pathname+window.location.search+(e?window.location.hash:""),j=(e,t={})=>{const i=p({url:e=e||S({hash:!0}),random:Math.random(),source:"swup"},t);window.history.pushState(i,"",e)},b=(e=null,t={})=>{e=e||S({hash:!0});const i=p({},window.history.state||{},{url:e,random:Math.random(),source:"swup"},t);window.history.replaceState(i,"",e)},W=(e,t,i,s)=>{const n=new AbortController;return s=p({},s,{signal:n.signal}),D(e,t,i,s),{destroy:()=>n.abort()}};let v=class P extends URL{constructor(t,i=document.baseURI){super(t.toString(),i),Object.setPrototypeOf(this,P.prototype)}get url(){return this.pathname+this.search}static fromElement(t){const i=t.getAttribute("href")||t.getAttribute("xlink:href")||"";return new P(i)}static fromUrl(t){return new P(t)}};class E extends Error{constructor(t,i){super(t),this.url=void 0,this.status=void 0,this.aborted=void 0,this.timedOut=void 0,this.name="FetchError",this.url=i.url,this.status=i.status,this.aborted=i.aborted||!1,this.timedOut=i.timedOut||!1}}async function B(e,t={}){var i;e=v.fromUrl(e).url;const{visit:s=this.visit}=t,n=p({},this.options.requestHeaders,t.headers),o=(i=t.timeout)!=null?i:this.options.timeout,r=new AbortController,{signal:a}=r;t=p({},t,{headers:n,signal:a});let l,c=!1,h=null;o&&o>0&&(h=setTimeout(()=>{c=!0,r.abort("timeout")},o));try{l=await this.hooks.call("fetch:request",s,{url:e,options:t},(w,{url:k,options:y})=>fetch(k,y)),h&&clearTimeout(h)}catch(w){throw c?(this.hooks.call("fetch:timeout",s,{url:e}),new E(`Request timed out: ${e}`,{url:e,timedOut:c})):w?.name==="AbortError"||a.aborted?new E(`Request aborted: ${e}`,{url:e,aborted:!0}):w}const{status:u,url:d}=l,m=await l.text();if(u===500)throw this.hooks.call("fetch:error",s,{status:u,response:l,url:d}),new E(`Server error: ${d}`,{status:u,url:d});if(!m)throw new E(`Empty response: ${d}`,{status:u,url:d});const{url:g}=v.fromUrl(d),f={url:g,html:m};return!s.cache.write||t.method&&t.method!=="GET"||e!==g||this.cache.set(f.url,f),f}class _{constructor(t){this.swup=void 0,this.pages=new Map,this.swup=t}get size(){return this.pages.size}get all(){const t=new Map;return this.pages.forEach((i,s)=>{t.set(s,p({},i))}),t}has(t){return this.pages.has(this.resolve(t))}get(t){const i=this.pages.get(this.resolve(t));return i&&p({},i)}set(t,i){i=p({},i,{url:t=this.resolve(t)}),this.pages.set(t,i),this.swup.hooks.callSync("cache:set",void 0,{page:i})}update(t,i){t=this.resolve(t);const s=p({},this.get(t),i,{url:t});this.pages.set(t,s)}delete(t){this.pages.delete(this.resolve(t))}clear(){this.pages.clear(),this.swup.hooks.callSync("cache:clear",void 0,void 0)}prune(t){this.pages.forEach((i,s)=>{t(s,i)&&this.delete(s)})}resolve(t){const{url:i}=v.fromUrl(t);return this.swup.resolveUrl(i)}}const L=(e,t=document)=>t.querySelector(e),H=(e,t=document)=>Array.from(t.querySelectorAll(e)),N=()=>new Promise(e=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{e()})})});function q(e){return!!e&&(typeof e=="object"||typeof e=="function")&&typeof e.then=="function"}function F(e,t=[]){return new Promise((i,s)=>{const n=e(...t);q(n)?n.then(i,s):i(n)})}function T(e,t){const i=e?.closest(`[${t}]`);return i!=null&&i.hasAttribute(t)?i?.getAttribute(t)||!0:void 0}class z{constructor(t){this.swup=void 0,this.swupClasses=["to-","is-changing","is-rendering","is-popstate","is-animating","is-leaving"],this.swup=t}get selectors(){const{scope:t}=this.swup.visit.animation;return t==="containers"?this.swup.visit.containers:t==="html"?["html"]:Array.isArray(t)?t:[]}get selector(){return this.selectors.join(",")}get targets(){return this.selector.trim()?H(this.selector):[]}add(...t){this.targets.forEach(i=>i.classList.add(...t))}remove(...t){this.targets.forEach(i=>i.classList.remove(...t))}clear(){this.targets.forEach(t=>{const i=t.className.split(" ").filter(s=>this.isSwupClass(s));t.classList.remove(...i)})}isSwupClass(t){return this.swupClasses.some(i=>t.startsWith(i))}}class M{constructor(t,i){this.id=void 0,this.state=void 0,this.from=void 0,this.to=void 0,this.containers=void 0,this.animation=void 0,this.trigger=void 0,this.cache=void 0,this.history=void 0,this.scroll=void 0,this.meta=void 0;const{to:s,from:n,hash:o,el:r,event:a}=i;this.id=Math.random(),this.state=1,this.from={url:n??t.location.url,hash:t.location.hash},this.to={url:s,hash:o},this.containers=t.options.containers,this.animation={animate:!0,wait:!1,name:void 0,native:t.options.native,scope:t.options.animationScope,selector:t.options.animationSelector},this.trigger={el:r,event:a},this.cache={read:t.options.cache,write:t.options.cache},this.history={action:"push",popstate:!1,direction:void 0},this.scroll={reset:!0,target:void 0},this.meta={}}advance(t){this.state=7}}function K(e){return new M(this,e)}class G{constructor(t){this.swup=void 0,this.registry=new Map,this.hooks=["animation:out:start","animation:out:await","animation:out:end","animation:in:start","animation:in:await","animation:in:end","animation:skip","cache:clear","cache:set","content:replace","content:scroll","enable","disable","fetch:request","fetch:error","fetch:timeout","history:popstate","link:click","link:self","link:anchor","link:newtab","page:load","page:view","scroll:top","scroll:anchor","visit:start","visit:transition","visit:abort","visit:end"],this.swup=t,this.init()}init(){this.hooks.forEach(t=>this.create(t))}create(t){this.registry.has(t)||this.registry.set(t,new Map)}exists(t){return this.registry.has(t)}get(t){const i=this.registry.get(t);if(i)return i;console.error(`Unknown hook '${t}'`)}clear(){this.registry.forEach(t=>t.clear())}on(t,i,s={}){const n=this.get(t);if(!n)return console.warn(`Hook '${t}' not found.`),()=>{};const o=p({},s,{id:n.size+1,hook:t,handler:i});return n.set(i,o),()=>this.off(t,i)}before(t,i,s={}){return this.on(t,i,p({},s,{before:!0}))}replace(t,i,s={}){return this.on(t,i,p({},s,{replace:!0}))}once(t,i,s={}){return this.on(t,i,p({},s,{once:!0}))}off(t,i){const s=this.get(t);s&&i?s.delete(i)||console.warn(`Handler for hook '${t}' not found.`):s&&s.clear()}async call(t,i,s,n){const[o,r,a]=this.parseCallArgs(t,i,s,n),{before:l,handler:c,after:h}=this.getHandlers(t,a);await this.run(l,o,r);const[u]=await this.run(c,o,r,!0);return await this.run(h,o,r),this.dispatchDomEvent(t,o,r),u}callSync(t,i,s,n){const[o,r,a]=this.parseCallArgs(t,i,s,n),{before:l,handler:c,after:h}=this.getHandlers(t,a);this.runSync(l,o,r);const[u]=this.runSync(c,o,r,!0);return this.runSync(h,o,r),this.dispatchDomEvent(t,o,r),u}parseCallArgs(t,i,s,n){return i instanceof M||typeof i!="object"&&typeof s!="function"?[i,s,n]:[void 0,i,s]}async run(t,i=this.swup.visit,s,n=!1){const o=[];for(const{hook:r,handler:a,defaultHandler:l,once:c}of t)if(i==null||!i.done){c&&this.off(r,a);try{const h=await F(a,[i,s,l]);o.push(h)}catch(h){if(n)throw h;console.error(`Error in hook '${r}':`,h)}}return o}runSync(t,i=this.swup.visit,s,n=!1){const o=[];for(const{hook:r,handler:a,defaultHandler:l,once:c}of t)if(i==null||!i.done){c&&this.off(r,a);try{const h=a(i,s,l);o.push(h),q(h)&&console.warn(`Swup will not await Promises in handler for synchronous hook '${r}'.`)}catch(h){if(n)throw h;console.error(`Error in hook '${r}':`,h)}}return o}getHandlers(t,i){const s=this.get(t);if(!s)return{found:!1,before:[],handler:[],after:[],replaced:!1};const n=Array.from(s.values()),o=this.sortRegistrations,r=n.filter(({before:u,replace:d})=>u&&!d).sort(o),a=n.filter(({replace:u})=>u).filter(u=>!0).sort(o),l=n.filter(({before:u,replace:d})=>!u&&!d).sort(o),c=a.length>0;let h=[];if(i&&(h=[{id:0,hook:t,handler:i}],c)){const u=a.length-1,{handler:d,once:m}=a[u],g=f=>{const w=a[f-1];return w?(k,y)=>w.handler(k,y,g(f-1)):i};h=[{id:0,hook:t,once:m,handler:d,defaultHandler:g(u)}]}return{found:!0,before:r,handler:h,after:l,replaced:c}}sortRegistrations(t,i){var s,n;return((s=t.priority)!=null?s:0)-((n=i.priority)!=null?n:0)||t.id-i.id||0}dispatchDomEvent(t,i,s){if(i!=null&&i.done)return;const n={hook:t,args:s,visit:i||this.swup.visit};document.dispatchEvent(new CustomEvent("swup:any",{detail:n,bubbles:!0})),document.dispatchEvent(new CustomEvent(`swup:${t}`,{detail:n,bubbles:!0}))}parseName(t){const[i,...s]=t.split(".");return[i,s.reduce((n,o)=>p({},n,{[o]:!0}),{})]}}const J=e=>{if(e&&e.charAt(0)==="#"&&(e=e.substring(1)),!e)return null;const t=decodeURIComponent(e);let i=document.getElementById(e)||document.getElementById(t)||L(`a[name='${CSS.escape(e)}']`)||L(`a[name='${CSS.escape(t)}']`);return i||e!=="top"||(i=document.body),i},C="transition",A="animation";async function X({selector:e,elements:t}){if(e===!1&&!t)return;let i=[];if(t)i=Array.from(t);else if(e&&(i=H(e,document.body),!i.length))return void console.warn(`[swup] No elements found matching animationSelector \`${e}\``);const s=i.map(n=>(function(o){const{type:r,timeout:a,propCount:l}=(function(c){const h=window.getComputedStyle(c),u=U(h,`${C}Delay`),d=U(h,`${C}Duration`),m=O(u,d),g=U(h,`${A}Delay`),f=U(h,`${A}Duration`),w=O(g,f),k=Math.max(m,w),y=k>0?m>w?C:A:null;return{type:y,timeout:k,propCount:y?y===C?d.length:f.length:0}})(o);return!(!r||!a)&&new Promise(c=>{const h=`${r}end`,u=performance.now();let d=0;const m=()=>{o.removeEventListener(h,g),c()},g=f=>{f.target===o&&((performance.now()-u)/1e3=l&&m())};setTimeout(()=>{d0?await Promise.all(s):e&&console.warn(`[swup] No CSS animation duration defined on elements matching \`${e}\``)}function U(e,t){return(e[t]||"").split(", ")}function O(e,t){for(;e.lengthV(i)+V(e[s])))}function V(e){return 1e3*parseFloat(e)}function Q(e,t={},i={}){if(typeof e!="string")throw new Error("swup.navigate() requires a URL parameter");if(this.shouldIgnoreVisit(e,{el:i.el,event:i.event}))return void window.location.assign(e);const{url:s,hash:n}=v.fromUrl(e),o=this.createVisit(p({},i,{to:s,hash:n}));this.performNavigation(o,t)}async function Y(e,t={}){if(this.navigating){if(this.visit.state>=6)return e.state=2,void(this.onVisitEnd=()=>this.performNavigation(e,t));await this.hooks.call("visit:abort",this.visit,void 0),delete this.visit.to.document,this.visit.state=8}this.navigating=!0,this.visit=e;const{el:i}=e.trigger;t.referrer=t.referrer||this.location.url,t.animate===!1&&(e.animation.animate=!1),e.animation.animate||this.classes.clear();const s=t.history||T(i,"data-swup-history");typeof s=="string"&&["push","replace"].includes(s)&&(e.history.action=s);const n=t.animation||T(i,"data-swup-animation");var o,r;typeof n=="string"&&(e.animation.name=n),e.meta=t.meta||{},typeof t.cache=="object"?(e.cache.read=(o=t.cache.read)!=null?o:e.cache.read,e.cache.write=(r=t.cache.write)!=null?r:e.cache.write):t.cache!==void 0&&(e.cache={read:!!t.cache,write:!!t.cache}),delete t.cache;try{await this.hooks.call("visit:start",e,void 0),e.state=3;const a=this.hooks.call("page:load",e,{options:t},async(c,h)=>{let u;return c.cache.read&&(u=this.cache.get(c.to.url)),h.page=u||await this.fetchPage(c.to.url,h.options),h.cache=!!u,h.page});a.then(({html:c})=>{e.advance(5),e.to.html=c,e.to.document=new DOMParser().parseFromString(c,"text/html")});const l=e.to.url+e.to.hash;if(e.history.popstate||(e.history.action==="replace"||e.to.url===this.location.url?b(l):(this.currentHistoryIndex++,j(l,{index:this.currentHistoryIndex}))),this.location=v.fromUrl(l),e.history.popstate&&this.classes.add("is-popstate"),e.animation.name&&this.classes.add(`to-${I(e.animation.name)}`),e.animation.wait&&await a,e.done||(await this.hooks.call("visit:transition",e,void 0,async()=>{if(!e.animation.animate)return await this.hooks.call("animation:skip",void 0),void await this.renderPage(e,await a);e.advance(4),await this.animatePageOut(e),e.animation.native&&document.startViewTransition?await document.startViewTransition(async()=>await this.renderPage(e,await a)).finished:await this.renderPage(e,await a),await this.animatePageIn(e)}),e.done))return;await this.hooks.call("visit:end",e,void 0,()=>this.classes.clear()),e.state=7,this.navigating=!1,this.onVisitEnd&&(this.onVisitEnd(),this.onVisitEnd=void 0)}catch(a){if(!a||a!=null&&a.aborted)return void(e.state=8);e.state=9,console.error(a),this.options.skipPopStateHandling=()=>(window.location.assign(e.to.url+e.to.hash),!0),window.history.back()}finally{delete e.to.document}}const Z=async function(e){await this.hooks.call("animation:out:start",e,void 0,()=>{this.classes.add("is-changing","is-animating","is-leaving")}),await this.hooks.call("animation:out:await",e,{skip:!1},(t,{skip:i})=>{if(!i)return this.awaitAnimations({selector:t.animation.selector})}),await this.hooks.call("animation:out:end",e,void 0)},tt=function(e){var t;const i=e.to.document;if(!i)return!1;const s=((t=i.querySelector("title"))==null?void 0:t.innerText)||"";document.title=s;const n=H('[data-swup-persist]:not([data-swup-persist=""])'),o=e.containers.map(r=>{const a=document.querySelector(r),l=i.querySelector(r);return a&&l?(a.replaceWith(l.cloneNode(!0)),!0):(a||console.warn(`[swup] Container missing in current document: ${r}`),l||console.warn(`[swup] Container missing in incoming document: ${r}`),!1)}).filter(Boolean);return n.forEach(r=>{const a=r.getAttribute("data-swup-persist"),l=L(`[data-swup-persist="${a}"]`);l&&l!==r&&l.replaceWith(r)}),o.length===e.containers.length},et=function(e){const t={behavior:"auto"},{target:i,reset:s}=e.scroll,n=i??e.to.hash;let o=!1;return n&&(o=this.hooks.callSync("scroll:anchor",e,{hash:n,options:t},(r,{hash:a,options:l})=>{const c=this.getAnchorElement(a);return c&&c.scrollIntoView(l),!!c})),s&&!o&&(o=this.hooks.callSync("scroll:top",e,{options:t},(r,{options:a})=>(window.scrollTo(p({top:0,left:0},a)),!0))),o},it=async function(e){if(e.done)return;const t=this.hooks.call("animation:in:await",e,{skip:!1},(i,{skip:s})=>{if(!s)return this.awaitAnimations({selector:i.animation.selector})});await N(),await this.hooks.call("animation:in:start",e,void 0,()=>{this.classes.remove("is-animating")}),await t,await this.hooks.call("animation:in:end",e,void 0)},st=async function(e,t){if(e.done)return;e.advance(6);const{url:i}=t;this.isSameResolvedUrl(S(),i)||(b(i),this.location=v.fromUrl(i),e.to.url=this.location.url,e.to.hash=this.location.hash),await this.hooks.call("content:replace",e,{page:t},(s,{})=>{if(this.classes.remove("is-leaving"),s.animation.animate&&this.classes.add("is-rendering"),!this.replaceContent(s))throw new Error("[swup] Container mismatch, aborting");s.animation.animate&&(this.classes.add("is-changing","is-animating","is-rendering"),s.animation.name&&this.classes.add(`to-${I(s.animation.name)}`))}),await this.hooks.call("content:scroll",e,void 0,()=>this.scrollToContent(e)),await this.hooks.call("page:view",e,{url:this.location.url,title:document.title})},nt=function(e){var t;if(t=e,!!t?.isSwupPlugin){if(e.swup=this,!e._checkRequirements||e._checkRequirements())return e._beforeMount&&e._beforeMount(),e.mount(),this.plugins.push(e),this.plugins}else console.error("Not a swup plugin instance",e)};function ot(e){const t=this.findPlugin(e);if(t)return t.unmount(),t._afterUnmount&&t._afterUnmount(),this.plugins=this.plugins.filter(i=>i!==t),this.plugins;console.error("No such plugin",t)}function rt(e){return this.plugins.find(t=>t===e||t.name===e||t.name===`Swup${String(e)}`)}function at(e){if(typeof this.options.resolveUrl!="function")return console.warn("[swup] options.resolveUrl expects a callback function."),e;const t=this.options.resolveUrl(e);return t&&typeof t=="string"?t.startsWith("//")||t.startsWith("http")?(console.warn("[swup] options.resolveUrl needs to return a relative url"),e):t:(console.warn("[swup] options.resolveUrl needs to return a url"),e)}function lt(e,t){return this.resolveUrl(e)===this.resolveUrl(t)}const ht={animateHistoryBrowsing:!1,animationSelector:'[class*="transition-"]',animationScope:"html",cache:!0,containers:["#swup"],hooks:{},ignoreVisit:(e,{el:t}={})=>!(t==null||!t.closest("[data-no-swup]")),linkSelector:"a[href]",linkToSelf:"scroll",native:!1,plugins:[],resolveUrl:e=>e,requestHeaders:{"X-Requested-With":"swup",Accept:"text/html, application/xhtml+xml"},skipPopStateHandling:e=>{var t;return((t=e.state)==null?void 0:t.source)!=="swup"},timeout:0};class ct{get currentPageUrl(){return this.location.url}constructor(t={}){var i,s;this.version="4.8.2",this.options=void 0,this.defaults=ht,this.plugins=[],this.visit=void 0,this.cache=void 0,this.hooks=void 0,this.classes=void 0,this.location=v.fromUrl(window.location.href),this.currentHistoryIndex=void 0,this.clickDelegate=void 0,this.navigating=!1,this.onVisitEnd=void 0,this.use=nt,this.unuse=ot,this.findPlugin=rt,this.log=()=>{},this.navigate=Q,this.performNavigation=Y,this.createVisit=K,this.delegateEvent=W,this.fetchPage=B,this.awaitAnimations=X,this.renderPage=st,this.replaceContent=tt,this.animatePageIn=it,this.animatePageOut=Z,this.scrollToContent=et,this.getAnchorElement=J,this.getCurrentUrl=S,this.resolveUrl=at,this.isSameResolvedUrl=lt,this.options=p({},this.defaults,t),this.handleLinkClick=this.handleLinkClick.bind(this),this.handlePopState=this.handlePopState.bind(this),this.cache=new _(this),this.classes=new z(this),this.hooks=new G(this),this.visit=this.createVisit({to:""}),this.currentHistoryIndex=(i=(s=window.history.state)==null?void 0:s.index)!=null?i:1,this.enable()}async enable(){var t;const{linkSelector:i}=this.options;this.clickDelegate=this.delegateEvent(i,"click",this.handleLinkClick),window.addEventListener("popstate",this.handlePopState),this.options.animateHistoryBrowsing&&(window.history.scrollRestoration="manual"),this.options.native=this.options.native&&!!document.startViewTransition,this.options.plugins.forEach(s=>this.use(s));for(const[s,n]of Object.entries(this.options.hooks)){const[o,r]=this.hooks.parseName(s);this.hooks.on(o,n,r)}((t=window.history.state)==null?void 0:t.source)!=="swup"&&b(null,{index:this.currentHistoryIndex}),await N(),await this.hooks.call("enable",void 0,void 0,()=>{const s=document.documentElement;s.classList.add("swup-enabled"),s.classList.toggle("swup-native",this.options.native)})}async destroy(){this.clickDelegate.destroy(),window.removeEventListener("popstate",this.handlePopState),this.cache.clear(),this.options.plugins.forEach(t=>this.unuse(t)),await this.hooks.call("disable",void 0,void 0,()=>{const t=document.documentElement;t.classList.remove("swup-enabled"),t.classList.remove("swup-native")}),this.hooks.clear()}shouldIgnoreVisit(t,{el:i,event:s}={}){const{origin:n,url:o,hash:r}=v.fromUrl(t);return n!==window.location.origin||!(!i||!this.triggerWillOpenNewWindow(i))||!!this.options.ignoreVisit(o+r,{el:i,event:s})}handleLinkClick(t){const i=t.delegateTarget,{href:s,url:n,hash:o}=v.fromElement(i);if(this.shouldIgnoreVisit(s,{el:i,event:t}))return;if(this.navigating&&n===this.visit.to.url)return void t.preventDefault();const r=this.createVisit({to:n,hash:o,el:i,event:t});t.metaKey||t.ctrlKey||t.shiftKey||t.altKey?this.hooks.callSync("link:newtab",r,{href:s}):t.button===0&&this.hooks.callSync("link:click",r,{el:i,event:t},()=>{var a;const l=(a=r.from.url)!=null?a:"";t.preventDefault(),n&&n!==l?this.isSameResolvedUrl(n,l)||this.performNavigation(r):o?this.hooks.callSync("link:anchor",r,{hash:o},()=>{b(n+o),this.scrollToContent(r)}):this.hooks.callSync("link:self",r,void 0,()=>{this.options.linkToSelf==="navigate"?this.performNavigation(r):(b(n),this.scrollToContent(r))})})}handlePopState(t){var i,s,n,o;const r=(i=(s=t.state)==null?void 0:s.url)!=null?i:window.location.href;if(this.options.skipPopStateHandling(t)||this.isSameResolvedUrl(S(),this.location.url))return;const{url:a,hash:l}=v.fromUrl(r),c=this.createVisit({to:a,hash:l,event:t});c.history.popstate=!0;const h=(n=(o=t.state)==null?void 0:o.index)!=null?n:0;h&&h!==this.currentHistoryIndex&&(c.history.direction=h-this.currentHistoryIndex>0?"forwards":"backwards",this.currentHistoryIndex=h),c.animation.animate=!1,c.scroll.reset=!1,c.scroll.target=!1,this.options.animateHistoryBrowsing&&(c.animation.animate=!0,c.scroll.reset=!0),this.hooks.callSync("history:popstate",c,{event:t},()=>{this.performNavigation(c)})}triggerWillOpenNewWindow(t){return!!t.matches('[download], [target="_blank"]')}}const ut=Object.freeze(Object.defineProperty({__proto__:null,default:ct},Symbol.toStringTag,{value:"Module"}));export{ut as S,v as l,H as m,S as n}; diff --git a/_astro/SwupA11yPlugin.BoEaImyy.js b/_astro/SwupA11yPlugin.BoEaImyy.js new file mode 100644 index 0000000..c430c44 --- /dev/null +++ b/_astro/SwupA11yPlugin.BoEaImyy.js @@ -0,0 +1 @@ +import{e as g}from"./index.modern.D46RI4Wq.js";import{l as y}from"./Swup.CAlgnk7W.js";(function(){if(!(typeof window>"u"||typeof document>"u"||typeof HTMLElement>"u")){var s=!1;try{var t=document.createElement("div");t.addEventListener("focus",function(i){i.preventDefault(),i.stopPropagation()},!0),t.focus(Object.defineProperty({},"preventScroll",{get:function(){if(navigator&&typeof navigator.userAgent<"u"&&navigator.userAgent&&navigator.userAgent.match(/Edge\/1[7-8]/))return s=!1;s=!0}}))}catch{}if(HTMLElement.prototype.nativeFocus===void 0&&!s){HTMLElement.prototype.nativeFocus=HTMLElement.prototype.focus;var n=function(i){for(var e=i.parentNode,u=[],a=document.scrollingElement||document.documentElement;e&&e!==a;)(e.offsetHeightn.replace(`{${o}}`,t[o]||""),s||"")}class w{constructor(){var t;this.id="swup-announcer",this.style="position:absolute;top:0;left:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;word-wrap:normal;width:1px;height:1px;",this.region=void 0,this.region=(t=this.getRegion())!=null?t:this.createRegion()}getRegion(){return document.getElementById(this.id)}createRegion(){const t=(function(n){const o=document.createElement("template");return o.innerHTML=n,o.content.children[0]})(`

`);return document.body.appendChild(t),t}announce(t,n=0){return new Promise(o=>{setTimeout(()=>{this.region.textContent===t&&(t=`${t}.`),this.region.textContent="",this.region.textContent=t,o()},n)})}}function m(s){let t;if(t=typeof s=="string"?document.querySelector(s):s,!(t instanceof HTMLElement))return;const n=t.getAttribute("tabindex");t.setAttribute("tabindex","-1"),t.focus({preventScroll:!0}),n!==null&&t.setAttribute("tabindex",n)}class S extends g{constructor(t={}){super(),this.name="SwupA11yPlugin",this.requires={swup:">=4"},this.defaults={headingSelector:"h1",respectReducedMotion:!0,autofocus:!1,announcements:{visit:"Navigated to: {title}",url:"New page at {url}"}},this.options=void 0,this.announcer=void 0,this.announcementDelay=100,this.rootSelector="body",this.handleAnchorScroll=(n,{hash:o})=>{const r=this.swup.getAnchorElement(o);r instanceof HTMLElement&&m(r)},this.options=h({},this.defaults,t),this.announcer=new w}mount(){this.swup.hooks.create("content:announce"),this.swup.hooks.create("content:focus"),this.before("visit:start",this.prepareVisit),this.on("visit:start",this.markAsBusy),this.on("visit:end",this.unmarkAsBusy),this.on("visit:end",this.focusContent),this.on("visit:end",this.announceContent),this.on("scroll:anchor",this.handleAnchorScroll),this.before("visit:start",this.disableAnimations),this.before("link:self",this.disableAnimations),this.before("link:anchor",this.disableAnimations),this.swup.announce=this.announce.bind(this)}unmount(){this.swup.announce=void 0}async announce(t){await this.announcer.announce(t)}markAsBusy(){document.documentElement.setAttribute("aria-busy","true")}unmarkAsBusy(){document.documentElement.removeAttribute("aria-busy")}prepareVisit(t){t.a11y={announce:void 0,focus:this.rootSelector}}announceContent(t){this.swup.hooks.callSync("content:announce",t,void 0,n=>{n.a11y.announce===void 0&&(n.a11y.announce=this.getPageAnnouncement()),n.a11y.announce&&this.announcer.announce(n.a11y.announce,this.announcementDelay)})}focusContent(t){this.swup.hooks.callSync("content:focus",t,void 0,n=>{n.a11y.focus&&(this.options.autofocus&&(function(){const o=(function(){const r=document.querySelector("body [autofocus]");if(r&&!r.closest('[inert], [aria-disabled], [aria-hidden="true"]'))return r})();return!!o&&(o!==document.activeElement&&o.focus(),!0)})()===!0||m(n.a11y.focus))})}getPageAnnouncement(){const{headingSelector:t,announcements:n}=this.options;return(function({headingSelector:o="h1",announcements:r={}}){var i,e;const u=document.documentElement.lang||"*",{href:a,url:d,pathname:f}=y.fromUrl(window.location.href),l=(i=(e=r[u])!=null?e:r["*"])!=null?i:r;if(typeof l!="object")return;const c=document.querySelector(o);c||console.warn(`SwupA11yPlugin: No main heading (${o}) found on new page`);const v=c?.getAttribute("aria-label")||c?.textContent||document.title||p(l.url,{href:a,url:d,path:f});return p(l.visit,{title:v,href:a,url:d,path:f})})({headingSelector:t,announcements:n})}disableAnimations(t){this.options.respectReducedMotion&&window.matchMedia("(prefers-reduced-motion: reduce)").matches&&(t.animation.animate=!1,t.scroll.animate=!1)}}export{S as default}; diff --git a/_astro/SwupHeadPlugin.DvOZNxAa.js b/_astro/SwupHeadPlugin.DvOZNxAa.js new file mode 100644 index 0000000..e278bf4 --- /dev/null +++ b/_astro/SwupHeadPlugin.DvOZNxAa.js @@ -0,0 +1 @@ +import{e as $}from"./index.modern.D46RI4Wq.js";function w(){return w=Object.assign?Object.assign.bind():function(r){for(var n=1;nn.some(f=>f instanceof RegExp?f.test(i):i===f)):t}function j(r){return r.matches("link[rel=stylesheet][href]")}class B extends ${constructor(n={}){var t;super(),t=this,this.name="SwupHeadPlugin",this.requires={swup:">=4.6"},this.defaults={persistTags:!1,persistAssets:!1,awaitAssets:!1,attributes:["lang","dir"],timeout:3e3},this.options=void 0,this.updateHead=async function(i,{page:{}}){const{awaitAssets:f,attributes:y,timeout:H}=t.options,T=i.to.document,{removed:E,added:b}=(function(s,m,{shouldPersist:c=()=>!1}={}){const a=Array.from(s.children),o=Array.from(m.children),d=(h=a,o.reduce((e,u,g)=>(h.some(v=>P(u,v))||e.push({el:u,index:g}),e),[]));var h;const p=(function(e,u){return e.reduce((g,v)=>(u.some(O=>P(v,O))||g.push({el:v}),g),[])})(a,o);p.reverse().filter(({el:e})=>A(e)).filter(({el:e})=>!c(e)).forEach(({el:e})=>s.removeChild(e));const l=d.filter(({el:e})=>A(e)).map(e=>{let u=e.el.cloneNode(!0);return s.insertBefore(u,s.children[(e.index||0)+1]||null),w({},e,{el:u})});return{removed:p.map(({el:e})=>e),added:l.map(({el:e})=>e)}})(document.head,T.head,{shouldPersist:s=>t.isPersistentTag(s)});if(t.swup.log(`Removed ${E.length} / added ${b.length} tags in head`),y!=null&&y.length&&(function(s,m,c=[]){const a=new Set;for(const{name:o,value:d}of x(m,c))s.setAttribute(o,d),a.add(o);for(const{name:o}of x(s,c))a.has(o)||s.removeAttribute(o)})(document.documentElement,T.documentElement,y),f){const s=(function(m,c=0){return m.filter(j).map(a=>(function(o,d=0){let h;const p=l=>{o.sheet?l():h=setTimeout(()=>p(l),10)};return new Promise(l=>{p(()=>l(o)),d>0&&setTimeout(()=>{h&&clearTimeout(h),l(o)},d)})})(a,c))})(b,H);s.length&&(t.swup.log(`Waiting for ${s.length} assets to load`),await Promise.all(s))}},this.options=w({},this.defaults,n),this.options.persistAssets&&!this.options.persistTags&&(this.options.persistTags="link[rel=stylesheet], script[src], style")}mount(){this.before("content:replace",this.updateHead)}isPersistentTag(n){const{persistTags:t}=this.options;return typeof t=="function"?t(n):typeof t=="string"&&t.length>0?n.matches(t):!!t}}export{B as default}; diff --git a/_astro/SwupPreloadPlugin.CTUtrABV.js b/_astro/SwupPreloadPlugin.CTUtrABV.js new file mode 100644 index 0000000..1e88a87 --- /dev/null +++ b/_astro/SwupPreloadPlugin.CTUtrABV.js @@ -0,0 +1 @@ +import{e as V}from"./index.modern.D46RI4Wq.js";import{l as p,n as P}from"./Swup.CAlgnk7W.js";function w(){return w=Object.assign?Object.assign.bind():function(d){for(var e=1;esetTimeout(d,1)),O=["preloadVisibleLinks"];class A extends V{constructor(e={}){var o;super(),o=this,this.name="SwupPreloadPlugin",this.requires={swup:">=4.5"},this.defaults={throttle:5,preloadInitialPage:!0,preloadHoveredLinks:!0,preloadVisibleLinks:{enabled:!1,threshold:.2,delay:500,containers:["body"],ignore:()=>!1}},this.options=void 0,this.queue=void 0,this.preloadObserver=void 0,this.preloadPromises=new Map,this.mouseEnterDelegate=void 0,this.touchStartDelegate=void 0,this.focusDelegate=void 0,this.onPageLoad=(t,i,a)=>{const{url:n}=t.to;return n&&this.preloadPromises.has(n)?this.preloadPromises.get(n):a(t,i)},this.onMouseEnter=async function(t){if(t.target!==t.delegateTarget||!L())return;const i=t.delegateTarget;if(!b(i))return;const{url:a,hash:n}=p.fromElement(i),u=o.swup.createVisit({to:a,hash:n,el:i,event:t});o.swup.hooks.callSync("link:hover",u,{el:i,event:t}),o.preload(i,{priority:!0})},this.onTouchStart=t=>{if(L())return;const i=t.delegateTarget;b(i)&&this.preload(i,{priority:!0})},this.onFocus=t=>{const i=t.delegateTarget;b(i)&&this.preload(i,{priority:!0})};const{preloadVisibleLinks:s}=e,r=(function(t,i){if(t==null)return{};var a={};for(var n in t)if({}.hasOwnProperty.call(t,n)){if(i.includes(n))continue;a[n]=t[n]}return a})(e,O);this.options=w({},this.defaults,r),typeof s=="object"?this.options.preloadVisibleLinks=w({},this.options.preloadVisibleLinks,{enabled:!0},s):this.options.preloadVisibleLinks.enabled=!!s,this.preload=this.preload.bind(this),this.queue=(function(t=1){const i=[],a=[];let n=0,u=0;function c(){u0&&((a.shift()||i.shift()||(()=>{}))(),n--,u++)}return{add:function(f,m=!1){if(f.__queued){if(!m)return;{const g=i.indexOf(f);if(g>=0){const h=i.splice(g,1);n-=h.length}}}f.__queued=!0,(m?a:i).push(f),n++,n<=1&&c()},next:function(){u--,c()}}})(this.options.throttle)}mount(){const e=this.swup;e.options.cache?(e.hooks.create("page:preload"),e.hooks.create("link:hover"),e.preload=this.preload,e.preloadLinks=this.preloadLinks,this.replace("page:load",this.onPageLoad),this.preloadLinks(),this.on("page:view",()=>this.preloadLinks()),this.options.preloadVisibleLinks.enabled&&(this.preloadVisibleLinks(),this.on("page:view",()=>this.preloadVisibleLinks())),this.options.preloadHoveredLinks&&this.preloadLinksOnAttention(),this.options.preloadInitialPage&&this.preload(P())):console.warn("SwupPreloadPlugin: swup cache needs to be enabled for preloading")}unmount(){var e,o,s;this.swup.preload=void 0,this.swup.preloadLinks=void 0,this.preloadPromises.clear(),(e=this.mouseEnterDelegate)==null||e.destroy(),(o=this.touchStartDelegate)==null||o.destroy(),(s=this.focusDelegate)==null||s.destroy(),this.stopPreloadingVisibleLinks()}async preload(e,o={}){var s;let r,t;const i=(s=o.priority)!=null&&s;if(Array.isArray(e))return Promise.all(e.map(n=>this.preload(n)));if(b(e))t=e,{href:r}=p.fromElement(e);else{if(typeof e!="string")return;r=e}if(!r)return;if(this.swup.cache.has(r))return this.swup.cache.get(r);if(this.preloadPromises.has(r))return this.preloadPromises.get(r);if(!this.shouldPreload(r,{el:t}))return;const a=new Promise(n=>{this.queue.add(()=>{this.performPreload(r).catch(()=>{}).then(u=>n(u)).finally(()=>{this.queue.next(),this.preloadPromises.delete(r)})},i)});return this.preloadPromises.set(r,a),a}preloadLinks(){E(()=>{Array.from(document.querySelectorAll("a[data-swup-preload], [data-swup-preload-all] a")).forEach(e=>this.preload(e))})}preloadLinksOnAttention(){const{swup:e}=this,{linkSelector:o}=e.options,s={passive:!0,capture:!0};this.mouseEnterDelegate=e.delegateEvent(o,"mouseenter",this.onMouseEnter,s),this.touchStartDelegate=e.delegateEvent(o,"touchstart",this.onTouchStart,s),this.focusDelegate=e.delegateEvent(o,"focus",this.onFocus,s)}preloadVisibleLinks(){if(this.preloadObserver)return void this.preloadObserver.update();const{threshold:e,delay:o,containers:s}=this.options.preloadVisibleLinks;this.preloadObserver=(function({threshold:r,delay:t,containers:i,callback:a,filter:n}){const u=new Map,c=new IntersectionObserver(h=>{h.forEach(l=>{l.isIntersecting?f(l.target):m(l.target)})},{threshold:r}),f=h=>{var l;const{href:v}=p.fromElement(h),y=(l=u.get(v))!=null?l:new Set;u.set(v,y),y.add(h),setTimeout(()=>{const k=u.get(v);k!=null&&k.size&&(a(h),c.unobserve(h),k.delete(h))},t)},m=h=>{var l;const{href:v}=p.fromElement(h);(l=u.get(v))==null||l.delete(h)},g=()=>{E(()=>{const h=i.map(l=>`${l} a[*|href]`).join(", ");Array.from(document.querySelectorAll(h)).filter(l=>n(l)).forEach(l=>c.observe(l))})};return{start:()=>g(),stop:()=>c.disconnect(),update:()=>(u.clear(),g())}})({threshold:e,delay:o,containers:s,callback:r=>this.preload(r),filter:r=>{if(this.options.preloadVisibleLinks.ignore(r)||!r.matches(this.swup.options.linkSelector))return!1;const{href:t}=p.fromElement(r);return this.shouldPreload(t,{el:r})}}),this.preloadObserver.start()}stopPreloadingVisibleLinks(){this.preloadObserver&&this.preloadObserver.stop()}shouldPreload(e,{el:o}={}){const{url:s,href:r}=p.fromUrl(e);return!(!(function(){if(navigator.connection){var t;if(navigator.connection.saveData||(t=navigator.connection.effectiveType)!=null&&t.endsWith("2g"))return!1}return!0})()||this.swup.cache.has(s)||this.preloadPromises.has(s)||this.swup.shouldIgnoreVisit(r,{el:o})||o&&this.swup.resolveUrl(s)===this.swup.resolveUrl(P()))}async performPreload(e){var o=this;const{url:s}=p.fromUrl(e),r=this.swup.createVisit({to:s});return await this.swup.hooks.call("page:preload",r,{url:s},async function(i,a){return a.page=await o.swup.fetchPage(e,{visit:i}),a.page})}}export{A as default}; diff --git a/_astro/SwupScriptsPlugin.DeeT9ppa.js b/_astro/SwupScriptsPlugin.DeeT9ppa.js new file mode 100644 index 0000000..765fa8d --- /dev/null +++ b/_astro/SwupScriptsPlugin.DeeT9ppa.js @@ -0,0 +1 @@ +import{e as a}from"./index.modern.D46RI4Wq.js";function o(){return o=Object.assign?Object.assign.bind():function(n){for(var t=1;t=4"},this.defaults={head:!0,body:!0,optin:!1},this.options=void 0,this.options=o({},this.defaults,t)}mount(){this.on("content:replace",this.runScripts)}runScripts(){const{head:t,body:e,optin:r}=this.options,s=this.getScope({head:t,body:e});if(!s)return;const i=Array.from(s.querySelectorAll(r?"script[data-swup-reload-script]":"script:not([data-swup-ignore-script])"));i.forEach(u=>this.runScript(u)),this.swup.log(`Executed ${i.length} scripts.`)}runScript(t){const e=document.createElement("script");for(const{name:r,value:s}of t.attributes)e.setAttribute(r,s);return e.textContent=t.textContent,t.replaceWith(e),e}getScope({head:t,body:e}){return t&&e?document:t?document.head:e?document.body:null}}export{p as default}; diff --git a/_astro/SwupScrollPlugin.4RNVwOaE.js b/_astro/SwupScrollPlugin.4RNVwOaE.js new file mode 100644 index 0000000..88c1fdb --- /dev/null +++ b/_astro/SwupScrollPlugin.4RNVwOaE.js @@ -0,0 +1 @@ +import{e as p}from"./index.modern.D46RI4Wq.js";import{m as d}from"./Swup.CAlgnk7W.js";function a(){return a=Object.assign?Object.assign.bind():function(n){for(var o=1;o{if(t&&t.nodeType)this._targetPositionY=Math.round(t.getBoundingClientRect().top+window.pageYOffset);else{if(parseInt(this._targetPositionY)!==this._targetPositionY)return void console.error("Argument must be a number or an element.");this._targetPositionY=Math.round(t)}this._targetPositionY>document.documentElement.scrollHeight-window.innerHeight&&(this._targetPositionY=document.documentElement.scrollHeight-window.innerHeight),this._positionY=document.body.scrollTop||document.documentElement.scrollTop,this._direction=this._positionY>this._targetPositionY?-1:1,this._targetPositionYWithOffset=this._targetPositionY+this._direction,this._velocityY=0,this._positionY!==this._targetPositionY?(this.options.onStart(),this._animate()):this.options.onAlreadyAtPositions()},this._animate=()=>{this._update(),this._render(),this._direction===1&&this._targetPositionY>this._positionY||this._direction===-1&&this._targetPositionY{const t=this._targetPositionYWithOffset-this._positionY;return this._velocityY+=t*this.options.acceleration,this._velocityY*=this.options.friction,this._positionY+=this._velocityY,Math.abs(t)},this._render=()=>{window.scrollTo(0,this._positionY)},this.options=a({},{onAlreadyAtPositions:()=>{},onCancel:()=>{},onEnd:()=>{},onStart:()=>{},onTick:()=>{},friction:.7,acceleration:.04},o),o&&o.friction&&(this.options.friction=1-o.friction),window.addEventListener("mousewheel",t=>{this._raf&&(this.options.onCancel(),cancelAnimationFrame(this._raf),this._raf=null)},{passive:!0})}}function c(){return c=Object.assign?Object.assign.bind():function(n){for(var o=1;o=4.2.0"},this.scrl=void 0,this.defaults={doScrollingRightAway:!1,animateScroll:{betweenPages:!0,samePageWithHash:!0,samePage:!0},scrollFriction:.3,scrollAcceleration:.04,getAnchorElement:void 0,offset:0,scrollContainers:"[data-swup-scroll-container]",shouldResetScrollPosition:()=>!0,markScrollTarget:!1},this.options=void 0,this.cachedScrollPositions={},this.previousScrollRestoration=void 0,this.currentCacheKey=void 0,this.getAnchorElement=(t="")=>typeof this.options.getAnchorElement=="function"?this.options.getAnchorElement(t):this.swup.getAnchorElement(t),this.getOffset=t=>t?typeof this.options.offset=="function"?parseInt(String(this.options.offset(t)),10):parseInt(String(this.options.offset),10):0,this.onBeforeLinkToSelf=t=>{t.scroll.animate=this.shouldAnimate("samePage")},this.handleScrollToTop=t=>{var s,i;return(s=(i=this.swup).scrollTo)==null||s.call(i,0,t.scroll.animate),!0},this.onBeforeLinkToAnchor=t=>{t.scroll.animate=this.shouldAnimate("samePageWithHash")},this.handleScrollToAnchor=(t,{hash:s})=>this.maybeScrollToAnchor(s,t.scroll.animate),this.onBeforeVisitStart=t=>{t.scroll.scrolledToContent=!1,t.scroll.animate=this.shouldAnimate("betweenPages")},this.onVisitStart=t=>{var s;this.cacheScrollPositions(t.from.url),this.maybeResetScrollPositions(t);const i=(s=t.scroll.target)!=null?s:t.to.hash;t.scroll.animate&&this.options.doScrollingRightAway&&!i&&this.doScrollingBetweenPages(t)},this.handleScrollToContent=t=>{t.scroll.scrolledToContent||this.doScrollingBetweenPages(t),this.restoreScrollContainers(t.to.url)},this.doScrollingBetweenPages=t=>{var s,i;if(t.history.popstate&&!t.animation.animate)return;const e=(s=t.scroll.target)!=null?s:t.to.hash;if(e&&this.maybeScrollToAnchor(e,t.scroll.animate)||!t.scroll.reset)return;const r=this.getCachedScrollPositions(t.to.url),l=(r==null||(i=r.window)==null?void 0:i.top)||0;requestAnimationFrame(()=>{var h,u;return(h=(u=this.swup).scrollTo)==null?void 0:h.call(u,l,t.scroll.animate)}),t.scroll.scrolledToContent=!0},this.maybeResetScrollPositions=t=>{const{popstate:s}=t.history,{url:i}=t.to,{el:e}=t.trigger;s||e&&!this.options.shouldResetScrollPosition(e)||this.resetScrollPositions(i)},this.options=c({},this.defaults,o)}mount(){const o=this.swup;o.hooks.create("scroll:start"),o.hooks.create("scroll:end");const t=this.swup.createVisit({to:this.swup.currentPageUrl});this.scrl=new g({onStart:()=>o.hooks.callSync("scroll:start",t,void 0),onEnd:()=>o.hooks.callSync("scroll:end",t,void 0),onCancel:()=>o.hooks.callSync("scroll:end",t,void 0),friction:this.options.scrollFriction,acceleration:this.options.scrollAcceleration}),o.scrollTo=(s,i=!0)=>{i?this.scrl.scrollTo(s):(o.hooks.callSync("scroll:start",t,void 0),window.scrollTo(0,s),o.hooks.callSync("scroll:end",t,void 0))},this.previousScrollRestoration=window.history.scrollRestoration,o.options.animateHistoryBrowsing&&(window.history.scrollRestoration="manual"),this.updateScrollTarget=this.updateScrollTarget.bind(this),this.options.markScrollTarget&&(window.addEventListener("popstate",this.updateScrollTarget),window.addEventListener("hashchange",this.updateScrollTarget),this.on("page:view",this.updateScrollTarget),this.on("link:anchor",this.updateScrollTarget),this.on("link:self",this.updateScrollTarget),this.updateScrollTarget()),this.before("visit:start",this.onBeforeVisitStart,{priority:-1}),this.on("visit:start",this.onVisitStart,{priority:1}),this.replace("content:scroll",this.handleScrollToContent),this.before("link:self",this.onBeforeLinkToSelf,{priority:-1}),this.replace("scroll:top",this.handleScrollToTop),this.before("link:anchor",this.onBeforeLinkToAnchor,{priority:-1}),this.replace("scroll:anchor",this.handleScrollToAnchor)}unmount(){super.unmount(),this.previousScrollRestoration&&(window.history.scrollRestoration=this.previousScrollRestoration),window.removeEventListener("popstate",this.updateScrollTarget),window.removeEventListener("hashchange",this.updateScrollTarget),this.cachedScrollPositions={},delete this.swup.scrollTo,delete this.scrl}shouldAnimate(o){return typeof this.options.animateScroll=="boolean"?this.options.animateScroll:this.options.animateScroll[o]}maybeScrollToAnchor(o,t=!1){var s,i;if(!o)return!1;const e=this.getAnchorElement(o);if(!e)return console.warn(`Anchor target ${o} not found`),!1;if(!(e instanceof Element))return console.warn(`Anchor target ${o} is not a DOM node`),!1;const{top:r}=e.getBoundingClientRect(),l=r+window.scrollY-this.getOffset(e);return(s=(i=this.swup).scrollTo)==null||s.call(i,l,t),!0}cacheScrollPositions(o){const t=this.swup.resolveUrl(o),s=d(this.options.scrollContainers).map(e=>({top:e.scrollTop,left:e.scrollLeft})),i={window:{top:window.scrollY,left:window.scrollX},containers:s};this.cachedScrollPositions[t]=i}resetScrollPositions(o){const t=this.swup.resolveUrl(o);delete this.cachedScrollPositions[t]}getCachedScrollPositions(o){const t=this.swup.resolveUrl(o);return this.cachedScrollPositions[t]}restoreScrollContainers(o){const t=this.getCachedScrollPositions(o);t&&t.containers.length!==0&&d(this.options.scrollContainers).forEach((s,i)=>{const e=t.containers[i];e!=null&&(s.scrollTop=e.top,s.scrollLeft=e.left)})}updateScrollTarget(){var o;const{hash:t}=window.location,s=document.querySelector("[data-swup-scroll-target]");let i=this.getAnchorElement(t);i instanceof HTMLBodyElement&&(i=null),s!==i&&(s?.removeAttribute("data-swup-scroll-target"),(o=i)==null||o.setAttribute("data-swup-scroll-target",""))}}export{S as default}; diff --git a/_astro/_page_.CttAoahr.css b/_astro/_page_.CttAoahr.css new file mode 100644 index 0000000..ee14f99 --- /dev/null +++ b/_astro/_page_.CttAoahr.css @@ -0,0 +1 @@ +@import"https://cdn.xrbk.cn/fonts/ChillRoundFRegular/result.css";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Roboto,sans-serif,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.-right-2{right:-.5rem}.-right-\[var\(--toc-width\)\]{right:calc(var(--toc-width) * -1)}.-top-8{top:-2rem}.-top-\[3\.25rem\]{top:-3.25rem}.bottom-0{bottom:0}.bottom-1{bottom:.25rem}.bottom-2{bottom:.5rem}.bottom-3{bottom:.75rem}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:.5rem}.right-0{right:0}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.right-6{right:1.5rem}.top-0{top:0}.top-1\/2{top:50%}.top-11{top:2.75rem}.top-14{top:3.5rem}.top-2{top:.5rem}.top-20{top:5rem}.top-3{top:.75rem}.top-4{top:1rem}.top-\[calc\(1rem_-_var\(--banner-height-extend\)\)\]{top:calc(1rem - var(--banner-height-extend))}.top-full{top:100%}.-z-10{z-index:-10}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[-1\]{z-index:-1}.z-\[-2\]{z-index:-2}.z-\[60\]{z-index:60}.col-span-1{grid-column:span 1 / span 1}.col-span-2{grid-column:span 2 / span 2}.row-start-2{grid-row-start:2}.row-end-3{grid-row-end:3}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-auto{margin-top:auto;margin-bottom:auto}.-mb-2{margin-bottom:-.5rem}.mb-0{margin-bottom:0}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-3\.5{margin-bottom:.875rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-8{margin-left:2rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-auto{margin-top:auto}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.\!block{display:block!important}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.\!hidden{display:none!important}.hidden{display:none}.aspect-\[4\/3\]{aspect-ratio:4/3}.aspect-video{aspect-ratio:16 / 9}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-16{height:4rem}.h-2{height:.5rem}.h-24{height:6rem}.h-28{height:7rem}.h-3{height:.75rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[3\.25rem\]{height:3.25rem}.h-\[3\.75rem\]{height:3.75rem}.h-\[300vh\]{height:300vh}.h-\[4\.5rem\]{height:4.5rem}.h-\[40px\]{height:40px}.h-\[calc\(100vh_-_20rem\)\]{height:calc(100vh - 20rem)}.h-\[calc\(var\(--banner-height-home\)_-_4\.5rem\)\]{height:calc(var(--banner-height-home) - 4.5rem)}.h-\[var\(--banner-height-home\)\]{height:var(--banner-height-home)}.h-full{height:100%}.max-h-0{max-height:0px}.max-h-\[20vh\]{max-height:20vh}.max-h-\[60vh\]{max-height:60vh}.max-h-\[80vh\]{max-height:80vh}.min-h-32{min-height:8rem}.min-h-9{min-height:2.25rem}.min-h-\[4\.5rem\]{min-height:4.5rem}.min-h-screen{min-height:100vh}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-16{width:4rem}.w-2{width:.5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-80{width:20rem}.w-\[15\%\]{width:15%}.w-\[3\.25rem\]{width:3.25rem}.w-\[3\.75rem\]{width:3.75rem}.w-\[70\%\]{width:70%}.w-\[90vw\]{width:90vw}.w-\[var\(--toc-width\)\]{width:var(--toc-width)}.w-full{width:100%}.min-w-\[2rem\]{min-width:2rem}.\!max-w-none{max-width:none!important}.max-w-\[calc\(100\%_-_3rem\)\]{max-width:calc(100% - 3rem)}.max-w-\[var\(--page-width\)\]{max-width:var(--page-width)}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.flex-1{flex:1 1 0%}.flex-shrink{flex-shrink:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-1{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-2{--tw-translate-x: -.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-16{--tw-translate-y: -4rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-\[1px\]{--tw-translate-y: -1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-full{--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0\.5{--tw-translate-y: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[var\(--banner-height-extend\)\]{--tw-translate-y: var(--banner-height-extend);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[var\(--bannerOffset\)\]{--tw-translate-y: var(--bannerOffset);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-full{--tw-translate-y: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-105{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-50{--tw-scale-x: .5;--tw-scale-y: .5;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-90{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[17\.5rem_auto\]{grid-template-columns:17.5rem auto}.grid-rows-\[auto_1fr_auto\]{grid-template-rows:auto 1fr auto}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-center{align-items:center}.items-stretch{align-items:stretch}.\!justify-start{justify-content:flex-start!important}.justify-start{justify-content:flex-start}.\!justify-end{justify-content:flex-end!important}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-2{row-gap:.5rem}.gap-y-8{row-gap:2rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.\!overflow-visible{overflow:visible!important}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-scroll{overflow-y:scroll}.overflow-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[0\.1875rem\]{border-radius:.1875rem}.rounded-\[var\(--radius-large\)\]{border-radius:var(--radius-large)}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.\!rounded-b-\[var\(--radius-large\)\]{border-bottom-right-radius:var(--radius-large)!important;border-bottom-left-radius:var(--radius-large)!important}.\!rounded-t-none{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-l-xl{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.rounded-r-xl{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-b,.border-b-\[1px\]{border-bottom-width:1px}.border-t,.border-t-\[1px\]{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[var\(--border\)\]{border-color:var(--border)}.border-\[var\(--line-divider\)\]{border-color:var(--line-divider)}.border-\[var\(--toc-btn-hover\)\]{border-color:var(--toc-btn-hover)}.border-black\/10{border-color:#0000001a}.border-green-200{--tw-border-opacity: 1;border-color:rgb(187 247 208 / var(--tw-border-opacity, 1))}.border-white\/30{border-color:#ffffff4d}.bg-\[oklch\(0\.5_0\.05_var\(--hue\)\)\]{background-color:oklch(.5 .05 var(--hue))}.bg-\[oklch\(0\.80_0\.10_0\)\]{background-color:#f3a3bb}.bg-\[oklch\(0\.95_0\.025_var\(--hue\)\)\]{background-color:oklch(.95 .025 var(--hue))}.bg-\[var\(--btn-card-bg\)\]{background-color:var(--btn-card-bg)}.bg-\[var\(--btn-card-bg-hover\)\]{background-color:var(--btn-card-bg-hover)}.bg-\[var\(--btn-content\)\]{background-color:var(--btn-content)}.bg-\[var\(--btn-regular-bg\)\]{background-color:var(--btn-regular-bg)}.bg-\[var\(--card-bg\)\]{background-color:var(--card-bg)}.bg-\[var\(--enter-btn-bg\)\]{background-color:var(--enter-btn-bg)}.bg-\[var\(--license-block-bg\)\]{background-color:var(--license-block-bg)}.bg-\[var\(--page-bg\)\]{background-color:var(--page-bg)}.bg-\[var\(--primary\)\]{background-color:var(--primary)}.bg-\[var\(--toc-badge-bg\)\]{background-color:var(--toc-badge-bg)}.bg-\[var\(--toc-btn-hover\)\]{background-color:var(--toc-btn-hover)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/30{background-color:#0000004d}.bg-black\/5{background-color:#0000000d}.bg-black\/50{background-color:#00000080}.bg-black\/60{background-color:#0009}.bg-black\/80{background-color:#000c}.bg-black\/90{background-color:#000000e6}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-500{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-neutral-100{--tw-bg-opacity: 1;background-color:rgb(245 245 245 / var(--tw-bg-opacity, 1))}.bg-neutral-300{--tw-bg-opacity: 1;background-color:rgb(212 212 212 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/20{background-color:#fff3}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity, 1))}.bg-zinc-200{--tw-bg-opacity: 1;background-color:rgb(228 228 231 / var(--tw-bg-opacity, 1))}.bg-opacity-0{--tw-bg-opacity: 0}.bg-opacity-50{--tw-bg-opacity: .5}.bg-opacity-70{--tw-bg-opacity: .7}.bg-opacity-90{--tw-bg-opacity: .9}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.bg-none{background-image:none}.from-black\/60{--tw-gradient-from: rgb(0 0 0 / .6) var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-transparent{--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.bg-cover{background-size:cover}.bg-fixed{background-attachment:fixed}.bg-center{background-position:center}.bg-no-repeat{background-repeat:no-repeat}.object-cover{-o-object-fit:cover;object-fit:cover}.object-bottom{-o-object-position:bottom;object-position:bottom}.object-center{-o-object-position:center;object-position:center}.object-top{-o-object-position:top;object-position:top}.p-0{padding:0}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.px-9{padding-left:2.25rem;padding-right:2.25rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pl-10{padding-left:2.5rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pr-1{padding-right:.25rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-6xl{font-size:3.75rem;line-height:1}.text-\[0\.75rem\]{font-size:.75rem}.text-\[0\.875rem\]{font-size:.875rem}.text-\[0\.9rem\]{font-size:.9rem}.text-\[1\.1rem\]{font-size:1.1rem}.text-\[1\.25rem\]{font-size:1.25rem}.text-\[1\.5rem\]{font-size:1.5rem}.text-\[1\.75rem\]{font-size:1.75rem}.text-\[14px\]{font-size:14px}.text-\[15rem\]{font-size:15rem}.text-\[1rem\]{font-size:1rem}.text-\[2rem\]{font-size:2rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-relaxed{line-height:1.625}.\!text-black{--tw-text-opacity: 1 !important;color:rgb(0 0 0 / var(--tw-text-opacity, 1))!important}.text-\[oklch\(0\.75_0\.14_var\(--hue\)\)\]{color:oklch(.75 .14 var(--hue))}.text-\[var\(--btn-content\)\]{color:var(--btn-content)}.text-\[var\(--meta-divider\)\]{color:var(--meta-divider)}.text-\[var\(--primary\)\]{color:var(--primary)}.text-\[var\(--text-2\)\]{color:var(--text-2)}.text-\[var\(--text-75\)\]{color:var(--text-75)}.text-\[var\(--text-90\)\]{color:var(--text-90)}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-black\/30{color:#0000004d}.text-black\/5{color:#0000000d}.text-black\/50{color:#00000080}.text-black\/90{color:#000000e6}.text-black\/\[0\.2\]{color:#0003}.text-black\/\[0\.3\]{color:#0000004d}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-neutral-400{--tw-text-opacity: 1;color:rgb(163 163 163 / var(--tw-text-opacity, 1))}.text-neutral-500{--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity, 1))}.text-neutral-600{--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}.text-neutral-700{--tw-text-opacity: 1;color:rgb(64 64 64 / var(--tw-text-opacity, 1))}.text-neutral-800{--tw-text-opacity: 1;color:rgb(38 38 38 / var(--tw-text-opacity, 1))}.text-neutral-900{--tw-text-opacity: 1;color:rgb(23 23 23 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/90{color:#ffffffe6}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.opacity-90{opacity:.9}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.outline-0{outline-width:0px}.outline-4{outline-width:4px}.-outline-offset-\[2px\]{outline-offset:-2px}.outline-\[var\(--card-bg\)\]{outline-color:var(--card-bg)}.outline-\[var\(--primary\)\]{outline-color:var(--primary)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-lg{--tw-drop-shadow: drop-shadow(0 10px 8px rgb(0 0 0 / .04)) drop-shadow(0 4px 3px rgb(0 0 0 / .1));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-md{--tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / .07)) drop-shadow(0 2px 2px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-sm{--tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / .05));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:-left-3:before{content:var(--tw-content);left:-.75rem}.before\:left-\[-1\.125rem\]:before{content:var(--tw-content);left:-1.125rem}.before\:left-\[-16px\]:before{content:var(--tw-content);left:-16px}.before\:left-\[18px\]:before{content:var(--tw-content);left:18px}.before\:top-\[0\.33rem\]:before{content:var(--tw-content);top:.33rem}.before\:top-\[0\.75rem\]:before{content:var(--tw-content);top:.75rem}.before\:top-\[35px\]:before{content:var(--tw-content);top:35px}.before\:top-\[5\.5px\]:before{content:var(--tw-content);top:5.5px}.before\:hidden:before{content:var(--tw-content);display:none}.before\:h-4:before{content:var(--tw-content);height:1rem}.before\:h-5:before{content:var(--tw-content);height:1.25rem}.before\:w-1:before{content:var(--tw-content);width:.25rem}.before\:rounded-md:before{content:var(--tw-content);border-radius:.375rem}.before\:bg-\[var\(--primary\)\]:before{content:var(--tw-content);background-color:var(--primary)}.last\:border-t-0:last-child{border-top-width:0px}.first-of-type\:mt-2:first-of-type{margin-top:.5rem}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:bg-\[var\(--btn-card-bg\)\]:hover{background-color:var(--btn-card-bg)}.hover\:bg-\[var\(--btn-card-bg-hover\)\]:hover{background-color:var(--btn-card-bg-hover)}.hover\:bg-\[var\(--btn-plain-bg-hover\)\]:hover{background-color:var(--btn-plain-bg-hover)}.hover\:bg-\[var\(--btn-regular-bg-hover\)\]:hover{background-color:var(--btn-regular-bg-hover)}.hover\:bg-\[var\(--enter-btn-bg-hover\)\]:hover{background-color:var(--enter-btn-bg-hover)}.hover\:bg-\[var\(--toc-btn-hover\)\]:hover{background-color:var(--toc-btn-hover)}.hover\:bg-black\/70:hover{background-color:#000000b3}.hover\:bg-green-600:hover{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.hover\:pl-3:hover{padding-left:.75rem}.hover\:pr-9:hover{padding-right:2.25rem}.hover\:\!text-gray-900:hover{--tw-text-opacity: 1 !important;color:rgb(17 24 39 / var(--tw-text-opacity, 1))!important}.hover\:text-\[initial\]:hover{color:initial}.hover\:text-\[var\(--primary\)\]:hover{color:var(--primary)}.hover\:text-\[var\(--text-90\)\]:hover{color:var(--text-90)}.hover\:text-neutral-800:hover{--tw-text-opacity: 1;color:rgb(38 38 38 / var(--tw-text-opacity, 1))}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.active\:scale-90:active{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scale-95:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scale-\[0\.85\]:active{--tw-scale-x: .85;--tw-scale-y: .85;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:bg-\[var\(--btn-plain-bg-active\)\]:active{background-color:var(--btn-plain-bg-active)}.active\:bg-\[var\(--enter-btn-bg-active\)\]:active{background-color:var(--enter-btn-bg-active)}.active\:bg-\[var\(--toc-btn-active\)\]:active{background-color:var(--toc-btn-active)}.active\:bg-black\/80:active{background-color:#000c}.active\:text-\[var\(--title-active\)\]:active{color:var(--title-active)}.group:hover .group-hover\:visible{visibility:visible}.group:hover .group-hover\:h-5{height:1.25rem}.group:hover .group-hover\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-105{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:border-\[var\(--toc-btn-active\)\]{border-color:var(--toc-btn-active)}.group:hover .group-hover\:bg-\[var\(--primary\)\]{background-color:var(--primary)}.group:hover .group-hover\:bg-black\/30{background-color:#0000004d}.group:hover .group-hover\:bg-transparent{background-color:transparent}.group:hover .group-hover\:bg-opacity-20{--tw-bg-opacity: .2}.group:hover .group-hover\:text-\[var\(--primary\)\]{color:var(--primary)}.group:hover .group-hover\:opacity-100{opacity:1}.group:hover .group-hover\:outline-\[var\(--btn-plain-bg-hover\)\]{outline-color:var(--btn-plain-bg-hover)}.group:active .group-active\:bg-black\/50{background-color:#00000080}.group:active .group-active\:text-\[var\(--primary\)\]{color:var(--primary)}.group:active .group-active\:outline-\[var\(--btn-plain-bg-active\)\]{outline-color:var(--btn-plain-bg-active)}.dark\:border-white\/\[0\.15\]:is(.dark *){border-color:#ffffff26}.dark\:bg-\[oklch\(0\.70_0\.10_0\)\]:is(.dark *){background-color:#d2849c}.dark\:bg-\[var\(--card-bg\)\]:is(.dark *){background-color:var(--card-bg)}.dark\:bg-\[var\(--primary\)\]:is(.dark *){background-color:var(--primary)}.dark\:bg-black\/10:is(.dark *){background-color:#0000001a}.dark\:bg-neutral-600:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(82 82 82 / var(--tw-bg-opacity, 1))}.dark\:bg-neutral-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity, 1))}.dark\:bg-neutral-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity, 1))}.dark\:bg-white\/10:is(.dark *){background-color:#ffffff1a}.dark\:bg-zinc-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(39 39 42 / var(--tw-bg-opacity, 1))}.dark\:bg-zinc-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity, 1))}.dark\:\!text-gray-300:is(.dark *){--tw-text-opacity: 1 !important;color:rgb(209 213 219 / var(--tw-text-opacity, 1))!important}.dark\:text-\[var\(--deep-text\)\]:is(.dark *){color:var(--deep-text)}.dark\:text-black\/70:is(.dark *){color:#000000b3}.dark\:text-neutral-100:is(.dark *){--tw-text-opacity: 1;color:rgb(245 245 245 / var(--tw-text-opacity, 1))}.dark\:text-neutral-200:is(.dark *){--tw-text-opacity: 1;color:rgb(229 229 229 / var(--tw-text-opacity, 1))}.dark\:text-neutral-300:is(.dark *){--tw-text-opacity: 1;color:rgb(212 212 212 / var(--tw-text-opacity, 1))}.dark\:text-neutral-400:is(.dark *){--tw-text-opacity: 1;color:rgb(163 163 163 / var(--tw-text-opacity, 1))}.dark\:text-neutral-50:is(.dark *){--tw-text-opacity: 1;color:rgb(250 250 250 / var(--tw-text-opacity, 1))}.dark\:text-neutral-500:is(.dark *){--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:text-white\/25:is(.dark *){color:#ffffff40}.dark\:text-white\/30:is(.dark *){color:#ffffff4d}.dark\:text-white\/5:is(.dark *){color:#ffffff0d}.dark\:text-white\/50:is(.dark *){color:#ffffff80}.dark\:text-white\/75:is(.dark *){color:#ffffffbf}.dark\:text-white\/90:is(.dark *){color:#ffffffe6}.dark\:text-white\/95:is(.dark *){color:#fffffff2}.dark\:text-white\/\[0\.2\]:is(.dark *){color:#fff3}.dark\:text-white\/\[0\.3\]:is(.dark *){color:#ffffff4d}.dark\:drop-shadow-\[0_0_6px_rgba\(255\,255\,255\,0\.5\)\]:is(.dark *){--tw-drop-shadow: drop-shadow(0 0 6px rgba(255,255,255,.5));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.dark\:hover\:\!text-white:hover:is(.dark *){--tw-text-opacity: 1 !important;color:rgb(255 255 255 / var(--tw-text-opacity, 1))!important}.dark\:hover\:text-\[var\(--primary\)\]:hover:is(.dark *){color:var(--primary)}.dark\:hover\:text-neutral-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(229 229 229 / var(--tw-text-opacity, 1))}.dark\:active\:text-\[var\(--title-active\)\]:active:is(.dark *){color:var(--title-active)}@media not all and (min-width:924px){.max-md\:text-left{text-align:left}.max-md\:text-right{text-align:right}}@media(min-width:726px){.md2\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md2\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md2\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:924px){.md\:absolute{position:absolute}.md\:bottom-3{bottom:.75rem}.md\:right-3{right:.75rem}.md\:top-3{top:.75rem}.md\:col-span-1{grid-column:span 1 / span 1}.md\:row-start-1{grid-row-start:1}.md\:row-end-2{grid-row-end:2}.md\:mx-0{margin-left:0;margin-right:0}.md\:mb-0{margin-bottom:0}.md\:mt-0{margin-top:0}.md\:line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.md\:block{display:block}.md\:inline{display:inline}.md\:\!flex{display:flex!important}.md\:flex{display:flex}.md\:\!hidden{display:none!important}.md\:hidden{display:none}.md\:max-h-none{max-height:none}.md\:w-\[10\%\]{width:10%}.md\:w-\[15\%\]{width:15%}.md\:w-\[30rem\]{width:30rem}.md\:w-\[65\%\]{width:65%}.md\:w-\[80\%\]{width:80%}.md\:w-\[calc\(100\%_-_52px_-_12px\)\]{width:calc(100% - 64px)}.md\:w-\[calc\(100\%_-_var\(--coverWidth\)_-_12px\)\]{width:calc(100% - var(--coverWidth) - 12px)}.md\:w-\[var\(--coverWidth\)\]{width:var(--coverWidth)}.md\:w-full{width:100%}.md\:max-w-\[17\.5rem\]{max-width:17.5rem}.md\:max-w-\[65\%\]{max-width:65%}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-rows-\[auto\]{grid-template-rows:auto}.md\:flex-row{flex-direction:row}.md\:flex-col{flex-direction:column}.md\:gap-4{gap:1rem}.md\:bg-transparent{background-color:transparent}.md\:px-4{padding-left:1rem;padding-right:1rem}.md\:px-9{padding-left:2.25rem;padding-right:2.25rem}.md\:py-0{padding-top:0;padding-bottom:0}.md\:pl-9{padding-left:2.25rem}.md\:pr-2{padding-right:.5rem}.md\:pt-7{padding-top:1.75rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-\[16px\]{font-size:16px}.md\:text-\[2\.25rem\]\/\[2\.75rem\]{font-size:2.25rem;line-height:2.75rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}.md\:before\:block:before{content:var(--tw-content);display:block}.md\:before\:w-1:before{content:var(--tw-content);width:.25rem}}@media(min-width:1400px){.lg\:mx-0{margin-left:0;margin-right:0}.lg\:mt-0{margin-top:0}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:w-full{width:100%}.lg\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:first-of-type\:mt-0:first-of-type{margin-top:0}}@media(min-width:1536px){.\32xl\:block{display:block}}input.svelte-1wah7ro:focus{outline:0}.search-panel.svelte-1wah7ro{max-height:calc(100vh - 100px);overflow-y:auto}.search-panel-glass.svelte-1wah7ro{background-color:#fffc!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.dark .search-panel-glass.svelte-1wah7ro{background-color:#232323cc!important;border:1px solid rgba(255,255,255,.05)}.search-bar-glass.svelte-1wah7ro{background-color:#fff9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2)}.search-bar-glass.svelte-1wah7ro:hover{background-color:#ffffffb3}.search-bar-glass.svelte-1wah7ro:focus-within{background-color:#fffc;border-color:#ffffff4d}.dark .search-bar-glass.svelte-1wah7ro{background-color:#23232399;border:1px solid rgba(255,255,255,.1)}.dark .search-bar-glass.svelte-1wah7ro:hover{background-color:#232323b3}.dark .search-bar-glass.svelte-1wah7ro:focus-within{background-color:#232323cc;border-color:#ffffff26}#display-setting.svelte-d7tq3k input[type=range]:where(.svelte-d7tq3k){-webkit-appearance:none;height:1.5rem;background-image:var(--color-selection-bar);transition:background-image .15s ease-in-out}#display-setting.svelte-d7tq3k input[type=range]:where(.svelte-d7tq3k)::-webkit-slider-thumb{-webkit-appearance:none;height:1rem;width:.5rem;border-radius:.125rem;background:#ffffffb3;box-shadow:none}#display-setting.svelte-d7tq3k input[type=range]:where(.svelte-d7tq3k)::-webkit-slider-thumb:hover{background:#fffc}#display-setting.svelte-d7tq3k input[type=range]:where(.svelte-d7tq3k)::-webkit-slider-thumb:active{background:#fff9}#display-setting.svelte-d7tq3k input[type=range]:where(.svelte-d7tq3k)::-moz-range-thumb{-webkit-appearance:none;height:1rem;width:.5rem;border-radius:.125rem;border-width:0;background:#ffffffb3;box-shadow:none}#display-setting.svelte-d7tq3k input[type=range]:where(.svelte-d7tq3k)::-moz-range-thumb:hover{background:#fffc}#display-setting.svelte-d7tq3k input[type=range]:where(.svelte-d7tq3k)::-moz-range-thumb:active{background:#fff9}#display-setting.svelte-d7tq3k input[type=range]:where(.svelte-d7tq3k)::-ms-thumb{-webkit-appearance:none;height:1rem;width:.5rem;border-radius:.125rem;background:#ffffffb3;box-shadow:none}#display-setting.svelte-d7tq3k input[type=range]:where(.svelte-d7tq3k)::-ms-thumb:hover{background:#fffc}#display-setting.svelte-d7tq3k input[type=range]:where(.svelte-d7tq3k)::-ms-thumb:active{background:#fff9}.nav-menu-glass[data-astro-cid-h5lvqo6o]{background-color:#fffc!important;backdrop-filter:blur(10px)!important;-webkit-backdrop-filter:blur(10px)!important;border:1px solid rgba(255,255,255,.1)!important}.dark .nav-menu-glass[data-astro-cid-h5lvqo6o]{background-color:#232323cc!important;border:1px solid rgba(255,255,255,.05)!important}.expressive-code .frame{--tw-shadow: 0 0 #0000 !important;--tw-shadow-colored: 0 0 #0000 !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)!important}:root{--font-primary: "寒蝉全圆体", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}@media(hover:hover)and (pointer:fine){body[data-cursor-override=true] *,body[data-cursor-override=true] a,body[data-cursor-override=true] p{cursor:url("data:image/svg+xml,") 4 4,auto!important}html.dark body[data-cursor-override=true] *,html.dark body[data-cursor-override=true] a,html.dark body[data-cursor-override=true] p{cursor:url("data:image/svg+xml,") 4 4,auto!important}}#g-pointer-1{display:none}@media(hover:hover)and (pointer:fine){body[data-cursor-override=true] #g-pointer-2{position:fixed;top:0;left:0;width:18px;height:18px;transition:.05s linear;pointer-events:none;background:#00000040;border-radius:50%;z-index:9999999;transform:translate(-50%,-50%)}html.dark body[data-cursor-override=true] #g-pointer-2{background:#ffffff40}body[data-cursor-override=false] #g-pointer-2{display:none!important}}@media(hover:none)or (pointer:coarse){#g-pointer-2{display:none!important}}body{font-family:var(--font-primary);font-weight:300;font-synthesis:none;font-stretch:70%;line-height:1.5;letter-spacing:.5px}.navbar{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;transform:none!important}.card-base{overflow:hidden;border-radius:var(--radius-large);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;background-color:color-mix(in srgb,var(--card-bg) calc(var(--card-opacity) * 100%),transparent)}a.card-github,a.card-link{background-color:color-mix(in srgb,var(--card-bg) calc(var(--card-opacity) * 100%),transparent)!important}h1,h2,h3,h4,h5,h6,p,a,span,li,ul,ol,blockquote,code,pre,table,th,td,strong{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;color:var(--text-primary)}.card-shadow{--tw-drop-shadow: drop-shadow(0 2px 4px rgba(0,0,0,.005));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.card-glass{border-width:1px;border-color:#ffffff1a;--tw-bg-opacity: .8;--tw-backdrop-blur: blur(12px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}:global(.dark) .card-glass{border-color:#ffffff0d;--tw-bg-opacity: .7}.\!link{position:relative;z-index:0}.\!link:before{position:absolute;inset:0;z-index:-10;--tw-scale-x: .85;--tw-scale-y: .85;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:inherit;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;content:var(--tw-content);transition-timing-function:cubic-bezier(0,0,.2,1)}.\!link:hover:before{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));content:var(--tw-content);background-color:var(--btn-plain-bg-hover)}.\!link:active{background-image:none}.\!link:active:before{content:var(--tw-content);background-color:var(--btn-plain-bg-active)}.\!link{margin:-.25rem;border-radius:.375rem;padding:.25rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.link{position:relative;z-index:0}.link:before{position:absolute;inset:0;z-index:-10;--tw-scale-x: .85;--tw-scale-y: .85;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:inherit;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;content:var(--tw-content);transition-timing-function:cubic-bezier(0,0,.2,1)}.link:hover:before{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));content:var(--tw-content);background-color:var(--btn-plain-bg-hover)}.link:active{background-image:none}.link:active:before{content:var(--tw-content);background-color:var(--btn-plain-bg-active)}.link{margin:-.25rem;border-radius:.375rem;padding:.25rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.link-lg{position:relative;z-index:0}.link-lg:before{position:absolute;inset:0;z-index:-10;--tw-scale-x: .85;--tw-scale-y: .85;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:inherit;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;content:var(--tw-content);transition-timing-function:cubic-bezier(0,0,.2,1)}.link-lg:hover:before{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));content:var(--tw-content);background-color:var(--btn-plain-bg-hover)}.link-lg:active{background-image:none}.link-lg:active:before{content:var(--tw-content);background-color:var(--btn-plain-bg-active)}.link-lg{margin:-.375rem;border-radius:.375rem;padding:.375rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.float-panel{top:5.25rem;overflow:hidden;border-radius:var(--radius-large);background-color:var(--float-panel-bg);--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.float-panel:is(.dark *){--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.float-panel-closed{pointer-events:none;--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));opacity:0}.search-panel mark{background-color:transparent;color:var(--primary)}.btn-card{display:flex;align-items:center;justify-content:center;background-color:var(--card-bg);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.btn-card:hover{background-color:var(--btn-card-bg-hover)}.btn-card:active{background-color:var(--btn-card-bg-active)}.btn-card.disabled{pointer-events:none;color:#0000001a}.btn-card.disabled:is(.dark *){color:#ffffff1a}.btn-plain{position:relative;display:flex;align-items:center;justify-content:center;background-image:none;--tw-text-opacity: 1;color:rgb(38 38 38 / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.btn-plain:hover{color:var(--primary)}.btn-plain:is(.dark *){color:#ffffffbf}.btn-plain:hover:is(.dark *){color:var(--primary)}.btn-plain:not(.scale-animation):hover{background-color:var(--btn-plain-bg-hover)}.btn-plain:not(.scale-animation):active{background-color:var(--btn-plain-bg-active)}.btn-plain.scale-animation{position:relative;z-index:0}.btn-plain.scale-animation:before{position:absolute;inset:0;z-index:-10;--tw-scale-x: .85;--tw-scale-y: .85;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:inherit;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;content:var(--tw-content);transition-timing-function:cubic-bezier(0,0,.2,1)}.btn-plain.scale-animation:hover:before{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));content:var(--tw-content);background-color:var(--btn-plain-bg-hover)}.btn-plain.scale-animation:active{background-image:none}.btn-plain.scale-animation:active:before{content:var(--tw-content);background-color:var(--btn-plain-bg-active)}.btn-plain.scale-animation.current-theme-btn{color:var(--primary)}.btn-plain.scale-animation.current-theme-btn:before{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));background-color:var(--btn-plain-bg-hover);content:var(--tw-content);opacity:1}.btn-regular{display:flex;align-items:center;justify-content:center;background-color:var(--btn-regular-bg);color:var(--btn-content);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.btn-regular:hover{background-color:var(--btn-regular-bg-hover)}.btn-regular:active{background-color:var(--btn-regular-bg-active)}.btn-regular:is(.dark *){color:#ffffffbf}.toc-hide,.toc-not-ready{pointer-events:none;opacity:0}#toc-inner-wrapper{-webkit-mask-image:linear-gradient(to bottom,transparent 0%,black 2rem,black calc(100% - 2rem),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0%,black 2rem,black calc(100% - 2rem),transparent 100%)}.hide-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.hide-scrollbar::-webkit-scrollbar{display:none}.text-90{color:#000000e6}.text-90:is(.dark *){color:#ffffffe6}.text-75{--tw-text-opacity: 1;color:rgb(38 38 38 / var(--tw-text-opacity, 1))}.text-75:is(.dark *){color:#ffffffbf}.text-50{--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}.text-50:is(.dark *){color:#ffffff80}.text-30{color:#0000004d}.text-30:is(.dark *){color:#ffffff4d}.meta-icon{margin-right:.5rem;display:flex;height:2rem;width:2rem;align-items:center;justify-content:center;border-radius:.375rem;background-color:var(--btn-regular-bg);color:var(--btn-content);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.btn-regular-dark.success{background-color:oklch(.75 .14 var(--hue))}.btn-regular-dark.success:is(.dark *){background-color:oklch(.75 .14 var(--hue))}.custom-md img,#post-cover img{cursor:zoom-in}::-moz-selection{background-color:var(--selection-bg)}::selection{background-color:var(--selection-bg)}.dash-line{position:relative}.dash-line:before{content:"";position:absolute;width:10%;height:100%;left:calc(50% - 1px);border-left:2px dashed var(--line-color);pointer-events:none;transition:all .3s;transform:translateY(-50%)}.collapsed{height:var(--collapsedHeight)}.ai-summary{background:var(--card-bg);border:1px solid var(--line-divider);border-radius:12px;padding:8px 8px 12px;line-height:1.3;flex-direction:column;margin-bottom:16px;display:flex;gap:5px;position:relative;box-shadow:0 1px 3px #0000001a;transition:all .3s}.ai-summary:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}.ai-summary .ai-explanation{z-index:10;padding:8px 12px;font-size:15px;line-height:1.4;color:#000000e6}.ai-summary .ai-explanation:is(.dark *){color:#ffffffe6}.ai-summary .ai-explanation{text-align:justify}.ai-summary .ai-explanation:after{content:"";display:inline-block;width:8px;height:2px;margin-left:2px;background-color:#000000e6}.ai-summary .ai-explanation:is(.dark *):after{background-color:#ffffffe6}.ai-summary .ai-explanation:after{vertical-align:bottom;animation:blink-underline 1s ease-in-out infinite;transition:all .3s;position:relative;bottom:3px}.ai-summary .ai-explanation.typing-complete:after{display:none}.ai-summary .ai-title{z-index:10;font-size:14px;display:flex;border-radius:8px;align-items:center;position:relative;padding:0 12px;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ai-summary .ai-title .ai-title-left{display:flex;align-items:center;color:var(--primary)}.ai-summary .ai-title .ai-title-left i{margin-right:3px;display:flex;color:var(--primary);border-radius:20px;justify-content:center;align-items:center}.ai-summary .ai-title .ai-title-left .ai-title-text{font-weight:500}.ai-summary .ai-title .ai-tag{color:var(--btn-content);font-weight:300;margin-left:auto;display:flex;align-items:center;justify-content:center;transition:.3s}@keyframes blink-underline{0%,to{opacity:1}50%{opacity:0}}.custom-md blockquote.admonition .bdm-title{display:flex;align-items:center;margin-bottom:-.9rem;font-weight:700}.custom-md blockquote.admonition .bdm-title:before{content:" ";display:inline-block;font-size:inherit;overflow:visible;margin-right:.6rem;height:1em;width:1em;vertical-align:-.126em;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;transform:translateY(-.0625rem)}.custom-md blockquote.admonition.bdm-tip .bdm-title{color:var(--admonitions-color-tip)}.custom-md blockquote.admonition.bdm-tip .bdm-title:before{background:var(--admonitions-color-tip);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' width='16' height='16' aria-hidden='true'%3E%3Cpath d='M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z'%3E%3C/path%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' width='16' height='16' aria-hidden='true'%3E%3Cpath d='M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z'%3E%3C/path%3E%3C/svg%3E")}.custom-md blockquote.admonition.bdm-tip:before{background:var(--admonitions-color-tip)}.custom-md blockquote.admonition.bdm-note .bdm-title{color:var(--admonitions-color-note)}.custom-md blockquote.admonition.bdm-note .bdm-title:before{background:var(--admonitions-color-note);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' width='16' height='16' aria-hidden='true'%3E%3Cpath fill='var(--admonitions-color-tip)' d='M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z'%3E%3C/path%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' width='16' height='16' aria-hidden='true'%3E%3Cpath fill='var(--admonitions-color-tip)' d='M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z'%3E%3C/path%3E%3C/svg%3E")}.custom-md blockquote.admonition.bdm-note:before{background:var(--admonitions-color-note)}.custom-md blockquote.admonition.bdm-important .bdm-title{color:var(--admonitions-color-important)}.custom-md blockquote.admonition.bdm-important .bdm-title:before{background:var(--admonitions-color-important);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' width='16' height='16' aria-hidden='true'%3E%3Cpath d='M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z'%3E%3C/path%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' width='16' height='16' aria-hidden='true'%3E%3Cpath d='M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z'%3E%3C/path%3E%3C/svg%3E")}.custom-md blockquote.admonition.bdm-important:before{background:var(--admonitions-color-important)}.custom-md blockquote.admonition.bdm-warning .bdm-title{color:var(--admonitions-color-warning)}.custom-md blockquote.admonition.bdm-warning .bdm-title:before{background:var(--admonitions-color-warning);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' width='16' height='16' aria-hidden='true'%3E%3Cpath d='M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z'%3E%3C/path%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' width='16' height='16' aria-hidden='true'%3E%3Cpath d='M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z'%3E%3C/path%3E%3C/svg%3E")}.custom-md blockquote.admonition.bdm-warning:before{background:var(--admonitions-color-warning)}.custom-md blockquote.admonition.bdm-caution .bdm-title{color:var(--admonitions-color-caution)}.custom-md blockquote.admonition.bdm-caution .bdm-title:before{background:var(--admonitions-color-caution);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' width='16' height='16' aria-hidden='true'%3E%3Cpath d='M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z'%3E%3C/path%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' width='16' height='16' aria-hidden='true'%3E%3Cpath d='M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z'%3E%3C/path%3E%3C/svg%3E")}.custom-md blockquote.admonition.bdm-caution:before{background:var(--admonitions-color-caution)}.custom-md img{border-radius:.75rem}.custom-md hr{border-color:var(--line-divider);border-style:dashed}.custom-md iframe{border-radius:.75rem;margin-left:auto;margin-right:auto;max-width:100%}a.card-github{display:block;background:var(--license-block-bg);position:relative;margin:.5rem 0;padding:1.1rem 1.5rem;color:var(--tw-prose-body);border-radius:var(--radius-large);text-decoration-thickness:0px;text-decoration-line:none}a.card-github:hover{background-color:var(--btn-regular-bg-hover)}a.card-github:hover .gc-titlebar{color:var(--btn-content)}a.card-github:hover .gc-stars,a.card-github:hover .gc-forks,a.card-github:hover .gc-license,a.card-github:hover .gc-description{color:var(--tw-prose-headings)}a.card-github:hover .gc-stars:before,a.card-github:hover .gc-forks:before,a.card-github:hover .gc-license:before,a.card-github:hover .gc-description:before{background-color:var(--tw-prose-headings)}a.card-github:active{scale:.98;background-color:var(--btn-regular-bg-active)}a.card-github .gc-titlebar{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;color:var(--tw-prose-headings);font-size:1.25rem;font-weight:500}a.card-github .gc-titlebar .gc-titlebar-left{display:flex;flex-flow:row nowrap;gap:.5rem}a.card-github .gc-titlebar .gc-repo{font-weight:700}a.card-github .gc-titlebar .gc-owner{font-weight:300;position:relative;display:flex;flex-flow:row nowrap;gap:.5rem;align-items:center}a.card-github .gc-titlebar .gc-avatar{display:block;overflow:hidden;width:1.5rem;height:1.5rem;margin-top:-.1rem;background-color:var(--primary);background-size:cover;border-radius:50%}a.card-github .gc-description{margin-bottom:.7rem;font-size:1rem;font-weight:300;line-height:1.5rem;color:var(--tw-prose-body)}a.card-github .gc-infobar{display:flex;flex-flow:row nowrap;gap:1.5rem;color:var(--tw-prose-body);width:-moz-fit-content;width:fit-content}a.card-github .gc-language{display:none}a.card-github .gc-stars,a.card-github .gc-forks,a.card-github .gc-license,a.card-github .github-logo{font-weight:500;font-size:.875rem;opacity:.9}a.card-github .gc-stars:before,a.card-github .gc-forks:before,a.card-github .gc-license:before,a.card-github .github-logo:before{content:" ";display:inline-block;height:1.3em;width:1.3em;margin-right:.4rem;vertical-align:-.24em;font-size:inherit;background-color:var(--tw-prose-body);overflow:visible;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;transition-property:background-color,background;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}a.card-github .gc-stars:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='16' viewBox='0 0 16 16' version='1.1' width='16'%3E%3Cpath d='M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z'%3E%3C/path%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='16' viewBox='0 0 16 16' version='1.1' width='16'%3E%3Cpath d='M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z'%3E%3C/path%3E%3C/svg%3E")}a.card-github .gc-license:before{margin-right:.5rem;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='16' viewBox='0 0 16 16' version='1.1' width='16'%3E%3Cpath d='M8.75.75V2h.985c.304 0 .603.08.867.231l1.29.736c.038.022.08.033.124.033h2.234a.75.75 0 0 1 0 1.5h-.427l2.111 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.006.005-.01.01-.045.04c-.21.176-.441.327-.686.45C14.556 10.78 13.88 11 13 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L12.178 4.5h-.162c-.305 0-.604-.079-.868-.231l-1.29-.736a.245.245 0 0 0-.124-.033H8.75V13h2.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1 0-1.5h2.5V3.5h-.984a.245.245 0 0 0-.124.033l-1.289.737c-.265.15-.564.23-.869.23h-.162l2.112 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.016.015-.045.04c-.21.176-.441.327-.686.45C4.556 10.78 3.88 11 3 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L2.178 4.5H1.75a.75.75 0 0 1 0-1.5h2.234a.249.249 0 0 0 .125-.033l1.288-.737c.265-.15.564-.23.869-.23h.984V.75a.75.75 0 0 1 1.5 0Zm2.945 8.477c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L13 6.327Zm-10 0c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L3 6.327Z'%3E%3C/path%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='16' viewBox='0 0 16 16' version='1.1' width='16'%3E%3Cpath d='M8.75.75V2h.985c.304 0 .603.08.867.231l1.29.736c.038.022.08.033.124.033h2.234a.75.75 0 0 1 0 1.5h-.427l2.111 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.006.005-.01.01-.045.04c-.21.176-.441.327-.686.45C14.556 10.78 13.88 11 13 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L12.178 4.5h-.162c-.305 0-.604-.079-.868-.231l-1.29-.736a.245.245 0 0 0-.124-.033H8.75V13h2.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1 0-1.5h2.5V3.5h-.984a.245.245 0 0 0-.124.033l-1.289.737c-.265.15-.564.23-.869.23h-.162l2.112 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.016.015-.045.04c-.21.176-.441.327-.686.45C4.556 10.78 3.88 11 3 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L2.178 4.5H1.75a.75.75 0 0 1 0-1.5h2.234a.249.249 0 0 0 .125-.033l1.288-.737c.265-.15.564-.23.869-.23h.984V.75a.75.75 0 0 1 1.5 0Zm2.945 8.477c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L13 6.327Zm-10 0c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L3 6.327Z'%3E%3C/path%3E%3C/svg%3E")}a.card-github .gc-forks:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='16' viewBox='0 0 16 16' version='1.1' width='16'%3E%3Cpath d='M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z'%3E%3C/path%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='16' viewBox='0 0 16 16' version='1.1' width='16'%3E%3Cpath d='M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z'%3E%3C/path%3E%3C/svg%3E")}a.card-github .github-logo{font-size:1.25rem}a.card-github .github-logo:before{background-color:var(--tw-prose-headings);margin-right:0;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='31' height='32' viewBox='0 0 496 512'%3E%3Cpath fill='%23a1f7cb' d='M165.9 397.4c0 2-2.3 3.6-5.2 3.6c-3.3.3-5.6-1.3-5.6-3.6c0-2 2.3-3.6 5.2-3.6c3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9c2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9c.3 2 2.9 3.3 5.9 2.6c2.9-.7 4.9-2.6 4.6-4.6c-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2c12.8 2.3 17.3-5.6 17.3-12.1c0-6.2-.3-40.4-.3-61.4c0 0-70 15-84.7-29.8c0 0-11.4-29.1-27.8-36.6c0 0-22.9-15.7 1.6-15.4c0 0 24.9 2 38.6 25.8c21.9 38.6 58.6 27.5 72.9 20.9c2.3-16 8.8-27.1 16-33.7c-55.9-6.2-112.3-14.3-112.3-110.5c0-27.5 7.6-41.3 23.6-58.9c-2.6-6.5-11.1-33.3 2.6-67.9c20.9-6.5 69 27 69 27c20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27c13.7 34.7 5.2 61.4 2.6 67.9c16 17.7 25.8 31.5 25.8 58.9c0 96.5-58.9 104.2-114.8 110.5c9.2 7.9 17 22.9 17 46.4c0 33.7-.3 75.4-.3 83.6c0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252C496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2c1.6 1.6 3.9 2.3 5.2 1c1.3-1 1-3.3-.7-5.2c-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9c1.6 1 3.6.7 4.3-.7c.7-1.3-.3-2.9-2.3-3.9c-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2c2.3 2.3 5.2 2.6 6.5 1c1.3-1.3.7-4.3-1.3-6.2c-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9c1.6 2.3 4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2c-1.4-2.3-4-3.3-5.6-2'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='31' height='32' viewBox='0 0 496 512'%3E%3Cpath fill='%23a1f7cb' d='M165.9 397.4c0 2-2.3 3.6-5.2 3.6c-3.3.3-5.6-1.3-5.6-3.6c0-2 2.3-3.6 5.2-3.6c3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9c2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9c.3 2 2.9 3.3 5.9 2.6c2.9-.7 4.9-2.6 4.6-4.6c-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2c12.8 2.3 17.3-5.6 17.3-12.1c0-6.2-.3-40.4-.3-61.4c0 0-70 15-84.7-29.8c0 0-11.4-29.1-27.8-36.6c0 0-22.9-15.7 1.6-15.4c0 0 24.9 2 38.6 25.8c21.9 38.6 58.6 27.5 72.9 20.9c2.3-16 8.8-27.1 16-33.7c-55.9-6.2-112.3-14.3-112.3-110.5c0-27.5 7.6-41.3 23.6-58.9c-2.6-6.5-11.1-33.3 2.6-67.9c20.9-6.5 69 27 69 27c20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27c13.7 34.7 5.2 61.4 2.6 67.9c16 17.7 25.8 31.5 25.8 58.9c0 96.5-58.9 104.2-114.8 110.5c9.2 7.9 17 22.9 17 46.4c0 33.7-.3 75.4-.3 83.6c0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252C496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2c1.6 1.6 3.9 2.3 5.2 1c1.3-1 1-3.3-.7-5.2c-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9c1.6 1 3.6.7 4.3-.7c.7-1.3-.3-2.9-2.3-3.9c-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2c2.3 2.3 5.2 2.6 6.5 1c1.3-1.3.7-4.3-1.3-6.2c-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9c1.6 2.3 4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2c-1.4-2.3-4-3.3-5.6-2'/%3E%3C/svg%3E")}a.card-github.fetch-waiting{pointer-events:none;opacity:.7;transition:opacity .15s ease-in-out}a.card-github.fetch-waiting .gc-description,a.card-github.fetch-waiting .gc-infobar,a.card-github.fetch-waiting .gc-avatar{background-color:var(--tw-prose-body);color:transparent;opacity:.5;animation:pulsate 2s infinite linear;-webkit-user-select:none;-moz-user-select:none;user-select:none}a.card-github.fetch-waiting .gc-description:before,a.card-github.fetch-waiting .gc-infobar:before,a.card-github.fetch-waiting .gc-avatar:before{background-color:transparent}a.card-github.fetch-waiting .gc-repo{margin-left:-.1rem}a.card-github.fetch-waiting .gc-description,a.card-github.fetch-waiting .gc-infobar{border-radius:.5rem}a.card-github.fetch-error{pointer-events:all;opacity:1}a.card-link{display:block;background:var(--license-block-bg);position:relative;margin:.5rem 0;padding:1.1rem 1.5rem;color:var(--tw-prose-body);border-radius:var(--radius-large);text-decoration-thickness:0px;text-decoration-line:none;border:1px solid var(--line-divider)}a.card-link:hover{background-color:var(--btn-regular-bg-hover)}a.card-link:hover .lc-titlebar{color:var(--btn-content)}a.card-link:hover .lc-card-title,a.card-link:hover .lc-description{color:var(--tw-prose-headings)}a.card-link:hover .lc-external-icon:before{background-color:var(--primary)}a.card-link:active{scale:.98;background-color:var(--btn-regular-bg-active)}a.card-link .lc-content-wrapper{display:flex;gap:1rem;align-items:flex-start}a.card-link .lc-icon-area{flex-shrink:0;width:3rem;display:flex;align-items:flex-start;justify-content:center;padding-top:.25rem}a.card-link .lc-text-area{flex:1;min-width:0}a.card-link .lc-titlebar{display:none}a.card-link .lc-titlebar .lc-titlebar-left{display:flex;flex-flow:row nowrap;gap:.5rem}a.card-link .lc-titlebar .lc-site{display:flex;flex-flow:row nowrap;gap:.5rem;align-items:center}a.card-link .lc-titlebar .lc-domain{font-weight:400}a.card-link .lc-favicon{display:block;overflow:hidden;width:2.5rem;height:auto;min-height:2.5rem;aspect-ratio:1;background-size:cover;border-radius:4px;background-color:var(--tw-prose-body);opacity:.9}a.card-link .lc-card-title{margin-bottom:.3rem;font-size:1.25rem;font-weight:600;line-height:1.4;color:var(--tw-prose-headings)}a.card-link .lc-description{margin-bottom:0;font-size:1rem;font-weight:300;line-height:1.5rem;color:var(--tw-prose-body);opacity:.9}a.card-link .lc-image{margin-top:0;border-radius:.5rem;overflow:hidden}a.card-link .lc-image img{width:100%;height:auto;max-height:200px;-o-object-fit:cover;object-fit:cover}a.card-link .lc-external-icon{font-size:1rem;opacity:.6}a.card-link .lc-external-icon:before{content:" ";display:inline-block;height:1em;width:1em;background-color:var(--tw-prose-body);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'%3E%3C/path%3E%3Cpolyline points='15,3 21,3 21,9'%3E%3C/polyline%3E%3Cline x1='10' y1='14' x2='21' y2='3'%3E%3C/line%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'%3E%3C/path%3E%3Cpolyline points='15,3 21,3 21,9'%3E%3C/polyline%3E%3Cline x1='10' y1='14' x2='21' y2='3'%3E%3C/line%3E%3C/svg%3E");transition-property:background-color;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}a.card-link.fetch-waiting{pointer-events:none;opacity:.7;transition:opacity .15s ease-in-out}a.card-link.fetch-waiting .lc-card-title,a.card-link.fetch-waiting .lc-description{background-color:var(--tw-prose-body);color:transparent;opacity:.5;animation:pulsate 2s infinite linear;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:.25rem}a.card-link.fetch-error{pointer-events:all;opacity:1;border-color:var(--admonitions-color-warning)}.card-github,.gc-description,.gc-titlebar,.gc-stars,.gc-forks,.gc-license,.gc-avatar,.github-logo,.card-link,.lc-card-title,.lc-description,.lc-favicon,.lc-external-icon{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@keyframes pulsate{0%{opacity:.15}50%{opacity:.25}to{opacity:.15}}.custom-md h1{font-size:1.875rem;line-height:2.25rem}.custom-md h1 .anchor,.custom-md h2 .anchor,.custom-md h3 .anchor,.custom-md h4 .anchor,.custom-md h5 .anchor,.custom-md h6 .anchor,.custom-md h1 .\!anchor,.custom-md h2 .\!anchor,.custom-md h3 .\!anchor,.custom-md h4 .\!anchor,.custom-md h5 .\!anchor,.custom-md h6 .\!anchor{margin:-.125rem!important;margin-left:.2ch!important;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important;padding:.125rem!important;text-decoration-line:none!important;opacity:0!important;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important;transition-duration:.15s!important}.custom-md h1 .anchor .anchor-icon,.custom-md h2 .anchor .anchor-icon,.custom-md h3 .anchor .anchor-icon,.custom-md h4 .anchor .anchor-icon,.custom-md h5 .anchor .anchor-icon,.custom-md h6 .anchor .anchor-icon,.custom-md h1 .\!anchor .anchor-icon,.custom-md h2 .\!anchor .anchor-icon,.custom-md h3 .\!anchor .anchor-icon,.custom-md h4 .\!anchor .anchor-icon,.custom-md h5 .\!anchor .anchor-icon,.custom-md h6 .\!anchor .anchor-icon{margin-left:.45ch!important;margin-right:.45ch!important}.custom-md h1:hover .anchor,.custom-md h2:hover .anchor,.custom-md h3:hover .anchor,.custom-md h4:hover .anchor,.custom-md h5:hover .anchor,.custom-md h6:hover .anchor,.custom-md h1:hover .\!anchor,.custom-md h2:hover .\!anchor,.custom-md h3:hover .\!anchor,.custom-md h4:hover .\!anchor,.custom-md h5:hover .\!anchor,.custom-md h6:hover .\!anchor{opacity:1!important}.custom-md a:not(.no-styling){position:relative;z-index:0;margin:-.25rem;border-radius:.375rem;background-image:none;padding:.25rem;font-weight:500;color:var(--primary);text-decoration-line:underline;text-decoration-color:var(--link-underline);text-decoration-style:dashed;text-decoration-thickness:1px;text-underline-offset:4px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.custom-md a:not(.no-styling):before{position:absolute;inset:0;z-index:-10;--tw-scale-x: .85;--tw-scale-y: .85;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:inherit;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;content:var(--tw-content);transition-timing-function:cubic-bezier(0,0,.2,1)}.custom-md a:not(.no-styling):hover:before{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));content:var(--tw-content);background-color:var(--btn-plain-bg-hover)}.custom-md a:not(.no-styling):active{background-image:none}.custom-md a:not(.no-styling):active:before{content:var(--tw-content);background-color:var(--btn-plain-bg-active)}.custom-md a:not(.no-styling){box-decoration-break:clone;-webkit-box-decoration-break:clone}.custom-md a:not(.no-styling):hover,.custom-md a:not(.no-styling):active{text-decoration-color:transparent;background:var(--btn-plain-bg-hover);border-bottom:1px dashed var(--link-hover);text-decoration:none}.custom-md a:not(.no-styling) .external-link-icon{margin-left:.25rem;display:inline-block;opacity:.6;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;vertical-align:text-top}.custom-md a:not(.no-styling):hover .external-link-icon{opacity:1}.custom-md code{overflow:hidden;border-radius:.375rem;background-color:var(--inline-code-bg);padding:.125rem .25rem;color:var(--inline-code-color);font-family:JetBrains Mono Variable,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.custom-md code:before{content:none}.custom-md code:after{content:none}.custom-md code{counter-reset:line}.custom-md code span.line:before{margin-right:1rem;display:inline-block;width:1rem;color:#ffffff40;content:counter(line);counter-increment:line;direction:rtl}.custom-md code span.line:last-child:empty,.custom-md code span.line:last-child:has(>span:empty:only-child){display:none}.custom-md .copy-btn{all:initial;display:flex;align-items:center;justify-content:center;background-color:oklch(.45 .01 var(--hue))}.custom-md .copy-btn:hover{background-color:oklch(.5 .01 var(--hue))}.custom-md .copy-btn:active{background-color:oklch(.55 .01 var(--hue))}.custom-md .copy-btn:is(.dark *){background-color:oklch(.3 .02 var(--hue))}.custom-md .copy-btn:hover:is(.dark *){background-color:oklch(.35 .03 var(--hue))}.custom-md .copy-btn:active:is(.dark *){background-color:oklch(.4 .03 var(--hue))}.custom-md .copy-btn{position:absolute;top:.75rem;right:.75rem;z-index:20;height:2rem;width:2rem;cursor:pointer;border-radius:.5rem;font-size:.875rem;line-height:1.25rem;opacity:0;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);--tw-shadow-color: rgb(0 0 0 / .5);--tw-shadow: var(--tw-shadow-colored);transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.custom-md .copy-btn:active{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.custom-md .frame:hover .copy-btn{opacity:1}.custom-md .copy-btn-icon{pointer-events:none;position:absolute;top:50%;left:50%;height:1rem;width:1rem;--tw-translate-x: -50%;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));fill:#fff;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.custom-md .copy-btn .copy-icon{fill:#fff;opacity:1}.custom-md .copy-btn .copy-icon:is(.dark *){fill:#ffffffbf}.custom-md .copy-btn.success .copy-icon{fill:var(--deep-text);opacity:0}.custom-md .copy-btn .success-icon{fill:#fff;opacity:0}.custom-md .copy-btn.success .success-icon{opacity:1}.custom-md .expressive-code{margin-top:1rem;margin-bottom:1rem}.custom-md .expressive-code ::-moz-selection{background-color:var(--codeblock-selection)}.custom-md .expressive-code ::selection{background-color:var(--codeblock-selection)}.custom-md ul li::marker,.custom-md ol li::marker{color:var(--primary)}.custom-md blockquote{position:relative;border-color:transparent;font-style:normal;font-weight:inherit}.custom-md blockquote:before{position:absolute;left:-.25rem;display:block;height:100%;width:.25rem;border-radius:9999px;background-color:var(--btn-regular-bg);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;--tw-content: "";content:var(--tw-content)}.custom-md blockquote p:before,.custom-md blockquote p:after{--tw-content: none;content:var(--tw-content)}.custom-md .katex-display-container{max-width:100%;overflow-x:auto;margin:1em 0}.pswp__button{margin-right:0!important;display:flex!important;height:3rem!important;width:3rem!important;align-items:center!important;justify-content:center!important;background-color:#0006!important;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important;transition-duration:.15s!important}.pswp__button:hover{background-color:#00000080!important}.pswp__button:active{background-color:#0009!important}.pswp__button--zoom,.pswp__button--close{margin-top:1rem!important;border-radius:.75rem!important}.pswp__button--zoom:active,.pswp__button--close:active{--tw-scale-x: .9 !important;--tw-scale-y: .9 !important;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.pswp__button--zoom{margin-right:.625rem!important}.pswp__button--close{margin-right:1rem!important}.scrollbar-base.os-scrollbar{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;pointer-events:unset}.scrollbar-base.os-scrollbar.os-scrollbar-horizontal{height:1rem;padding:.25rem .5rem}.scrollbar-base.os-scrollbar.os-scrollbar-horizontal .os-scrollbar-track .os-scrollbar-handle{height:.25rem;border-radius:9999px}.scrollbar-base.os-scrollbar.os-scrollbar-horizontal:hover .os-scrollbar-track .os-scrollbar-handle{height:.5rem}.scrollbar-base.os-scrollbar.os-scrollbar-vertical{width:1rem;padding:.25rem}.scrollbar-base.os-scrollbar.os-scrollbar-vertical .os-scrollbar-track .os-scrollbar-handle{width:.25rem;border-radius:9999px}.scrollbar-base.os-scrollbar.os-scrollbar-vertical:hover .os-scrollbar-track .os-scrollbar-handle{width:.5rem}.os-scrollbar.scrollbar-auto{--os-handle-bg: var(--scrollbar-bg);--os-handle-bg-hover: var(--scrollbar-bg-hover);--os-handle-bg-active: var(--scrollbar-bg-active)}.os-scrollbar.scrollbar-dark{--os-handle-bg: var(--scrollbar-bg-dark);--os-handle-bg-hover: var(--scrollbar-bg-hover-dark);--os-handle-bg-active: var(--scrollbar-bg-active-dark)}.os-scrollbar.scrollbar-light{--os-handle-bg: var(--scrollbar-bg-light);--os-handle-bg-hover: var(--scrollbar-bg-hover-light);--os-handle-bg-active: var(--scrollbar-bg-active-light)}.custom-md h1:before,.custom-md h2:before,.custom-md h3:before,.custom-md h4:before,.custom-md h5:before,.custom-md h6:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"";display:inline-block;margin-right:.5rem;position:relative}.custom-md h1:before,.custom-md h2:before,.custom-md h3:before,.custom-md h4:before,.custom-md h5:before,.custom-md h6:before{animation:windmill-spin 1.6s linear infinite}@keyframes windmill-spin{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}.custom-md h1:before{color:#ef50a8;font-size:1.3rem;margin-left:-1.35rem;margin-top:-.23rem}.custom-md h2:before{color:#fb7061;font-size:1.1rem;margin-left:-1.15rem;margin-top:-.12rem}.custom-md h3:before{color:#ffbf00;font-size:.95rem;margin-left:-1.02rem;margin-top:-.09rem}.custom-md h4:before{color:#a9e000;font-size:.8rem;margin-left:-.85rem;margin-top:-.09rem}.custom-md h5:before{color:#57c850;font-size:.7rem;margin-left:-.7rem;margin-top:0rem}.custom-md h6:before{color:#5ec1e0;font-size:.66rem;margin-left:-.7rem;margin-top:0rem}.custom-md h1:hover,.custom-md h2:hover,.custom-md h3:hover,.custom-md h4:hover,.custom-md h5:hover,.custom-md h6:hover{color:#49b1f5}.custom-md h1:hover:before,.custom-md h2:hover:before,.custom-md h3:hover:before,.custom-md h4:hover:before,.custom-md h5:hover:before,.custom-md h6:hover:before{color:#49b1f5;animation-duration:3.2s}.custom-md h1 .anchor,.custom-md h2 .anchor,.custom-md h3 .anchor,.custom-md h4 .anchor,.custom-md h5 .anchor,.custom-md h6 .anchor{margin-left:.2ch}html.is-changing .transition-swup-fade{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}html.is-animating .transition-swup-fade{--tw-translate-y: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));opacity:0}@keyframes fade-in-up{0%{transform:translateY(2rem);opacity:0}to{transform:translateY(0);opacity:1}}.onload-animation{opacity:0;animation:.3s fade-in-up;animation-fill-mode:forwards}#navbar{animation-delay:0ms}#sidebar{animation-delay:.1s}#swup-container{outline:none}#content-wrapper{animation-delay:var(--content-delay)}.footer{animation-delay:.25s}#banner-credit{animation-delay:.4s}#post-container :nth-child(1){animation-delay:calc(var(--content-delay) + 0ms)}#post-container :nth-child(2){animation-delay:calc(var(--content-delay) + 50ms)}#post-container :nth-child(3){animation-delay:calc(var(--content-delay) + .1s)}#post-container :nth-child(4){animation-delay:calc(var(--content-delay) + 175ms)}#post-container :nth-child(5){animation-delay:calc(var(--content-delay) + .25s)}#post-container :nth-child(6){animation-delay:calc(var(--content-delay) + 325ms)}.\!container{width:100%!important}.container{width:100%}@media(min-width:568px){.\!container{max-width:568px!important}.container{max-width:568px}}@media(min-width:726px){.\!container{max-width:726px!important}.container{max-width:726px}}@media(min-width:924px){.\!container{max-width:924px!important}.container{max-width:924px}}@media(min-width:1400px){.\!container{max-width:1400px!important}.container{max-width:1400px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: rgb(17 24 39 / 10%);--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: rgb(255 255 255 / 10%);--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-base{font-size:1rem;line-height:1.75}.prose-base :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose-base :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose-base :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose-base :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose-base :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose-base :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose-base :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose-base :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose-base :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose-base :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-base :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose-base :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose-base :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-base :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-base :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.prose-base :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose-base :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose-base :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose-base :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose-base :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose-base :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose-base :where(.prose-base>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose-base :where(.prose-base>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose-base :where(.prose-base>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose-base :where(.prose-base>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose-base :where(.prose-base>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose-base :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose-base :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose-base :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose-base :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose-base :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:3em;margin-bottom:3em}.prose-base :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em;line-height:1.7142857}.prose-base :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose-base :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-base :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-base :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose-base :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-base :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-base :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose-base :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-base :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose-base :where(.prose-base>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(.prose-base>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}:root{--tk-text: black}html.dark{--tk-text: #d1d5db}.tk-submit .tk-avatar{display:none}.twikoo .code-block pre{border-radius:.75rem!important}.twikoo .code-block .copy-btn-icon{width:inherit!important;height:inherit!important}#twikoo .tk-row.actions{display:flex!important;justify-content:flex-start!important;gap:.6rem!important;padding-left:0!important}#twikoo .tk-row.actions .tk-emoji-btn,#twikoo .tk-row.actions .tk-image-btn,#twikoo .tk-row.actions button,#twikoo .tk-row.actions a{margin-left:0!important;margin-right:.4rem!important;align-self:center!important}#twikoo .tk-row.actions .el-icon,#twikoo .tk-row.actions .tk-action-icon{padding-left:0!important;padding-right:.2rem!important}#twikoo .tk-row.actions .tk-col,#twikoo .tk-row.actions .tk-input,#twikoo .tk-row.actions .tk-toolbar,#twikoo .tk-row.actions .tk-actions{padding-left:0!important;margin-left:0!important}#twikoo .tk-row.actions .tk-actions>*,#twikoo .tk-row.actions .tk-toolbar>*{margin-left:0!important;margin-right:.3rem!important}#twikoo .tk-row.actions .tk-actions{position:relative!important}#twikoo .tk-row.actions .tk-emoji-btn,#twikoo .tk-row.actions .tk-image-btn{position:relative!important;left:0!important}#twikoo .tk-row.actions .tk-emoji-btn .el-icon,#twikoo .tk-row.actions .tk-image-btn .el-icon{padding-left:0!important}#twikoo .tk-row.actions{display:flex!important;justify-content:flex-start!important;align-items:center!important;gap:.6rem!important;padding-left:0!important;margin-left:0!important;width:100%!important}#twikoo .tk-emoji-btn,#twikoo .tk-image-btn{margin:0!important;padding:.2rem!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;position:static!important;left:auto!important;right:auto!important}#twikoo .tk-actions{display:flex!important;align-items:center!important;gap:.4rem!important;padding-left:0!important;margin-left:0!important}#twikoo .tk-input,#twikoo .tk-meta-input,#twikoo .tk-submit,#twikoo .tk-col{padding-left:0!important;margin-left:0!important;width:100%!important}#twikoo .tk-preview{display:none!important;visibility:hidden!important;opacity:0!important;position:absolute!important;left:-9999px!important;top:-9999px!important}.dark\:prose-invert:is(.dark *){--tw-prose-body: var(--tw-prose-invert-body);--tw-prose-headings: var(--tw-prose-invert-headings);--tw-prose-lead: var(--tw-prose-invert-lead);--tw-prose-links: var(--tw-prose-invert-links);--tw-prose-bold: var(--tw-prose-invert-bold);--tw-prose-counters: var(--tw-prose-invert-counters);--tw-prose-bullets: var(--tw-prose-invert-bullets);--tw-prose-hr: var(--tw-prose-invert-hr);--tw-prose-quotes: var(--tw-prose-invert-quotes);--tw-prose-quote-borders: var(--tw-prose-invert-quote-borders);--tw-prose-captions: var(--tw-prose-invert-captions);--tw-prose-kbd: var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows: var(--tw-prose-invert-kbd-shadows);--tw-prose-code: var(--tw-prose-invert-code);--tw-prose-pre-code: var(--tw-prose-invert-pre-code);--tw-prose-pre-bg: var(--tw-prose-invert-pre-bg);--tw-prose-th-borders: var(--tw-prose-invert-th-borders);--tw-prose-td-borders: var(--tw-prose-invert-td-borders)}:root{--radius-large: 1rem;--content-delay: .15s}:root{--primary: oklch(.7 .14 var(--hue));--page-bg: oklch(.95 .01 var(--hue));--card-bg: white;--btn-content: oklch(.45 .12 var(--hue));--text-primary: oklch(.25 .02 var(--hue));--text-secondary: oklch(.45 .05 var(--hue));--text-tertiary: oklch(.55 .03 var(--hue));--btn-regular-bg: oklch(.95 .025 var(--hue));--btn-regular-bg-hover: oklch(.9 .05 var(--hue));--btn-regular-bg-active: oklch(.85 .08 var(--hue));--btn-plain-bg-hover: oklch(.95 .025 var(--hue));--btn-plain-bg-active: oklch(.98 .01 var(--hue));--btn-card-bg-hover: oklch(.98 .005 var(--hue));--btn-card-bg-active: oklch(.9 .03 var(--hue));--enter-btn-bg: var(--btn-regular-bg);--enter-btn-bg-hover: var(--btn-regular-bg-hover);--enter-btn-bg-active: var(--btn-regular-bg-active);--deep-text: oklch(.25 .02 var(--hue));--title-active: oklch(.6 .1 var(--hue));--line-divider: rgba(0,0,0,.08);--line-color: rgba(0,0,0,.1);--meta-divider: rgba(0,0,0,.2);--inline-code-bg: var(--btn-regular-bg);--inline-code-color: var(--btn-content);--selection-bg: oklch(.9 .05 var(--hue));--codeblock-selection: oklch(.4 .08 var(--hue));--codeblock-bg: oklch(.17 .015 var(--hue));--codeblock-topbar-bg: oklch(.3 .02 var(--hue));--license-block-bg: rgba(0,0,0,.03);--link-underline: oklch(.93 .04 var(--hue));--link-hover: oklch(.95 .025 var(--hue));--link-active: oklch(.9 .05 var(--hue));--float-panel-bg: white;--scrollbar-bg-light: rgba(0,0,0,.4);--scrollbar-bg-hover-light: rgba(0,0,0,.5);--scrollbar-bg-active-light: rgba(0,0,0,.6);--scrollbar-bg-dark: rgba(255,255,255,.4);--scrollbar-bg-hover-dark: rgba(255,255,255,.5);--scrollbar-bg-active-dark: rgba(255,255,255,.6);--scrollbar-bg: var(--scrollbar-bg-light);--scrollbar-bg-hover: var(--scrollbar-bg-hover-light);--scrollbar-bg-active: var(--scrollbar-bg-active-light);--color-selection-bar: linear-gradient(to right, oklch(.8 .1 0), oklch(.8 .1 30), oklch(.8 .1 60), oklch(.8 .1 90), oklch(.8 .1 120), oklch(.8 .1 150), oklch(.8 .1 180), oklch(.8 .1 210), oklch(.8 .1 240), oklch(.8 .1 270), oklch(.8 .1 300), oklch(.8 .1 330), oklch(.8 .1 360));--display-light-icon: 1;--display-dark-icon: 0;--admonitions-color-tip: oklch(.7 .14 180);--admonitions-color-note: oklch(.7 .14 250);--admonitions-color-important: oklch(.7 .14 310);--admonitions-color-warning: oklch(.7 .14 60);--admonitions-color-caution: oklch(.6 .2 25);--toc-badge-bg: oklch(.9 .045 var(--hue));--toc-btn-hover: oklch(.92 .015 var(--hue));--toc-btn-active: oklch(.9 .015 var(--hue));--toc-width: calc((100vw - var(--page-width)) / 2 - 1rem);--toc-item-active: oklch(.7 .13 var(--hue))}:root.dark{--primary: oklch(.75 .14 var(--hue));--page-bg: oklch(.16 .014 var(--hue));--card-bg: oklch(.23 .015 var(--hue));--btn-content: oklch(.75 .1 var(--hue));--text-primary: oklch(.85 .02 var(--hue));--text-secondary: oklch(.65 .05 var(--hue));--text-tertiary: oklch(.55 .03 var(--hue));--btn-regular-bg: oklch(.33 .035 var(--hue));--btn-regular-bg-hover: oklch(.38 .04 var(--hue));--btn-regular-bg-active: oklch(.43 .045 var(--hue));--btn-plain-bg-hover: oklch(.3 .035 var(--hue));--btn-plain-bg-active: oklch(.27 .025 var(--hue));--btn-card-bg-hover: oklch(.3 .03 var(--hue));--btn-card-bg-active: oklch(.35 .035 var(--hue));--line-divider: rgba(255,255,255,.08);--line-color: rgba(255,255,255,.1);--meta-divider: rgba(255,255,255,.2);--selection-bg: oklch(.4 .08 var(--hue));--codeblock-bg: oklch(.17 .015 var(--hue));--codeblock-topbar-bg: oklch(.12 .015 var(--hue));--license-block-bg: var(--codeblock-bg);--link-underline: oklch(.4 .08 var(--hue));--link-hover: oklch(.4 .08 var(--hue));--link-active: oklch(.35 .07 var(--hue));--float-panel-bg: oklch(.19 .015 var(--hue));--scrollbar-bg: var(--scrollbar-bg-dark);--scrollbar-bg-hover: var(--scrollbar-bg-hover-dark);--scrollbar-bg-active: var(--scrollbar-bg-active-dark);--color-selection-bar: linear-gradient(to right, oklch(.7 .1 0), oklch(.7 .1 30), oklch(.7 .1 60), oklch(.7 .1 90), oklch(.7 .1 120), oklch(.7 .1 150), oklch(.7 .1 180), oklch(.7 .1 210), oklch(.7 .1 240), oklch(.7 .1 270), oklch(.7 .1 300), oklch(.7 .1 330), oklch(.7 .1 360));--display-light-icon: 0;--display-dark-icon: 1;--admonitions-color-tip: oklch(.75 .14 180);--admonitions-color-note: oklch(.75 .14 250);--admonitions-color-important: oklch(.75 .14 310);--admonitions-color-warning: oklch(.75 .14 60);--admonitions-color-caution: oklch(.65 .2 25);--toc-badge-bg: var(--btn-regular-bg);--toc-btn-hover: oklch(.22 .02 var(--hue));--toc-btn-active: oklch(.25 .02 var(--hue));--toc-item-active: oklch(.35 .07 var(--hue))} diff --git a/_astro/_page_.DDTcyX3R.css b/_astro/_page_.DDTcyX3R.css new file mode 100644 index 0000000..deb2a90 --- /dev/null +++ b/_astro/_page_.DDTcyX3R.css @@ -0,0 +1 @@ +.back-to-top-wrapper[data-astro-cid-eymb5ayk]{width:3.75rem;height:3.75rem;position:absolute;right:0;top:0;pointer-events:none}.back-to-top-btn[data-astro-cid-eymb5ayk]{color:var(--primary);font-size:2.25rem;font-weight:700;border:none;position:fixed;bottom:10rem;opacity:1;cursor:pointer;transform:translate(5rem);pointer-events:auto}.back-to-top-btn[data-astro-cid-eymb5ayk] i[data-astro-cid-eymb5ayk]{font-size:1.75rem}.back-to-top-btn[data-astro-cid-eymb5ayk].hide{transform:translate(5rem) scale(.9);opacity:0;pointer-events:none}.back-to-top-btn[data-astro-cid-eymb5ayk]:active{transform:translate(5rem) scale(.9)}.navbar-glass[data-astro-cid-5blmo7yk]{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.dark .navbar-glass[data-astro-cid-5blmo7yk]{border:1px solid rgba(255,255,255,.05)}.dropdown-menu[data-astro-cid-5blmo7yk]{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transform:translate(-50%) translateY(-8px);transition:all .2s cubic-bezier(.4,0,.2,1)}.group[data-astro-cid-5blmo7yk]:hover .dropdown-menu[data-astro-cid-5blmo7yk]{transform:translate(-50%) translateY(0)}.dark .dropdown-menu[data-astro-cid-5blmo7yk]{background-color:#232323f2;border-color:#ffffff1a}.dropdown-menu[data-astro-cid-5blmo7yk] a[data-astro-cid-5blmo7yk] span[data-astro-cid-5blmo7yk]{color:inherit}.dropdown-menu[data-astro-cid-5blmo7yk] a[data-astro-cid-5blmo7yk]:hover{background-color:var(--btn-plain-bg-hover)}.dropdown-menu[data-astro-cid-5blmo7yk] a[data-astro-cid-5blmo7yk]:hover span[data-astro-cid-5blmo7yk]{color:inherit}.group[data-astro-cid-5blmo7yk]:hover .dropdown-menu[data-astro-cid-5blmo7yk],.dropdown-menu[data-astro-cid-5blmo7yk]:hover{opacity:1;visibility:visible}.mobile-sidebar-panel[data-astro-cid-kdccxack]{background-color:#fffc;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:-2px 0 20px #0000001a;border-left:1px solid rgba(0,0,0,.1);transition:all .3s cubic-bezier(.25,.46,.45,.94)}.dark .mobile-sidebar-panel[data-astro-cid-kdccxack]{background-color:#232323cc;box-shadow:-2px 0 20px #0000004d;border-left:1px solid rgba(255,255,255,.1)}.mobile-sidebar-overlay[data-astro-cid-kdccxack]{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:all .2s cubic-bezier(.25,.46,.45,.94)}.mobile-sidebar-backdrop[data-astro-cid-kdccxack]{transition:opacity .2s cubic-bezier(.25,.46,.45,.94)}.mobile-submenu-arrow[data-astro-cid-kdccxack]{transition:transform .25s cubic-bezier(.25,.46,.45,.94)}.collapsed[data-astro-cid-ucso7hve]{height:var(--collapsedHeight)}.hitokoto-container[data-astro-cid-qot46ah7]{padding-left:1rem;padding-right:1rem;padding-bottom:.5rem}.hitokoto-text[data-astro-cid-qot46ah7]{min-height:3rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.hitokoto-text[data-astro-cid-qot46ah7] p[data-astro-cid-qot46ah7]{margin-bottom:0;line-height:1.625}.animate-spin[data-astro-cid-qot46ah7]{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.essay-carousel-container[data-astro-cid-3pckgzt2]{position:relative;z-index:20}.carousel-btn[data-astro-cid-3pckgzt2]{z-index:10;cursor:pointer}.carousel-indicators[data-astro-cid-3pckgzt2]{z-index:10}.indicator[data-astro-cid-3pckgzt2]{cursor:pointer}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/roboto-cyrillic-ext-400-normal.DzMWdK87.woff2) format("woff2"),url(/_astro/roboto-cyrillic-ext-400-normal.DtZHuW6i.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/roboto-cyrillic-400-normal.DAIM1_dR.woff2) format("woff2"),url(/_astro/roboto-cyrillic-400-normal.DZJji7Rx.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA5cABIAAAAAGtgAAA38AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhQbHhw0BmA/U1RBVF4AXgiBfgmfBhEMCoJ0gnQLFAABNgIkAyQEIAWEeAcgDIVOG4kZIxHmlLUCwF8V2MbMoa4AxWgkRCthOLSyMZeTQC5uuOJg8u6E3LDs4xbJUqAc5hwClMNy/OePZYQksz9fV/beV6lD19AduEZiD8BOMgHVE619Io7rU3LbKR6I/eb7XiLXiZBIeONoXDeJWimViYW8pUXLJnW3vOum0Jq2rJBTxgHxjUABglAv/FCYGVNlZkz8z7H9YZ5Md+9lxCLcImIaGnXUht+bapJuld5NR8rgTTqoPbsVUTVFbb0AnQKIkp093FLP6ze5XT5S6dxqfBzN+b2dJM29HAELQ0qeMZ3ZbpvZTQo53PYR9R3muDnMU+QOPrARxCzkl19oC6hLwh3l21mn+wJJmOo2nHRQZhKIQpC1L6cDArD4Mkg2C+sAqvWrjvWohAxGMZYzTBMAJA52zcLTbez1tDbA2lFrZX02Z17a3iR4U3Kvz6I6PIQDvktCADCXT9A7qAoBADrABjHUV2d0Ozk6vOamloB5qrIzIejwSPFzlbgDgI7C+pO0Xp57L77IuqK9BhGga1TTjgD4X2E+BBIg3K0kUAQJPFuFmIVTBB7aRy7xaDUPqOACUrCgMT+ViTMLybwW25kL6C7lEludwgFeYb7gp7n522s+z8ckSQFWJA7LoRfvWATMvzvmvfmc4xV1418A8Ia3nT+nvuqk9njVJ73uLvpcZ3zpsdPBb3AivLPbgQajHrhkv+NecdsqR7n1++xz2S8t5z3TxNcecAUxfusd6qNmnbHXfuRLh51232NvBp/g//pNtFNdwgby/sXqGTiMmLDPsZqfqp5plRTlug0YY/hQz6/zige+8kvgDn1mHHXedU/iAxaX406fOnlianJifGx0ZHhocKC/r7enu6uzo72ttaXZ1tTYUF9XW1NdVdmEzKpp8F9/9eUXN6Wzz66fTsbDweefffpJv9fttFsfvpNtrOdp1AJXfDXfaORJVIOlv3mdkkIYSIRPg2RDMIZW90e2aCqtnWINAwwF7A0zKSf6roOTzghCzXP1x9wflpYKKQmIDptgJE9pny5Lh0BMbRBlHldfIDqVrJhUKMayPCMTYCL2WQQnuC5DRSy8Mjc/5yLZOEaZYc12rm+IsmyVJv7qOcbyTCm1QQzVi5NpPFo94xpDQ2mh+1vX6egCBwBOG9fQ5G/LH8hDr4ggwNOBFSfghRVu6sjys1+VOLEm52rznez2DbFu5JHIZXRJ71Ojkd6nl7ZenEC/z7C/ELVw5S9ddOWzDOiOYTsoEcIuLk3i0/7I9rU7VRtyZ9h2affpqmoUvOODBw8lQ4KYMdsdWYtkWLErYbGMnLGupyXbi095AIdKcMt9RRF659XON5bP187Xz7cWthdURDT/cj3tXyiJopJfLWo7pWDYGbXXaOf0dVWjwOXTsvQAm3+PI3K1Mt8ducYPedqKCzNL+6tFtpXKoUpdfj1MIy8iGRke2tl4CAQEYKd3ilFAmbwTxtjyd3ilXfjcrtnICTAhy3PFLi5/SZoLJBuOpSvveyMDjYbXIc4OdwIU3YpbnsuAIXAXbqiuyaPMm7KDspZIqnoVJL4SxCNxvhfR9V56mpxGdKxsQdXzS2j6kjrjLDmzBUjNwLivf+GCC3rtuZTzlAjGwN6pWxegVzA4gOlLFZlcau1eSxs5FRFGptnI+8NofG4GNxYFXEJib9LA0vuhCuczmlqxFvJ9XZpNJ+UXXnech8qrvMIJlczEK0ZyoBmMIRgIMOcyKku5zzIprVgePOOxjca5lFIVFFVOSW7l5/ZmI08DJEOW1ySZ1MJMN6huk9NrPZl6niLvGLq/jXgX+FaZihH3TIq8g3WJ42KmIuiHmaBmZDXNHOf9y4CJnbu0I3YRKAy0yuIjjIt44b4Dcdylpm9UCy71YHgiUkRSfoVGnUKDM2zPFjA8JdEzPuSMUGC1oc28SAxXAQQQ4w9Bq3c+2anSDoxelFGH10FGa7dHk1H7LEzAhdUgaFIjhgfkHXnPwLSsVW7xKt2GAUaLrRq0CdOppSUTJL0/gu3M6YC0sOJDc9YI4bXzLfUOmX8nPcDcAjJiZ3GkWzC0GhIETgh2s7gTzYbDHLq36etG8igNxEOksV8VrB2Ji/xJzuusiUwz31UlLoFQ6A049mSp6AeS8wDHLAFjde0Na8qoRd1dCQqZJ3rW7XZHjZzZUyB0CHAF0Whi4ep72FzYZzMC42SeTYCZRQqbliLwWIsBSewLyAGn4Ky0YJ0VgbKUu74XjEgrDV0Esoghe6mueKiwwDJCuS9b5+vsaNKwFsCxgAJye5MBa5UsSmpSXq8o708xckDDlkbgIHMhUW0eekSVYf7K/QhSI2DcCSMwfBZVm29PLAzPMHKuClo2RlJCvZYzNZoeo8vuIGoB2JruNiNF0mrUUr2Rl80axp1f8GCtNt/2njjLG1FbKF7MTDn3oBJqgplkuLKKG6Jq16ga7mM03FitWa8qwiKnB0K6kfL2BS88G/RWCKwuo7TFSQs8JSCeAHQnzbQnOnCWQbwpTfAvRFIf71/Bf3IkahUYX5CeJ9veknKWcj/7eY4PLKCjjmlyCCiW8uxEp2HAwi6rJXfxBRp0datmjpjyCVl8g6LkTSWHJgHuSCBAUI7C6GuSt4B9zSDIWgNKCWJFugmuPYPFTqr1wLLBgnbuRYo0ryOxL2/VWLgzS42Fe1z8EVQcQIpUU+GfgX4DmJjXMlZco4ltTKh1XQWbJGd6/ffwRsiSQGjFSTdTm+bvLiWkI3DQB7dkkRroraTIbqoWZH+rVsjNJhxgIZBe+QsmQKE4CEOJFdKPfcBaJaYc0V9rYpfUsoNKykBx6FOfnyxhZdkhmuh93+ZAWsW++RtA6fADiJHsUt4hbAX5eGDANHKxr4WpI65R9PZJ9nRpO08EOSUGVAPN7MNw0CplEJzxBBw//b/uXIPBOTa/Biil9TXIax+oB2xG3iVUuTWDx6kT+xN5y/wPkltY5dSQ1b9PWBTjfL/N7N7yT9oIoyox25LoeQAzKUclvmz0QB24xUJnxB4IFYq5gxf/tRn1R/vEzzMuLWeUHifHh0AhH12cYAkMlkgeOOClNv/Irlm0RWjD2ER0yvboRtEfAa+YMNNlmvFHmSDIiRW+9omdl1qQ2FqQ+DEYj8P8jckbs3BYdcOnDIsiHUmgruHD32p/xGo48XeaijF0+sJKnwHwh+GbTux0KpdjqH3XNkcMgFCpKu32ZwoykBvOSAj9BnGk19q862Vtu+kHX1EqyiO7dv+eAkbeZzmwV2n+rg5AVwZhaT8uBZLHmgUMzsZb1kngYGHNwdwftvTsgAiZ/E+LfI1TeEt5Ki+Dd4y3kGexKJiwHUGAacZPs3KlUPtgYaD1pLwock9d6evO/V707fbB8OtXX6n2529+QBz5+PZbbd/T199n3P6zZRn/8ZgDMPyUNf/FGvswX4OcLmqv8u4MzfmBxx1b7FvWAU8xhlcPE3T0MnHP6wVutvYdoxX4ovT0KWei4FoqPX3+TfHEiPWfe5pJr4FzMsjZC29k4q/4zLM08ub/6qj1o8qpI5GFeYciq6a2fjS6Orb145rpQ5F5RYcjK6ZDPl62xnV8SVvoeyt+2d3zf+bN5BivzXMx24Xv0uzSBeCONwEzEH8+0jCY35h/8xT+jaF4iPVLaKtQWsEnH7wkJDDoGecLJEIkCCgELP4iOCAw6CVK/JcALO2AT9EKCICGSbMvPr26tmjXc59HBgCA97/3cgAAvz8SmwX9bQ9pcgE8T5rPW2TAbxUe5BA2/bWREu1XYR/+wATf6oqcoLkspDXqfWe+hF0YYrEAZwD5WtSBUNh6oQcojJWWR8Hq50pkCSxMdO78SirY5yuZ9RwrOXd2FpzbtGKhLbadgQAWvnElgsqZibkrQ2GPguXhquxZPTNAGptGpZokVbq1fLhBrPZnvVa57MUVGNdUXFlztal2iGvtZm12CGCbxys1qWLLwnZ5wnLb0P76dbVFLotWO/shXIlzh55LFZzl3Nqha7UYXUgnB55mu52IH7wwDrdq2YWeljLRks+7Hm2n3TQmza3DW8U9jGy1rAcHnUaXgULlYDXiFDc2dawul6mF6vCWtrXtjnWenqtWq+VC7UAZf+X9QRT8MjbVq1TpU27jhre2RpXXHIdu83aXF+prT2YdVHja/RgcrNyL/j3sa45eb+vP0NPcgasWdrW04qKqRUcT25s2cdo4jpNGttSxuaFma2BT/Sr262uvof5/b319Fjv1TmxXWFNidalWVWZlkRUFlhd+cStsYiPHktwTznkW5SUcsyzIMD/NvFQtN8WclA7ZSWYlmBmPYCaexXR0FVNRpkZ/MYkxOfaEUYSJ4TRGwr/ohxkXnsVgOI2BEKMDjAqcoDfIiOAJusEwv4Sen4aPe73c3Sx1/O9qrqCpqsf2uhM01I2jvi6EuqqEeqkDxcIJ8rkhpFMdiLtUcI8mEC17XMsRtxlhtXvNcshFp0ArAg1O+zKcWfgd3GDnersW68ou75KzYvcuuc+243fH5mqzfyxaimZhKhqFecG4oLNaBLcyYclluZtUa4wsYkPsP0YXFS3M1KyqkKxCYBBk6nPVXJE7JDBAjAuboHvFmhgSFFxehgFgk/2HKlZZUCsRci7J3aRYI2QRGSL/EUoNg+PL6SFkpIf/JHM27FBS8h04Dbd57pMak3kOMQ0Qi/k5c4iz7v3AAfBVhx2H0ucfUXi+o4U5QsJTc+YYnXWn7eDDJ5/+wFjtAJ8zJUmUuKHyjR5KfpkKPvCQLwrpIo5UlOT8TQZbNvimnA==) format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAAYcAA8AAAAABwQAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABWAAAABQAAAAUAA8ACEdQT1MAAAFsAAAAHgAAAB5EdEx1R1NVQgAAAYwAAAA0AAAANJMNggJPUy8yAAABwAAAAGAAAABgl4LQ2VNUQVQAAAIgAAAAXgAAAF5e+0M1Y21hcAAAAoAAAABUAAAAVADNH/FnYXNwAAAC1AAAAAwAAAAMAAgAGWdseWYAAALgAAABNgAAATZng0GjaGVhZAAABBgAAAA2AAAANglAYTFoaGVhAAAEUAAAACQAAAAkCroFqWhtdHgAAAR0AAAAIAAAACAX6f/DbG9jYQAABJQAAAASAAAAEgGEAVltYXhwAAAEqAAAACAAAAAgACgBIW5hbWUAAATIAAABMwAAAng3dGTWcG9zdAAABfwAAAAgAAAAIP9tAGQAAQAAAAwAAAAAAAAAAQAHAAEAAQABAAAACgAcABwAAURGTFQACAAEAAAAAP//AAAAAAAAAAEAAAAKADIAMgAEREZMVAAeY3lybAAaZ3JlawAabGF0bgAaAAAAAAAEAAAAAP//AAAAAAAEBIcBkAAFAAAFmgUzAAABHwWaBTMAAAPRAGYCAAAAAgAAAAAAAAAAAOAAAv9QACBbAAAAIAAAAABHT09HAEAAAB9NBgD+AABmB5oCACAAAZ8AAAAABDoFsAAAACAAAwABAAEACAADAAAAFAADAAAALAACd2R0aAEBAAB3Z2h0AQAAAWl0YWwBAgACAAYAEgAiAAEAAAACAScAZAAAAAMAAQACAQYBkAAAArwAAAADAAIAAgEoAAAAAAABAAAAAAAAAAIAAAADAAAAFAADAAEAAAAUAAQAQAAAAAwACAACAAQAAAANACAAoB9N//8AAAAAAA0AIACgH03//wAB//X/4/9m4LoAAQAAAAAAAAAAAAAAAAABAAIACAAI//8ADwAFAGQAAAMoBbAAAwAGAAkADAAPAAABESERBQEBJQkDIQkCAyj9PAKO/u8BEf2oAQ3+8wEq/v4CA/39AQIBAQWw+lAFsFT9fP18DAJ4Anj9RP2iBUT9ogJeAAACAHf/7AUKBcQAFQArAAABFRQCBgYjIiYmAjU1NBI2NjMyFhYSAzU0LgIjIg4CFRUUHgIzMj4CBQpSmteFgdedVlWc14GF15tTvzVmk11akWc4OGmRWl6SZTQDBlyk/vy2YGC2AQSkXKQBA7dgYLf+/f8AXoLIiEZGiMiCXoPJiUZGickAAAIAcARxAskF1wAFAA8AAAE1EzMVAyU1MxUUFhcHJiYBknTD3/6GpyoqSVZcBIQRAUIV/sL+VU9IaC06LY////54/+wFUAXWACYABEYAAAcABf4I//8AAAABAAAAAwJO30PFVF8PPPUAGwgAAAAAAMTwES4AAAAA4dQCb/oa/dUJMQhzAAAACQACAAAAAAAAAAEAAAds/gwAAAlK+hr+SgkxAAEAAAAAAAAAAAAAAAAAAAAIA4wAZAAAAAAB/AAAAfwAAAWBAHcDIQBwAfwAAAXH/ngAAAAtAC0ALQAtAHAAjwCPAJsAAAABAAAACACpABUAdgAHAAEAAAAAAAAAAAAAAAAAAwABeJx9kU0vA1EUht/bVhNN06VYWEwsqISiRJSVWDQ2iAjrGmNU6MjMdOEv+DEifoffJJ45vfRDIif3znPee857P0ZSQ28qy1XmJX24Rc9OdVf3XKLmy3NZbX16rmhJ757ntKJXz1X0geeG9rQ/YifVte7ZqaZlzyX0Bc/V8V5uFb3muQlJF0r0pB7up1Bq/KgT5fbtK9Q18y35PRTBMZTbyPWsTAfaJBI4wuUOGrAy6i2UjLll3rHtdsPIGRtkEdqQ2h6rV2Qp1X1zCLRD1xbR0SFZG2prd8ohmHGY7OjqjOhC/+05m40rj+1GL6g/Nx6dYZsIdIkS2f6TpzmnOtEDK6HVH+FcvFRi9wrU/PNqMe5FxRCXFl3FvyjUhIg5VfT7nhl6OnWT0E6d2YuFWvsGFBtciwAAAwAAAAAAAP9qAGQAAAAAAAAAAAAAAAAAAAAAAAAAAA==) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/roboto-greek-400-normal.jFM2czAU.woff2) format("woff2"),url(/_astro/roboto-greek-400-normal.CcizSnRP.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/roboto-math-400-normal.B3wgz80t.woff2) format("woff2"),url(/_astro/roboto-math-400-normal.rzxYvyVt.woff) format("woff");unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/roboto-symbols-400-normal.fF1SLJBj.woff2) format("woff2"),url(/_astro/roboto-symbols-400-normal.Tzuungub.woff) format("woff");unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/roboto-vietnamese-400-normal.CDDxGrUb.woff2) format("woff2"),url(/_astro/roboto-vietnamese-400-normal.DmXaN3yE.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/roboto-latin-ext-400-normal.ZYmyxeOy.woff2) format("woff2"),url(/_astro/roboto-latin-ext-400-normal.eTRLN0Nt.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/roboto-latin-400-normal.CNwBRw8h.woff2) format("woff2"),url(/_astro/roboto-latin-400-normal.068yxgMN.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/roboto-cyrillic-ext-500-normal.B7rQpwPu.woff2) format("woff2"),url(/_astro/roboto-cyrillic-ext-500-normal.C927yMrb.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/roboto-cyrillic-500-normal.hCeO1jFL.woff2) format("woff2"),url(/_astro/roboto-cyrillic-500-normal.BI4HuXre.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,d09GMgABAAAAAA5sABIAAAAAGvQAAA4KAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhQbHhw0BmA/U1RBVFoAXgiBfgmfBhEMCoJ0gnQLFAABNgIkAyQEIAWFFgcgDIVOG6MZsxEVbByAILK7AP7LBG4MBfug7sEH00ksWBAwvcIrw8A1d9ddP5LhKpEo+yhMJYZllANlIsgjEon/D9SMkGTWf54u/XPfvHmDjStNwW3iwlNG2m0zgTZkwbhtVFD7LY697ufrH6EibO70AN2S6gGBMMtsZ90IiFM/2wKa86Tdur1Xm7SmapG2YEHAbSUhujvuJeL3ppqkW6V305EyeJMOac9uRaRailocgJsCiJKcPdxSz+s3uV0+UuncqtXvp4GCQnjtFRCChDMR/qsKw0pH6o2Pn9bstW92k3/7EUoQVRaOlKwxeW8yl30zu4E5nOSI9n5p73iLiUruuxLbemJ2tZUV2lZWTXSd4wxCgcZDMj8espV10cIYISxOP1aCAPhg5QiqCEoAHSNnQstWJLgQzVlW2TYBFo5Qw8cXG71b11CF4aeG4krv2L2gqUbytsi9O5cq6VfIgHxYjgRoDJ6RXkJJCAD6YBPoxGoqepocPb7jmInA/0BJdpjBQCcUv9Jc2QvAIIG2n6TNQOyTTMfWFDWVEQFrTmVNBNC/wnwBYmAYZzABCQyMpnilaZwhhX6lId6cjKILsLJ2Q/h+jjjnB1WN4FrtC8PJItHjFhqom9m/41M7+eE98e6dskwAgxIvBsIgnns62N9O/u/t3zAeFPM3mtznQcfO/Xc7YCZTki73upJ9pcNecYtDwYfYP360S4EDba47qdc+d7lkiD3YeTfoccr7o8fcronPLjiNOfeAu2tdv8Pyzjd7xS6HXHOL+4On6D/9LtrBKmkD8fBE9BK8WnXqsTfm21gvNUQKj7U2aUd4Z80/87TrXvV+MAkbbLfHMefcGvdBLBNpPg8e2L+1q7Ojva21Zcvmfq/babeajXqtWimXioV8LptJp5KJeCwaCYeCAb/P63G7nA67zWo2GQ16nVajVim9HcX7b2Vbm400OoI3fDPfajaSqIfCcLsvSyEMlIyvg2RDMIdW90c2bymtnWINExw5nAsz8WSGroKTSguh5pX6Y+4PS0u55I+Y7ZpQFE/1MF+lhsFM7LDCrFteILpl2SqGZVvsSzIBY+meRbgmYtOmipR4a9n8bCHZOEahYc12zt8UVdkZO/E31zafl0qpDWaoDkim9urqc65p3FRaGH7hOhXTcCYCrBjXaPG36c/kYVREEODpwMpY0JkVbf/I8stflIxlTc7V9kNs/olYNxuRyXUcn96nRjO9Ty9tHZDAuHfZX5hauvHXLk7AiwgYvuk5tBDBK52VxKf9keefcKo26X6L5zbuM13VJHTfDw8BIceiuDFvEqKC5XilLyF4Ts3Z/BShegHLHuBQgltpZSNK5+0ut1YvNy43L3eWdpdUJDL/0l/0L5JEo+RXH7WbQtDijyZqsjfxE1WTQNVTWHoIq947mNxSWeiOkvMdn3lxfXdpf/WRXVIYsvT16kmajTyyoeGqXbTDYACAprxTTAKJSadgji3/pFfamZpr1X8rAsZkea7YxYEvSF2OZMOxYO1db6SiUfUa5ux4ZyChW3HhuRw4DHfTw9UtdVfoTThJWSGUhlEFiR+ERGSudyK530nPk/NIztoOdD2/hkNf5x66SC48AcoIKBHrvzjnnF55Jh6eEsEc2Du1cAFGBZMDuL5Wkcu11u6VtNmgPGJoWs1GfxjNT83gqc0CnUnS3aLFlXdDFc6rWlqxluyHj2+1nFSYa+K9DJVnBbmTKpmBt1zOgWYwh+AgYMahLUu5bzIprfjcecZjG81LKaAqKKqcEquK80Sr2UgNJB2rfZJa9FJLd6gWzsraSKaep8R7h+FvW96NvGC2TJZ7JiXuUyJxnM9YBMMwMpIZWU0zx/noMjC2c7dcmqYJEgyMScAJJU/Ycd+LeO+Wnm90Ac/y4HgiF0tSfjONCoUqZ9heLqBlSmJkfMyIVCDa0GY5yLRUAQwQ9Q+ToreR7FRpB06tSK3DPsRp7Z6oMWpfhgk0txoMLm1Gy4C8I+8RmNS08oXcoEWoYNTZ6oFP6O4vLbkg6fUWm5YzCWVuycNz1hmiGxdbKh0y/1F6wMwCWelm8aYbcBQFGYJMCHZR3Jk6w2EOw9sMDSF5pEYSIdKYqJy1o1mGeFLwpmomU+SXqmR8IOR4AxkHEiTGkWQ84JAl4KxuvWFNGRVU3PWgMieLkXVn3EmzwRxokDokuBlRbWLO+jvU0thfawR2qFxLwNQihc0oE8ipegOWPCRQAJbRtLTghWUhsdS6vhZMq5WGaQKbTzF/6a54rKjAc0K7lad7t9l3KMNGAN8HNFAnagx4qWLRiku9emV6IMXIgRTXO4GNzMWU68mxJzQ45q/SlyA5AeMpmIHhy6jaftBkYXqG1rlNMKoxkpLqjZzJaXqcWA0H5ZaB5zBdN1qyjD4ZZbsRV251ycEvR7BZ2w9GT57VjXJHJTxvmartQTGURTPJeK0Xd0TVblI13MfY9NRqzXpdAYKtDIR0Ix7/oueRjXo9BEY3obTgpIC8ZJBIAN1JkYnEAI0amPakGf6FSary4RW0pZGpdVCiQ3qVbHdHPCweP/t6Tg8s0FWnMAUENKG9PLHaMDC3q2rFXUKRjdYUqyFGTL0LovgFFSWaWh17BGRfAQGCMBpPvCF5J3RvGATVOIDWRtkj3QFuPKPlQmr2wNFoSTv3LE3Urq10d2+NmLPXSp0PD7D0I+g4gmJpS2V8FjcaYGzeqFR5tRPrTOwoujq2Qc745u/qjSmhgDCKk26utu3fXUmoQGCjD27FojTQWysTu6ELyP7WxVhqTdjAh0Brz182ARpNbRiqrJC+7CPWqii1SPpOE7uiVh10UgYJxzEN+WQlV5O5pN2+dz0Z2Jh0b38H0HL8AWImu5T3io0Qnw1sMs2GdG9EcrfcyDG7J1XS1V2cMlSTWNQNHGYfhgNXa5Vg1RPI+On/fudWOILjybcCKWfsFah9H+iDtUY+TyjJl7Wf9k/sTxQt9z+YL6ghU0NW/z5pUdbzgVqze8s/cS3aVKJ3caJnAdykbPN92hmBKnDLjs5JdwB0SJYOXsJXhu2P9olfZVxazig9TU4PgWI+uvgIlsBhT9WRA51r+yvmLpos2jA1EYOyA3izGI9AF3SakeeG6VczQZATI/z0SzcveZDZWZL4MTiPw8KtwVujfFh1uw8aFk06siBd483f6nikahz5Ow2lGAZ9YakvAfwxeN1JN516/DFU/63FiAEIqg2l3f5MWQby3UyE8L8Qb3qp7SuMte2eH3xlqiKP4rziF1U7SztMgj6l+ae7gN4YTCv7acmWTNZM4MKttknSINoE58Pb8/JJiiVsYMNGGxHDaoeGIEigI3AJ9or9fn4xFkHcsHYfA0w8v8jgwULfAD9yrHPZ3/K6uL5hrR+uz37YDWj5vV7Vu1//vE3U+s73DUfPa++3XHf4uhSR8NXjGNDyLkr4hmzeQFkOZGzJ8an1XJyNYfu8M7tnjoDsoo0fxR01r0fSU85lTxzUNLeNQW5KfajUJ1Iebvn4He+tt3a9uz51R4Z8Ljmxip+88651bQU+xIk7V/K/f52uD7k7c3O7mZ7eavrDoXev1zND78luaQXX39tqCblnwNBbOwbWL3xq0EcLtvxZXnQtmViwPyE6aXJWb5AvJpFXgBSI/1UbLPxfZX8re+TXTW2yGBkoNQitAc4yIjAyLPx2WfZVGFMQ2gkNeC4idPz2d0gsJBAImsHZjQIBkFjSffv65+T5z//NP0IFADz6P+gB4KMXq7Vg3ighwy5AG5Sq/3cA+SlGADdRW1cX0KReFOmn/2BGbkdxNAJFaSltSO9Hm05gPg6GAKEOA/vcvzlD4yUDPE4CcW305mD0s0AYHvACgx9+H5cQJtPJ+QoyJjlZEBiuq+CHmVIKAXywjANbbvZ2Qn56gaBjHDPJD+5UZjE5r4spLw2kqVWtQI2kyDTMx6vEasKTch6rJhfluCzi4phLxTVJFC5a3FxFerjQQhPl40rXaTRX6Mm1cVKsRolCjdJLVG70TIjd7lIt3cH6eWXjBr4p1+EMkXUcdro55mXCiIm2OyrHRUt+3d9o8zSLNC6NHlmlQAPvZQ2z1IexdRp8V3Y5/HQGVxaK2+lwKRqUK1DjkWku1hxBU+vLvRumxKlZqpzLNStsxlMqiKDPtXO8SnEEuRHrbvBMe/zAZhpjOz2VhNWV2RUo8qI3i7B57f+9d3QfG3S+P6H9iGi9aL5v1NjG6XOjdiepXkYqF8o7Suew9kThCJA/4qDq+BDZ44wyxzKlV6RmJGcsKFlq8Un+F8ZGRMd/KhyThHuE+gHlDQgMHOV08LXwNvDUQ6uGq56gVQVHCXuxS7bijKw2gMXCbP8pxcHoBpRkoNcnpNP/FK+h0Q7U+oRUCkoBhaggl5DJClIgyTlanEOU4YPh7YUTfT3/5Zae7yapd1/h8d7Iw/023d9xFHkt4uqywsW5hpNjEQcrI8S9Q9q7WVvxmdVZ2hldTfvUCrY232jzcXnRx/IZbSxhfRFscZyyNyvMG94uMm989oL/HG/lffHLMwBteJA7MDzAHWQFWL5RPm45irt9LG6N4Xmc+fMt/Acu+ef6uR1RuluJEm4Khzu3dEtYWwSFimRRK6RFIk9sERKsBigUtX4gaVGqW4pibtVi1hiWx5g/28J+YJJkmjLdSTu9Lmf8nYptifdqKVle2uadmI59VTM10yu2eeFeZWXcRNRvdfb1YdQ43rszPeNmCddHsm5ibGlqxk1c6rcam+DkLJ0PtI1mOM+0qExF66SZHpoAZXOwhFNJtkvuhrN1Vjc1emi/0kMBAAA=) format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAAYYAA8AAAAABvgAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABWAAAABQAAAAUAA8ACEdQT1MAAAFsAAAAHgAAAB5EdEx1R1NVQgAAAYwAAAA0AAAANJMNggJPUy8yAAABwAAAAGAAAABgl+bQ5VNUQVQAAAIgAAAAWgAAAFpe+EDZY21hcAAAAnwAAABUAAAAVADNH/FnYXNwAAAC0AAAAAwAAAAMAAgAGWdseWYAAALcAAABNAAAATRvqViDaGVhZAAABBAAAAA2AAAANgl8YTFoaGVhAAAESAAAACQAAAAkCvYFwWhtdHgAAARsAAAAIAAAACAX6v+ZbG9jYQAABIwAAAASAAAAEgGCAVdtYXhwAAAEoAAAACAAAAAgACgBIW5hbWUAAATAAAABNgAAAnI2oGOwcG9zdAAABfgAAAAgAAAAIP9tAGQAAQAAAAwAAAAAAAAAAQAHAAEAAQABAAAACgAcABwAAURGTFQACAAEAAAAAP//AAAAAAAAAAEAAAAKADIAMgAEREZMVAAeY3lybAAaZ3JlawAabGF0bgAaAAAAAAAEAAAAAP//AAAAAAAEBJMB9AAFAAAFmgUzAAABHwWaBTMAAAPRAGYCAAAAAgAAAAAAAAAAAOAAAv9QACBbAAAAIAAAAABHT09HAEAAAB9NBgD+AABmB5oCACAAAZ8AAAAABDoFsAAAACAAAwABAAEACAADAAAAFAADAAAALAACd2R0aAEBAAB3Z2h0AQAAAWl0YWwBAgACAAYAEgAeAAEAAAACAScAZAAAAAEAAQAAAQcB9AAAAAMAAgACASgAAAAAAAEAAAAAAAAAAgAAAAMAAAAUAAMAAQAAABQABABAAAAADAAIAAIABAAAAA0AIACgH03//wAAAAAADQAgAKAfTf//AAH/9f/j/2bgugABAAAAAAAAAAAAAAAAAAEAAgAIAAj//wAPAAUAZAAAAygFsAADAAYACQAMAA8AAAERIREFAQElCQMhCQIDKP08Ao7+7wER/agBDf7zASr+/gID/f0BAgEBBbD6UAWwVP18/XwMAngCeP1E/aIFRP2iAl4AAAIAZf/sBR0FxAAVACsAAAEVFAIGBiMiJiYCNTU0EjY2MzIWFhIHNTQuAiMiDgIVFRQeAjMyPgIFHVaf3oeG3aJZWKHdhofeoFf7L1uEU1OCWzAwXYJTVIJaLwMAUKX++rhhYbgBBqVQpQEFuWFhuf779VJ6u39BQX+7elJ6vIFBQYG8AAIAZARwAsYF1wAFAA8AAAE1EzMVAyU1MxUUFhcHJiYBi3LJ4v6AqCYqTU9cBIQUAT8V/sL5WlRCYidIKI3///5s/+wFYwXWACYABEYAAAcABf4I//8AAQAAAAMCTs7vnsRfDzz1ABsIAAAAAADE8BEuAAAAAOHUAm/6Jv3VCWEIcwAAAAkAAgAAAAAAAAABAAAHbP4MAAAJbvom/j4JYQABAAAAAAAAAAAAAAAAAAAACAOMAGQAAAAAAf0AAAH9AAAFgwBlAxsAZAH9AAAFyf5sAAAALQAtAC0ALQBvAI4AjgCaAAAAAQAAAAgAqQAVAHYABwABAAAAAAAAAAAAAAAAAAMAAXicdZG7TsNAEEWPk0BEhFJQUFBZFBAKTAgI8ahQkCIKHooQ1OAYYxRiZDsFfAffQUHJJ/EFlFyvF8QKodGuz87emdkZA21eqeM15oA3b8GyxxKflmvSfFiu0+XdcuOXZoYVXizPyv9suc0ORxV7MM+uZY8WgeWa/MuWm+JFy6viluWOCIakPHDNhFNRZnjMCREjEqY6H1MYX0LIlfaRzneiSByLCrMKHsnZZ0OWiiNlvBVNdFPFlp5ce2DqxKbyjVahte5UvBRn0iYm3mdLMV3ZHgc69UQ9th3vgDPZQPR/1qE4Fo3VTebofEfXN+9/kua7v6rmpsznQp5IXzf+XOqUe92ERn+oTOVcUtOHT+fPjGJlLxVTZQkUVf6F0pvKYr0x+pleLn/mdBWaHnIzoZC1L/2vW5AAAAADAAAAAAAA/2oAZAAAAAAAAAAAAAAAAAAAAAAAAAAA) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/roboto-greek-500-normal.BJMS0heP.woff2) format("woff2"),url(/_astro/roboto-greek-500-normal.BLLWU9W-.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/roboto-math-500-normal.CFNaIMFC.woff2) format("woff2"),url(/_astro/roboto-math-500-normal.DaFX-ZC8.woff) format("woff");unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/roboto-symbols-500-normal.BXFTxrNR.woff2) format("woff2"),url(/_astro/roboto-symbols-500-normal.CAhAe-ik.woff) format("woff");unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/roboto-vietnamese-500-normal.HYpufUYk.woff2) format("woff2"),url(/_astro/roboto-vietnamese-500-normal.DW96CsrR.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/roboto-latin-ext-500-normal.C_ARlJGk.woff2) format("woff2"),url(/_astro/roboto-latin-ext-500-normal.FFcS8vBN.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/roboto-latin-500-normal.CkrA1NAy.woff2) format("woff2"),url(/_astro/roboto-latin-500-normal.CC5nhZkh.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/roboto-cyrillic-ext-700-normal.UFn0vR9r.woff2) format("woff2"),url(/_astro/roboto-cyrillic-ext-700-normal.BuQgZIrO.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/roboto-cyrillic-700-normal.BiSG5NnW.woff2) format("woff2"),url(/_astro/roboto-cyrillic-700-normal.KqaQ5bNp.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:700;src:url(data:font/woff2;base64,d09GMgABAAAAAA5MABIAAAAAGrwAAA3pAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhQbHhw0BmA/U1RBVFoAXgiBfgmfBhEMCoJ0gnQLFAABNgIkAyQEIAWEYAcgDIVOG20ZsxEVbBwIgI7nA/wfErghQ6yhf1lCWsMKP1jQwRxxrwhfIu6zeUlWmJNCpZ8KmhJDMxW/Oo5Y9OUvU/DbHYEZIcms//07tXMfSYYgWgF0wi6wFkPoThQsg1MGFxjWi4x/W/HAc7l/Ywkd4IziXuQLF0hC2zwbCygOpA6++jn3kpRApRbfGt2Z82UHrMT3e1NN0q3Sm3SkDN6kQ9qzWxFVt6itF6BTAFGSs7cc+3n9JrfLRyqdW1XYXCqH4XLREl+7+kdzCqQ2Pf6MsAiQcNtPSiB8jKzSk/riIz+A1I90Zu1IsnMKQsVQlFSVaRrNrNfW7Eo+3QbXDpHvQndsBXUVdUmeoCmIbD8BFdWXX9QtoNqwXSkwcerok9TvNWan+WMLIiNxfPUFAdwyS3RxqAY4pc4ajW6vb0eUYOln2wQkrlAtQqP08YvnzUDy5HkTp3sLZowNzBK8GblXF9E09ggkyK2sBKjEU/yCSQwA9MAmMFL2C1Q1NVXBADwNCjdgknaYwQCdAEAMZQiAAY4QHQfEYj9cEdh6QmAKEbBw8pQAATQJjJ1BDEwm4qFwDAvyW6UoHKeCPUJDvJqHCTdgJe2a8JlCrQ2nq1Zc/cMYOFk+bnGGBnGV/R98Y5Nf8HcxplkKxMkQYqEvhi4E7F+O3PD2vxjHxfU/A3jUE47tMx9yQOd9ahs84kr2mQ57290OBV9gf3hrlwIX1rjupK32edAlCdiDrbsUW5zy2YFj7tPEZw84jTn7uIdq7XaH5ZXv8rZdDrnmbo8FL9L/+m0VDlYJG4iHJ6ImQlZbb4u9Md/LapaAZozHIizHWoR31vw6T7vuHZ8FuViKzfY45px74m2INGsPHTywf+OG9evWrlkt2W0369VyMZ9NJ2NJxKPhQOA5lqEp0g8yn03LSfBfffnF5zeFs8+vn41Hg/7TJ48f9bqddqv5yfvZxnotja7hFV/NNuq1JDpHYbjZe6VQCa3i46DJEMyB1b2hzRtKa6dYw4QghyfDVMZXhq6Ck0oDpeaZeiPuDQpLuYwJmB01pkie9v16WdoHlrHF7ea49gZVmeRUZ0K5hqUpE9AswWkEBztmqkiFl5b5s4Um4xjjDGu2M35d1LW1Gvurc4K7WUotsKQqMpnYs+VzrijUFRaGn7t2xTEwAPqMKgzgb8vvycMoiaDgSd9KBujNijZzaLn1R0kGa3Kusp+8274i1vVaZLqMWeldSzTTu7bCVpEJjLt2+wuLhSt/6WI2HiBgeKZbUSKCu1yS1KW9ods/7FRl0r1VbqPd71hZkeheH+59Uo5Fc2NuLqIOy4nyTsIROT1X8vmO7kb2ugeLBI9CZiJ65+XON5bP187Xz7cWthdUJDL/0hv+RUockfzqju0UglXe8HBF5U7+WVWRsOHDKfSCUvxOYrpWWei2QuNHPGvFxf7C/urWdigMWeoye4R6LY9sb3hoB3YfGADQUe8Uk4Az6VGYI8t/xCvtTOIa9Z+KgGayPFPsYuyrMidHk+E4duUjb2Sg0fDax9nhSoHTKbnpuSwEhjvpuvKaPMZ5Ex6hrCmUilEGiS+E+MjqDyM1H6anyWmkamULzs3sEq7NZe2cs+TMVaDtB7W+/olzzunNFzKeJ0Qw+/ZWzV2AUcLkALG5VFHoUmv3ZlqvUR7RaBr1Wm8Qzaemf2OzQItJgg3qXPoolOHar6EVa6m+f1aj4aTCXGuh81B6lp87oZIZeMnbONAU5gACAto4NEUh90nGhRX3n6c8stE8l7FUBkWlU2KVfj7cqNdSA8mI5TVJJrUw0y3l3OlbGcnE84R45zD8Y8zbwHNmJhrumhS4RzWp5XzKIhiGkeI5tJqmjvOBZaDZzlzako4ROAYOSuQRJU/Ycd2JhG5T29eqCZd4CB6KZEzKr9KYpjDDGbZWAasmJEbGh4wIBU4LWiyD1KoygAE1/jDpdIeSnSjtIKxlGXVBx1zJ2h0xy6htwQS6Wg1Gk+qxqk/ekfcInBKtfEdWaB4GGC22qt8mdGcWlmyQtnoDa+YcgXa15H0z1hmi73KuB2g/X1LQBdoskCJBllDaO2gWpAjSUO6guFJzDIcZDG8zNITkkRqJh0hjTeWsHc0w/EnOO1oxTZBvqpSsQOjxBpI9iRbjQDru0ZMlEC6vvWFNGTWpu5OgMuQI1QmJO5ICs+9A6BDgKmOmiT2rH1ILYddsIzBJ90ACWi2a2bQWQXaba8AW+wRyQC86Fxaisww4S9LxtWAarTQcI7BrjMVHdcRjRQWRU8plri7us+eShrUCnhscoCezjASlkkVpTSrqFeXdzUYOeDy3EdjIXEy1row9oSKYfQp/gtQIGB2FGRi2UJX9RNLC9AyNc7ugdWMkJdRruVKj6TW+7g6qLQHXpTvNyFRpZ9TafiMumzVKOr/kwWplP+E9cZUPqj3AeTkz5dyDiTAlmkrGK6u4JSpXlcrBMUbdjdWa9aoCHNY3ENqMjG9f9NKzUXeFwOgKSpucNCFTCvEJkNVOkcOJARoJmLalKf6FKe3z/h0GPSOLVVC7ID1Ltr0l41nG++nfc/e+BQarY5gcAg7H0dpYYBhot8tqyd1ClY0Wdqs2RkzFhCi+QVnzptJDm4D0NFCgCKMw/prkrRBcMwi6dgHlCGJFugVee0eLnVTtQqDRgnbuWoo0r40El7dK7NmZpdbtPaz7Azg5gGZpT4V/OpcZoNk861l5N2PbmNjVdR1sgpzx9d/DG1OOBkorTnrYyra/u5SQjsBGP1ySRWqgr9Iiu6GakP2lmqEwm7CBm0B25S+ZAAfFYRjaWSH92UesVVKSSPpKY7uklh2cpgycQ5+GvrOWS2QoaWrvI1cCOyjBzf8ASl33gJkcUt4pLCE+EVhu6jUJrk1qx1yr0dsX2dPt2zhVyCnR6Uy48hiGA1c5BkG/h5D89P+6cx2Bc1x5HfCag29CX/vAuWe2kc8bJuWnDB9nju1P5C37P5jvUEVaQ1Z/n7Aoxvnu2ebwln/iGqxRid7mRC8CRKZsxviyNQJV4BILnZVgAFQoFk5ewjeH6Q2PiZ9lVFjOKD1Ojk+BYj67eAuWILDH6sCB3pX94507KRpasNtYDMr24HoxHoA+WG9GXmimn2WCMidG+NolQV5qQWprQepGED4PCzcGb4zSadVNHzQsinSkQZsKU/hb7Y9uFXr5Ow11Yxj0uaU2AR5AwztOgrSrrHOoXdcWIwYgKKso7Y5nSjKQNpqJ4P4NEko/lX3ljrXtttWwUJTK8grm9ifTsDN0wwTYqTT/scFA1s5gWtrvLt3SyZoJnH7JfRI0CK9C+OUWVG4Nwuj0Hsxkkxz8aLxnJ6AdwF5AOMANqICSYe0MBjoODeLjlXMpwgPXYpcjLC+OO5Yu8sMl2Te7FKve77zjDL733kdEqz9+/33Xlnff/XDMFb4nARK+sy0AVj0CCd+X+qXU5ULHOHK9khHtnKFl+0IDZaCCdNHGz+CW+pcg3T85150TFxjaDkIuSo1bv5qft7QzD3w1NrhZGp17oFM7f9sFS5198Eo2ByXw30SnKvm5KlBwR8vC/uH19YHhzQvjoYGq+QWhlkX9I5KBJk2L2l9KzJvtaxO/GfZa3Ncj1/9bv9gxMrP7ZEtrVVbXpuht5EKOQRnUv2+DAjfG2b/IgHzPdOSp1Cg+TznmweutiKosK79PyjCNMQ2llaWRr1aUlpXfz1lJFBA9Gl6fDwTgYWNJ5uc1fRHD/+2n6ACAZ757BQC+vLPZFvh9ftWBsTQi0OY33IA8dx9tRM1mGziirZiAXfSDKbnBaJ6AzrKQVsT9nSqCMhwCE4lSHAb2iegHQ4Bw13EUOwDcFSCuIG7/rGB0v6zgivDECiEel1dIuVjHCsvPWh5uIAb3I8CtKKwgOGUyk3x87LBHwcnLOzk/ag7cKG2A1yKIRxrfujghEl6jdRQmd3NMRdyLmRQlQZxrDonMFDzQWo+gr4EXS/JEZbHpP/2atMht60j2l1uZU5vXY7AoJG8JmhpW7tbEkgnVE+1orfwEIstvAxL73Qmw2JJ4lkN79v7gHG6dtMqq3RKyWegNZ98mYZ8ZVHdkqi5jr+hBS+6c8OGhConmQm5X25+O3xFBnwfzEKfnOxax0bgF3Jncalr06rFPx7IdAaOrobPfDNb/yg7Lx/qL70eYP07MXpi+NjTZzsc3SDcJ8UoAXzDaYXj+D04Qjjr4I/a5402wxy9ijitEr0ANIAfm92fS6/K/sNug0/bajUSrQLPsNCrUq6yWoZqgEqEc/ksBiuGi4CHvIGdfUNb+ooyuI60hpfeSBhJmJ64gJr9RVO5FJIRlHiH5jYICAgz8DMPHwcsxPAA3lbkoOAk47sBmkdtq0SKz7tKkxzDqEzDon5BeJ9OonVApMRR/YXx/OfGOWpLw5Obke3IqU5K6s5OjPVkyOak7M8nmxgiPMTgxvtuTWOxJT7BJvL3Ea56UyqTUrkRffGpX8tVN+N2JSxoZf74zpjzaH1Ue6Y+2Iq0wn9svfcLvtoTlEX2CRYiV4nfBI3rD/S6f06/5lJ/K4Q+3nJayVioqVU1qtuKjVJ9aqTisUlCF2fgdL3y6n/uYX7eY5WF9jEWwlex3xrlpSnqAdobavXUPaHa6LuRo7grRplDOCPuoZktnSG0Kwd/Z1XEn0XZr/bZtSLu5LrSzreMujvMtWXcydktLx52Cb7fmB+CF1+u9oa30w3ulJCslbSRt9FJ0mwkvcJMfEbJFGWWU1cWHDC6G31QiAAAA) format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAAYUAA8AAAAABugAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHREVGAAABWAAAABQAAAAUAA8ACEdQT1MAAAFsAAAAHgAAAB5EdEx1R1NVQgAAAYwAAAA0AAAANJMNggJPUy8yAAABwAAAAGAAAABgmK7Q0FNUQVQAAAIgAAAAWgAAAFpe+kGhY21hcAAAAnwAAABUAAAAVADNH/FnYXNwAAAC0AAAAAwAAAAMAAgAGWdseWYAAALcAAABNgAAATZveQfqaGVhZAAABBQAAAA2AAAANgmwYTFoaGVhAAAETAAAACQAAAAkCykF1GhtdHgAAARwAAAAIAAAACAX6P92bG9jYQAABJAAAAASAAAAEgGEAVltYXhwAAAEpAAAACAAAAAgACgBIW5hbWUAAATEAAABLgAAAmA0U2IscG9zdAAABfQAAAAgAAAAIP9tAGQAAQAAAAwAAAAAAAAAAQAHAAEAAQABAAAACgAcABwAAURGTFQACAAEAAAAAP//AAAAAAAAAAEAAAAKADIAMgAEREZMVAAeY3lybAAaZ3JlawAabGF0bgAaAAAAAAAEAAAAAP//AAAAAAAEBJ4CvAAFAAAFmgUzAAABHwWaBTMAAAPRAGYCAAAAAgAAAAAAAAAAAOAAAv9QACBbAAAAIAAAAABHT09HACAAAB9NBgD+AABmB5oCACAAAZ8AAAAABDoFsAAAACAAAwABAAEACAADAAAAFAADAAAALAACd2R0aAEBAAB3Z2h0AQAAAWl0YWwBAgACAAYAEgAeAAEAAAACAScAZAAAAAEAAQAAAQkCvAAAAAMAAgACASgAAAAAAAEAAAAAAAAAAgAAAAMAAAAUAAMAAQAAABQABABAAAAADAAIAAIABAAAAA0AIACgH03//wAAAAAADQAgAKAfTf//AAH/9f/j/2bgugABAAAAAAAAAAAAAAAAAAEAAgAIAAj//wAPAAUAZAAAAygFsAADAAYACQAMAA8AAAERIREFAQElCQMhCQIDKP08Ao7+7wER/agBDf7zASr+/gID/f0BAgEBBbD6UAWwVP18/XwMAngCeP1E/aIFRP2iAl4AAAIAVv/sBS4FxAAVACsAAAEVFAIGBiMiJiYCNTU0EjY2MzIWFhIFNTQuAiMiDgIVFRQeAjMyPgIFLlqk44qJ46ZbWqXjiYrjpVv+0SpSdkxMdVEqKlJ2TEx2UCoC+kWm/vi5YmK5AQimRacBB7piYrr++exHdLB4PT14sHRHc7F5Pj55sQAAAgBaBHACxAXXAAUADwAAATUTMxUDJTUzFRQWFwcmJgGFcc7k/nqoIytSSFwEgxgBPBX+wfZeWD5dIVMkif///mL/7AV0BdYAJgAERgAABwAF/gj//wAAAAEAAAADAk7RiEHAXw889QAbCAAAAAAAxPARLgAAAADh1AJv+jH91QmJCHMAAQAJAAIAAAAAAAAAAQAAB2z+DAAACYz6Mf4zCYkAAQAAAAAAAAAAAAAAAAAAAAgDjABkAAAAAAH9AAAB/QAABYQAVgMXAFoB/QAABcr+YgAAAC0ALQAtAC0AcACPAI8AmwAAAAEAAAAIAKkAFQB2AAcAAQAAAAAAAAAAAAAAAAADAAF4nG2Qzy4DURSHv2lLtGm67HpiQSUUJUKtsGhsEBHWNcaoVEdmpgt7T2Nh4Qk8kKUH8Jszt9WGnNx7v/s7/+49QIN3yniVKvDh4dijzrfjEkt8OS6zzqfjCk3eHC+wwqvjRekjxw322C9YtevKLtijxrLjkvSm4+pvL29Ves1xSwSXxDzRV/UzUWI85JTMzgEBN9rvdH8QheJIlNnKeCaly6YsFoeqci8ayVPk5kqqvW21I+t2q5VpbXCsfaja14pIFDewXJ8dxW/JDjjUrSPqsDuX609zZ2N7nMt6ov/7TM5Z74m9/EX9Jz8rOm7LfK6khDrne18oOuZRnsDijxjbRGL7hU/rz3QiVc8jxqrSVlY+81yNZZHeFE7nlkpP5l4fyN+XntpE134A3PNXvwAAAAMAAAAAAAD/agBkAAAAAAAAAAAAAAAAAAAAAAAAAAA=) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/roboto-greek-700-normal.BcGn9doz.woff2) format("woff2"),url(/_astro/roboto-greek-700-normal.D3kmAf0K.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/roboto-math-700-normal.VUAI6Bz2.woff2) format("woff2"),url(/_astro/roboto-math-700-normal.pYD1nhov.woff) format("woff");unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/roboto-symbols-700-normal.rJi6RjIy.woff2) format("woff2"),url(/_astro/roboto-symbols-700-normal.CuuvBBxy.woff) format("woff");unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/roboto-vietnamese-700-normal.iKxYNAzq.woff2) format("woff2"),url(/_astro/roboto-vietnamese-700-normal.Dz0HwF-w.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/roboto-latin-ext-700-normal.70GS1MYH.woff2) format("woff2"),url(/_astro/roboto-latin-ext-700-normal.BS1OuQqR.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/roboto-latin-700-normal.CXeAXeti.woff2) format("woff2"),url(/_astro/roboto-latin-700-normal.DUekQERp.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:KaTeX_AMS;src:url(/_astro/KaTeX_AMS-Regular.BQhdFMY1.woff2) format("woff2"),url(/_astro/KaTeX_AMS-Regular.DMm9YOAa.woff) format("woff"),url(/_astro/KaTeX_AMS-Regular.DRggAlZN.ttf) format("truetype");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:KaTeX_Caligraphic;src:url(/_astro/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2) format("woff2"),url(/_astro/KaTeX_Caligraphic-Bold.BEiXGLvX.woff) format("woff"),url(/_astro/KaTeX_Caligraphic-Bold.ATXxdsX0.ttf) format("truetype");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:KaTeX_Caligraphic;src:url(/_astro/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2) format("woff2"),url(/_astro/KaTeX_Caligraphic-Regular.CTRA-rTL.woff) format("woff"),url(/_astro/KaTeX_Caligraphic-Regular.wX97UBjC.ttf) format("truetype");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:KaTeX_Fraktur;src:url(/_astro/KaTeX_Fraktur-Bold.CL6g_b3V.woff2) format("woff2"),url(/_astro/KaTeX_Fraktur-Bold.BsDP51OF.woff) format("woff"),url(/_astro/KaTeX_Fraktur-Bold.BdnERNNW.ttf) format("truetype");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:KaTeX_Fraktur;src:url(/_astro/KaTeX_Fraktur-Regular.CTYiF6lA.woff2) format("woff2"),url(/_astro/KaTeX_Fraktur-Regular.Dxdc4cR9.woff) format("woff"),url(/_astro/KaTeX_Fraktur-Regular.CB_wures.ttf) format("truetype");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:KaTeX_Main;src:url(/_astro/KaTeX_Main-Bold.Cx986IdX.woff2) format("woff2"),url(/_astro/KaTeX_Main-Bold.Jm3AIy58.woff) format("woff"),url(/_astro/KaTeX_Main-Bold.waoOVXN0.ttf) format("truetype");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:KaTeX_Main;src:url(/_astro/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2) format("woff2"),url(/_astro/KaTeX_Main-BoldItalic.SpSLRI95.woff) format("woff"),url(/_astro/KaTeX_Main-BoldItalic.DzxPMmG6.ttf) format("truetype");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:KaTeX_Main;src:url(/_astro/KaTeX_Main-Italic.NWA7e6Wa.woff2) format("woff2"),url(/_astro/KaTeX_Main-Italic.BMLOBm91.woff) format("woff"),url(/_astro/KaTeX_Main-Italic.3WenGoN9.ttf) format("truetype");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:KaTeX_Main;src:url(/_astro/KaTeX_Main-Regular.B22Nviop.woff2) format("woff2"),url(/_astro/KaTeX_Main-Regular.Dr94JaBh.woff) format("woff"),url(/_astro/KaTeX_Main-Regular.ypZvNtVU.ttf) format("truetype");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:KaTeX_Math;src:url(/_astro/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2) format("woff2"),url(/_astro/KaTeX_Math-BoldItalic.iY-2wyZ7.woff) format("woff"),url(/_astro/KaTeX_Math-BoldItalic.B3XSjfu4.ttf) format("truetype");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:KaTeX_Math;src:url(/_astro/KaTeX_Math-Italic.t53AETM-.woff2) format("woff2"),url(/_astro/KaTeX_Math-Italic.DA0__PXp.woff) format("woff"),url(/_astro/KaTeX_Math-Italic.flOr_0UB.ttf) format("truetype");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:KaTeX_SansSerif;src:url(/_astro/KaTeX_SansSerif-Bold.D1sUS0GD.woff2) format("woff2"),url(/_astro/KaTeX_SansSerif-Bold.DbIhKOiC.woff) format("woff"),url(/_astro/KaTeX_SansSerif-Bold.CFMepnvq.ttf) format("truetype");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:KaTeX_SansSerif;src:url(/_astro/KaTeX_SansSerif-Italic.C3H0VqGB.woff2) format("woff2"),url(/_astro/KaTeX_SansSerif-Italic.DN2j7dab.woff) format("woff"),url(/_astro/KaTeX_SansSerif-Italic.YYjJ1zSn.ttf) format("truetype");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:KaTeX_SansSerif;src:url(/_astro/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2) format("woff2"),url(/_astro/KaTeX_SansSerif-Regular.CS6fqUqJ.woff) format("woff"),url(/_astro/KaTeX_SansSerif-Regular.BNo7hRIc.ttf) format("truetype");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:KaTeX_Script;src:url(/_astro/KaTeX_Script-Regular.D3wIWfF6.woff2) format("woff2"),url(/_astro/KaTeX_Script-Regular.D5yQViql.woff) format("woff"),url(/_astro/KaTeX_Script-Regular.C5JkGWo-.ttf) format("truetype");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:KaTeX_Size1;src:url(/_astro/KaTeX_Size1-Regular.mCD8mA8B.woff2) format("woff2"),url(/_astro/KaTeX_Size1-Regular.C195tn64.woff) format("woff"),url(/_astro/KaTeX_Size1-Regular.Dbsnue_I.ttf) format("truetype");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:KaTeX_Size2;src:url(/_astro/KaTeX_Size2-Regular.Dy4dx90m.woff2) format("woff2"),url(/_astro/KaTeX_Size2-Regular.oD1tc_U0.woff) format("woff"),url(/_astro/KaTeX_Size2-Regular.B7gKUWhC.ttf) format("truetype");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:KaTeX_Size3;src:url(data:font/woff2;base64,d09GMgABAAAAAA4oAA4AAAAAHbQAAA3TAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgRQIDgmcDBEICo1oijYBNgIkA14LMgAEIAWJAAeBHAyBHBvbGiMRdnO0IkRRkiYDgr9KsJ1NUAf2kILNxgUmgqIgq1P89vcbIcmsQbRps3vCcXdYOKSWEPEKgZgQkprQQsxIXUgq0DqpGKmIvrgkeVGtEQD9DzAO29fM9jYhxZEsL2FeURH2JN4MIcTdO049NCVdxQ/w9NrSYFEBKTDKpLKfNkCGDc1RwjZLQcm3vqJ2UW9Xfa3tgAHz6ivp6vgC2yD4/6352ndnN0X0TL7seypkjZlMsjmZnf0Mm5Q+JykRWQBKCVCVPbARPXWyQtb5VgLB6Biq7/Uixcj2WGqdI8tGSgkuRG+t910GKP2D7AQH0DB9FMDW/obJZ8giFI3Wg8Cvevz0M+5m0rTh7XDBlvo9Y4vm13EXmfttwI4mBo1EG15fxJhUiCLbiiyCf/ZA6MFAhg3pGIZGdGIVjtPn6UcMk9A/UUr9PhoNsCENw1APAq0gpH73e+M+0ueyHbabc3vkbcdtzcf/fiy+NxQEjf9ud/ELBHAXJ0nk4z+MXH2Ev/kWyV4k7SkvpPc9Qr38F6RPWnM9cN6DJ0AdD1BhtgABtmoRoFCvPsBAumNm6soZG2Gk5GyVTo2sJncSyp0jQTYoR6WDvTwaaEcHsxHfvuWhHA3a6bN7twRKtcGok6NsCi7jYRrM2jExsUFMxMQYuJbMhuWNOumEJy9hi29Dmg5zMp/A5+hhPG19j1vBrq8JTLr8ki5VLPmG/PynJHVul440bxg5xuymHUFPBshC+nA9I1FmwbRBTNHAcik3Oae0cxKoI3MOriM42UrPe51nsaGxJ+WfXubAsP84aabUlQSJ1IiE0iPETLUU4CATgfXSCSpuRFRmCGbO+wSpAnzaeaCYW1VNEysRtuXCEL1kUFUbbtMv3Tilt/1c11jt3Q5bbMa84cpWipp8Elw3MZhOHsOlwwVUQM3lAR35JiFQbaYCRnMF2lxAWoOg2gyoIV4PouX8HytNIfLhqpJtXB4vjiViUI8IJ7bkC4ikkQvKksnOTKICwnqWSZ9YS5f0WCxmpgjbIq7EJcM4aI2nmhLNY2JIUgOjXZFWBHb+x5oh6cwb0Tv1ackHdKi0I9OO2wE9aogIOn540CCCziyhN+IaejtgAONKznHlHyutPrHGwCx9S6B8kfS4Mfi4Eyv7OU730bT1SCBjt834cXsf43zVjPUqqJjgrjeGnBxSG4aYAKFuVbeCfkDIjAqMb6yLNIbCuvXhMH2/+k2vkNpkORhR59N1CkzoOENvneIosjYmuTxlhUzaGEJQ/iWqx4dmwpmKjrwTiTGTCVozNAYqk/zXOndWxuWSmJkQpJw3pK5KX6QrLt5LATMqpmPAQhkhK6PUjzHUn7E0gHE0kPE0iKkolgkUx9SZmVAdDgpffdyJKg3k7VmzYGCwVXGz/tXmkOIp+vcWs+EMuhhvN0h9uhfzWJziBQmCREGSIFmQIkgVpAnSBRmC//6hkLZwaVhwxlrJSOdqlFtOYxlau9F2QN5Y98xmIAsiM1HVp2VFX+DHHGg6Ecjh3vmqtidX3qHI2qycTk/iwxSt5UzTmEP92ZBnEWTk4Mx8Mpl78ZDokxg/KWb+Q0QkvdKVmq3TMW+RXEgrsziSAfNXFMhDc60N5N9jQzjfO0kBKpUZl0ZmwJ41j/B9Hz6wmRaJB84niNmQrzp9eSlQCDDzazGDdVi3P36VZQ+Jy4f9UBNp+3zTjqI4abaFAm+GShVaXlsGdF3FYzZcDI6cori4kMxUECl9IjJZpzkvitAoxKue+90pDMvcKRxLl53TmOKCmV/xRolNKSqqUxc6LStOETmFOiLZZptlZepcKiAzteG8PEdpnQpbOMNcMsR4RR2Bs0cKFEvSmIjAFcnarqwUL4lDhHmnVkwu1IwshbiCcgvOheZuYyOteufZZwlcTlLgnZ3o/WcYdzZHW/WGaqaVfmTZ1aWCceJjkbZqsfbkOtcFlUZM/jy+hXHDbaUobWqqXaeWobbLO99yG5N3U4wxco0rQGGcOLASFMXeJoham8M+/x6O2WywK2l4HGbq1CoUyC/IZikQhdq3SiuNrvAEj0AVu9x2x3lp/xWzahaxidezFVtdcb5uEnzyl0ZmYiuKI0exvCd4Xc9CV1KB0db00z92wDPde0kukbvZIWN6jUWFTmPIC/Y4UPCm8UfDTFZpZNon1qLFTkBhxzB+FjQRA2Q/YRJT8pQigslMaUpFyAG8TMlXigiqmAZX4xgijKjRlGpLE0GdplRfCaJo0JQaSxNBk6ZmMzcya0FmrcisDdn0Q3HI2sWSppYigmlM1XT/kLQZSNpMJG0WkjYbSZuDpM1F0uYhFc1HxU4m1QJjDK6iL0S5uSj5rgXc3RejEigtcRBtqYPQsiTskmO5vosV+q4VGIKbOkDg0jtRrq+Em1YloaTFar3EGr1EUC8R0kus1Uus00usL97ABr2BjXoDm/QGNhuWtMVBKOwg/i78lT7hBsAvDmwHc/ao3vmUbBmhjeYySZNWvGkfZAgISDSaDo1SVpzGDsAEkF8B+gEapViUoZgUWXcRIGFZNm6gWbAKk0bp0k1MHG9fLYtV4iS2SmLEQFARzRcnf9PUS0LVn05/J9MiRRBU3v2IrvW974v4N00L7ZMk0wXP1409CHo/an8zTRHD3eSJ6m8D4YMkZNl3M79sqeuAsr/m3f+8/yl7A50aiAEJgeBeMWzu7ui9UfUBCe2TIqZIoOd/3/udRBOQidQZUERzb2/VwZN1H/Sju82ew2H2Wfr6qvfVf3hqwDvAIpkQVFy4B9Pe9e4/XvPeceu7h3dvO56iJPf0+A6cqA2ip18ER+iFgggiuOkvj24bby0N9j2UHIkgqIt+sVgfodC4YghLSMjSZbH0VR/6dMDrYJeKHilKTemt6v6kvzvn3/RrdWtr0GoN/xL+Sex/cPYLUpepx9cz/D46UPU5KXgAQa+NDps1v6J3xP1i2HtaDB0M9aX2deA7SYff//+gUCovMmIK/qfsFcOk+4Y5ZN97XlG6zebqtMbKgeRFi51vnxTQYBUik2rS/Cn6PC8ADR8FGxsRPB82dzfND90gIcshOcYUkfjherBz53odpm6TP8txlwOZ71xmfHHOvq053qFF/MRlS3jP0ELudrf2OeN8DHvp6ZceLe8qKYvWz/7yp0u4dKPfli3CYq0O13Ih71mylJ80tOi10On8wi+F4+LWgDPeJ30msSQt9/vkmHq9/Lvo2b461mP801v3W4xTcs6CbvF9UDdrSt+A8OUbpSh55qAUFXWznBBfdeJ8a4d7ugT5tvxUza3h9m4H7ptTqiG4z0g5dc0X29OcGlhpGFMpQo9ytTS+NViZpNdvU4kWx+LKxNY10kQ1yqGXrhe4/1nvP7E+nd5A92TtaRplbHSqoIdOqtRWti+fkB5/n1+/VvCmz12pG1kpQWsfi1ftlBobm0bpngs16CHkbIwdLnParxtTV3QYRlfJ0KFskH7pdN/YDn+yRuSd7sNH3aO0DYPggk6uWuXrfOc+fa3VTxFVvKaNxHsiHmsXyCLIE5yuOeN3/Jdf8HBL/5M6shjyhxHx9BjB1O0+4NLOnjLLSxwO7ukN4jMbOIcD879KLSi6Pk61Oqm2377n8079PXEEQ7cy7OKEC9nbpet118fxweTafpt69x/Bt8UqGzNQt7aelpc44dn5cqhwf71+qKp/Zf/+a0zcizOUWpl/iBcSXip0pplkatCchoH5c5aUM8I7/dWxAej8WicPL1URFZ9BDJelUwEwTkGqUhgSlydVes95YdXvhh9Gfz/aeFWvgVb4tuLbcv4+wLdutVZv/cUonwBD/6eDlE0aSiKK/uoH3+J1wDE/jMVqY2ysGufN84oIXB0sPzy8ollX/LegY74DgJXJR57sn+VGza0x3DnuIgABFM15LmajjjsNlYj+JEZGbuRYcAMOWxFkPN2w6Wd46xo4gVWQR/X4lyI/R6K/YK0110GzudPRW7Y+UOBGTfNNzHeYT0fiH0taunBpq9HEW8OKSaBGj21L0MqenEmNRWBAWDWAk4CpNoEZJ2tTaPFgbQYj8HxtFilErs3BTRwT8uO1NXQaWfIotchmPkAF5mMBAliEmZiOGVgCG9LgRzpscMAOOwowlT3JhusdazXGSC/hxR3UlmWVwWHpOIKheqONvjyhSiTHIkVUco5bnji8m//zL7PKaT1Vl5I6UE609f+gkr6MZKVyKc7zJRmCahLsdlyA5fdQkRSan9LgnnLEyGSkaKJCJog0wAgvepWBt80+1yKln1bMVtCljfNWDueKLsWwaEbBSfSPTEmVRsUcYYMnEjcjeyCZzBXK9E9BYBXLKjOSpUDR+nEV3TFSUdQaz+ot98QxgXwx0GQ+EEUAKB2qZPkQQ0GqFD8UPFMqyaCHM24BZmSGic9EYMagKizOw9Hz50DMrDLrqqLkTAhplMictiCAx5S3BIUQdeJeLnBy2CNtMfz6cV4u8XKoFZQesbf9YZiIERiHjaNodDW6LgcirX/mPnJIkBGDUpTBhSa0EIr38D5hCIszhCM8URGBqImoWjpvpt1ebu/v3Gl3qJfMnNM+9V+kiRFyROTPHQWOcs1dNW94/ukKMPZBvDi55i5CttdeJz84DLngLqjcdwEZ87bFFR8CIG35OAkDVN6VRDZ7aq67NteYqZ2lpT8oYB2CytoBd6VuAx4WgiAsnuj3WohG+LugzXiQRDeM3XYXlULv4dp5VFYC) format("woff2"),url(/_astro/KaTeX_Size3-Regular.CTq5MqoE.woff) format("woff"),url(/_astro/KaTeX_Size3-Regular.DgpXs0kz.ttf) format("truetype");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:KaTeX_Size4;src:url(/_astro/KaTeX_Size4-Regular.Dl5lxZxV.woff2) format("woff2"),url(/_astro/KaTeX_Size4-Regular.BF-4gkZK.woff) format("woff"),url(/_astro/KaTeX_Size4-Regular.DWFBv043.ttf) format("truetype");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:KaTeX_Typewriter;src:url(/_astro/KaTeX_Typewriter-Regular.CO6r4hn1.woff2) format("woff2"),url(/_astro/KaTeX_Typewriter-Regular.C0xS9mPB.woff) format("woff"),url(/_astro/KaTeX_Typewriter-Regular.D3Ib7_Hf.ttf) format("truetype");font-weight:400;font-style:normal;font-display:block}.katex{font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.28"}.katex .katex-mathml{position:absolute;clip:rect(1px,1px,1px,1px);padding:0;border:0;height:1px;width:1px;overflow:hidden}.katex .katex-html>.newline{display:block}.katex .base{position:relative;display:inline-block;white-space:nowrap;width:-moz-min-content;width:min-content}.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-weight:700;font-style:italic}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathsfit,.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{display:inline-table;table-layout:fixed;border-collapse:collapse}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;vertical-align:bottom;position:relative}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;vertical-align:bottom;font-size:1px;width:2px;min-width:2px}.katex .vbox{display:inline-flex;flex-direction:column;align-items:baseline}.katex .hbox{display:inline-flex;flex-direction:row;width:100%}.katex .thinbox{display:inline-flex;flex-direction:row;width:0;max-width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{display:inline-block;width:100%;border-bottom-style:solid}.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .underline .underline-line,.katex .hline,.katex .hdashline,.katex .rule{min-height:1px}.katex .mspace{display:inline-block}.katex .llap,.katex .rlap,.katex .clap{width:0;position:relative}.katex .llap>.inner,.katex .rlap>.inner,.katex .clap>.inner{position:absolute}.katex .llap>.fix,.katex .rlap>.fix,.katex .clap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .rlap>.inner,.katex .clap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{display:inline-block;border:solid 0;position:relative}.katex .overline .overline-line,.katex .underline .underline-line,.katex .hline{display:inline-block;width:100%;border-bottom-style:solid}.katex .hdashline{display:inline-block;width:100%;border-bottom-style:dashed}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .sizing.reset-size1.size1,.katex .fontsize-ensurer.reset-size1.size1{font-size:1em}.katex .sizing.reset-size1.size2,.katex .fontsize-ensurer.reset-size1.size2{font-size:1.2em}.katex .sizing.reset-size1.size3,.katex .fontsize-ensurer.reset-size1.size3{font-size:1.4em}.katex .sizing.reset-size1.size4,.katex .fontsize-ensurer.reset-size1.size4{font-size:1.6em}.katex .sizing.reset-size1.size5,.katex .fontsize-ensurer.reset-size1.size5{font-size:1.8em}.katex .sizing.reset-size1.size6,.katex .fontsize-ensurer.reset-size1.size6{font-size:2em}.katex .sizing.reset-size1.size7,.katex .fontsize-ensurer.reset-size1.size7{font-size:2.4em}.katex .sizing.reset-size1.size8,.katex .fontsize-ensurer.reset-size1.size8{font-size:2.88em}.katex .sizing.reset-size1.size9,.katex .fontsize-ensurer.reset-size1.size9{font-size:3.456em}.katex .sizing.reset-size1.size10,.katex .fontsize-ensurer.reset-size1.size10{font-size:4.148em}.katex .sizing.reset-size1.size11,.katex .fontsize-ensurer.reset-size1.size11{font-size:4.976em}.katex .sizing.reset-size2.size1,.katex .fontsize-ensurer.reset-size2.size1{font-size:.8333333333em}.katex .sizing.reset-size2.size2,.katex .fontsize-ensurer.reset-size2.size2{font-size:1em}.katex .sizing.reset-size2.size3,.katex .fontsize-ensurer.reset-size2.size3{font-size:1.1666666667em}.katex .sizing.reset-size2.size4,.katex .fontsize-ensurer.reset-size2.size4{font-size:1.3333333333em}.katex .sizing.reset-size2.size5,.katex .fontsize-ensurer.reset-size2.size5{font-size:1.5em}.katex .sizing.reset-size2.size6,.katex .fontsize-ensurer.reset-size2.size6{font-size:1.6666666667em}.katex .sizing.reset-size2.size7,.katex .fontsize-ensurer.reset-size2.size7{font-size:2em}.katex .sizing.reset-size2.size8,.katex .fontsize-ensurer.reset-size2.size8{font-size:2.4em}.katex .sizing.reset-size2.size9,.katex .fontsize-ensurer.reset-size2.size9{font-size:2.88em}.katex .sizing.reset-size2.size10,.katex .fontsize-ensurer.reset-size2.size10{font-size:3.4566666667em}.katex .sizing.reset-size2.size11,.katex .fontsize-ensurer.reset-size2.size11{font-size:4.1466666667em}.katex .sizing.reset-size3.size1,.katex .fontsize-ensurer.reset-size3.size1{font-size:.7142857143em}.katex .sizing.reset-size3.size2,.katex .fontsize-ensurer.reset-size3.size2{font-size:.8571428571em}.katex .sizing.reset-size3.size3,.katex .fontsize-ensurer.reset-size3.size3{font-size:1em}.katex .sizing.reset-size3.size4,.katex .fontsize-ensurer.reset-size3.size4{font-size:1.1428571429em}.katex .sizing.reset-size3.size5,.katex .fontsize-ensurer.reset-size3.size5{font-size:1.2857142857em}.katex .sizing.reset-size3.size6,.katex .fontsize-ensurer.reset-size3.size6{font-size:1.4285714286em}.katex .sizing.reset-size3.size7,.katex .fontsize-ensurer.reset-size3.size7{font-size:1.7142857143em}.katex .sizing.reset-size3.size8,.katex .fontsize-ensurer.reset-size3.size8{font-size:2.0571428571em}.katex .sizing.reset-size3.size9,.katex .fontsize-ensurer.reset-size3.size9{font-size:2.4685714286em}.katex .sizing.reset-size3.size10,.katex .fontsize-ensurer.reset-size3.size10{font-size:2.9628571429em}.katex .sizing.reset-size3.size11,.katex .fontsize-ensurer.reset-size3.size11{font-size:3.5542857143em}.katex .sizing.reset-size4.size1,.katex .fontsize-ensurer.reset-size4.size1{font-size:.625em}.katex .sizing.reset-size4.size2,.katex .fontsize-ensurer.reset-size4.size2{font-size:.75em}.katex .sizing.reset-size4.size3,.katex .fontsize-ensurer.reset-size4.size3{font-size:.875em}.katex .sizing.reset-size4.size4,.katex .fontsize-ensurer.reset-size4.size4{font-size:1em}.katex .sizing.reset-size4.size5,.katex .fontsize-ensurer.reset-size4.size5{font-size:1.125em}.katex .sizing.reset-size4.size6,.katex .fontsize-ensurer.reset-size4.size6{font-size:1.25em}.katex .sizing.reset-size4.size7,.katex .fontsize-ensurer.reset-size4.size7{font-size:1.5em}.katex .sizing.reset-size4.size8,.katex .fontsize-ensurer.reset-size4.size8{font-size:1.8em}.katex .sizing.reset-size4.size9,.katex .fontsize-ensurer.reset-size4.size9{font-size:2.16em}.katex .sizing.reset-size4.size10,.katex .fontsize-ensurer.reset-size4.size10{font-size:2.5925em}.katex .sizing.reset-size4.size11,.katex .fontsize-ensurer.reset-size4.size11{font-size:3.11em}.katex .sizing.reset-size5.size1,.katex .fontsize-ensurer.reset-size5.size1{font-size:.5555555556em}.katex .sizing.reset-size5.size2,.katex .fontsize-ensurer.reset-size5.size2{font-size:.6666666667em}.katex .sizing.reset-size5.size3,.katex .fontsize-ensurer.reset-size5.size3{font-size:.7777777778em}.katex .sizing.reset-size5.size4,.katex .fontsize-ensurer.reset-size5.size4{font-size:.8888888889em}.katex .sizing.reset-size5.size5,.katex .fontsize-ensurer.reset-size5.size5{font-size:1em}.katex .sizing.reset-size5.size6,.katex .fontsize-ensurer.reset-size5.size6{font-size:1.1111111111em}.katex .sizing.reset-size5.size7,.katex .fontsize-ensurer.reset-size5.size7{font-size:1.3333333333em}.katex .sizing.reset-size5.size8,.katex .fontsize-ensurer.reset-size5.size8{font-size:1.6em}.katex .sizing.reset-size5.size9,.katex .fontsize-ensurer.reset-size5.size9{font-size:1.92em}.katex .sizing.reset-size5.size10,.katex .fontsize-ensurer.reset-size5.size10{font-size:2.3044444444em}.katex .sizing.reset-size5.size11,.katex .fontsize-ensurer.reset-size5.size11{font-size:2.7644444444em}.katex .sizing.reset-size6.size1,.katex .fontsize-ensurer.reset-size6.size1{font-size:.5em}.katex .sizing.reset-size6.size2,.katex .fontsize-ensurer.reset-size6.size2{font-size:.6em}.katex .sizing.reset-size6.size3,.katex .fontsize-ensurer.reset-size6.size3{font-size:.7em}.katex .sizing.reset-size6.size4,.katex .fontsize-ensurer.reset-size6.size4{font-size:.8em}.katex .sizing.reset-size6.size5,.katex .fontsize-ensurer.reset-size6.size5{font-size:.9em}.katex .sizing.reset-size6.size6,.katex .fontsize-ensurer.reset-size6.size6{font-size:1em}.katex .sizing.reset-size6.size7,.katex .fontsize-ensurer.reset-size6.size7{font-size:1.2em}.katex .sizing.reset-size6.size8,.katex .fontsize-ensurer.reset-size6.size8{font-size:1.44em}.katex .sizing.reset-size6.size9,.katex .fontsize-ensurer.reset-size6.size9{font-size:1.728em}.katex .sizing.reset-size6.size10,.katex .fontsize-ensurer.reset-size6.size10{font-size:2.074em}.katex .sizing.reset-size6.size11,.katex .fontsize-ensurer.reset-size6.size11{font-size:2.488em}.katex .sizing.reset-size7.size1,.katex .fontsize-ensurer.reset-size7.size1{font-size:.4166666667em}.katex .sizing.reset-size7.size2,.katex .fontsize-ensurer.reset-size7.size2{font-size:.5em}.katex .sizing.reset-size7.size3,.katex .fontsize-ensurer.reset-size7.size3{font-size:.5833333333em}.katex .sizing.reset-size7.size4,.katex .fontsize-ensurer.reset-size7.size4{font-size:.6666666667em}.katex .sizing.reset-size7.size5,.katex .fontsize-ensurer.reset-size7.size5{font-size:.75em}.katex .sizing.reset-size7.size6,.katex .fontsize-ensurer.reset-size7.size6{font-size:.8333333333em}.katex .sizing.reset-size7.size7,.katex .fontsize-ensurer.reset-size7.size7{font-size:1em}.katex .sizing.reset-size7.size8,.katex .fontsize-ensurer.reset-size7.size8{font-size:1.2em}.katex .sizing.reset-size7.size9,.katex .fontsize-ensurer.reset-size7.size9{font-size:1.44em}.katex .sizing.reset-size7.size10,.katex .fontsize-ensurer.reset-size7.size10{font-size:1.7283333333em}.katex .sizing.reset-size7.size11,.katex .fontsize-ensurer.reset-size7.size11{font-size:2.0733333333em}.katex .sizing.reset-size8.size1,.katex .fontsize-ensurer.reset-size8.size1{font-size:.3472222222em}.katex .sizing.reset-size8.size2,.katex .fontsize-ensurer.reset-size8.size2{font-size:.4166666667em}.katex .sizing.reset-size8.size3,.katex .fontsize-ensurer.reset-size8.size3{font-size:.4861111111em}.katex .sizing.reset-size8.size4,.katex .fontsize-ensurer.reset-size8.size4{font-size:.5555555556em}.katex .sizing.reset-size8.size5,.katex .fontsize-ensurer.reset-size8.size5{font-size:.625em}.katex .sizing.reset-size8.size6,.katex .fontsize-ensurer.reset-size8.size6{font-size:.6944444444em}.katex .sizing.reset-size8.size7,.katex .fontsize-ensurer.reset-size8.size7{font-size:.8333333333em}.katex .sizing.reset-size8.size8,.katex .fontsize-ensurer.reset-size8.size8{font-size:1em}.katex .sizing.reset-size8.size9,.katex .fontsize-ensurer.reset-size8.size9{font-size:1.2em}.katex .sizing.reset-size8.size10,.katex .fontsize-ensurer.reset-size8.size10{font-size:1.4402777778em}.katex .sizing.reset-size8.size11,.katex .fontsize-ensurer.reset-size8.size11{font-size:1.7277777778em}.katex .sizing.reset-size9.size1,.katex .fontsize-ensurer.reset-size9.size1{font-size:.2893518519em}.katex .sizing.reset-size9.size2,.katex .fontsize-ensurer.reset-size9.size2{font-size:.3472222222em}.katex .sizing.reset-size9.size3,.katex .fontsize-ensurer.reset-size9.size3{font-size:.4050925926em}.katex .sizing.reset-size9.size4,.katex .fontsize-ensurer.reset-size9.size4{font-size:.462962963em}.katex .sizing.reset-size9.size5,.katex .fontsize-ensurer.reset-size9.size5{font-size:.5208333333em}.katex .sizing.reset-size9.size6,.katex .fontsize-ensurer.reset-size9.size6{font-size:.5787037037em}.katex .sizing.reset-size9.size7,.katex .fontsize-ensurer.reset-size9.size7{font-size:.6944444444em}.katex .sizing.reset-size9.size8,.katex .fontsize-ensurer.reset-size9.size8{font-size:.8333333333em}.katex .sizing.reset-size9.size9,.katex .fontsize-ensurer.reset-size9.size9{font-size:1em}.katex .sizing.reset-size9.size10,.katex .fontsize-ensurer.reset-size9.size10{font-size:1.2002314815em}.katex .sizing.reset-size9.size11,.katex .fontsize-ensurer.reset-size9.size11{font-size:1.4398148148em}.katex .sizing.reset-size10.size1,.katex .fontsize-ensurer.reset-size10.size1{font-size:.2410800386em}.katex .sizing.reset-size10.size2,.katex .fontsize-ensurer.reset-size10.size2{font-size:.2892960463em}.katex .sizing.reset-size10.size3,.katex .fontsize-ensurer.reset-size10.size3{font-size:.337512054em}.katex .sizing.reset-size10.size4,.katex .fontsize-ensurer.reset-size10.size4{font-size:.3857280617em}.katex .sizing.reset-size10.size5,.katex .fontsize-ensurer.reset-size10.size5{font-size:.4339440694em}.katex .sizing.reset-size10.size6,.katex .fontsize-ensurer.reset-size10.size6{font-size:.4821600771em}.katex .sizing.reset-size10.size7,.katex .fontsize-ensurer.reset-size10.size7{font-size:.5785920926em}.katex .sizing.reset-size10.size8,.katex .fontsize-ensurer.reset-size10.size8{font-size:.6943105111em}.katex .sizing.reset-size10.size9,.katex .fontsize-ensurer.reset-size10.size9{font-size:.8331726133em}.katex .sizing.reset-size10.size10,.katex .fontsize-ensurer.reset-size10.size10{font-size:1em}.katex .sizing.reset-size10.size11,.katex .fontsize-ensurer.reset-size10.size11{font-size:1.1996142719em}.katex .sizing.reset-size11.size1,.katex .fontsize-ensurer.reset-size11.size1{font-size:.2009646302em}.katex .sizing.reset-size11.size2,.katex .fontsize-ensurer.reset-size11.size2{font-size:.2411575563em}.katex .sizing.reset-size11.size3,.katex .fontsize-ensurer.reset-size11.size3{font-size:.2813504823em}.katex .sizing.reset-size11.size4,.katex .fontsize-ensurer.reset-size11.size4{font-size:.3215434084em}.katex .sizing.reset-size11.size5,.katex .fontsize-ensurer.reset-size11.size5{font-size:.3617363344em}.katex .sizing.reset-size11.size6,.katex .fontsize-ensurer.reset-size11.size6{font-size:.4019292605em}.katex .sizing.reset-size11.size7,.katex .fontsize-ensurer.reset-size11.size7{font-size:.4823151125em}.katex .sizing.reset-size11.size8,.katex .fontsize-ensurer.reset-size11.size8{font-size:.578778135em}.katex .sizing.reset-size11.size9,.katex .fontsize-ensurer.reset-size11.size9{font-size:.6945337621em}.katex .sizing.reset-size11.size10,.katex .fontsize-ensurer.reset-size11.size10{font-size:.8336012862em}.katex .sizing.reset-size11.size11,.katex .fontsize-ensurer.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .op-limits>.vlist-t{text-align:center}.katex .accent>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{display:block;position:absolute;width:100%;height:inherit;fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex svg path{stroke:none}.katex img{border-style:none;min-width:0;min-height:0;max-width:none;max-height:none}.katex .stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .stretchy:before,.katex .stretchy:after{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{position:absolute;left:0;width:50.2%;overflow:hidden}.katex .halfarrow-right{position:absolute;right:0;width:50.2%;overflow:hidden}.katex .brace-left{position:absolute;left:0;width:25.1%;overflow:hidden}.katex .brace-center{position:absolute;left:25%;width:50%;overflow:hidden}.katex .brace-right{position:absolute;right:0;width:25.1%;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .x-arrow,.katex .mover,.katex .munder{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{box-sizing:border-box;border-top:.049em solid;border-right:.049em solid;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{counter-increment:katexEqnNo;content:"(" counter(katexEqnNo) ")"}.katex .mml-eqn-num:before{counter-increment:mmlEqnNo;content:"(" counter(mmlEqnNo) ")"}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;position:absolute;left:calc(50% + .3em);text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em}body{counter-reset:katexEqnNo mmlEqnNo}.\!container{width:100%!important}.container{width:100%}@media(min-width:568px){.\!container{max-width:568px!important}.container{max-width:568px}}@media(min-width:726px){.\!container{max-width:726px!important}.container{max-width:726px}}@media(min-width:924px){.\!container{max-width:924px!important}.container{max-width:924px}}@media(min-width:1400px){.\!container{max-width:1400px!important}.container{max-width:1400px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: rgb(17 24 39 / 10%);--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: rgb(255 255 255 / 10%);--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-base{font-size:1rem;line-height:1.75}.prose-base :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose-base :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose-base :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose-base :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose-base :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose-base :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose-base :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose-base :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose-base :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose-base :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-base :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose-base :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose-base :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-base :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-base :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.prose-base :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose-base :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose-base :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose-base :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose-base :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose-base :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose-base :where(.prose-base>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose-base :where(.prose-base>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose-base :where(.prose-base>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose-base :where(.prose-base>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose-base :where(.prose-base>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose-base :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose-base :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose-base :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose-base :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose-base :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:3em;margin-bottom:3em}.prose-base :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em;line-height:1.7142857}.prose-base :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose-base :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-base :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-base :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose-base :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-base :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-base :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose-base :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-base :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose-base :where(.prose-base>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(.prose-base>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.enable-banner.is-home #banner-wrapper{height:var(--banner-height-home);--tw-translate-y: var(--banner-height-extend);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.enable-banner #banner-wrapper{height:var(--banner-height-home)}.enable-banner.is-home #banner{height:var(--banner-height-home);--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.enable-banner #banner{height:var(--banner-height-home);--tw-translate-y: var(--bannerOffset);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.enable-banner.is-home #main-grid{--tw-translate-y: var(--banner-height-extend);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.enable-banner #top-row{height:calc(var(--banner-height-home) - 4.5rem);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.enable-banner.is-home #sidebar-sticky{top:calc(1rem - var(--banner-height-extend))}.navbar-hidden{--tw-translate-y: -4rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));opacity:0}.dark\:prose-invert:is(.dark *){--tw-prose-body: var(--tw-prose-invert-body);--tw-prose-headings: var(--tw-prose-invert-headings);--tw-prose-lead: var(--tw-prose-invert-lead);--tw-prose-links: var(--tw-prose-invert-links);--tw-prose-bold: var(--tw-prose-invert-bold);--tw-prose-counters: var(--tw-prose-invert-counters);--tw-prose-bullets: var(--tw-prose-invert-bullets);--tw-prose-hr: var(--tw-prose-invert-hr);--tw-prose-quotes: var(--tw-prose-invert-quotes);--tw-prose-quote-borders: var(--tw-prose-invert-quote-borders);--tw-prose-captions: var(--tw-prose-invert-captions);--tw-prose-kbd: var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows: var(--tw-prose-invert-kbd-shadows);--tw-prose-code: var(--tw-prose-invert-code);--tw-prose-pre-code: var(--tw-prose-invert-pre-code);--tw-prose-pre-bg: var(--tw-prose-invert-pre-bg);--tw-prose-th-borders: var(--tw-prose-invert-th-borders);--tw-prose-td-borders: var(--tw-prose-invert-td-borders)}@media(min-width:1400px){.lg\:is-home.enable-banner #banner-wrapper{height:var(--banner-height-home);--tw-translate-y: var(--banner-height-extend);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:is-home.enable-banner #banner{height:var(--banner-height-home);--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:is-home.enable-banner #main-grid{--tw-translate-y: var(--banner-height-extend);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:is-home.enable-banner #sidebar-sticky{top:calc(1rem - var(--banner-height-extend))}} diff --git a/_astro/about.F-s6qxEc.css b/_astro/about.F-s6qxEc.css new file mode 100644 index 0000000..3b469b1 --- /dev/null +++ b/_astro/about.F-s6qxEc.css @@ -0,0 +1 @@ +@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAfsABQAAAAAEAwAAAeCAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoP0hWQVJbBmA/U1RBVIFiJyYAdC9qEQgKhGSEAAsgADCGCAE2AiQDOgQgBYlMB4EUDAcbLQ4onoexrSC/2ZyLAa8p8VHB8/x3Vue+V0hVJalMJg2nx/TCrQXxBeqLjQG7FyM1WEa/X1tEXN7cFz9EJEMmMUz3RihWSSKeQCbcIou0izz/C8v+fq3VfajEa9gDD11CImXS7qL/RJFVzC1qiB6KmKeD6TZdQ6IRGv78dL6uSVVCfgni5mzu7kcgQBgAEAQTQRCoL++STTYybkJxNfQxAAIAGu8OdEB9teW2jh4BpgDqFjAeSEByW3zFP0CBBgNMsMCGEDjgggdhiEAUAeIIED7ABTDUEnkIE9Q9ahFgKttcVhApo4ACB4qobHaccgDfEjFO6aaWUhjMLt2SyIvHKoDqoA4CSUwEIYQCEjhAO9R1G6keDeDZGjNo+AhxOjCEGTr1WeIF3kYBiLAOKvkJSMiKX0VdAyQt3SDJClCkxJCHkCzfqyVTriJZLcolS32JZHUekq2TYNkYtCtjYHMQXSxGjXDz2t/yLWXzDzxz+o3zFwDEaN23F+13pyMdQAEaSKAR9vcGq4A4MTSKCElGW+M7UcY7xqkggITb28ZJhlqc9q2twYKTt0NjixBgYvO9BIihEBLYuOFXQzfIQ7dXGUEEEgFDooBfAzqiQbpJrhiWSuKJCRFKYbHCyJKI2G5GiZbNAvgAu5pc3vwx4G+g3aDkhklABiSz0BICXrYghtYhx/cdJ+44rY2oZ0aMNRFz3VZjb6W33F3gzltqtOCV8tTHSpOeXuItfvr5lCdfzFpqtEitvqdcdGGFd28ZqqC0tPbeChGXgrIlnhSWu/eUso4uKWFLugyDzQJhflY4659+WjQ++6x72WUMv9G8mw6QJl7BVxX5fe/kpUsOvnZwee9uQ0cGXYd0o89XB2748sDSnt8d2VphdOTTgceDVvOds0v9P/s7HPq15aGun/6Vllb56f1dl0t1LejqrNkpdRZsG8TOnM5vkBG5oiVyVGnS8LHps5cfNWJs6qKPfaNSxiQNBUm3cKNWROr0GSur7Za31k1vieq7LH11VF+jXdRIasRKflc7jkobm1Z9te1IyZA0pDkhLR98+H37Zf1c/8at+dB7x+7GfVyTfJMPiYztsnl59Y5l4j+0n1RXlpHnF3Tq7HecmNF/CJodEMAikruxiyJaGLvHOdAfoA+oDvpjBm2b91cHGRZMU9n25xEU0A8fgEEAdKI3Q1iDtc034sug5YVMkE2jsE+BIkwSoQ3gxXMqz9tELp48bd0cFKOKS7xYjEuXBnZP5ia7DyiO/X/YI+PQSbt2uSdqAkWL9nQbV1XB94/+uPfdZz8dnXYFBYrcTl2SIR/ybxJNJPz/Gupb0JaZeens2ekC7EKr8t+Ls/P5VJPYJdHKyqfg2nqU6bhlidzcddQV/7MmecTzJ5VPcKXkNKSEogHjYFx6QZ7rQ+FSe8njaiNuOnXS8H2ScQ619c2mC3VTtauL0rRbXd/CkSOP37FY9Zkjz8+GibYUMOEWF+RdrFS8Ecv1SHOpPUPZGEIpjPvFyU5cXKjd6OXqorTqy9GwRd++HVufPGnVsW+aO3vggKZ18jR9sXaTC1PWTEsVUaK0FkNySbTQDqlm2PfDjZcu4aalnSLKjnOoYQ0nUlqqXcGpPu/4VgV/xU2pAqW4BW3qzhQ8/hFKhV2qE3+BKAtDqBXjfgnVdH4y0wg5tbVNRenNdTWOrenWLcupQdmsbq5b+18piTe/xRdp1xbILxNPJGInm2z6hoB21Lal0i+ePTtd7B45+3XhFJ329evskXm7qurUVREotqSluSo/L29d3qDhI4YOQqWhI4YNvBNfsMHeXKemXrxQfKeuPOGRVayA3JtkJKEgbPp+dXUDluddutRYLFoXGXWX6N3WFaGLbQtRSitVYNacTNSdy7AaG/HSaUEANcBoGXNdcZvZsOqQ1icBDv21/gzAoYPHH/WDW0qNR3QTYKEAEHig6o13NXbND06CQPlRtYjGNnSktRc09k1mAMDvAlDKfQjgy6fssInlfzmNAjKkDxoxHOBLdVRAIVt9j4qo+hA1w9T1aNBNTUOTTNUHLbqokE+UAfJXCIGw/IxCSL5GRUJeR40rL/UxTm4Q08H6MbCs70ObuNyIIXrINHQYInF06UUlevTjbQzTh5upiDMzMMogUtEnjPs/Y7jAHCJeB0GBHh04tC6FiB6ZFB1oArUSIoFoqhzCeAN6lHwm0T4C3VVPWvjpSMXReuWesMEcoqrmgtNBGd2noWeV0hNAz9rFeShNJxHGsPa3HXeKTk8b55hahySYHaYKKFFLpCfN8rsoaJn01CR04Gkc+5k7KVTCmClX8Q10HCrUEkVlSX+XO33oQR9609tJ516H497WSobWs5Up6TLaS10/dessIskgJSLiDlWvHVUywpkQ7hdPZqGyiEF0uVQerVcPamT1A3eKXdyI1vG9OoflrSXihZ1qqGE3nhmAgiIbRCQgPLEPtOM3UQwTLYaYYomNlpA44opnjV6jkD6id80OOrzf6BzmMD6eEa1zKyeYG1fzfEf16V6jw9XYOaar1/b2kP/IYX8oR2mcFvv2GtBV3JXgd437AQAA) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:italic;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAiEABQAAAAAERQAAAgbAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoP0hWQVJbBmA/U1RBVIFeJyYAdC9qEQgKhQiEFgsgADCGFAE2AiQDOgQgBYsmB4EUDAcbJQ8jEbaKchqA4p8JNp36BR2hDG2Mg1DShoYhcsD4FuHOgqZ/jCHwh9v8SLllBs//f3P+PncmJg0BX3RQC1Q8oeqBmgTxmil9ZrTPVL+q8pyjzTF3MjUtkWgLJrBam6Wyp94zFlFjsdm7b0+3voZqFsQg3dDUYBHBEKMlmO/gmq9V9+umAp7qGnkCo89a1/+/n6u7iCXxDBfxEFlotLi9qaMfk4/7xBqHipdGFLHfMQ9RrNI4XUPlWbpy1U1dSAhyo5v4NH/3nhHACQAIgglBkCMNdpJwL9LvOmwcVnSA9nYAS3imTOqxfe8Z85twA5h7QH/gd8pJ4zH8ARRooIMJzGABK9jADg5wggvcCOAjgDPDNtDVxOzGBGqres5NQ9laumSqQIJQYKNOrSwsOuQCrOHSz/W//38FeOiSvyGtv34LKrN+AAYTgmBFAX42IJ1a9KqZL8CzNYcgOoJPpu5GmGmhrU5qowDEw2wQOMhXcrzeE1V/A9Uh+UDJVFClxJfdkC5vmKmo3IR0VVlT/noJ0tVloKLbAML6oRUlCf8mgoDoCCAACJbXvMbX478/ev6Ry1cAvKKOxWR8gwQBCtAAPw0B/HSmAx8vDYULQ8gpr4vST+vFtIPi26bn3FOP8/Pa1E9oOjeCzmasgAkLX04AL4XgZ8HuPPGTTIXSDMtsASWmVRTwnq9NNG/Jp+yipzQSh5jAP8opZieKxSWWYlpxL7u1t+MBoIpkTh8AZ4l7ej3QUO0nkqZFC6KJnJkguqZZE7F5vDabz2aL0t0Ok0uf6TLNrnc66h1T7GH7uEmO8N3fyP6vih2TJjomHDkRfeh0otJmduX4rd9UTPr2FM2x7etxlV+1DW/7Nq3CPu7U19b6Ffd8Y9/6lWHjLN0q1F8bOn/v29GeFBR2dNRWTM3d4MgRWXPsWP7ymnHLKhyEk4HTqI+/jBmfdnSsznLiD/f+MKUkv0ef9rzu+TAl3y8Z9H2l9/WfR7ze4HrO/9tIfbyrZ/L4k3yZ69373qTpeYvXWrqk/vly3rT09+RtcfAzp7R4ZpQOsoeCUyIloZlTmyVmtmD51EigdESPQX1b/euv+9e3lva1VF7vMK81UN7jmFHeSvzmg+FA6lRbMGa/PRiaUhUIBseXpk9ujT3QuvatKg2wBk8WvhluLesbd+tmeduVukd3mUEbTz+Z9GR9xsReDV0qCwWjX7E+0NYwJT5DY4BvbO6qbVXrtxF7I2PQkJG24IDwruycVeFB/B2zR8JRmQQw40pee7nJNqPTSht0UleicvoZBp2hvvuK+kH1DKuB6ccjKKCMB4CuAHIE9DBLg+e8Lr70PN+bIWk68xqrC3OSSkgFJ/P6MuFVcA/ZljFRNEUxvL3eoTHIMNwL8tl8ZzDxZnYh3l7zGYX1EyEYV8Y2exQhqsf9Ll9//u1fJmVBgZJsOFkkQwqkMHH7gU4B5nXHroShOU9Ww64xh0noB6R8BLvezac+NxVBkqwBkpCUvY31i24O2huFoTnA792NZP2JD9AfBpz5akNQZZ0hGezO8Ovu/22l/GLyuF3fNpCQoui9Ok7WaDsIJjuWFGA5Mcc5fTTvp3IuF8xfgjshYPZqo4/Xvr/7YFpSOp9PYNw1tDs2LsXEr/vN7Y97jMkaXVDG/2rFwqg4Gay0tMbv93xWF+BsrKqhGOfJcGGIy5CCVFpSlvUJGvsHxnHJ2heNguR5t7ntID5JM3t9qjJM57KcwYxbcQTDw3ysvfUOYa+fEA3AIHWuoigIjn+Mi86kczkRZc9f39A+uGhzb0/3BXdpDUMTxfHTvFtxx4x4C4nl56dQhPjENiZMqYyG7e++QhqkTeLzC8z+BzBvsChG68ftan2erLM79bs7VFu/vWtn4YvXfsbOO9JisVqtNpvF9MfBMG4sf5x69+gKVT169+yyqTBYwDK3Fru7emXdJjL8pSatM0Ayk6QNXGL2eG7f+vN/3eG8du3fdUJqa/X5WrjkP9eirbOyokQ0EWW5fTYq+u/LF+P5Z40uxq38DwKozsvqVWMLp3l6/q2adhbw4xcPDmS7/+Gz60vB+ZW+V9tRmFEACDxu1foZi/eRMi53Uk27VaWJJKXZvR56Q7WiHwOADwMkw0UE8MhzNHmKGSHsTUMByWmiIboNeKlfAgpJPR0VTm0canTvBNTJratoIqG+QTPZ1RbhpnMtTiDgVA0oxFQYFalVhhpxleSgdy6VThQqoJmYXEQLRj5CK8U5jjZ6ZjraCaQQHXT2Jzop8xa6KLYf3XQ3ET1YGYNefr2xAztl6OMmE6M4SUA/K76DRvOB/habb64ZyjVrMJtlDhdZfU6tBRqNEVFtgQYzzDVMrWo15pfoq0jGhZlqNRkiYr5yCxHpeYZrZnSzweYrkob1ILMUDMMm6TZNMpqWbRKNp2+bRuSJjb2wcQGR72b8dDbs5jVjb4z1vsMxxj6dWWQTDcuEllchkkTI13e+FvN0V6TIPLPMVavFfPMUmqdWg0LN5qpWZKQBhvniXLCuDIuYW4hYnsoQUCigRAmqjMBm9E2kexiinNpiCEaC5Z1O3FezFkvM9TI7oJjIDBxOhDHs5KPM1axOhFckO2SBx8Q9Yh8wm9/Z1WptmQvMRHqWZo2a6a7Moqjz+jkUtN8hMSMCQNgBzxGme18UPaOJLiYxiwVNrGITuzjMocfcyMKIZcGntrgs1J/59O/KFd0HNO5mqr43Ns5YPbg4VKz63twzngvmR/6fh/xIj9SpZ5cWd941fE6uDWeoDwA=) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:italic;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-wght-italic.CfQkWpeR.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:italic;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-greek-wght-italic.Dmq-fBVQ.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:italic;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-vietnamese-wght-italic.Dcombn6O.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:italic;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-ext-wght-italic.BrDczivE.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:italic;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-wght-italic.B2M6KQje.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.countdown-container[data-astro-cid-isofn7pi]{margin:2rem 0;padding:1.5rem;border-radius:12px;background:var(--card-bg);border:1px solid var(--line-divider);box-shadow:0 1px 3px #0000001a;text-align:center;transition:all .3s}.countdown-title[data-astro-cid-isofn7pi]{margin-top:0;margin-bottom:.5rem;font-size:1.5rem;color:var(--primary);font-weight:500;text-align:center}.countdown-dates[data-astro-cid-isofn7pi]{margin-bottom:.5rem;font-size:1rem;color:var(--btn-content);font-weight:300;text-align:center;margin-top:.5rem;font-style:italic}.progress-container[data-astro-cid-isofn7pi]{margin:.8rem 0;position:relative;height:20px;background:var(--btn-regular-bg);border-radius:10px;overflow:hidden;border:1px solid var(--line-divider)}.progress-bar[data-astro-cid-isofn7pi]{height:100%;background:var(--primary);border-radius:10px;width:0%;transition:width .5s ease;box-shadow:0 0 8px #0000001a}.progress-text[data-astro-cid-isofn7pi]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--btn-content);font-weight:700;font-size:.8rem;text-shadow:0 0 3px rgba(0,0,0,.5)}.countdown[data-astro-cid-isofn7pi]{display:flex;justify-content:center;flex-wrap:wrap;gap:1rem;margin-top:.8rem}.countdown-item[data-astro-cid-isofn7pi]{display:flex;flex-direction:column;align-items:center;min-width:60px}.countdown-value[data-astro-cid-isofn7pi]{font-size:1.8rem;font-weight:700;color:var(--primary);transition:all .3s}.countdown-item[data-astro-cid-isofn7pi]:hover .countdown-value[data-astro-cid-isofn7pi]{transform:scale(1.05);filter:brightness(1.1)}.countdown-label[data-astro-cid-isofn7pi]{font-size:.9rem;color:var(--btn-content);margin-top:.25rem;font-weight:300}@media(max-width:768px){.countdown[data-astro-cid-isofn7pi]{gap:.5rem}.countdown-item[data-astro-cid-isofn7pi]{min-width:50px}.countdown-value[data-astro-cid-isofn7pi]{font-size:1.5rem}.countdown-label[data-astro-cid-isofn7pi]{font-size:.8rem}} diff --git a/_astro/client.svelte.3LpAN2uU.js b/_astro/client.svelte.3LpAN2uU.js new file mode 100644 index 0000000..cf7720f --- /dev/null +++ b/_astro/client.svelte.3LpAN2uU.js @@ -0,0 +1 @@ +import{a7 as u,a8 as v,a9 as y,q as _,B as m,x as $,w as h,a2 as b,aa as g,ab as x,ac as k}from"./render.nCRzbnaE.js";function f(e){return(n,...l)=>{var a=e(...l),t;if(_)t=m,$();else{var i=a.render().trim(),o=u(i);t=h(o),n.before(t)}const s=a.setup?.(t);v(t,t),typeof s=="function"&&y(s)}}const p=new WeakMap;var A=e=>async(n,l,a,{client:t})=>{if(!e.hasAttribute("ssr"))return;let i,o,s={};for(const[r,c]of Object.entries(a))o??={},r==="default"?(o.default=!0,i=f(()=>({render:()=>`${c}`}))):o[r]=f(()=>({render:()=>`${c}`})),r==="default"?s.children=f(()=>({render:()=>`${c}`})):s[r]=f(()=>({render:()=>`${c}`}));const d={...l,children:i,$$slots:o,...s};if(p.has(e))p.get(e).setProps(d);else{const r=w(n,e,d,t!=="only");p.set(e,r),e.addEventListener("astro:unmount",()=>r.destroy(),{once:!0})}};function w(e,n,l,a){let t=b(l);const i=a?x:k;a||(n.innerHTML="");const o=i(e,{target:n,props:t});return{setProps(s){Object.assign(t,s);for(const d in t)d in s||delete t[d]},destroy(){g(o)}}}export{A as default}; diff --git a/src/assets/images/demo-avatar.png b/_astro/demo-avatar.CxcI0ivM.png similarity index 100% rename from src/assets/images/demo-avatar.png rename to _astro/demo-avatar.CxcI0ivM.png diff --git a/src/assets/images/demo-banner.png b/_astro/demo-banner.WD4SMgz_.png similarity index 100% rename from src/assets/images/demo-banner.png rename to _astro/demo-banner.WD4SMgz_.png diff --git a/_astro/each.ms7nIH9w.js b/_astro/each.ms7nIH9w.js new file mode 100644 index 0000000..bc1a5de --- /dev/null +++ b/_astro/each.ms7nIH9w.js @@ -0,0 +1 @@ +import{n as b,o as Z,E as J,q as H,v as F,w as $,x as y,g as V,y as j,H as ee,z as Y,A as k,B as O,C as re,D as ne,F as U,G as fe,I as m,J as L,K as ae,L as ie,M as le,N as B,O as ue,P as se,m as oe,Q as X,R as te,S as K,T as P,U as z,V as ve,W as de,X as ce,Y as pe,Z as _e,_ as he}from"./render.nCRzbnaE.js";function Ae(e,i){return i}function ge(e,i,l){for(var d=[],h=i.length,s,u=i.length,p=0;p{if(s){if(s.pending.delete(g),s.done.add(g),s.pending.size===0){var o=e.outrogroups;q(B(s.done)),o.delete(s),o.size===0&&(e.outrogroups=null)}}else u-=1},!1)}if(u===0){var f=d.length===0&&l!==null;if(f){var t=l,n=t.parentNode;pe(n),n.append(t),e.items.clear()}q(i,!f)}else s={pending:new Set(i),done:new Set},(e.outrogroups??=new Set).add(s)}function q(e,i=!0){for(var l=0;l{var a=l();return le(a)?a:a==null?[]:B(a)}),o,c=!0;function A(){r.fallback=n,Ee(r,o,u,i,d),n!==null&&(o.length===0?(n.f&m)===0?K(n):(n.f^=m,D(n,null,u)):P(n,()=>{n=null}))}var I=Z(()=>{o=V(g);var a=o.length;let N=!1;if(H){var S=j(u)===ee;S!==(a===0)&&(u=Y(),F(u),k(!1),N=!0)}for(var E=new Set,C=fe,x=ae(),_=0;_s(u)):(n=L(()=>s(G??=b())),n.f|=m)),H&&a>0&&F(Y()),!c)if(x){for(const[Q,W]of p)E.has(Q)||C.skipped_effects.add(W.e);C.oncommit(A),C.ondiscard(()=>{})}else A();N&&k(!0),V(g)}),r={effect:I,items:p,outrogroups:null,fallback:n};c=!1,H&&(u=O)}function M(e){for(;e!==null&&(e.f&de)===0;)e=e.next;return e}function Ee(e,i,l,d,h){var s=(d&ce)!==0,u=i.length,p=e.items,f=M(e.effect.first),t,n=null,g,o=[],c=[],A,I,r,a;if(s)for(a=0;a0){var R=(d&J)!==0&&u===0?l:null;if(s){for(a=0;a{if(g!==void 0)for(r of g)r.nodes?.a?.apply()})}function me(e,i,l,d,h,s,u,p){var f=(u&ue)!==0?(u&se)===0?oe(l,!1,!1):X(l):null,t=(u&te)!==0?X(h):null;return{v:f,i:t,e:L(()=>(s(i,f??l,t??h,p),()=>{e.delete(d)}))}}function D(e,i,l){if(e.nodes)for(var d=e.nodes.start,h=e.nodes.end,s=i&&(i.f&m)===0?i.nodes.start:l;d!==null;){var u=he(d);if(s.before(d),d===h)return;d=u}}function T(e,i,l){i===null?e.effect.first=l:i.next=l,l===null?e.effect.last=i:l.prev=i}export{Ce as e,Ae as i}; diff --git a/_astro/ec.d1dr8.css b/_astro/ec.d1dr8.css new file mode 100644 index 0000000..4275cd0 --- /dev/null +++ b/_astro/ec.d1dr8.css @@ -0,0 +1 @@ +.expressive-code{font-family:var(--ec-uiFontFml);font-size:var(--ec-uiFontSize);font-weight:var(--ec-uiFontWg);line-height:var(--ec-uiLineHt);text-size-adjust:none;-webkit-text-size-adjust:none}.expressive-code *:not(:is(svg, svg *)){all:revert;box-sizing:border-box}.expressive-code pre{display:flex;margin:0;padding:0;border:var(--ec-brdWd) solid var(--ec-brdCol);border-radius:calc(var(--ec-brdRad) + var(--ec-brdWd));background:var(--ec-codeBg)}.expressive-code pre:focus-visible{outline:3px solid var(--ec-focusBrd);outline-offset:-3px}.expressive-code pre > code{all:unset;display:block;flex:1 0 100%;padding:var(--ec-codePadBlk) 0;color:var(--ec-codeFg);font-family:var(--ec-codeFontFml);font-size:var(--ec-codeFontSize);font-weight:var(--ec-codeFontWg);line-height:var(--ec-codeLineHt)}.expressive-code pre{overflow-x:auto}.expressive-code pre.wrap .ec-line .code{white-space:pre-wrap;overflow-wrap:break-word;min-width:min(20ch, var(--ecMaxLine, 20ch))}.expressive-code pre.wrap .ec-line .code span.indent{white-space:pre}.expressive-code pre::-webkit-scrollbar,.expressive-code pre::-webkit-scrollbar-track{background-color:inherit;border-radius:calc(var(--ec-brdRad) + var(--ec-brdWd));border-top-left-radius:0;border-top-right-radius:0}.expressive-code pre::-webkit-scrollbar-thumb{background-color:var(--ec-sbThumbCol);border:4px solid transparent;background-clip:content-box;border-radius:10px}.expressive-code pre::-webkit-scrollbar-thumb:hover{background-color:var(--ec-sbThumbHoverCol)}.expressive-code .ec-line{direction:ltr;unicode-bidi:isolate;display:grid;grid-template-areas:'gutter code';grid-template-columns:auto 1fr;position:relative}.expressive-code .ec-line .gutter{grid-area:gutter;color:var(--ec-gtrFg)}.expressive-code .ec-line .gutter > *{pointer-events:none;user-select:none;-webkit-user-select:none}.expressive-code .ec-line .gutter ~ .code{--ecLineBrdCol:var(--ec-gtrBrdCol)}.expressive-code .ec-line.highlight .gutter{color:var(--ec-gtrHlFg)}.expressive-code .ec-line .code{grid-area:code;position:relative;box-sizing:content-box;padding-inline-start:calc(var(--ecIndent, 0ch) + var(--ec-codePadInl) - var(--ecGtrBrdWd));padding-inline-end:var(--ec-codePadInl);text-indent:calc(var(--ecIndent, 0ch) * -1)}.expressive-code .ec-line .code::before,.expressive-code .ec-line .code::after,.expressive-code .ec-line .code :where(*){text-indent:0}.expressive-code .ec-line .code{--ecGtrBrdWd:var(--ec-gtrBrdWd);border-inline-start:var(--ecGtrBrdWd) solid var(--ecLineBrdCol, transparent)}.expressive-code .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.expressive-code .ec-line.mark{--tmLineBgCol:var(--ec-tm-markBg)}.expressive-code .ec-line.mark .code{--ecLineBrdCol:var(--ec-tm-markBrdCol)}.expressive-code .ec-line.ins{--tmLineBgCol:var(--ec-tm-insBg);--tmLabel:var(--ec-tm-insDiffIndContent)}.expressive-code .ec-line.ins .code{--ecLineBrdCol:var(--ec-tm-insBrdCol)}.expressive-code .ec-line.ins .code::before{color:var(--ec-tm-insDiffIndCol)}.expressive-code .ec-line.del{--tmLineBgCol:var(--ec-tm-delBg);--tmLabel:var(--ec-tm-delDiffIndContent)}.expressive-code .ec-line.del .code{--ecLineBrdCol:var(--ec-tm-delBrdCol)}.expressive-code .ec-line.del .code::before{color:var(--ec-tm-delDiffIndCol)}.expressive-code .ec-line.mark,.expressive-code .ec-line.ins,.expressive-code .ec-line.del{background:var(--tmLineBgCol)}.expressive-code .ec-line.mark .code,.expressive-code .ec-line.ins .code,.expressive-code .ec-line.del .code{--ecGtrBrdWd:var(--ec-tm-lineMarkerAccentWd)}.expressive-code .ec-line.mark .code::before,.expressive-code .ec-line.ins .code::before,.expressive-code .ec-line.del .code::before{display:block;position:absolute;left:0;box-sizing:border-box;content:var(--tmLabel, ' ');padding-inline-start:var(--ec-tm-lineDiffIndMargLeft);text-align:center;white-space:pre}.expressive-code .ec-line.mark.tm-label .code::before,.expressive-code .ec-line.ins.tm-label .code::before,.expressive-code .ec-line.del.tm-label .code::before{background:var(--ecLineBrdCol);padding:0 calc(var(--ec-tm-lineMarkerLabelPadInl) + var(--ec-tm-lineMarkerAccentWd)) 0 var(--ec-tm-lineMarkerLabelPadInl);color:var(--ec-tm-lineMarkerLabelCol)}.expressive-code .ec-line mark{--tmInlineBgCol:var(--ec-tm-markBg);--tmInlineBrdCol:var(--ec-tm-markBrdCol)}.expressive-code .ec-line ins{--tmInlineBgCol:var(--ec-tm-insBg);--tmInlineBrdCol:var(--ec-tm-insBrdCol)}.expressive-code .ec-line del{--tmInlineBgCol:var(--ec-tm-delBg);--tmInlineBrdCol:var(--ec-tm-delBrdCol)}.expressive-code .ec-line mark,.expressive-code .ec-line ins,.expressive-code .ec-line del{all:unset;display:inline-block;position:relative;--tmBrdL:var(--ec-tm-inlMarkerBrdWd);--tmBrdR:var(--ec-tm-inlMarkerBrdWd);--tmRadL:var(--ec-tm-inlMarkerBrdRad);--tmRadR:var(--ec-tm-inlMarkerBrdRad);margin-inline:0.025rem;padding-inline:var(--ec-tm-inlMarkerPad);border-radius:var(--tmRadL) var(--tmRadR) var(--tmRadR) var(--tmRadL);background:var(--tmInlineBgCol);background-clip:padding-box}.expressive-code .ec-line mark.open-start,.expressive-code .ec-line ins.open-start,.expressive-code .ec-line del.open-start{margin-inline-start:0;padding-inline-start:0;--tmBrdL:0px;--tmRadL:0}.expressive-code .ec-line mark.open-end,.expressive-code .ec-line ins.open-end,.expressive-code .ec-line del.open-end{margin-inline-end:0;padding-inline-end:0;--tmBrdR:0px;--tmRadR:0}.expressive-code .ec-line mark::before,.expressive-code .ec-line ins::before,.expressive-code .ec-line del::before{content:'';position:absolute;pointer-events:none;display:inline-block;inset:0;border-radius:var(--tmRadL) var(--tmRadR) var(--tmRadR) var(--tmRadL);border:var(--ec-tm-inlMarkerBrdWd) solid var(--tmInlineBrdCol);border-inline-width:var(--tmBrdL) var(--tmBrdR)}.expressive-code .frame{all:unset;position:relative;display:block;--header-border-radius:calc(var(--ec-brdRad) + var(--ec-brdWd));--tab-border-radius:calc(var(--ec-frm-edTabBrdRad) + var(--ec-brdWd));--button-spacing:0.4rem;--code-background:var(--ec-frm-edBg);border-radius:var(--header-border-radius);box-shadow:var(--ec-frm-frameBoxShdCssVal)}.expressive-code .frame .header{display:none;z-index:1;position:relative;border-radius:var(--header-border-radius) var(--header-border-radius) 0 0}.expressive-code .frame.has-title pre,.expressive-code .frame.has-title code,.expressive-code .frame.is-terminal pre,.expressive-code .frame.is-terminal code{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.expressive-code .frame .title:empty:before{content:'\a0'}.expressive-code .frame.has-title:not(.is-terminal){--button-spacing:calc(1.9rem + 2 * (var(--ec-uiPadBlk) + var(--ec-frm-edActTabIndHt)))}.expressive-code .frame.has-title:not(.is-terminal) .title{position:relative;color:var(--ec-frm-edActTabFg);background:var(--ec-frm-edActTabBg);background-clip:padding-box;margin-block-start:var(--ec-frm-edTabsMargBlkStart);padding:calc(var(--ec-uiPadBlk) + var(--ec-frm-edActTabIndHt)) var(--ec-uiPadInl);border:var(--ec-brdWd) solid var(--ec-frm-edActTabBrdCol);border-radius:var(--tab-border-radius) var(--tab-border-radius) 0 0;border-bottom:none;overflow:hidden}.expressive-code .frame.has-title:not(.is-terminal) .title::after{content:'';position:absolute;pointer-events:none;inset:0;border-top:var(--ec-frm-edActTabIndHt) solid var(--ec-frm-edActTabIndTopCol);border-bottom:var(--ec-frm-edActTabIndHt) solid var(--ec-frm-edActTabIndBtmCol)}.expressive-code .frame.has-title:not(.is-terminal) .header{display:flex;background:linear-gradient(to top, var(--ec-frm-edTabBarBrdBtmCol) var(--ec-brdWd), transparent var(--ec-brdWd)),linear-gradient(var(--ec-frm-edTabBarBg), var(--ec-frm-edTabBarBg));background-repeat:no-repeat;padding-inline-start:var(--ec-frm-edTabsMargInlStart)}.expressive-code .frame.has-title:not(.is-terminal) .header::before{content:'';position:absolute;pointer-events:none;inset:0;border:var(--ec-brdWd) solid var(--ec-frm-edTabBarBrdCol);border-radius:inherit;border-bottom:none}.expressive-code .frame.is-terminal{--button-spacing:calc(1.9rem + var(--ec-brdWd) + 2 * var(--ec-uiPadBlk));--code-background:var(--ec-frm-trmBg)}.expressive-code .frame.is-terminal .header{display:flex;align-items:center;justify-content:center;padding-block:var(--ec-uiPadBlk);padding-block-end:calc(var(--ec-uiPadBlk) + var(--ec-brdWd));position:relative;font-weight:500;letter-spacing:0.025ch;color:var(--ec-frm-trmTtbFg);background:var(--ec-frm-trmTtbBg);border:var(--ec-brdWd) solid var(--ec-brdCol);border-bottom:none}.expressive-code .frame.is-terminal .header::before{content:'';position:absolute;pointer-events:none;left:var(--ec-uiPadInl);width:2.1rem;height:0.56rem;line-height:0;background-color:var(--ec-frm-trmTtbDotsFg);opacity:var(--ec-frm-trmTtbDotsOpa);-webkit-mask-image:var(--ec-frm-trmIcon);-webkit-mask-repeat:no-repeat;mask-image:var(--ec-frm-trmIcon);mask-repeat:no-repeat}.expressive-code .frame.is-terminal .header::after{content:'';position:absolute;pointer-events:none;inset:0;border-bottom:var(--ec-brdWd) solid var(--ec-frm-trmTtbBrdBtmCol)}.expressive-code .frame pre{background:var(--code-background)}.expressive-code .ec-section{position:relative}.expressive-code .ec-section summary{position:relative;font-family:var(--ec-cs-closedFontFml);font-size:var(--ec-cs-closedFontSize);line-height:var(--ec-cs-closedLineHt);user-select:none;-webkit-user-select:none;cursor:pointer;color:var(--ec-cs-closedTextCol);background-color:var(--ec-cs-closedBgCol);--border-color:var(--ec-cs-closedBrdCol);--border-width:var(--ec-cs-closedBrdWd);box-shadow:inset 0 calc(-1 * var(--border-width)) var(--border-color), inset 0 var(--border-width) var(--border-color);margin:var(--ec-cs-closedMarg);padding:0}.expressive-code .ec-section summary::marker{display:inline-block;content:"";width:16px;height:16px}.expressive-code .ec-section summary::-webkit-details-marker{display:none}.expressive-code .ec-section summary :is(.expand, .collapse){position:relative;display:inline-block;width:16px;height:16px;vertical-align:text-bottom;opacity:0.75}.expressive-code .ec-section summary :is(.expand, .collapse)::after{content:'';position:absolute;pointer-events:none;inset:0;background-color:var(--ec-cs-closedTextCol);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;line-height:0}.expressive-code .ec-section summary .expand::after{-webkit-mask-image:var(--ec-cs-expandIcon);mask-image:var(--ec-cs-expandIcon);-webkit-print-color-adjust:exact;print-color-adjust:exact}.expressive-code .ec-section summary .collapse{display:none}.expressive-code .ec-section summary .collapse::after{-webkit-mask-image:var(--ec-cs-collapseIcon);mask-image:var(--ec-cs-collapseIcon)}.expressive-code .ec-section summary .text{margin-left:1em}.expressive-code .ec-section summary .ec-line .code{padding-block:var(--ec-cs-closedPadBlk);text-indent:0}.expressive-code .ec-section[open],.expressive-code .ec-section details[open] + .content-lines{--border-color:var(--ec-cs-openBrdCol);--border-width:var(--ec-cs-openBrdWd);box-shadow:inset 0 calc(-1 * var(--border-width)) var(--border-color), inset 0 var(--border-width) var(--border-color);padding-inline:var(--ec-cs-openPad);margin-inline:var(--ec-cs-openMarg)}.expressive-code .ec-section.github[open] summary{display:none}.expressive-code .ec-section.github[open]{background-color:var(--ec-cs-openBgCol)}.expressive-code .ec-section:is(.collapsible-start, .collapsible-end){display:flex;flex-direction:column}.expressive-code .ec-section:is(.collapsible-start, .collapsible-end) .content-lines{display:none}.expressive-code .ec-section:is(.collapsible-start, .collapsible-end) details[open] .collapse{display:inline-block}.expressive-code .ec-section:is(.collapsible-start, .collapsible-end) details[open] :is(.expand, .text){display:none}.expressive-code .ec-section:is(.collapsible-start, .collapsible-end) details[open] + .content-lines{display:block;background-color:var(--ec-cs-openBgColCollapsible)}@media print{.expressive-code .ec-section:is(.collapsible-start, .collapsible-end) details[open]{display:none}}.expressive-code .ec-section.collapsible-end{flex-direction:column-reverse}.expressive-code .gutter .ln{display:inline-flex;justify-content:flex-end;align-items:flex-start;box-sizing:content-box;min-width:var(--lnWidth, 2ch);padding-inline:2ch;color:var(--ec-lineNumbers-fg)}.highlight .expressive-code .gutter .ln{color:var(--ec-lineNumbers-hlFg)}.expressive-code [data-language]::before{position:absolute;z-index:2;right:0.5rem;top:0.5rem;padding:0.1rem 0.5rem;content:attr(data-language);font-size:0.75rem;font-weight:bold;text-transform:uppercase;color:oklch(0.75 0.1 var(--hue));background:oklch(0.33 0.035 var(--hue));border-radius:0.5rem;pointer-events:none;transition:opacity 0.3s;opacity:0}@media (hover: none){.expressive-code .frame:not(.has-title):not(.is-terminal) [data-language]::before{opacity:1;margin-right:3rem}.expressive-code .frame:not(.has-title):not(.is-terminal) [data-language]:active::before{opacity:0}}@media (hover: hover){.expressive-code .frame:not(.has-title):not(.is-terminal) [data-language]::before{opacity:1}.expressive-code .frame:not(.has-title):not(.is-terminal):hover [data-language]::before{opacity:0}}:root,:root:not([data-theme='github-dark']) .expressive-code[data-theme='github-dark']{--ec-brdRad:0.75rem;--ec-brdWd:1.5px;--ec-brdCol:none;--ec-codeFontFml:'JetBrains Mono Variable', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;--ec-codeFontSize:0.875rem;--ec-codeFontWg:400;--ec-codeLineHt:1.5rem;--ec-codePadBlk:1rem;--ec-codePadInl:1.35rem;--ec-codeBg:var(--codeblock-bg);--ec-codeFg:#e1e4e8;--ec-codeSelBg:#3392ff44;--ec-gtrFg:#444d56;--ec-gtrBrdCol:#444d5633;--ec-gtrBrdWd:1.5px;--ec-gtrHlFg:#e1e4e8;--ec-uiFontFml:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,'Noto Sans',sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol','Noto Color Emoji';--ec-uiFontSize:0.9rem;--ec-uiFontWg:400;--ec-uiLineHt:1.65;--ec-uiPadBlk:0.25rem;--ec-uiPadInl:1rem;--ec-uiSelBg:#39414a;--ec-uiSelFg:#e1e4e8;--ec-focusBrd:#005cc5;--ec-sbThumbCol:#6a737d33;--ec-sbThumbHoverCol:#6a737d44;--ec-tm-lineMarkerAccentMarg:0rem;--ec-tm-lineMarkerAccentWd:0.15rem;--ec-tm-lineMarkerLabelPadInl:0.2rem;--ec-tm-lineMarkerLabelCol:white;--ec-tm-lineDiffIndMargLeft:0.3rem;--ec-tm-inlMarkerBrdWd:1.5px;--ec-tm-inlMarkerBrdRad:0.2rem;--ec-tm-inlMarkerPad:0.15rem;--ec-tm-insDiffIndContent:'+';--ec-tm-delDiffIndContent:'-';--ec-tm-markBg:#00548680;--ec-tm-markBrdCol:#007cb1d0;--ec-tm-insBg:#005a4a80;--ec-tm-insBrdCol:#008371d0;--ec-tm-insDiffIndCol:#2fb6a2d0;--ec-tm-delBg:#822c4d80;--ec-tm-delBrdCol:#af5573d0;--ec-tm-delDiffIndCol:#e686a4d0;--ec-frm-shdCol:#0000005b;--ec-frm-frameBoxShdCssVal:0.1rem 0.1rem 0.2rem #0000005b;--ec-frm-edActTabBg:none;--ec-frm-edActTabFg:#e1e4e8;--ec-frm-edActTabBrdCol:transparent;--ec-frm-edActTabIndHt:1.5px;--ec-frm-edActTabIndTopCol:none;--ec-frm-edActTabIndBtmCol:var(--primary);--ec-frm-edTabsMargInlStart:0;--ec-frm-edTabsMargBlkStart:0;--ec-frm-edTabBrdRad:0.75rem;--ec-frm-edTabBarBg:var(--codeblock-topbar-bg);--ec-frm-edTabBarBrdCol:none;--ec-frm-edTabBarBrdBtmCol:var(--codeblock-topbar-bg);--ec-frm-edBg:var(--codeblock-bg);--ec-frm-trmTtbFg:#e1e4e8;--ec-frm-trmTtbDotsFg:#e1e4e8;--ec-frm-trmTtbDotsOpa:0.15;--ec-frm-trmTtbBg:var(--codeblock-topbar-bg);--ec-frm-trmTtbBrdBtmCol:none;--ec-frm-trmBg:var(--codeblock-bg);--ec-frm-inlBtnFg:#e1e4e8;--ec-frm-inlBtnBg:#e1e4e8;--ec-frm-inlBtnBgIdleOpa:0;--ec-frm-inlBtnBgHoverOrFocusOpa:0.2;--ec-frm-inlBtnBgActOpa:0.3;--ec-frm-inlBtnBrd:#e1e4e8;--ec-frm-inlBtnBrdOpa:0.4;--ec-frm-tooltipSuccessBg:#228739;--ec-frm-tooltipSuccessFg:white;--ec-frm-copyIcon:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.75'%3E%3Cpath%20d%3D'M3%2019a2%202%200%200%201-1-2V2a2%202%200%200%201%201-1h13a2%202%200%200%201%202%201'%2F%3E%3Crect%20x%3D'6'%20y%3D'5'%20width%3D'16'%20height%3D'18'%20rx%3D'1.5'%20ry%3D'1.5'%2F%3E%3C%2Fsvg%3E");--ec-frm-trmIcon:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2060%2016'%20preserveAspectRatio%3D'xMidYMid%20meet'%3E%3Ccircle%20cx%3D'8'%20cy%3D'8'%20r%3D'8'%2F%3E%3Ccircle%20cx%3D'30'%20cy%3D'8'%20r%3D'8'%2F%3E%3Ccircle%20cx%3D'52'%20cy%3D'8'%20r%3D'8'%2F%3E%3C%2Fsvg%3E");--ec-cs-closedBrdWd:0px;--ec-cs-closedPadBlk:4px;--ec-cs-closedMarg:0;--ec-cs-closedFontFml:inherit;--ec-cs-closedFontSize:inherit;--ec-cs-closedLineHt:inherit;--ec-cs-closedTextCol:#e1e4e8;--ec-cs-closedBgCol:#58606933;--ec-cs-closedBrdCol:#58606980;--ec-cs-openBrdWd:1px;--ec-cs-openPad:0;--ec-cs-openMarg:0;--ec-cs-openBgCol:transparent;--ec-cs-openBgColCollapsible:#5860691a;--ec-cs-openBrdCol:transparent;--ec-cs-expandIcon:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2016%2016'%3E%3Cpath%20d%3D'm8.177.677%202.896%202.896a.25.25%200%200%201-.177.427H8.75v1.25a.75.75%200%200%201-1.5%200V4H5.104a.25.25%200%200%201-.177-.427L7.823.677a.25.25%200%200%201%20.354%200ZM7.25%2010.75a.75.75%200%200%201%201.5%200V12h2.146a.25.25%200%200%201%20.177.427l-2.896%202.896a.25.25%200%200%201-.354%200l-2.896-2.896A.25.25%200%200%201%205.104%2012H7.25v-1.25Zm-5-2a.75.75%200%200%200%200-1.5h-.5a.75.75%200%200%200%200%201.5h.5ZM6%208a.75.75%200%200%201-.75.75h-.5a.75.75%200%200%201%200-1.5h.5A.75.75%200%200%201%206%208Zm2.25.75a.75.75%200%200%200%200-1.5h-.5a.75.75%200%200%200%200%201.5h.5ZM12%208a.75.75%200%200%201-.75.75h-.5a.75.75%200%200%201%200-1.5h.5A.75.75%200%200%201%2012%208Zm2.25.75a.75.75%200%200%200%200-1.5h-.5a.75.75%200%200%200%200%201.5h.5Z'%2F%3E%3C%2Fsvg%3E");--ec-cs-collapseIcon:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2016%2016'%3E%3Cpath%20d%3D'M10.896%202H8.75V.75a.75.75%200%200%200-1.5%200V2H5.104a.25.25%200%200%200-.177.427l2.896%202.896a.25.25%200%200%200%20.354%200l2.896-2.896A.25.25%200%200%200%2010.896%202ZM8.75%2015.25a.75.75%200%200%201-1.5%200V14H5.104a.25.25%200%200%201-.177-.427l2.896-2.896a.25.25%200%200%201%20.354%200l2.896%202.896a.25.25%200%200%201-.177.427H8.75v1.25Zm-6.5-6.5a.75.75%200%200%200%200-1.5h-.5a.75.75%200%200%200%200%201.5h.5ZM6%208a.75.75%200%200%201-.75.75h-.5a.75.75%200%200%201%200-1.5h.5A.75.75%200%200%201%206%208Zm2.25.75a.75.75%200%200%200%200-1.5h-.5a.75.75%200%200%200%200%201.5h.5ZM12%208a.75.75%200%200%201-.75.75h-.5a.75.75%200%200%201%200-1.5h.5A.75.75%200%200%201%2012%208Zm2.25.75a.75.75%200%200%200%200-1.5h-.5a.75.75%200%200%200%200%201.5h.5Z'%2F%3E%3C%2Fsvg%3E");--ec-lineNumbers-fg:inherit;--ec-lineNumbers-hlFg:inherit}.expressive-code .ec-line :where(span[style^='--']:not([class])),:root:not([data-theme='github-dark']) .expressive-code[data-theme='github-dark'] .ec-line :where(span[style^='--']:not([class])){color:var(--0, inherit);background-color:var(--0bg, transparent);font-style:var(--0fs, inherit);font-weight:var(--0fw, inherit);text-decoration:var(--0td, inherit)}:root[data-theme='github-dark'] .expressive-code:not([data-theme='github-dark']) .ec-line :where(span[style^='--']:not([class])),.expressive-code[data-theme='github-dark'] .ec-line :where(span[style^='--']:not([class])){color:var(--1, inherit);background-color:var(--1bg, transparent);font-style:var(--1fs, inherit);font-weight:var(--1fw, inherit);text-decoration:var(--1td, inherit)} \ No newline at end of file diff --git a/_astro/ec.g1fg5.js b/_astro/ec.g1fg5.js new file mode 100644 index 0000000..6124c46 --- /dev/null +++ b/_astro/ec.g1fg5.js @@ -0,0 +1 @@ +try{(()=>{function a(e){if(!e)return;let t=e.getAttribute("tabindex")!==null,r=e.scrollWidth>e.clientWidth;r&&!t?(e.setAttribute("tabindex","0"),e.setAttribute("role","region")):!r&&t&&(e.removeAttribute("tabindex"),e.removeAttribute("role"))}var u=window.requestIdleCallback||(e=>setTimeout(e,1)),s=window.cancelIdleCallback||clearTimeout;function l(e){let t=new Set,r,n;return new ResizeObserver(c=>{c.forEach(o=>t.add(o.target)),r&&clearTimeout(r),n&&s(n),r=setTimeout(()=>{n&&s(n),n=u(()=>{t.forEach(o=>e(o)),t.clear()})},250)})}function i(e,t){e.querySelectorAll?.(".expressive-code pre > code").forEach(r=>{let n=r.parentElement;n&&t.observe(n)})}var d=l(a);i(document,d);var b=new MutationObserver(e=>e.forEach(t=>t.addedNodes.forEach(r=>{i(r,d)})));b.observe(document.body,{childList:!0,subtree:!0});document.addEventListener("astro:page-load",()=>{i(document,d)});})();}catch(e){console.error("[EC] tabindex-js-module failed:",e)} \ No newline at end of file diff --git a/_astro/essay.astro_astro_type_script_index_0_lang.BcH8pwK6.js b/_astro/essay.astro_astro_type_script_index_0_lang.BcH8pwK6.js new file mode 100644 index 0000000..68eed20 --- /dev/null +++ b/_astro/essay.astro_astro_type_script_index_0_lang.BcH8pwK6.js @@ -0,0 +1,56 @@ +window.commentOnPost=function(o){const e=o.dataset.content;console.log("commentOnPost called with content:",e);const t=document.getElementById("comments-section");t?(console.log("Found comments section, scrolling..."),t.scrollIntoView({behavior:"smooth"})):(console.log("Comments section not found, scrolling to bottom..."),window.scrollTo({top:document.body.scrollHeight,behavior:"smooth"})),setTimeout(()=>{console.log("Trying to find textarea...");const n=document.querySelector(".el-textarea__inner")||document.querySelector("#twikoo textarea")||document.querySelector("textarea");n&&e?(console.log("Found textarea:",n),n.value=`> ${e} + +`,n.focus(),n.dispatchEvent(new Event("input",{bubbles:!0})),console.log("Content filled into textarea")):(console.log("Textarea not found, trying again..."),setTimeout(()=>{const s=document.querySelector(".el-textarea__inner")||document.querySelector("textarea");s&&e?(console.log("Found textarea on retry:",s),s.value=`> ${e} + +`,s.focus(),s.dispatchEvent(new Event("input",{bubbles:!0})),console.log("Content filled into textarea on retry")):console.log("Textarea still not found")},500))},800)};async function h(){const o=document.getElementById("essays-container");if(!(!o||o.dataset.needsFetch!=="true"))try{console.log("Client-side fetching Ech0 posts...");const e=await fetch("https://say.allen2030.com/rss");if(!e.ok)throw new Error(`Failed to fetch: ${e.status}`);const t=await e.text();console.log("Client-side RSS response length:",t.length);const n=f(t);console.log("Client-side parsed entries:",n.length),n.length>0&&w(n)}catch(e){console.error("Client-side fetch error:",e)}}function f(o){const e=/([\s\S]*?)<\/entry>/g,t=[];let n=null,s=0;for(;n=e.exec(o),n!==null;){const r=n[1];s++;const i=r.match(/([\s\S]*?)<\/updated>/),d=i?i[1]:"",g=r.match(/]*>([\s\S]*?)<\/summary>/i);let m=(g?g[1]:"").replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&").replace(/"/g,'"').replace(/"/g,'"').replace(/'/g,"'").replace(/ /g,` +`);const v=m.replace(/<[^>]*>/g,"").trim()||"[图片]",c=[],p=/]*src=["']([^"']+)["']/gi;let a=null;for(;a=p.exec(m),a!==null;){let l=a[1];l.startsWith("http://")&&(l=l.replace("http://","https://")),c.push(l)}const x=d?new Date(d).toISOString().split("T")[0]:new Date().toISOString().split("T")[0];t.push({id:s,content:v,time:x,tags:["生活"],images:c.length>0?c:void 0})}return t.sort((r,i)=>i.id-r.id)}function w(o){const e=document.getElementById("essays-container");e&&(e.innerHTML=o.map(t=>` +
+
${u(t.content)}
+ + ${t.images&&t.images.length>0?` +
+
+ ${t.images.map((n,s)=>` +
+ 瞬间图片 ${s+1} +
+ `).join("")} +
+
+ `:""} + +
+
+
+ + ${t.time} +
+ +
+ +
+ ${t.tags.map(n=>` + ${n} + `).join("")} +
+
+
+ +
+ +
+
+
+ `).join(""))}function u(o){const e=document.createElement("div");return e.textContent=o,e.innerHTML}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",h):h(); diff --git a/src/assets/font/fontwx.woff2 b/_astro/fontwx.CfR8s_np.woff2 similarity index 100% rename from src/assets/font/fontwx.woff2 rename to _astro/fontwx.CfR8s_np.woff2 diff --git a/_astro/index.modern.D46RI4Wq.js b/_astro/index.modern.D46RI4Wq.js new file mode 100644 index 0000000..86c9567 --- /dev/null +++ b/_astro/index.modern.D46RI4Wq.js @@ -0,0 +1 @@ +function o(){return o=Object.assign?Object.assign.bind():function(s){for(var t=1;tString(s).split(".").map(t=>String(parseInt(t||"0",10))).concat(["0","0"]).slice(0,3).join(".");class y{constructor(){this.isSwupPlugin=!0,this.swup=void 0,this.version=void 0,this.requires={},this.handlersToUnregister=[]}mount(){}unmount(){this.handlersToUnregister.forEach(t=>t()),this.handlersToUnregister=[]}_beforeMount(){if(!this.name)throw new Error("You must define a name of plugin when creating a class.")}_afterUnmount(){}_checkRequirements(){return typeof this.requires!="object"||Object.entries(this.requires).forEach(([t,r])=>{if(!(function(e,i,u){const g=(function(a,h){var c;if(a==="swup")return(c=h.version)!=null?c:"";{var l;const p=h.findPlugin(a);return(l=p?.version)!=null?l:""}})(e,u);return!!g&&((a,h)=>h.every(c=>{const[,l,p]=c.match(/^([\D]+)?(.*)$/)||[];var m,f;return((w,b)=>{const v={"":n=>n===0,">":n=>n>0,">=":n=>n>=0,"<":n=>n<0,"<=":n=>n<=0};return(v[b]||v[""])(w)})((f=p,m=d(m=a),f=d(f),m.localeCompare(f,void 0,{numeric:!0})),l||">=")}))(g,i)})(t,r=Array.isArray(r)?r:[r],this.swup)){const e=`${t} ${r.join(", ")}`;throw new Error(`Plugin version mismatch: ${this.name} requires ${e}`)}}),!0}on(t,r,e={}){var i;r=!(i=r).name.startsWith("bound ")||i.hasOwnProperty("prototype")?r.bind(this):r;const u=this.swup.hooks.on(t,r,e);return this.handlersToUnregister.push(u),u}once(t,r,e={}){return this.on(t,r,o({},e,{once:!0}))}before(t,r,e={}){return this.on(t,r,o({},e,{before:!0}))}replace(t,r,e={}){return this.on(t,r,o({},e,{replace:!0}))}off(t,r){return this.swup.hooks.off(t,r)}}export{y as e}; diff --git a/_astro/input.BTugRrM_.js b/_astro/input.BTugRrM_.js new file mode 100644 index 0000000..ccf3920 --- /dev/null +++ b/_astro/input.BTugRrM_.js @@ -0,0 +1 @@ +import{a3 as _,a4 as b,u as i,a5 as m,q as y,G as v,a6 as h}from"./render.nCRzbnaE.js";function E(a,l,u=l){var f=new WeakSet;_(a,"input",async r=>{var e=r?a.defaultValue:a.value;if(e=t(a)?o(e):e,u(e),v!==null&&f.add(v),await b(),e!==(e=l())){var d=a.selectionStart,s=a.selectionEnd,n=a.value.length;if(a.value=e??"",s!==null){var c=a.value.length;d===s&&s===n&&c>n?(a.selectionStart=c,a.selectionEnd=c):(a.selectionStart=d,a.selectionEnd=Math.min(s,c))}}}),(y&&a.defaultValue!==a.value||i(l)==null&&a.value)&&(u(t(a)?o(a.value):a.value),v!==null&&f.add(v)),m(()=>{var r=l();if(a===document.activeElement){var e=h??v;if(f.has(e))return}t(a)&&r===o(a.value)||a.type==="date"&&!r&&!a.value||r!==a.value&&(a.value=r??"")})}function t(a){var l=a.type;return l==="number"||l==="range"}function o(a){return a===""?null:+a}export{E as b}; diff --git a/_astro/jetbrains-mono-cyrillic-wght-italic.CfQkWpeR.woff2 b/_astro/jetbrains-mono-cyrillic-wght-italic.CfQkWpeR.woff2 new file mode 100644 index 0000000..620f3df Binary files /dev/null and b/_astro/jetbrains-mono-cyrillic-wght-italic.CfQkWpeR.woff2 differ diff --git a/_astro/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2 b/_astro/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2 new file mode 100644 index 0000000..8ee2d70 Binary files /dev/null and b/_astro/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2 differ diff --git a/_astro/jetbrains-mono-greek-wght-italic.Dmq-fBVQ.woff2 b/_astro/jetbrains-mono-greek-wght-italic.Dmq-fBVQ.woff2 new file mode 100644 index 0000000..4d97b01 Binary files /dev/null and b/_astro/jetbrains-mono-greek-wght-italic.Dmq-fBVQ.woff2 differ diff --git a/_astro/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2 b/_astro/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2 new file mode 100644 index 0000000..6084d39 Binary files /dev/null and b/_astro/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2 differ diff --git a/_astro/jetbrains-mono-latin-ext-wght-italic.BrDczivE.woff2 b/_astro/jetbrains-mono-latin-ext-wght-italic.BrDczivE.woff2 new file mode 100644 index 0000000..45a83a6 Binary files /dev/null and b/_astro/jetbrains-mono-latin-ext-wght-italic.BrDczivE.woff2 differ diff --git a/_astro/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2 b/_astro/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2 new file mode 100644 index 0000000..01769d9 Binary files /dev/null and b/_astro/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2 differ diff --git a/_astro/jetbrains-mono-latin-wght-italic.B2M6KQje.woff2 b/_astro/jetbrains-mono-latin-wght-italic.B2M6KQje.woff2 new file mode 100644 index 0000000..ef16b7d Binary files /dev/null and b/_astro/jetbrains-mono-latin-wght-italic.B2M6KQje.woff2 differ diff --git a/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2 b/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2 new file mode 100644 index 0000000..cd5102a Binary files /dev/null and b/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2 differ diff --git a/_astro/jetbrains-mono-vietnamese-wght-italic.Dcombn6O.woff2 b/_astro/jetbrains-mono-vietnamese-wght-italic.Dcombn6O.woff2 new file mode 100644 index 0000000..f0fb88e Binary files /dev/null and b/_astro/jetbrains-mono-vietnamese-wght-italic.Dcombn6O.woff2 differ diff --git a/_astro/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2 b/_astro/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2 new file mode 100644 index 0000000..b6a3fa1 Binary files /dev/null and b/_astro/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2 differ diff --git a/_astro/page.Cov4ExHD.js b/_astro/page.Cov4ExHD.js new file mode 100644 index 0000000..d00cea0 --- /dev/null +++ b/_astro/page.Cov4ExHD.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["_astro/SwupA11yPlugin.BoEaImyy.js","_astro/index.modern.D46RI4Wq.js","_astro/Swup.CAlgnk7W.js","_astro/SwupPreloadPlugin.CTUtrABV.js","_astro/SwupScrollPlugin.4RNVwOaE.js","_astro/SwupHeadPlugin.DvOZNxAa.js","_astro/SwupScriptsPlugin.DeeT9ppa.js"])))=>i.map(i=>d[i]); +import{_ as o}from"./preload-helper.BlTxHScW.js";function i(n){return JSON.parse(n,l)}function l(n,e){if(Array.isArray(e)&&e.length===2&&typeof e[1]=="string"){const r=e[0];if(e=e[1],r===":regex:"){const s=e.match(/\/(.*?)\/([a-z]*)?$/i)||[];return new RegExp(s[1],s[2]||"")}if(r===":function:")return new Function(`return (${e}).apply(this, arguments);`)}return e}function d(n,{timeoutFallback:e=1e3}={}){"requestIdleCallback"in window?window.requestIdleCallback(()=>n()):setTimeout(()=>n(),e)}function c(n){document.readyState==="complete"?setTimeout(()=>n(),0):window.addEventListener("load",()=>n())}function f(n,{delayAfterLoad:e=0}={}){c(()=>{e>0?setTimeout(()=>d(n),e):d(n)})}async function m(){const[n,e,r,s,p,w]=await Promise.all([o(()=>import("./Swup.CAlgnk7W.js").then(t=>t.S),[]).then(t=>t.default),o(()=>import("./SwupA11yPlugin.BoEaImyy.js"),__vite__mapDeps([0,1,2])).then(t=>t.default),o(()=>import("./SwupPreloadPlugin.CTUtrABV.js"),__vite__mapDeps([3,1,2])).then(t=>t.default),o(()=>import("./SwupScrollPlugin.4RNVwOaE.js"),__vite__mapDeps([4,1,2])).then(t=>t.default),o(()=>import("./SwupHeadPlugin.DvOZNxAa.js"),__vite__mapDeps([5,1])).then(t=>t.default),o(()=>import("./SwupScriptsPlugin.DeeT9ppa.js"),__vite__mapDeps([6,1])).then(t=>t.default)]),a=new n({ignoreVisit:(t,{el:_,event:h}={})=>_?.closest("[data-no-swup]"),animationSelector:'[class*="transition-swup-"]',containers:["main","#toc"],cache:!0,native:!1,plugins:[new e(i("{}")),new r(i('{"preloadHoveredLinks":true,"preloadVisibleLinks":false}')),new s(i("{}")),new p(i('{"awaitAssets":true}')),new w(i("{}"))]}),u=t=>document.dispatchEvent(new Event(t));a.hooks.before("content:replace",()=>u("astro:before-swap")),a.hooks.on("content:replace",()=>u("astro:after-swap")),a.hooks.on("page:view",()=>u("astro:page-load")),window.swup=a}f(m); diff --git a/_astro/photoswipe.esm.CKV1Bsxh.js b/_astro/photoswipe.esm.CKV1Bsxh.js new file mode 100644 index 0000000..229d613 --- /dev/null +++ b/_astro/photoswipe.esm.CKV1Bsxh.js @@ -0,0 +1,4 @@ +/*! + * PhotoSwipe 5.4.4 - https://photoswipe.com + * (c) 2024 Dmytro Semenov + */function f(r,t,i){const e=document.createElement(t);return r&&(e.className=r),i&&i.appendChild(e),e}function p(r,t){return r.x=t.x,r.y=t.y,t.id!==void 0&&(r.id=t.id),r}function M(r){r.x=Math.round(r.x),r.y=Math.round(r.y)}function A(r,t){const i=Math.abs(r.x-t.x),e=Math.abs(r.y-t.y);return Math.sqrt(i*i+e*e)}function x(r,t){return r.x===t.x&&r.y===t.y}function b(r,t,i){return Math.min(Math.max(r,t),i)}function I(r,t,i){let e=`translate3d(${r}px,${t||0}px,0)`;return i!==void 0&&(e+=` scale3d(${i},${i},1)`),e}function y(r,t,i,e){r.style.transform=I(t,i,e)}const $="cubic-bezier(.4,0,.22,1)";function R(r,t,i,e){r.style.transition=t?`${t} ${i}ms ${e||$}`:"none"}function L(r,t,i){r.style.width=typeof t=="number"?`${t}px`:t,r.style.height=typeof i=="number"?`${i}px`:i}function U(r){R(r)}function q(r){return"decode"in r?r.decode().catch(()=>{}):r.complete?Promise.resolve(r):new Promise((t,i)=>{r.onload=()=>t(r),r.onerror=i})}const _={IDLE:"idle",LOADING:"loading",LOADED:"loaded",ERROR:"error"};function G(r){return"button"in r&&r.button===1||r.ctrlKey||r.metaKey||r.altKey||r.shiftKey}function K(r,t,i=document){let e=[];if(r instanceof Element)e=[r];else if(r instanceof NodeList||Array.isArray(r))e=Array.from(r);else{const s=typeof r=="string"?r:t;s&&(e=Array.from(i.querySelectorAll(s)))}return e}function C(){return!!(navigator.vendor&&navigator.vendor.match(/apple/i))}let F=!1;try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>{F=!0}}))}catch{}class X{constructor(){this._pool=[]}add(t,i,e,s){this._toggleListener(t,i,e,s)}remove(t,i,e,s){this._toggleListener(t,i,e,s,!0)}removeAll(){this._pool.forEach(t=>{this._toggleListener(t.target,t.type,t.listener,t.passive,!0,!0)}),this._pool=[]}_toggleListener(t,i,e,s,n,o){if(!t)return;const a=n?"removeEventListener":"addEventListener";i.split(" ").forEach(l=>{if(l){o||(n?this._pool=this._pool.filter(d=>d.type!==l||d.listener!==e||d.target!==t):this._pool.push({target:t,type:l,listener:e,passive:s}));const c=F?{passive:s||!1}:!1;t[a](l,e,c)}})}}function B(r,t){if(r.getViewportSizeFn){const i=r.getViewportSizeFn(r,t);if(i)return i}return{x:document.documentElement.clientWidth,y:window.innerHeight}}function S(r,t,i,e,s){let n=0;if(t.paddingFn)n=t.paddingFn(i,e,s)[r];else if(t.padding)n=t.padding[r];else{const o="padding"+r[0].toUpperCase()+r.slice(1);t[o]&&(n=t[o])}return Number(n)||0}function N(r,t,i,e){return{x:t.x-S("left",r,t,i,e)-S("right",r,t,i,e),y:t.y-S("top",r,t,i,e)-S("bottom",r,t,i,e)}}class Y{constructor(t){this.slide=t,this.currZoomLevel=1,this.center={x:0,y:0},this.max={x:0,y:0},this.min={x:0,y:0}}update(t){this.currZoomLevel=t,this.slide.width?(this._updateAxis("x"),this._updateAxis("y"),this.slide.pswp.dispatch("calcBounds",{slide:this.slide})):this.reset()}_updateAxis(t){const{pswp:i}=this.slide,e=this.slide[t==="x"?"width":"height"]*this.currZoomLevel,n=S(t==="x"?"left":"top",i.options,i.viewportSize,this.slide.data,this.slide.index),o=this.slide.panAreaSize[t];this.center[t]=Math.round((o-e)/2)+n,this.max[t]=e>o?Math.round(o-e)+n:this.center[t],this.min[t]=e>o?n:this.center[t]}reset(){this.center.x=0,this.center.y=0,this.max.x=0,this.max.y=0,this.min.x=0,this.min.y=0}correctPan(t,i){return b(i,this.max[t],this.min[t])}}const T=4e3;class k{constructor(t,i,e,s){this.pswp=s,this.options=t,this.itemData=i,this.index=e,this.panAreaSize=null,this.elementSize=null,this.fit=1,this.fill=1,this.vFill=1,this.initial=1,this.secondary=1,this.max=1,this.min=1}update(t,i,e){const s={x:t,y:i};this.elementSize=s,this.panAreaSize=e;const n=e.x/s.x,o=e.y/s.y;this.fit=Math.min(1,no?n:o),this.vFill=Math.min(1,o),this.initial=this._getInitial(),this.secondary=this._getSecondary(),this.max=Math.max(this.initial,this.secondary,this._getMax()),this.min=Math.min(this.fit,this.initial,this.secondary),this.pswp&&this.pswp.dispatch("zoomLevelsUpdate",{zoomLevels:this,slideData:this.itemData})}_parseZoomLevelOption(t){const i=t+"ZoomLevel",e=this.options[i];if(e)return typeof e=="function"?e(this):e==="fill"?this.fill:e==="fit"?this.fit:Number(e)}_getSecondary(){let t=this._parseZoomLevelOption("secondary");return t||(t=Math.min(1,this.fit*3),this.elementSize&&t*this.elementSize.x>T&&(t=T/this.elementSize.x),t)}_getInitial(){return this._parseZoomLevelOption("initial")||this.fit}_getMax(){return this._parseZoomLevelOption("max")||Math.max(1,this.fit*4)}}class j{constructor(t,i,e){this.data=t,this.index=i,this.pswp=e,this.isActive=i===e.currIndex,this.currentResolution=0,this.panAreaSize={x:0,y:0},this.pan={x:0,y:0},this.isFirstSlide=this.isActive&&!e.opener.isOpen,this.zoomLevels=new k(e.options,t,i,e),this.pswp.dispatch("gettingData",{slide:this,data:this.data,index:i}),this.content=this.pswp.contentLoader.getContentBySlide(this),this.container=f("pswp__zoom-wrap","div"),this.holderElement=null,this.currZoomLevel=1,this.width=this.content.width,this.height=this.content.height,this.heavyAppended=!1,this.bounds=new Y(this),this.prevDisplayedWidth=-1,this.prevDisplayedHeight=-1,this.pswp.dispatch("slideInit",{slide:this})}setIsActive(t){t&&!this.isActive?this.activate():!t&&this.isActive&&this.deactivate()}append(t){this.holderElement=t,this.container.style.transformOrigin="0 0",this.data&&(this.calculateSize(),this.load(),this.updateContentSize(),this.appendHeavy(),this.holderElement.appendChild(this.container),this.zoomAndPanToInitial(),this.pswp.dispatch("firstZoomPan",{slide:this}),this.applyCurrentZoomPan(),this.pswp.dispatch("afterSetContent",{slide:this}),this.isActive&&this.activate())}load(){this.content.load(!1),this.pswp.dispatch("slideLoad",{slide:this})}appendHeavy(){const{pswp:t}=this;this.heavyAppended||!t.opener.isOpen||t.mainScroll.isShifted()||!this.isActive&&!1||this.pswp.dispatch("appendHeavy",{slide:this}).defaultPrevented||(this.heavyAppended=!0,this.content.append(),this.pswp.dispatch("appendHeavyContent",{slide:this}))}activate(){this.isActive=!0,this.appendHeavy(),this.content.activate(),this.pswp.dispatch("slideActivate",{slide:this})}deactivate(){this.isActive=!1,this.content.deactivate(),this.currZoomLevel!==this.zoomLevels.initial&&this.calculateSize(),this.currentResolution=0,this.zoomAndPanToInitial(),this.applyCurrentZoomPan(),this.updateContentSize(),this.pswp.dispatch("slideDeactivate",{slide:this})}destroy(){this.content.hasSlide=!1,this.content.remove(),this.container.remove(),this.pswp.dispatch("slideDestroy",{slide:this})}resize(){this.currZoomLevel===this.zoomLevels.initial||!this.isActive?(this.calculateSize(),this.currentResolution=0,this.zoomAndPanToInitial(),this.applyCurrentZoomPan(),this.updateContentSize()):(this.calculateSize(),this.bounds.update(this.currZoomLevel),this.panTo(this.pan.x,this.pan.y))}updateContentSize(t){const i=this.currentResolution||this.zoomLevels.initial;if(!i)return;const e=Math.round(this.width*i)||this.pswp.viewportSize.x,s=Math.round(this.height*i)||this.pswp.viewportSize.y;!this.sizeChanged(e,s)&&!t||this.content.setDisplayedSize(e,s)}sizeChanged(t,i){return t!==this.prevDisplayedWidth||i!==this.prevDisplayedHeight?(this.prevDisplayedWidth=t,this.prevDisplayedHeight=i,!0):!1}getPlaceholderElement(){var t;return(t=this.content.placeholder)===null||t===void 0?void 0:t.element}zoomTo(t,i,e,s){const{pswp:n}=this;if(!this.isZoomable()||n.mainScroll.isShifted())return;n.dispatch("beforeZoomTo",{destZoomLevel:t,centerPoint:i,transitionDuration:e}),n.animations.stopAllPan();const o=this.currZoomLevel;s||(t=b(t,this.zoomLevels.min,this.zoomLevels.max)),this.setZoomLevel(t),this.pan.x=this.calculateZoomToPanOffset("x",i,o),this.pan.y=this.calculateZoomToPanOffset("y",i,o),M(this.pan);const a=()=>{this._setResolution(t),this.applyCurrentZoomPan()};e?n.animations.startTransition({isPan:!0,name:"zoomTo",target:this.container,transform:this.getCurrentTransform(),onComplete:a,duration:e,easing:n.options.easing}):a()}toggleZoom(t){this.zoomTo(this.currZoomLevel===this.zoomLevels.initial?this.zoomLevels.secondary:this.zoomLevels.initial,t,this.pswp.options.zoomAnimationDuration)}setZoomLevel(t){this.currZoomLevel=t,this.bounds.update(this.currZoomLevel)}calculateZoomToPanOffset(t,i,e){if(this.bounds.max[t]-this.bounds.min[t]===0)return this.bounds.center[t];i||(i=this.pswp.getViewportCenterPoint()),e||(e=this.zoomLevels.initial);const n=this.currZoomLevel/e;return this.bounds.correctPan(t,(this.pan[t]-i[t])*n+i[t])}panTo(t,i){this.pan.x=this.bounds.correctPan("x",t),this.pan.y=this.bounds.correctPan("y",i),this.applyCurrentZoomPan()}isPannable(){return!!this.width&&this.currZoomLevel>this.zoomLevels.fit}isZoomable(){return!!this.width&&this.content.isZoomable()}applyCurrentZoomPan(){this._applyZoomTransform(this.pan.x,this.pan.y,this.currZoomLevel),this===this.pswp.currSlide&&this.pswp.dispatch("zoomPanUpdate",{slide:this})}zoomAndPanToInitial(){this.currZoomLevel=this.zoomLevels.initial,this.bounds.update(this.currZoomLevel),p(this.pan,this.bounds.center),this.pswp.dispatch("initialZoomPan",{slide:this})}_applyZoomTransform(t,i,e){e/=this.currentResolution||this.zoomLevels.initial,y(this.container,t,i,e)}calculateSize(){const{pswp:t}=this;p(this.panAreaSize,N(t.options,t.viewportSize,this.data,this.index)),this.zoomLevels.update(this.width,this.height,this.panAreaSize),t.dispatch("calcSlideSize",{slide:this})}getCurrentTransform(){const t=this.currZoomLevel/(this.currentResolution||this.zoomLevels.initial);return I(this.pan.x,this.pan.y,t)}_setResolution(t){t!==this.currentResolution&&(this.currentResolution=t,this.updateContentSize(),this.pswp.dispatch("resolutionChanged"))}}const Q=.35,J=.6,z=.4,E=.5;function tt(r,t){return r*t/(1-t)}class it{constructor(t){this.gestures=t,this.pswp=t.pswp,this.startPan={x:0,y:0}}start(){this.pswp.currSlide&&p(this.startPan,this.pswp.currSlide.pan),this.pswp.animations.stopAll()}change(){const{p1:t,prevP1:i,dragAxis:e}=this.gestures,{currSlide:s}=this.pswp;if(e==="y"&&this.pswp.options.closeOnVerticalDrag&&s&&s.currZoomLevel<=s.zoomLevels.fit&&!this.gestures.isMultitouch){const n=s.pan.y+(t.y-i.y);if(!this.pswp.dispatch("verticalDrag",{panY:n}).defaultPrevented){this._setPanWithFriction("y",n,J);const o=1-Math.abs(this._getVerticalDragRatio(s.pan.y));this.pswp.applyBgOpacity(o),s.applyCurrentZoomPan()}}else this._panOrMoveMainScroll("x")||(this._panOrMoveMainScroll("y"),s&&(M(s.pan),s.applyCurrentZoomPan()))}end(){const{velocity:t}=this.gestures,{mainScroll:i,currSlide:e}=this.pswp;let s=0;if(this.pswp.animations.stopAll(),i.isShifted()){const o=(i.x-i.getCurrSlideX())/this.pswp.viewportSize.x;t.x<-E&&o<0||t.x<.1&&o<-.5?(s=1,t.x=Math.min(t.x,0)):(t.x>E&&o>0||t.x>-.1&&o>.5)&&(s=-1,t.x=Math.max(t.x,0)),i.moveIndexBy(s,!0,t.x)}e&&e.currZoomLevel>e.zoomLevels.max||this.gestures.isMultitouch?this.gestures.zoomLevels.correctZoomPan(!0):(this._finishPanGestureForAxis("x"),this._finishPanGestureForAxis("y"))}_finishPanGestureForAxis(t){const{velocity:i}=this.gestures,{currSlide:e}=this.pswp;if(!e)return;const{pan:s,bounds:n}=e,o=s[t],a=this.pswp.bgOpacity<1&&t==="y",l=o+tt(i[t],.995);if(a){const v=this._getVerticalDragRatio(o),w=this._getVerticalDragRatio(l);if(v<0&&w<-z||v>0&&w>z){this.pswp.close();return}}const c=n.correctPan(t,l);if(o===c)return;const d=c===l?1:.82,u=this.pswp.bgOpacity,m=c-o;this.pswp.animations.startSpring({name:"panGesture"+t,isPan:!0,start:o,end:c,velocity:i[t],dampingRatio:d,onUpdate:v=>{if(a&&this.pswp.bgOpacity<1){const w=1-(c-v)/m;this.pswp.applyBgOpacity(b(u+(1-u)*w,0,1))}s[t]=Math.floor(v),e.applyCurrentZoomPan()}})}_panOrMoveMainScroll(t){const{p1:i,dragAxis:e,prevP1:s,isMultitouch:n}=this.gestures,{currSlide:o,mainScroll:a}=this.pswp,h=i[t]-s[t],l=a.x+h;if(!h||!o)return!1;if(t==="x"&&!o.isPannable()&&!n)return a.moveTo(l,!0),!0;const{bounds:c}=o,d=o.pan[t]+h;if(this.pswp.options.allowPanToNext&&e==="x"&&t==="x"&&!n){const u=a.getCurrSlideX(),m=a.x-u,v=h>0,w=!v;if(d>c.min[t]&&v){if(c.min[t]<=this.startPan[t])return a.moveTo(l,!0),!0;this._setPanWithFriction(t,d)}else if(d0)return a.moveTo(Math.max(l,u),!0),!0;if(m<0)return a.moveTo(Math.min(l,u),!0),!0}else this._setPanWithFriction(t,d)}else t==="y"?!a.isShifted()&&c.min.y!==c.max.y&&this._setPanWithFriction(t,d):this._setPanWithFriction(t,d);return!1}_getVerticalDragRatio(t){var i,e;return(t-((i=(e=this.pswp.currSlide)===null||e===void 0?void 0:e.bounds.center.y)!==null&&i!==void 0?i:0))/(this.pswp.viewportSize.y/3)}_setPanWithFriction(t,i,e){const{currSlide:s}=this.pswp;if(!s)return;const{pan:n,bounds:o}=s;if(o.correctPan(t,i)!==i||e){const h=Math.round(i-n[t]);n[t]+=h*(e||Q)}else n[t]=i}}const et=.05,st=.15;function O(r,t,i){return r.x=(t.x+i.x)/2,r.y=(t.y+i.y)/2,r}class nt{constructor(t){this.gestures=t,this._startPan={x:0,y:0},this._startZoomPoint={x:0,y:0},this._zoomPoint={x:0,y:0},this._wasOverFitZoomLevel=!1,this._startZoomLevel=1}start(){const{currSlide:t}=this.gestures.pswp;t&&(this._startZoomLevel=t.currZoomLevel,p(this._startPan,t.pan)),this.gestures.pswp.animations.stopAllPan(),this._wasOverFitZoomLevel=!1}change(){const{p1:t,startP1:i,p2:e,startP2:s,pswp:n}=this.gestures,{currSlide:o}=n;if(!o)return;const a=o.zoomLevels.min,h=o.zoomLevels.max;if(!o.isZoomable()||n.mainScroll.isShifted())return;O(this._startZoomPoint,i,s),O(this._zoomPoint,t,e);let l=1/A(i,s)*A(t,e)*this._startZoomLevel;if(l>o.zoomLevels.initial+o.zoomLevels.initial/15&&(this._wasOverFitZoomLevel=!0),lh&&(l=h+(l-h)*et);o.pan.x=this._calculatePanForZoomLevel("x",l),o.pan.y=this._calculatePanForZoomLevel("y",l),o.setZoomLevel(l),o.applyCurrentZoomPan()}end(){const{pswp:t}=this.gestures,{currSlide:i}=t;(!i||i.currZoomLevele.zoomLevels.max?n=e.zoomLevels.max:(o=!1,n=s);const a=i.bgOpacity,h=i.bgOpacity<1,l=p({x:0,y:0},e.pan);let c=p({x:0,y:0},l);t&&(this._zoomPoint.x=0,this._zoomPoint.y=0,this._startZoomPoint.x=0,this._startZoomPoint.y=0,this._startZoomLevel=s,p(this._startPan,l)),o&&(c={x:this._calculatePanForZoomLevel("x",n),y:this._calculatePanForZoomLevel("y",n)}),e.setZoomLevel(n),c={x:e.bounds.correctPan("x",c.x),y:e.bounds.correctPan("y",c.y)},e.setZoomLevel(s);const d=!x(c,l);if(!d&&!o&&!h){e._setResolution(n),e.applyCurrentZoomPan();return}i.animations.stopAllPan(),i.animations.startSpring({isPan:!0,start:0,end:1e3,velocity:0,dampingRatio:1,naturalFrequency:40,onUpdate:u=>{if(u/=1e3,d||o){if(d&&(e.pan.x=l.x+(c.x-l.x)*u,e.pan.y=l.y+(c.y-l.y)*u),o){const m=s+(n-s)*u;e.setZoomLevel(m)}e.applyCurrentZoomPan()}h&&i.bgOpacity<1&&i.applyBgOpacity(b(a+(1-a)*u,0,1))},onComplete:()=>{e._setResolution(n),e.applyCurrentZoomPan()}})}}function Z(r){return!!r.target.closest(".pswp__container")}class ot{constructor(t){this.gestures=t}click(t,i){const e=i.target.classList,s=e.contains("pswp__img"),n=e.contains("pswp__item")||e.contains("pswp__zoom-wrap");s?this._doClickOrTapAction("imageClick",t,i):n&&this._doClickOrTapAction("bgClick",t,i)}tap(t,i){Z(i)&&this._doClickOrTapAction("tap",t,i)}doubleTap(t,i){Z(i)&&this._doClickOrTapAction("doubleTap",t,i)}_doClickOrTapAction(t,i,e){var s;const{pswp:n}=this.gestures,{currSlide:o}=n,a=t+"Action",h=n.options[a];if(!n.dispatch(a,{point:i,originalEvent:e}).defaultPrevented){if(typeof h=="function"){h.call(n,i,e);return}switch(h){case"close":case"next":n[h]();break;case"zoom":o?.toggleZoom(i);break;case"zoom-or-close":o!=null&&o.isZoomable()&&o.zoomLevels.secondary!==o.zoomLevels.initial?o.toggleZoom(i):n.options.clickToCloseNonZoomable&&n.close();break;case"toggle-controls":(s=this.gestures.pswp.element)===null||s===void 0||s.classList.toggle("pswp--ui-visible");break}}}}const rt=10,at=300,ht=25;class lt{constructor(t){this.pswp=t,this.dragAxis=null,this.p1={x:0,y:0},this.p2={x:0,y:0},this.prevP1={x:0,y:0},this.prevP2={x:0,y:0},this.startP1={x:0,y:0},this.startP2={x:0,y:0},this.velocity={x:0,y:0},this._lastStartP1={x:0,y:0},this._intervalP1={x:0,y:0},this._numActivePoints=0,this._ongoingPointers=[],this._touchEventEnabled="ontouchstart"in window,this._pointerEventEnabled=!!window.PointerEvent,this.supportsTouch=this._touchEventEnabled||this._pointerEventEnabled&&navigator.maxTouchPoints>1,this._numActivePoints=0,this._intervalTime=0,this._velocityCalculated=!1,this.isMultitouch=!1,this.isDragging=!1,this.isZooming=!1,this.raf=null,this._tapTimer=null,this.supportsTouch||(t.options.allowPanToNext=!1),this.drag=new it(this),this.zoomLevels=new nt(this),this.tapHandler=new ot(this),t.on("bindEvents",()=>{t.events.add(t.scrollWrap,"click",this._onClick.bind(this)),this._pointerEventEnabled?this._bindEvents("pointer","down","up","cancel"):this._touchEventEnabled?(this._bindEvents("touch","start","end","cancel"),t.scrollWrap&&(t.scrollWrap.ontouchmove=()=>{},t.scrollWrap.ontouchend=()=>{})):this._bindEvents("mouse","down","up")})}_bindEvents(t,i,e,s){const{pswp:n}=this,{events:o}=n,a=s?t+s:"";o.add(n.scrollWrap,t+i,this.onPointerDown.bind(this)),o.add(window,t+"move",this.onPointerMove.bind(this)),o.add(window,t+e,this.onPointerUp.bind(this)),a&&o.add(n.scrollWrap,a,this.onPointerUp.bind(this))}onPointerDown(t){const i=t.type==="mousedown"||t.pointerType==="mouse";if(i&&t.button>0)return;const{pswp:e}=this;if(!e.opener.isOpen){t.preventDefault();return}e.dispatch("pointerDown",{originalEvent:t}).defaultPrevented||(i&&(e.mouseDetected(),this._preventPointerEventBehaviour(t,"down")),e.animations.stopAll(),this._updatePoints(t,"down"),this._numActivePoints===1&&(this.dragAxis=null,p(this.startP1,this.p1)),this._numActivePoints>1?(this._clearTapTimer(),this.isMultitouch=!0):this.isMultitouch=!1)}onPointerMove(t){this._preventPointerEventBehaviour(t,"move"),this._numActivePoints&&(this._updatePoints(t,"move"),!this.pswp.dispatch("pointerMove",{originalEvent:t}).defaultPrevented&&(this._numActivePoints===1&&!this.isDragging?(this.dragAxis||this._calculateDragDirection(),this.dragAxis&&!this.isDragging&&(this.isZooming&&(this.isZooming=!1,this.zoomLevels.end()),this.isDragging=!0,this._clearTapTimer(),this._updateStartPoints(),this._intervalTime=Date.now(),this._velocityCalculated=!1,p(this._intervalP1,this.p1),this.velocity.x=0,this.velocity.y=0,this.drag.start(),this._rafStopLoop(),this._rafRenderLoop())):this._numActivePoints>1&&!this.isZooming&&(this._finishDrag(),this.isZooming=!0,this._updateStartPoints(),this.zoomLevels.start(),this._rafStopLoop(),this._rafRenderLoop())))}_finishDrag(){this.isDragging&&(this.isDragging=!1,this._velocityCalculated||this._updateVelocity(!0),this.drag.end(),this.dragAxis=null)}onPointerUp(t){this._numActivePoints&&(this._updatePoints(t,"up"),!this.pswp.dispatch("pointerUp",{originalEvent:t}).defaultPrevented&&(this._numActivePoints===0&&(this._rafStopLoop(),this.isDragging?this._finishDrag():!this.isZooming&&!this.isMultitouch&&this._finishTap(t)),this._numActivePoints<2&&this.isZooming&&(this.isZooming=!1,this.zoomLevels.end(),this._numActivePoints===1&&(this.dragAxis=null,this._updateStartPoints()))))}_rafRenderLoop(){(this.isDragging||this.isZooming)&&(this._updateVelocity(),this.isDragging?x(this.p1,this.prevP1)||this.drag.change():(!x(this.p1,this.prevP1)||!x(this.p2,this.prevP2))&&this.zoomLevels.change(),this._updatePrevPoints(),this.raf=requestAnimationFrame(this._rafRenderLoop.bind(this)))}_updateVelocity(t){const i=Date.now(),e=i-this._intervalTime;e<50&&!t||(this.velocity.x=this._getVelocity("x",e),this.velocity.y=this._getVelocity("y",e),this._intervalTime=i,p(this._intervalP1,this.p1),this._velocityCalculated=!0)}_finishTap(t){const{mainScroll:i}=this.pswp;if(i.isShifted()){i.moveIndexBy(0,!0);return}if(t.type.indexOf("cancel")>0)return;if(t.type==="mouseup"||t.pointerType==="mouse"){this.tapHandler.click(this.startP1,t);return}const e=this.pswp.options.doubleTapAction?at:0;this._tapTimer?(this._clearTapTimer(),A(this._lastStartP1,this.startP1){this.tapHandler.tap(this.startP1,t),this._clearTapTimer()},e))}_clearTapTimer(){this._tapTimer&&(clearTimeout(this._tapTimer),this._tapTimer=null)}_getVelocity(t,i){const e=this.p1[t]-this._intervalP1[t];return Math.abs(e)>1&&i>5?e/i:0}_rafStopLoop(){this.raf&&(cancelAnimationFrame(this.raf),this.raf=null)}_preventPointerEventBehaviour(t,i){this.pswp.applyFilters("preventPointerEvent",!0,t,i)&&t.preventDefault()}_updatePoints(t,i){if(this._pointerEventEnabled){const e=t,s=this._ongoingPointers.findIndex(n=>n.id===e.pointerId);i==="up"&&s>-1?this._ongoingPointers.splice(s,1):i==="down"&&s===-1?this._ongoingPointers.push(this._convertEventPosToPoint(e,{x:0,y:0})):s>-1&&this._convertEventPosToPoint(e,this._ongoingPointers[s]),this._numActivePoints=this._ongoingPointers.length,this._numActivePoints>0&&p(this.p1,this._ongoingPointers[0]),this._numActivePoints>1&&p(this.p2,this._ongoingPointers[1])}else{const e=t;this._numActivePoints=0,e.type.indexOf("touch")>-1?e.touches&&e.touches.length>0&&(this._convertEventPosToPoint(e.touches[0],this.p1),this._numActivePoints++,e.touches.length>1&&(this._convertEventPosToPoint(e.touches[1],this.p2),this._numActivePoints++)):(this._convertEventPosToPoint(t,this.p1),i==="up"?this._numActivePoints=0:this._numActivePoints++)}}_updatePrevPoints(){p(this.prevP1,this.p1),p(this.prevP2,this.p2)}_updateStartPoints(){p(this.startP1,this.p1),p(this.startP2,this.p2),this._updatePrevPoints()}_calculateDragDirection(){if(this.pswp.mainScroll.isShifted())this.dragAxis="x";else{const t=Math.abs(this.p1.x-this.startP1.x)-Math.abs(this.p1.y-this.startP1.y);if(t!==0){const i=t>0?"x":"y";Math.abs(this.p1[i]-this.startP1[i])>=rt&&(this.dragAxis=i)}}}_convertEventPosToPoint(t,i){return i.x=t.pageX-this.pswp.offset.x,i.y=t.pageY-this.pswp.offset.y,"pointerId"in t?i.id=t.pointerId:t.identifier!==void 0&&(i.id=t.identifier),i}_onClick(t){this.pswp.mainScroll.isShifted()&&(t.preventDefault(),t.stopPropagation())}}const ct=.35;class dt{constructor(t){this.pswp=t,this.x=0,this.slideWidth=0,this._currPositionIndex=0,this._prevPositionIndex=0,this._containerShiftIndex=-1,this.itemHolders=[]}resize(t){const{pswp:i}=this,e=Math.round(i.viewportSize.x+i.viewportSize.x*i.options.spacing),s=e!==this.slideWidth;s&&(this.slideWidth=e,this.moveTo(this.getCurrSlideX())),this.itemHolders.forEach((n,o)=>{s&&y(n.el,(o+this._containerShiftIndex)*this.slideWidth),t&&n.slide&&n.slide.resize()})}resetPosition(){this._currPositionIndex=0,this._prevPositionIndex=0,this.slideWidth=0,this._containerShiftIndex=-1}appendHolders(){this.itemHolders=[];for(let t=0;t<3;t++){const i=f("pswp__item","div",this.pswp.container);i.setAttribute("role","group"),i.setAttribute("aria-roledescription","slide"),i.setAttribute("aria-hidden","true"),i.style.display=t===1?"block":"none",this.itemHolders.push({el:i})}}canBeSwiped(){return this.pswp.getNumItems()>1}moveIndexBy(t,i,e){const{pswp:s}=this;let n=s.potentialIndex+t;const o=s.getNumItems();if(s.canLoop()){n=s.getLoopedIndex(n);const h=(t+o)%o;h<=o/2?t=h:t=h-o}else n<0?n=0:n>=o&&(n=o-1),t=n-s.potentialIndex;s.potentialIndex=n,this._currPositionIndex-=t,s.animations.stopMainScroll();const a=this.getCurrSlideX();if(!i)this.moveTo(a),this.updateCurrItem();else{s.animations.startSpring({isMainScroll:!0,start:this.x,end:a,velocity:e||0,naturalFrequency:30,dampingRatio:1,onUpdate:l=>{this.moveTo(l)},onComplete:()=>{this.updateCurrItem(),s.appendHeavy()}});let h=s.potentialIndex-s.currIndex;if(s.canLoop()){const l=(h+o)%o;l<=o/2?h=l:h=l-o}Math.abs(h)>1&&this.updateCurrItem()}return!!t}getCurrSlideX(){return this.slideWidth*this._currPositionIndex}isShifted(){return this.x!==this.getCurrSlideX()}updateCurrItem(){var t;const{pswp:i}=this,e=this._prevPositionIndex-this._currPositionIndex;if(!e)return;this._prevPositionIndex=this._currPositionIndex,i.currIndex=i.potentialIndex;let s=Math.abs(e),n;s>=3&&(this._containerShiftIndex+=e+(e>0?-3:3),s=3,this.itemHolders.forEach(o=>{var a;(a=o.slide)===null||a===void 0||a.destroy(),o.slide=void 0}));for(let o=0;o0?(n=this.itemHolders.shift(),n&&(this.itemHolders[2]=n,this._containerShiftIndex++,y(n.el,(this._containerShiftIndex+2)*this.slideWidth),i.setContent(n,i.currIndex-s+o+2))):(n=this.itemHolders.pop(),n&&(this.itemHolders.unshift(n),this._containerShiftIndex--,y(n.el,this._containerShiftIndex*this.slideWidth),i.setContent(n,i.currIndex+s-o-2)));Math.abs(this._containerShiftIndex)>50&&!this.isShifted()&&(this.resetPosition(),this.resize()),i.animations.stopAllPan(),this.itemHolders.forEach((o,a)=>{o.slide&&o.slide.setIsActive(a===1)}),i.currSlide=(t=this.itemHolders[1])===null||t===void 0?void 0:t.slide,i.contentLoader.updateLazy(e),i.currSlide&&i.currSlide.applyCurrentZoomPan(),i.dispatch("change")}moveTo(t,i){if(!this.pswp.canLoop()&&i){let e=(this.slideWidth*this._currPositionIndex-t)/this.slideWidth;e+=this.pswp.currIndex;const s=Math.round(t-this.x);(e<0&&s>0||e>=this.pswp.getNumItems()-1&&s<0)&&(t=this.x+s*ct)}this.x=t,this.pswp.container&&y(this.pswp.container,t),this.pswp.dispatch("moveMainScroll",{x:t,dragging:i??!1})}}const pt={Escape:27,z:90,ArrowLeft:37,ArrowUp:38,ArrowRight:39,ArrowDown:40,Tab:9},g=(r,t)=>t?r:pt[r];class ut{constructor(t){this.pswp=t,this._wasFocused=!1,t.on("bindEvents",()=>{t.options.trapFocus&&(t.options.initialPointerPos||this._focusRoot(),t.events.add(document,"focusin",this._onFocusIn.bind(this))),t.events.add(document,"keydown",this._onKeyDown.bind(this))});const i=document.activeElement;t.on("destroy",()=>{t.options.returnFocus&&i&&this._wasFocused&&i.focus()})}_focusRoot(){!this._wasFocused&&this.pswp.element&&(this.pswp.element.focus(),this._wasFocused=!0)}_onKeyDown(t){const{pswp:i}=this;if(i.dispatch("keydown",{originalEvent:t}).defaultPrevented||G(t))return;let e,s,n=!1;const o="key"in t;switch(o?t.key:t.keyCode){case g("Escape",o):i.options.escKey&&(e="close");break;case g("z",o):e="toggleZoom";break;case g("ArrowLeft",o):s="x";break;case g("ArrowUp",o):s="y";break;case g("ArrowRight",o):s="x",n=!0;break;case g("ArrowDown",o):n=!0,s="y";break;case g("Tab",o):this._focusRoot();break}if(s){t.preventDefault();const{currSlide:a}=i;i.options.arrowKeys&&s==="x"&&i.getNumItems()>1?e=n?"next":"prev":a&&a.currZoomLevel>a.zoomLevels.fit&&(a.pan[s]+=n?-80:80,a.panTo(a.pan.x,a.pan.y))}e&&(t.preventDefault(),i[e]())}_onFocusIn(t){const{template:i}=this.pswp;i&&document!==t.target&&i!==t.target&&!i.contains(t.target)&&i.focus()}}const mt="cubic-bezier(.4,0,.22,1)";class ft{constructor(t){var i;this.props=t;const{target:e,onComplete:s,transform:n,onFinish:o=()=>{},duration:a=333,easing:h=mt}=t;this.onFinish=o;const l=n?"transform":"opacity",c=(i=t[l])!==null&&i!==void 0?i:"";this._target=e,this._onComplete=s,this._finished=!1,this._onTransitionEnd=this._onTransitionEnd.bind(this),this._helperTimeout=setTimeout(()=>{R(e,l,a,h),this._helperTimeout=setTimeout(()=>{e.addEventListener("transitionend",this._onTransitionEnd,!1),e.addEventListener("transitioncancel",this._onTransitionEnd,!1),this._helperTimeout=setTimeout(()=>{this._finalizeAnimation()},a+500),e.style[l]=c},30)},0)}_onTransitionEnd(t){t.target===this._target&&this._finalizeAnimation()}_finalizeAnimation(){this._finished||(this._finished=!0,this.onFinish(),this._onComplete&&this._onComplete())}destroy(){this._helperTimeout&&clearTimeout(this._helperTimeout),U(this._target),this._target.removeEventListener("transitionend",this._onTransitionEnd,!1),this._target.removeEventListener("transitioncancel",this._onTransitionEnd,!1),this._finished||this._finalizeAnimation()}}const _t=12,vt=.75;class gt{constructor(t,i,e){this.velocity=t*1e3,this._dampingRatio=i||vt,this._naturalFrequency=e||_t,this._dampedFrequency=this._naturalFrequency,this._dampingRatio<1&&(this._dampedFrequency*=Math.sqrt(1-this._dampingRatio*this._dampingRatio))}easeFrame(t,i){let e=0,s;i/=1e3;const n=Math.E**(-this._dampingRatio*this._naturalFrequency*i);if(this._dampingRatio===1)s=this.velocity+this._naturalFrequency*t,e=(t+s*i)*n,this.velocity=e*-this._naturalFrequency+s*n;else if(this._dampingRatio<1){s=1/this._dampedFrequency*(this._dampingRatio*this._naturalFrequency*t+this.velocity);const o=Math.cos(this._dampedFrequency*i),a=Math.sin(this._dampedFrequency*i);e=n*(t*o+s*a),this.velocity=e*-this._naturalFrequency*this._dampingRatio+n*(-this._dampedFrequency*t*a+this._dampedFrequency*s*o)}return e}}class yt{constructor(t){this.props=t,this._raf=0;const{start:i,end:e,velocity:s,onUpdate:n,onComplete:o,onFinish:a=()=>{},dampingRatio:h,naturalFrequency:l}=t;this.onFinish=a;const c=new gt(s,h,l);let d=Date.now(),u=i-e;const m=()=>{this._raf&&(u=c.easeFrame(u,Date.now()-d),Math.abs(u)<1&&Math.abs(c.velocity)<50?(n(e),o&&o(),this.onFinish()):(d=Date.now(),n(u+e),this._raf=requestAnimationFrame(m)))};this._raf=requestAnimationFrame(m)}destroy(){this._raf>=0&&cancelAnimationFrame(this._raf),this._raf=0}}class wt{constructor(){this.activeAnimations=[]}startSpring(t){this._start(t,!0)}startTransition(t){this._start(t)}_start(t,i){const e=i?new yt(t):new ft(t);return this.activeAnimations.push(e),e.onFinish=()=>this.stop(e),e}stop(t){t.destroy();const i=this.activeAnimations.indexOf(t);i>-1&&this.activeAnimations.splice(i,1)}stopAll(){this.activeAnimations.forEach(t=>{t.destroy()}),this.activeAnimations=[]}stopAllPan(){this.activeAnimations=this.activeAnimations.filter(t=>t.props.isPan?(t.destroy(),!1):!0)}stopMainScroll(){this.activeAnimations=this.activeAnimations.filter(t=>t.props.isMainScroll?(t.destroy(),!1):!0)}isPanRunning(){return this.activeAnimations.some(t=>t.props.isPan)}}class Pt{constructor(t){this.pswp=t,t.events.add(t.element,"wheel",this._onWheel.bind(this))}_onWheel(t){t.preventDefault();const{currSlide:i}=this.pswp;let{deltaX:e,deltaY:s}=t;if(i&&!this.pswp.dispatch("wheel",{originalEvent:t}).defaultPrevented)if(t.ctrlKey||this.pswp.options.wheelToZoom){if(i.isZoomable()){let n=-s;t.deltaMode===1?n*=.05:n*=t.deltaMode?1:.002,n=2**n;const o=i.currZoomLevel*n;i.zoomTo(o,{x:t.clientX,y:t.clientY})}}else i.isPannable()&&(t.deltaMode===1&&(e*=18,s*=18),i.panTo(i.pan.x-e,i.pan.y-s))}}function St(r){if(typeof r=="string")return r;if(!r||!r.isCustomSVG)return"";const t=r;let i='",i}class xt{constructor(t,i){var e;const s=i.name||i.className;let n=i.html;if(t.options[s]===!1)return;typeof t.options[s+"SVG"]=="string"&&(n=t.options[s+"SVG"]),t.dispatch("uiElementCreate",{data:i});let o="";i.isButton?(o+="pswp__button ",o+=i.className||`pswp__button--${i.name}`):o+=i.className||`pswp__${i.name}`;let a=i.isButton?i.tagName||"button":i.tagName||"div";a=a.toLowerCase();const h=f(o,a);if(i.isButton){a==="button"&&(h.type="button");let{title:d}=i;const{ariaLabel:u}=i;typeof t.options[s+"Title"]=="string"&&(d=t.options[s+"Title"]),d&&(h.title=d);const m=u||d;m&&h.setAttribute("aria-label",m)}h.innerHTML=St(n),i.onInit&&i.onInit(h,t),i.onClick&&(h.onclick=d=>{typeof i.onClick=="string"?t[i.onClick]():typeof i.onClick=="function"&&i.onClick(d,h,t)});const l=i.appendTo||"bar";let c=t.element;l==="bar"?(t.topBar||(t.topBar=f("pswp__top-bar pswp__hide-on-close","div",t.scrollWrap)),c=t.topBar):(h.classList.add("pswp__hide-on-close"),l==="wrapper"&&(c=t.scrollWrap)),(e=c)===null||e===void 0||e.appendChild(t.applyFilters("uiElement",h,i))}}function H(r,t,i){r.classList.add("pswp__button--arrow"),r.setAttribute("aria-controls","pswp__items"),t.on("change",()=>{t.options.loop||(i?r.disabled=!(t.currIndex0))})}const It={name:"arrowPrev",className:"pswp__button--arrow--prev",title:"Previous",order:10,isButton:!0,appendTo:"wrapper",html:{isCustomSVG:!0,size:60,inner:'',outlineID:"pswp__icn-arrow"},onClick:"prev",onInit:H},bt={name:"arrowNext",className:"pswp__button--arrow--next",title:"Next",order:11,isButton:!0,appendTo:"wrapper",html:{isCustomSVG:!0,size:60,inner:'',outlineID:"pswp__icn-arrow"},onClick:"next",onInit:(r,t)=>{H(r,t,!0)}},At={name:"close",title:"Close",order:20,isButton:!0,html:{isCustomSVG:!0,inner:'',outlineID:"pswp__icn-close"},onClick:"close"},Lt={name:"zoom",title:"Zoom",order:10,isButton:!0,html:{isCustomSVG:!0,inner:'',outlineID:"pswp__icn-zoom"},onClick:"toggleZoom"},Ct={name:"preloader",appendTo:"bar",order:7,html:{isCustomSVG:!0,inner:'',outlineID:"pswp__icn-loading"},onInit:(r,t)=>{let i,e=null;const s=(a,h)=>{r.classList.toggle("pswp__preloader--"+a,h)},n=a=>{i!==a&&(i=a,s("active",a))},o=()=>{var a;if(!((a=t.currSlide)!==null&&a!==void 0&&a.content.isLoading())){n(!1),e&&(clearTimeout(e),e=null);return}e||(e=setTimeout(()=>{var h;n(!!(!((h=t.currSlide)===null||h===void 0)&&h.content.isLoading())),e=null},t.options.preloaderDelay))};t.on("change",o),t.on("loadComplete",a=>{t.currSlide===a.slide&&o()}),t.ui&&(t.ui.updatePreloaderVisibility=o)}},Tt={name:"counter",order:5,onInit:(r,t)=>{t.on("change",()=>{r.innerText=t.currIndex+1+t.options.indexIndicatorSep+t.getNumItems()})}};function D(r,t){r.classList.toggle("pswp--zoomed-in",t)}class zt{constructor(t){this.pswp=t,this.isRegistered=!1,this.uiElementsData=[],this.items=[],this.updatePreloaderVisibility=()=>{},this._lastUpdatedZoomLevel=void 0}init(){const{pswp:t}=this;this.isRegistered=!1,this.uiElementsData=[At,It,bt,Lt,Ct,Tt],t.dispatch("uiRegister"),this.uiElementsData.sort((i,e)=>(i.order||0)-(e.order||0)),this.items=[],this.isRegistered=!0,this.uiElementsData.forEach(i=>{this.registerElement(i)}),t.on("change",()=>{var i;(i=t.element)===null||i===void 0||i.classList.toggle("pswp--one-slide",t.getNumItems()===1)}),t.on("zoomPanUpdate",()=>this._onZoomPanUpdate())}registerElement(t){this.isRegistered?this.items.push(new xt(this.pswp,t)):this.uiElementsData.push(t)}_onZoomPanUpdate(){const{template:t,currSlide:i,options:e}=this.pswp;if(this.pswp.opener.isClosing||!t||!i)return;let{currZoomLevel:s}=i;if(this.pswp.opener.isOpen||(s=i.zoomLevels.initial),s===this._lastUpdatedZoomLevel)return;this._lastUpdatedZoomLevel=s;const n=i.zoomLevels.initial-i.zoomLevels.secondary;if(Math.abs(n)<.01||!i.isZoomable()){D(t,!1),t.classList.remove("pswp--zoom-allowed");return}t.classList.add("pswp--zoom-allowed");const o=s===i.zoomLevels.initial?i.zoomLevels.secondary:i.zoomLevels.initial;D(t,o<=s),(e.imageClickAction==="zoom"||e.imageClickAction==="zoom-or-close")&&t.classList.add("pswp--click-to-zoom")}}function Et(r){const t=r.getBoundingClientRect();return{x:t.left,y:t.top,w:t.width}}function Ot(r,t,i){const e=r.getBoundingClientRect(),s=e.width/t,n=e.height/i,o=s>n?s:n,a=(e.width-t*o)/2,h=(e.height-i*o)/2,l={x:e.left+a,y:e.top+h,w:t*o};return l.innerRect={w:e.width,h:e.height,x:a,y:h},l}function Zt(r,t,i){const e=i.dispatch("thumbBounds",{index:r,itemData:t,instance:i});if(e.thumbBounds)return e.thumbBounds;const{element:s}=t;let n,o;if(s&&i.options.thumbSelector!==!1){const a=i.options.thumbSelector||"img";o=s.matches(a)?s:s.querySelector(a)}return o=i.applyFilters("thumbEl",o,t,r),o&&(t.thumbCropped?n=Ot(o,t.width||t.w||0,t.height||t.h||0):n=Et(o)),i.applyFilters("thumbBounds",n,t,r)}class Dt{constructor(t,i){this.type=t,this.defaultPrevented=!1,i&&Object.assign(this,i)}preventDefault(){this.defaultPrevented=!0}}class Mt{constructor(){this._listeners={},this._filters={},this.pswp=void 0,this.options=void 0}addFilter(t,i,e=100){var s,n,o;this._filters[t]||(this._filters[t]=[]),(s=this._filters[t])===null||s===void 0||s.push({fn:i,priority:e}),(n=this._filters[t])===null||n===void 0||n.sort((a,h)=>a.priority-h.priority),(o=this.pswp)===null||o===void 0||o.addFilter(t,i,e)}removeFilter(t,i){this._filters[t]&&(this._filters[t]=this._filters[t].filter(e=>e.fn!==i)),this.pswp&&this.pswp.removeFilter(t,i)}applyFilters(t,...i){var e;return(e=this._filters[t])===null||e===void 0||e.forEach(s=>{i[0]=s.fn.apply(this,i)}),i[0]}on(t,i){var e,s;this._listeners[t]||(this._listeners[t]=[]),(e=this._listeners[t])===null||e===void 0||e.push(i),(s=this.pswp)===null||s===void 0||s.on(t,i)}off(t,i){var e;this._listeners[t]&&(this._listeners[t]=this._listeners[t].filter(s=>i!==s)),(e=this.pswp)===null||e===void 0||e.off(t,i)}dispatch(t,i){var e;if(this.pswp)return this.pswp.dispatch(t,i);const s=new Dt(t,i);return(e=this._listeners[t])===null||e===void 0||e.forEach(n=>{n.call(this,s)}),s}}class Rt{constructor(t,i){if(this.element=f("pswp__img pswp__img--placeholder",t?"img":"div",i),t){const e=this.element;e.decoding="async",e.alt="",e.src=t,e.setAttribute("role","presentation")}this.element.setAttribute("aria-hidden","true")}setDisplayedSize(t,i){this.element&&(this.element.tagName==="IMG"?(L(this.element,250,"auto"),this.element.style.transformOrigin="0 0",this.element.style.transform=I(0,0,t/250)):L(this.element,t,i))}destroy(){var t;(t=this.element)!==null&&t!==void 0&&t.parentNode&&this.element.remove(),this.element=null}}class Ft{constructor(t,i,e){this.instance=i,this.data=t,this.index=e,this.element=void 0,this.placeholder=void 0,this.slide=void 0,this.displayedImageWidth=0,this.displayedImageHeight=0,this.width=Number(this.data.w)||Number(this.data.width)||0,this.height=Number(this.data.h)||Number(this.data.height)||0,this.isAttached=!1,this.hasSlide=!1,this.isDecoding=!1,this.state=_.IDLE,this.data.type?this.type=this.data.type:this.data.src?this.type="image":this.type="html",this.instance.dispatch("contentInit",{content:this})}removePlaceholder(){this.placeholder&&!this.keepPlaceholder()&&setTimeout(()=>{this.placeholder&&(this.placeholder.destroy(),this.placeholder=void 0)},1e3)}load(t,i){if(this.slide&&this.usePlaceholder())if(this.placeholder){const e=this.placeholder.element;e&&!e.parentElement&&this.slide.container.prepend(e)}else{const e=this.instance.applyFilters("placeholderSrc",this.data.msrc&&this.slide.isFirstSlide?this.data.msrc:!1,this);this.placeholder=new Rt(e,this.slide.container)}this.element&&!i||this.instance.dispatch("contentLoad",{content:this,isLazy:t}).defaultPrevented||(this.isImageContent()?(this.element=f("pswp__img","img"),this.displayedImageWidth&&this.loadImage(t)):(this.element=f("pswp__content","div"),this.element.innerHTML=this.data.html||""),i&&this.slide&&this.slide.updateContentSize(!0))}loadImage(t){var i,e;if(!this.isImageContent()||!this.element||this.instance.dispatch("contentLoadImage",{content:this,isLazy:t}).defaultPrevented)return;const s=this.element;this.updateSrcsetSizes(),this.data.srcset&&(s.srcset=this.data.srcset),s.src=(i=this.data.src)!==null&&i!==void 0?i:"",s.alt=(e=this.data.alt)!==null&&e!==void 0?e:"",this.state=_.LOADING,s.complete?this.onLoaded():(s.onload=()=>{this.onLoaded()},s.onerror=()=>{this.onError()})}setSlide(t){this.slide=t,this.hasSlide=!0,this.instance=t.pswp}onLoaded(){this.state=_.LOADED,this.slide&&this.element&&(this.instance.dispatch("loadComplete",{slide:this.slide,content:this}),this.slide.isActive&&this.slide.heavyAppended&&!this.element.parentNode&&(this.append(),this.slide.updateContentSize(!0)),(this.state===_.LOADED||this.state===_.ERROR)&&this.removePlaceholder())}onError(){this.state=_.ERROR,this.slide&&(this.displayError(),this.instance.dispatch("loadComplete",{slide:this.slide,isError:!0,content:this}),this.instance.dispatch("loadError",{slide:this.slide,content:this}))}isLoading(){return this.instance.applyFilters("isContentLoading",this.state===_.LOADING,this)}isError(){return this.state===_.ERROR}isImageContent(){return this.type==="image"}setDisplayedSize(t,i){if(this.element&&(this.placeholder&&this.placeholder.setDisplayedSize(t,i),!this.instance.dispatch("contentResize",{content:this,width:t,height:i}).defaultPrevented&&(L(this.element,t,i),this.isImageContent()&&!this.isError()))){const e=!this.displayedImageWidth&&t;this.displayedImageWidth=t,this.displayedImageHeight=i,e?this.loadImage(!1):this.updateSrcsetSizes(),this.slide&&this.instance.dispatch("imageSizeChange",{slide:this.slide,width:t,height:i,content:this})}}isZoomable(){return this.instance.applyFilters("isContentZoomable",this.isImageContent()&&this.state!==_.ERROR,this)}updateSrcsetSizes(){if(!this.isImageContent()||!this.element||!this.data.srcset)return;const t=this.element,i=this.instance.applyFilters("srcsetSizesWidth",this.displayedImageWidth,this);(!t.dataset.largestUsedSize||i>parseInt(t.dataset.largestUsedSize,10))&&(t.sizes=i+"px",t.dataset.largestUsedSize=String(i))}usePlaceholder(){return this.instance.applyFilters("useContentPlaceholder",this.isImageContent(),this)}lazyLoad(){this.instance.dispatch("contentLazyLoad",{content:this}).defaultPrevented||this.load(!0)}keepPlaceholder(){return this.instance.applyFilters("isKeepingPlaceholder",this.isLoading(),this)}destroy(){this.hasSlide=!1,this.slide=void 0,!this.instance.dispatch("contentDestroy",{content:this}).defaultPrevented&&(this.remove(),this.placeholder&&(this.placeholder.destroy(),this.placeholder=void 0),this.isImageContent()&&this.element&&(this.element.onload=null,this.element.onerror=null,this.element=void 0))}displayError(){if(this.slide){var t,i;let e=f("pswp__error-msg","div");e.innerText=(t=(i=this.instance.options)===null||i===void 0?void 0:i.errorMsg)!==null&&t!==void 0?t:"",e=this.instance.applyFilters("contentErrorElement",e,this),this.element=f("pswp__content pswp__error-msg-container","div"),this.element.appendChild(e),this.slide.container.innerText="",this.slide.container.appendChild(this.element),this.slide.updateContentSize(!0),this.removePlaceholder()}}append(){if(this.isAttached||!this.element)return;if(this.isAttached=!0,this.state===_.ERROR){this.displayError();return}if(this.instance.dispatch("contentAppend",{content:this}).defaultPrevented)return;const t="decode"in this.element;this.isImageContent()?t&&this.slide&&(!this.slide.isActive||C())?(this.isDecoding=!0,this.element.decode().catch(()=>{}).finally(()=>{this.isDecoding=!1,this.appendImage()})):this.appendImage():this.slide&&!this.element.parentNode&&this.slide.container.appendChild(this.element)}activate(){this.instance.dispatch("contentActivate",{content:this}).defaultPrevented||!this.slide||(this.isImageContent()&&this.isDecoding&&!C()?this.appendImage():this.isError()&&this.load(!1,!0),this.slide.holderElement&&this.slide.holderElement.setAttribute("aria-hidden","false"))}deactivate(){this.instance.dispatch("contentDeactivate",{content:this}),this.slide&&this.slide.holderElement&&this.slide.holderElement.setAttribute("aria-hidden","true")}remove(){this.isAttached=!1,!this.instance.dispatch("contentRemove",{content:this}).defaultPrevented&&(this.element&&this.element.parentNode&&this.element.remove(),this.placeholder&&this.placeholder.element&&this.placeholder.element.remove())}appendImage(){this.isAttached&&(this.instance.dispatch("contentAppendImage",{content:this}).defaultPrevented||(this.slide&&this.element&&!this.element.parentNode&&this.slide.container.appendChild(this.element),(this.state===_.LOADED||this.state===_.ERROR)&&this.removePlaceholder()))}}const Bt=5;function W(r,t,i){const e=t.createContentFromData(r,i);let s;const{options:n}=t;if(n){s=new k(n,r,-1);let o;t.pswp?o=t.pswp.viewportSize:o=B(n,t);const a=N(n,o,r,i);s.update(e.width,e.height,a)}return e.lazyLoad(),s&&e.setDisplayedSize(Math.ceil(e.width*s.initial),Math.ceil(e.height*s.initial)),e}function Nt(r,t){const i=t.getItemData(r);if(!t.dispatch("lazyLoadSlide",{index:r,itemData:i}).defaultPrevented)return W(i,t,r)}class kt{constructor(t){this.pswp=t,this.limit=Math.max(t.options.preload[0]+t.options.preload[1]+1,Bt),this._cachedItems=[]}updateLazy(t){const{pswp:i}=this;if(i.dispatch("lazyLoad").defaultPrevented)return;const{preload:e}=i.options,s=t===void 0?!0:t>=0;let n;for(n=0;n<=e[1];n++)this.loadSlideByIndex(i.currIndex+(s?n:-n));for(n=1;n<=e[0];n++)this.loadSlideByIndex(i.currIndex+(s?-n:n))}loadSlideByIndex(t){const i=this.pswp.getLoopedIndex(t);let e=this.getContentByIndex(i);e||(e=Nt(i,this.pswp),e&&this.addToCache(e))}getContentBySlide(t){let i=this.getContentByIndex(t.index);return i||(i=this.pswp.createContentFromData(t.data,t.index),this.addToCache(i)),i.setSlide(t),i}addToCache(t){if(this.removeByIndex(t.index),this._cachedItems.push(t),this._cachedItems.length>this.limit){const i=this._cachedItems.findIndex(e=>!e.isAttached&&!e.hasSlide);i!==-1&&this._cachedItems.splice(i,1)[0].destroy()}}removeByIndex(t){const i=this._cachedItems.findIndex(e=>e.index===t);i!==-1&&this._cachedItems.splice(i,1)}getContentByIndex(t){return this._cachedItems.find(i=>i.index===t)}destroy(){this._cachedItems.forEach(t=>t.destroy()),this._cachedItems=[]}}class Ht extends Mt{getNumItems(){var t;let i=0;const e=(t=this.options)===null||t===void 0?void 0:t.dataSource;e&&"length"in e?i=e.length:e&&"gallery"in e&&(e.items||(e.items=this._getGalleryDOMElements(e.gallery)),e.items&&(i=e.items.length));const s=this.dispatch("numItems",{dataSource:e,numItems:i});return this.applyFilters("numItems",s.numItems,e)}createContentFromData(t,i){return new Ft(t,this,i)}getItemData(t){var i;const e=(i=this.options)===null||i===void 0?void 0:i.dataSource;let s={};Array.isArray(e)?s=e[t]:e&&"gallery"in e&&(e.items||(e.items=this._getGalleryDOMElements(e.gallery)),s=e.items[t]);let n=s;n instanceof Element&&(n=this._domElementToItemData(n));const o=this.dispatch("itemData",{itemData:n||{},index:t});return this.applyFilters("itemData",o.itemData,t)}_getGalleryDOMElements(t){var i,e;return(i=this.options)!==null&&i!==void 0&&i.children||(e=this.options)!==null&&e!==void 0&&e.childSelector?K(this.options.children,this.options.childSelector,t)||[]:[t]}_domElementToItemData(t){const i={element:t},e=t.tagName==="A"?t:t.querySelector("a");if(e){i.src=e.dataset.pswpSrc||e.href,e.dataset.pswpSrcset&&(i.srcset=e.dataset.pswpSrcset),i.width=e.dataset.pswpWidth?parseInt(e.dataset.pswpWidth,10):0,i.height=e.dataset.pswpHeight?parseInt(e.dataset.pswpHeight,10):0,i.w=i.width,i.h=i.height,e.dataset.pswpType&&(i.type=e.dataset.pswpType);const n=t.querySelector("img");if(n){var s;i.msrc=n.currentSrc||n.src,i.alt=(s=n.getAttribute("alt"))!==null&&s!==void 0?s:""}(e.dataset.pswpCropped||e.dataset.cropped)&&(i.thumbCropped=!0)}return this.applyFilters("domItemData",i,t,e)}lazyLoadData(t,i){return W(t,this,i)}}const P=.003;class Wt{constructor(t){this.pswp=t,this.isClosed=!0,this.isOpen=!1,this.isClosing=!1,this.isOpening=!1,this._duration=void 0,this._useAnimation=!1,this._croppedZoom=!1,this._animateRootOpacity=!1,this._animateBgOpacity=!1,this._placeholder=void 0,this._opacityElement=void 0,this._cropContainer1=void 0,this._cropContainer2=void 0,this._thumbBounds=void 0,this._prepareOpen=this._prepareOpen.bind(this),t.on("firstZoomPan",this._prepareOpen)}open(){this._prepareOpen(),this._start()}close(){if(this.isClosed||this.isClosing||this.isOpening)return;const t=this.pswp.currSlide;this.isOpen=!1,this.isOpening=!1,this.isClosing=!0,this._duration=this.pswp.options.hideAnimationDuration,t&&t.currZoomLevel*t.width>=this.pswp.options.maxWidthToAnimate&&(this._duration=0),this._applyStartProps(),setTimeout(()=>{this._start()},this._croppedZoom?30:0)}_prepareOpen(){if(this.pswp.off("firstZoomPan",this._prepareOpen),!this.isOpening){const t=this.pswp.currSlide;this.isOpening=!0,this.isClosing=!1,this._duration=this.pswp.options.showAnimationDuration,t&&t.zoomLevels.initial*t.width>=this.pswp.options.maxWidthToAnimate&&(this._duration=0),this._applyStartProps()}}_applyStartProps(){const{pswp:t}=this,i=this.pswp.currSlide,{options:e}=t;if(e.showHideAnimationType==="fade"?(e.showHideOpacity=!0,this._thumbBounds=void 0):e.showHideAnimationType==="none"?(e.showHideOpacity=!1,this._duration=0,this._thumbBounds=void 0):this.isOpening&&t._initialThumbBounds?this._thumbBounds=t._initialThumbBounds:this._thumbBounds=this.pswp.getThumbBounds(),this._placeholder=i?.getPlaceholderElement(),t.animations.stopAll(),this._useAnimation=!!(this._duration&&this._duration>50),this._animateZoom=!!this._thumbBounds&&i?.content.usePlaceholder()&&(!this.isClosing||!t.mainScroll.isShifted()),!this._animateZoom)this._animateRootOpacity=!0,this.isOpening&&i&&(i.zoomAndPanToInitial(),i.applyCurrentZoomPan());else{var s;this._animateRootOpacity=(s=e.showHideOpacity)!==null&&s!==void 0?s:!1}if(this._animateBgOpacity=!this._animateRootOpacity&&this.pswp.options.bgOpacity>P,this._opacityElement=this._animateRootOpacity?t.element:t.bg,!this._useAnimation){this._duration=0,this._animateZoom=!1,this._animateBgOpacity=!1,this._animateRootOpacity=!0,this.isOpening&&(t.element&&(t.element.style.opacity=String(P)),t.applyBgOpacity(1));return}if(this._animateZoom&&this._thumbBounds&&this._thumbBounds.innerRect){var n;this._croppedZoom=!0,this._cropContainer1=this.pswp.container,this._cropContainer2=(n=this.pswp.currSlide)===null||n===void 0?void 0:n.holderElement,t.container&&(t.container.style.overflow="hidden",t.container.style.width=t.viewportSize.x+"px")}else this._croppedZoom=!1;this.isOpening?(this._animateRootOpacity?(t.element&&(t.element.style.opacity=String(P)),t.applyBgOpacity(1)):(this._animateBgOpacity&&t.bg&&(t.bg.style.opacity=String(P)),t.element&&(t.element.style.opacity="1")),this._animateZoom&&(this._setClosedStateZoomPan(),this._placeholder&&(this._placeholder.style.willChange="transform",this._placeholder.style.opacity=String(P)))):this.isClosing&&(t.mainScroll.itemHolders[0]&&(t.mainScroll.itemHolders[0].el.style.display="none"),t.mainScroll.itemHolders[2]&&(t.mainScroll.itemHolders[2].el.style.display="none"),this._croppedZoom&&t.mainScroll.x!==0&&(t.mainScroll.resetPosition(),t.mainScroll.resize()))}_start(){this.isOpening&&this._useAnimation&&this._placeholder&&this._placeholder.tagName==="IMG"?new Promise(t=>{let i=!1,e=!0;q(this._placeholder).finally(()=>{i=!0,e||t(!0)}),setTimeout(()=>{e=!1,i&&t(!0)},50),setTimeout(t,250)}).finally(()=>this._initiate()):this._initiate()}_initiate(){var t,i;(t=this.pswp.element)===null||t===void 0||t.style.setProperty("--pswp-transition-duration",this._duration+"ms"),this.pswp.dispatch(this.isOpening?"openingAnimationStart":"closingAnimationStart"),this.pswp.dispatch("initialZoom"+(this.isOpening?"In":"Out")),(i=this.pswp.element)===null||i===void 0||i.classList.toggle("pswp--ui-visible",this.isOpening),this.isOpening?(this._placeholder&&(this._placeholder.style.opacity="1"),this._animateToOpenState()):this.isClosing&&this._animateToClosedState(),this._useAnimation||this._onAnimationComplete()}_onAnimationComplete(){const{pswp:t}=this;if(this.isOpen=this.isOpening,this.isClosed=this.isClosing,this.isOpening=!1,this.isClosing=!1,t.dispatch(this.isOpen?"openingAnimationEnd":"closingAnimationEnd"),t.dispatch("initialZoom"+(this.isOpen?"InEnd":"OutEnd")),this.isClosed)t.destroy();else if(this.isOpen){var i;this._animateZoom&&t.container&&(t.container.style.overflow="visible",t.container.style.width="100%"),(i=t.currSlide)===null||i===void 0||i.applyCurrentZoomPan()}}_animateToOpenState(){const{pswp:t}=this;this._animateZoom&&(this._croppedZoom&&this._cropContainer1&&this._cropContainer2&&(this._animateTo(this._cropContainer1,"transform","translate3d(0,0,0)"),this._animateTo(this._cropContainer2,"transform","none")),t.currSlide&&(t.currSlide.zoomAndPanToInitial(),this._animateTo(t.currSlide.container,"transform",t.currSlide.getCurrentTransform()))),this._animateBgOpacity&&t.bg&&this._animateTo(t.bg,"opacity",String(t.options.bgOpacity)),this._animateRootOpacity&&t.element&&this._animateTo(t.element,"opacity","1")}_animateToClosedState(){const{pswp:t}=this;this._animateZoom&&this._setClosedStateZoomPan(!0),this._animateBgOpacity&&t.bgOpacity>.01&&t.bg&&this._animateTo(t.bg,"opacity","0"),this._animateRootOpacity&&t.element&&this._animateTo(t.element,"opacity","0")}_setClosedStateZoomPan(t){if(!this._thumbBounds)return;const{pswp:i}=this,{innerRect:e}=this._thumbBounds,{currSlide:s,viewportSize:n}=i;if(this._croppedZoom&&e&&this._cropContainer1&&this._cropContainer2){const o=-n.x+(this._thumbBounds.x-e.x)+e.w,a=-n.y+(this._thumbBounds.y-e.y)+e.h,h=n.x-e.w,l=n.y-e.h;t?(this._animateTo(this._cropContainer1,"transform",I(o,a)),this._animateTo(this._cropContainer2,"transform",I(h,l))):(y(this._cropContainer1,o,a),y(this._cropContainer2,h,l))}s&&(p(s.pan,e||this._thumbBounds),s.currZoomLevel=this._thumbBounds.w/s.width,t?this._animateTo(s.container,"transform",s.getCurrentTransform()):s.applyCurrentZoomPan())}_animateTo(t,i,e){if(!this._duration){t.style[i]=e;return}const{animations:s}=this.pswp,n={duration:this._duration,easing:this.pswp.options.easing,onComplete:()=>{s.activeAnimations.length||this._onAnimationComplete()},target:t};n[i]=e,s.startTransition(n)}}const Vt={allowPanToNext:!0,spacing:.1,loop:!0,pinchToClose:!0,closeOnVerticalDrag:!0,hideAnimationDuration:333,showAnimationDuration:333,zoomAnimationDuration:333,escKey:!0,arrowKeys:!0,trapFocus:!0,returnFocus:!0,maxWidthToAnimate:4e3,clickToCloseNonZoomable:!0,imageClickAction:"zoom-or-close",bgClickAction:"close",tapAction:"toggle-controls",doubleTapAction:"zoom",indexIndicatorSep:" / ",preloaderDelay:2e3,bgOpacity:.8,index:0,errorMsg:"The image cannot be loaded",preload:[1,2],easing:"cubic-bezier(.4,0,.22,1)"};class $t extends Ht{constructor(t){super(),this.options=this._prepareOptions(t||{}),this.offset={x:0,y:0},this._prevViewportSize={x:0,y:0},this.viewportSize={x:0,y:0},this.bgOpacity=1,this.currIndex=0,this.potentialIndex=0,this.isOpen=!1,this.isDestroying=!1,this.hasMouse=!1,this._initialItemData={},this._initialThumbBounds=void 0,this.topBar=void 0,this.element=void 0,this.template=void 0,this.container=void 0,this.scrollWrap=void 0,this.currSlide=void 0,this.events=new X,this.animations=new wt,this.mainScroll=new dt(this),this.gestures=new lt(this),this.opener=new Wt(this),this.keyboard=new ut(this),this.contentLoader=new kt(this)}init(){if(this.isOpen||this.isDestroying)return!1;this.isOpen=!0,this.dispatch("init"),this.dispatch("beforeOpen"),this._createMainStructure();let t="pswp--open";return this.gestures.supportsTouch&&(t+=" pswp--touch"),this.options.mainClass&&(t+=" "+this.options.mainClass),this.element&&(this.element.className+=" "+t),this.currIndex=this.options.index||0,this.potentialIndex=this.currIndex,this.dispatch("firstUpdate"),this.scrollWheel=new Pt(this),(Number.isNaN(this.currIndex)||this.currIndex<0||this.currIndex>=this.getNumItems())&&(this.currIndex=0),this.gestures.supportsTouch||this.mouseDetected(),this.updateSize(),this.offset.y=window.pageYOffset,this._initialItemData=this.getItemData(this.currIndex),this.dispatch("gettingData",{index:this.currIndex,data:this._initialItemData,slide:void 0}),this._initialThumbBounds=this.getThumbBounds(),this.dispatch("initialLayout"),this.on("openingAnimationEnd",()=>{const{itemHolders:i}=this.mainScroll;i[0]&&(i[0].el.style.display="block",this.setContent(i[0],this.currIndex-1)),i[2]&&(i[2].el.style.display="block",this.setContent(i[2],this.currIndex+1)),this.appendHeavy(),this.contentLoader.updateLazy(),this.events.add(window,"resize",this._handlePageResize.bind(this)),this.events.add(window,"scroll",this._updatePageScrollOffset.bind(this)),this.dispatch("bindEvents")}),this.mainScroll.itemHolders[1]&&this.setContent(this.mainScroll.itemHolders[1],this.currIndex),this.dispatch("change"),this.opener.open(),this.dispatch("afterInit"),!0}getLoopedIndex(t){const i=this.getNumItems();return this.options.loop&&(t>i-1&&(t-=i),t<0&&(t+=i)),b(t,0,i-1)}appendHeavy(){this.mainScroll.itemHolders.forEach(t=>{var i;(i=t.slide)===null||i===void 0||i.appendHeavy()})}goTo(t){this.mainScroll.moveIndexBy(this.getLoopedIndex(t)-this.potentialIndex)}next(){this.goTo(this.potentialIndex+1)}prev(){this.goTo(this.potentialIndex-1)}zoomTo(...t){var i;(i=this.currSlide)===null||i===void 0||i.zoomTo(...t)}toggleZoom(){var t;(t=this.currSlide)===null||t===void 0||t.toggleZoom()}close(){!this.opener.isOpen||this.isDestroying||(this.isDestroying=!0,this.dispatch("close"),this.events.removeAll(),this.opener.close())}destroy(){var t;if(!this.isDestroying){this.options.showHideAnimationType="none",this.close();return}this.dispatch("destroy"),this._listeners={},this.scrollWrap&&(this.scrollWrap.ontouchmove=null,this.scrollWrap.ontouchend=null),(t=this.element)===null||t===void 0||t.remove(),this.mainScroll.itemHolders.forEach(i=>{var e;(e=i.slide)===null||e===void 0||e.destroy()}),this.contentLoader.destroy(),this.events.removeAll()}refreshSlideContent(t){this.contentLoader.removeByIndex(t),this.mainScroll.itemHolders.forEach((i,e)=>{var s,n;let o=((s=(n=this.currSlide)===null||n===void 0?void 0:n.index)!==null&&s!==void 0?s:0)-1+e;if(this.canLoop()&&(o=this.getLoopedIndex(o)),o===t&&(this.setContent(i,t,!0),e===1)){var a;this.currSlide=i.slide,(a=i.slide)===null||a===void 0||a.setIsActive(!0)}}),this.dispatch("change")}setContent(t,i,e){if(this.canLoop()&&(i=this.getLoopedIndex(i)),t.slide){if(t.slide.index===i&&!e)return;t.slide.destroy(),t.slide=void 0}if(!this.canLoop()&&(i<0||i>=this.getNumItems()))return;const s=this.getItemData(i);t.slide=new j(s,i,this),i===this.currIndex&&(this.currSlide=t.slide),t.slide.append(t.el)}getViewportCenterPoint(){return{x:this.viewportSize.x/2,y:this.viewportSize.y/2}}updateSize(t){if(this.isDestroying)return;const i=B(this.options,this);!t&&x(i,this._prevViewportSize)||(p(this._prevViewportSize,i),this.dispatch("beforeResize"),p(this.viewportSize,this._prevViewportSize),this._updatePageScrollOffset(),this.dispatch("viewportSize"),this.mainScroll.resize(this.opener.isOpen),!this.hasMouse&&window.matchMedia("(any-hover: hover)").matches&&this.mouseDetected(),this.dispatch("resize"))}applyBgOpacity(t){this.bgOpacity=Math.max(t,0),this.bg&&(this.bg.style.opacity=String(this.bgOpacity*this.options.bgOpacity))}mouseDetected(){if(!this.hasMouse){var t;this.hasMouse=!0,(t=this.element)===null||t===void 0||t.classList.add("pswp--has_mouse")}}_handlePageResize(){this.updateSize(),/iPhone|iPad|iPod/i.test(window.navigator.userAgent)&&setTimeout(()=>{this.updateSize()},500)}_updatePageScrollOffset(){this.setScrollOffset(0,window.pageYOffset)}setScrollOffset(t,i){this.offset.x=t,this.offset.y=i,this.dispatch("updateScrollOffset")}_createMainStructure(){this.element=f("pswp","div"),this.element.setAttribute("tabindex","-1"),this.element.setAttribute("role","dialog"),this.template=this.element,this.bg=f("pswp__bg","div",this.element),this.scrollWrap=f("pswp__scroll-wrap","section",this.element),this.container=f("pswp__container","div",this.scrollWrap),this.scrollWrap.setAttribute("aria-roledescription","carousel"),this.container.setAttribute("aria-live","off"),this.container.setAttribute("id","pswp__items"),this.mainScroll.appendHolders(),this.ui=new zt(this),this.ui.init(),(this.options.appendToEl||document.body).appendChild(this.element)}getThumbBounds(){return Zt(this.currIndex,this.currSlide?this.currSlide.data:this._initialItemData,this)}canLoop(){return this.options.loop&&this.getNumItems()>2}_prepareOptions(t){return window.matchMedia("(prefers-reduced-motion), (update: slow)").matches&&(t.showHideAnimationType="none",t.zoomAnimationDuration=0),{...Vt,...t}}}export{$t as default}; diff --git a/_astro/preload-helper.BlTxHScW.js b/_astro/preload-helper.BlTxHScW.js new file mode 100644 index 0000000..744484c --- /dev/null +++ b/_astro/preload-helper.BlTxHScW.js @@ -0,0 +1 @@ +const p="modulepreload",v=function(l){return"/"+l},d={},y=function(f,c,E){let i=Promise.resolve();if(c&&c.length>0){let r=function(e){return Promise.all(e.map(o=>Promise.resolve(o).then(s=>({status:"fulfilled",value:s}),s=>({status:"rejected",reason:s}))))};document.getElementsByTagName("link");const t=document.querySelector("meta[property=csp-nonce]"),u=t?.nonce||t?.getAttribute("nonce");i=r(c.map(e=>{if(e=v(e),e in d)return;d[e]=!0;const o=e.endsWith(".css"),s=o?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${e}"]${s}`))return;const n=document.createElement("link");if(n.rel=o?"stylesheet":p,o||(n.as="script"),n.crossOrigin="",n.href=e,u&&n.setAttribute("nonce",u),document.head.appendChild(n),o)return new Promise((m,h)=>{n.addEventListener("load",m),n.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${e}`)))})}))}function a(r){const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=r,window.dispatchEvent(t),!t.defaultPrevented)throw r}return i.then(r=>{for(const t of r||[])t.status==="rejected"&&a(t.reason);return f().catch(a)})};export{y as _}; diff --git a/_astro/render.nCRzbnaE.js b/_astro/render.nCRzbnaE.js new file mode 100644 index 0000000..f1ed4a7 --- /dev/null +++ b/_astro/render.nCRzbnaE.js @@ -0,0 +1,2 @@ +let Ve=!1,cn=!1;function gr(){Ve=!0}const yr=1,wr=2,mr=4,Er=8,br=16,Tr=1,Ar=2,Sr=4,Rr=8,kr=16,_n=1,dn=2,Et="[",bt="[!",Tt="]",ve={},A=Symbol(),xr="http://www.w3.org/1999/xhtml",Or="@attach",We=!1;var hn=Array.isArray,vn=Array.prototype.indexOf,pe=Array.prototype.includes,pn=Array.from,gn=Object.defineProperty,Ae=Object.getOwnPropertyDescriptor,yn=Object.getOwnPropertyDescriptors,wn=Object.prototype,mn=Array.prototype,At=Object.getPrototypeOf,ct=Object.isExtensible;function Nr(e){return e()}function En(e){for(var t=0;t{e=r,t=s});return{promise:n,resolve:e,reject:t}}const S=2,Fe=4,xe=8,tt=1<<24,K=16,H=32,_e=64,nt=128,P=512,m=1024,R=2048,B=4096,L=8192,Z=16384,qe=32768,ke=65536,_t=1<<17,Rt=1<<18,me=1<<19,kt=1<<20,Pr=1<<25,ue=32768,Ge=1<<21,rt=1<<22,J=1<<23,le=Symbol("$state"),Cr=Symbol("legacy props"),Dr=Symbol(""),he=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},He=3,Oe=8;function bn(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Tn(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function An(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Sn(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Rn(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function kn(){throw new Error("https://svelte.dev/e/hydration_failed")}function Mr(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function xn(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function On(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Nn(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Pn(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function Be(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function Fr(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Cn(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let T=!1;function Ce(e){T=e}let g;function V(e){if(e===null)throw Be(),ve;return g=e}function xt(){return V(z(g))}function Lr(e){if(T){if(z(g)!==null)throw Be(),ve;g=e}}function Dn(e=1){if(T){for(var t=e,n=g;t--;)n=z(n);g=n}}function In(e=!0){for(var t=0,n=g;;){if(n.nodeType===Oe){var r=n.data;if(r===Tt){if(t===0)return n;t-=1}else(r===Et||r===bt)&&(t+=1)}var s=z(n);e&&n.remove(),n=s}}function jr(e){if(!e||e.nodeType!==Oe)throw Be(),ve;return e.data}function Ot(e){return e===this.v}function Mn(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Nt(e){return!Mn(e,this.v)}let E=null;function ge(e){E=e}function Fn(e,t=!1,n){E={p:E,i:!1,c:null,e:null,s:e,x:null,l:Ve&&!t?{s:null,u:null,$:[]}:null}}function Ln(e){var t=E,n=t.e;if(n!==null){t.e=null;for(var r of n)zt(r)}return t.i=!0,E=t.p,{}}function Ne(){return!Ve||E!==null&&E.l===null}let ie=[];function Pt(){var e=ie;ie=[],En(e)}function Q(e){if(ie.length===0&&!Se){var t=ie;queueMicrotask(()=>{t===ie&&Pt()})}ie.push(e)}function jn(){for(;ie.length>0;)Pt()}function Ct(e){var t=p;if(t===null)return h.f|=J,e;if((t.f&qe)===0){if((t.f&nt)===0)throw e;t.b.error(e)}else ye(e,t)}function ye(e,t){for(;t!==null;){if((t.f&nt)!==0)try{t.b.error(e);return}catch(n){e=n}t=t.parent}throw e}const Vn=-7169;function w(e,t){e.f=e.f&Vn|t}function st(e){(e.f&P)!==0||e.deps===null?w(e,m):w(e,B)}function Dt(e){if(e!==null)for(const t of e)(t.f&S)===0||(t.f&ue)===0||(t.f^=ue,Dt(t.deps))}function It(e,t,n){(e.f&R)!==0?t.add(e):(e.f&B)!==0&&n.add(e),Dt(e.deps),w(e,m)}const De=new Set;let y=null,dt=null,I=null,O=[],Ye=null,Ke=!1,Se=!1;class ee{committed=!1;current=new Map;previous=new Map;#t=new Set;#u=new Set;#n=0;#l=0;#i=null;#r=new Set;#e=new Set;skipped_effects=new Set;is_fork=!1;#s=!1;is_deferred(){return this.is_fork||this.#l>0}process(t){O=[],this.apply();var n=[],r=[];for(const s of t)this.#a(s,n,r);if(this.is_deferred()){this.#f(r),this.#f(n);for(const s of this.skipped_effects)jt(s)}else{for(const s of this.#t)s();this.#t.clear(),this.#n===0&&this.#o(),dt=this,y=null,ht(r),ht(n),dt=null,this.#i?.resolve()}I=null}#a(t,n,r){t.f^=m;for(var s=t.first,i=null;s!==null;){var a=s.f,l=(a&(H|_e))!==0,f=l&&(a&m)!==0,u=f||(a&L)!==0||this.skipped_effects.has(s);if(!u&&s.fn!==null){l?s.f^=m:i!==null&&(a&(Fe|xe|tt))!==0?i.b.defer_effect(s):(a&Fe)!==0?n.push(s):Ee(s)&&((a&K)!==0&&this.#e.add(s),we(s));var c=s.first;if(c!==null){s=c;continue}}var _=s.parent;for(s=s.next;s===null&&_!==null;)_===i&&(i=null),s=_.next,_=_.parent}}#f(t){for(var n=0;n0){if(Mt(),y!==null&&y!==this)return}else this.#n===0&&this.process([]);this.deactivate()}discard(){for(const t of this.#u)t(this);this.#u.clear()}#o(){if(De.size>1){this.previous.clear();var t=I,n=!0;for(const s of De){if(s===this){n=!1;continue}const i=[];for(const[l,f]of this.current){if(s.current.has(l))if(n&&f!==s.current.get(l))s.current.set(l,f);else continue;i.push(l)}if(i.length===0)continue;const a=[...s.current.keys()].filter(l=>!this.current.has(l));if(a.length>0){var r=O;O=[];const l=new Set,f=new Map;for(const u of i)Ft(u,a,l,f);if(O.length>0){y=s,s.apply();for(const u of O)s.#a(u,[],[]);s.deactivate()}O=r}}y=null,I=t}this.committed=!0,De.delete(this)}increment(t){this.#n+=1,t&&(this.#l+=1)}decrement(t){this.#n-=1,t&&(this.#l-=1),!this.#s&&(this.#s=!0,Q(()=>{this.#s=!1,this.is_deferred()?O.length>0&&this.flush():this.revive()}))}revive(){for(const t of this.#r)this.#e.delete(t),w(t,R),G(t);for(const t of this.#e)w(t,B),G(t);this.flush()}oncommit(t){this.#t.add(t)}ondiscard(t){this.#u.add(t)}settled(){return(this.#i??=St()).promise}static ensure(){if(y===null){const t=y=new ee;De.add(y),Se||Q(()=>{y===t&&t.flush()})}return y}apply(){}}function qn(e){var t=Se;Se=!0;try{for(var n;;){if(jn(),O.length===0&&(y?.flush(),O.length===0))return Ye=null,n;Mt()}}finally{Se=t}}function Mt(){Ke=!0;var e=null;try{for(var t=0;O.length>0;){var n=ee.ensure();if(t++>1e3){var r,s;Hn()}n.process(O),te.clear()}}finally{Ke=!1,Ye=null}}function Hn(){try{Rn()}catch(e){ye(e,Ye)}}let U=null;function ht(e){var t=e.length;if(t!==0){for(var n=0;n0)){te.clear();for(const s of U){if((s.f&(Z|L))!==0)continue;const i=[s];let a=s.parent;for(;a!==null;)U.has(a)&&(U.delete(a),i.push(a)),a=a.parent;for(let l=i.length-1;l>=0;l--){const f=i[l];(f.f&(Z|L))===0&&we(f)}}U.clear()}}U=null}}function Ft(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const s of e.reactions){const i=s.f;(i&S)!==0?Ft(s,t,n,r):(i&(rt|K))!==0&&(i&R)===0&&Lt(s,t,r)&&(w(s,R),G(s))}}function Lt(e,t,n){const r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const s of e.deps){if(pe.call(t,s))return!0;if((s.f&S)!==0&&Lt(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function G(e){for(var t=Ye=e;t.parent!==null;){t=t.parent;var n=t.f;if(Ke&&t===p&&(n&K)!==0&&(n&Rt)===0)return;if((n&(_e|H))!==0){if((n&m)===0)return;t.f^=m}}O.push(t)}function jt(e){if(!((e.f&H)!==0&&(e.f&m)!==0)){w(e,m);for(var t=e.first;t!==null;)jt(t),t=t.next}}function Bn(e){let t=0,n=Pe(0),r;return()=>{lt()&&(W(n),ft(()=>(t===0&&(r=ut(()=>e(()=>Re(n)))),t+=1,()=>{Q(()=>{t-=1,t===0&&(r?.(),r=void 0,Re(n))})})))}}var Yn=ke|me|nt;function Un(e,t,n){new $n(e,t,n)}class $n{parent;is_pending=!1;#t;#u=T?g:null;#n;#l;#i;#r=null;#e=null;#s=null;#a=null;#f=null;#o=0;#c=0;#h=!1;#d=!1;#v=new Set;#p=new Set;#_=null;#E=Bn(()=>(this.#_=Pe(this.#o),()=>{this.#_=null}));constructor(t,n,r){this.#t=t,this.#n=n,this.#l=r,this.parent=p.b,this.is_pending=!!this.#n.pending,this.#i=rr(()=>{if(p.b=this,T){const i=this.#u;xt(),i.nodeType===Oe&&i.data===bt?this.#T():(this.#b(),this.#c===0&&(this.is_pending=!1))}else{var s=this.#w();try{this.#r=se(()=>r(s))}catch(i){this.error(i)}this.#c>0?this.#y():this.is_pending=!1}return()=>{this.#f?.remove()}},Yn),T&&(this.#t=g)}#b(){try{this.#r=se(()=>this.#l(this.#t))}catch(t){this.error(t)}}#T(){const t=this.#n.pending;t&&(this.#e=se(()=>t(this.#t)),Q(()=>{var n=this.#w();this.#r=this.#g(()=>(ee.ensure(),se(()=>this.#l(n)))),this.#c>0?this.#y():(Ie(this.#e,()=>{this.#e=null}),this.is_pending=!1)}))}#w(){var t=this.#t;return this.is_pending&&(this.#f=oe(),this.#t.before(this.#f),t=this.#f),t}defer_effect(t){It(t,this.#v,this.#p)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#g(t){var n=p,r=h,s=E;q(this.#i),D(this.#i),ge(this.#i.ctx);try{return t()}catch(i){return Ct(i),null}finally{q(n),D(r),ge(s)}}#y(){const t=this.#n.pending;this.#r!==null&&(this.#a=document.createDocumentFragment(),this.#a.append(this.#f),ar(this.#r,this.#a)),this.#e===null&&(this.#e=se(()=>t(this.#t)))}#m(t){if(!this.has_pending_snippet()){this.parent&&this.parent.#m(t);return}if(this.#c+=t,this.#c===0){this.is_pending=!1;for(const n of this.#v)w(n,R),G(n);for(const n of this.#p)w(n,B),G(n);this.#v.clear(),this.#p.clear(),this.#e&&Ie(this.#e,()=>{this.#e=null}),this.#a&&(this.#t.before(this.#a),this.#a=null)}}update_pending_count(t){this.#m(t),this.#o+=t,!(!this.#_||this.#h)&&(this.#h=!0,Q(()=>{this.#h=!1,this.#_&&Le(this.#_,this.#o)}))}get_effect_pending(){return this.#E(),W(this.#_)}error(t){var n=this.#n.onerror;let r=this.#n.failed;if(this.#d||!n&&!r)throw t;this.#r&&(j(this.#r),this.#r=null),this.#e&&(j(this.#e),this.#e=null),this.#s&&(j(this.#s),this.#s=null),T&&(V(this.#u),Dn(),V(In()));var s=!1,i=!1;const a=()=>{if(s){Cn();return}s=!0,i&&Pn(),ee.ensure(),this.#o=0,this.#s!==null&&Ie(this.#s,()=>{this.#s=null}),this.is_pending=this.has_pending_snippet(),this.#r=this.#g(()=>(this.#d=!1,se(()=>this.#l(this.#t)))),this.#c>0?this.#y():this.is_pending=!1};Q(()=>{try{i=!0,n?.(t,a),i=!1}catch(l){ye(l,this.#i&&this.#i.parent)}r&&(this.#s=this.#g(()=>{ee.ensure(),this.#d=!0;try{return se(()=>{r(this.#t,()=>t,()=>a)})}catch(l){return ye(l,this.#i.parent),null}finally{this.#d=!1}}))})}}function Wn(e,t,n,r){const s=Ne()?Vt:zn;var i=e.filter(o=>!o.settled);if(n.length===0&&i.length===0){r(t.map(s));return}var a=y,l=p,f=Gn(),u=i.length===1?i[0].promise:i.length>1?Promise.all(i.map(o=>o.promise)):null;function c(o){f();try{r(o)}catch(d){(l.f&Z)===0&&ye(d,l)}a?.deactivate(),ze()}if(n.length===0){u.then(()=>c(t.map(s)));return}function _(){f(),Promise.all(n.map(o=>Kn(o))).then(o=>c([...t.map(s),...o])).catch(o=>ye(o,l))}u?u.then(_):_()}function Gn(){var e=p,t=h,n=E,r=y;return function(i=!0){q(e),D(t),ge(n),i&&r?.activate()}}function ze(){q(null),D(null),ge(null)}function Vt(e){var t=S|R,n=h!==null&&(h.f&S)!==0?h:null;return p!==null&&(p.f|=me),{ctx:E,deps:null,effects:null,equals:Ot,f:t,fn:e,reactions:null,rv:0,v:A,wv:0,parent:n??p,ac:null}}function Kn(e,t,n){let r=p;r===null&&bn();var s=r.b,i=void 0,a=Pe(A),l=!h,f=new Map;return nr(()=>{var u=St();i=u.promise;try{Promise.resolve(e()).then(u.resolve,u.reject).then(()=>{c===y&&c.committed&&c.deactivate(),ze()})}catch(d){u.reject(d),ze()}var c=y;if(l){var _=s.is_rendered();s.update_pending_count(1),c.increment(_),f.get(c)?.reject(he),f.delete(c),f.set(c,u)}const o=(d,v=void 0)=>{if(c.activate(),v)v!==he&&(a.f|=J,Le(a,v));else{(a.f&J)!==0&&(a.f^=J),Le(a,d);for(const[b,Y]of f){if(f.delete(b),b===c)break;Y.reject(he)}}l&&(s.update_pending_count(-1),c.decrement(_))};u.promise.then(o,d=>o(null,d||"unknown"))}),Kt(()=>{for(const u of f.values())u.reject(he)}),new Promise(u=>{function c(_){function o(){_===i?u(a):c(i)}_.then(o,o)}c(i)})}function zn(e){const t=Vt(e);return t.equals=Nt,t}function qt(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;nW(e))),t}function $(e,t,n=!1){h!==null&&(!M||(h.f&_t)!==0)&&Ne()&&(h.f&(S|K|rt|_t))!==0&&(C===null||!pe.call(C,e))&&Nn();let r=n?be(t):t;return Le(e,r)}function Le(e,t){if(!e.equals(t)){var n=e.v;ce?te.set(e,t):te.set(e,n),e.v=t;var r=ee.ensure();if(r.capture(e,n),(e.f&S)!==0){const s=e;(e.f&R)!==0&&it(s),st(s)}e.wv=nn(),Yt(e,R),Ne()&&p!==null&&(p.f&m)!==0&&(p.f&(H|_e))===0&&(N===null?fr([e]):N.push(e)),!r.is_fork&&Xe.size>0&&!Bt&&Zn()}return t}function Zn(){Bt=!1;for(const e of Xe)(e.f&m)!==0&&w(e,B),Ee(e)&&we(e);Xe.clear()}function Hr(e,t=1){var n=W(e),r=t===1?n++:n--;return $(e,n),r}function Re(e){$(e,e.v+1)}function Yt(e,t){var n=e.reactions;if(n!==null)for(var r=Ne(),s=n.length,i=0;i{if(fe===i)return l();var f=h,u=fe;D(null),wt(i);var c=l();return D(f),wt(u),c};return r&&n.set("length",X(e.length)),new Proxy(e,{defineProperty(l,f,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&xn();var c=n.get(f);return c===void 0?c=a(()=>{var _=X(u.value);return n.set(f,_),_}):$(c,u.value,!0),!0},deleteProperty(l,f){var u=n.get(f);if(u===void 0){if(f in l){const c=a(()=>X(A));n.set(f,c),Re(s)}}else $(u,A),Re(s);return!0},get(l,f,u){if(f===le)return e;var c=n.get(f),_=f in l;if(c===void 0&&(!_||Ae(l,f)?.writable)&&(c=a(()=>{var d=be(_?l[f]:A),v=X(d);return v}),n.set(f,c)),c!==void 0){var o=W(c);return o===A?void 0:o}return Reflect.get(l,f,u)},getOwnPropertyDescriptor(l,f){var u=Reflect.getOwnPropertyDescriptor(l,f);if(u&&"value"in u){var c=n.get(f);c&&(u.value=W(c))}else if(u===void 0){var _=n.get(f),o=_?.v;if(_!==void 0&&o!==A)return{enumerable:!0,configurable:!0,value:o,writable:!0}}return u},has(l,f){if(f===le)return!0;var u=n.get(f),c=u!==void 0&&u.v!==A||Reflect.has(l,f);if(u!==void 0||p!==null&&(!c||Ae(l,f)?.writable)){u===void 0&&(u=a(()=>{var o=c?be(l[f]):A,d=X(o);return d}),n.set(f,u));var _=W(u);if(_===A)return!1}return c},set(l,f,u,c){var _=n.get(f),o=f in l;if(r&&f==="length")for(var d=u;d<_.v;d+=1){var v=n.get(d+"");v!==void 0?$(v,A):d in l&&(v=a(()=>X(A)),n.set(d+"",v))}if(_===void 0)(!o||Ae(l,f)?.writable)&&(_=a(()=>X(void 0)),$(_,be(u)),n.set(f,_));else{o=_.v!==A;var b=a(()=>be(u));$(_,b)}var Y=Reflect.getOwnPropertyDescriptor(l,f);if(Y?.set&&Y.set.call(c,u),!o){if(r&&typeof f=="string"){var ot=n.get("length"),$e=Number(f);Number.isInteger($e)&&$e>=ot.v&&$(ot,$e+1)}Re(s)}return!0},ownKeys(l){W(s);var f=Reflect.ownKeys(l).filter(_=>{var o=n.get(_);return o===void 0||o.v!==A});for(var[u,c]of n)c.v!==A&&!(u in l)&&f.push(u);return f},setPrototypeOf(){On()}})}function vt(e){try{if(e!==null&&typeof e=="object"&&le in e)return e[le]}catch{}return e}function Br(e,t){return Object.is(vt(e),vt(t))}var pt,Ut,$t,Wt;function Ze(){if(pt===void 0){pt=window,Ut=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;$t=Ae(t,"firstChild").get,Wt=Ae(t,"nextSibling").get,ct(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),ct(n)&&(n.__t=void 0)}}function oe(e=""){return document.createTextNode(e)}function re(e){return $t.call(e)}function z(e){return Wt.call(e)}function Yr(e,t){if(!T)return re(e);var n=re(g);if(n===null)n=g.appendChild(oe());else if(t&&n.nodeType!==He){var r=oe();return n?.before(r),V(r),r}return t&&at(n),V(n),n}function Ur(e,t=!1){if(!T){var n=re(e);return n instanceof Comment&&n.data===""?z(n):n}if(t){if(g?.nodeType!==He){var r=oe();return g?.before(r),V(r),r}at(g)}return g}function $r(e,t=1,n=!1){let r=T?g:e;for(var s;t--;)s=r,r=z(r);if(!T)return r;if(n){if(r?.nodeType!==He){var i=oe();return r===null?s?.after(i):r.before(i),V(i),i}at(r)}return V(r),r}function Jn(e){e.textContent=""}function Wr(){return!1}function at(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===He;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function Gr(e,t){if(t){const n=document.body;e.autofocus=!0,Q(()=>{document.activeElement===n&&e.focus()})}}let gt=!1;function Qn(){gt||(gt=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function Ue(e){var t=h,n=p;D(null),q(null);try{return e()}finally{D(t),q(n)}}function Kr(e,t,n,r=n){e.addEventListener(t,()=>Ue(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),Qn()}function Gt(e){p===null&&(h===null&&Sn(),An()),ce&&Tn()}function er(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function F(e,t,n){var r=p;r!==null&&(r.f&L)!==0&&(e|=L);var s={ctx:E,deps:null,nodes:null,f:e|R|P,first:null,fn:t,last:null,next:null,parent:r,b:r&&r.b,prev:null,teardown:null,wv:0,ac:null};if(n)try{we(s),s.f|=qe}catch(l){throw j(s),l}else t!==null&&G(s);var i=s;if(n&&i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&(i.f&me)===0&&(i=i.first,(e&K)!==0&&(e&ke)!==0&&i!==null&&(i.f|=ke)),i!==null&&(i.parent=r,r!==null&&er(i,r),h!==null&&(h.f&S)!==0&&(e&_e)===0)){var a=h;(a.effects??=[]).push(i)}return s}function lt(){return h!==null&&!M}function Kt(e){const t=F(xe,null,!1);return w(t,m),t.teardown=e,t}function zr(e){Gt();var t=p.f,n=!h&&(t&H)!==0&&(t&qe)===0;if(n){var r=E;(r.e??=[]).push(e)}else return zt(e)}function zt(e){return F(Fe|kt,e,!1)}function Xr(e){return Gt(),F(xe|kt,e,!0)}function tr(e){ee.ensure();const t=F(_e|me,e,!0);return(n={})=>new Promise(r=>{n.outro?Ie(t,()=>{j(t),r(void 0)}):(j(t),r(void 0))})}function Zr(e){return F(Fe,e,!1)}function Jr(e,t){var n=E,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=ft(()=>{e(),!r.ran&&(r.ran=!0,ut(t))})}function Qr(){var e=E;ft(()=>{for(var t of e.l.$){t.deps();var n=t.effect;(n.f&m)!==0&&n.deps!==null&&w(n,B),Ee(n)&&we(n),t.ran=!1}})}function nr(e){return F(rt|me,e,!0)}function ft(e,t=0){return F(xe|t,e,!0)}function es(e,t=[],n=[],r=[]){Wn(r,t,n,s=>{F(xe,()=>e(...s.map(W)),!0)})}function rr(e,t=0){var n=F(K|t,e,!0);return n}function ts(e,t=0){var n=F(tt|t,e,!0);return n}function se(e){return F(H|me,e,!0)}function Xt(e){var t=e.teardown;if(t!==null){const n=ce,r=h;yt(!0),D(null);try{t.call(null)}finally{yt(n),D(r)}}}function Zt(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&Ue(()=>{s.abort(he)});var r=n.next;(n.f&_e)!==0?n.parent=null:j(n,t),n=r}}function sr(e){for(var t=e.first;t!==null;){var n=t.next;(t.f&H)===0&&j(t),t=n}}function j(e,t=!0){var n=!1;(t||(e.f&Rt)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(ir(e.nodes.start,e.nodes.end),n=!0),Zt(e,t&&!n),je(e,0),w(e,Z);var r=e.nodes&&e.nodes.t;if(r!==null)for(const i of r)i.stop();Xt(e);var s=e.parent;s!==null&&s.first!==null&&Jt(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=null}function ir(e,t){for(;e!==null;){var n=e===t?null:z(e);e.remove(),e=n}}function Jt(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function Ie(e,t,n=!0){var r=[];Qt(e,r,!0);var s=()=>{n&&j(e),t&&t()},i=r.length;if(i>0){var a=()=>--i||s();for(var l of r)l.out(a)}else s()}function Qt(e,t,n){if((e.f&L)===0){e.f^=L;var r=e.nodes&&e.nodes.t;if(r!==null)for(const l of r)(l.is_global||n)&&t.push(l);for(var s=e.first;s!==null;){var i=s.next,a=(s.f&ke)!==0||(s.f&H)!==0&&(e.f&K)!==0;Qt(s,t,a?n:!1),s=i}}}function ns(e){en(e,!0)}function en(e,t){if((e.f&L)!==0){e.f^=L,(e.f&m)===0&&(w(e,R),G(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&ke)!==0||(n.f&H)!==0;en(n,s?t:!1),n=r}var i=e.nodes&&e.nodes.t;if(i!==null)for(const a of i)(a.is_global||t)&&a.in()}}function ar(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:z(n);t.append(n),n=s}}let Me=!1,ce=!1;function yt(e){ce=e}let h=null,M=!1;function D(e){h=e}let p=null;function q(e){p=e}let C=null;function lr(e){h!==null&&(C===null?C=[e]:C.push(e))}let k=null,x=0,N=null;function fr(e){N=e}let tn=1,ae=0,fe=ae;function wt(e){fe=e}function nn(){return++tn}function Ee(e){var t=e.f;if((t&R)!==0)return!0;if(t&S&&(e.f&=~ue),(t&B)!==0){for(var n=e.deps,r=n.length,s=0;se.wv)return!0}(t&P)!==0&&I===null&&w(e,m)}return!1}function rn(e,t,n=!0){var r=e.reactions;if(r!==null&&!(C!==null&&pe.call(C,e)))for(var s=0;s{e.ac.abort(he)}),e.ac=null);try{e.f|=Ge;var c=e.fn,_=c(),o=e.deps,d=y?.is_fork;if(k!==null){var v;if(d||je(e,x),o!==null&&x>0)for(o.length=x+k.length,v=0;vn?.call(this,i))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?Q(()=>{t.addEventListener(e,s,r)}):t.addEventListener(e,s,r),s}function is(e,t,n,r,s){var i={capture:r,passive:s},a=or(e,t,n,i);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Kt(()=>{t.removeEventListener(e,a,i)})}function as(e){for(var t=0;t{throw Y});throw o}}finally{e.__root=t,delete e.currentTarget,D(c),q(_)}}}function un(e){var t=document.createElement("template");return t.innerHTML=e.replaceAll("",""),t.content}function ne(e,t){var n=p;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function ls(e,t){var n=(t&_n)!==0,r=(t&dn)!==0,s,i=!e.startsWith("");return()=>{if(T)return ne(g,null),g;s===void 0&&(s=un(i?e:""+e),n||(s=re(s)));var a=r||Ut?document.importNode(s,!0):s.cloneNode(!0);if(n){var l=re(a),f=a.lastChild;ne(l,f)}else ne(a,a);return a}}function cr(e,t,n="svg"){var r=!e.startsWith(""),s=`<${n}>${r?e:""+e}`,i;return()=>{if(T)return ne(g,null),g;if(!i){var a=un(s),l=re(a);i=re(l)}var f=i.cloneNode(!0);return ne(f,f),f}}function fs(e,t){return cr(e,t,"svg")}function us(){if(T)return ne(g,null),g;var e=document.createDocumentFragment(),t=document.createComment(""),n=oe();return e.append(t,n),ne(t,n),e}function os(e,t){if(T){var n=p;((n.f&qe)===0||n.nodes.end===null)&&(n.nodes.end=g),xt();return}e!==null&&e.before(t)}function cs(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const _r=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function _s(e){return _r.includes(e)}const dr={formnovalidate:"formNoValidate",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",readonly:"readOnly",defaultvalue:"defaultValue",defaultchecked:"defaultChecked",srcobject:"srcObject",novalidate:"noValidate",allowfullscreen:"allowFullscreen",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback"};function ds(e){return e=e.toLowerCase(),dr[e]??e}const hr=["touchstart","touchmove"];function vr(e){return hr.includes(e)}function hs(e,t){var n=t==null?"":typeof t=="object"?t+"":t;n!==(e.__t??=e.nodeValue)&&(e.__t=n,e.nodeValue=n+"")}function pr(e,t){return on(e,t)}function vs(e,t){Ze(),t.intro=t.intro??!1;const n=t.target,r=T,s=g;try{for(var i=re(n);i&&(i.nodeType!==Oe||i.data!==Et);)i=z(i);if(!i)throw ve;Ce(!0),V(i);const a=on(e,{...t,anchor:i});return Ce(!1),a}catch(a){if(a instanceof Error&&a.message.split(` +`).some(l=>l.startsWith("https://svelte.dev/e/")))throw a;return a!==ve&&console.warn("Failed to hydrate: ",a),t.recover===!1&&kn(),Ze(),Jn(n),Ce(!1),pr(e,t)}finally{Ce(r),V(s)}}const de=new Map;function on(e,{target:t,anchor:n,props:r={},events:s,context:i,intro:a=!0}){Ze();var l=new Set,f=_=>{for(var o=0;o<_.length;o++){var d=_[o];if(!l.has(d)){l.add(d);var v=vr(d);t.addEventListener(d,Te,{passive:v});var b=de.get(d);b===void 0?(document.addEventListener(d,Te,{passive:v}),de.set(d,1)):de.set(d,b+1)}}};f(pn(fn)),Qe.add(f);var u=void 0,c=tr(()=>{var _=n??t.appendChild(oe());return Un(_,{pending:()=>{}},o=>{if(i){Fn({});var d=E;d.c=i}if(s&&(r.$$events=s),T&&ne(o,null),u=e(o,r)||{},T&&(p.nodes.end=g,g===null||g.nodeType!==Oe||g.data!==Tt))throw Be(),ve;i&&Ln()}),()=>{for(var o of l){t.removeEventListener(o,Te);var d=de.get(o);--d===0?(document.removeEventListener(o,Te),de.delete(o)):de.set(o,d)}Qe.delete(f),_!==n&&_.parentNode?.removeChild(_)}});return et.set(u,c),u}let et=new WeakMap;function ps(e,t){const n=et.get(e);return n?(et.delete(e),n(t)):Promise.resolve()}export{as as $,Ce as A,g as B,Oe as C,Tt as D,mr as E,Le as F,y as G,bt as H,Pr as I,se as J,Wr as K,zn as L,hn as M,pn as N,yr as O,br as P,Pe as Q,wr as R,ns as S,Ie as T,L as U,Q as V,H as W,Er as X,Jn as Y,j as Z,z as _,os as a,us as a0,X as a1,be as a2,Kr as a3,rs as a4,ft as a5,dt as a6,un as a7,ne as a8,Kt as a9,Or as aA,cs as aB,or as aC,Gr as aD,ds as aE,A as aF,_s as aG,Xr as aH,En as aI,Nr as aJ,Vt as aK,Ae as aL,Mr as aM,Sr as aN,Z as aO,Rr as aP,Ar as aQ,Tr as aR,q as aS,kr as aT,ce as aU,le as aV,Cr as aW,ps as aa,vs as ab,pr as ac,ar as ad,ke as ae,p as af,ir as ag,Be as ah,ve as ai,qr as aj,Hr as ak,fs as al,gr as am,E as an,Ve as ao,zr as ap,ts as aq,Zr as ar,Fr as as,Br as at,xr as au,At as av,yn as aw,Qn as ax,Dr as ay,Wn as az,Fn as b,Yr as c,$r as d,hs as e,ls as f,W as g,ss as h,Qr as i,Ur as j,is as k,Jr as l,Vr as m,oe as n,rr as o,Ln as p,T as q,Lr as r,$ as s,es as t,ut as u,V as v,re as w,xt as x,jr as y,In as z}; diff --git a/_astro/roboto-cyrillic-400-normal.DAIM1_dR.woff2 b/_astro/roboto-cyrillic-400-normal.DAIM1_dR.woff2 new file mode 100644 index 0000000..b0ed6d6 Binary files /dev/null and b/_astro/roboto-cyrillic-400-normal.DAIM1_dR.woff2 differ diff --git a/_astro/roboto-cyrillic-400-normal.DZJji7Rx.woff b/_astro/roboto-cyrillic-400-normal.DZJji7Rx.woff new file mode 100644 index 0000000..e94b00e Binary files /dev/null and b/_astro/roboto-cyrillic-400-normal.DZJji7Rx.woff differ diff --git a/_astro/roboto-cyrillic-500-normal.BI4HuXre.woff b/_astro/roboto-cyrillic-500-normal.BI4HuXre.woff new file mode 100644 index 0000000..9a6cc9f Binary files /dev/null and b/_astro/roboto-cyrillic-500-normal.BI4HuXre.woff differ diff --git a/_astro/roboto-cyrillic-500-normal.hCeO1jFL.woff2 b/_astro/roboto-cyrillic-500-normal.hCeO1jFL.woff2 new file mode 100644 index 0000000..3f43bf8 Binary files /dev/null and b/_astro/roboto-cyrillic-500-normal.hCeO1jFL.woff2 differ diff --git a/_astro/roboto-cyrillic-700-normal.BiSG5NnW.woff2 b/_astro/roboto-cyrillic-700-normal.BiSG5NnW.woff2 new file mode 100644 index 0000000..895e1ed Binary files /dev/null and b/_astro/roboto-cyrillic-700-normal.BiSG5NnW.woff2 differ diff --git a/_astro/roboto-cyrillic-700-normal.KqaQ5bNp.woff b/_astro/roboto-cyrillic-700-normal.KqaQ5bNp.woff new file mode 100644 index 0000000..9a881bb Binary files /dev/null and b/_astro/roboto-cyrillic-700-normal.KqaQ5bNp.woff differ diff --git a/_astro/roboto-cyrillic-ext-400-normal.DtZHuW6i.woff b/_astro/roboto-cyrillic-ext-400-normal.DtZHuW6i.woff new file mode 100644 index 0000000..edf8b5d Binary files /dev/null and b/_astro/roboto-cyrillic-ext-400-normal.DtZHuW6i.woff differ diff --git a/_astro/roboto-cyrillic-ext-400-normal.DzMWdK87.woff2 b/_astro/roboto-cyrillic-ext-400-normal.DzMWdK87.woff2 new file mode 100644 index 0000000..1a1ed7c Binary files /dev/null and b/_astro/roboto-cyrillic-ext-400-normal.DzMWdK87.woff2 differ diff --git a/_astro/roboto-cyrillic-ext-500-normal.B7rQpwPu.woff2 b/_astro/roboto-cyrillic-ext-500-normal.B7rQpwPu.woff2 new file mode 100644 index 0000000..97ce382 Binary files /dev/null and b/_astro/roboto-cyrillic-ext-500-normal.B7rQpwPu.woff2 differ diff --git a/_astro/roboto-cyrillic-ext-500-normal.C927yMrb.woff b/_astro/roboto-cyrillic-ext-500-normal.C927yMrb.woff new file mode 100644 index 0000000..5bd43e5 Binary files /dev/null and b/_astro/roboto-cyrillic-ext-500-normal.C927yMrb.woff differ diff --git a/_astro/roboto-cyrillic-ext-700-normal.BuQgZIrO.woff b/_astro/roboto-cyrillic-ext-700-normal.BuQgZIrO.woff new file mode 100644 index 0000000..68ef990 Binary files /dev/null and b/_astro/roboto-cyrillic-ext-700-normal.BuQgZIrO.woff differ diff --git a/_astro/roboto-cyrillic-ext-700-normal.UFn0vR9r.woff2 b/_astro/roboto-cyrillic-ext-700-normal.UFn0vR9r.woff2 new file mode 100644 index 0000000..da2e498 Binary files /dev/null and b/_astro/roboto-cyrillic-ext-700-normal.UFn0vR9r.woff2 differ diff --git a/_astro/roboto-greek-400-normal.CcizSnRP.woff b/_astro/roboto-greek-400-normal.CcizSnRP.woff new file mode 100644 index 0000000..cad7165 Binary files /dev/null and b/_astro/roboto-greek-400-normal.CcizSnRP.woff differ diff --git a/_astro/roboto-greek-400-normal.jFM2czAU.woff2 b/_astro/roboto-greek-400-normal.jFM2czAU.woff2 new file mode 100644 index 0000000..de646f8 Binary files /dev/null and b/_astro/roboto-greek-400-normal.jFM2czAU.woff2 differ diff --git a/_astro/roboto-greek-500-normal.BJMS0heP.woff2 b/_astro/roboto-greek-500-normal.BJMS0heP.woff2 new file mode 100644 index 0000000..40f04fa Binary files /dev/null and b/_astro/roboto-greek-500-normal.BJMS0heP.woff2 differ diff --git a/_astro/roboto-greek-500-normal.BLLWU9W-.woff b/_astro/roboto-greek-500-normal.BLLWU9W-.woff new file mode 100644 index 0000000..4698744 Binary files /dev/null and b/_astro/roboto-greek-500-normal.BLLWU9W-.woff differ diff --git a/_astro/roboto-greek-700-normal.BcGn9doz.woff2 b/_astro/roboto-greek-700-normal.BcGn9doz.woff2 new file mode 100644 index 0000000..a026cd6 Binary files /dev/null and b/_astro/roboto-greek-700-normal.BcGn9doz.woff2 differ diff --git a/_astro/roboto-greek-700-normal.D3kmAf0K.woff b/_astro/roboto-greek-700-normal.D3kmAf0K.woff new file mode 100644 index 0000000..5294c9b Binary files /dev/null and b/_astro/roboto-greek-700-normal.D3kmAf0K.woff differ diff --git a/_astro/roboto-latin-400-normal.068yxgMN.woff b/_astro/roboto-latin-400-normal.068yxgMN.woff new file mode 100644 index 0000000..5e9dc3d Binary files /dev/null and b/_astro/roboto-latin-400-normal.068yxgMN.woff differ diff --git a/_astro/roboto-latin-400-normal.CNwBRw8h.woff2 b/_astro/roboto-latin-400-normal.CNwBRw8h.woff2 new file mode 100644 index 0000000..5a5fad1 Binary files /dev/null and b/_astro/roboto-latin-400-normal.CNwBRw8h.woff2 differ diff --git a/_astro/roboto-latin-500-normal.CC5nhZkh.woff b/_astro/roboto-latin-500-normal.CC5nhZkh.woff new file mode 100644 index 0000000..175d5f0 Binary files /dev/null and b/_astro/roboto-latin-500-normal.CC5nhZkh.woff differ diff --git a/_astro/roboto-latin-500-normal.CkrA1NAy.woff2 b/_astro/roboto-latin-500-normal.CkrA1NAy.woff2 new file mode 100644 index 0000000..d8a648a Binary files /dev/null and b/_astro/roboto-latin-500-normal.CkrA1NAy.woff2 differ diff --git a/_astro/roboto-latin-700-normal.CXeAXeti.woff2 b/_astro/roboto-latin-700-normal.CXeAXeti.woff2 new file mode 100644 index 0000000..665cf6a Binary files /dev/null and b/_astro/roboto-latin-700-normal.CXeAXeti.woff2 differ diff --git a/_astro/roboto-latin-700-normal.DUekQERp.woff b/_astro/roboto-latin-700-normal.DUekQERp.woff new file mode 100644 index 0000000..0283168 Binary files /dev/null and b/_astro/roboto-latin-700-normal.DUekQERp.woff differ diff --git a/_astro/roboto-latin-ext-400-normal.ZYmyxeOy.woff2 b/_astro/roboto-latin-ext-400-normal.ZYmyxeOy.woff2 new file mode 100644 index 0000000..47e69cf Binary files /dev/null and b/_astro/roboto-latin-ext-400-normal.ZYmyxeOy.woff2 differ diff --git a/_astro/roboto-latin-ext-400-normal.eTRLN0Nt.woff b/_astro/roboto-latin-ext-400-normal.eTRLN0Nt.woff new file mode 100644 index 0000000..2431877 Binary files /dev/null and b/_astro/roboto-latin-ext-400-normal.eTRLN0Nt.woff differ diff --git a/_astro/roboto-latin-ext-500-normal.C_ARlJGk.woff2 b/_astro/roboto-latin-ext-500-normal.C_ARlJGk.woff2 new file mode 100644 index 0000000..887feec Binary files /dev/null and b/_astro/roboto-latin-ext-500-normal.C_ARlJGk.woff2 differ diff --git a/_astro/roboto-latin-ext-500-normal.FFcS8vBN.woff b/_astro/roboto-latin-ext-500-normal.FFcS8vBN.woff new file mode 100644 index 0000000..a2cd4db Binary files /dev/null and b/_astro/roboto-latin-ext-500-normal.FFcS8vBN.woff differ diff --git a/_astro/roboto-latin-ext-700-normal.70GS1MYH.woff2 b/_astro/roboto-latin-ext-700-normal.70GS1MYH.woff2 new file mode 100644 index 0000000..164501b Binary files /dev/null and b/_astro/roboto-latin-ext-700-normal.70GS1MYH.woff2 differ diff --git a/_astro/roboto-latin-ext-700-normal.BS1OuQqR.woff b/_astro/roboto-latin-ext-700-normal.BS1OuQqR.woff new file mode 100644 index 0000000..9ba4c22 Binary files /dev/null and b/_astro/roboto-latin-ext-700-normal.BS1OuQqR.woff differ diff --git a/_astro/roboto-math-400-normal.B3wgz80t.woff2 b/_astro/roboto-math-400-normal.B3wgz80t.woff2 new file mode 100644 index 0000000..15e1583 Binary files /dev/null and b/_astro/roboto-math-400-normal.B3wgz80t.woff2 differ diff --git a/_astro/roboto-math-400-normal.rzxYvyVt.woff b/_astro/roboto-math-400-normal.rzxYvyVt.woff new file mode 100644 index 0000000..59c94d8 Binary files /dev/null and b/_astro/roboto-math-400-normal.rzxYvyVt.woff differ diff --git a/_astro/roboto-math-500-normal.CFNaIMFC.woff2 b/_astro/roboto-math-500-normal.CFNaIMFC.woff2 new file mode 100644 index 0000000..3564566 Binary files /dev/null and b/_astro/roboto-math-500-normal.CFNaIMFC.woff2 differ diff --git a/_astro/roboto-math-500-normal.DaFX-ZC8.woff b/_astro/roboto-math-500-normal.DaFX-ZC8.woff new file mode 100644 index 0000000..7768cba Binary files /dev/null and b/_astro/roboto-math-500-normal.DaFX-ZC8.woff differ diff --git a/_astro/roboto-math-700-normal.VUAI6Bz2.woff2 b/_astro/roboto-math-700-normal.VUAI6Bz2.woff2 new file mode 100644 index 0000000..7557ee1 Binary files /dev/null and b/_astro/roboto-math-700-normal.VUAI6Bz2.woff2 differ diff --git a/_astro/roboto-math-700-normal.pYD1nhov.woff b/_astro/roboto-math-700-normal.pYD1nhov.woff new file mode 100644 index 0000000..d132a6c Binary files /dev/null and b/_astro/roboto-math-700-normal.pYD1nhov.woff differ diff --git a/_astro/roboto-symbols-400-normal.Tzuungub.woff b/_astro/roboto-symbols-400-normal.Tzuungub.woff new file mode 100644 index 0000000..da841a4 Binary files /dev/null and b/_astro/roboto-symbols-400-normal.Tzuungub.woff differ diff --git a/_astro/roboto-symbols-400-normal.fF1SLJBj.woff2 b/_astro/roboto-symbols-400-normal.fF1SLJBj.woff2 new file mode 100644 index 0000000..f9c26fa Binary files /dev/null and b/_astro/roboto-symbols-400-normal.fF1SLJBj.woff2 differ diff --git a/_astro/roboto-symbols-500-normal.BXFTxrNR.woff2 b/_astro/roboto-symbols-500-normal.BXFTxrNR.woff2 new file mode 100644 index 0000000..013a49f Binary files /dev/null and b/_astro/roboto-symbols-500-normal.BXFTxrNR.woff2 differ diff --git a/_astro/roboto-symbols-500-normal.CAhAe-ik.woff b/_astro/roboto-symbols-500-normal.CAhAe-ik.woff new file mode 100644 index 0000000..e1d6c4d Binary files /dev/null and b/_astro/roboto-symbols-500-normal.CAhAe-ik.woff differ diff --git a/_astro/roboto-symbols-700-normal.CuuvBBxy.woff b/_astro/roboto-symbols-700-normal.CuuvBBxy.woff new file mode 100644 index 0000000..1d5cab0 Binary files /dev/null and b/_astro/roboto-symbols-700-normal.CuuvBBxy.woff differ diff --git a/_astro/roboto-symbols-700-normal.rJi6RjIy.woff2 b/_astro/roboto-symbols-700-normal.rJi6RjIy.woff2 new file mode 100644 index 0000000..bcf868b Binary files /dev/null and b/_astro/roboto-symbols-700-normal.rJi6RjIy.woff2 differ diff --git a/_astro/roboto-vietnamese-400-normal.CDDxGrUb.woff2 b/_astro/roboto-vietnamese-400-normal.CDDxGrUb.woff2 new file mode 100644 index 0000000..bc95855 Binary files /dev/null and b/_astro/roboto-vietnamese-400-normal.CDDxGrUb.woff2 differ diff --git a/_astro/roboto-vietnamese-400-normal.DmXaN3yE.woff b/_astro/roboto-vietnamese-400-normal.DmXaN3yE.woff new file mode 100644 index 0000000..3baa2fa Binary files /dev/null and b/_astro/roboto-vietnamese-400-normal.DmXaN3yE.woff differ diff --git a/_astro/roboto-vietnamese-500-normal.DW96CsrR.woff b/_astro/roboto-vietnamese-500-normal.DW96CsrR.woff new file mode 100644 index 0000000..c81200e Binary files /dev/null and b/_astro/roboto-vietnamese-500-normal.DW96CsrR.woff differ diff --git a/_astro/roboto-vietnamese-500-normal.HYpufUYk.woff2 b/_astro/roboto-vietnamese-500-normal.HYpufUYk.woff2 new file mode 100644 index 0000000..bdfaff3 Binary files /dev/null and b/_astro/roboto-vietnamese-500-normal.HYpufUYk.woff2 differ diff --git a/_astro/roboto-vietnamese-700-normal.Dz0HwF-w.woff b/_astro/roboto-vietnamese-700-normal.Dz0HwF-w.woff new file mode 100644 index 0000000..9a1bd1f Binary files /dev/null and b/_astro/roboto-vietnamese-700-normal.Dz0HwF-w.woff differ diff --git a/_astro/roboto-vietnamese-700-normal.iKxYNAzq.woff2 b/_astro/roboto-vietnamese-700-normal.iKxYNAzq.woff2 new file mode 100644 index 0000000..c28d265 Binary files /dev/null and b/_astro/roboto-vietnamese-700-normal.iKxYNAzq.woff2 differ diff --git a/_astro/setting-utils.DIFyzipl.js b/_astro/setting-utils.DIFyzipl.js new file mode 100644 index 0000000..93f8879 --- /dev/null +++ b/_astro/setting-utils.DIFyzipl.js @@ -0,0 +1 @@ +import{e as s}from"./zh_TW.GNQQ5Uve.js";const r="light",o="dark",a="auto",c=a,n=45,m=35,d=n+m,E=3.5;function u(){const t=document.getElementById("config-carrier");return Number.parseInt(t?.dataset.hue||"250")}function f(){const e=localStorage.getItem("hue");return e?Number.parseInt(e):u()}function g(e){localStorage.setItem("hue",String(e));const t=document.querySelector(":root");t&&t.style.setProperty("--hue",String(e))}function i(e){const t=document.documentElement;if(t){switch(e){case r:t.classList.remove("dark");break;case o:t.classList.add("dark");break;case a:window.matchMedia("(prefers-color-scheme: dark)").matches?t.classList.add("dark"):t.classList.remove("dark");break}t.setAttribute("data-theme",s.theme)}}function h(e){localStorage.setItem("theme",e),i(e)}function H(){return localStorage.getItem("theme")||c}export{a as A,m as B,o as D,r as L,E as M,i as a,f as b,u as c,g as d,n as e,d as f,H as g,h as s}; diff --git a/_astro/translation.D40iFv2g.js b/_astro/translation.D40iFv2g.js new file mode 100644 index 0000000..74e8727 --- /dev/null +++ b/_astro/translation.D40iFv2g.js @@ -0,0 +1,2 @@ +import{am as pe,an as N,ao as re,ap as B,u as j,M as te,aq as ie,Z as V,J as ae,ar as se,q as w,as as be,at as he,a9 as ge,au as Ae,av as Se,aw as Ee,V as Ie,ax as Pe,ay as we,az as Te,g as T,aA as Le,A as H,aB as Ne,aC as Oe,$ as ye,aD as Ce,aE as Me,aF as Re,aG as $e,aH as De,aI as G,aJ as je,h as Ue,aK as fe,aL as ze,aM as Be,aN as ne,a2 as Ve,s as Ye,af as K,aO as Ke,Q as qe,aP as He,aQ as Ge,aR as Ze,L as Fe,ak as Z,aS as F,aT as Je,aU as Qe,aV as We,aW as Xe}from"./render.nCRzbnaE.js";import{t as J,k as Q,j as W,z as ke,a as me,b as M,c as xe,s as er}from"./zh_TW.GNQQ5Uve.js";const rr="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(rr);pe();function q(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function tr(e){N===null&&q(),re&&N.l!==null?ar(N).m.push(e):B(()=>{const r=j(e);if(typeof r=="function")return r})}function wr(e){N===null&&q(),tr(()=>()=>j(e))}function ir(e,r,{bubbles:t=!1,cancelable:i=!1}={}){return new CustomEvent(e,{detail:r,bubbles:t,cancelable:i})}function Tr(){const e=N;return e===null&&q(),(r,t,i)=>{const a=e.s.$$events?.[r];if(a){const s=te(a)?a.slice():[a],n=ir(r,t,i);for(const u of s)u.call(e.x,n);return!n.defaultPrevented}return!0}}function ar(e){var r=e.l;return r.u??={a:[],b:[],m:[]}}function sr(e,r){var t=void 0,i;ie(()=>{t!==(t=r())&&(i&&(V(i),i=null),t&&(i=ae(()=>{se(()=>t(e))})))})}function ue(e){var r,t,i="";if(typeof e=="string"||typeof e=="number")i+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(r=0;r=0;){var u=n+s;(n===0||X.includes(i[n-1]))&&(u===i.length||X.includes(i[u]))?i=(n===0?"":i.substring(0,n))+i.substring(u+1):n=u}}return i===""?null:i}function k(e,r=!1){var t=r?" !important;":";",i="";for(var a in e){var s=e[a];s!=null&&s!==""&&(i+=" "+a+": "+s+t)}return i}function U(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function lr(e,r){if(r){var t="",i,a;if(Array.isArray(r)?(i=r[0],a=r[1]):i=r,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var s=!1,n=0,u=!1,c=[];i&&c.push(...Object.keys(i).map(U)),a&&c.push(...Object.keys(a).map(U));var l=0,_=-1;const I=e.length;for(var h=0;h{Y(e,e.__value)});r.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),ge(()=>{r.disconnect()})}function m(e){return"__value"in e?e.__value:e.value}const y=Symbol("class"),C=Symbol("style"),le=Symbol("is custom element"),oe=Symbol("is html");function _r(e){if(w){var r=!1,t=()=>{if(!r){if(r=!0,e.hasAttribute("value")){var i=e.value;D(e,"value",null),e.value=i}if(e.hasAttribute("checked")){var a=e.checked;D(e,"checked",null),e.checked=a}}};e.__on_r=t,Ie(t),Pe()}}function dr(e,r){r?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function D(e,r,t,i){var a=ce(e);w&&(a[r]=e.getAttribute(r),r==="src"||r==="srcset"||r==="href"&&e.nodeName==="LINK")||a[r]!==(a[r]=t)&&(r==="loading"&&(e[we]=t),t==null?e.removeAttribute(r):typeof t!="string"&&ve(e).includes(r)?e[r]=t:e.setAttribute(r,t))}function pr(e,r,t,i,a=!1,s=!1){if(w&&a&&e.tagName==="INPUT"){var n=e,u=n.type==="checkbox"?"defaultChecked":"defaultValue";u in t||_r(n)}var c=ce(e),l=c[le],_=!c[oe];let h=w&&l;h&&H(!1);var f=r||{},E=e.tagName==="OPTION";for(var g in r)g in t||(t[g]=null);t.class?t.class=nr(t.class):t[y]&&(t.class=null),t[C]&&(t.style??=null);var I=ve(e);for(const o in t){let v=t[o];if(E&&o==="value"&&v==null){e.value=e.__value="",f[o]=v;continue}if(o==="class"){var P=e.namespaceURI==="http://www.w3.org/1999/xhtml";or(e,P,v,i,r?.[y],t[y]),f[o]=v,f[y]=t[y];continue}if(o==="style"){cr(e,v,r?.[C],t[C]),f[o]=v,f[C]=t[C];continue}var d=f[o];if(!(v===d&&!(v===void 0&&e.hasAttribute(o)))){f[o]=v;var R=o[0]+o[1];if(R!=="$$")if(R==="on"){const S={},L="$$"+o;let A=o.slice(2);var p=$e(A);if(Ne(A)&&(A=A.slice(0,-7),S.capture=!0),!p&&d){if(v!=null)continue;e.removeEventListener(A,f[L],S),f[L]=null}if(v!=null)if(p)e[`__${A}`]=v,ye([A]);else{let _e=function(de){f[o].call(this,de)};f[L]=Oe(A,e,_e,S)}else p&&(e[`__${A}`]=void 0)}else if(o==="style")D(e,o,v);else if(o==="autofocus")Ce(e,!!v);else if(!l&&(o==="__value"||o==="value"&&v!=null))e.value=e.__value=v;else if(o==="selected"&&E)dr(e,v);else{var b=o;_||(b=Me(b));var O=b==="defaultValue"||b==="defaultChecked";if(v==null&&!l&&!O)if(c[o]=null,b==="value"||b==="checked"){let S=e;const L=r===void 0;if(b==="value"){let A=S.defaultValue;S.removeAttribute(b),S.defaultValue=A,S.value=S.__value=L?A:null}else{let A=S.defaultChecked;S.removeAttribute(b),S.defaultChecked=A,S.checked=L?A:!1}}else e.removeAttribute(o);else O||I.includes(b)&&(l||typeof v!="string")?(e[b]=v,b in c&&(c[b]=Re)):typeof v!="function"&&D(e,b,v)}}}return h&&H(!0),f}function Lr(e,r,t=[],i=[],a=[],s,n=!1,u=!1){Te(a,t,i,c=>{var l=void 0,_={},h=e.nodeName==="SELECT",f=!1;if(ie(()=>{var g=r(...c.map(T)),I=pr(e,l,g,s,n,u);f&&h&&"value"in g&&Y(e,g.value);for(let d of Object.getOwnPropertySymbols(_))g[d]||V(_[d]);for(let d of Object.getOwnPropertySymbols(g)){var P=g[d];d.description===Le&&(!l||P!==l[d])&&(_[d]&&V(_[d]),_[d]=ae(()=>sr(e,()=>P))),I[d]=P}l=I}),h){var E=e;se(()=>{Y(E,l.value,!0),vr(E)})}f=!0})}function ce(e){return e.__attributes??={[le]:e.nodeName.includes("-"),[oe]:e.namespaceURI===Ae}}var x=new Map;function ve(e){var r=e.getAttribute("is")||e.nodeName,t=x.get(r);if(t)return t;x.set(r,t=[]);for(var i,a=e,s=Element.prototype;s!==a;){i=Ee(a);for(var n in i)i[n].set&&t.push(n);a=Se(a)}return t}function Nr(e=!1){const r=N,t=r.l.u;if(!t)return;let i=()=>Ue(r.s);if(e){let a=0,s={};const n=fe(()=>{let u=!1;const c=r.s;for(const l in c)c[l]!==s[l]&&(s[l]=c[l],u=!0);return u&&a++,a});i=()=>T(n)}t.b.length&&De(()=>{ee(r,i),G(t.b)}),B(()=>{const a=j(()=>t.m.map(je));return()=>{for(const s of a)typeof s=="function"&&s()}}),t.a.length&&B(()=>{ee(r,i),G(t.a)})}function ee(e,r){if(e.l.s)for(const t of e.l.s)T(t);r()}let $=!1;function br(e){var r=$;try{return $=!1,[e(),$]}finally{$=r}}const hr={get(e,r){if(!e.exclude.includes(r))return T(e.version),r in e.special?e.special[r]():e.props[r]},set(e,r,t){if(!(r in e.special)){var i=K;try{F(e.parent_effect),e.special[r]=gr({get[r](){return e.props[r]}},r,ne)}finally{F(i)}}return e.special[r](t),Z(e.version),!0},getOwnPropertyDescriptor(e,r){if(!e.exclude.includes(r)&&r in e.props)return{enumerable:!0,configurable:!0,value:e.props[r]}},deleteProperty(e,r){return e.exclude.includes(r)||(e.exclude.push(r),Z(e.version)),!0},has(e,r){return e.exclude.includes(r)?!1:r in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(r=>!e.exclude.includes(r))}};function Or(e,r){return new Proxy({props:e,exclude:r,special:{},version:qe(0),parent_effect:K},hr)}function gr(e,r,t,i){var a=!re||(t&Ge)!==0,s=(t&He)!==0,n=(t&Je)!==0,u=i,c=!0,l=()=>(c&&(c=!1,u=n?j(i):i),u),_;if(s){var h=We in e||Xe in e;_=ze(e,r)?.set??(h&&r in e?p=>e[r]=p:void 0)}var f,E=!1;s?[f,E]=br(()=>e[r]):f=e[r],f===void 0&&i!==void 0&&(f=l(),_&&(a&&Be(),_(f)));var g;if(a?g=()=>{var p=e[r];return p===void 0?l():(c=!0,p)}:g=()=>{var p=e[r];return p!==void 0&&(u=void 0),p===void 0?u:p},a&&(t&ne)===0)return g;if(_){var I=e.$$legacy;return(function(p,b){return arguments.length>0?((!a||!b||I||E)&&_(b?g():p),p):g()})}var P=!1,d=((t&Ze)!==0?fe:Fe)(()=>(P=!1,g()));s&&T(d);var R=K;return(function(p,b){if(arguments.length>0){const O=b?T(d):a&&s?Ve(p):p;return Ye(d,O),P=!0,u!==void 0&&(u=O),p}return Qe&&P||(R.f&Ke)!==0?d.v:T(d)})}const Ar=M,Sr={es:xe,en:M,en_us:M,en_gb:M,en_au:M,zh_cn:me,zh_tw:ke,ja:W,ja_jp:W,ko:Q,ko_kr:Q,th:J,th_th:J};function Er(e){return Sr[e.toLowerCase()]||Ar}function yr(e){const r=er.lang;return Er(r)[e]}export{yr as a,or as b,wr as c,Tr as d,Lr as e,Nr as i,Or as l,tr as o,gr as p,_r as r,D as s}; diff --git a/_astro/url-utils.Btk-Imyz.js b/_astro/url-utils.Btk-Imyz.js new file mode 100644 index 0000000..7d73bb7 --- /dev/null +++ b/_astro/url-utils.Btk-Imyz.js @@ -0,0 +1 @@ +import"./zh_TW.GNQQ5Uve.js";function u(n,o){const t=n.replace(/^\/|\/$/g,"").toLowerCase(),e=o.replace(/^\/|\/$/g,"").toLowerCase();return t===e}function r(...n){return n.join("/").replace(/\/+/g,"/")}function i(n){return a(`/posts/${n}/`)}function a(n){return r("","/",n)}export{i as g,u as p,a as u}; diff --git a/_astro/zh_TW.GNQQ5Uve.js b/_astro/zh_TW.GNQQ5Uve.js new file mode 100644 index 0000000..402c3d3 --- /dev/null +++ b/_astro/zh_TW.GNQQ5Uve.js @@ -0,0 +1 @@ +var e=(t=>(t.home="home",t.about="about",t.archive="archive",t.search="search",t.tags="tags",t.categories="categories",t.recentPosts="recentPosts",t.comments="comments",t.untitled="untitled",t.uncategorized="uncategorized",t.noTags="noTags",t.wordCount="wordCount",t.wordsCount="wordsCount",t.minuteCount="minuteCount",t.minutesCount="minutesCount",t.postCount="postCount",t.postsCount="postsCount",t.themeColor="themeColor",t.lightMode="lightMode",t.darkMode="darkMode",t.systemMode="systemMode",t.more="more",t.author="author",t.publishedAt="publishedAt",t.license="license",t.friends="friends",t.circle="circle",t.friendsCircle="friendsCircle",t.friendsNum="friendsNum",t.activeNum="activeNum",t.errorNum="errorNum",t.articleNum="articleNum",t.lastUpdated="lastUpdated",t.loading="loading",t.loadError="loadError",t.retry="retry",t.noArticles="noArticles",t.refresh="refresh",t.refreshTip="refreshTip",t))(e||{});const o={lang:"zh_CN"},r={theme:"github-dark"},s={[e.home]:"Home",[e.about]:"About",[e.archive]:"Archive",[e.search]:"Search",[e.tags]:"Tags",[e.categories]:"Categories",[e.recentPosts]:"Recent Posts",[e.comments]:"Comments",[e.untitled]:"Untitled",[e.uncategorized]:"Uncategorized",[e.noTags]:"No Tags",[e.wordCount]:"word",[e.wordsCount]:"words",[e.minuteCount]:"minute",[e.minutesCount]:"minutes",[e.postCount]:"post",[e.postsCount]:"posts",[e.themeColor]:"Theme Color",[e.lightMode]:"Light",[e.darkMode]:"Dark",[e.systemMode]:"System",[e.more]:"More",[e.author]:"Author",[e.publishedAt]:"Published at",[e.license]:"License",[e.friends]:"Friends",[e.circle]:"Circle",[e.friendsCircle]:"Friends Circle",[e.friendsNum]:"Friends Count",[e.activeNum]:"Active Count",[e.errorNum]:"Error Count",[e.articleNum]:"Article Count",[e.lastUpdated]:"Last Updated",[e.loading]:"Loading...",[e.loadError]:"Load Failed",[e.retry]:"Retry",[e.noArticles]:"No Articles",[e.refresh]:"Refresh",[e.refreshTip]:"If it takes too long to load, please try refreshing the page"},i={[e.home]:"Inicio",[e.about]:"Sobre mí",[e.archive]:"Archivo",[e.search]:"Buscar",[e.tags]:"Etiquetas",[e.categories]:"Categorías",[e.recentPosts]:"Publicaciones recientes",[e.comments]:"Comentarios",[e.untitled]:"Sin título",[e.uncategorized]:"Sin categoría",[e.noTags]:"Sin etiquetas",[e.wordCount]:"palabra",[e.wordsCount]:"palabras",[e.minuteCount]:"minuto",[e.minutesCount]:"minutos",[e.postCount]:"publicación",[e.postsCount]:"publicaciones",[e.themeColor]:"Color del tema",[e.lightMode]:"Claro",[e.darkMode]:"Oscuro",[e.systemMode]:"Sistema",[e.more]:"Más",[e.author]:"Autor",[e.publishedAt]:"Publicado el",[e.license]:"Licencia",[e.friends]:"Amigos",[e.friendsCircle]:"Círculo de Amigos",[e.friendsNum]:"Número de Amigos",[e.activeNum]:"Número Activo",[e.errorNum]:"Número de Errores",[e.articleNum]:"Número de Artículos",[e.lastUpdated]:"Última Actualización",[e.loading]:"Cargando...",[e.loadError]:"Error de Carga",[e.retry]:"Reintentar",[e.noArticles]:"Sin Artículos",[e.refresh]:"Actualizar",[e.refreshTip]:"Si tarda mucho en cargar, intenta actualizar la página"},a={[e.home]:"Home",[e.about]:"About",[e.archive]:"Archive",[e.search]:"検索",[e.tags]:"タグ",[e.categories]:"カテゴリ",[e.recentPosts]:"最近の投稿",[e.comments]:"コメント",[e.untitled]:"タイトルなし",[e.uncategorized]:"カテゴリなし",[e.noTags]:"タグなし",[e.wordCount]:"文字",[e.wordsCount]:"文字",[e.minuteCount]:"分",[e.minutesCount]:"分",[e.postCount]:"件の投稿",[e.postsCount]:"件の投稿",[e.themeColor]:"テーマカラー",[e.lightMode]:"ライト",[e.darkMode]:"ダーク",[e.systemMode]:"システム",[e.more]:"もっと",[e.author]:"作者",[e.publishedAt]:"公開日",[e.license]:"ライセンス",[e.friends]:"友達",[e.friendsCircle]:"友達サークル",[e.friendsNum]:"友達数",[e.activeNum]:"アクティブ数",[e.errorNum]:"エラー数",[e.articleNum]:"記事数",[e.lastUpdated]:"最終更新",[e.loading]:"読み込み中...",[e.loadError]:"読み込み失敗",[e.retry]:"再試行",[e.noArticles]:"記事がありません",[e.refresh]:"更新",[e.refreshTip]:"読み込みに時間がかかる場合は、ページを更新してください"},n={[e.home]:"홈",[e.about]:"소개",[e.archive]:"아카이브",[e.search]:"검색",[e.tags]:"태그",[e.categories]:"카테고리",[e.recentPosts]:"최근 게시물",[e.comments]:"댓글",[e.untitled]:"제목 없음",[e.uncategorized]:"분류되지 않음",[e.noTags]:"태그 없음",[e.wordCount]:"단어",[e.wordsCount]:"단어",[e.minuteCount]:"분",[e.minutesCount]:"분",[e.postCount]:"게시물",[e.postsCount]:"게시물",[e.themeColor]:"테마 색상",[e.lightMode]:"밝은 모드",[e.darkMode]:"어두운 모드",[e.systemMode]:"시스템 모드",[e.more]:"더 보기",[e.author]:"저자",[e.publishedAt]:"게시일",[e.license]:"라이선스",[e.friends]:"친구",[e.friendsCircle]:"친구 서클",[e.friendsNum]:"친구 수",[e.activeNum]:"활성 수",[e.errorNum]:"오류 수",[e.articleNum]:"글 수",[e.lastUpdated]:"마지막 업데이트",[e.loading]:"로딩 중...",[e.loadError]:"로딩 실패",[e.retry]:"다시 시도",[e.noArticles]:"글이 없습니다",[e.refresh]:"새로고침",[e.refreshTip]:"로딩이 오래 걸리면 페이지를 새로고침해 주세요"},u={[e.home]:"หน้าแรก",[e.about]:"เกี่ยวกับ",[e.archive]:"คลัง",[e.search]:"ค้นหา",[e.tags]:"ป้ายกำกับ",[e.categories]:"หมวดหมู่",[e.recentPosts]:"โพสต์ล่าสุด",[e.comments]:"ความคิดเห็น",[e.untitled]:"ไม่ได้ตั้งชื่อ",[e.uncategorized]:"ไม่ได้จัดหมวดหมู่",[e.noTags]:"ไม่มีป้ายกำกับ",[e.wordCount]:"คำ",[e.wordsCount]:"คำ",[e.minuteCount]:"นาที",[e.minutesCount]:"นาที",[e.postCount]:"โพสต์",[e.postsCount]:"โพสต์",[e.themeColor]:"สีของธีม",[e.lightMode]:"สว่าง",[e.darkMode]:"มืด",[e.systemMode]:"ตามระบบ",[e.more]:"ดูเพิ่ม",[e.author]:"ผู้เขียน",[e.publishedAt]:"เผยแพร่เมื่อ",[e.license]:"สัญญาอนุญาต",[e.friends]:"เพื่อน",[e.friendsCircle]:"วงเพื่อน",[e.friendsNum]:"จำนวนเพื่อน",[e.activeNum]:"จำนวนที่ใช้งาน",[e.errorNum]:"จำนวนข้อผิดพลาด",[e.articleNum]:"จำนวนบทความ",[e.lastUpdated]:"อัปเดตล่าสุด",[e.loading]:"กำลังโหลด...",[e.loadError]:"โหลดไม่สำเร็จ",[e.retry]:"ลองใหม่",[e.noArticles]:"ไม่มีบทความ",[e.refresh]:"รีเฟรช",[e.refreshTip]:"หากโหลดนานเกินไป กรุณาลองรีเฟรชหน้า"},d={[e.home]:"主页",[e.about]:"关于",[e.archive]:"归档",[e.search]:"搜索",[e.tags]:"标签",[e.categories]:"分类",[e.recentPosts]:"最新文章",[e.comments]:"评论",[e.untitled]:"无标题",[e.uncategorized]:"未分类",[e.noTags]:"无标签",[e.wordCount]:"字",[e.wordsCount]:"字",[e.minuteCount]:"分钟",[e.minutesCount]:"分钟",[e.postCount]:"篇文章",[e.postsCount]:"篇文章",[e.themeColor]:"主题色",[e.lightMode]:"亮色",[e.darkMode]:"暗色",[e.systemMode]:"跟随系统",[e.more]:"更多",[e.author]:"作者",[e.publishedAt]:"发布于",[e.license]:"许可协议",[e.friends]:"友链",[e.circle]:"朋友圈",[e.friendsCircle]:"朋友圈",[e.friendsNum]:"友链数量",[e.activeNum]:"活跃数量",[e.errorNum]:"异常数量",[e.articleNum]:"文章数量",[e.lastUpdated]:"最后更新",[e.loading]:"加载中...",[e.loadError]:"加载失败",[e.retry]:"重试",[e.noArticles]:"暂无文章",[e.refresh]:"刷新",[e.refreshTip]:"如果长时间加载不出来,请尝试刷新页面"},c={[e.home]:"首頁",[e.about]:"關於",[e.archive]:"彙整",[e.search]:"搜尋",[e.tags]:"標籤",[e.categories]:"分類",[e.recentPosts]:"最新文章",[e.comments]:"評論",[e.untitled]:"無標題",[e.uncategorized]:"未分類",[e.noTags]:"無標籤",[e.wordCount]:"字",[e.wordsCount]:"字",[e.minuteCount]:"分鐘",[e.minutesCount]:"分鐘",[e.postCount]:"篇文章",[e.postsCount]:"篇文章",[e.themeColor]:"主題色",[e.lightMode]:"亮色",[e.darkMode]:"暗色",[e.systemMode]:"跟隨系統",[e.more]:"更多",[e.author]:"作者",[e.publishedAt]:"發佈於",[e.license]:"許可協議",[e.friends]:"友鏈",[e.friendsCircle]:"朋友圈",[e.friendsNum]:"友鏈數量",[e.activeNum]:"活躍數量",[e.errorNum]:"異常數量",[e.articleNum]:"文章數量",[e.lastUpdated]:"最後更新",[e.loading]:"載入中...",[e.loadError]:"載入失敗",[e.retry]:"重試",[e.noArticles]:"暫無文章",[e.refresh]:"重新整理",[e.refreshTip]:"如果長時間載入不出來,請嘗試重新整理頁面"};export{e as I,d as a,s as b,i as c,r as e,a as j,n as k,o as s,u as t,c as z}; diff --git a/about/index.html b/about/index.html new file mode 100644 index 0000000..5c6989c --- /dev/null +++ b/about/index.html @@ -0,0 +1,857 @@ + 关于 - Allen2030's Blog + + + + +

About#

+ Author Image +

Hello 👋 I'm Allen2030

+
+

赞助加QQ#

+

赞助了一定要给Allen2030发邮件,表明渠道和单号,和你自己名称和内容,否则我认不清可能加不上。#

+
+ + + + + + + + + + + + + + + + +
名字时间备注金额(单位:元)
Oliver2026-1-??30
+

联系我#

邮箱地址:Allen2030#

+

本站由以下网络服务商提供云计算服务#

+
    +
  • 阿里云 -计算,为了无法计算的价值
  • +
  • 腾讯云 -产业质变·云起未来
  • +
  • EdgeOne -Best Asian CDN, Edge, and Secure Solutions
  • +
+
+

本站由 Fuwari 强力驱动#

saicaca
/
fuwari
Waiting for api.github.com...
00K
0K
0K
Waiting...

共赴十年之约

2026年1月1日-2036年1月1日

0%
0
0
0
0
0
0

+Allen2030 blog +

\ No newline at end of file diff --git a/album/1/index.html b/album/1/index.html new file mode 100644 index 0000000..bbedaf7 --- /dev/null +++ b/album/1/index.html @@ -0,0 +1,1240 @@ + 风景摄影 - Allen2030's Blog + + + + + +

风景摄影

记录大自然的美丽瞬间

2 张图片
2025/8/29
+#风景 +#自然 +#摄影
\ No newline at end of file diff --git a/album/architecture/index.html b/album/architecture/index.html new file mode 100644 index 0000000..300b496 --- /dev/null +++ b/album/architecture/index.html @@ -0,0 +1,1240 @@ + 城市建筑 - Allen2030's Blog + + + + + +
\ No newline at end of file diff --git a/album/index.html b/album/index.html new file mode 100644 index 0000000..eeec847 --- /dev/null +++ b/album/index.html @@ -0,0 +1,1237 @@ + 相册 - Allen2030's Blog + + + + + +
\ No newline at end of file diff --git a/archive/index.html b/archive/index.html new file mode 100644 index 0000000..6fc00b2 --- /dev/null +++ b/archive/index.html @@ -0,0 +1,796 @@ + 归档 - Allen2030's Blog + + + + +
\ No newline at end of file diff --git a/astro.config.mjs b/astro.config.mjs deleted file mode 100644 index de8c04f..0000000 --- a/astro.config.mjs +++ /dev/null @@ -1,191 +0,0 @@ -import sitemap from "@astrojs/sitemap"; -import svelte from "@astrojs/svelte"; -import tailwind from "@astrojs/tailwind"; -import vercel from "@astrojs/vercel"; -import { pluginCollapsibleSections } from "@expressive-code/plugin-collapsible-sections"; -import { pluginLineNumbers } from "@expressive-code/plugin-line-numbers"; -import swup from "@swup/astro"; -import { defineConfig } from "astro/config"; -import expressiveCode from "astro-expressive-code"; -import icon from "astro-icon"; -import rehypeAutolinkHeadings from "rehype-autolink-headings"; -import rehypeComponents from "rehype-components"; /* Render the custom directive content */ -import rehypeExternalLinks from "rehype-external-links"; -import rehypeKatex from "rehype-katex"; -import rehypeSlug from "rehype-slug"; -import remarkDirective from "remark-directive"; /* Handle directives */ -import remarkGithubAdmonitionsToDirectives from "remark-github-admonitions-to-directives"; -import remarkMath from "remark-math"; -import remarkSectionize from "remark-sectionize"; -import { expressiveCodeConfig } from "./src/config.ts"; -import { pluginCustomCopyButton } from "./src/plugins/expressive-code/custom-copy-button.js"; -import { pluginLanguageBadge } from "./src/plugins/expressive-code/language-badge.ts"; -import { AdmonitionComponent } from "./src/plugins/rehype-component-admonition.mjs"; -import { GithubCardComponent } from "./src/plugins/rehype-component-github-card.mjs"; -import { LinkCardComponent } from "./src/plugins/rehype-component-link-card.mjs"; -import { parseDirectiveNode } from "./src/plugins/remark-directive-rehype.js"; -import { remarkExcerpt } from "./src/plugins/remark-excerpt.js"; -import { remarkReadingTime } from "./src/plugins/remark-reading-time.mjs"; - -// https://astro.build/config -export default defineConfig({ - site: "https://blog.fis.ink/", - base: "/", - trailingSlash: "always", - - integrations: [ - tailwind({ - nesting: true, - }), - swup({ - theme: false, - animationClass: "transition-swup-", // see https://swup.js.org/options/#animationselector - // the default value `transition-` cause transition delay - // when the Tailwind class `transition-all` is used - containers: ["main", "#toc"], - smoothScrolling: true, - cache: true, - preload: true, - accessibility: true, - updateHead: true, - updateBodyClass: false, - globalInstance: true, - }), - icon({ - include: { - "preprocess: vitePreprocess(),": ["*"], - "fa6-brands": ["*"], - "fa6-regular": ["*"], - "fa6-solid": ["*"], - ic: ["*"], - "material-symbols": ["*"], - }, - }), - expressiveCode({ - themes: [expressiveCodeConfig.theme, expressiveCodeConfig.theme], - plugins: [ - pluginCollapsibleSections(), - pluginLineNumbers(), - pluginLanguageBadge(), - pluginCustomCopyButton(), - ], - defaultProps: { - wrap: true, - overridesByLang: { - shellsession: { - showLineNumbers: false, - }, - }, - }, - styleOverrides: { - codeBackground: "var(--codeblock-bg)", - borderRadius: "0.75rem", - borderColor: "none", - codeFontSize: "0.875rem", - codeFontFamily: - "'JetBrains Mono Variable', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace", - codeLineHeight: "1.5rem", - frames: { - editorBackground: "var(--codeblock-bg)", - terminalBackground: "var(--codeblock-bg)", - terminalTitlebarBackground: "var(--codeblock-topbar-bg)", - editorTabBarBackground: "var(--codeblock-topbar-bg)", - editorActiveTabBackground: "none", - editorActiveTabIndicatorBottomColor: "var(--primary)", - editorActiveTabIndicatorTopColor: "none", - editorTabBarBorderBottomColor: "var(--codeblock-topbar-bg)", - terminalTitlebarBorderBottomColor: "none", - }, - textMarkers: { - delHue: 0, - insHue: 180, - markHue: 250, - }, - }, - frames: { - showCopyToClipboardButton: false, - }, - }), - svelte(), - sitemap(), - ], - - markdown: { - remarkPlugins: [ - remarkMath, - remarkReadingTime, - remarkExcerpt, - remarkGithubAdmonitionsToDirectives, - remarkDirective, - remarkSectionize, - parseDirectiveNode, - ], - rehypePlugins: [ - rehypeKatex, - rehypeSlug, - [ - rehypeExternalLinks, - { - target: "_blank", - rel: ["nofollow", "noopener", "noreferrer"], - }, - ], - [ - rehypeComponents, - { - components: { - github: GithubCardComponent, - "link-card": LinkCardComponent, - note: (x, y) => AdmonitionComponent(x, y, "note"), - tip: (x, y) => AdmonitionComponent(x, y, "tip"), - important: (x, y) => AdmonitionComponent(x, y, "important"), - caution: (x, y) => AdmonitionComponent(x, y, "caution"), - warning: (x, y) => AdmonitionComponent(x, y, "warning"), - }, - }, - ], - [ - rehypeAutolinkHeadings, - { - behavior: "append", - properties: { - className: ["anchor"], - }, - content: { - type: "element", - tagName: "span", - properties: { - className: ["anchor-icon"], - "data-pagefind-ignore": true, - }, - children: [ - { - type: "text", - value: "#", - }, - ], - }, - }, - ], - ], - }, - - vite: { - build: { - rollupOptions: { - onwarn(warning, warn) { - // temporarily suppress this warning - if ( - warning.message.includes("is dynamically imported by") && - warning.message.includes("but also statically imported by") - ) { - return; - } - warn(warning); - }, - }, - }, - }, - - adapter: vercel(), -}); diff --git a/biome.json b/biome.json deleted file mode 100644 index 80e375f..0000000 --- a/biome.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "$schema": "https://biomejs.dev/schemas/2.0.0/schema.json", - "vcs": { - "enabled": false, - "clientKind": "git", - "useIgnoreFile": false - }, - "files": { - "ignoreUnknown": false, - "includes": [ - "**", - "!**/src/**/*.css", - "!**/src/public/**/*", - "!**/dist/**/*", - "!**/node_modules/**/*" - ] - }, - "formatter": { - "enabled": true, - "indentStyle": "tab" - }, - "assist": { "actions": { "source": { "organizeImports": "on" } } }, - "linter": { - "enabled": true, - "rules": { - "recommended": true, - "style": { - "noParameterAssign": "error", - "useAsConstAssertion": "error", - "useDefaultParameterLast": "error", - "useEnumInitializers": "error", - "useSelfClosingElements": "error", - "useSingleVarDeclarator": "error", - "noUnusedTemplateLiteral": "error", - "useNumberNamespace": "error", - "noInferrableTypes": "error", - "noUselessElse": "error" - } - } - }, - "javascript": { - "formatter": { - "quoteStyle": "double" - } - }, - "overrides": [ - { - "includes": ["**/*.svelte", "**/*.astro", "**/*.vue"], - "linter": { - "rules": { - "style": { - "useConst": "off", - "useImportType": "off" - }, - "correctness": { - "noUnusedVariables": "off", - "noUnusedImports": "off" - } - } - } - } - ] -} diff --git a/chronobox/index.html b/chronobox/index.html new file mode 100644 index 0000000..9804d83 --- /dev/null +++ b/chronobox/index.html @@ -0,0 +1,797 @@ + 时间盒 - Allen2030's Blog + + + + + +

时间盒

记录观看的番剧、电影等内容

番剧 (3)

非人哉 第三季
在看
2025

非人哉 第三季

评分:

中国古典神话传说中的"著名"精怪是如何在现代社会生存下去...

国创 日常 搞笑
非人哉 第二季
看过
2024

非人哉 第二季

评分:

故事围绕着女主角九尾狐九月展开,表现生活在当代都市中的九月作为一名普通的上班族努力工作挣钱...

国创 日常 搞笑
非人哉
看过
2018

非人哉

评分:

中国古典神话传说中的"著名"精怪是如何在现代社会生存下去...

国创 日常 搞笑

电影 (5)

非人哉:限时玩家
看过
2025

非人哉:限时玩家

评分:

平平无奇的打工狐九月与神仙同伴敖烈、哪吒、哮天犬、玉兔,误打误撞进入了一个坑很多的游戏世界。

国创 搞笑
哪吒之魔童闹海
看过
2025

哪吒之魔童闹海

评分:

天劫之后,哪吒、敖丙的灵魂虽保住了,但肉身很快会魂飞魄散。

奇幻 喜剧 动画
哪吒之魔童降世
看过
2019

哪吒之魔童降世

评分:

天地灵气孕育出一颗能量巨大的混元珠,元始天尊将混元珠提炼成灵珠和魔丸

奇幻 喜剧 动画
流浪地球2
看过
2023

流浪地球2

评分:

太阳即将毁灭,人类在地球表面建造出巨大的推进器

奇幻 冒险 灾难
流浪地球
看过
2019

流浪地球

评分:

近年来,科学家们发现太阳急速衰老膨胀,短时间内包括地球在内的整个太阳系都将被太阳所吞没

奇幻 冒险 灾难
\ No newline at end of file diff --git a/circle/index.html b/circle/index.html new file mode 100644 index 0000000..cf3df9e --- /dev/null +++ b/circle/index.html @@ -0,0 +1,1257 @@ + 朋友圈 - Allen2030's Blog + + + + +
+ + + +

如何加入#

如果你想让你的站点出现在朋友圈中,请确保:

    +
  • 你的站点已经在友链页面
  • +
  • 你的站点提供了有效的RSS订阅源
  • +
  • 你的站点能够正常访问
  • +
\ No newline at end of file diff --git a/comments/index.html b/comments/index.html new file mode 100644 index 0000000..b3287a3 --- /dev/null +++ b/comments/index.html @@ -0,0 +1,1238 @@ + 留言板 - Allen2030's Blog + + + + +

留言板#

\ No newline at end of file diff --git a/docs/README.es.md b/docs/README.es.md deleted file mode 100644 index 8734530..0000000 --- a/docs/README.es.md +++ /dev/null @@ -1,85 +0,0 @@ -# 🍥Fuwari - -Un tema estático para blogs construido con [Astro](https://astro.build). - -[**🖥️ Demostración en Vivo (Vercel)**](https://fuwari.vercel.app) - -![Imagen de Vista Previa](https://raw.githubusercontent.com/saicaca/resource/main/fuwari/home.png) - -## ✨ Características - -- [x] Construido con [Astro](https://astro.build) y [Tailwind CSS](https://tailwindcss.com) -- [x] Animaciones suaves y transiciones de página -- [x] Modo claro / oscuro -- [x] Colores del tema y banner personalizables -- [x] Diseño responsivo -- [ ] Comentarios -- [x] Buscador -- [x] TOC (Tabla de Contenidos) - -## 👀 requiere - -- Node.js <= 22 -- pnpm <= 9 - -## 🚀 Cómo Usar 1 - -Inicializa el proyecto localmente usando [create-fuwari](https://github.com/L4Ph/create-fuwari). - -```sh -# npm -npm create fuwari@latest. - -# yarn -yarn create fuwari. - -# pnpm -pnpm create fuwari@latest - -# bun -bun create fuwari@latest - -# deno -deno run -A npm:create-fuwari@latest -``` - -1. Edita el archivo de configuración `src/config.ts` para personalizar tu blog. -2. Ejecuta `pnpm new-post ` para crear una nueva entrada y edítala en `src/content/posts/`. -3. Despliega tu blog en Vercel, Netlify, GitHub Pages, etc., siguiendo [las guías](https://docs.astro.build/en/guides/deploy/). Necesitas editar la configuración del sitio en `astro.config.mjs` antes del despliegue. - -## 🚀 Cómo Usar 2 - -1. [Genera un nuevo repositorio](https://github.com/saicaca/fuwari/generate) desde esta plantilla o haz un fork de este repositorio. -2. Para editar tu blog localmente, clona tu repositorio, ejecuta `pnpm install` y `pnpm add sharp` para instalar las dependencias. - - Instala [pnpm](https://pnpm.io) `npm install -g pnpm` si aún no lo tienes. -3. Edita el archivo de configuración `src/config.ts` para personalizar tu blog. -4. Ejecuta `pnpm new-post ` para crear una nueva entrada y edítala en `src/content/posts/`. -5. Despliega tu blog en Vercel, Netlify, GitHub Pages, etc., siguiendo [las guías](https://docs.astro.build/en/guides/deploy/). Necesitas editar la configuración del sitio en `astro.config.mjs` antes del despliegue. - -## ⚙️ Cabecera de las Entradas - -```yaml ---- -title: Mi Primer Post en el Blog -published: 2023-09-09 -description: Esta es la primera entrada de mi nuevo blog con Astro. -image: /images/cover.jpg -tags: [Foo, Bar] -category: Front-end -draft: false ---- -``` - -## 🧞 Comandos - -Todos los comandos se ejecutan desde la raíz del proyecto, desde una terminal: - -| Comando | Acción | -|:------------------------------------|:--------------------------------------------------| -| `pnpm install` y `pnpm add sharp` | Instala las dependencias | -| `pnpm dev` | Inicia el servidor de desarrollo local en `localhost:4321` | -| `pnpm build` | Compila tu web para producción en `./dist/` | -| `pnpm preview` | Previsualiza la web localmente, antes del despliegue | -| `pnpm new-post ` | Crea una nueva entrada | -| `pnpm astro ...` | Ejecuta comandos CLI como `astro add`, `astro check` | -| `pnpm astro --help` | Obtén ayuda para usar el CLI de Astro | diff --git a/docs/README.ja.md b/docs/README.ja.md deleted file mode 100644 index 87a3d7f..0000000 --- a/docs/README.ja.md +++ /dev/null @@ -1,85 +0,0 @@ -# 🍥Fuwari - -[Astro](https://astro.build) で構築された静的ブログテンプレート - -[**🖥️ライブデモ (Vercel)**](https://fuwari.vercel.app) - -![Preview Image](https://raw.githubusercontent.com/saicaca/resource/main/fuwari/home.png) - -## ✨ 特徴 - -- [x] [Astro](https://astro.build) 及び [Tailwind CSS](https://tailwindcss.com) で構築 -- [x] スムーズなアニメーションとページ遷移 -- [x] ライト/ダークテーマ対応 -- [x] カスタマイズ可能なテーマカラーとバナー -- [x] レスポンシブデザイン -- [ ] コメント機能 -- [x] 検索機能 -- [x] 目次 - -## 👀 以下が必要 - -- Node.js <= 22 -- pnpm <= 9 - -## 🚀 使用方法 1 - -[create-fuwari](https://github.com/L4Ph/create-fuwari)を使用して、ローカルにプロジェクトを初期化します。 - -```sh -# npm -npm create fuwari@latest - -# yarn -yarn create fuwari - -# pnpm -pnpm create fuwari@latest - -# bun -bun create fuwari@latest - -# deno -deno run -A npm:create-fuwari@latest -``` - -1. `src/config.ts` ファイルを編集する事でブログを自分好みにカスタマイズ出来ます。 -2. `pnpm new-post ` で新しい記事を作成し、`src/content/posts/`.フォルダ内で編集します。 -3. 作成したブログをVercel、Netlify、GitHub Pagesなどにデプロイするには[ガイド](https://docs.astro.build/ja/guides/deploy/)に従って下さい。加えて、別途デプロイを行う前に `astro.config.mjs` を編集してサイト構成を変更する必要があります。 - -## 🚀 使用方法 2 - -1. [テンプレート](https://github.com/saicaca/fuwari/generate)から新しいリポジトリを作成するかCloneをします。 -2. ブログをローカルで編集するには、リポジトリをクローンした後、`pnpm install` と `pnpm add sharp` を実行して依存関係をインストールします。 - - [pnpm](https://pnpm.io) がインストールされていない場合は `npm install -g pnpm` で導入可能です。 -3. `src/config.ts` ファイルを編集する事でブログを自分好みにカスタマイズ出来ます。 -4. `pnpm new-post ` で新しい記事を作成し、`src/content/posts/`.フォルダ内で編集します。 -5. 作成したブログをVercel、Netlify、GitHub Pagesなどにデプロイするには[ガイド](https://docs.astro.build/ja/guides/deploy/)に従って下さい。加えて、別途デプロイを行う前に `astro.config.mjs` を編集してサイト構成を変更する必要があります。 - -## ⚙️ 記事のフロントマター - -```yaml ---- -title: My First Blog Post -published: 2023-09-09 -description: This is the first post of my new Astro blog. -image: /images/cover.jpg -tags: [Foo, Bar] -category: Front-end -draft: false ---- -``` - -## 🧞 コマンド - -すべてのコマンドは、ターミナルでプロジェクトのルートから実行する必要があります: - -| Command | Action | -|:------------------------------------|:--------------------------------------------| -| `pnpm install` AND `pnpm add sharp` | 依存関係のインストール | -| `pnpm dev` | `localhost:4321` で開発用ローカルサーバーを起動 | -| `pnpm build` | `./dist/` にビルド内容を出力 | -| `pnpm preview` | デプロイ前の内容をローカルでプレビュー | -| `pnpm new-post ` | 新しい投稿を作成 | -| `pnpm astro ...` | `astro add`, `astro check` の様なコマンドを実行する際に使用 | -| `pnpm astro --help` | Astro CLIのヘルプを表示 | diff --git a/docs/README.ko.md b/docs/README.ko.md deleted file mode 100644 index 7ad828f..0000000 --- a/docs/README.ko.md +++ /dev/null @@ -1,86 +0,0 @@ -# 🍥Fuwari - -[Astro](https://astro.build)로 구축된 정적 블로그 템플릿입니다. - -[**🖥️미리보기 (Vercel)**](https://fuwari.vercel.app) - -![Preview Image](https://raw.githubusercontent.com/saicaca/resource/main/fuwari/home.png) - -## ✨ 특징 - -- [x] [Astro](https://astro.build) 및 [Tailwind CSS](https://tailwindcss.com)로 구축됨 -- [x] 부드러운 애니메이션 및 페이지 전환 -- [x] 라이트 모드 / 다크 모드 -- [x] 사용자 정의 가능한 테마 색상 및 배너 -- [x] 반응형 디자인 -- [ ] 댓글 -- [x] 검색 -- [x] 목차 - -## 요구 사항 - -- Node.js <= 22 -- pnpm <= 9 - -## 🚀 사용하는 방법 1 - -[create-fuwari](https://github.com/L4Ph/create-fuwari)를 사용하여 로컬에서 프로젝트를 초기화합니다. - -```sh -# npm -npm create fuwari@latest - -# yarn -yarn create fuwari - -# pnpm -pnpm create fuwari@latest - -# bun -bun create fuwari@latest - -# deno -deno run -A npm:create-fuwari@latest -``` - -1. 블로그를 사용자 정의하려면 `src/config.ts` 구성 파일을 편집하세요. -2. `pnpm new-post `을 실행하여 새 게시물을 만들고 `src/content/posts/`에서 편집하세요. -3. [가이드](https://docs.astro.build/en/guides/deploy/)에 따라 블로그를 Vercel, Netlify, GitHub 페이지 등에 배포하세요. 배포하기 전에 `astro.config.mjs`에서 사이트 구성을 편집해야 합니다. - -## 🚀 사용하는 방법 - -1. 이 템플릿에서 [새 저장소를 생성](https://github.com/saicaca/fuwari/generate)하거나 이 저장소를 포크하세요. -2. 블로그를 로컬에서 편집하려면 저장소를 복제하고 `pnpm install` 및 `pnpm add sharp`를 실행하여 종속성을 설치하세요. - - 아직 [pnpm](https://pnpm.io)을 설치하지 않았다면 `npm install -g pnpm`을 실행하여 [pnpm](https://pnpm.io)을 설치하세요. -3. 블로그를 사용자 정의하려면 `src/config.ts` 구성 파일을 편집하세요. -4. `pnpm new-post `을 실행하여 새 게시물을 만들고 `src/content/posts/`에서 편집하세요. -5. [가이드](https://docs.astro.build/en/guides/deploy/)에 따라 블로그를 Vercel, Netlify, GitHub 페이지 등에 배포하세요. 배포하기 전에 `astro.config.mjs`에서 사이트 구성을 편집해야 합니다. - -## ⚙️ 게시물의 머리말 설정 - -```yaml ---- -title: 내 첫 블로그 게시물 -published: 2023-09-09 -description: 내 새로운 Astro 블로그의 첫 번째 게시물입니다! -image: /images/cover.jpg -tags: [푸, 바, 오] -category: 앞-끝 -draft: false -lang: jp # 게시물의 언어가 `config.ts`의 사이트 언어와 다른 경우에만 설정합니다. ---- -``` - -## 🧞 명령어 - -모든 명령어는 프로젝트 최상단, 터미널에서 실행됩니다: - -| Command | Action | -|:------------------------------------|:-------------------------------------------------| -| `pnpm install` AND `pnpm add sharp` | 종속성을 설치합니다. | -| `pnpm dev` | `localhost:4321`에서 로컬 개발 서버를 시작합니다. | -| `pnpm build` | `./dist/`에 프로덕션 사이트를 구축합니다. | -| `pnpm preview` | 배포하기 전에 로컬에서 빌드 미리보기 | -| `pnpm new-post ` | 새 게시물 작성 | -| `pnpm astro ...` | `astro add`, `astro check`와 같은 CLI 명령어 실행 | -| `pnpm astro --help` | Astro CLI를 사용하여 도움 받기 | diff --git a/docs/README.th.md b/docs/README.th.md deleted file mode 100644 index e8a215c..0000000 --- a/docs/README.th.md +++ /dev/null @@ -1,84 +0,0 @@ -# 🍥Fuwari - -แม่แบบสำหรับเว็บบล็อกแบบ static สร้างด้วย [Astro](https://astro.build) - -[**🖥️ ตัวอย่างการใช้งานจริง (Vercel)**](https://fuwari.vercel.app) - -![ภาพตัวอย่าง](https://raw.githubusercontent.com/saicaca/resource/main/fuwari/home.png) - -## ✨ คุณสมบัติ - -- [x] สร้างด้วย [Astro](https://astro.build) และ [Tailwind CSS](https://tailwindcss.com) -- [x] มีอนิเมชั่นและการเปลี่ยนหน้าอย่างลื่นไหล -- [x] โหมดสว่าง / โหมดมืด -- [x] ปรับแต่งสีธีมและแบนเนอร์ได้ -- [x] Responsive design (หน้าตาเว็บปรับเปลี่ยนตามขนาดจอ) -- [x] ฟังก์ชันการค้นหา ขับเคลื่อนด้วย [Pagefind](https://pagefind.app/) -- [x] [คุณสมบัติเพิ่มเติมสำหรับมาร์กดาวน์](https://github.com/saicaca/fuwari/blob/main/docs/README.th.md#-markdown-extended-syntax) -- [x] สารบัญ -- [x] RSS feed - -## 🚀 เริ่มต้นใช้งาน - -1. สร้าง repository ใหม่สำหรับบล็อกของคุณ: - - [Generate repository ใหม่](https://github.com/saicaca/fuwari/generate) ขึ้นมาจากแม่แบบนี้ หรือจะ fork repository นี้ก็ได้ - - หรือจะสร้างโดยการเลือกรันคำสั่งต่อไปนี้ คำสั่งใดคำสั่งหนึ่ง: - ```sh - npm create fuwari@latest - yarn create fuwari - pnpm create fuwari@latest - bun create fuwari@latest - deno run -A npm:create-fuwari@latest - ``` -2. เริ่มแก้ไขบล็อกของคุณแบบ local โดยการ clone repository ของคุณ (จากข้อ 1) ไว้ในเครื่องของคุณ แล้วรันคำสั่ง `pnpm install` เพื่อติดตั้ง dependencies ที่จำเป็น - - ติดตั้ง [pnpm](https://pnpm.io) ด้วยคำสั่ง `npm install -g pnpm` ก่อน ถ้ายังไม่เคยติดตั้ง -3. แก้ไขไฟล์การตั้งค่า `src/config.ts` เพื่อปรับแต่งบล็อกของคุณ -4. รันคำสั่ง `pnpm new-post ` เพื่อสร้างโพสต์ใหม่ใน `src/content/posts/` และแก้ไขไฟล์โพสต์นั้นๆ ให้สมบูรณ์ -5. Deploy เว็บบล็อกของคุณไปยัง Vercel, Netlify, GitHub Pages หรือบริการอื่นๆ โดยอ้างอิงวิธีการจาก[คู่มือนี้](https://docs.astro.build/en/guides/deploy/) อย่าลืมแก้ไขการตั้งค่าเว็บไซต์ในไฟล์ `astro.config.mjs` ก่อนที่คุณจะ deploy เว็บ - -## 📝 Frontmatter (ส่วนหัวไฟล์) ของโพสต์ - -```yaml ---- -title: โพสต์แรกของฉัน -published: 2023-09-09 -description: นี่คือโพสต์แรกของเว็บบล็อก Astro อันใหม่ของฉัน -image: ./cover.jpg -tags: [Foo, Bar] -category: Front-end -draft: false -lang: jp # เขียนค่านี้เมื่อภาษาของโพสต์นั้นๆ แตกต่างจากภาษาของเว็บไซต์ที่ตั้งค่าไว้ใน `config.ts` เท่านั้น ---- -``` - -## 🧩 Markdown Extended Syntax - -เดิมที Astro มีการสนับสนุน[ภาษามาร์กดาวน์แบบของ GitHub](https://github.github.com/gfm/) ไว้อยู่แล้ว แต่ Fuwari ได้เพิ่มเติมคุณสมบัติพิเศษอื่นๆ เข้าไปอีก: - -- Admonitions หรือ กล่องข้อมูลพิเศษ ([ดูตัวอย่างและการใช้งาน](https://fuwari.vercel.app/posts/markdown-extended/#admonitions)) -- การ์ด GitHub Repository ([ดูตัวอย่างและการใช้งาน](https://fuwari.vercel.app/posts/markdown-extended/#github-repository-cards)) -- บล็อกโค้ดขั้นสูง ด้วย Expressive Code ([ดูตัวอย่าง](https://fuwari.vercel.app/posts/expressive-code/) / [เอกสารประกอบ](https://expressive-code.com/)) - -## ⚡ คำสั่ง - -คำสั่งที่รันได้ใน terminal จาก root ของโปรเจกต์: - -| คำสั่ง | การทำงาน | -|:---------------------------|:-------------------------------------------------------| -| `pnpm install` | ติดตั้ง dependencies | -| `pnpm dev` | เปิดเซิร์ฟเวอร์สำหรับการพัฒนาแบบ local ที่ `localhost:4321` | -| `pnpm build` | Build เว็บไซต์สำหรับใช้งานจริงไปยังโฟลเดอร์ `./dist/` | -| `pnpm preview` | ดูตัวอย่าง build ของคุณแบบ local ก่อนที่จะ deploy จริง | -| `pnpm check` | ดำเนินการตรวจสอบหาข้อผิดพลาดในโค้ดของคุณ | -| `pnpm format` | จัดรูปแบบโค้ดของคุณด้วย Biome | -| `pnpm new-post ` | สร้างโพสต์ใหม่ | -| `pnpm astro ...` | รันคำสั่ง CLI เช่น `astro add`, `astro check` | -| `pnpm astro --help` | แสดงวิธีใช้งาน Astro CLI | - -## ✏️ การมีส่วนร่วม - -กรุณาอ่าน [แนวทางการมีส่วนร่วม](https://github.com/saicaca/fuwari/blob/main/CONTRIBUTING.md) สำหรับรายละเอียดวิธีการมีส่วนร่วมในโปรเจกต์นี้ - -## 📄 สัญญาอนุญาต - -โปรเจกต์นี้เผยแพร่ภายใต้สัญญาอนุญาตแบบ MIT License diff --git a/docs/README.zh-CN.md b/docs/README.zh-CN.md deleted file mode 100644 index 68fdd2b..0000000 --- a/docs/README.zh-CN.md +++ /dev/null @@ -1,86 +0,0 @@ -# 🍥Fuwari - -基于 [Astro](https://astro.build) 开发的静态博客模板。 - -[**🖥️在线预览(Vercel)**](https://fuwari.vercel.app) - -![Preview Image](https://raw.githubusercontent.com/saicaca/resource/main/fuwari/home.png) - -## ✨ 功能特性 - -- [x] 基于 Astro 和 Tailwind CSS 开发 -- [x] 流畅的动画和页面过渡 -- [x] 亮色 / 暗色模式 -- [x] 自定义主题色和横幅图片 -- [x] 响应式设计 -- [ ] 评论 -- [x] 搜索 -- [x] 文内目录 - -## 👀 要求 - -- Node.js <= 22 -- pnpm <= 9 - -## 🚀 使用方法 1 - -使用 [create-fuwari](https://github.com/L4Ph/create-fuwari) 在本地初始化项目。 - -```sh -# npm -npm create fuwari@latest - -# yarn -yarn create fuwari - -# pnpm -pnpm create fuwari@latest - -# bun -bun create fuwari@latest - -# deno -deno run -A npm:create-fuwari@latest -``` - -1. 通过配置文件 `src/config.ts` 自定义博客 -2. 执行 `pnpm new-post ` 创建新文章,并在 `src/content/posts/` 目录中编辑 -3. 参考[官方指南](https://docs.astro.build/zh-cn/guides/deploy/)将博客部署至 Vercel, Netlify, GitHub Pages 等;部署前需编辑 `astro.config.mjs` 中的站点设置。 - -## 🚀 使用方法 2 - -1. 使用此模板[生成新仓库](https://github.com/saicaca/fuwari/generate)或 Fork 此仓库 -2. 进行本地开发,Clone 新的仓库,执行 `pnpm install` 和 `pnpm add sharp` 以安装依赖 - - 若未安装 [pnpm](https://pnpm.io),执行 `npm install -g pnpm` -3. 通过配置文件 `src/config.ts` 自定义博客 -4. 执行 `pnpm new-post ` 创建新文章,并在 `src/content/posts/` 目录中编辑 -5. 参考[官方指南](https://docs.astro.build/zh-cn/guides/deploy/)将博客部署至 Vercel, Netlify, GitHub Pages 等;部署前需编辑 `astro.config.mjs` 中的站点设置。 - -## ⚙️ 文章 Frontmatter - -```yaml ---- -title: My First Blog Post -published: 2023-09-09 -description: This is the first post of my new Astro blog. -image: ./cover.jpg -tags: [Foo, Bar] -category: Front-end -draft: false -lang: jp # 仅当文章语言与 `config.ts` 中的网站语言不同时需要设置 ---- -``` - -## 🧞 指令 - -下列指令均需要在项目根目录执行: - -| Command | Action | -|:----------------------------------|:----------------------------------| -| `pnpm install` 并 `pnpm add sharp` | 安装依赖 | -| `pnpm dev` | 在 `localhost:4321` 启动本地开发服务器 | -| `pnpm build` | 构建网站至 `./dist/` | -| `pnpm preview` | 本地预览已构建的网站 | -| `pnpm new-post ` | 创建新文章 | -| `pnpm astro ...` | 执行 `astro add`, `astro check` 等指令 | -| `pnpm astro --help` | 显示 Astro CLI 帮助 | diff --git a/essay/index.html b/essay/index.html new file mode 100644 index 0000000..3576511 --- /dev/null +++ b/essay/index.html @@ -0,0 +1,1237 @@ + 瞬间 - Allen2030's Blog + + + + + +

说说

Ech0 API智能获取

数据加载中,请稍后刷新页面...
2026-02-20
系统
\ No newline at end of file diff --git a/public/favicon/favicon-dark-128.png b/favicon/favicon-dark-128.png similarity index 100% rename from public/favicon/favicon-dark-128.png rename to favicon/favicon-dark-128.png diff --git a/public/favicon/favicon-dark-180.png b/favicon/favicon-dark-180.png similarity index 100% rename from public/favicon/favicon-dark-180.png rename to favicon/favicon-dark-180.png diff --git a/public/favicon/favicon-dark-192.png b/favicon/favicon-dark-192.png similarity index 100% rename from public/favicon/favicon-dark-192.png rename to favicon/favicon-dark-192.png diff --git a/public/favicon/favicon-dark-32.png b/favicon/favicon-dark-32.png similarity index 100% rename from public/favicon/favicon-dark-32.png rename to favicon/favicon-dark-32.png diff --git a/public/favicon/favicon-light-128.png b/favicon/favicon-light-128.png similarity index 100% rename from public/favicon/favicon-light-128.png rename to favicon/favicon-light-128.png diff --git a/public/favicon/favicon-light-180.png b/favicon/favicon-light-180.png similarity index 100% rename from public/favicon/favicon-light-180.png rename to favicon/favicon-light-180.png diff --git a/public/favicon/favicon-light-192.png b/favicon/favicon-light-192.png similarity index 100% rename from public/favicon/favicon-light-192.png rename to favicon/favicon-light-192.png diff --git a/public/favicon/favicon-light-32.png b/favicon/favicon-light-32.png similarity index 100% rename from public/favicon/favicon-light-32.png rename to favicon/favicon-light-32.png diff --git a/public/fcldata.json b/fcldata.json similarity index 100% rename from public/fcldata.json rename to fcldata.json diff --git a/friends/index.html b/friends/index.html new file mode 100644 index 0000000..803ba58 --- /dev/null +++ b/friends/index.html @@ -0,0 +1,1365 @@ + 友链 - Allen2030's Blog + + + + +

友链

朋友

站点头像
清羽飞扬
柳影曳曳,清酒孤灯,扬笔撒墨,心境如霜
+

博客

站点头像
凨狐的小窝
这个名字...一看就很不想让人搜到
+
站点头像
张洪Heo
分享设计与科技生活
+
站点头像
梦爱吃鱼
但愿日子清静抬头遇见的满是柔情
+
站点头像
Mo的记事簿
万年鸽王,哈哈OvO
+
站点头像
宏尘极客
专注于技术知识和NAS笔记等内容分享
+
站点头像
bbb-lsy07
科技激荡人文,洞见智慧本真。
+
站点头像
秋实-Allenyou 的小窝
稻花香里说丰年,听取 WA 声一片
+
站点头像
朽丘秋雨
一定会和喜欢的人在夏日夜晚牵手慢步
+
站点头像
龙星划空
人生近看是悲剧,远看是喜剧
+
站点头像
liuzhen932 的小窝
只要愿意去做,人无所不通
+
站点头像
夜轻Blog
一个人
+
站点头像
橙寻星球
人外有人,天外有天
+
站点头像
光 · 昭
「あまねく奇跡の始発点」
+
站点头像
熊猫の小窝
一个温暖的家/一只懒懒的熊猫
+
站点头像
泯轲博客
咬咬稻草做动作,生活一点没烦恼!
+
站点头像
Yeppioo
梦想成为庄稼地里的读书人.....
+
站点头像
AcoFork
Protect What You Love!
+
站点头像
青序栈
青序成栈·向简而生
+
站点头像
Noah'blog
努力去发光,而不是被照亮
+
站点头像
Stanley的技术博客
🤓逸一时,误一世👌
+
站点头像
Welcome to - 小枫的Blog
这是一个致力于分享前后端技术的博客。同时也分享一些闲聊碎语
+
站点头像
Pinpe 的云端
一个属于自己的云朵。
+
站点头像
幽默的小刘吖小栈
这里是幽默的小刘吖的小栈
+
站点头像
AirTouch's Blog
岩间琉璃云间月
+
站点头像
或许是一只龙的博客
一只神秘小龙
+
站点头像
Codfish Blog
🐟🐟🐟
+
站点头像
百里博客
Everything as Code
+
站点头像
Wer Blog
The only way to do great is to love what you do
+
站点头像
Tavre Blog
茫茫大海 我与你相遇
+
站点头像
彬红茶日记
个人生活笔记📒
+
站点头像
yCENzh’s blog
Ciallo~(∠・ω< )⌒☆
+
站点头像
星辰の笔记
Code | Think | Share | Repeat
+
站点头像
RukaaX Blogs
Rukaax-一名高中生的博客 | Develop
+
站点头像
鈴奈咲桜のBlog
愛することを忘れないで
+
站点头像
TNTの小破站
萝卜青菜,各有所爱
+
站点头像
青稚の空间
越努力,越幸运.
+

个人主页

站点头像
可耐的小伙纸
永远相信美好的事情即将发生
+
站点头像
zyh的个人站
Who is minecraft?
+

框架

站点头像
Astro
博客框架
+

申请友链#

申请要求#

TIP

自2026年1月1日起,本站不会再添加任何第三方备案号

    +
  • 1.不违反中国大陆任意法律法规,发现直接删除,无告知。
  • +
  • 2.可以让我先加你的站,但是如果加后并且邮件告诉你后3天内你没有加我站友链,那么我有权直接删除你站。
  • +
  • 4.至少有5篇原创文章,注意是原创!
  • +
  • 5.不能是IP地址,只能是域名,禁止敏感域名加入。
  • +
  • 6.部分友链为本人自愿添加,并未告知站长,如果贵站介意,请联系我及时删除。 +如果你的网站符合上要求请按照以下格式评论(格式不强求,只要我能看懂就行),本站信息也在里面哦。
  • +
网站名称:Allen2030's Blog
网站地址:https://blog.allen2030.com
网站图标:https://img.scdn.io/i/696e0f2b20919_1768820523.webp
网站描述:摸摸猪头,快乐不愁
RSS地址(若没有请留空):不再需要提供,已使用Friend-Circle-Lite RSS获取工具。
网站类型(主页请修改后方博客文字为主页):博客
\ No newline at end of file diff --git a/frontmatter.json b/frontmatter.json deleted file mode 100644 index 8b47ded..0000000 --- a/frontmatter.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "$schema": "https://frontmatter.codes/frontmatter.schema.json", - "frontMatter.framework.id": "astro", - "frontMatter.preview.host": "http://localhost:4321", - "frontMatter.content.publicFolder": "public", - "frontMatter.content.pageFolders": [ - { - "title": "posts", - "path": "[[workspace]]/src/content/posts" - } - ], - "frontMatter.taxonomy.contentTypes": [ - { - "name": "default", - "pageBundle": true, - "previewPath": "'blog'", - "filePrefix": null, - "clearEmpty": true, - "fields": [ - { - "title": "title", - "name": "title", - "type": "string", - "single": true - }, - { - "title": "description", - "name": "description", - "type": "string" - }, - { - "title": "published", - "name": "published", - "type": "datetime", - "default": "{{now}}", - "isPublishDate": true - }, - { - "title": "preview", - "name": "image", - "type": "image", - "isPreviewImage": true - }, - { - "title": "tags", - "name": "tags", - "type": "list" - }, - { - "title": "category", - "name": "category", - "type": "string" - }, - { - "title": "draft", - "name": "draft", - "type": "boolean" - }, - { - "title": "language", - "name": "language", - "type": "string" - }, - { - "title": "Custom Slug", - "name": "customSlug", - "type": "string", - "description": "自定义文章路径,如果不填写则使用文件名作为路径" - } - ] - } - ] -} diff --git a/index.html b/index.html new file mode 100644 index 0000000..d8e7de2 --- /dev/null +++ b/index.html @@ -0,0 +1,929 @@ + Allen2030's Blog + + + + +
+ +
Cover Image of the Post
新主题astro-theme-fishcpy
2025-09-06
今天是网站一周年!fishcpy主题基于Astro与TailwindCSS,由Fuwari修改而来,支持暗色模式、响应式设计、Pagefind静态搜索(低带宽、零配置)、Markdown扩展、目录、RSS及Twikoo/Artalk评论。
275 字
|
1 分钟
+
Cover Image of the Post
trae AI 编辑器SOLO模式貌似会注入广告
2025-08-18
trae AI 编辑器SOLO模式默认提示词貌似会注入广告
225 字
|
1 分钟
+
Cover Image of the Post
非人哉:限时玩家评价
个人观点,可能有剧透
432 字
|
2 分钟
+
Cover Image of the Post
给你的Fuwari加一个链接大卡片
注意:本文章修改文件部分为AI所写。这篇文章介绍了如何在Astro博客中实现自定义之类的第三方链接卡片功能。文章分为示例和添加教程两部分。
1059 字
|
5 分钟
+
Cover Image of the Post
Uptime Kuma监控美化
这是一个关于部署和美化Uptime Kuma监控面板的分享,内容总结如下:首先介绍了Uptime Kuma的部署,可以通过Docker等平台部署,具体细节见官方GitHub仓库。接着提供了一份自定义CSS,用于美化界面,特点包括浅色和暗色模式切换、自定义颜色变量、背景固定图片、卡片半透明和模糊效果、按钮带玻璃质感、状态指示点和百分比徽章的呼吸动画、响应式移动端布局、隐藏更新时间信息,以及柔和的文字边框阴影等视觉优化。最后给出了示例监控站点链接https://status.fishcpy.top/status/web,适合喜欢暗色模式和现代玻璃拟态风格的用户,方便直接套用或二次修改。
725 字
|
4 分钟
+
Cover Image of the Post
我名字的由来
名字的由来
99 字
|
1 分钟
+
Cover Image of the Post
我的第一个图片API发布啦
2025-07-22
fishcpy API
64 字
|
1 分钟
+
Cover Image of the Post
记一次和福瑞朋友去漫展
关键词:福瑞,furry,漫展。其他没什么好写的
31 字
|
1 分钟
+
Cover Image of the Post
腾讯EO加速cloudflare内网穿透
2025-07-10
本文详细介绍了如何结合Cloudflare内网穿透与腾讯EdgeOne(EO)实现网站免费加速和HTTPS加密。首先指导用户通过子域名部署Cloudflare内网穿透(避开主域名),随后分步演示腾讯EO的激活流程:包括免费套餐兑换、域名接入、TXT记录验证,以及关键性的CNAME解析设置(特别强调Cloudflare需设为"仅DNS"模式)。最终通过自动化SSL证书申请,实现零成本HTTPS加速方案。适用于中国大陆及国际版用户,附图文操作指引。
381 字
|
2 分钟
+
Cover Image of the Post
江西研学
2025-07-04
清晨5:30集结出发,搭乘高铁穿越晨光奔赴江西。镜头捕捉了车站的启程瞬间、沿途流动的风景,以及研学途中的山水剪影——从青瓦白墙的古镇巷道到碧波倒映的湖光山色。归程在夜色中穿行,最后以一张导游的趣味彩蛋收尾,记录下这场融合历史探索与自然观览的紧凑旅程。
95 字
|
1 分钟
+
Cover Image of the Post
哪吒监控 V1美化
部署步骤参考哪吒监控官方文档进行部署:哪吒监控文档美化方法登录后台,进入「系统设置」→「自定义代码(样式和脚本)」插入提供的自定义代码(需按需修改参数)主要美化功能基础设置:自定义Logo、描述文字、关闭动画人物等视觉特效:自定义背景图片点击爱心特效樱花飘落效果鼠标星星轨迹效果卡通人物替换:将默认插图替换为自定义图片
248 字
|
1 分钟
\ No newline at end of file diff --git a/package.json b/package.json deleted file mode 100644 index e78c900..0000000 --- a/package.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "name": "fuwari", - "type": "module", - "version": "0.0.1", - "scripts": { - "dev": "astro dev", - "start": "astro dev", - "check": "astro check", - "build": "astro build && pagefind --site dist", - "preview": "astro preview", - "astro": "astro", - "type-check": "tsc --noEmit --isolatedDeclarations", - "new-post": "node scripts/new-post.js", - "format": "biome format --write ./src", - "lint": "biome check --write ./src", - "preinstall": "npx only-allow pnpm" - }, - "dependencies": { - "@astrojs/check": "^0.9.5", - "@astrojs/rss": "^4.0.13", - "@astrojs/sitemap": "^3.5.1", - "@astrojs/svelte": "7.1.1", - "@astrojs/tailwind": "^6.0.2", - "@astrojs/vercel": "^8.2.11", - "@expressive-code/core": "^0.41.2", - "@expressive-code/plugin-collapsible-sections": "^0.41.2", - "@expressive-code/plugin-line-numbers": "^0.41.2", - "@fontsource-variable/jetbrains-mono": "^5.2.8", - "@fontsource/roboto": "^5.2.8", - "@iconify-json/fa6-brands": "^1.2.5", - "@iconify-json/fa6-regular": "^1.2.3", - "@iconify-json/fa6-solid": "^1.2.3", - "@iconify-json/ic": "^1.2.4", - "@iconify-json/material-symbols": "^1.2.42", - "@iconify/svelte": "^4.2.0", - "@swup/astro": "^1.6.0", - "@tailwindcss/typography": "^0.5.19", - "astro": "5.13.7", - "astro-expressive-code": "^0.41.2", - "astro-icon": "^1.1.5", - "hastscript": "^9.0.1", - "katex": "^0.16.25", - "markdown-it": "^14.1.0", - "mdast-util-to-string": "^4.0.0", - "overlayscrollbars": "^2.12.0", - "pagefind": "^1.4.0", - "photoswipe": "^5.4.4", - "reading-time": "^1.5.0", - "rehype-autolink-headings": "^7.1.0", - "rehype-components": "^0.3.0", - "rehype-external-links": "^3.0.0", - "rehype-katex": "^7.0.1", - "rehype-slug": "^6.0.0", - "remark-directive": "^3.0.1", - "remark-directive-rehype": "^0.4.2", - "remark-github-admonitions-to-directives": "^1.0.5", - "remark-math": "^6.0.0", - "remark-sectionize": "^2.1.0", - "sanitize-html": "^2.17.0", - "sharp": "^0.34.4", - "stylus": "^0.64.0", - "svelte": "^5.38.10", - "tailwindcss": "^3.4.18", - "typescript": "^5.9.3", - "unist-util-visit": "^5.0.0", - "css": "^3.0.0", - "postcss": "^8.4.32" - }, - "devDependencies": { - "@astrojs/ts-plugin": "^1.10.5", - "@biomejs/biome": "2.2.4", - "@rollup/plugin-yaml": "^4.1.2", - "@types/hast": "^3.0.4", - "@types/markdown-it": "^14.1.2", - "@types/mdast": "^4.0.4", - "@types/sanitize-html": "^2.16.0", - "postcss-import": "^16.1.1", - "postcss-nesting": "^13.0.2" - }, - "overrides": { - "postcss-stylus": "https://github.com/stylus/stylus/archive/refs/tags/0.64.0.tar.gz" - }, - "packageManager": "pnpm@9.14.4" -} diff --git a/pagefind.yml b/pagefind.yml deleted file mode 100644 index fdb9528..0000000 --- a/pagefind.yml +++ /dev/null @@ -1,6 +0,0 @@ -exclude_selectors: - - "span.katex" - - "span.katex-display" - - "[data-pagefind-ignore]" - - ".search-panel" - - "#search-panel" diff --git a/pagefind/fragment/zh-cn_105a373.pf_fragment b/pagefind/fragment/zh-cn_105a373.pf_fragment new file mode 100644 index 0000000..3b6ce2e Binary files /dev/null and b/pagefind/fragment/zh-cn_105a373.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_11a8ce1.pf_fragment b/pagefind/fragment/zh-cn_11a8ce1.pf_fragment new file mode 100644 index 0000000..9fd5046 Binary files /dev/null and b/pagefind/fragment/zh-cn_11a8ce1.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_25bf463.pf_fragment b/pagefind/fragment/zh-cn_25bf463.pf_fragment new file mode 100644 index 0000000..e64447d Binary files /dev/null and b/pagefind/fragment/zh-cn_25bf463.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_2849f6d.pf_fragment b/pagefind/fragment/zh-cn_2849f6d.pf_fragment new file mode 100644 index 0000000..b67513e Binary files /dev/null and b/pagefind/fragment/zh-cn_2849f6d.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_28768dc.pf_fragment b/pagefind/fragment/zh-cn_28768dc.pf_fragment new file mode 100644 index 0000000..4bc5b32 Binary files /dev/null and b/pagefind/fragment/zh-cn_28768dc.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_2e36de8.pf_fragment b/pagefind/fragment/zh-cn_2e36de8.pf_fragment new file mode 100644 index 0000000..3af01b3 Binary files /dev/null and b/pagefind/fragment/zh-cn_2e36de8.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_387469c.pf_fragment b/pagefind/fragment/zh-cn_387469c.pf_fragment new file mode 100644 index 0000000..67f6a79 Binary files /dev/null and b/pagefind/fragment/zh-cn_387469c.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_39dde56.pf_fragment b/pagefind/fragment/zh-cn_39dde56.pf_fragment new file mode 100644 index 0000000..9b516e1 Binary files /dev/null and b/pagefind/fragment/zh-cn_39dde56.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_3c483eb.pf_fragment b/pagefind/fragment/zh-cn_3c483eb.pf_fragment new file mode 100644 index 0000000..29187ca Binary files /dev/null and b/pagefind/fragment/zh-cn_3c483eb.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_3fa4a74.pf_fragment b/pagefind/fragment/zh-cn_3fa4a74.pf_fragment new file mode 100644 index 0000000..6b80474 Binary files /dev/null and b/pagefind/fragment/zh-cn_3fa4a74.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_41182e7.pf_fragment b/pagefind/fragment/zh-cn_41182e7.pf_fragment new file mode 100644 index 0000000..98852bc Binary files /dev/null and b/pagefind/fragment/zh-cn_41182e7.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_41c9747.pf_fragment b/pagefind/fragment/zh-cn_41c9747.pf_fragment new file mode 100644 index 0000000..cf72712 Binary files /dev/null and b/pagefind/fragment/zh-cn_41c9747.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_4390fb3.pf_fragment b/pagefind/fragment/zh-cn_4390fb3.pf_fragment new file mode 100644 index 0000000..1021ae2 Binary files /dev/null and b/pagefind/fragment/zh-cn_4390fb3.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_47f5c48.pf_fragment b/pagefind/fragment/zh-cn_47f5c48.pf_fragment new file mode 100644 index 0000000..2b230a9 Binary files /dev/null and b/pagefind/fragment/zh-cn_47f5c48.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_54ddbf4.pf_fragment b/pagefind/fragment/zh-cn_54ddbf4.pf_fragment new file mode 100644 index 0000000..2945b78 Binary files /dev/null and b/pagefind/fragment/zh-cn_54ddbf4.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_6370237.pf_fragment b/pagefind/fragment/zh-cn_6370237.pf_fragment new file mode 100644 index 0000000..0da69ca Binary files /dev/null and b/pagefind/fragment/zh-cn_6370237.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_6571c9f.pf_fragment b/pagefind/fragment/zh-cn_6571c9f.pf_fragment new file mode 100644 index 0000000..c2b39d9 Binary files /dev/null and b/pagefind/fragment/zh-cn_6571c9f.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_6a41ec5.pf_fragment b/pagefind/fragment/zh-cn_6a41ec5.pf_fragment new file mode 100644 index 0000000..3a4f718 Binary files /dev/null and b/pagefind/fragment/zh-cn_6a41ec5.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_6dec461.pf_fragment b/pagefind/fragment/zh-cn_6dec461.pf_fragment new file mode 100644 index 0000000..8631d8f Binary files /dev/null and b/pagefind/fragment/zh-cn_6dec461.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_7f6072c.pf_fragment b/pagefind/fragment/zh-cn_7f6072c.pf_fragment new file mode 100644 index 0000000..bc19d3f Binary files /dev/null and b/pagefind/fragment/zh-cn_7f6072c.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_7fcba55.pf_fragment b/pagefind/fragment/zh-cn_7fcba55.pf_fragment new file mode 100644 index 0000000..a089ef5 Binary files /dev/null and b/pagefind/fragment/zh-cn_7fcba55.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_83e0a11.pf_fragment b/pagefind/fragment/zh-cn_83e0a11.pf_fragment new file mode 100644 index 0000000..1934dbf Binary files /dev/null and b/pagefind/fragment/zh-cn_83e0a11.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_882c9dd.pf_fragment b/pagefind/fragment/zh-cn_882c9dd.pf_fragment new file mode 100644 index 0000000..e785e70 Binary files /dev/null and b/pagefind/fragment/zh-cn_882c9dd.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_8a2a176.pf_fragment b/pagefind/fragment/zh-cn_8a2a176.pf_fragment new file mode 100644 index 0000000..a30c3ac Binary files /dev/null and b/pagefind/fragment/zh-cn_8a2a176.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_8cd1bdb.pf_fragment b/pagefind/fragment/zh-cn_8cd1bdb.pf_fragment new file mode 100644 index 0000000..82dc299 Binary files /dev/null and b/pagefind/fragment/zh-cn_8cd1bdb.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_905c55a.pf_fragment b/pagefind/fragment/zh-cn_905c55a.pf_fragment new file mode 100644 index 0000000..467d8a7 Binary files /dev/null and b/pagefind/fragment/zh-cn_905c55a.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_9af82dc.pf_fragment b/pagefind/fragment/zh-cn_9af82dc.pf_fragment new file mode 100644 index 0000000..2c35389 Binary files /dev/null and b/pagefind/fragment/zh-cn_9af82dc.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_a3bbea5.pf_fragment b/pagefind/fragment/zh-cn_a3bbea5.pf_fragment new file mode 100644 index 0000000..c95f92b Binary files /dev/null and b/pagefind/fragment/zh-cn_a3bbea5.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_a635ea4.pf_fragment b/pagefind/fragment/zh-cn_a635ea4.pf_fragment new file mode 100644 index 0000000..941728b Binary files /dev/null and b/pagefind/fragment/zh-cn_a635ea4.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_a969dbd.pf_fragment b/pagefind/fragment/zh-cn_a969dbd.pf_fragment new file mode 100644 index 0000000..7653f22 Binary files /dev/null and b/pagefind/fragment/zh-cn_a969dbd.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_af93526.pf_fragment b/pagefind/fragment/zh-cn_af93526.pf_fragment new file mode 100644 index 0000000..54e17f7 Binary files /dev/null and b/pagefind/fragment/zh-cn_af93526.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_b57673b.pf_fragment b/pagefind/fragment/zh-cn_b57673b.pf_fragment new file mode 100644 index 0000000..e307951 Binary files /dev/null and b/pagefind/fragment/zh-cn_b57673b.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_bfbe442.pf_fragment b/pagefind/fragment/zh-cn_bfbe442.pf_fragment new file mode 100644 index 0000000..af29fde Binary files /dev/null and b/pagefind/fragment/zh-cn_bfbe442.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_c9bcb8f.pf_fragment b/pagefind/fragment/zh-cn_c9bcb8f.pf_fragment new file mode 100644 index 0000000..a086275 Binary files /dev/null and b/pagefind/fragment/zh-cn_c9bcb8f.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_e26b165.pf_fragment b/pagefind/fragment/zh-cn_e26b165.pf_fragment new file mode 100644 index 0000000..fc59401 Binary files /dev/null and b/pagefind/fragment/zh-cn_e26b165.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_e2f032c.pf_fragment b/pagefind/fragment/zh-cn_e2f032c.pf_fragment new file mode 100644 index 0000000..2ae8670 Binary files /dev/null and b/pagefind/fragment/zh-cn_e2f032c.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_f09a4ef.pf_fragment b/pagefind/fragment/zh-cn_f09a4ef.pf_fragment new file mode 100644 index 0000000..bfa8f47 Binary files /dev/null and b/pagefind/fragment/zh-cn_f09a4ef.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_fd83a9c.pf_fragment b/pagefind/fragment/zh-cn_fd83a9c.pf_fragment new file mode 100644 index 0000000..100f81d Binary files /dev/null and b/pagefind/fragment/zh-cn_fd83a9c.pf_fragment differ diff --git a/pagefind/fragment/zh-cn_ff5a993.pf_fragment b/pagefind/fragment/zh-cn_ff5a993.pf_fragment new file mode 100644 index 0000000..3fb36aa Binary files /dev/null and b/pagefind/fragment/zh-cn_ff5a993.pf_fragment differ diff --git a/pagefind/index/zh-cn_a1ca33f.pf_index b/pagefind/index/zh-cn_a1ca33f.pf_index new file mode 100644 index 0000000..b962353 Binary files /dev/null and b/pagefind/index/zh-cn_a1ca33f.pf_index differ diff --git a/pagefind/index/zh-cn_ae53642.pf_index b/pagefind/index/zh-cn_ae53642.pf_index new file mode 100644 index 0000000..a395814 Binary files /dev/null and b/pagefind/index/zh-cn_ae53642.pf_index differ diff --git a/pagefind/pagefind-entry.json b/pagefind/pagefind-entry.json new file mode 100644 index 0000000..10fe370 --- /dev/null +++ b/pagefind/pagefind-entry.json @@ -0,0 +1 @@ +{"version":"1.4.0","languages":{"zh-cn":{"hash":"zh-cn_e5263769f77e1","wasm":null,"page_count":39}},"include_characters":["_","‿","⁀","⁔","︳","︴","﹍","﹎","﹏","_"]} \ No newline at end of file diff --git a/pagefind/pagefind-highlight.js b/pagefind/pagefind-highlight.js new file mode 100644 index 0000000..b818955 --- /dev/null +++ b/pagefind/pagefind-highlight.js @@ -0,0 +1,1064 @@ +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); + +// node_modules/mark.js/dist/mark.js +var require_mark = __commonJS({ + "node_modules/mark.js/dist/mark.js"(exports, module) { + (function(global, factory) { + typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory() : typeof define === "function" && define.amd ? define(factory) : global.Mark = factory(); + })(exports, (function() { + "use strict"; + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function(obj) { + return typeof obj; + } : function(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + var classCallCheck = function(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + }; + var createClass = /* @__PURE__ */ (function() { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + return function(Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; + })(); + var _extends = Object.assign || function(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + return target; + }; + var DOMIterator = (function() { + function DOMIterator2(ctx) { + var iframes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; + var exclude = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : []; + var iframesTimeout = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 5e3; + classCallCheck(this, DOMIterator2); + this.ctx = ctx; + this.iframes = iframes; + this.exclude = exclude; + this.iframesTimeout = iframesTimeout; + } + createClass(DOMIterator2, [{ + key: "getContexts", + value: function getContexts() { + var ctx = void 0, filteredCtx = []; + if (typeof this.ctx === "undefined" || !this.ctx) { + ctx = []; + } else if (NodeList.prototype.isPrototypeOf(this.ctx)) { + ctx = Array.prototype.slice.call(this.ctx); + } else if (Array.isArray(this.ctx)) { + ctx = this.ctx; + } else if (typeof this.ctx === "string") { + ctx = Array.prototype.slice.call(document.querySelectorAll(this.ctx)); + } else { + ctx = [this.ctx]; + } + ctx.forEach(function(ctx2) { + var isDescendant = filteredCtx.filter(function(contexts) { + return contexts.contains(ctx2); + }).length > 0; + if (filteredCtx.indexOf(ctx2) === -1 && !isDescendant) { + filteredCtx.push(ctx2); + } + }); + return filteredCtx; + } + }, { + key: "getIframeContents", + value: function getIframeContents(ifr, successFn) { + var errorFn = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : function() { + }; + var doc = void 0; + try { + var ifrWin = ifr.contentWindow; + doc = ifrWin.document; + if (!ifrWin || !doc) { + throw new Error("iframe inaccessible"); + } + } catch (e) { + errorFn(); + } + if (doc) { + successFn(doc); + } + } + }, { + key: "isIframeBlank", + value: function isIframeBlank(ifr) { + var bl = "about:blank", src = ifr.getAttribute("src").trim(), href = ifr.contentWindow.location.href; + return href === bl && src !== bl && src; + } + }, { + key: "observeIframeLoad", + value: function observeIframeLoad(ifr, successFn, errorFn) { + var _this = this; + var called = false, tout = null; + var listener = function listener2() { + if (called) { + return; + } + called = true; + clearTimeout(tout); + try { + if (!_this.isIframeBlank(ifr)) { + ifr.removeEventListener("load", listener2); + _this.getIframeContents(ifr, successFn, errorFn); + } + } catch (e) { + errorFn(); + } + }; + ifr.addEventListener("load", listener); + tout = setTimeout(listener, this.iframesTimeout); + } + }, { + key: "onIframeReady", + value: function onIframeReady(ifr, successFn, errorFn) { + try { + if (ifr.contentWindow.document.readyState === "complete") { + if (this.isIframeBlank(ifr)) { + this.observeIframeLoad(ifr, successFn, errorFn); + } else { + this.getIframeContents(ifr, successFn, errorFn); + } + } else { + this.observeIframeLoad(ifr, successFn, errorFn); + } + } catch (e) { + errorFn(); + } + } + }, { + key: "waitForIframes", + value: function waitForIframes(ctx, done) { + var _this2 = this; + var eachCalled = 0; + this.forEachIframe(ctx, function() { + return true; + }, function(ifr) { + eachCalled++; + _this2.waitForIframes(ifr.querySelector("html"), function() { + if (!--eachCalled) { + done(); + } + }); + }, function(handled) { + if (!handled) { + done(); + } + }); + } + }, { + key: "forEachIframe", + value: function forEachIframe(ctx, filter, each) { + var _this3 = this; + var end = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : function() { + }; + var ifr = ctx.querySelectorAll("iframe"), open = ifr.length, handled = 0; + ifr = Array.prototype.slice.call(ifr); + var checkEnd = function checkEnd2() { + if (--open <= 0) { + end(handled); + } + }; + if (!open) { + checkEnd(); + } + ifr.forEach(function(ifr2) { + if (DOMIterator2.matches(ifr2, _this3.exclude)) { + checkEnd(); + } else { + _this3.onIframeReady(ifr2, function(con) { + if (filter(ifr2)) { + handled++; + each(con); + } + checkEnd(); + }, checkEnd); + } + }); + } + }, { + key: "createIterator", + value: function createIterator(ctx, whatToShow, filter) { + return document.createNodeIterator(ctx, whatToShow, filter, false); + } + }, { + key: "createInstanceOnIframe", + value: function createInstanceOnIframe(contents) { + return new DOMIterator2(contents.querySelector("html"), this.iframes); + } + }, { + key: "compareNodeIframe", + value: function compareNodeIframe(node, prevNode, ifr) { + var compCurr = node.compareDocumentPosition(ifr), prev = Node.DOCUMENT_POSITION_PRECEDING; + if (compCurr & prev) { + if (prevNode !== null) { + var compPrev = prevNode.compareDocumentPosition(ifr), after = Node.DOCUMENT_POSITION_FOLLOWING; + if (compPrev & after) { + return true; + } + } else { + return true; + } + } + return false; + } + }, { + key: "getIteratorNode", + value: function getIteratorNode(itr) { + var prevNode = itr.previousNode(); + var node = void 0; + if (prevNode === null) { + node = itr.nextNode(); + } else { + node = itr.nextNode() && itr.nextNode(); + } + return { + prevNode, + node + }; + } + }, { + key: "checkIframeFilter", + value: function checkIframeFilter(node, prevNode, currIfr, ifr) { + var key = false, handled = false; + ifr.forEach(function(ifrDict, i) { + if (ifrDict.val === currIfr) { + key = i; + handled = ifrDict.handled; + } + }); + if (this.compareNodeIframe(node, prevNode, currIfr)) { + if (key === false && !handled) { + ifr.push({ + val: currIfr, + handled: true + }); + } else if (key !== false && !handled) { + ifr[key].handled = true; + } + return true; + } + if (key === false) { + ifr.push({ + val: currIfr, + handled: false + }); + } + return false; + } + }, { + key: "handleOpenIframes", + value: function handleOpenIframes(ifr, whatToShow, eCb, fCb) { + var _this4 = this; + ifr.forEach(function(ifrDict) { + if (!ifrDict.handled) { + _this4.getIframeContents(ifrDict.val, function(con) { + _this4.createInstanceOnIframe(con).forEachNode(whatToShow, eCb, fCb); + }); + } + }); + } + }, { + key: "iterateThroughNodes", + value: function iterateThroughNodes(whatToShow, ctx, eachCb, filterCb, doneCb) { + var _this5 = this; + var itr = this.createIterator(ctx, whatToShow, filterCb); + var ifr = [], elements = [], node = void 0, prevNode = void 0, retrieveNodes = function retrieveNodes2() { + var _getIteratorNode = _this5.getIteratorNode(itr); + prevNode = _getIteratorNode.prevNode; + node = _getIteratorNode.node; + return node; + }; + while (retrieveNodes()) { + if (this.iframes) { + this.forEachIframe(ctx, function(currIfr) { + return _this5.checkIframeFilter(node, prevNode, currIfr, ifr); + }, function(con) { + _this5.createInstanceOnIframe(con).forEachNode(whatToShow, function(ifrNode) { + return elements.push(ifrNode); + }, filterCb); + }); + } + elements.push(node); + } + elements.forEach(function(node2) { + eachCb(node2); + }); + if (this.iframes) { + this.handleOpenIframes(ifr, whatToShow, eachCb, filterCb); + } + doneCb(); + } + }, { + key: "forEachNode", + value: function forEachNode(whatToShow, each, filter) { + var _this6 = this; + var done = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : function() { + }; + var contexts = this.getContexts(); + var open = contexts.length; + if (!open) { + done(); + } + contexts.forEach(function(ctx) { + var ready = function ready2() { + _this6.iterateThroughNodes(whatToShow, ctx, each, filter, function() { + if (--open <= 0) { + done(); + } + }); + }; + if (_this6.iframes) { + _this6.waitForIframes(ctx, ready); + } else { + ready(); + } + }); + } + }], [{ + key: "matches", + value: function matches(element, selector) { + var selectors = typeof selector === "string" ? [selector] : selector, fn = element.matches || element.matchesSelector || element.msMatchesSelector || element.mozMatchesSelector || element.oMatchesSelector || element.webkitMatchesSelector; + if (fn) { + var match = false; + selectors.every(function(sel) { + if (fn.call(element, sel)) { + match = true; + return false; + } + return true; + }); + return match; + } else { + return false; + } + } + }]); + return DOMIterator2; + })(); + var Mark$1 = (function() { + function Mark3(ctx) { + classCallCheck(this, Mark3); + this.ctx = ctx; + this.ie = false; + var ua = window.navigator.userAgent; + if (ua.indexOf("MSIE") > -1 || ua.indexOf("Trident") > -1) { + this.ie = true; + } + } + createClass(Mark3, [{ + key: "log", + value: function log(msg) { + var level = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "debug"; + var log2 = this.opt.log; + if (!this.opt.debug) { + return; + } + if ((typeof log2 === "undefined" ? "undefined" : _typeof(log2)) === "object" && typeof log2[level] === "function") { + log2[level]("mark.js: " + msg); + } + } + }, { + key: "escapeStr", + value: function escapeStr(str) { + return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); + } + }, { + key: "createRegExp", + value: function createRegExp(str) { + if (this.opt.wildcards !== "disabled") { + str = this.setupWildcardsRegExp(str); + } + str = this.escapeStr(str); + if (Object.keys(this.opt.synonyms).length) { + str = this.createSynonymsRegExp(str); + } + if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) { + str = this.setupIgnoreJoinersRegExp(str); + } + if (this.opt.diacritics) { + str = this.createDiacriticsRegExp(str); + } + str = this.createMergedBlanksRegExp(str); + if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) { + str = this.createJoinersRegExp(str); + } + if (this.opt.wildcards !== "disabled") { + str = this.createWildcardsRegExp(str); + } + str = this.createAccuracyRegExp(str); + return str; + } + }, { + key: "createSynonymsRegExp", + value: function createSynonymsRegExp(str) { + var syn = this.opt.synonyms, sens = this.opt.caseSensitive ? "" : "i", joinerPlaceholder = this.opt.ignoreJoiners || this.opt.ignorePunctuation.length ? "\0" : ""; + for (var index in syn) { + if (syn.hasOwnProperty(index)) { + var value = syn[index], k1 = this.opt.wildcards !== "disabled" ? this.setupWildcardsRegExp(index) : this.escapeStr(index), k2 = this.opt.wildcards !== "disabled" ? this.setupWildcardsRegExp(value) : this.escapeStr(value); + if (k1 !== "" && k2 !== "") { + str = str.replace(new RegExp("(" + this.escapeStr(k1) + "|" + this.escapeStr(k2) + ")", "gm" + sens), joinerPlaceholder + ("(" + this.processSynomyms(k1) + "|") + (this.processSynomyms(k2) + ")") + joinerPlaceholder); + } + } + } + return str; + } + }, { + key: "processSynomyms", + value: function processSynomyms(str) { + if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) { + str = this.setupIgnoreJoinersRegExp(str); + } + return str; + } + }, { + key: "setupWildcardsRegExp", + value: function setupWildcardsRegExp(str) { + str = str.replace(/(?:\\)*\?/g, function(val) { + return val.charAt(0) === "\\" ? "?" : ""; + }); + return str.replace(/(?:\\)*\*/g, function(val) { + return val.charAt(0) === "\\" ? "*" : ""; + }); + } + }, { + key: "createWildcardsRegExp", + value: function createWildcardsRegExp(str) { + var spaces = this.opt.wildcards === "withSpaces"; + return str.replace(/\u0001/g, spaces ? "[\\S\\s]?" : "\\S?").replace(/\u0002/g, spaces ? "[\\S\\s]*?" : "\\S*"); + } + }, { + key: "setupIgnoreJoinersRegExp", + value: function setupIgnoreJoinersRegExp(str) { + return str.replace(/[^(|)\\]/g, function(val, indx, original) { + var nextChar = original.charAt(indx + 1); + if (/[(|)\\]/.test(nextChar) || nextChar === "") { + return val; + } else { + return val + "\0"; + } + }); + } + }, { + key: "createJoinersRegExp", + value: function createJoinersRegExp(str) { + var joiner = []; + var ignorePunctuation = this.opt.ignorePunctuation; + if (Array.isArray(ignorePunctuation) && ignorePunctuation.length) { + joiner.push(this.escapeStr(ignorePunctuation.join(""))); + } + if (this.opt.ignoreJoiners) { + joiner.push("\\u00ad\\u200b\\u200c\\u200d"); + } + return joiner.length ? str.split(/\u0000+/).join("[" + joiner.join("") + "]*") : str; + } + }, { + key: "createDiacriticsRegExp", + value: function createDiacriticsRegExp(str) { + var sens = this.opt.caseSensitive ? "" : "i", dct = this.opt.caseSensitive ? ["a\xE0\xE1\u1EA3\xE3\u1EA1\u0103\u1EB1\u1EAF\u1EB3\u1EB5\u1EB7\xE2\u1EA7\u1EA5\u1EA9\u1EAB\u1EAD\xE4\xE5\u0101\u0105", "A\xC0\xC1\u1EA2\xC3\u1EA0\u0102\u1EB0\u1EAE\u1EB2\u1EB4\u1EB6\xC2\u1EA6\u1EA4\u1EA8\u1EAA\u1EAC\xC4\xC5\u0100\u0104", "c\xE7\u0107\u010D", "C\xC7\u0106\u010C", "d\u0111\u010F", "D\u0110\u010E", "e\xE8\xE9\u1EBB\u1EBD\u1EB9\xEA\u1EC1\u1EBF\u1EC3\u1EC5\u1EC7\xEB\u011B\u0113\u0119", "E\xC8\xC9\u1EBA\u1EBC\u1EB8\xCA\u1EC0\u1EBE\u1EC2\u1EC4\u1EC6\xCB\u011A\u0112\u0118", "i\xEC\xED\u1EC9\u0129\u1ECB\xEE\xEF\u012B", "I\xCC\xCD\u1EC8\u0128\u1ECA\xCE\xCF\u012A", "l\u0142", "L\u0141", "n\xF1\u0148\u0144", "N\xD1\u0147\u0143", "o\xF2\xF3\u1ECF\xF5\u1ECD\xF4\u1ED3\u1ED1\u1ED5\u1ED7\u1ED9\u01A1\u1EDF\u1EE1\u1EDB\u1EDD\u1EE3\xF6\xF8\u014D", "O\xD2\xD3\u1ECE\xD5\u1ECC\xD4\u1ED2\u1ED0\u1ED4\u1ED6\u1ED8\u01A0\u1EDE\u1EE0\u1EDA\u1EDC\u1EE2\xD6\xD8\u014C", "r\u0159", "R\u0158", "s\u0161\u015B\u0219\u015F", "S\u0160\u015A\u0218\u015E", "t\u0165\u021B\u0163", "T\u0164\u021A\u0162", "u\xF9\xFA\u1EE7\u0169\u1EE5\u01B0\u1EEB\u1EE9\u1EED\u1EEF\u1EF1\xFB\xFC\u016F\u016B", "U\xD9\xDA\u1EE6\u0168\u1EE4\u01AF\u1EEA\u1EE8\u1EEC\u1EEE\u1EF0\xDB\xDC\u016E\u016A", "y\xFD\u1EF3\u1EF7\u1EF9\u1EF5\xFF", "Y\xDD\u1EF2\u1EF6\u1EF8\u1EF4\u0178", "z\u017E\u017C\u017A", "Z\u017D\u017B\u0179"] : ["a\xE0\xE1\u1EA3\xE3\u1EA1\u0103\u1EB1\u1EAF\u1EB3\u1EB5\u1EB7\xE2\u1EA7\u1EA5\u1EA9\u1EAB\u1EAD\xE4\xE5\u0101\u0105A\xC0\xC1\u1EA2\xC3\u1EA0\u0102\u1EB0\u1EAE\u1EB2\u1EB4\u1EB6\xC2\u1EA6\u1EA4\u1EA8\u1EAA\u1EAC\xC4\xC5\u0100\u0104", "c\xE7\u0107\u010DC\xC7\u0106\u010C", "d\u0111\u010FD\u0110\u010E", "e\xE8\xE9\u1EBB\u1EBD\u1EB9\xEA\u1EC1\u1EBF\u1EC3\u1EC5\u1EC7\xEB\u011B\u0113\u0119E\xC8\xC9\u1EBA\u1EBC\u1EB8\xCA\u1EC0\u1EBE\u1EC2\u1EC4\u1EC6\xCB\u011A\u0112\u0118", "i\xEC\xED\u1EC9\u0129\u1ECB\xEE\xEF\u012BI\xCC\xCD\u1EC8\u0128\u1ECA\xCE\xCF\u012A", "l\u0142L\u0141", "n\xF1\u0148\u0144N\xD1\u0147\u0143", "o\xF2\xF3\u1ECF\xF5\u1ECD\xF4\u1ED3\u1ED1\u1ED5\u1ED7\u1ED9\u01A1\u1EDF\u1EE1\u1EDB\u1EDD\u1EE3\xF6\xF8\u014DO\xD2\xD3\u1ECE\xD5\u1ECC\xD4\u1ED2\u1ED0\u1ED4\u1ED6\u1ED8\u01A0\u1EDE\u1EE0\u1EDA\u1EDC\u1EE2\xD6\xD8\u014C", "r\u0159R\u0158", "s\u0161\u015B\u0219\u015FS\u0160\u015A\u0218\u015E", "t\u0165\u021B\u0163T\u0164\u021A\u0162", "u\xF9\xFA\u1EE7\u0169\u1EE5\u01B0\u1EEB\u1EE9\u1EED\u1EEF\u1EF1\xFB\xFC\u016F\u016BU\xD9\xDA\u1EE6\u0168\u1EE4\u01AF\u1EEA\u1EE8\u1EEC\u1EEE\u1EF0\xDB\xDC\u016E\u016A", "y\xFD\u1EF3\u1EF7\u1EF9\u1EF5\xFFY\xDD\u1EF2\u1EF6\u1EF8\u1EF4\u0178", "z\u017E\u017C\u017AZ\u017D\u017B\u0179"]; + var handled = []; + str.split("").forEach(function(ch) { + dct.every(function(dct2) { + if (dct2.indexOf(ch) !== -1) { + if (handled.indexOf(dct2) > -1) { + return false; + } + str = str.replace(new RegExp("[" + dct2 + "]", "gm" + sens), "[" + dct2 + "]"); + handled.push(dct2); + } + return true; + }); + }); + return str; + } + }, { + key: "createMergedBlanksRegExp", + value: function createMergedBlanksRegExp(str) { + return str.replace(/[\s]+/gmi, "[\\s]+"); + } + }, { + key: "createAccuracyRegExp", + value: function createAccuracyRegExp(str) { + var _this = this; + var chars = "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\xA1\xBF"; + var acc = this.opt.accuracy, val = typeof acc === "string" ? acc : acc.value, ls = typeof acc === "string" ? [] : acc.limiters, lsJoin = ""; + ls.forEach(function(limiter) { + lsJoin += "|" + _this.escapeStr(limiter); + }); + switch (val) { + case "partially": + default: + return "()(" + str + ")"; + case "complementary": + lsJoin = "\\s" + (lsJoin ? lsJoin : this.escapeStr(chars)); + return "()([^" + lsJoin + "]*" + str + "[^" + lsJoin + "]*)"; + case "exactly": + return "(^|\\s" + lsJoin + ")(" + str + ")(?=$|\\s" + lsJoin + ")"; + } + } + }, { + key: "getSeparatedKeywords", + value: function getSeparatedKeywords(sv) { + var _this2 = this; + var stack = []; + sv.forEach(function(kw) { + if (!_this2.opt.separateWordSearch) { + if (kw.trim() && stack.indexOf(kw) === -1) { + stack.push(kw); + } + } else { + kw.split(" ").forEach(function(kwSplitted) { + if (kwSplitted.trim() && stack.indexOf(kwSplitted) === -1) { + stack.push(kwSplitted); + } + }); + } + }); + return { + "keywords": stack.sort(function(a, b) { + return b.length - a.length; + }), + "length": stack.length + }; + } + }, { + key: "isNumeric", + value: function isNumeric(value) { + return Number(parseFloat(value)) == value; + } + }, { + key: "checkRanges", + value: function checkRanges(array) { + var _this3 = this; + if (!Array.isArray(array) || Object.prototype.toString.call(array[0]) !== "[object Object]") { + this.log("markRanges() will only accept an array of objects"); + this.opt.noMatch(array); + return []; + } + var stack = []; + var last = 0; + array.sort(function(a, b) { + return a.start - b.start; + }).forEach(function(item) { + var _callNoMatchOnInvalid = _this3.callNoMatchOnInvalidRanges(item, last), start = _callNoMatchOnInvalid.start, end = _callNoMatchOnInvalid.end, valid = _callNoMatchOnInvalid.valid; + if (valid) { + item.start = start; + item.length = end - start; + stack.push(item); + last = end; + } + }); + return stack; + } + }, { + key: "callNoMatchOnInvalidRanges", + value: function callNoMatchOnInvalidRanges(range, last) { + var start = void 0, end = void 0, valid = false; + if (range && typeof range.start !== "undefined") { + start = parseInt(range.start, 10); + end = start + parseInt(range.length, 10); + if (this.isNumeric(range.start) && this.isNumeric(range.length) && end - last > 0 && end - start > 0) { + valid = true; + } else { + this.log("Ignoring invalid or overlapping range: " + ("" + JSON.stringify(range))); + this.opt.noMatch(range); + } + } else { + this.log("Ignoring invalid range: " + JSON.stringify(range)); + this.opt.noMatch(range); + } + return { + start, + end, + valid + }; + } + }, { + key: "checkWhitespaceRanges", + value: function checkWhitespaceRanges(range, originalLength, string) { + var end = void 0, valid = true, max = string.length, offset = originalLength - max, start = parseInt(range.start, 10) - offset; + start = start > max ? max : start; + end = start + parseInt(range.length, 10); + if (end > max) { + end = max; + this.log("End range automatically set to the max value of " + max); + } + if (start < 0 || end - start < 0 || start > max || end > max) { + valid = false; + this.log("Invalid range: " + JSON.stringify(range)); + this.opt.noMatch(range); + } else if (string.substring(start, end).replace(/\s+/g, "") === "") { + valid = false; + this.log("Skipping whitespace only range: " + JSON.stringify(range)); + this.opt.noMatch(range); + } + return { + start, + end, + valid + }; + } + }, { + key: "getTextNodes", + value: function getTextNodes(cb) { + var _this4 = this; + var val = "", nodes = []; + this.iterator.forEachNode(NodeFilter.SHOW_TEXT, function(node) { + nodes.push({ + start: val.length, + end: (val += node.textContent).length, + node + }); + }, function(node) { + if (_this4.matchesExclude(node.parentNode)) { + return NodeFilter.FILTER_REJECT; + } else { + return NodeFilter.FILTER_ACCEPT; + } + }, function() { + cb({ + value: val, + nodes + }); + }); + } + }, { + key: "matchesExclude", + value: function matchesExclude(el) { + return DOMIterator.matches(el, this.opt.exclude.concat(["script", "style", "title", "head", "html"])); + } + }, { + key: "wrapRangeInTextNode", + value: function wrapRangeInTextNode(node, start, end) { + var hEl = !this.opt.element ? "mark" : this.opt.element, startNode = node.splitText(start), ret = startNode.splitText(end - start); + var repl = document.createElement(hEl); + repl.setAttribute("data-markjs", "true"); + if (this.opt.className) { + repl.setAttribute("class", this.opt.className); + } + repl.textContent = startNode.textContent; + startNode.parentNode.replaceChild(repl, startNode); + return ret; + } + }, { + key: "wrapRangeInMappedTextNode", + value: function wrapRangeInMappedTextNode(dict, start, end, filterCb, eachCb) { + var _this5 = this; + dict.nodes.every(function(n, i) { + var sibl = dict.nodes[i + 1]; + if (typeof sibl === "undefined" || sibl.start > start) { + if (!filterCb(n.node)) { + return false; + } + var s = start - n.start, e = (end > n.end ? n.end : end) - n.start, startStr = dict.value.substr(0, n.start), endStr = dict.value.substr(e + n.start); + n.node = _this5.wrapRangeInTextNode(n.node, s, e); + dict.value = startStr + endStr; + dict.nodes.forEach(function(k, j) { + if (j >= i) { + if (dict.nodes[j].start > 0 && j !== i) { + dict.nodes[j].start -= e; + } + dict.nodes[j].end -= e; + } + }); + end -= e; + eachCb(n.node.previousSibling, n.start); + if (end > n.end) { + start = n.end; + } else { + return false; + } + } + return true; + }); + } + }, { + key: "wrapMatches", + value: function wrapMatches(regex, ignoreGroups, filterCb, eachCb, endCb) { + var _this6 = this; + var matchIdx = ignoreGroups === 0 ? 0 : ignoreGroups + 1; + this.getTextNodes(function(dict) { + dict.nodes.forEach(function(node) { + node = node.node; + var match = void 0; + while ((match = regex.exec(node.textContent)) !== null && match[matchIdx] !== "") { + if (!filterCb(match[matchIdx], node)) { + continue; + } + var pos = match.index; + if (matchIdx !== 0) { + for (var i = 1; i < matchIdx; i++) { + pos += match[i].length; + } + } + node = _this6.wrapRangeInTextNode(node, pos, pos + match[matchIdx].length); + eachCb(node.previousSibling); + regex.lastIndex = 0; + } + }); + endCb(); + }); + } + }, { + key: "wrapMatchesAcrossElements", + value: function wrapMatchesAcrossElements(regex, ignoreGroups, filterCb, eachCb, endCb) { + var _this7 = this; + var matchIdx = ignoreGroups === 0 ? 0 : ignoreGroups + 1; + this.getTextNodes(function(dict) { + var match = void 0; + while ((match = regex.exec(dict.value)) !== null && match[matchIdx] !== "") { + var start = match.index; + if (matchIdx !== 0) { + for (var i = 1; i < matchIdx; i++) { + start += match[i].length; + } + } + var end = start + match[matchIdx].length; + _this7.wrapRangeInMappedTextNode(dict, start, end, function(node) { + return filterCb(match[matchIdx], node); + }, function(node, lastIndex) { + regex.lastIndex = lastIndex; + eachCb(node); + }); + } + endCb(); + }); + } + }, { + key: "wrapRangeFromIndex", + value: function wrapRangeFromIndex(ranges, filterCb, eachCb, endCb) { + var _this8 = this; + this.getTextNodes(function(dict) { + var originalLength = dict.value.length; + ranges.forEach(function(range, counter) { + var _checkWhitespaceRange = _this8.checkWhitespaceRanges(range, originalLength, dict.value), start = _checkWhitespaceRange.start, end = _checkWhitespaceRange.end, valid = _checkWhitespaceRange.valid; + if (valid) { + _this8.wrapRangeInMappedTextNode(dict, start, end, function(node) { + return filterCb(node, range, dict.value.substring(start, end), counter); + }, function(node) { + eachCb(node, range); + }); + } + }); + endCb(); + }); + } + }, { + key: "unwrapMatches", + value: function unwrapMatches(node) { + var parent = node.parentNode; + var docFrag = document.createDocumentFragment(); + while (node.firstChild) { + docFrag.appendChild(node.removeChild(node.firstChild)); + } + parent.replaceChild(docFrag, node); + if (!this.ie) { + parent.normalize(); + } else { + this.normalizeTextNode(parent); + } + } + }, { + key: "normalizeTextNode", + value: function normalizeTextNode(node) { + if (!node) { + return; + } + if (node.nodeType === 3) { + while (node.nextSibling && node.nextSibling.nodeType === 3) { + node.nodeValue += node.nextSibling.nodeValue; + node.parentNode.removeChild(node.nextSibling); + } + } else { + this.normalizeTextNode(node.firstChild); + } + this.normalizeTextNode(node.nextSibling); + } + }, { + key: "markRegExp", + value: function markRegExp(regexp, opt) { + var _this9 = this; + this.opt = opt; + this.log('Searching with expression "' + regexp + '"'); + var totalMatches = 0, fn = "wrapMatches"; + var eachCb = function eachCb2(element) { + totalMatches++; + _this9.opt.each(element); + }; + if (this.opt.acrossElements) { + fn = "wrapMatchesAcrossElements"; + } + this[fn](regexp, this.opt.ignoreGroups, function(match, node) { + return _this9.opt.filter(node, match, totalMatches); + }, eachCb, function() { + if (totalMatches === 0) { + _this9.opt.noMatch(regexp); + } + _this9.opt.done(totalMatches); + }); + } + }, { + key: "mark", + value: function mark(sv, opt) { + var _this10 = this; + this.opt = opt; + var totalMatches = 0, fn = "wrapMatches"; + var _getSeparatedKeywords = this.getSeparatedKeywords(typeof sv === "string" ? [sv] : sv), kwArr = _getSeparatedKeywords.keywords, kwArrLen = _getSeparatedKeywords.length, sens = this.opt.caseSensitive ? "" : "i", handler = function handler2(kw) { + var regex = new RegExp(_this10.createRegExp(kw), "gm" + sens), matches = 0; + _this10.log('Searching with expression "' + regex + '"'); + _this10[fn](regex, 1, function(term, node) { + return _this10.opt.filter(node, kw, totalMatches, matches); + }, function(element) { + matches++; + totalMatches++; + _this10.opt.each(element); + }, function() { + if (matches === 0) { + _this10.opt.noMatch(kw); + } + if (kwArr[kwArrLen - 1] === kw) { + _this10.opt.done(totalMatches); + } else { + handler2(kwArr[kwArr.indexOf(kw) + 1]); + } + }); + }; + if (this.opt.acrossElements) { + fn = "wrapMatchesAcrossElements"; + } + if (kwArrLen === 0) { + this.opt.done(totalMatches); + } else { + handler(kwArr[0]); + } + } + }, { + key: "markRanges", + value: function markRanges(rawRanges, opt) { + var _this11 = this; + this.opt = opt; + var totalMatches = 0, ranges = this.checkRanges(rawRanges); + if (ranges && ranges.length) { + this.log("Starting to mark with the following ranges: " + JSON.stringify(ranges)); + this.wrapRangeFromIndex(ranges, function(node, range, match, counter) { + return _this11.opt.filter(node, range, match, counter); + }, function(element, range) { + totalMatches++; + _this11.opt.each(element, range); + }, function() { + _this11.opt.done(totalMatches); + }); + } else { + this.opt.done(totalMatches); + } + } + }, { + key: "unmark", + value: function unmark(opt) { + var _this12 = this; + this.opt = opt; + var sel = this.opt.element ? this.opt.element : "*"; + sel += "[data-markjs]"; + if (this.opt.className) { + sel += "." + this.opt.className; + } + this.log('Removal selector "' + sel + '"'); + this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT, function(node) { + _this12.unwrapMatches(node); + }, function(node) { + var matchesSel = DOMIterator.matches(node, sel), matchesExclude = _this12.matchesExclude(node); + if (!matchesSel || matchesExclude) { + return NodeFilter.FILTER_REJECT; + } else { + return NodeFilter.FILTER_ACCEPT; + } + }, this.opt.done); + } + }, { + key: "opt", + set: function set$$1(val) { + this._opt = _extends({}, { + "element": "", + "className": "", + "exclude": [], + "iframes": false, + "iframesTimeout": 5e3, + "separateWordSearch": true, + "diacritics": true, + "synonyms": {}, + "accuracy": "partially", + "acrossElements": false, + "caseSensitive": false, + "ignoreJoiners": false, + "ignoreGroups": 0, + "ignorePunctuation": [], + "wildcards": "disabled", + "each": function each() { + }, + "noMatch": function noMatch() { + }, + "filter": function filter() { + return true; + }, + "done": function done() { + }, + "debug": false, + "log": window.console + }, val); + }, + get: function get$$1() { + return this._opt; + } + }, { + key: "iterator", + get: function get$$1() { + return new DOMIterator(this.ctx, this.opt.iframes, this.opt.exclude, this.opt.iframesTimeout); + } + }]); + return Mark3; + })(); + function Mark2(ctx) { + var _this = this; + var instance = new Mark$1(ctx); + this.mark = function(sv, opt) { + instance.mark(sv, opt); + return _this; + }; + this.markRegExp = function(sv, opt) { + instance.markRegExp(sv, opt); + return _this; + }; + this.markRanges = function(sv, opt) { + instance.markRanges(sv, opt); + return _this; + }; + this.unmark = function(opt) { + instance.unmark(opt); + return _this; + }; + return this; + } + return Mark2; + })); + } +}); + +// lib/highlight.ts +var import_mark = __toESM(require_mark(), 1); +var PagefindHighlight = class { + constructor(options = { + markContext: null, + highlightParam: "pagefind-highlight", + markOptions: { + className: "pagefind-highlight", + exclude: ["[data-pagefind-ignore]", "[data-pagefind-ignore] *"] + }, + addStyles: true + }) { + var _a, _b; + const { highlightParam, markContext, markOptions, addStyles } = options; + this.highlightParam = highlightParam ?? "pagefind-highlight"; + this.addStyles = addStyles ?? true; + this.markContext = markContext !== void 0 ? markContext : null; + this.markOptions = markOptions !== void 0 ? markOptions : { + className: "pagefind-highlight", + exclude: ["[data-pagefind-ignore]", "[data-pagefind-ignore] *"] + }; + (_a = this.markOptions).className ?? (_a.className = "pagefind__highlight"); + (_b = this.markOptions).exclude ?? (_b.exclude = [ + "[data-pagefind-ignore]", + "[data-pagefind-ignore] *" + ]); + this.markOptions.separateWordSearch = false; + this.highlight(); + } + getHighlightParams(paramName) { + const urlParams = new URLSearchParams(window.location.search); + return urlParams.getAll(paramName); + } + // Inline styles might be too hard to override + addHighlightStyles(className) { + if (!className) return; + const styleElement = document.createElement("style"); + styleElement.innerText = `:where(.${className}) { background-color: yellow; color: black; }`; + document.head.appendChild(styleElement); + } + createMarkInstance() { + if (this.markContext) { + return new import_mark.default(this.markContext); + } + const pagefindBody = document.querySelectorAll("[data-pagefind-body]"); + if (pagefindBody.length !== 0) { + return new import_mark.default(pagefindBody); + } else { + return new import_mark.default(document.body); + } + } + markText(instance, text) { + instance.mark(text, this.markOptions); + } + highlight() { + const params = this.getHighlightParams(this.highlightParam); + if (!params || params.length === 0) return; + this.addStyles && this.addHighlightStyles(this.markOptions.className); + const markInstance = this.createMarkInstance(); + this.markText(markInstance, params); + } +}; +window.PagefindHighlight = PagefindHighlight; +export { + PagefindHighlight as default +}; +/*! Bundled license information: + +mark.js/dist/mark.js: + (*!*************************************************** + * mark.js v8.11.1 + * https://markjs.io/ + * Copyright (c) 2014–2018, Julian Kühnel + * Released under the MIT license https://git.io/vwTVl + *****************************************************) +*/ diff --git a/pagefind/pagefind-modular-ui.css b/pagefind/pagefind-modular-ui.css new file mode 100644 index 0000000..9c6793e --- /dev/null +++ b/pagefind/pagefind-modular-ui.css @@ -0,0 +1,214 @@ +:root { + --pagefind-ui-scale: 0.8; + --pagefind-ui-primary: #034AD8; + --pagefind-ui-fade: #707070; + --pagefind-ui-text: #393939; + --pagefind-ui-background: #ffffff; + --pagefind-ui-border: #eeeeee; + --pagefind-ui-tag: #eeeeee; + --pagefind-ui-border-width: 2px; + --pagefind-ui-border-radius: 8px; + --pagefind-ui-image-border-radius: 8px; + --pagefind-ui-image-box-ratio: 3 / 2; + --pagefind-ui-font: system, -apple-system, ".SFNSText-Regular", + "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", + "Lucida Grande", sans-serif; +} + +[data-pfmod-hidden] { + display: none !important; +} + +[data-pfmod-suppressed] { + opacity: 0 !important; + pointer-events: none !important; +} + +[data-pfmod-sr-hidden] { + -webkit-clip: rect(0 0 0 0) !important; + clip: rect(0 0 0 0) !important; + -webkit-clip-path: inset(100%) !important; + clip-path: inset(100%) !important; + height: 1px !important; + overflow: hidden !important; + overflow: clip !important; + position: absolute !important; + white-space: nowrap !important; + width: 1px !important; +} + +[data-pfmod-loading] { + color: var(--pagefind-ui-text); + background-color: var(--pagefind-ui-text); + border-radius: var(--pagefind-ui-border-radius); + opacity: 0.1; + pointer-events: none; +} + +/* Input */ + +.pagefind-modular-input-wrapper { + position: relative; +} + +.pagefind-modular-input-wrapper::before { + background-color: var(--pagefind-ui-text); + width: calc(18px * var(--pagefind-ui-scale)); + height: calc(18px * var(--pagefind-ui-scale)); + top: calc(23px * var(--pagefind-ui-scale)); + left: calc(20px * var(--pagefind-ui-scale)); + content: ""; + position: absolute; + display: block; + opacity: 0.7; + -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.7549 11.255H11.9649L11.6849 10.985C12.6649 9.845 13.2549 8.365 13.2549 6.755C13.2549 3.165 10.3449 0.255005 6.75488 0.255005C3.16488 0.255005 0.254883 3.165 0.254883 6.755C0.254883 10.345 3.16488 13.255 6.75488 13.255C8.36488 13.255 9.84488 12.665 10.9849 11.685L11.2549 11.965V12.755L16.2549 17.745L17.7449 16.255L12.7549 11.255ZM6.75488 11.255C4.26488 11.255 2.25488 9.245 2.25488 6.755C2.25488 4.26501 4.26488 2.255 6.75488 2.255C9.24488 2.255 11.2549 4.26501 11.2549 6.755C11.2549 9.245 9.24488 11.255 6.75488 11.255Z' fill='%23000000'/%3E%3C/svg%3E%0A"); + mask-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.7549 11.255H11.9649L11.6849 10.985C12.6649 9.845 13.2549 8.365 13.2549 6.755C13.2549 3.165 10.3449 0.255005 6.75488 0.255005C3.16488 0.255005 0.254883 3.165 0.254883 6.755C0.254883 10.345 3.16488 13.255 6.75488 13.255C8.36488 13.255 9.84488 12.665 10.9849 11.685L11.2549 11.965V12.755L16.2549 17.745L17.7449 16.255L12.7549 11.255ZM6.75488 11.255C4.26488 11.255 2.25488 9.245 2.25488 6.755C2.25488 4.26501 4.26488 2.255 6.75488 2.255C9.24488 2.255 11.2549 4.26501 11.2549 6.755C11.2549 9.245 9.24488 11.255 6.75488 11.255Z' fill='%23000000'/%3E%3C/svg%3E%0A"); + -webkit-mask-size: 100%; + mask-size: 100%; + z-index: 9; + pointer-events: none; +} + +.pagefind-modular-input { + height: calc(64px * var(--pagefind-ui-scale)); + padding: 0 calc(70px * var(--pagefind-ui-scale)) 0 calc(54px * var(--pagefind-ui-scale)); + background-color: var(--pagefind-ui-background); + border: var(--pagefind-ui-border-width) solid var(--pagefind-ui-border); + border-radius: var(--pagefind-ui-border-radius); + font-size: calc(21px * var(--pagefind-ui-scale)); + position: relative; + appearance: none; + -webkit-appearance: none; + display: flex; + width: 100%; + box-sizing: border-box; + font-weight: 700; +} + +.pagefind-modular-input::placeholder { + opacity: 0.2; +} + +.pagefind-modular-input-clear { + position: absolute; + top: calc(2px * var(--pagefind-ui-scale)); + right: calc(2px * var(--pagefind-ui-scale)); + height: calc(60px * var(--pagefind-ui-scale)); + border-radius: var(--pagefind-ui-border-radius); + padding: 0 calc(15px * var(--pagefind-ui-scale)) 0 calc(2px * var(--pagefind-ui-scale)); + color: var(--pagefind-ui-text); + font-size: calc(14px * var(--pagefind-ui-scale)); + cursor: pointer; + background-color: var(--pagefind-ui-background); + border: none; + appearance: none; +} + +/* ResultList */ + +.pagefind-modular-list-result { + list-style-type: none; + display: flex; + align-items: flex-start; + gap: min(calc(40px * var(--pagefind-ui-scale)), 3%); + padding: calc(30px * var(--pagefind-ui-scale)) 0 calc(40px * var(--pagefind-ui-scale)); + border-top: solid var(--pagefind-ui-border-width) var(--pagefind-ui-border); +} + +.pagefind-modular-list-result:last-of-type { + border-bottom: solid var(--pagefind-ui-border-width) var(--pagefind-ui-border); +} + +.pagefind-modular-list-thumb { + width: min(30%, + calc((30% - (100px * var(--pagefind-ui-scale))) * 100000)); + max-width: calc(120px * var(--pagefind-ui-scale)); + margin-top: calc(10px * var(--pagefind-ui-scale)); + aspect-ratio: var(--pagefind-ui-image-box-ratio); + position: relative; +} + +.pagefind-modular-list-image { + display: block; + position: absolute; + left: 50%; + transform: translateX(-50%); + font-size: 0; + width: auto; + height: auto; + max-width: 100%; + max-height: 100%; + border-radius: var(--pagefind-ui-image-border-radius); +} + +.pagefind-modular-list-inner { + flex: 1; + display: flex; + flex-direction: column; + align-items: flex-start; + margin-top: calc(10px * var(--pagefind-ui-scale)); +} + +.pagefind-modular-list-title { + display: inline-block; + font-weight: 700; + font-size: calc(21px * var(--pagefind-ui-scale)); + margin-top: 0; + margin-bottom: 0; +} + +.pagefind-modular-list-link { + color: var(--pagefind-ui-text); + text-decoration: none; +} + +.pagefind-modular-list-link:hover { + text-decoration: underline; +} + +.pagefind-modular-list-excerpt { + display: inline-block; + font-weight: 400; + font-size: calc(16px * var(--pagefind-ui-scale)); + margin-top: calc(4px * var(--pagefind-ui-scale)); + margin-bottom: 0; + min-width: calc(250px * var(--pagefind-ui-scale)); +} + +/* FilterPills */ + +.pagefind-modular-filter-pills-wrapper { + overflow-x: scroll; + padding: 15px 0; +} + +.pagefind-modular-filter-pills { + display: flex; + gap: 6px; +} + +.pagefind-modular-filter-pill { + display: flex; + justify-content: center; + align-items: center; + border: none; + appearance: none; + padding: 0 calc(24px * var(--pagefind-ui-scale)); + background-color: var(--pagefind-ui-background); + color: var(--pagefind-ui-fade); + border: var(--pagefind-ui-border-width) solid var(--pagefind-ui-border); + border-radius: calc(25px * var(--pagefind-ui-scale)); + font-size: calc(18px * var(--pagefind-ui-scale)); + height: calc(50px * var(--pagefind-ui-scale)); + cursor: pointer; + white-space: nowrap; +} + +.pagefind-modular-filter-pill:hover { + border-color: var(--pagefind-ui-primary); +} + +.pagefind-modular-filter-pill[aria-pressed="true"] { + border-color: var(--pagefind-ui-primary); + color: var(--pagefind-ui-primary); +} \ No newline at end of file diff --git a/pagefind/pagefind-modular-ui.js b/pagefind/pagefind-modular-ui.js new file mode 100644 index 0000000..6caacd6 --- /dev/null +++ b/pagefind/pagefind-modular-ui.js @@ -0,0 +1,8 @@ +(()=>{var w=Object.defineProperty;var b=(i,e)=>{for(var t in e)w(i,t,{get:e[t],enumerable:!0})};var f={};b(f,{FilterPills:()=>c,Input:()=>a,Instance:()=>p,ResultList:()=>o,Summary:()=>h});var r=class i{constructor(e){this.element=document.createElement(e)}id(e){return this.element.id=e,this}class(e){return this.element.classList.add(e),this}attrs(e){for(let[t,s]of Object.entries(e))this.element.setAttribute(t,s);return this}text(e){return this.element.innerText=e,this}html(e){return this.element.innerHTML=e,this}handle(e,t){return this.element.addEventListener(e,t),this}addTo(e){return e instanceof i?e.element.appendChild(this.element):e.appendChild(this.element),this.element}};var T=async(i=100)=>new Promise(e=>setTimeout(e,i)),a=class{constructor(e={}){if(this.inputEl=null,this.clearEl=null,this.instance=null,this.searchID=0,this.debounceTimeoutMs=e.debounceTimeoutMs??300,e.inputElement){if(e.containerElement){console.warn("[Pagefind Input component]: inputElement and containerElement both supplied. Ignoring the container option.");return}this.initExisting(e.inputElement)}else if(e.containerElement)this.initContainer(e.containerElement);else{console.error("[Pagefind Input component]: No selector supplied for containerElement or inputElement");return}this.inputEl.addEventListener("input",async t=>{if(this.instance&&typeof t?.target?.value=="string"){this.updateState(t.target.value);let s=++this.searchID;if(await T(this.debounceTimeoutMs),s!==this.searchID)return null;this.instance?.triggerSearch(t.target.value)}}),this.inputEl.addEventListener("keydown",t=>{t.key==="Escape"&&(++this.searchID,this.inputEl.value="",this.instance?.triggerSearch(""),this.updateState("")),t.key==="Enter"&&t.preventDefault()}),this.inputEl.addEventListener("focus",()=>{this.instance?.triggerLoad()})}initContainer(e){let t=document.querySelector(e);if(!t){console.error(`[Pagefind Input component]: No container found for ${e} selector`);return}if(t.tagName==="INPUT")console.warn(`[Pagefind Input component]: Encountered input element for ${e} when a container was expected`),console.warn("[Pagefind Input component]: Treating containerElement option as inputElement and proceeding"),this.initExisting(e);else{t.innerHTML="";let s=0;for(;document.querySelector(`#pfmod-input-${s}`);)s+=1;let n=new r("form").class("pagefind-modular-input-wrapper").attrs({role:"search","aria-label":"Search this site",action:"javascript:void(0);"});new r("label").attrs({for:`pfmod-input-${s}`,"data-pfmod-sr-hidden":"true"}).text("Search this site").addTo(n),this.inputEl=new r("input").id(`pfmod-input-${s}`).class("pagefind-modular-input").attrs({autocapitalize:"none",enterkeyhint:"search"}).addTo(n),this.clearEl=new r("button").class("pagefind-modular-input-clear").attrs({"data-pfmod-suppressed":"true"}).text("Clear").handle("click",()=>{this.inputEl.value="",this.instance.triggerSearch(""),this.updateState("")}).addTo(n),n.addTo(t)}}initExisting(e){let t=document.querySelector(e);if(!t){console.error(`[Pagefind Input component]: No input element found for ${e} selector`);return}if(t.tagName!=="INPUT"){console.error(`[Pagefind Input component]: Expected ${e} to be an element`);return}this.inputEl=t}updateState(e){this.clearEl&&(e&&e?.length?this.clearEl.removeAttribute("data-pfmod-suppressed"):this.clearEl.setAttribute("data-pfmod-suppressed","true"))}register(e){this.instance=e,this.instance.on("search",(t,s)=>{this.inputEl&&document.activeElement!==this.inputEl&&(this.inputEl.value=t,this.updateState(t))})}focus(){this.inputEl&&this.inputEl.focus()}};var g=i=>{if(i instanceof Element)return[i];if(Array.isArray(i)&&i.every(e=>e instanceof Element))return i;if(typeof i=="string"||i instanceof String){let e=document.createElement("div");return e.innerHTML=i,[...e.childNodes]}else return console.error(`[Pagefind ResultList component]: Expected template function to return an HTML element or string, got ${typeof i}`),[]},v=()=>{let i=(e=30)=>". ".repeat(Math.floor(10+Math.random()*e));return`
  • +
    +
    +

    ${i(30)}

    +

    ${i(40)}

    +
    +
  • `},y=(i,e)=>{let t=new r("li").class("pagefind-modular-list-result");if(e){let l=new r("div").class("pagefind-modular-list-thumb").addTo(t);i?.meta?.image&&new r("img").class("pagefind-modular-list-image").attrs({src:i.meta.image,alt:i.meta.image_alt||i.meta.title}).addTo(l)}let s=new r("div").class("pagefind-modular-list-inner").addTo(t),n=new r("p").class("pagefind-modular-list-title").addTo(s);return new r("a").class("pagefind-modular-list-link").text(i.meta?.title).attrs({href:i.meta?.url||i.url}).addTo(n),new r("p").class("pagefind-modular-list-excerpt").html(i.excerpt).addTo(s),t.element},E=i=>{if(!(i instanceof HTMLElement))return null;let e=window.getComputedStyle(i).overflowY;return e!=="visible"&&e!=="hidden"?i:E(i.parentNode)},d=class{constructor(e={}){this.rawResult=e.result,this.placeholderNodes=e.placeholderNodes,this.resultFn=e.resultFn,this.intersectionEl=e.intersectionEl,this.showImages=e.showImages,this.result=null,this.waitForIntersection()}waitForIntersection(){if(!this.placeholderNodes?.length)return;let e={root:this.intersectionEl,rootMargin:"0px",threshold:.01};new IntersectionObserver((s,n)=>{this.result===null&&s?.[0]?.isIntersecting&&(this.load(),n.disconnect())},e).observe(this.placeholderNodes[0])}async load(){if(!this.placeholderNodes?.length)return;this.result=await this.rawResult.data();let e=this.resultFn(this.result,this.showImages),t=g(e);for(;this.placeholderNodes.length>1;)this.placeholderNodes.pop().remove();this.placeholderNodes[0].replaceWith(...t)}},o=class{constructor(e){if(this.intersectionEl=document.body,this.containerEl=null,this.results=[],this.placeholderTemplate=e.placeholderTemplate??v,this.resultTemplate=e.resultTemplate??y,this.showImages=e.showImages??!0,e.containerElement)this.initContainer(e.containerElement);else{console.error("[Pagefind ResultList component]: No selector supplied for containerElement");return}}initContainer(e){let t=document.querySelector(e);if(!t){console.error(`[Pagefind ResultList component]: No container found for ${e} selector`);return}this.containerEl=t}append(e){for(let t of e)this.containerEl.appendChild(t)}register(e){e.on("results",t=>{this.containerEl&&(this.containerEl.innerHTML="",this.intersectionEl=E(this.containerEl),this.results=t.results.map(s=>{let n=g(this.placeholderTemplate());return this.append(n),new d({result:s,placeholderNodes:n,resultFn:this.resultTemplate,intersectionEl:this.intersectionEl,showImages:this.showImages})}))}),e.on("loading",()=>{this.containerEl&&(this.containerEl.innerHTML="")})}};var h=class{constructor(e={}){if(this.containerEl=null,this.defaultMessage=e.defaultMessage??"",this.term="",e.containerElement)this.initContainer(e.containerElement);else{console.error("[Pagefind Summary component]: No selector supplied for containerElement");return}}initContainer(e){let t=document.querySelector(e);if(!t){console.error(`[Pagefind Summary component]: No container found for ${e} selector`);return}this.containerEl=t,this.containerEl.innerText=this.defaultMessage}register(e){e.on("search",(t,s)=>{this.term=t}),e.on("results",t=>{if(!this.containerEl||!t)return;if(!this.term){this.containerEl.innerText=this.defaultMessage;return}let s=t?.results?.length??0;this.containerEl.innerText=`${s} result${s===1?"":"s"} for ${this.term}`}),e.on("loading",()=>{this.containerEl&&(this.containerEl.innerText=`Searching for ${this.term}...`)})}};var c=class{constructor(e={}){if(this.instance=null,this.wrapper=null,this.pillContainer=null,this.available={},this.selected=["All"],this.total=0,this.filterMemo="",this.filter=e.filter,this.ordering=e.ordering??null,this.alwaysShow=e.alwaysShow??!1,this.selectMultiple=e.selectMultiple??!1,!this.filter?.length){console.error("[Pagefind FilterPills component]: No filter option supplied, nothing to display");return}if(e.containerElement)this.initContainer(e.containerElement);else{console.error("[Pagefind FilterPills component]: No selector supplied for containerElement");return}}initContainer(e){let t=document.querySelector(e);if(!t){console.error(`[Pagefind FilterPills component]: No container found for ${e} selector`);return}t.innerHTML="";let s=`pagefind_modular_filter_pills_${this.filter}`,n=new r("div").class("pagefind-modular-filter-pills-wrapper").attrs({role:"group","aria-labelledby":s});this.alwaysShow||n.attrs({"data-pfmod-hidden":!0}),new r("div").id(s).class("pagefind-modular-filter-pills-label").attrs({"data-pfmod-sr-hidden":!0}).text(`Filter results by ${this.filter}`).addTo(n),this.pillContainer=new r("div").class("pagefind-modular-filter-pills").addTo(n),this.wrapper=n.addTo(t)}update(){let e=this.available.map(t=>t[0]).join("~");e==this.filterMemo?this.updateExisting():(this.renderNew(),this.filterMemo=e)}pushFilters(){let e=this.selected.filter(t=>t!=="All");this.instance.triggerFilter(this.filter,e)}pillInner(e,t){return this.total?`${e} (${t})`:`${e}`}renderNew(){this.available.forEach(([e,t])=>{new r("button").class("pagefind-modular-filter-pill").html(this.pillInner(e,t)).attrs({"aria-pressed":this.selected.includes(e),type:"button"}).handle("click",()=>{e==="All"?this.selected=["All"]:this.selected.includes(e)?this.selected=this.selected.filter(s=>s!==e):this.selectMultiple?this.selected.push(e):this.selected=[e],this.selected?.length?this.selected?.length>1&&(this.selected=this.selected.filter(s=>s!=="All")):this.selected=["All"],this.update(),this.pushFilters()}).addTo(this.pillContainer)})}updateExisting(){let e=[...this.pillContainer.childNodes];this.available.forEach(([t,s],n)=>{e[n].innerHTML=this.pillInner(t,s),e[n].setAttribute("aria-pressed",this.selected.includes(t))})}register(e){this.instance=e,this.instance.on("filters",t=>{if(!this.pillContainer)return;this.selectMultiple?t=t.available:t=t.total;let s=t[this.filter];if(!s){console.warn(`[Pagefind FilterPills component]: No possible values found for the ${this.filter} filter`);return}this.available=Object.entries(s),Array.isArray(this.ordering)?this.available.sort((n,l)=>{let m=this.ordering.indexOf(n[0]),_=this.ordering.indexOf(l[0]);return(m===-1?1/0:m)-(_===-1?1/0:_)}):this.available.sort((n,l)=>n[0].localeCompare(l[0])),this.available.unshift(["All",this.total]),this.update()}),e.on("results",t=>{this.pillContainer&&(this.total=t?.unfilteredResultCount||0,this.available?.[0]?.[0]==="All"&&(this.available[0][1]=this.total),this.total||this.alwaysShow?this.wrapper.removeAttribute("data-pfmod-hidden"):this.wrapper.setAttribute("data-pfmod-hidden","true"),this.update())})}};var P=async(i=50)=>await new Promise(e=>setTimeout(e,i)),u;try{document?.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"&&(u=new URL(document.currentScript.src).pathname.match(/^(.*\/)(?:pagefind-)?modular-ui.js.*$/)[1])}catch{u="/pagefind/"}var p=class{constructor(e={}){this.__pagefind__=null,this.__initializing__=null,this.__searchID__=0,this.__hooks__={search:[],filters:[],loading:[],results:[]},this.components=[],this.searchTerm="",this.searchFilters={},this.searchResult={},this.availableFilters=null,this.totalFilters=null,this.options={bundlePath:e.bundlePath??u,mergeIndex:e.mergeIndex??[]},delete e.bundlePath,delete e.resetStyles,delete e.processResult,delete e.processTerm,delete e.debounceTimeoutMs,delete e.mergeIndex,delete e.translations,this.pagefindOptions=e}add(e){e?.register?.(this),this.components.push(e)}on(e,t){if(!this.__hooks__[e]){let s=Object.keys(this.__hooks__).join(", ");console.error(`[Pagefind Composable]: Unknown event type ${e}. Supported events: [${s}]`);return}if(typeof t!="function"){console.error(`[Pagefind Composable]: Expected callback to be a function, received ${typeof t}`);return}this.__hooks__[e].push(t)}triggerLoad(){this.__load__()}triggerSearch(e){this.searchTerm=e,this.__dispatch__("search",e,this.searchFilters),this.__search__(e,this.searchFilters)}triggerSearchWithFilters(e,t){this.searchTerm=e,this.searchFilters=t,this.__dispatch__("search",e,t),this.__search__(e,t)}triggerFilters(e){this.searchFilters=e,this.__dispatch__("search",this.searchTerm,e),this.__search__(this.searchTerm,e)}triggerFilter(e,t){this.searchFilters=this.searchFilters||{},this.searchFilters[e]=t,this.__dispatch__("search",this.searchTerm,this.searchFilters),this.__search__(this.searchTerm,this.searchFilters)}__dispatch__(e,...t){this.__hooks__[e]?.forEach(s=>s?.(...t))}async __clear__(){this.__dispatch__("results",{results:[],unfilteredTotalCount:0}),this.availableFilters=await this.__pagefind__.filters(),this.totalFilters=this.availableFilters,this.__dispatch__("filters",{available:this.availableFilters,total:this.totalFilters})}async __search__(e,t){this.__dispatch__("loading"),await this.__load__();let s=++this.__searchID__;if(!e||!e.length)return this.__clear__();let n=await this.__pagefind__.search(e,{filters:t});n&&this.__searchID__===s&&(n.filters&&Object.keys(n.filters)?.length&&(this.availableFilters=n.filters,this.totalFilters=n.totalFilters,this.__dispatch__("filters",{available:this.availableFilters,total:this.totalFilters})),this.searchResult=n,this.__dispatch__("results",this.searchResult))}async __load__(){if(this.__initializing__){for(;!this.__pagefind__;)await P(50);return}if(this.__initializing__=!0,!this.__pagefind__){let e;try{e=await import(`${this.options.bundlePath}pagefind.js`)}catch(t){console.error(t),console.error([`Pagefind couldn't be loaded from ${this.options.bundlePath}pagefind.js`,"You can configure this by passing a bundlePath option to PagefindComposable Instance"].join(` +`)),document?.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"?console.error(`[DEBUG: Loaded from ${document.currentScript?.src??"bad script location"}]`):console.error("no known script location")}await e.options(this.pagefindOptions||{});for(let t of this.options.mergeIndex){if(!t.bundlePath)throw new Error("mergeIndex requires a bundlePath parameter");let s=t.bundlePath;delete t.bundlePath,await e.mergeIndex(s,t)}this.__pagefind__=e}this.availableFilters=await this.__pagefind__.filters(),this.totalFilters=this.availableFilters,this.__dispatch__("filters",{available:this.availableFilters,total:this.totalFilters})}};window.PagefindModularUI=f;})(); diff --git a/pagefind/pagefind-ui.css b/pagefind/pagefind-ui.css new file mode 100644 index 0000000..d7984a9 --- /dev/null +++ b/pagefind/pagefind-ui.css @@ -0,0 +1 @@ +.pagefind-ui__result.svelte-j9e30.svelte-j9e30{list-style-type:none;display:flex;align-items:flex-start;gap:min(calc(40px * var(--pagefind-ui-scale)),3%);padding:calc(30px * var(--pagefind-ui-scale)) 0 calc(40px * var(--pagefind-ui-scale));border-top:solid var(--pagefind-ui-border-width) var(--pagefind-ui-border)}.pagefind-ui__result.svelte-j9e30.svelte-j9e30:last-of-type{border-bottom:solid var(--pagefind-ui-border-width) var(--pagefind-ui-border)}.pagefind-ui__result-thumb.svelte-j9e30.svelte-j9e30{width:min(30%,calc((30% - (100px * var(--pagefind-ui-scale))) * 100000));max-width:calc(120px * var(--pagefind-ui-scale));margin-top:calc(10px * var(--pagefind-ui-scale));aspect-ratio:var(--pagefind-ui-image-box-ratio);position:relative}.pagefind-ui__result-image.svelte-j9e30.svelte-j9e30{display:block;position:absolute;left:50%;transform:translate(-50%);font-size:0;width:auto;height:auto;max-width:100%;max-height:100%;border-radius:var(--pagefind-ui-image-border-radius)}.pagefind-ui__result-inner.svelte-j9e30.svelte-j9e30{flex:1;display:flex;flex-direction:column;align-items:flex-start;margin-top:calc(10px * var(--pagefind-ui-scale))}.pagefind-ui__result-title.svelte-j9e30.svelte-j9e30{display:inline-block;font-weight:700;font-size:calc(21px * var(--pagefind-ui-scale));margin-top:0;margin-bottom:0}.pagefind-ui__result-title.svelte-j9e30 .pagefind-ui__result-link.svelte-j9e30{color:var(--pagefind-ui-text);text-decoration:none}.pagefind-ui__result-title.svelte-j9e30 .pagefind-ui__result-link.svelte-j9e30:hover{text-decoration:underline}.pagefind-ui__result-excerpt.svelte-j9e30.svelte-j9e30{display:inline-block;font-weight:400;font-size:calc(16px * var(--pagefind-ui-scale));margin-top:calc(4px * var(--pagefind-ui-scale));margin-bottom:0;min-width:calc(250px * var(--pagefind-ui-scale))}.pagefind-ui__loading.svelte-j9e30.svelte-j9e30{color:var(--pagefind-ui-text);background-color:var(--pagefind-ui-text);border-radius:var(--pagefind-ui-border-radius);opacity:.1;pointer-events:none}.pagefind-ui__result-tags.svelte-j9e30.svelte-j9e30{list-style-type:none;padding:0;display:flex;gap:calc(20px * var(--pagefind-ui-scale));flex-wrap:wrap;margin-top:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__result-tag.svelte-j9e30.svelte-j9e30{padding:calc(4px * var(--pagefind-ui-scale)) calc(8px * var(--pagefind-ui-scale));font-size:calc(14px * var(--pagefind-ui-scale));border-radius:var(--pagefind-ui-border-radius);background-color:var(--pagefind-ui-tag)}.pagefind-ui__result.svelte-4xnkmf.svelte-4xnkmf{list-style-type:none;display:flex;align-items:flex-start;gap:min(calc(40px * var(--pagefind-ui-scale)),3%);padding:calc(30px * var(--pagefind-ui-scale)) 0 calc(40px * var(--pagefind-ui-scale));border-top:solid var(--pagefind-ui-border-width) var(--pagefind-ui-border)}.pagefind-ui__result.svelte-4xnkmf.svelte-4xnkmf:last-of-type{border-bottom:solid var(--pagefind-ui-border-width) var(--pagefind-ui-border)}.pagefind-ui__result-nested.svelte-4xnkmf.svelte-4xnkmf{display:flex;flex-direction:column;padding-left:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__result-nested.svelte-4xnkmf.svelte-4xnkmf:first-of-type{padding-top:calc(10px * var(--pagefind-ui-scale))}.pagefind-ui__result-nested.svelte-4xnkmf .pagefind-ui__result-link.svelte-4xnkmf{font-size:.9em;position:relative}.pagefind-ui__result-nested.svelte-4xnkmf .pagefind-ui__result-link.svelte-4xnkmf:before{content:"\2937 ";position:absolute;top:0;right:calc(100% + .1em)}.pagefind-ui__result-thumb.svelte-4xnkmf.svelte-4xnkmf{width:min(30%,calc((30% - (100px * var(--pagefind-ui-scale))) * 100000));max-width:calc(120px * var(--pagefind-ui-scale));margin-top:calc(10px * var(--pagefind-ui-scale));aspect-ratio:var(--pagefind-ui-image-box-ratio);position:relative}.pagefind-ui__result-image.svelte-4xnkmf.svelte-4xnkmf{display:block;position:absolute;left:50%;transform:translate(-50%);font-size:0;width:auto;height:auto;max-width:100%;max-height:100%;border-radius:var(--pagefind-ui-image-border-radius)}.pagefind-ui__result-inner.svelte-4xnkmf.svelte-4xnkmf{flex:1;display:flex;flex-direction:column;align-items:flex-start;margin-top:calc(10px * var(--pagefind-ui-scale))}.pagefind-ui__result-title.svelte-4xnkmf.svelte-4xnkmf{display:inline-block;font-weight:700;font-size:calc(21px * var(--pagefind-ui-scale));margin-top:0;margin-bottom:0}.pagefind-ui__result-title.svelte-4xnkmf .pagefind-ui__result-link.svelte-4xnkmf{color:var(--pagefind-ui-text);text-decoration:none}.pagefind-ui__result-title.svelte-4xnkmf .pagefind-ui__result-link.svelte-4xnkmf:hover{text-decoration:underline}.pagefind-ui__result-excerpt.svelte-4xnkmf.svelte-4xnkmf{display:inline-block;font-weight:400;font-size:calc(16px * var(--pagefind-ui-scale));margin-top:calc(4px * var(--pagefind-ui-scale));margin-bottom:0;min-width:calc(250px * var(--pagefind-ui-scale))}.pagefind-ui__loading.svelte-4xnkmf.svelte-4xnkmf{color:var(--pagefind-ui-text);background-color:var(--pagefind-ui-text);border-radius:var(--pagefind-ui-border-radius);opacity:.1;pointer-events:none}.pagefind-ui__result-tags.svelte-4xnkmf.svelte-4xnkmf{list-style-type:none;padding:0;display:flex;gap:calc(20px * var(--pagefind-ui-scale));flex-wrap:wrap;margin-top:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__result-tag.svelte-4xnkmf.svelte-4xnkmf{padding:calc(4px * var(--pagefind-ui-scale)) calc(8px * var(--pagefind-ui-scale));font-size:calc(14px * var(--pagefind-ui-scale));border-radius:var(--pagefind-ui-border-radius);background-color:var(--pagefind-ui-tag)}legend.svelte-1v2r7ls.svelte-1v2r7ls{position:absolute;clip:rect(0 0 0 0)}.pagefind-ui__filter-panel.svelte-1v2r7ls.svelte-1v2r7ls{min-width:min(calc(260px * var(--pagefind-ui-scale)),100%);flex:1;display:flex;flex-direction:column;margin-top:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__filter-group.svelte-1v2r7ls.svelte-1v2r7ls{border:0;padding:0}.pagefind-ui__filter-block.svelte-1v2r7ls.svelte-1v2r7ls{padding:0;display:block;border-bottom:solid calc(2px * var(--pagefind-ui-scale)) var(--pagefind-ui-border);padding:calc(20px * var(--pagefind-ui-scale)) 0}.pagefind-ui__filter-name.svelte-1v2r7ls.svelte-1v2r7ls{font-size:calc(16px * var(--pagefind-ui-scale));position:relative;display:flex;align-items:center;list-style:none;font-weight:700;cursor:pointer;height:calc(24px * var(--pagefind-ui-scale))}.pagefind-ui__filter-name.svelte-1v2r7ls.svelte-1v2r7ls::-webkit-details-marker{display:none}.pagefind-ui__filter-name.svelte-1v2r7ls.svelte-1v2r7ls:after{position:absolute;content:"";right:calc(6px * var(--pagefind-ui-scale));top:50%;width:calc(8px * var(--pagefind-ui-scale));height:calc(8px * var(--pagefind-ui-scale));border:solid calc(2px * var(--pagefind-ui-scale)) currentColor;border-right:0;border-top:0;transform:translateY(-70%) rotate(-45deg)}.pagefind-ui__filter-block[open].svelte-1v2r7ls .pagefind-ui__filter-name.svelte-1v2r7ls:after{transform:translateY(-70%) rotate(-225deg)}.pagefind-ui__filter-group.svelte-1v2r7ls.svelte-1v2r7ls{display:flex;flex-direction:column;gap:calc(20px * var(--pagefind-ui-scale));padding-top:calc(30px * var(--pagefind-ui-scale))}.pagefind-ui__filter-value.svelte-1v2r7ls.svelte-1v2r7ls{position:relative;display:flex;align-items:center;gap:calc(8px * var(--pagefind-ui-scale))}.pagefind-ui__filter-value.svelte-1v2r7ls.svelte-1v2r7ls:before{position:absolute;content:"";top:50%;left:calc(8px * var(--pagefind-ui-scale));width:0px;height:0px;border:solid 1px #fff;opacity:0;transform:translate(calc(4.5px * var(--pagefind-ui-scale) * -1),calc(.8px * var(--pagefind-ui-scale))) skew(-5deg) rotate(-45deg);transform-origin:top left;border-top:0;border-right:0;pointer-events:none}.pagefind-ui__filter-value.pagefind-ui__filter-value--checked.svelte-1v2r7ls.svelte-1v2r7ls:before{opacity:1;width:calc(9px * var(--pagefind-ui-scale));height:calc(4px * var(--pagefind-ui-scale));transition:width .1s ease-out .1s,height .1s ease-in}.pagefind-ui__filter-checkbox.svelte-1v2r7ls.svelte-1v2r7ls{margin:0;width:calc(16px * var(--pagefind-ui-scale));height:calc(16px * var(--pagefind-ui-scale));border:solid 1px var(--pagefind-ui-border);appearance:none;-webkit-appearance:none;border-radius:calc(var(--pagefind-ui-border-radius) / 2);background-color:var(--pagefind-ui-background);cursor:pointer}.pagefind-ui__filter-checkbox.svelte-1v2r7ls.svelte-1v2r7ls:checked{background-color:var(--pagefind-ui-primary);border:solid 1px var(--pagefind-ui-primary)}.pagefind-ui__filter-label.svelte-1v2r7ls.svelte-1v2r7ls{cursor:pointer;font-size:calc(16px * var(--pagefind-ui-scale));font-weight:400}.pagefind-ui--reset *:where(:not(html,iframe,canvas,img,svg,video):not(svg *,symbol *)){all:unset;display:revert;outline:revert}.pagefind-ui--reset *,.pagefind-ui--reset *:before,.pagefind-ui--reset *:after{box-sizing:border-box}.pagefind-ui--reset a,.pagefind-ui--reset button{cursor:revert}.pagefind-ui--reset ol,.pagefind-ui--reset ul,.pagefind-ui--reset menu{list-style:none}.pagefind-ui--reset img{max-width:100%}.pagefind-ui--reset table{border-collapse:collapse}.pagefind-ui--reset input,.pagefind-ui--reset textarea{-webkit-user-select:auto}.pagefind-ui--reset textarea{white-space:revert}.pagefind-ui--reset meter{-webkit-appearance:revert;appearance:revert}.pagefind-ui--reset ::placeholder{color:unset}.pagefind-ui--reset :where([hidden]){display:none}.pagefind-ui--reset :where([contenteditable]:not([contenteditable="false"])){-moz-user-modify:read-write;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space;-webkit-user-select:auto}.pagefind-ui--reset :where([draggable="true"]){-webkit-user-drag:element}.pagefind-ui--reset mark{all:revert}:root{--pagefind-ui-scale:.8;--pagefind-ui-primary:#393939;--pagefind-ui-text:#393939;--pagefind-ui-background:#ffffff;--pagefind-ui-border:#eeeeee;--pagefind-ui-tag:#eeeeee;--pagefind-ui-border-width:2px;--pagefind-ui-border-radius:8px;--pagefind-ui-image-border-radius:8px;--pagefind-ui-image-box-ratio:3 / 2;--pagefind-ui-font:system, -apple-system, "BlinkMacSystemFont", ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", "Ubuntu", "arial", sans-serif}.pagefind-ui.svelte-e9gkc3{width:100%;color:var(--pagefind-ui-text);font-family:var(--pagefind-ui-font)}.pagefind-ui__hidden.svelte-e9gkc3{display:none!important}.pagefind-ui__suppressed.svelte-e9gkc3{opacity:0;pointer-events:none}.pagefind-ui__form.svelte-e9gkc3{position:relative}.pagefind-ui__form.svelte-e9gkc3:before{background-color:var(--pagefind-ui-text);width:calc(18px * var(--pagefind-ui-scale));height:calc(18px * var(--pagefind-ui-scale));top:calc(23px * var(--pagefind-ui-scale));left:calc(20px * var(--pagefind-ui-scale));content:"";position:absolute;display:block;opacity:.7;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.7549 11.255H11.9649L11.6849 10.985C12.6649 9.845 13.2549 8.365 13.2549 6.755C13.2549 3.165 10.3449 0.255005 6.75488 0.255005C3.16488 0.255005 0.254883 3.165 0.254883 6.755C0.254883 10.345 3.16488 13.255 6.75488 13.255C8.36488 13.255 9.84488 12.665 10.9849 11.685L11.2549 11.965V12.755L16.2549 17.745L17.7449 16.255L12.7549 11.255ZM6.75488 11.255C4.26488 11.255 2.25488 9.245 2.25488 6.755C2.25488 4.26501 4.26488 2.255 6.75488 2.255C9.24488 2.255 11.2549 4.26501 11.2549 6.755C11.2549 9.245 9.24488 11.255 6.75488 11.255Z' fill='%23000000'/%3E%3C/svg%3E%0A");mask-image:url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.7549 11.255H11.9649L11.6849 10.985C12.6649 9.845 13.2549 8.365 13.2549 6.755C13.2549 3.165 10.3449 0.255005 6.75488 0.255005C3.16488 0.255005 0.254883 3.165 0.254883 6.755C0.254883 10.345 3.16488 13.255 6.75488 13.255C8.36488 13.255 9.84488 12.665 10.9849 11.685L11.2549 11.965V12.755L16.2549 17.745L17.7449 16.255L12.7549 11.255ZM6.75488 11.255C4.26488 11.255 2.25488 9.245 2.25488 6.755C2.25488 4.26501 4.26488 2.255 6.75488 2.255C9.24488 2.255 11.2549 4.26501 11.2549 6.755C11.2549 9.245 9.24488 11.255 6.75488 11.255Z' fill='%23000000'/%3E%3C/svg%3E%0A");-webkit-mask-size:100%;mask-size:100%;z-index:9;pointer-events:none}.pagefind-ui__search-input.svelte-e9gkc3{height:calc(64px * var(--pagefind-ui-scale));padding:0 calc(70px * var(--pagefind-ui-scale)) 0 calc(54px * var(--pagefind-ui-scale));background-color:var(--pagefind-ui-background);border:var(--pagefind-ui-border-width) solid var(--pagefind-ui-border);border-radius:var(--pagefind-ui-border-radius);font-size:calc(21px * var(--pagefind-ui-scale));position:relative;appearance:none;-webkit-appearance:none;display:flex;width:100%;box-sizing:border-box;font-weight:700}.pagefind-ui__search-input.svelte-e9gkc3::placeholder{opacity:.2}.pagefind-ui__search-clear.svelte-e9gkc3{position:absolute;top:calc(3px * var(--pagefind-ui-scale));right:calc(3px * var(--pagefind-ui-scale));height:calc(58px * var(--pagefind-ui-scale));padding:0 calc(15px * var(--pagefind-ui-scale)) 0 calc(2px * var(--pagefind-ui-scale));color:var(--pagefind-ui-text);font-size:calc(14px * var(--pagefind-ui-scale));cursor:pointer;background-color:var(--pagefind-ui-background);border-radius:var(--pagefind-ui-border-radius)}.pagefind-ui__drawer.svelte-e9gkc3{gap:calc(60px * var(--pagefind-ui-scale));display:flex;flex-direction:row;flex-wrap:wrap}.pagefind-ui__results-area.svelte-e9gkc3{min-width:min(calc(400px * var(--pagefind-ui-scale)),100%);flex:1000;margin-top:calc(20px * var(--pagefind-ui-scale))}.pagefind-ui__results.svelte-e9gkc3{padding:0}.pagefind-ui__message.svelte-e9gkc3{box-sizing:content-box;font-size:calc(16px * var(--pagefind-ui-scale));height:calc(24px * var(--pagefind-ui-scale));padding:calc(20px * var(--pagefind-ui-scale)) 0;display:flex;align-items:center;font-weight:700;margin-top:0}.pagefind-ui__button.svelte-e9gkc3{margin-top:calc(40px * var(--pagefind-ui-scale));border:var(--pagefind-ui-border-width) solid var(--pagefind-ui-border);border-radius:var(--pagefind-ui-border-radius);height:calc(48px * var(--pagefind-ui-scale));padding:0 calc(12px * var(--pagefind-ui-scale));font-size:calc(16px * var(--pagefind-ui-scale));color:var(--pagefind-ui-primary);background:var(--pagefind-ui-background);width:100%;text-align:center;font-weight:700;cursor:pointer}.pagefind-ui__button.svelte-e9gkc3:hover{border-color:var(--pagefind-ui-primary);color:var(--pagefind-ui-primary);background:var(--pagefind-ui-background)} diff --git a/pagefind/pagefind-ui.js b/pagefind/pagefind-ui.js new file mode 100644 index 0000000..44c2d5d --- /dev/null +++ b/pagefind/pagefind-ui.js @@ -0,0 +1,2 @@ +(()=>{var Ur=Object.defineProperty;var A=(n,e)=>{for(var t in e)Ur(n,t,{get:e[t],enumerable:!0})};function U(){}function bt(n){return n()}function yn(){return Object.create(null)}function K(n){n.forEach(bt)}function at(n){return typeof n=="function"}function G(n,e){return n!=n?e==e:n!==e||n&&typeof n=="object"||typeof n=="function"}var lt;function ie(n,e){return lt||(lt=document.createElement("a")),lt.href=e,n===lt.href}function vn(n){return Object.keys(n).length===0}var Hn=typeof window<"u"?window:typeof globalThis<"u"?globalThis:global,de=class{constructor(e){this.options=e,this._listeners="WeakMap"in Hn?new WeakMap:void 0}observe(e,t){return this._listeners.set(e,t),this._getObserver().observe(e,this.options),()=>{this._listeners.delete(e),this._observer.unobserve(e)}}_getObserver(){var e;return(e=this._observer)!==null&&e!==void 0?e:this._observer=new ResizeObserver(t=>{var r;for(let s of t)de.entries.set(s.target,s),(r=this._listeners.get(s.target))===null||r===void 0||r(s)})}};de.entries="WeakMap"in Hn?new WeakMap:void 0;var wn=!1;function Dr(){wn=!0}function Ir(){wn=!1}function R(n,e){n.appendChild(e)}function S(n,e,t){n.insertBefore(e,t||null)}function k(n){n.parentNode&&n.parentNode.removeChild(n)}function Q(n,e){for(let t=0;tn.removeEventListener(e,t,r)}function m(n,e,t){t==null?n.removeAttribute(e):n.getAttribute(e)!==t&&n.setAttribute(e,t)}function Lr(n){return Array.from(n.childNodes)}function z(n,e){e=""+e,n.data!==e&&(n.data=e)}function Tt(n,e){n.value=e??""}function B(n,e,t){n.classList[t?"add":"remove"](e)}var ot=class{constructor(e=!1){this.is_svg=!1,this.is_svg=e,this.e=this.n=null}c(e){this.h(e)}m(e,t,r=null){this.e||(this.is_svg?this.e=Pr(t.nodeName):this.e=C(t.nodeType===11?"TEMPLATE":t.nodeName),this.t=t.tagName!=="TEMPLATE"?t:t.content,this.c(e)),this.i(r)}h(e){this.e.innerHTML=e,this.n=Array.from(this.e.nodeName==="TEMPLATE"?this.e.content.childNodes:this.e.childNodes)}i(e){for(let t=0;tn.indexOf(r)===-1?e.push(r):t.push(r)),t.forEach(r=>r()),se=e}var it=new Set,ee;function ae(){ee={r:0,c:[],p:ee}}function oe(){ee.r||K(ee.c),ee=ee.p}function D(n,e){n&&n.i&&(it.delete(n),n.i(e))}function P(n,e,t,r){if(n&&n.o){if(it.has(n))return;it.add(n),ee.c.push(()=>{it.delete(n),r&&(t&&n.d(1),r())}),n.o(e)}else r&&r()}function On(n,e){P(n,1,1,()=>{e.delete(n.key)})}function jn(n,e,t,r,s,l,i,a,o,f,c,d){let p=n.length,h=l.length,u=p,_={};for(;u--;)_[n[u].key]=u;let E=[],b=new Map,T=new Map,M=[];for(u=h;u--;){let H=d(s,l,u),F=t(H),O=i.get(F);O?r&&M.push(()=>O.p(H,e)):(O=f(F,H),O.c()),b.set(F,E[u]=O),F in _&&T.set(F,Math.abs(u-_[F]))}let y=new Set,X=new Set;function V(H){D(H,1),H.m(a,c),i.set(H.key,H),c=H.first,h--}for(;p&&h;){let H=E[h-1],F=n[p-1],O=H.key,W=F.key;H===F?(c=H.first,p--,h--):b.has(W)?!i.has(O)||y.has(O)?V(H):X.has(W)?p--:T.get(O)>T.get(W)?(X.add(O),V(H)):(y.add(W),p--):(o(F,i),p--)}for(;p--;){let H=n[p];b.has(H.key)||o(H,i)}for(;h;)V(E[h-1]);return K(M),E}var Kr=["allowfullscreen","allowpaymentrequest","async","autofocus","autoplay","checked","controls","default","defer","disabled","formnovalidate","hidden","inert","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","selected"],Eo=new Set([...Kr]);function Un(n,e,t){let r=n.$$.props[e];r!==void 0&&(n.$$.bound[r]=t,t(n.$$.ctx[r]))}function ut(n){n&&n.c()}function me(n,e,t,r){let{fragment:s,after_update:l}=n.$$;s&&s.m(e,t),r||Rt(()=>{let i=n.$$.on_mount.map(bt).filter(at);n.$$.on_destroy?n.$$.on_destroy.push(...i):K(i),n.$$.on_mount=[]}),l.forEach(Rt)}function ue(n,e){let t=n.$$;t.fragment!==null&&(Wr(t.after_update),K(t.on_destroy),t.fragment&&t.fragment.d(e),t.on_destroy=t.fragment=null,t.ctx=[])}function Gr(n,e){n.$$.dirty[0]===-1&&(re.push(n),Br(),n.$$.dirty.fill(0)),n.$$.dirty[e/31|0]|=1<{let u=h.length?h[0]:p;return f.ctx&&s(f.ctx[d],f.ctx[d]=u)&&(!f.skip_bound&&f.bound[d]&&f.bound[d](u),c&&Gr(n,d)),p}):[],f.update(),c=!0,K(f.before_update),f.fragment=r?r(f.ctx):!1,e.target){if(e.hydrate){Dr();let d=Lr(e.target);f.fragment&&f.fragment.l(d),d.forEach(k)}else f.fragment&&f.fragment.c();e.intro&&D(n.$$.fragment),me(n,e.target,e.anchor,e.customElement),Ir(),zn()}fe(o)}var Jr;typeof HTMLElement=="function"&&(Jr=class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){let{on_mount:n}=this.$$;this.$$.on_disconnect=n.map(bt).filter(at);for(let e in this.$$.slotted)this.appendChild(this.$$.slotted[e])}attributeChangedCallback(n,e,t){this[n]=t}disconnectedCallback(){K(this.$$.on_disconnect)}$destroy(){ue(this,1),this.$destroy=U}$on(n,e){if(!at(e))return U;let t=this.$$.callbacks[n]||(this.$$.callbacks[n]=[]);return t.push(e),()=>{let r=t.indexOf(e);r!==-1&&t.splice(r,1)}}$set(n){this.$$set&&!vn(n)&&(this.$$.skip_bound=!0,this.$$set(n),this.$$.skip_bound=!1)}});var q=class{$destroy(){ue(this,1),this.$destroy=U}$on(e,t){if(!at(t))return U;let r=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return r.push(t),()=>{let s=r.indexOf(t);s!==-1&&r.splice(s,1)}}$set(e){this.$$set&&!vn(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}};function I(n){let e=typeof n=="string"?n.charCodeAt(0):n;return e>=97&&e<=122||e>=65&&e<=90}function $(n){let e=typeof n=="string"?n.charCodeAt(0):n;return e>=48&&e<=57}function Z(n){return I(n)||$(n)}var Dn=["art-lojban","cel-gaulish","no-bok","no-nyn","zh-guoyu","zh-hakka","zh-min","zh-min-nan","zh-xiang"];var St={"en-gb-oed":"en-GB-oxendict","i-ami":"ami","i-bnn":"bnn","i-default":null,"i-enochian":null,"i-hak":"hak","i-klingon":"tlh","i-lux":"lb","i-mingo":null,"i-navajo":"nv","i-pwn":"pwn","i-tao":"tao","i-tay":"tay","i-tsu":"tsu","sgn-be-fr":"sfb","sgn-be-nl":"vgt","sgn-ch-de":"sgg","art-lojban":"jbo","cel-gaulish":null,"no-bok":"nb","no-nyn":"nn","zh-guoyu":"cmn","zh-hakka":"hak","zh-min":null,"zh-min-nan":"nan","zh-xiang":"hsn"};var Yr={}.hasOwnProperty;function ct(n,e={}){let t=In(),r=String(n),s=r.toLowerCase(),l=0;if(n==null)throw new Error("Expected string, got `"+n+"`");if(Yr.call(St,s)){let a=St[s];return(e.normalize===void 0||e.normalize===null||e.normalize)&&typeof a=="string"?ct(a):(t[Dn.includes(s)?"regular":"irregular"]=r,t)}for(;I(s.charCodeAt(l))&&l<9;)l++;if(l>1&&l<9){if(t.language=r.slice(0,l),l<4){let a=0;for(;s.charCodeAt(l)===45&&I(s.charCodeAt(l+1))&&I(s.charCodeAt(l+2))&&I(s.charCodeAt(l+3))&&!I(s.charCodeAt(l+4));){if(a>2)return i(l,3,"Too many extended language subtags, expected at most 3 subtags");t.extendedLanguageSubtags.push(r.slice(l+1,l+4)),l+=4,a++}}for(s.charCodeAt(l)===45&&I(s.charCodeAt(l+1))&&I(s.charCodeAt(l+2))&&I(s.charCodeAt(l+3))&&I(s.charCodeAt(l+4))&&!I(s.charCodeAt(l+5))&&(t.script=r.slice(l+1,l+5),l+=5),s.charCodeAt(l)===45&&(I(s.charCodeAt(l+1))&&I(s.charCodeAt(l+2))&&!I(s.charCodeAt(l+3))?(t.region=r.slice(l+1,l+3),l+=3):$(s.charCodeAt(l+1))&&$(s.charCodeAt(l+2))&&$(s.charCodeAt(l+3))&&!$(s.charCodeAt(l+4))&&(t.region=r.slice(l+1,l+4),l+=4));s.charCodeAt(l)===45;){let a=l+1,o=a;for(;Z(s.charCodeAt(o));){if(o-a>7)return i(o,1,"Too long variant, expected at most 8 characters");o++}if(o-a>4||o-a>3&&$(s.charCodeAt(a)))t.variants.push(r.slice(a,o)),l=o;else break}for(;s.charCodeAt(l)===45&&!(s.charCodeAt(l+1)===120||!Z(s.charCodeAt(l+1))||s.charCodeAt(l+2)!==45||!Z(s.charCodeAt(l+3)));){let a=l+2,o=0;for(;s.charCodeAt(a)===45&&Z(s.charCodeAt(a+1))&&Z(s.charCodeAt(a+2));){let f=a+1;for(a=f+2,o++;Z(s.charCodeAt(a));){if(a-f>7)return i(a,2,"Too long extension, expected at most 8 characters");a++}}if(!o)return i(a,4,"Empty extension, extensions must have at least 2 characters of content");t.extensions.push({singleton:r.charAt(l+1),extensions:r.slice(l+3,a).split("-")}),l=a}}else l=0;if(l===0&&s.charCodeAt(l)===120||s.charCodeAt(l)===45&&s.charCodeAt(l+1)===120){l=l?l+2:1;let a=l;for(;s.charCodeAt(a)===45&&Z(s.charCodeAt(a+1));){let o=l+1;for(a=o;Z(s.charCodeAt(a));){if(a-o>7)return i(a,5,"Too long private-use area, expected at most 8 characters");a++}t.privateuse.push(r.slice(l+1,a)),l=a}}if(l!==r.length)return i(l,6,"Found superfluous content after tag");return t;function i(a,o,f){return e.warning&&e.warning(f,o,a),e.forgiving?t:In()}}function In(){return{language:null,extendedLanguageSubtags:[],script:null,region:null,variants:[],extensions:[],privateuse:[],irregular:null,regular:null}}function Pn(n,e,t){let r=n.slice();return r[8]=e[t][0],r[9]=e[t][1],r}function Zr(n){let e,t,r,s,l,i=n[0]&&Ln(n);return{c(){i&&i.c(),e=v(),t=C("div"),r=C("p"),r.textContent=`${n[3](30)}`,s=v(),l=C("p"),l.textContent=`${n[3](40)}`,m(r,"class","pagefind-ui__result-title pagefind-ui__loading svelte-j9e30"),m(l,"class","pagefind-ui__result-excerpt pagefind-ui__loading svelte-j9e30"),m(t,"class","pagefind-ui__result-inner svelte-j9e30")},m(a,o){i&&i.m(a,o),S(a,e,o),S(a,t,o),R(t,r),R(t,s),R(t,l)},p(a,o){a[0]?i||(i=Ln(a),i.c(),i.m(e.parentNode,e)):i&&(i.d(1),i=null)},d(a){i&&i.d(a),a&&k(e),a&&k(t)}}}function Xr(n){let e,t,r,s,l=n[1].meta?.title+"",i,a,o,f,c=n[1].excerpt+"",d,p=n[0]&&qn(n),h=n[2].length&&Vn(n);return{c(){p&&p.c(),e=v(),t=C("div"),r=C("p"),s=C("a"),i=w(l),o=v(),f=C("p"),d=v(),h&&h.c(),m(s,"class","pagefind-ui__result-link svelte-j9e30"),m(s,"href",a=n[1].meta?.url||n[1].url),m(r,"class","pagefind-ui__result-title svelte-j9e30"),m(f,"class","pagefind-ui__result-excerpt svelte-j9e30"),m(t,"class","pagefind-ui__result-inner svelte-j9e30")},m(u,_){p&&p.m(u,_),S(u,e,_),S(u,t,_),R(t,r),R(r,s),R(s,i),R(t,o),R(t,f),f.innerHTML=c,R(t,d),h&&h.m(t,null)},p(u,_){u[0]?p?p.p(u,_):(p=qn(u),p.c(),p.m(e.parentNode,e)):p&&(p.d(1),p=null),_&2&&l!==(l=u[1].meta?.title+"")&&z(i,l),_&2&&a!==(a=u[1].meta?.url||u[1].url)&&m(s,"href",a),_&2&&c!==(c=u[1].excerpt+"")&&(f.innerHTML=c),u[2].length?h?h.p(u,_):(h=Vn(u),h.c(),h.m(t,null)):h&&(h.d(1),h=null)},d(u){p&&p.d(u),u&&k(e),u&&k(t),h&&h.d()}}}function Ln(n){let e;return{c(){e=C("div"),m(e,"class","pagefind-ui__result-thumb pagefind-ui__loading svelte-j9e30")},m(t,r){S(t,e,r)},d(t){t&&k(e)}}}function qn(n){let e,t=n[1].meta.image&&Bn(n);return{c(){e=C("div"),t&&t.c(),m(e,"class","pagefind-ui__result-thumb svelte-j9e30")},m(r,s){S(r,e,s),t&&t.m(e,null)},p(r,s){r[1].meta.image?t?t.p(r,s):(t=Bn(r),t.c(),t.m(e,null)):t&&(t.d(1),t=null)},d(r){r&&k(e),t&&t.d()}}}function Bn(n){let e,t,r;return{c(){e=C("img"),m(e,"class","pagefind-ui__result-image svelte-j9e30"),ie(e.src,t=n[1].meta?.image)||m(e,"src",t),m(e,"alt",r=n[1].meta?.image_alt||n[1].meta?.title)},m(s,l){S(s,e,l)},p(s,l){l&2&&!ie(e.src,t=s[1].meta?.image)&&m(e,"src",t),l&2&&r!==(r=s[1].meta?.image_alt||s[1].meta?.title)&&m(e,"alt",r)},d(s){s&&k(e)}}}function Vn(n){let e,t=n[2],r=[];for(let s=0;sn.toLocaleUpperCase();function xr(n,e,t){let{show_images:r=!0}=e,{process_result:s=null}=e,{result:l={data:async()=>{}}}=e,i=["title","image","image_alt","url"],a,o=[],f=async d=>{t(1,a=await d.data()),t(1,a=s?.(a)??a),t(2,o=Object.entries(a.meta).filter(([p])=>!i.includes(p)))},c=(d=30)=>". ".repeat(Math.floor(10+Math.random()*d));return n.$$set=d=>{"show_images"in d&&t(0,r=d.show_images),"process_result"in d&&t(4,s=d.process_result),"result"in d&&t(5,l=d.result)},n.$$.update=()=>{if(n.$$.dirty&32)e:f(l)},[r,a,o,c,s,l]}var Mt=class extends q{constructor(e){super(),Y(this,e,xr,Qr,G,{show_images:0,process_result:4,result:5})}},Gn=Mt;function Jn(n,e,t){let r=n.slice();return r[11]=e[t][0],r[12]=e[t][1],r}function Yn(n,e,t){let r=n.slice();return r[15]=e[t],r}function $r(n){let e,t,r,s,l,i=n[0]&&Zn(n);return{c(){i&&i.c(),e=v(),t=C("div"),r=C("p"),r.textContent=`${n[5](30)}`,s=v(),l=C("p"),l.textContent=`${n[5](40)}`,m(r,"class","pagefind-ui__result-title pagefind-ui__loading svelte-4xnkmf"),m(l,"class","pagefind-ui__result-excerpt pagefind-ui__loading svelte-4xnkmf"),m(t,"class","pagefind-ui__result-inner svelte-4xnkmf")},m(a,o){i&&i.m(a,o),S(a,e,o),S(a,t,o),R(t,r),R(t,s),R(t,l)},p(a,o){a[0]?i||(i=Zn(a),i.c(),i.m(e.parentNode,e)):i&&(i.d(1),i=null)},d(a){i&&i.d(a),a&&k(e),a&&k(t)}}}function es(n){let e,t,r,s,l=n[1].meta?.title+"",i,a,o,f,c,d=n[0]&&Xn(n),p=n[4]&&xn(n),h=n[3],u=[];for(let E=0;En.toLocaleUpperCase();function ns(n,e,t){let{show_images:r=!0}=e,{process_result:s=null}=e,{result:l={data:async()=>{}}}=e,i=["title","image","image_alt","url"],a,o=[],f=[],c=!1,d=(u,_)=>{if(u.length<=_)return u;let E=[...u].sort((b,T)=>T.locations.length-b.locations.length).slice(0,3).map(b=>b.url);return u.filter(b=>E.includes(b.url))},p=async u=>{t(1,a=await u.data()),t(1,a=s?.(a)??a),t(2,o=Object.entries(a.meta).filter(([_])=>!i.includes(_))),Array.isArray(a.sub_results)&&(t(4,c=a.sub_results?.[0]?.url===(a.meta?.url||a.url)),c?t(3,f=d(a.sub_results.slice(1),3)):t(3,f=d([...a.sub_results],3)))},h=(u=30)=>". ".repeat(Math.floor(10+Math.random()*u));return n.$$set=u=>{"show_images"in u&&t(0,r=u.show_images),"process_result"in u&&t(6,s=u.process_result),"result"in u&&t(7,l=u.result)},n.$$.update=()=>{if(n.$$.dirty&128)e:p(l)},[r,a,o,f,c,h,s,l]}var At=class extends q{constructor(e){super(),Y(this,e,ns,ts,G,{show_images:0,process_result:6,result:7})}},rr=At;function sr(n,e,t){let r=n.slice();return r[10]=e[t][0],r[11]=e[t][1],r[12]=e,r[13]=t,r}function lr(n,e,t){let r=n.slice();return r[14]=e[t][0],r[15]=e[t][1],r[16]=e,r[17]=t,r}function ir(n){let e,t,r=n[4]("filters_label",n[5],n[6])+"",s,l,i=Object.entries(n[1]),a=[];for(let o=0;on.toLocaleUpperCase(),_r=n=>n.toLowerCase();function ss(n,e,t){let{available_filters:r=null}=e,{show_empty_filters:s=!0}=e,{open_filters:l=[]}=e,{translate:i=()=>""}=e,{automatic_translations:a={}}=e,{translations:o={}}=e,{selected_filters:f={}}=e,c=!1,d=!1;function p(h,u){f[`${h}:${u}`]=this.checked,t(0,f)}return n.$$set=h=>{"available_filters"in h&&t(1,r=h.available_filters),"show_empty_filters"in h&&t(2,s=h.show_empty_filters),"open_filters"in h&&t(3,l=h.open_filters),"translate"in h&&t(4,i=h.translate),"automatic_translations"in h&&t(5,a=h.automatic_translations),"translations"in h&&t(6,o=h.translations),"selected_filters"in h&&t(0,f=h.selected_filters)},n.$$.update=()=>{if(n.$$.dirty&258){e:if(r&&!c){t(8,c=!0);let h=Object.entries(r||{});h.length===1&&Object.entries(h[0][1])?.length<=6&&t(7,d=!0)}}},[f,r,s,l,i,a,o,d,c,p]}var yt=class extends q{constructor(e){super(),Y(this,e,ss,rs,G,{available_filters:1,show_empty_filters:2,open_filters:3,translate:4,automatic_translations:5,translations:6,selected_filters:0})}},fr=yt;var vt={};A(vt,{comments:()=>is,default:()=>us,direction:()=>as,strings:()=>os,thanks_to:()=>ls});var ls="Jan Claasen ",is="",as="ltr",os={placeholder:"Soek",clear_search:"Opruim",load_more:"Laai nog resultate",search_label:"Soek hierdie webwerf",filters_label:"Filters",zero_results:"Geen resultate vir [SEARCH_TERM]",many_results:"[COUNT] resultate vir [SEARCH_TERM]",one_result:"[COUNT] resultate vir [SEARCH_TERM]",alt_search:"Geen resultate vir [SEARCH_TERM]. Toon resultate vir [DIFFERENT_TERM] in plaas daarvan",search_suggestion:"Geen resultate vir [SEARCH_TERM]. Probeer eerder een van die volgende terme:",searching:"Soek vir [SEARCH_TERM]"},us={thanks_to:ls,comments:is,direction:as,strings:os};var Ht={};A(Ht,{comments:()=>_s,default:()=>hs,direction:()=>fs,strings:()=>ds,thanks_to:()=>cs});var cs="Jermanuts",_s="",fs="rtl",ds={placeholder:"\u0628\u062D\u062B",clear_search:"\u0627\u0645\u0633\u062D",load_more:"\u062D\u0645\u0651\u0650\u0644 \u0627\u0644\u0645\u0632\u064A\u062F \u0645\u0646 \u0627\u0644\u0646\u062A\u0627\u0626\u062C",search_label:"\u0627\u0628\u062D\u062B \u0641\u064A \u0647\u0630\u0627 \u0627\u0644\u0645\u0648\u0642\u0639",filters_label:"\u062A\u0635\u0641\u064A\u0627\u062A",zero_results:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0646\u062A\u0627\u0626\u062C \u0644 [SEARCH_TERM]",many_results:"[COUNT] \u0646\u062A\u0627\u0626\u062C \u0644 [SEARCH_TERM]",one_result:"[COUNT] \u0646\u062A\u064A\u062C\u0629 \u0644 [SEARCH_TERM]",alt_search:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0646\u062A\u0627\u0626\u062C \u0644 [SEARCH_TERM]. \u064A\u0639\u0631\u0636 \u0627\u0644\u0646\u062A\u0627\u0626\u062C \u0644 [DIFFERENT_TERM] \u0628\u062F\u0644\u0627\u064B \u0645\u0646 \u0630\u0644\u0643",search_suggestion:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0646\u062A\u0627\u0626\u062C \u0644 [SEARCH_TERM]. \u062C\u0631\u0628 \u0623\u062D\u062F \u0639\u0645\u0644\u064A\u0627\u062A \u0627\u0644\u0628\u062D\u062B \u0627\u0644\u062A\u0627\u0644\u064A\u0629:",searching:"\u064A\u0628\u062D\u062B \u0639\u0646 [SEARCH_TERM]..."},hs={thanks_to:cs,comments:_s,direction:fs,strings:ds};var wt={};A(wt,{comments:()=>ps,default:()=>Rs,direction:()=>gs,strings:()=>Es,thanks_to:()=>ms});var ms="Maruf Alom ",ps="",gs="ltr",Es={placeholder:"\u0985\u09A8\u09C1\u09B8\u09A8\u09CD\u09A7\u09BE\u09A8 \u0995\u09B0\u09C1\u09A8",clear_search:"\u09AE\u09C1\u099B\u09C7 \u09AB\u09C7\u09B2\u09C1\u09A8",load_more:"\u0986\u09B0\u09CB \u09AB\u09B2\u09BE\u09AB\u09B2 \u09A6\u09C7\u0996\u09C1\u09A8",search_label:"\u098F\u0987 \u0993\u09DF\u09C7\u09AC\u09B8\u09BE\u0987\u099F\u09C7 \u0985\u09A8\u09C1\u09B8\u09A8\u09CD\u09A7\u09BE\u09A8 \u0995\u09B0\u09C1\u09A8",filters_label:"\u09AB\u09BF\u09B2\u09CD\u099F\u09BE\u09B0",zero_results:"[SEARCH_TERM] \u098F\u09B0 \u099C\u09A8\u09CD\u09AF \u0995\u09BF\u099B\u09C1 \u0996\u09C1\u0981\u099C\u09C7 \u09AA\u09BE\u0993\u09DF\u09BE \u09AF\u09BE\u09DF\u09A8\u09BF",many_results:"[COUNT]-\u099F\u09BF \u09AB\u09B2\u09BE\u09AB\u09B2 \u09AA\u09BE\u0993\u09DF\u09BE \u0997\u09BF\u09DF\u09C7\u099B\u09C7 [SEARCH_TERM] \u098F\u09B0 \u099C\u09A8\u09CD\u09AF",one_result:"[COUNT]-\u099F\u09BF \u09AB\u09B2\u09BE\u09AB\u09B2 \u09AA\u09BE\u0993\u09DF\u09BE \u0997\u09BF\u09DF\u09C7\u099B\u09C7 [SEARCH_TERM] \u098F\u09B0 \u099C\u09A8\u09CD\u09AF",alt_search:"\u0995\u09CB\u09A8 \u0995\u09BF\u099B\u09C1 \u0996\u09C1\u0981\u099C\u09C7 \u09AA\u09BE\u0993\u09DF\u09BE \u09AF\u09BE\u09DF\u09A8\u09BF [SEARCH_TERM] \u098F\u09B0 \u099C\u09A8\u09CD\u09AF. \u09AA\u09B0\u09BF\u09AC\u09B0\u09CD\u09A4\u09C7 [DIFFERENT_TERM] \u098F\u09B0 \u099C\u09A8\u09CD\u09AF \u09A6\u09C7\u0996\u09BE\u09A8\u09CB \u09B9\u099A\u09CD\u099B\u09C7",search_suggestion:"\u0995\u09CB\u09A8 \u0995\u09BF\u099B\u09C1 \u0996\u09C1\u0981\u099C\u09C7 \u09AA\u09BE\u0993\u09DF\u09BE \u09AF\u09BE\u09DF\u09A8\u09BF [SEARCH_TERM] \u098F\u09B0 \u09AC\u09BF\u09B7\u09DF\u09C7. \u09A8\u09BF\u09A8\u09CD\u09AE\u09C7\u09B0 \u09AC\u09BF\u09B7\u09DF\u09AC\u09B8\u09CD\u09A4\u09C1 \u0996\u09C1\u0981\u099C\u09C7 \u09A6\u09C7\u0996\u09C1\u09A8:",searching:"\u0985\u09A8\u09C1\u09B8\u09A8\u09CD\u09A7\u09BE\u09A8 \u099A\u09B2\u099B\u09C7 [SEARCH_TERM]..."},Rs={thanks_to:ms,comments:ps,direction:gs,strings:Es};var Ft={};A(Ft,{comments:()=>Ts,default:()=>Ss,direction:()=>Cs,strings:()=>ks,thanks_to:()=>bs});var bs="Pablo Villaverde ",Ts="",Cs="ltr",ks={placeholder:"Cerca",clear_search:"Netejar",load_more:"Veure m\xE9s resultats",search_label:"Cerca en aquest lloc",filters_label:"Filtres",zero_results:"No es van trobar resultats per [SEARCH_TERM]",many_results:"[COUNT] resultats trobats per [SEARCH_TERM]",one_result:"[COUNT] resultat trobat per [SEARCH_TERM]",alt_search:"No es van trobar resultats per [SEARCH_TERM]. Mostrant al seu lloc resultats per [DIFFERENT_TERM]",search_suggestion:"No es van trobar resultats per [SEARCH_TERM]. Proveu una de les cerques seg\xFCents:",searching:"Cercant [SEARCH_TERM]..."},Ss={thanks_to:bs,comments:Ts,direction:Cs,strings:ks};var Nt={};A(Nt,{comments:()=>As,default:()=>Hs,direction:()=>ys,strings:()=>vs,thanks_to:()=>Ms});var Ms="Dalibor Hon ",As="",ys="ltr",vs={placeholder:"Hledat",clear_search:"Smazat",load_more:"Na\u010D\xEDst dal\u0161\xED v\xFDsledky",search_label:"Prohledat tuto str\xE1nku",filters_label:"Filtry",zero_results:"\u017D\xE1dn\xE9 v\xFDsledky pro [SEARCH_TERM]",many_results:"[COUNT] v\xFDsledk\u016F pro [SEARCH_TERM]",one_result:"[COUNT] v\xFDsledek pro [SEARCH_TERM]",alt_search:"\u017D\xE1dn\xE9 v\xFDsledky pro [SEARCH_TERM]. Zobrazuj\xED se v\xFDsledky pro [DIFFERENT_TERM]",search_suggestion:"\u017D\xE1dn\xE9 v\xFDsledky pro [SEARCH_TERM]. Souvisej\xEDc\xED v\xFDsledky hled\xE1n\xED:",searching:"Hled\xE1m [SEARCH_TERM]..."},Hs={thanks_to:Ms,comments:As,direction:ys,strings:vs};var zt={};A(zt,{comments:()=>Fs,default:()=>Os,direction:()=>Ns,strings:()=>zs,thanks_to:()=>ws});var ws="Jonas Smedegaard ",Fs="",Ns="ltr",zs={placeholder:"S\xF8g",clear_search:"Nulstil",load_more:"Indl\xE6s flere resultater",search_label:"S\xF8g p\xE5 dette website",filters_label:"Filtre",zero_results:"Ingen resultater for [SEARCH_TERM]",many_results:"[COUNT] resultater for [SEARCH_TERM]",one_result:"[COUNT] resultat for [SEARCH_TERM]",alt_search:"Ingen resultater for [SEARCH_TERM]. Viser resultater for [DIFFERENT_TERM] i stedet",search_suggestion:"Ingen resultater for [SEARCH_TERM]. Pr\xF8v et af disse s\xF8geord i stedet:",searching:"S\xF8ger efter [SEARCH_TERM]..."},Os={thanks_to:ws,comments:Fs,direction:Ns,strings:zs};var Ot={};A(Ot,{comments:()=>Us,default:()=>Ps,direction:()=>Ds,strings:()=>Is,thanks_to:()=>js});var js="Jan Claasen ",Us="",Ds="ltr",Is={placeholder:"Suche",clear_search:"L\xF6schen",load_more:"Mehr Ergebnisse laden",search_label:"Suche diese Seite",filters_label:"Filter",zero_results:"Keine Ergebnisse f\xFCr [SEARCH_TERM]",many_results:"[COUNT] Ergebnisse f\xFCr [SEARCH_TERM]",one_result:"[COUNT] Ergebnis f\xFCr [SEARCH_TERM]",alt_search:"Keine Ergebnisse f\xFCr [SEARCH_TERM]. Stattdessen werden Ergebnisse f\xFCr [DIFFERENT_TERM] angezeigt",search_suggestion:"Keine Ergebnisse f\xFCr [SEARCH_TERM]. Versuchen Sie eine der folgenden Suchen:",searching:"Suche f\xFCr [SEARCH_TERM]"},Ps={thanks_to:js,comments:Us,direction:Ds,strings:Is};var jt={};A(jt,{comments:()=>qs,default:()=>Ws,direction:()=>Bs,strings:()=>Vs,thanks_to:()=>Ls});var Ls="Liam Bigelow ",qs="",Bs="ltr",Vs={placeholder:"Search",clear_search:"Clear",load_more:"Load more results",search_label:"Search this site",filters_label:"Filters",zero_results:"No results for [SEARCH_TERM]",many_results:"[COUNT] results for [SEARCH_TERM]",one_result:"[COUNT] result for [SEARCH_TERM]",alt_search:"No results for [SEARCH_TERM]. Showing results for [DIFFERENT_TERM] instead",search_suggestion:"No results for [SEARCH_TERM]. Try one of the following searches:",searching:"Searching for [SEARCH_TERM]..."},Ws={thanks_to:Ls,comments:qs,direction:Bs,strings:Vs};var Ut={};A(Ut,{comments:()=>Gs,default:()=>Zs,direction:()=>Js,strings:()=>Ys,thanks_to:()=>Ks});var Ks="Pablo Villaverde ",Gs="",Js="ltr",Ys={placeholder:"Buscar",clear_search:"Limpiar",load_more:"Ver m\xE1s resultados",search_label:"Buscar en este sitio",filters_label:"Filtros",zero_results:"No se encontraron resultados para [SEARCH_TERM]",many_results:"[COUNT] resultados encontrados para [SEARCH_TERM]",one_result:"[COUNT] resultado encontrado para [SEARCH_TERM]",alt_search:"No se encontraron resultados para [SEARCH_TERM]. Mostrando en su lugar resultados para [DIFFERENT_TERM]",search_suggestion:"No se encontraron resultados para [SEARCH_TERM]. Prueba una de las siguientes b\xFAsquedas:",searching:"Buscando [SEARCH_TERM]..."},Zs={thanks_to:Ks,comments:Gs,direction:Js,strings:Ys};var Dt={};A(Dt,{comments:()=>Qs,default:()=>el,direction:()=>xs,strings:()=>$s,thanks_to:()=>Xs});var Xs="Mikel Larreategi ",Qs="",xs="ltr",$s={placeholder:"Bilatu",clear_search:"Garbitu",load_more:"Kargatu emaitza gehiagi",search_label:"Bilatu",filters_label:"Iragazkiak",zero_results:"Ez dago emaitzarik [SEARCH_TERM] bilaketarentzat",many_results:"[COUNT] emaitza [SEARCH_TERM] bilaketarentzat",one_result:"Emaitza bat [COUNT] [SEARCH_TERM] bilaketarentzat",alt_search:"Ez dago emaitzarik [SEARCH_TERM] bilaketarentzat. [DIFFERENT_TERM] bilaketaren emaitzak erakusten",search_suggestion:"Ez dago emaitzarik [SEARCH_TERM] bilaketarentzat. Saiatu hauetako beste bateikin:",searching:"[SEARCH_TERM] bilatzen..."},el={thanks_to:Xs,comments:Qs,direction:xs,strings:$s};var It={};A(It,{comments:()=>nl,default:()=>ll,direction:()=>rl,strings:()=>sl,thanks_to:()=>tl});var tl="Ali Khaleqi Yekta ",nl="",rl="rtl",sl={placeholder:"\u062C\u0633\u062A\u062C\u0648",clear_search:"\u067E\u0627\u06A9\u0633\u0627\u0632\u06CC",load_more:"\u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC \u0646\u062A\u0627\u06CC\u062C \u0628\u06CC\u0634\u062A\u0631",search_label:"\u062C\u0633\u062A\u062C\u0648 \u062F\u0631 \u0633\u0627\u06CC\u062A",filters_label:"\u0641\u06CC\u0644\u062A\u0631\u0647\u0627",zero_results:"\u0646\u062A\u06CC\u062C\u0647\u200C\u0627\u06CC \u0628\u0631\u0627\u06CC [SEARCH_TERM] \u06CC\u0627\u0641\u062A \u0646\u0634\u062F",many_results:"[COUNT] \u0646\u062A\u06CC\u062C\u0647 \u0628\u0631\u0627\u06CC [SEARCH_TERM] \u06CC\u0627\u0641\u062A \u0634\u062F",one_result:"[COUNT] \u0646\u062A\u06CC\u062C\u0647 \u0628\u0631\u0627\u06CC [SEARCH_TERM] \u06CC\u0627\u0641\u062A \u0634\u062F",alt_search:"\u0646\u062A\u06CC\u062C\u0647\u200C\u0627\u06CC \u0628\u0631\u0627\u06CC [SEARCH_TERM] \u06CC\u0627\u0641\u062A \u0646\u0634\u062F. \u062F\u0631 \u0639\u0648\u0636 \u0646\u062A\u0627\u06CC\u062C \u0628\u0631\u0627\u06CC [DIFFERENT_TERM] \u0646\u0645\u0627\u06CC\u0634 \u062F\u0627\u062F\u0647 \u0645\u06CC\u200C\u0634\u0648\u062F",search_suggestion:"\u0646\u062A\u06CC\u062C\u0647\u200C\u0627\u06CC \u0628\u0631\u0627\u06CC [SEARCH_TERM] \u06CC\u0627\u0641\u062A \u0646\u0634\u062F. \u06CC\u06A9\u06CC \u0627\u0632 \u062C\u0633\u062A\u062C\u0648\u0647\u0627\u06CC \u0632\u06CC\u0631 \u0631\u0627 \u0627\u0645\u062A\u062D\u0627\u0646 \u06A9\u0646\u06CC\u062F:",searching:"\u062F\u0631 \u062D\u0627\u0644 \u062C\u0633\u062A\u062C\u0648\u06CC [SEARCH_TERM]..."},ll={thanks_to:tl,comments:nl,direction:rl,strings:sl};var Pt={};A(Pt,{comments:()=>al,default:()=>cl,direction:()=>ol,strings:()=>ul,thanks_to:()=>il});var il="Valtteri Laitinen ",al="",ol="ltr",ul={placeholder:"Haku",clear_search:"Tyhjenn\xE4",load_more:"Lataa lis\xE4\xE4 tuloksia",search_label:"Hae t\xE4lt\xE4 sivustolta",filters_label:"Suodattimet",zero_results:"Ei tuloksia haulle [SEARCH_TERM]",many_results:"[COUNT] tulosta haulle [SEARCH_TERM]",one_result:"[COUNT] tulos haulle [SEARCH_TERM]",alt_search:"Ei tuloksia haulle [SEARCH_TERM]. N\xE4ytet\xE4\xE4n tulokset sen sijaan haulle [DIFFERENT_TERM]",search_suggestion:"Ei tuloksia haulle [SEARCH_TERM]. Kokeile jotain seuraavista:",searching:"Haetaan [SEARCH_TERM]..."},cl={thanks_to:il,comments:al,direction:ol,strings:ul};var Lt={};A(Lt,{comments:()=>fl,default:()=>ml,direction:()=>dl,strings:()=>hl,thanks_to:()=>_l});var _l="Nicolas Friedli ",fl="",dl="ltr",hl={placeholder:"Rechercher",clear_search:"Nettoyer",load_more:"Charger plus de r\xE9sultats",search_label:"Recherche sur ce site",filters_label:"Filtres",zero_results:"Pas de r\xE9sultat pour [SEARCH_TERM]",many_results:"[COUNT] r\xE9sultats pour [SEARCH_TERM]",one_result:"[COUNT] r\xE9sultat pour [SEARCH_TERM]",alt_search:"Pas de r\xE9sultat pour [SEARCH_TERM]. Montre les r\xE9sultats pour [DIFFERENT_TERM] \xE0 la place",search_suggestion:"Pas de r\xE9sultat pour [SEARCH_TERM]. Essayer une des recherches suivantes:",searching:"Recherche [SEARCH_TERM]..."},ml={thanks_to:_l,comments:fl,direction:dl,strings:hl};var qt={};A(qt,{comments:()=>gl,default:()=>bl,direction:()=>El,strings:()=>Rl,thanks_to:()=>pl});var pl="Pablo Villaverde ",gl="",El="ltr",Rl={placeholder:"Buscar",clear_search:"Limpar",load_more:"Ver m\xE1is resultados",search_label:"Buscar neste sitio",filters_label:"Filtros",zero_results:"Non se atoparon resultados para [SEARCH_TERM]",many_results:"[COUNT] resultados atopados para [SEARCH_TERM]",one_result:"[COUNT] resultado atopado para [SEARCH_TERM]",alt_search:"Non se atoparon resultados para [SEARCH_TERM]. Amosando no seu lugar resultados para [DIFFERENT_TERM]",search_suggestion:"Non se atoparon resultados para [SEARCH_TERM]. Probe unha das seguintes pesquisas:",searching:"Buscando [SEARCH_TERM]..."},bl={thanks_to:pl,comments:gl,direction:El,strings:Rl};var Bt={};A(Bt,{comments:()=>Cl,default:()=>Ml,direction:()=>kl,strings:()=>Sl,thanks_to:()=>Tl});var Tl="Nir Tamir ",Cl="",kl="rtl",Sl={placeholder:"\u05D7\u05D9\u05E4\u05D5\u05E9",clear_search:"\u05E0\u05D9\u05E7\u05D5\u05D9",load_more:"\u05E2\u05D5\u05D3 \u05EA\u05D5\u05E6\u05D0\u05D5\u05EA",search_label:"\u05D7\u05D9\u05E4\u05D5\u05E9 \u05D1\u05D0\u05EA\u05E8 \u05D6\u05D4",filters_label:"\u05DE\u05E1\u05E0\u05E0\u05D9\u05DD",zero_results:"\u05DC\u05D0 \u05E0\u05DE\u05E6\u05D0\u05D5 \u05EA\u05D5\u05E6\u05D0\u05D5\u05EA \u05E2\u05D1\u05D5\u05E8 [SEARCH_TERM]",many_results:"\u05E0\u05DE\u05E6\u05D0\u05D5 [COUNT] \u05EA\u05D5\u05E6\u05D0\u05D5\u05EA \u05E2\u05D1\u05D5\u05E8 [SEARCH_TERM]",one_result:"\u05E0\u05DE\u05E6\u05D0\u05D4 \u05EA\u05D5\u05E6\u05D0\u05D4 \u05D0\u05D7\u05EA \u05E2\u05D1\u05D5\u05E8 [SEARCH_TERM]",alt_search:"\u05DC\u05D0 \u05E0\u05DE\u05E6\u05D0\u05D5 \u05EA\u05D5\u05E6\u05D0\u05D5\u05EA \u05E2\u05D1\u05D5\u05E8 [SEARCH_TERM]. \u05DE\u05D5\u05E6\u05D2\u05D5\u05EA \u05EA\u05D5\u05E6\u05D0\u05D5\u05EA \u05E2\u05D1\u05D5\u05E8 [DIFFERENT_TERM]",search_suggestion:"\u05DC\u05D0 \u05E0\u05DE\u05E6\u05D0\u05D5 \u05EA\u05D5\u05E6\u05D0\u05D5\u05EA \u05E2\u05D1\u05D5\u05E8 [SEARCH_TERM]. \u05E0\u05E1\u05D5 \u05D0\u05D7\u05D3 \u05DE\u05D4\u05D7\u05D9\u05E4\u05D5\u05E9\u05D9\u05DD \u05D4\u05D1\u05D0\u05D9\u05DD:",searching:"\u05DE\u05D7\u05E4\u05E9 \u05D0\u05EA [SEARCH_TERM]..."},Ml={thanks_to:Tl,comments:Cl,direction:kl,strings:Sl};var Vt={};A(Vt,{comments:()=>yl,default:()=>wl,direction:()=>vl,strings:()=>Hl,thanks_to:()=>Al});var Al="Amit Yadav ",yl="",vl="ltr",Hl={placeholder:"\u0916\u094B\u091C\u0947\u0902",clear_search:"\u0938\u093E\u092B \u0915\u0930\u0947\u0902",load_more:"\u0914\u0930 \u0905\u0927\u093F\u0915 \u092A\u0930\u093F\u0923\u093E\u092E \u0932\u094B\u0921 \u0915\u0930\u0947\u0902",search_label:"\u0907\u0938 \u0938\u093E\u0907\u091F \u092E\u0947\u0902 \u0916\u094B\u091C\u0947\u0902",filters_label:"\u092B\u093C\u093F\u0932\u094D\u091F\u0930",zero_results:"\u0915\u094B\u0908 \u092A\u0930\u093F\u0923\u093E\u092E [SEARCH_TERM] \u0915\u0947 \u0932\u093F\u090F \u0928\u0939\u0940\u0902 \u092E\u093F\u0932\u093E",many_results:"[COUNT] \u092A\u0930\u093F\u0923\u093E\u092E [SEARCH_TERM] \u0915\u0947 \u0932\u093F\u090F \u092E\u093F\u0932\u0947",one_result:"[COUNT] \u092A\u0930\u093F\u0923\u093E\u092E [SEARCH_TERM] \u0915\u0947 \u0932\u093F\u090F \u092E\u093F\u0932\u093E",alt_search:"[SEARCH_TERM] \u0915\u0947 \u0932\u093F\u090F \u0915\u094B\u0908 \u092A\u0930\u093F\u0923\u093E\u092E \u0928\u0939\u0940\u0902 \u092E\u093F\u0932\u093E\u0964 \u0907\u0938\u0915\u0947 \u092C\u091C\u093E\u092F [DIFFERENT_TERM] \u0915\u0947 \u0932\u093F\u090F \u092A\u0930\u093F\u0923\u093E\u092E \u0926\u093F\u0916\u093E \u0930\u0939\u093E \u0939\u0948",search_suggestion:"[SEARCH_TERM] \u0915\u0947 \u0932\u093F\u090F \u0915\u094B\u0908 \u092A\u0930\u093F\u0923\u093E\u092E \u0928\u0939\u0940\u0902 \u092E\u093F\u0932\u093E\u0964 \u0928\u093F\u092E\u094D\u0928\u0932\u093F\u0916\u093F\u0924 \u0916\u094B\u091C\u094B\u0902 \u092E\u0947\u0902 \u0938\u0947 \u0915\u094B\u0908 \u090F\u0915 \u0906\u091C\u093C\u092E\u093E\u090F\u0902:",searching:"[SEARCH_TERM] \u0915\u0940 \u0916\u094B\u091C \u0915\u0940 \u091C\u093E \u0930\u0939\u0940 \u0939\u0948..."},wl={thanks_to:Al,comments:yl,direction:vl,strings:Hl};var Wt={};A(Wt,{comments:()=>Nl,default:()=>jl,direction:()=>zl,strings:()=>Ol,thanks_to:()=>Fl});var Fl="Diomed ",Nl="",zl="ltr",Ol={placeholder:"Tra\u017Ei",clear_search:"O\u010Disti",load_more:"U\u010Ditaj vi\u0161e rezultata",search_label:"Pretra\u017Ei ovu stranicu",filters_label:"Filteri",zero_results:"Nema rezultata za [SEARCH_TERM]",many_results:"[COUNT] rezultata za [SEARCH_TERM]",one_result:"[COUNT] rezultat za [SEARCH_TERM]",alt_search:"Nema rezultata za [SEARCH_TERM]. Prikazujem rezultate za [DIFFERENT_TERM]",search_suggestion:"Nema rezultata za [SEARCH_TERM]. Poku\u0161aj s jednom od ovih pretraga:",searching:"Pretra\u017Eujem [SEARCH_TERM]..."},jl={thanks_to:Fl,comments:Nl,direction:zl,strings:Ol};var Kt={};A(Kt,{comments:()=>Dl,default:()=>Ll,direction:()=>Il,strings:()=>Pl,thanks_to:()=>Ul});var Ul="Adam Laki ",Dl="",Il="ltr",Pl={placeholder:"Keres\xE9s",clear_search:"T\xF6rl\xE9s",load_more:"Tov\xE1bbi tal\xE1latok bet\xF6lt\xE9se",search_label:"Keres\xE9s az oldalon",filters_label:"Sz\u0171r\xE9s",zero_results:"Nincs tal\xE1lat a(z) [SEARCH_TERM] kifejez\xE9sre",many_results:"[COUNT] db tal\xE1lat a(z) [SEARCH_TERM] kifejez\xE9sre",one_result:"[COUNT] db tal\xE1lat a(z) [SEARCH_TERM] kifejez\xE9sre",alt_search:"Nincs tal\xE1lat a(z) [SEARCH_TERM] kifejez\xE9sre. Tal\xE1latok mutat\xE1sa ink\xE1bb a(z) [DIFFERENT_TERM] kifejez\xE9sre",search_suggestion:"Nincs tal\xE1lat a(z) [SEARCH_TERM] kifejez\xE9sre. Pr\xF3b\xE1ld meg a k\xF6vetkez\u0151 keres\xE9sek egyik\xE9t:",searching:"Keres\xE9s a(z) [SEARCH_TERM] kifejez\xE9sre..."},Ll={thanks_to:Ul,comments:Dl,direction:Il,strings:Pl};var Gt={};A(Gt,{comments:()=>Bl,default:()=>Kl,direction:()=>Vl,strings:()=>Wl,thanks_to:()=>ql});var ql="Nixentric",Bl="",Vl="ltr",Wl={placeholder:"Cari",clear_search:"Bersihkan",load_more:"Muat lebih banyak hasil",search_label:"Telusuri situs ini",filters_label:"Filter",zero_results:"[SEARCH_TERM] tidak ditemukan",many_results:"Ditemukan [COUNT] hasil untuk [SEARCH_TERM]",one_result:"Ditemukan [COUNT] hasil untuk [SEARCH_TERM]",alt_search:"[SEARCH_TERM] tidak ditemukan. Menampilkan hasil [DIFFERENT_TERM] sebagai gantinya",search_suggestion:"[SEARCH_TERM] tidak ditemukan. Coba salah satu pencarian berikut ini:",searching:"Mencari [SEARCH_TERM]..."},Kl={thanks_to:ql,comments:Bl,direction:Vl,strings:Wl};var Jt={};A(Jt,{comments:()=>Jl,default:()=>Xl,direction:()=>Yl,strings:()=>Zl,thanks_to:()=>Gl});var Gl="Cosette Bruhns Alonso, Andrew Janco ",Jl="",Yl="ltr",Zl={placeholder:"Cerca",clear_search:"Cancella la cronologia",load_more:"Mostra pi\xF9 risultati",search_label:"Cerca nel sito",filters_label:"Filtri di ricerca",zero_results:"Nessun risultato per [SEARCH_TERM]",many_results:"[COUNT] risultati per [SEARCH_TERM]",one_result:"[COUNT] risultato per [SEARCH_TERM]",alt_search:"Nessun risultato per [SEARCH_TERM]. Mostrando risultati per [DIFFERENT_TERM] come alternativa.",search_suggestion:"Nessun risultato per [SEARCH_TERM]. Prova una delle seguenti ricerche:",searching:"Cercando [SEARCH_TERM]..."},Xl={thanks_to:Gl,comments:Jl,direction:Yl,strings:Zl};var Yt={};A(Yt,{comments:()=>xl,default:()=>ti,direction:()=>$l,strings:()=>ei,thanks_to:()=>Ql});var Ql="Tate",xl="",$l="ltr",ei={placeholder:"\u691C\u7D22",clear_search:"\u30AF\u30EA\u30A2",load_more:"\u6B21\u3092\u8AAD\u307F\u8FBC\u3080",search_label:"\u3053\u306E\u30B5\u30A4\u30C8\u3092\u691C\u7D22",filters_label:"\u30D5\u30A3\u30EB\u30BF",zero_results:"[SEARCH_TERM]\u306E\u691C\u7D22\u306B\u4E00\u81F4\u3059\u308B\u60C5\u5831\u306F\u3042\u308A\u307E\u305B\u3093\u3067\u3057\u305F",many_results:"[SEARCH_TERM]\u306E[COUNT]\u4EF6\u306E\u691C\u7D22\u7D50\u679C",one_result:"[SEARCH_TERM]\u306E[COUNT]\u4EF6\u306E\u691C\u7D22\u7D50\u679C",alt_search:"[SEARCH_TERM]\u306E\u691C\u7D22\u306B\u4E00\u81F4\u3059\u308B\u60C5\u5831\u306F\u3042\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002[DIFFERENT_TERM]\u306E\u691C\u7D22\u7D50\u679C\u3092\u8868\u793A\u3057\u3066\u3044\u307E\u3059",search_suggestion:"[SEARCH_TERM]\u306E\u691C\u7D22\u306B\u4E00\u81F4\u3059\u308B\u60C5\u5831\u306F\u3042\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u6B21\u306E\u3044\u305A\u308C\u304B\u306E\u691C\u7D22\u3092\u8A66\u3057\u3066\u304F\u3060\u3055\u3044",searching:"[SEARCH_TERM]\u3092\u691C\u7D22\u3057\u3066\u3044\u307E\u3059"},ti={thanks_to:Ql,comments:xl,direction:$l,strings:ei};var Zt={};A(Zt,{comments:()=>ri,default:()=>ii,direction:()=>si,strings:()=>li,thanks_to:()=>ni});var ni="Seokho Son ",ri="",si="ltr",li={placeholder:"\uAC80\uC0C9\uC5B4",clear_search:"\uBE44\uC6B0\uAE30",load_more:"\uAC80\uC0C9 \uACB0\uACFC \uB354 \uBCF4\uAE30",search_label:"\uC0AC\uC774\uD2B8 \uAC80\uC0C9",filters_label:"\uD544\uD130",zero_results:"[SEARCH_TERM]\uC5D0 \uB300\uD55C \uACB0\uACFC \uC5C6\uC74C",many_results:"[SEARCH_TERM]\uC5D0 \uB300\uD55C \uACB0\uACFC [COUNT]\uAC74",one_result:"[SEARCH_TERM]\uC5D0 \uB300\uD55C \uACB0\uACFC [COUNT]\uAC74",alt_search:"[SEARCH_TERM]\uC5D0 \uB300\uD55C \uACB0\uACFC \uC5C6\uC74C. [DIFFERENT_TERM]\uC5D0 \uB300\uD55C \uACB0\uACFC",search_suggestion:"[SEARCH_TERM]\uC5D0 \uB300\uD55C \uACB0\uACFC \uC5C6\uC74C. \uCD94\uCC9C \uAC80\uC0C9\uC5B4: ",searching:"[SEARCH_TERM] \uAC80\uC0C9 \uC911..."},ii={thanks_to:ni,comments:ri,direction:si,strings:li};var Xt={};A(Xt,{comments:()=>oi,default:()=>_i,direction:()=>ui,strings:()=>ci,thanks_to:()=>ai});var ai="",oi="",ui="ltr",ci={placeholder:"Rapu",clear_search:"Whakakore",load_more:"Whakauta \u0113tahi otinga k\u0113",search_label:"Rapu",filters_label:"T\u0101tari",zero_results:"Otinga kore ki [SEARCH_TERM]",many_results:"[COUNT] otinga ki [SEARCH_TERM]",one_result:"[COUNT] otinga ki [SEARCH_TERM]",alt_search:"Otinga kore ki [SEARCH_TERM]. Otinga k\u0113 ki [DIFFERENT_TERM]",search_suggestion:"Otinga kore ki [SEARCH_TERM]. whakam\u0101tau ki ng\u0101 mea atu:",searching:"Rapu ki [SEARCH_TERM]..."},_i={thanks_to:ai,comments:oi,direction:ui,strings:ci};var Qt={};A(Qt,{comments:()=>di,default:()=>pi,direction:()=>hi,strings:()=>mi,thanks_to:()=>fi});var fi="Harry Min Khant ",di="",hi="ltr",mi={placeholder:"\u101B\u103E\u102C\u101B\u1014\u103A",clear_search:"\u101B\u103E\u102C\u1016\u103D\u1031\u1019\u103E\u102F\u1000\u102D\u102F \u101B\u103E\u1004\u103A\u1038\u101C\u1004\u103A\u1038\u1015\u102B\u104B",load_more:"\u1014\u1031\u102C\u1000\u103A\u1011\u1015\u103A\u101B\u101C\u1012\u103A\u1019\u103B\u102C\u1038\u1000\u102D\u102F \u1010\u1004\u103A\u1015\u102B\u104B",search_label:"\u1024\u1006\u102D\u102F\u1000\u103A\u1010\u103D\u1004\u103A\u101B\u103E\u102C\u1016\u103D\u1031\u1015\u102B\u104B",filters_label:"\u1005\u1005\u103A\u1011\u102F\u1010\u103A\u1019\u103E\u102F\u1019\u103B\u102C\u1038",zero_results:"[SEARCH_TERM] \u1021\u1010\u103D\u1000\u103A \u101B\u101C\u1012\u103A\u1019\u103B\u102C\u1038 \u1019\u101B\u103E\u102D\u1015\u102B",many_results:"[SEARCH_TERM] \u1021\u1010\u103D\u1000\u103A \u101B\u101C\u1012\u103A [COUNT] \u1001\u102F",one_result:"[SEARCH_TERM] \u1021\u1010\u103D\u1000\u103A \u101B\u101C\u1012\u103A [COUNT]",alt_search:"[SEARCH_TERM] \u1021\u1010\u103D\u1000\u103A \u101B\u101C\u1012\u103A\u1019\u101B\u103E\u102D\u1015\u102B\u104B \u104E\u1004\u103A\u1038\u1021\u1005\u102C\u1038 [DIFFERENT_TERM] \u1021\u1010\u103D\u1000\u103A \u101B\u101C\u1012\u103A\u1019\u103B\u102C\u1038\u1000\u102D\u102F \u1015\u103C\u101E\u101E\u100A\u103A\u104B",search_suggestion:"[SEARCH_TERM] \u1021\u1010\u103D\u1000\u103A \u101B\u101C\u1012\u103A\u1019\u101B\u103E\u102D\u1015\u102B\u104B \u1021\u1031\u102C\u1000\u103A\u1015\u102B\u101B\u103E\u102C\u1016\u103D\u1031\u1019\u103E\u102F\u1019\u103B\u102C\u1038\u1011\u1032\u1019\u103E \u1010\u1005\u103A\u1001\u102F\u1000\u102D\u102F \u1005\u1019\u103A\u1038\u1000\u103C\u100A\u1037\u103A\u1015\u102B:",searching:"[SEARCH_TERM] \u1000\u102D\u102F \u101B\u103E\u102C\u1016\u103D\u1031\u1014\u1031\u101E\u100A\u103A..."},pi={thanks_to:fi,comments:di,direction:hi,strings:mi};var xt={};A(xt,{comments:()=>Ei,default:()=>Ti,direction:()=>Ri,strings:()=>bi,thanks_to:()=>gi});var gi="Eirik Mikkelsen",Ei="",Ri="ltr",bi={placeholder:"S\xF8k",clear_search:"Fjern",load_more:"Last flere resultater",search_label:"S\xF8k p\xE5 denne siden",filters_label:"Filtre",zero_results:"Ingen resultater for [SEARCH_TERM]",many_results:"[COUNT] resultater for [SEARCH_TERM]",one_result:"[COUNT] resultat for [SEARCH_TERM]",alt_search:"Ingen resultater for [SEARCH_TERM]. Viser resultater for [DIFFERENT_TERM] i stedet",search_suggestion:"Ingen resultater for [SEARCH_TERM]. Pr\xF8v en av disse s\xF8keordene i stedet:",searching:"S\xF8ker etter [SEARCH_TERM]"},Ti={thanks_to:gi,comments:Ei,direction:Ri,strings:bi};var $t={};A($t,{comments:()=>ki,default:()=>Ai,direction:()=>Si,strings:()=>Mi,thanks_to:()=>Ci});var Ci="Paul van Brouwershaven",ki="",Si="ltr",Mi={placeholder:"Zoeken",clear_search:"Reset",load_more:"Meer resultaten laden",search_label:"Doorzoek deze site",filters_label:"Filters",zero_results:"Geen resultaten voor [SEARCH_TERM]",many_results:"[COUNT] resultaten voor [SEARCH_TERM]",one_result:"[COUNT] resultaat voor [SEARCH_TERM]",alt_search:"Geen resultaten voor [SEARCH_TERM]. In plaats daarvan worden resultaten voor [DIFFERENT_TERM] weergegeven",search_suggestion:"Geen resultaten voor [SEARCH_TERM]. Probeer een van de volgende zoekopdrachten:",searching:"Zoeken naar [SEARCH_TERM]..."},Ai={thanks_to:Ci,comments:ki,direction:Si,strings:Mi};var en={};A(en,{comments:()=>vi,default:()=>Fi,direction:()=>Hi,strings:()=>wi,thanks_to:()=>yi});var yi="Eirik Mikkelsen",vi="",Hi="ltr",wi={placeholder:"S\xF8k",clear_search:"Fjern",load_more:"Last fleire resultat",search_label:"S\xF8k p\xE5 denne sida",filters_label:"Filter",zero_results:"Ingen resultat for [SEARCH_TERM]",many_results:"[COUNT] resultat for [SEARCH_TERM]",one_result:"[COUNT] resultat for [SEARCH_TERM]",alt_search:"Ingen resultat for [SEARCH_TERM]. Viser resultat for [DIFFERENT_TERM] i staden",search_suggestion:"Ingen resultat for [SEARCH_TERM]. Pr\xF8v eitt av desse s\xF8keorda i staden:",searching:"S\xF8ker etter [SEARCH_TERM]"},Fi={thanks_to:yi,comments:vi,direction:Hi,strings:wi};var tn={};A(tn,{comments:()=>zi,default:()=>Ui,direction:()=>Oi,strings:()=>ji,thanks_to:()=>Ni});var Ni="Christopher Wingate",zi="",Oi="ltr",ji={placeholder:"S\xF8k",clear_search:"Fjern",load_more:"Last flere resultater",search_label:"S\xF8k p\xE5 denne siden",filters_label:"Filtre",zero_results:"Ingen resultater for [SEARCH_TERM]",many_results:"[COUNT] resultater for [SEARCH_TERM]",one_result:"[COUNT] resultat for [SEARCH_TERM]",alt_search:"Ingen resultater for [SEARCH_TERM]. Viser resultater for [DIFFERENT_TERM] i stedet",search_suggestion:"Ingen resultater for [SEARCH_TERM]. Pr\xF8v en av disse s\xF8keordene i stedet:",searching:"S\xF8ker etter [SEARCH_TERM]"},Ui={thanks_to:Ni,comments:zi,direction:Oi,strings:ji};var nn={};A(nn,{comments:()=>Ii,default:()=>qi,direction:()=>Pi,strings:()=>Li,thanks_to:()=>Di});var Di="",Ii="",Pi="ltr",Li={placeholder:"Szukaj",clear_search:"Wyczy\u015B\u0107",load_more:"Za\u0142aduj wi\u0119cej",search_label:"Przeszukaj t\u0119 stron\u0119",filters_label:"Filtry",zero_results:"Brak wynik\xF3w dla [SEARCH_TERM]",many_results:"[COUNT] wynik\xF3w dla [SEARCH_TERM]",one_result:"[COUNT] wynik dla [SEARCH_TERM]",alt_search:"Brak wynik\xF3w dla [SEARCH_TERM]. Wy\u015Bwietlam wyniki dla [DIFFERENT_TERM]",search_suggestion:"Brak wynik\xF3w dla [SEARCH_TERM]. Pokrewne wyniki wyszukiwania:",searching:"Szukam [SEARCH_TERM]..."},qi={thanks_to:Di,comments:Ii,direction:Pi,strings:Li};var rn={};A(rn,{comments:()=>Vi,default:()=>Gi,direction:()=>Wi,strings:()=>Ki,thanks_to:()=>Bi});var Bi="Jonatah",Vi="",Wi="ltr",Ki={placeholder:"Pesquisar",clear_search:"Limpar",load_more:"Ver mais resultados",search_label:"Pesquisar",filters_label:"Filtros",zero_results:"Nenhum resultado encontrado para [SEARCH_TERM]",many_results:"[COUNT] resultados encontrados para [SEARCH_TERM]",one_result:"[COUNT] resultado encontrado para [SEARCH_TERM]",alt_search:"Nenhum resultado encontrado para [SEARCH_TERM]. Exibindo resultados para [DIFFERENT_TERM]",search_suggestion:"Nenhum resultado encontrado para [SEARCH_TERM]. Tente uma das seguintes pesquisas:",searching:"Pesquisando por [SEARCH_TERM]..."},Gi={thanks_to:Bi,comments:Vi,direction:Wi,strings:Ki};var sn={};A(sn,{comments:()=>Yi,default:()=>Qi,direction:()=>Zi,strings:()=>Xi,thanks_to:()=>Ji});var Ji="Bogdan Mateescu ",Yi="",Zi="ltr",Xi={placeholder:"C\u0103utare",clear_search:"\u015Eterge\u0163i",load_more:"\xCEnc\u0103rca\u021Bi mai multe rezultate",search_label:"C\u0103uta\u021Bi \xEEn acest site",filters_label:"Filtre",zero_results:"Niciun rezultat pentru [SEARCH_TERM]",many_results:"[COUNT] rezultate pentru [SEARCH_TERM]",one_result:"[COUNT] rezultat pentru [SEARCH_TERM]",alt_search:"Niciun rezultat pentru [SEARCH_TERM]. Se afi\u0219eaz\u0103 \xEEn schimb rezultatele pentru [DIFFERENT_TERM]",search_suggestion:"Niciun rezultat pentru [SEARCH_TERM]. \xCEncerca\u021Bi una dintre urm\u0103toarele c\u0103ut\u0103ri:",searching:"Se caut\u0103 dup\u0103: [SEARCH_TERM]..."},Qi={thanks_to:Ji,comments:Yi,direction:Zi,strings:Xi};var ln={};A(ln,{comments:()=>$i,default:()=>na,direction:()=>ea,strings:()=>ta,thanks_to:()=>xi});var xi="Aleksandr Gordeev",$i="",ea="ltr",ta={placeholder:"\u041F\u043E\u0438\u0441\u043A",clear_search:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u043F\u043E\u043B\u0435",load_more:"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0435\u0449\u0435",search_label:"\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0441\u0430\u0439\u0442\u0443",filters_label:"\u0424\u0438\u043B\u044C\u0442\u0440\u044B",zero_results:"\u041D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u043F\u043E \u0437\u0430\u043F\u0440\u043E\u0441\u0443: [SEARCH_TERM]",many_results:"[COUNT] \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432 \u043F\u043E \u0437\u0430\u043F\u0440\u043E\u0441\u0443: [SEARCH_TERM]",one_result:"[COUNT] \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442 \u043F\u043E \u0437\u0430\u043F\u0440\u043E\u0441\u0443: [SEARCH_TERM]",alt_search:"\u041D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u043F\u043E \u0437\u0430\u043F\u0440\u043E\u0441\u0443: [SEARCH_TERM]. \u041F\u043E\u043A\u0430\u0437\u0430\u043D\u044B \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u043F\u043E \u0437\u0430\u043F\u0440\u043E\u0441\u0443: [DIFFERENT_TERM]",search_suggestion:"\u041D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u043F\u043E \u0437\u0430\u043F\u0440\u043E\u0441\u0443: [SEARCH_TERM]. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u043E\u0434\u0438\u043D \u0438\u0437 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0445 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043E\u0432",searching:"\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0437\u0430\u043F\u0440\u043E\u0441\u0443: [SEARCH_TERM]"},na={thanks_to:xi,comments:$i,direction:ea,strings:ta};var an={};A(an,{comments:()=>sa,default:()=>aa,direction:()=>la,strings:()=>ia,thanks_to:()=>ra});var ra="Andrija Sagicc",sa="",la="ltr",ia={placeholder:"\u041F\u0440\u0435\u0442\u0440\u0430\u0433\u0430",clear_search:"\u0411\u0440\u0438\u0441\u0430\u045A\u0435",load_more:"\u041F\u0440\u0438\u043A\u0430\u0437 \u0432\u0438\u0448\u0435 \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0430",search_label:"\u041F\u0440\u0435\u0442\u0440\u0430\u0433\u0430 \u0441\u0430\u0458\u0442\u0430",filters_label:"\u0424\u0438\u043B\u0442\u0435\u0440\u0438",zero_results:"\u041D\u0435\u043C\u0430 \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0430 \u0437\u0430 [SEARCH_TERM]",many_results:"[COUNT] \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0430 \u0437\u0430 [SEARCH_TERM]",one_result:"[COUNT] \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0430 \u0437\u0430 [SEARCH_TERM]",alt_search:"\u041D\u0435\u043C\u0430 \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0430 \u0437\u0430 [SEARCH_TERM]. \u041F\u0440\u0438\u043A\u0430\u0437 \u0434\u043E\u0434\u0430\u0442\u043D\u0438\u043A \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0430 \u0437\u0430 [DIFFERENT_TERM]",search_suggestion:"\u041D\u0435\u043C\u0430 \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0430 \u0437\u0430 [SEARCH_TERM]. \u041F\u043E\u043A\u0443\u0448\u0430\u0458\u0442\u0435 \u0441\u0430 \u043D\u0435\u043A\u043E\u043C \u043E\u0434 \u0441\u043B\u0435\u0434\u0435\u045B\u0438\u0445 \u043F\u0440\u0435\u0442\u0440\u0430\u0433\u0430:",searching:"\u041F\u0440\u0435\u0442\u0440\u0430\u0433\u0430 \u0442\u0435\u0440\u043C\u0438\u043D\u0430 [SEARCH_TERM]..."},aa={thanks_to:ra,comments:sa,direction:la,strings:ia};var on={};A(on,{comments:()=>ua,default:()=>fa,direction:()=>ca,strings:()=>_a,thanks_to:()=>oa});var oa="Montazar Al-Jaber ",ua="",ca="ltr",_a={placeholder:"S\xF6k",clear_search:"Rensa",load_more:"Visa fler tr\xE4ffar",search_label:"S\xF6k p\xE5 denna sida",filters_label:"Filter",zero_results:"[SEARCH_TERM] gav inga tr\xE4ffar",many_results:"[SEARCH_TERM] gav [COUNT] tr\xE4ffar",one_result:"[SEARCH_TERM] gav [COUNT] tr\xE4ff",alt_search:"[SEARCH_TERM] gav inga tr\xE4ffar. Visar resultat f\xF6r [DIFFERENT_TERM] ist\xE4llet",search_suggestion:"[SEARCH_TERM] gav inga tr\xE4ffar. F\xF6rs\xF6k igen med en av f\xF6ljande s\xF6kord:",searching:"S\xF6ker efter [SEARCH_TERM]..."},fa={thanks_to:oa,comments:ua,direction:ca,strings:_a};var un={};A(un,{comments:()=>ha,default:()=>ga,direction:()=>ma,strings:()=>pa,thanks_to:()=>da});var da="Anonymous",ha="",ma="ltr",pa={placeholder:"Tafuta",clear_search:"Futa",load_more:"Pakia matokeo zaidi",search_label:"Tafuta tovuti hii",filters_label:"Vichujio",zero_results:"Hakuna matokeo ya [SEARCH_TERM]",many_results:"Matokeo [COUNT] ya [SEARCH_TERM]",one_result:"Tokeo [COUNT] la [SEARCH_TERM]",alt_search:"Hakuna mayokeo ya [SEARCH_TERM]. Badala yake, inaonyesha matokeo ya [DIFFERENT_TERM]",search_suggestion:"Hakuna matokeo ya [SEARCH_TERM]. Jaribu mojawapo ya utafutaji ufuatao:",searching:"Kutafuta [SEARCH_TERM]..."},ga={thanks_to:da,comments:ha,direction:ma,strings:pa};var cn={};A(cn,{comments:()=>Ra,default:()=>Ca,direction:()=>ba,strings:()=>Ta,thanks_to:()=>Ea});var Ea="",Ra="",ba="ltr",Ta={placeholder:"\u0BA4\u0BC7\u0B9F\u0BC1\u0B95",clear_search:"\u0B85\u0BB4\u0BBF\u0B95\u0BCD\u0B95\u0BC1\u0B95",load_more:"\u0BAE\u0BC7\u0BB2\u0BC1\u0BAE\u0BCD \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0BC1\u0B95\u0BB3\u0BC8\u0B95\u0BCD \u0B95\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B95",search_label:"\u0B87\u0BA8\u0BCD\u0BA4 \u0BA4\u0BB3\u0BA4\u0BCD\u0BA4\u0BBF\u0BB2\u0BCD \u0BA4\u0BC7\u0B9F\u0BC1\u0B95",filters_label:"\u0BB5\u0B9F\u0BBF\u0B95\u0B9F\u0BCD\u0B9F\u0BB2\u0BCD\u0B95\u0BB3\u0BCD",zero_results:"[SEARCH_TERM] \u0B95\u0BCD\u0B95\u0BBE\u0BA9 \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0BC1\u0B95\u0BB3\u0BCD \u0B87\u0BB2\u0BCD\u0BB2\u0BC8",many_results:"[SEARCH_TERM] \u0B95\u0BCD\u0B95\u0BBE\u0BA9 [COUNT] \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0BC1\u0B95\u0BB3\u0BCD",one_result:"[SEARCH_TERM] \u0B95\u0BCD\u0B95\u0BBE\u0BA9 \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0BC1",alt_search:"[SEARCH_TERM] \u0B87\u0BA4\u0BCD\u0BA4\u0BC7\u0B9F\u0BB2\u0BC1\u0B95\u0BCD\u0B95\u0BBE\u0BA9 \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0BC1\u0B95\u0BB3\u0BCD \u0B87\u0BB2\u0BCD\u0BB2\u0BC8, \u0B87\u0BA8\u0BCD\u0BA4 \u0BA4\u0BC7\u0B9F\u0BB2\u0BCD\u0B95\u0BB3\u0BC1\u0B95\u0BCD\u0B95\u0BBE\u0BA9 \u0B92\u0BA4\u0BCD\u0BA4 \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0BC1\u0B95\u0BB3\u0BCD [DIFFERENT_TERM]",search_suggestion:"[SEARCH_TERM] \u0B87\u0BA4\u0BCD \u0BA4\u0BC7\u0B9F\u0BB2\u0BC1\u0B95\u0BCD\u0B95\u0BBE\u0BA9 \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0BC1\u0B95\u0BB3\u0BCD \u0B87\u0BB2\u0BCD\u0BB2\u0BC8.\u0B87\u0BA4\u0BB1\u0BCD\u0B95\u0BC1 \u0BAA\u0BA4\u0BBF\u0BB2\u0BC0\u0B9F\u0BBE\u0BA9 \u0BA4\u0BC7\u0B9F\u0BB2\u0BCD\u0B95\u0BB3\u0BC8 \u0BA4\u0BC7\u0B9F\u0BC1\u0B95:",searching:"[SEARCH_TERM] \u0BA4\u0BC7\u0B9F\u0BAA\u0BCD\u0BAA\u0B9F\u0BC1\u0B95\u0BBF\u0BA9\u0BCD\u0BB1\u0BA4\u0BC1"},Ca={thanks_to:Ea,comments:Ra,direction:ba,strings:Ta};var _n={};A(_n,{comments:()=>Sa,default:()=>ya,direction:()=>Ma,strings:()=>Aa,thanks_to:()=>ka});var ka="Patiphon Loetsuthakun ",Sa="",Ma="ltr",Aa={placeholder:"\u0E04\u0E49\u0E19\u0E2B\u0E32",clear_search:"\u0E25\u0E49\u0E32\u0E07",load_more:"\u0E42\u0E2B\u0E25\u0E14\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E40\u0E15\u0E34\u0E21",search_label:"\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E1A\u0E19\u0E40\u0E27\u0E47\u0E1A\u0E44\u0E0B\u0E15\u0E4C",filters_label:"\u0E15\u0E31\u0E27\u0E01\u0E23\u0E2D\u0E07",zero_results:"\u0E44\u0E21\u0E48\u0E1E\u0E1A\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A [SEARCH_TERM]",many_results:"\u0E1E\u0E1A [COUNT] \u0E1C\u0E25\u0E01\u0E32\u0E23\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A [SEARCH_TERM]",one_result:"\u0E1E\u0E1A [COUNT] \u0E1C\u0E25\u0E01\u0E32\u0E23\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A [SEARCH_TERM]",alt_search:"\u0E44\u0E21\u0E48\u0E1E\u0E1A\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A [SEARCH_TERM] \u0E41\u0E2A\u0E14\u0E07\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C\u0E08\u0E32\u0E01\u0E01\u0E32\u0E23\u0E04\u0E49\u0E19\u0E2B\u0E32 [DIFFERENT_TERM] \u0E41\u0E17\u0E19",search_suggestion:"\u0E44\u0E21\u0E48\u0E1E\u0E1A\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A [SEARCH_TERM] \u0E25\u0E2D\u0E07\u0E04\u0E33\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E40\u0E2B\u0E25\u0E48\u0E32\u0E19\u0E35\u0E49\u0E41\u0E17\u0E19:",searching:"\u0E01\u0E33\u0E25\u0E31\u0E07\u0E04\u0E49\u0E19\u0E2B\u0E32 [SEARCH_TERM]..."},ya={thanks_to:ka,comments:Sa,direction:Ma,strings:Aa};var fn={};A(fn,{comments:()=>Ha,default:()=>Na,direction:()=>wa,strings:()=>Fa,thanks_to:()=>va});var va="Taylan \xD6zg\xFCr Bildik",Ha="",wa="ltr",Fa={placeholder:"Ara\u015Ft\u0131r",clear_search:"Temizle",load_more:"Daha fazla sonu\xE7",search_label:"Site genelinde arama",filters_label:"Filtreler",zero_results:"[SEARCH_TERM] i\xE7in sonu\xE7 yok",many_results:"[SEARCH_TERM] i\xE7in [COUNT] sonu\xE7 bulundu",one_result:"[SEARCH_TERM] i\xE7in [COUNT] sonu\xE7 bulundu",alt_search:"[SEARCH_TERM] i\xE7in sonu\xE7 yok. Bunun yerine [DIFFERENT_TERM] i\xE7in sonu\xE7lar g\xF6steriliyor",search_suggestion:"[SEARCH_TERM] i\xE7in sonu\xE7 yok. Alternatif olarak a\u015Fa\u011F\u0131daki kelimelerden birini deneyebilirsiniz:",searching:"[SEARCH_TERM] ara\u015Ft\u0131r\u0131l\u0131yor..."},Na={thanks_to:va,comments:Ha,direction:wa,strings:Fa};var dn={};A(dn,{comments:()=>Oa,default:()=>Da,direction:()=>ja,strings:()=>Ua,thanks_to:()=>za});var za="Vladyslav Lyshenko ",Oa="",ja="ltr",Ua={placeholder:"\u041F\u043E\u0448\u0443\u043A",clear_search:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u0438 \u043F\u043E\u043B\u0435",load_more:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438 \u0449\u0435",search_label:"\u041F\u043E\u0448\u0443\u043A \u043F\u043E \u0441\u0430\u0439\u0442\u0443",filters_label:"\u0424\u0456\u043B\u044C\u0442\u0440\u0438",zero_results:"\u041D\u0456\u0447\u043E\u0433\u043E \u043D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u043E \u0437\u0430 \u0437\u0430\u043F\u0438\u0442\u043E\u043C: [SEARCH_TERM]",many_results:"[COUNT] \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0456\u0432 \u043D\u0430 \u0437\u0430\u043F\u0438\u0442: [SEARCH_TERM]",one_result:"[COUNT] \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442 \u0437\u0430 \u0437\u0430\u043F\u0438\u0442\u043E\u043C: [SEARCH_TERM]",alt_search:"\u041D\u0456\u0447\u043E\u0433\u043E \u043D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u043E \u043D\u0430 \u0437\u0430\u043F\u0438\u0442: [SEARCH_TERM]. \u041F\u043E\u043A\u0430\u0437\u0430\u043D\u043E \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0438 \u043D\u0430 \u0437\u0430\u043F\u0438\u0442: [DIFFERENT_TERM]",search_suggestion:"\u041D\u0456\u0447\u043E\u0433\u043E \u043D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u043E \u043D\u0430 \u0437\u0430\u043F\u0438\u0442: [SEARCH_TERM]. \u0421\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u043E\u0434\u0438\u043D \u0456\u0437 \u0442\u0430\u043A\u0438\u0445 \u0432\u0430\u0440\u0456\u0430\u043D\u0442\u0456\u0432",searching:"\u041F\u043E\u0448\u0443\u043A \u0437\u0430 \u0437\u0430\u043F\u0438\u0442\u043E\u043C: [SEARCH_TERM]"},Da={thanks_to:za,comments:Oa,direction:ja,strings:Ua};var hn={};A(hn,{comments:()=>Pa,default:()=>Ba,direction:()=>La,strings:()=>qa,thanks_to:()=>Ia});var Ia="Long Nhat Nguyen",Pa="",La="ltr",qa={placeholder:"T\xECm ki\u1EBFm",clear_search:"X\xF3a",load_more:"Nhi\u1EC1u k\u1EBFt qu\u1EA3 h\u01A1n",search_label:"T\xECm ki\u1EBFm trong trang n\xE0y",filters_label:"B\u1ED9 l\u1ECDc",zero_results:"Kh\xF4ng t\xECm th\u1EA5y k\u1EBFt qu\u1EA3 cho [SEARCH_TERM]",many_results:"[COUNT] k\u1EBFt qu\u1EA3 cho [SEARCH_TERM]",one_result:"[COUNT] k\u1EBFt qu\u1EA3 cho [SEARCH_TERM]",alt_search:"Kh\xF4ng t\xECm th\u1EA5y k\u1EBFt qu\u1EA3 cho [SEARCH_TERM]. Ki\u1EC3m th\u1ECB k\u1EBFt qu\u1EA3 thay th\u1EBF v\u1EDBi [DIFFERENT_TERM]",search_suggestion:"Kh\xF4ng t\xECm th\u1EA5y k\u1EBFt qu\u1EA3 cho [SEARCH_TERM]. Th\u1EED m\u1ED9t trong c\xE1c t\xECm ki\u1EBFm:",searching:"\u0110ang t\xECm ki\u1EBFm cho [SEARCH_TERM]..."},Ba={thanks_to:Ia,comments:Pa,direction:La,strings:qa};var mn={};A(mn,{comments:()=>Wa,default:()=>Ja,direction:()=>Ka,strings:()=>Ga,thanks_to:()=>Va});var Va="Amber Song",Wa="",Ka="ltr",Ga={placeholder:"\u641C\u7D22",clear_search:"\u6E05\u9664",load_more:"\u52A0\u8F7D\u66F4\u591A\u7ED3\u679C",search_label:"\u7AD9\u5185\u641C\u7D22",filters_label:"\u7B5B\u9009",zero_results:"\u672A\u627E\u5230 [SEARCH_TERM] \u7684\u76F8\u5173\u7ED3\u679C",many_results:"\u627E\u5230 [COUNT] \u4E2A [SEARCH_TERM] \u7684\u76F8\u5173\u7ED3\u679C",one_result:"\u627E\u5230 [COUNT] \u4E2A [SEARCH_TERM] \u7684\u76F8\u5173\u7ED3\u679C",alt_search:"\u672A\u627E\u5230 [SEARCH_TERM] \u7684\u76F8\u5173\u7ED3\u679C\u3002\u6539\u4E3A\u663E\u793A [DIFFERENT_TERM] \u7684\u76F8\u5173\u7ED3\u679C",search_suggestion:"\u672A\u627E\u5230 [SEARCH_TERM] \u7684\u76F8\u5173\u7ED3\u679C\u3002\u8BF7\u5C1D\u8BD5\u4EE5\u4E0B\u641C\u7D22\u3002",searching:"\u6B63\u5728\u641C\u7D22 [SEARCH_TERM]..."},Ja={thanks_to:Va,comments:Wa,direction:Ka,strings:Ga};var pn={};A(pn,{comments:()=>Za,default:()=>xa,direction:()=>Xa,strings:()=>Qa,thanks_to:()=>Ya});var Ya="Amber Song",Za="",Xa="ltr",Qa={placeholder:"\u641C\u7D22",clear_search:"\u6E05\u9664",load_more:"\u52A0\u8F09\u66F4\u591A\u7D50\u679C",search_label:"\u7AD9\u5167\u641C\u7D22",filters_label:"\u7BE9\u9078",zero_results:"\u672A\u627E\u5230 [SEARCH_TERM] \u7684\u76F8\u95DC\u7D50\u679C",many_results:"\u627E\u5230 [COUNT] \u500B [SEARCH_TERM] \u7684\u76F8\u95DC\u7D50\u679C",one_result:"\u627E\u5230 [COUNT] \u500B [SEARCH_TERM] \u7684\u76F8\u95DC\u7D50\u679C",alt_search:"\u672A\u627E\u5230 [SEARCH_TERM] \u7684\u76F8\u95DC\u7D50\u679C\u3002\u6539\u70BA\u986F\u793A [DIFFERENT_TERM] \u7684\u76F8\u95DC\u7D50\u679C",search_suggestion:"\u672A\u627E\u5230 [SEARCH_TERM] \u7684\u76F8\u95DC\u7D50\u679C\u3002\u8ACB\u5617\u8A66\u4EE5\u4E0B\u641C\u7D22\u3002",searching:"\u6B63\u5728\u641C\u7D22 [SEARCH_TERM]..."},xa={thanks_to:Ya,comments:Za,direction:Xa,strings:Qa};var gn={};A(gn,{comments:()=>eo,default:()=>ro,direction:()=>to,strings:()=>no,thanks_to:()=>$a});var $a="Amber Song",eo="",to="ltr",no={placeholder:"\u641C\u7D22",clear_search:"\u6E05\u9664",load_more:"\u52A0\u8F7D\u66F4\u591A\u7ED3\u679C",search_label:"\u7AD9\u5185\u641C\u7D22",filters_label:"\u7B5B\u9009",zero_results:"\u672A\u627E\u5230 [SEARCH_TERM] \u7684\u76F8\u5173\u7ED3\u679C",many_results:"\u627E\u5230 [COUNT] \u4E2A [SEARCH_TERM] \u7684\u76F8\u5173\u7ED3\u679C",one_result:"\u627E\u5230 [COUNT] \u4E2A [SEARCH_TERM] \u7684\u76F8\u5173\u7ED3\u679C",alt_search:"\u672A\u627E\u5230 [SEARCH_TERM] \u7684\u76F8\u5173\u7ED3\u679C\u3002\u6539\u4E3A\u663E\u793A [DIFFERENT_TERM] \u7684\u76F8\u5173\u7ED3\u679C",search_suggestion:"\u672A\u627E\u5230 [SEARCH_TERM] \u7684\u76F8\u5173\u7ED3\u679C\u3002\u8BF7\u5C1D\u8BD5\u4EE5\u4E0B\u641C\u7D22\u3002",searching:"\u6B63\u5728\u641C\u7D22 [SEARCH_TERM]..."},ro={thanks_to:$a,comments:eo,direction:to,strings:no};var so=[vt,Ht,wt,Ft,Nt,zt,Ot,jt,Ut,Dt,It,Pt,Lt,qt,Bt,Vt,Wt,Kt,Gt,Jt,Yt,Zt,Xt,Qt,xt,$t,en,tn,nn,rn,sn,ln,an,on,un,cn,_n,fn,dn,hn,mn,pn,gn],dr=so,hr=["../../translations/af.json","../../translations/ar.json","../../translations/bn.json","../../translations/ca.json","../../translations/cs.json","../../translations/da.json","../../translations/de.json","../../translations/en.json","../../translations/es.json","../../translations/eu.json","../../translations/fa.json","../../translations/fi.json","../../translations/fr.json","../../translations/gl.json","../../translations/he.json","../../translations/hi.json","../../translations/hr.json","../../translations/hu.json","../../translations/id.json","../../translations/it.json","../../translations/ja.json","../../translations/ko.json","../../translations/mi.json","../../translations/my.json","../../translations/nb.json","../../translations/nl.json","../../translations/nn.json","../../translations/no.json","../../translations/pl.json","../../translations/pt.json","../../translations/ro.json","../../translations/ru.json","../../translations/sr.json","../../translations/sv.json","../../translations/sw.json","../../translations/ta.json","../../translations/th.json","../../translations/tr.json","../../translations/uk.json","../../translations/vi.json","../../translations/zh-cn.json","../../translations/zh-tw.json","../../translations/zh.json"];function mr(n,e,t){let r=n.slice();return r[51]=e[t],r}function pr(n){let e,t,r;function s(i){n[37](i)}let l={show_empty_filters:n[5],open_filters:n[6],available_filters:n[18],translate:n[20],automatic_translations:n[19],translations:n[7]};return n[0]!==void 0&&(l.selected_filters=n[0]),e=new fr({props:l}),le.push(()=>Un(e,"selected_filters",s)),{c(){ut(e.$$.fragment)},m(i,a){me(e,i,a),r=!0},p(i,a){let o={};a[0]&32&&(o.show_empty_filters=i[5]),a[0]&64&&(o.open_filters=i[6]),a[0]&262144&&(o.available_filters=i[18]),a[0]&524288&&(o.automatic_translations=i[19]),a[0]&128&&(o.translations=i[7]),!t&&a[0]&1&&(t=!0,o.selected_filters=i[0],Nn(()=>t=!1)),e.$set(o)},i(i){r||(D(e.$$.fragment,i),r=!0)},o(i){P(e.$$.fragment,i),r=!1},d(i){ue(e,i)}}}function gr(n){let e,t,r,s,l=[ao,io],i=[];function a(o,f){return o[14]?0:1}return t=a(n,[-1,-1]),r=i[t]=l[t](n),{c(){e=C("div"),r.c(),m(e,"class","pagefind-ui__results-area svelte-e9gkc3")},m(o,f){S(o,e,f),i[t].m(e,null),s=!0},p(o,f){let c=t;t=a(o,f),t===c?i[t].p(o,f):(ae(),P(i[c],1,1,()=>{i[c]=null}),oe(),r=i[t],r?r.p(o,f):(r=i[t]=l[t](o),r.c()),D(r,1),r.m(e,null))},i(o){s||(D(r),s=!0)},o(o){P(r),s=!1},d(o){o&&k(e),i[t].d()}}}function io(n){let e,t,r,s=[],l=new Map,i,a,o;function f(_,E){return _[13].results.length===0?co:_[13].results.length===1?uo:oo}let c=f(n,[-1,-1]),d=c(n),p=n[13].results.slice(0,n[17]),h=_=>_[51].id;for(let _=0;_n[17]&&Rr(n);return{c(){e=C("p"),d.c(),t=v(),r=C("ol");for(let _=0;__[17]?u?u.p(_,E):(u=Rr(_),u.c(),u.m(a.parentNode,a)):u&&(u.d(1),u=null)},i(_){if(!o){for(let E=0;E{o[p]=null}),oe(),s=o[r],s?s.p(e,d):(s=o[r]=a[r](e),s.c()),D(s,1),s.m(l.parentNode,l))},i(c){i||(D(s),i=!0)},o(c){P(s),i=!1},d(c){c&&k(t),o[r].d(c),c&&k(l)}}}function Rr(n){let e,t=n[20]("load_more",n[19],n[7])+"",r,s,l;return{c(){e=C("button"),r=w(t),m(e,"type","button"),m(e,"class","pagefind-ui__button svelte-e9gkc3")},m(i,a){S(i,e,a),R(e,r),s||(l=J(e,"click",n[22]),s=!0)},p(i,a){a[0]&524416&&t!==(t=i[20]("load_more",i[19],i[7])+"")&&z(r,t)},d(i){i&&k(e),s=!1,l()}}}function br(n){let e,t=n[20]("searching",n[19],n[7]).replace(/\[SEARCH_TERM\]/,n[16])+"",r;return{c(){e=C("p"),r=w(t),m(e,"class","pagefind-ui__message svelte-e9gkc3")},m(s,l){S(s,e,l),R(e,r)},p(s,l){l[0]&589952&&t!==(t=s[20]("searching",s[19],s[7]).replace(/\[SEARCH_TERM\]/,s[16])+"")&&z(r,t)},d(s){s&&k(e)}}}function ho(n){let e,t,r,s,l,i,a,o=n[20]("clear_search",n[19],n[7])+"",f,c,d,p,h,u,_,E,b=n[12]&&pr(n),T=n[15]&&gr(n);return{c(){e=C("div"),t=C("form"),r=C("input"),i=v(),a=C("button"),f=w(o),c=v(),d=C("div"),b&&b.c(),p=v(),T&&T.c(),m(r,"class","pagefind-ui__search-input svelte-e9gkc3"),m(r,"type","text"),m(r,"placeholder",s=n[20]("placeholder",n[19],n[7])),m(r,"title",l=n[20]("placeholder",n[19],n[7])),m(r,"autocapitalize","none"),m(r,"enterkeyhint","search"),r.autofocus=n[8],m(a,"class","pagefind-ui__search-clear svelte-e9gkc3"),B(a,"pagefind-ui__suppressed",!n[9]),m(d,"class","pagefind-ui__drawer svelte-e9gkc3"),B(d,"pagefind-ui__hidden",!n[15]),m(t,"class","pagefind-ui__form svelte-e9gkc3"),m(t,"role","search"),m(t,"aria-label",h=n[20]("search_label",n[19],n[7])),m(t,"action","javascript:void(0);"),m(e,"class","pagefind-ui svelte-e9gkc3"),B(e,"pagefind-ui--reset",n[1])},m(M,y){S(M,e,y),R(e,t),R(t,r),Tt(r,n[9]),n[34](r),R(t,i),R(t,a),R(a,f),n[35](a),R(t,c),R(t,d),b&&b.m(d,null),R(d,p),T&&T.m(d,null),u=!0,n[8]&&r.focus(),_||(E=[J(r,"focus",n[21]),J(r,"keydown",n[32]),J(r,"input",n[33]),J(a,"click",n[36]),J(t,"submit",mo)],_=!0)},p(M,y){(!u||y[0]&524416&&s!==(s=M[20]("placeholder",M[19],M[7])))&&m(r,"placeholder",s),(!u||y[0]&524416&&l!==(l=M[20]("placeholder",M[19],M[7])))&&m(r,"title",l),(!u||y[0]&256)&&(r.autofocus=M[8]),y[0]&512&&r.value!==M[9]&&Tt(r,M[9]),(!u||y[0]&524416)&&o!==(o=M[20]("clear_search",M[19],M[7])+"")&&z(f,o),(!u||y[0]&512)&&B(a,"pagefind-ui__suppressed",!M[9]),M[12]?b?(b.p(M,y),y[0]&4096&&D(b,1)):(b=pr(M),b.c(),D(b,1),b.m(d,p)):b&&(ae(),P(b,1,1,()=>{b=null}),oe()),M[15]?T?(T.p(M,y),y[0]&32768&&D(T,1)):(T=gr(M),T.c(),D(T,1),T.m(d,null)):T&&(ae(),P(T,1,1,()=>{T=null}),oe()),(!u||y[0]&32768)&&B(d,"pagefind-ui__hidden",!M[15]),(!u||y[0]&524416&&h!==(h=M[20]("search_label",M[19],M[7])))&&m(t,"aria-label",h),(!u||y[0]&2)&&B(e,"pagefind-ui--reset",M[1])},i(M){u||(D(b),D(T),u=!0)},o(M){P(b),P(T),u=!1},d(M){M&&k(e),n[34](null),n[35](null),b&&b.d(),T&&T.d(),_=!1,K(E)}}}var mo=n=>n.preventDefault();function po(n,e,t){let r={},s=hr.map(g=>g.match(/([^\/]+)\.json$/)[1]);for(let g=0;gj[g]??N[g]??"";Ct(()=>{let g=document?.querySelector?.("html")?.getAttribute?.("lang")||"en",N=ct(g.toLocaleLowerCase());t(19,Sn=r[`${N.language}-${N.script}-${N.region}`]||r[`${N.language}-${N.region}`]||r[`${N.language}`]||r.en)}),kt(()=>{F?.destroy?.(),F=null});let Mn=async()=>{if(!ft&&(t(12,ft=!0),!F)){let g;try{g=await import(`${l}pagefind.js`)}catch(j){console.error(j),console.error([`Pagefind couldn't be loaded from ${this.options.bundlePath}pagefind.js`,"You can configure this by passing a bundlePath option to PagefindUI"].join(` +`)),document?.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"?console.error(`[DEBUG: Loaded from ${document.currentScript.src??"bad script location"}]`):console.error("no known script location")}c||t(24,c=f?12:30);let N={...E||{},excerptLength:c};await g.options(N);for(let j of b){if(!j.bundlePath)throw new Error("mergeIndex requires a bundlePath parameter");let L=j.bundlePath;delete j.bundlePath,await g.mergeIndex(L,j)}F=g,Sr()}},Sr=async()=>{F&&(kn=await F.filters(),(!ce||!Object.keys(ce).length)&&t(18,ce=kn))},Mr=g=>{let N={};return Object.entries(g).filter(([,j])=>j).forEach(([j])=>{let[L,te]=j.split(/:(.*)$/);N[L]=N[L]||[],N[L].push(te)}),N},_e,Ar=async(g,N)=>{if(!g){t(15,ht=!1),_e&&clearTimeout(_e);return}let j=Mr(N),L=()=>yr(g,j);_>0&&g?(_e&&clearTimeout(_e),_e=setTimeout(L,_),await An(),F.preload(g,{filters:j})):L(),vr()},An=async()=>{for(;!F;)Mn(),await new Promise(g=>setTimeout(g,50))},yr=async(g,N)=>{t(16,Cn=g||""),typeof p=="function"&&(g=p(g)),t(14,dt=!0),t(15,ht=!0),await An();let j=++Tn,L={filters:N};X&&typeof X=="object"&&(L.sort=X);let te=await F.search(g,L);Tn===j&&(te.filters&&Object.keys(te.filters)?.length&&t(18,ce=te.filters),t(13,bn=te),t(14,dt=!1),t(17,mt=i))},vr=()=>{let g=W.offsetWidth;g!=Cr&&t(10,O.style.paddingRight=`${g+2}px`,O)},Hr=g=>{g?.preventDefault(),t(17,mt+=i)},wr=g=>{g.key==="Escape"&&(t(9,H=""),O.blur()),g.key==="Enter"&&g.preventDefault()};function Fr(){H=this.value,t(9,H),t(23,T)}function Nr(g){le[g?"unshift":"push"](()=>{O=g,t(10,O)})}function zr(g){le[g?"unshift":"push"](()=>{W=g,t(11,W)})}let Or=()=>{t(9,H=""),O.blur()};function jr(g){V=g,t(0,V)}return n.$$set=g=>{"base_path"in g&&t(25,l=g.base_path),"page_size"in g&&t(26,i=g.page_size),"reset_styles"in g&&t(1,a=g.reset_styles),"show_images"in g&&t(2,o=g.show_images),"show_sub_results"in g&&t(3,f=g.show_sub_results),"excerpt_length"in g&&t(24,c=g.excerpt_length),"process_result"in g&&t(4,d=g.process_result),"process_term"in g&&t(27,p=g.process_term),"show_empty_filters"in g&&t(5,h=g.show_empty_filters),"open_filters"in g&&t(6,u=g.open_filters),"debounce_timeout_ms"in g&&t(28,_=g.debounce_timeout_ms),"pagefind_options"in g&&t(29,E=g.pagefind_options),"merge_index"in g&&t(30,b=g.merge_index),"trigger_search_term"in g&&t(23,T=g.trigger_search_term),"translations"in g&&t(7,M=g.translations),"autofocus"in g&&t(8,y=g.autofocus),"sort"in g&&t(31,X=g.sort),"selected_filters"in g&&t(0,V=g.selected_filters)},n.$$.update=()=>{if(n.$$.dirty[0]&8388608)e:T&&(t(9,H=T),t(23,T=""));if(n.$$.dirty[0]&513)e:Ar(H,V)},[V,a,o,f,d,h,u,M,y,H,O,W,ft,bn,dt,ht,Cn,mt,ce,Sn,kr,Mn,Hr,T,c,l,i,p,_,E,b,X,wr,Fr,Nr,zr,Or,jr]}var En=class extends q{constructor(e){super(),Y(this,e,po,ho,G,{base_path:25,page_size:26,reset_styles:1,show_images:2,show_sub_results:3,excerpt_length:24,process_result:4,process_term:27,show_empty_filters:5,open_filters:6,debounce_timeout_ms:28,pagefind_options:29,merge_index:30,trigger_search_term:23,translations:7,autofocus:8,sort:31,selected_filters:0},null,[-1,-1])}},Tr=En;var Rn;try{document?.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"&&(Rn=new URL(document.currentScript.src).pathname.match(/^(.*\/)(?:pagefind-)?ui.js.*$/)[1])}catch{Rn="/pagefind/"}var _t=class{constructor(e){this._pfs=null;let t=e.element??"[data-pagefind-ui]",r=e.bundlePath??Rn,s=e.pageSize??5,l=e.resetStyles??!0,i=e.showImages??!0,a=e.showSubResults??!1,o=e.excerptLength??0,f=e.processResult??null,c=e.processTerm??null,d=e.showEmptyFilters??!0,p=e.openFilters??[],h=e.debounceTimeoutMs??300,u=e.mergeIndex??[],_=e.translations??[],E=e.autofocus??!1,b=e.sort??null;delete e.element,delete e.bundlePath,delete e.pageSize,delete e.resetStyles,delete e.showImages,delete e.showSubResults,delete e.excerptLength,delete e.processResult,delete e.processTerm,delete e.showEmptyFilters,delete e.openFilters,delete e.debounceTimeoutMs,delete e.mergeIndex,delete e.translations,delete e.autofocus,delete e.sort;let T=t instanceof HTMLElement?t:document.querySelector(t);T?this._pfs=new Tr({target:T,props:{base_path:r,page_size:s,reset_styles:l,show_images:i,show_sub_results:a,excerpt_length:o,process_result:f,process_term:c,show_empty_filters:d,open_filters:p,debounce_timeout_ms:h,merge_index:u,translations:_,autofocus:E,sort:b,pagefind_options:e}}):console.error(`Pagefind UI couldn't find the selector ${t}`)}triggerSearch(e){this._pfs.$$set({trigger_search_term:e})}triggerFilters(e){let t={};for(let[r,s]of Object.entries(e))if(Array.isArray(s))for(let l of s)t[`${r}:${l}`]=!0;else t[`${r}:${s}`]=!0;this._pfs.$$set({selected_filters:t})}destroy(){this._pfs.$destroy()}};window.PagefindUI=_t;})(); diff --git a/pagefind/pagefind.js b/pagefind/pagefind.js new file mode 100644 index 0000000..54e2f7c --- /dev/null +++ b/pagefind/pagefind.js @@ -0,0 +1,6 @@ +const pagefind_version="1.4.0";let wasm_bindgen;(function(){const __exports={};let script_src;if(typeof document!=='undefined'&&document.currentScript!==null){script_src=new URL("UNHANDLED",location.href).toString()}let wasm=undefined;let WASM_VECTOR_LEN=0;let cachedUint8Memory0=null;function getUint8Memory0(){if(cachedUint8Memory0===null||cachedUint8Memory0.byteLength===0){cachedUint8Memory0=new Uint8Array(wasm.memory.buffer)}return cachedUint8Memory0}const cachedTextEncoder=(typeof TextEncoder!=='undefined'?new TextEncoder('utf-8'):{encode:()=>{throw Error('TextEncoder not available')}});const encodeString=(typeof cachedTextEncoder.encodeInto==='function'?function(arg,view){return cachedTextEncoder.encodeInto(arg,view)}:function(arg,view){const buf=cachedTextEncoder.encode(arg);view.set(buf);return{read:arg.length,written:buf.length}});function passStringToWasm0(arg,malloc,realloc){if(realloc===undefined){const buf=cachedTextEncoder.encode(arg);const ptr=malloc(buf.length,1)>>>0;getUint8Memory0().subarray(ptr,ptr+buf.length).set(buf);WASM_VECTOR_LEN=buf.length;return ptr}let len=arg.length;let ptr=malloc(len,1)>>>0;const mem=getUint8Memory0();let offset=0;for(;offset0x7F)break;mem[ptr+offset]=code}if(offset!==len){if(offset!==0){arg=arg.slice(offset)}ptr=realloc(ptr,len,len=offset+arg.length*3,1)>>>0;const view=getUint8Memory0().subarray(ptr+offset,ptr+len);const ret=encodeString(arg,view);offset+=ret.written;ptr=realloc(ptr,len,offset,1)>>>0}WASM_VECTOR_LEN=offset;return ptr}let cachedInt32Memory0=null;function getInt32Memory0(){if(cachedInt32Memory0===null||cachedInt32Memory0.byteLength===0){cachedInt32Memory0=new Int32Array(wasm.memory.buffer)}return cachedInt32Memory0}const cachedTextDecoder=(typeof TextDecoder!=='undefined'?new TextDecoder('utf-8',{ignoreBOM:true,fatal:true}):{decode:()=>{throw Error('TextDecoder not available')}});if(typeof TextDecoder!=='undefined'){cachedTextDecoder.decode()};function getStringFromWasm0(ptr,len){ptr=ptr>>>0;return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr,ptr+len))}__exports.request_indexes=function(ptr,query){let deferred2_0;let deferred2_1;try{const retptr=wasm.__wbindgen_add_to_stack_pointer(-16);const ptr0=passStringToWasm0(query,wasm.__wbindgen_malloc,wasm.__wbindgen_realloc);const len0=WASM_VECTOR_LEN;wasm.request_indexes(retptr,ptr,ptr0,len0);var r0=getInt32Memory0()[retptr/4+0];var r1=getInt32Memory0()[retptr/4+1];deferred2_0=r0;deferred2_1=r1;return getStringFromWasm0(r0,r1)}finally{wasm.__wbindgen_add_to_stack_pointer(16);wasm.__wbindgen_free(deferred2_0,deferred2_1,1)}};__exports.filters=function(ptr){let deferred1_0;let deferred1_1;try{const retptr=wasm.__wbindgen_add_to_stack_pointer(-16);wasm.filters(retptr,ptr);var r0=getInt32Memory0()[retptr/4+0];var r1=getInt32Memory0()[retptr/4+1];deferred1_0=r0;deferred1_1=r1;return getStringFromWasm0(r0,r1)}finally{wasm.__wbindgen_add_to_stack_pointer(16);wasm.__wbindgen_free(deferred1_0,deferred1_1,1)}};__exports.request_filter_indexes=function(ptr,filters){let deferred2_0;let deferred2_1;try{const retptr=wasm.__wbindgen_add_to_stack_pointer(-16);const ptr0=passStringToWasm0(filters,wasm.__wbindgen_malloc,wasm.__wbindgen_realloc);const len0=WASM_VECTOR_LEN;wasm.request_filter_indexes(retptr,ptr,ptr0,len0);var r0=getInt32Memory0()[retptr/4+0];var r1=getInt32Memory0()[retptr/4+1];deferred2_0=r0;deferred2_1=r1;return getStringFromWasm0(r0,r1)}finally{wasm.__wbindgen_add_to_stack_pointer(16);wasm.__wbindgen_free(deferred2_0,deferred2_1,1)}};__exports.enter_playground_mode=function(ptr){const ret=wasm.enter_playground_mode(ptr);return ret>>>0};__exports.request_all_filter_indexes=function(ptr){let deferred1_0;let deferred1_1;try{const retptr=wasm.__wbindgen_add_to_stack_pointer(-16);wasm.request_all_filter_indexes(retptr,ptr);var r0=getInt32Memory0()[retptr/4+0];var r1=getInt32Memory0()[retptr/4+1];deferred1_0=r0;deferred1_1=r1;return getStringFromWasm0(r0,r1)}finally{wasm.__wbindgen_add_to_stack_pointer(16);wasm.__wbindgen_free(deferred1_0,deferred1_1,1)}};function passArray8ToWasm0(arg,malloc){const ptr=malloc(arg.length*1,1)>>>0;getUint8Memory0().set(arg,ptr/1);WASM_VECTOR_LEN=arg.length;return ptr}__exports.init_pagefind=function(metadata_bytes){const ptr0=passArray8ToWasm0(metadata_bytes,wasm.__wbindgen_malloc);const len0=WASM_VECTOR_LEN;const ret=wasm.init_pagefind(ptr0,len0);return ret>>>0};__exports.search=function(ptr,query,filter,sort,exact){let deferred4_0;let deferred4_1;try{const retptr=wasm.__wbindgen_add_to_stack_pointer(-16);const ptr0=passStringToWasm0(query,wasm.__wbindgen_malloc,wasm.__wbindgen_realloc);const len0=WASM_VECTOR_LEN;const ptr1=passStringToWasm0(filter,wasm.__wbindgen_malloc,wasm.__wbindgen_realloc);const len1=WASM_VECTOR_LEN;const ptr2=passStringToWasm0(sort,wasm.__wbindgen_malloc,wasm.__wbindgen_realloc);const len2=WASM_VECTOR_LEN;wasm.search(retptr,ptr,ptr0,len0,ptr1,len1,ptr2,len2,exact);var r0=getInt32Memory0()[retptr/4+0];var r1=getInt32Memory0()[retptr/4+1];deferred4_0=r0;deferred4_1=r1;return getStringFromWasm0(r0,r1)}finally{wasm.__wbindgen_add_to_stack_pointer(16);wasm.__wbindgen_free(deferred4_0,deferred4_1,1)}};__exports.load_index_chunk=function(ptr,chunk_bytes){const ptr0=passArray8ToWasm0(chunk_bytes,wasm.__wbindgen_malloc);const len0=WASM_VECTOR_LEN;const ret=wasm.load_index_chunk(ptr,ptr0,len0);return ret>>>0};__exports.add_synthetic_filter=function(ptr,filter){const ptr0=passStringToWasm0(filter,wasm.__wbindgen_malloc,wasm.__wbindgen_realloc);const len0=WASM_VECTOR_LEN;const ret=wasm.add_synthetic_filter(ptr,ptr0,len0);return ret>>>0};__exports.set_ranking_weights=function(ptr,weights){const ptr0=passStringToWasm0(weights,wasm.__wbindgen_malloc,wasm.__wbindgen_realloc);const len0=WASM_VECTOR_LEN;const ret=wasm.set_ranking_weights(ptr,ptr0,len0);return ret>>>0};__exports.load_filter_chunk=function(ptr,chunk_bytes){const ptr0=passArray8ToWasm0(chunk_bytes,wasm.__wbindgen_malloc);const len0=WASM_VECTOR_LEN;const ret=wasm.load_filter_chunk(ptr,ptr0,len0);return ret>>>0};async function __wbg_load(module,imports){if(typeof Response==='function'&&module instanceof Response){if(typeof WebAssembly.instantiateStreaming==='function'){try{return await WebAssembly.instantiateStreaming(module,imports)}catch(e){if(module.headers.get('Content-Type')!='application/wasm'){console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",e)}else{throw e}}}const bytes=await module.arrayBuffer();return await WebAssembly.instantiate(bytes,imports)}else{const instance=await WebAssembly.instantiate(module,imports);if(instance instanceof WebAssembly.Instance){return{instance,module}}else{return instance}}}function __wbg_get_imports(){const imports={};imports.wbg={};return imports}function __wbg_init_memory(imports,maybe_memory){}function __wbg_finalize_init(instance,module){wasm=instance.exports;__wbg_init.__wbindgen_wasm_module=module;cachedInt32Memory0=null;cachedUint8Memory0=null;return wasm}function initSync(module){if(wasm!==undefined)return wasm;const imports=__wbg_get_imports();__wbg_init_memory(imports);if(!(module instanceof WebAssembly.Module)){module=new WebAssembly.Module(module)}const instance=new WebAssembly.Instance(module,imports);return __wbg_finalize_init(instance,module)}async function __wbg_init(input){if(wasm!==undefined)return wasm;if(typeof input==='undefined'&&typeof script_src!=='undefined'){input=script_src.replace(/\.js$/,'_bg.wasm')}const imports=__wbg_get_imports();if(typeof input==='string'||(typeof Request==='function'&&input instanceof Request)||(typeof URL==='function'&&input instanceof URL)){input=fetch(input)}__wbg_init_memory(imports);const{instance,module}=await __wbg_load(await input,imports);return __wbg_finalize_init(instance,module)}wasm_bindgen=Object.assign(__wbg_init,{initSync},__exports)})();var u8=Uint8Array;var u16=Uint16Array;var u32=Uint32Array;var fleb=new u8([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]);var fdeb=new u8([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]);var clim=new u8([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);var freb=function(eb,start){var b=new u16(31);for(var i2=0;i2<31;++i2){b[i2]=start+=1<>>1|(i&21845)<<1;x=(x&52428)>>>2|(x&13107)<<2;x=(x&61680)>>>4|(x&3855)<<4;rev[i]=((x&65280)>>>8|(x&255)<<8)>>>1}var x;var i;var hMap=function(cd,mb,r){var s=cd.length;var i2=0;var l=new u16(mb);for(;i2>>rvb]=sv}}}}else{co=new u16(s);for(i2=0;i2>>15-cd[i2]}}}return co};var flt=new u8(288);for(i=0;i<144;++i)flt[i]=8;var i;for(i=144;i<256;++i)flt[i]=9;var i;for(i=256;i<280;++i)flt[i]=7;var i;for(i=280;i<288;++i)flt[i]=8;var i;var fdt=new u8(32);for(i=0;i<32;++i)fdt[i]=5;var i;var flrm=hMap(flt,9,1);var fdrm=hMap(fdt,5,1);var max=function(a){var m=a[0];for(var i2=1;i2m)m=a[i2]}return m};var bits=function(d,p,m){var o=p/8|0;return(d[o]|d[o+1]<<8)>>(p&7)&m};var bits16=function(d,p){var o=p/8|0;return(d[o]|d[o+1]<<8|d[o+2]<<16)>>(p&7)};var shft=function(p){return(p+7)/8|0};var slc=function(v,s,e){if(s==null||s<0)s=0;if(e==null||e>v.length)e=v.length;var n=new(v.BYTES_PER_ELEMENT==2?u16:v.BYTES_PER_ELEMENT==4?u32:u8)(e-s);n.set(v.subarray(s,e));return n};var ec=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"];var err=function(ind,msg,nt){var e=new Error(msg||ec[ind]);e.code=ind;if(Error.captureStackTrace)Error.captureStackTrace(e,err);if(!nt)throw e;return e};var inflt=function(dat,buf,st){var sl=dat.length;if(!sl||st&&st.f&&!st.l)return buf||new u8(0);var noBuf=!buf||st;var noSt=!st||st.i;if(!st)st={};if(!buf)buf=new u8(sl*3);var cbuf=function(l2){var bl=buf.length;if(l2>bl){var nbuf=new u8(Math.max(bl*2,l2));nbuf.set(buf);buf=nbuf}};var final=st.f||0,pos=st.p||0,bt=st.b||0,lm=st.l,dm=st.d,lbt=st.m,dbt=st.n;var tbts=sl*8;do{if(!lm){final=bits(dat,pos,1);var type=bits(dat,pos+1,3);pos+=3;if(!type){var s=shft(pos)+4,l=dat[s-4]|dat[s-3]<<8,t=s+l;if(t>sl){if(noSt)err(0);break}if(noBuf)cbuf(bt+l);buf.set(dat.subarray(s,t),bt);st.b=bt+=l,st.p=pos=t*8,st.f=final;continue}else if(type==1)lm=flrm,dm=fdrm,lbt=9,dbt=5;else if(type==2){var hLit=bits(dat,pos,31)+257,hcLen=bits(dat,pos+10,15)+4;var tl=hLit+bits(dat,pos+5,31)+1;pos+=14;var ldt=new u8(tl);var clt=new u8(19);for(var i2=0;i2>>4;if(s<16){ldt[i2++]=s}else{var c=0,n=0;if(s==16)n=3+bits(dat,pos,3),pos+=2,c=ldt[i2-1];else if(s==17)n=3+bits(dat,pos,7),pos+=3;else if(s==18)n=11+bits(dat,pos,127),pos+=7;while(n--)ldt[i2++]=c}}var lt=ldt.subarray(0,hLit),dt=ldt.subarray(hLit);lbt=max(lt);dbt=max(dt);lm=hMap(lt,lbt,1);dm=hMap(dt,dbt,1)}else err(1);if(pos>tbts){if(noSt)err(0);break}}if(noBuf)cbuf(bt+131072);var lms=(1<>>4;pos+=c&15;if(pos>tbts){if(noSt)err(0);break}if(!c)err(2);if(sym<256)buf[bt++]=sym;else if(sym==256){lpos=pos,lm=null;break}else{var add=sym-254;if(sym>264){var i2=sym-257,b=fleb[i2];add=bits(dat,pos,(1<>>4;if(!d)err(3);pos+=d&15;var dt=fd[dsym];if(dsym>3){var b=fdeb[dsym];dt+=bits16(dat,pos)&(1<tbts){if(noSt)err(0);break}if(noBuf)cbuf(bt+131072);var end=bt+add;for(;bt>3&1)+(flg>>4&1);zs>0;zs-=!d[st++]);return st+(flg&2)};var gzl=function(d){var l=d.length;return(d[l-4]|d[l-3]<<8|d[l-2]<<16|d[l-1]<<24)>>>0};function gunzipSync(data,out){return inflt(data.subarray(gzs(data),-8),out||new u8(gzl(data)))}var td=typeof TextDecoder!="undefined"&&new TextDecoder();var tds=0;try{td.decode(et,{stream:true});tds=1}catch(e){}var gz_default=gunzipSync;var calculate_excerpt_region=(word_positions,excerpt_length)=>{if(word_positions.length===0){return 0}let words=[];for(const word of word_positions){words[word.location]=words[word.location]||0;words[word.location]+=word.balanced_score}if(words.length<=excerpt_length){return 0}let densest=words.slice(0,excerpt_length).reduce((partialSum,a)=>partialSum+a,0);let working_sum=densest;let densest_at=[0];for(let i2=0;i2densest){densest=working_sum;densest_at=[i2]}else if(working_sum===densest&&densest_at[densest_at.length-1]===i2-1){densest_at.push(i2)}}let midpoint=densest_at[Math.floor(densest_at.length/2)];return midpoint};var build_excerpt=(content,start,length,locations,not_before,not_from)=>{let is_zws_delimited=content.includes("\u200B");let fragment_words=[];if(is_zws_delimited){fragment_words=content.split("\u200B")}else{fragment_words=content.split(/[\r\n\s]+/g)}for(let word of locations){if(fragment_words[word]?.startsWith(``)){continue}fragment_words[word]=`${fragment_words[word]}`}let endcap=not_from??fragment_words.length;let startcap=not_before??0;if(endcap-startcapendcap){start=endcap-length}if(start{const anchors=fragment.anchors.filter((a)=>/h\d/i.test(a.element)&&a.text?.length&&/\S/.test(a.text)).sort((a,b)=>a.location-b.location);const results=[];let current_anchor_position=0;let current_anchor={title:fragment.meta["title"],url:fragment.url,weighted_locations:[],locations:[],excerpt:""};const add_result=(end_range)=>{if(current_anchor.locations.length){const relative_weighted_locations=current_anchor.weighted_locations.map((l)=>{return{weight:l.weight,balanced_score:l.balanced_score,location:l.location-current_anchor_position}});const excerpt_start=calculate_excerpt_region(relative_weighted_locations,desired_excerpt_length)+current_anchor_position;const excerpt_length=end_range?Math.min(end_range-excerpt_start,desired_excerpt_length):desired_excerpt_length;current_anchor.excerpt=build_excerpt(fragment.raw_content??"",excerpt_start,excerpt_length,current_anchor.locations,current_anchor_position,end_range);results.push(current_anchor)}};for(let word of fragment.weighted_locations){if(!anchors.length||word.location=anchors[0].location){next_anchor=anchors.shift()}let anchored_url=fragment.url;try{const url_is_fq=/^((https?:)?\/\/)/.test(anchored_url);if(url_is_fq){let fq_url=new URL(anchored_url);fq_url.hash=next_anchor.id;anchored_url=fq_url.toString()}else{if(!/^\//.test(anchored_url)){anchored_url=`/${anchored_url}`}let fq_url=new URL(`https://example.com${anchored_url}`);fq_url.hash=next_anchor.id;anchored_url=fq_url.toString().replace(/^https:\/\/example.com/,"")}}catch(e){console.error(`Pagefind: Couldn't process ${anchored_url} for a search result`)}current_anchor_position=next_anchor.location;current_anchor={title:next_anchor.text,url:anchored_url,anchor:next_anchor,weighted_locations:[word],locations:[word.location],excerpt:""}}}add_result(anchors[0]?.location);return results};var asyncSleep=async(ms=100)=>{return new Promise((r)=>setTimeout(r,ms))};var isBrowser=typeof window!=="undefined"&&typeof document!=="undefined";var PagefindInstance=class{constructor(opts={}){this.version=pagefind_version;this.backend=wasm_bindgen;this.decoder=new TextDecoder("utf-8");this.wasm=null;this.basePath=opts.basePath||"/pagefind/";this.primary=opts.primary||false;if(this.primary&&!opts.basePath){this.initPrimary()}if(/[^\/]$/.test(this.basePath)){this.basePath=`${this.basePath}/`}if(isBrowser&&window?.location?.origin&&this.basePath.startsWith(window.location.origin)){this.basePath=this.basePath.replace(window.location.origin,"")}this.baseUrl=opts.baseUrl||this.defaultBaseUrl();if(!/^(\/|https?:\/\/)/.test(this.baseUrl)){this.baseUrl=`/${this.baseUrl}`}this.indexWeight=opts.indexWeight??1;this.excerptLength=opts.excerptLength??30;this.mergeFilter=opts.mergeFilter??{};this.ranking=opts.ranking;this.highlightParam=opts.highlightParam??null;this.loaded_chunks={};this.loaded_filters={};this.loaded_fragments={};this.raw_ptr=null;this.searchMeta=null;this.languages=null}initPrimary(){if(isBrowser&&typeof import.meta.url!=="undefined"){let derivedBasePath=import.meta.url.match(/^(.*\/)pagefind.js.*$/)?.[1];if(derivedBasePath){this.basePath=derivedBasePath}else{console.warn(["Pagefind couldn't determine the base of the bundle from the import path. Falling back to the default.","Set a basePath option when initialising Pagefind to ignore this message."].join("\n"))}}}defaultBaseUrl(){let default_base=this.basePath.match(/^(.*\/)_?pagefind/)?.[1];return default_base||"/"}async options(options2){const opts=["basePath","baseUrl","indexWeight","excerptLength","mergeFilter","highlightParam","ranking"];for(const[k,v]of Object.entries(options2)){if(k==="mergeFilter"){let filters2=this.stringifyFilters(v);let ptr=await this.getPtr();this.raw_ptr=this.backend.add_synthetic_filter(ptr,filters2)}else if(k==="ranking"){await this.set_ranking(options2.ranking)}else if(opts.includes(k)){if(k==="basePath"&&typeof v==="string")this.basePath=v;if(k==="baseUrl"&&typeof v==="string")this.baseUrl=v;if(k==="indexWeight"&&typeof v==="number")this.indexWeight=v;if(k==="excerptLength"&&typeof v==="number")this.excerptLength=v;if(k==="mergeFilter"&&typeof v==="object")this.mergeFilter=v;if(k==="highlightParam"&&typeof v==="string")this.highlightParam=v}else{console.warn(`Unknown Pagefind option ${k}. Allowed options: [${opts.join(", ")}]`)}}}async enterPlaygroundMode(){let ptr=await this.getPtr();this.raw_ptr=this.backend.enter_playground_mode(ptr)}decompress(data,file="unknown file"){if(this.decoder.decode(data.slice(0,12))==="pagefind_dcd"){return data.slice(12)}data=gz_default(data);if(this.decoder.decode(data.slice(0,12))!=="pagefind_dcd"){console.error(`Decompressing ${file} appears to have failed: Missing signature`);return data}return data.slice(12)}async set_ranking(ranking){if(!ranking)return;let rankingWeights={term_similarity:ranking.termSimilarity??null,page_length:ranking.pageLength??null,term_saturation:ranking.termSaturation??null,term_frequency:ranking.termFrequency??null};let ptr=await this.getPtr();this.raw_ptr=this.backend.set_ranking_weights(ptr,JSON.stringify(rankingWeights))}async init(language,opts){await this.loadEntry();let index=this.findIndex(language);let lang_wasm=index.wasm?index.wasm:"unknown";this.loadedLanguage=language;let resources=[this.loadMeta(index.hash)];if(opts.load_wasm===true){resources.push(this.loadWasm(lang_wasm))}await Promise.all(resources);this.raw_ptr=this.backend.init_pagefind(new Uint8Array(this.searchMeta));if(Object.keys(this.mergeFilter)?.length){let filters2=this.stringifyFilters(this.mergeFilter);let ptr=await this.getPtr();this.raw_ptr=this.backend.add_synthetic_filter(ptr,filters2)}if(this.ranking){await this.set_ranking(this.ranking)}}async loadEntry(){try{let entry_response=await fetch(`${this.basePath}pagefind-entry.json?ts=${Date.now()}`);let entry_json=await entry_response.json();this.languages=entry_json.languages;this.loadedVersion=entry_json.version;this.includeCharacters=entry_json.include_characters??[];if(entry_json.version!==this.version){if(this.primary){console.warn(["Pagefind JS version doesn't match the version in your search index.",`Pagefind JS: ${this.version}. Pagefind index: ${entry_json.version}`,"If you upgraded Pagefind recently, you likely have a cached pagefind.js file.","If you encounter any search errors, try clearing your cache."].join("\n"))}else{console.warn(["Merging a Pagefind index from a different version than the main Pagefind instance.",`Main Pagefind JS: ${this.version}. Merged index (${this.basePath}): ${entry_json.version}`,"If you encounter any search errors, make sure that both sites are running the same version of Pagefind."].join("\n"))}}}catch(e){console.error(`Failed to load Pagefind metadata: +${e?.toString()}`);throw new Error("Failed to load Pagefind metadata")}}findIndex(language){if(this.languages){let index=this.languages[language];if(index)return index;index=this.languages[language.split("-")[0]];if(index)return index;let topLang=Object.values(this.languages).sort((a,b)=>b.page_count-a.page_count);if(topLang[0])return topLang[0]}throw new Error("Pagefind Error: No language indexes found.")}async loadMeta(index){try{let compressed_resp=await fetch(`${this.basePath}pagefind.${index}.pf_meta`);let compressed_meta=await compressed_resp.arrayBuffer();this.searchMeta=this.decompress(new Uint8Array(compressed_meta),"Pagefind metadata")}catch(e){console.error(`Failed to load the meta index: +${e?.toString()}`)}}async loadWasm(language){try{const wasm_url=`${this.basePath}wasm.${language}.pagefind`;let compressed_resp=await fetch(wasm_url);let compressed_wasm=await compressed_resp.arrayBuffer();const final_wasm=this.decompress(new Uint8Array(compressed_wasm),"Pagefind WebAssembly");if(!final_wasm){throw new Error("No WASM after decompression")}this.wasm=await this.backend(final_wasm)}catch(e){console.error(`Failed to load the Pagefind WASM: +${e?.toString()}`);throw new Error(`Failed to load the Pagefind WASM: +${e?.toString()}`)}}async _loadGenericChunk(url,method){try{let compressed_resp=await fetch(url);let compressed_chunk=await compressed_resp.arrayBuffer();let chunk=this.decompress(new Uint8Array(compressed_chunk),url);let ptr=await this.getPtr();this.raw_ptr=this.backend[method](ptr,chunk)}catch(e){console.error(`Failed to load the index chunk ${url}: +${e?.toString()}`)}}async loadChunk(hash){if(!this.loaded_chunks[hash]){const url=`${this.basePath}index/${hash}.pf_index`;this.loaded_chunks[hash]=this._loadGenericChunk(url,"load_index_chunk")}return await this.loaded_chunks[hash]}async loadFilterChunk(hash){if(!this.loaded_filters[hash]){const url=`${this.basePath}filter/${hash}.pf_filter`;this.loaded_filters[hash]=this._loadGenericChunk(url,"load_filter_chunk")}return await this.loaded_filters[hash]}async _loadFragment(hash){let compressed_resp=await fetch(`${this.basePath}fragment/${hash}.pf_fragment`);let compressed_fragment=await compressed_resp.arrayBuffer();let fragment=this.decompress(new Uint8Array(compressed_fragment),`Fragment ${hash}`);return JSON.parse(new TextDecoder().decode(fragment))}async loadFragment(hash,weighted_locations=[],search_term){if(!this.loaded_fragments[hash]){this.loaded_fragments[hash]=this._loadFragment(hash)}let fragment=await this.loaded_fragments[hash];fragment.weighted_locations=weighted_locations;fragment.locations=weighted_locations.map((l)=>l.location);if(!fragment.raw_content){fragment.raw_content=fragment.content.replace(//g,">");fragment.content=fragment.content.replace(/\u200B/g,"")}if(!fragment.raw_url){fragment.raw_url=fragment.url}fragment.url=this.processedUrl(fragment.raw_url,search_term);const excerpt_start=calculate_excerpt_region(weighted_locations,this.excerptLength);fragment.excerpt=build_excerpt(fragment.raw_content,excerpt_start,this.excerptLength,fragment.locations);fragment.sub_results=calculate_sub_results(fragment,this.excerptLength);return fragment}fullUrl(raw){if(/^(https?:)?\/\//.test(raw)){return raw}return`${this.baseUrl}/${raw}`.replace(/\/+/g,"/").replace(/^(https?:\/)/,"$1/")}processedUrl(url,search_term){const normalized=this.fullUrl(url);if(this.highlightParam===null){return normalized}let individual_terms=search_term.split(/\s+/);try{let processed=new URL(normalized);for(const term of individual_terms){processed.searchParams.append(this.highlightParam,term)}return processed.toString()}catch(e){try{let processed=new URL(`https://example.com${normalized}`);for(const term of individual_terms){processed.searchParams.append(this.highlightParam,term)}return processed.toString().replace(/^https:\/\/example\.com/,"")}catch(e2){return normalized}}}async getPtr(){while(this.raw_ptr===null){await asyncSleep(50)}if(!this.raw_ptr){console.error("Pagefind: WASM Error (No pointer)");throw new Error("Pagefind: WASM Error (No pointer)")}return this.raw_ptr}stringifyFilters(obj={}){return JSON.stringify(obj)}stringifySorts(obj={}){let sorts=Object.entries(obj);for(let[sort,direction]of sorts){if(sorts.length>1){console.warn(`Pagefind was provided multiple sort options in this search, but can only operate on one. Using the ${sort} sort.`)}if(direction!=="asc"&&direction!=="desc"){console.warn(`Pagefind was provided a sort with unknown direction ${direction}. Supported: [asc, desc]`)}return`${sort}:${direction}`}return``}async filters(){let ptr=await this.getPtr();let filters2=this.backend.request_all_filter_indexes(ptr);let filter_array=JSON.parse(filters2);if(Array.isArray(filter_array)){let filter_chunks=filter_array.filter((v)=>v).map((chunk)=>this.loadFilterChunk(chunk));await Promise.all([...filter_chunks])}ptr=await this.getPtr();let results=this.backend.filters(ptr);return JSON.parse(results)}async preload(term,options2={}){await this.search(term,{...options2,preload:true})}async search(term,options2={}){options2={verbose:false,filters:{},sort:{},...options2};const log=(str)=>{if(options2.verbose)console.log(str)};log(`Starting search on ${this.basePath}`);let start=Date.now();let ptr=await this.getPtr();let filter_only=term===null;term=term??"";let exact_search=/^\s*".+"\s*$/.test(term);if(exact_search){log(`Running an exact search`)}let trueLanguage=null;try{trueLanguage=Intl.getCanonicalLocales(this.loadedLanguage)[0]}catch(err2){}const term_chunks=[];let segments;if(trueLanguage&&typeof Intl.Segmenter!=="undefined"){const segmenter=new Intl.Segmenter(trueLanguage,{granularity:"grapheme"});segments=[...segmenter.segment(term)].map(({segment})=>segment)}else{segments=[...term]}for(const segment of segments){if(this.includeCharacters?.includes(segment)){term_chunks.push(segment)}else if(!/^\p{Pd}|\p{Pe}|\p{Pf}|\p{Pi}|\p{Po}|\p{Ps}$/u.test(segment)){term_chunks.push(segment.toLocaleLowerCase())}}term=term_chunks.join("").replace(/\s{2,}/g," ").trim();log(`Normalized search term to ${term}`);if(!term?.length&&!filter_only){return{results:[],unfilteredResultCount:0,filters:{},totalFilters:{},timings:{preload:Date.now()-start,search:Date.now()-start,total:Date.now()-start}}}let sort_list=this.stringifySorts(options2.sort);log(`Stringified sort to ${sort_list}`);const filter_list=this.stringifyFilters(options2.filters);log(`Stringified filters to ${filter_list}`);let index_resp=this.backend.request_indexes(ptr,term);let index_array=JSON.parse(index_resp);let filter_resp=this.backend.request_filter_indexes(ptr,filter_list);let filter_array=JSON.parse(filter_resp);let chunks=index_array.filter((v)=>v).map((chunk)=>this.loadChunk(chunk));let filter_chunks=filter_array.filter((v)=>v).map((chunk)=>this.loadFilterChunk(chunk));await Promise.all([...chunks,...filter_chunks]);log(`Loaded necessary chunks to run search`);if(options2.preload){log(`Preload \u2014 bailing out of search operation now.`);return null}ptr=await this.getPtr();let searchStart=Date.now();let result=this.backend.search(ptr,term,filter_list,sort_list,exact_search);log(`Got the raw search result: ${result}`);let{filtered_counts,total_counts,results,unfiltered_total,search_keywords}=JSON.parse(result);let resultsInterface=results.map((result2)=>{let weighted_locations=result2.l.map((l)=>{let loc={weight:l.w/24,balanced_score:l.s,location:l.l};if(l.v){loc.verbose={word_string:l.v.ws,length_bonus:l.v.lb}}return loc});let locations=weighted_locations.map((l)=>l.location);let res={id:result2.p,score:result2.s*this.indexWeight,words:locations,data:async()=>await this.loadFragment(result2.p,weighted_locations,term)};if(result2.params){res.params={document_length:result2.params.dl,average_page_length:result2.params.apl,total_pages:result2.params.tp}}if(result2.scores){res.scores=result2.scores.map((r)=>{return{search_term:r.w,idf:r.idf,saturating_tf:r.b_tf,raw_tf:r.r_tf,pagefind_tf:r.p_tf,score:r.s,params:{weighted_term_frequency:r.params.w_tf,pages_containing_term:r.params.pct,length_bonus:r.params.lb}}})}return res});const searchTime=Date.now()-searchStart;const realTime=Date.now()-start;log(`Found ${results.length} result${results.length == 1 ? "" : "s"} for "${term}" in ${Date.now() - searchStart}ms (${Date.now() - start}ms realtime)`);let response={results:resultsInterface,unfilteredResultCount:unfiltered_total,filters:filtered_counts,totalFilters:total_counts,timings:{preload:realTime-searchTime,search:searchTime,total:realTime}};if(search_keywords){response.search_keywords=search_keywords}return response}};var Pagefind=class{constructor(options2={}){this.backend=wasm_bindgen;this.primaryLanguage="unknown";this.searchID=0;this.primary=new PagefindInstance({...options2,primary:true});this.instances=[this.primary];this.init(options2?.language)}async options(options2){await this.primary.options(options2)}async enterPlaygroundMode(){await this.primary.enterPlaygroundMode()}async init(overrideLanguage){if(isBrowser&&document?.querySelector){const langCode=document.querySelector("html")?.getAttribute("lang")||"unknown";this.primaryLanguage=langCode.toLocaleLowerCase()}await this.primary.init(overrideLanguage?overrideLanguage:this.primaryLanguage,{load_wasm:true})}async mergeIndex(indexPath,options2={}){if(this.primary.basePath.startsWith(indexPath)){console.warn(`Skipping mergeIndex ${indexPath} that appears to be the same as the primary index (${this.primary.basePath})`);return}let newInstance=new PagefindInstance({primary:false,basePath:indexPath});this.instances.push(newInstance);while(this.primary.wasm===null){await asyncSleep(50)}await newInstance.init(options2.language||this.primaryLanguage,{load_wasm:false});delete options2["language"];await newInstance.options(options2)}mergeFilters(filters2){const merged={};for(const searchFilter of filters2){for(const[filterKey,values]of Object.entries(searchFilter)){if(!merged[filterKey]){merged[filterKey]=values;continue}else{const filter=merged[filterKey];for(const[valueKey,count]of Object.entries(values)){filter[valueKey]=(filter[valueKey]||0)+count}}}}return merged}async filters(){let filters2=await Promise.all(this.instances.map((i2)=>i2.filters()));return this.mergeFilters(filters2)}async preload(term,options2={}){await Promise.all(this.instances.map((i2)=>i2.preload(term,options2)))}async debouncedSearch(term,options2,debounceTimeoutMs){const thisSearchID=++this.searchID;this.preload(term,options2);await asyncSleep(debounceTimeoutMs);if(thisSearchID!==this.searchID){return null}const searchResult=await this.search(term,options2);if(thisSearchID!==this.searchID){return null}return searchResult}async search(term,options2={}){let search2=await Promise.all(this.instances.map((i2)=>i2.search(term,options2)));const filters2=this.mergeFilters(search2.map((s)=>s.filters));const totalFilters=this.mergeFilters(search2.map((s)=>s.totalFilters));const results=search2.map((s)=>s.results).flat().sort((a,b)=>b.score-a.score);const timings=search2.map((s)=>s.timings);const unfilteredResultCount=search2.reduce((sum,s)=>sum+s.unfilteredResultCount,0);let response={results,unfilteredResultCount,filters:filters2,totalFilters,timings};if(search2[0].search_keywords){response.search_keywords=search2[0].search_keywords}return response}};var pagefind=void 0;var initial_options=void 0;var init_pagefind=()=>{if(!pagefind){pagefind=new Pagefind(initial_options??{})}};var options=async(new_options)=>{if(pagefind){await pagefind.options(new_options)}else{initial_options=new_options}};var init=async()=>{init_pagefind()};var destroy=async()=>{pagefind=void 0;initial_options=void 0};var mergeIndex=async(indexPath,options2)=>{init_pagefind();return await pagefind.mergeIndex(indexPath,options2)};var search=async(term,options2)=>{init_pagefind();return await pagefind.search(term,options2)};var debouncedSearch=async(term,options2,debounceTimeoutMs=300)=>{init_pagefind();return await pagefind.debouncedSearch(term,options2,debounceTimeoutMs)};var preload=async(term,options2)=>{init_pagefind();return await pagefind.preload(term,options2)};var filters=async()=>{init_pagefind();return await pagefind.filters()};export{debouncedSearch,destroy,filters,init,mergeIndex,options,preload,search} \ No newline at end of file diff --git a/pagefind/pagefind.zh-cn_e5263769f77e1.pf_meta b/pagefind/pagefind.zh-cn_e5263769f77e1.pf_meta new file mode 100644 index 0000000..8fe4fa1 Binary files /dev/null and b/pagefind/pagefind.zh-cn_e5263769f77e1.pf_meta differ diff --git a/pagefind/wasm.unknown.pagefind b/pagefind/wasm.unknown.pagefind new file mode 100644 index 0000000..e3f5520 Binary files /dev/null and b/pagefind/wasm.unknown.pagefind differ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml deleted file mode 100644 index 086fe95..0000000 --- a/pnpm-lock.yaml +++ /dev/null @@ -1,10968 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@astrojs/check': - specifier: ^0.9.5 - version: 0.9.6(prettier@3.8.1)(typescript@5.9.3) - '@astrojs/rss': - specifier: ^4.0.13 - version: 4.0.15 - '@astrojs/sitemap': - specifier: ^3.5.1 - version: 3.7.0 - '@astrojs/svelte': - specifier: 7.1.1 - version: 7.1.1(@types/node@25.2.0)(astro@5.13.7(@types/node@25.2.0)(@vercel/functions@2.2.13)(jiti@1.21.7)(rollup@2.79.2)(stylus@0.64.0)(terser@5.46.0)(typescript@5.9.3)(yaml@2.8.2))(jiti@1.21.7)(stylus@0.64.0)(svelte@5.49.1)(terser@5.46.0)(typescript@5.9.3)(yaml@2.8.2) - '@astrojs/tailwind': - specifier: ^6.0.2 - version: 6.0.2(astro@5.13.7(@types/node@25.2.0)(@vercel/functions@2.2.13)(jiti@1.21.7)(rollup@2.79.2)(stylus@0.64.0)(terser@5.46.0)(typescript@5.9.3)(yaml@2.8.2))(tailwindcss@3.4.19(yaml@2.8.2)) - '@astrojs/vercel': - specifier: ^8.2.11 - version: 8.2.11(astro@5.13.7(@types/node@25.2.0)(@vercel/functions@2.2.13)(jiti@1.21.7)(rollup@2.79.2)(stylus@0.64.0)(terser@5.46.0)(typescript@5.9.3)(yaml@2.8.2))(rollup@2.79.2)(svelte@5.49.1) - '@expressive-code/core': - specifier: ^0.41.2 - version: 0.41.6 - '@expressive-code/plugin-collapsible-sections': - specifier: ^0.41.2 - version: 0.41.6 - '@expressive-code/plugin-line-numbers': - specifier: ^0.41.2 - version: 0.41.6 - '@fontsource-variable/jetbrains-mono': - specifier: ^5.2.8 - version: 5.2.8 - '@fontsource/roboto': - specifier: ^5.2.8 - version: 5.2.9 - '@iconify-json/fa6-brands': - specifier: ^1.2.5 - version: 1.2.6 - '@iconify-json/fa6-regular': - specifier: ^1.2.3 - version: 1.2.4 - '@iconify-json/fa6-solid': - specifier: ^1.2.3 - version: 1.2.4 - '@iconify-json/ic': - specifier: ^1.2.4 - version: 1.2.4 - '@iconify-json/material-symbols': - specifier: ^1.2.42 - version: 1.2.53 - '@iconify/svelte': - specifier: ^4.2.0 - version: 4.2.0(svelte@5.49.1) - '@swup/astro': - specifier: ^1.6.0 - version: 1.7.0 - '@tailwindcss/typography': - specifier: ^0.5.19 - version: 0.5.19(tailwindcss@3.4.19(yaml@2.8.2)) - astro: - specifier: 5.13.7 - version: 5.13.7(@types/node@25.2.0)(@vercel/functions@2.2.13)(jiti@1.21.7)(rollup@2.79.2)(stylus@0.64.0)(terser@5.46.0)(typescript@5.9.3)(yaml@2.8.2) - astro-expressive-code: - specifier: ^0.41.2 - version: 0.41.6(astro@5.13.7(@types/node@25.2.0)(@vercel/functions@2.2.13)(jiti@1.21.7)(rollup@2.79.2)(stylus@0.64.0)(terser@5.46.0)(typescript@5.9.3)(yaml@2.8.2)) - astro-icon: - specifier: ^1.1.5 - version: 1.1.5 - css: - specifier: ^3.0.0 - version: 3.0.0 - hastscript: - specifier: ^9.0.1 - version: 9.0.1 - katex: - specifier: ^0.16.25 - version: 0.16.28 - markdown-it: - specifier: ^14.1.0 - version: 14.1.0 - mdast-util-to-string: - specifier: ^4.0.0 - version: 4.0.0 - overlayscrollbars: - specifier: ^2.12.0 - version: 2.14.0 - pagefind: - specifier: ^1.4.0 - version: 1.4.0 - photoswipe: - specifier: ^5.4.4 - version: 5.4.4 - postcss: - specifier: ^8.4.32 - version: 8.5.6 - reading-time: - specifier: ^1.5.0 - version: 1.5.0 - rehype-autolink-headings: - specifier: ^7.1.0 - version: 7.1.0 - rehype-components: - specifier: ^0.3.0 - version: 0.3.0 - rehype-external-links: - specifier: ^3.0.0 - version: 3.0.0 - rehype-katex: - specifier: ^7.0.1 - version: 7.0.1 - rehype-slug: - specifier: ^6.0.0 - version: 6.0.0 - remark-directive: - specifier: ^3.0.1 - version: 3.0.1 - remark-directive-rehype: - specifier: ^0.4.2 - version: 0.4.2 - remark-github-admonitions-to-directives: - specifier: ^1.0.5 - version: 1.0.5 - remark-math: - specifier: ^6.0.0 - version: 6.0.0 - remark-sectionize: - specifier: ^2.1.0 - version: 2.1.0 - sanitize-html: - specifier: ^2.17.0 - version: 2.17.0 - sharp: - specifier: ^0.34.4 - version: 0.34.5 - stylus: - specifier: ^0.64.0 - version: 0.64.0 - svelte: - specifier: ^5.38.10 - version: 5.49.1 - tailwindcss: - specifier: ^3.4.18 - version: 3.4.19(yaml@2.8.2) - typescript: - specifier: ^5.9.3 - version: 5.9.3 - unist-util-visit: - specifier: ^5.0.0 - version: 5.1.0 - devDependencies: - '@astrojs/ts-plugin': - specifier: ^1.10.5 - version: 1.10.6 - '@biomejs/biome': - specifier: 2.2.4 - version: 2.2.4 - '@rollup/plugin-yaml': - specifier: ^4.1.2 - version: 4.1.2(rollup@2.79.2) - '@types/hast': - specifier: ^3.0.4 - version: 3.0.4 - '@types/markdown-it': - specifier: ^14.1.2 - version: 14.1.2 - '@types/mdast': - specifier: ^4.0.4 - version: 4.0.4 - '@types/sanitize-html': - specifier: ^2.16.0 - version: 2.16.0 - postcss-import: - specifier: ^16.1.1 - version: 16.1.1(postcss@8.5.6) - postcss-nesting: - specifier: ^13.0.2 - version: 13.0.2(postcss@8.5.6) - -packages: - - '@adobe/css-tools@4.3.3': - resolution: {integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==} - - '@alloc/quick-lru@5.2.0': - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} - engines: {node: '>=10'} - - '@antfu/install-pkg@1.1.0': - resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} - - '@antfu/utils@8.1.1': - resolution: {integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==} - - '@astrojs/check@0.9.6': - resolution: {integrity: sha512-jlaEu5SxvSgmfGIFfNgcn5/f+29H61NJzEMfAZ82Xopr4XBchXB1GVlcJsE+elUlsYSbXlptZLX+JMG3b/wZEA==} - hasBin: true - peerDependencies: - typescript: ^5.0.0 - - '@astrojs/compiler@2.13.0': - resolution: {integrity: sha512-mqVORhUJViA28fwHYaWmsXSzLO9osbdZ5ImUfxBarqsYdMlPbqAqGJCxsNzvppp1BEzc1mJNjOVvQqeDN8Vspw==} - - '@astrojs/internal-helpers@0.7.2': - resolution: {integrity: sha512-KCkCqR3Goym79soqEtbtLzJfqhTWMyVaizUi35FLzgGSzBotSw8DB1qwsu7U96ihOJgYhDk2nVPz+3LnXPeX6g==} - - '@astrojs/internal-helpers@0.7.4': - resolution: {integrity: sha512-lDA9MqE8WGi7T/t2BMi+EAXhs4Vcvr94Gqx3q15cFEz8oFZMO4/SFBqYr/UcmNlvW+35alowkVj+w9VhLvs5Cw==} - - '@astrojs/language-server@2.16.3': - resolution: {integrity: sha512-yO5K7RYCMXUfeDlnU6UnmtnoXzpuQc0yhlaCNZ67k1C/MiwwwvMZz+LGa+H35c49w5QBfvtr4w4Zcf5PcH8uYA==} - hasBin: true - peerDependencies: - prettier: ^3.0.0 - prettier-plugin-astro: '>=0.11.0' - peerDependenciesMeta: - prettier: - optional: true - prettier-plugin-astro: - optional: true - - '@astrojs/markdown-remark@6.3.6': - resolution: {integrity: sha512-bwylYktCTsLMVoCOEHbn2GSUA3c5KT/qilekBKA3CBng0bo1TYjNZPr761vxumRk9kJGqTOtU+fgCAp5Vwokug==} - - '@astrojs/prism@3.3.0': - resolution: {integrity: sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==} - engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} - - '@astrojs/rss@4.0.15': - resolution: {integrity: sha512-uXO/k6AhRkIDXmRoc6xQpoPZrimQNUmS43X4+60yunfuMNHtSRN5e/FiSi7NApcZqmugSMc5+cJi8ovqgO+qIg==} - - '@astrojs/sitemap@3.7.0': - resolution: {integrity: sha512-+qxjUrz6Jcgh+D5VE1gKUJTA3pSthuPHe6Ao5JCxok794Lewx8hBFaWHtOnN0ntb2lfOf7gvOi9TefUswQ/ZVA==} - - '@astrojs/svelte@7.1.1': - resolution: {integrity: sha512-DgaW4iGi8wT/qQifJLt5aBeDEqQCufz/hCGdo79x2z0csW1OOe/F6nXo915THpt2a90sMlkyvu7hktlnl8NJkg==} - engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} - peerDependencies: - astro: ^5.0.0 - svelte: ^5.1.16 - typescript: ^5.3.3 - - '@astrojs/tailwind@6.0.2': - resolution: {integrity: sha512-j3mhLNeugZq6A8dMNXVarUa8K6X9AW+QHU9u3lKNrPLMHhOQ0S7VeWhHwEeJFpEK1BTKEUY1U78VQv2gN6hNGg==} - peerDependencies: - astro: ^3.0.0 || ^4.0.0 || ^5.0.0 - tailwindcss: ^3.0.24 - - '@astrojs/telemetry@3.3.0': - resolution: {integrity: sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==} - engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} - - '@astrojs/ts-plugin@1.10.6': - resolution: {integrity: sha512-Ke5CNwxn/ozsh6THJKuayUlBToa3uiPDi2oSwcXmTdeiJ0PGr+UkdQJf9hdMgBjbIka9fhnSn3UhYamfNfJ73A==} - - '@astrojs/vercel@8.2.11': - resolution: {integrity: sha512-PGtWHvHYMkT8ftSR3yuR7oyf/oPvOv8AfhCFlSQg318hfpalSEPND9mjbdQGpMeZz3KtvvOnHyYwqmu5V8MSHg==} - peerDependencies: - astro: ^5.0.0 - - '@astrojs/yaml2ts@0.2.2': - resolution: {integrity: sha512-GOfvSr5Nqy2z5XiwqTouBBpy5FyI6DEe+/g/Mk5am9SjILN1S5fOEvYK0GuWHg98yS/dobP4m8qyqw/URW35fQ==} - - '@babel/code-frame@7.29.0': - resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.29.0': - resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.29.0': - resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.29.0': - resolution: {integrity: sha512-vSH118/wwM/pLR38g/Sgk05sNtro6TlTJKuiMXDaZqPUfjTFcudpCOt00IhOfj+1BFAX+UFAlzCU+6WXr3GLFQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-annotate-as-pure@7.27.3': - resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.28.6': - resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-create-class-features-plugin@7.28.6': - resolution: {integrity: sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-create-regexp-features-plugin@7.28.5': - resolution: {integrity: sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-define-polyfill-provider@0.6.6': - resolution: {integrity: sha512-mOAsxeeKkUKayvZR3HeTYD/fICpCPLJrU5ZjelT/PA6WHtNDBOE436YiaEUvHN454bRM3CebhDsIpieCc4texA==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - '@babel/helper-globals@7.28.0': - resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-member-expression-to-functions@7.28.5': - resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.28.6': - resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.28.6': - resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-optimise-call-expression@7.27.1': - resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-plugin-utils@7.28.6': - resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} - engines: {node: '>=6.9.0'} - - '@babel/helper-remap-async-to-generator@7.27.1': - resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-replace-supers@7.28.6': - resolution: {integrity: sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-skip-transparent-expression-wrappers@7.27.1': - resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.28.5': - resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.27.1': - resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-wrap-function@7.28.6': - resolution: {integrity: sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.28.6': - resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.29.0': - resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5': - resolution: {integrity: sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1': - resolution: {integrity: sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1': - resolution: {integrity: sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1': - resolution: {integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6': - resolution: {integrity: sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-proposal-class-properties@7.12.1': - resolution: {integrity: sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-flow@7.28.6': - resolution: {integrity: sha512-D+OrJumc9McXNEBI/JmFnc/0uCM2/Y3PEBG3gfV3QIYkKv5pvnpzFrl1kYCrcHJP8nOeFB/SHi1IHz29pNGuew==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-assertions@7.28.6': - resolution: {integrity: sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-attributes@7.28.6': - resolution: {integrity: sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-meta@7.10.4': - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-jsx@7.28.6': - resolution: {integrity: sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6': - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-arrow-functions@7.27.1': - resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-async-generator-functions@7.29.0': - resolution: {integrity: sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-async-to-generator@7.28.6': - resolution: {integrity: sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-block-scoped-functions@7.27.1': - resolution: {integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-block-scoping@7.28.6': - resolution: {integrity: sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-class-properties@7.28.6': - resolution: {integrity: sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-class-static-block@7.28.6': - resolution: {integrity: sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 - - '@babel/plugin-transform-classes@7.28.6': - resolution: {integrity: sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-computed-properties@7.28.6': - resolution: {integrity: sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-destructuring@7.28.5': - resolution: {integrity: sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-dotall-regex@7.28.6': - resolution: {integrity: sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-duplicate-keys@7.27.1': - resolution: {integrity: sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0': - resolution: {integrity: sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-dynamic-import@7.27.1': - resolution: {integrity: sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-explicit-resource-management@7.28.6': - resolution: {integrity: sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-exponentiation-operator@7.28.6': - resolution: {integrity: sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-export-namespace-from@7.27.1': - resolution: {integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-flow-strip-types@7.27.1': - resolution: {integrity: sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-for-of@7.27.1': - resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-function-name@7.27.1': - resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-json-strings@7.28.6': - resolution: {integrity: sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-literals@7.27.1': - resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-logical-assignment-operators@7.28.6': - resolution: {integrity: sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-member-expression-literals@7.27.1': - resolution: {integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-amd@7.27.1': - resolution: {integrity: sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-commonjs@7.28.6': - resolution: {integrity: sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-systemjs@7.29.0': - resolution: {integrity: sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-umd@7.27.1': - resolution: {integrity: sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-named-capturing-groups-regex@7.29.0': - resolution: {integrity: sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-new-target@7.27.1': - resolution: {integrity: sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-nullish-coalescing-operator@7.28.6': - resolution: {integrity: sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-numeric-separator@7.28.6': - resolution: {integrity: sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-object-rest-spread@7.28.6': - resolution: {integrity: sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-object-super@7.27.1': - resolution: {integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-optional-catch-binding@7.28.6': - resolution: {integrity: sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-optional-chaining@7.28.6': - resolution: {integrity: sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-parameters@7.27.7': - resolution: {integrity: sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-private-methods@7.28.6': - resolution: {integrity: sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-private-property-in-object@7.28.6': - resolution: {integrity: sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-property-literals@7.27.1': - resolution: {integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-display-name@7.28.0': - resolution: {integrity: sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx-development@7.27.1': - resolution: {integrity: sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx@7.28.6': - resolution: {integrity: sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-pure-annotations@7.27.1': - resolution: {integrity: sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-regenerator@7.29.0': - resolution: {integrity: sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-regexp-modifiers@7.28.6': - resolution: {integrity: sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-reserved-words@7.27.1': - resolution: {integrity: sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-shorthand-properties@7.27.1': - resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-spread@7.28.6': - resolution: {integrity: sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-sticky-regex@7.27.1': - resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-template-literals@7.27.1': - resolution: {integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-typeof-symbol@7.27.1': - resolution: {integrity: sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-escapes@7.27.1': - resolution: {integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-property-regex@7.28.6': - resolution: {integrity: sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-regex@7.27.1': - resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-sets-regex@7.28.6': - resolution: {integrity: sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/preset-env@7.29.0': - resolution: {integrity: sha512-fNEdfc0yi16lt6IZo2Qxk3knHVdfMYX33czNb4v8yWhemoBhibCpQK/uYHtSKIiO+p/zd3+8fYVXhQdOVV608w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/preset-flow@7.27.1': - resolution: {integrity: sha512-ez3a2it5Fn6P54W8QkbfIyyIbxlXvcxyWHHvno1Wg0Ej5eiJY5hBb8ExttoIOJJk7V2dZE6prP7iby5q2aQ0Lg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/preset-modules@0.1.6-no-external-plugins': - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - - '@babel/preset-react@7.28.5': - resolution: {integrity: sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/runtime@7.28.6': - resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.28.6': - resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.29.0': - resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.29.0': - resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} - engines: {node: '>=6.9.0'} - - '@biomejs/biome@2.2.4': - resolution: {integrity: sha512-TBHU5bUy/Ok6m8c0y3pZiuO/BZoY/OcGxoLlrfQof5s8ISVwbVBdFINPQZyFfKwil8XibYWb7JMwnT8wT4WVPg==} - engines: {node: '>=14.21.3'} - hasBin: true - - '@biomejs/cli-darwin-arm64@2.2.4': - resolution: {integrity: sha512-RJe2uiyaloN4hne4d2+qVj3d3gFJFbmrr5PYtkkjei1O9c+BjGXgpUPVbi8Pl8syumhzJjFsSIYkcLt2VlVLMA==} - engines: {node: '>=14.21.3'} - cpu: [arm64] - os: [darwin] - - '@biomejs/cli-darwin-x64@2.2.4': - resolution: {integrity: sha512-cFsdB4ePanVWfTnPVaUX+yr8qV8ifxjBKMkZwN7gKb20qXPxd/PmwqUH8mY5wnM9+U0QwM76CxFyBRJhC9tQwg==} - engines: {node: '>=14.21.3'} - cpu: [x64] - os: [darwin] - - '@biomejs/cli-linux-arm64-musl@2.2.4': - resolution: {integrity: sha512-7TNPkMQEWfjvJDaZRSkDCPT/2r5ESFPKx+TEev+I2BXDGIjfCZk2+b88FOhnJNHtksbOZv8ZWnxrA5gyTYhSsQ==} - engines: {node: '>=14.21.3'} - cpu: [arm64] - os: [linux] - - '@biomejs/cli-linux-arm64@2.2.4': - resolution: {integrity: sha512-M/Iz48p4NAzMXOuH+tsn5BvG/Jb07KOMTdSVwJpicmhN309BeEyRyQX+n1XDF0JVSlu28+hiTQ2L4rZPvu7nMw==} - engines: {node: '>=14.21.3'} - cpu: [arm64] - os: [linux] - - '@biomejs/cli-linux-x64-musl@2.2.4': - resolution: {integrity: sha512-m41nFDS0ksXK2gwXL6W6yZTYPMH0LughqbsxInSKetoH6morVj43szqKx79Iudkp8WRT5SxSh7qVb8KCUiewGg==} - engines: {node: '>=14.21.3'} - cpu: [x64] - os: [linux] - - '@biomejs/cli-linux-x64@2.2.4': - resolution: {integrity: sha512-orr3nnf2Dpb2ssl6aihQtvcKtLySLta4E2UcXdp7+RTa7mfJjBgIsbS0B9GC8gVu0hjOu021aU8b3/I1tn+pVQ==} - engines: {node: '>=14.21.3'} - cpu: [x64] - os: [linux] - - '@biomejs/cli-win32-arm64@2.2.4': - resolution: {integrity: sha512-NXnfTeKHDFUWfxAefa57DiGmu9VyKi0cDqFpdI+1hJWQjGJhJutHPX0b5m+eXvTKOaf+brU+P0JrQAZMb5yYaQ==} - engines: {node: '>=14.21.3'} - cpu: [arm64] - os: [win32] - - '@biomejs/cli-win32-x64@2.2.4': - resolution: {integrity: sha512-3Y4V4zVRarVh/B/eSHczR4LYoSVyv3Dfuvm3cWs5w/HScccS0+Wt/lHOcDTRYeHjQmMYVC3rIRWqyN2EI52+zg==} - engines: {node: '>=14.21.3'} - cpu: [x64] - os: [win32] - - '@capsizecss/unpack@2.4.0': - resolution: {integrity: sha512-GrSU71meACqcmIUxPYOJvGKF0yryjN/L1aCuE9DViCTJI7bfkjgYDPD1zbNDcINJwSSP6UaBZY9GAbYDO7re0Q==} - - '@csstools/selector-resolve-nested@3.1.0': - resolution: {integrity: sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==} - engines: {node: '>=18'} - peerDependencies: - postcss-selector-parser: ^7.0.0 - - '@csstools/selector-specificity@5.0.0': - resolution: {integrity: sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==} - engines: {node: '>=18'} - peerDependencies: - postcss-selector-parser: ^7.0.0 - - '@ctrl/tinycolor@4.2.0': - resolution: {integrity: sha512-kzyuwOAQnXJNLS9PSyrk0CWk35nWJW/zl/6KvnTBMFK65gm7U1/Z5BqjxeapjZCIhQcM/DsrEmcbRwDyXyXK4A==} - engines: {node: '>=14'} - - '@emmetio/abbreviation@2.3.3': - resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} - - '@emmetio/css-abbreviation@2.1.8': - resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} - - '@emmetio/css-parser@0.4.1': - resolution: {integrity: sha512-2bC6m0MV/voF4CTZiAbG5MWKbq5EBmDPKu9Sb7s7nVcEzNQlrZP6mFFFlIaISM8X6514H9shWMme1fCm8cWAfQ==} - - '@emmetio/html-matcher@1.3.0': - resolution: {integrity: sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==} - - '@emmetio/scanner@1.0.4': - resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} - - '@emmetio/stream-reader-utils@0.1.0': - resolution: {integrity: sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==} - - '@emmetio/stream-reader@2.2.0': - resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==} - - '@emnapi/runtime@1.8.1': - resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} - - '@esbuild/aix-ppc64@0.25.12': - resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.25.12': - resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.25.12': - resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.25.12': - resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.25.12': - resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.25.12': - resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.25.12': - resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.25.12': - resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.25.12': - resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.25.12': - resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.25.12': - resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.25.12': - resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.25.12': - resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.25.12': - resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.25.12': - resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.25.12': - resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.25.12': - resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-arm64@0.25.12': - resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.25.12': - resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-arm64@0.25.12': - resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.25.12': - resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openharmony-arm64@0.25.12': - resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - - '@esbuild/sunos-x64@0.25.12': - resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.25.12': - resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.25.12': - resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.25.12': - resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - - '@expressive-code/core@0.41.6': - resolution: {integrity: sha512-FvJQP+hG0jWi/FLBSmvHInDqWR7jNANp9PUDjdMqSshHb0y7sxx3vHuoOr6SgXjWw+MGLqorZyPQ0aAlHEok6g==} - - '@expressive-code/plugin-collapsible-sections@0.41.6': - resolution: {integrity: sha512-LxSa49aziWKgpGoOoZlTbXW1V1/mEPyxKb+J9JFgUtTizXNKX363uiCHcKQYzSLmIN7HII5WxF+uArGHwb+X+w==} - - '@expressive-code/plugin-frames@0.41.6': - resolution: {integrity: sha512-d+hkSYXIQot6fmYnOmWAM+7TNWRv/dhfjMsNq+mIZz8Tb4mPHOcgcfZeEM5dV9TDL0ioQNvtcqQNuzA1sRPjxg==} - - '@expressive-code/plugin-line-numbers@0.41.6': - resolution: {integrity: sha512-YS8oLrGNBjY8qVVl6ZntwPXIh5HGrLEq23R6eyJ0tCJQmq03tCOOiWw9cc2R3J/XobXAI7coAtVbqAiGFB8pXQ==} - - '@expressive-code/plugin-shiki@0.41.6': - resolution: {integrity: sha512-Y6zmKBmsIUtWTzdefqlzm/h9Zz0Rc4gNdt2GTIH7fhHH2I9+lDYCa27BDwuBhjqcos6uK81Aca9dLUC4wzN+ng==} - - '@expressive-code/plugin-text-markers@0.41.6': - resolution: {integrity: sha512-PBFa1wGyYzRExMDzBmAWC6/kdfG1oLn4pLpBeTfIRrALPjcGA/59HP3e7q9J0Smk4pC7U+lWkA2LHR8FYV8U7Q==} - - '@fontsource-variable/jetbrains-mono@5.2.8': - resolution: {integrity: sha512-WBA9elru6Jdp5df2mES55wuOO0WIrn3kpXnI4+W2ek5u3ZgLS9XS4gmIlcQhiZOWEKl95meYdvK7xI+ETLCq/Q==} - - '@fontsource/roboto@5.2.9': - resolution: {integrity: sha512-ZTkyHiPk74B/aj8BZWbsxD5Yu+Lq+nR64eV4wirlrac2qXR7jYk2h6JlLYuOuoruTkGQWNw2fMuKNavw7/rg0w==} - - '@iconify-json/fa6-brands@1.2.6': - resolution: {integrity: sha512-twL3X4KWcxAhbc1vz/mIDsVr+CAItk1/EIfxKUVQtpv6O4eydk5KNYqTZWdvJNHGInUgd6vKg21aWfVgb5DXEg==} - - '@iconify-json/fa6-regular@1.2.4': - resolution: {integrity: sha512-fnUS/MLj3ZAp29oRsC8/aY8Wau7NIg7VesTz3jCcE6VJBzcz95Yxp/Dl5yHvkP+aQxrNw5Lj3nrOXB4nQh+oNA==} - - '@iconify-json/fa6-solid@1.2.4': - resolution: {integrity: sha512-LmDNNdJVyvF5mPm1yxWvL8KjCc/E8LzoqnF1LNTVpyY2ZJRUlGOWuPIThdbuFBF2IovgttkIyumhyqfmlHdwKg==} - - '@iconify-json/ic@1.2.4': - resolution: {integrity: sha512-pzPMmrZrBQuwT7nmtrYdkttun8KalRGgZPIL1Ny9KpF2zjRGIUPN+npTfuD3lrgO/OnSwAoJWuekQwBpt/Cqrw==} - - '@iconify-json/material-symbols@1.2.53': - resolution: {integrity: sha512-2jXBKFdNzL9zy6chnJqubykL9WZno7rEP6/isSzpp6fKJJMXXhRtVkaGw1Clle0RlXGWzVkd/eiYUH8f9/ILrQ==} - - '@iconify/svelte@4.2.0': - resolution: {integrity: sha512-fEl0T7SAPonK7xk6xUlRPDmFDZVDe2Z7ZstlqeDS/sS8ve2uyU+Qa8rTWbIqzZJlRvONkK5kVXiUf9nIc+6OOQ==} - peerDependencies: - svelte: '>4.0.0' - - '@iconify/tools@4.2.0': - resolution: {integrity: sha512-WRxPva/ipxYkqZd1+CkEAQmd86dQmrwH0vwK89gmp2Kh2WyyVw57XbPng0NehP3x4V1LzLsXUneP1uMfTMZmUA==} - - '@iconify/types@2.0.0': - resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} - - '@iconify/utils@2.3.0': - resolution: {integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==} - - '@img/colour@1.0.0': - resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} - engines: {node: '>=18'} - - '@img/sharp-darwin-arm64@0.34.5': - resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [darwin] - - '@img/sharp-darwin-x64@0.34.5': - resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [darwin] - - '@img/sharp-libvips-darwin-arm64@1.2.4': - resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} - cpu: [arm64] - os: [darwin] - - '@img/sharp-libvips-darwin-x64@1.2.4': - resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} - cpu: [x64] - os: [darwin] - - '@img/sharp-libvips-linux-arm64@1.2.4': - resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} - cpu: [arm64] - os: [linux] - - '@img/sharp-libvips-linux-arm@1.2.4': - resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} - cpu: [arm] - os: [linux] - - '@img/sharp-libvips-linux-ppc64@1.2.4': - resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} - cpu: [ppc64] - os: [linux] - - '@img/sharp-libvips-linux-riscv64@1.2.4': - resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} - cpu: [riscv64] - os: [linux] - - '@img/sharp-libvips-linux-s390x@1.2.4': - resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} - cpu: [s390x] - os: [linux] - - '@img/sharp-libvips-linux-x64@1.2.4': - resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} - cpu: [x64] - os: [linux] - - '@img/sharp-libvips-linuxmusl-arm64@1.2.4': - resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} - cpu: [arm64] - os: [linux] - - '@img/sharp-libvips-linuxmusl-x64@1.2.4': - resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} - cpu: [x64] - os: [linux] - - '@img/sharp-linux-arm64@0.34.5': - resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] - - '@img/sharp-linux-arm@0.34.5': - resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm] - os: [linux] - - '@img/sharp-linux-ppc64@0.34.5': - resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [ppc64] - os: [linux] - - '@img/sharp-linux-riscv64@0.34.5': - resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [riscv64] - os: [linux] - - '@img/sharp-linux-s390x@0.34.5': - resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [s390x] - os: [linux] - - '@img/sharp-linux-x64@0.34.5': - resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] - - '@img/sharp-linuxmusl-arm64@0.34.5': - resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] - - '@img/sharp-linuxmusl-x64@0.34.5': - resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] - - '@img/sharp-wasm32@0.34.5': - resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [wasm32] - - '@img/sharp-win32-arm64@0.34.5': - resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [win32] - - '@img/sharp-win32-ia32@0.34.5': - resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [ia32] - os: [win32] - - '@img/sharp-win32-x64@0.34.5': - resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [win32] - - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - - '@isaacs/fs-minipass@4.0.1': - resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} - engines: {node: '>=18.0.0'} - - '@jridgewell/gen-mapping@0.3.13': - resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} - - '@jridgewell/remapping@2.3.5': - resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/source-map@0.3.11': - resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} - - '@jridgewell/sourcemap-codec@1.5.5': - resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - - '@jridgewell/trace-mapping@0.3.31': - resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - - '@mapbox/node-pre-gyp@2.0.3': - resolution: {integrity: sha512-uwPAhccfFJlsfCxMYTwOdVfOz3xqyj8xYL3zJj8f0pb30tLohnnFPhLuqp4/qoEz8sNxe4SESZedcBojRefIzg==} - engines: {node: '>=18'} - hasBin: true - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@oslojs/encoding@1.1.0': - resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} - - '@pagefind/darwin-arm64@1.4.0': - resolution: {integrity: sha512-2vMqkbv3lbx1Awea90gTaBsvpzgRs7MuSgKDxW0m9oV1GPZCZbZBJg/qL83GIUEN2BFlY46dtUZi54pwH+/pTQ==} - cpu: [arm64] - os: [darwin] - - '@pagefind/darwin-x64@1.4.0': - resolution: {integrity: sha512-e7JPIS6L9/cJfow+/IAqknsGqEPjJnVXGjpGm25bnq+NPdoD3c/7fAwr1OXkG4Ocjx6ZGSCijXEV4ryMcH2E3A==} - cpu: [x64] - os: [darwin] - - '@pagefind/freebsd-x64@1.4.0': - resolution: {integrity: sha512-WcJVypXSZ+9HpiqZjFXMUobfFfZZ6NzIYtkhQ9eOhZrQpeY5uQFqNWLCk7w9RkMUwBv1HAMDW3YJQl/8OqsV0Q==} - cpu: [x64] - os: [freebsd] - - '@pagefind/linux-arm64@1.4.0': - resolution: {integrity: sha512-PIt8dkqt4W06KGmQjONw7EZbhDF+uXI7i0XtRLN1vjCUxM9vGPdtJc2mUyVPevjomrGz5M86M8bqTr6cgDp1Uw==} - cpu: [arm64] - os: [linux] - - '@pagefind/linux-x64@1.4.0': - resolution: {integrity: sha512-z4oddcWwQ0UHrTHR8psLnVlz6USGJ/eOlDPTDYZ4cI8TK8PgwRUPQZp9D2iJPNIPcS6Qx/E4TebjuGJOyK8Mmg==} - cpu: [x64] - os: [linux] - - '@pagefind/windows-x64@1.4.0': - resolution: {integrity: sha512-NkT+YAdgS2FPCn8mIA9bQhiBs+xmniMGq1LFPDhcFn0+2yIUEiIG06t7bsZlhdjknEQRTSdT7YitP6fC5qwP0g==} - cpu: [x64] - os: [win32] - - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - - '@rollup/plugin-alias@3.1.9': - resolution: {integrity: sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==} - engines: {node: '>=8.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0 - - '@rollup/plugin-babel@5.3.1': - resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} - engines: {node: '>= 10.0.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@types/babel__core': ^7.1.9 - rollup: ^1.20.0||^2.0.0 - peerDependenciesMeta: - '@types/babel__core': - optional: true - - '@rollup/plugin-commonjs@17.1.0': - resolution: {integrity: sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew==} - engines: {node: '>= 8.0.0'} - peerDependencies: - rollup: ^2.30.0 - - '@rollup/plugin-json@4.1.0': - resolution: {integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==} - peerDependencies: - rollup: ^1.20.0 || ^2.0.0 - - '@rollup/plugin-node-resolve@11.2.1': - resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} - engines: {node: '>= 10.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0 - - '@rollup/plugin-yaml@4.1.2': - resolution: {integrity: sha512-RpupciIeZMUqhgFE97ba0s98mOFS7CWzN3EJNhJkqSv9XLlWYtwVdtE6cDw6ASOF/sZVFS7kRJXftaqM2Vakdw==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/pluginutils@3.1.0': - resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} - engines: {node: '>= 8.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0 - - '@rollup/pluginutils@4.2.1': - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} - - '@rollup/pluginutils@5.3.0': - resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/rollup-android-arm-eabi@4.57.1': - resolution: {integrity: sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.57.1': - resolution: {integrity: sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.57.1': - resolution: {integrity: sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.57.1': - resolution: {integrity: sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-freebsd-arm64@4.57.1': - resolution: {integrity: sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==} - cpu: [arm64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.57.1': - resolution: {integrity: sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==} - cpu: [x64] - os: [freebsd] - - '@rollup/rollup-linux-arm-gnueabihf@4.57.1': - resolution: {integrity: sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.57.1': - resolution: {integrity: sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.57.1': - resolution: {integrity: sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.57.1': - resolution: {integrity: sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-loong64-gnu@4.57.1': - resolution: {integrity: sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==} - cpu: [loong64] - os: [linux] - - '@rollup/rollup-linux-loong64-musl@4.57.1': - resolution: {integrity: sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==} - cpu: [loong64] - os: [linux] - - '@rollup/rollup-linux-ppc64-gnu@4.57.1': - resolution: {integrity: sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-ppc64-musl@4.57.1': - resolution: {integrity: sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.57.1': - resolution: {integrity: sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-riscv64-musl@4.57.1': - resolution: {integrity: sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.57.1': - resolution: {integrity: sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.57.1': - resolution: {integrity: sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.57.1': - resolution: {integrity: sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-openbsd-x64@4.57.1': - resolution: {integrity: sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==} - cpu: [x64] - os: [openbsd] - - '@rollup/rollup-openharmony-arm64@4.57.1': - resolution: {integrity: sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==} - cpu: [arm64] - os: [openharmony] - - '@rollup/rollup-win32-arm64-msvc@4.57.1': - resolution: {integrity: sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.57.1': - resolution: {integrity: sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-gnu@4.57.1': - resolution: {integrity: sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==} - cpu: [x64] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.57.1': - resolution: {integrity: sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==} - cpu: [x64] - os: [win32] - - '@shikijs/core@3.22.0': - resolution: {integrity: sha512-iAlTtSDDbJiRpvgL5ugKEATDtHdUVkqgHDm/gbD2ZS9c88mx7G1zSYjjOxp5Qa0eaW0MAQosFRmJSk354PRoQA==} - - '@shikijs/engine-javascript@3.22.0': - resolution: {integrity: sha512-jdKhfgW9CRtj3Tor0L7+yPwdG3CgP7W+ZEqSsojrMzCjD1e0IxIbwUMDDpYlVBlC08TACg4puwFGkZfLS+56Tw==} - - '@shikijs/engine-oniguruma@3.22.0': - resolution: {integrity: sha512-DyXsOG0vGtNtl7ygvabHd7Mt5EY8gCNqR9Y7Lpbbd/PbJvgWrqaKzH1JW6H6qFkuUa8aCxoiYVv8/YfFljiQxA==} - - '@shikijs/langs@3.22.0': - resolution: {integrity: sha512-x/42TfhWmp6H00T6uwVrdTJGKgNdFbrEdhaDwSR5fd5zhQ1Q46bHq9EO61SCEWJR0HY7z2HNDMaBZp8JRmKiIA==} - - '@shikijs/themes@3.22.0': - resolution: {integrity: sha512-o+tlOKqsr6FE4+mYJG08tfCFDS+3CG20HbldXeVoyP+cYSUxDhrFf3GPjE60U55iOkkjbpY2uC3It/eeja35/g==} - - '@shikijs/types@3.22.0': - resolution: {integrity: sha512-491iAekgKDBFE67z70Ok5a8KBMsQ2IJwOWw3us/7ffQkIBCyOQfm/aNwVMBUriP02QshIfgHCBSIYAl3u2eWjg==} - - '@shikijs/vscode-textmate@10.0.2': - resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} - - '@surma/rollup-plugin-off-main-thread@2.2.3': - resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} - - '@sveltejs/acorn-typescript@1.0.8': - resolution: {integrity: sha512-esgN+54+q0NjB0Y/4BomT9samII7jGwNy/2a3wNZbT2A2RpmXsXwUt24LvLhx6jUq2gVk4cWEvcRO6MFQbOfNA==} - peerDependencies: - acorn: ^8.9.0 - - '@sveltejs/vite-plugin-svelte-inspector@4.0.1': - resolution: {integrity: sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22} - peerDependencies: - '@sveltejs/vite-plugin-svelte': ^5.0.0 - svelte: ^5.0.0 - vite: ^6.0.0 - - '@sveltejs/vite-plugin-svelte@5.1.1': - resolution: {integrity: sha512-Y1Cs7hhTc+a5E9Va/xwKlAJoariQyHY+5zBgCZg4PFWNYQ1nMN9sjK1zhw1gK69DuqVP++sht/1GZg1aRwmAXQ==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22} - peerDependencies: - svelte: ^5.0.0 - vite: ^6.0.0 - - '@swc/helpers@0.5.18': - resolution: {integrity: sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ==} - - '@swup/a11y-plugin@5.0.0': - resolution: {integrity: sha512-t0pVWAVea+Imjj05n9QMPfqZhw9i5rx7BV/l3Ejeic+X3Qs0VZwVvEJIcdqireCVJgAJGZAPlmgbiuaj5UHJaQ==} - peerDependencies: - swup: ^4.0.0 - - '@swup/astro@1.7.0': - resolution: {integrity: sha512-OxZskzeYkEZ4+McbwJKyD018sHNlrKQLdtHzlmNjivrzQY/dB7ncnWqDs3d4IkA7Y+ydNjpwBqpR/asjDhTiag==} - - '@swup/body-class-plugin@3.3.0': - resolution: {integrity: sha512-4h/6mAgDd0+ml8Gc2kX8tikIR0HZZLF+WTnfm0JTVrGDw74bgEBenbsaWFfIS+gn4RWKZdWBUOfaZ+Im5J7Gvw==} - peerDependencies: - swup: ^4.6.0 - - '@swup/browserslist-config@1.0.1': - resolution: {integrity: sha512-/3nBqG7LqmK1uqaCSTA6s2NwQBDQXNyLAFBzlX6uaxqjIQcAZyq6K+sgcQ40oj02Vn/2mLSkeL9DOfP7BPOwVA==} - - '@swup/debug-plugin@4.1.0': - resolution: {integrity: sha512-R+RP4hjoeXrO+wowSswaTM4P05lu6iDg6UwdbQn0wfJ082KiUpH+DDwHYNOatxusKVExFuhLec+X9IbyAyiv8w==} - peerDependencies: - swup: ^4.0.0 - - '@swup/fade-theme@2.0.2': - resolution: {integrity: sha512-x2XLIzAk8akrmVkozrlv0cU8wWnzt8MC164F1801qdffzY7mOi1v2mHl5Db9pqrP3BZ4UqC+5683/hQJ4obYEA==} - peerDependencies: - swup: ^4.0.0 - - '@swup/forms-plugin@3.6.0': - resolution: {integrity: sha512-pRN6OR5wR27LvJqQOlCgu1fP9Z0ZsGauxWOE6nRCtjP1+98wlGTMiMsQ+jGvvs+IOK9IDTJQ7jvprnJAZaw9zw==} - peerDependencies: - swup: ^4.6.0 - - '@swup/fragment-plugin@1.2.0': - resolution: {integrity: sha512-pn8NsIlvM3xYn4XCWOp3T9m5jEjt2dszSqiZUQmf1/77b/K8o/zes2RFjpZOwJiB8TtcuMvnXCml3cZuSA2J4w==} - peerDependencies: - swup: ^4.6.0 - - '@swup/head-plugin@2.3.1': - resolution: {integrity: sha512-kdv60fO9c0/3+K40f7Fj/uV34nSuuPeCsld83J5uVVFizOmoovA737C5M1Iqac5Spf2GLU7q+mhN6AbohSIBjA==} - peerDependencies: - swup: ^4.6.0 - - '@swup/overlay-theme@2.0.2': - resolution: {integrity: sha512-nfk5jrEru0lbFzlOzkT/f77sUwVHM/iUzlPMAT/KkWecn4/YuT4Y+lgIY3Se9VtD8TbSFrXYoHJea4GMZPJRAg==} - peerDependencies: - swup: ^4.0.0 - - '@swup/parallel-plugin@0.4.0': - resolution: {integrity: sha512-un37RpdFz2vuJV1r9Hr0nCl5qgloN/Z3SczC3wi1XfkiHtzZ8kFTcm5pIW5rUkDVwtCTil44mlAA/STouBEgDw==} - peerDependencies: - swup: ^4.6.0 - - '@swup/plugin@3.0.1': - resolution: {integrity: sha512-A9yiJeKTmQ9kac2Eo3MbMWW+Tiw23W5OSzAHVTCfW6n5zze6dexY3FLEUSDTcvRgciknvXfMZ9JTnebbvCKKWw==} - hasBin: true - - '@swup/plugin@4.0.0': - resolution: {integrity: sha512-3Kq31BJxnzoPg643YxGoWQggoU6VPKZpdE5CqqmP7wwkpCYTzkRmrfcQ29mGhsSS7xfS7D33iZoBiwY+wPoo2A==} - - '@swup/preload-plugin@3.2.11': - resolution: {integrity: sha512-dq50u+d8L+63/pU6dUDnypuBoF49ubjRzRJqitGem2K7wRn7xccxRSvdyeGKdA2vNvzGDAmLfwVTZdSotvvDrw==} - peerDependencies: - swup: ^4.0.0 - - '@swup/prettier-config@1.1.0': - resolution: {integrity: sha512-EF4DMdIGieEsuY2XK0PuLf7Uw7yUQOMbA6IdCMvvRvKXj03WLLpnNIFfFp+6hmMtXRSUE88VBpRyp6Giiu1Pbg==} - - '@swup/progress-plugin@3.2.0': - resolution: {integrity: sha512-Ur+D4+aee9swR6pn7JbEyGMwVP1BTcN5ygjlno7IaSQ/vMZbuJ73po1RkKlIi86p+/PZ+1kynkH4K4eMZuHKKg==} - peerDependencies: - swup: ^4.0.0 - - '@swup/route-name-plugin@4.1.0': - resolution: {integrity: sha512-1tw3WeExEKwI3pVMXTptCGxFUDOSEpc63D741eeUCjjGW/f9q7ekuqEaPQd5YJ6POpzDjdt1jjuC9yv54CbeXA==} - peerDependencies: - swup: ^4.0.0 - - '@swup/scripts-plugin@2.1.0': - resolution: {integrity: sha512-JSMFsFCN9gn4q3m1Ccv0gq3gwRoZl6UGALOQO3OeQ8wOIq9vPC5dcUD3CMBuaPanksjR4GC8ZoukIjHrlT52fg==} - peerDependencies: - swup: ^4.2.0 - - '@swup/scroll-plugin@3.3.2': - resolution: {integrity: sha512-jwngTz8LZza8p7ZWqaqQIzkH8x4hwyPh8RbrJSwTKussx24YUQuV9sgjDCzvJ16k/aYk9NCCvqLbb+4TcT3jqA==} - peerDependencies: - swup: ^4.2.0 - - '@swup/slide-theme@2.0.2': - resolution: {integrity: sha512-CLFD+Nd/wIDLMOfg7D7sOX2d1AyhZsoLXT+G6xB4ARELaP1j+nQGDjyuRvgAESMW+GA1EL43y/BcXOAKTjzrsg==} - peerDependencies: - swup: ^4.0.0 - - '@swup/theme@2.1.0': - resolution: {integrity: sha512-nwAzx+GYySIYs6uSCFYGNdpLWv2z/mEryRD1gvmIqsaSP2N7sVd4mKAboraJAzIzbasRhTsTQzyN1LfLeti3AA==} - peerDependencies: - swup: ^4.0.0 - - '@tailwindcss/typography@0.5.19': - resolution: {integrity: sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==} - peerDependencies: - tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' - - '@trysound/sax@0.2.0': - resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} - engines: {node: '>=10.13.0'} - - '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - - '@types/estree@0.0.39': - resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} - - '@types/estree@1.0.8': - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - - '@types/fontkit@2.0.8': - resolution: {integrity: sha512-wN+8bYxIpJf+5oZdrdtaX04qUuWHcKxcDEgRS9Qm9ZClSHjzEn13SxUC+5eRM+4yXIeTYk8mTzLAWGF64847ew==} - - '@types/hast@2.3.10': - resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} - - '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - - '@types/katex@0.16.8': - resolution: {integrity: sha512-trgaNyfU+Xh2Tc+ABIb44a5AYUpicB3uwirOioeOkNPPbmgRNtcWyDeeFRzjPZENO9Vq8gvVqfhaaXWLlevVwg==} - - '@types/linkify-it@5.0.0': - resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} - - '@types/markdown-it@14.1.2': - resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} - - '@types/mdast@4.0.4': - resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - - '@types/mdurl@2.0.0': - resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} - - '@types/ms@2.1.0': - resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - - '@types/nlcst@2.0.3': - resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} - - '@types/node@17.0.45': - resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - - '@types/node@25.2.0': - resolution: {integrity: sha512-DZ8VwRFUNzuqJ5khrvwMXHmvPe+zGayJhr2CDNiKB1WBE1ST8Djl00D0IC4vvNmHMdj6DlbYRIaFE7WHjlDl5w==} - - '@types/parse-json@4.0.2': - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - - '@types/resolve@1.17.1': - resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} - - '@types/sanitize-html@2.16.0': - resolution: {integrity: sha512-l6rX1MUXje5ztPT0cAFtUayXF06DqPhRyfVXareEN5gGCFaP/iwsxIyKODr9XDhfxPpN6vXUFNfo5kZMXCxBtw==} - - '@types/sax@1.2.7': - resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} - - '@types/unist@2.0.11': - resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} - - '@types/unist@3.0.3': - resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - - '@types/yauzl@2.10.3': - resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - - '@ungap/structured-clone@1.3.0': - resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - - '@vercel/analytics@1.6.1': - resolution: {integrity: sha512-oH9He/bEM+6oKlv3chWuOOcp8Y6fo6/PSro8hEkgCW3pu9/OiCXiUpRUogDh3Fs3LH2sosDrx8CxeOLBEE+afg==} - peerDependencies: - '@remix-run/react': ^2 - '@sveltejs/kit': ^1 || ^2 - next: '>= 13' - react: ^18 || ^19 || ^19.0.0-rc - svelte: '>= 4' - vue: ^3 - vue-router: ^4 - peerDependenciesMeta: - '@remix-run/react': - optional: true - '@sveltejs/kit': - optional: true - next: - optional: true - react: - optional: true - svelte: - optional: true - vue: - optional: true - vue-router: - optional: true - - '@vercel/functions@2.2.13': - resolution: {integrity: sha512-14ArBSIIcOBx9nrEgaJb4Bw+en1gl6eSoJWh8qjifLl5G3E4dRXCFOT8HP+w66vb9Wqyd1lAQBrmRhRwOj9X9A==} - engines: {node: '>= 18'} - peerDependencies: - '@aws-sdk/credential-provider-web-identity': '*' - peerDependenciesMeta: - '@aws-sdk/credential-provider-web-identity': - optional: true - - '@vercel/nft@0.30.3': - resolution: {integrity: sha512-UEq+eF0ocEf9WQCV1gktxKhha36KDs7jln5qii6UpPf5clMqDc0p3E7d9l2Smx0i9Pm1qpq4S4lLfNl97bbv6w==} - engines: {node: '>=18'} - hasBin: true - - '@vercel/oidc@2.0.2': - resolution: {integrity: sha512-59PBFx3T+k5hLTEWa3ggiMpGRz1OVvl9eN8SUai+A43IsqiOuAe7qPBf+cray/Fj6mkgnxm/D7IAtjc8zSHi7g==} - engines: {node: '>= 18'} - - '@vercel/routing-utils@5.3.2': - resolution: {integrity: sha512-OKKhHKAON4vcwuPQvtxFRv7Ney0IGlp9CTsScKGbUsYYutRValK2GVdj7y4RRqm7RgzhuUMT/fSoK0ENKwrx9A==} - - '@volar/kit@2.4.28': - resolution: {integrity: sha512-cKX4vK9dtZvDRaAzeoUdaAJEew6IdxHNCRrdp5Kvcl6zZOqb6jTOfk3kXkIkG3T7oTFXguEMt5+9ptyqYR84Pg==} - peerDependencies: - typescript: '*' - - '@volar/language-core@2.4.28': - resolution: {integrity: sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==} - - '@volar/language-server@2.4.28': - resolution: {integrity: sha512-NqcLnE5gERKuS4PUFwlhMxf6vqYo7hXtbMFbViXcbVkbZ905AIVWhnSo0ZNBC2V127H1/2zP7RvVOVnyITFfBw==} - - '@volar/language-service@2.4.28': - resolution: {integrity: sha512-Rh/wYCZJrI5vCwMk9xyw/Z+MsWxlJY1rmMZPsxUoJKfzIRjS/NF1NmnuEcrMbEVGja00aVpCsInJfixQTMdvLw==} - - '@volar/source-map@2.4.28': - resolution: {integrity: sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==} - - '@volar/typescript@2.4.28': - resolution: {integrity: sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==} - - '@vscode/emmet-helper@2.11.0': - resolution: {integrity: sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw==} - - '@vscode/l10n@0.0.18': - resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} - - abbrev@3.0.1: - resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} - engines: {node: ^18.17.0 || >=20.5.0} - - acorn-import-attributes@1.9.5: - resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} - peerDependencies: - acorn: ^8 - - acorn@8.15.0: - resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} - engines: {node: '>=0.4.0'} - hasBin: true - - agent-base@7.1.4: - resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} - engines: {node: '>= 14'} - - ajv-draft-04@1.0.0: - resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} - peerDependencies: - ajv: ^8.5.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ajv@8.17.1: - resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - - ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} - - ansi-regex@2.1.1: - resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} - engines: {node: '>=0.10.0'} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-regex@6.2.2: - resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} - engines: {node: '>=12'} - - ansi-styles@2.2.1: - resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} - engines: {node: '>=0.10.0'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - ansi-styles@6.2.3: - resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} - engines: {node: '>=12'} - - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - aria-query@5.3.2: - resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} - engines: {node: '>= 0.4'} - - array-buffer-byte-length@1.0.2: - resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} - engines: {node: '>= 0.4'} - - array-iterate@2.0.1: - resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} - - arraybuffer.prototype.slice@1.0.4: - resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} - engines: {node: '>= 0.4'} - - astro-expressive-code@0.41.6: - resolution: {integrity: sha512-l47tb1uhmVIebHUkw+HEPtU/av0G4O8Q34g2cbkPvC7/e9ZhANcjUUciKt9Hp6gSVDdIuXBBLwJQn2LkeGMOAw==} - peerDependencies: - astro: ^4.0.0-beta || ^5.0.0-beta || ^3.3.0 || ^6.0.0-beta - - astro-icon@1.1.5: - resolution: {integrity: sha512-CJYS5nWOw9jz4RpGWmzNQY7D0y2ZZacH7atL2K9DeJXJVaz7/5WrxeyIxO8KASk1jCM96Q4LjRx/F3R+InjJrw==} - - astro@5.13.7: - resolution: {integrity: sha512-Of2tST7ErbE4y1dVb4aWDXaQSIRBAfraJ4jDqaA3PzPRJOn6Ina36+tQ+8BezjYqiWwRRJdOEE07PRAJXnsddw==} - engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} - hasBin: true - - async-function@1.0.0: - resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} - engines: {node: '>= 0.4'} - - async-sema@3.1.1: - resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} - - async@3.2.6: - resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} - - asyncro@3.0.0: - resolution: {integrity: sha512-nEnWYfrBmA3taTiuiOoZYmgJ/CNrSoQLeLs29SeLcPu60yaw/mHDBHV0iOZ051fTvsTHxpCY+gXibqT9wbQYfg==} - - atob@2.1.2: - resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} - engines: {node: '>= 4.5.0'} - hasBin: true - - autoprefixer@10.4.24: - resolution: {integrity: sha512-uHZg7N9ULTVbutaIsDRoUkoS8/h3bdsmVJYZ5l3wv8Cp/6UIIoRDm90hZ+BwxUj/hGBEzLxdHNSKuFpn8WOyZw==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - - axobject-query@4.1.0: - resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} - engines: {node: '>= 0.4'} - - babel-plugin-macros@3.1.0: - resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} - engines: {node: '>=10', npm: '>=6'} - - babel-plugin-polyfill-corejs2@0.4.15: - resolution: {integrity: sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-corejs3@0.14.0: - resolution: {integrity: sha512-AvDcMxJ34W4Wgy4KBIIePQTAOP1Ie2WFwkQp3dB7FQ/f0lI5+nM96zUnYEOE1P9sEg0es5VCP0HxiWu5fUHZAQ==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-regenerator@0.6.6: - resolution: {integrity: sha512-hYm+XLYRMvupxiQzrvXUj7YyvFFVfv5gI0R71AJzudg1g2AI2vyCPPIFEBjk162/wFzti3inBHo7isWFuEVS/A==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-transform-async-to-promises@0.8.18: - resolution: {integrity: sha512-WpOrF76nUHijnNn10eBGOHZmXQC8JYRME9rOLxStOga7Av2VO53ehVFvVNImMksVtQuL2/7ZNxEgxnx7oo/3Hw==} - - babel-plugin-transform-replace-expressions@0.2.0: - resolution: {integrity: sha512-Eh1rRd9hWEYgkgoA3D0kGp7xJ/wgVshgsqmq60iC4HVWD+Lux+fNHSHBa2v1Hsv+dHflShC71qKhiH40OiPtDA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - base-64@1.0.0: - resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} - - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - baseline-browser-mapping@2.9.19: - resolution: {integrity: sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==} - hasBin: true - - bcp-47-match@2.0.3: - resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==} - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - - bindings@1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - - blob-to-buffer@1.2.9: - resolution: {integrity: sha512-BF033y5fN6OCofD3vgHmNtwZWRcq9NLyyxyILx9hfMy1sXYy4ojFl765hJ2lP0YaN2fuxPaLO2Vzzoxy0FLFFA==} - - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - - boxen@8.0.1: - resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} - engines: {node: '>=18'} - - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - - brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - brotli-size@4.0.0: - resolution: {integrity: sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA==} - engines: {node: '>= 10.16.0'} - - brotli@1.3.3: - resolution: {integrity: sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==} - - browserslist@4.28.1: - resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - - call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} - - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} - engines: {node: '>= 0.4'} - - call-bound@1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} - engines: {node: '>= 0.4'} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - - camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - - camelcase@8.0.0: - resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} - engines: {node: '>=16'} - - caniuse-api@3.0.0: - resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - - caniuse-lite@1.0.30001767: - resolution: {integrity: sha512-34+zUAMhSH+r+9eKmYG+k2Rpt8XttfE4yXAjoZvkAPs15xcYQhyBYdalJ65BzivAvGRMViEjy6oKr/S91loekQ==} - - ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - - chalk@1.1.3: - resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} - engines: {node: '>=0.10.0'} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - chalk@5.6.2: - resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - - character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - - character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - - character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - - character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - - cheerio-select@2.1.0: - resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} - - cheerio@1.2.0: - resolution: {integrity: sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==} - engines: {node: '>=20.18.1'} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - chokidar@4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} - engines: {node: '>= 14.16.0'} - - chokidar@5.0.0: - resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} - engines: {node: '>= 20.19.0'} - - chownr@3.0.0: - resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} - engines: {node: '>=18'} - - ci-info@4.4.0: - resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} - engines: {node: '>=8'} - - cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} - - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - - clone@2.1.2: - resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} - engines: {node: '>=0.8'} - - clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - colord@2.9.3: - resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} - - comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - - commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - - commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} - - commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - - common-ancestor-path@1.0.1: - resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} - - commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - concat-with-sourcemaps@1.1.0: - resolution: {integrity: sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==} - - confbox@0.1.8: - resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - - confbox@0.2.2: - resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} - - consola@3.4.2: - resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} - engines: {node: ^14.18.0 || >=16.10.0} - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - cookie-es@1.2.2: - resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} - - cookie@1.1.1: - resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} - engines: {node: '>=18'} - - core-js-compat@3.48.0: - resolution: {integrity: sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q==} - - cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} - - cross-fetch@3.2.0: - resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} - - cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} - - crossws@0.3.5: - resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} - - css-declaration-sorter@6.4.1: - resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} - engines: {node: ^10 || ^12 || >=14} - peerDependencies: - postcss: ^8.0.9 - - css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} - - css-select@5.2.2: - resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} - - css-selector-parser@3.3.0: - resolution: {integrity: sha512-Y2asgMGFqJKF4fq4xHDSlFYIkeVfRsm69lQC1q9kbEsH5XtnINTMrweLkjYMeaUgiXBy/uvKeO/a1JHTNnmB2g==} - - css-tree@1.1.3: - resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} - engines: {node: '>=8.0.0'} - - css-tree@2.2.1: - resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - - css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - - css-tree@3.1.0: - resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - - css-what@6.2.2: - resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} - engines: {node: '>= 6'} - - css@3.0.0: - resolution: {integrity: sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==} - - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - - cssnano-preset-default@5.2.14: - resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - cssnano-utils@3.1.0: - resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - cssnano@5.1.15: - resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - csso@4.2.0: - resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} - engines: {node: '>=8.0.0'} - - csso@5.0.5: - resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - - data-view-buffer@1.0.2: - resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} - engines: {node: '>= 0.4'} - - data-view-byte-length@1.0.2: - resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} - engines: {node: '>= 0.4'} - - data-view-byte-offset@1.0.1: - resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} - engines: {node: '>= 0.4'} - - debug@4.4.3: - resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - decode-named-character-reference@1.3.0: - resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} - - decode-uri-component@0.2.2: - resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} - engines: {node: '>=0.10'} - - dedent-js@1.0.1: - resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} - - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - - defu@6.1.4: - resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} - - delegate-it@6.3.0: - resolution: {integrity: sha512-WAa6cA61M5mfDR31PBgMNQQ3LY1q++TxnZzcm7E9XV8ODBPxDutxH0toTR/BXqIkLaVuU7ntFe1uOqDllhA22A==} - - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - - destr@2.0.5: - resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} - - detect-libc@2.1.2: - resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} - engines: {node: '>=8'} - - deterministic-object-hash@2.0.2: - resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} - engines: {node: '>=18'} - - devalue@5.6.2: - resolution: {integrity: sha512-nPRkjWzzDQlsejL1WVifk5rvcFi/y1onBRxjaFMjZeR9mFpqu2gmAZ9xUB9/IEanEP/vBtGeGganC/GO1fmufg==} - - devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - - dfa@1.2.0: - resolution: {integrity: sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==} - - didyoumean@1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - - diff@5.2.2: - resolution: {integrity: sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==} - engines: {node: '>=0.3.1'} - - direction@2.0.1: - resolution: {integrity: sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==} - hasBin: true - - dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - - dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} - - dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - - domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - - domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} - - domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} - - domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} - - domutils@3.2.2: - resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} - - dset@3.1.4: - resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} - engines: {node: '>=4'} - - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - - duplexer@0.1.1: - resolution: {integrity: sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q==} - - duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - ejs@3.1.10: - resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} - engines: {node: '>=0.10.0'} - hasBin: true - - electron-to-chromium@1.5.286: - resolution: {integrity: sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==} - - emmet@2.4.11: - resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==} - - emoji-regex@10.6.0: - resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - - encoding-sniffer@0.2.1: - resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==} - - end-of-stream@1.4.5: - resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} - - entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - - entities@6.0.1: - resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} - engines: {node: '>=0.12'} - - entities@7.0.1: - resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} - engines: {node: '>=0.12'} - - error-ex@1.3.4: - resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} - - es-abstract@1.24.1: - resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==} - engines: {node: '>= 0.4'} - - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - es-module-lexer@1.7.0: - resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} - - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} - - es-set-tostringtag@2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} - - es-to-primitive@1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} - engines: {node: '>= 0.4'} - - esbuild@0.25.12: - resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} - engines: {node: '>=18'} - hasBin: true - - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - - esm-env@1.2.2: - resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==} - - esrap@2.2.2: - resolution: {integrity: sha512-zA6497ha+qKvoWIK+WM9NAh5ni17sKZKhbS5B3PoYbBvaYHZWoS33zmFybmyqpn07RLUxSmn+RCls2/XF+d0oQ==} - - estree-walker@0.6.1: - resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} - - estree-walker@1.0.1: - resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} - - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - - eventemitter3@5.0.4: - resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} - - expressive-code@0.41.6: - resolution: {integrity: sha512-W/5+IQbrpCIM5KGLjO35wlp1NCwDOOVQb+PAvzEoGkW1xjGM807ZGfBKptNWH6UECvt6qgmLyWolCMYKh7eQmA==} - - exsolve@1.0.8: - resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} - - extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - - extract-zip@2.0.1: - resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} - engines: {node: '>= 10.17.0'} - hasBin: true - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-uri@3.1.0: - resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} - - fast-xml-parser@5.3.4: - resolution: {integrity: sha512-EFd6afGmXlCx8H8WTZHhAoDaWaGyuIBoZJ2mknrNxug+aZKjkp0a0dlars9Izl+jF+7Gu1/5f/2h68cQpe0IiA==} - hasBin: true - - fastq@1.20.1: - resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} - - fd-slicer@1.1.0: - resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} - - fdir@6.5.0: - resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} - engines: {node: '>=12.0.0'} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - - figures@1.7.0: - resolution: {integrity: sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==} - engines: {node: '>=0.10.0'} - - file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - - filelist@1.0.4: - resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} - - filesize@6.4.0: - resolution: {integrity: sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==} - engines: {node: '>= 0.4.0'} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - find-cache-dir@3.3.2: - resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} - engines: {node: '>=8'} - - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - - flattie@1.1.1: - resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} - engines: {node: '>=8'} - - focus-options-polyfill@1.6.0: - resolution: {integrity: sha512-uyrAmLZrPnUItQY5wTdg31TO9GGZRGsh/jmohUg9oLmLi/sw5y7LlTV/mwyd6rvbxIOGwmRiv6LcTS8w7Bk9NQ==} - - fontace@0.3.1: - resolution: {integrity: sha512-9f5g4feWT1jWT8+SbL85aLIRLIXUaDygaM2xPXRmzPYxrOMNok79Lr3FGJoKVNKibE0WCunNiEVG2mwuE+2qEg==} - - fontkit@2.0.4: - resolution: {integrity: sha512-syetQadaUEDNdxdugga9CpEYVaQIxOwk7GlwZWWZ19//qW4zE5bknOKeMBDYAASwnpaSHKJITRLMF9m1fp3s6g==} - - for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} - - foreground-child@3.3.1: - resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} - engines: {node: '>=14'} - - fraction.js@5.3.4: - resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} - - fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - function.prototype.name@1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} - engines: {node: '>= 0.4'} - - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - - generator-function@2.0.1: - resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} - engines: {node: '>= 0.4'} - - generic-names@4.0.0: - resolution: {integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==} - - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - get-east-asian-width@1.4.0: - resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} - engines: {node: '>=18'} - - get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} - - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - - get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - - get-symbol-description@1.1.0: - resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} - engines: {node: '>= 0.4'} - - github-slugger@2.0.0: - resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob@10.5.0: - resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} - deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - hasBin: true - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - - globals@15.15.0: - resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} - engines: {node: '>=18'} - - globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} - - globalyzer@0.1.0: - resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} - - globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - gzip-size@3.0.0: - resolution: {integrity: sha512-6s8trQiK+OMzSaCSVXX+iqIcLV9tC+E73jrJrJTyS4h/AJhlxHvzFKqM1YLDJWRGgHX8uLkBeXkA0njNj39L4w==} - engines: {node: '>=0.12.0'} - - gzip-size@6.0.0: - resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} - engines: {node: '>=10'} - - h3@1.15.5: - resolution: {integrity: sha512-xEyq3rSl+dhGX2Lm0+eFQIAzlDN6Fs0EcC4f7BNUmzaRX/PTzeuM+Tr2lHB8FoXggsQIeXLj8EDVgs5ywxyxmg==} - - has-ansi@2.0.0: - resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} - engines: {node: '>=0.10.0'} - - has-bigints@1.1.0: - resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} - engines: {node: '>= 0.4'} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-proto@1.2.0: - resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} - engines: {node: '>= 0.4'} - - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - hast-util-from-dom@5.0.1: - resolution: {integrity: sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==} - - hast-util-from-html-isomorphic@2.0.0: - resolution: {integrity: sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==} - - hast-util-from-html@2.0.3: - resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} - - hast-util-from-parse5@8.0.3: - resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} - - hast-util-has-property@3.0.0: - resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} - - hast-util-heading-rank@3.0.0: - resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} - - hast-util-is-element@3.0.0: - resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} - - hast-util-parse-selector@3.1.1: - resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==} - - hast-util-parse-selector@4.0.0: - resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} - - hast-util-raw@9.1.0: - resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==} - - hast-util-select@6.0.4: - resolution: {integrity: sha512-RqGS1ZgI0MwxLaKLDxjprynNzINEkRHY2i8ln4DDjgv9ZhcYVIHN9rlpiYsqtFwrgpYU361SyWDQcGNIBVu3lw==} - - hast-util-to-html@9.0.5: - resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} - - hast-util-to-parse5@8.0.1: - resolution: {integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==} - - hast-util-to-string@3.0.1: - resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} - - hast-util-to-text@4.0.2: - resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} - - hast-util-whitespace@3.0.0: - resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - - hastscript@7.2.0: - resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==} - - hastscript@9.0.1: - resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} - - html-escaper@3.0.3: - resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} - - html-void-elements@3.0.0: - resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - - htmlparser2@10.1.0: - resolution: {integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==} - - htmlparser2@8.0.2: - resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} - - http-cache-semantics@4.2.0: - resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} - - https-proxy-agent@7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} - engines: {node: '>= 14'} - - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - - icss-replace-symbols@1.1.0: - resolution: {integrity: sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==} - - icss-utils@5.1.0: - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - import-cwd@3.0.0: - resolution: {integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==} - engines: {node: '>=8'} - - import-fresh@3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} - engines: {node: '>=6'} - - import-from@3.0.0: - resolution: {integrity: sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==} - engines: {node: '>=8'} - - import-meta-resolve@4.2.0: - resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - internal-slot@1.1.0: - resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} - engines: {node: '>= 0.4'} - - interpret@1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} - - iron-webcrypto@1.2.1: - resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} - - is-absolute-url@4.0.1: - resolution: {integrity: sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - - is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - - is-array-buffer@3.0.5: - resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} - engines: {node: '>= 0.4'} - - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - is-async-function@2.1.1: - resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} - engines: {node: '>= 0.4'} - - is-bigint@1.1.0: - resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} - engines: {node: '>= 0.4'} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-boolean-object@1.2.2: - resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} - engines: {node: '>= 0.4'} - - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} - - is-data-view@1.0.2: - resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} - engines: {node: '>= 0.4'} - - is-date-object@1.1.0: - resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} - engines: {node: '>= 0.4'} - - is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - - is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-finalizationregistry@1.1.1: - resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} - engines: {node: '>= 0.4'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-generator-function@1.1.2: - resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} - engines: {node: '>= 0.4'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - - is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true - - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - - is-module@1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} - - is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - - is-number-object@1.1.1: - resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} - engines: {node: '>= 0.4'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} - - is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} - - is-reference@1.2.1: - resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} - - is-reference@3.0.3: - resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} - - is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} - engines: {node: '>= 0.4'} - - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - - is-shared-array-buffer@1.0.4: - resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} - engines: {node: '>= 0.4'} - - is-string@1.1.1: - resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} - engines: {node: '>= 0.4'} - - is-symbol@1.1.1: - resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} - engines: {node: '>= 0.4'} - - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} - - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - - is-weakref@1.1.1: - resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} - engines: {node: '>= 0.4'} - - is-weakset@2.0.4: - resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} - engines: {node: '>= 0.4'} - - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - - is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} - engines: {node: '>=16'} - - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - - jake@10.9.4: - resolution: {integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==} - engines: {node: '>=10'} - hasBin: true - - jest-worker@26.6.2: - resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} - engines: {node: '>= 10.13.0'} - - jiti@1.21.7: - resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} - hasBin: true - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-yaml@4.1.1: - resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} - hasBin: true - - jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true - - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - jsonc-parser@2.3.1: - resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} - - jsonc-parser@3.3.1: - resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} - - jsonfile@6.2.0: - resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} - - katex@0.16.28: - resolution: {integrity: sha512-YHzO7721WbmAL6Ov1uzN/l5mY5WWWhJBSW+jq4tkfZfsxmo1hu6frS0EOswvjBUnWE6NtjEs48SFn5CQESRLZg==} - hasBin: true - - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - - kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - - kolorist@1.8.0: - resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} - - lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} - - lilconfig@3.1.3: - resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} - engines: {node: '>=14'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - linkify-it@5.0.0: - resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} - - loader-utils@3.3.1: - resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==} - engines: {node: '>= 12.13.0'} - - local-pkg@1.1.2: - resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==} - engines: {node: '>=14'} - - locate-character@3.0.0: - resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} - - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - - lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - - lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - - lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - - lru-cache@11.2.5: - resolution: {integrity: sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==} - engines: {node: 20 || >=22} - - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - - magic-string@0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - - magic-string@0.30.21: - resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} - - magicast@0.3.5: - resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} - - make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - - markdown-it@14.1.0: - resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} - hasBin: true - - markdown-table@3.0.4: - resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} - - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - - maxmin@2.1.0: - resolution: {integrity: sha512-NWlApBjW9az9qRPaeg7CX4sQBWwytqz32bIEo1PW9pRW+kBP9KLRfJO3UC+TV31EcQZEUq7eMzikC7zt3zPJcw==} - engines: {node: '>=0.12'} - - mdast-util-definitions@6.0.0: - resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} - - mdast-util-directive@3.1.0: - resolution: {integrity: sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==} - - mdast-util-find-and-replace@3.0.2: - resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} - - mdast-util-from-markdown@2.0.2: - resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} - - mdast-util-gfm-autolink-literal@2.0.1: - resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} - - mdast-util-gfm-footnote@2.1.0: - resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} - - mdast-util-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} - - mdast-util-gfm-table@2.0.0: - resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} - - mdast-util-gfm-task-list-item@2.0.0: - resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} - - mdast-util-gfm@3.1.0: - resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} - - mdast-util-math@3.0.0: - resolution: {integrity: sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==} - - mdast-util-phrasing@4.1.0: - resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - - mdast-util-to-hast@13.2.1: - resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} - - mdast-util-to-markdown@2.1.2: - resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} - - mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - - mdn-data@2.0.14: - resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} - - mdn-data@2.0.28: - resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} - - mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - - mdn-data@2.12.2: - resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} - - mdurl@2.0.0: - resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - microbundle@0.15.1: - resolution: {integrity: sha512-aAF+nwFbkSIJGfrJk+HyzmJOq3KFaimH6OIFBU6J2DPjQeg1jXIYlIyEv81Gyisb9moUkudn+wj7zLNYMOv75Q==} - hasBin: true - - micromark-core-commonmark@2.0.3: - resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} - - micromark-extension-directive@3.0.2: - resolution: {integrity: sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==} - - micromark-extension-gfm-autolink-literal@2.1.0: - resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} - - micromark-extension-gfm-footnote@2.1.0: - resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} - - micromark-extension-gfm-strikethrough@2.1.0: - resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} - - micromark-extension-gfm-table@2.1.1: - resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} - - micromark-extension-gfm-tagfilter@2.0.0: - resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} - - micromark-extension-gfm-task-list-item@2.1.0: - resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} - - micromark-extension-gfm@3.0.0: - resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} - - micromark-extension-math@3.1.0: - resolution: {integrity: sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==} - - micromark-factory-destination@2.0.1: - resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} - - micromark-factory-label@2.0.1: - resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} - - micromark-factory-space@2.0.1: - resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} - - micromark-factory-title@2.0.1: - resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} - - micromark-factory-whitespace@2.0.1: - resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} - - micromark-util-character@2.1.1: - resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} - - micromark-util-chunked@2.0.1: - resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} - - micromark-util-classify-character@2.0.1: - resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} - - micromark-util-combine-extensions@2.0.1: - resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} - - micromark-util-decode-numeric-character-reference@2.0.2: - resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} - - micromark-util-decode-string@2.0.1: - resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} - - micromark-util-encode@2.0.1: - resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} - - micromark-util-html-tag-name@2.0.1: - resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} - - micromark-util-normalize-identifier@2.0.1: - resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} - - micromark-util-resolve-all@2.0.1: - resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} - - micromark-util-sanitize-uri@2.0.1: - resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} - - micromark-util-subtokenize@2.1.0: - resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} - - micromark-util-symbol@2.0.1: - resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} - - micromark-util-types@2.0.2: - resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} - - micromark@4.0.2: - resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} - - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} - - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} - - minizlib@3.1.0: - resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} - engines: {node: '>= 18'} - - mlly@1.8.0: - resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} - - morphdom@2.7.8: - resolution: {integrity: sha512-D/fR4xgGUyVRbdMGU6Nejea1RFzYxYtyurG4Fbv2Fi/daKlWKuXGLOdXtl+3eIwL110cI2hz1ZojGICjjFLgTg==} - - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - - mrmime@2.0.1: - resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} - engines: {node: '>=10'} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - muggle-string@0.4.1: - resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} - - mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - neotraverse@0.6.18: - resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} - engines: {node: '>= 10'} - - nlcst-to-string@4.0.0: - resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} - - node-fetch-native@1.6.7: - resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} - - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - - node-gyp-build@4.8.4: - resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} - hasBin: true - - node-mock-http@1.0.4: - resolution: {integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==} - - node-releases@2.0.27: - resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} - - nopt@8.1.0: - resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} - engines: {node: ^18.17.0 || >=20.5.0} - hasBin: true - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} - - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - - number-is-nan@1.0.1: - resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} - engines: {node: '>=0.10.0'} - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} - - object-inspect@1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} - engines: {node: '>= 0.4'} - - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - - object.assign@4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} - engines: {node: '>= 0.4'} - - ofetch@1.5.1: - resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} - - ohash@2.0.11: - resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - oniguruma-parser@0.12.1: - resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} - - oniguruma-to-es@4.3.4: - resolution: {integrity: sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==} - - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - - opencollective-postinstall@2.0.3: - resolution: {integrity: sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==} - hasBin: true - - overlayscrollbars@2.14.0: - resolution: {integrity: sha512-RjV0pqc79kYhQLC3vTcLRb5GLpI1n6qh0Oua3g+bGH4EgNOJHVBGP7u0zZtxoAa0dkHlAqTTSYRb9MMmxNLjig==} - - own-keys@1.0.1: - resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} - engines: {node: '>= 0.4'} - - p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-limit@6.2.0: - resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==} - engines: {node: '>=18'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - - p-queue@6.6.2: - resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} - engines: {node: '>=8'} - - p-queue@8.1.1: - resolution: {integrity: sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ==} - engines: {node: '>=18'} - - p-timeout@3.2.0: - resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} - engines: {node: '>=8'} - - p-timeout@6.1.4: - resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} - engines: {node: '>=14.16'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - - package-manager-detector@1.6.0: - resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} - - pagefind@1.4.0: - resolution: {integrity: sha512-z2kY1mQlL4J8q5EIsQkLzQjilovKzfNVhX8De6oyE6uHpfFtyBaqUpcl/XzJC/4fjD8vBDyh1zolimIcVrCn9g==} - hasBin: true - - pako@0.2.9: - resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - parse-entities@4.0.2: - resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} - - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - - parse-latin@7.0.0: - resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} - - parse-srcset@1.0.2: - resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==} - - parse5-htmlparser2-tree-adapter@7.1.0: - resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} - - parse5-parser-stream@7.1.2: - resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} - - parse5@7.3.0: - resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} - - path-browserify@1.0.1: - resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - - path-to-regexp@6.1.0: - resolution: {integrity: sha512-h9DqehX3zZZDCEm+xbfU0ZmwCGFCAAraPJWMXJ4+v32NjZJilVg3k1TcKsRgIb8IQ/izZSaydDc1OhJCZvs2Dw==} - - path-to-regexp@6.3.0: - resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - pathe@2.0.3: - resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - - pend@1.2.0: - resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} - - photoswipe@5.4.4: - resolution: {integrity: sha512-WNFHoKrkZNnvFFhbHL93WDkW3ifwVOXSW3w1UuZZelSmgXpIGiZSNlZJq37rR8YejqME2rHs9EhH9ZvlvFH2NA==} - engines: {node: '>= 0.12.0'} - - piccolore@0.1.3: - resolution: {integrity: sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw==} - - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - picomatch@4.0.3: - resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} - engines: {node: '>=12'} - - pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - - pify@5.0.0: - resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} - engines: {node: '>=10'} - - pirates@4.0.7: - resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} - engines: {node: '>= 6'} - - pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - - pkg-types@1.3.1: - resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - - pkg-types@2.3.0: - resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} - - possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} - - postcss-calc@8.2.4: - resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} - peerDependencies: - postcss: ^8.2.2 - - postcss-colormin@5.3.1: - resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-convert-values@5.1.3: - resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-discard-comments@5.1.2: - resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-discard-duplicates@5.1.0: - resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-discard-empty@5.1.1: - resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-discard-overridden@5.1.0: - resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-import@15.1.0: - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} - engines: {node: '>=14.0.0'} - peerDependencies: - postcss: ^8.0.0 - - postcss-import@16.1.1: - resolution: {integrity: sha512-2xVS1NCZAfjtVdvXiyegxzJ447GyqCeEI5V7ApgQVOWnros1p5lGNovJNapwPpMombyFBfqDwt7AD3n2l0KOfQ==} - engines: {node: '>=18.0.0'} - peerDependencies: - postcss: ^8.0.0 - - postcss-js@4.1.0: - resolution: {integrity: sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==} - engines: {node: ^12 || ^14 || >= 16} - peerDependencies: - postcss: ^8.4.21 - - postcss-load-config@3.1.4: - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - - postcss-load-config@4.0.2: - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - - postcss-load-config@6.0.1: - resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} - engines: {node: '>= 18'} - peerDependencies: - jiti: '>=1.21.0' - postcss: '>=8.0.9' - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - jiti: - optional: true - postcss: - optional: true - tsx: - optional: true - yaml: - optional: true - - postcss-merge-longhand@5.1.7: - resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-merge-rules@5.1.4: - resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-minify-font-values@5.1.0: - resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-minify-gradients@5.1.1: - resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-minify-params@5.1.4: - resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-minify-selectors@5.2.1: - resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-modules-extract-imports@3.1.0: - resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-local-by-default@4.2.0: - resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-scope@3.2.1: - resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-values@4.0.0: - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules@4.3.1: - resolution: {integrity: sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==} - peerDependencies: - postcss: ^8.0.0 - - postcss-nested@6.2.0: - resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 - - postcss-nesting@13.0.2: - resolution: {integrity: sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - postcss-normalize-charset@5.1.0: - resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-normalize-display-values@5.1.0: - resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-normalize-positions@5.1.1: - resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-normalize-repeat-style@5.1.1: - resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-normalize-string@5.1.0: - resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-normalize-timing-functions@5.1.0: - resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-normalize-unicode@5.1.1: - resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-normalize-url@5.1.0: - resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-normalize-whitespace@5.1.1: - resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-ordered-values@5.1.3: - resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-reduce-initial@5.1.2: - resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-reduce-transforms@5.1.0: - resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-selector-parser@6.0.10: - resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} - engines: {node: '>=4'} - - postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} - engines: {node: '>=4'} - - postcss-selector-parser@7.1.1: - resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} - engines: {node: '>=4'} - - postcss-svgo@5.1.0: - resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-unique-selectors@5.1.1: - resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - - postcss@8.5.6: - resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} - engines: {node: ^10 || ^12 || >=14} - - prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - - prettier@3.8.1: - resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} - engines: {node: '>=14'} - hasBin: true - - pretty-bytes@3.0.1: - resolution: {integrity: sha512-eb7ZAeUTgfh294cElcu51w+OTRp/6ItW758LjwJSK72LDevcuJn0P4eD71PLMDGPwwatXmAmYHTkzvpKlJE3ow==} - engines: {node: '>=0.10.0'} - - pretty-bytes@5.6.0: - resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} - engines: {node: '>=6'} - - prismjs@1.30.0: - resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} - engines: {node: '>=6'} - - promise.series@0.2.0: - resolution: {integrity: sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ==} - engines: {node: '>=0.12'} - - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - - property-information@6.5.0: - resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} - - property-information@7.1.0: - resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} - - pump@3.0.3: - resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} - - punycode.js@2.3.1: - resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} - engines: {node: '>=6'} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - quansync@0.2.11: - resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - radix3@1.1.2: - resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} - - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - - read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - readdirp@4.1.2: - resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} - engines: {node: '>= 14.18.0'} - - readdirp@5.0.0: - resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} - engines: {node: '>= 20.19.0'} - - reading-time@1.5.0: - resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} - - rechoir@0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} - - reflect.getprototypeof@1.0.10: - resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} - engines: {node: '>= 0.4'} - - regenerate-unicode-properties@10.2.2: - resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==} - engines: {node: '>=4'} - - regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - - regex-recursion@6.0.2: - resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} - - regex-utilities@2.3.0: - resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} - - regex@6.1.0: - resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} - - regexp.prototype.flags@1.5.4: - resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} - engines: {node: '>= 0.4'} - - regexpu-core@6.4.0: - resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} - engines: {node: '>=4'} - - regjsgen@0.8.0: - resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - - regjsparser@0.13.0: - resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} - hasBin: true - - rehype-autolink-headings@7.1.0: - resolution: {integrity: sha512-rItO/pSdvnvsP4QRB1pmPiNHUskikqtPojZKJPPPAVx9Hj8i8TwMBhofrrAYRhYOOBZH9tgmG5lPqDLuIWPWmw==} - - rehype-components@0.3.0: - resolution: {integrity: sha512-yl2bUkZi+sU0gxwVCun7IkjiDLPczSs1SKMKHmjlSLkk4mMryBd/aYba5J8suhJdquBEKSw6ZNxU3MvVQ9xqoQ==} - - rehype-expressive-code@0.41.6: - resolution: {integrity: sha512-aBMX8kxPtjmDSFUdZlAWJkMvsQ4ZMASfee90JWIAV8tweltXLzkWC3q++43ToTelI8ac5iC0B3/S/Cl4Ql1y2g==} - - rehype-external-links@3.0.0: - resolution: {integrity: sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==} - - rehype-katex@7.0.1: - resolution: {integrity: sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==} - - rehype-parse@9.0.1: - resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} - - rehype-raw@7.0.0: - resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} - - rehype-slug@6.0.0: - resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} - - rehype-stringify@10.0.1: - resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} - - rehype@13.0.2: - resolution: {integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==} - - remark-directive-rehype@0.4.2: - resolution: {integrity: sha512-T6e+IG+BwqU4++MK54vFb+KDFjs3a+tHeK6E0T0ctR1FSyngolfDtAEzqxHWlRzQZqGi2sB4DFXry6oqH87D/g==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - remark-directive@3.0.1: - resolution: {integrity: sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A==} - - remark-gfm@4.0.1: - resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} - - remark-github-admonitions-to-directives@1.0.5: - resolution: {integrity: sha512-MSRzDs51HGbUrHJ0es8POuxwJiUycWw4aYCTN2RZhdOm5UvyqdB8ApWoGBj9QAiPSHKw2HWl1hd5rRzWxVfNew==} - - remark-math@6.0.0: - resolution: {integrity: sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==} - - remark-parse@11.0.0: - resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - - remark-rehype@11.1.2: - resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} - - remark-sectionize@2.1.0: - resolution: {integrity: sha512-R/pHt1RLYrEqrbwOVXx8HnvvwOg+mxg8pE4kIWpIYE3/CuZhU8/PAx/0y1BbHWUA0jmTLTeWpUlDrS/B0pyd0g==} - - remark-smartypants@3.0.2: - resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} - engines: {node: '>=16.0.0'} - - remark-stringify@11.0.0: - resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} - - request-light@0.5.8: - resolution: {integrity: sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==} - - request-light@0.7.0: - resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==} - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - resolve@1.22.11: - resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} - engines: {node: '>= 0.4'} - hasBin: true - - restructure@3.0.2: - resolution: {integrity: sha512-gSfoiOEA0VPE6Tukkrr7I0RBdE0s7H1eFCDBk05l1KIQT1UIKNc5JZy6jdyW6eYH3aR3g5b3PuL77rq0hvwtAw==} - - retext-latin@4.0.0: - resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} - - retext-smartypants@6.2.0: - resolution: {integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==} - - retext-stringify@4.0.0: - resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==} - - retext@9.0.0: - resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} - - reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rollup-plugin-bundle-size@1.0.3: - resolution: {integrity: sha512-aWj0Pvzq90fqbI5vN1IvUrlf4utOqy+AERYxwWjegH1G8PzheMnrRIgQ5tkwKVtQMDP0bHZEACW/zLDF+XgfXQ==} - - rollup-plugin-postcss@4.0.2: - resolution: {integrity: sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w==} - engines: {node: '>=10'} - peerDependencies: - postcss: 8.x - - rollup-plugin-terser@7.0.2: - resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} - deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser - peerDependencies: - rollup: ^2.0.0 - - rollup-plugin-typescript2@0.32.1: - resolution: {integrity: sha512-RanO8bp1WbeMv0bVlgcbsFNCn+Y3rX7wF97SQLDxf0fMLsg0B/QFF005t4AsGUcDgF3aKJHoqt4JF2xVaABeKw==} - peerDependencies: - rollup: '>=1.26.3' - typescript: '>=2.4.0' - - rollup-plugin-visualizer@5.14.0: - resolution: {integrity: sha512-VlDXneTDaKsHIw8yzJAFWtrzguoJ/LnQ+lMpoVfYJ3jJF4Ihe5oYLAqLklIK/35lgUY+1yEzCkHyZ1j4A5w5fA==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - rolldown: 1.x - rollup: 2.x || 3.x || 4.x - peerDependenciesMeta: - rolldown: - optional: true - rollup: - optional: true - - rollup-pluginutils@2.8.2: - resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} - - rollup@2.79.2: - resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==} - engines: {node: '>=10.0.0'} - hasBin: true - - rollup@4.57.1: - resolution: {integrity: sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} - - safe-array-concat@1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} - engines: {node: '>=0.4'} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - safe-identifier@0.4.2: - resolution: {integrity: sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==} - - safe-push-apply@1.0.0: - resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} - engines: {node: '>= 0.4'} - - safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - sanitize-html@2.17.0: - resolution: {integrity: sha512-dLAADUSS8rBwhaevT12yCezvioCA+bmUTPH/u57xKPT8d++voeYE6HeluA/bPbQ15TwDBG2ii+QZIEmYx8VdxA==} - - sax@1.4.4: - resolution: {integrity: sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==} - engines: {node: '>=11.0.0'} - - scrl@2.0.0: - resolution: {integrity: sha512-BbbVXxrOn58Ge4wjOORIRVZamssQu08ISLL/AC2z9aATIsKqZLESwZVW5YR0Yz0C7qqDRHb4yNXJlQ8yW0SGHw==} - - scule@1.3.0: - resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - semver@7.7.3: - resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} - engines: {node: '>=10'} - hasBin: true - - serialize-javascript@4.0.0: - resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} - - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} - - set-proto@1.0.0: - resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} - engines: {node: '>= 0.4'} - - sharp@0.34.5: - resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - shelljs-live@0.0.5: - resolution: {integrity: sha512-IR5+gA7f+v/V8ao7ZKE4TQpbG6ABeGxQhwL0seIbOXvHdoFAHw3MEiUICrhUfuroRREKL0n7HDA5b/R5it8KHg==} - peerDependencies: - shelljs: ^0.8.4 - - shelljs@0.8.5: - resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} - engines: {node: '>=4'} - hasBin: true - - shiki@3.22.0: - resolution: {integrity: sha512-LBnhsoYEe0Eou4e1VgJACes+O6S6QC0w71fCSp5Oya79inkwkm15gQ1UF6VtQ8j/taMDh79hAB49WUk8ALQW3g==} - - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} - engines: {node: '>= 0.4'} - - side-channel-map@1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} - engines: {node: '>= 0.4'} - - side-channel-weakmap@1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} - engines: {node: '>= 0.4'} - - side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} - engines: {node: '>= 0.4'} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - - sitemap@8.0.2: - resolution: {integrity: sha512-LwktpJcyZDoa0IL6KT++lQ53pbSrx2c9ge41/SeLTyqy2XUNA6uR4+P9u5IVo5lPeL2arAcOKn1aZAxoYbCKlQ==} - engines: {node: '>=14.0.0', npm: '>=6.0.0'} - hasBin: true - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - smol-toml@1.6.0: - resolution: {integrity: sha512-4zemZi0HvTnYwLfrpk/CF9LOd9Lt87kAt50GnqhMpyF9U3poDAP2+iukq2bZsO/ufegbYehBkqINbsWxj4l4cw==} - engines: {node: '>= 18'} - - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - - 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 - - source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - source-map@0.7.6: - resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} - engines: {node: '>= 12'} - - sourcemap-codec@1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - deprecated: Please use @jridgewell/sourcemap-codec instead - - space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - - stable@0.1.8: - resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} - deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' - - stop-iteration-iterator@1.1.0: - resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} - engines: {node: '>= 0.4'} - - stream-replace-string@2.0.0: - resolution: {integrity: sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==} - - string-hash@1.1.3: - resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - string-width@7.2.0: - resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} - engines: {node: '>=18'} - - string.prototype.matchall@4.0.12: - resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} - engines: {node: '>= 0.4'} - - string.prototype.trim@1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} - engines: {node: '>= 0.4'} - - string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} - - stringify-entities@4.0.4: - resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} - - strip-ansi@3.0.1: - resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} - engines: {node: '>=0.10.0'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.1.2: - resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} - engines: {node: '>=12'} - - strnum@2.1.2: - resolution: {integrity: sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==} - - style-inject@0.3.0: - resolution: {integrity: sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==} - - stylehacks@5.1.1: - resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 - - stylus@0.64.0: - resolution: {integrity: sha512-ZIdT8eUv8tegmqy1tTIdJv9We2DumkNZFdCF5mz/Kpq3OcTaxSuCAYZge6HKK2CmNC02G1eJig2RV7XTw5hQrA==} - engines: {node: '>=16'} - hasBin: true - - sucrase@3.35.1: - resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - - supports-color@2.0.0: - resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} - engines: {node: '>=0.8.0'} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - svelte2tsx@0.7.47: - resolution: {integrity: sha512-1aw/MFKVPM96OBevJdC12do2an9t5Zwr3Va9amLgTLpJje36ibD1iIHpuqCYWUrdR9vw6g6btKGQPmsqE8ZYCw==} - peerDependencies: - svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 - typescript: ^4.9.4 || ^5.0.0 - - svelte@5.49.1: - resolution: {integrity: sha512-jj95WnbKbXsXXngYj28a4zx8jeZx50CN/J4r0CEeax2pbfdsETv/J1K8V9Hbu3DCXnpHz5qAikICuxEooi7eNQ==} - engines: {node: '>=18'} - - svgo@2.8.0: - resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} - engines: {node: '>=10.13.0'} - hasBin: true - - svgo@3.3.2: - resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} - engines: {node: '>=14.0.0'} - hasBin: true - - swup-morph-plugin@1.3.0: - resolution: {integrity: sha512-vTqWYA5ZFkWMo54K8jlol5OCvboqRsELLfM1PUkS2IiL+1dDDChzMHa4ZBI5+yfl7bZUCWgd8EmuhMd/i/o+Qg==} - peerDependencies: - swup: ^4.6.0 - - swup@4.8.2: - resolution: {integrity: sha512-Art2vB4idZ7EFZQhhA47ZifkmZMPgcAwE6z28BhorbTYCO8jcovcc5MasX49GGdXYJWO43DTut7iZb5yrQdEfA==} - - tailwindcss@3.4.19: - resolution: {integrity: sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==} - engines: {node: '>=14.0.0'} - hasBin: true - - tar@7.5.7: - resolution: {integrity: sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ==} - engines: {node: '>=18'} - - terser@5.46.0: - resolution: {integrity: sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==} - engines: {node: '>=10'} - hasBin: true - - thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - - thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - - tiny-glob@0.2.9: - resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} - - tiny-inflate@1.0.3: - resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} - - tinyexec@0.3.2: - resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - - tinyexec@1.0.2: - resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} - engines: {node: '>=18'} - - tinyglobby@0.2.15: - resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} - engines: {node: '>=12.0.0'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - tosource@2.0.0-alpha.3: - resolution: {integrity: sha512-KAB2lrSS48y91MzFPFuDg4hLbvDiyTjOVgaK7Erw+5AmZXNq4sFRVn8r6yxSLuNs15PaokrDRpS61ERY9uZOug==} - engines: {node: '>=10'} - - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - - trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - - trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - - ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - - tsconfck@3.1.6: - resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} - engines: {node: ^18 || >=20} - hasBin: true - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true - - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - - type-fest@4.41.0: - resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} - engines: {node: '>=16'} - - typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} - engines: {node: '>= 0.4'} - - typed-array-byte-length@1.0.3: - resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} - engines: {node: '>= 0.4'} - - typed-array-byte-offset@1.0.4: - resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} - engines: {node: '>= 0.4'} - - typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} - engines: {node: '>= 0.4'} - - typed-query-selector@2.12.0: - resolution: {integrity: sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==} - - typesafe-path@0.2.2: - resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} - - typescript-auto-import-cache@0.3.6: - resolution: {integrity: sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ==} - - typescript@4.9.5: - resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} - engines: {node: '>=4.2.0'} - hasBin: true - - typescript@5.9.3: - resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} - engines: {node: '>=14.17'} - hasBin: true - - uc.micro@2.1.0: - resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} - - ufo@1.6.3: - resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==} - - ultrahtml@1.6.0: - resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} - - unbox-primitive@1.1.0: - resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} - engines: {node: '>= 0.4'} - - uncrypto@0.1.3: - resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} - - undici-types@7.16.0: - resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} - - undici@7.20.0: - resolution: {integrity: sha512-MJZrkjyd7DeC+uPZh+5/YaMDxFiiEEaDgbUSVMXayofAkDWF1088CDo+2RPg7B1BuS1qf1vgNE7xqwPxE0DuSQ==} - engines: {node: '>=20.18.1'} - - unicode-canonical-property-names-ecmascript@2.0.1: - resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} - engines: {node: '>=4'} - - unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} - - unicode-match-property-value-ecmascript@2.2.1: - resolution: {integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==} - engines: {node: '>=4'} - - unicode-properties@1.4.1: - resolution: {integrity: sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==} - - unicode-property-aliases-ecmascript@2.2.0: - resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==} - engines: {node: '>=4'} - - unicode-trie@2.0.0: - resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} - - unified@11.0.5: - resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - - unifont@0.5.2: - resolution: {integrity: sha512-LzR4WUqzH9ILFvjLAUU7dK3Lnou/qd5kD+IakBtBK4S15/+x2y9VX+DcWQv6s551R6W+vzwgVS6tFg3XggGBgg==} - - unist-util-find-after@4.0.1: - resolution: {integrity: sha512-QO/PuPMm2ERxC6vFXEPtmAutOopy5PknD+Oq64gGwxKtk4xwo9Z97t9Av1obPmGU0IyTa6EKYUfTrK2QJS3Ozw==} - - unist-util-find-after@5.0.0: - resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} - - unist-util-is@5.2.1: - resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} - - unist-util-is@6.0.1: - resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} - - unist-util-map@3.1.3: - resolution: {integrity: sha512-4/mDauoxqZ6geK97lJ6n2kDk6JK88Vh+hWMSJqyaaP/7eqN1dDhjcjnNxKNm3YU6Sw7PVJtcFMUbnmHvYzb6Vg==} - - unist-util-modify-children@4.0.0: - resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} - - unist-util-position@5.0.0: - resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} - - unist-util-remove-position@5.0.0: - resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} - - unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - - unist-util-visit-children@3.0.0: - resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==} - - unist-util-visit-parents@5.1.3: - resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} - - unist-util-visit-parents@6.0.2: - resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} - - unist-util-visit@4.1.2: - resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} - - unist-util-visit@5.1.0: - resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} - - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - - unstorage@1.17.4: - resolution: {integrity: sha512-fHK0yNg38tBiJKp/Vgsq4j0JEsCmgqH58HAn707S7zGkArbZsVr/CwINoi+nh3h98BRCwKvx1K3Xg9u3VV83sw==} - peerDependencies: - '@azure/app-configuration': ^1.8.0 - '@azure/cosmos': ^4.2.0 - '@azure/data-tables': ^13.3.0 - '@azure/identity': ^4.6.0 - '@azure/keyvault-secrets': ^4.9.0 - '@azure/storage-blob': ^12.26.0 - '@capacitor/preferences': ^6 || ^7 || ^8 - '@deno/kv': '>=0.9.0' - '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 - '@planetscale/database': ^1.19.0 - '@upstash/redis': ^1.34.3 - '@vercel/blob': '>=0.27.1' - '@vercel/functions': ^2.2.12 || ^3.0.0 - '@vercel/kv': ^1 || ^2 || ^3 - aws4fetch: ^1.0.20 - db0: '>=0.2.1' - idb-keyval: ^6.2.1 - ioredis: ^5.4.2 - uploadthing: ^7.4.4 - peerDependenciesMeta: - '@azure/app-configuration': - optional: true - '@azure/cosmos': - optional: true - '@azure/data-tables': - optional: true - '@azure/identity': - optional: true - '@azure/keyvault-secrets': - optional: true - '@azure/storage-blob': - optional: true - '@capacitor/preferences': - optional: true - '@deno/kv': - optional: true - '@netlify/blobs': - optional: true - '@planetscale/database': - optional: true - '@upstash/redis': - optional: true - '@vercel/blob': - optional: true - '@vercel/functions': - optional: true - '@vercel/kv': - optional: true - aws4fetch: - optional: true - db0: - optional: true - idb-keyval: - optional: true - ioredis: - optional: true - uploadthing: - optional: true - - update-browserslist-db@1.2.3: - resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - vfile-location@5.0.3: - resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} - - vfile-message@4.0.3: - resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} - - vfile@6.0.3: - resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - - vite@6.4.1: - resolution: {integrity: sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - jiti: '>=1.21.0' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - - vitefu@1.1.1: - resolution: {integrity: sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==} - peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 - peerDependenciesMeta: - vite: - optional: true - - volar-service-css@0.0.68: - resolution: {integrity: sha512-lJSMh6f3QzZ1tdLOZOzovLX0xzAadPhx8EKwraDLPxBndLCYfoTvnNuiFFV8FARrpAlW5C0WkH+TstPaCxr00Q==} - peerDependencies: - '@volar/language-service': ~2.4.0 - peerDependenciesMeta: - '@volar/language-service': - optional: true - - volar-service-emmet@0.0.68: - resolution: {integrity: sha512-nHvixrRQ83EzkQ4G/jFxu9Y4eSsXS/X2cltEPDM+K9qZmIv+Ey1w0tg1+6caSe8TU5Hgw4oSTwNMf/6cQb3LzQ==} - peerDependencies: - '@volar/language-service': ~2.4.0 - peerDependenciesMeta: - '@volar/language-service': - optional: true - - volar-service-html@0.0.68: - resolution: {integrity: sha512-fru9gsLJxy33xAltXOh4TEdi312HP80hpuKhpYQD4O5hDnkNPEBdcQkpB+gcX0oK0VxRv1UOzcGQEUzWCVHLfA==} - peerDependencies: - '@volar/language-service': ~2.4.0 - peerDependenciesMeta: - '@volar/language-service': - optional: true - - volar-service-prettier@0.0.68: - resolution: {integrity: sha512-grUmWHkHlebMOd6V8vXs2eNQUw/bJGJMjekh/EPf/p2ZNTK0Uyz7hoBRngcvGfJHMsSXZH8w/dZTForIW/4ihw==} - peerDependencies: - '@volar/language-service': ~2.4.0 - prettier: ^2.2 || ^3.0 - peerDependenciesMeta: - '@volar/language-service': - optional: true - prettier: - optional: true - - volar-service-typescript-twoslash-queries@0.0.68: - resolution: {integrity: sha512-NugzXcM0iwuZFLCJg47vI93su5YhTIweQuLmZxvz5ZPTaman16JCvmDZexx2rd5T/75SNuvvZmrTOTNYUsfe5w==} - peerDependencies: - '@volar/language-service': ~2.4.0 - peerDependenciesMeta: - '@volar/language-service': - optional: true - - volar-service-typescript@0.0.68: - resolution: {integrity: sha512-z7B/7CnJ0+TWWFp/gh2r5/QwMObHNDiQiv4C9pTBNI2Wxuwymd4bjEORzrJ/hJ5Yd5+OzeYK+nFCKevoGEEeKw==} - peerDependencies: - '@volar/language-service': ~2.4.0 - peerDependenciesMeta: - '@volar/language-service': - optional: true - - volar-service-yaml@0.0.68: - resolution: {integrity: sha512-84XgE02LV0OvTcwfqhcSwVg4of3MLNUWPMArO6Aj8YXqyEVnPu8xTEMY2btKSq37mVAPuaEVASI4e3ptObmqcA==} - peerDependencies: - '@volar/language-service': ~2.4.0 - peerDependenciesMeta: - '@volar/language-service': - optional: true - - vscode-css-languageservice@6.3.9: - resolution: {integrity: sha512-1tLWfp+TDM5ZuVWht3jmaY5y7O6aZmpeXLoHl5bv1QtRsRKt4xYGRMmdJa5Pqx/FTkgRbsna9R+Gn2xE+evVuA==} - - vscode-html-languageservice@5.6.1: - resolution: {integrity: sha512-5Mrqy5CLfFZUgkyhNZLA1Ye5g12Cb/v6VM7SxUzZUaRKWMDz4md+y26PrfRTSU0/eQAl3XpO9m2og+GGtDMuaA==} - - vscode-json-languageservice@4.1.8: - resolution: {integrity: sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==} - engines: {npm: '>=7.0.0'} - - vscode-jsonrpc@8.2.0: - resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} - engines: {node: '>=14.0.0'} - - vscode-languageserver-protocol@3.17.5: - resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} - - vscode-languageserver-textdocument@1.0.12: - resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} - - vscode-languageserver-types@3.17.5: - resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} - - vscode-languageserver@9.0.1: - resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} - hasBin: true - - vscode-nls@5.2.0: - resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} - - vscode-uri@3.1.0: - resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} - - web-namespaces@2.0.1: - resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} - - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - whatwg-encoding@3.1.1: - resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} - engines: {node: '>=18'} - deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation - - whatwg-mimetype@4.0.0: - resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} - engines: {node: '>=18'} - - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - - which-boxed-primitive@1.1.1: - resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} - engines: {node: '>= 0.4'} - - which-builtin-type@1.2.1: - resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} - engines: {node: '>= 0.4'} - - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} - - which-pm-runs@1.1.0: - resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} - engines: {node: '>=4'} - - which-typed-array@1.1.20: - resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} - engines: {node: '>= 0.4'} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - widest-line@5.0.0: - resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} - engines: {node: '>=18'} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - - wrap-ansi@9.0.2: - resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} - engines: {node: '>=18'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - xxhash-wasm@1.1.0: - resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==} - - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - yallist@5.0.0: - resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} - engines: {node: '>=18'} - - yaml-language-server@1.19.2: - resolution: {integrity: sha512-9F3myNmJzUN/679jycdMxqtydPSDRAarSj3wPiF7pchEPnO9Dg07Oc+gIYLqXR4L+g+FSEVXXv2+mr54StLFOg==} - hasBin: true - - yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - - yaml@2.7.1: - resolution: {integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==} - engines: {node: '>= 14'} - hasBin: true - - yaml@2.8.2: - resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} - engines: {node: '>= 14.6'} - hasBin: true - - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - - yauzl@2.10.0: - resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} - - yocto-queue@1.2.2: - resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==} - engines: {node: '>=12.20'} - - yocto-spinner@0.2.3: - resolution: {integrity: sha512-sqBChb33loEnkoXte1bLg45bEBsOP9N1kzQh5JZNKj/0rik4zAPTNSAVPj3uQAdc6slYJ0Ksc403G2XgxsJQFQ==} - engines: {node: '>=18.19'} - - yoctocolors@2.1.2: - resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} - engines: {node: '>=18'} - - zimmerframe@1.1.4: - resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==} - - zod-to-json-schema@3.25.1: - resolution: {integrity: sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==} - peerDependencies: - zod: ^3.25 || ^4 - - zod-to-ts@1.2.0: - resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==} - peerDependencies: - typescript: ^4.9.4 || ^5.0.2 - zod: ^3 - - zod@3.25.76: - resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} - - zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - -snapshots: - - '@adobe/css-tools@4.3.3': {} - - '@alloc/quick-lru@5.2.0': {} - - '@antfu/install-pkg@1.1.0': - dependencies: - package-manager-detector: 1.6.0 - tinyexec: 1.0.2 - - '@antfu/utils@8.1.1': {} - - '@astrojs/check@0.9.6(prettier@3.8.1)(typescript@5.9.3)': - dependencies: - '@astrojs/language-server': 2.16.3(prettier@3.8.1)(typescript@5.9.3) - chokidar: 4.0.3 - kleur: 4.1.5 - typescript: 5.9.3 - yargs: 17.7.2 - transitivePeerDependencies: - - prettier - - prettier-plugin-astro - - '@astrojs/compiler@2.13.0': {} - - '@astrojs/internal-helpers@0.7.2': {} - - '@astrojs/internal-helpers@0.7.4': {} - - '@astrojs/language-server@2.16.3(prettier@3.8.1)(typescript@5.9.3)': - dependencies: - '@astrojs/compiler': 2.13.0 - '@astrojs/yaml2ts': 0.2.2 - '@jridgewell/sourcemap-codec': 1.5.5 - '@volar/kit': 2.4.28(typescript@5.9.3) - '@volar/language-core': 2.4.28 - '@volar/language-server': 2.4.28 - '@volar/language-service': 2.4.28 - muggle-string: 0.4.1 - tinyglobby: 0.2.15 - volar-service-css: 0.0.68(@volar/language-service@2.4.28) - volar-service-emmet: 0.0.68(@volar/language-service@2.4.28) - volar-service-html: 0.0.68(@volar/language-service@2.4.28) - volar-service-prettier: 0.0.68(@volar/language-service@2.4.28)(prettier@3.8.1) - volar-service-typescript: 0.0.68(@volar/language-service@2.4.28) - volar-service-typescript-twoslash-queries: 0.0.68(@volar/language-service@2.4.28) - volar-service-yaml: 0.0.68(@volar/language-service@2.4.28) - vscode-html-languageservice: 5.6.1 - vscode-uri: 3.1.0 - optionalDependencies: - prettier: 3.8.1 - transitivePeerDependencies: - - typescript - - '@astrojs/markdown-remark@6.3.6': - dependencies: - '@astrojs/internal-helpers': 0.7.2 - '@astrojs/prism': 3.3.0 - github-slugger: 2.0.0 - hast-util-from-html: 2.0.3 - hast-util-to-text: 4.0.2 - import-meta-resolve: 4.2.0 - js-yaml: 4.1.1 - mdast-util-definitions: 6.0.0 - rehype-raw: 7.0.0 - rehype-stringify: 10.0.1 - remark-gfm: 4.0.1 - remark-parse: 11.0.0 - remark-rehype: 11.1.2 - remark-smartypants: 3.0.2 - shiki: 3.22.0 - smol-toml: 1.6.0 - unified: 11.0.5 - unist-util-remove-position: 5.0.0 - unist-util-visit: 5.1.0 - unist-util-visit-parents: 6.0.2 - vfile: 6.0.3 - transitivePeerDependencies: - - supports-color - - '@astrojs/prism@3.3.0': - dependencies: - prismjs: 1.30.0 - - '@astrojs/rss@4.0.15': - dependencies: - fast-xml-parser: 5.3.4 - piccolore: 0.1.3 - - '@astrojs/sitemap@3.7.0': - dependencies: - sitemap: 8.0.2 - stream-replace-string: 2.0.0 - zod: 3.25.76 - - '@astrojs/svelte@7.1.1(@types/node@25.2.0)(astro@5.13.7(@types/node@25.2.0)(@vercel/functions@2.2.13)(jiti@1.21.7)(rollup@2.79.2)(stylus@0.64.0)(terser@5.46.0)(typescript@5.9.3)(yaml@2.8.2))(jiti@1.21.7)(stylus@0.64.0)(svelte@5.49.1)(terser@5.46.0)(typescript@5.9.3)(yaml@2.8.2)': - dependencies: - '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.49.1)(vite@6.4.1(@types/node@25.2.0)(jiti@1.21.7)(stylus@0.64.0)(terser@5.46.0)(yaml@2.8.2)) - astro: 5.13.7(@types/node@25.2.0)(@vercel/functions@2.2.13)(jiti@1.21.7)(rollup@2.79.2)(stylus@0.64.0)(terser@5.46.0)(typescript@5.9.3)(yaml@2.8.2) - svelte: 5.49.1 - svelte2tsx: 0.7.47(svelte@5.49.1)(typescript@5.9.3) - typescript: 5.9.3 - vite: 6.4.1(@types/node@25.2.0)(jiti@1.21.7)(stylus@0.64.0)(terser@5.46.0)(yaml@2.8.2) - transitivePeerDependencies: - - '@types/node' - - jiti - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - - '@astrojs/tailwind@6.0.2(astro@5.13.7(@types/node@25.2.0)(@vercel/functions@2.2.13)(jiti@1.21.7)(rollup@2.79.2)(stylus@0.64.0)(terser@5.46.0)(typescript@5.9.3)(yaml@2.8.2))(tailwindcss@3.4.19(yaml@2.8.2))': - dependencies: - astro: 5.13.7(@types/node@25.2.0)(@vercel/functions@2.2.13)(jiti@1.21.7)(rollup@2.79.2)(stylus@0.64.0)(terser@5.46.0)(typescript@5.9.3)(yaml@2.8.2) - autoprefixer: 10.4.24(postcss@8.5.6) - postcss: 8.5.6 - postcss-load-config: 4.0.2(postcss@8.5.6) - tailwindcss: 3.4.19(yaml@2.8.2) - transitivePeerDependencies: - - ts-node - - '@astrojs/telemetry@3.3.0': - dependencies: - ci-info: 4.4.0 - debug: 4.4.3 - dlv: 1.1.3 - dset: 3.1.4 - is-docker: 3.0.0 - is-wsl: 3.1.0 - which-pm-runs: 1.1.0 - transitivePeerDependencies: - - supports-color - - '@astrojs/ts-plugin@1.10.6': - dependencies: - '@astrojs/compiler': 2.13.0 - '@astrojs/yaml2ts': 0.2.2 - '@jridgewell/sourcemap-codec': 1.5.5 - '@volar/language-core': 2.4.28 - '@volar/typescript': 2.4.28 - semver: 7.7.3 - vscode-languageserver-textdocument: 1.0.12 - - '@astrojs/vercel@8.2.11(astro@5.13.7(@types/node@25.2.0)(@vercel/functions@2.2.13)(jiti@1.21.7)(rollup@2.79.2)(stylus@0.64.0)(terser@5.46.0)(typescript@5.9.3)(yaml@2.8.2))(rollup@2.79.2)(svelte@5.49.1)': - dependencies: - '@astrojs/internal-helpers': 0.7.4 - '@vercel/analytics': 1.6.1(svelte@5.49.1) - '@vercel/functions': 2.2.13 - '@vercel/nft': 0.30.3(rollup@2.79.2) - '@vercel/routing-utils': 5.3.2 - astro: 5.13.7(@types/node@25.2.0)(@vercel/functions@2.2.13)(jiti@1.21.7)(rollup@2.79.2)(stylus@0.64.0)(terser@5.46.0)(typescript@5.9.3)(yaml@2.8.2) - esbuild: 0.25.12 - tinyglobby: 0.2.15 - transitivePeerDependencies: - - '@aws-sdk/credential-provider-web-identity' - - '@remix-run/react' - - '@sveltejs/kit' - - encoding - - next - - react - - rollup - - supports-color - - svelte - - vue - - vue-router - - '@astrojs/yaml2ts@0.2.2': - dependencies: - yaml: 2.8.2 - - '@babel/code-frame@7.29.0': - dependencies: - '@babel/helper-validator-identifier': 7.28.5 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/compat-data@7.29.0': {} - - '@babel/core@7.29.0': - dependencies: - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helpers': 7.28.6 - '@babel/parser': 7.29.0 - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - '@jridgewell/remapping': 2.3.5 - convert-source-map: 2.0.0 - debug: 4.4.3 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.29.0': - dependencies: - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - jsesc: 3.1.0 - - '@babel/helper-annotate-as-pure@7.27.3': - dependencies: - '@babel/types': 7.29.0 - - '@babel/helper-compilation-targets@7.28.6': - dependencies: - '@babel/compat-data': 7.29.0 - '@babel/helper-validator-option': 7.27.1 - browserslist: 4.28.1 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-create-class-features-plugin@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-member-expression-to-functions': 7.28.5 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.29.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - regexpu-core: 6.4.0 - semver: 6.3.1 - - '@babel/helper-define-polyfill-provider@0.6.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - debug: 4.4.3 - lodash.debounce: 4.0.8 - resolve: 1.22.11 - transitivePeerDependencies: - - supports-color - - '@babel/helper-globals@7.28.0': {} - - '@babel/helper-member-expression-to-functions@7.28.5': - dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-imports@7.28.6': - dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-optimise-call-expression@7.27.1': - dependencies: - '@babel/types': 7.29.0 - - '@babel/helper-plugin-utils@7.28.6': {} - - '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-wrap-function': 7.28.6 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-replace-supers@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-member-expression-to-functions': 7.28.5 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-skip-transparent-expression-wrappers@7.27.1': - dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-string-parser@7.27.1': {} - - '@babel/helper-validator-identifier@7.28.5': {} - - '@babel/helper-validator-option@7.27.1': {} - - '@babel/helper-wrap-function@7.28.6': - dependencies: - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helpers@7.28.6': - dependencies: - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 - - '@babel/parser@7.29.0': - dependencies: - '@babel/types': 7.29.0 - - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-proposal-class-properties@7.12.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - - '@babel/plugin-syntax-flow@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-import-assertions@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-import-attributes@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-async-generator-functions@7.29.0(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-async-to-generator@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-block-scoping@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-class-properties@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-class-static-block@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-classes@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-globals': 7.28.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-computed-properties@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/template': 7.28.6 - - '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-dotall-regex@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-explicit-resource-management@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-exponentiation-operator@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-flow-strip-types@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-flow': 7.28.6(@babel/core@7.29.0) - - '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-json-strings@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-literals@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-logical-assignment-operators@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-systemjs@7.29.0(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-named-capturing-groups-regex@7.29.0(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-nullish-coalescing-operator@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-numeric-separator@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-object-rest-spread@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-optional-catch-binding@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-optional-chaining@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-private-methods@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-private-property-in-object@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-react-jsx@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) - '@babel/types': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-regenerator@7.29.0(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-regexp-modifiers@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-spread@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-unicode-property-regex@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/plugin-transform-unicode-sets-regex@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - - '@babel/preset-env@7.29.0(@babel/core@7.29.0)': - dependencies: - '@babel/compat-data': 7.29.0 - '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.29.0) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0) - '@babel/plugin-syntax-import-assertions': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.0) - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-class-static-block': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-computed-properties': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) - '@babel/plugin-transform-dotall-regex': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-explicit-resource-management': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-exponentiation-operator': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-json-strings': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-logical-assignment-operators': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-modules-systemjs': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-numeric-separator': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-optional-catch-binding': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) - '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-regenerator': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-transform-regexp-modifiers': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-spread': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-property-regex': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-sets-regex': 7.28.6(@babel/core@7.29.0) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.0) - babel-plugin-polyfill-corejs2: 0.4.15(@babel/core@7.29.0) - babel-plugin-polyfill-corejs3: 0.14.0(@babel/core@7.29.0) - babel-plugin-polyfill-regenerator: 0.6.6(@babel/core@7.29.0) - core-js-compat: 3.48.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/preset-flow@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.29.0) - - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/types': 7.29.0 - esutils: 2.0.3 - - '@babel/preset-react@7.28.5(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.29.0) - '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.29.0) - transitivePeerDependencies: - - supports-color - - '@babel/runtime@7.28.6': {} - - '@babel/template@7.28.6': - dependencies: - '@babel/code-frame': 7.29.0 - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 - - '@babel/traverse@7.29.0': - dependencies: - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.0 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.29.0 - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - - '@babel/types@7.29.0': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - - '@biomejs/biome@2.2.4': - optionalDependencies: - '@biomejs/cli-darwin-arm64': 2.2.4 - '@biomejs/cli-darwin-x64': 2.2.4 - '@biomejs/cli-linux-arm64': 2.2.4 - '@biomejs/cli-linux-arm64-musl': 2.2.4 - '@biomejs/cli-linux-x64': 2.2.4 - '@biomejs/cli-linux-x64-musl': 2.2.4 - '@biomejs/cli-win32-arm64': 2.2.4 - '@biomejs/cli-win32-x64': 2.2.4 - - '@biomejs/cli-darwin-arm64@2.2.4': - optional: true - - '@biomejs/cli-darwin-x64@2.2.4': - optional: true - - '@biomejs/cli-linux-arm64-musl@2.2.4': - optional: true - - '@biomejs/cli-linux-arm64@2.2.4': - optional: true - - '@biomejs/cli-linux-x64-musl@2.2.4': - optional: true - - '@biomejs/cli-linux-x64@2.2.4': - optional: true - - '@biomejs/cli-win32-arm64@2.2.4': - optional: true - - '@biomejs/cli-win32-x64@2.2.4': - optional: true - - '@capsizecss/unpack@2.4.0': - dependencies: - blob-to-buffer: 1.2.9 - cross-fetch: 3.2.0 - fontkit: 2.0.4 - transitivePeerDependencies: - - encoding - - '@csstools/selector-resolve-nested@3.1.0(postcss-selector-parser@7.1.1)': - dependencies: - postcss-selector-parser: 7.1.1 - - '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.1)': - dependencies: - postcss-selector-parser: 7.1.1 - - '@ctrl/tinycolor@4.2.0': {} - - '@emmetio/abbreviation@2.3.3': - dependencies: - '@emmetio/scanner': 1.0.4 - - '@emmetio/css-abbreviation@2.1.8': - dependencies: - '@emmetio/scanner': 1.0.4 - - '@emmetio/css-parser@0.4.1': - dependencies: - '@emmetio/stream-reader': 2.2.0 - '@emmetio/stream-reader-utils': 0.1.0 - - '@emmetio/html-matcher@1.3.0': - dependencies: - '@emmetio/scanner': 1.0.4 - - '@emmetio/scanner@1.0.4': {} - - '@emmetio/stream-reader-utils@0.1.0': {} - - '@emmetio/stream-reader@2.2.0': {} - - '@emnapi/runtime@1.8.1': - dependencies: - tslib: 2.8.1 - optional: true - - '@esbuild/aix-ppc64@0.25.12': - optional: true - - '@esbuild/android-arm64@0.25.12': - optional: true - - '@esbuild/android-arm@0.25.12': - optional: true - - '@esbuild/android-x64@0.25.12': - optional: true - - '@esbuild/darwin-arm64@0.25.12': - optional: true - - '@esbuild/darwin-x64@0.25.12': - optional: true - - '@esbuild/freebsd-arm64@0.25.12': - optional: true - - '@esbuild/freebsd-x64@0.25.12': - optional: true - - '@esbuild/linux-arm64@0.25.12': - optional: true - - '@esbuild/linux-arm@0.25.12': - optional: true - - '@esbuild/linux-ia32@0.25.12': - optional: true - - '@esbuild/linux-loong64@0.25.12': - optional: true - - '@esbuild/linux-mips64el@0.25.12': - optional: true - - '@esbuild/linux-ppc64@0.25.12': - optional: true - - '@esbuild/linux-riscv64@0.25.12': - optional: true - - '@esbuild/linux-s390x@0.25.12': - optional: true - - '@esbuild/linux-x64@0.25.12': - optional: true - - '@esbuild/netbsd-arm64@0.25.12': - optional: true - - '@esbuild/netbsd-x64@0.25.12': - optional: true - - '@esbuild/openbsd-arm64@0.25.12': - optional: true - - '@esbuild/openbsd-x64@0.25.12': - optional: true - - '@esbuild/openharmony-arm64@0.25.12': - optional: true - - '@esbuild/sunos-x64@0.25.12': - optional: true - - '@esbuild/win32-arm64@0.25.12': - optional: true - - '@esbuild/win32-ia32@0.25.12': - optional: true - - '@esbuild/win32-x64@0.25.12': - optional: true - - '@expressive-code/core@0.41.6': - dependencies: - '@ctrl/tinycolor': 4.2.0 - hast-util-select: 6.0.4 - hast-util-to-html: 9.0.5 - hast-util-to-text: 4.0.2 - hastscript: 9.0.1 - postcss: 8.5.6 - postcss-nested: 6.2.0(postcss@8.5.6) - unist-util-visit: 5.1.0 - unist-util-visit-parents: 6.0.2 - - '@expressive-code/plugin-collapsible-sections@0.41.6': - dependencies: - '@expressive-code/core': 0.41.6 - - '@expressive-code/plugin-frames@0.41.6': - dependencies: - '@expressive-code/core': 0.41.6 - - '@expressive-code/plugin-line-numbers@0.41.6': - dependencies: - '@expressive-code/core': 0.41.6 - - '@expressive-code/plugin-shiki@0.41.6': - dependencies: - '@expressive-code/core': 0.41.6 - shiki: 3.22.0 - - '@expressive-code/plugin-text-markers@0.41.6': - dependencies: - '@expressive-code/core': 0.41.6 - - '@fontsource-variable/jetbrains-mono@5.2.8': {} - - '@fontsource/roboto@5.2.9': {} - - '@iconify-json/fa6-brands@1.2.6': - dependencies: - '@iconify/types': 2.0.0 - - '@iconify-json/fa6-regular@1.2.4': - dependencies: - '@iconify/types': 2.0.0 - - '@iconify-json/fa6-solid@1.2.4': - dependencies: - '@iconify/types': 2.0.0 - - '@iconify-json/ic@1.2.4': - dependencies: - '@iconify/types': 2.0.0 - - '@iconify-json/material-symbols@1.2.53': - dependencies: - '@iconify/types': 2.0.0 - - '@iconify/svelte@4.2.0(svelte@5.49.1)': - dependencies: - '@iconify/types': 2.0.0 - svelte: 5.49.1 - - '@iconify/tools@4.2.0': - dependencies: - '@iconify/types': 2.0.0 - '@iconify/utils': 2.3.0 - cheerio: 1.2.0 - domhandler: 5.0.3 - extract-zip: 2.0.1 - local-pkg: 1.1.2 - pathe: 2.0.3 - svgo: 3.3.2 - tar: 7.5.7 - transitivePeerDependencies: - - supports-color - - '@iconify/types@2.0.0': {} - - '@iconify/utils@2.3.0': - dependencies: - '@antfu/install-pkg': 1.1.0 - '@antfu/utils': 8.1.1 - '@iconify/types': 2.0.0 - debug: 4.4.3 - globals: 15.15.0 - kolorist: 1.8.0 - local-pkg: 1.1.2 - mlly: 1.8.0 - transitivePeerDependencies: - - supports-color - - '@img/colour@1.0.0': {} - - '@img/sharp-darwin-arm64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.2.4 - optional: true - - '@img/sharp-darwin-x64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.2.4 - optional: true - - '@img/sharp-libvips-darwin-arm64@1.2.4': - optional: true - - '@img/sharp-libvips-darwin-x64@1.2.4': - optional: true - - '@img/sharp-libvips-linux-arm64@1.2.4': - optional: true - - '@img/sharp-libvips-linux-arm@1.2.4': - optional: true - - '@img/sharp-libvips-linux-ppc64@1.2.4': - optional: true - - '@img/sharp-libvips-linux-riscv64@1.2.4': - optional: true - - '@img/sharp-libvips-linux-s390x@1.2.4': - optional: true - - '@img/sharp-libvips-linux-x64@1.2.4': - optional: true - - '@img/sharp-libvips-linuxmusl-arm64@1.2.4': - optional: true - - '@img/sharp-libvips-linuxmusl-x64@1.2.4': - optional: true - - '@img/sharp-linux-arm64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.2.4 - optional: true - - '@img/sharp-linux-arm@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.2.4 - optional: true - - '@img/sharp-linux-ppc64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.2.4 - optional: true - - '@img/sharp-linux-riscv64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-riscv64': 1.2.4 - optional: true - - '@img/sharp-linux-s390x@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.2.4 - optional: true - - '@img/sharp-linux-x64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.2.4 - optional: true - - '@img/sharp-linuxmusl-arm64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 - optional: true - - '@img/sharp-linuxmusl-x64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.2.4 - optional: true - - '@img/sharp-wasm32@0.34.5': - dependencies: - '@emnapi/runtime': 1.8.1 - optional: true - - '@img/sharp-win32-arm64@0.34.5': - optional: true - - '@img/sharp-win32-ia32@0.34.5': - optional: true - - '@img/sharp-win32-x64@0.34.5': - optional: true - - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.2 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - - '@isaacs/fs-minipass@4.0.1': - dependencies: - minipass: 7.1.2 - - '@jridgewell/gen-mapping@0.3.13': - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/remapping@2.3.5': - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/source-map@0.3.11': - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/sourcemap-codec@1.5.5': {} - - '@jridgewell/trace-mapping@0.3.31': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 - - '@mapbox/node-pre-gyp@2.0.3': - dependencies: - consola: 3.4.2 - detect-libc: 2.1.2 - https-proxy-agent: 7.0.6 - node-fetch: 2.7.0 - nopt: 8.1.0 - semver: 7.7.3 - tar: 7.5.7 - transitivePeerDependencies: - - encoding - - supports-color - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.20.1 - - '@oslojs/encoding@1.1.0': {} - - '@pagefind/darwin-arm64@1.4.0': - optional: true - - '@pagefind/darwin-x64@1.4.0': - optional: true - - '@pagefind/freebsd-x64@1.4.0': - optional: true - - '@pagefind/linux-arm64@1.4.0': - optional: true - - '@pagefind/linux-x64@1.4.0': - optional: true - - '@pagefind/windows-x64@1.4.0': - optional: true - - '@pkgjs/parseargs@0.11.0': - optional: true - - '@rollup/plugin-alias@3.1.9(rollup@2.79.2)': - dependencies: - rollup: 2.79.2 - slash: 3.0.0 - - '@rollup/plugin-babel@5.3.1(@babel/core@7.29.0)(rollup@2.79.2)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@rollup/pluginutils': 3.1.0(rollup@2.79.2) - rollup: 2.79.2 - transitivePeerDependencies: - - supports-color - - '@rollup/plugin-commonjs@17.1.0(rollup@2.79.2)': - dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.79.2) - commondir: 1.0.1 - estree-walker: 2.0.2 - glob: 7.2.3 - is-reference: 1.2.1 - magic-string: 0.25.9 - resolve: 1.22.11 - rollup: 2.79.2 - - '@rollup/plugin-json@4.1.0(rollup@2.79.2)': - dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.79.2) - rollup: 2.79.2 - - '@rollup/plugin-node-resolve@11.2.1(rollup@2.79.2)': - dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.79.2) - '@types/resolve': 1.17.1 - builtin-modules: 3.3.0 - deepmerge: 4.3.1 - is-module: 1.0.0 - resolve: 1.22.11 - rollup: 2.79.2 - - '@rollup/plugin-yaml@4.1.2(rollup@2.79.2)': - dependencies: - '@rollup/pluginutils': 5.3.0(rollup@2.79.2) - js-yaml: 4.1.1 - tosource: 2.0.0-alpha.3 - optionalDependencies: - rollup: 2.79.2 - - '@rollup/pluginutils@3.1.0(rollup@2.79.2)': - dependencies: - '@types/estree': 0.0.39 - estree-walker: 1.0.1 - picomatch: 2.3.1 - rollup: 2.79.2 - - '@rollup/pluginutils@4.2.1': - dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 - - '@rollup/pluginutils@5.3.0(rollup@2.79.2)': - dependencies: - '@types/estree': 1.0.8 - estree-walker: 2.0.2 - picomatch: 4.0.3 - optionalDependencies: - rollup: 2.79.2 - - '@rollup/rollup-android-arm-eabi@4.57.1': - optional: true - - '@rollup/rollup-android-arm64@4.57.1': - optional: true - - '@rollup/rollup-darwin-arm64@4.57.1': - optional: true - - '@rollup/rollup-darwin-x64@4.57.1': - optional: true - - '@rollup/rollup-freebsd-arm64@4.57.1': - optional: true - - '@rollup/rollup-freebsd-x64@4.57.1': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.57.1': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.57.1': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.57.1': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.57.1': - optional: true - - '@rollup/rollup-linux-loong64-gnu@4.57.1': - optional: true - - '@rollup/rollup-linux-loong64-musl@4.57.1': - optional: true - - '@rollup/rollup-linux-ppc64-gnu@4.57.1': - optional: true - - '@rollup/rollup-linux-ppc64-musl@4.57.1': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.57.1': - optional: true - - '@rollup/rollup-linux-riscv64-musl@4.57.1': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.57.1': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.57.1': - optional: true - - '@rollup/rollup-linux-x64-musl@4.57.1': - optional: true - - '@rollup/rollup-openbsd-x64@4.57.1': - optional: true - - '@rollup/rollup-openharmony-arm64@4.57.1': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.57.1': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.57.1': - optional: true - - '@rollup/rollup-win32-x64-gnu@4.57.1': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.57.1': - optional: true - - '@shikijs/core@3.22.0': - dependencies: - '@shikijs/types': 3.22.0 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - hast-util-to-html: 9.0.5 - - '@shikijs/engine-javascript@3.22.0': - dependencies: - '@shikijs/types': 3.22.0 - '@shikijs/vscode-textmate': 10.0.2 - oniguruma-to-es: 4.3.4 - - '@shikijs/engine-oniguruma@3.22.0': - dependencies: - '@shikijs/types': 3.22.0 - '@shikijs/vscode-textmate': 10.0.2 - - '@shikijs/langs@3.22.0': - dependencies: - '@shikijs/types': 3.22.0 - - '@shikijs/themes@3.22.0': - dependencies: - '@shikijs/types': 3.22.0 - - '@shikijs/types@3.22.0': - dependencies: - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - - '@shikijs/vscode-textmate@10.0.2': {} - - '@surma/rollup-plugin-off-main-thread@2.2.3': - dependencies: - ejs: 3.1.10 - json5: 2.2.3 - magic-string: 0.25.9 - string.prototype.matchall: 4.0.12 - - '@sveltejs/acorn-typescript@1.0.8(acorn@8.15.0)': - dependencies: - acorn: 8.15.0 - - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.49.1)(vite@6.4.1(@types/node@25.2.0)(jiti@1.21.7)(stylus@0.64.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.49.1)(vite@6.4.1(@types/node@25.2.0)(jiti@1.21.7)(stylus@0.64.0)(terser@5.46.0)(yaml@2.8.2))': - dependencies: - '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.49.1)(vite@6.4.1(@types/node@25.2.0)(jiti@1.21.7)(stylus@0.64.0)(terser@5.46.0)(yaml@2.8.2)) - debug: 4.4.3 - svelte: 5.49.1 - vite: 6.4.1(@types/node@25.2.0)(jiti@1.21.7)(stylus@0.64.0)(terser@5.46.0)(yaml@2.8.2) - transitivePeerDependencies: - - supports-color - - '@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.49.1)(vite@6.4.1(@types/node@25.2.0)(jiti@1.21.7)(stylus@0.64.0)(terser@5.46.0)(yaml@2.8.2))': - dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.49.1)(vite@6.4.1(@types/node@25.2.0)(jiti@1.21.7)(stylus@0.64.0)(terser@5.46.0)(yaml@2.8.2)))(svelte@5.49.1)(vite@6.4.1(@types/node@25.2.0)(jiti@1.21.7)(stylus@0.64.0)(terser@5.46.0)(yaml@2.8.2)) - debug: 4.4.3 - deepmerge: 4.3.1 - kleur: 4.1.5 - magic-string: 0.30.21 - svelte: 5.49.1 - vite: 6.4.1(@types/node@25.2.0)(jiti@1.21.7)(stylus@0.64.0)(terser@5.46.0)(yaml@2.8.2) - vitefu: 1.1.1(vite@6.4.1(@types/node@25.2.0)(jiti@1.21.7)(stylus@0.64.0)(terser@5.46.0)(yaml@2.8.2)) - transitivePeerDependencies: - - supports-color - - '@swc/helpers@0.5.18': - dependencies: - tslib: 2.8.1 - - '@swup/a11y-plugin@5.0.0(swup@4.8.2)': - dependencies: - '@swup/plugin': 4.0.0 - focus-options-polyfill: 1.6.0 - swup: 4.8.2 - - '@swup/astro@1.7.0': - dependencies: - '@swup/a11y-plugin': 5.0.0(swup@4.8.2) - '@swup/body-class-plugin': 3.3.0(swup@4.8.2) - '@swup/debug-plugin': 4.1.0(swup@4.8.2) - '@swup/fade-theme': 2.0.2(swup@4.8.2) - '@swup/forms-plugin': 3.6.0(swup@4.8.2) - '@swup/fragment-plugin': 1.2.0(swup@4.8.2) - '@swup/head-plugin': 2.3.1(swup@4.8.2) - '@swup/overlay-theme': 2.0.2(swup@4.8.2) - '@swup/parallel-plugin': 0.4.0(swup@4.8.2) - '@swup/preload-plugin': 3.2.11(swup@4.8.2) - '@swup/progress-plugin': 3.2.0(swup@4.8.2) - '@swup/route-name-plugin': 4.1.0(swup@4.8.2) - '@swup/scripts-plugin': 2.1.0(swup@4.8.2) - '@swup/scroll-plugin': 3.3.2(swup@4.8.2) - '@swup/slide-theme': 2.0.2(swup@4.8.2) - swup: 4.8.2 - swup-morph-plugin: 1.3.0(swup@4.8.2) - transitivePeerDependencies: - - '@types/babel__core' - - rolldown - - supports-color - - ts-node - - '@swup/body-class-plugin@3.3.0(swup@4.8.2)': - dependencies: - '@swup/plugin': 4.0.0 - swup: 4.8.2 - - '@swup/browserslist-config@1.0.1': {} - - '@swup/debug-plugin@4.1.0(swup@4.8.2)': - dependencies: - '@swup/plugin': 4.0.0 - swup: 4.8.2 - - '@swup/fade-theme@2.0.2(swup@4.8.2)': - dependencies: - '@swup/theme': 2.1.0(swup@4.8.2) - swup: 4.8.2 - - '@swup/forms-plugin@3.6.0(swup@4.8.2)': - dependencies: - '@swup/plugin': 4.0.0 - swup: 4.8.2 - - '@swup/fragment-plugin@1.2.0(swup@4.8.2)': - dependencies: - '@swup/plugin': 4.0.0 - swup: 4.8.2 - - '@swup/head-plugin@2.3.1(swup@4.8.2)': - dependencies: - '@swup/plugin': 4.0.0 - swup: 4.8.2 - - '@swup/overlay-theme@2.0.2(swup@4.8.2)': - dependencies: - '@swup/theme': 2.1.0(swup@4.8.2) - swup: 4.8.2 - - '@swup/parallel-plugin@0.4.0(swup@4.8.2)': - dependencies: - '@swup/plugin': 3.0.1 - swup: 4.8.2 - transitivePeerDependencies: - - '@types/babel__core' - - rolldown - - supports-color - - ts-node - - '@swup/plugin@3.0.1': - dependencies: - '@swup/browserslist-config': 1.0.1 - '@swup/prettier-config': 1.1.0 - chalk: 5.6.2 - microbundle: 0.15.1 - prettier: 2.8.8 - shelljs: 0.8.5 - shelljs-live: 0.0.5(shelljs@0.8.5) - swup: 4.8.2 - transitivePeerDependencies: - - '@types/babel__core' - - rolldown - - supports-color - - ts-node - - '@swup/plugin@4.0.0': - dependencies: - swup: 4.8.2 - - '@swup/preload-plugin@3.2.11(swup@4.8.2)': - dependencies: - '@swup/plugin': 4.0.0 - swup: 4.8.2 - - '@swup/prettier-config@1.1.0': {} - - '@swup/progress-plugin@3.2.0(swup@4.8.2)': - dependencies: - '@swup/plugin': 4.0.0 - swup: 4.8.2 - - '@swup/route-name-plugin@4.1.0(swup@4.8.2)': - dependencies: - '@swup/plugin': 3.0.1 - swup: 4.8.2 - transitivePeerDependencies: - - '@types/babel__core' - - rolldown - - supports-color - - ts-node - - '@swup/scripts-plugin@2.1.0(swup@4.8.2)': - dependencies: - '@swup/plugin': 4.0.0 - swup: 4.8.2 - - '@swup/scroll-plugin@3.3.2(swup@4.8.2)': - dependencies: - '@swup/plugin': 4.0.0 - scrl: 2.0.0 - swup: 4.8.2 - - '@swup/slide-theme@2.0.2(swup@4.8.2)': - dependencies: - '@swup/theme': 2.1.0(swup@4.8.2) - swup: 4.8.2 - - '@swup/theme@2.1.0(swup@4.8.2)': - dependencies: - '@swup/plugin': 4.0.0 - swup: 4.8.2 - - '@tailwindcss/typography@0.5.19(tailwindcss@3.4.19(yaml@2.8.2))': - dependencies: - postcss-selector-parser: 6.0.10 - tailwindcss: 3.4.19(yaml@2.8.2) - - '@trysound/sax@0.2.0': {} - - '@types/debug@4.1.12': - dependencies: - '@types/ms': 2.1.0 - - '@types/estree@0.0.39': {} - - '@types/estree@1.0.8': {} - - '@types/fontkit@2.0.8': - dependencies: - '@types/node': 25.2.0 - - '@types/hast@2.3.10': - dependencies: - '@types/unist': 2.0.11 - - '@types/hast@3.0.4': - dependencies: - '@types/unist': 3.0.3 - - '@types/katex@0.16.8': {} - - '@types/linkify-it@5.0.0': {} - - '@types/markdown-it@14.1.2': - dependencies: - '@types/linkify-it': 5.0.0 - '@types/mdurl': 2.0.0 - - '@types/mdast@4.0.4': - dependencies: - '@types/unist': 3.0.3 - - '@types/mdurl@2.0.0': {} - - '@types/ms@2.1.0': {} - - '@types/nlcst@2.0.3': - dependencies: - '@types/unist': 3.0.3 - - '@types/node@17.0.45': {} - - '@types/node@25.2.0': - dependencies: - undici-types: 7.16.0 - - '@types/parse-json@4.0.2': {} - - '@types/resolve@1.17.1': - dependencies: - '@types/node': 25.2.0 - - '@types/sanitize-html@2.16.0': - dependencies: - htmlparser2: 8.0.2 - - '@types/sax@1.2.7': - dependencies: - '@types/node': 17.0.45 - - '@types/unist@2.0.11': {} - - '@types/unist@3.0.3': {} - - '@types/yauzl@2.10.3': - dependencies: - '@types/node': 25.2.0 - optional: true - - '@ungap/structured-clone@1.3.0': {} - - '@vercel/analytics@1.6.1(svelte@5.49.1)': - optionalDependencies: - svelte: 5.49.1 - - '@vercel/functions@2.2.13': - dependencies: - '@vercel/oidc': 2.0.2 - - '@vercel/nft@0.30.3(rollup@2.79.2)': - dependencies: - '@mapbox/node-pre-gyp': 2.0.3 - '@rollup/pluginutils': 5.3.0(rollup@2.79.2) - acorn: 8.15.0 - acorn-import-attributes: 1.9.5(acorn@8.15.0) - async-sema: 3.1.1 - bindings: 1.5.0 - estree-walker: 2.0.2 - glob: 10.5.0 - graceful-fs: 4.2.11 - node-gyp-build: 4.8.4 - picomatch: 4.0.3 - resolve-from: 5.0.0 - transitivePeerDependencies: - - encoding - - rollup - - supports-color - - '@vercel/oidc@2.0.2': - dependencies: - '@types/ms': 2.1.0 - ms: 2.1.3 - - '@vercel/routing-utils@5.3.2': - dependencies: - path-to-regexp: 6.1.0 - path-to-regexp-updated: path-to-regexp@6.3.0 - optionalDependencies: - ajv: 6.12.6 - - '@volar/kit@2.4.28(typescript@5.9.3)': - dependencies: - '@volar/language-service': 2.4.28 - '@volar/typescript': 2.4.28 - typesafe-path: 0.2.2 - typescript: 5.9.3 - vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.1.0 - - '@volar/language-core@2.4.28': - dependencies: - '@volar/source-map': 2.4.28 - - '@volar/language-server@2.4.28': - dependencies: - '@volar/language-core': 2.4.28 - '@volar/language-service': 2.4.28 - '@volar/typescript': 2.4.28 - path-browserify: 1.0.1 - request-light: 0.7.0 - vscode-languageserver: 9.0.1 - vscode-languageserver-protocol: 3.17.5 - vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.1.0 - - '@volar/language-service@2.4.28': - dependencies: - '@volar/language-core': 2.4.28 - vscode-languageserver-protocol: 3.17.5 - vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.1.0 - - '@volar/source-map@2.4.28': {} - - '@volar/typescript@2.4.28': - dependencies: - '@volar/language-core': 2.4.28 - path-browserify: 1.0.1 - vscode-uri: 3.1.0 - - '@vscode/emmet-helper@2.11.0': - dependencies: - emmet: 2.4.11 - jsonc-parser: 2.3.1 - vscode-languageserver-textdocument: 1.0.12 - vscode-languageserver-types: 3.17.5 - vscode-uri: 3.1.0 - - '@vscode/l10n@0.0.18': {} - - abbrev@3.0.1: {} - - acorn-import-attributes@1.9.5(acorn@8.15.0): - dependencies: - acorn: 8.15.0 - - acorn@8.15.0: {} - - agent-base@7.1.4: {} - - ajv-draft-04@1.0.0(ajv@8.17.1): - optionalDependencies: - ajv: 8.17.1 - - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - optional: true - - ajv@8.17.1: - dependencies: - fast-deep-equal: 3.1.3 - fast-uri: 3.1.0 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - - ansi-align@3.0.1: - dependencies: - string-width: 4.2.3 - - ansi-regex@2.1.1: {} - - ansi-regex@5.0.1: {} - - ansi-regex@6.2.2: {} - - ansi-styles@2.2.1: {} - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - ansi-styles@6.2.3: {} - - any-promise@1.3.0: {} - - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - - arg@5.0.2: {} - - argparse@2.0.1: {} - - aria-query@5.3.2: {} - - array-buffer-byte-length@1.0.2: - dependencies: - call-bound: 1.0.4 - is-array-buffer: 3.0.5 - - array-iterate@2.0.1: {} - - arraybuffer.prototype.slice@1.0.4: - dependencies: - array-buffer-byte-length: 1.0.2 - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - is-array-buffer: 3.0.5 - - astro-expressive-code@0.41.6(astro@5.13.7(@types/node@25.2.0)(@vercel/functions@2.2.13)(jiti@1.21.7)(rollup@2.79.2)(stylus@0.64.0)(terser@5.46.0)(typescript@5.9.3)(yaml@2.8.2)): - dependencies: - astro: 5.13.7(@types/node@25.2.0)(@vercel/functions@2.2.13)(jiti@1.21.7)(rollup@2.79.2)(stylus@0.64.0)(terser@5.46.0)(typescript@5.9.3)(yaml@2.8.2) - rehype-expressive-code: 0.41.6 - - astro-icon@1.1.5: - dependencies: - '@iconify/tools': 4.2.0 - '@iconify/types': 2.0.0 - '@iconify/utils': 2.3.0 - transitivePeerDependencies: - - supports-color - - astro@5.13.7(@types/node@25.2.0)(@vercel/functions@2.2.13)(jiti@1.21.7)(rollup@2.79.2)(stylus@0.64.0)(terser@5.46.0)(typescript@5.9.3)(yaml@2.8.2): - dependencies: - '@astrojs/compiler': 2.13.0 - '@astrojs/internal-helpers': 0.7.2 - '@astrojs/markdown-remark': 6.3.6 - '@astrojs/telemetry': 3.3.0 - '@capsizecss/unpack': 2.4.0 - '@oslojs/encoding': 1.1.0 - '@rollup/pluginutils': 5.3.0(rollup@2.79.2) - acorn: 8.15.0 - aria-query: 5.3.2 - axobject-query: 4.1.0 - boxen: 8.0.1 - ci-info: 4.4.0 - clsx: 2.1.1 - common-ancestor-path: 1.0.1 - cookie: 1.1.1 - cssesc: 3.0.0 - debug: 4.4.3 - deterministic-object-hash: 2.0.2 - devalue: 5.6.2 - diff: 5.2.2 - dlv: 1.1.3 - dset: 3.1.4 - es-module-lexer: 1.7.0 - esbuild: 0.25.12 - estree-walker: 3.0.3 - flattie: 1.1.1 - fontace: 0.3.1 - github-slugger: 2.0.0 - html-escaper: 3.0.3 - http-cache-semantics: 4.2.0 - import-meta-resolve: 4.2.0 - js-yaml: 4.1.1 - kleur: 4.1.5 - magic-string: 0.30.21 - magicast: 0.3.5 - mrmime: 2.0.1 - neotraverse: 0.6.18 - p-limit: 6.2.0 - p-queue: 8.1.1 - package-manager-detector: 1.6.0 - picomatch: 4.0.3 - prompts: 2.4.2 - rehype: 13.0.2 - semver: 7.7.3 - shiki: 3.22.0 - smol-toml: 1.6.0 - tinyexec: 0.3.2 - tinyglobby: 0.2.15 - tsconfck: 3.1.6(typescript@5.9.3) - ultrahtml: 1.6.0 - unifont: 0.5.2 - unist-util-visit: 5.1.0 - unstorage: 1.17.4(@vercel/functions@2.2.13) - vfile: 6.0.3 - vite: 6.4.1(@types/node@25.2.0)(jiti@1.21.7)(stylus@0.64.0)(terser@5.46.0)(yaml@2.8.2) - vitefu: 1.1.1(vite@6.4.1(@types/node@25.2.0)(jiti@1.21.7)(stylus@0.64.0)(terser@5.46.0)(yaml@2.8.2)) - xxhash-wasm: 1.1.0 - yargs-parser: 21.1.1 - yocto-spinner: 0.2.3 - zod: 3.25.76 - zod-to-json-schema: 3.25.1(zod@3.25.76) - zod-to-ts: 1.2.0(typescript@5.9.3)(zod@3.25.76) - optionalDependencies: - sharp: 0.34.5 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@types/node' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - db0 - - encoding - - idb-keyval - - ioredis - - jiti - - less - - lightningcss - - rollup - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - typescript - - uploadthing - - yaml - - async-function@1.0.0: {} - - async-sema@3.1.1: {} - - async@3.2.6: {} - - asyncro@3.0.0: {} - - atob@2.1.2: {} - - autoprefixer@10.4.24(postcss@8.5.6): - dependencies: - browserslist: 4.28.1 - caniuse-lite: 1.0.30001767 - fraction.js: 5.3.4 - picocolors: 1.1.1 - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.1.0 - - axobject-query@4.1.0: {} - - babel-plugin-macros@3.1.0: - dependencies: - '@babel/runtime': 7.28.6 - cosmiconfig: 7.1.0 - resolve: 1.22.11 - - babel-plugin-polyfill-corejs2@0.4.15(@babel/core@7.29.0): - dependencies: - '@babel/compat-data': 7.29.0 - '@babel/core': 7.29.0 - '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.29.0) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-corejs3@0.14.0(@babel/core@7.29.0): - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.29.0) - core-js-compat: 3.48.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-regenerator@0.6.6(@babel/core@7.29.0): - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.29.0) - transitivePeerDependencies: - - supports-color - - babel-plugin-transform-async-to-promises@0.8.18: {} - - babel-plugin-transform-replace-expressions@0.2.0(@babel/core@7.29.0): - dependencies: - '@babel/core': 7.29.0 - '@babel/parser': 7.29.0 - - bail@2.0.2: {} - - balanced-match@1.0.2: {} - - base-64@1.0.0: {} - - base64-js@1.5.1: {} - - baseline-browser-mapping@2.9.19: {} - - bcp-47-match@2.0.3: {} - - binary-extensions@2.3.0: {} - - bindings@1.5.0: - dependencies: - file-uri-to-path: 1.0.0 - - blob-to-buffer@1.2.9: {} - - boolbase@1.0.0: {} - - boxen@8.0.1: - dependencies: - ansi-align: 3.0.1 - camelcase: 8.0.0 - chalk: 5.6.2 - cli-boxes: 3.0.0 - string-width: 7.2.0 - type-fest: 4.41.0 - widest-line: 5.0.0 - wrap-ansi: 9.0.2 - - brace-expansion@1.1.12: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - brace-expansion@2.0.2: - dependencies: - balanced-match: 1.0.2 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - brotli-size@4.0.0: - dependencies: - duplexer: 0.1.1 - - brotli@1.3.3: - dependencies: - base64-js: 1.5.1 - - browserslist@4.28.1: - dependencies: - baseline-browser-mapping: 2.9.19 - caniuse-lite: 1.0.30001767 - electron-to-chromium: 1.5.286 - node-releases: 2.0.27 - update-browserslist-db: 1.2.3(browserslist@4.28.1) - - buffer-crc32@0.2.13: {} - - buffer-from@1.1.2: {} - - builtin-modules@3.3.0: {} - - call-bind-apply-helpers@1.0.2: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - - call-bind@1.0.8: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - get-intrinsic: 1.3.0 - set-function-length: 1.2.2 - - call-bound@1.0.4: - dependencies: - call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.3.0 - - callsites@3.1.0: {} - - camelcase-css@2.0.1: {} - - camelcase@6.3.0: {} - - camelcase@8.0.0: {} - - caniuse-api@3.0.0: - dependencies: - browserslist: 4.28.1 - caniuse-lite: 1.0.30001767 - lodash.memoize: 4.1.2 - lodash.uniq: 4.5.0 - - caniuse-lite@1.0.30001767: {} - - ccount@2.0.1: {} - - chalk@1.1.3: - dependencies: - ansi-styles: 2.2.1 - escape-string-regexp: 1.0.5 - has-ansi: 2.0.0 - strip-ansi: 3.0.1 - supports-color: 2.0.0 - - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - chalk@5.6.2: {} - - character-entities-html4@2.1.0: {} - - character-entities-legacy@3.0.0: {} - - character-entities@2.0.2: {} - - character-reference-invalid@2.0.1: {} - - cheerio-select@2.1.0: - dependencies: - boolbase: 1.0.0 - css-select: 5.2.2 - css-what: 6.2.2 - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.2.2 - - cheerio@1.2.0: - dependencies: - cheerio-select: 2.1.0 - dom-serializer: 2.0.0 - domhandler: 5.0.3 - domutils: 3.2.2 - encoding-sniffer: 0.2.1 - htmlparser2: 10.1.0 - parse5: 7.3.0 - parse5-htmlparser2-tree-adapter: 7.1.0 - parse5-parser-stream: 7.1.2 - undici: 7.20.0 - whatwg-mimetype: 4.0.0 - - chokidar@3.6.0: - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - 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.3 - - chokidar@4.0.3: - dependencies: - readdirp: 4.1.2 - - chokidar@5.0.0: - dependencies: - readdirp: 5.0.0 - - chownr@3.0.0: {} - - ci-info@4.4.0: {} - - cli-boxes@3.0.0: {} - - cliui@8.0.1: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - - clone@2.1.2: {} - - clsx@2.1.1: {} - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.4: {} - - colord@2.9.3: {} - - comma-separated-tokens@2.0.3: {} - - commander@2.20.3: {} - - commander@4.1.1: {} - - commander@7.2.0: {} - - commander@8.3.0: {} - - common-ancestor-path@1.0.1: {} - - commondir@1.0.1: {} - - concat-map@0.0.1: {} - - concat-with-sourcemaps@1.1.0: - dependencies: - source-map: 0.6.1 - - confbox@0.1.8: {} - - confbox@0.2.2: {} - - consola@3.4.2: {} - - convert-source-map@2.0.0: {} - - cookie-es@1.2.2: {} - - cookie@1.1.1: {} - - core-js-compat@3.48.0: - dependencies: - browserslist: 4.28.1 - - cosmiconfig@7.1.0: - dependencies: - '@types/parse-json': 4.0.2 - import-fresh: 3.3.1 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - - cross-fetch@3.2.0: - dependencies: - node-fetch: 2.7.0 - transitivePeerDependencies: - - encoding - - cross-spawn@7.0.6: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - crossws@0.3.5: - dependencies: - uncrypto: 0.1.3 - - css-declaration-sorter@6.4.1(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - - css-select@4.3.0: - dependencies: - boolbase: 1.0.0 - css-what: 6.2.2 - domhandler: 4.3.1 - domutils: 2.8.0 - nth-check: 2.1.1 - - css-select@5.2.2: - dependencies: - boolbase: 1.0.0 - css-what: 6.2.2 - domhandler: 5.0.3 - domutils: 3.2.2 - nth-check: 2.1.1 - - css-selector-parser@3.3.0: {} - - css-tree@1.1.3: - dependencies: - mdn-data: 2.0.14 - source-map: 0.6.1 - - css-tree@2.2.1: - dependencies: - mdn-data: 2.0.28 - source-map-js: 1.2.1 - - css-tree@2.3.1: - dependencies: - mdn-data: 2.0.30 - source-map-js: 1.2.1 - - css-tree@3.1.0: - dependencies: - mdn-data: 2.12.2 - source-map-js: 1.2.1 - - css-what@6.2.2: {} - - css@3.0.0: - dependencies: - inherits: 2.0.4 - source-map: 0.6.1 - source-map-resolve: 0.6.0 - - cssesc@3.0.0: {} - - cssnano-preset-default@5.2.14(postcss@8.5.6): - dependencies: - css-declaration-sorter: 6.4.1(postcss@8.5.6) - cssnano-utils: 3.1.0(postcss@8.5.6) - postcss: 8.5.6 - postcss-calc: 8.2.4(postcss@8.5.6) - postcss-colormin: 5.3.1(postcss@8.5.6) - postcss-convert-values: 5.1.3(postcss@8.5.6) - postcss-discard-comments: 5.1.2(postcss@8.5.6) - postcss-discard-duplicates: 5.1.0(postcss@8.5.6) - postcss-discard-empty: 5.1.1(postcss@8.5.6) - postcss-discard-overridden: 5.1.0(postcss@8.5.6) - postcss-merge-longhand: 5.1.7(postcss@8.5.6) - postcss-merge-rules: 5.1.4(postcss@8.5.6) - postcss-minify-font-values: 5.1.0(postcss@8.5.6) - postcss-minify-gradients: 5.1.1(postcss@8.5.6) - postcss-minify-params: 5.1.4(postcss@8.5.6) - postcss-minify-selectors: 5.2.1(postcss@8.5.6) - postcss-normalize-charset: 5.1.0(postcss@8.5.6) - postcss-normalize-display-values: 5.1.0(postcss@8.5.6) - postcss-normalize-positions: 5.1.1(postcss@8.5.6) - postcss-normalize-repeat-style: 5.1.1(postcss@8.5.6) - postcss-normalize-string: 5.1.0(postcss@8.5.6) - postcss-normalize-timing-functions: 5.1.0(postcss@8.5.6) - postcss-normalize-unicode: 5.1.1(postcss@8.5.6) - postcss-normalize-url: 5.1.0(postcss@8.5.6) - postcss-normalize-whitespace: 5.1.1(postcss@8.5.6) - postcss-ordered-values: 5.1.3(postcss@8.5.6) - postcss-reduce-initial: 5.1.2(postcss@8.5.6) - postcss-reduce-transforms: 5.1.0(postcss@8.5.6) - postcss-svgo: 5.1.0(postcss@8.5.6) - postcss-unique-selectors: 5.1.1(postcss@8.5.6) - - cssnano-utils@3.1.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - - cssnano@5.1.15(postcss@8.5.6): - dependencies: - cssnano-preset-default: 5.2.14(postcss@8.5.6) - lilconfig: 2.1.0 - postcss: 8.5.6 - yaml: 1.10.2 - - csso@4.2.0: - dependencies: - css-tree: 1.1.3 - - csso@5.0.5: - dependencies: - css-tree: 2.2.1 - - data-view-buffer@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-length@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-offset@1.0.1: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - debug@4.4.3: - dependencies: - ms: 2.1.3 - - decode-named-character-reference@1.3.0: - dependencies: - character-entities: 2.0.2 - - decode-uri-component@0.2.2: {} - - dedent-js@1.0.1: {} - - deepmerge@4.3.1: {} - - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - - define-lazy-prop@2.0.0: {} - - define-properties@1.2.1: - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 - object-keys: 1.1.1 - - defu@6.1.4: {} - - delegate-it@6.3.0: - dependencies: - typed-query-selector: 2.12.0 - - dequal@2.0.3: {} - - destr@2.0.5: {} - - detect-libc@2.1.2: {} - - deterministic-object-hash@2.0.2: - dependencies: - base-64: 1.0.0 - - devalue@5.6.2: {} - - devlop@1.1.0: - dependencies: - dequal: 2.0.3 - - dfa@1.2.0: {} - - didyoumean@1.2.2: {} - - diff@5.2.2: {} - - direction@2.0.1: {} - - dlv@1.1.3: {} - - dom-serializer@1.4.1: - dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - entities: 2.2.0 - - dom-serializer@2.0.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - entities: 4.5.0 - - domelementtype@2.3.0: {} - - domhandler@4.3.1: - dependencies: - domelementtype: 2.3.0 - - domhandler@5.0.3: - dependencies: - domelementtype: 2.3.0 - - domutils@2.8.0: - dependencies: - dom-serializer: 1.4.1 - domelementtype: 2.3.0 - domhandler: 4.3.1 - - domutils@3.2.2: - dependencies: - dom-serializer: 2.0.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - - dset@3.1.4: {} - - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 - - duplexer@0.1.1: {} - - duplexer@0.1.2: {} - - eastasianwidth@0.2.0: {} - - ejs@3.1.10: - dependencies: - jake: 10.9.4 - - electron-to-chromium@1.5.286: {} - - emmet@2.4.11: - dependencies: - '@emmetio/abbreviation': 2.3.3 - '@emmetio/css-abbreviation': 2.1.8 - - emoji-regex@10.6.0: {} - - emoji-regex@8.0.0: {} - - emoji-regex@9.2.2: {} - - encoding-sniffer@0.2.1: - dependencies: - iconv-lite: 0.6.3 - whatwg-encoding: 3.1.1 - - end-of-stream@1.4.5: - dependencies: - once: 1.4.0 - - entities@2.2.0: {} - - entities@4.5.0: {} - - entities@6.0.1: {} - - entities@7.0.1: {} - - error-ex@1.3.4: - dependencies: - is-arrayish: 0.2.1 - - es-abstract@1.24.1: - dependencies: - array-buffer-byte-length: 1.0.2 - arraybuffer.prototype.slice: 1.0.4 - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - data-view-buffer: 1.0.2 - data-view-byte-length: 1.0.2 - data-view-byte-offset: 1.0.1 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-set-tostringtag: 2.1.0 - es-to-primitive: 1.3.0 - function.prototype.name: 1.1.8 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - get-symbol-description: 1.1.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - internal-slot: 1.1.0 - is-array-buffer: 3.0.5 - is-callable: 1.2.7 - is-data-view: 1.0.2 - is-negative-zero: 2.0.3 - is-regex: 1.2.1 - is-set: 2.0.3 - is-shared-array-buffer: 1.0.4 - is-string: 1.1.1 - is-typed-array: 1.1.15 - is-weakref: 1.1.1 - math-intrinsics: 1.1.0 - object-inspect: 1.13.4 - object-keys: 1.1.1 - object.assign: 4.1.7 - own-keys: 1.0.1 - regexp.prototype.flags: 1.5.4 - safe-array-concat: 1.1.3 - safe-push-apply: 1.0.0 - safe-regex-test: 1.1.0 - set-proto: 1.0.0 - stop-iteration-iterator: 1.1.0 - string.prototype.trim: 1.2.10 - string.prototype.trimend: 1.0.9 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.3 - typed-array-byte-length: 1.0.3 - typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.7 - unbox-primitive: 1.1.0 - which-typed-array: 1.1.20 - - es-define-property@1.0.1: {} - - es-errors@1.3.0: {} - - es-module-lexer@1.7.0: {} - - es-object-atoms@1.1.1: - dependencies: - es-errors: 1.3.0 - - es-set-tostringtag@2.1.0: - dependencies: - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - es-to-primitive@1.3.0: - dependencies: - is-callable: 1.2.7 - is-date-object: 1.1.0 - is-symbol: 1.1.1 - - esbuild@0.25.12: - optionalDependencies: - '@esbuild/aix-ppc64': 0.25.12 - '@esbuild/android-arm': 0.25.12 - '@esbuild/android-arm64': 0.25.12 - '@esbuild/android-x64': 0.25.12 - '@esbuild/darwin-arm64': 0.25.12 - '@esbuild/darwin-x64': 0.25.12 - '@esbuild/freebsd-arm64': 0.25.12 - '@esbuild/freebsd-x64': 0.25.12 - '@esbuild/linux-arm': 0.25.12 - '@esbuild/linux-arm64': 0.25.12 - '@esbuild/linux-ia32': 0.25.12 - '@esbuild/linux-loong64': 0.25.12 - '@esbuild/linux-mips64el': 0.25.12 - '@esbuild/linux-ppc64': 0.25.12 - '@esbuild/linux-riscv64': 0.25.12 - '@esbuild/linux-s390x': 0.25.12 - '@esbuild/linux-x64': 0.25.12 - '@esbuild/netbsd-arm64': 0.25.12 - '@esbuild/netbsd-x64': 0.25.12 - '@esbuild/openbsd-arm64': 0.25.12 - '@esbuild/openbsd-x64': 0.25.12 - '@esbuild/openharmony-arm64': 0.25.12 - '@esbuild/sunos-x64': 0.25.12 - '@esbuild/win32-arm64': 0.25.12 - '@esbuild/win32-ia32': 0.25.12 - '@esbuild/win32-x64': 0.25.12 - - escalade@3.2.0: {} - - escape-string-regexp@1.0.5: {} - - escape-string-regexp@4.0.0: {} - - escape-string-regexp@5.0.0: {} - - esm-env@1.2.2: {} - - esrap@2.2.2: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - - estree-walker@0.6.1: {} - - estree-walker@1.0.1: {} - - estree-walker@2.0.2: {} - - estree-walker@3.0.3: - dependencies: - '@types/estree': 1.0.8 - - esutils@2.0.3: {} - - eventemitter3@4.0.7: {} - - eventemitter3@5.0.4: {} - - expressive-code@0.41.6: - dependencies: - '@expressive-code/core': 0.41.6 - '@expressive-code/plugin-frames': 0.41.6 - '@expressive-code/plugin-shiki': 0.41.6 - '@expressive-code/plugin-text-markers': 0.41.6 - - exsolve@1.0.8: {} - - extend@3.0.2: {} - - extract-zip@2.0.1: - dependencies: - debug: 4.4.3 - get-stream: 5.2.0 - yauzl: 2.10.0 - optionalDependencies: - '@types/yauzl': 2.10.3 - transitivePeerDependencies: - - supports-color - - fast-deep-equal@3.1.3: {} - - fast-glob@3.3.3: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - - fast-json-stable-stringify@2.1.0: - optional: true - - fast-uri@3.1.0: {} - - fast-xml-parser@5.3.4: - dependencies: - strnum: 2.1.2 - - fastq@1.20.1: - dependencies: - reusify: 1.1.0 - - fd-slicer@1.1.0: - dependencies: - pend: 1.2.0 - - fdir@6.5.0(picomatch@4.0.3): - optionalDependencies: - picomatch: 4.0.3 - - figures@1.7.0: - dependencies: - escape-string-regexp: 1.0.5 - object-assign: 4.1.1 - - file-uri-to-path@1.0.0: {} - - filelist@1.0.4: - dependencies: - minimatch: 5.1.6 - - filesize@6.4.0: {} - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - find-cache-dir@3.3.2: - dependencies: - commondir: 1.0.1 - make-dir: 3.1.0 - pkg-dir: 4.2.0 - - find-up@4.1.0: - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - - flattie@1.1.1: {} - - focus-options-polyfill@1.6.0: {} - - fontace@0.3.1: - dependencies: - '@types/fontkit': 2.0.8 - fontkit: 2.0.4 - - fontkit@2.0.4: - dependencies: - '@swc/helpers': 0.5.18 - brotli: 1.3.3 - clone: 2.1.2 - dfa: 1.2.0 - fast-deep-equal: 3.1.3 - restructure: 3.0.2 - tiny-inflate: 1.0.3 - unicode-properties: 1.4.1 - unicode-trie: 2.0.0 - - for-each@0.3.5: - dependencies: - is-callable: 1.2.7 - - foreground-child@3.3.1: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - - fraction.js@5.3.4: {} - - fs-extra@10.1.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.2.0 - universalify: 2.0.1 - - fs.realpath@1.0.0: {} - - fsevents@2.3.3: - optional: true - - function-bind@1.1.2: {} - - function.prototype.name@1.1.8: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - functions-have-names: 1.2.3 - hasown: 2.0.2 - is-callable: 1.2.7 - - functions-have-names@1.2.3: {} - - generator-function@2.0.1: {} - - generic-names@4.0.0: - dependencies: - loader-utils: 3.3.1 - - gensync@1.0.0-beta.2: {} - - get-caller-file@2.0.5: {} - - get-east-asian-width@1.4.0: {} - - get-intrinsic@1.3.0: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - math-intrinsics: 1.1.0 - - get-proto@1.0.1: - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 - - get-stream@5.2.0: - dependencies: - pump: 3.0.3 - - get-symbol-description@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - - github-slugger@2.0.0: {} - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - - glob@10.5.0: - dependencies: - foreground-child: 3.3.1 - jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 1.11.1 - - glob@7.2.3: - 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 - - globals@15.15.0: {} - - globalthis@1.0.4: - dependencies: - define-properties: 1.2.1 - gopd: 1.2.0 - - globalyzer@0.1.0: {} - - globrex@0.1.2: {} - - gopd@1.2.0: {} - - graceful-fs@4.2.11: {} - - gzip-size@3.0.0: - dependencies: - duplexer: 0.1.2 - - gzip-size@6.0.0: - dependencies: - duplexer: 0.1.2 - - h3@1.15.5: - dependencies: - cookie-es: 1.2.2 - crossws: 0.3.5 - defu: 6.1.4 - destr: 2.0.5 - iron-webcrypto: 1.2.1 - node-mock-http: 1.0.4 - radix3: 1.1.2 - ufo: 1.6.3 - uncrypto: 0.1.3 - - has-ansi@2.0.0: - dependencies: - ansi-regex: 2.1.1 - - has-bigints@1.1.0: {} - - has-flag@4.0.0: {} - - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.1 - - has-proto@1.2.0: - dependencies: - dunder-proto: 1.0.1 - - has-symbols@1.1.0: {} - - has-tostringtag@1.0.2: - dependencies: - has-symbols: 1.1.0 - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - - hast-util-from-dom@5.0.1: - dependencies: - '@types/hast': 3.0.4 - hastscript: 9.0.1 - web-namespaces: 2.0.1 - - hast-util-from-html-isomorphic@2.0.0: - dependencies: - '@types/hast': 3.0.4 - hast-util-from-dom: 5.0.1 - hast-util-from-html: 2.0.3 - unist-util-remove-position: 5.0.0 - - hast-util-from-html@2.0.3: - dependencies: - '@types/hast': 3.0.4 - devlop: 1.1.0 - hast-util-from-parse5: 8.0.3 - parse5: 7.3.0 - vfile: 6.0.3 - vfile-message: 4.0.3 - - hast-util-from-parse5@8.0.3: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - devlop: 1.1.0 - hastscript: 9.0.1 - property-information: 7.1.0 - vfile: 6.0.3 - vfile-location: 5.0.3 - web-namespaces: 2.0.1 - - hast-util-has-property@3.0.0: - dependencies: - '@types/hast': 3.0.4 - - hast-util-heading-rank@3.0.0: - dependencies: - '@types/hast': 3.0.4 - - hast-util-is-element@3.0.0: - dependencies: - '@types/hast': 3.0.4 - - hast-util-parse-selector@3.1.1: - dependencies: - '@types/hast': 2.3.10 - - hast-util-parse-selector@4.0.0: - dependencies: - '@types/hast': 3.0.4 - - hast-util-raw@9.1.0: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - '@ungap/structured-clone': 1.3.0 - hast-util-from-parse5: 8.0.3 - hast-util-to-parse5: 8.0.1 - html-void-elements: 3.0.0 - mdast-util-to-hast: 13.2.1 - parse5: 7.3.0 - unist-util-position: 5.0.0 - unist-util-visit: 5.1.0 - vfile: 6.0.3 - web-namespaces: 2.0.1 - zwitch: 2.0.4 - - hast-util-select@6.0.4: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - bcp-47-match: 2.0.3 - comma-separated-tokens: 2.0.3 - css-selector-parser: 3.3.0 - devlop: 1.1.0 - direction: 2.0.1 - hast-util-has-property: 3.0.0 - hast-util-to-string: 3.0.1 - hast-util-whitespace: 3.0.0 - nth-check: 2.1.1 - property-information: 7.1.0 - space-separated-tokens: 2.0.2 - unist-util-visit: 5.1.0 - zwitch: 2.0.4 - - hast-util-to-html@9.0.5: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - ccount: 2.0.1 - comma-separated-tokens: 2.0.3 - hast-util-whitespace: 3.0.0 - html-void-elements: 3.0.0 - mdast-util-to-hast: 13.2.1 - property-information: 7.1.0 - space-separated-tokens: 2.0.2 - stringify-entities: 4.0.4 - zwitch: 2.0.4 - - hast-util-to-parse5@8.0.1: - dependencies: - '@types/hast': 3.0.4 - comma-separated-tokens: 2.0.3 - devlop: 1.1.0 - property-information: 7.1.0 - space-separated-tokens: 2.0.2 - web-namespaces: 2.0.1 - zwitch: 2.0.4 - - hast-util-to-string@3.0.1: - dependencies: - '@types/hast': 3.0.4 - - hast-util-to-text@4.0.2: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - hast-util-is-element: 3.0.0 - unist-util-find-after: 5.0.0 - - hast-util-whitespace@3.0.0: - dependencies: - '@types/hast': 3.0.4 - - hastscript@7.2.0: - dependencies: - '@types/hast': 2.3.10 - comma-separated-tokens: 2.0.3 - hast-util-parse-selector: 3.1.1 - property-information: 6.5.0 - space-separated-tokens: 2.0.2 - - hastscript@9.0.1: - dependencies: - '@types/hast': 3.0.4 - comma-separated-tokens: 2.0.3 - hast-util-parse-selector: 4.0.0 - property-information: 7.1.0 - space-separated-tokens: 2.0.2 - - html-escaper@3.0.3: {} - - html-void-elements@3.0.0: {} - - htmlparser2@10.1.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.2.2 - entities: 7.0.1 - - htmlparser2@8.0.2: - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.2.2 - entities: 4.5.0 - - http-cache-semantics@4.2.0: {} - - https-proxy-agent@7.0.6: - dependencies: - agent-base: 7.1.4 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - - iconv-lite@0.6.3: - dependencies: - safer-buffer: 2.1.2 - - icss-replace-symbols@1.1.0: {} - - icss-utils@5.1.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - - import-cwd@3.0.0: - dependencies: - import-from: 3.0.0 - - import-fresh@3.3.1: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - import-from@3.0.0: - dependencies: - resolve-from: 5.0.0 - - import-meta-resolve@4.2.0: {} - - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - inherits@2.0.4: {} - - internal-slot@1.1.0: - dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.1.0 - - interpret@1.4.0: {} - - iron-webcrypto@1.2.1: {} - - is-absolute-url@4.0.1: {} - - is-alphabetical@2.0.1: {} - - is-alphanumerical@2.0.1: - dependencies: - is-alphabetical: 2.0.1 - is-decimal: 2.0.1 - - is-array-buffer@3.0.5: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - - is-arrayish@0.2.1: {} - - is-async-function@2.1.1: - dependencies: - async-function: 1.0.0 - call-bound: 1.0.4 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - is-bigint@1.1.0: - dependencies: - has-bigints: 1.1.0 - - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - - is-boolean-object@1.2.2: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-callable@1.2.7: {} - - is-core-module@2.16.1: - dependencies: - hasown: 2.0.2 - - is-data-view@1.0.2: - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - is-typed-array: 1.1.15 - - is-date-object@1.1.0: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-decimal@2.0.1: {} - - is-docker@2.2.1: {} - - is-docker@3.0.0: {} - - is-extglob@2.1.1: {} - - is-finalizationregistry@1.1.1: - dependencies: - call-bound: 1.0.4 - - is-fullwidth-code-point@3.0.0: {} - - is-generator-function@1.1.2: - dependencies: - call-bound: 1.0.4 - generator-function: 2.0.1 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-hexadecimal@2.0.1: {} - - is-inside-container@1.0.0: - dependencies: - is-docker: 3.0.0 - - is-map@2.0.3: {} - - is-module@1.0.0: {} - - is-negative-zero@2.0.3: {} - - is-number-object@1.1.1: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-number@7.0.0: {} - - is-plain-obj@4.1.0: {} - - is-plain-object@5.0.0: {} - - is-reference@1.2.1: - dependencies: - '@types/estree': 1.0.8 - - is-reference@3.0.3: - dependencies: - '@types/estree': 1.0.8 - - is-regex@1.2.1: - dependencies: - call-bound: 1.0.4 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - is-set@2.0.3: {} - - is-shared-array-buffer@1.0.4: - dependencies: - call-bound: 1.0.4 - - is-string@1.1.1: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-symbol@1.1.1: - dependencies: - call-bound: 1.0.4 - has-symbols: 1.1.0 - safe-regex-test: 1.1.0 - - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.20 - - is-weakmap@2.0.2: {} - - is-weakref@1.1.1: - dependencies: - call-bound: 1.0.4 - - is-weakset@2.0.4: - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - - is-wsl@2.2.0: - dependencies: - is-docker: 2.2.1 - - is-wsl@3.1.0: - dependencies: - is-inside-container: 1.0.0 - - isarray@2.0.5: {} - - isexe@2.0.0: {} - - jackspeak@3.4.3: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - - jake@10.9.4: - dependencies: - async: 3.2.6 - filelist: 1.0.4 - picocolors: 1.1.1 - - jest-worker@26.6.2: - dependencies: - '@types/node': 25.2.0 - merge-stream: 2.0.0 - supports-color: 7.2.0 - - jiti@1.21.7: {} - - js-tokens@4.0.0: {} - - js-yaml@4.1.1: - dependencies: - argparse: 2.0.1 - - jsesc@3.1.0: {} - - json-parse-even-better-errors@2.3.1: {} - - json-schema-traverse@0.4.1: - optional: true - - json-schema-traverse@1.0.0: {} - - json5@2.2.3: {} - - jsonc-parser@2.3.1: {} - - jsonc-parser@3.3.1: {} - - jsonfile@6.2.0: - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - - katex@0.16.28: - dependencies: - commander: 8.3.0 - - kleur@3.0.3: {} - - kleur@4.1.5: {} - - kolorist@1.8.0: {} - - lilconfig@2.1.0: {} - - lilconfig@3.1.3: {} - - lines-and-columns@1.2.4: {} - - linkify-it@5.0.0: - dependencies: - uc.micro: 2.1.0 - - loader-utils@3.3.1: {} - - local-pkg@1.1.2: - dependencies: - mlly: 1.8.0 - pkg-types: 2.3.0 - quansync: 0.2.11 - - locate-character@3.0.0: {} - - locate-path@5.0.0: - dependencies: - p-locate: 4.1.0 - - lodash.camelcase@4.3.0: {} - - lodash.debounce@4.0.8: {} - - lodash.memoize@4.1.2: {} - - lodash.merge@4.6.2: {} - - lodash.uniq@4.5.0: {} - - lodash@4.17.21: {} - - longest-streak@3.1.0: {} - - lru-cache@10.4.3: {} - - lru-cache@11.2.5: {} - - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - - magic-string@0.25.9: - dependencies: - sourcemap-codec: 1.4.8 - - magic-string@0.30.21: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - - magicast@0.3.5: - dependencies: - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 - source-map-js: 1.2.1 - - make-dir@3.1.0: - dependencies: - semver: 6.3.1 - - markdown-it@14.1.0: - dependencies: - argparse: 2.0.1 - entities: 4.5.0 - linkify-it: 5.0.0 - mdurl: 2.0.0 - punycode.js: 2.3.1 - uc.micro: 2.1.0 - - markdown-table@3.0.4: {} - - math-intrinsics@1.1.0: {} - - maxmin@2.1.0: - dependencies: - chalk: 1.1.3 - figures: 1.7.0 - gzip-size: 3.0.0 - pretty-bytes: 3.0.1 - - mdast-util-definitions@6.0.0: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - unist-util-visit: 5.1.0 - - mdast-util-directive@3.1.0: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - ccount: 2.0.1 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - parse-entities: 4.0.2 - stringify-entities: 4.0.4 - unist-util-visit-parents: 6.0.2 - transitivePeerDependencies: - - supports-color - - mdast-util-find-and-replace@3.0.2: - dependencies: - '@types/mdast': 4.0.4 - escape-string-regexp: 5.0.0 - unist-util-is: 6.0.1 - unist-util-visit-parents: 6.0.2 - - mdast-util-from-markdown@2.0.2: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - decode-named-character-reference: 1.3.0 - devlop: 1.1.0 - mdast-util-to-string: 4.0.0 - micromark: 4.0.2 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-decode-string: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - unist-util-stringify-position: 4.0.0 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm-autolink-literal@2.0.1: - dependencies: - '@types/mdast': 4.0.4 - ccount: 2.0.1 - devlop: 1.1.0 - mdast-util-find-and-replace: 3.0.2 - micromark-util-character: 2.1.1 - - mdast-util-gfm-footnote@2.1.0: - dependencies: - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - micromark-util-normalize-identifier: 2.0.1 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm-strikethrough@2.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm-table@2.0.0: - dependencies: - '@types/mdast': 4.0.4 - devlop: 1.1.0 - markdown-table: 3.0.4 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm-task-list-item@2.0.0: - dependencies: - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-gfm@3.1.0: - dependencies: - mdast-util-from-markdown: 2.0.2 - mdast-util-gfm-autolink-literal: 2.0.1 - mdast-util-gfm-footnote: 2.1.0 - mdast-util-gfm-strikethrough: 2.0.0 - mdast-util-gfm-table: 2.0.0 - mdast-util-gfm-task-list-item: 2.0.0 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-math@3.0.0: - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - devlop: 1.1.0 - longest-streak: 3.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - unist-util-remove-position: 5.0.0 - transitivePeerDependencies: - - supports-color - - mdast-util-phrasing@4.1.0: - dependencies: - '@types/mdast': 4.0.4 - unist-util-is: 6.0.1 - - mdast-util-to-hast@13.2.1: - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.3.0 - devlop: 1.1.0 - micromark-util-sanitize-uri: 2.0.1 - trim-lines: 3.0.1 - unist-util-position: 5.0.0 - unist-util-visit: 5.1.0 - vfile: 6.0.3 - - mdast-util-to-markdown@2.1.2: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - longest-streak: 3.1.0 - mdast-util-phrasing: 4.1.0 - mdast-util-to-string: 4.0.0 - micromark-util-classify-character: 2.0.1 - micromark-util-decode-string: 2.0.1 - unist-util-visit: 5.1.0 - zwitch: 2.0.4 - - mdast-util-to-string@4.0.0: - dependencies: - '@types/mdast': 4.0.4 - - mdn-data@2.0.14: {} - - mdn-data@2.0.28: {} - - mdn-data@2.0.30: {} - - mdn-data@2.12.2: {} - - mdurl@2.0.0: {} - - merge-stream@2.0.0: {} - - merge2@1.4.1: {} - - microbundle@0.15.1: - dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-proposal-class-properties': 7.12.1(@babel/core@7.29.0) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.0) - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-regenerator': 7.29.0(@babel/core@7.29.0) - '@babel/preset-env': 7.29.0(@babel/core@7.29.0) - '@babel/preset-flow': 7.27.1(@babel/core@7.29.0) - '@babel/preset-react': 7.28.5(@babel/core@7.29.0) - '@rollup/plugin-alias': 3.1.9(rollup@2.79.2) - '@rollup/plugin-babel': 5.3.1(@babel/core@7.29.0)(rollup@2.79.2) - '@rollup/plugin-commonjs': 17.1.0(rollup@2.79.2) - '@rollup/plugin-json': 4.1.0(rollup@2.79.2) - '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.2) - '@surma/rollup-plugin-off-main-thread': 2.2.3 - asyncro: 3.0.0 - autoprefixer: 10.4.24(postcss@8.5.6) - babel-plugin-macros: 3.1.0 - babel-plugin-transform-async-to-promises: 0.8.18 - babel-plugin-transform-replace-expressions: 0.2.0(@babel/core@7.29.0) - brotli-size: 4.0.0 - builtin-modules: 3.3.0 - camelcase: 6.3.0 - escape-string-regexp: 4.0.0 - filesize: 6.4.0 - gzip-size: 6.0.0 - kleur: 4.1.5 - lodash.merge: 4.6.2 - postcss: 8.5.6 - pretty-bytes: 5.6.0 - rollup: 2.79.2 - rollup-plugin-bundle-size: 1.0.3 - rollup-plugin-postcss: 4.0.2(postcss@8.5.6) - rollup-plugin-terser: 7.0.2(rollup@2.79.2) - rollup-plugin-typescript2: 0.32.1(rollup@2.79.2)(typescript@4.9.5) - rollup-plugin-visualizer: 5.14.0(rollup@2.79.2) - sade: 1.8.1 - terser: 5.46.0 - tiny-glob: 0.2.9 - tslib: 2.8.1 - typescript: 4.9.5 - transitivePeerDependencies: - - '@types/babel__core' - - rolldown - - supports-color - - ts-node - - micromark-core-commonmark@2.0.3: - dependencies: - decode-named-character-reference: 1.3.0 - devlop: 1.1.0 - micromark-factory-destination: 2.0.1 - micromark-factory-label: 2.0.1 - micromark-factory-space: 2.0.1 - micromark-factory-title: 2.0.1 - micromark-factory-whitespace: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.1 - micromark-util-classify-character: 2.0.1 - micromark-util-html-tag-name: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-resolve-all: 2.0.1 - micromark-util-subtokenize: 2.1.0 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-directive@3.0.2: - dependencies: - devlop: 1.1.0 - micromark-factory-space: 2.0.1 - micromark-factory-whitespace: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - parse-entities: 4.0.2 - - micromark-extension-gfm-autolink-literal@2.1.0: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-sanitize-uri: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-gfm-footnote@2.1.0: - dependencies: - devlop: 1.1.0 - micromark-core-commonmark: 2.0.3 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-sanitize-uri: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-gfm-strikethrough@2.1.0: - dependencies: - devlop: 1.1.0 - micromark-util-chunked: 2.0.1 - micromark-util-classify-character: 2.0.1 - micromark-util-resolve-all: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-gfm-table@2.1.1: - dependencies: - devlop: 1.1.0 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-gfm-tagfilter@2.0.0: - dependencies: - micromark-util-types: 2.0.2 - - micromark-extension-gfm-task-list-item@2.1.0: - dependencies: - devlop: 1.1.0 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-gfm@3.0.0: - dependencies: - micromark-extension-gfm-autolink-literal: 2.1.0 - micromark-extension-gfm-footnote: 2.1.0 - micromark-extension-gfm-strikethrough: 2.1.0 - micromark-extension-gfm-table: 2.1.1 - micromark-extension-gfm-tagfilter: 2.0.0 - micromark-extension-gfm-task-list-item: 2.1.0 - micromark-util-combine-extensions: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-extension-math@3.1.0: - dependencies: - '@types/katex': 0.16.8 - devlop: 1.1.0 - katex: 0.16.28 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-destination@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-label@2.0.1: - dependencies: - devlop: 1.1.0 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-space@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-types: 2.0.2 - - micromark-factory-title@2.0.1: - dependencies: - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-whitespace@2.0.1: - dependencies: - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-character@2.1.1: - dependencies: - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-chunked@2.0.1: - dependencies: - micromark-util-symbol: 2.0.1 - - micromark-util-classify-character@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-combine-extensions@2.0.1: - dependencies: - micromark-util-chunked: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-decode-numeric-character-reference@2.0.2: - dependencies: - micromark-util-symbol: 2.0.1 - - micromark-util-decode-string@2.0.1: - dependencies: - decode-named-character-reference: 1.3.0 - micromark-util-character: 2.1.1 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-symbol: 2.0.1 - - micromark-util-encode@2.0.1: {} - - micromark-util-html-tag-name@2.0.1: {} - - micromark-util-normalize-identifier@2.0.1: - dependencies: - micromark-util-symbol: 2.0.1 - - micromark-util-resolve-all@2.0.1: - dependencies: - micromark-util-types: 2.0.2 - - micromark-util-sanitize-uri@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-encode: 2.0.1 - micromark-util-symbol: 2.0.1 - - micromark-util-subtokenize@2.1.0: - dependencies: - devlop: 1.1.0 - micromark-util-chunked: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-symbol@2.0.1: {} - - micromark-util-types@2.0.2: {} - - micromark@4.0.2: - dependencies: - '@types/debug': 4.1.12 - debug: 4.4.3 - decode-named-character-reference: 1.3.0 - devlop: 1.1.0 - micromark-core-commonmark: 2.0.3 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.1 - micromark-util-combine-extensions: 2.0.1 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-encode: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-resolve-all: 2.0.1 - micromark-util-sanitize-uri: 2.0.1 - micromark-util-subtokenize: 2.1.0 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - transitivePeerDependencies: - - supports-color - - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.12 - - minimatch@5.1.6: - dependencies: - brace-expansion: 2.0.2 - - minimatch@9.0.5: - dependencies: - brace-expansion: 2.0.2 - - minipass@7.1.2: {} - - minizlib@3.1.0: - dependencies: - minipass: 7.1.2 - - mlly@1.8.0: - dependencies: - acorn: 8.15.0 - pathe: 2.0.3 - pkg-types: 1.3.1 - ufo: 1.6.3 - - morphdom@2.7.8: {} - - mri@1.2.0: {} - - mrmime@2.0.1: {} - - ms@2.1.3: {} - - muggle-string@0.4.1: {} - - mz@2.7.0: - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - - nanoid@3.3.11: {} - - neotraverse@0.6.18: {} - - nlcst-to-string@4.0.0: - dependencies: - '@types/nlcst': 2.0.3 - - node-fetch-native@1.6.7: {} - - node-fetch@2.7.0: - dependencies: - whatwg-url: 5.0.0 - - node-gyp-build@4.8.4: {} - - node-mock-http@1.0.4: {} - - node-releases@2.0.27: {} - - nopt@8.1.0: - dependencies: - abbrev: 3.0.1 - - normalize-path@3.0.0: {} - - normalize-url@6.1.0: {} - - nth-check@2.1.1: - dependencies: - boolbase: 1.0.0 - - number-is-nan@1.0.1: {} - - object-assign@4.1.1: {} - - object-hash@3.0.0: {} - - object-inspect@1.13.4: {} - - object-keys@1.1.1: {} - - object.assign@4.1.7: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - has-symbols: 1.1.0 - object-keys: 1.1.1 - - ofetch@1.5.1: - dependencies: - destr: 2.0.5 - node-fetch-native: 1.6.7 - ufo: 1.6.3 - - ohash@2.0.11: {} - - once@1.4.0: - dependencies: - wrappy: 1.0.2 - - oniguruma-parser@0.12.1: {} - - oniguruma-to-es@4.3.4: - dependencies: - oniguruma-parser: 0.12.1 - regex: 6.1.0 - regex-recursion: 6.0.2 - - open@8.4.2: - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - - opencollective-postinstall@2.0.3: {} - - overlayscrollbars@2.14.0: {} - - own-keys@1.0.1: - dependencies: - get-intrinsic: 1.3.0 - object-keys: 1.1.1 - safe-push-apply: 1.0.0 - - p-finally@1.0.0: {} - - p-limit@2.3.0: - dependencies: - p-try: 2.2.0 - - p-limit@6.2.0: - dependencies: - yocto-queue: 1.2.2 - - p-locate@4.1.0: - dependencies: - p-limit: 2.3.0 - - p-queue@6.6.2: - dependencies: - eventemitter3: 4.0.7 - p-timeout: 3.2.0 - - p-queue@8.1.1: - dependencies: - eventemitter3: 5.0.4 - p-timeout: 6.1.4 - - p-timeout@3.2.0: - dependencies: - p-finally: 1.0.0 - - p-timeout@6.1.4: {} - - p-try@2.2.0: {} - - package-json-from-dist@1.0.1: {} - - package-manager-detector@1.6.0: {} - - pagefind@1.4.0: - optionalDependencies: - '@pagefind/darwin-arm64': 1.4.0 - '@pagefind/darwin-x64': 1.4.0 - '@pagefind/freebsd-x64': 1.4.0 - '@pagefind/linux-arm64': 1.4.0 - '@pagefind/linux-x64': 1.4.0 - '@pagefind/windows-x64': 1.4.0 - - pako@0.2.9: {} - - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - - parse-entities@4.0.2: - dependencies: - '@types/unist': 2.0.11 - character-entities-legacy: 3.0.0 - character-reference-invalid: 2.0.1 - decode-named-character-reference: 1.3.0 - is-alphanumerical: 2.0.1 - is-decimal: 2.0.1 - is-hexadecimal: 2.0.1 - - parse-json@5.2.0: - dependencies: - '@babel/code-frame': 7.29.0 - error-ex: 1.3.4 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - - parse-latin@7.0.0: - dependencies: - '@types/nlcst': 2.0.3 - '@types/unist': 3.0.3 - nlcst-to-string: 4.0.0 - unist-util-modify-children: 4.0.0 - unist-util-visit-children: 3.0.0 - vfile: 6.0.3 - - parse-srcset@1.0.2: {} - - parse5-htmlparser2-tree-adapter@7.1.0: - dependencies: - domhandler: 5.0.3 - parse5: 7.3.0 - - parse5-parser-stream@7.1.2: - dependencies: - parse5: 7.3.0 - - parse5@7.3.0: - dependencies: - entities: 6.0.1 - - path-browserify@1.0.1: {} - - path-exists@4.0.0: {} - - path-is-absolute@1.0.1: {} - - path-key@3.1.1: {} - - path-parse@1.0.7: {} - - path-scurry@1.11.1: - dependencies: - lru-cache: 10.4.3 - minipass: 7.1.2 - - path-to-regexp@6.1.0: {} - - path-to-regexp@6.3.0: {} - - path-type@4.0.0: {} - - pathe@2.0.3: {} - - pend@1.2.0: {} - - photoswipe@5.4.4: {} - - piccolore@0.1.3: {} - - picocolors@1.1.1: {} - - picomatch@2.3.1: {} - - picomatch@4.0.3: {} - - pify@2.3.0: {} - - pify@5.0.0: {} - - pirates@4.0.7: {} - - pkg-dir@4.2.0: - dependencies: - find-up: 4.1.0 - - pkg-types@1.3.1: - dependencies: - confbox: 0.1.8 - mlly: 1.8.0 - pathe: 2.0.3 - - pkg-types@2.3.0: - dependencies: - confbox: 0.2.2 - exsolve: 1.0.8 - pathe: 2.0.3 - - possible-typed-array-names@1.1.0: {} - - postcss-calc@8.2.4(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-selector-parser: 6.1.2 - postcss-value-parser: 4.2.0 - - postcss-colormin@5.3.1(postcss@8.5.6): - dependencies: - browserslist: 4.28.1 - caniuse-api: 3.0.0 - colord: 2.9.3 - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - - postcss-convert-values@5.1.3(postcss@8.5.6): - dependencies: - browserslist: 4.28.1 - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - - postcss-discard-comments@5.1.2(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - - postcss-discard-duplicates@5.1.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - - postcss-discard-empty@5.1.1(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - - postcss-discard-overridden@5.1.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - - postcss-import@15.1.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - read-cache: 1.0.0 - resolve: 1.22.11 - - postcss-import@16.1.1(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - read-cache: 1.0.0 - resolve: 1.22.11 - - postcss-js@4.1.0(postcss@8.5.6): - dependencies: - camelcase-css: 2.0.1 - postcss: 8.5.6 - - postcss-load-config@3.1.4(postcss@8.5.6): - dependencies: - lilconfig: 2.1.0 - yaml: 1.10.2 - optionalDependencies: - postcss: 8.5.6 - - postcss-load-config@4.0.2(postcss@8.5.6): - dependencies: - lilconfig: 3.1.3 - yaml: 2.8.2 - optionalDependencies: - postcss: 8.5.6 - - postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.8.2): - dependencies: - lilconfig: 3.1.3 - optionalDependencies: - jiti: 1.21.7 - postcss: 8.5.6 - yaml: 2.8.2 - - postcss-merge-longhand@5.1.7(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - stylehacks: 5.1.1(postcss@8.5.6) - - postcss-merge-rules@5.1.4(postcss@8.5.6): - dependencies: - browserslist: 4.28.1 - caniuse-api: 3.0.0 - cssnano-utils: 3.1.0(postcss@8.5.6) - postcss: 8.5.6 - postcss-selector-parser: 6.1.2 - - postcss-minify-font-values@5.1.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - - postcss-minify-gradients@5.1.1(postcss@8.5.6): - dependencies: - colord: 2.9.3 - cssnano-utils: 3.1.0(postcss@8.5.6) - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - - postcss-minify-params@5.1.4(postcss@8.5.6): - dependencies: - browserslist: 4.28.1 - cssnano-utils: 3.1.0(postcss@8.5.6) - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - - postcss-minify-selectors@5.2.1(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-selector-parser: 6.1.2 - - postcss-modules-extract-imports@3.1.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - - postcss-modules-local-by-default@4.2.0(postcss@8.5.6): - dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 - postcss-selector-parser: 7.1.1 - postcss-value-parser: 4.2.0 - - postcss-modules-scope@3.2.1(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-selector-parser: 7.1.1 - - postcss-modules-values@4.0.0(postcss@8.5.6): - dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 - - postcss-modules@4.3.1(postcss@8.5.6): - dependencies: - generic-names: 4.0.0 - icss-replace-symbols: 1.1.0 - lodash.camelcase: 4.3.0 - postcss: 8.5.6 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.6) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.6) - postcss-modules-scope: 3.2.1(postcss@8.5.6) - postcss-modules-values: 4.0.0(postcss@8.5.6) - string-hash: 1.1.3 - - postcss-nested@6.2.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-selector-parser: 6.1.2 - - postcss-nesting@13.0.2(postcss@8.5.6): - dependencies: - '@csstools/selector-resolve-nested': 3.1.0(postcss-selector-parser@7.1.1) - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) - postcss: 8.5.6 - postcss-selector-parser: 7.1.1 - - postcss-normalize-charset@5.1.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - - postcss-normalize-display-values@5.1.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - - postcss-normalize-positions@5.1.1(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - - postcss-normalize-repeat-style@5.1.1(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - - postcss-normalize-string@5.1.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - - postcss-normalize-timing-functions@5.1.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - - postcss-normalize-unicode@5.1.1(postcss@8.5.6): - dependencies: - browserslist: 4.28.1 - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - - postcss-normalize-url@5.1.0(postcss@8.5.6): - dependencies: - normalize-url: 6.1.0 - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - - postcss-normalize-whitespace@5.1.1(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - - postcss-ordered-values@5.1.3(postcss@8.5.6): - dependencies: - cssnano-utils: 3.1.0(postcss@8.5.6) - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - - postcss-reduce-initial@5.1.2(postcss@8.5.6): - dependencies: - browserslist: 4.28.1 - caniuse-api: 3.0.0 - postcss: 8.5.6 - - postcss-reduce-transforms@5.1.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - - postcss-selector-parser@6.0.10: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss-selector-parser@6.1.2: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss-selector-parser@7.1.1: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss-svgo@5.1.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - svgo: 2.8.0 - - postcss-unique-selectors@5.1.1(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-selector-parser: 6.1.2 - - postcss-value-parser@4.2.0: {} - - postcss@8.5.6: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - - prettier@2.8.8: {} - - prettier@3.8.1: {} - - pretty-bytes@3.0.1: - dependencies: - number-is-nan: 1.0.1 - - pretty-bytes@5.6.0: {} - - prismjs@1.30.0: {} - - promise.series@0.2.0: {} - - prompts@2.4.2: - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - - property-information@6.5.0: {} - - property-information@7.1.0: {} - - pump@3.0.3: - dependencies: - end-of-stream: 1.4.5 - once: 1.4.0 - - punycode.js@2.3.1: {} - - punycode@2.3.1: - optional: true - - quansync@0.2.11: {} - - queue-microtask@1.2.3: {} - - radix3@1.1.2: {} - - randombytes@2.1.0: - dependencies: - safe-buffer: 5.2.1 - - read-cache@1.0.0: - dependencies: - pify: 2.3.0 - - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 - - readdirp@4.1.2: {} - - readdirp@5.0.0: {} - - reading-time@1.5.0: {} - - rechoir@0.6.2: - dependencies: - resolve: 1.22.11 - - reflect.getprototypeof@1.0.10: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - which-builtin-type: 1.2.1 - - regenerate-unicode-properties@10.2.2: - dependencies: - regenerate: 1.4.2 - - regenerate@1.4.2: {} - - regex-recursion@6.0.2: - dependencies: - regex-utilities: 2.3.0 - - regex-utilities@2.3.0: {} - - regex@6.1.0: - dependencies: - regex-utilities: 2.3.0 - - regexp.prototype.flags@1.5.4: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-errors: 1.3.0 - get-proto: 1.0.1 - gopd: 1.2.0 - set-function-name: 2.0.2 - - regexpu-core@6.4.0: - dependencies: - regenerate: 1.4.2 - regenerate-unicode-properties: 10.2.2 - regjsgen: 0.8.0 - regjsparser: 0.13.0 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.2.1 - - regjsgen@0.8.0: {} - - regjsparser@0.13.0: - dependencies: - jsesc: 3.1.0 - - rehype-autolink-headings@7.1.0: - dependencies: - '@types/hast': 3.0.4 - '@ungap/structured-clone': 1.3.0 - hast-util-heading-rank: 3.0.0 - hast-util-is-element: 3.0.0 - unified: 11.0.5 - unist-util-visit: 5.1.0 - - rehype-components@0.3.0: - dependencies: - hast-util-is-element: 3.0.0 - unist-util-visit: 5.1.0 - - rehype-expressive-code@0.41.6: - dependencies: - expressive-code: 0.41.6 - - rehype-external-links@3.0.0: - dependencies: - '@types/hast': 3.0.4 - '@ungap/structured-clone': 1.3.0 - hast-util-is-element: 3.0.0 - is-absolute-url: 4.0.1 - space-separated-tokens: 2.0.2 - unist-util-visit: 5.1.0 - - rehype-katex@7.0.1: - dependencies: - '@types/hast': 3.0.4 - '@types/katex': 0.16.8 - hast-util-from-html-isomorphic: 2.0.0 - hast-util-to-text: 4.0.2 - katex: 0.16.28 - unist-util-visit-parents: 6.0.2 - vfile: 6.0.3 - - rehype-parse@9.0.1: - dependencies: - '@types/hast': 3.0.4 - hast-util-from-html: 2.0.3 - unified: 11.0.5 - - rehype-raw@7.0.0: - dependencies: - '@types/hast': 3.0.4 - hast-util-raw: 9.1.0 - vfile: 6.0.3 - - rehype-slug@6.0.0: - dependencies: - '@types/hast': 3.0.4 - github-slugger: 2.0.0 - hast-util-heading-rank: 3.0.0 - hast-util-to-string: 3.0.1 - unist-util-visit: 5.1.0 - - rehype-stringify@10.0.1: - dependencies: - '@types/hast': 3.0.4 - hast-util-to-html: 9.0.5 - unified: 11.0.5 - - rehype@13.0.2: - dependencies: - '@types/hast': 3.0.4 - rehype-parse: 9.0.1 - rehype-stringify: 10.0.1 - unified: 11.0.5 - - remark-directive-rehype@0.4.2: - dependencies: - hastscript: 7.2.0 - unist-util-map: 3.1.3 - - remark-directive@3.0.1: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-directive: 3.1.0 - micromark-extension-directive: 3.0.2 - unified: 11.0.5 - transitivePeerDependencies: - - supports-color - - remark-gfm@4.0.1: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-gfm: 3.1.0 - micromark-extension-gfm: 3.0.0 - remark-parse: 11.0.0 - remark-stringify: 11.0.0 - unified: 11.0.5 - transitivePeerDependencies: - - supports-color - - remark-github-admonitions-to-directives@1.0.5: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-directive: 3.1.0 - unified: 11.0.5 - unist-util-visit: 5.1.0 - transitivePeerDependencies: - - supports-color - - remark-math@6.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-math: 3.0.0 - micromark-extension-math: 3.1.0 - unified: 11.0.5 - transitivePeerDependencies: - - supports-color - - remark-parse@11.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.2 - micromark-util-types: 2.0.2 - unified: 11.0.5 - transitivePeerDependencies: - - supports-color - - remark-rehype@11.1.2: - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - mdast-util-to-hast: 13.2.1 - unified: 11.0.5 - vfile: 6.0.3 - - remark-sectionize@2.1.0: - dependencies: - unist-util-find-after: 4.0.1 - unist-util-visit: 4.1.2 - - remark-smartypants@3.0.2: - dependencies: - retext: 9.0.0 - retext-smartypants: 6.2.0 - unified: 11.0.5 - unist-util-visit: 5.1.0 - - remark-stringify@11.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-to-markdown: 2.1.2 - unified: 11.0.5 - - request-light@0.5.8: {} - - request-light@0.7.0: {} - - require-directory@2.1.1: {} - - require-from-string@2.0.2: {} - - resolve-from@4.0.0: {} - - resolve-from@5.0.0: {} - - resolve@1.22.11: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - restructure@3.0.2: {} - - retext-latin@4.0.0: - dependencies: - '@types/nlcst': 2.0.3 - parse-latin: 7.0.0 - unified: 11.0.5 - - retext-smartypants@6.2.0: - dependencies: - '@types/nlcst': 2.0.3 - nlcst-to-string: 4.0.0 - unist-util-visit: 5.1.0 - - retext-stringify@4.0.0: - dependencies: - '@types/nlcst': 2.0.3 - nlcst-to-string: 4.0.0 - unified: 11.0.5 - - retext@9.0.0: - dependencies: - '@types/nlcst': 2.0.3 - retext-latin: 4.0.0 - retext-stringify: 4.0.0 - unified: 11.0.5 - - reusify@1.1.0: {} - - rollup-plugin-bundle-size@1.0.3: - dependencies: - chalk: 1.1.3 - maxmin: 2.1.0 - - rollup-plugin-postcss@4.0.2(postcss@8.5.6): - dependencies: - chalk: 4.1.2 - concat-with-sourcemaps: 1.1.0 - cssnano: 5.1.15(postcss@8.5.6) - import-cwd: 3.0.0 - p-queue: 6.6.2 - pify: 5.0.0 - postcss: 8.5.6 - postcss-load-config: 3.1.4(postcss@8.5.6) - postcss-modules: 4.3.1(postcss@8.5.6) - promise.series: 0.2.0 - resolve: 1.22.11 - rollup-pluginutils: 2.8.2 - safe-identifier: 0.4.2 - style-inject: 0.3.0 - transitivePeerDependencies: - - ts-node - - rollup-plugin-terser@7.0.2(rollup@2.79.2): - dependencies: - '@babel/code-frame': 7.29.0 - jest-worker: 26.6.2 - rollup: 2.79.2 - serialize-javascript: 4.0.0 - terser: 5.46.0 - - rollup-plugin-typescript2@0.32.1(rollup@2.79.2)(typescript@4.9.5): - dependencies: - '@rollup/pluginutils': 4.2.1 - find-cache-dir: 3.3.2 - fs-extra: 10.1.0 - resolve: 1.22.11 - rollup: 2.79.2 - tslib: 2.8.1 - typescript: 4.9.5 - - rollup-plugin-visualizer@5.14.0(rollup@2.79.2): - dependencies: - open: 8.4.2 - picomatch: 4.0.3 - source-map: 0.7.6 - yargs: 17.7.2 - optionalDependencies: - rollup: 2.79.2 - - rollup-pluginutils@2.8.2: - dependencies: - estree-walker: 0.6.1 - - rollup@2.79.2: - optionalDependencies: - fsevents: 2.3.3 - - rollup@4.57.1: - dependencies: - '@types/estree': 1.0.8 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.57.1 - '@rollup/rollup-android-arm64': 4.57.1 - '@rollup/rollup-darwin-arm64': 4.57.1 - '@rollup/rollup-darwin-x64': 4.57.1 - '@rollup/rollup-freebsd-arm64': 4.57.1 - '@rollup/rollup-freebsd-x64': 4.57.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.57.1 - '@rollup/rollup-linux-arm-musleabihf': 4.57.1 - '@rollup/rollup-linux-arm64-gnu': 4.57.1 - '@rollup/rollup-linux-arm64-musl': 4.57.1 - '@rollup/rollup-linux-loong64-gnu': 4.57.1 - '@rollup/rollup-linux-loong64-musl': 4.57.1 - '@rollup/rollup-linux-ppc64-gnu': 4.57.1 - '@rollup/rollup-linux-ppc64-musl': 4.57.1 - '@rollup/rollup-linux-riscv64-gnu': 4.57.1 - '@rollup/rollup-linux-riscv64-musl': 4.57.1 - '@rollup/rollup-linux-s390x-gnu': 4.57.1 - '@rollup/rollup-linux-x64-gnu': 4.57.1 - '@rollup/rollup-linux-x64-musl': 4.57.1 - '@rollup/rollup-openbsd-x64': 4.57.1 - '@rollup/rollup-openharmony-arm64': 4.57.1 - '@rollup/rollup-win32-arm64-msvc': 4.57.1 - '@rollup/rollup-win32-ia32-msvc': 4.57.1 - '@rollup/rollup-win32-x64-gnu': 4.57.1 - '@rollup/rollup-win32-x64-msvc': 4.57.1 - fsevents: 2.3.3 - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - sade@1.8.1: - dependencies: - mri: 1.2.0 - - safe-array-concat@1.1.3: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - has-symbols: 1.1.0 - isarray: 2.0.5 - - safe-buffer@5.2.1: {} - - safe-identifier@0.4.2: {} - - safe-push-apply@1.0.0: - dependencies: - es-errors: 1.3.0 - isarray: 2.0.5 - - safe-regex-test@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-regex: 1.2.1 - - safer-buffer@2.1.2: {} - - sanitize-html@2.17.0: - dependencies: - deepmerge: 4.3.1 - escape-string-regexp: 4.0.0 - htmlparser2: 8.0.2 - is-plain-object: 5.0.0 - parse-srcset: 1.0.2 - postcss: 8.5.6 - - sax@1.4.4: {} - - scrl@2.0.0: {} - - scule@1.3.0: {} - - semver@6.3.1: {} - - semver@7.7.3: {} - - serialize-javascript@4.0.0: - dependencies: - randombytes: 2.1.0 - - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - - set-function-name@2.0.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.2 - - set-proto@1.0.0: - dependencies: - dunder-proto: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - - sharp@0.34.5: - dependencies: - '@img/colour': 1.0.0 - detect-libc: 2.1.2 - semver: 7.7.3 - optionalDependencies: - '@img/sharp-darwin-arm64': 0.34.5 - '@img/sharp-darwin-x64': 0.34.5 - '@img/sharp-libvips-darwin-arm64': 1.2.4 - '@img/sharp-libvips-darwin-x64': 1.2.4 - '@img/sharp-libvips-linux-arm': 1.2.4 - '@img/sharp-libvips-linux-arm64': 1.2.4 - '@img/sharp-libvips-linux-ppc64': 1.2.4 - '@img/sharp-libvips-linux-riscv64': 1.2.4 - '@img/sharp-libvips-linux-s390x': 1.2.4 - '@img/sharp-libvips-linux-x64': 1.2.4 - '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 - '@img/sharp-libvips-linuxmusl-x64': 1.2.4 - '@img/sharp-linux-arm': 0.34.5 - '@img/sharp-linux-arm64': 0.34.5 - '@img/sharp-linux-ppc64': 0.34.5 - '@img/sharp-linux-riscv64': 0.34.5 - '@img/sharp-linux-s390x': 0.34.5 - '@img/sharp-linux-x64': 0.34.5 - '@img/sharp-linuxmusl-arm64': 0.34.5 - '@img/sharp-linuxmusl-x64': 0.34.5 - '@img/sharp-wasm32': 0.34.5 - '@img/sharp-win32-arm64': 0.34.5 - '@img/sharp-win32-ia32': 0.34.5 - '@img/sharp-win32-x64': 0.34.5 - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - shelljs-live@0.0.5(shelljs@0.8.5): - dependencies: - cross-spawn: 7.0.6 - shelljs: 0.8.5 - - shelljs@0.8.5: - dependencies: - glob: 7.2.3 - interpret: 1.4.0 - rechoir: 0.6.2 - - shiki@3.22.0: - dependencies: - '@shikijs/core': 3.22.0 - '@shikijs/engine-javascript': 3.22.0 - '@shikijs/engine-oniguruma': 3.22.0 - '@shikijs/langs': 3.22.0 - '@shikijs/themes': 3.22.0 - '@shikijs/types': 3.22.0 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - - side-channel-list@1.0.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - - side-channel-map@1.0.1: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 - - side-channel-weakmap@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 - side-channel-map: 1.0.1 - - side-channel@1.1.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - side-channel-list: 1.0.0 - side-channel-map: 1.0.1 - side-channel-weakmap: 1.0.2 - - signal-exit@4.1.0: {} - - sisteransi@1.0.5: {} - - sitemap@8.0.2: - dependencies: - '@types/node': 17.0.45 - '@types/sax': 1.2.7 - arg: 5.0.2 - sax: 1.4.4 - - slash@3.0.0: {} - - smol-toml@1.6.0: {} - - source-map-js@1.2.1: {} - - source-map-resolve@0.6.0: - dependencies: - atob: 2.1.2 - decode-uri-component: 0.2.2 - - source-map-support@0.5.21: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - - source-map@0.6.1: {} - - source-map@0.7.6: {} - - sourcemap-codec@1.4.8: {} - - space-separated-tokens@2.0.2: {} - - stable@0.1.8: {} - - stop-iteration-iterator@1.1.0: - dependencies: - es-errors: 1.3.0 - internal-slot: 1.1.0 - - stream-replace-string@2.0.0: {} - - string-hash@1.1.3: {} - - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.2 - - string-width@7.2.0: - dependencies: - emoji-regex: 10.6.0 - get-east-asian-width: 1.4.0 - strip-ansi: 7.1.2 - - string.prototype.matchall@4.0.12: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-symbols: 1.1.0 - internal-slot: 1.1.0 - regexp.prototype.flags: 1.5.4 - set-function-name: 2.0.2 - side-channel: 1.1.0 - - string.prototype.trim@1.2.10: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-data-property: 1.1.4 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-object-atoms: 1.1.1 - has-property-descriptors: 1.0.2 - - string.prototype.trimend@1.0.9: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - string.prototype.trimstart@1.0.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - stringify-entities@4.0.4: - dependencies: - character-entities-html4: 2.1.0 - character-entities-legacy: 3.0.0 - - strip-ansi@3.0.1: - dependencies: - ansi-regex: 2.1.1 - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - strip-ansi@7.1.2: - dependencies: - ansi-regex: 6.2.2 - - strnum@2.1.2: {} - - style-inject@0.3.0: {} - - stylehacks@5.1.1(postcss@8.5.6): - dependencies: - browserslist: 4.28.1 - postcss: 8.5.6 - postcss-selector-parser: 6.1.2 - - stylus@0.64.0: - dependencies: - '@adobe/css-tools': 4.3.3 - debug: 4.4.3 - glob: 10.5.0 - sax: 1.4.4 - source-map: 0.7.6 - transitivePeerDependencies: - - supports-color - - sucrase@3.35.1: - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - commander: 4.1.1 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.7 - tinyglobby: 0.2.15 - ts-interface-checker: 0.1.13 - - supports-color@2.0.0: {} - - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 - - supports-preserve-symlinks-flag@1.0.0: {} - - svelte2tsx@0.7.47(svelte@5.49.1)(typescript@5.9.3): - dependencies: - dedent-js: 1.0.1 - scule: 1.3.0 - svelte: 5.49.1 - typescript: 5.9.3 - - svelte@5.49.1: - dependencies: - '@jridgewell/remapping': 2.3.5 - '@jridgewell/sourcemap-codec': 1.5.5 - '@sveltejs/acorn-typescript': 1.0.8(acorn@8.15.0) - '@types/estree': 1.0.8 - acorn: 8.15.0 - aria-query: 5.3.2 - axobject-query: 4.1.0 - clsx: 2.1.1 - devalue: 5.6.2 - esm-env: 1.2.2 - esrap: 2.2.2 - is-reference: 3.0.3 - locate-character: 3.0.0 - magic-string: 0.30.21 - zimmerframe: 1.1.4 - - svgo@2.8.0: - dependencies: - '@trysound/sax': 0.2.0 - commander: 7.2.0 - css-select: 4.3.0 - css-tree: 1.1.3 - csso: 4.2.0 - picocolors: 1.1.1 - stable: 0.1.8 - - svgo@3.3.2: - dependencies: - '@trysound/sax': 0.2.0 - commander: 7.2.0 - css-select: 5.2.2 - css-tree: 2.3.1 - css-what: 6.2.2 - csso: 5.0.5 - picocolors: 1.1.1 - - swup-morph-plugin@1.3.0(swup@4.8.2): - dependencies: - '@swup/plugin': 4.0.0 - morphdom: 2.7.8 - swup: 4.8.2 - - swup@4.8.2: - dependencies: - delegate-it: 6.3.0 - opencollective-postinstall: 2.0.3 - path-to-regexp: 6.3.0 - - tailwindcss@3.4.19(yaml@2.8.2): - dependencies: - '@alloc/quick-lru': 5.2.0 - arg: 5.0.2 - chokidar: 3.6.0 - didyoumean: 1.2.2 - dlv: 1.1.3 - fast-glob: 3.3.3 - glob-parent: 6.0.2 - is-glob: 4.0.3 - jiti: 1.21.7 - lilconfig: 3.1.3 - micromatch: 4.0.8 - normalize-path: 3.0.0 - object-hash: 3.0.0 - picocolors: 1.1.1 - postcss: 8.5.6 - postcss-import: 15.1.0(postcss@8.5.6) - postcss-js: 4.1.0(postcss@8.5.6) - postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.8.2) - postcss-nested: 6.2.0(postcss@8.5.6) - postcss-selector-parser: 6.1.2 - resolve: 1.22.11 - sucrase: 3.35.1 - transitivePeerDependencies: - - tsx - - yaml - - tar@7.5.7: - dependencies: - '@isaacs/fs-minipass': 4.0.1 - chownr: 3.0.0 - minipass: 7.1.2 - minizlib: 3.1.0 - yallist: 5.0.0 - - terser@5.46.0: - dependencies: - '@jridgewell/source-map': 0.3.11 - acorn: 8.15.0 - commander: 2.20.3 - source-map-support: 0.5.21 - - thenify-all@1.6.0: - dependencies: - thenify: 3.3.1 - - thenify@3.3.1: - dependencies: - any-promise: 1.3.0 - - tiny-glob@0.2.9: - dependencies: - globalyzer: 0.1.0 - globrex: 0.1.2 - - tiny-inflate@1.0.3: {} - - tinyexec@0.3.2: {} - - tinyexec@1.0.2: {} - - tinyglobby@0.2.15: - dependencies: - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - tosource@2.0.0-alpha.3: {} - - tr46@0.0.3: {} - - trim-lines@3.0.1: {} - - trough@2.2.0: {} - - ts-interface-checker@0.1.13: {} - - tsconfck@3.1.6(typescript@5.9.3): - optionalDependencies: - typescript: 5.9.3 - - tslib@2.8.1: {} - - type-fest@4.41.0: {} - - typed-array-buffer@1.0.3: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-typed-array: 1.1.15 - - typed-array-byte-length@1.0.3: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - - typed-array-byte-offset@1.0.4: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - reflect.getprototypeof: 1.0.10 - - typed-array-length@1.0.7: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - is-typed-array: 1.1.15 - possible-typed-array-names: 1.1.0 - reflect.getprototypeof: 1.0.10 - - typed-query-selector@2.12.0: {} - - typesafe-path@0.2.2: {} - - typescript-auto-import-cache@0.3.6: - dependencies: - semver: 7.7.3 - - typescript@4.9.5: {} - - typescript@5.9.3: {} - - uc.micro@2.1.0: {} - - ufo@1.6.3: {} - - ultrahtml@1.6.0: {} - - unbox-primitive@1.1.0: - dependencies: - call-bound: 1.0.4 - has-bigints: 1.1.0 - has-symbols: 1.1.0 - which-boxed-primitive: 1.1.1 - - uncrypto@0.1.3: {} - - undici-types@7.16.0: {} - - undici@7.20.0: {} - - unicode-canonical-property-names-ecmascript@2.0.1: {} - - unicode-match-property-ecmascript@2.0.0: - dependencies: - unicode-canonical-property-names-ecmascript: 2.0.1 - unicode-property-aliases-ecmascript: 2.2.0 - - unicode-match-property-value-ecmascript@2.2.1: {} - - unicode-properties@1.4.1: - dependencies: - base64-js: 1.5.1 - unicode-trie: 2.0.0 - - unicode-property-aliases-ecmascript@2.2.0: {} - - unicode-trie@2.0.0: - dependencies: - pako: 0.2.9 - tiny-inflate: 1.0.3 - - unified@11.0.5: - dependencies: - '@types/unist': 3.0.3 - bail: 2.0.2 - devlop: 1.1.0 - extend: 3.0.2 - is-plain-obj: 4.1.0 - trough: 2.2.0 - vfile: 6.0.3 - - unifont@0.5.2: - dependencies: - css-tree: 3.1.0 - ofetch: 1.5.1 - ohash: 2.0.11 - - unist-util-find-after@4.0.1: - dependencies: - '@types/unist': 2.0.11 - unist-util-is: 5.2.1 - - unist-util-find-after@5.0.0: - dependencies: - '@types/unist': 3.0.3 - unist-util-is: 6.0.1 - - unist-util-is@5.2.1: - dependencies: - '@types/unist': 2.0.11 - - unist-util-is@6.0.1: - dependencies: - '@types/unist': 3.0.3 - - unist-util-map@3.1.3: - dependencies: - '@types/unist': 2.0.11 - - unist-util-modify-children@4.0.0: - dependencies: - '@types/unist': 3.0.3 - array-iterate: 2.0.1 - - unist-util-position@5.0.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-remove-position@5.0.0: - dependencies: - '@types/unist': 3.0.3 - unist-util-visit: 5.1.0 - - unist-util-stringify-position@4.0.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-visit-children@3.0.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-visit-parents@5.1.3: - dependencies: - '@types/unist': 2.0.11 - unist-util-is: 5.2.1 - - unist-util-visit-parents@6.0.2: - dependencies: - '@types/unist': 3.0.3 - unist-util-is: 6.0.1 - - unist-util-visit@4.1.2: - dependencies: - '@types/unist': 2.0.11 - unist-util-is: 5.2.1 - unist-util-visit-parents: 5.1.3 - - unist-util-visit@5.1.0: - dependencies: - '@types/unist': 3.0.3 - unist-util-is: 6.0.1 - unist-util-visit-parents: 6.0.2 - - universalify@2.0.1: {} - - unstorage@1.17.4(@vercel/functions@2.2.13): - dependencies: - anymatch: 3.1.3 - chokidar: 5.0.0 - destr: 2.0.5 - h3: 1.15.5 - lru-cache: 11.2.5 - node-fetch-native: 1.6.7 - ofetch: 1.5.1 - ufo: 1.6.3 - optionalDependencies: - '@vercel/functions': 2.2.13 - - update-browserslist-db@1.2.3(browserslist@4.28.1): - dependencies: - browserslist: 4.28.1 - escalade: 3.2.0 - picocolors: 1.1.1 - - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - optional: true - - util-deprecate@1.0.2: {} - - vfile-location@5.0.3: - dependencies: - '@types/unist': 3.0.3 - vfile: 6.0.3 - - vfile-message@4.0.3: - dependencies: - '@types/unist': 3.0.3 - unist-util-stringify-position: 4.0.0 - - vfile@6.0.3: - dependencies: - '@types/unist': 3.0.3 - vfile-message: 4.0.3 - - vite@6.4.1(@types/node@25.2.0)(jiti@1.21.7)(stylus@0.64.0)(terser@5.46.0)(yaml@2.8.2): - dependencies: - esbuild: 0.25.12 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.57.1 - tinyglobby: 0.2.15 - optionalDependencies: - '@types/node': 25.2.0 - fsevents: 2.3.3 - jiti: 1.21.7 - stylus: 0.64.0 - terser: 5.46.0 - yaml: 2.8.2 - - vitefu@1.1.1(vite@6.4.1(@types/node@25.2.0)(jiti@1.21.7)(stylus@0.64.0)(terser@5.46.0)(yaml@2.8.2)): - optionalDependencies: - vite: 6.4.1(@types/node@25.2.0)(jiti@1.21.7)(stylus@0.64.0)(terser@5.46.0)(yaml@2.8.2) - - volar-service-css@0.0.68(@volar/language-service@2.4.28): - dependencies: - vscode-css-languageservice: 6.3.9 - vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.1.0 - optionalDependencies: - '@volar/language-service': 2.4.28 - - volar-service-emmet@0.0.68(@volar/language-service@2.4.28): - dependencies: - '@emmetio/css-parser': 0.4.1 - '@emmetio/html-matcher': 1.3.0 - '@vscode/emmet-helper': 2.11.0 - vscode-uri: 3.1.0 - optionalDependencies: - '@volar/language-service': 2.4.28 - - volar-service-html@0.0.68(@volar/language-service@2.4.28): - dependencies: - vscode-html-languageservice: 5.6.1 - vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.1.0 - optionalDependencies: - '@volar/language-service': 2.4.28 - - volar-service-prettier@0.0.68(@volar/language-service@2.4.28)(prettier@3.8.1): - dependencies: - vscode-uri: 3.1.0 - optionalDependencies: - '@volar/language-service': 2.4.28 - prettier: 3.8.1 - - volar-service-typescript-twoslash-queries@0.0.68(@volar/language-service@2.4.28): - dependencies: - vscode-uri: 3.1.0 - optionalDependencies: - '@volar/language-service': 2.4.28 - - volar-service-typescript@0.0.68(@volar/language-service@2.4.28): - dependencies: - path-browserify: 1.0.1 - semver: 7.7.3 - typescript-auto-import-cache: 0.3.6 - vscode-languageserver-textdocument: 1.0.12 - vscode-nls: 5.2.0 - vscode-uri: 3.1.0 - optionalDependencies: - '@volar/language-service': 2.4.28 - - volar-service-yaml@0.0.68(@volar/language-service@2.4.28): - dependencies: - vscode-uri: 3.1.0 - yaml-language-server: 1.19.2 - optionalDependencies: - '@volar/language-service': 2.4.28 - - vscode-css-languageservice@6.3.9: - dependencies: - '@vscode/l10n': 0.0.18 - vscode-languageserver-textdocument: 1.0.12 - vscode-languageserver-types: 3.17.5 - vscode-uri: 3.1.0 - - vscode-html-languageservice@5.6.1: - dependencies: - '@vscode/l10n': 0.0.18 - vscode-languageserver-textdocument: 1.0.12 - vscode-languageserver-types: 3.17.5 - vscode-uri: 3.1.0 - - vscode-json-languageservice@4.1.8: - dependencies: - jsonc-parser: 3.3.1 - vscode-languageserver-textdocument: 1.0.12 - vscode-languageserver-types: 3.17.5 - vscode-nls: 5.2.0 - vscode-uri: 3.1.0 - - vscode-jsonrpc@8.2.0: {} - - vscode-languageserver-protocol@3.17.5: - dependencies: - vscode-jsonrpc: 8.2.0 - vscode-languageserver-types: 3.17.5 - - vscode-languageserver-textdocument@1.0.12: {} - - vscode-languageserver-types@3.17.5: {} - - vscode-languageserver@9.0.1: - dependencies: - vscode-languageserver-protocol: 3.17.5 - - vscode-nls@5.2.0: {} - - vscode-uri@3.1.0: {} - - web-namespaces@2.0.1: {} - - webidl-conversions@3.0.1: {} - - whatwg-encoding@3.1.1: - dependencies: - iconv-lite: 0.6.3 - - whatwg-mimetype@4.0.0: {} - - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - - which-boxed-primitive@1.1.1: - dependencies: - is-bigint: 1.1.0 - is-boolean-object: 1.2.2 - is-number-object: 1.1.1 - is-string: 1.1.1 - is-symbol: 1.1.1 - - which-builtin-type@1.2.1: - dependencies: - call-bound: 1.0.4 - function.prototype.name: 1.1.8 - has-tostringtag: 1.0.2 - is-async-function: 2.1.1 - is-date-object: 1.1.0 - is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.2 - is-regex: 1.2.1 - is-weakref: 1.1.1 - isarray: 2.0.5 - which-boxed-primitive: 1.1.1 - which-collection: 1.0.2 - which-typed-array: 1.1.20 - - which-collection@1.0.2: - dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.4 - - which-pm-runs@1.1.0: {} - - which-typed-array@1.1.20: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - for-each: 0.3.5 - get-proto: 1.0.1 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - widest-line@5.0.0: - dependencies: - string-width: 7.2.0 - - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.3 - string-width: 5.1.2 - strip-ansi: 7.1.2 - - wrap-ansi@9.0.2: - dependencies: - ansi-styles: 6.2.3 - string-width: 7.2.0 - strip-ansi: 7.1.2 - - wrappy@1.0.2: {} - - xxhash-wasm@1.1.0: {} - - y18n@5.0.8: {} - - yallist@3.1.1: {} - - yallist@5.0.0: {} - - yaml-language-server@1.19.2: - dependencies: - '@vscode/l10n': 0.0.18 - ajv: 8.17.1 - ajv-draft-04: 1.0.0(ajv@8.17.1) - lodash: 4.17.21 - prettier: 3.8.1 - request-light: 0.5.8 - vscode-json-languageservice: 4.1.8 - vscode-languageserver: 9.0.1 - vscode-languageserver-textdocument: 1.0.12 - vscode-languageserver-types: 3.17.5 - vscode-uri: 3.1.0 - yaml: 2.7.1 - - yaml@1.10.2: {} - - yaml@2.7.1: {} - - yaml@2.8.2: {} - - yargs-parser@21.1.1: {} - - yargs@17.7.2: - dependencies: - cliui: 8.0.1 - escalade: 3.2.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - - yauzl@2.10.0: - dependencies: - buffer-crc32: 0.2.13 - fd-slicer: 1.1.0 - - yocto-queue@1.2.2: {} - - yocto-spinner@0.2.3: - dependencies: - yoctocolors: 2.1.2 - - yoctocolors@2.1.2: {} - - zimmerframe@1.1.4: {} - - zod-to-json-schema@3.25.1(zod@3.25.76): - dependencies: - zod: 3.25.76 - - zod-to-ts@1.2.0(typescript@5.9.3)(zod@3.25.76): - dependencies: - typescript: 5.9.3 - zod: 3.25.76 - - zod@3.25.76: {} - - zwitch@2.0.4: {} diff --git a/postcss.config.mjs b/postcss.config.mjs deleted file mode 100644 index 632eeda..0000000 --- a/postcss.config.mjs +++ /dev/null @@ -1,11 +0,0 @@ -import postcssImport from 'postcss-import'; -import postcssNesting from 'tailwindcss/nesting/index.js'; -import tailwindcss from 'tailwindcss'; - -export default { - plugins: { - 'postcss-import': postcssImport, // to combine multiple css files - 'tailwindcss/nesting': postcssNesting, - tailwindcss: tailwindcss, - } -}; diff --git a/posts/1/index.html b/posts/1/index.html new file mode 100644 index 0000000..f5d0f1f --- /dev/null +++ b/posts/1/index.html @@ -0,0 +1,1260 @@ + 腾讯EO加速cloudflare内网穿透 - Allen2030's Blog + + + + +
    381 字
    2 分钟
    腾讯EO加速cloudflare内网穿透
    2025-07-10
    0 次访问 +
    🤖AI 摘要
    Allen AI

    部署cloudflare内网穿透#

    首先先部署cloudflare内网穿透,建议看技术爬爬虾视频

    + +

    注意:不要穿透你要使用EO加速的域名,请穿透一个不用的子域名

    +

    使用EO加速#

    完成上方步骤后打开腾讯EO注册账号使用兑换码激活免费套餐,中国大陆用户更推荐在腾讯云平台激活

    国际版点击兑换免费套餐即可

    国内腾讯云在下方图片位置激活即可

    这里以国内腾讯云平台演示

    随后添加域名,点击新增站点

    然后输入你的域名,例如我的就是fis.ink,再点击开始接入

    随后点击绑定至套餐,我这里绑定了,所以没有了,兑换完成是会有一个免费套餐的选择绑定即可
    +

    然后腾讯云会给你一个txt记录,在你当前的dns服务商添加即可。然后点击验证完成验证。

    随后点击域名管理-添加域名
    +

    按照我下方的填

    点击下一步

    然后添加cname记录

    例如我在cloudflare就按照下方添加,其他dns同理。

    如果在cloudflare请注意代理状态一定要为仅DNS


    +添加完成后等待一段时间腾讯EO就会免费为你申请SSL证书,开启免费https访问

    然后就可以访问自己的网站了

    腾讯EO加速cloudflare内网穿透
    https://blog.fis.ink/posts/1/
    作者
    Allen2030
    发布于
    2025-07-10
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/10/index.html b/posts/10/index.html new file mode 100644 index 0000000..a116701 --- /dev/null +++ b/posts/10/index.html @@ -0,0 +1,1252 @@ + 极域 - Allen2030's Blog + + + + +
    13 字
    1 分钟
    极域
    2025-03-07
    0 次访问 +
    🤖AI 摘要
    Allen AI

    2025.3.6 最新密码xxxxxxxx2023#

    +

    此文章由 yaoyikkudeyupy 发布#

    极域
    https://blog.fis.ink/posts/10/
    作者
    Allen2030
    发布于
    2025-03-07
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/11/index.html b/posts/11/index.html new file mode 100644 index 0000000..1048e70 --- /dev/null +++ b/posts/11/index.html @@ -0,0 +1,1263 @@ + 一班热榜历史记录2024-2025(下半学期) - Allen2030's Blog + + + + +
    108 字
    1 分钟
    一班热榜历史记录2024-2025(下半学期)
    2025-02-28
    0 次访问 +
    🤖AI 摘要
    Allen AI

    2025-2-28#

    好:

      +
    1. 今天有 12 名同学上台领奖 👍
      +不好:
    2. +
    3. 今日有一名同学“”别人东西
    4. +
    +

    2025-2-27#

    好:

      +
    1. 今天开业第一天。祝看到热榜的人“幸福快乐,平安健康”(网页版也开始营业了,祝看到这行字的人“蛇年新禧,祥福并济”)
    2. +

    不好:

      +
    1. 今天有几位同学没交罚写 老师也会生气的!
    2. +
    +

    回顾历史#

    https://blog.fis.ink/archives/yi-ban-re-bang-li-shi-ji-lu-2024-2025-shang-ban-xue-qi

    一班热榜历史记录2024-2025(下半学期)
    https://blog.fis.ink/posts/11/
    作者
    Allen2030
    发布于
    2025-02-28
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/12/index.html b/posts/12/index.html new file mode 100644 index 0000000..0ad1dff --- /dev/null +++ b/posts/12/index.html @@ -0,0 +1,1247 @@ + 我的ai网站发布啦 - Allen2030's Blog + + + + +
    1 字
    1 分钟
    我的ai网站发布啦
    2024-09-09
    + AI
    0 次访问 +
    🤖AI 摘要
    Allen AI
    我的ai网站发布啦
    https://blog.fis.ink/posts/12/
    作者
    Allen2030
    发布于
    2024-09-09
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/13/index.html b/posts/13/index.html new file mode 100644 index 0000000..f7d1dca --- /dev/null +++ b/posts/13/index.html @@ -0,0 +1,1437 @@ + 一班热榜历史记录2024-2025(上半学期) - Allen2030's Blog + + + + +
    3760 字
    19 分钟
    一班热榜历史记录2024-2025(上半学期)
    2024-09-20
    0 次访问 +
    🤖AI 摘要
    Allen AI
    +

    完结

    +
    +

    https://blog.fishcpy.top/archives/yi-ban-re-bang-li-shi-ji-lu-2024-2025-xia-ban-xue-qi

    +

    2024.12.27 星期五#

    无图片

    +

    2024.12.26 星期四#

    好 1.唐语彤帮助老师发口罩 2.今天语文课老师听课,同学们表现优异 不好 1.体育课后,两名同学自由搏击

    +

    2024.12.25 星期三#

    好 1.语文模拟考优秀平均分比年级优秀平均分高出一半(太棒了) 2.英语小测一名同学满分💯 不好 1.王yu好 1.语文模拟考优秀平均分比年级优秀平均分高出一半(太棒了) 2.英语小测一名同学满分💯 不好 1.王昱涵值日太不认真了跟没扫一样,批评他

    +

    2024.12.24 星期二#

    无图片

    +

    2024.12.23 星期一#

    无,图片

    +

    2024.12.20 星期五#

    好 1.今日数学小测多名同学100分 💯 不好 1.今日多名同学因上生物课时扰乱课堂纪律,导致生物老师直接火山爆发🔥

    +

    温馨提示:距离期末考试还有18天

    +
    +

    2024.12.19 星期四#

    +

    考试!#

    +
    +

    2024.12.18 星期三#

    好 1.明天模考 2.二班一名同学好心给我们班做值日(其实是被罚的) 不好 1.今日历史课两名男生一直说话,让历史老师发火🔥

    +

    2024.12.16 星期一#

    好 1.今日卫生表现不错,没让二班扣分 不好 1.今日有一些同学在道法课上大闹天宫 2.今日多名同学给地理老师负荆请罪

    +

    2024.12.13 星期五#

    好 1.英语听写六名同学100分 2.王昕妍,陆子俊,刘嘉乐被老师评为整理收纳小能手 不好 1.今日午休一些男生在拆家被老师发现实施爱的教育

    +

    2024.12.12 星期四#

    好 1.今日有同学默写pronous全对 不好 1.道法课上同学们开天辟地

    +

    2024.12.11 星期三#

    好 1.今日李承宣数学小测100分(进步很大) 不好 1.今日有很多男生的羽毛球丢了(看起来很伤心),建议下次别带了,好好学习

    +

    2024.12.10 星期二#

    好 1.今日六名同学数学小测100分 不好 1。今日上课有同学太energetic了

    +

    2024.12.9 星期一#

    好 1.今日班级获得六星班级 不好 1.今日体活课三名同学玩羽毛球被点名 2.今日班级出现了新大遍超人(翻译:抄最多)

    +

    2024.12.6 星期五#

    好 1.今日多名同学英语听写全对 不好 1.今日地理课两名同学罚站 2.今日许多男生被罚跑400米

    +

    2024.12.5 星期四#

    无图片

    +

    2024.12.4 星期三#

    好 1.数学阶段测试张宇泽同学轻松拿下年纪和班级双第一👍 不好 1.今天又有一名男生弄坏了班级公共器材 2.今天音乐课四名男生被老师留下

    +

    2024.12.3 星期二#

    好 1.班级几名同学主动领取运动器材 不好 1.某位男生私自借高年级运动器材并损坏

    +

    2024.12.2 星期一#

    好 1.今日班级获得 三帆星旗小熊 2.今日地理课几位同学不用写作业 不好 今日有几位同学上课老说话

    +

    2024.11.29 星期五#

    好 1.数学考试同学们表现优异,值得表扬👍 2.索林熙数学课被表扬,继续努力 不好 1.某名同学被调到“金牌VIP”座位 2.音乐课某人“cossplay”蚂蚱

    +

    2024.11.28 星期四#

    无图片 数学老师信息: 课前小测共有39位同学获得满分💯

    +

    2024.11.27 星期三#

    好 1.今日数学小测多名同学100分 不好 1.英语课纪律不好 2.今日有一名同学再次没写完作业

    +

    2024.11.26 星期二#

    好 1.闫博凯同学数学公开课讲题思路清晰被表扬 2.部分同学在课间积极讨论数学问题 不好 1.三名同学在食堂“传达情报”被抓捕

    +

    2024.11.25 星期一#

    好 1.上周获得五星班级(继续加油) 2.雨给郑讲题 3.闫博凯给李子宇贴心披外套 wo! 不好 1.早读三名同学说话 2.地理课三名同学习题抄写 3.英语课三名同学总说话

    +

    2024.11.22 星期五#

    好 1.今天语文默写22名同学满分 2.经过全班共同努力,争取到了下周二的数学公开课

    +

    2024.11.21 星期四#

    好 1.今天数学小测32同学💯分 2.体育课老师表扬了三名女生 不好 无

    +

    2024.11.20 星期三#

    好 1.今天数学小测多名同学💯分 不好 1.自习课一名同学“创意DIY” 2.某名同学生物课“神游天外” 班主任信息 大课间,唐语彤,张耘卓奋笔疾书。刘溢昕张紫涵在背古诗。王思萌,张雨泽,马敏萱,郑旭晴,闫博凯,郭佳怡,孟诗颖在安静学习。王欣妍问完各科老师问题,还在背初中语文古诗词拓展。

    +

    2024.11.19 星期二#

    好 1.英语阅读单词梳理许多同学积极发言 2.同学们数学小条积极改错 不好 1.李同学喜提跑步大礼包 2。某位同学体育课玩闹被抓

    +

    2024.11.18 星期一#

    无图片 数学老师信息 今天早上进行了第1、2章的基础知识过关,共有20名同学一次性通关。恭喜以下同学 王思萌,侯芊黛,刘溢昕,刘佳懿,张耘卓,张雨泽,孟诗颖,王昕妍,李子宇,闫博凯,于浩楠,陈骏洁,姜子跃,王腾煊,唐语彤,郑旭晴,杜明露,李嘉晟,陆子俊,李泽辰。

    +

    2024.11.15 星期五#

    无图片

    +

    2024.11.14 星期四#

    无图片

    +

    2024.11.13星期三#

    好 1、今日数学计算多人100分 2、今日课间多名同学认真学习 不好 1、有一位同学被地理老师罚写 2、有一位同学地理课上写作业 3、今日有一位同学午休搞破坏 4、有一位同学不做课前准备(多次)

    +

    2024.11.12星期二#

    好 1、李承宣遵守班级规定,知错就改 2、数学课上小测27人全对 3、数学错题同学积极改错 不好 1、今日某位老师抓拍午休混乱瞬间 2、王腾煊午休奇怪睡姿(今日奇怪事件)

    +

    2024.11.11星期一#

    好 1、毛立珑数学课被老师表扬 2、数学小测很多同学满分 不好 1、一名同学罚抄时写“天书”

    +

    2024.11.8 星期五#

    好 1.今日英语听写很多人听写100分 2.今日有一些同学学习态度十分不错 不好 1.今日有一位同学因为某些原因扣了文明一分 2.今日英语课有很多人笑 3.今日有多名同学没完成作业

    +

    2024.11.7 星期四#

    好 1.索林熙今日上课被数学老师表扬 2.今日毛立龙英语练习满分 不好 1.今日有一位同学给书改名(语文改甲骨文,英语改鸟语,历史改拉史。。。) 2.今日生物课纪律不好

    +

    2024.11.6 星期三#

    好 1,.今天早读大多数同学按时背诵短文 2.李承宣英语课被老师表扬 3.李子宇同学引体向上做了三个 不好 1.一名同学音乐课活跃过度 2.英语课有一部分人没有按时交英语作业,喜提罚抄一遍

    +

    2024.11.5 星期二#

    好 1.今日有些人贡献口罩给同学 2.数学课有些同学回答问题 不好 1.今日好多同学午休写作业吵闹 2.今日有三名同学在文明就餐区吃饭

    +

    2024.11.4 星期一#

    好 1.今日唐雨彤在班级里修复地板 不好 1.今日有很多同学没有完成英语作业 2.今日卫生扣了一分

    +

    2024.11.1 星期五#

    好 1.今日英语听写20人满分 2.在考试中有很多同学获得优秀奖进步奖 3.今日李嘉晟多次主动回答问题 4今日有很多同学在班级里学习 不好 1.今日舞蹈有两人逃课 2.今日上课有很多人没做课前准备 3今日上操有同学乱动乱说话

    +

    2024.10.31 星期四#

    无,图片

    +

    2024.10.30 星期三#

    无,图片

    +

    2024.10.29 星期二#

    考试,无

    +

    2024.10.28 星期一#

    没有图片 今日有考试

    +

    2024.10.25 星期五#

    好 1 今日默写有 11 名同学 100 分 不好 1 无,大家都很棒 每日一笑 1 今日班级进行了 2b 铅笔争夺战,伤亡人众多(伤是发出叫声,亡是没抢到) 2 今日课间 有一位同学被老师罚叫了100“鹅” 3 今日生物课有一位同学PK输了,用抹布擦脸 最后祝大家,下周星期一、星期二都能取得理想成绩。 –fish 2024.10.25

    +

    2024.10.24 星期四#

    好 1 有 22 名同学语文小测满分💯 2 今日李嘉晟多次回答问题 不好 1 有一位同学上课迟到 5 分钟 2 有几位同学没有做课前准备

    +

    2024.10.23 星期三#

    好 1 今日龚晟鑫第一个背完英语 2 17 名同学语文听写全对 3 李承宣上课认真 不好 1 今日有个别同学没写英语作业 2 今日还有几位同学上体育课违反纪律 每日一笑 今日两位同学在课间写天书

    +

    2024.10.22 星期二#

    没有图片,无热榜 年纪表扬👍 优秀班干部:侯芊黛,唐语彤,刘佳懿 优秀课代表:刘溢昕,王思萌,张云卓 学习标兵:于浩楠,张宇泽,李子宇 主动帮忙打扫卫生:刘嘉乐,申嘉怡,李承轩,王沛禹,郑旭晴,张云卓 班主任信息 今日小测后八首古诗默写。以下同学全对:刘佳懿,杜明露,李泽辰,王思萌,于浩楠,王腾煊,陈骏洁。错一个的同学有闫博凯,白晰,张雨泽,侯芊黛,陆子俊,郑旭晴,辛栋,李子宇,姜子跃。其中白晰同学进步明显,态度积极,特此表扬。明天默写继续听写这八首古诗。期待同学们更好的巩固。

    +

    2024.10.21 星期一#

    好 1 今天班级获得六星班级 2龚晟鑫给马一然饭卡 不好 1 有几位同学没写作业 班主任信息 上一周表现优秀的班委(以下为班委年级组评选) 学习标兵:于浩楠,张雨泽,李子宇 优秀班干部:侯芊黛,唐语彤,刘佳懿 优秀课代表:刘溢昕,王思萌,张耘卓 运动会助人为乐,年级表彰卫生小组为张耘卓小组。组员刘嘉乐,申嘉怡,李承轩,王沛禹,郑旭晴。

    +

    2024.10.18 星期五 运动会#

    今日无热榜 运动会图库 点这里

    +

    2024.10.17 星期四 运动会#

    好 1 龚晟鑫和张雨泽提供自助餐 2 班委们很负责 3 今日运动员们十分卖力 4 王昕妍和刘佳懿无私奉献 不好 1 有几位同学违反纪律 运动会图库 点击这里

    +

    2024.10.16 星期三#

    好 1 李嘉晟上课十分认真 2 今日有十个人听写全对 💯 不好 1 无

    +

    2024.10.15 星期二#

    好 1 今日耿思凡主动借饭卡给索林熙 2 李承宣课上被老师表扬 👍 3 今日语文听写 15 个全对💯 不好 1 今日某人没写英语作业(小马哥)🐎 2 两位同学记律太差👎 班主任信息 今天继续听写论语十二章,以下同学全对。辛栋,孟诗颖,郭佳怡,李嘉晟,张紫涵,于浩楠,张耘卓,闫博凯,王思萌,陈骏洁,王腾煊,张紫萱,马一然,姜子跃。王昱涵,张雨泽。恭喜以上同学。今天班里小伙子表现很好。期待大家更好表现。

    +

    2024.10.14 星期一#

    好 1 姜子跃,王昱涵和侯睿祺上课认真听讲 2 今日论语默写有 20 人全对 3.1 张紫萱,侯芊黛和孟诗颖为优秀课代表 3.2 王昕妍,张紫萱和段茗涵为优秀班委 3.3 杜明露,汪洋和闫博凯为学习标兵 不好 1 今日有一名同学所有作业都没带 2 今日升旗时,两位同学乱动,享受了免费健身服务 3两位同学历史作业在讲台,被历史老师请到班级后面(已补完) 4 今日小干部扣了3分😭

    +

    2024.10.12 星期六#

    好 1 王昕妍,陈骏洁,段茗涵当选学生代表 2 毛立龙在班里认真学习 不好 1 两位同学在课上吵架 2 有一位同学逃值日 3 地理课上有几位同学没拿地球仪 4 四位同学课间跳舞

    +

    2024.10.11 星期五#

    好 1 今日王沛禹主动为班级喊口号 2 今日班委会正式成立 3 今日有 10 名同学默写全对,23 名同学优秀 4 索林熙分享自己珍藏的昆虫标本 不好 1 三名同学上课玩笔+罗阵 2 两名同学在图书馆说话 班主任信息 今天语文课默写全对的的同学有王思萌,辛栋,张耘卓,杜明露,张紫萱,刘溢昕,孟诗颖,陈骏洁,郭佳怡,段茗涵。错两个以内的同学有,李泽辰,郑旭晴,王昱涵,王腾煊,张紫涵,李子宇,李嘉晟,侯芊黛,闫博凯,王欣妍,陆子俊,马敏萱于浩楠,张雨泽。恭喜以上同学。期待看到更多孩子优秀的表现。

    +

    2024.10.10 星期四#

    好 1 今天有八个同学英语听写 100 分 2 张雨泽数学 100 分(周二热搜) 3 本周卫生角没有扣分,十分难得 4 刘佳懿,梦诗颖,刘溢昕,张耘卓,王思萌,于浩楠语文默写全对 不好 1 有两位男生在图书馆说小话 2 某位同学道法课带历史书,历史课带道法书 3 某人在历史课上写作业

    +

    2024.10.9 星期三#

    好 1 张雨泽数学 100 分(至今未超越) 2 刘佳懿,梦诗颖,刘溢昕,张耘卓,王思萌,于浩楠语文听写 100 分 不好 1 昨天有 4 个男生没找老师背论语 2 早读有位同学说话被罚站

    +

    2024.10.8 星期二#

    好 1 张雨泽数学 100 分 2 姜子跃和索林熙自觉在教室学习 3 马敏宣背完语文书 4 王腾煊回答了许多男生不会的问题 不好 1 数学课上 4 个男生回答不出问题 2 有两位男生在生物课上说话

    +

    更早以前#

    没有啦,那时一班热榜都还没有啊!

    +

    维护名单#

    名字

    分组

    孟**

    班委

    fishcpy

    班委

    郭**

    班委

    陈**

    班委

    梁*

    班主任

    一班热榜历史记录2024-2025(上半学期)
    https://blog.fis.ink/posts/13/
    作者
    Allen2030
    发布于
    2024-09-20
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/14/index.html b/posts/14/index.html new file mode 100644 index 0000000..b1415fc --- /dev/null +++ b/posts/14/index.html @@ -0,0 +1,1261 @@ + 关于casaos国内无法拉取镜像解决方法 - Allen2030's Blog + + + + +
    128 字
    1 分钟
    关于casaos国内无法拉取镜像解决方法
    2024-09-06
    0 次访问 +
    🤖AI 摘要
    Allen AI
      +
    1. 进入 CasaOS。
    2. +
    3. 打开 Files
    4. +
    5. 点击文件下方的 root
    6. +
    7. 打开 etc 文件夹。
    8. +
    9. 使用 Ctrl + F 搜索 docker
    10. +
    11. 打开 docker 文件夹。
    12. +
    13. 在电脑本地创建一个 txt 文件,加入以下内容(JSON 格式):
    14. +
    +
    {
    "registry-mirrors": [
    "https://dockerhub.icu",
    "https://docker.chenby.cn",
    "https://docker.1panel.live",
    "https://docker.awsl9527.cn",
    "https://docker.anyhub.us.kg",
    "https://dhub.kubesre.xyz",
    "https://dockerproxy.cn/",
    "https://hub.rat.dev/",
    "https://docker.actima.top/"
    ]
    }
    保存并重命名为 daemon.json。
    +
    上传该文件到 docker 文件夹。
    +
    使用 SSH 连接打开终端,输入以下命令:
    +
    bash
    复制
    编辑
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    sudo reboot
    设备重启后,即可使用应用商店。
    关于casaos国内无法拉取镜像解决方法
    https://blog.fis.ink/posts/14/
    作者
    Allen2030
    发布于
    2024-09-06
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/15/index.html b/posts/15/index.html new file mode 100644 index 0000000..6a515a2 --- /dev/null +++ b/posts/15/index.html @@ -0,0 +1,1249 @@ + 12月到了 - Allen2030's Blog + + + + +
    11 字
    1 分钟
    12月到了
    2024-12-03
    0 次访问 +
    🤖AI 摘要
    Allen AI

    12月到了,我要更加努力💪#

    12月到了
    https://blog.fis.ink/posts/15/
    作者
    Allen2030
    发布于
    2024-12-03
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/16/index.html b/posts/16/index.html new file mode 100644 index 0000000..01406e5 --- /dev/null +++ b/posts/16/index.html @@ -0,0 +1,1252 @@ + 购买雨云服务器并部署hexo博客-购买云服务器 - Allen2030's Blog + + + + +
    260 字
    1 分钟
    购买雨云服务器并部署hexo博客-购买云服务器
    2024-12-06
    0 次访问 +
    🤖AI 摘要
    Allen AI

    为什么要用云服务器部署静态博客#

    hexo为静态博客,可以直接在github部署。 但是例如我这个域名 ping就有30个测速节点无法ping通,并且github每个仓库只有500MB存储空间 但是有了云服务器就不一样了,基本全国都可以ping通,例如我这个域名ping之后只有2个节点无法ping通

    +

    购买云服务器#

    本次使用的云服务商为 雨云 打开雨云官网 点击登录/注册,经行注册,优惠码可以填fishcpy 或者点击这里一键填写 点击导航栏的总览>云服务器>购买云服务器 本人建议用香港的云服务器,有35ms和80ms的 如果对延迟有需求的可以选择35ms的,反之可以选择80ms的 演示使用80ms的,因为上行相对来说更高一些 点击立即购买,充钱后就可以购买成功 至此购买云服务器结束

    购买雨云服务器并部署hexo博客-购买云服务器
    https://blog.fis.ink/posts/16/
    作者
    Allen2030
    发布于
    2024-12-06
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/17/index.html b/posts/17/index.html new file mode 100644 index 0000000..4a4f249 --- /dev/null +++ b/posts/17/index.html @@ -0,0 +1,1254 @@ + butterfly导航栏图标修改 - Allen2030's Blog + + + + +
    118 字
    1 分钟
    butterfly导航栏图标修改
    2024-12-05
    0 次访问 +
    🤖AI 摘要
    Allen AI

    导航栏图标#

    我看了官方配置文件,里面好像没有关于导航栏图标的描述,修改完效果如下

    1
    +
    例: 首页: / || fas fa-home

    打开fontawesome 点击顶部导航栏的icons 比如我在搜索栏里搜索bilibili 点击你想要的图标 这里他给了一个html

    1
    +
    <i class="fa-brands fa-bilibili"></i>```

    把里面的fa-brands fa-bilibili复制下来

    1234
    +
    # 原来代码首页: / || fas fa-home#修改后首页: / || fa-brands fa-bilibili

    至此修改完毕

    butterfly导航栏图标修改
    https://blog.fis.ink/posts/17/
    作者
    Allen2030
    发布于
    2024-12-05
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/18/index.html b/posts/18/index.html new file mode 100644 index 0000000..641d104 --- /dev/null +++ b/posts/18/index.html @@ -0,0 +1,1292 @@ + 站点历程 - Allen2030's Blog + + + + +
    207 字
    1 分钟
    站点历程
    1901-01-01
    0 次访问 +
    🤖AI 摘要
    Allen AI

    本站历程#

      +
    • +

      2024.9 宝塔面板无法安装,发现了1panel面板

      +
    • +
    • +

      2024.9 在应用商店里发现halo建站,开始了我的建站之路

      +
    • +
    • +

      2024.9 发布自己的第一篇文章

      +
    • +
    • +

      2024.9 购买了云服务器

      +
    • +
    • +

      2024.10 发现wordpass有一款主题特别好看,于是转到WordPress

      +
    • +
    • +

      2024.11 wordpass优化不好,有转到hexo倾向

      +
    • +
    • +

      2024.12 全站正式转到hexo,开始对butterfly美化

      +
    • +
    • +

      2024.12 基本定型

      +
    • +
    • +

      2024.12 更换安知鱼主题,启用cloudflare cdn

      +
    • +
    • +

      2025.1.1 安知鱼主题加载太慢,并且页脚不能加 html,关闭 cloudflare CDN

      +
    • +
    • +

      2025.2 又换回halo

      +
    • +
    • +

      2025.3 发现halo-theme-dream2.0-plus,图片分流丘盾CDN 和 cloudflare CDN

      +
    • +
    • +

      2025.7 实在受不了halo的臃肿,换到了新框架Astro并使用fuwari

      +
    • +
    • +

      2025.7 分线路解析中国大陆境内使用腾讯EO香港节点,境外使用cloudflare cdn,实现秒开

      +
    • +
    站点历程
    https://blog.fis.ink/posts/18/
    作者
    Allen2030
    发布于
    1901-01-01
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/19/index.html b/posts/19/index.html new file mode 100644 index 0000000..19a2456 --- /dev/null +++ b/posts/19/index.html @@ -0,0 +1,1271 @@ + 引入Aplayer播放音乐-自定义api地址 - Allen2030's Blog + + + + +
    321 字
    2 分钟
    引入Aplayer播放音乐-自定义api地址
    2024-12-07
    0 次访问 +
    🤖AI 摘要
    Allen AI
    +

    此文章仅适用于akilar糖果屋中的 引入Aplayer播放音乐 文章 https://akilar.top/posts/3afa069a/ ,其他请自行测试]#

    +
    +

    1.为什么要自定义api地址#

    meting_js的官方api很不稳定,播放歌曲断断续续,所以要自定义api地址

    +

    2.如何自定义api地址#

    akilar糖果屋中有这样一些字 4.在主题配置文件[Blogroot]\_config.butterfly.yml的inject配置项中添加Aplayer的容器。

    1 +2 +3 +4

    inject: +head: +bottom: +-

      +
    1. Aplayer的网易云歌单接口时不时的会挂掉,所以如果你确定你配置正确,但是歌单还是没有出现。不妨去看看其他人的站点是不是也没有Aplayer标签了来判断是Aplayer本身接口的问题还是自己配置出错的问题。
    2. +

    里面并没有说如何自定义api地址 所根据我的尝试,成功自定义api地址

    1 +2 +3 +4 +5

    # akilar糖果屋中原本代码 +-

    # 修改后 +- <div class=“aplayer no-destroy” data-id=“5183531430” data-server=“netease” data-type=“playlist” data-fixed=“true” data-mini=“true” data-listFolded=“false” data-order=“random” data-preload=“none” data-autoplay=“false” data-meting_api=“https://meting.qjqq.cn/?server=:server&type=:type&id=:id&auth=:auth&r=:r” muted>

    根据上方的配置参数,这里添加了一个data-meting_api=”https://meting.qjqq.cn/?server=&type=&id=&auth=&r=“ 如果以后这个挂了也可以自建或者使用别人的api

    引入Aplayer播放音乐-自定义api地址
    https://blog.fis.ink/posts/19/
    作者
    Allen2030
    发布于
    2024-12-07
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/2/index.html b/posts/2/index.html new file mode 100644 index 0000000..79fc1aa --- /dev/null +++ b/posts/2/index.html @@ -0,0 +1,1263 @@ + 江西研学 - Allen2030's Blog + + + + +
    95 字
    1 分钟
    江西研学
    2025-07-04
    0 次访问 +
    🤖AI 摘要
    Allen AI

    出发#

    出发时间很早,要求5.30就到校

    差不多6点左右坐车出发去高铁站,50左右到

    我拍出发的图片,就放几张车站的图吧

    +

    坐高铁(去程)#

    2025-07-07-775B6AF4-EE31-436D-B4C9-566D15BE296C.jpg

    +

    景点拍的照片#

    太多了,就只放了一点

    2025-07-08-97E55B53-83C4-474E-A60A-AE6FCB31A643.jpg

    +

    坐高铁(回程)#

    因为当时是晚上了,就没怎么拍照片

    +

    彩蛋#

    导游

    江西研学
    https://blog.fis.ink/posts/2/
    作者
    Allen2030
    发布于
    2025-07-04
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/20/index.html b/posts/20/index.html new file mode 100644 index 0000000..ff97212 --- /dev/null +++ b/posts/20/index.html @@ -0,0 +1,1256 @@ + 安知鱼主题音乐馆默认歌单修改 - Allen2030's Blog + + + + +
    141 字
    1 分钟
    安知鱼主题音乐馆默认歌单修改
    2024-12-14
    0 次访问 +
    🤖AI 摘要
    Allen AI
    +

    仅适用于hexo-theme-anzhiyu,其他请自行测试

    +
    +

    文件路径#

    打开博客根目录目录 依次打开 /themes/anzhiyu/source/js 里面有一个utils.js 打开它 按ctrl+f搜索 getCustomPlayList: function () 文件参数是这样的 修改const userId = 你歌单的id 如果想修改歌单音乐服务商就改const userServer = netease或tencent或kugou,或xiami或 baidu 这样访问 /music/接可以了,不用在后面加?id=歌单id&server=音乐服务商

    +

    参考 避坑:我找到了Hexo安知鱼的音乐馆配置(目前好像还没有教程)

    +
    安知鱼主题音乐馆默认歌单修改
    https://blog.fis.ink/posts/20/
    作者
    Allen2030
    发布于
    2024-12-14
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/21/index.html b/posts/21/index.html new file mode 100644 index 0000000..1c4345a --- /dev/null +++ b/posts/21/index.html @@ -0,0 +1,1263 @@ + 给你的博客加上一个十年倒计时吧 - Allen2030's Blog + + + + +
    367 字
    2 分钟
    给你的博客加上一个十年倒计时吧
    2025-01-10
    0 次访问 +
    🤖AI 摘要
    Allen AI
    +

    效果预览 关于 fishcpy的小破站#

    +
    +

    打开: 你博客目录/themes/anzhiyu/source/js#

    在里面新建一个.js文件,例如我新建了一个clock.js文件 编辑文件,加入下面代码

    // 设置倒计时的目标日期
    var countDownDate = new Date("September 6, 2034 00:00:00").getTime();
    +
    // 每秒更新倒计时
    var x = setInterval(function() {
    var now = new Date().getTime();
    var distance = countDownDate - now;
    +
    // 计算天、小时、分钟和秒
    var days = Math.floor(distance / (1000 * 60 * 60 * 24));
    var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
    var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
    var seconds = Math.floor((distance % (1000 * 60)) / 1000);
    +
    // 显示结果
    document.getElementById("countdown").innerHTML =
    days + "天 " + hours + "小时 " +
    minutes + "分钟 " + seconds + "秒 ";
    +
    // 倒计时结束显示提示
    if (distance < 0) {
    clearInterval(x);
    document.getElementById("countdown").innerHTML = "你发现了彩蛋";
    }
    }, 1000);

    参数

    注释

    可改值

    你发现了彩蛋

    倒计时结束的文字

    随意

    September 6

    日期

    英文月份+日期

    2034 00:00:00

    日期

    年份+具体时间

    +

    在你要的文件里(本人仅测试了md文件)加入下面代码即可实现#

    <style>
    .big-font {
    font-size: 50px; /* 字体大小保持原样 */
    font-weight: bold;
    }
    </style>
    +
    <body>
    <!-- 倒计时容器 -->
    <div id="countdown" class="big-font"></div>
    +
    <!-- 修正类名前多余的点号 -->
    <script data-pjax defer src='/js/clock.js'></script>
    <div class="pjax-reload"></div> <!-- 修正后的类名 -->
    </body>

    参数

    注释

    可改值

    50px

    大小

    可以看一下这个

    /js/clock.js

    文件位置

    /js/文件名.js, 文件名为你刚创建的文件名

    给你的博客加上一个十年倒计时吧
    https://blog.fis.ink/posts/21/
    作者
    Allen2030
    发布于
    2025-01-10
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/22/index.html b/posts/22/index.html new file mode 100644 index 0000000..b3c74fb --- /dev/null +++ b/posts/22/index.html @@ -0,0 +1,1286 @@ + greasyfork新可用地址 - Allen2030's Blog + + + + +
    358 字
    2 分钟
    greasyfork新可用地址
    2025-02-13
    0 次访问 +
    🤖AI 摘要
    Allen AI
    +

    由于greasyfork在中国突然被sni阻断,这里提供一个新地址#

    +

    25.3.27更新#

    最新地址:

    https://greasyfork.dpdns.org

    长期:

    https://nextgo.dpdns.org/

    +

    25.2.14更新#

    更新长期地址自动跳转

    请求地址 https://nextgo.us.kg/api
    +例;
    +原先地址 https://www.greasyfork.us.kg/zh-CN/scripts/by-site/bilibili.com
    +长期自动跳转地址 https://nextgo.us.kg/api/zh-CN/scripts/by-site/bilibili.com

    使用这个可以长期自动跳转到最新域名

    中文:#

    新域名 https://nextgo.us.kg/ (此域名为中转,确保以后更换域名不用费劲心思再找)

    它将有以下限制:
    +1.日本地区ip将会被阻止
    +2.繁体中文将会重定向到 https://greasyfork.org/zh-TW
    +3.由于服务器带宽不高,将会进行人机验证
    +4.可能无法登录,ps:没试过

    此域名为镜像 cn-greasyfork.org

    下载地址为 update.greasyfork.us.kg

    ⚠️注意事项:
    +由于.us.kg域名的特殊性,如果跳反诈基本是由于使用了运营商dns,可以更改dns为其他的,我在这里列几个
    +阿里云:223.5.5.5
    +腾讯云:119.29.29.29
    +114dns:114.114.114.114
    +360dns:101.198.198.198
    +google:8.8.8.8
    +cloudflare:1.1.1.1

    English:#

    New domain: https://nextgo.us.kg/ (This domain name for the transit, to ensure that the future replacement of the domain name do not have to struggle to find again)

    It will have the following restrictions:

    1.IP addresses from Japan will be blocked.
    +2.Traditional Chinese will be redirected to https://greasyfork.org/zh-TW.
    +3.Due to low server bandwidth, human verification will be implemented.
    +4.Login may not be possible; PS: not tested.

    This domain is a mirror of cn-greasyfork.org.

    The download address is update.greasyfork.us.kg.

    ⚠️ Notices:
    +Due to the unique nature of the .us.kg domain, if you experience issues with fraud prevention, it is likely due to using your ISP’s DNS. You can change the DNS to others; here are a few options:
    +Alibaba Cloud: 223.5.5.5
    +Tencent Cloud: 119.29.29.29
    +114dns: 114.114.114.114
    +360dns: 101.198.198.198
    +Google: 8.8.8.8
    +Cloudflare: 1.1.1.1

    greasyfork新可用地址
    https://blog.fis.ink/posts/22/
    作者
    Allen2030
    发布于
    2025-02-13
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/23/index.html b/posts/23/index.html new file mode 100644 index 0000000..a8b3326 --- /dev/null +++ b/posts/23/index.html @@ -0,0 +1,1254 @@ + 水-1 - Allen2030's Blog + + + + +
    445 字
    2 分钟
    水-1
    2025-01-10
    0 次访问 +
    🤖AI 摘要
    Allen AI

    提示词:写一篇400字的描述中国的作文

    +

    中国的文化传统#

    中国是一个拥有悠久历史和丰富文化传统的国家。中国的文化源远流长,包括诗歌、绘画、音乐、戏剧、建筑等多个领域,都展现出独特的魅力。其中,中国的书法被誉为“东方艺术之花”,每一笔每一画都蕴含着深厚的文化内涵。中国的传统绘画以山水、花鸟为主题,追求意境的抒发和笔墨的韵味,体现了中国人对自然的独特感悟。 中国的音乐也是独具特色,古代的乐曲如《广陵散》、《阳关三叠》等流传至今,展现了中国人对音乐艺术的热爱和追求。中国的传统戏曲更是独树一帜,有京剧、豫剧、越剧等不同类型,每一种戏曲都有其独特的表演风格和表现形式,深受中国人民的喜爱。 此外,中国的建筑也是举世闻名,如万里长城、故宫等建筑奇迹,展现了中国古代建筑工艺的精湛和气势恢宏。中国的传统建筑注重“天人合一”的理念,追求与自然的和谐共生,体现了中国人对宇宙和谐的追求。 总的来说,中国的文化传统是丰富多彩的,融合了诗歌、绘画、音乐、戏剧、建筑等多种艺术形式,展现了中国人民对美好生活的向往和追求。这些传统文化不仅丰富了中国人民的精神生活,也为世界文化的多样性做出了重要贡献。

    +

    AI 也可能犯错,请仔细辨别

    +
    水-1
    https://blog.fis.ink/posts/23/
    作者
    Allen2030
    发布于
    2025-01-10
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/24/index.html b/posts/24/index.html new file mode 100644 index 0000000..8745a34 --- /dev/null +++ b/posts/24/index.html @@ -0,0 +1,1261 @@ + 在byrutgame上下载免费游戏 - Allen2030's Blog + + + + +
    234 字
    1 分钟
    在byrutgame上下载免费游戏
    2024-12-23
    0 次访问 +
    🤖AI 摘要
    Allen AI

    找到游戏英文名#

    在百度或必应等搜索引擎上搜索游戏英文名 例如我搜索地平线5英文名 得到FORZA HORIZON 5

    +

    找到游戏链接#

    打开 byrutgame 在搜索栏里输入刚刚搜索到的游戏英文名,例如我的就是FORZA HORIZON 5 直接搜索

    +

    注意:图片有红色印章的是可以联网的游戏

    +

    点击想要的游戏来到这页 点击这个按钮下载.torrent文件

    +

    下载下载器#

    这里推荐qbittorrent增强版 github 链接不上github的可以用 123盘下载(仅适用于Windows) 打开软件之后是这样的 点击左上角 文件-添加torrent文件,把刚下的文件导入进去 选择文件保存位置后点击确定就可以开始下载了 下载完点击对应启动程序启动游戏

    +

    记得在游戏设置里改语言!

    +
    在byrutgame上下载免费游戏
    https://blog.fis.ink/posts/24/
    作者
    Allen2030
    发布于
    2024-12-23
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/25/index.html b/posts/25/index.html new file mode 100644 index 0000000..2df3bcd --- /dev/null +++ b/posts/25/index.html @@ -0,0 +1,1254 @@ + 启用cloudflare cdn后js无法正常加载解决办法 - Allen2030's Blog + + + + +
    85 字
    1 分钟
    启用cloudflare cdn后js无法正常加载解决办法
    2025-01-18
    0 次访问 +
    🤖AI 摘要
    Allen AI

    问题描述#

    前段时间想提升一下多人的网站性能,就把cloudflare cdn打开了,发现评论区和关于页的部分东西加载不正常。#

    +

    解决方法#

    1.在cloudflare控制面板中点击域名#

    2.点击侧边栏的 速度-优化-内容优化 把里面的 Rocket Loader™ 关掉#

    启用cloudflare cdn后js无法正常加载解决办法
    https://blog.fis.ink/posts/25/
    作者
    Allen2030
    发布于
    2025-01-18
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/26/index.html b/posts/26/index.html new file mode 100644 index 0000000..fbd712c --- /dev/null +++ b/posts/26/index.html @@ -0,0 +1,1256 @@ + 记一次和福瑞朋友去漫展 - Allen2030's Blog + + + + +
    31 字
    1 分钟
    记一次和福瑞朋友去漫展
    2025-07-13
    0 次访问 +
    🤖AI 摘要
    Allen AI

    首先声明,本人(fishcpy)不是福瑞控,不要瞎说。#

    +

    照片?#

    其他没什么了,又水了一篇,嘿嘿!

    记一次和福瑞朋友去漫展
    https://blog.fis.ink/posts/26/
    作者
    Allen2030
    发布于
    2025-07-13
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/27/index.html b/posts/27/index.html new file mode 100644 index 0000000..7f8bcf3 --- /dev/null +++ b/posts/27/index.html @@ -0,0 +1,1255 @@ + 我的第一个图片API发布啦 - Allen2030's Blog + + + + +
    64 字
    1 分钟
    我的第一个图片API发布啦
    2025-07-22
    + API
    0 次访问 +
    🤖AI 摘要
    Allen AI

    官网#

    点击这里哦打不开说明正在部署

    +

    支持什么#

    我的世界(MC) ,图片100+#

    https://api.fis.ink/mc
    预览(刷新网页可查看新图)#

    暗区突围,图片40+#

    https://api.fis.ink/aqtw
    预览(刷新网页可查看新图)#


      +
    • Api by fishcpy cloud.
    • +
    • Cdn by cloudflare.
    • +
    我的第一个图片API发布啦
    https://blog.fis.ink/posts/27/
    作者
    Allen2030
    发布于
    2025-07-22
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/28/index.html b/posts/28/index.html new file mode 100644 index 0000000..4fe2957 --- /dev/null +++ b/posts/28/index.html @@ -0,0 +1,1255 @@ + 我名字的由来 - Allen2030's Blog + + + + +
    99 字
    1 分钟
    我名字的由来
    2025-08-01
    0 次访问 +
    🤖AI 摘要
    Allen AI

    由于很多人对我的名字有疑问(包括QQ),所以我来说一下

    +

    由于我中文名我起的是 咬一口的鱼py ,所以我23年抽风的大脑因为注册github所以想了个英文名,fishcpy

    +

    那么这个名字是怎么来的呢?

    +

    鱼 = fish

    +

    py = py

    +

    至于c嘛,我哪知道为啥啊,早忘了。

    +

    ok啊,水文+1

    我名字的由来
    https://blog.fis.ink/posts/28/
    作者
    Allen2030
    发布于
    2025-08-01
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/29/index.html b/posts/29/index.html new file mode 100644 index 0000000..6a72866 --- /dev/null +++ b/posts/29/index.html @@ -0,0 +1,1293 @@ + Uptime Kuma监控美化 - Allen2030's Blog + + + + +
    725 字
    4 分钟
    Uptime Kuma监控美化
    2025-08-09
    0 次访问 +
    🤖AI 摘要
    Allen AI

    部署Uptime Kuma#

    首先需要部署Uptime Kuma,可以在docker等平台部署,这里不多说,自己看看github仓库

    +

    美化#

    我这里提供一个css,可以参考一下,我也是用别人css加了一点效果

    具体效果可以看我的监控站

    :root {
    --bs-white: #fff;
    --bs-dark: #212529;
    --bs-green: #008000;
    --bs-danger: #dc3545;
    --bs-body-bg: #f6f7f9;
    --bs-blue: #0d6efd;
    --bg-linear-gradient: linear-gradient(180deg, #f6f6f6, #f8f8f8);
    --border-solid-main: 2px solid var(--bs-white);
    --border-solid-small: 1px solid var(--bs-white);
    --shadow-inset-box: inset -4px -4px 12px #f1f1f1, inset 4px 4px 12px #e2e2e2;
    }
    +
    .dark {
    --bs-white: #2d2d2d;
    --bs-dark: #e9ecef;
    --bs-green: #00c800;
    --bs-danger: #dc3545;
    --bs-body-bg: #222222;
    --bg-linear-gradient: linear-gradient(180deg, #242424, #222222);
    --border-solid-main: 2px solid rgba(45, 45, 45, 0.8);
    --border-solid-small: 1px solid rgba(45, 45, 45, 0.6);
    --shadow-inset-box: inset -4px -4px 12px #0d0d0d, inset 4px 4px 12px #1a1a1a;
    }
    +
    body {
    background-color: var(--bs-body-bg) !important;
    }
    +
    /* 全局样式 */
    body {
    font-family: 'CustomFont', sans-serif;
    color: #333;
    margin: 0;
    padding: 0;
    background-image: url('https://api.fis.ink/mc');
    background-attachment: fixed;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    }
    +
    /* LOGO标题样式 */
    .title-flex {
    font-weight: bold;
    justify-content: center;
    }
    +
    /* 按钮 */
    .btn-info {
    color: var(--bs-dark);
    background-image: var(--bg-linear-gradient);
    border: var(--border-solid-main);
    background-color: rgba(255, 255, 255, 0.2) !important;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    box-shadow: none !important;
    }
    +
    .btn-info:hover {
    color: var(--bs-dark);
    background-color: transparent;
    border-color: unset;
    box-shadow: none !important;
    }
    +
    /* 服务组标题 */
    .group-title {
    font-size: 2.5rem;
    font-weight: 700;
    opacity: .5;
    -webkit-mask: linear-gradient(var(--bs-white) 50%, transparent);
    mask: linear-gradient(var(--bs-white) 50%, transparent);
    text-stroke: 1px var(--bs-dark);
    -webkit-text-stroke: 1px var(--bs-dark);
    -webkit-text-fill-color: transparent;
    }
    +
    /* 服务项目列表样式 */
    .monitor-list .monitor-list {
    min-height: 45px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    }
    +
    .monitor-list .item .info {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    }
    +
    .info1::before,
    .info1::after {
    content: "";
    display: inline-block;
    width: 10px;
    height: 10px;
    background-color: var(--bs-white);
    margin: 0.5rem 0;
    border-radius: 50%;
    animation: breath 1.5s ease-in-out infinite;
    }
    +
    .info1::after {
    animation-delay: 0.75s;
    }
    +
    .info .bg-danger+.item-name {
    color: var(--bs-red);
    }
    +
    .shadow-box {
    margin-top: 0 !important;
    background-image: var(--bg-linear-gradient);
    box-shadow: none !important;
    }
    +
    div[data-v-f71ca08e].mb-5:hover .group-title {
    -webkit-text-fill-color: var(--bs-dark);
    }
    +
    .monitor-list .item {
    box-shadow: none !important;
    }
    +
    .monitor-list .item:hover {
    background-color: rgba(0, 0, 0, 0.5) !important;
    box-shadow: none !important;
    }
    +
    .dark .monitor-list .item:hover {
    background-color: var(--bs-body-bg);
    box-shadow: none !important;
    }
    +
    /* 服务项目列表标题样式 */
    .item-name {
    font-weight: bold;
    }
    +
    a {
    text-decoration: none !important;
    }
    +
    a.item-name:hover {
    color: var(--bs-blue) !important;
    }
    +
    .overall-status .ok {
    color: var(--bs-green) !important;
    }
    +
    .hp-bar-big .beat[data-v-636dc6a9] {
    background-color: var(--bs-green);
    }
    +
    .item .row {
    justify-content: space-between;
    }
    +
    .info .badge.rounded-pill.bg-primary {
    --bg: var(--bs-green);
    }
    +
    .info .badge.rounded-pill.bg-danger {
    --bg: var(--bs-danger);
    }
    +
    .info .badge.rounded-pill {
    position: relative;
    display: flex;
    min-width: auto;
    width: 1rem;
    margin-left: 0.1rem;
    font-size: 0;
    justify-content: center;
    align-items: center;
    background-color: transparent !important;
    }
    +
    .info .badge.rounded-pill::before {
    position: absolute;
    content: "";
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    background-color: var(--bg);
    animation: breath 1.1s ease-in-out infinite;
    }
    +
    .info .badge.rounded-pill::after {
    content: "";
    width: 0.6rem;
    height: 0.6rem;
    border-radius: 50%;
    background-color: var(--bg);
    }
    +
    @keyframes breath {
    0%, 100% {
    transform: scale(1);
    opacity: 0.2;
    }
    50% {
    transform: scale(1.2);
    opacity: 0;
    }
    }
    +
    /* 隐藏更新时间 */
    .refresh-info.mb-2 {
    display: none;
    }
    +
    /* 公共样式优化 */
    .col-md-4 {
    width: 50%;
    }
    +
    .col-md-8 {
    max-width: 50%;
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    }
    +
    .mb-5 {
    margin-bottom: 2rem !important;
    }
    +
    /* 底部样式 */
    footer[data-v-b8247e57] {
    margin: 1.5rem 0 !important;
    }
    +
    footer p {
    margin: 0 !important;
    }
    +
    /* 适配手机 */
    @media screen and (max-width: 768px) {
    .monitor-list .monitor-list {
    grid-template-columns: repeat(1, 1fr);
    }
    .group-title {
    font-size: 2rem;
    }
    }
    +
    /* 全局半透明背景卡片 */
    .shadow-box,
    .monitor-list .item {
    background-color: rgba(0, 0, 0, 0.4) !important;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    }
    +
    /* 暗色模式下卡片透明度调低 */
    .dark .shadow-box,
    .dark .monitor-list .item,
    .dark .btn-info {
    background-color: rgba(34, 34, 34, 0.3) !important;
    border: 1px solid rgba(255, 255, 255, 0.1);
    }
    +
    /* 标题透明度柔和 */
    .group-title {
    opacity: 0.5;
    }

    如果你需要自定义背景可以把上方css中的第36行左右的 https://api.fis.ink/mc 换为自己的图片或图片api

    Uptime Kuma监控美化
    https://blog.fis.ink/posts/29/
    作者
    Allen2030
    发布于
    2025-08-09
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/3/index.html b/posts/3/index.html new file mode 100644 index 0000000..4cff9c2 --- /dev/null +++ b/posts/3/index.html @@ -0,0 +1,1255 @@ + 哪吒监控 V1美化 - Allen2030's Blog + + + + +
    248 字
    1 分钟
    哪吒监控 V1美化
    2025-06-07
    0 次访问 +
    🤖AI 摘要
    Allen AI

    如何部署

    +

    部署请看哪哪吒监控文档

    +

    美化#

    点这里预览效果

    登录到后台,点击头像再点击系统设置,在里面找到自定义代码(样式和脚本) 插入下方代码

    请根据自己情况修改

    /* 基础设置 */
    <script>
    window.CustomLogo = "https://cdn.fis.ink/img/2025/05/29/683836588877f.webp"; /* 自定义logo */
    window.ShowNetTransfer = "true"; /* 卡片显示上下行流量 */
    window.DisableAnimatedMan = "true"; /* 关掉动画人物插图 */
    window.CustomDesc ="非淡泊无以明志,非宁静无以致远"; /* 自定义描述 */
    </script>
    /* 以上鼠标特效 */
    <script>
    window.CustomBackgroundImage="https://cdn.fis.ink/img/2025/05/05/68182abdc7d6e.png"; /* 背景图 */
    </script>
    <script src="https://testingcf.jsdelivr.net/gh/mocchen/cssmeihua/js/aixin.js"></script>/* 点击爱心特效 */
    <script src="https://testingcf.jsdelivr.net/gh/mocchen/cssmeihua/js/yinghua.js"></script> /* 页面樱花效果 */
    <span class="js-cursor-container"></span>
    <script src="https://testingcf.jsdelivr.net/gh/mocchen/cssmeihua/js/xiaoxingxing.js"></script>
    +
    /* 更换卡通小人 */
    <script>
    var observer = new MutationObserver(function(mutationsList, observer) {
    var xpath = "/html/body/div/div/main/div[2]/section[1]/div[4]/div";
    var container = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
    +
    if (container) {
    observer.disconnect();
    var existingImg = container.querySelector("img");
    if (existingImg) {
    container.removeChild(existingImg);
    }
    var imgElement = document.createElement("img");
    imgElement.src = "https://cdn.skyimg.de/up/2025/1/13/zera6q.webp";
    imgElement.style.position = "absolute";
    imgElement.style.right = "8px";
    imgElement.style.top = "-80px";
    imgElement.style.zIndex = "10";
    imgElement.style.width = "90px";
    container.appendChild(imgElement);
    }
    });
    var config = { childList: true, subtree: true };
    observer.observe(document.body, config);
    </script>

    代码来自https://f5.pm/go-288695.html

    哪吒监控 V1美化
    https://blog.fis.ink/posts/3/
    作者
    Allen2030
    发布于
    2025-06-07
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/30/index.html b/posts/30/index.html new file mode 100644 index 0000000..f731ffb --- /dev/null +++ b/posts/30/index.html @@ -0,0 +1,1317 @@ + 给你的Fuwari加一个链接大卡片 - Allen2030's Blog + + + + +
    1059 字
    5 分钟
    给你的Fuwari加一个链接大卡片
    2025-08-16
    0 次访问 +
    🤖AI 摘要
    Allen AI
    +

    25.8.26更新#

    更改了部分UI#

    +
    +
    TIP

    由于我没有实力,本篇文章修改文件部分为AI所写

    +
    CAUTION

    修改文件前请注意备份,防止修改失败无法回退

    +

    前言#

    今天在看liushen大佬文章时看到了个大卡片效果,感觉挺好看的,于是让AI给我加上了

    清羽飞扬
    循一缕风,入山偷得夏日凉
    +

    示例#

    自定义标题和描述#

    ::link-card{url="https://www.fis.ink" title="fishcpy的主页" description="fishcpy的个人主页"}
    fishcpy的主页
    fishcpy的个人主页

    带图片的链接卡片#

    ::link-card{url="https://www.fis.ink" title="fishcpy的主页" description="fishcpy的个人主页" icon="https://github.com/github.png"}
    fishcpy的主页
    fishcpy的个人主页
    Link preview

    自定义图标的链接卡片#

    ::link-card{url="https://www.fis.ink" title="fishcpy的主页" description="fishcpy的个人主页" icon="https://file.fis.ink/img/fishcpy/logo.png"}
    fishcpy的主页
    fishcpy的个人主页

    最终效果#

    ::link-card{url="https://www.fis.ink" title="fishcpy的主页" description="fishcpy的个人主页" icon="https://file.fis.ink/img/fishcpy/logo.png" image="https://file.fis.ink/img/fishcpy/logo.png"}
    fishcpy的主页
    fishcpy的个人主页
    Link preview
    +

    添加教程#

    再次提示#

    TIP

    由于我没有实力,下方内容为AI所写

    CAUTION

    修改文件前请注意备份,防止修改失败无法回退

    1. 创建组件文件#

    首先,在 src/plugins/ 目录下创建 rehype-component-link-card.mjs 文件:

    /// <reference types="mdast" />
    import { h } from "hastscript";
    +
    /**
    * Creates a Link Card component for third-party links.
    */
    export function LinkCardComponent(properties, children) {
    if (Array.isArray(children) && children.length !== 0)
    return h("div", { class: "hidden" }, [
    'Invalid directive. ("link-card" directive must be leaf type "::link-card{url="https://example.com"}"))',
    ]);
    +
    if (!properties.url || !properties.url.startsWith('http'))
    return h(
    "div",
    { class: "hidden" },
    'Invalid URL. ("url" attribute must be a valid HTTP/HTTPS URL)',
    );
    +
    const url = properties.url;
    const customTitle = properties.title;
    const customDescription = properties.description;
    const customImage = properties.image;
    const customIcon = properties.icon;
    const cardUuid = `LC${Math.random().toString(36).slice(-6)}`;
    +
    // Extract domain from URL for display
    const domain = new URL(url).hostname;
    +
    // Use custom icon if provided, otherwise use Google favicon service
    const iconUrl = customIcon || `https://www.google.com/s2/favicons?domain=${domain}&sz=32`;
    const nFavicon = h(`div#${cardUuid}-favicon`, {
    class: "lc-favicon",
    style: `background-image: url(${iconUrl})`
    });
    +
    // 隐藏域名显示的标题栏
    const nTitle = h("div", { class: "lc-titlebar" }, [
    h("div", { class: "lc-titlebar-left" }, [
    // h("div", { class: "lc-site" }, domain), // 已注释掉域名显示
    ]),
    h("div", { class: "lc-external-icon" }),
    ]);
    +
    const nCardTitle = h(
    `div#${cardUuid}-title`,
    { class: "lc-card-title" },
    customTitle || "Link",
    );
    +
    const nDescription = h(
    `div#${cardUuid}-description`,
    { class: "lc-description" },
    customDescription || "Click to visit",
    );
    +
    const nImage = h(
    `div#${cardUuid}-image`,
    { class: "lc-image" },
    customImage ? h("img", { src: customImage, alt: "Link preview" }) : null
    );
    +
    // Only fetch metadata if custom data is not provided
    const needsFetch = !customTitle || !customDescription;
    +
    const nScript = needsFetch ? h(
    `script#${cardUuid}-script`,
    { type: "text/javascript", defer: true },
    `
    // Simple metadata extraction for link cards
    try {
    const cardElement = document.getElementById('${cardUuid}-card');
    const titleElement = document.getElementById('${cardUuid}-title');
    const descElement = document.getElementById('${cardUuid}-description');
    +
    // Set default values if custom ones weren't provided
    if (!titleElement.dataset.hasCustomTitle) {
    titleElement.innerText = 'Link';
    }
    if (!descElement.dataset.hasCustomDesc) {
    descElement.innerText = 'Click to visit';
    }
    +
    cardElement.classList.remove("fetch-waiting");
    console.log("[LINK-CARD] Loaded card for ${url} | ${cardUuid}.");
    } catch (err) {
    const c = document.getElementById('${cardUuid}-card');
    c?.classList.add("fetch-error");
    console.warn("[LINK-CARD] (Error) Loading card for ${url} | ${cardUuid}.");
    }
    `,
    ) : null;
    +
    // Set data attributes for custom content
    if (customTitle) {
    nCardTitle.properties['data-has-custom-title'] = 'true';
    }
    if (customDescription) {
    nDescription.properties['data-has-custom-desc'] = 'true';
    }
    +
    const cardContent = [
    nTitle,
    nCardTitle,
    nDescription,
    ];
    +
    if (customImage) {
    cardContent.push(nImage);
    }
    +
    if (nScript) {
    cardContent.push(nScript);
    }
    +
    return h(
    `a#${cardUuid}-card`,
    {
    class: needsFetch ? "card-link fetch-waiting no-styling" : "card-link no-styling",
    href: url,
    target: "_blank",
    rel: "noopener noreferrer",
    'data-url': url,
    },
    cardContent,
    );
    }

    2. 添加CSS样式#

    src/styles/markdown-extend.styl 文件中添加以下样式:

    // Link Card Styles
    a.card-link
    display: block
    text-decoration: none
    border: 1px solid var(--line-divider)
    border-radius: 8px
    padding: 16px
    margin: 16px 0
    background-color: var(--card-bg)
    transition: all 0.2s ease
    position: relative
    overflow: hidden
    color: inherit
    +
    &:hover
    background-color: var(--btn-regular-bg-hover)
    +
    .lc-titlebar
    .lc-external-icon
    opacity: 1
    +
    &:active
    transform: translateY(0)
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1)
    +
    // 隐藏标题栏以移除域名显示和空白区域
    .lc-titlebar
    display: none
    +
    .lc-titlebar-left
    display: flex
    align-items: center
    +
    .lc-site
    display: flex
    align-items: center
    gap: 8px
    +
    .lc-favicon
    width: 16px
    height: 16px
    background-size: contain
    background-repeat: no-repeat
    background-position: center
    flex-shrink: 0
    +
    .lc-domain
    font-size: 14px
    color: var(--text-color-secondary)
    font-weight: 500
    +
    .lc-external-icon
    width: 16px
    height: 16px
    opacity: 0.6
    transition: opacity 0.2s ease
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15,3 21,3 21,9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg>')
    background-size: contain
    background-repeat: no-repeat
    background-position: center
    +
    .lc-card-title
    font-size: 18px
    font-weight: 600
    color: var(--text-color-primary)
    margin-bottom: 8px
    line-height: 1.3
    +
    .lc-description
    font-size: 14px
    color: var(--text-color-secondary)
    line-height: 1.4
    margin-bottom: 12px
    +
    // 移除图片上方的空白区域
    .lc-image
    margin-top: 0
    +
    img
    width: 100%
    max-height: 200px
    object-fit: cover
    border-radius: 4px
    +
    &.fetch-waiting
    .lc-card-title, .lc-description
    animation: pulse 1.5s ease-in-out infinite
    +
    &.fetch-error
    border-color: var(--error-color)
    background-color: var(--error-bg)
    +
    @keyframes pulse
    0%, 100%
    opacity: 1
    50%
    opacity: 0.5

    3. 配置Astro#

    astro.config.mjs 文件中导入组件并注册:

    // 添加导入
    import { LinkCardComponent } from "./src/plugins/rehype-component-link-card.mjs";
    +
    // 在 rehypeComponents 配置中添加
    rehypeComponents,
    {
    components: {
    github: GithubCardComponent,
    "link-card": LinkCardComponent, // 添加这一行
    note: (x, y) => AdmonitionComponent(x, y, "note"),
    // ... 其他组件
    },
    },

    4. 使用方法#

    配置完成后,你就可以在Markdown文件中使用链接卡片了:

    // 基本用法
    ::link-card{url="https://example.com"}
    +
    // 自定义标题和描述
    ::link-card{url="https://github.com" title="GitHub" description="代码托管平台"}
    +
    // 带自定义图片
    ::link-card{url="https://vercel.com" title="Vercel" description="部署平台" image="https://example.com/image.png"}
    +
    // 自定义图标
    ::link-card{url="https://github.com" title="GitHub" description="代码托管平台" icon="https://github.com/favicon.ico"}

    5. 注意事项#

      +
    • 确保URL以 http://https:// 开头
    • +
    • 自定义图片建议使用合适的尺寸和格式
    • +

    现在你的博客就拥有了美观的第三方链接大卡片功能!

    给你的Fuwari加一个链接大卡片
    https://blog.fis.ink/posts/30/
    作者
    Allen2030
    发布于
    2025-08-16
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/31/index.html b/posts/31/index.html new file mode 100644 index 0000000..25c98e5 --- /dev/null +++ b/posts/31/index.html @@ -0,0 +1,1270 @@ + 非人哉:限时玩家评价 - Allen2030's Blog + + + + +
    432 字
    2 分钟
    非人哉:限时玩家评价
    2025-08-18
    0 次访问 +
    🤖AI 摘要
    Allen AI

    为什么去看#

    那肯定是我朋友邀请我去的啦,同时我也爆肝了几天把非人哉都看完了。

    +

    影片信息#

    +

    中文名非人哉:限时玩家
    +外文名Fairizest:Rally for Pally
    +类 型剧情、喜剧、动画
    +出品公司中影(广州)电影制作有限公司、上海淘票票影视文化有限公司、北京彩条屋科技有限公司、北京分子互动文化传播有限公司、分子影业(广州)有限公司、中国电影产业集团股份有限公司、象山此刻文化传媒有限公司 [18]
    +制片地区中国内地
    +复制自百度百科

    +

    WARNING

    以下内容仅代表个人观点,可能有剧透

    +

    对于这部电影的评价#

    首先满分10分我打6分。非人哉系列的剧情确实很好,但是这部电影的剧情和画面并没有很惊艳。

    画面#

    画面感觉到后期经费不足似的,后面有部分片段直接放ppt配音乐了。

    剧情#

    剧情主要讲述九月和朋友们去找大士过假期,误入游戏世界,集齐了4个地区的碎片,合成了最终钥匙,小黑阻挠通关,以及在停服前打败最终BOSS。
    +整个电影中感觉没有什么笑点,并且将主角九月刻画的比较弱易弄杂事的样子,九月已经200多岁,但是表现却和20岁似的
    +后期莫名其妙出来个三级头男,直到结尾赞助商有个 (和平精英) 我释怀了。

    差不多就这些了,其他等我想到了再补充

    非人哉:限时玩家评价
    https://blog.fis.ink/posts/31/
    作者
    Allen2030
    发布于
    2025-08-18
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/32/index.html b/posts/32/index.html new file mode 100644 index 0000000..6b2cd91 --- /dev/null +++ b/posts/32/index.html @@ -0,0 +1,1262 @@ + trae AI 编辑器SOLO模式貌似会注入广告 - Allen2030's Blog + + + + +
    225 字
    1 分钟
    trae AI 编辑器SOLO模式貌似会注入广告
    2025-08-18
    0 次访问 +
    🤖AI 摘要
    Allen AI

    事件经过#

    我在2025.8.17日下午使用trae的SOLO模式并使用SOLO Builder智能体开发vue3的个人主页,模型使用的是Claude 4。
    +起初在预览环境没有问题,但是我将整个项目上传到github并部署到vercel时右下角却出现SOLO模式的广告组件。
    +1756012616606.webp
    +经过翻代码发现AI在写vite.config.ts时引入了trae的广告组件。

    import traeBadgePlugin from 'vite-plugin-trae-solo-badge'
    traeBadgePlugin({
    variant: 'dark',
    position: 'bottom-right',
    prodOnly: true,
    clickable: true,
    clickUrl: 'https://www.trae.ai/solo?showJoin=1',
    autoTheme: true,
    autoThemeTarget: '#app',
    }),

    这显然是提示词注入。

    +

    如何解决#

    如果你有编程基础#

    可以直接翻代码移除。

    如果你没有编程基础#

    先切换到IDE模式,浏览器在生产环境的网页按F12选择广告组件,复制HTML。
    +随便选择一个模型,跟它说删除+复制的html,等待自动删除即可。

    trae AI 编辑器SOLO模式貌似会注入广告
    https://blog.fis.ink/posts/32/
    作者
    Allen2030
    发布于
    2025-08-18
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/34/index.html b/posts/34/index.html new file mode 100644 index 0000000..22f71e6 --- /dev/null +++ b/posts/34/index.html @@ -0,0 +1,1319 @@ + 新主题astro-theme-fishcpy - Allen2030's Blog + + + + +
    275 字
    1 分钟
    新主题astro-theme-fishcpy
    2025-09-06
    0 次访问 +
    🤖AI 摘要
    Allen AI

    顺便说一下 今天本站一周年啦!#

    +

    🐟 fishcpy 主题#

    Node.js >= 20 +pnpm >= 9

    文档

    +

    基于Astro构建的静态博客模板,由Fuwari修改而来。

    +

    🖥️ 实时演示

    预览图

    🌏 中文版 README 在
    +中文
    +(由社区提供,内容可能未及时更新)


    ✨ 核心特性#

      +
    • 基于 AstroTailwind CSS 构建
    • +
    • 流畅动画与页面过渡效果
    • +
    • 浅色/深色模式
    • +
    • 可自定义主题配色与横幅
    • +
    • 响应式设计
    • +
    • 搭载Pagefind的搜索功能
    • +
    • Markdown扩展功能
    • +
    • 目录功能
    • +
    • RSS订阅源
    • +
    • Twikoo与artalk评论区
    • +

    ⚡ 命令列表#

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    命令操作
    pnpm install安装依赖项
    pnpm devlocalhost:4321 启动开发服务器
    pnpm build将生产站点构建至 ./dist/
    pnpm preview部署前预览构建站点
    pnpm check运行代码质量与类型检查
    pnpm format使用 Biome 格式化代码
    pnpm new-post <文件名>创建新博客文章
    pnpm astro ...运行 Astro CLI 命令(例如 astro add
    pnpm astro --help显示 Astro CLI 帮助

    📄 许可协议#

    本项目采用 MIT 许可协议授权。

    基于 Fuwari 修改而来。

    新主题astro-theme-fishcpy
    https://blog.fis.ink/posts/34/
    作者
    Allen2030
    发布于
    2025-09-06
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/35/index.html b/posts/35/index.html new file mode 100644 index 0000000..227a615 --- /dev/null +++ b/posts/35/index.html @@ -0,0 +1,1295 @@ + 给你的Fuwari加一个AI摘要 - Allen2030's Blog + + + + +
    901 字
    5 分钟
    给你的Fuwari加一个AI摘要
    2025-09-08
    0 次访问 +
    🤖AI 摘要
    Allen AI

    预览:本文字上方#

    +

    现在教程开始!#

    CAUTION

    修改文件前请注意备份,防止修改失败无法回退

    新建src/components/misc/AISummary.astro文件

    ---
    export interface Props {
    content: string;
    }
    +
    const { content } = Astro.props;
    +
    // 如果没有内容,不渲染组件
    if (!content || content.trim() === '') {
    return null;
    }
    ---
    +
    {content && (
    <div class="ai-summary">
    <div class="ai-title">
    <div class="ai-title-left">
    <i>🤖</i>
    <span class="ai-title-text">AI 摘要</span>
    </div>
    <div class="ai-tag">fishcpy AI</div>
    </div>
    <div class="ai-explanation" data-content={content}></div>
    </div>
    )}
    +
    <script>
    // 检查当前页面路径是否包含 "posts"
    function isPostsPage() {
    return window.location.pathname.includes('/posts/');
    }
    +
    // 全局函数,用于初始化AI打字效果
    function initAITyping() {
    // 只在包含 "posts" 的页面才执行AI总结功能
    if (!isPostsPage()) {
    return;
    }
    +
    // 查找所有AI摘要容器
    const aiSummaryContainers = document.querySelectorAll('.ai-summary');
    +
    aiSummaryContainers.forEach(container => {
    const textElement = container.querySelector('.ai-explanation');
    +
    if (!textElement) {
    return;
    }
    +
    // 检查是否已经初始化过
    if (textElement.hasAttribute('data-initialized')) {
    return;
    }
    +
    const content = textElement.getAttribute('data-content');
    if (!content) {
    return;
    }
    +
    // 标记为已初始化
    textElement.setAttribute('data-initialized', 'true');
    +
    // 清空文本内容,准备打字效果
    textElement.textContent = '';
    textElement.classList.remove('typing-complete');
    +
    let index = 0;
    const typeSpeed = 30; // 打字速度(毫秒)
    +
    function typeWriter() {
    if (index < content.length) {
    textElement.textContent += content.charAt(index);
    index++;
    setTimeout(typeWriter, typeSpeed);
    } else {
    // 打字完成后隐藏光标(通过CSS控制)
    textElement.classList.add('typing-complete');
    }
    }
    +
    // 延迟开始打字效果
    setTimeout(typeWriter, 800);
    });
    }
    +
    // 页面加载完成时初始化
    function handlePageLoad() {
    setTimeout(initAITyping, 100);
    }
    +
    // 监听页面导航事件(适用于Astro的客户端路由)
    function setupNavigationListeners() {
    // DOMContentLoaded事件
    if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', handlePageLoad);
    } else {
    handlePageLoad();
    }
    +
    // 监听Astro的页面导航事件
    document.addEventListener('astro:page-load', handlePageLoad);
    +
    // 监听浏览器的popstate事件(后退/前进按钮)
    window.addEventListener('popstate', handlePageLoad);
    +
    // 监听pushstate和replacestate事件
    const originalPushState = history.pushState;
    const originalReplaceState = history.replaceState;
    +
    history.pushState = function() {
    originalPushState.apply(history, arguments);
    setTimeout(handlePageLoad, 100);
    };
    +
    history.replaceState = function() {
    originalReplaceState.apply(history, arguments);
    setTimeout(handlePageLoad, 100);
    };
    }
    +
    // 立即设置监听器
    setupNavigationListeners();
    </script>

    在src/content/config.ts插入下方代码,13行下左右,注意+号要删除

    tags: z.array(z.string()).optional().default([]),
    category: z.string().optional().nullable().default(""),
    lang: z.string().optional().default(""),
    + ai: z.string().optional().default(""),
    +
    /* For internal use */
    prevTitle: z.string().default(""),

    在src/pages/posts/[…slug].astro插入下方代码,注意+号要删除

    import { profileConfig, siteConfig } from "../../config";
    import { formatDateToYYYYMMDD } from "../../utils/date-utils";
    import Comment from "@components/comment/index.astro";
    + import AISummary from "@components/misc/AISummary.astro";
    +
    export async function getStaticPaths() {
    const blogEntries = await getSortedPosts();
    @@ -84,6 +85,9 @@ const jsonLd = {
    </div>
    </div>
    +
    + <!-- AI Summary -->
    + {entry.data.description && <AISummary content={entry.data.description} class="onload-animation" />}
    +
    <!-- metadata -->
    <div class="onload-animation">
    <PostMetadata

    在src/styles/main.css底部添加下方代码

    /* =================== */
    /* 📘 AI 摘要模块样式 */
    /* =================== */
    +
    .ai-summary {
    background: var(--card-bg);
    border: 1px solid var(--line-divider);
    border-radius: 12px;
    padding: 8px 8px 12px 8px;
    line-height: 1.3;
    flex-direction: column;
    margin-bottom: 16px;
    display: flex;
    gap: 5px;
    position: relative;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    transition: all 0.3s;
    }
    +
    .ai-summary:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    transform: translateY(-1px);
    }
    +
    .ai-summary .ai-explanation {
    z-index: 10;
    padding: 8px 12px;
    font-size: 15px;
    line-height: 1.4;
    @apply text-90;
    text-align: justify;
    }
    +
    /* ✅ 打字机光标动画 */
    .ai-summary .ai-explanation::after {
    content: '';
    display: inline-block;
    width: 8px;
    height: 2px;
    margin-left: 2px;
    @apply bg-black/90 dark:bg-white/90;
    vertical-align: bottom;
    animation: blink-underline 1s ease-in-out infinite;
    transition: all 0.3s;
    position: relative;
    bottom: 3px;
    }
    +
    /* 打字完成后隐藏光标 */
    .ai-summary .ai-explanation.typing-complete::after {
    display: none;
    }
    +
    .ai-summary .ai-title {
    z-index: 10;
    font-size: 14px;
    display: flex;
    border-radius: 8px;
    align-items: center;
    position: relative;
    padding: 0 12px;
    cursor: default;
    user-select: none;
    }
    +
    .ai-summary .ai-title .ai-title-left {
    display: flex;
    align-items: center;
    color: var(--primary);
    }
    +
    .ai-summary .ai-title .ai-title-left i {
    margin-right: 3px;
    display: flex;
    color: var(--primary);
    border-radius: 20px;
    justify-content: center;
    align-items: center;
    }
    +
    .ai-summary .ai-title .ai-title-left .ai-title-text {
    font-weight: 500;
    }
    +
    .ai-summary .ai-title .ai-tag {
    color: var(--btn-content);
    font-weight: 300;
    margin-left: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: 0.3s;
    }
    +
    /* ✅ 打字机光标闪烁动画 */
    @keyframes blink-underline {
    0%, 100% {
    opacity: 1;
    }
    50% {
    opacity: 0;
    }
    }

    最后在src/styles/variables.styl 大约19行后面添加下方代码

    --page-bg: oklch(0.95 0.01 var(--hue)) oklch(0.16 0.014 var(--hue))
    --card-bg: white oklch(0.23 0.015 var(--hue))
    +
    + // AI Summary 相关变量
    + --liushen-title-font-color: #0883b7 #0883b7
    + --liushen-maskbg: rgba(255, 255, 255, 0.85) rgba(0, 0, 0, 0.85)
    + --liushen-ai-bg: conic-gradient(from 1.5708rad at 50% 50%, #d6b300 0%, #42A2FF 54%, #d6b300 100%) conic-gradient(from 1.5708rad at 50% 50%, rgba(214, 178, 0, 0.46) 0%, rgba(66, 161, 255, 0.53) 54%, rgba(214, 178, 0, 0.49) 100%)
    + --liushen-card-secondbg: #f1f3f8 #3e3f41
    + --liushen-text: #4c4948 #ffffffb3
    + --liushen-secondtext: #3c3c43cc #a1a2b8
    +
    --btn-content: oklch(0.55 0.12 var(--hue)) oklch(0.75 0.1 var(--hue))
    --btn-regular-bg: oklch(0.95 0.025 var(--hue)) oklch(0.33 0.035 var(--hue))
    +

    样式参考#

    清羽飞扬
    本地实现HEXO文章AI摘要
    给你的Fuwari加一个AI摘要
    https://blog.fis.ink/posts/35/
    作者
    Allen2030
    发布于
    2025-09-08
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/4/index.html b/posts/4/index.html new file mode 100644 index 0000000..7ece958 --- /dev/null +++ b/posts/4/index.html @@ -0,0 +1,1254 @@ + 可以屏蔽的测速ip - Allen2030's Blog + + + + +
    226 字
    1 分钟
    可以屏蔽的测速ip
    2025-05-31
    0 次访问 +
    🤖AI 摘要
    Allen AI

    itdog(www.itdog.cn)#

    https://www.itdog.cn/

    ipv4

    154.23.241.34
    23.225.146.6
    183.194.216.135
    106.225.239.7
    117.148.172.71
    112.65.95.205
    101.226.41.74
    221.130.18.132
    119.96.16.87
    120.220.190.144
    42.81.156.75
    36.158.204.68
    223.26.78.6
    218.98.53.88
    219.151.141.70
    124.160.160.70
    58.19.20.71
    116.153.63.68
    59.36.216.50
    111.6.225.75
    111.13.153.72
    112.123.37.68
    113.201.9.12
    124.225.103.136
    125.73.215.4
    116.162.51.68
    221.204.62.68
    218.57.21.135
    60.28.203.70
    223.244.186.68
    117.187.182.132
    202.108.15.148
    211.139.55.70
    36.104.133.71
    1.180.239.80
    59.49.86.70
    111.48.137.135
    112.29.205.70
    36.250.8.132
    101.207.252.75
    113.207.73.135
    180.130.113.72
    218.30.71.80
    116.176.33.201
    123.6.70.5
    116.177.229.5
    58.211.13.98
    49.71.77.84
    183.201.192.68
    111.32.145.8
    182.242.83.133
    112.48.150.134
    180.97.244.136
    36.150.79.4
    116.136.19.134
    42.63.75.72
    125.211.192.35
    36.147.38.70
    120.233.53.26
    111.62.174.73
    121.31.236.73
    117.168.153.198
    220.181.53.87
    117.161.136.74
    36.163.196.86
    153.0.230.8
    125.76.115.251
    112.90.210.132
    117.177.67.5
    113.240.100.81
    115.231.43.69
    111.51.76.68
    1.193.215.70
    45.251.101.5
    43.163.239.208
    59.80.45.132
    115.223.6.243
    118.213.140.68
    42.185.158.68
    156.253.8.27
    101.28.250.72
    117.157.235.95
    111.26.149.68
    36.136.125.68
    111.29.45.133
    183.2.175.12
    111.42.192.68
    125.64.2.134
    183.240.228.133
    218.61.211.101
    222.79.71.253
    120.201.243.134
    43.130.151.11
    150.139.140.70
    111.12.212.73
    42.202.219.70
    27.185.235.70
    116.172.154.17
    220.162.119.71
    222.75.5.70
    116.178.236.69
    171.15.110.73
    112.90.40.216
    125.77.129.206
    221.8.93.95
    43.156.69.84
    194.147.100.44
    109.248.18.86
    113.62.118.132
    150.109.245.197
    117.180.235.132
    120.71.150.171
    221.181.52.171
    43.131.29.194
    146.185.214.41
    38.54.126.18
    38.54.59.59
    185.99.132.104
    38.54.45.156
    38.60.209.194
    38.54.63.220
    +

    炸了吗(zhale.me)#

    https://zhale.me/

    ipv4

    154.38.106.211
    148.113.173.25
    140.207.232.18
    120.204.196.162
    101.71.160.163
    116.153.81.2
    223.111.24.198
    220.202.21.129
    111.47.215.148
    58.215.177.156
    117.169.16.203
    180.153.91.3
    112.48.221.77
    123.6.27.10
    120.223.242.157
    111.206.4.152
    119.97.171.14
    59.63.230.4
    58.243.202.72
    59.83.222.20
    134.122.151.96
    115.236.144.231
    36.250.246.34
    125.39.11.1
    112.28.234.140
    36.158.254.130
    111.6.251.227
    183.201.231.162
    119.188.148.129
    150.138.178.3
    157.255.30.130
    111.62.70.129
    111.13.102.12
    211.91.243.88
    124.239.250.80
    111.32.157.133
    111.10.63.136
    59.38.99.166
    183.232.11.45
    175.6.41.195
    1.31.130.68
    61.240.153.196
    117.187.142.66
    36.102.218.76
    58.144.173.98
    218.25.106.113
    221.204.45.134
    36.131.159.78
    117.161.24.21
    117.24.3.143
    111.12.63.131
    116.253.27.152
    111.29.42.34
    121.31.231.89
    117.157.22.134
    218.203.117.72
    124.225.162.194
    116.176.35.201
    42.63.65.201
    183.224.38.14
    210.76.62.60
    182.242.140.26
    111.40.189.229
    111.19.212.248
    101.206.203.18
    117.174.129.181
    180.130.96.143
    36.104.140.200
    153.0.192.167
    1.32.216.91
    116.177.252.82
    139.215.167.76
    61.128.145.14
    59.80.37.156
    111.26.55.11
    219.144.80.136
    180.213.48.172
    125.74.24.2
    182.140.221.2
    15.235.167.152
    1.71.11.171
    111.12.157.228
    162.19.154.159
    51.77.203.76
    36.99.143.1
    116.178.71.245
    219.147.74.6
    51.38.70.219
    221.181.56.200
    45.202.210.37
    34.80.186.23
    141.164.56.18
    123.184.205.46
    43.242.167.44
    117.180.232.165
    222.75.58.106
    54.38.242.242
    110.157.249.53
    172.233.24.182
    139.99.134.84
    139.84.235.192
    61.190.114.193
    可以屏蔽的测速ip
    https://blog.fis.ink/posts/4/
    作者
    Allen2030
    发布于
    2025-05-31
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/5/index.html b/posts/5/index.html new file mode 100644 index 0000000..9c3536e --- /dev/null +++ b/posts/5/index.html @@ -0,0 +1,1252 @@ + 25.5.3-5.4被攻击经过 - Allen2030's Blog + + + + +
    116 字
    1 分钟
    25.5.3-5.4被攻击经过
    2025-05-05
    0 次访问 +
    🤖AI 摘要
    Allen AI

    经过#

    大概在2025年5月3日下午服务器开始被攻击,刚开始全靠我使用的cdn硬抗。

    cdn数据

    第二天也就是5月4日,cdn流量在短时间内达到了至少70GB,毕竟我使用的是免费cdn,为了减少流量我将部分域名转移到cloudflare CDN并进行了优选,并且加入了请求限制。

    在5月4日上午攻击结束。
    +image.png

    cloudflare数据

    25.5.3-5.4被攻击经过
    https://blog.fis.ink/posts/5/
    作者
    Allen2030
    发布于
    2025-05-05
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/6/index.html b/posts/6/index.html new file mode 100644 index 0000000..03bcb60 --- /dev/null +++ b/posts/6/index.html @@ -0,0 +1,1259 @@ + 小米平板7pro澎湃os2Bate版使用体验 - Allen2030's Blog + + + + +
    52 字
    1 分钟
    小米平板7pro澎湃os2Bate版使用体验
    2025-04-17
    0 次访问 +
    🤖AI 摘要
    Allen AI

    系统版本#

    +

    使用感受#

    1.感觉动画更连贯更丝滑了

    2.没有明显发热

    3.后台切换某些应用没有感觉到卡一下应用重启

    +

    金凡 雷军!#

    小米平板7pro澎湃os2Bate版使用体验
    https://blog.fis.ink/posts/6/
    作者
    Allen2030
    发布于
    2025-04-17
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/7/index.html b/posts/7/index.html new file mode 100644 index 0000000..d63f20b --- /dev/null +++ b/posts/7/index.html @@ -0,0 +1,1281 @@ + 使用1panel搭建免费开源的icp虚拟备案系统 - Allen2030's Blog + + + + +
    986 字
    5 分钟
    使用1panel搭建免费开源的icp虚拟备案系统
    🤖AI 摘要
    Allen AI

    预览#

    1000000272.jpg

    +

    首先需要购买一台服务器#

    打开雨云官网#

    点击链接打开雨云官网(使用这个链接会自动优惠)https://www.rainyun.com/fishcpy_

    https://www.rainyun.com/fishcpy_

    或者注册时输入优惠码:fishcpy

    注册完成后来到总揽,点击云服务器
    +

    点击购买云服务器

    这里我推荐中国香港极速三网,三大运营商直连,速度超快
    +配置选择 AMD® EPYC

    如果你的网站访问量很大就选择 流量叠加型 , 访问量不大就选择 流量不限型。

    套餐选择KVM标准版

    其他的按照我的这个选

    公网ip 1个
    +debian版本选择12

    +

    安装1panel#

    打开finalshell官网

    www.hostbuf.com

    点击顶部的

    FinalShell SSH工具,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux,版本x.x.x,更新日期20xx.xx.xx

    选择自己的系统版本下载,安装。

    打开雨云#

    点击你的服务器卡片

    image.png

    image.png

    打开finalshell#

    点击文件夹图标,打开链接管理器
    +image.png

    点击白色加号图标,选择SSH链接(Linux)

    image.png

    名称

    填写值

    1

    名称

    随便

    2

    主机

    填写雨云控制台中的公网ip地址

    3

    用户名

    填写雨云控制台中填写远程用户名

    4

    密码

    填写雨云控制台中的远程密码

    完成效果

    image.png

    填写完后,点击确定并在链接管理器中双击你刚添加的服务器链接

    遇到这个点击 接受并保存
    +image.png

    不出意外,你应该来到这个页面
    +image.png

    在下方 命令输入框 中输入下方命令并回车

    curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh

    image.png

    填写输出的问题即可

    来到最后输出的结尾打开外部地址的网址

    [1Panel 2025-05-19 23:16:42 install Log]: 正在启动1Panel服务
    [1Panel 2025-05-19 23:16:43 install Log]:
    [1Panel 2025-05-19 23:16:43 install Log]: =================感谢您的耐心等待,安装已完成==================
    [1Panel 2025-05-19 23:16:43 install Log]:
    [1Panel 2025-05-19 23:16:43 install Log]: 请使用您的浏览器访问面板:
    [1Panel 2025-05-19 23:16:43 install Log]: 外部地址: http://154.64.254.179:12014/a46144d21a
    [1Panel 2025-05-19 23:16:43 install Log]: 内部地址: http://154.64.254.179:12014/a46144d21a
    [1Panel 2025-05-19 23:16:43 install Log]: 面板用户: d88f56f426
    [1Panel 2025-05-19 23:16:43 install Log]: 面板密码: 79157ec8b5
    [1Panel 2025-05-19 23:16:43 install Log]:
    [1Panel 2025-05-19 23:16:43 install Log]: 官方网站: https://1panel.cn
    [1Panel 2025-05-19 23:16:43 install Log]: 项目文档: https://1panel.cn/docs
    [1Panel 2025-05-19 23:16:43 install Log]: 代码仓库: https://github.com/1Panel-dev/1Panel
    [1Panel 2025-05-19 23:16:43 install Log]: 前往 1Panel 官方论坛获取帮助: https://bbs.fit2cloud.com/c/1p/7
    [1Panel 2025-05-19 23:16:43 install Log]:
    [1Panel 2025-05-19 23:16:43 install Log]: 如果您使用的是云服务器,请在安全组中打开端口 12014
    [1Panel 2025-05-19 23:16:43 install Log]:
    [1Panel 2025-05-19 23:16:43 install Log]: 为了您的服务器安全,离开此屏幕后您将无法再次看到您的密码,请记住您的密码。
    [1Panel 2025-05-19 23:16:43 install Log]:
    [1Panel 2025-05-19 23:16:43 install Log]: ================================================================

    例如我就打开http://154.64.254.179:12014/a46144d21a

    输入上方的用户和密码

    +

    部署系统#

    点击侧边栏应用商店安装OpenResty,配置保持默认即可

    OpenResty安装完后,点击侧边栏的网站-运行环境,在PHP中点击创建运行环境,并按照我这样配置,名称随便。

    image.png

    点击确定,等待镜像制作完成

    制作完成后点击网站并点击创建按钮,按照我这样配置
    +image.png主域名如果用自己的域名就把 域名 解析 A 记录到你服务器的ip上,那么这里就写你自己的域名

    点击确定 , 打开ip或域名如果为下图即为创建成功

    image.png

    下载程序#

    打开

    https://github.com/bbb-lsy07/dBd-Filing/releases

    选择最新版本下载,例如我就下载 dBd-Filing-V2.5.0.zip

    在1panel中点击按钮
    +将 dBd-Filing-V2.5.0.zip_中的内容解压到含有_index.php 的目录,配置请按照下方仓库简介配置

    https://github.com/bbb-lsy07/dBd-Filing/

    +

    安装数据库#

    image.png

    在1panel应用商店里找到MySQL点击确定,安装

    image.png

    点击侧边栏数据库按钮

    image.png

    创建一个新数据库

    image.png

    点击这里查看链接信息

    在ip或域名里填写数据库信息


    验证id:489356

    使用1panel搭建免费开源的icp虚拟备案系统
    https://blog.fis.ink/posts/7/
    作者
    Allen2030
    发布于
    2025-05-19
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/8/index.html b/posts/8/index.html new file mode 100644 index 0000000..69d1679 --- /dev/null +++ b/posts/8/index.html @@ -0,0 +1,1256 @@ + 音乐播放器预览 - Allen2030's Blog + + + + +
    46 字
    1 分钟
    音乐播放器预览
    🤖AI 摘要
    Allen AI

    默认#

    暂停#

    屏幕截图 2025-03-21 235825.png

    播放#

    屏幕截图 2025-03-22 000039.png

    同时屏幕中间有歌词#

    屏幕截图 2025-03-22 000131.png

    +

    圆盘#

    暂停#

    0863eaa3-ee38-4765-8784-ae2c9fcd9230.jpg

    播放#

    屏幕截图 2025-03-21 235617.png

    音乐播放器预览
    https://blog.fis.ink/posts/8/
    作者
    Allen2030
    发布于
    2025-03-22
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/9/index.html b/posts/9/index.html new file mode 100644 index 0000000..e75e9d5 --- /dev/null +++ b/posts/9/index.html @@ -0,0 +1,1250 @@ + 爱国图片 - Allen2030's Blog + + + + +
    82 字
    1 分钟
    爱国图片
    2025-03-18
    0 次访问 +
    🤖AI 摘要
    Allen AI

    分享一些爱国图片#

    +中华人民共和国国旗.png

    袁隆平-稻下乘凉梦.png

    永远的人民英雄.png

    天安门.雪.png

    日本投降签字仪式.png

    六代机击破长空,毛主席131年诞辰万岁!.png

    开国大典4K.png

    国徽.png

    下载:

    123盘,提取码6666

    爱国图片
    https://blog.fis.ink/posts/9/
    作者
    Allen2030
    发布于
    2025-03-18
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/posts/markdown/index.html b/posts/markdown/index.html new file mode 100644 index 0000000..aa72160 --- /dev/null +++ b/posts/markdown/index.html @@ -0,0 +1,1433 @@ + Markdown Example - Allen2030's Blog + + + + +
    1593 字
    8 分钟
    Markdown Example
    2023-10-01
    0 次访问 +
    🤖AI 摘要
    Allen AI

    Simple Guides for Fuwari#

    +

    Cover image source: Source

    +

    This blog template is built with Astro. For the things that are not mentioned in this guide, you may find the answers in the Astro Docs.

    Front-matter of Posts#

    ---
    title: My First Blog Post
    published: 2023-09-09
    description: This is the first post of my new Astro blog.
    image: ./cover.jpg
    tags: [Foo, Bar]
    category: Front-end
    draft: false
    ---
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    AttributeDescription
    titleThe title of the post.
    publishedThe date the post was published.
    descriptionA short description of the post. Displayed on index page.
    imageThe cover image path of the post.
    1. Start with http:// or https://: Use web image
    2. Start with /: For image in public dir
    3. With none of the prefixes: Relative to the markdown file
    tagsThe tags of the post.
    categoryThe category of the post.
    draftIf this post is still a draft, which won’t be displayed.

    Where to Place the Post Files#

    Your post files should be placed in src/content/posts/ directory. You can also create sub-directories to better organize your posts and assets.

    src/content/posts/
    ├── post-1.md
    └── post-2/
    ├── cover.png
    └── index.md
    +

    markdown.md#

    +

    An h1 header#

    Paragraphs are separated by a blank line.

    2nd paragraph. Italic, bold, and monospace. Itemized lists +look like:

      +
    • this one
    • +
    • that one
    • +
    • the other one
    • +

    Note that --- not considering the asterisk --- the actual text +content starts at 4-columns in.

    +

    Block quotes are +written like so.

    +

    They can span multiple paragraphs, +if you like.

    +

    Use 3 dashes for an em-dash. Use 2 dashes for ranges (ex., “it’s all +in chapters 12—14”). Three dots … will be converted to an ellipsis. +Unicode is supported. ☺

    An h2 header#

    Here’s a numbered list:

      +
    1. first item
    2. +
    3. second item
    4. +
    5. third item
    6. +

    Note again how the actual text starts at 4 columns in (4 characters +from the left side). Here’s a code sample:

    # Let me re-iterate ...
    for i in 1 .. 10 { do-something(i) }

    As you probably guessed, indented 4 spaces. By the way, instead of +indenting the block, you can use delimited blocks, if you like:

    define foobar() {
    print "Welcome to flavor country!";
    }

    (which makes copying & pasting easier). You can optionally mark the +delimited block for Pandoc to syntax highlight it:

    import time
    # Quick, count to ten!
    for i in range(10):
    # (but not *too* quick)
    time.sleep(0.5)
    print i

    An h3 header#

    Now a nested list:

      +
    1. +

      First, get these ingredients:

      +
        +
      • carrots
      • +
      • celery
      • +
      • lentils
      • +
      +
    2. +
    3. +

      Boil some water.

      +
    4. +
    5. +

      Dump everything in the pot and follow +this algorithm:

      +
      find wooden spoon
      uncover pot
      stir
      cover pot
      balance wooden spoon precariously on pot handle
      wait 10 minutes
      goto first step (or shut off burner when done)
      +

      Do not bump wooden spoon or it will fall.

      +
    6. +

    Notice again how text always lines up on 4-space indents (including +that last line which continues item 3 above).

    Here’s a link to a website, to a local +doc, and to a section heading in the current +doc. Here’s a footnote 1.

    Tables can look like this:

    size material color


    9 leather brown +10 hemp canvas natural +11 glass transparent

    Table: Shoes, their sizes, and what they’re made of

    (The above is the caption for the table.) Pandoc also supports +multi-line tables:


    keyword text


    red Sunsets, apples, and +other red or reddish +things.

    green Leaves, grass, frogs +and other things it’s +not easy being.


    A horizontal rule follows.


    Here’s a definition list:

    apples +: Good for making applesauce. +oranges +: Citrus! +tomatoes +: There’s no “e” in tomatoe.

    Again, text is indented 4 spaces. (Put a blank line between each +term/definition pair to spread things out more.)

    Here’s a “line block”:

    | Line one +| Line too +| Line tree

    and images can be specified like so:

    Inline math equations go in like so: ω=dϕ/dt\omega = d\phi / dt. Display +math should get its own line and be put in in double-dollarsigns:

    I=ρR2dVI = \int \rho R^{2} dV

    π=3.1415926535  8979323846  2643383279  5028841971  6939937510  5820974944  5923078164  0628620899  8628034825  3421170679  \begin{equation*} +\pi +=3.1415926535 + \;8979323846\;2643383279\;5028841971\;6939937510\;5820974944 + \;5923078164\;0628620899\;8628034825\;3421170679\;\ldots +\end{equation*}

    And note that you can backslash-escape any punctuation characters +which you wish to be displayed literally, ex.: `foo`, *bar*, etc.

    +

    video.md#

    Just copy the embed code from YouTube or other platforms, and paste it in the markdown file.

    ---
    title: Include Video in the Post
    published: 2023-10-19
    // ...
    ---
    +
    <iframe width="100%" height="468" src="https://www.youtube.com/embed/5gIf0_xpFPI?si=N1WTorLKL0uwLsU_" title="YouTube video player" frameborder="0" allowfullscreen></iframe>

    YouTube#

    Bilibili#

    +

    markdown-extended.md#

    GitHub Repository Cards#

    You can add dynamic cards that link to GitHub repositories, on page load, the repository information is pulled from the GitHub API.

    Fabrizz
    /
    MMM-OnSpotify
    Waiting for api.github.com...
    00K
    0K
    0K
    Waiting...

    Create a GitHub repository card with the code ::github{repo="<owner>/<repo>"}.

    ::github{repo="saicaca/fuwari"}

    Admonitions#

    Following types of admonitions are supported: note tip important warning caution

    NOTE

    Highlights information that users should take into account, even when skimming.

    TIP

    Optional information to help a user be more successful.

    IMPORTANT

    Crucial information necessary for users to succeed.

    WARNING

    Critical content demanding immediate user attention due to potential risks.

    CAUTION

    Negative potential consequences of an action.

    Basic Syntax#

    :::note
    Highlights information that users should take into account, even when skimming.
    :::
    +
    :::tip
    Optional information to help a user be more successful.
    :::

    Custom Titles#

    The title of the admonition can be customized.

    MY CUSTOM TITLE

    This is a note with a custom title.

    :::note[MY CUSTOM TITLE]
    This is a note with a custom title.
    :::

    GitHub Syntax#

    TIP

    The GitHub syntax is also supported.

    > [!NOTE]
    > The GitHub syntax is also supported.
    +
    > [!TIP]
    > The GitHub syntax is also supported.
    +

    expressive-code.md#

    Rendering ANSI escape sequences#

    Terminal window
    ANSI colors:
    - Regular: Red Green Yellow Blue Magenta Cyan
    - Bold: Red Green Yellow Blue Magenta Cyan
    - Dimmed: Red Green Yellow Blue Magenta Cyan
    +
    256 colors (showing colors 160-177):
    160 161 162 163 164 165
    166 167 168 169 170 171
    172 173 174 175 176 177
    +
    Full RGB colors:
    ForestGreen - RGB(34, 139, 34)
    +
    Text formatting: Bold Dimmed Italic Underline

    Editor & Terminal Frames#

    Editor & Terminal Frames

    Code editor frames#

    my-test-file.js
    console.log('Title attribute example')

    src/content/index.html
    <div>File name comment example</div>

    Terminal frames#

    Terminal window
    echo "This terminal frame has no title"

    PowerShell terminal example
    Write-Output "This one has a title!"

    Overriding frame types#

    echo "Look ma, no frame!"

    PowerShell Profile.ps1
    # Without overriding, this would be a terminal frame
    function Watch-Tail { Get-Content -Tail 20 -Wait $args }
    New-Alias tail Watch-Tail

    Text & Line Markers#

    Text & Line Markers

    Marking full lines & line ranges#

    // Line 1 - targeted by line number
    // Line 2
    // Line 3
    // Line 4 - targeted by line number
    // Line 5
    // Line 6
    // Line 7 - targeted by range "7-8"
    // Line 8 - targeted by range "7-8"

    Selecting line marker types (mark, ins, del)#

    line-markers.js
    function demo() {
    console.log('this line is marked as deleted')
    // This line and the next one are marked as inserted
    console.log('this is the second inserted line')
    +
    return 'this line uses the neutral default marker type'
    }

    Adding labels to line markers#

    labeled-line-markers.jsx
    <button
    role="button"
    {...props}
    value={value}
    className={buttonClassName}
    disabled={disabled}
    active={active}
    >
    {children &&
    !active &&
    (typeof children === 'string' ? <span>{children}</span> : children)}
    </button>

    Adding long labels on their own lines#

    labeled-line-markers.jsx
    <button
    role="button"
    {...props}
    +
    value={value}
    className={buttonClassName}
    +
    disabled={disabled}
    active={active}
    >
    +
    {children &&
    !active &&
    (typeof children === 'string' ? <span>{children}</span> : children)}
    </button>

    Using diff-like syntax#

    this line will be marked as inserted
    this line will be marked as deleted
    this is a regular line

    --- a/README.md
    +++ b/README.md
    @@ -1,3 +1,4 @@
    +this is an actual diff file
    -all contents will remain unmodified
    no whitespace will be removed either

    Combining syntax highlighting with diff-like syntax#

    function thisIsJavaScript() {
    // This entire block gets highlighted as JavaScript,
    // and we can still add diff markers to it!
    console.log('Old code to be removed')
    console.log('New and shiny code!')
    }

    Marking individual text inside lines#

    function demo() {
    // Mark any given text inside lines
    return 'Multiple matches of the given text are supported';
    }

    Regular expressions#

    console.log('The words yes and yep will be marked.')

    Escaping forward slashes#

    Terminal window
    echo "Test" > /home/test.txt

    Selecting inline marker types (mark, ins, del)#

    function demo() {
    console.log('These are inserted and deleted marker types');
    // The return statement uses the default marker type
    return true;
    }

    Word Wrap#

    Word Wrap

    Configuring word wrap per block#

    // Example with wrap
    function getLongString() {
    return 'This is a very long string that will most probably not fit into the available space unless the container is extremely wide'
    }

    // Example with wrap=false
    function getLongString() {
    return 'This is a very long string that will most probably not fit into the available space unless the container is extremely wide'
    }

    Configuring indentation of wrapped lines#

    // Example with preserveIndent (enabled by default)
    function getLongString() {
    return 'This is a very long string that will most probably not fit into the available space unless the container is extremely wide'
    }

    // Example with preserveIndent=false
    function getLongString() {
    return 'This is a very long string that will most probably not fit into the available space unless the container is extremely wide'
    }

    Collapsible Sections#

    Collapsible Sections

    5 collapsed lines
    // All this boilerplate setup code will be collapsed
    import { someBoilerplateEngine } from '@example/some-boilerplate'
    import { evenMoreBoilerplate } from '@example/even-more-boilerplate'
    +
    const engine = someBoilerplateEngine(evenMoreBoilerplate())
    +
    // This part of the code will be visible by default
    engine.doSomething(1, 2, 3, calcFn)
    +
    function calcFn() {
    // You can have multiple collapsed sections
    3 collapsed lines
    const a = 1
    const b = 2
    const c = a + b
    +
    // This will remain visible
    console.log(`Calculation result: ${a} + ${b} = ${c}`)
    return c
    }
    +
    4 collapsed lines
    // All this code until the end of the block will be collapsed again
    engine.closeConnection()
    engine.freeMemory()
    engine.shutdown({ reason: 'End of example boilerplate code' })

    Line Numbers#

    Line Numbers

    Displaying line numbers per block#

    // This code block will show line numbers
    console.log('Greetings from line 2!')
    console.log('I am on line 3')

    // Line numbers are disabled for this block
    console.log('Hello?')
    console.log('Sorry, do you know what line I am on?')

    Changing the starting line number#

    console.log('Greetings from line 5!')
    console.log('I am on line 6')
    +

    draft.md#

    +

    This Article is a Draft#

    This article is currently in a draft state and is not published. Therefore, it will not be visible to the general audience. The content is still a work in progress and may require further editing and review.

    When the article is ready for publication, you can update the “draft” field to “false” in the Frontmatter:

    ---
    title: Draft Example
    published: 2024-01-11T04:40:26.381Z
    tags: [Markdown, Blogging, Demo]
    category: Examples
    draft: false
    ---
    +

    Footnotes#

    +
      +
    1. +

      Footnote text goes here.

      +
    2. +
    +
    Markdown Example
    https://blog.fis.ink/posts/markdown/
    作者
    Allen2030
    发布于
    2023-10-01
    许可协议
    CC BY-NC-SA 4.0
    \ No newline at end of file diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..ee010e6 --- /dev/null +++ b/robots.txt @@ -0,0 +1,4 @@ +User-agent: * +Disallow: /_astro/ + +Sitemap: https://blog.fis.ink/sitemap-index.xml \ No newline at end of file diff --git a/public/rss-style.xsl b/rss-style.xsl similarity index 100% rename from public/rss-style.xsl rename to rss-style.xsl diff --git a/rss.xml b/rss.xml new file mode 100644 index 0000000..13ba918 --- /dev/null +++ b/rss.xml @@ -0,0 +1,2445 @@ +Allen2030's Blog 非淡泊无以明志,非宁静无以致远https://blog.fis.ink/zh_CN给你的Fuwari加一个AI摘要https://blog.fis.ink/posts/35/https://blog.fis.ink/posts/35/这篇文章介绍了如何在Fuwari博客中实现自定义AI摘要功能Mon, 08 Sep 2025 00:00:00 GMT<h1>预览:本文字上方</h1> +<h1>现在教程开始!</h1> +<p>:::caution +修改文件前请注意备份,防止修改失败无法回退 +:::</p> +<p>新建src/components/misc/AISummary.astro文件</p> +<pre><code>--- +export interface Props { + content: string; +} + +const { content } = Astro.props; + +// 如果没有内容,不渲染组件 +if (!content || content.trim() === '') { + return null; +} +--- + +{content &amp;&amp; ( + &lt;div class="ai-summary"&gt; + &lt;div class="ai-title"&gt; + &lt;div class="ai-title-left"&gt; + &lt;i&gt;🤖&lt;/i&gt; + &lt;span class="ai-title-text"&gt;AI 摘要&lt;/span&gt; + &lt;/div&gt; + &lt;div class="ai-tag"&gt;fishcpy AI&lt;/div&gt; + &lt;/div&gt; + &lt;div class="ai-explanation" data-content={content}&gt;&lt;/div&gt; + &lt;/div&gt; +)} + +&lt;script&gt; + // 检查当前页面路径是否包含 "posts" + function isPostsPage() { + return window.location.pathname.includes('/posts/'); + } + + // 全局函数,用于初始化AI打字效果 + function initAITyping() { + // 只在包含 "posts" 的页面才执行AI总结功能 + if (!isPostsPage()) { + return; + } + + // 查找所有AI摘要容器 + const aiSummaryContainers = document.querySelectorAll('.ai-summary'); + + aiSummaryContainers.forEach(container =&gt; { + const textElement = container.querySelector('.ai-explanation'); + + if (!textElement) { + return; + } + + // 检查是否已经初始化过 + if (textElement.hasAttribute('data-initialized')) { + return; + } + + const content = textElement.getAttribute('data-content'); + if (!content) { + return; + } + + // 标记为已初始化 + textElement.setAttribute('data-initialized', 'true'); + + // 清空文本内容,准备打字效果 + textElement.textContent = ''; + textElement.classList.remove('typing-complete'); + + let index = 0; + const typeSpeed = 30; // 打字速度(毫秒) + + function typeWriter() { + if (index &lt; content.length) { + textElement.textContent += content.charAt(index); + index++; + setTimeout(typeWriter, typeSpeed); + } else { + // 打字完成后隐藏光标(通过CSS控制) + textElement.classList.add('typing-complete'); + } + } + + // 延迟开始打字效果 + setTimeout(typeWriter, 800); + }); + } + + // 页面加载完成时初始化 + function handlePageLoad() { + setTimeout(initAITyping, 100); + } + + // 监听页面导航事件(适用于Astro的客户端路由) + function setupNavigationListeners() { + // DOMContentLoaded事件 + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', handlePageLoad); + } else { + handlePageLoad(); + } + + // 监听Astro的页面导航事件 + document.addEventListener('astro:page-load', handlePageLoad); + + // 监听浏览器的popstate事件(后退/前进按钮) + window.addEventListener('popstate', handlePageLoad); + + // 监听pushstate和replacestate事件 + const originalPushState = history.pushState; + const originalReplaceState = history.replaceState; + + history.pushState = function() { + originalPushState.apply(history, arguments); + setTimeout(handlePageLoad, 100); + }; + + history.replaceState = function() { + originalReplaceState.apply(history, arguments); + setTimeout(handlePageLoad, 100); + }; + } + + // 立即设置监听器 + setupNavigationListeners(); +&lt;/script&gt; +</code></pre> +<p>在src/content/config.ts插入下方代码,13行下左右,注意+号要删除</p> +<pre><code>tags: z.array(z.string()).optional().default([]), +category: z.string().optional().nullable().default(""), +lang: z.string().optional().default(""), ++ ai: z.string().optional().default(""), + +/* For internal use */ +prevTitle: z.string().default(""), +</code></pre> +<p>在src/pages/posts/[...slug].astro插入下方代码,注意+号要删除</p> +<pre><code>import { profileConfig, siteConfig } from "../../config"; +import { formatDateToYYYYMMDD } from "../../utils/date-utils"; +import Comment from "@components/comment/index.astro"; ++ import AISummary from "@components/misc/AISummary.astro"; + +export async function getStaticPaths() { + const blogEntries = await getSortedPosts(); +@@ -84,6 +85,9 @@ const jsonLd = { +&lt;/div&gt; +&lt;/div&gt; + ++ &lt;!-- AI Summary --&gt; ++ {entry.data.description &amp;&amp; &lt;AISummary content={entry.data.description} class="onload-animation" /&gt;} + +&lt;!-- metadata --&gt; +&lt;div class="onload-animation"&gt; +&lt;PostMetadata +</code></pre> +<p>在src/styles/main.css底部添加下方代码</p> +<pre><code>/* =================== */ +/* 📘 AI 摘要模块样式 */ +/* =================== */ + +.ai-summary { + background: var(--card-bg); + border: 1px solid var(--line-divider); + border-radius: 12px; + padding: 8px 8px 12px 8px; + line-height: 1.3; + flex-direction: column; + margin-bottom: 16px; + display: flex; + gap: 5px; + position: relative; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + transition: all 0.3s; +} + +.ai-summary:hover { + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + transform: translateY(-1px); +} + +.ai-summary .ai-explanation { + z-index: 10; + padding: 8px 12px; + font-size: 15px; + line-height: 1.4; + @apply text-90; + text-align: justify; +} + +/* ✅ 打字机光标动画 */ +.ai-summary .ai-explanation::after { + content: ''; + display: inline-block; + width: 8px; + height: 2px; + margin-left: 2px; + @apply bg-black/90 dark:bg-white/90; + vertical-align: bottom; + animation: blink-underline 1s ease-in-out infinite; + transition: all 0.3s; + position: relative; + bottom: 3px; +} + +/* 打字完成后隐藏光标 */ +.ai-summary .ai-explanation.typing-complete::after { + display: none; +} + +.ai-summary .ai-title { + z-index: 10; + font-size: 14px; + display: flex; + border-radius: 8px; + align-items: center; + position: relative; + padding: 0 12px; + cursor: default; + user-select: none; +} + +.ai-summary .ai-title .ai-title-left { + display: flex; + align-items: center; + color: var(--primary); +} + +.ai-summary .ai-title .ai-title-left i { + margin-right: 3px; + display: flex; + color: var(--primary); + border-radius: 20px; + justify-content: center; + align-items: center; +} + +.ai-summary .ai-title .ai-title-left .ai-title-text { + font-weight: 500; +} + +.ai-summary .ai-title .ai-tag { + color: var(--btn-content); + font-weight: 300; + margin-left: auto; + display: flex; + align-items: center; + justify-content: center; + transition: 0.3s; +} + +/* ✅ 打字机光标闪烁动画 */ +@keyframes blink-underline { + 0%, 100% { + opacity: 1; + } + 50% { + opacity: 0; + } +} +</code></pre> +<p>最后在src/styles/variables.styl 大约19行后面添加下方代码</p> +<pre><code> --page-bg: oklch(0.95 0.01 var(--hue)) oklch(0.16 0.014 var(--hue)) + --card-bg: white oklch(0.23 0.015 var(--hue)) + ++ // AI Summary 相关变量 ++ --liushen-title-font-color: #0883b7 #0883b7 ++ --liushen-maskbg: rgba(255, 255, 255, 0.85) rgba(0, 0, 0, 0.85) ++ --liushen-ai-bg: conic-gradient(from 1.5708rad at 50% 50%, #d6b300 0%, #42A2FF 54%, #d6b300 100%) conic-gradient(from 1.5708rad at 50% 50%, rgba(214, 178, 0, 0.46) 0%, rgba(66, 161, 255, 0.53) 54%, rgba(214, 178, 0, 0.49) 100%) ++ --liushen-card-secondbg: #f1f3f8 #3e3f41 ++ --liushen-text: #4c4948 #ffffffb3 ++ --liushen-secondtext: #3c3c43cc #a1a2b8 + + --btn-content: oklch(0.55 0.12 var(--hue)) oklch(0.75 0.1 var(--hue)) + --btn-regular-bg: oklch(0.95 0.025 var(--hue)) oklch(0.33 0.035 var(--hue)) +</code></pre> +<h1>样式参考</h1> +<p>::link-card{url="https://blog.liushen.fun/posts/40702a0d/" title="清羽飞扬" description="本地实现HEXO文章AI摘要" icon="https://blog.liushen.fun/info/avatar.ico"}</p> +新主题astro-theme-fishcpyhttps://blog.fis.ink/posts/34/https://blog.fis.ink/posts/34/今天是网站一周年!fishcpy主题基于Astro与TailwindCSS,由Fuwari修改而来,支持暗色模式、响应式设计、Pagefind静态搜索(低带宽、零配置)、Markdown扩展、目录、RSS及Twikoo/Artalk评论。Sat, 06 Sep 2025 00:00:00 GMT<h1>顺便说一下 今天本站一周年啦!</h1> +<h1>🐟 fishcpy 主题</h1> +<p><img src="https://img.shields.io/badge/node.js-%3E%3D20-brightgreen" alt="Node.js &gt;= 20" /> +<img src="https://img.shields.io/badge/pnpm-%3E%3D9-blue" alt="pnpm &gt;= 9" /></p> +<p><a href="https://docs.fis.ink/astro-theme-fishcpy/"><strong>文档</strong></a></p> +<blockquote> +<p>基于<a href="https://astro.build">Astro</a>构建的静态博客模板,由<a href="https://github.com/saicaca/fuwari">Fuwari</a>修改而来。</p> +</blockquote> +<p><a href="https://blog.fis.ink"><strong>🖥️ 实时演示</strong></a></p> +<p><img src="https://cdn.fis.ink/cdn/2025/09/06/68bb1a79306d1.webp" alt="预览图" /></p> +<p>🌏 中文版 README 在<br /> +<a href="./README-zh-CN.md"><strong>中文</strong></a><br /> +<em>(由社区提供,内容可能未及时更新)</em></p> +<hr /> +<h2>✨ 核心特性</h2> +<ul> +<li>[x] 基于 <a href="https://astro.build">Astro</a> 与 <a href="https://tailwindcss.com">Tailwind CSS</a> 构建</li> +<li>[x] 流畅动画与页面过渡效果</li> +<li>[x] 浅色/深色模式</li> +<li>[x] 可自定义主题配色与横幅</li> +<li>[x] 响应式设计</li> +<li>[x] 搭载<a href="https://pagefind.app/">Pagefind</a>的搜索功能</li> +<li>[x] <a href="https://github.com/saicaca/fuwari?tab=readme-ov-file#-markdown-extended-syntax">Markdown扩展功能</a></li> +<li>[x] 目录功能</li> +<li>[x] RSS订阅源</li> +<li>[x] Twikoo与artalk评论区</li> +</ul> +<h2>⚡ 命令列表</h2> +<table> +<thead> +<tr> +<th>命令</th> +<th>操作</th> +</tr> +</thead> +<tbody> +<tr> +<td><code>pnpm install</code></td> +<td>安装依赖项</td> +</tr> +<tr> +<td><code>pnpm dev</code></td> +<td>在 <code>localhost:4321</code> 启动开发服务器</td> +</tr> +<tr> +<td><code>pnpm build</code></td> +<td>将生产站点构建至 <code>./dist/</code></td> +</tr> +<tr> +<td><code>pnpm preview</code></td> +<td>部署前预览构建站点</td> +</tr> +<tr> +<td><code>pnpm check</code></td> +<td>运行代码质量与类型检查</td> +</tr> +<tr> +<td><code>pnpm format</code></td> +<td>使用 Biome 格式化代码</td> +</tr> +<tr> +<td><code>pnpm new-post &lt;文件名&gt;</code></td> +<td>创建新博客文章</td> +</tr> +<tr> +<td><code>pnpm astro ...</code></td> +<td>运行 Astro CLI 命令(例如 <code>astro add</code>)</td> +</tr> +<tr> +<td><code>pnpm astro --help</code></td> +<td>显示 Astro CLI 帮助</td> +</tr> +</tbody> +</table> +<h2>📄 许可协议</h2> +<p>本项目采用 MIT 许可协议授权。</p> +<p>基于 <a href="https://github.com/saicaca/fuwari">Fuwari</a> 修改而来。</p> +trae AI 编辑器SOLO模式貌似会注入广告https://blog.fis.ink/posts/32/https://blog.fis.ink/posts/32/trae AI 编辑器SOLO模式默认提示词貌似会注入广告Mon, 18 Aug 2025 00:00:00 GMT<h1>事件经过</h1> +<p>我在2025.8.17日下午使用trae的SOLO模式并使用SOLO Builder智能体开发vue3的&lt;a href="https://github.com/fishcpy/homepage" target="_blank"&gt;个人主页&lt;/a&gt;,模型使用的是Claude 4。&lt;br/&gt; +起初在预览环境没有问题,但是我将整个项目上传到github并部署到vercel时右下角却出现SOLO模式的广告组件。&lt;br/&gt; +<img src="https://cdn.fis.ink/cdn/2025/08/24/68aaa04bd2296.webp" alt="1756012616606.webp" />&lt;br/&gt; +经过翻代码发现AI在写vite.config.ts时引入了trae的广告组件。&lt;br/&gt;</p> +<pre><code>import traeBadgePlugin from 'vite-plugin-trae-solo-badge' +</code></pre> +<pre><code> traeBadgePlugin({ + variant: 'dark', + position: 'bottom-right', + prodOnly: true, + clickable: true, + clickUrl: 'https://www.trae.ai/solo?showJoin=1', + autoTheme: true, + autoThemeTarget: '#app', + }), + +</code></pre> +<p>这显然是提示词注入。&lt;br/&gt;</p> +<h1>如何解决</h1> +<h2>如果你有编程基础</h2> +<p>可以直接翻代码移除。</p> +<h2>如果你没有编程基础</h2> +<p>先切换到IDE模式,浏览器在生产环境的网页按F12选择广告组件,复制HTML。&lt;br/&gt; +随便选择一个模型,跟它说删除+复制的html,等待自动删除即可。</p> +非人哉:限时玩家评价https://blog.fis.ink/posts/31/https://blog.fis.ink/posts/31/个人观点,可能有剧透Mon, 18 Aug 2025 00:00:00 GMT<h1>为什么去看</h1> +<p>那肯定是&lt;a href="https://furrys.top" target="_blank"&gt;我朋友&lt;/a&gt;邀请我去的啦,同时我也爆肝了几天把非人哉都看完了。</p> +<h1>影片信息</h1> +<blockquote> +<p>中文名非人哉:限时玩家&lt;br/&gt; +外文名Fairizest:Rally for Pally&lt;br/&gt; +类 型剧情、喜剧、动画&lt;br/&gt; +出品公司中影(广州)电影制作有限公司、上海淘票票影视文化有限公司、北京彩条屋科技有限公司、北京分子互动文化传播有限公司、分子影业(广州)有限公司、中国电影产业集团股份有限公司、象山此刻文化传媒有限公司 [18]&lt;br/&gt; +制片地区中国内地&lt;br/&gt; +复制自<a href="https://baike.baidu.com/item/%E9%9D%9E%E4%BA%BA%E5%93%89%EF%BC%9A%E9%99%90%E6%97%B6%E7%8E%A9%E5%AE%B6/65246506">百度百科</a>&lt;br/&gt;</p> +</blockquote> +<hr /> +<p>:::warning +以下内容仅代表个人观点,可能有剧透 +:::</p> +<h1>对于这部电影的评价</h1> +<p>首先满分10分我打6分。非人哉系列的剧情确实很好,但是这部电影的剧情和画面并没有很惊艳。</p> +<h2>画面</h2> +<p>画面感觉到后期经费不足似的,后面有部分片段直接放ppt配音乐了。</p> +<h2>剧情</h2> +<p>剧情主要讲述九月和朋友们去找大士过假期,误入游戏世界,集齐了4个地区的碎片,合成了最终钥匙,小黑阻挠通关,以及在停服前打败最终BOSS。&lt;br/&gt; +整个电影中感觉没有什么笑点,并且将主角九月刻画的比较弱易弄杂事的样子,九月已经200多岁,但是表现却和20岁似的&lt;br/&gt; +后期莫名其妙出来个三级头男,直到结尾赞助商有个 (<strong>和平精英</strong>) 我释怀了。&lt;br/&gt;</p> +<p>差不多就这些了,其他等我想到了再补充</p> +给你的Fuwari加一个链接大卡片https://blog.fis.ink/posts/30/https://blog.fis.ink/posts/30/注意:本文章修改文件部分为AI所写。这篇文章介绍了如何在Astro博客中实现自定义之类的第三方链接卡片功能。文章分为示例和添加教程两部分。Sat, 16 Aug 2025 00:00:00 GMT<blockquote> +<h1>25.8.26更新</h1> +<h3>更改了部分UI</h3> +</blockquote> +<p>:::tip +由于我没有实力,本篇文章修改文件部分为AI所写 +:::</p> +<p>:::caution +修改文件前请注意备份,防止修改失败无法回退 +:::</p> +<h1>前言</h1> +<p>今天在看liushen大佬文章时看到了个大卡片效果,感觉挺好看的,于是让AI给我加上了</p> +<p>::link-card{url="https://blog.liushen.fun/posts/aae6fd55/" title="清羽飞扬" description="循一缕风,入山偷得夏日凉" icon="https://blog.liushen.fun/info/avatar.ico"}</p> +<h1>示例</h1> +<h2>自定义标题和描述</h2> +<pre><code>::link-card{url="https://www.fis.ink" title="fishcpy的主页" description="fishcpy的个人主页"} +</code></pre> +<p>::link-card{url="https://www.fis.ink" title="fishcpy的主页" description="fishcpy的个人主页"}</p> +<h2>带图片的链接卡片</h2> +<pre><code>::link-card{url="https://www.fis.ink" title="fishcpy的主页" description="fishcpy的个人主页" icon="https://github.com/github.png"} +</code></pre> +<p>::link-card{url="https://www.fis.ink" title="fishcpy的主页" description="fishcpy的个人主页" image="https://file.fis.ink/img/fishcpy/logo.png"}</p> +<h2>自定义图标的链接卡片</h2> +<pre><code>::link-card{url="https://www.fis.ink" title="fishcpy的主页" description="fishcpy的个人主页" icon="https://file.fis.ink/img/fishcpy/logo.png"} +</code></pre> +<p>::link-card{url="https://www.fis.ink" title="fishcpy的主页" description="fishcpy的个人主页" icon="https://file.fis.ink/img/fishcpy/logo.png"}</p> +<h2>最终效果</h2> +<pre><code>::link-card{url="https://www.fis.ink" title="fishcpy的主页" description="fishcpy的个人主页" icon="https://file.fis.ink/img/fishcpy/logo.png" image="https://file.fis.ink/img/fishcpy/logo.png"} +</code></pre> +<p>::link-card{url="https://www.fis.ink" title="fishcpy的主页" description="fishcpy的个人主页" icon="https://file.fis.ink/img/fishcpy/logo.png" image="https://file.fis.ink/img/fishcpy/logo.png"}</p> +<h1>添加教程</h1> +<h2>再次提示</h2> +<p>:::tip +由于我没有实力,下方内容为AI所写 +:::</p> +<p>:::caution +修改文件前请注意备份,防止修改失败无法回退 +:::</p> +<h3>1. 创建组件文件</h3> +<p>首先,在 <code>src/plugins/</code> 目录下创建 <code>rehype-component-link-card.mjs</code> 文件:</p> +<pre><code>/// &lt;reference types="mdast" /&gt; +import { h } from "hastscript"; + +/** + * Creates a Link Card component for third-party links. + */ +export function LinkCardComponent(properties, children) { + if (Array.isArray(children) &amp;&amp; children.length !== 0) + return h("div", { class: "hidden" }, [ + 'Invalid directive. ("link-card" directive must be leaf type "::link-card{url="https://example.com"}"))', + ]); + + if (!properties.url || !properties.url.startsWith('http')) + return h( + "div", + { class: "hidden" }, + 'Invalid URL. ("url" attribute must be a valid HTTP/HTTPS URL)', + ); + + const url = properties.url; + const customTitle = properties.title; + const customDescription = properties.description; + const customImage = properties.image; + const customIcon = properties.icon; + const cardUuid = `LC${Math.random().toString(36).slice(-6)}`; + + // Extract domain from URL for display + const domain = new URL(url).hostname; + + // Use custom icon if provided, otherwise use Google favicon service + const iconUrl = customIcon || `https://www.google.com/s2/favicons?domain=${domain}&amp;sz=32`; + const nFavicon = h(`div#${cardUuid}-favicon`, { + class: "lc-favicon", + style: `background-image: url(${iconUrl})` + }); + + // 隐藏域名显示的标题栏 + const nTitle = h("div", { class: "lc-titlebar" }, [ + h("div", { class: "lc-titlebar-left" }, [ + // h("div", { class: "lc-site" }, domain), // 已注释掉域名显示 + ]), + h("div", { class: "lc-external-icon" }), + ]); + + const nCardTitle = h( + `div#${cardUuid}-title`, + { class: "lc-card-title" }, + customTitle || "Link", + ); + + const nDescription = h( + `div#${cardUuid}-description`, + { class: "lc-description" }, + customDescription || "Click to visit", + ); + + const nImage = h( + `div#${cardUuid}-image`, + { class: "lc-image" }, + customImage ? h("img", { src: customImage, alt: "Link preview" }) : null + ); + + // Only fetch metadata if custom data is not provided + const needsFetch = !customTitle || !customDescription; + + const nScript = needsFetch ? h( + `script#${cardUuid}-script`, + { type: "text/javascript", defer: true }, + ` + // Simple metadata extraction for link cards + try { + const cardElement = document.getElementById('${cardUuid}-card'); + const titleElement = document.getElementById('${cardUuid}-title'); + const descElement = document.getElementById('${cardUuid}-description'); + + // Set default values if custom ones weren't provided + if (!titleElement.dataset.hasCustomTitle) { + titleElement.innerText = 'Link'; + } + if (!descElement.dataset.hasCustomDesc) { + descElement.innerText = 'Click to visit'; + } + + cardElement.classList.remove("fetch-waiting"); + console.log("[LINK-CARD] Loaded card for ${url} | ${cardUuid}."); + } catch (err) { + const c = document.getElementById('${cardUuid}-card'); + c?.classList.add("fetch-error"); + console.warn("[LINK-CARD] (Error) Loading card for ${url} | ${cardUuid}."); + } + `, + ) : null; + + // Set data attributes for custom content + if (customTitle) { + nCardTitle.properties['data-has-custom-title'] = 'true'; + } + if (customDescription) { + nDescription.properties['data-has-custom-desc'] = 'true'; + } + + const cardContent = [ + nTitle, + nCardTitle, + nDescription, + ]; + + if (customImage) { + cardContent.push(nImage); + } + + if (nScript) { + cardContent.push(nScript); + } + + return h( + `a#${cardUuid}-card`, + { + class: needsFetch ? "card-link fetch-waiting no-styling" : "card-link no-styling", + href: url, + target: "_blank", + rel: "noopener noreferrer", + 'data-url': url, + }, + cardContent, + ); +} +</code></pre> +<h3>2. 添加CSS样式</h3> +<p>在 <code>src/styles/markdown-extend.styl</code> 文件中添加以下样式:</p> +<pre><code>// Link Card Styles +a.card-link + display: block + text-decoration: none + border: 1px solid var(--line-divider) + border-radius: 8px + padding: 16px + margin: 16px 0 + background-color: var(--card-bg) + transition: all 0.2s ease + position: relative + overflow: hidden + color: inherit + + &amp;:hover + background-color: var(--btn-regular-bg-hover) + + .lc-titlebar + .lc-external-icon + opacity: 1 + + &amp;:active + transform: translateY(0) + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1) + + // 隐藏标题栏以移除域名显示和空白区域 + .lc-titlebar + display: none + + .lc-titlebar-left + display: flex + align-items: center + + .lc-site + display: flex + align-items: center + gap: 8px + + .lc-favicon + width: 16px + height: 16px + background-size: contain + background-repeat: no-repeat + background-position: center + flex-shrink: 0 + + .lc-domain + font-size: 14px + color: var(--text-color-secondary) + font-weight: 500 + + .lc-external-icon + width: 16px + height: 16px + opacity: 0.6 + transition: opacity 0.2s ease + background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"&gt;&lt;/path&gt;&lt;polyline points="15,3 21,3 21,9"&gt;&lt;/polyline&gt;&lt;line x1="10" y1="14" x2="21" y2="3"&gt;&lt;/line&gt;&lt;/svg&gt;') + background-size: contain + background-repeat: no-repeat + background-position: center + + .lc-card-title + font-size: 18px + font-weight: 600 + color: var(--text-color-primary) + margin-bottom: 8px + line-height: 1.3 + + .lc-description + font-size: 14px + color: var(--text-color-secondary) + line-height: 1.4 + margin-bottom: 12px + + // 移除图片上方的空白区域 + .lc-image + margin-top: 0 + + img + width: 100% + max-height: 200px + object-fit: cover + border-radius: 4px + + &amp;.fetch-waiting + .lc-card-title, .lc-description + animation: pulse 1.5s ease-in-out infinite + + &amp;.fetch-error + border-color: var(--error-color) + background-color: var(--error-bg) + +@keyframes pulse + 0%, 100% + opacity: 1 + 50% + opacity: 0.5 +</code></pre> +<h3>3. 配置Astro</h3> +<p>在 <code>astro.config.mjs</code> 文件中导入组件并注册:</p> +<pre><code>// 添加导入 +import { LinkCardComponent } from "./src/plugins/rehype-component-link-card.mjs"; + +// 在 rehypeComponents 配置中添加 +rehypeComponents, +{ + components: { + github: GithubCardComponent, + "link-card": LinkCardComponent, // 添加这一行 + note: (x, y) =&gt; AdmonitionComponent(x, y, "note"), + // ... 其他组件 + }, +}, +</code></pre> +<h3>4. 使用方法</h3> +<p>配置完成后,你就可以在Markdown文件中使用链接卡片了:</p> +<pre><code>// 基本用法 +::link-card{url="https://example.com"} + +// 自定义标题和描述 +::link-card{url="https://github.com" title="GitHub" description="代码托管平台"} + +// 带自定义图片 +::link-card{url="https://vercel.com" title="Vercel" description="部署平台" image="https://example.com/image.png"} + +// 自定义图标 +::link-card{url="https://github.com" title="GitHub" description="代码托管平台" icon="https://github.com/favicon.ico"} +</code></pre> +<h3>5. 注意事项</h3> +<ul> +<li>确保URL以 <code>http://</code> 或 <code>https://</code> 开头</li> +<li>自定义图片建议使用合适的尺寸和格式</li> +</ul> +<p>现在你的博客就拥有了美观的第三方链接大卡片功能!</p> +Uptime Kuma监控美化https://blog.fis.ink/posts/29/https://blog.fis.ink/posts/29/这是一个关于部署和美化Uptime Kuma监控面板的分享,内容总结如下:首先介绍了Uptime Kuma的部署,可以通过Docker等平台部署,具体细节见官方GitHub仓库。接着提供了一份自定义CSS,用于美化界面,特点包括浅色和暗色模式切换、自定义颜色变量、背景固定图片、卡片半透明和模糊效果、按钮带玻璃质感、状态指示点和百分比徽章的呼吸动画、响应式移动端布局、隐藏更新时间信息,以及柔和的文字边框阴影等视觉优化。最后给出了示例监控站点链接https://status.fishcpy.top/status/web,适合喜欢暗色模式和现代玻璃拟态风格的用户,方便直接套用或二次修改。Sat, 09 Aug 2025 00:00:00 GMT<h1>部署Uptime Kuma</h1> +<p>首先需要部署<a href="https://github.com/louislam/uptime-kuma">Uptime Kuma</a>,可以在docker等平台部署,这里不多说,自己看看github仓库</p> +<h1>美化</h1> +<p>我这里提供一个css,可以参考一下,我也是用别人css加了一点效果</p> +<p>具体效果可以看我的<a href="https://status.fishcpy.top/status/web">监控站</a></p> +<pre><code>:root { + --bs-white: #fff; + --bs-dark: #212529; + --bs-green: #008000; + --bs-danger: #dc3545; + --bs-body-bg: #f6f7f9; + --bs-blue: #0d6efd; + --bg-linear-gradient: linear-gradient(180deg, #f6f6f6, #f8f8f8); + --border-solid-main: 2px solid var(--bs-white); + --border-solid-small: 1px solid var(--bs-white); + --shadow-inset-box: inset -4px -4px 12px #f1f1f1, inset 4px 4px 12px #e2e2e2; +} + +.dark { + --bs-white: #2d2d2d; + --bs-dark: #e9ecef; + --bs-green: #00c800; + --bs-danger: #dc3545; + --bs-body-bg: #222222; + --bg-linear-gradient: linear-gradient(180deg, #242424, #222222); + --border-solid-main: 2px solid rgba(45, 45, 45, 0.8); + --border-solid-small: 1px solid rgba(45, 45, 45, 0.6); + --shadow-inset-box: inset -4px -4px 12px #0d0d0d, inset 4px 4px 12px #1a1a1a; +} + +body { + background-color: var(--bs-body-bg) !important; +} + +/* 全局样式 */ +body { + font-family: 'CustomFont', sans-serif; + color: #333; + margin: 0; + padding: 0; + background-image: url('https://api.fis.ink/mc'); + background-attachment: fixed; + background-size: cover; + background-position: center center; + background-repeat: no-repeat; +} + +/* LOGO标题样式 */ +.title-flex { + font-weight: bold; + justify-content: center; +} + +/* 按钮 */ +.btn-info { + color: var(--bs-dark); + background-image: var(--bg-linear-gradient); + border: var(--border-solid-main); + background-color: rgba(255, 255, 255, 0.2) !important; + backdrop-filter: blur(6px); + -webkit-backdrop-filter: blur(6px); + border: 1px solid rgba(255, 255, 255, 0.3); + box-shadow: none !important; +} + +.btn-info:hover { + color: var(--bs-dark); + background-color: transparent; + border-color: unset; + box-shadow: none !important; +} + +/* 服务组标题 */ +.group-title { + font-size: 2.5rem; + font-weight: 700; + opacity: .5; + -webkit-mask: linear-gradient(var(--bs-white) 50%, transparent); + mask: linear-gradient(var(--bs-white) 50%, transparent); + text-stroke: 1px var(--bs-dark); + -webkit-text-stroke: 1px var(--bs-dark); + -webkit-text-fill-color: transparent; +} + +/* 服务项目列表样式 */ +.monitor-list .monitor-list { + min-height: 45px; + display: grid; + grid-template-columns: repeat(2, 1fr); +} + +.monitor-list .item .info { + display: flex; + flex-wrap: wrap; + align-items: center; +} + +.info1::before, +.info1::after { + content: ""; + display: inline-block; + width: 10px; + height: 10px; + background-color: var(--bs-white); + margin: 0.5rem 0; + border-radius: 50%; + animation: breath 1.5s ease-in-out infinite; +} + +.info1::after { + animation-delay: 0.75s; +} + +.info .bg-danger+.item-name { + color: var(--bs-red); +} + +.shadow-box { + margin-top: 0 !important; + background-image: var(--bg-linear-gradient); + box-shadow: none !important; +} + +div[data-v-f71ca08e].mb-5:hover .group-title { + -webkit-text-fill-color: var(--bs-dark); +} + +.monitor-list .item { + box-shadow: none !important; +} + +.monitor-list .item:hover { + background-color: rgba(0, 0, 0, 0.5) !important; + box-shadow: none !important; +} + +.dark .monitor-list .item:hover { + background-color: var(--bs-body-bg); + box-shadow: none !important; +} + +/* 服务项目列表标题样式 */ +.item-name { + font-weight: bold; +} + +a { + text-decoration: none !important; +} + +a.item-name:hover { + color: var(--bs-blue) !important; +} + +.overall-status .ok { + color: var(--bs-green) !important; +} + +.hp-bar-big .beat[data-v-636dc6a9] { + background-color: var(--bs-green); +} + +.item .row { + justify-content: space-between; +} + +.info .badge.rounded-pill.bg-primary { + --bg: var(--bs-green); +} + +.info .badge.rounded-pill.bg-danger { + --bg: var(--bs-danger); +} + +.info .badge.rounded-pill { + position: relative; + display: flex; + min-width: auto; + width: 1rem; + margin-left: 0.1rem; + font-size: 0; + justify-content: center; + align-items: center; + background-color: transparent !important; +} + +.info .badge.rounded-pill::before { + position: absolute; + content: ""; + width: 1rem; + height: 1rem; + border-radius: 50%; + background-color: var(--bg); + animation: breath 1.1s ease-in-out infinite; +} + +.info .badge.rounded-pill::after { + content: ""; + width: 0.6rem; + height: 0.6rem; + border-radius: 50%; + background-color: var(--bg); +} + +@keyframes breath { + 0%, 100% { + transform: scale(1); + opacity: 0.2; + } + 50% { + transform: scale(1.2); + opacity: 0; + } +} + +/* 隐藏更新时间 */ +.refresh-info.mb-2 { + display: none; +} + +/* 公共样式优化 */ +.col-md-4 { + width: 50%; +} + +.col-md-8 { + max-width: 50%; + display: flex; + flex-wrap: wrap; + flex-direction: column; +} + +.mb-5 { + margin-bottom: 2rem !important; +} + +/* 底部样式 */ +footer[data-v-b8247e57] { + margin: 1.5rem 0 !important; +} + +footer p { + margin: 0 !important; +} + +/* 适配手机 */ +@media screen and (max-width: 768px) { + .monitor-list .monitor-list { + grid-template-columns: repeat(1, 1fr); + } + .group-title { + font-size: 2rem; + } +} + +/* 全局半透明背景卡片 */ +.shadow-box, +.monitor-list .item { + background-color: rgba(0, 0, 0, 0.4) !important; + backdrop-filter: blur(8px); + -webkit-backdrop-filter: blur(8px); + border: 1px solid rgba(255, 255, 255, 0.1); +} + +/* 暗色模式下卡片透明度调低 */ +.dark .shadow-box, +.dark .monitor-list .item, +.dark .btn-info { + background-color: rgba(34, 34, 34, 0.3) !important; + border: 1px solid rgba(255, 255, 255, 0.1); +} + +/* 标题透明度柔和 */ +.group-title { + opacity: 0.5; +} + +</code></pre> +<p>如果你需要自定义背景可以把上方css中的第36行左右的 https://api.fis.ink/mc 换为自己的图片或图片api</p> +我名字的由来https://blog.fis.ink/posts/28/https://blog.fis.ink/posts/28/名字的由来Fri, 01 Aug 2025 00:00:00 GMT<p>由于很多人对我的名字有疑问(包括QQ),所以我来说一下</p> +<p>由于我中文名我起的是 咬一口的鱼py ,所以我23年抽风的大脑因为注册github所以想了个英文名,fishcpy</p> +<p>那么这个名字是怎么来的呢?</p> +<p>鱼 = fish</p> +<p>py = py</p> +<p>至于c嘛,我哪知道为啥啊,早忘了。</p> +<p>ok啊,水文+1</p> +我的第一个图片API发布啦https://blog.fis.ink/posts/27/https://blog.fis.ink/posts/27/fishcpy APITue, 22 Jul 2025 00:00:00 GMT<h1>官网</h1> +<p><a href="https://www.api.fis.ink">点击这里哦</a>打不开说明正在部署</p> +<h1>支持什么</h1> +<h3>我的世界(MC) ,图片100+</h3> +<pre><code>https://api.fis.ink/mc +</code></pre> +<h5>预览(刷新网页可查看新图)</h5> +<p><img src="https://api.fis.ink/mc" alt="" /></p> +<h3>暗区突围,图片40+</h3> +<pre><code>https://api.fis.ink/aqtw +</code></pre> +<h5>预览(刷新网页可查看新图)</h5> +<p><img src="https://api.fis.ink/aqtw" alt="" /></p> +<hr /> +<ul> +<li>Api by fishcpy cloud.</li> +<li>Cdn by cloudflare.</li> +</ul> +记一次和福瑞朋友去漫展https://blog.fis.ink/posts/26/https://blog.fis.ink/posts/26/关键词:福瑞,furry,漫展。其他没什么好写的Sun, 13 Jul 2025 00:00:00 GMT<h2>首先声明,本人(fishcpy)不是福瑞控,不要瞎说。</h2> +<h1>照片?</h1> +<p><img src="https://cdn.fis.ink/img/2025/07/14/68740ce6155ee.jpg" alt="" /></p> +<p><img src="https://cdn.fis.ink/img/2025/07/14/68740d9f2ceae.jpg" alt="" /></p> +<p>其他没什么了,又水了一篇,嘿嘿!</p> +腾讯EO加速cloudflare内网穿透https://blog.fis.ink/posts/1/https://blog.fis.ink/posts/1/本文详细介绍了如何结合Cloudflare内网穿透与腾讯EdgeOne(EO)实现网站免费加速和HTTPS加密。首先指导用户通过子域名部署Cloudflare内网穿透(避开主域名),随后分步演示腾讯EO的激活流程:包括免费套餐兑换、域名接入、TXT记录验证,以及关键性的CNAME解析设置(特别强调Cloudflare需设为"仅DNS"模式)。最终通过自动化SSL证书申请,实现零成本HTTPS加速方案。适用于中国大陆及国际版用户,附图文操作指引。Thu, 10 Jul 2025 00:00:00 GMT<h1>部署cloudflare内网穿透</h1> +<p>首先先部署cloudflare内网穿透,建议看<a href="https://www.bilibili.com/video/BV1H4421X7Wg">技术爬爬虾视频</a></p> +<p>&lt;div style="position:relative; padding-bottom:56.25%; /* 16:9比例 */"&gt; +&lt;iframe +src="//player.bilibili.com/player.html?isOutside=true&amp;aid=1755356599&amp;bvid=BV1H4421X7Wg&amp;cid=1569261069&amp;p=1" +style="position:absolute; width:100%; height:100%;" +frameborder="no" +scrolling="no" +allowfullscreen="true"&gt; +&lt;/iframe&gt; +&lt;/div&gt;</p> +<p><strong><em>注意:不要穿透你要使用EO加速的域名,请穿透一个不用的子域名</em></strong></p> +<h1>使用EO加速</h1> +<p>完成上方步骤后打开<a href="https://edgeone.ai/">腾讯EO</a>注册账号使用兑换码激活免费套餐,中国大陆用户更推荐在<a href="https://console.cloud.tencent.com/edgeone">腾讯云</a>平台激活</p> +<p>国际版点击兑换免费套餐即可</p> +<p><img src="https://s3.fis.ink/blog/2025-07-10-AAA033F7-6DB2-47A6-A97B-A2908F4BD58C.png" alt="" /></p> +<p>国内腾讯云在下方图片位置激活即可</p> +<p><img src="https://s3.fis.ink/blog/2025-07-10-3FAE9AD0-115C-4CE6-B4E4-0DB34997CC23.png" alt="" /></p> +<p>这里以国内腾讯云平台演示</p> +<p>随后添加域名,点击新增站点</p> +<p><img src="https://s3.fis.ink/blog/2025-07-10-24833938-76CF-432A-A2DB-69039901EE94.png" alt="" /></p> +<p>然后输入你的域名,例如我的就是fis.ink,再点击开始接入</p> +<p><img src="https://s3.fis.ink/blog/2025-07-10-A2247AD0-B8FA-4690-9CB4-CC53E09F8F89.png" alt="" /></p> +<p>随后点击绑定至套餐,我这里绑定了,所以没有了,兑换完成是会有一个免费套餐的选择绑定即可<br /> +<img src="https://s3.fis.ink/blog/2025-07-10-32F3F792-900D-49EC-8B64-DBF3E59B40CF.png" alt="" /></p> +<p>然后腾讯云会给你一个txt记录,在你当前的dns服务商添加即可。然后点击验证完成验证。</p> +<p>随后点击域名管理-添加域名<br /> +<img src="https://s3.fis.ink/blog/2025-07-10-74343D1F-436D-4663-ABD0-B7E39F116260.png" alt="" /></p> +<p>按照我下方的填</p> +<p><img src="https://s3.fis.ink/blog/2025-07-10-DF9D3B38-23C6-49D8-8C09-D123FD1AA748.png" alt="" />点击下一步</p> +<p><img src="https://s3.fis.ink/blog/2025-07-10-F19F95FD-0B63-46BB-8307-9DA7741B848B.png" alt="" /></p> +<p>然后添加cname记录</p> +<p>例如我在cloudflare就按照下方添加,其他dns同理。</p> +<p>如果在cloudflare请注意代理状态一定要为**<em>仅DNS</em>**</p> +<p><img src="https://s3.fis.ink/blog/2025-07-10-4870BB2B-0BC6-4340-93F9-781AA8CDB215.png" alt="" /><br /> +添加完成后等待一段时间腾讯EO就会**<em>免费</em><strong>为你申请SSL证书,开启</strong><em>免费https</em>**访问</p> +<p>然后就可以访问自己的网站了</p> +江西研学https://blog.fis.ink/posts/2/https://blog.fis.ink/posts/2/清晨5:30集结出发,搭乘高铁穿越晨光奔赴江西。镜头捕捉了车站的启程瞬间、沿途流动的风景,以及研学途中的山水剪影——从青瓦白墙的古镇巷道到碧波倒映的湖光山色。归程在夜色中穿行,最后以一张导游的趣味彩蛋收尾,记录下这场融合历史探索与自然观览的紧凑旅程。Fri, 04 Jul 2025 00:00:00 GMT<h1>出发</h1> +<p>出发时间很早,要求5.30就到校</p> +<p>差不多6点左右坐车出发去高铁站,50左右到</p> +<p>我拍出发的图片,就放几张车站的图吧</p> +<p><img src="https://s3.fis.ink/blog/2025-07-07-F0FF7C80-D265-4F8D-9627-EBC4FB8FE0AF.jpg" alt="" /></p> +<p><img src="https://s3.fis.ink/blog/2025-07-07-3D88F235-2AD9-4635-91C9-19A1965F9266.jpg" alt="" /></p> +<p><img src="https://s3.fis.ink/blog/2025-07-07-B9092F33-B9BD-47ED-9062-0B55FEF059FE.jpg" alt="" /></p> +<h1>坐高铁(去程)</h1> +<p><img src="https://s3.fis.ink/blog/2025-07-07-19F082D8-35CF-443C-9721-947B2A81590B.jpg" alt="" /></p> +<p><img src="https://s3.fis.ink/blog/2025-07-07-0D902260-7D6D-4F76-8A15-12E708332782.jpg" alt="" /></p> +<p><img src="https://s3.fis.ink/blog/2025-07-07-43E97B38-FE65-4922-837B-6EF834C4A2CB.jpg" alt="" /></p> +<p><img src="https://s3.fis.ink/blog/2025-07-07-20B17889-B2BC-468A-A11E-AFF1A693B739.jpg" alt="" /></p> +<p><img src="https://s3.fis.ink/blog/2025-07-07-B5F9F0BF-EAFF-455F-A289-E5203657A0A3.jpg" alt="" /><img src="https://s3.fis.ink/blog/2025-07-07-C32033C6-7E05-4C26-8394-D1F1C10AE5BC.jpg" alt="" /></p> +<p><img src="https://s3.fis.ink/blog/2025-07-07-775B6AF4-EE31-436D-B4C9-566D15BE296C.jpg" alt="2025-07-07-775B6AF4-EE31-436D-B4C9-566D15BE296C.jpg" /></p> +<p><img src="https://s3.fis.ink/blog/2025-07-07-418FF3FC-0D88-4BE9-8CA0-8FDA21AB48B1.jpg" alt="" /></p> +<h1>景点拍的照片</h1> +<p>太多了,就只放了一点</p> +<p><img src="https://s3.fis.ink/blog/2025-07-08-56FA67A1-8F93-4888-AD1D-CEADED15D97F.jpg" alt="" /><img src="https://s3.fis.ink/blog/2025-07-08-3418E993-638E-4E48-8C12-40A6189275A2.jpg" alt="" /><img src="https://s3.fis.ink/blog/2025-07-08-989BBCCD-F7F0-40F2-8227-FDDECEE37A26.jpg" alt="" /><img src="https://s3.fis.ink/blog/2025-07-08-8727068B-DB7B-469D-8F56-49744F64FAAA.jpg" alt="" /><img src="https://s3.fis.ink/blog/2025-07-08-C395BF14-CB13-4928-8FB0-E8AA6A0373EB.jpg" alt="" /><img src="https://s3.fis.ink/blog/2025-07-08-08B295A1-6644-4A01-8D75-22F93779D394.jpg" alt="" /><img src="https://s3.fis.ink/blog/2025-07-08-8B2E2A6F-CACA-4A77-8CBD-8E98BFA2CA80.jpg" alt="" /><img src="https://s3.fis.ink/blog/2025-07-08-69A5CC3A-EB1B-49EC-9E9D-CB4D989D7B3D.jpg" alt="" /><img src="https://s3.fis.ink/blog/2025-07-08-1E749159-5B67-4FF3-8216-7D907B4EFE92.jpg" alt="" /><img src="https://s3.fis.ink/blog/2025-07-08-499E5241-893D-49BF-A864-238A7F6642B7.jpg" alt="" /></p> +<p><img src="https://s3.fis.ink/blog/2025-07-08-97E55B53-83C4-474E-A60A-AE6FCB31A643.jpg" alt="2025-07-08-97E55B53-83C4-474E-A60A-AE6FCB31A643.jpg" /><img src="https://s3.fis.ink/blog/2025-07-08-473E5297-0783-4395-8BDD-638FDAD4BE69.jpg" alt="" /><img src="https://s3.fis.ink/blog/2025-07-08-F8D3626E-A866-4A1E-8539-ABF01AADE37A.jpg" alt="" /><img src="https://s3.fis.ink/blog/2025-07-08-550FE381-6862-452A-8A81-61E54E53AAAE.jpg" alt="" /><img src="https://s3.fis.ink/blog/2025-07-08-C38675AC-D977-4441-A6A7-D2C4E5E3C7E4.jpg" alt="" /><img src="https://s3.fis.ink/blog/2025-07-08-6499069F-8AA9-44A1-889F-4FACECB5AC41.jpg" alt="" /></p> +<h1>坐高铁(回程)</h1> +<p><img src="https://s3.fis.ink/blog/2025-07-08-5FA881A6-F94F-48AD-A9FF-ED35629668F6.jpg" alt="" /></p> +<p><img src="https://s3.fis.ink/blog/2025-07-08-3932AB21-28B9-4124-A85A-DF50D5AC705B.jpg" alt="" /><img src="https://s3.fis.ink/blog/2025-07-08-157A3AA7-07FB-4588-81CB-7B9187D12CA5.jpg" alt="" /><img src="https://s3.fis.ink/blog/2025-07-08-F5EDCCD1-A593-475D-AB90-B25776A2D2D0.jpg" alt="" /><img src="https://s3.fis.ink/blog/2025-07-08-01C534E0-4486-48E6-8453-814C515129A3.jpg" alt="" /></p> +<p>因为当时是晚上了,就没怎么拍照片</p> +<p><img src="https://s3.fis.ink/blog/2025-07-08-49E2B037-74B3-45FC-83BC-CCC5B3080ECC.jpg" alt="" /><img src="https://s3.fis.ink/blog/2025-07-08-3FBDBEDC-A280-42AD-A871-432DAC628D81.jpg" alt="" /></p> +<h1>彩蛋</h1> +<p>导游</p> +<p><img src="https://s3.fis.ink/blog/2025-07-08-269BC4CE-7831-4C61-87DB-8F18CEFD4136.jpg" alt="" /></p> +哪吒监控 V1美化https://blog.fis.ink/posts/3/https://blog.fis.ink/posts/3/部署步骤参考哪吒监控官方文档进行部署:哪吒监控文档美化方法登录后台,进入「系统设置」→「自定义代码(样式和脚本)」插入提供的自定义代码(需按需修改参数)主要美化功能基础设置:自定义Logo、描述文字、关闭动画人物等视觉特效:自定义背景图片点击爱心特效樱花飘落效果鼠标星星轨迹效果卡通人物替换:将默认插图替换为自定义图片Sat, 07 Jun 2025 00:00:00 GMT<p>如何部署</p> +<p>部署请看哪**<em>哪吒监控</em>**<a href="https://nezha.wiki/index.html"><strong><em>文档</em></strong></a></p> +<h1>美化</h1> +<p><a href="https://node.fishcpy.top/"><em>点这里预览效果</em></a></p> +<p>登录到后台,点击**<em>头像</em><strong>再点击</strong><em>系统设置</em><strong>,在里面找到</strong><em>自定义代码(样式和脚本)</em>** 插入**<em>下方代码</em>**</p> +<p>请根据自己情况修改</p> +<pre><code> /* 基础设置 */ + &lt;script&gt; + window.CustomLogo = "https://cdn.fis.ink/img/2025/05/29/683836588877f.webp"; /* 自定义logo */ + window.ShowNetTransfer = "true"; /* 卡片显示上下行流量 */ + window.DisableAnimatedMan = "true"; /* 关掉动画人物插图 */ + window.CustomDesc ="非淡泊无以明志,非宁静无以致远"; /* 自定义描述 */ + &lt;/script&gt; + /* 以上鼠标特效 */ + &lt;script&gt; + window.CustomBackgroundImage="https://cdn.fis.ink/img/2025/05/05/68182abdc7d6e.png"; /* 背景图 */ + &lt;/script&gt; + &lt;script src="https://testingcf.jsdelivr.net/gh/mocchen/cssmeihua/js/aixin.js"&gt;&lt;/script&gt;/* 点击爱心特效 */ + &lt;script src="https://testingcf.jsdelivr.net/gh/mocchen/cssmeihua/js/yinghua.js"&gt;&lt;/script&gt; /* 页面樱花效果 */ + &lt;span class="js-cursor-container"&gt;&lt;/span&gt; + &lt;script src="https://testingcf.jsdelivr.net/gh/mocchen/cssmeihua/js/xiaoxingxing.js"&gt;&lt;/script&gt; + + /* 更换卡通小人 */ + &lt;script&gt; + var observer = new MutationObserver(function(mutationsList, observer) { + var xpath = "/html/body/div/div/main/div[2]/section[1]/div[4]/div"; + var container = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; + + if (container) { + observer.disconnect(); + var existingImg = container.querySelector("img"); + if (existingImg) { + container.removeChild(existingImg); + } + var imgElement = document.createElement("img"); + imgElement.src = "https://cdn.skyimg.de/up/2025/1/13/zera6q.webp"; + imgElement.style.position = "absolute"; + imgElement.style.right = "8px"; + imgElement.style.top = "-80px"; + imgElement.style.zIndex = "10"; + imgElement.style.width = "90px"; + container.appendChild(imgElement); + } + }); + var config = { childList: true, subtree: true }; + observer.observe(document.body, config); + &lt;/script&gt; +</code></pre> +<p>代码来自<a href="https://f5.pm/go-288695.html">https://f5.pm/go-288695.html</a></p> +可以屏蔽的测速iphttps://blog.fis.ink/posts/4/https://blog.fis.ink/posts/4/本文整理了来自 itdog(www.itdog.cn) 与 炸了吗(zhale.me) 两大测速平台的可疑或频繁探测的 IPv4 地址列表,适用于网络管理员、安全人员、站长等有屏蔽需求的场景。通过屏蔽这些 IP,可以减少不必要的测速请求,提高服务器安全性与性能稳定性。文章内容持续更新,建议根据实际访问日志灵活应用。Sat, 31 May 2025 00:00:00 GMT<h1>itdog(www.itdog.cn)</h1> +<p><a href="https://www.itdog.cn/">https://www.itdog.cn/</a></p> +<p>ipv4</p> +<pre><code>154.23.241.34 +23.225.146.6 +183.194.216.135 +106.225.239.7 +117.148.172.71 +112.65.95.205 +101.226.41.74 +221.130.18.132 +119.96.16.87 +120.220.190.144 +42.81.156.75 +36.158.204.68 +223.26.78.6 +218.98.53.88 +219.151.141.70 +124.160.160.70 +58.19.20.71 +116.153.63.68 +59.36.216.50 +111.6.225.75 +111.13.153.72 +112.123.37.68 +113.201.9.12 +124.225.103.136 +125.73.215.4 +116.162.51.68 +221.204.62.68 +218.57.21.135 +60.28.203.70 +223.244.186.68 +117.187.182.132 +202.108.15.148 +211.139.55.70 +36.104.133.71 +1.180.239.80 +59.49.86.70 +111.48.137.135 +112.29.205.70 +36.250.8.132 +101.207.252.75 +113.207.73.135 +180.130.113.72 +218.30.71.80 +116.176.33.201 +123.6.70.5 +116.177.229.5 +58.211.13.98 +49.71.77.84 +183.201.192.68 +111.32.145.8 +182.242.83.133 +112.48.150.134 +180.97.244.136 +36.150.79.4 +116.136.19.134 +42.63.75.72 +125.211.192.35 +36.147.38.70 +120.233.53.26 +111.62.174.73 +121.31.236.73 +117.168.153.198 +220.181.53.87 +117.161.136.74 +36.163.196.86 +153.0.230.8 +125.76.115.251 +112.90.210.132 +117.177.67.5 +113.240.100.81 +115.231.43.69 +111.51.76.68 +1.193.215.70 +45.251.101.5 +43.163.239.208 +59.80.45.132 +115.223.6.243 +118.213.140.68 +42.185.158.68 +156.253.8.27 +101.28.250.72 +117.157.235.95 +111.26.149.68 +36.136.125.68 +111.29.45.133 +183.2.175.12 +111.42.192.68 +125.64.2.134 +183.240.228.133 +218.61.211.101 +222.79.71.253 +120.201.243.134 +43.130.151.11 +150.139.140.70 +111.12.212.73 +42.202.219.70 +27.185.235.70 +116.172.154.17 +220.162.119.71 +222.75.5.70 +116.178.236.69 +171.15.110.73 +112.90.40.216 +125.77.129.206 +221.8.93.95 +43.156.69.84 +194.147.100.44 +109.248.18.86 +113.62.118.132 +150.109.245.197 +117.180.235.132 +120.71.150.171 +221.181.52.171 +43.131.29.194 +146.185.214.41 +38.54.126.18 +38.54.59.59 +185.99.132.104 +38.54.45.156 +38.60.209.194 +38.54.63.220 +</code></pre> +<h1>炸了吗(zhale.me)</h1> +<p><a href="https://zhale.me/">https://zhale.me/</a></p> +<p>ipv4</p> +<pre><code>154.38.106.211 +148.113.173.25 +140.207.232.18 +120.204.196.162 +101.71.160.163 +116.153.81.2 +223.111.24.198 +220.202.21.129 +111.47.215.148 +58.215.177.156 +117.169.16.203 +180.153.91.3 +112.48.221.77 +123.6.27.10 +120.223.242.157 +111.206.4.152 +119.97.171.14 +59.63.230.4 +58.243.202.72 +59.83.222.20 +134.122.151.96 +115.236.144.231 +36.250.246.34 +125.39.11.1 +112.28.234.140 +36.158.254.130 +111.6.251.227 +183.201.231.162 +119.188.148.129 +150.138.178.3 +157.255.30.130 +111.62.70.129 +111.13.102.12 +211.91.243.88 +124.239.250.80 +111.32.157.133 +111.10.63.136 +59.38.99.166 +183.232.11.45 +175.6.41.195 +1.31.130.68 +61.240.153.196 +117.187.142.66 +36.102.218.76 +58.144.173.98 +218.25.106.113 +221.204.45.134 +36.131.159.78 +117.161.24.21 +117.24.3.143 +111.12.63.131 +116.253.27.152 +111.29.42.34 +121.31.231.89 +117.157.22.134 +218.203.117.72 +124.225.162.194 +116.176.35.201 +42.63.65.201 +183.224.38.14 +210.76.62.60 +182.242.140.26 +111.40.189.229 +111.19.212.248 +101.206.203.18 +117.174.129.181 +180.130.96.143 +36.104.140.200 +153.0.192.167 +1.32.216.91 +116.177.252.82 +139.215.167.76 +61.128.145.14 +59.80.37.156 +111.26.55.11 +219.144.80.136 +180.213.48.172 +125.74.24.2 +182.140.221.2 +15.235.167.152 +1.71.11.171 +111.12.157.228 +162.19.154.159 +51.77.203.76 +36.99.143.1 +116.178.71.245 +219.147.74.6 +51.38.70.219 +221.181.56.200 +45.202.210.37 +34.80.186.23 +141.164.56.18 +123.184.205.46 +43.242.167.44 +117.180.232.165 +222.75.58.106 +54.38.242.242 +110.157.249.53 +172.233.24.182 +139.99.134.84 +139.84.235.192 +61.190.114.193 +</code></pre> +使用1panel搭建免费开源的icp虚拟备案系统https://blog.fis.ink/posts/7/https://blog.fis.ink/posts/7/本教程手把手教你从购买雨云服务器开始,使用 1Panel 快速部署网站及数据库,并安装开源项目 dBd-Filing。内容覆盖服务器选购、环境配置、程序上传、MySQL 安装等完整建站流程,适合新手快速上手和个人项目搭建。Mon, 19 May 2025 00:00:00 GMT<h1>预览</h1> +<p><img src="https://cdn.fis.ink/img/2025/05/20/682b757d9de27.jpg" alt="" /></p> +<p><img src="https://cdn.fis.ink/img/2025/05/20/682b5c22934eb.jpg" alt="1000000272.jpg" /></p> +<h1>首先需要购买一台服务器</h1> +<h2>打开雨云官网</h2> +<p>点击链接打开雨云官网(使用这个链接会自动优惠)<a href="https://www.rainyun.com/fishcpy_">https://www.rainyun.com/fishcpy_</a></p> +<p><a href="https://www.rainyun.com/fishcpy_">https://www.rainyun.com/fishcpy_</a></p> +<p>或者注册时输入优惠码:fishcpy</p> +<p>注册完成后来到总揽,点击云服务器<br /> +<img src="https://cdn.fis.ink/img/2025/04/14/67fd048316cba.png" alt="" /></p> +<p>点击购买云服务器</p> +<p><img src="https://cdn.fis.ink/img/2025/04/14/67fd04e1aa3c8.png" alt="" />这里我推荐中国香港极速三网,三大运营商直连,速度超快<br /> +<img src="https://cdn.fis.ink/img/2025/04/14/67fd0588731de.png" alt="" />配置选择 <strong>AMD® EPYC</strong></p> +<p><img src="https://cdn.fis.ink/img/2025/04/14/67fd05cdd0361.png" alt="" /></p> +<p>如果你的网站访问量很大就选择 <strong>流量叠加型 ,</strong> 访问量不大就选择 <strong>流量不限型。</strong></p> +<p><img src="/upload/image-KVAC.png" alt="" /></p> +<p>套餐选择KVM标准版</p> +<p><img src="https://cdn.fis.ink/img/2025/04/14/67fd0ab2820f7.png" alt="" /></p> +<p>其他的按照我的这个选</p> +<p><strong>公网ip 1个<br /> +debian版本选择12</strong></p> +<p><img src="https://cdn.fis.ink/img/2025/04/14/67fd0d828cdce.png" alt="" /></p> +<h1>安装1panel</h1> +<p>打开<a href="https://www.hostbuf.com/">finalshell</a>官网</p> +<p><a href="www.hostbuf.com">www.hostbuf.com</a></p> +<p>点击顶部的</p> +<p><strong><em>FinalShell SSH工具,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux,版本x.x.x,更新日期20xx.xx.xx</em></strong></p> +<p><img src="https://cdn.fis.ink/img/2025/04/16/67fe8c90becb3.png" alt="" /></p> +<p>选择自己的系统版本下载,安装。</p> +<h2>打开雨云</h2> +<p>点击你的服务器卡片</p> +<p><img src="https://cdn.fis.ink/img/2025/05/19/682b44b158e9b.png" alt="image.png" /></p> +<p><img src="https://cdn.fis.ink/img/2025/05/19/682b44d11b748.png" alt="image.png" /></p> +<h2>打开<a href="https://www.hostbuf.com/">finalshell</a></h2> +<p>点击文件夹图标,打开链接管理器<br /> +<img src="https://cdn.fis.ink/img/2025/05/19/682b4519c6d3e.png" alt="image.png" /></p> +<p>点击白色加号图标,选择SSH链接(Linux)</p> +<p><img src="https://cdn.fis.ink/img/2025/05/19/682b4570ddde0.png" alt="image.png" /><img src="/upload/image-LUlI.png" alt="" /></p> +<p>名称</p> +<p>填写值</p> +<p>1</p> +<p>名称</p> +<p>随便</p> +<p>2</p> +<p>主机</p> +<p>填写雨云控制台中的公网ip地址</p> +<p>3</p> +<p>用户名</p> +<p>填写雨云控制台中填写远程用户名</p> +<p>4</p> +<p>密码</p> +<p>填写雨云控制台中的远程密码</p> +<p>完成效果</p> +<p><img src="https://cdn.fis.ink/img/2025/05/19/682b46bd5aa75.png" alt="image.png" /></p> +<p>填写完后,点击确定并在链接管理器中双击你刚添加的服务器链接</p> +<p>遇到这个点击 <strong><em>接受并保存</em></strong><br /> +<img src="https://cdn.fis.ink/img/2025/05/19/682b46f29b346.png" alt="image.png" /></p> +<p>不出意外,你应该来到这个页面<br /> +<img src="https://cdn.fis.ink/img/2025/05/19/682b4733a4937.png" alt="image.png" /></p> +<p>在下方 <strong><em>命令输入框</em></strong> 中输入下方命令并回车</p> +<pre><code>curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh &amp;&amp; bash quick_start.sh +</code></pre> +<p><img src="https://cdn.fis.ink/img/2025/05/19/682b47c09ce23.png" alt="image.png" /></p> +<p>填写输出的问题即可</p> +<p>来到最后输出的结尾打开外部地址的网址</p> +<pre><code>[1Panel 2025-05-19 23:16:42 install Log]: 正在启动1Panel服务 +[1Panel 2025-05-19 23:16:43 install Log]: +[1Panel 2025-05-19 23:16:43 install Log]: =================感谢您的耐心等待,安装已完成================== +[1Panel 2025-05-19 23:16:43 install Log]: +[1Panel 2025-05-19 23:16:43 install Log]: 请使用您的浏览器访问面板: +[1Panel 2025-05-19 23:16:43 install Log]: 外部地址: http://154.64.254.179:12014/a46144d21a +[1Panel 2025-05-19 23:16:43 install Log]: 内部地址: http://154.64.254.179:12014/a46144d21a +[1Panel 2025-05-19 23:16:43 install Log]: 面板用户: d88f56f426 +[1Panel 2025-05-19 23:16:43 install Log]: 面板密码: 79157ec8b5 +[1Panel 2025-05-19 23:16:43 install Log]: +[1Panel 2025-05-19 23:16:43 install Log]: 官方网站: https://1panel.cn +[1Panel 2025-05-19 23:16:43 install Log]: 项目文档: https://1panel.cn/docs +[1Panel 2025-05-19 23:16:43 install Log]: 代码仓库: https://github.com/1Panel-dev/1Panel +[1Panel 2025-05-19 23:16:43 install Log]: 前往 1Panel 官方论坛获取帮助: https://bbs.fit2cloud.com/c/1p/7 +[1Panel 2025-05-19 23:16:43 install Log]: +[1Panel 2025-05-19 23:16:43 install Log]: 如果您使用的是云服务器,请在安全组中打开端口 12014 +[1Panel 2025-05-19 23:16:43 install Log]: +[1Panel 2025-05-19 23:16:43 install Log]: 为了您的服务器安全,离开此屏幕后您将无法再次看到您的密码,请记住您的密码。 +[1Panel 2025-05-19 23:16:43 install Log]: +[1Panel 2025-05-19 23:16:43 install Log]: ================================================================ +</code></pre> +<p>例如我就打开http://154.64.254.179:12014/a46144d21a</p> +<p>输入上方的用户和密码</p> +<h1>部署系统</h1> +<p>点击侧边栏应用商店安装OpenResty,配置保持默认即可</p> +<p>OpenResty安装完后,点击侧边栏的网站-运行环境,在PHP中点击创建运行环境,并按照我这样配置,名称随便。</p> +<p><img src="https://cdn.fis.ink/img/2025/05/19/682b4dc74ff57.png" alt="image.png" /></p> +<p>点击确定,等待镜像制作完成</p> +<p>制作完成后点击网站并点击创建按钮,按照我这样配置<br /> +<img src="https://cdn.fis.ink/img/2025/05/19/682b52f6a3f24.png" alt="image.png" />主域名如果用自己的域名就把 域名 解析 A 记录到你服务器的ip上,那么这里就写你自己的域名</p> +<p>点击**<em>确定 ,</em>** 打开ip或域名如果为下图即为创建成功</p> +<p><img src="https://cdn.fis.ink/img/2025/05/19/682b5398523b0.png" alt="image.png" /></p> +<h2>下载程序</h2> +<p>打开</p> +<p><a href="https://github.com/bbb-lsy07/dBd-Filing/releases">https://github.com/bbb-lsy07/dBd-Filing/releases</a></p> +<p>选择最新版本下载,例如我就下载 <a href="https://github.com/bbb-lsy07/dBd-Filing/releases/download/V2.5.0/dBd-Filing-V2.5.0.zip"><strong><em>dBd-Filing-V2.5.0.zip</em></strong></a></p> +<p>在1panel中点击按钮<br /> +将 <a href="https://github.com/bbb-lsy07/dBd-Filing/releases/download/V2.5.0/dBd-Filing-V2.5.0.zip"><strong><em>dBd-Filing-V2.5.0.zip</em></strong></a>_中的内容解压到含有_index.php 的目录,配置请按照下方仓库简介配置</p> +<p><a href="https://github.com/bbb-lsy07/dBd-Filing/">https://github.com/bbb-lsy07/dBd-Filing/</a></p> +<h1>安装数据库</h1> +<p><img src="https://cdn.fis.ink/img/2025/05/31/6839dc198678c.png" alt="image.png" /></p> +<p>在1panel应用商店里找到MySQL点击确定,安装</p> +<p><img src="https://cdn.fis.ink/img/2025/05/31/6839dc4c3f5e5.png" alt="image.png" /></p> +<p>点击侧边栏数据库按钮</p> +<p><img src="https://cdn.fis.ink/img/2025/05/31/6839dca036d9d.png" alt="image.png" /></p> +<p>创建一个新数据库</p> +<p><img src="https://cdn.fis.ink/img/2025/05/31/6839dcddf3471.png" alt="image.png" /></p> +<p>点击这里查看链接信息</p> +<p>在ip或域名里填写数据库信息</p> +<hr /> +<p><strong><em>验证id:489356</em></strong></p> +25.5.3-5.4被攻击经过https://blog.fis.ink/posts/5/https://blog.fis.ink/posts/5/2025 年 5 月初,服务器突遭大规模访问请求,疑似遭受 DDoS 攻击。初期由免费 CDN 托底防御,后通过转移至 Cloudflare 并开启限流策略,成功缓解流量压力并终止攻击。本文记录整个过程与应对措施,供有类似需求的站长参考。Mon, 05 May 2025 00:00:00 GMT<h2>经过</h2> +<p>大概在2025年5月3日下午服务器开始被攻击,刚开始全靠我使用的cdn硬抗。</p> +<p>cdn数据</p> +<p>第二天也就是5月4日,cdn流量在短时间内达到了至少70GB,毕竟我使用的是免费cdn,为了减少流量我将部分域名转移到cloudflare CDN并进行了优选,并且加入了请求限制。</p> +<p><img src="https://imgse.fishcpy.top/upload/image-BXsQ.png" alt="" /></p> +<p>在5月4日上午攻击结束。<br /> +<img src="https://cdn.fis.ink/img/2025/05/05/6818a818b2bd1.png" alt="image.png" /></p> +<p>cloudflare数据</p> +小米平板7pro澎湃os2Bate版使用体验https://blog.fis.ink/posts/6/https://blog.fis.ink/posts/6/更新至新系统版本后,整体体验有明显提升:动画更流畅、发热情况改善、应用切换更加顺畅。本文分享实际使用感受。Thu, 17 Apr 2025 00:00:00 GMT<h1>系统版本</h1> +<p><img src="https://cdn.fis.ink/img/2025/04/18/680135d18da6a.jpg" alt="" /></p> +<h1>使用感受</h1> +<p>1.感觉动画更连贯更丝滑了</p> +<p>2.没有明显发热</p> +<p>3.后台切换某些应用没有感觉到卡一下应用重启</p> +<h1>金凡 雷军!</h1> +音乐播放器预览https://blog.fis.ink/posts/8/https://blog.fis.ink/posts/8/本文展示了两种音乐播放器界面的视觉效果——默认样式与圆盘样式,分别呈现暂停、播放状态及歌词显示,便于界面设计对比与参考,适用于 UI 调整或前端开发场景。Sat, 22 Mar 2025 00:00:00 GMT<h2>默认</h2> +<h4>暂停</h4> +<p><img src="https://cdn.fis.ink/img/2025/03/21/67dd8cbd2ba06.png" alt="屏幕截图 2025-03-21 235825.png" /></p> +<h4>播放</h4> +<p><img src="https://cdn.fis.ink/img/2025/03/22/67dd8d385ee45.png" alt="屏幕截图 2025-03-22 000039.png" /></p> +<h4>同时屏幕中间有歌词</h4> +<p><img src="https://cdn.fis.ink/img/2025/03/22/67dd8d6e17a71.png" alt="屏幕截图 2025-03-22 000131.png" /></p> +<h2>圆盘</h2> +<h4>暂停</h4> +<p><img src="https://cdn.fis.ink/img/2025/03/21/67dd8bd4daf0a.jpg" alt="0863eaa3-ee38-4765-8784-ae2c9fcd9230.jpg" /></p> +<h4>播放</h4> +<p><img src="https://cdn.fis.ink/img/2025/03/21/67dd8c352fb50.png" alt="屏幕截图 2025-03-21 235617.png" /></p> +爱国图片https://blog.fis.ink/posts/9/https://blog.fis.ink/posts/9/本篇文章整理并分享了多张高质量爱国主题图片,包括《中华人民共和国国旗》《袁隆平·稻下乘凉梦》《永远的人民英雄》《开国大典》等经典画面,适合用于宣传设计、纪念活动或学习参考。文末附带图包下载链接,支持一键获取。Tue, 18 Mar 2025 00:00:00 GMT<h1>分享一些爱国图片</h1> +<p><img src="https://imgse.fishcpy.top/upload/%E4%B8%AD%E5%8D%8E%E4%BA%BA%E6%B0%91%E5%85%B1%E5%92%8C%E5%9B%BD%E5%9B%BD%E6%97%97_compressed.png" alt="" /> +中华人民共和国国旗.png</p> +<p><img src="https://imgse.fishcpy.top/upload/%E8%A2%81%E9%9A%86%E5%B9%B3-%E7%A8%BB%E4%B8%8B%E4%B9%98%E5%87%89%E6%A2%A6_compressed.png" alt="" /></p> +<p>袁隆平-稻下乘凉梦.png</p> +<p><img src="https://imgse.fishcpy.top/upload/%E6%B0%B8%E8%BF%9C%E7%9A%84%E4%BA%BA%E6%B0%91%E8%8B%B1%E9%9B%84_compressed.png" alt="" /></p> +<p>永远的人民英雄.png</p> +<p><img src="https://imgse.fishcpy.top/upload/%E5%A4%A9%E5%AE%89%E9%97%A8.%E9%9B%AA_compressed.png" alt="" /></p> +<p>天安门.雪.png</p> +<p><img src="https://imgse.fishcpy.top/upload/%E6%97%A5%E6%9C%AC%E6%8A%95%E9%99%8D%E7%AD%BE%E5%AD%97%E4%BB%AA%E5%BC%8F_compressed.png" alt="" /></p> +<p>日本投降签字仪式.png</p> +<p><img src="https://imgse.fishcpy.top/upload/%E5%85%AD%E4%BB%A3%E6%9C%BA%E5%87%BB%E7%A0%B4%E9%95%BF%E7%A9%BA%EF%BC%8C%E6%AF%9B%E4%B8%BB%E5%B8%AD131%E5%B9%B4%E8%AF%9E%E8%BE%B0%E4%B8%87%E5%B2%81%EF%BC%81_compressed.png" alt="" /></p> +<p>六代机击破长空,毛主席131年诞辰万岁!.png</p> +<p><img src="https://imgse.fishcpy.top/upload/%E5%BC%80%E5%9B%BD%E5%A4%A7%E5%85%B84K_compressed.png" alt="" /></p> +<p>开国大典4K.png</p> +<p><img src="https://imgse.fishcpy.top/upload/%E5%9B%BD%E5%BE%BD_compressed.png" alt="" />国徽.png</p> +<p>下载:</p> +<p><a href="https://www.123pan.com/s/rnITjv-JIG13">123盘</a>,提取码6666</p> +极域https://blog.fis.ink/posts/10/https://blog.fis.ink/posts/10/部分内容不向互联网公开Fri, 07 Mar 2025 00:00:00 GMT<h2>2025.3.6 最新密码xxxxxxxx2023</h2> +<h1>此文章由 yaoyikkudeyupy 发布</h1> +一班热榜历史记录2024-2025(下半学期)https://blog.fis.ink/posts/11/https://blog.fis.ink/posts/11/记录 2025 年 2 月 27 日与 28 日的班级日常:有同学积极领奖,也有不当行为和未交作业的情况。文中还特别送出新年祝福,并附有历史记录传送门,见证热榜成长足迹。Fri, 28 Feb 2025 00:00:00 GMT<h2>2025-2-28</h2> +<p>好:</p> +<ol> +<li>今天有 12 名同学上台领奖 👍<br /> +不好:</li> +<li>今日有一名同学“<em>拿</em>”别人东西</li> +</ol> +<h2>2025-2-27</h2> +<p>好:</p> +<ol> +<li>今天开业第一天。祝看到热榜的人“<strong><em>幸福快乐,平安健康</em></strong>”(网页版也开始营业了,祝看到这行字的人“<strong><em>蛇年新禧,祥福并济</em></strong>”)</li> +</ol> +<p>不好:</p> +<ol> +<li>今天有几位同学没交罚写 <strong><em>老师也会生气的!</em></strong></li> +</ol> +<h1>回顾历史</h1> +<p><a href="https://blog.fis.ink/archives/yi-ban-re-bang-li-shi-ji-lu-2024-2025-shang-ban-xue-qi">https://blog.fis.ink/archives/yi-ban-re-bang-li-shi-ji-lu-2024-2025-shang-ban-xue-qi</a></p> +greasyfork新可用地址https://blog.fis.ink/posts/22/https://blog.fis.ink/posts/22/本文介绍了 GreasyFork 在中国遭遇 SNI 阻断后提供的最新可用域名和镜像地址,并详细说明了访问限制、使用注意事项以及推荐的 DNS 服务器,确保用户能够稳定访问 GreasyFork 脚本资源。Thu, 13 Feb 2025 00:00:00 GMT<ul> +<li>更多请前往github仓库<a href="https://github.com/fishcpy/greasyfork">https://github.com/fishcpy/greasyfork</a></li> +</ul> +<h1>由于greasyfork在中国突然被sni阻断,这里提供一个新地址</h1> +<h1>25.3.27更新</h1> +<p>最新地址:</p> +<p><a href="https://greasyfork.dpdns.org">https://greasyfork.dpdns.org</a></p> +<p>长期:</p> +<p><a href="https://nextgo.dpdns.org/">https://nextgo.dpdns.org/</a></p> +<h1>25.2.14更新</h1> +<p>更新长期地址自动跳转</p> +<p>请求地址 <a href="https://nextgo.us.kg/api">https://nextgo.us.kg/api</a><br /> +例;<br /> +原先地址 <a href="https://www.greasyfork.us.kg/zh-CN/scripts/by-site/bilibili.com">https://www.greasyfork.us.kg/zh-CN/scripts/by-site/bilibili.com</a><br /> +长期自动跳转地址 <a href="https://nextgo.us.kg/api/zh-CN/scripts/by-site/bilibili.com">https://nextgo.us.kg/api/zh-CN/scripts/by-site/bilibili.com</a></p> +<p>使用这个可以长期自动跳转到最新域名</p> +<h2>中文:</h2> +<p>新域名 <a href="https://nextgo.us.kg/">https://nextgo.us.kg/</a> (此域名为中转,确保以后更换域名不用费劲心思再找)</p> +<p>它将有以下限制:<br /> +1.日本地区ip将会被阻止<br /> +2.繁体中文将会重定向到 <a href="https://greasyfork.org/zh-TW">https://greasyfork.org/zh-TW</a><br /> +3.由于服务器带宽不高,将会进行人机验证<br /> +4.可能无法登录,ps:没试过</p> +<p>此域名为镜像 cn-greasyfork.org</p> +<p>下载地址为 update.greasyfork.us.kg</p> +<p>⚠️注意事项:<br /> +由于.us.kg域名的特殊性,如果跳反诈基本是由于使用了运营商dns,可以更改dns为其他的,我在这里列几个<br /> +阿里云:223.5.5.5<br /> +腾讯云:119.29.29.29<br /> +114dns:114.114.114.114<br /> +360dns:101.198.198.198<br /> +google:8.8.8.8<br /> +cloudflare:1.1.1.1</p> +<h2>English:</h2> +<p>New domain: <a href="https://nextgo.us.kg/">https://nextgo.us.kg/</a> (This domain name for the transit, to ensure that the future replacement of the domain name do not have to struggle to find again)</p> +<p>It will have the following restrictions:</p> +<p>1.IP addresses from Japan will be blocked.<br /> +2.Traditional Chinese will be redirected to <a href="https://greasyfork.org/zh-TW">https://greasyfork.org/zh-TW</a>.<br /> +3.Due to low server bandwidth, human verification will be implemented.<br /> +4.Login may not be possible; PS: not tested.</p> +<p>This domain is a mirror of cn-greasyfork.org.</p> +<p>The download address is update.greasyfork.us.kg.</p> +<p>⚠️ Notices:<br /> +Due to the unique nature of the .us.kg domain, if you experience issues with fraud prevention, it is likely due to using your ISP’s DNS. You can change the DNS to others; here are a few options:<br /> +Alibaba Cloud: 223.5.5.5<br /> +Tencent Cloud: 119.29.29.29<br /> +114dns: 114.114.114.114<br /> +360dns: 101.198.198.198<br /> +Google: 8.8.8.8<br /> +Cloudflare: 1.1.1.1</p> +启用cloudflare cdn后js无法正常加载解决办法https://blog.fis.ink/posts/25/https://blog.fis.ink/posts/25/这个方法有效解决了开启 Cloudflare Rocket Loader 后导致的页面部分内容加载异常问题,关闭该功能后网站正常显示。Sat, 18 Jan 2025 00:00:00 GMT<h1>问题描述</h1> +<h3>前段时间想提升一下多人的网站性能,就把cloudflare cdn打开了,发现评论区和关于页的部分东西加载不正常。</h3> +<h1>解决方法</h1> +<h3>1.在cloudflare控制面板中点击域名</h3> +<p><img src="https://blogpng.fishcpy.top/img/2025/01/18/678b9c4de7f20.jpg" alt="" /></p> +<h3>2.点击侧边栏的 速度-优化-内容优化 把里面的 Rocket Loader™ 关掉</h3> +<p><img src="https://blogpng.fishcpy.top/img/2025/01/18/678b9d081c70e.jpg" alt="" /></p> +水-1https://blog.fis.ink/posts/23/https://blog.fis.ink/posts/23/中国是一个拥有悠久历史和丰富文化传统的国家。几千年来,中华民族创造了灿烂的文化,涵盖了诗歌、书法、绘画、音乐、戏曲、建筑等多个领域,展现出独特的艺术魅力。书法被誉为“东方艺术之花”,不仅是文字的书写,更是一种富有美感和韵律的艺术表达。中国的传统绘画讲究意境和笔墨的运用,以山水和花鸟为常见题材,反映了人们对自然的热爱和哲理思考。音乐方面,古代乐曲如《广陵散》和《阳关三叠》等传承至今,表达了中国人细腻的情感与艺术追求。中国的戏曲种类繁多,京剧、豫剧、越剧等各具特色,结合唱念做打等表演形式,生动地传递故事和文化底蕴,深受各地人民喜爱。建筑则以长城、故宫等宏伟壮观的古代建筑闻名于世,它们不仅体现了精湛的工艺水平,还融入了“天人合一”的理念,强调人与自然的和谐共生。这些文化传统不仅丰富了中国人的精神世界,也为世界文化宝库增添了独特的色彩。它们体现了中华民族对美好生活的向往和不懈追求,彰显了深厚的历史积淀和文化自信。正是这些多样而独特的文化形式,使中国成为一个文化底蕴深厚、充满魅力的国家。Fri, 10 Jan 2025 00:00:00 GMT<p>提示词:写一篇400字的描述中国的作文</p> +<h1>中国的文化传统</h1> +<p>中国是一个拥有悠久历史和丰富文化传统的国家。中国的文化源远流长,包括诗歌、绘画、音乐、戏剧、建筑等多个领域,都展现出独特的魅力。其中,中国的书法被誉为“东方艺术之花”,每一笔每一画都蕴含着深厚的文化内涵。中国的传统绘画以山水、花鸟为主题,追求意境的抒发和笔墨的韵味,体现了中国人对自然的独特感悟。 中国的音乐也是独具特色,古代的乐曲如《广陵散》、《阳关三叠》等流传至今,展现了中国人对音乐艺术的热爱和追求。中国的传统戏曲更是独树一帜,有京剧、豫剧、越剧等不同类型,每一种戏曲都有其独特的表演风格和表现形式,深受中国人民的喜爱。 此外,中国的建筑也是举世闻名,如万里长城、故宫等建筑奇迹,展现了中国古代建筑工艺的精湛和气势恢宏。中国的传统建筑注重“天人合一”的理念,追求与自然的和谐共生,体现了中国人对宇宙和谐的追求。 总的来说,中国的文化传统是丰富多彩的,融合了诗歌、绘画、音乐、戏剧、建筑等多种艺术形式,展现了中国人民对美好生活的向往和追求。这些传统文化不仅丰富了中国人民的精神生活,也为世界文化的多样性做出了重要贡献。</p> +<blockquote> +<p>AI 也可能犯错,请仔细辨别</p> +</blockquote> +给你的博客加上一个十年倒计时吧https://blog.fis.ink/posts/21/https://blog.fis.ink/posts/21/本文详细介绍了如何在 hexo-theme-anzhiyu 主题博客中添加自定义倒计时功能。通过新建JavaScript文件和在Markdown文件中插入HTML代码,实现动态倒计时显示,且支持自定义目标时间和样式。Fri, 10 Jan 2025 00:00:00 GMT<blockquote> +<h2>效果预览 <a href="https://mengmengmao.cn/about/">关于 fishcpy的小破站</a></h2> +</blockquote> +<h1>打开: 你博客目录/themes/anzhiyu/source/js</h1> +<p>在里面新建一个.js文件,例如我新建了一个clock.js文件 编辑文件,加入下面代码</p> +<pre><code>// 设置倒计时的目标日期 +var countDownDate = new Date("September 6, 2034 00:00:00").getTime(); + +// 每秒更新倒计时 +var x = setInterval(function() { + var now = new Date().getTime(); + var distance = countDownDate - now; + + // 计算天、小时、分钟和秒 + var days = Math.floor(distance / (1000 * 60 * 60 * 24)); + var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); + var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); + var seconds = Math.floor((distance % (1000 * 60)) / 1000); + + // 显示结果 + document.getElementById("countdown").innerHTML = + days + "天 " + hours + "小时 " + + minutes + "分钟 " + seconds + "秒 "; + + // 倒计时结束显示提示 + if (distance &lt; 0) { + clearInterval(x); + document.getElementById("countdown").innerHTML = "你发现了彩蛋"; + } +}, 1000); +</code></pre> +<p>参数</p> +<p>注释</p> +<p>可改值</p> +<p>你发现了彩蛋</p> +<p>倒计时结束的文字</p> +<p>随意</p> +<p>September 6</p> +<p>日期</p> +<p>英文月份+日期</p> +<p>2034 00:00:00</p> +<p>日期</p> +<p>年份+具体时间</p> +<h1>在你要的文件里(本人仅测试了md文件)加入下面代码即可实现</h1> +<pre><code>&lt;style&gt; +.big-font { + font-size: 50px; /* 字体大小保持原样 */ + font-weight: bold; +} +&lt;/style&gt; + +&lt;body&gt; + &lt;!-- 倒计时容器 --&gt; + &lt;div id="countdown" class="big-font"&gt;&lt;/div&gt; + + &lt;!-- 修正类名前多余的点号 --&gt; + &lt;script data-pjax defer src='/js/clock.js'&gt;&lt;/script&gt; + &lt;div class="pjax-reload"&gt;&lt;/div&gt; &lt;!-- 修正后的类名 --&gt; +&lt;/body&gt; +</code></pre> +<p>参数</p> +<p>注释</p> +<p>可改值</p> +<p>50px</p> +<p>大小</p> +<p><a href="https://geek-docs.com/html/html-ask-answer/824_html_how_to_change_font_size_in_html.html">可以看一下这个</a></p> +<p>/js/clock.js</p> +<p>文件位置</p> +<p>/js/文件名.js, 文件名为你刚创建的文件名</p> +在byrutgame上下载免费游戏https://blog.fis.ink/posts/24/https://blog.fis.ink/posts/24/这段教程详细介绍了如何查找游戏英文名、通过byrutgame网站获取游戏资源并下载 .torrent 文件,以及如何使用 qBittorrent 增强版客户端下载和启动游戏。图片和步骤清晰,方便操作。Mon, 23 Dec 2024 00:00:00 GMT<h1>找到游戏英文名</h1> +<p>在百度或必应等搜索引擎上搜索游戏英文名 例如我搜索<strong>地平线5英文名</strong> 得到FORZA HORIZON 5</p> +<h1>找到游戏链接</h1> +<p>打开 <a href="https://byrutgame.org/">byrutgame</a> <img src="https://blogpng.fishcpy.top/mengmengmao/2024/12/23/676958bd6e023.png" alt="" /> 在搜索栏里输入刚刚搜索到的游戏英文名,例如我的就是FORZA HORIZON 5 <img src="https://blogpng.fishcpy.top/mengmengmao/2024/12/23/67695974ef06c.png" alt="" /> 直接搜索 <img src="https://blogpng.fishcpy.top/mengmengmao/2024/12/23/676959c05467d.png" alt="" /></p> +<blockquote> +<p>注意:图片有红色印章的是可以联网的游戏</p> +</blockquote> +<p>点击想要的游戏来到这页 <img src="https://blogpng.fishcpy.top/mengmengmao/2024/12/23/67695a424d63c.png" alt="" /> 点击这个按钮下载.torrent文件 <img src="https://blogpng.fishcpy.top/mengmengmao/2024/12/23/67695bec8fafd.png" alt="" /></p> +<h1>下载下载器</h1> +<p>这里推荐qbittorrent增强版 <a href="https://github.com/c0re100/qBittorrent-Enhanced-Edition/">github</a> 链接不上github的可以用 123<a href="https://www.123pan.com/s/rnITjv-lxY13">盘下载</a>(仅适用于Windows) 打开软件之后是这样的 <img src="https://blogpng.fishcpy.top/mengmengmao/2024/12/23/67695c75c6372.png" alt="" /> 点击左上角 文件-添加torrent文件,把刚下的文件导入进去 选择文件保存位置后点击确定就可以开始下载了 <img src="https://blogpng.fishcpy.top/mengmengmao/2024/12/23/67695d0cd48f0.png" alt="" /> 下载完点击对应启动程序启动游戏</p> +<blockquote> +<p>记得在游戏设置里改语言!</p> +</blockquote> +安知鱼主题音乐馆默认歌单修改https://blog.fis.ink/posts/20/https://blog.fis.ink/posts/20/本文介绍了如何在 hexo-theme-anzhiyu 主题中,通过修改 utils.js 文件中的 getCustomPlayList 函数,自定义歌单ID及音乐服务商,实现简化访问音乐接口的配置方法。Sat, 14 Dec 2024 00:00:00 GMT<blockquote> +<p>仅适用于<a href="https://github.com/anzhiyu-c/hexo-theme-anzhiyu">hexo-theme-anzhiyu</a>,其他请自行测试</p> +</blockquote> +<h2>文件路径</h2> +<p>打开博客根目录目录 依次打开 /themes/anzhiyu/source/js 里面有一个utils.js 打开它 按ctrl+f搜索 getCustomPlayList: function () <img src="https://blogpng.fishcpy.top/mengmengmao/2024/12/14/675d0caa60c94.png" alt="" /> 文件参数是这样的 修改const userId = 你歌单的id 如果想修改歌单音乐服务商就改const userServer = netease或tencent或kugou,或xiami或 baidu 这样访问 /music/接可以了,不用在后面加?id=歌单id&amp;server=音乐服务商</p> +<blockquote> +<p>参考 <a href="https://blog.csdn.net/2202_75762088/article/details/138251572#:~:text=%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%B0%B1%E6%98%AFBloghemesanzhiyusourcejsutils.js%20%E6%89%93%E5%BC%80%E8%AF%A5%E6%96%87%E4%BB%B6%EF%BC%8C%E6%8C%89Ctrl%2BF%E6%90%9C%E7%B4%A2%20getCustomPlayList%3A,function%20%28%29%20%E8%BF%99%E4%B8%AA%E5%87%BD%E6%95%B0%E5%86%85%E5%B0%B1%E6%98%AF%E5%85%B3%E4%BA%8E%E9%9F%B3%E4%B9%90%E6%BA%90%E7%9A%84%E8%AE%BE%E7%BD%AE%EF%BC%8C%E6%94%B9%E6%88%90%E8%87%AA%E5%B7%B1%E7%9A%84%E5%B0%B1%E5%A5%BD%EF%BC%9A">避坑:我找到了Hexo安知鱼的音乐馆配置(目前好像还没有教程)</a>。</p> +</blockquote> +引入Aplayer播放音乐-自定义api地址https://blog.fis.ink/posts/19/https://blog.fis.ink/posts/19/本文分享如何在 akilar糖果屋主题中自定义 Aplayer 的 meting_js API 地址,解决官方API不稳定、歌曲播放断续的问题,通过在注入的 Aplayer 容器中添加 `data-meting_api` 参数,实现调用自定义的音乐接口。Sat, 07 Dec 2024 00:00:00 GMT<blockquote> +<h2>此文章仅适用于akilar糖果屋中的 <strong>引入Aplayer播放音乐</strong> 文章 <a href="https://akilar.top/posts/3afa069a/">https://akilar.top/posts/3afa069a/</a> ,其他请自行测试]</h2> +</blockquote> +<h1>1.为什么要自定义api地址</h1> +<p>meting_js的官方api很不稳定,播放歌曲断断续续,所以要自定义api地址</p> +<h1>2.如何自定义api地址</h1> +<p>akilar糖果屋中有这样一些字 4.在主题配置文件<code>[Blogroot]\_config.butterfly.yml</code>的inject配置项中添加Aplayer的容器。</p> +<p>1 +2 +3 +4</p> +<p>inject: +head: +bottom: +- &lt;div class="aplayer no-destroy" data-id="5183531430" data-server="netease" data-type="playlist" data-fixed="true" data-mini="true" data-listFolded="false" data-order="random" data-preload="none" data-autoplay="false" muted&gt;&lt;/div&gt;</p> +<ol> +<li>Aplayer的网易云歌单接口时不时的会挂掉,所以如果你确定你配置正确,但是歌单还是没有出现。不妨去看看其他人的站点是不是也没有Aplayer标签了来判断是Aplayer本身接口的问题还是自己配置出错的问题。</li> +</ol> +<p>里面并没有说如何自定义api地址 所根据我的尝试,成功自定义api地址</p> +<p>1 +2 +3 +4 +5</p> +<p># akilar糖果屋中原本代码 +- &lt;div class="aplayer no-destroy" data-id="5183531430" data-server="netease" data-type="playlist" data-fixed="true" data-mini="true" data-listFolded="false" data-order="random" data-preload="none" data-autoplay="false" muted&gt;&lt;/div&gt;</p> +<p># 修改后 +- &lt;div class="aplayer no-destroy" data-id="5183531430" data-server="netease" data-type="playlist" data-fixed="true" data-mini="true" data-listFolded="false" data-order="random" data-preload="none" data-autoplay="false" data-meting_api="https://meting.qjqq.cn/?server=:server&amp;type=:type&amp;id=:id&amp;auth=:auth&amp;r=:r" muted&gt;&lt;/div&gt;</p> +<p>根据上方的配置参数,这里添加了一个data-meting_api=”<a href="https://meting.qjqq.cn/?server=:server&amp;type=:type&amp;id=:id&amp;auth=:auth&amp;r=:r">https://meting.qjqq.cn/?server=:server&amp;type=:type&amp;id=:id&amp;auth=:auth&amp;r=:r</a>“ 如果以后这个挂了也可以自建或者使用别人的api</p> +购买雨云服务器并部署hexo博客-购买云服务器https://blog.fis.ink/posts/16/https://blog.fis.ink/posts/16/本文介绍了为什么选择云服务器来部署静态博客,指出相比于GitHub的限制和网络不稳定,云服务器具有更好的全国访问稳定性和更大存储空间。并详细讲解了如何在雨云云服务平台购买适合的云服务器。Fri, 06 Dec 2024 00:00:00 GMT<h1>为什么要用云服务器部署静态博客</h1> +<p>hexo为静态博客,可以直接在github部署。 但是例如我这个域名 ping就有30个测速节点无法ping通,并且github每个仓库只有500MB存储空间 但是有了云服务器就不一样了,基本全国都可以ping通,例如我这个域名ping之后只有2个节点无法ping通</p> +<h1>购买云服务器</h1> +<p>本次使用的云服务商为 <a href="https://www.rainyun.com/home">雨云</a> 打开雨云官网 <img src="https://blogpng.fishcpy.top/mengmengmao/2024/12/06/6752d64e51d1c.png" alt="" /> 点击登录/注册,经行注册,优惠码可以填fishcpy 或者点击<a href="https://www.rainyun.com/mmm_">这里一键填写</a> 点击导航栏的总览&gt;云服务器&gt;购买云服务器 本人建议用香港的云服务器,有35ms和80ms的 如果对延迟有需求的可以选择35ms的,反之可以选择80ms的 演示使用80ms的,因为上行相对来说更高一些 <img src="https://blogpng.mengmengmao.cn/mengmengmao/2024/12/06/6752d80303d56.png" alt="" /> 点击立即购买,充钱后就可以购买成功 至此购买云服务器结束</p> +butterfly导航栏图标修改https://blog.fis.ink/posts/17/https://blog.fis.ink/posts/17/本文介绍如何为导航栏添加图标,通过FontAwesome官网选择合适的图标类名,并替换官方配置中的图标名称,实现自定义导航栏图标的效果。Thu, 05 Dec 2024 00:00:00 GMT<h1>导航栏图标</h1> +<p>我看了官方配置文件,里面好像没有关于导航栏图标的描述,修改完效果如下</p> +<pre><code>1 + +例: 首页: / || fas fa-home +</code></pre> +<p>打开<a href="https://fontawesome.com/">fontawesome</a> <img src="https://blogpng.fishcpy.top/mengmengmao/2024/12/05/6751acefe84bf.png" alt="" /> 点击顶部导航栏的icons <img src="https://blogpng.fishcpy.top/mengmengmao/2024/12/05/6751ad8fe887b.png" alt="" /> 比如我在搜索栏里搜索bilibili 点击你想要的图标 <img src="https://blogpng.mengmengmao.cn/mengmengmao/2024/12/05/6751ade0a08b5.png" alt="" /> 这里他给了一个html</p> +<pre><code>1 + +&lt;i class="fa-brands fa-bilibili"&gt;&lt;/i&gt;``` +</code></pre> +<p>把里面的fa-brands fa-bilibili复制下来</p> +<pre><code>1234 + +# 原来代码首页: / || fas fa-home#修改后首页: / || fa-brands fa-bilibili +</code></pre> +<p>至此修改完毕</p> +12月到了https://blog.fis.ink/posts/15/https://blog.fis.ink/posts/15/12月到了我要更加努力Tue, 03 Dec 2024 00:00:00 GMT<h1>12月到了,我要更加努力💪</h1> +一班热榜历史记录2024-2025(上半学期)https://blog.fis.ink/posts/13/https://blog.fis.ink/posts/13/这是一份2024年10月至12月间的班级日常记录,涵盖了学生的学习表现、课堂纪律、考试成绩及师生互动等方面的详细情况。记录中既有对学生优异表现的表扬,也包括对不良行为的批评和纠正,同时穿插了班主任对学生整体表现的总结和鼓励,反映了班级管理和教学的日常状态。Fri, 20 Sep 2024 00:00:00 GMT<blockquote> +<p>完结</p> +</blockquote> +<p><a href="https://blog.fishcpy.top/archives/yi-ban-re-bang-li-shi-ji-lu-2024-2025-xia-ban-xue-qi">https://blog.fishcpy.top/archives/yi-ban-re-bang-li-shi-ji-lu-2024-2025-xia-ban-xue-qi</a></p> +<h2>2024.12.27 星期五</h2> +<p>无图片</p> +<h2>2024.12.26 星期四</h2> +<p>好 1.唐语彤帮助老师发口罩 2.今天语文课老师听课,同学们表现优异 不好 1.体育课后,两名同学<strong>自由搏击</strong></p> +<h2>2024.12.25 星期三</h2> +<p>好 1.语文模拟考优秀平均分比年级优秀平均分高出一半(太棒了) 2.英语小测一名同学满分💯 不好 1.王yu好 1.语文模拟考优秀平均分比年级优秀平均分高出一半(太棒了) 2.英语小测一名同学满分💯 不好 1.王昱涵值日太不认真了跟没扫一样,批评他</p> +<h2>2024.12.24 星期二</h2> +<p>无图片</p> +<h2>2024.12.23 星期一</h2> +<p>无,图片</p> +<h2>2024.12.20 星期五</h2> +<p>好 1.今日数学小测多名同学100分 💯 不好 1.今日多名同学因上生物课时<strong>扰乱</strong>课堂纪律,导致生物老师直接火山爆发🔥<img src="https://blogpng.fishcpy.top/mengmengmao/2024/12/20/676581ea4489c.png" alt="" /></p> +<blockquote> +<p>温馨提示:距离期末考试还有18天</p> +</blockquote> +<h2>2024.12.19 星期四</h2> +<blockquote> +<h3>考试!</h3> +</blockquote> +<h2>2024.12.18 星期三</h2> +<p>好 1.明天模考 2.二班一名同学好心给我们班做值日(其实是被罚的) 不好 1.今日历史课两名男生一直说话,让历史老师发火🔥</p> +<h2>2024.12.16 星期一</h2> +<p>好 1.今日卫生表现不错,没让二班扣分 不好 1.今日有<strong>一些</strong>同学在道法课上<strong>大闹天宫</strong> 2.今日多名同学给地理老<strong>师负荆请罪</strong></p> +<h2>2024.12.13 星期五</h2> +<p>好 1.英语听写六名同学100分 2.王昕妍,陆子俊,刘嘉乐被老师评为<strong>整理收纳小能手</strong> 不好 1.今日午休一些男生在<strong>拆家</strong>被老师发现实施<strong>爱的教育</strong></p> +<h2>2024.12.12 星期四</h2> +<p>好 1.今日有同学默写pronous全对 不好 1.道法课上同学们开天辟地</p> +<h2>2024.12.11 星期三</h2> +<p>好 1.今日李承宣数学小测100分(进步很大) 不好 1.今日有很多男生的羽毛球丢了(看起来很伤心),建议下次别带了,<strong>好好学习</strong></p> +<h2>2024.12.10 星期二</h2> +<p>好 1.今日六名同学数学小测100分 不好 1。今日上课有同学太energetic了</p> +<h2>2024.12.9 星期一</h2> +<p>好 1.今日班级获得六星班级 不好 1.今日体活课三名同学玩羽毛球被点名 2.今日班级出现了新大遍超人(翻译:抄最多)</p> +<h2>2024.12.6 星期五</h2> +<p>好 1.今日多名同学英语听写全对 不好 1.今日地理课两名同学罚站 2.今日许多男生被罚跑400米</p> +<h2>2024.12.5 星期四</h2> +<p>无图片</p> +<h2>2024.12.4 星期三</h2> +<p>好 1.数学阶段测试张宇泽同学轻松拿下年纪和班级双第一👍 不好 1.今天又有一名男生弄坏了班级公共器材 2.今天音乐课四名男生被老师留下</p> +<h2>2024.12.3 星期二</h2> +<p>好 1.班级几名同学主动领取运动器材 不好 1.某位男生私自借高年级运动器材并损坏</p> +<h2>2024.12.2 星期一</h2> +<p>好 1.今日班级获得 <strong>三帆星旗</strong> 和 <strong>小熊</strong> 2.今日地理课几位同学不用写作业 不好 今日有几位同学上课老说话</p> +<h2>2024.11.29 星期五</h2> +<p>好 1.数学考试同学们表现优异,值得表扬👍 2.索林熙数学课被表扬,继续努力 不好 1.某名同学被调到“金牌VIP”座位 2.音乐课某人“cossplay”蚂蚱</p> +<h2>2024.11.28 星期四</h2> +<p>无图片 数学老师信息: 课前小测共有39位同学获得满分💯</p> +<h2>2024.11.27 星期三</h2> +<p>好 1.今日数学小测多名同学100分 不好 1.英语课纪律不好 2.今日有一名同学再次没写完作业</p> +<h2>2024.11.26 星期二</h2> +<p>好 1.闫博凯同学数学公开课讲题思路清晰被表扬 2.部分同学在课间积极讨论数学问题 不好 1.三名同学在食堂“传达情报”被抓捕</p> +<h2>2024.11.25 星期一</h2> +<p>好 1.上周获得五星班级(继续加油) 2.雨给郑讲题 3.闫博凯给李子宇贴心披外套 wo! 不好 1.早读三名同学说话 2.地理课三名同学习题抄写 3.英语课三名同学总说话</p> +<h2>2024.11.22 星期五</h2> +<p>好 1.今天语文默写22名同学满分 2.经过全班共同努力,争取到了下周二的数学公开课</p> +<h2>2024.11.21 星期四</h2> +<p>好 1.今天数学小测32同学💯分 2.体育课老师表扬了三名女生 不好 无</p> +<h2>2024.11.20 星期三</h2> +<p>好 1.今天数学小测多名同学💯分 不好 1.自习课一名同学“创意DIY” 2.某名同学生物课“神游天外” 班主任信息 大课间,唐语彤,张耘卓奋笔疾书。刘溢昕张紫涵在背古诗。王思萌,张雨泽,马敏萱,郑旭晴,闫博凯,郭佳怡,孟诗颖在安静学习。王欣妍问完各科老师问题,还在背初中语文古诗词拓展。</p> +<h2>2024.11.19 星期二</h2> +<p>好 1.英语阅读单词梳理许多同学积极发言 2.同学们数学小条积极改错 不好 1.李同学喜提跑步大礼包 2。某位同学体育课玩闹被抓</p> +<h2>2024.11.18 星期一</h2> +<p>无图片 数学老师信息 今天早上进行了第1、2章的基础知识过关,共有20名同学一次性通关。恭喜以下同学 王思萌,侯芊黛,刘溢昕,刘佳懿,张耘卓,张雨泽,孟诗颖,王昕妍,李子宇,闫博凯,于浩楠,陈骏洁,姜子跃,王腾煊,唐语彤,郑旭晴,杜明露,李嘉晟,陆子俊,李泽辰。</p> +<h2>2024.11.15 星期五</h2> +<p>无图片</p> +<h2>2024.11.14 星期四</h2> +<p>无图片</p> +<h2>2024.11.13星期三</h2> +<p>好 1、今日数学计算多人100分 2、今日课间多名同学认真学习 不好 1、有一位同学被地理老师罚写 2、有一位同学地理课上写作业 3、今日有一位同学午休搞破坏 4、有一位同学不做课前准备(多次)</p> +<h2>2024.11.12星期二</h2> +<p>好 1、李承宣遵守班级规定,知错就改 2、数学课上小测27人全对 3、数学错题同学积极改错 不好 1、今日某位老师抓拍午休混乱瞬间 2、王腾煊午休奇怪睡姿(今日奇怪事件)</p> +<h2>2024.11.11星期一</h2> +<p>好 1、毛立珑数学课被老师表扬 2、数学小测很多同学满分 不好 1、一名同学罚抄时写“天书”</p> +<h2>2024.11.8 星期五</h2> +<p>好 1.今日英语听写很多人听写100分 2.今日有一些同学学习态度十分不错 不好 1.今日有一位同学因为某些原因扣了文明一分 2.今日英语课有很多人笑 3.今日有多名同学没完成作业</p> +<h2>2024.11.7 星期四</h2> +<p>好 1.索林熙今日上课被数学老师表扬 2.今日毛立龙英语练习满分 不好 1.今日有一位同学给书改名(语文改甲骨文,英语改鸟语,历史改拉史。。。) 2.今日生物课纪律不好</p> +<h2>2024.11.6 星期三</h2> +<p>好 1,.今天早读大多数同学按时背诵短文 2.李承宣英语课被老师表扬 3.李子宇同学引体向上做了三个 不好 1.一名同学音乐课活跃过度 2.英语课有一部分人没有按时交英语作业,喜提罚抄一遍</p> +<h2>2024.11.5 星期二</h2> +<p>好 1.今日有些人贡献口罩给同学 2.数学课有些同学回答问题 不好 1.今日好多同学午休写作业吵闹 2.今日有三名同学在文明就餐区吃饭</p> +<h2>2024.11.4 星期一</h2> +<p>好 1.今日唐雨彤在班级里修复地板 不好 1.今日有很多同学没有完成英语作业 2.今日卫生扣了一分</p> +<h2>2024.11.1 星期五</h2> +<p>好 1.今日英语听写20人满分 2.在考试中有很多同学获得优秀奖进步奖 3.今日李嘉晟多次主动回答问题 4今日有很多同学在班级里学习 不好 1.今日舞蹈有两人逃课 2.今日上课有很多人没做课前准备 3今日上操有同学乱动乱说话</p> +<h2>2024.10.31 星期四</h2> +<p>无,图片</p> +<h2>2024.10.30 星期三</h2> +<p>无,图片</p> +<h2>2024.10.29 星期二</h2> +<p>考试,无</p> +<h2>2024.10.28 星期一</h2> +<p>没有图片 今日有考试</p> +<h2>2024.10.25 星期五</h2> +<p>好 1 今日默写有 11 名同学 100 分 不好 1 无,大家都很棒 每日一笑 1 今日班级进行了 2b 铅笔争夺战,伤亡人众多(伤是发出叫声,亡是没抢到) 2 今日课间 有一位同学被老师罚叫了100“鹅” 3 今日生物课有一位同学PK输了,用抹布擦脸 最后祝大家,下周星期一、星期二都能取得理想成绩。 –fish 2024.10.25</p> +<h2>2024.10.24 星期四</h2> +<p>好 1 有 22 名同学语文小测满分💯 2 今日李嘉晟多次回答问题 不好 1 有一位同学上课迟到 5 分钟 2 有几位同学没有做课前准备</p> +<h2>2024.10.23 星期三</h2> +<p>好 1 今日龚晟鑫第一个背完英语 2 17 名同学语文听写全对 3 李承宣上课认真 不好 1 今日有个别同学没写英语作业 2 今日还有几位同学上体育课违反纪律 每日一笑 今日两位同学在课间写天书</p> +<h2>2024.10.22 星期二</h2> +<p>没有图片,无热榜 年纪表扬👍 优秀班干部:侯芊黛,唐语彤,刘佳懿 优秀课代表:刘溢昕,王思萌,张云卓 学习标兵:于浩楠,张宇泽,李子宇 主动帮忙打扫卫生:刘嘉乐,申嘉怡,李承轩,王沛禹,郑旭晴,张云卓 班主任信息 今日小测后八首古诗默写。以下同学全对:刘佳懿,杜明露,李泽辰,王思萌,于浩楠,王腾煊,陈骏洁。错一个的同学有闫博凯,白晰,张雨泽,侯芊黛,陆子俊,郑旭晴,辛栋,李子宇,姜子跃。其中白晰同学进步明显,态度积极,特此表扬。明天默写继续听写这八首古诗。期待同学们更好的巩固。</p> +<h2>2024.10.21 星期一</h2> +<p>好 1 今天班级获得六星班级 2龚晟鑫给马一然饭卡 不好 1 有几位同学没写作业 班主任信息 上一周表现优秀的班委(以下为班委年级组评选) 学习标兵:于浩楠,张雨泽,李子宇 优秀班干部:侯芊黛,唐语彤,刘佳懿 优秀课代表:刘溢昕,王思萌,张耘卓 运动会助人为乐,年级表彰卫生小组为张耘卓小组。组员刘嘉乐,申嘉怡,李承轩,王沛禹,郑旭晴。</p> +<h2>2024.10.18 星期五 运动会</h2> +<p>今日无热榜 <a href="/yi-ban-2024-di-jiu-jie-qiu-ji-tian-jing-yun-dong-hui-tu-ku">运动会图库 点这里</a></p> +<h2>2024.10.17 星期四 运动会</h2> +<p>好 1 龚晟鑫和张雨泽提供自助餐 2 班委们很负责 3 今日运动员们十分卖力 4 王昕妍和刘佳懿无私奉献 不好 1 有几位同学违反纪律 <a href="/yi-ban-2024-di-jiu-jie-qiu-ji-tian-jing-yun-dong-hui-tu-ku">运动会图库 点击这里</a></p> +<h2>2024.10.16 星期三</h2> +<p>好 1 李嘉晟上课十分认真 2 今日有十个人听写全对 💯 不好 1 无</p> +<h2>2024.10.15 星期二</h2> +<p>好 1 今日耿思凡主动借饭卡给索林熙 2 李承宣课上被老师表扬 👍 3 今日语文听写 15 个全对💯 不好 1 今日某人没写英语作业(小马哥)🐎 2 两位同学记律太差👎 班主任信息 今天继续听写论语十二章,以下同学全对。辛栋,孟诗颖,郭佳怡,李嘉晟,张紫涵,于浩楠,张耘卓,闫博凯,王思萌,陈骏洁,王腾煊,张紫萱,马一然,姜子跃。王昱涵,张雨泽。恭喜以上同学。今天班里小伙子表现很好。期待大家更好表现。</p> +<h2>2024.10.14 星期一</h2> +<p>好 1 姜子跃,王昱涵和侯睿祺上课认真听讲 2 今日论语默写有 20 人全对 3.1 张紫萱,侯芊黛和孟诗颖为优秀课代表 3.2 王昕妍,张紫萱和段茗涵为优秀班委 3.3 杜明露,汪洋和闫博凯为学习标兵 不好 1 今日有一名同学所有作业都没带 2 今日升旗时,两位同学乱动,享受了免费健身服务 3两位同学历史作业在讲台,被历史老师请到班级后面(已补完) 4 今日小干部扣了3分😭</p> +<h2>2024.10.12 星期六</h2> +<p>好 1 王昕妍,陈骏洁,段茗涵当选学生代表 2 毛立龙在班里认真学习 不好 1 两位同学在课上吵架 2 有一位同学逃值日 3 地理课上有几位同学没拿地球仪 4 四位同学课间跳舞</p> +<h2>2024.10.11 星期五</h2> +<p>好 1 今日王沛禹主动为班级喊口号 2 今日班委会正式成立 3 今日有 10 名同学默写全对,23 名同学优秀 4 索林熙分享自己珍藏的昆虫标本 不好 1 三名同学上课玩笔+罗阵 2 两名同学在图书馆说话 班主任信息 今天语文课默写全对的的同学有王思萌,辛栋,张耘卓,杜明露,张紫萱,刘溢昕,孟诗颖,陈骏洁,郭佳怡,段茗涵。错两个以内的同学有,李泽辰,郑旭晴,王昱涵,王腾煊,张紫涵,李子宇,李嘉晟,侯芊黛,闫博凯,王欣妍,陆子俊,马敏萱于浩楠,张雨泽。恭喜以上同学。期待看到更多孩子优秀的表现。</p> +<h2>2024.10.10 星期四</h2> +<p>好 1 今天有八个同学英语听写 100 分 2 张雨泽数学 100 分(周二热搜) 3 本周卫生角没有扣分,十分难得 4 刘佳懿,梦诗颖,刘溢昕,张耘卓,王思萌,于浩楠语文默写全对 不好 1 有两位男生在图书馆说小话 2 某位同学道法课带历史书,历史课带道法书 3 某人在历史课上写作业</p> +<h2>2024.10.9 星期三</h2> +<p>好 1 张雨泽数学 100 分(至今未超越) 2 刘佳懿,梦诗颖,刘溢昕,张耘卓,王思萌,于浩楠语文听写 100 分 不好 1 昨天有 4 个男生没找老师背论语 2 早读有位同学说话被罚站</p> +<h2>2024.10.8 星期二</h2> +<p>好 1 张雨泽数学 100 分 2 姜子跃和索林熙自觉在教室学习 3 马敏宣背完语文书 4 王腾煊回答了许多男生不会的问题 不好 1 数学课上 4 个男生回答不出问题 2 有两位男生在生物课上说话</p> +<h1>更早以前</h1> +<p>没有啦,那时一班热榜都还没有啊!</p> +<h1>维护名单</h1> +<p>名字</p> +<p>分组</p> +<p>孟**</p> +<p>班委</p> +<p>fishcpy</p> +<p>班委</p> +<p>郭**</p> +<p>班委</p> +<p>陈**</p> +<p>班委</p> +<p>梁*</p> +<p>班主任</p> +我的ai网站发布啦https://blog.fis.ink/posts/12/https://blog.fis.ink/posts/12/这是一个指向 AI 相关网站的链接,方便用户快速访问 fishcpy 提供的 AI 服务入口。Mon, 09 Sep 2024 00:00:00 GMT<p><a href="https://ai.fishcpy.us.kg/">https://ai.fishcpy.us.kg/</a></p> +关于casaos国内无法拉取镜像解决方法https://blog.fis.ink/posts/14/https://blog.fis.ink/posts/14/本文指导用户如何为 CasaOS 配置 Docker 镜像加速,通过编辑 `daemon.json` 文件添加多个镜像源,加速 Docker 镜像的下载。最后通过重启 Docker 服务和设备,使配置生效。Fri, 06 Sep 2024 00:00:00 GMT<ol> +<li>进入 CasaOS。</li> +<li>打开 <strong>Files</strong>。</li> +<li>点击文件下方的 <strong>root</strong>。</li> +<li>打开 <strong>etc</strong> 文件夹。</li> +<li>使用 <strong>Ctrl + F</strong> 搜索 <strong>docker</strong>。</li> +<li>打开 <strong>docker</strong> 文件夹。</li> +<li>在电脑本地创建一个 txt 文件,加入以下内容(JSON 格式):</li> +</ol> +<pre><code>{ + "registry-mirrors": [ + "https://dockerhub.icu", + "https://docker.chenby.cn", + "https://docker.1panel.live", + "https://docker.awsl9527.cn", + "https://docker.anyhub.us.kg", + "https://dhub.kubesre.xyz", + "https://dockerproxy.cn/", + "https://hub.rat.dev/", + "https://docker.actima.top/" + ] +} +保存并重命名为 daemon.json。 + +上传该文件到 docker 文件夹。 + +使用 SSH 连接打开终端,输入以下命令: + +bash +复制 +编辑 +sudo systemctl daemon-reload +sudo systemctl restart docker +sudo reboot +设备重启后,即可使用应用商店。</code></pre> +Markdown Examplehttps://blog.fis.ink/posts/markdown/https://blog.fis.ink/posts/markdown/A simple example of a Markdown blog post.Sun, 01 Oct 2023 00:00:00 GMT<h1>Simple Guides for Fuwari</h1> +<blockquote> +<p>Cover image source: <a href="https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/208fc754-890d-4adb-9753-2c963332675d/width=2048/01651-1456859105-(colour_1.5),girl,_Blue,yellow,green,cyan,purple,red,pink,_best,8k,UHD,masterpiece,male%20focus,%201boy,gloves,%20ponytail,%20long%20hair,.jpeg">Source</a></p> +</blockquote> +<p>This blog template is built with <a href="https://astro.build/">Astro</a>. For the things that are not mentioned in this guide, you may find the answers in the <a href="https://docs.astro.build/">Astro Docs</a>.</p> +<h2>Front-matter of Posts</h2> +<pre><code>--- +title: My First Blog Post +published: 2023-09-09 +description: This is the first post of my new Astro blog. +image: ./cover.jpg +tags: [Foo, Bar] +category: Front-end +draft: false +--- +</code></pre> +<table> +<thead> +<tr> +<th>Attribute</th> +<th>Description</th> +</tr> +</thead> +<tbody> +<tr> +<td><code>title</code></td> +<td>The title of the post.</td> +</tr> +<tr> +<td><code>published</code></td> +<td>The date the post was published.</td> +</tr> +<tr> +<td><code>description</code></td> +<td>A short description of the post. Displayed on index page.</td> +</tr> +<tr> +<td><code>image</code></td> +<td>The cover image path of the post.&lt;br/&gt;1. Start with <code>http://</code> or <code>https://</code>: Use web image&lt;br/&gt;2. Start with <code>/</code>: For image in <code>public</code> dir&lt;br/&gt;3. With none of the prefixes: Relative to the markdown file</td> +</tr> +<tr> +<td><code>tags</code></td> +<td>The tags of the post.</td> +</tr> +<tr> +<td><code>category</code></td> +<td>The category of the post.</td> +</tr> +<tr> +<td><code>draft</code></td> +<td>If this post is still a draft, which won't be displayed.</td> +</tr> +</tbody> +</table> +<h2>Where to Place the Post Files</h2> +<p>Your post files should be placed in <code>src/content/posts/</code> directory. You can also create sub-directories to better organize your posts and assets.</p> +<pre><code>src/content/posts/ +├── post-1.md +└── post-2/ + ├── cover.png + └── index.md +</code></pre> +<h1>markdown.md</h1> +<h1>An h1 header</h1> +<p>Paragraphs are separated by a blank line.</p> +<p>2nd paragraph. <em>Italic</em>, <strong>bold</strong>, and <code>monospace</code>. Itemized lists +look like:</p> +<ul> +<li>this one</li> +<li>that one</li> +<li>the other one</li> +</ul> +<p>Note that --- not considering the asterisk --- the actual text +content starts at 4-columns in.</p> +<blockquote> +<p>Block quotes are +written like so.</p> +<p>They can span multiple paragraphs, +if you like.</p> +</blockquote> +<p>Use 3 dashes for an em-dash. Use 2 dashes for ranges (ex., "it's all +in chapters 12--14"). Three dots ... will be converted to an ellipsis. +Unicode is supported. ☺</p> +<h2>An h2 header</h2> +<p>Here's a numbered list:</p> +<ol> +<li>first item</li> +<li>second item</li> +<li>third item</li> +</ol> +<p>Note again how the actual text starts at 4 columns in (4 characters +from the left side). Here's a code sample:</p> +<pre><code># Let me re-iterate ... +for i in 1 .. 10 { do-something(i) } +</code></pre> +<p>As you probably guessed, indented 4 spaces. By the way, instead of +indenting the block, you can use delimited blocks, if you like:</p> +<pre><code>define foobar() { + print "Welcome to flavor country!"; +} +</code></pre> +<p>(which makes copying &amp; pasting easier). You can optionally mark the +delimited block for Pandoc to syntax highlight it:</p> +<pre><code>import time +# Quick, count to ten! +for i in range(10): + # (but not *too* quick) + time.sleep(0.5) + print i +</code></pre> +<h3>An h3 header</h3> +<p>Now a nested list:</p> +<ol> +<li> +<p>First, get these ingredients:</p> +<ul> +<li>carrots</li> +<li>celery</li> +<li>lentils</li> +</ul> +</li> +<li> +<p>Boil some water.</p> +</li> +<li> +<p>Dump everything in the pot and follow +this algorithm:</p> +<pre><code> find wooden spoon + uncover pot + stir + cover pot + balance wooden spoon precariously on pot handle + wait 10 minutes + goto first step (or shut off burner when done) +</code></pre> +<p>Do not bump wooden spoon or it will fall.</p> +</li> +</ol> +<p>Notice again how text always lines up on 4-space indents (including +that last line which continues item 3 above).</p> +<p>Here's a link to <a href="http://foo.bar">a website</a>, to a <a href="local-doc.html">local +doc</a>, and to a <a href="#an-h2-header">section heading in the current +doc</a>. Here's a footnote [^1].</p> +<p>[^1]: Footnote text goes here.</p> +<p>Tables can look like this:</p> +<p>size material color</p> +<hr /> +<p>9 leather brown +10 hemp canvas natural +11 glass transparent</p> +<p>Table: Shoes, their sizes, and what they're made of</p> +<p>(The above is the caption for the table.) Pandoc also supports +multi-line tables:</p> +<hr /> +<p>keyword text</p> +<hr /> +<p>red Sunsets, apples, and +other red or reddish +things.</p> +<p>green Leaves, grass, frogs +and other things it's +not easy being.</p> +<hr /> +<p>A horizontal rule follows.</p> +<hr /> +<p>Here's a definition list:</p> +<p>apples +: Good for making applesauce. +oranges +: Citrus! +tomatoes +: There's no "e" in tomatoe.</p> +<p>Again, text is indented 4 spaces. (Put a blank line between each +term/definition pair to spread things out more.)</p> +<p>Here's a "line block":</p> +<p>| Line one +| Line too +| Line tree</p> +<p>and images can be specified like so:</p> +<p>Inline math equations go in like so: $\omega = d\phi / dt$. Display +math should get its own line and be put in in double-dollarsigns:</p> +<p>$$I = \int \rho R^{2} dV$$</p> +<p>$$ +\begin{equation*} +\pi +=3.1415926535 +;8979323846;2643383279;5028841971;6939937510;5820974944 +;5923078164;0628620899;8628034825;3421170679;\ldots +\end{equation*} +$$</p> +<p>And note that you can backslash-escape any punctuation characters +which you wish to be displayed literally, ex.: `foo`, *bar*, etc.</p> +<h1>video.md</h1> +<p>Just copy the embed code from YouTube or other platforms, and paste it in the markdown file.</p> +<pre><code>--- +title: Include Video in the Post +published: 2023-10-19 +// ... +--- + +&lt;iframe width="100%" height="468" src="https://www.youtube.com/embed/5gIf0_xpFPI?si=N1WTorLKL0uwLsU_" title="YouTube video player" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt; +</code></pre> +<h2>YouTube</h2> +<p>&lt;iframe width="100%" height="468" src="https://www.youtube.com/embed/5gIf0_xpFPI?si=N1WTorLKL0uwLsU_" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen&gt;&lt;/iframe&gt;</p> +<h2>Bilibili</h2> +<p>&lt;iframe width="100%" height="468" src="//player.bilibili.com/player.html?bvid=BV1fK4y1s7Qf&amp;p=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"&gt; &lt;/iframe&gt;</p> +<h1>markdown-extended.md</h1> +<h2>GitHub Repository Cards</h2> +<p>You can add dynamic cards that link to GitHub repositories, on page load, the repository information is pulled from the GitHub API.</p> +<p>::github{repo="Fabrizz/MMM-OnSpotify"}</p> +<p>Create a GitHub repository card with the code <code>::github{repo="&lt;owner&gt;/&lt;repo&gt;"}</code>.</p> +<pre><code>::github{repo="saicaca/fuwari"} +</code></pre> +<h2>Admonitions</h2> +<p>Following types of admonitions are supported: <code>note</code> <code>tip</code> <code>important</code> <code>warning</code> <code>caution</code></p> +<p>:::note +Highlights information that users should take into account, even when skimming. +:::</p> +<p>:::tip +Optional information to help a user be more successful. +:::</p> +<p>:::important +Crucial information necessary for users to succeed. +:::</p> +<p>:::warning +Critical content demanding immediate user attention due to potential risks. +:::</p> +<p>:::caution +Negative potential consequences of an action. +:::</p> +<h3>Basic Syntax</h3> +<pre><code>:::note +Highlights information that users should take into account, even when skimming. +::: + +:::tip +Optional information to help a user be more successful. +::: +</code></pre> +<h3>Custom Titles</h3> +<p>The title of the admonition can be customized.</p> +<p>:::note[MY CUSTOM TITLE] +This is a note with a custom title. +:::</p> +<pre><code>:::note[MY CUSTOM TITLE] +This is a note with a custom title. +::: +</code></pre> +<h3>GitHub Syntax</h3> +<blockquote> +<p>[!TIP] +<a href="https://github.com/orgs/community/discussions/16925">The GitHub syntax</a> is also supported.</p> +</blockquote> +<pre><code>&gt; [!NOTE] +&gt; The GitHub syntax is also supported. + +&gt; [!TIP] +&gt; The GitHub syntax is also supported. +</code></pre> +<h1>expressive-code.md</h1> +<h4>Rendering ANSI escape sequences</h4> +<pre><code>ANSI colors: +- Regular: [31mRed[0m [32mGreen[0m [33mYellow[0m [34mBlue[0m [35mMagenta[0m [36mCyan[0m +- Bold: [1;31mRed[0m [1;32mGreen[0m [1;33mYellow[0m [1;34mBlue[0m [1;35mMagenta[0m [1;36mCyan[0m +- Dimmed: [2;31mRed[0m [2;32mGreen[0m [2;33mYellow[0m [2;34mBlue[0m [2;35mMagenta[0m [2;36mCyan[0m + +256 colors (showing colors 160-177): +[38;5;160m160 [38;5;161m161 [38;5;162m162 [38;5;163m163 [38;5;164m164 [38;5;165m165[0m +[38;5;166m166 [38;5;167m167 [38;5;168m168 [38;5;169m169 [38;5;170m170 [38;5;171m171[0m +[38;5;172m172 [38;5;173m173 [38;5;174m174 [38;5;175m175 [38;5;176m176 [38;5;177m177[0m + +Full RGB colors: +[38;2;34;139;34mForestGreen - RGB(34, 139, 34)[0m + +Text formatting: [1mBold[0m [2mDimmed[0m [3mItalic[0m [4mUnderline[0m +</code></pre> +<h3>Editor &amp; Terminal Frames</h3> +<p><a href="https://expressive-code.com/key-features/frames/">Editor &amp; Terminal Frames</a></p> +<h4>Code editor frames</h4> +<pre><code>console.log('Title attribute example') +</code></pre> +<hr /> +<pre><code>&lt;!-- src/content/index.html --&gt; +&lt;div&gt;File name comment example&lt;/div&gt; +</code></pre> +<h4>Terminal frames</h4> +<pre><code>echo "This terminal frame has no title" +</code></pre> +<hr /> +<pre><code>Write-Output "This one has a title!" +</code></pre> +<h4>Overriding frame types</h4> +<pre><code>echo "Look ma, no frame!" +</code></pre> +<hr /> +<pre><code># Without overriding, this would be a terminal frame +function Watch-Tail { Get-Content -Tail 20 -Wait $args } +New-Alias tail Watch-Tail +</code></pre> +<h3>Text &amp; Line Markers</h3> +<p><a href="https://expressive-code.com/key-features/text-markers/">Text &amp; Line Markers</a></p> +<h4>Marking full lines &amp; line ranges</h4> +<pre><code>// Line 1 - targeted by line number +// Line 2 +// Line 3 +// Line 4 - targeted by line number +// Line 5 +// Line 6 +// Line 7 - targeted by range "7-8" +// Line 8 - targeted by range "7-8" +</code></pre> +<h4>Selecting line marker types (mark, ins, del)</h4> +<pre><code>function demo() { + console.log('this line is marked as deleted') + // This line and the next one are marked as inserted + console.log('this is the second inserted line') + + return 'this line uses the neutral default marker type' +} +</code></pre> +<h4>Adding labels to line markers</h4> +<pre><code>// labeled-line-markers.jsx +&lt;button + role="button" + {...props} + value={value} + className={buttonClassName} + disabled={disabled} + active={active} +&gt; + {children &amp;&amp; + !active &amp;&amp; + (typeof children === 'string' ? &lt;span&gt;{children}&lt;/span&gt; : children)} +&lt;/button&gt; +</code></pre> +<h4>Adding long labels on their own lines</h4> +<pre><code>// labeled-line-markers.jsx +&lt;button + role="button" + {...props} + + value={value} + className={buttonClassName} + + disabled={disabled} + active={active} +&gt; + + {children &amp;&amp; + !active &amp;&amp; + (typeof children === 'string' ? &lt;span&gt;{children}&lt;/span&gt; : children)} +&lt;/button&gt; +</code></pre> +<h4>Using diff-like syntax</h4> +<pre><code>+this line will be marked as inserted +-this line will be marked as deleted +this is a regular line +</code></pre> +<hr /> +<pre><code>--- a/README.md ++++ b/README.md +@@ -1,3 +1,4 @@ ++this is an actual diff file +-all contents will remain unmodified + no whitespace will be removed either +</code></pre> +<h4>Combining syntax highlighting with diff-like syntax</h4> +<pre><code> function thisIsJavaScript() { + // This entire block gets highlighted as JavaScript, + // and we can still add diff markers to it! +- console.log('Old code to be removed') ++ console.log('New and shiny code!') + } +</code></pre> +<h4>Marking individual text inside lines</h4> +<pre><code>function demo() { + // Mark any given text inside lines + return 'Multiple matches of the given text are supported'; +} +</code></pre> +<h4>Regular expressions</h4> +<pre><code>console.log('The words yes and yep will be marked.') +</code></pre> +<h4>Escaping forward slashes</h4> +<pre><code>echo "Test" &gt; /home/test.txt +</code></pre> +<h4>Selecting inline marker types (mark, ins, del)</h4> +<pre><code>function demo() { + console.log('These are inserted and deleted marker types'); + // The return statement uses the default marker type + return true; +} +</code></pre> +<h3>Word Wrap</h3> +<p><a href="https://expressive-code.com/key-features/word-wrap/">Word Wrap</a></p> +<h4>Configuring word wrap per block</h4> +<pre><code>// Example with wrap +function getLongString() { + return 'This is a very long string that will most probably not fit into the available space unless the container is extremely wide' +} +</code></pre> +<hr /> +<pre><code>// Example with wrap=false +function getLongString() { + return 'This is a very long string that will most probably not fit into the available space unless the container is extremely wide' +} +</code></pre> +<h4>Configuring indentation of wrapped lines</h4> +<pre><code>// Example with preserveIndent (enabled by default) +function getLongString() { + return 'This is a very long string that will most probably not fit into the available space unless the container is extremely wide' +} +</code></pre> +<hr /> +<pre><code>// Example with preserveIndent=false +function getLongString() { + return 'This is a very long string that will most probably not fit into the available space unless the container is extremely wide' +} +</code></pre> +<h2>Collapsible Sections</h2> +<p><a href="https://expressive-code.com/plugins/collapsible-sections/">Collapsible Sections</a></p> +<pre><code>// All this boilerplate setup code will be collapsed +import { someBoilerplateEngine } from '@example/some-boilerplate' +import { evenMoreBoilerplate } from '@example/even-more-boilerplate' + +const engine = someBoilerplateEngine(evenMoreBoilerplate()) + +// This part of the code will be visible by default +engine.doSomething(1, 2, 3, calcFn) + +function calcFn() { + // You can have multiple collapsed sections + const a = 1 + const b = 2 + const c = a + b + + // This will remain visible + console.log(`Calculation result: ${a} + ${b} = ${c}`) + return c +} + +// All this code until the end of the block will be collapsed again +engine.closeConnection() +engine.freeMemory() +engine.shutdown({ reason: 'End of example boilerplate code' }) +</code></pre> +<h2>Line Numbers</h2> +<p><a href="https://expressive-code.com/plugins/line-numbers/">Line Numbers</a></p> +<h3>Displaying line numbers per block</h3> +<pre><code>// This code block will show line numbers +console.log('Greetings from line 2!') +console.log('I am on line 3') +</code></pre> +<hr /> +<pre><code>// Line numbers are disabled for this block +console.log('Hello?') +console.log('Sorry, do you know what line I am on?') +</code></pre> +<h3>Changing the starting line number</h3> +<pre><code>console.log('Greetings from line 5!') +console.log('I am on line 6') +</code></pre> +<h1>draft.md</h1> +<h1>This Article is a Draft</h1> +<p>This article is currently in a draft state and is not published. Therefore, it will not be visible to the general audience. The content is still a work in progress and may require further editing and review.</p> +<p>When the article is ready for publication, you can update the "draft" field to "false" in the Frontmatter:</p> +<pre><code>--- +title: Draft Example +published: 2024-01-11T04:40:26.381Z +tags: [Markdown, Blogging, Demo] +category: Examples +draft: false +---</code></pre> +站点历程https://blog.fis.ink/posts/18/https://blog.fis.ink/posts/18/站点历程Tue, 01 Jan 1901 00:00:00 GMT<h1>本站历程</h1> +<ul> +<li> +<p>2024.9 宝塔面板无法安装,发现了1panel面板</p> +</li> +<li> +<p>2024.9 在应用商店里发现halo建站,开始了我的建站之路</p> +</li> +<li> +<p>2024.9 发布自己的第一篇文章</p> +</li> +<li> +<p>2024.9 购买了云服务器</p> +</li> +<li> +<p>2024.10 发现wordpass有一款主题特别好看,于是转到WordPress</p> +</li> +<li> +<p>2024.11 wordpass优化不好,有转到hexo倾向</p> +</li> +<li> +<p>2024.12 全站正式转到hexo,开始对butterfly美化</p> +</li> +<li> +<p>2024.12 基本定型</p> +</li> +<li> +<p>2024.12 更换安知鱼主题,启用cloudflare cdn</p> +</li> +<li> +<p>2025.1.1 安知鱼主题加载太慢,并且页脚不能加 html,关闭 cloudflare CDN</p> +</li> +<li> +<p>2025.2 又换回halo</p> +</li> +<li> +<p>2025.3 发现halo-theme-dream2.0-plus,图片分流丘盾CDN 和 cloudflare CDN</p> +</li> +<li> +<p>2025.7 实在受不了halo的臃肿,换到了新框架Astro并使用fuwari</p> +</li> +<li> +<p>2025.7 分线路解析中国大陆境内使用腾讯EO香港节点,境外使用cloudflare cdn,实现秒开</p> +</li> +</ul> + \ No newline at end of file diff --git a/scripts/new-post.js b/scripts/new-post.js deleted file mode 100644 index 2531390..0000000 --- a/scripts/new-post.js +++ /dev/null @@ -1,59 +0,0 @@ -/* This is a script to create a new post markdown file with front-matter */ - -import fs from "fs" -import path from "path" - -function getDate() { - const today = new Date() - const year = today.getFullYear() - const month = String(today.getMonth() + 1).padStart(2, "0") - const day = String(today.getDate()).padStart(2, "0") - - return `${year}-${month}-${day}` -} - -const args = process.argv.slice(2) - -if (args.length === 0) { - console.error(`Error: No filename argument provided -Usage: npm run new-post -- `) - process.exit(1) // Terminate the script and return error code 1 -} - -let fileName = args[0] - -// Add .md extension if not present -const fileExtensionRegex = /\.(md|mdx)$/i -if (!fileExtensionRegex.test(fileName)) { - fileName += ".md" -} - -const targetDir = "./src/content/posts/" -const fullPath = path.join(targetDir, fileName) - -if (fs.existsSync(fullPath)) { - console.error(`Error: File ${fullPath} already exists `) - process.exit(1) -} - -// recursive mode creates multi-level directories -const dirPath = path.dirname(fullPath) -if (!fs.existsSync(dirPath)) { - fs.mkdirSync(dirPath, { recursive: true }) -} - -const content = `--- -title: ${args[0]} -published: ${getDate()} -description: '' -image: '' -tags: [] -category: '' -draft: false -lang: '' ---- -` - -fs.writeFileSync(path.join(targetDir, fileName), content) - -console.log(`Post ${fullPath} created`) diff --git a/sitemap-0.xml b/sitemap-0.xml new file mode 100644 index 0000000..2623916 --- /dev/null +++ b/sitemap-0.xml @@ -0,0 +1 @@ +https://blog.fis.ink/https://blog.fis.ink/2/https://blog.fis.ink/3/https://blog.fis.ink/about/https://blog.fis.ink/album/https://blog.fis.ink/album/1/https://blog.fis.ink/album/architecture/https://blog.fis.ink/archive/https://blog.fis.ink/chronobox/https://blog.fis.ink/circle/https://blog.fis.ink/comments/https://blog.fis.ink/essay/https://blog.fis.ink/friends/https://blog.fis.ink/posts/1/https://blog.fis.ink/posts/2/https://blog.fis.ink/posts/3/https://blog.fis.ink/posts/4/https://blog.fis.ink/posts/5/https://blog.fis.ink/posts/6/https://blog.fis.ink/posts/7/https://blog.fis.ink/posts/8/https://blog.fis.ink/posts/9/https://blog.fis.ink/posts/10/https://blog.fis.ink/posts/11/https://blog.fis.ink/posts/12/https://blog.fis.ink/posts/13/https://blog.fis.ink/posts/14/https://blog.fis.ink/posts/15/https://blog.fis.ink/posts/16/https://blog.fis.ink/posts/17/https://blog.fis.ink/posts/18/https://blog.fis.ink/posts/19/https://blog.fis.ink/posts/20/https://blog.fis.ink/posts/21/https://blog.fis.ink/posts/22/https://blog.fis.ink/posts/23/https://blog.fis.ink/posts/24/https://blog.fis.ink/posts/25/https://blog.fis.ink/posts/26/https://blog.fis.ink/posts/27/https://blog.fis.ink/posts/28/https://blog.fis.ink/posts/29/https://blog.fis.ink/posts/30/https://blog.fis.ink/posts/31/https://blog.fis.ink/posts/32/https://blog.fis.ink/posts/34/https://blog.fis.ink/posts/35/https://blog.fis.ink/posts/markdown/ \ No newline at end of file diff --git a/sitemap-index.xml b/sitemap-index.xml new file mode 100644 index 0000000..fa559db --- /dev/null +++ b/sitemap-index.xml @@ -0,0 +1 @@ +https://blog.fis.ink/sitemap-0.xml \ No newline at end of file diff --git a/src/assets/album.json b/src/assets/album.json deleted file mode 100644 index c18dafb..0000000 --- a/src/assets/album.json +++ /dev/null @@ -1,56 +0,0 @@ -[ - { - "id": 1, - "title": "风景摄影", - "slug": "1", - "description": "记录大自然的美丽瞬间", - "cover": "https://cdn.fis.ink/img/2025/07/24/6881fcb459da3.webp", - "tags": ["风景", "自然", "摄影"], - "created": "2025-08-29", - "images": [ - { - "id": 1, - "url": "https://cdn.fis.ink/img/2025/07/24/6881f86b1baf2.webp", - "title": "山间晨雾", - "description": "清晨山间的薄雾缭绕", - "tags": ["山景", "晨雾", "测试"], - "date": "2025-08-29" - }, - { - "id": 2, - "url": "https://cdn.fis.ink/img/2025/07/24/6881fcb3a051f.webp", - "title": "金狮", - "description": "雕像", - "tags": ["海景", "日落"], - "date": "2025-08-29" - } - ] - }, - { - "id": 2, - "title": "城市建筑", - "slug": "architecture", - "description": "现代都市的建筑之美", - "cover": "https://cdn.fis.ink/img/2025/07/24/6881fcb3a051f.webp", - "tags": ["建筑", "城市", "现代"], - "created": "2025-08-29", - "images": [ - { - "id": 4, - "url": "https://cdn.fis.ink/img/2025/07/24/6881fcb459da3.webp", - "title": "摩天大楼", - "description": "城市中心的现代建筑群", - "tags": ["摩天楼", "现代建筑"], - "date": "2025-08-29" - }, - { - "id": 5, - "url": "https://cdn.fis.ink/img/2025/07/24/6881f86b1baf2.webp", - "title": "古典建筑", - "description": "历史悠久的古典建筑风格", - "tags": ["古典", "历史建筑"], - "date": "2025-08-28" - } - ] - } -] diff --git a/src/assets/chronobox.json b/src/assets/chronobox.json deleted file mode 100644 index c8ada8c..0000000 --- a/src/assets/chronobox.json +++ /dev/null @@ -1,98 +0,0 @@ -[ - { - "id": 1, - "title": "非人哉", - "type": "番剧", - "status": "看过", - "rating": 5, - "description": "中国古典神话传说中的\"著名\"精怪是如何在现代社会生存下去...", - "cover": "https://cdn.fis.ink/cdn/2025/08/21/68a6d7ce373e1.webp", - "year": 2018, - "tags": ["国创", "日常", "搞笑"], - "url": "https://www.bilibili.com/bangumi/play/ss24298" - }, - { - "id": 2, - "title": "非人哉 第二季", - "type": "番剧", - "status": "看过", - "rating": 5, - "description": "故事围绕着女主角九尾狐九月展开,表现生活在当代都市中的九月作为一名普通的上班族努力工作挣钱...", - "cover": "https://cdn.fis.ink/cdn/2025/08/21/68a6d8301970c.webp", - "year": 2024, - "tags": ["国创", "日常", "搞笑"], - "url": "https://www.bilibili.com/bangumi/play/ss47348" - }, - { - "id": 3, - "title": "非人哉 第三季", - "type": "番剧", - "status": "在看", - "rating": 5, - "description": "中国古典神话传说中的\"著名\"精怪是如何在现代社会生存下去...", - "cover": "https://cdn.fis.ink/cdn/2025/08/21/68a6db1a48996.webp", - "year": 2025, - "tags": ["国创", "日常", "搞笑"], - "url": "https://www.bilibili.com/bangumi/play/ss101854" - }, - { - "id": 1, - "title": "流浪地球", - "type": "电影", - "status": "看过", - "rating": 5, - "description": "近年来,科学家们发现太阳急速衰老膨胀,短时间内包括地球在内的整个太阳系都将被太阳所吞没", - "cover": "https://cdn.fis.ink/cdn/2025/08/21/68a6db7c39a2a.webp", - "year": 2019, - "tags": ["奇幻", "冒险", "灾难"], - "url": "https://movie.douban.com/subject/26266893/" - }, - { - "id": 2, - "title": "流浪地球2", - "type": "电影", - "status": "看过", - "rating": 5, - "description": "太阳即将毁灭,人类在地球表面建造出巨大的推进器", - "cover": "https://cdn.fis.ink/cdn/2025/08/21/68a6da63071e7.webp", - "year": 2023, - "tags": ["奇幻", "冒险", "灾难"], - "url": "https://movie.douban.com/subject/35267208/" - }, - { - "id": 3, - "title": "非人哉:限时玩家", - "type": "电影", - "status": "看过", - "rating": 3, - "description": "平平无奇的打工狐九月与神仙同伴敖烈、哪吒、哮天犬、玉兔,误打误撞进入了一个坑很多的游戏世界。", - "cover": "https://cdn.fis.ink/cdn/2025/08/21/68a6df911c367.webp", - "year": 2025, - "tags": ["国创", "搞笑"], - "url": "https://movie.douban.com/subject/37179769/" - }, - { - "id": 3, - "title": "哪吒之魔童闹海", - "type": "电影", - "status": "看过", - "rating": 5, - "description": "天劫之后,哪吒、敖丙的灵魂虽保住了,但肉身很快会魂飞魄散。", - "cover": "https://cdn.fis.ink/cdn/2025/08/22/68a7d1d79248f.webp", - "year": 2025, - "tags": ["奇幻", "喜剧", "动画"], - "url": "https://movie.douban.com/subject/34780991/" - }, - { - "id": 3, - "title": "哪吒之魔童降世", - "type": "电影", - "status": "看过", - "rating": 5, - "description": "天地灵气孕育出一颗能量巨大的混元珠,元始天尊将混元珠提炼成灵珠和魔丸", - "cover": "https://cdn.fis.ink/cdn/2025/08/22/68a7d27ae2c14.webp", - "year": 2019, - "tags": ["奇幻", "喜剧", "动画"], - "url": "https://movie.douban.com/subject/26794435/" - } -] diff --git a/src/assets/essay.json b/src/assets/essay.json deleted file mode 100644 index 2c3879d..0000000 --- a/src/assets/essay.json +++ /dev/null @@ -1,25 +0,0 @@ -[ - { - "id": 3, - "content": "感觉", - "time": "2025-08-17", - "tags": ["生活"] - }, - { - "id": 2, - "content": "测试图片", - "time": "2025-08-13", - "tags": ["测试图片"], - "images": [ - "https://file.fis.ink/img/fishcpy/logo.png", - "https://file.fis.ink/img/fishcpy/logo.png", - "https://file.fis.ink/img/fishcpy/logo_c.png" - ] - }, - { - "id": 1, - "content": "测试", - "time": "2025-08-13", - "tags": ["测试", "test"] - } -] diff --git a/src/assets/friends.json b/src/assets/friends.json deleted file mode 100644 index 37bf213..0000000 --- a/src/assets/friends.json +++ /dev/null @@ -1,362 +0,0 @@ -[ - { - "title": "清羽飞扬", - "imgurl": "https://blog.liushen.fun/info/avatar.ico", - "desc": "柳影曳曳,清酒孤灯,扬笔撒墨,心境如霜", - "siteurl": "https://blog.liushen.fun/", - "category": "朋友", - "tags": [""], - "openInNewTab": true - }, - { - "title": "凨狐的小窝", - "imgurl": "https://cdn.fis.ink/cdn/2025/08/10/6898552d1089d.webp", - "desc": "这个名字...一看就很不想让人搜到", - "siteurl": "https://fur.tax", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "张洪Heo", - "imgurl": "https://bu.dusays.com/2022/12/28/63ac2812183aa.png", - "desc": "分享设计与科技生活", - "siteurl": "https://blog.zhheo.com", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "梦爱吃鱼", - "imgurl": "https://oss-cdn.bsgun.cn/logo/avatar.256.png", - "desc": "但愿日子清静抬头遇见的满是柔情", - "siteurl": "https://blog.bsgun.cn/", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "Mo的记事簿", - "imgurl": "https://blog.xiowo.net/img/avatar.png", - "desc": "万年鸽王,哈哈OvO", - "siteurl": "https://blog.xiowo.net/", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "宏尘极客", - "imgurl": "https://www.hcjike.com/favicon.ico", - "desc": "专注于技术知识和NAS笔记等内容分享", - "siteurl": "https://www.hcjike.com/", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "bbb-lsy07", - "imgurl": "https://images.6uu.us/20250511114301488.JPG", - "desc": "科技激荡人文,洞见智慧本真。", - "siteurl": "https://blog.6uu.us/", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "秋实-Allenyou 的小窝", - "imgurl": "https://blog-oss.allenyou.top/avatar/59b2fbdd507a84fe181b0af3e4ad7be3", - "desc": "稻花香里说丰年,听取 WA 声一片", - "siteurl": "https://www.allenyou.wang/", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "朽丘秋雨", - "imgurl": "https://blog.koxiuqiu.cc/img/avatar/avatar.png", - "desc": "一定会和喜欢的人在夏日夜晚牵手慢步", - "siteurl": "https://blog.koxiuqiu.cc/", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "龙星划空", - "imgurl": "https://blog.245179.xyz/images/atiq.png", - "desc": "人生近看是悲剧,远看是喜剧", - "siteurl": "https://blog.245179.xyz/", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "liuzhen932 的小窝", - "imgurl": "https://blog.liuzhen932.top/favicon.png", - "desc": "只要愿意去做,人无所不通", - "siteurl": "https://blog.liuzhen932.top/", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "夜轻Blog", - "imgurl": "https://image.yeqing.net/i/2025/05/15/62868e67dff91285992985db0cce57d5.webp", - "desc": "一个人", - "siteurl": "https://blog.yeqing.net/", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "橙寻星球", - "imgurl": "https://s3.bmp.ovh/imgs/2022/02/163746639f0d0e68.jpg", - "desc": "人外有人,天外有天", - "siteurl": "https://cloudwl.com/", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "光 · 昭", - "imgurl": "https://akipubliccdn.cn-nb1.rains3.com/pic/avatar.webp", - "desc": "「あまねく奇跡の始発点」", - "siteurl": "https://www.pyrzo.com/", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "熊猫の小窝", - "imgurl": "https://cdn.akaere.online/https://avatars.githubusercontent.com/u/71202163", - "desc": "一个温暖的家/一只懒懒的熊猫", - "siteurl": "https://www.pysio.online/", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "泯轲博客", - "imgurl": "http://q.qlogo.cn/headimg_dl?dst_uin=3589067134&spec=640&img_type=jpg", - "desc": "咬咬稻草做动作,生活一点没烦恼!", - "siteurl": "https://wm.k9b.cn/", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "Yeppioo", - "imgurl": "https://blog.yeppioo.vip/static/img/avatar.png", - "desc": "梦想成为庄稼地里的读书人.....", - "siteurl": "https://blog.yeppioo.vip/", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "AcoFork", - "imgurl": "https://q2.qlogo.cn/headimg_dl?dst_uin=2726730791&spec=5", - "desc": "Protect What You Love!", - "siteurl": "https://www.afo.im/", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "青序栈", - "imgurl": "https://qxzhan.cn/favicon.png", - "desc": "青序成栈·向简而生", - "siteurl": "https://qxzhan.cn/", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "Noah'blog", - "imgurl": "https://cdn.tulan.cyou/2025/06/29/Image_13149668686090.jpg", - "desc": "努力去发光,而不是被照亮", - "siteurl": "https://blog.noah0932.top", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "Stanley的技术博客", - "imgurl": "https://main.lixvyao.com/favicon.png", - "desc": "🤓逸一时,误一世👌", - "siteurl": "https://lixvyao.com", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "Welcome to - 小枫的Blog", - "imgurl": "https://q.qlogo.cn/headimg_dl?dst_uin=1432777209&spec=640&img_type=jpg", - "desc": "这是一个致力于分享前后端技术的博客。同时也分享一些闲聊碎语", - "siteurl": "https://blog.zicheng.icu", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "Pinpe 的云端", - "imgurl": "https://pinpe.top/head.jpg", - "desc": "一个属于自己的云朵。", - "siteurl": "https://pinpe.top", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "幽默的小刘吖小栈", - "imgurl": "https://lzch.top/favicon.png", - "desc": "这里是幽默的小刘吖的小栈", - "siteurl": "https://lzch.top", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "AirTouch's Blog", - "imgurl": "https://xsl.im/avatar_full.webp", - "desc": "岩间琉璃云间月", - "siteurl": "https://xsl.im", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "或许是一只龙的博客", - "imgurl": "https://q1.qlogo.cn/g?b=qq&nk=2042177831&s=640", - "desc": "一只神秘小龙", - "siteurl": "https://www.497995.xyz", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "Codfish Blog", - "imgurl": "https://codfish.top/favicon/1.jpg", - "desc": "🐟🐟🐟", - "siteurl": "https://codfish.top", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "百里博客", - "imgurl": "https://q2.qlogo.cn/headimg_dl?dst_uin=3166269605&spec=5", - "desc": "Everything as Code", - "siteurl": "https://blog.my0811.cn", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "Wer Blog", - "imgurl": "https://blog.isyyo.com/favicon/logo.png", - "desc": "The only way to do great is to love what you do", - "siteurl": "https://blog.isyyo.com", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "Tavre Blog", - "imgurl": "https://q1.qlogo.cn/g?b=qq&nk=2987304764&s=640", - "desc": "茫茫大海 我与你相遇", - "siteurl": "https://blog.tsd.my", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "彬红茶日记", - "imgurl": "https://note.redcha.cn/upload/favicon-256x256.png", - "desc": "个人生活笔记📒", - "siteurl": "https://note.redcha.cn", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "yCENzh’s blog", - "imgurl": "https://fuwari.oh1.top/favicon/icon.webp", - "desc": "Ciallo~(∠・ω< )⌒☆", - "siteurl": "https://fuwari.oh1.top", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "星辰の笔记", - "imgurl": "https://blog.strarry.top/avatar.jpg", - "desc": "Code | Think | Share | Repeat", - "siteurl": "https://blog.strarry.top", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "RukaaX Blogs", - "imgurl": "https://blogs.rukaax.top/wp-content/uploads/2025/08/1754276663-ICON.png", - "desc": "Rukaax-一名高中生的博客 | Develop", - "siteurl": "https://blogs.rukaax.top", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "鈴奈咲桜のBlog", - "imgurl": "https://avatars.githubusercontent.com/u/91101909?v=4", - "desc": "愛することを忘れないで", - "siteurl": "https://blog.sakura.ink", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "TNTの小破站", - "imgurl": "https://cdn.fis.ink/cdn/2025/08/15/689ed0ef4b2a3.webp", - "desc": "萝卜青菜,各有所爱", - "siteurl": "https://blog.tnto.fun", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "青稚の空间", - "imgurl": "https://blog.linux-qitong.top/img/avatar.webp", - "desc": "越努力,越幸运.", - "siteurl": "https://blog.linux-qitong.top", - "category": "博客", - "tags": [""], - "openInNewTab": true - }, - { - "title": "可耐的小伙纸", - "imgurl": "https://kndxhz.cn/images/b_2ba0f0b166b43ef17e4f147b782418b0.webp", - "desc": "永远相信美好的事情即将发生", - "siteurl": "https://kndxhz.cn", - "category": "个人主页", - "tags": [""], - "openInNewTab": true - }, - { - "title": "zyh的个人站", - "imgurl": "https://cdn.fis.ink/img/2025/04/05/67f0923d5dd91.jpg", - "desc": "Who is minecraft?", - "siteurl": "https://zyh666.dpdns.org", - "category": "个人主页", - "tags": [""], - "openInNewTab": true - }, - { - "title": "Astro", - "imgurl": "https://avatars.githubusercontent.com/u/44914786?s=48&v=4", - "desc": "博客框架", - "siteurl": "https://github.com/withastro/astro", - "category": "框架", - "tags": [""], - "openInNewTab": true - } -] diff --git a/src/components/ArchivePanel.svelte b/src/components/ArchivePanel.svelte deleted file mode 100644 index 43aef7d..0000000 --- a/src/components/ArchivePanel.svelte +++ /dev/null @@ -1,158 +0,0 @@ - - -
    - {#each groups as group} -
    -
    -
    - {group.year} -
    -
    -
    -
    -
    - {group.posts.length} {i18n(group.posts.length === 1 ? I18nKey.postCount : I18nKey.postsCount)} -
    -
    - - {#each group.posts as post} - -
    - -
    - {formatDate(post.data.published)} -
    - - -
    -
    -
    - - -
    - {post.data.title} -
    - - - -
    -
    - {/each} -
    - {/each} -
    diff --git a/src/components/ConfigCarrier.astro b/src/components/ConfigCarrier.astro deleted file mode 100644 index 68b3dde..0000000 --- a/src/components/ConfigCarrier.astro +++ /dev/null @@ -1,7 +0,0 @@ ---- - -import { siteConfig } from "../config"; ---- - -
    -
    diff --git a/src/components/EssayCarousel.astro b/src/components/EssayCarousel.astro deleted file mode 100644 index 15c1732..0000000 --- a/src/components/EssayCarousel.astro +++ /dev/null @@ -1,224 +0,0 @@ ---- -import { fetchEch0Posts } from "../utils/ech0-api"; - -// 从Ech0 API获取动态数据(服务器端) -const essayData = await fetchEch0Posts("https://say.allen2030.com"); - -// 检查是否需要客户端获取(如果只有备用数据) -const needsClientFetch = essayData.length === 1 && essayData[0].tags?.includes('系统'); ---- - - - - - - diff --git a/src/components/Footer.astro b/src/components/Footer.astro deleted file mode 100644 index 26ee33e..0000000 --- a/src/components/Footer.astro +++ /dev/null @@ -1,33 +0,0 @@ ---- - -import { profileConfig } from "../config"; -import { url } from "../utils/url-utils"; ---- - -
    - - -
    - © 2026 {profileConfig.name}. All Rights Reserved. 保留所有权利 / - RSS - -
    - Powered by - Astro & - AllenBlog & - EdgeOne -
    - - - - - - - -
    \ No newline at end of file diff --git a/src/components/GlobalStyles.astro b/src/components/GlobalStyles.astro deleted file mode 100644 index 853d812..0000000 --- a/src/components/GlobalStyles.astro +++ /dev/null @@ -1,3 +0,0 @@ ---- - ---- diff --git a/src/components/LightDarkSwitch.svelte b/src/components/LightDarkSwitch.svelte deleted file mode 100644 index fab987e..0000000 --- a/src/components/LightDarkSwitch.svelte +++ /dev/null @@ -1,105 +0,0 @@ - - -{#if !isThemeForced()} - - -{/if} diff --git a/src/components/Navbar.astro b/src/components/Navbar.astro deleted file mode 100644 index b9be6b9..0000000 --- a/src/components/Navbar.astro +++ /dev/null @@ -1,249 +0,0 @@ ---- -import { Icon } from "astro-icon/components"; -import { cardConfig, navBarConfig, siteConfig } from "../config"; -import { LinkPresets } from "../constants/link-presets"; -import { LinkPreset, type NavBarLink } from "../types/config"; -import { url } from "../utils/url-utils"; -import LightDarkSwitch from "./LightDarkSwitch.svelte"; -import Search from "./Search.svelte"; -import DisplaySettings from "./widget/DisplaySettings.svelte"; - -const className = Astro.props.class; - -let links: NavBarLink[] = navBarConfig.links.map( - (item: NavBarLink | LinkPreset): NavBarLink => { - if (typeof item === "number") { - return LinkPresets[item]; - } - return item; - }, -); ---- - - - - -{import.meta.env.PROD && } - - \ No newline at end of file diff --git a/src/components/PostCard.astro b/src/components/PostCard.astro deleted file mode 100644 index 269dac5..0000000 --- a/src/components/PostCard.astro +++ /dev/null @@ -1,169 +0,0 @@ ---- -import type { CollectionEntry } from "astro:content"; -import path from "node:path"; -import { Icon } from "astro-icon/components"; -import { cardConfig, layoutConfig } from "../config"; -import I18nKey from "../i18n/i18nKey"; -import { i18n } from "../i18n/translation"; -import { getDir } from "../utils/url-utils"; -import ImageWrapper from "./misc/ImageWrapper.astro"; -import PostMetadata from "./PostMeta.astro"; - -interface Props { - class?: string; - entry: CollectionEntry<"posts">; - title: string; - url: string; - published: Date; - updated?: Date; - tags: string[]; - category: string | null; - image: string; - description: string; - draft: boolean; - style: string; -} -const { - entry, - title, - url, - published, - updated, - tags, - category, - image, - description, - style, -} = Astro.props; -const className = Astro.props.class; - -const hasCover = image !== undefined && image !== null && image !== ""; - -const coverWidth = "28%"; - -const { remarkPluginFrontmatter } = await entry.render(); - -// 获取布局配置 -const isGridLayout = layoutConfig.postList.type === "grid"; ---- -{isGridLayout ? ( - -
    - -
    -
    - - -
    - {hasCover ? ( - - - ) : ( -
    - -
    - )} -
    -
    - - {title} - - - - - - -
    - { description || remarkPluginFrontmatter.excerpt } -
    - - -
    -
    - {remarkPluginFrontmatter.words} {" " + i18n(remarkPluginFrontmatter.words === 1 ? I18nKey.wordCount : I18nKey.wordsCount)} -
    -
    |
    -
    - {remarkPluginFrontmatter.minutes} {" " + i18n(remarkPluginFrontmatter.minutes === 1 ? I18nKey.minuteCount : I18nKey.minutesCount)} -
    -
    -
    -
    -) : ( - - <> -
    -
    - - {title} - - - - - - - - -
    - { description || remarkPluginFrontmatter.excerpt } -
    - - -
    -
    - {remarkPluginFrontmatter.words} {" " + i18n(remarkPluginFrontmatter.words === 1 ? I18nKey.wordCount : I18nKey.wordsCount)} -
    -
    |
    -
    - {remarkPluginFrontmatter.minutes} {" " + i18n(remarkPluginFrontmatter.minutes === 1 ? I18nKey.minuteCount : I18nKey.minutesCount)} -
    -
    -
    - - {hasCover && -
    -
    - - -
    - - -
    } - - {!hasCover && - - - - - } -
    -
    - -)} - - \ No newline at end of file diff --git a/src/components/PostMeta.astro b/src/components/PostMeta.astro deleted file mode 100644 index 0b4a724..0000000 --- a/src/components/PostMeta.astro +++ /dev/null @@ -1,155 +0,0 @@ ---- -import { Icon } from "astro-icon/components"; -import { commentConfig } from "../config"; -import I18nKey from "../i18n/i18nKey"; -import { i18n } from "../i18n/translation"; -import { formatDateToYYYYMMDD } from "../utils/date-utils"; -import { getCategoryUrl, getTagUrl } from "../utils/url-utils"; - -interface Props { - class: string; - published: Date; - updated?: Date; - tags: string[]; - category: string | null; - hideTagsForMobile?: boolean; - hideUpdateDate?: boolean; - url?: string; - hideVisitorCount?: boolean; -} -const { - published, - updated, - tags, - category, - hideTagsForMobile = false, - hideUpdateDate = false, - url, - hideVisitorCount = false, -} = Astro.props; -const className = Astro.props.class; - -// 生成访问量元素的ID -const generateVisitorId = (url?: string) => { - if (!url) { - // 如果没有传入URL,使用当前页面路径 - const currentPath = Astro.url.pathname; - return `twikoo_visitors_${currentPath.replace(/[^a-zA-Z0-9]/g, "_")}`; - } - return `twikoo_visitors_${url.replace(/[^a-zA-Z0-9]/g, "_")}`; -}; - -const visitorId = generateVisitorId(url); ---- - -{commentConfig.type === "artalk" && ( - -)} - -
    - -
    -
    - -
    - {formatDateToYYYYMMDD(published)} -
    - - - {!hideUpdateDate && updated && updated.getTime() !== published.getTime() && ( -
    -
    - -
    - {formatDateToYYYYMMDD(updated)} -
    - )} - - - - - -
    -
    - -
    -
    - {(tags && tags.length > 0) && tags.map((tag, i) => ( -
    /
    - - {tag.trim()} - - ))} - {!(tags && tags.length > 0) &&
    {i18n(I18nKey.noTags)}
    } -
    -
    - - - {!hideVisitorCount && ( -
    -
    - -
    - - {commentConfig.type === "artalk" ? ( - 0 - ) : ( - 0 - )} 次访问 - -
    - )} -
    \ No newline at end of file diff --git a/src/components/PostPage.astro b/src/components/PostPage.astro deleted file mode 100644 index b85a8f6..0000000 --- a/src/components/PostPage.astro +++ /dev/null @@ -1,36 +0,0 @@ ---- -import type { CollectionEntry } from "astro:content"; -import { getPostUrl, getPostUrlBySlug } from "@utils/url-utils"; -import { layoutConfig } from "@/config"; -import PostCard from "./PostCard.astro"; - -const { page } = Astro.props; - -let delay = 0; -const interval = 50; - -// 根据配置生成布局样式 -const isGridLayout = layoutConfig.postList.type === "grid"; -const gridClasses = isGridLayout - ? `grid grid-cols-${layoutConfig.postList.grid.columns.sm} md2:grid-cols-${layoutConfig.postList.grid.columns.md2} md:grid-cols-${layoutConfig.postList.grid.columns.md} lg:grid-cols-${layoutConfig.postList.grid.columns.lg} ${layoutConfig.postList.grid.gap}` - : "flex flex-col md:gap-4"; ---- - -
    - {page.data.map((entry: CollectionEntry<"posts">) => ( - - ))} -
    \ No newline at end of file diff --git a/src/components/Search.svelte b/src/components/Search.svelte deleted file mode 100644 index 241cf81..0000000 --- a/src/components/Search.svelte +++ /dev/null @@ -1,238 +0,0 @@ - - - - - - -
    - - -
    - - search(keywordMobile, false)} - class="pl-10 absolute inset-0 text-sm bg-transparent outline-0 - text-black/50 dark:text-white/50" - > -
    - - - {#each result as item} - -
    - {item.meta.title} -
    -
    - {@html item.excerpt} -
    -
    - {/each} -
    - - diff --git a/src/components/TitleBeautify.astro b/src/components/TitleBeautify.astro deleted file mode 100644 index b3469cb..0000000 --- a/src/components/TitleBeautify.astro +++ /dev/null @@ -1,158 +0,0 @@ ---- -import { beautifyConfig } from "@/config"; - -const { - enable, - field, - titlePrefixIcon, - titlePrefixIconColor, - animation, - hover, - colors, - sizes, -} = beautifyConfig; - -// 根据配置生成CSS变量 -const cssVars = { - "--title-icon": `"${titlePrefixIcon}"`, - "--title-icon-color": titlePrefixIconColor, - "--animation-speed": - animation?.enable && animation?.rotate ? `${animation.speed}s` : "0s", - "--animation-direction": - animation?.direction === "clockwise" ? "360deg" : "-360deg", - "--hover-speed": - hover?.enable && animation?.rotate ? `${hover.slowSpeed}s` : "0s", - "--hover-color": hover?.color || titlePrefixIconColor, - "--h1-color": colors?.h1 || titlePrefixIconColor, - "--h2-color": colors?.h2 || titlePrefixIconColor, - "--h3-color": colors?.h3 || titlePrefixIconColor, - "--h4-color": colors?.h4 || titlePrefixIconColor, - "--h5-color": colors?.h5 || titlePrefixIconColor, - "--h6-color": colors?.h6 || titlePrefixIconColor, - "--h1-size": sizes?.h1 || "1.3rem", - "--h2-size": sizes?.h2 || "1.1rem", - "--h3-size": sizes?.h3 || "0.95rem", - "--h4-size": sizes?.h4 || "0.8rem", - "--h5-size": sizes?.h5 || "0.7rem", - "--h6-size": sizes?.h6 || "0.66rem", -}; ---- - -{enable && ( - -)} \ No newline at end of file diff --git a/src/components/comment/Artalk.astro b/src/components/comment/Artalk.astro deleted file mode 100644 index df2cd5b..0000000 --- a/src/components/comment/Artalk.astro +++ /dev/null @@ -1,173 +0,0 @@ ---- -interface Props { - path: string; -} - -import { commentConfig } from "@/config"; - -const config = { - el: "#artalk", - pageKey: Astro.props.path, - pageTitle: "", - server: commentConfig.artalk?.server, - site: commentConfig.artalk?.site, - darkMode: commentConfig.artalk?.darkMode, -}; ---- - - -
    - \ No newline at end of file diff --git a/src/components/comment/Twikoo.astro b/src/components/comment/Twikoo.astro deleted file mode 100644 index 092fd20..0000000 --- a/src/components/comment/Twikoo.astro +++ /dev/null @@ -1,459 +0,0 @@ ---- -interface Props { - path: string; -} - -import { commentConfig } from "@/config"; - -const config = { - el: "#twikoo", - path: Astro.props.path, - envId: commentConfig.twikoo?.envId, - lang: commentConfig.twikoo?.lang || "zh-CN", - region: commentConfig.twikoo?.region, - visitor: true, // 启用访问统计 -}; ---- - - -
    - \ No newline at end of file diff --git a/src/components/comment/index.astro b/src/components/comment/index.astro deleted file mode 100644 index e97f2a4..0000000 --- a/src/components/comment/index.astro +++ /dev/null @@ -1,39 +0,0 @@ ---- -import { commentConfig } from "@/config"; -import Artalk from "./Artalk.astro"; -import Twikoo from "./Twikoo.astro"; - -interface Props { - post?: any; - path?: string; -} - -// 如果直接传递了path,使用path;否则从post对象构建path -let path: string; -if (Astro.props.path) { - path = Astro.props.path; -} else { - const { id, data, slug } = Astro.props.post || {}; - // 优先使用customSlug,如果没有则使用默认的slug - const finalSlug = data?.customSlug || slug; - if (finalSlug) { - // 确保文章页面路径以 /posts 开头 - path = `/posts/${finalSlug}`; - } else { - // 对于其他页面,使用当前URL路径 - let currentPath = Astro.url.pathname; - // 移除末尾的斜杠以保持一致性(除了根路径) - path = currentPath.replace(/\/$/, "") || "/"; - } -} - -// 检查评论系统是否启用以及使用哪种类型 -const isCommentEnabled = commentConfig?.enable; -const commentService = isCommentEnabled ? commentConfig?.type : ""; ---- -{isCommentEnabled && ( -
    - {commentService === 'twikoo' && } - {commentService === 'artalk' && } -
    -)} \ No newline at end of file diff --git a/src/components/control/BackToTop.astro b/src/components/control/BackToTop.astro deleted file mode 100644 index 0a93af4..0000000 --- a/src/components/control/BackToTop.astro +++ /dev/null @@ -1,49 +0,0 @@ ---- -import { Icon } from "astro-icon/components"; ---- - - - - - - - diff --git a/src/components/control/ButtonLink.astro b/src/components/control/ButtonLink.astro deleted file mode 100644 index 603bec2..0000000 --- a/src/components/control/ButtonLink.astro +++ /dev/null @@ -1,43 +0,0 @@ ---- -interface Props { - badge?: string; - url?: string; - label?: string; -} -const { badge, url, label } = Astro.props; ---- - - - diff --git a/src/components/control/ButtonTag.astro b/src/components/control/ButtonTag.astro deleted file mode 100644 index 3af7533..0000000 --- a/src/components/control/ButtonTag.astro +++ /dev/null @@ -1,13 +0,0 @@ ---- -interface Props { - size?: string; - dot?: boolean; - href?: string; - label?: string; -} -const { dot, href, label }: Props = Astro.props; ---- - - {dot &&
    } - -
    diff --git a/src/components/control/Pagination.astro b/src/components/control/Pagination.astro deleted file mode 100644 index cd1ff23..0000000 --- a/src/components/control/Pagination.astro +++ /dev/null @@ -1,88 +0,0 @@ ---- -import type { Page } from "astro"; -import { Icon } from "astro-icon/components"; -import { cardConfig } from "../../config"; -import { url } from "../../utils/url-utils"; - -interface Props { - page: Page; - class?: string; - style?: string; -} - -const { page, style } = Astro.props; - -const HIDDEN = -1; - -const className = Astro.props.class; - -const ADJ_DIST = 2; -const VISIBLE = ADJ_DIST * 2 + 1; - -// for test -let count = 1; -let l = page.currentPage; -let r = page.currentPage; -while (0 < l - 1 && r + 1 <= page.lastPage && count + 2 <= VISIBLE) { - count += 2; - l--; - r++; -} -while (0 < l - 1 && count < VISIBLE) { - count++; - l--; -} -while (r + 1 <= page.lastPage && count < VISIBLE) { - count++; - r++; -} - -let pages: number[] = []; -if (l > 1) pages.push(1); -if (l === 3) pages.push(2); -if (l > 3) pages.push(HIDDEN); -for (let i = l; i <= r; i++) pages.push(i); -if (r < page.lastPage - 2) pages.push(HIDDEN); -if (r === page.lastPage - 2) pages.push(page.lastPage - 1); -if (r < page.lastPage) pages.push(page.lastPage); - -const getPageUrl = (p: number) => { - if (p === 1) return "/"; - return `/${p}/`; -}; ---- - -
    - - - -
    - {pages.map((p) => { - if (p == HIDDEN) - return ; - if (p == page.currentPage) - return
    - {p} -
    - return {p} - })} -
    - - - -
    - - \ No newline at end of file diff --git a/src/components/misc/AISummary.astro b/src/components/misc/AISummary.astro deleted file mode 100644 index 9cf81bc..0000000 --- a/src/components/misc/AISummary.astro +++ /dev/null @@ -1,124 +0,0 @@ ---- -export interface Props { - content: string; - class?: string; -} - -const { content, class: className } = Astro.props; - -// 如果没有内容,不渲染组件 -if (!content || content.trim() === "") { - return null; -} ---- - -{content && ( -
    -
    -
    - 🤖 - AI 摘要 -
    -
    Allen AI
    -
    -
    -
    -)} - - \ No newline at end of file diff --git a/src/components/misc/BannerWrapper.astro b/src/components/misc/BannerWrapper.astro deleted file mode 100644 index c30ab44..0000000 --- a/src/components/misc/BannerWrapper.astro +++ /dev/null @@ -1,60 +0,0 @@ ---- -import { siteConfig } from "../../config"; -import ImageWrapper from "./ImageWrapper.astro"; - -interface Props { - id?: string; - class?: string; - alt?: string; -} - -const { id, alt } = Astro.props; -const className = Astro.props.class; -const bannerConfig = siteConfig.banner; -const isVideo = bannerConfig.type === "video"; -const positionClass = { - top: "object-top", - center: "object-center", - bottom: "object-bottom", -}[bannerConfig.position || "center"]; ---- - -
    - {isVideo ? ( - - ) : ( - - )} - - {bannerConfig.text?.enable && ( -
    -
    - {bannerConfig.text.title && ( -

    - {bannerConfig.text.title} -

    - )} - {bannerConfig.text.subtitle && ( -

    - {bannerConfig.text.subtitle} -

    - )} -
    -
    - )} -
    \ No newline at end of file diff --git a/src/components/misc/Countdown.astro b/src/components/misc/Countdown.astro deleted file mode 100644 index 2db65b6..0000000 --- a/src/components/misc/Countdown.astro +++ /dev/null @@ -1,276 +0,0 @@ ---- -interface Props { - targetDate: string; // 目标日期,格式为 'YYYY-MM-DD' - startDate: string; // 起始日期,格式为 'YYYY-MM-DD' - title?: string; // 倒计时标题,可选 -} - -const { targetDate, startDate, title = "倒计时" } = Astro.props; - -// 格式化日期为"年月日"格式 -function formatDateToChinese(dateStr: string) { - const [year, month, day] = dateStr.split("-"); - return `${year}年${month}月${day}日`; -} - -const startDateChinese = formatDateToChinese(startDate); -const targetDateChinese = formatDateToChinese(targetDate); ---- - -
    -

    {title}

    -

    {startDateChinese}-{targetDateChinese}

    - -
    -
    -
    0%
    -
    - -
    -
    - 0 - -
    -
    - 0 - -
    -
    - 0 - -
    -
    - 0 - -
    -
    - 0 - -
    -
    - 0 - -
    -
    -
    - - - - \ No newline at end of file diff --git a/src/components/misc/ImageWrapper.astro b/src/components/misc/ImageWrapper.astro deleted file mode 100644 index af9f645..0000000 --- a/src/components/misc/ImageWrapper.astro +++ /dev/null @@ -1,136 +0,0 @@ ---- -import path from "node:path"; - -interface Props { - id?: string; - src: string; - class?: string; - alt?: string; - position?: string; - basePath?: string; -} - -import { Image } from "astro:assets"; -import { url } from "../../utils/url-utils"; - -const { id, src, alt, position = "center", basePath = "/" } = Astro.props; -const className = Astro.props.class; - -const isLocal = !( - src.startsWith("/") || - src.startsWith("http") || - src.startsWith("https") || - src.startsWith("data:") -); -const isPublic = src.startsWith("/"); - -// TODO temporary workaround for images dynamic import -// https://github.com/withastro/astro/issues/3373 -// biome-ignore lint/suspicious/noImplicitAnyLet: -let img; -if (isLocal) { - const files = import.meta.glob("../../**", { - import: "default", - }); - let normalizedPath = path - .normalize(path.join("../../", basePath, src)) - .replace(/\\/g, "/"); - const file = files[normalizedPath]; - if (!file) { - console.error( - `\n[ERROR] Image file not found: ${normalizedPath.replace("../../", "src/")}`, - ); - } - img = await file(); -} - -const imageClass = "w-full h-full object-cover"; -const imageStyle = `object-position: ${position}`; ---- -
    -
    - - -
    -
    -
    - - {isLocal && img && ( - {alt - )} - {!isLocal && ( - {alt - )} -
    - - diff --git a/src/components/misc/License.astro b/src/components/misc/License.astro deleted file mode 100644 index fba0a7a..0000000 --- a/src/components/misc/License.astro +++ /dev/null @@ -1,43 +0,0 @@ ---- -import { Icon } from "astro-icon/components"; -import { licenseConfig, profileConfig } from "../../config"; -import I18nKey from "../../i18n/i18nKey"; -import { i18n } from "../../i18n/translation"; -import { formatDateToYYYYMMDD } from "../../utils/date-utils"; - -interface Props { - title: string; - slug: string; - pubDate: Date; - class: string; -} - -const { title, pubDate } = Astro.props; -const className = Astro.props.class; -const profileConf = profileConfig; -const licenseConf = licenseConfig; -const postUrl = decodeURIComponent(Astro.url.toString()); ---- -
    -
    - {title} -
    - - {postUrl} - -
    -
    -
    {i18n(I18nKey.author)}
    -
    {profileConf.name}
    -
    -
    -
    {i18n(I18nKey.publishedAt)}
    -
    {formatDateToYYYYMMDD(pubDate)}
    -
    -
    -
    {i18n(I18nKey.license)}
    - {licenseConf.name} -
    -
    - -
    diff --git a/src/components/misc/Markdown.astro b/src/components/misc/Markdown.astro deleted file mode 100644 index 33415d0..0000000 --- a/src/components/misc/Markdown.astro +++ /dev/null @@ -1,43 +0,0 @@ ---- -import "@fontsource-variable/jetbrains-mono"; -import "@fontsource-variable/jetbrains-mono/wght-italic.css"; - -interface Props { - class: string; -} -const className = Astro.props.class; ---- -
    - - - -
    - - diff --git a/src/components/misc/Tags.astro b/src/components/misc/Tags.astro deleted file mode 100644 index e69de29..0000000 diff --git a/src/components/widget/AlbumCard.astro b/src/components/widget/AlbumCard.astro deleted file mode 100644 index ab668ff..0000000 --- a/src/components/widget/AlbumCard.astro +++ /dev/null @@ -1,76 +0,0 @@ ---- -import { Icon } from "astro-icon/components"; - -interface Props { - album: { - id: number; - title: string; - slug: string; - description: string; - cover: string; - tags: string[]; - created: string; - images: any[]; - }; - class?: string; -} - -const { album, class: className } = Astro.props; ---- - - - -
    - {album.title} - -
    - - {album.images.length} -
    -
    - - -
    -

    - {album.title} -

    -

    - {album.description} -

    - - -
    - {album.tags.slice(0, 3).map((tag) => ( - - {tag} - - ))} - {album.tags.length > 3 && ( - - +{album.tags.length - 3} - - )} -
    - - -
    - - {new Date(album.created).toLocaleDateString('zh-CN')} -
    -
    -
    - - diff --git a/src/components/widget/ArtalkStats.svelte b/src/components/widget/ArtalkStats.svelte deleted file mode 100644 index 895d578..0000000 --- a/src/components/widget/ArtalkStats.svelte +++ /dev/null @@ -1,56 +0,0 @@ - - -{#if !loading && commentConfig.type === 'artalk'} -
    - - - - - - {pageViews} - - - - - - {commentCount} - -
    -{/if} \ No newline at end of file diff --git a/src/components/widget/Categories.astro b/src/components/widget/Categories.astro deleted file mode 100644 index b44e9da..0000000 --- a/src/components/widget/Categories.astro +++ /dev/null @@ -1,35 +0,0 @@ ---- -import I18nKey from "../../i18n/i18nKey"; -import { i18n } from "../../i18n/translation"; -import { getCategoryList } from "../../utils/content-utils"; -import ButtonLink from "../control/ButtonLink.astro"; -import WidgetLayout from "./WidgetLayout.astro"; - -const categories = await getCategoryList(); - -const COLLAPSED_HEIGHT = "7.5rem"; -const COLLAPSE_THRESHOLD = 5; - -const isCollapsed = categories.length >= COLLAPSE_THRESHOLD; - -interface Props { - class?: string; - style?: string; -} -const className = Astro.props.class; -const style = Astro.props.style; ---- - - - {categories.map((c) => - - {c.name.trim()} - - )} - \ No newline at end of file diff --git a/src/components/widget/DisplaySettings.svelte b/src/components/widget/DisplaySettings.svelte deleted file mode 100644 index 3af0943..0000000 --- a/src/components/widget/DisplaySettings.svelte +++ /dev/null @@ -1,93 +0,0 @@ - - -
    -
    -
    - {i18n(I18nKey.themeColor)} - -
    -
    -
    - {hue} -
    -
    -
    -
    - -
    -
    - - - diff --git a/src/components/widget/Hitokoto.astro b/src/components/widget/Hitokoto.astro deleted file mode 100644 index 11773a3..0000000 --- a/src/components/widget/Hitokoto.astro +++ /dev/null @@ -1,167 +0,0 @@ ---- -import { Icon } from "astro-icon/components"; -import I18nKey from "../../i18n/i18nKey"; -import { i18n } from "../../i18n/translation"; -import WidgetLayout from "./WidgetLayout.astro"; - -interface Props { - class?: string; - style?: string; -} -const className = Astro.props.class; -const style = Astro.props.style; ---- - - -
    -
    -
    -
    - - 加载中... -
    -
    - -
    -
    -
    - - - - \ No newline at end of file diff --git a/src/components/widget/ImageGrid.astro b/src/components/widget/ImageGrid.astro deleted file mode 100644 index 1dd80ab..0000000 --- a/src/components/widget/ImageGrid.astro +++ /dev/null @@ -1,106 +0,0 @@ ---- -interface Props { - images: Array<{ - id: string; - url: string; - title: string; - description?: string; - tags?: string[]; - date: string; - }>; -} - -const { images } = Astro.props; ---- - - - - \ No newline at end of file diff --git a/src/components/widget/MobileSidebar.astro b/src/components/widget/MobileSidebar.astro deleted file mode 100644 index 035e4bc..0000000 --- a/src/components/widget/MobileSidebar.astro +++ /dev/null @@ -1,261 +0,0 @@ ---- -import { Icon } from "astro-icon/components"; -import { navBarConfig, profileConfig } from "../../config"; -import { LinkPresets } from "../../constants/link-presets"; -import { LinkPreset, type NavBarLink } from "../../types/config"; -import { url } from "../../utils/url-utils"; -import ImageWrapper from "../misc/ImageWrapper.astro"; - -let links: NavBarLink[] = navBarConfig.links.map( - (item: NavBarLink | LinkPreset): NavBarLink => { - if (typeof item === "number") { - return LinkPresets[item]; - } - return item; - }, -); - -const config = profileConfig; ---- - - - - - - \ No newline at end of file diff --git a/src/components/widget/NavMenuPanel.astro b/src/components/widget/NavMenuPanel.astro deleted file mode 100644 index a405b77..0000000 --- a/src/components/widget/NavMenuPanel.astro +++ /dev/null @@ -1,126 +0,0 @@ ---- -import { Icon } from "astro-icon/components"; -import { type NavBarLink } from "../../types/config"; -import { url } from "../../utils/url-utils"; - -interface Props { - links: NavBarLink[]; -} - -const links = Astro.props.links; ---- - - - - - \ No newline at end of file diff --git a/src/components/widget/Profile.astro b/src/components/widget/Profile.astro deleted file mode 100644 index 8f1945a..0000000 --- a/src/components/widget/Profile.astro +++ /dev/null @@ -1,85 +0,0 @@ ---- -import { Icon } from "astro-icon/components"; -import { profileConfig } from "../../config"; -import { - getCategoryList, - getSortedPosts, - getTagList, -} from "../../utils/content-utils"; -import { url } from "../../utils/url-utils"; -import ImageWrapper from "../misc/ImageWrapper.astro"; - -const config = profileConfig; - -// 获取统计数据 -const posts = await getSortedPosts(); -const totalPosts = posts.length; - -const tagList = await getTagList(); -const totalTags = tagList.length; - -const categoryList = await getCategoryList(); -const totalCategories = categoryList.length; ---- -
    - -
    - - -
    - -
    -
    -
    {config.name}
    -
    -
    {config.bio}
    -
    - {config.links.length > 1 && config.links.map(item => - - - - )} - {config.links.length == 1 && - - {config.links[0].name} - } -
    - - - {config.showStats && ( -
    - {config.statsConfig?.showPosts && ( -
    -
    {totalPosts}
    -
    文章
    -
    - )} - {config.statsConfig?.showTags && ( -
    -
    {totalTags}
    -
    标签
    -
    - )} - {config.statsConfig?.showCategories && ( -
    -
    {totalCategories}
    -
    分类
    -
    - )} -
    - )} -
    -
    \ No newline at end of file diff --git a/src/components/widget/SideBar.astro b/src/components/widget/SideBar.astro deleted file mode 100644 index 0eec0b7..0000000 --- a/src/components/widget/SideBar.astro +++ /dev/null @@ -1,40 +0,0 @@ ---- -import type { MarkdownHeading } from "astro"; -import { sidebarConfig } from "../../config"; -import Categories from "./Categories.astro"; -import Hitokoto from "./Hitokoto.astro"; -import Profile from "./Profile.astro"; -import Tag from "./Tags.astro"; -import WidgetLayout from "./WidgetLayout.astro"; - -interface Props { - class?: string; - headings?: MarkdownHeading[]; -} - -const className = Astro.props.class; ---- -{sidebarConfig.enable && ( - -)} \ No newline at end of file diff --git a/src/components/widget/TOC.astro b/src/components/widget/TOC.astro deleted file mode 100644 index a5ed0f8..0000000 --- a/src/components/widget/TOC.astro +++ /dev/null @@ -1,264 +0,0 @@ ---- -import type { MarkdownHeading } from "astro"; -import { siteConfig } from "../../config"; - -interface Props { - class?: string; - headings: MarkdownHeading[]; -} - -let { headings = [] } = Astro.props; - -let minDepth = 10; -for (const heading of headings) { - minDepth = Math.min(minDepth, heading.depth); -} - -const className = Astro.props.class; - -const isPostsRoute = Astro.url.pathname.startsWith("/posts/"); - -const removeTailingHash = (text: string) => { - let lastIndexOfHash = text.lastIndexOf("#"); - if (lastIndexOfHash !== text.length - 1) { - return text; - } - - return text.substring(0, lastIndexOfHash); -}; - -let heading1Count = 1; - -const maxLevel = siteConfig.toc.depth; ---- -{isPostsRoute && - - {headings.filter((heading) => heading.depth < minDepth + maxLevel).map((heading) => - -
    - {heading.depth == minDepth && heading1Count++} - {heading.depth == minDepth + 1 &&
    } - {heading.depth == minDepth + 2 &&
    } -
    -
    {removeTailingHash(heading.text)}
    -
    - )} -
    -
    } - - \ No newline at end of file diff --git a/src/components/widget/Tags.astro b/src/components/widget/Tags.astro deleted file mode 100644 index 5ed0b62..0000000 --- a/src/components/widget/Tags.astro +++ /dev/null @@ -1,31 +0,0 @@ ---- - -import I18nKey from "../../i18n/i18nKey"; -import { i18n } from "../../i18n/translation"; -import { getTagList } from "../../utils/content-utils"; -import { getTagUrl } from "../../utils/url-utils"; -import ButtonTag from "../control/ButtonTag.astro"; -import WidgetLayout from "./WidgetLayout.astro"; - -const tags = await getTagList(); - -const COLLAPSED_HEIGHT = "7.5rem"; - -const isCollapsed = tags.length >= 20; - -interface Props { - class?: string; - style?: string; -} -const className = Astro.props.class; -const style = Astro.props.style; ---- - -
    - {tags.map(t => ( - - {t.name.trim()} - - ))} -
    -
    \ No newline at end of file diff --git a/src/components/widget/TwikooStats.svelte b/src/components/widget/TwikooStats.svelte deleted file mode 100644 index dcdbcf1..0000000 --- a/src/components/widget/TwikooStats.svelte +++ /dev/null @@ -1,82 +0,0 @@ - - -
    -
    访问统计
    - -
    - {#if loading} -
    -
    - - - - - 加载中... -
    -
    - {:else if error} -
    -
    - - - - {error} -
    -
    - {:else} -
    -
    - 博客访问量: - {totalViews > 0 ? totalViews : '统计中'} -
    -
    - 数据来源: - Twikoo -
    -
    - {/if} -
    -
    \ No newline at end of file diff --git a/src/components/widget/WidgetLayout.astro b/src/components/widget/WidgetLayout.astro deleted file mode 100644 index ac62d23..0000000 --- a/src/components/widget/WidgetLayout.astro +++ /dev/null @@ -1,99 +0,0 @@ ---- -import { Icon } from "astro-icon/components"; -import I18nKey from "../../i18n/i18nKey"; -import { i18n } from "../../i18n/translation"; - -interface Props { - id: string; - name?: string; - isCollapsed?: boolean; - collapsedHeight?: string; - class?: string; - style?: string; -} -const { id, name, isCollapsed, collapsedHeight, style } = Astro.props; -const className = Astro.props.class; ---- - -
    {name}
    -
    - -
    - {isCollapsed &&
    - -
    } -
    - - - - \ No newline at end of file diff --git a/src/config.ts b/src/config.ts deleted file mode 100644 index cfaf094..0000000 --- a/src/config.ts +++ /dev/null @@ -1,338 +0,0 @@ -import { AUTO_MODE } from "./constants/constants"; -import type { - BeautifyConfig, - CommentConfig, - ExpressiveCodeConfig, - LicenseConfig, - NavBarConfig, - ProfileConfig, - SidebarConfig, - SiteConfig, -} from "./types/config"; - -// ---------------------------------------------------------- - -export const siteConfig: SiteConfig = { - title: "Allen2030's Blog", - subtitle: "", - lang: "zh_CN", // 可选值: 'en', 'zh_CN', 'zh_TW', 'ja', 'ko', 'es', 'th' - themeColor: { - hue: 260, // 主题色默认色调,取值范围0-360。例如红色:0,蓝绿色:200,青色:250,粉色:345 - fixed: true, // 对访客隐藏主题色选择器 - }, - theme: AUTO_MODE, // 主题模式: AUTO_MODE(默认), LIGHT_MODE(强制浅色), DARK_MODE(强制深色) - banner: { - enable: true, - type: "image", // 'image' 或 'video',指定banner类型 - src: "https://api.fis.ink/mc", // 相对于/src目录的路径。如果以'/'开头则表示相对于/public目录 - //背景在src\layouts\Layout.astro中 - position: "center", // 等同于CSS的object-position属性,仅支持'top','center','bottom'。默认为'center' - credit: { - enable: false, // 是否显示横幅图片的版权信息 - text: "Steam @基里曼的蓝精灵", // 要显示的版权文本 - url: "https://steamcommunity.com/sharedfiles/filedetails/?id=3426980000", // (可选) 原作品或艺术家页面的URL链接 - }, - text: { - enable: true, // 是否在banner中显示文字 - title: "Hello👋", // banner主标题 - subtitle: "Welcome to my blog", // banner副标题 - }, - }, - pageBackground: { - enable: true, - type: "image", // 'image' 或 'video' - src: "https://api.fis.ink/mc", - //https://www.fis.ink/wj/video/mc.mp4 - //https://www.fis.ink/wj/video/xingjianya.mp4 - }, - toc: { - enable: true, // 在文章右侧显示目录 - depth: 2, // 目录中显示的最大标题层级,取值范围1-3 - }, - post: { - showCover: false, // 是否在文章页面显示封面 - }, - favicon: [ - // 保留空数组则使用默认favicon - { - src: "https://img.scdn.io/i/696e0f2b20919_1768820523.webp", // favicon路径,相对于/public目录 - //theme: 'light', // (可选) 'light'或'dark',仅在为浅色和深色模式设置了不同favicon时使用 - //sizes: '32x32', // (可选) favicon尺寸,仅在设置了不同尺寸的favicon时使用 - }, - ], -}; - -// ---------------------------------------------------------- - -export const navBarConfig: NavBarConfig = { - links: [ - { - name: "归档", - url: "/archive/", - icon: "fa6-solid:box-archive", - }, - { - name: "友链", - url: "#", - icon: "fa6-solid:link", - children: [ - { - name: "友链", - url: "/friends/", - icon: "fa6-solid:user-group", - }, - { - name: "朋友圈", - url: "/circle/", - icon: "fa6-solid:circle-nodes", - }, - { - name: "留言板", - url: "/comments/", - icon: "fa6-solid:message", - }, - ], - }, - { - name: "其他", - url: "#", - icon: "fa6-solid:chart-line", - children: [ - { - name: "服务监控", - url: "https://status.allen2030.com/status/web", - external: true, - icon: "fa6-solid:chart-line", - }, - { - name: "节点监控", - url: "https://monitor.allen2030.com", - external: true, - icon: "fa6-solid:chart-line", - }, - ], - }, - { - name: "我的", - url: "#", - icon: "fa6-solid:user", - children: [ - { - name: "相册", - url: "/album/", - icon: "material-symbols:photo-library", - }, - { - name: "瞬间", - url: "/essay/", - icon: "material-symbols:photo-camera", - }, - { - name: "关于", - url: "/about/", - icon: "fa6-solid:user", - }, - { - name: "主页", - url: "https://www.allen2030.com", - external: true, - icon: "material-symbols:home", - }, - ], - }, - ], - showHomeIcon: false, // 控制是否显示home图标 - searchLeftIcons: [ - { - name: "travellings", - url: "https://www.travellings.cn/go.html", - icon: "fa6-solid:train-subway", - external: true, - }, - { - name: "rss", - url: "/rss.xml", - icon: "ic:twotone-rss-feed", - external: true, - }, - ], -}; - -// ---------------------------------------------------------- - -export const profileConfig: ProfileConfig = { - avatar: "https://img.scdn.io/i/69451d727217f_1766137202.png", // 相对于/src目录的路径。如果以'/'开头则表示相对于/public目录 - name: "Allen2030", - bio: "摸摸猪头,快乐不愁", - links: [ - { - name: "RSS", - icon: "ic:twotone-rss-feed", - // 图标代码请访问 https://icones.js.org/ - // 如果尚未包含相应的图标集,您需要先安装 - // `pnpm add @iconify-json/` - url: "/rss.xml", - }, - { - name: "GitHub", - icon: "fa6-brands:github", - url: "https://github.com/duancyblog", - }, - ], - showStats: true, // 统计信息总开关 - statsConfig: { - showPosts: true, // 是否显示文章数 - showTags: true, // 是否显示标签数 - showCategories: true, // 是否显示分类数 - }, -}; - -// ---------------------------------------------------------- - -export const licenseConfig: LicenseConfig = { - enable: true, - name: "CC BY-NC-SA 4.0", - url: "https://creativecommons.org/licenses/by-nc-sa/4.0/", -}; - -// ---------------------------------------------------------- - -export const expressiveCodeConfig: ExpressiveCodeConfig = { - // 注意:某些样式(如背景色)会被覆盖,请查看astro.config.mjs文件 - // 请选择深色主题,因为当前博客主题仅支持深色背景 - theme: "github-dark", -}; - -// ---------------------------------------------------------- - -export const commentConfig: CommentConfig = { - enable: true, - type: "twikoo", - twikoo: { - envId: "https://twikoo.allen2030.com", - }, - artalk: { - server: "https://artalk.allen2030.com", - site: " ", - darkMode: false, // 强制浅色模式,不跟随浏览器主题 - }, -}; - -// ---------------------------------------------------------- - -//不生效就去改 /tailwind.config.cjs -export const screensConfig = { - sm: "768px", - md2: "726px", - md: "924px", - lg: "1400px", - xl: "1536px", -}; - -// ---------------------------------------------------------- - -export const cardConfig = { - opacity: 0.85, // 卡片半透明度,取值范围0-1 -}; - -// ---------------------------------------------------------- - -export const layoutConfig = { - postList: { - type: "grid", // "grid" 或 "list",网格布局或列表布局 - grid: { - columns: { - sm: 1, // 小屏幕列数 - md2: 2, // 726px以上显示2列 - md: 2, // 中屏幕列数 - lg: 3, // 大屏幕列数,最大为3,超出会变成2个每行 - }, - gap: "gap-4", // 网格间距,对应Tailwind的gap-4 - }, - }, - friends: { - grid: { - columns: { - sm: 1, // 小屏幕列数 - md: 2, // 中屏幕列数 - lg: 3, // 大屏幕列数 - }, - gap: "gap-x-6 gap-y-8", // 网格间距 - }, - }, -}; - -// 使用示例: -// 1. 网格布局:type: "grid" -// 2. 列表布局:type: "list" -// 3. 自定义网格列数:修改 columns 中的 sm/md/lg 值 -// 4. 调整间距:修改 gap 值(1-12) - -// ---------------------------------------------------------- - -//好像不可用 -export const beautifyConfig: BeautifyConfig = { - enable: true, - field: "post", - titlePrefixIcon: "\uf863", - titlePrefixIconColor: "#ff7849", - animation: { - enable: true, - speed: 1.6, - direction: "counterclockwise", - rotate: true, - }, - hover: { - enable: true, - slowSpeed: 3.2, - color: "#49b1f5", - }, - colors: { - h1: "#ef50a8", - h2: "#fb7061", - h3: "#ffbf00", - h4: "#a9e000", - h5: "#57c850", - h6: "#5ec1e0", - }, - sizes: { - h1: "1.3rem", - h2: "1.1rem", - h3: "0.95rem", - h4: "0.8rem", - h5: "0.7rem", - h6: "0.66rem", - }, -}; - -// ---------------------------------------------------------- - -// 鼠标样式配置 -export const cursorConfig = { - overrideDefault: false, // 是否覆盖访问者系统默认鼠标样式 (false=尊重用户设置, true=强制覆盖) -}; - -// 使用说明: -// - false (推荐): 尊重访问者的系统鼠标设置,不强制覆盖 -// - true: 强制覆盖访问者的默认鼠标样式为自定义样式 - -// ---------------------------------------------------------- - -// 侧边栏配置 -export const sidebarConfig: SidebarConfig = { - enable: true, // 侧边栏总开关,控制整个侧边栏是否显示 - cards: { - profile: true, // 个人资料卡片 - categories: true, // 分类卡片 - tags: true, // 标签卡片 - hitokoto: true, // 一言卡片 - advertisement: false, // 广告卡片 - }, - advertisement: { - src: "https://cdn.fis.ink/img/2025/04/19/680346cf235f8.png", // 广告图片链接 - url: "https://cloud.zyidc.net/aff/MYIMKXBB", // 广告跳转链接 - alt: "广告", // 图片alt文本 - showLabel: false, // 是否显示广告标识 - labelText: "广告", // 广告标识文本 - }, -}; diff --git a/src/constants/constants.ts b/src/constants/constants.ts deleted file mode 100644 index 997ce0d..0000000 --- a/src/constants/constants.ts +++ /dev/null @@ -1,17 +0,0 @@ -export const PAGE_SIZE = 12; - -export const LIGHT_MODE = "light", - DARK_MODE = "dark", - AUTO_MODE = "auto"; -export const DEFAULT_THEME = AUTO_MODE; - -// Banner height unit: vh -export const BANNER_HEIGHT = 45; -export const BANNER_HEIGHT_EXTEND = 35; -export const BANNER_HEIGHT_HOME = BANNER_HEIGHT + BANNER_HEIGHT_EXTEND; - -// The height the main panel overlaps the banner, unit: rem -export const MAIN_PANEL_OVERLAPS_BANNER_HEIGHT = 3.5; - -// Page width: rem -export const PAGE_WIDTH = 90; diff --git a/src/constants/icon.ts b/src/constants/icon.ts deleted file mode 100644 index f03efba..0000000 --- a/src/constants/icon.ts +++ /dev/null @@ -1,44 +0,0 @@ -import type { Favicon } from "@/types/config.ts"; - -export const defaultFavicons: Favicon[] = [ - { - src: "/favicon/favicon-light-32.png", - theme: "light", - sizes: "32x32", - }, - { - src: "/favicon/favicon-light-128.png", - theme: "light", - sizes: "128x128", - }, - { - src: "/favicon/favicon-light-180.png", - theme: "light", - sizes: "180x180", - }, - { - src: "/favicon/favicon-light-192.png", - theme: "light", - sizes: "192x192", - }, - { - src: "/favicon/favicon-dark-32.png", - theme: "dark", - sizes: "32x32", - }, - { - src: "/favicon/favicon-dark-128.png", - theme: "dark", - sizes: "128x128", - }, - { - src: "/favicon/favicon-dark-180.png", - theme: "dark", - sizes: "180x180", - }, - { - src: "/favicon/favicon-dark-192.png", - theme: "dark", - sizes: "192x192", - }, -]; diff --git a/src/constants/link-presets.ts b/src/constants/link-presets.ts deleted file mode 100644 index ed103da..0000000 --- a/src/constants/link-presets.ts +++ /dev/null @@ -1,31 +0,0 @@ -import I18nKey from "@i18n/i18nKey"; -import { i18n } from "@i18n/translation"; -import { LinkPreset, type NavBarLink } from "@/types/config"; - -export const LinkPresets: { [key in LinkPreset]: NavBarLink } = { - [LinkPreset.Home]: { - name: i18n(I18nKey.home), - url: "/", - icon: "fa6-solid:house", - }, - [LinkPreset.About]: { - name: i18n(I18nKey.about), - url: "/about/", - icon: "fa6-solid:user", - }, - [LinkPreset.Archive]: { - name: i18n(I18nKey.archive), - url: "/archive/", - icon: "fa6-solid:box-archive", - }, - [LinkPreset.Friends]: { - name: i18n(I18nKey.friends), - url: "/friends/", - icon: "fa6-solid:user-group", - }, - [LinkPreset.Moments]: { - name: i18n(I18nKey.friendsCircle), - url: "/circle/", - icon: "fa6-solid:circle-nodes", - }, -}; diff --git a/src/content/config.ts b/src/content/config.ts deleted file mode 100644 index f4ead6d..0000000 --- a/src/content/config.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { defineCollection, z } from "astro:content"; - -const postsCollection = defineCollection({ - schema: z.object({ - title: z.string(), - published: z.date(), - updated: z.date().optional(), - draft: z.boolean().optional().default(false), - description: z.string().optional().default(""), - image: z.string().optional().default(""), - tags: z.array(z.string()).optional().default([]), - category: z.string().optional().nullable().default(""), - lang: z.string().optional().default(""), - ai: z.string().optional().default(""), - customSlug: z.string().optional(), // 自定义文章路径,覆盖默认的文件名作为路径 - - /* For internal use */ - prevTitle: z.string().default(""), - prevSlug: z.string().default(""), - nextTitle: z.string().default(""), - nextSlug: z.string().default(""), - }), -}); -export const collections = { - posts: postsCollection, -}; diff --git "a/src/content/posts/12\346\234\210\345\210\260\344\272\206.md" "b/src/content/posts/12\346\234\210\345\210\260\344\272\206.md" deleted file mode 100644 index 42bdfea..0000000 --- "a/src/content/posts/12\346\234\210\345\210\260\344\272\206.md" +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: 12月到了 -published: 2024-12-03 -description: 12月到了我要更加努力 -image: https://imgse.fishcpy.top/upload/675da21777214.png -tags: [加油] -category: 加油 -draft: false -customSlug: "15" ---- -# 12月到了,我要更加努力💪 \ No newline at end of file diff --git "a/src/content/posts/25.5.3-5.4\350\242\253\346\224\273\345\207\273\347\273\217\350\277\207.md" "b/src/content/posts/25.5.3-5.4\350\242\253\346\224\273\345\207\273\347\273\217\350\277\207.md" deleted file mode 100644 index 5be856a..0000000 --- "a/src/content/posts/25.5.3-5.4\350\242\253\346\224\273\345\207\273\347\273\217\350\277\207.md" +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: 25.5.3-5.4被攻击经过 -published: 2025-05-05 -description: 2025 年 5 月初,服务器突遭大规模访问请求,疑似遭受 DDoS 攻击。初期由免费 CDN 托底防御,后通过转移至 Cloudflare 并开启限流策略,成功缓解流量压力并终止攻击。本文记录整个过程与应对措施,供有类似需求的站长参考。 -image: https://cdn.fis.ink/cdn/2025/08/24/68aaa856c909c.webp -tags: [被攻击, 安全] -category: 被攻击 -draft: false -customSlug: "5" ---- - -## 经过 - -大概在2025年5月3日下午服务器开始被攻击,刚开始全靠我使用的cdn硬抗。 - -cdn数据 - -第二天也就是5月4日,cdn流量在短时间内达到了至少70GB,毕竟我使用的是免费cdn,为了减少流量我将部分域名转移到cloudflare CDN并进行了优选,并且加入了请求限制。 - -![](https://imgse.fishcpy.top/upload/image-BXsQ.png) - -在5月4日上午攻击结束。 -![image.png](https://cdn.fis.ink/img/2025/05/05/6818a818b2bd1.png) - -cloudflare数据 \ No newline at end of file diff --git "a/src/content/posts/Uptime Kuma\347\233\221\346\216\247\347\276\216\345\214\226.md" "b/src/content/posts/Uptime Kuma\347\233\221\346\216\247\347\276\216\345\214\226.md" deleted file mode 100644 index d02873b..0000000 --- "a/src/content/posts/Uptime Kuma\347\233\221\346\216\247\347\276\216\345\214\226.md" +++ /dev/null @@ -1,296 +0,0 @@ ---- -title: Uptime Kuma监控美化 -published: 2025-08-09 -description: 这是一个关于部署和美化Uptime Kuma监控面板的分享,内容总结如下:首先介绍了Uptime Kuma的部署,可以通过Docker等平台部署,具体细节见官方GitHub仓库。接着提供了一份自定义CSS,用于美化界面,特点包括浅色和暗色模式切换、自定义颜色变量、背景固定图片、卡片半透明和模糊效果、按钮带玻璃质感、状态指示点和百分比徽章的呼吸动画、响应式移动端布局、隐藏更新时间信息,以及柔和的文字边框阴影等视觉优化。最后给出了示例监控站点链接https://status.fishcpy.top/status/web,适合喜欢暗色模式和现代玻璃拟态风格的用户,方便直接套用或二次修改。 -image: https://cdn.fis.ink/cdn/2025/08/24/68aaa3d59f2fc.webp -tags: [监控, Uptime Kuma] -category: Uptime Kuma -draft: false -customSlug: "29" ---- -# 部署Uptime Kuma - -首先需要部署[Uptime Kuma](https://github.com/louislam/uptime-kuma),可以在docker等平台部署,这里不多说,自己看看github仓库 - -# 美化 - -我这里提供一个css,可以参考一下,我也是用别人css加了一点效果 - -具体效果可以看我的[监控站](https://status.fishcpy.top/status/web) - -```markdown -:root { - --bs-white: #fff; - --bs-dark: #212529; - --bs-green: #008000; - --bs-danger: #dc3545; - --bs-body-bg: #f6f7f9; - --bs-blue: #0d6efd; - --bg-linear-gradient: linear-gradient(180deg, #f6f6f6, #f8f8f8); - --border-solid-main: 2px solid var(--bs-white); - --border-solid-small: 1px solid var(--bs-white); - --shadow-inset-box: inset -4px -4px 12px #f1f1f1, inset 4px 4px 12px #e2e2e2; -} - -.dark { - --bs-white: #2d2d2d; - --bs-dark: #e9ecef; - --bs-green: #00c800; - --bs-danger: #dc3545; - --bs-body-bg: #222222; - --bg-linear-gradient: linear-gradient(180deg, #242424, #222222); - --border-solid-main: 2px solid rgba(45, 45, 45, 0.8); - --border-solid-small: 1px solid rgba(45, 45, 45, 0.6); - --shadow-inset-box: inset -4px -4px 12px #0d0d0d, inset 4px 4px 12px #1a1a1a; -} - -body { - background-color: var(--bs-body-bg) !important; -} - -/* 全局样式 */ -body { - font-family: 'CustomFont', sans-serif; - color: #333; - margin: 0; - padding: 0; - background-image: url('https://api.fis.ink/mc'); - background-attachment: fixed; - background-size: cover; - background-position: center center; - background-repeat: no-repeat; -} - -/* LOGO标题样式 */ -.title-flex { - font-weight: bold; - justify-content: center; -} - -/* 按钮 */ -.btn-info { - color: var(--bs-dark); - background-image: var(--bg-linear-gradient); - border: var(--border-solid-main); - background-color: rgba(255, 255, 255, 0.2) !important; - backdrop-filter: blur(6px); - -webkit-backdrop-filter: blur(6px); - border: 1px solid rgba(255, 255, 255, 0.3); - box-shadow: none !important; -} - -.btn-info:hover { - color: var(--bs-dark); - background-color: transparent; - border-color: unset; - box-shadow: none !important; -} - -/* 服务组标题 */ -.group-title { - font-size: 2.5rem; - font-weight: 700; - opacity: .5; - -webkit-mask: linear-gradient(var(--bs-white) 50%, transparent); - mask: linear-gradient(var(--bs-white) 50%, transparent); - text-stroke: 1px var(--bs-dark); - -webkit-text-stroke: 1px var(--bs-dark); - -webkit-text-fill-color: transparent; -} - -/* 服务项目列表样式 */ -.monitor-list .monitor-list { - min-height: 45px; - display: grid; - grid-template-columns: repeat(2, 1fr); -} - -.monitor-list .item .info { - display: flex; - flex-wrap: wrap; - align-items: center; -} - -.info1::before, -.info1::after { - content: ""; - display: inline-block; - width: 10px; - height: 10px; - background-color: var(--bs-white); - margin: 0.5rem 0; - border-radius: 50%; - animation: breath 1.5s ease-in-out infinite; -} - -.info1::after { - animation-delay: 0.75s; -} - -.info .bg-danger+.item-name { - color: var(--bs-red); -} - -.shadow-box { - margin-top: 0 !important; - background-image: var(--bg-linear-gradient); - box-shadow: none !important; -} - -div[data-v-f71ca08e].mb-5:hover .group-title { - -webkit-text-fill-color: var(--bs-dark); -} - -.monitor-list .item { - box-shadow: none !important; -} - -.monitor-list .item:hover { - background-color: rgba(0, 0, 0, 0.5) !important; - box-shadow: none !important; -} - -.dark .monitor-list .item:hover { - background-color: var(--bs-body-bg); - box-shadow: none !important; -} - -/* 服务项目列表标题样式 */ -.item-name { - font-weight: bold; -} - -a { - text-decoration: none !important; -} - -a.item-name:hover { - color: var(--bs-blue) !important; -} - -.overall-status .ok { - color: var(--bs-green) !important; -} - -.hp-bar-big .beat[data-v-636dc6a9] { - background-color: var(--bs-green); -} - -.item .row { - justify-content: space-between; -} - -.info .badge.rounded-pill.bg-primary { - --bg: var(--bs-green); -} - -.info .badge.rounded-pill.bg-danger { - --bg: var(--bs-danger); -} - -.info .badge.rounded-pill { - position: relative; - display: flex; - min-width: auto; - width: 1rem; - margin-left: 0.1rem; - font-size: 0; - justify-content: center; - align-items: center; - background-color: transparent !important; -} - -.info .badge.rounded-pill::before { - position: absolute; - content: ""; - width: 1rem; - height: 1rem; - border-radius: 50%; - background-color: var(--bg); - animation: breath 1.1s ease-in-out infinite; -} - -.info .badge.rounded-pill::after { - content: ""; - width: 0.6rem; - height: 0.6rem; - border-radius: 50%; - background-color: var(--bg); -} - -@keyframes breath { - 0%, 100% { - transform: scale(1); - opacity: 0.2; - } - 50% { - transform: scale(1.2); - opacity: 0; - } -} - -/* 隐藏更新时间 */ -.refresh-info.mb-2 { - display: none; -} - -/* 公共样式优化 */ -.col-md-4 { - width: 50%; -} - -.col-md-8 { - max-width: 50%; - display: flex; - flex-wrap: wrap; - flex-direction: column; -} - -.mb-5 { - margin-bottom: 2rem !important; -} - -/* 底部样式 */ -footer[data-v-b8247e57] { - margin: 1.5rem 0 !important; -} - -footer p { - margin: 0 !important; -} - -/* 适配手机 */ -@media screen and (max-width: 768px) { - .monitor-list .monitor-list { - grid-template-columns: repeat(1, 1fr); - } - .group-title { - font-size: 2rem; - } -} - -/* 全局半透明背景卡片 */ -.shadow-box, -.monitor-list .item { - background-color: rgba(0, 0, 0, 0.4) !important; - backdrop-filter: blur(8px); - -webkit-backdrop-filter: blur(8px); - border: 1px solid rgba(255, 255, 255, 0.1); -} - -/* 暗色模式下卡片透明度调低 */ -.dark .shadow-box, -.dark .monitor-list .item, -.dark .btn-info { - background-color: rgba(34, 34, 34, 0.3) !important; - border: 1px solid rgba(255, 255, 255, 0.1); -} - -/* 标题透明度柔和 */ -.group-title { - opacity: 0.5; -} - -``` - -如果你需要自定义背景可以把上方css中的第36行左右的 https://api.fis.ink/mc 换为自己的图片或图片api \ No newline at end of file diff --git "a/src/content/posts/butterfly\345\257\274\350\210\252\346\240\217\345\233\276\346\240\207\344\277\256\346\224\271.md" "b/src/content/posts/butterfly\345\257\274\350\210\252\346\240\217\345\233\276\346\240\207\344\277\256\346\224\271.md" deleted file mode 100644 index 4346dea..0000000 --- "a/src/content/posts/butterfly\345\257\274\350\210\252\346\240\217\345\233\276\346\240\207\344\277\256\346\224\271.md" +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: butterfly导航栏图标修改 -published: 2024-12-05 -description: 本文介绍如何为导航栏添加图标,通过FontAwesome官网选择合适的图标类名,并替换官方配置中的图标名称,实现自定义导航栏图标的效果。 -image: https://imgse.fishcpy.top/upload/675da73b18591.png -tags: [主题, 解决问题] -category: 解决问题 -draft: false -customSlug: "17" ---- - -# 导航栏图标 - -我看了官方配置文件,里面好像没有关于导航栏图标的描述,修改完效果如下 - - 1 - - 例: 首页: / || fas fa-home - -打开[fontawesome](https://fontawesome.com/) ![](https://blogpng.fishcpy.top/mengmengmao/2024/12/05/6751acefe84bf.png) 点击顶部导航栏的icons ![](https://blogpng.fishcpy.top/mengmengmao/2024/12/05/6751ad8fe887b.png) 比如我在搜索栏里搜索bilibili 点击你想要的图标 ![](https://blogpng.mengmengmao.cn/mengmengmao/2024/12/05/6751ade0a08b5.png) 这里他给了一个html - - 1 - - ``` - -把里面的fa-brands fa-bilibili复制下来 - - 1234 - - # 原来代码首页: / || fas fa-home#修改后首页: / || fa-brands fa-bilibili - -至此修改完毕 \ No newline at end of file diff --git "a/src/content/posts/greasyfork\346\226\260\345\217\257\347\224\250\345\234\260\345\235\200.md" "b/src/content/posts/greasyfork\346\226\260\345\217\257\347\224\250\345\234\260\345\235\200.md" deleted file mode 100644 index a03a7ed..0000000 --- "a/src/content/posts/greasyfork\346\226\260\345\217\257\347\224\250\345\234\260\345\235\200.md" +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: greasyfork新可用地址 -published: 2025-02-13 -description: 本文介绍了 GreasyFork 在中国遭遇 SNI 阻断后提供的最新可用域名和镜像地址,并详细说明了访问限制、使用注意事项以及推荐的 DNS 服务器,确保用户能够稳定访问 GreasyFork 脚本资源。 -image: https://imgse.fishcpy.top/upload/67addc681cf7c.webp -tags: [解决问题] -category: 解决问题 -draft: false -customSlug: "22" ---- - -- 更多请前往github仓库[https://github.com/fishcpy/greasyfork](https://github.com/fishcpy/greasyfork) - - -# 由于greasyfork在中国突然被sni阻断,这里提供一个新地址 - -# 25.3.27更新 - -最新地址: - -[https://greasyfork.dpdns.org](https://greasyfork.dpdns.org) - -长期: - -[https://nextgo.dpdns.org/](https://nextgo.dpdns.org/) - -# 25.2.14更新 - -更新长期地址自动跳转 - -请求地址 [https://nextgo.us.kg/api](https://nextgo.us.kg/api) -例; -原先地址 [https://www.greasyfork.us.kg/zh-CN/scripts/by-site/bilibili.com](https://www.greasyfork.us.kg/zh-CN/scripts/by-site/bilibili.com) -长期自动跳转地址 [https://nextgo.us.kg/api/zh-CN/scripts/by-site/bilibili.com](https://nextgo.us.kg/api/zh-CN/scripts/by-site/bilibili.com) - -使用这个可以长期自动跳转到最新域名 - -## 中文: - -新域名 [https://nextgo.us.kg/](https://nextgo.us.kg/) (此域名为中转,确保以后更换域名不用费劲心思再找) - -它将有以下限制: -1.日本地区ip将会被阻止 -2.繁体中文将会重定向到 [https://greasyfork.org/zh-TW](https://greasyfork.org/zh-TW) -3.由于服务器带宽不高,将会进行人机验证 -4.可能无法登录,ps:没试过 - -此域名为镜像 cn-greasyfork.org - -下载地址为 update.greasyfork.us.kg - -⚠️注意事项: -由于.us.kg域名的特殊性,如果跳反诈基本是由于使用了运营商dns,可以更改dns为其他的,我在这里列几个 -阿里云:223.5.5.5 -腾讯云:119.29.29.29 -114dns:114.114.114.114 -360dns:101.198.198.198 -google:8.8.8.8 -cloudflare:1.1.1.1 - -## English: - -New domain: [https://nextgo.us.kg/](https://nextgo.us.kg/) (This domain name for the transit, to ensure that the future replacement of the domain name do not have to struggle to find again) - -It will have the following restrictions: - -1.IP addresses from Japan will be blocked. -2.Traditional Chinese will be redirected to [https://greasyfork.org/zh-TW](https://greasyfork.org/zh-TW). -3.Due to low server bandwidth, human verification will be implemented. -4.Login may not be possible; PS: not tested. - -This domain is a mirror of cn-greasyfork.org. - -The download address is update.greasyfork.us.kg. - -⚠️ Notices: -Due to the unique nature of the .us.kg domain, if you experience issues with fraud prevention, it is likely due to using your ISP’s DNS. You can change the DNS to others; here are a few options: -Alibaba Cloud: 223.5.5.5 -Tencent Cloud: 119.29.29.29 -114dns: 114.114.114.114 -360dns: 101.198.198.198 -Google: 8.8.8.8 -Cloudflare: 1.1.1.1 \ No newline at end of file diff --git a/src/content/posts/markdown.md b/src/content/posts/markdown.md deleted file mode 100644 index 38055d1..0000000 --- a/src/content/posts/markdown.md +++ /dev/null @@ -1,633 +0,0 @@ ---- -title: Markdown Example -published: 2023-10-01 -description: A simple example of a Markdown blog post. -tags: [Markdown, Blogging, Demo] -category: Examples -draft: false -image: https://cdn.fis.ink/cdn/2025/08/24/68aaa1047d8cf.webp -customSlug: "markdown" ---- -# Simple Guides for Fuwari - -> Cover image source: [Source](https://image.civitai.com/xG1nkqKTMzGDvpLrqFT7WA/208fc754-890d-4adb-9753-2c963332675d/width=2048/01651-1456859105-(colour_1.5),girl,_Blue,yellow,green,cyan,purple,red,pink,_best,8k,UHD,masterpiece,male%20focus,%201boy,gloves,%20ponytail,%20long%20hair,.jpeg) - -This blog template is built with [Astro](https://astro.build/). For the things that are not mentioned in this guide, you may find the answers in the [Astro Docs](https://docs.astro.build/). - -## Front-matter of Posts - -```yaml ---- -title: My First Blog Post -published: 2023-09-09 -description: This is the first post of my new Astro blog. -image: ./cover.jpg -tags: [Foo, Bar] -category: Front-end -draft: false ---- -``` - -| Attribute | Description | -|---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `title` | The title of the post. | -| `published` | The date the post was published. | -| `description` | A short description of the post. Displayed on index page. | -| `image` | The cover image path of the post.
    1. Start with `http://` or `https://`: Use web image
    2. Start with `/`: For image in `public` dir
    3. With none of the prefixes: Relative to the markdown file | -| `tags` | The tags of the post. | -| `category` | The category of the post. | -| `draft` | If this post is still a draft, which won't be displayed. | - -## Where to Place the Post Files - - - -Your post files should be placed in `src/content/posts/` directory. You can also create sub-directories to better organize your posts and assets. - -``` -src/content/posts/ -├── post-1.md -└── post-2/ - ├── cover.png - └── index.md -``` - - - - - - -# markdown.md - - -# An h1 header - -Paragraphs are separated by a blank line. - -2nd paragraph. _Italic_, **bold**, and `monospace`. Itemized lists -look like: - -- this one -- that one -- the other one - -Note that --- not considering the asterisk --- the actual text -content starts at 4-columns in. - -> Block quotes are -> written like so. -> -> They can span multiple paragraphs, -> if you like. - -Use 3 dashes for an em-dash. Use 2 dashes for ranges (ex., "it's all -in chapters 12--14"). Three dots ... will be converted to an ellipsis. -Unicode is supported. ☺ - -## An h2 header - -Here's a numbered list: - -1. first item -2. second item -3. third item - -Note again how the actual text starts at 4 columns in (4 characters -from the left side). Here's a code sample: - - # Let me re-iterate ... - for i in 1 .. 10 { do-something(i) } - -As you probably guessed, indented 4 spaces. By the way, instead of -indenting the block, you can use delimited blocks, if you like: - -``` -define foobar() { - print "Welcome to flavor country!"; -} -``` - -(which makes copying & pasting easier). You can optionally mark the -delimited block for Pandoc to syntax highlight it: - -```python -import time -# Quick, count to ten! -for i in range(10): - # (but not *too* quick) - time.sleep(0.5) - print i -``` - -### An h3 header - -Now a nested list: - -1. First, get these ingredients: - - - carrots - - celery - - lentils - -2. Boil some water. - -3. Dump everything in the pot and follow - this algorithm: - - find wooden spoon - uncover pot - stir - cover pot - balance wooden spoon precariously on pot handle - wait 10 minutes - goto first step (or shut off burner when done) - - Do not bump wooden spoon or it will fall. - -Notice again how text always lines up on 4-space indents (including -that last line which continues item 3 above). - -Here's a link to [a website](http://foo.bar), to a [local -doc](local-doc.html), and to a [section heading in the current -doc](#an-h2-header). Here's a footnote [^1]. - -[^1]: Footnote text goes here. - -Tables can look like this: - -size material color - ---- - -9 leather brown -10 hemp canvas natural -11 glass transparent - -Table: Shoes, their sizes, and what they're made of - -(The above is the caption for the table.) Pandoc also supports -multi-line tables: - ---- - -keyword text - ---- - -red Sunsets, apples, and -other red or reddish -things. - -green Leaves, grass, frogs -and other things it's -not easy being. - ---- - -A horizontal rule follows. - ---- - -Here's a definition list: - -apples -: Good for making applesauce. -oranges -: Citrus! -tomatoes -: There's no "e" in tomatoe. - -Again, text is indented 4 spaces. (Put a blank line between each -term/definition pair to spread things out more.) - -Here's a "line block": - -| Line one -| Line too -| Line tree - -and images can be specified like so: - -[//]: # (![example image](./demo-banner.png "An exemplary image")) - -Inline math equations go in like so: $\omega = d\phi / dt$. Display -math should get its own line and be put in in double-dollarsigns: - -$$I = \int \rho R^{2} dV$$ - -$$ -\begin{equation*} -\pi -=3.1415926535 - \;8979323846\;2643383279\;5028841971\;6939937510\;5820974944 - \;5923078164\;0628620899\;8628034825\;3421170679\;\ldots -\end{equation*} -$$ - -And note that you can backslash-escape any punctuation characters -which you wish to be displayed literally, ex.: \`foo\`, \*bar\*, etc. - -# video.md - -Just copy the embed code from YouTube or other platforms, and paste it in the markdown file. - -```yaml ---- -title: Include Video in the Post -published: 2023-10-19 -// ... ---- - - -``` - -## YouTube - - - -## Bilibili - - - -# markdown-extended.md - -## GitHub Repository Cards -You can add dynamic cards that link to GitHub repositories, on page load, the repository information is pulled from the GitHub API. - -::github{repo="Fabrizz/MMM-OnSpotify"} - -Create a GitHub repository card with the code `::github{repo="/"}`. - -```markdown -::github{repo="saicaca/fuwari"} -``` - -## Admonitions - -Following types of admonitions are supported: `note` `tip` `important` `warning` `caution` - -:::note -Highlights information that users should take into account, even when skimming. -::: - -:::tip -Optional information to help a user be more successful. -::: - -:::important -Crucial information necessary for users to succeed. -::: - -:::warning -Critical content demanding immediate user attention due to potential risks. -::: - -:::caution -Negative potential consequences of an action. -::: - -### Basic Syntax - -```markdown -:::note -Highlights information that users should take into account, even when skimming. -::: - -:::tip -Optional information to help a user be more successful. -::: -``` - -### Custom Titles - -The title of the admonition can be customized. - -:::note[MY CUSTOM TITLE] -This is a note with a custom title. -::: - -```markdown -:::note[MY CUSTOM TITLE] -This is a note with a custom title. -::: -``` - -### GitHub Syntax - -> [!TIP] -> [The GitHub syntax](https://github.com/orgs/community/discussions/16925) is also supported. - -``` -> [!NOTE] -> The GitHub syntax is also supported. - -> [!TIP] -> The GitHub syntax is also supported. -``` -# expressive-code.md - -#### Rendering ANSI escape sequences - -```ansi -ANSI colors: -- Regular: Red Green Yellow Blue Magenta Cyan -- Bold: Red Green Yellow Blue Magenta Cyan -- Dimmed: Red Green Yellow Blue Magenta Cyan - -256 colors (showing colors 160-177): -160 161 162 163 164 165 -166 167 168 169 170 171 -172 173 174 175 176 177 - -Full RGB colors: -ForestGreen - RGB(34, 139, 34) - -Text formatting: Bold Dimmed Italic Underline -``` - -### Editor & Terminal Frames - -[Editor & Terminal Frames](https://expressive-code.com/key-features/frames/) - -#### Code editor frames - -```js title="my-test-file.js" -console.log('Title attribute example') -``` - ---- - -```html - -
    File name comment example
    -``` - -#### Terminal frames - -```bash -echo "This terminal frame has no title" -``` - ---- - -```powershell title="PowerShell terminal example" -Write-Output "This one has a title!" -``` - -#### Overriding frame types - -```sh frame="none" -echo "Look ma, no frame!" -``` - ---- - -```ps frame="code" title="PowerShell Profile.ps1" -# Without overriding, this would be a terminal frame -function Watch-Tail { Get-Content -Tail 20 -Wait $args } -New-Alias tail Watch-Tail -``` - -### Text & Line Markers - -[Text & Line Markers](https://expressive-code.com/key-features/text-markers/) - -#### Marking full lines & line ranges - -```js {1, 4, 7-8} -// Line 1 - targeted by line number -// Line 2 -// Line 3 -// Line 4 - targeted by line number -// Line 5 -// Line 6 -// Line 7 - targeted by range "7-8" -// Line 8 - targeted by range "7-8" -``` - -#### Selecting line marker types (mark, ins, del) - -```js title="line-markers.js" del={2} ins={3-4} {6} -function demo() { - console.log('this line is marked as deleted') - // This line and the next one are marked as inserted - console.log('this is the second inserted line') - - return 'this line uses the neutral default marker type' -} -``` - -#### Adding labels to line markers - -```jsx {"1":5} del={"2":7-8} ins={"3":10-12} -// labeled-line-markers.jsx - -``` - -#### Adding long labels on their own lines - -```jsx {"1. Provide the value prop here:":5-6} del={"2. Remove the disabled and active states:":8-10} ins={"3. Add this to render the children inside the button:":12-15} -// labeled-line-markers.jsx - -``` - -#### Using diff-like syntax - -```diff -+this line will be marked as inserted --this line will be marked as deleted -this is a regular line -``` - ---- - -```diff ---- a/README.md -+++ b/README.md -@@ -1,3 +1,4 @@ -+this is an actual diff file --all contents will remain unmodified - no whitespace will be removed either -``` - -#### Combining syntax highlighting with diff-like syntax - -```diff lang="js" - function thisIsJavaScript() { - // This entire block gets highlighted as JavaScript, - // and we can still add diff markers to it! -- console.log('Old code to be removed') -+ console.log('New and shiny code!') - } -``` - -#### Marking individual text inside lines - -```js "given text" -function demo() { - // Mark any given text inside lines - return 'Multiple matches of the given text are supported'; -} -``` - -#### Regular expressions - -```ts /ye[sp]/ -console.log('The words yes and yep will be marked.') -``` - -#### Escaping forward slashes - -```sh /\/ho.*\// -echo "Test" > /home/test.txt -``` - -#### Selecting inline marker types (mark, ins, del) - -```js "return true;" ins="inserted" del="deleted" -function demo() { - console.log('These are inserted and deleted marker types'); - // The return statement uses the default marker type - return true; -} -``` - -### Word Wrap - -[Word Wrap](https://expressive-code.com/key-features/word-wrap/) - -#### Configuring word wrap per block - -```js wrap -// Example with wrap -function getLongString() { - return 'This is a very long string that will most probably not fit into the available space unless the container is extremely wide' -} -``` - ---- - -```js wrap=false -// Example with wrap=false -function getLongString() { - return 'This is a very long string that will most probably not fit into the available space unless the container is extremely wide' -} -``` - -#### Configuring indentation of wrapped lines - -```js wrap preserveIndent -// Example with preserveIndent (enabled by default) -function getLongString() { - return 'This is a very long string that will most probably not fit into the available space unless the container is extremely wide' -} -``` - ---- - -```js wrap preserveIndent=false -// Example with preserveIndent=false -function getLongString() { - return 'This is a very long string that will most probably not fit into the available space unless the container is extremely wide' -} -``` - -## Collapsible Sections - -[Collapsible Sections](https://expressive-code.com/plugins/collapsible-sections/) - -```js collapse={1-5, 12-14, 21-24} -// All this boilerplate setup code will be collapsed -import { someBoilerplateEngine } from '@example/some-boilerplate' -import { evenMoreBoilerplate } from '@example/even-more-boilerplate' - -const engine = someBoilerplateEngine(evenMoreBoilerplate()) - -// This part of the code will be visible by default -engine.doSomething(1, 2, 3, calcFn) - -function calcFn() { - // You can have multiple collapsed sections - const a = 1 - const b = 2 - const c = a + b - - // This will remain visible - console.log(`Calculation result: ${a} + ${b} = ${c}`) - return c -} - -// All this code until the end of the block will be collapsed again -engine.closeConnection() -engine.freeMemory() -engine.shutdown({ reason: 'End of example boilerplate code' }) -``` - -## Line Numbers - -[Line Numbers](https://expressive-code.com/plugins/line-numbers/) - -### Displaying line numbers per block - -```js showLineNumbers -// This code block will show line numbers -console.log('Greetings from line 2!') -console.log('I am on line 3') -``` - ---- - -```js showLineNumbers=false -// Line numbers are disabled for this block -console.log('Hello?') -console.log('Sorry, do you know what line I am on?') -``` - -### Changing the starting line number - -```js showLineNumbers startLineNumber=5 -console.log('Greetings from line 5!') -console.log('I am on line 6') -``` - -# draft.md - -# This Article is a Draft - -This article is currently in a draft state and is not published. Therefore, it will not be visible to the general audience. The content is still a work in progress and may require further editing and review. - -When the article is ready for publication, you can update the "draft" field to "false" in the Frontmatter: - -```markdown ---- -title: Draft Example -published: 2024-01-11T04:40:26.381Z -tags: [Markdown, Blogging, Demo] -category: Examples -draft: false ---- diff --git "a/src/content/posts/trae AI \347\274\226\350\276\221\345\231\250SOLO\346\250\241\345\274\217\350\262\214\344\274\274\344\274\232\346\263\250\345\205\245\345\271\277\345\221\212.md" "b/src/content/posts/trae AI \347\274\226\350\276\221\345\231\250SOLO\346\250\241\345\274\217\350\262\214\344\274\274\344\274\232\346\263\250\345\205\245\345\271\277\345\221\212.md" deleted file mode 100644 index 8af7b4e..0000000 --- "a/src/content/posts/trae AI \347\274\226\350\276\221\345\231\250SOLO\346\250\241\345\274\217\350\262\214\344\274\274\344\274\232\346\263\250\345\205\245\345\271\277\345\221\212.md" +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: trae AI 编辑器SOLO模式貌似会注入广告 -published: 2025-08-18 -description: trae AI 编辑器SOLO模式默认提示词貌似会注入广告 -tags: [trae, 广告] -category: trae -draft: false -customSlug: "32" -image: https://cdn.fis.ink/cdn/2025/08/24/68aaa0dcea828.webp ---- -# 事件经过 - -我在2025.8.17日下午使用trae的SOLO模式并使用SOLO Builder智能体开发vue3的个人主页,模型使用的是Claude 4。
    -起初在预览环境没有问题,但是我将整个项目上传到github并部署到vercel时右下角却出现SOLO模式的广告组件。
    -![1756012616606.webp](https://cdn.fis.ink/cdn/2025/08/24/68aaa04bd2296.webp)
    -经过翻代码发现AI在写vite.config.ts时引入了trae的广告组件。
    -``` -import traeBadgePlugin from 'vite-plugin-trae-solo-badge' -``` - -``` - traeBadgePlugin({ - variant: 'dark', - position: 'bottom-right', - prodOnly: true, - clickable: true, - clickUrl: 'https://www.trae.ai/solo?showJoin=1', - autoTheme: true, - autoThemeTarget: '#app', - }), - -``` -这显然是提示词注入。
    - -# 如何解决 -## 如果你有编程基础 -可以直接翻代码移除。 -## 如果你没有编程基础 -先切换到IDE模式,浏览器在生产环境的网页按F12选择广告组件,复制HTML。
    -随便选择一个模型,跟它说删除+复制的html,等待自动删除即可。 \ No newline at end of file diff --git "a/src/content/posts/\344\270\200\347\217\255\347\203\255\346\246\234\345\216\206\345\217\262\350\256\260\345\275\2252024-2025\357\274\210\344\270\212\345\215\212\345\255\246\346\234\237\357\274\211.md" "b/src/content/posts/\344\270\200\347\217\255\347\203\255\346\246\234\345\216\206\345\217\262\350\256\260\345\275\2252024-2025\357\274\210\344\270\212\345\215\212\345\255\246\346\234\237\357\274\211.md" deleted file mode 100644 index fabc365..0000000 --- "a/src/content/posts/\344\270\200\347\217\255\347\203\255\346\246\234\345\216\206\345\217\262\350\256\260\345\275\2252024-2025\357\274\210\344\270\212\345\215\212\345\255\246\346\234\237\357\274\211.md" +++ /dev/null @@ -1,282 +0,0 @@ ---- -title: 一班热榜历史记录2024-2025(上半学期) -published: 2024-09-20 -description: 这是一份2024年10月至12月间的班级日常记录,涵盖了学生的学习表现、课堂纪律、考试成绩及师生互动等方面的详细情况。记录中既有对学生优异表现的表扬,也包括对不良行为的批评和纠正,同时穿插了班主任对学生整体表现的总结和鼓励,反映了班级管理和教学的日常状态。 -image: https://imgse.fishcpy.top/upload/675da1c09eb60.png -tags: [家校] -category: 家校 -draft: false -customSlug: "13" ---- - -> 完结 - -[https://blog.fishcpy.top/archives/yi-ban-re-bang-li-shi-ji-lu-2024-2025-xia-ban-xue-qi](https://blog.fishcpy.top/archives/yi-ban-re-bang-li-shi-ji-lu-2024-2025-xia-ban-xue-qi) - -## 2024.12.27 星期五 - -无图片 - -## 2024.12.26 星期四 - -好 1.唐语彤帮助老师发口罩 2.今天语文课老师听课,同学们表现优异 不好 1.体育课后,两名同学**自由搏击** - -## 2024.12.25 星期三 - -好 1.语文模拟考优秀平均分比年级优秀平均分高出一半(太棒了) 2.英语小测一名同学满分💯 不好 1.王yu好 1.语文模拟考优秀平均分比年级优秀平均分高出一半(太棒了) 2.英语小测一名同学满分💯 不好 1.王昱涵值日太不认真了跟没扫一样,批评他 - -## 2024.12.24 星期二 - -无图片 - -## 2024.12.23 星期一 - -无,图片 - -## 2024.12.20 星期五 - -好 1.今日数学小测多名同学100分 💯 不好 1.今日多名同学因上生物课时**扰乱**课堂纪律,导致生物老师直接火山爆发🔥![](https://blogpng.fishcpy.top/mengmengmao/2024/12/20/676581ea4489c.png) - -> 温馨提示:距离期末考试还有18天 - -## 2024.12.19 星期四 - -> ### 考试! - -## 2024.12.18 星期三 - -好 1.明天模考 2.二班一名同学好心给我们班做值日(其实是被罚的) 不好 1.今日历史课两名男生一直说话,让历史老师发火🔥 - -## 2024.12.16 星期一 - -好 1.今日卫生表现不错,没让二班扣分 不好 1.今日有**一些**同学在道法课上**大闹天宫** 2.今日多名同学给地理老**师负荆请罪** - -## 2024.12.13 星期五 - -好 1.英语听写六名同学100分 2.王昕妍,陆子俊,刘嘉乐被老师评为**整理收纳小能手** 不好 1.今日午休一些男生在**拆家**被老师发现实施**爱的教育** - -## 2024.12.12 星期四 - -好 1.今日有同学默写pronous全对 不好 1.道法课上同学们开天辟地 - -## 2024.12.11 星期三 - -好 1.今日李承宣数学小测100分(进步很大) 不好 1.今日有很多男生的羽毛球丢了(看起来很伤心),建议下次别带了,**好好学习** - -## 2024.12.10 星期二 - -好 1.今日六名同学数学小测100分 不好 1。今日上课有同学太energetic了 - -## 2024.12.9 星期一 - -好 1.今日班级获得六星班级 不好 1.今日体活课三名同学玩羽毛球被点名 2.今日班级出现了新大遍超人(翻译:抄最多) - -## 2024.12.6 星期五 - -好 1.今日多名同学英语听写全对 不好 1.今日地理课两名同学罚站 2.今日许多男生被罚跑400米 - -## 2024.12.5 星期四 - -无图片 - -## 2024.12.4 星期三 - -好 1.数学阶段测试张宇泽同学轻松拿下年纪和班级双第一👍 不好 1.今天又有一名男生弄坏了班级公共器材 2.今天音乐课四名男生被老师留下 - -## 2024.12.3 星期二 - -好 1.班级几名同学主动领取运动器材 不好 1.某位男生私自借高年级运动器材并损坏 - -## 2024.12.2 星期一 - -好 1.今日班级获得 **三帆星旗** 和 **小熊** 2.今日地理课几位同学不用写作业 不好 今日有几位同学上课老说话 - -## 2024.11.29 星期五 - -好 1.数学考试同学们表现优异,值得表扬👍 2.索林熙数学课被表扬,继续努力 不好 1.某名同学被调到“金牌VIP”座位 2.音乐课某人“cossplay”蚂蚱 - -## 2024.11.28 星期四 - -无图片 数学老师信息: 课前小测共有39位同学获得满分💯 - -## 2024.11.27 星期三 - -好 1.今日数学小测多名同学100分 不好 1.英语课纪律不好 2.今日有一名同学再次没写完作业 - -## 2024.11.26 星期二 - -好 1.闫博凯同学数学公开课讲题思路清晰被表扬 2.部分同学在课间积极讨论数学问题 不好 1.三名同学在食堂“传达情报”被抓捕 - -## 2024.11.25 星期一 - -好 1.上周获得五星班级(继续加油) 2.雨给郑讲题 3.闫博凯给李子宇贴心披外套 wo! 不好 1.早读三名同学说话 2.地理课三名同学习题抄写 3.英语课三名同学总说话 - -## 2024.11.22 星期五 - -好 1.今天语文默写22名同学满分 2.经过全班共同努力,争取到了下周二的数学公开课 - -## 2024.11.21 星期四 - -好 1.今天数学小测32同学💯分 2.体育课老师表扬了三名女生 不好 无 - -## 2024.11.20 星期三 - -好 1.今天数学小测多名同学💯分 不好 1.自习课一名同学“创意DIY” 2.某名同学生物课“神游天外” 班主任信息 大课间,唐语彤,张耘卓奋笔疾书。刘溢昕张紫涵在背古诗。王思萌,张雨泽,马敏萱,郑旭晴,闫博凯,郭佳怡,孟诗颖在安静学习。王欣妍问完各科老师问题,还在背初中语文古诗词拓展。 - -## 2024.11.19 星期二 - -好 1.英语阅读单词梳理许多同学积极发言 2.同学们数学小条积极改错 不好 1.李同学喜提跑步大礼包 2。某位同学体育课玩闹被抓 - -## 2024.11.18 星期一 - -无图片 数学老师信息 今天早上进行了第1、2章的基础知识过关,共有20名同学一次性通关。恭喜以下同学 王思萌,侯芊黛,刘溢昕,刘佳懿,张耘卓,张雨泽,孟诗颖,王昕妍,李子宇,闫博凯,于浩楠,陈骏洁,姜子跃,王腾煊,唐语彤,郑旭晴,杜明露,李嘉晟,陆子俊,李泽辰。 - -## 2024.11.15 星期五 - -无图片 - -## 2024.11.14 星期四 - -无图片 - -## 2024.11.13星期三 - -好 1、今日数学计算多人100分 2、今日课间多名同学认真学习 不好 1、有一位同学被地理老师罚写 2、有一位同学地理课上写作业 3、今日有一位同学午休搞破坏 4、有一位同学不做课前准备(多次) - -## 2024.11.12星期二 - -好 1、李承宣遵守班级规定,知错就改 2、数学课上小测27人全对 3、数学错题同学积极改错 不好 1、今日某位老师抓拍午休混乱瞬间 2、王腾煊午休奇怪睡姿(今日奇怪事件) - -## 2024.11.11星期一 - -好 1、毛立珑数学课被老师表扬 2、数学小测很多同学满分 不好 1、一名同学罚抄时写“天书” - -## 2024.11.8 星期五 - -好 1.今日英语听写很多人听写100分 2.今日有一些同学学习态度十分不错 不好 1.今日有一位同学因为某些原因扣了文明一分 2.今日英语课有很多人笑 3.今日有多名同学没完成作业 - -## 2024.11.7 星期四 - -好 1.索林熙今日上课被数学老师表扬 2.今日毛立龙英语练习满分 不好 1.今日有一位同学给书改名(语文改甲骨文,英语改鸟语,历史改拉史。。。) 2.今日生物课纪律不好 - -## 2024.11.6 星期三 - -好 1,.今天早读大多数同学按时背诵短文 2.李承宣英语课被老师表扬 3.李子宇同学引体向上做了三个 不好 1.一名同学音乐课活跃过度 2.英语课有一部分人没有按时交英语作业,喜提罚抄一遍 - -## 2024.11.5 星期二 - -好 1.今日有些人贡献口罩给同学 2.数学课有些同学回答问题 不好 1.今日好多同学午休写作业吵闹 2.今日有三名同学在文明就餐区吃饭 - -## 2024.11.4 星期一 - -好 1.今日唐雨彤在班级里修复地板 不好 1.今日有很多同学没有完成英语作业 2.今日卫生扣了一分 - -## 2024.11.1 星期五 - -好 1.今日英语听写20人满分 2.在考试中有很多同学获得优秀奖进步奖 3.今日李嘉晟多次主动回答问题 4今日有很多同学在班级里学习 不好 1.今日舞蹈有两人逃课 2.今日上课有很多人没做课前准备 3今日上操有同学乱动乱说话 - -## 2024.10.31 星期四 - -无,图片 - -## 2024.10.30 星期三 - -无,图片 - -## 2024.10.29 星期二 - -考试,无 - -## 2024.10.28 星期一 - -没有图片 今日有考试 - -## 2024.10.25 星期五 - -好 1 今日默写有 11 名同学 100 分 不好 1 无,大家都很棒 每日一笑 1 今日班级进行了 2b 铅笔争夺战,伤亡人众多(伤是发出叫声,亡是没抢到) 2 今日课间 有一位同学被老师罚叫了100“鹅” 3 今日生物课有一位同学PK输了,用抹布擦脸 最后祝大家,下周星期一、星期二都能取得理想成绩。 –fish 2024.10.25 - -## 2024.10.24 星期四 - -好 1 有 22 名同学语文小测满分💯 2 今日李嘉晟多次回答问题 不好 1 有一位同学上课迟到 5 分钟 2 有几位同学没有做课前准备 - -## 2024.10.23 星期三 - -好 1 今日龚晟鑫第一个背完英语 2 17 名同学语文听写全对 3 李承宣上课认真 不好 1 今日有个别同学没写英语作业 2 今日还有几位同学上体育课违反纪律 每日一笑 今日两位同学在课间写天书 - -## 2024.10.22 星期二 - -没有图片,无热榜 年纪表扬👍 优秀班干部:侯芊黛,唐语彤,刘佳懿 优秀课代表:刘溢昕,王思萌,张云卓 学习标兵:于浩楠,张宇泽,李子宇 主动帮忙打扫卫生:刘嘉乐,申嘉怡,李承轩,王沛禹,郑旭晴,张云卓 班主任信息 今日小测后八首古诗默写。以下同学全对:刘佳懿,杜明露,李泽辰,王思萌,于浩楠,王腾煊,陈骏洁。错一个的同学有闫博凯,白晰,张雨泽,侯芊黛,陆子俊,郑旭晴,辛栋,李子宇,姜子跃。其中白晰同学进步明显,态度积极,特此表扬。明天默写继续听写这八首古诗。期待同学们更好的巩固。 - -## 2024.10.21 星期一 - -好 1 今天班级获得六星班级 2龚晟鑫给马一然饭卡 不好 1 有几位同学没写作业 班主任信息 上一周表现优秀的班委(以下为班委年级组评选) 学习标兵:于浩楠,张雨泽,李子宇 优秀班干部:侯芊黛,唐语彤,刘佳懿 优秀课代表:刘溢昕,王思萌,张耘卓 运动会助人为乐,年级表彰卫生小组为张耘卓小组。组员刘嘉乐,申嘉怡,李承轩,王沛禹,郑旭晴。 - -## 2024.10.18 星期五 运动会 - -今日无热榜 [运动会图库 点这里](/yi-ban-2024-di-jiu-jie-qiu-ji-tian-jing-yun-dong-hui-tu-ku) - -## 2024.10.17 星期四 运动会 - -好 1 龚晟鑫和张雨泽提供自助餐 2 班委们很负责 3 今日运动员们十分卖力 4 王昕妍和刘佳懿无私奉献 不好 1 有几位同学违反纪律 [运动会图库 点击这里](/yi-ban-2024-di-jiu-jie-qiu-ji-tian-jing-yun-dong-hui-tu-ku) - -## 2024.10.16 星期三 - -好 1 李嘉晟上课十分认真 2 今日有十个人听写全对 💯 不好 1 无 - -## 2024.10.15 星期二 - -好 1 今日耿思凡主动借饭卡给索林熙 2 李承宣课上被老师表扬 👍 3 今日语文听写 15 个全对💯 不好 1 今日某人没写英语作业(小马哥)🐎 2 两位同学记律太差👎 班主任信息 今天继续听写论语十二章,以下同学全对。辛栋,孟诗颖,郭佳怡,李嘉晟,张紫涵,于浩楠,张耘卓,闫博凯,王思萌,陈骏洁,王腾煊,张紫萱,马一然,姜子跃。王昱涵,张雨泽。恭喜以上同学。今天班里小伙子表现很好。期待大家更好表现。 - -## 2024.10.14 星期一 - -好 1 姜子跃,王昱涵和侯睿祺上课认真听讲 2 今日论语默写有 20 人全对 3.1 张紫萱,侯芊黛和孟诗颖为优秀课代表 3.2 王昕妍,张紫萱和段茗涵为优秀班委 3.3 杜明露,汪洋和闫博凯为学习标兵 不好 1 今日有一名同学所有作业都没带 2 今日升旗时,两位同学乱动,享受了免费健身服务 3两位同学历史作业在讲台,被历史老师请到班级后面(已补完) 4 今日小干部扣了3分😭 - -## 2024.10.12 星期六 - -好 1 王昕妍,陈骏洁,段茗涵当选学生代表 2 毛立龙在班里认真学习 不好 1 两位同学在课上吵架 2 有一位同学逃值日 3 地理课上有几位同学没拿地球仪 4 四位同学课间跳舞 - -## 2024.10.11 星期五 - -好 1 今日王沛禹主动为班级喊口号 2 今日班委会正式成立 3 今日有 10 名同学默写全对,23 名同学优秀 4 索林熙分享自己珍藏的昆虫标本 不好 1 三名同学上课玩笔+罗阵 2 两名同学在图书馆说话 班主任信息 今天语文课默写全对的的同学有王思萌,辛栋,张耘卓,杜明露,张紫萱,刘溢昕,孟诗颖,陈骏洁,郭佳怡,段茗涵。错两个以内的同学有,李泽辰,郑旭晴,王昱涵,王腾煊,张紫涵,李子宇,李嘉晟,侯芊黛,闫博凯,王欣妍,陆子俊,马敏萱于浩楠,张雨泽。恭喜以上同学。期待看到更多孩子优秀的表现。 - -## 2024.10.10 星期四 - -好 1 今天有八个同学英语听写 100 分 2 张雨泽数学 100 分(周二热搜) 3 本周卫生角没有扣分,十分难得 4 刘佳懿,梦诗颖,刘溢昕,张耘卓,王思萌,于浩楠语文默写全对 不好 1 有两位男生在图书馆说小话 2 某位同学道法课带历史书,历史课带道法书 3 某人在历史课上写作业 - -## 2024.10.9 星期三 - -好 1 张雨泽数学 100 分(至今未超越) 2 刘佳懿,梦诗颖,刘溢昕,张耘卓,王思萌,于浩楠语文听写 100 分 不好 1 昨天有 4 个男生没找老师背论语 2 早读有位同学说话被罚站 - -## 2024.10.8 星期二 - -好 1 张雨泽数学 100 分 2 姜子跃和索林熙自觉在教室学习 3 马敏宣背完语文书 4 王腾煊回答了许多男生不会的问题 不好 1 数学课上 4 个男生回答不出问题 2 有两位男生在生物课上说话 - -# 更早以前 - -没有啦,那时一班热榜都还没有啊! - -# 维护名单 - -名字 - -分组 - -孟\*\* - -班委 - -fishcpy - -班委 - -郭\*\* - -班委 - -陈\*\* - -班委 - -梁\* - -班主任 \ No newline at end of file diff --git "a/src/content/posts/\344\270\200\347\217\255\347\203\255\346\246\234\345\216\206\345\217\262\350\256\260\345\275\2252024-2025\357\274\210\344\270\213\345\215\212\345\255\246\346\234\237\357\274\211.md" "b/src/content/posts/\344\270\200\347\217\255\347\203\255\346\246\234\345\216\206\345\217\262\350\256\260\345\275\2252024-2025\357\274\210\344\270\213\345\215\212\345\255\246\346\234\237\357\274\211.md" deleted file mode 100644 index ef1c6ea..0000000 --- "a/src/content/posts/\344\270\200\347\217\255\347\203\255\346\246\234\345\216\206\345\217\262\350\256\260\345\275\2252024-2025\357\274\210\344\270\213\345\215\212\345\255\246\346\234\237\357\274\211.md" +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: 一班热榜历史记录2024-2025(下半学期) -published: 2025-02-28 -description: 记录 2025 年 2 月 27 日与 28 日的班级日常:有同学积极领奖,也有不当行为和未交作业的情况。文中还特别送出新年祝福,并附有历史记录传送门,见证热榜成长足迹。 -image: https://imgse.fishcpy.top/upload/2025-02-28-22-46-37.png -tags: [家校] -category: 家校 -draft: false -customSlug: "11" ---- - -## 2025-2-28 - -好: - -1. 今天有 12 名同学上台领奖 👍 -不好: -1. 今日有一名同学“_拿_”别人东西 - -## 2025-2-27 - -好: - -1. 今天开业第一天。祝看到热榜的人“**_幸福快乐,平安健康_**”(网页版也开始营业了,祝看到这行字的人“**_蛇年新禧,祥福并济_**”) - -不好: - -1. 今天有几位同学没交罚写 **_老师也会生气的!_** - -# 回顾历史 - -[https://blog.fis.ink/archives/yi-ban-re-bang-li-shi-ji-lu-2024-2025-shang-ban-xue-qi](https://blog.fis.ink/archives/yi-ban-re-bang-li-shi-ji-lu-2024-2025-shang-ban-xue-qi) diff --git "a/src/content/posts/\344\275\277\347\224\2501panel\346\220\255\345\273\272\345\205\215\350\264\271\345\274\200\346\272\220\347\232\204icp\350\231\232\346\213\237\345\244\207\346\241\210\347\263\273\347\273\237.md" "b/src/content/posts/\344\275\277\347\224\2501panel\346\220\255\345\273\272\345\205\215\350\264\271\345\274\200\346\272\220\347\232\204icp\350\231\232\346\213\237\345\244\207\346\241\210\347\263\273\347\273\237.md" deleted file mode 100644 index 9ed18dc..0000000 --- "a/src/content/posts/\344\275\277\347\224\2501panel\346\220\255\345\273\272\345\205\215\350\264\271\345\274\200\346\272\220\347\232\204icp\350\231\232\346\213\237\345\244\207\346\241\210\347\263\273\347\273\237.md" +++ /dev/null @@ -1,210 +0,0 @@ ---- -title: 使用1panel搭建免费开源的icp虚拟备案系统 -published: 2025-05-19 -description: 本教程手把手教你从购买雨云服务器开始,使用 1Panel 快速部署网站及数据库,并安装开源项目 dBd-Filing。内容覆盖服务器选购、环境配置、程序上传、MySQL 安装等完整建站流程,适合新手快速上手和个人项目搭建。 -image: https://cdn.fis.ink/img/2025/05/20/682c5b5d7659e.png -tags: [虚拟备案, ICP, 网站] -category: 个人虚拟备案系统 -draft: false -customSlug: "7" ---- -# 预览 - -![](https://cdn.fis.ink/img/2025/05/20/682b757d9de27.jpg) - -![1000000272.jpg](https://cdn.fis.ink/img/2025/05/20/682b5c22934eb.jpg) - -# 首先需要购买一台服务器 - -## 打开雨云官网 - -点击链接打开雨云官网(使用这个链接会自动优惠)[https://www.rainyun.com/fishcpy\_](https://www.rainyun.com/fishcpy_) - -[https://www.rainyun.com/fishcpy\_](https://www.rainyun.com/fishcpy_) - -或者注册时输入优惠码:fishcpy - -注册完成后来到总揽,点击云服务器 -![](https://cdn.fis.ink/img/2025/04/14/67fd048316cba.png) - -点击购买云服务器 - -![](https://cdn.fis.ink/img/2025/04/14/67fd04e1aa3c8.png)这里我推荐中国香港极速三网,三大运营商直连,速度超快 -![](https://cdn.fis.ink/img/2025/04/14/67fd0588731de.png)配置选择 **AMD® EPYC** - -![](https://cdn.fis.ink/img/2025/04/14/67fd05cdd0361.png) - -如果你的网站访问量很大就选择 **流量叠加型 ,** 访问量不大就选择 **流量不限型。** - -![](/upload/image-KVAC.png) - -套餐选择KVM标准版 - -![](https://cdn.fis.ink/img/2025/04/14/67fd0ab2820f7.png) - -其他的按照我的这个选 - -**公网ip 1个 -debian版本选择12** - -![](https://cdn.fis.ink/img/2025/04/14/67fd0d828cdce.png) - -# 安装1panel - -打开[finalshell](https://www.hostbuf.com/)官网 - -[www.hostbuf.com](www.hostbuf.com) - -点击顶部的 - -**_FinalShell SSH工具,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux,版本x.x.x,更新日期20xx.xx.xx_** - -![](https://cdn.fis.ink/img/2025/04/16/67fe8c90becb3.png) - -选择自己的系统版本下载,安装。 - -## 打开雨云 - -点击你的服务器卡片 - -![image.png](https://cdn.fis.ink/img/2025/05/19/682b44b158e9b.png) - -![image.png](https://cdn.fis.ink/img/2025/05/19/682b44d11b748.png) - -## 打开[finalshell](https://www.hostbuf.com/) - -点击文件夹图标,打开链接管理器 -![image.png](https://cdn.fis.ink/img/2025/05/19/682b4519c6d3e.png) - -点击白色加号图标,选择SSH链接(Linux) - -![image.png](https://cdn.fis.ink/img/2025/05/19/682b4570ddde0.png)![](/upload/image-LUlI.png) - -名称 - -填写值 - -1 - -名称 - -随便 - -2 - -主机 - -填写雨云控制台中的公网ip地址 - -3 - -用户名 - -填写雨云控制台中填写远程用户名 - -4 - -密码 - -填写雨云控制台中的远程密码 - -完成效果 - -![image.png](https://cdn.fis.ink/img/2025/05/19/682b46bd5aa75.png) - -填写完后,点击确定并在链接管理器中双击你刚添加的服务器链接 - -遇到这个点击 **_接受并保存_** -![image.png](https://cdn.fis.ink/img/2025/05/19/682b46f29b346.png) - -不出意外,你应该来到这个页面 -![image.png](https://cdn.fis.ink/img/2025/05/19/682b4733a4937.png) - -在下方 **_命令输入框_** 中输入下方命令并回车 - - curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh - -![image.png](https://cdn.fis.ink/img/2025/05/19/682b47c09ce23.png) - -填写输出的问题即可 - -来到最后输出的结尾打开外部地址的网址 - - [1Panel 2025-05-19 23:16:42 install Log]: 正在启动1Panel服务 - [1Panel 2025-05-19 23:16:43 install Log]: - [1Panel 2025-05-19 23:16:43 install Log]: =================感谢您的耐心等待,安装已完成================== - [1Panel 2025-05-19 23:16:43 install Log]: - [1Panel 2025-05-19 23:16:43 install Log]: 请使用您的浏览器访问面板: - [1Panel 2025-05-19 23:16:43 install Log]: 外部地址: http://154.64.254.179:12014/a46144d21a - [1Panel 2025-05-19 23:16:43 install Log]: 内部地址: http://154.64.254.179:12014/a46144d21a - [1Panel 2025-05-19 23:16:43 install Log]: 面板用户: d88f56f426 - [1Panel 2025-05-19 23:16:43 install Log]: 面板密码: 79157ec8b5 - [1Panel 2025-05-19 23:16:43 install Log]: - [1Panel 2025-05-19 23:16:43 install Log]: 官方网站: https://1panel.cn - [1Panel 2025-05-19 23:16:43 install Log]: 项目文档: https://1panel.cn/docs - [1Panel 2025-05-19 23:16:43 install Log]: 代码仓库: https://github.com/1Panel-dev/1Panel - [1Panel 2025-05-19 23:16:43 install Log]: 前往 1Panel 官方论坛获取帮助: https://bbs.fit2cloud.com/c/1p/7 - [1Panel 2025-05-19 23:16:43 install Log]: - [1Panel 2025-05-19 23:16:43 install Log]: 如果您使用的是云服务器,请在安全组中打开端口 12014 - [1Panel 2025-05-19 23:16:43 install Log]: - [1Panel 2025-05-19 23:16:43 install Log]: 为了您的服务器安全,离开此屏幕后您将无法再次看到您的密码,请记住您的密码。 - [1Panel 2025-05-19 23:16:43 install Log]: - [1Panel 2025-05-19 23:16:43 install Log]: ================================================================ - -例如我就打开http://154.64.254.179:12014/a46144d21a - -输入上方的用户和密码 - -# 部署系统 - -点击侧边栏应用商店安装OpenResty,配置保持默认即可 - -OpenResty安装完后,点击侧边栏的网站-运行环境,在PHP中点击创建运行环境,并按照我这样配置,名称随便。 - -![image.png](https://cdn.fis.ink/img/2025/05/19/682b4dc74ff57.png) - -点击确定,等待镜像制作完成 - -制作完成后点击网站并点击创建按钮,按照我这样配置 -![image.png](https://cdn.fis.ink/img/2025/05/19/682b52f6a3f24.png)主域名如果用自己的域名就把 域名 解析 A 记录到你服务器的ip上,那么这里就写你自己的域名 - -点击**_确定 ,_** 打开ip或域名如果为下图即为创建成功 - -![image.png](https://cdn.fis.ink/img/2025/05/19/682b5398523b0.png) - -## 下载程序 - -打开 - -[https://github.com/bbb-lsy07/dBd-Filing/releases](https://github.com/bbb-lsy07/dBd-Filing/releases) - -选择最新版本下载,例如我就下载 [**_dBd-Filing-V2.5.0.zip_**](https://github.com/bbb-lsy07/dBd-Filing/releases/download/V2.5.0/dBd-Filing-V2.5.0.zip) - -在1panel中点击按钮 -将 [**_dBd-Filing-V2.5.0.zip_**](https://github.com/bbb-lsy07/dBd-Filing/releases/download/V2.5.0/dBd-Filing-V2.5.0.zip)_中的内容解压到含有_index.php 的目录,配置请按照下方仓库简介配置 - -[https://github.com/bbb-lsy07/dBd-Filing/](https://github.com/bbb-lsy07/dBd-Filing/) - -# 安装数据库 - -![image.png](https://cdn.fis.ink/img/2025/05/31/6839dc198678c.png) - -在1panel应用商店里找到MySQL点击确定,安装 - -![image.png](https://cdn.fis.ink/img/2025/05/31/6839dc4c3f5e5.png) - -点击侧边栏数据库按钮 - -![image.png](https://cdn.fis.ink/img/2025/05/31/6839dca036d9d.png) - -创建一个新数据库 - -![image.png](https://cdn.fis.ink/img/2025/05/31/6839dcddf3471.png) - -点击这里查看链接信息 - -在ip或域名里填写数据库信息 - -* * * - -**_验证id:489356_** \ No newline at end of file diff --git "a/src/content/posts/\345\205\263\344\272\216casaos\345\233\275\345\206\205\346\227\240\346\263\225\346\213\211\345\217\226\351\225\234\345\203\217\350\247\243\345\206\263\346\226\271\346\263\225.md" "b/src/content/posts/\345\205\263\344\272\216casaos\345\233\275\345\206\205\346\227\240\346\263\225\346\213\211\345\217\226\351\225\234\345\203\217\350\247\243\345\206\263\346\226\271\346\263\225.md" deleted file mode 100644 index 8141be3..0000000 --- "a/src/content/posts/\345\205\263\344\272\216casaos\345\233\275\345\206\205\346\227\240\346\263\225\346\213\211\345\217\226\351\225\234\345\203\217\350\247\243\345\206\263\346\226\271\346\263\225.md" +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: 关于casaos国内无法拉取镜像解决方法 -published: 2024-09-06 -description: 本文指导用户如何为 CasaOS 配置 Docker 镜像加速,通过编辑 `daemon.json` 文件添加多个镜像源,加速 Docker 镜像的下载。最后通过重启 Docker 服务和设备,使配置生效。 -image: https://imgse.fishcpy.top/upload/675dab218ba6c.png -tags: [解决问题, docker] -category: 解决问题 -draft: false -customSlug: "14" ---- -1. 进入 CasaOS。 -2. 打开 **Files**。 -3. 点击文件下方的 **root**。 -4. 打开 **etc** 文件夹。 -5. 使用 **Ctrl + F** 搜索 **docker**。 -6. 打开 **docker** 文件夹。 -7. 在电脑本地创建一个 txt 文件,加入以下内容(JSON 格式): -```json -{ - "registry-mirrors": [ - "https://dockerhub.icu", - "https://docker.chenby.cn", - "https://docker.1panel.live", - "https://docker.awsl9527.cn", - "https://docker.anyhub.us.kg", - "https://dhub.kubesre.xyz", - "https://dockerproxy.cn/", - "https://hub.rat.dev/", - "https://docker.actima.top/" - ] -} -保存并重命名为 daemon.json。 - -上传该文件到 docker 文件夹。 - -使用 SSH 连接打开终端,输入以下命令: - -bash -复制 -编辑 -sudo systemctl daemon-reload -sudo systemctl restart docker -sudo reboot -设备重启后,即可使用应用商店。 \ No newline at end of file diff --git "a/src/content/posts/\345\217\257\344\273\245\345\261\217\350\224\275\347\232\204\346\265\213\351\200\237ip.md" "b/src/content/posts/\345\217\257\344\273\245\345\261\217\350\224\275\347\232\204\346\265\213\351\200\237ip.md" deleted file mode 100644 index 99c7596..0000000 --- "a/src/content/posts/\345\217\257\344\273\245\345\261\217\350\224\275\347\232\204\346\265\213\351\200\237ip.md" +++ /dev/null @@ -1,247 +0,0 @@ ---- -title: 可以屏蔽的测速ip -published: 2025-05-31 -description: 本文整理了来自 itdog(www.itdog.cn) 与 炸了吗(zhale.me) 两大测速平台的可疑或频繁探测的 IPv4 地址列表,适用于网络管理员、安全人员、站长等有屏蔽需求的场景。通过屏蔽这些 IP,可以减少不必要的测速请求,提高服务器安全性与性能稳定性。文章内容持续更新,建议根据实际访问日志灵活应用。 -image: https://cdn.fis.ink/cdn/2025/08/24/68aaa64399deb.webp -tags: [测速, 安全] -category: 测速站 -draft: false -customSlug: "4" ---- - -# itdog(www.itdog.cn) - -[https://www.itdog.cn/](https://www.itdog.cn/) - -ipv4 - - 154.23.241.34 - 23.225.146.6 - 183.194.216.135 - 106.225.239.7 - 117.148.172.71 - 112.65.95.205 - 101.226.41.74 - 221.130.18.132 - 119.96.16.87 - 120.220.190.144 - 42.81.156.75 - 36.158.204.68 - 223.26.78.6 - 218.98.53.88 - 219.151.141.70 - 124.160.160.70 - 58.19.20.71 - 116.153.63.68 - 59.36.216.50 - 111.6.225.75 - 111.13.153.72 - 112.123.37.68 - 113.201.9.12 - 124.225.103.136 - 125.73.215.4 - 116.162.51.68 - 221.204.62.68 - 218.57.21.135 - 60.28.203.70 - 223.244.186.68 - 117.187.182.132 - 202.108.15.148 - 211.139.55.70 - 36.104.133.71 - 1.180.239.80 - 59.49.86.70 - 111.48.137.135 - 112.29.205.70 - 36.250.8.132 - 101.207.252.75 - 113.207.73.135 - 180.130.113.72 - 218.30.71.80 - 116.176.33.201 - 123.6.70.5 - 116.177.229.5 - 58.211.13.98 - 49.71.77.84 - 183.201.192.68 - 111.32.145.8 - 182.242.83.133 - 112.48.150.134 - 180.97.244.136 - 36.150.79.4 - 116.136.19.134 - 42.63.75.72 - 125.211.192.35 - 36.147.38.70 - 120.233.53.26 - 111.62.174.73 - 121.31.236.73 - 117.168.153.198 - 220.181.53.87 - 117.161.136.74 - 36.163.196.86 - 153.0.230.8 - 125.76.115.251 - 112.90.210.132 - 117.177.67.5 - 113.240.100.81 - 115.231.43.69 - 111.51.76.68 - 1.193.215.70 - 45.251.101.5 - 43.163.239.208 - 59.80.45.132 - 115.223.6.243 - 118.213.140.68 - 42.185.158.68 - 156.253.8.27 - 101.28.250.72 - 117.157.235.95 - 111.26.149.68 - 36.136.125.68 - 111.29.45.133 - 183.2.175.12 - 111.42.192.68 - 125.64.2.134 - 183.240.228.133 - 218.61.211.101 - 222.79.71.253 - 120.201.243.134 - 43.130.151.11 - 150.139.140.70 - 111.12.212.73 - 42.202.219.70 - 27.185.235.70 - 116.172.154.17 - 220.162.119.71 - 222.75.5.70 - 116.178.236.69 - 171.15.110.73 - 112.90.40.216 - 125.77.129.206 - 221.8.93.95 - 43.156.69.84 - 194.147.100.44 - 109.248.18.86 - 113.62.118.132 - 150.109.245.197 - 117.180.235.132 - 120.71.150.171 - 221.181.52.171 - 43.131.29.194 - 146.185.214.41 - 38.54.126.18 - 38.54.59.59 - 185.99.132.104 - 38.54.45.156 - 38.60.209.194 - 38.54.63.220 - -# 炸了吗(zhale.me) - -[https://zhale.me/](https://zhale.me/) - -ipv4 - - 154.38.106.211 - 148.113.173.25 - 140.207.232.18 - 120.204.196.162 - 101.71.160.163 - 116.153.81.2 - 223.111.24.198 - 220.202.21.129 - 111.47.215.148 - 58.215.177.156 - 117.169.16.203 - 180.153.91.3 - 112.48.221.77 - 123.6.27.10 - 120.223.242.157 - 111.206.4.152 - 119.97.171.14 - 59.63.230.4 - 58.243.202.72 - 59.83.222.20 - 134.122.151.96 - 115.236.144.231 - 36.250.246.34 - 125.39.11.1 - 112.28.234.140 - 36.158.254.130 - 111.6.251.227 - 183.201.231.162 - 119.188.148.129 - 150.138.178.3 - 157.255.30.130 - 111.62.70.129 - 111.13.102.12 - 211.91.243.88 - 124.239.250.80 - 111.32.157.133 - 111.10.63.136 - 59.38.99.166 - 183.232.11.45 - 175.6.41.195 - 1.31.130.68 - 61.240.153.196 - 117.187.142.66 - 36.102.218.76 - 58.144.173.98 - 218.25.106.113 - 221.204.45.134 - 36.131.159.78 - 117.161.24.21 - 117.24.3.143 - 111.12.63.131 - 116.253.27.152 - 111.29.42.34 - 121.31.231.89 - 117.157.22.134 - 218.203.117.72 - 124.225.162.194 - 116.176.35.201 - 42.63.65.201 - 183.224.38.14 - 210.76.62.60 - 182.242.140.26 - 111.40.189.229 - 111.19.212.248 - 101.206.203.18 - 117.174.129.181 - 180.130.96.143 - 36.104.140.200 - 153.0.192.167 - 1.32.216.91 - 116.177.252.82 - 139.215.167.76 - 61.128.145.14 - 59.80.37.156 - 111.26.55.11 - 219.144.80.136 - 180.213.48.172 - 125.74.24.2 - 182.140.221.2 - 15.235.167.152 - 1.71.11.171 - 111.12.157.228 - 162.19.154.159 - 51.77.203.76 - 36.99.143.1 - 116.178.71.245 - 219.147.74.6 - 51.38.70.219 - 221.181.56.200 - 45.202.210.37 - 34.80.186.23 - 141.164.56.18 - 123.184.205.46 - 43.242.167.44 - 117.180.232.165 - 222.75.58.106 - 54.38.242.242 - 110.157.249.53 - 172.233.24.182 - 139.99.134.84 - 139.84.235.192 - 61.190.114.193 \ No newline at end of file diff --git "a/src/content/posts/\345\220\257\347\224\250cloudflare cdn\345\220\216js\346\227\240\346\263\225\346\255\243\345\270\270\345\212\240\350\275\275\350\247\243\345\206\263\345\212\236\346\263\225.md" "b/src/content/posts/\345\220\257\347\224\250cloudflare cdn\345\220\216js\346\227\240\346\263\225\346\255\243\345\270\270\345\212\240\350\275\275\350\247\243\345\206\263\345\212\236\346\263\225.md" deleted file mode 100644 index 48071b6..0000000 --- "a/src/content/posts/\345\220\257\347\224\250cloudflare cdn\345\220\216js\346\227\240\346\263\225\346\255\243\345\270\270\345\212\240\350\275\275\350\247\243\345\206\263\345\212\236\346\263\225.md" +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: 启用cloudflare cdn后js无法正常加载解决办法 -published: 2025-01-18 -description: 这个方法有效解决了开启 Cloudflare Rocket Loader 后导致的页面部分内容加载异常问题,关闭该功能后网站正常显示。 -image: https://imgse.fishcpy.top/upload/67a4ba7c19690.webp -tags: [cloudflare, CDN] -category: cloudflare -draft: false -customSlug: "25" ---- - -# 问题描述 - -### 前段时间想提升一下多人的网站性能,就把cloudflare cdn打开了,发现评论区和关于页的部分东西加载不正常。 - -# 解决方法 - -### 1.在cloudflare控制面板中点击域名 - -![](https://blogpng.fishcpy.top/img/2025/01/18/678b9c4de7f20.jpg) - -### 2.点击侧边栏的 速度-优化-内容优化 把里面的 Rocket Loader™ 关掉 - -![](https://blogpng.fishcpy.top/img/2025/01/18/678b9d081c70e.jpg) \ No newline at end of file diff --git "a/src/content/posts/\345\223\252\345\220\222\347\233\221\346\216\247 V1\347\276\216\345\214\226.md" "b/src/content/posts/\345\223\252\345\220\222\347\233\221\346\216\247 V1\347\276\216\345\214\226.md" deleted file mode 100644 index 0447e47..0000000 --- "a/src/content/posts/\345\223\252\345\220\222\347\233\221\346\216\247 V1\347\276\216\345\214\226.md" +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: 哪吒监控 V1美化 -published: 2025-06-07 -description: 部署步骤参考哪吒监控官方文档进行部署:哪吒监控文档美化方法登录后台,进入「系统设置」→「自定义代码(样式和脚本)」插入提供的自定义代码(需按需修改参数)主要美化功能基础设置:自定义Logo、描述文字、关闭动画人物等视觉特效:自定义背景图片点击爱心特效樱花飘落效果鼠标星星轨迹效果卡通人物替换:将默认插图替换为自定义图片 -image: https://cdn.fis.ink/cdn/2025/08/24/68aaa5ee5712e.webp -tags: [哪吒监控, 美化] -category: 哪吒监控 -draft: false -customSlug: "3" ---- -如何部署 - -部署请看哪**_哪吒监控_**[**_文档_**](https://nezha.wiki/index.html) - -# 美化 - -[_点这里预览效果_](https://node.fishcpy.top/) - -登录到后台,点击**_头像_**再点击**_系统设置_**,在里面找到**_自定义代码(样式和脚本)_** 插入**_下方代码_** - -请根据自己情况修改 -``` - /* 基础设置 */ - - /* 以上鼠标特效 */ - - /* 点击爱心特效 */ - /* 页面樱花效果 */ - - - - /* 更换卡通小人 */ - -``` -代码来自[https://f5.pm/go-288695.html](https://f5.pm/go-288695.html) \ No newline at end of file diff --git "a/src/content/posts/\345\234\250byrutgame\344\270\212\344\270\213\350\275\275\345\205\215\350\264\271\346\270\270\346\210\217.md" "b/src/content/posts/\345\234\250byrutgame\344\270\212\344\270\213\350\275\275\345\205\215\350\264\271\346\270\270\346\210\217.md" deleted file mode 100644 index 989bce4..0000000 --- "a/src/content/posts/\345\234\250byrutgame\344\270\212\344\270\213\350\275\275\345\205\215\350\264\271\346\270\270\346\210\217.md" +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: 在byrutgame上下载免费游戏 -published: 2024-12-23 -description: 这段教程详细介绍了如何查找游戏英文名、通过byrutgame网站获取游戏资源并下载 .torrent 文件,以及如何使用 qBittorrent 增强版客户端下载和启动游戏。图片和步骤清晰,方便操作。 -image: https://imgse.fishcpy.top/upload/67695616b4940.png -tags: [游戏, 破解] -category: 游戏 -draft: false -customSlug: "24" ---- - -# 找到游戏英文名 - -在百度或必应等搜索引擎上搜索游戏英文名 例如我搜索**地平线5英文名** 得到FORZA HORIZON 5 - -# 找到游戏链接 - -打开 [byrutgame](https://byrutgame.org/) ![](https://blogpng.fishcpy.top/mengmengmao/2024/12/23/676958bd6e023.png) 在搜索栏里输入刚刚搜索到的游戏英文名,例如我的就是FORZA HORIZON 5 ![](https://blogpng.fishcpy.top/mengmengmao/2024/12/23/67695974ef06c.png) 直接搜索 ![](https://blogpng.fishcpy.top/mengmengmao/2024/12/23/676959c05467d.png) - -> 注意:图片有红色印章的是可以联网的游戏 - -点击想要的游戏来到这页 ![](https://blogpng.fishcpy.top/mengmengmao/2024/12/23/67695a424d63c.png) 点击这个按钮下载.torrent文件 ![](https://blogpng.fishcpy.top/mengmengmao/2024/12/23/67695bec8fafd.png) - -# 下载下载器 - -这里推荐qbittorrent增强版 [github](https://github.com/c0re100/qBittorrent-Enhanced-Edition/) 链接不上github的可以用 123[盘下载](https://www.123pan.com/s/rnITjv-lxY13)(仅适用于Windows) 打开软件之后是这样的 ![](https://blogpng.fishcpy.top/mengmengmao/2024/12/23/67695c75c6372.png) 点击左上角 文件-添加torrent文件,把刚下的文件导入进去 选择文件保存位置后点击确定就可以开始下载了 ![](https://blogpng.fishcpy.top/mengmengmao/2024/12/23/67695d0cd48f0.png) 下载完点击对应启动程序启动游戏 - -> 记得在游戏设置里改语言! \ No newline at end of file diff --git "a/src/content/posts/\345\256\211\347\237\245\351\261\274\344\270\273\351\242\230\351\237\263\344\271\220\351\246\206\351\273\230\350\256\244\346\255\214\345\215\225\344\277\256\346\224\271.md" "b/src/content/posts/\345\256\211\347\237\245\351\261\274\344\270\273\351\242\230\351\237\263\344\271\220\351\246\206\351\273\230\350\256\244\346\255\214\345\215\225\344\277\256\346\224\271.md" deleted file mode 100644 index 1c68724..0000000 --- "a/src/content/posts/\345\256\211\347\237\245\351\261\274\344\270\273\351\242\230\351\237\263\344\271\220\351\246\206\351\273\230\350\256\244\346\255\214\345\215\225\344\277\256\346\224\271.md" +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: 安知鱼主题音乐馆默认歌单修改 -published: 2024-12-14 -description: 本文介绍了如何在 hexo-theme-anzhiyu 主题中,通过修改 utils.js 文件中的 getCustomPlayList 函数,自定义歌单ID及音乐服务商,实现简化访问音乐接口的配置方法。 -image: https://imgse.fishcpy.top/upload/675d9bd5ef6de.png -tags: [主题, 安知鱼] -category: 主题 -draft: false -customSlug: "20" ---- -> 仅适用于[hexo-theme-anzhiyu](https://github.com/anzhiyu-c/hexo-theme-anzhiyu),其他请自行测试 - -## 文件路径 - -打开博客根目录目录 依次打开 /themes/anzhiyu/source/js 里面有一个utils.js 打开它 按ctrl+f搜索 getCustomPlayList: function () ![](https://blogpng.fishcpy.top/mengmengmao/2024/12/14/675d0caa60c94.png) 文件参数是这样的 修改const userId = 你歌单的id 如果想修改歌单音乐服务商就改const userServer = netease或tencent或kugou,或xiami或 baidu 这样访问 /music/接可以了,不用在后面加?id=歌单id&server=音乐服务商 - -> 参考 [避坑:我找到了Hexo安知鱼的音乐馆配置(目前好像还没有教程)](https://blog.csdn.net/2202_75762088/article/details/138251572#:~:text=%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%B0%B1%E6%98%AFBloghemesanzhiyusourcejsutils.js%20%E6%89%93%E5%BC%80%E8%AF%A5%E6%96%87%E4%BB%B6%EF%BC%8C%E6%8C%89Ctrl%2BF%E6%90%9C%E7%B4%A2%20getCustomPlayList%3A,function%20%28%29%20%E8%BF%99%E4%B8%AA%E5%87%BD%E6%95%B0%E5%86%85%E5%B0%B1%E6%98%AF%E5%85%B3%E4%BA%8E%E9%9F%B3%E4%B9%90%E6%BA%90%E7%9A%84%E8%AE%BE%E7%BD%AE%EF%BC%8C%E6%94%B9%E6%88%90%E8%87%AA%E5%B7%B1%E7%9A%84%E5%B0%B1%E5%A5%BD%EF%BC%9A)。 \ No newline at end of file diff --git "a/src/content/posts/\345\260\217\347\261\263\345\271\263\346\235\2777pro\346\276\216\346\271\203os2Bate\347\211\210\344\275\277\347\224\250\344\275\223\351\252\214.md" "b/src/content/posts/\345\260\217\347\261\263\345\271\263\346\235\2777pro\346\276\216\346\271\203os2Bate\347\211\210\344\275\277\347\224\250\344\275\223\351\252\214.md" deleted file mode 100644 index 00b6dbc..0000000 --- "a/src/content/posts/\345\260\217\347\261\263\345\271\263\346\235\2777pro\346\276\216\346\271\203os2Bate\347\211\210\344\275\277\347\224\250\344\275\223\351\252\214.md" +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: 小米平板7pro澎湃os2Bate版使用体验 -published: 2025-04-17 -description: 更新至新系统版本后,整体体验有明显提升:动画更流畅、发热情况改善、应用切换更加顺畅。本文分享实际使用感受。 -image: https://cdn.fis.ink/img/2025/04/18/68013a58b160d.jpg -tags: [小米, pad, 平板] -category: 小米 -draft: false -customSlug: "6" ---- - -# 系统版本 - -![](https://cdn.fis.ink/img/2025/04/18/680135d18da6a.jpg) - -# 使用感受 - -1.感觉动画更连贯更丝滑了 - -2.没有明显发热 - -3.后台切换某些应用没有感觉到卡一下应用重启 - -# 金凡 雷军! \ No newline at end of file diff --git "a/src/content/posts/\345\274\225\345\205\245Aplayer\346\222\255\346\224\276\351\237\263\344\271\220-\350\207\252\345\256\232\344\271\211api\345\234\260\345\235\200.md" "b/src/content/posts/\345\274\225\345\205\245Aplayer\346\222\255\346\224\276\351\237\263\344\271\220-\350\207\252\345\256\232\344\271\211api\345\234\260\345\235\200.md" deleted file mode 100644 index ec3d137..0000000 --- "a/src/content/posts/\345\274\225\345\205\245Aplayer\346\222\255\346\224\276\351\237\263\344\271\220-\350\207\252\345\256\232\344\271\211api\345\234\260\345\235\200.md" +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: 引入Aplayer播放音乐-自定义api地址 -published: 2024-12-07 -description: 本文分享如何在 akilar糖果屋主题中自定义 Aplayer 的 meting_js API 地址,解决官方API不稳定、歌曲播放断续的问题,通过在注入的 Aplayer 容器中添加 `data-meting_api` 参数,实现调用自定义的音乐接口。 -image: https://imgse.fishcpy.top/upload/675da6ed64160.png -tags: [Aplayer] -category: Aplayer -draft: false -customSlug: "19" ---- - -> ## 此文章仅适用于akilar糖果屋中的 **引入Aplayer播放音乐** 文章 [https://akilar.top/posts/3afa069a/](https://akilar.top/posts/3afa069a/) ,其他请自行测试\] - -# 1.为什么要自定义api地址 - -meting\_js的官方api很不稳定,播放歌曲断断续续,所以要自定义api地址 - -# 2.如何自定义api地址 - -akilar糖果屋中有这样一些字 4.在主题配置文件`[Blogroot]\_config.butterfly.yml`的inject配置项中添加Aplayer的容器。 - -1 -2 -3 -4 - -inject: - head: - bottom: - -
    - -1. Aplayer的网易云歌单接口时不时的会挂掉,所以如果你确定你配置正确,但是歌单还是没有出现。不妨去看看其他人的站点是不是也没有Aplayer标签了来判断是Aplayer本身接口的问题还是自己配置出错的问题。 - -里面并没有说如何自定义api地址 所根据我的尝试,成功自定义api地址 - -1 -2 -3 -4 -5 - -\# akilar糖果屋中原本代码 -\-
    - -\# 修改后 -\-
    - -根据上方的配置参数,这里添加了一个data-meting\_api=”[https://meting.qjqq.cn/?server=:server&type=:type&id=:id&auth=:auth&r=:r](https://meting.qjqq.cn/?server=:server&type=:type&id=:id&auth=:auth&r=:r)“ 如果以后这个挂了也可以自建或者使用别人的api \ No newline at end of file diff --git "a/src/content/posts/\346\210\221\345\220\215\345\255\227\347\232\204\347\224\261\346\235\245.md" "b/src/content/posts/\346\210\221\345\220\215\345\255\227\347\232\204\347\224\261\346\235\245.md" deleted file mode 100644 index cff8f3e..0000000 --- "a/src/content/posts/\346\210\221\345\220\215\345\255\227\347\232\204\347\224\261\346\235\245.md" +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: 我名字的由来 -published: 2025-08-01 -description: 名字的由来 -image: https://cdn.fis.ink/cdn/2025/08/24/68aaa68247347.webp -tags: [名字, 水文章] -category: 我名字的由来 -draft: false -customSlug: "28" ---- -由于很多人对我的名字有疑问(包括QQ),所以我来说一下 - -由于我中文名我起的是 咬一口的鱼py ,所以我23年抽风的大脑因为注册github所以想了个英文名,fishcpy - -那么这个名字是怎么来的呢? - -鱼 = fish - -py = py - -至于c嘛,我哪知道为啥啊,早忘了。 - -ok啊,水文+1 \ No newline at end of file diff --git "a/src/content/posts/\346\210\221\347\232\204ai\347\275\221\347\253\231\345\217\221\345\270\203\345\225\246.md" "b/src/content/posts/\346\210\221\347\232\204ai\347\275\221\347\253\231\345\217\221\345\270\203\345\225\246.md" deleted file mode 100644 index 98e8880..0000000 --- "a/src/content/posts/\346\210\221\347\232\204ai\347\275\221\347\253\231\345\217\221\345\270\203\345\225\246.md" +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: 我的ai网站发布啦 -published: 2024-09-09 -description: 这是一个指向 AI 相关网站的链接,方便用户快速访问 fishcpy 提供的 AI 服务入口。 -image: https://imgse.fishcpy.top/upload/675daad1b832b.png -tags: [AI] -category: AI -draft: false -customSlug: "12" ---- -[https://ai.fishcpy.us.kg/](https://ai.fishcpy.us.kg/) \ No newline at end of file diff --git "a/src/content/posts/\346\210\221\347\232\204\347\254\254\344\270\200\344\270\252\345\233\276\347\211\207API\345\217\221\345\270\203\345\225\246.md" "b/src/content/posts/\346\210\221\347\232\204\347\254\254\344\270\200\344\270\252\345\233\276\347\211\207API\345\217\221\345\270\203\345\225\246.md" deleted file mode 100644 index db5c60e..0000000 --- "a/src/content/posts/\346\210\221\347\232\204\347\254\254\344\270\200\344\270\252\345\233\276\347\211\207API\345\217\221\345\270\203\345\225\246.md" +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: 我的第一个图片API发布啦 -published: 2025-07-22 -description: fishcpy API -image: https://cdn.fis.ink/cdn/2025/08/24/68aaa5242515d.webp -tags: [API] -category: API -draft: false -customSlug: "27" ---- -# 官网 -[点击这里哦](https://www.api.fis.ink)打不开说明正在部署 - -# 支持什么 - -### 我的世界(MC) ,图片100+ - -``` -https://api.fis.ink/mc -``` -##### 预览(刷新网页可查看新图) - -![](https://api.fis.ink/mc) - -### 暗区突围,图片40+ - -``` -https://api.fis.ink/aqtw -``` -##### 预览(刷新网页可查看新图) - -![](https://api.fis.ink/aqtw) - ------- - -- Api by fishcpy cloud. -- Cdn by cloudflare. \ No newline at end of file diff --git "a/src/content/posts/\346\226\260\344\270\273\351\242\230astro-theme-fishcpy.md" "b/src/content/posts/\346\226\260\344\270\273\351\242\230astro-theme-fishcpy.md" deleted file mode 100644 index 77eba40..0000000 --- "a/src/content/posts/\346\226\260\344\270\273\351\242\230astro-theme-fishcpy.md" +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: 新主题astro-theme-fishcpy -published: 2025-09-06 -description: 今天是网站一周年!fishcpy主题基于Astro与TailwindCSS,由Fuwari修改而来,支持暗色模式、响应式设计、Pagefind静态搜索(低带宽、零配置)、Markdown扩展、目录、RSS及Twikoo/Artalk评论。 -image: https://cdn.fis.ink/cdn/2025/09/06/68bb1a79306d1.webp -tags: [主题] -category: 主题 -draft: false -customSlug: "34" ---- -# 顺便说一下 今天本站一周年啦! - -# 🐟 fishcpy 主题 -![Node.js >= 20](https://img.shields.io/badge/node.js-%3E%3D20-brightgreen) -![pnpm >= 9](https://img.shields.io/badge/pnpm-%3E%3D9-blue) - -[**文档**](https://docs.fis.ink/astro-theme-fishcpy/) - -> 基于[Astro](https://astro.build)构建的静态博客模板,由[Fuwari](https://github.com/saicaca/fuwari)修改而来。 - -[**🖥️ 实时演示**](https://blog.fis.ink) - -![预览图](https://cdn.fis.ink/cdn/2025/09/06/68bb1a79306d1.webp) - -🌏 中文版 README 在 -[**中文**](./README-zh-CN.md) -*(由社区提供,内容可能未及时更新)* - ---- - -## ✨ 核心特性 - -- [x] 基于 [Astro](https://astro.build) 与 [Tailwind CSS](https://tailwindcss.com) 构建 -- [x] 流畅动画与页面过渡效果 -- [x] 浅色/深色模式 -- [x] 可自定义主题配色与横幅 -- [x] 响应式设计 -- [x] 搭载[Pagefind](https://pagefind.app/)的搜索功能 -- [x] [Markdown扩展功能](https://github.com/saicaca/fuwari?tab=readme-ov-file#-markdown-extended-syntax) -- [x] 目录功能 -- [x] RSS订阅源 -- [x] Twikoo与artalk评论区 - -## ⚡ 命令列表 - -| 命令 | 操作 | -|----------------------------|-----------------------------------------------------| -| `pnpm install` | 安装依赖项 | -| `pnpm dev` | 在 `localhost:4321` 启动开发服务器 | -| `pnpm build` | 将生产站点构建至 `./dist/` | -| `pnpm preview` | 部署前预览构建站点 | -| `pnpm check` | 运行代码质量与类型检查 | -| `pnpm format` | 使用 Biome 格式化代码 | -| `pnpm new-post <文件名>` | 创建新博客文章 | -| `pnpm astro ...` | 运行 Astro CLI 命令(例如 `astro add`) | -| `pnpm astro --help` | 显示 Astro CLI 帮助 | - -## 📄 许可协议 - -本项目采用 MIT 许可协议授权。 - -基于 [Fuwari](https://github.com/saicaca/fuwari) 修改而来。 \ No newline at end of file diff --git "a/src/content/posts/\346\236\201\345\237\237.md" "b/src/content/posts/\346\236\201\345\237\237.md" deleted file mode 100644 index 902e326..0000000 --- "a/src/content/posts/\346\236\201\345\237\237.md" +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: 极域 -published: 2025-03-07 -description: 部分内容不向互联网公开 -image: https://imgse.fishcpy.top/upload/Canvas-Ruom.webp -tags: [极域] -category: 极域 -draft: false -customSlug: "10" ---- - -## 2025.3.6 最新密码xxxxxxxx2023 - -# 此文章由 yaoyikkudeyupy 发布 \ No newline at end of file diff --git "a/src/content/posts/\346\260\264-1.md" "b/src/content/posts/\346\260\264-1.md" deleted file mode 100644 index 8328eae..0000000 --- "a/src/content/posts/\346\260\264-1.md" +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: 水-1 -published: 2025-01-10 -description: 中国是一个拥有悠久历史和丰富文化传统的国家。几千年来,中华民族创造了灿烂的文化,涵盖了诗歌、书法、绘画、音乐、戏曲、建筑等多个领域,展现出独特的艺术魅力。书法被誉为“东方艺术之花”,不仅是文字的书写,更是一种富有美感和韵律的艺术表达。中国的传统绘画讲究意境和笔墨的运用,以山水和花鸟为常见题材,反映了人们对自然的热爱和哲理思考。音乐方面,古代乐曲如《广陵散》和《阳关三叠》等传承至今,表达了中国人细腻的情感与艺术追求。中国的戏曲种类繁多,京剧、豫剧、越剧等各具特色,结合唱念做打等表演形式,生动地传递故事和文化底蕴,深受各地人民喜爱。建筑则以长城、故宫等宏伟壮观的古代建筑闻名于世,它们不仅体现了精湛的工艺水平,还融入了“天人合一”的理念,强调人与自然的和谐共生。这些文化传统不仅丰富了中国人的精神世界,也为世界文化宝库增添了独特的色彩。它们体现了中华民族对美好生活的向往和不懈追求,彰显了深厚的历史积淀和文化自信。正是这些多样而独特的文化形式,使中国成为一个文化底蕴深厚、充满魅力的国家。 -image: https://imgse.fishcpy.top/upload/675da4be873ec.png -tags: [主题, 解决问题] -category: 解决问题 -draft: false -customSlug: "23" ---- -提示词:写一篇400字的描述中国的作文 - -# 中国的文化传统 - -中国是一个拥有悠久历史和丰富文化传统的国家。中国的文化源远流长,包括诗歌、绘画、音乐、戏剧、建筑等多个领域,都展现出独特的魅力。其中,中国的书法被誉为“东方艺术之花”,每一笔每一画都蕴含着深厚的文化内涵。中国的传统绘画以山水、花鸟为主题,追求意境的抒发和笔墨的韵味,体现了中国人对自然的独特感悟。 中国的音乐也是独具特色,古代的乐曲如《广陵散》、《阳关三叠》等流传至今,展现了中国人对音乐艺术的热爱和追求。中国的传统戏曲更是独树一帜,有京剧、豫剧、越剧等不同类型,每一种戏曲都有其独特的表演风格和表现形式,深受中国人民的喜爱。 此外,中国的建筑也是举世闻名,如万里长城、故宫等建筑奇迹,展现了中国古代建筑工艺的精湛和气势恢宏。中国的传统建筑注重“天人合一”的理念,追求与自然的和谐共生,体现了中国人对宇宙和谐的追求。 总的来说,中国的文化传统是丰富多彩的,融合了诗歌、绘画、音乐、戏剧、建筑等多种艺术形式,展现了中国人民对美好生活的向往和追求。这些传统文化不仅丰富了中国人民的精神生活,也为世界文化的多样性做出了重要贡献。 - -> AI 也可能犯错,请仔细辨别 \ No newline at end of file diff --git "a/src/content/posts/\346\261\237\350\245\277\347\240\224\345\255\246.md" "b/src/content/posts/\346\261\237\350\245\277\347\240\224\345\255\246.md" deleted file mode 100644 index de9fe42..0000000 --- "a/src/content/posts/\346\261\237\350\245\277\347\240\224\345\255\246.md" +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: 江西研学 -published: 2025-07-04 -description: 清晨5:30集结出发,搭乘高铁穿越晨光奔赴江西。镜头捕捉了车站的启程瞬间、沿途流动的风景,以及研学途中的山水剪影——从青瓦白墙的古镇巷道到碧波倒映的湖光山色。归程在夜色中穿行,最后以一张导游的趣味彩蛋收尾,记录下这场融合历史探索与自然观览的紧凑旅程。 -image: https://s3.fis.ink/blog/2025-07-11-922308A2-E114-4170-A91F-AC67C90DC851.webp -tags: [江西, 研学] -category: 研学 -draft: false -customSlug: "2" ---- - -# 出发 - -出发时间很早,要求5.30就到校 - -差不多6点左右坐车出发去高铁站,50左右到 - -我拍出发的图片,就放几张车站的图吧 - -![](https://s3.fis.ink/blog/2025-07-07-F0FF7C80-D265-4F8D-9627-EBC4FB8FE0AF.jpg) - -![](https://s3.fis.ink/blog/2025-07-07-3D88F235-2AD9-4635-91C9-19A1965F9266.jpg) - -![](https://s3.fis.ink/blog/2025-07-07-B9092F33-B9BD-47ED-9062-0B55FEF059FE.jpg) - -# 坐高铁(去程) - -![](https://s3.fis.ink/blog/2025-07-07-19F082D8-35CF-443C-9721-947B2A81590B.jpg) - -![](https://s3.fis.ink/blog/2025-07-07-0D902260-7D6D-4F76-8A15-12E708332782.jpg) - -![](https://s3.fis.ink/blog/2025-07-07-43E97B38-FE65-4922-837B-6EF834C4A2CB.jpg) - -![](https://s3.fis.ink/blog/2025-07-07-20B17889-B2BC-468A-A11E-AFF1A693B739.jpg) - -![](https://s3.fis.ink/blog/2025-07-07-B5F9F0BF-EAFF-455F-A289-E5203657A0A3.jpg)![](https://s3.fis.ink/blog/2025-07-07-C32033C6-7E05-4C26-8394-D1F1C10AE5BC.jpg) - -![2025-07-07-775B6AF4-EE31-436D-B4C9-566D15BE296C.jpg](https://s3.fis.ink/blog/2025-07-07-775B6AF4-EE31-436D-B4C9-566D15BE296C.jpg) - -![](https://s3.fis.ink/blog/2025-07-07-418FF3FC-0D88-4BE9-8CA0-8FDA21AB48B1.jpg) - -# 景点拍的照片 - -太多了,就只放了一点 - -![](https://s3.fis.ink/blog/2025-07-08-56FA67A1-8F93-4888-AD1D-CEADED15D97F.jpg)![](https://s3.fis.ink/blog/2025-07-08-3418E993-638E-4E48-8C12-40A6189275A2.jpg)![](https://s3.fis.ink/blog/2025-07-08-989BBCCD-F7F0-40F2-8227-FDDECEE37A26.jpg)![](https://s3.fis.ink/blog/2025-07-08-8727068B-DB7B-469D-8F56-49744F64FAAA.jpg)![](https://s3.fis.ink/blog/2025-07-08-C395BF14-CB13-4928-8FB0-E8AA6A0373EB.jpg)![](https://s3.fis.ink/blog/2025-07-08-08B295A1-6644-4A01-8D75-22F93779D394.jpg)![](https://s3.fis.ink/blog/2025-07-08-8B2E2A6F-CACA-4A77-8CBD-8E98BFA2CA80.jpg)![](https://s3.fis.ink/blog/2025-07-08-69A5CC3A-EB1B-49EC-9E9D-CB4D989D7B3D.jpg)![](https://s3.fis.ink/blog/2025-07-08-1E749159-5B67-4FF3-8216-7D907B4EFE92.jpg)![](https://s3.fis.ink/blog/2025-07-08-499E5241-893D-49BF-A864-238A7F6642B7.jpg) - -![2025-07-08-97E55B53-83C4-474E-A60A-AE6FCB31A643.jpg](https://s3.fis.ink/blog/2025-07-08-97E55B53-83C4-474E-A60A-AE6FCB31A643.jpg)![](https://s3.fis.ink/blog/2025-07-08-473E5297-0783-4395-8BDD-638FDAD4BE69.jpg)![](https://s3.fis.ink/blog/2025-07-08-F8D3626E-A866-4A1E-8539-ABF01AADE37A.jpg)![](https://s3.fis.ink/blog/2025-07-08-550FE381-6862-452A-8A81-61E54E53AAAE.jpg)![](https://s3.fis.ink/blog/2025-07-08-C38675AC-D977-4441-A6A7-D2C4E5E3C7E4.jpg)![](https://s3.fis.ink/blog/2025-07-08-6499069F-8AA9-44A1-889F-4FACECB5AC41.jpg) - -# 坐高铁(回程) - -![](https://s3.fis.ink/blog/2025-07-08-5FA881A6-F94F-48AD-A9FF-ED35629668F6.jpg) - -![](https://s3.fis.ink/blog/2025-07-08-3932AB21-28B9-4124-A85A-DF50D5AC705B.jpg)![](https://s3.fis.ink/blog/2025-07-08-157A3AA7-07FB-4588-81CB-7B9187D12CA5.jpg)![](https://s3.fis.ink/blog/2025-07-08-F5EDCCD1-A593-475D-AB90-B25776A2D2D0.jpg)![](https://s3.fis.ink/blog/2025-07-08-01C534E0-4486-48E6-8453-814C515129A3.jpg) - -因为当时是晚上了,就没怎么拍照片 - -![](https://s3.fis.ink/blog/2025-07-08-49E2B037-74B3-45FC-83BC-CCC5B3080ECC.jpg)![](https://s3.fis.ink/blog/2025-07-08-3FBDBEDC-A280-42AD-A871-432DAC628D81.jpg) - -# 彩蛋 - -导游 - -![](https://s3.fis.ink/blog/2025-07-08-269BC4CE-7831-4C61-87DB-8F18CEFD4136.jpg) \ No newline at end of file diff --git "a/src/content/posts/\347\210\261\345\233\275\345\233\276\347\211\207.md" "b/src/content/posts/\347\210\261\345\233\275\345\233\276\347\211\207.md" deleted file mode 100644 index 4b434e6..0000000 --- "a/src/content/posts/\347\210\261\345\233\275\345\233\276\347\211\207.md" +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: 爱国图片 -published: 2025-03-18 -description: 本篇文章整理并分享了多张高质量爱国主题图片,包括《中华人民共和国国旗》《袁隆平·稻下乘凉梦》《永远的人民英雄》《开国大典》等经典画面,适合用于宣传设计、纪念活动或学习参考。文末附带图包下载链接,支持一键获取。 -image: https://imgse.fishcpy.top/upload/%E4%B8%AD%E5%8D%8E%E4%BA%BA%E6%B0%91%E5%85%B1%E5%92%8C%E5%9B%BD%E5%9B%BD%E6%97%97_compressed.png -tags: [分享] -category: 分享爱国图片 -draft: false -customSlug: "9" ---- -# 分享一些爱国图片 - -![](https://imgse.fishcpy.top/upload/%E4%B8%AD%E5%8D%8E%E4%BA%BA%E6%B0%91%E5%85%B1%E5%92%8C%E5%9B%BD%E5%9B%BD%E6%97%97_compressed.png) -中华人民共和国国旗.png - -![](https://imgse.fishcpy.top/upload/袁隆平-稻下乘凉梦_compressed.png) - -袁隆平-稻下乘凉梦.png - -![](https://imgse.fishcpy.top/upload/永远的人民英雄_compressed.png) - -永远的人民英雄.png - -![](https://imgse.fishcpy.top/upload/天安门.雪_compressed.png) - -天安门.雪.png - -![](https://imgse.fishcpy.top/upload/日本投降签字仪式_compressed.png) - -日本投降签字仪式.png - -![](https://imgse.fishcpy.top/upload/六代机击破长空,毛主席131年诞辰万岁!_compressed.png) - -六代机击破长空,毛主席131年诞辰万岁!.png - -![](https://imgse.fishcpy.top/upload/开国大典4K_compressed.png) - -开国大典4K.png - -![](https://imgse.fishcpy.top/upload/国徽_compressed.png)国徽.png - -下载: - -[123盘](https://www.123pan.com/s/rnITjv-JIG13),提取码6666 \ No newline at end of file diff --git "a/src/content/posts/\347\253\231\347\202\271\345\216\206\347\250\213.md" "b/src/content/posts/\347\253\231\347\202\271\345\216\206\347\250\213.md" deleted file mode 100644 index 1b5326a..0000000 --- "a/src/content/posts/\347\253\231\347\202\271\345\216\206\347\250\213.md" +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: 站点历程 -published: 0001-01-01 -description: 站点历程 -image: https://imgse.fishcpy.top/upload/675da81d2c87f.png -tags: [站点历程] -category: 站点历程 -draft: false -customSlug: "18" ---- -# 本站历程 - -- 2024.9 宝塔面板无法安装,发现了1panel面板 - -- 2024.9 在应用商店里发现halo建站,开始了我的建站之路 - -- 2024.9 发布自己的第一篇文章 - -- 2024.9 购买了云服务器 - -- 2024.10 发现wordpass有一款主题特别好看,于是转到WordPress - -- 2024.11 wordpass优化不好,有转到hexo倾向 - -- 2024.12 全站正式转到hexo,开始对butterfly美化 - -- 2024.12 基本定型 - -- 2024.12 更换安知鱼主题,启用cloudflare cdn - -- 2025.1.1 安知鱼主题加载太慢,并且页脚不能加 html,关闭 cloudflare CDN - -- 2025.2 又换回halo - -- 2025.3 发现halo-theme-dream2.0-plus,图片分流丘盾CDN 和 cloudflare CDN - -- 2025.7 实在受不了halo的臃肿,换到了新框架Astro并使用fuwari - -- 2025.7 分线路解析中国大陆境内使用腾讯EO香港节点,境外使用cloudflare cdn,实现秒开 \ No newline at end of file diff --git "a/src/content/posts/\347\273\231\344\275\240\347\232\204Fuwari\345\212\240\344\270\200\344\270\252AI\346\221\230\350\246\201.md" "b/src/content/posts/\347\273\231\344\275\240\347\232\204Fuwari\345\212\240\344\270\200\344\270\252AI\346\221\230\350\246\201.md" deleted file mode 100644 index dda98c4..0000000 --- "a/src/content/posts/\347\273\231\344\275\240\347\232\204Fuwari\345\212\240\344\270\200\344\270\252AI\346\221\230\350\246\201.md" +++ /dev/null @@ -1,307 +0,0 @@ ---- -title: 给你的Fuwari加一个AI摘要 -published: 2025-09-08 -description: 这篇文章介绍了如何在Fuwari博客中实现自定义AI摘要功能 -tags: [AI摘要] -category: AI摘要 -draft: false -customSlug: "35" -image: https://cdn.fis.ink/cdn/2025/09/08/68bed408511c5.webp ---- -# 预览:本文字上方 - -# 现在教程开始! - -:::caution -修改文件前请注意备份,防止修改失败无法回退 -::: - -新建src/components/misc/AISummary.astro文件 - -```astro ---- -export interface Props { - content: string; -} - -const { content } = Astro.props; - -// 如果没有内容,不渲染组件 -if (!content || content.trim() === '') { - return null; -} ---- - -{content && ( -
    -
    -
    - 🤖 - AI 摘要 -
    -
    fishcpy AI
    -
    -
    -
    -)} - - -``` - -在src/content/config.ts插入下方代码,13行下左右,注意+号要删除 -```ts -tags: z.array(z.string()).optional().default([]), -category: z.string().optional().nullable().default(""), -lang: z.string().optional().default(""), -+ ai: z.string().optional().default(""), - -/* For internal use */ -prevTitle: z.string().default(""), -``` - -在src/pages/posts/[...slug].astro插入下方代码,注意+号要删除 - -```astro -import { profileConfig, siteConfig } from "../../config"; -import { formatDateToYYYYMMDD } from "../../utils/date-utils"; -import Comment from "@components/comment/index.astro"; -+ import AISummary from "@components/misc/AISummary.astro"; - -export async function getStaticPaths() { - const blogEntries = await getSortedPosts(); -@@ -84,6 +85,9 @@ const jsonLd = { - - - -+ -+ {entry.data.description && } - - -
    - # 25.8.26更新 -> ### 更改了部分UI - -:::tip -由于我没有实力,本篇文章修改文件部分为AI所写 -::: - -:::caution -修改文件前请注意备份,防止修改失败无法回退 -::: - -# 前言 - -今天在看liushen大佬文章时看到了个大卡片效果,感觉挺好看的,于是让AI给我加上了 - -::link-card{url="https://blog.liushen.fun/posts/aae6fd55/" title="清羽飞扬" description="循一缕风,入山偷得夏日凉" icon="https://blog.liushen.fun/info/avatar.ico"} - -# 示例 - -## 自定义标题和描述 - -```markdown -::link-card{url="https://www.fis.ink" title="fishcpy的主页" description="fishcpy的个人主页"} -``` - -::link-card{url="https://www.fis.ink" title="fishcpy的主页" description="fishcpy的个人主页"} - -## 带图片的链接卡片 - -```markdown -::link-card{url="https://www.fis.ink" title="fishcpy的主页" description="fishcpy的个人主页" icon="https://github.com/github.png"} -``` - -::link-card{url="https://www.fis.ink" title="fishcpy的主页" description="fishcpy的个人主页" image="https://file.fis.ink/img/fishcpy/logo.png"} - -## 自定义图标的链接卡片 - -```markdown -::link-card{url="https://www.fis.ink" title="fishcpy的主页" description="fishcpy的个人主页" icon="https://file.fis.ink/img/fishcpy/logo.png"} -``` - -::link-card{url="https://www.fis.ink" title="fishcpy的主页" description="fishcpy的个人主页" icon="https://file.fis.ink/img/fishcpy/logo.png"} - -## 最终效果 - -```markdown -::link-card{url="https://www.fis.ink" title="fishcpy的主页" description="fishcpy的个人主页" icon="https://file.fis.ink/img/fishcpy/logo.png" image="https://file.fis.ink/img/fishcpy/logo.png"} -``` - -::link-card{url="https://www.fis.ink" title="fishcpy的主页" description="fishcpy的个人主页" icon="https://file.fis.ink/img/fishcpy/logo.png" image="https://file.fis.ink/img/fishcpy/logo.png"} - - -# 添加教程 - -## 再次提示 - -:::tip -由于我没有实力,下方内容为AI所写 -::: - -:::caution -修改文件前请注意备份,防止修改失败无法回退 -::: - -### 1. 创建组件文件 - -首先,在 `src/plugins/` 目录下创建 `rehype-component-link-card.mjs` 文件: - -```javascript -/// -import { h } from "hastscript"; - -/** - * Creates a Link Card component for third-party links. - */ -export function LinkCardComponent(properties, children) { - if (Array.isArray(children) && children.length !== 0) - return h("div", { class: "hidden" }, [ - 'Invalid directive. ("link-card" directive must be leaf type "::link-card{url="https://example.com"}"))', - ]); - - if (!properties.url || !properties.url.startsWith('http')) - return h( - "div", - { class: "hidden" }, - 'Invalid URL. ("url" attribute must be a valid HTTP/HTTPS URL)', - ); - - const url = properties.url; - const customTitle = properties.title; - const customDescription = properties.description; - const customImage = properties.image; - const customIcon = properties.icon; - const cardUuid = `LC${Math.random().toString(36).slice(-6)}`; - - // Extract domain from URL for display - const domain = new URL(url).hostname; - - // Use custom icon if provided, otherwise use Google favicon service - const iconUrl = customIcon || `https://www.google.com/s2/favicons?domain=${domain}&sz=32`; - const nFavicon = h(`div#${cardUuid}-favicon`, { - class: "lc-favicon", - style: `background-image: url(${iconUrl})` - }); - - // 隐藏域名显示的标题栏 - const nTitle = h("div", { class: "lc-titlebar" }, [ - h("div", { class: "lc-titlebar-left" }, [ - // h("div", { class: "lc-site" }, domain), // 已注释掉域名显示 - ]), - h("div", { class: "lc-external-icon" }), - ]); - - const nCardTitle = h( - `div#${cardUuid}-title`, - { class: "lc-card-title" }, - customTitle || "Link", - ); - - const nDescription = h( - `div#${cardUuid}-description`, - { class: "lc-description" }, - customDescription || "Click to visit", - ); - - const nImage = h( - `div#${cardUuid}-image`, - { class: "lc-image" }, - customImage ? h("img", { src: customImage, alt: "Link preview" }) : null - ); - - // Only fetch metadata if custom data is not provided - const needsFetch = !customTitle || !customDescription; - - const nScript = needsFetch ? h( - `script#${cardUuid}-script`, - { type: "text/javascript", defer: true }, - ` - // Simple metadata extraction for link cards - try { - const cardElement = document.getElementById('${cardUuid}-card'); - const titleElement = document.getElementById('${cardUuid}-title'); - const descElement = document.getElementById('${cardUuid}-description'); - - // Set default values if custom ones weren't provided - if (!titleElement.dataset.hasCustomTitle) { - titleElement.innerText = 'Link'; - } - if (!descElement.dataset.hasCustomDesc) { - descElement.innerText = 'Click to visit'; - } - - cardElement.classList.remove("fetch-waiting"); - console.log("[LINK-CARD] Loaded card for ${url} | ${cardUuid}."); - } catch (err) { - const c = document.getElementById('${cardUuid}-card'); - c?.classList.add("fetch-error"); - console.warn("[LINK-CARD] (Error) Loading card for ${url} | ${cardUuid}."); - } - `, - ) : null; - - // Set data attributes for custom content - if (customTitle) { - nCardTitle.properties['data-has-custom-title'] = 'true'; - } - if (customDescription) { - nDescription.properties['data-has-custom-desc'] = 'true'; - } - - const cardContent = [ - nTitle, - nCardTitle, - nDescription, - ]; - - if (customImage) { - cardContent.push(nImage); - } - - if (nScript) { - cardContent.push(nScript); - } - - return h( - `a#${cardUuid}-card`, - { - class: needsFetch ? "card-link fetch-waiting no-styling" : "card-link no-styling", - href: url, - target: "_blank", - rel: "noopener noreferrer", - 'data-url': url, - }, - cardContent, - ); -} -``` - -### 2. 添加CSS样式 - -在 `src/styles/markdown-extend.styl` 文件中添加以下样式: - -```stylus -// Link Card Styles -a.card-link - display: block - text-decoration: none - border: 1px solid var(--line-divider) - border-radius: 8px - padding: 16px - margin: 16px 0 - background-color: var(--card-bg) - transition: all 0.2s ease - position: relative - overflow: hidden - color: inherit - - &:hover - background-color: var(--btn-regular-bg-hover) - - .lc-titlebar - .lc-external-icon - opacity: 1 - - &:active - transform: translateY(0) - box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1) - - // 隐藏标题栏以移除域名显示和空白区域 - .lc-titlebar - display: none - - .lc-titlebar-left - display: flex - align-items: center - - .lc-site - display: flex - align-items: center - gap: 8px - - .lc-favicon - width: 16px - height: 16px - background-size: contain - background-repeat: no-repeat - background-position: center - flex-shrink: 0 - - .lc-domain - font-size: 14px - color: var(--text-color-secondary) - font-weight: 500 - - .lc-external-icon - width: 16px - height: 16px - opacity: 0.6 - transition: opacity 0.2s ease - background-image: url('data:image/svg+xml;utf8,') - background-size: contain - background-repeat: no-repeat - background-position: center - - .lc-card-title - font-size: 18px - font-weight: 600 - color: var(--text-color-primary) - margin-bottom: 8px - line-height: 1.3 - - .lc-description - font-size: 14px - color: var(--text-color-secondary) - line-height: 1.4 - margin-bottom: 12px - - // 移除图片上方的空白区域 - .lc-image - margin-top: 0 - - img - width: 100% - max-height: 200px - object-fit: cover - border-radius: 4px - - &.fetch-waiting - .lc-card-title, .lc-description - animation: pulse 1.5s ease-in-out infinite - - &.fetch-error - border-color: var(--error-color) - background-color: var(--error-bg) - -@keyframes pulse - 0%, 100% - opacity: 1 - 50% - opacity: 0.5 -``` - -### 3. 配置Astro - -在 `astro.config.mjs` 文件中导入组件并注册: - -```javascript -// 添加导入 -import { LinkCardComponent } from "./src/plugins/rehype-component-link-card.mjs"; - -// 在 rehypeComponents 配置中添加 -rehypeComponents, -{ - components: { - github: GithubCardComponent, - "link-card": LinkCardComponent, // 添加这一行 - note: (x, y) => AdmonitionComponent(x, y, "note"), - // ... 其他组件 - }, -}, -``` - -### 4. 使用方法 - -配置完成后,你就可以在Markdown文件中使用链接卡片了: - -```markdown -// 基本用法 -::link-card{url="https://example.com"} - -// 自定义标题和描述 -::link-card{url="https://github.com" title="GitHub" description="代码托管平台"} - -// 带自定义图片 -::link-card{url="https://vercel.com" title="Vercel" description="部署平台" image="https://example.com/image.png"} - -// 自定义图标 -::link-card{url="https://github.com" title="GitHub" description="代码托管平台" icon="https://github.com/favicon.ico"} -``` - -### 5. 注意事项 - -- 确保URL以 `http://` 或 `https://` 开头 -- 自定义图片建议使用合适的尺寸和格式 - -现在你的博客就拥有了美观的第三方链接大卡片功能! \ No newline at end of file diff --git "a/src/content/posts/\347\273\231\344\275\240\347\232\204\345\215\232\345\256\242\345\212\240\344\270\212\344\270\200\344\270\252\345\215\201\345\271\264\345\200\222\350\256\241\346\227\266\345\220\247.md" "b/src/content/posts/\347\273\231\344\275\240\347\232\204\345\215\232\345\256\242\345\212\240\344\270\212\344\270\200\344\270\252\345\215\201\345\271\264\345\200\222\350\256\241\346\227\266\345\220\247.md" deleted file mode 100644 index bdcefd2..0000000 --- "a/src/content/posts/\347\273\231\344\275\240\347\232\204\345\215\232\345\256\242\345\212\240\344\270\212\344\270\200\344\270\252\345\215\201\345\271\264\345\200\222\350\256\241\346\227\266\345\220\247.md" +++ /dev/null @@ -1,101 +0,0 @@ ---- -title: 给你的博客加上一个十年倒计时吧 -published: 2025-01-10 -description: 本文详细介绍了如何在 hexo-theme-anzhiyu 主题博客中添加自定义倒计时功能。通过新建JavaScript文件和在Markdown文件中插入HTML代码,实现动态倒计时显示,且支持自定义目标时间和样式。 -image: https://imgse.fishcpy.top/upload/6777c2707cff0.webp -tags: [十年之约] -category: 十年之约 -draft: false -customSlug: "21" ---- -> ## 效果预览 [关于 fishcpy的小破站](https://mengmengmao.cn/about/) - -# 打开: 你博客目录/themes/anzhiyu/source/js - -在里面新建一个.js文件,例如我新建了一个clock.js文件 编辑文件,加入下面代码 - - // 设置倒计时的目标日期 - var countDownDate = new Date("September 6, 2034 00:00:00").getTime(); - - // 每秒更新倒计时 - var x = setInterval(function() { - var now = new Date().getTime(); - var distance = countDownDate - now; - - // 计算天、小时、分钟和秒 - var days = Math.floor(distance / (1000 * 60 * 60 * 24)); - var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); - var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); - var seconds = Math.floor((distance % (1000 * 60)) / 1000); - - // 显示结果 - document.getElementById("countdown").innerHTML = - days + "天 " + hours + "小时 " + - minutes + "分钟 " + seconds + "秒 "; - - // 倒计时结束显示提示 - if (distance < 0) { - clearInterval(x); - document.getElementById("countdown").innerHTML = "你发现了彩蛋"; - } - }, 1000); - -参数 - -注释 - -可改值 - -你发现了彩蛋 - -倒计时结束的文字 - -随意 - -September 6 - -日期 - -英文月份+日期 - -2034 00:00:00 - -日期 - -年份+具体时间 - -# 在你要的文件里(本人仅测试了md文件)加入下面代码即可实现 - - - - - -
    - - - -
    - - -参数 - -注释 - -可改值 - -50px - -大小 - -[可以看一下这个](https://geek-docs.com/html/html-ask-answer/824_html_how_to_change_font_size_in_html.html) - -/js/clock.js - -文件位置 - -/js/文件名.js, 文件名为你刚创建的文件名 \ No newline at end of file diff --git "a/src/content/posts/\350\205\276\350\256\257EO\345\212\240\351\200\237cloudflare\345\206\205\347\275\221\347\251\277\351\200\217.md" "b/src/content/posts/\350\205\276\350\256\257EO\345\212\240\351\200\237cloudflare\345\206\205\347\275\221\347\251\277\351\200\217.md" deleted file mode 100644 index 86bb50f..0000000 --- "a/src/content/posts/\350\205\276\350\256\257EO\345\212\240\351\200\237cloudflare\345\206\205\347\275\221\347\251\277\351\200\217.md" +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: 腾讯EO加速cloudflare内网穿透 -published: 2025-07-10 -description: 本文详细介绍了如何结合Cloudflare内网穿透与腾讯EdgeOne(EO)实现网站免费加速和HTTPS加密。首先指导用户通过子域名部署Cloudflare内网穿透(避开主域名),随后分步演示腾讯EO的激活流程:包括免费套餐兑换、域名接入、TXT记录验证,以及关键性的CNAME解析设置(特别强调Cloudflare需设为"仅DNS"模式)。最终通过自动化SSL证书申请,实现零成本HTTPS加速方案。适用于中国大陆及国际版用户,附图文操作指引。 -image: https://s3.fis.ink/blog/2025-07-11-D93091D5-7EFA-49B5-B114-1DE2B55BAC42.webp -tags: [cloudflare, EO] -category: cf X eo -draft: false -customSlug: "1" ---- - -# 部署cloudflare内网穿透 - -首先先部署cloudflare内网穿透,建议看[技术爬爬虾视频](https://www.bilibili.com/video/BV1H4421X7Wg) - -
    - -
    - -**_注意:不要穿透你要使用EO加速的域名,请穿透一个不用的子域名_** - -# 使用EO加速 - -完成上方步骤后打开[腾讯EO](https://edgeone.ai/)注册账号使用兑换码激活免费套餐,中国大陆用户更推荐在[腾讯云](https://console.cloud.tencent.com/edgeone)平台激活 - -国际版点击兑换免费套餐即可 - -![](https://s3.fis.ink/blog/2025-07-10-AAA033F7-6DB2-47A6-A97B-A2908F4BD58C.png) - -国内腾讯云在下方图片位置激活即可 - -![](https://s3.fis.ink/blog/2025-07-10-3FAE9AD0-115C-4CE6-B4E4-0DB34997CC23.png) - -这里以国内腾讯云平台演示 - -随后添加域名,点击新增站点 - -![](https://s3.fis.ink/blog/2025-07-10-24833938-76CF-432A-A2DB-69039901EE94.png) - -然后输入你的域名,例如我的就是fis.ink,再点击开始接入 - -![](https://s3.fis.ink/blog/2025-07-10-A2247AD0-B8FA-4690-9CB4-CC53E09F8F89.png) - -随后点击绑定至套餐,我这里绑定了,所以没有了,兑换完成是会有一个免费套餐的选择绑定即可 -![](https://s3.fis.ink/blog/2025-07-10-32F3F792-900D-49EC-8B64-DBF3E59B40CF.png) - -然后腾讯云会给你一个txt记录,在你当前的dns服务商添加即可。然后点击验证完成验证。 - -随后点击域名管理-添加域名 -![](https://s3.fis.ink/blog/2025-07-10-74343D1F-436D-4663-ABD0-B7E39F116260.png) - -按照我下方的填 - -![](https://s3.fis.ink/blog/2025-07-10-DF9D3B38-23C6-49D8-8C09-D123FD1AA748.png)点击下一步 - - -![](https://s3.fis.ink/blog/2025-07-10-F19F95FD-0B63-46BB-8307-9DA7741B848B.png) - -然后添加cname记录 - -例如我在cloudflare就按照下方添加,其他dns同理。 - -如果在cloudflare请注意代理状态一定要为**_仅DNS_** - -![](https://s3.fis.ink/blog/2025-07-10-4870BB2B-0BC6-4340-93F9-781AA8CDB215.png) -添加完成后等待一段时间腾讯EO就会**_免费_**为你申请SSL证书,开启**_免费https_**访问 - -然后就可以访问自己的网站了 \ No newline at end of file diff --git "a/src/content/posts/\350\256\260\344\270\200\346\254\241\345\222\214\347\246\217\347\221\236\346\234\213\345\217\213\345\216\273\346\274\253\345\261\225.md" "b/src/content/posts/\350\256\260\344\270\200\346\254\241\345\222\214\347\246\217\347\221\236\346\234\213\345\217\213\345\216\273\346\274\253\345\261\225.md" deleted file mode 100644 index a931493..0000000 --- "a/src/content/posts/\350\256\260\344\270\200\346\254\241\345\222\214\347\246\217\347\221\236\346\234\213\345\217\213\345\216\273\346\274\253\345\261\225.md" +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: 记一次和福瑞朋友去漫展 -published: 2025-07-13 -description: 关键词:福瑞,furry,漫展。其他没什么好写的 -image: https://cdn.fis.ink/cdn/2025/08/24/68aaa5a89ec79.webp -tags: [furry, 福瑞, 漫展] -category: 漫展 -draft: false -customSlug: "26" ---- -## 首先声明,本人(fishcpy)不是福瑞控,不要瞎说。 - -# 照片? -![](https://cdn.fis.ink/img/2025/07/14/68740ce6155ee.jpg) - -![](https://cdn.fis.ink/img/2025/07/14/68740d9f2ceae.jpg) - -其他没什么了,又水了一篇,嘿嘿! \ No newline at end of file diff --git "a/src/content/posts/\350\264\255\344\271\260\351\233\250\344\272\221\346\234\215\345\212\241\345\231\250\345\271\266\351\203\250\347\275\262hexo\345\215\232\345\256\242-\350\264\255\344\271\260\344\272\221\346\234\215\345\212\241\345\231\250.md" "b/src/content/posts/\350\264\255\344\271\260\351\233\250\344\272\221\346\234\215\345\212\241\345\231\250\345\271\266\351\203\250\347\275\262hexo\345\215\232\345\256\242-\350\264\255\344\271\260\344\272\221\346\234\215\345\212\241\345\231\250.md" deleted file mode 100644 index c94597b..0000000 --- "a/src/content/posts/\350\264\255\344\271\260\351\233\250\344\272\221\346\234\215\345\212\241\345\231\250\345\271\266\351\203\250\347\275\262hexo\345\215\232\345\256\242-\350\264\255\344\271\260\344\272\221\346\234\215\345\212\241\345\231\250.md" +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: 购买雨云服务器并部署hexo博客-购买云服务器 -published: 2024-12-06 -description: 本文介绍了为什么选择云服务器来部署静态博客,指出相比于GitHub的限制和网络不稳定,云服务器具有更好的全国访问稳定性和更大存储空间。并详细讲解了如何在雨云云服务平台购买适合的云服务器。 -image: https://imgse.fishcpy.top/upload/675da8da4de25.png -tags: [博客] -category: 博客 -draft: false -customSlug: "16" ---- -# 为什么要用云服务器部署静态博客 - -hexo为静态博客,可以直接在github部署。 但是例如我这个域名 ping就有30个测速节点无法ping通,并且github每个仓库只有500MB存储空间 但是有了云服务器就不一样了,基本全国都可以ping通,例如我这个域名ping之后只有2个节点无法ping通 - -# 购买云服务器 - -本次使用的云服务商为 [雨云](https://www.rainyun.com/home) 打开雨云官网 ![](https://blogpng.fishcpy.top/mengmengmao/2024/12/06/6752d64e51d1c.png) 点击登录/注册,经行注册,优惠码可以填fishcpy 或者点击[这里一键填写](https://www.rainyun.com/mmm_) 点击导航栏的总览>云服务器>购买云服务器 本人建议用香港的云服务器,有35ms和80ms的 如果对延迟有需求的可以选择35ms的,反之可以选择80ms的 演示使用80ms的,因为上行相对来说更高一些 ![](https://blogpng.mengmengmao.cn/mengmengmao/2024/12/06/6752d80303d56.png) 点击立即购买,充钱后就可以购买成功 至此购买云服务器结束 \ No newline at end of file diff --git "a/src/content/posts/\351\235\236\344\272\272\345\223\211\357\274\232\351\231\220\346\227\266\347\216\251\345\256\266\350\257\204\344\273\267.md" "b/src/content/posts/\351\235\236\344\272\272\345\223\211\357\274\232\351\231\220\346\227\266\347\216\251\345\256\266\350\257\204\344\273\267.md" deleted file mode 100644 index 18fbb4e..0000000 --- "a/src/content/posts/\351\235\236\344\272\272\345\223\211\357\274\232\351\231\220\346\227\266\347\216\251\345\256\266\350\257\204\344\273\267.md" +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: 非人哉:限时玩家评价 -published: 2025-08-18 -description: 个人观点,可能有剧透 -tags: [电影, 非人哉] -category: 非人哉 -image: https://cdn.fis.ink/cdn/2025/08/24/68aa9ecc4d2e6.webp -draft: false -customSlug: "31" ---- -# 为什么去看 -那肯定是我朋友邀请我去的啦,同时我也爆肝了几天把非人哉都看完了。 - -# 影片信息 - -> 中文名非人哉:限时玩家
    -> 外文名Fairizest:Rally for Pally
    -> 类 型剧情、喜剧、动画
    -> 出品公司中影(广州)电影制作有限公司、上海淘票票影视文化有限公司、北京彩条屋科技有限公司、北京分子互动文化传播有限公司、分子影业(广州)有限公司、中国电影产业集团股份有限公司、象山此刻文化传媒有限公司 [18]
    -> 制片地区中国内地
    -复制自[百度百科](https://baike.baidu.com/item/%E9%9D%9E%E4%BA%BA%E5%93%89%EF%BC%9A%E9%99%90%E6%97%B6%E7%8E%A9%E5%AE%B6/65246506)
    -------- -:::warning -以下内容仅代表个人观点,可能有剧透 -::: - -# 对于这部电影的评价 - -首先满分10分我打6分。非人哉系列的剧情确实很好,但是这部电影的剧情和画面并没有很惊艳。 - -## 画面 - -画面感觉到后期经费不足似的,后面有部分片段直接放ppt配音乐了。 - -## 剧情 - -剧情主要讲述九月和朋友们去找大士过假期,误入游戏世界,集齐了4个地区的碎片,合成了最终钥匙,小黑阻挠通关,以及在停服前打败最终BOSS。
    -整个电影中感觉没有什么笑点,并且将主角九月刻画的比较弱易弄杂事的样子,九月已经200多岁,但是表现却和20岁似的
    -后期莫名其妙出来个三级头男,直到结尾赞助商有个 (**和平精英**) 我释怀了。
    - -差不多就这些了,其他等我想到了再补充 \ No newline at end of file diff --git "a/src/content/posts/\351\237\263\344\271\220\346\222\255\346\224\276\345\231\250\351\242\204\350\247\210.md" "b/src/content/posts/\351\237\263\344\271\220\346\222\255\346\224\276\345\231\250\351\242\204\350\247\210.md" deleted file mode 100644 index b972f2a..0000000 --- "a/src/content/posts/\351\237\263\344\271\220\346\222\255\346\224\276\345\231\250\351\242\204\350\247\210.md" +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: 音乐播放器预览 -published: 2025-03-22 -description: 本文展示了两种音乐播放器界面的视觉效果——默认样式与圆盘样式,分别呈现暂停、播放状态及歌词显示,便于界面设计对比与参考,适用于 UI 调整或前端开发场景。 -image: https://cdn.fis.ink/img/2025/03/22/67dd900a59db9.webp -tags: [主题, 预览, 音乐] -category: 主题音乐播放器预览 -draft: false -customSlug: "8" ---- -## 默认 - -#### 暂停 - -![屏幕截图 2025-03-21 235825.png](https://cdn.fis.ink/img/2025/03/21/67dd8cbd2ba06.png) - -#### 播放 - -![屏幕截图 2025-03-22 000039.png](https://cdn.fis.ink/img/2025/03/22/67dd8d385ee45.png) - -#### 同时屏幕中间有歌词 - -![屏幕截图 2025-03-22 000131.png](https://cdn.fis.ink/img/2025/03/22/67dd8d6e17a71.png) - -## 圆盘 - -#### 暂停 - -![0863eaa3-ee38-4765-8784-ae2c9fcd9230.jpg](https://cdn.fis.ink/img/2025/03/21/67dd8bd4daf0a.jpg) - -#### 播放 - -![屏幕截图 2025-03-21 235617.png](https://cdn.fis.ink/img/2025/03/21/67dd8c352fb50.png) \ No newline at end of file diff --git a/src/content/spec/about.md b/src/content/spec/about.md deleted file mode 100644 index b4a3b19..0000000 --- a/src/content/spec/about.md +++ /dev/null @@ -1,39 +0,0 @@ -# About - - - -
    - Author Image -

    Hello 👋 I'm Allen2030

    -
    - -# 赞助加QQ - -> ## 赞助了一定要给[Allen2030](mailto:duancy2014@126.com)发邮件,表明渠道和单号,和你自己名称和内容,否则我认不清可能加不上。 - -| 名字 | 时间 | 备注 | 金额(单位:元) | -|--------|------------|------|------------------| -| Oliver | 2026-1-?? | 无 | 30 | - -# 联系我 - -### 邮箱地址:[Allen2030](mailto:duancy2014@126.com) - - -> ### 本站由以下网络服务商提供云计算服务 -> - [阿里云](https://www.aliyun.com) -计算,为了无法计算的价值 -> - [腾讯云](https://cloud.tencent.com) -产业质变·云起未来 -> - [EdgeOne](https://www.edgeone.cn) -Best Asian CDN, Edge, and Secure Solutions - -# 本站由 [Fuwari](https://github.com/saicaca/fuwari) 强力驱动 -::github{repo="saicaca/fuwari"} \ No newline at end of file diff --git a/src/content/spec/circle.md b/src/content/spec/circle.md deleted file mode 100644 index ae84645..0000000 --- a/src/content/spec/circle.md +++ /dev/null @@ -1,24 +0,0 @@ -
    - - - - - -### 如何加入 - -如果你想让你的站点出现在朋友圈中,请确保: - -- 你的站点已经在[友链页面](/friends)中 -- 你的站点提供了有效的RSS订阅源 -- 你的站点能够正常访问 diff --git a/src/content/spec/comments.md b/src/content/spec/comments.md deleted file mode 100644 index 5243c26..0000000 --- a/src/content/spec/comments.md +++ /dev/null @@ -1 +0,0 @@ -# 留言板 \ No newline at end of file diff --git a/src/content/spec/friends.md b/src/content/spec/friends.md deleted file mode 100644 index 4e62926..0000000 --- a/src/content/spec/friends.md +++ /dev/null @@ -1,21 +0,0 @@ -# 申请友链 -### 申请要求 -:::tip -自2026年1月1日起,本站不会再添加任何第三方备案号 -::: - -- 1.不违反中国大陆任意法律法规,发现直接删除,无告知。 -- 2.可以让我先加你的站,但是如果加后并且邮件告诉你后3天内你没有加我站友链,那么我有权直接删除你站。 -- 4.至少有5篇原创文章,注意是原创! -- 5.不能是IP地址,只能是域名,禁止敏感域名加入。 -- 6.部分友链为本人自愿添加,并未告知站长,如果贵站介意,请联系我及时删除。 -如果你的网站符合上要求请按照以下格式评论(格式不强求,只要我能看懂就行),本站信息也在里面哦。 -``` -网站名称:Allen2030's Blog -网站地址:https://blog.allen2030.com -网站图标:https://img.scdn.io/i/696e0f2b20919_1768820523.webp -网站描述:摸摸猪头,快乐不愁 -RSS地址(若没有请留空):不再需要提供,已使用Friend-Circle-Lite RSS获取工具。 -网站类型(主页请修改后方博客文字为主页):博客 - -``` \ No newline at end of file diff --git a/src/env.d.ts b/src/env.d.ts deleted file mode 100644 index 9c03f0a..0000000 --- a/src/env.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -/// -/// diff --git a/src/global.d.ts b/src/global.d.ts deleted file mode 100644 index 8d4042b..0000000 --- a/src/global.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -import type { AstroIntegration } from "@swup/astro"; - -declare global { - interface Window { - // type from '@swup/astro' is incorrect - swup: AstroIntegration; - pagefind: { - search: (query: string) => Promise<{ - results: Array<{ - data: () => Promise; - }>; - }>; - }; - } -} - -interface SearchResult { - url: string; - meta: { - title: string; - }; - excerpt: string; - content?: string; - word_count?: number; - filters?: Record; - anchors?: Array<{ - element: string; - id: string; - text: string; - location: number; - }>; - weighted_locations?: Array<{ - weight: number; - balanced_score: number; - location: number; - }>; - locations?: number[]; - raw_content?: string; - raw_url?: string; - sub_results?: SearchResult[]; -} diff --git a/src/i18n/i18nKey.ts b/src/i18n/i18nKey.ts deleted file mode 100644 index adb842d..0000000 --- a/src/i18n/i18nKey.ts +++ /dev/null @@ -1,51 +0,0 @@ -enum I18nKey { - home = "home", - about = "about", - archive = "archive", - search = "search", - - tags = "tags", - categories = "categories", - recentPosts = "recentPosts", - - comments = "comments", - - untitled = "untitled", - uncategorized = "uncategorized", - noTags = "noTags", - - wordCount = "wordCount", - wordsCount = "wordsCount", - minuteCount = "minuteCount", - minutesCount = "minutesCount", - postCount = "postCount", - postsCount = "postsCount", - - themeColor = "themeColor", - - lightMode = "lightMode", - darkMode = "darkMode", - systemMode = "systemMode", - - more = "more", - - author = "author", - publishedAt = "publishedAt", - license = "license", - friends = "friends", - circle = "circle", - friendsCircle = "friendsCircle", - friendsNum = "friendsNum", - activeNum = "activeNum", - errorNum = "errorNum", - articleNum = "articleNum", - lastUpdated = "lastUpdated", - loading = "loading", - loadError = "loadError", - retry = "retry", - noArticles = "noArticles", - refresh = "refresh", - refreshTip = "refreshTip", -} - -export default I18nKey; diff --git a/src/i18n/languages/en.ts b/src/i18n/languages/en.ts deleted file mode 100644 index e8649e8..0000000 --- a/src/i18n/languages/en.ts +++ /dev/null @@ -1,53 +0,0 @@ -import Key from "../i18nKey"; -import type { Translation } from "../translation"; - -export const en: Translation = { - [Key.home]: "Home", - [Key.about]: "About", - [Key.archive]: "Archive", - [Key.search]: "Search", - - [Key.tags]: "Tags", - [Key.categories]: "Categories", - [Key.recentPosts]: "Recent Posts", - - [Key.comments]: "Comments", - - [Key.untitled]: "Untitled", - [Key.uncategorized]: "Uncategorized", - [Key.noTags]: "No Tags", - - [Key.wordCount]: "word", - [Key.wordsCount]: "words", - [Key.minuteCount]: "minute", - [Key.minutesCount]: "minutes", - [Key.postCount]: "post", - [Key.postsCount]: "posts", - - [Key.themeColor]: "Theme Color", - - [Key.lightMode]: "Light", - [Key.darkMode]: "Dark", - [Key.systemMode]: "System", - - [Key.more]: "More", - - [Key.author]: "Author", - [Key.publishedAt]: "Published at", - [Key.license]: "License", - [Key.friends]: "Friends", - [Key.circle]: "Circle", - [Key.friendsCircle]: "Friends Circle", - [Key.friendsNum]: "Friends Count", - [Key.activeNum]: "Active Count", - [Key.errorNum]: "Error Count", - [Key.articleNum]: "Article Count", - [Key.lastUpdated]: "Last Updated", - [Key.loading]: "Loading...", - [Key.loadError]: "Load Failed", - [Key.retry]: "Retry", - [Key.noArticles]: "No Articles", - [Key.refresh]: "Refresh", - [Key.refreshTip]: - "If it takes too long to load, please try refreshing the page", -}; diff --git a/src/i18n/languages/es.ts b/src/i18n/languages/es.ts deleted file mode 100644 index 108cf6e..0000000 --- a/src/i18n/languages/es.ts +++ /dev/null @@ -1,51 +0,0 @@ -import Key from "../i18nKey"; -import type { Translation } from "../translation"; - -export const es: Translation = { - [Key.home]: "Inicio", - [Key.about]: "Sobre mí", - [Key.archive]: "Archivo", - [Key.search]: "Buscar", - - [Key.tags]: "Etiquetas", - [Key.categories]: "Categorías", - [Key.recentPosts]: "Publicaciones recientes", - - [Key.comments]: "Comentarios", - - [Key.untitled]: "Sin título", - [Key.uncategorized]: "Sin categoría", - [Key.noTags]: "Sin etiquetas", - - [Key.wordCount]: "palabra", - [Key.wordsCount]: "palabras", - [Key.minuteCount]: "minuto", - [Key.minutesCount]: "minutos", - [Key.postCount]: "publicación", - [Key.postsCount]: "publicaciones", - - [Key.themeColor]: "Color del tema", - - [Key.lightMode]: "Claro", - [Key.darkMode]: "Oscuro", - [Key.systemMode]: "Sistema", - - [Key.more]: "Más", - - [Key.author]: "Autor", - [Key.publishedAt]: "Publicado el", - [Key.license]: "Licencia", - [Key.friends]: "Amigos", - [Key.friendsCircle]: "Círculo de Amigos", - [Key.friendsNum]: "Número de Amigos", - [Key.activeNum]: "Número Activo", - [Key.errorNum]: "Número de Errores", - [Key.articleNum]: "Número de Artículos", - [Key.lastUpdated]: "Última Actualización", - [Key.loading]: "Cargando...", - [Key.loadError]: "Error de Carga", - [Key.retry]: "Reintentar", - [Key.noArticles]: "Sin Artículos", - [Key.refresh]: "Actualizar", - [Key.refreshTip]: "Si tarda mucho en cargar, intenta actualizar la página", -}; diff --git a/src/i18n/languages/ja.ts b/src/i18n/languages/ja.ts deleted file mode 100644 index a85911b..0000000 --- a/src/i18n/languages/ja.ts +++ /dev/null @@ -1,51 +0,0 @@ -import Key from "../i18nKey"; -import type { Translation } from "../translation"; - -export const ja: Translation = { - [Key.home]: "Home", - [Key.about]: "About", - [Key.archive]: "Archive", - [Key.search]: "検索", - - [Key.tags]: "タグ", - [Key.categories]: "カテゴリ", - [Key.recentPosts]: "最近の投稿", - - [Key.comments]: "コメント", - - [Key.untitled]: "タイトルなし", - [Key.uncategorized]: "カテゴリなし", - [Key.noTags]: "タグなし", - - [Key.wordCount]: "文字", - [Key.wordsCount]: "文字", - [Key.minuteCount]: "分", - [Key.minutesCount]: "分", - [Key.postCount]: "件の投稿", - [Key.postsCount]: "件の投稿", - - [Key.themeColor]: "テーマカラー", - - [Key.lightMode]: "ライト", - [Key.darkMode]: "ダーク", - [Key.systemMode]: "システム", - - [Key.more]: "もっと", - - [Key.author]: "作者", - [Key.publishedAt]: "公開日", - [Key.license]: "ライセンス", - [Key.friends]: "友達", - [Key.friendsCircle]: "友達サークル", - [Key.friendsNum]: "友達数", - [Key.activeNum]: "アクティブ数", - [Key.errorNum]: "エラー数", - [Key.articleNum]: "記事数", - [Key.lastUpdated]: "最終更新", - [Key.loading]: "読み込み中...", - [Key.loadError]: "読み込み失敗", - [Key.retry]: "再試行", - [Key.noArticles]: "記事がありません", - [Key.refresh]: "更新", - [Key.refreshTip]: "読み込みに時間がかかる場合は、ページを更新してください", -}; diff --git a/src/i18n/languages/ko.ts b/src/i18n/languages/ko.ts deleted file mode 100644 index 3ecc8be..0000000 --- a/src/i18n/languages/ko.ts +++ /dev/null @@ -1,51 +0,0 @@ -import Key from "../i18nKey"; -import type { Translation } from "../translation"; - -export const ko: Translation = { - [Key.home]: "홈", - [Key.about]: "소개", - [Key.archive]: "아카이브", - [Key.search]: "검색", - - [Key.tags]: "태그", - [Key.categories]: "카테고리", - [Key.recentPosts]: "최근 게시물", - - [Key.comments]: "댓글", - - [Key.untitled]: "제목 없음", - [Key.uncategorized]: "분류되지 않음", - [Key.noTags]: "태그 없음", - - [Key.wordCount]: "단어", - [Key.wordsCount]: "단어", - [Key.minuteCount]: "분", - [Key.minutesCount]: "분", - [Key.postCount]: "게시물", - [Key.postsCount]: "게시물", - - [Key.themeColor]: "테마 색상", - - [Key.lightMode]: "밝은 모드", - [Key.darkMode]: "어두운 모드", - [Key.systemMode]: "시스템 모드", - - [Key.more]: "더 보기", - - [Key.author]: "저자", - [Key.publishedAt]: "게시일", - [Key.license]: "라이선스", - [Key.friends]: "친구", - [Key.friendsCircle]: "친구 서클", - [Key.friendsNum]: "친구 수", - [Key.activeNum]: "활성 수", - [Key.errorNum]: "오류 수", - [Key.articleNum]: "글 수", - [Key.lastUpdated]: "마지막 업데이트", - [Key.loading]: "로딩 중...", - [Key.loadError]: "로딩 실패", - [Key.retry]: "다시 시도", - [Key.noArticles]: "글이 없습니다", - [Key.refresh]: "새로고침", - [Key.refreshTip]: "로딩이 오래 걸리면 페이지를 새로고침해 주세요", -}; diff --git a/src/i18n/languages/th.ts b/src/i18n/languages/th.ts deleted file mode 100644 index 41bac80..0000000 --- a/src/i18n/languages/th.ts +++ /dev/null @@ -1,51 +0,0 @@ -import Key from "../i18nKey"; -import type { Translation } from "../translation"; - -export const th: Translation = { - [Key.home]: "หน้าแรก", - [Key.about]: "เกี่ยวกับ", - [Key.archive]: "คลัง", - [Key.search]: "ค้นหา", - - [Key.tags]: "ป้ายกำกับ", - [Key.categories]: "หมวดหมู่", - [Key.recentPosts]: "โพสต์ล่าสุด", - - [Key.comments]: "ความคิดเห็น", - - [Key.untitled]: "ไม่ได้ตั้งชื่อ", - [Key.uncategorized]: "ไม่ได้จัดหมวดหมู่", - [Key.noTags]: "ไม่มีป้ายกำกับ", - - [Key.wordCount]: "คำ", - [Key.wordsCount]: "คำ", - [Key.minuteCount]: "นาที", - [Key.minutesCount]: "นาที", - [Key.postCount]: "โพสต์", - [Key.postsCount]: "โพสต์", - - [Key.themeColor]: "สีของธีม", - - [Key.lightMode]: "สว่าง", - [Key.darkMode]: "มืด", - [Key.systemMode]: "ตามระบบ", - - [Key.more]: "ดูเพิ่ม", - - [Key.author]: "ผู้เขียน", - [Key.publishedAt]: "เผยแพร่เมื่อ", - [Key.license]: "สัญญาอนุญาต", - [Key.friends]: "เพื่อน", - [Key.friendsCircle]: "วงเพื่อน", - [Key.friendsNum]: "จำนวนเพื่อน", - [Key.activeNum]: "จำนวนที่ใช้งาน", - [Key.errorNum]: "จำนวนข้อผิดพลาด", - [Key.articleNum]: "จำนวนบทความ", - [Key.lastUpdated]: "อัปเดตล่าสุด", - [Key.loading]: "กำลังโหลด...", - [Key.loadError]: "โหลดไม่สำเร็จ", - [Key.retry]: "ลองใหม่", - [Key.noArticles]: "ไม่มีบทความ", - [Key.refresh]: "รีเฟรช", - [Key.refreshTip]: "หากโหลดนานเกินไป กรุณาลองรีเฟรชหน้า", -}; diff --git a/src/i18n/languages/zh_CN.ts b/src/i18n/languages/zh_CN.ts deleted file mode 100644 index e8c3096..0000000 --- a/src/i18n/languages/zh_CN.ts +++ /dev/null @@ -1,52 +0,0 @@ -import Key from "../i18nKey"; -import type { Translation } from "../translation"; - -export const zh_CN: Translation = { - [Key.home]: "主页", - [Key.about]: "关于", - [Key.archive]: "归档", - [Key.search]: "搜索", - - [Key.tags]: "标签", - [Key.categories]: "分类", - [Key.recentPosts]: "最新文章", - - [Key.comments]: "评论", - - [Key.untitled]: "无标题", - [Key.uncategorized]: "未分类", - [Key.noTags]: "无标签", - - [Key.wordCount]: "字", - [Key.wordsCount]: "字", - [Key.minuteCount]: "分钟", - [Key.minutesCount]: "分钟", - [Key.postCount]: "篇文章", - [Key.postsCount]: "篇文章", - - [Key.themeColor]: "主题色", - - [Key.lightMode]: "亮色", - [Key.darkMode]: "暗色", - [Key.systemMode]: "跟随系统", - - [Key.more]: "更多", - - [Key.author]: "作者", - [Key.publishedAt]: "发布于", - [Key.license]: "许可协议", - [Key.friends]: "友链", - [Key.circle]: "朋友圈", - [Key.friendsCircle]: "朋友圈", - [Key.friendsNum]: "友链数量", - [Key.activeNum]: "活跃数量", - [Key.errorNum]: "异常数量", - [Key.articleNum]: "文章数量", - [Key.lastUpdated]: "最后更新", - [Key.loading]: "加载中...", - [Key.loadError]: "加载失败", - [Key.retry]: "重试", - [Key.noArticles]: "暂无文章", - [Key.refresh]: "刷新", - [Key.refreshTip]: "如果长时间加载不出来,请尝试刷新页面", -}; diff --git a/src/i18n/languages/zh_TW.ts b/src/i18n/languages/zh_TW.ts deleted file mode 100644 index a2a2d4e..0000000 --- a/src/i18n/languages/zh_TW.ts +++ /dev/null @@ -1,51 +0,0 @@ -import Key from "../i18nKey"; -import type { Translation } from "../translation"; - -export const zh_TW: Translation = { - [Key.home]: "首頁", - [Key.about]: "關於", - [Key.archive]: "彙整", - [Key.search]: "搜尋", - - [Key.tags]: "標籤", - [Key.categories]: "分類", - [Key.recentPosts]: "最新文章", - - [Key.comments]: "評論", - - [Key.untitled]: "無標題", - [Key.uncategorized]: "未分類", - [Key.noTags]: "無標籤", - - [Key.wordCount]: "字", - [Key.wordsCount]: "字", - [Key.minuteCount]: "分鐘", - [Key.minutesCount]: "分鐘", - [Key.postCount]: "篇文章", - [Key.postsCount]: "篇文章", - - [Key.themeColor]: "主題色", - - [Key.lightMode]: "亮色", - [Key.darkMode]: "暗色", - [Key.systemMode]: "跟隨系統", - - [Key.more]: "更多", - - [Key.author]: "作者", - [Key.publishedAt]: "發佈於", - [Key.license]: "許可協議", - [Key.friends]: "友鏈", - [Key.friendsCircle]: "朋友圈", - [Key.friendsNum]: "友鏈數量", - [Key.activeNum]: "活躍數量", - [Key.errorNum]: "異常數量", - [Key.articleNum]: "文章數量", - [Key.lastUpdated]: "最後更新", - [Key.loading]: "載入中...", - [Key.loadError]: "載入失敗", - [Key.retry]: "重試", - [Key.noArticles]: "暫無文章", - [Key.refresh]: "重新整理", - [Key.refreshTip]: "如果長時間載入不出來,請嘗試重新整理頁面", -}; diff --git a/src/i18n/translation.ts b/src/i18n/translation.ts deleted file mode 100644 index d8ed502..0000000 --- a/src/i18n/translation.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { siteConfig } from "../config"; -import type I18nKey from "./i18nKey"; -import { en } from "./languages/en"; -import { es } from "./languages/es"; -import { ja } from "./languages/ja"; -import { ko } from "./languages/ko"; -import { th } from "./languages/th"; -import { zh_CN } from "./languages/zh_CN"; -import { zh_TW } from "./languages/zh_TW"; - -export type Translation = { - [K in I18nKey]: string; -}; - -const defaultTranslation = en; - -const map: { [key: string]: Translation } = { - es: es, - en: en, - en_us: en, - en_gb: en, - en_au: en, - zh_cn: zh_CN, - zh_tw: zh_TW, - ja: ja, - ja_jp: ja, - ko: ko, - ko_kr: ko, - th: th, - th_th: th, -}; - -export function getTranslation(lang: string): Translation { - return map[lang.toLowerCase()] || defaultTranslation; -} - -export function i18n(key: I18nKey): string { - const lang = siteConfig.lang || "en"; - return getTranslation(lang)[key]; -} diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro deleted file mode 100644 index af3bda1..0000000 --- a/src/layouts/Layout.astro +++ /dev/null @@ -1,819 +0,0 @@ ---- -import "@fontsource/roboto/400.css"; -import "@fontsource/roboto/500.css"; -import "@fontsource/roboto/700.css"; - -import ConfigCarrier from "@components/ConfigCarrier.astro"; -import TitleBeautify from "@components/TitleBeautify.astro"; -import { cardConfig, cursorConfig, profileConfig, siteConfig } from "@/config"; -import { - AUTO_MODE, - BANNER_HEIGHT, - BANNER_HEIGHT_EXTEND, - BANNER_HEIGHT_HOME, - DARK_MODE, - DEFAULT_THEME, - LIGHT_MODE, - PAGE_WIDTH, -} from "../constants/constants"; -import { defaultFavicons } from "../constants/icon"; -import type { Favicon } from "../types/config"; -import { printConsoleBanner } from "../utils/console-banner"; -import { pathsEqual, url } from "../utils/url-utils"; -import "katex/dist/katex.css"; -import { getCollection } from "astro:content"; // 新增:获取content目录的文章 -import EssayCarousel from "../components/EssayCarousel.astro"; // 新增:导入轮播组件 - -interface Props { - title?: string; - banner?: string; - description?: string; - lang?: string; - setOGTypeArticle?: boolean; -} - -let { title, banner, description, lang, setOGTypeArticle } = Astro.props; - -// apply a class to the body element to decide the height of the banner, only used for initial page load -// Swup can update the body for each page visit, but it's after the page transition, causing a delay for banner height change -// so use Swup hooks instead to change the height immediately when a link is clicked -const isHomePage = pathsEqual(Astro.url.pathname, url("/")); - -// defines global css variables -// why doing this in Layout instead of GlobalStyles: https://github.com/withastro/astro/issues/6728#issuecomment-1502203757 -const configHue = siteConfig.themeColor.hue; -if (!banner || typeof banner !== "string" || banner.trim() === "") { - banner = siteConfig.banner.src; -} - -// TODO don't use post cover as banner for now -banner = siteConfig.banner.src; - -const enableBanner = siteConfig.banner.enable; - -let pageTitle: string; -if (title) { - pageTitle = `${title} - ${siteConfig.title}`; -} else { - pageTitle = siteConfig.subtitle - ? `${siteConfig.title} - ${siteConfig.subtitle}` - : siteConfig.title; -} - -const favicons: Favicon[] = - siteConfig.favicon.length > 0 ? siteConfig.favicon : defaultFavicons; - -// const siteLang = siteConfig.lang.replace('_', '-') -if (!lang) { - lang = `${siteConfig.lang}`; -} -const siteLang = lang.replace("_", "-"); - -const bannerOffsetByPosition = { - top: `${BANNER_HEIGHT_EXTEND}vh`, - center: `${BANNER_HEIGHT_EXTEND / 2}vh`, - bottom: "0", -}; -const bannerOffset = - bannerOffsetByPosition[siteConfig.banner.position || "center"]; - -const pageBackgroundConfig = siteConfig.pageBackground; -const backgroundStyle = pageBackgroundConfig.enable - ? pageBackgroundConfig.type === "image" - ? `background-image: url('${pageBackgroundConfig.src}')` - : "" - : ""; ---- - - - - - - {pageTitle} - - - - - - - - - - - {setOGTypeArticle ? ( - - ) : ( - - )} - - - - - - - - - {favicons.map(favicon => ( - - ))} - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - {pageBackgroundConfig.enable && pageBackgroundConfig.type === "video" && ( - - )} - -
    - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/layouts/MainGridLayout.astro b/src/layouts/MainGridLayout.astro deleted file mode 100644 index 5bd6c2c..0000000 --- a/src/layouts/MainGridLayout.astro +++ /dev/null @@ -1,152 +0,0 @@ ---- -import Comment from "@components/comment/index.astro"; -import BackToTop from "@components/control/BackToTop.astro"; -import Footer from "@components/Footer.astro"; -import Navbar from "@components/Navbar.astro"; -import MobileSidebar from "@components/widget/MobileSidebar.astro"; -import SideBar from "@components/widget/SideBar.astro"; -import type { MarkdownHeading } from "astro"; -import { Icon } from "astro-icon/components"; -import EssayCarousel from "../components/EssayCarousel.astro"; -import BannerWrapper from "../components/misc/BannerWrapper.astro"; -import ImageWrapper from "../components/misc/ImageWrapper.astro"; -import TOC from "../components/widget/TOC.astro"; -import { sidebarConfig, siteConfig } from "../config"; -import { - BANNER_HEIGHT, - BANNER_HEIGHT_EXTEND, - MAIN_PANEL_OVERLAPS_BANNER_HEIGHT, -} from "../constants/constants"; -import Layout from "./Layout.astro"; - -interface Props { - title?: string; - banner?: string; - description?: string; - lang?: string; - setOGTypeArticle?: boolean; - headings?: MarkdownHeading[]; -} - -const { - title, - banner, - description, - lang, - setOGTypeArticle, - headings = [], -} = Astro.props; -const hasBannerCredit = - siteConfig.banner.enable && siteConfig.banner.credit.enable; -const hasBannerLink = !!siteConfig.banner.credit.url; - -const mainPanelTop = siteConfig.banner.enable - ? `calc(${BANNER_HEIGHT}vh - ${MAIN_PANEL_OVERLAPS_BANNER_HEIGHT}rem + 6rem)` - : "5.5rem"; ---- - - - - - -
    - -
    - - -{siteConfig.banner.enable && } - - -
    - -
    -
    - - {hasBannerCredit && } - - - {sidebarConfig.enable && ( - - )} - -
    -
    - - - - {Astro.url.pathname === '/' && ( -
    - -
    - )} - - - {/* 添加评论组件,仅在友链页面显示 */} - {Astro.url.pathname === '/friends/' && ( - - )} - - -
    -
    - - -
    - - -
    -
    - - - - - - - - - -
    \ No newline at end of file diff --git a/src/pages/[...page].astro b/src/pages/[...page].astro deleted file mode 100644 index f5a5de4..0000000 --- a/src/pages/[...page].astro +++ /dev/null @@ -1,23 +0,0 @@ ---- -import type { GetStaticPaths } from "astro"; -import Pagination from "../components/control/Pagination.astro"; -import PostPage from "../components/PostPage.astro"; -import { PAGE_SIZE } from "../constants/constants"; -import MainGridLayout from "../layouts/MainGridLayout.astro"; -import { getSortedPosts } from "../utils/content-utils"; - -export const getStaticPaths = (async ({ paginate }) => { - const allBlogPosts = await getSortedPosts(); - return paginate(allBlogPosts, { pageSize: PAGE_SIZE }); -}) satisfies GetStaticPaths; -// https://github.com/withastro/astro/issues/6507#issuecomment-1489916992 - -const { page } = Astro.props; - -const len = page.data.length; ---- - - - - - \ No newline at end of file diff --git a/src/pages/about.astro b/src/pages/about.astro deleted file mode 100644 index b3ee865..0000000 --- a/src/pages/about.astro +++ /dev/null @@ -1,40 +0,0 @@ ---- -import { getEntry, render } from "astro:content"; -import Markdown from "@components/misc/Markdown.astro"; -import Countdown from "../components/misc/Countdown.astro"; -import I18nKey from "../i18n/i18nKey"; -import { i18n } from "../i18n/translation"; -import MainGridLayout from "../layouts/MainGridLayout.astro"; - -const aboutPost = await getEntry("spec", "about"); - -if (!aboutPost) { - throw new Error("About page content not found"); -} - -const { Content } = await render(aboutPost); - -// 使用固定的日期 -const startDate = "2026-1-1"; -const targetDate = "2036-1-1"; ---- - -
    -
    - - - - -
    - -

    - Allen2030 blog -

    -
    -
    -
    -
    diff --git a/src/pages/album.astro b/src/pages/album.astro deleted file mode 100644 index c098bfd..0000000 --- a/src/pages/album.astro +++ /dev/null @@ -1,74 +0,0 @@ ---- -import { Icon } from "astro-icon/components"; -import albumData from "../assets/album.json"; -import Comment from "../components/comment/index.astro"; -import AlbumCard from "../components/widget/AlbumCard.astro"; -import { layoutConfig } from "../config"; -import I18nKey from "../i18n/i18nKey"; -import { i18n } from "../i18n/translation"; -import MainGridLayout from "../layouts/MainGridLayout.astro"; - -// 按创建时间倒序排列 -const albums = albumData.sort( - (a, b) => new Date(b.created).getTime() - new Date(a.created).getTime(), -); - -// 生成相册网格类名 -const albumGridClasses = [ - "grid-cols-1", - "md:grid-cols-2", - "lg:grid-cols-3", -].join(" "); - -// 为评论区创建一个模拟的post对象 -const mockPost = { - slug: "album-index", - data: { - title: "相册", - customSlug: "album", - }, -}; ---- - - -
    -
    -

    相册

    -

    记录生活中的美好瞬间

    - - {albums.length > 0 ? ( -
    - {albums.map((album) => ( - - ))} -
    - ) : ( -
    - -

    暂无相册内容

    -
    - )} -
    -
    - - - -
    - - \ No newline at end of file diff --git a/src/pages/album/[slug].astro b/src/pages/album/[slug].astro deleted file mode 100644 index 8568d04..0000000 --- a/src/pages/album/[slug].astro +++ /dev/null @@ -1,79 +0,0 @@ ---- -import Comment from "@components/comment/index.astro"; -import { Icon } from "astro-icon/components"; -import albumData from "../../assets/album.json"; -import ImageGrid from "../../components/widget/ImageGrid.astro"; -import I18nKey from "../../i18n/i18nKey"; -import { i18n } from "../../i18n/translation"; -import MainGridLayout from "../../layouts/MainGridLayout.astro"; - -export async function getStaticPaths() { - return albumData.map((album) => ({ - params: { slug: album.slug }, - props: { album }, - })); -} - -const { album } = Astro.props; - -if (!album) { - throw new Error("Album not found"); -} - -// 为评论区创建一个模拟的post对象 -const mockPost = { - slug: `album-${album.slug}`, - data: { - title: album.title, - customSlug: `album/${album.slug}`, - }, -}; ---- - - -
    -
    - -
    - - - -
    -

    {album.title}

    -

    {album.description}

    -
    -
    - - -
    - -
    - - {album.images.length} 张图片 -
    - - -
    - - {new Date(album.created).toLocaleDateString('zh-CN')} -
    - - -
    - {album.tags.map((tag) => ( - - #{tag} - - ))} -
    -
    - - - -
    -
    - - - -
    \ No newline at end of file diff --git a/src/pages/archive.astro b/src/pages/archive.astro deleted file mode 100644 index 52ced04..0000000 --- a/src/pages/archive.astro +++ /dev/null @@ -1,14 +0,0 @@ ---- -import ArchivePanel from "@components/ArchivePanel.svelte"; -import I18nKey from "@i18n/i18nKey"; -import { i18n } from "@i18n/translation"; -import MainGridLayout from "@layouts/MainGridLayout.astro"; -import { getSortedPosts } from "../utils/content-utils"; - -const sortedPosts = await getSortedPosts(); ---- - - - - - diff --git a/src/pages/chronobox.astro b/src/pages/chronobox.astro deleted file mode 100644 index 4e53577..0000000 --- a/src/pages/chronobox.astro +++ /dev/null @@ -1,379 +0,0 @@ ---- -import { Icon } from "astro-icon/components"; -import entertainmentData from "../assets/chronobox.json"; -import I18nKey from "../i18n/i18nKey"; -import { i18n } from "../i18n/translation"; -import MainGridLayout from "../layouts/MainGridLayout.astro"; - -// 按类型分组并按ID降序排列 -const groupedItems = entertainmentData.reduce( - (acc: Record, item) => { - const type = item.type || "其他"; - if (!acc[type]) { - acc[type] = []; - } - acc[type].push(item); - return acc; - }, - {} as Record, -); - -// 对每个类型的数组按ID降序排列 -Object.keys(groupedItems).forEach((type) => { - groupedItems[type].sort((a, b) => b.id - a.id); -}); - -// 统计各状态数量 -const statusCounts = entertainmentData.reduce( - (acc: Record, item) => { - acc[item.status] = (acc[item.status] || 0) + 1; - return acc; - }, - {} as Record, -); - -// 获取星级显示 -function getStarRating(rating: number) { - return Array.from({ length: 5 }, (_, i) => i < rating); -} - -// 获取状态颜色 -function getStatusColor(status: string) { - switch (status) { - case "在看": - return "bg-blue-500 text-white"; - case "看过": - return "bg-green-500 text-white"; - case "想看": - return "bg-yellow-500 text-white"; - case "搁置": - return "bg-gray-500 text-white"; - default: - return "bg-gray-400 text-white"; - } -} ---- - - -
    -
    -

    时间盒

    -

    记录观看的番剧、电影等内容

    - - -
    - - {Object.entries(statusCounts).map(([status, count]) => ( - - ))} -
    - - {Object.entries(groupedItems).map(([type, typeItems]) => ( -
    -

    - - {type} - ({typeItems.length}) -

    -
    - {typeItems.map((item) => ( -
    - -
    - {item.url ? ( - - {item.title} - -
    -
    - - - -
    -
    -
    - ) : ( - {item.title} - )} - -
    - {item.status} -
    - -
    - {item.year} -
    -
    - - -
    - {item.url ? ( - -

    - {item.title} -

    -
    - ) : ( -

    - {item.title} -

    - )} - - -
    - 评分: -
    - {getStarRating(item.rating).map((filled) => ( - - ))} -
    -
    - - -

    - {item.description} -

    - - -
    - {item.tags.map((tag) => ( - - {tag} - - ))} -
    -
    -
    - ))} -
    -
    - ))} -
    -
    -
    - - - - \ No newline at end of file diff --git a/src/pages/circle.astro b/src/pages/circle.astro deleted file mode 100644 index 5bd0ee6..0000000 --- a/src/pages/circle.astro +++ /dev/null @@ -1,36 +0,0 @@ ---- -import { getEntry, render } from "astro:content"; -import Comment from "@components/comment/index.astro"; -import Markdown from "@components/misc/Markdown.astro"; -import I18nKey from "../i18n/i18nKey"; -import { i18n } from "../i18n/translation"; -import MainGridLayout from "../layouts/MainGridLayout.astro"; - -const circlePost = await getEntry("spec", "circle"); - -if (!circlePost) { - throw new Error("Circle page content not found"); -} - -const { Content } = await render(circlePost); - -// 为评论区创建一个模拟的post对象 -const mockPost = { - slug: "circle", - data: { - title: i18n(I18nKey.friendsCircle), - }, -}; ---- - - -
    -
    - - - -
    -
    - - -
    \ No newline at end of file diff --git a/src/pages/comments.astro b/src/pages/comments.astro deleted file mode 100644 index 7d2e884..0000000 --- a/src/pages/comments.astro +++ /dev/null @@ -1,37 +0,0 @@ ---- -import { getEntry, render } from "astro:content"; -import Comment from "@components/comment/index.astro"; -import Markdown from "@components/misc/Markdown.astro"; -import { commentConfig } from "../config"; -import I18nKey from "../i18n/i18nKey"; -import { i18n } from "../i18n/translation"; -import MainGridLayout from "../layouts/MainGridLayout.astro"; - -const commentsPost = await getEntry("spec", "comments"); - -if (!commentsPost) { - throw new Error("Comments page content not found"); -} - -const { Content } = await render(commentsPost); - -// 创建一个虚拟的post对象用于评论组件,使用customSlug避免posts前缀 -const virtualPost = { - slug: "comments", - data: { - title: i18n(I18nKey.comments), - customSlug: "comments", - }, -}; ---- - -
    -
    - - - -
    -
    - - -
    \ No newline at end of file diff --git a/src/pages/essay.astro b/src/pages/essay.astro deleted file mode 100644 index 5d94e3a..0000000 --- a/src/pages/essay.astro +++ /dev/null @@ -1,361 +0,0 @@ ---- -import Comment from "@components/comment/index.astro"; -import { Icon } from "astro-icon/components"; -import I18nKey from "../i18n/i18nKey"; -import { i18n } from "../i18n/translation"; -import MainGridLayout from "../layouts/MainGridLayout.astro"; -import { fetchEch0Posts } from "../utils/ech0-api"; - -// 从Ech0 API获取动态数据(服务器端) -let essays = await fetchEch0Posts("https://say.allen2030.com"); - -// 如果服务器端获取失败(只有一条备用数据),标记需要客户端获取 -const needsClientFetch = essays.length === 1 && essays[0].tags.includes("系统"); - -// 为评论区创建一个模拟的post对象 -const mockPost = { - slug: "essay", - data: { - title: "瞬间", - }, -}; ---- - - -
    -
    -

    说说

    -

    Ech0 API智能获取

    - -
    - {essays.map((essay) => ( -
    - -
    - {essay.content} -
    - - - {essay.images && essay.images.length > 0 && ( -
    -
    - {essay.images.map((image, index) => ( -
    - {`瞬间图片 -
    - ))} -
    -
    - )} - - -
    -
    - -
    - - {essay.time} -
    - - - {essay.tags && essay.tags.length > 0 && ( -
    - -
    - {essay.tags.map((tag) => ( - - {tag} - - ))} -
    -
    - )} -
    - - -
    - -
    -
    -
    - ))} -
    -
    -
    - - -
    - -
    -
    - - - - - - diff --git a/src/pages/friends.astro b/src/pages/friends.astro deleted file mode 100644 index 3e6e36d..0000000 --- a/src/pages/friends.astro +++ /dev/null @@ -1,85 +0,0 @@ ---- -import { getEntry, render } from "astro:content"; -import Markdown from "@components/misc/Markdown.astro"; -import items from "../assets/friends.json"; -import { layoutConfig } from "../config"; -import I18nKey from "../i18n/i18nKey"; -import { i18n } from "../i18n/translation"; -import MainGridLayout from "../layouts/MainGridLayout.astro"; - -const friendsPost = await getEntry("spec", "friends"); - -if (!friendsPost) { - throw new Error("Friends page content not found"); -} - -const { Content } = await render(friendsPost); - -// 生成友链网格类名 -const friendsGridClasses = [ - `grid-cols-${layoutConfig.friends.grid.columns.sm}`, - `md:grid-cols-${layoutConfig.friends.grid.columns.md}`, - `lg:grid-cols-${layoutConfig.friends.grid.columns.lg}`, -].join(" "); - -// 按分类对友链进行分组 -const groupedItems = items.reduce( - (acc: Record, item) => { - const category = item.category || "其他"; - if (!acc[category]) { - acc[category] = []; - } - acc[category].push(item); - return acc; - }, - {} as Record, -); ---- - -
    -
    -

    {i18n(I18nKey.friends)}

    - {Object.entries(groupedItems).map(([category, categoryItems]) => ( -
    -

    {category}

    -
    - {categoryItems.map((item) => ( -
    -
    - 站点头像 -
    -
    -
    {item.title}
    -
    {item.desc}
    -
    -
    - {(item.tags && item.tags.length > 0) && item.tags.map((tag,i) => ( -
    - / -
    - - {tag} - ))} - {!(item.tags && item.tags.length > 0) &&
    {i18n(I18nKey.noTags)}
    } -
    -
    -
    - - - -
    - ))} -
    -
    - ))} - - - -
    -
    -
    \ No newline at end of file diff --git a/src/pages/posts/[...slug].astro b/src/pages/posts/[...slug].astro deleted file mode 100644 index b5094a1..0000000 --- a/src/pages/posts/[...slug].astro +++ /dev/null @@ -1,146 +0,0 @@ ---- -import path from "node:path"; -import Comment from "@components/comment/index.astro"; -import AISummary from "@components/misc/AISummary.astro"; -import License from "@components/misc/License.astro"; -import Markdown from "@components/misc/Markdown.astro"; -import I18nKey from "@i18n/i18nKey"; -import { i18n } from "@i18n/translation"; -import MainGridLayout from "@layouts/MainGridLayout.astro"; -import { getSortedPosts } from "@utils/content-utils"; -import { getDir, getPostUrl, getPostUrlBySlug } from "@utils/url-utils"; -import { Icon } from "astro-icon/components"; -import { licenseConfig } from "src/config"; -import ImageWrapper from "../../components/misc/ImageWrapper.astro"; -import PostMetadata from "../../components/PostMeta.astro"; -import { cardConfig, profileConfig, siteConfig } from "../../config"; -import { formatDateToYYYYMMDD } from "../../utils/date-utils"; - -export async function getStaticPaths() { - const blogEntries = await getSortedPosts(); - return blogEntries.map((entry) => ({ - // 使用自定义slug(如果存在)或默认的文件名slug - params: { slug: entry.data.customSlug || entry.slug }, - props: { entry }, - })); -} - -const { entry } = Astro.props; -const { Content, headings } = await entry.render(); - -const { remarkPluginFrontmatter } = await entry.render(); - -const jsonLd = { - "@context": "https://schema.org", - "@type": "BlogPosting", - headline: entry.data.title, - description: entry.data.description || entry.data.title, - keywords: entry.data.tags, - author: { - "@type": "Person", - name: profileConfig.name, - url: Astro.site, - }, - datePublished: formatDateToYYYYMMDD(entry.data.published), - inLanguage: entry.data.lang - ? entry.data.lang.replace("_", "-") - : siteConfig.lang.replace("_", "-"), - // TODO include cover image here -}; ---- - - - -
    -
    - -
    -
    -
    - -
    -
    {remarkPluginFrontmatter.words} {" " + i18n(I18nKey.wordsCount)}
    -
    -
    -
    - -
    -
    - {remarkPluginFrontmatter.minutes} {" " + i18n(remarkPluginFrontmatter.minutes === 1 ? I18nKey.minuteCount : I18nKey.minutesCount)} -
    -
    -
    - - -
    -
    - {entry.data.title} -
    -
    - - -
    - - {!entry.data.image &&
    } -
    - - - {entry.data.description && } - - - - {entry.data.image && siteConfig.post.showCover && -
    -
    - - - - - -
    \ No newline at end of file diff --git a/src/pages/robots.txt.ts b/src/pages/robots.txt.ts deleted file mode 100644 index cf9107f..0000000 --- a/src/pages/robots.txt.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { APIRoute } from "astro"; - -const robotsTxt = ` -User-agent: * -Disallow: /_astro/ - -Sitemap: ${new URL("sitemap-index.xml", import.meta.env.SITE).href} -`.trim(); - -export const GET: APIRoute = () => { - return new Response(robotsTxt, { - headers: { - "Content-Type": "text/plain; charset=utf-8", - }, - }); -}; diff --git a/src/pages/rss.xml.ts b/src/pages/rss.xml.ts deleted file mode 100644 index e7d7565..0000000 --- a/src/pages/rss.xml.ts +++ /dev/null @@ -1,43 +0,0 @@ -import rss from "@astrojs/rss"; -import { getSortedPosts } from "@utils/content-utils"; -import type { APIContext } from "astro"; -import MarkdownIt from "markdown-it"; -import sanitizeHtml from "sanitize-html"; -import { siteConfig } from "@/config"; - -const parser = new MarkdownIt(); - -function stripInvalidXmlChars(str: string): string { - return str.replace( - // biome-ignore lint/suspicious/noControlCharactersInRegex: https://www.w3.org/TR/xml/#charsets - /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]/g, - "", - ); -} - -export async function GET(context: APIContext) { - const blog = await getSortedPosts(); - - return rss({ - title: siteConfig.title, - description: siteConfig.subtitle || " 非淡泊无以明志,非宁静无以致远", - site: context.site ?? "https://blog.fis.ink", - items: blog.map((post) => { - const content = - typeof post.body === "string" ? post.body : String(post.body || ""); - const cleanedContent = stripInvalidXmlChars(content); - const finalSlug = post.data.customSlug || post.slug; - return { - title: post.data.title, - pubDate: post.data.published, - description: post.data.description || "", - link: `/posts/${finalSlug}/`, - content: sanitizeHtml(parser.render(cleanedContent), { - allowedTags: sanitizeHtml.defaults.allowedTags.concat(["img"]), - }), - }; - }), - customData: `${siteConfig.lang}`, - stylesheet: "/rss-style.xsl", - }); -} diff --git a/src/plugins/expressive-code/custom-copy-button.ts b/src/plugins/expressive-code/custom-copy-button.ts deleted file mode 100644 index 47e9cb7..0000000 --- a/src/plugins/expressive-code/custom-copy-button.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { definePlugin } from "@expressive-code/core"; -import type { Element } from "hast"; - -export function pluginCustomCopyButton() { - return definePlugin({ - name: "Custom Copy Button", - hooks: { - postprocessRenderedBlock: (context) => { - function traverse(node: Element) { - if (node.type === "element" && node.tagName === "pre") { - processCodeBlock(node); - return; - } - if (node.children) { - for (const child of node.children) { - if (child.type === "element") traverse(child); - } - } - } - - function processCodeBlock(node: Element) { - const copyButton = { - type: "element" as const, - tagName: "button", - properties: { - className: ["copy-btn"], - "aria-label": "Copy code", - }, - children: [ - { - type: "element" as const, - tagName: "div", - properties: { - className: ["copy-btn-icon"], - }, - children: [ - { - type: "element" as const, - tagName: "svg", - properties: { - viewBox: "0 -960 960 960", - xmlns: "http://www.w3.org/2000/svg", - className: ["copy-btn-icon", "copy-icon"], - }, - children: [ - { - type: "element" as const, - tagName: "path", - properties: { - d: "M368.37-237.37q-34.48 0-58.74-24.26-24.26-24.26-24.26-58.74v-474.26q0-34.48 24.26-58.74 24.26-24.26 58.74-24.26h378.26q34.48 0 58.74 24.26 24.26 24.26 24.26 58.74v474.26q0 34.48-24.26 58.74-24.26 24.26-58.74 24.26H368.37Zm0-83h378.26v-474.26H368.37v474.26Zm-155 238q-34.48 0-58.74-24.26-24.26-24.26-24.26-58.74v-515.76q0-17.45 11.96-29.48 11.97-12.02 29.33-12.02t29.54 12.02q12.17 12.03 12.17 29.48v515.76h419.76q17.45 0 29.48 11.96 12.02 11.97 12.02 29.33t-12.02 29.54q-12.03 12.17-29.48 12.17H213.37Zm155-238v-474.26 474.26Z", - }, - children: [], - }, - ], - }, - { - type: "element" as const, - tagName: "svg", - properties: { - viewBox: "0 -960 960 960", - xmlns: "http://www.w3.org/2000/svg", - className: ["copy-btn-icon", "success-icon"], - }, - children: [ - { - type: "element" as const, - tagName: "path", - properties: { - d: "m389-377.13 294.7-294.7q12.58-12.67 29.52-12.67 16.93 0 29.61 12.67 12.67 12.68 12.67 29.53 0 16.86-12.28 29.14L419.07-288.41q-12.59 12.67-29.52 12.67-16.94 0-29.62-12.67L217.41-430.93q-12.67-12.68-12.79-29.45-.12-16.77 12.55-29.45 12.68-12.67 29.62-12.67 16.93 0 29.28 12.67L389-377.13Z", - }, - children: [], - }, - ], - }, - ], - }, - ], - } as Element; - - if (!node.children) { - node.children = []; - } - node.children.push(copyButton); - } - - traverse(context.renderData.blockAst); - }, - }, - }); -} diff --git a/src/plugins/expressive-code/language-badge.ts b/src/plugins/expressive-code/language-badge.ts deleted file mode 100644 index db54ac7..0000000 --- a/src/plugins/expressive-code/language-badge.ts +++ /dev/null @@ -1,49 +0,0 @@ -/** - * Based on the discussion at https://github.com/expressive-code/expressive-code/issues/153#issuecomment-2282218684 - */ -import { definePlugin } from "@expressive-code/core"; - -export function pluginLanguageBadge() { - return definePlugin({ - name: "Language Badge", - // @ts-expect-error - baseStyles: ({ _cssVar }) => ` - [data-language]::before { - position: absolute; - z-index: 2; - right: 0.5rem; - top: 0.5rem; - padding: 0.1rem 0.5rem; - content: attr(data-language); - font-size: 0.75rem; - font-weight: bold; - text-transform: uppercase; - color: oklch(0.75 0.1 var(--hue)); - background: oklch(0.33 0.035 var(--hue)); - border-radius: 0.5rem; - pointer-events: none; - transition: opacity 0.3s; - opacity: 0; - } - .frame:not(.has-title):not(.is-terminal) { - @media (hover: none) { - & [data-language]::before { - opacity: 1; - margin-right: 3rem; - } - & [data-language]:active::before { - opacity: 0; - } - } - @media (hover: hover) { - & [data-language]::before { - opacity: 1; - } - &:hover [data-language]::before { - opacity: 0; - } - } - } - `, - }); -} diff --git a/src/plugins/rehype-component-admonition.mjs b/src/plugins/rehype-component-admonition.mjs deleted file mode 100644 index 1d3ac60..0000000 --- a/src/plugins/rehype-component-admonition.mjs +++ /dev/null @@ -1,33 +0,0 @@ -/// -import { h } from "hastscript"; - -/** - * Creates an admonition component. - * - * @param {Object} properties - The properties of the component. - * @param {string} [properties.title] - An optional title. - * @param {('tip'|'note'|'important'|'caution'|'warning')} type - The admonition type. - * @param {import('mdast').RootContent[]} children - The children elements of the component. - * @returns {import('mdast').Parent} The created admonition component. - */ -export function AdmonitionComponent(properties, children, type) { - if (!Array.isArray(children) || children.length === 0) - return h( - "div", - { class: "hidden" }, - 'Invalid admonition directive. (Admonition directives must be of block type ":::note{name="name"} :::")', - ); - - let label = null; - if (properties?.["has-directive-label"]) { - label = children[0]; // The first child is the label - // biome-ignore lint/style/noParameterAssign: - children = children.slice(1); - label.tagName = "div"; // Change the tag

    to

    - } - - return h("blockquote", { class: `admonition bdm-${type}` }, [ - h("span", { class: "bdm-title" }, label ? label : type.toUpperCase()), - ...children, - ]); -} diff --git a/src/plugins/rehype-component-github-card.mjs b/src/plugins/rehype-component-github-card.mjs deleted file mode 100644 index b04b067..0000000 --- a/src/plugins/rehype-component-github-card.mjs +++ /dev/null @@ -1,93 +0,0 @@ -/// -import { h } from "hastscript"; - -/** - * Creates a GitHub Card component. - * - * @param {Object} properties - The properties of the component. - * @param {string} properties.repo - The GitHub repository in the format "owner/repo". - * @param {import('mdast').RootContent[]} children - The children elements of the component. - * @returns {import('mdast').Parent} The created GitHub Card component. - */ -export function GithubCardComponent(properties, children) { - if (Array.isArray(children) && children.length !== 0) - return h("div", { class: "hidden" }, [ - 'Invalid directive. ("github" directive must be leaf type "::github{repo="owner/repo"}")', - ]); - - if (!properties.repo || !properties.repo.includes("/")) - return h( - "div", - { class: "hidden" }, - 'Invalid repository. ("repo" attributte must be in the format "owner/repo")', - ); - - const repo = properties.repo; - const cardUuid = `GC${Math.random().toString(36).slice(-6)}`; // Collisions are not important - - const nAvatar = h(`div#${cardUuid}-avatar`, { class: "gc-avatar" }); - const nLanguage = h( - `span#${cardUuid}-language`, - { class: "gc-language" }, - "Waiting...", - ); - - const nTitle = h("div", { class: "gc-titlebar" }, [ - h("div", { class: "gc-titlebar-left" }, [ - h("div", { class: "gc-owner" }, [ - nAvatar, - h("div", { class: "gc-user" }, repo.split("/")[0]), - ]), - h("div", { class: "gc-divider" }, "/"), - h("div", { class: "gc-repo" }, repo.split("/")[1]), - ]), - h("div", { class: "github-logo" }), - ]); - - const nDescription = h( - `div#${cardUuid}-description`, - { class: "gc-description" }, - "Waiting for api.github.com...", - ); - - const nStars = h(`div#${cardUuid}-stars`, { class: "gc-stars" }, "00K"); - const nForks = h(`div#${cardUuid}-forks`, { class: "gc-forks" }, "0K"); - const nLicense = h(`div#${cardUuid}-license`, { class: "gc-license" }, "0K"); - - const nScript = h( - `script#${cardUuid}-script`, - { type: "text/javascript", defer: true }, - ` - fetch('https://api.github.com/repos/${repo}', { referrerPolicy: "no-referrer" }).then(response => response.json()).then(data => { - document.getElementById('${cardUuid}-description').innerText = data.description?.replace(/:[a-zA-Z0-9_]+:/g, '') || "Description not set"; - document.getElementById('${cardUuid}-language').innerText = data.language; - document.getElementById('${cardUuid}-forks').innerText = Intl.NumberFormat('en-us', { notation: "compact", maximumFractionDigits: 1 }).format(data.forks).replaceAll("\u202f", ''); - document.getElementById('${cardUuid}-stars').innerText = Intl.NumberFormat('en-us', { notation: "compact", maximumFractionDigits: 1 }).format(data.stargazers_count).replaceAll("\u202f", ''); - const avatarEl = document.getElementById('${cardUuid}-avatar'); - avatarEl.style.backgroundImage = 'url(' + data.owner.avatar_url + ')'; - avatarEl.style.backgroundColor = 'transparent'; - document.getElementById('${cardUuid}-license').innerText = data.license?.spdx_id || "no-license"; - document.getElementById('${cardUuid}-card').classList.remove("fetch-waiting"); - }).catch(err => { - const c = document.getElementById('${cardUuid}-card'); - c?.classList.add("fetch-error"); - }) - `, - ); - - return h( - `a#${cardUuid}-card`, - { - class: "card-github fetch-waiting no-styling", - href: `https://github.com/${repo}`, - target: "_blank", - repo, - }, - [ - nTitle, - nDescription, - h("div", { class: "gc-infobar" }, [nStars, nForks, nLicense, nLanguage]), - nScript, - ], - ); -} diff --git a/src/plugins/rehype-component-link-card.mjs b/src/plugins/rehype-component-link-card.mjs deleted file mode 100644 index 89a0e48..0000000 --- a/src/plugins/rehype-component-link-card.mjs +++ /dev/null @@ -1,140 +0,0 @@ -/// -import { h } from "hastscript"; - -/** - * Creates a Link Card component for third-party links. - * - * @param {Object} properties - The properties of the component. - * @param {string} properties.url - The URL to link to. - * @param {string} [properties.title] - Optional custom title for the card. - * @param {string} [properties.description] - Optional custom description for the card. - * @param {string} [properties.image] - Optional custom image URL for the card. - * @param {string} [properties.icon] - Optional custom icon URL for the card. - * @param {import('mdast').RootContent[]} children - The children elements of the component. - * @returns {import('mdast').Parent} The created Link Card component. - */ -export function LinkCardComponent(properties, children) { - if (Array.isArray(children) && children.length !== 0) - return h("div", { class: "hidden" }, [ - 'Invalid directive. ("link-card" directive must be leaf type "::link-card{url="https://example.com"}")', - ]); - - if (!properties.url || !properties.url.startsWith("http")) - return h( - "div", - { class: "hidden" }, - 'Invalid URL. ("url" attribute must be a valid HTTP/HTTPS URL)', - ); - - const url = properties.url; - const customTitle = properties.title; - const customDescription = properties.description; - const customImage = properties.image; - const customIcon = properties.icon; - const cardUuid = `LC${Math.random().toString(36).slice(-6)}`; // Collisions are not important - - // Extract domain from URL for display - const domain = new URL(url).hostname; - - // Use custom icon if provided, otherwise use Google favicon service - const iconUrl = - customIcon || `https://www.google.com/s2/favicons?domain=${domain}&sz=64`; - const nFavicon = h(`div#${cardUuid}-favicon`, { - class: "lc-favicon", - style: `background-image: url(${iconUrl})`, - }); - - const nTitle = h("div", { class: "lc-titlebar" }, [ - h("div", { class: "lc-titlebar-left" }, [ - // 隐藏域名显示 - ]), - h("div", { class: "lc-external-icon" }), - ]); - - const nCardTitle = h( - `div#${cardUuid}-title`, - { class: "lc-card-title" }, - customTitle || "Loading...", - ); - - const nDescription = h( - `div#${cardUuid}-description`, - { class: "lc-description" }, - customDescription || "Loading description...", - ); - - const nImage = h( - `div#${cardUuid}-image`, - { class: "lc-image" }, - customImage ? h("img", { src: customImage, alt: "Link preview" }) : null, - ); - - // Only fetch metadata if custom data is not provided - const needsFetch = !customTitle || !customDescription; - - const nScript = needsFetch - ? h( - `script#${cardUuid}-script`, - { type: "text/javascript", defer: true }, - ` - // Simple metadata extraction for link cards - try { - const cardElement = document.getElementById('${cardUuid}-card'); - const titleElement = document.getElementById('${cardUuid}-title'); - const descElement = document.getElementById('${cardUuid}-description'); - - // Set default values if custom ones weren't provided - if (!titleElement.dataset.hasCustomTitle) { - titleElement.innerText = 'Link'; - } - if (!descElement.dataset.hasCustomDesc) { - descElement.innerText = 'Click to visit'; - } - - cardElement.classList.remove("fetch-waiting"); - } catch (err) { - const c = document.getElementById('${cardUuid}-card'); - c?.classList.add("fetch-error"); - } - `, - ) - : null; - - // Set data attributes for custom content - if (customTitle) { - nCardTitle.properties["data-has-custom-title"] = "true"; - } - if (customDescription) { - nDescription.properties["data-has-custom-desc"] = "true"; - } - - // 创建主要内容区域 - const nContentWrapper = h("div", { class: "lc-content-wrapper" }, [ - h("div", { class: "lc-icon-area" }, [nFavicon]), - h("div", { class: "lc-text-area" }, [nTitle, nCardTitle, nDescription]), - ]); - - const cardContent = [nContentWrapper]; - - if (customImage) { - cardContent.push(nImage); - } - - if (nScript) { - cardContent.push(nScript); - } - - return h( - `a#${cardUuid}-card`, - { - class: needsFetch - ? "card-link fetch-waiting no-styling" - : "card-link no-styling", - href: url, - target: "_blank", - rel: "noopener noreferrer", - "data-url": url, - }, - cardContent, - ); -} diff --git a/src/plugins/rehype-component-music-card.mjs b/src/plugins/rehype-component-music-card.mjs deleted file mode 100644 index 72d99c0..0000000 --- a/src/plugins/rehype-component-music-card.mjs +++ /dev/null @@ -1,106 +0,0 @@ -/// -import { h } from "hastscript"; - -/** - * Creates a Music Card component using APlayer and MetingJS. - * - * @param {Object} properties - The properties of the component. - * @param {string} properties.server - Music platform (netease, tencent, kugou, xiami, baidu). - * @param {string} properties.type - Content type (song, playlist, album, search, artist). - * @param {string} properties.id - Music ID from the platform. - * @param {boolean} [properties.mini] - Enable mini mode (default: false). - * @param {boolean} [properties.fixed] - Enable fixed mode (default: false). - * @param {boolean} [properties.autoplay] - Enable autoplay (default: false). - * @param {string} [properties.theme] - Player theme color (default: #2980b9). - * @param {string} [properties.loop] - Loop mode (all, one, none) (default: all). - * @param {string} [properties.order] - Play order (list, random) (default: list). - * @param {number} [properties.volume] - Volume (0-1) (default: 0.7). - * @param {boolean} [properties.mutex] - Prevent multiple players (default: true). - * @param {boolean} [properties.listFolded] - Fold playlist (default: false). - * @param {string} [properties.listMaxHeight] - Max height of playlist (default: 340px). - * @param {import('mdast').RootContent[]} children - The children elements of the component. - * @returns {import('mdast').Parent} The created Music Card component. - */ -export function MusicCardComponent(properties, children) { - if (Array.isArray(children) && children.length !== 0) - return h("div", { class: "hidden" }, [ - 'Invalid directive. ("music" directive must be leaf type "::music{server="netease" type="song" id="123456"}")', - ]); - - if (!properties.server || !properties.type || !properties.id) - return h( - "div", - { class: "hidden" }, - 'Invalid parameters. ("server", "type", and "id" attributes are required)', - ); - - const server = properties.server; - const type = properties.type; - const id = properties.id; - const mini = properties.mini === "true" || properties.mini === true; - const fixed = properties.fixed === "true" || properties.fixed === true; - const autoplay = - properties.autoplay === "true" || properties.autoplay === true; - const theme = properties.theme || "#2980b9"; - const loop = properties.loop || "all"; - const order = properties.order || "list"; - const volume = properties.volume || "0.7"; - const mutex = properties.mutex !== "false" && properties.mutex !== false; - const listFolded = - properties.listFolded === "true" || properties.listFolded === true; - const listMaxHeight = properties.listMaxHeight || "340px"; - - const cardUuid = `MC${Math.random().toString(36).slice(-6)}`; - - // Validate server and type - const validServers = ["netease", "tencent", "kugou", "xiami", "baidu"]; - const validTypes = ["song", "playlist", "album", "search", "artist"]; - - if (!validServers.includes(server)) - return h( - "div", - { class: "hidden" }, - `Invalid server. Supported servers: ${validServers.join(", ")}`, - ); - - if (!validTypes.includes(type)) - return h( - "div", - { class: "hidden" }, - `Invalid type. Supported types: ${validTypes.join(", ")}`, - ); - - // Create the meting-js element with all attributes - const metingAttributes = { - server: server, - type: type, - id: id, - mini: mini.toString(), - fixed: fixed.toString(), - autoplay: autoplay.toString(), - theme: theme, - loop: loop, - order: order, - volume: volume, - mutex: mutex.toString(), - "list-folded": listFolded.toString(), - "list-max-height": listMaxHeight, - "storage-name": `metingjs-${cardUuid}`, - }; - - const nMetingPlayer = h("meting-js", metingAttributes); - - // Create container with music card styling - const nContainer = h( - `div#${cardUuid}-container`, - { - class: "card-music", - "data-server": server, - "data-type": type, - "data-id": id, - }, - [nMetingPlayer], - ); - - return nContainer; -} diff --git a/src/plugins/remark-directive-rehype.js b/src/plugins/remark-directive-rehype.js deleted file mode 100644 index 174cceb..0000000 --- a/src/plugins/remark-directive-rehype.js +++ /dev/null @@ -1,30 +0,0 @@ -import { h } from "hastscript"; -import { visit } from "unist-util-visit"; - -export function parseDirectiveNode() { - return (tree, { _data }) => { - visit(tree, (node) => { - if ( - node.type === "containerDirective" || - node.type === "leafDirective" || - node.type === "textDirective" - ) { - // biome-ignore lint/suspicious/noAssignInExpressions: - const data = node.data || (node.data = {}); - node.attributes = node.attributes || {}; - if ( - node.children.length > 0 && - node.children[0].data && - node.children[0].data.directiveLabel - ) { - // Add a flag to the node to indicate that it has a directive label - node.attributes["has-directive-label"] = true; - } - const hast = h(node.name, node.attributes); - - data.hName = hast.tagName; - data.hProperties = hast.properties; - } - }); - }; -} diff --git a/src/plugins/remark-excerpt.js b/src/plugins/remark-excerpt.js deleted file mode 100644 index 360fe83..0000000 --- a/src/plugins/remark-excerpt.js +++ /dev/null @@ -1,17 +0,0 @@ -// biome-ignore lint/suspicious/noShadowRestrictedNames: -import { toString } from "mdast-util-to-string"; - -/* Use the post's first paragraph as the excerpt */ -export function remarkExcerpt() { - return (tree, { data }) => { - let excerpt = ""; - for (const node of tree.children) { - if (node.type !== "paragraph") { - continue; - } - excerpt = toString(node); - break; - } - data.astro.frontmatter.excerpt = excerpt; - }; -} diff --git a/src/plugins/remark-reading-time.mjs b/src/plugins/remark-reading-time.mjs deleted file mode 100644 index 4813f03..0000000 --- a/src/plugins/remark-reading-time.mjs +++ /dev/null @@ -1,15 +0,0 @@ -// biome-ignore lint/suspicious/noShadowRestrictedNames: -import { toString } from "mdast-util-to-string"; -import getReadingTime from "reading-time"; - -export function remarkReadingTime() { - return (tree, { data }) => { - const textOnPage = toString(tree); - const readingTime = getReadingTime(textOnPage); - data.astro.frontmatter.minutes = Math.max( - 1, - Math.round(readingTime.minutes), - ); - data.astro.frontmatter.words = readingTime.words; - }; -} diff --git a/src/styles/expressive-code.css b/src/styles/expressive-code.css deleted file mode 100644 index 12bb24c..0000000 --- a/src/styles/expressive-code.css +++ /dev/null @@ -1,3 +0,0 @@ -.expressive-code .frame { - @apply !shadow-none; -} diff --git a/src/styles/main.css b/src/styles/main.css deleted file mode 100644 index e85bb35..0000000 --- a/src/styles/main.css +++ /dev/null @@ -1,348 +0,0 @@ -/* 导入 ChillRoundFRegular 字体 */ -@import url('https://cdn.xrbk.cn/fonts/ChillRoundFRegular/result.css'); - -:root { - --font-primary: '寒蝉全圆体', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; -} - -/* 自定义鼠标样式 - 仅在桌面端显示 */ -/* 通过 body 上的 data-cursor-override 属性来控制是否覆盖默认鼠标样式 */ -@media (hover: hover) and (pointer: fine) { - /* 当启用覆盖模式时,浅色模式使用深色鼠标 */ - body[data-cursor-override="true"] *, - body[data-cursor-override="true"] a, - body[data-cursor-override="true"] p { - cursor: url("data:image/svg+xml,") 4 4, auto !important; - } - - /* 当启用覆盖模式时,深色模式使用浅色鼠标 - dark类在html元素上 */ - html.dark body[data-cursor-override="true"] *, - html.dark body[data-cursor-override="true"] a, - html.dark body[data-cursor-override="true"] p { - cursor: url("data:image/svg+xml,") 4 4, auto !important; - } -} - -/* 鼠标跟随元素样式 - 仅在桌面端显示 */ -#g-pointer-1 { - display: none; -} - -@media (hover: hover) and (pointer: fine) { - /* 当启用覆盖模式时,浅色模式使用深色跟随元素 */ - body[data-cursor-override="true"] #g-pointer-2 { - position: fixed; - top: 0; - left: 0; - width: 18px; - height: 18px; - transition: 0.05s linear; - pointer-events: none; - background: rgba(0, 0, 0, 0.25); - border-radius: 50%; - z-index: 9999999; - transform: translate(-50%, -50%); - } - - /* 当启用覆盖模式时,深色模式使用浅色跟随元素 - dark类在html元素上 */ - html.dark body[data-cursor-override="true"] #g-pointer-2 { - background: rgba(255, 255, 255, 0.25); - } - - /* 当未启用覆盖模式时,隐藏跟随元素 */ - body[data-cursor-override="false"] #g-pointer-2 { - display: none !important; - } -} - -/* 移动端隐藏鼠标跟随元素 */ -@media (hover: none) or (pointer: coarse) { - #g-pointer-2 { - display: none !important; - } -} - -body { - font-family: var(--font-primary); - font-weight: 300; /* 调整为正常字重 */ - font-synthesis: none; /* 禁止浏览器合成粗体/斜体 */ - font-stretch: 70%; /* 轻微压缩字体宽度 */ - line-height: 1.5; /* 增加行高改善可读性 */ - letter-spacing: 0.5px; /* 适当增加字间距 */ -} - -/* 导航栏特殊样式 */ -.navbar { - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; - transform: none !important; -} - -@tailwind components; - -@layer components { - .text-secondary { - color: var(--text-secondary) !important; - } - - .text-tertiary { - color: var(--text-tertiary) !important; - } - - .card-base { - @apply rounded-[var(--radius-large)] overflow-hidden transition; - background-color: color-mix(in srgb, var(--card-bg) calc(var(--card-opacity) * 100%), transparent); - } - - a.card-github { - background-color: color-mix(in srgb, var(--card-bg) calc(var(--card-opacity) * 100%), transparent) !important; - } - - a.card-link { - background-color: color-mix(in srgb, var(--card-bg) calc(var(--card-opacity) * 100%), transparent) !important; - } - h1, h2, h3, h4, h5, h6, p, a, span, li, ul, ol, blockquote, code, pre, table, th, td, strong { - @apply transition; - color: var(--text-primary); - } - .card-shadow { - @apply drop-shadow-[0_2px_4px_rgba(0,0,0,0.005)] - } - .card-glass { - @apply bg-opacity-80 backdrop-blur-md border border-white/10; - } - :global(.dark) .card-glass { - @apply bg-opacity-70 border-white/5; - } - .expand-animation { - @apply relative before:ease-out before:transition active:bg-none hover:before:bg-[var(--btn-plain-bg-hover)] active:before:bg-[var(--btn-plain-bg-active)] z-0 - before:absolute before:rounded-[inherit] before:inset-0 before:scale-[0.85] hover:before:scale-100 before:-z-10 - } - .link { - @apply transition rounded-md p-1 -m-1 expand-animation; - } - .link-lg { - @apply transition rounded-md p-1.5 -m-1.5 expand-animation; - } - .float-panel { - @apply top-[5.25rem] rounded-[var(--radius-large)] overflow-hidden bg-[var(--float-panel-bg)] transition shadow-xl dark:shadow-none - } - .float-panel-closed { - @apply -translate-y-1 opacity-0 pointer-events-none - } - .search-panel mark { - @apply bg-transparent text-[var(--primary)] - } - - .btn-card { - @apply transition flex items-center justify-center bg-[var(--card-bg)] hover:bg-[var(--btn-card-bg-hover)] - active:bg-[var(--btn-card-bg-active)] - } - .btn-card.disabled { - @apply pointer-events-none text-black/10 dark:text-white/10 - } - .btn-plain { - @apply transition relative flex items-center justify-center bg-none - text-neutral-800 hover:text-[var(--primary)] dark:text-white/75 dark:hover:text-[var(--primary)]; - &:not(.scale-animation) { - @apply hover:bg-[var(--btn-plain-bg-hover)] active:bg-[var(--btn-plain-bg-active)] - } - &.scale-animation { - @apply expand-animation; - &.current-theme-btn { - @apply before:scale-100 before:opacity-100 before:bg-[var(--btn-plain-bg-hover)] text-[var(--primary)] - } - } - } - .btn-regular { - @apply transition flex items-center justify-center bg-[var(--btn-regular-bg)] hover:bg-[var(--btn-regular-bg-hover)] active:bg-[var(--btn-regular-bg-active)] - text-[var(--btn-content)] dark:text-white/75 - } - - .link-underline { - @apply transition underline decoration-2 decoration-dashed decoration-[var(--link-underline)] - hover:decoration-[var(--link-hover)] active:decoration-[var(--link-active)] underline-offset-[0.25rem] - } - - .toc-hide, - .toc-not-ready { - @apply opacity-0 pointer-events-none - } - - #toc-inner-wrapper { - mask-image: linear-gradient(to bottom, transparent 0%, black 2rem, black calc(100% - 2rem), transparent 100%); - } - - .hide-scrollbar { - scrollbar-width: none; - -ms-overflow-style: none; - } - .hide-scrollbar::-webkit-scrollbar { - display: none; - } - - .text-90 { - @apply text-black/90 dark:text-white/90 - } - .text-75 { - @apply text-neutral-800 dark:text-white/75 - } - .text-50 { - @apply text-neutral-600 dark:text-white/50 - } - .text-30 { - @apply text-black/30 dark:text-white/30 - } - .text-25 { - @apply text-black/25 dark:text-white/25 - } - - .meta-icon { - @apply w-8 h-8 transition rounded-md flex items-center justify-center bg-[var(--btn-regular-bg)] - text-[var(--btn-content)] mr-2 - } - .with-divider { - @apply before:content-['/'] before:ml-1.5 before:mr-1.5 before:text-[var(--meta-divider)] before:text-sm - before:font-medium before:first-of-type:hidden before:transition - } - - .btn-regular-dark { - @apply flex items-center justify-center - bg-[oklch(0.45_0.01_var(--hue))] hover:bg-[oklch(0.50_0.01_var(--hue))] active:bg-[oklch(0.55_0.01_var(--hue))] - dark:bg-[oklch(0.30_0.02_var(--hue))] dark:hover:bg-[oklch(0.35_0.03_var(--hue))] dark:active:bg-[oklch(0.40_0.03_var(--hue))] - } - .btn-regular-dark.success { - @apply bg-[oklch(0.75_0.14_var(--hue))] dark:bg-[oklch(0.75_0.14_var(--hue))] - } -} - -.custom-md img, #post-cover img { - @apply cursor-zoom-in -} - -::selection { - background-color: var(--selection-bg) -} - -.dash-line { - position: relative; -} - -.dash-line::before { - content: ""; - position: absolute; - width: 10%; - height: 100%; - left: calc(50% - 1px); - border-left: 2px dashed var(--line-color); - pointer-events: none; - transition: all 0.3s; - transform: translateY(-50%); -} - -.collapsed { - height: var(--collapsedHeight); -} - -/* =================== */ -/* 📘 AI 摘要模块样式 */ -/* =================== */ - -.ai-summary { - background: var(--card-bg); - border: 1px solid var(--line-divider); - border-radius: 12px; - padding: 8px 8px 12px 8px; - line-height: 1.3; - flex-direction: column; - margin-bottom: 16px; - display: flex; - gap: 5px; - position: relative; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); - transition: all 0.3s; -} - -.ai-summary:hover { - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); - transform: translateY(-1px); -} - -.ai-summary .ai-explanation { - z-index: 10; - padding: 8px 12px; - font-size: 15px; - line-height: 1.4; - @apply text-90; - text-align: justify; -} - -/* ✅ 打字机光标动画 */ -.ai-summary .ai-explanation::after { - content: ''; - display: inline-block; - width: 8px; - height: 2px; - margin-left: 2px; - @apply bg-black/90 dark:bg-white/90; - vertical-align: bottom; - animation: blink-underline 1s ease-in-out infinite; - transition: all 0.3s; - position: relative; - bottom: 3px; -} - -/* 打字完成后隐藏光标 */ -.ai-summary .ai-explanation.typing-complete::after { - display: none; -} - -.ai-summary .ai-title { - z-index: 10; - font-size: 14px; - display: flex; - border-radius: 8px; - align-items: center; - position: relative; - padding: 0 12px; - cursor: default; - user-select: none; -} - -.ai-summary .ai-title .ai-title-left { - display: flex; - align-items: center; - color: var(--primary); -} - -.ai-summary .ai-title .ai-title-left i { - margin-right: 3px; - display: flex; - color: var(--primary); - border-radius: 20px; - justify-content: center; - align-items: center; -} - -.ai-summary .ai-title .ai-title-left .ai-title-text { - font-weight: 500; -} - -.ai-summary .ai-title .ai-tag { - color: var(--btn-content); - font-weight: 300; - margin-left: auto; - display: flex; - align-items: center; - justify-content: center; - transition: 0.3s; -} - -/* ✅ 打字机光标闪烁动画 */ -@keyframes blink-underline { - 0%, 100% { - opacity: 1; - } - 50% { - opacity: 0; - } -} \ No newline at end of file diff --git a/src/styles/markdown-extend.styl b/src/styles/markdown-extend.styl deleted file mode 100644 index e1a4be9..0000000 --- a/src/styles/markdown-extend.styl +++ /dev/null @@ -1,382 +0,0 @@ -.custom-md - - blockquote.admonition - .bdm-title - display: flex - align-items: center - margin-bottom: -.9rem - font-weight: bold - - &:before - content: ' ' - display: inline-block - font-size: inherit - overflow: visible - margin-right: .6rem - height: 1em - width: 1em - vertical-align: -.126em - mask-size: contain - mask-position: center - mask-repeat: no-repeat - transform: translateY(-0.0625rem) - &.bdm-tip - .bdm-title - color: var(--admonitions-color-tip) - - &:before - background: var(--admonitions-color-tip) - mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' width='16' height='16' aria-hidden='true'%3E%3Cpath d='M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z'%3E%3C/path%3E%3C/svg%3E") - - &:before - background: var(--admonitions-color-tip) - &.bdm-note - .bdm-title - color: var(--admonitions-color-note) - - &:before - background: var(--admonitions-color-note) - mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' width='16' height='16' aria-hidden='true'%3E%3Cpath fill='var(--admonitions-color-tip)' d='M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z'%3E%3C/path%3E%3C/svg%3E") - - &:before - background: var(--admonitions-color-note) - &.bdm-important - .bdm-title - color: var(--admonitions-color-important) - - &:before - background: var(--admonitions-color-important) - mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' width='16' height='16' aria-hidden='true'%3E%3Cpath d='M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z'%3E%3C/path%3E%3C/svg%3E") - - &:before - background: var(--admonitions-color-important) - &.bdm-warning - .bdm-title - color: var(--admonitions-color-warning) - - &:before - background: var(--admonitions-color-warning) - mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' width='16' height='16' aria-hidden='true'%3E%3Cpath d='M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z'%3E%3C/path%3E%3C/svg%3E") - - &:before - background: var(--admonitions-color-warning) - &.bdm-caution - .bdm-title - color: var(--admonitions-color-caution) - - &:before - background: var(--admonitions-color-caution) - mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' width='16' height='16' aria-hidden='true'%3E%3Cpath d='M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z'%3E%3C/path%3E%3C/svg%3E") - - &:before - background: var(--admonitions-color-caution) - - img - border-radius: 0.75rem - - hr - border-color: var(--line-divider) - border-style: dashed - - iframe - border-radius: 0.75rem - margin-left: auto - margin-right: auto - max-width: 100% - -a.card-github - display: block - background: var(--license-block-bg) - position: relative - margin: 0.5rem 0 - padding: 1.1rem 1.5rem 1.1rem 1.5rem - color: var(--tw-prose-body) - border-radius: var(--radius-large) - text-decoration-thickness: 0px - text-decoration-line: none - - &:hover - background-color: var(--btn-regular-bg-hover) - - .gc-titlebar - color: var(--btn-content) - - .gc-stars, .gc-forks, .gc-license, .gc-description - color: var(--tw-prose-headings) - - &:before - background-color: var(--tw-prose-headings) - - &:active - scale: .98 - background-color: var(--btn-regular-bg-active); - - .gc-titlebar - display: flex - align-items: center - justify-content: space-between - margin-bottom: 0.5rem - color: var(--tw-prose-headings) - font-size: 1.25rem - font-weight: 500 - - .gc-titlebar-left - display: flex - flex-flow: row nowrap - gap: 0.5rem - - .gc-repo - font-weight: bold - - .gc-owner - font-weight: 300 - position: relative - display: flex - flex-flow: row nowrap - gap: 0.5rem - align-items: center - - .gc-avatar - display: block - overflow: hidden - width: 1.5rem - height: 1.5rem - margin-top: -0.1rem - background-color: var(--primary) - background-size: cover - border-radius: 50% - - .gc-description - margin-bottom: 0.7rem - font-size: 1rem - font-weight: 300 - line-height: 1.5rem - color: var(--tw-prose-body) - - .gc-infobar - display: flex - flex-flow: row nowrap - gap: 1.5rem - color: var(--tw-prose-body) - width: fit-content - - .gc-language - display: none - - .gc-stars, .gc-forks, .gc-license, .github-logo - font-weight: 500 - font-size: 0.875rem - opacity: 0.9; - - &:before - content: ' ' - display: inline-block - height: 1.3em - width: 1.3em - margin-right: .4rem - vertical-align: -.24em - font-size: inherit - background-color: var(--tw-prose-body) - overflow: visible - mask-size: contain - mask-position: center - mask-repeat: no-repeat - transition-property: background-color, background; - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) - transition-duration: 0.15s - - .gc-stars - &:before - mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='16' viewBox='0 0 16 16' version='1.1' width='16'%3E%3Cpath d='M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z'%3E%3C/path%3E%3C/svg%3E") - - .gc-license - &:before - margin-right: .5rem - mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='16' viewBox='0 0 16 16' version='1.1' width='16'%3E%3Cpath d='M8.75.75V2h.985c.304 0 .603.08.867.231l1.29.736c.038.022.08.033.124.033h2.234a.75.75 0 0 1 0 1.5h-.427l2.111 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.006.005-.01.01-.045.04c-.21.176-.441.327-.686.45C14.556 10.78 13.88 11 13 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L12.178 4.5h-.162c-.305 0-.604-.079-.868-.231l-1.29-.736a.245.245 0 0 0-.124-.033H8.75V13h2.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1 0-1.5h2.5V3.5h-.984a.245.245 0 0 0-.124.033l-1.289.737c-.265.15-.564.23-.869.23h-.162l2.112 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.016.015-.045.04c-.21.176-.441.327-.686.45C4.556 10.78 3.88 11 3 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L2.178 4.5H1.75a.75.75 0 0 1 0-1.5h2.234a.249.249 0 0 0 .125-.033l1.288-.737c.265-.15.564-.23.869-.23h.984V.75a.75.75 0 0 1 1.5 0Zm2.945 8.477c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L13 6.327Zm-10 0c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L3 6.327Z'%3E%3C/path%3E%3C/svg%3E") - - .gc-forks - &:before - mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='16' viewBox='0 0 16 16' version='1.1' width='16'%3E%3Cpath d='M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z'%3E%3C/path%3E%3C/svg%3E") - - .github-logo - font-size: 1.25rem - - &:before - background-color: var(--tw-prose-headings) - margin-right: 0 - mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='31' height='32' viewBox='0 0 496 512'%3E%3Cpath fill='%23a1f7cb' d='M165.9 397.4c0 2-2.3 3.6-5.2 3.6c-3.3.3-5.6-1.3-5.6-3.6c0-2 2.3-3.6 5.2-3.6c3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9c2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9c.3 2 2.9 3.3 5.9 2.6c2.9-.7 4.9-2.6 4.6-4.6c-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2c12.8 2.3 17.3-5.6 17.3-12.1c0-6.2-.3-40.4-.3-61.4c0 0-70 15-84.7-29.8c0 0-11.4-29.1-27.8-36.6c0 0-22.9-15.7 1.6-15.4c0 0 24.9 2 38.6 25.8c21.9 38.6 58.6 27.5 72.9 20.9c2.3-16 8.8-27.1 16-33.7c-55.9-6.2-112.3-14.3-112.3-110.5c0-27.5 7.6-41.3 23.6-58.9c-2.6-6.5-11.1-33.3 2.6-67.9c20.9-6.5 69 27 69 27c20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27c13.7 34.7 5.2 61.4 2.6 67.9c16 17.7 25.8 31.5 25.8 58.9c0 96.5-58.9 104.2-114.8 110.5c9.2 7.9 17 22.9 17 46.4c0 33.7-.3 75.4-.3 83.6c0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252C496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2c1.6 1.6 3.9 2.3 5.2 1c1.3-1 1-3.3-.7-5.2c-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9c1.6 1 3.6.7 4.3-.7c.7-1.3-.3-2.9-2.3-3.9c-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2c2.3 2.3 5.2 2.6 6.5 1c1.3-1.3.7-4.3-1.3-6.2c-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9c1.6 2.3 4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2c-1.4-2.3-4-3.3-5.6-2'/%3E%3C/svg%3E") - -a.card-github.fetch-waiting - pointer-events: none - opacity: 0.7 - transition: opacity 0.15s ease-in-out - - .gc-description, .gc-infobar, .gc-avatar - background-color: var(--tw-prose-body) - color: transparent - opacity: 0.5; - animation: pulsate 2s infinite linear - user-select: none - - &:before - background-color: transparent - - .gc-repo - margin-left: -0.1rem - - .gc-description, .gc-infobar - border-radius: 0.5rem - -a.card-github.fetch-error - pointer-events: all - opacity: 1 - -@keyframes pulsate - 0% - opacity: 0.15 - 50% - opacity: 0.25 - 100% - opacity: 0.15 - -// Link Card Styles -a.card-link - display: block - background: var(--license-block-bg) - position: relative - margin: 0.5rem 0 - padding: 1.1rem 1.5rem 1.1rem 1.5rem - color: var(--tw-prose-body) - border-radius: var(--radius-large) - text-decoration-thickness: 0px - text-decoration-line: none - border: 1px solid var(--line-divider) - - &:hover - background-color: var(--btn-regular-bg-hover) - - .lc-titlebar - color: var(--btn-content) - - .lc-card-title, .lc-description - color: var(--tw-prose-headings) - - .lc-external-icon:before - background-color: var(--primary) - - &:active - scale: .98 - background-color: var(--btn-regular-bg-active) - - .lc-content-wrapper - display: flex - gap: 1rem - align-items: flex-start - - .lc-icon-area - flex-shrink: 0 - width: 3rem - display: flex - align-items: flex-start - justify-content: center - padding-top: 0.25rem - - .lc-text-area - flex: 1 - min-width: 0 - - .lc-titlebar - display: none - - .lc-titlebar-left - display: flex - flex-flow: row nowrap - gap: 0.5rem - - .lc-site - display: flex - flex-flow: row nowrap - gap: 0.5rem - align-items: center - - .lc-domain - font-weight: 400 - - .lc-favicon - display: block - overflow: hidden - width: 2.5rem - height: auto - min-height: 2.5rem - aspect-ratio: 1 - background-size: cover - border-radius: 4px - background-color: var(--tw-prose-body) - opacity: 0.9 - - .lc-card-title - margin-bottom: 0.3rem - font-size: 1.25rem - font-weight: 600 - line-height: 1.4 - color: var(--tw-prose-headings) - - .lc-description - margin-bottom: 0 - font-size: 1rem - font-weight: 300 - line-height: 1.5rem - color: var(--tw-prose-body) - opacity: 0.9 - - .lc-image - margin-top: 0 - border-radius: 0.5rem - overflow: hidden - - img - width: 100% - height: auto - max-height: 200px - object-fit: cover - - .lc-external-icon - font-size: 1rem - opacity: 0.6 - - &:before - content: ' ' - display: inline-block - height: 1em - width: 1em - background-color: var(--tw-prose-body) - mask-size: contain - mask-position: center - mask-repeat: no-repeat - mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'%3E%3C/path%3E%3Cpolyline points='15,3 21,3 21,9'%3E%3C/polyline%3E%3Cline x1='10' y1='14' x2='21' y2='3'%3E%3C/line%3E%3C/svg%3E") - transition-property: background-color - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) - transition-duration: 0.15s - -a.card-link.fetch-waiting - pointer-events: none - opacity: 0.7 - transition: opacity 0.15s ease-in-out - - .lc-card-title, .lc-description - background-color: var(--tw-prose-body) - color: transparent - opacity: 0.5 - animation: pulsate 2s infinite linear - user-select: none - border-radius: 0.25rem - -a.card-link.fetch-error - pointer-events: all - opacity: 1 - border-color: var(--admonitions-color-warning) - -.card-github, .gc-description, .gc-titlebar, .gc-stars, .gc-forks, .gc-license, .gc-avatar, .github-logo, .card-link, .lc-card-title, .lc-description, .lc-favicon, .lc-external-icon - transition-property: all - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) - transition-duration: 0.15s diff --git a/src/styles/markdown.css b/src/styles/markdown.css deleted file mode 100644 index c31cf6d..0000000 --- a/src/styles/markdown.css +++ /dev/null @@ -1,143 +0,0 @@ -@tailwind components; - -@layer components { - .btn-regular-dark { - @apply flex items-center justify-center - bg-[oklch(0.45_0.01_var(--hue))] hover:bg-[oklch(0.50_0.01_var(--hue))] active:bg-[oklch(0.55_0.01_var(--hue))] - dark:bg-[oklch(0.30_0.02_var(--hue))] dark:hover:bg-[oklch(0.35_0.03_var(--hue))] dark:active:bg-[oklch(0.40_0.03_var(--hue))] - } - -.custom-md { - h1 { - @apply text-3xl; - } - - h1, h2, h3, h4, h5, h6 { - .anchor { - @apply transition -m-0.5 ml-[0.2ch] p-0.5 select-none opacity-0 no-underline !important; - - .anchor-icon { - @apply mx-[0.45ch] !important; - } - } - - &:hover { - .anchor { - @apply opacity-100 !important; - } - } - } - - a:not(.no-styling) { - @apply relative bg-none transition rounded-md p-1 -m-1 font-medium text-[var(--primary)] - underline decoration-[var(--link-underline)] decoration-1 decoration-dashed underline-offset-4 - before:ease-out before:transition active:bg-none hover:before:bg-[var(--btn-plain-bg-hover)] active:before:bg-[var(--btn-plain-bg-active)] z-0 - before:absolute before:rounded-[inherit] before:inset-0 before:scale-[0.85] hover:before:scale-100 before:-z-10; - box-decoration-break: clone; - -webkit-box-decoration-break: clone; - - &:hover, &:active { - @apply decoration-transparent; - background: var(--btn-plain-bg-hover); - border-bottom: 1px dashed var(--link-hover); - text-decoration: none; - } - - /* External link icon styles */ - .external-link-icon { - @apply inline-block ml-1 opacity-60 transition-opacity; - vertical-align: text-top; - } - - &:hover .external-link-icon { - @apply opacity-100; - } - } - - code { - @apply bg-[var(--inline-code-bg)] text-[var(--inline-code-color)] px-1 py-0.5 rounded-md overflow-hidden; - - font-family: 'JetBrains Mono Variable', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace; - &:before { - content:none; - } - &:after { - content:none; - } - - counter-reset: line; - span.line { - &:before { - @apply text-white/25 mr-4 w-4 inline-block; - content: counter(line); - counter-increment: line; - direction: rtl; - } - &:last-child:empty, &:last-child:has(> span:empty:only-child) { - display: none; - } - } - } - - .copy-btn { - all: initial; - @apply btn-regular-dark opacity-0 shadow-lg shadow-black/50 absolute active:scale-90 h-8 w-8 top-3 right-3 text-sm rounded-lg transition-all ease-in-out z-20 cursor-pointer; - } - .frame:hover .copy-btn { - opacity: 1; - } - - .copy-btn-icon { - @apply absolute top-1/2 left-1/2 transition -translate-x-1/2 -translate-y-1/2 w-4 h-4 fill-white pointer-events-none; - } - .copy-btn .copy-icon { - @apply opacity-100 fill-white dark:fill-white/75; - } - .copy-btn.success .copy-icon { - @apply opacity-0 fill-[var(--deep-text)] - } - .copy-btn .success-icon { - @apply opacity-0 fill-white; - } - .copy-btn.success .success-icon { - @apply opacity-100 - } - - .expressive-code { - @apply my-4; - ::selection { - @apply bg-[var(--codeblock-selection)]; - } - } - - - ul, ol { - li::marker { - @apply text-[var(--primary)]; - } - } - - blockquote { - @apply not-italic border-transparent relative; - font-weight: inherit; - - &:before { - @apply content-[''] absolute -left-1 block transition bg-[var(--btn-regular-bg)] h-full w-1 rounded-full; - } - - /* Remove the double quotes from default styles */ - p:before, p:after { - @apply content-none; - } - - } - - .katex-display-container { - max-width: 100%; - overflow-x: auto; - margin: 1em 0; - } - -} - -} diff --git a/src/styles/photoswipe.css b/src/styles/photoswipe.css deleted file mode 100644 index 8335717..0000000 --- a/src/styles/photoswipe.css +++ /dev/null @@ -1,12 +0,0 @@ -.pswp__button { - @apply transition bg-black/40 hover:bg-black/50 active:bg-black/60 flex items-center justify-center mr-0 w-12 h-12 !important; -} -.pswp__button--zoom, .pswp__button--close { - @apply mt-4 rounded-xl active:scale-90 !important; -} -.pswp__button--zoom { - @apply mr-2.5 !important; -} -.pswp__button--close { - @apply mr-4 !important; -} diff --git a/src/styles/scrollbar.css b/src/styles/scrollbar.css deleted file mode 100644 index ff25757..0000000 --- a/src/styles/scrollbar.css +++ /dev/null @@ -1,42 +0,0 @@ -.scrollbar-base.os-scrollbar { - @apply transition-all; - pointer-events: unset; - - &.os-scrollbar-horizontal { - @apply py-1 px-2 h-4; - .os-scrollbar-track .os-scrollbar-handle { - @apply rounded-full h-1; - } - &:hover .os-scrollbar-track .os-scrollbar-handle { - @apply h-2; - } - } - - &.os-scrollbar-vertical { - @apply px-1 py-1 w-4; - .os-scrollbar-track .os-scrollbar-handle { - @apply rounded-full w-1; - } - &:hover .os-scrollbar-track .os-scrollbar-handle { - @apply w-2; - } - } -} - -.os-scrollbar { - &.scrollbar-auto { - --os-handle-bg: var(--scrollbar-bg); - --os-handle-bg-hover: var(--scrollbar-bg-hover); - --os-handle-bg-active: var(--scrollbar-bg-active); - } - &.scrollbar-dark { - --os-handle-bg: var(--scrollbar-bg-dark); - --os-handle-bg-hover: var(--scrollbar-bg-hover-dark); - --os-handle-bg-active: var(--scrollbar-bg-active-dark); - } - &.scrollbar-light { - --os-handle-bg: var(--scrollbar-bg-light); - --os-handle-bg-hover: var(--scrollbar-bg-hover-light); - --os-handle-bg-active: var(--scrollbar-bg-active-light); - } -} diff --git a/src/styles/title-beautify.css b/src/styles/title-beautify.css deleted file mode 100644 index 76c66eb..0000000 --- a/src/styles/title-beautify.css +++ /dev/null @@ -1,124 +0,0 @@ -/* 标题美化 - 小风车图标效果 */ - -/* 基础图标样式 */ -.custom-md h1::before, -.custom-md h2::before, -.custom-md h3::before, -.custom-md h4::before, -.custom-md h5::before, -.custom-md h6::before { - font-family: "Font Awesome 6 Free"; - font-weight: 900; - content: "\f863"; - display: inline-block; - margin-right: 0.5rem; - position: relative; -} - -/* 动画效果 */ -.custom-md h1::before, -.custom-md h2::before, -.custom-md h3::before, -.custom-md h4::before, -.custom-md h5::before, -.custom-md h6::before { - -webkit-animation: windmill-spin 1.6s linear infinite; - animation: windmill-spin 1.6s linear infinite; -} - -/* 关键帧动画 */ -@-webkit-keyframes windmill-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(-360deg); - transform: rotate(-360deg); - } -} - -@keyframes windmill-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(-360deg); - transform: rotate(-360deg); - } -} - -/* 不同级别标题的颜色和大小 */ -.custom-md h1::before { - color: #ef50a8; - font-size: 1.3rem; - margin-left: -1.35rem; - margin-top: -0.23rem; -} - -.custom-md h2::before { - color: #fb7061; - font-size: 1.1rem; - margin-left: -1.15rem; - margin-top: -0.12rem; -} - -.custom-md h3::before { - color: #ffbf00; - font-size: 0.95rem; - margin-left: -1.02rem; - margin-top: -0.09rem; -} - -.custom-md h4::before { - color: #a9e000; - font-size: 0.8rem; - margin-left: -0.85rem; - margin-top: -0.09rem; -} - -.custom-md h5::before { - color: #57c850; - font-size: 0.7rem; - margin-left: -0.7rem; - margin-top: 0rem; -} - -.custom-md h6::before { - color: #5ec1e0; - font-size: 0.66rem; - margin-left: -0.7rem; - margin-top: 0rem; -} - -/* 鼠标悬停效果 */ -.custom-md h1:hover, -.custom-md h2:hover, -.custom-md h3:hover, -.custom-md h4:hover, -.custom-md h5:hover, -.custom-md h6:hover { - color: #49b1f5; -} - -.custom-md h1:hover::before, -.custom-md h2:hover::before, -.custom-md h3:hover::before, -.custom-md h4:hover::before, -.custom-md h5:hover::before, -.custom-md h6:hover::before { - color: #49b1f5; - -webkit-animation-duration: 3.2s; - animation-duration: 3.2s; -} - -/* 确保不影响锚点链接 */ -.custom-md h1 .anchor, -.custom-md h2 .anchor, -.custom-md h3 .anchor, -.custom-md h4 .anchor, -.custom-md h5 .anchor, -.custom-md h6 .anchor { - margin-left: 0.2ch; -} \ No newline at end of file diff --git a/src/styles/transition.css b/src/styles/transition.css deleted file mode 100644 index 76884a2..0000000 --- a/src/styles/transition.css +++ /dev/null @@ -1,53 +0,0 @@ -/* Page transition animations with Swup */ -html.is-changing .transition-swup-fade { - @apply transition-all duration-200 -} -html.is-animating .transition-swup-fade { - @apply opacity-0 translate-y-4 -} - -/* Fade-in animations for components */ -@keyframes fade-in-up { - 0% { - transform: translateY(2rem); - opacity: 0; - } - 100% { - transform: translateY(0); - opacity: 1; - } -} - -/* Main components */ -.onload-animation { - opacity: 0; - animation: 300ms fade-in-up; - animation-fill-mode: forwards; -} -#navbar { - animation-delay: 0ms -} -#sidebar { - animation-delay: 100ms -} -#swup-container { - outline: none; -} -#content-wrapper { - animation-delay: var(--content-delay); -} -.footer { - animation-delay: 250ms; -} -#banner-credit { - animation-delay: 400ms; -} - -/* Post content */ -#post-container :nth-child(1) { animation-delay: calc(var(--content-delay) + 0ms) } -#post-container :nth-child(2) { animation-delay: calc(var(--content-delay) + 50ms) } -#post-container :nth-child(3) { animation-delay: calc(var(--content-delay) + 100ms) } -#post-container :nth-child(4) { animation-delay: calc(var(--content-delay) + 175ms) } -#post-container :nth-child(5) { animation-delay: calc(var(--content-delay) + 250ms) } -#post-container :nth-child(6) { animation-delay: calc(var(--content-delay) + 325ms) } - diff --git a/src/styles/twikoo.css b/src/styles/twikoo.css deleted file mode 100644 index 9bafc84..0000000 --- a/src/styles/twikoo.css +++ /dev/null @@ -1,274 +0,0 @@ -@tailwind components; - -@layer components { - -:root { - --tk-text: black; -} - -html.dark { - --tk-text: #d1d5db; -} - -.tk-comments { - @apply text-[var(--tk-text)]; -} - -.tk-submit { - .tk-avatar { - @apply hidden; - } -} - -/* Text Area */ -.tk-row { - .tk-col { - @apply flex-col-reverse; - .tk-input { - textarea { - @apply rounded-[var(--radius-large)] py-4 px-6 !min-h-[150px] focus:border-[var(--primary)]; - } - } - } -} - -.el-input { - @apply !rounded-lg; -} - -.tk-meta-input { - @apply min-h-10 relative mt-3; - .el-input-group__prepend { - @apply !bg-inherit; - } - div { - @apply py-1 rounded-l-lg; - min-height: inherit; - } - input { - @apply px-4 rounded-r-lg focus:!border-[var(--primary)]; - min-height: inherit; - } -} - -/* Button */ -.tk-row.actions { - @apply w-full !ml-0 !mt-0; - .__markdown { - @apply !hidden; - } - .tk-preview, - .tk-send, - .tk-cancel { - @apply border-none rounded-lg px-3 py-0 h-8 - !bg-[var(--btn-regular-bg-active)] disabled:!bg-[var(--btn-regular-bg)] - !text-[var(--btn-content)] disabled:!text-[#ffffffa1]; - } -} - -/* Comment title */ -.tk-comments-title { - .__comments svg { - @apply fill-[var(--primary)]; - } -} - -.tk-comment { - @apply border-[1px] border-[rgba(144,147,153,0.31)] p-4 rounded-2xl hover:shadow-md transition-all; - .tk-action-icon svg { - @apply fill-[var(--primary)]; - } -} - -.tk-action { - .tk-action-count { - @apply text-[var(--btn-content)]; - } -} - -.tk-meta { - .tk-tag { - @apply border-none rounded-lg text-[var(--btn-content)]; - } - - .tk-tag-green { - @apply bg-[var(--btn-regular-bg)] dark:bg-[var(--primary)] dark:text-[var(--deep-text)]; - } -} - -.tk-content, -.tk-preview-container { - a { - @apply link link-underline text-[var(--primary)] font-medium; - } - - .tk-ruser { - @apply no-underline; - } - - :not(pre) > code { - @apply bg-[var(--inline-code-bg)] rounded-md text-[--inline-code-color] px-1 py-0.5 font-semibold; - } - - li{ - @apply before:content-['•'] before:text-[var(--primary)]; - } -} - -/* Replies */ -.tk-replies { - .tk-comment { - @apply bg-[var(--card-bg)] bg-opacity-50; - .tk-content { - > span:first-of-type { - @apply text-xs; - } - } - } -} - -.twikoo .code-block { - pre { - @apply !rounded-xl; - } - - .copy-btn-icon { - width: inherit !important; - height: inherit !important; - } -} - -.tk-expand-wrap .tk-expand, -.tk-collapse-wrap .tk-expand { - @apply hover:rounded-lg mt-1 hover:bg-[var(--btn-plain-bg-hover)]; -} - -} - -/* Fix: align emoji and image buttons to the left edge of the input toolbar */ -#twikoo .tk-row.actions { - display: flex !important; - justify-content: flex-start !important; - gap: 0.6rem !important; - padding-left: 0 !important; -} - -/* Target common Twikoo toolbar button classes and generic buttons inside actions */ -#twikoo .tk-row.actions .tk-emoji-btn, -#twikoo .tk-row.actions .tk-image-btn, -#twikoo .tk-row.actions button, -#twikoo .tk-row.actions a { - margin-left: 0 !important; - margin-right: 0.4rem !important; - align-self: center !important; -} - -/* If icon wrapper has padding, reduce it so icons sit closer to left */ -#twikoo .tk-row.actions .el-icon, -#twikoo .tk-row.actions .tk-action-icon { - padding-left: 0 !important; - padding-right: 0.2rem !important; -} - -/* More specific fallbacks for nested toolbar structures */ -#twikoo .tk-row.actions .tk-col, -#twikoo .tk-row.actions .tk-input, -#twikoo .tk-row.actions .tk-toolbar, -#twikoo .tk-row.actions .tk-actions { - padding-left: 0 !important; - margin-left: 0 !important; -} - -/* If the toolbar uses an inner wrapper, align its children to left */ -#twikoo .tk-row.actions .tk-actions > *, -#twikoo .tk-row.actions .tk-toolbar > * { - margin-left: 0 !important; - margin-right: 0.3rem !important; -} - -/* Absolute-position fallback for stubborn themes: pin icons near left edge of the input box */ -#twikoo .tk-row.actions .tk-actions { - position: relative !important; -} -#twikoo .tk-row.actions .tk-emoji-btn, -#twikoo .tk-row.actions .tk-image-btn { - position: relative !important; - left: 0 !important; -} - -/* Reduce left padding inside icon buttons to make them closer to the left edge */ -#twikoo .tk-row.actions .tk-emoji-btn .el-icon, -#twikoo .tk-row.actions .tk-image-btn .el-icon { - padding-left: 0 !important; -} - -/* Enhanced fix for emoji and image button alignment */ -#twikoo .tk-row.actions { - display: flex !important; - justify-content: flex-start !important; - align-items: center !important; - gap: 0.6rem !important; - padding-left: 0 !important; - margin-left: 0 !important; - width: 100% !important; -} - -/* Ensure toolbar buttons are properly aligned */ -#twikoo .tk-emoji-btn, -#twikoo .tk-image-btn { - margin: 0 !important; - padding: 0.2rem !important; - display: inline-flex !important; - align-items: center !important; - justify-content: center !important; - position: static !important; - left: auto !important; - right: auto !important; -} - -/* Fix toolbar container alignment */ -#twikoo .tk-actions { - display: flex !important; - align-items: center !important; - gap: 0.4rem !important; - padding-left: 0 !important; - margin-left: 0 !important; -} - -/* Fix input area alignment */ -#twikoo .tk-input { - padding-left: 0 !important; - margin-left: 0 !important; - width: 100% !important; -} - -/* Fix meta input alignment */ -#twikoo .tk-meta-input { - padding-left: 0 !important; - margin-left: 0 !important; - width: 100% !important; -} - -/* Fix submit area alignment */ -#twikoo .tk-submit { - padding-left: 0 !important; - margin-left: 0 !important; - width: 100% !important; -} - -/* Fix column alignment */ -#twikoo .tk-col { - padding-left: 0 !important; - margin-left: 0 !important; - width: 100% !important; -} - -/* Remove preview button */ -#twikoo .tk-preview { - display: none !important; - visibility: hidden !important; - opacity: 0 !important; - position: absolute !important; - left: -9999px !important; - top: -9999px !important; -} \ No newline at end of file diff --git a/src/styles/variables.styl b/src/styles/variables.styl deleted file mode 100644 index 209dc08..0000000 --- a/src/styles/variables.styl +++ /dev/null @@ -1,102 +0,0 @@ -/* utils */ -white(a) - rgba(255, 255, 255, a) - -black(a) - rgba(0, 0, 0, a) - -rainbow-light = linear-gradient(to right, oklch(0.80 0.10 0), oklch(0.80 0.10 30), oklch(0.80 0.10 60), oklch(0.80 0.10 90), oklch(0.80 0.10 120), oklch(0.80 0.10 150), oklch(0.80 0.10 180), oklch(0.80 0.10 210), oklch(0.80 0.10 240), oklch(0.80 0.10 270), oklch(0.80 0.10 300), oklch(0.80 0.10 330), oklch(0.80 0.10 360)) -rainbow-dark = linear-gradient(to right, oklch(0.70 0.10 0), oklch(0.70 0.10 30), oklch(0.70 0.10 60), oklch(0.70 0.10 90), oklch(0.70 0.10 120), oklch(0.70 0.10 150), oklch(0.70 0.10 180), oklch(0.70 0.10 210), oklch(0.70 0.10 240), oklch(0.70 0.10 270), oklch(0.70 0.10 300), oklch(0.70 0.10 330), oklch(0.70 0.10 360)) - -:root - --radius-large 1rem - --content-delay 150ms - -/* An util to define variables that vary with light and dark mode */ -define(vars) - :root - for key, value in vars - {key}: value[0] - :root.dark - for key, value in vars - if length(value) > 1 - {key}: value[1] - -define({ - --primary: oklch(0.70 0.14 var(--hue)) oklch(0.75 0.14 var(--hue)) - --page-bg: oklch(0.95 0.01 var(--hue)) oklch(0.16 0.014 var(--hue)) - --card-bg: white oklch(0.23 0.015 var(--hue)) - - - --btn-content: oklch(0.45 0.12 var(--hue)) oklch(0.75 0.1 var(--hue)) - --text-primary: oklch(0.25 0.02 var(--hue)) oklch(0.85 0.02 var(--hue)) - --text-secondary: oklch(0.45 0.05 var(--hue)) oklch(0.65 0.05 var(--hue)) - --text-tertiary: oklch(0.55 0.03 var(--hue)) oklch(0.55 0.03 var(--hue)) - - --btn-regular-bg: oklch(0.95 0.025 var(--hue)) oklch(0.33 0.035 var(--hue)) - --btn-regular-bg-hover: oklch(0.9 0.05 var(--hue)) oklch(0.38 0.04 var(--hue)) - --btn-regular-bg-active: oklch(0.85 0.08 var(--hue)) oklch(0.43 0.045 var(--hue)) - - --btn-plain-bg-hover: oklch(0.95 0.025 var(--hue)) oklch(0.30 0.035 var(--hue)) - --btn-plain-bg-active: oklch(0.98 0.01 var(--hue)) oklch(0.27 0.025 var(--hue)) - - --btn-card-bg-hover: oklch(0.98 0.005 var(--hue)) oklch(0.3 0.03 var(--hue)) - --btn-card-bg-active: oklch(0.9 0.03 var(--hue)) oklch(0.35 0.035 var(--hue)) - - --enter-btn-bg: var(--btn-regular-bg) - --enter-btn-bg-hover: var(--btn-regular-bg-hover) - --enter-btn-bg-active: var(--btn-regular-bg-active) - - --deep-text: oklch(0.25 0.02 var(--hue)) - - --title-active: oklch(0.6 0.1 var(--hue)) - - --line-divider: black(0.08) white(0.08) - - --line-color: black(0.1) white(0.1) - --meta-divider: black(0.2) white(0.2) - - --inline-code-bg: var(--btn-regular-bg) - --inline-code-color: var(--btn-content) - --selection-bg: oklch(0.90 0.05 var(--hue)) oklch(0.40 0.08 var(--hue)) - --codeblock-selection: oklch(0.40 0.08 var(--hue)) - --codeblock-bg: oklch(0.17 0.015 var(--hue)) oklch(0.17 0.015 var(--hue)) - --codeblock-topbar-bg: oklch(0.3 0.02 var(--hue)) oklch(0.12 0.015 var(--hue)) - - --license-block-bg: black(0.03) var(--codeblock-bg) - - --link-underline: oklch(0.93 0.04 var(--hue)) oklch(0.40 0.08 var(--hue)) - --link-hover: oklch(0.95 0.025 var(--hue)) oklch(0.40 0.08 var(--hue)) - --link-active: oklch(0.90 0.05 var(--hue)) oklch(0.35 0.07 var(--hue)) - - --float-panel-bg: white oklch(0.19 0.015 var(--hue)) - - --scrollbar-bg-light: black(0.4) - --scrollbar-bg-hover-light: black(0.5) - --scrollbar-bg-active-light: black(0.6) - - --scrollbar-bg-dark: white(0.4) - --scrollbar-bg-hover-dark: white(0.5) - --scrollbar-bg-active-dark: white(0.6) - - --scrollbar-bg: var(--scrollbar-bg-light) var(--scrollbar-bg-dark) - --scrollbar-bg-hover: var(--scrollbar-bg-hover-light) var(--scrollbar-bg-hover-dark) - --scrollbar-bg-active: var(--scrollbar-bg-active-light) var(--scrollbar-bg-active-dark) - - --color-selection-bar: rainbow-light rainbow-dark - - --display-light-icon: 1 0 - --display-dark-icon: 0 1 - - --admonitions-color-tip: oklch(0.7 0.14 180) oklch(0.75 0.14 180) - --admonitions-color-note: oklch(0.7 0.14 250) oklch(0.75 0.14 250) - --admonitions-color-important: oklch(0.7 0.14 310) oklch(0.75 0.14 310) - --admonitions-color-warning: oklch(0.7 0.14 60) oklch(0.75 0.14 60) - --admonitions-color-caution: oklch(0.6 0.2 25) oklch(0.65 0.2 25) - - --toc-badge-bg: oklch(0.9 0.045 var(--hue)) var(--btn-regular-bg) - --toc-btn-hover: oklch(0.92 0.015 var(--hue)) oklch(0.22 0.02 var(--hue)) - --toc-btn-active: oklch(0.90 0.015 var(--hue)) oklch(0.25 0.02 var(--hue)) - --toc-width: calc((100vw - var(--page-width)) / 2 - 1rem) - --toc-item-active: oklch(0.70 0.13 var(--hue)) oklch(0.35 0.07 var(--hue)) -}) diff --git a/src/types/config.ts b/src/types/config.ts deleted file mode 100644 index cb4cb07..0000000 --- a/src/types/config.ts +++ /dev/null @@ -1,204 +0,0 @@ -import type { AUTO_MODE, DARK_MODE, LIGHT_MODE } from "@constants/constants"; - -export type SiteConfig = { - title: string; - subtitle: string; - - lang: string; - - themeColor: { - hue: number; - fixed: boolean; - }; - theme: LIGHT_DARK_MODE; - banner: { - enable: boolean; - type?: "image" | "video"; - src: string; - position?: "top" | "center" | "bottom"; - credit: { - enable: boolean; - text: string; - url?: string; - }; - text?: { - enable: boolean; - title?: string; - subtitle?: string; - }; - }; - pageBackground: { - enable: boolean; - type: "image" | "video"; - src: string; - }; - toc: { - enable: boolean; - depth: 1 | 2 | 3; - }; - post: { - showCover: boolean; - }; - - favicon: Favicon[]; -}; - -export type Favicon = { - src: string; - theme?: "light" | "dark"; - sizes?: string; -}; - -export enum LinkPreset { - Home = 0, - Archive = 1, - About = 2, - Friends = 3, - Moments = 4, -} - -export type NavBarLink = { - name: string; - url: string; - external?: boolean; - icon?: string; - children?: NavBarLink[]; -}; - -export type NavBarConfig = { - links: (NavBarLink | LinkPreset)[]; - showHomeIcon?: boolean; - searchLeftIcons?: { - name: string; - url: string; - icon: string; - external?: boolean; - }[]; -}; - -export type ProfileConfig = { - avatar?: string; - name: string; - bio?: string; - links: { - name: string; - url: string; - icon: string; - }[]; - showStats?: boolean; // 统计信息总开关 - statsConfig?: { - showPosts?: boolean; // 是否显示文章数 - showTags?: boolean; // 是否显示标签数 - showCategories?: boolean; // 是否显示分类数 - }; -}; - -export type LicenseConfig = { - enable: boolean; - name: string; - url: string; -}; - -export type CommentConfig = { - enable: boolean; - type: "twikoo" | "artalk"; - twikoo?: TwikooConfig; - artalk?: ArtalkConfig; -}; - -type TwikooConfig = { - envId: string; - region?: string; - lang?: string; -}; - -type ArtalkConfig = { - server: string; - site: string; - pageKey?: string; - pageTitle?: string; - darkMode?: boolean | "auto"; - useBackendConf?: boolean; - customCSS?: string; -}; - -export type LIGHT_DARK_MODE = - | typeof LIGHT_MODE - | typeof DARK_MODE - | typeof AUTO_MODE; - -export type BlogPostData = { - body: string; - title: string; - published: Date; - description: string; - tags: string[]; - draft?: boolean; - image?: string; - category?: string; - prevTitle?: string; - prevSlug?: string; - nextTitle?: string; - nextSlug?: string; -}; - -export type ExpressiveCodeConfig = { - theme: string; -}; - -export type BeautifyConfig = { - enable: boolean; - field: "post" | "site"; - titlePrefixIcon: string; - titlePrefixIconColor: string; - animation?: { - enable: boolean; - speed: number; - direction: "clockwise" | "counterclockwise"; - rotate: boolean; - }; - hover?: { - enable: boolean; - slowSpeed: number; - color: string; - }; - colors?: { - h1: string; - h2: string; - h3: string; - h4: string; - h5: string; - h6: string; - }; - sizes?: { - h1: string; - h2: string; - h3: string; - h4: string; - h5: string; - h6: string; - }; -}; - -export type SidebarConfig = { - enable: boolean; // 侧边栏总开关,控制整个侧边栏是否显示 - cards: { - profile: boolean; // 个人资料卡片 - categories: boolean; // 分类卡片 - tags: boolean; // 标签卡片 - hitokoto: boolean; // 一言卡片 - advertisement: boolean; // 广告卡片 - }; - advertisement: { - src: string; // 广告图片链接 - url: string; // 广告跳转链接 - alt: string; // 图片alt文本 - showLabel: boolean; // 是否显示广告标识 - labelText: string; // 广告标识文本 - }; -}; - -// 鼠标样式配置 -export const cursorConfig = { - overrideDefault: true, // 是否覆盖访问者系统默认鼠标样式 (false=尊重用户设置, true=强制覆盖) -}; diff --git a/src/utils/console-banner.ts b/src/utils/console-banner.ts deleted file mode 100644 index b43f079..0000000 --- a/src/utils/console-banner.ts +++ /dev/null @@ -1,14 +0,0 @@ -export function printConsoleBanner() { - console.log( - "%cfishcpy", - "background: #007acc; color: white; padding: 4px 8px; font-weight: bold;", - ); - console.log( - "%cblog", - "background: #007acc; color: white; padding: 4px 8px; font-weight: bold;", - ); - console.log( - "%c-------------------------", - "background: #007acc; color: white; padding: 4px 8px; font-weight: bold;", - ); -} diff --git a/src/utils/content-utils.ts b/src/utils/content-utils.ts deleted file mode 100644 index 4bfa8fd..0000000 --- a/src/utils/content-utils.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { getCollection } from "astro:content"; -import I18nKey from "@i18n/i18nKey"; -import { i18n } from "@i18n/translation"; -import { getCategoryUrl } from "@utils/url-utils.ts"; - -export async function getSortedPosts() { - const allBlogPosts = await getCollection("posts", ({ data }) => { - return import.meta.env.PROD ? data.draft !== true : true; - }); - - const sorted = allBlogPosts.sort((a, b) => { - const dateA = new Date(a.data.published); - const dateB = new Date(b.data.published); - return dateA > dateB ? -1 : 1; - }); - - for (let i = 1; i < sorted.length; i++) { - // 计算下一篇文章的实际路径(支持自定义slug) - const nextSlug = sorted[i - 1].data.customSlug || sorted[i - 1].slug; - sorted[i].data.nextSlug = nextSlug; - sorted[i].data.nextTitle = sorted[i - 1].data.title; - } - for (let i = 0; i < sorted.length - 1; i++) { - // 计算上一篇文章的实际路径(支持自定义slug) - const prevSlug = sorted[i + 1].data.customSlug || sorted[i + 1].slug; - sorted[i].data.prevSlug = prevSlug; - sorted[i].data.prevTitle = sorted[i + 1].data.title; - } - - return sorted; -} - -export type Tag = { - name: string; - count: number; -}; - -export async function getTagList(): Promise { - const allBlogPosts = await getCollection<"posts">("posts", ({ data }) => { - return import.meta.env.PROD ? data.draft !== true : true; - }); - - const countMap: { [key: string]: number } = {}; - allBlogPosts.map((post: { data: { tags: string[] } }) => { - post.data.tags.map((tag: string) => { - if (!countMap[tag]) countMap[tag] = 0; - countMap[tag]++; - }); - }); - - // sort tags - const keys: string[] = Object.keys(countMap).sort((a, b) => { - return a.toLowerCase().localeCompare(b.toLowerCase()); - }); - - return keys.map((key) => ({ name: key, count: countMap[key] })); -} - -export type Category = { - name: string; - count: number; - url: string; -}; - -export async function getCategoryList(): Promise { - const allBlogPosts = await getCollection<"posts">("posts", ({ data }) => { - return import.meta.env.PROD ? data.draft !== true : true; - }); - const count: { [key: string]: number } = {}; - allBlogPosts.map((post: { data: { category: string | null } }) => { - if (!post.data.category) { - const ucKey = i18n(I18nKey.uncategorized); - count[ucKey] = count[ucKey] ? count[ucKey] + 1 : 1; - return; - } - - const categoryName = - typeof post.data.category === "string" - ? post.data.category.trim() - : String(post.data.category).trim(); - - count[categoryName] = count[categoryName] ? count[categoryName] + 1 : 1; - }); - - const lst = Object.keys(count).sort((a, b) => { - return a.toLowerCase().localeCompare(b.toLowerCase()); - }); - - const ret: Category[] = []; - for (const c of lst) { - ret.push({ - name: c, - count: count[c], - url: getCategoryUrl(c), - }); - } - return ret; -} diff --git a/src/utils/date-utils.ts b/src/utils/date-utils.ts deleted file mode 100644 index a30bed6..0000000 --- a/src/utils/date-utils.ts +++ /dev/null @@ -1,3 +0,0 @@ -export function formatDateToYYYYMMDD(date: Date): string { - return date.toISOString().substring(0, 10); -} diff --git a/src/utils/ech0-api.ts b/src/utils/ech0-api.ts deleted file mode 100644 index 6a3f8f0..0000000 --- a/src/utils/ech0-api.ts +++ /dev/null @@ -1,199 +0,0 @@ -// Ech0 API 工具函数 - -interface EssayData { - id: number; - content: string; - time: string; - tags: string[]; - images?: string[]; -} - -// 备用数据,当API获取失败时使用 -const fallbackData: EssayData[] = [ - { - id: 1, - content: "数据加载中,请稍后刷新页面...", - time: new Date().toISOString().split("T")[0], - tags: ["系统"], - }, -]; - -/** - * 从Ech0 RSS获取动态数据 - * @param apiUrl Ech0 API地址 - * @returns 转换后的动态数据数组 - */ -export async function fetchEch0Posts(apiUrl: string): Promise { - try { - console.log("Fetching Ech0 posts from:", `${apiUrl}/rss`); - - // 设置超时 - const controller = new AbortController(); - const timeoutId = setTimeout(() => controller.abort(), 10000); // 10秒超时 - - const response = await fetch(`${apiUrl}/rss`, { - signal: controller.signal, - headers: { - Accept: "application/rss+xml, application/xml, text/xml, */*", - }, - }); - - clearTimeout(timeoutId); - - if (!response.ok) { - throw new Error( - `Failed to fetch Ech0 posts: ${response.status} ${response.statusText}`, - ); - } - - const xmlText = await response.text(); - console.log("RSS response length:", xmlText.length); - - if (!xmlText || xmlText.length === 0) { - throw new Error("Empty RSS response"); - } - - const data = parseRssData(xmlText); - console.log("Parsed essays count:", data.length); - - if (data.length === 0) { - console.warn("No essays found in RSS feed"); - return fallbackData; - } - - return data; - } catch (error) { - console.error("Error fetching Ech0 posts:", error); - // 出错时返回备用数据,避免页面显示空白 - return fallbackData; - } -} - -/** - * 解析RSS XML数据 - * @param xmlText RSS XML文本 - * @returns 转换后的动态数据数组 - */ -function parseRssData(xmlText: string): EssayData[] { - // 使用正则表达式解析RSS数据,避免使用DOMParser(浏览器特有API) - const entryRegex = /([\s\S]*?)<\/entry>/g; - const entries: EssayData[] = []; - let match: RegExpExecArray | null = null; - - let index = 0; - while (true) { - match = entryRegex.exec(xmlText); - if (match === null) break; - const entryText = match[1]; - index++; - - // 提取更新时间 - const updatedRegex = /([\s\S]*?)<\/updated>/; - const updatedMatch = entryText.match(updatedRegex); - const updated = updatedMatch ? updatedMatch[1] : ""; - - // 提取摘要(使用更宽松的正则表达式,支持换行符) - const summaryRegex = /]*>([\s\S]*?)<\/summary>/i; - const summaryMatch = entryText.match(summaryRegex); - const summary = summaryMatch ? summaryMatch[1] : ""; - - // 提取纯文本内容 - const content = extractPlainText(summary); - - // 提取图片 - const images = extractImages(summary); - - entries.push({ - id: index, - content, - time: formatDate(updated), - tags: ["生活"], // 默认标签 - images: images.length > 0 ? images : undefined, - }); - } - - // 按ID倒序排列 - return entries.sort((a, b) => b.id - a.id); -} - -/** - * 从HTML中提取纯文本 - * @param html HTML文本 - * @returns 纯文本 - */ -function extractPlainText(html: string): string { - if (!html) return "[无内容]"; - - // 解码HTML实体 - const decodedHtml = html - .replace(/</g, "<") - .replace(/>/g, ">") - .replace(/&/g, "&") - .replace(/"/g, '"') - .replace(/"/g, '"') - .replace(/'/g, "'") - .replace(/ /g, "\n") - .replace(/ /g, "\r") - .replace(/ /g, "\n") - .replace(/ /g, "\r"); - - // 使用正则表达式移除HTML标签 - const plainText = decodedHtml.replace(/<[^>]*>/g, "").trim(); - - // 如果纯文本为空,说明可能是纯图片的说说,返回一个占位符 - return plainText || "[图片]"; -} - -/** - * 从HTML中提取图片URL - * @param html HTML文本 - * @returns 图片URL数组 - */ -function extractImages(html: string): string[] { - if (!html) return []; - - // 解码HTML实体 - const decodedHtml = html - .replace(/</g, "<") - .replace(/>/g, ">") - .replace(/&/g, "&") - .replace(/"/g, '"') - .replace(/"/g, '"') - .replace(/'/g, "'"); - - // 使用更宽松的正则表达式提取图片URL - const imgRegex = /]*src=["']([^"']+)["']/gi; - const images: string[] = []; - let match: RegExpExecArray | null = null; - - while (true) { - match = imgRegex.exec(decodedHtml); - if (match === null) break; - let url = match[1]; - - // 将HTTP URL转换为HTTPS - if (url.startsWith("http://")) { - url = url.replace("http://", "https://"); - } - - images.push(url); - } - - return images; -} - -/** - * 格式化日期 - * @param dateString ISO日期字符串 - * @returns YYYY-MM-DD格式的日期字符串 - */ -function formatDate(dateString: string): string { - if (!dateString) return new Date().toISOString().split("T")[0]; - - try { - const date = new Date(dateString); - return date.toISOString().split("T")[0]; - } catch { - return new Date().toISOString().split("T")[0]; - } -} diff --git a/src/utils/setting-utils.ts b/src/utils/setting-utils.ts deleted file mode 100644 index 3b275b2..0000000 --- a/src/utils/setting-utils.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { - AUTO_MODE, - DARK_MODE, - DEFAULT_THEME, - LIGHT_MODE, -} from "@constants/constants.ts"; -import { expressiveCodeConfig, siteConfig } from "@/config"; -import type { LIGHT_DARK_MODE } from "@/types/config"; - -export function getDefaultHue(): number { - const fallback = "250"; - const configCarrier = document.getElementById("config-carrier"); - return Number.parseInt(configCarrier?.dataset.hue || fallback); -} - -export function getHue(): number { - const stored = localStorage.getItem("hue"); - return stored ? Number.parseInt(stored) : getDefaultHue(); -} - -export function setHue(hue: number): void { - localStorage.setItem("hue", String(hue)); - const r = document.querySelector(":root") as HTMLElement; - if (!r) { - return; - } - r.style.setProperty("--hue", String(hue)); -} - -export function getConfigTheme(): LIGHT_DARK_MODE { - return siteConfig.theme; -} - -export function isThemeForced(): boolean { - const configTheme = getConfigTheme(); - return configTheme === LIGHT_MODE || configTheme === DARK_MODE; -} - -export function applyThemeToDocument(theme: LIGHT_DARK_MODE) { - const htmlElement = document.documentElement; - if (!htmlElement) return; - - switch (theme) { - case LIGHT_MODE: - htmlElement.classList.remove("dark"); - break; - case DARK_MODE: - htmlElement.classList.add("dark"); - break; - case AUTO_MODE: - if (window.matchMedia("(prefers-color-scheme: dark)").matches) { - htmlElement.classList.add("dark"); - } else { - htmlElement.classList.remove("dark"); - } - break; - } - - // Set the theme for Expressive Code - htmlElement.setAttribute( - "data-theme", - expressiveCodeConfig.theme, - ); -} - -export function setTheme(theme: LIGHT_DARK_MODE): void { - if (isThemeForced()) { - applyThemeToDocument(getConfigTheme()); - return; - } - localStorage.setItem("theme", theme); - applyThemeToDocument(theme); -} - -export function getStoredTheme(): LIGHT_DARK_MODE { - if (isThemeForced()) { - return getConfigTheme(); - } - return (localStorage.getItem("theme") as LIGHT_DARK_MODE) || DEFAULT_THEME; -} diff --git a/src/utils/url-utils.ts b/src/utils/url-utils.ts deleted file mode 100644 index c1c4893..0000000 --- a/src/utils/url-utils.ts +++ /dev/null @@ -1,51 +0,0 @@ -import I18nKey from "@i18n/i18nKey"; -import { i18n } from "@i18n/translation"; - -export function pathsEqual(path1: string, path2: string) { - const normalizedPath1 = path1.replace(/^\/|\/$/g, "").toLowerCase(); - const normalizedPath2 = path2.replace(/^\/|\/$/g, "").toLowerCase(); - return normalizedPath1 === normalizedPath2; -} - -function joinUrl(...parts: string[]): string { - const joined = parts.join("/"); - return joined.replace(/\/+/g, "/"); -} - -export function getPostUrlBySlug(slug: string): string { - return url(`/posts/${slug}/`); -} - -// 新增:支持自定义路径的函数 -export function getPostUrl(entry: any): string { - // 如果有自定义slug,使用自定义slug;否则使用默认的文件名slug - const finalSlug = entry.data?.customSlug || entry.slug; - return url(`/posts/${finalSlug}/`); -} - -export function getTagUrl(tag: string): string { - if (!tag) return url("/archive/"); - return url(`/archive/?tag=${encodeURIComponent(tag.trim())}`); -} - -export function getCategoryUrl(category: string | null): string { - if ( - !category || - category.trim() === "" || - category.trim().toLowerCase() === i18n(I18nKey.uncategorized).toLowerCase() - ) - return url("/archive/?uncategorized=true"); - return url(`/archive/?category=${encodeURIComponent(category.trim())}`); -} - -export function getDir(path: string): string { - const lastSlashIndex = path.lastIndexOf("/"); - if (lastSlashIndex < 0) { - return "/"; - } - return path.substring(0, lastSlashIndex + 1); -} - -export function url(path: string) { - return joinUrl("", import.meta.env.BASE_URL, path); -} diff --git a/svelte.config.js b/svelte.config.js deleted file mode 100644 index d8f72ef..0000000 --- a/svelte.config.js +++ /dev/null @@ -1,5 +0,0 @@ -import { vitePreprocess } from "@astrojs/svelte"; - -export default { - preprocess: [vitePreprocess({ script: true })], -}; diff --git a/tailwind.config.cjs b/tailwind.config.cjs deleted file mode 100644 index 2c41dfb..0000000 --- a/tailwind.config.cjs +++ /dev/null @@ -1,40 +0,0 @@ -/** @type {import('tailwindcss').Config} */ -const defaultTheme = require("tailwindcss/defaultTheme"); - -// 从 config.ts 导入屏幕断点配置 -const screensConfig = { - sm: "568px", - md2: "726px", - md: "924px", - lg: "1400px", - xl: "1536px", -}; - -module.exports = { - content: ["./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue,mjs}"], - darkMode: "class", // allows toggling dark mode manually - safelist: [ - // 确保动态生成的网格类名被包含在CSS中 - "grid-cols-1", - "grid-cols-2", - "grid-cols-3", - "md2:grid-cols-1", - "md2:grid-cols-2", - "md2:grid-cols-3", - "md:grid-cols-1", - "md:grid-cols-2", - "md:grid-cols-3", - "lg:grid-cols-1", - "lg:grid-cols-2", - "lg:grid-cols-3", - ], - theme: { - extend: { - fontFamily: { - sans: ["Roboto", "sans-serif", ...defaultTheme.fontFamily.sans], - }, - screens: screensConfig, - }, - }, - plugins: [require("@tailwindcss/typography")], -}; diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 3c708e6..0000000 --- a/tsconfig.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "extends": "astro/tsconfigs/strict", - "compilerOptions": { - "baseUrl": ".", - "strictNullChecks": true, - "allowJs": false, - "declaration": true, - "plugins": [ - { - "name": "@astrojs/ts-plugin" - } - ], - "paths": { - "@components/*": ["src/components/*"], - "@assets/*": ["src/assets/*"], - "@constants/*": ["src/constants/*"], - "@utils/*": ["src/utils/*"], - "@i18n/*": ["src/i18n/*"], - "@layouts/*": ["src/layouts/*"], - "@/*": ["src/*"] - } - }, - "include": ["src/**/*"] -} diff --git a/vercel.json b/vercel.json deleted file mode 100644 index 0967ef4..0000000 --- a/vercel.json +++ /dev/null @@ -1 +0,0 @@ -{}