diff --git a/docs/source/_ext/rejoin.py b/docs/source/_ext/rejoin.py
deleted file mode 100644
index afa760c43..000000000
--- a/docs/source/_ext/rejoin.py
+++ /dev/null
@@ -1,48 +0,0 @@
-from __future__ import annotations
-from docutils import nodes
-
-from sphinx.application import Sphinx
-from sphinx.util.docutils import SphinxDirective, SphinxRole, directives
-from sphinx.util.typing import ExtensionMetadata
-
-def rejoin_text(text: str, split_by: str, join_by: str) -> str:
- return join_by.join(text.lower().split(split_by))
-
-class RejoinRole(SphinxRole):
- """A role to split by a string and rejoin by another string !"""
-
- def run(self) -> tuple[list[nodes.Node], list[nodes.system_message]]:
- node = nodes.inline(text=rejoin_text(self.text, ' ', '-'))
- return [node], []
-
-class RejoinDirective(SphinxDirective):
- """A directive to split by a string and rejoin by another string !"""
-
- required_arguments = 1
- has_content = True
- FROM_OPTION = 'from'
- TO_OPTION = 'to'
- optional_arguments = 2
- option_spec = {
- FROM_OPTION: directives.unchanged,
- TO_OPTION: directives.unchanged
- }
-
- def run(self) -> list[nodes.Node]:
- label = self.arguments[0]
- text = ''.join(self.content)
- fr = self.options[self.FROM_OPTION]
- to = self.options[self.TO_OPTION]
- rejoined_text = rejoin_text(text, fr, to)
- converted_text = f"{label} : {rejoined_text}"
- paragraph_node = nodes.inline(text=converted_text)
- return [paragraph_node]
-
-def setup(app: Sphinx) -> ExtensionMetadata:
- app.add_role('rejoin', RejoinRole())
- app.add_directive('rejoin', RejoinDirective)
- return {
- 'version': '0.1',
- 'parallel_read_safe': True,
- 'parallel_write_safe': True,
- }
\ No newline at end of file
diff --git a/docs/source/_templates/header.html b/docs/source/_templates/header.html
deleted file mode 100644
index 3d6448719..000000000
--- a/docs/source/_templates/header.html
+++ /dev/null
@@ -1,8 +0,0 @@
-{% extends "!header.html" %}
-
-{{ super() }}
-
-{% block extrahead %}
-{# Included before the closing tag #}
-
-{% endblock %}
diff --git a/docs/source/_templates/partials/globaltoc-above.html b/docs/source/_templates/partials/globaltoc-above.html
deleted file mode 100644
index f7da18f8b..000000000
--- a/docs/source/_templates/partials/globaltoc-above.html
+++ /dev/null
@@ -1,59 +0,0 @@
-{% if versions %}
-
-
-
-
-
-{% endif %}
diff --git a/docs/source/_templates/versioning.html b/docs/source/_templates/versioning.html
deleted file mode 100644
index 5347ebbda..000000000
--- a/docs/source/_templates/versioning.html
+++ /dev/null
@@ -1,8 +0,0 @@
-{% if versions %}
-{{ _('Versions') }}
-
-{% endif %}
\ No newline at end of file
diff --git a/src/Elastic.Markdown/DocumentationGenerator.cs b/src/Elastic.Markdown/DocumentationGenerator.cs
index a8b2ce377..df0955b1c 100644
--- a/src/Elastic.Markdown/DocumentationGenerator.cs
+++ b/src/Elastic.Markdown/DocumentationGenerator.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 System.IO.Abstractions;
+using System.Reflection;
using System.Text.Json;
using System.Text.Json.Serialization;
using Elastic.Markdown.IO;
@@ -110,6 +111,27 @@ await Parallel.ForEachAsync(DocumentationSet.Files, ctx, async (file, token) =>
if (item % 1_000 == 0)
_logger.LogInformation($"Handled {handledItems} files");
});
+
+ var embeddedStaticFiles = Assembly.GetExecutingAssembly()
+ .GetManifestResourceNames()
+ .ToList();
+ foreach (var a in embeddedStaticFiles)
+ {
+ await using var resourceStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(a);
+ if (resourceStream == null)
+ continue;
+
+ var path = a.Replace("Elastic.Markdown.", "").Replace("_static.", "_static/");
+
+ var outputFile = OutputFile(path);
+ if (outputFile.Directory is { Exists: false })
+ outputFile.Directory.Create();
+ await using var stream = outputFile.OpenWrite();
+ await resourceStream.CopyToAsync(stream, ctx);
+ _logger.LogInformation($"Copied static embedded resource {path}");
+ }
+
+
Context.Collector.Channel.TryComplete();
await GenerateDocumentationState(ctx);
diff --git a/src/Elastic.Markdown/Elastic.Markdown.csproj b/src/Elastic.Markdown/Elastic.Markdown.csproj
index c9721f6bf..f616d8770 100644
--- a/src/Elastic.Markdown/Elastic.Markdown.csproj
+++ b/src/Elastic.Markdown/Elastic.Markdown.csproj
@@ -26,5 +26,8 @@
-
+
+
+
+
diff --git a/src/Elastic.Markdown/IO/DocumentationSet.cs b/src/Elastic.Markdown/IO/DocumentationSet.cs
index ecee2e385..69e1053d1 100644
--- a/src/Elastic.Markdown/IO/DocumentationSet.cs
+++ b/src/Elastic.Markdown/IO/DocumentationSet.cs
@@ -47,7 +47,6 @@ public DocumentationSet(BuildContext context)
".md" => CreateMarkDownFile(file, context),
_ => new StaticFile(file, SourcePath)
})
-
.ToList();
LastWrite = Files.Max(f => f.SourceFile.LastWriteTimeUtc);
diff --git a/docs/source/_static/atom-one-light.css b/src/Elastic.Markdown/_static/atom-one-light.css
similarity index 100%
rename from docs/source/_static/atom-one-light.css
rename to src/Elastic.Markdown/_static/atom-one-light.css
diff --git a/docs/source/_static/clipboard.min.js b/src/Elastic.Markdown/_static/clipboard.min.js
similarity index 100%
rename from docs/source/_static/clipboard.min.js
rename to src/Elastic.Markdown/_static/clipboard.min.js
diff --git a/docs/source/_static/copybutton.css b/src/Elastic.Markdown/_static/copybutton.css
similarity index 100%
rename from docs/source/_static/copybutton.css
rename to src/Elastic.Markdown/_static/copybutton.css
diff --git a/docs/source/_static/copybutton.js b/src/Elastic.Markdown/_static/copybutton.js
similarity index 100%
rename from docs/source/_static/copybutton.js
rename to src/Elastic.Markdown/_static/copybutton.js
diff --git a/docs/source/_static/custom.css b/src/Elastic.Markdown/_static/custom.css
similarity index 100%
rename from docs/source/_static/custom.css
rename to src/Elastic.Markdown/_static/custom.css
diff --git a/docs/source/_static/design-tabs.js b/src/Elastic.Markdown/_static/design-tabs.js
similarity index 100%
rename from docs/source/_static/design-tabs.js
rename to src/Elastic.Markdown/_static/design-tabs.js
diff --git a/docs/source/_static/doctools.js b/src/Elastic.Markdown/_static/doctools.js
similarity index 100%
rename from docs/source/_static/doctools.js
rename to src/Elastic.Markdown/_static/doctools.js
diff --git a/docs/source/_static/documentation_options.js b/src/Elastic.Markdown/_static/documentation_options.js
similarity index 100%
rename from docs/source/_static/documentation_options.js
rename to src/Elastic.Markdown/_static/documentation_options.js
diff --git a/docs/source/_static/logo-dark.svg b/src/Elastic.Markdown/_static/logo-dark.svg
similarity index 100%
rename from docs/source/_static/logo-dark.svg
rename to src/Elastic.Markdown/_static/logo-dark.svg
diff --git a/docs/source/_static/logo-light.svg b/src/Elastic.Markdown/_static/logo-light.svg
similarity index 100%
rename from docs/source/_static/logo-light.svg
rename to src/Elastic.Markdown/_static/logo-light.svg
diff --git a/docs/source/_static/mystnb.css b/src/Elastic.Markdown/_static/mystnb.css
similarity index 100%
rename from docs/source/_static/mystnb.css
rename to src/Elastic.Markdown/_static/mystnb.css
diff --git a/docs/source/_static/print.css b/src/Elastic.Markdown/_static/print.css
similarity index 100%
rename from docs/source/_static/print.css
rename to src/Elastic.Markdown/_static/print.css
diff --git a/docs/source/_static/pygments.css b/src/Elastic.Markdown/_static/pygments.css
similarity index 100%
rename from docs/source/_static/pygments.css
rename to src/Elastic.Markdown/_static/pygments.css
diff --git a/docs/source/_static/shibuya.css b/src/Elastic.Markdown/_static/shibuya.css
similarity index 100%
rename from docs/source/_static/shibuya.css
rename to src/Elastic.Markdown/_static/shibuya.css
diff --git a/docs/source/_static/shibuya.js b/src/Elastic.Markdown/_static/shibuya.js
similarity index 100%
rename from docs/source/_static/shibuya.js
rename to src/Elastic.Markdown/_static/shibuya.js
diff --git a/docs/source/_static/sphinx-design.min.css b/src/Elastic.Markdown/_static/sphinx-design.min.css
similarity index 100%
rename from docs/source/_static/sphinx-design.min.css
rename to src/Elastic.Markdown/_static/sphinx-design.min.css
diff --git a/docs/source/_static/sphinx_highlight.js b/src/Elastic.Markdown/_static/sphinx_highlight.js
similarity index 100%
rename from docs/source/_static/sphinx_highlight.js
rename to src/Elastic.Markdown/_static/sphinx_highlight.js
diff --git a/docs/source/_static/togglebutton.css b/src/Elastic.Markdown/_static/togglebutton.css
similarity index 100%
rename from docs/source/_static/togglebutton.css
rename to src/Elastic.Markdown/_static/togglebutton.css
diff --git a/docs/source/_static/togglebutton.js b/src/Elastic.Markdown/_static/togglebutton.js
similarity index 100%
rename from docs/source/_static/togglebutton.js
rename to src/Elastic.Markdown/_static/togglebutton.js
diff --git a/src/docs-builder/Cli/Commands.cs b/src/docs-builder/Cli/Commands.cs
index 35eef9f7d..88dd4b2a5 100644
--- a/src/docs-builder/Cli/Commands.cs
+++ b/src/docs-builder/Cli/Commands.cs
@@ -7,7 +7,6 @@
using Documentation.Builder.Diagnostics;
using Documentation.Builder.Http;
using Elastic.Markdown;
-using Elastic.Markdown.Diagnostics;
using Elastic.Markdown.IO;
using Microsoft.Extensions.Logging;
diff --git a/src/docs-builder/Program.cs b/src/docs-builder/Program.cs
index e10c1d960..25d9d388c 100644
--- a/src/docs-builder/Program.cs
+++ b/src/docs-builder/Program.cs
@@ -4,6 +4,7 @@
using Actions.Core.Extensions;
using ConsoleAppFramework;
+using Documentation.Builder;
using Documentation.Builder.Cli;
using Elastic.Markdown.Diagnostics;
using Microsoft.Extensions.DependencyInjection;
@@ -28,6 +29,7 @@
services.AddSingleton();
services.AddSingleton();
+
await using var serviceProvider = services.BuildServiceProvider();
var logger = serviceProvider.GetRequiredService>();
ConsoleApp.ServiceProvider = serviceProvider;
diff --git a/src/docs-builder/docs-builder.csproj b/src/docs-builder/docs-builder.csproj
index d1788fbfc..945726a12 100644
--- a/src/docs-builder/docs-builder.csproj
+++ b/src/docs-builder/docs-builder.csproj
@@ -28,9 +28,11 @@
+
+
\ No newline at end of file