diff --git a/assets/language-direction.js b/assets/language-direction.js
new file mode 100644
index 0000000..05698e3
--- /dev/null
+++ b/assets/language-direction.js
@@ -0,0 +1,8 @@
+document.querySelectorAll('.book-article p').forEach(articleElement => {
+ const text = articleElement.textContent.trim();
+ if (/[\u0590-\u05FF]/.test(text)) {
+ articleElement.setAttribute("dir", "rtl");
+ } else {
+ articleElement.setAttribute("dir", "ltr");
+ }
+});
\ No newline at end of file
diff --git a/layouts/_partials/docs/brand.html b/layouts/partials/docs/brand.html
similarity index 100%
rename from layouts/_partials/docs/brand.html
rename to layouts/partials/docs/brand.html
diff --git a/layouts/_partials/docs/comments.html b/layouts/partials/docs/comments.html
similarity index 100%
rename from layouts/_partials/docs/comments.html
rename to layouts/partials/docs/comments.html
diff --git a/layouts/_partials/docs/date.html b/layouts/partials/docs/date.html
similarity index 100%
rename from layouts/_partials/docs/date.html
rename to layouts/partials/docs/date.html
diff --git a/layouts/_partials/docs/footer.html b/layouts/partials/docs/footer.html
similarity index 100%
rename from layouts/_partials/docs/footer.html
rename to layouts/partials/docs/footer.html
diff --git a/layouts/_partials/docs/header.html b/layouts/partials/docs/header.html
similarity index 100%
rename from layouts/_partials/docs/header.html
rename to layouts/partials/docs/header.html
diff --git a/layouts/_partials/docs/html-head-favicon.html b/layouts/partials/docs/html-head-favicon.html
similarity index 100%
rename from layouts/_partials/docs/html-head-favicon.html
rename to layouts/partials/docs/html-head-favicon.html
diff --git a/layouts/_partials/docs/html-head-title.html b/layouts/partials/docs/html-head-title.html
similarity index 100%
rename from layouts/_partials/docs/html-head-title.html
rename to layouts/partials/docs/html-head-title.html
diff --git a/layouts/_partials/docs/html-head.html b/layouts/partials/docs/html-head.html
similarity index 50%
rename from layouts/_partials/docs/html-head.html
rename to layouts/partials/docs/html-head.html
index 6a6d0ec..39cfb78 100644
--- a/layouts/_partials/docs/html-head.html
+++ b/layouts/partials/docs/html-head.html
@@ -6,7 +6,7 @@
{{- with .Page.Params.BookHref -}}
-
+
{{- end -}}
{{- template "_internal/opengraph.html" . -}}
@@ -19,29 +19,39 @@
{{- range .Translations }}
-
+
{{- end -}}
-{{- $styles := resources.Get "book.scss" | resources.ExecuteAsTemplate "book.scss" . | css.Sass | resources.Minify | resources.Fingerprint }}
+{{- $styles := resources.Get "book.scss" | resources.ExecuteAsTemplate "book.scss" . | css.Sass | resources.Minify |
+resources.Fingerprint }}
{{- if default true .Site.Params.BookSearch -}}
- {{- $searchJSFile := printf "%s.search.js" .Language.Lang }}
- {{- $searchJS := resources.Get "search.js" | resources.ExecuteAsTemplate $searchJSFile . | resources.Minify | resources.Fingerprint }}
-
-
+{{- $searchJSFile := printf "%s.search.js" .Language.Lang }}
+{{- $searchJS := resources.Get "search.js" | resources.ExecuteAsTemplate $searchJSFile . | resources.Minify |
+resources.Fingerprint }}
+
+
{{ end -}}
+{{- $directionJSFile := printf "%s.language-direction.js" .Language.Lang }}
+{{- $directionJS := resources.Get "language-direction.js" | resources.ExecuteAsTemplate $directionJSFile . |
+resources.Minify | resources.Fingerprint }}
+
+
{{- if .Site.Params.BookServiceWorker -}}
- {{- $swJS := resources.Get "sw-register.js" | resources.ExecuteAsTemplate "sw.js" . | resources.Minify | resources.Fingerprint }}
-
+{{- $swJS := resources.Get "sw-register.js" | resources.ExecuteAsTemplate "sw.js" . | resources.Minify |
+resources.Fingerprint }}
+
{{ end -}}
{{- template "_internal/google_analytics.html" . -}}
{{- with .OutputFormats.Get "rss" -}}
- {{ printf `` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }}
+{{ printf `
+` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }}
{{ end -}}
{{ "" | safeHTML }}
{{- define "integrity" -}}
- {{- if (urls.Parse .Permalink).Host -}}
- integrity="{{ .Data.Integrity }}" crossorigin="anonymous"
- {{- end -}}
+{{- if (urls.Parse .Permalink).Host -}}
+integrity="{{ .Data.Integrity }}" crossorigin="anonymous"
{{- end -}}
+{{- end -}}
\ No newline at end of file
diff --git a/layouts/_partials/docs/inject/body.html b/layouts/partials/docs/inject/body.html
similarity index 100%
rename from layouts/_partials/docs/inject/body.html
rename to layouts/partials/docs/inject/body.html
diff --git a/layouts/_partials/docs/inject/content-after.html b/layouts/partials/docs/inject/content-after.html
similarity index 100%
rename from layouts/_partials/docs/inject/content-after.html
rename to layouts/partials/docs/inject/content-after.html
diff --git a/layouts/_partials/docs/inject/content-before.html b/layouts/partials/docs/inject/content-before.html
similarity index 100%
rename from layouts/_partials/docs/inject/content-before.html
rename to layouts/partials/docs/inject/content-before.html
diff --git a/layouts/_partials/docs/inject/footer.html b/layouts/partials/docs/inject/footer.html
similarity index 100%
rename from layouts/_partials/docs/inject/footer.html
rename to layouts/partials/docs/inject/footer.html
diff --git a/layouts/_partials/docs/inject/head.html b/layouts/partials/docs/inject/head.html
similarity index 100%
rename from layouts/_partials/docs/inject/head.html
rename to layouts/partials/docs/inject/head.html
diff --git a/layouts/_partials/docs/inject/menu-after.html b/layouts/partials/docs/inject/menu-after.html
similarity index 100%
rename from layouts/_partials/docs/inject/menu-after.html
rename to layouts/partials/docs/inject/menu-after.html
diff --git a/layouts/_partials/docs/inject/menu-before.html b/layouts/partials/docs/inject/menu-before.html
similarity index 100%
rename from layouts/_partials/docs/inject/menu-before.html
rename to layouts/partials/docs/inject/menu-before.html
diff --git a/layouts/_partials/docs/inject/toc-after.html b/layouts/partials/docs/inject/toc-after.html
similarity index 100%
rename from layouts/_partials/docs/inject/toc-after.html
rename to layouts/partials/docs/inject/toc-after.html
diff --git a/layouts/_partials/docs/inject/toc-before.html b/layouts/partials/docs/inject/toc-before.html
similarity index 100%
rename from layouts/_partials/docs/inject/toc-before.html
rename to layouts/partials/docs/inject/toc-before.html
diff --git a/layouts/_partials/docs/languages.html b/layouts/partials/docs/languages.html
similarity index 100%
rename from layouts/_partials/docs/languages.html
rename to layouts/partials/docs/languages.html
diff --git a/layouts/_partials/docs/links/commit.html b/layouts/partials/docs/links/commit.html
similarity index 100%
rename from layouts/_partials/docs/links/commit.html
rename to layouts/partials/docs/links/commit.html
diff --git a/layouts/_partials/docs/links/edit.html b/layouts/partials/docs/links/edit.html
similarity index 100%
rename from layouts/_partials/docs/links/edit.html
rename to layouts/partials/docs/links/edit.html
diff --git a/layouts/_partials/docs/menu-filetree.html b/layouts/partials/docs/menu-filetree.html
similarity index 100%
rename from layouts/_partials/docs/menu-filetree.html
rename to layouts/partials/docs/menu-filetree.html
diff --git a/layouts/_partials/docs/menu-hugo.html b/layouts/partials/docs/menu-hugo.html
similarity index 100%
rename from layouts/_partials/docs/menu-hugo.html
rename to layouts/partials/docs/menu-hugo.html
diff --git a/layouts/_partials/docs/menu.html b/layouts/partials/docs/menu.html
similarity index 100%
rename from layouts/_partials/docs/menu.html
rename to layouts/partials/docs/menu.html
diff --git a/layouts/_partials/docs/post-meta.html b/layouts/partials/docs/post-meta.html
similarity index 100%
rename from layouts/_partials/docs/post-meta.html
rename to layouts/partials/docs/post-meta.html
diff --git a/layouts/_partials/docs/search.html b/layouts/partials/docs/search.html
similarity index 100%
rename from layouts/_partials/docs/search.html
rename to layouts/partials/docs/search.html
diff --git a/layouts/_partials/docs/taxonomy.html b/layouts/partials/docs/taxonomy.html
similarity index 100%
rename from layouts/_partials/docs/taxonomy.html
rename to layouts/partials/docs/taxonomy.html
diff --git a/layouts/_partials/docs/title.html b/layouts/partials/docs/title.html
similarity index 100%
rename from layouts/_partials/docs/title.html
rename to layouts/partials/docs/title.html
diff --git a/layouts/_partials/docs/toc.html b/layouts/partials/docs/toc.html
similarity index 100%
rename from layouts/_partials/docs/toc.html
rename to layouts/partials/docs/toc.html
diff --git a/layouts/_shortcodes/button.html b/layouts/shortcodes/button.html
similarity index 100%
rename from layouts/_shortcodes/button.html
rename to layouts/shortcodes/button.html
diff --git a/layouts/_shortcodes/columns.html b/layouts/shortcodes/columns.html
similarity index 100%
rename from layouts/_shortcodes/columns.html
rename to layouts/shortcodes/columns.html
diff --git a/layouts/_shortcodes/details.html b/layouts/shortcodes/details.html
similarity index 100%
rename from layouts/_shortcodes/details.html
rename to layouts/shortcodes/details.html
diff --git a/layouts/_shortcodes/hint.html b/layouts/shortcodes/hint.html
similarity index 100%
rename from layouts/_shortcodes/hint.html
rename to layouts/shortcodes/hint.html
diff --git a/layouts/_shortcodes/html.html b/layouts/shortcodes/html.html
similarity index 100%
rename from layouts/_shortcodes/html.html
rename to layouts/shortcodes/html.html
diff --git a/layouts/_shortcodes/i18n.html b/layouts/shortcodes/i18n.html
similarity index 100%
rename from layouts/_shortcodes/i18n.html
rename to layouts/shortcodes/i18n.html
diff --git a/layouts/_shortcodes/katex.html b/layouts/shortcodes/katex.html
similarity index 100%
rename from layouts/_shortcodes/katex.html
rename to layouts/shortcodes/katex.html
diff --git a/layouts/_shortcodes/mermaid.html b/layouts/shortcodes/mermaid.html
similarity index 100%
rename from layouts/_shortcodes/mermaid.html
rename to layouts/shortcodes/mermaid.html
diff --git a/layouts/_shortcodes/section.html b/layouts/shortcodes/section.html
similarity index 100%
rename from layouts/_shortcodes/section.html
rename to layouts/shortcodes/section.html
diff --git a/layouts/_shortcodes/tab.html b/layouts/shortcodes/tab.html
similarity index 100%
rename from layouts/_shortcodes/tab.html
rename to layouts/shortcodes/tab.html
diff --git a/layouts/_shortcodes/tabs.html b/layouts/shortcodes/tabs.html
similarity index 100%
rename from layouts/_shortcodes/tabs.html
rename to layouts/shortcodes/tabs.html