summaryrefslogtreecommitdiff
path: root/src/wikitext.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/wikitext.rs')
-rw-r--r--src/wikitext.rs16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/wikitext.rs b/src/wikitext.rs
index 81514f0..b78cd66 100644
--- a/src/wikitext.rs
+++ b/src/wikitext.rs
@@ -1,4 +1,4 @@
-use crate::directive::Directive;
+use crate::directive::{Directive, Processed};
use crate::error::SiteError;
use crate::page::PageMeta;
use crate::site::Site;
@@ -29,16 +29,17 @@ impl Snippet {
Ok(())
}
- pub fn process(&self, site: &mut Site, meta: &mut PageMeta) -> Result<String, SiteError> {
+ pub fn process(&self, site: &mut Site, meta: &mut PageMeta) -> Result<Processed, SiteError> {
trace!("Snippet::process: self={:?}", self);
- let s = match self {
- Snippet::Markdown(text) => text.into(),
+ let processed = match self {
+ Snippet::Markdown(text) => Processed::Markdown(text.into()),
Snippet::WikiLink(w) => {
let resolved = site
.resolve(meta.path(), Path::new(w.target()))
.map_err(|e| SiteError::PageProblem(meta.path().into(), Box::new(e)))?;
trace!("resolved {} to {}", w.target(), resolved.display());
- format!("[{}]({})", w.link_text(), resolved.display())
+ let link = format!("[{}]({})", w.link_text(), resolved.display());
+ Processed::Markdown(link)
}
Snippet::Directive(p) => {
let e = Directive::try_from(p);
@@ -47,13 +48,14 @@ impl Snippet {
.map_err(|e| SiteError::PageProblem(meta.path().into(), Box::new(e)))?
} else if let Some(shortcut) = site.shortcut(p.name()) {
let arg = p.unnamed_args().first().unwrap().to_string();
- format!("[{}]({})", shortcut.desc(&arg), shortcut.url(&arg))
+ let link = format!("[{}]({})", shortcut.desc(&arg), shortcut.url(&arg));
+ Processed::Markdown(link)
} else {
return Err(e.unwrap_err());
}
}
};
- Ok(s)
+ Ok(processed)
}
}