| name | cite-style-converter |
| description | Convert academic citations between APA, MLA, IEEE, and Harvard styles with batch processing and format validation. Trigger when users ask to convert, check, or fix their references, mention specific citation styles, or talk about their bibliography. |
| license | MIT |
Cite Style Converter
An academic citation style conversion tool supporting APA (7th), MLA (9th), IEEE, and Harvard — the four most widely used citation formats. It enables cross-format conversion, format validation, and batch processing.
Supported Styles
| Style | Description | Example |
|---|
| APA | American Psychological Association, 7th ed. | Smith, J. A. (2023). Title. *Journal*, *1*(2), 10-20. |
| MLA | Modern Language Association, 9th ed. | Smith, John A. "Title." *Journal*, vol. 1, no. 2, 2023, pp. 10-20. |
| IEEE | Institute of Electrical and Electronics Engineers | [1] J. A. Smith, "Title," *Journal*, vol. 1, no. 2, pp. 10-20, 2023. |
| Harvard | Harvard Referencing Style | Smith, J.A. (2023) 'Title', *Journal*, 1(2), pp. 10-20. |
Quick Start
1. Convert by Text Input
Convert an APA citation to IEEE format:
python3 scripts/citation_formatter.py convert --to ieee "Smith, J. A. (2023). Machine learning approaches. Nature, 12(3), 45-67."
2. Convert by Structured JSON Input (More Precise)
echo '{"authors":["Smith, John A.","Jones, Mary B."],"year":"2023","title":"Machine learning approaches","journal":"Nature","volume":"12","issue":"3","pages":"45-67","entry_type":"article"}' | python3 scripts/citation_formatter.py format --style ieee
3. Format Validation
python3 scripts/citation_formatter.py check --style apa "Smith J (2023) Machine learning. Nature 12(3) 45-67"
4. Batch Processing
python3 scripts/citation_formatter.py convert --to mla --input refs.txt
python3 scripts/citation_formatter.py check --style apa --input refs.txt
5. Auto-Detect Style
python3 scripts/citation_formatter.py detect "Smith, J. A. (2023). Title. Nature, 12(3), 45-67."
Subcommand Reference
format — Format Structured Data
Converts structured citation data in JSON into a formatted citation string. This is the most reliable method since it doesn't require text parsing.
echo '{"authors":["Zhang, Wei"],"year":"2024","title":"Deep Learning","publisher":"Springer","entry_type":"book"}' | python3 scripts/citation_formatter.py format --style harvard
python3 scripts/citation_formatter.py format --style apa --data '{"authors":["Li, Ming"],"year":"2024","title":"AI Methods","journal":"Science","volume":"5","pages":"1-10","entry_type":"article"}'
python3 scripts/citation_formatter.py format --style mla --input citations.json
JSON Field Reference:
| Field | Type | Required | Description |
|---|
authors | string[] | Yes | List of authors in "Last, First" format |
year | string | Yes | Publication year |
title | string | Yes | Title of the work |
journal | string | For articles | Journal name |
volume | string | | Volume number |
issue | string | | Issue number |
pages | string | | Page range, e.g. "45-67" |
publisher | string | For books | Publisher name |
doi | string | | DOI |
url | string | | URL |
entry_type | string | | article / book / chapter / webpage |
edition | string | | Edition |
city | string | | City of publication |
parse — Parse Text into Structured Data
python3 scripts/citation_formatter.py parse "Smith, J. A. (2023). Title. Nature, 12(3), 45-67."
convert — Convert Between Styles
python3 scripts/citation_formatter.py convert --to harvard "Smith, J. A. (2023). Title. Nature, 12(3), 45-67."
python3 scripts/citation_formatter.py convert --from apa --to ieee "Smith, J. A. (2023). Title. Nature, 12(3), 45-67."
python3 scripts/citation_formatter.py convert --to mla --json "Smith, J. A. (2023). Title. Nature, 12(3), 45-67."
check — Validate Citation Format
python3 scripts/citation_formatter.py check --style apa "Smith, J. A. (2023). Title. Nature, 12(3), 45-67."
python3 scripts/citation_formatter.py check --style apa --json "Smith, J. A. (2023). Title. Nature, 12(3), 45-67."
Validation checks include:
- Missing required fields (author, title, year)
- Year format correctness
- Journal name, volume, and page numbers for journal articles
- Publisher information for books
- DOI format
- Style-specific punctuation and structural conventions
detect — Auto-Detect Citation Style
python3 scripts/citation_formatter.py detect "[1] J. Smith, \"Title,\" Nature, vol. 1, 2023."
Usage Tips
- Most reliable method: Extract structured information from user input, build the JSON, then use the
format subcommand
- Quick conversion: If the user already has properly formatted citation text, use the
convert subcommand directly
- Batch processing: Place citations in a file (one per line) and use the
--input flag
- Quality assurance: After conversion, verify results with the
check subcommand
Prerequisites
- Python 3.7+
- No additional dependencies required (uses only the standard library)
- No API key needed