better render
This commit is contained in:
parent
0b76382fd1
commit
db93108027
10
ParseHtml.hs
10
ParseHtml.hs
@ -11,7 +11,7 @@ printDifferentDef :: T.Text -> IO ()
|
|||||||
printDifferentDef x = putStrLn (getDifferentDef x)
|
printDifferentDef x = putStrLn (getDifferentDef x)
|
||||||
|
|
||||||
getDifferentDef :: T.Text -> String
|
getDifferentDef :: T.Text -> String
|
||||||
getDifferentDef x = getDifferentDefMessages (length xs) ++ renderWordList xs
|
getDifferentDef x = getDifferentDefMessages (length xs) ++ renderHeaderList xs
|
||||||
where xs = (parseDefTags . differentDefTags) x
|
where xs = (parseDefTags . differentDefTags) x
|
||||||
|
|
||||||
getDifferentDefMessages :: Int -> String
|
getDifferentDefMessages :: Int -> String
|
||||||
@ -21,8 +21,8 @@ getDifferentDefMessages _ = "Plusieurs définitions disponibles : \n"
|
|||||||
|
|
||||||
parseDefTags :: [Tag String] -> [WordDefHeader]
|
parseDefTags :: [Tag String] -> [WordDefHeader]
|
||||||
parseDefTags [] = []
|
parseDefTags [] = []
|
||||||
parseDefTags xs =
|
parseDefTags xs =
|
||||||
(WordDefHeader (WordName (renderTags (take 1 (fst st))))
|
(WordDefHeader (WordName (renderTags (take 1 (fst st))))
|
||||||
(WordType (renderTags [(fst st) !! 1])))
|
(WordType (renderTags [(fst st) !! 1])))
|
||||||
: (parseDefTags (snd st))
|
: (parseDefTags (snd st))
|
||||||
where st = subTags xs
|
where st = subTags xs
|
||||||
@ -55,9 +55,9 @@ parseFullDefTags = findRelevantTags . parseTags . T.unpack
|
|||||||
|
|
||||||
findRelevantTags :: [Tag String] -> [Tag String]
|
findRelevantTags :: [Tag String] -> [Tag String]
|
||||||
findRelevantTags [] = []
|
findRelevantTags [] = []
|
||||||
findRelevantTags (x:xs) = if x ~== "<span class=tlf_cdefinition"
|
findRelevantTags (x:xs) = if x ~== "<span class=tlf_cdefinition"
|
||||||
|| x ~== "<span class=tlf_cexemple"
|
|| x ~== "<span class=tlf_cexemple"
|
||||||
then maybe (f xs) (\y -> y:(f xs)) (L.find (~== TagText "") xs)
|
then maybe (f xs) (\y -> y:(f xs)) (L.find (~== TagText "") xs)
|
||||||
else (f xs)
|
else (f xs)
|
||||||
where
|
where
|
||||||
f = findRelevantTags
|
f = findRelevantTags
|
||||||
|
28
WordDef.hs
28
WordDef.hs
@ -5,7 +5,7 @@ module WordDef
|
|||||||
WordName(WordName),
|
WordName(WordName),
|
||||||
WordType(WordType),
|
WordType(WordType),
|
||||||
WordSentence(..),
|
WordSentence(..),
|
||||||
renderWordList,
|
renderHeaderList,
|
||||||
renderHeader,
|
renderHeader,
|
||||||
renderFullDef
|
renderFullDef
|
||||||
) where
|
) where
|
||||||
@ -19,19 +19,27 @@ data WordDefHeader = WordDefHeader WordName WordType deriving Show
|
|||||||
data WordName = WordName String deriving Show
|
data WordName = WordName String deriving Show
|
||||||
data WordType = WordType String deriving Show
|
data WordType = WordType String deriving Show
|
||||||
|
|
||||||
renderFullDef :: WordFullDef -> String
|
|
||||||
renderFullDef w = show w
|
|
||||||
|
|
||||||
renderHeader :: WordDefHeader -> String
|
|
||||||
renderHeader (WordDefHeader n t) = (getNameString n) ++ (getTypeString t)
|
|
||||||
|
|
||||||
getNameString :: WordName -> String
|
getNameString :: WordName -> String
|
||||||
getNameString (WordName s) = s
|
getNameString (WordName s) = s
|
||||||
|
|
||||||
getTypeString :: WordType -> String
|
getTypeString :: WordType -> String
|
||||||
getTypeString (WordType s) = s
|
getTypeString (WordType s) = s
|
||||||
|
|
||||||
renderWordList :: [WordDefHeader] -> String
|
renderFullDef :: WordFullDef -> String
|
||||||
renderWordList [] = ""
|
renderFullDef (WordFullDef wordDefHeader wordSentenceList) =
|
||||||
renderWordList (x:xs) = (renderHeader x) ++ "\n" ++ (renderWordList xs)
|
renderHeader wordDefHeader ++ "\n\n" ++ renderWordSentenceList wordSentenceList
|
||||||
|
|
||||||
|
renderHeader :: WordDefHeader -> String
|
||||||
|
renderHeader (WordDefHeader n t) = (getNameString n) ++ (getTypeString t)
|
||||||
|
|
||||||
|
renderHeaderList :: [WordDefHeader] -> String
|
||||||
|
renderHeaderList [] = ""
|
||||||
|
renderHeaderList (x:xs) = (renderHeader x) ++ "\n" ++ (renderHeaderList xs)
|
||||||
|
|
||||||
|
renderWordSentence :: WordSentence -> String
|
||||||
|
renderWordSentence (WordDefSentence s) = s
|
||||||
|
renderWordSentence (WordExampleSentence s) = s
|
||||||
|
|
||||||
|
renderWordSentenceList :: [WordSentence] -> String
|
||||||
|
renderWordSentenceList [] = []
|
||||||
|
renderWordSentenceList (x:xs) = renderWordSentence x ++ renderWordSentenceList xs
|
||||||
|
Loading…
Reference in New Issue
Block a user