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.

Commitc0cd28f

Browse files
committed
refactor(editor-parser): snitizer html partial before reduce
1 parent671aa33 commitc0cd28f

File tree

1 file changed

+22
-20
lines changed

1 file changed

+22
-20
lines changed

‎lib/helper/rich_text_parser.ex‎

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,43 +4,46 @@ defmodule Helper.RichTextParser do
44
55
see https://editorjs.io/
66
"""
7+
aliasHelper.Sanitizer
8+
79
@html_class_prefix"cps-viewer"
810

911
defconvert_to_html(string)whenis_binary(string)do
1012
with{:ok,parsed}=string_to_json(string),
1113
true<-valid_editor_data?(parsed)do
1214
content=
1315
Enum.reduce(parsed["blocks"],"",fnblock,acc->
14-
acc<>parse_block(block)
16+
clean_html=block|>parse_block|>Sanitizer.sanitize()
17+
acc<>clean_html
1518
end)
1619

1720
"<div class=\"#{@html_class_prefix}\">#{content}<div>"
18-
|>IO.inspect(label:"hello")
21+
#|> IO.inspect(label: "hello")
1922
end
2023
end
2124

2225
# 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+
defpparse_block(%{"type"=>"header","data"=>data})do
27+
text=get_in(data,["text"])
28+
level=get_in(data,["level"])
2629

27-
# "<h#{level}>#{text}</h#{level}>"
28-
#end
30+
"<h#{level}>#{text}</h#{level}>"
31+
end
2932

3033
# IO.inspect(data, label: "parse paragraph")
31-
#defp parse_block(%{"type" => "paragraph", "data" => data}) do
32-
# text = get_in(data, ["text"])
34+
defpparse_block(%{"type"=>"paragraph","data"=>data})do
35+
text=get_in(data,["text"])
3336

34-
# "<p>#{text}</p>"
35-
#end
37+
"<p>#{text}</p>"
38+
end
3639

37-
# defp parse_block(%{"type" => "image", "data" => data}) do
3840
# IO.inspect(data, label: "parse image")
39-
# url = get_in(data, ["file", "url"])
41+
defpparse_block(%{"type"=>"image","data"=>data})do
42+
url=get_in(data,["file","url"])
4043

41-
# "<div class=\"#{@html_class_prefix}-image\"><img src=\"#{url}\"></div>"
42-
# |> IO.inspect(label: "iamge ret")
43-
#end
44+
"<div class=\"#{@html_class_prefix}-image\"><img src=\"#{url}\"></div>"
45+
# |> IO.inspect(label: "iamge ret")
46+
end
4447

4548
defpparse_block(%{"type"=>"list","data"=>%{"style"=>"unordered","items"=>items}})do
4649
content=
@@ -81,10 +84,9 @@ defmodule Helper.RichTextParser do
8184
# |> IO.inspect(label: "quote ret")
8285
end
8386

84-
defpparse_block(block)do
85-
IO.puts(".")
86-
""
87-
# IO.inspect(block, label: "parse unknow")
87+
defpparse_block(_block)do
88+
# IO.puts("[unknow block]")
89+
"[unknow block]"
8890
end
8991

9092
defstring_to_json(string),do:Jason.decode(string)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp