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

Commit 3e529d5

Browse files
authored
Merge pull request #284 from coderplanets/editor-header
refactor(editor): add header export
2 parents dc77793 + 140e506 commit 3e529d5

File tree

6 files changed

+67
-38
lines changed

6 files changed

+67
-38
lines changed

lib/helper/converter/editor_to_html/class.ex

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ defmodule Helper.Converter.EditorToHTML.Class do
1818
# header
1919
"header" => %{
2020
"wrapper" => "header-wrapper",
21+
"header" => "header",
2122
"eyebrow_title" => "eyebrow-title",
2223
"footer_title" => "footer-title"
2324
},

lib/helper/converter/editor_to_html/frags/header.ex

+6-3
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,13 @@ defmodule Helper.Converter.EditorToHTML.Frags.Header do
1515
%{"text" => text, "level" => level} = data
1616

1717
wrapper_class = @class["wrapper"]
18+
header_class = @class["header"]
1819
eyebrow_class = @class["eyebrow_title"]
1920
footer_class = @class["footer_title"]
2021

2122
~s(<div class="#{wrapper_class}">
2223
<div class="#{eyebrow_class}">#{eyebrow_title}</div>
23-
<h#{level}>#{text}</h#{level}>
24+
<h#{level} class="#{header_class}">#{text}</h#{level}>
2425
<div class="#{footer_class}">#{footer_title}</div>
2526
</div>)
2627
end
@@ -29,22 +30,24 @@ defmodule Helper.Converter.EditorToHTML.Frags.Header do
2930
%{"text" => text, "level" => level} = data
3031

3132
wrapper_class = @class["wrapper"]
33+
header_class = @class["header"]
3234
eyebrow_class = @class["eyebrow_title"]
3335

3436
~s(<div class="#{wrapper_class}">
3537
<div class="#{eyebrow_class}">#{eyebrow_title}</div>
36-
<h#{level}>#{text}</h#{level}>
38+
<h#{level} class="#{header_class}">#{text}</h#{level}>
3739
</div>)
3840
end
3941

4042
def get(%{"footerTitle" => footer_title} = data) do
4143
%{"text" => text, "level" => level} = data
4244

4345
wrapper_class = @class["wrapper"]
46+
header_class = @class["header"]
4447
footer_class = @class["footer_title"]
4548

4649
~s(<div class="#{wrapper_class}">
47-
<h#{level}>#{text}</h#{level}>
50+
<h#{level} class="#{header_class}">#{text}</h#{level}>
4851
<div class="#{footer_class}">#{footer_title}</div>
4952
</div>)
5053
end

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

+7-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/helper/converter/editor_to_html/frontend_test/styles.css

+36
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,40 @@ body {
2323
max-height: 100%;
2424
}
2525

26+
/* header block */
27+
28+
.article-viewer-wrapper .header-wrapper {
29+
}
30+
31+
.article-viewer-wrapper .header {
32+
margin-top: 8px;
33+
margin-bottom: 8px;
34+
}
35+
36+
.article-viewer-wrapper .header-wrapper h1 {
37+
position: relative;
38+
font-size: 28px;
39+
}
40+
41+
.article-viewer-wrapper .eyebrow-title {
42+
font-size: 16px;
43+
margin-bottom: 5px;
44+
margin-top: 20px;
45+
line-height: 24px;
46+
width: 100%;
47+
color: grey;
48+
}
49+
50+
.article-viewer-wrapper .footer-title {
51+
font-size: 16px;
52+
margin-top: 5px;
53+
margin-bottom: 18px;
54+
line-height: 24px;
55+
width: 100%;
56+
color: grey;
57+
}
58+
59+
/* list block */
2660
.article-viewer-wrapper .list-wrapper {
2761
padding: 1.2em 0;
2862
}
@@ -168,3 +202,5 @@ body {
168202
color: #526c73;
169203
word-break: break-all;
170204
}
205+
206+
/* list block end */

test/helper/converter/editor_to_html_test/header_test.exs

