Skip to content

Commit 4a614fb

Browse files
committed
update info
1 parent 66f9c46 commit 4a614fb

File tree

7 files changed

+121
-14
lines changed

7 files changed

+121
-14
lines changed

assets/css/style.css

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1238,6 +1238,19 @@ html[lang="zh-CN"] .footer-grid {
12381238
transform: scale(1.05);
12391239
}
12401240

1241+
/* Webmaster/Dev team name links styling */
1242+
.webmaster-link {
1243+
color: var(--fudan-blue);
1244+
text-decoration: none;
1245+
font-weight: 600;
1246+
transition: all 0.3s ease;
1247+
}
1248+
1249+
.webmaster-link:hover {
1250+
color: var(--fudan-red);
1251+
text-decoration: underline;
1252+
}
1253+
12411254
/* Floating sidebar (Table of Contents) */
12421255
.toc-sidebar {
12431256
position: fixed;

assets/img/郭政颍.jpg

-99.4 KB
Binary file not shown.

assets/js/content-data.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -239,8 +239,21 @@
239239
},
240240
webmaster: {
241241
members: [
242-
{ name: '郑逸宁', role: '网页设计师' },
243-
{ name: '贺心嘉', role: '网页设计师' }
242+
{
243+
name: { zh: '贺心嘉', en: 'Xinji He' },
244+
role: { zh: '网页设计与开发', en: 'Web Design & Development' },
245+
github: 'https://github.com/644p45mhzc-wq'
246+
},
247+
{
248+
name: { zh: '郑逸宁', en: 'Yining Zheng' },
249+
role: { zh: '网页设计与开发', en: 'Web Design & Development' },
250+
github: 'https://github.com/WillQvQ'
251+
},
252+
{
253+
name: { zh: '陈新驰', en: 'Xinchi Chen' },
254+
role: { zh: '网页设计', en: 'Web Design' },
255+
github: 'https://github.com/dalstonChen'
256+
}
244257
]
245258
},
246259
footer: {

assets/js/i18n.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,10 @@
142142
'footer.nlp': '复旦大学自然语言处理实验室',
143143

144144
// 网页设计
145-
'webmaster.title': '网页设计',
146-
'webmaster.intro': '了解维护 OpenMOSS 官网体验的设计与前端志愿者,保持界面一致性与可访问性。'
145+
'webmaster.title': '开发团队',
146+
'webmaster.intro': '了解维护 OpenMOSS 官网体验的设计与前端志愿者,保持界面一致性与可访问性。',
147+
'webmaster.contribute.title': '如何贡献',
148+
'webmaster.contribute.text': '欢迎通过提交 Pull Request 的方式参与网站开发和改进!仓库地址:'
147149
},
148150

149151
en: {
@@ -286,8 +288,10 @@
286288
'footer.nlp': 'The Fudan University Natural Language Processing Group',
287289

288290
// Webmaster
289-
'webmaster.title': 'Webmaster',
290-
'webmaster.intro': 'Meet the design and frontend volunteers who maintain the OpenMOSS website experience, ensuring interface consistency and accessibility.'
291+
'webmaster.title': 'Developers',
292+
'webmaster.intro': 'Meet the design and frontend volunteers who maintain the OpenMOSS website experience, ensuring interface consistency and accessibility.',
293+
'webmaster.contribute.title': 'How to Contribute',
294+
'webmaster.contribute.text': 'Welcome to contribute to the website development and improvements by submitting Pull Requests! Repository: '
291295
}
292296
};
293297

assets/js/spa.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@
148148
</div>
149149
<div class="container">
150150
<div class="footer-note">
151-
<p>&copy; ${year} OpenMOSS Team</p>
151+
<p><a href="#webmaster" style="color: rgba(255, 255, 255, 0.75); text-decoration: none;">${currentLang === 'zh' ? '开发团队' : 'Developers'}</a> | &copy; ${year} OpenMOSS Team</p>
152152
</div>
153153
</div>
154154
</footer>
@@ -650,6 +650,7 @@
650650
}
651651

652652
function renderWebmaster() {
653+
const repoUrl = 'https://github.com/OpenMOSS/openmoss.github.io';
653654
return `
654655
<section class="container sec">
655656
<div class="page-hero-copy">
@@ -659,12 +660,16 @@
659660
<div class="alumni-list">
660661
${SPA_DATA.webmaster.members.map(member => `
661662
<div class="alumni-row">
662-
<span class="name">${member.name}</span>
663-
<span class="destination">${member.role}</span>
663+
<span class="name"><a href="${member.github}" target="_blank" class="webmaster-link">${member.name[currentLang] || member.name.zh}</a></span>
664+
<span class="destination">${member.role[currentLang] || member.role.zh}</span>
664665
</div>
665666
`).join('')}
666667
</div>
667668
</section>
669+
<section class="container sec" style="margin-top: 48px;">
670+
<h2>${t('webmaster.contribute.title')}</h2>
671+
<p>${t('webmaster.contribute.text')}<a href="${repoUrl}" target="_blank" style="color: var(--fudan-blue); font-weight: 500;">${repoUrl}</a></p>
672+
</section>
668673
`;
669674
}
670675

