From 989255e95774f07e3700b54714ae104253ad6b91 Mon Sep 17 00:00:00 2001 From: Toni Barth Date: Sun, 8 Feb 2026 03:48:22 +0100 Subject: [PATCH] support isbn tags in dc:source --- server/utils/parsers/parseDaisyMetadata.js | 3 ++- .../server/utils/parsers/parseDaisyMetadata.test.js | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/server/utils/parsers/parseDaisyMetadata.js b/server/utils/parsers/parseDaisyMetadata.js index decb06186..6ede05d36 100644 --- a/server/utils/parsers/parseDaisyMetadata.js +++ b/server/utils/parsers/parseDaisyMetadata.js @@ -65,7 +65,8 @@ function parseIdentifier(metaTags, identifierType) { const identifierValues = [ ...getValues(metaTags, 'dc:identifier'), - ...getValues(metaTags, 'ncc:identifier') + ...getValues(metaTags, 'ncc:identifier'), + ...(identifierType === 'isbn' ? getValues(metaTags, 'dc:source') : []) ] for (const identifier of identifierValues) { if (identifierType === 'isbn' && /isbn/i.test(identifier)) { diff --git a/test/server/utils/parsers/parseDaisyMetadata.test.js b/test/server/utils/parsers/parseDaisyMetadata.test.js index 2367a9555..8a18ce5e6 100644 --- a/test/server/utils/parsers/parseDaisyMetadata.test.js +++ b/test/server/utils/parsers/parseDaisyMetadata.test.js @@ -52,6 +52,19 @@ describe('parseDaisyMetadata', () => { expect(result.title).to.equal('Title From Head') }) + it('parses isbn from dc:source in DAISY ncc.html', () => { + const nccHtml = ` + + + + + + ` + + const result = parseDaisyMetadata(nccHtml) + expect(result.isbn).to.equal('978-0-553-38016-3') + }) + it('parses chapter names from heading entries in ncc.html', () => { const nccHtml = `