Skip to content

Commit 2332d53

Browse files
committed
feat: allow "pageBreakSource" package metadata (incubation)
The ["pageBreakSource"](https://www.w3.org/publishing/a11y/page-source-id/#pageBreakSource) package metadata property is planned to be added to EPUB, after 3.3. This commit allows this property to start incubating its use. Fix #1491
1 parent 0323668 commit 2332d53

File tree

4 files changed

+38
-1
lines changed

4 files changed

+38
-1
lines changed

src/main/java/com/adobe/epubcheck/opf/OPFHandler30.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
import static com.adobe.epubcheck.vocab.PackageVocabs.LINK_VOCAB;
4646
import static com.adobe.epubcheck.vocab.PackageVocabs.LINK_VOCAB_URI;
4747
import static com.adobe.epubcheck.vocab.PackageVocabs.META_VOCAB;
48+
import static com.adobe.epubcheck.vocab.PackageVocabs.META_VOCAB_CAMEL;
4849
import static com.adobe.epubcheck.vocab.PackageVocabs.META_VOCAB_URI;
4950

5051
import java.util.Deque;
@@ -65,6 +66,7 @@
6566
import com.adobe.epubcheck.util.EpubConstants;
6667
import com.adobe.epubcheck.util.FeatureEnum;
6768
import com.adobe.epubcheck.vocab.AccessibilityVocab;
69+
import com.adobe.epubcheck.vocab.AggregateVocab;
6870
import com.adobe.epubcheck.vocab.DCMESVocab;
6971
import com.adobe.epubcheck.vocab.EpubCheckVocab;
7072
import com.adobe.epubcheck.vocab.MediaOverlaysVocab;
@@ -94,7 +96,7 @@ public class OPFHandler30 extends OPFHandler
9496
.put(DCTERMS_PREFIX, DCTERMS_VOCAB).put(MARC_PREFIX, MARC_VOCAB).put(ONIX_PREFIX, ONIX_VOCAB)
9597
.put(SCHEMA_PREFIX, SCHEMA_VOCAB).put(XSD_PREFIX, XSD_VOCAB).build();
9698
private static final Map<String, Vocab> RESERVED_META_VOCABS = new ImmutableMap.Builder<String, Vocab>()
97-
.put("", META_VOCAB).put(AccessibilityVocab.PREFIX, AccessibilityVocab.META_VOCAB)
99+
.put("", AggregateVocab.of(META_VOCAB, META_VOCAB_CAMEL)).put(AccessibilityVocab.PREFIX, AccessibilityVocab.META_VOCAB)
98100
.put(MediaOverlaysVocab.PREFIX, MediaOverlaysVocab.VOCAB)
99101
.put(RenditionVocabs.PREFIX, RenditionVocabs.META_VOCAB).putAll(RESERVED_VOCABS).build();
100102
private static final Map<String, Vocab> RESERVED_ITEM_VOCABS = new ImmutableMap.Builder<String, Vocab>()

src/main/java/com/adobe/epubcheck/vocab/PackageVocabs.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.Set;
44

55
import com.adobe.epubcheck.opf.ValidationContext;
6+
import com.google.common.base.CaseFormat;
67
import com.google.common.base.Preconditions;
78
import com.google.common.collect.ImmutableSet;
89

@@ -37,6 +38,14 @@ public static enum META_PROPERTIES
3738
TITLE_TYPE
3839
}
3940

41+
public static EnumVocab<META_PROPERTIES_CAMEL> META_VOCAB_CAMEL = new EnumVocab<META_PROPERTIES_CAMEL>(
42+
META_PROPERTIES_CAMEL.class, CaseFormat.LOWER_CAMEL, META_VOCAB_URI);
43+
44+
public static enum META_PROPERTIES_CAMEL
45+
{
46+
PAGE_BREAK_SOURCE,
47+
}
48+
4049
public static EnumVocab<ITEM_PROPERTIES> ITEM_VOCAB = new EnumVocab<ITEM_PROPERTIES>(
4150
ITEM_PROPERTIES.class, ITEM_VOCAB_URI);
4251

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<package xmlns="http://www.idpf.org/2007/opf" version="3.0" unique-identifier="uid"
3+
xmlns:dc="http://purl.org/dc/elements/1.1/">
4+
<metadata>
5+
<dc:title>Title</dc:title>
6+
<dc:language>en</dc:language>
7+
<dc:identifier id="uid">NOID</dc:identifier>
8+
<meta property="dcterms:modified">2019-01-01T12:00:00Z</meta>
9+
<meta property="pageBreakSource">example</meta>
10+
</metadata>
11+
<manifest>
12+
<item id="t001" href="contents.xhtml" properties="nav" media-type="application/xhtml+xml"/>
13+
</manifest>
14+
<spine>
15+
<itemref idref="t001"/>
16+
</spine>
17+
</package>

src/test/resources/epub3/D-vocabularies/meta-properties.feature

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,3 +250,12 @@ Feature: EPUB 3 — Vocabularies — Meta properties vocabulary
250250
Then error RSC-005 is reported
251251
And the message contains '"title-type" cannot be declared more than once'
252252
And no other errors or warnings are reported
253+
254+
255+
## Incubation
256+
257+
@spec @xref:sec-title-type
258+
Scenario: 'pageBreakSource' metadata is allowed
259+
When checking file 'metadata-meta-pageBreakSource-valid.opf'
260+
Then no errors or warnings are reported
261+

0 commit comments

Comments
 (0)