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: + - + - 'posit logo}} \ 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: + - + - 'quarto logo}} \ 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: + - + - 'posit logo}} \ 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: + - + - 'logo of posit}} \ 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: + - + - 'posit logo}} \ 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