
Its not really worth changing the API, just wondering if there is a way to do it with the current API. max On Apr 8, 2011, at 10:39 PM, Greg Weber wrote:
We could have something like
class DomId a where toDomId :: a -> Text
class DomClass a where toDomClass :: a -> Text
That hamlet calls on id and class insertions. Michael would no better if that is possible with the hamlet internals.
On Fri, Apr 8, 2011 at 7:03 AM, Max Cantor
wrote: In an effort to get more type-checked goodness in hamlet, I started using string constants for all my dom IDs and classes. We're not using the newIdent function because I want control over what the IDs and classes will be named. I wrote up a little typeclass as such:
class CustomIdentString a where jqVal :: a -> String; idVal :: a -> String
newtype CustomIdentCls = MkCls String instance CustomIdentString CustomIdentCls where jqVal (MkCls s) = "." ++ s; idVal (MkCls s) = s;
newtype CustomIdentId = MkId String instance CustomIdentString CustomIdentId where jqVal (MkId s) = "#" ++ s; idVal (MkId s) = s;
This way, I can refer to divs in javascript using: $("#{jqVal myId}").foo..
And create the elements in hamlet using
...I'm wondering is there a datatype for IDs and Classes that I can use to make the IDs and Classes directly so that:
andwould fail to typecheck?In general, are there any good, safe ways to do this instead of just unwrapping to strings?
max _______________________________________________ web-devel mailing list web-devel@haskell.org http://www.haskell.org/mailman/listinfo/web-devel