[web-devel] [Yesod] Re: ANN: Wai routes 0.7

Anupam Jain ajnsit at gmail.com
Fri Jun 12 16:10:17 UTC 2015


Glad you figured it out! The html function accepts Bytestring instead
of Text to be compatible with blaze-html. I will probably add a
htmlText function which supports Text instead and works seamlessly
with Hamlet et all.

One minor thing I notices in your code - it converts from Lazy Text ->
Strict Text -> Strict ByteString -> Lazy ByteString
If you use encodeUtf8 from Data.Text.Lazy.Encoding, you can go
directly from Lazy ByteString -> Lazy Text.

-- Anupam


On Fri, Jun 12, 2015 at 5:16 PM, Njagi Mwaniki
<mwanikibusiness at gmail.com> wrote:
> Never mind. I found a way to make it work here:
> https://github.com/urbanslug/cats/blob/master/Handler/Home.hs
>
>
> On Friday, 12 June 2015 12:08:44 UTC+3, Njagi Mwaniki wrote:
>>
>> Hey, I am trying to use shakesperean templates with this. I just can't get
>> it to work. Even in a quasiqote widget kind of way. What am I doing wrong?
>> or is this not supported at all. I would like to finally use external files
>> for hamlet lucius and julius. I could show you my code but it's just a ball
>> of wool so I won't even bother.
>>
>> On Wednesday, 10 June 2015 22:19:06 UTC+3, Anupam wrote:
>>>
>>> You are right. The example in the README is meant to be more of a
>>> template which gives you a flavor of what the code looks like. It also
>>> has chunks of code missing (and with ellipses in its place) that would
>>> need to be filled in before it would compile. The code in the
>>> examples/ directory on github has working code examples with cabal
>>> files
>>> (https://github.com/ajnsit/wai-routes/blob/master/examples/Subsites.hs).
>>> I am working on improving the documentation, and adding more examples.
>>>
>>> To answer your other questions -
>>>
>>> 1. I just released v0.7 today. Docs on Hackage are built periodically,
>>> and we should have proper documentation generated soon.
>>>
>>> 2. The TH code generates a "resource" for your route which is like an
>>> abstract representation of your route declaration. It can be reused in
>>> other parts of the code. Notably it is useful when you want to
>>> separate the declaration for the Route datatype and the dispatching
>>> code. In your example, since the resource is created but not used or
>>> exported, it generates a warning. For now you can safely ignore it.
>>>
>>> 3. "HandlerS sub master" is the type of a handler for a Subsite "sub"
>>> running within a master site "master". Unfortunately that type is not
>>> very easy to work with. "HandlerM" is a Monadic type that provides
>>> easy access to all wai-routes functionality, and can then be converted
>>> to a HandlerS using runHandlerM. When you don't have a subsite, the
>>> type is simply "HandlerM sub master", which is aliased to "Handler
>>> master". That's why in your example, the handlers all have the type
>>> "Handler MyRoute".
>>>
>>> 4. "RouteM" is another Monadic type which makes it easy to compose
>>> multiple routes and middleware together to create a final wai
>>> application. This along with "nested routes", and "subsites", helps
>>> you better organise your application.
>>>
>>> HTH
>>>
>>> -- Anupam
>>>
>>>
>>>
>>> On Wed, Jun 10, 2015 at 8:38 PM, Njagi Mwaniki
>>> <mwaniki... at gmail.com> wrote:
>>> > It could be just me but the example in your README is totally broken.
>>> > It
>>> > needs at least the extensions like QuasiQotes and TemplateHaskell. Also
>>> > where does DB (used in your example) come from?
>>> >
>>> > Anyway using other examples from your README I got a minimal working
>>> > example
>>> > here: https://gist.github.com/urbanslug/58a584c002f54ad75c02
>>> >
>>> > I have a few questions regarding the types.
>>> >
>>> > * The haddocks on hackage don't work yet, do they?
>>> > * in myRoute L21 I get the warning `Defined but not used:
>>> > ‘resourcesMyRoute’` can you help with that?
>>> > * I'm confused about this type signature "runHandlerM :: HandlerM sub
>>> > master
>>> > () -> HandlerS sub master"
>>> > * What are HandlerM and RouteM and sub and master? They are in many
>>> > type
>>> > signatures and I don't get them.
>>> >
>>> > Thank you.
>>> >
>>> > On Wednesday, 10 June 2015 01:54:33 UTC+3, Anupam wrote:
>>> >>
>>> >> Hi all,
>>> >>
>>> >> I have just released v0.7 of wai-routes, the typesafe urls framework
>>> >> for wai. After letting the code rot for several months, I finally
>>> >> managed to carve out some time to do a bit of housekeeping. The code
>>> >> now compiles with ghc 7.8 and 7.10, and is compatible with wai-3.0.
>>> >> The dependency on yesod-routes has also been removed, as that package
>>> >> was deprecated, and its code has been folded into wai-routes.
>>> >>
>>> >> I also took the opportunity to add a few long pending features -
>>> >> 1. Subsites! Simpler than the corresponding concept in Yesod, though
>>> >> probably less powerful as well. This is still an evolving experimental
>>> >> feature.
>>> >> 2. Ability to get information about the currently executing route,
>>> >> including the Route Attributes (which is exactly the same thing as in
>>> >> Yesod).
>>> >>
>>> >> Get it at -
>>> >> [http://hackage.haskell.org/package/wai-routes]
>>> >> [https://github.com/ajnsit/wai-routes].
>>> >>
>>> >> Feedback would be greatly appreciated, especially from people using
>>> >> wai-routes in their projects!
>>> >>
>>> >> -- Anupam
>>> >
>>> > --
>>> > You received this message because you are subscribed to the Google
>>> > Groups
>>> > "Yesod Web Framework" group.
>>> > To unsubscribe from this group and stop receiving emails from it, send
>>> > an
>>> > email to yesodweb+u... at googlegroups.com.
>>> > For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Yesod Web Framework" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to yesodweb+unsubscribe at googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.


More information about the web-devel mailing list