Skip to content

Commit

Permalink
feat: allow 'hreflang' attribute on Package Document link elements
Browse files Browse the repository at this point in the history
Fix #1219
  • Loading branch information
rdeltour committed Nov 14, 2021
1 parent 2e45067 commit e39a801
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 1 deletion.
Expand Up @@ -26,10 +26,11 @@
opf.epub3.meta.content = (opf.property.attr & opf.refines.attr? & opf.id.attr? & opf.scheme.attr? & opf.i18n.attrs & datatype.string.nonempty)
opf.epub2.meta.content = (attribute name { text } & attribute content { text }) #legacy

opf.link = element link { opf.href.attr & opf.rel.attr & opf.id.attr? & opf.refines.attr? & opf.media-type.attr? & opf.properties.attr? }
opf.link = element link { opf.href.attr & opf.hreflang.attr? & opf.rel.attr & opf.id.attr? & opf.refines.attr? & opf.media-type.attr? & opf.properties.attr? }

opf.property.attr = attribute property { datatype.property }
opf.rel.attr = attribute rel { datatype.properties }
opf.hreflang.attr = attribute hreflang { "" | datatype.string.nonempty }
opf.scheme.attr = attribute scheme { datatype.property }
opf.refines.attr = attribute refines { datatype.URI }

Expand Down
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://www.idpf.org/2007/opf" version="3.0" unique-identifier="uid"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata>
<dc:title>Title</dc:title>
<dc:language>en</dc:language>
<dc:identifier id="uid">NOID</dc:identifier>
<meta property="dcterms:modified">2019-01-01T12:00:00Z</meta>
<link hreflang="" rel="alternate" href="https://example.org/package.json" media-type="application/json-ld"/>
</metadata>
<manifest>
<item id="t001" href="contents.xhtml" properties="nav" media-type="application/xhtml+xml"/>
</manifest>
<spine>
<itemref idref="t001"/>
</spine>
</package>
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://www.idpf.org/2007/opf" version="3.0" unique-identifier="uid"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata>
<dc:title>Title</dc:title>
<dc:language>en</dc:language>
<dc:identifier id="uid">NOID</dc:identifier>
<meta property="dcterms:modified">2019-01-01T12:00:00Z</meta>
<link hreflang="en-US" rel="alternate" href="https://example.org/package.json" media-type="application/json-ld"/>
</metadata>
<manifest>
<item id="t001" href="contents.xhtml" properties="nav" media-type="application/xhtml+xml"/>
</manifest>
<spine>
<itemref idref="t001"/>
</spine>
</package>
8 changes: 8 additions & 0 deletions src/test/resources/epub3/package-document.feature
Expand Up @@ -237,6 +237,14 @@ Feature: EPUB 3 ▸ Packages ▸ Package Document Checks
When checking file 'link-to-publication-resource-error.opf'
Then error OPF-067 is reported
And no other errors or warnings are reported

Scenario: the 'link' element can have an 'hreflang' attribute
When checking file 'link-hreflang-valid.opf'
Then no other errors or warnings are reported

Scenario: the 'link' 'hreflang' attribute can be empty
When checking file 'link-hreflang-empty-valid.opf'
Then no other errors or warnings are reported

### 3.4.4 Manifest

Expand Down

0 comments on commit e39a801

Please sign in to comment.