Make spacing configurable in markdown::Settings

This commit is contained in:
Héctor Ramón Jiménez 2025-01-30 01:46:52 +01:00
parent cfbeb05e32
commit d49d4dc3fa
No known key found for this signature in database
GPG key ID: 7CC46565708259A7

View file

@ -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)]
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(