Code

Scour extension update
authorJazzyNico <nicoduf@yahoo.fr>
Sun, 29 Nov 2009 19:20:07 +0000 (20:20 +0100)
committerJazzyNico <nicoduf@yahoo.fr>
Sun, 29 Nov 2009 19:20:07 +0000 (20:20 +0100)
share/extensions/scour.inkscape.py
share/extensions/scour.inx

index 531dfb46c6a465d11b14d6879cd58e481cd3ff96..9e87757826210bd724de8e536b6a0d995c2479ba 100755 (executable)
@@ -1,8 +1,51 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
-import sys
+import sys, inkex
 from scour import scourString
-input = file(sys.argv[1], "r")
-sys.stdout.write(scourString(input.read()).encode("UTF-8"))
-input.close()
-sys.stdout.close()
+
+class ScourInkscape (inkex.Effect):
+
+    def __init__(self):
+        inkex.Effect.__init__(self)
+        self.OptionParser.add_option("--tab",
+            action="store", type="string",
+            dest="tab")
+        self.OptionParser.add_option("--simplify-colors", type="inkbool",
+            action="store", dest="simple_colors", default=True,
+            help="won't convert all colors to #RRGGBB format")
+        self.OptionParser.add_option("--style-to-xml", type="inkbool",
+            action="store", dest="style_to_xml", default=True,
+            help="won't convert styles into XML attributes")
+        self.OptionParser.add_option("--group-collapsing", type="inkbool",
+            action="store", dest="group_collapse", default=True,
+            help="won't collapse <g> elements")
+        self.OptionParser.add_option("--enable-id-stripping", type="inkbool",
+            action="store", dest="strip_ids", default=False,
+            help="remove all un-referenced ID attributes")
+        self.OptionParser.add_option("--embed-rasters", type="inkbool",
+            action="store", dest="embed_rasters", default=True,
+            help="won't embed rasters as base64-encoded data")
+        self.OptionParser.add_option("--keep-editor-data", type="inkbool",
+            action="store", dest="keep_editor_data", default=False,
+            help="won't remove Inkscape, Sodipodi or Adobe Illustrator elements and attributes")
+        self.OptionParser.add_option("--strip-xml-prolog", type="inkbool",
+            action="store", dest="strip_xml_prolog", default=False,
+            help="won't output the <?xml ?> prolog")
+        self.OptionParser.add_option("-p", "--set-precision",
+            action="store", type=int, dest="digits", default=5,
+            help="set number of significant digits (default: %default)")
+        self.OptionParser.add_option("--indent",
+            action="store", type="string", dest="indent_type", default="space",
+            help="indentation of the output: none, space, tab (default: %default)")
+
+
+    def effect(self):   
+        input = file(sys.argv[11], "r")
+        sys.stdout.write(scourString(input.read(), self.options).encode("UTF-8"))
+        input.close()
+        sys.stdout.close()
+
+
+if __name__ == '__main__':
+    e = ScourInkscape()
+    e.affect(output=False)
index 57884b6aaed48929dc85dbf80db76a211dd1ea16..d5cddeea578d920ddd15079ca5a5b886a6962f5b 100644 (file)
@@ -5,6 +5,35 @@
     <dependency type="executable" location="extensions">scour.py</dependency>
     <dependency type="executable" location="extensions">svg_regex.py</dependency>
     <dependency type="executable" location="extensions">yocto_css.py</dependency>
+    <param name="tab" type="notebook">
+        <page name="Options" _gui-text="Options">            
+            <param name="simplify-colors"  type="boolean" _gui-text="Simplify colors">true</param>
+            <param name="style-to-xml"  type="boolean" _gui-text="Style to xml">true</param>
+            <param name="group-collapsing"  type="boolean" _gui-text="Group collapsing">true</param>
+            <param name="enable-id-stripping"  type="boolean" _gui-text="Enable id stripping">false</param>
+            <param name="embed-rasters"  type="boolean" _gui-text="Embed rasters">true</param>
+            <param name="keep-editor-data"  type="boolean" _gui-text="Keep editor data">false</param>
+            <param name="strip-xml-prolog"  type="boolean" _gui-text="Strip xml prolog">false</param>
+            <param name="set-precision"  type="int" _gui-text="Set precision">5</param>
+           <param name="indent" type="enum" _gui-text="Indent">
+                <_item value="space">Space</_item>
+                <_item value="tab">Tab</_item>
+                <_item value="none">None</_item>
+            </param>
+        </page>
+        <page name="Help" _gui-text="Help">
+            <_param name="instructions" type="description" xml:space="preserve">This extension optimize the SVG file according to the following options:
+    * Simplify colors: convert all colors to #RRGGBB format.
+    * Style to xml: convert styles into XML attributes.
+    * Group collapsing: collapse &lt;g&gt; elements.
+    * Enable id stripping: remove all un-referenced ID attributes.
+    * Embed rasters: embed rasters as base64-encoded data.
+    * Keep editor data: don't remove Inkscape, Sodipodi or Adobe Illustrator elements and attributes.
+    * Strip xml prolog: don't output the xml prolog.
+    * Set precision: set number of significant digits (default: 5).
+    * Indent: indentation of the output: none, space, tab (default: space).</_param>
+        </page>
+    </param>        
     <output>
         <extension>.svg</extension>
         <mimetype>image/svg+xml</mimetype>