feat(element): rename Headline with Title struct
This commit is contained in:
parent
e835103ac6
commit
53d8f9dc90
10 changed files with 268 additions and 251 deletions
|
|
@ -5,7 +5,7 @@ use std::io::{Error as IOError, Write};
|
|||
use std::result::Result;
|
||||
use std::string::FromUtf8Error;
|
||||
|
||||
use orgize::export::{html::Escape, DefaultHtmlHandler, HtmlHandler};
|
||||
use orgize::export::{DefaultHtmlHandler, HtmlHandler};
|
||||
use orgize::{Element, Org};
|
||||
use slugify::slugify;
|
||||
|
||||
|
|
@ -34,16 +34,15 @@ struct MyHtmlHandler(DefaultHtmlHandler);
|
|||
impl HtmlHandler<MyError> for MyHtmlHandler {
|
||||
fn start<W: Write>(&mut self, mut w: W, element: &Element<'_>) -> Result<(), MyError> {
|
||||
match element {
|
||||
Element::Headline(headline) => {
|
||||
if headline.level > 6 {
|
||||
Element::Title(title) => {
|
||||
if title.level > 6 {
|
||||
return Err(MyError::Heading);
|
||||
} else {
|
||||
write!(
|
||||
w,
|
||||
"<h{0}><a id=\"{1}\" href=\"#{1}\">{2}</a></h{0}>",
|
||||
headline.level,
|
||||
slugify!(headline.title),
|
||||
Escape(headline.title),
|
||||
"<h{0}><a id=\"{1}\" href=\"#{1}\">",
|
||||
title.level,
|
||||
slugify!(title.raw),
|
||||
)?;
|
||||
}
|
||||
}
|
||||
|
|
@ -52,6 +51,16 @@ impl HtmlHandler<MyError> for MyHtmlHandler {
|
|||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn end<W: Write>(&mut self, mut w: W, element: &Element<'_>) -> Result<(), MyError> {
|
||||
match element {
|
||||
Element::Title(title) => {
|
||||
write!(w, "</a></h{}>", title.level,)?;
|
||||
}
|
||||
_ => self.0.end(w, element)?,
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
fn main() -> Result<(), MyError> {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue