Implementation:Alibaba ROLL HomeContent Component
| Knowledge Sources | |
|---|---|
| Domains | Documentation, Frontend |
| Last Updated | 2026-02-07 20:00 GMT |
Overview
React functional component that renders the ROLL documentation homepage with hero section, live statistics, feature highlights, and community engagement areas.
Description
HomeContent/index.js is a 348-line React component that serves as the main landing page for the ROLL Docusaurus documentation site. The component is structured into several visual sections:
- Hero Section -- Displays the ROLL acronym expansion ("Reinforcement Learning Optimization for Large-scale Learning"), a Chinese subtitle when in Chinese locale, a descriptive tagline, and call-to-action buttons linking to the documentation, GitHub repository, and DeepWiki.
- Framework Overview -- Provides a brief description of the ROLL framework and its Ray-based distributed architecture.
- Live Statistics -- Fetches real-time GitHub statistics from a
/ROLL/stats.jsonendpoint and displays animated counters (using CountUp) for GitHub Stars, Contributors, and Commits.
- "Why Choose ROLL" Section -- An expandable Ant Design Collapse component highlighting three key selling points: Distributed Architecture, Multi-task Learning, and Extremely Easy to Use.
- Core Advantages -- A grid layout presenting four capabilities: Born for Scale, Extreme Training Efficiency, Rich Algorithms and Scenarios, and Open Source and Accessible.
- Open Source Community -- Cards for contribution guidelines and social links (WeChat modal, GitHub, X/Twitter).
The component includes a custom useIntersectionObserver hook that triggers fade-in CSS animations when sections scroll into view. It supports both English and Chinese locales via Docusaurus <Translate> components and adapts to dark/light color modes using Ant Design's ConfigProvider.
Key Exports
| Export | Type | Description |
|---|---|---|
| default | React functional component | The HomeContent page component |
| useIntersectionObserver | React hook (internal) | Custom hook returning [elementRef, isVisible] for scroll-triggered animations
|
Usage
This component is used as the homepage content for the ROLL Docusaurus documentation site. It is rendered when users visit the root URL of the docs site. Modify this component to:
- Update the landing page content, statistics, or feature descriptions
- Add new sections or call-to-action elements
- Adjust locale-specific content for English and Chinese audiences
Code Reference
Source Location
- Repository: Alibaba_ROLL
- File:
docs_roll/src/components/HomeContent/index.js
Data Schema / Signature
# Component Signature (React)
# Default export: () => JSX.Element
# useIntersectionObserver Hook Signature
# (options?: IntersectionObserverInit) => [React.RefObject, boolean]
Component Dependencies:
{
"react": "useState, useEffect, useRef",
"antd": "Button, Image, Divider, Col, Row, Collapse, Modal, ConfigProvider, theme",
"@ant-design/icons": "GithubOutlined, WechatOutlined, XOutlined",
"clsx": "clsx",
"@docusaurus/theme-common": "useColorMode",
"@docusaurus/useDocusaurusContext": "useDocusaurusContext",
"@docusaurus/Translate": "Translate",
"dayjs": "dayjs",
"react-countup": "CountUp",
"./styles.module.css": "styles"
}
I/O Contract
Inputs
| Input | Type | Source | Description |
|---|---|---|---|
| Stats JSON | HTTP response | /ROLL/stats.json |
JSON object keyed by date (YYYY-MM-DD) with stars, contributors, commits counts
|
| Locale | string | Docusaurus context | Current locale string (e.g., "en" or "zh-Hans") determining language and URL paths |
| Color mode | string | Docusaurus theme | "dark" or "light" to configure Ant Design theme algorithm |
Outputs
| Output | Type | Description |
|---|---|---|
| Rendered JSX | React element | Full homepage layout with hero, stats, features, and community sections |
| WeChat Modal | UI interaction | Modal popup displaying WeChat QR code image when triggered |
Usage Examples
# This is a React (JavaScript) component. Below shows how it is typically
# referenced in a Docusaurus page configuration.
# In a Docusaurus page file (e.g., src/pages/index.js):
# import HomeContent from '@site/src/components/HomeContent';
#
# export default function Home() {
# return <HomeContent />;
# }
Stats JSON format expected by the component:
{
"2026-02-07": {
"stars": 2620,
"contributors": 37,
"commits": 371
}
}