Skip to content

Commit 8c10b8d

Browse files
committed
project slimming
0 parents  commit 8c10b8d

File tree

143 files changed

+4348
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

143 files changed

+4348
-0
lines changed
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
name: Optimize images to ~200KB
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
paths:
7+
- '**/*.png'
8+
- '**/*.jpg'
9+
- '**/*.jpeg'
10+
11+
jobs:
12+
optimize:
13+
runs-on: ubuntu-latest
14+
15+
steps:
16+
- uses: actions/checkout@v4
17+
18+
- name: Setup Node
19+
uses: actions/setup-node@v4
20+
with:
21+
node-version: '20'
22+
23+
- name: Install squoosh CLI
24+
run: npm i -g @squoosh/cli
25+
26+
- name: Convert & compress images toward <=200KB
27+
shell: bash
28+
run: |
29+
set -e
30+
31+
# 需要处理的文件(排除已经是 webp 的)
32+
mapfile -t FILES < <(git ls-files | grep -Ei '\.(jpg|jpeg|png)$')
33+
34+
# 如果没有新图,直接退出
35+
if [ ${#FILES[@]} -eq 0 ]; then
36+
echo "No images to optimize."
37+
exit 0
38+
fi
39+
40+
# 目标上限(字节)
41+
TARGET=200000
42+
43+
# 最大宽度(超过就等比缩小;自行调整,如 1600/1920)
44+
MAXW=1920
45+
46+
for f in "${FILES[@]}"; do
47+
echo "Processing: $f"
48+
49+
# 临时输出名(先转 webp)
50+
out="${f%.*}.webp"
51+
52+
# 先做一次“温和”压缩与缩放
53+
npx @squoosh/cli --webp auto --resize "max_width=${MAXW}" -d /tmp "$f" >/dev/null 2>&1 || true
54+
cand="/tmp/${out##*/}"
55+
56+
# 如果仍超 200KB,则逐步降低质量重试
57+
if [ -f "$cand" ]; then
58+
size=$(stat -c%s "$cand" 2>/dev/null || stat -f%z "$cand")
59+
else
60+
size=999999999
61+
fi
62+
63+
if [ "$size" -gt "$TARGET" ]; then
64+
for q in 85 80 75 70 65 60; do
65+
npx @squoosh/cli --webp "quality=${q}" --resize "max_width=${MAXW}" -d /tmp "$f" >/dev/null 2>&1 || true
66+
cand="/tmp/${out##*/}"
67+
size=$(stat -c%s "$cand" 2>/dev/null || stat -f%z "$cand")
68+
echo " Try quality=$q -> ${size} bytes"
69+
[ "$size" -le "$TARGET" ] && break
70+
done
71+
fi
72+
73+
# 用 webp 替换原图(也可以选择另存到 assets/img/optimized/)
74+
if [ -f "$cand" ]; then
75+
mv "$cand" "$out"
76+
git rm -f --quiet "$f"
77+
git add "$out"
78+
echo " -> Saved as $out"
79+
fi
80+
done
81+
82+
- name: Commit optimized images
83+
uses: EndBug/add-and-commit@v9
84+
with:
85+
message: "chore: optimize images to ~200KB (webp, resize, quality step-down)"
86+
add: "."

.github/workflows/static.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Deploy static content to Pages
2+
3+
on:
4+
push:
5+
branches: ["main"]
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: read
10+
pages: write
11+
id-token: write
12+
13+
concurrency:
14+
group: "pages-${{ github.ref }}"
15+
cancel-in-progress: true
16+
17+
jobs:
18+
build:
19+
runs-on: ubuntu-latest
20+
steps:
21+
- name: Checkout
22+
uses: actions/checkout@v4
23+
# 如果需要 build 步骤,这里可加入
24+
- name: Upload Pages artifact
25+
uses: actions/upload-pages-artifact@v3
26+
with:
27+
name: github-pages-assets
28+
path: "./assets"
29+
30+
deploy:
31+
needs: build
32+
runs-on: ubuntu-latest
33+
environment:
34+
name: github-pages
35+
url: ${{ steps.deployment.outputs.page_url }}
36+
steps:
37+
- name: Deploy to GitHub Pages
38+
id: deployment
39+
uses: actions/deploy-pages@v4
40+
with:
41+
artifact_name: github-pages-assets

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.DS_Store

alumni.html

Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
2+
<!DOCTYPE html>
3+
<html lang="zh-CN">
4+
<head>
5+
<meta charset="utf-8">
6+
<meta name="viewport" content="width=device-width, initial-scale=1">
7+
<title>往届成员 | OpenMOSS Lab</title>
8+
<link rel="icon" type="image/png" href="assets/img/openmoss-logo.png">
9+
<meta name="description" content="OpenMOSS Lab 校友网络">
10+
<link rel="preconnect" href="https://fonts.googleapis.com">
11+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
12+
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap" rel="stylesheet">
13+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" integrity="sha512-gO9FwZP1781OeR3SiPtK0aGpG99nmHn7+O+kO5RAwOB1p5MNDoAuCEi0aKBslZx2drXr/7L0KleKX2ND/qY1KQ==" crossorigin="anonymous" referrerpolicy="no-referrer" />
14+
<link rel="stylesheet" href="assets/css/style.css?v=20251102m">
15+
</head>
16+
<body>
17+
<nav class="navbar">
18+
<div class="container nav-container">
19+
<a class="brand" href="index.html">
20+
<img class="brand-logo" src="assets/img/openmoss-logo.png" alt="OpenMOSS Lab logo">
21+
<span class="brand-name">OpenMOSS Lab</span>
22+
</a>
23+
<button class="nav-toggle" aria-expanded="false" aria-controls="primary-navigation">
24+
<span class="sr-only">Toggle navigation</span>
25+
<span class="icon-bar"></span>
26+
<span class="icon-bar"></span>
27+
<span class="icon-bar"></span>
28+
</button>
29+
<ul class="nav-links" id="primary-navigation">
30+
<li><a href="index.html#pillars" data-i18n="nav.research">研究方向</a></li>
31+
<li><a href="index.html#people" data-i18n="nav.people">团队成员</a></li>
32+
<li><a href="index.html#resources" data-i18n="nav.resources">开放资源</a></li>
33+
<li><a href="https://www.open-moss.com/en/" data-i18n="nav.highlights">最新亮点</a></li>
34+
<li><a href="positions.html" data-i18n="nav.join">加入我们</a></li>
35+
<li>
36+
<button id="lang-toggle" class="lang-btn" aria-label="切换语言">
37+
<i class="fa-solid fa-language"></i>
38+
<span class="lang-text">EN</span>
39+
</button>
40+
</li>
41+
</ul>
42+
</div>
43+
</nav>
44+
45+
<main>
46+
<section id="alumni-main" class="container sec">
47+
<nav aria-label="Breadcrumb" class="alumni-breadcrumb">
48+
<a href="index.html" data-i18n="alumniPage.breadcrumb.home">首页</a>
49+
<span style="opacity:.6;"> / </span>
50+
<a href="people.html" data-i18n="alumniPage.breadcrumb.people">团队成员</a>
51+
<span style="opacity:.6;"> / </span>
52+
<span data-i18n="alumniPage.breadcrumb.alumni"><strong>校友介绍</strong></span>
53+
</nav>
54+
55+
<aside class="toc-sidebar" aria-label="快速导航">
56+
<button class="back-to-top" onclick="window.scrollTo({top: 0, behavior: 'smooth'})" data-i18n="alumniPage.backToTop">回到顶部</button>
57+
<h3 data-i18n="alumniPage.toc">目录</h3>
58+
<div class="toc-links">
59+
<a href="#postdocs" data-i18n="alumniPage.postdocs">博士后</a>
60+
<a href="#phd" data-i18n="alumniPage.phd">博士生</a>
61+
<a href="#masters" data-i18n="alumniPage.masters">硕士生</a>
62+
<a href="#undergrad" data-i18n="alumniPage.undergrad">本科生</a>
63+
<a href="#visiting" data-i18n="alumniPage.visiting">访问学生</a>
64+
</div>
65+
</aside>
66+
67+
<!-- Categorized Alumni Directory -->
68+
<section class="alumni-dir" aria-label="按类别的校友名录">
69+
70+
<h2 id="postdocs" class="section-subtitle" data-i18n="alumniPage.postdocs">博士后</h2>
71+
<div class="alumni-list"></div>
72+
73+
<h2 id="phd" class="section-subtitle" data-i18n="alumniPage.phd">博士生</h2>
74+
<div class="alumni-list"></div>
75+
76+
<h2 id="masters" class="section-subtitle" data-i18n="alumniPage.masters">硕士生</h2>
77+
<div class="alumni-list"></div>
78+
79+
<h2 id="undergrad" class="section-subtitle" data-i18n="alumniPage.undergrad">本科生</h2>
80+
<div class="alumni-list"></div>
81+
82+
<h2 id="visiting" class="section-subtitle" data-i18n="alumniPage.visiting">访问学生</h2>
83+
<div class="alumni-list"></div>
84+
85+
<!-- 历史硕士/博士内容已并入上面的“硕士生/博士生”分组 -->
86+
</section>
87+
88+
89+
90+
91+
92+
<div style="margin-top: 60px; text-align: center; display: flex; justify-content: center; gap: 12px; flex-wrap: wrap;">
93+
<a class="btn btn-outline" href="people.html" data-i18n="alumniPage.backPeople">查看团队成员</a>
94+
<a class="btn btn-primary" href="index.html" data-i18n="alumniPage.backHome">返回首页</a>
95+
</div>
96+
</section>
97+
</main>
98+
99+
<footer class="footer">
100+
<div class="container">
101+
<div class="footer-grid">
102+
<div>
103+
<h4 data-i18n="footer.links">快速链接</h4>
104+
<ul>
105+
<li><a href="projects.html" data-i18n="footer.software">软件</a></li>
106+
<li><a href="positions.html" data-i18n="footer.career">职业发展</a></li>
107+
</ul>
108+
</div>
109+
<div>
110+
<h4 data-i18n="footer.affiliations">合作单位</h4>
111+
<ul>
112+
<li><a href="https://ai.fudan.edu.cn/" data-i18n="footer.fudan">复旦大学计算与智能创新学院</a></li>
113+
<li><a href="https://nlp.fudan.edu.cn/" data-i18n="footer.fudannlp">复旦大学自然语言处理团队</a></li>
114+
<li><a href="https://www.sii.edu.cn/" data-i18n="footer.sii">上海创智学院</a></li>
115+
</ul>
116+
</div>
117+
<div>
118+
<h4 data-i18n="footer.connect">联系我们</h4>
119+
<ul>
120+
<li><a href="https://github.com/OpenMOSS"><i class="fa-brands fa-github"></i> GitHub</a></li>
121+
<li><a href="https://twitter.com/openmosslab"><i class="fa-brands fa-x-twitter"></i> Twitter</a></li>
122+
<li><a href="mailto:[email protected]"><i class="fa-solid fa-envelope"></i> Email</a></li>
123+
</ul>
124+
</div>
125+
<div>
126+
<h4>OpenMOSS Lab</h4>
127+
<ul>
128+
<li data-i18n="footer.address1">上海市徐汇区华发路699弄3号</li>
129+
<li data-i18n="footer.address2">上海市杨浦区淞沪路2005号2X号楼</li>
130+
<li data-i18n="footer.address3">中国</li>
131+
</ul>
132+
</div>
133+
</div>
134+
</div>
135+
<div class="container">
136+
<div class="footer-note">
137+
<p><a href="webmaster.html" style="color: inherit; text-decoration: none;">&copy; <span id="year"></span> OpenMOSS Lab.</a></p>
138+
</div>
139+
</div>
140+
</footer>
141+
142+
<!-- 必须先加载 data2.js,再加载 main.js 和 main2.js -->
143+
<script src="assets/js/data2.js"></script>
144+
<script src="assets/js/main.js"></script>
145+
<script src="assets/js/main2.js"></script>
146+
</body>
147+
</html>

0 commit comments

Comments
 (0)