1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
# http-link-header [](https://hackage.haskell.org/package/http-link-header) [](https://travis-ci.org/myfreeweb/http-link-header) [](https://coveralls.io/r/myfreeweb/http-link-header) [](http://unlicense.org)
A Haskell library than implements a parser and a writer for the HTTP Link header as specified in [RFC 5988 "Web Linking"](https://tools.ietf.org/html/rfc5988).
## Usage
```haskell
import Network.HTTP.Link
import Network.URI
import Data.Maybe
----- Writing
writeLinkHeader [ Link (fromJust $ parseURI "https://example.com/hello%20world") [(Rel, "next"), (Title, "hello world")]
, Link (fromJust $ parseURI "https://yolo.tld") [(Rel, "license")] ]
-- "<https://example.com/hello%20world>; rel=\"next\"; title=\"hello world\", <https://yolo.tld>; rel=\"license\""
----- Parsing
parseLinkHeader "<https://example.com/2>; rel=\"next\", <https://example.com/0>; rel=prev"
-- Just [ Link https://example.com/2 [(Rel, "next")]
-- , Link https://example.com/0 [(Rel, "prev")] ]
```
## Development
Use [stack] to build.
Use ghci to run tests quickly with `:test` (see the `.ghci` file).
```bash
$ stack build
$ stack test && rm tests.tix
$ stack bench
$ stack ghci --ghc-options="-fno-hpc"
```
[stack]: https://github.com/commercialhaskell/stack
## Contributing
Please feel free to submit pull requests!
Bugfixes and simple non-breaking improvements will be accepted without any questions :-)
By participating in this project you agree to follow the [Contributor Code of Conduct](http://contributor-covenant.org/version/1/2/0/).
[The list of contributors is available on GitHub](https://github.com/myfreeweb/http-link-header/graphs/contributors).
## License
This is free and unencumbered software released into the public domain.
For more information, please refer to the `UNLICENSE` file or [unlicense.org](http://unlicense.org).
|