summaryrefslogtreecommitdiff
path: root/test.fnl
diff options
context:
space:
mode:
Diffstat (limited to 'test.fnl')
-rw-r--r--test.fnl113
1 files changed, 113 insertions, 0 deletions
diff --git a/test.fnl b/test.fnl
new file mode 100644
index 0000000..df0df6d
--- /dev/null
+++ b/test.fnl
@@ -0,0 +1,113 @@
+(import-macros {:compile-html <>} :macros)
+(local fennel (require :vendor.fennel))
+
+(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 (.. "(&nbsp;" v ") ") "%1&nbsp;")
+ (string.gsub (.. "(%s" v ") ") " %1&nbsp;")
+ (string.gsub (.. "^(" v ") ") "%1&nbsp;")))))
+ result)
+
+(fn header [current-path]
+ (local logo
+ (<> [:img {:class "logo" :src "/static/logo.svg"
+ :alt "Белая жаба в мультяшном стиле с чайником на голове"}]))
+
+ (<> [:article {:class "article"}
+ (if (~= current-path "") (<> [:a {:href "/"} logo]) logo)
+ [:h1 {} "Чайная комната «Белая&nbsp;жаба»"]
+ [:nav {}
+ [:a {:href "/shop" :class "active"}
+ "магазин"]
+ [:span {} "~"]
+ [:a {:href "https://t.me/whitetoadtea"}
+ "телеграм"]
+ [:span {} "~"]
+ [:a {:href "https://vk.com/whitetoadtea"}
+ "вконтакте"]]]))
+
+(local texts {
+ :address
+ (improve-typography
+ "г. Омск, ул. Пушкина, д. 133/9, этаж 2. Вход с крыльца Магнита, дверь
+ слева, домофон 4")
+
+ :individual-ceremony
+ (improve-typography
+ "Индивидуальная чайная церемония: мастер готовит для вас чай на ваш выбор.
+ О времени встречи договариваемся. Стоимость 1000 рублей с человека,
+ до 5 человек.")
+
+ :weekly-meetings
+ (improve-typography
+ "Еженедельное мероприятие: каждую субботу в 15:00 мы собираемся и пьем
+ чай из нашей коллекции. Для посещения необходима запись в комментариях
+ под соответствующим постом в нашей группе в телеграме. Стоимость 500
+ рублей с человека.")})
+
+(print
+ (<> [:div (fn [] {:huemoe nil :hello "world" :required true}) "whatever"]))
+
+; (macrodebug
+; (<> [:div (fn [] {:hello "world" :required true}) "whatever"]))
+
+; (macrodebug
+; (<>
+; [:div {:class "side"}
+; (unpack [])]))
+
+; (macrodebug
+; (<>
+; [:div {:class "side"}
+; [:article {:class "article"}
+; (header "")
+; [:h2 {} "Адрес"]
+; [:p {} "test!"]]]))
+
+; (print (<>
+; [:img {:class "side"}]))
+
+; (local hello {:world "test"})
+
+; (print
+; (fennel.view
+; [(<> [:div {:class "first"} "11111"])
+; (<> [:div {:class "second"} "22222"])]))
+
+; (print (<>
+; [:div {:class "side"}
+; [:article {:class "article"}
+; (header "")
+; [(if true :h2 :h3) {(if true "hello" "world") "test"} "Адрес"]
+; [:else {:test hello.world} "Адрес"]
+; [:NO-ESCAPE "<script>works!</script>"]
+; [:p {} "<script>doesnt work!</script>"]]]))
+
+; (macrodebug
+; (<>
+; [:div {:class "side"}
+; (header "")
+; [:article {:class "article"}
+; [:h2 {} "Адрес"]
+; [:p {} [:NO-ESCAPE texts.address]]]
+; [:article {:class "article"}
+; [:h2 {} "Форматы участия"]
+; [:ol {}
+; [:li {}
+; [:NO-ESCAPE texts.individual-ceremony]
+; [:div {:class "button-wrapper"}
+; [:a {:href "https://t.me/whitetoadvlad" :class "button"} "Записаться"]]]
+; [:li {}
+; [:NO-ESCAPE texts.weekly-meetings]
+; [:div {:class "button-wrapper"}
+; [:a {:href "https://t.me/whitetoadtea" :class "button"} "Подписаться"]]]]]]))