{-# LANGUAGE OverloadedStrings #-} -- | XML streaming renderers for the __Dublin Core Metadata Element Set__. -- -- This module is meant to be imported qualified, like this: -- -- > import qualified Text.XML.DublinCore.Conduit.Render as DC module Text.XML.DublinCore.Conduit.Render ( renderElementContributor, renderElementCoverage, renderElementCreator, renderElementDate, renderElementDescription, renderElementFormat, renderElementIdentifier, renderElementLanguage, renderElementPublisher, renderElementRelation, renderElementRights, renderElementSource, renderElementSubject, renderElementTitle, renderElementType, ) where -- {{{ Imports import Text.XML.DublinCore import Conduit import Data.Text import Data.Time.Clock import Data.Time.LocalTime import Data.Time.RFC3339 import Data.XML.Types import Text.XML.Stream.Render -- }}} -- {{{ Utils dcName :: Text -> Name dcName string = Name string (Just "http://purl.org/dc/elements/1.1/") (Just namespacePrefix) -- }}} -- | Render a @\@ element. renderElementContributor :: Monad m => Text -> ConduitT () Event m () renderElementContributor = tag (dcName "contributor") mempty . content -- | Render a @\@ element. renderElementCoverage :: Monad m => Text -> ConduitT () Event m () renderElementCoverage = tag (dcName "coverage") mempty . content -- | Render a @\@ element. renderElementCreator :: Monad m => Text -> ConduitT () Event m () renderElementCreator = tag (dcName "creator") mempty . content -- | Render a @\@ element. renderElementDate :: Monad m => UTCTime -> ConduitT () Event m () renderElementDate = tag (dcName "date") mempty . content . formatTimeRFC3339 . utcToZonedTime utc -- | Render a @\@ element. renderElementDescription :: Monad m => Text -> ConduitT () Event m () renderElementDescription = tag (dcName "description") mempty . content -- | Render a @\@ element. renderElementFormat :: Monad m => Text -> ConduitT () Event m () renderElementFormat = tag (dcName "format") mempty . content -- | Render a @\@ element. renderElementIdentifier :: Monad m => Text -> ConduitT () Event m () renderElementIdentifier = tag (dcName "identifier") mempty . content -- | Render a @\@ element. renderElementLanguage :: Monad m => Text -> ConduitT () Event m () renderElementLanguage = tag (dcName "language") mempty . content -- | Render a @\@ element. renderElementPublisher :: Monad m => Text -> ConduitT () Event m () renderElementPublisher = tag (dcName "publisher") mempty . content -- | Render a @\@ element. renderElementRelation :: Monad m => Text -> ConduitT () Event m () renderElementRelation = tag (dcName "relation") mempty . content -- | Render a @\@ element. renderElementRights :: Monad m => Text -> ConduitT () Event m () renderElementRights = tag (dcName "rights") mempty . content -- | Render a @\@ element. renderElementSource :: Monad m => Text -> ConduitT () Event m () renderElementSource = tag (dcName "source") mempty . content -- | Render a @\@ element. renderElementSubject :: Monad m => Text -> ConduitT () Event m () renderElementSubject = tag (dcName "subject") mempty . content -- | Render a @\@ element. renderElementTitle :: Monad m => Text -> ConduitT () Event m () renderElementTitle = tag (dcName "title") mempty . content -- | Render a @\@ element. renderElementType :: Monad m => Text -> ConduitT () Event m () renderElementType = tag (dcName "type") mempty . content