defmodule GitHub.Markdown do @moduledoc """ Provides API endpoints related to markdown """ @default_client GitHub.Client @doc """ Render a Markdown document ## Resources * [API method documentation](https://docs.github.com/rest/reference/markdown#render-a-markdown-document) """ @spec render(map, keyword) :: {:ok, binary} | {:error, GitHub.Error.t()} def render(body, opts \\ []) do client = opts[:client] || @default_client client.request(%{ call: {GitHub.Markdown, :render}, url: "/markdown", body: body, method: :post, request: [{"application/json", :map}], response: [{200, :binary}, {304, nil}], opts: opts }) end @doc """ Render a Markdown document in raw mode ## Resources * [API method documentation](https://docs.github.com/rest/reference/markdown#render-a-markdown-document-in-raw-mode) """ @spec render_raw(String.t(), keyword) :: {:ok, binary} | {:error, GitHub.Error.t()} def render_raw(body, opts \\ []) do client = opts[:client] || @default_client client.request(%{ call: {GitHub.Markdown, :render_raw}, url: "/markdown/raw", body: body, method: :post, request: [{"text/plain", :string}, {"text/x-markdown", :string}], response: [{200, :binary}, {304, nil}], opts: opts }) end end