]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Docs: fix Bootstrap bundle loading consistency between dev and static builds (#42237)
authorJulien Déramond <juderamond@gmail.com>
Wed, 22 Apr 2026 01:51:52 +0000 (03:51 +0200)
committerGitHub <noreply@github.com>
Wed, 22 Apr 2026 01:51:52 +0000 (18:51 -0700)
* Docs: fix Bootstrap bundle loading consistency between dev and static builds

* Finish the fix for loading single copy of Bootstrap JS

---------

Co-authored-by: Mark Otto <markdotto@gmail.com>
site/src/assets/application.js
site/src/assets/search.js
site/src/assets/stackblitz.js
site/src/components/DocsScripts.astro
site/src/components/Scripts.astro

index 98ee50fd9326f63b676efd2a713c0e1252bec6d4..2936465acc6ada3685ad8af0ab6989f4f79a958f 100644 (file)
@@ -14,7 +14,9 @@ import snippets from './partials/snippets.js'
 import stickyNav from './partials/sticky.js'
 import tocDrawer from './partials/toc.js'
 
-sidebarScroll()
-snippets()
-stickyNav()
-tocDrawer()
+export default () => {
+  sidebarScroll()
+  snippets()
+  stickyNav()
+  tocDrawer()
+}
index 634cd6ba6f38ed23e627c4976de9caa9ebd8528f..2d8e868c85f131dae22621120ba08aba20a4c5d4 100644 (file)
@@ -11,7 +11,7 @@
 
 import docsearch from '@docsearch/js'
 
-(() => {
+export default () => {
   // These values will be replaced by Astro's Vite plugin
   const CONFIG = {
     apiKey: '__API_KEY__',
@@ -56,4 +56,4 @@ import docsearch from '@docsearch/js'
       })
     }
   })
-})()
+}
index ca00a31964bbdaf8cd8c274a15b74332e2329404..1ca38d1949eff02b4ed0784f71b31d0107c4273f 100644 (file)
@@ -22,19 +22,21 @@ const CONFIG = {
 }
 
 // Open in StackBlitz logic
-document.querySelectorAll('.btn-edit').forEach(btn => {
-  btn.addEventListener('click', event => {
-    const codeSnippet = event.target.closest('.bd-code-snippet')
-    const exampleEl = codeSnippet.querySelector('.bd-example')
+export default () => {
+  document.querySelectorAll('.btn-edit').forEach(btn => {
+    btn.addEventListener('click', event => {
+      const codeSnippet = event.target.closest('.bd-code-snippet')
+      const exampleEl = codeSnippet.querySelector('.bd-example')
 
-    const htmlSnippet = exampleEl.innerHTML
-    const jsSnippet = codeSnippet.querySelector('.btn-edit').getAttribute('data-sb-js-snippet')
-    // Get extra classes for this example
-    const classes = Array.from(exampleEl.classList).join(' ')
+      const htmlSnippet = exampleEl.innerHTML
+      const jsSnippet = codeSnippet.querySelector('.btn-edit').getAttribute('data-sb-js-snippet')
+      // Get extra classes for this example
+      const classes = Array.from(exampleEl.classList).join(' ')
 
-    openBootstrapSnippet(htmlSnippet, jsSnippet, classes)
+      openBootstrapSnippet(htmlSnippet, jsSnippet, classes)
+    })
   })
-})
+}
 
 const openBootstrapSnippet = (htmlSnippet, jsSnippet, classes) => {
   const indexHtml = `<!doctype html>
index 3fab14b26c3eb5190a4fea09497ad30e47209677..320d91e5f4de9e5790d8db72bd9f3f9cff7212ab 100644 (file)
@@ -1,4 +1,8 @@
 ---
 ---
 
-<script src="../assets/stackblitz.js"></script>
+<script>
+  import stackblitz from '../assets/stackblitz.js'
+
+  stackblitz()
+</script>
index 3ce53e2c4fec428bfb5202d3c17faa534ec6aca8..faad24c478b59df6542bea7f9a61113f91a6366b 100644 (file)
@@ -9,7 +9,12 @@ interface Props {
 const { layout } = Astro.props
 ---
 
-<script src="../assets/application.js"></script>
-<script src="../assets/search.js"></script>
+<script>
+  import application from '../assets/application.js'
+  import search from '../assets/search.js'
+
+  application()
+  search()
+</script>
 
 {layout === 'docs' && <DocsScripts />}