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
7 changes: 5 additions & 2 deletions .planning/ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ feature work (Phases 04 + 07) shipped in the 1.4.x line; both phase directories
archived. Phases 05 (deferred) and 06 (sketch) remain active backlog. Future work
is tracked against release versions rather than a GSD milestone label.

**Current release baseline (reconciled 2026-10-14):** `v1.11.0` (2026-10-14).
**Current release baseline (reconciled 2026-10-22):** `v1.12.0` (2026-10-22).
Releases since the milestone was retired, all outside any GSD phase:

- **1.4.2** (2026-06-21) — embedded-identifier resolution (Phase 07, PR #52) and
Expand Down Expand Up @@ -83,6 +83,9 @@ Releases since the milestone was retired, all outside any GSD phase:
- **1.11.0** (2026-10-14) — cited works nested in a JSON-LD `ItemList`, so link
cards no longer credit a cited source as the post's author; 200-entry
formatter requests.
- **1.12.0** (2026-10-22) — newsletters and feeds read correctly; particle names sort
per style; per-entry formatter cache; write abilities; Phases A–E of the
refactor memo (module split, shared style table, Psalm level 2, `checkJs`).

`CHANGELOG.md` and the live WordPress.org plugin page are canonical for release
contents; this note only anchors the roadmap to them.
Expand Down Expand Up @@ -304,7 +307,7 @@ and executed through

Implementation status: committed (`3d5d3de` "stabilize bibliography formatter
workflows", `539b6b3` "address stabilization review notes") and shipped in the
1.3.x release line. The current public release baseline is now `v1.11.0`.
1.3.x release line. The current public release baseline is now `v1.12.0`.

Completed Phase 2 outcomes:

Expand Down
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [1.12.0] - 2026-10-22

### Changed

- **Faster formatting after an edit.** Adding, editing, or removing one citation in a long bibliography reformatted every entry on the server, since the formatter cached whole bibliographies. It now also remembers each formatted entry per style, so it formats only the entries that changed: about 5 ms instead of 65–105 ms for a 200-entry list.
- **Internals, for contributors.** No change to saved markup or output. The main plugin file is split into `includes/` modules (1,607 → about 800 lines), as are `includes/save-markup.php` and `src/lib/parser.js`; JS and PHP read one style table, `includes/styles.json`; Psalm runs at level 2 and `src/lib/` is type-checked with `checkJs` in CI; PHPCS checks PHP 7.4 compatibility; the runtime matrix runs the Abilities API. See `docs/planning/refactor-and-standards-memo.md`.

### Added

Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ Editor-time PMID and formatting results are cached in the object cache and in sh

## Recent Release Highlights

- **1.12.0** — Bibliographies read correctly in newsletters and feeds (no blanket italics or broken Cite / Export panel); names with particles sort per style; no period after a "?" or "!" title; reformatting after an edit renders only the changed entries; opt-in write abilities (WordPress 6.9+) wrap the write routes.
- **1.11.0** — Cited works are nested in one JSON-LD `ItemList`, so link previews such as Mastodon's no longer credit a cited source as the post's author (published posts are corrected as they render); bibliographies over 50 citations format again.
- **1.10.0** — Imports library catalog numbers (OCLC, LCCN, Open Library edition IDs) and Internet Archive items and ARKs through Open Library and the Internet Archive; "Edit fields" works on every citation and saves only the fields you change; an optional Google Books API key (constant or filter) for the ISBN fallback; "Place: Publisher" and CJK author names parse correctly.
- **1.9.1** — Pasted CSL-JSON (a reference manager's CSL JSON export) imports as citations; a quoted title, such as a Chicago web page, is no longer also italicized; the JSON-LD DOI link keeps its slash.
Expand Down
2 changes: 1 addition & 1 deletion bibliography-builder.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Plugin Name: Borges Bibliography Builder
* Plugin URI: https://github.com/dknauss/Borges/
* Description: Create accessible bibliographies from DOI, PubMed, BibTeX, CSL-JSON, and free text; export RIS.
* Version: 1.11.0
* Version: 1.12.0
* Requires at least: 6.4
* Tested up to: 7.1
* Requires PHP: 7.4
Expand Down
2 changes: 1 addition & 1 deletion block.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"$schema": "https://schemas.wp.org/trunk/block.json",
"apiVersion": 3,
"name": "bibliography-builder/bibliography",
"version": "1.11.0",
"version": "1.12.0",
"title": "Bibliography",
"category": "text",
"icon": "book-alt",
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "borges-bibliography-builder",
"version": "1.11.0",
"version": "1.12.0",
"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",
Expand Down
13 changes: 12 additions & 1 deletion readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Donate link: https://github.com/sponsors/dknauss
Tags: bibliography, citation, doi, bibtex, academic
Requires at least: 6.4
Tested up to: 7.1
Stable tag: 1.11.0
Stable tag: 1.12.0
Requires PHP: 7.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Expand Down Expand Up @@ -193,6 +193,14 @@ OCLC numbers, LCCNs, and Open Library edition IDs connect through the plugin's a

== Changelog ==

= 1.12.0 =
* **Added:** write abilities for AI agents and automation on WordPress 6.9+ (add, update, delete, and reorder citations; change a bibliography's settings or style). They exist only when a site turns on the write routes with the `bibliography_builder_enable_write_routes` filter, and follow the same rules: `edit_post` on the post and a preview unless asked to save.
* **Fixed:** bibliographies in newsletters and feeds. Posts sent by email (Jetpack and WordPress.com newsletters, MailPoet, WooCommerce, Newspack) or read in a feed reader no longer show every reference in italics or a broken Cite / Export panel. Posts saved earlier are cleaned up as they are sent, and switch to the new markup the next time they are saved.
* **Fixed:** names with particles ("van Duijnhoven", "de la Cruz") sort where each style puts them: under the surname proper in Chicago and Vancouver, under the particle in APA, MLA, Harvard, and the others.
* **Fixed:** no period after a quoted title that ends in "?" or "!" in Chicago and MLA.
* **Changed:** reformatting after an edit is much faster in long bibliographies: only the changed entries are formatted, about 5 ms instead of 65–105 ms for 200 entries.
* **Changed:** internal restructuring and stricter static analysis, with no change to saved markup or output.

= 1.11.0 =
* **Fixed:** link cards no longer credit a cited source as the post's author. The JSON-LD listed cited works as top-level objects, and Mastodon takes the first top-level `WebPage` on a page to be the page itself, so a post citing a museum's collection page was shared "by Albertina". Cited works are now nested in one schema.org `ItemList`. Published posts are corrected as they are rendered, without being edited.
* **Fixed:** bibliographies over 50 citations. The server formatter now takes up to 200 entries per request, matching the editor, instead of falling back to plain titles with a "Formatter unavailable" notice.
Expand Down Expand Up @@ -370,6 +378,9 @@ The three changes below are hardening. None of them was exploitable; each was a

== Upgrade Notice ==

= 1.12.0 =
Bibliographies read correctly in newsletters and feeds, names with particles sort per style, and reformatting after an edit is much faster. Adds opt-in write abilities for WordPress 6.9+. No configuration changes required.

= 1.11.0 =
Stops link previews (Mastodon's, for one) from crediting a cited source as the post's author, and lets bibliographies over 50 citations format again. No configuration changes required.

Expand Down
Loading