Przeglądaj źródła

transform newlines into paragraphs.

Lucas Stadler 11 lat temu
rodzic
commit
c3fbb6e515
2 zmienionych plików z 12 dodań i 7 usunięć
  1. 9 5
      elm/Post.elm
  2. 3 2
      elm/Stream.elm

+ 9 - 5
elm/Post.elm

2
2
3
import Date
3
import Date
4
import Date (Date)
4
import Date (Date)
5
import List
5
import Html (..)
6
import Html (..)
6
import Util.Compare (compareBy, flipCompare)
7
import Util.Compare (compareBy, flipCompare)
7
import Util.Html (viewDate)
8
import Util.Html (viewDate)
9
import String
8
10
9
type alias Post = { title:String, content:String, created:Date }
11
type alias Post = { title:String, content:String, created:Date }
10
12
12
compareByDateReverse = flipCompare <| compareBy (.created >> Date.toTime)
14
compareByDateReverse = flipCompare <| compareBy (.created >> Date.toTime)
13
15
14
view : Date -> Post -> Html
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
    Err e -> Date.fromTime 0
17
    Err e -> Date.fromTime 0
18
18
19
posts : List Post
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
         {title = "Hello, Other Things?", content = "There are other things?", created = date "2015-03-01T12:53:21"},
22
         {title = "Hello, Other Things?", content = "There are other things?", created = date "2015-03-01T12:53:21"},
22
         {title = "Hello, World!", content = "This is my very first post!", created = date "2015-03-01T12:27:00"},
23
         {title = "Hello, World!", content = "This is my very first post!", created = date "2015-03-01T12:27:00"},
23
         {title = "Blog setup", content = "I guess I should post something now?", created = date "2014-12-24T10:57:03"},
24
         {title = "Blog setup", content = "I guess I should post something now?", created = date "2014-12-24T10:57:03"},
24
         {title = "Ancient history", content = "Teenage angst!!!!", created = date "2009-06-07T02:54:29"}
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
main = div [] (List.map (Post.view referenceDate) (List.sortWith Post.compareByDateReverse posts))
30
main = div [] (List.map (Post.view referenceDate) (List.sortWith Post.compareByDateReverse posts))