bookshelf-doc/DocGen4/Output/Template.lean

72 lines
2.4 KiB
Plaintext
Raw Normal View History

/-
Copyright (c) 2021 Henrik Böving. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Henrik Böving
-/
2022-05-19 18:36:35 +00:00
import DocGen4.Output.ToHtmlFormat
import DocGen4.Output.Navbar
namespace DocGen4
namespace Output
open scoped DocGen4.Jsx
2022-05-19 19:53:03 +00:00
/--
The HTML template used for all pages.
-/
def baseHtmlGenerator (title : String) (site : Array Html) : BaseHtmlM Html := do
2022-07-22 14:56:51 +00:00
let moduleConstant :=
if let some module := (←getCurrentName) then
#[<script>{s!"const MODULE_NAME={String.quote module.toString};"}</script>]
else
#[]
2022-02-12 14:09:13 +00:00
pure
<html lang="en">
2022-07-21 21:01:15 +00:00
<head>
[←baseHtmlHeadDeclarations]
<title>{title}</title>
<script defer="true" src={s!"{←getRoot}mathjax-config.js"}></script>
<script defer="true" src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script defer="true" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
<script>{s!"const SITE_ROOT={String.quote (←getRoot)};"}</script>
2022-07-22 14:56:51 +00:00
[moduleConstant]
2022-07-21 21:01:15 +00:00
<script type="module" src={s!"{←getRoot}nav.js"}></script>
<script type="module" src={s!"{←getRoot}search.js"}></script>
<script type="module" src={s!"{←getRoot}how-about.js"}></script>
2022-07-22 14:15:37 +00:00
<script type="module" src={s!"{←getRoot}instances.js"}></script>
<script type="module" src={s!"{←getRoot}importedBy.js"}></script>
2022-07-21 21:01:15 +00:00
</head>
2022-02-12 14:09:13 +00:00
<body>
2022-02-20 15:42:46 +00:00
<input id="nav_toggle" type="checkbox"/>
2022-02-12 14:09:13 +00:00
2022-02-20 15:42:46 +00:00
<header>
2022-05-19 09:14:47 +00:00
<h1><label for="nav_toggle"></label>Documentation</h1>
<p class="header_filename break_within">{title}</p>
2022-02-20 15:42:46 +00:00
-- TODO: Replace this form with our own search
<form action="https://google.com/search" method="get" id="search_form">
<input type="hidden" name="sitesearch" value="https://leanprover-community.github.io/mathlib_docs"/>
<input type="text" name="q" autocomplete="off"/>
<button>Google site search</button>
</form>
</header>
[site]
<nav class="nav">
<iframe src={s!"{←getRoot}/navbar.html"} class="navframe" frameBorder="0"></iframe>
</nav>
2022-02-12 14:09:13 +00:00
</body>
</html>
2022-05-19 19:53:03 +00:00
/--
A comfortability wrapper around `baseHtmlGenerator`.
-/
def baseHtml (title : String) (site : Html) : BaseHtmlM Html := baseHtmlGenerator title #[site]
end Output
end DocGen4