{-# 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 -> Source m Event renderElementContributor = tag (dcName "contributor") mempty . content -- | Render a @\@ element. renderElementCoverage :: Monad m => Text -> Source m Event renderElementCoverage = tag (dcName "coverage") mempty . content -- | Render a @\@ element. renderElementCreator :: Monad m => Text -> Source m Event renderElementCreator = tag (dcName "creator") mempty . content -- | Render a @\@ element. renderElementDate :: Monad m => UTCTime -> Source m Event renderElementDate = tag (dcName "date") mempty . content . formatTimeRFC3339 . utcToZonedTime utc -- | Render a @\@ element. renderElementDescription :: Monad m => Text -> Source m Event renderElementDescription = tag (dcName "description") mempty . content -- | Render a @\@ element. renderElementFormat :: Monad m => Text -> Source m Event renderElementFormat = tag (dcName "format") mempty . content -- | Render a @\@ element. renderElementIdentifier :: Monad m => Text -> Source m Event renderElementIdentifier = tag (dcName "identifier") mempty . content -- | Render a @\@ element. renderElementLanguage :: Monad m => Text -> Source m Event renderElementLanguage = tag (dcName "language") mempty . content -- | Render a @\@ element. renderElementPublisher :: Monad m => Text -> Source m Event renderElementPublisher = tag (dcName "publisher") mempty . content -- | Render a @\@ element. renderElementRelation :: Monad m => Text -> Source m Event renderElementRelation = tag (dcName "relation") mempty . content -- | Render a @\@ element. renderElementRights :: Monad m => Text -> Source m Event renderElementRights = tag (dcName "rights") mempty . content -- | Render a @\@ element. renderElementSource :: Monad m => Text -> Source m Event renderElementSource = tag (dcName "source") mempty . content -- | Render a @\@ element. renderElementSubject :: Monad m => Text -> Source m Event renderElementSubject = tag (dcName "subject") mempty . content -- | Render a @\@ element. renderElementTitle :: Monad m => Text -> Source m Event renderElementTitle = tag (dcName "title") mempty . content -- | Render a @\@ element. renderElementType :: Monad m => Text -> Source m Event renderElementType = tag (dcName "type") mempty . content