Ver Código Fonte

transform newlines into paragraphs.

Lucas Stadler 11 anos atrás
pai
commit
c3fbb6e515
2 arquivos alterados com 12 adições e 7 exclusões
  1. 9 5
      elm/Post.elm
  2. 3 2
      elm/Stream.elm

+ 9 - 5
elm/Post.elm

@ -2,9 +2,11 @@ module Post where
2 2
3 3
import Date
4 4
import Date (Date)
5
import List
5 6
import Html (..)
6 7
import Util.Compare (compareBy, flipCompare)
7 8
import Util.Html (viewDate)
9
import String
8 10
9 11
type alias Post = { title:String, content:String, created:Date }
10 12
@ -12,8 +14,10 @@ compareByDate = compareBy (.created >> Date.toTime)
12 14
compareByDateReverse = flipCompare <| compareBy (.created >> Date.toTime)
13 15
14 16
view : Date -> Post -> Html
15
view ref post = div [] [
16
                 h3 [] [text post.title],
17
                 p [] [text post.content],
18
                 span [] [text "Written ", viewDate ref post.created]
19
                ]
17
view ref post =
18
    let paragraphs = List.filter (not << String.isEmpty) <| String.split "\n" post.content
19
    in div [] [
20
            h3 [] [text post.title],
21
            section [] (List.map (\par -> p [] [text par]) paragraphs),
22
            span [] [text "Written ", viewDate ref post.created]
23
           ]

+ 3 - 2
elm/Stream.elm

@ -17,13 +17,14 @@ date s = case (Date.fromString s) of
17 17
    Err e -> Date.fromTime 0
18 18
19 19
posts : List Post
20
posts = [{title = "Something else", content = "Well, I can say more than \"Hello\", I guess!", created = date "2015-03-01T14:03"},
20
posts = [{title = "Fancy post", content = "Post may have multiple lines now.\nWhat freedom!\n\n\nThat's weird, though...", created = date "2015-03-01T15:18"},
21
         {title = "Something else", content = "Well, I can say more than \"Hello\", I guess!", created = date "2015-03-01T14:03"},
21 22
         {title = "Hello, Other Things?", content = "There are other things?", created = date "2015-03-01T12:53:21"},
22 23
         {title = "Hello, World!", content = "This is my very first post!", created = date "2015-03-01T12:27:00"},
23 24
         {title = "Blog setup", content = "I guess I should post something now?", created = date "2014-12-24T10:57:03"},
24 25
         {title = "Ancient history", content = "Teenage angst!!!!", created = date "2009-06-07T02:54:29"}
25 26
        ]
26 27
27
referenceDate = date "2015-03-01T14:09"
28
referenceDate = date "2015-03-01T15:20"
28 29
29 30
main = div [] (List.map (Post.view referenceDate) (List.sortWith Post.compareByDateReverse posts))