Add document.description field

This commit is contained in:
Laurenz 2024-12-02 13:48:45 +01:00
parent d00a5d6c9b
commit 497446944c
2 changed files with 15 additions and 0 deletions

View File

@ -37,6 +37,10 @@ pub struct DocumentElem {
#[ghost]
pub author: Author,
/// The document's description.
#[ghost]
pub description: Option<Content>,
/// The document's keywords.
#[ghost]
pub keywords: Keywords,
@ -91,6 +95,8 @@ pub struct DocumentInfo {
pub title: Option<EcoString>,
/// The document's author.
pub author: Vec<EcoString>,
/// The document's description.
pub description: Option<EcoString>,
/// The document's keywords.
pub keywords: Vec<EcoString>,
/// The document's creation date.
@ -111,6 +117,10 @@ impl DocumentInfo {
if has(<DocumentElem as Fields>::Enum::Author) {
self.author = DocumentElem::author_in(chain).0;
}
if has(<DocumentElem as Fields>::Enum::Description) {
self.description =
DocumentElem::description_in(chain).map(|content| content.plain_text());
}
if has(<DocumentElem as Fields>::Enum::Keywords) {
self.keywords = DocumentElem::keywords_in(chain).0;
}

View File

@ -48,6 +48,11 @@ pub fn write_catalog(
xmp.title([(None, title.as_str())]);
}
if let Some(description) = &ctx.document.info.description {
info.subject(TextStr::trimmed(description));
xmp.description([(None, description.as_str())]);
}
let authors = &ctx.document.info.author;
if !authors.is_empty() {
// Turns out that if the authors are given in both the document