From cb5d13109757b21e24f47670585c9de217088579 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Sat, 23 Dec 2023 19:12:17 -0500 Subject: [PATCH] Add support for plain links. --- .../templates/html/plain_link.dust | 2 +- src/context/plain_link.rs | 11 +++++++--- src/intermediate/plain_link.rs | 21 +++++++++++++++++-- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/default_environment/templates/html/plain_link.dust b/default_environment/templates/html/plain_link.dust index 7564de4..17faf3e 100644 --- a/default_environment/templates/html/plain_link.dust +++ b/default_environment/templates/html/plain_link.dust @@ -1 +1 @@ -!!!!!!!! plain_link +{.raw_link} diff --git a/src/context/plain_link.rs b/src/context/plain_link.rs index 897206f..e01f20c 100644 --- a/src/context/plain_link.rs +++ b/src/context/plain_link.rs @@ -1,16 +1,21 @@ use serde::Serialize; +use super::macros::render; use super::render_context::RenderContext; use crate::error::CustomError; use crate::intermediate::IPlainLink; -use super::macros::rnoop; - #[derive(Debug, Serialize)] #[serde(tag = "type")] #[serde(rename = "plain_link")] pub(crate) struct RenderPlainLink { + raw_link: String, post_blank: organic::types::PostBlank, } -rnoop!(RenderPlainLink, IPlainLink); +render!(RenderPlainLink, IPlainLink, original, _render_context, { + Ok(RenderPlainLink { + raw_link: original.raw_link.clone(), + post_blank: original.post_blank, + }) +}); diff --git a/src/intermediate/plain_link.rs b/src/intermediate/plain_link.rs index 0a53e79..2f2aa60 100644 --- a/src/intermediate/plain_link.rs +++ b/src/intermediate/plain_link.rs @@ -1,5 +1,22 @@ -use super::macros::inoop; +use super::macros::intermediate; use crate::error::CustomError; use organic::types::StandardProperties; -inoop!(IPlainLink, PlainLink); +#[derive(Debug, Clone)] +pub(crate) struct IPlainLink { + pub(crate) raw_link: String, + pub(crate) post_blank: organic::types::PostBlank, +} + +intermediate!( + IPlainLink, + &'orig organic::types::PlainLink<'parse>, + original, + _intermediate_context, + { + Ok(IPlainLink { + raw_link: original.raw_link.to_owned(), + post_blank: original.get_post_blank(), + }) + } +);