mcpField
C
citation-bibliography-generator

citation-bibliography-generator

github.com/dkyazzentwatwaドキュメント124147 回インストール29 週間前に更新
リポジトリ

citation-bibliography-generator について

citation-bibliography-generatorは、学術・専門文書向けの引用と参考文献リストを整形します。5種類のスタイルに対応し、手入力やCSVのほか、DOIまたはISBNによるメタデータ取得も利用できます。

主な機能

  1. 01APA、MLA、Chicago、IEEE、Harvard形式に対応
  2. 02書籍、論文、ウェブサイト、会議論文の引用作成
  3. 03DOIまたはISBNによるメタデータ検索
  4. 04参考文献の並べ替えと重複除去
  5. 05括弧型と叙述型の文中引用作成
  6. 06CSVの取り込みとテキストまたはBibTeXへの出力

活用シーン

  1. 01研究論文の引用形式を整える
  2. 02CSVの引用一覧から参考文献リストを作成
  3. 03DOIのメタデータを取得して文献情報を整形

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/dkyazzentwatwa/chatgpt-skills --skill citation-bibliography-generator

インストール後、Claude Code で/citation-bibliography-generatorを入力して読み込まれたか確認します。

同梱ファイルscripts/citation_generator.pyscripts/requirements.txt

詳細

引用・参考文献ジェネレーター

複数の学術・専門スタイルで、適切な形式の引用と参考文献を生成します。手動入力、構造化データのインポート、DOI/ISBN によるメタデータの自動検索に対応しています。

クイックスタート

from scripts.citation_generator import CitationGenerator

# Create generator with desired style
gen = CitationGenerator(style='apa')

# Cite a book
citation = gen.cite_book(
    authors=["Smith, John", "Doe, Jane"],
    title="Research Methods in Social Science",
    year=2020,
    publisher="Academic Press",
    city="New York"
)
print(citation)
# Output: Smith, J., & Doe, J. (2020). Research methods in social science. Academic Press.

# Build bibliography
gen.add_to_bibliography(citation)
bibliography = gen.generate_bibliography()
print(bibliography)

対応する引用スタイル

  • APA(American Psychological Association)- 第7版
  • MLA(Modern Language Association)- 第9版
  • Chicago(Chicago Manual of Style)- 第17版
  • IEEE(Institute of Electrical and Electronics Engineers)
  • Harvard(Harvard 参照スタイル)

機能

1. 引用の手動作成

資料の種類に応じて引用を整形します。

  • 書籍 - モノグラフ、編集書、版
  • 学術誌論文 - DOI 付きの査読済み論文
  • ウェブサイト - アクセス日を含むオンライン資料
  • 会議論文 - 論文集および発表
2. メタデータの自動検索
  • DOI 検索 - CrossRef API から論文のメタデータを取得
  • ISBN 検索 - 書籍情報を取得(利用可能な場合)
  • 資料の種類を自動検出し、それに応じて整形
3. 参考文献の管理
  • 複数の引用を追加
  • 著者、出版年、タイトルで自動並べ替え
  • 重複の検出と削除
  • プレーンテキストまたは BibTeX 形式でエクスポート
4. 本文中の引用

括弧内形式または叙述形式の本文中の引用を生成します。

  • 括弧内形式:(Smith, 2020, p. 45)
  • 叙述形式:Smith (2020) argues that...
  • 複数著者と et al. の処理
5. 一括処理

構造化データを含む CSV ファイルから引用をインポートし、完全な参考文献リストを生成します。

API リファレンス

CitationGenerator

初期化:

gen = CitationGenerator(style='apa')

パラメーター:

  • style (str):引用スタイル - 'apa'、'mla'、'chicago'、'ieee'、または 'harvard'
引用メソッド
cite_book()
citation = gen.cite_book(
    authors=["Last, First", "Last, First"],
    title="Book Title",
    year=2020,
    publisher="Publisher Name",
    city="City",           # Optional
    edition="3rd ed.",     # Optional
    isbn="978-0-123456-78-9"  # Optional
)

戻り値:整形された引用文字列

cite_article()
citation = gen.cite_article(
    authors=["Last, First"],
    title="Article Title",
    journal="Journal Name",
    year=2020,
    volume=10,          # Optional
    issue=2,            # Optional
    pages="45-67",      # Optional
    doi="10.1234/example"  # Optional
)

