Hi Joey, While I think a Java port of Sass is cool and interesting, I would point out that it is not a prerequisite to using Sass in a Java-based web app. Ruby is only a build-time dependency and you can use the Compass command line tool ( http://github.com/chriseppstein/compass/) to compile whole directories of sass into css. I've had reports of people using compass to bring sass to Django, .Net, Java, Wordpress, to name just a few environments.
Chris On Sun, Mar 22, 2009 at 12:32 AM, jhurstus <[email protected]> wrote: > > Hello everybody. I've been working on a Java implementation of the > Sass compiler for the last few weeks (using ANTLR). For the most part > development has gone swimmingly, but I've run into a few issues with > the Ruby Sass compiler and wanted to ascertain from the community > whether these issues fall in the category of "needs to be fixed," > "functioning as designed," or "meh . . . we may get to it sometime." > > Before I go on to my laundry list, I should mention that I have very > much enjoyed using the Sass language and am thankful to all the > contributors. I'm currently working as a front end developer for a > large corporation, and using Sass has greatly improved the quality of > our (formerly highly repetitive and fragile) CSS code bases. > > Also, the noted Java compiler will be released under an open source > license. I'll probably post a few more announcements/questions to the > list about that in the near future... > > Onto the questions and observations about the Sass compiler. A lot of > the issues have to do with attribute selectors, which aren't in much > use now due to IE6, but I imagine will see increasing use as that > browser's market share decreases. My reference implementation for > this exercise was the version of Sass that Hampton uploaded to Github > a while back. > > ### 1 ### > Sass mis-lexes this css selector as a declaration (and throws an > error) > > p[title="Colon: followedByWhiteSpace"] > :color red > > ### 2 ### > Color shortcuts in string literals can be a bit of a surprise > > p > :foobar = i have a red bicycle > --- > p { foobar: i have a #ff0000 bicyble } > > ### 3 ### > Improperly splits attribute selectors with commas > > .foo > div[title="some,value"] > :color #f00 > --- > .foo div[title="some, .foo value"] { color: #f00; } > > ### 4 ### > Improperly substitutes parent selector > .baaz > .foo[title="&"] > :color #f00 > --- > ought to produce > .baaz .foo[title="&"] { color: #f00 } > --- > but actually produces > .foo[title=".baaz"] { color: #f00 } > > ### 5 ### > > Comma separated selectors have bizarre indentation rules when wrapped > across multiple lines. > For all the follow examples I'd expect the output CSS to be > p div, p .foobar { > color: #f00; > } > --- ok if continued line starts at 0 column > p > div, > .foobar > :color #f00 > > --- silently deletes nested selector if indented same amount as > beginning of selector > p > div, > .foo > :color #f00 > --- output > p { > color: #f00; } > > --- throws syntax error if indented 2 spaces past beginning of > selector > p > div, > .foo > :color #f00 > --- output > (sass):3: Rules can't end in commas. (Sass::SyntaxError) > > ### 6 ### > This isn't such a big deal but the docs and source code could be a bit > more precise with their use of CSS terminology. Specifically, what is > extensively referred to as an 'attribute' is actually called a > 'declaration' in CSS. 'Attributes' in the context of CSS most often > refers to a certain category of selectors (e.g. div[title="foo"]). > Similarly, what is referred to as "attribute namespaces" should be > called "property namespaces." Lastly, what is referred to as "rule > escaping" in the Sass documentation ought to be called "selector > escaping." > > ### 7 ### > Developers can get away with pretty bizarre constant identifiers and > length/unit suffixes. This also isn't such a big deal, but lexing > could be a bit more efficient/simpler if things were locked down some > more. (Perhaps adopt Ruby's rules for identifiers?) As an example, > this is a legal statement in Sass: > !...@~.......foo = 2 > It creates a constant with name "!...@~.......foo" and assigns the > value 2 to it. > > ### 8 ### > There are many more built-in color shortcuts in CSS (as implemented in > the major browsers) than those mapped in Sass. Sass does get all the > W3C specified ones though. See > http://www.w3schools.com/css/css_colornames.asp > Papaya Whip! > > ### 9 ### > The adjacency operator (concatenation) requires a space between > arguments, unlike Ruby which doesn't always require a space. If > you're going for the Ruby idiom, you probably shouldn't require a > space. > > Aaaaand that's it. Any feedback would be greatly appreciated. > > Thanks, > -Joey Hurst > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Haml" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/haml?hl=en -~----------~----~----~----~------~----~------~--~---
