summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-04-05 09:34:21 +0200
committerDanilo M. <danix@danix.xyz>2026-04-05 09:34:21 +0200
commit043ec4b61363fe28b2d2d8ac9e17e9386bf7175d (patch)
tree4d650da608f1a03697d3aacaf76d916c08a0d2d0
parentc262af894a95d6473e3bf8a2f8c0c85caa6b3b8b (diff)
downloaddanixxyz-theme-043ec4b61363fe28b2d2d8ac9e17e9386bf7175d.tar.gz
danixxyz-theme-043ec4b61363fe28b2d2d8ac9e17e9386bf7175d.zip
feat: add figure shortcode and documentation
Ported figure shortcode from previous theme. Wraps content in semantic <figure> element with optional title, caption, attribution, and link support. Typical usage: {{< figure caption="Image caption" attr="Photo by Someone" >}} {{< img src="image.jpg" alt="Description" >}} {{< /figure >}} Also updated CONTENT_GUIDE with comprehensive usage examples and parameters. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
-rw-r--r--CONTENT_GUIDE.md54
-rw-r--r--layouts/shortcodes/figure.html27
2 files changed, 81 insertions, 0 deletions
diff --git a/CONTENT_GUIDE.md b/CONTENT_GUIDE.md
index a261053..834a8f4 100644
--- a/CONTENT_GUIDE.md
+++ b/CONTENT_GUIDE.md
@@ -570,6 +570,60 @@ With link to profile:
---
+### Figure Shortcode
+
+The `figure` shortcode wraps images or other content in a semantic `<figure>` element with optional title, caption, attribution, and link. Use it to add context and styling around images.
+
+**Usage:**
+```hugo
+{{< figure caption="Image caption" attr="Photo by Someone" >}}
+{{< img src="image.jpg" alt="Description" >}}
+{{< /figure >}}
+```
+
+**Parameters:**
+- Content between tags — Inner content (typically an `img` shortcode)
+- `class` (optional) — CSS class for the figure element
+- `link` (optional) — URL to wrap the entire figure in a link
+- `target` (optional) — Link target (_blank, _self, etc.)
+- `rel` (optional) — Link rel attribute
+- `title` (optional) — Optional title displayed above the image
+- `caption` (optional) — Caption text (supports Markdown)
+- `attr` (optional) — Attribution text (supports Markdown)
+- `attrlink` (optional) — URL to link the attribution to
+
+**Examples:**
+
+Simple figure with caption:
+```hugo
+{{< figure caption="Kubernetes cluster architecture" >}}
+{{< img src="k8s-architecture.jpg" alt="Kubernetes cluster" >}}
+{{< /figure >}}
+```
+
+With title and attribution:
+```hugo
+{{< figure title="System Design" caption="A simplified view of the microservices architecture" attr="Diagram by John Doe" >}}
+{{< img src="architecture.jpg" alt="Architecture diagram" >}}
+{{< /figure >}}
+```
+
+With linked attribution:
+```hugo
+{{< figure caption="Beautiful sunset at Bryce Canyon" attr="Photo by Jane Smith" attrlink="https://example.com/jane" >}}
+{{< img src="bryce-canyon.jpg" alt="Sunset at Bryce Canyon" >}}
+{{< /figure >}}
+```
+
+Figure with clickable link:
+```hugo
+{{< figure link="https://example.com/full-image" target="_blank" caption="Click to view full resolution" >}}
+{{< img src="preview.jpg" alt="Preview image" >}}
+{{< /figure >}}
+```
+
+---
+
## Troubleshooting
### Article doesn't appear on site
diff --git a/layouts/shortcodes/figure.html b/layouts/shortcodes/figure.html
new file mode 100644
index 0000000..81f86de
--- /dev/null
+++ b/layouts/shortcodes/figure.html
@@ -0,0 +1,27 @@
+{{/*
+ * This version of the figure shortcode needs to be closed and doesn't
+ * add an image itself, but relies on the img.html shortcode to provide
+ * a responsive image instead.
+ */}}
+<figure{{ with .Get "class" }} class="{{ . }}"{{ end }}>
+ {{- if .Get "link" -}}
+ <a href="{{ .Get "link" }}"{{ with .Get "target" }} target="{{ . }}"{{ end }}{{ with .Get "rel" }} rel="{{ . }}"{{ end }}>
+ {{- end -}}
+ {{- .Inner -}}
+ {{- if .Get "link" }}</a>{{ end -}}
+ {{- if or (or (.Get "title") (.Get "caption")) (.Get "attr") -}}
+ <figcaption>
+ {{ with (.Get "title") -}}
+ <h4>{{ . }}</h4>
+ {{- end -}}
+ {{- if or (.Get "caption") (.Get "attr") -}}<p>
+ {{- .Get "caption" | markdownify -}}
+ {{- with .Get "attrlink" }}
+ <a href="{{ . }}">
+ {{- end -}}
+ {{- .Get "attr" | markdownify -}}
+ {{- if .Get "attrlink" }}</a>{{ end }}</p>
+ {{- end }}
+ </figcaption>
+ {{- end }}
+</figure>