+16-33
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,13 @@ defmodule GroupherServer.Test.Helper.Converter.EditorToHTML.Header do
55

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

910
@root_class Class.article()
11+
@class get_in(@root_class, ["header"])
12+
13+
@eyebrow_class @class["eyebrow_title"]
14+
@footer_class @class["footer_title"]
1015

1116
describe "[header block unit]" do
1217
@editor_json %{
@@ -36,7 +41,7 @@ defmodule GroupherServer.Test.Helper.Converter.EditorToHTML.Header do
3641
],
3742
"version" => "2.15.0"
3843
}
39-
@tag :wip2
44+
@tag :wip
4045
test "header parse should work" do
4146
{:ok, editor_string} = Jason.encode(@editor_json)
4247
{:ok, converted} = Parser.to_html(editor_string)
@@ -71,18 +76,12 @@ defmodule GroupherServer.Test.Helper.Converter.EditorToHTML.Header do
7176
{:ok, editor_string} = Jason.encode(@editor_json)
7277
{:ok, converted} = Parser.to_html(editor_string)
7378

74-
frag =
75-
Frags.Header.get(%{
76-
"text" => "header content",
77-
"level" => 1,
78-
"eyebrowTitle" => "eyebrow title content",
79-
"footerTitle" => "footer title content"
80-
})
81-
82-
viewer_class = @root_class["viewer"]
79+
# header_class = @class["header"]
8380

84-
assert converted ==
85-
~s(<div class="#{viewer_class}">#{frag}</div>)
81+
# IO.inspect(converted, label: "header converted")
82+
# assert Utils.str_occurence(converted, header_class) == 1
83+
assert Utils.str_occurence(converted, @eyebrow_class) == 1
84+
assert Utils.str_occurence(converted, @footer_class) == 1
8685
end
8786

8887
@editor_json %{
@@ -108,17 +107,8 @@ defmodule GroupherServer.Test.Helper.Converter.EditorToHTML.Header do
108107
{:ok, editor_string} = Jason.encode(json)
109108
{:ok, converted} = Parser.to_html(editor_string)
110109

111-
frag =
112-
Frags.Header.get(%{
113-
"text" => "header content",
114-
"level" => 1,
115-
"eyebrowTitle" => "eyebrow title content"
116-
})
117-
118-
viewer_class = @root_class["viewer"]
119-
120-
assert converted ==
121-
~s(<div class="#{viewer_class}">#{frag}</div>)
110+
assert Utils.str_occurence(converted, @eyebrow_class) == 1
111+
assert Utils.str_occurence(converted, @footer_class) == 0
122112

123113
json =
124114
Map.merge(@editor_json, %{
@@ -137,17 +127,10 @@ defmodule GroupherServer.Test.Helper.Converter.EditorToHTML.Header do
137127
{:ok, editor_string} = Jason.encode(json)
138128
{:ok, converted} = Parser.to_html(editor_string)
139129

140-
frag =
141-
Frags.Header.get(%{
142-
"text" => "header content",
143-
"level" => 1,
144-
"footerTitle" => "footer title content"
145-
})
146-
147-
viewer_class = @root_class["viewer"]
130+
IO.inspect(converted, label: "converted --")
148131

149-
assert converted ==
150-
~s(<div class="#{viewer_class}">#{frag}</div>)
132+
assert Utils.str_occurence(converted, @eyebrow_class) == 0
133+
assert Utils.str_occurence(converted, @footer_class) == 1
151134
end
152135

153136
@tag :wip

test/helper/converter/editor_to_html_test/list_test.exs

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ defmodule GroupherServer.Test.Helper.Converter.EditorToHTML.List do
6464
assert Utils.str_occurence(converted, unorder_list_prefix_class) == 3
6565
end
6666

67-
@tag :wip2
67+
@tag :wip
6868
test "basic order list parse should work" do
6969
editor_json =
7070
set_items("order_list", [

0 commit comments

Comments
 (0)