[web-devel] Question for y'all: simplifying cassius
Michael Snoyman
michael at snoyman.com
Thu Oct 28 06:42:52 CEST 2010
Hey all,
Cassius (the CSS template language that goes along with Hamlet[1]) has
some features which I've never advertised, and frankly never use:
* mixins
* nesting
My question is: will anyone miss them if they're gone? Right now,
neither one of these features is implemented in a good way: mixins
requires a special datatype, a separate quasi-quoter, and don't always
work as expected. Nesting doesn't do what you expect often, eg:
p, div
.some-class
color: red
Generates:
p, div .some-class { color: red }
As a result of having these two features, cassius is overall worse:
* You *must* put a space between the colon and the attribute value.
This has to do with determining if we're nesting and pseudo-classes.
* The error messages are rotten.
I have no doubt that all of these problems could be fixed, given some
time. However, I personally don't actually find that I need these
features, and if no one else is using them right now, I'd rather
release a new version of Hamlet without this extra weight and perhaps
come back to these features in the future.
By the way, if anyone is interested in tackling this stuff, I imagine
the proper way to get it working would involve using an intermediate
datatype that keeps line/column information, and then rendering that
intermediate datatype using blaze. It won't be quite as fast as the
current approach, but I highly doubt Cassius is going to be a
bottleneck in anyone's applications.
Michael
[1] http://hackage.haskell.org/package/hamlet
More information about the web-devel
mailing list