banner
Riceneeder

Riceneeder

白天研究生,晚上研究死
github
email

React DOI Card:讓學術文獻展示更優雅

在學術研究和科技寫作中,我們經常需要引用和展示 DOI 文獻資訊。傳統的文本引用雖然標準,但在數位化時代顯得有些枯燥。今天要介紹的這個開源專案 React DOI Card,為我們提供了一種全新的、更加美觀和直觀的文獻展示方式。

🎯 專案概覽#

React DOI Card 是一個完全獨立的 React 元件庫,專門用於生成美觀的 DOI 文獻資訊卡片。與傳統的文獻引用方式不同,它能夠自動獲取 DOI 對應的文獻元數據,並以精美的卡片形式展現,讓學術內容的展示更加現代化和用戶友好。

核心特性一覽#

🌐 完全獨立:不依賴任何本地 API,直接調用外部 DOI 服務獲取數據
雙語支持:同時支持英文文獻(CrossRef API)和中文文獻(中國 DOI 解析)
TypeScript 友好:完整的 TypeScript 支持和類型定義
智能文本處理:所有文本內容支持長文本自動換行
現代化設計:基於 Microsoft Fluent Design 的美觀介面
智能解析:自動處理完整 DOI 連結或純 DOI 碼
狀態管理:內置完善的加載、錯誤、成功狀態處理
高度可定制:支持 CSS 類名和內聯樣式自定義
輕量級實現:零額外依賴,僅依賴 React

🚀 使用場景#

這個專案特別適合以下場景:

  1. 學術個人首頁:在個人網站上展示發表的論文
  2. 研究專案文檔:在專案 README 中引用相關文獻
  3. 部落格文章:在技術部落格中引用學術論文
  4. 在線簡歷:展示學術成果和發表記錄
  5. 研究報告:在線研究報告中的文獻引用

💻 快速體驗#

安裝非常簡單,支持所有主流的包管理器:

# 使用 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"}

:::

🎨 設計亮點#

專案的設計非常用心,主要體現在:

  1. 視覺設計:採用 Microsoft Fluent Design 設計語言,簡潔現代
  2. 資訊層次:清晰的資訊架構,標題、作者、期刊、年份等資訊層次分明
  3. 響應式佈局:適配不同螢幕尺寸,保持良好的視覺效果
  4. 狀態反饋:加載態、錯誤態都有相應的視覺反饋
  5. 無障礙設計:考慮了可訪問性,支持螢幕閱讀器

🌟 技術實現#

從技術角度來看,這個專案有幾個值得關注的點:

雙語支持的實現#

專案巧妙地集成了兩套 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 格式的卡片:

![DOI Card](https://your-domain.vercel.app/api/doi-card?doi=10.1038/nature12373)

截屏 2025-07-02 14.27.20

這種方式特別適合在 Markdown 文檔、GitHub README 等場景中使用。

🚀 部署和集成#

專案支持一鍵部署到 Vercel:

https://vercel.com/new/clone?repository-url=https://github.com/Riceneeder/doi_stats_card

部署後,你就擁有了自己的 DOI 卡片生成服務,可以在任何支持圖片的地方使用。

🎯 應用實例#

在實際使用中,你可以這樣在 GitHub README 中展示你的論文:

## 我的發表論文

### 2024年發表

![論文1](https://your-domain.vercel.app/api/doi-card?doi=10.1038/nature12373)

### 2023年發表  

![論文2](https://your-domain.vercel.app/api/doi-card?doi=10.1126/science.abm6609)

或者在個人部落格中引用相關文獻:

## 相關工作

我們的研究基於以下重要工作:

![基礎理論](https://your-domain.vercel.app/api/doi-card?doi=10.1038/nature12373)

這篇論文為我們提供了理論基礎...

🔮 未來展望#

這個專案展現了學術內容數位化展示的新可能。隨著開源社區的參與,我們可以期待:

  1. 更多數據源:支持更多的學術數據庫和 DOI 服務
  2. 主題定制:更多的視覺主題和樣式選項
  3. 互動功能:添加點擊跳轉、引用統計等功能
  4. 移動端優化:更好的移動端顯示效果
  5. 國際化:支持更多語言的文獻展示

📝 總結#

React DOI Card 是一個非常實用的開源專案,它解決了學術文獻展示的痛點:

  • 對開發者友好:簡單的 API,完整的 TypeScript 支持
  • 對用戶友好:美觀的視覺效果,清晰的資訊展示
  • 部署簡單:一鍵部署,即開即用
  • 使用靈活:支持 React 元件和 HTTP API 兩種方式

無論你是學者、部落客、還是開發者,如果需要在數位化內容中引用學術文獻,這個專案都值得一試。它不僅提升了內容的視覺效果,也讓學術交流變得更加現代化。

專案地址:


如果你覺得這個專案有用,不妨給它一個 ⭐ Star,也歡迎貢獻代碼和想法!

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。