@hackage urlpath0.0.6
Painfully simple URL writing combinators
Categories
License
MIT
Maintainer
Athan Clark <athan.clark@gmail.com>
Links
Versions
Deprecated
Dependencies (4)
- base >=4 && <5
- mtl
- text
- transformers Show all…
Dependents (4)
@hackage/sparrow, @hackage/acme-everything, @hackage/wai-middleware-content-type, @hackage/markup
Simple URL DSL for Haskell.
Use raw combinators (kinda useless) ...
render $ "foo.php" <?> ("key1","bar") <&> ("key2","baz")
↪ "foo.php?key1=bar&key2=baz"... or use the MonadReader instance for a configurable root ...
let url = runReader $ expandAbsolute $ "foo.php" <?> ("key1","bar") <&> ("key2","baz")
url "example.com"
↪ "example.com/foo.php?key1=bar&key2=baz"... in Lucid ...
(runReader $ renderTextT $
(\a -> do
foo <- lift $ expandAbsolute a
script_ [src_ foo] "" )
("foo" <?> ("bar","baz"))
) "example.com"
↪ "<script src=\"example.com/foo?bar=baz\"></script>"... and in Scotty ...
main :: IO ()
main = scottyT 3000
rootConf
rootConf
run
where
rootConf = flip runReaderT "http://example.com"
run :: ( MonadIO m
, MonadReader T.Text m ) =>
ScottyT LT.Text m ()
run = get "/" $ do
path <- lift $ expandAbsolute $ "foo" <?> ("bar","baz")
text $ LT.fromStrict path
λ> curl localhost:3000/
↪ "http://example.com/foo?bar=baz"