Files
Cell 5f1e79f49c feat(i18n): add RTL support for Arabic, Persian and Urdu (#831)
* 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
2026-08-24 00:22:34 +08:00

58 lines
2.5 KiB
HTML

{{- /* Recently updated pages for archives, section and term list */ -}}
{{- $kindMap := dict
"home" "archives"
"section" "section"
"term" "list"
-}}
{{- $recentlyUpdatedConfig := .Site.Params.recently_updated -}}
{{- $scope := index $kindMap .Kind -}}
{{- $scopeEnable := index $recentlyUpdatedConfig $scope | default false -}}
{{- if $scopeEnable | and (eq $.Paginator.PageNumber 1) -}}
{{- $hasTitle := false }}
{{- $postCount := 0 -}}
{{- $maxPostCount := $recentlyUpdatedConfig.max_count | default 10 -}}
{{- $days := $recentlyUpdatedConfig.days | default 30 -}}
{{- $dateformat := (index .Site.Params $scope).date_format | default "01-02" -}}
{{- $scopePages := .Pages -}}
{{- if eq $scope "archives" -}}
{{- $scopePages = .Site.Store.Get "mainSectionPages" -}}
{{- end -}}
{{- $scopePages = where $scopePages.ByLastmod.Reverse "Section" "!=" "" -}}
{{- $hiddenAdapters := .Param "hidden_adapters" | default false -}}
{{- if $hiddenAdapters -}}
{{- $scopePages = where $scopePages "File.IsContentAdapter" "ne" true -}}
{{- end -}}
{{- range first $maxPostCount $scopePages -}}
{{- if gt (add .Lastmod.Unix (mul 86900 $days)) now.Unix -}}
{{- if ne .Lastmod.Unix .Date.Unix }}
{{- $postCount = add $postCount 1 -}}
{{- if eq $hasTitle false -}}
<h2 class="group-title">
{{- dict "Class" "fa-regular fa-calendar-check me-1" | partial "plugin/icon.html" -}}
{{- T "section.recentlyUpdated" -}}
</h2>
{{- $hasTitle = true -}}
{{- end -}}
<article class="archive-item">
<a href="{{ .RelPermalink }}" class="archive-item-link">
{{- $repost := .Params.repost | default dict -}}
{{- if eq $repost.enable true -}}
{{- dict "Class" "fa-solid fa-retweet text-success me-1" | partial "plugin/icon.html" -}}
{{- end -}}
{{- if eq $scope "archives" -}}
{{- cond (.Param "capitalize_titles") (title .Title) .Title -}}
{{- else -}}
{{- cond (.Param "capitalize_titles") (title .LinkTitle) .LinkTitle -}}
{{- end -}}
</a>
<span class="archive-item-date" title='{{ "2006-01-02 15:04:05" | .Lastmod.Format }}'>
{{- with .Lastmod | dateFormat $dateformat -}}
{{- dict "Date" . | T "single.updatedOnDate" -}}
{{- end -}}
</span>
</article>
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}