diff --git a/CHANGELOG.md b/CHANGELOG.md index c8970c5f..8b2245cc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] +### Changed + +- Markdown images and `figure` shortcode now search the `assets/` directory if an image cannot be found in page bundle ([#126](https://github.com/jpanther/congo/issues/126)) +- Markdown images and `figure` shortcode now fallback to static assets if an image is not provided as a Hugo resource ([#126](https://github.com/jpanther/congo/issues/126)) + ## [2.0.5] - 2022-02-20 ### Added diff --git a/exampleSite/content/docs/shortcodes/index.md b/exampleSite/content/docs/shortcodes/index.md index cf117647..1ee7361f 100644 --- a/exampleSite/content/docs/shortcodes/index.md +++ b/exampleSite/content/docs/shortcodes/index.md @@ -99,14 +99,14 @@ You can see some additional Chart.js examples on the [charts samples]({{< ref "c Congo includes a `figure` shortcode for adding images to content. The shortcode replaces the base Hugo functionality in order to provide additional performance benefits. -When a provided image is a page resource, it will be optimised using Hugo Pipes and scaled in order to provide images appropriate to different device resolutions. If a URL to an external image is provided, it will be included as-is without any image processing by Hugo. +When a provided image is a page resource, it will be optimised using Hugo Pipes and scaled in order to provide images appropriate to different device resolutions. If a static asset or URL to an external image is provided, it will be included as-is without any image processing by Hugo. The `figure` shortcode accepts six parameters: |Parameter|Description| |---|---| -|`src`|**Required.** The filename or URL of the image. When providing a filename, this image must be a [page resource](https://gohugo.io/content-management/page-resources/) bundled with the page.| +|`src`| **Required.** The local path/filename or URL of the image. When providing a path and filename, the theme will attempt to locate the image using the following lookup order: Firstly, as a [page resource](https://gohugo.io/content-management/page-resources/) bundled with the page; then an asset in the `assets/` directory; then finally, a static image in the `static/` directory.| |`alt`|[Alternative text description](https://moz.com/learn/seo/alt-text) for the image.| |`caption`|Markdown for the image caption, which will be displayed below the image.| |`class`|Additional CSS classes to apply to the image.| diff --git a/layouts/_default/_markup/render-image.html b/layouts/_default/_markup/render-image.html index ad27611c..723c1dc2 100644 --- a/layouts/_default/_markup/render-image.html +++ b/layouts/_default/_markup/render-image.html @@ -7,7 +7,13 @@ {{ with $caption }}
{{ . | markdownify }}
{{ end }} {{ else }} - {{ with $.Page.Resources.GetMatch ($url.String) }} + {{ $resource := "" }} + {{ if $.Page.Resources.GetMatch ($url.String) }} + {{ $resource = $.Page.Resources.GetMatch ($url.String) }} + {{ else if resources.GetMatch ($url.String) }} + {{ $resource = resources.Get ($url.String) }} + {{ end }} + {{ with $resource }}
{{ . | markdownify }}{{ end }}
{{ else }} - {{ errorf `[CONGO] Markdown image error in "%s": Resource "%s" not found. Check the path is correct or remove the image from the content.` .Page.Path $url.String }} +
+ {{ $altText }} + {{ with $caption }}
{{ . | markdownify }}
{{ end }} +
{{ end }} {{ end }} diff --git a/layouts/shortcodes/figure.html b/layouts/shortcodes/figure.html index cc9c7f2b..fda11b7f 100644 --- a/layouts/shortcodes/figure.html +++ b/layouts/shortcodes/figure.html @@ -12,7 +12,13 @@ {{ with $caption }}
{{ . | markdownify }}
{{ end }} {{ else }} - {{ with $.Page.Resources.GetMatch ($url.String) }} + {{ $resource := "" }} + {{ if $.Page.Resources.GetMatch ($url.String) }} + {{ $resource = $.Page.Resources.GetMatch ($url.String) }} + {{ else if resources.GetMatch ($url.String) }} + {{ $resource = resources.Get ($url.String) }} + {{ end }} + {{ with $resource }}
{{ with $href }}{{ end }} {{ . | markdownify }}{{ end }}
{{ else }} - {{ errorf `[CONGO] Shortcode "figure" error in "%s": Resource "%s" not found. Check the path is correct or remove the shortcode.` .Page.Path ($url.String) }} +
+ {{ $altText }} + {{ with $caption }}
{{ . | markdownify }}
{{ end }} +
{{ end }} {{ end }} {{ end }} \ No newline at end of file