]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
docs: add a new partial for responsive images and use `imageConfig` (#39779)
authorXhmikosR <xhmikosr@gmail.com>
Mon, 1 Apr 2024 18:52:45 +0000 (21:52 +0300)
committerGitHub <noreply@github.com>
Mon, 1 Apr 2024 18:52:45 +0000 (21:52 +0300)
This way the dimensions are not hardcoded

site/layouts/_default/single.html
site/layouts/partials/examples/bs-themes.html [new file with mode: 0644]
site/layouts/partials/home/icons.html
site/layouts/partials/home/masthead.html
site/layouts/partials/home/themes.html
site/layouts/partials/responsive-img.html [new file with mode: 0644]

index 3175c55c08d8db5864b22ed0f2b0ff2f7a0bdbf6..427ee76c8d2a306e8ba1c650812671d9e3f58258 100644 (file)
     <div class="container-xxl bd-gutter">
       {{ .Content }}
 
-      {{ if eq .Title "Examples" }}
-        <hr class="my-5">
-        <div class="container">
-          <div class="text-center">
-            <div class="masthead-followup-icon d-inline-block mb-2 text-bg-danger">
-              {{ partial "icons/droplet-fill.svg" (dict "width" "32" "height" "32") }}
-            </div>
-            <h2 class="display-6 fw-normal">Go further with Bootstrap Themes</h2>
-            <p class="col-md-10 col-lg-8 mx-auto lead">
-              Need something more than these examples? Take Bootstrap to the next level with premium themes from the <a href="{{ .Site.Params.themes }}">official Bootstrap Themes marketplace</a>. They’re built as their own extended frameworks, rich with new components and plugins, documentation, and powerful build tools.
-            </p>
-            <a href="{{ .Site.Params.themes }}" class="btn btn-lg btn-outline-primary mb-3">Browse themes</a>
-          </div>
-          <img class="d-block img-fluid mt-3 mx-auto"
-               srcset="/docs/{{ .Site.Params.docs_version }}/assets/img/bootstrap-themes-collage.png,
-                       /docs/{{ .Site.Params.docs_version }}/assets/img/bootstrap-themes-collage@2x.png 2x"
-               src="/docs/{{ .Site.Params.docs_version }}/assets/img/bootstrap-themes-collage.png"
-               alt="Bootstrap Themes"
-               width="1150"
-               height="320"
-               loading="lazy">
-        </div>
-      {{ end }}
+      {{ if eq .Title "Examples" -}}
+        {{ partial "examples/bs-themes" . }}
+      {{- end }}
     </div>
   </main>
 {{ end }}
diff --git a/site/layouts/partials/examples/bs-themes.html b/site/layouts/partials/examples/bs-themes.html
new file mode 100644 (file)
index 0000000..b426d07
--- /dev/null
@@ -0,0 +1,17 @@
+<hr class="my-5">
+<div class="container">
+  <div class="text-center">
+    <div class="masthead-followup-icon d-inline-block mb-2 text-bg-danger">
+      {{ partial "icons/droplet-fill.svg" (dict "width" "32" "height" "32") }}
+    </div>
+    <h2 class="display-6 fw-normal">Go further with Bootstrap Themes</h2>
+    <p class="col-md-10 col-lg-8 mx-auto lead">
+      Need something more than these examples? Take Bootstrap to the next level with premium themes from the <a href="{{ .Site.Params.themes }}">official Bootstrap Themes marketplace</a>. They’re built as their own extended frameworks, rich with new components and plugins, documentation, and powerful build tools.
+    </p>
+    <a href="{{ .Site.Params.themes }}" class="btn btn-lg btn-outline-primary mb-3">Browse themes</a>
+  </div>
+  {{ partial "responsive-img" (dict "context" .
+    "imgPath" "/assets/img/bootstrap-themes-collage.png"
+    "alt" "Bootstrap Themes"
+    "classes" "d-block mt-3") }}
+</div>
index 5cc7f141739b6d047c122314d9ee02d09fee22d6..7ec81764e0ab846eceda4139e80f4063d60167ce 100644 (file)
@@ -15,9 +15,9 @@
     </p>
   </div>
   <div class="col-lg-6">
-      <img class="img-fluid mt-3 mx-auto" srcset="/docs/{{ .Site.Params.docs_version }}/assets/img/bootstrap-icons.png,
-                                                  /docs/{{ .Site.Params.docs_version }}/assets/img/bootstrap-icons@2x.png 2x"
-                                          src="/docs/{{ .Site.Params.docs_version }}/assets/img/bootstrap-icons.png"
-                                          alt="Bootstrap Icons" width="700" height="425" loading="lazy">
+    {{ partial "responsive-img" (dict "context" .
+      "imgPath" "/assets/img/bootstrap-icons.png"
+      "alt" "Bootstrap Icons"
+      "classes" "d-block mt-3") }}
   </div>
 </section>
index d4ec0c026401c9f868dd93ac06df3c1cc4adb47d..4fb36f62f2c9c122433a19ef3075b4953258191f 100644 (file)
           <svg class="bi" style="width: 20px; height: 20px;"><use xlink:href="#arrow-right-short"></use></svg>
         </span>
       </a>
-      <img class="d-none d-sm-block mx-auto mb-3"
-           srcset="/docs/{{ .Site.Params.docs_version }}/assets/brand/bootstrap-logo-shadow.png,
-                   /docs/{{ .Site.Params.docs_version }}/assets/brand/bootstrap-logo-shadow@2x.png 2x"
-           src="/docs/{{ .Site.Params.docs_version }}/assets/brand/bootstrap-logo-shadow.png"
-           alt="Bootstrap"
-           width="200"
-           height="165">
+      {{ partial "responsive-img" (dict "context" .
+        "imgPath" "/assets/brand/bootstrap-logo-shadow.png"
+        "alt" "Bootstrap"
+        "classes" "d-none d-sm-block mb-3"
+        "lazyload" false) }}
       <h1 class="mb-3 fw-semibold lh-1">Build fast, responsive sites with&nbsp;Bootstrap</h1>
       <p class="lead mb-4">
         Powerful, extensible, and feature-packed frontend toolkit. Build and customize with Sass, utilize prebuilt grid system and components, and bring projects to life with powerful JavaScript plugins.
index 3e286f2671784405aa5906ea578fa7c58ad02057..add1a3583efca1167001c87609046fe0e6a99f8e 100644 (file)
@@ -15,9 +15,9 @@
     </p>
   </div>
   <div class="col-lg-6">
-      <img class="img-fluid mt-3 mx-auto" srcset="/docs/{{ .Site.Params.docs_version }}/assets/img/bootstrap-themes.png,
-                                                  /docs/{{ .Site.Params.docs_version }}/assets/img/bootstrap-themes@2x.png 2x"
-                                          src="/docs/{{ .Site.Params.docs_version }}/assets/img/bootstrap-themes.png"
-                                          alt="Bootstrap Themes" width="700" height="500" loading="lazy">
+    {{ partial "responsive-img" (dict "context" .
+      "imgPath" "/assets/img/bootstrap-themes.png"
+      "alt" "Bootstrap Themes"
+      "classes" "d-block mt-3") }}
   </div>
 </section>
diff --git a/site/layouts/partials/responsive-img.html b/site/layouts/partials/responsive-img.html
new file mode 100644 (file)
index 0000000..06aafb6
--- /dev/null
@@ -0,0 +1,22 @@
+{{- /*
+  Accepts context, classes, imgPath, alt and lazyload
+*/ -}}
+
+{{- $lazy := .lazyload | default true -}}
+{{- $classes := slice "img-fluid" "mx-auto" | append (slice .classes) -}}
+
+{{- $basePath := path.Join "/docs" .context.Site.Params.docs_version (path.Dir .imgPath) -}}
+{{- $basename := path.BaseName .imgPath -}}
+{{- $ext := path.Ext .imgPath -}}
+{{- $imgPath := path.Join $basePath (printf "%s%s" $basename $ext) -}}
+{{- $imgPath2x := path.Join $basePath (printf "%s@2x%s" $basename $ext) -}}
+
+{{- with (imageConfig (path.Join "/site/static" $imgPath)) }}
+<img class="{{ delimit $classes " " }}"
+     srcset="{{ $imgPath }}, {{ $imgPath2x }} 2x"
+     src="{{ $imgPath }}"
+     alt="{{ $.alt }}"{{ if eq $lazy true }}
+     loading="lazy"{{ end }}
+     width="{{ .Width }}"
+     height="{{ .Height }}">
+{{- end }}