init: 初始化文档

This commit is contained in:
MKStoler1024 2025-01-31 17:51:25 +00:00
parent 52757c654d
commit 80b1aa4390
45 changed files with 8135 additions and 1 deletions

87
.github/workflows/deploy-docs.yml vendored Normal file
View File

@ -0,0 +1,87 @@
name: 部署文档
on:
push:
branches:
- main
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
# 如果你文档需要 Git 子模块,取消注释下一行
# submodules: true
- name: 设置 pnpm
uses: pnpm/action-setup@v4
with:
version: 9.9.0+sha512.60c18acd138bff695d339be6ad13f7e936eea6745660d4cc4a776d5247c540d0edee1a563695c183a66eb917ef88f2b4feb1fc25f32a7adcadc7aaf3438e99c1
- name: 设置 Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
- name: 安装依赖
run: |
corepack enable
pnpm install --frozen-lockfile
- name: 构建文档
env:
NODE_OPTIONS: --max_old_space_size=8192
run: |-
pnpm run docs:build
> src/.vuepress/dist/.nojekyll
- name: 打包工件
shell: sh
if: runner.os == 'Linux'
run: |
tar \
--directory "./src/.vuepress/dist/" \
-cvf "$RUNNER_TEMP/artifact.tar" \
--exclude=.git \
--exclude=.github \
.
env:
INPUT_PATH: ./build
- name: 上传工件
uses: actions/upload-artifact@v3
with:
name: github-pages
path: ${{ runner.temp }}/artifact.tar
retention-days: 1
if-no-files-found: error
deploy:
# Add a dependency to the build job
needs: build
# Grant GITHUB_TOKEN the permissions required to make a Pages deployment
permissions:
pages: write # to deploy to Pages
id-token: write # to verify the deployment originates from an appropriate source
# Deploy to the github-pages environment
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
# Specify runner + deployment step
runs-on: ubuntu-latest
steps:
- name: 部署到 GitHub Pages
id: deployment
uses: actions/deploy-pages@v2 # or the latest "vX.X.X" version tag for this action

38
.github/workflows/generate-pdf.yml vendored Normal file
View File

@ -0,0 +1,38 @@
name: Generate and Upload PDF on Release
on:
release:
types: [published]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: 设置 pnpm
uses: pnpm/action-setup@v4
with:
version: 9.9.0+sha512.60c18acd138bff695d339be6ad13f7e936eea6745660d4cc4a776d5247c540d0edee1a563695c183a66eb917ef88f2b4feb1fc25f32a7adcadc7aaf3438e99c1
- name: 设置 Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
- name: Install dependencies
run: pnpm install
- name: Install Google Chrome
run: npx puppeteer browsers install chrome
- name: Generate PDF
run: pnpm run export-pdf
- name: Upload PDF to Release
uses: softprops/action-gh-release@v2
with:
files: ./pdf/ClassIsland-Docs.pdf

13
.gitignore vendored Normal file
View File

