pub fn html_top() -> String {
r#"<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Artem Ascii Image</title>
</head>
<body>
<pre>"#
.to_string()
}
#[cfg(test)]
mod test_push_html_top {
use super::*;
#[test]
fn push_top_html_returns_correct_string() {
assert_eq!(
r#"<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Artem Ascii Image</title>
</head>
<body>
<pre>"#,
html_top()
)
}
}
pub fn html_bottom() -> String {
"\n</pre></body></html>".to_string()
}
#[cfg(test)]
mod test_push_html_bottom {
use super::*;
#[test]
fn push_bottom_html_returns_correct_string() {
assert_eq!("\n</pre></body></html>", html_bottom())
}
}
pub fn colored_char(red: u8, green: u8, blue: u8, char: char, background_color: bool) -> String {
if background_color {
format!(
"<span style=\"background-color: #{:02X?}{:02X?}{:02X?}\">{}</span>",
red, green, blue, char
)
} else if char.is_whitespace() {
String::from(char)
} else {
format!(
"<span style=\"color: #{:02X?}{:02X?}{:02X?}\">{}</span>",
red, green, blue, char
)
}
}
#[cfg(test)]
mod test_html_string {
use super::*;
#[test]
fn whitespace_no_tag() {
assert_eq!(" ", colored_char(0, 0, 0, ' ', false))
}
#[test]
fn black_no_background() {
assert_eq!(
"<span style=\"color: #000000\">x</span>",
colored_char(0, 0, 0, 'x', false)
)
}
#[test]
fn black_with_background() {
assert_eq!(
"<span style=\"background-color: #000000\">x</span>",
colored_char(0, 0, 0, 'x', true)
)
}
#[test]
fn rust_color_no_background() {
assert_eq!(
"<span style=\"color: #9A5536\">x</span>",
colored_char(154, 85, 54, 'x', false)
)
}
#[test]
fn rust_color_with_background() {
assert_eq!(
"<span style=\"background-color: #9A5536\">x</span>",
colored_char(154, 85, 54, 'x', true)
)
}
}