Skip to content

Commit cd68ffa

Browse files
xpqiuclaude
andcommitted
Optimize site: performance, SEO, accessibility, image weight
Homepage / SPA: - Remove render-blocking Font Awesome CDN; replace with inline SVG icons - Add SEO/social metadata (Open Graph, Twitter cards, JSON-LD Organization, canonical, theme-color), robots.txt, sitemap.xml, noscript fallback; set document.title per route + language - Lazy-load member photos; defer scripts - Accessibility: semantic <button>s for in-page nav, :focus-visible, aria-current on active nav - Compress homepage highlight thumbnails to WebP (887K -> 252K) Blog: - Remove Font Awesome CDN from all 27 posts + shared chrome (inline SVG footer icons in blog-chrome.js/css) - Convert hero + heavy figures to WebP; downscale oversized figures (some 6000-12700px wide) -> blog image weight 59.7MB -> 35.2MB - Lazy-load 110 below-the-fold figures Cleanup / tooling: - Delete 16 unreferenced orphan images (2.4MB), each verified safe - Add reproducible tooling under scripts/ (image optimization, sitemap generation, blog-ref validation) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent db8e2f9 commit cd68ffa

162 files changed

Lines changed: 838 additions & 200 deletions

File tree

Some content is hidden

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

assets/css/style.css

Lines changed: 56 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,15 @@ a:focus {
113113
text-decoration: underline;
114114
}
115115

