Skip to content
This repository was archived by the owner on Nov 8, 2022. It is now read-only.

Commit 82bed1b

Browse files
committed
refactor(editor): add full frontend playground
1 parent f51e197 commit 82bed1b

File tree

5 files changed

+59
-4
lines changed

5 files changed

+59
-4
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<!doctype html>
2+
3+
<html lang="en">
4+
<head>
5+
<meta charset="utf-8">
6+
7+
<title>The HTML5 Herald</title>
8+
<meta name="description" content="The HTML5 Herald">
9+
<meta name="author" content="SitePoint">
10+
11+
<link rel="stylesheet" href="./styles.css?v=1.0">
12+
<div id="article"></div>
13+
</head>
14+
15+
<body>
16+
<script src="./script.js"></script>
17+
</body>
18+
</html>

lib/helper/converter/editor_to_html/frontend_test/script.js

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
body {
2+
border: 1px solid #ececec;
3+
min-height: 80vh;
4+
margin: 20px 5vw;
5+
}
6+
7+
.article-viewer-wrapper {
8+
position: relative;
9+
max-width: 650px;
10+
11+
box-sizing: border-box;
12+
z-index: 1;
13+
font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC,
14+
Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, WenQuanYi Micro Hei,
15+
sans-serif;
16+
font-size: 15px;
17+
-webkit-font-smoothing: antialiased !important;
18+
}
19+
20+
.article-viewer-wrapper .list-wrapper {
21+
padding: 1.2em 0;
22+
}

lib/helper/converter/editor_to_html/index.ex

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,14 @@ defmodule Helper.Converter.EditorToHTML do
5555
defp parse_block(%{"type" => "list", "data" => data}) do
5656
%{"items" => items, "mode" => mode} = data
5757

58-
Enum.reduce(items, "", fn item, acc ->
59-
acc <> Frags.List.get_item(mode |> String.to_atom(), item)
60-
end)
58+
list_wrapper_class = get_in(@root_class, ["list", "wrapper"])
59+
60+
items_content =
61+
Enum.reduce(items, "", fn item, acc ->
62+
acc <> Frags.List.get_item(mode |> String.to_atom(), item)
63+
end)
64+
65+
~s(<div class="#{list_wrapper_class}">#{items_content}</div>)
6166
end
6267

6368
# defp parse_block(%{"type" => "image", "data" => data}) do

test/helper/converter/editor_to_html_test/list_test.exs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ defmodule GroupherServer.Test.Helper.Converter.EditorToHTML.List do
55

66
alias Helper.Converter.EditorToHTML, as: Parser
77
alias Helper.Converter.EditorToHTML.Class
8+
alias Helper.Utils
89

910
@root_class Class.article()
1011
@class get_in(@root_class, ["list"])
@@ -46,8 +47,11 @@ defmodule GroupherServer.Test.Helper.Converter.EditorToHTML.List do
4647
{:ok, editor_string} = Jason.encode(@editor_json)
4748
{:ok, converted} = Parser.to_html(editor_string)
4849

50+
IO.inspect(converted, label: "the converted")
51+
4952
checked_class = @class["checklist_checkbox_checked"]
50-
assert converted |> String.split(checked_class) |> length() == 2
53+
54+
assert Utils.str_occurence(converted, checked_class) == 1
5155
end
5256

5357
@editor_json %{

0 commit comments

Comments
 (0)