diff options
| author | unwox <me@unwox.com> | 2025-04-28 12:07:48 +0600 |
|---|---|---|
| committer | unwox <me@unwox.com> | 2025-04-28 12:11:38 +0600 |
| commit | d8039a77d582f696ab98b2a6d02ce924fbacfa41 (patch) | |
| tree | 75fa7503747d0eca275685ae9f752773ed0d52ec | |
| parent | 334367bac51fda43952fe24c1d38048e39f67be9 (diff) | |
improve workflow around texts
| -rw-r--r-- | pages/index.fnl | 65 |
1 files changed, 49 insertions, 16 deletions
diff --git a/pages/index.fnl b/pages/index.fnl index d6a1d2e..4d8af80 100644 --- a/pages/index.fnl +++ b/pages/index.fnl @@ -1,6 +1,52 @@ (local templates (require :templates)) (local html (require :vendor.html)) +(fn improve-typography [text] + (var result + (-> text + (string.gsub "(\n|\r)" " ") + (string.gsub "%s+" " "))) + (let [nbsp-replaces ["на" "На" "и" "И" "в" "В" "о" "О" "с" "С" "со" "Со" "до" + "До" "для" "Для" "а" "А" "но" "Но" "на" "На" "я" "Я" "мы" + "Мы" "над" "Над" "под" "Под" "г." "Г." "ул." "Ул." + "д." "Д." "%d+"]] + (each [_ v (ipairs nbsp-replaces)] + (set result + (-> result + (string.gsub (.. "( " v ") ") "%1 ") + (string.gsub (.. "(%s" v ") ") " %1 ") + (string.gsub (.. "^(" v ") ") "%1 "))))) + result) + +(fn test-improve-typography [] + (assert (= (improve-typography "Я лежу на пляжу!") + "Я лежу на пляжу!")) + (assert (= (improve-typography "500 рублей мы сняли со счета!") + "500 рублей мы сняли со счета!")) + (assert (= (improve-typography "500 рублей мы + сняли со счета!") + "500 рублей мы сняли со счета!"))) + +(local texts { + :address + (improve-typography + "г. Омск, ул. Пушкина, д. 133/9, этаж 2. Вход с крыльца Магнита, дверь + слева, домофон 4") + + :individual-ceremony + (improve-typography + "Индивидуальная чайная церемония: мастер готовит для вас чай на ваш выбор. + О времени встречи договариваемся. Стоимость 1000 рублей с человека, + до 5 человек.") + + :weekly-meetings + (improve-typography + "Еженедельное мероприятие: каждую субботу в 15:00 мы собираемся и пьем + чай из нашей коллекции. Для посещения необходима запись в комментариях + под соответствующим постом в нашей группе в телеграме. Стоимость 500 + рублей с человека.") +}) + (fn pick-gallery-photo [list] (let [chosen (. list (math.random (# list)))] [:div {} @@ -19,29 +65,16 @@ [:a {:href "https://vk.com/whitetoadtea"} "вконтакте"]]] [:article {:class "article"} [:h2 {} "Адрес"] - [:p {} - [:NO-ESCAPE - (.. - "г. Омск, ул. Пушкина, д. 133/9, этаж 2. " - "Вход с крыльца Магнита, дверь слева, домофон 4")]]] + [:p {} [:NO-ESCAPE texts.address]]] [:article {:class "article"} [:h2 {} "Форматы участия"] [:ol {} [:li {} - [:NO-ESCAPE - (.. - "Индивидуальная чайная церемония: мастер готовит для вас чай " - "на ваш выбор. О времени встречи договариваемся. " - "Стоимость 1000 рублей с человека, до 5 человек.")] + [:NO-ESCAPE texts.individual-ceremony] [:div {:class "button-wrapper"} [:a {:href "https://t.me/whitetoadvlad" :class "button"} "Записаться"]]] [:li {} - [:NO-ESCAPE - (.. - "Еженедельное мероприятие: каждую субботу в 15:00 мы собираемся " - "и пьем чай из нашей коллекции. Для посещения необходима запись " - "в комментариях под соответствующим постом в нашей группе " - "в телеграме. Стоимость 500 рублей с человека.")] + [:NO-ESCAPE texts.weekly-meetings] [:div {:class "button-wrapper"} [:a {:href "https://t.me/whitetoadtea" :class "button"} "Подписаться"]]]]]] [:div {:class "gallery"} |
