From aa0eab9362b4ae674f67a3770eab1132099f800f Mon Sep 17 00:00:00 2001 From: barziv Date: Mon, 19 May 2025 08:31:47 +0300 Subject: [PATCH] add dynamic direction decision for each paragraph --- assets/language-direction.js | 8 +++++++ layouts/partials/docs/html-head.html | 36 ++++++++++++++++++---------- 2 files changed, 31 insertions(+), 13 deletions(-) create mode 100644 assets/language-direction.js 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/html-head.html b/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