From c9d3592c8cac57360daeaa3fb7e23c91121ea27b Mon Sep 17 00:00:00 2001 From: Anton Synenko Date: Tue, 23 Jul 2019 16:32:51 +0300 Subject: [PATCH 01/16] data fetch && swig && styles --- index.js | 41 ++- package-lock.json | 328 +++++++++++------- package.json | 4 + themes/cypress/layout/api-toc.swig | 2 +- themes/cypress/layout/partial/banners.swig | 13 + themes/cypress/layout/partial/header.swig | 1 + .../cypress/source/css/_partial/banners.scss | 76 ++++ .../cypress/source/css/_partial/header.scss | 1 + 8 files changed, 338 insertions(+), 128 deletions(-) create mode 100644 themes/cypress/layout/partial/banners.swig create mode 100644 themes/cypress/source/css/_partial/banners.scss diff --git a/index.js b/index.js index e0c706be96..5d6afaeead 100644 --- a/index.js +++ b/index.js @@ -8,6 +8,18 @@ process.on('unhandledRejection', function (reason, p) { const Hexo = require('hexo') const chalk = require('chalk') const minimist = require('minimist') +const Contentful = require('contentful') +const moment = require('moment') +const yaml = require('js-yaml') +const fs = require('fs') +const { documentToHtmlString } = require('@contentful/rich-text-html-renderer') + +// if there is a need to fetch data from our contentful acc +const contentfulClient = Contentful.createClient({ + space: 'o4py2sm8hjzh', + accessToken: '5f825d3030eacae24f803b789bde9347c42a4a988cfdaf10ea675a043addc149', + environment: 'stage', +}) // these are the args like --port const args = minimist(process.argv.slice(2)) @@ -91,11 +103,32 @@ function initHexo () { console.log('NODE_ENV is:', chalk.cyan(env)) - return hexo.init() - .then(() => { - return hexo.call(cmd, args) + return contentfulClient + .getEntries({ content_type: 'topBanner' }) + .then(({ items }) => { + const data = items.reduce((filtered, option) => { + if (moment(option.fields.endDate).isSameOrAfter(moment())) { + filtered.push({ ...option.fields, text: documentToHtmlString(option.fields.text) }) + } + + return filtered + }, []) + + return new Promise((resolve) => { + fs.writeFile( + `${__dirname}/source/_data/banners.yml`, + yaml.safeDump(data), + (error) => { + // log if writeFile ends with error, but don't block hexo init process + if (error) console.error(error) + + return resolve() + }, + ) + }) }) - + .catch((error) => console.error(error)) + .finally(() => hexo.init().then(() => hexo.call(cmd, args))) } initHexo() diff --git a/package-lock.json b/package-lock.json index 9c993fc235..d7cb4742b5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -219,6 +219,20 @@ "minimist": "^1.2.0" } }, + "@contentful/rich-text-html-renderer": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/@contentful/rich-text-html-renderer/-/rich-text-html-renderer-13.1.0.tgz", + "integrity": "sha512-4E6O7cYO+6v3fQrBM9Bu/X9QXfNmH/DZevypw+UOJZyUfbYDA9KsPdXKa04hjnc3fMlBW0Kss33wj9DsaCap2g==", + "requires": { + "@contentful/rich-text-types": "^13.1.0", + "escape-html": "^1.0.3" + } + }, + "@contentful/rich-text-types": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/@contentful/rich-text-types/-/rich-text-types-13.1.0.tgz", + "integrity": "sha512-/fwELDysqdZdhTW9tLUOtpoBnlaI6WVxtrrmB+lAbYkoC7G9NVaOPwxXqwYidgTl9I1ZJGfU/ZEr8GDyUIcZWg==" + }, "@cypress/commit-info": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@cypress/commit-info/-/commit-info-1.2.2.tgz", @@ -668,10 +682,10 @@ "integrity": "sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo=", "dev": true, "requires": { - "chalk": "1.1.3", - "cli-cursor": "1.0.2", - "date-fns": "1.30.1", - "figures": "1.7.0" + "chalk": "^1.1.3", + "cli-cursor": "^1.0.2", + "date-fns": "^1.27.2", + "figures": "^1.7.0" }, "dependencies": { "ansi-styles": { @@ -686,11 +700,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "cli-cursor": { @@ -699,7 +713,7 @@ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", "dev": true, "requires": { - "restore-cursor": "1.0.1" + "restore-cursor": "^1.0.1" } }, "onetime": { @@ -714,8 +728,8 @@ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", "dev": true, "requires": { - "exit-hook": "1.1.1", - "onetime": "1.1.0" + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" } }, "strip-ansi": { @@ -724,7 +738,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -760,8 +774,8 @@ "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", "dev": true, "requires": { - "debug": "3.2.6", - "lodash.once": "4.1.1" + "debug": "^3.1.0", + "lodash.once": "^4.1.1" }, "dependencies": { "debug": { @@ -770,7 +784,7 @@ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "ms": { @@ -799,10 +813,10 @@ "integrity": "sha512-n6kaRQO8S+kepUTbXL9O/UOL788Odqs38/VOfoCrATDtTvyfiO3fgjlSRaNkHabpTLgM7qru9ifqXlXbXk8SeQ==", "dev": true, "requires": { - "@hapi/address": "2.0.0", - "@hapi/hoek": "6.2.4", - "@hapi/marker": "1.0.0", - "@hapi/topo": "3.1.2" + "@hapi/address": "2.x.x", + "@hapi/hoek": "6.x.x", + "@hapi/marker": "1.x.x", + "@hapi/topo": "3.x.x" } }, "@hapi/marker": { @@ -817,7 +831,7 @@ "integrity": "sha512-r+aumOqJ5QbD6aLPJWqVjMAPsx5pZKz+F5yPqXZ/WWG9JTtHbQqlzrJoknJ0iJxLj9vlXtmpSdjlkszseeG8OA==", "dev": true, "requires": { - "@hapi/hoek": "8.0.2" + "@hapi/hoek": "8.x.x" }, "dependencies": { "@hapi/hoek": { @@ -2083,8 +2097,8 @@ "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "requires": { - "jsonparse": "1.3.1", - "through": "2.3.8" + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" } }, "a-sync-waterfall": { @@ -2979,6 +2993,22 @@ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" }, + "axios": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz", + "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==", + "requires": { + "follow-redirects": "1.5.10", + "is-buffer": "^2.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", + "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==" + } + } + }, "babel-jest": { "version": "24.8.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.8.0.tgz", @@ -3688,7 +3718,7 @@ "integrity": "sha512-O1ji32oyON9laVPJL1IZ5bmwd2cB46VfpxkDequezH+15FDzzVddEyrGEeX4WusDSqKxdyFdDQDEG1yo1GoWkg==", "dev": true, "requires": { - "os-homedir": "1.0.2" + "os-homedir": "^1.0.1" } }, "call-me-maybe": { @@ -4535,6 +4565,35 @@ } } }, + "contentful": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/contentful/-/contentful-7.8.2.tgz", + "integrity": "sha512-8aaCOxk2FJv5mDZlPh9s6BKj6rkjqGghtVuKXwx/sEYRQZVBsvvQgq+pMnN5XvTE2EHPEfu6C9d5J5cvbWlOjg==", + "requires": { + "axios": "^0.19.0", + "contentful-resolve-response": "^1.1.4", + "contentful-sdk-core": "^6.3.6", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.11" + } + }, + "contentful-resolve-response": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/contentful-resolve-response/-/contentful-resolve-response-1.1.4.tgz", + "integrity": "sha512-oFq6n6zjbiwD9/7mBa8YHPwvPM0B0D4uOgg1n/rVzpQPhCrzeIixNj6fbJAbDiJt05rZqxiY3K1Db7pPRhRaZw==", + "requires": { + "lodash": "^4.17.4" + } + }, + "contentful-sdk-core": { + "version": "6.3.6", + "resolved": "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-6.3.6.tgz", + "integrity": "sha512-QUHrnzBXzJmLD68apaAQYy0BaTtbfmPwZvPk2hJ3uTzjiR0rlFC7qHxL/aN4rBx8ahHqxJ6EGgmoGmcjBYxe5A==", + "requires": { + "lodash": "^4.17.10", + "qs": "^6.5.2" + } + }, "convert-source-map": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", @@ -6551,7 +6610,7 @@ "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", "dev": true, "requires": { - "pend": "1.2.0" + "pend": "~1.2.0" } }, "minimist": { @@ -6581,7 +6640,7 @@ "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", "dev": true, "requires": { - "fd-slicer": "1.0.1" + "fd-slicer": "~1.0.1" } } } @@ -6959,6 +7018,29 @@ "integrity": "sha512-+8GbtQBwEqutP0v3uajDDoN64K2ehmHd0cjlghhxh0WpcfPzAIjPA03e1VvHlxL02FVGR0A6lwXsNQKn3H1RNQ==", "dev": true }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "requires": { + "debug": "=3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, "font-awesome": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz", @@ -8245,7 +8327,7 @@ "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "requires": { - "ini": "1.3.5" + "ini": "^1.3.4" } }, "global-modules": { @@ -10257,19 +10339,19 @@ "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==", "dev": true, "requires": { - "ansi-escapes": "3.2.0", - "chalk": "2.4.2", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "3.1.0", - "figures": "2.0.0", - "lodash": "4.17.14", + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "6.5.2", - "string-width": "2.1.1", - "strip-ansi": "5.2.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" }, "dependencies": { "ansi-regex": { @@ -10290,9 +10372,9 @@ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, "requires": { - "chardet": "0.7.0", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" } }, "figures": { @@ -10628,8 +10710,8 @@ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "requires": { - "global-dirs": "0.1.1", - "is-path-inside": "1.0.1" + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" } }, "is-jpg": { @@ -10881,7 +10963,7 @@ "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", "dev": true, "requires": { - "punycode": "2.1.1" + "punycode": "2.x.x" } }, "isexe": { @@ -12002,9 +12084,9 @@ "integrity": "sha512-xuY5VkHfeOYK3Hdi91ulocfuFopwgbSORmIwzcwHKESQhC7w1kD5jaVSPnqDxS2I8t3RZ9omCKAxNwXN5zG1/Q==", "dev": true, "requires": { - "hoek": "5.0.4", - "isemail": "3.2.0", - "topo": "3.0.3" + "hoek": "5.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" } }, "jpeg-js": { @@ -12681,22 +12763,22 @@ "integrity": "sha1-a84sD1YD+klYDqF81qAMwOX6RRo=", "dev": true, "requires": { - "chalk": "1.1.3", - "cli-truncate": "0.2.1", - "figures": "1.7.0", - "indent-string": "2.1.0", - "is-promise": "2.1.0", - "is-stream": "1.1.0", - "listr-silent-renderer": "1.1.1", - "listr-update-renderer": "0.2.0", - "listr-verbose-renderer": "0.4.1", - "log-symbols": "1.0.2", - "log-update": "1.0.2", - "ora": "0.2.3", - "p-map": "1.2.0", - "rxjs": "5.5.12", - "stream-to-observable": "0.1.0", - "strip-ansi": "3.0.1" + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "figures": "^1.7.0", + "indent-string": "^2.1.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.2.0", + "listr-verbose-renderer": "^0.4.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "ora": "^0.2.3", + "p-map": "^1.1.1", + "rxjs": "^5.0.0-beta.11", + "stream-to-observable": "^0.1.0", + "strip-ansi": "^3.0.1" }, "dependencies": { "ansi-styles": { @@ -12711,11 +12793,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "cli-cursor": { @@ -12724,7 +12806,7 @@ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", "dev": true, "requires": { - "restore-cursor": "1.0.1" + "restore-cursor": "^1.0.1" } }, "log-symbols": { @@ -12733,7 +12815,7 @@ "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", "dev": true, "requires": { - "chalk": "1.1.3" + "chalk": "^1.0.0" } }, "onetime": { @@ -12748,10 +12830,10 @@ "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=", "dev": true, "requires": { - "chalk": "1.1.3", - "cli-cursor": "1.0.2", - "cli-spinners": "0.1.2", - "object-assign": "4.1.1" + "chalk": "^1.1.1", + "cli-cursor": "^1.0.2", + "cli-spinners": "^0.1.2", + "object-assign": "^4.0.1" } }, "restore-cursor": { @@ -12760,8 +12842,8 @@ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", "dev": true, "requires": { - "exit-hook": "1.1.1", - "onetime": "1.1.0" + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" } }, "strip-ansi": { @@ -12770,7 +12852,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -12793,14 +12875,14 @@ "integrity": "sha1-yoDhd5tOcCZoB+ju0a1qvjmFUPk=", "dev": true, "requires": { - "chalk": "1.1.3", - "cli-truncate": "0.2.1", - "elegant-spinner": "1.0.1", - "figures": "1.7.0", - "indent-string": "3.2.0", - "log-symbols": "1.0.2", - "log-update": "1.0.2", - "strip-ansi": "3.0.1" + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "strip-ansi": "^3.0.1" }, "dependencies": { "ansi-styles": { @@ -12815,11 +12897,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "indent-string": { @@ -12834,7 +12916,7 @@ "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", "dev": true, "requires": { - "chalk": "1.1.3" + "chalk": "^1.0.0" } }, "strip-ansi": { @@ -12843,7 +12925,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -12860,10 +12942,10 @@ "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=", "dev": true, "requires": { - "chalk": "1.1.3", - "cli-cursor": "1.0.2", - "date-fns": "1.30.1", - "figures": "1.7.0" + "chalk": "^1.1.3", + "cli-cursor": "^1.0.2", + "date-fns": "^1.27.2", + "figures": "^1.7.0" }, "dependencies": { "ansi-styles": { @@ -12878,11 +12960,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "cli-cursor": { @@ -12891,7 +12973,7 @@ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", "dev": true, "requires": { - "restore-cursor": "1.0.1" + "restore-cursor": "^1.0.1" } }, "onetime": { @@ -12906,8 +12988,8 @@ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", "dev": true, "requires": { - "exit-hook": "1.1.1", - "onetime": "1.1.0" + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" } }, "strip-ansi": { @@ -12916,7 +12998,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -13210,8 +13292,8 @@ "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=", "dev": true, "requires": { - "ansi-escapes": "1.4.0", - "cli-cursor": "1.0.2" + "ansi-escapes": "^1.0.0", + "cli-cursor": "^1.0.2" }, "dependencies": { "ansi-escapes": { @@ -13226,7 +13308,7 @@ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", "dev": true, "requires": { - "restore-cursor": "1.0.1" + "restore-cursor": "^1.0.1" } }, "onetime": { @@ -13241,8 +13323,8 @@ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", "dev": true, "requires": { - "exit-hook": "1.1.1", - "onetime": "1.1.0" + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" } } } @@ -16571,7 +16653,7 @@ "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=", "dev": true, "requires": { - "throttleit": "1.0.0" + "throttleit": "^1.0.0" } }, "request-promise": { @@ -17820,11 +17902,11 @@ "integrity": "sha512-QUGNKlKLDyY6W/qHdxaRlXUAgLPe+3mLL/tRByHpRNcHs/c7dZXbu+OnJWGNux6tU1WFh/Z8aEwvbuzSAu79Zg==", "dev": true, "requires": { - "core-js": "2.6.9", - "joi": "13.7.0", - "minimist": "1.2.0", - "request": "2.88.0", - "rx": "4.1.0" + "core-js": "^2.5.7", + "joi": "^13.0.0", + "minimist": "^1.2.0", + "request": "^2.88.0", + "rx": "^4.1.0" } } } @@ -19221,7 +19303,7 @@ "integrity": "sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ==", "dev": true, "requires": { - "hoek": "6.1.3" + "hoek": "6.x.x" }, "dependencies": { "hoek": { @@ -20034,11 +20116,11 @@ "integrity": "sha512-97dEuUapx4+Y12aknWZn7D25kkjMk16PbWoYzpSdA8bYpVfS6hpl2a2pOWZ3c+Tyt3/i4/pglyZctG3J4V1hWQ==", "dev": true, "requires": { - "@hapi/joi": "15.1.0", - "core-js": "2.6.9", - "minimist": "1.2.0", - "request": "2.88.0", - "rx": "4.1.0" + "@hapi/joi": "^15.0.3", + "core-js": "^2.6.5", + "minimist": "^1.2.0", + "request": "^2.88.0", + "rx": "^4.1.0" }, "dependencies": { "core-js": { diff --git a/package.json b/package.json index 5747125a38..41ef9bd607 100644 --- a/package.json +++ b/package.json @@ -137,8 +137,10 @@ "yamljs": "0.3.0" }, "dependencies": { + "@contentful/rich-text-html-renderer": "13.1.0", "bluebird": "3.5.5", "check-more-types": "2.24.0", + "contentful": "7.8.2", "debug": "4.1.1", "docsearch.js": "2.6.3", "font-awesome": "4.7.0", @@ -152,9 +154,11 @@ "hexo-renderer-marked": "0.3.2", "hexo-renderer-scss": "1.2.0", "hexo-server": "0.3.3", + "js-yaml": "3.13.1", "lazy-ass": "1.6.0", "lodash": "4.17.15", "menuspy": "1.3.0", + "moment": "2.24.0", "roboto-fontface": "0.10.0", "scrollingelement": "1.5.2", "set-immediate-shim": "2.0.0", diff --git a/themes/cypress/layout/api-toc.swig b/themes/cypress/layout/api-toc.swig index 379f7464ab..42b554efc7 100644 --- a/themes/cypress/layout/api-toc.swig +++ b/themes/cypress/layout/api-toc.swig @@ -1,4 +1,4 @@ -
+
{{ partial('partial/sidebar') }} diff --git a/themes/cypress/layout/partial/banners.swig b/themes/cypress/layout/partial/banners.swig new file mode 100644 index 0000000000..97c36bcf0f --- /dev/null +++ b/themes/cypress/layout/partial/banners.swig @@ -0,0 +1,13 @@ +
+ {% for banner in site.data.banners %} + + {% endfor %} +
diff --git a/themes/cypress/layout/partial/header.swig b/themes/cypress/layout/partial/header.swig index b87f6d6dd0..fa5c7cb336 100644 --- a/themes/cypress/layout/partial/header.swig +++ b/themes/cypress/layout/partial/header.swig @@ -1,4 +1,5 @@