Packages
earmark_parser
1.4.24
1.4.46
1.4.45
1.4.44
1.4.43
1.4.42
1.4.41
1.4.40
1.4.39
1.4.38
1.4.37
1.4.36
1.4.35
1.4.34
1.4.33
1.4.32
1.4.31
1.4.30
1.4.29
1.4.28
1.4.27
1.4.26
1.4.25
1.4.24
1.4.23
1.4.22
1.4.21
1.4.20
1.4.20-pre
1.4.19
1.4.18
1.4.17
1.4.16
1.4.16-pre2
1.4.16-pre1
1.4.16-pre
1.4.15
1.4.13
1.4.12
1.4.11
1.4.10
1.4.9
1.4.8
AST parser and generator for Markdown
Current section
Files
Jump to
Current section
Files
lib/earmark_parser/ast/emitter.ex
defmodule EarmarkParser.Ast.Emitter do
@moduledoc false
def emit(tag, content \\ [], atts \\ [], meta \\ %{})
def emit(tag, content, atts, meta) when is_binary(content) or is_tuple(content) do
{tag, _to_atts(atts), [content], meta}
end
def emit(tag, content, atts, meta) do
{tag, _to_atts(atts), content, meta}
end
defp _to_atts(atts)
defp _to_atts(nil), do: []
defp _to_atts(atts) when is_map(atts) do
atts
|> Enum.into([])
|> Enum.map(fn {name, value} -> {to_string(name), _to_string(value)} end)
end
defp _to_atts(atts) do
atts
|> Enum.map(fn {name, value} -> {to_string(name), _to_string(value)} end)
end
defp _to_string(value)
defp _to_string(value) when is_list(value), do: Enum.join(value, " ")
defp _to_string(value), do: to_string(value)
end
# SPDX-License-Identifier: Apache-2.0