mirror of
https://github.com/hugo-fixit/FixIt.git
synced 2026-08-24 15:28:57 +00:00
5f1e79f49c
* feat(i18n): add RTL support and Arabic/Persian translations - Add `dir` attribute to `<html>` via `.Site.Language.Direction` - Convert physical CSS properties to logical properties across ~30 SCSS files - Add `[dir="rtl"]` overrides for elements that need physical direction (code blocks, translate, icons) - Add `logical-direction.html` template function for config value normalization - Add RTL-aware deprecation warnings for old "left"/"right" config values - Rename github corner, TOC position, reading progress config values from "left"/"right" to "start"/"end" - Add Arabic (ar.toml) and Persian (fa.toml) i18n translation files - Update multilingual documentation with RTL language configuration guide * feat(shortcodes): add RTL support for tabs and refactor border-radius mixin - Rename tabs placement values from "left"/"right" to "start"/"end" with deprecation warnings - Convert all physical directional properties in tabs SCSS to logical properties - Add RTL overrides for translate and box-shadow in tabs - Add "start"/"end" support to border-radius mixin using CSS logical properties - Refactor fixit-decryptor to use border-radius(start/end) mixin * feat(assets): add RTL support for toc-dialog slide animation The mobile toc-dialog always slid in from the right (100vw). In RTL mode it should slide from the left (-100vw), matching the border-inline-start/margin-inline-end anchoring. * feat(assets): add RTL support for post-tag comma separator * refactor(assets): extract RTL styles into dedicated _rtl.scss * feat(assets): add RTL support for theme-switch and directional icons * feat(i18n): add RTL support and improve i18n - Add RTL typography corrections for Arabic-script languages (:lang(ar/fa/ur)) - Remove fa-list-ol from RTL flip list (numbers get mirrored) - Add Urdu translation file (i18n/ur.toml) - Rename noMoretTranslations to noTranslations and simplify all translations - Update json-viewer-element from 1.0.4 to 1.0.6 - Add RTL test posts (index.en.md, index.ar.md) - Fix layout partials for RTL support See https://fixit.lruihao.cn/docs/content-management/introduction/#rtl-language-support
162 lines
7.2 KiB
HTML
162 lines
7.2 KiB
HTML
{{- /* Deprecated parameter detection */ -}}
|
|
{{- $warns := slice -}}
|
|
{{- $errors := slice -}}
|
|
|
|
{{- with .Site.Params.externalIcon -}}
|
|
{{- $warns = $warns | append "The parameter `params.externalIcon` is deprecated since v1.0.0, use `params.link.external_icon` instead." -}}
|
|
{{- end -}}
|
|
|
|
{{- /* params.page structural migration warnings */ -}}
|
|
{{- $deprecatedPageKeys := slice
|
|
"capitalize_titles" "summary_plainify" "author_avatar"
|
|
"hidden_from_home_page" "hidden_from_search" "hidden_from_related" "hidden_from_feed"
|
|
"twemoji" "lightgallery" "ruby" "fraction" "fontawesome" "license"
|
|
"page_style" "auto_bookmark" "show_lastmod" "word_count" "reading_time" "end_flag"
|
|
"instant_page" "collection_list" "collection_navigation" "edit_url" "source_url"
|
|
"featured_image" "featured_image_preview"
|
|
"toc" "expiration_reminder" "heading" "math" "mapbox"
|
|
"related" "reward" "share" "comment" "library" "seo"
|
|
-}}
|
|
{{- $onlyFrontMatters := slice "subtitle" "featured_image" "featured_image_preview" "repost" -}}
|
|
{{- range $deprecatedPageKeys -}}
|
|
{{- $newKey := . -}}
|
|
{{- $oldKey := replace . "_" "" -}}
|
|
{{- $oldDisplay := partial "function/camel-case.html" $newKey -}}
|
|
{{- if (in $.Site.Params.page $oldKey) | and (not (in $onlyFrontMatters $newKey)) -}}
|
|
{{- $warns = $warns | append (printf "The parameter `params.page.%s` has been removed since v1.0.0, use `params.%s` instead." $oldDisplay $newKey) -}}
|
|
{{- end -}}
|
|
{{- if (in $.Site.Params.page $oldKey) | and (in $onlyFrontMatters $newKey) -}}
|
|
{{- $warns = $warns | append (printf "The parameter `params.page.%s` has been removed since v1.0.0, use front matter parameter `%s` instead." $oldDisplay $newKey) -}}
|
|
{{- end -}}
|
|
{{- if (in $.Page.Params $oldKey) | and (in $newKey "_") -}}
|
|
{{- $warns = $warns | append (printf "Front matter parameter `%s` is deprecated since v1.0.0, use `%s` instead." $oldDisplay $newKey) -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- /* camelCase → snake_case param/section rename warnings */ -}}
|
|
{{- $deprecatedKeys := slice
|
|
"default_theme"
|
|
"date_format"
|
|
"with_site_title"
|
|
"disable_theme_inject"
|
|
"title_delimiter"
|
|
"index_with_subtitle"
|
|
"enable_translation_merge"
|
|
"tag_cloud"
|
|
"post_chat"
|
|
"post_summary"
|
|
"git_info"
|
|
"back_to_top"
|
|
"reading_progress"
|
|
"github_corner"
|
|
"recently_updated"
|
|
"json_viewer"
|
|
"custom_partials"
|
|
"task_list"
|
|
"repo_version"
|
|
-}}
|
|
{{- range $deprecatedKeys -}}
|
|
{{- $newKey := . -}}
|
|
{{- $oldKey := replace . "_" "" -}}
|
|
{{- $oldDisplay := partial "function/camel-case.html" $newKey -}}
|
|
{{- with index $.Site.Params $oldKey -}}
|
|
{{- $warns = $warns | append (printf "The parameter `params.%s` has been removed since v1.0.0, use `params.%s` instead." $oldDisplay $newKey) -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- /* Nested camelCase key rename warnings */ -}}
|
|
{{- $deprecatedNestedKeys := dict
|
|
"search" (slice "content_length" "absolute_url" "max_result_length" "snippet_length" "highlight_tag")
|
|
"search.algolia" (slice "app_id" "search_key")
|
|
"header" (slice "desktop_mode" "mobile_mode")
|
|
"breadcrumb" (slice "show_home")
|
|
"navigation" (slice "in_section")
|
|
"footer.powered" (slice "hugo_logo" "theme_logo")
|
|
"footer" (slice "site_time")
|
|
"home.profile" (slice "only_first_page" "gravatar_email" "avatar_url" "avatar_menu")
|
|
"home.posts" (slice "image_preview")
|
|
"watermark" (slice "row_spacing" "col_spacing" "font_size" "font_family")
|
|
"busuanzi" (slice "site_views" "page_views")
|
|
"image" (slice "cache_remote" "black_list")
|
|
"mermaid" (slice "security_level" "font_family" "layout_loaders")
|
|
"codeblock" (slice "wrapper_class" "max_shown_lines" "line_nos_toggler" "line_wrap_toggler")
|
|
"filetree" (slice "folder_slash" "ignore_list")
|
|
"math.katex" (slice "copy_tex" "throw_on_error" "error_color")
|
|
"math.mathjax.options" (slice "enable_menu" "skip_html_tags" "ignore_html_class")
|
|
"post_summary" (slice "post_url" "word_limit" "typing_animate" "beginning_text" "loading_text")
|
|
-}}
|
|
{{- range $sectionPath, $keys := $deprecatedNestedKeys -}}
|
|
{{- $parts := split $sectionPath "." -}}
|
|
{{- $section := $.Site.Params -}}
|
|
{{- $valid := true -}}
|
|
{{- range $parts -}}
|
|
{{- if reflect.IsMap $section -}}
|
|
{{- $section = index $section . -}}
|
|
{{- else -}}
|
|
{{- $valid = false -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- if $valid | and (reflect.IsMap $section) -}}
|
|
{{- range $keys -}}
|
|
{{- $newKey := . -}}
|
|
{{- $oldKey := replace . "_" "" -}}
|
|
{{- $oldDisplay := partial "function/camel-case.html" $newKey -}}
|
|
{{- with index $section $oldKey -}}
|
|
{{- $warns = $warns | append (printf "The parameter `params.%s.%s` has been removed since v1.0.0, use `params.%s.%s` instead." $sectionPath $oldDisplay $sectionPath $newKey) -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- /* Front matter key migration warnings */ -}}
|
|
{{- with $.Page.Params.link_guard -}}
|
|
{{- $warns = $warns | append "Front matter parameter `link_guard` has been removed since v1.0.0, use `link.guard` instead." -}}
|
|
{{- end -}}
|
|
|
|
{{- if fileExists "assets/css/_custom.scss" -}}
|
|
{{- $warns = $warns | append "The file `assets/css/_custom.scss` is deprecated. Please move your custom styles to `assets/scss/custom.scss`. See: https://fixit.lruihao.cn/docs/advanced/" -}}
|
|
{{- end -}}
|
|
|
|
{{- if fileExists "assets/css/_override.scss" -}}
|
|
{{- $warns = $warns | append "The file `assets/css/_override.scss` is deprecated. Use `[params.appearance]` in your site configuration instead. See: https://fixit.lruihao.cn/docs/advanced/" -}}
|
|
{{- end -}}
|
|
|
|
{{- if fileExists "assets/scss/override.scss" -}}
|
|
{{- $warns = $warns | append "The file `assets/scss/override.scss` is deprecated. Use `[params.appearance]` in your site configuration instead. See: https://fixit.lruihao.cn/docs/advanced/" -}}
|
|
{{- end -}}
|
|
|
|
{{- /* Deprecated "left"/"right" position values → "start"/"end" */ -}}
|
|
{{- $positionParams := dict
|
|
"github_corner" (slice "position")
|
|
"toc" (slice "position")
|
|
"reading_progress" (slice "start")
|
|
-}}
|
|
{{- range $section, $keys := $positionParams -}}
|
|
{{- $sec := index $.Site.Params $section -}}
|
|
{{- if reflect.IsMap $sec -}}
|
|
{{- range $keys -}}
|
|
{{- $val := index $sec . -}}
|
|
{{- if or (eq $val "left") (eq $val "right") -}}
|
|
{{- $newVal := cond (eq $val "left") "start" "end" -}}
|
|
{{- $warns = $warns | append (printf "The value \"%v\" of `params.%v.%v` is deprecated, use \"%v\" instead." $val $section . $newVal) -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- if fileExists "assets/css/_variables.scss" -}}
|
|
{{- $warns = $warns | append "The file `assets/css/_variables.scss` is deprecated. Please move your variables to `assets/scss/_variables.scss`. See: https://fixit.lruihao.cn/docs/advanced/" -}}
|
|
{{- end -}}
|
|
|
|
{{- if fileExists "assets/js/_custom.js" -}}
|
|
{{- $warns = $warns | append "The file `assets/js/_custom.js` is deprecated. Please move your custom scripts to `assets/js/custom.ts` or `assets/js/custom.js`. See: https://fixit.lruihao.cn/docs/advanced/" -}}
|
|
{{- end -}}
|
|
|
|
{{- if len $warns -}}
|
|
{{- warnf "[FixIt] deprecation warnings (%v):\n • %v\n\n" (hugo.Store.Get "version") (delimit $warns "\n • ") -}}
|
|
{{- end -}}
|
|
|
|
{{- if len $errors -}}
|
|
{{- errorf "[FixIt] deprecation errors (%v):\n • %v\n\n" (hugo.Store.Get "version") (delimit $errors "\n • ") -}}
|
|
{{- end -}}
|