Skip to content

Commit

Permalink
add: book builder chapters output.
Browse files Browse the repository at this point in the history
  • Loading branch information
auula committed Jul 2, 2024
1 parent 2d32a64 commit aa177a0
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 29 deletions.
3 changes: 2 additions & 1 deletion src/book/builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,9 @@ pub struct Builder {
impl Builder {
// 渲染整本书
pub fn render(&mut self) -> io::Result<()> {
self.create_directory()?;
self.chapters_html();
self.sub_chapters_html();
self.create_directory()?;
self.copy_theme_assets()?;
Ok(())
}
Expand Down
2 changes: 1 addition & 1 deletion src/cli/commands.rs
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ pub fn handle_help_command(args: &[String]) {
}

pub fn handle_init_command(_args: &[String]) {
let mut log = Logger::console_log();
let mut _log = Logger::console_log();
unimplemented!()
}

Expand Down
8 changes: 4 additions & 4 deletions src/utils/logger.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ impl Logger {

fn log(&mut self, level: &str, color: fn(&str) -> ColoredString, format_message: &str) {
let time = Local::now().format(DATETIME_FORMAT);
let formatted = format!(" {:<8} {} 💬 {}\n", color(level), time, format_message);
let formatted = format!(" {:<6} {} 💬 {}\n", color(level), time, format_message);
self.out
.write_all(formatted.as_bytes())
.expect("Failed to write to stdout");
Expand All @@ -26,23 +26,23 @@ impl Logger {
pub fn info(&mut self, format_message: std::fmt::Arguments) {
self.log(
"[INFO]",
|level: &str| level.on_green(),
|level: &str| level.green(),
&format!("{}", format!("{}", format_message).as_str().green()),
);
}

pub fn warn(&mut self, format_message: std::fmt::Arguments) {
self.log(
"[WARING]",
|level| level.on_purple(),
|level| level.purple(),
&format!("{}", format!("{}", format_message).as_str().yellow()),
);
}

pub fn error(&mut self, format_message: std::fmt::Arguments) {
self.log(
"[ERROR]",
|level: &str| level.on_red(),
|level: &str| level.red(),
&format!("{}", format!("{}", format_message).as_str().red()),
);
}
Expand Down
52 changes: 29 additions & 23 deletions tests/book/builder_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,41 @@ use typikon::book;

#[test]
fn test_new_builder() {
match book::new_builder() {
Ok(builder) => {
for view in builder.engine.get_template_names() {
println!("{:?}",view);
}
assert!(true);
}
Err(_) => assert!(false),
}
let builder_result = book::new_builder();
assert!(builder_result.is_ok(), "Failed to create builder");

let builder = builder_result.unwrap();
let template_names: Vec<_> = builder.engine.get_template_names().collect();
println!("{:?}", template_names);

// 确认模板名称非空
assert!(!template_names.is_empty(), "Template names should not be empty");
}

#[test]
fn test_new_builder_get_hypertext() {
match book::new_builder() {
Ok(mut builder) => {
println!("{:?}", &mut builder.sub_chapters_html());
assert!(true);
}
Err(_) => assert!(false),
}
let builder_result = book::new_builder();
assert!(builder_result.is_ok(), "Failed to create builder");

let mut builder = builder_result.unwrap();
let sub_chapters_hypertext = builder.sub_chapters_html();

println!("{:?}", sub_chapters_hypertext);

// 检查结果是否包含特定的章节
assert!(!sub_chapters_hypertext.is_empty(), "Sub chapters hypertext should not be empty");
}

#[test]
fn test_new_builder_get_chapters() {
match book::new_builder() {
Ok(mut builder) => {
println!("{:?}", &mut builder.chapters_html());
assert!(true);
}
Err(_) => assert!(false),
}
let builder_result = book::new_builder();
assert!(builder_result.is_ok(), "Failed to create builder");

let mut builder = builder_result.unwrap();
let chapters_hypertext = builder.chapters_html();

println!("{:?}", chapters_hypertext);

// 检查结果是否包含特定的章节
assert!(!chapters_hypertext.is_empty(), "Chapters hypertext should not be empty");
}

0 comments on commit aa177a0

Please sign in to comment.