| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
Adds our very first dependency, on `six`.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
The C-based scanner ignored restriction lists due to only accepting
tuples and lists, whereas yapps usually passes in sets. It should now
be in line with the Python scanner.
Also, it turns out that variables in functions could cause parse errors
that were being ignored; this is now fixed.
|
|
|
|
|
| |
Now matches Sass semantics much more closely, and understands
intermediate units in expressions like "1px * 1px / 1px".
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
CSS types now know whether they're expected to be rendered compressed or
not, and so can choose the most appropriate representation.
Colors in particular now try each of several possible renderings and
choose the shortest. (short_colors is still a separate setting, though
compress implies it.)
This removes the need for a full-document regex to shuffle colors
around, solving several problems related to color names that aren't
actually colors. It also kills off several regexes and dicts and brings
us closer to Ruby parity.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Unifies quoted and unquoted strings. Single quotes are now preserved.
Also moves the result of `type-of` into the type system, hurrah.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are some failures, which are for once helpfully marked with xfail.
Other minor fixes:
- grayscale() hasn't worked for forever due to incorrect arity. Oops.
- The rather terse `eval_expr` is now `evaluate_expression`, and it no
longer has a `raw` argument; instead it ALWAYS returns a CSS value,
and the only caller that used `raw=False` now performs that logic
directly.
- ColorValue grew an alternative and slightly saner constructor.
Hopefully this is the first of many.
|
| |
|
|
|
|
|
|
|
|
| |
Variables, functions, and mixins are now all stored within a single
Namespace object, which can easily spin off child namespaces.
Calculator methods no longer need to accept a rule at all, making it
possible to parse and evaluate expressions in a vacuum.
|
| |
|
|
|
|
|
| |
Also introduces ChainMap, used for scoping instead of options, and
subclasses it to build in the variable name normalization.
|
| |
|
| |
|
|
|
|
| |
Slows us down a bit; still figuring out why.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- FunctionRegistry is now FunctionLibrary, which sounds more like a
thing and less like I had no idea what to call it.
- Built-in functions are all added to the library decorator-style.
- Built-in functions have been split into several smaller modules.
- The stuff in parseutil turns out not to be related to parsing, so it's
been broken apart too.
|
|
|