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, pub h6_size: Pixels,
/// The text size used in code blocks. /// The text size used in code blocks.
pub code_size: Pixels, pub code_size: Pixels,
/// The spacing to be used between elements.
pub spacing: Pixels,
} }
impl Settings { impl Settings {
@ -547,6 +549,7 @@ impl Settings {
h5_size: text_size, h5_size: text_size,
h6_size: text_size, h6_size: text_size,
code_size: text_size * 0.75, code_size: text_size * 0.75,
spacing: text_size * 0.875,
} }
} }
} }
@ -649,10 +652,9 @@ where
h5_size, h5_size,
h6_size, h6_size,
code_size, code_size,
spacing,
} = settings; } = settings;
let spacing = text_size * 0.625;
let blocks = items.into_iter().enumerate().map(|(i, item)| match item { let blocks = items.into_iter().enumerate().map(|(i, item)| match item {
Item::Heading(level, heading) => { Item::Heading(level, heading) => {
container(rich_text(heading.spans(style)).size(match level { container(rich_text(heading.spans(style)).size(match level {
@ -675,11 +677,21 @@ where
} }
Item::List { start: None, items } => { Item::List { start: None, items } => {
column(items.iter().map(|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) .spacing(spacing)
.into() .into()
})) }))
.spacing(spacing) .spacing(spacing * 0.75)
.into() .into()
} }
Item::List { Item::List {
@ -688,12 +700,19 @@ where
} => column(items.iter().enumerate().map(|(i, items)| { } => column(items.iter().enumerate().map(|(i, items)| {
row![ row![
text!("{}.", i as u64 + *start).size(text_size), text!("{}.", i as u64 + *start).size(text_size),
view(items, settings, style) view(
items,
Settings {
spacing: settings.spacing * 0.6,
..settings
},
style
)
] ]
.spacing(spacing) .spacing(spacing)
.into() .into()
})) }))
.spacing(spacing) .spacing(spacing * 0.75)
.into(), .into(),
Item::CodeBlock(code) => container( Item::CodeBlock(code) => container(
scrollable( scrollable(