From adea781b8ee9b4a87739b8e8b4896f3c5212ac95 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Fri, 9 Oct 2026 15:13:06 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E4=B8=80=E8=A8=80):=20=E5=8F=A5=E5=AD=90?= =?UTF-8?q?=E4=B8=8B=E9=9D=A2=E5=A4=9A=E6=8C=82=E4=BA=86=E4=B8=AA=E3=80=8C?= =?UTF-8?q?=C2=B7=20=E6=B8=B8=E6=88=8F=E3=80=8D=E3=80=8C=C2=B7=20=E5=8A=A8?= =?UTF-8?q?=E7=94=BB=E3=80=8D=E7=9A=84=E5=88=86=E7=B1=BB=EF=BC=8C=E7=9C=8B?= =?UTF-8?q?=E7=9D=80=E5=95=B0=E5=97=A6=E2=80=94=E2=80=94=E4=B8=8D=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E5=88=86=E7=B1=BB=EF=BC=9B=E6=9C=AC=E6=9C=BA=E4=B8=8D?= =?UTF-8?q?=E7=94=A8=E5=86=8D=E9=85=8D=20env=20=E5=B0=B1=E8=83=BD=E8=AF=BB?= =?UTF-8?q?=E5=88=B0=E4=B8=80=E8=A8=80=E6=95=B0=E6=8D=AE=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 出处只写「—— 谁《出处》」。接口里的分类还在,只用来判断出处要不要加书名号 - HITOKOTO_DIRECTORY 默认值改成仓库旁边的 ../sentences-bundle,.env.example 里那几行撤掉。 线上不受影响:镜像里 Dockerfile 写死了 /data/hitokoto Co-Authored-By: Claude Opus 5.5 --- .env.example | 3 --- apps/api/src/config.ts | 6 +++--- apps/api/src/routes/site.ts | 2 +- apps/web/src/shared/components/Hitokoto.vue | 21 ++++----------------- packages/contract/src/site.ts | 3 ++- 5 files changed, 10 insertions(+), 25 deletions(-) diff --git a/.env.example b/.env.example index 1f42ecc..d795880 100644 --- a/.env.example +++ b/.env.example @@ -16,6 +16,3 @@ TRIAL_CONCURRENCY=2 ALLOWED_WS_ORIGINS= OJ2_DEV_USERNAME=student OJ2_DEV_PASSWORD=student123 -# 一言数据集(hitokoto 官方的 sentences-bundle)。默认 data/hitokoto;本机放在仓库旁边的话指过去, -# 读不到就回落到内置的三句,不影响启动 -# HITOKOTO_DIRECTORY=../sentences-bundle diff --git a/apps/api/src/config.ts b/apps/api/src/config.ts index 4f8cf74..f0b8464 100644 --- a/apps/api/src/config.ts +++ b/apps/api/src/config.ts @@ -77,7 +77,7 @@ const envSchema = z.object({ AVATAR_DIRECTORY: text("data/avatar"), TEST_CASE_DIRECTORY: text("data/test_case"), UPLOAD_DIRECTORY: text("data/upload"), - HITOKOTO_DIRECTORY: text("data/hitokoto"), + HITOKOTO_DIRECTORY: text("../sentences-bundle"), ALLOWED_WS_ORIGINS: text(""), UPLOAD_URI_PREFIX: text("/public/upload"), AVATAR_URI_PREFIX: text("/public/avatar"), @@ -150,8 +150,8 @@ export const config = { // 判题沙箱把这个目录挂成只读的 /test_case,两边必须指同一处 testCaseDirectory: repoPath(env.TEST_CASE_DIRECTORY), uploadDirectory: repoPath(env.UPLOAD_DIRECTORY), - // 一言数据集(hitokoto.cn 官方导出),和旧后端读同一份:容器里是 /data/hitokoto。 - // 本机 dev 默认路径下没有这份数据,读不到就回落到内置的几条,不影响启动。 + // 一言数据集(hitokoto.cn 官方的 sentences-bundle)。线上容器里是 /data/hitokoto(Dockerfile 写死, + // 这个默认值管不到);本机默认读仓库旁边那份 ../sentences-bundle,读不到就回落到内置的几条,不影响启动。 hitokotoDirectory: repoPath(env.HITOKOTO_DIRECTORY), /** * WebSocket 升级时额外放行的来源(逗号分隔的完整 origin,如 https://oj.example.com)。 diff --git a/apps/api/src/routes/site.ts b/apps/api/src/routes/site.ts index 7538455..982717b 100644 --- a/apps/api/src/routes/site.ts +++ b/apps/api/src/routes/site.ts @@ -34,7 +34,7 @@ siteRoutes.get("/site/online", async (c) => { return success(c, { count: await onlineCount() } satisfies OnlineCount) }) -// 数据集读不到时的兜底(本机 dev 没挂 data/hitokoto 就会走这里) +// 数据集读不到时的兜底(本机旁边没有 sentences-bundle 就会走这里) const fallbackQuotes = [ { hitokoto: "程序首先是写给人读的,其次才是让机器执行。", diff --git a/apps/web/src/shared/components/Hitokoto.vue b/apps/web/src/shared/components/Hitokoto.vue index f094c57..fbeec3f 100644 --- a/apps/web/src/shared/components/Hitokoto.vue +++ b/apps/web/src/shared/components/Hitokoto.vue @@ -5,7 +5,8 @@ import { useThemeVars } from "naive-ui" import { getHitokoto } from "../api" /** - * 一言(设计稿「一言重设计」A 版):大引号 + 一行句子 + 「—— 谁《出处》· 分类」+ 一个看得见的「换一句」。 + * 一言(设计稿「一言重设计」A 版):大引号 + 一行句子 + 「—— 谁《出处》」+ 一个看得见的「换一句」。 + * 分类(动画、诗词……)不显示;接口里的 type 只用来判断出处要不要加书名号。 * 原来只能点句子换,没人知道;出处被截成「来自 Structure and Interpretatio…」。 * 长句(数据集 p90 44 字、最长 255 字)一行放不下,点句子弹出全文。 * 留着它是给学生一点「无聊的乐趣」,别去掉、别挪到看不见的地方。 @@ -56,22 +57,12 @@ const popVars = computed(() => ({
{{ quote.hitokoto }}
-
- - -
+
—— {{ source }}