module Drasil.Meta.Analysis.DataPrinters.HTML (
mkhtmlTitle, mkhtmlHeader, mkhtmlEmptyCell, mkhtmlRow,
htmlDataTableTitle, htmlConfig, htmlEnd
) where
import Data.List.Split (splitOn)
mkhtmlTitle :: String -> String
mkhtmlTitle :: String -> String
mkhtmlTitle String
xs = String
"\t\t<thead>\n" String -> String -> String
forall a. [a] -> [a] -> [a]
++ (String -> String) -> [String] -> String
forall (t :: * -> *) a b. Foldable t => (a -> [b]) -> t a -> [b]
concatMap (\String
y -> String
"\t\t\t<th>" String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
y String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"</th>\n") (String -> String -> [String]
forall a. Eq a => [a] -> [a] -> [[a]]
splitOn String
"," String
xs) String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\t\t</thead>"
mkhtmlHeader :: [String] -> String
[String]
xs = String
"\t\t<thead>\n" String -> String -> String
forall a. [a] -> [a] -> [a]
++ (String -> String) -> [String] -> String
forall (t :: * -> *) a b. Foldable t => (a -> [b]) -> t a -> [b]
concatMap (\String
y -> String
"\t\t\t<th>" String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
y String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"</th>\n") [String]
xs String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\t\t</thead>"
mkhtmlEmptyCell :: Int -> String
mkhtmlEmptyCell :: Int -> String
mkhtmlEmptyCell Int
num
| Int
num Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
<= Int
0 = String
""
| Bool
otherwise = String
",\t" String -> String -> String
forall a. [a] -> [a] -> [a]
++ Int -> String
mkhtmlEmptyCell (Int
numInt -> Int -> Int
forall a. Num a => a -> a -> a
-Int
1)
mkhtmlRow :: [String] -> String
mkhtmlRow :: [String] -> String
mkhtmlRow [] = []
mkhtmlRow (String
x:[String]
xs) = String
"\t\t\t<tr>\n" String -> String -> String
forall a. [a] -> [a] -> [a]
++ (String -> String) -> [String] -> String
forall (t :: * -> *) a b. Foldable t => (a -> [b]) -> t a -> [b]
concatMap (\String
y -> String
"\t\t\t\t<td>" String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
y String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"</td>\n") (String -> String -> [String]
forall a. Eq a => [a] -> [a] -> [[a]]
splitOn String
"," String
x) String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"\t\t\t</tr>\n" String -> String -> String
forall a. [a] -> [a] -> [a]
++ [String] -> String
mkhtmlRow [String]
xs
htmlDataTableTitle, htmlConfig, htmlEnd :: String
htmlDataTableTitle :: String
htmlDataTableTitle = String
"<!DOCTYPE html>\n<html>\n\t<title>Auto-Generated Data Table for Drasil</title>"
htmlConfig :: String
htmlConfig = String
"\t<table border=\"1\" cellspacing=\"0\" cellpadding=\"3\" class=\"dataframe\">"
htmlEnd :: String
htmlEnd = String
"\t\t</tbody>\n</html>"