Skip to content

Commit 8b149fc

Browse files
authored
Also add breadcrumbs to the hx-select-oob list (#575)
1 parent 65f92a0 commit 8b149fc

File tree

9 files changed

+32
-19
lines changed

9 files changed

+32
-19
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// Licensed to Elasticsearch B.V under one or more agreements.
2+
// Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
3+
// See the LICENSE file in the project root for more information
4+
5+
namespace Elastic.Markdown.Helpers;
6+
7+
public class Htmx
8+
{
9+
public static string GetHxSelectOob() => "#markdown-content,#toc-nav,#prev-next-nav,#breadcrumbs";
10+
}

src/Elastic.Markdown/Myst/Renderers/HtmxLinkInlineRenderer.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
33
// See the LICENSE file in the project root for more information
44

5+
using Elastic.Markdown.Helpers;
56
using Markdig;
67
using Markdig.Renderers;
78
using Markdig.Renderers.Html.Inlines;
@@ -19,7 +20,7 @@ protected override void Write(HtmlRenderer renderer, LinkInline link)
1920
_ = renderer.WriteEscapeUrl(link.GetDynamicUrl != null ? link.GetDynamicUrl() ?? link.Url : link.Url);
2021
_ = renderer.Write('"');
2122
_ = renderer.WriteAttributes(link);
22-
_ = renderer.Write(" hx-select-oob=\"#markdown-content,#toc-nav,#prev-next-nav\"");
23+
_ = renderer.Write($" hx-select-oob=\"{Htmx.GetHxSelectOob()}\"");
2324
_ = renderer.Write(" hx-swap=\"none\"");
2425
_ = renderer.Write(" hx-push-url=\"true\"");
2526
_ = renderer.Write(" hx-indicator=\"#htmx-indicator\"");

src/Elastic.Markdown/Slices/Layout/_Breadcrumbs.cshtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
@inherits RazorSlice<LayoutViewModel>
2-
<ol class="block w-full" itemscope="" itemtype="https://schema.org/BreadcrumbList">
2+
<ol id="breadcrumbs" class="block w-full" itemscope="" itemtype="https://schema.org/BreadcrumbList">
33
<li class="inline text-ink text-sm hover:text-ink leading-[1.2em] tracking-[-0.02em]" itemprop="itemListElement" itemscope="" itemtype="https://schema.org/ListItem">
44
<a itemprop="item" href="@Model.UrlPathPrefix/">
55
<span itemprop="name" class="hover:text-ink">Elastic</span>

src/Elastic.Markdown/Slices/Layout/_TocTreeNav.cshtml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
@using Elastic.Markdown.Helpers
12
@using Elastic.Markdown.IO.Navigation
23
@inherits RazorSlice<NavigationTreeItem>
34
@foreach (var item in Model.SubTree.NavigationItems)
@@ -10,7 +11,7 @@
1011
<div class="flex">
1112
<a
1213
hx-get="@f.Url"
13-
hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav"
14+
hx-select-oob="@Htmx.GetHxSelectOob()"
1415
hx-swap="none"
1516
hx-push-url="true"
1617
hx-indicator="#htmx-indicator"
@@ -49,7 +50,7 @@
4950
<a
5051
href="@g.Index?.Url"
5152
hx-get="@g.Index?.Url"
52-
hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav"
53+
hx-select-oob="@Htmx.GetHxSelectOob()"
5354
hx-swap="none"
5455
hx-push-url="true"
5556
hx-indicator="#htmx-indicator"

src/Elastic.Markdown/Slices/_Layout.cshtml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
@using Elastic.Markdown.Helpers
12
@inherits RazorLayoutSlice<LayoutViewModel>
23
<!DOCTYPE html>
34
<html lang="en" class="h-screen">
@@ -36,7 +37,7 @@
3637
<a
3738
href="@Model.Previous.Url"
3839
hx-get="@Model.Previous.Url"
39-
hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav"
40+
hx-select-oob="@Htmx.GetHxSelectOob()"
4041
hx-swap="none"
4142
hx-push-url="true"
4243
hx-indicator="#htmx-indicator"
@@ -59,7 +60,7 @@
5960
<a
6061
href="@Model.Next.Url"
6162
hx-get="@Model.Next.Url"
62-
hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav"
63+
hx-select-oob="@Htmx.GetHxSelectOob()"
6364
hx-swap="none"
6465
hx-push-url="true"
6566
hx-indicator="#htmx-indicator"

tests/Elastic.Markdown.Tests/Inline/AnchorLinkTests.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ [Sub Requirements](testing/req.md#sub-requirements)
7575
public void GeneratesHtml() =>
7676
// language=html
7777
Html.Should().Contain(
78-
"""<p><a href="/docs/testing/req#sub-requirements" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">Sub Requirements</a></p>"""
78+
"""<p><a href="/docs/testing/req#sub-requirements" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav,#breadcrumbs" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">Sub Requirements</a></p>"""
7979
);
8080

8181
[Fact]
@@ -93,7 +93,7 @@ [Sub Requirements](testing/req.md#new-reqs)
9393
public void GeneratesHtml() =>
9494
// language=html
9595
Html.Should().Contain(
96-
"""<p><a href="/docs/testing/req#new-reqs" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">Sub Requirements</a></p>"""
96+
"""<p><a href="/docs/testing/req#new-reqs" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav,#breadcrumbs" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">Sub Requirements</a></p>"""
9797
);
9898

9999
[Fact]
@@ -110,7 +110,7 @@ public class ExternalPageAnchorAutoTitleTests(ITestOutputHelper output) : Anchor
110110
public void GeneratesHtml() =>
111111
// language=html
112112
Html.Should().Contain(
113-
"""<p><a href="/docs/testing/req#sub-requirements" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">Special Requirements &gt; Sub Requirements</a></p>"""
113+
"""<p><a href="/docs/testing/req#sub-requirements" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav,#breadcrumbs" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">Special Requirements &gt; Sub Requirements</a></p>"""
114114
);
115115

116116
[Fact]
@@ -146,7 +146,7 @@ [Sub Requirements](testing/req.md#sub-requirements2)
146146
public void GeneratesHtml() =>
147147
// language=html
148148
Html.Should().Contain(
149-
"""<p><a href="/docs/testing/req#sub-requirements2" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">Sub Requirements</a></p>"""
149+
"""<p><a href="/docs/testing/req#sub-requirements2" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav,#breadcrumbs" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">Sub Requirements</a></p>"""
150150
);
151151

152152
[Fact]
@@ -165,7 +165,7 @@ [Heading inside dropdown](testing/req.md#heading-inside-dropdown)
165165
public void GeneratesHtml() =>
166166
// language=html
167167
Html.Should().Contain(
168-
"""<a href="/docs/testing/req#heading-inside-dropdown" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">Heading inside dropdown</a>"""
168+
"""<a href="/docs/testing/req#heading-inside-dropdown" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav,#breadcrumbs" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">Heading inside dropdown</a>"""
169169
);
170170
[Fact]
171171
public void HasError() => Collector.Diagnostics.Should().HaveCount(0);

tests/Elastic.Markdown.Tests/Inline/DirectiveBlockLinkTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ [Sub Requirements](testing/req.md#hint_ref)
6666
public void GeneratesHtml() =>
6767
// language=html
6868
Html.Should().Contain(
69-
"""<p><a href="/docs/testing/req#hint_ref" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">Sub Requirements</a></p>"""
69+
"""<p><a href="/docs/testing/req#hint_ref" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav,#breadcrumbs" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">Sub Requirements</a></p>"""
7070
);
7171

7272
[Fact]

tests/Elastic.Markdown.Tests/Inline/InlineAnchorTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ [Sub Requirements](testing/req.md#custom-anchor)
200200
public void GeneratesHtml() =>
201201
// language=html
202202
Html.Should().Contain(
203-
"""<p><a href="/docs/testing/req#custom-anchor" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">Sub Requirements</a></p>"""
203+
"""<p><a href="/docs/testing/req#custom-anchor" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav,#breadcrumbs" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">Sub Requirements</a></p>"""
204204
);
205205

206206
[Fact]

tests/Elastic.Markdown.Tests/Inline/InlineLinkTests.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public class InlineLinkTests(ITestOutputHelper output) : LinkTestBase(output,
4040
public void GeneratesHtml() =>
4141
// language=html
4242
Html.Should().Contain(
43-
"""<p><a href="/docs/_static/img/observability.png" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">Elasticsearch</a></p>"""
43+
"""<p><a href="/docs/_static/img/observability.png" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav,#breadcrumbs" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">Elasticsearch</a></p>"""
4444
);
4545

4646
[Fact]
@@ -57,7 +57,7 @@ public class LinkToPageTests(ITestOutputHelper output) : LinkTestBase(output,
5757
public void GeneratesHtml() =>
5858
// language=html
5959
Html.Should().Contain(
60-
"""<p><a href="/docs/testing/req" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">Requirements</a></p>"""
60+
"""<p><a href="/docs/testing/req" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav,#breadcrumbs" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">Requirements</a></p>"""
6161
);
6262

6363
[Fact]
@@ -77,7 +77,7 @@ public class InsertPageTitleTests(ITestOutputHelper output) : LinkTestBase(outpu
7777
public void GeneratesHtml() =>
7878
// language=html
7979
Html.Should().Contain(
80-
"""<p><a href="/docs/testing/req" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">Special Requirements</a></p>"""
80+
"""<p><a href="/docs/testing/req" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav,#breadcrumbs" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">Special Requirements</a></p>"""
8181
);
8282

8383
[Fact]
@@ -99,7 +99,7 @@ public class LinkReferenceTest(ITestOutputHelper output) : LinkTestBase(output,
9999
public void GeneratesHtml() =>
100100
// language=html
101101
Html.Should().Contain(
102-
"""<p><a href="/docs/testing/req" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">test</a></p>"""
102+
"""<p><a href="/docs/testing/req" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav,#breadcrumbs" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">test</a></p>"""
103103
);
104104

105105
[Fact]
@@ -213,10 +213,10 @@ public void GeneratesHtml() =>
213213
Html.TrimEnd().Should().Be("""
214214
<p>Links:</p>
215215
<ul>
216-
<li><a href="/docs/testing/req" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">Special Requirements</a></li>
216+
<li><a href="/docs/testing/req" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav,#breadcrumbs" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">Special Requirements</a></li>
217217
</ul>
218218
<ul>
219-
<li><a href="/docs/testing/req" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">Special Requirements</a></li>
219+
<li><a href="/docs/testing/req" hx-select-oob="#markdown-content,#toc-nav,#prev-next-nav,#breadcrumbs" hx-swap="none" hx-push-url="true" hx-indicator="#htmx-indicator" preload="mouseover">Special Requirements</a></li>
220220
</ul>
221221
""");
222222

0 commit comments

Comments
 (0)