Eduard Braun
4f23ea7a34
Print usage information if no input file was specified (and no data is available from stdin) ( #65 )
...
fixes #34
2016-08-23 21:16:14 +02:00
Eduard Braun
57f93efc89
Don't escape quotes ('/") in text nodes and attributes. ( #64 )
...
- In text nodes quotes are fine
- In attributes quotes are fine if used reciprocally.
Escaping in the latter case often causes issues, e.g. with quoted font names (#21 ) or inline CSS styles (#56 ), while it probably does not gain anything (if quotes are wrongly used in attribute names the XML is most likely invalid to start with)
2016-08-16 00:10:41 +02:00
Eduard Braun
fe2884c3e8
Don't remove unreferenced defs if --keep-unreferenced-defs is specified ( #62 )
...
* Don't remove unreferenced defs if `--keep-unreferenced-defs` is specified
(fixes #18 )
* Add unittests for previous commit
2016-08-14 18:52:55 +02:00
Eduard Braun
3299f8f6e0
Also shorten unused IDs when --shorten-ids is specified
2016-08-14 17:12:48 +02:00
Eduard Braun
df142a2f22
Drop official support for Python 2.6
2016-08-13 17:15:03 +02:00
Dirk Thomas
371f14786a
add --order-attributes option
2016-07-29 10:22:59 -07:00
Eduard Braun
84b36c7109
Only include "standalone" attribute if it was explicitly set to "yes" in input document ("no" is the default value)
2016-06-12 15:36:02 +02:00
Tobias Oberstein
6a23a4cd71
add unit tests
2016-04-02 17:41:20 +02:00
Tobias Oberstein
99dc0dfae9
fix opt groups
2016-04-02 17:11:14 +02:00
Tobias Oberstein
b14e801cb7
add option to check and warn or bail out on flowtext
2016-04-02 16:49:10 +02:00
Eduard Braun
ea610e5c09
Fix regression in 77906518c0
...
(accidentally removed default value for "shorten_ids_prefix")
2016-04-02 01:54:27 +02:00
Eduard Braun
77906518c0
Use option groups for command line arguments to achieve clearer help output
2016-02-20 18:43:43 +01:00
Eduard Braun
72c2ec8e1c
Add possibility to specify input/output filename using positional arguments (e.g. 'scour input.svg output.svg')
2016-02-20 17:57:30 +01:00
Tobias Oberstein
ab90d18cb2
Merge pull request #45 from Ede123/console_output
...
Switch order of new/old size in console output
2016-02-19 14:08:29 +01:00
Eduard Braun
b042c93b2c
Switch order of new/old size in console output
...
(It already looked like a fraction, now it also yields the correct result if it's read like one)
2016-02-19 04:47:33 +01:00
Eduard Braun
e701acdc25
Add a mechanism to sanitize options.
...
This simplifies usage of the Scour module while avoiding any compatibility issues that might be caused by adding/removing/renaming options.
2016-02-19 04:03:59 +01:00
Tobias Oberstein
170f8c7baa
turn down log noise; improve logging
2016-01-29 09:25:43 +01:00
Eitot
184efee16e
- Initial support for Sketch
...
- Typos in README.md
2015-12-24 17:07:40 +01:00
Tobias Oberstein
130a71327a
Merge pull request #28 from Ede123/comments
...
Simplify and fix "removeComments()"
2015-12-10 23:34:59 +01:00
Eduard Braun
c698522c28
Simplify and fix "removeComments()"
...
* The separate treatment of comments at the documentElement's level is not necessary - they have a parent (as tested in Python 3.5.0 and 2.7.11 and 2.6.6)! It might not have worked before due to a typo - note the "if isinstance(element,...)" and "len(element.data)" which should both refer to "subelement" instead - or a bug in very old versions of Python).
* Fix the iteration over childNodes (i.e. replace "for subelement in element.childNodes:" with ""for subelement in element.childNodes[:]:". We have to create a copy of the list to iterate over, otherwise we'd be iterating over a list as we change it which leads to unpredictable results.
Fixes #25
2015-12-10 22:51:27 +01:00
Eduard Braun
8984e550b0
Read from stdin in binary mode an let XML parser deal with encoding. Also write to stdout in binary mode as the output is already encoded.
2015-12-09 00:30:16 +01:00
Eduard Braun
4eade69201
Open input file in binary mode an let XML parser deal with encoding.
...
Fixes #26
2015-12-08 23:38:06 +01:00
Eduard Braun
ab1aa0e2f8
Fix a bug with "points" attribute of "polyline/polygon" starting with a negative number.
...
In this case "len(nums) = 0" and "nums[len(nums)-1]" triggered an "IndexError: list index out of range"
2015-12-06 23:47:56 +01:00
Eduard Braun
2293e1bd4a
Fix regex for list of points splitting: Expect at least one whitespace character or comma between coords.
...
The previous regex would have allowed zero length matches and therefore could have split the string after every character - luckily this was not (yet) correctly implemented in Python. Since Python 3.5 a warning is raised informing of this problem. Future versions will correctly split also at zero length matches.
See also note on https://docs.python.org/3/library/re.html#re.split
2015-12-06 22:53:03 +01:00
Eduard Braun
c54c5e5d7e
Unittests: Fix warnings
...
- Replace deprecated assertion-aliases
- Make sure opened files are properly closed after usage
2015-12-06 22:13:21 +01:00
Eduard Braun
6254548582
Compatibility fix for Python 2.6
...
(NamedNodeList seems not to have had the iterkeys method back then)
2015-11-21 23:29:59 +01:00
Tobias Oberstein
46a2ada361
Merge pull request #14 from Ede123/namespaces
...
Remove unused XML namespace declarations
2015-11-17 23:18:46 +01:00
Eduard Braun
532f664001
Minor fix in console output (superfluous space)
2015-11-17 23:09:25 +01:00
Eduard Braun
89f4b687f2
Statistics: count also attributes removed from root SVG element
2015-11-17 22:49:50 +01:00
Eduard Braun
67bacc2f23
Remove metadata right away
...
(i.e. before checking for unused XML namespaces; otherwise the relevant namespaces used for metadata would not yet be unused)
2015-11-17 22:46:50 +01:00
Eduard Braun
b979fe19e5
Remove unused XML namespace declarations
2015-11-17 22:30:23 +01:00
Tobias Oberstein
302f7f7477
use absolute imports
2015-11-16 20:36:12 +01:00
Tobias Oberstein
e903475289
cleanups; bump version
2015-11-16 18:05:35 +01:00
Eduard Braun
7e36be4aaa
Add an option to strip the xml:space="preserve" attribute from the root SVG element
...
This attribute is added by at least one popular vector graphics editor thwarting our efforts to pretty-print the output.
2015-11-15 19:26:39 +01:00
Eduard Braun
e21e362353
Add an option to suppress output of line breaks
...
(obviously this also disables indentation)
2015-11-15 18:44:17 +01:00
Eduard Braun
18266ca1ec
Add an option to set number of spaces (or tabs used for indentation)
2015-11-15 18:14:03 +01:00
Andy Levisay
d1c66cc75b
Python 3 Updates
...
Ran python-modernizer, this fixed most of the Python 3
incompatibilities.
Had to manually rework the iteration in svg_regex and svg_transform;
.next doesn't exist in Python 3. Wrapped the builtin next function in a
partial for equivalent functionality.
2015-04-28 15:26:55 -05:00
Tobias Oberstein
85dff51cc9
fix ingoring of additional args when invoked from scons; bump version
2014-08-05 12:47:33 +02:00
Tobias Oberstein
26a360a00c
add option to ingore unknown cmd line opts; bump version
2014-07-26 17:20:47 +02:00
Tobias Oberstein
43ee078ee6
Merge pull request #3 from flosse/master
...
fixed version string
2014-03-10 00:22:47 +01:00
Tobias Oberstein
e01fac82a4
Merge pull request #2 from flosse/keep-unreferenced-defs
...
added option to keep elements within defs
2014-03-10 00:22:27 +01:00
mdxs
f7165f66a9
Small typo fix in doc string of parseListOfPoints
2014-03-09 23:44:06 +01:00
Markus Kohlhase
9bb929d91e
added option to keep elements within defs
2014-01-12 17:10:02 +01:00
Markus Kohlhase
edcaeba905
fixed version string
2014-01-12 16:56:56 +01:00
Markus Kohlhase
ae4d9303f1
support custom id prefixes
2014-01-10 23:42:02 +01:00
Tobias Oberstein
3353500845
allow direct calling of module
2013-10-26 17:47:42 +02:00
Tobias Oberstein
8dc6137373
whitespace cleanup
2013-10-26 16:43:39 +02:00
Tobias Oberstein
f89b6bbf6a
initial source import (v0.26) and packaging
2013-10-22 16:31:42 +02:00