Bibliography & Citation
bibcite
A comprehensive bibliography and citation management system for Drupal that provides API for working with bibliographic data, entity storage for references, contributors and keywords, import/export functionality in multiple formats, and citation rendering using CSL (Citation Style Language) with over 8000 styles.
Overview
Bibliography & Citation (BibCite) is an enterprise-grade bibliographic data management system for Drupal. It provides a complete solution for storing, managing, importing, exporting, and rendering bibliographic references.
The core module provides the citation rendering API using the Citation Style Language (CSL) processor, supporting over 8000 citation styles from the official CSL style repository. References can be rendered as properly formatted citations in styles like APA, MLA, Chicago, and many more.
The entity submodule implements full Drupal entity support for References, Contributors (authors), and Keywords. References support revision tracking, configurable reference types, and comprehensive field mapping. Contributors support intelligent name parsing with prefix, first name, middle name, last name, suffix, and nickname components.
The import/export functionality supports multiple bibliographic formats including BibTeX, RIS, MARC, and EndNote (XML and Tagged formats). Import processes are handled via batch operations for large datasets, with configurable deduplication for contributors and keywords.
The module includes extensive Views integration with custom fields for citations and lookup links, as well as bulk actions for export, delete, and merge operations. Lookup link plugins provide quick access to DOI resolution, Google Scholar search, and PubMed.
Install
composer require 'drupal/bibcite:^3.0'
Features
- Citation rendering using CSL processor with 8000+ styles from the official CSL repository
- Entity-based storage for References with revision support, configurable types, and extensive field definitions
- Entity storage for Contributors with intelligent human name parsing (prefix, first, middle, last, suffix, nickname)
- Entity storage for Keywords with auto-create support from reference forms
- Import functionality from files with batch processing and configurable contributor/keyword deduplication
- Export functionality to multiple formats with bulk export actions
- BibTeX format support for import and export
- RIS format support for import and export
- MARC format support for import and export
- EndNote format support (XML and Tagged formats) for import and export
- Configurable format mapping between external formats and reference entity fields
- Lookup link plugins for DOI resolution, Google Scholar search, and PubMed
- Full Views integration with citation field, links field, and custom filters
- Merge functionality for deduplicating Contributors and Keywords
- Preview functionality for references before saving
- Automatic citation key generation using token patterns
- Reference type management with per-type field visibility and citation key patterns
Use Cases
Academic Research Publication Management
Universities and research institutions can use BibCite to manage their publication databases. Faculty can import their publications from BibTeX files exported from Google Scholar or reference managers, maintain a centralized bibliography, and export formatted reference lists for grant applications and CVs.
Digital Library Bibliography
Libraries can use BibCite to create and maintain bibliographies for digital collections. References can be imported from library catalog exports in MARC format, linked to digital objects, and displayed with proper citations in multiple styles based on patron needs.
Journal or Conference Website
Academic journals and conference organizers can manage submitted paper references, ensure proper citation formatting for publications, and provide export functionality for authors to download references in their preferred format (BibTeX for LaTeX users, RIS for EndNote users).
Research Group Collaboration
Research groups can collaboratively manage shared bibliographies. Team members can add references, merge duplicates using the built-in merge functionality, and generate properly formatted reference lists for collaborative papers and reports.
Course Reading Lists
Educational institutions can maintain course reading lists with full bibliographic information. Instructors can import references, categorize them by topic or week using keywords, and provide students with export options for their reference managers.
Tips
- Install multiple CSL styles to give users flexibility in citation formatting. The official CSL repository at https://github.com/citation-style-language/styles contains over 8000 styles.
- Use the automatic citation key generation feature with tokens like [bibcite_reference:author:0:entity:last_name]-[bibcite_reference:bibcite_year] for human-readable keys.
- Enable deduplication in import settings to prevent duplicate contributors and keywords when importing from multiple sources.
- Configure format mappings before importing data to ensure fields are properly matched to reference entity fields.
- Use the Table view mode for reference entity display to show all fields in a structured format, or Citation view mode for formatted citation display.
- The merge functionality is useful for cleaning up duplicates after bulk imports - merge similar contributors and keywords to maintain data integrity.
- Configure per-reference-type permissions for granular access control in multi-author environments.
Dependencies
Related Projects
Uses Entity API module for improved entity handling and revision support for references
Provides token integration for automatic citation key generation using reference field values
Full Views integration with custom fields (Citation, Links), filters (Keyword), and arguments for all entity types
Uses Drupal serialization system for format encoding/decoding and normalization
Integrates with Field UI for customizing reference, contributor, and keyword entity displays
Admin Pages
| Title | Path | Description |
|---|---|---|
| Processing | /admin/config/bibcite |
Configure the citation processor and default citation style. Select from available CSL processors and set the default style to use when rendering citations. |
| CSL styles | /admin/config/bibcite/settings/csl_style |
Manage Citation Style Language (CSL) styles. Add, edit, or delete citation styles. Install styles from the official CSL repository or upload custom CSL files. |
| Add CSL style | /admin/config/bibcite/settings/csl_style/add |
Add a new CSL citation style by entering its details and CSL XML content. |
| References | /admin/structure/bibcite/reference/settings |
Configure global settings for reference entities including view mode, form override options, and citation key patterns. |
| Links | /admin/structure/bibcite/reference/settings/links |
Configure external lookup links displayed on reference entities. Enable/disable and reorder links like DOI, Google Scholar, and PubMed. |
| Types | /admin/structure/bibcite/reference/settings/types |
Manage reference types (bundles) such as Journal Article, Book, Conference Paper, etc. Each type can have custom field visibility and citation key patterns. |
| Contributors | /admin/structure/bibcite/contributor/settings |
Configure contributor entity settings including the full name display pattern. |
| Contributor categories | /admin/structure/bibcite/contributor/settings/category |
Manage contributor categories which group contributors by their relationship to the work. |
| Contributor roles | /admin/structure/bibcite/contributor/settings/role |
Manage contributor roles such as Author, Editor, Translator, etc. |
| Mapping for CSL format | /admin/config/bibcite/settings/mapping/csl |
Configure field mapping between reference entity fields and CSL (Citation Style Language) data format. |
| Mapping for [format] format | /admin/config/bibcite/settings/mapping/{bibcite_format} |
Configure field and type mappings between external format (BibTeX, RIS, MARC, EndNote) and reference entity fields. |
| Import | /admin/config/bibcite/settings/import |
Configure import settings including deduplication options for contributors and keywords. |
| References | /admin/content/bibcite/reference |
View and manage all bibliographic reference entities. Provides bulk operations for delete, export, and merge. |
| Import | /admin/content/bibcite/reference/import |
Import bibliographic references from files. Select format and upload file for batch import processing. |
| Populate reference values | /admin/content/bibcite/reference/populate |
Create a new reference by pasting bibliographic data in a supported format. The data will be parsed and used to pre-populate a new reference form. |
| Export all references | /admin/content/bibcite/reference/export |
Export all reference entities to a file in selected format. Previously generated export files are listed for download. |
| Contributors | /admin/content/bibcite/contributor |
View and manage all contributor entities. Provides bulk operations for delete, merge, and save. |
| Keywords | /admin/content/bibcite/keyword |
View and manage all keyword entities. Provides bulk operations for delete, merge, and save. |
Permissions
| Permission | Description |
|---|---|
|
Full access to all bibcite functionality including configuration settings |
|
Allow to access the administration form to configure Reference entities |
|
Permission to create reference entities of any type |
|
Permission to delete own reference entities |
|
Permission to delete any reference entities regardless of ownership |
|
Permission to edit own reference entities |
|
Permission to edit any reference entities regardless of ownership |
|
Permission to view reference entities |
|
Permission to view own unpublished reference entities |
|
Permission to view revision history of references |
|
Permission to revert references to previous revisions |
|
Permission to delete reference revisions |
|
Allow to access the administration form to configure Contributor entities |
|
Permission to create contributor entities |
|
Permission to delete contributor entities |
|
Permission to edit contributor entities |
|
Permission to view contributor entities |
|
Allow to access the administration form to configure Keyword entities |
|
Permission to create keyword entities |
|
Permission to delete keyword entities |
|
Permission to edit keyword entities |
|
Permission to view keyword entities |
|
Permission to access the bibliographic data import form |
|
Permission to access the reference populate form |
|
Permission to export reference data |
Hooks
| Hook | Description |
|---|---|
hook_bibcite_reference_type_info_alter |
Alter reference type definitions |
hook_entity_type_alter |
Standard Drupal hook to alter entity type definitions for bibcite entities |
Troubleshooting
Ensure the citeproc-php library is properly installed via Composer. Check that the selected CSL style XML is valid. Parent styles must be installed before dependent styles.
Verify the import file format matches the selected format type. Check for encoding issues (UTF-8 recommended). Review the error message for specific parsing failures.
The name parser uses heuristics and may not handle all name formats. Consider manually entering name parts or adjusting the full name pattern in contributor settings.
Ensure view permission is granted for references. Check that the correct entity type (bibcite_reference) is selected as the base table. Verify field formatters are properly configured.
Navigate to /admin/structure/bibcite/reference/settings/links and ensure the desired link plugins are enabled. Verify the reference has the required field values (e.g., DOI for DOI links).
Security Notes
- The 'administer bibcite' permission should be restricted to trusted administrators as it provides full access to all module configuration.
- Import functionality can create many entities quickly - restrict import permissions to prevent potential DoS scenarios.
- File uploads for import are validated but should be monitored on public-facing sites.
- The module properly escapes output in templates and uses Drupal's security APIs for database operations.