Skip to content

Commit dddffee

Browse files
committed
fix(profile-edit): 改善编辑页文案,让普通用户知道每个字段填什么
用户反馈"编辑个人主页这地方不知道 edit 什么,不懂 papers 是什么意思"。 根因是字段名是工程师视角(bio/tagline/pinned_papers),普通用户不理解。 改动: - 编辑页顶部加一段"About this page"总说明:填的东西去哪里显示、全都可选 - 每个 Section 从只有 SEC 编号,扩成「SEC 编号 + 中文大标题 + 一句话描述」 - PAPERS 块重命名为"最近在读 / 推荐的论文"(papers 太学术,降低理解门槛) - placeholder 从抽象("项目名")换成具体示例("involutionhell.com") - IDENTITY/LINKS/PROJECTS/PAPERS 4 块都加 heading + description 说明作用 主页空态文案: - 旧:"该用户还没有填写 projects / papers"(用户反馈看不懂) - 新:"Ta 还没填个人项目和最近在读的论文" + 小字补充"仍会显示 GitHub repos 和文档贡献"
1 parent c9bf9c8 commit dddffee

2 files changed

Lines changed: 71 additions & 20 deletions

File tree

app/u/[username]/edit/EditProfileForm.tsx

Lines changed: 65 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -222,32 +222,56 @@ export function EditProfileForm({ targetIdentifier }: Props) {
222222

223223
return (
224224
<form onSubmit={handleSubmit} className="flex flex-col gap-10">
225+
{/* 编辑页顶部总说明:告诉用户这个页面都干什么 */}
226+
<div className="border border-[var(--foreground)] bg-[var(--background)] p-6 text-sm text-neutral-700 dark:text-neutral-300 leading-relaxed">
227+
<div className="font-mono text-[10px] uppercase tracking-widest text-neutral-500 mb-2">
228+
About this page
229+
</div>
230+
<p>
231+
这里填的内容会显示在你的个人主页{" "}
232+
<code className="font-mono text-[#CC0000]">
233+
/u/{user?.githubId ?? user?.username ?? "你"}
234+
</code>{" "}
235+
上,让别人知道你是谁、做什么、在读什么。全部字段都是
236+
<strong> 可选</strong>,填哪个显示哪个;不填主页就只显示 GitHub
237+
基础信息 + 贡献统计。
238+
</p>
239+
</div>
240+
225241
{/* Section 1: 基础 */}
226-
<Section title="SEC. 01 · IDENTITY">
227-
<Field label="Tagline(一行小标题,如 research focus)">
242+
<Section
243+
title="SEC. 01 · IDENTITY"
244+
heading="关于你自己"
245+
description="一句小标题 + 一段自我介绍,会显示在主页左侧大块最上方。相当于你在站内的名片。"
246+
>
247+
<Field label="一句话标签(tagline,80 字以内)">
228248
<input
229249
type="text"
230250
value={prefs.tagline}
231251
onChange={(e) => setPrefs({ ...prefs, tagline: e.target.value })}
232252
maxLength={80}
233-
placeholder="e.g. LLM Safety / Scaling Laws"
253+
placeholder="比如:LLM Safety 方向 · UNSW 在读 / 全栈搞着玩 / 找暑期实习中"
234254
className="w-full border border-[var(--foreground)] bg-[var(--background)] px-3 py-2 font-mono text-sm"
235255
/>
236256
</Field>
237-
<Field label="Bio(一段话自我介绍,建议 80-200 )">
257+
<Field label="自我介绍(bio,80-200 字较合适)">
238258
<textarea
239259
value={prefs.bio}
240260
onChange={(e) => setPrefs({ ...prefs, bio: e.target.value })}
241261
rows={4}
242262
maxLength={500}
243-
placeholder="介绍你是谁、在做什么、想认识什么人。"
263+
placeholder="你是谁、在做什么、感兴趣的方向。举例:我是 xxx,读研在做 LLM 对齐,平时写写文档和小工具。想认识做 RLHF / 评估 / infra 的朋友。"
244264
className="w-full border border-[var(--foreground)] bg-[var(--background)] px-3 py-2 font-serif text-sm leading-relaxed resize-y"
245265
/>
246266
</Field>
247267
</Section>
248268

249269
{/* Section 2: Links */}
250-
<Section title="SEC. 02 · LINKS">
270+
<Section
271+
title="SEC. 02 · LINKS"
272+
heading="外部链接"
273+
description="想让大家跟你联系 / 了解你的其他地方。最多 5 条,会显示在主页左侧大块底部,以小按钮形式展示。"
274+
>
251275
<RepeatableList
252276
items={prefs.links}
253277
onChange={(items) => setPrefs({ ...prefs, links: items })}
@@ -259,14 +283,14 @@ export function EditProfileForm({ targetIdentifier }: Props) {
259283
type="text"
260284
value={item.label}
261285
onChange={(e) => update({ ...item, label: e.target.value })}
262-
placeholder="Label (GitHub / Blog / Twitter)"
286+
placeholder="按钮上显示的字,如 Blog / Twitter / 知乎"
263287
className="border border-[var(--foreground)] bg-[var(--background)] px-3 py-2 font-mono text-xs uppercase"
264288
/>
265289
<input
266290
type="url"
267291
value={item.url}
268292
onChange={(e) => update({ ...item, url: e.target.value })}
269-
placeholder="https://..."
293+
placeholder="https://your-blog.com"
270294
className="border border-[var(--foreground)] bg-[var(--background)] px-3 py-2 font-mono text-xs"
271295
/>
272296
</div>
@@ -275,7 +299,11 @@ export function EditProfileForm({ targetIdentifier }: Props) {
275299
</Section>
276300

277301
{/* Section 3: Projects */}
278-
<Section title="SEC. 03 · PROJECTS">
302+
<Section
303+
title="SEC. 03 · PROJECTS"
304+
heading="你自己的项目"
305+
description="想展示的个人项目 / 玩具 / 开源作品。GitHub 公开 repos 会自动出现在主页底部,这里填 GitHub 里没有或想单独强调的。最多 8 条。"
306+
>
279307
<RepeatableList
280308
items={prefs.projects}
281309
onChange={(items) => setPrefs({ ...prefs, projects: items })}
@@ -287,7 +315,7 @@ export function EditProfileForm({ targetIdentifier }: Props) {
287315
type="text"
288316
value={item.title}
289317
onChange={(e) => update({ ...item, title: e.target.value })}
290-
placeholder="项目名"
318+
placeholder="项目名,如 involutionhell.com"
291319
className="border border-[var(--foreground)] bg-[var(--background)] px-3 py-2 font-serif text-sm font-bold"
292320
/>
293321
<textarea
@@ -296,14 +324,14 @@ export function EditProfileForm({ targetIdentifier }: Props) {
296324
update({ ...item, description: e.target.value })
297325
}
298326
rows={2}
299-
placeholder="一段描述"
327+
placeholder="一两句说明做了什么、解决什么问题。hover 时会展开显示"
300328
className="border border-[var(--foreground)] bg-[var(--background)] px-3 py-2 font-sans text-xs resize-y"
301329
/>
302330
<input
303331
type="url"
304332
value={item.url}
305333
onChange={(e) => update({ ...item, url: e.target.value })}
306-
placeholder="项目链接"
334+
placeholder="项目链接(GitHub repo / 产品首页)"
307335
className="border border-[var(--foreground)] bg-[var(--background)] px-3 py-2 font-mono text-xs"
308336
/>
309337
<input
@@ -318,16 +346,20 @@ export function EditProfileForm({ targetIdentifier }: Props) {
318346
.filter(Boolean),
319347
})
320348
}
321-
placeholder="tags,逗号分隔TypeScript, LLM, RL)"
349+
placeholder="技术栈标签,逗号分隔。例如 TypeScript, Next.js, LLM"
322350
className="border border-[var(--foreground)] bg-[var(--background)] px-3 py-2 font-mono text-xs"
323351
/>
324352
</div>
325353
)}
326354
/>
327355
</Section>
328356

329-
{/* Section 4: Papers */}
330-
<Section title="SEC. 04 · PINNED PAPERS">
357+
{/* Section 4: Papers — 重命名为"最近在读 / 推荐的论文",用户更能理解 */}
358+
<Section
359+
title="SEC. 04 · PAPERS"
360+
heading="最近在读 / 推荐的论文"
361+
description="你最近读到觉得值得分享的论文(学术 / 技术博客都行)。可以填 Zotero itemKey 自动补齐信息,也可以手动填标题作者年份。不是必填,没有就留空。"
362+
>
331363
<RepeatableList
332364
items={prefs.pinned_papers}
333365
onChange={(items) => setPrefs({ ...prefs, pinned_papers: items })}
@@ -418,16 +450,31 @@ export function EditProfileForm({ targetIdentifier }: Props) {
418450

419451
function Section({
420452
title,
453+
heading,
454+
description,
421455
children,
422456
}: {
457+
/** 左上角的 SEC 编号,全大写英文 */
423458
title: string;
459+
/** 大号中文标题,让用户一眼知道这是什么 */
460+
heading: string;
461+
/** 一两句话解释这块填什么、填了之后主页哪里会显示 */
462+
description: string;
424463
children: React.ReactNode;
425464
}) {
426465
return (
427466
<section className="border border-[var(--foreground)] p-6 lg:p-8 flex flex-col gap-4">
428-
<div className="font-mono text-[10px] uppercase tracking-widest text-neutral-500 border-b border-[var(--foreground)] pb-3">
429-
{title}
430-
</div>
467+
<header className="border-b border-[var(--foreground)] pb-3 flex flex-col gap-1">
468+
<div className="font-mono text-[10px] uppercase tracking-widest text-neutral-500">
469+
{title}
470+
</div>
471+
<h2 className="font-serif text-xl font-black text-[var(--foreground)]">
472+
{heading}
473+
</h2>
474+
<p className="text-xs text-neutral-600 dark:text-neutral-400 leading-relaxed">
475+
{description}
476+
</p>
477+
</header>
431478
{children}
432479
</section>
433480
);

app/u/[username]/page.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -393,8 +393,12 @@ export default async function UserProfilePage({ params }: Param) {
393393
/>
394394
))}
395395
{projects.length === 0 && papers.length === 0 && (
396-
<div className="col-span-full border border-dashed border-[var(--foreground)] p-10 text-center text-neutral-500 font-mono text-sm">
397-
该用户还没有填写 projects / papers。
396+
<div className="col-span-full border border-dashed border-[var(--foreground)] p-10 text-center text-neutral-500 font-sans text-sm leading-relaxed">
397+
Ta 还没填个人项目和最近在读的论文。
398+
<br />
399+
<span className="text-xs text-neutral-400">
400+
(下方仍会显示 GitHub 公开 repos 和文档贡献记录)
401+
</span>
398402
</div>
399403
)}
400404
</div>

0 commit comments

Comments
 (0)