- /docs/api → LiveView rendering README.md as HTML - /docs/api/openapi.yaml → raw OpenAPI 3.1 spec - /docs/api/README.md → raw markdown source
23 lines
641 B
Elixir
23 lines
641 B
Elixir
defmodule MicrowavepropWeb.ApiDocsLive do
|
|
@moduledoc "Renders `docs/api/README.md` as HTML at `/docs/api`."
|
|
use MicrowavepropWeb, :live_view
|
|
|
|
@external_resource "docs/api/README.md"
|
|
@docs_html "docs/api/README.md" |> File.read!() |> Microwaveprop.Markdown.to_html!()
|
|
|
|
@impl true
|
|
def mount(_params, _session, socket) do
|
|
{:ok, assign(socket, page_title: "API Documentation", content: @docs_html)}
|
|
end
|
|
|
|
@impl true
|
|
def render(assigns) do
|
|
~H"""
|
|
<Layouts.app flash={@flash} current_scope={@current_scope}>
|
|
<div class="markdown-content">
|
|
{raw(@content)}
|
|
</div>
|
|
</Layouts.app>
|
|
"""
|
|
end
|
|
end
|