@houser/edus-plugin 1.0.8 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,7 +9,10 @@ export declare class EdusAuthService extends TypertRemoteService {
9
9
  private sessionCwd;
10
10
  private target;
11
11
  private policy;
12
+ private credentials;
12
13
  shareOrigin(): Promise<string>;
14
+ /** 客户端登录态变化时同步:有 token 就写入模型网关密钥,退出登录则删除。 */
15
+ setLlmToken(token: string): Promise<void>;
13
16
  login(phone: string, password: string): Promise<EdusLoginResult>;
14
17
  loginInfo(token: string): Promise<EdusLoginResult>;
15
18
  sendPhoneCode(phone: string, captcha: string): Promise<void>;
@@ -23,6 +23,7 @@ export interface EdusRemote {
23
23
  htmlVersionDetail(token: string, id: string): Promise<string>;
24
24
  applyVersion(token: string, sessionId: string, path: string, id: string): Promise<string>;
25
25
  htmlVersionDelete(token: string, id: string): Promise<void>;
26
+ setLlmToken(token: string): Promise<void>;
26
27
  }
27
28
  /** Session-local publication workbench. Deliberately uses srcDoc and never grants page scripts parent access. */
28
29
  export declare function HtmlWorkbench({ sessionId, remote }: {
@@ -0,0 +1,33 @@
1
+ import type { EdusLoginResult } from '../types.ts';
2
+ import { type EdusLoginRemote } from './EdusLoginPanel.tsx';
3
+ export declare const EdusLoginDialog: {
4
+ open(): void;
5
+ close(): void;
6
+ subscribe(listener: () => void): () => void;
7
+ getSnapshot: () => boolean;
8
+ };
9
+ export declare const EdusAccountDialog: {
10
+ open(): void;
11
+ close(): void;
12
+ subscribe(listener: () => void): () => void;
13
+ getSnapshot: () => boolean;
14
+ };
15
+ /** 全局登录弹窗:已登录时不渲染。对话、我的作品等所有需要登录的入口都打开它。 */
16
+ export declare function LoginDialogOverlay({ remote }: {
17
+ remote: EdusLoginRemote;
18
+ }): import("react").JSX.Element | null;
19
+ /** 输入框上方的未登录横幅。 */
20
+ export declare function LoginDockBanner(): import("react").JSX.Element | null;
21
+ /** 侧边栏底部的账号入口:未登录为登录按钮,已登录显示当前账号;收起为窄栏时只显示图标。 */
22
+ export declare function LoginFooterAction({ wide }: {
23
+ wide: boolean;
24
+ }): import("react").JSX.Element;
25
+ /** 账号信息弹窗只需要刷新登录信息这一个调用。 */
26
+ export interface EdusAccountRemote {
27
+ loginInfo(token: string): Promise<EdusLoginResult>;
28
+ }
29
+ /** 账号信息弹窗:打开时用 token 拉一次最新信息,展示会员与模型用量,并提供退出登录。 */
30
+ export declare function AccountDialogOverlay({ remote }: {
31
+ remote: EdusAccountRemote;
32
+ }): import("react").JSX.Element | null;
33
+ //# sourceMappingURL=LoginGuide.d.ts.map
@@ -0,0 +1,14 @@
1
+ /** 对话模型走课成模型网关:网关密钥即登录 token,未登录时在请求前拦下并提示登录。 */
2
+ import type { Context } from '@deepseek-ai/cordis';
3
+ /**
4
+ * 模型网关的密钥就是 ai-edu 登录 token。cordis.yml 里 llm-pi-ai 路由的 apiKeyEnv
5
+ * 指向这个引用,适配器每次请求都重新解析,所以写入或删除后下一次请求即生效。
6
+ */
7
+ export declare const LLM_TOKEN_REF: import("@deepseek-ai/dsh-credentials").CredentialRef;
8
+ /**
9
+ * 未登录时 pi-ai 只会报一条英文的 MISSING_CREDENTIAL,教会用户去设置页填密钥,
10
+ * 而这个入口已被屏蔽。这里在 llm/stream 瀑布上先查凭据,缺失就直接给出终止分片,
11
+ * 不触达适配器;已登录则原样放行。
12
+ */
13
+ export declare function applyLlmGateway(ctx: Context): void;
14
+ //# sourceMappingURL=llm-gateway.d.ts.map
@@ -7,6 +7,20 @@ export interface EdusLoginResult {
7
7
  readonly isVip: boolean;
8
8
  readonly title: string;
9
9
  readonly vipLevel: number;
10
+ /** VIP 版本名称,如「标准版」,未开通为空串。 */
11
+ readonly vipLevelName?: string;
12
+ /** VIP 月消费上限(元),0 表示无上限或未开通。 */
13
+ readonly vipMonthLimit?: number;
14
+ /** VIP 到期时间(ISO 字符串)。 */
15
+ readonly vipEndTime?: string | null;
16
+ /** 模型 key 状态:1 可用,其它值停用,null 表示未开通。 */
17
+ readonly llmStatus?: number | null;
18
+ /** 累计消费(元),decimal 字符串。 */
19
+ readonly llmTotalCost?: string;
20
+ /** 本月消费(元),decimal 字符串。 */
21
+ readonly llmMonthCost?: string;
22
+ /** 最近一次模型调用时间(ISO 字符串)。 */
23
+ readonly llmLastUsedAt?: string | null;
10
24
  }
11
25
  export interface EdusPublishResult {
12
26
  readonly id: string;
@@ -1,4 +1,12 @@
1
1
  import type { Context } from '@deepseek-ai/cordis';
2
+ declare module '@deepseek-ai/dsh-llm' {
3
+ interface MessageSourceMap {
4
+ 'edus-plugin': {
5
+ kind: 'edus-plugin';
6
+ form: 'instructions';
7
+ };
8
+ }
9
+ }
2
10
  /** Register the user-facing slash command without making webpage rules optional. */
3
11
  export declare function applyWebpageCommand(ctx: Context): void;
4
12
  //# sourceMappingURL=webpage-command.d.ts.map
@@ -1,2 +1,2 @@
1
- export declare const WEBPAGE_INSTRUCTION = "# \u7F51\u9875\u751F\u6210\u89C4\u5219\n\n\u5F53\u7528\u6237\u8981\u6C42\u521B\u5EFA\u6216\u4FEE\u6539\u7F51\u9875\u65F6\uFF0C\u5FC5\u987B\u9075\u5B88\u4EE5\u4E0B\u89C4\u5219\u3002\n\n## \u4F7F\u7528\u573A\u666F\n\n\u751F\u6210\u7684\u7F51\u9875\u7528\u4E8E\u8BFE\u5802\u6559\u5B66\uFF0C\u901A\u5E38\u7531\u8001\u5E08\u5728\u6559\u5BA4\u91CC\u901A\u8FC7\u6295\u5F71\u4EEA\u6216\u5927\u5C4F\u6295\u5C4F\u5C55\u793A\uFF0C\u540E\u6392\u5B66\u751F\u8DDD\u79BB\u5C4F\u5E55 5-10 \u7C73\uFF0C\u6559\u5BA4\u73AF\u5883\u5149\u8F83\u4EAE\u3001\u6295\u5F71\u5BF9\u6BD4\u5EA6\u504F\u4F4E\u3002\n\n\u56E0\u6B64\uFF1A**\u770B\u5F97\u6E05** \u6BD4 **\u597D\u770B** \u91CD\u8981\uFF0C**\u4FE1\u606F\u5C11\u800C\u5927** \u6BD4 **\u6392\u5F97\u6EE1** \u91CD\u8981\u3002\u6240\u6709\u6392\u7248\u51B3\u7B56\u90FD\u8981\u4EE5\u300C\u6700\u540E\u4E00\u6392\u5B66\u751F\u80FD\u5426\u770B\u6E05\u300D\u4E3A\u51C6\u3002\n\n## \u5F00\u5DE5\u524D\u7684\u786E\u8BA4\n\n\u9700\u6C42\u4E0D\u591F\u5177\u4F53\u65F6\uFF0C\u5148\u8C03\u7528 `ask_user_question` \u4E00\u6B21\u6027\u95EE\u6E05\u695A\uFF0C\u518D\u52A8\u624B\u5199\u9875\u9762\u3002\u4E0D\u8981\u51ED\u7A7A\u5047\u8BBE\uFF0C\u4E5F\u4E0D\u8981\u8FB9\u5199\u8FB9\u95EE\u3002\n\n- \u4F55\u65F6\u95EE\uFF1A\u7528\u6237\u53EA\u7ED9\u4E86\u4E00\u4E2A\u5BBD\u6CDB\u4E3B\u9898\uFF08\u5982\u300C\u8BB2\u4E00\u4E0B\u5149\u5408\u4F5C\u7528\u300D\u300C\u505A\u4E2A\u4E8C\u6B21\u51FD\u6570\u7684\u7F51\u9875\u300D\uFF09\uFF0C\u7F3A\u5C11\u5B66\u6BB5\u3001\u8BFE\u578B\u6216\u8BB2\u89E3\u91CD\u70B9\u7B49\u5173\u952E\u4FE1\u606F\u65F6\u624D\u95EE\u3002\n- \u4F55\u65F6\u4E0D\u95EE\uFF1A\u9700\u6C42\u5DF2\u7ECF\u63CF\u8FF0\u6E05\u695A\u3001\u6216\u7528\u6237\u662F\u5728\u4FEE\u6539\u5DF2\u6709\u7F51\u9875\uFF0C\u76F4\u63A5\u5F00\u5DE5\uFF0C\u4E0D\u8981\u63D0\u95EE\u3002\n- \u4E00\u6B21\u6700\u591A\u95EE 3 \u4E2A\u95EE\u9898\uFF0C\u5E76\u5728\u540C\u4E00\u6B21 `ask_user_question` \u8C03\u7528\u91CC\u95EE\u5B8C\uFF0C\u4E0D\u8981\u5206\u591A\u8F6E\u6253\u65AD\u8001\u5E08\u3002\n- \u6BCF\u4E2A\u95EE\u9898\u7ED9 2-4 \u4E2A\u5177\u4F53\u9009\u9879\uFF1A\u6700\u53EF\u80FD\u7684\u653E\u7B2C\u4E00\u4E2A\u5E76\u5728\u6807\u7B7E\u672B\u5C3E\u52A0\u300C\uFF08\u63A8\u8350\uFF09\u300D\uFF0C\u6BCF\u4E2A\u9009\u9879\u914D\u4E00\u53E5\u8BDD\u8BF4\u660E\u533A\u522B\u3002`header` \u7528\u300C\u5B66\u6BB5\u300D\u300C\u8BFE\u578B\u300D\u8FD9\u7C7B\u7B80\u77ED\u4E2D\u6587\u8BCD\u3002\n- \u95EE\u6559\u5B66\u95EE\u9898\uFF0C\u7528\u8001\u5E08\u7684\u8BED\u8A00\u3002\u53EF\u4EE5\u95EE\uFF1A\u9762\u5411\u54EA\u4E2A\u5B66\u6BB5\u5E74\u7EA7\u3001\u8FD9\u9875\u7528\u4E8E\u65B0\u8BFE\u8BB2\u89E3\u8FD8\u662F\u590D\u4E60\u5DE9\u56FA\u3001\u91CD\u70B9\u8BB2\u54EA\u4E2A\u73AF\u8282\u3001\u8981\u4E0D\u8981\u914D\u7EC3\u4E60\u9898\u3002\n- \u4E0D\u8981\u95EE\u6280\u672F\u95EE\u9898\uFF1A\u914D\u8272\u3001\u5B57\u4F53\u3001\u52A8\u753B\u5B9E\u73B0\u65B9\u5F0F\u3001\u662F\u5426\u5F15\u5165\u516C\u5F0F\u5E93\u7B49\u4E00\u5F8B\u6309\u672C\u89C4\u5219\u81EA\u884C\u51B3\u5B9A\uFF0C\u4E0D\u8BB8\u62FF\u6765\u95EE\u7528\u6237\u3002\n- \u62FF\u5230\u56DE\u7B54\u540E\u76F4\u63A5\u6309\u56DE\u7B54\u751F\u6210\uFF0C\u4E0D\u8981\u518D\u786E\u8BA4\u4E00\u904D\u3002\u7528\u6237\u8DF3\u8FC7\u95EE\u9898\u65F6\uFF0C\u6309\u6700\u5E38\u89C1\u7684\u8BFE\u5802\u60C5\u51B5\u53D6\u9ED8\u8BA4\u503C\u7EE7\u7EED\u505A\uFF0C\u4E0D\u8981\u8FFD\u95EE\u3002\n\n## \u6392\u7248\u4E0E\u5B57\u4F53\n\n- \u6B63\u6587\u5B57\u53F7\u4E0D\u5C0F\u4E8E `22px`\uFF0C\u63A8\u8350 `24-28px`\uFF1B\u56FE\u6CE8\u3001\u6807\u7B7E\u3001\u8868\u683C\u7B49\u6B21\u8981\u6587\u5B57\u4E0D\u5C0F\u4E8E `18px`\uFF0C\u4E0D\u5F97\u51FA\u73B0\u5C0F\u4E8E `16px` \u7684\u4EFB\u4F55\u6587\u5B57\u3002\n- \u6807\u9898\u8981\u6709\u660E\u663E\u5C42\u7EA7\u5DEE\uFF1A\u4E3B\u6807\u9898 `48-64px`\uFF0C\u7AE0\u8282\u6807\u9898 `36-44px`\uFF0C\u5C0F\u8282\u6807\u9898 `28-32px`\u3002\n- \u5B57\u91CD\u8981\u8DB3\uFF1A\u6B63\u6587\u7528 `500`\uFF0C\u6807\u9898\u7528 `700` \u53CA\u4EE5\u4E0A\u3002\u7981\u6B62\u4F7F\u7528 `100/200/300` \u7B49\u7EC6\u5B57\u91CD\uFF0C\u7981\u6B62\u7ED9\u4E2D\u6587\u8BBE `font-weight: 300` \u6216 `lighter`\u3002\n- \u5B57\u4F53\u4F18\u5148\u7CFB\u7EDF\u4E2D\u6587\u9ED1\u4F53\u6808\uFF0C\u4F8B\u5982 `font-family: \"PingFang SC\", \"Microsoft YaHei\", \"Source Han Sans SC\", sans-serif`\uFF1B\u4E0D\u8981\u4F7F\u7528\u7EC6\u4F53\u3001\u886C\u7EBF\u4F53\u6216\u624B\u5199\u4F53\u505A\u6B63\u6587\u3002\n- \u884C\u9AD8 `1.7-1.9`\uFF0C\u6BB5\u843D\u4E4B\u95F4\u7559\u8DB3\u7A7A\u767D\uFF1B\u6B63\u6587\u5BB9\u5668\u5BBD\u5EA6\u63A7\u5236\u5728 `1100-1300px` \u5C45\u4E2D\uFF0C\u4E00\u884C\u4E0D\u8981\u592A\u957F\u3002\n- \u4EA4\u4E92\u63A7\u4EF6\uFF08\u6309\u94AE\u3001\u6ED1\u5757\u3001\u8F93\u5165\u6846\uFF09\u8981\u5927\uFF1A\u6309\u94AE\u9AD8\u5EA6\u4E0D\u5C0F\u4E8E `48px`\uFF0C\u6587\u5B57\u4E0D\u5C0F\u4E8E `20px`\uFF0C\u4FBF\u4E8E\u8001\u5E08\u5728\u8BB2\u53F0\u4E0A\u5FEB\u901F\u70B9\u51FB\u3002\n- \u516C\u5F0F\u3001\u4EE3\u7801\u3001\u56FE\u8868\u6807\u6CE8\u540C\u6837\u8981\u653E\u5927\uFF0C\u4E0D\u8981\u6CBF\u7528\u9ED8\u8BA4\u5C0F\u5B57\u53F7\u3002\n- \u6309 1920\u00D71080 \u6295\u5C4F\u6BD4\u4F8B\u8BBE\u8BA1\uFF1B\u9996\u5C4F\u81F3\u5C11\u8981\u80FD\u5B8C\u6574\u770B\u6E05\u6807\u9898\u548C\u672C\u9875\u8981\u8BB2\u7684\u95EE\u9898\u3002\u9875\u9762\u53EF\u4EE5\u6EDA\u52A8\uFF0C\u4F46\u4E0D\u8981\u628A\u5173\u952E\u5185\u5BB9\u585E\u8FDB\u9700\u8981\u772F\u773C\u770B\u7684\u89D2\u843D\u3002\n\n## \u914D\u8272\n\n\u8BFE\u5802\u7F51\u9875\u8981\u6709\u9C9C\u660E\u7684\u89C6\u89C9\u4E3B\u9898\uFF0C**\u4E0D\u8981\u505A\u6210\u9ED1\u767D\u7070\u7684\u7EAF\u6587\u6863**\u3002\u914D\u8272\u7684\u76EE\u6807\u662F\u5E2E\u52A9\u5B66\u751F\u5FEB\u901F\u533A\u5206\u5185\u5BB9\u7ED3\u6784\uFF0C\u4E0D\u662F\u4E3A\u4E86\u514B\u5236\u3002\n\n- \u5148\u5B9A\u4E00\u5957\u914D\u8272\u518D\u5199\u9875\u9762\uFF1A1 \u4E2A\u4E3B\u8272 + 1 \u4E2A\u8F85\u52A9\u8272 + 1-2 \u4E2A\u5F3A\u8C03\u8272\uFF0C\u518D\u914D\u4E2D\u6027\u5E95\u8272\uFF08\u6D45\u7C73\u3001\u6D45\u7070\u84DD\u7B49\uFF0C\u4E0D\u5FC5\u662F\u7EAF\u767D\uFF09\u3002\u53EF\u53C2\u8003\u300C\u6DF1\u84DD + \u6A59\u300D\u300C\u58A8\u7EFF + \u6696\u9EC4\u300D\u300C\u6DF1\u7D2B + \u9752\u300D\u8FD9\u7C7B\u6709\u660E\u786E\u51B7\u6696\u5BF9\u6BD4\u7684\u7EC4\u5408\uFF0C\u907F\u514D\u6574\u9875\u540C\u4E00\u8272\u76F8\u7684\u6D45\u8272\u5806\u53E0\u3002\n- \u989C\u8272\u7528\u5728\u5927\u9762\u79EF\u5143\u7D20\u4E0A\uFF1A\u5206\u533A\u80CC\u666F\u3001\u6807\u9898\u6761\u3001\u5361\u7247\u3001\u56FE\u793A\u3001\u8868\u5934\u3001\u8FB9\u6846\u3001\u56FE\u6807\u3001\u8FDB\u5EA6\u6761\u3001\u91CD\u70B9\u5E95\u7EB9\u3002\u6B63\u6587\u6587\u5B57\u672C\u8EAB\u4FDD\u6301\u6DF1\u8272\u9AD8\u5BF9\u6BD4\uFF0C\u4E0D\u8981\u9760\u7ED9\u6587\u5B57\u4E0A\u8272\u6765\u505A\u89C6\u89C9\u6548\u679C\u3002\n- \u7528\u989C\u8272\u8868\u8FBE\u7ED3\u6784\uFF1A\u4E0D\u540C\u7AE0\u8282\u53EF\u7528\u4E0D\u540C\u4E3B\u9898\u8272\uFF1B\u5B9A\u4E49\u3001\u4F8B\u9898\u3001\u91CD\u70B9\u3001\u6613\u9519\u70B9\u3001\u5C0F\u7ED3\u7528\u4E0D\u540C\u989C\u8272\u7684\u5361\u7247\u533A\u5206\uFF0C\u8BA9\u5B66\u751F\u4E00\u773C\u770B\u51FA\u300C\u8FD9\u662F\u54EA\u4E00\u7C7B\u5185\u5BB9\u300D\u3002\n- \u5141\u8BB8\u6E10\u53D8\u3001\u8272\u5757\u3001\u5706\u89D2\u5361\u7247\u3001\u9634\u5F71\u3001\u5927\u53F7\u56FE\u6807\u548C\u793A\u610F\u56FE\uFF0C\u53EA\u8981\u4E0D\u538B\u4F4E\u6587\u5B57\u6E05\u6670\u5EA6\u3002\n- \u6295\u5F71\u4F1A\u8BA9\u989C\u8272\u6574\u4F53\u53D8\u6D45\u3001\u5BF9\u6BD4\u5EA6\u4E0B\u964D\uFF0C\u6240\u4EE5\u914D\u8272\u8981\u591F\u9971\u548C\uFF1A\u907F\u514D\u5927\u9762\u79EF\u6D45\u7C89\u3001\u6D45\u9EC4\u3001\u6D45\u7070\u84DD\u8FD9\u7C7B\u6295\u5728\u5899\u4E0A\u51E0\u4E4E\u5206\u4E0D\u51FA\u5C42\u6B21\u7684\u989C\u8272\uFF0C\u4E5F\u907F\u514D\u76F8\u90BB\u533A\u5757\u989C\u8272\u8FC7\u4E8E\u63A5\u8FD1\u3002\n- \u6587\u5B57\u5BF9\u6BD4\u5EA6\u5E95\u7EBF\uFF1A\u6D45\u5E95\u6DF1\u5B57\u65F6\u6B63\u6587\u4E0D\u6D45\u4E8E `#222`\u3001\u6B21\u8981\u6587\u5B57\u4E0D\u6D45\u4E8E `#555`\uFF1B\u6DF1\u5E95\u6D45\u5B57\u65F6\u6B63\u6587\u4E0D\u6DF1\u4E8E `#EEE`\u3002\u5F69\u8272\u5E95\u4E0A\u653E\u6587\u5B57\u65F6\uFF0C\u7528\u6DF1\u8272\u5E95\u914D\u767D\u5B57\u6216\u5F88\u6D45\u7684\u5E95\u914D\u6DF1\u8272\u5B57\uFF0C\u4E0D\u8981\u4E2D\u7B49\u660E\u5EA6\u5E95\u914D\u4E2D\u7B49\u660E\u5EA6\u5B57\u3002\u7981\u6B62 `#999` \u53CA\u66F4\u6D45\u7684\u989C\u8272\u627F\u8F7D\u6B63\u6587\uFF0C\u7981\u6B62\u534A\u900F\u660E\u6587\u5B57\uFF0C\u7981\u6B62\u5F69\u8272\u7EC6\u5B57\u91CD\u5C0F\u5B57\u3002\n\n## \u52A8\u753B\u4E0E\u6F14\u793A\n\n\u8BFE\u5802\u7F51\u9875\u76F8\u6BD4\u8BFE\u4EF6\u7684\u6700\u5927\u4EF7\u503C\uFF0C\u662F**\u628A\u62BD\u8C61\u8FC7\u7A0B\u53D8\u6210\u770B\u5F97\u89C1\u7684\u52A8\u6001\u8FC7\u7A0B**\u3002\u4E0D\u8981\u53EA\u505A\u9759\u6001\u56FE\u6587\uFF0C\u6BCF\u9875\u81F3\u5C11\u7ED9\u6838\u5FC3\u77E5\u8BC6\u70B9\u914D\u4E00\u4E2A\u80FD\u770B\u5230\u300C\u8FC7\u7A0B\u300D\u7684\u52A8\u753B\u3002\n\n- \u4F18\u5148\u505A\u8BB2\u5F97\u6E05\u77E5\u8BC6\u70B9\u7684\u52A8\u753B\uFF1A\u53D7\u529B\u7BAD\u5934\u968F\u6761\u4EF6\u53D8\u5316\u3001\u51FD\u6570\u56FE\u50CF\u968F\u53C2\u6570\u79FB\u52A8\u3001\u5206\u5B50\u91CD\u7EC4\u4E0E\u53CD\u5E94\u8FC7\u7A0B\u3001\u51E0\u4F55\u56FE\u5F62\u7684\u5E73\u79FB\u65CB\u8F6C\u7FFB\u6298\u3001\u5149\u8DEF\u4E0E\u6CE2\u5F62\u3001\u6570\u636E\u6216\u7535\u6D41\u7684\u6D41\u52A8\u3001\u516C\u5F0F\u5206\u6B65\u63A8\u5BFC\u9010\u6B65\u9AD8\u4EAE\u3002\n- \u5B9E\u73B0\u65B9\u5F0F\u4F18\u5148 CSS `transition`/`animation` \u4E0E SVG \u52A8\u753B\uFF08`stroke-dasharray` \u753B\u7EBF\u3001`transform` \u53D8\u6362\uFF09\uFF0C\u590D\u6742\u8FDE\u7EED\u8FD0\u52A8\u518D\u7528 `requestAnimationFrame` \u9A71\u52A8 `<canvas>`\u3002\n- **\u8001\u5E08\u8981\u80FD\u63A7\u5236\u8282\u594F**\uFF1A\u5173\u952E\u6F14\u793A\u5FC5\u987B\u914D\u300C\u64AD\u653E / \u6682\u505C / \u5355\u6B65 / \u91CD\u64AD\u300D\u6309\u94AE\uFF0C\u4E0D\u80FD\u53EA\u81EA\u52A8\u64AD\u4E00\u904D\u5C31\u7ED3\u675F\u2014\u2014\u8001\u5E08\u9700\u8981\u8FB9\u8BB2\u8FB9\u505C\u3001\u53CD\u590D\u6F14\u793A\u3002\n- \u5206\u6B65\u63A8\u5BFC\u3001\u89E3\u9898\u8FC7\u7A0B\u3001\u5B9E\u9A8C\u6B65\u9AA4\u7528\u300C\u4E0B\u4E00\u6B65\u300D\u6309\u94AE\u9010\u6B65\u5C55\u5F00\uFF0C\u5E76\u9AD8\u4EAE\u5F53\u524D\u6B65\u9AA4\uFF0C\u4E0D\u8981\u4E00\u6B21\u6027\u94FA\u6EE1\u6574\u5C4F\u3002\n- \u52A8\u753B\u8282\u594F\u8981\u6162\uFF1A\u8FC7\u6E21\u65F6\u957F `400-800ms`\uFF0C\u5173\u952E\u6B65\u9AA4\u4E4B\u95F4\u505C\u987F 1 \u79D2\u4EE5\u4E0A\uFF0C\u8BA9\u540E\u6392\u5B66\u751F\u8DDF\u5F97\u4E0A\uFF1B\u4E0D\u8981\u7528 `150ms` \u7684\u5FEB\u95EA\u3002\n- \u52A8\u753B\u5143\u7D20\u8981\u5927\uFF1A\u793A\u610F\u56FE\u5C3A\u5BF8\u8DB3\u591F\u5360\u636E\u7248\u9762\uFF0C\u7EBF\u6761\u548C\u7BAD\u5934\u4E0D\u7EC6\u4E8E `3px`\uFF0C\u8FD0\u52A8\u5E45\u5EA6\u660E\u663E\uFF0C\u5173\u952E\u90E8\u4F4D\u914D\u5927\u53F7\u6587\u5B57\u6807\u6CE8\u3002\n- \u53EF\u4EE5\u7528 `IntersectionObserver` \u505A\u6EDA\u52A8\u5165\u573A\u52A8\u753B\uFF0C\u4F46\u5FC5\u987B\u4FDD\u8BC1 JS \u5931\u6548\u65F6\u5185\u5BB9\u4ECD\u7136\u53EF\u89C1\uFF0C\u4E0D\u8981\u8BA9\u5143\u7D20\u6C38\u4E45\u505C\u5728\u900F\u660E\u72B6\u6001\u3002\n- **\u7981\u6B62\u7EAF\u88C5\u9970\u6027\u52A8\u753B**\uFF1A\u7C92\u5B50\u80CC\u666F\u3001\u6D6E\u52A8\u5149\u6591\u3001\u5FAA\u73AF\u95EA\u70C1\u3001\u6253\u5B57\u673A\u6548\u679C\u3001\u8DD1\u9A6C\u706F\u3001\u65E0\u610F\u4E49\u7684\u60AC\u6D6E\u7F29\u653E\u3002\u8BFE\u5802\u4E0A\u8FD9\u4E9B\u53EA\u4F1A\u5206\u6563\u6CE8\u610F\u529B\u3002\u52A8\u753B\u5FC5\u987B\u670D\u52A1\u4E8E\u8BB2\u6E05\u695A\u67D0\u4E2A\u77E5\u8BC6\u70B9\u3002\n- \u6CE8\u610F\u4E0E\u300C\u9ED8\u8BA4\u89C4\u6A21\u300D\u7684\u533A\u522B\uFF1A\u81EA\u52A8\u64AD\u653E\u7684\u52A8\u753B\u3001\u8FC7\u6E21\u6548\u679C\u3001\u5206\u6B65\u9AD8\u4EAE\u4E0D\u8BA1\u5165\u4EA4\u4E92\u6F14\u793A\u6570\u91CF\u9650\u5236\uFF0C\u53EF\u4EE5\u653E\u5FC3\u591A\u7528\uFF1B\u53D7\u9650\u5236\u7684\u662F\u9700\u8981\u5B66\u751F\u81EA\u5DF1\u8C03\u53C2\u64CD\u4F5C\u7684\u590D\u6742\u4EA4\u4E92\u7EC4\u4EF6\u3002\n\n## \u516C\u5F0F\u4E0E\u7B26\u53F7\n\n\u9875\u9762\u6D89\u53CA\u6570\u5B66\u3001\u7269\u7406\u3001\u5316\u5B66\u65F6\uFF0C\u5FC5\u987B\u4FDD\u8BC1\u7B26\u53F7\u80FD\u6B63\u786E\u6E32\u67D3\uFF0C\u4E0D\u80FD\u51FA\u73B0\u4E71\u7801\u3001\u9519\u4F4D\u6216\u88AB\u5F53\u6210\u666E\u901A\u6587\u672C\u7684 `\\frac`\u3002\n\n- `<head>` \u91CC\u5FC5\u987B\u6709 `<meta charset=\"utf-8\">`\u3002\n- **\u7B80\u5355\u7B26\u53F7\u76F4\u63A5\u7528 Unicode \u548C HTML \u6807\u7B7E**\uFF0C\u4E0D\u8981\u4E3A\u4E00\u4E2A\u4E0B\u6807\u5F15\u5165\u6574\u4E2A\u516C\u5F0F\u5F15\u64CE\uFF1A\u4E0A\u4E0B\u6807\u7528 `<sub>`/`<sup>`\uFF08H<sub>2</sub>O\u3001v<sup>2</sup>\uFF09\uFF0C\u5E0C\u814A\u5B57\u6BCD\u3001`\u00D7 \u00F7 \u00B1 \u2248 \u2260 \u2264 \u2265 \u2208 \u221A \u2211 \u222B \u00B0 \u2103 \u21CC \u2192` \u7B49\u76F4\u63A5\u5199\u5B57\u7B26\u3002\n- **\u6D89\u53CA\u5206\u5F0F\u3001\u6839\u5F0F\u3001\u77E9\u9635\u3001\u6781\u9650\u3001\u79EF\u5206\u3001\u5316\u5B66\u65B9\u7A0B\u5F0F\u914D\u5E73\u7B49\u590D\u6742\u6392\u7248\u65F6\uFF0C\u5F15\u5165 MathJax 3\uFF08CDN\uFF09**\uFF0C\u5E76\u540C\u65F6\u5F00\u542F mhchem \u4EE5\u652F\u6301\u5316\u5B66\u5F0F\uFF1A\n\n```html\n<script>\n window.MathJax = {\n loader: { load: ['[tex]/mhchem'] },\n tex: {\n packages: { '[+]': ['mhchem'] },\n inlineMath: [['$', '$'], ['\\\\(', '\\\\)']],\n displayMath: [['$$', '$$'], ['\\\\[', '\\\\]']],\n },\n options: { skipHtmlTags: ['script', 'style', 'textarea', 'pre'] },\n }\n</script>\n<script defer src=\"https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js\"></script>\n```\n\n- MathJax \u9ED8\u8BA4\u4E0D\u89E3\u6790 `$...$` \u884C\u5185\u516C\u5F0F\uFF0C\u52A1\u5FC5\u6309\u4E0A\u9762\u7684\u914D\u7F6E\u663E\u5F0F\u58F0\u660E `inlineMath`\uFF0C\u5426\u5219\u516C\u5F0F\u4F1A\u539F\u6837\u663E\u793A\u6210\u6E90\u7801\u3002\n- \u5316\u5B66\u5F0F\u7528 mhchem \u8BED\u6CD5\u5199\u5728\u516C\u5F0F\u91CC\uFF0C\u4F8B\u5982 `$\\ce{2H2 + O2 -> 2H2O}$`\u3001`$\\ce{CH3COOH <=> CH3COO- + H+}$`\u3002\n- \u516C\u5F0F\u5B57\u53F7\u8DDF\u968F\u6240\u5728\u5BB9\u5668\uFF0C\u4E0D\u8981\u5355\u72EC\u7ED9\u516C\u5F0F\u5BB9\u5668\u8BBE\u5C0F\u5B57\u53F7\uFF1B\u72EC\u7ACB\u5C55\u793A\u7684\u516C\u5F0F\u5EFA\u8BAE `font-size: 1.2em` \u5E76\u4E0A\u4E0B\u7559\u767D\uFF0C\u6295\u5C4F\u65F6\u66F4\u6E05\u695A\u3002\n- \u516C\u5F0F\u4E00\u5F8B\u7528\u6587\u672C\u6E32\u67D3\uFF0C\u7981\u6B62\u7528\u516C\u5F0F\u56FE\u7247\u3001\u622A\u56FE\u6216 `data:` URI \u7684\u56FE\u7247\u4EE3\u66FF\u3002\n- \u7528 JS \u52A8\u6001\u63D2\u5165\u542B\u516C\u5F0F\u7684\u5185\u5BB9\u540E\uFF0C\u9700\u8981\u8C03\u7528 `MathJax.typesetPromise()` \u91CD\u65B0\u6392\u7248\u3002\n\n## \u7EC3\u4E60\u9898\u4E0E\u7B54\u6848\n\n\u7528\u6237\u8981\u6C42\u505A\u7EC3\u4E60\u9898\u65F6\uFF08\u9ED8\u8BA4\u4E0D\u4E3B\u52A8\u52A0\u9898\u76EE\uFF09\uFF0C\u5FC5\u987B\u9075\u5B88\uFF1A\n\n- **\u7B54\u6848\u548C\u89E3\u6790\u9ED8\u8BA4\u9690\u85CF**\uFF0C\u5B66\u751F\u70B9\u51FB\u300C\u67E5\u770B\u7B54\u6848\u300D\u6309\u94AE\u540E\u624D\u5C55\u5F00\u3002\u7EDD\u4E0D\u80FD\u628A\u7B54\u6848\u76F4\u63A5\u5370\u5728\u9898\u76EE\u4E0B\u65B9\u3002\u539F\u56E0\uFF1A\u8001\u5E08\u8981\u5148\u7559\u65F6\u95F4\u8BA9\u5B66\u751F\u601D\u8003\u548C\u4F5C\u7B54\uFF0C\u518D\u5F53\u5802\u516C\u5E03\u7B54\u6848\u3002\n- \u6BCF\u9053\u9898\u7684\u7B54\u6848\u72EC\u7ACB\u5C55\u5F00\u6536\u8D77\uFF0C\u4E92\u4E0D\u5F71\u54CD\uFF1B\u9898\u76EE\u8F83\u591A\u65F6\u53EF\u4EE5\u989D\u5916\u63D0\u4F9B\u4E00\u4E2A\u300C\u5C55\u5F00\u5168\u90E8 / \u6536\u8D77\u5168\u90E8\u300D\u7684\u603B\u63A7\u6309\u94AE\u3002\n- \u9009\u62E9\u9898\u53EF\u4EE5\u505A\u6210\u70B9\u51FB\u9009\u9879\u7ACB\u523B\u53CD\u9988\u5BF9\u9519\uFF0C\u4F46\u5B8C\u6574\u7B54\u6848\u4E0E\u89E3\u6790\u4ECD\u7136\u8981\u70B9\u51FB\u540E\u624D\u663E\u793A\u3002\n- \u7528 `<details>/<summary>` \u6216 JS \u5207\u6362\u7C7B\u540D\u90FD\u53EF\u4EE5\uFF1B\u7528 `<details>` \u65F6\u5FC5\u987B\u91CD\u5199 `summary` \u6837\u5F0F\uFF0C\u505A\u6210\u660E\u663E\u7684\u5927\u6309\u94AE\uFF0C\u4E0D\u8981\u4FDD\u7559\u6D4F\u89C8\u5668\u9ED8\u8BA4\u7684\u5C0F\u4E09\u89D2\u7EC6\u5B57\u6837\u5F0F\u3002\n- \u5C55\u5F00\u6309\u94AE\u540C\u6837\u9075\u5B88\u63A7\u4EF6\u5C3A\u5BF8\u8981\u6C42\uFF1A\u9AD8\u5EA6\u4E0D\u5C0F\u4E8E `48px`\uFF0C\u6587\u5B57\u4E0D\u5C0F\u4E8E `20px`\uFF0C\u6309\u94AE\u4E0A\u5199\u660E\u300C\u67E5\u770B\u7B54\u6848\u300D\u300C\u6536\u8D77\u7B54\u6848\u300D\u3002\n- \u7B54\u6848\u533A\u5C55\u5F00\u540E\u8981\u4E0E\u9898\u5E72\u6709\u660E\u663E\u89C6\u89C9\u533A\u5206\uFF08\u4E0D\u540C\u5E95\u8272\u7684\u5361\u7247\u3001\u5DE6\u4FA7\u8272\u6761\uFF09\uFF0C\u5C55\u5F00\u8FC7\u7A0B\u52A0\u4E00\u4E2A\u77ED\u8FC7\u6E21\u52A8\u753B\u3002\n- \u89E3\u6790\u8981\u5199\u6E05\u601D\u8DEF\uFF0C\u4E0D\u8981\u53EA\u7ED9\u4E00\u4E2A\u6700\u7EC8\u7ED3\u679C\u3002\n\n## \u6587\u6848\u8981\u6C42\n\n- \u9875\u9762\u4E0A\u51FA\u73B0\u7684\u6BCF\u4E00\u4E2A\u5B57\u90FD\u5FC5\u987B\u662F\u7ED9\u5B66\u751F\u770B\u7684\u6559\u5B66\u5185\u5BB9\u6216\u5FC5\u8981\u7684\u5BFC\u822A\u6587\u5B57\uFF0C\u4E00\u5F8B\u4F7F\u7528\u7B80\u4F53\u4E2D\u6587\u3002\n- **\u7981\u6B62\u4EFB\u4F55\u82F1\u6587\u88C5\u9970\u6587\u6848**\uFF1A\u4E0D\u8981\u82F1\u6587\u526F\u6807\u9898\u3001\u4E0D\u8981\u5927\u5199\u82F1\u6587\u680F\u76EE\u540D\uFF08\u5982 `PART 01`\u3001`KNOWLEDGE POINT`\u3001`EXPLORE`\u3001`Let's Go`\uFF09\u3001\u4E0D\u8981\u82F1\u6587 slogan\u3001\u4E0D\u8981\u80CC\u666F\u5927\u5B57\u6C34\u5370\u3001\u4E0D\u8981 Lorem Ipsum\u3002\u7AE0\u8282\u5E8F\u53F7\u7528\u300C\u4E00\u3001\u4E8C\u3001\u4E09\u300D\u6216\u300C\u7B2C 1 \u8282\u300D\u7B49\u4E2D\u6587\u5199\u6CD5\u3002\n- \u5B66\u79D1\u5185\u5BB9\u672C\u8EAB\u9700\u8981\u7684\u82F1\u6587\u9664\u5916\uFF1A\u82F1\u8BED\u6559\u5B66\u5185\u5BB9\u3001\u4E13\u4E1A\u672F\u8BED\u539F\u6587\u3001\u5316\u5B66\u5F0F\u3001\u4EE3\u7801\u3001\u56FD\u9645\u5355\u4F4D\u7B26\u53F7\u3001\u4EBA\u540D\u5730\u540D\u539F\u6587\u3002\n- \u4E0D\u5199\u4E0E\u6559\u5B66\u65E0\u5173\u7684\u51D1\u6570\u6587\u5B57\uFF1A\u4F5C\u8005\u7F72\u540D\u3001\u7248\u6743\u884C\u3001\u300C\u7531 AI \u751F\u6210\u300D\u3001\u5BFC\u822A\u83DC\u5355\u3001\u9875\u811A\u94FE\u63A5\u7B49\u4E00\u5F8B\u4E0D\u8981\u3002\n- \u8868\u8FF0\u7528\u8BFE\u5802\u8BED\u8A00\uFF0C\u76F4\u63A5\u8BB2\u77E5\u8BC6\u70B9\uFF0C\u4E0D\u8981\u8425\u9500\u8154\u548C\u7A7A\u6D1E\u5F62\u5BB9\u8BCD\u3002\n\n## \u4EA7\u51FA\u5F62\u5F0F\n\n- \u5355\u4E2A\u81EA\u5305\u542B\u7684 `.html` \u6587\u4EF6\uFF0C\u4FDD\u5B58\u5230\u5F53\u524D\u5DE5\u4F5C\u533A\u3002\n- CSS \u5199\u5728 `<style>` \u4E2D\uFF0CJavaScript \u5199\u5728 `<script>` \u4E2D\uFF0C\u4E0D\u62C6\u5206\u6210\u591A\u4E2A\u672C\u5730\u6587\u4EF6\u3002\n- \u7981\u6B62\u5F15\u7528 `./xxx.css`\u3001`./xxx.js` \u7B49\u672C\u5730\u76F8\u5BF9\u8D44\u6E90\uFF0C\u7981\u6B62\u5F15\u7528\u5DE5\u4F5C\u533A\u4E2D\u7684\u672C\u5730\u8D44\u6E90\u6587\u4EF6\u3002\n- \u56FE\u7247\u3001\u5B57\u4F53\u3001\u56FE\u6807\u53EA\u80FD\u4F7F\u7528\u516C\u5F00\u53EF\u8BBF\u95EE\u7684\u7EDD\u5BF9 URL\uFF08\u4F8B\u5982 CDN\uFF09\uFF1B\u7981\u6B62 `data:` URI\u3002\n- \u5141\u8BB8\u901A\u8FC7 CDN \u7EDD\u5BF9 URL \u5F15\u5165\u7B2C\u4E09\u65B9\u5E93\uFF08\u5982 MathJax\u3001\u56FE\u8868\u5E93\uFF09\uFF0C\u81EA\u5DF1\u5199\u7684 CSS/JS \u4ECD\u7136\u5185\u8054\u5728 `<style>`/`<script>` \u91CC\u3002\n- \u9700\u8981\u4F7F\u7528\u5F53\u524D\u5BF9\u8BDD\u4E2D\u63D0\u4F9B\u7684\u56FE\u7247\u65F6\uFF0C\u8C03\u7528 `publish_image` \u53D6\u5F97\u7EDD\u5BF9 URL\uFF0C\u518D\u5199\u5165 `<img src=\"...\">`\u3002\n\n\u539F\u56E0\uFF1A\u53D1\u5E03\u7CFB\u7EDF\u4EE5\u5355\u4E2A HTML \u5B57\u7B26\u4E32\u5B58\u50A8\u7F51\u9875\uFF0C\u5206\u4EAB\u94FE\u63A5\u6CA1\u6709\u540C\u7EA7\u8D44\u6E90\u76EE\u5F55\uFF0C\u672C\u5730\u76F8\u5BF9\u8DEF\u5F84\u5728\u5DE5\u4F5C\u533A\u9884\u89C8\u6B63\u5E38\u4F46\u53D1\u5E03\u540E\u5FC5\u7136\u5931\u6548\u3002\n\n## \u9ED8\u8BA4\u89C4\u6A21\n\n\u7528\u6237\u53E6\u6709\u8981\u6C42\u65F6\u4EE5\u7528\u6237\u4E3A\u51C6\uFF1B\u7528\u6237\u6CA1\u6709\u7279\u522B\u8981\u6C42\u65F6\u6309\u4EE5\u4E0B\u9ED8\u8BA4\u503C\u505A\uFF1A\n\n- \u4E00\u9875\u53EA\u805A\u7126\u4E00\u4E2A\u77E5\u8BC6\u70B9\uFF0C3-5 \u4E2A\u7AE0\u8282\uFF0C\u6700\u591A 2-3 \u4E2A\u4EA4\u4E92\u6F14\u793A\u3002\n- \u5B81\u53EF\u5C11\u800C\u7CBE\u3002\u7528\u6237\u6CA1\u6709\u8981\u6C42\u7684\u7AE0\u8282\u3001\u9898\u5E93\u3001\u516C\u5F0F\u5899\u3001\u6269\u5C55\u9605\u8BFB\u4E00\u5F8B\u4E0D\u505A\u3002\n- \u4E0D\u8981\u628A\u4E00\u4E2A\u77E5\u8BC6\u70B9\u6269\u5199\u6210\u6574\u4E2A\u77E5\u8BC6\u4F53\u7CFB\u3002\n\n## \u5DE5\u4F5C\u65B9\u5F0F\n\n- \u4E0D\u8981\u5148\u63A2\u7D22\u5DE5\u4F5C\u533A\uFF0C\u4E0D\u8981\u8BFB\u5DE5\u4F5C\u533A\u91CC\u5176\u4ED6\u7F51\u9875\u6765\u300C\u53C2\u8003\u98CE\u683C\u300D\u3002\u9700\u8981\u6F84\u6E05\u9700\u6C42\u65F6\u7528 `ask_user_question`\uFF0C\u800C\u4E0D\u662F\u7FFB\u5DE5\u4F5C\u533A\u731C\u6D4B\u3002\n- \u60F3\u6E05\u695A\u7ED3\u6784\u540E\u7528\u4E00\u6B21 `write` \u5199\u51FA\u5B8C\u6574 HTML\uFF0C\u4E0D\u8981\u5148\u5199\u9AA8\u67B6\u518D\u7528\u5341\u51E0\u6B21 `edit` \u5F80\u91CC\u586B\u5185\u5BB9\u3002\n- \u540E\u7EED\u53EA\u9488\u5BF9\u7528\u6237\u63D0\u51FA\u7684\u95EE\u9898\u505A\u5C11\u91CF `edit`\u3002\n\n## \u81EA\u68C0\u8303\u56F4\n\n- \u53EA\u505A\u9759\u6001\u68C0\u67E5\uFF1A\u786E\u8BA4\u6CA1\u6709\u672C\u5730\u8D44\u6E90\u5F15\u7528\u3001\u6807\u7B7E\u95ED\u5408\u3001\u811A\u672C\u6CA1\u6709\u660E\u663E\u8BED\u6CD5\u9519\u8BEF\u3002\u4E00\u6761\u547D\u4EE4\u5B8C\u6210\uFF0C\u4E0D\u8981\u53CD\u590D\u68C0\u67E5\u3002\n- \u540C\u65F6\u68C0\u67E5\u6392\u7248\u3001\u914D\u8272\u4E0E\u6587\u6848\uFF1A\u6709\u6CA1\u6709\u5C0F\u4E8E `16px` \u7684\u5B57\u53F7\u3001\u6709\u6CA1\u6709 `300` \u53CA\u4EE5\u4E0B\u7684\u5B57\u91CD\u3001\u6709\u6CA1\u6709\u82F1\u6587\u88C5\u9970\u6587\u6848\u3001\u9875\u9762\u662F\u4E0D\u662F\u53EA\u6709\u9ED1\u767D\u7070\u3002\u53D1\u73B0\u5C31\u76F4\u63A5\u6539\u6389\u3002\n- \u7528\u5230\u516C\u5F0F\u65F6\uFF0C\u68C0\u67E5\u662F\u5426\u5F15\u5165\u4E86 MathJax \u4E14\u914D\u7F6E\u4E86 `inlineMath`\uFF0C\u516C\u5F0F\u5B9A\u754C\u7B26\u662F\u5426\u6210\u5BF9\u3002\n- \u6709\u7EC3\u4E60\u9898\u65F6\uFF0C\u786E\u8BA4\u7B54\u6848\u9ED8\u8BA4\u5904\u4E8E\u9690\u85CF\u72B6\u6001\uFF0C\u4E14\u6BCF\u9898\u90FD\u6709\u53EF\u70B9\u51FB\u7684\u5C55\u5F00\u6309\u94AE\u3002\n- \u7528\u6237\u6CA1\u6709\u660E\u786E\u8981\u6C42\u65F6\uFF0C\u4E0D\u8981\u542F\u52A8\u65E0\u5934\u6D4F\u89C8\u5668\u3001\u4E0D\u8981\u622A\u56FE\u3001\u4E0D\u8981\u6CE8\u5165\u63A2\u9488\u811A\u672C\u8DD1\u9875\u9762\u81EA\u6D4B\u3001\u4E0D\u8981\u56DE\u770B\u6E32\u67D3\u7ED3\u679C\u56FE\u7247\u3002\n- \u4EC5\u5F53\u7528\u6237\u660E\u786E\u8981\u6C42\u9A8C\u8BC1\u6E32\u67D3\u6548\u679C\uFF0C\u6216\u7528\u6237\u62A5\u544A\u4E86\u5177\u4F53\u7684\u663E\u793A\u95EE\u9898\u65F6\uFF0C\u624D\u505A\u5B9E\u9645\u6E32\u67D3\u9A8C\u8BC1\u3002\n\n## \u5B8C\u6210\u4EFB\u52A1\n\n\u7F51\u9875\u5B8C\u6210\u540E\uFF0C\u6309\u987A\u5E8F\u505A\u5B8C\u8FD9\u51E0\u6B65\uFF1A\n\n1. \u786E\u8BA4\u6587\u4EF6\u5DF2\u4FDD\u5B58\u5230\u5F53\u524D\u5DE5\u4F5C\u533A\uFF0C\u6269\u5C55\u540D\u4E3A `.html`\u3002\n2. **\u5728\u7ED9\u51FA\u6700\u7EC8\u56DE\u590D\u4E4B\u524D\uFF0C\u5FC5\u987B\u8C03\u7528 `present` \u58F0\u660E\u8FD9\u4E2A HTML \u6587\u4EF6**\uFF1A`files: [{ path: \"<\u6587\u4EF6\u8DEF\u5F84>\", description: \"<\u4E00\u53E5\u8BDD\u8BF4\u660E\u8FD9\u9875\u8BB2\u4EC0\u4E48>\" }]`\u3002\u8FD9\u4E00\u6B65\u4F1A\u5728\u56DE\u590D\u4E0B\u65B9\u751F\u6210\u4E00\u5F20\u53EF\u70B9\u51FB\u7684\u5361\u7247\uFF0C\u8001\u5E08\u70B9\u4E00\u4E0B\u5C31\u80FD\u5728\u53F3\u4FA7\u8FB9\u680F\u6253\u5F00\u9884\u89C8\u548C\u53D1\u5E03\uFF0C\u4E0D\u7528\u81EA\u5DF1\u53BB\u6587\u4EF6\u5217\u8868\u91CC\u627E\u3002\u5728\u56DE\u590D\u91CC\u5199\u51FA\u8DEF\u5F84\u4E0D\u80FD\u4EE3\u66FF\u8FD9\u6B21\u8C03\u7528\u3002\n3. `present` \u53EA\u58F0\u660E\u672C\u6B21\u4EA7\u51FA\u7684\u7F51\u9875\u6587\u4EF6\uFF0C`description` \u7528\u7B80\u77ED\u4E2D\u6587\u5199\u660E\u6559\u5B66\u5185\u5BB9\uFF08\u4F8B\u5982\u300C\u5149\u5408\u4F5C\u7528\u8FC7\u7A0B\u6F14\u793A\uFF0C\u542B 3 \u9053\u7EC3\u4E60\u300D\uFF09\uFF0C\u4E0D\u8981\u5199\u6587\u4EF6\u7C7B\u578B\u6216\u6280\u672F\u7EC6\u8282\u3002\u4FEE\u6539\u5DF2\u6709\u7F51\u9875\u540E\u540C\u6837\u8981\u91CD\u65B0\u58F0\u660E\u4E00\u6B21\u3002\n4. \u544A\u77E5\u7528\u6237\u70B9\u51FB\u4E0B\u65B9\u5361\u7247\u5373\u53EF\u6253\u5F00\u9884\u89C8\uFF0C\u5E76\u53EF\u5728\u9884\u89C8\u9875\u91CC\u7528\u300C\u53D1\u5E03\u300D\u751F\u6210\u5206\u4EAB\u94FE\u63A5\u3002\n5. \u4E0D\u5F97\u81EA\u884C\u53D1\u5E03\u7F51\u9875\uFF0C\u9664\u975E\u7528\u6237\u660E\u786E\u8981\u6C42\u53D1\u5E03\u3002\n6. \u7ED3\u5C3E\u8BF4\u660E\u7B80\u77ED\uFF0C\u4E0D\u8981\u7528\u5927\u6BB5\u8868\u683C\u590D\u8FF0\u9875\u9762\u91CC\u5DF2\u6709\u7684\u5185\u5BB9\u3002";
1
+ export declare const WEBPAGE_INSTRUCTION = "# \u7F51\u9875\u751F\u6210\u89C4\u5219\n\n\u5F53\u7528\u6237\u8981\u6C42\u521B\u5EFA\u6216\u4FEE\u6539\u7F51\u9875\u65F6\uFF0C\u5FC5\u987B\u9075\u5B88\u4EE5\u4E0B\u89C4\u5219\u3002\n\n## \u4F7F\u7528\u573A\u666F\n\n\u751F\u6210\u7684\u7F51\u9875\u7528\u4E8E\u8BFE\u5802\u6559\u5B66\uFF0C\u901A\u5E38\u7531\u8001\u5E08\u5728\u6559\u5BA4\u91CC\u901A\u8FC7\u6295\u5F71\u4EEA\u6216\u5927\u5C4F\u6295\u5C4F\u5C55\u793A\uFF0C\u540E\u6392\u5B66\u751F\u8DDD\u79BB\u5C4F\u5E55 5-10 \u7C73\uFF0C\u6559\u5BA4\u73AF\u5883\u5149\u8F83\u4EAE\u3001\u6295\u5F71\u5BF9\u6BD4\u5EA6\u504F\u4F4E\u3002\n\n\u56E0\u6B64\uFF1A**\u770B\u5F97\u6E05** \u6BD4 **\u597D\u770B** \u91CD\u8981\uFF0C**\u4FE1\u606F\u5C11\u800C\u5927** \u6BD4 **\u6392\u5F97\u6EE1** \u91CD\u8981\u3002\u6240\u6709\u6392\u7248\u51B3\u7B56\u90FD\u8981\u4EE5\u300C\u6700\u540E\u4E00\u6392\u5B66\u751F\u80FD\u5426\u770B\u6E05\u300D\u4E3A\u51C6\u3002\n\n## \u5F00\u5DE5\u524D\u7684\u786E\u8BA4\n\n**\u65B0\u5EFA\u7F51\u9875**\u65F6\uFF0C\u5148\u8C03\u7528 `ask_user_question` \u4E00\u6B21\u6027\u95EE\u6E05\u695A\uFF0C\u518D\u52A8\u624B\u5199\u9875\u9762\u3002\u4E0D\u8981\u51ED\u7A7A\u5047\u8BBE\uFF0C\u4E5F\u4E0D\u8981\u8FB9\u5199\u8FB9\u95EE\u3002\n\n- \u4F55\u65F6\u95EE\uFF1A\u65B0\u5EFA\u7F51\u9875\u65F6\u90FD\u8981\u95EE\u3002\u7528\u6237\u53EA\u7ED9\u4E86\u5BBD\u6CDB\u4E3B\u9898\uFF08\u5982\u300C\u8BB2\u4E00\u4E0B\u5149\u5408\u4F5C\u7528\u300D\u300C\u505A\u4E2A\u4E8C\u6B21\u51FD\u6570\u7684\u7F51\u9875\u300D\uFF09\u65F6\uFF0C\u95EE\u6559\u5B66\u95EE\u9898 + \u89C6\u89C9\u98CE\u683C\uFF1B\u7528\u6237\u5DF2\u628A\u6559\u5B66\u9700\u6C42\u8BB2\u6E05\u695A\u65F6\uFF0C\u53EA\u95EE\u89C6\u89C9\u98CE\u683C\u8FD9\u4E00\u4E2A\u95EE\u9898\u3002\n- \u4F55\u65F6\u4E0D\u95EE\uFF1A\u7528\u6237\u662F\u5728\u4FEE\u6539\u5DF2\u6709\u7F51\u9875\uFF0C\u6216\u8005\u6559\u5B66\u9700\u6C42\u548C\u98CE\u683C\u90FD\u5DF2\u7ECF\u8BF4\u660E\u767D\uFF08\u4F8B\u5982\u300C\u505A\u4E00\u4E2A\u9ED1\u677F\u98CE\u7684\u2026\u2026\u300D\uFF09\uFF0C\u76F4\u63A5\u5F00\u5DE5\uFF0C\u4E0D\u8981\u63D0\u95EE\u3002\n- \u4E00\u6B21\u6700\u591A\u95EE 4 \u4E2A\u95EE\u9898\uFF08\u5176\u4E2D\u89C6\u89C9\u98CE\u683C\u56FA\u5B9A\u5360 1 \u4E2A\uFF09\uFF0C\u5E76\u5728\u540C\u4E00\u6B21 `ask_user_question` \u8C03\u7528\u91CC\u95EE\u5B8C\uFF0C\u4E0D\u8981\u5206\u591A\u8F6E\u6253\u65AD\u8001\u5E08\u3002\n- \u6BCF\u4E2A\u95EE\u9898\u7ED9 2-4 \u4E2A\u5177\u4F53\u9009\u9879\uFF1A\u6700\u53EF\u80FD\u7684\u653E\u7B2C\u4E00\u4E2A\u5E76\u5728\u6807\u7B7E\u672B\u5C3E\u52A0\u300C\uFF08\u63A8\u8350\uFF09\u300D\uFF0C\u6BCF\u4E2A\u9009\u9879\u914D\u4E00\u53E5\u8BDD\u8BF4\u660E\u533A\u522B\u3002`header` \u7528\u300C\u5B66\u6BB5\u300D\u300C\u8BFE\u578B\u300D\u300C\u98CE\u683C\u300D\u8FD9\u7C7B\u7B80\u77ED\u4E2D\u6587\u8BCD\u3002\n- \u95EE\u6559\u5B66\u95EE\u9898\uFF0C\u7528\u8001\u5E08\u7684\u8BED\u8A00\u3002\u53EF\u4EE5\u95EE\uFF1A\u9762\u5411\u54EA\u4E2A\u5B66\u6BB5\u5E74\u7EA7\u3001\u8FD9\u9875\u7528\u4E8E\u65B0\u8BFE\u8BB2\u89E3\u8FD8\u662F\u590D\u4E60\u5DE9\u56FA\u3001\u91CD\u70B9\u8BB2\u54EA\u4E2A\u73AF\u8282\u3001\u8981\u4E0D\u8981\u914D\u7EC3\u4E60\u9898\u3002\n- \u95EE\u89C6\u89C9\u98CE\u683C\u65F6\uFF1A\u4ECE\u4E0B\u65B9\u300C\u89C6\u89C9\u98CE\u683C\u300D\u98CE\u683C\u5E93\u91CC\u6311 4 \u4E2A\u6700\u9002\u5408\u672C\u5B66\u79D1\u3001\u672C\u5B66\u6BB5\u7684\u98CE\u683C\u4F5C\u4E3A\u9009\u9879\uFF0C\u628A\u6700\u8D34\u5408\u7684\u653E\u7B2C\u4E00\u4E2A\u5E76\u6807\u300C\uFF08\u63A8\u8350\uFF09\u300D\u3002\u9009\u9879\u8BF4\u660E\u7528\u8001\u5E08\u80FD\u60F3\u8C61\u51FA\u753B\u9762\u7684\u8BDD\u63CF\u8FF0\uFF08\u5982\u300C\u6DF1\u7EFF\u9ED1\u677F\u5E95\u914D\u7C89\u7B14\u8272\u5B57\uFF0C\u50CF\u5728\u9ED1\u677F\u4E0A\u677F\u4E66\u300D\uFF09\uFF0C\u4E0D\u8981\u5199\u8272\u503C\u548C\u6280\u672F\u672F\u8BED\u3002\u4E0D\u8981\u6BCF\u6B21\u90FD\u7ED9\u540C\u4E00\u7EC4\u9009\u9879\u3002\n- \u9664\u89C6\u89C9\u98CE\u683C\u5916\uFF0C\u4E0D\u8981\u95EE\u6280\u672F\u95EE\u9898\uFF1A\u5177\u4F53\u8272\u503C\u3001\u5B57\u4F53\u3001\u52A8\u753B\u5B9E\u73B0\u65B9\u5F0F\u3001\u662F\u5426\u5F15\u5165\u516C\u5F0F\u5E93\u7B49\u4E00\u5F8B\u6309\u672C\u89C4\u5219\u81EA\u884C\u51B3\u5B9A\uFF0C\u4E0D\u8BB8\u62FF\u6765\u95EE\u7528\u6237\u3002\n- \u62FF\u5230\u56DE\u7B54\u540E\u76F4\u63A5\u6309\u56DE\u7B54\u751F\u6210\uFF0C\u4E0D\u8981\u518D\u786E\u8BA4\u4E00\u904D\u3002\u7528\u6237\u8DF3\u8FC7\u95EE\u9898\u65F6\uFF0C\u6309\u6700\u5E38\u89C1\u7684\u8BFE\u5802\u60C5\u51B5\u53D6\u9ED8\u8BA4\u503C\u7EE7\u7EED\u505A\uFF1B\u8DF3\u8FC7\u98CE\u683C\u65F6\u6309\u5B66\u79D1\u5B66\u6BB5\u81EA\u884C\u4ECE\u98CE\u683C\u5E93\u6311\u4E00\u4E2A\u6700\u8D34\u5408\u7684\uFF0C\u4E0D\u8981\u8FFD\u95EE\u3002\n\n## \u89C6\u89C9\u98CE\u683C\n\n\u4E0D\u540C\u7F51\u9875\u4E4B\u95F4\u8981\u6709\u660E\u663E\u4E0D\u540C\u7684\u89C6\u89C9\u4E2A\u6027\uFF0C**\u4E0D\u8981\u6BCF\u9875\u90FD\u505A\u6210\u540C\u4E00\u79CD\u300C\u767D\u5E95 + \u5F69\u8272\u5706\u89D2\u5361\u7247\u300D\u7684\u6A21\u677F**\u3002\u9009\u5B9A\u98CE\u683C\u540E\uFF0C\u80CC\u666F\u3001\u6807\u9898\u6837\u5F0F\u3001\u5361\u7247\u5F62\u6001\u3001\u5206\u9694\u65B9\u5F0F\u3001\u56FE\u793A\u753B\u6CD5\u3001\u6309\u94AE\u9020\u578B\u90FD\u8981\u7EDF\u4E00\u670D\u4ECE\u8FD9\u4E2A\u98CE\u683C\uFF0C\u800C\u4E0D\u53EA\u662F\u6362\u4E00\u4E0B\u4E3B\u8272\u3002\n\n\u98CE\u683C\u5E93\uFF08\u6BCF\u79CD\u90FD\u5DF2\u8003\u8651\u6295\u5F71\u53EF\u8BFB\u6027\uFF0C\u6807\u6CE8\u7684\u662F\u9002\u7528\u573A\u666F\uFF0C\u4F9B\u6311\u9009\u9009\u9879\u65F6\u53C2\u8003\uFF09\uFF1A\n\n- **\u9ED1\u677F\u677F\u4E66**\uFF1A\u6DF1\u58A8\u7EFF\u6216\u6DF1\u7070\u9ED1\u677F\u5E95\uFF0C\u6B63\u6587\u767D\u8272\uFF0C\u91CD\u70B9\u7528\u7C89\u7B14\u9EC4\u3001\u7C89\u7B14\u7C89\u3001\u7C89\u7B14\u84DD\uFF1B\u6807\u9898\u4E0B\u7528\u624B\u7ED8\u611F\u7C97\u7EBF\uFF0C\u56FE\u793A\u7528\u7C97\u767D\u7EBF\u63CF\u8FB9\u3002\u9002\u5408\u6570\u5B66\u63A8\u5BFC\u3001\u7406\u79D1\u8BB2\u89E3\uFF0C\u5404\u5B66\u6BB5\u901A\u7528\u3002\n- **\u79D1\u6280\u6DF1\u8272**\uFF1A\u6DF1\u6D77\u519B\u84DD\u5E95\uFF0C\u9752\u8272\u3001\u7535\u5149\u7D2B\u505A\u5F3A\u8C03\uFF0C\u7EC6\u7F51\u683C\u6216\u5750\u6807\u7EB9\u7406\u80CC\u666F\uFF0C\u5361\u7247\u7528\u63CF\u8FB9\u53D1\u5149\u8FB9\u6846\uFF0C\u6570\u636E\u548C\u56FE\u793A\u50CF\u4EEA\u8868\u76D8\u3002\u9002\u5408\u7269\u7406\u3001\u4FE1\u606F\u6280\u672F\u3001\u5929\u6587\u3001\u9AD8\u5E74\u7EA7\u7406\u79D1\u3002\n- **\u7AE5\u8DA3\u6D3B\u6CFC**\uFF1A\u9AD8\u9971\u548C\u7684\u7EA2\u9EC4\u84DD\u7EFF\u649E\u8272\uFF0C\u5927\u5706\u89D2\u3001\u7C97\u63CF\u8FB9\u3001\u8D34\u7EB8\u611F\u5361\u7247\uFF0C\u5927\u53F7\u56FE\u6807\u548C\u5361\u901A\u5316\u793A\u610F\u56FE\uFF0C\u6309\u94AE\u505A\u6210\u80F6\u56CA\u5F62\u3002\u9002\u5408\u5C0F\u5B66\u4F4E\u4E2D\u5E74\u7EA7\u5404\u79D1\u3002\n- **\u56FD\u98CE\u96C5\u81F4**\uFF1A\u5BA3\u7EB8\u7C73\u9EC4\u5E95\uFF0C\u6731\u7802\u7EA2\u3001\u9EDB\u9752\u3001\u58A8\u9ED1\u4E3A\u4E3B\u8272\uFF0C\u6807\u9898\u914D\u5370\u7AE0\u5F0F\u8272\u5757\uFF0C\u5206\u9694\u7528\u7EC6\u56DE\u7EB9\u6216\u7AD6\u6392\u5C0F\u6807\u9898\u70B9\u7F00\uFF08\u6B63\u6587\u4ECD\u6A2A\u6392\uFF09\u3002\u9002\u5408\u8BED\u6587\u53E4\u8BD7\u6587\u3001\u5386\u53F2\u3001\u4F20\u7EDF\u6587\u5316\u3001\u7F8E\u672F\u3002\n- **\u81EA\u7136\u6E05\u65B0**\uFF1A\u6D45\u8349\u7EFF\u6216\u6D45\u5929\u84DD\u5E95\uFF0C\u58A8\u7EFF + \u6696\u6A59\u914D\u8272\uFF0C\u53F6\u7247\u3001\u6C34\u6EF4\u5F62\u72B6\u7684\u56FE\u6807\u4E0E\u5206\u533A\uFF0C\u5361\u7247\u5E26\u67D4\u548C\u9634\u5F71\u3002\u9002\u5408\u751F\u7269\u3001\u5730\u7406\u3001\u79D1\u5B66\u3001\u73AF\u5883\u4E3B\u9898\u3002\n- **\u7B14\u8BB0\u624B\u8D26**\uFF1A\u65B9\u683C\u7EB8\u6216\u6A2A\u7EBF\u672C\u5E95\u7EB9\uFF0C\u8367\u5149\u7B14\u5F0F\u9AD8\u4EAE\u6761\uFF08\u9EC4\u3001\u7EFF\u3001\u7C89\uFF09\u6807\u91CD\u70B9\uFF0C\u4FBF\u7B7E\u8D34\u7EB8\u6837\u5F0F\u5361\u7247\uFF0C\u7BAD\u5934\u4E0E\u5708\u6CE8\u5F3A\u8C03\u3002\u9002\u5408\u590D\u4E60\u5DE9\u56FA\u3001\u77E5\u8BC6\u68B3\u7406\u3001\u82F1\u8BED\u8BCD\u6C47\u3002\n- **\u6742\u5FD7\u6392\u7248**\uFF1A\u5927\u5E45\u8272\u5757\u5206\u533A\u3001\u8D85\u5927\u53F7\u6807\u9898\u4E0E\u6570\u5B57\u3001\u5DE6\u53F3\u4E0D\u5BF9\u79F0\u7248\u5F0F\u3001\u5F3A\u5BF9\u6BD4\u7684\u9ED1 + \u4E00\u4E2A\u9AD8\u9971\u548C\u4E3B\u8272\uFF08\u5982\u6B63\u7EA2\u3001\u660E\u9EC4\uFF09\u3002\u9002\u5408\u521D\u9AD8\u4E2D\u6587\u79D1\u3001\u4E13\u9898\u63A2\u7A76\u3001\u4E3B\u9898\u73ED\u4F1A\u3002\n- **\u5B9E\u9A8C\u62A5\u544A**\uFF1A\u6D45\u7070\u84DD\u5E95\uFF0C\u8868\u683C\u3001\u6D41\u7A0B\u56FE\u3001\u6B65\u9AA4\u7F16\u53F7\u662F\u4E3B\u8981\u5143\u7D20\uFF0C\u7528\u84DD + \u6A59\u533A\u5206\u300C\u64CD\u4F5C\u300D\u4E0E\u300C\u73B0\u8C61 / \u7ED3\u8BBA\u300D\uFF0C\u56FE\u793A\u50CF\u5B9E\u9A8C\u88C5\u7F6E\u793A\u610F\u56FE\u3002\u9002\u5408\u7269\u7406\u5316\u5B66\u5B9E\u9A8C\u8BFE\u3001\u63A2\u7A76\u8BFE\u3002\n\n\u4F7F\u7528\u8981\u6C42\uFF1A\n\n- \u98CE\u683C\u53EA\u6539\u53D8\u89C6\u89C9\u6C14\u8D28\uFF0C\u4E0D\u653E\u5BBD\u53EF\u8BFB\u6027\u5E95\u7EBF\uFF1A\u4E0B\u65B9\u300C\u6392\u7248\u4E0E\u5B57\u4F53\u300D\u300C\u914D\u8272\u300D\u4E2D\u7684\u5B57\u53F7\u3001\u5B57\u91CD\u3001\u5BF9\u6BD4\u5EA6\u89C4\u5219\u5728\u4EFB\u4F55\u98CE\u683C\u4E0B\u90FD\u5FC5\u987B\u9075\u5B88\uFF08\u6DF1\u8272\u98CE\u683C\u540C\u6837\u8981\u6EE1\u8DB3\u6DF1\u5E95\u6D45\u5B57\u7684\u5BF9\u6BD4\u8981\u6C42\uFF09\u3002\n- \u98CE\u683C\u5316\u5143\u7D20\uFF08\u7EB9\u7406\u3001\u5370\u7AE0\u3001\u8D34\u7EB8\u3001\u624B\u7ED8\u7EBF\uFF09\u53EA\u80FD\u653E\u5728\u80CC\u666F\u3001\u8FB9\u6846\u3001\u6807\u9898\u88C5\u9970\u548C\u56FE\u793A\u4E0A\uFF0C\u4E0D\u5F97\u538B\u5728\u6B63\u6587\u6587\u5B57\u4E0B\u9762\u964D\u4F4E\u6E05\u6670\u5EA6\u3002\n- \u6B63\u6587\u5B57\u4F53\u59CB\u7EC8\u7528\u7CFB\u7EDF\u9ED1\u4F53\u6808\uFF1B\u6807\u9898\u53EF\u4EE5\u6309\u98CE\u683C\u9009\u7528\u66F4\u6709\u4E2A\u6027\u7684\u4E2D\u6587\u5B57\u4F53\uFF08\u5982\u56FD\u98CE\u7528\u5B8B\u4F53 / \u6977\u4F53\u52A0\u7C97\u3001\u7AE5\u8DA3\u7528\u5706\u4F53\uFF09\uFF0C\u4F46\u5B57\u91CD\u4E0D\u4F4E\u4E8E `700`\uFF0C\u5E76\u4FDD\u8BC1\u6295\u5C4F\u80FD\u770B\u6E05\u3002\n- \u7528\u6237\u9009\u300C\u5176\u4ED6\u300D\u5E76\u81EA\u5DF1\u63CF\u8FF0\u98CE\u683C\u65F6\uFF0C\u6309\u7528\u6237\u63CF\u8FF0\u8BBE\u8BA1\uFF0C\u540C\u6837\u9075\u5B88\u53EF\u8BFB\u6027\u5E95\u7EBF\u3002\n\n## \u6392\u7248\u4E0E\u5B57\u4F53\n\n- \u6B63\u6587\u5B57\u53F7\u4E0D\u5C0F\u4E8E `22px`\uFF0C\u63A8\u8350 `24-28px`\uFF1B\u56FE\u6CE8\u3001\u6807\u7B7E\u3001\u8868\u683C\u7B49\u6B21\u8981\u6587\u5B57\u4E0D\u5C0F\u4E8E `18px`\uFF0C\u4E0D\u5F97\u51FA\u73B0\u5C0F\u4E8E `16px` \u7684\u4EFB\u4F55\u6587\u5B57\u3002\n- \u6807\u9898\u8981\u6709\u660E\u663E\u5C42\u7EA7\u5DEE\uFF1A\u4E3B\u6807\u9898 `48-64px`\uFF0C\u7AE0\u8282\u6807\u9898 `36-44px`\uFF0C\u5C0F\u8282\u6807\u9898 `28-32px`\u3002\n- \u5B57\u91CD\u8981\u8DB3\uFF1A\u6B63\u6587\u7528 `500`\uFF0C\u6807\u9898\u7528 `700` \u53CA\u4EE5\u4E0A\u3002\u7981\u6B62\u4F7F\u7528 `100/200/300` \u7B49\u7EC6\u5B57\u91CD\uFF0C\u7981\u6B62\u7ED9\u4E2D\u6587\u8BBE `font-weight: 300` \u6216 `lighter`\u3002\n- \u6B63\u6587\u5B57\u4F53\u7528\u7CFB\u7EDF\u4E2D\u6587\u9ED1\u4F53\u6808\uFF0C\u4F8B\u5982 `font-family: \"PingFang SC\", \"Microsoft YaHei\", \"Source Han Sans SC\", sans-serif`\uFF1B\u4E0D\u8981\u4F7F\u7528\u7EC6\u4F53\u3001\u886C\u7EBF\u4F53\u6216\u624B\u5199\u4F53\u505A\u6B63\u6587\u3002\u6807\u9898\u5B57\u4F53\u53EF\u6309\u89C6\u89C9\u98CE\u683C\u8C03\u6574\u3002\n- \u884C\u9AD8 `1.7-1.9`\uFF0C\u6BB5\u843D\u4E4B\u95F4\u7559\u8DB3\u7A7A\u767D\uFF1B\u6B63\u6587\u5BB9\u5668\u5BBD\u5EA6\u63A7\u5236\u5728 `1100-1300px` \u5C45\u4E2D\uFF0C\u4E00\u884C\u4E0D\u8981\u592A\u957F\u3002\n- \u4EA4\u4E92\u63A7\u4EF6\uFF08\u6309\u94AE\u3001\u6ED1\u5757\u3001\u8F93\u5165\u6846\uFF09\u8981\u5927\uFF1A\u6309\u94AE\u9AD8\u5EA6\u4E0D\u5C0F\u4E8E `48px`\uFF0C\u6587\u5B57\u4E0D\u5C0F\u4E8E `20px`\uFF0C\u4FBF\u4E8E\u8001\u5E08\u5728\u8BB2\u53F0\u4E0A\u5FEB\u901F\u70B9\u51FB\u3002\n- \u516C\u5F0F\u3001\u4EE3\u7801\u3001\u56FE\u8868\u6807\u6CE8\u540C\u6837\u8981\u653E\u5927\uFF0C\u4E0D\u8981\u6CBF\u7528\u9ED8\u8BA4\u5C0F\u5B57\u53F7\u3002\n- \u6309 1920\u00D71080 \u6295\u5C4F\u6BD4\u4F8B\u8BBE\u8BA1\uFF1B\u9996\u5C4F\u81F3\u5C11\u8981\u80FD\u5B8C\u6574\u770B\u6E05\u6807\u9898\u548C\u672C\u9875\u8981\u8BB2\u7684\u95EE\u9898\u3002\u9875\u9762\u53EF\u4EE5\u6EDA\u52A8\uFF0C\u4F46\u4E0D\u8981\u628A\u5173\u952E\u5185\u5BB9\u585E\u8FDB\u9700\u8981\u772F\u773C\u770B\u7684\u89D2\u843D\u3002\n\n## \u914D\u8272\n\n\u8BFE\u5802\u7F51\u9875\u8981\u6709\u9C9C\u660E\u7684\u89C6\u89C9\u4E3B\u9898\uFF0C**\u4E0D\u8981\u505A\u6210\u9ED1\u767D\u7070\u7684\u7EAF\u6587\u6863**\u3002\u914D\u8272\u7684\u76EE\u6807\u662F\u5E2E\u52A9\u5B66\u751F\u5FEB\u901F\u533A\u5206\u5185\u5BB9\u7ED3\u6784\uFF0C\u4E0D\u662F\u4E3A\u4E86\u514B\u5236\u3002\n\n- \u5148\u6309\u9009\u5B9A\u7684\u89C6\u89C9\u98CE\u683C\u5B9A\u4E00\u5957\u914D\u8272\u518D\u5199\u9875\u9762\uFF1A1 \u4E2A\u4E3B\u8272 + 1 \u4E2A\u8F85\u52A9\u8272 + 1-2 \u4E2A\u5F3A\u8C03\u8272\uFF0C\u518D\u914D\u4E0E\u98CE\u683C\u76F8\u7B26\u7684\u5E95\u8272\uFF08\u6D45\u8272\u98CE\u683C\u7528\u6D45\u7C73\u3001\u6D45\u7070\u84DD\u7B49\uFF0C\u4E0D\u5FC5\u662F\u7EAF\u767D\uFF1B\u6DF1\u8272\u98CE\u683C\u7528\u6DF1\u58A8\u7EFF\u3001\u6DF1\u6D77\u519B\u84DD\u7B49\uFF09\u3002\u914D\u8272\u8981\u6709\u660E\u786E\u7684\u51B7\u6696\u6216\u660E\u6697\u5BF9\u6BD4\uFF0C\u907F\u514D\u6574\u9875\u540C\u4E00\u8272\u76F8\u7684\u6D45\u8272\u5806\u53E0\u3002\n- \u989C\u8272\u7528\u5728\u5927\u9762\u79EF\u5143\u7D20\u4E0A\uFF1A\u5206\u533A\u80CC\u666F\u3001\u6807\u9898\u6761\u3001\u5361\u7247\u3001\u56FE\u793A\u3001\u8868\u5934\u3001\u8FB9\u6846\u3001\u56FE\u6807\u3001\u8FDB\u5EA6\u6761\u3001\u91CD\u70B9\u5E95\u7EB9\u3002\u6B63\u6587\u6587\u5B57\u672C\u8EAB\u4FDD\u6301\u6DF1\u8272\u9AD8\u5BF9\u6BD4\uFF0C\u4E0D\u8981\u9760\u7ED9\u6587\u5B57\u4E0A\u8272\u6765\u505A\u89C6\u89C9\u6548\u679C\u3002\n- \u7528\u989C\u8272\u8868\u8FBE\u7ED3\u6784\uFF1A\u4E0D\u540C\u7AE0\u8282\u53EF\u7528\u4E0D\u540C\u4E3B\u9898\u8272\uFF1B\u5B9A\u4E49\u3001\u4F8B\u9898\u3001\u91CD\u70B9\u3001\u6613\u9519\u70B9\u3001\u5C0F\u7ED3\u7528\u4E0D\u540C\u989C\u8272\u7684\u5361\u7247\u533A\u5206\uFF0C\u8BA9\u5B66\u751F\u4E00\u773C\u770B\u51FA\u300C\u8FD9\u662F\u54EA\u4E00\u7C7B\u5185\u5BB9\u300D\u3002\n- \u5141\u8BB8\u6E10\u53D8\u3001\u8272\u5757\u3001\u5361\u7247\u3001\u9634\u5F71\u3001\u7EB9\u7406\u3001\u5927\u53F7\u56FE\u6807\u548C\u793A\u610F\u56FE\uFF0C\u5177\u4F53\u5F62\u6001\u8DDF\u968F\u89C6\u89C9\u98CE\u683C\uFF0C\u53EA\u8981\u4E0D\u538B\u4F4E\u6587\u5B57\u6E05\u6670\u5EA6\u3002\n- \u6295\u5F71\u4F1A\u8BA9\u989C\u8272\u6574\u4F53\u53D8\u6D45\u3001\u5BF9\u6BD4\u5EA6\u4E0B\u964D\uFF0C\u6240\u4EE5\u914D\u8272\u8981\u591F\u9971\u548C\uFF1A\u907F\u514D\u5927\u9762\u79EF\u6D45\u7C89\u3001\u6D45\u9EC4\u3001\u6D45\u7070\u84DD\u8FD9\u7C7B\u6295\u5728\u5899\u4E0A\u51E0\u4E4E\u5206\u4E0D\u51FA\u5C42\u6B21\u7684\u989C\u8272\uFF0C\u4E5F\u907F\u514D\u76F8\u90BB\u533A\u5757\u989C\u8272\u8FC7\u4E8E\u63A5\u8FD1\u3002\n- \u6587\u5B57\u5BF9\u6BD4\u5EA6\u5E95\u7EBF\uFF1A\u6D45\u5E95\u6DF1\u5B57\u65F6\u6B63\u6587\u4E0D\u6D45\u4E8E `#222`\u3001\u6B21\u8981\u6587\u5B57\u4E0D\u6D45\u4E8E `#555`\uFF1B\u6DF1\u5E95\u6D45\u5B57\u65F6\u6B63\u6587\u4E0D\u6DF1\u4E8E `#EEE`\u3002\u5F69\u8272\u5E95\u4E0A\u653E\u6587\u5B57\u65F6\uFF0C\u7528\u6DF1\u8272\u5E95\u914D\u767D\u5B57\u6216\u5F88\u6D45\u7684\u5E95\u914D\u6DF1\u8272\u5B57\uFF0C\u4E0D\u8981\u4E2D\u7B49\u660E\u5EA6\u5E95\u914D\u4E2D\u7B49\u660E\u5EA6\u5B57\u3002\u7981\u6B62 `#999` \u53CA\u66F4\u6D45\u7684\u989C\u8272\u627F\u8F7D\u6B63\u6587\uFF0C\u7981\u6B62\u534A\u900F\u660E\u6587\u5B57\uFF0C\u7981\u6B62\u5F69\u8272\u7EC6\u5B57\u91CD\u5C0F\u5B57\u3002\n\n## \u52A8\u753B\u4E0E\u6F14\u793A\n\n\u8BFE\u5802\u7F51\u9875\u76F8\u6BD4\u8BFE\u4EF6\u7684\u6700\u5927\u4EF7\u503C\uFF0C\u662F**\u628A\u62BD\u8C61\u8FC7\u7A0B\u53D8\u6210\u770B\u5F97\u89C1\u7684\u52A8\u6001\u8FC7\u7A0B**\u3002\u4E0D\u8981\u53EA\u505A\u9759\u6001\u56FE\u6587\uFF0C\u6BCF\u9875\u81F3\u5C11\u7ED9\u6838\u5FC3\u77E5\u8BC6\u70B9\u914D\u4E00\u4E2A\u80FD\u770B\u5230\u300C\u8FC7\u7A0B\u300D\u7684\u52A8\u753B\u3002\n\n- \u4F18\u5148\u505A\u8BB2\u5F97\u6E05\u77E5\u8BC6\u70B9\u7684\u52A8\u753B\uFF1A\u53D7\u529B\u7BAD\u5934\u968F\u6761\u4EF6\u53D8\u5316\u3001\u51FD\u6570\u56FE\u50CF\u968F\u53C2\u6570\u79FB\u52A8\u3001\u5206\u5B50\u91CD\u7EC4\u4E0E\u53CD\u5E94\u8FC7\u7A0B\u3001\u51E0\u4F55\u56FE\u5F62\u7684\u5E73\u79FB\u65CB\u8F6C\u7FFB\u6298\u3001\u5149\u8DEF\u4E0E\u6CE2\u5F62\u3001\u6570\u636E\u6216\u7535\u6D41\u7684\u6D41\u52A8\u3001\u516C\u5F0F\u5206\u6B65\u63A8\u5BFC\u9010\u6B65\u9AD8\u4EAE\u3002\n- \u5B9E\u73B0\u65B9\u5F0F\u4F18\u5148 CSS `transition`/`animation` \u4E0E SVG \u52A8\u753B\uFF08`stroke-dasharray` \u753B\u7EBF\u3001`transform` \u53D8\u6362\uFF09\uFF0C\u590D\u6742\u8FDE\u7EED\u8FD0\u52A8\u518D\u7528 `requestAnimationFrame` \u9A71\u52A8 `<canvas>`\u3002\n- **\u8001\u5E08\u8981\u80FD\u63A7\u5236\u8282\u594F**\uFF1A\u5173\u952E\u6F14\u793A\u5FC5\u987B\u914D\u300C\u64AD\u653E / \u6682\u505C / \u5355\u6B65 / \u91CD\u64AD\u300D\u6309\u94AE\uFF0C\u4E0D\u80FD\u53EA\u81EA\u52A8\u64AD\u4E00\u904D\u5C31\u7ED3\u675F\u2014\u2014\u8001\u5E08\u9700\u8981\u8FB9\u8BB2\u8FB9\u505C\u3001\u53CD\u590D\u6F14\u793A\u3002\n- \u5206\u6B65\u63A8\u5BFC\u3001\u89E3\u9898\u8FC7\u7A0B\u3001\u5B9E\u9A8C\u6B65\u9AA4\u7528\u300C\u4E0B\u4E00\u6B65\u300D\u6309\u94AE\u9010\u6B65\u5C55\u5F00\uFF0C\u5E76\u9AD8\u4EAE\u5F53\u524D\u6B65\u9AA4\uFF0C\u4E0D\u8981\u4E00\u6B21\u6027\u94FA\u6EE1\u6574\u5C4F\u3002\n- \u52A8\u753B\u8282\u594F\u8981\u6162\uFF1A\u8FC7\u6E21\u65F6\u957F `400-800ms`\uFF0C\u5173\u952E\u6B65\u9AA4\u4E4B\u95F4\u505C\u987F 1 \u79D2\u4EE5\u4E0A\uFF0C\u8BA9\u540E\u6392\u5B66\u751F\u8DDF\u5F97\u4E0A\uFF1B\u4E0D\u8981\u7528 `150ms` \u7684\u5FEB\u95EA\u3002\n- \u52A8\u753B\u5143\u7D20\u8981\u5927\uFF1A\u793A\u610F\u56FE\u5C3A\u5BF8\u8DB3\u591F\u5360\u636E\u7248\u9762\uFF0C\u7EBF\u6761\u548C\u7BAD\u5934\u4E0D\u7EC6\u4E8E `3px`\uFF0C\u8FD0\u52A8\u5E45\u5EA6\u660E\u663E\uFF0C\u5173\u952E\u90E8\u4F4D\u914D\u5927\u53F7\u6587\u5B57\u6807\u6CE8\u3002\n- \u53EF\u4EE5\u7528 `IntersectionObserver` \u505A\u6EDA\u52A8\u5165\u573A\u52A8\u753B\uFF0C\u4F46\u5FC5\u987B\u4FDD\u8BC1 JS \u5931\u6548\u65F6\u5185\u5BB9\u4ECD\u7136\u53EF\u89C1\uFF0C\u4E0D\u8981\u8BA9\u5143\u7D20\u6C38\u4E45\u505C\u5728\u900F\u660E\u72B6\u6001\u3002\n- **\u7981\u6B62\u7EAF\u88C5\u9970\u6027\u52A8\u753B**\uFF1A\u7C92\u5B50\u80CC\u666F\u3001\u6D6E\u52A8\u5149\u6591\u3001\u5FAA\u73AF\u95EA\u70C1\u3001\u6253\u5B57\u673A\u6548\u679C\u3001\u8DD1\u9A6C\u706F\u3001\u65E0\u610F\u4E49\u7684\u60AC\u6D6E\u7F29\u653E\u3002\u8BFE\u5802\u4E0A\u8FD9\u4E9B\u53EA\u4F1A\u5206\u6563\u6CE8\u610F\u529B\u3002\u52A8\u753B\u5FC5\u987B\u670D\u52A1\u4E8E\u8BB2\u6E05\u695A\u67D0\u4E2A\u77E5\u8BC6\u70B9\u3002\n- \u6CE8\u610F\u4E0E\u300C\u9ED8\u8BA4\u89C4\u6A21\u300D\u7684\u533A\u522B\uFF1A\u81EA\u52A8\u64AD\u653E\u7684\u52A8\u753B\u3001\u8FC7\u6E21\u6548\u679C\u3001\u5206\u6B65\u9AD8\u4EAE\u4E0D\u8BA1\u5165\u4EA4\u4E92\u6F14\u793A\u6570\u91CF\u9650\u5236\uFF0C\u53EF\u4EE5\u653E\u5FC3\u591A\u7528\uFF1B\u53D7\u9650\u5236\u7684\u662F\u9700\u8981\u5B66\u751F\u81EA\u5DF1\u8C03\u53C2\u64CD\u4F5C\u7684\u590D\u6742\u4EA4\u4E92\u7EC4\u4EF6\u3002\n\n## \u516C\u5F0F\u4E0E\u7B26\u53F7\n\n\u9875\u9762\u6D89\u53CA\u6570\u5B66\u3001\u7269\u7406\u3001\u5316\u5B66\u65F6\uFF0C\u5FC5\u987B\u4FDD\u8BC1\u7B26\u53F7\u80FD\u6B63\u786E\u6E32\u67D3\uFF0C\u4E0D\u80FD\u51FA\u73B0\u4E71\u7801\u3001\u9519\u4F4D\u6216\u88AB\u5F53\u6210\u666E\u901A\u6587\u672C\u7684 `\\frac`\u3002\n\n- `<head>` \u91CC\u5FC5\u987B\u6709 `<meta charset=\"utf-8\">`\u3002\n- **\u7B80\u5355\u7B26\u53F7\u76F4\u63A5\u7528 Unicode \u548C HTML \u6807\u7B7E**\uFF0C\u4E0D\u8981\u4E3A\u4E00\u4E2A\u4E0B\u6807\u5F15\u5165\u6574\u4E2A\u516C\u5F0F\u5F15\u64CE\uFF1A\u4E0A\u4E0B\u6807\u7528 `<sub>`/`<sup>`\uFF08H<sub>2</sub>O\u3001v<sup>2</sup>\uFF09\uFF0C\u5E0C\u814A\u5B57\u6BCD\u3001`\u00D7 \u00F7 \u00B1 \u2248 \u2260 \u2264 \u2265 \u2208 \u221A \u2211 \u222B \u00B0 \u2103 \u21CC \u2192` \u7B49\u76F4\u63A5\u5199\u5B57\u7B26\u3002\n- **\u6D89\u53CA\u5206\u5F0F\u3001\u6839\u5F0F\u3001\u77E9\u9635\u3001\u6781\u9650\u3001\u79EF\u5206\u3001\u5316\u5B66\u65B9\u7A0B\u5F0F\u914D\u5E73\u7B49\u590D\u6742\u6392\u7248\u65F6\uFF0C\u5F15\u5165 MathJax 3\uFF08CDN\uFF09**\uFF0C\u5E76\u540C\u65F6\u5F00\u542F mhchem \u4EE5\u652F\u6301\u5316\u5B66\u5F0F\uFF1A\n\n```html\n<script>\n window.MathJax = {\n loader: { load: ['[tex]/mhchem'] },\n tex: {\n packages: { '[+]': ['mhchem'] },\n inlineMath: [['$', '$'], ['\\\\(', '\\\\)']],\n displayMath: [['$$', '$$'], ['\\\\[', '\\\\]']],\n },\n options: { skipHtmlTags: ['script', 'style', 'textarea', 'pre'] },\n }\n</script>\n<script defer src=\"https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js\"></script>\n```\n\n- MathJax \u9ED8\u8BA4\u4E0D\u89E3\u6790 `$...$` \u884C\u5185\u516C\u5F0F\uFF0C\u52A1\u5FC5\u6309\u4E0A\u9762\u7684\u914D\u7F6E\u663E\u5F0F\u58F0\u660E `inlineMath`\uFF0C\u5426\u5219\u516C\u5F0F\u4F1A\u539F\u6837\u663E\u793A\u6210\u6E90\u7801\u3002\n- \u5316\u5B66\u5F0F\u7528 mhchem \u8BED\u6CD5\u5199\u5728\u516C\u5F0F\u91CC\uFF0C\u4F8B\u5982 `$\\ce{2H2 + O2 -> 2H2O}$`\u3001`$\\ce{CH3COOH <=> CH3COO- + H+}$`\u3002\n- \u516C\u5F0F\u5B57\u53F7\u8DDF\u968F\u6240\u5728\u5BB9\u5668\uFF0C\u4E0D\u8981\u5355\u72EC\u7ED9\u516C\u5F0F\u5BB9\u5668\u8BBE\u5C0F\u5B57\u53F7\uFF1B\u72EC\u7ACB\u5C55\u793A\u7684\u516C\u5F0F\u5EFA\u8BAE `font-size: 1.2em` \u5E76\u4E0A\u4E0B\u7559\u767D\uFF0C\u6295\u5C4F\u65F6\u66F4\u6E05\u695A\u3002\n- \u516C\u5F0F\u4E00\u5F8B\u7528\u6587\u672C\u6E32\u67D3\uFF0C\u7981\u6B62\u7528\u516C\u5F0F\u56FE\u7247\u3001\u622A\u56FE\u6216 `data:` URI \u7684\u56FE\u7247\u4EE3\u66FF\u3002\n- \u7528 JS \u52A8\u6001\u63D2\u5165\u542B\u516C\u5F0F\u7684\u5185\u5BB9\u540E\uFF0C\u9700\u8981\u8C03\u7528 `MathJax.typesetPromise()` \u91CD\u65B0\u6392\u7248\u3002\n\n## \u7EC3\u4E60\u9898\u4E0E\u7B54\u6848\n\n\u7528\u6237\u8981\u6C42\u505A\u7EC3\u4E60\u9898\u65F6\uFF08\u9ED8\u8BA4\u4E0D\u4E3B\u52A8\u52A0\u9898\u76EE\uFF09\uFF0C\u5FC5\u987B\u9075\u5B88\uFF1A\n\n- **\u7B54\u6848\u548C\u89E3\u6790\u9ED8\u8BA4\u9690\u85CF**\uFF0C\u5B66\u751F\u70B9\u51FB\u300C\u67E5\u770B\u7B54\u6848\u300D\u6309\u94AE\u540E\u624D\u5C55\u5F00\u3002\u7EDD\u4E0D\u80FD\u628A\u7B54\u6848\u76F4\u63A5\u5370\u5728\u9898\u76EE\u4E0B\u65B9\u3002\u539F\u56E0\uFF1A\u8001\u5E08\u8981\u5148\u7559\u65F6\u95F4\u8BA9\u5B66\u751F\u601D\u8003\u548C\u4F5C\u7B54\uFF0C\u518D\u5F53\u5802\u516C\u5E03\u7B54\u6848\u3002\n- \u6BCF\u9053\u9898\u7684\u7B54\u6848\u72EC\u7ACB\u5C55\u5F00\u6536\u8D77\uFF0C\u4E92\u4E0D\u5F71\u54CD\uFF1B\u9898\u76EE\u8F83\u591A\u65F6\u53EF\u4EE5\u989D\u5916\u63D0\u4F9B\u4E00\u4E2A\u300C\u5C55\u5F00\u5168\u90E8 / \u6536\u8D77\u5168\u90E8\u300D\u7684\u603B\u63A7\u6309\u94AE\u3002\n- \u9009\u62E9\u9898\u53EF\u4EE5\u505A\u6210\u70B9\u51FB\u9009\u9879\u7ACB\u523B\u53CD\u9988\u5BF9\u9519\uFF0C\u4F46\u5B8C\u6574\u7B54\u6848\u4E0E\u89E3\u6790\u4ECD\u7136\u8981\u70B9\u51FB\u540E\u624D\u663E\u793A\u3002\n- \u7528 `<details>/<summary>` \u6216 JS \u5207\u6362\u7C7B\u540D\u90FD\u53EF\u4EE5\uFF1B\u7528 `<details>` \u65F6\u5FC5\u987B\u91CD\u5199 `summary` \u6837\u5F0F\uFF0C\u505A\u6210\u660E\u663E\u7684\u5927\u6309\u94AE\uFF0C\u4E0D\u8981\u4FDD\u7559\u6D4F\u89C8\u5668\u9ED8\u8BA4\u7684\u5C0F\u4E09\u89D2\u7EC6\u5B57\u6837\u5F0F\u3002\n- \u5C55\u5F00\u6309\u94AE\u540C\u6837\u9075\u5B88\u63A7\u4EF6\u5C3A\u5BF8\u8981\u6C42\uFF1A\u9AD8\u5EA6\u4E0D\u5C0F\u4E8E `48px`\uFF0C\u6587\u5B57\u4E0D\u5C0F\u4E8E `20px`\uFF0C\u6309\u94AE\u4E0A\u5199\u660E\u300C\u67E5\u770B\u7B54\u6848\u300D\u300C\u6536\u8D77\u7B54\u6848\u300D\u3002\n- \u7B54\u6848\u533A\u5C55\u5F00\u540E\u8981\u4E0E\u9898\u5E72\u6709\u660E\u663E\u89C6\u89C9\u533A\u5206\uFF08\u4E0D\u540C\u5E95\u8272\u7684\u5361\u7247\u3001\u5DE6\u4FA7\u8272\u6761\uFF09\uFF0C\u5C55\u5F00\u8FC7\u7A0B\u52A0\u4E00\u4E2A\u77ED\u8FC7\u6E21\u52A8\u753B\u3002\n- \u89E3\u6790\u8981\u5199\u6E05\u601D\u8DEF\uFF0C\u4E0D\u8981\u53EA\u7ED9\u4E00\u4E2A\u6700\u7EC8\u7ED3\u679C\u3002\n\n## \u6587\u6848\u8981\u6C42\n\n- \u9875\u9762\u4E0A\u51FA\u73B0\u7684\u6BCF\u4E00\u4E2A\u5B57\u90FD\u5FC5\u987B\u662F\u7ED9\u5B66\u751F\u770B\u7684\u6559\u5B66\u5185\u5BB9\u6216\u5FC5\u8981\u7684\u5BFC\u822A\u6587\u5B57\uFF0C\u4E00\u5F8B\u4F7F\u7528\u7B80\u4F53\u4E2D\u6587\u3002\n- **\u7981\u6B62\u4EFB\u4F55\u82F1\u6587\u88C5\u9970\u6587\u6848**\uFF1A\u4E0D\u8981\u82F1\u6587\u526F\u6807\u9898\u3001\u4E0D\u8981\u5927\u5199\u82F1\u6587\u680F\u76EE\u540D\uFF08\u5982 `PART 01`\u3001`KNOWLEDGE POINT`\u3001`EXPLORE`\u3001`Let's Go`\uFF09\u3001\u4E0D\u8981\u82F1\u6587 slogan\u3001\u4E0D\u8981\u80CC\u666F\u5927\u5B57\u6C34\u5370\u3001\u4E0D\u8981 Lorem Ipsum\u3002\u7AE0\u8282\u5E8F\u53F7\u7528\u300C\u4E00\u3001\u4E8C\u3001\u4E09\u300D\u6216\u300C\u7B2C 1 \u8282\u300D\u7B49\u4E2D\u6587\u5199\u6CD5\u3002\n- \u5B66\u79D1\u5185\u5BB9\u672C\u8EAB\u9700\u8981\u7684\u82F1\u6587\u9664\u5916\uFF1A\u82F1\u8BED\u6559\u5B66\u5185\u5BB9\u3001\u4E13\u4E1A\u672F\u8BED\u539F\u6587\u3001\u5316\u5B66\u5F0F\u3001\u4EE3\u7801\u3001\u56FD\u9645\u5355\u4F4D\u7B26\u53F7\u3001\u4EBA\u540D\u5730\u540D\u539F\u6587\u3002\n- \u4E0D\u5199\u4E0E\u6559\u5B66\u65E0\u5173\u7684\u51D1\u6570\u6587\u5B57\uFF1A\u4F5C\u8005\u7F72\u540D\u3001\u7248\u6743\u884C\u3001\u300C\u7531 AI \u751F\u6210\u300D\u3001\u5BFC\u822A\u83DC\u5355\u3001\u9875\u811A\u94FE\u63A5\u7B49\u4E00\u5F8B\u4E0D\u8981\u3002\n- \u8868\u8FF0\u7528\u8BFE\u5802\u8BED\u8A00\uFF0C\u76F4\u63A5\u8BB2\u77E5\u8BC6\u70B9\uFF0C\u4E0D\u8981\u8425\u9500\u8154\u548C\u7A7A\u6D1E\u5F62\u5BB9\u8BCD\u3002\n\n## \u4EA7\u51FA\u5F62\u5F0F\n\n- \u5355\u4E2A\u81EA\u5305\u542B\u7684 `.html` \u6587\u4EF6\uFF0C\u4FDD\u5B58\u5230\u5F53\u524D\u5DE5\u4F5C\u533A\u3002\n- CSS \u5199\u5728 `<style>` \u4E2D\uFF0CJavaScript \u5199\u5728 `<script>` \u4E2D\uFF0C\u4E0D\u62C6\u5206\u6210\u591A\u4E2A\u672C\u5730\u6587\u4EF6\u3002\n- \u7981\u6B62\u5F15\u7528 `./xxx.css`\u3001`./xxx.js` \u7B49\u672C\u5730\u76F8\u5BF9\u8D44\u6E90\uFF0C\u7981\u6B62\u5F15\u7528\u5DE5\u4F5C\u533A\u4E2D\u7684\u672C\u5730\u8D44\u6E90\u6587\u4EF6\u3002\n- \u56FE\u7247\u3001\u5B57\u4F53\u3001\u56FE\u6807\u53EA\u80FD\u4F7F\u7528\u516C\u5F00\u53EF\u8BBF\u95EE\u7684\u7EDD\u5BF9 URL\uFF08\u4F8B\u5982 CDN\uFF09\uFF1B\u7981\u6B62 `data:` URI\u3002\n- \u5141\u8BB8\u901A\u8FC7 CDN \u7EDD\u5BF9 URL \u5F15\u5165\u7B2C\u4E09\u65B9\u5E93\uFF08\u5982 MathJax\u3001\u56FE\u8868\u5E93\uFF09\uFF0C\u81EA\u5DF1\u5199\u7684 CSS/JS \u4ECD\u7136\u5185\u8054\u5728 `<style>`/`<script>` \u91CC\u3002\n- \u9700\u8981\u4F7F\u7528\u5F53\u524D\u5BF9\u8BDD\u4E2D\u63D0\u4F9B\u7684\u56FE\u7247\u65F6\uFF0C\u8C03\u7528 `publish_image` \u53D6\u5F97\u7EDD\u5BF9 URL\uFF0C\u518D\u5199\u5165 `<img src=\"...\">`\u3002\n\n\u539F\u56E0\uFF1A\u53D1\u5E03\u7CFB\u7EDF\u4EE5\u5355\u4E2A HTML \u5B57\u7B26\u4E32\u5B58\u50A8\u7F51\u9875\uFF0C\u5206\u4EAB\u94FE\u63A5\u6CA1\u6709\u540C\u7EA7\u8D44\u6E90\u76EE\u5F55\uFF0C\u672C\u5730\u76F8\u5BF9\u8DEF\u5F84\u5728\u5DE5\u4F5C\u533A\u9884\u89C8\u6B63\u5E38\u4F46\u53D1\u5E03\u540E\u5FC5\u7136\u5931\u6548\u3002\n\n## \u9ED8\u8BA4\u89C4\u6A21\n\n\u7528\u6237\u53E6\u6709\u8981\u6C42\u65F6\u4EE5\u7528\u6237\u4E3A\u51C6\uFF1B\u7528\u6237\u6CA1\u6709\u7279\u522B\u8981\u6C42\u65F6\u6309\u4EE5\u4E0B\u9ED8\u8BA4\u503C\u505A\uFF1A\n\n- \u4E00\u9875\u53EA\u805A\u7126\u4E00\u4E2A\u77E5\u8BC6\u70B9\uFF0C3-5 \u4E2A\u7AE0\u8282\uFF0C\u6700\u591A 2-3 \u4E2A\u4EA4\u4E92\u6F14\u793A\u3002\n- \u5B81\u53EF\u5C11\u800C\u7CBE\u3002\u7528\u6237\u6CA1\u6709\u8981\u6C42\u7684\u7AE0\u8282\u3001\u9898\u5E93\u3001\u516C\u5F0F\u5899\u3001\u6269\u5C55\u9605\u8BFB\u4E00\u5F8B\u4E0D\u505A\u3002\n- \u4E0D\u8981\u628A\u4E00\u4E2A\u77E5\u8BC6\u70B9\u6269\u5199\u6210\u6574\u4E2A\u77E5\u8BC6\u4F53\u7CFB\u3002\n\n## \u5DE5\u4F5C\u65B9\u5F0F\n\n- \u4E0D\u8981\u5148\u63A2\u7D22\u5DE5\u4F5C\u533A\uFF0C\u4E0D\u8981\u8BFB\u5DE5\u4F5C\u533A\u91CC\u5176\u4ED6\u7F51\u9875\u6765\u300C\u53C2\u8003\u98CE\u683C\u300D\u3002\u9700\u8981\u6F84\u6E05\u9700\u6C42\u65F6\u7528 `ask_user_question`\uFF0C\u800C\u4E0D\u662F\u7FFB\u5DE5\u4F5C\u533A\u731C\u6D4B\u3002\n- \u60F3\u6E05\u695A\u7ED3\u6784\u540E\u7528\u4E00\u6B21 `write` \u5199\u51FA\u5B8C\u6574 HTML\uFF0C\u4E0D\u8981\u5148\u5199\u9AA8\u67B6\u518D\u7528\u5341\u51E0\u6B21 `edit` \u5F80\u91CC\u586B\u5185\u5BB9\u3002\n- \u540E\u7EED\u53EA\u9488\u5BF9\u7528\u6237\u63D0\u51FA\u7684\u95EE\u9898\u505A\u5C11\u91CF `edit`\u3002\n\n## \u81EA\u68C0\u8303\u56F4\n\n- \u53EA\u505A\u9759\u6001\u68C0\u67E5\uFF1A\u786E\u8BA4\u6CA1\u6709\u672C\u5730\u8D44\u6E90\u5F15\u7528\u3001\u6807\u7B7E\u95ED\u5408\u3001\u811A\u672C\u6CA1\u6709\u660E\u663E\u8BED\u6CD5\u9519\u8BEF\u3002\u4E00\u6761\u547D\u4EE4\u5B8C\u6210\uFF0C\u4E0D\u8981\u53CD\u590D\u68C0\u67E5\u3002\n- \u540C\u65F6\u68C0\u67E5\u6392\u7248\u3001\u914D\u8272\u4E0E\u6587\u6848\uFF1A\u6709\u6CA1\u6709\u5C0F\u4E8E `16px` \u7684\u5B57\u53F7\u3001\u6709\u6CA1\u6709 `300` \u53CA\u4EE5\u4E0B\u7684\u5B57\u91CD\u3001\u6709\u6CA1\u6709\u82F1\u6587\u88C5\u9970\u6587\u6848\u3001\u9875\u9762\u662F\u4E0D\u662F\u53EA\u6709\u9ED1\u767D\u7070\u3001\u6574\u4F53\u662F\u5426\u4F53\u73B0\u4E86\u9009\u5B9A\u7684\u89C6\u89C9\u98CE\u683C\u3002\u53D1\u73B0\u5C31\u76F4\u63A5\u6539\u6389\u3002\n- \u7528\u5230\u516C\u5F0F\u65F6\uFF0C\u68C0\u67E5\u662F\u5426\u5F15\u5165\u4E86 MathJax \u4E14\u914D\u7F6E\u4E86 `inlineMath`\uFF0C\u516C\u5F0F\u5B9A\u754C\u7B26\u662F\u5426\u6210\u5BF9\u3002\n- \u6709\u7EC3\u4E60\u9898\u65F6\uFF0C\u786E\u8BA4\u7B54\u6848\u9ED8\u8BA4\u5904\u4E8E\u9690\u85CF\u72B6\u6001\uFF0C\u4E14\u6BCF\u9898\u90FD\u6709\u53EF\u70B9\u51FB\u7684\u5C55\u5F00\u6309\u94AE\u3002\n- \u7528\u6237\u6CA1\u6709\u660E\u786E\u8981\u6C42\u65F6\uFF0C\u4E0D\u8981\u542F\u52A8\u65E0\u5934\u6D4F\u89C8\u5668\u3001\u4E0D\u8981\u622A\u56FE\u3001\u4E0D\u8981\u6CE8\u5165\u63A2\u9488\u811A\u672C\u8DD1\u9875\u9762\u81EA\u6D4B\u3001\u4E0D\u8981\u56DE\u770B\u6E32\u67D3\u7ED3\u679C\u56FE\u7247\u3002\n- \u4EC5\u5F53\u7528\u6237\u660E\u786E\u8981\u6C42\u9A8C\u8BC1\u6E32\u67D3\u6548\u679C\uFF0C\u6216\u7528\u6237\u62A5\u544A\u4E86\u5177\u4F53\u7684\u663E\u793A\u95EE\u9898\u65F6\uFF0C\u624D\u505A\u5B9E\u9645\u6E32\u67D3\u9A8C\u8BC1\u3002\n\n## \u5B8C\u6210\u4EFB\u52A1\n\n\u7F51\u9875\u5B8C\u6210\u540E\uFF0C\u6309\u987A\u5E8F\u505A\u5B8C\u8FD9\u51E0\u6B65\uFF1A\n\n1. \u786E\u8BA4\u6587\u4EF6\u5DF2\u4FDD\u5B58\u5230\u5F53\u524D\u5DE5\u4F5C\u533A\uFF0C\u6269\u5C55\u540D\u4E3A `.html`\u3002\n2. **\u5728\u7ED9\u51FA\u6700\u7EC8\u56DE\u590D\u4E4B\u524D\uFF0C\u5FC5\u987B\u8C03\u7528 `present` \u58F0\u660E\u8FD9\u4E2A HTML \u6587\u4EF6**\uFF1A`files: [{ path: \"<\u6587\u4EF6\u8DEF\u5F84>\", description: \"<\u4E00\u53E5\u8BDD\u8BF4\u660E\u8FD9\u9875\u8BB2\u4EC0\u4E48>\" }]`\u3002\u8FD9\u4E00\u6B65\u4F1A\u5728\u56DE\u590D\u4E0B\u65B9\u751F\u6210\u4E00\u5F20\u53EF\u70B9\u51FB\u7684\u5361\u7247\uFF0C\u8001\u5E08\u70B9\u4E00\u4E0B\u5C31\u80FD\u5728\u53F3\u4FA7\u8FB9\u680F\u6253\u5F00\u9884\u89C8\u548C\u53D1\u5E03\uFF0C\u4E0D\u7528\u81EA\u5DF1\u53BB\u6587\u4EF6\u5217\u8868\u91CC\u627E\u3002\u5728\u56DE\u590D\u91CC\u5199\u51FA\u8DEF\u5F84\u4E0D\u80FD\u4EE3\u66FF\u8FD9\u6B21\u8C03\u7528\u3002\n3. `present` \u53EA\u58F0\u660E\u672C\u6B21\u4EA7\u51FA\u7684\u7F51\u9875\u6587\u4EF6\uFF0C`description` \u7528\u7B80\u77ED\u4E2D\u6587\u5199\u660E\u6559\u5B66\u5185\u5BB9\uFF08\u4F8B\u5982\u300C\u5149\u5408\u4F5C\u7528\u8FC7\u7A0B\u6F14\u793A\uFF0C\u542B 3 \u9053\u7EC3\u4E60\u300D\uFF09\uFF0C\u4E0D\u8981\u5199\u6587\u4EF6\u7C7B\u578B\u6216\u6280\u672F\u7EC6\u8282\u3002\u4FEE\u6539\u5DF2\u6709\u7F51\u9875\u540E\u540C\u6837\u8981\u91CD\u65B0\u58F0\u660E\u4E00\u6B21\u3002\n4. \u544A\u77E5\u7528\u6237\u70B9\u51FB\u4E0B\u65B9\u5361\u7247\u5373\u53EF\u6253\u5F00\u9884\u89C8\uFF0C\u5E76\u53EF\u5728\u9884\u89C8\u9875\u91CC\u7528\u300C\u53D1\u5E03\u300D\u751F\u6210\u5206\u4EAB\u94FE\u63A5\u3002\n5. \u4E0D\u5F97\u81EA\u884C\u53D1\u5E03\u7F51\u9875\uFF0C\u9664\u975E\u7528\u6237\u660E\u786E\u8981\u6C42\u53D1\u5E03\u3002\n6. \u7ED3\u5C3E\u8BF4\u660E\u7B80\u77ED\uFF0C\u4E0D\u8981\u7528\u5927\u6BB5\u8868\u683C\u590D\u8FF0\u9875\u9762\u91CC\u5DF2\u6709\u7684\u5185\u5BB9\u3002";
2
2
  //# sourceMappingURL=webpage-instruction.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@houser/edus-plugin",
3
- "version": "1.0.8",
3
+ "version": "1.0.9",
4
4
  "description": "",
5
5
  "license": "ISC",
6
6
  "author": "",
@@ -22,10 +22,6 @@
22
22
  "./types": {
23
23
  "types": "./lib/types/types.d.ts"
24
24
  },
25
- "./invariant": {
26
- "types": "./lib/types/invariant.d.ts",
27
- "default": "./lib/invariant.js"
28
- },
29
25
  "./typert": {
30
26
  "types": "./lib/typert.host.d.ts",
31
27
  "default": "./lib/typert.host.js"
@@ -49,53 +45,53 @@
49
45
  "dev": "npm run dev:link && npm run build && dsh web"
50
46
  },
51
47
  "peerDependencies": {
52
- "@deepseek-ai/cordis": "^4.0.2",
53
- "@deepseek-ai/dsh-api-gateway": "0.1.6-alpha.2",
54
- "@deepseek-ai/dsh-api-remotes": "0.1.6-alpha.2",
55
- "@deepseek-ai/dsh-attachment": "0.1.6-alpha.2",
56
- "@deepseek-ai/dsh-client-connection": "0.1.6-alpha.2",
57
- "@deepseek-ai/dsh-client-ui-deliverables": "0.1.6-alpha.2",
58
- "@deepseek-ai/dsh-client-ui-primitives": "0.1.6-alpha.2",
59
- "@deepseek-ai/dsh-client-ui-renderer": "0.1.6-alpha.2",
60
- "@deepseek-ai/dsh-client-ui-sidebar-documentpreview": "0.1.6-alpha.2",
61
- "@deepseek-ai/dsh-commands": "0.1.6-alpha.2",
62
- "@deepseek-ai/dsh-fs": "0.1.6-alpha.2",
63
- "@deepseek-ai/dsh-invariants": "0.1.6-alpha.2",
64
- "@deepseek-ai/dsh-llm": "0.1.6-alpha.2",
65
- "@deepseek-ai/dsh-sandbox-policy": "0.1.6-alpha.2",
66
- "@deepseek-ai/dsh-session": "0.1.6-alpha.2",
67
- "@deepseek-ai/dsh-skill": "0.1.6-alpha.2",
68
- "@deepseek-ai/dsh-system-prompt": "0.1.6-alpha.2",
69
- "@deepseek-ai/dsh-tools": "0.1.6-alpha.2",
70
- "@deepseek-ai/dsh-typert-protocol": "0.1.6-alpha.2"
48
+ "@deepseek-ai/cordis": "^4.0.5",
49
+ "@deepseek-ai/dsh-api-gateway": "0.2.1-rc.2",
50
+ "@deepseek-ai/dsh-api-remotes": "0.2.1-rc.2",
51
+ "@deepseek-ai/dsh-attachment": "0.2.1-rc.2",
52
+ "@deepseek-ai/dsh-client-connection": "0.2.1-rc.2",
53
+ "@deepseek-ai/dsh-client-ui-deliverables": "0.2.1-rc.2",
54
+ "@deepseek-ai/dsh-client-ui-primitives": "0.2.1-rc.2",
55
+ "@deepseek-ai/dsh-client-ui-renderer": "0.2.1-rc.2",
56
+ "@deepseek-ai/dsh-client-ui-sidebar-documentpreview": "0.2.1-rc.2",
57
+ "@deepseek-ai/dsh-commands": "0.2.1-rc.2",
58
+ "@deepseek-ai/dsh-credentials": "0.2.1-rc.2",
59
+ "@deepseek-ai/dsh-fs": "0.2.1-rc.2",
60
+ "@deepseek-ai/dsh-llm": "0.2.1-rc.2",
61
+ "@deepseek-ai/dsh-sandbox-policy": "0.2.1-rc.2",
62
+ "@deepseek-ai/dsh-session": "0.2.1-rc.2",
63
+ "@deepseek-ai/dsh-skill": "0.2.1-rc.2",
64
+ "@deepseek-ai/dsh-system-prompt": "0.2.1-rc.2",
65
+ "@deepseek-ai/dsh-tools": "0.2.1-rc.2",
66
+ "@deepseek-ai/dsh-typert-protocol": "0.2.1-rc.2"
71
67
  },
72
68
  "dependencies": {
73
69
  "@deepseek-ai/schemastery": "^3.18.1",
74
70
  "zod": "^4.4.3"
75
71
  },
76
72
  "devDependencies": {
77
- "@deepseek-ai/cordis": "^4.0.2",
78
- "@deepseek-ai/dsh": "0.1.6-alpha.2",
79
- "@deepseek-ai/dsh-api-gateway": "0.1.6-alpha.2",
80
- "@deepseek-ai/dsh-api-remotes": "0.1.6-alpha.2",
81
- "@deepseek-ai/dsh-attachment": "0.1.6-alpha.2",
82
- "@deepseek-ai/dsh-client-connection": "0.1.6-alpha.2",
83
- "@deepseek-ai/dsh-client-ui-deliverables": "0.1.6-alpha.2",
84
- "@deepseek-ai/dsh-client-ui-primitives": "0.1.6-alpha.2",
85
- "@deepseek-ai/dsh-client-ui-renderer": "0.1.6-alpha.2",
86
- "@deepseek-ai/dsh-client-ui-sidebar": "0.1.6-alpha.2",
87
- "@deepseek-ai/dsh-client-ui-sidebar-documentpreview": "0.1.6-alpha.2",
88
- "@deepseek-ai/dsh-commands": "0.1.6-alpha.2",
89
- "@deepseek-ai/dsh-fs": "0.1.6-alpha.2",
90
- "@deepseek-ai/dsh-invariants": "0.1.6-alpha.2",
91
- "@deepseek-ai/dsh-llm": "0.1.6-alpha.2",
92
- "@deepseek-ai/dsh-sandbox-policy": "0.1.6-alpha.2",
93
- "@deepseek-ai/dsh-session": "0.1.6-alpha.2",
94
- "@deepseek-ai/dsh-skill": "0.1.6-alpha.2",
95
- "@deepseek-ai/dsh-system-prompt": "0.1.6-alpha.2",
96
- "@deepseek-ai/dsh-tools": "0.1.6-alpha.2",
97
- "@deepseek-ai/dsh-typert-generator": "0.1.6-alpha.2",
98
- "@deepseek-ai/dsh-typert-protocol": "0.1.6-alpha.2",
73
+ "@deepseek-ai/cordis": "^4.0.5",
74
+ "@deepseek-ai/dsh": "0.2.1-rc.2",
75
+ "@deepseek-ai/dsh-api-gateway": "0.2.1-rc.2",
76
+ "@deepseek-ai/dsh-api-remotes": "0.2.1-rc.2",
77
+ "@deepseek-ai/dsh-attachment": "0.2.1-rc.2",
78
+ "@deepseek-ai/dsh-client-connection": "0.2.1-rc.2",
79
+ "@deepseek-ai/dsh-client-ui-deliverables": "0.2.1-rc.2",
80
+ "@deepseek-ai/dsh-client-ui-primitives": "0.2.1-rc.2",
81
+ "@deepseek-ai/dsh-client-ui-renderer": "0.2.1-rc.2",
82
+ "@deepseek-ai/dsh-client-ui-sidebar": "0.2.1-rc.2",
83
+ "@deepseek-ai/dsh-client-ui-sidebar-documentpreview": "0.2.1-rc.2",
84
+ "@deepseek-ai/dsh-commands": "0.2.1-rc.2",
85
+ "@deepseek-ai/dsh-credentials": "0.2.1-rc.2",
86
+ "@deepseek-ai/dsh-fs": "0.2.1-rc.2",
87
+ "@deepseek-ai/dsh-llm": "0.2.1-rc.2",
88
+ "@deepseek-ai/dsh-sandbox-policy": "0.2.1-rc.2",
89
+ "@deepseek-ai/dsh-session": "0.2.1-rc.2",
90
+ "@deepseek-ai/dsh-skill": "0.2.1-rc.2",
91
+ "@deepseek-ai/dsh-system-prompt": "0.2.1-rc.2",
92
+ "@deepseek-ai/dsh-tools": "0.2.1-rc.2",
93
+ "@deepseek-ai/dsh-typert-generator": "0.2.1-rc.2",
94
+ "@deepseek-ai/dsh-typert-protocol": "0.2.1-rc.2",
99
95
  "@deepseek-ai/schemastery": "^3.18.1",
100
96
  "@testing-library/react": "^16.1.0",
101
97
  "@types/node": "^22.20.0",
@@ -129,7 +125,6 @@
129
125
  "files": [
130
126
  "lib/index.js",
131
127
  "lib/client.js",
132
- "lib/invariant.js",
133
128
  "lib/typert.host.js",
134
129
  "lib/typert.host.d.ts",
135
130
  "lib/typert.remote-client.js",
@@ -1,5 +0,0 @@
1
- import type { Context } from '@deepseek-ai/cordis';
2
- export declare const name = "edus-plugin-invariant";
3
- export declare const inject: string[];
4
- export declare const apply: (ctx: Context) => Promise<() => void>;
5
- //# sourceMappingURL=invariant.d.ts.map