assets/js/team-data.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,6 @@ const teamData = {
155155
{ id: 'senyu-fei', name: { zh: '费森俞', en: 'Senyu Fei' }, photo: 'assets/img/费森俞.JPEG' },
156156
{ id: 'zhaoye-fei', name: { zh: '费朝烨', en: 'Zhaoye Fei' }, photo: 'assets/img/费朝烨.jpeg', homepage: 'https://ngc7292.github.io/' },
157157
{ id: 'zhaoyang-fu', name: { zh: '付兆洋', en: 'Zhaoyang Fu' }, photo: 'assets/img/付兆洋.jpg' },
158-
{ id: 'siyang-he', name: { zh: '何思洋', en: 'Siyang He' }, photo: 'assets/img/何思洋.jpg' },
159158
{ id: 'xingyang-he', name: { zh: '何星阳', en: 'Xingyang He' }, photo: 'assets/img/何星阳.png' },
160159
{ id: 'tianyu-huai', name: { zh: '怀天宇', en: 'Tianyu Huai' }, photo: 'assets/img/怀天宇.jpg', homepage: 'https://yutinh.github.io/' },
161160
{ id: 'zezheng-huai', name: { zh: '淮泽正', en: 'Zezheng Huai' }, photo: 'assets/img/淮泽正.jpg', homepage: 'https://github.com/Huaizz-shawen' },
@@ -204,7 +203,8 @@ const teamData = {
204203
{ id: 'haowei-zhang', name: { zh: '张浩威', en: 'Haowei Zhang' }, photo: 'assets/img/张浩威.png', homepage: 'https://haowei-freesky.github.io/' },
205204
{ id: 'haozhe-zhang', name: { zh: '张浩哲', en: 'Haozhe Zhang' }, photo: 'assets/img/张浩哲.png' },
206205
{ id: 'wenbo-zhang', name: { zh: '张文擘', en: 'Wenbo Zhang' }, photo: 'assets/img/张文擘.JPEG', homepage: 'https://github.com/ppolariss' },
207-
{ id: 'yiyang-zhang', name: { zh: '张奕洋', en: 'Yiyang Zhang' }, photo: 'assets/img/张奕洋.jpg', homepage: 'https://github.com/CloudRipple' }
206+
{ id: 'yiyang-zhang', name: { zh: '张奕洋', en: 'Yiyang Zhang' }, photo: 'assets/img/张奕洋.jpg', homepage: 'https://github.com/CloudRipple' },
207+
{ id: 'kang-yu', name: { zh: '于康', en: 'Kang Yu' }, photo: 'assets/img/于康.jpg', homepage: 'https://kaysonyu.github.io' }
208208
],
209209

210210
// 硕士研究生
@@ -263,7 +263,7 @@ const teamData = {
263263
{ id: 'kuangwei-chen', name: { zh: '陈匡巍', en: 'Kuangwei Chen' }, photo: 'assets/img/陈匡巍.jpg' },
264264
{ id: 'zihao-dai', name: { zh: '戴子皓', en: 'Zihao Dai' }, photo: 'assets/img/戴子皓.jpg' },
265265
{ id: 'tingshuo-fan', name: { zh: '范庭朔', en: 'Tingshuo Fan' }, photo: 'assets/img/范庭朔.png', homepage: 'https://survivor613.github.io/' },
266-
{ id: 'ching-wing-kwok', name: { zh: '郭政颍', en: 'Ching Wing Kwok' }, photo: 'assets/img/郭政颍.jpg', homepage: 'https://academic.seleixi.site/' },
266+
{ id: 'siyang-he', name: { zh: '何思洋', en: 'Siyang He' }, photo: 'assets/img/何思洋.jpg' },
267267
{ id: 'chen-hu', name: { zh: '胡宸', en: 'Hu Chen' }, photo: 'assets/img/胡宸.jpg' },
268268
{ id: 'luozhijie-jin', name: { zh: '金罗智杰', en: 'Luozhijie Jin' }, photo: 'assets/img/金罗智杰.png' },
269269
{ id: 'changsong-li', name: { zh: '李畅松', en: 'Changsong Li' }, photo: 'assets/img/李畅松.jpg' },
@@ -304,8 +304,7 @@ const teamData = {
304304
{ id: 'hongnan-ma', name: { zh: '马红楠', en: 'Hongnan Ma' }, photo: 'assets/img/马红楠.jpg' },
305305
{ id: 'jiaxing-miao', name: { zh: '苗嘉兴', en: 'Jiaxing Miao' }, photo: 'assets/img/苗嘉兴.jpg', homepage: 'https://scholar.google.com/citations?user=LU4PAJUAAAAJ&hl=en' },
306306
{ id: 'yiwei-shi', name: { zh: '史一苇', en: 'Yiwei Shi' }, photo: 'assets/img/史一苇.jpg' },
307-
{ id: 'yiran-suo', name: { zh: '锁祎然', en: 'Yiran Suo' }, photo: 'assets/img/锁祎然.png' },
308-
{ id: 'kang-yu', name: { zh: '于康', en: 'Kang Yu' }, photo: 'assets/img/于康.jpg', homepage: 'https://kaysonyu.github.io' }
307+
{ id: 'yiran-suo', name: { zh: '锁祎然', en: 'Yiran Suo' }, photo: 'assets/img/锁祎然.png' }
309308
],
310309

311310
// 校友(已毕业)

sort-students.js

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
// 对博士生和硕士生列表进行字典序排序的脚本
2+
const fs = require('fs');
3+
const path = require('path');
4+
5+
// 读取 team-data.js 文件
6+
const filePath = path.join(__dirname, 'assets/js/team-data.js');
7+
let content = fs.readFileSync(filePath, 'utf8');
8+
9+
// 提取博士生数组
10+
const phdMatch = content.match(/phdStudents:\s*\[([\s\S]*?)\s*\],\s*\/\/ /);
11+
const phdArrayStr = phdMatch ? phdMatch[1] : '';
12+
13+
// 提取硕士生数组
14+
const masterMatch = content.match(/masterStudents:\s*\[([\s\S]*?)\s*\],\s*\/\/ /);
15+
const masterArrayStr = masterMatch ? masterMatch[1] : '';
16+
17+
// 解析学生对象的函数
18+
function parseStudents(arrayStr) {
19+
const students = [];
20+
const regex = /\{\s*id:\s*'([^']+)',\s*name:\s*\{\s*zh:\s*'([^']+)',\s*en:\s*'([^']+)'\s*\},\s*photo:\s*'([^']+)'(?:,\s*homepage:\s*'([^']+)')?\s*\}/g;
21+
22+
let match;
23+
while ((match = regex.exec(arrayStr)) !== null) {
24+
students.push({
25+
id: match[1],
26+
nameZh: match[2],
27+
nameEn: match[3],
28+
photo: match[4],
29+
homepage: match[5] || null,
30+
original: match[0]
31+
});
32+
}
33+
return students;
34+
}
35+
36+
// 格式化学生对象为代码字符串
37+
function formatStudent(student, indent = ' ') {
38+
const homepageStr = student.homepage ? `, homepage: '${student.homepage}'` : '';
39+
return `${indent}{ id: '${student.id}', name: { zh: '${student.nameZh}', en: '${student.nameEn}' }, photo: '${student.photo}'${homepageStr} }`;
40+
}
41+
42+
// 解析学生列表
43+
const phdStudents = parseStudents(phdArrayStr);
44+
const masterStudents = parseStudents(masterArrayStr);
45+
46+
console.log(`找到 ${phdStudents.length} 个博士生`);
47+
console.log(`找到 ${masterStudents.length} 个硕士生`);
48+
49+
// 按英文名字典序排序
50+
phdStudents.sort((a, b) => a.nameEn.localeCompare(b.nameEn));
51+
masterStudents.sort((a, b) => a.nameEn.localeCompare(b.nameEn));
52+
53+
// 生成排序后的代码
54+
console.log('\n========== 排序后的博士生列表 ==========\n');
55+
console.log(' phdStudents: [');
56+
phdStudents.forEach((student, index) => {
57+
const comma = index < phdStudents.length - 1 ? ',' : '';
58+
console.log(formatStudent(student) + comma);
59+
});
60+
console.log(' ],\n');
61+
62+
console.log('\n========== 排序后的硕士生列表 ==========\n');
63+
console.log(' masterStudents: [');
64+
masterStudents.forEach((student, index) => {
65+
const comma = index < masterStudents.length - 1 ? ',' : '';
66+
console.log(formatStudent(student) + comma);
67+
});
68+
console.log(' ],\n');
69+
70+
// 询问是否要写入文件
71+
console.log('\n提示: 将上面的排序结果复制到 team-data.js 中对应位置');
72+
console.log('或者运行: node sort-students.js > sorted-output.txt');
73+

0 commit comments

Comments
 (0)