diff --git a/.github/workflows/check.yaml b/.github/workflows/check.yaml new file mode 100644 index 0000000..2f37e95 --- /dev/null +++ b/.github/workflows/check.yaml @@ -0,0 +1,27 @@ +name: Code Checks + +on: + push: + branches: ['main'] + pull_request: + branches: ['main'] + +jobs: + check: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version-file: '.nvmrc' + + - name: Install dependencies + run: corepack pnpm i + + - name: Lint + run: corepack pnpm lint diff --git a/.github/workflows/upload_artifact.yaml b/.github/workflows/upload_artifact.yaml index f8ae720..77d3d72 100644 --- a/.github/workflows/upload_artifact.yaml +++ b/.github/workflows/upload_artifact.yaml @@ -12,7 +12,7 @@ jobs: - name: Checkout uses: actions/checkout@v4 with: - fetch-depth: 0 + fetch-depth: 0 - uses: pnpm/action-setup@v4 with: version: 9 diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..016e34b --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v20.17.0 diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..fb08ec3 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,3 @@ +pnpm-lock.yaml +asserts +.vitepress/dist diff --git a/.prettierrc.yml b/.prettierrc.yml new file mode 100644 index 0000000..4869ec9 --- /dev/null +++ b/.prettierrc.yml @@ -0,0 +1,5 @@ +singleQuote: true +semi: false +printWidth: 100 +trailingComma: none +plugins: ['prettier-plugin-lint-md'] diff --git a/.vitepress/config.mts b/.vitepress/config.mts index d7a0445..a8f48fc 100644 --- a/.vitepress/config.mts +++ b/.vitepress/config.mts @@ -1,32 +1,29 @@ import { defineConfig } from 'vitepress' export default defineConfig({ - lang: "zh-CN", - title: "PKU Clab 文档", - description: "开箱即用的免费云计算服务,为教学与科研服务。", + lang: 'zh-CN', + title: 'PKU Clab 文档', + description: '开箱即用的免费云计算服务,为教学与科研服务。', head: [['link', { rel: 'icon', href: '/favicon.ico' }]], lastUpdated: true, base: '/', cleanUrls: true, - srcExclude: [ 'README.md' ], + srcExclude: ['README.md'], themeConfig: { i18nRouting: false, - logo: "/logo.svg", + logo: '/logo.svg', logoLink: '/docs/getting-started/introduction', nav: [ - { text: 'PKU Clab', link: 'https://clab.pku.edu.cn', target: '_self'}, + { text: 'PKU Clab', link: 'https://clab.pku.edu.cn', target: '_self' }, { text: '文档', link: '/docs/getting-started/introduction', activeMatch: '/docs' }, - { text: '课程专区', link: '/courses', activeMatch: '/courses' }, + { text: '课程专区', link: '/courses', activeMatch: '/courses' } ], sidebar: { '/courses': [ { text: '课程专区', items: [ - { text: 'ICS', items: [ - { text: "快速开始", link: '/courses/ics/getting-started'} - ] - } + { text: 'ICS', items: [{ text: '快速开始', link: '/courses/ics/getting-started' }] } ] } ], @@ -35,28 +32,34 @@ export default defineConfig({ text: '文档', items: [ { text: '快速开始', link: '/docs/getting-started/introduction' }, - { text: '网络', items: [ - { text: "自组网", link: '/docs/networking/private-network'}, - { text: "Router和浮动IP", link: '/docs/networking/router-and-floating-ip'}, - { text: "安全组", link: '/docs/networking/security-group'} - ] + { + text: '计算', + items: [{ text: '实例操作', link: '/docs/compute/instance-operations' }] + }, + { + text: '网络', + items: [ + { text: '自组网', link: '/docs/networking/private-network' }, + { text: 'Router和浮动IP', link: '/docs/networking/router-and-floating-ip' }, + { text: '安全组', link: '/docs/networking/security-group' } + ] }, - { text: '储存', items: [ - { text: "Volume类型", link: '/docs/storage/volume-type'}, - { text: "Volume快照和备份", link: '/docs/storage/volume-snapshots-and-backups'}, - { text: "高级功能", link: '/docs/storage/advanced'} - ] + { + text: '储存', + items: [ + { text: 'Volume类型', link: '/docs/storage/volume-type' }, + { text: 'Volume快照和备份', link: '/docs/storage/volume-snapshots-and-backups' }, + { text: '高级功能', link: '/docs/storage/advanced' } + ] }, { text: '镜像站使用指南', link: '/docs/getting-started/lcpu-mirror' }, { text: 'FAQ', link: '/docs/faq' }, { text: '贡献者与致谢', link: '/docs/contributors' } ] } - ], + ] }, - socialLinks: [ - { icon: 'github', link: 'https://github.com/lcpu-club' } - ], + socialLinks: [{ icon: 'github', link: 'https://github.com/lcpu-club' }], footer: { message: '由北京大学学生 Linux 俱乐部开发并维护', copyright: '© 2024 LCPU Club, licensed under CC BY-SA 4.0' @@ -77,11 +80,11 @@ export default defineConfig({ pattern: 'https://github.com/lcpu-club/clab_docs/edit/main/:path', text: '在GitHub上更新本页' }, - darkModeSwitchLabel: "颜色选择", - lightModeSwitchTitle: "切换至亮色模式", - darkModeSwitchTitle: "切换至暗色模式", - sidebarMenuLabel: "目录", - returnToTopLabel: "回到顶部", + darkModeSwitchLabel: '颜色选择', + lightModeSwitchTitle: '切换至亮色模式', + darkModeSwitchTitle: '切换至暗色模式', + sidebarMenuLabel: '目录', + returnToTopLabel: '回到顶部', externalLinkIcon: true, search: { provider: 'local', diff --git a/.vitepress/theme/custom.css b/.vitepress/theme/custom.css index 1b25785..a040e74 100644 --- a/.vitepress/theme/custom.css +++ b/.vitepress/theme/custom.css @@ -5,4 +5,4 @@ .outline-link.active { color: var(--vp-c-brand-1) !important; -} \ No newline at end of file +} diff --git a/.vitepress/theme/index.mts b/.vitepress/theme/index.mts index 32afc77..a02c67e 100644 --- a/.vitepress/theme/index.mts +++ b/.vitepress/theme/index.mts @@ -1,4 +1,4 @@ import DefaultTheme from 'vitepress/theme-without-fonts' import './custom.css' -export default DefaultTheme \ No newline at end of file +export default DefaultTheme diff --git a/README.md b/README.md index c278959..353ee49 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # PKU Clab Documentation -This is the documentation for PKU Clab. +This is the documentation for PKU Clab. ## Building site @@ -12,9 +12,8 @@ This repo is shipped with a [GitHub Action](https://github.com/lcpu-club/clab_do ## Contributing -To write documentation, you can PR to corresponding `.md` files. You can follow [VitePress Writing Guide](https://vitepress.dev/guide/markdown) for syntaxing. +To write documentation, you can PR to corresponding `.md` files. You can follow [VitePress Writing Guide](https://vitepress.dev/guide/markdown) for syntaxing. To update website structure, you need to modify `main/.vitepress/config.mts` and corresponding sections. Run `pnpm run docs:dev` to start developing. - diff --git a/assets/compute/resize-1.png b/assets/compute/resize-1.png new file mode 100644 index 0000000..4597d35 Binary files /dev/null and b/assets/compute/resize-1.png differ diff --git a/assets/compute/resize-2.png b/assets/compute/resize-2.png new file mode 100644 index 0000000..0b1eb5a Binary files /dev/null and b/assets/compute/resize-2.png differ diff --git a/assets/compute/resize-notify.png b/assets/compute/resize-notify.png new file mode 100644 index 0000000..5e0fb1e Binary files /dev/null and b/assets/compute/resize-notify.png differ diff --git a/courses/ics/getting-started.md b/courses/ics/getting-started.md index 6d48058..04cda39 100644 --- a/courses/ics/getting-started.md +++ b/courses/ics/getting-started.md @@ -11,12 +11,13 @@ ICS 课程使用 CLab 作为实验环境。理论上所有 Lab 都需要在使 # 虚拟机配置 建议配置: -- 类型:P3或l2实例(2C2G),配置 20-40G SSD 储存 + +- 类型:P3 或 l2 实例(2C2G),配置 20-40G SSD 储存 - 启动源 :镜像,选择 Ubuntu 分类中的“Ubuntu for ICS 2024” -- 网络:共享网络中,同时勾选pku-new与ics2024a。2024年秋学期的网络已于9月11日为所有选课同学开通,并将于9月12-18日每天晚上12点,为选课但未开通的同学尝试开通。请务必登陆 CLab 平台,同意用户公约并创建账号。 -- 如已经创建账号,但创建完成的第二天仍然看不到ics2024a网络,请发邮件至`linuxclub@pku.edu.cn` +- 网络:共享网络中,同时勾选 pku-new 与 ics2024a。2024 年秋学期的网络已于 9 月 11 日为所有选课同学开通,并将于 9 月 12-18 日每天晚上 12 点,为选课但未开通的同学尝试开通。请务必登陆 CLab 平台,同意用户公约并创建账号。 +- 如已经创建账号,但创建完成的第二天仍然看不到 ics2024a 网络,请发邮件至`linuxclub@pku.edu.cn` -注意,创建网络时应该先先后勾选PKU网络和ics2024a,顺序不能颠倒。第一个勾选的网络会作为主网络,如果ics2024a作为主网络,将不能从校园网连接。 +注意,创建网络时应该先先后勾选 PKU 网络和 ics2024a,顺序不能颠倒。第一个勾选的网络会作为主网络,如果 ics2024a 作为主网络,将不能从校园网连接。 # 安全须知 @@ -48,7 +49,7 @@ lcpu disconnect 已预装 lab 所需环境。由于环境可能会热更新,大家可以经常运行如下命令,保持环境最新: -``` +```plain sudo apt update &&sudo apt upgrade ``` @@ -56,6 +57,6 @@ sudo apt update &&sudo apt upgrade 该机器不会删除,配置一次即可后续课程一直使用。不过课程结束后若需要长期使用,请运行以下命令,禁用 ICS 课程的工具命令。 -``` +```plain sudo systemctl disable lcpud && sudo reboot ``` diff --git a/courses/index.md b/courses/index.md index 2033950..65d5dcc 100644 --- a/courses/index.md +++ b/courses/index.md @@ -4,5 +4,6 @@ next: false prev: false --- -CLab作为服务北大师生的云计算平台,目前已经开通如下课程的专属支持,可在以下页面查看课程专属文档。 -- [计算机系统导论](/courses/ics/getting-started) \ No newline at end of file +CLab 作为服务北大师生的云计算平台,目前已经开通如下课程的专属支持,可在以下页面查看课程专属文档。 + +- [计算机系统导论](/courses/ics/getting-started) diff --git a/docs/compute/instance-operations.md b/docs/compute/instance-operations.md new file mode 100644 index 0000000..83fd5e7 --- /dev/null +++ b/docs/compute/instance-operations.md @@ -0,0 +1,25 @@ +--- +title: 实例操作 +--- + +# 更改实例类型(缩小或扩大实例) + +有时候,我们希望更改实例的类型,比如将一个性能较低的实例扩大为性能较高的实例,或者将一个性能较高的实例缩小为性能较低的实例。这种情况下,我们可以通过更改实例的类型来实现。 + +进入 **控制台>计算>云主机** 如下图所示操作: + +![resize-1](/assets/compute/resize-1.png) + +将打开修改配置弹窗如下图。在区域 1 选择适合你的配置,在区域 2 勾选同意,然后点击确定即可。 + +![resize-2](/assets/compute/resize-2.png) + +> [!WARNING] 警告 +> 更改配置将对正在运行的实例进行强制关机。\ +> 若有重要数据,请提前保存,并自行关机后再进行配置更改。 + +确认后将可以看到如下通知,同时实例状态变更为 **正在修改配置/迁移**。 + +![resize-notify](/assets/compute/resize-notify.png) + +稍等片刻后,实例状态将变更为 **运行中**,此时配置已经更改完成。 diff --git a/docs/contributors.md b/docs/contributors.md index 4e11d6f..647c8eb 100644 --- a/docs/contributors.md +++ b/docs/contributors.md @@ -41,4 +41,4 @@ title: 贡献者与致谢 # 加入我们 -如果你对项目感兴趣,欢迎加入我们!同时,欢迎加入学生 Linux 俱乐部,共同碰撞思想的火花。请发邮件至 `linuxclub@pku.edu.cn`,我们会尽快回复。 \ No newline at end of file +如果你对项目感兴趣,欢迎加入我们!同时,欢迎加入学生 Linux 俱乐部,共同碰撞思想的火花。请发邮件至 `linuxclub@pku.edu.cn`,我们会尽快回复。 diff --git a/docs/faq.md b/docs/faq.md index 2830099..a3cebb7 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -2,4 +2,4 @@ title: 常见问题 --- -# 常见问题 \ No newline at end of file +# 常见问题 diff --git a/docs/getting-started/introduction.md b/docs/getting-started/introduction.md index d866c76..273a443 100644 --- a/docs/getting-started/introduction.md +++ b/docs/getting-started/introduction.md @@ -2,7 +2,7 @@ title: 快速上手 --- -太长不看版:记得登陆ITS! +太长不看版:记得登陆 ITS! # 简介 @@ -10,9 +10,9 @@ title: 快速上手 # 本地客户端准备 -为了连接到云主机,我们需要一个终端和 SSH 客户端。在 Windows 系统中,我们推荐安装 [Windows Terminal](https://aka.ms/terminal) (Windows11应已自带)。在 macOS 和 Linux 系统中,我们推荐使用系统自带的终端。 +为了连接到云主机,我们需要一个终端和 SSH 客户端。在 Windows 系统中,我们推荐安装 [Windows Terminal](https://aka.ms/terminal) (Windows11 应已自带)。在 macOS 和 Linux 系统中,我们推荐使用系统自带的终端。 -然后,我们需要一个 SSH 密钥对。如果你还没有 SSH 密钥对,可以通过以下方式生成。如果你之前用密钥登录过其他机器,或者电脑的个人目录中已经有`.ssh/id_rsa.pub`或者`.ssh/id_ed25519.pub`文件,可以直接复制现有的.pub文件到平台,会较为方便。 +然后,我们需要一个 SSH 密钥对。如果你还没有 SSH 密钥对,可以通过以下方式生成。如果你之前用密钥登录过其他机器,或者电脑的个人目录中已经有`.ssh/id_rsa.pub`或者`.ssh/id_ed25519.pub`文件,可以直接复制现有的.pub 文件到平台,会较为方便。 :::tip 小贴士 我们这里说的用户目录,在 Windows 下指的是 `C:\Users\用户名`,macOS 和 Linux 中指的是`/home/用户名` @@ -21,6 +21,7 @@ title: 快速上手 下列操作将在 用户目录下`.ssh`文件夹下生成一个名为 `id_ed25519` 的密钥对。请将 `id_ed25519.pub` 中的内容添加到云平台的 SSH 密钥管理中。请注意,这是密钥的默认位置,你可能已经有一个同名密钥在同一位置了。如果是这样,请直接使用那个密钥,千万不要重新创建!如果重新创建,会有提示,询问是否覆盖。请不要覆盖! 打开终端执行如下命令: + ```bash ssh-keygen -t ed25519 ``` @@ -45,7 +46,6 @@ ssh-keygen -t ed25519 ![](/assets/getting-started/create-1.png) - ## 选择规格 首先选择云主机的规格,包括 CPU 核数、内存大小、最小硬盘大小等。不同规格的云主机价格不同,可以根据自己的需求选择。CLab 的规格分为三类,分别介绍如下,通常我们选择 Playgrounds 即可: @@ -53,7 +53,6 @@ ssh-keygen -t ed25519 - Playgrounds:适合学习和测试,比如编程作业、小型网站等。也可以用来熟悉 Linux 操作和基本使用 - Labs_and_Courses:适合课程实验,比如编译原理、操作系统、数据库等对计算资源要求较高的场景 - Elite_Courses:适合高性能计算,比如深度学习、大数据处理等对计算资源要求非常高的场景 - CPU 核数和内存大小是用来区分不同规格的云主机的,每位同学默认有 4 核心 4 G 内存的配额,可以按需选择。一般情况下,编程作业(比如只需要 GCC 编译,运行一些简单的程序)可以选择 1 核心 1 G 内存的规格,小型网站可以选择 2 核心 2 G 内存的规格。 @@ -101,7 +100,7 @@ CLab 提供两种硬盘类型,分别是 SSD 和 HDD。SSD 是固态硬盘阵 在这里设置云主机的名称和 SSH 密钥。名称是云主机的显示名称,可以随意设置。SSH 密钥是用来登陆云主机的密钥,可以选择之前添加的密钥,也可以添加新的密钥。如果没有添加密钥,可以点击“创建密钥”按钮,把我们在“本地连接客户端准备”中生成的密钥添加进去。 :::tip 小贴士 -创建云主机时只能放入一个SSH密钥。如果你需要放入更多密钥,请在创建云主机成功后连接并修改~/.ssh/authorized_keys文件(注意不要sudo,不要改变其权限),方法是另起一行,每行放一个密钥,密钥同样来自于xxx.pub文件,你也可以从CLab的密钥模块查看之前添加过的密钥详情,并直接复制其中的公钥。 +创建云主机时只能放入一个 SSH 密钥。如果你需要放入更多密钥,请在创建云主机成功后连接并修改~/.ssh/authorized_keys 文件(注意不要 sudo,不要改变其权限),方法是另起一行,每行放一个密钥,密钥同样来自于 xxx.pub 文件,你也可以从 CLab 的密钥模块查看之前添加过的密钥详情,并直接复制其中的公钥。 ::: (现在点击页面右下角的“下一步”按钮,进入确认页面) @@ -114,7 +113,7 @@ CLab 提供两种硬盘类型,分别是 SSD 和 HDD。SSD 是固态硬盘阵 # 连接云主机 -云主机创建完成后,可以点击云主机的名称进入云主机详情页面。在这里可以看到云主机的状态、IP 地址等信息。如果选择的是“共享网络”,可以在校园网内直接使用 SSH 连接到云主机。在云主机详情页面中,有”内网IP“,复制这个 IP 地址,然后在终端中输入以下命令: +云主机创建完成后,可以点击云主机的名称进入云主机详情页面。在这里可以看到云主机的状态、IP 地址等信息。如果选择的是“共享网络”,可以在校园网内直接使用 SSH 连接到云主机。在云主机详情页面中,有”内网 IP“,复制这个 IP 地址,然后在终端中输入以下命令: ```bash ssh 用户名@内网IP @@ -122,14 +121,14 @@ ssh 用户名@内网IP 这里的用户名是与云主机镜像相关的,见下表: -| 镜像 | 用户名 | -| --- | --- | -| Rocky Linux | rocky | -| Debian | debian | -| Ubuntu | ubuntu | -| Arch Linux | arch | -| CentOS | centos | -| Fedora | fedora | +| 镜像 | 用户名 | +| ----------- | ------ | +| Rocky Linux | rocky | +| Debian | debian | +| Ubuntu | ubuntu | +| Arch Linux | arch | +| CentOS | centos | +| Fedora | fedora | 输入之后会提示确认云主机的指纹,输入“yes”后,就可以连接到云主机了。如果连接失败,请检查 SSH 密钥是否正确,云主机是否启动成功。 @@ -144,16 +143,17 @@ ssh 用户名@内网IP 云主机通常不方便使用网页版网关,对于部分镜像(比如 ICS 的课程镜像),我们提供了`lcpu`命令可以连接校园网。使用方法如下。注意,输入密码时,密码是不显示的,输入完成后回车即可。 连接网关: + ```bash lcpu connect ``` 断开网关连接: + ```bash lcpu disconnect ``` - 对于其他镜像,可以使用如下网关登陆程序。 ```python @@ -197,7 +197,7 @@ sudo dnf install python3 # Fedora, CentOS, Rocky Linux 可以使用`scp`传输文件,`scp`命令的基本结构是: ```bash -scp (-r,如果是文件夹的话) 从哪里发送 在哪里接收 +scp (-r,如果是文件夹的话) 从哪里发送 在哪里接收 ``` 发送和接收的地址都遵守相同的规则,如下。其中,第一部分是机器,格式为`用户名@IP地址:`。不写`---:`代表着从本地传输。第二部分是路径,不写路径默认保存在家目录。这两部分必须要至少有一部分。接收文件时,如果保存在当前路径,第二部分可以写为`.`。 diff --git a/docs/getting-started/lcpu-mirror.md b/docs/getting-started/lcpu-mirror.md index 2d8e426..7279700 100644 --- a/docs/getting-started/lcpu-mirror.md +++ b/docs/getting-started/lcpu-mirror.md @@ -58,6 +58,6 @@ sudo sed -i 's@http://security.debian.org@https://mirrors.pku.edu.cn@g' /etc/apt 编辑文件/etc/pacman.d/mirrorlist,在开头插入 -``` +```plain Server = https://mirrors.pku.edu.cn/archlinux/$repo/os/$arch ``` diff --git a/docs/index.md b/docs/index.md index 832a480..1ddff55 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,4 +1,4 @@ -欢迎访问CLab文档,文档目前正在建设中,有以下内容可供查阅,欢迎大家在使用CLab后帮助建设文档,也可在此[填写问卷](https://f.wps.cn/g/1LJPilFH/)。 +欢迎访问 CLab 文档,文档目前正在建设中,有以下内容可供查阅,欢迎大家在使用 CLab 后帮助建设文档,也可在此[填写问卷](https://f.wps.cn/g/1LJPilFH/)。 - [快速开始](/docs/getting-started/introduction) - [镜像站使用指南](/docs/getting-started/lcpu-mirror) diff --git a/docs/networking/private-network.md b/docs/networking/private-network.md index 6ee9de4..cf4da9b 100644 --- a/docs/networking/private-network.md +++ b/docs/networking/private-network.md @@ -1,49 +1,56 @@ --- title: 创建网络 ---- +--- # 创建网络 在左侧的【网络】-【网络】界面中,你可以找到【创建网络】按钮。在弹出的表单中填写如下内容: -- 网络名称:网络名 -- 描述:请用全英文进行描述,暂时不支持中文 -- 可用域:域是openstack中对于物理基础设施的一种逻辑抽象,通常按照地理位置、网络布局或电源来源进行划分,目前平台只提供`nova`可用域 -- MTU:可不填。MTU是指在网络层(如以太网)可以传输的最大数据包大小,超过该大小的数据包就会被分割,目前支持的最大值为1480 -- 创建子网:见下部分 - + +- 网络名称:网络名 +- 描述:请用全英文进行描述,暂时不支持中文 +- 可用域:域是 openstack 中对于物理基础设施的一种逻辑抽象,通常按照地理位置、网络布局或电源来源进行划分,目前平台只提供`nova`可用域 +- MTU:可不填。MTU 是指在网络层(如以太网)可以传输的最大数据包大小,超过该大小的数据包就会被分割,目前支持的最大值为 1480 +- 创建子网:见下部分 + ![](/assets/networking/create_network.png) 选中创建子网按钮,一个子网需要填写如下信息: -- 子网名称 -- IP版本:ipv4或ipv6 -- 网络地址:用CIDR格式标记的子网信息。如192.168.0.0/24表明从`192.168.0.0`到`192.168.0.255`的地址范围,用于一个包含256个地址的网络(从0到255) - + +- 子网名称 +- IP 版本:ipv4 或 ipv6 +- 网络地址:用 CIDR 格式标记的子网信息。如 192.168.0.0/24 表明从`192.168.0.0`到`192.168.0.255`的地址范围,用于一个包含 256 个地址的网络(从 0 到 255) + ![](/assets/networking/create_subnet.png) ## 如何创建安全组 -在默认情况下,主机自带了一个安全组,其中针对所有的ip的出、入流量都不做拦截 + +在默认情况下,主机自带了一个安全组,其中针对所有的 ip 的出、入流量都不做拦截 ![](/assets/networking/create_security_group.png) - -你可以自己创建一些安全组规则,如下图演示了创建一个允许80端口被外界访问的规则 + +你可以自己创建一些安全组规则,如下图演示了创建一个允许 80 端口被外界访问的规则 ![](/assets/networking/create_security_group_rule.png) ## 如何将主机加入网络 -在新主机的创建页面的【网络配置】环节,可以在【当前项目网络】中找到网络的ID,此时IP分配有两种策略:自动分配与手动分配。下图展示的是采用手动分配时需要填写的信息: -- 子网:此处选中了subnet_1 -- 具体ip:此处填写为192.168.0.10 - + +在新主机的创建页面的【网络配置】环节,可以在【当前项目网络】中找到网络的 ID,此时 IP 分配有两种策略:自动分配与手动分配。下图展示的是采用手动分配时需要填写的信息: + +- 子网:此处选中了 subnet_1 +- 具体 ip:此处填写为 192.168.0.10 + ![](/assets/networking/create_PC_with_network_1.png) 同时,还需要为主机指定安全组 ![](/assets/networking/create_PC_with_network_2.png) - + ## 如何将已经创建的主机加入网络 + 在【计算】-【云主机】页面,选中一台主机,通过右上角的【更多】-【关联资源】-【挂载网卡】可以进入网络设置页面 - + ![](/assets/networking/add_PC_to_network_1.png) -选中网络与子网后,IP设置方法与上文类似: +选中网络与子网后,IP 设置方法与上文类似: ![](/assets/networking/add_PC_to_network_2.png) - -## 设置QoS策略 -目前服务器针对没有设置QoS策略的网卡会默认添加10MB/s的限速。如果需要达成全速率,可以在【计算】-【云主机】中点击一台机器,进入【网卡】选项卡,点击【修改QoS】,选中【共享QoS策略】中限制较大的规则即可。 + +## 设置 QoS 策略 + +目前服务器针对没有设置 QoS 策略的网卡会默认添加 10MB/s 的限速。如果需要达成全速率,可以在【计算】-【云主机】中点击一台机器,进入【网卡】选项卡,点击【修改 QoS】,选中【共享 QoS 策略】中限制较大的规则即可。 ![](/assets/networking/modify_NIC_QoS.png) diff --git a/package.json b/package.json index a65c678..aa69515 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,14 @@ { + "packageManager": "pnpm@9.12.3+sha512.cce0f9de9c5a7c95bef944169cc5dfe8741abfb145078c0d508b868056848a87c81e626246cb60967cbd7fd29a6c062ef73ff840d96b3c86c40ac92cf4a813ee", "devDependencies": { + "prettier-plugin-lint-md": "^1.0.1", "vitepress": "^1.3.4" }, "scripts": { "docs:dev": "vitepress dev", "docs:build": "vitepress build", - "docs:preview": "vitepress preview" + "docs:preview": "vitepress preview", + "lint": "prettier --check .", + "lint:fix": "prettier --write ." } -} \ No newline at end of file +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7142ba8..ea4c638 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,9 @@ importers: .: devDependencies: + prettier-plugin-lint-md: + specifier: ^1.0.1 + version: 1.0.1(prettier@3.3.3) vitepress: specifier: ^1.3.4 version: 1.3.4(@algolia/client-search@4.24.0)(postcss@8.4.41)(search-insights@2.17.0) @@ -260,6 +263,12 @@ packages: '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@lint-md/core@2.0.0': + resolution: {integrity: sha512-DbjU4NhmddVM2GaeUz+f+urFLt0IoTomwJglrRGuUKBCr4udpVe/rnh26R02zQKXm/+ocQ5WfU0iLCCWBsXoYA==} + + '@lint-md/parser@0.0.14': + resolution: {integrity: sha512-kFFq6TowN2MBe+EFctnn6VluPWHV/9i/mHGQG/d5qGcR7EnA7JSURaxw9kQDHG11bwUK+pHOoXjSOp/6VzM/1w==} + '@rollup/rollup-android-arm-eabi@4.21.0': resolution: {integrity: sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==} cpu: [arm] @@ -346,21 +355,36 @@ packages: '@shikijs/transformers@1.14.1': resolution: {integrity: sha512-JJqL8QBVCJh3L61jqqEXgFq1cTycwjcGj7aSmqOEsbxnETM9hRlaB74QuXvY/fVJNjbNt8nvWo0VwAXKvMSLRg==} + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + '@types/katex@0.16.7': + resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==} + '@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@3.0.15': + resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} + '@types/mdurl@2.0.0': resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} + '@types/ms@0.7.34': + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + + '@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==} @@ -465,9 +489,31 @@ packages: algoliasearch@4.24.0: resolution: {integrity: sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==} + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + birpc@0.2.17: resolution: {integrity: sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==} + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + 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==} + + commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + copy-anything@3.0.5: resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} engines: {node: '>=12.13'} @@ -475,6 +521,26 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -484,12 +550,26 @@ packages: engines: {node: '>=12'} hasBin: true + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + fault@2.0.1: + resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + focus-trap@7.5.4: resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} + format@0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} + engines: {node: '>=0.4.x'} + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -498,27 +578,209 @@ packages: hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + 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-buffer@2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} + + is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + + is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + is-what@4.1.16: resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} engines: {node: '>=12.13'} + katex@0.16.11: + resolution: {integrity: sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ==} + hasBin: true + + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + magic-string@0.30.11: resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} mark.js@8.11.1: resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + + mdast-util-directive@2.2.4: + resolution: {integrity: sha512-sK3ojFP+jpj1n7Zo5ZKvoxP1MvLyzVG63+gm40Z/qI00avzdPCYxt7RBMgofwAva9gBjbDBWVRB/i+UD+fUCzQ==} + + mdast-util-find-and-replace@2.2.2: + resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==} + + mdast-util-from-markdown@1.3.1: + resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} + + mdast-util-frontmatter@1.0.1: + resolution: {integrity: sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==} + + mdast-util-gfm-autolink-literal@1.0.3: + resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==} + + mdast-util-gfm-footnote@1.0.2: + resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==} + + mdast-util-gfm-strikethrough@1.0.3: + resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==} + + mdast-util-gfm-table@1.0.7: + resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==} + + mdast-util-gfm-task-list-item@1.0.2: + resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==} + + mdast-util-gfm@2.0.2: + resolution: {integrity: sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==} + + mdast-util-math@2.0.2: + resolution: {integrity: sha512-8gmkKVp9v6+Tgjtq6SYx9kGPpTf6FVYRa53/DLh479aldR9AyP48qeVOgNZ5X7QUK7nOy4yw7vg6mbiGcs9jWQ==} + + mdast-util-phrasing@3.0.1: + resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} + + mdast-util-to-markdown@1.5.0: + resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} + + mdast-util-to-string@3.2.0: + resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} + + micromark-core-commonmark@1.1.0: + resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} + + micromark-extension-directive@2.2.1: + resolution: {integrity: sha512-ZFKZkNaEqAP86IghX1X7sE8NNnx6kFNq9mSBRvEHjArutTCJZ3LYg6VH151lXVb1JHpmIcW/7rX25oMoIHuSug==} + + micromark-extension-frontmatter@1.1.1: + resolution: {integrity: sha512-m2UH9a7n3W8VAH9JO9y01APpPKmNNNs71P0RbknEmYSaZU5Ghogv38BYO94AI5Xw6OYfxZRdHZZ2nYjs/Z+SZQ==} + + micromark-extension-gfm-autolink-literal@1.0.5: + resolution: {integrity: sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==} + + micromark-extension-gfm-footnote@1.1.2: + resolution: {integrity: sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==} + + micromark-extension-gfm-strikethrough@1.0.7: + resolution: {integrity: sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==} + + micromark-extension-gfm-table@1.0.7: + resolution: {integrity: sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==} + + micromark-extension-gfm-tagfilter@1.0.2: + resolution: {integrity: sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==} + + micromark-extension-gfm-task-list-item@1.0.5: + resolution: {integrity: sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==} + + micromark-extension-gfm@2.0.3: + resolution: {integrity: sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==} + + micromark-extension-math@2.1.2: + resolution: {integrity: sha512-es0CcOV89VNS9wFmyn+wyFTKweXGW4CEvdaAca6SWRWPyYCbBisnjaHLjWO4Nszuiud84jCpkHsqAJoa768Pvg==} + + micromark-factory-destination@1.1.0: + resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} + + micromark-factory-label@1.1.0: + resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==} + + micromark-factory-space@1.1.0: + resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} + + micromark-factory-title@1.1.0: + resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==} + + micromark-factory-whitespace@1.1.0: + resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==} + + micromark-util-character@1.2.0: + resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} + + micromark-util-chunked@1.1.0: + resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} + + micromark-util-classify-character@1.1.0: + resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==} + + micromark-util-combine-extensions@1.1.0: + resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==} + + micromark-util-decode-numeric-character-reference@1.1.0: + resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} + + micromark-util-decode-string@1.1.0: + resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} + + micromark-util-encode@1.1.0: + resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} + + micromark-util-html-tag-name@1.2.0: + resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} + + micromark-util-normalize-identifier@1.1.0: + resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==} + + micromark-util-resolve-all@1.1.0: + resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==} + + micromark-util-sanitize-uri@1.2.0: + resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==} + + micromark-util-subtokenize@1.1.0: + resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} + + micromark-util-symbol@1.1.0: + resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} + + micromark-util-types@1.1.0: + resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} + + micromark@3.2.0: + resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} + minisearch@7.1.0: resolution: {integrity: sha512-tv7c/uefWdEhcu6hvrfTihflgeEi2tN6VV7HJnCjK6VxM75QQJh4t9FwJCsA2EsRS8LCnu3W87CuGPWMocOLCA==} mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + perfect-debounce@1.0.0: resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} @@ -532,6 +794,37 @@ packages: preact@10.23.2: resolution: {integrity: sha512-kKYfePf9rzKnxOAKDpsWhg/ysrHPqT+yQ7UW4JjdnqjFIeNUnNcEJvhuA8fDenxAGWzUqtd51DfVg7xp/8T9NA==} + prettier-plugin-lint-md@1.0.1: + resolution: {integrity: sha512-M1IyGBKXgbhM8GZM96A7oUHCGtAN4fXO3//+QGtJIXY8y1pc2Jzm+fOiyIKz3wDd0xMUimeUiLDvcCxv0ja3cQ==} + peerDependencies: + prettier: '>= 3' + + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} + engines: {node: '>=14'} + hasBin: true + + remark-directive@2.0.1: + resolution: {integrity: sha512-oosbsUAkU/qmUE78anLaJePnPis4ihsE7Agp0T/oqTzvTea8pOiaYEtfInU/+xMOVTS9PN5AhGOiaIVe4GD8gw==} + + remark-frontmatter@4.0.1: + resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==} + + remark-gfm@3.0.1: + resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} + + remark-math@5.1.1: + resolution: {integrity: sha512-cE5T2R/xLVtfFI4cCePtiRn+e6jKMtFDR3P8V3qpv8wpKjwvHoBA4eJzvX+nVrnlNy0911bdGmuspCSwetfYHw==} + + remark-parse@10.0.2: + resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} + + remark-stringify@10.0.3: + resolution: {integrity: sha512-koyOzCMYoUHudypbj4XpnAKFbkddRMYZHwghnxd7ue5210WzGw6kOBwauJTRUMq16jsovXx8dYNvSSWP89kZ3A==} + + remark@14.0.3: + resolution: {integrity: sha512-bfmJW1dmR2LvaMJuAnE88pZP9DktIFYXazkTfOIKZzi3Knk9lT0roItIA24ydOucI3bV/g/tXBA6hzqq3FV9Ew==} + rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} @@ -540,6 +833,10 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + search-insights@2.17.0: resolution: {integrity: sha512-AskayU3QNsXQzSL6v4LTYST7NNfs2HWyHHB+sdORP9chsytAhro5XRfToAMI/LAVYgNbzowVZTMfBRodgbUHKg==} @@ -554,6 +851,9 @@ packages: resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} engines: {node: '>=0.10.0'} + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + superjson@2.2.1: resolution: {integrity: sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==} engines: {node: '>=16'} @@ -565,6 +865,35 @@ packages: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + + unified@10.1.2: + resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} + + unist-util-is@5.2.1: + resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} + + unist-util-stringify-position@3.0.3: + resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} + + unist-util-visit-parents@5.1.3: + resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} + + unist-util-visit@4.1.2: + resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} + + uvu@0.5.6: + resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} + engines: {node: '>=8'} + hasBin: true + + vfile-message@3.1.4: + resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} + + vfile@5.3.7: + resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} + vite@5.4.2: resolution: {integrity: sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -627,6 +956,9 @@ packages: typescript: optional: true + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + snapshots: '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.0)': @@ -842,6 +1174,25 @@ snapshots: '@jridgewell/sourcemap-codec@1.5.0': {} + '@lint-md/core@2.0.0': + dependencies: + '@lint-md/parser': 0.0.14 + lodash: 4.17.21 + transitivePeerDependencies: + - supports-color + + '@lint-md/parser@0.0.14': + dependencies: + '@types/unist': 2.0.11 + mdast-util-gfm-autolink-literal: 1.0.3 + remark: 14.0.3 + remark-directive: 2.0.1 + remark-frontmatter: 4.0.1 + remark-gfm: 3.0.1 + remark-math: 5.1.1 + transitivePeerDependencies: + - supports-color + '@rollup/rollup-android-arm-eabi@4.21.0': optional: true @@ -898,12 +1249,18 @@ snapshots: dependencies: shiki: 1.14.1 + '@types/debug@4.1.12': + dependencies: + '@types/ms': 0.7.34 + '@types/estree@1.0.5': {} '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.3 + '@types/katex@0.16.7': {} + '@types/linkify-it@5.0.0': {} '@types/markdown-it@14.1.2': @@ -911,8 +1268,16 @@ snapshots: '@types/linkify-it': 5.0.0 '@types/mdurl': 2.0.0 + '@types/mdast@3.0.15': + dependencies: + '@types/unist': 2.0.11 + '@types/mdurl@2.0.0': {} + '@types/ms@0.7.34': {} + + '@types/unist@2.0.11': {} + '@types/unist@3.0.3': {} '@types/web-bluetooth@0.0.20': {} @@ -1042,14 +1407,40 @@ snapshots: '@algolia/requester-node-http': 4.24.0 '@algolia/transporter': 4.24.0 + bail@2.0.2: {} + birpc@0.2.17: {} + ccount@2.0.1: {} + + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + character-entities@2.0.2: {} + + character-reference-invalid@2.0.1: {} + + commander@8.3.0: {} + copy-anything@3.0.5: dependencies: is-what: 4.1.16 csstype@3.1.3: {} + debug@4.3.7: + dependencies: + ms: 2.1.3 + + decode-named-character-reference@1.0.2: + dependencies: + character-entities: 2.0.2 + + dequal@2.0.3: {} + + diff@5.2.0: {} + entities@4.5.0: {} esbuild@0.21.5: @@ -1078,31 +1469,413 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 + escape-string-regexp@5.0.0: {} + estree-walker@2.0.2: {} + extend@3.0.2: {} + + fault@2.0.1: + dependencies: + format: 0.2.2 + focus-trap@7.5.4: dependencies: tabbable: 6.2.0 + format@0.2.2: {} + fsevents@2.3.3: optional: true hookable@5.5.3: {} + is-alphabetical@2.0.1: {} + + is-alphanumerical@2.0.1: + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + + is-buffer@2.0.5: {} + + is-decimal@2.0.1: {} + + is-hexadecimal@2.0.1: {} + + is-plain-obj@4.1.0: {} + is-what@4.1.16: {} + katex@0.16.11: + dependencies: + commander: 8.3.0 + + kleur@4.1.5: {} + + lodash@4.17.21: {} + + longest-streak@3.1.0: {} + magic-string@0.30.11: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 mark.js@8.11.1: {} + markdown-table@3.0.4: {} + + mdast-util-directive@2.2.4: + dependencies: + '@types/mdast': 3.0.15 + '@types/unist': 2.0.11 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + parse-entities: 4.0.1 + stringify-entities: 4.0.4 + unist-util-visit-parents: 5.1.3 + transitivePeerDependencies: + - supports-color + + mdast-util-find-and-replace@2.2.2: + dependencies: + '@types/mdast': 3.0.15 + escape-string-regexp: 5.0.0 + unist-util-is: 5.2.1 + unist-util-visit-parents: 5.1.3 + + mdast-util-from-markdown@1.3.1: + dependencies: + '@types/mdast': 3.0.15 + '@types/unist': 2.0.11 + decode-named-character-reference: 1.0.2 + mdast-util-to-string: 3.2.0 + micromark: 3.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-decode-string: 1.1.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + unist-util-stringify-position: 3.0.3 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + + mdast-util-frontmatter@1.0.1: + dependencies: + '@types/mdast': 3.0.15 + mdast-util-to-markdown: 1.5.0 + micromark-extension-frontmatter: 1.1.1 + + mdast-util-gfm-autolink-literal@1.0.3: + dependencies: + '@types/mdast': 3.0.15 + ccount: 2.0.1 + mdast-util-find-and-replace: 2.2.2 + micromark-util-character: 1.2.0 + + mdast-util-gfm-footnote@1.0.2: + dependencies: + '@types/mdast': 3.0.15 + mdast-util-to-markdown: 1.5.0 + micromark-util-normalize-identifier: 1.1.0 + + mdast-util-gfm-strikethrough@1.0.3: + dependencies: + '@types/mdast': 3.0.15 + mdast-util-to-markdown: 1.5.0 + + mdast-util-gfm-table@1.0.7: + dependencies: + '@types/mdast': 3.0.15 + markdown-table: 3.0.4 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@1.0.2: + dependencies: + '@types/mdast': 3.0.15 + mdast-util-to-markdown: 1.5.0 + + mdast-util-gfm@2.0.2: + dependencies: + mdast-util-from-markdown: 1.3.1 + mdast-util-gfm-autolink-literal: 1.0.3 + mdast-util-gfm-footnote: 1.0.2 + mdast-util-gfm-strikethrough: 1.0.3 + mdast-util-gfm-table: 1.0.7 + mdast-util-gfm-task-list-item: 1.0.2 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + + mdast-util-math@2.0.2: + dependencies: + '@types/mdast': 3.0.15 + longest-streak: 3.1.0 + mdast-util-to-markdown: 1.5.0 + + mdast-util-phrasing@3.0.1: + dependencies: + '@types/mdast': 3.0.15 + unist-util-is: 5.2.1 + + mdast-util-to-markdown@1.5.0: + dependencies: + '@types/mdast': 3.0.15 + '@types/unist': 2.0.11 + longest-streak: 3.1.0 + mdast-util-phrasing: 3.0.1 + mdast-util-to-string: 3.2.0 + micromark-util-decode-string: 1.1.0 + unist-util-visit: 4.1.2 + zwitch: 2.0.4 + + mdast-util-to-string@3.2.0: + dependencies: + '@types/mdast': 3.0.15 + + micromark-core-commonmark@1.1.0: + dependencies: + decode-named-character-reference: 1.0.2 + micromark-factory-destination: 1.1.0 + micromark-factory-label: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-factory-title: 1.1.0 + micromark-factory-whitespace: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-chunked: 1.1.0 + micromark-util-classify-character: 1.1.0 + micromark-util-html-tag-name: 1.2.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-subtokenize: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + + micromark-extension-directive@2.2.1: + dependencies: + micromark-factory-space: 1.1.0 + micromark-factory-whitespace: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + parse-entities: 4.0.1 + uvu: 0.5.6 + + micromark-extension-frontmatter@1.1.1: + dependencies: + fault: 2.0.1 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + + micromark-extension-gfm-autolink-literal@1.0.5: + dependencies: + micromark-util-character: 1.2.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + + micromark-extension-gfm-footnote@1.1.2: + dependencies: + micromark-core-commonmark: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + + micromark-extension-gfm-strikethrough@1.0.7: + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-classify-character: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + + micromark-extension-gfm-table@1.0.7: + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + + micromark-extension-gfm-tagfilter@1.0.2: + dependencies: + micromark-util-types: 1.1.0 + + micromark-extension-gfm-task-list-item@1.0.5: + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + + micromark-extension-gfm@2.0.3: + dependencies: + micromark-extension-gfm-autolink-literal: 1.0.5 + micromark-extension-gfm-footnote: 1.1.2 + micromark-extension-gfm-strikethrough: 1.0.7 + micromark-extension-gfm-table: 1.0.7 + micromark-extension-gfm-tagfilter: 1.0.2 + micromark-extension-gfm-task-list-item: 1.0.5 + micromark-util-combine-extensions: 1.1.0 + micromark-util-types: 1.1.0 + + micromark-extension-math@2.1.2: + dependencies: + '@types/katex': 0.16.7 + katex: 0.16.11 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + + micromark-factory-destination@1.1.0: + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + + micromark-factory-label@1.1.0: + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + + micromark-factory-space@1.1.0: + dependencies: + micromark-util-character: 1.2.0 + micromark-util-types: 1.1.0 + + micromark-factory-title@1.1.0: + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + + micromark-factory-whitespace@1.1.0: + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + + micromark-util-character@1.2.0: + dependencies: + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + + micromark-util-chunked@1.1.0: + dependencies: + micromark-util-symbol: 1.1.0 + + micromark-util-classify-character@1.1.0: + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + + micromark-util-combine-extensions@1.1.0: + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-types: 1.1.0 + + micromark-util-decode-numeric-character-reference@1.1.0: + dependencies: + micromark-util-symbol: 1.1.0 + + micromark-util-decode-string@1.1.0: + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 1.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-symbol: 1.1.0 + + micromark-util-encode@1.1.0: {} + + micromark-util-html-tag-name@1.2.0: {} + + micromark-util-normalize-identifier@1.1.0: + dependencies: + micromark-util-symbol: 1.1.0 + + micromark-util-resolve-all@1.1.0: + dependencies: + micromark-util-types: 1.1.0 + + micromark-util-sanitize-uri@1.2.0: + dependencies: + micromark-util-character: 1.2.0 + micromark-util-encode: 1.1.0 + micromark-util-symbol: 1.1.0 + + micromark-util-subtokenize@1.1.0: + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + + micromark-util-symbol@1.1.0: {} + + micromark-util-types@1.1.0: {} + + micromark@3.2.0: + dependencies: + '@types/debug': 4.1.12 + debug: 4.3.7 + decode-named-character-reference: 1.0.2 + micromark-core-commonmark: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-chunked: 1.1.0 + micromark-util-combine-extensions: 1.1.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-encode: 1.1.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-subtokenize: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + minisearch@7.1.0: {} mitt@3.0.1: {} + mri@1.2.0: {} + + ms@2.1.3: {} + nanoid@3.3.7: {} + parse-entities@4.0.1: + dependencies: + '@types/unist': 2.0.11 + character-entities: 2.0.2 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.0.2 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + perfect-debounce@1.0.0: {} picocolors@1.0.1: {} @@ -1115,6 +1888,70 @@ snapshots: preact@10.23.2: {} + prettier-plugin-lint-md@1.0.1(prettier@3.3.3): + dependencies: + '@lint-md/core': 2.0.0 + prettier: 3.3.3 + transitivePeerDependencies: + - supports-color + + prettier@3.3.3: {} + + remark-directive@2.0.1: + dependencies: + '@types/mdast': 3.0.15 + mdast-util-directive: 2.2.4 + micromark-extension-directive: 2.2.1 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + + remark-frontmatter@4.0.1: + dependencies: + '@types/mdast': 3.0.15 + mdast-util-frontmatter: 1.0.1 + micromark-extension-frontmatter: 1.1.1 + unified: 10.1.2 + + remark-gfm@3.0.1: + dependencies: + '@types/mdast': 3.0.15 + mdast-util-gfm: 2.0.2 + micromark-extension-gfm: 2.0.3 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + + remark-math@5.1.1: + dependencies: + '@types/mdast': 3.0.15 + mdast-util-math: 2.0.2 + micromark-extension-math: 2.1.2 + unified: 10.1.2 + + remark-parse@10.0.2: + dependencies: + '@types/mdast': 3.0.15 + mdast-util-from-markdown: 1.3.1 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + + remark-stringify@10.0.3: + dependencies: + '@types/mdast': 3.0.15 + mdast-util-to-markdown: 1.5.0 + unified: 10.1.2 + + remark@14.0.3: + dependencies: + '@types/mdast': 3.0.15 + remark-parse: 10.0.2 + remark-stringify: 10.0.3 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + rfdc@1.4.1: {} rollup@4.21.0: @@ -1139,6 +1976,10 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.21.0 fsevents: 2.3.3 + sade@1.8.1: + dependencies: + mri: 1.2.0 + search-insights@2.17.0: {} shiki@1.14.1: @@ -1150,6 +1991,11 @@ snapshots: speakingurl@14.0.1: {} + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + superjson@2.2.1: dependencies: copy-anything: 3.0.5 @@ -1158,6 +2004,56 @@ snapshots: to-fast-properties@2.0.0: {} + trough@2.2.0: {} + + unified@10.1.2: + dependencies: + '@types/unist': 2.0.11 + bail: 2.0.2 + extend: 3.0.2 + is-buffer: 2.0.5 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 5.3.7 + + unist-util-is@5.2.1: + dependencies: + '@types/unist': 2.0.11 + + unist-util-stringify-position@3.0.3: + dependencies: + '@types/unist': 2.0.11 + + unist-util-visit-parents@5.1.3: + dependencies: + '@types/unist': 2.0.11 + unist-util-is: 5.2.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 + + uvu@0.5.6: + dependencies: + dequal: 2.0.3 + diff: 5.2.0 + kleur: 4.1.5 + sade: 1.8.1 + + vfile-message@3.1.4: + dependencies: + '@types/unist': 2.0.11 + unist-util-stringify-position: 3.0.3 + + vfile@5.3.7: + dependencies: + '@types/unist': 2.0.11 + is-buffer: 2.0.5 + unist-util-stringify-position: 3.0.3 + vfile-message: 3.1.4 + vite@5.4.2: dependencies: esbuild: 0.21.5 @@ -1225,3 +2121,5 @@ snapshots: '@vue/runtime-dom': 3.4.38 '@vue/server-renderer': 3.4.38(vue@3.4.38) '@vue/shared': 3.4.38 + + zwitch@2.0.4: {}