戻り値:整形された引用文字列

cite_website()
citation = gen.cite_website(
    authors=["Last, First"],  # Can be empty list
    title="Page Title",
    url="https://example.com",
    access_date="2024-01-15",
    publish_date="2023-12-01"  # Optional
)

戻り値:整形された引用文字列

cite_from_doi()
citation = gen.cite_from_doi(doi="10.1234/example")

CrossRef API から論文のメタデータを検索し、整形された引用を生成します。

戻り値:整形された引用文字列

参考文献の管理
add_to_bibliography()
gen.add_to_bibliography(citation)

参考文献リストに引用を追加します。

generate_bibliography()
bibliography = gen.generate_bibliography(
    sort_by='author',      # 'author', 'year', or 'title'
    deduplicate=True       # Remove duplicate entries
)

戻り値:ぶら下げインデントを適用した、整形済みの参考文献リスト文字列

export_bibtex()
gen.export_bibtex(output_path='references.bib')

LaTeX ドキュメント用に、参考文献を BibTeX 形式でエクスポートします。

本文中の引用
in_text_citation()
citation = gen.in_text_citation(
    authors=["Smith, J."],
    year=2020,
    page="45",          # Optional
    narrative=False     # True for narrative style
)

戻り値:

  • 括弧内形式:(Smith, 2020, p. 45)
  • 叙述形式:Smith (2020)
一括処理
import_from_csv()
citations = gen.import_from_csv(csv_path='citations.csv')

CSV ファイルから複数の引用をインポートします。

CSV 形式:

type,authors,title,year,journal,publisher,doi,isbn,url,access_date
article,"Smith, J.|Doe, A.",Research Methods,2020,Journal of Science,,10.1234/example,,,
book,"Johnson, M.",Data Analysis,2019,,Academic Press,,978-0-123456-78-9,,
website,,"Web Page Title",2024,,,,,https://example.com,2024-01-15

注:複数の著者は | パイプ文字で区切ります。

戻り値:整形された引用文字列のリスト

CLI の使用方法

単一の引用

書籍:

python scripts/citation_generator.py book \
    --authors "Smith, J." "Doe, A." \
    --title "Research Methods" \
    --year 2020 \
    --publisher "Academic Press" \
    --city "New York" \
    --style apa

論文:

python scripts/citation_generator.py article \
    --authors "Smith, J." \
    --title "Study Title" \
    --journal "Journal Name" \
    --year 2020 \
    --volume 10 \
    --issue 2 \
    --pages "45-67" \
    --doi "10.1234/example" \
    --style mla

ウェブサイト:

python scripts/citation_generator.py website \
    --title "Page Title" \
    --url "https://example.com" \
    --access-date "2024-01-15" \
    --style chicago
DOI 検索
python scripts/citation_generator.py doi \
    --doi "10.1234/example" \
    --style apa
一括処理
python scripts/citation_generator.py batch \
    --input citations.csv \
    --style harvard \
    --output bibliography.txt \
    --sort author
BibTeX エクスポート
python scripts/citation_generator.py batch \
    --input citations.csv \
    --format bibtex \
    --output references.bib
CLI 引数
引数説明デフォルト
--style, -s引用スタイル(apa/mla/chicago/ieee/harvard)apa
--authors, -a著者名(複数指定可)-
--title, -t著作物のタイトル-
--year, -y出版年-
--input, -i入力 CSV ファイル(一括処理モード)-
--output, -o出力ファイルのパスstdout
--format, -f出力形式(text/bibtex)text
--sort参考文献の並べ替え基準(author/year/title)author

例

