Add target.
This commit is contained in:
@@ -6,6 +6,7 @@ mod heading;
|
||||
mod object;
|
||||
mod plain_text;
|
||||
mod section;
|
||||
mod target;
|
||||
|
||||
pub(crate) use blog_post_page::RenderBlogPostPage;
|
||||
pub(crate) use document_element::RenderDocumentElement;
|
||||
|
||||
@@ -7,11 +7,13 @@ use crate::error::CustomError;
|
||||
use crate::intermediate::IObject;
|
||||
|
||||
use super::plain_text::RenderPlainText;
|
||||
use super::target::RenderTarget;
|
||||
|
||||
#[derive(Debug, Serialize)]
|
||||
#[serde(untagged)]
|
||||
pub(crate) enum RenderObject {
|
||||
PlainText(RenderPlainText),
|
||||
Target(RenderTarget),
|
||||
}
|
||||
|
||||
impl RenderObject {
|
||||
@@ -28,6 +30,12 @@ impl RenderObject {
|
||||
output_file,
|
||||
inner,
|
||||
)?)),
|
||||
IObject::Target(inner) => Ok(RenderObject::Target(RenderTarget::new(
|
||||
config,
|
||||
output_directory,
|
||||
output_file,
|
||||
inner,
|
||||
)?)),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
27
src/context/target.rs
Normal file
27
src/context/target.rs
Normal file
@@ -0,0 +1,27 @@
|
||||
use std::path::Path;
|
||||
|
||||
use serde::Serialize;
|
||||
|
||||
use crate::config::Config;
|
||||
use crate::error::CustomError;
|
||||
use crate::intermediate::ITarget;
|
||||
|
||||
#[derive(Debug, Serialize)]
|
||||
#[serde(tag = "type")]
|
||||
#[serde(rename = "target")]
|
||||
pub(crate) struct RenderTarget {
|
||||
id: String,
|
||||
}
|
||||
|
||||
impl RenderTarget {
|
||||
pub(crate) fn new<D: AsRef<Path>, F: AsRef<Path>>(
|
||||
config: &Config,
|
||||
output_directory: D,
|
||||
output_file: F,
|
||||
target: &ITarget,
|
||||
) -> Result<RenderTarget, CustomError> {
|
||||
Ok(RenderTarget {
|
||||
id: target.id.clone(),
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user