module Text.Authoring.Bibliography (bibliographyContent, withDatabaseFile) where
import Control.Lens (use)
import Control.Monad
import Control.Monad.State
import Control.Monad.IO.Class
import qualified Data.Set as Set
import qualified Data.Text as Text
import Text.CSL.Input.Identifier (toBibTeXItem, HasDatabase, withDatabaseFile)
import Text.Authoring.State
bibliographyContent :: (MonadState s m, HasAuthorState s, HasDatabase s, MonadIO m) => m Text.Text
bibliographyContent = do
urls <- use citedUrlSet
items <- mapM toBibTeXItem $ Set.toList urls
return $ Text.unlines $ items