@@ -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
419451function 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 ) ;
0 commit comments