aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFuwn <[email protected]>2022-07-26 18:51:54 +0000
committerFuwn <[email protected]>2022-07-26 18:51:54 +0000
commit276ab6ea235aba0a691d44b2b0e7999273224c74 (patch)
tree9f99e4a3d50ba83de6176ff0bf42c55f1c26aee0 /src
parentfix(ui.rs): reimplement text wrap (diff)
downloadsydney-276ab6ea235aba0a691d44b2b0e7999273224c74.tar.xz
sydney-276ab6ea235aba0a691d44b2b0e7999273224c74.zip
feat(ui.rs): add wrap for blockquote
Diffstat (limited to 'src')
-rw-r--r--src/ui.rs37
1 files changed, 27 insertions, 10 deletions
diff --git a/src/ui.rs b/src/ui.rs
index c16a572..5267eb6 100644
--- a/src/ui.rs
+++ b/src/ui.rs
@@ -73,10 +73,10 @@ pub fn ui<B: tui::backend::Backend>(
for (i, wrapped) in wrappeds.iter().enumerate() {
$spans.push(Spans::from(format!(" {}{}", wrapped, {
- if i == wrappeds.len() - 1 && wrappeds.len() != 1 {
- ""
- } else {
+ if i < wrappeds.len() - 1 && wrappeds.len() != 1 {
"-"
+ } else {
+ ""
}
})));
}
@@ -89,13 +89,30 @@ pub fn ui<B: tui::backend::Backend>(
wrap_split!(text, spans);
},
germ::ast::Node::Blockquote(text) => {
- spans.push(Spans::from(vec![
- Span::styled(" > ", Style::default().fg(Color::LightBlue)),
- Span::styled(
- text,
- Style::default().add_modifier(Modifier::ITALIC),
- ),
- ]));
+ let wrappeds = text
+ .as_bytes()
+ .chunks((app.wrap_at as usize) - 5)
+ .map(|buf| {
+ #[allow(unsafe_code)]
+ unsafe { std::str::from_utf8_unchecked(buf) }.to_string()
+ })
+ .collect::<Vec<_>>();
+
+ for (i, wrapped) in wrappeds.iter().enumerate() {
+ spans.push(Spans::from(vec![
+ Span::styled(" > ", Style::default().fg(Color::LightBlue)),
+ Span::styled(
+ format!("{}{}", wrapped.clone(), {
+ if i < wrappeds.len() && wrappeds.len() != 1 {
+ "-"
+ } else {
+ ""
+ }
+ }),
+ Style::default().add_modifier(Modifier::ITALIC),
+ ),
+ ]));
+ }
}
germ::ast::Node::Link {
to,