Packages
earmark
1.4.49
1.5.0-pre1
retired
1.5.0-pre
retired
1.4.49
retired
1.4.48
retired
1.4.47
retired
1.4.46
retired
1.4.45
retired
1.4.44
retired
1.4.43
retired
1.4.42
retired
1.4.41
retired
1.4.40
retired
1.4.39
retired
1.4.38
retired
1.4.37
retired
1.4.36
retired
1.4.35
retired
1.4.34
retired
1.4.33
retired
1.4.32
retired
1.4.31
retired
1.4.30
retired
1.4.29
retired
1.4.28
retired
1.4.27
retired
1.4.26
retired
1.4.25
retired
1.4.24
retired
1.4.23
retired
1.4.22
retired
1.4.21
retired
1.4.20
retired
1.4.19
retired
1.4.18
retired
1.4.17
retired
1.4.16
retired
1.4.16-pre2
retired
1.4.16-pre1
retired
1.4.16-pre
retired
1.4.15
retired
1.4.14
retired
1.4.13
retired
1.4.12
retired
1.4.10
retired
1.4.9
retired
1.4.8
retired
1.4.7
retired
1.4.6
retired
1.4.5
retired
1.4.4
retired
1.4.3
retired
1.4.2
retired
1.4.1
retired
1.4.0
retired
1.3.6
retired
1.3.5
retired
1.3.4
retired
1.3.3
retired
1.3.2
retired
1.3.1
retired
1.3.0
retired
1.2.6
retired
1.2.5
retired
1.2.4
retired
1.2.3
retired
1.2.2
retired
1.2.1
retired
1.2.0
retired
1.1.1
retired
1.1.0
retired
1.0.3
retired
1.0.2
retired
1.0.1
retired
1.0.0
retired
0.2.1
retired
0.2.0
retired
0.1.19
retired
0.1.18
retired
0.1.17
retired
0.1.16
retired
0.1.15
retired
0.1.14
retired
0.1.13
retired
0.1.12
retired
0.1.10
retired
0.1.9
retired
0.1.8
retired
0.1.7
retired
0.1.6
retired
0.1.5
retired
0.1.4
retired
0.1.3
retired
0.1.2
retired
0.1.1
retired
0.1.0
retired
Earmark is a pure-Elixir Markdown converter. It is intended to be used as a library (just call Earmark.as_html), but can also be used as a command-line tool (run mix escript.build first). Output generation is pluggable.
Retired package: Deprecated - Earmark is no longer maintained. Migrate to a replacement, for example MDEx (https://hex.pm/packages/mdex).
Security advisory:
This version has known vulnerabilities.
View advisories
Current section
Files
Jump to
Current section
Files
lib/earmark_parser/line.ex
defmodule Earmark.Parser.Line do
@moduledoc false
alias Earmark.Parser.Line
@type annotation :: any() | nil
@type lnb :: integer()
@type line :: String.t()
@type indent :: integer()
@type content :: String.t()
@type ial :: any() | nil
@type type :: String.t()
@type level :: integer()
@type delimiter :: String.t()
@type language :: any()
@type tag :: String.t()
@type complete :: boolean()
@type id :: any()
@type url :: String.t() | URI.t()
@type title :: String.t()
@type bullet :: String.t()
@type initial_indent :: integer()
@type list_indent :: integer()
defmodule Blank do
@moduledoc false
@type t :: %__MODULE__{
annotation: Line.annotation(),
lnb: Line.lnb(),
line: Line.line(),
indent: Line.indent(),
content: Line.content()
}
defstruct(annotation: nil, lnb: 0, line: "", indent: -1, content: "")
end
defmodule Ruler do
@moduledoc false
@type t :: %__MODULE__{
annotation: Line.annotation(),
lnb: Line.lnb(),
line: Line.line(),
indent: Line.indent(),
type: Line.type()
}
defstruct(annotation: nil, lnb: 0, line: "", indent: -1, type: "- or * or _")
end
defmodule Heading do
@moduledoc false
@type t :: %__MODULE__{
annotation: Line.annotation(),
ial: Line.ial(),
lnb: Line.lnb(),
line: Line.line(),
indent: Line.indent(),
level: Line.level(),
content: Line.content()
}
defstruct(
annotation: nil,
ial: nil,
lnb: 0,
line: "",
indent: -1,
level: 1,
content: "inline text"
)
end
defmodule BlockQuote do
@moduledoc false
@type t :: %__MODULE__{
annotation: Line.annotation(),
ial: Line.ial(),
lnb: Line.lnb(),
line: Line.line(),
indent: Line.indent(),
content: Line.content()
}
defstruct(annotation: nil, ial: nil, lnb: 0, line: "", indent: -1, content: "text")
end
defmodule Indent do
@moduledoc false
@type t :: %__MODULE__{
annotation: Line.annotation(),
lnb: Line.lnb(),
line: Line.line(),
indent: Line.indent(),
level: Line.level(),
content: Line.content()
}
defstruct(annotation: nil, lnb: 0, line: "", indent: -1, level: 0, content: "text")
end
defmodule Fence do
@moduledoc false
@type t :: %__MODULE__{
annotation: Line.annotation(),
lnb: Line.lnb(),
line: Line.line(),
indent: Line.indent(),
delimiter: Line.delimiter(),
language: Line.language()
}
defstruct(annotation: nil, lnb: 0, line: "", indent: -1, delimiter: "~ or `", language: nil)
end
defmodule HtmlOpenTag do
@moduledoc false
@type t :: %__MODULE__{
annotation: Line.annotation(),
lnb: Line.lnb(),
line: Line.line(),
indent: Line.indent(),
tag: Line.tag(),
content: Line.content()
}
defstruct(annotation: nil, lnb: 0, line: "", indent: -1, tag: "", content: "")
end
defmodule HtmlCloseTag do
@moduledoc false
@type t :: %__MODULE__{
annotation: Line.annotation(),
lnb: Line.lnb(),
line: Line.line(),
indent: Line.indent(),
tag: Line.tag()
}
defstruct(annotation: nil, lnb: 0, line: "", indent: -1, tag: "<... to eol")
end
defmodule HtmlComment do
@moduledoc false
@type t :: %__MODULE__{
annotation: Line.annotation(),
lnb: Line.lnb(),
line: Line.line(),
indent: Line.indent(),
complete: Line.complete()
}
defstruct(annotation: nil, lnb: 0, line: "", indent: -1, complete: true)
end
defmodule HtmlOneLine do
@moduledoc false
@type t :: %__MODULE__{
annotation: Line.annotation(),
lnb: Line.lnb(),
line: Line.line(),
indent: Line.indent(),
tag: Line.tag(),
content: Line.content()
}
defstruct(annotation: nil, lnb: 0, line: "", indent: -1, tag: "", content: "")
end
defmodule IdDef do
@moduledoc false
@type t :: %__MODULE__{
annotation: Line.annotation(),
lnb: Line.lnb(),
line: Line.line(),
indent: Line.indent(),
id: Line.id(),
url: Line.url(),
title: Line.title()
}
defstruct(annotation: nil, lnb: 0, line: "", indent: -1, id: nil, url: nil, title: nil)
end
defmodule FnDef do
@moduledoc false
@type t :: %__MODULE__{
annotation: Line.annotation(),
lnb: Line.lnb(),
line: Line.line(),
indent: Line.indent(),
id: Line.id(),
content: Line.content()
}
defstruct(annotation: nil, lnb: 0, line: "", indent: -1, id: nil, content: "text")
end
defmodule ListItem do
@moduledoc false
@type t :: %__MODULE__{
annotation: Line.annotation(),
ial: Line.ial(),
lnb: Line.lnb(),
type: Line.type(),
line: Line.line(),
indent: Line.indent(),
bullet: Line.bullet(),
content: Line.content(),
initial_indent: Line.initial_indent(),
list_indent: Line.list_indent()
}
defstruct(
annotation: nil,
ial: nil,
lnb: 0,
type: :ul,
line: "",
indent: -1,
bullet: "* or -",
content: "text",
initial_indent: 0,
list_indent: 0
)
end
defmodule SetextUnderlineHeading do
@moduledoc false
@type t :: %__MODULE__{
annotation: Line.annotation(),
lnb: Line.lnb(),
line: Line.line(),
indent: Line.indent(),
level: Line.level()
}
defstruct(annotation: nil, lnb: 0, line: "", indent: -1, level: 1)
end
defmodule TableLine do
@moduledoc false
@type t :: %__MODULE__{
annotation: Line.annotation(),
lnb: Line.lnb(),
line: Line.line(),
indent: Line.indent(),
content: Line.content(),
columns: integer(),
is_header: boolean(),
needs_header: boolean()
}
defstruct(
annotation: nil,
lnb: 0,
line: "",
indent: -1,
content: "",
columns: 0,
is_header: false,
needs_header: false
)
end
defmodule Ial do
@moduledoc false
@type t :: %__MODULE__{
annotation: Line.annotation(),
ial: Line.ial(),
lnb: Line.lnb(),
line: Line.line(),
indent: Line.indent(),
attrs: String.t(),
verbatim: String.t()
}
defstruct(annotation: nil, ial: nil, lnb: 0, line: "", indent: -1, attrs: "", verbatim: "")
end
defmodule Text do
@moduledoc false
@type t :: %__MODULE__{
annotation: Line.annotation(),
lnb: Line.lnb(),
line: Line.line(),
indent: Line.indent(),
content: Line.content()
}
defstruct(annotation: nil, lnb: 0, line: "", indent: -1, content: "")
end
end
# SPDX-License-Identifier: Apache-2.0