{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE NoImplicitPrelude #-} -- | Help for inserting programming output into an lhs or md-style file. module Readme.Lhs ( -- * Usage -- $setup -- * pandoc Flavour (..), readPandoc, renderPandoc, -- * output Output (..), OutputMap, output, insertOutput, runOutput, tweakHaskellCodeBlock, -- * common patterns defaultTable, defaultTextTable, bootTableAttr, thead, tbody, cell1, badge, hask, -- * exports module Text.Pandoc.Definition, module B, ) where import qualified Data.Map as Map import NumHask.Prelude hiding (link) import qualified Text.Blaze.Html.Renderer.Text as Blaze import Text.Pandoc import Text.Pandoc.Definition import Text.Pandoc.Builder as B -- $setup -- -- >>> :set -XOverloadedStrings -- >>> import Readme.Lhs -- >>> import Text.Pandoc.Builder as B -- >>> let table1 = Table ("",["table","table-bordered","table-hover","m-3"],[("style","width: 70%;")]) (Caption Nothing [Plain [Str "an",Space,Str "example",Space,Str "table"]]) [(AlignLeft,ColWidthDefault),(AlignRight,ColWidthDefault)] (TableHead ("",[],[]) [Row ("",[],[]) [Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "first",Space,Str "column"]],Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "second",Space,Str "column"]]]]) [TableBody ("",[],[]) (RowHeadColumns 0) [] [Row ("",[],[]) [Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "first",Space,Str "row"]],Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "1"]]],Row ("",[],[]) [Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "second",Space,Str "row"]],Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "1000"]]]]] (TableFoot ("",[],[]) []) -- | use LHS when you want to just add output to a *.lhs -- -- use GitHubMarkdown for rendering code and results on github -- -- The main differences between LHS and GitHubMarkdown is that GitHubMarkdown parses bird tracks as a BlockQuote. -- -- >>> readPandoc "test/test.md" GitHubMarkdown -- Right (Pandoc (Meta {unMeta = fromList []}) [Para [Str "haskell",Space,Str "LHS",Space,Str "style"],CodeBlock ("",["sourceCode","literate","haskell"],[]) "",Para [Str "bird-tracks"],BlockQuote [Para [Str "import",Space,Str "Readme.Lhs"]],Para [Str "code",Space,Str "block"],CodeBlock ("",[],[]) "indented\nunfenced code",Para [Str "github-style",Space,Str "fenced",Space,Str "code",Space,Str "blocks"],CodeBlock ("",["haskell"],[]) "",Para [Code ("",[],[]) "output test1"],Para [Str "php-style",Space,Str "fenced",Space,Str "code",Space,Str "blocks"],CodeBlock ("",["output","test1"],[]) "",Para [Str "raw",Space,Str "html"],RawBlock (Format "html") "
",Str "I",Space,Str "am",Space,Str "raw",Space,Str "Html",RawInline (Format "html") "
",RawInline (Format "html") "first column | \nsecond column | \n
---|---|
first row | \n1 | \n
second row | \n1000 | \n