ultimate-jekyll-manager 0.0.16 → 0.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -1
- package/dist/build.js +16 -2
- package/dist/cli.js +4 -0
- package/dist/commands/setup.js +329 -59
- package/dist/defaults/.vscode/settings.json +1 -1
- package/dist/defaults/dist/_includes/app/elements/footer.html +1 -0
- package/dist/defaults/dist/_includes/app/elements/header.html +1 -0
- package/dist/defaults/dist/_includes/master/assets/css/cookieconsent.css +6 -0
- package/dist/defaults/dist/_includes/master/assets/css/defaults.css +384 -0
- package/dist/defaults/dist/_includes/master/assets/css/normalize.css +349 -0
- package/dist/defaults/dist/_includes/master/assets/css/reset.css +48 -0
- package/dist/defaults/dist/_includes/master/assets/css/social-share-kit.css +7 -0
- package/dist/defaults/dist/_includes/master/assets/scripts/debug/performance-metrics.js +59 -0
- package/dist/defaults/dist/_includes/master/assets/scripts/social-share-kit.js +438 -0
- package/dist/defaults/dist/_includes/master/global/foot.html +477 -0
- package/dist/defaults/dist/_includes/master/global/head.html +510 -0
- package/dist/defaults/dist/_includes/master/helpers/404.html +30 -0
- package/dist/defaults/dist/_includes/master/helpers/blog-author.html +37 -0
- package/dist/defaults/dist/_includes/master/helpers/blog-image.html +33 -0
- package/dist/defaults/dist/_includes/master/helpers/fake-comments.html +6 -0
- package/dist/defaults/dist/_includes/master/helpers/iframe.html +19 -0
- package/dist/defaults/dist/_includes/master/helpers/image.html +133 -0
- package/dist/defaults/dist/_includes/master/helpers/read-time.html +6 -0
- package/dist/defaults/dist/_includes/master/helpers/svg.html +44 -0
- package/dist/defaults/dist/_includes/master/misc/embed-manager.html +97 -0
- package/dist/defaults/dist/_includes/master/modules/admin/account-manager.html +30 -0
- package/dist/defaults/dist/_includes/master/modules/adunits/adsense-display.html +24 -0
- package/dist/defaults/dist/_includes/master/modules/adunits/adsense-in-article.html +24 -0
- package/dist/defaults/dist/_includes/master/modules/adunits/adsense-in-feed.html +32 -0
- package/dist/defaults/dist/_includes/master/modules/adunits/adsense-multiplex.html +23 -0
- package/dist/defaults/dist/_includes/master/modules/adunits/fallback/insert.html +164 -0
- package/dist/defaults/dist/_includes/master/modules/checkout/footer.html +43 -0
- package/dist/defaults/dist/_includes/master/modules/engagement/giscus.html +17 -0
- package/dist/defaults/dist/_includes/master/modules/engagement/social-share-kit.html +33 -0
- package/dist/defaults/dist/_includes/master/modules/user/dashboard.html +664 -0
- package/dist/defaults/dist/_includes/master/vendor/front-admin/v2/js/theme-prefix.html +164 -0
- package/dist/defaults/dist/_includes/themes/front/foot-pre-bundle.html +112 -0
- package/dist/defaults/dist/_includes/themes/front/foot.html +1 -0
- package/dist/defaults/dist/_includes/themes/front/head-pre-bundle.html +32 -0
- package/dist/defaults/dist/_includes/themes/front/head.html +1 -0
- package/dist/defaults/dist/_includes/themes/geeks/foot-pre-bundle.html +12 -0
- package/dist/defaults/dist/_includes/themes/geeks/foot.html +1 -0
- package/dist/defaults/dist/_includes/themes/geeks/footer.html +108 -0
- package/dist/defaults/dist/_includes/themes/geeks/head-pre-bundle.html +52 -0
- package/dist/defaults/dist/_includes/themes/geeks/head.html +1 -0
- package/dist/defaults/dist/_includes/themes/geeks/header.html +213 -0
- package/dist/defaults/dist/_includes/themes/placeholder/elements/footer.html +183 -0
- package/dist/defaults/dist/_includes/themes/placeholder/elements/header.html +123 -0
- package/dist/defaults/dist/_layouts/master/admin/main.html +361 -0
- package/dist/defaults/dist/_layouts/master/authentication/account.html +2369 -0
- package/dist/defaults/dist/_layouts/master/authentication/main.html +1147 -0
- package/dist/defaults/dist/_layouts/master/global/default.html +35 -0
- package/dist/defaults/dist/_layouts/master/misc/redirect.html +86 -0
- package/dist/defaults/dist/_layouts/master/reference/main.html +83 -0
- package/dist/defaults/dist/_layouts/placeholder/404.html +45 -0
- package/dist/defaults/dist/_layouts/placeholder/about.md +49 -0
- package/dist/defaults/dist/_layouts/placeholder/app.html +68 -0
- package/dist/defaults/dist/_layouts/placeholder/blog/index copy.html +213 -0
- package/dist/defaults/dist/_layouts/placeholder/blog/index.html +256 -0
- package/dist/defaults/dist/_layouts/placeholder/blog/post copy.html +454 -0
- package/dist/defaults/dist/_layouts/placeholder/blog/post.html +196 -0
- package/dist/defaults/dist/_layouts/placeholder/browser.html +781 -0
- package/dist/defaults/dist/_layouts/placeholder/careers.md +18 -0
- package/dist/defaults/dist/_layouts/placeholder/contact.html +56 -0
- package/dist/defaults/dist/_layouts/placeholder/download.md +50 -0
- package/dist/defaults/dist/_layouts/placeholder/extension.md +48 -0
- package/dist/defaults/dist/_layouts/placeholder/index.html +1454 -0
- package/dist/defaults/dist/_layouts/placeholder/legal/cookies.md +216 -0
- package/dist/defaults/dist/_layouts/placeholder/legal/privacy.md +94 -0
- package/dist/defaults/dist/_layouts/placeholder/legal/terms.md +172 -0
- package/dist/defaults/dist/_layouts/placeholder/pricing.html +515 -0
- package/dist/defaults/dist/_layouts/placeholder/team/index.html +41 -0
- package/dist/defaults/dist/_layouts/placeholder/team/profile.html +42 -0
- package/dist/defaults/dist/_layouts/themes/bootstrap/frontend/base.html +7 -0
- package/dist/defaults/dist/_layouts/themes/bootstrap/frontend/default.html +7 -0
- package/dist/defaults/dist/_layouts/themes/bootstrap/frontend/minimal.html +7 -0
- package/dist/defaults/dist/_layouts/themes/bootstrap/frontend/plain.html +7 -0
- package/dist/defaults/dist/_layouts/themes/front/frontend/default.html +19 -0
- package/dist/defaults/dist/_layouts/themes/front/frontend/plain.html +142 -0
- package/dist/defaults/dist/_layouts/themes/geeks/frontend/base.html +43 -0
- package/dist/defaults/dist/_layouts/themes/geeks/frontend/default.html +47 -0
- package/dist/defaults/dist/_layouts/themes/geeks/frontend/minimal.html +85 -0
- package/dist/defaults/dist/_layouts/themes/geeks/frontend/plain.html +42 -0
- package/dist/defaults/dist/ads.txt +5 -0
- package/dist/defaults/dist/budget.json +8 -0
- package/dist/defaults/dist/manifest.json +88 -0
- package/dist/defaults/dist/pages/admin/dashboard.html +826 -0
- package/dist/defaults/dist/pages/admin/lab/firestore.html +406 -0
- package/dist/defaults/dist/pages/admin/lab/webhook.html +265 -0
- package/dist/defaults/dist/pages/admin/notifications/create.html +639 -0
- package/dist/defaults/dist/pages/admin/notifications/index.html +14 -0
- package/dist/defaults/dist/pages/admin/notifications/vendor/preview.html +131 -0
- package/dist/defaults/dist/pages/admin/posts/create.html +1498 -0
- package/dist/defaults/dist/pages/admin/posts/index.html +14 -0
- package/dist/defaults/dist/pages/admin/posts/vendor/stackedit.html +58 -0
- package/dist/defaults/dist/pages/admin/posts/vendor/turndown.js +930 -0
- package/dist/defaults/dist/pages/admin/users/index.html +583 -0
- package/dist/defaults/dist/pages/admin/users/online.html +450 -0
- package/dist/defaults/dist/pages/authentication/account.html +15 -0
- package/dist/defaults/dist/pages/authentication/authentication-required.html +15 -0
- package/dist/defaults/dist/pages/authentication/authentication-success.html +15 -0
- package/dist/defaults/dist/pages/authentication/authentication-token.html +15 -0
- package/dist/defaults/dist/pages/authentication/forgot.html +15 -0
- package/dist/defaults/dist/pages/authentication/oauth2.html +199 -0
- package/dist/defaults/dist/pages/authentication/signin.html +15 -0
- package/dist/defaults/dist/pages/authentication/signout.html +15 -0
- package/dist/defaults/dist/pages/authentication/signup.html +15 -0
- package/dist/defaults/dist/pages/checkout/checkout.html +233 -0
- package/dist/defaults/dist/pages/checkout/confirmation.html +274 -0
- package/dist/defaults/dist/pages/email-subscription.html +272 -0
- package/dist/defaults/dist/pages/feedback/feedback.html +466 -0
- package/dist/defaults/dist/pages/status/index.html +240 -0
- package/dist/defaults/dist/pages/submission/confirmation.html +109 -0
- package/dist/defaults/dist/pages/test1.html +5 -0
- package/dist/defaults/dist/pages/test2.html +5 -0
- package/dist/defaults/dist/pages.json +42 -0
- package/dist/defaults/dist/robots.txt +33 -0
- package/dist/defaults/dist/sitemap.html +36 -0
- package/dist/defaults/dist/sitemap.xml +64 -0
- package/dist/defaults/src/pages/404.md +11 -0
- package/dist/defaults/src/pages/about.md +11 -0
- package/dist/defaults/src/pages/app.md +11 -0
- package/dist/defaults/src/pages/blog.md +11 -0
- package/dist/defaults/src/pages/careers.md +11 -0
- package/dist/defaults/src/pages/contact.md +11 -0
- package/dist/defaults/src/pages/download.md +11 -0
- package/dist/defaults/src/pages/extension.md +11 -0
- package/dist/defaults/src/pages/index.md +11 -0
- package/dist/defaults/src/pages/legal/cookies.md +11 -0
- package/dist/defaults/src/pages/legal/privacy.md +11 -0
- package/dist/defaults/src/pages/legal/terms.md +11 -0
- package/dist/defaults/src/pages/pricing.md +11 -0
- package/dist/defaults/src/pages/team.md +11 -0
- package/dist/defaults/src/redirects/_ +0 -0
- package/dist/defaults/src/service-worker.js +5 -2
- package/dist/gulp/main.js +9 -44
- package/dist/gulp/plugins/webpack/replace.js +26 -20
- package/dist/gulp/tasks/distribute.js +21 -108
- package/dist/gulp/tasks/imagemin.js +2 -1
- package/dist/gulp/tasks/jekyll.js +47 -5
- package/dist/gulp/tasks/sass.js +2 -1
- package/dist/gulp/tasks/webpack.js +3 -1
- package/package.json +2 -2
- package/dist/defaults/src/pages/index.html +0 -9
- package/dist/gulp/tasks/clean.js +0 -36
- /package/dist/defaults/dist/{_includes/main.html → _layouts/master/status/default.html} +0 -0
- /package/dist/defaults/dist/{feeds/posts.json → posts.json} +0 -0
- /package/dist/defaults/dist/{feeds/posts.xml → posts.xml} +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/admin/admin.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/authentication/account.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/authentication/authentication-required.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/authentication/authentication-success.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/authentication/authentication-token.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/authentication/forgot.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/authentication/helpers/cancel.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/authentication/helpers/change-password.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/authentication/helpers/recover.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/authentication/helpers/refund.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/authentication/helpers/register.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/authentication/helpers/reset-password.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/authentication/helpers/well-known-change-password.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/authentication/oauth2.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/authentication/signin.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/authentication/signout.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/authentication/signup.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/download/all.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/download/linux-debian.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/download/linux-snap.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/download/mac.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/download/windows.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/extension/browser-extension.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/extension/chrome.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/extension/edge.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/extension/firefox.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/extension/opera.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/extension/safari.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/legal/cookie-policy.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/legal/privacy-policy.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/legal/terms-of-service.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/legal/tos.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/misc/search-cse.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/socials/dev.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/socials/discord.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/socials/facebook.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/socials/github.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/socials/instagram.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/socials/linkedin.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/socials/mixcloud.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/socials/slack.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/socials/soundcloud.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/socials/spotify.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/socials/tiktok.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/socials/tumblr.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/socials/twitch.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/socials/twitter.html +0 -0
- /package/dist/defaults/dist/{pages/redirects → redirects}/socials/youtube.html +0 -0
- /package/dist/defaults/{dist/_layouts/main.html → src/data/_} +0 -0
package/README.md
CHANGED
|
@@ -40,9 +40,18 @@ npm start
|
|
|
40
40
|
```
|
|
41
41
|
|
|
42
42
|
## 📦 How to sync with the template
|
|
43
|
-
1. Simply run `
|
|
43
|
+
1. Simply run `npm start` in Terminal to get all the latest updates from the **Ultimate Jekyll template** and launch your website in the browser.
|
|
44
44
|
|
|
45
45
|
## 🌎 Publishing your website
|
|
46
46
|
1. Change the `url` in `_config.yml` to your domain.
|
|
47
47
|
2. Push your changes to GitHub using `npm run dist` in Terminal.
|
|
48
48
|
|
|
49
|
+
## ⛳️ Flags
|
|
50
|
+
* `--browser=false` - Disables the browser from opening when running `npm start`.
|
|
51
|
+
```bash
|
|
52
|
+
npm start -- --browser=false
|
|
53
|
+
```
|
|
54
|
+
* `--debug=true` - Enables logging of extra information when running `npm start`.
|
|
55
|
+
```bash
|
|
56
|
+
npm start -- --debug=true
|
|
57
|
+
```
|
package/dist/build.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// Libraries
|
|
2
2
|
const jetpack = require('fs-jetpack');
|
|
3
|
-
const path = require('path');
|
|
4
3
|
const yaml = require('js-yaml');
|
|
5
|
-
const
|
|
4
|
+
const argv = require('yargs').argv;
|
|
5
|
+
const { force } = require('node-powertools');
|
|
6
6
|
|
|
7
7
|
// Class
|
|
8
8
|
function Manager() {
|
|
@@ -30,6 +30,20 @@ Manager.prototype.logger = function (name) {
|
|
|
30
30
|
return this._logger;
|
|
31
31
|
};
|
|
32
32
|
|
|
33
|
+
// argv
|
|
34
|
+
Manager.getArguments = function () {
|
|
35
|
+
const options = argv || {};
|
|
36
|
+
|
|
37
|
+
// Fix
|
|
38
|
+
options._ = options._ || [];
|
|
39
|
+
options.browser = force(options.browser === undefined ? true : options.browser, 'boolean');
|
|
40
|
+
options.debug = force(options.debug === undefined ? false : options.debug, 'boolean');
|
|
41
|
+
|
|
42
|
+
// Return
|
|
43
|
+
return options;
|
|
44
|
+
};
|
|
45
|
+
Manager.prototype.getArguments = Manager.getArguments;
|
|
46
|
+
|
|
33
47
|
// isServer
|
|
34
48
|
Manager.isServer = function () {
|
|
35
49
|
return process.env.UJ_IS_SERVER === 'true';
|
package/dist/cli.js
CHANGED
|
@@ -41,6 +41,10 @@ function resolveCommand(options) {
|
|
|
41
41
|
function Main() {}
|
|
42
42
|
|
|
43
43
|
Main.prototype.process = async function (options) {
|
|
44
|
+
// Fix options
|
|
45
|
+
options = options || {};
|
|
46
|
+
options._ = options._ || [];
|
|
47
|
+
|
|
44
48
|
// Determine the command (use default if not provided)
|
|
45
49
|
const command = resolveCommand(options);
|
|
46
50
|
|
package/dist/commands/setup.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Libraries
|
|
2
2
|
const Manager = new (require('../build.js'));
|
|
3
3
|
const logger = Manager.logger('setup');
|
|
4
|
+
const argv = Manager.getArguments();
|
|
4
5
|
const path = require('path');
|
|
5
6
|
const jetpack = require('fs-jetpack');
|
|
6
7
|
const version = require('wonderful-version');
|
|
@@ -17,6 +18,7 @@ const templating = {
|
|
|
17
18
|
bundlerVersion: version.clean(package.engines.bundler),
|
|
18
19
|
nodeVersion: version.major(package.engines.node),
|
|
19
20
|
};
|
|
21
|
+
const config = Manager.getConfig();
|
|
20
22
|
|
|
21
23
|
// Dependency MAP
|
|
22
24
|
const DEPENDENCY_MAP = {
|
|
@@ -26,15 +28,48 @@ const DEPENDENCY_MAP = {
|
|
|
26
28
|
// File MAP
|
|
27
29
|
const FILE_MAP = {
|
|
28
30
|
// Files to skip overwrite
|
|
29
|
-
'hooks/**/*': {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
'hooks/**/*': {
|
|
32
|
+
overwrite: false,
|
|
33
|
+
},
|
|
34
|
+
'src/**/*': {
|
|
35
|
+
overwrite: false,
|
|
36
|
+
},
|
|
37
|
+
'src/**/*.{html,md}': {
|
|
38
|
+
skip: (file) => {
|
|
39
|
+
// Get the name
|
|
40
|
+
const name = path.basename(file.name, path.extname(file.name));
|
|
41
|
+
const htmlFilePath = path.join(file.destination, `${name}.html`);
|
|
42
|
+
const mdFilePath = path.join(file.destination, `${name}.md`);
|
|
43
|
+
const htmlFileExists = jetpack.exists(htmlFilePath);
|
|
44
|
+
const mdFileExists = jetpack.exists(mdFilePath);
|
|
45
|
+
const eitherExists = htmlFileExists || mdFileExists;
|
|
46
|
+
|
|
47
|
+
console.log('--htmlFilePath', htmlFilePath);
|
|
48
|
+
console.log('--mdFilePath', mdFilePath);
|
|
49
|
+
console.log('--htmlFileExists', htmlFileExists);
|
|
50
|
+
console.log('--mdFileExists', mdFileExists);
|
|
51
|
+
console.log('--eitherExists', eitherExists);
|
|
52
|
+
|
|
53
|
+
// Skip if both files exist
|
|
54
|
+
return eitherExists;
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
|
|
58
|
+
// Files to rewrite path
|
|
59
|
+
'dist/pages/**/*': {
|
|
60
|
+
path: (file) => file.source.replace('dist/pages', 'dist'),
|
|
61
|
+
},
|
|
62
|
+
'_.gitignore': {
|
|
63
|
+
name: (file) => file.name.replace('_.gitignore', '.gitignore'),
|
|
64
|
+
},
|
|
34
65
|
|
|
35
66
|
// Files to run templating on
|
|
36
|
-
'.github/workflows/build.yml': {
|
|
37
|
-
|
|
67
|
+
'.github/workflows/build.yml': {
|
|
68
|
+
template: templating,
|
|
69
|
+
},
|
|
70
|
+
'.nvmrc': {
|
|
71
|
+
template: templating,
|
|
72
|
+
},
|
|
38
73
|
}
|
|
39
74
|
|
|
40
75
|
module.exports = async function (options) {
|
|
@@ -47,6 +82,9 @@ module.exports = async function (options) {
|
|
|
47
82
|
project.devDependencies = project.devDependencies || {};
|
|
48
83
|
|
|
49
84
|
try {
|
|
85
|
+
// Log current working directory
|
|
86
|
+
await logCWD();
|
|
87
|
+
|
|
50
88
|
// Ensure this package is up-to-date
|
|
51
89
|
await updateManager();
|
|
52
90
|
|
|
@@ -68,6 +106,15 @@ module.exports = async function (options) {
|
|
|
68
106
|
// Build files
|
|
69
107
|
await buildSiteFiles();
|
|
70
108
|
|
|
109
|
+
// Copy all files from src/defaults/dist on first run
|
|
110
|
+
// await copyDefaultDistFiles();
|
|
111
|
+
|
|
112
|
+
// Create CNAME
|
|
113
|
+
await createCNAME();
|
|
114
|
+
|
|
115
|
+
// Fetch firebase-auth files
|
|
116
|
+
await fetchFirebaseAuth();
|
|
117
|
+
|
|
71
118
|
// Check which locality we are using
|
|
72
119
|
await checkLocality();
|
|
73
120
|
|
|
@@ -77,6 +124,12 @@ module.exports = async function (options) {
|
|
|
77
124
|
}
|
|
78
125
|
};
|
|
79
126
|
|
|
127
|
+
async function logCWD() {
|
|
128
|
+
logger.log('Current working directory:', process.cwd());
|
|
129
|
+
// logger.log('Current working directory 2:', await execute('pwd'));
|
|
130
|
+
// logger.log('Current working directory 3:', await execute('ls -al'));
|
|
131
|
+
}
|
|
132
|
+
|
|
80
133
|
async function updateManager() {
|
|
81
134
|
const npm = new NPM();
|
|
82
135
|
|
|
@@ -89,20 +142,25 @@ async function updateManager() {
|
|
|
89
142
|
}, (e) => {
|
|
90
143
|
return '0.0.0';
|
|
91
144
|
});
|
|
145
|
+
const isUpToDate = version.is(installedVersion, '>=', latestVersion);
|
|
146
|
+
const levelDifference = version.levelDifference(installedVersion, latestVersion);
|
|
147
|
+
|
|
148
|
+
// Log
|
|
149
|
+
logVersionCheck('ultimate-jekyll-manager', installedVersion, latestVersion, isUpToDate);
|
|
92
150
|
|
|
93
151
|
// Quit if local
|
|
94
152
|
if (installedVersion.startsWith('file:')) {
|
|
95
|
-
return
|
|
153
|
+
return;
|
|
96
154
|
}
|
|
97
155
|
|
|
98
|
-
// Log
|
|
99
|
-
logger.log('Installed Version:', installedVersion);
|
|
100
|
-
logger.log('Latest Version:', latestVersion);
|
|
101
|
-
|
|
102
156
|
// Check if we need to update
|
|
103
|
-
if (
|
|
104
|
-
|
|
105
|
-
|
|
157
|
+
if (!isUpToDate) {
|
|
158
|
+
// Quit if major version difference
|
|
159
|
+
if (levelDifference === 'major') {
|
|
160
|
+
return logger.error(`Major version difference detected. Please update to ${latestVersion} manually.`);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// Install the latest version
|
|
106
164
|
await install('ultimate-jekyll-manager', latestVersion);
|
|
107
165
|
}
|
|
108
166
|
}
|
|
@@ -110,15 +168,13 @@ async function updateManager() {
|
|
|
110
168
|
async function ensureNodeVersion() {
|
|
111
169
|
const installedVersion = version.clean(process.version);
|
|
112
170
|
const requiredVersion = version.clean(package.engines.node);
|
|
171
|
+
const isUpToDate = version.is(installedVersion, '>=', requiredVersion);
|
|
113
172
|
|
|
114
173
|
// Log
|
|
115
|
-
|
|
116
|
-
logger.log('Required Node Version:', requiredVersion);
|
|
174
|
+
logVersionCheck('Node.js', installedVersion, requiredVersion, isUpToDate);
|
|
117
175
|
|
|
118
176
|
// Check if we need to update
|
|
119
|
-
if (
|
|
120
|
-
return logger.log('Node version is up-to-date.');
|
|
121
|
-
} else {
|
|
177
|
+
if (!isUpToDate) {
|
|
122
178
|
throw new Error(`Node version is out-of-date. Required version is ${requiredVersion}.`);
|
|
123
179
|
}
|
|
124
180
|
}
|
|
@@ -128,15 +184,13 @@ async function ensureBundlerVersion() {
|
|
|
128
184
|
(await execute('bundler -v', { log: false })).match(/(\d+\.\d+\.\d+)/)[0]
|
|
129
185
|
);
|
|
130
186
|
const requiredVersion = version.clean(package.engines.bundler);
|
|
187
|
+
const isUpToDate = version.is(installedVersion, '>=', requiredVersion);
|
|
131
188
|
|
|
132
189
|
// Log
|
|
133
|
-
|
|
134
|
-
logger.log('Required Bundler Version:', requiredVersion);
|
|
190
|
+
logVersionCheck('Bundler', installedVersion, requiredVersion, isUpToDate);
|
|
135
191
|
|
|
136
192
|
// Check if we need to update
|
|
137
|
-
if (
|
|
138
|
-
return logger.log('Bundler version is up-to-date.');
|
|
139
|
-
} else {
|
|
193
|
+
if (!isUpToDate) {
|
|
140
194
|
throw new Error(`Bundler version is out-of-date. Required version is ${requiredVersion}.`);
|
|
141
195
|
}
|
|
142
196
|
}
|
|
@@ -146,15 +200,13 @@ async function ensureRubyVersion() {
|
|
|
146
200
|
(await execute('ruby -v', { log: false })).match(/(\d+\.\d+\.\d+)/)[0]
|
|
147
201
|
);
|
|
148
202
|
const requiredVersion = version.clean(package.engines.ruby);
|
|
203
|
+
const isUpToDate = version.is(installedVersion, '>=', requiredVersion);
|
|
149
204
|
|
|
150
205
|
// Log
|
|
151
|
-
|
|
152
|
-
logger.log('Required Ruby Version:', requiredVersion);
|
|
206
|
+
logVersionCheck('Ruby', installedVersion, requiredVersion, isUpToDate);
|
|
153
207
|
|
|
154
208
|
// Check if we need to update
|
|
155
|
-
if (
|
|
156
|
-
return logger.log('Ruby version is up-to-date.');
|
|
157
|
-
} else {
|
|
209
|
+
if (!isUpToDate) {
|
|
158
210
|
throw new Error(`Ruby version is out-of-date. Required version is ${requiredVersion}.`);
|
|
159
211
|
}
|
|
160
212
|
}
|
|
@@ -163,19 +215,24 @@ async function ensurePeerDependencies() {
|
|
|
163
215
|
const requiredPeerDependencies = package.peerDependencies || {};
|
|
164
216
|
|
|
165
217
|
// Loop through and make sure project has AT LEAST the required version
|
|
166
|
-
for (
|
|
167
|
-
const projectDependencyVersion = project.dependencies[dependency] || project.devDependencies[dependency];
|
|
218
|
+
for (let [dependency, ver] of Object.entries(requiredPeerDependencies)) {
|
|
219
|
+
const projectDependencyVersion = version.clean(project.dependencies[dependency] || project.devDependencies[dependency]);
|
|
168
220
|
const location = DEPENDENCY_MAP[dependency] === 'dev' ? '--save-dev' : '';
|
|
221
|
+
const isUpToDate = version.is(projectDependencyVersion, '>=', ver);
|
|
222
|
+
|
|
223
|
+
// Clean version if needed
|
|
224
|
+
ver = version.clean(ver);
|
|
169
225
|
|
|
170
226
|
// Log
|
|
171
|
-
logger.log('Checking peer dep:', dependency, '-->', projectDependencyVersion, '>=', ver);
|
|
227
|
+
// logger.log('Checking peer dep:', dependency, '-->', projectDependencyVersion, '>=', ver);
|
|
228
|
+
logVersionCheck(dependency, projectDependencyVersion, ver, isUpToDate);
|
|
172
229
|
|
|
173
230
|
// Install if not found
|
|
174
231
|
if (
|
|
175
232
|
// Not found
|
|
176
233
|
!projectDependencyVersion
|
|
177
234
|
// Not the right version
|
|
178
|
-
||
|
|
235
|
+
|| !isUpToDate
|
|
179
236
|
) {
|
|
180
237
|
await install(dependency, ver, location);
|
|
181
238
|
}
|
|
@@ -239,6 +296,8 @@ function buildSiteFiles() {
|
|
|
239
296
|
'**/*',
|
|
240
297
|
|
|
241
298
|
// Files to exclude
|
|
299
|
+
// Dist files
|
|
300
|
+
// '!dist/**',
|
|
242
301
|
'!**/.DS_Store', // TODO: NOT WORKING
|
|
243
302
|
]
|
|
244
303
|
|
|
@@ -249,44 +308,100 @@ function buildSiteFiles() {
|
|
|
249
308
|
nodir: true,
|
|
250
309
|
});
|
|
251
310
|
|
|
311
|
+
const debug = argv.debug
|
|
312
|
+
|| true;
|
|
313
|
+
|
|
252
314
|
// Log
|
|
253
|
-
|
|
315
|
+
logger.log(`Preparing to copy ${files.length} default files...`);
|
|
254
316
|
|
|
255
317
|
// Loop
|
|
256
318
|
for (const file of files) {
|
|
319
|
+
// Build item
|
|
320
|
+
const item = {
|
|
321
|
+
source: null,
|
|
322
|
+
destination: null,
|
|
323
|
+
name: null,
|
|
324
|
+
}
|
|
257
325
|
// Get the destination
|
|
258
|
-
const source = path.join(dir, file);
|
|
259
|
-
let destination = path.join(process.cwd(), file.replace('defaults/', ''));
|
|
260
|
-
const filename = path.basename(destination);
|
|
326
|
+
// const source = path.join(dir, file);
|
|
327
|
+
// let destination = path.join(process.cwd(), file.replace('defaults/', ''));
|
|
328
|
+
// const filename = path.basename(destination);
|
|
329
|
+
|
|
330
|
+
// Set the item properties
|
|
331
|
+
item.source = path.dirname(path.join(dir, file));
|
|
332
|
+
item.name = path.basename(file);
|
|
333
|
+
item.destination = path.dirname(path.join(process.cwd(), file.replace('defaults/', '')));
|
|
334
|
+
|
|
335
|
+
// Get options
|
|
261
336
|
const options = getFileOptions(file);
|
|
337
|
+
const ogName = item.name;
|
|
262
338
|
|
|
263
339
|
// Quit if file is '_'
|
|
264
|
-
|
|
340
|
+
// We have files like this to trigger the creation of directories without them being ignored by git
|
|
341
|
+
if (item.name === '_') {
|
|
265
342
|
// First, create the directory around the file
|
|
266
|
-
jetpack.dir(destination
|
|
343
|
+
jetpack.dir(item.destination);
|
|
267
344
|
|
|
268
345
|
// Skip
|
|
269
346
|
continue;
|
|
270
347
|
}
|
|
271
348
|
|
|
272
|
-
//
|
|
273
|
-
if (options.
|
|
274
|
-
|
|
349
|
+
// Resolve name
|
|
350
|
+
if (typeof options.name === 'function') {
|
|
351
|
+
item.name = options.name(item);
|
|
275
352
|
}
|
|
276
353
|
|
|
277
|
-
//
|
|
278
|
-
|
|
354
|
+
// Resolve path
|
|
355
|
+
if (typeof options.path === 'function') {
|
|
356
|
+
item.destination = options.path(item);
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
// Resolve overwrite
|
|
360
|
+
if (typeof options.overwrite === 'function') {
|
|
361
|
+
options.overwrite = options.overwrite(item);
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
// Resolve skip
|
|
365
|
+
if (typeof options.skip === 'function') {
|
|
366
|
+
options.skip = options.skip(item);
|
|
367
|
+
}
|
|
279
368
|
|
|
280
369
|
// Log
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
370
|
+
if (debug) {
|
|
371
|
+
logger.log(`Copying defaults...`);
|
|
372
|
+
logger.log(` name: ${item.name}`);
|
|
373
|
+
logger.log(` from: ${item.source}`);
|
|
374
|
+
logger.log(` to: ${item.destination}`);
|
|
375
|
+
logger.log(` overwrite: ${options.overwrite}`);
|
|
376
|
+
logger.log(` skip: ${options.skip}`);
|
|
377
|
+
|
|
378
|
+
// logger.log('File:', file);
|
|
379
|
+
// logger.log('filename:', filename);
|
|
380
|
+
// logger.log('options:', options);
|
|
381
|
+
// // logger.log('contents:', jetpack.read(source));
|
|
382
|
+
// logger.log('source:', source);
|
|
383
|
+
// logger.log('Destination:', destination);
|
|
384
|
+
console.log('\n');
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
// Skip if needed
|
|
388
|
+
if (options.skip) {
|
|
389
|
+
continue;
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
|
|
393
|
+
// Get final paths
|
|
394
|
+
const finalSource = path.join(item.source, ogName);
|
|
395
|
+
const finalDestination = path.join(item.destination, item.name);
|
|
396
|
+
|
|
397
|
+
// console.log('---finalSource', finalSource);
|
|
398
|
+
// console.log('---finalDestination', finalDestination);
|
|
399
|
+
|
|
400
|
+
// Check if the file exists
|
|
401
|
+
const exists = jetpack.exists(finalDestination);
|
|
287
402
|
|
|
288
403
|
// Skip if exists and we don't want to overwrite
|
|
289
|
-
if (
|
|
404
|
+
if (!options.overwrite && exists) {
|
|
290
405
|
continue;
|
|
291
406
|
}
|
|
292
407
|
|
|
@@ -296,31 +411,186 @@ function buildSiteFiles() {
|
|
|
296
411
|
// logger.log('Running templating on:', destination);
|
|
297
412
|
|
|
298
413
|
// Run the templating
|
|
299
|
-
const contents = jetpack.read(
|
|
414
|
+
const contents = jetpack.read(finalSource);
|
|
300
415
|
const templated = template(contents, options.template);
|
|
301
416
|
|
|
302
417
|
// Write the file
|
|
303
|
-
jetpack.write(
|
|
418
|
+
jetpack.write(finalDestination, templated);
|
|
304
419
|
} else {
|
|
305
420
|
// Copy the file
|
|
306
|
-
jetpack.copy(
|
|
421
|
+
jetpack.copy(finalSource, finalDestination, { overwrite: true });
|
|
307
422
|
}
|
|
308
423
|
}
|
|
309
424
|
}
|
|
425
|
+
|
|
426
|
+
// Copy default dist files
|
|
427
|
+
// async function copyDefaultDistFiles() {
|
|
428
|
+
// // Get the directory
|
|
429
|
+
// const dir = path.join(__dirname, '..', '..', 'defaults', 'dist');
|
|
430
|
+
|
|
431
|
+
// // Log
|
|
432
|
+
// logger.log(`Copying default dist files from ${dir}`);
|
|
433
|
+
|
|
434
|
+
// // Copy the files
|
|
435
|
+
// jetpack.copy(dir, 'dist', { overwrite: true });
|
|
436
|
+
// }
|
|
437
|
+
// async function copyDefaultDistFiles() {
|
|
438
|
+
// // Loop through all files in /defaults directory
|
|
439
|
+
// const dir = path.join(__dirname, '..', '..', 'defaults', 'dist');
|
|
440
|
+
// const input = [
|
|
441
|
+
// // Files to include
|
|
442
|
+
// '**/*',
|
|
443
|
+
|
|
444
|
+
// // Files to exclude
|
|
445
|
+
// '!**/.DS_Store', // TODO: NOT WORKING
|
|
446
|
+
// ]
|
|
447
|
+
|
|
448
|
+
// // Get all files
|
|
449
|
+
// const files = glob(input, {
|
|
450
|
+
// cwd: dir,
|
|
451
|
+
// dot: true,
|
|
452
|
+
// nodir: true,
|
|
453
|
+
// });
|
|
454
|
+
|
|
455
|
+
// // Log
|
|
456
|
+
// logger.log(`Preparing to copy ${files.length} default dist files...`);
|
|
457
|
+
|
|
458
|
+
// for (const file of files) {
|
|
459
|
+
// // const relativePath = path.relative(path.join(__dirname, '..', '..', 'defaults', 'dist'), file);
|
|
460
|
+
// // const destination = path.join(__dirname, '..', '..', 'dist', relativePath.replace('pages', ''));
|
|
461
|
+
// const source = path.join(dir, file);
|
|
462
|
+
// const destination = path.join(process.cwd(), file.replace('dist/pages', 'dist'));
|
|
463
|
+
|
|
464
|
+
// // Log
|
|
465
|
+
// if (true) {
|
|
466
|
+
// logger.log(`Copying default dist file...`);
|
|
467
|
+
// logger.log(` file: ${file}`);
|
|
468
|
+
// logger.log(` from: ${source}`);
|
|
469
|
+
// logger.log(` to: ${destination}`);
|
|
470
|
+
// console.log('\n');
|
|
471
|
+
// }
|
|
472
|
+
|
|
473
|
+
// // Ensure the directory exists
|
|
474
|
+
// // await jetpack.dir(path.dirname(destination));
|
|
475
|
+
|
|
476
|
+
// // Copy the file
|
|
477
|
+
// // await jetpack.copy(file, destination, { overwrite: true });
|
|
478
|
+
// }
|
|
479
|
+
// }
|
|
480
|
+
|
|
481
|
+
// Create CNAME
|
|
482
|
+
async function createCNAME() {
|
|
483
|
+
// Get the CNAME
|
|
484
|
+
const url = config.url;
|
|
485
|
+
const host = new URL(url).host
|
|
486
|
+
|
|
487
|
+
// Write to file
|
|
488
|
+
jetpack.write('dist/CNAME', host);
|
|
489
|
+
|
|
490
|
+
// Log
|
|
491
|
+
logger.log('Created CNAME');
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
// Fetch firebase-auth files
|
|
495
|
+
async function fetchFirebaseAuth() {
|
|
496
|
+
const managerConfig = config.settings['manager-configuration'];
|
|
497
|
+
const firebase = eval(`(${managerConfig})`)?.libraries?.firebase_app?.config;
|
|
498
|
+
const projectId = firebase.projectId || 'ultimate-jekyll';
|
|
499
|
+
const base = `https://${projectId}.firebaseapp.com`;
|
|
500
|
+
const files = [
|
|
501
|
+
{
|
|
502
|
+
remote: '__/auth/handler',
|
|
503
|
+
filename: 'handler.html',
|
|
504
|
+
},
|
|
505
|
+
{
|
|
506
|
+
remote: '__/auth/handler.js',
|
|
507
|
+
},
|
|
508
|
+
{
|
|
509
|
+
remote: '__/auth/experiments.js',
|
|
510
|
+
},
|
|
511
|
+
{
|
|
512
|
+
remote: '__/auth/iframe',
|
|
513
|
+
filename: 'iframe.html',
|
|
514
|
+
},
|
|
515
|
+
{
|
|
516
|
+
remote: '__/auth/iframe.js',
|
|
517
|
+
},
|
|
518
|
+
{
|
|
519
|
+
remote: '__/firebase/init.json',
|
|
520
|
+
}
|
|
521
|
+
]
|
|
522
|
+
const promises = [];
|
|
523
|
+
const output = './dist';
|
|
524
|
+
|
|
525
|
+
// Loop through files
|
|
526
|
+
files.forEach((file) => {
|
|
527
|
+
// Get the remote URL
|
|
528
|
+
const url = `${base}/${file.remote}`;
|
|
529
|
+
|
|
530
|
+
// Get the local path
|
|
531
|
+
const fileName = file.filename ? path.basename(file.filename) : path.basename(file.remote);
|
|
532
|
+
// console.log('---fileName', fileName);
|
|
533
|
+
|
|
534
|
+
const filePath = path.join(path.dirname(file.remote), fileName);
|
|
535
|
+
// console.log('---filePath', filePath);
|
|
536
|
+
|
|
537
|
+
const finalPath = path.join(output, filePath);
|
|
538
|
+
// console.log('---finalPath', finalPath);
|
|
539
|
+
|
|
540
|
+
// Push to promises
|
|
541
|
+
promises.push(
|
|
542
|
+
fetch(url, {
|
|
543
|
+
response: 'text',
|
|
544
|
+
})
|
|
545
|
+
.then((r) => {
|
|
546
|
+
// Write to file
|
|
547
|
+
// jetpack.write(finalPath, r);
|
|
548
|
+
|
|
549
|
+
jetpack.write(finalPath,
|
|
550
|
+
'---\n'
|
|
551
|
+
+ `permalink: /${file.remote}\n`
|
|
552
|
+
+ '---\n'
|
|
553
|
+
+ '\n'
|
|
554
|
+
+ r
|
|
555
|
+
)
|
|
556
|
+
})
|
|
557
|
+
);
|
|
558
|
+
});
|
|
559
|
+
|
|
560
|
+
// Await all promises
|
|
561
|
+
await Promise.all(promises);
|
|
562
|
+
|
|
563
|
+
// Log
|
|
564
|
+
logger.log('Fetched firebase-auth files');
|
|
565
|
+
}
|
|
566
|
+
|
|
310
567
|
function getFileOptions(filePath) {
|
|
311
568
|
const defaults = {
|
|
312
569
|
overwrite: true,
|
|
313
|
-
|
|
570
|
+
name: null,
|
|
571
|
+
path: null,
|
|
314
572
|
template: null,
|
|
573
|
+
skip: false,
|
|
315
574
|
};
|
|
316
575
|
|
|
576
|
+
let options = { ...defaults };
|
|
577
|
+
|
|
317
578
|
// Loop through all patterns
|
|
318
579
|
for (const pattern in FILE_MAP) {
|
|
319
580
|
if (minimatch(filePath, pattern)) {
|
|
320
|
-
|
|
581
|
+
options = { ...options, ...FILE_MAP[pattern] };
|
|
321
582
|
}
|
|
322
583
|
}
|
|
323
584
|
|
|
324
|
-
|
|
325
|
-
|
|
585
|
+
return options;
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
function logVersionCheck(name, installedVersion, latestVersion, isUpToDate) {
|
|
589
|
+
// Quit if local
|
|
590
|
+
if (installedVersion.startsWith('file:')) {
|
|
591
|
+
isUpToDate = true;
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
// Log
|
|
595
|
+
logger.log(`Checking if ${name} is up to date (${logger.format.bold(installedVersion)} >= ${logger.format.bold(latestVersion)}): ${isUpToDate ? logger.format.green('Yes') : logger.format.red('No')}`);
|
|
326
596
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!-- App Footer Content -->
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!-- App Header Content -->
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
.cc-window{opacity:1;transition:opacity 1s ease}.cc-window.cc-invisible{opacity:0}.cc-animate.cc-revoke{transition:transform 1s ease}.cc-animate.cc-revoke.cc-top{transform:translateY(-2em)}.cc-animate.cc-revoke.cc-bottom{transform:translateY(2em)}.cc-animate.cc-revoke.cc-active.cc-bottom,.cc-animate.cc-revoke.cc-active.cc-top,.cc-revoke:hover{transform:translateY(0)}.cc-grower{max-height:0;overflow:hidden;transition:max-height 1s}
|
|
2
|
+
.cc-link,.cc-revoke:hover{text-decoration:underline}.cc-revoke,.cc-window{position:fixed;overflow:hidden;box-sizing:border-box;font-family:Helvetica,Calibri,Arial,sans-serif;font-size:16px;line-height:1.5em;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;z-index:9999}.cc-window.cc-static{position:static}.cc-window.cc-floating{padding:2em;max-width:24em;-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner{padding:1em 1.8em;width:100%;-ms-flex-direction:row;flex-direction:row}.cc-revoke{padding:.5em}.cc-header{font-size:18px;font-weight:700}.cc-btn,.cc-close,.cc-link,.cc-revoke{cursor:pointer}.cc-link{opacity:.8;display:inline-block;padding:.2em}.cc-link:hover{opacity:1}.cc-link:active,.cc-link:visited{color:initial}.cc-btn{display:block;padding:.4em .8em;font-size:.9em;font-weight:700;border-width:2px;border-style:solid;text-align:center;white-space:nowrap}.cc-highlight .cc-btn:first-child{background-color:transparent;border-color:transparent}.cc-highlight .cc-btn:first-child:focus,.cc-highlight .cc-btn:first-child:hover{background-color:transparent;text-decoration:underline}.cc-close{display:block;position:absolute;top:.5em;right:.5em;font-size:1.6em;opacity:.9;line-height:.75}.cc-close:focus,.cc-close:hover{opacity:1}
|
|
3
|
+
.cc-revoke.cc-top{top:0;left:3em;border-bottom-left-radius:.5em;border-bottom-right-radius:.5em}.cc-revoke.cc-bottom{bottom:0;left:3em;border-top-left-radius:.5em;border-top-right-radius:.5em}.cc-revoke.cc-left{left:3em;right:unset}.cc-revoke.cc-right{right:3em;left:unset}.cc-top{top:1em}.cc-left{left:1em}.cc-right{right:1em}.cc-bottom{bottom:1em}.cc-floating>.cc-link{margin-bottom:1em}.cc-floating .cc-message{display:block;margin-bottom:1em}.cc-window.cc-floating .cc-compliance{-ms-flex:1 0 auto;flex:1 0 auto}.cc-window.cc-banner{-ms-flex-align:center;align-items:center}.cc-banner.cc-top{left:0;right:0;top:0}.cc-banner.cc-bottom{left:0;right:0;bottom:0}.cc-banner .cc-message{display:block;-ms-flex:1 1 auto;flex:1 1 auto;max-width:100%;margin-right:1em}.cc-compliance{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:justify;align-content:space-between}.cc-floating .cc-compliance>.cc-btn{-ms-flex:1;flex:1}.cc-btn+.cc-btn{margin-left:.5em}
|
|
4
|
+
@media print{.cc-revoke,.cc-window{display:none}}@media screen and (max-width:900px){.cc-btn{white-space:normal}}@media screen and (max-width:414px) and (orientation:portrait),screen and (max-width:736px) and (orientation:landscape){.cc-window.cc-top{top:0}.cc-window.cc-bottom{bottom:0}.cc-window.cc-banner,.cc-window.cc-floating,.cc-window.cc-left,.cc-window.cc-right{left:0;right:0}.cc-window.cc-banner{-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner .cc-compliance{-ms-flex:1 1 auto;flex:1 1 auto}.cc-window.cc-floating{max-width:none}.cc-window .cc-message{margin-bottom:1em}.cc-window.cc-banner{-ms-flex-align:unset;align-items:unset}.cc-window.cc-banner .cc-message{margin-right:0}}
|
|
5
|
+
.cc-floating.cc-theme-classic{padding:1.2em;border-radius:5px}.cc-floating.cc-type-info.cc-theme-classic .cc-compliance{text-align:center;display:inline;-ms-flex:none;flex:none}.cc-theme-classic .cc-btn{border-radius:5px}.cc-theme-classic .cc-btn:last-child{min-width:140px}.cc-floating.cc-type-info.cc-theme-classic .cc-btn{display:inline-block}
|
|
6
|
+
.cc-theme-edgeless.cc-window{padding:0}.cc-floating.cc-theme-edgeless .cc-message{margin:2em 2em 1.5em}.cc-banner.cc-theme-edgeless .cc-btn{margin:0;padding:.8em 1.8em;height:100%}.cc-banner.cc-theme-edgeless .cc-message{margin-left:1em}.cc-floating.cc-theme-edgeless .cc-btn+.cc-btn{margin-left:0}
|