diff --git a/.drone.yml b/.drone.yml index 5a9165a2..41f5e209 100644 --- a/.drone.yml +++ b/.drone.yml @@ -6,32 +6,25 @@ clone: depth: 1 steps: -- name: build - image: ruby:3.4 - environment: - JEKYLL_ENV: production - BUNDLE_PATH: vendor/bundle - commands: - - bundle config mirror.https://rubygems.org https://mirrors.cloud.tencent.com/rubygems - - bundle install --verbose - - bundle exec jekyll build --trace --verbose --config _config.yml,_config.drone.yml - volumes: - - name: dist - path: /drone/src/_site - - name: vendor - path: /drone/src/vendor - - name: jekyll-cache - path: /drone/src/.jekyll-cache - when: - branch: [main] + - name: build + image: node:24-alpine + environment: + PUBLIC_SITE_URL: "https://docs.hmcl.net" + commands: + - npm install + - npm run build + volumes: + - name: dist + path: /drone/src/dist + - name: node_modules + path: /drone/src/node_modules + when: + branch: [main] volumes: -- name: dist - host: - path: /home/ubuntu/docs.hmcl.net/www -- name: vendor - host: - path: /home/ubuntu/docs.hmcl.net/cache/vendor -- name: jekyll-cache - host: - path: /home/ubuntu/docs.hmcl.net/cache/jekyll-cache + - name: dist + host: + path: /home/ubuntu/docs.hmcl.net/www + - name: node_modules + host: + path: /home/ubuntu/docs.hmcl.net/cache/node_modules diff --git a/.github/workflows/gitee.yml b/.github/workflows/gitee.yml index 7ffcab64..143c3656 100644 --- a/.github/workflows/gitee.yml +++ b/.github/workflows/gitee.yml @@ -1,7 +1,6 @@ name: Sync to Gitee -on: - push +on: push jobs: run: @@ -13,7 +12,7 @@ jobs: with: src: github/HMCL-dev dst: gitee/huanghongxun - static_list: 'HMCL-docs' + static_list: "HMCL-docs" force_update: true debug: true dst_key: ${{ secrets.GITEE_SYNC_BOT_PRIVATE_KEY }} diff --git a/.github/workflows/pr-preview.yml b/.github/workflows/pr-preview.yml index dabeeb1c..ab1901dc 100644 --- a/.github/workflows/pr-preview.yml +++ b/.github/workflows/pr-preview.yml @@ -11,7 +11,6 @@ concurrency: cancel-in-progress: false env: GITHUB_PR_NUMBER: ${{ github.event_name == 'issue_comment' && github.event.issue.number || github.event.pull_request.number }} - JEKYLL_ENV: production jobs: cache-refresh: if: ${{ !github.event.repository.fork && github.event_name == 'schedule' && github.event.schedule == '0 0 */6 * *' }} @@ -201,15 +200,6 @@ jobs: preview-create-build: needs: preview-create-init runs-on: ubuntu-latest - env: - PREVIEW_WATCH: - ${{ - contains(github.event.pull_request.labels.*.name, 'preview/watch') || - contains(github.event.issue.labels.*.name, 'preview/watch') || ( - github.event_name == 'issue_comment' && - github.event.comment.body == '/preview watch' - ) - }} outputs: artifact-id: ${{ steps.upload-site.outputs.artifact-id }} steps: @@ -224,22 +214,16 @@ jobs: git fetch https://github.com/${{ needs.preview-create-init.outputs.repository }} ${{ needs.preview-create-init.outputs.sha }} git merge --squash ${{ needs.preview-create-init.outputs.sha }} --no-edit git commit -m "Merge #${{ env.GITHUB_PR_NUMBER }} for preview build" - - name: Setup Ruby - uses: ruby/setup-ruby@v1 + - name: Setup Node + uses: actions/setup-node@v6 with: - ruby-version: "3.4" - bundler-cache: ${{ env.PREVIEW_WATCH }} - cache-version: PR-${{ env.GITHUB_PR_NUMBER }} - - name: Jekyll Build + node-version: 24 + - name: Build run: | - echo "url: https://${{ needs.preview-create-init.outputs.domain }}" > _action.yml - echo "baseurl: ${{ needs.preview-create-init.outputs.pathname }}/PR${{ env.GITHUB_PR_NUMBER }}" >> _action.yml - echo "source: ${{ github.workspace }}" >> _action.yml - echo "destination: /home/runner/site" >> _action.yml - echo "preview:" >> _action.yml - echo " pr-number: ${{ env.GITHUB_PR_NUMBER }}" >> _action.yml - ${{ env.PREVIEW_WATCH }} || bundle install --jobs 4 - bundle exec jekyll build --trace --config _config.yml,_action.yml + npm install + npm run build -- --outDir /home/runner/site + env: + PUBLIC_SITE_URL: https://${{ needs.preview-create-init.outputs.domain }}${{ needs.preview-create-init.outputs.pathname }}/PR${{ env.GITHUB_PR_NUMBER }} - id: upload-site name: Upload Site uses: actions/upload-artifact@v4 diff --git a/.gitignore b/.gitignore index f60b43ac..dfaee3fe 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,27 @@ -_site -.sass-cache -.jekyll-cache -.jekyll-metadata -vendor -Gemfile.lock -.bundle -/.idea/ \ No newline at end of file +# build output +dist/ +# generated types +.astro/ + +# dependencies +node_modules/ + +# logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# lock +package-lock.json +yarn.lock +pnpm-lock.yaml +bun.lock +bun.lockb + +# environment variables +.env +.env.production + +# macOS-specific files +.DS_Store diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..c8de6434 --- /dev/null +++ b/.prettierignore @@ -0,0 +1 @@ +.github/workflows/pr-preview.yml diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 00000000..dc525a97 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,15 @@ +{ + "printWidth": 100, + "semi": true, + "tabWidth": 2, + "trailingComma": "es5", + "plugins": ["prettier-plugin-astro"], + "overrides": [ + { + "files": "*.astro", + "options": { + "parser": "astro" + } + } + ] +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..62c37143 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,4 @@ +{ + "recommendations": ["astro-build.astro-vscode", "esbenp.prettier-vscode", "unifiedjs.vscode-mdx"], + "unwantedRecommendations": [] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..d6422097 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,11 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "command": "./node_modules/.bin/astro dev", + "name": "Development server", + "request": "launch", + "type": "node-terminal" + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..78664b27 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "editor.tabSize": 2 +} diff --git a/404.md b/404.md deleted file mode 100644 index b6608394..00000000 --- a/404.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -layout: splash ---- - -
-

404

-

页面不存在

-
diff --git a/Gemfile b/Gemfile deleted file mode 100644 index 3ba85cff..00000000 --- a/Gemfile +++ /dev/null @@ -1,36 +0,0 @@ -source "https://rubygems.org" -# Hello! This is where you manage which Jekyll version is used to run. -# When you want to use a different version, change it below, save the -# file and run `bundle install`. Run Jekyll with `bundle exec`, like so: -# -# bundle exec jekyll serve -# -# This will help ensure the proper Jekyll version is running. -# Happy Jekylling! -gem "jekyll", "4.4.1" -gem "minimal-mistakes-jekyll", "4.27.3" - -group :jekyll_plugins do - gem "jekyll-paginate", "1.1.0" - gem "jekyll-sitemap", "1.4.0" - gem "jekyll-gist", "1.5.0" - gem "jekyll-feed", "0.17.0" - gem "jekyll-include-cache", "0.2.1" - gem "jekyll-redirect-from", "0.16.0" -end - -# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem -# and associated library. -platforms :windows, :jruby do - gem "tzinfo", "2.0.6" - gem "tzinfo-data", "1.2025.2" -end - -# Performance-booster for watching directories on Windows -gem "wdm", "0.2.0", :platforms => [:windows] - -gem "http_parser.rb", "0.8.0", :platforms => [:jruby] - -# plugin dependencies -gem "nokogiri", "1.18.10" -gem "addressable", "2.8.7" diff --git a/README.md b/README.md index 8860cfb7..80bd7e74 100644 --- a/README.md +++ b/README.md @@ -1,109 +1,5 @@ -# HMCL-docs +# Hello Minecraft! Launcher 文档仓库 -[![Build Status](https://drone.hmcl.net/api/badges/huanghongxun/HMCL-docs/status.svg)](https://drone.hmcl.net/huanghongxun/HMCL-docs) +本仓库用于托管 [Hello Minecraft! Launcher 文档站](https://docs.hmcl.net)的源代码,您可以通过对本仓库提交 Pull Request 的方式来为 HMCL 文档站贡献自己的力量! -Hello Minecraft! Launcher 帮助文档仓库 - -您可以通过对本仓库提交 Pull Request 的方式来为 HMCL 帮助文档贡献自己的力量! 本仓库内容使用 Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) 协议(附带额外条款)开放,协议内容请参见 LICENSE 文件。 - -## 相关链接 - -[Hello Minecraft! Launcher 帮助文档仓库网站](https://docs.hmcl.net) - -## Markdown - -每篇文章由 Markdown 编写。如果你不知道什么是 Markdown,我们推荐你先大概了解一下这个排版工具。 - -我们推荐你使用 Typora 编写 Markdown 文章,该软件的使用方法和 Word 等传统文字排版软件相似,易于使用。 - -请注意,你在使用 Typora 时,请在 文件->偏好设置->图像 中,将 `插入图片时...` 选项修改为复制到指定路径为 `/assets/img/docs/${filename}` 目录 - -## 贡献 - -本仓库组织方式为一篇文章放在一个目录中。如果你要提交 PR,请不要将 md 文件直接放在根目录下。 - -每篇文章结构如下: -``` -_/
.md - -assets - * img - * docs - *
- * img1.png - * img2.png - * ... -``` - -其中,`` 表示集合,如 `multiplayer` 表示多人游戏、`modpack` 表示整合包,`
` 表示你的文章的英文唯一标识(尖括号表示占位符,不要直接提交 `
`,请确保其唯一且简短)请仅使用英文字母、数字、中划线、下划线字符作为唯一标识,不要使用空格、英文句点、中文字符。请确保资源文件夹名和 md 文件名一致,具体可以参考已有文章目录格式。 - -每篇文章由 Markdown 编写的 `
.md` 文件及附带图片组成(文章的图片请放置到 `/assets/img/docs/
` 目录中)在 Markdown 文件中请确保包含 [Front Matter](https://jekyllrb.com/docs/front-matter/) 其中应提供文章的一些元数据(如标题 `title` 更新日期 `date` 等)在 `_config.yml` 的 `defaults` 中配置有默认值的可以不指定。 - -### 添加新文章 - -添加新文章时,请确保将内容按照上述格式要求存放。你也可以参考已经写好的文章格式。 - -切记不要在一个添加新文章的 PR 里修改其他文章的内容。 - -### 修改已有文章 - -修改已有文章时,请确保你的 PR 仅修改一个文章内容,并在该文章里署名。 - -### 更新索引 - -在添加或修改文章后,请更新索引文件 `index.json`,以便 HMCL 展示你新添加的文件。 - -### 本地部署 - -项目是基于 Jekyll 实现的静态网站,使用 Minimal Mistakes 主题。 - -如果您想更深入的参与项目文档的维护,可参阅以下内容。 - -#### 前置条件 - -- `Ruby` 版本大于等于 `3.1` (项目构建版本 `3.4`) - -#### 安装 bundle - -> 环境中已安装 `bundle` 可跳过本节 - -```shell -gem install bundler -``` - -#### 下载源码 - -> 以 `git` 为例,您也可以通过 `github` 下载源码压缩包或其它方式下载源码。 - -```shell -# 克隆项目到本地 -git clone https://github.com/HMCL-dev/HMCL-docs.git -# 进入项目根目录 -cd HMCL-docs -``` - -#### 安装依赖 - -```shell -# 配置镜像(请自行根据网络环境决定是否需要使用镜像,此处以腾讯云镜像为例) -bundle config mirror.https://rubygems.org https://mirrors.cloud.tencent.com/rubygems -# 配置项目依赖安装路径 -bundle config path vendor/bundle -# 安装项目依赖 -bundle install -``` - -#### 启动本地开发服务器 - -```shell -bundle exec jekyll serve -``` - -#### 本地构建产物 - -> 根据需要配置环境变量,配置 `JEKYLL_ENV=production` 表示生产环境构建。 - -```shell -bundle exec jekyll build -``` diff --git a/_changelog/dev.md b/_changelog/dev.md deleted file mode 100644 index 56c70c5b..00000000 --- a/_changelog/dev.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -layout: changelog -channel: dev -title: 开发版更新日志 -date: 2021-08-22 23:18:02 +0800 ---- - - -> [!NOTE] -> -> Changelogs are written in Chinese. - -> [!NOTE] -> -> Changelogs are written in Chinese. - -

加入群聊前请注意

- -- 游戏非正常退出时,请点击左下角 ![](/assets/img/docs/groups/button-1.png "导出游戏崩溃日志") 按钮(不是 ![](/assets/img/docs/groups/button-2.png "日志") 按钮),并完整发送生成的报错压缩包 -- 遇到其他问题时,请详细说明情况并提供相关截图,以便我们提供帮助 -- 使用整合包时,请说明具体的整合包名称与版本 -- 请保持耐心,群管理和群友会协助解决问题。严禁辱骂、催促他人 -- 禁止讨论政治、色情、违法、金钱交易等敏感内容,禁止人身攻击、造谣诽谤等行为 -- 禁止刷屏、灌水、挑起争端、发泄情绪等影响群聊秩序的行为 -- 禁止使用第三方插件发送特殊消息;禁止讨论多人游戏作弊工具 -- 本群仅支持 HMCL 启动器相关问题。PCL 启动器用户请加入 978054335 群 -- 请勿重复发送文件,如需重新获取关注,请引用之前发送的消息 -- 因人数限制,已解决问题的用户会被移出群聊。如遇新问题可再次加入 -- 本群仅处理游戏崩溃相关问题,其他话题请到其他群讨论 - ---- - - -如果你遇到了游戏非正常退出问题,欢迎加入报错崩溃交流群咨询解决方案:[Minecraft 报错崩溃交流群 (666546887)](https://qm.qq.com/q/nG0Ti1kJri) - -![](/assets/img/docs/groups/crash.png) - -**本群仅处理游戏报错崩溃问题,无关话题请前往其他群聊讨论。** - -由于加群人数过多,我们会移出问题已解决的用户。如果你在被移出后遇到了新的问题需要求助,你可以再次加群。 - - - - - - -{% if site.head_scripts %} - {% for script in site.head_scripts %} - - {% endfor %} -{% endif %} diff --git a/_includes/head/custom.html b/_includes/head/custom.html deleted file mode 100644 index 55de7508..00000000 --- a/_includes/head/custom.html +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/_launcher/authlib-injector.md b/_launcher/authlib-injector.md deleted file mode 100644 index d832e9eb..00000000 --- a/_launcher/authlib-injector.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Authlib-Injector 服务器设置指南 -excerpt: 配置默认的验证服务器 -date: 2021-08-22 23:18:02 +0800 -author: huanghongxun ---- - -## 背景 - -使用 authlib-injector 认证的服主可以通过本教程提供的方法使 HMCL 默认在打开时弹窗要求创建对应认证服务器的账户。 - -## 方法 - -在 HMCL 启动器同级目录下创建 `authlib-injectors.json` 文件,此时文件夹目录结构如下图所示: - -![](/assets/img/docs/authlib-injector/image.png) - -(注意,请确保打包后的整合包不包含 `hmcl.json` 文件,否则无法生效。该文件默认为隐藏状态,需开启隐藏文件显示) - -`authlib-injectors.json` 文件的示例如下 - -```json -{ - "urls": [ - "https://example.yggdrasil.yushi.moe/" - ] -} -``` diff --git a/_launcher/isolation.md b/_launcher/isolation.md deleted file mode 100644 index d175b4aa..00000000 --- a/_launcher/isolation.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: 全局版本隔离 -excerpt: 避免多个游戏版本的存档、模组和配置冲突 -date: 2021-10-09T23:18:02+08:00 -last_modified_at: 2025-12-03T14:31:42+08:00 -author: LIPiston -redirect_from: - - /launcher/global-version-isolation.html ---- - -请注意该方法会改变默认的游戏文件结构。 - -## 使用方式 - -进入 hmcl 的 `设置` - -![](/assets/img/docs/isolation/img1.png) - -在全局游戏设置中找到 `版本隔离` 并设置为 `各实例独立` - -![](/assets/img/docs/isolation/img2.png) - -这时候 minecraft 的文件结构就会有所改变,如下方 - -```plaintext -.minecraft -├── asstes -├── libraries -└── versions - └── 1.16.5-optifine - ├── 1.16.5-optifine.jar - ├── saves - ├── resourcepacks - ├── logs - ├── mods - └── ... -``` - -并非在 .minecraft 文件夹中存储一切的 mod 和 资源包**而是各版本的资源互相独立** - -这样你就可以在一个目录下,安装多个客户端 - -## 往后的使用 - -在做完版本隔离的设置后,hmcl 的快速打开各个游戏文件夹的功能就会显得十分好用。 - -![](/assets/img/docs/isolation/img3.png) - -~~善用该功能也可为你的磁盘剩下不少的空间~~,现在反思过来其实都差不多 diff --git a/_launcher/jvm-options-and-env.md b/_launcher/jvm-options-and-env.md deleted file mode 100644 index fb670115..00000000 --- a/_launcher/jvm-options-and-env.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: JVM 选项与环境变量 -excerpt: 配置 JVM 参数和环境变量的说明 -date: 2025-04-20 23:18:02 +0800 ---- - -## JVM 选项 - -HMCL 提供了一些 JVM 选项用于调试目的。你可以通过在启动 HMCL 时添加这些参数来使用这些功能。 - -| 参数 | 描述 | -|------|------| -| `-Dhmcl.home=` | 覆盖 HMCL 全局数据文件夹路径 | -| `-Dhmcl.dir=` | 覆盖 HMCL 工作路径下的 .hmcl 文件夹路径 | -| `-Dhmcl.self_integrity_check.disable=true` | 禁用启动器更新时的本体完整性检查 | -| `-Dhmcl.bmclapi.override=` | 自定义 BMCLAPI 的 API Root 地址(默认为 `https://bmclapi2.bangbang93.com`)| -| `-Dhmcl.font.override=` | 指定启动器使用的字族 | -| `-Dhmcl.version.override=` | 手动指定启动器版本号 | -| `-Dhmcl.update_source.override=` | 自定义 HMCL 更新源地址 | -| `-Dhmcl.authlibinjector.location=` | 指定本地 authlib-injector 路径,不从网络下载 | -| `-Dhmcl.openjfx.repo=` | 添加用于下载 OpenJFX 的自定义 Maven 仓库地址(默认为 `https://repo1.maven.org/maven2`)| -| `-Dhmcl.native.encoding=` | 指定系统原生编码 | -| `-Dhmcl.microsoft.auth.id=` | 自定义 Microsoft OAuth 应用程序 ID | -| `-Dhmcl.microsoft.auth.secret=` | 自定义 Microsoft OAuth 应用程序密钥 | -| `-Dhmcl.curseforge.apikey=` | 自定义 CurseForge API 密钥 | -| `-Dhmcl.discoapi.override=` | 自定义 DiscoAPI 的 API Root 地址(默认为 `https://api.foojay.io/disco/v3.0`)| -| `-Dhmcl.native.backend=` | 指定 HMCL 的本地后端类型。可选值:
- `auto`:自动选择(Windows 7+ 使用 JNA,其他系统不使用)
- `jna`:强制使用 JNA(如果 JNA 不可用会抛出异常)
- `none`:禁用 JNA
默认值:`auto` | -| `-Dhmcl.hardware.fastfetch=` | 是否使用 fastfetch 获取设备信息。默认值:`true` | - -## 环境变量 - -HMCL/HMCLauncher 也支持一些环境变量来配置启动器的行为。你可以在系统环境变量中添加这些变量。 - -| 参数 | 描述 | -|------|------| -| `HMCL_JAVA_OPTS` | 自定义 HMCLauncher 所使用的 JVM 启动参数(默认为 `-XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=15` 或 `-Xmx1G -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=15`)| -| `HMCL_JAVA_HOME` | 自定义 HMCLauncher 所使用的 Java 路径 | -| `HMCL_FONT` | 指定启动器使用的字族 | -| `HMCL_JRES` | 添加 HMCL 所使用的 Java 路径,支持写入多个路径 | - -## 如何使用 JVM 选项 - -你可以通过以下几种方式使用这些 JVM 选项。 - -### 方法一:直接在命令行中添加 - -在启动 HMCL 时通过命令行添加参数,例如: - -```bash -java -Dhmcl.home="D:/Games/HMCL" -jar HMCL.jar -``` - -### 方法二:创建启动脚本 - -1. Windows 用户可以创建 `.cmd` 文件: -```batch -@echo off -java -Dhmcl.font.override="Microsoft YaHei" -jar HMCL.jar -pause -``` - -2. Linux/macOS 用户可以创建 `.sh` 文件: -```bash -#!/bin/bash -java -Dhmcl.font.override="Noto Sans CJK SC" -jar HMCL.jar -``` - -### 使用注意事项 - -- 可以同时使用多个参数,只需要用空格分隔 -- 包含空格的参数值需要用半角引号包裹 -- 确保 JVM 参数位于 `-jar HMCL.jar` 之前 - -## 如何使用环境变量 - -### Windows 设置环境变量 - -1. 右键点击“此电脑”/“这台电脑”/“我的电脑”,选择“属性” -2. 点击“高级系统设置” -3. 点击“环境变量” -4. 在“用户变量”或“系统变量”中点击“新建” -5. 输入变量名(如 `HMCL_JAVA_HOME`)和变量值 -6. 点击“确定”保存 - -示例值: -``` -变量名: HMCL_JAVA_HOME -变量值: C:\Program Files\Java\jdk-17 -``` - -### Linux/macOS 设置环境变量 - -1. 编辑你的 Shell 配置文件(比如 `~/.bashrc`、`~/.zshrc` 等) -2. 添加 `export` 语句: - -```bash -export HMCL_JAVA_HOME="/usr/lib/jvm/java-17-openjdk" -export HMCL_JAVA_OPTS="-XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=15" -``` - -3. 保存文件并重新加载配置: -```bash -source ~/.bashrc # 或 `source ~/.zshrc` -``` - -### 使用注意事项 - -- 设置环境变量后需要重启 HMCL 才能生效 -- 如果同时设置了 JVM 参数和环境变量,JVM 参数优先级更高 -- Windows 用户注意使用半角分号(;)分隔多个路径 -- Linux/macOS 用户注意使用半角冒号(:)分隔多个路径 - diff --git a/_layouts/changelog.html b/_layouts/changelog.html deleted file mode 100644 index 40261deb..00000000 --- a/_layouts/changelog.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -layout: document ---- - -{{ content }} - -{% assign channel = page.channel | default: 'stable' %} -{% assign changelogs = site.changelogs | where: "channel", channel | version_sort: "slug" | reverse %} -{% for item in changelogs %} - {% assign version = item.slug %} -

HMCL {{ version }}

-
{{ item.content | markdownify }}
-{% endfor %} diff --git a/_layouts/default.html b/_layouts/default.html deleted file mode 100644 index e691d2a6..00000000 --- a/_layouts/default.html +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: compress ---- - - -{% include copyright.html %} - - - {% include head.html %} - {% include head/custom.html %} - - - - {% if site.preview and site.preview.pr-number %} -
当前站点为预览构建而非官方文档。如需反馈问题,请前往 #{{ site.preview.pr-number }} 留言。
- {% endif %} - - {% include_cached skip-links.html %} - {% include_cached masthead.html %} - -
- {{ content }} - {% include after-content.html %} -
- - {% if site.search == true %} -
- {% include_cached search/search_form.html %} -
- {% endif %} - - - - {% include scripts.html %} - - diff --git a/_layouts/document.html b/_layouts/document.html deleted file mode 100644 index 3b4bd7db..00000000 --- a/_layouts/document.html +++ /dev/null @@ -1,13 +0,0 @@ ---- -layout: single ---- - -{% if jekyll.environment == 'production' and page.hits %} -Hits -{% endif %} - -
-

本文由 {{ page.author | default: '未署名用户' }} 创建{% if page.contributors %},并由 {{ page.contributors | join: ' ' }} 编辑{% endif %}。

-
- -{{ content }} diff --git a/_layouts/home.html b/_layouts/home.html deleted file mode 100644 index e45ab726..00000000 --- a/_layouts/home.html +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: document ---- - -{{ content }} - -{% capture list %} -{% for group in site.data.navigation.docs -%} -## {{ group.title }} -{% for item in group.children -%} -1. [{{ item.title }}]({{ item.url | relative_url }}) -{%- if item.description %}\ - {{ item.description }} -{%- endif %} -{% endfor %} -{% endfor %} -{% endcapture %} - -{{ list | markdownify }} diff --git a/_layouts/settings.html b/_layouts/settings.html deleted file mode 100644 index af675a0c..00000000 --- a/_layouts/settings.html +++ /dev/null @@ -1,46 +0,0 @@ ---- -layout: document ---- - -{% for group in page.data %} - -{% capture notice %} - -## {{ group.title }} - -{% for pair in group.settings %} -{% assign name = pair[0] %} -{% assign value = pair[1] %} -{% assign setting = site.data.settings[name] %} - -{% if setting.type == 'radio' %} -
-
    -
  • {{ value.title }}
  • -
  • {{ value.description }}
  • - {% for option in setting.options %} -
  • - -
  • - {% endfor %} -
-
- - -{% endif %} -{% endfor %} -{% endcapture %} -{{ notice | markdownify }} -{% endfor %} diff --git a/_modpack/error-handbook.md b/_modpack/error-handbook.md deleted file mode 100644 index 57039650..00000000 --- a/_modpack/error-handbook.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: 模组包报错排查手册 -excerpt: 排查和解决整合包相关问题 -date: 2025-05-24 13:39:36 +0800 -author: LIPiston ---- - -## 文件夹结构 - -首先我们需要先认识Minecraft的文件夹结构 -如果你开启了 [版本隔离](/_launcher/isolation.md) 那么你的文件夹结构如下 -```text -.minecraft -|*assets # 游戏资源文件夹,存放纹理、声音等资源 -|*libraries # 依赖库文件夹,存放运行游戏所需的各种库 -|*versions # 版本文件夹,包含所有已安装的Minecraft版本 - \1.16.5-optifine - |1.16.5-optifine.jar # 该版本的主程序jar文件 - |*saves # 存档文件夹,仅该版本可见 - |*resourcepacks # 资源包文件夹,仅该版本可见 - |*logs # 日志文件夹,仅该版本可见 - |*mods # 模组文件夹,仅该版本可见 - |*config # 配置文件夹,仅该版本可见 - |*crash-reports # 崩溃报告文件夹,仅该版本可见 - ... -``` - -如果你没有开启则是这样 -```text -.minecraft -|*assets # 游戏资源文件夹,存放纹理、声音等资源 -|*libraries # 依赖库文件夹,存放运行游戏所需的各种库 -|*saves # 存档文件夹,所有版本共用 -|*resourcepacks # 资源包文件夹,所有版本共用 -|*logs # 日志文件夹,所有版本共用 -|*mods # 模组文件夹,所有版本共用 -|*config # 配置文件夹,所有版本共用 -|*crash-reports # 崩溃报告文件夹,所有版本共用 -|*versions # 版本文件夹,包含所有已安装的Minecraft版本 - \1.16.5-optifine - |1.16.5-optifine.jar # 该版本的主程序jar文件 - ... -``` - -我们极力推荐您打开版本隔离,因为这样能避免模组之间的一部分冲突 [跳转](/_launcher/isolation.md) - -## 简单排查 - -在遇到报错时,您可以通过以下两种方式进行初步分析: - -1. **使用社区分析工具** - 访问 [CrashMC 报错分析器](https://www.crashmc.com/analyzer),将崩溃报告内容粘贴进去,工具会自动分析常见问题并给出建议。 - -2. **借助 AI 辅助分析** - 可以将崩溃日志粘贴到 [DeepSeek Chat](https://chat.deepseek.com/),让 AI 帮助你解读报错内容和可能的解决方法。 - -3. **进入 HMCL 汉医堂** - 可以在 HMCL 急诊群中向群友们寻求帮助,他们通常有丰富的经验,能够协助你分析报错并提供解决方案。 - - > qq : 666546887 - -这三种方式都能帮助您快速定位问题,提高排查效率。 - -## 求助他人 - -*游戏崩的时候会有个窗口,里面可以导出一个压缩包,可以发给别人让别人帮你看,你千万别截图那个窗口 *磕头* - -![报错示例截图](/assets/img/docs/error-handbook/image.png) -在向他人求助时,建议将 `.minecraft` 文件夹下的 `crash-reports` 文件夹和 `logs` 文件夹中的相关文件(如最新的崩溃报告和日志文件)一并打包发送。 -这样可以让对方更全面地了解你的运行环境和报错详情,从而更高效地帮助你分析和解决问题。请注意,发送前可先检查日志内容,避免泄露个人隐私信息。 - diff --git a/_modpack/serverpack.md b/_modpack/serverpack.md deleted file mode 100644 index 713b1b1e..00000000 --- a/_modpack/serverpack.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: 服务端自动更新整合包制作教程 -excerpt: 创建可自动更新的服务器整合包 -date: 2021-08-22T23:18:02+08:00 -last_modified_at: 2025-12-06T09:37:00+08:00 -author: huanghongxun ---- - -HMCL 允许服务器管理员借助服务端自动更新整合包来实现自动分发整合包更新,这将大大方便有需要频繁更新游戏客户端 Mod、配置等信息的服务器管理员。 - -HMCL 需要服务器管理员额外提供一个 HTTP 服务器(只需要能提供静态文件服务,比如 Apache 和 Nginx 皆可)来提供检查整合包更新并允许 HMCL 下载更新文件。 - -## 第一步:导出整合包 - -在 HMCL 中右键做好的客户端版本,选择`导出整合包`: - -![](/assets/img/docs/serverpack/img1.png) - -选择导出为`服务器自动更新整合包`: - -![](/assets/img/docs/serverpack/img2.png) - -填写整合包信息,整合包下载链接前缀如何填写请看下文 - -![](/assets/img/docs/serverpack/img3.png) - -选择需要包含在整合包内的文件后将产生整合包压缩文件 - -## 第二步:导入整合包 - -接着创建一个全新的空文件夹,将启动器复制进去 - -![](/assets/img/docs/serverpack/img4.png) - -运行启动器,并导入刚才导出的整合包,导入完成后,这个文件夹(这里叫“新整合包”)可以打包发给玩家。 - -## 第三步:部署整合包更新服务器 - -你可以借助 Apache、Nginx 等支持静态文件的 HTTP 服务器软件提供文件。首先,决定好整合包下载链接前缀,比如我希望 HMCL 从远程服务器的 http://www.site.com/modpack 目录下存放整合包的更新信息,则在之前导出整合包的整合包下载前缀中填写 http://www.site.com/modpack。 - -![](/assets/img/docs/serverpack/img5.png) - -上图为导出的服务器自动更新整合包压缩文件的内容,你需要将这个整合包解压到 http://www.site.com/modpack 下。也就是说,从 http://www.site.com/modpack/server-manifest.json 这个链接下载下来的文件必须和上图中整合包压缩文件中的 server-manifest.json 文件一致,并且,http://www.site.com/modpack/overrides 是一个文件夹,里面存放了整合包文件,比如: - -![](/assets/img/docs/serverpack/img6.png) - -整合包压缩文件 test.zip/overrides/mods/Advancement_Book-1.12-1.0.3.jar 文件必须可以从 http://www.site.com/modpack/overrides/mods/Advancement_Book-1.12-1.0.3.jar 该目录下载下来,且文件内容一致。那么至此更新服务器就部署完成了。 - -## 第四步:更新整合包 - -如果你需要更新整合包,那么将新的整合包经过第一步导出新的整合包压缩文件,并解压到类似 http://www.site.com/modpack 文件夹下即可完成新整合包的部署。 diff --git a/_modpack/serverpack2.md b/_modpack/serverpack2.md deleted file mode 100644 index 6e568b8c..00000000 --- a/_modpack/serverpack2.md +++ /dev/null @@ -1,143 +0,0 @@ ---- -title: 配置客户端自动更新(宝塔面板) -excerpt: 本文介绍了如何使用宝塔面板配置客户端自动更新 -date: 2021-08-22 23:18:02 +0800 ---- - -## 备注 - -> 文章原作者:[hy黑影](https://www.mcbbs.net/home.php?mod=space&uid=3051111)\ -> 转载:Zkitfly\ -> 部分内容进行了稍作打磨\ -> 本教程转载自 https://www.mcbbs.net/thread-1103864-1-1.html - -## **前言** - -- 我自己开设的服务器有很多不同的子服,每个子服的客户端版本呢都不相同,我又希望能整合到一个客户端里面;找了一圈发现那些辅助更新程序只能更新单个客户端版本,而且界面不太美观;甚至一度想自己开发启动器......... -- 这篇帖子的灵感来自于 **HMCL** 启动器的一个功能 **导出服务器自动更新整合包**,我觉得可以利用这个功能来代替一些自动更新的辅助程序。 -- 整个功能的实现需要:**一台有公网IP的服务器、一个客户端整合包、HMCL启动器**;如果你都没有,那就换成RMB10元 -- 本篇教程默认读者为 萌新,即**没有接触过HTTP服务器,网络应用开发,不懂linux系统,惧怕控制台程序** - -## **教程** - -### **第一步-租服务器(▲如果你有公网IP的服务器,请跳过这一步)** - -- 百度搜索 [腾讯云学生机](https://cloud.tencent.com/act/campus?from=11821) 或 [阿里云学生机](https://promotion.aliyun.com/ntms/act/campus2018.html) -- 可以看到有10元/月 的套餐,如果是阿里云的话选**轻量型应用服务器**,腾讯云就只有一个套餐 -- 系统请选择**CentOS 8.0 64位**,其他保持默认即可 -- 再次确认是否是十元,是的话直接购买;不是的话可能是你已经买过学生套餐 -- 第一次购买可能需要**实名认证**,按照提示操作即可,不需要担心安全问题,都是可靠的大公司 - -### 第二步-安装宝塔面板——CentOS 8.0系统 - -- 以腾讯云举例,阿里云同理 - -- 打开控制台面板,找到刚才租的学生机 - - ![](/assets/img/docs/serverpack2/2.1.jpg) - -- 选择重置密码 - - ![](/assets/img/docs/serverpack2/2.2.jpg) - -- 点击右侧**登入**按钮,按照说明填写你刚刚重置的密码;之后应该会看到类似这样的提示 - - ![](/assets/img/docs/serverpack2/2.3.jpg) - -- **不要慌,冷静。如果下面的部分教程失效请去[宝塔面板官网](https://www.bt.cn/),点击Linux->立即安装** - - ![](/assets/img/docs/serverpack2/2.4.jpg) - -- 回到控制台面板,我们需要开放一些通道让面板通过,选择**安全组** - - ![](/assets/img/docs/serverpack2/2.5.jpg) - -- 点击**修改规则**,再点击**添加规则** - -- 图1: - - ![](/assets/img/docs/serverpack2/2.6.jpg) - -- 图2: - - ![](/assets/img/docs/serverpack2/2.7.jpg) - -- **按照图中所写添加,想要安全的话按照图1,懒的话按照图2** - -- 回到那个黑黑的界面里输入 `yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh` ,按下回车 - -- 这时会刷一大片大的英文,等他停下来的时候仔细看,最后一行在问你要不要安装(就是最后显示y/n),输入y并按下回车 - -- 耐心等待五分钟左右,直到出现这个字样 - - ![](/assets/img/docs/serverpack2/2.8.jpg) - -- 复制**外网面板地址**,在打开的页面中,用户名输入username后面的内容,密码输入password后面的内容 - -- 点击登入,到此为止面板按照完成 - -### **第三步-搭建HTTP静态文件服务器** - -- 打开刚刚的宝塔面板,一般都会有提示安装套件,选择**nginx套装**安装 - -- 等待安装完成后,选择**网站**,点击**添加网站** - - ![](/assets/img/docs/serverpack2/3.1.jpg) - -- 在弹出的页面填写网站IP,就是地址栏里面的那个;比如:我的是 https://233.88.233.44:8888/site ,那么我就填233.88.233.44 - -- 另外,**租vps的同学请找服务商索要ip地址和开放的端口**,比如我要到的是123.21.123.21:6666,那我就把这个填上去 - - ![](/assets/img/docs/serverpack2/3.2.jpg) - -- **其他保持不变,到此为止你已经搭建好了HTTP静态文件服务器✔** - -### **第四步-制作整合包** - -- 使用HMCL打开你的MC客户端 - -- 选择你的游戏版本,点击**导出整合包** - - ![](/assets/img/docs/serverpack2/4.1.jpg) - -- 选择**服务器自动更新整合包** - -- 填写相关信息: - - ![](/assets/img/docs/serverpack2/4.2.jpg) - -- 整合包下载链接前缀:比如我刚刚在【[第三步-搭建HTTP静态文件服务器](###第三步-搭建HTTP静态文件服务器)】宝塔里填的是233.88.233.44,我希望能有版本区分,这个版本代号是a;那么我就填https://233.88.233.44/a, **vps注意,端口号也要写▲** - -- 版本号写1.0 ,以后更新就写2.0以此类推 - -- 点击**下一步**,导出完成 - -### **第五步-上传整合包** - -- 打开宝塔面板,选择**文件**,找到相应的目录,在相应IP目录下新建文件夹;比如我刚刚写的版本代号是a,那我就新建a这个文件夹 - - ![](/assets/img/docs/serverpack2/5.1.jpg) - -- 在新建的文件夹里上传刚刚导出的整合包,并解压;成功后如下图 - - ![](/assets/img/docs/serverpack2/5.2.jpg) - -- 要是更新整合包,请在解压时将该【a】这个文件夹内的文件覆盖处理 - - -### **第六步-分发整合包** - -- **大公告成,现在可以把刚刚导出的这个整合包上传分享给玩家了!** - -### **第七步-检测整合包** - -- **为了防止一些手滑现象导致整合包可能会出现一些问题,你可以在分发整合包前先测试一下要准备分发的整合包** - -## **后续** - -- 以后每次更新客户端只要重复[**第四步**](###第四步-制作整合包)**和**[**第五步**](###第五步-上传整合包),**玩家重启客户端后就会自动接收更新** -- 版本号要记得更新 -- 默认的更新方式不会删除玩家自己加入的模组,但会下载玩家删除的模组 -- 更新覆盖的是整合包导出时的所有数据 -- **每次更新会从整合包提供的链接下载 server-manifest.json 来校验玩家本地的整合包。若校验到整合包里没有匹配这个名字的文件或整合包里这个文件匹配名字但哈希值不匹配,就会下载该文件,不会下载匹配名字且哈希值匹配的文件** -- 出网带宽1MB我觉得够用了,除非你想让玩家自己下载全部内容(就是将整合包分发给他人前删除所有模组,玩家启动时就会开始下载回来,这样的好处是可见的整合包大小变小了) diff --git a/_multiplayer/help.md b/_multiplayer/help.md deleted file mode 100644 index 89564c92..00000000 --- a/_multiplayer/help.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: 多人联机帮助 ---- - -## Terracotta | 陶瓦联机 - - -[![](/assets/img/docs/multiplayer-help/cover.jpg)](https://bilibili.com/BV1L91TBbEzX) - diff --git a/_pages/docs.md b/_pages/docs.md deleted file mode 100644 index 4d961fc4..00000000 --- a/_pages/docs.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: 文档 -layout: collection -permalink: /docs/ -collection: docs -entries_layout: grid -classes: wide ---- \ No newline at end of file diff --git a/_pages/downloads.md b/_pages/downloads.md deleted file mode 100644 index 6fe3fd1b..00000000 --- a/_pages/downloads.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: 下载 -layout: collection -permalink: /downloads/ -collection: downloads -entries_layout: grid -classes: wide ---- \ No newline at end of file diff --git a/_pages/launcher.md b/_pages/launcher.md deleted file mode 100644 index 3468e63f..00000000 --- a/_pages/launcher.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: 启动器 -layout: collection -permalink: /launcher/ -collection: launcher -entries_layout: grid -classes: wide ---- \ No newline at end of file diff --git a/_pages/modpack.md b/_pages/modpack.md deleted file mode 100644 index 5013c3fc..00000000 --- a/_pages/modpack.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: 整合包 -layout: collection -permalink: /modpack/ -collection: modpack -entries_layout: grid -classes: wide ---- \ No newline at end of file diff --git a/_pages/multiplayer.md b/_pages/multiplayer.md deleted file mode 100644 index 55a94497..00000000 --- a/_pages/multiplayer.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: 多人联机 -layout: collection -permalink: /multiplayer/ -collection: multiplayer -entries_layout: grid -classes: wide ---- diff --git a/_plugins/auto-alert.rb b/_plugins/auto-alert.rb deleted file mode 100644 index bb8ce96c..00000000 --- a/_plugins/auto-alert.rb +++ /dev/null @@ -1,48 +0,0 @@ -require "nokogiri" - -Jekyll::Hooks.register [:pages, :documents], :post_convert do |doc| - next unless doc.output_ext == ".html" - site = doc.site - next unless site.data["plugins"] - alert_type = site.data["plugins"]["auto_alert"] - next unless alert_type - - fragment = Nokogiri::HTML::DocumentFragment.parse(doc.content) - # 遍历 HTML 中的所有 blockquote 标签 - fragment.css("blockquote").each do |item| - # 找出第一个子节点,用于判断是否含有 [!type] 标记 - first_child = item.at_css("*:first-child") - next unless first_child - next unless first_child.name == "p" - - inner_html = first_child.inner_html.downcase - - # 遍历所有 alert 类型 - alert_type.each do |type, data| - prefix = "[!#{type}]" - prefix_with_newline = "#{prefix}\n" - - # 情况一:完整匹配 [!type] 形式

[!NOTE]

- if inner_html == prefix - # 将 alert 类型对应的 class 加入 blockquote - item["class"] = [item["class"], data["class_name"]].compact.join(" ") - - # 将

替换为

并插入标题 - first_child.name = "div" - first_child.inner_html = "#{data["title"]}" - break - - # 情况二:段落以 [!type]\n 开头

[!NOTE]\n\n other content

- elsif inner_html.start_with? prefix_with_newline - # 将 alert 类型对应的 class 加入 blockquote - item["class"] = [item["class"], data["class_name"]].compact.join(" ") - # 在原段落前插入标题
提示

[!NOTE]\n\n other content

- first_child.add_previous_sibling "
#{data["title"]}
" - # 移除段落内容开头的 [!type]\n
提示

\n other content

- first_child.inner_html = first_child.inner_html[prefix_with_newline.length..-1] || "" - break - end - end - end - doc.content = fragment.to_html -end diff --git a/_plugins/auto-link.rb b/_plugins/auto-link.rb deleted file mode 100644 index a2d4e867..00000000 --- a/_plugins/auto-link.rb +++ /dev/null @@ -1,30 +0,0 @@ -require "nokogiri" -require "addressable/uri" - -Jekyll::Hooks.register [:pages, :documents], :post_convert do |doc| - next unless doc.output_ext == ".html" - - site = doc.site - liquid_context = Liquid::Context.new({}, {}, { site: site }) - - process_uri = lambda do |path| - uri = Addressable::URI.parse(path) - if uri&.path - uri.path = Liquid::Template.parse("{% link #{uri.path[1..]} %}").render!(liquid_context) - end - uri.to_s - end - - fragment = Nokogiri::HTML::DocumentFragment.parse(doc.content) - fragment.css("[src^=\"/assets/\"],[src^=\"/\"][src$=\".md\"],[src^=\"/\"][src*=\".md#\"]").each do |item| - if item["src"] - item["src"] = process_uri.call(item["src"]) - end - end - fragment.css("[href^=\"/assets/\"],[href^=\"/\"][href$=\".md\"],[href^=\"/\"][href*=\".md#\"]").each do |item| - if item["href"] - item["href"] = process_uri.call(item["href"]) - end - end - doc.content = fragment.to_html -end diff --git a/_plugins/filter-version-sort.rb b/_plugins/filter-version-sort.rb deleted file mode 100644 index 8b49d525..00000000 --- a/_plugins/filter-version-sort.rb +++ /dev/null @@ -1,21 +0,0 @@ -module VersionSortFilter - def version_sort(input, property) - raise ArgumentError, "Cannot sort a null object." if input.nil? - raise ArgumentError, "Cannot sort an object with a null property." if property.nil? - raise ArgumentError, "Property #{property} is not an array of strings." unless valid_string_array?(input, property) - - input.sort_by { |version| version_to_numbers(version[property]) } - end - - private - - def valid_string_array?(array, property) - array.is_a?(Array) && array.all? { |element| element[property].is_a?(String) } - end - - def version_to_numbers(version_string) - version_string.split('.').map { |n| n.to_i } - end -end - -Liquid::Template.register_filter(VersionSortFilter) diff --git a/_sass/minimal-mistakes-plus.scss b/_sass/minimal-mistakes-plus.scss deleted file mode 100644 index 1d6d0b45..00000000 --- a/_sass/minimal-mistakes-plus.scss +++ /dev/null @@ -1,24 +0,0 @@ -@import "minimal-mistakes"; - -blockquote { - margin-inline: 0; - font-style: normal; -} - -* { - overflow-wrap: break-word; - word-wrap: break-word; - word-break: break-word; -} - -.notice ul:first-child { - margin-top: 0; -} - -.task-list-item label { - display: inline -} - -.m0 { - margin: 0 !important; -} diff --git a/assets/css/main.scss b/assets/css/main.scss deleted file mode 100644 index 0f4452fc..00000000 --- a/assets/css/main.scss +++ /dev/null @@ -1,8 +0,0 @@ ---- ---- - -@charset "utf-8"; - -$sans-serif: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; -@import "minimal-mistakes/skins/default"; -@import "minimal-mistakes-plus"; diff --git a/assets/css/skins/air.scss b/assets/css/skins/air.scss deleted file mode 100644 index 581fb345..00000000 --- a/assets/css/skins/air.scss +++ /dev/null @@ -1,8 +0,0 @@ ---- ---- - -@charset "utf-8"; - -$sans-serif: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; -@import "minimal-mistakes/skins/air"; -@import "minimal-mistakes-plus"; diff --git a/assets/css/skins/aqua.scss b/assets/css/skins/aqua.scss deleted file mode 100644 index 2a03a4db..00000000 --- a/assets/css/skins/aqua.scss +++ /dev/null @@ -1,8 +0,0 @@ ---- ---- - -@charset "utf-8"; - -$sans-serif: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; -@import "minimal-mistakes/skins/aqua"; -@import "minimal-mistakes-plus"; diff --git a/assets/css/skins/contrast.scss b/assets/css/skins/contrast.scss deleted file mode 100644 index 474cc293..00000000 --- a/assets/css/skins/contrast.scss +++ /dev/null @@ -1,8 +0,0 @@ ---- ---- - -@charset "utf-8"; - -$sans-serif: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; -@import "minimal-mistakes/skins/contrast"; -@import "minimal-mistakes-plus"; diff --git a/assets/css/skins/dark.scss b/assets/css/skins/dark.scss deleted file mode 100644 index b7bb9c21..00000000 --- a/assets/css/skins/dark.scss +++ /dev/null @@ -1,8 +0,0 @@ ---- ---- - -@charset "utf-8"; - -$sans-serif: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; -@import "minimal-mistakes/skins/dark"; -@import "minimal-mistakes-plus"; diff --git a/assets/css/skins/default.scss b/assets/css/skins/default.scss deleted file mode 100644 index a845151c..00000000 --- a/assets/css/skins/default.scss +++ /dev/null @@ -1,2 +0,0 @@ ---- ---- diff --git a/assets/css/skins/dirt.scss b/assets/css/skins/dirt.scss deleted file mode 100644 index 1b711f58..00000000 --- a/assets/css/skins/dirt.scss +++ /dev/null @@ -1,8 +0,0 @@ ---- ---- - -@charset "utf-8"; - -$sans-serif: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; -@import "minimal-mistakes/skins/dirt"; -@import "minimal-mistakes-plus"; diff --git a/assets/css/skins/mint.scss b/assets/css/skins/mint.scss deleted file mode 100644 index 73851269..00000000 --- a/assets/css/skins/mint.scss +++ /dev/null @@ -1,8 +0,0 @@ ---- ---- - -@charset "utf-8"; - -$sans-serif: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; -@import "minimal-mistakes/skins/mint"; -@import "minimal-mistakes-plus"; diff --git a/assets/css/skins/neon.scss b/assets/css/skins/neon.scss deleted file mode 100644 index 4ba4097b..00000000 --- a/assets/css/skins/neon.scss +++ /dev/null @@ -1,8 +0,0 @@ ---- ---- - -@charset "utf-8"; - -$sans-serif: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; -@import "minimal-mistakes/skins/neon"; -@import "minimal-mistakes-plus"; diff --git a/assets/css/skins/plum.scss b/assets/css/skins/plum.scss deleted file mode 100644 index b40391c0..00000000 --- a/assets/css/skins/plum.scss +++ /dev/null @@ -1,8 +0,0 @@ ---- ---- - -@charset "utf-8"; - -$sans-serif: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; -@import "minimal-mistakes/skins/plum"; -@import "minimal-mistakes-plus"; diff --git a/assets/css/skins/sunrise.scss b/assets/css/skins/sunrise.scss deleted file mode 100644 index 9c330691..00000000 --- a/assets/css/skins/sunrise.scss +++ /dev/null @@ -1,8 +0,0 @@ ---- ---- - -@charset "utf-8"; - -$sans-serif: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; -@import "minimal-mistakes/skins/sunrise"; -@import "minimal-mistakes-plus"; diff --git a/assets/img/docs/authlib-injector/image.png b/assets/img/docs/authlib-injector/image.png deleted file mode 100644 index 654a69e8..00000000 Binary files a/assets/img/docs/authlib-injector/image.png and /dev/null differ diff --git a/assets/img/docs/groups/button-1.png b/assets/img/docs/groups/button-1.png deleted file mode 100644 index 2b1a275a..00000000 Binary files a/assets/img/docs/groups/button-1.png and /dev/null differ diff --git a/assets/img/docs/groups/button-2.png b/assets/img/docs/groups/button-2.png deleted file mode 100644 index 87a4cbfe..00000000 Binary files a/assets/img/docs/groups/button-2.png and /dev/null differ diff --git a/assets/img/docs/groups/crash.png b/assets/img/docs/groups/crash.png deleted file mode 100644 index 23848f06..00000000 Binary files a/assets/img/docs/groups/crash.png and /dev/null differ diff --git a/assets/img/docs/groups/group-1.png b/assets/img/docs/groups/group-1.png deleted file mode 100644 index 8eb8462d..00000000 Binary files a/assets/img/docs/groups/group-1.png and /dev/null differ diff --git a/assets/img/docs/groups/group-10.png b/assets/img/docs/groups/group-10.png deleted file mode 100644 index 006df1bf..00000000 Binary files a/assets/img/docs/groups/group-10.png and /dev/null differ diff --git a/assets/img/docs/groups/group-2.png b/assets/img/docs/groups/group-2.png deleted file mode 100644 index f1e6592c..00000000 Binary files a/assets/img/docs/groups/group-2.png and /dev/null differ diff --git a/assets/img/docs/groups/group-3.png b/assets/img/docs/groups/group-3.png deleted file mode 100644 index 5808b6e8..00000000 Binary files a/assets/img/docs/groups/group-3.png and /dev/null differ diff --git a/assets/img/docs/groups/group-4.png b/assets/img/docs/groups/group-4.png deleted file mode 100644 index 304501c4..00000000 Binary files a/assets/img/docs/groups/group-4.png and /dev/null differ diff --git a/assets/img/docs/groups/group-5.png b/assets/img/docs/groups/group-5.png deleted file mode 100644 index d0d5a3b3..00000000 Binary files a/assets/img/docs/groups/group-5.png and /dev/null differ diff --git a/assets/img/docs/groups/group-6.png b/assets/img/docs/groups/group-6.png deleted file mode 100644 index ce603016..00000000 Binary files a/assets/img/docs/groups/group-6.png and /dev/null differ diff --git a/assets/img/docs/groups/group-7.png b/assets/img/docs/groups/group-7.png deleted file mode 100644 index 358b8bd1..00000000 Binary files a/assets/img/docs/groups/group-7.png and /dev/null differ diff --git a/assets/img/docs/groups/group-8.png b/assets/img/docs/groups/group-8.png deleted file mode 100644 index a03048af..00000000 Binary files a/assets/img/docs/groups/group-8.png and /dev/null differ diff --git a/assets/img/docs/groups/group-9.png b/assets/img/docs/groups/group-9.png deleted file mode 100644 index b0f6d0a3..00000000 Binary files a/assets/img/docs/groups/group-9.png and /dev/null differ diff --git a/assets/img/docs/modpack-in-java/1-1.png b/assets/img/docs/modpack-in-java/1-1.png deleted file mode 100644 index 6c633357..00000000 Binary files a/assets/img/docs/modpack-in-java/1-1.png and /dev/null differ diff --git a/assets/img/docs/modpack-in-java/2-1.png b/assets/img/docs/modpack-in-java/2-1.png deleted file mode 100644 index 7aeea872..00000000 Binary files a/assets/img/docs/modpack-in-java/2-1.png and /dev/null differ diff --git a/assets/img/docs/modpack-in-java/2-2.png b/assets/img/docs/modpack-in-java/2-2.png deleted file mode 100644 index 9bfbbce0..00000000 Binary files a/assets/img/docs/modpack-in-java/2-2.png and /dev/null differ diff --git a/assets/img/docs/modpack-in-java/2-3.png b/assets/img/docs/modpack-in-java/2-3.png deleted file mode 100644 index 77d207bd..00000000 Binary files a/assets/img/docs/modpack-in-java/2-3.png and /dev/null differ diff --git a/assets/img/docs/multiplayer-help/cover.jpg b/assets/img/docs/multiplayer-help/cover.jpg deleted file mode 100644 index adc3d774..00000000 Binary files a/assets/img/docs/multiplayer-help/cover.jpg and /dev/null differ diff --git a/assets/js/plugins/jquery.auto-redirect.js b/assets/js/plugins/jquery.auto-redirect.js deleted file mode 100644 index 3f691baa..00000000 --- a/assets/js/plugins/jquery.auto-redirect.js +++ /dev/null @@ -1,59 +0,0 @@ -(function ($) { - var pluginName = "autoRedirect"; - function Plugin(element, options) { - this.$el = $(element); - this.settings = $.extend({}, $.fn[pluginName].defaults, options, this.$el.data()); - this.timer = null; - this.init(); - } - Plugin.prototype = { - init: function () { - var self = this; - var delay = parseInt(self.settings.delay, 10); - var href = self.$el.attr("href"); - - if (!href) return; - - var $info = $(" (将在 " + delay + " 秒后自动跳转,您也可以手动取消跳转) "); - self.$el.after($info); - - self.timer = setInterval(function () { - delay--; - $info.find(".time").text(delay); - if (delay <= 0) { - clearInterval(self.timer); - window.location.href = href; - } - }, 1000); - - $info.on("click", ".cancel-redirect", function () { - clearInterval(self.timer); - $info.text(""); - }); - }, - destroy: function () { - clearInterval(this.timer); - this.$el.next(".redirect-info").remove(); - } - }; - $.fn[pluginName] = function (option) { - return this.each(function () { - var $this = $(this); - var instance = $this.data(pluginName); - - if (!instance) { - $this.data(pluginName, new Plugin(this, option)); - } else if (typeof option === "string" && instance[option]) { - instance[option](); - } - }); - }; - $.fn[pluginName].defaults = { - delay: 5 - }; - $(function () { - $("a[data-redirect]").each(function () { - $(this)[pluginName](); - }); - }); -})(jQuery); diff --git a/assets/js/settings.js b/assets/js/settings.js deleted file mode 100644 index 13e6e59f..00000000 --- a/assets/js/settings.js +++ /dev/null @@ -1,76 +0,0 @@ ---- -layout: null ---- -(function (global) { - var PREFIX = "HMCL_DOCS_SETTINGS_"; - var data = {}; - var events = {}; - var config = /*{%comment%}*/{}/*{%endcomment%}*//**{{'/'}}{{ site.data.settings | jsonify }}/**/; - - global.addEventListener("storage", function (event) { - if (!event.key) return; - if (event.key.indexOf(PREFIX) !== 0) return; - - var handlers = events[event.key]; - if (!handlers) return; - - var newValue = event.newValue; - var oldValue = event.oldValue; - if (oldValue === newValue) return; - - data[event.key] = newValue; - for (var i = 0; i < handlers.length; i++) { - if (typeof handlers[i] === "function") { - handlers[i](newValue, oldValue); - } - } - }); - - var settings = { - set: function (key, value) { - if (config[key] === undefined) return; - var strKey = (PREFIX + key).toUpperCase(); - var newValue = value + ""; - data[strKey] = newValue; - localStorage.setItem(strKey, newValue); - var handlers = events[strKey]; - if (!handlers) return; - - for (var i = 0; i < handlers.length; i++) { - if (typeof handlers[i] === "function") { - handlers[i](newValue); - } - } - }, - - get: function (key, defaultValue) { - if (config[key] === undefined) return; - var strKey = (PREFIX + key).toUpperCase(); - data.hasOwnProperty(strKey) || (data[strKey] = localStorage.getItem(strKey)); - if (typeof defaultValue === "string" && data[strKey] === null) { - return defaultValue; - } - return data[strKey]; - }, - - refresh: function (key) { - if (config[key] === undefined) return; - settings.set(key, settings.get(key, config[key].default)); - }, - - onChange: function (key, handler) { - if (config[key] === undefined) return; - if (typeof handler !== "function") return; - var strKey = (PREFIX + key).toUpperCase(); - if (config[key].type === "radio") { - handler(settings.get(key, config[key].default)); - } - if (!events[strKey]) { - events[strKey] = [handler]; - } else { - events[strKey].push(handler); - } - } - }; - global.settings = settings; -})(window); diff --git a/assets/js/theme.js b/assets/js/theme.js deleted file mode 100644 index 9a202792..00000000 --- a/assets/js/theme.js +++ /dev/null @@ -1,70 +0,0 @@ ---- -layout: null ---- -window.addEventListener("DOMContentLoaded", function () { - var skinLink = document.getElementById("skin"); - var darkModeQuery = window.matchMedia("(prefers-color-scheme: dark)"); - function applyDarkSkin() { - skinLink.href = "{{ '/assets/css/skins/' | relative_url }}" + settings.get("appearance_skin_dark", "dark") + ".css"; - } - function applyLightSkin() { - skinLink.href = "{{ '/assets/css/skins/' | relative_url }}" + settings.get("appearance_skin_light", "default") + ".css"; - } - function autoSchemeHandler() { - if (darkModeQuery.matches) { - applyDarkSkin(); - } else { - applyLightSkin(); - } - } - var activeModeIndex = 0; - var modeKeys = ["light", "dark", "auto"]; - var modeLabels = ["亮色", "暗色", "自动"]; - - var menuList = document.querySelector(".masthead .visible-links"); - var modeSwitcher = null; - if (menuList) { - modeSwitcher = document.createElement("a"); - modeSwitcher.className = "masthead__menu-item"; - modeSwitcher.textContent = modeLabels[activeModeIndex]; - modeSwitcher.href = "javascript:;"; - modeSwitcher.onclick = function () { - var nextIndex = (activeModeIndex + 1) % modeKeys.length; - settings.set("appearance_color", modeKeys[nextIndex]); - } - menuList.appendChild(modeSwitcher); - } - function applyTheme(mode) { - var newIndex = modeKeys.indexOf(mode); - if (newIndex < 0) newIndex = 0; - - if (modeKeys[activeModeIndex] === "auto") { - darkModeQuery.removeEventListener("change", autoSchemeHandler); - } - - activeModeIndex = newIndex; - var resolvedMode = modeKeys[activeModeIndex]; - - if (modeSwitcher) { - modeSwitcher.textContent = modeLabels[activeModeIndex]; - } - - if (resolvedMode === "light") { - applyLightSkin(); - } - else if (resolvedMode === "dark") { - applyDarkSkin(); - } - else { - darkModeQuery.addEventListener("change", autoSchemeHandler); - autoSchemeHandler(); - } - } - settings.onChange("appearance_color", applyTheme); - settings.onChange("appearance_skin_dark", function () { - settings.refresh("appearance_color"); - }); - settings.onChange("appearance_skin_light", function () { - settings.refresh("appearance_color"); - }); -}); diff --git a/assets/lib/fontawesome/LICENSE.txt b/assets/lib/fontawesome/LICENSE.txt deleted file mode 100644 index 45063c11..00000000 --- a/assets/lib/fontawesome/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ -Fonticons, Inc. (https://fontawesome.com) - --------------------------------------------------------------------------------- - -Font Awesome Free License - -Font Awesome Free is free, open source, and GPL friendly. You can use it for -commercial projects, open source projects, or really almost whatever you want. -Full Font Awesome Free license: https://fontawesome.com/license/free. - --------------------------------------------------------------------------------- - -# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/) - -The Font Awesome Free download is licensed under a Creative Commons -Attribution 4.0 International License and applies to all icons packaged -as SVG and JS file types. - --------------------------------------------------------------------------------- - -# Fonts: SIL OFL 1.1 License - -In the Font Awesome Free download, the SIL OFL license applies to all icons -packaged as web and desktop font files. - -Copyright (c) 2025 Fonticons, Inc. (https://fontawesome.com) -with Reserved Font Name: "Font Awesome". - -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -http://scripts.sil.org/OFL - -SIL OPEN FONT LICENSE -Version 1.1 - 26 February 2007 - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting — in part or in whole — any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. - --------------------------------------------------------------------------------- - -# Code: MIT License (https://opensource.org/licenses/MIT) - -In the Font Awesome Free download, the MIT license applies to all non-font and -non-icon files. - -Copyright 2025 Fonticons, Inc. - -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. - --------------------------------------------------------------------------------- - -# Attribution - -Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font -Awesome Free files already contain embedded comments with sufficient -attribution, so you shouldn't need to do anything additional when using these -files normally. - -We've kept attribution comments terse, so we ask that you do not actively work -to remove them from files, especially code. They're a great way for folks to -learn about Font Awesome. - --------------------------------------------------------------------------------- - -# Brand Icons - -All brand icons are trademarks of their respective owners. The use of these -trademarks does not indicate endorsement of the trademark holder by Font -Awesome, nor vice versa. **Please do not use brand logos for any purpose except -to represent the company, product, or service to which they refer.** diff --git a/assets/lib/fontawesome/css/all.min.css b/assets/lib/fontawesome/css/all.min.css deleted file mode 100644 index b568f8d9..00000000 --- a/assets/lib/fontawesome/css/all.min.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2025 Fonticons, Inc. - */ -.fa,.fa-brands,.fa-classic,.fa-regular,.fa-solid,.fab,.far,.fas{--_fa-family:var(--fa-family,var(--fa-style-family,"Font Awesome 7 Free"));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:var(--fa-display,inline-block);font-family:var(--_fa-family);font-feature-settings:normal;font-style:normal;font-synthesis:none;font-variant:normal;font-weight:var(--fa-style,900);line-height:1;text-align:center;text-rendering:auto;width:var(--fa-width,1.25em)}:is(.fas,.far,.fab,.fa-solid,.fa-regular,.fa-brands,.fa-classic,.fa):before{content:var(--fa)/""}@supports not (content:""/""){:is(.fas,.far,.fab,.fa-solid,.fa-regular,.fa-brands,.fa-classic,.fa):before{content:var(--fa)}}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-width-auto{--fa-width:auto}.fa-fw,.fa-width-fixed{--fa-width:1.25em}.fa-ul{list-style-type:none;margin-inline-start:var(--fa-li-margin,2.5em);padding-inline-start:0}.fa-ul>li{position:relative}.fa-li{inset-inline-start:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.0625em) var(--fa-border-style,solid) var(--fa-border-color,#eee);box-sizing:var(--fa-border-box-sizing,content-box);padding:var(--fa-border-padding,.1875em .25em)}.fa-pull-left,.fa-pull-start{float:inline-start;margin-inline-end:var(--fa-pull-margin,.3em)}.fa-pull-end,.fa-pull-right{float:inline-end;margin-inline-start:var(--fa-pull-margin,.3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{animation-name:fa-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{animation-name:fa-beat-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-name:fa-shake;animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{animation-name:fa-spin;animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{animation:none!important;transition:none!important}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0deg)}}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{--fa-width:100%;inset:0;position:absolute;text-align:center;width:var(--fa-width);z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)} - -.fa-0{--fa:"\30 "}.fa-1{--fa:"\31 "}.fa-2{--fa:"\32 "}.fa-3{--fa:"\33 "}.fa-4{--fa:"\34 "}.fa-5{--fa:"\35 "}.fa-6{--fa:"\36 "}.fa-7{--fa:"\37 "}.fa-8{--fa:"\38 "}.fa-9{--fa:"\39 "}.fa-exclamation{--fa:"\!"}.fa-hashtag{--fa:"\#"}.fa-dollar,.fa-dollar-sign,.fa-usd{--fa:"\$"}.fa-percent,.fa-percentage{--fa:"\%"}.fa-asterisk{--fa:"\*"}.fa-add,.fa-plus{--fa:"\+"}.fa-less-than{--fa:"\<"}.fa-equals{--fa:"\="}.fa-greater-than{--fa:"\>"}.fa-question{--fa:"\?"}.fa-at{--fa:"\@"}.fa-a{--fa:"A"}.fa-b{--fa:"B"}.fa-c{--fa:"C"}.fa-d{--fa:"D"}.fa-e{--fa:"E"}.fa-f{--fa:"F"}.fa-g{--fa:"G"}.fa-h{--fa:"H"}.fa-i{--fa:"I"}.fa-j{--fa:"J"}.fa-k{--fa:"K"}.fa-l{--fa:"L"}.fa-m{--fa:"M"}.fa-n{--fa:"N"}.fa-o{--fa:"O"}.fa-p{--fa:"P"}.fa-q{--fa:"Q"}.fa-r{--fa:"R"}.fa-s{--fa:"S"}.fa-t{--fa:"T"}.fa-u{--fa:"U"}.fa-v{--fa:"V"}.fa-w{--fa:"W"}.fa-x{--fa:"X"}.fa-y{--fa:"Y"}.fa-z{--fa:"Z"}.fa-faucet{--fa:"\e005"}.fa-faucet-drip{--fa:"\e006"}.fa-house-chimney-window{--fa:"\e00d"}.fa-house-signal{--fa:"\e012"}.fa-temperature-arrow-down,.fa-temperature-down{--fa:"\e03f"}.fa-temperature-arrow-up,.fa-temperature-up{--fa:"\e040"}.fa-trailer{--fa:"\e041"}.fa-bacteria{--fa:"\e059"}.fa-bacterium{--fa:"\e05a"}.fa-box-tissue{--fa:"\e05b"}.fa-hand-holding-medical{--fa:"\e05c"}.fa-hand-sparkles{--fa:"\e05d"}.fa-hands-bubbles,.fa-hands-wash{--fa:"\e05e"}.fa-handshake-alt-slash,.fa-handshake-simple-slash,.fa-handshake-slash{--fa:"\e060"}.fa-head-side-cough{--fa:"\e061"}.fa-head-side-cough-slash{--fa:"\e062"}.fa-head-side-mask{--fa:"\e063"}.fa-head-side-virus{--fa:"\e064"}.fa-house-chimney-user{--fa:"\e065"}.fa-house-laptop,.fa-laptop-house{--fa:"\e066"}.fa-lungs-virus{--fa:"\e067"}.fa-people-arrows,.fa-people-arrows-left-right{--fa:"\e068"}.fa-plane-slash{--fa:"\e069"}.fa-pump-medical{--fa:"\e06a"}.fa-pump-soap{--fa:"\e06b"}.fa-shield-virus{--fa:"\e06c"}.fa-sink{--fa:"\e06d"}.fa-soap{--fa:"\e06e"}.fa-stopwatch-20{--fa:"\e06f"}.fa-shop-slash,.fa-store-alt-slash{--fa:"\e070"}.fa-store-slash{--fa:"\e071"}.fa-toilet-paper-slash{--fa:"\e072"}.fa-users-slash{--fa:"\e073"}.fa-virus{--fa:"\e074"}.fa-virus-slash{--fa:"\e075"}.fa-viruses{--fa:"\e076"}.fa-vest{--fa:"\e085"}.fa-vest-patches{--fa:"\e086"}.fa-arrow-trend-down{--fa:"\e097"}.fa-arrow-trend-up{--fa:"\e098"}.fa-arrow-up-from-bracket{--fa:"\e09a"}.fa-austral-sign{--fa:"\e0a9"}.fa-baht-sign{--fa:"\e0ac"}.fa-bitcoin-sign{--fa:"\e0b4"}.fa-bolt-lightning{--fa:"\e0b7"}.fa-book-bookmark{--fa:"\e0bb"}.fa-camera-rotate{--fa:"\e0d8"}.fa-cedi-sign{--fa:"\e0df"}.fa-chart-column{--fa:"\e0e3"}.fa-chart-gantt{--fa:"\e0e4"}.fa-clapperboard{--fa:"\e131"}.fa-clover{--fa:"\e139"}.fa-code-compare{--fa:"\e13a"}.fa-code-fork{--fa:"\e13b"}.fa-code-pull-request{--fa:"\e13c"}.fa-colon-sign{--fa:"\e140"}.fa-cruzeiro-sign{--fa:"\e152"}.fa-display{--fa:"\e163"}.fa-dong-sign{--fa:"\e169"}.fa-elevator{--fa:"\e16d"}.fa-filter-circle-xmark{--fa:"\e17b"}.fa-florin-sign{--fa:"\e184"}.fa-folder-closed{--fa:"\e185"}.fa-franc-sign{--fa:"\e18f"}.fa-guarani-sign{--fa:"\e19a"}.fa-gun{--fa:"\e19b"}.fa-hands-clapping{--fa:"\e1a8"}.fa-home-user,.fa-house-user{--fa:"\e1b0"}.fa-indian-rupee,.fa-indian-rupee-sign,.fa-inr{--fa:"\e1bc"}.fa-kip-sign{--fa:"\e1c4"}.fa-lari-sign{--fa:"\e1c8"}.fa-litecoin-sign{--fa:"\e1d3"}.fa-manat-sign{--fa:"\e1d5"}.fa-mask-face{--fa:"\e1d7"}.fa-mill-sign{--fa:"\e1ed"}.fa-money-bills{--fa:"\e1f3"}.fa-naira-sign{--fa:"\e1f6"}.fa-notdef{--fa:"\e1fe"}.fa-panorama{--fa:"\e209"}.fa-peseta-sign{--fa:"\e221"}.fa-peso-sign{--fa:"\e222"}.fa-plane-up{--fa:"\e22d"}.fa-rupiah-sign{--fa:"\e23d"}.fa-stairs{--fa:"\e289"}.fa-timeline{--fa:"\e29c"}.fa-truck-front{--fa:"\e2b7"}.fa-try,.fa-turkish-lira,.fa-turkish-lira-sign{--fa:"\e2bb"}.fa-vault{--fa:"\e2c5"}.fa-magic-wand-sparkles,.fa-wand-magic-sparkles{--fa:"\e2ca"}.fa-wheat-alt,.fa-wheat-awn{--fa:"\e2cd"}.fa-wheelchair-alt,.fa-wheelchair-move{--fa:"\e2ce"}.fa-bangladeshi-taka-sign{--fa:"\e2e6"}.fa-bowl-rice{--fa:"\e2eb"}.fa-person-pregnant{--fa:"\e31e"}.fa-home-lg,.fa-house-chimney{--fa:"\e3af"}.fa-house-crack{--fa:"\e3b1"}.fa-house-medical{--fa:"\e3b2"}.fa-cent-sign{--fa:"\e3f5"}.fa-plus-minus{--fa:"\e43c"}.fa-sailboat{--fa:"\e445"}.fa-section{--fa:"\e447"}.fa-shrimp{--fa:"\e448"}.fa-brazilian-real-sign{--fa:"\e46c"}.fa-chart-simple{--fa:"\e473"}.fa-diagram-next{--fa:"\e476"}.fa-diagram-predecessor{--fa:"\e477"}.fa-diagram-successor{--fa:"\e47a"}.fa-earth-oceania,.fa-globe-oceania{--fa:"\e47b"}.fa-bug-slash{--fa:"\e490"}.fa-file-circle-plus{--fa:"\e494"}.fa-shop-lock{--fa:"\e4a5"}.fa-virus-covid{--fa:"\e4a8"}.fa-virus-covid-slash{--fa:"\e4a9"}.fa-anchor-circle-check{--fa:"\e4aa"}.fa-anchor-circle-exclamation{--fa:"\e4ab"}.fa-anchor-circle-xmark{--fa:"\e4ac"}.fa-anchor-lock{--fa:"\e4ad"}.fa-arrow-down-up-across-line{--fa:"\e4af"}.fa-arrow-down-up-lock{--fa:"\e4b0"}.fa-arrow-right-to-city{--fa:"\e4b3"}.fa-arrow-up-from-ground-water{--fa:"\e4b5"}.fa-arrow-up-from-water-pump{--fa:"\e4b6"}.fa-arrow-up-right-dots{--fa:"\e4b7"}.fa-arrows-down-to-line{--fa:"\e4b8"}.fa-arrows-down-to-people{--fa:"\e4b9"}.fa-arrows-left-right-to-line{--fa:"\e4ba"}.fa-arrows-spin{--fa:"\e4bb"}.fa-arrows-split-up-and-left{--fa:"\e4bc"}.fa-arrows-to-circle{--fa:"\e4bd"}.fa-arrows-to-dot{--fa:"\e4be"}.fa-arrows-to-eye{--fa:"\e4bf"}.fa-arrows-turn-right{--fa:"\e4c0"}.fa-arrows-turn-to-dots{--fa:"\e4c1"}.fa-arrows-up-to-line{--fa:"\e4c2"}.fa-bore-hole{--fa:"\e4c3"}.fa-bottle-droplet{--fa:"\e4c4"}.fa-bottle-water{--fa:"\e4c5"}.fa-bowl-food{--fa:"\e4c6"}.fa-boxes-packing{--fa:"\e4c7"}.fa-bridge{--fa:"\e4c8"}.fa-bridge-circle-check{--fa:"\e4c9"}.fa-bridge-circle-exclamation{--fa:"\e4ca"}.fa-bridge-circle-xmark{--fa:"\e4cb"}.fa-bridge-lock{--fa:"\e4cc"}.fa-bridge-water{--fa:"\e4ce"}.fa-bucket{--fa:"\e4cf"}.fa-bugs{--fa:"\e4d0"}.fa-building-circle-arrow-right{--fa:"\e4d1"}.fa-building-circle-check{--fa:"\e4d2"}.fa-building-circle-exclamation{--fa:"\e4d3"}.fa-building-circle-xmark{--fa:"\e4d4"}.fa-building-flag{--fa:"\e4d5"}.fa-building-lock{--fa:"\e4d6"}.fa-building-ngo{--fa:"\e4d7"}.fa-building-shield{--fa:"\e4d8"}.fa-building-un{--fa:"\e4d9"}.fa-building-user{--fa:"\e4da"}.fa-building-wheat{--fa:"\e4db"}.fa-burst{--fa:"\e4dc"}.fa-car-on{--fa:"\e4dd"}.fa-car-tunnel{--fa:"\e4de"}.fa-child-combatant,.fa-child-rifle{--fa:"\e4e0"}.fa-children{--fa:"\e4e1"}.fa-circle-nodes{--fa:"\e4e2"}.fa-clipboard-question{--fa:"\e4e3"}.fa-cloud-showers-water{--fa:"\e4e4"}.fa-computer{--fa:"\e4e5"}.fa-cubes-stacked{--fa:"\e4e6"}.fa-envelope-circle-check{--fa:"\e4e8"}.fa-explosion{--fa:"\e4e9"}.fa-ferry{--fa:"\e4ea"}.fa-file-circle-exclamation{--fa:"\e4eb"}.fa-file-circle-minus{--fa:"\e4ed"}.fa-file-circle-question{--fa:"\e4ef"}.fa-file-shield{--fa:"\e4f0"}.fa-fire-burner{--fa:"\e4f1"}.fa-fish-fins{--fa:"\e4f2"}.fa-flask-vial{--fa:"\e4f3"}.fa-glass-water{--fa:"\e4f4"}.fa-glass-water-droplet{--fa:"\e4f5"}.fa-group-arrows-rotate{--fa:"\e4f6"}.fa-hand-holding-hand{--fa:"\e4f7"}.fa-handcuffs{--fa:"\e4f8"}.fa-hands-bound{--fa:"\e4f9"}.fa-hands-holding-child{--fa:"\e4fa"}.fa-hands-holding-circle{--fa:"\e4fb"}.fa-heart-circle-bolt{--fa:"\e4fc"}.fa-heart-circle-check{--fa:"\e4fd"}.fa-heart-circle-exclamation{--fa:"\e4fe"}.fa-heart-circle-minus{--fa:"\e4ff"}.fa-heart-circle-plus{--fa:"\e500"}.fa-heart-circle-xmark{--fa:"\e501"}.fa-helicopter-symbol{--fa:"\e502"}.fa-helmet-un{--fa:"\e503"}.fa-hill-avalanche{--fa:"\e507"}.fa-hill-rockslide{--fa:"\e508"}.fa-house-circle-check{--fa:"\e509"}.fa-house-circle-exclamation{--fa:"\e50a"}.fa-house-circle-xmark{--fa:"\e50b"}.fa-house-fire{--fa:"\e50c"}.fa-house-flag{--fa:"\e50d"}.fa-house-flood-water{--fa:"\e50e"}.fa-house-flood-water-circle-arrow-right{--fa:"\e50f"}.fa-house-lock{--fa:"\e510"}.fa-house-medical-circle-check{--fa:"\e511"}.fa-house-medical-circle-exclamation{--fa:"\e512"}.fa-house-medical-circle-xmark{--fa:"\e513"}.fa-house-medical-flag{--fa:"\e514"}.fa-house-tsunami{--fa:"\e515"}.fa-jar{--fa:"\e516"}.fa-jar-wheat{--fa:"\e517"}.fa-jet-fighter-up{--fa:"\e518"}.fa-jug-detergent{--fa:"\e519"}.fa-kitchen-set{--fa:"\e51a"}.fa-land-mine-on{--fa:"\e51b"}.fa-landmark-flag{--fa:"\e51c"}.fa-laptop-file{--fa:"\e51d"}.fa-lines-leaning{--fa:"\e51e"}.fa-location-pin-lock{--fa:"\e51f"}.fa-locust{--fa:"\e520"}.fa-magnifying-glass-arrow-right{--fa:"\e521"}.fa-magnifying-glass-chart{--fa:"\e522"}.fa-mars-and-venus-burst{--fa:"\e523"}.fa-mask-ventilator{--fa:"\e524"}.fa-mattress-pillow{--fa:"\e525"}.fa-mobile-retro{--fa:"\e527"}.fa-money-bill-transfer{--fa:"\e528"}.fa-money-bill-trend-up{--fa:"\e529"}.fa-money-bill-wheat{--fa:"\e52a"}.fa-mosquito{--fa:"\e52b"}.fa-mosquito-net{--fa:"\e52c"}.fa-mound{--fa:"\e52d"}.fa-mountain-city{--fa:"\e52e"}.fa-mountain-sun{--fa:"\e52f"}.fa-oil-well{--fa:"\e532"}.fa-people-group{--fa:"\e533"}.fa-people-line{--fa:"\e534"}.fa-people-pulling{--fa:"\e535"}.fa-people-robbery{--fa:"\e536"}.fa-people-roof{--fa:"\e537"}.fa-person-arrow-down-to-line{--fa:"\e538"}.fa-person-arrow-up-from-line{--fa:"\e539"}.fa-person-breastfeeding{--fa:"\e53a"}.fa-person-burst{--fa:"\e53b"}.fa-person-cane{--fa:"\e53c"}.fa-person-chalkboard{--fa:"\e53d"}.fa-person-circle-check{--fa:"\e53e"}.fa-person-circle-exclamation{--fa:"\e53f"}.fa-person-circle-minus{--fa:"\e540"}.fa-person-circle-plus{--fa:"\e541"}.fa-person-circle-question{--fa:"\e542"}.fa-person-circle-xmark{--fa:"\e543"}.fa-person-dress-burst{--fa:"\e544"}.fa-person-drowning{--fa:"\e545"}.fa-person-falling{--fa:"\e546"}.fa-person-falling-burst{--fa:"\e547"}.fa-person-half-dress{--fa:"\e548"}.fa-person-harassing{--fa:"\e549"}.fa-person-military-pointing{--fa:"\e54a"}.fa-person-military-rifle{--fa:"\e54b"}.fa-person-military-to-person{--fa:"\e54c"}.fa-person-rays{--fa:"\e54d"}.fa-person-rifle{--fa:"\e54e"}.fa-person-shelter{--fa:"\e54f"}.fa-person-walking-arrow-loop-left{--fa:"\e551"}.fa-person-walking-arrow-right{--fa:"\e552"}.fa-person-walking-dashed-line-arrow-right{--fa:"\e553"}.fa-person-walking-luggage{--fa:"\e554"}.fa-plane-circle-check{--fa:"\e555"}.fa-plane-circle-exclamation{--fa:"\e556"}.fa-plane-circle-xmark{--fa:"\e557"}.fa-plane-lock{--fa:"\e558"}.fa-plate-wheat{--fa:"\e55a"}.fa-plug-circle-bolt{--fa:"\e55b"}.fa-plug-circle-check{--fa:"\e55c"}.fa-plug-circle-exclamation{--fa:"\e55d"}.fa-plug-circle-minus{--fa:"\e55e"}.fa-plug-circle-plus{--fa:"\e55f"}.fa-plug-circle-xmark{--fa:"\e560"}.fa-ranking-star{--fa:"\e561"}.fa-road-barrier{--fa:"\e562"}.fa-road-bridge{--fa:"\e563"}.fa-road-circle-check{--fa:"\e564"}.fa-road-circle-exclamation{--fa:"\e565"}.fa-road-circle-xmark{--fa:"\e566"}.fa-road-lock{--fa:"\e567"}.fa-road-spikes{--fa:"\e568"}.fa-rug{--fa:"\e569"}.fa-sack-xmark{--fa:"\e56a"}.fa-school-circle-check{--fa:"\e56b"}.fa-school-circle-exclamation{--fa:"\e56c"}.fa-school-circle-xmark{--fa:"\e56d"}.fa-school-flag{--fa:"\e56e"}.fa-school-lock{--fa:"\e56f"}.fa-sheet-plastic{--fa:"\e571"}.fa-shield-cat{--fa:"\e572"}.fa-shield-dog{--fa:"\e573"}.fa-shield-heart{--fa:"\e574"}.fa-square-nfi{--fa:"\e576"}.fa-square-person-confined{--fa:"\e577"}.fa-square-virus{--fa:"\e578"}.fa-rod-asclepius,.fa-rod-snake,.fa-staff-aesculapius,.fa-staff-snake{--fa:"\e579"}.fa-sun-plant-wilt{--fa:"\e57a"}.fa-tarp{--fa:"\e57b"}.fa-tarp-droplet{--fa:"\e57c"}.fa-tent{--fa:"\e57d"}.fa-tent-arrow-down-to-line{--fa:"\e57e"}.fa-tent-arrow-left-right{--fa:"\e57f"}.fa-tent-arrow-turn-left{--fa:"\e580"}.fa-tent-arrows-down{--fa:"\e581"}.fa-tents{--fa:"\e582"}.fa-toilet-portable{--fa:"\e583"}.fa-toilets-portable{--fa:"\e584"}.fa-tower-cell{--fa:"\e585"}.fa-tower-observation{--fa:"\e586"}.fa-tree-city{--fa:"\e587"}.fa-trowel{--fa:"\e589"}.fa-trowel-bricks{--fa:"\e58a"}.fa-truck-arrow-right{--fa:"\e58b"}.fa-truck-droplet{--fa:"\e58c"}.fa-truck-field{--fa:"\e58d"}.fa-truck-field-un{--fa:"\e58e"}.fa-truck-plane{--fa:"\e58f"}.fa-users-between-lines{--fa:"\e591"}.fa-users-line{--fa:"\e592"}.fa-users-rays{--fa:"\e593"}.fa-users-rectangle{--fa:"\e594"}.fa-users-viewfinder{--fa:"\e595"}.fa-vial-circle-check{--fa:"\e596"}.fa-vial-virus{--fa:"\e597"}.fa-wheat-awn-circle-exclamation{--fa:"\e598"}.fa-worm{--fa:"\e599"}.fa-xmarks-lines{--fa:"\e59a"}.fa-child-dress{--fa:"\e59c"}.fa-child-reaching{--fa:"\e59d"}.fa-file-circle-check{--fa:"\e5a0"}.fa-file-circle-xmark{--fa:"\e5a1"}.fa-person-through-window{--fa:"\e5a9"}.fa-plant-wilt{--fa:"\e5aa"}.fa-stapler{--fa:"\e5af"}.fa-train-tram{--fa:"\e5b4"}.fa-table-cells-column-lock{--fa:"\e678"}.fa-table-cells-row-lock{--fa:"\e67a"}.fa-thumb-tack-slash,.fa-thumbtack-slash{--fa:"\e68f"}.fa-table-cells-row-unlock{--fa:"\e691"}.fa-chart-diagram{--fa:"\e695"}.fa-comment-nodes{--fa:"\e696"}.fa-file-fragment{--fa:"\e697"}.fa-file-half-dashed{--fa:"\e698"}.fa-hexagon-nodes{--fa:"\e699"}.fa-hexagon-nodes-bolt{--fa:"\e69a"}.fa-square-binary{--fa:"\e69b"}.fa-pentagon{--fa:"\e790"}.fa-non-binary{--fa:"\e807"}.fa-spiral{--fa:"\e80a"}.fa-mobile-vibrate{--fa:"\e816"}.fa-single-quote-left{--fa:"\e81b"}.fa-single-quote-right{--fa:"\e81c"}.fa-bus-side{--fa:"\e81d"}.fa-heptagon,.fa-septagon{--fa:"\e820"}.fa-glass-martini,.fa-martini-glass-empty{--fa:"\f000"}.fa-music{--fa:"\f001"}.fa-magnifying-glass,.fa-search{--fa:"\f002"}.fa-heart{--fa:"\f004"}.fa-star{--fa:"\f005"}.fa-user,.fa-user-alt,.fa-user-large{--fa:"\f007"}.fa-film,.fa-film-alt,.fa-film-simple{--fa:"\f008"}.fa-table-cells-large,.fa-th-large{--fa:"\f009"}.fa-table-cells,.fa-th{--fa:"\f00a"}.fa-table-list,.fa-th-list{--fa:"\f00b"}.fa-check{--fa:"\f00c"}.fa-close,.fa-multiply,.fa-remove,.fa-times,.fa-xmark{--fa:"\f00d"}.fa-magnifying-glass-plus,.fa-search-plus{--fa:"\f00e"}.fa-magnifying-glass-minus,.fa-search-minus{--fa:"\f010"}.fa-power-off{--fa:"\f011"}.fa-signal,.fa-signal-5,.fa-signal-perfect{--fa:"\f012"}.fa-cog,.fa-gear{--fa:"\f013"}.fa-home,.fa-home-alt,.fa-home-lg-alt,.fa-house{--fa:"\f015"}.fa-clock,.fa-clock-four{--fa:"\f017"}.fa-road{--fa:"\f018"}.fa-download{--fa:"\f019"}.fa-inbox{--fa:"\f01c"}.fa-arrow-right-rotate,.fa-arrow-rotate-forward,.fa-arrow-rotate-right,.fa-redo{--fa:"\f01e"}.fa-arrows-rotate,.fa-refresh,.fa-sync{--fa:"\f021"}.fa-list-alt,.fa-rectangle-list{--fa:"\f022"}.fa-lock{--fa:"\f023"}.fa-flag{--fa:"\f024"}.fa-headphones,.fa-headphones-alt,.fa-headphones-simple{--fa:"\f025"}.fa-volume-off{--fa:"\f026"}.fa-volume-down,.fa-volume-low{--fa:"\f027"}.fa-volume-high,.fa-volume-up{--fa:"\f028"}.fa-qrcode{--fa:"\f029"}.fa-barcode{--fa:"\f02a"}.fa-tag{--fa:"\f02b"}.fa-tags{--fa:"\f02c"}.fa-book{--fa:"\f02d"}.fa-bookmark{--fa:"\f02e"}.fa-print{--fa:"\f02f"}.fa-camera,.fa-camera-alt{--fa:"\f030"}.fa-font{--fa:"\f031"}.fa-bold{--fa:"\f032"}.fa-italic{--fa:"\f033"}.fa-text-height{--fa:"\f034"}.fa-text-width{--fa:"\f035"}.fa-align-left{--fa:"\f036"}.fa-align-center{--fa:"\f037"}.fa-align-right{--fa:"\f038"}.fa-align-justify{--fa:"\f039"}.fa-list,.fa-list-squares{--fa:"\f03a"}.fa-dedent,.fa-outdent{--fa:"\f03b"}.fa-indent{--fa:"\f03c"}.fa-video,.fa-video-camera{--fa:"\f03d"}.fa-image{--fa:"\f03e"}.fa-location-pin,.fa-map-marker{--fa:"\f041"}.fa-adjust,.fa-circle-half-stroke{--fa:"\f042"}.fa-droplet,.fa-tint{--fa:"\f043"}.fa-edit,.fa-pen-to-square{--fa:"\f044"}.fa-arrows,.fa-arrows-up-down-left-right{--fa:"\f047"}.fa-backward-step,.fa-step-backward{--fa:"\f048"}.fa-backward-fast,.fa-fast-backward{--fa:"\f049"}.fa-backward{--fa:"\f04a"}.fa-play{--fa:"\f04b"}.fa-pause{--fa:"\f04c"}.fa-stop{--fa:"\f04d"}.fa-forward{--fa:"\f04e"}.fa-fast-forward,.fa-forward-fast{--fa:"\f050"}.fa-forward-step,.fa-step-forward{--fa:"\f051"}.fa-eject{--fa:"\f052"}.fa-chevron-left{--fa:"\f053"}.fa-chevron-right{--fa:"\f054"}.fa-circle-plus,.fa-plus-circle{--fa:"\f055"}.fa-circle-minus,.fa-minus-circle{--fa:"\f056"}.fa-circle-xmark,.fa-times-circle,.fa-xmark-circle{--fa:"\f057"}.fa-check-circle,.fa-circle-check{--fa:"\f058"}.fa-circle-question,.fa-question-circle{--fa:"\f059"}.fa-circle-info,.fa-info-circle{--fa:"\f05a"}.fa-crosshairs{--fa:"\f05b"}.fa-ban,.fa-cancel{--fa:"\f05e"}.fa-arrow-left{--fa:"\f060"}.fa-arrow-right{--fa:"\f061"}.fa-arrow-up{--fa:"\f062"}.fa-arrow-down{--fa:"\f063"}.fa-mail-forward,.fa-share{--fa:"\f064"}.fa-expand{--fa:"\f065"}.fa-compress{--fa:"\f066"}.fa-minus,.fa-subtract{--fa:"\f068"}.fa-circle-exclamation,.fa-exclamation-circle{--fa:"\f06a"}.fa-gift{--fa:"\f06b"}.fa-leaf{--fa:"\f06c"}.fa-fire{--fa:"\f06d"}.fa-eye{--fa:"\f06e"}.fa-eye-slash{--fa:"\f070"}.fa-exclamation-triangle,.fa-triangle-exclamation,.fa-warning{--fa:"\f071"}.fa-plane{--fa:"\f072"}.fa-calendar-alt,.fa-calendar-days{--fa:"\f073"}.fa-random,.fa-shuffle{--fa:"\f074"}.fa-comment{--fa:"\f075"}.fa-magnet{--fa:"\f076"}.fa-chevron-up{--fa:"\f077"}.fa-chevron-down{--fa:"\f078"}.fa-retweet{--fa:"\f079"}.fa-cart-shopping,.fa-shopping-cart{--fa:"\f07a"}.fa-folder,.fa-folder-blank{--fa:"\f07b"}.fa-folder-open{--fa:"\f07c"}.fa-arrows-up-down,.fa-arrows-v{--fa:"\f07d"}.fa-arrows-h,.fa-arrows-left-right{--fa:"\f07e"}.fa-bar-chart,.fa-chart-bar{--fa:"\f080"}.fa-camera-retro{--fa:"\f083"}.fa-key{--fa:"\f084"}.fa-cogs,.fa-gears{--fa:"\f085"}.fa-comments{--fa:"\f086"}.fa-star-half{--fa:"\f089"}.fa-arrow-right-from-bracket,.fa-sign-out{--fa:"\f08b"}.fa-thumb-tack,.fa-thumbtack{--fa:"\f08d"}.fa-arrow-up-right-from-square,.fa-external-link{--fa:"\f08e"}.fa-arrow-right-to-bracket,.fa-sign-in{--fa:"\f090"}.fa-trophy{--fa:"\f091"}.fa-upload{--fa:"\f093"}.fa-lemon{--fa:"\f094"}.fa-phone{--fa:"\f095"}.fa-phone-square,.fa-square-phone{--fa:"\f098"}.fa-unlock{--fa:"\f09c"}.fa-credit-card,.fa-credit-card-alt{--fa:"\f09d"}.fa-feed,.fa-rss{--fa:"\f09e"}.fa-hard-drive,.fa-hdd{--fa:"\f0a0"}.fa-bullhorn{--fa:"\f0a1"}.fa-certificate{--fa:"\f0a3"}.fa-hand-point-right{--fa:"\f0a4"}.fa-hand-point-left{--fa:"\f0a5"}.fa-hand-point-up{--fa:"\f0a6"}.fa-hand-point-down{--fa:"\f0a7"}.fa-arrow-circle-left,.fa-circle-arrow-left{--fa:"\f0a8"}.fa-arrow-circle-right,.fa-circle-arrow-right{--fa:"\f0a9"}.fa-arrow-circle-up,.fa-circle-arrow-up{--fa:"\f0aa"}.fa-arrow-circle-down,.fa-circle-arrow-down{--fa:"\f0ab"}.fa-globe{--fa:"\f0ac"}.fa-wrench{--fa:"\f0ad"}.fa-list-check,.fa-tasks{--fa:"\f0ae"}.fa-filter{--fa:"\f0b0"}.fa-briefcase{--fa:"\f0b1"}.fa-arrows-alt,.fa-up-down-left-right{--fa:"\f0b2"}.fa-users{--fa:"\f0c0"}.fa-chain,.fa-link{--fa:"\f0c1"}.fa-cloud{--fa:"\f0c2"}.fa-flask{--fa:"\f0c3"}.fa-cut,.fa-scissors{--fa:"\f0c4"}.fa-copy{--fa:"\f0c5"}.fa-paperclip{--fa:"\f0c6"}.fa-floppy-disk,.fa-save{--fa:"\f0c7"}.fa-square{--fa:"\f0c8"}.fa-bars,.fa-navicon{--fa:"\f0c9"}.fa-list-dots,.fa-list-ul{--fa:"\f0ca"}.fa-list-1-2,.fa-list-numeric,.fa-list-ol{--fa:"\f0cb"}.fa-strikethrough{--fa:"\f0cc"}.fa-underline{--fa:"\f0cd"}.fa-table{--fa:"\f0ce"}.fa-magic,.fa-wand-magic{--fa:"\f0d0"}.fa-truck{--fa:"\f0d1"}.fa-money-bill{--fa:"\f0d6"}.fa-caret-down{--fa:"\f0d7"}.fa-caret-up{--fa:"\f0d8"}.fa-caret-left{--fa:"\f0d9"}.fa-caret-right{--fa:"\f0da"}.fa-columns,.fa-table-columns{--fa:"\f0db"}.fa-sort,.fa-unsorted{--fa:"\f0dc"}.fa-sort-desc,.fa-sort-down{--fa:"\f0dd"}.fa-sort-asc,.fa-sort-up{--fa:"\f0de"}.fa-envelope{--fa:"\f0e0"}.fa-arrow-left-rotate,.fa-arrow-rotate-back,.fa-arrow-rotate-backward,.fa-arrow-rotate-left,.fa-undo{--fa:"\f0e2"}.fa-gavel,.fa-legal{--fa:"\f0e3"}.fa-bolt,.fa-zap{--fa:"\f0e7"}.fa-sitemap{--fa:"\f0e8"}.fa-umbrella{--fa:"\f0e9"}.fa-file-clipboard,.fa-paste{--fa:"\f0ea"}.fa-lightbulb{--fa:"\f0eb"}.fa-arrow-right-arrow-left,.fa-exchange{--fa:"\f0ec"}.fa-cloud-arrow-down,.fa-cloud-download,.fa-cloud-download-alt{--fa:"\f0ed"}.fa-cloud-arrow-up,.fa-cloud-upload,.fa-cloud-upload-alt{--fa:"\f0ee"}.fa-user-doctor,.fa-user-md{--fa:"\f0f0"}.fa-stethoscope{--fa:"\f0f1"}.fa-suitcase{--fa:"\f0f2"}.fa-bell{--fa:"\f0f3"}.fa-coffee,.fa-mug-saucer{--fa:"\f0f4"}.fa-hospital,.fa-hospital-alt,.fa-hospital-wide{--fa:"\f0f8"}.fa-ambulance,.fa-truck-medical{--fa:"\f0f9"}.fa-medkit,.fa-suitcase-medical{--fa:"\f0fa"}.fa-fighter-jet,.fa-jet-fighter{--fa:"\f0fb"}.fa-beer,.fa-beer-mug-empty{--fa:"\f0fc"}.fa-h-square,.fa-square-h{--fa:"\f0fd"}.fa-plus-square,.fa-square-plus{--fa:"\f0fe"}.fa-angle-double-left,.fa-angles-left{--fa:"\f100"}.fa-angle-double-right,.fa-angles-right{--fa:"\f101"}.fa-angle-double-up,.fa-angles-up{--fa:"\f102"}.fa-angle-double-down,.fa-angles-down{--fa:"\f103"}.fa-angle-left{--fa:"\f104"}.fa-angle-right{--fa:"\f105"}.fa-angle-up{--fa:"\f106"}.fa-angle-down{--fa:"\f107"}.fa-laptop{--fa:"\f109"}.fa-tablet-button{--fa:"\f10a"}.fa-mobile-button{--fa:"\f10b"}.fa-quote-left,.fa-quote-left-alt{--fa:"\f10d"}.fa-quote-right,.fa-quote-right-alt{--fa:"\f10e"}.fa-spinner{--fa:"\f110"}.fa-circle{--fa:"\f111"}.fa-face-smile,.fa-smile{--fa:"\f118"}.fa-face-frown,.fa-frown{--fa:"\f119"}.fa-face-meh,.fa-meh{--fa:"\f11a"}.fa-gamepad{--fa:"\f11b"}.fa-keyboard{--fa:"\f11c"}.fa-flag-checkered{--fa:"\f11e"}.fa-terminal{--fa:"\f120"}.fa-code{--fa:"\f121"}.fa-mail-reply-all,.fa-reply-all{--fa:"\f122"}.fa-location-arrow{--fa:"\f124"}.fa-crop{--fa:"\f125"}.fa-code-branch{--fa:"\f126"}.fa-chain-broken,.fa-chain-slash,.fa-link-slash,.fa-unlink{--fa:"\f127"}.fa-info{--fa:"\f129"}.fa-superscript{--fa:"\f12b"}.fa-subscript{--fa:"\f12c"}.fa-eraser{--fa:"\f12d"}.fa-puzzle-piece{--fa:"\f12e"}.fa-microphone{--fa:"\f130"}.fa-microphone-slash{--fa:"\f131"}.fa-shield,.fa-shield-blank{--fa:"\f132"}.fa-calendar{--fa:"\f133"}.fa-fire-extinguisher{--fa:"\f134"}.fa-rocket{--fa:"\f135"}.fa-chevron-circle-left,.fa-circle-chevron-left{--fa:"\f137"}.fa-chevron-circle-right,.fa-circle-chevron-right{--fa:"\f138"}.fa-chevron-circle-up,.fa-circle-chevron-up{--fa:"\f139"}.fa-chevron-circle-down,.fa-circle-chevron-down{--fa:"\f13a"}.fa-anchor{--fa:"\f13d"}.fa-unlock-alt,.fa-unlock-keyhole{--fa:"\f13e"}.fa-bullseye{--fa:"\f140"}.fa-ellipsis,.fa-ellipsis-h{--fa:"\f141"}.fa-ellipsis-v,.fa-ellipsis-vertical{--fa:"\f142"}.fa-rss-square,.fa-square-rss{--fa:"\f143"}.fa-circle-play,.fa-play-circle{--fa:"\f144"}.fa-ticket{--fa:"\f145"}.fa-minus-square,.fa-square-minus{--fa:"\f146"}.fa-arrow-turn-up,.fa-level-up{--fa:"\f148"}.fa-arrow-turn-down,.fa-level-down{--fa:"\f149"}.fa-check-square,.fa-square-check{--fa:"\f14a"}.fa-pen-square,.fa-pencil-square,.fa-square-pen{--fa:"\f14b"}.fa-external-link-square,.fa-square-arrow-up-right{--fa:"\f14c"}.fa-share-from-square,.fa-share-square{--fa:"\f14d"}.fa-compass{--fa:"\f14e"}.fa-caret-square-down,.fa-square-caret-down{--fa:"\f150"}.fa-caret-square-up,.fa-square-caret-up{--fa:"\f151"}.fa-caret-square-right,.fa-square-caret-right{--fa:"\f152"}.fa-eur,.fa-euro,.fa-euro-sign{--fa:"\f153"}.fa-gbp,.fa-pound-sign,.fa-sterling-sign{--fa:"\f154"}.fa-rupee,.fa-rupee-sign{--fa:"\f156"}.fa-cny,.fa-jpy,.fa-rmb,.fa-yen,.fa-yen-sign{--fa:"\f157"}.fa-rouble,.fa-rub,.fa-ruble,.fa-ruble-sign{--fa:"\f158"}.fa-krw,.fa-won,.fa-won-sign{--fa:"\f159"}.fa-file{--fa:"\f15b"}.fa-file-alt,.fa-file-lines,.fa-file-text{--fa:"\f15c"}.fa-arrow-down-a-z,.fa-sort-alpha-asc,.fa-sort-alpha-down{--fa:"\f15d"}.fa-arrow-up-a-z,.fa-sort-alpha-up{--fa:"\f15e"}.fa-arrow-down-wide-short,.fa-sort-amount-asc,.fa-sort-amount-down{--fa:"\f160"}.fa-arrow-up-wide-short,.fa-sort-amount-up{--fa:"\f161"}.fa-arrow-down-1-9,.fa-sort-numeric-asc,.fa-sort-numeric-down{--fa:"\f162"}.fa-arrow-up-1-9,.fa-sort-numeric-up{--fa:"\f163"}.fa-thumbs-up{--fa:"\f164"}.fa-thumbs-down{--fa:"\f165"}.fa-arrow-down-long,.fa-long-arrow-down{--fa:"\f175"}.fa-arrow-up-long,.fa-long-arrow-up{--fa:"\f176"}.fa-arrow-left-long,.fa-long-arrow-left{--fa:"\f177"}.fa-arrow-right-long,.fa-long-arrow-right{--fa:"\f178"}.fa-female,.fa-person-dress{--fa:"\f182"}.fa-male,.fa-person{--fa:"\f183"}.fa-sun{--fa:"\f185"}.fa-moon{--fa:"\f186"}.fa-archive,.fa-box-archive{--fa:"\f187"}.fa-bug{--fa:"\f188"}.fa-caret-square-left,.fa-square-caret-left{--fa:"\f191"}.fa-circle-dot,.fa-dot-circle{--fa:"\f192"}.fa-wheelchair{--fa:"\f193"}.fa-lira-sign{--fa:"\f195"}.fa-shuttle-space,.fa-space-shuttle{--fa:"\f197"}.fa-envelope-square,.fa-square-envelope{--fa:"\f199"}.fa-bank,.fa-building-columns,.fa-institution,.fa-museum,.fa-university{--fa:"\f19c"}.fa-graduation-cap,.fa-mortar-board{--fa:"\f19d"}.fa-language{--fa:"\f1ab"}.fa-fax{--fa:"\f1ac"}.fa-building{--fa:"\f1ad"}.fa-child{--fa:"\f1ae"}.fa-paw{--fa:"\f1b0"}.fa-cube{--fa:"\f1b2"}.fa-cubes{--fa:"\f1b3"}.fa-recycle{--fa:"\f1b8"}.fa-automobile,.fa-car{--fa:"\f1b9"}.fa-cab,.fa-taxi{--fa:"\f1ba"}.fa-tree{--fa:"\f1bb"}.fa-database{--fa:"\f1c0"}.fa-file-pdf{--fa:"\f1c1"}.fa-file-word{--fa:"\f1c2"}.fa-file-excel{--fa:"\f1c3"}.fa-file-powerpoint{--fa:"\f1c4"}.fa-file-image{--fa:"\f1c5"}.fa-file-archive,.fa-file-zipper{--fa:"\f1c6"}.fa-file-audio{--fa:"\f1c7"}.fa-file-video{--fa:"\f1c8"}.fa-file-code{--fa:"\f1c9"}.fa-life-ring{--fa:"\f1cd"}.fa-circle-notch{--fa:"\f1ce"}.fa-paper-plane{--fa:"\f1d8"}.fa-clock-rotate-left,.fa-history{--fa:"\f1da"}.fa-header,.fa-heading{--fa:"\f1dc"}.fa-paragraph{--fa:"\f1dd"}.fa-sliders,.fa-sliders-h{--fa:"\f1de"}.fa-share-alt,.fa-share-nodes{--fa:"\f1e0"}.fa-share-alt-square,.fa-square-share-nodes{--fa:"\f1e1"}.fa-bomb{--fa:"\f1e2"}.fa-futbol,.fa-futbol-ball,.fa-soccer-ball{--fa:"\f1e3"}.fa-teletype,.fa-tty{--fa:"\f1e4"}.fa-binoculars{--fa:"\f1e5"}.fa-plug{--fa:"\f1e6"}.fa-newspaper{--fa:"\f1ea"}.fa-wifi,.fa-wifi-3,.fa-wifi-strong{--fa:"\f1eb"}.fa-calculator{--fa:"\f1ec"}.fa-bell-slash{--fa:"\f1f6"}.fa-trash{--fa:"\f1f8"}.fa-copyright{--fa:"\f1f9"}.fa-eye-dropper,.fa-eye-dropper-empty,.fa-eyedropper{--fa:"\f1fb"}.fa-paint-brush,.fa-paintbrush{--fa:"\f1fc"}.fa-birthday-cake,.fa-cake,.fa-cake-candles{--fa:"\f1fd"}.fa-area-chart,.fa-chart-area{--fa:"\f1fe"}.fa-chart-pie,.fa-pie-chart{--fa:"\f200"}.fa-chart-line,.fa-line-chart{--fa:"\f201"}.fa-toggle-off{--fa:"\f204"}.fa-toggle-on{--fa:"\f205"}.fa-bicycle{--fa:"\f206"}.fa-bus{--fa:"\f207"}.fa-closed-captioning{--fa:"\f20a"}.fa-ils,.fa-shekel,.fa-shekel-sign,.fa-sheqel,.fa-sheqel-sign{--fa:"\f20b"}.fa-cart-plus{--fa:"\f217"}.fa-cart-arrow-down{--fa:"\f218"}.fa-diamond{--fa:"\f219"}.fa-ship{--fa:"\f21a"}.fa-user-secret{--fa:"\f21b"}.fa-motorcycle{--fa:"\f21c"}.fa-street-view{--fa:"\f21d"}.fa-heart-pulse,.fa-heartbeat{--fa:"\f21e"}.fa-venus{--fa:"\f221"}.fa-mars{--fa:"\f222"}.fa-mercury{--fa:"\f223"}.fa-mars-and-venus{--fa:"\f224"}.fa-transgender,.fa-transgender-alt{--fa:"\f225"}.fa-venus-double{--fa:"\f226"}.fa-mars-double{--fa:"\f227"}.fa-venus-mars{--fa:"\f228"}.fa-mars-stroke{--fa:"\f229"}.fa-mars-stroke-up,.fa-mars-stroke-v{--fa:"\f22a"}.fa-mars-stroke-h,.fa-mars-stroke-right{--fa:"\f22b"}.fa-neuter{--fa:"\f22c"}.fa-genderless{--fa:"\f22d"}.fa-server{--fa:"\f233"}.fa-user-plus{--fa:"\f234"}.fa-user-times,.fa-user-xmark{--fa:"\f235"}.fa-bed{--fa:"\f236"}.fa-train{--fa:"\f238"}.fa-subway,.fa-train-subway{--fa:"\f239"}.fa-battery,.fa-battery-5,.fa-battery-full{--fa:"\f240"}.fa-battery-4,.fa-battery-three-quarters{--fa:"\f241"}.fa-battery-3,.fa-battery-half{--fa:"\f242"}.fa-battery-2,.fa-battery-quarter{--fa:"\f243"}.fa-battery-0,.fa-battery-empty{--fa:"\f244"}.fa-arrow-pointer,.fa-mouse-pointer{--fa:"\f245"}.fa-i-cursor{--fa:"\f246"}.fa-object-group{--fa:"\f247"}.fa-object-ungroup{--fa:"\f248"}.fa-note-sticky,.fa-sticky-note{--fa:"\f249"}.fa-clone{--fa:"\f24d"}.fa-balance-scale,.fa-scale-balanced{--fa:"\f24e"}.fa-hourglass-1,.fa-hourglass-start{--fa:"\f251"}.fa-hourglass-2,.fa-hourglass-half{--fa:"\f252"}.fa-hourglass-3,.fa-hourglass-end{--fa:"\f253"}.fa-hourglass,.fa-hourglass-empty{--fa:"\f254"}.fa-hand-back-fist,.fa-hand-rock{--fa:"\f255"}.fa-hand,.fa-hand-paper{--fa:"\f256"}.fa-hand-scissors{--fa:"\f257"}.fa-hand-lizard{--fa:"\f258"}.fa-hand-spock{--fa:"\f259"}.fa-hand-pointer{--fa:"\f25a"}.fa-hand-peace{--fa:"\f25b"}.fa-trademark{--fa:"\f25c"}.fa-registered{--fa:"\f25d"}.fa-television,.fa-tv,.fa-tv-alt{--fa:"\f26c"}.fa-calendar-plus{--fa:"\f271"}.fa-calendar-minus{--fa:"\f272"}.fa-calendar-times,.fa-calendar-xmark{--fa:"\f273"}.fa-calendar-check{--fa:"\f274"}.fa-industry{--fa:"\f275"}.fa-map-pin{--fa:"\f276"}.fa-map-signs,.fa-signs-post{--fa:"\f277"}.fa-map{--fa:"\f279"}.fa-comment-alt,.fa-message{--fa:"\f27a"}.fa-circle-pause,.fa-pause-circle{--fa:"\f28b"}.fa-circle-stop,.fa-stop-circle{--fa:"\f28d"}.fa-bag-shopping,.fa-shopping-bag{--fa:"\f290"}.fa-basket-shopping,.fa-shopping-basket{--fa:"\f291"}.fa-universal-access{--fa:"\f29a"}.fa-blind,.fa-person-walking-with-cane{--fa:"\f29d"}.fa-audio-description{--fa:"\f29e"}.fa-phone-volume,.fa-volume-control-phone{--fa:"\f2a0"}.fa-braille{--fa:"\f2a1"}.fa-assistive-listening-systems,.fa-ear-listen{--fa:"\f2a2"}.fa-american-sign-language-interpreting,.fa-asl-interpreting,.fa-hands-american-sign-language-interpreting,.fa-hands-asl-interpreting{--fa:"\f2a3"}.fa-deaf,.fa-deafness,.fa-ear-deaf,.fa-hard-of-hearing{--fa:"\f2a4"}.fa-hands,.fa-sign-language,.fa-signing{--fa:"\f2a7"}.fa-eye-low-vision,.fa-low-vision{--fa:"\f2a8"}.fa-handshake,.fa-handshake-alt,.fa-handshake-simple{--fa:"\f2b5"}.fa-envelope-open{--fa:"\f2b6"}.fa-address-book,.fa-contact-book{--fa:"\f2b9"}.fa-address-card,.fa-contact-card,.fa-vcard{--fa:"\f2bb"}.fa-circle-user,.fa-user-circle{--fa:"\f2bd"}.fa-id-badge{--fa:"\f2c1"}.fa-drivers-license,.fa-id-card{--fa:"\f2c2"}.fa-temperature-4,.fa-temperature-full,.fa-thermometer-4,.fa-thermometer-full{--fa:"\f2c7"}.fa-temperature-3,.fa-temperature-three-quarters,.fa-thermometer-3,.fa-thermometer-three-quarters{--fa:"\f2c8"}.fa-temperature-2,.fa-temperature-half,.fa-thermometer-2,.fa-thermometer-half{--fa:"\f2c9"}.fa-temperature-1,.fa-temperature-quarter,.fa-thermometer-1,.fa-thermometer-quarter{--fa:"\f2ca"}.fa-temperature-0,.fa-temperature-empty,.fa-thermometer-0,.fa-thermometer-empty{--fa:"\f2cb"}.fa-shower{--fa:"\f2cc"}.fa-bath,.fa-bathtub{--fa:"\f2cd"}.fa-podcast{--fa:"\f2ce"}.fa-window-maximize{--fa:"\f2d0"}.fa-window-minimize{--fa:"\f2d1"}.fa-window-restore{--fa:"\f2d2"}.fa-square-xmark,.fa-times-square,.fa-xmark-square{--fa:"\f2d3"}.fa-microchip{--fa:"\f2db"}.fa-snowflake{--fa:"\f2dc"}.fa-spoon,.fa-utensil-spoon{--fa:"\f2e5"}.fa-cutlery,.fa-utensils{--fa:"\f2e7"}.fa-rotate-back,.fa-rotate-backward,.fa-rotate-left,.fa-undo-alt{--fa:"\f2ea"}.fa-trash-alt,.fa-trash-can{--fa:"\f2ed"}.fa-rotate,.fa-sync-alt{--fa:"\f2f1"}.fa-stopwatch{--fa:"\f2f2"}.fa-right-from-bracket,.fa-sign-out-alt{--fa:"\f2f5"}.fa-right-to-bracket,.fa-sign-in-alt{--fa:"\f2f6"}.fa-redo-alt,.fa-rotate-forward,.fa-rotate-right{--fa:"\f2f9"}.fa-poo{--fa:"\f2fe"}.fa-images{--fa:"\f302"}.fa-pencil,.fa-pencil-alt{--fa:"\f303"}.fa-pen{--fa:"\f304"}.fa-pen-alt,.fa-pen-clip{--fa:"\f305"}.fa-octagon{--fa:"\f306"}.fa-down-long,.fa-long-arrow-alt-down{--fa:"\f309"}.fa-left-long,.fa-long-arrow-alt-left{--fa:"\f30a"}.fa-long-arrow-alt-right,.fa-right-long{--fa:"\f30b"}.fa-long-arrow-alt-up,.fa-up-long{--fa:"\f30c"}.fa-hexagon{--fa:"\f312"}.fa-file-edit,.fa-file-pen{--fa:"\f31c"}.fa-expand-arrows-alt,.fa-maximize{--fa:"\f31e"}.fa-clipboard{--fa:"\f328"}.fa-arrows-alt-h,.fa-left-right{--fa:"\f337"}.fa-arrows-alt-v,.fa-up-down{--fa:"\f338"}.fa-alarm-clock{--fa:"\f34e"}.fa-arrow-alt-circle-down,.fa-circle-down{--fa:"\f358"}.fa-arrow-alt-circle-left,.fa-circle-left{--fa:"\f359"}.fa-arrow-alt-circle-right,.fa-circle-right{--fa:"\f35a"}.fa-arrow-alt-circle-up,.fa-circle-up{--fa:"\f35b"}.fa-external-link-alt,.fa-up-right-from-square{--fa:"\f35d"}.fa-external-link-square-alt,.fa-square-up-right{--fa:"\f360"}.fa-exchange-alt,.fa-right-left{--fa:"\f362"}.fa-repeat{--fa:"\f363"}.fa-code-commit{--fa:"\f386"}.fa-code-merge{--fa:"\f387"}.fa-desktop,.fa-desktop-alt{--fa:"\f390"}.fa-gem{--fa:"\f3a5"}.fa-level-down-alt,.fa-turn-down{--fa:"\f3be"}.fa-level-up-alt,.fa-turn-up{--fa:"\f3bf"}.fa-lock-open{--fa:"\f3c1"}.fa-location-dot,.fa-map-marker-alt{--fa:"\f3c5"}.fa-microphone-alt,.fa-microphone-lines{--fa:"\f3c9"}.fa-mobile-alt,.fa-mobile-screen-button{--fa:"\f3cd"}.fa-mobile,.fa-mobile-android,.fa-mobile-phone{--fa:"\f3ce"}.fa-mobile-android-alt,.fa-mobile-screen{--fa:"\f3cf"}.fa-money-bill-1,.fa-money-bill-alt{--fa:"\f3d1"}.fa-phone-slash{--fa:"\f3dd"}.fa-image-portrait,.fa-portrait{--fa:"\f3e0"}.fa-mail-reply,.fa-reply{--fa:"\f3e5"}.fa-shield-alt,.fa-shield-halved{--fa:"\f3ed"}.fa-tablet-alt,.fa-tablet-screen-button{--fa:"\f3fa"}.fa-tablet,.fa-tablet-android{--fa:"\f3fb"}.fa-ticket-alt,.fa-ticket-simple{--fa:"\f3ff"}.fa-rectangle-times,.fa-rectangle-xmark,.fa-times-rectangle,.fa-window-close{--fa:"\f410"}.fa-compress-alt,.fa-down-left-and-up-right-to-center{--fa:"\f422"}.fa-expand-alt,.fa-up-right-and-down-left-from-center{--fa:"\f424"}.fa-baseball-bat-ball{--fa:"\f432"}.fa-baseball,.fa-baseball-ball{--fa:"\f433"}.fa-basketball,.fa-basketball-ball{--fa:"\f434"}.fa-bowling-ball{--fa:"\f436"}.fa-chess{--fa:"\f439"}.fa-chess-bishop{--fa:"\f43a"}.fa-chess-board{--fa:"\f43c"}.fa-chess-king{--fa:"\f43f"}.fa-chess-knight{--fa:"\f441"}.fa-chess-pawn{--fa:"\f443"}.fa-chess-queen{--fa:"\f445"}.fa-chess-rook{--fa:"\f447"}.fa-dumbbell{--fa:"\f44b"}.fa-football,.fa-football-ball{--fa:"\f44e"}.fa-golf-ball,.fa-golf-ball-tee{--fa:"\f450"}.fa-hockey-puck{--fa:"\f453"}.fa-broom-ball,.fa-quidditch,.fa-quidditch-broom-ball{--fa:"\f458"}.fa-square-full{--fa:"\f45c"}.fa-ping-pong-paddle-ball,.fa-table-tennis,.fa-table-tennis-paddle-ball{--fa:"\f45d"}.fa-volleyball,.fa-volleyball-ball{--fa:"\f45f"}.fa-allergies,.fa-hand-dots{--fa:"\f461"}.fa-band-aid,.fa-bandage{--fa:"\f462"}.fa-box{--fa:"\f466"}.fa-boxes,.fa-boxes-alt,.fa-boxes-stacked{--fa:"\f468"}.fa-briefcase-medical{--fa:"\f469"}.fa-burn,.fa-fire-flame-simple{--fa:"\f46a"}.fa-capsules{--fa:"\f46b"}.fa-clipboard-check{--fa:"\f46c"}.fa-clipboard-list{--fa:"\f46d"}.fa-diagnoses,.fa-person-dots-from-line{--fa:"\f470"}.fa-dna{--fa:"\f471"}.fa-dolly,.fa-dolly-box{--fa:"\f472"}.fa-cart-flatbed,.fa-dolly-flatbed{--fa:"\f474"}.fa-file-medical{--fa:"\f477"}.fa-file-medical-alt,.fa-file-waveform{--fa:"\f478"}.fa-first-aid,.fa-kit-medical{--fa:"\f479"}.fa-circle-h,.fa-hospital-symbol{--fa:"\f47e"}.fa-id-card-alt,.fa-id-card-clip{--fa:"\f47f"}.fa-notes-medical{--fa:"\f481"}.fa-pallet{--fa:"\f482"}.fa-pills{--fa:"\f484"}.fa-prescription-bottle{--fa:"\f485"}.fa-prescription-bottle-alt,.fa-prescription-bottle-medical{--fa:"\f486"}.fa-bed-pulse,.fa-procedures{--fa:"\f487"}.fa-shipping-fast,.fa-truck-fast{--fa:"\f48b"}.fa-smoking{--fa:"\f48d"}.fa-syringe{--fa:"\f48e"}.fa-tablets{--fa:"\f490"}.fa-thermometer{--fa:"\f491"}.fa-vial{--fa:"\f492"}.fa-vials{--fa:"\f493"}.fa-warehouse{--fa:"\f494"}.fa-weight,.fa-weight-scale{--fa:"\f496"}.fa-x-ray{--fa:"\f497"}.fa-box-open{--fa:"\f49e"}.fa-comment-dots,.fa-commenting{--fa:"\f4ad"}.fa-comment-slash{--fa:"\f4b3"}.fa-couch{--fa:"\f4b8"}.fa-circle-dollar-to-slot,.fa-donate{--fa:"\f4b9"}.fa-dove{--fa:"\f4ba"}.fa-hand-holding{--fa:"\f4bd"}.fa-hand-holding-heart{--fa:"\f4be"}.fa-hand-holding-dollar,.fa-hand-holding-usd{--fa:"\f4c0"}.fa-hand-holding-droplet,.fa-hand-holding-water{--fa:"\f4c1"}.fa-hands-holding{--fa:"\f4c2"}.fa-hands-helping,.fa-handshake-angle{--fa:"\f4c4"}.fa-parachute-box{--fa:"\f4cd"}.fa-people-carry,.fa-people-carry-box{--fa:"\f4ce"}.fa-piggy-bank{--fa:"\f4d3"}.fa-ribbon{--fa:"\f4d6"}.fa-route{--fa:"\f4d7"}.fa-seedling,.fa-sprout{--fa:"\f4d8"}.fa-sign,.fa-sign-hanging{--fa:"\f4d9"}.fa-face-smile-wink,.fa-smile-wink{--fa:"\f4da"}.fa-tape{--fa:"\f4db"}.fa-truck-loading,.fa-truck-ramp-box{--fa:"\f4de"}.fa-truck-moving{--fa:"\f4df"}.fa-video-slash{--fa:"\f4e2"}.fa-wine-glass{--fa:"\f4e3"}.fa-user-astronaut{--fa:"\f4fb"}.fa-user-check{--fa:"\f4fc"}.fa-user-clock{--fa:"\f4fd"}.fa-user-cog,.fa-user-gear{--fa:"\f4fe"}.fa-user-edit,.fa-user-pen{--fa:"\f4ff"}.fa-user-friends,.fa-user-group{--fa:"\f500"}.fa-user-graduate{--fa:"\f501"}.fa-user-lock{--fa:"\f502"}.fa-user-minus{--fa:"\f503"}.fa-user-ninja{--fa:"\f504"}.fa-user-shield{--fa:"\f505"}.fa-user-alt-slash,.fa-user-large-slash,.fa-user-slash{--fa:"\f506"}.fa-user-tag{--fa:"\f507"}.fa-user-tie{--fa:"\f508"}.fa-users-cog,.fa-users-gear{--fa:"\f509"}.fa-balance-scale-left,.fa-scale-unbalanced{--fa:"\f515"}.fa-balance-scale-right,.fa-scale-unbalanced-flip{--fa:"\f516"}.fa-blender{--fa:"\f517"}.fa-book-open{--fa:"\f518"}.fa-broadcast-tower,.fa-tower-broadcast{--fa:"\f519"}.fa-broom{--fa:"\f51a"}.fa-blackboard,.fa-chalkboard{--fa:"\f51b"}.fa-chalkboard-teacher,.fa-chalkboard-user{--fa:"\f51c"}.fa-church{--fa:"\f51d"}.fa-coins{--fa:"\f51e"}.fa-compact-disc{--fa:"\f51f"}.fa-crow{--fa:"\f520"}.fa-crown{--fa:"\f521"}.fa-dice{--fa:"\f522"}.fa-dice-five{--fa:"\f523"}.fa-dice-four{--fa:"\f524"}.fa-dice-one{--fa:"\f525"}.fa-dice-six{--fa:"\f526"}.fa-dice-three{--fa:"\f527"}.fa-dice-two{--fa:"\f528"}.fa-divide{--fa:"\f529"}.fa-door-closed{--fa:"\f52a"}.fa-door-open{--fa:"\f52b"}.fa-feather{--fa:"\f52d"}.fa-frog{--fa:"\f52e"}.fa-gas-pump{--fa:"\f52f"}.fa-glasses{--fa:"\f530"}.fa-greater-than-equal{--fa:"\f532"}.fa-helicopter{--fa:"\f533"}.fa-infinity{--fa:"\f534"}.fa-kiwi-bird{--fa:"\f535"}.fa-less-than-equal{--fa:"\f537"}.fa-memory{--fa:"\f538"}.fa-microphone-alt-slash,.fa-microphone-lines-slash{--fa:"\f539"}.fa-money-bill-wave{--fa:"\f53a"}.fa-money-bill-1-wave,.fa-money-bill-wave-alt{--fa:"\f53b"}.fa-money-check{--fa:"\f53c"}.fa-money-check-alt,.fa-money-check-dollar{--fa:"\f53d"}.fa-not-equal{--fa:"\f53e"}.fa-palette{--fa:"\f53f"}.fa-parking,.fa-square-parking{--fa:"\f540"}.fa-diagram-project,.fa-project-diagram{--fa:"\f542"}.fa-receipt{--fa:"\f543"}.fa-robot{--fa:"\f544"}.fa-ruler{--fa:"\f545"}.fa-ruler-combined{--fa:"\f546"}.fa-ruler-horizontal{--fa:"\f547"}.fa-ruler-vertical{--fa:"\f548"}.fa-school{--fa:"\f549"}.fa-screwdriver{--fa:"\f54a"}.fa-shoe-prints{--fa:"\f54b"}.fa-skull{--fa:"\f54c"}.fa-ban-smoking,.fa-smoking-ban{--fa:"\f54d"}.fa-store{--fa:"\f54e"}.fa-shop,.fa-store-alt{--fa:"\f54f"}.fa-bars-staggered,.fa-reorder,.fa-stream{--fa:"\f550"}.fa-stroopwafel{--fa:"\f551"}.fa-toolbox{--fa:"\f552"}.fa-shirt,.fa-t-shirt,.fa-tshirt{--fa:"\f553"}.fa-person-walking,.fa-walking{--fa:"\f554"}.fa-wallet{--fa:"\f555"}.fa-angry,.fa-face-angry{--fa:"\f556"}.fa-archway{--fa:"\f557"}.fa-atlas,.fa-book-atlas{--fa:"\f558"}.fa-award{--fa:"\f559"}.fa-backspace,.fa-delete-left{--fa:"\f55a"}.fa-bezier-curve{--fa:"\f55b"}.fa-bong{--fa:"\f55c"}.fa-brush{--fa:"\f55d"}.fa-bus-alt,.fa-bus-simple{--fa:"\f55e"}.fa-cannabis{--fa:"\f55f"}.fa-check-double{--fa:"\f560"}.fa-cocktail,.fa-martini-glass-citrus{--fa:"\f561"}.fa-bell-concierge,.fa-concierge-bell{--fa:"\f562"}.fa-cookie{--fa:"\f563"}.fa-cookie-bite{--fa:"\f564"}.fa-crop-alt,.fa-crop-simple{--fa:"\f565"}.fa-digital-tachograph,.fa-tachograph-digital{--fa:"\f566"}.fa-dizzy,.fa-face-dizzy{--fa:"\f567"}.fa-compass-drafting,.fa-drafting-compass{--fa:"\f568"}.fa-drum{--fa:"\f569"}.fa-drum-steelpan{--fa:"\f56a"}.fa-feather-alt,.fa-feather-pointed{--fa:"\f56b"}.fa-file-contract{--fa:"\f56c"}.fa-file-arrow-down,.fa-file-download{--fa:"\f56d"}.fa-arrow-right-from-file,.fa-file-export{--fa:"\f56e"}.fa-arrow-right-to-file,.fa-file-import{--fa:"\f56f"}.fa-file-invoice{--fa:"\f570"}.fa-file-invoice-dollar{--fa:"\f571"}.fa-file-prescription{--fa:"\f572"}.fa-file-signature{--fa:"\f573"}.fa-file-arrow-up,.fa-file-upload{--fa:"\f574"}.fa-fill{--fa:"\f575"}.fa-fill-drip{--fa:"\f576"}.fa-fingerprint{--fa:"\f577"}.fa-fish{--fa:"\f578"}.fa-face-flushed,.fa-flushed{--fa:"\f579"}.fa-face-frown-open,.fa-frown-open{--fa:"\f57a"}.fa-glass-martini-alt,.fa-martini-glass{--fa:"\f57b"}.fa-earth-africa,.fa-globe-africa{--fa:"\f57c"}.fa-earth,.fa-earth-america,.fa-earth-americas,.fa-globe-americas{--fa:"\f57d"}.fa-earth-asia,.fa-globe-asia{--fa:"\f57e"}.fa-face-grimace,.fa-grimace{--fa:"\f57f"}.fa-face-grin,.fa-grin{--fa:"\f580"}.fa-face-grin-wide,.fa-grin-alt{--fa:"\f581"}.fa-face-grin-beam,.fa-grin-beam{--fa:"\f582"}.fa-face-grin-beam-sweat,.fa-grin-beam-sweat{--fa:"\f583"}.fa-face-grin-hearts,.fa-grin-hearts{--fa:"\f584"}.fa-face-grin-squint,.fa-grin-squint{--fa:"\f585"}.fa-face-grin-squint-tears,.fa-grin-squint-tears{--fa:"\f586"}.fa-face-grin-stars,.fa-grin-stars{--fa:"\f587"}.fa-face-grin-tears,.fa-grin-tears{--fa:"\f588"}.fa-face-grin-tongue,.fa-grin-tongue{--fa:"\f589"}.fa-face-grin-tongue-squint,.fa-grin-tongue-squint{--fa:"\f58a"}.fa-face-grin-tongue-wink,.fa-grin-tongue-wink{--fa:"\f58b"}.fa-face-grin-wink,.fa-grin-wink{--fa:"\f58c"}.fa-grid-horizontal,.fa-grip,.fa-grip-horizontal{--fa:"\f58d"}.fa-grid-vertical,.fa-grip-vertical{--fa:"\f58e"}.fa-headset{--fa:"\f590"}.fa-highlighter{--fa:"\f591"}.fa-hot-tub,.fa-hot-tub-person{--fa:"\f593"}.fa-hotel{--fa:"\f594"}.fa-joint{--fa:"\f595"}.fa-face-kiss,.fa-kiss{--fa:"\f596"}.fa-face-kiss-beam,.fa-kiss-beam{--fa:"\f597"}.fa-face-kiss-wink-heart,.fa-kiss-wink-heart{--fa:"\f598"}.fa-face-laugh,.fa-laugh{--fa:"\f599"}.fa-face-laugh-beam,.fa-laugh-beam{--fa:"\f59a"}.fa-face-laugh-squint,.fa-laugh-squint{--fa:"\f59b"}.fa-face-laugh-wink,.fa-laugh-wink{--fa:"\f59c"}.fa-cart-flatbed-suitcase,.fa-luggage-cart{--fa:"\f59d"}.fa-map-location,.fa-map-marked{--fa:"\f59f"}.fa-map-location-dot,.fa-map-marked-alt{--fa:"\f5a0"}.fa-marker{--fa:"\f5a1"}.fa-medal{--fa:"\f5a2"}.fa-face-meh-blank,.fa-meh-blank{--fa:"\f5a4"}.fa-face-rolling-eyes,.fa-meh-rolling-eyes{--fa:"\f5a5"}.fa-monument{--fa:"\f5a6"}.fa-mortar-pestle{--fa:"\f5a7"}.fa-paint-roller{--fa:"\f5aa"}.fa-passport{--fa:"\f5ab"}.fa-pen-fancy{--fa:"\f5ac"}.fa-pen-nib{--fa:"\f5ad"}.fa-pen-ruler,.fa-pencil-ruler{--fa:"\f5ae"}.fa-plane-arrival{--fa:"\f5af"}.fa-plane-departure{--fa:"\f5b0"}.fa-prescription{--fa:"\f5b1"}.fa-face-sad-cry,.fa-sad-cry{--fa:"\f5b3"}.fa-face-sad-tear,.fa-sad-tear{--fa:"\f5b4"}.fa-shuttle-van,.fa-van-shuttle{--fa:"\f5b6"}.fa-signature{--fa:"\f5b7"}.fa-face-smile-beam,.fa-smile-beam{--fa:"\f5b8"}.fa-solar-panel{--fa:"\f5ba"}.fa-spa{--fa:"\f5bb"}.fa-splotch{--fa:"\f5bc"}.fa-spray-can{--fa:"\f5bd"}.fa-stamp{--fa:"\f5bf"}.fa-star-half-alt,.fa-star-half-stroke{--fa:"\f5c0"}.fa-suitcase-rolling{--fa:"\f5c1"}.fa-face-surprise,.fa-surprise{--fa:"\f5c2"}.fa-swatchbook{--fa:"\f5c3"}.fa-person-swimming,.fa-swimmer{--fa:"\f5c4"}.fa-ladder-water,.fa-swimming-pool,.fa-water-ladder{--fa:"\f5c5"}.fa-droplet-slash,.fa-tint-slash{--fa:"\f5c7"}.fa-face-tired,.fa-tired{--fa:"\f5c8"}.fa-tooth{--fa:"\f5c9"}.fa-umbrella-beach{--fa:"\f5ca"}.fa-weight-hanging{--fa:"\f5cd"}.fa-wine-glass-alt,.fa-wine-glass-empty{--fa:"\f5ce"}.fa-air-freshener,.fa-spray-can-sparkles{--fa:"\f5d0"}.fa-apple-alt,.fa-apple-whole{--fa:"\f5d1"}.fa-atom{--fa:"\f5d2"}.fa-bone{--fa:"\f5d7"}.fa-book-open-reader,.fa-book-reader{--fa:"\f5da"}.fa-brain{--fa:"\f5dc"}.fa-car-alt,.fa-car-rear{--fa:"\f5de"}.fa-battery-car,.fa-car-battery{--fa:"\f5df"}.fa-car-burst,.fa-car-crash{--fa:"\f5e1"}.fa-car-side{--fa:"\f5e4"}.fa-charging-station{--fa:"\f5e7"}.fa-diamond-turn-right,.fa-directions{--fa:"\f5eb"}.fa-draw-polygon,.fa-vector-polygon{--fa:"\f5ee"}.fa-laptop-code{--fa:"\f5fc"}.fa-layer-group{--fa:"\f5fd"}.fa-location,.fa-location-crosshairs{--fa:"\f601"}.fa-lungs{--fa:"\f604"}.fa-microscope{--fa:"\f610"}.fa-oil-can{--fa:"\f613"}.fa-poop{--fa:"\f619"}.fa-shapes,.fa-triangle-circle-square{--fa:"\f61f"}.fa-star-of-life{--fa:"\f621"}.fa-dashboard,.fa-gauge,.fa-gauge-med,.fa-tachometer-alt-average{--fa:"\f624"}.fa-gauge-high,.fa-tachometer-alt,.fa-tachometer-alt-fast{--fa:"\f625"}.fa-gauge-simple,.fa-gauge-simple-med,.fa-tachometer-average{--fa:"\f629"}.fa-gauge-simple-high,.fa-tachometer,.fa-tachometer-fast{--fa:"\f62a"}.fa-teeth{--fa:"\f62e"}.fa-teeth-open{--fa:"\f62f"}.fa-masks-theater,.fa-theater-masks{--fa:"\f630"}.fa-traffic-light{--fa:"\f637"}.fa-truck-monster{--fa:"\f63b"}.fa-truck-pickup{--fa:"\f63c"}.fa-ad,.fa-rectangle-ad{--fa:"\f641"}.fa-ankh{--fa:"\f644"}.fa-bible,.fa-book-bible{--fa:"\f647"}.fa-briefcase-clock,.fa-business-time{--fa:"\f64a"}.fa-city{--fa:"\f64f"}.fa-comment-dollar{--fa:"\f651"}.fa-comments-dollar{--fa:"\f653"}.fa-cross{--fa:"\f654"}.fa-dharmachakra{--fa:"\f655"}.fa-envelope-open-text{--fa:"\f658"}.fa-folder-minus{--fa:"\f65d"}.fa-folder-plus{--fa:"\f65e"}.fa-filter-circle-dollar,.fa-funnel-dollar{--fa:"\f662"}.fa-gopuram{--fa:"\f664"}.fa-hamsa{--fa:"\f665"}.fa-bahai,.fa-haykal{--fa:"\f666"}.fa-jedi{--fa:"\f669"}.fa-book-journal-whills,.fa-journal-whills{--fa:"\f66a"}.fa-kaaba{--fa:"\f66b"}.fa-khanda{--fa:"\f66d"}.fa-landmark{--fa:"\f66f"}.fa-envelopes-bulk,.fa-mail-bulk{--fa:"\f674"}.fa-menorah{--fa:"\f676"}.fa-mosque{--fa:"\f678"}.fa-om{--fa:"\f679"}.fa-pastafarianism,.fa-spaghetti-monster-flying{--fa:"\f67b"}.fa-peace{--fa:"\f67c"}.fa-place-of-worship{--fa:"\f67f"}.fa-poll,.fa-square-poll-vertical{--fa:"\f681"}.fa-poll-h,.fa-square-poll-horizontal{--fa:"\f682"}.fa-person-praying,.fa-pray{--fa:"\f683"}.fa-hands-praying,.fa-praying-hands{--fa:"\f684"}.fa-book-quran,.fa-quran{--fa:"\f687"}.fa-magnifying-glass-dollar,.fa-search-dollar{--fa:"\f688"}.fa-magnifying-glass-location,.fa-search-location{--fa:"\f689"}.fa-socks{--fa:"\f696"}.fa-square-root-alt,.fa-square-root-variable{--fa:"\f698"}.fa-star-and-crescent{--fa:"\f699"}.fa-star-of-david{--fa:"\f69a"}.fa-synagogue{--fa:"\f69b"}.fa-scroll-torah,.fa-torah{--fa:"\f6a0"}.fa-torii-gate{--fa:"\f6a1"}.fa-vihara{--fa:"\f6a7"}.fa-volume-mute,.fa-volume-times,.fa-volume-xmark{--fa:"\f6a9"}.fa-yin-yang{--fa:"\f6ad"}.fa-blender-phone{--fa:"\f6b6"}.fa-book-dead,.fa-book-skull{--fa:"\f6b7"}.fa-campground{--fa:"\f6bb"}.fa-cat{--fa:"\f6be"}.fa-chair{--fa:"\f6c0"}.fa-cloud-moon{--fa:"\f6c3"}.fa-cloud-sun{--fa:"\f6c4"}.fa-cow{--fa:"\f6c8"}.fa-dice-d20{--fa:"\f6cf"}.fa-dice-d6{--fa:"\f6d1"}.fa-dog{--fa:"\f6d3"}.fa-dragon{--fa:"\f6d5"}.fa-drumstick-bite{--fa:"\f6d7"}.fa-dungeon{--fa:"\f6d9"}.fa-file-csv{--fa:"\f6dd"}.fa-fist-raised,.fa-hand-fist{--fa:"\f6de"}.fa-ghost{--fa:"\f6e2"}.fa-hammer{--fa:"\f6e3"}.fa-hanukiah{--fa:"\f6e6"}.fa-hat-wizard{--fa:"\f6e8"}.fa-hiking,.fa-person-hiking{--fa:"\f6ec"}.fa-hippo{--fa:"\f6ed"}.fa-horse{--fa:"\f6f0"}.fa-house-chimney-crack,.fa-house-damage{--fa:"\f6f1"}.fa-hryvnia,.fa-hryvnia-sign{--fa:"\f6f2"}.fa-mask{--fa:"\f6fa"}.fa-mountain{--fa:"\f6fc"}.fa-network-wired{--fa:"\f6ff"}.fa-otter{--fa:"\f700"}.fa-ring{--fa:"\f70b"}.fa-person-running,.fa-running{--fa:"\f70c"}.fa-scroll{--fa:"\f70e"}.fa-skull-crossbones{--fa:"\f714"}.fa-slash{--fa:"\f715"}.fa-spider{--fa:"\f717"}.fa-toilet-paper,.fa-toilet-paper-alt,.fa-toilet-paper-blank{--fa:"\f71e"}.fa-tractor{--fa:"\f722"}.fa-user-injured{--fa:"\f728"}.fa-vr-cardboard{--fa:"\f729"}.fa-wand-sparkles{--fa:"\f72b"}.fa-wind{--fa:"\f72e"}.fa-wine-bottle{--fa:"\f72f"}.fa-cloud-meatball{--fa:"\f73b"}.fa-cloud-moon-rain{--fa:"\f73c"}.fa-cloud-rain{--fa:"\f73d"}.fa-cloud-showers-heavy{--fa:"\f740"}.fa-cloud-sun-rain{--fa:"\f743"}.fa-democrat{--fa:"\f747"}.fa-flag-usa{--fa:"\f74d"}.fa-hurricane{--fa:"\f751"}.fa-landmark-alt,.fa-landmark-dome{--fa:"\f752"}.fa-meteor{--fa:"\f753"}.fa-person-booth{--fa:"\f756"}.fa-poo-bolt,.fa-poo-storm{--fa:"\f75a"}.fa-rainbow{--fa:"\f75b"}.fa-republican{--fa:"\f75e"}.fa-smog{--fa:"\f75f"}.fa-temperature-high{--fa:"\f769"}.fa-temperature-low{--fa:"\f76b"}.fa-cloud-bolt,.fa-thunderstorm{--fa:"\f76c"}.fa-tornado{--fa:"\f76f"}.fa-volcano{--fa:"\f770"}.fa-check-to-slot,.fa-vote-yea{--fa:"\f772"}.fa-water{--fa:"\f773"}.fa-baby{--fa:"\f77c"}.fa-baby-carriage,.fa-carriage-baby{--fa:"\f77d"}.fa-biohazard{--fa:"\f780"}.fa-blog{--fa:"\f781"}.fa-calendar-day{--fa:"\f783"}.fa-calendar-week{--fa:"\f784"}.fa-candy-cane{--fa:"\f786"}.fa-carrot{--fa:"\f787"}.fa-cash-register{--fa:"\f788"}.fa-compress-arrows-alt,.fa-minimize{--fa:"\f78c"}.fa-dumpster{--fa:"\f793"}.fa-dumpster-fire{--fa:"\f794"}.fa-ethernet{--fa:"\f796"}.fa-gifts{--fa:"\f79c"}.fa-champagne-glasses,.fa-glass-cheers{--fa:"\f79f"}.fa-glass-whiskey,.fa-whiskey-glass{--fa:"\f7a0"}.fa-earth-europe,.fa-globe-europe{--fa:"\f7a2"}.fa-grip-lines{--fa:"\f7a4"}.fa-grip-lines-vertical{--fa:"\f7a5"}.fa-guitar{--fa:"\f7a6"}.fa-heart-broken,.fa-heart-crack{--fa:"\f7a9"}.fa-holly-berry{--fa:"\f7aa"}.fa-horse-head{--fa:"\f7ab"}.fa-icicles{--fa:"\f7ad"}.fa-igloo{--fa:"\f7ae"}.fa-mitten{--fa:"\f7b5"}.fa-mug-hot{--fa:"\f7b6"}.fa-radiation{--fa:"\f7b9"}.fa-circle-radiation,.fa-radiation-alt{--fa:"\f7ba"}.fa-restroom{--fa:"\f7bd"}.fa-satellite{--fa:"\f7bf"}.fa-satellite-dish{--fa:"\f7c0"}.fa-sd-card{--fa:"\f7c2"}.fa-sim-card{--fa:"\f7c4"}.fa-person-skating,.fa-skating{--fa:"\f7c5"}.fa-person-skiing,.fa-skiing{--fa:"\f7c9"}.fa-person-skiing-nordic,.fa-skiing-nordic{--fa:"\f7ca"}.fa-sleigh{--fa:"\f7cc"}.fa-comment-sms,.fa-sms{--fa:"\f7cd"}.fa-person-snowboarding,.fa-snowboarding{--fa:"\f7ce"}.fa-snowman{--fa:"\f7d0"}.fa-snowplow{--fa:"\f7d2"}.fa-tenge,.fa-tenge-sign{--fa:"\f7d7"}.fa-toilet{--fa:"\f7d8"}.fa-screwdriver-wrench,.fa-tools{--fa:"\f7d9"}.fa-cable-car,.fa-tram{--fa:"\f7da"}.fa-fire-alt,.fa-fire-flame-curved{--fa:"\f7e4"}.fa-bacon{--fa:"\f7e5"}.fa-book-medical{--fa:"\f7e6"}.fa-bread-slice{--fa:"\f7ec"}.fa-cheese{--fa:"\f7ef"}.fa-clinic-medical,.fa-house-chimney-medical{--fa:"\f7f2"}.fa-clipboard-user{--fa:"\f7f3"}.fa-comment-medical{--fa:"\f7f5"}.fa-crutch{--fa:"\f7f7"}.fa-disease{--fa:"\f7fa"}.fa-egg{--fa:"\f7fb"}.fa-folder-tree{--fa:"\f802"}.fa-burger,.fa-hamburger{--fa:"\f805"}.fa-hand-middle-finger{--fa:"\f806"}.fa-hard-hat,.fa-hat-hard,.fa-helmet-safety{--fa:"\f807"}.fa-hospital-user{--fa:"\f80d"}.fa-hotdog{--fa:"\f80f"}.fa-ice-cream{--fa:"\f810"}.fa-laptop-medical{--fa:"\f812"}.fa-pager{--fa:"\f815"}.fa-pepper-hot{--fa:"\f816"}.fa-pizza-slice{--fa:"\f818"}.fa-sack-dollar{--fa:"\f81d"}.fa-book-tanakh,.fa-tanakh{--fa:"\f827"}.fa-bars-progress,.fa-tasks-alt{--fa:"\f828"}.fa-trash-arrow-up,.fa-trash-restore{--fa:"\f829"}.fa-trash-can-arrow-up,.fa-trash-restore-alt{--fa:"\f82a"}.fa-user-nurse{--fa:"\f82f"}.fa-wave-square{--fa:"\f83e"}.fa-biking,.fa-person-biking{--fa:"\f84a"}.fa-border-all{--fa:"\f84c"}.fa-border-none{--fa:"\f850"}.fa-border-style,.fa-border-top-left{--fa:"\f853"}.fa-digging,.fa-person-digging{--fa:"\f85e"}.fa-fan{--fa:"\f863"}.fa-heart-music-camera-bolt,.fa-icons{--fa:"\f86d"}.fa-phone-alt,.fa-phone-flip{--fa:"\f879"}.fa-phone-square-alt,.fa-square-phone-flip{--fa:"\f87b"}.fa-photo-film,.fa-photo-video{--fa:"\f87c"}.fa-remove-format,.fa-text-slash{--fa:"\f87d"}.fa-arrow-down-z-a,.fa-sort-alpha-desc,.fa-sort-alpha-down-alt{--fa:"\f881"}.fa-arrow-up-z-a,.fa-sort-alpha-up-alt{--fa:"\f882"}.fa-arrow-down-short-wide,.fa-sort-amount-desc,.fa-sort-amount-down-alt{--fa:"\f884"}.fa-arrow-up-short-wide,.fa-sort-amount-up-alt{--fa:"\f885"}.fa-arrow-down-9-1,.fa-sort-numeric-desc,.fa-sort-numeric-down-alt{--fa:"\f886"}.fa-arrow-up-9-1,.fa-sort-numeric-up-alt{--fa:"\f887"}.fa-spell-check{--fa:"\f891"}.fa-voicemail{--fa:"\f897"}.fa-hat-cowboy{--fa:"\f8c0"}.fa-hat-cowboy-side{--fa:"\f8c1"}.fa-computer-mouse,.fa-mouse{--fa:"\f8cc"}.fa-radio{--fa:"\f8d7"}.fa-record-vinyl{--fa:"\f8d9"}.fa-walkie-talkie{--fa:"\f8ef"}.fa-caravan{--fa:"\f8ff"} -:host,:root{--fa-family-brands:"Font Awesome 7 Brands";--fa-font-brands:normal 400 1em/1 var(--fa-family-brands)}@font-face{font-family:"Font Awesome 7 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2)}.fa-brands,.fa-classic.fa-brands,.fab{--fa-family:var(--fa-family-brands);--fa-style:400}.fa-firefox-browser{--fa:"\e007"}.fa-ideal{--fa:"\e013"}.fa-microblog{--fa:"\e01a"}.fa-pied-piper-square,.fa-square-pied-piper{--fa:"\e01e"}.fa-unity{--fa:"\e049"}.fa-dailymotion{--fa:"\e052"}.fa-instagram-square,.fa-square-instagram{--fa:"\e055"}.fa-mixer{--fa:"\e056"}.fa-shopify{--fa:"\e057"}.fa-deezer{--fa:"\e077"}.fa-edge-legacy{--fa:"\e078"}.fa-google-pay{--fa:"\e079"}.fa-rust{--fa:"\e07a"}.fa-tiktok{--fa:"\e07b"}.fa-unsplash{--fa:"\e07c"}.fa-cloudflare{--fa:"\e07d"}.fa-guilded{--fa:"\e07e"}.fa-hive{--fa:"\e07f"}.fa-42-group,.fa-innosoft{--fa:"\e080"}.fa-instalod{--fa:"\e081"}.fa-octopus-deploy{--fa:"\e082"}.fa-perbyte{--fa:"\e083"}.fa-uncharted{--fa:"\e084"}.fa-watchman-monitoring{--fa:"\e087"}.fa-wodu{--fa:"\e088"}.fa-wirsindhandwerk,.fa-wsh{--fa:"\e2d0"}.fa-bots{--fa:"\e340"}.fa-cmplid{--fa:"\e360"}.fa-bilibili{--fa:"\e3d9"}.fa-golang{--fa:"\e40f"}.fa-pix{--fa:"\e43a"}.fa-sitrox{--fa:"\e44a"}.fa-hashnode{--fa:"\e499"}.fa-meta{--fa:"\e49b"}.fa-padlet{--fa:"\e4a0"}.fa-nfc-directional{--fa:"\e530"}.fa-nfc-symbol{--fa:"\e531"}.fa-screenpal{--fa:"\e570"}.fa-space-awesome{--fa:"\e5ac"}.fa-square-font-awesome{--fa:"\e5ad"}.fa-gitlab-square,.fa-square-gitlab{--fa:"\e5ae"}.fa-odysee{--fa:"\e5c6"}.fa-stubber{--fa:"\e5c7"}.fa-debian{--fa:"\e60b"}.fa-shoelace{--fa:"\e60c"}.fa-threads{--fa:"\e618"}.fa-square-threads{--fa:"\e619"}.fa-square-x-twitter{--fa:"\e61a"}.fa-x-twitter{--fa:"\e61b"}.fa-opensuse{--fa:"\e62b"}.fa-letterboxd{--fa:"\e62d"}.fa-square-letterboxd{--fa:"\e62e"}.fa-mintbit{--fa:"\e62f"}.fa-google-scholar{--fa:"\e63b"}.fa-brave{--fa:"\e63c"}.fa-brave-reverse{--fa:"\e63d"}.fa-pixiv{--fa:"\e640"}.fa-upwork{--fa:"\e641"}.fa-webflow{--fa:"\e65c"}.fa-signal-messenger{--fa:"\e663"}.fa-bluesky{--fa:"\e671"}.fa-jxl{--fa:"\e67b"}.fa-square-upwork{--fa:"\e67c"}.fa-web-awesome{--fa:"\e682"}.fa-square-web-awesome{--fa:"\e683"}.fa-square-web-awesome-stroke{--fa:"\e684"}.fa-dart-lang{--fa:"\e693"}.fa-flutter{--fa:"\e694"}.fa-files-pinwheel{--fa:"\e69f"}.fa-css{--fa:"\e6a2"}.fa-square-bluesky{--fa:"\e6a3"}.fa-openai{--fa:"\e7cf"}.fa-square-linkedin{--fa:"\e7d0"}.fa-cash-app{--fa:"\e7d4"}.fa-disqus{--fa:"\e7d5"}.fa-11ty,.fa-eleventy{--fa:"\e7d6"}.fa-kakao-talk{--fa:"\e7d7"}.fa-linktree{--fa:"\e7d8"}.fa-notion{--fa:"\e7d9"}.fa-pandora{--fa:"\e7da"}.fa-pixelfed{--fa:"\e7db"}.fa-tidal{--fa:"\e7dc"}.fa-vsco{--fa:"\e7dd"}.fa-w3c{--fa:"\e7de"}.fa-lumon{--fa:"\e7e2"}.fa-lumon-drop{--fa:"\e7e3"}.fa-square-figma{--fa:"\e7e4"}.fa-tex{--fa:"\e7ff"}.fa-duolingo{--fa:"\e812"}.fa-square-twitter,.fa-twitter-square{--fa:"\f081"}.fa-facebook-square,.fa-square-facebook{--fa:"\f082"}.fa-linkedin{--fa:"\f08c"}.fa-github-square,.fa-square-github{--fa:"\f092"}.fa-twitter{--fa:"\f099"}.fa-facebook{--fa:"\f09a"}.fa-github{--fa:"\f09b"}.fa-pinterest{--fa:"\f0d2"}.fa-pinterest-square,.fa-square-pinterest{--fa:"\f0d3"}.fa-google-plus-square,.fa-square-google-plus{--fa:"\f0d4"}.fa-google-plus-g{--fa:"\f0d5"}.fa-linkedin-in{--fa:"\f0e1"}.fa-github-alt{--fa:"\f113"}.fa-maxcdn{--fa:"\f136"}.fa-html5{--fa:"\f13b"}.fa-css3{--fa:"\f13c"}.fa-btc{--fa:"\f15a"}.fa-youtube{--fa:"\f167"}.fa-xing{--fa:"\f168"}.fa-square-xing,.fa-xing-square{--fa:"\f169"}.fa-dropbox{--fa:"\f16b"}.fa-stack-overflow{--fa:"\f16c"}.fa-instagram{--fa:"\f16d"}.fa-flickr{--fa:"\f16e"}.fa-adn{--fa:"\f170"}.fa-bitbucket{--fa:"\f171"}.fa-tumblr{--fa:"\f173"}.fa-square-tumblr,.fa-tumblr-square{--fa:"\f174"}.fa-apple{--fa:"\f179"}.fa-windows{--fa:"\f17a"}.fa-android{--fa:"\f17b"}.fa-linux{--fa:"\f17c"}.fa-dribbble{--fa:"\f17d"}.fa-skype{--fa:"\f17e"}.fa-foursquare{--fa:"\f180"}.fa-trello{--fa:"\f181"}.fa-gratipay{--fa:"\f184"}.fa-vk{--fa:"\f189"}.fa-weibo{--fa:"\f18a"}.fa-renren{--fa:"\f18b"}.fa-pagelines{--fa:"\f18c"}.fa-stack-exchange{--fa:"\f18d"}.fa-square-vimeo,.fa-vimeo-square{--fa:"\f194"}.fa-slack,.fa-slack-hash{--fa:"\f198"}.fa-wordpress{--fa:"\f19a"}.fa-openid{--fa:"\f19b"}.fa-yahoo{--fa:"\f19e"}.fa-google{--fa:"\f1a0"}.fa-reddit{--fa:"\f1a1"}.fa-reddit-square,.fa-square-reddit{--fa:"\f1a2"}.fa-stumbleupon-circle{--fa:"\f1a3"}.fa-stumbleupon{--fa:"\f1a4"}.fa-delicious{--fa:"\f1a5"}.fa-digg{--fa:"\f1a6"}.fa-pied-piper-pp{--fa:"\f1a7"}.fa-pied-piper-alt{--fa:"\f1a8"}.fa-drupal{--fa:"\f1a9"}.fa-joomla{--fa:"\f1aa"}.fa-behance{--fa:"\f1b4"}.fa-behance-square,.fa-square-behance{--fa:"\f1b5"}.fa-steam{--fa:"\f1b6"}.fa-square-steam,.fa-steam-square{--fa:"\f1b7"}.fa-spotify{--fa:"\f1bc"}.fa-deviantart{--fa:"\f1bd"}.fa-soundcloud{--fa:"\f1be"}.fa-vine{--fa:"\f1ca"}.fa-codepen{--fa:"\f1cb"}.fa-jsfiddle{--fa:"\f1cc"}.fa-rebel{--fa:"\f1d0"}.fa-empire{--fa:"\f1d1"}.fa-git-square,.fa-square-git{--fa:"\f1d2"}.fa-git{--fa:"\f1d3"}.fa-hacker-news{--fa:"\f1d4"}.fa-tencent-weibo{--fa:"\f1d5"}.fa-qq{--fa:"\f1d6"}.fa-weixin{--fa:"\f1d7"}.fa-slideshare{--fa:"\f1e7"}.fa-twitch{--fa:"\f1e8"}.fa-yelp{--fa:"\f1e9"}.fa-paypal{--fa:"\f1ed"}.fa-google-wallet{--fa:"\f1ee"}.fa-cc-visa{--fa:"\f1f0"}.fa-cc-mastercard{--fa:"\f1f1"}.fa-cc-discover{--fa:"\f1f2"}.fa-cc-amex{--fa:"\f1f3"}.fa-cc-paypal{--fa:"\f1f4"}.fa-cc-stripe{--fa:"\f1f5"}.fa-lastfm{--fa:"\f202"}.fa-lastfm-square,.fa-square-lastfm{--fa:"\f203"}.fa-ioxhost{--fa:"\f208"}.fa-angellist{--fa:"\f209"}.fa-buysellads{--fa:"\f20d"}.fa-connectdevelop{--fa:"\f20e"}.fa-dashcube{--fa:"\f210"}.fa-forumbee{--fa:"\f211"}.fa-leanpub{--fa:"\f212"}.fa-sellsy{--fa:"\f213"}.fa-shirtsinbulk{--fa:"\f214"}.fa-simplybuilt{--fa:"\f215"}.fa-skyatlas{--fa:"\f216"}.fa-pinterest-p{--fa:"\f231"}.fa-whatsapp{--fa:"\f232"}.fa-viacoin{--fa:"\f237"}.fa-medium,.fa-medium-m{--fa:"\f23a"}.fa-y-combinator{--fa:"\f23b"}.fa-optin-monster{--fa:"\f23c"}.fa-opencart{--fa:"\f23d"}.fa-expeditedssl{--fa:"\f23e"}.fa-cc-jcb{--fa:"\f24b"}.fa-cc-diners-club{--fa:"\f24c"}.fa-creative-commons{--fa:"\f25e"}.fa-gg{--fa:"\f260"}.fa-gg-circle{--fa:"\f261"}.fa-odnoklassniki{--fa:"\f263"}.fa-odnoklassniki-square,.fa-square-odnoklassniki{--fa:"\f264"}.fa-get-pocket{--fa:"\f265"}.fa-wikipedia-w{--fa:"\f266"}.fa-safari{--fa:"\f267"}.fa-chrome{--fa:"\f268"}.fa-firefox{--fa:"\f269"}.fa-opera{--fa:"\f26a"}.fa-internet-explorer{--fa:"\f26b"}.fa-contao{--fa:"\f26d"}.fa-500px{--fa:"\f26e"}.fa-amazon{--fa:"\f270"}.fa-houzz{--fa:"\f27c"}.fa-vimeo-v{--fa:"\f27d"}.fa-black-tie{--fa:"\f27e"}.fa-fonticons{--fa:"\f280"}.fa-reddit-alien{--fa:"\f281"}.fa-edge{--fa:"\f282"}.fa-codiepie{--fa:"\f284"}.fa-modx{--fa:"\f285"}.fa-fort-awesome{--fa:"\f286"}.fa-usb{--fa:"\f287"}.fa-product-hunt{--fa:"\f288"}.fa-mixcloud{--fa:"\f289"}.fa-scribd{--fa:"\f28a"}.fa-bluetooth{--fa:"\f293"}.fa-bluetooth-b{--fa:"\f294"}.fa-gitlab{--fa:"\f296"}.fa-wpbeginner{--fa:"\f297"}.fa-wpforms{--fa:"\f298"}.fa-envira{--fa:"\f299"}.fa-glide{--fa:"\f2a5"}.fa-glide-g{--fa:"\f2a6"}.fa-viadeo{--fa:"\f2a9"}.fa-square-viadeo,.fa-viadeo-square{--fa:"\f2aa"}.fa-snapchat,.fa-snapchat-ghost{--fa:"\f2ab"}.fa-snapchat-square,.fa-square-snapchat{--fa:"\f2ad"}.fa-pied-piper{--fa:"\f2ae"}.fa-first-order{--fa:"\f2b0"}.fa-yoast{--fa:"\f2b1"}.fa-themeisle{--fa:"\f2b2"}.fa-google-plus{--fa:"\f2b3"}.fa-font-awesome,.fa-font-awesome-flag,.fa-font-awesome-logo-full{--fa:"\f2b4"}.fa-linode{--fa:"\f2b8"}.fa-quora{--fa:"\f2c4"}.fa-free-code-camp{--fa:"\f2c5"}.fa-telegram,.fa-telegram-plane{--fa:"\f2c6"}.fa-bandcamp{--fa:"\f2d5"}.fa-grav{--fa:"\f2d6"}.fa-etsy{--fa:"\f2d7"}.fa-imdb{--fa:"\f2d8"}.fa-ravelry{--fa:"\f2d9"}.fa-sellcast{--fa:"\f2da"}.fa-superpowers{--fa:"\f2dd"}.fa-wpexplorer{--fa:"\f2de"}.fa-meetup{--fa:"\f2e0"}.fa-font-awesome-alt,.fa-square-font-awesome-stroke{--fa:"\f35c"}.fa-accessible-icon{--fa:"\f368"}.fa-accusoft{--fa:"\f369"}.fa-adversal{--fa:"\f36a"}.fa-affiliatetheme{--fa:"\f36b"}.fa-algolia{--fa:"\f36c"}.fa-amilia{--fa:"\f36d"}.fa-angrycreative{--fa:"\f36e"}.fa-app-store{--fa:"\f36f"}.fa-app-store-ios{--fa:"\f370"}.fa-apper{--fa:"\f371"}.fa-asymmetrik{--fa:"\f372"}.fa-audible{--fa:"\f373"}.fa-avianex{--fa:"\f374"}.fa-aws{--fa:"\f375"}.fa-bimobject{--fa:"\f378"}.fa-bitcoin{--fa:"\f379"}.fa-bity{--fa:"\f37a"}.fa-blackberry{--fa:"\f37b"}.fa-blogger{--fa:"\f37c"}.fa-blogger-b{--fa:"\f37d"}.fa-buromobelexperte{--fa:"\f37f"}.fa-centercode{--fa:"\f380"}.fa-cloudscale{--fa:"\f383"}.fa-cloudsmith{--fa:"\f384"}.fa-cloudversify{--fa:"\f385"}.fa-cpanel{--fa:"\f388"}.fa-css3-alt{--fa:"\f38b"}.fa-cuttlefish{--fa:"\f38c"}.fa-d-and-d{--fa:"\f38d"}.fa-deploydog{--fa:"\f38e"}.fa-deskpro{--fa:"\f38f"}.fa-digital-ocean{--fa:"\f391"}.fa-discord{--fa:"\f392"}.fa-discourse{--fa:"\f393"}.fa-dochub{--fa:"\f394"}.fa-docker{--fa:"\f395"}.fa-draft2digital{--fa:"\f396"}.fa-dribbble-square,.fa-square-dribbble{--fa:"\f397"}.fa-dyalog{--fa:"\f399"}.fa-earlybirds{--fa:"\f39a"}.fa-erlang{--fa:"\f39d"}.fa-facebook-f{--fa:"\f39e"}.fa-facebook-messenger{--fa:"\f39f"}.fa-firstdraft{--fa:"\f3a1"}.fa-fonticons-fi{--fa:"\f3a2"}.fa-fort-awesome-alt{--fa:"\f3a3"}.fa-freebsd{--fa:"\f3a4"}.fa-gitkraken{--fa:"\f3a6"}.fa-gofore{--fa:"\f3a7"}.fa-goodreads{--fa:"\f3a8"}.fa-goodreads-g{--fa:"\f3a9"}.fa-google-drive{--fa:"\f3aa"}.fa-google-play{--fa:"\f3ab"}.fa-gripfire{--fa:"\f3ac"}.fa-grunt{--fa:"\f3ad"}.fa-gulp{--fa:"\f3ae"}.fa-hacker-news-square,.fa-square-hacker-news{--fa:"\f3af"}.fa-hire-a-helper{--fa:"\f3b0"}.fa-hotjar{--fa:"\f3b1"}.fa-hubspot{--fa:"\f3b2"}.fa-itunes{--fa:"\f3b4"}.fa-itunes-note{--fa:"\f3b5"}.fa-jenkins{--fa:"\f3b6"}.fa-joget{--fa:"\f3b7"}.fa-js{--fa:"\f3b8"}.fa-js-square,.fa-square-js{--fa:"\f3b9"}.fa-keycdn{--fa:"\f3ba"}.fa-kickstarter,.fa-square-kickstarter{--fa:"\f3bb"}.fa-kickstarter-k{--fa:"\f3bc"}.fa-laravel{--fa:"\f3bd"}.fa-line{--fa:"\f3c0"}.fa-lyft{--fa:"\f3c3"}.fa-magento{--fa:"\f3c4"}.fa-medapps{--fa:"\f3c6"}.fa-medrt{--fa:"\f3c8"}.fa-microsoft{--fa:"\f3ca"}.fa-mix{--fa:"\f3cb"}.fa-mizuni{--fa:"\f3cc"}.fa-monero{--fa:"\f3d0"}.fa-napster{--fa:"\f3d2"}.fa-node-js{--fa:"\f3d3"}.fa-npm{--fa:"\f3d4"}.fa-ns8{--fa:"\f3d5"}.fa-nutritionix{--fa:"\f3d6"}.fa-page4{--fa:"\f3d7"}.fa-palfed{--fa:"\f3d8"}.fa-patreon{--fa:"\f3d9"}.fa-periscope{--fa:"\f3da"}.fa-phabricator{--fa:"\f3db"}.fa-phoenix-framework{--fa:"\f3dc"}.fa-playstation{--fa:"\f3df"}.fa-pushed{--fa:"\f3e1"}.fa-python{--fa:"\f3e2"}.fa-red-river{--fa:"\f3e3"}.fa-rendact,.fa-wpressr{--fa:"\f3e4"}.fa-replyd{--fa:"\f3e6"}.fa-resolving{--fa:"\f3e7"}.fa-rocketchat{--fa:"\f3e8"}.fa-rockrms{--fa:"\f3e9"}.fa-schlix{--fa:"\f3ea"}.fa-searchengin{--fa:"\f3eb"}.fa-servicestack{--fa:"\f3ec"}.fa-sistrix{--fa:"\f3ee"}.fa-speakap{--fa:"\f3f3"}.fa-staylinked{--fa:"\f3f5"}.fa-steam-symbol{--fa:"\f3f6"}.fa-sticker-mule{--fa:"\f3f7"}.fa-studiovinari{--fa:"\f3f8"}.fa-supple{--fa:"\f3f9"}.fa-uber{--fa:"\f402"}.fa-uikit{--fa:"\f403"}.fa-uniregistry{--fa:"\f404"}.fa-untappd{--fa:"\f405"}.fa-ussunnah{--fa:"\f407"}.fa-vaadin{--fa:"\f408"}.fa-viber{--fa:"\f409"}.fa-vimeo{--fa:"\f40a"}.fa-vnv{--fa:"\f40b"}.fa-square-whatsapp,.fa-whatsapp-square{--fa:"\f40c"}.fa-whmcs{--fa:"\f40d"}.fa-wordpress-simple{--fa:"\f411"}.fa-xbox{--fa:"\f412"}.fa-yandex{--fa:"\f413"}.fa-yandex-international{--fa:"\f414"}.fa-apple-pay{--fa:"\f415"}.fa-cc-apple-pay{--fa:"\f416"}.fa-fly{--fa:"\f417"}.fa-node{--fa:"\f419"}.fa-osi{--fa:"\f41a"}.fa-react{--fa:"\f41b"}.fa-autoprefixer{--fa:"\f41c"}.fa-less{--fa:"\f41d"}.fa-sass{--fa:"\f41e"}.fa-vuejs{--fa:"\f41f"}.fa-angular{--fa:"\f420"}.fa-aviato{--fa:"\f421"}.fa-ember{--fa:"\f423"}.fa-gitter{--fa:"\f426"}.fa-hooli{--fa:"\f427"}.fa-strava{--fa:"\f428"}.fa-stripe{--fa:"\f429"}.fa-stripe-s{--fa:"\f42a"}.fa-typo3{--fa:"\f42b"}.fa-amazon-pay{--fa:"\f42c"}.fa-cc-amazon-pay{--fa:"\f42d"}.fa-ethereum{--fa:"\f42e"}.fa-korvue{--fa:"\f42f"}.fa-elementor{--fa:"\f430"}.fa-square-youtube,.fa-youtube-square{--fa:"\f431"}.fa-flipboard{--fa:"\f44d"}.fa-hips{--fa:"\f452"}.fa-php{--fa:"\f457"}.fa-quinscape{--fa:"\f459"}.fa-readme{--fa:"\f4d5"}.fa-java{--fa:"\f4e4"}.fa-pied-piper-hat{--fa:"\f4e5"}.fa-creative-commons-by{--fa:"\f4e7"}.fa-creative-commons-nc{--fa:"\f4e8"}.fa-creative-commons-nc-eu{--fa:"\f4e9"}.fa-creative-commons-nc-jp{--fa:"\f4ea"}.fa-creative-commons-nd{--fa:"\f4eb"}.fa-creative-commons-pd{--fa:"\f4ec"}.fa-creative-commons-pd-alt{--fa:"\f4ed"}.fa-creative-commons-remix{--fa:"\f4ee"}.fa-creative-commons-sa{--fa:"\f4ef"}.fa-creative-commons-sampling{--fa:"\f4f0"}.fa-creative-commons-sampling-plus{--fa:"\f4f1"}.fa-creative-commons-share{--fa:"\f4f2"}.fa-creative-commons-zero{--fa:"\f4f3"}.fa-ebay{--fa:"\f4f4"}.fa-keybase{--fa:"\f4f5"}.fa-mastodon{--fa:"\f4f6"}.fa-r-project{--fa:"\f4f7"}.fa-researchgate{--fa:"\f4f8"}.fa-teamspeak{--fa:"\f4f9"}.fa-first-order-alt{--fa:"\f50a"}.fa-fulcrum{--fa:"\f50b"}.fa-galactic-republic{--fa:"\f50c"}.fa-galactic-senate{--fa:"\f50d"}.fa-jedi-order{--fa:"\f50e"}.fa-mandalorian{--fa:"\f50f"}.fa-old-republic{--fa:"\f510"}.fa-phoenix-squadron{--fa:"\f511"}.fa-sith{--fa:"\f512"}.fa-trade-federation{--fa:"\f513"}.fa-wolf-pack-battalion{--fa:"\f514"}.fa-hornbill{--fa:"\f592"}.fa-mailchimp{--fa:"\f59e"}.fa-megaport{--fa:"\f5a3"}.fa-nimblr{--fa:"\f5a8"}.fa-rev{--fa:"\f5b2"}.fa-shopware{--fa:"\f5b5"}.fa-squarespace{--fa:"\f5be"}.fa-themeco{--fa:"\f5c6"}.fa-weebly{--fa:"\f5cc"}.fa-wix{--fa:"\f5cf"}.fa-ello{--fa:"\f5f1"}.fa-hackerrank{--fa:"\f5f7"}.fa-kaggle{--fa:"\f5fa"}.fa-markdown{--fa:"\f60f"}.fa-neos{--fa:"\f612"}.fa-zhihu{--fa:"\f63f"}.fa-alipay{--fa:"\f642"}.fa-the-red-yeti{--fa:"\f69d"}.fa-critical-role{--fa:"\f6c9"}.fa-d-and-d-beyond{--fa:"\f6ca"}.fa-dev{--fa:"\f6cc"}.fa-fantasy-flight-games{--fa:"\f6dc"}.fa-wizards-of-the-coast{--fa:"\f730"}.fa-think-peaks{--fa:"\f731"}.fa-reacteurope{--fa:"\f75d"}.fa-artstation{--fa:"\f77a"}.fa-atlassian{--fa:"\f77b"}.fa-canadian-maple-leaf{--fa:"\f785"}.fa-centos{--fa:"\f789"}.fa-confluence{--fa:"\f78d"}.fa-dhl{--fa:"\f790"}.fa-diaspora{--fa:"\f791"}.fa-fedex{--fa:"\f797"}.fa-fedora{--fa:"\f798"}.fa-figma{--fa:"\f799"}.fa-intercom{--fa:"\f7af"}.fa-invision{--fa:"\f7b0"}.fa-jira{--fa:"\f7b1"}.fa-mendeley{--fa:"\f7b3"}.fa-raspberry-pi{--fa:"\f7bb"}.fa-redhat{--fa:"\f7bc"}.fa-sketch{--fa:"\f7c6"}.fa-sourcetree{--fa:"\f7d3"}.fa-suse{--fa:"\f7d6"}.fa-ubuntu{--fa:"\f7df"}.fa-ups{--fa:"\f7e0"}.fa-usps{--fa:"\f7e1"}.fa-yarn{--fa:"\f7e3"}.fa-airbnb{--fa:"\f834"}.fa-battle-net{--fa:"\f835"}.fa-bootstrap{--fa:"\f836"}.fa-buffer{--fa:"\f837"}.fa-chromecast{--fa:"\f838"}.fa-evernote{--fa:"\f839"}.fa-itch-io{--fa:"\f83a"}.fa-salesforce{--fa:"\f83b"}.fa-speaker-deck{--fa:"\f83c"}.fa-symfony{--fa:"\f83d"}.fa-waze{--fa:"\f83f"}.fa-yammer{--fa:"\f840"}.fa-git-alt{--fa:"\f841"}.fa-stackpath{--fa:"\f842"}.fa-cotton-bureau{--fa:"\f89e"}.fa-buy-n-large{--fa:"\f8a6"}.fa-mdb{--fa:"\f8ca"}.fa-orcid{--fa:"\f8d2"}.fa-swift{--fa:"\f8e1"}.fa-umbraco{--fa:"\f8e8"}:host,:root{--fa-font-regular:normal 400 1em/1 var(--fa-family-classic)}@font-face{font-family:"Font Awesome 7 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2)}.far{--fa-family:var(--fa-family-classic)}.fa-regular,.far{--fa-style:400}:host,:root{--fa-family-classic:"Font Awesome 7 Free";--fa-font-solid:normal 900 1em/1 var(--fa-family-classic);--fa-style-family-classic:var(--fa-family-classic)}@font-face{font-family:"Font Awesome 7 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2)}.fas{--fa-style:900}.fa-classic,.fas{--fa-family:var(--fa-family-classic)}.fa-solid{--fa-style:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a} \ No newline at end of file diff --git a/assets/lib/fontawesome/webfonts/fa-brands-400.woff2 b/assets/lib/fontawesome/webfonts/fa-brands-400.woff2 deleted file mode 100644 index d0b8f69e..00000000 Binary files a/assets/lib/fontawesome/webfonts/fa-brands-400.woff2 and /dev/null differ diff --git a/assets/lib/fontawesome/webfonts/fa-regular-400.woff2 b/assets/lib/fontawesome/webfonts/fa-regular-400.woff2 deleted file mode 100644 index 2eca12b0..00000000 Binary files a/assets/lib/fontawesome/webfonts/fa-regular-400.woff2 and /dev/null differ diff --git a/assets/lib/fontawesome/webfonts/fa-solid-900.woff2 b/assets/lib/fontawesome/webfonts/fa-solid-900.woff2 deleted file mode 100644 index c20c7f4f..00000000 Binary files a/assets/lib/fontawesome/webfonts/fa-solid-900.woff2 and /dev/null differ diff --git a/assets/lib/fontawesome/webfonts/fa-v4compatibility.woff2 b/assets/lib/fontawesome/webfonts/fa-v4compatibility.woff2 deleted file mode 100644 index 275e92fc..00000000 Binary files a/assets/lib/fontawesome/webfonts/fa-v4compatibility.woff2 and /dev/null differ diff --git a/astro.config.ts b/astro.config.ts new file mode 100644 index 00000000..4b729f4a --- /dev/null +++ b/astro.config.ts @@ -0,0 +1,108 @@ +import sitemap from "@astrojs/sitemap"; +import starlight from "@astrojs/starlight"; +import { defineConfig } from "astro/config"; +import { localeConfig } from "./config/locale"; +import { sidebarConfig } from "./config/sidebar"; + +import react from "@astrojs/react"; + +const urlHandler = (url: string) => { + if (url.endsWith("/")) { + url += "index.html"; + } else if (!url.endsWith(".html")) { + url += ".html"; + } + return url; +}; + +let siteUrl = process.env.PUBLIC_SITE_URL || "http://localhost:4321"; +if (!siteUrl.endsWith("/")) { + siteUrl += "/"; +} + +const site = new URL(siteUrl); + +export default defineConfig({ + site: site.origin, + base: site.pathname, + trailingSlash: "never", + redirects: { + "/contribution": "/guides/contribution.html", + "/crash-support-group": "/guides/crash-support-group.html", + "/faq": "/guides/faq.html", + "/groups": "/guides/groups.html", + "/help": "/guides/help.html", + "/downloads/hmcl-snapshot-update": { + status: 302, + destination: "https://hmcl-snapshot-update.netlify.app", + }, + "/downloads/loongnix": "/downloads/linux/loongarch64.html", + "/launcher/fabric_and_optifine_install": "/launcher/fabric-and-optifine-install.html", + "/launcher/global-version-isolation": "/launcher/isolation.html", + }, + output: "static", + integrations: [ + sitemap({ + i18n: { + defaultLocale: localeConfig.defaultLocale, + locales: Object.fromEntries( + Object.entries(localeConfig.locales).map(([locale, config]) => [locale, config!.lang!]) + ), + }, + filter: (page) => + !["changelog/dev", "changelog/stable"].includes(page.slice(site.href.length)), + serialize(item) { + if (Array.isArray(item.links)) { + for (const linkItem of item.links) { + linkItem.url = urlHandler(linkItem.url); + } + } + item.url = urlHandler(item.url); + return item; + }, + }), + starlight({ + title: { + "zh-Hans": "HMCL 文档", + "zh-Hant": "HMCL 文檔", + en: "HMCL Documentation", + }, + components: { + Banner: "./src/components/starlight/Banner.astro", + PageTitle: "./src/components/starlight/PageTitle.astro", + Footer: "./src/components/starlight/Footer.astro", + }, + routeMiddleware: "./src/routeData.ts", + editLink: { + baseUrl: "https://github.com/HMCL-dev/HMCL-docs/edit/main", + }, + defaultLocale: "root", + locales: localeConfig.locales, + sidebar: sidebarConfig, + logo: { + src: "./src/assets/image/hmcl.png", + alt: "HMCL Logo", + }, + social: [ + { + icon: "github", + label: "GitHub", + href: "https://github.com/HMCL-dev/HMCL", + }, + { + icon: "discord", + label: "Discord", + href: "https://discord.gg/jVvC7HfM6U", + }, + ], + customCss: ["./src/assets/landing.css"], + lastUpdated: true, + favicon: "/favicon.ico", + credits: true, + }), + react(), + ], + build: { + format: "file", + }, +}); diff --git a/config/locale.ts b/config/locale.ts new file mode 100644 index 00000000..67e2cdb4 --- /dev/null +++ b/config/locale.ts @@ -0,0 +1,10 @@ +import type { StarlightUserConfig } from "@astrojs/starlight/types"; + +export const localeConfig = { + defaultLocale: "root", + locales: { + root: { label: "简体中文", lang: "zh-Hans", dir: "ltr" }, + "zh-hant": { label: "繁體中文", lang: "zh-Hant", dir: "ltr" }, + en: { label: "English", lang: "en", dir: "ltr" }, + } satisfies StarlightUserConfig["locales"], +}; diff --git a/config/sidebar.ts b/config/sidebar.ts new file mode 100644 index 00000000..572eb376 --- /dev/null +++ b/config/sidebar.ts @@ -0,0 +1,52 @@ +import type { StarlightUserConfig } from "@astrojs/starlight/types"; + +export const sidebarConfig = [ + { + label: "新手导航", + translations: { + "zh-Hant": "新手導航", + en: "Guides", + }, + autogenerate: { directory: "guides" }, + }, + { + label: "启动器", + translations: { + "zh-Hant": "啟動器", + en: "Launcher", + }, + autogenerate: { directory: "launcher" }, + }, + { + label: "整合包", + translations: { + "zh-Hant": "整合包", + en: "Modpack", + }, + autogenerate: { directory: "modpack" }, + }, + { + label: "多人联机", + translations: { + "zh-Hant": "多人聯機", + en: "Multiplayer", + }, + autogenerate: { directory: "multiplayer" }, + }, + { + label: "用户协议", + translations: { + "zh-Hant": "用戶協議", + en: "EULA", + }, + autogenerate: { directory: "eula" }, + }, + { + label: "更新日志", + translations: { + "zh-Hant": "更新日誌", + en: "Changelogs", + }, + autogenerate: { directory: "changelogs" }, + }, +] satisfies StarlightUserConfig["sidebar"]; diff --git a/index.json b/index.json deleted file mode 100644 index 9d480417..00000000 --- a/index.json +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: null -collections: - - name: launcher - title: 启动器 - - name: modpack - title: 整合包 ---- -[ -{%- for collection in page.collections -%} -{"title":"{{ collection.title }}","items":[ -{%- for document in site[collection.name] -%} -{"title":"{{ document.title }}","subtitle":"{{ document.excerpt }}","url":"{{ document.url | absolute_url }}"} -{%- unless forloop.last %},{% endunless -%} -{%- endfor -%} -]} -{%- unless forloop.last %},{% endunless -%} -{%- endfor -%} -] diff --git a/index.md b/index.md deleted file mode 100644 index 79b0119e..00000000 --- a/index.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: home -title: HMCL 新手导航 -author: wifi-left ---- - - -> [!NOTE] -> -> -> The articles were written in Simplified Chinese. If you want to help translate them, please send a pull request to [HMCL-docs/pulls](https://github.com/HMCL-dev/HMCL-docs/pulls). Or you can enable your translation tool to read.\ -> If you encounter a BUG, please send feedback in time to [HMCL/issues](https://github.com/HMCL-dev/HMCL/issues).\ -> You can also submit your suggestions here. - - -> [!NOTE] -> 如果您遇到 BUG,请及时在 [HMCL/issues](https://github.com/HMCL-dev/HMCL/issues) 发送反馈。\ -> 您也可以在这里提交您的建议。 diff --git a/package.json b/package.json new file mode 100644 index 00000000..d1c065e9 --- /dev/null +++ b/package.json @@ -0,0 +1,32 @@ +{ + "name": "hmcl-docs", + "type": "module", + "version": "0.0.1", + "scripts": { + "dev": "astro dev", + "start": "astro dev", + "build": "astro check && astro build", + "preview": "astro preview", + "astro": "astro", + "format": "prettier --write ." + }, + "dependencies": { + "@astrojs/check": "^0.9.6", + "@astrojs/react": "^4.4.2", + "@astrojs/starlight": "0.37.6", + "@types/react": "^19.2.9", + "@types/react-dom": "^19.2.3", + "astro": "5.17.1", + "csv-parse": "^6.1.0", + "qrcode": "^1.5.4", + "react": "^19.2.3", + "react-dom": "^19.2.3", + "sharp": "^0.34.2", + "typescript": "^5.9.3" + }, + "devDependencies": { + "@types/qrcode": "^1.5.6", + "prettier": "3.8.1", + "prettier-plugin-astro": "0.14.1" + } +} diff --git a/assets/img/docs/fabric_and_optifine_install/1.gif b/public/assets/image/docs/launcher/fabric-and-optifine-install/1.gif similarity index 100% rename from assets/img/docs/fabric_and_optifine_install/1.gif rename to public/assets/image/docs/launcher/fabric-and-optifine-install/1.gif diff --git "a/assets/img/hmcl/\350\207\252\345\212\250\347\256\241\347\220\206\346\211\200\346\234\211\351\251\261\345\212\250\345\231\250\345\210\206\351\241\265\346\226\207\344\273\266\345\244\247\345\260\217.webp" "b/public/assets/img/hmcl/\350\207\252\345\212\250\347\256\241\347\220\206\346\211\200\346\234\211\351\251\261\345\212\250\345\231\250\345\210\206\351\241\265\346\226\207\344\273\266\345\244\247\345\260\217.webp" similarity index 100% rename from "assets/img/hmcl/\350\207\252\345\212\250\347\256\241\347\220\206\346\211\200\346\234\211\351\251\261\345\212\250\345\231\250\345\210\206\351\241\265\346\226\207\344\273\266\345\244\247\345\260\217.webp" rename to "public/assets/img/hmcl/\350\207\252\345\212\250\347\256\241\347\220\206\346\211\200\346\234\211\351\251\261\345\212\250\345\231\250\345\210\206\351\241\265\346\226\207\344\273\266\345\244\247\345\260\217.webp" diff --git a/favicon.ico b/public/favicon.ico similarity index 100% rename from favicon.ico rename to public/favicon.ico diff --git a/redirects/hmcl-snapshot-update.yml b/redirects/hmcl-snapshot-update.yml deleted file mode 100644 index 4cb43d2b..00000000 --- a/redirects/hmcl-snapshot-update.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -permalink: /downloads/hmcl-snapshot-update.html -redirect_to: https://hmcl-snapshot-update.netlify.app ---- diff --git a/settings.yaml b/settings.yaml deleted file mode 100644 index d8d79aed..00000000 --- a/settings.yaml +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: 设置 -layout: settings -permalink: /settings.html -data: - - title: 外观 - settings: - appearance_color: - title: 颜色模式 - description: 用于切换站点主题颜色模式。 - options: - light: 亮色 - dark: 暗色 - auto: 自动 - appearance_skin_light: - title: 亮色皮肤 - description: 亮色模式下应用的皮肤。 - options: - default: 默认 - air: 天空 - aqua: 水蓝 - contrast: 高对比 - dark: 暗色 - dirt: 泥土 - neon: 霓虹 - mint: 薄荷 - plum: 梅紫 - sunrise: 日出 - appearance_skin_dark: - title: 暗色皮肤 - description: 暗色模式下应用的皮肤。 - options: - default: 默认 - air: 天空 - aqua: 水蓝 - contrast: 高对比 - dark: 暗色 - dirt: 泥土 - neon: 霓虹 - mint: 薄荷 - plum: 梅紫 - sunrise: 日出 ---- diff --git a/assets/img/docs/auto-installing/AutoInstaller_ModAutoAdding.png b/src/assets/image/docs/auto-installing/AutoInstaller_ModAutoAdding.png similarity index 100% rename from assets/img/docs/auto-installing/AutoInstaller_ModAutoAdding.png rename to src/assets/image/docs/auto-installing/AutoInstaller_ModAutoAdding.png diff --git a/assets/img/docs/auto-installing/AutoInstaller_ModLoader.png b/src/assets/image/docs/auto-installing/AutoInstaller_ModLoader.png similarity index 100% rename from assets/img/docs/auto-installing/AutoInstaller_ModLoader.png rename to src/assets/image/docs/auto-installing/AutoInstaller_ModLoader.png diff --git a/assets/img/docs/auto-installing/AutoInstaller_ModManualAdding.png b/src/assets/image/docs/auto-installing/AutoInstaller_ModManualAdding.png similarity index 100% rename from assets/img/docs/auto-installing/AutoInstaller_ModManualAdding.png rename to src/assets/image/docs/auto-installing/AutoInstaller_ModManualAdding.png diff --git a/assets/img/docs/fabric_and_optifine_install/11.gif b/src/assets/image/docs/fabric-and-optifine-install/11.gif similarity index 100% rename from assets/img/docs/fabric_and_optifine_install/11.gif rename to src/assets/image/docs/fabric-and-optifine-install/11.gif diff --git a/assets/img/docs/fabric_and_optifine_install/2.png b/src/assets/image/docs/fabric-and-optifine-install/2.png similarity index 100% rename from assets/img/docs/fabric_and_optifine_install/2.png rename to src/assets/image/docs/fabric-and-optifine-install/2.png diff --git a/assets/img/docs/fabric_and_optifine_install/5.png b/src/assets/image/docs/fabric-and-optifine-install/5.png similarity index 100% rename from assets/img/docs/fabric_and_optifine_install/5.png rename to src/assets/image/docs/fabric-and-optifine-install/5.png diff --git a/assets/img/docs/fabric_and_optifine_install/6.png b/src/assets/image/docs/fabric-and-optifine-install/6.png similarity index 100% rename from assets/img/docs/fabric_and_optifine_install/6.png rename to src/assets/image/docs/fabric-and-optifine-install/6.png diff --git a/assets/img/docs/fabric_and_optifine_install/7.png b/src/assets/image/docs/fabric-and-optifine-install/7.png similarity index 100% rename from assets/img/docs/fabric_and_optifine_install/7.png rename to src/assets/image/docs/fabric-and-optifine-install/7.png diff --git a/assets/img/docs/fabric_and_optifine_install/8.png b/src/assets/image/docs/fabric-and-optifine-install/8.png similarity index 100% rename from assets/img/docs/fabric_and_optifine_install/8.png rename to src/assets/image/docs/fabric-and-optifine-install/8.png diff --git a/assets/img/docs/fabric_and_optifine_install/9.png b/src/assets/image/docs/fabric-and-optifine-install/9.png similarity index 100% rename from assets/img/docs/fabric_and_optifine_install/9.png rename to src/assets/image/docs/fabric-and-optifine-install/9.png diff --git a/assets/img/docs/faq/img1.png b/src/assets/image/docs/faq/img1.png similarity index 100% rename from assets/img/docs/faq/img1.png rename to src/assets/image/docs/faq/img1.png diff --git a/assets/img/docs/faq/img2.png b/src/assets/image/docs/faq/img2.png similarity index 100% rename from assets/img/docs/faq/img2.png rename to src/assets/image/docs/faq/img2.png diff --git a/assets/img/docs/faq/img3.png b/src/assets/image/docs/faq/img3.png similarity index 100% rename from assets/img/docs/faq/img3.png rename to src/assets/image/docs/faq/img3.png diff --git a/assets/img/docs/faq/img4.png b/src/assets/image/docs/faq/img4.png similarity index 100% rename from assets/img/docs/faq/img4.png rename to src/assets/image/docs/faq/img4.png diff --git a/assets/img/docs/faq/img5.jpg b/src/assets/image/docs/faq/img5.jpg similarity index 100% rename from assets/img/docs/faq/img5.jpg rename to src/assets/image/docs/faq/img5.jpg diff --git a/assets/img/docs/java-download-pages/macos-arm64-1.gif b/src/assets/image/docs/java-download-pages/macos-arm64-1.gif similarity index 100% rename from assets/img/docs/java-download-pages/macos-arm64-1.gif rename to src/assets/image/docs/java-download-pages/macos-arm64-1.gif diff --git a/assets/img/docs/java-download-pages/macos-x86_64-1.gif b/src/assets/image/docs/java-download-pages/macos-x86_64-1.gif similarity index 100% rename from assets/img/docs/java-download-pages/macos-x86_64-1.gif rename to src/assets/image/docs/java-download-pages/macos-x86_64-1.gif diff --git a/assets/img/docs/java-download-pages/windows-x86-1.gif b/src/assets/image/docs/java-download-pages/windows-x86-1.gif similarity index 100% rename from assets/img/docs/java-download-pages/windows-x86-1.gif rename to src/assets/image/docs/java-download-pages/windows-x86-1.gif diff --git a/assets/img/docs/java-download-pages/windows-x86-2.gif b/src/assets/image/docs/java-download-pages/windows-x86-2.gif similarity index 100% rename from assets/img/docs/java-download-pages/windows-x86-2.gif rename to src/assets/image/docs/java-download-pages/windows-x86-2.gif diff --git a/assets/img/docs/java-download-pages/windows-x86-3.gif b/src/assets/image/docs/java-download-pages/windows-x86-3.gif similarity index 100% rename from assets/img/docs/java-download-pages/windows-x86-3.gif rename to src/assets/image/docs/java-download-pages/windows-x86-3.gif diff --git a/assets/img/docs/java-download-pages/windows-x86_64-1.gif b/src/assets/image/docs/java-download-pages/windows-x86_64-1.gif similarity index 100% rename from assets/img/docs/java-download-pages/windows-x86_64-1.gif rename to src/assets/image/docs/java-download-pages/windows-x86_64-1.gif diff --git a/assets/img/docs/java-download-pages/windows-x86_64-2.gif b/src/assets/image/docs/java-download-pages/windows-x86_64-2.gif similarity index 100% rename from assets/img/docs/java-download-pages/windows-x86_64-2.gif rename to src/assets/image/docs/java-download-pages/windows-x86_64-2.gif diff --git a/assets/img/docs/launcher/gui-features/global.png b/src/assets/image/docs/launcher/gui-features/global.png similarity index 100% rename from assets/img/docs/launcher/gui-features/global.png rename to src/assets/image/docs/launcher/gui-features/global.png diff --git a/assets/img/docs/launcher/gui-features/home-launch.png b/src/assets/image/docs/launcher/gui-features/home-launch.png similarity index 100% rename from assets/img/docs/launcher/gui-features/home-launch.png rename to src/assets/image/docs/launcher/gui-features/home-launch.png diff --git a/assets/img/docs/launcher/gui-features/home-sidebar.png b/src/assets/image/docs/launcher/gui-features/home-sidebar.png similarity index 100% rename from assets/img/docs/launcher/gui-features/home-sidebar.png rename to src/assets/image/docs/launcher/gui-features/home-sidebar.png diff --git a/assets/img/docs/launcher/gui-features/home-tip.png b/src/assets/image/docs/launcher/gui-features/home-tip.png similarity index 100% rename from assets/img/docs/launcher/gui-features/home-tip.png rename to src/assets/image/docs/launcher/gui-features/home-tip.png diff --git a/assets/img/docs/launcher/gui-features/home-update.png b/src/assets/image/docs/launcher/gui-features/home-update.png similarity index 100% rename from assets/img/docs/launcher/gui-features/home-update.png rename to src/assets/image/docs/launcher/gui-features/home-update.png diff --git a/assets/img/docs/launcher/gui-features/home.png b/src/assets/image/docs/launcher/gui-features/home.png similarity index 100% rename from assets/img/docs/launcher/gui-features/home.png rename to src/assets/image/docs/launcher/gui-features/home.png diff --git a/assets/img/docs/launcher/gui-features/settings-global.png b/src/assets/image/docs/launcher/gui-features/settings-global.png similarity index 100% rename from assets/img/docs/launcher/gui-features/settings-global.png rename to src/assets/image/docs/launcher/gui-features/settings-global.png diff --git a/assets/img/docs/launcher/gui-features/settings.png b/src/assets/image/docs/launcher/gui-features/settings.png similarity index 100% rename from assets/img/docs/launcher/gui-features/settings.png rename to src/assets/image/docs/launcher/gui-features/settings.png diff --git a/assets/img/docs/launcher/gui-features/topbar.png b/src/assets/image/docs/launcher/gui-features/topbar.png similarity index 100% rename from assets/img/docs/launcher/gui-features/topbar.png rename to src/assets/image/docs/launcher/gui-features/topbar.png diff --git a/assets/img/docs/isolation/img1.png b/src/assets/image/docs/launcher/isolation/1.png similarity index 100% rename from assets/img/docs/isolation/img1.png rename to src/assets/image/docs/launcher/isolation/1.png diff --git a/assets/img/docs/isolation/img2.png b/src/assets/image/docs/launcher/isolation/2.png similarity index 100% rename from assets/img/docs/isolation/img2.png rename to src/assets/image/docs/launcher/isolation/2.png diff --git a/assets/img/docs/isolation/img3.png b/src/assets/image/docs/launcher/isolation/3.png similarity index 100% rename from assets/img/docs/isolation/img3.png rename to src/assets/image/docs/launcher/isolation/3.png diff --git a/assets/img/docs/modpack-in-java/2-4.png b/src/assets/image/docs/modpack/bundled-java/1.png similarity index 100% rename from assets/img/docs/modpack-in-java/2-4.png rename to src/assets/image/docs/modpack/bundled-java/1.png diff --git a/assets/img/docs/modpack-in-java/2-5.png b/src/assets/image/docs/modpack/bundled-java/2.png similarity index 100% rename from assets/img/docs/modpack-in-java/2-5.png rename to src/assets/image/docs/modpack/bundled-java/2.png diff --git a/assets/img/docs/modpack-in-java/2-6.png b/src/assets/image/docs/modpack/bundled-java/3.png similarity index 100% rename from assets/img/docs/modpack-in-java/2-6.png rename to src/assets/image/docs/modpack/bundled-java/3.png diff --git a/assets/img/docs/modpack-in-java/2-7.png b/src/assets/image/docs/modpack/bundled-java/4.png similarity index 100% rename from assets/img/docs/modpack-in-java/2-7.png rename to src/assets/image/docs/modpack/bundled-java/4.png diff --git a/assets/img/docs/error-handbook/image.png b/src/assets/image/docs/modpack/error-handbook/image.png similarity index 100% rename from assets/img/docs/error-handbook/image.png rename to src/assets/image/docs/modpack/error-handbook/image.png diff --git a/assets/img/docs/offline-skin/img1_1.png b/src/assets/image/docs/offline-skin/img1_1.png similarity index 100% rename from assets/img/docs/offline-skin/img1_1.png rename to src/assets/image/docs/offline-skin/img1_1.png diff --git a/assets/img/docs/offline-skin/img1_2.png b/src/assets/image/docs/offline-skin/img1_2.png similarity index 100% rename from assets/img/docs/offline-skin/img1_2.png rename to src/assets/image/docs/offline-skin/img1_2.png diff --git a/assets/img/docs/offline-skin/img2.png b/src/assets/image/docs/offline-skin/img2.png similarity index 100% rename from assets/img/docs/offline-skin/img2.png rename to src/assets/image/docs/offline-skin/img2.png diff --git a/assets/img/docs/offline-skin/img3_1.png b/src/assets/image/docs/offline-skin/img3_1.png similarity index 100% rename from assets/img/docs/offline-skin/img3_1.png rename to src/assets/image/docs/offline-skin/img3_1.png diff --git a/assets/img/docs/offline-skin/img3_2.png b/src/assets/image/docs/offline-skin/img3_2.png similarity index 100% rename from assets/img/docs/offline-skin/img3_2.png rename to src/assets/image/docs/offline-skin/img3_2.png diff --git a/assets/img/docs/offline-skin/img3_3.png b/src/assets/image/docs/offline-skin/img3_3.png similarity index 100% rename from assets/img/docs/offline-skin/img3_3.png rename to src/assets/image/docs/offline-skin/img3_3.png diff --git a/assets/img/docs/offline-skin/img4_1.png b/src/assets/image/docs/offline-skin/img4_1.png similarity index 100% rename from assets/img/docs/offline-skin/img4_1.png rename to src/assets/image/docs/offline-skin/img4_1.png diff --git a/assets/img/docs/offline-skin/img4_2.png b/src/assets/image/docs/offline-skin/img4_2.png similarity index 100% rename from assets/img/docs/offline-skin/img4_2.png rename to src/assets/image/docs/offline-skin/img4_2.png diff --git a/assets/img/docs/offline-skin/img4_3.png b/src/assets/image/docs/offline-skin/img4_3.png similarity index 100% rename from assets/img/docs/offline-skin/img4_3.png rename to src/assets/image/docs/offline-skin/img4_3.png diff --git a/assets/img/docs/serverpack/img1.png b/src/assets/image/docs/serverpack/img1.png similarity index 100% rename from assets/img/docs/serverpack/img1.png rename to src/assets/image/docs/serverpack/img1.png diff --git a/assets/img/docs/serverpack/img2.png b/src/assets/image/docs/serverpack/img2.png similarity index 100% rename from assets/img/docs/serverpack/img2.png rename to src/assets/image/docs/serverpack/img2.png diff --git a/assets/img/docs/serverpack/img3.png b/src/assets/image/docs/serverpack/img3.png similarity index 100% rename from assets/img/docs/serverpack/img3.png rename to src/assets/image/docs/serverpack/img3.png diff --git a/assets/img/docs/serverpack/img4.png b/src/assets/image/docs/serverpack/img4.png similarity index 100% rename from assets/img/docs/serverpack/img4.png rename to src/assets/image/docs/serverpack/img4.png diff --git a/assets/img/docs/serverpack/img5.png b/src/assets/image/docs/serverpack/img5.png similarity index 100% rename from assets/img/docs/serverpack/img5.png rename to src/assets/image/docs/serverpack/img5.png diff --git a/assets/img/docs/serverpack/img6.png b/src/assets/image/docs/serverpack/img6.png similarity index 100% rename from assets/img/docs/serverpack/img6.png rename to src/assets/image/docs/serverpack/img6.png diff --git a/assets/img/docs/serverpack2/2.1.jpg b/src/assets/image/docs/serverpack2/2.1.jpg similarity index 100% rename from assets/img/docs/serverpack2/2.1.jpg rename to src/assets/image/docs/serverpack2/2.1.jpg diff --git a/assets/img/docs/serverpack2/2.2.jpg b/src/assets/image/docs/serverpack2/2.2.jpg similarity index 100% rename from assets/img/docs/serverpack2/2.2.jpg rename to src/assets/image/docs/serverpack2/2.2.jpg diff --git a/assets/img/docs/serverpack2/2.3.jpg b/src/assets/image/docs/serverpack2/2.3.jpg similarity index 100% rename from assets/img/docs/serverpack2/2.3.jpg rename to src/assets/image/docs/serverpack2/2.3.jpg diff --git a/assets/img/docs/serverpack2/2.4.jpg b/src/assets/image/docs/serverpack2/2.4.jpg similarity index 100% rename from assets/img/docs/serverpack2/2.4.jpg rename to src/assets/image/docs/serverpack2/2.4.jpg diff --git a/assets/img/docs/serverpack2/2.5.jpg b/src/assets/image/docs/serverpack2/2.5.jpg similarity index 100% rename from assets/img/docs/serverpack2/2.5.jpg rename to src/assets/image/docs/serverpack2/2.5.jpg diff --git a/assets/img/docs/serverpack2/2.6.jpg b/src/assets/image/docs/serverpack2/2.6.jpg similarity index 100% rename from assets/img/docs/serverpack2/2.6.jpg rename to src/assets/image/docs/serverpack2/2.6.jpg diff --git a/assets/img/docs/serverpack2/2.7.jpg b/src/assets/image/docs/serverpack2/2.7.jpg similarity index 100% rename from assets/img/docs/serverpack2/2.7.jpg rename to src/assets/image/docs/serverpack2/2.7.jpg diff --git a/assets/img/docs/serverpack2/2.8.jpg b/src/assets/image/docs/serverpack2/2.8.jpg similarity index 100% rename from assets/img/docs/serverpack2/2.8.jpg rename to src/assets/image/docs/serverpack2/2.8.jpg diff --git a/assets/img/docs/serverpack2/3.1.jpg b/src/assets/image/docs/serverpack2/3.1.jpg similarity index 100% rename from assets/img/docs/serverpack2/3.1.jpg rename to src/assets/image/docs/serverpack2/3.1.jpg diff --git a/assets/img/docs/serverpack2/3.2.jpg b/src/assets/image/docs/serverpack2/3.2.jpg similarity index 100% rename from assets/img/docs/serverpack2/3.2.jpg rename to src/assets/image/docs/serverpack2/3.2.jpg diff --git a/assets/img/docs/serverpack2/4.1.jpg b/src/assets/image/docs/serverpack2/4.1.jpg similarity index 100% rename from assets/img/docs/serverpack2/4.1.jpg rename to src/assets/image/docs/serverpack2/4.1.jpg diff --git a/assets/img/docs/serverpack2/4.2.jpg b/src/assets/image/docs/serverpack2/4.2.jpg similarity index 100% rename from assets/img/docs/serverpack2/4.2.jpg rename to src/assets/image/docs/serverpack2/4.2.jpg diff --git a/assets/img/docs/serverpack2/5.1.jpg b/src/assets/image/docs/serverpack2/5.1.jpg similarity index 100% rename from assets/img/docs/serverpack2/5.1.jpg rename to src/assets/image/docs/serverpack2/5.1.jpg diff --git a/assets/img/docs/serverpack2/5.2.jpg b/src/assets/image/docs/serverpack2/5.2.jpg similarity index 100% rename from assets/img/docs/serverpack2/5.2.jpg rename to src/assets/image/docs/serverpack2/5.2.jpg diff --git a/assets/img/docs/shader/change_path.png b/src/assets/image/docs/shader/change_path.png similarity index 100% rename from assets/img/docs/shader/change_path.png rename to src/assets/image/docs/shader/change_path.png diff --git a/assets/img/docs/shader/game_dir.png b/src/assets/image/docs/shader/game_dir.png similarity index 100% rename from assets/img/docs/shader/game_dir.png rename to src/assets/image/docs/shader/game_dir.png diff --git a/assets/img/docs/shader/install_auto-16338577874692.png b/src/assets/image/docs/shader/install_auto-16338577874692.png similarity index 100% rename from assets/img/docs/shader/install_auto-16338577874692.png rename to src/assets/image/docs/shader/install_auto-16338577874692.png diff --git a/assets/img/docs/shader/install_auto.png b/src/assets/image/docs/shader/install_auto.png similarity index 100% rename from assets/img/docs/shader/install_auto.png rename to src/assets/image/docs/shader/install_auto.png diff --git a/assets/img/docs/shader/iris.png b/src/assets/image/docs/shader/iris.png similarity index 100% rename from assets/img/docs/shader/iris.png rename to src/assets/image/docs/shader/iris.png diff --git a/assets/img/docs/shader/oculus.png b/src/assets/image/docs/shader/oculus.png similarity index 100% rename from assets/img/docs/shader/oculus.png rename to src/assets/image/docs/shader/oculus.png diff --git a/assets/img/docs/shader/optifine_compatibility.png b/src/assets/image/docs/shader/optifine_compatibility.png similarity index 100% rename from assets/img/docs/shader/optifine_compatibility.png rename to src/assets/image/docs/shader/optifine_compatibility.png diff --git a/assets/img/docs/shader/optifine_install.png b/src/assets/image/docs/shader/optifine_install.png similarity index 100% rename from assets/img/docs/shader/optifine_install.png rename to src/assets/image/docs/shader/optifine_install.png diff --git a/assets/img/docs/shader/select_optifine-16338577687881.png b/src/assets/image/docs/shader/select_optifine-16338577687881.png similarity index 100% rename from assets/img/docs/shader/select_optifine-16338577687881.png rename to src/assets/image/docs/shader/select_optifine-16338577687881.png diff --git a/assets/img/docs/shader/select_optifine.png b/src/assets/image/docs/shader/select_optifine.png similarity index 100% rename from assets/img/docs/shader/select_optifine.png rename to src/assets/image/docs/shader/select_optifine.png diff --git a/assets/img/docs/shader/shaders_setting.png b/src/assets/image/docs/shader/shaders_setting.png similarity index 100% rename from assets/img/docs/shader/shaders_setting.png rename to src/assets/image/docs/shader/shaders_setting.png diff --git a/assets/img/docs/use-password-login-microsoft-account/1.png b/src/assets/image/docs/use-password-login-microsoft-account/1.png similarity index 100% rename from assets/img/docs/use-password-login-microsoft-account/1.png rename to src/assets/image/docs/use-password-login-microsoft-account/1.png diff --git a/assets/img/docs/use-password-login-microsoft-account/2.png b/src/assets/image/docs/use-password-login-microsoft-account/2.png similarity index 100% rename from assets/img/docs/use-password-login-microsoft-account/2.png rename to src/assets/image/docs/use-password-login-microsoft-account/2.png diff --git a/assets/img/docs/use-password-login-microsoft-account/3.png b/src/assets/image/docs/use-password-login-microsoft-account/3.png similarity index 100% rename from assets/img/docs/use-password-login-microsoft-account/3.png rename to src/assets/image/docs/use-password-login-microsoft-account/3.png diff --git a/assets/img/docs/use-password-login-microsoft-account/4.png b/src/assets/image/docs/use-password-login-microsoft-account/4.png similarity index 100% rename from assets/img/docs/use-password-login-microsoft-account/4.png rename to src/assets/image/docs/use-password-login-microsoft-account/4.png diff --git a/src/assets/image/hmcl-main.png b/src/assets/image/hmcl-main.png new file mode 100644 index 00000000..238ff686 Binary files /dev/null and b/src/assets/image/hmcl-main.png differ diff --git a/assets/img/hmcl.png b/src/assets/image/hmcl.png similarity index 100% rename from assets/img/hmcl.png rename to src/assets/image/hmcl.png diff --git a/src/assets/landing.css b/src/assets/landing.css new file mode 100644 index 00000000..5ead94b7 --- /dev/null +++ b/src/assets/landing.css @@ -0,0 +1,27 @@ +:root { + --purple-hsl: 255, 60%, 60%; + --overlay-blurple: hsla(var(--purple-hsl), 0.2); +} + +:root[data-theme="light"] { + --purple-hsl: 255, 85%, 65%; +} + +[data-has-hero] .page { + background: + linear-gradient(215deg, var(--overlay-blurple), transparent 40%), + radial-gradient(var(--overlay-blurple), transparent 40%) no-repeat -60vw -40vh / 105vw 200vh, + radial-gradient(var(--overlay-blurple), transparent 65%) no-repeat 50% calc(100% + 20rem) / + 60rem 30rem; +} + +[data-has-hero] header { + border-bottom: 1px solid transparent; + background-color: transparent; + -webkit-backdrop-filter: blur(16px); + backdrop-filter: blur(16px); +} + +[data-has-hero] .hero > img { + filter: drop-shadow(0 0 3rem var(--overlay-blurple)); +} diff --git a/src/components/AgreeCrashSupportGroupRules.astro b/src/components/AgreeCrashSupportGroupRules.astro new file mode 100644 index 00000000..12dbcb3e --- /dev/null +++ b/src/components/AgreeCrashSupportGroupRules.astro @@ -0,0 +1,41 @@ +--- +import Qrcode from "@components/Qrcode.astro"; +--- + +
+ + + +
+ + + + diff --git a/src/components/Bilibili.astro b/src/components/Bilibili.astro new file mode 100644 index 00000000..2959b0f1 --- /dev/null +++ b/src/components/Bilibili.astro @@ -0,0 +1,32 @@ +--- +interface Props { + id: string; +} + +const { id } = Astro.props; +--- + +
+ +
+ + diff --git a/src/components/Changelogs.astro b/src/components/Changelogs.astro new file mode 100644 index 00000000..3c3b0e77 --- /dev/null +++ b/src/components/Changelogs.astro @@ -0,0 +1,27 @@ +--- +import AnchorHeading from "@astrojs/starlight/components/AnchorHeading.astro"; +let currentRootVersion: string | undefined = undefined; +const list = Astro.locals.starlightRoute.entry.data.changelogs!; +--- + +{ + list.map(({ rootVersion, version, html }) => { + const showRootVersion = currentRootVersion !== rootVersion; + if (showRootVersion) { + currentRootVersion = rootVersion; + } + return ( + <> + {showRootVersion && ( + + HMCL {rootVersion} + + )} + + HMCL {version} + +
+ + ); + }) +} diff --git a/src/components/FooterLinks.astro b/src/components/FooterLinks.astro new file mode 100644 index 00000000..4eb3345b --- /dev/null +++ b/src/components/FooterLinks.astro @@ -0,0 +1,47 @@ +--- +const year = new Date().getFullYear(); + +const showICP = import.meta.env.PUBLIC_SITE_URL === "https://docs.hmcl.net"; +--- + +
+ {showICP && 粤ICP备18071565号} + © {year} + huanghongxun +
+ + + + diff --git a/src/components/Groups.astro b/src/components/Groups.astro new file mode 100644 index 00000000..388cc0fa --- /dev/null +++ b/src/components/Groups.astro @@ -0,0 +1,28 @@ +--- +import { getCollection } from "astro:content"; +import Qrcode from "@components/Qrcode.astro"; + +const groups = await getCollection("groups"); +let flag = false; +--- + +{ + groups.map(({ data }) => { + let open = false; + if (!flag && data.status === "") { + flag = true; + open = true; + } + return ( +
+ + + {data.name} + {data.status.length > 0 && `(${data.status})`} + + + +
+ ); + }) +} diff --git a/src/components/Qrcode.astro b/src/components/Qrcode.astro new file mode 100644 index 00000000..b68fee3e --- /dev/null +++ b/src/components/Qrcode.astro @@ -0,0 +1,36 @@ +--- +import qrcode from "qrcode"; + +export interface Props { + url: string; + size?: number; + color?: string; + background?: string; + margin?: number; +} + +const { + url, + size = 256, + color = "var(--sl-color-text)", + background = "#00000000", + margin = 0, +} = Astro.props; + +const svg = await qrcode.toString(url, { + type: "svg", + width: size, + margin, +}); +--- + +
+ + diff --git a/src/components/UnofficialSiteAlert.astro b/src/components/UnofficialSiteAlert.astro new file mode 100644 index 00000000..893bd3b1 --- /dev/null +++ b/src/components/UnofficialSiteAlert.astro @@ -0,0 +1,16 @@ +--- + +--- + +
+ 您正在访问第三方构建的文档站。如需查看官方文档,请点击此处跳转。 +
+ + diff --git a/src/components/react/AutoRedirect.tsx b/src/components/react/AutoRedirect.tsx new file mode 100644 index 00000000..299bd3e6 --- /dev/null +++ b/src/components/react/AutoRedirect.tsx @@ -0,0 +1,75 @@ +import React from "react"; + +export type Props = { + delay: number; + text: string; + href: string; +}; + +const AutoRedirect: React.FC = ({ delay, text, href }) => { + const [visible, setVisible] = React.useState(true); + const [countdown, setCountdown] = React.useState(delay); + + const timerRef = React.useRef(null); + + React.useEffect(() => { + if (delay > 0) { + timerRef.current = window.setInterval(() => { + setCountdown((prev) => { + if (prev <= 1) { + clear(); + location.href = href; + return 0; + } + return prev - 1; + }); + }, 1000); + return clear; + } + }, []); + + const clear = () => { + if (timerRef.current !== null) { + clearInterval(timerRef.current); + timerRef.current = null; + } + }; + + const cancel = () => { + clear(); + setVisible(false); + }; + + if (!visible || delay <= 0) { + return null; + } + + return ( +
+ {"页面将在 "} + {countdown} + {" 秒后自动跳转到"} + {text} + {",您也可以手动"} + + {"取消跳转"} + + 。 +
+ ); +}; + +export default AutoRedirect; diff --git a/src/components/react/HitsInfo.tsx b/src/components/react/HitsInfo.tsx new file mode 100644 index 00000000..934a3fe3 --- /dev/null +++ b/src/components/react/HitsInfo.tsx @@ -0,0 +1,65 @@ +import React from "react"; + +export type Props = { + tag: string; + today: string; + total: string; + ok: string; + error: string; + loading: string; +}; + +type State = "ok" | "error" | "loading"; + +type Data = { + today: string; + total: string; +}; + +const HitsInfo: React.FC = ({ + tag, + today: todayLabel, + total: totalLabel, + ok, + error, + loading, +}) => { + const [state, setState] = React.useState("loading"); + const [data, setData] = React.useState(null); + React.useEffect(() => { + const hitsUrl = new URL("https://hits.zkitefly.eu.org"); + hitsUrl.searchParams.set("tag", tag); + + fetch(hitsUrl, { method: "HEAD" }) + .then((response) => { + if (response.status === 200) { + const { headers } = response; + const total = headers.get("X-Total-Hits"); + const today = headers.get("X-Today-Hits"); + if (total !== null && today !== null) { + setData({ total, today }); + setState("ok"); + return; + } + } + setState("error"); + }) + .catch(() => { + setState("error"); + }); + }, []); + + if (data === null) { + return <>{state === "ok" ? ok : state === "error" ? error : loading}; + } + + return ( + <> + {data.today} + {" / "} + {data.total} + + ); +}; + +export default HitsInfo; diff --git a/src/components/starlight/Banner.astro b/src/components/starlight/Banner.astro new file mode 100644 index 00000000..0794f122 --- /dev/null +++ b/src/components/starlight/Banner.astro @@ -0,0 +1,10 @@ +--- +import DefaultBanner from "@astrojs/starlight/components/Banner.astro"; +import UnofficialSiteAlert from "@components/UnofficialSiteAlert.astro"; + +const displayUnofficialSiteAlert = import.meta.env.PUBLIC_SITE_URL !== "https://docs.hmcl.net"; +--- + +{displayUnofficialSiteAlert && } + + diff --git a/src/components/starlight/Footer.astro b/src/components/starlight/Footer.astro new file mode 100644 index 00000000..bec30096 --- /dev/null +++ b/src/components/starlight/Footer.astro @@ -0,0 +1,7 @@ +--- +import DefaultFooter from "@astrojs/starlight/components/Footer.astro"; +import FooterLinks from "@components/FooterLinks.astro"; +--- + + + diff --git a/src/components/starlight/PageTitle.astro b/src/components/starlight/PageTitle.astro new file mode 100644 index 00000000..70b148b3 --- /dev/null +++ b/src/components/starlight/PageTitle.astro @@ -0,0 +1,49 @@ +--- +import HitsInfo from "@components/react/HitsInfo"; +import AutoRedirect from "@components/react/AutoRedirect"; +import DefaultPageTitle from "@astrojs/starlight/components/PageTitle.astro"; + +let tag = Astro.url.href; +if (!tag.endsWith("/") && !tag.endsWith(".html")) { + tag += ".html"; +} + +const { autoRedirect, contributors } = Astro.locals.starlightRoute.entry.data; +const showContributors = Array.isArray(contributors) && contributors.length > 0; +--- + +{ + autoRedirect && ( + + ) +} + + + +
+
+ {Astro.locals.t("page.hits.label")} + +
+ { + showContributors && ( +
+ {Astro.locals.t("page.contributors")}{" "} + {contributors.join(" ")} +
+ ) + } +
diff --git a/src/content.config.ts b/src/content.config.ts new file mode 100644 index 00000000..449c1e80 --- /dev/null +++ b/src/content.config.ts @@ -0,0 +1,64 @@ +import { docsLoader, i18nLoader } from "@astrojs/starlight/loaders"; +import { docsSchema, i18nSchema } from "@astrojs/starlight/schema"; +import { defineCollection, z } from "astro:content"; +import { parse as parseCsv } from "csv-parse/sync"; +import { file, glob } from "astro/loaders"; + +export const collections = { + docs: defineCollection({ + loader: docsLoader(), + schema: docsSchema({ + extend: z.object({ + contributors: z.array(z.string()).optional(), + changelogs: z + .array( + z.object({ + rootVersion: z.string(), + version: z.string(), + html: z.string(), + }) + ) + .optional(), + autoRedirect: z + .object({ + delay: z.number(), + text: z.string(), + href: z.string(), + }) + .optional(), + }), + }), + }), + i18n: defineCollection({ + loader: i18nLoader(), + schema: i18nSchema({ + extend: z.object({ + "page.contributors": z.string(), + "page.hits.label": z.string(), + "page.hits.today": z.string(), + "page.hits.total": z.string(), + "page.hits.ok": z.string(), + "page.hits.error": z.string(), + "page.hits.loading": z.string(), + }), + }), + }), + changelogs: defineCollection({ + loader: glob({ + pattern: ["**/*.md"], + base: "src/content/changelogs", + }), + schema: z.object({}), + }), + groups: defineCollection({ + loader: file("src/data/groups.csv", { + parser: (text) => parseCsv(text, { columns: true, skipEmptyLines: true }), + }), + schema: z.object({ + id: z.string(), + name: z.string(), + link: z.string(), + status: z.string(), + }), + }), +}; diff --git a/_changelogs/dev/3.10/3.10.0.315.md b/src/content/changelogs/dev/3.10/3.10.0.315.md similarity index 99% rename from _changelogs/dev/3.10/3.10.0.315.md rename to src/content/changelogs/dev/3.10/3.10.0.315.md index 1fd969a4..02dce553 100644 --- a/_changelogs/dev/3.10/3.10.0.315.md +++ b/src/content/changelogs/dev/3.10/3.10.0.315.md @@ -1,6 +1,3 @@ ---- ---- - [详细版本介绍 (Bilibili)](https://www.bilibili.com/opus/1149333068052430851) - GP-4932: 在主页右键点击账户按钮时弹出快速切换账户菜单 (by zimzaza4) diff --git a/_changelogs/dev/3.10/3.10.0.317.md b/src/content/changelogs/dev/3.10/3.10.0.317.md similarity index 98% rename from _changelogs/dev/3.10/3.10.0.317.md rename to src/content/changelogs/dev/3.10/3.10.0.317.md index f3823802..e94e3cd4 100644 --- a/_changelogs/dev/3.10/3.10.0.317.md +++ b/src/content/changelogs/dev/3.10/3.10.0.317.md @@ -1,6 +1,3 @@ ---- ---- - [详细版本介绍 (Bilibili)](https://www.bilibili.com/opus/1154036684319358993) - GP-4289: 在添加游戏目录页面选择目录时自动填写名称 (by Dime,辞庐,Glavo) @@ -44,4 +41,4 @@ - GP-5117: 修复离线换肤对话框中提示栏和按钮重叠的问题 (by NoClassDefFoundError) - GP-5118: 修复部分平台弹出菜单无法通过点击侧边栏收起的问题 (by 辞庐) - GP-5125: 修复未正确归类 NeoForge alpha 版本的问题 (by 辞庐) -- GP-5128: 修复使用 BMCLAPI 下载源时选择 `Liteloader` 版本时可能报错的问题 (by Wulian233) \ No newline at end of file +- GP-5128: 修复使用 BMCLAPI 下载源时选择 `Liteloader` 版本时可能报错的问题 (by Wulian233) diff --git a/_changelogs/dev/3.10/3.10.0.318.md b/src/content/changelogs/dev/3.10/3.10.0.318.md similarity index 99% rename from _changelogs/dev/3.10/3.10.0.318.md rename to src/content/changelogs/dev/3.10/3.10.0.318.md index 84d3b04c..60b49509 100644 --- a/_changelogs/dev/3.10/3.10.0.318.md +++ b/src/content/changelogs/dev/3.10/3.10.0.318.md @@ -1,6 +1,3 @@ ---- ---- - [详细版本介绍 (Bilibili)](https://www.bilibili.com/opus/1156648660083146756) - GP-4823: 优化世界管理界面和世界信息界面 (by mineDiamond, 3gf8jv4dv) diff --git a/_changelogs/dev/3.10/3.10.0.319.md b/src/content/changelogs/dev/3.10/3.10.0.319.md similarity index 97% rename from _changelogs/dev/3.10/3.10.0.319.md rename to src/content/changelogs/dev/3.10/3.10.0.319.md index babfb907..1ac0873a 100644 --- a/_changelogs/dev/3.10/3.10.0.319.md +++ b/src/content/changelogs/dev/3.10/3.10.0.319.md @@ -1,6 +1,3 @@ ---- ---- - [详细版本介绍 (Bilibili)](https://www.bilibili.com/opus/1158117702119718933) - GP-5208: 惰性初始化 `JFXRippler` 属性 (by Glavo) @@ -12,4 +9,4 @@ 错误修复: - GP-5203: 修复实例列表不显示实例名的问题 (by Xirren) -- GP-5220: 修复 CurseForge 源无法搜索到内容的问题 (by Glavo) \ No newline at end of file +- GP-5220: 修复 CurseForge 源无法搜索到内容的问题 (by Glavo) diff --git a/_changelogs/dev/3.11/3.11.0.321.md b/src/content/changelogs/dev/3.11/3.11.0.321.md similarity index 98% rename from _changelogs/dev/3.11/3.11.0.321.md rename to src/content/changelogs/dev/3.11/3.11.0.321.md index bf4aa7bc..0628521d 100644 --- a/_changelogs/dev/3.11/3.11.0.321.md +++ b/src/content/changelogs/dev/3.11/3.11.0.321.md @@ -1,6 +1,3 @@ ---- ---- - [详细版本介绍 (Bilibili)](https://www.bilibili.com/opus/1160728024302223363) - GP-4792: 优化 Fabric API / Quilt API 安装提示 (by 辞庐, 3gf8jv4dv) @@ -26,4 +23,4 @@ - GP-5261: 修复下载页面选择游戏版本对话框包含 `_unobfuscated` 版本的问题 (by Glavo) - GP-5262: 修复使用 GIF 背景时调整背景不透明度导致启动器崩溃的问题 (by Glavo) - GP-5265: 修复未正确为游戏设置 `java.net.useSystemProxies` JVM 参数的问题 (by Xirren) -- GP-5267: 修复部分场景中解压空 ZIP 文件失败的问题 (by Glavo) \ No newline at end of file +- GP-5267: 修复部分场景中解压空 ZIP 文件失败的问题 (by Glavo) diff --git a/_changelogs/dev/3.11/3.11.0.322.md b/src/content/changelogs/dev/3.11/3.11.0.322.md similarity index 99% rename from _changelogs/dev/3.11/3.11.0.322.md rename to src/content/changelogs/dev/3.11/3.11.0.322.md index 516d6a17..e6c0e082 100644 --- a/_changelogs/dev/3.11/3.11.0.322.md +++ b/src/content/changelogs/dev/3.11/3.11.0.322.md @@ -1,6 +1,3 @@ ---- ---- - [详细版本介绍 (Bilibili)](https://www.bilibili.com/opus/1162588466738888708) - GP-4733: 导出日志时允许重名文件 (by Glavo) diff --git a/_changelogs/dev/3.11/3.11.0.323.md b/src/content/changelogs/dev/3.11/3.11.0.323.md similarity index 99% rename from _changelogs/dev/3.11/3.11.0.323.md rename to src/content/changelogs/dev/3.11/3.11.0.323.md index 35e113ed..ac931926 100644 --- a/_changelogs/dev/3.11/3.11.0.323.md +++ b/src/content/changelogs/dev/3.11/3.11.0.323.md @@ -1,6 +1,3 @@ ---- ---- - [详细版本介绍 (Bilibili)](https://www.bilibili.com/opus/1164826007218159625) - GP-5390: 将 TwelveMonkeys 更新至 3.13.0 (by Glavo) @@ -21,4 +18,3 @@ - GP-5375: 修复部分列表点击后无法通过 esc 返回的问题 (by NoClassDefFoundError) - GP-5379: 修复版本设置页面滚动条总是显示的问题 (by Dime) - GP-5388: 修复导出的 PowerShell 脚本中路径可能无效的问题 (by Xirren) - diff --git a/_changelogs/dev/3.2/3.2.114.md b/src/content/changelogs/dev/3.2/3.2.114.md similarity index 93% rename from _changelogs/dev/3.2/3.2.114.md rename to src/content/changelogs/dev/3.2/3.2.114.md index 94303624..f731ecac 100644 --- a/_changelogs/dev/3.2/3.2.114.md +++ b/src/content/changelogs/dev/3.2/3.2.114.md @@ -1,6 +1,3 @@ ---- ---- - - 修复导入整合包时的乱码问题 - 更新 authlib-injector - 从 Cursemeta 上下载 Curse 上被删除的 Mod 文件 diff --git a/_changelogs/dev/3.2/3.2.115.md b/src/content/changelogs/dev/3.2/3.2.115.md similarity index 91% rename from _changelogs/dev/3.2/3.2.115.md rename to src/content/changelogs/dev/3.2/3.2.115.md index 46c08d90..71f128fd 100644 --- a/_changelogs/dev/3.2/3.2.115.md +++ b/src/content/changelogs/dev/3.2/3.2.115.md @@ -1,5 +1,2 @@ ---- ---- - - 修复安装游戏后不显示游戏的问题 - 修复下载资源文件时潜在的崩溃问题 diff --git a/_changelogs/dev/3.2/3.2.116.md b/src/content/changelogs/dev/3.2/3.2.116.md similarity index 98% rename from _changelogs/dev/3.2/3.2.116.md rename to src/content/changelogs/dev/3.2/3.2.116.md index ba2fd6f7..cc2b5471 100644 --- a/_changelogs/dev/3.2/3.2.116.md +++ b/src/content/changelogs/dev/3.2/3.2.116.md @@ -1,6 +1,3 @@ ---- ---- - - 在缓存目录无效时自动更改设置 - 在安装游戏失败时删除不完全的游戏 - 自动检测整合包、游戏存档、数据包的编码以增强兼容性 diff --git a/_changelogs/dev/3.2/3.2.117.md b/src/content/changelogs/dev/3.2/3.2.117.md similarity index 96% rename from _changelogs/dev/3.2/3.2.117.md rename to src/content/changelogs/dev/3.2/3.2.117.md index 51f2fc76..2b474f75 100644 --- a/_changelogs/dev/3.2/3.2.117.md +++ b/src/content/changelogs/dev/3.2/3.2.117.md @@ -1,6 +1,3 @@ ---- ---- - - 提醒用户在修改版本独立选项时需要注意游戏文件的转移 - 修复 Java 10 上 UI 错位的问题 - 修复游戏认证服务器列表的渲染问题 diff --git a/_changelogs/dev/3.2/3.2.119.md b/src/content/changelogs/dev/3.2/3.2.119.md similarity index 98% rename from _changelogs/dev/3.2/3.2.119.md rename to src/content/changelogs/dev/3.2/3.2.119.md index 8e466bb6..cc08b699 100644 --- a/_changelogs/dev/3.2/3.2.119.md +++ b/src/content/changelogs/dev/3.2/3.2.119.md @@ -1,6 +1,3 @@ ---- ---- - - 添加提示部分版本的 Forge 和 LiteLoader 不兼容的问题 - 在模组管理面板添加加载进度条 - 支持整合包拖拽到主页面打开安装向导 diff --git a/_changelogs/dev/3.2/3.2.120.md b/src/content/changelogs/dev/3.2/3.2.120.md similarity index 81% rename from _changelogs/dev/3.2/3.2.120.md rename to src/content/changelogs/dev/3.2/3.2.120.md index f628566e..918613f8 100644 --- a/_changelogs/dev/3.2/3.2.120.md +++ b/src/content/changelogs/dev/3.2/3.2.120.md @@ -1,4 +1 @@ ---- ---- - - 修复打开版本管理时的崩溃 diff --git a/_changelogs/dev/3.2/3.2.121.md b/src/content/changelogs/dev/3.2/3.2.121.md similarity index 97% rename from _changelogs/dev/3.2/3.2.121.md rename to src/content/changelogs/dev/3.2/3.2.121.md index 25e740f3..2b03c0b8 100644 --- a/_changelogs/dev/3.2/3.2.121.md +++ b/src/content/changelogs/dev/3.2/3.2.121.md @@ -1,6 +1,3 @@ ---- ---- - - 支持 Forge 1.13 的自动安装 - 安装游戏时更新资源文件 - 启动时下载缺失的 Minecraft 本体文件 diff --git a/_changelogs/dev/3.2/3.2.123.md b/src/content/changelogs/dev/3.2/3.2.123.md similarity index 96% rename from _changelogs/dev/3.2/3.2.123.md rename to src/content/changelogs/dev/3.2/3.2.123.md index 32c74bba..ecb0ab39 100644 --- a/_changelogs/dev/3.2/3.2.123.md +++ b/src/content/changelogs/dev/3.2/3.2.123.md @@ -1,6 +1,3 @@ ---- ---- - - 启动前检查是否是 Java 8~10 - 模组管理面板支持多选 - 下载库文件失败时提供更友好的提示 diff --git a/_changelogs/dev/3.2/3.2.124.md b/src/content/changelogs/dev/3.2/3.2.124.md similarity index 91% rename from _changelogs/dev/3.2/3.2.124.md rename to src/content/changelogs/dev/3.2/3.2.124.md index 8853fdec..3a19ba3c 100644 --- a/_changelogs/dev/3.2/3.2.124.md +++ b/src/content/changelogs/dev/3.2/3.2.124.md @@ -1,5 +1,2 @@ ---- ---- - - 修复无法正版登录的问题 - 修复 mods 不是文件夹时无法安装模组的问题 diff --git a/_changelogs/dev/3.2/3.2.126.md b/src/content/changelogs/dev/3.2/3.2.126.md similarity index 96% rename from _changelogs/dev/3.2/3.2.126.md rename to src/content/changelogs/dev/3.2/3.2.126.md index 42827a0a..dff9c23b 100644 --- a/_changelogs/dev/3.2/3.2.126.md +++ b/src/content/changelogs/dev/3.2/3.2.126.md @@ -1,6 +1,3 @@ ---- ---- - - 重构任务执行器 - 修复填写账号时崩溃的问题 - 修复添加账号面板中认证服务器列表显示不正确的问题 diff --git a/_changelogs/dev/3.2/3.2.127.md b/src/content/changelogs/dev/3.2/3.2.127.md similarity index 85% rename from _changelogs/dev/3.2/3.2.127.md rename to src/content/changelogs/dev/3.2/3.2.127.md index 6deae948..c103426a 100644 --- a/_changelogs/dev/3.2/3.2.127.md +++ b/src/content/changelogs/dev/3.2/3.2.127.md @@ -1,4 +1 @@ ---- ---- - - 禁止用户同时安装 Forge 1.13.2 和 OptiFine diff --git a/_changelogs/dev/3.2/3.2.129.md b/src/content/changelogs/dev/3.2/3.2.129.md similarity index 98% rename from _changelogs/dev/3.2/3.2.129.md rename to src/content/changelogs/dev/3.2/3.2.129.md index daeb333e..f65a9ea6 100644 --- a/_changelogs/dev/3.2/3.2.129.md +++ b/src/content/changelogs/dev/3.2/3.2.129.md @@ -1,6 +1,3 @@ ---- ---- - - 在未安装 Mod API 的情况下禁用模组管理面板 - 为自动安装中的 Forge、LiteLoader、OptiFine 添加更新按钮 - 忽略游戏存档名中的颜色转移符 diff --git a/_changelogs/dev/3.2/3.2.130.md b/src/content/changelogs/dev/3.2/3.2.130.md similarity index 98% rename from _changelogs/dev/3.2/3.2.130.md rename to src/content/changelogs/dev/3.2/3.2.130.md index 43b98086..9de63dca 100644 --- a/_changelogs/dev/3.2/3.2.130.md +++ b/src/content/changelogs/dev/3.2/3.2.130.md @@ -1,6 +1,3 @@ ---- ---- - - 添加对 Fabric 模组的管理支持 - 将游戏依赖的动态链接库解压到 .minecraft 中而不是系统临时文件夹 - 在遇到 SocketTimeoutException 时弹窗提示用户超时 diff --git a/_changelogs/dev/3.2/3.2.132.md b/src/content/changelogs/dev/3.2/3.2.132.md similarity index 93% rename from _changelogs/dev/3.2/3.2.132.md rename to src/content/changelogs/dev/3.2/3.2.132.md index 0249bf0d..feaec5e8 100644 --- a/_changelogs/dev/3.2/3.2.132.md +++ b/src/content/changelogs/dev/3.2/3.2.132.md @@ -1,6 +1,3 @@ ---- ---- - - 添加 Fabric 自动安装 - 添加西班牙语 - 支持导出 MultiMC 整合包 diff --git a/_changelogs/dev/3.2/3.2.133.md b/src/content/changelogs/dev/3.2/3.2.133.md similarity index 97% rename from _changelogs/dev/3.2/3.2.133.md rename to src/content/changelogs/dev/3.2/3.2.133.md index 27d56a2c..7970a536 100644 --- a/_changelogs/dev/3.2/3.2.133.md +++ b/src/content/changelogs/dev/3.2/3.2.133.md @@ -1,6 +1,3 @@ ---- ---- - - 新安装的游戏支持修改游戏版本 - 支持在打开启动器后的主页面按回车键启动游戏 - 支持游戏列表内点击列表项进入游戏设置,右键列表项打开游戏管理菜单 diff --git a/_changelogs/dev/3.2/3.2.134.md b/src/content/changelogs/dev/3.2/3.2.134.md similarity index 95% rename from _changelogs/dev/3.2/3.2.134.md rename to src/content/changelogs/dev/3.2/3.2.134.md index 4ade9539..b8de8e58 100644 --- a/_changelogs/dev/3.2/3.2.134.md +++ b/src/content/changelogs/dev/3.2/3.2.134.md @@ -1,6 +1,3 @@ ---- ---- - - 修复了某些情况下无法安装 1.12.2 及以下版本的 Forge 的问题 - 修复输入某些错误的 Java 路径时导致的崩溃 - 修复了浏览 Mod 列表时可能出现的崩溃问题 diff --git a/_changelogs/dev/3.2/3.2.135.md b/src/content/changelogs/dev/3.2/3.2.135.md similarity index 98% rename from _changelogs/dev/3.2/3.2.135.md rename to src/content/changelogs/dev/3.2/3.2.135.md index d8e14975..8eb14216 100644 --- a/_changelogs/dev/3.2/3.2.135.md +++ b/src/content/changelogs/dev/3.2/3.2.135.md @@ -1,6 +1,3 @@ ---- ---- - - 添加 authlib-injectors.json,允许服主将添加账号页面更改为默认添加指定服务器的 Authlib Injector 账户 - 访问 https://www.huangyuhui.net/index.php/2019/09/09/109/ 以查看添加方法 - 检查安装游戏时输入的名称是否符合 Windows 系统需求 diff --git a/_changelogs/dev/3.2/3.2.136.md b/src/content/changelogs/dev/3.2/3.2.136.md similarity index 92% rename from _changelogs/dev/3.2/3.2.136.md rename to src/content/changelogs/dev/3.2/3.2.136.md index c2229a61..25637845 100644 --- a/_changelogs/dev/3.2/3.2.136.md +++ b/src/content/changelogs/dev/3.2/3.2.136.md @@ -1,5 +1,2 @@ ---- ---- - - 修复 tryCacheLibrary 可能导致崩溃的问题 - 修复无法安装 1.14.4 及 1.15 快照的问题 diff --git a/_changelogs/dev/3.2/3.2.137.md b/src/content/changelogs/dev/3.2/3.2.137.md similarity index 96% rename from _changelogs/dev/3.2/3.2.137.md rename to src/content/changelogs/dev/3.2/3.2.137.md index 59707101..84d5b02e 100644 --- a/_changelogs/dev/3.2/3.2.137.md +++ b/src/content/changelogs/dev/3.2/3.2.137.md @@ -1,6 +1,3 @@ ---- ---- - - 更新了英语和俄语翻译 - 修复了一些导致启动器崩溃的问题 - 修复了无法识别 Java 12 的问题 diff --git a/_changelogs/dev/3.2/3.2.138.md b/src/content/changelogs/dev/3.2/3.2.138.md similarity index 97% rename from _changelogs/dev/3.2/3.2.138.md rename to src/content/changelogs/dev/3.2/3.2.138.md index 4db2453e..a827d349 100644 --- a/_changelogs/dev/3.2/3.2.138.md +++ b/src/content/changelogs/dev/3.2/3.2.138.md @@ -1,6 +1,3 @@ ---- ---- - - 添加服务器自动更新整合包,允许服务器远程更新游戏客户端 - 允许直接从给定链接下载整合包并安装 - 日志窗口允许关闭自动滚动 diff --git a/_changelogs/dev/3.2/3.2.139.md b/src/content/changelogs/dev/3.2/3.2.139.md similarity index 94% rename from _changelogs/dev/3.2/3.2.139.md rename to src/content/changelogs/dev/3.2/3.2.139.md index 9f30629b..2a6fca81 100644 --- a/_changelogs/dev/3.2/3.2.139.md +++ b/src/content/changelogs/dev/3.2/3.2.139.md @@ -1,5 +1,2 @@ ---- ---- - - 修复服务器整合包下载时可能丢失文件的问题 - 修复读取 authlib-injectors.json 时对链接格式要求过严的问题 diff --git a/_changelogs/dev/3.2/3.2.143.md b/src/content/changelogs/dev/3.2/3.2.143.md similarity index 97% rename from _changelogs/dev/3.2/3.2.143.md rename to src/content/changelogs/dev/3.2/3.2.143.md index 7dbce9de..d742aeb7 100644 --- a/_changelogs/dev/3.2/3.2.143.md +++ b/src/content/changelogs/dev/3.2/3.2.143.md @@ -1,6 +1,3 @@ ---- ---- - - 修复关闭 JVM 检查时仍然会检查 java.exe 是否合法的问题 - 修复下载服务端整合包没有对链接转义而无法下载的问题 - 修复下载游戏时可能出现的 “HTTP 302” 错误 diff --git a/_changelogs/dev/3.2/3.2.144.md b/src/content/changelogs/dev/3.2/3.2.144.md similarity index 98% rename from _changelogs/dev/3.2/3.2.144.md rename to src/content/changelogs/dev/3.2/3.2.144.md index 655bcb1f..65d44b2b 100644 --- a/_changelogs/dev/3.2/3.2.144.md +++ b/src/content/changelogs/dev/3.2/3.2.144.md @@ -1,6 +1,3 @@ ---- ---- - - 修复导入 HMCL 整合包时无法安装 Forge 的问题 - 修复无法下载 Curse 整合包部分 Mod(如潘马斯)的问题 - 修复下载 Curse 整合包 Mod 失败后会删除整合包的问题 diff --git a/_changelogs/dev/3.2/3.2.145.md b/src/content/changelogs/dev/3.2/3.2.145.md similarity index 94% rename from _changelogs/dev/3.2/3.2.145.md rename to src/content/changelogs/dev/3.2/3.2.145.md index 1e789a7b..04cc06ba 100644 --- a/_changelogs/dev/3.2/3.2.145.md +++ b/src/content/changelogs/dev/3.2/3.2.145.md @@ -1,6 +1,3 @@ ---- ---- - - 修复无法取消下载的问题 - 添加 MCBBS 下载源 - 在资源索引文件不合法时尝试重新下载 diff --git a/_changelogs/dev/3.2/3.2.146.md b/src/content/changelogs/dev/3.2/3.2.146.md similarity index 98% rename from _changelogs/dev/3.2/3.2.146.md rename to src/content/changelogs/dev/3.2/3.2.146.md index fbf63b31..2289f360 100644 --- a/_changelogs/dev/3.2/3.2.146.md +++ b/src/content/changelogs/dev/3.2/3.2.146.md @@ -1,6 +1,3 @@ ---- ---- - - 改进部分错误提示 - 更新繁体中文语言文件 - 修复重复下载游戏依赖文件的问题 diff --git a/_changelogs/dev/3.2/3.2.147.md b/src/content/changelogs/dev/3.2/3.2.147.md similarity index 90% rename from _changelogs/dev/3.2/3.2.147.md rename to src/content/changelogs/dev/3.2/3.2.147.md index 46986fa9..fd71d994 100644 --- a/_changelogs/dev/3.2/3.2.147.md +++ b/src/content/changelogs/dev/3.2/3.2.147.md @@ -1,5 +1,2 @@ ---- ---- - - 修复正版登录失败的问题 - 修复无法正常显示错误信息的问题 diff --git a/_changelogs/dev/3.2/3.2.148.md b/src/content/changelogs/dev/3.2/3.2.148.md similarity index 95% rename from _changelogs/dev/3.2/3.2.148.md rename to src/content/changelogs/dev/3.2/3.2.148.md index a661c76d..c8b17b3c 100644 --- a/_changelogs/dev/3.2/3.2.148.md +++ b/src/content/changelogs/dev/3.2/3.2.148.md @@ -1,6 +1,3 @@ ---- ---- - - 更新 Fabric 的 BMCLAPI 和 MCBBS 下载源支持 - 更新繁体中文语言文件 - 当 Curse 整合包部分 Mod 因服务器上文件不存在而下载失败时不删除游戏 diff --git a/_changelogs/dev/3.2/3.2.149.md b/src/content/changelogs/dev/3.2/3.2.149.md similarity index 93% rename from _changelogs/dev/3.2/3.2.149.md rename to src/content/changelogs/dev/3.2/3.2.149.md index 2a653c2b..8632c5a9 100644 --- a/_changelogs/dev/3.2/3.2.149.md +++ b/src/content/changelogs/dev/3.2/3.2.149.md @@ -1,5 +1,2 @@ ---- ---- - - 在主界面账户栏添加鼠标悬浮提示以查看完整游戏名 - 在主界面账户栏添加鼠标滚轮便捷切换游戏账户 diff --git a/_changelogs/dev/3.2/3.2.150.md b/src/content/changelogs/dev/3.2/3.2.150.md similarity index 98% rename from _changelogs/dev/3.2/3.2.150.md rename to src/content/changelogs/dev/3.2/3.2.150.md index c06e34b5..ad9950d9 100644 --- a/_changelogs/dev/3.2/3.2.150.md +++ b/src/content/changelogs/dev/3.2/3.2.150.md @@ -1,6 +1,3 @@ ---- ---- - - 加快界面动画速度 - 改善游戏下载速度 - 添加清理缓存文件夹按钮 diff --git a/_changelogs/dev/3.2/3.2.151.md b/src/content/changelogs/dev/3.2/3.2.151.md similarity index 94% rename from _changelogs/dev/3.2/3.2.151.md rename to src/content/changelogs/dev/3.2/3.2.151.md index 90605f1a..5d700743 100644 --- a/_changelogs/dev/3.2/3.2.151.md +++ b/src/content/changelogs/dev/3.2/3.2.151.md @@ -1,6 +1,3 @@ ---- ---- - - 修复 3.2.150 部分游戏启动失败的问题 - 修改 Mod、数据包页面的界面样式 - 修复终止游戏后启动器不会停止等待的问题 diff --git a/_changelogs/dev/3.3/3.3.152.md b/src/content/changelogs/dev/3.3/3.3.152.md similarity index 94% rename from _changelogs/dev/3.3/3.3.152.md rename to src/content/changelogs/dev/3.3/3.3.152.md index c098629c..700aab48 100644 --- a/_changelogs/dev/3.3/3.3.152.md +++ b/src/content/changelogs/dev/3.3/3.3.152.md @@ -1,6 +1,3 @@ ---- ---- - - 调整界面样式 - 修改默认下载源为 MCBBS - 允许在启动游戏按钮上滑动鼠标滚轮切换游戏 diff --git a/_changelogs/dev/3.3/3.3.153.md b/src/content/changelogs/dev/3.3/3.3.153.md similarity index 95% rename from _changelogs/dev/3.3/3.3.153.md rename to src/content/changelogs/dev/3.3/3.3.153.md index 86b46eed..00536727 100644 --- a/_changelogs/dev/3.3/3.3.153.md +++ b/src/content/changelogs/dev/3.3/3.3.153.md @@ -1,6 +1,3 @@ ---- ---- - - 调整界面样式 - 提升自动安装功能与其他启动器的兼容性 - 修复快速切换游戏时可能导致的一些问题 diff --git a/_changelogs/dev/3.3/3.3.154.md b/src/content/changelogs/dev/3.3/3.3.154.md similarity index 83% rename from _changelogs/dev/3.3/3.3.154.md rename to src/content/changelogs/dev/3.3/3.3.154.md index ef71b0bb..707ab0ec 100644 --- a/_changelogs/dev/3.3/3.3.154.md +++ b/src/content/changelogs/dev/3.3/3.3.154.md @@ -1,4 +1 @@ ---- ---- - - 修复 3.3.153 导致的启动失败问题 diff --git a/_changelogs/dev/3.3/3.3.155.md b/src/content/changelogs/dev/3.3/3.3.155.md similarity index 83% rename from _changelogs/dev/3.3/3.3.155.md rename to src/content/changelogs/dev/3.3/3.3.155.md index 5fe8941d..ceb6ef65 100644 --- a/_changelogs/dev/3.3/3.3.155.md +++ b/src/content/changelogs/dev/3.3/3.3.155.md @@ -1,4 +1 @@ ---- ---- - - 修复 3.3.154 导致的启动失败问题 diff --git a/_changelogs/dev/3.3/3.3.156.md b/src/content/changelogs/dev/3.3/3.3.156.md similarity index 91% rename from _changelogs/dev/3.3/3.3.156.md rename to src/content/changelogs/dev/3.3/3.3.156.md index 6c617e29..effffaad 100644 --- a/_changelogs/dev/3.3/3.3.156.md +++ b/src/content/changelogs/dev/3.3/3.3.156.md @@ -1,5 +1,2 @@ ---- ---- - - 修复 3.3.155 导致的启动失败问题 - 在修改游戏版本时要求重新安装相关库 diff --git a/_changelogs/dev/3.3/3.3.157.md b/src/content/changelogs/dev/3.3/3.3.157.md similarity index 95% rename from _changelogs/dev/3.3/3.3.157.md rename to src/content/changelogs/dev/3.3/3.3.157.md index 79881d77..b0891d18 100644 --- a/_changelogs/dev/3.3/3.3.157.md +++ b/src/content/changelogs/dev/3.3/3.3.157.md @@ -1,6 +1,3 @@ ---- ---- - - 更新俄语翻译 - 在游戏设置页面添加重命名等只能在游戏列表操作的功能 - 在自动安装页面可以删除已选择安装的第三方库 diff --git a/_changelogs/dev/3.3/3.3.158.md b/src/content/changelogs/dev/3.3/3.3.158.md similarity index 94% rename from _changelogs/dev/3.3/3.3.158.md rename to src/content/changelogs/dev/3.3/3.3.158.md index d79bbfa2..f24111c1 100644 --- a/_changelogs/dev/3.3/3.3.158.md +++ b/src/content/changelogs/dev/3.3/3.3.158.md @@ -1,6 +1,3 @@ ---- ---- - - 调整界面细节 - 修复游戏安装失败时提示安装完成的问题 - 在自动安装 Forge、OptiFine 等库时若下载失败,自动重试其他下载源 diff --git a/_changelogs/dev/3.3/3.3.159.md b/src/content/changelogs/dev/3.3/3.3.159.md similarity index 93% rename from _changelogs/dev/3.3/3.3.159.md rename to src/content/changelogs/dev/3.3/3.3.159.md index fad6f0a2..22d138ea 100644 --- a/_changelogs/dev/3.3/3.3.159.md +++ b/src/content/changelogs/dev/3.3/3.3.159.md @@ -1,6 +1,3 @@ ---- ---- - - 调整界面细节 - 在日志窗口添加导出游戏日志功能 - 修复复制游戏实例后的新游戏无效的问题 diff --git a/_changelogs/dev/3.3/3.3.160.md b/src/content/changelogs/dev/3.3/3.3.160.md similarity index 95% rename from _changelogs/dev/3.3/3.3.160.md rename to src/content/changelogs/dev/3.3/3.3.160.md index 44261561..915a2b0f 100644 --- a/_changelogs/dev/3.3/3.3.160.md +++ b/src/content/changelogs/dev/3.3/3.3.160.md @@ -1,6 +1,3 @@ ---- ---- - - 主界面标题栏透明 - 游戏崩溃后弹出的日志窗口直接显示游戏崩溃报告(而不是游戏日志) - 修复游戏崩溃后弹出的日志窗口无法显示日志的问题 diff --git a/_changelogs/dev/3.3/3.3.161.md b/src/content/changelogs/dev/3.3/3.3.161.md similarity index 95% rename from _changelogs/dev/3.3/3.3.161.md rename to src/content/changelogs/dev/3.3/3.3.161.md index 155b74b5..e3ef8a23 100644 --- a/_changelogs/dev/3.3/3.3.161.md +++ b/src/content/changelogs/dev/3.3/3.3.161.md @@ -1,6 +1,3 @@ ---- ---- - - 调整界面细节 - 修复无法安装 Forge 1.12.2 2852 的问题 - 提升与 ServerSync 的兼容性 diff --git a/_changelogs/dev/3.3/3.3.162.md b/src/content/changelogs/dev/3.3/3.3.162.md similarity index 94% rename from _changelogs/dev/3.3/3.3.162.md rename to src/content/changelogs/dev/3.3/3.3.162.md index 6cb2f23c..ca6df48a 100644 --- a/_changelogs/dev/3.3/3.3.162.md +++ b/src/content/changelogs/dev/3.3/3.3.162.md @@ -1,6 +1,3 @@ ---- ---- - - 修复无法下载资源文件的问题 - 修复无法同时安装 Forge 1.12.2 2852 和 OptiFine 的问题 - 加强对支持库文件完整/损坏的检查能力 diff --git a/_changelogs/dev/3.3/3.3.163.md b/src/content/changelogs/dev/3.3/3.3.163.md similarity index 95% rename from _changelogs/dev/3.3/3.3.163.md rename to src/content/changelogs/dev/3.3/3.3.163.md index d90c59a8..3735f906 100644 --- a/_changelogs/dev/3.3/3.3.163.md +++ b/src/content/changelogs/dev/3.3/3.3.163.md @@ -1,6 +1,3 @@ ---- ---- - - 修复日志窗口无法清除日志的问题 - 检查下载的 Fabric 安装包是否完整,避免 MCBBS 源带来的错误 - 启动提示内存过大时允许停止启动 diff --git a/_changelogs/dev/3.3/3.3.164.md b/src/content/changelogs/dev/3.3/3.3.164.md similarity index 94% rename from _changelogs/dev/3.3/3.3.164.md rename to src/content/changelogs/dev/3.3/3.3.164.md index d4b56e6f..193031e2 100644 --- a/_changelogs/dev/3.3/3.3.164.md +++ b/src/content/changelogs/dev/3.3/3.3.164.md @@ -1,6 +1,3 @@ ---- ---- - - 更新俄语翻译 - 修复在“在游戏启动后关闭启动器”启用时游戏无法启动的问题 - 修复弹出对话框时无法拖动窗口的问题 diff --git a/_changelogs/dev/3.3/3.3.165.md b/src/content/changelogs/dev/3.3/3.3.165.md similarity index 80% rename from _changelogs/dev/3.3/3.3.165.md rename to src/content/changelogs/dev/3.3/3.3.165.md index 8da3f5dd..084f86b4 100644 --- a/_changelogs/dev/3.3/3.3.165.md +++ b/src/content/changelogs/dev/3.3/3.3.165.md @@ -1,4 +1 @@ ---- ---- - - 修复无法自动更新的问题 diff --git a/_changelogs/dev/3.3/3.3.166.md b/src/content/changelogs/dev/3.3/3.3.166.md similarity index 96% rename from _changelogs/dev/3.3/3.3.166.md rename to src/content/changelogs/dev/3.3/3.3.166.md index 4e28275d..62899354 100644 --- a/_changelogs/dev/3.3/3.3.166.md +++ b/src/content/changelogs/dev/3.3/3.3.166.md @@ -1,6 +1,3 @@ ---- ---- - - 修复进入游戏设置后无法重命名部分游戏版本的问题 - 修复 Curse 整合包下载时遗漏 Mod 的问题 - 修复部分情况下弹框消失的问题 diff --git a/_changelogs/dev/3.3/3.3.168.md b/src/content/changelogs/dev/3.3/3.3.168.md similarity index 98% rename from _changelogs/dev/3.3/3.3.168.md rename to src/content/changelogs/dev/3.3/3.3.168.md index 1619859d..21dd4d3c 100644 --- a/_changelogs/dev/3.3/3.3.168.md +++ b/src/content/changelogs/dev/3.3/3.3.168.md @@ -1,6 +1,3 @@ ---- ---- - - 将主界面的版本列表弹框的滚动条改为黑色 - 修复某些情况下启动游戏时,提示 NullPointerException 的问题 - 允许使用在启动器同目录下的 authlib-injector.jar 文件 diff --git a/_changelogs/dev/3.3/3.3.169.md b/src/content/changelogs/dev/3.3/3.3.169.md similarity index 98% rename from _changelogs/dev/3.3/3.3.169.md rename to src/content/changelogs/dev/3.3/3.3.169.md index 76cf6fa6..d918304a 100644 --- a/_changelogs/dev/3.3/3.3.169.md +++ b/src/content/changelogs/dev/3.3/3.3.169.md @@ -1,6 +1,3 @@ ---- ---- - - 修复 1.12.2 同时安装 Forge, OptiFine 时无法进入游戏存档的问题 - 修复服务器自动更新整合包更新时可能会出现 AccessDeniedException 的问题 - 现在会记住启动器上次使用的窗口大小 diff --git a/_changelogs/dev/3.3/3.3.170.md b/src/content/changelogs/dev/3.3/3.3.170.md similarity index 92% rename from _changelogs/dev/3.3/3.3.170.md rename to src/content/changelogs/dev/3.3/3.3.170.md index 57966938..b8d9258c 100644 --- a/_changelogs/dev/3.3/3.3.170.md +++ b/src/content/changelogs/dev/3.3/3.3.170.md @@ -1,5 +1,2 @@ ---- ---- - - 修复部分情况下崩溃的问题 - 支持同时安装 Minecraft 1.14.4 及以上版本的 Forge 和 OptiFine diff --git a/_changelogs/dev/3.3/3.3.172.md b/src/content/changelogs/dev/3.3/3.3.172.md similarity index 98% rename from _changelogs/dev/3.3/3.3.172.md rename to src/content/changelogs/dev/3.3/3.3.172.md index d61f817e..fc517d20 100644 --- a/_changelogs/dev/3.3/3.3.172.md +++ b/src/content/changelogs/dev/3.3/3.3.172.md @@ -1,6 +1,3 @@ ---- ---- - - 添加窗口阴影 - 添加为正版账号上传皮肤的功能 - 现在会校验资源索引文件的完整性 diff --git a/_changelogs/dev/3.3/3.3.173.md b/src/content/changelogs/dev/3.3/3.3.173.md similarity index 98% rename from _changelogs/dev/3.3/3.3.173.md rename to src/content/changelogs/dev/3.3/3.3.173.md index e1501eb1..68cb5f62 100644 --- a/_changelogs/dev/3.3/3.3.173.md +++ b/src/content/changelogs/dev/3.3/3.3.173.md @@ -1,6 +1,3 @@ ---- ---- - - 修复启动 Minecraft 1.0 时不会停止等待游戏启动的问题 - 更新游戏整合包后会显示新的版本号 - 修复更新整合包下载地址不能使用在线下载自动更新整合包的问题 diff --git a/_changelogs/dev/3.3/3.3.174.md b/src/content/changelogs/dev/3.3/3.3.174.md similarity index 96% rename from _changelogs/dev/3.3/3.3.174.md rename to src/content/changelogs/dev/3.3/3.3.174.md index f0ab5f3a..12e4f97f 100644 --- a/_changelogs/dev/3.3/3.3.174.md +++ b/src/content/changelogs/dev/3.3/3.3.174.md @@ -1,6 +1,3 @@ ---- ---- - - 允许第三方修改 HMCL 的 BMCLAPI 下载源,从而支持第三方下载源 - 自动设置游戏的默认语言为中文 - 修复因为线程过多导致在 macOS 系统上运行崩溃的问题 diff --git a/_changelogs/dev/3.3/3.3.175.md b/src/content/changelogs/dev/3.3/3.3.175.md similarity index 85% rename from _changelogs/dev/3.3/3.3.175.md rename to src/content/changelogs/dev/3.3/3.3.175.md index e66c90bf..69e0a5a7 100644 --- a/_changelogs/dev/3.3/3.3.175.md +++ b/src/content/changelogs/dev/3.3/3.3.175.md @@ -1,4 +1 @@ ---- ---- - - 修复部分情况误修改 options.txt 的问题 diff --git a/_changelogs/dev/3.3/3.3.176.md b/src/content/changelogs/dev/3.3/3.3.176.md similarity index 97% rename from _changelogs/dev/3.3/3.3.176.md rename to src/content/changelogs/dev/3.3/3.3.176.md index 9608c96c..b966e27a 100644 --- a/_changelogs/dev/3.3/3.3.176.md +++ b/src/content/changelogs/dev/3.3/3.3.176.md @@ -1,6 +1,3 @@ ---- ---- - - 支持微软正版账户登录 - 支持 Authlib-injector 账户上传皮肤 - 支持 Authlib-injector 服务器用邮箱以外的账户登录 diff --git a/_changelogs/dev/3.3/3.3.177.md b/src/content/changelogs/dev/3.3/3.3.177.md similarity index 85% rename from _changelogs/dev/3.3/3.3.177.md rename to src/content/changelogs/dev/3.3/3.3.177.md index 9a0346f2..5677dd66 100644 --- a/_changelogs/dev/3.3/3.3.177.md +++ b/src/content/changelogs/dev/3.3/3.3.177.md @@ -1,4 +1 @@ ---- ---- - - 修复下载失败导致游戏无法启动的问题 diff --git a/_changelogs/dev/3.3/3.3.178.md b/src/content/changelogs/dev/3.3/3.3.178.md similarity index 92% rename from _changelogs/dev/3.3/3.3.178.md rename to src/content/changelogs/dev/3.3/3.3.178.md index a7e5754e..61e1e3ae 100644 --- a/_changelogs/dev/3.3/3.3.178.md +++ b/src/content/changelogs/dev/3.3/3.3.178.md @@ -1,5 +1,2 @@ ---- ---- - - 修复不能检测 20w45a+ 以上游戏的版本号 - 修复同时只有一个文件在下载的问题 diff --git a/_changelogs/dev/3.3/3.3.179.md b/src/content/changelogs/dev/3.3/3.3.179.md similarity index 92% rename from _changelogs/dev/3.3/3.3.179.md rename to src/content/changelogs/dev/3.3/3.3.179.md index 8ba68ab4..186b3c4f 100644 --- a/_changelogs/dev/3.3/3.3.179.md +++ b/src/content/changelogs/dev/3.3/3.3.179.md @@ -1,5 +1,2 @@ ---- ---- - - 修复微软账号在设置了皮肤之后不能登录的问题 - 修复不能显示微软账号皮肤的问题 diff --git a/_changelogs/dev/3.3/3.3.180.md b/src/content/changelogs/dev/3.3/3.3.180.md similarity index 89% rename from _changelogs/dev/3.3/3.3.180.md rename to src/content/changelogs/dev/3.3/3.3.180.md index 91b4d8c9..ca92945d 100644 --- a/_changelogs/dev/3.3/3.3.180.md +++ b/src/content/changelogs/dev/3.3/3.3.180.md @@ -1,5 +1,2 @@ ---- ---- - - 支持我的世界中文论坛整合包标准 - 修复下载失败的问题 diff --git a/_changelogs/dev/3.3/3.3.181.md b/src/content/changelogs/dev/3.3/3.3.181.md similarity index 91% rename from _changelogs/dev/3.3/3.3.181.md rename to src/content/changelogs/dev/3.3/3.3.181.md index 6a4faa99..9bf13b7c 100644 --- a/_changelogs/dev/3.3/3.3.181.md +++ b/src/content/changelogs/dev/3.3/3.3.181.md @@ -1,5 +1,2 @@ ---- ---- - - 微软登录页添加加载进度条 - 修复整合包导出页无法点击下一步的问题 diff --git a/_changelogs/dev/3.3/3.3.183.md b/src/content/changelogs/dev/3.3/3.3.183.md similarity index 96% rename from _changelogs/dev/3.3/3.3.183.md rename to src/content/changelogs/dev/3.3/3.3.183.md index 33857981..9150a15c 100644 --- a/_changelogs/dev/3.3/3.3.183.md +++ b/src/content/changelogs/dev/3.3/3.3.183.md @@ -1,6 +1,3 @@ ---- ---- - - 修复服务端自动更新整合包不能更新游戏、Forge 版本的问题 - 兼容 Java11+,在 Java 11+ 上运行时会自动下载 JavaFX - 修复不能识别部分数据包的问题 diff --git a/_changelogs/dev/3.3/3.3.184.md b/src/content/changelogs/dev/3.3/3.3.184.md similarity index 95% rename from _changelogs/dev/3.3/3.3.184.md rename to src/content/changelogs/dev/3.3/3.3.184.md index 3ef909b6..6143b28e 100644 --- a/_changelogs/dev/3.3/3.3.184.md +++ b/src/content/changelogs/dev/3.3/3.3.184.md @@ -1,6 +1,3 @@ ---- ---- - - 修复 macOS 下启动器图标和 Finder 相同的问题,仅在 Java 9+ 生效 - 修复与 Java 16 的兼容性问题 - 允许在导出的整合包内包含启动器程序 diff --git a/_changelogs/dev/3.3/3.3.186.md b/src/content/changelogs/dev/3.3/3.3.186.md similarity index 95% rename from _changelogs/dev/3.3/3.3.186.md rename to src/content/changelogs/dev/3.3/3.3.186.md index 79b2dfbc..852273b0 100644 --- a/_changelogs/dev/3.3/3.3.186.md +++ b/src/content/changelogs/dev/3.3/3.3.186.md @@ -1,6 +1,3 @@ ---- ---- - - 解决 Java 16 下部分 mod 不能正常运行的问题 - 修复对系统平台的识别错误导致部分平台不能正确下载 JavaFX 的问题 - 启动 Minecraft 1.17 时自动下载官方提供的 Java 16 diff --git a/_changelogs/dev/3.3/3.3.188.md b/src/content/changelogs/dev/3.3/3.3.188.md similarity index 97% rename from _changelogs/dev/3.3/3.3.188.md rename to src/content/changelogs/dev/3.3/3.3.188.md index c802f285..a5ce8337 100644 --- a/_changelogs/dev/3.3/3.3.188.md +++ b/src/content/changelogs/dev/3.3/3.3.188.md @@ -1,6 +1,3 @@ ---- ---- - - 自定义本地库路径,允许 M1 设备运行 ARM 版本的 Minecraft - 自动检测系统内安装的 OpenJDK,包括 Liberica/Microsoft/Zulu/AdoptOpenJDK - 修复 exe 版本不能正常下载 JavaFX 的问题 diff --git a/_changelogs/dev/3.3/3.3.189.md b/src/content/changelogs/dev/3.3/3.3.189.md similarity index 98% rename from _changelogs/dev/3.3/3.3.189.md rename to src/content/changelogs/dev/3.3/3.3.189.md index 72b297a2..aa315581 100644 --- a/_changelogs/dev/3.3/3.3.189.md +++ b/src/content/changelogs/dev/3.3/3.3.189.md @@ -1,6 +1,3 @@ ---- ---- - - 支持使用 Fabric 作为 Mod 加载器的 CurseForge 整合包 - 修复尝试下载 Java16 时只有确定没有取消按钮的问题 - 修复下载 Java16 时取消下载过程后启动器崩溃的问题 diff --git a/_changelogs/dev/3.3/3.3.192.md b/src/content/changelogs/dev/3.3/3.3.192.md similarity index 94% rename from _changelogs/dev/3.3/3.3.192.md rename to src/content/changelogs/dev/3.3/3.3.192.md index 0c308fce..c8f388f1 100644 --- a/_changelogs/dev/3.3/3.3.192.md +++ b/src/content/changelogs/dev/3.3/3.3.192.md @@ -1,5 +1,2 @@ ---- ---- - - 支持 1.17 Forge 的自动安装与游戏启动 - 修复不能正常启动 Minecraft 1.5 及以下版本的问题(需要手动删除 options.txt) diff --git a/_changelogs/dev/3.3/3.3.194.md b/src/content/changelogs/dev/3.3/3.3.194.md similarity index 94% rename from _changelogs/dev/3.3/3.3.194.md rename to src/content/changelogs/dev/3.3/3.3.194.md index 0a3e1ad7..6470bf5d 100644 --- a/_changelogs/dev/3.3/3.3.194.md +++ b/src/content/changelogs/dev/3.3/3.3.194.md @@ -1,6 +1,3 @@ ---- ---- - - 支持 CurseForge 整合包和 Mod 下载 - 改进版本管理和游戏设置的界面 - 修复不能启动 BakaXL 安装后的游戏的问题 diff --git a/_changelogs/dev/3.3/3.3.195.md b/src/content/changelogs/dev/3.3/3.3.195.md similarity index 95% rename from _changelogs/dev/3.3/3.3.195.md rename to src/content/changelogs/dev/3.3/3.3.195.md index cbe72d4a..69531149 100644 --- a/_changelogs/dev/3.3/3.3.195.md +++ b/src/content/changelogs/dev/3.3/3.3.195.md @@ -1,6 +1,3 @@ ---- ---- - - 添加查看模组详细介绍及打开其官方页面的功能 - Mod 下载列表会按照发布时间排序 - 修复 Mod 下载页面存在空白区域的问题 diff --git a/_changelogs/dev/3.3/3.3.196.md b/src/content/changelogs/dev/3.3/3.3.196.md similarity index 84% rename from _changelogs/dev/3.3/3.3.196.md rename to src/content/changelogs/dev/3.3/3.3.196.md index 296ae9d3..d8ae3935 100644 --- a/_changelogs/dev/3.3/3.3.196.md +++ b/src/content/changelogs/dev/3.3/3.3.196.md @@ -1,4 +1 @@ ---- ---- - - 修复进入 Mod 下载页面时崩溃的问题 diff --git a/_changelogs/dev/3.3/3.3.197.md b/src/content/changelogs/dev/3.3/3.3.197.md similarity index 93% rename from _changelogs/dev/3.3/3.3.197.md rename to src/content/changelogs/dev/3.3/3.3.197.md index 6604324f..540b2991 100644 --- a/_changelogs/dev/3.3/3.3.197.md +++ b/src/content/changelogs/dev/3.3/3.3.197.md @@ -1,5 +1,2 @@ ---- ---- - - 修复不能启动 Forge 1.17.1-37.0.29 及以上版本的问题 - 修复英文语言设置下版本管理页面的标题错误的问题 diff --git a/_changelogs/dev/3.3/3.3.199.md b/src/content/changelogs/dev/3.3/3.3.199.md similarity index 98% rename from _changelogs/dev/3.3/3.3.199.md rename to src/content/changelogs/dev/3.3/3.3.199.md index 3d7ccbec..fcc105de 100644 --- a/_changelogs/dev/3.3/3.3.199.md +++ b/src/content/changelogs/dev/3.3/3.3.199.md @@ -1,6 +1,3 @@ ---- ---- - - 在整合包下载页按回车也可以发起搜索 - 支持我的世界中文论坛整合包规范第二版,兼容 CurseForge 整合包格式,允许导入 MultiMC - 重新设计关于页面 diff --git a/_changelogs/dev/3.3/3.3.200.md b/src/content/changelogs/dev/3.3/3.3.200.md similarity index 83% rename from _changelogs/dev/3.3/3.3.200.md rename to src/content/changelogs/dev/3.3/3.3.200.md index 61db993e..ca2c14ab 100644 --- a/_changelogs/dev/3.3/3.3.200.md +++ b/src/content/changelogs/dev/3.3/3.3.200.md @@ -1,4 +1 @@ ---- ---- - - 修复微软登录超时后崩溃的问题 diff --git a/_changelogs/dev/3.3/3.3.201.md b/src/content/changelogs/dev/3.3/3.3.201.md similarity index 99% rename from _changelogs/dev/3.3/3.3.201.md rename to src/content/changelogs/dev/3.3/3.3.201.md index 6ec4d63e..9b476f3b 100644 --- a/_changelogs/dev/3.3/3.3.201.md +++ b/src/content/changelogs/dev/3.3/3.3.201.md @@ -1,6 +1,3 @@ ---- ---- - - 添加帮助页面 - 添加修改游戏进程优先级的功能 - 任意页面按 ESC 键可返回上一页 diff --git a/_changelogs/dev/3.4/3.4.202.md b/src/content/changelogs/dev/3.4/3.4.202.md similarity index 99% rename from _changelogs/dev/3.4/3.4.202.md rename to src/content/changelogs/dev/3.4/3.4.202.md index f745dc2a..03e3c0cb 100644 --- a/_changelogs/dev/3.4/3.4.202.md +++ b/src/content/changelogs/dev/3.4/3.4.202.md @@ -1,6 +1,3 @@ ---- ---- - - 更新至 JavaFX 17,额外支持 Mac M1 设备下自动下载 JavaFX - Authlib-Injector 认证服务器管理页面移动至账户管理页侧边栏 - 支持修改离线账户的 UUID diff --git a/_changelogs/dev/3.4/3.4.203.md b/src/content/changelogs/dev/3.4/3.4.203.md similarity index 98% rename from _changelogs/dev/3.4/3.4.203.md rename to src/content/changelogs/dev/3.4/3.4.203.md index 16b7bfc7..56793fcc 100644 --- a/_changelogs/dev/3.4/3.4.203.md +++ b/src/content/changelogs/dev/3.4/3.4.203.md @@ -1,6 +1,3 @@ ---- ---- - - 添加多人联机,由于处于试验阶段,如果出现问题请反馈 - 调整界面外观 - 背景路径支持网络链接 diff --git a/_changelogs/dev/3.4/3.4.205.md b/src/content/changelogs/dev/3.4/3.4.205.md similarity index 99% rename from _changelogs/dev/3.4/3.4.205.md rename to src/content/changelogs/dev/3.4/3.4.205.md index 8d8baa8c..9fcb5ccc 100644 --- a/_changelogs/dev/3.4/3.4.205.md +++ b/src/content/changelogs/dev/3.4/3.4.205.md @@ -1,6 +1,3 @@ ---- ---- - - 添加联机房间准入功能,房主同意后玩家才能加入房间 - 添加联机房间管理功能,可以查看已经在房间中的玩家 - 添加联机 Token 设置和中继模式 diff --git a/_changelogs/dev/3.4/3.4.206.md b/src/content/changelogs/dev/3.4/3.4.206.md similarity index 99% rename from _changelogs/dev/3.4/3.4.206.md rename to src/content/changelogs/dev/3.4/3.4.206.md index b640799c..699e82de 100644 --- a/_changelogs/dev/3.4/3.4.206.md +++ b/src/content/changelogs/dev/3.4/3.4.206.md @@ -1,6 +1,3 @@ ---- ---- - - 联机: 更新 cato 至 1.0.c,支持 macOS M1 芯片设备 - 联机: 网络测试改用快速测试方法 - 联机: 添加加入申请选项,默认不再需要房主手动同意加入申请 diff --git a/_changelogs/dev/3.4/3.4.207.md b/src/content/changelogs/dev/3.4/3.4.207.md similarity index 98% rename from _changelogs/dev/3.4/3.4.207.md rename to src/content/changelogs/dev/3.4/3.4.207.md index 7412715b..c08d07c9 100644 --- a/_changelogs/dev/3.4/3.4.207.md +++ b/src/content/changelogs/dev/3.4/3.4.207.md @@ -1,6 +1,3 @@ ---- ---- - - 在杀毒软件删除 cato 时,弹出警告提示,而不是崩溃启动器 - 资源包下载页面添加版本选择 - 微软账号登录时被服务器要求重新手动登录时弹出登录提示框而不是登录失败 diff --git a/_changelogs/dev/3.4/3.4.208.md b/src/content/changelogs/dev/3.4/3.4.208.md similarity index 92% rename from _changelogs/dev/3.4/3.4.208.md rename to src/content/changelogs/dev/3.4/3.4.208.md index ed8a5e30..10fafd34 100644 --- a/_changelogs/dev/3.4/3.4.208.md +++ b/src/content/changelogs/dev/3.4/3.4.208.md @@ -1,5 +1,2 @@ ---- ---- - - 运行环境缺少 JavaFX 时,直接开始下载而不是等待用户选择下载源 - 修复联机断联的问题 diff --git a/_changelogs/dev/3.4/3.4.209.md b/src/content/changelogs/dev/3.4/3.4.209.md similarity index 99% rename from _changelogs/dev/3.4/3.4.209.md rename to src/content/changelogs/dev/3.4/3.4.209.md index ed283a6a..aa078206 100644 --- a/_changelogs/dev/3.4/3.4.209.md +++ b/src/content/changelogs/dev/3.4/3.4.209.md @@ -1,6 +1,3 @@ ---- ---- - - 不再翻译 id 为 examplemod 的 Mod 名称以避免歧义 - 如果在 macOS/Windows ARM 设备上使用 HMCL,HMCL 会优先使用 x86 的 JDK 运行游戏 - 提供更多预设的游戏版本图标以供设置 diff --git a/_changelogs/dev/3.4/3.4.210.md b/src/content/changelogs/dev/3.4/3.4.210.md similarity index 97% rename from _changelogs/dev/3.4/3.4.210.md rename to src/content/changelogs/dev/3.4/3.4.210.md index 844c281a..59663ac4 100644 --- a/_changelogs/dev/3.4/3.4.210.md +++ b/src/content/changelogs/dev/3.4/3.4.210.md @@ -1,6 +1,3 @@ ---- ---- - - 提示下载 Java 时,额外提供手动下载链接 - 更新 cato 至 1.1.0 - 修复部分页面进入时崩溃的问题 diff --git a/_changelogs/dev/3.4/3.4.211.md b/src/content/changelogs/dev/3.4/3.4.211.md similarity index 91% rename from _changelogs/dev/3.4/3.4.211.md rename to src/content/changelogs/dev/3.4/3.4.211.md index 6b1d59ec..eb7948f6 100644 --- a/_changelogs/dev/3.4/3.4.211.md +++ b/src/content/changelogs/dev/3.4/3.4.211.md @@ -1,5 +1,2 @@ ---- ---- - - 修复 Log4j 远程代码执行漏洞 - 修复解压 zip 文件时丢失文件属性的问题 diff --git a/_changelogs/dev/3.4/3.4.212.md b/src/content/changelogs/dev/3.4/3.4.212.md similarity index 92% rename from _changelogs/dev/3.4/3.4.212.md rename to src/content/changelogs/dev/3.4/3.4.212.md index 30628fad..6a1bac2c 100644 --- a/_changelogs/dev/3.4/3.4.212.md +++ b/src/content/changelogs/dev/3.4/3.4.212.md @@ -1,5 +1,2 @@ ---- ---- - - 修复 Log4j 远程代码执行漏洞 - 修复取消启动警告框后,启动游戏进度框不退出的问题 diff --git a/_changelogs/dev/3.5/3.5.0.213.md b/src/content/changelogs/dev/3.5/3.5.0.213.md similarity index 87% rename from _changelogs/dev/3.5/3.5.0.213.md rename to src/content/changelogs/dev/3.5/3.5.0.213.md index 60b58b21..33e48c41 100644 --- a/_changelogs/dev/3.5/3.5.0.213.md +++ b/src/content/changelogs/dev/3.5/3.5.0.213.md @@ -1,5 +1,2 @@ ---- ---- - - 修复 Log4j 远程代码执行漏洞 - 更新 cato 至 1.2.0 diff --git a/_changelogs/dev/3.5/3.5.0.214.md b/src/content/changelogs/dev/3.5/3.5.0.214.md similarity index 98% rename from _changelogs/dev/3.5/3.5.0.214.md rename to src/content/changelogs/dev/3.5/3.5.0.214.md index 1d924ef9..3c458628 100644 --- a/_changelogs/dev/3.5/3.5.0.214.md +++ b/src/content/changelogs/dev/3.5/3.5.0.214.md @@ -1,6 +1,3 @@ ---- ---- - - 重命名某个游戏版本后,该游戏版本将会被选中为当前游戏版本 - 修复 cato 选项名称错误的问题 - 修复 1.17/1.18 Forge 客户端不能启动的问题 diff --git a/_changelogs/dev/3.5/3.5.2.216.md b/src/content/changelogs/dev/3.5/3.5.2.216.md similarity index 98% rename from _changelogs/dev/3.5/3.5.2.216.md rename to src/content/changelogs/dev/3.5/3.5.2.216.md index 10394085..9e270e1c 100644 --- a/_changelogs/dev/3.5/3.5.2.216.md +++ b/src/content/changelogs/dev/3.5/3.5.2.216.md @@ -1,6 +1,3 @@ ---- ---- - - 修复在包含等于号的路径下运行时无法正确加载漏洞修复工具的问题 - 修复 Mod 下载页选择 Modrinth 源时,排序选项不可用的问题 - 修复下载游戏向导中,在某些情况下加载了错误的 Fabric API 列表的问题 diff --git a/_changelogs/dev/3.5/3.5.3.219.md b/src/content/changelogs/dev/3.5/3.5.3.219.md similarity index 98% rename from _changelogs/dev/3.5/3.5.3.219.md rename to src/content/changelogs/dev/3.5/3.5.3.219.md index 42008a0e..4ac49ff4 100644 --- a/_changelogs/dev/3.5/3.5.3.219.md +++ b/src/content/changelogs/dev/3.5/3.5.3.219.md @@ -1,6 +1,3 @@ ---- ---- - - 支持整合包下载页使用中文搜索 - 支持下载安装 Modrinth 整合包 - 修复在语言为英文时仍翻译 Mod 名称的问题 diff --git a/_changelogs/dev/3.5/3.5.3.220.md b/src/content/changelogs/dev/3.5/3.5.3.220.md similarity index 86% rename from _changelogs/dev/3.5/3.5.3.220.md rename to src/content/changelogs/dev/3.5/3.5.3.220.md index 9c7ae8a3..6e1a0ac9 100644 --- a/_changelogs/dev/3.5/3.5.3.220.md +++ b/src/content/changelogs/dev/3.5/3.5.3.220.md @@ -1,4 +1 @@ ---- ---- - - 修复 CurseForge 整合包无法下载安装的问题 diff --git a/_changelogs/dev/3.5/3.5.3.221.md b/src/content/changelogs/dev/3.5/3.5.3.221.md similarity index 98% rename from _changelogs/dev/3.5/3.5.3.221.md rename to src/content/changelogs/dev/3.5/3.5.3.221.md index 83e26e60..48c3c900 100644 --- a/_changelogs/dev/3.5/3.5.3.221.md +++ b/src/content/changelogs/dev/3.5/3.5.3.221.md @@ -1,6 +1,3 @@ ---- ---- - - 支持在文件管理器中显示文件,或者在 Linux 中直接打开父目录。 - 默认开启“自动选择合适的 Java” - 修复部分 UI 问题 diff --git a/_changelogs/dev/3.5/3.5.3.222.md b/src/content/changelogs/dev/3.5/3.5.3.222.md similarity index 98% rename from _changelogs/dev/3.5/3.5.3.222.md rename to src/content/changelogs/dev/3.5/3.5.3.222.md index ec0999af..05f8e6ba 100644 --- a/_changelogs/dev/3.5/3.5.3.222.md +++ b/src/content/changelogs/dev/3.5/3.5.3.222.md @@ -1,6 +1,3 @@ ---- ---- - - 修复翻译错误 - 适配 Apple Silicon Mac 与龙芯平台 - 修复不会自动补全缺失的 OptiFine 文件的问题 diff --git a/_changelogs/dev/3.5/3.5.3.223.md b/src/content/changelogs/dev/3.5/3.5.3.223.md similarity index 98% rename from _changelogs/dev/3.5/3.5.3.223.md rename to src/content/changelogs/dev/3.5/3.5.3.223.md index 6968fe49..d0919633 100644 --- a/_changelogs/dev/3.5/3.5.3.223.md +++ b/src/content/changelogs/dev/3.5/3.5.3.223.md @@ -1,6 +1,3 @@ ---- ---- - - 在启动游戏时刷新账户失败时提示重试登录 - 修复在授权过期时不会显示重新登录对话框 - 微软登录相关优化 diff --git a/_changelogs/dev/3.5/3.5.3.227.md b/src/content/changelogs/dev/3.5/3.5.3.227.md similarity index 97% rename from _changelogs/dev/3.5/3.5.3.227.md rename to src/content/changelogs/dev/3.5/3.5.3.227.md index c9482e31..418f2c9a 100644 --- a/_changelogs/dev/3.5/3.5.3.227.md +++ b/src/content/changelogs/dev/3.5/3.5.3.227.md @@ -1,6 +1,3 @@ ---- ---- - - 多人联机功能暂时下线维护[详情](https://hmcl.huangyuhui.net/api/redirect/multiplayer-migrate) - 修复中文路径下启动 <= 1.12.2 的版本没有声音的问题 - 修复 提示弹窗 的文本显示问题 diff --git a/_changelogs/dev/3.5/3.5.3.228.md b/src/content/changelogs/dev/3.5/3.5.3.228.md similarity index 98% rename from _changelogs/dev/3.5/3.5.3.228.md rename to src/content/changelogs/dev/3.5/3.5.3.228.md index 9786763f..ddd03e3b 100644 --- a/_changelogs/dev/3.5/3.5.3.228.md +++ b/src/content/changelogs/dev/3.5/3.5.3.228.md @@ -1,6 +1,3 @@ ---- ---- - - 优化启动器资源占用 - 优化游戏 JVM 参数,改善游戏性能 - 优化高分辨率屏幕上图标的显示效果 @@ -10,7 +7,8 @@ - 添加关于离线账户命名的提示 - 更新整合包、模组、资源包、世界搜索中页面游戏版本与类别标签 -错误修复: +错误修复: + - 修复下载页卡顿的问题 - 修复自动下载 Java 相关问题 - 修复使用 Java 18+ 运行 Minecraft 时日志乱码的问题 diff --git a/_changelogs/dev/3.5/3.5.3.229.md b/src/content/changelogs/dev/3.5/3.5.3.229.md similarity index 98% rename from _changelogs/dev/3.5/3.5.3.229.md rename to src/content/changelogs/dev/3.5/3.5.3.229.md index beb01608..f266ba71 100644 --- a/_changelogs/dev/3.5/3.5.3.229.md +++ b/src/content/changelogs/dev/3.5/3.5.3.229.md @@ -1,6 +1,3 @@ ---- ---- - - 更新整合包、模组、资源包、世界搜索中页面游戏版本标签,并修改类别的顺序 - 优化自动内存分配 - 弃用 FXML,能够便于调试修改、优化资源占用和优化启动速度 @@ -22,7 +19,7 @@ - 添加模组列表搜索 - 新添加 JVM 选项 `hmcl.home`,允许用户自行指定 HMCL_DIRECTORY -错误修复: +错误修复: - 修复导入整合包界面,整合包名称文本框验证失败时提示被遮盖的问题 - 修复消息对话框内字体大小样式未生效的问题 diff --git a/_changelogs/dev/3.5/3.5.3.230.md b/src/content/changelogs/dev/3.5/3.5.3.230.md similarity index 94% rename from _changelogs/dev/3.5/3.5.3.230.md rename to src/content/changelogs/dev/3.5/3.5.3.230.md index 42526741..5cdf4f7d 100644 --- a/_changelogs/dev/3.5/3.5.3.230.md +++ b/src/content/changelogs/dev/3.5/3.5.3.230.md @@ -1,6 +1,3 @@ ---- ---- - - Quilt 相关功能完善 - 默认将搜索排序修改为“热度” - 更新语言文件 @@ -8,7 +5,7 @@ - 优化性能,轻微降低内存占用 - 不将默认的日志行数保存到配置中,使其导出崩溃日志中的 minecraft.log 不会受其行数限制 -错误修复: +错误修复: - 修复 GIF 动图加载占用主线程的问题 - 修复一些崩溃问题 diff --git a/_changelogs/dev/3.5/3.5.4.232.md b/src/content/changelogs/dev/3.5/3.5.4.232.md similarity index 90% rename from _changelogs/dev/3.5/3.5.4.232.md rename to src/content/changelogs/dev/3.5/3.5.4.232.md index 8f757c72..e40b703c 100644 --- a/_changelogs/dev/3.5/3.5.4.232.md +++ b/src/content/changelogs/dev/3.5/3.5.4.232.md @@ -1,11 +1,8 @@ ---- ---- - - 添加环境变量设置 - 添加渲染器设置 - 将版本高级设置拆分至单独页面中 - 在 Linux 上支持 `MESA_LOADER_DRIVER_OVERRIDE` 环境变量,适配 Zink 驱动程序 -错误修复: +错误修复: - 修复日志分析窗口的渲染问题 diff --git a/_changelogs/dev/3.5/3.5.4.234.md b/src/content/changelogs/dev/3.5/3.5.4.234.md similarity index 97% rename from _changelogs/dev/3.5/3.5.4.234.md rename to src/content/changelogs/dev/3.5/3.5.4.234.md index dc60e695..aad960e4 100644 --- a/_changelogs/dev/3.5/3.5.4.234.md +++ b/src/content/changelogs/dev/3.5/3.5.4.234.md @@ -1,6 +1,3 @@ ---- ---- - - 拒绝在被 Fractureiser 病毒感染的设备上启动 HMCL(若检测到将会提示并退出,[详情](https://github.com/fractureiser-investigation/fractureiser#readme)) - 检测 HMCL 是否处于 macOS 上的 App Translocation(macOS 使用了 [App Translocation](https://lapcatsoftware.com/articles/app-translocation.html) 机制,可能会自动将 HMCL 移动至 `/private/var/folders` 中的临时文件夹内,导致用户关闭 HMCL 后游戏数据和设置丢失) - 添加 Linux RISC-V 64 平台支持 @@ -14,7 +11,7 @@ - 添加隐藏测试版提示开关 - 更新翻译 -错误修复: +错误修复: - 修复在 Minecraft 1.20 不能正常使用游戏内聊天功能的问题 - 修复在 Windows on ARM 平台上的启动问题 diff --git a/_changelogs/dev/3.5/3.5.5.235.md b/src/content/changelogs/dev/3.5/3.5.5.235.md similarity index 99% rename from _changelogs/dev/3.5/3.5.5.235.md rename to src/content/changelogs/dev/3.5/3.5.5.235.md index 49e38aea..d18784ab 100644 --- a/_changelogs/dev/3.5/3.5.5.235.md +++ b/src/content/changelogs/dev/3.5/3.5.5.235.md @@ -1,6 +1,3 @@ ---- ---- - - 完善 Quilt 支持 - 添加了对 NeoForge 的支持 - 打开启动器时会验证 JavaFX 完整性 @@ -45,7 +42,7 @@ - 支持 FreeBSD x86-64 - 添加帮助按钮 -错误修复: +错误修复: - 修复自定义命令的一些问题 - 修复游戏语言自动切换功能与不同版本的兼容性问题 diff --git a/_changelogs/dev/3.5/3.5.5.236.md b/src/content/changelogs/dev/3.5/3.5.5.236.md similarity index 99% rename from _changelogs/dev/3.5/3.5.5.236.md rename to src/content/changelogs/dev/3.5/3.5.5.236.md index 1b48257f..79293f97 100644 --- a/_changelogs/dev/3.5/3.5.5.236.md +++ b/src/content/changelogs/dev/3.5/3.5.5.236.md @@ -1,6 +1,3 @@ ---- ---- - - GP-2836: 更新启动器发布页至官网,而不是 MCBBS - GP-2700: 优化游戏版本比较规则,现在模组下载界面能够正常排序 Minecraft 正式版、快照版或其他版本了 - GP-2805: 默认开启自动选择并发数 @@ -14,7 +11,7 @@ - GP-2790: 支持检测 Forge 与高版本 Java 不兼容导致的游戏崩溃 - GP-2760: 更新对 Linux RISC-V 64 系统的支持 -错误修复: +错误修复: - GP-2745: 修复只会从 MCBBS 源下载 authlib-injector 的问题 - GP-2746: 修复部分情况下修改并发下载数量会导致启动器崩溃的问题 diff --git a/_changelogs/dev/3.5/3.5.5.237.md b/src/content/changelogs/dev/3.5/3.5.5.237.md similarity index 96% rename from _changelogs/dev/3.5/3.5.5.237.md rename to src/content/changelogs/dev/3.5/3.5.5.237.md index 3fea46e3..a8f689a3 100644 --- a/_changelogs/dev/3.5/3.5.5.237.md +++ b/src/content/changelogs/dev/3.5/3.5.5.237.md @@ -1,7 +1,4 @@ ---- ---- - -错误修复: +错误修复: - GP-2840: 修复 Linux RISC-V 64 平台的支持 - GP-2846: 修复使用 Java 19+ 启动游戏时,游戏 JVM 字符编码参数错误导致控制台乱码的问题 diff --git a/_changelogs/dev/3.5/3.5.5.238.md b/src/content/changelogs/dev/3.5/3.5.5.238.md similarity index 83% rename from _changelogs/dev/3.5/3.5.5.238.md rename to src/content/changelogs/dev/3.5/3.5.5.238.md index 4bbf2d66..cc10a80b 100644 --- a/_changelogs/dev/3.5/3.5.5.238.md +++ b/src/content/changelogs/dev/3.5/3.5.5.238.md @@ -1,8 +1,5 @@ ---- ---- - - GP-2864: 改善在非 Windows 平台任务栏图标的质量 -错误修复: +错误修复: - GP-2859: 修复 Forge 和 NeoForge 安装失败的问题 diff --git a/_changelogs/dev/3.5/3.5.6.240.md b/src/content/changelogs/dev/3.5/3.5.6.240.md similarity index 96% rename from _changelogs/dev/3.5/3.5.6.240.md rename to src/content/changelogs/dev/3.5/3.5.6.240.md index 76fb370a..93b50e28 100644 --- a/_changelogs/dev/3.5/3.5.6.240.md +++ b/src/content/changelogs/dev/3.5/3.5.6.240.md @@ -1,13 +1,10 @@ ---- ---- - - GP-2862: 默认不进行降级更新(手动切换更新源时依然会正常提示) - GP-2888: 移除设置 - 赞助页面 - GP-2889: 删除 Mojang 登录支持 - GP-2897: 主界面移除联机大厅按钮,添加引导用户进入官方 QQ 群的按钮 - GP-2886: 自动下载 Java 支持下载 Java 21 -错误修复: +错误修复: - GP-2869: 修复下载 Java 不会尝试备用下载源的问题 - GP-2871: 修复导出启动脚本时无法正确处理“游戏启动前执行命令”和“游戏结束后执行命令”的问题,现在会预解析命令 diff --git a/_changelogs/dev/3.5/3.5.6.241.md b/src/content/changelogs/dev/3.5/3.5.6.241.md similarity index 95% rename from _changelogs/dev/3.5/3.5.6.241.md rename to src/content/changelogs/dev/3.5/3.5.6.241.md index 7cf20cf4..6ce73c7d 100644 --- a/_changelogs/dev/3.5/3.5.6.241.md +++ b/src/content/changelogs/dev/3.5/3.5.6.241.md @@ -1,12 +1,9 @@ ---- ---- - - GP-2904、GP-2915: 更新语言文件,使表达更精确 - GP-2905: 更改语言选项添加重启后生效的提示 - GP-2916: 在 CurseForge 下载源中搜索时始终会按照模组标题与关键词的相似性排序 - GP-2885: 在 Linux 系统上且处于未知桌面环境时,禁用删除至回收站功能 -错误修复: +错误修复: - **GP-2908 \[重要\]: 修复微软账户登录失败的问题** - GP-2804: 修复游戏非正常退出提示界面文字编码显示错误的问题 diff --git a/_changelogs/dev/3.5/3.5.6.242.md b/src/content/changelogs/dev/3.5/3.5.6.242.md similarity index 98% rename from _changelogs/dev/3.5/3.5.6.242.md rename to src/content/changelogs/dev/3.5/3.5.6.242.md index 286bcbb0..f58fe79b 100644 --- a/_changelogs/dev/3.5/3.5.6.242.md +++ b/src/content/changelogs/dev/3.5/3.5.6.242.md @@ -1,6 +1,3 @@ ---- ---- - - GP-2917: 不再尝试下载 `.pack.xz` 文件 - GP-2921: 当系统属性 `java.net.useSystemProxies` 被设置为 `false` 时不再使用系统代理 - GP-2856: 当加载网络背景图片超时时回退至默认背景,解决启动时卡死的问题 diff --git a/_changelogs/dev/3.5/3.5.6.243.md b/src/content/changelogs/dev/3.5/3.5.6.243.md similarity index 93% rename from _changelogs/dev/3.5/3.5.6.243.md rename to src/content/changelogs/dev/3.5/3.5.6.243.md index dad455d4..1f24484b 100644 --- a/_changelogs/dev/3.5/3.5.6.243.md +++ b/src/content/changelogs/dev/3.5/3.5.6.243.md @@ -1,9 +1,6 @@ ---- ---- - - GP-2929: Modrinth 翻译文本将在缺失时显示原内容 -错误修复: +错误修复: - GP-2939: 修复游戏启动时包装命令会被添加两次的问题的问题 - GP-2936: 修复无法读取远古版本版本号的问题 diff --git a/_changelogs/dev/3.5/3.5.7.244.md b/src/content/changelogs/dev/3.5/3.5.7.244.md similarity index 94% rename from _changelogs/dev/3.5/3.5.7.244.md rename to src/content/changelogs/dev/3.5/3.5.7.244.md index 53f2c134..55d4d1da 100644 --- a/_changelogs/dev/3.5/3.5.7.244.md +++ b/src/content/changelogs/dev/3.5/3.5.7.244.md @@ -1,11 +1,8 @@ ---- ---- - - GP-2942: 支持更多格式的版本图标 - GP-2943: 添加更多默认皮肤,目前已与最新 Minecraft 保持一致 - GP-2948: 优化了启动时加载语言文件的性能 -错误修复: +错误修复: - GP-2948: 修复模组下载界面展示“损坏的模组”时,语言始终为系统默认,无法跟随 HMCL 配置文件的问题 - GP-2521: 添加外置登录时,应该请求并显示当前语言的外置登录服务端名称,而不是默认英文名称 diff --git a/_changelogs/dev/3.5/3.5.7.245.md b/src/content/changelogs/dev/3.5/3.5.7.245.md similarity index 96% rename from _changelogs/dev/3.5/3.5.7.245.md rename to src/content/changelogs/dev/3.5/3.5.7.245.md index 7989776a..9056aec4 100644 --- a/_changelogs/dev/3.5/3.5.7.245.md +++ b/src/content/changelogs/dev/3.5/3.5.7.245.md @@ -1,6 +1,3 @@ ---- ---- - - GP-2950: 未设置字体时会尝试从当前路径寻找 `font.ttf` 或 `font.otf` 并加载为默认字体 - GP-2953: 清理残余 MCBBS 相关内容 - GP-2951: 重新实现日志记录,保留最近 20 次启动的日志文件,退出时会压缩日志,并优化日志性能表现 diff --git a/_changelogs/dev/3.5/3.5.7.246.md b/src/content/changelogs/dev/3.5/3.5.7.246.md similarity index 97% rename from _changelogs/dev/3.5/3.5.7.246.md rename to src/content/changelogs/dev/3.5/3.5.7.246.md index be3ae45f..5fae9809 100644 --- a/_changelogs/dev/3.5/3.5.7.246.md +++ b/src/content/changelogs/dev/3.5/3.5.7.246.md @@ -1,6 +1,3 @@ ---- ---- - - GP-2797: 添加更多日志分析规则 - GP-2958: 重新加入对 MCBBS 的鸣谢 diff --git a/_changelogs/dev/3.5/3.5.7.247.md b/src/content/changelogs/dev/3.5/3.5.7.247.md similarity index 98% rename from _changelogs/dev/3.5/3.5.7.247.md rename to src/content/changelogs/dev/3.5/3.5.7.247.md index ea383c31..97e885b3 100644 --- a/_changelogs/dev/3.5/3.5.7.247.md +++ b/src/content/changelogs/dev/3.5/3.5.7.247.md @@ -1,6 +1,3 @@ ---- ---- - - GP-2990: 更新指向 XZ 主页的链接 - GP-3017: 在 Linux 系统上删除文件至回收站增加对 Cinnamon 桌面环境的支持 - GP-3042: 对日志中 `Someone is closing me!` 不做检测(这是正常退出的提示) diff --git a/_changelogs/dev/3.5/3.5.8.248.md b/src/content/changelogs/dev/3.5/3.5.8.248.md similarity index 98% rename from _changelogs/dev/3.5/3.5.8.248.md rename to src/content/changelogs/dev/3.5/3.5.8.248.md index 200425e7..c52c76eb 100644 --- a/_changelogs/dev/3.5/3.5.8.248.md +++ b/src/content/changelogs/dev/3.5/3.5.8.248.md @@ -1,6 +1,3 @@ ---- ---- - - GP-3023: `特定游戏设置 - 自动安装` 中禁止升级或卸载由其他启动器安装的游戏组件 - GP-3089: 优化 `下载 - 模组` 中模组版本推荐逻辑 - GP-3097: 更新 Linux ARM64 支持 diff --git a/_changelogs/dev/3.5/3.5.8.249.md b/src/content/changelogs/dev/3.5/3.5.8.249.md similarity index 89% rename from _changelogs/dev/3.5/3.5.8.249.md rename to src/content/changelogs/dev/3.5/3.5.8.249.md index 5399df3f..5fc3bbfe 100644 --- a/_changelogs/dev/3.5/3.5.8.249.md +++ b/src/content/changelogs/dev/3.5/3.5.8.249.md @@ -1,4 +1 @@ ---- ---- - - **GP-3113 \[重要\]: 修复无法启动部分 Forge 版本的问题** diff --git a/_changelogs/dev/3.5/3.5.8.250.md b/src/content/changelogs/dev/3.5/3.5.8.250.md similarity index 99% rename from _changelogs/dev/3.5/3.5.8.250.md rename to src/content/changelogs/dev/3.5/3.5.8.250.md index 1e0fbc92..242346d1 100644 --- a/_changelogs/dev/3.5/3.5.8.250.md +++ b/src/content/changelogs/dev/3.5/3.5.8.250.md @@ -1,6 +1,3 @@ ---- ---- - - **GP-3121、GP-3194 \[重要\]: 微软登录界面对 Xbox 400 错误给予提示** - GP-3197: 优化对 Linux RISC-V 64、FreeBSD x86-64 平台的支持 - GP-3058: 支持解析更多游戏版本号 diff --git a/_changelogs/dev/3.5/3.5.8.251.md b/src/content/changelogs/dev/3.5/3.5.8.251.md similarity index 91% rename from _changelogs/dev/3.5/3.5.8.251.md rename to src/content/changelogs/dev/3.5/3.5.8.251.md index 8c95e882..ad1e7dab 100644 --- a/_changelogs/dev/3.5/3.5.8.251.md +++ b/src/content/changelogs/dev/3.5/3.5.8.251.md @@ -1,4 +1 @@ ---- ---- - - **GP-3201 \[重要\]: 修复 HMCL 在 Java 8 上运行时游戏安装界面卡片布局的问题** diff --git a/_changelogs/dev/3.5/3.5.9.252.md b/src/content/changelogs/dev/3.5/3.5.9.252.md similarity index 96% rename from _changelogs/dev/3.5/3.5.9.252.md rename to src/content/changelogs/dev/3.5/3.5.9.252.md index ea9479b6..d7a73a00 100644 --- a/_changelogs/dev/3.5/3.5.9.252.md +++ b/src/content/changelogs/dev/3.5/3.5.9.252.md @@ -1,6 +1,3 @@ ---- ---- - - GP-3251、GP-3259: 支持从官方源下载 Forge 错误修复: diff --git a/_changelogs/dev/3.5/3.5.9.254.md b/src/content/changelogs/dev/3.5/3.5.9.254.md similarity index 88% rename from _changelogs/dev/3.5/3.5.9.254.md rename to src/content/changelogs/dev/3.5/3.5.9.254.md index 1f87fb69..56c4dee7 100644 --- a/_changelogs/dev/3.5/3.5.9.254.md +++ b/src/content/changelogs/dev/3.5/3.5.9.254.md @@ -1,4 +1 @@ ---- ---- - - GP-3256: 选择要安装的 Forge 版本时显示版本发布时间 diff --git a/_changelogs/dev/3.5/3.5.9.255.md b/src/content/changelogs/dev/3.5/3.5.9.255.md similarity index 97% rename from _changelogs/dev/3.5/3.5.9.255.md rename to src/content/changelogs/dev/3.5/3.5.9.255.md index 194774bb..231264ca 100644 --- a/_changelogs/dev/3.5/3.5.9.255.md +++ b/src/content/changelogs/dev/3.5/3.5.9.255.md @@ -1,6 +1,3 @@ ---- ---- - - GP-3233: 在 Linux/FreeBSD 平台打开日志、模组等位置时会选中该文件 - GP-3274: 优化日志窗口 - GP-3062: 支持从 SDKMAN! 默认目录查找可用 Java 路径 diff --git a/_changelogs/dev/3.5/3.5.9.257.md b/src/content/changelogs/dev/3.5/3.5.9.257.md similarity index 99% rename from _changelogs/dev/3.5/3.5.9.257.md rename to src/content/changelogs/dev/3.5/3.5.9.257.md index 8a44070f..d6b9c99e 100644 --- a/_changelogs/dev/3.5/3.5.9.257.md +++ b/src/content/changelogs/dev/3.5/3.5.9.257.md @@ -1,6 +1,3 @@ ---- ---- - - GP-2988: 添加 Java 管理页面,优化查找、下载、自动选择 Java 等功能 ([BV1WvCUY4EwK](https://www.bilibili.com/video/BV1WvCUY4EwK)) - GP-3262: 优化模组下载页面按钮的翻译文本 - GP-3313: 启动时不再检测 Fractureiser 病毒 diff --git a/_changelogs/dev/3.5/3.5.9.258.md b/src/content/changelogs/dev/3.5/3.5.9.258.md similarity index 98% rename from _changelogs/dev/3.5/3.5.9.258.md rename to src/content/changelogs/dev/3.5/3.5.9.258.md index ef15947d..777a08d8 100644 --- a/_changelogs/dev/3.5/3.5.9.258.md +++ b/src/content/changelogs/dev/3.5/3.5.9.258.md @@ -1,6 +1,3 @@ ---- ---- - - GP-3342, GP-3369, GP-3371: 优化 Java 下载功能 - GP-3363: 支持下载 IBM Semeru Runtime (OpenJ9) - GP-3375: 支持微软账户上传皮肤 diff --git a/_changelogs/dev/3.5/3.5.9.259.md b/src/content/changelogs/dev/3.5/3.5.9.259.md similarity index 96% rename from _changelogs/dev/3.5/3.5.9.259.md rename to src/content/changelogs/dev/3.5/3.5.9.259.md index 6bc62b48..bb4303ad 100644 --- a/_changelogs/dev/3.5/3.5.9.259.md +++ b/src/content/changelogs/dev/3.5/3.5.9.259.md @@ -1,6 +1,3 @@ ---- ---- - - GP-3378: 优化首页公告,添加隐藏按钮 - 优化文本描述 diff --git a/_changelogs/dev/3.5/3.5.9.260.md b/src/content/changelogs/dev/3.5/3.5.9.260.md similarity index 98% rename from _changelogs/dev/3.5/3.5.9.260.md rename to src/content/changelogs/dev/3.5/3.5.9.260.md index 77b4c43c..61b8b9d0 100644 --- a/_changelogs/dev/3.5/3.5.9.260.md +++ b/src/content/changelogs/dev/3.5/3.5.9.260.md @@ -1,6 +1,3 @@ ---- ---- - - GP-3232: 支持在模组管理页面通过右键单击模组查看模组详情 - GP-3396、GP-3397、GP-3406: 优化账户列表页面按钮图标 - GP-3424: 调整字体选择组合框的默认宽度 diff --git a/_changelogs/dev/3.5/3.5.9.261.md b/src/content/changelogs/dev/3.5/3.5.9.261.md similarity index 94% rename from _changelogs/dev/3.5/3.5.9.261.md rename to src/content/changelogs/dev/3.5/3.5.9.261.md index b930ebd4..fc67bbc0 100644 --- a/_changelogs/dev/3.5/3.5.9.261.md +++ b/src/content/changelogs/dev/3.5/3.5.9.261.md @@ -1,6 +1,3 @@ ---- ---- - - GP-3428: 优化文本描述 错误修复: diff --git a/_changelogs/dev/3.5/3.5.9.262.md b/src/content/changelogs/dev/3.5/3.5.9.262.md similarity index 96% rename from _changelogs/dev/3.5/3.5.9.262.md rename to src/content/changelogs/dev/3.5/3.5.9.262.md index f1203b17..49b54157 100644 --- a/_changelogs/dev/3.5/3.5.9.262.md +++ b/src/content/changelogs/dev/3.5/3.5.9.262.md @@ -1,6 +1,3 @@ ---- ---- - 错误修复: - GP-3308: 修复启动时自动补全 Modrinth 整合包中已禁用模组的问题 diff --git a/_changelogs/dev/3.5/3.5.9.263.md b/src/content/changelogs/dev/3.5/3.5.9.263.md similarity index 98% rename from _changelogs/dev/3.5/3.5.9.263.md rename to src/content/changelogs/dev/3.5/3.5.9.263.md index c437c1b0..a5be1548 100644 --- a/_changelogs/dev/3.5/3.5.9.263.md +++ b/src/content/changelogs/dev/3.5/3.5.9.263.md @@ -1,6 +1,3 @@ ---- ---- - - GP-3435: 在游戏下载列表中添加 Minecraft Wiki 链接 - GP-3450: 使最小化按钮居中 - 优化文本描述 diff --git a/_changelogs/dev/3.6/3.6.11.264.md b/src/content/changelogs/dev/3.6/3.6.11.264.md similarity index 96% rename from _changelogs/dev/3.6/3.6.11.264.md rename to src/content/changelogs/dev/3.6/3.6.11.264.md index db007679..dcc14fff 100644 --- a/_changelogs/dev/3.6/3.6.11.264.md +++ b/src/content/changelogs/dev/3.6/3.6.11.264.md @@ -1,6 +1,3 @@ ---- ---- - - GP-3457: 实验性支持 WebP 格式的背景图片 - GP-3476: 在 Linux RISC-V 平台添加 [banshanjdk-8](https://www.zthread.cn/) 的下载地址 diff --git a/_changelogs/dev/3.6/3.6.11.265.md b/src/content/changelogs/dev/3.6/3.6.11.265.md similarity index 98% rename from _changelogs/dev/3.6/3.6.11.265.md rename to src/content/changelogs/dev/3.6/3.6.11.265.md index 69140c1b..b6ca5ce0 100644 --- a/_changelogs/dev/3.6/3.6.11.265.md +++ b/src/content/changelogs/dev/3.6/3.6.11.265.md @@ -1,6 +1,3 @@ ---- ---- - - GP-3458: 降低窗口阴影质量以改善性能 - GP-3484: 更新模组下载页游戏版本列表至 1.21.4 diff --git a/_changelogs/dev/3.6/3.6.11.266.md b/src/content/changelogs/dev/3.6/3.6.11.266.md similarity index 98% rename from _changelogs/dev/3.6/3.6.11.266.md rename to src/content/changelogs/dev/3.6/3.6.11.266.md index bb7668b9..1492cf9b 100644 --- a/_changelogs/dev/3.6/3.6.11.266.md +++ b/src/content/changelogs/dev/3.6/3.6.11.266.md @@ -1,6 +1,3 @@ ---- ---- - - GP-3517: 游戏下载页面添加搜索功能 - GP-3244: 安装新游戏/整合包时检查版本名称是否包含非 ASCII 字符 - GP-3523: 模组列表页中按下 ESC 键时取消选中 diff --git a/_changelogs/dev/3.6/3.6.11.267.md b/src/content/changelogs/dev/3.6/3.6.11.267.md similarity index 98% rename from _changelogs/dev/3.6/3.6.11.267.md rename to src/content/changelogs/dev/3.6/3.6.11.267.md index f98e6643..670df751 100644 --- a/_changelogs/dev/3.6/3.6.11.267.md +++ b/src/content/changelogs/dev/3.6/3.6.11.267.md @@ -1,6 +1,3 @@ ---- ---- - - GP-3601: 更新模组数据 - GP-3603: 支持临时隐藏预览版提示 - GP-3610: 统一软件内日期时间格式 diff --git a/_changelogs/dev/3.6/3.6.11.268.md b/src/content/changelogs/dev/3.6/3.6.11.268.md similarity index 95% rename from _changelogs/dev/3.6/3.6.11.268.md rename to src/content/changelogs/dev/3.6/3.6.11.268.md index 8ad9b51e..c4a55172 100644 --- a/_changelogs/dev/3.6/3.6.11.268.md +++ b/src/content/changelogs/dev/3.6/3.6.11.268.md @@ -1,6 +1,3 @@ ---- ---- - - GP-3613: 优化软件内日期时间格式 - GP-3605: 添加 NeoForge 的 BMCLAPI 代理支持 diff --git a/_changelogs/dev/3.6/3.6.11.269.md b/src/content/changelogs/dev/3.6/3.6.11.269.md similarity index 99% rename from _changelogs/dev/3.6/3.6.11.269.md rename to src/content/changelogs/dev/3.6/3.6.11.269.md index e0575236..33f58c6f 100644 --- a/_changelogs/dev/3.6/3.6.11.269.md +++ b/src/content/changelogs/dev/3.6/3.6.11.269.md @@ -1,6 +1,3 @@ ---- ---- - - GP-3619: 在启动器日志中记录处理器型号(仅 Windows) - GP-3620: 修改整合包下载对话框内“安装到当前版本”按钮的文本为“安装整合包”,修正对话框标题 - GP-3621: 点击安装整合包时无条件关闭整合包下载对话框 diff --git a/_changelogs/dev/3.6/3.6.11.270.md b/src/content/changelogs/dev/3.6/3.6.11.270.md similarity index 97% rename from _changelogs/dev/3.6/3.6.11.270.md rename to src/content/changelogs/dev/3.6/3.6.11.270.md index e3fc1e1b..45c85c5e 100644 --- a/_changelogs/dev/3.6/3.6.11.270.md +++ b/src/content/changelogs/dev/3.6/3.6.11.270.md @@ -1,6 +1,3 @@ ---- ---- - 版本介绍:[cv40898336](https://www.bilibili.com/opus/1040543870006329351) - GP-3650: 点击账户卡片空白处时切换账户 @@ -14,7 +11,7 @@ - GP-3668, GP-3680: 优化动画效果 - 优化软件文案,修订翻译 -错误修复: +错误修复: - GP-3623: 修复离线账户皮肤对话框「本地皮肤图片文件」部分选项文字被覆盖的问题 - GP-3651: 当微软账户 Token 过期时应当刷新账户 diff --git a/_changelogs/dev/3.6/3.6.11.271.md b/src/content/changelogs/dev/3.6/3.6.11.271.md similarity index 98% rename from _changelogs/dev/3.6/3.6.11.271.md rename to src/content/changelogs/dev/3.6/3.6.11.271.md index 695e590e..fce01975 100644 --- a/_changelogs/dev/3.6/3.6.11.271.md +++ b/src/content/changelogs/dev/3.6/3.6.11.271.md @@ -1,6 +1,3 @@ ---- ---- - 版本介绍:[cv40935564](https://www.bilibili.com/opus/1041842019579723779) - GP-3689: 在世界管理界面显示世界图标 diff --git a/_changelogs/dev/3.6/3.6.11.272.md b/src/content/changelogs/dev/3.6/3.6.11.272.md similarity index 98% rename from _changelogs/dev/3.6/3.6.11.272.md rename to src/content/changelogs/dev/3.6/3.6.11.272.md index e230e449..a1b94e63 100644 --- a/_changelogs/dev/3.6/3.6.11.272.md +++ b/src/content/changelogs/dev/3.6/3.6.11.272.md @@ -1,6 +1,3 @@ ---- ---- - 版本介绍:[cv41026311](https://www.bilibili.com/opus/1044971255465246758) - GP-3717: 显示对话框时隐藏焦点 diff --git a/_changelogs/dev/3.6/3.6.11.273.md b/src/content/changelogs/dev/3.6/3.6.11.273.md similarity index 98% rename from _changelogs/dev/3.6/3.6.11.273.md rename to src/content/changelogs/dev/3.6/3.6.11.273.md index c8fa706a..8d015923 100644 --- a/_changelogs/dev/3.6/3.6.11.273.md +++ b/src/content/changelogs/dev/3.6/3.6.11.273.md @@ -1,6 +1,3 @@ ---- ---- - 版本介绍:[cv41100626](https://www.bilibili.com/opus/1047507571079905315) - GP-3432: 优化滚动页面时的性能 (by Glavo) diff --git a/_changelogs/dev/3.6/3.6.12.274.md b/src/content/changelogs/dev/3.6/3.6.12.274.md similarity index 99% rename from _changelogs/dev/3.6/3.6.12.274.md rename to src/content/changelogs/dev/3.6/3.6.12.274.md index 10fd40cc..63d8c350 100644 --- a/_changelogs/dev/3.6/3.6.12.274.md +++ b/src/content/changelogs/dev/3.6/3.6.12.274.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍:[cv41243757](https://www.bilibili.com/opus/1052394956088410133) - GP-3247: 支持下载部分特殊版本 (by zkitefly) diff --git a/_changelogs/dev/3.6/3.6.12.275.md b/src/content/changelogs/dev/3.6/3.6.12.275.md similarity index 99% rename from _changelogs/dev/3.6/3.6.12.275.md rename to src/content/changelogs/dev/3.6/3.6.12.275.md index 056a3b42..45c24d75 100644 --- a/_changelogs/dev/3.6/3.6.12.275.md +++ b/src/content/changelogs/dev/3.6/3.6.12.275.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍:[cv41320419](https://www.bilibili.com/opus/1055009465924845575) - GP-3080: 反序列化账户信息时优先将数字解析为 Long (by zly2006) diff --git a/_changelogs/dev/3.6/3.6.12.276.md b/src/content/changelogs/dev/3.6/3.6.12.276.md similarity index 98% rename from _changelogs/dev/3.6/3.6.12.276.md rename to src/content/changelogs/dev/3.6/3.6.12.276.md index f13f9b65..bca0307f 100644 --- a/_changelogs/dev/3.6/3.6.12.276.md +++ b/src/content/changelogs/dev/3.6/3.6.12.276.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍:[cv41401127](https://www.bilibili.com/opus/1057821527000481797) - GP-3834: 将 Gson 更新至 2.13.0 (by Glavo) diff --git a/_changelogs/dev/3.6/3.6.12.278.md b/src/content/changelogs/dev/3.6/3.6.12.278.md similarity index 98% rename from _changelogs/dev/3.6/3.6.12.278.md rename to src/content/changelogs/dev/3.6/3.6.12.278.md index 9b561815..3db27116 100644 --- a/_changelogs/dev/3.6/3.6.12.278.md +++ b/src/content/changelogs/dev/3.6/3.6.12.278.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍:[cv41495241](https://www.bilibili.com/opus/1060912529106010120) - GP-3840: 将 HMCLauncher 拆分至独立项目 (by Glavo) diff --git a/_changelogs/dev/3.6/3.6.12.279.md b/src/content/changelogs/dev/3.6/3.6.12.279.md similarity index 99% rename from _changelogs/dev/3.6/3.6.12.279.md rename to src/content/changelogs/dev/3.6/3.6.12.279.md index 3e8cd876..01d8e790 100644 --- a/_changelogs/dev/3.6/3.6.12.279.md +++ b/src/content/changelogs/dev/3.6/3.6.12.279.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍:[cv41864476](https://www.bilibili.com/opus/1073249101108215817) - GP-3927: 将 JavaFX 更新至 17.0.15/24.0.1 (by Glavo) diff --git a/_changelogs/dev/3.6/3.6.12.280.md b/src/content/changelogs/dev/3.6/3.6.12.280.md similarity index 98% rename from _changelogs/dev/3.6/3.6.12.280.md rename to src/content/changelogs/dev/3.6/3.6.12.280.md index 03bd45a4..16a7bcc9 100644 --- a/_changelogs/dev/3.6/3.6.12.280.md +++ b/src/content/changelogs/dev/3.6/3.6.12.280.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍:[cv41943291](https://www.bilibili.com/opus/1076123117136379910) - GP-3979: 更新 HMCLauncher for Windows 至 3.6.0.3 (by Glavo) diff --git a/_changelogs/dev/3.6/3.6.12.281.md b/src/content/changelogs/dev/3.6/3.6.12.281.md similarity index 99% rename from _changelogs/dev/3.6/3.6.12.281.md rename to src/content/changelogs/dev/3.6/3.6.12.281.md index dfd6cdf6..5a297a89 100644 --- a/_changelogs/dev/3.6/3.6.12.281.md +++ b/src/content/changelogs/dev/3.6/3.6.12.281.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍:[cv42015225](https://www.bilibili.com/opus/1078682397931732992) - GP-3992: 更新 HMCLauncher for Windows 至 3.6.0.4 (by Glavo) diff --git a/_changelogs/dev/3.6/3.6.12.282.md b/src/content/changelogs/dev/3.6/3.6.12.282.md similarity index 98% rename from _changelogs/dev/3.6/3.6.12.282.md rename to src/content/changelogs/dev/3.6/3.6.12.282.md index 164991a3..9026b415 100644 --- a/_changelogs/dev/3.6/3.6.12.282.md +++ b/src/content/changelogs/dev/3.6/3.6.12.282.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍:[cv42087635](https://www.bilibili.com/opus/1081247270761922583) - GP-4011: 更新模组下载页游戏版本列表至 1.21.6 (by 3gf8jv4dv) diff --git a/_changelogs/dev/3.6/3.6.12.283.md b/src/content/changelogs/dev/3.6/3.6.12.283.md similarity index 97% rename from _changelogs/dev/3.6/3.6.12.283.md rename to src/content/changelogs/dev/3.6/3.6.12.283.md index 62e07f11..79abd2a2 100644 --- a/_changelogs/dev/3.6/3.6.12.283.md +++ b/src/content/changelogs/dev/3.6/3.6.12.283.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍:[cv42221199](https://www.bilibili.com/opus/1085763106775236609) - GP-4035: 更新模组下载页游戏版本列表至 1.21.7 (by Glavo) diff --git a/_changelogs/dev/3.6/3.6.14.286.md b/src/content/changelogs/dev/3.6/3.6.14.286.md similarity index 97% rename from _changelogs/dev/3.6/3.6.14.286.md rename to src/content/changelogs/dev/3.6/3.6.14.286.md index 5eacfc84..f2c3117c 100644 --- a/_changelogs/dev/3.6/3.6.14.286.md +++ b/src/content/changelogs/dev/3.6/3.6.14.286.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍:[cv42361009](https://www.bilibili.com/opus/1090573792301809672) - GP-4086: 更新 HMCLauncher for Windows 至 3.6.0.6 (by Glavo) diff --git a/_changelogs/dev/3.6/3.6.15.287.md b/src/content/changelogs/dev/3.6/3.6.15.287.md similarity index 98% rename from _changelogs/dev/3.6/3.6.15.287.md rename to src/content/changelogs/dev/3.6/3.6.15.287.md index bd11d01d..b2ce528d 100644 --- a/_changelogs/dev/3.6/3.6.15.287.md +++ b/src/content/changelogs/dev/3.6/3.6.15.287.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍:[cv42465621](https://www.bilibili.com/opus/1094172815950610439) - GP-4078: 使用 Java 11 构建 HMCL (by Glavo) diff --git a/_changelogs/dev/3.6/3.6.15.288.md b/src/content/changelogs/dev/3.6/3.6.15.288.md similarity index 99% rename from _changelogs/dev/3.6/3.6.15.288.md rename to src/content/changelogs/dev/3.6/3.6.15.288.md index 3278a972..11c0a962 100644 --- a/_changelogs/dev/3.6/3.6.15.288.md +++ b/src/content/changelogs/dev/3.6/3.6.15.288.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍:[cv42545461](https://www.bilibili.com/opus/1096749298097324084) - GP-4168: 将 Gradle 更新至 9.0.0 (by Glavo) diff --git a/_changelogs/dev/3.6/3.6.15.290.md b/src/content/changelogs/dev/3.6/3.6.15.290.md similarity index 99% rename from _changelogs/dev/3.6/3.6.15.290.md rename to src/content/changelogs/dev/3.6/3.6.15.290.md index d607f6e9..55c92a7c 100644 --- a/_changelogs/dev/3.6/3.6.15.290.md +++ b/src/content/changelogs/dev/3.6/3.6.15.290.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍:[cv42726031](https://www.bilibili.com/opus/1102361669321883650) - GP-3205: 支持设置背景的不透明度 (by 吞云) diff --git a/_changelogs/dev/3.6/3.6.16.291.md b/src/content/changelogs/dev/3.6/3.6.16.291.md similarity index 99% rename from _changelogs/dev/3.6/3.6.16.291.md rename to src/content/changelogs/dev/3.6/3.6.16.291.md index 05f49349..9da1ea6a 100644 --- a/_changelogs/dev/3.6/3.6.16.291.md +++ b/src/content/changelogs/dev/3.6/3.6.16.291.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍:[cv42815084](https://www.bilibili.com/opus/1105037713092902914) - GP-4274: 更新 chunkbase 种子地图链接 (by Wulian233) diff --git a/_changelogs/dev/3.6/3.6.16.292.md b/src/content/changelogs/dev/3.6/3.6.16.292.md similarity index 99% rename from _changelogs/dev/3.6/3.6.16.292.md rename to src/content/changelogs/dev/3.6/3.6.16.292.md index 1a425fa8..ee91b258 100644 --- a/_changelogs/dev/3.6/3.6.16.292.md +++ b/src/content/changelogs/dev/3.6/3.6.16.292.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍:[cv42887511](https://www.bilibili.com/opus/1107280399014297618) - 添加文言文翻译 (by Glavo, Andypsl8, Wulian233) ([BV1vNh9zqEEP](https://www.bilibili.com/video/BV1vNh9zqEEP)) diff --git a/_changelogs/dev/3.6/3.6.16.293.md b/src/content/changelogs/dev/3.6/3.6.16.293.md similarity index 99% rename from _changelogs/dev/3.6/3.6.16.293.md rename to src/content/changelogs/dev/3.6/3.6.16.293.md index 1ffaa2de..fe6c2e63 100644 --- a/_changelogs/dev/3.6/3.6.16.293.md +++ b/src/content/changelogs/dev/3.6/3.6.16.293.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍: [cv42962968](https://www.bilibili.com/opus/1109908347762507785) - GP-4272: 支持自动安装 Cleanroom (by 辞庐, zkitefly) diff --git a/_changelogs/dev/3.6/3.6.17.294.md b/src/content/changelogs/dev/3.6/3.6.17.294.md similarity index 99% rename from _changelogs/dev/3.6/3.6.17.294.md rename to src/content/changelogs/dev/3.6/3.6.17.294.md index f38d4e73..93ab525b 100644 --- a/_changelogs/dev/3.6/3.6.17.294.md +++ b/src/content/changelogs/dev/3.6/3.6.17.294.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍: [cv43036782](https://www.bilibili.com/opus/1112420907913052164) - GP-4452: 使用 Java 17 构建 HMCL (by Glavo) diff --git a/_changelogs/dev/3.6/3.6.17.296.md b/src/content/changelogs/dev/3.6/3.6.17.296.md similarity index 99% rename from _changelogs/dev/3.6/3.6.17.296.md rename to src/content/changelogs/dev/3.6/3.6.17.296.md index 9ff1763f..7c38d1d6 100644 --- a/_changelogs/dev/3.6/3.6.17.296.md +++ b/src/content/changelogs/dev/3.6/3.6.17.296.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍: [cv43101143](https://www.bilibili.com/opus/1114532880771448834) - GP-4454: 将默认 JavaFX 版本更新至 21.0.8/25 (by Glavo) diff --git a/_changelogs/dev/3.6/3.6.18.297.md b/src/content/changelogs/dev/3.6/3.6.18.297.md similarity index 99% rename from _changelogs/dev/3.6/3.6.18.297.md rename to src/content/changelogs/dev/3.6/3.6.18.297.md index b74e3122..d40aeedc 100644 --- a/_changelogs/dev/3.6/3.6.18.297.md +++ b/src/content/changelogs/dev/3.6/3.6.18.297.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍: [cv43205532](https://www.bilibili.com/opus/1117948655408513026) - GP-4520: 将 Gradle 更新至 9.1.0 (by Glavo) diff --git a/_changelogs/dev/3.7/3.7.0.300.md b/src/content/changelogs/dev/3.7/3.7.0.300.md similarity index 99% rename from _changelogs/dev/3.7/3.7.0.300.md rename to src/content/changelogs/dev/3.7/3.7.0.300.md index e31b1e6e..2a0e69b6 100644 --- a/_changelogs/dev/3.7/3.7.0.300.md +++ b/src/content/changelogs/dev/3.7/3.7.0.300.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍: [cv43252149](https://www.bilibili.com/opus/1119832333534363699) - GP-4215: 在启动器中内置 Terracotta | 陶瓦联机 (by Burning_TNT)
diff --git a/_changelogs/dev/3.7/3.7.0.301.md b/src/content/changelogs/dev/3.7/3.7.0.301.md similarity index 99% rename from _changelogs/dev/3.7/3.7.0.301.md rename to src/content/changelogs/dev/3.7/3.7.0.301.md index bfddc064..44455ba7 100644 --- a/_changelogs/dev/3.7/3.7.0.301.md +++ b/src/content/changelogs/dev/3.7/3.7.0.301.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍: [cv43345643](https://www.bilibili.com/opus/1123164528073244704) - GP-4608: 更新陶瓦联机至 0.3.10 (by Burning_TNT) diff --git a/_changelogs/dev/3.7/3.7.0.302.md b/src/content/changelogs/dev/3.7/3.7.0.302.md similarity index 73% rename from _changelogs/dev/3.7/3.7.0.302.md rename to src/content/changelogs/dev/3.7/3.7.0.302.md index 269c4ed5..c0c08c40 100644 --- a/_changelogs/dev/3.7/3.7.0.302.md +++ b/src/content/changelogs/dev/3.7/3.7.0.302.md @@ -1,9 +1,6 @@ ---- ---- - 详细版本介绍: [cv43370363](https://www.bilibili.com/opus/1123883127676076033) 错误修复: -- GP-4665: 排序模组时忽略文件名大小写 (by Glavo) +- GP-4665: 排序模组时忽略文件名大小写 (by Glavo) - GP-4674: 修复不在场景中的按钮尝试取消自身焦点时触发 NPE 的问题 (by Glavo) diff --git a/_changelogs/dev/3.8/3.8.0.303.md b/src/content/changelogs/dev/3.8/3.8.0.303.md similarity index 84% rename from _changelogs/dev/3.8/3.8.0.303.md rename to src/content/changelogs/dev/3.8/3.8.0.303.md index c20f6731..bfe22f62 100644 --- a/_changelogs/dev/3.8/3.8.0.303.md +++ b/src/content/changelogs/dev/3.8/3.8.0.303.md @@ -1,12 +1,9 @@ ---- ---- - 详细版本介绍: [cv43416106](https://www.bilibili.com/opus/1125375645996548104) - GP-4681: 将 HMCLauncher 更新至 3.7.0.1 (by Glavo) - GP-4682: 将陶瓦联机更新至 0.3.10 (by Burning_TNT) -- GP-4688: 调整陶瓦联机界面左侧按钮 (by Glavo) +- GP-4688: 调整陶瓦联机界面左侧按钮 (by Glavo) - GP-4686: 优化陶瓦联机用户须知对话框 (by Glavo) -- GP-4695: 删除 VersionPage.Skin 中未使用的 BorderPane (by Glavo) +- GP-4695: 删除 VersionPage.Skin 中未使用的 BorderPane (by Glavo) - GP-4694: 优化 Task 的资源占用 (by Glavo) -- GP-4687: 优化陶瓦联机的复制邀请码功能 (by Glavo) +- GP-4687: 优化陶瓦联机的复制邀请码功能 (by Glavo) diff --git a/_changelogs/dev/3.8/3.8.0.304.md b/src/content/changelogs/dev/3.8/3.8.0.304.md similarity index 81% rename from _changelogs/dev/3.8/3.8.0.304.md rename to src/content/changelogs/dev/3.8/3.8.0.304.md index 0a76f759..900f24d5 100644 --- a/_changelogs/dev/3.8/3.8.0.304.md +++ b/src/content/changelogs/dev/3.8/3.8.0.304.md @@ -1,13 +1,10 @@ ---- ---- - 详细版本介绍: [cv43498590](https://www.bilibili.com/opus/1127961516963790853) - GP-4675: 通过解析 IANA 语言子标签注册表增强本地化功能 (by Glavo) - GP-4700: 当且仅当用户位于中国大陆地区时尝试从镜像源下载陶瓦联机 (by Burning_TNT) - GP-4705: 在陶瓦联机界面的启动游戏按钮中显示当前实例名称 (by Glavo) - GP-4703: 优化更新日志展示功能 (by Glavo) -- GP-4709: 本地化下载速度显示 (by Glavo) +- GP-4709: 本地化下载速度显示 (by Glavo) - GP-4712: 优化软件文案,修订翻译 (by 3gf8jv4dv) -- GP-4697: 优化没有可启动的游戏时的提示 (by Glavo) -- GP-4696: 在外部链接按钮上安装 Tooltip (by neveler) +- GP-4697: 优化没有可启动的游戏时的提示 (by Glavo) +- GP-4696: 在外部链接按钮上安装 Tooltip (by neveler) diff --git a/_changelogs/dev/3.8/3.8.0.305.md b/src/content/changelogs/dev/3.8/3.8.0.305.md similarity index 80% rename from _changelogs/dev/3.8/3.8.0.305.md rename to src/content/changelogs/dev/3.8/3.8.0.305.md index 5f587ea4..883775ec 100644 --- a/_changelogs/dev/3.8/3.8.0.305.md +++ b/src/content/changelogs/dev/3.8/3.8.0.305.md @@ -1,12 +1,9 @@ ---- ---- - 详细版本介绍: [cv43527381](https://www.bilibili.com/opus/1128792850791661574) -- GP-4724: Bump Terracotta to 0.3.12 (by Burning_TNT) +- GP-4724: Bump Terracotta to 0.3.12 (by Burning_TNT) - GP-4698: 在被打包为 macOS App 时不设置 macOS Dock 栏图标 (by YiZhiMCQiu) - GP-4727: 将官方群组入口重新移动到主界面 (by Glavo) 错误修复: -- GP-4721: 修复 `JFXListViewSkin` 创建大量平台线程的问题 (by Glavo) \ No newline at end of file +- GP-4721: 修复 `JFXListViewSkin` 创建大量平台线程的问题 (by Glavo) diff --git a/_changelogs/dev/3.8/3.8.0.306.md b/src/content/changelogs/dev/3.8/3.8.0.306.md similarity index 90% rename from _changelogs/dev/3.8/3.8.0.306.md rename to src/content/changelogs/dev/3.8/3.8.0.306.md index c56025cc..f1d73d9c 100644 --- a/_changelogs/dev/3.8/3.8.0.306.md +++ b/src/content/changelogs/dev/3.8/3.8.0.306.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍: [cv43585405](https://www.bilibili.com/opus/1130662046380064777) - GP-4723: 将陶瓦联机更新至 0.3.13 (by Burning_TNT) @@ -12,4 +9,4 @@ 错误修复: -- GP-4736: 修复 FreeBSD x86-64 平台上错误地将所有版本视作未经测试的版本的问题 (by Glavo) \ No newline at end of file +- GP-4736: 修复 FreeBSD x86-64 平台上错误地将所有版本视作未经测试的版本的问题 (by Glavo) diff --git a/_changelogs/dev/3.8/3.8.0.307.md b/src/content/changelogs/dev/3.8/3.8.0.307.md similarity index 97% rename from _changelogs/dev/3.8/3.8.0.307.md rename to src/content/changelogs/dev/3.8/3.8.0.307.md index f9ede97b..ab5e8642 100644 --- a/_changelogs/dev/3.8/3.8.0.307.md +++ b/src/content/changelogs/dev/3.8/3.8.0.307.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍: [cv43667929](https://www.bilibili.com/opus/1133254905203523601) - GP-4770: 更新模组数据 (2025-11-07) (by Glavo) diff --git a/_changelogs/dev/3.8/3.8.0.310.md b/src/content/changelogs/dev/3.8/3.8.0.310.md similarity index 91% rename from _changelogs/dev/3.8/3.8.0.310.md rename to src/content/changelogs/dev/3.8/3.8.0.310.md index 63e62455..a9c05902 100644 --- a/_changelogs/dev/3.8/3.8.0.310.md +++ b/src/content/changelogs/dev/3.8/3.8.0.310.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍: [cv43826997](https://www.bilibili.com/opus/1138003189119844354) - GP-4780, GP-4790, GP-4803, GP-4815: 优化界面动画效果 (by Glavo) @@ -12,7 +9,7 @@ - GP-4782: 添加对 25w46a_unobfuscated 的支持 (by Glavo) - GP-4779: 预加载页面以减少动画卡顿 (by Glavo) - GP-4776: 优化游戏实例默认图标 (by Glavo) -- GP-4762: 在 macOS 下使用系统最小化动画 (by Damon Lu) +- GP-4762: 在 macOS 下使用系统最小化动画 (by Damon Lu) - GP-4672: 优化数据包管理功能 (by mineDiamond) - GP-4612: 增强对数据包/资源包mcmeta的解析能力 (by mineDiamond) - GP-4809: 在 JFXListView 上启用平滑滚动 (by Glavo) @@ -25,4 +22,4 @@ - GP-4795: 修复初次打开部分页面时页面闪烁的问题 (by Glavo) - GP-4805: 修复复制实例时使用非法实例 ID 启动器行为异常的问题 (by Haowei Wen) - GP-4808: 修复 Windows 下全局游戏设置中本地库路径路径分隔符显示错误的问题 (by 辞庐) -- GP-4793: 使用低版本 Java 启动且带有 `--apply-to` 参数时提醒用户手动下载最新版本 HMCL (by Glavo) \ No newline at end of file +- GP-4793: 使用低版本 Java 启动且带有 `--apply-to` 参数时提醒用户手动下载最新版本 HMCL (by Glavo) diff --git a/_changelogs/dev/3.9/3.9.0.311.md b/src/content/changelogs/dev/3.9/3.9.0.311.md similarity index 99% rename from _changelogs/dev/3.9/3.9.0.311.md rename to src/content/changelogs/dev/3.9/3.9.0.311.md index ec0f8f57..d7293c3a 100644 --- a/_changelogs/dev/3.9/3.9.0.311.md +++ b/src/content/changelogs/dev/3.9/3.9.0.311.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍: [cv43951420](https://www.bilibili.com/opus/1141393481729572889) - GP-4835: 更新至 Material Design 3 颜色系统 (by Glavo) diff --git a/_changelogs/dev/3.9/3.9.0.313.md b/src/content/changelogs/dev/3.9/3.9.0.313.md similarity index 99% rename from _changelogs/dev/3.9/3.9.0.313.md rename to src/content/changelogs/dev/3.9/3.9.0.313.md index bd1beaf1..30382dc8 100644 --- a/_changelogs/dev/3.9/3.9.0.313.md +++ b/src/content/changelogs/dev/3.9/3.9.0.313.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍: [cv44304232](https://www.bilibili.com/opus/1148005940364050466) - GP-4992: 将 authlib-injector 更新至 1.2.7 (by Burning_TNT) diff --git a/src/content/changelogs/stable/3.10/3.10.1.md b/src/content/changelogs/stable/3.10/3.10.1.md new file mode 100644 index 00000000..9b9caa4e --- /dev/null +++ b/src/content/changelogs/stable/3.10/3.10.1.md @@ -0,0 +1,77 @@ +[详细版本介绍 (Bilibili)](https://www.bilibili.com/opus/1158118032843735049) + +- 启动器 + - GP-4289: 在添加游戏目录页面选择目录时自动填写名称 (by Dime, 辞庐, Glavo) + - GP-4882: 取消部分控件的连点限制 (by 辞庐) + - GP-5024: 使用副标题显示重启生效提示 (by neveler) + - GP-5032: 优化文本输入对话框体验 (by mineDiamond) + - GP-5035: 在非 Windows 平台也将文件名中的 `:` 视为非法字符 (by 辞庐) + - GP-5056: 优化列表滚动时的性能 (by Glavo) + - GP-5060: 优化独立窗口中对话框的样式 (by 辞庐) + - GP-5062: 更新 NBT 标签图标 (by mineDiamond) + - GP-5077: 优化设置页面内边距 (by neveler) + - GP-5082: 更新关于页面的版权年份至 2026 (by 辞庐) + - GP-5087: 更新启动按钮分隔符颜色 (by neveler) + - GP-5088: 首页切换实例菜单仅在菜单高度大于最大高度时显示垂直滚动条 (by neveler) + - GP-5101: 在进度指示器中添加圆角 (by 辞庐) + - GP-5107: 使切换按钮垂直居中对齐 (by 辞庐) + - GP-5108: 优化打包日志逻辑 (by 辞庐) + - GP-5114: 优化部分页面的布局效果 (by neveler) + - GP-5129: 优化输入框校验逻辑 (by 辞庐, Glavo) + - GP-5150: 调整平滑滚动的截止速度 (by Glavo) + - GP-5143, GP-5168: 优化对获取账号信息时发生 SSL 异常的处理 (by Xirren, 3gf8jv4dv) + - GP-5182: 支持重置日志字体 (by 辞庐) + - GP-5188: 仅在左键点击时触发 `JFXRippler` 波纹 (by Glavo) +- 实例管理 + - GP-5059: 调整实例管理页面“浏览”菜单中条目的顺序 (by 3gf8jv4dv) + - GP-5137: 允许重命名实例时使用原名 (by mineDiamond) + - GP-5174: 优化存在大量实例的情况下的实例列表性能 (by Glavo) +- 模组管理 + - GP-4832: 支持更新选中的模组 (by ZZZank) + - GP-5016: 刷新模组列表不滚动到顶部 (by OrzMiku) +- 世界管理 + - GP-4823: 优化世界管理界面和世界信息界面 (by mineDiamond, 3gf8jv4dv) + - GP-5162: 优化存在大量数据包的情况下数据包管理页面的性能 (by mineDiamond) + - GP-5224: 优化存在大量世界的情况下世界管理页面的性能 (by Glavo) +- 整合包 + - GP-4897: 导出整合包时隐藏系统资源文件 (by Calboot) + - GP-5119: 安装 Modrinth 整合包时下载图标 (by Glavo) +- 账户 + - GP-4794: 优化微软登录页面 (by 辞庐, 3gf8jv4dv) +- 下载 + - GP-5026: 限制访问 CurseForge/Modrinth 时的并发数 (by Burning_TNT) + - GP-5180: 在资源包下载页面中隐藏不必要的标签 (by Glavo) + - GP-5160: 优化下载页面中来自 Modrinth 的内容标签显示 (by ENC_Euphony) + - GP-5211: 优化下载页面图标缓存功能 (by Glavo) +- 联机 + - GP-4929: 将陶瓦联机更新至 0.4.1 (by Burning_TNT) +- 本地化 + - 优化软件文案,修订翻译 (by 3gf8jv4dv) +- 错误修复 + - GP-5034: 修复下载光影时对话框的标题文字错误的问题 (by Wulian233) + - GP-5043: 修复导出整合包有关以及 NBT 文件查看有关的界面样式及深色模式问题 (by Calboot) + - GP-5064: 修复弹出菜单在 HiDPI 显示器上播放动画过程中内容 Y 轴方向缩放异常的问题 (by Glavo) + - GP-5076: 优化不透明度滑块未垂直居中的问题 (by neveler) + - GP-5080: 修复外置登录对话框在部分情况下未正确验证用户名的问题 (by Glavo) + - GP-5081: 修复无法读取 `AppliedE` 模组信息的问题 (by Glavo) + - GP-5086: 修复安装游戏时选择加载器版本后返回动画方向不正确的问题 (by 辞庐) + - GP-5091: 修复部分版本无法正确归一化的问题 (by mineDiamond) + - GP-5102: 修复文本输入框的上下文菜单未使用 MD3 色彩系统的问题 (by Glavo) + - GP-5111: 修复复制游戏实例相关问题 (by 辞庐) + - GP-5112: 修复添加实例目录页面有一个空 Tooltip 的问题 (by 辞庐) + - GP-5117: 修复离线换肤对话框提示栏和按钮重叠的问题 (by NoClassDefFoundError) + - GP-5118: 修复部分平台弹出菜单无法通过点击侧边栏收起的问题 (by 辞庐) + - GP-5131: 修复缓存目录设置进入时默认未勾选的问题 (by 辞庐) + - GP-5133: 修复第三方构建下禁用账户刷新的 tooltip 展示不支持的超链接标签的问题 (by Wulian233, 3gf8jv4dv) + - GP-5144: 修复 `FetchTask` 未捕获部分异常的问题 (by Glavo) + - GP-5146, GP-5148, GP-5151: 修复无法读取部分包含特殊字符的整合包的问题 (by Glavo) + - GP-5153: 修复窗口重新获取焦点时 `JFXRadioButton` 显示阴影的问题 (by Glavo) + - GP-5166: 修复未下载陶瓦联机时打开陶瓦联机页面抛出异常的问题 (by Glavo) + - GP-5167: 修复游戏设置中 Java 路径过长时可能与 Java 版本号标签冲突的问题 (by ENC_Euphony) + - GP-5170: 修复无法安装 `Aether Enhanced` 整合包的问题 (by 3gf8jv4dv) + - GP-5178: 修复窗口重新获取焦点时 `JFXButton` 意外地显示阴影的问题 (by Glavo) + - GP-5179: 修复窗口重新获取焦点时 `JFXCheckBox` 意外地显示阴影的问题 (by Glavo) + - GP-5183: 修复重置字体后未遵循 `hmcl.font.override`/`HMCL_FONT` 设置的问题 (by 辞庐, Glavo) + - GP-5184: 修复安装页面选择模组加载器按钮波纹没有正常显示的问题 (by 辞庐, Glavo) + - GP-5186: 修复弹出菜单在 Windows HiDPI 显示器上异常模糊的问题 (by 辞庐) + - GP-5197: 修复默认窗口大小下进入高级版本设置会向下滚动一段距离的问题 (by 辞庐) diff --git a/_changelogs/stable/3.10/3.10.2.md b/src/content/changelogs/stable/3.10/3.10.2.md similarity index 95% rename from _changelogs/stable/3.10/3.10.2.md rename to src/content/changelogs/stable/3.10/3.10.2.md index e5eb8782..d4ba6eb8 100644 --- a/_changelogs/stable/3.10/3.10.2.md +++ b/src/content/changelogs/stable/3.10/3.10.2.md @@ -1,6 +1,3 @@ ---- ---- - [详细版本介绍 (Bilibili)](https://www.bilibili.com/opus/1162953401517998137) - 世界管理 @@ -14,4 +11,4 @@ - GP-5262: 修复使用 GIF 背景时调整背景不透明度导致启动器崩溃的问题 (by Glavo) - GP-5267: 修复 Unzipper 解压空 zip 文件时抛出异常的问题 (by Glavo) - GP-5305: 修复返回页面时可能卡进空白页面的问题 (by 辞庐) - - GP-5310: 修复点击实例列表条目的中央区域无法触发涟漪效果的问题 (by 辞庐) \ No newline at end of file + - GP-5310: 修复点击实例列表条目的中央区域无法触发涟漪效果的问题 (by 辞庐) diff --git a/_changelogs/stable/3.2/3.2.130.md b/src/content/changelogs/stable/3.2/3.2.130.md similarity index 99% rename from _changelogs/stable/3.2/3.2.130.md rename to src/content/changelogs/stable/3.2/3.2.130.md index 4364532b..f8593fe9 100644 --- a/_changelogs/stable/3.2/3.2.130.md +++ b/src/content/changelogs/stable/3.2/3.2.130.md @@ -1,6 +1,3 @@ ---- ---- - - 启动器 - 在启动器更新时显示更新日志 - 启动前检查是否是 Java 8~10 diff --git a/_changelogs/stable/3.2/3.2.139.md b/src/content/changelogs/stable/3.2/3.2.139.md similarity index 99% rename from _changelogs/stable/3.2/3.2.139.md rename to src/content/changelogs/stable/3.2/3.2.139.md index 6a350e4f..8f9db150 100644 --- a/_changelogs/stable/3.2/3.2.139.md +++ b/src/content/changelogs/stable/3.2/3.2.139.md @@ -1,6 +1,3 @@ ---- ---- - - 启动器 - 添加西班牙语,更新英语、俄语翻译 - 主页面按回车键启动游戏 diff --git a/_changelogs/stable/3.2/3.2.149.md b/src/content/changelogs/stable/3.2/3.2.149.md similarity index 99% rename from _changelogs/stable/3.2/3.2.149.md rename to src/content/changelogs/stable/3.2/3.2.149.md index d547c985..9d11b7f7 100644 --- a/_changelogs/stable/3.2/3.2.149.md +++ b/src/content/changelogs/stable/3.2/3.2.149.md @@ -1,6 +1,3 @@ ---- ---- - - 启动器 - 改进部分错误提示 - 更新繁体中文语言文件 diff --git a/_changelogs/stable/3.3/3.3.172.md b/src/content/changelogs/stable/3.3/3.3.172.md similarity index 99% rename from _changelogs/stable/3.3/3.3.172.md rename to src/content/changelogs/stable/3.3/3.3.172.md index 7917efbe..a3228763 100644 --- a/_changelogs/stable/3.3/3.3.172.md +++ b/src/content/changelogs/stable/3.3/3.3.172.md @@ -1,6 +1,3 @@ ---- ---- - - 启动器 - 修改界面 - 更新俄语翻译 diff --git a/_changelogs/stable/3.3/3.3.188.md b/src/content/changelogs/stable/3.3/3.3.188.md similarity index 99% rename from _changelogs/stable/3.3/3.3.188.md rename to src/content/changelogs/stable/3.3/3.3.188.md index 4ddca7ad..2d5e94b2 100644 --- a/_changelogs/stable/3.3/3.3.188.md +++ b/src/content/changelogs/stable/3.3/3.3.188.md @@ -1,6 +1,3 @@ ---- ---- - - 启动器 - 修改界面 - 更新俄语翻译 diff --git a/_changelogs/stable/3.5/3.5.3.md b/src/content/changelogs/stable/3.5/3.5.3.md similarity index 99% rename from _changelogs/stable/3.5/3.5.3.md rename to src/content/changelogs/stable/3.5/3.5.3.md index 1cac6367..253fb5fd 100644 --- a/_changelogs/stable/3.5/3.5.3.md +++ b/src/content/changelogs/stable/3.5/3.5.3.md @@ -1,6 +1,3 @@ ---- ---- - - 启动器 - 支持多人联机 - 自动选择新添加的 Authlib-injector 服务器 diff --git a/_changelogs/stable/3.5/3.5.4.md b/src/content/changelogs/stable/3.5/3.5.4.md similarity index 99% rename from _changelogs/stable/3.5/3.5.4.md rename to src/content/changelogs/stable/3.5/3.5.4.md index 65c7011d..20106b31 100644 --- a/_changelogs/stable/3.5/3.5.4.md +++ b/src/content/changelogs/stable/3.5/3.5.4.md @@ -1,6 +1,3 @@ ---- ---- - - 启动器 - 多人联机功能暂时下线维护 [详情](https://hmcl.huangyuhui.net/api/redirect/multiplayer-migrate) - 不再支持添加 Mojang 账户 [迁移至微软账户](https://aka.ms/MinecraftMigration) diff --git a/_changelogs/stable/3.5/3.5.5.md b/src/content/changelogs/stable/3.5/3.5.5.md similarity index 98% rename from _changelogs/stable/3.5/3.5.5.md rename to src/content/changelogs/stable/3.5/3.5.5.md index 456a5237..fce2285e 100644 --- a/_changelogs/stable/3.5/3.5.5.md +++ b/src/content/changelogs/stable/3.5/3.5.5.md @@ -1,6 +1,3 @@ ---- ---- - - 启动器 - 拒绝在被 Fractureiser 病毒感染的设备上启动 HMCL(若检测到将会提示并退出,[详情](https://github.com/fractureiser-investigation/fractureiser#readme)) - 检测 HMCL 是否处于 macOS 上的 App Translocation(macOS 使用了 [App Translocation](https://lapcatsoftware.com/articles/app-translocation.html) 机制,可能会自动将 HMCL 移动至 `/private/var/folders` 中的临时文件夹内,导致用户关闭 HMCL 后游戏数据和设置丢失) @@ -25,7 +22,7 @@ - 跨平台 添加 Linux RISC-V 64 平台支持 -错误修复: +错误修复: - 修复日志分析窗口的渲染问题 - 修复在 Minecraft 1.20 不能正常使用游戏内聊天功能的问题 diff --git a/_changelogs/stable/3.5/3.5.6.md b/src/content/changelogs/stable/3.5/3.5.6.md similarity index 99% rename from _changelogs/stable/3.5/3.5.6.md rename to src/content/changelogs/stable/3.5/3.5.6.md index 8cd2ccfd..4bfcea5d 100644 --- a/_changelogs/stable/3.5/3.5.6.md +++ b/src/content/changelogs/stable/3.5/3.5.6.md @@ -1,6 +1,3 @@ ---- ---- - - GP-2864: 改善在非 Windows 平台任务栏图标的质量 - GP-2859: 修复 Forge 和 NeoForge 安装失败的问题 - GP-2840: 修复 Linux RISC-V 64 平台的支持 diff --git a/_changelogs/stable/3.5/3.5.7.md b/src/content/changelogs/stable/3.5/3.5.7.md similarity index 98% rename from _changelogs/stable/3.5/3.5.7.md rename to src/content/changelogs/stable/3.5/3.5.7.md index f5f2f571..a4c8457b 100644 --- a/_changelogs/stable/3.5/3.5.7.md +++ b/src/content/changelogs/stable/3.5/3.5.7.md @@ -1,6 +1,3 @@ ---- ---- - - 启动器 - GP-2929、GP-2904、GP-2915: 更新翻译 - GP-2905: 更改语言选项添加重启后生效的提示 @@ -24,7 +21,7 @@ - 整合包 - GP-2881: 修复无法安装带有 NeoForge 的 Modrinth 整合包的问题 -错误修复: +错误修复: - **GP-2908 \[重要\]: 修复微软账户登录失败的问题** - GP-2939: 修复游戏启动时包装命令会被添加两次的问题的问题 diff --git a/_changelogs/stable/3.5/3.5.8.md b/src/content/changelogs/stable/3.5/3.5.8.md similarity index 98% rename from _changelogs/stable/3.5/3.5.8.md rename to src/content/changelogs/stable/3.5/3.5.8.md index 8ef032c6..7c4638f7 100644 --- a/_changelogs/stable/3.5/3.5.8.md +++ b/src/content/changelogs/stable/3.5/3.5.8.md @@ -1,6 +1,3 @@ ---- ---- - - 启动器 - GP-2947: 更新模组和整合包翻译信息 - GP-2951: 优化了启动器长期运行后的性能表现 diff --git a/_changelogs/stable/3.5/3.5.9.md b/src/content/changelogs/stable/3.5/3.5.9.md similarity index 99% rename from _changelogs/stable/3.5/3.5.9.md rename to src/content/changelogs/stable/3.5/3.5.9.md index 22f11851..29ea3cd5 100644 --- a/_changelogs/stable/3.5/3.5.9.md +++ b/src/content/changelogs/stable/3.5/3.5.9.md @@ -1,6 +1,3 @@ ---- ---- - - 启动器 - GP-3121、GP-3194: 微软登录界面对 Xbox 400 错误给予提示 - GP-3097: 更新 Linux ARM64 支持 diff --git a/_changelogs/stable/3.6/3.6.11.md b/src/content/changelogs/stable/3.6/3.6.11.md similarity index 99% rename from _changelogs/stable/3.6/3.6.11.md rename to src/content/changelogs/stable/3.6/3.6.11.md index 397d31ea..3cf621d8 100644 --- a/_changelogs/stable/3.6/3.6.11.md +++ b/src/content/changelogs/stable/3.6/3.6.11.md @@ -1,6 +1,3 @@ ---- ---- - - 启动器 - GP-3233: 在 Linux/FreeBSD 平台打开日志、模组等位置时会选中该文件 - GP-3274: 优化日志窗口 diff --git a/_changelogs/stable/3.6/3.6.12.md b/src/content/changelogs/stable/3.6/3.6.12.md similarity index 99% rename from _changelogs/stable/3.6/3.6.12.md rename to src/content/changelogs/stable/3.6/3.6.12.md index 91dcd7c2..7b8ec5f1 100644 --- a/_changelogs/stable/3.6/3.6.12.md +++ b/src/content/changelogs/stable/3.6/3.6.12.md @@ -1,6 +1,3 @@ ---- ---- - 版本介绍:[cv41174209](https://www.bilibili.com/opus/1050013108961017859) - 启动器 diff --git a/_changelogs/stable/3.6/3.6.14.md b/src/content/changelogs/stable/3.6/3.6.14.md similarity index 99% rename from _changelogs/stable/3.6/3.6.14.md rename to src/content/changelogs/stable/3.6/3.6.14.md index 4356302f..fd0ff3cd 100644 --- a/_changelogs/stable/3.6/3.6.14.md +++ b/src/content/changelogs/stable/3.6/3.6.14.md @@ -1,6 +1,3 @@ ---- ---- - 版本介绍: [cv42290390](https://www.bilibili.com/opus/1088221679199453185) - 启动器 diff --git a/_changelogs/stable/3.6/3.6.15.md b/src/content/changelogs/stable/3.6/3.6.15.md similarity index 97% rename from _changelogs/stable/3.6/3.6.15.md rename to src/content/changelogs/stable/3.6/3.6.15.md index bef5a87a..4d5d4b34 100644 --- a/_changelogs/stable/3.6/3.6.15.md +++ b/src/content/changelogs/stable/3.6/3.6.15.md @@ -1,6 +1,3 @@ ---- ---- - - 下载 - GP-4085: 更新模组下载页游戏版本列表至 1.21.8 (by Glavo) - 错误修复 diff --git a/src/content/changelogs/stable/3.6/3.6.16.md b/src/content/changelogs/stable/3.6/3.6.16.md new file mode 100644 index 00000000..798db419 --- /dev/null +++ b/src/content/changelogs/stable/3.6/3.6.16.md @@ -0,0 +1,5 @@ +- 启动器 + - GP-4262: 更新 AMD 显卡信息 (by Glavo) + - GP-4274: 更新 chunkbase 种子地图链接 (by Wulian233) +- 错误修复: + - GP-4174: 修复无法从 BMCLAPI 下载部分 NeoForge 所需文件的问题 (by 辞庐) diff --git a/src/content/changelogs/stable/3.6/3.6.17.md b/src/content/changelogs/stable/3.6/3.6.17.md new file mode 100644 index 00000000..d159c969 --- /dev/null +++ b/src/content/changelogs/stable/3.6/3.6.17.md @@ -0,0 +1,30 @@ +版本介绍: [cv43005407](https://www.bilibili.com/opus/1111270122956259346) + +- 启动器 + - GP-4422: 弃用 Java 11 支持 (by Glavo) + - GP-4164: 支持通过环境变量强制使用 GPU 渲染和控制动画帧率 (by Glavo) + - GP-4179: 在 `./.hmcl/java` 中搜索 Java (by Glavo) + - GP-4365: 修复首次打开子页面时切换动画丢失的问题 (by Glavo) + - GP-4439: 更新模组和整合包数据 (by Glavo) + - GP-4414: 检测到配置文件由高版本启动器创建时禁止保存配置文件 (by Glavo) +- 游戏管理 + - GP-4224: 支持在 Windows 7/8/8.1 上使用软渲染器 (by Glavo) +- 下载 + - GP-4170: 模组下载列表翻页后自动回到顶部 (by 辞庐) + - GP-4171: 支持加载 WebP 图标,解决部分模组/整合包图标无法加载的问题 (by Glavo) +- 外观 + - GP-4185: 新增内存显示条禁用样式 (by OrzMiku) +- 本地化 + - GP-4376: 将“版本”重命名为“实例” (by 3gf8jv4dv) + - 优化软件文案,完善英语、西班牙语、俄语翻译 +- 错误修复 + - GP-4121: 修复多次启动游戏时内存泄露的问题 (by roj234) + - GP-4066: 修复游戏版本列表错误地过滤掉部分版本的问题 (by Wulian233) + - GP-4152: 修复导入异常格式的数据包时启动器崩溃的问题 (by Glavo) + - GP-4241: 修复非 Windows 平台上游戏进程的 `user.home` 可能被设置为 `null` 的问题 (by Glavo) + - GP-4437: 修复 backgroundType 为 `null` 时启动器崩溃的问题 (by Glavo) + - GP-4153: 修复“下载线程数”的指示器被提示覆盖的问题 (by 辞庐) + - GP-4238: 修复 `RemoteMod::getIntegrityCheck` 未选择正确的算法的问题 (by Glavo) + - GP-4176: 修复整合包格式不匹配提示未被正确格式化的问题 (by 辞庐) + - GP-4321: 世界管理页面添加对极限模式的支持 (by Wulian233) + - GP-4192: 修复 LWJGL 路径显示错误的问题 (by 辞庐) diff --git a/src/content/changelogs/stable/3.6/3.6.18.md b/src/content/changelogs/stable/3.6/3.6.18.md new file mode 100644 index 00000000..e89a4937 --- /dev/null +++ b/src/content/changelogs/stable/3.6/3.6.18.md @@ -0,0 +1,8 @@ +版本介绍: [cv43162536](https://www.bilibili.com/opus/1116529228834144258) + +- 游戏管理 + - GP-4515: 优化 Java 自动选择规则 (by Glavo) +- 错误修复 + - GP-4508: 修复使用 JavaFX 25 时游戏下载界面布局错误的问题 (by Glavo) + - GP-4465: 修复启用代理身份认证且未设置密码时启动器崩溃的问题 (by Glavo) + - GP-4466: 修复滚动切换游戏实例/账户功能 (by Glavo) diff --git a/src/content/changelogs/stable/3.6/3.6.20.md b/src/content/changelogs/stable/3.6/3.6.20.md new file mode 100644 index 00000000..635cc3f5 --- /dev/null +++ b/src/content/changelogs/stable/3.6/3.6.20.md @@ -0,0 +1,9 @@ +版本介绍: [cv43348716](https://www.bilibili.com/opus/1123235936240402439) + +- 启动器 + - GP-4223: 在“设置 > 通用”添加“提前预览 HMCL 版本”选项 (by Glavo)
+ 详情请见完整更新日志: [cv43348716](https://www.bilibili.com/opus/1123235936240402439) + - GP-4088: 当离线账户名称超过 16 字符时弹出警告 (by ShulkerSakura) +- 下载 + - GP-4120: 更新 unlisted-versions-of-minecraft 镜像源地址 (by 8Mi_Yile) + - GP-4626: 更新模组下载页游戏版本列表至 1.21.10 (by Glavo) diff --git a/_changelogs/stable/3.7/3.7.1.md b/src/content/changelogs/stable/3.7/3.7.1.md similarity index 86% rename from _changelogs/stable/3.7/3.7.1.md rename to src/content/changelogs/stable/3.7/3.7.1.md index ffe0d00e..93e76d55 100644 --- a/_changelogs/stable/3.7/3.7.1.md +++ b/src/content/changelogs/stable/3.7/3.7.1.md @@ -1,42 +1,39 @@ ---- ---- - 详细版本介绍: [cv43400451](https://www.bilibili.com/opus/1124733750249259010) - 启动器 - GP-4452: 将最低 Java 版本提升至 Java 17 (by Glavo) - GP-4454: 将默认 JavaFX 版本更新至 21.0.8/25 (by Glavo) - - GP-4439: 更新模组和整合包数据 (by Glavo) - - GP-4064: 优化主页公告关闭按钮 (by 辞庐) - - GP-4145: 在 Windows 平台优先使用注册表探测 GPU (by Glavo) + - GP-4439: 更新模组和整合包数据 (by Glavo) + - GP-4064: 优化主页公告关闭按钮 (by 辞庐) + - GP-4145: 在 Windows 平台优先使用注册表探测 GPU (by Glavo) - GP-4163: 通过主页右下角弹出菜单切换版本后隐藏菜单 (by Glavo) - - GP-4142: 忽略 `%ProgramFiles%\Common Files\Oracle\Java` 中的 Java (by Glavo) - - GP-4180: 支持搜索不包含 release 文件的 Java (by Glavo) - - GP-4201: 为弹窗文本添加平滑滚动 (by 辞庐) + - GP-4142: 忽略 `%ProgramFiles%\Common Files\Oracle\Java` 中的 Java (by Glavo) + - GP-4180: 支持搜索不包含 release 文件的 Java (by Glavo) + - GP-4201: 为弹窗文本添加平滑滚动 (by 辞庐) - GP-4203: 优化弹出菜单的默认弹出位置 (by ENC_Euphony) - GP-4051: 导出日志时附带最近日志 (by Zkitefly) - GP-4179: 支持搜索 `./.hmcl/java` 目录中的 Java (by Glavo) - GP-4248: 在未安装游戏版本时支持一键下载启动游戏 (by Glavo) ([BV1BbYxzNEFE](https://www.bilibili.com/video/BV1BbYxzNEFE)) - GP-4246: 将 authlib-injector 嵌入启动器 (by Glavo) - - GP-4260: 支持最大化和全屏模式 (by Glavo) + - GP-4260: 支持最大化和全屏模式 (by Glavo) - GP-4276: 优化版本号排序规则 (by Glavo) - GP-4282: 优化对 Indev 版本的支持 (by Glavo) - GP-4292, GP-4306: 优化显示进度对话框 (by Glavo) - - GP-4294: 游戏崩溃窗口中增加对拍照的提醒 (by YuChuXi) + - GP-4294: 游戏崩溃窗口中增加对拍照的提醒 (by YuChuXi) - GP-4341: 更严格地检测文件名合法性 (by Glavo) - - GP-4362: 优化语言设置选项中语言名称的显示方式 (by Glavo) + - GP-4362: 优化语言设置选项中语言名称的显示方式 (by Glavo) - GP-4353: 优化自动切换游戏语言功能 (by Glavo) - - GP-4414: 检测到配置文件由高版本启动器创建时禁止保存配置文件 (by Glavo) - - GP-4487: 在未启用 JIT 或硬件渲染加速的环境中启动时弹出提示 (by Glavo) - - GP-4506: 使用 Java 25 启动游戏时默认开启 Compact Object Headers (by Glavo) + - GP-4414: 检测到配置文件由高版本启动器创建时禁止保存配置文件 (by Glavo) + - GP-4487: 在未启用 JIT 或硬件渲染加速的环境中启动时弹出提示 (by Glavo) + - GP-4506: 使用 Java 25 启动游戏时默认开启 Compact Object Headers (by Glavo) - 游戏设置 - GP-4234: 优化游戏窗口大小选择功能 (by Glavo) - GP-4275: 基于实际屏幕分辨率添加游戏窗口分辨率选项 (by Wulian233) - GP-4507: 游戏设置中添加「不自动添加 Java 虚拟机优化参数」选项 (by Glavo) - - GP-4515: 优化 Java 自动选择规则 (by Glavo) + - GP-4515: 优化 Java 自动选择规则 (by Glavo) - 实例管理 - GP-4222: 在实例名称中包含非字母、数字、减号和下划线字符时弹出警告 (by Glavo) - - GP-4509: 支持在主界面「实例管理」按钮上通过滚动滚轮切换游戏实例 (by Glavo) + - GP-4509: 支持在主界面「实例管理」按钮上通过滚动滚轮切换游戏实例 (by Glavo) - 模组管理 - GP-3230: 支持根据更多信息搜索模组 (by Zkitefly) - GP-3231: 优化模组中文译名匹配机制 (by Zkitefly) @@ -46,12 +43,12 @@ - 世界管理 - GP-4263: 支持删除世界 (by Wulian233) - 整合包 - - GP-3716: 支持导出 Modrinth 整合包 (by Zkitefly) + - GP-3716: 支持导出 Modrinth 整合包 (by Zkitefly) - 下载 - GP-4272: 支持自动安装 Cleanroom (by 辞庐, zkitefly) - GP-4141: 优化游戏下载页版本分类功能 (by Glavo) - GP-4249: 游戏下载页面中使用史莱姆块作为愚人节版本的图标 (by Wulian233) - - GP-4471: 在游戏下载界面中显示当前平台对每个版本的支持状态 (by Glavo) + - GP-4471: 在游戏下载界面中显示当前平台对每个版本的支持状态 (by Glavo) - GP-4268: 在 NeoForge 下载页面中添加正式版/快照分类 (by Wulian233) - GP-4167, GP-4169, GP-4462: 优化下载缓存功能 (by Glavo) - GP-4219: 下载文件时启用透明 GZip 压缩 (by Glavo) @@ -62,8 +59,8 @@ - GP-4510: 在未启用 JIT 或硬件渲染加速的环境中默认启动器禁用动画 (by Glavo) - GP-4164: 支持通过环境变量强制使用 GPU 渲染和控制动画帧率 (by Glavo) - GP-4184: 支持设置纯色背景 (by Glavo) - - GP-3205: 支持修改背景的不透明度 (by 吞云) - - GP-4205: 支持 APNG 动画图片 (by Glavo) + - GP-3205: 支持修改背景的不透明度 (by 吞云) + - GP-4205: 支持 APNG 动画图片 (by Glavo) - GP-4323: HintPane 使用新版 Bootstrap 调色盘 (by 辞庐) - GP-4521: 支持通过环境变量控制 UI 缩放比例 (by Glavo) - 联机 @@ -77,14 +74,14 @@ - GP-3956: 修复启动时会尝试补全服务端自动更新整合包中已禁用的 mod 的问题 (by Zkitefly) - GP-4239: 修复部分版本 wiki 链接不正确的问题 (by ENC_Euphony) - GP-4321: 修复世界管理页面不支持极限模式的问题 (by Wulian233) - - GP-4350: 修复在部分简体中文环境中默认显示繁体中文的问题 (by Glavo) + - GP-4350: 修复在部分简体中文环境中默认显示繁体中文的问题 (by Glavo) - GP-4386: 修复离线账户换肤功能使用无效 CSL API 会导致启动失败的问题 (by Glavo) - GP-4492: 修复 Windows 平台上 `%APPDATA%\.hmcl` 目录为跨驱动器符号链接时无法卸载 Java 的问题 (by Glavo) - - GP-4514: 修复 AdvancedListBox 在非必要的情况下显示滚动条的问题 (by rootwhois) + - GP-4514: 修复 AdvancedListBox 在非必要的情况下显示滚动条的问题 (by rootwhois) - GP-4517: 修复日志页面选中条目时 hover 背景闪烁两次的问题 (by rootwhois) - GP-4296: 修复切换下载源后需要重启启动器才会生效的问题 (by Glavo) - GP-4568: 修复在短时间内连续点击 OptionToggleButton 只会更改一次状态的问题 (by 辞庐) - - GP-4585: 修复部分按钮点击后始终保持焦点状态的问题 (by Wulian233) + - GP-4585: 修复部分按钮点击后始终保持焦点状态的问题 (by Wulian233) - GP-4646: 修复 Minecraft 1.21.9+ 安装了 NeoForge 的实例未使用 NeoForge 图标作为实例图标的问题 (by 3gf8jv4dv) - GP-4624: 修复导出游戏崩溃信息后弹窗没有正常弹出的问题 (by 辞庐) - - GP-4660: 修复模组下载页面图标模糊的问题 (by Glavo) \ No newline at end of file + - GP-4660: 修复模组下载页面图标模糊的问题 (by Glavo) diff --git a/_changelogs/stable/3.7/3.7.2.md b/src/content/changelogs/stable/3.7/3.7.2.md similarity index 98% rename from _changelogs/stable/3.7/3.7.2.md rename to src/content/changelogs/stable/3.7/3.7.2.md index 648bf990..58019f79 100644 --- a/_changelogs/stable/3.7/3.7.2.md +++ b/src/content/changelogs/stable/3.7/3.7.2.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍: [cv43439723](https://www.bilibili.com/opus/1126111455506071555) - GP-4682: 将陶瓦联机更新至 0.3.10 (by Burning_TNT) diff --git a/_changelogs/stable/3.7/3.7.3.md b/src/content/changelogs/stable/3.7/3.7.3.md similarity index 92% rename from _changelogs/stable/3.7/3.7.3.md rename to src/content/changelogs/stable/3.7/3.7.3.md index 86eb8cb2..1c80abd6 100644 --- a/_changelogs/stable/3.7/3.7.3.md +++ b/src/content/changelogs/stable/3.7/3.7.3.md @@ -1,6 +1,3 @@ ---- ---- - 详细版本介绍: [cv43540463](https://www.bilibili.com/opus/1129159061178155017) - 启动器 @@ -8,4 +5,4 @@ - 联机 - GP-4724: 将陶瓦联机更新至 0.3.12 (by Burning_TNT) - 错误修复 - - GP-4721: 修复 JFXListViewSkin 创建大量平台线程的问题 (by Glavo) \ No newline at end of file + - GP-4721: 修复 JFXListViewSkin 创建大量平台线程的问题 (by Glavo) diff --git a/src/content/changelogs/stable/3.7/3.7.5.md b/src/content/changelogs/stable/3.7/3.7.5.md new file mode 100644 index 00000000..6a860237 --- /dev/null +++ b/src/content/changelogs/stable/3.7/3.7.5.md @@ -0,0 +1,9 @@ +详细版本介绍: [cv43648491](https://www.bilibili.com/opus/1132495430464045104) + +- 启动器 + - GP-4742: 更新 Chunkbase 种子地图链接 (by Wulian233) +- 联机 + - GP-4723: 将陶瓦联机更新至 0.3.13 (by Burning_TNT) + - GP-4735: 在不支持的平台上打开陶瓦联机页面时弹出提示 (by Glavo) +- 错误修复 + - GP-4736: 修复 FreeBSD x86-64 平台上错误的将所有版本视作未经测试的版本的问题 (by Glavo) diff --git a/src/content/changelogs/stable/3.7/3.7.6.md b/src/content/changelogs/stable/3.7/3.7.6.md new file mode 100644 index 00000000..db13b67f --- /dev/null +++ b/src/content/changelogs/stable/3.7/3.7.6.md @@ -0,0 +1,15 @@ +详细版本介绍: [cv43836292](https://www.bilibili.com/opus/1138359439513878544) + +- 下载 + - GP-4767: 添加对 25w45a_unobfuscated 的支持 (by Glavo) + - GP-4782: 添加对 25w46a_unobfuscated 的支持 (by Glavo) + - GP-4829: 添加对 1.21.11-pre1/2_unobfuscated 的支持 (by mineDiamond) + - GP-4841: 更新 HMCL 元数据链接 (by Glavo) + +- 联机 + - GP-4816: 更新陶瓦联机用户须知 (by Glavo) + - GP-4838: 将陶瓦联机更新至 0.3.14 (by Burning_TNT) + +- 错误修复 + - GP-4795: 修复初次打开部分页面时页面闪烁的问题 (by Glavo) + - GP-4808: 修复 Windows 下全局设置中本地库路径路径分隔符显示错误的问题 (by 辞庐) diff --git a/src/content/changelogs/stable/3.8/3.8.1.md b/src/content/changelogs/stable/3.8/3.8.1.md new file mode 100644 index 00000000..233545c3 --- /dev/null +++ b/src/content/changelogs/stable/3.8/3.8.1.md @@ -0,0 +1,28 @@ +详细版本介绍: [cv43836921](https://www.bilibili.com/opus/1138376365938049027) + +- 启动器 + - GP-4703, GP-4743: 优化更新日志展示功能 (by Glavo) + - GP-4696: 在外链按钮上添加 tooltip (by neveler) + - GP-4749: 恢复对 JavaFX 14 的兼容性 (by Glavo) + - GP-4760: 从注册表中读取 Windows 版本信息 (by Glavo) + - GP-4540: 删除实例失败时弹出对话框 (by Glavo) + - GP-4770: 更新模组数据 (by Glavo) + - GP-4776: 优化游戏实例默认图标 (by Glavo) + - GP-4672: 优化数据包管理功能 (by mineDiamond) + - GP-4612: 增强解析数据包/资源包元数据的能力 (by mineDiamond) + - GP-4826: 从首页打开子页面时打开默认标签页 (by Glavo) + - GP-4845: 更新 amdgpu.ids (by 辞庐) +- 外观/动画 + - GP-4780, GP-4790, GP-4803, GP-4815: 优化界面动画效果 (by Glavo) + - GP-4698: 被打包为 `.app` 文件时使用 `.app` 文件内置的 Dock 栏图标 (by 风花AnemoFlower) + - GP-4779: 预加载页面以减少动画卡顿 (by Glavo) + - GP-4762: 在 macOS 平台使用系统默认最小化动画 (by Damon Lu) + - GP-4809: 在更多页面上启用平滑滚动 (by Glavo) +- 本地化 + - GP-4709: 本地化下载速度显示 (by Glavo) + - 优化软件文案,修订翻译 (by 3gf8jv4dv, Glavo) +- 错误修复 + - GP-4775: 修复无法获取部分远古版本版本号的问题 (by Glavo) + - GP-4783: 修复模组管理页面点击搜索按钮后未聚焦到搜索栏的问题 (by mineDiamond) + - GP-4805: 修复复制实例时使用非法实例 ID 启动器行为异常的问题 (by Haowei Wen) + - GP-4844: 修复缓存异常时下载任务无限循环的问题 (by Glavo) diff --git a/src/content/changelogs/stable/3.8/3.8.2.md b/src/content/changelogs/stable/3.8/3.8.2.md new file mode 100644 index 00000000..ef5cc78e --- /dev/null +++ b/src/content/changelogs/stable/3.8/3.8.2.md @@ -0,0 +1,9 @@ +[详细版本介绍 (Bilibili)](https://www.bilibili.com/opus/1148470393780043777) + +- 启动器 + - GP-4886: 优化对 Linux MIPS64el 平台的支持 (by Glavo) + - GP-4917: 支持 Minecraft 新版本号规则 (by Glavo) +- 错误修复 + - GP-4850: 修复 `FetchTask` 未设置 User-Agent 的问题 (by Glavo) + - GP-4913: 修复游戏进程结束时点击日志窗口的“结束游戏进程”按钮会导致启动器无响应的问题 (by Glavo) + - GP-4981: 修复从 BMCLAPI 下载部分旧文件时校验失败的问题 (by Glavo) diff --git a/src/content/changelogs/stable/3.9/3.9.1.md b/src/content/changelogs/stable/3.9/3.9.1.md new file mode 100644 index 00000000..1ad9bca8 --- /dev/null +++ b/src/content/changelogs/stable/3.9/3.9.1.md @@ -0,0 +1,37 @@ +[详细版本介绍 (Bilibili)](https://www.bilibili.com/opus/1148770448825122832) + +- 启动器 + - GP-4837: 实验性支持阿拉伯语 (by Hommam-Prom) + - GP-4911, GP-4963: 添加对 1.21.11_unobfuscated 及其预发布版的支持 (by mineDiamond) + - GP-4927: 在 macOS 平台上导出启动脚本时支持导出 `.command` 文件 (by WhatDamon) + - GP-5019: 使用子标题注解“提前预览 HMCL 版本”选项 (by neveler) + - GP-5008: 优化反馈页面 (by Glavo) +- 游戏设置 + - GP-4144: 添加输出游戏调试日志选项 (by 辞庐) +- 实例管理 + - GP-4475: 添加资源包管理功能 (by 辞庐) + - GP-4872: 添加快速进入世界功能 (by mineDiamond) +- 账户管理 + - GP-4932: 在主页右键点击账户按钮时弹出快速切换账户菜单 (by zimzaza4) +- 外观 + - GP-4835: 更新至 Material Design 3 颜色系统 (by Glavo) + - 支持深色模式 (by Glavo, Wulian233, neveler) + - GP-4854: 更新表格控件的样式 (by Calboot) + - GP-4865: 更新颜色选择器样式 (by Glavo) + - GP-4915: 在 `HintPane` 提示框中为图标和文本添加间距 (by neveler) + - GP-4951: 更新选择框下拉菜单滚动条样式 (by Glavo) + - GP-4964: 更新表格中复选框的样式 (by Glavo) +- 下载 + - GP-4856: 优化下载源选择逻辑 (by Glavo) + - GP-4990: 支持下载 Java 25 (by OrzMiku) +- 联机 + - GP-4869: 在陶瓦联机页面向非中国内地用户添加提示框 (by Glavo) + - GP-4916: 在陶瓦联机界面启动游戏时禁用离线皮肤功能 (by Glavo) +- 错误修复 + - GP-4857: 修复惯性滚动可能导致弹出菜单错位的问题 (by Glavo) + - GP-4871: 修复修改主题色后 `JFXCheckBox` 颜色不会及时变化的问题 (by Glavo) + - GP-4874: 修复 `JFXRadioButton` 在 Windows 平台上中心圆点偏移的问题 (by Glavo) + - GP-4895: 修复模组更新列表界面按 esc 无法正确退出的问题 (by Calboot) + - GP-4935: 修复本地安装新版本 Forge 时未移除版本号中 `forge-` 前缀的问题 (by 辞庐) + - GP-4946: 修复模组管理页面中 OptiFine HD U G6 pre1 与 CurseForge 上的无关模组相关联的问题 (by Burning_TNT) + - GP-4945: 修复无法识别部分 Forge/NeoForge 模组的问题 (by Burning_TNT) diff --git a/src/content/changelogs/stable/3.9/3.9.2.md b/src/content/changelogs/stable/3.9/3.9.2.md new file mode 100644 index 00000000..afaa1f71 --- /dev/null +++ b/src/content/changelogs/stable/3.9/3.9.2.md @@ -0,0 +1,10 @@ +[详细版本介绍 (Bilibili)](https://www.bilibili.com/opus/1157751599072804904) + +- 启动器 + - GP-5046: 禁用日志窗口的平滑滚动效果 (by Glavo) + - GP-5052: 优化列表的平滑滚动效果 (by Glavo) + - GP-5110: 更新 NeoForge 版本号规则 (by 辞庐) +- 错误修复 + - GP-5128: 修复使用 BMCLAPI 下载源时选择 `Liteloader` 版本时可能报错的问题 (by Wulian233) + - GP-5125: 修复未正确归类 NeoForge alpha 版本的问题 (by 辞庐) + - GP-5220: 修复 CurseForge 源无法搜索到内容的问题 (by Glavo) diff --git a/src/content/docs/changelogs/dev.mdx b/src/content/docs/changelogs/dev.mdx new file mode 100644 index 00000000..a9e89f0e --- /dev/null +++ b/src/content/docs/changelogs/dev.mdx @@ -0,0 +1,9 @@ +--- +title: 开发版更新日志 +sidebar: + label: 开发版 +--- + +import Changelogs from "@components/Changelogs.astro"; + + diff --git a/src/content/docs/changelogs/stable.mdx b/src/content/docs/changelogs/stable.mdx new file mode 100644 index 00000000..a73d6a43 --- /dev/null +++ b/src/content/docs/changelogs/stable.mdx @@ -0,0 +1,9 @@ +--- +title: 稳定版更新日志 +sidebar: + label: 稳定版 +--- + +import Changelogs from "@components/Changelogs.astro"; + + diff --git a/_downloads/java.md b/src/content/docs/downloads/java.md similarity index 74% rename from _downloads/java.md rename to src/content/docs/downloads/java.md index 51c2442f..a26eab8e 100644 --- a/_downloads/java.md +++ b/src/content/docs/downloads/java.md @@ -1,6 +1,10 @@ --- title: 下载 HMCL 和 Minecraft 依赖的 Java -date: 2022-12-03 17:30:00 +0800 +autoRedirect: + delay: 5 + text: Java 下载页面 + href: https://www.java.com/zh-CN/download +lastUpdated: 2022-12-03T17:30:00+08:00 --- 正在前往 Java 下载页面,请点击下载,然后等待 Java 安装程序下载完成,最后启动安装程序,依照提示安装 Java。 @@ -12,12 +16,3 @@ date: 2022-12-03 17:30:00 +0800 You are going to the Java download page. Please click download after redirecting, then wait for the Java installer to finish downloading, finally open the installer and follow the prompts to install Java. No redirect? [Click here](https://www.java.com/download) - - - - diff --git a/_downloads/linux/arm32.md b/src/content/docs/downloads/linux/arm32.md similarity index 92% rename from _downloads/linux/arm32.md rename to src/content/docs/downloads/linux/arm32.md index 4ec6a13a..dcda1dac 100644 --- a/_downloads/linux/arm32.md +++ b/src/content/docs/downloads/linux/arm32.md @@ -1,6 +1,6 @@ --- title: 下载适用于 Linux ARM32 的 HMCL 和 Minecraft 依赖的 Java -date: 2022-12-03 17:30:00 +0800 +lastUpdated: 2022-12-03T17:30:00+08:00 --- 点下面的链接以下载 Java ,然后使用软件包管理器或者手动解压安装。 @@ -15,4 +15,4 @@ Click one of the following links to download Java, and then use the package or e [Link](https://bell-sw.com/pages/downloads/?version=java-21&os=linux&package=jre-full&bitness=32&architecture=arm#:~:text=All%20versions) -Or you can add the repository to the package manager according to the [instruction](https://docs.bell-sw.com/liberica-jdk/latest/general/install-guide/#linux). \ No newline at end of file +Or you can add the repository to the package manager according to the [instruction](https://docs.bell-sw.com/liberica-jdk/latest/general/install-guide/#linux). diff --git a/_downloads/linux/arm64.md b/src/content/docs/downloads/linux/arm64.md similarity index 92% rename from _downloads/linux/arm64.md rename to src/content/docs/downloads/linux/arm64.md index 5a4803ae..4ac95220 100644 --- a/_downloads/linux/arm64.md +++ b/src/content/docs/downloads/linux/arm64.md @@ -1,6 +1,6 @@ --- title: 下载适用于 Linux ARM64 的 HMCL 和 Minecraft 依赖的 Java -date: 2022-12-03 17:30:00 +0800 +lastUpdated: 2022-12-03T17:30:00+08:00 --- 点下面的链接以下载 Java ,然后使用软件包管理器或者手动解压安装。 @@ -15,4 +15,4 @@ Click one of the following links to download Java, and then use the package or e [Link](https://bell-sw.com/pages/downloads/?version=java-21&os=linux&package=jre-full&bitness=64&architecture=arm#:~:text=All%20versions) -Or you can add the repository to the package manager according to the [instruction](https://docs.bell-sw.com/liberica-jdk/latest/general/install-guide/#linux). \ No newline at end of file +Or you can add the repository to the package manager according to the [instruction](https://docs.bell-sw.com/liberica-jdk/latest/general/install-guide/#linux). diff --git a/_downloads/linux/loongarch64.md b/src/content/docs/downloads/linux/loongarch64.md similarity index 93% rename from _downloads/linux/loongarch64.md rename to src/content/docs/downloads/linux/loongarch64.md index 79b52572..fbcd0139 100644 --- a/_downloads/linux/loongarch64.md +++ b/src/content/docs/downloads/linux/loongarch64.md @@ -1,8 +1,6 @@ --- title: 下载 HMCL 和 Minecraft 依赖的 Java -date: 2023-09-05 14:00:00 +0800 -redirect_from: - - /downloads/loongnix.html +lastUpdated: 2023-09-05T14:00:00+08:00 --- 龙芯平台存在 “**新世界**” 和 “**旧世界**” 两个 ABI,不同 ABI 的 Java 暂时互不兼容。 @@ -20,14 +18,14 @@ redirect_from: 通过包管理器安装: -- AOSC OS/Debian/Ubuntu: +- AOSC OS/Debian/Ubuntu: ```bash sudo apt install default-jre ``` 注意:Deepin 软件源中的 Java 不包含 JIT 编译器,使用它启动游戏性能将极其糟糕。我们推荐 Deepin 用户直接下载 Java,而不是使用 APT 安装。 - + - ArchLinux: ```bash diff --git a/_downloads/linux/riscv64.md b/src/content/docs/downloads/linux/riscv64.md similarity index 92% rename from _downloads/linux/riscv64.md rename to src/content/docs/downloads/linux/riscv64.md index 359cdab0..01f46489 100644 --- a/_downloads/linux/riscv64.md +++ b/src/content/docs/downloads/linux/riscv64.md @@ -1,6 +1,6 @@ --- title: 下载适用于 Linux RISC-V 64 的 HMCL 和 Minecraft 依赖的 Java -date: 2024-10-06 22:00:00 +0800 +lastUpdated: 2024-10-06T22:00:00+08:00 --- 点下面的链接以下载 Java ,然后使用软件包管理器或者手动解压安装。 @@ -15,4 +15,4 @@ Click one of the following links to download Java, and then use the package or e [Link](https://bell-sw.com/pages/downloads/?version=java-21&os=linux&package=jre&bitness=64&architecture=riscv#:~:text=All%20versions) -Or you can add the repository to the package manager according to the [instruction](https://docs.bell-sw.com/liberica-jdk/latest/general/install-guide/#linux). \ No newline at end of file +Or you can add the repository to the package manager according to the [instruction](https://docs.bell-sw.com/liberica-jdk/latest/general/install-guide/#linux). diff --git a/_downloads/linux/x86.md b/src/content/docs/downloads/linux/x86.md similarity index 92% rename from _downloads/linux/x86.md rename to src/content/docs/downloads/linux/x86.md index 58efb4e2..939c0f20 100644 --- a/_downloads/linux/x86.md +++ b/src/content/docs/downloads/linux/x86.md @@ -1,6 +1,6 @@ --- title: 下载适用于 Linux x86 的 HMCL 和 Minecraft 依赖的 Java -date: 2022-12-03 17:30:00 +0800 +lastUpdated: 2022-12-03T17:30:00+08:00 --- 点下面的链接以下载 Java ,然后使用软件包管理器或者手动解压安装。 @@ -15,4 +15,4 @@ Click one of the following links to download Java, and then use the package or e [Link](https://bell-sw.com/pages/downloads/?version=java-21&os=linux&package=jre&bitness=32&architecture=x86#:~:text=All%20versions) -Or you can add the repository to the package manager according to the [instruction](https://docs.bell-sw.com/liberica-jdk/latest/general/install-guide/#linux). \ No newline at end of file +Or you can add the repository to the package manager according to the [instruction](https://docs.bell-sw.com/liberica-jdk/latest/general/install-guide/#linux). diff --git a/_downloads/linux/x86_64.md b/src/content/docs/downloads/linux/x86_64.md similarity index 92% rename from _downloads/linux/x86_64.md rename to src/content/docs/downloads/linux/x86_64.md index d4dcb84a..aca3d031 100644 --- a/_downloads/linux/x86_64.md +++ b/src/content/docs/downloads/linux/x86_64.md @@ -1,6 +1,6 @@ --- title: 下载适用于 Linux x86_64 的 HMCL 和 Minecraft 依赖的 Java -date: 2022-12-03 17:30:00 +0800 +lastUpdated: 2022-12-03T17:30:00+08:00 --- 点下面的链接以下载 Java ,然后使用软件包管理器或者手动解压安装。 @@ -15,4 +15,4 @@ Click one of the following links to download Java, and then use the package or e [Link](https://bell-sw.com/pages/downloads/?version=java-21&os=linux&package=jre-full&bitness=64&architecture=x86#:~:text=All%20versions) -Or you can add the repository to the package manager according to the [instruction](https://docs.bell-sw.com/liberica-jdk/latest/general/install-guide/#linux). \ No newline at end of file +Or you can add the repository to the package manager according to the [instruction](https://docs.bell-sw.com/liberica-jdk/latest/general/install-guide/#linux). diff --git a/_downloads/macos/arm64.md b/src/content/docs/downloads/macos/arm64.md similarity index 70% rename from _downloads/macos/arm64.md rename to src/content/docs/downloads/macos/arm64.md index e52de710..dc50dcab 100644 --- a/_downloads/macos/arm64.md +++ b/src/content/docs/downloads/macos/arm64.md @@ -1,11 +1,15 @@ --- title: 下载适用于 macOS ARM64 的 HMCL 和 Minecraft 依赖的 Java -date: 2022-12-03 17:30:00 +0800 +autoRedirect: + delay: 5 + text: Java 下载页面 + href: https://bell-sw.com/pages/downloads/?version=java-21&os=macos&architecture=arm&package=jre-full&bitness=64#:~:text=All%20versions +lastUpdated: 2022-12-03T17:30:00+08:00 --- 正在前往 Java 下载页面,请向下滚动点击 `DMG` 安装包下载按钮,然后等待 Java 安装程序下载完成,最后启动安装程序,依照提示安装 Java。 -![macos-arm64-1](/assets/img/docs/java-download-pages/macos-arm64-1.gif) +![macos-arm64-1](../../../../assets/image/docs/java-download-pages/macos-arm64-1.gif) 没有下载?[点击此处开始下载](https://bell-sw.com/pages/downloads/?version=java-21&os=macos&architecture=arm&package=jre-full&bitness=64#:~:text=All%20versions) @@ -14,12 +18,3 @@ date: 2022-12-03 17:30:00 +0800 You are going to the Java download page. Please scroll down and click `DMG` download button, then wait for the Java installer to finish downloading, and finally open the installer and follow the prompts to install Java. No redirect? [Click here to start downloading](https://bell-sw.com/pages/downloads/?version=java-21&os=macos&architecture=arm&package=jre-full&bitness=64#:~:text=All%20versions) - - - - diff --git a/_downloads/macos/x86_64.md b/src/content/docs/downloads/macos/x86_64.md similarity index 70% rename from _downloads/macos/x86_64.md rename to src/content/docs/downloads/macos/x86_64.md index acc4e63b..c587417e 100644 --- a/_downloads/macos/x86_64.md +++ b/src/content/docs/downloads/macos/x86_64.md @@ -1,11 +1,15 @@ --- title: 下载适用于 macOS x86_64 的 HMCL 和 Minecraft 依赖的 Java -date: 2022-12-03 17:30:00 +0800 +autoRedirect: + delay: 5 + text: Java 下载页面 + href: https://bell-sw.com/pages/downloads/?version=java-21&os=macos&architecture=x86&package=jre-full&bitness=64#:~:text=All%20versions +lastUpdated: 2022-12-03T17:30:00+08:00 --- 正在前往 Java 下载页面,请向下滚动点击 `DMG` 安装包下载按钮,然后等待 Java 安装程序下载完成,最后启动安装程序,依照提示安装 Java。 -![macos-x86_64-1](/assets/img/docs/java-download-pages/macos-x86_64-1.gif) +![macos-x86_64-1](../../../../assets/image//docs/java-download-pages/macos-x86_64-1.gif) 没有下载?[点击此处开始下载](https://bell-sw.com/pages/downloads/?version=java-21&os=macos&architecture=x86&package=jre-full&bitness=64#:~:text=All%20versions) @@ -14,12 +18,3 @@ date: 2022-12-03 17:30:00 +0800 You are going to the Java download page. Please scroll down and click `DMG` download button, then wait for the Java installer to finish downloading, and finally open the installer and follow the prompts to install Java. No redirect? [Click here to start downloading](https://bell-sw.com/pages/downloads/?version=java-21&os=macos&architecture=x86&package=jre-full&bitness=64#:~:text=All%20versions) - - - - diff --git a/_downloads/windows/arm64.md b/src/content/docs/downloads/windows/arm64.md similarity index 84% rename from _downloads/windows/arm64.md rename to src/content/docs/downloads/windows/arm64.md index f054d6a6..c23f4e77 100644 --- a/_downloads/windows/arm64.md +++ b/src/content/docs/downloads/windows/arm64.md @@ -1,13 +1,13 @@ --- title: 下载适用于 Windows on Arm 的 HMCL 和 Minecraft 依赖的 Java -date: 2022-12-03 17:30:00 +0800 +lastUpdated: 2022-12-03T17:30:00+08:00 --- Java 安装包已开始下载,请等待 Java 安装程序下载完成,最后启动安装程序,依照提示安装 Java。 -![windows-x86_64-1](/assets/img/docs/java-download-pages/windows-x86_64-1.gif) +![windows-x86_64-1](../../../../assets/image/docs/java-download-pages/windows-x86_64-1.gif) -![windows-x86_64-2](/assets/img/docs/java-download-pages/windows-x86_64-2.gif) +![windows-x86_64-2](../../../../assets/image/docs/java-download-pages/windows-x86_64-2.gif) 没有下载?[点击此处开始下载](https://alist.8mi.tech/d/mirror/ms-jdk/Auto/microsoft-jdk-21-windows-aarch64.msi) @@ -21,7 +21,6 @@ No redirect? [Click here to start downloading](https://aka.ms/download-jdk/micro Can't download? [Click here to download (alternative)](https://alist.8mi.tech/d/mirror/ms-jdk/Auto/microsoft-jdk-21-windows-aarch64.msi) - - - diff --git a/_downloads/windows/x86.md b/src/content/docs/downloads/windows/x86.md similarity index 62% rename from _downloads/windows/x86.md rename to src/content/docs/downloads/windows/x86.md index 6136c25f..3c006698 100644 --- a/_downloads/windows/x86.md +++ b/src/content/docs/downloads/windows/x86.md @@ -1,15 +1,19 @@ --- title: 下载适用于 Windows x86 的 HMCL 和 Minecraft 依赖的 Java -date: 2022-12-03 17:30:00 +0800 +autoRedirect: + delay: 5 + text: Java 下载页面 + href: https://bell-sw.com/pages/downloads/?version=java-21&os=windows&architecture=x86&bitness=32&package=jre-full#:~:text=All%20versions +lastUpdated: 2022-12-03T17:30:00+08:00 --- 正在前往 Java 下载页面,请向下滚动点击 `MSI` 安装包下载按钮,然后等待 Java 安装程序下载完成,最后启动安装程序,依照提示安装 Java。 -![windows-x86-1](/assets/img/docs/java-download-pages/windows-x86-1.gif) +![windows-x86-1](../../../../assets/image/docs/java-download-pages/windows-x86-1.gif) -![windows-x86-2](/assets/img/docs/java-download-pages/windows-x86-2.gif) +![windows-x86-2](../../../../assets/image/docs/java-download-pages/windows-x86-2.gif) -![windows-x86-3](/assets/img/docs/java-download-pages/windows-x86-3.gif) +![windows-x86-3](../../../../assets/image/docs/java-download-pages/windows-x86-3.gif) 没有下载?[点击此处开始下载](https://bell-sw.com/pages/downloads/?version=java-21&os=windows&architecture=x86&bitness=32&package=jre-full#:~:text=All%20versions) @@ -18,12 +22,3 @@ date: 2022-12-03 17:30:00 +0800 You are going to the Java download page. Please scroll down and click `MSI` download button, then wait for the Java installer to finish downloading, and finally open the installer and follow the prompts to install Java. No redirect? [Click here to start downloading](https://bell-sw.com/pages/downloads/?version=java-21&os=windows&architecture=x86&bitness=32&package=jre-full#:~:text=All%20versions) - - - - diff --git a/_downloads/windows/x86_64.md b/src/content/docs/downloads/windows/x86_64.md similarity index 84% rename from _downloads/windows/x86_64.md rename to src/content/docs/downloads/windows/x86_64.md index 259b9899..47375b9f 100644 --- a/_downloads/windows/x86_64.md +++ b/src/content/docs/downloads/windows/x86_64.md @@ -1,13 +1,13 @@ --- title: 下载适用于 Windows x86_64 的 HMCL 和 Minecraft 依赖的 Java -date: 2022-12-03 17:30:00 +0800 +lastUpdated: 2022-12-03T17:30:00+08:00 --- Java 安装包已开始下载,请等待 Java 安装程序下载完成,最后启动安装程序,依照提示安装 Java。 -![windows-x86_64-1](/assets/img/docs/java-download-pages/windows-x86_64-1.gif) +![windows-x86_64-1](../../../../assets/image/docs/java-download-pages/windows-x86_64-1.gif) -![windows-x86_64-2](/assets/img/docs/java-download-pages/windows-x86_64-2.gif) +![windows-x86_64-2](../../../../assets/image/docs/java-download-pages/windows-x86_64-2.gif) 没有下载?[点击此处开始下载](https://alist.8mi.tech/d/mirror/ms-jdk/Auto/microsoft-jdk-21-windows-x64.msi) @@ -21,7 +21,6 @@ No redirect? [Click here to start downloading](https://aka.ms/download-jdk/micro Can't download? [Click here to download (alternative)](https://alist.8mi.tech/d/mirror/ms-jdk/Auto/microsoft-jdk-21-windows-x64.msi) - - diff --git a/src/content/docs/en/changelogs/dev.mdx b/src/content/docs/en/changelogs/dev.mdx new file mode 100644 index 00000000..d3caf7b5 --- /dev/null +++ b/src/content/docs/en/changelogs/dev.mdx @@ -0,0 +1,9 @@ +--- +title: Changelog for Dev Channel +sidebar: + label: Dev +--- + +import Changelogs from "@components/Changelogs.astro"; + + diff --git a/src/content/docs/en/changelogs/stable.mdx b/src/content/docs/en/changelogs/stable.mdx new file mode 100644 index 00000000..4d8fed23 --- /dev/null +++ b/src/content/docs/en/changelogs/stable.mdx @@ -0,0 +1,9 @@ +--- +title: Changelog for Stable Channel +sidebar: + label: Stable +--- + +import Changelogs from "@components/Changelogs.astro"; + + diff --git a/src/content/docs/en/guides/getting-started.md b/src/content/docs/en/guides/getting-started.md new file mode 100644 index 00000000..3f49808f --- /dev/null +++ b/src/content/docs/en/guides/getting-started.md @@ -0,0 +1,13 @@ +--- +title: Getting Started +tableOfContents: false +lastUpdated: 2025-12-06T14:26:53+08:00 +sidebar: + order: 1 +--- + +The articles were written in Simplified Chinese. If you want to help translate them, please send a pull request to [HMCL-docs/pulls](https://github.com/HMCL-dev/HMCL-docs/pulls). Or you can enable your translation tool to read. + +If you encounter a BUG, please send feedback in time to [HMCL/issues](https://github.com/HMCL-dev/HMCL/issues). + +You can also submit your suggestions here. diff --git a/_eula/hmcl.md b/src/content/docs/eula/hmcl.md similarity index 97% rename from _eula/hmcl.md rename to src/content/docs/eula/hmcl.md index f9e7d680..f44b8b3c 100644 --- a/_eula/hmcl.md +++ b/src/content/docs/eula/hmcl.md @@ -1,8 +1,12 @@ --- title: Hello Minecraft! Launcher 用户协议 -date: 2021-09-21 23:26:00 +0800 +tableOfContents: false +lastUpdated: 2021-09-21T23:26:00+08:00 +sidebar: + label: HMCL --- +``` 欢迎使用黄鱼(以下简称“开发者”)提供的 Hello Minecraft! Launcher(以下简称“本软件”)软件与服务。 为了保障用户(或称“您”)的权益,特制定本用户协议书(以下简称本协议)。 请您在使用本软件前,详细阅读本协议的所有内容。开发者可能随时更新本协议,本协议一旦发生变动,开发者将会在相关页面上通告修改内容。 修改后的本协议一旦在页面上公布即有效代替原用户协议书。 请用户仔细阅读以下全部内容,当用户开始使用本软件时,则应视为用户已经详细阅读并同意本协议的全部内容,且同意遵守本协议的规定。 @@ -111,9 +115,9 @@ date: 2021-09-21 23:26:00 +0800 本协议一旦发生变动,开发者将在重要页面展示修改内容,敬请定期查询。 -若用户不同意本协议的修订或更新,用户可以主动停止使用本软件及服务。 +若用户不同意本协议的修订或更新,用户可以主动停止使用本软件及服务。 -若用户在本协议修订后仍继续使用本软件及服务,即表示用户同意本协议所做的所有修订或更新。 +若用户在本协议修订后仍继续使用本软件及服务,即表示用户同意本协议所做的所有修订或更新。 若用户在本协议修订后因未熟悉变更而引起的损失,开发者不承担任何责任。 @@ -125,4 +129,5 @@ date: 2021-09-21 23:26:00 +0800 3.在法律许可范围内,开发者享有对本协议条款的解释权; -4.用户可以通过电子邮件投诉、举报各类违法违规行为,邮件请发送至邮箱:hmcl@huangyuhui.net。 \ No newline at end of file +4.用户可以通过电子邮件投诉、举报各类违法违规行为,邮件请发送至邮箱:hmcl@huangyuhui.net。 +``` diff --git a/_docs/contribution.md b/src/content/docs/guides/contribution.md similarity index 66% rename from _docs/contribution.md rename to src/content/docs/guides/contribution.md index fc51ebd3..1e8329f2 100644 --- a/_docs/contribution.md +++ b/src/content/docs/guides/contribution.md @@ -1,11 +1,11 @@ --- title: 贡献指南 -date: 2021-10-09 23:18:02 +0800 -author: huanghongxun -classes: wide -toc: false +contributors: + - huanghongxun +tableOfContents: false +lastUpdated: 2021-10-09T23:18:02+08:00 --- 如果你认为你有能力为 HMCL 添加高质量的帮助文档,或希望修改错误,你可以到 [https://github.com/HMCL-dev/HMCL-docs](https://github.com/HMCL-dev/HMCL-docs) 仓库中发 Pull Request,或者提 Issue。 -或者你可以进入我们的 [Discord](https://discord.gg/jVvC7HfM6U) 或 [HMCL 用户群](/_docs/groups.md) 群以向 HMCL 反馈。 +或者你可以进入我们的 [Discord](https://discord.gg/jVvC7HfM6U) 或 [HMCL 用户群](./groups.html) 群以向 HMCL 反馈。 diff --git a/src/content/docs/guides/crash-support-group.mdx b/src/content/docs/guides/crash-support-group.mdx new file mode 100644 index 00000000..518f1524 --- /dev/null +++ b/src/content/docs/guides/crash-support-group.mdx @@ -0,0 +1,31 @@ +--- +title: 加入 HMCL 报错崩溃交流群 +description: HMCL 报错崩溃交流群仅处理游戏报错与崩溃问题 +contributors: + - zkitefly +tableOfContents: false +lastUpdated: 2024-03-05T17:00:00+08:00 +sidebar: + label: 报错崩溃交流群 +--- + +import AgreeCrashSupportGroupRules from "@components/AgreeCrashSupportGroupRules.astro"; + +:::note[入群须知] + +- 本群仅处理游戏报错与崩溃问题,其他无关话题请前往对应群聊讨论。 +- 若在游戏过程中出现非正常退出、闪退、崩溃等情况,欢迎加入本群咨询解决方案。 +- 由于群内人数较多,问题解决后将移出对应成员;如后续再次遇到新问题,可重新入群寻求帮助。 +- 游戏发生非正常退出时,请点击左下角“导出游戏崩溃信息”按钮(注意:不是“日志”按钮),并完整发送生成的报错压缩包。 +- 遇到其他类型问题,请尽量详细描述情况,并提供相关截图,便于准确定位问题。 +- 使用整合包的用户,请务必说明整合包名称及具体版本号。 +- 请保持基本耐心与礼貌,群管理及群友会协助排查问题,严禁辱骂、催促或施压他人。 +- 严禁讨论政治、色情、违法、金钱交易等敏感内容,禁止人身攻击、造谣、诽谤等行为。 +- 禁止刷屏、灌水、引战、恶意争论或情绪宣泄等扰乱群秩序的行为。 +- 禁止使用第三方插件发送特殊消息;禁止讨论或传播多人游戏作弊工具。 +- 本群仅支持 HMCL 启动器相关问题。PCL 启动器用户请加入群:`978054335`。 +- 请勿重复发送相同文件;如需重新引起关注,请引用之前发送的消息。 + +::: + + diff --git a/_docs/faq.md b/src/content/docs/guides/faq.md similarity index 75% rename from _docs/faq.md rename to src/content/docs/guides/faq.md index a3ba1d4c..96392860 100644 --- a/_docs/faq.md +++ b/src/content/docs/guides/faq.md @@ -1,14 +1,14 @@ --- -title: 各大问题集合 -date: 2025-09-19 13:40:00 +0800 -author: LIPiston +title: 常见问题 contributors: + - LIPiston - Mine-diamond +lastUpdated: 2025-09-19T13:40:00+08:00 --- -> 这是一个提供给新手或小白的阅读文档,旨在用最简单的方式帮你快速上手 HMCL 启动器和 Minecraft 游戏。如需深入了解某个主题,可点击文中提供的链接查看详细文档。 +这是一个提供给新手或小白的阅读文档,旨在用最简单的方式帮你快速上手 HMCL 启动器和 Minecraft 游戏。如需深入了解某个主题,可点击文中提供的链接查看详细文档。 -### 如何登录账户 +## 如何登录账户 你需要使用微软账户购买游戏才能游玩 Minecraft,或者使用离线账户/外置账户。 @@ -16,43 +16,44 @@ contributors: 完成购买后,在 HMCL 主界面左上角,点击「账户」,然后点击左侧的「微软账户」登录你的账户,或者点击「离线登录」创建一个离线账户。 -### 如何下载游戏 +## 如何下载游戏 -使用 HMCL 下载 Minecraft 非常简单,只需几步即可完成。 +使用 HMCL 下载 Minecraft 非常简单,只需几步即可完成。 -如果你尚未安装任何实例(即未安装过任何游戏版本),可以直接点击 **「开始游戏」**。HMCL 会自动安装最新正式版 Minecraft 并启动游戏。 +如果你尚未安装任何实例(即未安装过任何游戏版本),可以直接点击 **「开始游戏」**。HMCL 会自动安装最新正式版 Minecraft 并启动游戏。 -若想下载更多实例(首次下载也可以按此方式操作),请按以下步骤进行: +若想下载更多实例(首次下载也可以按此方式操作),请按以下步骤进行: 在主界面找到并点击左侧的「下载」按钮。 -![](/assets/img/docs/faq/img1.png) +![](../../../assets/image/docs/faq/img1.png) 在下载页面,点击左侧顶部的「游戏」选项卡。这里会列出所有可用的游戏版本(**版本号从上到下/由新到旧排序**),选择一个你喜欢的版本。我们通常推荐最新的正式版。 -![](/assets/img/docs/faq/img2.png) +![](../../../assets/image/docs/faq/img2.png) 点击右下角的「安装」按钮,HMCL 就会自动为你完成下载和安装。 -![](/assets/img/docs/faq/img3.png) +![](../../../assets/image/docs/faq/img3.png) 现在回到主界面,点击右下角的 **「启动游戏」** 按钮,开始你的创造吧! -![](/assets/img/docs/faq/img4.png) +![](../../../assets/image/docs/faq/img4.png) -### 游戏玩法是什么 +## 游戏玩法是什么 -在等待游戏下载时,不妨先了解一下它的核心玩法。 +在等待游戏下载时,不妨先了解一下它的核心玩法。 -作为一款沙盒游戏,简单的说,核心玩法就是 **「破坏」** 和 **「创造」** 。你可以自由地探索世界、收集资源、建造家园、挑战怪物…… +作为一款沙盒游戏,简单的说,核心玩法就是 **「破坏」** 和 **「创造」** 。你可以自由地探索世界、收集资源、建造家园、挑战怪物…… 对于新手而言,下面这些官方中文 Wiki 链接是你的最佳起点: + - **新手入门必读**:[Minecraft Wiki 新手手册](https://zh.minecraft.wiki/w/%E6%95%99%E7%A8%8B/%E6%96%B0%E6%89%8B%E6%89%8B%E5%86%8C) - **生存第一天指南**:[教程:第一天怎么过](https://zh.minecraft.wiki/w/Tutorial:%E7%AC%AC%E4%B8%80%E5%A4%A9) -### 什么是资源包 +## 什么是资源包 -你可能听到有其他玩家讨论好看的「材质包」。 +你可能听到有其他玩家讨论好看的「材质包」。 「材质包」一般是单指修改了游戏纹理的「资源包」,也是 Minecraft 1.5 及之前版本使用的称呼。 @@ -60,49 +61,53 @@ contributors: 「资源包」是指可以修改游戏中的多种资源,如**纹理(贴图)、模型、音乐、音效、语言文件**等的文件,能够极大地改变游戏的外观和感觉。而一个好的资源包能极大地提升你的游戏视听体验。 -![大致示意图](/assets/img/docs/faq/img5.jpg) +![大致示意图](../../../assets/image/docs/faq/img5.jpg) - **如何使用资源包?** 查看 [加载资源包教程](https://zh.minecraft.wiki/w/Tutorial:%E5%8A%A0%E8%BD%BD%E8%B5%84%E6%BA%90%E5%8C%85)。 - **想制作自己的资源包?** 深入了解 [资源包详细资料](https://zh.minecraft.wiki/w/%E8%B5%84%E6%BA%90%E5%8C%85)。 你可以在下列网站获取资源包: + - [CurseForge](https://www.curseforge.com/minecraft/texture-packs) - [Modrinth](https://modrinth.com/resourcepacks) -### 什么是模组 (Mod) +## 什么是模组 (Mod) 你可能听说过我的世界拥有丰富的模组(Mod)资源。模组是一类能改变或增加游戏内容的强大工具,它允许你新增方块、生物、物品与机制等内容。通过安装模组,你可以获得更丰富的内容、更顺手的玩法体验和更出色的视听表现。 你可以在下列网站获取模组信息,并在 HMCL 内下载和安装: + - [MC 百科](https://www.mcmod.cn/) - [CurseForge](https://www.curseforge.com/minecraft/search?class=mc-mods) - [Modrinth](https://modrinth.com/mods) -HMCL 自动安装与使用模组教程: [跳转](/_launcher/auto-installing.md) +HMCL 自动安装与使用模组教程: [跳转](../launcher/auto-installing.html) -#### 安装模组后游戏报错怎么办 +### 安装模组后游戏报错怎么办 -安装模组后游戏无法启动或崩溃是常见的情况,通常是模组冲突或缺少前置模组导致的。别担心,大部分问题都能轻松解决。 +安装模组后游戏无法启动或崩溃是常见的情况,通常是模组冲突或缺少前置模组导致的。别担心,大部分问题都能轻松解决。 -在 HMCL《自动安装与模组下载简介》的末尾讲到了常用的解决方法: [跳转](/_launcher/auto-installing.md#安装-mod-后游戏报错无法启动) +在 HMCL《自动安装与模组下载简介》的末尾讲到了常用的解决方法: [跳转](../launcher/auto-installing.html#安装-mod-后游戏报错无法启动) -或者前往模组包报错排查手册中查看: [跳转](/_modpack/error-handbook.md) +或者前往模组包报错排查手册中查看: [跳转](../modpack/error-handbook.html) -如果无法解决错误,尝试 [寻求帮助](/_docs/help.md) +如果无法解决错误,尝试 [寻求帮助](./help.html) -### 如何选择游戏的 Java 版本 +## 如何选择游戏的 Java 版本 HMCL 会自动管理 Java,并针对不同版本的游戏自动选择合适的 Java 版本。若在启动游戏时未检测到合适的 Java,HMCL 也会提示下载 Java(点击“下载”即可完成安装)。对于新手玩家,使用默认设置即可。 -如果你确实需要手动安装并指定 Java 版本: +如果你确实需要手动安装并指定 Java 版本: **安装 Java:** -1. 进入 **设置 -> Java 管理**,此处会展示 HMCL 安装的或系统中已安装的 Java。 -2. 如果需要下载 Java,点击「下载 Java」,选择所需的版本,然后点击「确定」。 -3. 如果你安装了 Java 但是没有被 HMCL 识别,选择「添加 Java」,找到你需要的 Java 安装路径下的 `java.exe` 文件(仅 Windows)或 `java` 文件(仅 Linux/macOS),然后点击确定。 + +1. 进入 **设置 -> Java 管理**,此处会展示 HMCL 安装的或系统中已安装的 Java。 +2. 如果需要下载 Java,点击「下载 Java」,选择所需的版本,然后点击「确定」。 +3. 如果你安装了 Java 但是没有被 HMCL 识别,选择「添加 Java」,找到你需要的 Java 安装路径下的 `java.exe` 文件(仅 Windows)或 `java` 文件(仅 Linux/macOS),然后点击确定。 **选择 Java:** + - 如果希望所有实例都使用同一 Java 版本,进入「设置 -> 全局游戏设置」,选择要使用的 Java。该 Java 将用于所有使用全局游戏设置的实例(一般不推荐)。 - 如果仅需为某个实例指定 Java 版本,进入该实例的「实例管理界面 -> 游戏设置」(勾选“启用实例特定游戏设置”),然后选择要使用的 Java。该 Java 仅用于该实例的启动。 -> **重要提示**:如果你在更换 Java 后遇到任何游戏崩溃或无法启动的问题,**请立即切换回 HMCL 默认的 Java 版本**。 +> **重要提示**:如果你在更换 Java 后遇到任何游戏崩溃或无法启动的问题,**请立即切换回 HMCL 默认的 Java 版本**。 diff --git a/src/content/docs/guides/getting-started.md b/src/content/docs/guides/getting-started.md new file mode 100644 index 00000000..46942f4f --- /dev/null +++ b/src/content/docs/guides/getting-started.md @@ -0,0 +1,11 @@ +--- +title: 开始使用 +tableOfContents: false +lastUpdated: 2025-12-06T14:26:53+08:00 +sidebar: + order: 1 +--- + +如果您遇到 BUG,请及时在 [HMCL/issues](https://github.com/HMCL-dev/HMCL/issues) 发送反馈。 + +您也可以在这里提交您的建议。 diff --git a/_docs/groups.md b/src/content/docs/guides/groups.mdx similarity index 89% rename from _docs/groups.md rename to src/content/docs/guides/groups.mdx index 5c483aca..1218ed64 100644 --- a/_docs/groups.md +++ b/src/content/docs/guides/groups.mdx @@ -1,12 +1,16 @@ --- title: 加入 HMCL 用户群 -date: 2024-03-05 17:00:00 +0800 -author: Glavo contributors: + - Glavo - 8Mi_Yile - zkitefly +lastUpdated: 2024-03-05T17:00:00+08:00 +sidebar: + label: 用户群 --- +import Groups from "@components/Groups.astro"; + 欢迎所有 Minecraft 玩家加入 HMCL 用户群,入群请遵守以下群规: 1. 禁止谈论政治相关、色情、违法犯罪、金钱往来等敏感内容,禁止辱骂、造谣诽谤、恶俗等行为,禁止讨论精神疾病、LGBT 等话题,请尊重每一个人; @@ -19,19 +23,15 @@ contributors: ## 用户群 -![](/assets/img/docs/groups/group-4.png) - 以下为闲聊群,欢迎所有用户加入(同时加入多个群聊会被踢出): -{% for group in site.data.groups -%} -- [{{ group.name }}]({{ group.link }}){% if group.status %}({{ group.status }}){% endif %} -{% endfor %} + 我们会不定期清理用户群中超过三个月没有发言的非活跃成员,每次清理前我们会提前一周在群内发布公告。 ## 报错崩溃交流群 -如果你遇到了游戏非正常退出问题,欢迎加入报错崩溃交流群咨询解决方案:[Minecraft 报错崩溃交流群](/_docs/crash-support-group.md) +如果你遇到了游戏非正常退出问题,欢迎加入报错崩溃交流群咨询解决方案:[Minecraft 报错崩溃交流群](./crash-support-group.html) **本群仅处理游戏报错崩溃问题,无关话题请前往其他群聊讨论。** diff --git a/src/content/docs/guides/help.mdx b/src/content/docs/guides/help.mdx new file mode 100644 index 00000000..6ba15d4c --- /dev/null +++ b/src/content/docs/guides/help.mdx @@ -0,0 +1,21 @@ +--- +title: 寻求帮助 +contributors: + - zkitefly +tableOfContents: false +lastUpdated: 2023-08-09T11:12:00+08:00 +--- + +import { LinkCard } from "@astrojs/starlight/components"; + + + + diff --git a/src/content/docs/index.md b/src/content/docs/index.md new file mode 100644 index 00000000..5362c2a9 --- /dev/null +++ b/src/content/docs/index.md @@ -0,0 +1,17 @@ +--- +title: HMCL 文档 +description: HMCL 启动器 | 跨平台 | 整合包管理 | 自动安装 | 十二年历史 | 三亿次使用 +template: splash +hero: + tagline: 支持跨平台运行的《我的世界》启动器。 + image: + file: ../../assets/image/hmcl-main.png + actions: + - text: 新手导航 + link: ./guides/getting-started.html + icon: right-arrow + - text: 文档仓库 + link: https://github.com/HMCL-dev/HMCL-docs + icon: external + variant: minimal +--- diff --git a/src/content/docs/launcher/authlib-injector.mdx b/src/content/docs/launcher/authlib-injector.mdx new file mode 100644 index 00000000..9be35cbf --- /dev/null +++ b/src/content/docs/launcher/authlib-injector.mdx @@ -0,0 +1,35 @@ +--- +title: Authlib-Injector 服务器设置指南 +description: 配置默认的验证服务器 +contributors: + - huanghongxun +lastUpdated: 2021-08-22T23:18:02+08:00 +--- + +import { FileTree } from "@astrojs/starlight/components"; + +## 背景 + +使用 authlib-injector 认证的服主可以通过本教程提供的方法使 HMCL 默认在打开时弹窗要求创建对应认证服务器的账户。 + +## 方法 + +在 HMCL 启动器同级目录下创建 `authlib-injectors.json` 文件,此时文件夹目录结构如下图所示: + + + +- .minecraft/ +- authlib-injector.json +- HMCL-3.2.135.exe + + + +:::note +请确保打包后的整合包不包含 `hmcl.json` 文件,否则无法生效。该文件默认为隐藏状态,需开启隐藏文件显示。 +::: + +```json title="authlib-injectors.json" +{ + "urls": ["https://example.yggdrasil.yushi.moe/"] +} +``` diff --git a/_launcher/auto-installing.md b/src/content/docs/launcher/auto-installing.md similarity index 51% rename from _launcher/auto-installing.md rename to src/content/docs/launcher/auto-installing.md index f625dd9e..33adc90d 100644 --- a/_launcher/auto-installing.md +++ b/src/content/docs/launcher/auto-installing.md @@ -1,8 +1,9 @@ --- title: 自动安装与模组下载简介 -excerpt: 安装 Forge、Fabric、LiteLoader、OptiFine 及模组的教程 -date: 2021-10-09 23:18:02 +0800 -author: asdqp233 +description: 安装 Forge、Fabric、LiteLoader、OptiFine 及模组的教程 +contributors: + - asdqp233 +lastUpdated: 2021-10-09T23:18:02+08:00 --- ## 安装 Mod 加载器 @@ -13,13 +14,13 @@ author: asdqp233 以及 `Fabric API, QSL/QFAPI` 这两个随 Fabric 与 Quilt 的 API(实际是模组)可供选择。 -![AutoInstaller_ModLoader](/assets/img/docs/auto-installing/AutoInstaller_ModLoader.png) +![AutoInstaller_ModLoader](../../../assets/image/docs/auto-installing/AutoInstaller_ModLoader.png) -当你使用 1.14 及以上的游戏版本时, 推荐使用 *Fabric* +当你使用 1.14 及以上的游戏版本时, 推荐使用 _Fabric_ -1.14 以下的版本推荐使用 *Forge* +1.14 以下的版本推荐使用 _Forge_ -*LiteLoader* 只适用于 1.12.2 及以前的版本 (目前已停更) +_LiteLoader_ 只适用于 1.12.2 及以前的版本 (目前已停更) **注意:** @@ -27,13 +28,13 @@ author: asdqp233 **注意:** -***LiteLoader* 和 *Forge* 是兼容的 (*Forge* 较新版本和 *LiteLoader* 较老版本可能不兼容)** +**_LiteLoader_ 和 _Forge_ 是兼容的 (_Forge_ 较新版本和 _LiteLoader_ 较老版本可能不兼容)** -***Fabric* 和 *Forge* 不兼容!** +**_Fabric_ 和 _Forge_ 不兼容!** -**如果选择 *Fabric* , 那么建议同时选择 *Fabric API*** +**如果选择 _Fabric_ , 那么建议同时选择 _Fabric API_** -**如果选择 *Quilt* ,那么建议同时选择 *QSL/QFAPI*** +**如果选择 _Quilt_ ,那么建议同时选择 _QSL/QFAPI_** ## 安装 Mod @@ -45,43 +46,43 @@ HMCL 内置了 CurseForge 和 Modrinth 下载源的搜索和下载功能, 目前 点开 Mod 下载页面, 最上方会显示当前 Mod 需要的前置 Mod (如果有) , 以及 Mod 支持的全部版本, 请根据你当前安装的游戏版本选择恰当的版本。 -**注意: 请区分 *Forge Mod* 和 *Fabric Mod* , 大部分 Mod 在文件名中会注明, 请不要选择错误, 否则 Mod 将无法被正确加载。** +**注意: 请区分 _Forge Mod_ 和 _Fabric Mod_ , 大部分 Mod 在文件名中会注明, 请不要选择错误, 否则 Mod 将无法被正确加载。** **建议点击上方的蓝色的 模组详情链接 查看模组的信息,这有可能会提示你些什么注意事项** -![AddingModAutomatically](/assets/img/docs/auto-installing/AutoInstaller_ModAutoAdding.png) +![AddingModAutomatically](../../../assets/image/docs/auto-installing/AutoInstaller_ModAutoAdding.png) #### Fabric Mod / Quilt Mod -*Fabric Mod* 和 *Quilt Mod* 的安装和 *Forge Mod* 的安装类似, [参照上文](#forge-mod)。 +_Fabric Mod_ 和 _Quilt Mod_ 的安装和 _Forge Mod_ 的安装类似, [参照上文](#forge-mod)。 **注意:** -- **几乎所有的 *Fabric Mod* 或 *Quilt Mod* 都需要 *Fabric API* 或 *QSL/QFAPI*。在安装 Mod 加载器时候如果没有选择, 请选择安装 *Fabric API* 或 *QSL/QFAPI* , 否则 *Fabric Mod* 或 *Quilt Mod* 则有可能无法被加载!** +- **几乎所有的 _Fabric Mod_ 或 _Quilt Mod_ 都需要 _Fabric API_ 或 _QSL/QFAPI_。在安装 Mod 加载器时候如果没有选择, 请选择安装 _Fabric API_ 或 _QSL/QFAPI_ , 否则 _Fabric Mod_ 或 _Quilt Mod_ 则有可能无法被加载!** -- ***Fabric* 对应 *Fabric API* ,*Quilt Mod* 对应 *QSL/QFAPI* ,请不要搞错。** +- **_Fabric_ 对应 _Fabric API_ ,_Quilt Mod_ 对应 _QSL/QFAPI_ ,请不要搞错。** #### LiteLoader Mod -*LiteLoader Mod* 安装和 *Forge Mod* 的安装类似, [参照上文](#forge-mod)。 +_LiteLoader Mod_ 安装和 _Forge Mod_ 的安装类似, [参照上文](#forge-mod)。 -**注意: LiteLoader 只能加载文件后缀为 litemod 的模组, *Forge Mod*、*Fabric Mod* 和 *Quilt Mod*等修改后缀的方法 LiteLoader 是无法检测。** +**注意: LiteLoader 只能加载文件后缀为 litemod 的模组, _Forge Mod_、_Fabric Mod_ 和 *Quilt Mod*等修改后缀的方法 LiteLoader 是无法检测。** #### OptiFine -[详情请查阅此](/_launcher/shader.md) +[详情请查阅此](./shader.html) ### 手动安装 一般的 Mod 文件后缀为 `jar` 或者 `litemod` 。 -将这个 jar 文件复制到 `\.minecraft\Mods` 文件夹中即可 (没有这个文件夹就自己新建一个) 。 +将这个 jar 文件复制到 `.minecraft/mods` 文件夹中即可 (没有这个文件夹就自己新建一个) 。 -若开启了版本隔离, 那么文件夹是`\.minecraft\version\<版本名称>\Mods`。 +若开启了版本隔离, 那么文件夹是`.minecraft/version/<版本名称>/mods`。 或者在 HMCL 的 `游戏管理页面—模组管理` 页面点击添加模组或直接将文件拖入启动器窗口。 -![AddingModManually](/assets/img/docs/auto-installing/AutoInstaller_ModManualAdding.png) +![AddingModManually](../../../assets/image/docs/auto-installing/AutoInstaller_ModManualAdding.png) ## 安装 Mod 后游戏报错/无法启动 @@ -93,4 +94,4 @@ HMCL 内置了 CurseForge 和 Modrinth 下载源的搜索和下载功能, 目前 3. 如果你的能力很优秀, 也可以直接查看游戏日志来找出问题的原因。 -4. 如果无法理解日志内容, 那么请将 `\.minecraft\crash-reports` 和 `\.minecraft\logs` 文件夹打包发给其他人寻求帮助。 +4. 如果无法理解日志内容, 那么请将 `.minecraft/crash-reports` 和 `.minecraft/logs` 文件夹打包发给其他人寻求帮助。 diff --git a/_launcher/datapack.md b/src/content/docs/launcher/datapack.mdx similarity index 75% rename from _launcher/datapack.md rename to src/content/docs/launcher/datapack.mdx index 1d9aac1b..4b88e78a 100644 --- a/_launcher/datapack.md +++ b/src/content/docs/launcher/datapack.mdx @@ -1,10 +1,13 @@ --- title: 数据包制作指南 -excerpt: 制作可以由 HMCL 导入的数据包 -date: 2021-08-22 23:18:02 +0800 -author: huanghongxun +description: 制作可以由 HMCL 导入的数据包 +contributors: + - huanghongxun +lastUpdated: 2021-08-22T23:18:02+08:00 --- +import { FileTree } from "@astrojs/starlight/components"; + 本指南只介绍如何制作一个 HMCL 可导入的数据包压缩包。 ## 建议 @@ -16,23 +19,20 @@ author: huanghongxun 如果你的数据包被分离成多个部分供玩家选择是否启用,或者需要自带资源包,那么你需要制作多数据包格式的压缩包。 多数据包文件(只能是一个 `.zip` 文件)格式例子如下: -``` -crafting++.zip -\ -* datapacks - |\ - | * block_sky_domain (一个合法的数据包) - | * crafting_machine - | * craftingpp - | * tradepp - | * utilitypp - | -* resources.zip (如果你的数据包需要附带材质) - \ - * assets - \ - * ... -``` + + + +- crafting++.zip/ + - datapacks/ + - block_sky_domain # 一个合法的数据包 + - crafting_machine + - craftingpp + - tradepp + - utilitypp + - resources.zip/ # 如果你的数据包需要附带材质 + - assets/ + + 其中,`datapacks` 下的文件格式和 `.minecraft/saves/New World/datapacks` 的一样,因此可直接手动打包你本地的 `datapacks` 文件夹, 就可以直接导入 HMCL 了。如果还需要资源文件,请在压缩包内附带上。 @@ -42,16 +42,17 @@ crafting++.zip 如果你的服务器使用了包含资源包的数据包,那么请在服务器上完成这个操作,接着玩家下载服务器资源包即可。 ## 单数据包 + 如果你的数据包不需要资源文件,那么你直接打包 `datapacks/<你的数据包名称>` 文件夹,即可直接导入 HMCL。 单数据包文件(只能是一个 `.zip` 文件)格式例子如下: -``` -RealisticGlassPane.zip -\ -* pack.mcmeta -* data - \ - * 一些文件 -``` - -HMCL 将会将你打包好的数据包压缩包直接复制到 datapacks 文件夹,不会解压(因为原版游戏支持读取压缩包)。 \ No newline at end of file + + + +- RealisticGlassPane.zip/ + - data/ + - pack.mcmeta + + + +HMCL 将会将你打包好的数据包压缩包直接复制到 datapacks 文件夹,不会解压(因为原版游戏支持读取压缩包)。 diff --git a/_launcher/fabric_and_optifine_install.md b/src/content/docs/launcher/fabric-and-optifine-install.md similarity index 62% rename from _launcher/fabric_and_optifine_install.md rename to src/content/docs/launcher/fabric-and-optifine-install.md index d8072c57..040a3c31 100644 --- a/_launcher/fabric_and_optifine_install.md +++ b/src/content/docs/launcher/fabric-and-optifine-install.md @@ -1,8 +1,9 @@ --- title: 同时安装 Fabric & OptiFine -excerpt: 本文介绍了如何在 HMCL 中同时安装 OptiFine 和 Fabric -date: 2023-01-04 11:30:00 +0800 -author: zkitefly +description: 本文介绍了如何在 HMCL 中同时安装 OptiFine 和 Fabric +contributors: + - zkitefly +lastUpdated: 2023-01-04T11:30:00+08:00 --- 在 HMCL 的自动安装中,如果先选择了 Fabric 或 OptiFine ,HMCL 就会提示他们互不兼容。 @@ -17,9 +18,9 @@ author: zkitefly ### 1.先选择一个版本,并选择 Fabric ,并安装。 -![安装fabric客户端](/assets/img/docs/fabric_and_optifine_install/1.gif) +![安装fabric客户端](/assets/image/docs/launcher/fabric-and-optifine-install/1.gif) -*注:如果你想放置其他的 Fabric 模组,建议一并安装 **Fabric API** ,有些 Fabric 模组会依赖他。* +_注:如果你想放置其他的 Fabric 模组,建议一并安装 **Fabric API** ,有些 Fabric 模组会依赖他。_ ### 2.获取并安装 OptiFabric 模组 & OptiFine @@ -29,39 +30,39 @@ author: zkitefly [MC百科下载页面(推荐)](https://www.mcmod.cn/download/1703.html) -![MC百科下载页面](/assets/img/docs/fabric_and_optifine_install/2.png) +![MC百科下载页面](../../../assets/image/docs/fabric-and-optifine-install/2.png) [CurseForge页面](https://www.curseforge.com/minecraft/mc-mods/optifabric/files/all) 下载操作: -![CurseForge页面下载操作](/assets/img/docs/fabric_and_optifine_install/5.png) +![CurseForge页面下载操作](../../../assets/image/docs/fabric-and-optifine-install/5.png) HMCL 模组搜索下载操作: -![1](/assets/img/docs/fabric_and_optifine_install/6.png) +![1](../../../assets/image/docs/fabric-and-optifine-install/6.png) -![2](/assets/img/docs/fabric_and_optifine_install/7.png) +![2](../../../assets/image/docs/fabric-and-optifine-install/7.png) -![3](/assets/img/docs/fabric_and_optifine_install/8.png) +![3](../../../assets/image/docs/fabric-and-optifine-install/8.png) -![4](/assets/img/docs/fabric_and_optifine_install/9.png) +![4](../../../assets/image/docs/fabric-and-optifine-install/9.png) -*注:如果你在HMCL模组搜索中下载时,另存该模组,那么就需要按照下面的模组安装方法来安装。* +_注:如果你在HMCL模组搜索中下载时,另存该模组,那么就需要按照下面的模组安装方法来安装。_ - **2)获取 OptiFine ,可以在他的 [页面](https://optifine.net/downloads) 或非官方 [中文页面](https://optifine.cn/downloads) 中可以下载** OptiFine [页面](https://optifine.net/downloads) 操作: -![OptiFine页面操作](/assets/img/docs/fabric_and_optifine_install/5.png) +![OptiFine页面操作](../../../assets/image/docs/fabric-and-optifine-install/5.png) OptiFine 非官方 [中文页面](https://optifine.cn/downloads) 操作: - + #### 安装 进入 要安装模组的游戏版本 的 游戏管理 ,切换到 模组管理 ,在这个页面将 OptiFabric 模组 & OptiFine 添加即可 -![安装模组](/assets/img/docs/fabric_and_optifine_install/11.gif) +![安装模组](../../../assets/image/docs/fabric-and-optifine-install/11.gif) **然后在 模组管理 中检查是否有 OptiFabric 模组 & OptiFine !** diff --git a/_launcher/gui-features.md b/src/content/docs/launcher/gui-features.md similarity index 75% rename from _launcher/gui-features.md rename to src/content/docs/launcher/gui-features.md index c2eab4ab..13a6724d 100644 --- a/_launcher/gui-features.md +++ b/src/content/docs/launcher/gui-features.md @@ -1,19 +1,20 @@ --- title: 界面功能介绍 -excerpt: 本文整理了启动器部分界面的功能介绍 -date: 2026-01-09T15:19:02+08:00 +description: 本文整理了启动器部分界面的功能介绍 +lastUpdated: 2026-01-09T15:19:02+08:00 --- -![启动器预览图](/assets/img/docs/launcher/gui-features/global.png) +![启动器预览图](../../../assets/image/docs/launcher/gui-features/global.png) 启动器界面整体由顶部工具栏和页面容器构成。 ## 顶部工具栏 -![顶部工具栏](/assets/img/docs/launcher/gui-features/topbar.png) +![顶部工具栏](../../../assets/image/docs/launcher/gui-features/topbar.png) -> [!TIP] -> 用户可以通过双击工具栏在最大化与普通窗口状态之间切换。 +:::tip +用户可以通过双击工具栏在最大化与普通窗口状态之间切换。 +::: 此区域为全局显示,共分为左右两部分。其中左侧由返回按钮(仅在二级或多级页面显示)和标题构成,右侧由帮助按钮、最小化按钮和关闭按钮构成。 @@ -25,20 +26,21 @@ date: 2026-01-09T15:19:02+08:00 ## 首页 -![首页](/assets/img/docs/launcher/gui-features/home.png) +![首页](../../../assets/image/docs/launcher/gui-features/home.png) 首页是启动器的起始页面,该页面由侧边导航栏、提示面板(仅限开发版和预览版)、更新面板(仅在存在可用更新时显示)和启动游戏面板构成。 ### 侧边导航栏(首页) -![侧边导航栏(首页)](/assets/img/docs/launcher/gui-features/home-sidebar.png) +![侧边导航栏(首页)](../../../assets/image/docs/launcher/gui-features/home-sidebar.png) 此区域共分为三部分:账户分组、游戏分组及通用分组。 **账户分组**:该分组中包含一个列表项,该项会显示当前选定的账户头像、名称及账户类型,用户点击该项可进入账户列表页面;右键点击该项可呼出账户切换的快捷菜单。 -> [!TIP] -> 用户在该项上滚动鼠标滚轮可在不同账户之间进行快捷切换。 +:::tip +用户在该项上滚动鼠标滚轮可在不同账户之间进行快捷切换。 +::: **游戏分组**:该分组中包含三个列表项,分别是:实例管理、实例列表及下载。 @@ -54,22 +56,23 @@ date: 2026-01-09T15:19:02+08:00 ### 提示面板 -![提示面板](/assets/img/docs/launcher/gui-features/home-tip.png) +![提示面板](../../../assets/image/docs/launcher/gui-features/home-tip.png) -> [!TIP] -> 用户可通过点击右上角关闭按钮隐藏该提示。 +:::tip +用户可通过点击右上角关闭按钮隐藏该提示。 +::: 仅在开发版或预览版中显示,用于提示用户当前启动器不是稳定版本。 ### 更新面板 -![更新面板](/assets/img/docs/launcher/gui-features/home-update.png) +![更新面板](../../../assets/image/docs/launcher/gui-features/home-update.png) 仅在存在可用更新时显示,此区域用于启动器更新提示。 ### 启动游戏面板 -![更新面板](/assets/img/docs/launcher/gui-features/home-launch.png) +![更新面板](../../../assets/image/docs/launcher/gui-features/home-launch.png) 此区域共分为两部分:启动(开始)游戏按钮、切换实例菜单。 @@ -78,7 +81,7 @@ date: 2026-01-09T15:19:02+08:00 ## 设置 -![设置](/assets/img/docs/launcher/gui-features/settings.png) +![设置](../../../assets/image/docs/launcher/gui-features/settings.png) 该页面由侧边导航栏和页面容器构成。 @@ -93,4 +96,4 @@ date: 2026-01-09T15:19:02+08:00 ## 设置-全局游戏设置 -![设置-全局游戏设置](/assets/img/docs/launcher/gui-features/settings-global.png) +![设置-全局游戏设置](../../../assets/image/docs/launcher/gui-features/settings-global.png) diff --git a/src/content/docs/launcher/isolation.mdx b/src/content/docs/launcher/isolation.mdx new file mode 100644 index 00000000..1a369cc4 --- /dev/null +++ b/src/content/docs/launcher/isolation.mdx @@ -0,0 +1,53 @@ +--- +title: 全局版本隔离 +description: 避免多个游戏版本的存档、模组和配置冲突 +contributors: + - LIPiston +lastUpdated: 2025-12-03T14:31:42+08:00 +--- + +import { FileTree } from "@astrojs/starlight/components"; + +:::note +该方法会改变默认的游戏文件结构。 +::: + +## 使用方式 + +进入 hmcl 的 `设置` + +![](../../../assets/image/docs/launcher/isolation/1.png) + +在全局游戏设置中找到 `版本隔离` 并设置为 `各实例独立` + +![](../../../assets/image/docs/launcher/isolation/2.png) + +这时候 minecraft 的文件结构就会有所改变,如下方 + + + +- .minecraft/ + - assets/ + - libraries/ + - versions/ + - 1.16.5-optifine/ + - saves/ + - resourcepacks/ + - logs/ + - mods/ + - 1.16.5-optifine.jar + - ... + + + +并非在 .minecraft 文件夹中存储一切的 mod 和 资源包**而是各版本的资源互相独立** + +这样你就可以在一个目录下,安装多个客户端 + +## 往后的使用 + +在做完版本隔离的设置后,hmcl 的快速打开各个游戏文件夹的功能就会显得十分好用。 + +![](../../../assets/image/docs/launcher/isolation/3.png) + +~~善用该功能也可为你的磁盘剩下不少的空间~~,现在反思过来其实都差不多 diff --git a/src/content/docs/launcher/jvm-options-and-env.md b/src/content/docs/launcher/jvm-options-and-env.md new file mode 100644 index 00000000..f366bcef --- /dev/null +++ b/src/content/docs/launcher/jvm-options-and-env.md @@ -0,0 +1,116 @@ +--- +title: JVM 选项与环境变量 +description: 配置 JVM 参数和环境变量的说明 +lastUpdated: 2025-04-20T23:18:02+08:00 +--- + +## JVM 选项 + +HMCL 提供了一些 JVM 选项用于调试目的。你可以通过在启动 HMCL 时添加这些参数来使用这些功能。 + +| 参数 | 描述 | +| -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `-Dhmcl.home=` | 覆盖 HMCL 全局数据文件夹路径 | +| `-Dhmcl.dir=` | 覆盖 HMCL 工作路径下的 .hmcl 文件夹路径 | +| `-Dhmcl.self_integrity_check.disable=true` | 禁用启动器更新时的本体完整性检查 | +| `-Dhmcl.bmclapi.override=` | 自定义 BMCLAPI 的 API Root 地址(默认为 `https://bmclapi2.bangbang93.com`) | +| `-Dhmcl.font.override=` | 指定启动器使用的字族 | +| `-Dhmcl.version.override=` | 手动指定启动器版本号 | +| `-Dhmcl.update_source.override=` | 自定义 HMCL 更新源地址 | +| `-Dhmcl.authlibinjector.location=` | 指定本地 authlib-injector 路径,不从网络下载 | +| `-Dhmcl.openjfx.repo=` | 添加用于下载 OpenJFX 的自定义 Maven 仓库地址(默认为 `https://repo1.maven.org/maven2`) | +| `-Dhmcl.native.encoding=` | 指定系统原生编码 | +| `-Dhmcl.microsoft.auth.id=` | 自定义 Microsoft OAuth 应用程序 ID | +| `-Dhmcl.microsoft.auth.secret=` | 自定义 Microsoft OAuth 应用程序密钥 | +| `-Dhmcl.curseforge.apikey=` | 自定义 CurseForge API 密钥 | +| `-Dhmcl.discoapi.override=` | 自定义 DiscoAPI 的 API Root 地址(默认为 `https://api.foojay.io/disco/v3.0`) | +| `-Dhmcl.native.backend=` | 指定 HMCL 的本地后端类型。可选值:
- `auto`:自动选择(Windows 7+ 使用 JNA,其他系统不使用)
- `jna`:强制使用 JNA(如果 JNA 不可用会抛出异常)
- `none`:禁用 JNA
默认值:`auto` | +| `-Dhmcl.hardware.fastfetch=` | 是否使用 fastfetch 获取设备信息。默认值:`true` | + +## 环境变量 + +HMCL/HMCLauncher 也支持一些环境变量来配置启动器的行为。你可以在系统环境变量中添加这些变量。 + +| 参数 | 描述 | +| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `HMCL_JAVA_OPTS` | 自定义 HMCLauncher 所使用的 JVM 启动参数(默认为 `-XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=15` 或 `-Xmx1G -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=15`) | +| `HMCL_JAVA_HOME` | 自定义 HMCLauncher 所使用的 Java 路径 | +| `HMCL_FONT` | 指定启动器使用的字族 | +| `HMCL_JRES` | 添加 HMCL 所使用的 Java 路径,支持写入多个路径 | + +## 如何使用 JVM 选项 + +你可以通过以下几种方式使用这些 JVM 选项。 + +### 直接在命令行中添加 + +在启动 HMCL 时通过命令行添加参数,例如: + +```bash +java -Dhmcl.home="D:/Games/HMCL" -jar HMCL.jar +``` + +### 创建启动脚本 + +:::note +可以同时使用多个参数,只需要用空格分隔\ +包含空格的参数值需要用半角引号包裹\ +确保 JVM 参数位于 `-jar HMCL.jar` 之前 +::: + +Windows 用户可以创建 `.cmd` 文件: + +```batch title="Windows 用户可以创建 .cmd 文件" +@echo off +java -Dhmcl.font.override="Microsoft YaHei" -jar HMCL.jar +pause +``` + +Linux/macOS 用户可以创建 `.sh` 文件: + +```bash +#!/bin/bash +java -Dhmcl.font.override="Noto Sans CJK SC" -jar HMCL.jar +``` + +## 如何使用环境变量 + +### Windows 设置环境变量 + +1. 右键点击“此电脑”/“这台电脑”/“我的电脑”,选择“属性” +2. 点击“高级系统设置” +3. 点击“环境变量” +4. 在“用户变量”或“系统变量”中点击“新建” +5. 输入变量名(如 `HMCL_JAVA_HOME`)和变量值 +6. 点击“确定”保存 + +示例值: + +``` +变量名: HMCL_JAVA_HOME +变量值: C:\Program Files\Java\jdk-17 +``` + +### Linux/macOS 设置环境变量 + +:::note +设置环境变量后需要重启 HMCL 才能生效\ +如果同时设置了 JVM 参数和环境变量,JVM 参数优先级更高\ +Windows 用户注意使用半角分号(;)分隔多个路径\ +Linux/macOS 用户注意使用半角冒号(:)分隔多个路径 +::: + +编辑你的 Shell 配置文件(比如 `~/.bashrc`、`~/.zshrc` 等) + +添加 `export` 语句: + +```bash +export HMCL_JAVA_HOME="/usr/lib/jvm/java-17-openjdk" +export HMCL_JAVA_OPTS="-XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=15" +``` + +保存文件并重新加载配置: + +```bash +source ~/.bashrc # 或 `source ~/.zshrc` +``` diff --git a/_launcher/offline-skin.md b/src/content/docs/launcher/offline-skin.md similarity index 56% rename from _launcher/offline-skin.md rename to src/content/docs/launcher/offline-skin.md index 77c0513c..6bf501f9 100644 --- a/_launcher/offline-skin.md +++ b/src/content/docs/launcher/offline-skin.md @@ -1,23 +1,23 @@ --- title: 离线模式下更换皮肤 -excerpt: 使用本地皮肤文件、LittleSkin 或 Blessing Skin 设置离线皮肤 -date: 2025-12-05 22:25:00 +0800 -author: qiaoshouzi +description: 使用本地皮肤文件、LittleSkin 或 Blessing Skin 设置离线皮肤 contributors: + - qiaoshouzi - kitefly - TyMxy +lastUpdated: 2025-12-05T22:25:00+08:00 --- -# 离线模式下更换皮肤 -**注意:** -> 使用 Steve、Alex、本地皮肤图片文件: 可能无法加入多人联机,其他玩家可能看不到您的皮肤 -> 使用 LittleSkin、Blessing Skin 服务器: 多人联机下和您使用 **相同方式** 的玩家可以看到您的皮肤, 其他玩家不可以 +:::note +使用 Steve、Alex、本地皮肤图片文件: 可能无法加入多人联机,其他玩家可能看不到您的皮肤\ +使用 LittleSkin、Blessing Skin 服务器: 多人联机下和您使用 **相同方式** 的玩家可以看到您的皮肤, 其他玩家不可以 +::: 打开HMCL, 进入 **账号列表** , 点击下图离线账号的【上传皮肤】红框处: -![](/assets/img/docs/offline-skin/img1_1.png) +![](../../../assets/image/docs/offline-skin/img1_1.png) -![](/assets/img/docs/offline-skin/img1_2.png) +![](../../../assets/image/docs/offline-skin/img1_2.png) > 默认: 使用默认随机的皮肤显示 > @@ -31,7 +31,7 @@ contributors: 点击 **本地皮肤图片文件** , 设置 **皮肤/披风**皮肤图片 路径, 点击 **确认**, 即可 -![](/assets/img/docs/offline-skin/img2.png) +![](../../../assets/image/docs/offline-skin/img2.png) ## LittleSkin @@ -41,27 +41,25 @@ contributors: 你可在 [我的衣柜](https://mcskin.littleservice.cn/user/closet) 修改此账户名的皮肤与披风 -![](/assets/img/docs/offline-skin/img3_1.png) +![](../../../assets/image/docs/offline-skin/img3_1.png) 在HMCL中创建的离线账户的 账户名 **必须**和角色名相等, 如果不相等, 请 **重新在HMCL中创建离线账户** -![](/assets/img/docs/offline-skin/img3_2.png) +![](../../../assets/image/docs/offline-skin/img3_2.png) 确认相等后, 点击 **LittleSkin** 即可同步在LittleSkin上此账户名的皮肤 -![](/assets/img/docs/offline-skin/img3_3.png) +![](../../../assets/image/docs/offline-skin/img3_3.png) ## Blessing Skin 服务器 -**Blessing Skin 服务器, 进入 **角色管理** , 查看角色名 , 确认 **角色名** 和 **HMCL中创建的离线账号角色名** 相同, 如果不相等, **请重新在HMCL中创建离线账户** +进入角色管理查看角色名并确认角色名和HMCL中创建的离线账号角色名相同。如果不同请重新在 HMCL 中创建离线账户\ +你可在我的衣柜修改此账户名的皮肤与披风 -你可在 我的衣柜 修改此账户名的皮肤与披风 - -![](/assets/img/docs/offline-skin/img4_1.png) +![](../../../assets/image/docs/offline-skin/img4_1.png) 进入 **配置生成**, 按下图找到 `CustomSkinLoader` 中的网址, 复制到HMCL中即可同步在Blessing Skin 服务器上此账户名的皮肤 +![](../../../assets/image/docs/offline-skin/img4_2.png) -![](/assets/img/docs/offline-skin/img4_2.png) - -![](/assets/img/docs/offline-skin/img4_3.png) +![](../../../assets/image/docs/offline-skin/img4_3.png) diff --git a/_launcher/set-item-details.md b/src/content/docs/launcher/set-item-details.md similarity index 85% rename from _launcher/set-item-details.md rename to src/content/docs/launcher/set-item-details.md index 0827380c..808310b7 100644 --- a/_launcher/set-item-details.md +++ b/src/content/docs/launcher/set-item-details.md @@ -1,48 +1,16 @@ --- title: 设置项详解 -excerpt: HMCL 各项设置的详细说明,包括全局游戏设置、外观、下载等 -date: 2023-6-09 10:26:00 +0800 -author: MemoryShadow +description: HMCL 各项设置的详细说明,包括全局游戏设置、外观、下载等 +contributors: + - MemoryShadow +lastUpdated: 2023-6-09T10:26:00+08:00 --- -## 引言 - -本篇文章将从"全局游戏设置", "通用", "外观"与"下载"这几个维度, 详细的为您介绍HMCL设置中各个选项的作用, 对于一些能够"见名知意"的条目, 在本篇文章中不过多讨论. - -### 约束与注意 - +:::note 本篇文章是在 `HMCL-3.5.3.230` 版本中编写的, 如果您使用的是旧版本, 请注意有些选项可能不存在. +::: - -## 目录 - -- [引言](#引言) - - [约束与注意](#约束与注意) -- [目录](#目录) -- [全局游戏设置](#全局游戏设置) - - [Java路径](#java路径) - - [自动选择合适的Java](#自动选择合适的java) - - [版本隔离](#版本隔离) - - [游戏内存](#游戏内存) - - [启动器可见性](#启动器可见性) - - [游戏启动后结束启动器](#游戏启动后结束启动器) - - [游戏启动后隐藏启动器](#游戏启动后隐藏启动器) - - [保持启动器可见](#保持启动器可见) - - [隐藏启动器并在游戏结束后重新打开](#隐藏启动器并在游戏结束后重新打开) - - [游戏参数](#游戏参数) - - [JVM参数](#jvm参数) - - [本地库路径](#本地库路径) - - [GLFW](#glfw) - - [OpenAL](#openal) -- [通用](#通用) -- [外观](#外观) -- [下载](#下载) - - [下载源](#下载源) - - [下载并发数](#下载并发数) - - [代理设置](#代理设置) -- [特别鸣谢](#特别鸣谢) -- [参考文章](#参考文章) - +本篇文章将从"全局游戏设置", "通用", "外观"与"下载"这几个维度, 详细的为您介绍HMCL设置中各个选项的作用, 对于一些能够"见名知意"的条目, 在本篇文章中不过多讨论. ## 全局游戏设置 @@ -164,15 +132,11 @@ OpenAL 是一个跨平台的 3D 音频 API,可以用于在多个操作系统 - huangyuhui - GitHub Copilot -## 参考文章 +--- [^1]: [什么是JRE?](https://www.ibm.com/cn-zh/topics/jre "点击查看") - -[^2]: [整合包自带 Java](../_modpack/bundled-java.md "点击查看") - +[^2]: [整合包自带 Java](../../modpack/bundled-java/ "点击查看") [^3]: [如何获取Minecraft的游戏日志?](https://memoryshadow.cn/index.php/2023/06/03/how-do-i-get-minecraft-game-logs/ "点击查看") diff --git a/_launcher/shader.md b/src/content/docs/launcher/shader.md similarity index 70% rename from _launcher/shader.md rename to src/content/docs/launcher/shader.md index b3694de4..cb26076c 100644 --- a/_launcher/shader.md +++ b/src/content/docs/launcher/shader.md @@ -1,9 +1,9 @@ --- title: 光影 -excerpt: 光影的安装方法,包括 OptiFine、Oculus 和 Iris Shaders -date: 2021-10-09 23:18:02 +0800 +description: 光影的安装方法,包括 OptiFine、Oculus 和 Iris Shaders contributors: - hejiehao +lastUpdated: 2021-10-09T23:18:02+08:00 --- ## 安装 OptiFine @@ -12,11 +12,11 @@ contributors: 当你在安装新的游戏客户端时候,会看到有个 `OptiFine` 的选项。 -![OptiFine_Install](/assets/img/docs/shader/optifine_install.png) +![OptiFine_Install](../../../assets/image/docs/shader/optifine_install.png) 点开之后会看到有 3 个复选框,一般而言,`正式版` 会比 `测试版` 更加稳定。选择安装 `正式版` ,如果没有 `正式版` 那么再考虑 `测试版` 。 -![OptiFine_Selection](/assets/img/docs/shader/select_optifine.png) +![OptiFine_Selection](../../../assets/image/docs/shader/select_optifine.png) 选择完合适的版本之后就可以点击右下角的`安装`继续进行安装。 @@ -24,10 +24,10 @@ contributors: 在对应的游戏版本管理页面,点击 `自动安装` ,你会看到有个 `OptiFine` 的选项。 -![OptiFine_AutoInstaller](/assets/img/docs/shader/install_auto-16338577874692.png) +![OptiFine_AutoInstaller](../../../assets/image/docs/shader/install_auto-16338577874692.png) 点开之后选择合适的版本然后等待安装完成即可。 -目前,如果要在 `Fabric` 使用 `OptiFine` ,需要通过 **方式四** 安装。 +目前,如果要在 `Fabric` 使用 `OptiFine` ,需要通过 **方式四** 安装。 ### 方式三:官网安装 @@ -35,24 +35,24 @@ contributors: 双击打开或者使用 `java -jar 文件名` 的方式打开,然后你就会看到这个界面。 -![Path_Selection](/assets/img/docs/shader/change_path.png) +![Path_Selection](../../../assets/image/docs/shader/change_path.png) -选择自己游戏的 `.minecraft 目录`(默认安装到 `\AppData\Roaming\.minecraft` 目录下),然后点击 `Install` 按钮,之后你在 HMCL 的版本列表中就可以找到含有 OptiFine 名字的客户端,启动即可。 +选择自己游戏的 `.minecraft 目录`(默认安装到 `AppData/Roaming/.minecraft` 目录下),然后点击 `Install` 按钮,之后你在 HMCL 的版本列表中就可以找到含有 OptiFine 名字的客户端,启动即可。 如果未找到,请确认你是否已安装对应的版本的客户端,且 **命名为对应版本号** 的原本游戏客户端。 ### 方式四:OptiFine 与 Mod 加载器共存 -从[ OptiFine 官网](https://www.optifine.net/)上下载的 Jar 文件本身也可作为 Mod 被加载,可以用 Java 运行下载的文件并导出 Mod 版本。Mod 安装具体方法见 [ Mod 安装教程](/_launcher/auto-installing.md) +从[ OptiFine 官网](https://www.optifine.net/)上下载的 Jar 文件本身也可作为 Mod 被加载,可以用 Java 运行下载的文件并导出 Mod 版本。Mod 安装具体方法见 [ Mod 安装教程](./auto-installing.html) 注意: 1. Fabric 和 OptiFine 本身并不能共存,必须同时安装[ OptiFabric ](https://www.curseforge.com/minecraft/mc-mods/optifabric) (一个 Fabric Mod ) 。 - OptiFabric 目前 1.17 仅支持 `OptiFine HD U G9` ,`Fabric` 最高支持的版本为 `0.11.7` 。 + OptiFabric 目前 1.17 仅支持 `OptiFine HD U G9` ,`Fabric` 最高支持的版本为 `0.11.7` 。 2. Forge 和 OptiFine 会出现不兼容的情况,但大多数情况下,Forge 和 OptiFine 是相互支持的。在[ OptiFine 官网下载页面 ](https://optifine.net/downloads)可以查看OptiFine与Forge的兼容情况,位置见下图的红框位置。 -![OptiFine_Compatibility](/assets/img/docs/shader/optifine_compatibility.png) +![OptiFine_Compatibility](../../../assets/image/docs/shader/optifine_compatibility.png) 3. 若出现不兼容的情况,请使用[ OptiForge ](https://www.curseforge.com/minecraft/mc-mods/optiforge) (一个 Forge Mod ) 或者等待OptiFine兼容Forge解决。 @@ -60,7 +60,7 @@ contributors: 在高版本的OptiFine中,OptiFine与mod的兼容性较差,以及对性能提升较小,所以可以安装Oculus,但Oculus与OptiFine不兼容,注意依赖关系,Oculus需要前置Rubidium -![Oculus](/assets/img/docs/shader/oculus.png) +![Oculus](../../../assets/image/docs/shader/oculus.png) 相关链接:[ Oculus Curseforge ](https://www.curseforge.com/minecraft/mc-mods/oculus),[ Oculus Modrinth ](https://modrinth.com/mod/oculus),[ Rubidium Curseforge ](https://www.curseforge.com/minecraft/mc-mods/rubidium),[ Rubidium Modrinth ](https://modrinth.com/mod/rubidium) @@ -68,18 +68,18 @@ contributors: 在Fabric中,也可以安装Iris Shaders来安装光影,注意依赖关系,Iris Shaders需要前置Sodium -![Iris](/assets/img/docs/shader/iris.png) +![Iris](../../../assets/image/docs/shader/iris.png) 相关链接:[ Iris Shaders官网 ](https://irisshaders.dev/),[ Iris Shaders Modrinth ](https://modrinth.com/mod/iris),[ Iris Shaders Curseforge(不再更新,请到官网或Modrinth下载最新版本) ](https://www.curseforge.com/minecraft/mc-mods/irisshaders),[ Sodium Modrinth ](https://modrinth.com/mod/sodium),[ Sodium Curseforge(不再更新,请在Modrinth下载) ](https://www.curseforge.com/minecraft/mc-mods/sodium) ## 安装光影包 -一般光影是一个 Zip 格式的文件,将光影文件放入 `\.minecraft\shaderpacks` 文件夹中即可 (没有这个文件夹就自己新建一个) 。如果开了版本隔离,那么文件夹是 `\.minecraft\version\<客户端名称>\shaderpacks`。若你不知道游戏文件夹在哪,在HMCL中打开游戏文件夹。 +一般光影是一个 Zip 格式的文件,将光影文件放入 `.minecraft/shaderpacks` 文件夹中即可 (没有这个文件夹就自己新建一个) 。如果开了版本隔离,那么文件夹是 `.minecraft/version/<客户端名称>/shaderpacks`。若你不知道游戏文件夹在哪,在HMCL中打开游戏文件夹。 -![Game_Dir](/assets/img/docs/shader/game_dir.png) +![Game_Dir](../../../assets/image/docs/shader/game_dir.png) 如果你不知道版本隔离是啥,也不会创建文件夹,那么请打开游戏,依次点击 `设置—视频设置—光影—光影包文件夹` ,在里面放入光影包,然后点击你要加载的光影,最后点击 `完成` 即可 -![Shader_Settings](/assets/img/docs/shader/shaders_setting.png) +![Shader_Settings](../../../assets/image/docs/shader/shaders_setting.png) **注意:光影对于电脑配置的要求比较高,如果开了光影之后出现游戏画面很卡的情况,请升级电脑配置、使用低配置光影或者关闭光影。** diff --git a/_launcher/use-password-login-microsoft-account.md b/src/content/docs/launcher/use-password-login-microsoft-account.md similarity index 64% rename from _launcher/use-password-login-microsoft-account.md rename to src/content/docs/launcher/use-password-login-microsoft-account.md index 18c8601f..8db56b90 100644 --- a/_launcher/use-password-login-microsoft-account.md +++ b/src/content/docs/launcher/use-password-login-microsoft-account.md @@ -1,27 +1,28 @@ --- title: 使用密码登录微软账户 -excerpt: 本文介绍了如何使用密码登录微软账户及修改密码 -date: 2024-07-21 17:50:00 +0800 -author: zkitefly +description: 本文介绍了如何使用密码登录微软账户及修改密码 +contributors: + - zkitefly +lastUpdated: 2024-07-21T17:50:00+08:00 --- -# 为什么使用密码登录 +## 为什么使用密码登录 我们发现,某些账户在尝试通过非密码方式登录时,可能会遇到设备代码流授权问题,从而无法成功登录。而建议这些用户改用密码登录后,他们的登录成功率显著提高。 -# 如何使用密码登录微软账户 +## 如何使用密码登录微软账户 - 在执行登录操作时,注意检查登录页面是否有“其他登录方式”的选项。一旦看到此选项,立即点击进行选择。 -![点击“其他登录方法”选项](/assets/img/docs/use-password-login-microsoft-account/1.png) +![点击“其他登录方法”选项](../../../assets/image/docs/use-password-login-microsoft-account/1.png) - 在登录页面,系统会询问您希望采用哪种登录方式。此时,需要选择“使用我的密码”,然后输入密码完成登录。 _如果没有“使用我的密码”选项,或者忘记了密码,请看 [下方教程](#添加更改密码)_ -![选择“使用我的密码”](/assets/img/docs/use-password-login-microsoft-account/2.png) +![选择“使用我的密码”](../../../assets/image/docs/use-password-login-microsoft-account/2.png) -# 添加/更改密码 +## 添加/更改密码 部分账户可能并未设置密码登录,或者忘记了密码,请按照以下步骤进行操作: @@ -29,8 +30,8 @@ _如果没有“使用我的密码”选项,或者忘记了密码,请看 [ - 在该页面按照指示添加密码即可。若忘记密码,可选择该页面“忘记密码了?”选项进行找回密码操作。 -![添加密码](/assets/img/docs/use-password-login-microsoft-account/3.png) +![添加密码](../../../assets/image/docs/use-password-login-microsoft-account/3.png) -![修改密码](/assets/img/docs/use-password-login-microsoft-account/4.png) +![修改密码](../../../assets/image/docs/use-password-login-microsoft-account/4.png) 完成上述操作后再按照 [上方教程](#如何使用密码登录微软账户) 操作即可使用密码登录微软账户。 diff --git a/_modpack/bundled-java.md b/src/content/docs/modpack/bundled-java.mdx similarity index 74% rename from _modpack/bundled-java.md rename to src/content/docs/modpack/bundled-java.mdx index 58c1f964..2eb65591 100644 --- a/_modpack/bundled-java.md +++ b/src/content/docs/modpack/bundled-java.mdx @@ -1,29 +1,34 @@ --- title: 整合包自带 Java 教程 -excerpt: 本文介绍了如何在整合包配置中自带 Java 环境 -date: 2021-10-09 23:18:02 +0800 +description: 本文介绍了如何在整合包配置中自带 Java 环境 +lastUpdated: 2021-10-09T23:18:02+08:00 --- +import { FileTree, Tabs, TabItem } from "@astrojs/starlight/components"; + ## 背景 想必有些服务器主为此头疼了许久。由于玩家的电脑环境多变,甚至可能仍然有安装着 Java 7 的电脑而无法启动 1.12.2 以上的游戏或者含有 Mod 的客户端。因此服务器主希望能在整合包中自带一个 Java 运行时(或者叫 JRE),从而取代电脑自带的 JVM。接下来本文将介绍两种方法。 ## 名词解释 -- `JRE` **Java Runtime Environment**的缩写。通常可以认为是玩家所使用的 `Java` - 下文所指代的 Java 和 JRE 均可以认为是此版本。 -# 方法一:使用最新版本(推荐) +`JRE` Java Runtime Environment 的缩写,通常可以认为是玩家所使用的 `Java` 下文所指代的 Java 和 JRE 均可以认为是此版本。 + +## 方法一:使用最新版本(推荐) -## EXE 版本 + + EXE 版本在 Windows 系统下打开会首先检查**同级文件夹**下的 `jre-arm64`、`jre-x64` 和 `jre-x86` 文件夹。 检查顺序从上到下依次是: + - `jre-arm64` (ARM 64 位) - `jre-x64` (x86 64 位) - `jre-x86` (x86 32 位) 启动优先级如下: + - 如果玩家电脑的操作系统是**x86 32位**的,HMCL 将会优先使用 `jre-x86` 启动 HMCL。 - 如果玩家电脑的操作系统是**x86 64位**的,HMCL 将会优先使用 `jre-x64` 启动 HMCL。 - 如果玩家电脑的操作系统是**ARM 64位**的,HMCL 将会优先使用 `jre-arm64` 启动 HMCL。 @@ -37,12 +42,14 @@ EXE 版本在 Windows 系统下打开会首先检查**同级文件夹**下的 `j **注意**: 使用 x86 32位的 Java 很可能会导致游戏出错、内存不够等问题。我们推荐您配备 **x86 64位**的 Java 而不是 **x86 32位**。 - -## Shell (.sh)版本 + + + SH 版本在支持 Bash 的系统下打开会首先检查**同级文件夹**下的 `jre-loongarch64`、`jre-arm32`、`jre-arm64`、`jre-x64` 和 `jre-x86` 文件夹。 检查顺序从上到下依次是: + - `jre-x64` (x86 64 位) - `jre-x86` (x86 32 位) - `jre-arm64` (ARM 64 位) @@ -59,6 +66,9 @@ SH 版本在支持 Bash 的系统下打开会首先检查**同级文件夹**下 在启动器内更新升级本体时,只会更新本体部分,并不会将 EXE外壳 或 SH 外壳(即 HMCLauncher)更新,因此建议在制作整合包时重新下载 EXE 或 SH 版本以确保能正常使用该功能。 + + + ## 方法二:创建快捷方式 对于在 Windows 下使用 JAR 版本启动 HMCL 的可以采用方法二。 @@ -67,11 +77,26 @@ SH 版本在支持 Bash 的系统下打开会首先检查**同级文件夹**下 首先我们假设整合包根文件夹是 `tutorial`(这个文件夹名字可以取别的),该文件夹内应该包含如下的文件: -![](/assets/img/docs/modpack-in-java/2-1.png) + + +- tutorial/ + - .minecraft/ + - jre-x64/ + + 其中,`.minecraft` 是 Minecraft 文件夹,`jre-x64` 是你的 Java 运行时,我们分别来看看这两个文件夹的内容: -![](/assets/img/docs/modpack-in-java/2-2.png) + + +- .minecraft/ + - assets/ + - libraries/ + - versions/ +- HMCL.jar +- launcher_profiles.json + + 上图是 `.minecraft` 文件夹的内容,里面包含着 `assets`、`libraries`、`versions` 等传统的文件夹。以及 `HMCL.jar`,这个文件是 HMCL 启动器的 `jar` 文件,可以在 https://hmcl.huangyuhui.net/download 里面下载 macOS 或者 Linux 版本(这两个版本的文件后缀名都是 `jar`,实际上是完全一样的东西,**也可以在 Windows 系统上双击运行**,没有平台限制)。 @@ -79,7 +104,18 @@ SH 版本在支持 Bash 的系统下打开会首先检查**同级文件夹**下 **注意:HMCL 本体文件 HMCL.jar 请务必保持该文件名,HMCL-3.2.117.jar 等带有版本号的文件名是不可以的** -![](/assets/img/docs/modpack-in-java/2-3.png) + + +- jre-x64/ + - bin/ + - lib/ + - COPYRIGHT + - LICENSE + - README.txt + - release + - ... + + 上图是 `jre-x64` 文件夹的内容,一看就是一个 JRE 的文件夹。 @@ -87,21 +123,21 @@ SH 版本在支持 Bash 的系统下打开会首先检查**同级文件夹**下 接下来我们创建一个快捷方式来使得 HMCL 通过 `jre-x64` 文件夹里的 Java 运行时启动,并使得 Minecraft 也通过该 Java 运行时启动。 -![](/assets/img/docs/modpack-in-java/2-4.png) +![](../../../assets/image/docs/modpack/bundled-java/1.png) 在 `tutorial` 文件夹内右击空白区域打开快捷菜单,创建快捷方式。 -![](/assets/img/docs/modpack-in-java/2-5.png) +![](../../../assets/image/docs/modpack/bundled-java/2.png) -在弹出的窗口中(如上图所示),在输入框内输入:`cmd /c start .\jre-x64\bin\javaw.exe -jar .\.minecraft\HMCL.jar`,其中 `jre-x64` 和 `.minecraft\HMCL.jar` 根据实际情况修改,`jre-x64` 是你的 Java 运行时的路径,`.minecraft\HMCL.jar` 是 HMCL 本体文件。 +在弹出的窗口中(如上图所示),在输入框内输入:`cmd /c start .\jre-x64\bin\javaw.exe -jar .\.minecraft\HMCL.jar`,其中 `jre-x64` 和 `.minecraft/HMCL.jar` 根据实际情况修改,`jre-x64` 是你的 Java 运行时的路径,`.minecraft/HMCL.jar` 是 HMCL 本体文件。 -![](/assets/img/docs/modpack-in-java/2-6.png) +![](../../../assets/image/docs/modpack/bundled-java/3.png) 接着给快捷方式取个名字就好了(如上图所示,`开始游戏` 是我取的名字)。 生成好快捷方式后我们还要编辑一下属性,右键 `开始游戏` 这个新创建的快捷方式(如果你取了别的名字请选中那个文件编辑其属性),在弹出的快捷菜单中选择属性,会打开快捷方式的属性窗口如下图所示: -![](/assets/img/docs/modpack-in-java/2-7.png) +![](../../../assets/image/docs/modpack/bundled-java/4.png) 将起始位置内的文字删除干净,留空即可。保存退出该窗口。 @@ -109,18 +145,29 @@ SH 版本在支持 Bash 的系统下打开会首先检查**同级文件夹**下 现在这个开始游戏的快捷方式就可以直接使用的,你可以双击该快捷方式打开 HMCL,HMCL 在启动游戏的时候也会直接使用你指定的 Java 运行时。 -## 一些疑问 +## 常见问题 + +**这些 Java 文件夹中具体该放些什么,直接复制就行了吗?** + +是的,复制 jre 内的所有东西就行,可以根据下图参考: -**1Q**:这些 Java 文件夹中具体该放些什么,直接复制就行了吗? + -**1A**:是的,复制 jre 内的所有东西就行,可以根据下图参考: +- jre-x64/ + - bin/ + - lib/ + - COPYRIGHT + - LICENSE + - README.txt + - release + - ... -![](/assets/img/docs/modpack-in-java/2-3.png) + -—————————————————————————————————————————————————— +
-**2Q**:去哪里找 Java? +**去哪里找 Java?** -**2A**:有很多的Java提供选择,如 [Liberica JDK](https://bell-sw.com/pages/downloads/?package=jre-full) 、[Microsoft JDK](https://microsoft.com/openjdk)、[Oracle JDK](https://www.oracle.com/java/technologies/downloads/)、[中文 Java 镜像站](https://injdk.cn/ "对中国大陆的访问速度更友好") 和 [Oracle openJDK](https://jdk.java.net/) 等 +有很多的Java提供选择,如 [Liberica JDK](https://bell-sw.com/pages/downloads/?package=jre-full) 、[Microsoft JDK](https://microsoft.com/openjdk)、[Oracle JDK](https://www.oracle.com/java/technologies/downloads/)、[中文 Java 镜像站](https://injdk.cn/ "对中国大陆的访问速度更友好") 和 [Oracle openJDK](https://jdk.java.net/) 等 只需要在下载时下载**.zip 压缩包文件**,且将压缩包内的所有内容放入对应文件夹即可 diff --git a/src/content/docs/modpack/error-handbook.mdx b/src/content/docs/modpack/error-handbook.mdx new file mode 100644 index 00000000..26f1e94e --- /dev/null +++ b/src/content/docs/modpack/error-handbook.mdx @@ -0,0 +1,76 @@ +--- +title: 模组包报错排查手册 +description: 排查和解决整合包相关问题 +contributors: + - LIPiston +lastUpdated: 2025-05-24T13:39:36+08:00 +--- + +import { Badge, FileTree } from "@astrojs/starlight/components"; + +## 文件夹结构 + +首先我们需要先认识Minecraft的文件夹结构 +如果你开启了 [版本隔离](../launcher/isolation.html) 那么你的文件夹结构如下 + + + +- .minecraft/ + - assets/ # 游戏资源文件夹,存放纹理、声音等资源 + - libraries/ # 依赖库文件夹,存放运行游戏所需的各种库 + - versions/ # 版本文件夹,包含所有已安装的 Minecraft 版本 + - 1.16.5-optifine/ + - saves/ # 存档文件夹,仅该版本可见 + - resourcepacks/ # 资源包文件夹,仅该版本可见 + - logs/ # 日志文件夹,仅该版本可见 + - mods/ # 模组文件夹,仅该版本可见 + - config/ # 配置文件夹,仅该版本可见 + - crash-reports/ # 崩溃报告文件夹,仅该版本可见 + - 1.16.5-optifine.jar # 该版本的主程序jar文件 + + + +如果你没有开启则是这样 + + + +- .minecraft/ + - assets/ # 游戏资源文件夹,存放纹理、声音等资源 + - libraries/ # 依赖库文件夹,存放运行游戏所需的各种库 + - saves/ # 存档文件夹,所有版本共用 + - resourcepacks/ # 资源包文件夹,所有版本共用 + - logs/ # 日志文件夹,所有版本共用 + - mods/ # 模组文件夹,所有版本共用 + - config/ # 配置文件夹,所有版本共用 + - crash-reports/ # 崩溃报告文件夹,所有版本共用 + - versions/ # 版本文件夹,包含所有已安装的 Minecraft 版本 + - 1.16.5-optifine/ + - 1.16.5-optifine.jar # 该版本的主程序jar文件 + + + +我们极力推荐您打开版本隔离,因为这样能避免模组之间的一部分冲突 [跳转](../launcher/isolation.html) + +## 简单排查 + +在遇到报错时,您可以通过以下三种方式进行初步分析并快速定位问题: + +1. 使用社区分析工具 + + 访问 [CrashMC 报错分析器](https://www.crashmc.com/analyzer),将崩溃报告内容粘贴进去,工具会自动分析常见问题并给出建议。 + +2. 借助 AI 辅助分析 + + 可以将崩溃日志粘贴到 [DeepSeek Chat](https://chat.deepseek.com/),让 AI 帮助你解读报错内容和可能的解决方法。 + +3. 进入 HMCL 汉医堂 + + 可以在 HMCL 急诊群中向群友们寻求帮助,他们通常有丰富的经验,能够协助你分析报错并提供解决方案。 + +## 求助他人 + +游戏崩的时候会有个窗口,里面可以导出一个压缩包,可以发给别人让别人帮你看,你千万别截图那个窗口*磕头* + +![报错示例截图](../../../assets/image/docs/modpack/error-handbook/image.png) +在向他人求助时,建议将 `.minecraft` 文件夹下的 `crash-reports` 文件夹和 `logs` 文件夹中的相关文件(如最新的崩溃报告和日志文件)一并打包发送。 +这样可以让对方更全面地了解你的运行环境和报错详情,从而更高效地帮助你分析和解决问题。请注意,发送前可先检查日志内容,避免泄露个人隐私信息。 diff --git a/src/content/docs/modpack/serverpack.mdx b/src/content/docs/modpack/serverpack.mdx new file mode 100644 index 00000000..98f86545 --- /dev/null +++ b/src/content/docs/modpack/serverpack.mdx @@ -0,0 +1,58 @@ +--- +title: 服务端自动更新整合包制作教程 +description: 创建可自动更新的服务器整合包 +contributors: + - huanghongxun +tableOfContents: false +lastUpdated: 2025-12-06T09:37:00+08:00 +--- + +import { Steps } from "@astrojs/starlight/components"; + +HMCL 允许服务器管理员借助服务端自动更新整合包来实现自动分发整合包更新,这将大大方便有需要频繁更新游戏客户端 Mod、配置等信息的服务器管理员。 + +HMCL 需要服务器管理员额外提供一个 HTTP 服务器(只需要能提供静态文件服务,比如 Apache 和 Nginx 皆可)来提供检查整合包更新并允许 HMCL 下载更新文件。 + + + +1. 导出整合包 + + 在 HMCL 中右键做好的客户端版本,选择`导出整合包`: + + ![](../../../assets/image/docs/serverpack/img1.png) + + 选择导出为`服务器自动更新整合包`: + + ![](../../../assets/image/docs/serverpack/img2.png) + + 填写整合包信息,整合包下载链接前缀如何填写请看下文 + + ![](../../../assets/image/docs/serverpack/img3.png) + + 选择需要包含在整合包内的文件后将产生整合包压缩文件 + +2. 导入整合包 + + 接着创建一个全新的空文件夹,将启动器复制进去 + + ![](../../../assets/image/docs/serverpack/img4.png) + + 运行启动器,并导入刚才导出的整合包,导入完成后,这个文件夹(这里叫“新整合包”)可以打包发给玩家。 + +3. 部署整合包更新服务器 + + 你可以借助 Apache、Nginx 等支持静态文件的 HTTP 服务器软件提供文件。首先,决定好整合包下载链接前缀,比如我希望 HMCL 从远程服务器的 http://www.site.com/modpack 目录下存放整合包的更新信息,则在之前导出整合包的整合包下载前缀中填写 http://www.site.com/modpack。 + + ![](../../../assets/image/docs/serverpack/img5.png) + + 上图为导出的服务器自动更新整合包压缩文件的内容,你需要将这个整合包解压到 http://www.site.com/modpack 下。也就是说,从 http://www.site.com/modpack/server-manifest.json 这个链接下载下来的文件必须和上图中整合包压缩文件中的 server-manifest.json 文件一致,并且,http://www.site.com/modpack/overrides 是一个文件夹,里面存放了整合包文件,比如: + + ![](../../../assets/image/docs/serverpack/img6.png) + + 整合包压缩文件 test.zip/overrides/mods/Advancement_Book-1.12-1.0.3.jar 文件必须可以从 http://www.site.com/modpack/overrides/mods/Advancement_Book-1.12-1.0.3.jar 该目录下载下来,且文件内容一致。那么至此更新服务器就部署完成了。 + +4. 更新整合包 + + 如果你需要更新整合包,那么将新的整合包经过第一步导出新的整合包压缩文件,并解压到类似 http://www.site.com/modpack 文件夹下即可完成新整合包的部署。 + + diff --git a/src/content/docs/modpack/serverpack2.mdx b/src/content/docs/modpack/serverpack2.mdx new file mode 100644 index 00000000..a2335ec8 --- /dev/null +++ b/src/content/docs/modpack/serverpack2.mdx @@ -0,0 +1,106 @@ +--- +title: 配置客户端自动更新(宝塔面板) +description: 本文介绍了如何使用宝塔面板配置客户端自动更新 +contributors: + - zkitefly +tableOfContents: false +lastUpdated: 2021-08-22T23:18:02+08:00 +--- + +:::caution +内容可能已经过时。 +::: + +import { Badge, Steps } from "@astrojs/starlight/components"; + +:::tip +文章原作者为 [mcbbs@hy黑影](https://www.mcbbs.net/home.php?mod=space&uid=3051111) 转载自 [mcbbs/1103864](https://www.mcbbs.net/thread-1103864-1-1.html) 其中部分内容稍作修改。 +::: + +我自己开设的服务器有很多不同的子服,每个子服的客户端版本呢都不相同,我又希望能整合到一个客户端里面;找了一圈发现那些辅助更新程序只能更新单个客户端版本,而且界面不太美观;甚至一度想自己开发启动器.........\ +这篇帖子的灵感来自于 **HMCL** 启动器的一个功能 **导出服务器自动更新整合包**,我觉得可以利用这个功能来代替一些自动更新的辅助程序。\ +整个功能的实现需要:**一台有公网IP的服务器、一个客户端整合包、HMCL启动器**;如果你都没有,那就换成RMB10元\ +本篇教程默认读者为 萌新,即**没有接触过HTTP服务器,网络应用开发,不懂linux系统,惧怕控制台程序** + + + +1. 租服务器 + + 百度搜索 [腾讯云学生机](https://cloud.tencent.com/act/campus?from=11821) 或 [阿里云学生机](https://promotion.aliyun.com/ntms/act/campus2018.html)\ + 可以看到有10元/月 的套餐,如果是阿里云的话选**轻量型应用服务器**,腾讯云就只有一个套餐\ + 系统请选择**CentOS 8.0 64位**,其他保持默认即可\ + 再次确认是否是十元,是的话直接购买;不是的话可能是你已经买过学生套餐\ + 第一次购买可能需要**实名认证**,按照提示操作即可,不需要担心安全问题,都是可靠的大公司 + +2. 安装宝塔面板 CentOS 8.0 系统 + + 打开控制台面板,找到刚才租的学生机\ + ![](../../../assets/image/docs/serverpack2/2.1.jpg)\ + 选择重置密码\ + ![](../../../assets/image/docs/serverpack2/2.2.jpg)\ + 点击右侧**登入**按钮,按照说明填写你刚刚重置的密码;之后应该会看到类似这样的提示\ + ![](../../../assets/image/docs/serverpack2/2.3.jpg)\ + **不要慌,冷静。如果下面的部分教程失效请去[宝塔面板官网](https://www.bt.cn/),点击Linux->立即安装**\ + ![](../../../assets/image/docs/serverpack2/2.4.jpg)\ + 回到控制台面板,我们需要开放一些通道让面板通过,选择**安全组**\ + ![](../../../assets/image/docs/serverpack2/2.5.jpg)\ + 点击**修改规则**,再点击**添加规则**\ + 图1:\ + ![](../../../assets/image/docs/serverpack2/2.6.jpg)\ + 图2:\ + ![](../../../assets/image/docs/serverpack2/2.7.jpg)\ + **按照图中所写添加,想要安全的话按照图1,懒的话按照图2**\ + 回到那个黑黑的界面里输入 `yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh` ,按下回车\ + 这时会刷一大片大的英文,等他停下来的时候仔细看,最后一行在问你要不要安装(就是最后显示y/n),输入y并按下回车\ + 耐心等待五分钟左右,直到出现这个字样\ + ![](../../../assets/image/docs/serverpack2/2.8.jpg)\ + 复制**外网面板地址**,在打开的页面中,用户名输入username后面的内容,密码输入password后面的内容,点击登入,到此为止面板按照完成 + +3. 搭建 HTTP 静态文件服务器 + + 打开刚刚的宝塔面板,一般都会有提示安装套件,选择**nginx套装**安装\ + 等待安装完成后,选择**网站**,点击**添加网站**\ + ![](../../../assets/image/docs/serverpack2/3.1.jpg)\ + 在弹出的页面填写网站IP,就是地址栏里面的那个;比如:我的是 https://233.88.233.44:8888/site ,那么我就填233.88.233.44\ + 另外,**租vps的同学请找服务商索要ip地址和开放的端口**,比如我要到的是123.21.123.21:6666,那我就把这个填上去\ + ![](../../../assets/image/docs/serverpack2/3.2.jpg)\ + **其他保持不变,到此为止你已经搭建好了HTTP静态文件服务器✔** + +4. 制作整合包 + + 使用HMCL打开你的MC客户端\ + 选择你的游戏版本,点击**导出整合包**\ + ![](../../../assets/image/docs/serverpack2/4.1.jpg)\ + 选择**服务器自动更新整合包**\ + 填写相关信息:\ + ![](../../../assets/image/docs/serverpack2/4.2.jpg)\ + 整合包下载链接前缀:比如我刚刚在【[第三步-搭建HTTP静态文件服务器](###第三步-搭建HTTP静态文件服务器)】宝塔里填的是233.88.233.44,我希望能有版本区分,这个版本代号是a;那么我就填https://233.88.233.44/a, **vps注意,端口号也要写▲**\ + 版本号写1.0 ,以后更新就写2.0以此类推\ + 点击**下一步**,导出完成 + +5. 上传整合包 + + 打开宝塔面板,选择**文件**,找到相应的目录,在相应IP目录下新建文件夹;比如我刚刚写的版本代号是a,那我就新建a这个文件夹\ + ![](../../../assets/image/docs/serverpack2/5.1.jpg)\ + 在新建的文件夹里上传刚刚导出的整合包,并解压;成功后如下图\ + ![](../../../assets/image/docs/serverpack2/5.2.jpg)\ + 要是更新整合包,请在解压时将该【a】这个文件夹内的文件覆盖处理 + +6. 分发整合包 + + **大公告成,现在可以把刚刚导出的这个整合包上传分享给玩家了!** + +7. 检测整合包 + + **为了防止一些手滑现象导致整合包可能会出现一些问题,你可以在分发整合包前先测试一下要准备分发的整合包** + +8. 后续 + + 以后每次更新客户端只要重复[**第四步**](###第四步-制作整合包)**和**[**第五步**](###第五步-上传整合包),**玩家重启客户端后就会自动接收更新**\ + 版本号要记得更新\ + 默认的更新方式不会删除玩家自己加入的模组,但会下载玩家删除的模组\ + 更新覆盖的是整合包导出时的所有数据\ + **每次更新会从整合包提供的链接下载 server-manifest.json 来校验玩家本地的整合包。若校验到整合包里没有匹配这个名字的文件或整合包里这个文件匹配名字但哈希值不匹配,就会下载该文件,不会下载匹配名字且哈希值匹配的文件**\ + 出网带宽1MB我觉得够用了,除非你想让玩家自己下载全部内容(就是将整合包分发给他人前删除所有模组,玩家启动时就会开始下载回来,这样的好处是可见的整合包大小变小了) + + diff --git a/_modpack/serverpack3.md b/src/content/docs/modpack/serverpack3.md similarity index 70% rename from _modpack/serverpack3.md rename to src/content/docs/modpack/serverpack3.md index 9d93922e..8dc6b129 100644 --- a/_modpack/serverpack3.md +++ b/src/content/docs/modpack/serverpack3.md @@ -1,26 +1,29 @@ --- title: 配置客户端自动更新 (Nginx) -excerpt: 本文介绍了如何使用 Nginx 服务器配置客户端自动更新 -date: 2023-01-11 14:13:45 +0800 -author: buggzd +description: 本文介绍了如何使用 Nginx 服务器配置客户端自动更新 +lastUpdated: 2023-01-11T14:13:45+08:00 +contributors: + - buggzd --- -> 阅读本文前,请先阅读[此文章](/_modpack/serverpack.md) +:::tip +阅读本文前,请先阅读[此文章](./serverpack.html)。 +::: -# 前置知识 +## 前置知识 阅读本文你需要具有以下知识储备: 1. 掌握基础本的 `linux` 命令操作,比如 `cd` `ls` 等 2. 拥有一个 `linux` 服务器(好像不算知识) -# Nginx 安装 +## Nginx 安装 这里很基础(但是坑比较多)略过,可以看以下参考文档。 > https://zhuanlan.zhihu.com/p/515069497 -# 新建静态资源文件夹 +## 新建静态资源文件夹 我为了省事直接在/根目录下新建了一个 `MinecraftClientStatic` 文件夹,以后需要作为静态资源的文件都丢这里面。 @@ -58,94 +61,108 @@ vim helloMC.html - - - MC客户端静态资源 - - - - - -
-

MinecraftClientStatic

-
- 请使用最新的浏览器 - - + + + MC客户端静态资源 + + + + + +
+

MinecraftClientStatic

+
+ 请使用最新的浏览器 + ``` -# 分配次级域名(可选) +## 分配次级域名(可选) > 如果你没有域名,那么这里可以跳过,后面需要域名的地方直接使用服务器ip地址 @@ -161,7 +178,7 @@ vim helloMC.html ping minecraft.buggzd.com ``` -# 配置 nginx.conf +## 配置 nginx.conf 查找 `nginx` 配置文件目录:(如果这里没有 `nginx` 指令,那么说明你 `nginx` 安装没有成功) @@ -185,7 +202,7 @@ vim nginx.conf 因为之前配置过博客反向代理 `nginx.conf` 会带有之前的配置记录不要把他们搞乱,**理清层级关系很重要**! -```conf +```nginx # 这是 nginx.conf 的层级目录 # 每个 nginx.conf 配置文件都只有一个 http 块,所以如果之前配置过 nginx # 就只需要粘贴 server 块里的内容,把 server 块放到 http 块内部。 @@ -198,11 +215,11 @@ http { 需要填写的配置: -```conf +```nginx http { server { # 需要监听的端口号,可以不动 - listen 80; + listen 80; # 这里需要把localhost改为上面分配好的域名 server_name minecraft.buggzd.com; location / { @@ -236,7 +253,7 @@ nginx -s reload 访问成功,没问题! -# 导出整合包 +## 导出整合包 ![image.png](https://s2.loli.net/2023/01/11/JwLryPXjdU8HEKo.png) @@ -256,7 +273,7 @@ mkdir modepack ![image.png](https://s2.loli.net/2023/01/11/PQfCEkdVAoqm1Ru.png) -# 上传整合包到静态资源服务器 +## 上传整合包到静态资源服务器 假设我们刚刚打包的整合包名称为 `client1.0.zip` 我们把 `client1.0.zip` 通过 `ftp` 上传到服务器中,然后使用解压命令将这个整合包解压到 `/MinecraftClientStatic/modepack` 文件夹中。 @@ -281,7 +298,7 @@ overrides server-manifest.json 其中 `overrides` 是一个文件夹 `server-manifest.json` 是整合包配置文件。 -# 客户端初始化 +## 客户端初始化 第一次使用客户端需要在一个空文件夹以 `newClientPackage` 为例,在文件夹中放一个 `hmcl` 启动器,打开 `hmcl` 导入刚刚做好的 `client1.0.zip` 整合包。 然后就可以把这个文件夹 `newClientPackage` 打包成一个 `zip` 发给玩家了,以后玩家每次打开 `hmcl` 登录时,启动器就会自动向静态资源服务器中查询整合包配置信息,当发现更新时会自动下载。 @@ -289,7 +306,7 @@ overrides server-manifest.json ![image.png](https://s2.loli.net/2023/01/11/WpD4Xm7i561YbIj.png) -# 更新客户端 +## 更新客户端 目前HMCL版本更新的步骤是这样的: @@ -312,12 +329,12 @@ unzip /home/ftp/client2.0.zip -d /minecraftClientStatic/modepack 玩家启动 `hmcl` 后,启动器会检测到版本更新并自动更新模组。 -# 参考资料 +## 参考资料 -- [nginx配置文件结构](https://blog.csdn.net/pibuliao8626/article/details/110449349) +- [nginx配置文件结构](https://blog.csdn.net/pibuliao8626/article/details/110449349) - [使用nginx如何部署静态资源](https://www.muzhuangnet.com/show/86630.html) -- [Nginx 作为静态资源服务器](https://zhuanlan.zhihu.com/p/514547633) -- [nginx配置静态静态资源服务器](https://cloud.tencent.com/developer/article/2028983) -- [HMCL官方文章](https://hmcl.huangyuhui.net/help/launcher/serverpack.html) -- [使用Gitee作为静态资源服务器](https://www.kdocs.cn/l/ck0hwms5llq8) +- [Nginx 作为静态资源服务器](https://zhuanlan.zhihu.com/p/514547633) +- [nginx配置静态静态资源服务器](https://cloud.tencent.com/developer/article/2028983) +- [HMCL官方文章](https://hmcl.huangyuhui.net/help/launcher/serverpack.html) +- [使用Gitee作为静态资源服务器](https://www.kdocs.cn/l/ck0hwms5llq8) - [Nginx配置静态资源服务器](https://buggzd.github.io/2023/01/11/Nginx%E9%9D%99%E6%80%81%E8%B5%84%E6%BA%90%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BD%BF%E7%94%A8/) diff --git a/_multiplayer/feedback.md b/src/content/docs/multiplayer/feedback.md similarity index 65% rename from _multiplayer/feedback.md rename to src/content/docs/multiplayer/feedback.md index 41425a2a..6e55fb5d 100644 --- a/_multiplayer/feedback.md +++ b/src/content/docs/multiplayer/feedback.md @@ -1,16 +1,19 @@ --- -title: 多人联机反馈 -date: 2025-10-07T18:44:00+08:00 -last_modified_at: 2025-12-03T16:39:00+08:00 -author: Burning_TNT +title: 反馈 contributors: + - Burning_TNT - TyMxy +autoRedirect: + delay: 10 + text: 反馈表单 + href: https://f.kdocs.cn/ksform/w/write/njMwdtgD?channel=mdlsjp +tableOfContents: false +lastUpdated: 2025-12-03T16:39:00+08:00 --- -## Terracotta | 陶瓦联机 - -> [!TIP] -> 欢迎您填写反馈表单。 +:::tip +欢迎您填写[反馈表单](https://f.kdocs.cn/ksform/w/write/njMwdtgD?channel=mdlsjp)。 +::: 我们注意到了 EasyTier 项目。它提供了一种简单、安全、去中心化的异地组网方案,足以承载 Minecraft 的联机需求。 在 EasyTier 开发团队的帮助下,我们决定重新在启动器内提供联机服务。 @@ -25,4 +28,4 @@ contributors: 需要特别提醒的是:联机功能不会更不能取代 Minecraft: Java Edition 服务器。 它的主要目标依然是让朋友之间能共同游玩,而不是长时间的对外开放。 -最后,我想感谢一切参与到 EasyTier、Terracotta \| 陶瓦联机开发和测试、为 EasyTier 提供打洞和中继服务器的社区志愿者。欢迎大家访问 [easytier.cn](https://easytier.cn) 深入了解这一项目。 +最后,我想感谢一切参与到 EasyTier、Terracotta | 陶瓦联机开发和测试、为 EasyTier 提供打洞和中继服务器的社区志愿者。欢迎大家访问 [easytier.cn](https://easytier.cn) 深入了解这一项目。 diff --git a/src/content/docs/multiplayer/help.mdx b/src/content/docs/multiplayer/help.mdx new file mode 100644 index 00000000..7ce1df05 --- /dev/null +++ b/src/content/docs/multiplayer/help.mdx @@ -0,0 +1,8 @@ +--- +title: 帮助 +tableOfContents: false +--- + +import BiliBili from "@components/Bilibili.astro"; + + diff --git a/src/content/docs/zh-hant/changelogs/dev.mdx b/src/content/docs/zh-hant/changelogs/dev.mdx new file mode 100644 index 00000000..2679ce42 --- /dev/null +++ b/src/content/docs/zh-hant/changelogs/dev.mdx @@ -0,0 +1,9 @@ +--- +title: 開髮版更新日誌 +sidebar: + label: 開髮版 +--- + +import Changelogs from "@components/Changelogs.astro"; + + diff --git a/src/content/docs/zh-hant/changelogs/stable.mdx b/src/content/docs/zh-hant/changelogs/stable.mdx new file mode 100644 index 00000000..5f1b3210 --- /dev/null +++ b/src/content/docs/zh-hant/changelogs/stable.mdx @@ -0,0 +1,9 @@ +--- +title: 穩定版更新日誌 +sidebar: + label: 穩定版 +--- + +import Changelogs from "@components/Changelogs.astro"; + + diff --git a/src/content/i18n/en.json b/src/content/i18n/en.json new file mode 100644 index 00000000..a7393939 --- /dev/null +++ b/src/content/i18n/en.json @@ -0,0 +1,37 @@ +{ + "skipLink.label": "Skip to content", + "search.label": "Search", + "search.ctrlKey": "Ctrl", + "search.cancelLabel": "Cancel", + "search.devWarning": "Search is only available in production builds. \nTry building and previewing the site to test it out locally.", + "themeSelect.accessibleLabel": "Select theme", + "themeSelect.dark": "Dark", + "themeSelect.light": "Light", + "themeSelect.auto": "Auto", + "languageSelect.accessibleLabel": "Select language", + "menuButton.accessibleLabel": "Menu", + "sidebarNav.accessibleLabel": "Main", + "tableOfContents.onThisPage": "On this page", + "tableOfContents.overview": "Overview", + "i18n.untranslatedContent": "This content is not available in your language yet.", + "page.editLink": "Edit page", + "page.lastUpdated": "Last updated:", + "page.previousLink": "Previous", + "page.nextLink": "Next", + "page.draft": "This content is a draft and will not be included in production builds.", + "404.text": "Page not found. Check the URL or try using the search bar.", + "aside.note": "Note", + "aside.tip": "Tip", + "aside.caution": "Caution", + "aside.danger": "Danger", + "fileTree.directory": "Directory", + "builtWithStarlight.label": "Built with Starlight", + "heading.anchorLabel": "Section titled \"{{title}}\"", + "page.contributors": "Contributors", + "page.hits.label": "Visits", + "page.hits.today": "Today Visits", + "page.hits.total": "Total Visits", + "page.hits.ok": "Data retrieved successfully", + "page.hits.error": "Failed to retrieve data", + "page.hits.loading": "Fetching data" +} diff --git a/src/content/i18n/zh-Hans.json b/src/content/i18n/zh-Hans.json new file mode 100644 index 00000000..56532ca8 --- /dev/null +++ b/src/content/i18n/zh-Hans.json @@ -0,0 +1,37 @@ +{ + "skipLink.label": "跳转到内容", + "search.label": "搜索", + "search.ctrlKey": "Ctrl", + "search.cancelLabel": "取消", + "search.devWarning": "搜索仅适用于生产版本。\n尝试构建并预览网站以在本地测试。", + "themeSelect.accessibleLabel": "选择主题", + "themeSelect.dark": "深色", + "themeSelect.light": "浅色", + "themeSelect.auto": "自动", + "languageSelect.accessibleLabel": "选择语言", + "menuButton.accessibleLabel": "菜单", + "sidebarNav.accessibleLabel": "主要", + "tableOfContents.onThisPage": "目录", + "tableOfContents.overview": "概述", + "i18n.untranslatedContent": "此内容尚不支持你的语言。", + "page.editLink": "编辑此页", + "page.lastUpdated": "最近更新:", + "page.previousLink": "上一页", + "page.nextLink": "下一页", + "page.draft": "此内容为草稿,不会包含在生产版本中。", + "404.text": "页面未找到。检查 URL 或尝试使用搜索栏。", + "aside.note": "注意", + "aside.tip": "提示", + "aside.caution": "警告", + "aside.danger": "危险", + "fileTree.directory": "文件夹", + "builtWithStarlight.label": "基于 Starlight 构建", + "heading.anchorLabel": "标题为“{{title}}”的章节", + "page.contributors": "贡献者", + "page.hits.label": "访问量", + "page.hits.today": "今日访问", + "page.hits.total": "总访问", + "page.hits.ok": "获取数据成功", + "page.hits.error": "获取数据失败", + "page.hits.loading": "正在获取数据" +} diff --git a/src/content/i18n/zh-Hant.json b/src/content/i18n/zh-Hant.json new file mode 100644 index 00000000..9456aaaf --- /dev/null +++ b/src/content/i18n/zh-Hant.json @@ -0,0 +1,37 @@ +{ + "skipLink.label": "跳到內容", + "search.label": "搜尋", + "search.ctrlKey": "Ctrl", + "search.cancelLabel": "取消", + "search.devWarning": "正式版本才能使用搜尋功能。\n如要在本地測試,請先建置並預覽網站。", + "themeSelect.accessibleLabel": "選擇佈景主題", + "themeSelect.dark": "深色", + "themeSelect.light": "淺色", + "themeSelect.auto": "自動", + "languageSelect.accessibleLabel": "選擇語言", + "menuButton.accessibleLabel": "選單", + "sidebarNav.accessibleLabel": "主要", + "tableOfContents.onThisPage": "本頁內容", + "tableOfContents.overview": "概述", + "i18n.untranslatedContent": "本頁內容尚未翻譯。", + "page.editLink": "編輯頁面", + "page.lastUpdated": "最後更新於:", + "page.previousLink": "前一則", + "page.nextLink": "下一則", + "page.draft": "此內容爲草稿,不會包含在生産版本中。", + "404.text": "找不到頁面,請檢查網址或改用搜尋功能。", + "aside.note": "注意", + "aside.tip": "提示", + "aside.caution": "警告", + "aside.danger": "危險", + "fileTree.directory": "目錄", + "builtWithStarlight.label": "基於 Starlight 構建", + "heading.anchorLabel": "標題爲「{{title}}」的章節", + "page.contributors": "貢獻者", + "page.hits.label": "訪問量", + "page.hits.today": "今日訪問", + "page.hits.total": "總訪問", + "page.hits.ok": "取得資料成功", + "page.hits.error": "取得資料失敗", + "page.hits.loading": "正在取得資料" +} diff --git a/src/data/groups.csv b/src/data/groups.csv new file mode 100644 index 00000000..95d4ba2d --- /dev/null +++ b/src/data/groups.csv @@ -0,0 +1,11 @@ +id,name,link,status +633640264,HMCL 用户群 ①,https://qm.qq.com/q/fvJueufsvC,已满 +203232161,HMCL 用户群 ②,https://qm.qq.com/q/N7hgdNYfy,已满 +201034984,HMCL 用户群 ③,https://qm.qq.com/q/7sbMrFm9CE, +533529045,HMCL 用户群 ④,https://qm.qq.com/q/ACmZa98tGg,已满 +744304553,HMCL 用户群 ⑤,https://qm.qq.com/q/MlVArSCMwM,已满 +282845310,HMCL 用户群 ⑥,https://qm.qq.com/q/S782Skmu0U,已满 +482624681,HMCL 用户群 ⑦,https://qm.qq.com/q/WFsZ65F6MY, +991620626,HMCL 用户群 ⑧,https://qm.qq.com/q/ECVKkslPqi, +657677715,HMCL 用户群 ⑨,https://qm.qq.com/q/DVj9tTrwze,已满 +775084843,HMCL 用户群 ⑩,https://qm.qq.com/q/V5F9DswQEu,已满 diff --git a/src/pages/changelog/dev.astro b/src/pages/changelog/dev.astro new file mode 100644 index 00000000..9c4d9e0b --- /dev/null +++ b/src/pages/changelog/dev.astro @@ -0,0 +1,37 @@ +--- +import { getCollection } from "astro:content"; + +interface Props { + channel: string; +} + +const changelogs = await getCollection("changelogs").then((changelogs) => + changelogs.filter( + (changelog) => + changelog.rendered !== undefined && + changelog.filePath !== undefined && + changelog.filePath.includes(`/dev/`) + ) +); +--- + +{ + changelogs.map((changelog, index) => { + const filename = changelog.filePath!.split("/").pop() as string; + const version = filename.slice(0, -3); + return ( + <> +

+
+ + ); + }) +} + + diff --git a/src/pages/changelog/stable.astro b/src/pages/changelog/stable.astro new file mode 100644 index 00000000..d1403036 --- /dev/null +++ b/src/pages/changelog/stable.astro @@ -0,0 +1,37 @@ +--- +import { getCollection } from "astro:content"; + +interface Props { + channel: string; +} + +const changelogs = await getCollection("changelogs").then((changelogs) => + changelogs.filter( + (changelog) => + changelog.rendered !== undefined && + changelog.filePath !== undefined && + changelog.filePath.includes(`/stable/`) + ) +); +--- + +{ + changelogs.map((changelog, index) => { + const filename = changelog.filePath!.split("/").pop() as string; + const version = filename.slice(0, -3); + return ( + <> +

+
+ + ); + }) +} + + diff --git a/src/pages/index.json.ts b/src/pages/index.json.ts new file mode 100644 index 00000000..33b7a347 --- /dev/null +++ b/src/pages/index.json.ts @@ -0,0 +1,30 @@ +import type { APIRoute } from "astro"; +import { getCollection } from "astro:content"; + +const docs = await getCollection("docs").then((docs) => + docs.filter((doc) => doc.filePath !== undefined) +); + +const modpack = docs.filter((doc) => doc.filePath!.includes("/modpack/")); +const launcher = docs.filter((doc) => doc.filePath!.includes("/launcher/")); + +export const GET: APIRoute = () => { + return Response.json([ + { + title: "整合包", + items: modpack.map((item) => ({ + title: item.data.title, + subtitle: item.data.description || "", + url: `https://docs.hmcl.net/${item.id}/`, + })), + }, + { + title: "启动器", + items: launcher.map((item) => ({ + title: item.data.title, + subtitle: item.data.description || "", + url: `https://docs.hmcl.net/${item.id}/`, + })), + }, + ]); +}; diff --git a/src/pages/robots.txt.ts b/src/pages/robots.txt.ts new file mode 100644 index 00000000..8f32cffe --- /dev/null +++ b/src/pages/robots.txt.ts @@ -0,0 +1,13 @@ +import type { APIRoute } from "astro"; + +let siteUrl: string = import.meta.env.PUBLIC_SITE_URL || "http://localhost:4321"; +if (!siteUrl.endsWith("/")) { + siteUrl += "/"; +} + +export const GET: APIRoute = () => + new Response(`User-agent: *\nAllow: \/\n\nSitemap: ${siteUrl}sitemap-index.xml\n`, { + headers: { + "content-type": "text/plain", + }, + }); diff --git a/src/routeData.ts b/src/routeData.ts new file mode 100644 index 00000000..95e31c87 --- /dev/null +++ b/src/routeData.ts @@ -0,0 +1,80 @@ +import { defineRouteMiddleware } from "@astrojs/starlight/route-data"; +import { getCollection } from "astro:content"; + +const compareVersion = (v1: string, v2: string) => { + const a1 = v1.split(".").map(Number); + const a2 = v2.split(".").map(Number); + + const len = Math.max(a1.length, a2.length); + + for (let i = 0; i < len; i++) { + const n1 = a1[i] || 0; + const n2 = a2[i] || 0; + + if (n1 > n2) return 1; + if (n1 < n2) return -1; + } + + return 0; +}; + +export const onRequest = defineRouteMiddleware(async (context) => { + const { starlightRoute } = context.locals; + const { entry, lang } = starlightRoute; + if ( + entry.filePath.startsWith("src/content/docs/changelogs/") || + entry.filePath.startsWith(`src/content/docs/${lang.toLowerCase()}/changelogs/`) + ) { + const filename = entry.filePath.split("/").pop() as string; + const channel = filename.split(".")[0] as string; + const changelogs = await getCollection( + "changelogs", + (entry) => + entry.rendered !== undefined && + entry.filePath !== undefined && + entry.filePath.includes(`/${channel}/`) + ); + + const list = changelogs + .map((changelog) => { + const filePath = changelog.filePath!.split("/") as string[]; + const rootVersion = filePath[filePath.length - 2] as string; + const version = filePath[filePath.length - 1].slice(0, -3) as string; + return { + rootVersion, + version, + html: changelog.rendered!.html, + }; + }) + .sort((itemA, itemB) => -compareVersion(itemA.version, itemB.version)); + + starlightRoute.entry.data.changelogs = list; + starlightRoute.toc = { + minHeadingLevel: 2, + maxHeadingLevel: 3, + items: [ + { + depth: 2, + slug: "_top", + text: context.locals.t("tableOfContents.overview"), + children: [], + }, + ...Object.entries(Object.groupBy(list, (item) => item.rootVersion)).map( + ([rootVersion, versions]) => { + return { + depth: 2, + slug: `HMCL-${rootVersion}`, + text: rootVersion, + children: (versions || []).map(({ version }) => ({ + depth: 3, + slug: `HMCL-${version}`, + text: version, + children: [], + })), + }; + } + ), + ], + }; + } +}); diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..4d15b1a8 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "paths": { + "@components/*": ["./src/components/*"] + }, + "jsx": "react-jsx", + "jsxImportSource": "react" + }, + "extends": "astro/tsconfigs/strict", + "include": [".astro/types.d.ts", "**/*"], + "exclude": ["dist"] +}