Skip to content

Commit 73eb2b2

Browse files
Tuple.append/2 is deprecated, use Tuple.insert_at/3 instead on Elixir 1.18 (#511)
* Tuple.append/2 is deprecated, use Tuple.insert_at/3 instead * Added Elixir 1.18 on OTP 27 to github actions --------- Co-authored-by: Robert Dober <[email protected]>
1 parent 0cc7032 commit 73eb2b2

File tree

2 files changed

+39
-17
lines changed

2 files changed

+39
-17
lines changed

.github/workflows/elixir.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ jobs:
3636
otp: 27
3737
os: ubuntu-latest
3838
warnings_as_errors: true
39+
- elixir: 1.18.x
40+
otp: 27
41+
os: ubuntu-latest
42+
warnings_as_errors: true
3943
env:
4044
MIX_ENV: test
4145
steps:

lib/earmark_parser/helpers/html_parser.ex

Lines changed: 35 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
defmodule Earmark.Parser.Helpers.HtmlParser do
2-
32
@moduledoc false
43

54
import Earmark.Parser.Helpers.StringHelpers, only: [behead: 2]
65
import Earmark.Parser.LineScanner, only: [void_tag?: 1]
76

87
def parse_html(lines)
9-
def parse_html([tag_line|rest]) do
8+
9+
def parse_html([tag_line | rest]) do
1010
case _parse_tag(tag_line) do
11-
{ :ok, tag, "" } -> [_parse_rest(rest, tag, [])]
12-
{ :ok, tag, suffix } -> [_parse_rest(rest, tag, [suffix])]
13-
{ :ext, tag, "" } -> [_parse_rest(rest, tag, [])]
14-
{ :ext, tag, suffix } -> [_parse_rest(rest, tag, []), [suffix]]
11+
{:ok, tag, ""} -> [_parse_rest(rest, tag, [])]
12+
{:ok, tag, suffix} -> [_parse_rest(rest, tag, [suffix])]
13+
{:ext, tag, ""} -> [_parse_rest(rest, tag, [])]
14+
{:ext, tag, suffix} -> [_parse_rest(rest, tag, []), [suffix]]
1515
end
1616
end
1717

@@ -53,9 +53,9 @@ defmodule Earmark.Parser.Helpers.HtmlParser do
5353

5454
defp _close_tag_tail(tag, atts, closing?, suffix) do
5555
if closing? || void_tag?(tag) do
56-
{:ext, {tag, Enum.reverse(atts)}, suffix }
56+
{:ext, {tag, Enum.reverse(atts)}, suffix}
5757
else
58-
{:ok, {tag, Enum.reverse(atts)}, suffix }
58+
{:ok, {tag, Enum.reverse(atts)}, suffix}
5959
end
6060
end
6161

@@ -64,18 +64,36 @@ defmodule Earmark.Parser.Helpers.HtmlParser do
6464

6565
@verbatim %{verbatim: true}
6666
defp _parse_rest(rest, tag_tpl, lines)
67+
6768
defp _parse_rest([], tag_tpl, lines) do
68-
tag_tpl |> Tuple.append(Enum.reverse(lines)) |> Tuple.append(@verbatim)
69+
tag_tpl
70+
|> Tuple.insert_at(tuple_size(tag_tpl), Enum.reverse(lines))
71+
|> Tuple.insert_at(tuple_size(tag_tpl) + 1, @verbatim)
6972
end
70-
defp _parse_rest([last_line], {tag, _}=tag_tpl, lines) do
73+
74+
defp _parse_rest([last_line], {tag, _} = tag_tpl, lines) do
7175
case Regex.run(~r{\A\s*</#{tag}>\s*(.*)}, last_line) do
72-
nil -> tag_tpl |> Tuple.append(Enum.reverse([last_line|lines])) |> Tuple.append(@verbatim)
73-
[_, ""] -> tag_tpl |> Tuple.append(Enum.reverse(lines)) |> Tuple.append(@verbatim)
74-
[_, suffix] -> [tag_tpl |> Tuple.append(Enum.reverse(lines)) |> Tuple.append(@verbatim), suffix]
76+
nil ->
77+
tag_tpl
78+
|> Tuple.insert_at(tuple_size(tag_tpl), Enum.reverse([last_line | lines]))
79+
|> Tuple.insert_at(tuple_size(tag_tpl) + 1, @verbatim)
80+
81+
[_, ""] ->
82+
tag_tpl
83+
|> Tuple.insert_at(tuple_size(tag_tpl), Enum.reverse(lines))
84+
|> Tuple.insert_at(tuple_size(tag_tpl) + 1, @verbatim)
85+
86+
[_, suffix] ->
87+
[
88+
tag_tpl
89+
|> Tuple.insert_at(tuple_size(tag_tpl), Enum.reverse(lines))
90+
|> Tuple.insert_at(tuple_size(tag_tpl) + 1, @verbatim),
91+
suffix
92+
]
7593
end
7694
end
77-
defp _parse_rest([inner_line|rest], tag_tpl, lines) do
78-
_parse_rest(rest, tag_tpl, [inner_line|lines])
79-
end
8095

81-
end
96+
defp _parse_rest([inner_line | rest], tag_tpl, lines) do
97+
_parse_rest(rest, tag_tpl, [inner_line | lines])
98+
end
99+
end

0 commit comments

Comments
 (0)