summaryrefslogtreecommitdiff
path: root/src/directive/meta.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/directive/meta.rs')
-rw-r--r--src/directive/meta.rs50
1 files changed, 24 insertions, 26 deletions
diff --git a/src/directive/meta.rs b/src/directive/meta.rs
index 490ffb1..882288b 100644
--- a/src/directive/meta.rs
+++ b/src/directive/meta.rs
@@ -1,3 +1,4 @@
+use crate::directive::{DirectiveImplementation, Processed};
use crate::error::SiteError;
use crate::page::PageMeta;
use crate::site::Site;
@@ -10,43 +11,40 @@ pub struct Meta {
date: Option<String>,
}
-impl Meta {
- pub const REQUIRED: &'static [&'static str] = &[];
- pub const ALLOWED: &'static [&'static str] = &["date", "link", "title", "author"];
- pub const ALLOW_ANY_UNNAMED: bool = false;
-
- fn set_date(&mut self, date: &str) {
- self.date = Some(date.into());
- }
+impl DirectiveImplementation for Meta {
+ const REQUIRED: &'static [&'static str] = &[];
+ const ALLOWED: &'static [&'static str] = &["date", "link", "title", "author"];
+ const ALLOW_ANY_UNNAMED: bool = false;
- fn set_title(&mut self, title: &str) {
- self.title = Some(title.into());
+ fn from_parsed(p: &ParsedDirective) -> Self {
+ let mut meta = Self::default();
+ let args = p.args();
+ if let Some(title) = args.get("title") {
+ meta.set_title(title);
+ }
+ if let Some(date) = args.get("date") {
+ meta.set_date(date);
+ }
+ meta
}
- pub fn process(&self, _site: &Site, meta: &mut PageMeta) -> Result<String, SiteError> {
+ fn process(&self, _site: &Site, meta: &mut PageMeta) -> Result<Processed, SiteError> {
if let Some(title) = &self.title {
meta.set_title(title.into());
}
if let Some(mtime) = &self.date {
meta.set_mtime(parse_timestamp(mtime)?);
}
- Ok("".into())
+ Ok(Processed::Markdown("".into()))
}
}
-impl From<&ParsedDirective> for Meta {
- fn from(p: &ParsedDirective) -> Self {
- let mut meta = Meta::default();
- let args = p.args();
- if let Some(title) = args.get("title") {
- meta.set_title(title);
- }
- if let Some(date) = args.get("date") {
- meta.set_date(date);
- }
- meta
+impl Meta {
+ fn set_date(&mut self, date: &str) {
+ self.date = Some(date.into());
}
-}
-#[cfg(test)]
-mod test {}
+ fn set_title(&mut self, title: &str) {
+ self.title = Some(title.into());
+ }
+}