Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXhmikosR <xhmikosr@gmail.com>2020-04-29 21:03:26 +0300
committerGitHub <noreply@github.com>2020-04-29 21:03:26 +0300
commitdf88748eb72f61e61459621f6200d248c05dfe68 (patch)
treec7e4e81fb12fe591afd3d42f5883224f0fefe3c2
parent7153c2c3bf602e4ce4b82f674ac6918ba85bfe3d (diff)
Add a script to zip the built examples (#30130)
-rw-r--r--build/zip-examples.js51
-rw-r--r--config.yml1
-rw-r--r--package.json3
-rw-r--r--site/content/docs/4.3/getting-started/download.md6
-rw-r--r--site/layouts/_default/single.html1
5 files changed, 61 insertions, 1 deletions
diff --git a/build/zip-examples.js b/build/zip-examples.js
new file mode 100644
index 0000000000..0ac64e573c
--- /dev/null
+++ b/build/zip-examples.js
@@ -0,0 +1,51 @@
+#!/usr/bin/env node
+
+/*!
+ * Script to create the built examples zip archive;
+ * requires the `zip` command to be present!
+ * Copyright 2020 The Bootstrap Authors
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+'use strict'
+
+const path = require('path')
+const sh = require('shelljs')
+
+const { version, version_short: versionShort } = require('../package.json')
+
+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?')
+}
+
+// switch to the root dir
+sh.cd(path.join(__dirname, '..'))
+
+// remove any previously created folder with the same name
+sh.rm('-rf', folderName)
+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.rm(`${folderName}/index.html`)
+
+// sed-fu
+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)
+})
+
+// create the zip file
+sh.exec(`zip -r9 "${folderName}.zip" "${folderName}"`, { fatal: true })
+
+// remove the folder we created
+sh.rm('-rf', folderName)
diff --git a/config.yml b/config.yml
index 6d8d7b9137..5aa137d0bb 100644
--- a/config.yml
+++ b/config.yml
@@ -64,6 +64,7 @@ params:
download:
source: "https://github.com/twbs/bootstrap/archive/v4.3.1.zip"
dist: "https://github.com/twbs/bootstrap/releases/download/v4.3.1/bootstrap-4.3.1-dist.zip"
+ dist_examples: "https://github.com/twbs/bootstrap/releases/download/v4.3.1/bootstrap-4.3.1-examples.zip"
cdn:
# See https://www.srihash.org for info on how to generate the hashes
diff --git a/package.json b/package.json
index 5492fb03ce..88629fe14f 100644
--- a/package.json
+++ b/package.json
@@ -56,10 +56,11 @@
"docs-serve-only": "serve _gh_pages --listen 9001",
"lockfile-lint": "lockfile-lint --allowed-hosts npm --allowed-schemes https: --empty-hostname false --type npm --path package-lock.json",
"update-deps": "ncu -u -x karma-browserstack-launcher,popper.js && npm update && echo Manually update site/assets/js/vendor",
- "release": "npm-run-all dist release-sri release-zip docs-build",
+ "release": "npm-run-all dist release-sri docs-build release-zip*",
"release-sri": "node build/generate-sri.js",
"release-version": "node build/change-version.js",
"release-zip": "cross-env-shell \"rm -rf bootstrap-$npm_package_version-dist && cp -r dist/ bootstrap-$npm_package_version-dist && zip -r9 bootstrap-$npm_package_version-dist.zip bootstrap-$npm_package_version-dist && rm -rf bootstrap-$npm_package_version-dist\"",
+ "release-zip-examples": "node build/zip-examples.js",
"dist": "npm-run-all --parallel css js",
"test": "npm-run-all lint dist js-test docs-build docs-lint",
"netlify": "cross-env-shell HUGO_BASEURL=$DEPLOY_PRIME_URL npm-run-all dist release-sri docs-build",
diff --git a/site/content/docs/4.3/getting-started/download.md b/site/content/docs/4.3/getting-started/download.md
index c75f50cfea..767a34fb0f 100644
--- a/site/content/docs/4.3/getting-started/download.md
+++ b/site/content/docs/4.3/getting-started/download.md
@@ -28,6 +28,12 @@ Should you require [build tools]({{< docsref "/getting-started/build-tools#tooli
<a href="{{< param "download.source" >}}" class="btn btn-bd-primary" onclick="ga('send', 'event', 'Getting started', 'Download', 'Download source');">Download source</a>
+## Examples
+
+If you want to download and examine our [examples]({{< docsref "/examples" >}}), you can grab the already built examples:
+
+<a href="{{< param "download.dist_examples" >}}" class="btn btn-bd-primary" onclick="ga('send', 'event', 'Getting started', 'Download', 'Download Examples');">Download Examples</a>
+
## BootstrapCDN
Skip the download with [BootstrapCDN](https://www.bootstrapcdn.com/) to deliver cached version of Bootstrap's compiled CSS and JS to your project.
diff --git a/site/layouts/_default/single.html b/site/layouts/_default/single.html
index 02972c3dda..8ffbda50b7 100644
--- a/site/layouts/_default/single.html
+++ b/site/layouts/_default/single.html
@@ -14,6 +14,7 @@
<p class="bd-lead">{{ .Page.Params.Description | markdownify }}</p>
{{ if eq .Title "Examples" }}
<a href="{{ .Site.Params.download.source }}" class="btn btn-lg btn-bd-primary" onclick="ga('send', 'event', 'Examples', 'Hero', 'Download');">Download source code</a>
+ <a href="{{ .Site.Params.download.dist_examples }}" class="btn btn-lg btn-bd-primary mt-3 mt-sm-0 ml-sm-3 ml-md-5" onclick="ga('send', 'event', 'Examples', 'Hero', 'Download Examples');">Download Examples</a>
{{ end }}
{{ partial "ads" . }}
</div>