@@ -15,50 +15,71 @@ defmodule Helper.RichTextParser do
15
15
end )
16
16
17
17
"<div class=\" #{ @ html_class_prefix } \" >#{ content } <div>"
18
- # |> IO.inspect(label: "hello")
18
+ |> IO . inspect ( label: "hello" )
19
19
end
20
20
end
21
21
22
- defp parse_block ( % { "type" => " header", "data" => data } ) do
23
- # IO.inspect(data, label: "parse header")
24
- text = get_in ( data , [ "text" ] )
25
- level = get_in ( data , [ "level" ] )
22
+ # IO.inspect(data, label: "parse header")
23
+ # defp parse_block(%{"type" => " header", "data" => data}) do
24
+ # text = get_in(data, ["text"])
25
+ # level = get_in(data, ["level"])
26
26
27
- "<h#{ level } >#{ text } </h#{ level } >"
28
- end
27
+ # "<h#{level}>#{text}</h#{level}>"
28
+ # end
29
29
30
- defp parse_block ( % { "type" => "paragraph" , "data" => data } ) do
31
- # IO.inspect(data, label: "parse paragraph")
32
- text = get_in ( data , [ "text" ] )
30
+ # IO.inspect(data, label: "parse paragraph")
31
+ # defp parse_block(%{"type" => "paragraph", "data" => data}) do
32
+ # text = get_in(data, ["text"])
33
+
34
+ # "<p>#{text}</p>"
35
+ # end
36
+
37
+ # defp parse_block(%{"type" => "image", "data" => data}) do
38
+ # IO.inspect(data, label: "parse image")
39
+ # url = get_in(data, ["file", "url"])
40
+
41
+ # "<div class=\"#{@html_class_prefix}-image\"><img src=\"#{url}\"></div>"
42
+ # |> IO.inspect(label: "iamge ret")
43
+ # end
44
+
45
+ defp parse_block ( % { "type" => "list" , "data" => % { "style" => "unordered" , "items" => items } } ) do
46
+ content =
47
+ Enum . reduce ( items , "" , fn item , acc ->
48
+ acc <> "<li>#{ item } </li>"
49
+ end )
33
50
34
- "<p >#{ text } </p >"
51
+ "<ul >#{ content } </ul >"
35
52
end
36
53
37
- defp parse_block ( % { "type" => "image" , "data" => data } ) do
38
- IO . inspect ( data , label: "parse image" )
39
- url = get_in ( data , [ "file" , "url" ] )
54
+ defp parse_block ( % { "type" => "list" , "data" => % { "style" => "ordered" , "items" => items } } ) do
55
+ content =
56
+ Enum . reduce ( items , "" , fn item , acc ->
57
+ acc <> "<li>#{ item } </li>"
58
+ end )
40
59
41
- "<div class=\" #{ @ html_class_prefix } -image\" ><img src=\" #{ url } \" ></div>"
42
- |> IO . inspect ( label: "iamge ret" )
60
+ "<ol>#{ content } </ol>"
43
61
end
44
62
45
- # defp parse_block(%{"type" => "list", "data" => data }) do
46
- # IO.inspect(data, label: "parse list")
47
- # end
63
+ defp parse_block ( % { "type" => "delimiter" } ) do
64
+ "<div class= \" #{ @ html_class_prefix } -delimiter \" />"
65
+ end
48
66
49
- # defp parse_block(%{"type" => "delimiter", "data" => data}) do
50
- # IO.inspect(data, label: "parse delimiter")
51
- # end
67
+ # IO.inspect(data, label: "parse linkTool")
68
+ # TODO: parse the link-card info
69
+ defp parse_block ( % { "type" => "linkTool" , "data" => data } ) do
70
+ link = get_in ( data , [ "link" ] )
52
71
53
- # defp parse_block(%{"type" => "linkTool", "data" => data}) do
54
- # IO.inspect(data, label: "parse linkTool")
55
- # data |> get_in(["link"]) |> IO.inspect(label: "linkTool ret")
56
- # end
72
+ "<div class=\" #{ @ html_class_prefix } -linker\" ><a src=\" #{ link } \" target=\" _blank\" /></div>"
73
+ # |> IO.inspect(label: "linkTool ret")
74
+ end
57
75
58
- # defp parse_block(%{"type" => "quote", "data" => data}) do
59
- # IO.inspect(data, label: "parse quote")
60
- # data |> get_in(["text"]) |> IO.inspect(label: "quote ret")
61
- # end
76
+ # IO.inspect(data, label: "parse quote")
77
+ defp parse_block ( % { "type" => "quote" , "data" => data } ) do
78
+ text = get_in ( data , [ "text" ] )
79
+
80
+ "<div class=\" #{ @ html_class_prefix } -quote\" >#{ text } </div>"
81
+ # |> IO.inspect(label: "quote ret")
82
+ end
62
83
63
84
defp parse_block ( block ) do
64
85
IO . puts ( "." )