Improve quality of Discord formatted output
parent
06f7fb729a
commit
079efa5095
|
@ -48,7 +48,16 @@ pub fn format_discord(message_content: &[MessageComponent]) -> String {
|
|||
.map(|component| match component {
|
||||
MessageComponent::Plain(text) => text.to_string(), // TODO: Escape
|
||||
|
||||
MessageComponent::Link { target, .. } => target.to_string(), // TODO: Link text
|
||||
MessageComponent::Link { target, text } => {
|
||||
let formatted_text = format_discord(text);
|
||||
|
||||
// TODO: Maybe tolerate a missing http(s) URL scheme?
|
||||
if &formatted_text == target {
|
||||
formatted_text
|
||||
} else {
|
||||
format!("{} ({})", formatted_text, target)
|
||||
}
|
||||
}
|
||||
|
||||
MessageComponent::Italic(inner) => format!("*{}*", format_discord(inner)),
|
||||
MessageComponent::Bold(inner) => format!("**{}**", format_discord(inner)),
|
||||
|
@ -69,7 +78,10 @@ pub fn format_discord(message_content: &[MessageComponent]) -> String {
|
|||
MessageComponent::Spoiler { content, .. } => format!("||{}||", format_discord(content)), // TODO: Spoiler reason
|
||||
|
||||
MessageComponent::HardBreak => "\n".to_string(),
|
||||
MessageComponent::BlockQuote(inner) => format!("> {}", format_discord(inner)),
|
||||
MessageComponent::BlockQuote(inner) => format_discord(inner)
|
||||
.lines()
|
||||
.map(|l| format!("> {}\n", l))
|
||||
.collect(),
|
||||
})
|
||||
.collect()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue