View Single Post
Old 10-18-2017, 08:41 PM   #1
slowsmile
Witchman
slowsmile ought to be getting tired of karma fortunes by now.slowsmile ought to be getting tired of karma fortunes by now.slowsmile ought to be getting tired of karma fortunes by now.slowsmile ought to be getting tired of karma fortunes by now.slowsmile ought to be getting tired of karma fortunes by now.slowsmile ought to be getting tired of karma fortunes by now.slowsmile ought to be getting tired of karma fortunes by now.slowsmile ought to be getting tired of karma fortunes by now.slowsmile ought to be getting tired of karma fortunes by now.slowsmile ought to be getting tired of karma fortunes by now.slowsmile ought to be getting tired of karma fortunes by now.
 
Posts: 493
Karma: 787774
Join Date: May 2013
Location: Philippines
Device: Android S5
[Plugin] IDErrorCheck

Checks, repairs and reports all id errors in the epub

Requirements
Plugin Type: Edit
MIT Licence(OSI)
Minimum Sigil requirement: v0.9.3 or higher
Python Requirements: Python 3.4+ (Bundled or External)
OS Requirements: Windows, Linux or OSX
*** Tested on Windows 7, 8 & 10 only ***
Current Version: "0.2.0"

Installation
* Select Manage Plugins from the Plugins menu. In the dialog box, select either the Bundled Python or the External Python(Python 3.4+ should be installed on your computer to run this plugin externally).

* Click Add Plugin and select IDErrorCheck_vXXX.zip. This will load and install the plugin into Sigil, which you can then run by selecting Plugins > Edit > IDErrorCheck

Description
This plugin was originally written with the sole intention of properly reporting and, if possible, fixing Epubcheck's infamous "colon" id error problems. This plugin now also does the following:

* Converts all "name" attributes to "id" attributes in the html files.

* Now checks and repairs all invalid id attribute values in the epub's html files. Checks and repairs illegal spaces and illegal first-digit-start errors and also checks and repairs other illegal non-alphanumerics that commonly occur within id attribute values.(v0.1.5)

* Also checks and repairs all internal links that contain bad bookmarks associated with the above html id problems.(v0.1.5)

* Checks and repairs all book uuid values in the toc.ncx and content.opf. If an illegal book uuid value is found then another unique uuid will be automatically generated to replace it.(v0.1.5)

* Now checks and repairs all navPoint id values in the toc.ncx.(v0.1.5)

* Checks and logs all id errors occurring in the content.opf manifest or spine wihout fixing them.

* Will properly check, flag and identify Epubcheck's "colon" id errors and fix these errors.

* At the end of the plugin run, an error dialog will display a simple error list showing all relevant information about each id error including associated file, line number, reason and bad id.

Caveat
Don't use the "Mend and prettify..." Sigil feature directly after using this plugin. Doing so will change and increase the number of lines in the html files so that any reported error line numbers generated by the plugin automatically become inaccurate and void.

Plugin Run
First load your epub into Sigil and then just run the plugin. If you only want to know which errors have not been fixed then just run the plugin twice. The first time you run the plugin the display log will show you errors that have been fixed or not fixed. The second time you run the plugin will only show you what has not been fixed.

Update: This plugin can now process epubs that contain svg images without giving svg errors in Epubcheck.


Change Log:

Spoiler:

v0.2.0
-- Fixed a bug and removed some unnecessary code in the checkOPFID() function. Thanks to Lucsart.
v0.1.9
-- Fixed a bug where html "name" attributes were not initially being converted to "id" attributes before the id error checks. Thanks to Thasaidon.
v0.1.8
-- Fixed a problem causing svg formatting errors in Epubcheck. SVG images can now be used in epubs without problems when using this plugin.
v0.1.7
-- Now removes the 'name="calibre:cover"' line in the cover file meta tags which was causing Epubcheck problems. Thanks to Becky.
-- Plugin now does not check or change any "name" attributes or their values in the meta tags of all xhtml files. Thanks to DiapDealer.
v0.1.6
-- The plugin now prepends an 'x' for all illegal numeric first char problems in ids(ie as it was before the last change). Thanks to Becky.
v0.1.5
-- Plugin now repairs all illegal non-alphanum characters within ids and href ids in the xhtml files and toc.ncx only.
v0.1.4
-- Plugin now check ids in all tags in the xhtml files
-- Plugin now removes problematic and superfluous ids from navpoint hrefs
-- Plugin now removes probematic and superfluous ids from guide hrefs
-- Thanks to Becky for identifying these problems.
v0.1.3
-- Changed epub error message from "Invalid Epub" to "Epub contains no data". Thanks to Doitsu.
v0.1.2
-- Changed handling of illegal first char digit id errors. These errors are now fixed by prepending(not substituting) an 'x' char into the id value string. Thanks to AlanHK & DiapDealer
v0.1.1
-- Fixed plugin exit problem. Thanks to AlanHK
-- Tentative fix for Linux OS identification problem(untested). Thanks to Doitsu.
v0.1.0
-- Initial release
Attached Thumbnails
Click image for larger version

Name:	IDErrorCheck_Log.JPG
Views:	421
Size:	35.4 KB
ID:	163060  
Attached Files
File Type: zip IDErrorCheck_v020.zip (45.7 KB, 495 views)

Last edited by slowsmile; 06-02-2018 at 09:40 PM.
slowsmile is offline   Reply With Quote