gazetta_render_ext/
date.rs1use gazetta_core::model::DateTime as DateModel;
17use gazetta_core::prelude::*;
18use horrorshow::html;
19use horrorshow::prelude::*;
20
21pub struct Date<'a>(pub &'a DateModel);
22
23impl<'a> RenderOnce for Date<'a> {
24 fn render_once(self, tmpl: &mut TemplateBuffer) {
25 self.render(tmpl)
26 }
27}
28
29impl<'a> RenderMut for Date<'a> {
30 fn render_mut(&mut self, tmpl: &mut TemplateBuffer) {
31 self.render(tmpl)
32 }
33}
34
35impl<'a> Render for Date<'a> {
36 fn render(&self, tmpl: &mut TemplateBuffer) {
37 tmpl << html! {
38 time(datetime = self.0.to_rfc3339(), title = format_args!("{}", self.0.format("%B %d, %Y"))) {
39 span(class="date-year") : format_args!("{:04}", self.0.year());
40 span(class="date-separator") : "-";
41 span(class="date-month") : format_args!("{:02}", self.0.month());
42 span(class="date-separator") : "-";
43 span(class="date-day") : format_args!("{:02}", self.0.day());
44 }
45 }
46 }
47}