Files
stack/dev
kert d7c624b127 fix: bib.sync and XML parsers — Zotero key validation, creators, journalArticle, itertext
bib.sync:
- Keys validated against Zotero allowedKeyChars (no 0, 1, O, lowercase)
- Creators parsed from extra into Zotero creators/itemCreators tables
- PubMed articles pushed as journalArticle (typeID=22) not document
- DOI, PMID, Journal parsed into dedicated Zotero fields (8, 86, 41)
- Authors stripped from extra to avoid duplication

XML parsers (search_pubmed, snowball_citations):
- _text() uses itertext() instead of .text to handle mixed-content XML
  (sup, i, sub tags inside ArticleTitle) — fixes 20 blank titles

Verified: 10,262 items, 0 blank titles, 0 invalid keys, 60,866 creators,
9,658 DOIs, 10,232 PMIDs in proper Zotero fields.
2026-03-25 14:04:32 -04:00
..