View Single Post
Old 08-10-2017, 08:33 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: 628
Karma: 788808
Join Date: May 2013
Location: Philippines
Device: Android S5
[Plugin] ConvertAbs2RelCSSValues

Converts cm, mm, inch, pica, point and pixel values to relative 'em' values in the css

Requirements
Plugin Type: Edit
MIT Licence(OSI)
Minimum Sigil requirement: v0.9.3 or higher
Requirements: Python 3.4+ (Bundled or External)
OS Requirements: Windows, Linux or OSX
Current Version: "0.1.8"

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 ConvertAbs2RelCSSValues_vXXX.zip. This will load and install the plugin into Sigil, which you can then select and run it using Plugins > Edit > ConvertAbs2RelCSSValues

Description
This is an edit plugin that automatically converts all absolute values such as cm, mm, inch, pica, point and pixel(Added in v10.1.7) values to relative em values in the epub stylesheet(s). Depending on user choice, this plugin will also convert all shorthand forms of "padding" or "margin" to their long forms(see User Options). This plugin can be used for epub v2 and epub v3 files(Added in v1.5).

Examples of the various shorthand forms for 'margin'(it's the same format for 'padding') are shown below:
margin: 0;
margin: 1.5pt 0;
margin 1pt 0pt 1.5pt;
margin 24pt 0pt 12pt 0pt;

The above forms will be converted to the long form. Example shown below:
margin-top: 2em;
margin-bottom: 1.0em;
margin-left: 1.5em;
margin-right: 0em;

The other benefit of converting to the long form is that certain ereaders like the Nook ereader are known to have problems with the shorthand forms of 'margin' and 'padding'. That's why it's much safer to use the long forms -- because using the long forms should never give you any problems on any ereader conversion.

User Dialog
This dialog will ask the user whether or not he/she wants to convert the 'margin' and 'padding' shorthand forms to their long forms. If 'Yes' is chosen then the shorthand forms will all be converted to the long form as before. But if 'No' is chosen then all the shorthand form values will be converted to 'em' values in place.

Plugin Run
First load your epub into Sigil and then just run this plugin.

Caveats
* This plugin will not convert percentage values to 'em' values
* This plugin will not convert 'margin: 0 auto' to the long form.
* Can now convert pixel values to em values in the css(Added in v0.1.7).
* Take note that pixel conversions(Added in v0.1.7) using this plugin will not convert the following CSS class property pixel values to em: height, width, max-width, max-height and border.

In the past I've had several problems with sizing and spacing in my epub after I have converted my ebooks to the vendor format. I've read that some Nook readers have problems with the shorthand forms of both 'padding' and 'margin' properties. I've also had some weird problems using absolute values(e.g. pts, cm, mm, pc, etc) in the CSS with my Kindle conversions. Hopefully this plugin should go some way towards both saving you some time and will also help to alleviate most of these sizing and spacing problems in your epubs.

Update:
* Redesigned the absolute to relative value conversion with better precision.
* Added a dialog to choose whether or not to convert the shorthand margin/padding forms to their long forms.
* The plugin will now also convert all forms of shorthand margin/padding values to em values as well.

Changes
Spoiler:

v0.1.8
-- Fixed some minor issues wrt points and inch conversions.
v0.1.7
-- Fixed inches conversion problem reported by DNSB.
v0.1.6[INDENT]-- This plugin can now process and convert pixels to em values.Thanks to gregorio and Doitsu.
-- The plugin will not convert px to em values if the pixel values are being used within the following class properties: width, height, max-width, max-height and border.
v0.1.5
-- This plugin can now be used for epub v2 and epub v3 files
v0.1.4
-- Now uses a standard tkinter askyesno dialog for the user dialog.
v0.1.3
-- Added MIT Licence
v0.1.2
-- Redesigned the absolute to relative value conversion with better
precision.
-- Added a dialog to choose whether or not to convert the shorthand
margin/padding forms to their long forms.
-- The plugin will now also convert all forms of shorthand margin/padding
values to 'em' values as well.
-- Changed and updated the release notes.
v0.1.1
-- Fixed a bug on conversion with the 'size' property
v0.1.0
-- Initial release
Attached Files
File Type: zip ConvertAbs2RelCSSValues_v018.zip (44.9 KB, 1200 views)

Last edited by slowsmile; 03-10-2022 at 08:41 PM.
slowsmile is offline   Reply With Quote