packages feed

pandocz-0.0.1: src/Text/Pandoc/Z/Readers.hs

{-# OPTIONS_GHC -Wall #-}

module Text.Pandoc.Z.Readers where

import Control.Lens ( review )
import Citeproc.Types ( Citation )
import Data.ByteString.Lazy ( ByteString )
import Data.Text ( Text )
import Text.Pandoc.Class ( PandocMonad )
import qualified Text.Pandoc.Definition as Pandoc(Pandoc)
import qualified Text.Pandoc.Readers.BibTeX as R
import qualified Text.Pandoc.Readers.CSV as R
import qualified Text.Pandoc.Readers.CommonMark as R
import qualified Text.Pandoc.Readers.Creole as R
import qualified Text.Pandoc.Readers.CslJson as R
import qualified Text.Pandoc.Readers.Djot as R
import qualified Text.Pandoc.Readers.DocBook as R
import qualified Text.Pandoc.Readers.Docx as R
import qualified Text.Pandoc.Readers.DokuWiki as R
import qualified Text.Pandoc.Readers.EPUB as R
import qualified Text.Pandoc.Readers.EndNote as R
import qualified Text.Pandoc.Readers.FB2 as R
import qualified Text.Pandoc.Readers.HTML as R
import qualified Text.Pandoc.Readers.Haddock as R
import qualified Text.Pandoc.Readers.Ipynb as R
import qualified Text.Pandoc.Readers.JATS as R
import qualified Text.Pandoc.Readers.Jira as R
import qualified Text.Pandoc.Readers.LaTeX as R
import qualified Text.Pandoc.Readers.Man as R
import qualified Text.Pandoc.Readers.Markdown as R
import qualified Text.Pandoc.Readers.MediaWiki as R
import qualified Text.Pandoc.Readers.Muse as R
import qualified Text.Pandoc.Readers.Native as R
import qualified Text.Pandoc.Readers.ODT as R
import qualified Text.Pandoc.Readers.OPML as R
import qualified Text.Pandoc.Readers.Org as R
import qualified Text.Pandoc.Readers.RIS as R
import qualified Text.Pandoc.Readers.RST as R
import qualified Text.Pandoc.Readers.RTF as R
import qualified Text.Pandoc.Readers.TWiki as R
import qualified Text.Pandoc.Readers.Textile as R
import qualified Text.Pandoc.Readers.TikiWiki as R
import qualified Text.Pandoc.Readers.Txt2Tags as R
import qualified Text.Pandoc.Readers.Typst as R
import qualified Text.Pandoc.Readers.Vimwiki as R
import Text.Pandoc.Sources ( ToSources )
import Text.Pandoc.Z.Definition(Pandoc, isPandoc)
import Text.Pandoc.Z.ReaderOptions ( ReaderOptions )

-- $setup
-- >>> import Text.Pandoc.Z.Util

convertReader ::
  Functor f =>
  (a -> b -> f Pandoc.Pandoc)
  -> a
  -> b
  -> f Pandoc
convertReader r o a =
  review isPandoc <$> r o a

readBibTeX ::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readBibTeX =
  convertReader R.readBibTeX

readBibLaTeX ::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readBibLaTeX =
  convertReader R.readBibTeX

-- |
--
-- >>> readPandocExtensions readCSV "abc,def,\"ghi\""
-- Right (Pandoc (Meta (fromList [])) [TableBlock (Table (Attr "" [] []) (Caption Nothing []) [ColSpec AlignDefault ColWidthDefault,ColSpec AlignDefault ColWidthDefault,ColSpec AlignDefault ColWidthDefault] (TableHead (Attr "" [] []) [Row (Attr "" [] []) [Cell (Attr "" [] []) AlignDefault (RowSpan (RowSpan 1)) (ColSpan (ColSpan 1)) [Plain [Str "abc"]],Cell (Attr "" [] []) AlignDefault (RowSpan (RowSpan 1)) (ColSpan (ColSpan 1)) [Plain [Str "def"]],Cell (Attr "" [] []) AlignDefault (RowSpan (RowSpan 1)) (ColSpan (ColSpan 1)) [Plain [Str "ghi"]]]]) [TableBody (Attr "" [] []) (RowHeadColumns (RowHeadColumns 0)) [] []] (TableFoot (Attr "" [] []) []))])
--
-- >>> readPandocExtensions readCSV "abc,def,\"ghi\"\njkl,mno,pqr\n"
-- Right (Pandoc (Meta (fromList [])) [TableBlock (Table (Attr "" [] []) (Caption Nothing []) [ColSpec AlignDefault ColWidthDefault,ColSpec AlignDefault ColWidthDefault,ColSpec AlignDefault ColWidthDefault] (TableHead (Attr "" [] []) [Row (Attr "" [] []) [Cell (Attr "" [] []) AlignDefault (RowSpan (RowSpan 1)) (ColSpan (ColSpan 1)) [Plain [Str "abc"]],Cell (Attr "" [] []) AlignDefault (RowSpan (RowSpan 1)) (ColSpan (ColSpan 1)) [Plain [Str "def"]],Cell (Attr "" [] []) AlignDefault (RowSpan (RowSpan 1)) (ColSpan (ColSpan 1)) [Plain [Str "ghi"]]]]) [TableBody (Attr "" [] []) (RowHeadColumns (RowHeadColumns 0)) [] [Row (Attr "" [] []) [Cell (Attr "" [] []) AlignDefault (RowSpan (RowSpan 1)) (ColSpan (ColSpan 1)) [Plain [Str "jkl"]],Cell (Attr "" [] []) AlignDefault (RowSpan (RowSpan 1)) (ColSpan (ColSpan 1)) [Plain [Str "mno"]],Cell (Attr "" [] []) AlignDefault (RowSpan (RowSpan 1)) (ColSpan (ColSpan 1)) [Plain [Str "pqr"]]]]] (TableFoot (Attr "" [] []) []))])
readCSV ::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readCSV =
  convertReader R.readCSV

-- |
--
-- >>> readPandocExtensions readTSV "abc\tdef\t,\"ghi\""
-- Right (Pandoc (Meta (fromList [])) [TableBlock (Table (Attr "" [] []) (Caption Nothing []) [ColSpec AlignDefault ColWidthDefault,ColSpec AlignDefault ColWidthDefault] (TableHead (Attr "" [] []) [Row (Attr "" [] []) [Cell (Attr "" [] []) AlignDefault (RowSpan (RowSpan 1)) (ColSpan (ColSpan 1)) [Plain [Str "abc",Space,Str "def",Space]],Cell (Attr "" [] []) AlignDefault (RowSpan (RowSpan 1)) (ColSpan (ColSpan 1)) [Plain [Str "ghi"]]]]) [TableBody (Attr "" [] []) (RowHeadColumns (RowHeadColumns 0)) [] []] (TableFoot (Attr "" [] []) []))])
readTSV ::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readTSV =
  convertReader R.readCSV

readCommonMark ::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readCommonMark =
  convertReader R.readCommonMark

readCreole ::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readCreole =
  convertReader R.readCreole

readCslJson ::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readCslJson =
  convertReader R.readCslJson

readDjot ::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readDjot =
  convertReader R.readDjot

readDocBook::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readDocBook =
  convertReader R.readDocBook

readDocx ::
  PandocMonad m =>
  ReaderOptions
  -> ByteString
  -> m Pandoc
readDocx =
  convertReader R.readDocx

readDokuWiki ::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readDokuWiki =
  convertReader R.readDokuWiki

readEPUB ::
  PandocMonad m =>
  ReaderOptions
  -> ByteString
  -> m Pandoc
readEPUB =
  convertReader R.readEPUB

readEndNoteXML ::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readEndNoteXML =
  convertReader R.readEndNoteXML

readEndNoteXMLCitation ::
  PandocMonad m =>
  Text
  -> m (Citation Text)
readEndNoteXMLCitation =
  R.readEndNoteXMLCitation

readFB2::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readFB2 =
  convertReader R.readFB2

-- |
--
-- >>> readPandocExtensions readHtml "abc"
-- Right (Pandoc (Meta (fromList [])) [Plain [Str "abc"]])
--
-- >>> readPandocExtensions readHtml "<p><div>abc</div></p>"
-- Right (Pandoc (Meta (fromList [])) [DivBlock (Div (Attr "" [] []) [Plain [Str "abc"]]),RawBlock (Raw (Format (Format "html")) "</p>")])
--
-- >>> readPandocExtensions readHtml "<b><p><div>abc</div></p></b>"
-- Right (Pandoc (Meta (fromList [])) [Plain [Strong []],DivBlock (Div (Attr "" [] []) [Plain [Str "abc"]]),RawBlock (Raw (Format (Format "html")) "</p>"),Plain [RawInline (Raw (Format (Format "html")) "</b>")]])
readHtml::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readHtml =
  convertReader R.readHtml

readHaddock::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readHaddock =
  convertReader R.readHaddock

readIpynb::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readIpynb =
  convertReader R.readIpynb

readJATS::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readJATS =
  convertReader R.readJATS

readJira::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readJira =
  convertReader R.readJira

readLaTeX::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readLaTeX =
  convertReader R.readLaTeX

readMan::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readMan =
  convertReader R.readMan

-- |
--
-- >>> readPandocExtensions readMarkdown "abc"
-- Right (Pandoc (Meta (fromList [])) [Para [Str "abc"]])
--
-- >>> readPandocExtensions readMarkdown "**abc** _def_"
-- Right (Pandoc (Meta (fromList [])) [Para [Strong [Str "abc"],Space,Emph [Str "def"]]])
--
-- >>> readPandocExtensions readMarkdown "  abc   def   ghi\n  ----- ----- -----\n  jkl   mno   pqr\n"
-- Right (Pandoc (Meta (fromList [])) [TableBlock (Table (Attr "" [] []) (Caption Nothing []) [ColSpec AlignLeft ColWidthDefault,ColSpec AlignLeft ColWidthDefault,ColSpec AlignLeft ColWidthDefault] (TableHead (Attr "" [] []) [Row (Attr "" [] []) [Cell (Attr "" [] []) AlignDefault (RowSpan (RowSpan 1)) (ColSpan (ColSpan 1)) [Plain [Str "abc"]],Cell (Attr "" [] []) AlignDefault (RowSpan (RowSpan 1)) (ColSpan (ColSpan 1)) [Plain [Str "def"]],Cell (Attr "" [] []) AlignDefault (RowSpan (RowSpan 1)) (ColSpan (ColSpan 1)) [Plain [Str "ghi"]]]]) [TableBody (Attr "" [] []) (RowHeadColumns (RowHeadColumns 0)) [] [Row (Attr "" [] []) [Cell (Attr "" [] []) AlignDefault (RowSpan (RowSpan 1)) (ColSpan (ColSpan 1)) [Plain [Str "jkl"]],Cell (Attr "" [] []) AlignDefault (RowSpan (RowSpan 1)) (ColSpan (ColSpan 1)) [Plain [Str "mno"]],Cell (Attr "" [] []) AlignDefault (RowSpan (RowSpan 1)) (ColSpan (ColSpan 1)) [Plain [Str "pqr"]]]]] (TableFoot (Attr "" [] []) []))])
readMarkdown::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readMarkdown =
  convertReader R.readMarkdown

readMediaWiki::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readMediaWiki =
  convertReader R.readMediaWiki

readMuse::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readMuse =
  convertReader R.readMuse

readNative ::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readNative =
  convertReader R.readNative

readODT ::
  PandocMonad m =>
  ReaderOptions
  -> ByteString
  -> m Pandoc
readODT =
  convertReader R.readODT

readOPML ::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readOPML =
  convertReader R.readOPML

readOrg ::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readOrg =
  convertReader R.readOrg

readRIS ::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readRIS =
  convertReader R.readRIS

readRST ::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readRST =
  convertReader R.readRST

readRTF ::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readRTF =
  convertReader R.readRTF

readTWiki ::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readTWiki =
  convertReader R.readTWiki

readTextile ::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readTextile =
  convertReader R.readTextile

readTikiWiki ::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readTikiWiki =
  convertReader R.readTikiWiki

readTxt2Tags ::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readTxt2Tags =
  convertReader R.readTxt2Tags

readTypst ::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readTypst =
  convertReader R.readTypst

readVimwiki ::
  (PandocMonad m, ToSources a) =>
  ReaderOptions
  -> a
  -> m Pandoc
readVimwiki =
  convertReader R.readVimwiki