Skip to content

Commit 558e0ba

Browse files
committed
Discard mermaid fenced blocks from ansi docs
1 parent ab1e344 commit 558e0ba

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

lib/elixir/lib/io/ansi/docs.ex

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -176,12 +176,17 @@ defmodule IO.ANSI.Docs do
176176
process_code(rest, [line], indent, options)
177177
end
178178

179-
defp process(["```" <> _line | rest], text, indent, options) do
180-
process_fenced_code_block(rest, text, indent, options, _delimiter = "```")
179+
defp process(["```mermaid" <> _line | rest], text, indent, options) do
180+
write_text(text, indent, options)
181+
182+
rest
183+
|> Enum.drop_while(&(&1 != "```"))
184+
|> Enum.drop(1)
185+
|> process([], indent, options)
181186
end
182187

183-
defp process(["~~~" <> _line | rest], text, indent, options) do
184-
process_fenced_code_block(rest, text, indent, options, _delimiter = "~~~")
188+
defp process(["```" <> _line | rest], text, indent, options) do
189+
process_fenced_code_block(rest, text, indent, options, _delimiter = "```")
185190
end
186191

187192
defp process(["<!--" <> line | rest], text, indent, options) do
@@ -388,7 +393,7 @@ defmodule IO.ANSI.Docs do
388393
end
389394

390395
defp process_fenced_code([line | rest], code, indent, options, delimiter) do
391-
if line === delimiter do
396+
if line == delimiter do
392397
process_code(rest, code, indent, options)
393398
else
394399
process_fenced_code(rest, [line | code], indent, options, delimiter)

lib/elixir/test/elixir/io/ansi/docs_test.exs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,8 +187,11 @@ defmodule IO.ANSI.DocsTest do
187187
assert result == "line\n\e[0m\n\e[36m code\n code2\e[0m\n\e[0m\nline2\n\e[0m"
188188
result = format_markdown("line\n```elixir\ncode\ncode2\n```\nline2\n")
189189
assert result == "line\n\e[0m\n\e[36m code\n code2\e[0m\n\e[0m\nline2\n\e[0m"
190-
result = format_markdown("line\n~~~elixir\ncode\n```\n~~~\nline2\n")
191-
assert result == "line\n\e[0m\n\e[36m code\n ```\e[0m\n\e[0m\nline2\n\e[0m"
190+
end
191+
192+
test "mermaid fenced code block is discarded" do
193+
result = format_markdown("line\n```mermaid\ncode\ncode2\n```\nline2\n")
194+
assert result == "line\n\e[0m\nline2\n\e[0m"
192195
end
193196

194197
test "* list is converted" do

0 commit comments

Comments
 (0)