Skip to content

Commit fc581b2

Browse files
reakaleekclaude
authored andcommitted
Layout: move main content before nav in DOM source order (#3344)
Scrapers and AI crawlers reading /reference pages hit a wall of navigation HTML before reaching the article. Put <main> first in DOM order across all three layouts while preserving the visual layout via CSS Grid order utilities. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
1 parent fa5cad8 commit fc581b2

5 files changed

Lines changed: 12 additions & 12 deletions

File tree

src/Elastic.ApiExplorer/_Layout.cshtml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ else
1616
grid-cols-1
1717
md:grid-cols-[var(--max-sidebar-width)_1fr]
1818
">
19-
@await RenderPartialAsync(_PagesNav.Create<GlobalLayoutViewModel>(Model))
20-
<div class="lg:grid lg:grid-cols-[1fr_var(--max-sidebar-width)]">
19+
<div class="lg:grid lg:grid-cols-[1fr_var(--max-sidebar-width)] md:order-2">
2120
<div class="justify-center px-6 lg:px-0">
2221
<main id="content-container" class="w-full flex flex-col relative pb-12 overflow-x-hidden">
2322
<article id="markdown-content" class="content-container markdown-content md:px-4">
@@ -28,6 +27,7 @@ else
2827
</div>
2928
@await RenderPartialAsync(_ApiToc.Create(Model.TocItems.ToArray()))
3029
</div>
30+
@await RenderPartialAsync(_PagesNav.Create<GlobalLayoutViewModel>(Model))
3131
</div>
3232
</div>
3333
@if (Model.BuildType == BuildType.Assembler)

src/Elastic.Codex/_MarkdownLayout.cshtml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,18 @@
2525
md:px-4
2626
">
2727
<div class="min-h-screen grid grid-cols-1 md:grid-cols-[var(--max-sidebar-width)_1fr] gap-4">
28-
@await RenderPartialAsync(_PagesNav.Create<GlobalLayoutViewModel>(Model))
29-
<main id="content-container" class="min-w-0 lg:grid lg:grid-cols-[minmax(0,var(--max-text-width))_minmax(0,var(--max-sidebar-width))] justify-center mx-4 gap-4">
30-
@await RenderPartialAsync(_TableOfContents.Create(Model))
31-
<div class="mb-9 mt-0 min-w-0">
28+
<main id="content-container" class="min-w-0 flex flex-col lg:grid lg:grid-cols-[minmax(0,var(--max-text-width))_minmax(0,var(--max-sidebar-width))] justify-center mx-4 gap-4 md:order-2">
29+
<div class="mb-9 mt-0 min-w-0 order-2 lg:order-1">
3230
@await RenderPartialAsync(_Breadcrumbs.Create(Model))
3331
<article id="markdown-content" class="markdown-content min-w-0">
3432
<input type="checkbox" class="hidden" id="pages-nav-hamburger">
3533
@await RenderBodyAsync()
3634
</article>
3735
@await RenderPartialAsync(_PrevNextNav.Create(Model))
3836
</div>
37+
@await RenderPartialAsync(_TableOfContents.Create(Model))
3938
</main>
39+
@await RenderPartialAsync(_PagesNav.Create<GlobalLayoutViewModel>(Model))
4040
</div>
4141
</div>
4242
</div>

src/Elastic.Documentation.Site/Layout/_PagesNav.cshtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
@inherits RazorSlice<Elastic.Documentation.Site.GlobalLayoutViewModel>
2-
<aside class="sidebar font-sans bg-white fixed md:sticky shadow-2xl md:shadow-none left-full group-has-[#pages-nav-hamburger:checked]/body:left-0 bottom-0 md:left-auto top-[calc(var(--offset-top)+1px)] w-[80%] md:w-auto shrink-0 border-r border-r-grey-20 z-40 md:z-auto transition-[top,max-height] duration-300">
2+
<aside class="sidebar font-sans bg-white fixed md:sticky shadow-2xl md:shadow-none left-full group-has-[#pages-nav-hamburger:checked]/body:left-0 bottom-0 md:left-auto top-[calc(var(--offset-top)+1px)] w-[80%] md:w-auto shrink-0 border-r border-r-grey-20 z-40 md:z-auto transition-[top,max-height] duration-300 md:order-1">
33
<nav
44
id="pages-nav"
55
class="sidebar-nav h-full simple-scrollbar">

src/Elastic.Markdown/Layout/_TableOfContents.cshtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
@using Elastic.Documentation.Svg
22
@using Microsoft.AspNetCore.Html
33
@inherits RazorSlice<Elastic.Markdown.MarkdownLayoutViewModel>
4-
<aside class="sidebar md:block w-full lg:max-w-65 md:order-2">
4+
<aside class="sidebar md:block w-full lg:max-w-65 order-1 lg:order-2">
55
<nav id="toc-nav" class="sidebar-nav lg:h-full flex flex-row-reverse lg:block items-center justify-between md:justify-start gap-4 pb-3 md:pb-9 simple-scrollbar">
66
@if (Model.Features.PrimaryNavEnabled && !Model.VersioningSystem.IsVersionless && Model.BuildType != BuildType.Codex && Model.Branding is null)
77
{

src/Elastic.Markdown/_Layout.cshtml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,22 +30,22 @@
3030
md:px-4
3131
">
3232
<div class="min-h-screen grid grid-cols-1 md:grid-cols-[var(--max-sidebar-width)_1fr] gap-4">
33-
@await RenderPartialAsync(_PagesNav.Create<GlobalLayoutViewModel>(Model))
34-
<main id="content-container" class="min-w-0 lg:grid lg:grid-cols-[minmax(0,var(--max-text-width))_minmax(0,var(--max-sidebar-width))] justify-end mx-4 gap-4">
35-
@await RenderPartialAsync(_TableOfContents.Create(Model))
33+
<main id="content-container" class="min-w-0 flex flex-col lg:grid lg:grid-cols-[minmax(0,var(--max-text-width))_minmax(0,var(--max-sidebar-width))] justify-end mx-4 gap-4 md:order-2">
3634
@{
3735
var breadcrumbs = Model.Breadcrumbs.ToList();
3836
var breadcrumbVisible = breadcrumbs.Count > 0 && (breadcrumbs.Count > 1 || Model.BuildType != BuildType.Isolated);
3937
}
40-
<div class="mb-9 mt-0 min-w-0 @(breadcrumbVisible ? "" : "pt-6")">
38+
<div class="mb-9 mt-0 min-w-0 order-2 lg:order-1 @(breadcrumbVisible ? "" : "pt-6")">
4139
@await RenderPartialAsync(_Breadcrumbs.Create(Model))
4240
<article id="markdown-content" class="markdown-content min-w-0">
4341
<input type="checkbox" class="hidden" id="pages-nav-hamburger">
4442
@await RenderBodyAsync()
4543
</article>
4644
@await RenderPartialAsync(_PrevNextNav.Create(Model))
4745
</div>
46+
@await RenderPartialAsync(_TableOfContents.Create(Model))
4847
</main>
48+
@await RenderPartialAsync(_PagesNav.Create<GlobalLayoutViewModel>(Model))
4949
</div>
5050
</div>
5151
</div>

0 commit comments

Comments
 (0)