v3.3.0
Breaking changes
There are some breaking changes introduced in this release to accommodate the new features, mostly the coverage of some of the EPUB 3 schema attributes previously missing in the EpubReader (due to their type incompatibility with EPUB 2 schema types). All of them are syntactical, non-functional changes, i.e. applications will need to make code changes in the way how they access this data but not how it is being used.
EpubBook.Schema.Epub2Ncx
and EpubBookRef.Schema.Epub2Ncx
(#60)
Head[n]
→Head.Items[n]
;NavMap[n]
→NavMap.Items[n]
;PageList[n]
→PageList.Items[n]
.
EpubBook.Schema.Package
and EpubBookRef.Schema.Package
(#60)
Guide[n]
→Guide.Items[n]
;Manifest[n]
→Manifest.Items[n]
;Spine[n]
→Spine.Items[n]
.
EpubBook.Content
and EpubBookRef.Content
(#62 and #69)
EpubContentFile
type →EpubLocalContentFile
type;EpubTextContentFile
type →EpubLocalTextContentFile
type;EpubByteContentFile
type →EpubLocalByteContentFile
type;EpubContentFileRef
type →EpubLocalContentFileRef
type;EpubTextContentFileRef
type →EpubLocalTextContentFileRef
type;EpubByteContentFileRef
type →EpubLocalByteContentFileRef
type;Html[key]
→Html.Local[key]
;Css[key]
→Css.Local[key]
;Images[key]
→Images.Local[key]
;Fonts[key]
→Fonts.Local[key]
;AllFiles[key]
→AllFiles.Local[key]
;xxx.Local[key].FileName
→xxx.Local[key].Key
(the word "key" better conveys the meaning of this field in the content dictionary);xxx.Local[key].FilePathInEpubArchive
→xxx.Local[key].FilePath
.
EpubBook.Navigation[n]
and EpubBookRef.GetNavigation()[n]
(#71)
Link?.ContentFilePathInEpubArchive
→Link?.ContentFilePath
.
VersOne.Epub.Schema
namespace
Epub3NavStructuralSemanticsProperty
type →Epub3StructuralSemanticsProperty
type (#78);EpubMetadataLinkRelationship.ACQUIRE
→ none (removed in EPUB 3.3 specification; #86);EpubMetadataLinkProperty.XMP
→ none (removed in EPUB 3.3 specification; #86).
EpubBook.Schema.Package.Metadata
and EpubBookRef.Schema.Package.Metadata
(#85)
Titles[n]
→Titles[n].Title
;Subjects[n]
→Subjects[n].Subject
;Description
→Descriptions.FirstOrDefault()?.Description
;Publishers[n]
→Publishers[n].Publisher
;Types[n]
→Types[n].Type
;Formats[n]
→Formats[n].Format
;Sources[n]
→Sources[n].Source
;Languages[n]
→Languages[n].Language
;Relations[n]
→Relations[n].Relation
;Coverages[n]
→Coverages[n].Coverage
;Rights[n]
→Rights[n].Rights
.
New features
- EPUB 3.3 support. EPUB 3.3 specification is currently in the Proposed Recommendation stage but it is expected to be released by the EPUB 3 Working Group within a few months (#86).
- Support for remote content files (i.e. the files referenced in the manifest by absolute URLs, e.g.
https://example.com/book/123/chapter1.html
as opposed to the local files, e.g.Content/chapter1.html
which are located within the EPUB file) with optional auto-downloading (#62 and #69). - 100% coverage for all EPUB 3 schema elements and attributes, up to the version 3.3 of the EPUB specification (#85).
- Preliminary support for the EPUB 3.2 Media Overlays (a feature to include audio narrations into EPUB books). The data parsed from the media overlays is currently exposed as a collection of EPUB schema types (accessible via the
EpubBook.Schema.MediaOverlays
andEpubBookRef.Schema.MediaOverlays
properties). EpubReader will have a more convenient way to consume this data on theEpubBook
level in the future (#78). - C# nullable reference type annotations (#71).
- Explicit .NET Standard 2.0 support to reduce the number of system Nuget packages being installed if the application targets .NET Framework >= 4.6.1 or .NET/.NET Core >= 2.0 (#52).
- Console demo app was migrated to .NET 7 (#72).