(.module: [lux (#- or and) [data ["." text ["%" format (#+ format)]] [collection ["." list ("#\." functor)]]]]) (def: #export (quote text) (-> Text Text) (format text.double-quote text text.double-quote)) (def: #export (block content) (-> Text Text) (format content text.new-line text.new-line)) (def: #export (plural singular) (-> Text Text) (format singular "(s)")) (def: #export (sentence content) (-> Text Text) (format content ".")) (def: #export paragraph (-> (List Text) Text) (|>> (list\map ..sentence) (text.join-with text.new-line))) (template [ ] [(def: #export (-> (List Text) Text) (text.join-with (format ", " " ")))] [or "or"] [and "and"] [and/or "and/or"] ) (type: #export Section {#title Text #content Text}) (def: #export (section value) (-> Section Text) (format (block (get@ #title value)) (get@ #content value)))