diff --git a/src/Elastic.Markdown/Helpers/Htmx.cs b/src/Elastic.Markdown/Helpers/Htmx.cs new file mode 100644 index 000000000..050af241e --- /dev/null +++ b/src/Elastic.Markdown/Helpers/Htmx.cs @@ -0,0 +1,10 @@ +// Licensed to Elasticsearch B.V under one or more agreements. +// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. +// See the LICENSE file in the project root for more information + +namespace Elastic.Markdown.Helpers; + +public class Htmx +{ + public static string GetHxSelectOob() => "#markdown-content,#toc-nav,#prev-next-nav,#breadcrumbs"; +} diff --git a/src/Elastic.Markdown/Myst/Renderers/HtmxLinkInlineRenderer.cs b/src/Elastic.Markdown/Myst/Renderers/HtmxLinkInlineRenderer.cs index 3be658496..1eac90f8d 100644 --- a/src/Elastic.Markdown/Myst/Renderers/HtmxLinkInlineRenderer.cs +++ b/src/Elastic.Markdown/Myst/Renderers/HtmxLinkInlineRenderer.cs @@ -2,6 +2,7 @@ // Elasticsearch B.V licenses this file to you under the Apache 2.0 License. // See the LICENSE file in the project root for more information +using Elastic.Markdown.Helpers; using Markdig; using Markdig.Renderers; using Markdig.Renderers.Html.Inlines; @@ -19,7 +20,7 @@ protected override void Write(HtmlRenderer renderer, LinkInline link) _ = renderer.WriteEscapeUrl(link.GetDynamicUrl != null ? link.GetDynamicUrl() ?? link.Url : link.Url); _ = renderer.Write('"'); _ = renderer.WriteAttributes(link); - _ = renderer.Write(" hx-select-oob=\"#markdown-content,#toc-nav,#prev-next-nav\""); + _ = renderer.Write($" hx-select-oob=\"{Htmx.GetHxSelectOob()}\""); _ = renderer.Write(" hx-swap=\"none\""); _ = renderer.Write(" hx-push-url=\"true\""); _ = renderer.Write(" hx-indicator=\"#htmx-indicator\""); diff --git a/src/Elastic.Markdown/Slices/Layout/_Breadcrumbs.cshtml b/src/Elastic.Markdown/Slices/Layout/_Breadcrumbs.cshtml index 768fb0852..733fae2d1 100644 --- a/src/Elastic.Markdown/Slices/Layout/_Breadcrumbs.cshtml +++ b/src/Elastic.Markdown/Slices/Layout/_Breadcrumbs.cshtml @@ -1,5 +1,5 @@ @inherits RazorSlice -
    +