@@ -139,7 +139,7 @@ function parseMetadata(doc, select, epub) {
139139 refines = refines . trim ( ) ;
140140 if ( refines ) {
141141 // isEPUB3 implied
142- if ( md === "source-of" && meta . textContent === "pagination" && refines === dcSourceId ) {
142+ if ( md === "source-of" && meta . textContent === "pagination" && dcSource && refines === dcSourceId ) {
143143 dcSourceAdded = true ;
144144 addMeta ( `dc:source` , dcSource , result ) ;
145145 return ;
@@ -168,11 +168,37 @@ function parseMetadata(doc, select, epub) {
168168 } ) ;
169169
170170 if ( isEPUB3 && dcSource && ! dcSourceAdded ) {
171- // console.log(JSON.stringify(result));
172- const confTo = result [ "dcterms:conformsTo" ] || epub . links && epub . links [ "dcterms:conformsTo" ] ;
173- if ( confTo && confTo . startsWith ( "http://www.idpf.org/epub/a11y/" ) ) { // EPUB a11y 1.0
171+ // console.log("LINKS:", JSON.stringify(epub.links, null, 4));
172+ // console.log("METADATA 1:", JSON.stringify(result, null, 4));
173+ const confTo = [ ] ;
174+ if ( result [ "dcterms:conformsTo" ] ) {
175+ if ( Array . isArray ( result [ "dcterms:conformsTo" ] ) ) {
176+ confTo . push ( ...result [ "dcterms:conformsTo" ] ) ;
177+ } else {
178+ confTo . push ( result [ "dcterms:conformsTo" ] ) ;
179+ }
180+ }
181+ if ( epub . links && epub . links [ "dcterms:conformsTo" ] ) {
182+ if ( Array . isArray ( epub . links [ "dcterms:conformsTo" ] ) ) {
183+ confTo . push ( ...epub . links [ "dcterms:conformsTo" ] ) ;
184+ } else {
185+ confTo . push ( epub . links [ "dcterms:conformsTo" ] ) ;
186+ }
187+ }
188+ // console.log("confTo:", JSON.stringify(confTo, null, 4));
189+ // check for EPUB a11y v1.0
190+ if (
191+ // confTo &&
192+ // (
193+ // Array.isArray(confTo) && confTo.find((item) => item.startsWith("http://www.idpf.org/epub/a11y/"))
194+ // ||
195+ // !Array.isArray(confTo) && confTo.startsWith("http://www.idpf.org/epub/a11y/")
196+ // )
197+ confTo . find ( ( item ) => item . startsWith ( "http://www.idpf.org/epub/a11y/" ) )
198+ ) {
174199 addMeta ( `dc:source` , dcSource , result ) ;
175200 }
201+ // console.log("METADATA 2:", JSON.stringify(result, null, 4));
176202 }
177203
178204 return result ;
0 commit comments