Skip to content

JustCite is a minimalist browser extension that extracts webpage metadata and generates properly formatted academic citations (BibTeX, APA, MLA, Chicago, IEEE, and more) with one click.

License

Notifications You must be signed in to change notification settings

melihcatal/justcite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

15 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

JustCiteJustCite

A modern, minimalist browser extension for generating academic citations. Extract metadata from any webpage and create properly formatted citations in multiple styles.

Table of Contents

โœจ Features

  • Automatic Metadata Extraction: Automatically detects title, author, publication date, DOI, and more from web pages
  • Smart Metadata Enhancement: Uses Semantic Scholar API to fill in missing metadata for academic papers
  • arXiv to Published Version Detection: Automatically detects when an arXiv preprint has a peer-reviewed published version and lets you switch between citing the preprint or the published paper
  • Zotero Integration: Save citations directly to your Zotero library with folder/collection selection
  • Multiple Citation Styles:
    • BibTeX
    • APA 7th Edition
    • MLA 9th Edition
    • Chicago 17th Edition
    • Harvard
    • IEEE
  • Source Types: Supports webpages, articles, books, journals, and news articles
  • One-Click Copy: Instantly copy formatted citations to clipboard
  • Editable Fields: Manually edit or add metadata before generating citations
  • Modern UI: Clean, Material Design-inspired interface with two-column layout
  • Customizable Citation Keys: Configure BibTeX key format using tokens like auth.lower, shorttitle(3,3), year
  • Multiple Output Formats: Export as Plain Text, Markdown, or HTML
  • Optional Access Date: Toggle urldate inclusion for online sources
  • Collapsible Details: Hide/show source information fields for a cleaner view

๐Ÿš€ Installation

Chrome

  1. Download the repository:

    • Click the green "Code" button on GitHub and select "Download ZIP"
    • Or clone the repository: git clone https://github.com/melihcatal/justcite.git
  2. Extract the ZIP file if downloaded

  3. Open Chrome Extensions:

    • Navigate to chrome://extensions/ in your address bar
    • Or go to Menu (โ‹ฎ) โ†’ Extensions โ†’ Manage Extensions
  4. Enable Developer Mode:

    • Toggle "Developer mode" switch in the top right corner
  5. Load the Extension:

    • Click "Load unpacked"
    • Navigate to and select the chrome folder from the extracted files
  6. Pin the Extension (optional):

    • Click the puzzle piece icon in Chrome's toolbar
    • Click the pin icon next to JustCite for easy access

Brave

Brave uses the same extension format as Chrome:

  1. Download the repository (same as Chrome steps above)

  2. Open Brave Extensions:

    • Navigate to brave://extensions/ in your address bar
    • Or go to Menu (โ˜ฐ) โ†’ Extensions โ†’ Manage Extensions
  3. Enable Developer Mode:

    • Toggle "Developer mode" switch in the top right corner
  4. Load the Extension:

    • Click "Load unpacked"
    • Select the chrome folder from the extracted files
  5. Pin the Extension (optional):

    • Click the puzzle piece icon in Brave's toolbar
    • Click the pin icon next to JustCite

Safari (macOS & iOS)

TBD - Coming Soon!

๐Ÿ“– Usage

  1. Navigate to any webpage you want to cite
  2. Click the JustCite extension icon in your browser toolbar
  3. The extension will automatically extract available metadata
  4. Select your desired citation style (BibTeX, APA, MLA, etc.)
  5. Choose the source type (Webpage, Article, Book, etc.)
  6. Expand "Source Details" to edit any fields if needed
  7. Click "Copy" to copy to clipboard

arXiv Published Version Detection

When viewing an arXiv preprint, JustCite automatically checks if a peer-reviewed version exists:

  1. A loading indicator shows "Checking for published version..."
  2. If found, a version switcher appears with two options:
    • arXiv: Cite the preprint version
    • Published: Cite the peer-reviewed publication with proper journal/conference info
  3. Click to toggle between versions - all metadata fields update automatically
  4. The published version includes DOI, journal name, volume, pages, and publication venue

This helps ensure you're citing the most appropriate version of a paper!

๐Ÿ”ง Settings

Click the โš™๏ธ settings icon to customize:

Citation Key Format

Configure how BibTeX citation keys are generated using these tokens:

  • auth.lower - First author's last name, lowercase
  • Auth - First author's last name, capitalized
  • year - Publication year (4 digits)
  • shortyear - Publication year (2 digits)
  • title.lower - First word of title, lowercase
  • shorttitle(n,m) - First n words, max m chars each

