Difference between revisions of "User:Tsingi"
Jump to navigation
Jump to search
Line 14: | Line 14: | ||
=== Wiki Notes Annotated === | === Wiki Notes Annotated === | ||
''In italics is a copy of the '''Cleaning Operations''' list from the [http://wiki.inkscape.org/wiki/index.php/Save_Cleaned_SVG Save_Cleaned_SVG] page'' | '''''In italics is a copy of the '''Cleaning Operations''' list from the [http://wiki.inkscape.org/wiki/index.php/Save_Cleaned_SVG Save_Cleaned_SVG] page''''' | ||
My notes are formatted like this. | My notes are formatted like this. | ||
* ''Specify a limit to the precision of all positional elements.'' | * '''''Specify a limit to the precision of all positional elements.''''' | ||
: '''DONE''' trimming precision was my first priority. precision can be set to -1 (off) or 0..9. islint gives an extra decimal to transformation floats, so if you set prec=1, a matrix will have values to two decimal places. This is to preserve a little sanity at a low cost should there be nested transforms. | : '''DONE''' trimming precision was my first priority. precision can be set to -1 (off) or 0..9. islint gives an extra decimal to transformation floats, so if you set prec=1, a matrix will have values to two decimal places. This is to preserve a little sanity at a low cost should there be nested transforms. | ||
* ''Clean up XML Elements'' | * '''''Clean up XML Elements''''' | ||
** ''Collapse multiple redundant groups'' | ** '''''Collapse multiple redundant groups''''' | ||
: '''Not done''' easy to do though. '''Low priority'''. | : '''Not done''' easy to do though. '''Low priority'''. | ||
** ''Remove empty tags, such as defs or metadata.'' | ** '''''Remove empty tags, such as defs or metadata.''''' | ||
: '''Not done''' easy to do though. '''Low priority'''. | : '''Not done''' easy to do though. '''Low priority'''. | ||
** ''Remove id tags for elements not referenced'' | ** '''''Remove id tags for elements not referenced''''' | ||
: '''Not done''' I like to have an id on everything. I usually want something more useful than path1234, but that requires either human intervention, or a targetted generator. I can add it as an option, '''low priority''' | : '''Not done''' I like to have an id on everything. I usually want something more useful than path1234, but that requires either human intervention, or a targetted generator. I can add it as an option, '''low priority''' | ||
* ''Clean up Definitions'' | * '''''Clean up Definitions''''' | ||
** ''Remove unused definitions'' | ** '''''Remove unused definitions''''' | ||
** ''Remove duplicate gradient stops'' | ** '''''Remove duplicate gradient stops''''' | ||
** ''Collapse duplicate gradient definitions'' | ** '''''Collapse duplicate gradient definitions''''' | ||
** ''Remove gradients that are only referenced by one other gradient'' | ** '''''Remove gradients that are only referenced by one other gradient''''' | ||
* ''Clean up CSS'' | * '''''Clean up CSS''''' | ||
** ''Remove Default values, i.e. opacity: 1;'' | ** '''''Remove Default values, i.e. opacity: 1;''''' | ||
** ''Remove Not applicable values, i.e. opacity: 0; fill-color: #00000;'' | ** '''''Remove Not applicable values, i.e. opacity: 0; fill-color: #00000;''''' | ||
** ''Convert RGB colours from RGB(r,g,b) to #RRGGBB format'' | ** '''''Convert RGB colours from RGB(r,g,b) to #RRGGBB format''''' | ||
** ''Convert RGB colours from #RRGGBB to #RGB if possible'' | ** '''''Convert RGB colours from #RRGGBB to #RGB if possible''''' | ||
* ''Clean up paths'' | * '''''Clean up paths''''' | ||
** ''Detect vertical/horizontal lines and replace.'' | ** '''''Detect vertical/horizontal lines and replace.''''' | ||
** ''Eliminate empty path segments'' | ** '''''Eliminate empty path segments''''' | ||
** ''Eliminate last segment in a polygon'' | ** '''''Eliminate last segment in a polygon''''' | ||
** ''Collapse straight curves.'' | ** '''''Collapse straight curves.''''' | ||
** ''Convert absolute path segments to relative ones.'' | ** '''''Convert absolute path segments to relative ones.''''' | ||
* ''Process Transformations'' | * '''''Process Transformations''''' | ||
** ''Process quadratic Bezier curves'' | ** '''''Process quadratic Bezier curves''''' | ||
** ''Collapse all group based transformations'' | ** '''''Collapse all group based transformations''''' | ||
* ''Convert known properties to element attributes'' | * '''''Convert known properties to element attributes''''' | ||
** ''css to element attributes'' | ** '''''css to element attributes''''' | ||
* ''Output Standard SVG'' | * '''''Output Standard SVG''''' | ||
** ''Remove inkscape namespace'' | ** '''''Remove inkscape namespace''''' | ||
** ''Remove sodipodi namespace'' | ** '''''Remove sodipodi namespace''''' | ||
** ''Remove adobe namespace'' | ** '''''Remove adobe namespace''''' | ||
** ''Use viewPort instead of document width/height'' | ** '''''Use viewPort instead of document width/height''''' |
Revision as of 10:30, 24 September 2009
I've started contributing to InkScape in my own way, I have made a dent on a filter to sanitize InkScape.
- Wiki profiler page: Save_Cleaned_SVG
- islint at SourceForge
My motives are purely selfish. I'm one of the authors of SVG, I work with SVG, and I find InkScape to be an excellent tool, but I spend a lot of time editing InkScape output with vi to clean it up for use in dynamic web apps (mostly). A task with very low entertainment value. Writing filters is more fun.
islint is pretty useful to me as is now, it has a way to go before it will serve as a general filter for InkScape.
This is the wrong place to do this, but it will serve for now...
islint
Wiki Notes Annotated
In italics is a copy of the Cleaning Operations list from the Save_Cleaned_SVG page
My notes are formatted like this.
- Specify a limit to the precision of all positional elements.
- DONE trimming precision was my first priority. precision can be set to -1 (off) or 0..9. islint gives an extra decimal to transformation floats, so if you set prec=1, a matrix will have values to two decimal places. This is to preserve a little sanity at a low cost should there be nested transforms.
- Clean up XML Elements
- Collapse multiple redundant groups
- Not done easy to do though. Low priority.
- Remove empty tags, such as defs or metadata.
- Not done easy to do though. Low priority.
- Remove id tags for elements not referenced
- Not done I like to have an id on everything. I usually want something more useful than path1234, but that requires either human intervention, or a targetted generator. I can add it as an option, low priority
- Clean up Definitions
- Remove unused definitions
- Remove duplicate gradient stops
- Collapse duplicate gradient definitions
- Remove gradients that are only referenced by one other gradient
- Clean up CSS
- Remove Default values, i.e. opacity: 1;
- Remove Not applicable values, i.e. opacity: 0; fill-color: #00000;
- Convert RGB colours from RGB(r,g,b) to #RRGGBB format
- Convert RGB colours from #RRGGBB to #RGB if possible
- Clean up paths
- Detect vertical/horizontal lines and replace.
- Eliminate empty path segments
- Eliminate last segment in a polygon
- Collapse straight curves.
- Convert absolute path segments to relative ones.
- Process Transformations
- Process quadratic Bezier curves
- Collapse all group based transformations
- Convert known properties to element attributes
- css to element attributes
- Output Standard SVG
- Remove inkscape namespace
- Remove sodipodi namespace
- Remove adobe namespace
- Use viewPort instead of document width/height