Sigil-0.9.3 is a major new release that greatly improves Sigil’s ability to work with and generate epub3 ebooks without losing any of its epub2 capabilities. This release also includes a number of bug fixes and stability improvements.

The main bug fixes are:

  • Add a python based updatechecker for Sigil updates to prevent Windows OpenSSL build issues
  • Stop ‘Generate TOC’ from introducing unnecessary spaces in front of class attibute values
  • Use localeAwareCompare to attempt to add Index Entries to build them sorted
  • Fix segfault caused by use of possibly stale htmlresource pointer in FlowTab destructor
  • Workaround a Qt bug that causes slow selection/highlighting of xhtml in CodeView on Linux
  • Fix multiple typos in sigil_gumbo_bs4_adapter code and other plugin interface fixes

The main new features aavailable for both epub2 and epub3 users are:

  • Add an autostart/autoclose capability for plugin developers to simplify the plugin user’s experience
  • Add 3 User-assignable ToolBar Buttons for up to 3 plugins – users can now an assign key accelerators to them
  • Add General Settings Preference for setting default (epub 2 or 3) for new documents
  • Merge CleanSource Preference Settings into General Settings Preferences

The primary focus of this release was to continue improving Sigil’s epub3 capabilities. This involves a number of internal changes and additions to better support epub3 users

  • Completely reworked Sigil internals to support epub version (2 or 3) specific functionality

    • ImportHTML, ImportEPUB, Splitting and Merging, Index Generation, and Mend are all now epub version aware and safe for epub3 users
  • Add an “Epub3 Tools” submenu to the Tools menu with 3 new epub3 specific tools:

    • Update Manifest Properties
    • Generate Nav From NCX
    • Generate NCX From Nav
  • AddModificationDate upon save is now epub2 and epub3 aware
  • Added support for MathML in Preview via Mathjax.js-single polyfill (not available in BookView)
  • Added support to recognize and update upon load SMIL files and Adobe page-map.xml files
  • Recognize and store .vtt and .ttml files for video subtitles and captioning
  • Prevent attempts from using Metadata Editor gui from hurting epub3 until support is added later
  • Reworked the plugin_launcher epub3 interface code to allow fallback and media-overlay attributes
  • Add Setting to control Epub access non-multimedia remote resources
  • Add local-storage support to PV/BV for epub3’s that use javascripts
  • Make quoteurl url scheme-aware in both python and for Qt, since epub3 allows external resources
  • Many epub3 related bug fixes and changes to make sure all new epub3 href/links are properly updated
  • Extend url address recognition to include track, video, and object elements attributes
  • Added the MathML list of void tags to GumboInterface for proper serialization

With these changes in place, and running the first of the epub3 Testsuite (http://epubtest.org/testsuite/) tests for Reflowable Content Tests (EUPTEST 0100), Sigil will now pass **all** tests *except* for the following:

Failed Tests:

  • vide0-010: support for VP8 video (optional test)
  • video-060: suport for TTML video (optional test)
  • video-080: support for video with TTML subtitles (optional test)
  • trigger-010 … trigger-040: support for epub:trigger (required test)
  • mathml-080: support for long division (passes on Linux and Mac OS X, fails on Windows)
  • mathml-081: support for mstack, mscarries (passes on Linux and Mac OS X, fails on Windows)
  • bindings-010: support for opf bindings (optional test)
  • fallback-010 … fallback-040: support for opf fallbacks (required test)
  • switch-010 … switch-020: support for epub:switch element (required test)

In addition there is NO support for:

  • previewing /working with fixed format layouts
  • playback or design set-up of media-overlays
  • navigation via epub:cfi (Content Fragment Identifiers).

Be aware that Sigil-0.9.3 enforces the need for epub3 to have and support an NCX so that it generates as backward a compatible epub as possible. This may be relaxed in future releases.

Sigil-0.9.3 passes all of the following tests for epub3 support:

  • iframe
  • img
  • audio
  • video (except as noted above)
  • mathml (except as noted above for Windows)
  • svg (except for svg support in the spine)
  • javascript
  • recognizing and allowing html5 specific tags like section, and etc.
  • javascript based local-storage
  • display of embedded pdfs.

As there is talk at the IDPF of removing the requirement to support epub:switch and epub:trigger from future versions of the epub3 specifications, these will be very low priority items for the future. Fallbacks and bindings are really things meant for epub viewers and not epub editors in that they control what get shown in the ebook when a user navigates to something the epub reader does not support. You can of course use Sigil to code-up any of these features for use in an epub, it is that Sigil does not have the capability to actually preview it properly for you.

There is still much work that needs to be done to improve epub3 support, but we hope epub3 users will find Sigil-0.9.3 to be a big step forward in this regard.

Our plan for moving forward for epub3 support in future releases:

  • add a dc: metadata editor gui for epub3
  • add a gui way to easily set epub:type semantics on highlighted text blocks
  • change TOC/NAV generation tools to be built directly instead of form an existing NCX
  • change TOC/Nav generation to recognize and use epub:type / section semantic information
  • add support to preview fixed layout epubs
  • add gui editor for more advanced metadata editing to support SMIL and Fixed-Layout epubs
  • make the NCX removable in epub3 by preference setting but default to keep it
  • support for media-overlay (SMIL) playback during preview
  • at a lower priority: add support for epub:trigger, epub:switch during preview

Download Location
The official location for downloading this Sigil release (and all official releases) is:

https://github.com/Sigil-Ebook/Sigil/releases/tag/0.9.3

Downloading binaries from anyplace else is simply not a good idea as they could inject anything into their own downloads. After downloading, please verify the downloaded binary exactly matches what was originally posted by running an SHA 256 checksum on the file **before** installing it. See the file Sigil-0.9.3-CHECKSUMS.sha256.txt for the correct checksums for each file and instructions for how to calculate a SHA 256 Checksum for your download. The Mac OS X Package has also been code signed with my Apple Developer signature.

The FlightCrew plugin has been updated
Please note, the epub2 validator FlightCrew has been converted to a plugin for Sigil 0.8.900 and later. This plugin has been updated from the last release to include support for autostart/autoclose tags and can be downloaded from the official Sigil-Ebook flightcrew repository if you have not already installed it.

https://github.com/Sigil-Ebook/flightcrew/releases/tag/0.9.1

Attention Mac OS X Users
Per the recommendation of http://www.python.org (see https://www.python.org/download/mac/tcltk/), due to bugs and the age of Apple’s internal Tcl library, you should also download and install ActiveState’s ActiveTcl Community Edition. To get the latest bug fixes, Sigil-0.9.2’s embedded Python has been linked with the very latest version: Tcl 8.6.4.1

We may *not* redistribute this Package with Sigil due to ActiveState’s binary non-redistribution policy.

So please, if you have not already done so download and install this version of ActiveState’s Active Tcl Community Edition, until we get a chance to do our own build of Tcl 8.6.4.1 from source for future releases. ActiveState is a primary contributor to http://www.python.org and a respected and trusted source for python and tcl/tk related binaries on both Windows and Mac OS X.

See: http://www.activestate.com/activetcl/downloads
Version: 8.6.4.1

Some Additional things:

When you fire up Sigil-0.9.3 for the first time:

  • navigate to the new General Preferences and select the default epub version you plan to work with (epub 2 or epub3) so that new empty ebooks start with the correct code.
  • If you plan to work with epub3 epubs, you should change your PreserveEntities setting to use ONLY NUMERIC entities. For example use & # 1 6 0 ; for non-breaking spaces and etc.
  • We strongly recommend enabling [B]Mend On Open[/B]
    in your settings as well for best performance with Sigil