Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Nov 8, 2022. It is now read-only.

Commit671aa33

Browse files
committed
refactor(editor-parser): more test-case for li,image,linker..etc types
1 parentb090c86 commit671aa33

File tree

2 files changed

+70
-31
lines changed

2 files changed

+70
-31
lines changed

‎lib/helper/rich_text_parser.ex‎

Lines changed: 51 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -15,50 +15,71 @@ defmodule Helper.RichTextParser do
1515
end)
1616

1717
"<div class=\"#{@html_class_prefix}\">#{content}<div>"
18-
#|> IO.inspect(label: "hello")
18+
|>IO.inspect(label:"hello")
1919
end
2020
end
2121

22-
defpparse_block(%{"type"=>"header","data"=>data})do
23-
# IO.inspect(data, label: "parseheader")
24-
text=get_in(data,["text"])
25-
level=get_in(data,["level"])
22+
# IO.inspect(data, label: "parseheader")
23+
# defp parse_block(%{"type" => "header", "data" => data}) do
24+
# text = get_in(data, ["text"])
25+
# level = get_in(data, ["level"])
2626

27-
"<h#{level}>#{text}</h#{level}>"
28-
end
27+
# "<h#{level}>#{text}</h#{level}>"
28+
#end
2929

30-
defpparse_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+
defpparse_block(%{"type"=>"list","data"=>%{"style"=>"unordered","items"=>items}})do
46+
content=
47+
Enum.reduce(items,"",fnitem,acc->
48+
acc<>"<li>#{item}</li>"
49+
end)
3350

34-
"<p>#{text}</p>"
51+
"<ul>#{content}</ul>"
3552
end
3653

37-
defpparse_block(%{"type"=>"image","data"=>data})do
38-
IO.inspect(data,label:"parse image")
39-
url=get_in(data,["file","url"])
54+
defpparse_block(%{"type"=>"list","data"=>%{"style"=>"ordered","items"=>items}})do
55+
content=
56+
Enum.reduce(items,"",fnitem,acc->
57+
acc<>"<li>#{item}</li>"
58+
end)
4059

41-
"<div class=\"#{@html_class_prefix}-image\"><img src=\"#{url}\"></div>"
42-
|>IO.inspect(label:"iamge ret")
60+
"<ol>#{content}</ol>"
4361
end
4462

45-
#defp parse_block(%{"type" => "list", "data" => data}) do
46-
# IO.inspect(data, label: "parse list")
47-
#end
63+
defpparse_block(%{"type"=>"delimiter"})do
64+
"<div class=\"#{@html_class_prefix}-delimiter\" />"
65+
end
4866

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+
defpparse_block(%{"type"=>"linkTool","data"=>data})do
70+
link=get_in(data,["link"])
5271

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
5775

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+
defpparse_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
6283

6384
defpparse_block(block)do
6485
IO.puts(".")

‎test/helper/rich_text_parser_test.exs‎

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,24 @@ defmodule GroupherServer.Test.Helper.RichTextParserTest do
3939
]
4040
}
4141
},
42+
{
43+
"type" : "header",
44+
"data" : {
45+
"text" : "Key features",
46+
"level" : 3
47+
}
48+
},
49+
{
50+
"type" : "list",
51+
"data" : {
52+
"style" : "ordered",
53+
"items" : [
54+
"It is a block-styled editor",
55+
"It returns clean data output in JSON",
56+
"Designed to be extendable and pluggable with a simple API"
57+
]
58+
}
59+
},
4260
{
4361
"type" : "header",
4462
"data" : {
@@ -123,7 +141,7 @@ defmodule GroupherServer.Test.Helper.RichTextParserTest do
123141
{
124142
"type" : "quote",
125143
"data" : {
126-
"text" : "hello world",
144+
"text" : "quote demo text",
127145
"caption" : "desc?",
128146
"alignment" : "left"
129147
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp