remarks 0.1.2 → 0.1.3
raw patch · 2 files changed
+15/−7 lines, 2 files
Files
- remarks.cabal +1/−1
- src/PPmrk.hs +14/−6
remarks.cabal view
@@ -1,5 +1,5 @@ name: remarks-version: 0.1.2+version: 0.1.3 synopsis: A DSL for marking student work description: A DSL for marking student work; see README.md for further details. homepage: https://github.com/oleks/remarks#readme
src/PPmrk.hs view
@@ -7,15 +7,23 @@ toMrk :: [Judgement] -> String toMrk js = render $ vcat $ map (formatJudgement 1) js -formatJudgement level (Judgement (header, comments, judgements)) = - formatHeader level header $+$ - (nest 2 $ vcat $ map (formatComment) comments) $+$ +formatJudgement level (Judgement (header, comments, judgements)) =+ formatHeader level header $+$+ (nest 2 $ vcat $ map (formatComment) comments) $+$ (vcat $ map (formatJudgement (level + 1)) judgements) -formatHeader level (Header (title, point, maxPoints)) = - (text $ replicate level '#') <+> text title <> colon <+> double point <> text "/" <> double maxPoints +isIntegral :: Double -> Bool+isIntegral x = x == fromInteger (round x) -formatComment (Comment (mood, commentParts)) = +pointsDoc :: Double -> Doc+pointsDoc v | isIntegral v = integer (round v)+pointsDoc v = double v++formatHeader level (Header (title, point, maxPoints)) =+ (text $ replicate level '#') <+> text title <> colon <+>+ pointsDoc point <> text "/" <> pointsDoc maxPoints++formatComment (Comment (mood, commentParts)) = formatMood mood <+> (vcat $ map formatCommentPart commentParts) formatMood Positive = text "+"