Commit Graph

136 Commits

Author SHA1 Message Date
Natalie Weizenbaum
45becee133 Escape ASCII non-printable string contents. 2016-10-17 17:56:39 -07:00
Natalie Weizenbaum
8969fc75f2 Store numbers' original values. 2016-10-17 16:50:43 -07:00
Natalie Weizenbaum
d5aa9e7f82 Write escapes when serializing unquoted strings. 2016-10-17 14:55:02 -07:00
Natalie Weizenbaum
beb5cc1794 Properly remove quotes when stringifying. 2016-10-16 19:13:13 -07:00
Natalie Weizenbaum
7f6c70f821 Add Value.toCssString(). 2016-10-16 19:01:23 -07:00
Natalie Weizenbaum
604fa597e5 InternalException -> SassScriptException 2016-10-16 18:46:38 -07:00
Natalie Weizenbaum
c41f2bb023 Properly serialize numbers. 2016-10-16 14:07:30 -07:00
Natalie Weizenbaum
ddf6452f20 Generate rgba() rather than rgb(). 2016-10-16 12:15:49 -07:00
Natalie Weizenbaum
90d9ed03cc Fix a couple infinite-loop bugs. 2016-10-16 12:09:42 -07:00
Natalie Weizenbaum
d276bfb206 Finish API docs. 2016-10-15 16:57:54 -07:00
Natalie Weizenbaum
38f15a96f3 Expose _PerformVisitor as a top-level function. 2016-10-15 14:31:21 -07:00
Natalie Weizenbaum
441ca87f37 Way more API docs. 2016-10-15 02:57:29 -07:00
Natalie Weizenbaum
3e10e24341 Even more API docs. 2016-10-09 20:57:28 -07:00
Natalie Weizenbaum
d90b8e52ae Support compiling to node.js. 2016-10-07 15:05:56 -07:00
Natalie Weizenbaum
2289901df8 Support url() imports. 2016-10-07 14:05:54 -07:00
Natalie Weizenbaum
c4ea6012dc Optimize SerializeVisitor._visitString. 2016-10-07 14:05:29 -07:00
Natalie Weizenbaum
6c36a01d89 Support @else. 2016-10-07 14:05:29 -07:00
Natalie Weizenbaum
89e095d2c2 Add a bunch of API docs. 2016-09-30 18:42:41 -07:00
Natalie Weizenbaum
bc45cf6d54 Remove outdated TODO. 2016-09-30 16:58:17 -07:00
Natalie Weizenbaum
f15d3d8e59 Add a few missing valueToCss() calls. 2016-09-30 16:44:47 -07:00
Natalie Weizenbaum
ea4a171198 Fix new analysis issues. 2016-09-30 16:41:22 -07:00
Natalie Weizenbaum
a6065fb4ab Reformat runtime parse errors. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
ca4e27470f Don't allow parent selectors in @extend targets. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
9f21fa943e Make transitive @extend work.
Loops are still kind of iffy.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
99c83a5834 Partial selector newline support.
In particular, newlines in selectors lists are now preserved during
parent selector resolution and emitted by the serializer. The output
matches Ruby Sass, but I'm not sure it's actually the best possible.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
79630cdc47 Properly serialize parent selectors. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
f460ebb2a9 Parse functions -> constructors 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
b47067ea4e Add if(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
af4234aedd Add call(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
6debf1e39a Add zip(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
10d7da9d73 isBracketed -> hasBrackets
This is consistent with SassString.hasQuotes.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
8fd5818977 Add str-insert(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
048d7cff33 Add mix(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
227329f9c3 Add rgba().
This also adds built-in function overloading. This adds some extra
layers to the default function-call logic which could be avoided by
handling overloading purely in the callbacks of functions that require
it, but it's not clear how to share logic gracefully between the perform
visitor and function helpers.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
5cc5bf1914 Add rgb(). 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
dd8a0efd66 Add an ArgumentList class. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
8bbaf46fe6 Use the tuple package. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
c9af638f54 Support for units 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
bacc1c4529 Unify strings and identifiers.
The separation makes sense conceptually, but it would make string
functions a lot harder to write.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
9ac48fbc05 Add support for binary operations. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
bcaaa1103f UnaryOperatorExpression -> UnaryOperationExpression 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
5d71ac78b9 Indented syntax parser. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
3a2b7ca9df Split the parser up.
There are now separate parsers for selectors and at-root queries, since
those are parsed independently of the main stylesheet. The Parser class
contains utilities that are useful across different parsers.
2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
913e81faaa Remove fixed TODOs. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
bde9c353f5 Further improve list serialization. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
ee7c3e5c3c Support expression &. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
53635def75 Fix map serialization. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
efd336dd20 Support null. 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
1832879845 Support @each 2016-09-30 12:41:41 -07:00
Natalie Weizenbaum
e873242ac4 Support @while 2016-09-30 12:41:41 -07:00