(.using [library [lux (.except or and) [data ["[0]" text ["%" format (.only format)]] [collection ["[0]" list ("[1]#[0]" functor)]]]]]) (def: .public (quote text) (-> Text Text) (format text.double_quote text text.double_quote)) (def: .public (block content) (-> Text Text) (format content text.new_line text.new_line)) (def: .public (plural singular) (-> Text Text) (format singular "(s)")) (def: .public (sentence content) (-> Text Text) (format content ".")) (def: .public paragraph (-> (List Text) Text) (|>> (list#each ..sentence) (text.interposed text.new_line))) (template [ ] [(def: .public (-> (List Text) Text) ... https://en.wikipedia.org/wiki/Serial_comma (text.interposed (format ", " " ")))] [or "or"] [and "and"] [and/or "and/or"] ) (type: .public Section (Record [#title Text #content Text])) (def: .public (section value) (-> Section Text) (format (..block (the #title value)) (the #content value)))