summaryrefslogtreecommitdiff
path: root/src/page.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/page.rs')
-rw-r--r--src/page.rs13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/page.rs b/src/page.rs
index db0dc96..2c07023 100644
--- a/src/page.rs
+++ b/src/page.rs
@@ -2,7 +2,7 @@ use crate::directive::{Processed, Toc};
use crate::html::HtmlError;
use crate::html::{parse, Content, Element, ElementTag, HtmlPage};
use crate::name::Name;
-use crate::parser::WikitextParser;
+use crate::parser::{ParserError, WikitextParser};
use crate::site::Site;
use crate::util::get_mtime;
use crate::wikitext::{Snippet, WikitextError};
@@ -28,6 +28,9 @@ pub enum PageError {
Html(#[from] Box<HtmlError>),
#[error(transparent)]
+ Parser(#[from] Box<ParserError>),
+
+ #[error(transparent)]
Riki(#[from] Box<crate::error::RikiError>),
}
@@ -43,6 +46,12 @@ impl From<HtmlError> for PageError {
}
}
+impl From<ParserError> for PageError {
+ fn from(e: ParserError) -> Self {
+ Self::Parser(Box::new(e))
+ }
+}
+
pub struct Page {
meta: PageMeta,
unprocessed: UnprocessedPage,
@@ -121,7 +130,7 @@ impl UnprocessedPage {
fn snippets(parser: &mut WikitextParser) -> Result<Vec<Snippet>, PageError> {
let mut snippets = vec![];
- while let Some(snippet) = parser.parse().map_err(|e| PageError::Riki(Box::new(e)))? {
+ while let Some(snippet) = parser.parse()? {
snippets.push(snippet);
}
Ok(snippets)