116+
/* Visible keyboard focus for interactive elements (mouse clicks unaffected) */
117+
a:focus-visible,
118+
button:focus-visible,
119+
[tabindex]:focus-visible {
120+
outline: 2px solid var(--fudan-blue);
121+
outline-offset: 2px;
122+
border-radius: 4px;
123+
}
124+
116125
ul {
117126
margin: 0 0 16px 20px;
118127
padding: 0;
@@ -327,6 +336,8 @@ nav.navbar {
327336
font-weight: 500;
328337
border-radius: 24px;
329338
border: 2px solid transparent;
339+
background: transparent;
340+
cursor: pointer;
330341
transition: all 0.2s ease;
331342
}
332343

@@ -1862,18 +1873,27 @@ html[lang="zh-CN"] .footer-grid {
18621873
gap: 4px;
18631874
}
18641875

1865-
.toc-links a {
1876+
.toc-links a,
1877+
.toc-links .toc-link {
18661878
display: block;
1879+
width: 100%;
18671880
text-align: left;
18681881
padding: 8px 12px;
18691882
color: var(--fudan-blue);
18701883
font-weight: 400;
18711884
font-size: 14px;
1885+
font-family: inherit;
1886+
line-height: 1.5;
1887+
background: none;
1888+
border: none;
18721889
border-radius: 6px;
1890+
cursor: pointer;
18731891
transition: all 0.2s ease;
18741892
}
18751893

1876-
.toc-links a:hover {
1894+
.toc-links a:hover,
1895+
.toc-links .toc-link:hover,
1896+
.toc-links .toc-link:focus-visible {
18771897
background: var(--mist);
18781898
text-decoration: none;
18791899
padding-left: 16px;
@@ -2028,12 +2048,40 @@ h3.year-badge {
20282048
}
20292049

20302050
.why-join-icon {
2031-
font-size: 26px;
20322051
margin-bottom: 16px;
20332052
line-height: 1;
20342053
color: var(--fudan-blue);
20352054
}
20362055

2056+
.why-join-icon svg {
2057+
width: 30px;
2058+
height: 30px;
2059+
display: block;
2060+
}
2061+
2062+
/* Footer contact links: inline SVG icon (replaces Font Awesome) */
2063+
.footer-contact-link {
2064+
display: inline-flex;
2065+
align-items: center;
2066+
gap: 8px;
2067+
}
2068+
2069+
.footer-contact-icon {
2070+
display: inline-flex;
2071+
flex: 0 0 auto;
2072+
color: var(--fudan-blue);
2073+
}
2074+
2075+
.footer-contact-icon svg {
2076+
width: 16px;
2077+
height: 16px;
2078+
display: block;
2079+
}
2080+
2081+
.footer-contact-link:hover .footer-contact-icon {
2082+
color: var(--fudan-blue-80);
2083+
}
2084+
20372085
.why-join-card h4 {
20382086
font-size: 18px;
20392087
font-weight: 600;
@@ -2066,7 +2114,11 @@ h3.year-badge {
20662114
}
20672115

20682116
.why-join-icon {
2069-
font-size: 24px;
20702117
margin-bottom: 14px;
20712118
}
2119+
2120+
.why-join-icon svg {
2121+
width: 27px;
2122+
height: 27px;
2123+
}
20722124
}

assets/highlights.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ title: Organizational Intelligence: Governing Agentic AI at the Level of the Org
2121
desc: As AI moves from capable models to autonomous agents, the binding constraint shifts from the model to the organization around it. This essay argues the organization—not the isolated model or task—is the right unit for designing, evaluating, and governing agentic AI, with an eight-element state formalization, three nested feedback loops, and a governance-as-entry-condition L0–L5 maturity model.
2222
标签: AI4AI, 智能体
2323
tags: AI4AI, Agents
24-
图: assets/img/highlights/organizational-intelligence.png
24+
图: assets/img/highlights/organizational-intelligence.webp
2525
链接: /blog/en/organizational-intelligence/
2626

2727
---
@@ -33,7 +33,7 @@ title: Thinking with Video: Video Generation as a Promising Multimodal Reasoning
3333
desc: A “Thinking with Video” paradigm—video-generation models like Sora-2 reason over generated video frames as a unified medium, capturing the dynamic processes that text/image “thinking” cannot. On the new VideoThinkBench it rivals top VLMs and surpasses GPT-5 on visual puzzles.
3434
标签: 多模态, 视频
3535
tags: Multimodal, Video
36-
图: assets/img/highlights/thinking-with-video.png
36+
图: assets/img/highlights/thinking-with-video.webp
3737
链接: /blog/cn/thinking-with-video/
3838

3939
---
@@ -45,7 +45,7 @@ title: MOSS-TTS Technical Report
4545
desc: A scalable speech-generation foundation model supporting zero-shot voice cloning, duration and pronunciation control, smooth code-switching, and stable long-form generation.
4646
标签: 语音
4747
tags: Speech
48-
图: assets/img/highlights/moss-tts.png
48+
图: assets/img/highlights/moss-tts.webp
4949
链接: /blog/cn/moss-tts/
5050

5151
---
@@ -57,7 +57,7 @@ title: AI Can Learn Scientific Taste
5757
desc: Introduces Reinforcement Learning from Community Feedback (RLCF): a "Scientific Judge" trained on large-scale citation signals to assess idea quality, and a "Scientific Thinker" aligned to propose high-impact research ideas—surpassing frontier models like GPT-5.2 and Gemini 3 Pro.
5858
标签: AI4AI
5959
tags: AI4AI
60-
图: assets/img/highlights/scientific-taste.png
60+
图: assets/img/highlights/scientific-taste.webp
6161
链接: /blog/cn/scientific-taste/
6262

6363
---
@@ -69,7 +69,7 @@ title: MOVA: Towards Scalable and Synchronized Video-Audio Generation
6969
desc: An open-source joint video-audio generation model producing high-quality, synchronized visuals and audio—lip-synced speech, environment-aware sound effects, and content-aligned music—built on a MoE architecture (32B total / 18B active).
7070
标签: 视频, 语音
7171
tags: Video, Speech
72-
图: assets/img/highlights/mova.jpg
72+
图: assets/img/highlights/mova.webp
7373
链接: /blog/cn/mova/
7474

7575
---
@@ -81,7 +81,7 @@ title: MOSS-Speech: True Speech-to-Speech Generation
8181
desc: Native end-to-end speech interaction without any intermediate text guidance
8282
标签: 语音
8383
tags: Speech
84-
图: assets/img/highlights/moss-speech.png
84+
图: assets/img/highlights/moss-speech.webp
8585
链接: https://arxiv.org/abs/2510.00499
8686

8787
---
@@ -93,5 +93,5 @@ title: XY-Tokenizer: Low-Bitrate Unified Acoustic-Semantic Encoding
9393
desc: State-of-the-art 1kbps unified acoustic-semantic encoding and discretization tool
9494
标签: 语音
9595
tags: Speech
96-
图: assets/img/highlights/xy-tokenizer.png
96+
图: assets/img/highlights/xy-tokenizer.webp
9797
链接: https://arxiv.org/abs/2506.23325
30.7 KB
Loading
28.1 KB
Loading

assets/img/highlights/mova.webp

87 KB
Loading
21.1 KB
Loading
20.8 KB
Loading
81.8 KB
Loading
55.6 KB
Loading

assets/img/og-image.png

77.4 KB
Loading

0 commit comments

Comments
 (0)