summaryrefslogtreecommitdiffstats
path: root/widget
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2025-01-30 01:46:52 +0100
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2025-01-30 01:46:52 +0100
commitd49d4dc3fa58482ab0269ac678134fa6f360396a (patch)
tree18d7819f92c5a3e31d9c60edbea4ba767b622330 /widget
parentcfbeb05e32914ed951b7ce4afd131ef75b3cfb32 (diff)
downloadiced-d49d4dc3fa58482ab0269ac678134fa6f360396a.tar.gz
iced-d49d4dc3fa58482ab0269ac678134fa6f360396a.tar.bz2
iced-d49d4dc3fa58482ab0269ac678134fa6f360396a.zip
Make `spacing` configurable in `markdown::Settings`
Diffstat (limited to 'widget')
-rw-r--r--widget/src/markdown.rs35
1 files changed, 27 insertions, 8 deletions
diff --git a/widget/src/markdown.rs b/widget/src/markdown.rs
index fe61d631..252a3e1a 100644
--- a/widget/src/markdown.rs
+++ b/widget/src/markdown.rs
@@ -527,6 +527,8 @@ pub struct Settings {
pub h6_size: Pixels,
/// The text size used in code blocks.
pub code_size: Pixels,
+ /// The spacing to be used between elements.
+ pub spacing: Pixels,
}
impl Settings {
@@ -547,6 +549,7 @@ impl Settings {
h5_size: text_size,
h6_size: text_size,
code_size: text_size * 0.75,
+ spacing: text_size * 0.875,
}
}
}
@@ -649,10 +652,9 @@ where
h5_size,
h6_size,
code_size,
+ spacing,
} = settings;
- let spacing = text_size * 0.625;
-
let blocks = items.into_iter().enumerate().map(|(i, item)| match item {
Item::Heading(level, heading) => {
container(rich_text(heading.spans(style)).size(match level {
@@ -675,11 +677,21 @@ where
}
Item::List { start: None, items } => {
column(items.iter().map(|items| {
- row![text("•").size(text_size), view(items, settings, style)]
- .spacing(spacing)
- .into()
+ row![
+ text("•").size(text_size),
+ view(
+ items,
+ Settings {
+ spacing: settings.spacing * 0.6,
+ ..settings
+ },
+ style
+ )
+ ]
+ .spacing(spacing)
+ .into()
}))
- .spacing(spacing)
+ .spacing(spacing * 0.75)
.into()
}
Item::List {
@@ -688,12 +700,19 @@ where
} => column(items.iter().enumerate().map(|(i, items)| {
row![
text!("{}.", i as u64 + *start).size(text_size),
- view(items, settings, style)
+ view(
+ items,
+ Settings {
+ spacing: settings.spacing * 0.6,
+ ..settings
+ },
+ style
+ )
]
.spacing(spacing)
.into()
}))
- .spacing(spacing)
+ .spacing(spacing * 0.75)
.into(),
Item::CodeBlock(code) => container(
scrollable(