diff --git a/src/resources/filters/quarto-post/dashboard.lua b/src/resources/filters/quarto-post/dashboard.lua
index aabfd7ab295..de01e5249d7 100644
--- a/src/resources/filters/quarto-post/dashboard.lua
+++ b/src/resources/filters/quarto-post/dashboard.lua
@@ -737,6 +737,44 @@ function render_dashboard()
return doc
end
end
+ }, {
+ -- todo: dark mode
+ Meta = function(meta)
+ local logo = meta.logo
+ local resolved
+ if logo then
+ local which
+ if pandoc.utils.type(logo) == 'Inlines' then
+ which = logo[1].text
+ local brandLogo = _quarto.modules.brand.get_logo(logo[1].text)
+ resolved = brandLogo and brandLogo.light
+ elseif type(logo) == 'table' then
+ local brandLogo = _quarto.modules.brand.get_logo(logo.path[1].text)
+ if brandLogo then
+ resolved = brandLogo.light
+ if logo.alt then
+ resolved.alt = logo.alt
+ end
+ else
+ resolved = {
+ path = logo.path,
+ alt = logo.alt
+ }
+ end
+ end
+ else
+ logo = _quarto.modules.brand.get_logo('small')
+ or _quarto.modules.brand.get_logo('medium')
+ or _quarto.modules.brand.get_logo('large')
+ resolved = logo and logo.light
+ end
+ if resolved then
+ meta.logo = resolved.path
+ meta['logo-alt'] = resolved.alt
+ end
+
+ return meta
+ end
}
}
end
\ No newline at end of file
diff --git a/tests/docs/smoke-all/brand/dashboard-logo/choose-logo-resource.qmd b/tests/docs/smoke-all/brand/dashboard-logo/choose-logo-resource.qmd
new file mode 100644
index 00000000000..2b1f855dcf7
--- /dev/null
+++ b/tests/docs/smoke-all/brand/dashboard-logo/choose-logo-resource.qmd
@@ -0,0 +1,26 @@
+---
+title: brand and base logo
+format:
+ dashboard: default
+brand:
+ logo:
+ images:
+ quarto:
+ path: quarto.png
+ alt: quarto logo
+ posit:
+ path: posit-logo-2024.svg
+ alt: posit logo
+ medium: quarto
+ large: posit
+logo: large
+_quarto:
+ tests:
+ dashboard:
+ ensureFileRegexMatches:
+ -
+ - '
}}
\ No newline at end of file
diff --git a/tests/docs/smoke-all/brand/dashboard-logo/default-logo.qmd b/tests/docs/smoke-all/brand/dashboard-logo/default-logo.qmd
new file mode 100644
index 00000000000..3748ce52848
--- /dev/null
+++ b/tests/docs/smoke-all/brand/dashboard-logo/default-logo.qmd
@@ -0,0 +1,25 @@
+---
+title: brand and base logo
+format:
+ dashboard: default
+brand:
+ logo:
+ images:
+ quarto:
+ path: quarto.png
+ alt: quarto logo
+ posit:
+ path: posit-logo-2024.svg
+ alt: posit logo
+ medium: quarto
+ large: posit
+_quarto:
+ tests:
+ dashboard:
+ ensureFileRegexMatches:
+ -
+ - '
}}
\ No newline at end of file
diff --git a/tests/docs/smoke-all/brand/dashboard-logo/override-logo-path-alt.qmd b/tests/docs/smoke-all/brand/dashboard-logo/override-logo-path-alt.qmd
new file mode 100644
index 00000000000..58d722db4cb
--- /dev/null
+++ b/tests/docs/smoke-all/brand/dashboard-logo/override-logo-path-alt.qmd
@@ -0,0 +1,28 @@
+---
+title: brand and base logo
+format:
+ dashboard: default
+brand:
+ logo:
+ images:
+ quarto:
+ path: quarto.png
+ alt: quarto logo
+ posit:
+ path: posit-logo-2024.svg
+ alt: posit logo
+ medium: quarto
+ large: posit
+logo:
+ path: posit-logo-2024.svg
+ alt: posit logo
+_quarto:
+ tests:
+ dashboard:
+ ensureFileRegexMatches:
+ -
+ - '
}}
\ No newline at end of file
diff --git a/tests/docs/smoke-all/brand/dashboard-logo/override-logo-path.qmd b/tests/docs/smoke-all/brand/dashboard-logo/override-logo-path.qmd
new file mode 100644
index 00000000000..25cc00acd0a
--- /dev/null
+++ b/tests/docs/smoke-all/brand/dashboard-logo/override-logo-path.qmd
@@ -0,0 +1,26 @@
+---
+title: brand and base logo
+format:
+ dashboard: default
+brand:
+ logo:
+ images:
+ quarto:
+ path: quarto.png
+ alt: quarto logo
+ posit:
+ path: posit-logo-2024.svg
+ alt: posit logo
+ medium: quarto
+ large: posit
+logo: posit-logo-2024.svg
+_quarto:
+ tests:
+ dashboard:
+ ensureFileRegexMatches:
+ -
+ - '
}}
\ No newline at end of file
diff --git a/tests/docs/smoke-all/brand/dashboard-logo/override-logo-resource-alt.qmd b/tests/docs/smoke-all/brand/dashboard-logo/override-logo-resource-alt.qmd
new file mode 100644
index 00000000000..e3d2a597b6f
--- /dev/null
+++ b/tests/docs/smoke-all/brand/dashboard-logo/override-logo-resource-alt.qmd
@@ -0,0 +1,28 @@
+---
+title: brand and base logo
+format:
+ dashboard: default
+brand:
+ logo:
+ images:
+ quarto:
+ path: quarto.png
+ alt: quarto logo
+ posit:
+ path: posit-logo-2024.svg
+ alt: posit logo
+ medium: quarto
+ large: posit
+logo:
+ path: large
+ alt: logo of posit
+_quarto:
+ tests:
+ dashboard:
+ ensureFileRegexMatches:
+ -
+ - '
}}
\ No newline at end of file
diff --git a/tests/docs/smoke-all/brand/dashboard-logo/override-logo-resource.qmd b/tests/docs/smoke-all/brand/dashboard-logo/override-logo-resource.qmd
new file mode 100644
index 00000000000..f7648027b22
--- /dev/null
+++ b/tests/docs/smoke-all/brand/dashboard-logo/override-logo-resource.qmd
@@ -0,0 +1,27 @@
+---
+title: brand and base logo
+format:
+ dashboard: default
+brand:
+ logo:
+ images:
+ quarto:
+ path: quarto.png
+ alt: quarto logo
+ posit:
+ path: posit-logo-2024.svg
+ alt: posit logo
+ medium: quarto
+ large: posit
+logo:
+ path: large
+_quarto:
+ tests:
+ dashboard:
+ ensureFileRegexMatches:
+ -
+ - '
}}
\ No newline at end of file
diff --git a/tests/docs/smoke-all/brand/dashboard-logo/posit-logo-2024.svg b/tests/docs/smoke-all/brand/dashboard-logo/posit-logo-2024.svg
new file mode 100644
index 00000000000..2bd9317f225
--- /dev/null
+++ b/tests/docs/smoke-all/brand/dashboard-logo/posit-logo-2024.svg
@@ -0,0 +1,17 @@
+
+
diff --git a/tests/docs/smoke-all/brand/dashboard-logo/quarto.png b/tests/docs/smoke-all/brand/dashboard-logo/quarto.png
new file mode 100644
index 00000000000..616d17b92cb
Binary files /dev/null and b/tests/docs/smoke-all/brand/dashboard-logo/quarto.png differ