Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
created: 2026-06-23T00:00:00Z
title: Test more reference-manager exports (Mendeley, Zotero, EndNote, etc.)
area: testing
files:
- /Users/danknauss/Developer/GitHub/wp-bibliography-block/src/lib/parser.js
- /Users/danknauss/Developer/GitHub/wp-bibliography-block/src/lib/free-text-parser.js
- /Users/danknauss/Developer/GitHub/wp-bibliography-block/docs/supported-input-style-matrix.md
- /Users/danknauss/Developer/GitHub/wp-bibliography-block/docs/qa-matrix-checklist.md
- /Users/danknauss/Developer/GitHub/wp-bibliography-block/docs/free-text-samples.md
---

## Problem

Input parsing (DOI, PubMed/PMID, BibTeX, free text) is exercised mostly with
hand-authored or single-source samples. Real users will paste exports straight
out of reference managers — Mendeley, Zotero, EndNote, Papers, RefWorks,
JabRef, etc. — and each tool has its own quirks in how it emits BibTeX (entry
types, field naming, brace/escaping conventions, `month` formats, non-ASCII
handling, abstracts/keywords/file fields) and RIS. We don't yet have a
systematic test corpus of real exports, so we can't be confident the parser
handles them gracefully.

## Solution

Build a small corpus of real export files captured from the major reference
managers (start with Zotero and Mendeley, then EndNote/JabRef) covering common
record types: journal article, book, book chapter, conference paper, report,
webpage. Feed each through the parser and verify the resulting CSL-JSON and
rendered citations are correct (or degrade cleanly with a clear notice when a
field/format is unsupported). Capture findings in the supported-input-style
matrix and QA checklist, and add regression fixtures/tests for any
manager-specific quirks that currently break or silently drop data.

Decision: RIS input is explicitly out of scope for now. Borges supports RIS as
an export format for citation-manager interoperability, but not as an import
format. Reference-manager testing should focus first on BibTeX, CSL-JSON, DOI,
PMID, and free-text export paths; revisit RIS import only as a separately scoped
feature.

## Acceptance targets

- A fixtures set of real (anonymized) exports from at least Zotero and Mendeley
across the common record types.
- Parser behavior verified for each; regression tests added for any quirk that
was mishandled.
- `docs/supported-input-style-matrix.md` and `docs/qa-matrix-checklist.md`
updated to reflect which reference-manager exports are supported.
- An explicit in/out-of-scope decision recorded for RIS.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed

- Stabilize numeric citation reorder E2E coverage against editor readiness races.
- Clarify that RIS is supported for export, not import.

## [1.4.1] - 2026-06-20

