]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Improve build/zip-examples.js (#30759)
authorXhmikosR <xhmikosr@gmail.com>
Mon, 11 May 2020 15:01:18 +0000 (18:01 +0300)
committerGitHub <noreply@github.com>
Mon, 11 May 2020 15:01:18 +0000 (18:01 +0300)
* remove favicons meta tags
* copy the two brand images we use in the examples
* opy dist and brand images into an assets folder

build/zip-examples.js

index 0ac64e573cd950ac449bd87c09d88e1e1280a81e..c089036d6eccdd092e266d4b85c35e9027b97f44 100644 (file)
@@ -19,7 +19,7 @@ const folderName = `bootstrap-${version}-examples`
 sh.config.fatal = true
 
 if (!sh.test('-d', '_gh_pages')) {
-  throw new Error('The _gh_pages folder does not exist, did you forget building the docs?')
+  throw new Error('The "_gh_pages" folder does not exist, did you forget building the docs?')
 }
 
 // switch to the root dir
@@ -27,21 +27,29 @@ sh.cd(path.join(__dirname, '..'))
 
 // remove any previously created folder with the same name
 sh.rm('-rf', folderName)
+// create any folders so that `cp` works
 sh.mkdir('-p', folderName)
-
-// copy the examples and dist folders; for the examples we use `*`
-// so that its content are copied to the root dist dir
-sh.cp('-Rf', [
-  `_gh_pages/docs/${versionShort}/examples/*`,
-  `_gh_pages/docs/${versionShort}/dist/`
-], folderName)
+sh.mkdir('-p', `${folderName}/assets/brand/`)
+
+sh.cp('-Rf', `_gh_pages/docs/${versionShort}/examples/*`, folderName)
+sh.cp('-Rf', `_gh_pages/docs/${versionShort}/dist/`, `${folderName}/assets/`)
+// also copy the two brand images we use in the examples
+sh.cp('-f', [
+  `_gh_pages/docs/${versionShort}/assets/brand/bootstrap-outline.svg`,
+  `_gh_pages/docs/${versionShort}/assets/brand/bootstrap-solid.svg`
+], `${folderName}/assets/brand/`)
 sh.rm(`${folderName}/index.html`)
 
-// sed-fu
+// get all examples' HTML files
 sh.find(`${folderName}/**/*.html`).forEach(file => {
-  sh.sed('-i', new RegExp(`"/docs/${versionShort}/`, 'g'), '"../', file)
-  sh.sed('-i', /(<link href="\.\.\/.*) integrity=".*>/g, '$1>', file)
-  sh.sed('-i', /(<script src="\.\.\/.*) integrity=".*>/g, '$1></script>', file)
+  const fileContents = sh.cat(file)
+    .toString()
+    .replace(new RegExp(`"/docs/${versionShort}/`, 'g'), '"../')
+    .replace(/"..\/dist\//g, '"../assets/dist/')
+    .replace(/(<link href="\.\.\/.*) integrity=".*>/g, '$1>')
+    .replace(/(<script src="\.\.\/.*) integrity=".*>/g, '$1></script>')
+    .replace(/( +)<!-- favicons(.|\n)+<style>/i, '    <style>')
+  new sh.ShellString(fileContents).to(file)
 })
 
 // create the zip file