1- open ReactRouter
21open Mdx
32
43type loaderData = {
@@ -133,7 +132,7 @@ let communityTableOfContents = async () => {
133132 categories
134133}
135134
136- let loader : Loader .t <loaderData > = async ({request }) => {
135+ let loader : ReactRouter . Loader .t <loaderData > = async ({request }) => {
137136 let {pathname } = WebAPI .URL .make (~url = request .url )
138137
139138 let mdx = await loadMdx (request , ~options = {remarkPlugins : [Mdx .gfm ]})
@@ -264,39 +263,41 @@ let loader: Loader.t<loaderData> = async ({request}) => {
264263}
265264
266265let default = () => {
267- let {pathname } = useLocation ()
266+ let {pathname } = ReactRouter . useLocation ()
268267 let component = useMdxComponent (~components )
269268 let attributes = useMdxAttributes ()
270269
271- let loaderData : loaderData = useLoaderData ()
270+ let loaderData : loaderData = ReactRouter . useLoaderData ()
272271
273272 let {entries , categories , title } = loaderData
274273
275274 <>
276- {title != "" ? <title > {React .string (title )} </title > : React .null }
277- <meta name = "description" content = {attributes .description -> Nullable .getOr ("" )} />
278275 {if (pathname :> string ) == "/docs/manual/api" {
279- <ApiOverviewLayout .Docs >
280- <div className = "markdown-body" > {component ()} </div >
281- </ApiOverviewLayout .Docs >
276+ <>
277+ <Meta title = title description = {attributes .description -> Nullable .getOr ("ReScript API" )} />
278+ <ApiOverviewLayout .Docs >
279+ <div className = "markdown-body" > {component ()} </div >
280+ </ApiOverviewLayout .Docs >
281+ </>
282282 } else if (
283283 (pathname :> string )-> String .includes ("docs/manual" ) ||
284284 (pathname :> string )-> String .includes ("docs/react" )
285285 ) {
286- <DocsLayout
287- categories
288- activeToc = {title : "Introduction" , entries }
289- breadcrumbs = ?loaderData .breadcrumbs
290- editHref = {` https://github.com/rescript-lang/rescript-lang.org/blob/master/pages${attributes.path}.mdx` }
291- >
292- <div className = "markdown-body pt-20 md:pt-0" > {component ()} </div >
293- </DocsLayout >
286+ <>
287+ <Meta title = title description = {attributes .description -> Nullable .getOr ("" )} />
288+ <DocsLayout
289+ categories
290+ activeToc = {title : "Introduction" , entries }
291+ breadcrumbs = ?loaderData .breadcrumbs
292+ editHref = {` https://github.com/rescript-lang/rescript-lang.org/blob/master/pages${attributes.path}.mdx` }
293+ >
294+ <div className = "markdown-body pt-20 md:pt-0" > {component ()} </div >
295+ </DocsLayout >
296+ </>
294297 } else if (pathname :> string )-> String .includes ("community" ) {
295- <div >
296- <CommunityLayout categories entries >
297- <div className = "markdown-body" > {component ()} </div >
298- </CommunityLayout >
299- </div >
298+ <CommunityLayout categories entries >
299+ <div className = "markdown-body" > {component ()} </div >
300+ </CommunityLayout >
300301 } else if (pathname :> string )-> String .includes ("blog" ) {
301302 switch loaderData .blogPost {
302303 | Some ({frontmatter , archived , path }) =>
@@ -307,13 +308,13 @@ let default = () => {
307308 switch loaderData .mdxSources {
308309 | Some (mdxSources ) =>
309310 <>
310- <title >
311- { React . string (
312- ` ${loaderData.activeSyntaxItem
313- -> Option.map(item = > item.name)
314- -> Option .getOr("Syntax Lookup " )} | ReScript API` ,
315- )}
316- </ title >
311+ <Meta
312+ title = { loaderData . activeSyntaxItem
313+ -> Option . map ( item => item . name )
314+ -> Option .getOr ( "Syntax Lookup | ReScript API" )}
315+ description = { attributes . description -> Nullable .getOr ("" )}
316+ />
317+
317318 <SyntaxLookup mdxSources activeItem = ?loaderData .activeSyntaxItem >
318319 {component ()}
319320 </SyntaxLookup >
@@ -322,6 +323,4 @@ let default = () => {
322323 }
323324 }}
324325 </>
325-
326- // </ManualDocsLayout.V1200Layout>
327326}
0 commit comments