@ -0,0 +1,13 @@
node_modules/
src/.vuepress/.cache/
src/.vuepress/.temp/
src/.vuepress/dist/
pdf/
.DS_Store
venv/**
out/**
*/__pycache__/**
.cache/
dist/*

9
.markdownlint.json Normal file
View File

@ -0,0 +1,9 @@
{
"MD033": false,
"MD036": false,
"MD013": false,
"MD024": false,
"MD046": false,
"MD007": { "indent": 4 },
"MD009": false
}

3
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"compile-hero.disable-compile-files-on-did-save-code": false
}

437
LICENSE Normal file
View File

@ -0,0 +1,437 @@
Attribution-NonCommercial-ShareAlike 4.0 International
=======================================================================
Creative Commons Corporation ("Creative Commons") is not a law firm and
does not provide legal services or legal advice. Distribution of
Creative Commons public licenses does not create a lawyer-client or
other relationship. Creative Commons makes its licenses and related
information available on an "as-is" basis. Creative Commons gives no
warranties regarding its licenses, any material licensed under their
terms and conditions, or any related information. Creative Commons
disclaims all liability for damages resulting from their use to the
fullest extent possible.
Using Creative Commons Public Licenses
Creative Commons public licenses provide a standard set of terms and
conditions that creators and other rights holders may use to share
original works of authorship and other material subject to copyright
and certain other rights specified in the public license below. The
following considerations are for informational purposes only, are not
exhaustive, and do not form part of our licenses.
Considerations for licensors: Our public licenses are
intended for use by those authorized to give the public
permission to use material in ways otherwise restricted by
copyright and certain other rights. Our licenses are
irrevocable. Licensors should read and understand the terms
and conditions of the license they choose before applying it.
Licensors should also secure all rights necessary before
applying our licenses so that the public can reuse the
material as expected. Licensors should clearly mark any
material not subject to the license. This includes other CC-
licensed material, or material used under an exception or
limitation to copyright. More considerations for licensors:
wiki.creativecommons.org/Considerations_for_licensors
Considerations for the public: By using one of our public
licenses, a licensor grants the public permission to use the
licensed material under specified terms and conditions. If
the licensor's permission is not necessary for any reason--for
example, because of any applicable exception or limitation to
copyright--then that use is not regulated by the license. Our
licenses grant only permissions under copyright and certain
other rights that a licensor has authority to grant. Use of
the licensed material may still be restricted for other
reasons, including because others have copyright or other
rights in the material. A licensor may make special requests,
such as asking that all changes be marked or described.
Although not required by our licenses, you are encouraged to
respect those requests where reasonable. More considerations
for the public:
wiki.creativecommons.org/Considerations_for_licensees
=======================================================================
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International
Public License
By exercising the Licensed Rights (defined below), You accept and agree
to be bound by the terms and conditions of this Creative Commons
Attribution-NonCommercial-ShareAlike 4.0 International Public License
("Public License"). To the extent this Public License may be
interpreted as a contract, You are granted the Licensed Rights in
consideration of Your acceptance of these terms and conditions, and the
Licensor grants You such rights in consideration of benefits the
Licensor receives from making the Licensed Material available under
these terms and conditions.
Section 1 -- Definitions.
a. Adapted Material means material subject to Copyright and Similar
Rights that is derived from or based upon the Licensed Material
and in which the Licensed Material is translated, altered,
arranged, transformed, or otherwise modified in a manner requiring
permission under the Copyright and Similar Rights held by the
Licensor. For purposes of this Public License, where the Licensed
Material is a musical work, performance, or sound recording,
Adapted Material is always produced where the Licensed Material is
synched in timed relation with a moving image.
b. Adapter's License means the license You apply to Your Copyright
and Similar Rights in Your contributions to Adapted Material in
accordance with the terms and conditions of this Public License.
c. BY-NC-SA Compatible License means a license listed at
creativecommons.org/compatiblelicenses, approved by Creative
Commons as essentially the equivalent of this Public License.
d. Copyright and Similar Rights means copyright and/or similar rights
closely related to copyright including, without limitation,
performance, broadcast, sound recording, and Sui Generis Database
Rights, without regard to how the rights are labeled or
categorized. For purposes of this Public License, the rights
specified in Section 2(b)(1)-(2) are not Copyright and Similar
Rights.
e. Effective Technological Measures means those measures that, in the
absence of proper authority, may not be circumvented under laws
fulfilling obligations under Article 11 of the WIPO Copyright
Treaty adopted on December 20, 1996, and/or similar international
agreements.
f. Exceptions and Limitations means fair use, fair dealing, and/or
any other exception or limitation to Copyright and Similar Rights
that applies to Your use of the Licensed Material.
g. License Elements means the license attributes listed in the name
of a Creative Commons Public License. The License Elements of this
Public License are Attribution, NonCommercial, and ShareAlike.
h. Licensed Material means the artistic or literary work, database,
or other material to which the Licensor applied this Public
License.
i. Licensed Rights means the rights granted to You subject to the
terms and conditions of this Public License, which are limited to
all Copyright and Similar Rights that apply to Your use of the
Licensed Material and that the Licensor has authority to license.
j. Licensor means the individual(s) or entity(ies) granting rights
under this Public License.
k. NonCommercial means not primarily intended for or directed towards
commercial advantage or monetary compensation. For purposes of
this Public License, the exchange of the Licensed Material for
other material subject to Copyright and Similar Rights by digital
file-sharing or similar means is NonCommercial provided there is
no payment of monetary compensation in connection with the
exchange.
l. Share means to provide material to the public by any means or
process that requires permission under the Licensed Rights, such
as reproduction, public display, public performance, distribution,
dissemination, communication, or importation, and to make material
available to the public including in ways that members of the
public may access the material from a place and at a time
individually chosen by them.
m. Sui Generis Database Rights means rights other than copyright
resulting from Directive 96/9/EC of the European Parliament and of
the Council of 11 March 1996 on the legal protection of databases,
as amended and/or succeeded, as well as other essentially
equivalent rights anywhere in the world.
n. You means the individual or entity exercising the Licensed Rights
under this Public License. Your has a corresponding meaning.
Section 2 -- Scope.
a. License grant.
1. Subject to the terms and conditions of this Public License,
the Licensor hereby grants You a worldwide, royalty-free,
non-sublicensable, non-exclusive, irrevocable license to
exercise the Licensed Rights in the Licensed Material to:
a. reproduce and Share the Licensed Material, in whole or
in part, for NonCommercial purposes only; and
b. produce, reproduce, and Share Adapted Material for
NonCommercial purposes only.
2. Exceptions and Limitations. For the avoidance of doubt, where
Exceptions and Limitations apply to Your use, this Public
License does not apply, and You do not need to comply with
its terms and conditions.
3. Term. The term of this Public License is specified in Section
6(a).
4. Media and formats; technical modifications allowed. The
Licensor authorizes You to exercise the Licensed Rights in
all media and formats whether now known or hereafter created,
and to make technical modifications necessary to do so. The
Licensor waives and/or agrees not to assert any right or
authority to forbid You from making technical modifications
necessary to exercise the Licensed Rights, including
technical modifications necessary to circumvent Effective
Technological Measures. For purposes of this Public License,
simply making modifications authorized by this Section 2(a)
(4) never produces Adapted Material.
5. Downstream recipients.
a. Offer from the Licensor -- Licensed Material. Every
recipient of the Licensed Material automatically
receives an offer from the Licensor to exercise the
Licensed Rights under the terms and conditions of this
Public License.
b. Additional offer from the Licensor -- Adapted Material.
Every recipient of Adapted Material from You
automatically receives an offer from the Licensor to
exercise the Licensed Rights in the Adapted Material
under the conditions of the Adapter's License You apply.
c. No downstream restrictions. You may not offer or impose
any additional or different terms or conditions on, or
apply any Effective Technological Measures to, the
Licensed Material if doing so restricts exercise of the
Licensed Rights by any recipient of the Licensed
Material.
6. No endorsement. Nothing in this Public License constitutes or
may be construed as permission to assert or imply that You
are, or that Your use of the Licensed Material is, connected
with, or sponsored, endorsed, or granted official status by,
the Licensor or others designated to receive attribution as
provided in Section 3(a)(1)(A)(i).
b. Other rights.
1. Moral rights, such as the right of integrity, are not
licensed under this Public License, nor are publicity,
privacy, and/or other similar personality rights; however, to
the extent possible, the Licensor waives and/or agrees not to
assert any such rights held by the Licensor to the limited
extent necessary to allow You to exercise the Licensed
Rights, but not otherwise.
2. Patent and trademark rights are not licensed under this
Public License.
3. To the extent possible, the Licensor waives any right to
collect royalties from You for the exercise of the Licensed
Rights, whether directly or through a collecting society
under any voluntary or waivable statutory or compulsory
licensing scheme. In all other cases the Licensor expressly
reserves any right to collect such royalties, including when
the Licensed Material is used other than for NonCommercial
purposes.
Section 3 -- License Conditions.
Your exercise of the Licensed Rights is expressly made subject to the
following conditions.
a. Attribution.
1. If You Share the Licensed Material (including in modified
form), You must:
a. retain the following if it is supplied by the Licensor
with the Licensed Material:
i. identification of the creator(s) of the Licensed
Material and any others designated to receive
attribution, in any reasonable manner requested by
the Licensor (including by pseudonym if
designated);
ii. a copyright notice;
iii. a notice that refers to this Public License;
iv. a notice that refers to the disclaimer of
warranties;
v. a URI or hyperlink to the Licensed Material to the
extent reasonably practicable;
b. indicate if You modified the Licensed Material and
retain an indication of any previous modifications; and
c. indicate the Licensed Material is licensed under this
Public License, and include the text of, or the URI or
hyperlink to, this Public License.
2. You may satisfy the conditions in Section 3(a)(1) in any
reasonable manner based on the medium, means, and context in
which You Share the Licensed Material. For example, it may be
reasonable to satisfy the conditions by providing a URI or
hyperlink to a resource that includes the required
information.
3. If requested by the Licensor, You must remove any of the
information required by Section 3(a)(1)(A) to the extent
reasonably practicable.
b. ShareAlike.
In addition to the conditions in Section 3(a), if You Share
Adapted Material You produce, the following conditions also apply.
1. The Adapter's License You apply must be a Creative Commons
license with the same License Elements, this version or
later, or a BY-NC-SA Compatible License.
2. You must include the text of, or the URI or hyperlink to, the
Adapter's License You apply. You may satisfy this condition
in any reasonable manner based on the medium, means, and
context in which You Share Adapted Material.
3. You may not offer or impose any additional or different terms
or conditions on, or apply any Effective Technological
Measures to, Adapted Material that restrict exercise of the
rights granted under the Adapter's License You apply.
Section 4 -- Sui Generis Database Rights.
Where the Licensed Rights include Sui Generis Database Rights that
apply to Your use of the Licensed Material:
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
to extract, reuse, reproduce, and Share all or a substantial
portion of the contents of the database for NonCommercial purposes
only;
b. if You include all or a substantial portion of the database
contents in a database in which You have Sui Generis Database
Rights, then the database in which You have Sui Generis Database
Rights (but not its individual contents) is Adapted Material,
including for purposes of Section 3(b); and
c. You must comply with the conditions in Section 3(a) if You Share
all or a substantial portion of the contents of the database.
For the avoidance of doubt, this Section 4 supplements and does not
replace Your obligations under this Public License where the Licensed
Rights include other Copyright and Similar Rights.
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
c. The disclaimer of warranties and limitation of liability provided
above shall be interpreted in a manner that, to the extent
possible, most closely approximates an absolute disclaimer and
waiver of all liability.
Section 6 -- Term and Termination.
a. This Public License applies for the term of the Copyright and
Similar Rights licensed here. However, if You fail to comply with
this Public License, then Your rights under this Public License
terminate automatically.
b. Where Your right to use the Licensed Material has terminated under
Section 6(a), it reinstates:
1. automatically as of the date the violation is cured, provided
it is cured within 30 days of Your discovery of the
violation; or
2. upon express reinstatement by the Licensor.
For the avoidance of doubt, this Section 6(b) does not affect any
right the Licensor may have to seek remedies for Your violations
of this Public License.
c. For the avoidance of doubt, the Licensor may also offer the
Licensed Material under separate terms or conditions or stop
distributing the Licensed Material at any time; however, doing so
will not terminate this Public License.
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
License.
Section 7 -- Other Terms and Conditions.
a. The Licensor shall not be bound by any additional or different
terms or conditions communicated by You unless expressly agreed.
b. Any arrangements, understandings, or agreements regarding the
Licensed Material not stated herein are separate from and
independent of the terms and conditions of this Public License.
Section 8 -- Interpretation.
a. For the avoidance of doubt, this Public License does not, and
shall not be interpreted to, reduce, limit, restrict, or impose
conditions on any use of the Licensed Material that could lawfully
be made without permission under this Public License.
b. To the extent possible, if any provision of this Public License is
deemed unenforceable, it shall be automatically reformed to the
minimum extent necessary to make it enforceable. If the provision
cannot be reformed, it shall be severed from this Public License
without affecting the enforceability of the remaining terms and
conditions.
c. No term or condition of this Public License will be waived and no
failure to comply consented to unless expressly agreed to by the
Licensor.
d. Nothing in this Public License constitutes or may be interpreted
as a limitation upon, or waiver of, any privileges and immunities
that apply to the Licensor or You, including from the legal
processes of any jurisdiction or authority.
=======================================================================
Creative Commons is not a party to its public
licenses. Notwithstanding, Creative Commons may elect to apply one of
its public licenses to material it publishes and in those instances
will be considered the “Licensor.” The text of the Creative Commons
public licenses is dedicated to the public domain under the CC0 Public
Domain Dedication. Except for the limited purpose of indicating that
material is shared under a Creative Commons public license or as
otherwise permitted by the Creative Commons policies published at
creativecommons.org/policies, Creative Commons does not authorize the
use of the trademark "Creative Commons" or any other trademark or logo
of Creative Commons without its prior written consent including,
without limitation, in connection with any unauthorized modifications
to any of its public licenses or any other arrangements,
understandings, or agreements concerning use of licensed material. For
the avoidance of doubt, this paragraph does not form part of the
public licenses.
Creative Commons may be contacted at creativecommons.org.

View File

@ -1 +1,44 @@
# dosc
# ExamAware 文档
这是 [ExamAware](https://github.com/HelloWRC/ExamAware) 文档仓库。本文档基于 [VuePress](https://vuejs.press/) 搭建
[在线查看文档](https://ExamAware.github.io/ExamAware-docs-next/)
## 开始编写文档
1. 安装 Node 20 环境推荐使用NVM
2. 克隆并进入文档仓库
3. 安装依赖需要使用pnpm可使用corepack安装
```sh
pnpm install
```
4. 启动 VuePress 服务器
``` bash
pnpm run docs:dev
```
启动 VuePress 服务器后,在浏览器中打开终端输出的链接(默认是[http://localhost:8080/ExamAware-docs-next/](http://localhost:8080/ExamAware-docs-next/))即可浏览文档。当本地文档做出更改时,浏览器中的文档将自动刷新。
本文档使用了 vuepress-plugin-md-enhance
的一些扩展语法,请尽量直接编辑 Markdown 文件,而不是使用可视化 Markdown 编辑器。建议使用 [Visual Studio Code](https://code.visualstudio.com/) 编辑文档。
关于 VuePress 和 vuepress-plugin-md-enhance
的用法,请参见 [VuePress 文档](https://vuejs.press/) 和 [vuepress-plugin-md-enhance 文档](https://plugin-md-enhance.vuejs.press/zh/)。
## 做出贡献
如果您有意愿为本文档做出贡献,请先阅读[贡献指南](https://docs.ExamAware.tech/community/contributing.html)。我们欢迎向本仓库提交 [Pull Request](https://github.com/ExamAware/ExamAware-docs-next/pulls)。
## 致谢
感谢以下为本文档做出贡献的同学:
<a href="https://github.com/ExamAware/ExamAware-docs-next/graphs/contributors">
<img src="https://contrib.rocks/image?repo=ExamAware/ExamAware-docs-next&max=1000" alt="贡献者名单"/>
</a>
## 许可证
<p xmlns:cc="http://creativecommons.org/ns#" >本文档以 <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">CC BY-NC-SA 4.0<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/cc.svg?ref=chooser-v1" alt=""><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/by.svg?ref=chooser-v1" alt=""><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/nc.svg?ref=chooser-v1" alt=""><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/sa.svg?ref=chooser-v1" alt=""></a> 许可协议授权。</p>

32
package.json Normal file
View File

@ -0,0 +1,32 @@
{
"name": "ExamAware-docs-next",
"description": "A project of vuepress-theme-hope",
"version": "2.0.0",
"license": "MIT",
"type": "module",
"scripts": {
"docs:build": "vuepress-vite build src",
"docs:clean-dev": "vuepress-vite dev src --clean-cache",
"docs:dev": "vuepress-vite dev src",
"docs:update-package": "pnpm dlx vp-update",
"export-pdf": "press-export-pdf export src"
},
"devDependencies": {
"@condorhero/vuepress-plugin-export-pdf-v2": "^3.0.3",
"@vuepress/bundler-vite": "2.0.0-rc.15",
"sass-embedded": "^1.81.0",
"vue": "^3.5.13",
"vuepress": "2.0.0-rc.15",
"vuepress-plugin-search-pro": "2.0.0-rc.59",
"vuepress-theme-hope": "2.0.0-rc.59"
},
"packageManager": "pnpm@9.9.0+sha512.60c18acd138bff695d339be6ad13f7e936eea6745660d4cc4a776d5247c540d0edee1a563695c183a66eb917ef88f2b4feb1fc25f32a7adcadc7aaf3438e99c1",
"dependencies": {
"@sentry/vue": "^8.40.0",
"chart.js": "^4.4.6",
"echarts": "^5.5.1",
"flowchart.ts": "^3.0.1",
"mathjax-full": "^3.2.2",
"mermaid": "^11.4.0"
}
}

6580
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

23
src/.vuepress/config.ts Normal file
View File

@ -0,0 +1,23 @@
import { defineUserConfig, Plugin } from "vuepress";
import { searchProPlugin } from "vuepress-plugin-search-pro";
import theme from "./theme.js";
export default defineUserConfig({
base: "/",
locales: {
"/": {
lang: "zh-CN",
title: "ExamAware 文档",
description: "ExamAware 的文档",
},
"/en-us/": {
lang: "en-US",
title: "ExamAware Documentation",
description: "documentation of ExamAware",
},
},
theme
// 和 PWA 一起启用
// shouldPrefetch: false,
});

View File

@ -0,0 +1 @@
export * from './zh.js';

View File

@ -0,0 +1,7 @@
import { navbar } from "vuepress-theme-hope";
export const zhNavbar = navbar([
"/",
"/app/",
"/management/"
]);

View File

@ -0,0 +1 @@
86dbc282b2cc4a57a2e788dddd37e26d

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

120
src/.vuepress/sidebar/dist/zh.js vendored Normal file
View File

@ -0,0 +1,120 @@
"use strict";
exports.__esModule = true;
exports.zhSidebar = void 0;
var vuepress_theme_hope_1 = require("vuepress-theme-hope");
exports.zhSidebar = vuepress_theme_hope_1.sidebar({
"/": [
"",
{
text: "首页",
link: "index.md"
},
],
"/app/": [
{
icon: "fa-solid fa-lightbulb",
text: "应用帮助",
children: [
"index.md",
"setup.md",
"basic.md",
{
text: "档案设置",
prefix: "profile/",
children: [
"README.md",
"classplan.md",
"time-layout.md",
"subject.md",
"attached-settings.md",
],
icon: "fa-solid fa-file-lines"
},
{
text: "迁移课表",
prefix: "migrate/",
children: [
"README.md",
"ecs.md",
],
icon: "fa-solid fa-file-import"
},
"notifications.md",
"uri-navigation.md",
"backup.md",
"advanced.md",
{
text: "错误排除",
prefix: "faq/",
children: [
"faq.md",
"reporting-issue.md",
],
icon: "fa-solid fa-bug"
},
]
},
],
"/management/": [
{
text: "集控",
children: [
"README.md",
"client-identify.md",
"connect-to-mgmt-server.md",
"configure.md",
"policy.md",
"tutorial-create-management-config.md",
]
},
],
"/dev/": [
{
text: "开发文档",
children: [
"README.md",
{
text: "开始",
prefix: "get-started/",
children: [
"devlopment.md",
"devlopment-plugins.md",
]
},
{
text: "插件",
prefix: "plugins/",
children: [
"create-project.md",
"basics.md",
"plugin-base.md",
"publishing.md",
]
},
"basics.md",
"events.md",
"uri-navigation.md",
"components.md",
{
text: "提醒",
prefix: "notifications/",
children: [
"index.md",
"advanced-request.md",
]
},
"settings-page.md",
]
},
],
"/community/": [
{
text: "社区",
children: [
"README.md",
"contributing.md",
"web-articles.md"
]
},
]
});

View File

@ -0,0 +1 @@
export * from "./zh.js"

View File

@ -0,0 +1,69 @@
import { sidebar } from "vuepress-theme-hope";
export const zhSidebar = sidebar({
"/": [
"",
{
text: "首页",
link: "index.md",
},
],
"/app/": [
{
icon: "fa-solid fa-lightbulb",
text: "应用帮助",
children: [
"index.md",
"setup.md",
{
text: "档案设置",
collapsible: true,
expanded: true,
prefix: "profile/",
children: [
"faq.md",
],
icon: "fa-solid fa-file-lines"
},
],
},
],
"/management/": [
{
text: "集控和网页版应用帮助",
children: [
"README.md",
{
text: "ExamCloud 云配置",
collapsible: true,
expanded: true,
prefix: "examcloud/",
children: [
"client-identify.md",
],
icon: "fa-solid fa-file-lines"
},
{
text: "ExamShowboard 配置",
collapsible: true,
expanded: true,
prefix: "examshowboard/",
children: [
"static-config.md",
],
icon: "fa-solid fa-file-lines"
},
{
text: "ExamSchedule 配置",
collapsible: true,
expanded: true,
prefix: "examschedule/",
children: [
"management-config.md",
],
icon: "fa-solid fa-file-lines"
},
],
},
],
});

View File

@ -0,0 +1,3 @@
// you can change config here
// $theme-color: #00bfff
$theme-color: #1f7751;

View File

@ -0,0 +1 @@
// place your custom styles here

View File

@ -0,0 +1,3 @@
// you can change colors here
$vp-font: '"HarmonyOS Sans SC", "PingFangSC-Regular", "Microsoft YaHei", "Arial", "Helvetica", sans-serif';

224
src/.vuepress/theme.ts Normal file
View File

@ -0,0 +1,224 @@
import { hopeTheme } from "vuepress-theme-hope";
import { zhNavbar } from "./navbar/index.js";
import { zhSidebar } from "./sidebar/index.js";
export default hopeTheme({
hostname: "https://docs.ExamAware.tech",
author: {
name: "ExamAware 社区",
url: "https://github.com/orgs/ExamAware/discussions",
},
iconAssets: "fontawesome-with-brands",
logo: "https://avatars.githubusercontent.com/u/195304368?s=200&v=4",
repo: "ExamAware/ExamAware-docs-next",
docsDir: "src",
// 导航栏
// navbar,
// // 侧边栏
// sidebar,
// // 页脚
displayFooter: true,
copyright: false,
locales: {
"/": {
// navbar
navbar: zhNavbar,
// sidebar
sidebar: zhSidebar,
// autocorrect-disable
footer: "Copyright (c) 2024 ExamAware | " +
'本文档以 CC BY-NC-SA 4.0 许可协议授权。',
// autocorrect-enable
displayFooter: true,
metaLocales: {
editLink: "编辑此页面",
},
},
},
// 多语言配置
metaLocales: {
editLink: "在 GitHub 上编辑此页",
},
// 如果想要实时查看任何改变,启用它。注:这对更新性能有很大负面影响
// hotReload: true,
pure: true,
// 在这里配置主题提供的插件
plugins: {
// // 注意:仅用于测试!你必须自行生成并在生产环境中使用自己的评论服务
// comment: {
// provider: "Giscus",
// repo: "ExamAware/ExamAware-docs-giscuz",
// repoId: "R_kgDOMp3pZg",
// category: "Announcements",
// categoryId: "DIC_kwDOMp3pZs4CiBuf",
// mapping: "pathname",
// },
searchPro: {},
shiki: {
themes: {
light: "one-light",
dark: "one-dark-pro",
},
highlightLines: true,
notationDiff: true,
notationFocus: true,
notationHighlight: true,
},
components: {
components: ["Badge", "VPCard"],
},
markdownTab: {
// 启用代码选项卡
codeTabs: true,
// 启用选项卡
tabs: true,
},
markdownHint: {
// 启用提示容器,默认启用
hint: true,
// 启用 GFM 警告
alert: true,
},
// 此处开启了很多功能用于演示,你应仅保留用到的功能。
mdEnhance: {
align: true,
attrs: true,
component: true,
demo: true,
include: true,
mark: true,
plantuml: true,
spoiler: true,
stylize: [
{
matcher: "Recommended",
replacer: ({ tag }) => {
if (tag === "em")
return {
tag: "Badge",
attrs: { type: "tip" },
content: "Recommended",
};
},
},
],
sub: true,
sup: true,
tasklist: true,
vPre: true,
// 在启用之前安装 chart.js
chart: true,
// insert component easily
// 在启用之前安装 echarts
echarts: true,
// 在启用之前安装 flowchart.ts
flowchart: true,
// gfm requires mathjax-full to provide tex support
gfm: true,
// 在启用之前安装 katex
// katex: true,
// 在启用之前安装 mathjax-full
// mathjax: true,
// 在启用之前安装 mermaid
mermaid: true,
// playground: {
// presets: ["ts", "vue"],
// },
// 在启用之前安装 reveal.js
// revealJs: {
// plugins: ["highlight", "math", "search", "notes", "zoom"],
// },
// 在启用之前安装 @vue/repl
// vuePlayground: true,
// install sandpack-vue3 before enabling it
// sandpack: true,
},
// 如果你需要 PWA。安装 @vuepress/plugin-pwa 并取消下方注释
// pwa: {
// favicon: "/favicon.ico",
// cacheHTML: true,
// cacheImage: true,
// appendBase: true,
// apple: {
// icon: "/assets/icon/apple-icon-152.png",
// statusBarColor: "black",
// },
// msTile: {
// image: "/assets/icon/ms-icon-144.png",
// color: "#ffffff",
// },
// manifest: {
// icons: [
// {
// src: "/assets/icon/chrome-mask-512.png",
// sizes: "512x512",
// purpose: "maskable",
// type: "image/png",
// },
// {
// src: "/assets/icon/chrome-mask-192.png",
// sizes: "192x192",
// purpose: "maskable",
// type: "image/png",
// },
// {
// src: "/assets/icon/chrome-512.png",
// sizes: "512x512",
// type: "image/png",
// },
// {
// src: "/assets/icon/chrome-192.png",
// sizes: "192x192",
// type: "image/png",
// },
// ],
// shortcuts: [
// {
// name: "Demo",
// short_name: "Demo",
// url: "/demo/",
// icons: [
// {
// src: "/assets/icon/guide-maskable.png",
// sizes: "192x192",
// purpose: "maskable",
// type: "image/png",
// },
// ],
// },
// ],
// },
// },
},
});

View File

@ -0,0 +1,24 @@
// .vuepress/vuepress-pdf.config.ts
import { defineUserConfig } from "@condorhero/vuepress-plugin-export-pdf-v2";
import theme from "./theme.js";
import { viteBundler } from '@vuepress/bundler-vite'
export default defineUserConfig({
outFile: "ExamAware-Docs.pdf",
outDir: "pdf",
pdfOptions: {
format: "A4",
displayHeaderFooter: false,
margin: {
bottom: 70,
left: 25,
right: 25,
top: 70,
},
},
theme: theme,
bundler: viteBundler({
viteOptions: {},
vuePluginOptions: {},
}),
});

59
src/README.md Normal file
View File

@ -0,0 +1,59 @@
---
home: true
icon: home
title: 首页
heroImage: https://avatars.githubusercontent.com/u/195304368?s=200&v=4
heroImageStyle:
scale: 0.75
# bgImage:
# bgImageDark: https://theme-hope-assets.vuejs.press/bg/6-dark.svg
bgImageStyle:
background-attachment: fixed
heroText: ExamAware 文档
tagline: 适用于班级多媒体屏幕的课表的信息显示工具
actions:
- text: 使用说明
icon: lightbulb
link: ./app/
type: primary
- text: 官网
link: https://github.com/ExamAware/
- text: GitHub 仓库
link: https://github.com/ExamAware/dsz-exam-showboard
---
欢迎来到 ExamAware 的文档。
ExamAware 系列软件是显示当前时间与考试详细信息的显示工具,可以在各平台上运行。
## 开始使用
<div class="vp-card-container">
<VPCard
title="安装与开始"
desc="了解 ExamAware 系列的设备需求,以及如何在您的设备上安装 ExamAware。"
link="./app/setup"
/>
</div>
如果您要进一步了解本软件,您可以继续阅读本文档。
## 目录
本文档包含以下部分:
<div class="vp-card-container">
<VPCard
title="桌面版应用帮助"
desc="了解应用的基本使用方法。"
link="./app/"
/>
<VPCard
title="集控和网页版应用帮助"
desc="查看这部分文档包含了关于集控的帮助,以及网页版应用部署的教程。"
link="./management/"
/>
</div>

17
src/app/README.md Normal file
View File

@ -0,0 +1,17 @@
---
title: 桌面端应用帮助
index: false
icon: lightbulb
category:
- 使用指南
---
这里是 ExamAware 帮助文档,关于应用本体的使用方法和常见问题,请参阅本文档。
## 安装 ExamAware
请参阅[安装与开始](setup.md)。
## 编写配置文件
请参阅[编写配置文件](profile/faq.md)。

78
src/app/profile/faq.md Normal file
View File

@ -0,0 +1,78 @@
# 配置文件
此配置文件保存着考试名称, 考试考场, 考试开始/结束时间等信息。
您可以手动编写配置文件,也可以直接使用[配置文件编辑器](https://github.com/ExamAware/DSZExamShowBoardEditor/releases/latest)编写配置文件。
在新版本(即 `ExamAware2``ExamCloud` )中,已经集成了编辑器,可以略过本部分帮助。
## 配置文件编辑器(旧版)
您可以前往[ExamShowBoardEditor](https://github.com/ProjectCampus-CH/DSZExamShowBoardEditor/releases/latest)获取GUI的配置文件生成软件
1.双击运行从[仓库](https://github.com/ProjectCampus-CH/DSZExamShowBoardEditor/releases/latest)下载的软件
2.点击 `添加考试信息` 按钮添加考试信息
- 输入考试科目名称
- 输入考试日期,考试日期的格式如下
- ` YYYY-MM-DD ` 例如 `` 2025-01-01 ``
- ` YYYY/MM/DD ` 例如 `` 2025/01/01 ``
- 分别输入考试开始/结束时间,格式为 ` HH:MM:SS ` 例如 `` 08:00:00 ``
- 点击 `保存` 按钮保存输入的考试信息
3.点击 ` 保存到json ` 按钮保存到配置文件中
- 输入考试标题
- 输入考试副标题
- 输入考场号
- 点击 ` 保存 ` 按钮导出配置文件
> [!tip]
>
> 点击`保存JSON`按钮后配置文件默认会保存在配置文件编辑器所在目录下`exam_config.json`
>
> `message``room` 内容必填(可填空格隐藏),`examInfos` 至少需要一条数据。
>
> 如果有两个以"/"分隔的科目可以自动转化为双行显示
4.点击`打开配置文件`按钮可打开并编辑配置文件,您可以在其中编辑考试信息。
- 在下方的选择框中使用鼠标选择考试科目
- 点击 `编辑选中信息` 按钮添编辑选中的考试科目信息
- 点击 `删除` 按钮删除选中的考试科目
- 点击 `上移/下移` 按钮移动选中的考试科目(此按钮可以调整考试科目显示的顺序)
## 手动编写配置文件
> [!warning]
>
> 请确保 `exam_config.json` 文件编码为 `UTF-8`,换行符为 `LF`,按照`json`文件格式填写。不然可能会出一些神奇的 Bug。
>
> 不确定?可以使用 [VSCode](https://code.visualstudio.com/) 打开、编辑文件,右下角显示编码格式和换行方式,点击即可更改。
1. 新建一个名为 `exam_config.json` 的文件
2. 编辑文件内容,格式如下
```json
{
"examName": "考试名称",
"message": "信息",
"room": "考场号",
"examInfos": [
{
"name": "科目",
"start": "2024-12-01T07:00:00",
"end": "2024-12-01T08:00:00"
},
{
"name": "科目/科目",
"start": "2024-12-01T09:00:00",
"end": "2024-12-01T10:00:00"
}
]
}
```
> [!tip]
>
> `message``room` 内容必填(可填空格隐藏),`examInfos` 至少需要一条数据。
>
> 如果有两个以"/"分隔的科目可以自动转化为双行显示
> [!tip]
>
>您可以将配置文件复制到 U 盘等介质中,然后在另一台电脑上保存该文件,以实现配置文件的转移及部署;您也可以使用[集控]实现配置文件的下发及部署。

72
src/app/setup.md Normal file
View File

@ -0,0 +1,72 @@
---
icon: fa-solid fa-download
category:
- 使用指南
tag:
- 应用
- 安装
---
# 安装与开始
本文将介绍如何安装与开始使用考试看板。
## 检查系统需求
首先,确保您的设备满足以下需求:
- Windows 10 及以上版本的系统x86_64 架构
- Linux 系统
- macOS 系统
- macOS 13 及以上版本
- 移动设备
- 安卓系统
- 安卓 7 及以上版本
- iOS 系统
- iOS 13 及以上版本
# 下载应用本体
对于普通用户,可以在以下渠道下载到本软件,请根据自身网络环境选择合适的渠道。
| Github下载 | [Releases](https://github.com/ExamAware/dsz-exam-showboard/releases) | [Actions](https://github.com/ExamAware/dsz-exam-showboard/actions) |
| ---- | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
# 安装软件
下载完成后,双击运行对应版本的安装包,等待进度条走完后双击运行系统桌面的 `ExamShowboard`快捷方式即可开始使用
> [!tip]
> 本软件的默认安装路径为 `AppData\Local\Programs\exam-showboard`
>
# 遇到问题?
如果安装时遇到问题,**首先请自行[百度](https://www.baidu.com/)一下**。如果问题无法解决,您可以[在 QQ 群求助](https://qm.qq.com/q/zDiEipHsaI)或者[前往 Discussion](https://github.com/orgs/ExamAware/discussions)。
# 开始使用
如果您要进一步了解本软件,您可以继续阅读本文档。
::: details 在 Windows 7 中安装 ExamAware
> [!caution]
> **在 Windows 7 中使用 ExamAware 是不现实的。** 受限制于框架问题,在 Windows 7 中,您无法打开 ExamAware 。
此外,**微软对 Windows 7 的支持已经在 2020/1/14 终止** [^1]。如果您汇报在 Windows 7 中遇到系统相关问题, **开发者可能不会受理。**
:::
## 下载应用本体
对于普通用户,可以在以下渠道下载到本软件,请根据自身网络环境选择合适的渠道。
::: warning
当前构建包含最新的功能,但也可能包含未完善和不稳定的功能,请谨慎使用。
| 平台 | **🚀 正式版**<br/>[![GitHub Release](https://img.shields.io/github/v/release/ExamAware/dsz-exam-showboard?include_prereleases&style=flat-square&logo=GitHub&label=最新版本)](https://github.com/ExamAware/dsz-exam-showboard/releases/) | 🚧 当前构建 |
| - | - | - |
| 桌面端 | [dsz-exam-showboard/releases](https://github.com/ExamAware/dsz-exam-showboard/releases) | [dsz-exam-showboard/actions](https://github.com/ExamAware/dsz-exam-showboard/actions) |
| 移动端 | [dsz-examaware-mobile/releases](https://github.com/ExamAware/dsz-examaware-mobile/releases) | [dsz-examaware-mobile/actions](https://github.com/ExamAware/dsz-examaware-mobile/actions) |
:::
[^1]: Windows 7 生命周期策略:<https://learn.microsoft.com/zh-cn/lifecycle/products/windows-7>。Windows 7 ESU 结束支持于 2023/1/10。

31
src/management/README.md Normal file
View File

@ -0,0 +1,31 @@
---
title: 集控和网页版应用帮助
index: false
icon: server
category:
- 使用指南
---
学校/组织的 IT 可以通过集控功能向学校内的 ExamAware 实例统一分发时间表和科目等信息,并且可以集中调整软件设置,提高管理的便利性。
<a id="get-started"></a>
## 开始使用
本功能支持通过静态配置文件部署,也可以通过管理服务器部署。您可以根据情况自由选择部署方式。
<a id="get-started-static"></a>
### 使用静态配置文件
您可以手动编写集控配置文件,并将其托管到静态网站上。
[🚀入门教程](/examschedule/management-config.md)
<a id="get-started-server"></a>
### 集控服务器
[🚀入门教程](/examcloud/client-identify.md)
<a id="get-started-compare"></a>

View File

@ -0,0 +1,26 @@
# 客户端识别
您可以为每个 ExamAware 实例自定义一个 id来标识每个实例。您可以将自定义 id 设置为班级名、教室编号等易于识别的名称。
除了自定义的 id 外ExamAware 还会生成一段唯一客户端 idCUID来标识每个实例。
<a id="url-template"></a>
## url 模板
在调用集控清单中的 url 时ExamAware 可以根据客户端的信息,将对应信息填入 url 模板中,实现为每个 ExamAware 实例分配特定的对象。
ExamAware 支持以下模板:
| 模板 | 说明 |
| -- | -- |
| `{id}` | 客户端的 ID |
| `{cuid}` | 客户端的唯一客户端 ID |
在发起请求时url 中的模板会直接被替换为对应信息,例如:
``` plaintext
https://example.com/client/{id}/policy.json -> https://example.com/client/TEST_ID/policy.json
https://example.com/client/{cuid}/policy.json -> https://example.com/client/9f5ab079-83c7-aeba-db2f-db39a0009845/policy.json
```

View File

@ -0,0 +1,87 @@
# 部署网页
## 前置条件
填写或者用工具生成 `exam_config.json` 文件,示例如下:
请参阅[编写配置文件](/app/profile/faq.md)。
## 使用Python部署
- 确保安装[Python](https://www.python.org/downloads/)。
- 从[仓库](https://github.com/ExamAware/ExamSchedule)下载最新版的项目代码
- 执行以下命令启动本地服务器:
```bash
python3 -m http.server 8000
```
- 打开浏览器,访问 `http://localhost:8000``http://IP:8000/`即可查看考试安排。
> [!tip]
> 8000端口可以自行修改成您需要的端口。
## 使用宝塔面板部署
- 确保安装[宝塔面板](https://www.bt.cn/new/download.html)
- 将域名解析A记录解析到您的服务器IP地址。
- 在宝塔面板中,点击 `网站` -> `HTML项目`-> `添加站点`
![bt-1](../images/bt01.png)
- 在 `域名` 中输入您的域名。
![bt2](../images/bt02.png)
- 在 `网站根目录` 中上传[仓库](https://github.com/ExamAware/ExamSchedule)中最新版的项目代码。
- 点击 `确定` 即可完成部署。
> [!tip]
>
>如果您没有域名,可以前往[购买域名](https://www.dynadot.com/?s59Ms8lK8u7gQ)。
>或者您也可以直接使用IP+端口直连访问。
>
## 使用GitHub Page部署
- 将项目代码fork到您的GitHub仓库。
- 在GitHub仓库中进入 `Settings` -> `Pages`
- 在 `Source` 部分选择 `main` 分支并保存。
![gh-pages](../images/gh01.png)
- GitHub Pages 将会自动部署项目稍后即可通过提供的URL访问。
> [!tip]
>
> 您可以在`Custom domain`部分填入您的自定义域名,并将您的自定义域名`CNAME`解析到`{owner}.github.io`
>
## 使用IIS部署
- 开启IIS功能
1.打开`设置`
![iis-1](../images/iis01.png)
2.输入`控制面板`
![iis-2](../images/iis02.png)
3.点开`程序`
![iis-3](../images/iis03.png)
4.点击`启用或关闭Windows功能`
5.勾选`Internet Information Services`并点击`确定`
6.点击`确定`,等待安装完成。
![iis-4](../images/iis04.png)
- 部署`ExamSchedule`服务
1.在任务栏的`搜索框`中输入`IIS`并点击`IIS管理器`进入管理页面。
![iis-5](../images/iis05.png)
2.在左侧导航栏中,选择`网站`右键点击`添加网站`
![iis-6](../images/iis06.jpg)
3.在此输入网站名称:`ExamSchedule`
- 物理路径:`C:\inetpub\wwwroot`
- IP地址可以是全部未分配也可以是网卡地址建议使用网卡地址这样校园局域网下就可以通过网卡地址访问
- 端口最好是默认的80端口一般网站访问网址也是默认访问80的不需要同时输入网址和端口可通过网址直接访问
- 主机名这里设置网址可以通过这个网址直接访问当端口不是80时需要网址加端口才能访问(当仅在局域网访问的情况下,主机名可以随意填写)
填写完成后,点击`确定`
![iis-7](../images/iis07.png)
4.点击右侧的`浏览`会跳转到网站的根目录
![iis-8](../images/iis08.png)
5.上传`ExamSchedule`项目代码到网站根目录。
![iis-9](../images/iis09.png)
6.最后,在浏览器中输入您的网卡地址(教程中的地址为`192.168.1.16`),看到如下图片即部署成功
![iis-10](../images/iis10.png)
> [!tip]
> 如果您希望在公网访问需要在域名提供商处添加A记录将域名解析到您的服务器IP地址并填写正确的主机名。
>
# 终极部署方案
都不会部署?或者……尝试终极解决方案:
邮箱联系 `admin@fhzit.top` ,如果我有空我可以为你的安装提供帮助,当然你也可以来和我交流问题😊

View File

@ -0,0 +1,31 @@
# 使用静态配置文件
## 开始使用
本功能支持通过静态配置文件部署,也可以通过管理服务器部署。您可以根据情况自由选择部署方式。
### 使用静态配置文件
您可以手动编写集控配置文件,并将其托管到静态网站上。
[集控文件编写教程](/app/profile/faq.md)
- 新建 GitHub 公开存储仓库
- 上传您编写好的的 `exam_config.json` 文件
- 复制 `Raw` 直链粘贴到应用`请求地址`文本框并保存
> [!tip]
>
> 由于 GitHub 的 `Raw` 直链可能会被墙,您可以使用以下方法解决:
>
> 可以在 `Raw 文件` 前加上镜像源,如
>
> ```txt
> https://github.moeyy.xyz/https://raw.githubusercontent.com/{owner}/{repo}/refs/heads/main/exam_config.json
> ```
- 点击`请求配置`加载配置文件并进入看板(下次可直接点击`直接进入看板`加载上次配置文件)
### 集控服务器
不支持,请使用其他版本客户端。

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

14
tsconfig.json Normal file
View File

@ -0,0 +1,14 @@
{
"compilerOptions": {
"module": "NodeNext",
"moduleResolution": "NodeNext",
"target": "ES2022"
},
"include": [
"src/.vuepress/**/*.ts",
"src/.vuepress/**/*.vue"
],
"exclude": [
"node_modules"
]
}