Packages
earmark_parser
1.4.29
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/message.ex
defmodule EarmarkParser.Message do
@moduledoc false
alias EarmarkParser.Context
alias EarmarkParser.Options
@type message_type :: :error | :warning
@type t :: {message_type, number, binary}
@type ts :: list(t)
@type container_type :: Options.t() | Context.t()
def add_messages(container, messages),
do: Enum.reduce(messages, container, &add_message(&2, &1))
def add_message(container, message)
def add_message(options = %Options{}, message) do
%{options | messages: MapSet.put(options.messages, message)}
end
def add_message(context = %Context{}, message) do
%{context | options: add_message(context.options, message)}
end
def get_messages(container)
def get_messages(%Context{options: %{messages: messages}}), do: messages
@doc """
For final output
"""
def sort_messages(container) do
container
|> get_messages()
|> Enum.sort(fn {_, l, _}, {_, r, _} -> r >= l end)
end
end
# SPDX-License-Identifier: Apache-2.0