File: inline_converter_case.ex

package info (click to toggle)
elixir-earmark-parser 1.4.44-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,148 kB
  • sloc: makefile: 9
file content (41 lines) | stat: -rw-r--r-- 1,433 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
defmodule Support.InlineConverterCase do
  defmacro __using__(_opts) do
    quote do
      use ExUnit.Case
      import EarmarkAstDsl

      def convert(src, options \\ [], lnb \\ 74) do
        options = EarmarkParser.Options.normalize(options)
        context = %EarmarkParser.Context{options: options} |> EarmarkParser.Context.update_context()

        EarmarkParser.Ast.Inline.convert(src, lnb, context).value
      end

      def convert_with_footnotes(src, fnids)

      def convert_with_footnotes(src, fnids) when is_list(fnids) do
        footnotes = fnids |> Enum.zip(Stream.cycle([true])) |> Enum.into(%{})
        options = EarmarkParser.Options.normalize(footnotes: true)

        context =
          %EarmarkParser.Context{options: options, footnotes: footnotes} |> EarmarkParser.Context.update_context()

        EarmarkParser.Ast.Inline.convert(src, 1, context).value
      end

      def convert_with_footnotes(src, fnid) do
        convert_with_footnotes(src, [fnid])
      end

      def convert_with_reflink(src, link_id, url, title, options \\ []) do
        links = %{link_id => %{url: url, title: title}}
        options = EarmarkParser.Options.normalize(options)
        context = %EarmarkParser.Context{options: options, links: links} |> EarmarkParser.Context.update_context()

        EarmarkParser.Ast.Inline.convert(src, 1, context).value
      end
    end
  end
end

# SPDX-License-Identifier: Apache-2.0