Git Product home page Git Product logo

rss-conduit's Introduction

rss-conduit's People

Contributors

k0ral avatar xaep avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

rss-conduit's Issues

renderRssDocument doesn't call renderRssItem?

I'm trying to render an RssDocument to XML. No problem, except for the fact that renderRssDocument doesn't actually appear to render everything contained in the document. In particular, it doesn't look like renderRssItem is ever called.

Perhaps I'm just misunderstanding the intended API; are we supposed to call renderRssItem ourselves, separately? I'm not sure how that would work since renderRssDocument emits an </rss> tag, meaning we can't insert things in the rss body that aren't inserted by renderRssDocument

No channel tag

I think there needs to be a <channel> tag under the <rss> tag. I think it should be a short change to renderRssDocument. Something like

renderRssDocument d = tag "rss" (attr "version" . pack . showVersion $ d^.documentVersionL) $ tag "channel" mempty $ do
  textTag "title" $ d^.channelTitleL

Add NFData instances to Text.Rss.Types

After parsing an RssDocument, there is a potential for space leaks if the value isn't brought to normal form. Currently, I have a bunch of orphan instances in my application for all of the types in Text.Rss.Types, which isn't ideal. I propose adding NFData instances from deepseq to all of the datatypes in Text.Rss.Types, and maybe examining if the types should be made strict.

If you want, I can take the lead on this, though it would require that Soostone/uri-bytestring#52 gets merged/released.

Hlint style issues

  HLint check:                          test/Arbitrary.hs:4:1: Warning: Use module export list
Found:
  module Arbitrary where
Why not:
  module Arbitrary (module Arbitrary) where
Note: An explicit list is usually better

Text/RSS/Lens.hs:2:1: Warning: Use module export list
Found:
  module Text.RSS.Lens where
Why not:
  module Text.RSS.Lens (module Text.RSS.Lens) where
Note: An explicit list is usually better

Text/RSS/Lens.hs:25:93: Warning: Use traverse
Found:
  sequenceA (map inj c)
Why not:
  traverse inj c

Text/RSS/Lens.hs:29:90: Warning: Use traverse
Found:
  sequenceA (map inj e)
Why not:
  traverse inj e

Text/RSS/Lens.hs:43:91: Warning: Use traverse
Found:
  sequenceA (map inj i)
Why not:
  traverse inj i

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.