例1:APA 形式の書籍引用
gen = CitationGenerator(style='apa')
citation = gen.cite_book(
    authors=["Doe, Jane", "Smith, John"],
    title="The Art of Research",
    year=2021,
    publisher="University Press",
    edition="2nd ed."
)
print(citation)
# Doe, J., & Smith, J. (2021). The art of research (2nd ed.). University Press.
例2:MLA 形式の論文引用
gen = CitationGenerator(style='mla')
citation = gen.cite_article(
    authors=["Johnson, Mary"],
    title="Digital Humanities in the 21st Century",
    journal="Modern Research Quarterly",
    year=2022,
    volume=15,
    issue=3,
    pages="112-145",
    doi="10.5678/mrq.2022.15.3"
)
print(citation)
# Johnson, Mary. "Digital Humanities in the 21st Century." Modern Research Quarterly, vol. 15, no. 3, 2022, pp. 112-145. DOI: 10.5678/mrq.2022.15.3.
例3:Chicago 形式のウェブサイト引用
gen = CitationGenerator(style='chicago')
citation = gen.cite_website(
    authors=["Brown, Robert"],
    title="Understanding Machine Learning",
    url="https://ml-guide.example.com",
    access_date="2024-01-20",
    publish_date="2023-11-15"
)
print(citation)
# Brown, Robert. "Understanding Machine Learning." Last modified November 15, 2023. Accessed January 20, 2024. https://ml-guide.example.com.
例4:参考文献リストの作成
gen = CitationGenerator(style='apa')

# Add multiple citations
gen.add_to_bibliography(gen.cite_book(
    authors=["Smith, A."],
    title="First Book",
    year=2020,
    publisher="Press A"
))

gen.add_to_bibliography(gen.cite_article(
    authors=["Jones, B."],
    title="Research Article",
    journal="Journal X",
    year=2021
))

# Generate formatted bibliography
bibliography = gen.generate_bibliography(sort_by='author')
print(bibliography)
例5:DOI 検索
gen = CitationGenerator(style='ieee')
citation = gen.cite_from_doi(doi="10.1109/ACCESS.2019.2947014")
print(citation)
# Auto-fetches metadata and formats in IEEE style
例6:CSV からの一括処理
gen = CitationGenerator(style='harvard')
citations = gen.import_from_csv('my_references.csv')

# Add all to bibliography
for citation in citations:
    gen.add_to_bibliography(citation)

# Generate and export
gen.export_bibtex('references.bib')

依存関係

pandas>=2.0.0
requests>=2.31.0

依存関係をインストールします:

pip install -r scripts/requirements.txt

制限事項

  • API の利用可能性:DOI/ISBN の検索にはインターネット接続が必要で、サードパーティの API(CrossRef)に依存します
  • API のレート制限:CrossRef API にはレート制限があります。一括検索では遅延を設けてください
  • スタイルのバリエーション:引用スタイルによっては、分野固有のバリエーションがあり、完全にはカバーされていません
  • 特殊文字:アクセント記号や特殊文字の Unicode サポートは、出力形式によって異なる場合があります
  • 版番号:版の表記方法はスタイルによって異なります(序数表記または文字表記)
  • 著者名の形式:入力には「姓, 名」の形式を使用してください。他の形式の解析結果は一貫しない場合があります
  • 複数の著者:Et al. のルールはスタイルによって異なります(APA:3 人以上、MLA:3 人以上、Chicago:4 人以上)
  • オンライン先行公開論文:印刷版の前にオンライン公開された論文は、メタデータが不完全な場合があります
  • 英語以外の資料:引用スタイルによっては、英語以外の資料に固有のルールがあり、完全には実装されていない場合があります

引用スタイルのガイドライン

APA(American Psychological Association)
  • 著者名と発行年を使用する方式
  • 最後の著者の前にアンパサンド(&)を使用
  • 書籍のタイトルにはタイトルケース、論文のタイトルにはセンテンスケースを使用
  • DOI は URL 形式で記載:https://doi.org/10.xxxx
MLA(Modern Language Association)
  • 著者名とページ番号を使用する方式
  • 最後の著者の前に「And」を使用
  • すべてのタイトルにタイトルケースを使用
  • コンテナの概念(雑誌は論文を収録するコンテナ)
Chicago(Chicago Manual of Style)
  • 脚注と参考文献を使用する方式
  • 最後の著者の前に「And」を使用
  • タイトルにはタイトルケースを使用
  • ウェブサイトの閲覧日を記載
IEEE(Institute of Electrical and Electronics Engineers)
  • 番号付きの文献リスト [1]、[2] など
  • 姓の前にイニシャルを記載
  • 論文のタイトルを引用符で囲む
  • 雑誌名を略記
Harvard
  • 著者名と発行年を使用する方式
  • 最後の著者の前に「And」を使用
  • 書籍名/雑誌名をイタリック体で表記
  • URL には「Available at:」を使用

コメント