在学术研究和科技写作中,我们经常需要引用和展示 DOI 文献信息。传统的文本引用虽然标准,但在数字化时代显得有些枯燥。今天要介绍的这个开源项目 React DOI Card,为我们提供了一种全新的、更加美观和直观的文献展示方式。
🎯 项目概览#
React DOI Card 是一个完全独立的 React 组件库,专门用于生成美观的 DOI 文献信息卡片。与传统的文献引用方式不同,它能够自动获取 DOI 对应的文献元数据,并以精美的卡片形式展现,让学术内容的展示更加现代化和用户友好。
核心特性一览#
🌐 完全独立:不依赖任何本地 API,直接调用外部 DOI 服务获取数据
✅ 双语支持:同时支持英文文献(CrossRef API)和中文文献(中国 DOI 解析)
✅ TypeScript 友好:完整的 TypeScript 支持和类型定义
✅ 智能文本处理:所有文本内容支持长文本自动换行
✅ 现代化设计:基于 Microsoft Fluent Design 的美观界面
✅ 智能解析:自动处理完整 DOI 链接或纯 DOI 码
✅ 状态管理:内置完善的加载、错误、成功状态处理
✅ 高度可定制:支持 CSS 类名和内联样式自定义
✅ 轻量级实现:零额外依赖,仅依赖 React
🚀 使用场景#
这个项目特别适合以下场景:
- 学术个人主页:在个人网站上展示发表的论文
- 研究项目文档:在项目 README 中引用相关文献
- 博客文章:在技术博客中引用学术论文
- 在线简历:展示学术成果和发表记录
- 研究报告:在线研究报告中的文献引用
💻 快速体验#
安装非常简单,支持所有主流的包管理器:
# 使用 npm
npm install react-doi-card
# 使用 yarn
yarn add react-doi-card
# 使用 bun
bun add react-doi-card
基础使用同样简洁明了:
import { DoiCard } from 'react-doi-card';
function App() {
return (
<div>
{/* 英文文献 */}
<DoiCard doi="10.1038/nature12373" lang="en" />
{/* 中文文献 */}
<DoiCard doi="10.11821/dlxb202001001" lang="zh" />
{/* 自定义样式 */}
<DoiCard
doi="10.1038/nature12373"
className="my-custom-card"
style={{
boxShadow: '0 4px 6px rgba(0, 0, 0, 0.1)',
borderRadius: '12px'
}}
/>
</div>
);
}
demo:https://doicard.gankun.cn.ma/:::div{style="max=width: 300px"}
:::
🎨 设计亮点#
项目的设计非常用心,主要体现在:
- 视觉设计:采用 Microsoft Fluent Design 设计语言,简洁现代
- 信息层次:清晰的信息架构,标题、作者、期刊、年份等信息层次分明
- 响应式布局:适配不同屏幕尺寸,保持良好的视觉效果
- 状态反馈:加载态、错误态都有相应的视觉反馈
- 无障碍设计:考虑了可访问性,支持屏幕阅读器
🌟 技术实现#
从技术角度来看,这个项目有几个值得关注的点:
双语支持的实现#
项目巧妙地集成了两套 API:
- 英文文献:使用 CrossRef API 获取国际期刊的元数据
- 中文文献:使用中国 DOI 解析服务,很好地解决了中文文献的展示问题
状态管理#
使用自定义 Hook useDoiData
来管理数据获取状态:
const { data, loading, error } = useDoiData(doi, lang);
TypeScript 支持#
完整的类型定义,提供良好的开发体验:
interface DoiCardProps {
doi: string;
lang?: 'en' | 'zh';
className?: string;
style?: React.CSSProperties;
}
🔗 多种使用方式#
项目不仅提供了 React 组件,还提供了 API 服务,可以通过 HTTP 请求直接获取 SVG 格式的卡片:

这种方式特别适合在 Markdown 文档、GitHub README 等场景中使用。
🚀 部署和集成#
项目支持一键部署到 Vercel:
https://vercel.com/new/clone?repository-url=https://github.com/Riceneeder/doi_stats_card
部署后,你就拥有了自己的 DOI 卡片生成服务,可以在任何支持图片的地方使用。
🎯 应用实例#
在实际使用中,你可以这样在 GitHub README 中展示你的论文:
## 我的发表论文
### 2024年发表

### 2023年发表

或者在个人博客中引用相关文献:
## 相关工作
我们的研究基于以下重要工作:

这篇论文为我们提供了理论基础...
🔮 未来展望#
这个项目展现了学术内容数字化展示的新可能。随着开源社区的参与,我们可以期待:
- 更多数据源:支持更多的学术数据库和 DOI 服务
- 主题定制:更多的视觉主题和样式选项
- 互动功能:添加点击跳转、引用统计等功能
- 移动端优化:更好的移动端显示效果
- 国际化:支持更多语言的文献展示
📝 总结#
React DOI Card 是一个非常实用的开源项目,它解决了学术文献展示的痛点:
- 对开发者友好:简单的 API,完整的 TypeScript 支持
- 对用户友好:美观的视觉效果,清晰的信息展示
- 部署简单:一键部署,即开即用
- 使用灵活:支持 React 组件和 HTTP API 两种方式
无论你是学者、博主、还是开发者,如果需要在数字化内容中引用学术文献,这个项目都值得一试。它不仅提升了内容的视觉效果,也让学术交流变得更加现代化。
项目地址:
如果你觉得这个项目有用,不妨给它一个 ⭐ Star,也欢迎贡献代码和想法!