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)
|
||||
|
||||
getDifferentDef :: T.Text -> String
|
||||
getDifferentDef x = getDifferentDefMessages (length xs) ++ renderWordList xs
|
||||
getDifferentDef x = getDifferentDefMessages (length xs) ++ renderHeaderList xs
|
||||
where xs = (parseDefTags . differentDefTags) x
|
||||
|
||||
getDifferentDefMessages :: Int -> String
|
||||
@ -21,8 +21,8 @@ getDifferentDefMessages _ = "Plusieurs définitions disponibles : \n"
|
||||
|
||||
parseDefTags :: [Tag String] -> [WordDefHeader]
|
||||
parseDefTags [] = []
|
||||
parseDefTags xs =
|
||||
(WordDefHeader (WordName (renderTags (take 1 (fst st))))
|
||||
parseDefTags xs =
|
||||
(WordDefHeader (WordName (renderTags (take 1 (fst st))))
|
||||
(WordType (renderTags [(fst st) !! 1])))
|
||||
: (parseDefTags (snd st))
|
||||
where st = subTags xs
|
||||
@ -55,9 +55,9 @@ parseFullDefTags = findRelevantTags . parseTags . T.unpack
|
||||
|
||||
findRelevantTags :: [Tag String] -> [Tag String]
|
||||
findRelevantTags [] = []
|
||||
findRelevantTags (x:xs) = if x ~== "<span class=tlf_cdefinition"
|
||||
findRelevantTags (x:xs) = if x ~== "<span class=tlf_cdefinition"
|
||||
|| 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)
|
||||
where
|
||||
f = findRelevantTags
|
||||
|
28
WordDef.hs
28
WordDef.hs
@ -5,7 +5,7 @@ module WordDef
|
||||
WordName(WordName),
|
||||
WordType(WordType),
|
||||
WordSentence(..),
|
||||
renderWordList,
|
||||
renderHeaderList,
|
||||
renderHeader,
|
||||
renderFullDef
|
||||
) where
|
||||
@ -19,19 +19,27 @@ data WordDefHeader = WordDefHeader WordName WordType deriving Show
|
||||
data WordName = WordName 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 s) = s
|
||||
|
||||
getTypeString :: WordType -> String
|
||||
getTypeString (WordType s) = s
|
||||
|
||||
renderWordList :: [WordDefHeader] -> String
|
||||
renderWordList [] = ""
|
||||
renderWordList (x:xs) = (renderHeader x) ++ "\n" ++ (renderWordList xs)
|
||||
renderFullDef :: WordFullDef -> String
|
||||
renderFullDef (WordFullDef wordDefHeader wordSentenceList) =
|
||||
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