Expand Down
2 changes: 1 addition & 1 deletion bibliography-builder.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/**
* Plugin Name: Borges Bibliography Builder
* Plugin URI: https://github.com/dknauss/Borges/
* Description: Create accessible bibliographies from DOI, PubMed, BibTeX, RIS, CSL-JSON, and manual citations.
* Description: Create accessible bibliographies from DOI, PubMed, BibTeX, CSL-JSON, and free text; export RIS.
* Version: 1.4.2
* Requires at least: 6.4
* Tested up to: 7.0
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "borges-bibliography-builder",
"version": "1.4.2",
"description": "A WordPress block plugin that creates accessible, structured bibliographies from DOI, PubMed, BibTeX, RIS, CSL-JSON, and manual citation entries.",
"description": "A WordPress block plugin that creates accessible, structured bibliographies from DOI, PubMed, BibTeX, CSL-JSON, free text, and manual entries with RIS export.",
"author": "Dan Knauss",
"license": "GPL-2.0-or-later",
"main": "build/index.js",
Expand Down
11 changes: 6 additions & 5 deletions readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ Requires PHP: 7.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Create accessible, structured bibliographies from DOI, PubMed, BibTeX, RIS, CSL-JSON, and manual citation entries.
Create accessible, structured bibliographies from DOI, PubMed, BibTeX, CSL-JSON, free text, and manual entries — with RIS export.

== Description ==

Named for Jorge Luis Borges (1899–1986), the Argentine writer and librarian known for stories about infinite libraries, imaginary books, and labyrinths of knowledge, Borges Bibliography Builder brings order to scholarly references in WordPress.

The **Borges Bibliography Builder** transforms DOI(s), PubMed/PMID records, BibTeX, RIS, CSL-JSON, manual entries, and supported free-text citations into a semantically rich, deduplicated, auto-sorted reference list.
The **Borges Bibliography Builder** transforms DOI(s), PubMed/PMID records, BibTeX, CSL-JSON, manual entries, and supported free-text citations into a semantically rich, deduplicated, auto-sorted reference list with RIS export for citation managers.

**One-click import.** Paste a DOI and Crossref resolves the metadata instantly. Paste a PubMed/PMID identifier and Borges resolves it through an authenticated WordPress REST proxy to NCBI/PMC citation metadata. Paste BibTeX or formatted citations for books, articles, chapters, webpages, reviews, and theses.

Expand All @@ -40,7 +40,7 @@ The **Borges Bibliography Builder** transforms DOI(s), PubMed/PMID records, BibT
1. Upload the plugin files to `/wp-content/plugins/borges-bibliography-builder/`, or install directly through the WordPress plugin screen.
2. Activate the plugin through the 'Plugins' screen in WordPress.
3. Add the "Bibliography" block to any post or page.
4. Paste DOI(s), PubMed/PMID identifiers, BibTeX, RIS, CSL-JSON, or supported citations for books, articles, chapters, and webpages — or add citations manually.
4. Paste DOI(s), PubMed/PMID identifiers, BibTeX, CSL-JSON, or supported citations for books, articles, chapters, and webpages — or add citations manually.

== Frequently Asked Questions ==

Expand All @@ -52,7 +52,7 @@ The package includes seed PO/MO files for translator review and import in French

= What citation input formats does the Borges Bibliography Builder support? =

Bare DOIs, DOI URLs, PubMed/PMID identifiers, BibTeX, RIS, CSL-JSON, manual citation entries, and supported formatted citations for books, articles, chapters, webpages, reviews, and theses/dissertations. Free-text citations that include an inline DOI or labeled PMID are routed through the DOI/PubMed resolvers before falling back to the heuristic parser. You can paste multiple entries at once, up to 50 per paste, and each bibliography holds up to 200 citations in total.
Bare DOIs, DOI URLs, PubMed/PMID identifiers, BibTeX, CSL-JSON, manual citation entries, and supported formatted citations for books, articles, chapters, webpages, reviews, and theses/dissertations. Free-text citations that include an inline DOI or labeled PMID are routed through the DOI/PubMed resolvers before falling back to the heuristic parser. RIS is supported as an export format, not as an import format. You can paste multiple entries at once, up to 50 per paste, and each bibliography holds up to 200 citations in total.

= Does the ABNT style implement NBR 6023:2018? =

Expand Down Expand Up @@ -94,7 +94,7 @@ PHP 7.4+ and WordPress 6.4+. Borges Bibliography Builder is tested up to WordPre

1. Front-end bibliography output with hanging indents, italic titles, and linked DOIs, styled by the active theme.
2. Discover the Bibliography block in the block inserter by searching for "Bibliography."
3. Paste DOIs, PubMed/PMID identifiers, BibTeX, RIS, CSL-JSON, or free-text citations into the import form; hover any entry to reveal copy, edit, and delete actions.
3. Paste DOIs, PubMed/PMID identifiers, BibTeX, CSL-JSON, or free-text citations into the import form; hover any entry to reveal copy, edit, and delete actions.
4. Switch to Manual Entry to build a citation field by field — Publication Type, Author, Title, Container, Publisher, Year, Pages, DOI, and URL.
5. Correct imported or free-text citations in place with the structured field editor — fix individual fields without retyping the whole entry.
6. For numbered styles such as IEEE and Vancouver, reorder entries with the up and down controls (or Alt+Arrow keys) to set citation numbering.
Expand Down Expand Up @@ -142,6 +142,7 @@ PubMed/PMID input connects through the plugin's authenticated WordPress REST pro
* Fall back from embedded-identifier resolution to the heuristic free-text parser before showing unsupported-input guidance.
* Add free-text sample documentation for supported embedded DOI/PMID citation inputs.
* Stabilize numeric citation reorder E2E coverage against editor readiness races.
* Clarify that RIS is supported for export, not import.

= 1.4.1 =
* Clean up after the plugin when it is deleted: uninstalling now removes the plugin's cached data — the formatter and PubMed/PMID transients (across all sites on multisite) and its object-cache groups where the host supports it. Bibliography blocks already saved in your posts are left untouched.
Expand Down
Loading