2022-02-15 11:27:12 +00:00
|
|
|
import CMark
|
2022-02-02 10:22:15 +00:00
|
|
|
import DocGen4.Output.Template
|
|
|
|
|
|
|
|
namespace DocGen4
|
|
|
|
namespace Output
|
|
|
|
|
|
|
|
open scoped DocGen4.Jsx
|
|
|
|
open Lean Widget
|
|
|
|
|
|
|
|
def equationToHtml (c : CodeWithInfos) : HtmlM Html := do
|
2022-02-12 14:09:13 +00:00
|
|
|
pure <li «class»="equation">[←infoFormatToHtml c]</li>
|
2022-02-02 10:22:15 +00:00
|
|
|
|
|
|
|
def equationsToHtml (i : DefinitionInfo) : HtmlM (Option Html) := do
|
2022-02-12 14:09:13 +00:00
|
|
|
if let some eqs := i.equations then
|
2022-02-02 10:22:15 +00:00
|
|
|
let equationsHtml ← eqs.mapM equationToHtml
|
2022-02-12 14:09:13 +00:00
|
|
|
pure
|
|
|
|
<details>
|
|
|
|
<summary>Equations</summary>
|
|
|
|
<ul «class»="equations">
|
|
|
|
[equationsHtml]
|
|
|
|
</ul>
|
|
|
|
</details>
|
2022-02-02 10:22:15 +00:00
|
|
|
else
|
2022-02-12 14:09:13 +00:00
|
|
|
pure none
|
2022-02-02 10:22:15 +00:00
|
|
|
|
|
|
|
def definitionToHtml (i : DefinitionInfo) : HtmlM (Array Html) := do
|
2022-02-15 11:27:12 +00:00
|
|
|
let equationsHtml? ← equationsToHtml i
|
|
|
|
let docstringHtml? := i.doc.map λ s => Html.text (CMark.renderHtml s)
|
|
|
|
match equationsHtml?, docstringHtml? with
|
|
|
|
| some e, some d => pure #[e, d]
|
|
|
|
| some e, none => pure #[e]
|
|
|
|
| none , some e => pure #[e]
|
|
|
|
| none , none => pure #[]
|
|
|
|
|
2022-02-02 10:22:15 +00:00
|
|
|
|
|
|
|
end Output
|
|
|
|
end DocGen4
|
|
|
|
|