diff --git a/default_environment/templates/html/timestamp.dust b/default_environment/templates/html/timestamp.dust
index bea2c82..9bc5363 100644
--- a/default_environment/templates/html/timestamp.dust
+++ b/default_environment/templates/html/timestamp.dust
@@ -1 +1 @@
-!!!!!!!! timestamp
+{.source}
diff --git a/src/context/timestamp.rs b/src/context/timestamp.rs
index c5f15b7..84ac61f 100644
--- a/src/context/timestamp.rs
+++ b/src/context/timestamp.rs
@@ -1,16 +1,21 @@
use serde::Serialize;
+use super::macros::render;
use super::render_context::RenderContext;
use crate::error::CustomError;
use crate::intermediate::ITimestamp;
-use super::macros::rnoop;
-
#[derive(Debug, Serialize)]
#[serde(tag = "type")]
#[serde(rename = "timestamp")]
pub(crate) struct RenderTimestamp {
+ source: String,
post_blank: organic::types::PostBlank,
}
-rnoop!(RenderTimestamp, ITimestamp);
+render!(RenderTimestamp, ITimestamp, original, _render_context, {
+ Ok(RenderTimestamp {
+ source: original.source.clone(),
+ post_blank: original.post_blank,
+ })
+});
diff --git a/src/intermediate/timestamp.rs b/src/intermediate/timestamp.rs
index 3fcd45b..8df50f4 100644
--- a/src/intermediate/timestamp.rs
+++ b/src/intermediate/timestamp.rs
@@ -1,5 +1,24 @@
use super::macros::inoop;
+use super::macros::intermediate;
+use super::util::coalesce_whitespace;
use crate::error::CustomError;
use organic::types::StandardProperties;
-inoop!(ITimestamp, Timestamp);
+#[derive(Debug, Clone)]
+pub(crate) struct ITimestamp {
+ pub(crate) source: String,
+ pub(crate) post_blank: organic::types::PostBlank,
+}
+
+intermediate!(
+ ITimestamp,
+ &'orig organic::types::Timestamp<'parse>,
+ original,
+ _intermediate_context,
+ {
+ Ok(ITimestamp {
+ source: coalesce_whitespace(original.source).into_owned(),
+ post_blank: original.get_post_blank(),
+ })
+ }
+);