Default format: auth.lower + shorttitle(3,3) + year
Example output: smith_mac_lea_2024

Zotero Integration

JustCite can save citations directly to your Zotero library:

  1. Get your Zotero API Key:

    • Go to zotero.org/settings/keys
    • Click "Create new private key"
    • Give it a name (e.g., "JustCite")
    • Enable "Allow library access" and "Allow write access"
    • Copy the generated key
  2. Get your User ID:

    • Your numeric User ID is shown at the top of the keys page
  3. Configure in JustCite:

    • Open JustCite settings (โš™๏ธ icon)
    • Scroll to "Zotero Integration"
    • Paste your API Key and User ID
    • Click "Test Connection" to verify
  4. Save to Zotero:

    • Click the "Zotero" button in the main view
    • Select a collection/folder (optional)
    • Click "Save to Zotero"
    • Sync your Zotero desktop client to see the new item

๐ŸŽจ Supported Metadata Sources

JustCite extracts metadata from:

  • Open Graph tags (og:title, og:site_name, etc.)
  • Citation meta tags (citation_title, citation_author, citation_doi, etc.)
  • Dublin Core tags (dc.title, dc.creator, etc.)
  • JSON-LD structured data
  • Standard HTML elements (<title>, <time>, etc.)

๐Ÿ“ Project Structure

justcite/
โ”œโ”€โ”€ chrome/
โ”‚   โ”œโ”€โ”€ manifest.json        # Extension manifest (Manifest V3)
โ”‚   โ”œโ”€โ”€ popup.html           # Extension popup UI
โ”‚   โ”œโ”€โ”€ popup.css            # Styles (Material Design)
โ”‚   โ”œโ”€โ”€ popup.js             # Popup logic & Zotero integration
โ”‚   โ”œโ”€โ”€ contentScript.js     # Page metadata extraction
โ”‚   โ”œโ”€โ”€ citationFormatter.js # Citation formatting engine
โ”‚   โ””โ”€โ”€ icons/               # Extension icons
โ”œโ”€โ”€ safari/
โ”‚   โ”œโ”€โ”€ JustCite.xcodeproj/  # Xcode project file
โ”‚   โ”œโ”€โ”€ Shared (App)/        # Shared app resources
โ”‚   โ”œโ”€โ”€ Shared (Extension)/  # Safari extension handler
โ”‚   โ”œโ”€โ”€ macOS (App)/         # macOS-specific app files
โ”‚   โ”œโ”€โ”€ macOS (Extension)/   # macOS extension config
โ”‚   โ”œโ”€โ”€ iOS (App)/           # iOS-specific app files
โ”‚   โ””โ”€โ”€ iOS (Extension)/     # iOS extension config
โ””โ”€โ”€ README.md

๐Ÿ”ง Development

Prerequisites

  • Google Chrome browser
  • Basic knowledge of Chrome extension development

Making Changes

  1. Edit the source files in the chrome/ directory
  2. Go to chrome://extensions/
  3. Click the refresh icon on the JustCite extension card
  4. Test your changes

Citation Formatter

The citationFormatter.js module handles all citation formatting logic. To add a new citation style:

  1. Add a new format method (e.g., toVancouver())
  2. Add the style option to the dropdown in popup.html
  3. Update the format() method switch statement

๐Ÿ“ Citation Style Examples

BibTeX

@online{smith_mac_lea_2024,
  author = {John Smith},
  title = {Machine Learning Fundamentals},
  year = {2024},
  url = {https://example.com/article},
  publisher = {Example}
}

APA 7th Edition

Smith, J. (2024). Machine learning fundamentals. Example. https://example.com/article

MLA 9th Edition

Smith, John. "Machine Learning Fundamentals." Example, 2024, https://example.com/article.

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ–ผ๏ธ Screenshots

JustCite - Popup JustCite - Settings
JustCite - About JustCite - Extraction

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Inspired by Zotero and its web connector
  • Material Design icons from Google Fonts
  • Inter and JetBrains Mono fonts
  • Generated with the help of AI coding assistants

Made with โค๏ธ for researchers, students, and anyone who needs quick citations.

About

JustCite is a minimalist browser extension that extracts webpage metadata and generates properly formatted academic citations (BibTeX, APA, MLA, Chicago, IEEE, and more) with one click.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published