Skip to content

v3.3.0

Compare
Choose a tag to compare
@github-actions github-actions released this 15 May 23:10
· 26 commits to master since this release

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].FileNamexxx.Local[key].Key (the word "key" better conveys the meaning of this field in the content dictionary);
  • xxx.Local[key].FilePathInEpubArchivexxx.Local[key].FilePath.

EpubBook.Navigation[n] and EpubBookRef.GetNavigation()[n] (#71)

  • Link?.ContentFilePathInEpubArchiveLink?.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;
  • DescriptionDescriptions.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 and EpubBookRef.Schema.MediaOverlays properties). EpubReader will have a more convenient way to consume this data on the EpubBook 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).

Bug fixes

  • Fix for the cover extracting issue for EPUB 2 books with no cover and no guide section in their OPF files (#58).
  • Fix for EPUB 2 NCX navigation list parsing (#56).
  • Fix for OPF event and OPF scheme metadata attributes parsing (#54).