Fix blockquote issues

This commit is contained in:
august kline 2025-01-06 16:47:50 -05:00
parent 725a77318a
commit d6f16fe65e
2 changed files with 25 additions and 17 deletions

View File

@ -71,10 +71,12 @@ input,
label,
a,
blockquote,
figcaption,
aside,
ol,
ul {
font-size: calc(var(--font-size) * 1.33);
line-height: 1.5em;
}
h1,
@ -87,26 +89,22 @@ h6 {
}
aside,
blockquote {
border: var(--border);
}
blockquote,
aside {
figure {
padding: var(--default-padding) calc(var(--default-padding) * 2);
border: var(--border);
max-inline-size: 100%;
margin-inline: 0;
}
blockquote {
&::before {
content: '“';
font-weight: 600;
margin: 0;
}
&::after {
content: '”';
font-weight: 600;
figure {
& figcaption {
font-style: italic;
margin-inline-start: var(--default-padding);
margin-block-start: var(--default-padding);
}
}

View File

@ -34,6 +34,7 @@ pub(crate) enum Block {
},
quote {
text: String,
caption: String,
},
embed {
service: String,
@ -78,7 +79,13 @@ impl Block {
}
},
Block::warning { title } => ["<aside>", title, "</aside>"].concat(),
Block::quote { text } => ["<blockquote>", text, "</blockquote>"].concat(),
Block::quote { text, caption } => {
if caption.is_empty() {
["<figure><blockquote>“", text, "”</blockquote></figure>"].concat()
} else {
["<figure><blockquote>“", text, "”</blockquote><figcaption>— ", caption,"</figcaption></figure>"].concat()
}
},
Block::embed {
embed,
width,
@ -109,7 +116,7 @@ impl Block {
Block::header { text, level: _ } => text,
Block::list { style: _, items } => &items.join("\n"),
Block::warning { title } => title,
Block::quote { text } => text,
Block::quote { text, caption } => &[text, caption.as_str()].concat(),
_ => &"".to_string(),
};
let text = [text, "\n"].concat();
@ -241,14 +248,17 @@ impl Blocks {
Block::paragraph { text: _ } => true,
Block::header { text: _, level } => *level > 1,
Block::warning { title: _ } => true,
Block::quote { text: _ } => true,
Block::quote {
text: _,
caption: _,
} => true,
_ => false,
})
.map(|block| match block {
Block::paragraph { text } => text,
Block::header { text, level: _ } => text,
Block::warning { title } => title,
Block::quote { text } => text,
Block::quote { text, caption: _ } => text,
_ => "...",
})
.unwrap_or("No description"),