diff --git a/.media/timeline.sketch b/.media/timeline.sketch deleted file mode 100644 index 7e332d38..00000000 Binary files a/.media/timeline.sketch and /dev/null differ diff --git a/_media/favicon.svg b/_media/favicon.svg new file mode 100644 index 00000000..84743808 --- /dev/null +++ b/_media/favicon.svg @@ -0,0 +1,25 @@ + + + + favicon + Created with Sketch. + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_media/timeline.sketch b/_media/timeline.sketch new file mode 100644 index 00000000..4953b5f0 Binary files /dev/null and b/_media/timeline.sketch differ diff --git a/app/components/Meta/Meta.js b/app/components/Meta/Meta.js new file mode 100644 index 00000000..9b1aa48d --- /dev/null +++ b/app/components/Meta/Meta.js @@ -0,0 +1,47 @@ +import React, { Fragment } from 'react'; +import PropTypes from 'prop-types'; +import Parser from 'html-react-parser'; +import faviconData from '../../../faviconData.json'; + +const faviconHtml = faviconData && faviconData.favicon.html_code; +const Favicons = () => Parser(faviconHtml); + +const Meta = ({ + url, type, title, description, image, +}) => ( + + + + { title } + + + + + + + + + + + + + +); + +Meta.defaultProps = { + url: 'https://timeline.schoenwald.media', + type: 'website', + title: 'Timeline', + description: 'Overview of biblical Persons and events', + image: 'https://schoenwald.media/static/assets/images/favicon.png', +}; + +Meta.propTypes = { + url: PropTypes.string, + type: PropTypes.string, + title: PropTypes.string, + description: PropTypes.string, + image: PropTypes.string, +}; + +export default Meta; diff --git a/app/css/theme.css b/app/css/theme.css index 92063df1..1e94c522 100644 --- a/app/css/theme.css +++ b/app/css/theme.css @@ -59,6 +59,8 @@ --color-purple: #c9c; --color-brown: #635f5e; + --color-theme: var(--color-green-darker); + --text-color: #2d2d2d; --link-color: var(--color-green); --link-color-hover: var(--text-color); diff --git a/faviconData.json b/faviconData.json new file mode 100644 index 00000000..28a4e3ad --- /dev/null +++ b/faviconData.json @@ -0,0 +1 @@ +{"result":{"status":"success"},"favicon":{"package_url":"https://realfavicongenerator.net/files/6acad0216b05c2fc38bdc7405a27e6a42fed8d0c/favicon_package_v0.16.zip","files_urls":["https://realfavicongenerator.net/files/6acad0216b05c2fc38bdc7405a27e6a42fed8d0c/package_files/android-chrome-192x192.png","https://realfavicongenerator.net/files/6acad0216b05c2fc38bdc7405a27e6a42fed8d0c/package_files/android-chrome-256x256.png","https://realfavicongenerator.net/files/6acad0216b05c2fc38bdc7405a27e6a42fed8d0c/package_files/apple-touch-icon.png","https://realfavicongenerator.net/files/6acad0216b05c2fc38bdc7405a27e6a42fed8d0c/package_files/browserconfig.xml","https://realfavicongenerator.net/files/6acad0216b05c2fc38bdc7405a27e6a42fed8d0c/package_files/favicon-16x16.png","https://realfavicongenerator.net/files/6acad0216b05c2fc38bdc7405a27e6a42fed8d0c/package_files/favicon-32x32.png","https://realfavicongenerator.net/files/6acad0216b05c2fc38bdc7405a27e6a42fed8d0c/package_files/favicon.ico","https://realfavicongenerator.net/files/6acad0216b05c2fc38bdc7405a27e6a42fed8d0c/package_files/mstile-144x144.png","https://realfavicongenerator.net/files/6acad0216b05c2fc38bdc7405a27e6a42fed8d0c/package_files/mstile-150x150.png","https://realfavicongenerator.net/files/6acad0216b05c2fc38bdc7405a27e6a42fed8d0c/package_files/mstile-310x150.png","https://realfavicongenerator.net/files/6acad0216b05c2fc38bdc7405a27e6a42fed8d0c/package_files/mstile-310x310.png","https://realfavicongenerator.net/files/6acad0216b05c2fc38bdc7405a27e6a42fed8d0c/package_files/mstile-70x70.png","https://realfavicongenerator.net/files/6acad0216b05c2fc38bdc7405a27e6a42fed8d0c/package_files/safari-pinned-tab.svg","https://realfavicongenerator.net/files/6acad0216b05c2fc38bdc7405a27e6a42fed8d0c/package_files/site.webmanifest"],"html_code":"\n\n\n\n\n\n\n\n\n","compression":"false","overlapping_markups":["link[rel=\"apple-touch-icon\"]","link[rel=\"shortcut\"]","link[rel=\"shortcut icon\"]","link[rel=\"icon\",sizes=\"16x16\"]","link[rel=\"icon\",sizes=\"32x32\"]","meta[name=\"msapplication-TileColor\"]","meta[name=\"msapplication-TileImage\"]","meta[name=\"msapplication-config\"]","link[rel=\"manifest\"]","meta[name=\"theme-color\"]","link[rel=\"mask-icon\"]"]},"files_location":{"type":"path","path":"/static/assets/images/favicons"},"preview_picture_url":"https://realfavicongenerator.net/files/6acad0216b05c2fc38bdc7405a27e6a42fed8d0c/favicon_preview.png","version":"0.16"} \ No newline at end of file diff --git a/faviconDescription.json b/faviconDescription.json new file mode 100644 index 00000000..2cb937fb --- /dev/null +++ b/faviconDescription.json @@ -0,0 +1,58 @@ +{ + "masterPicture": "static/assets/images/favicon.png", + "iconsPath": "/static/assets/images/favicons", + "design": { + "ios": { + "pictureAspect": "backgroundAndMargin", + "backgroundColor": "#ffffff", + "margin": "14%", + "assets": { + "ios6AndPriorIcons": false, + "ios7AndLaterIcons": false, + "precomposedIcons": false, + "declareOnlyDefaultIcon": true + } + }, + "desktopBrowser": {}, + "windows": { + "pictureAspect": "noChange", + "backgroundColor": "#41ad95", + "onConflict": "override", + "assets": { + "windows80Ie10Tile": false, + "windows10Ie11EdgeTiles": { + "small": false, + "medium": true, + "big": false, + "rectangle": false + } + } + }, + "androidChrome": { + "pictureAspect": "noChange", + "themeColor": "#41ad95", + "manifest": { + "name": "Timeline", + "display": "standalone", + "orientation": "notSet", + "onConflict": "override", + "declared": true + }, + "assets": { + "legacyIcon": false, + "lowResolutionIcons": false + } + }, + "safariPinnedTab": { + "pictureAspect": "silhouette", + "themeColor": "#5bbad5" + } + }, + "settings": { + "scalingAlgorithm": "Mitchell", + "errorOnImageTooSmall": false, + "readmeFile": false, + "htmlCodeFile": false, + "usePathAsIs": false + } +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 783c27b8..b23ae1b6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1788,6 +1788,16 @@ "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" }, + "binary": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", + "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", + "dev": true, + "requires": { + "buffers": "~0.1.1", + "chainsaw": "~0.1.0" + } + }, "binary-extensions": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", @@ -1944,6 +1954,12 @@ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" }, + "buffers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", + "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", + "dev": true + }, "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", @@ -2068,6 +2084,23 @@ "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.3.tgz", "integrity": "sha512-Jt9tIBkRc9POUof7QA/VwWd+58fKkEEfI+/t1/eOlxKM7ZhrczNzMFefge7Ai+39y1pR/pP6cI19guHy3FSLmw==" }, + "chainsaw": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", + "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", + "dev": true, + "requires": { + "traverse": ">=0.3.0 <0.4" + }, + "dependencies": { + "traverse": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", + "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", + "dev": true + } + } + }, "chalk": { "version": "1.1.3", "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", @@ -2248,6 +2281,33 @@ "restore-cursor": "^2.0.0" } }, + "cli-real-favicon": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/cli-real-favicon/-/cli-real-favicon-0.0.6.tgz", + "integrity": "sha1-KAWy/jiGpQjfXGqgUFLeh88eZfU=", + "dev": true, + "requires": { + "bluebird": "3.*", + "commander": "^2.9.0", + "glob": "6.*", + "rfg-api": "^0.1.3" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, "cli-truncate": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", @@ -2706,6 +2766,16 @@ "sha.js": "^2.4.8" } }, + "create-react-class": { + "version": "15.6.3", + "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", + "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==", + "requires": { + "fbjs": "^0.8.9", + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -2741,6 +2811,17 @@ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" }, + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + } + }, "css-color-function": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/css-color-function/-/css-color-function-1.3.3.tgz", @@ -3959,9 +4040,9 @@ } }, "eslint-plugin-jsx-a11y": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.1.tgz", - "integrity": "sha512-JsxNKqa3TwmPypeXNnI75FntkUktGzI1wSa1LgNZdSOMI+B4sxnr1lSF8m8lPiz4mKiC+14ysZQM4scewUrP7A==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.2.tgz", + "integrity": "sha512-7gSSmwb3A+fQwtw0arguwMdOdzmKUgnUcbSNlo+GjKLAQFuC2EZxWqG9XHRI8VscBJD5a8raz3RuxQNFW+XJbw==", "requires": { "aria-query": "^3.0.0", "array-includes": "^3.0.3", @@ -5138,6 +5219,18 @@ } } }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, "ftp": { "version": "0.3.10", "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", @@ -5594,11 +5687,53 @@ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" }, + "html-dom-parser": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-0.1.3.tgz", + "integrity": "sha512-kGhjJDkfiA2/3y0gc2Bi+rseJWJSKz4CioS4EM+vN80fw863f1hn3G+7EaP0/benxceky4a8TzEeW6+dDjUh7A==", + "requires": { + "domhandler": "2.3.0", + "htmlparser2": "3.9.1" + }, + "dependencies": { + "domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", + "requires": { + "domelementtype": "1" + } + }, + "htmlparser2": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.1.tgz", + "integrity": "sha1-Yht6WLyazQA/evCiyaAKpnyFBdI=", + "requires": { + "domelementtype": "^1.3.0", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" + } + } + } + }, "html-entities": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=" }, + "html-react-parser": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-0.4.7.tgz", + "integrity": "sha512-h3EUYXqKXts68/ynQwH5ws57vg2P94VzvzpwVRwYgWjW+uEtkXDjOO8q/7UmfcGX4DFHJ69UlQJa1RoRXCTaPg==", + "requires": { + "html-dom-parser": "0.1.3", + "react-dom-core": "0.0.3", + "style-to-object": "0.2.2" + } + }, "html-tags": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", @@ -7281,6 +7416,42 @@ "resolved": "https://registry.npmjs.org/marked/-/marked-0.5.1.tgz", "integrity": "sha512-iUkBZegCZou4AdwbKTwSW/lNDcz5OuRSl3qdcl31Ia0B2QPG0Jn+tKblh/9/eP9/6+4h27vpoh8wel/vQOV0vw==" }, + "match-stream": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/match-stream/-/match-stream-0.0.2.tgz", + "integrity": "sha1-mesFAJOzTf+t5CG5rAtBCpz6F88=", + "dev": true, + "requires": { + "buffers": "~0.1.1", + "readable-stream": "~1.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, "math-random": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", @@ -7394,6 +7565,18 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.2.tgz", "integrity": "sha512-bgM8twH86rWni21thii6WCMQMRMmwqqdW3sGWi9IipnVAszdLXRjwDwAnyrVXo6DuP3AjRMMttZKUB48QWIFGg==" }, + "metaparser": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/metaparser/-/metaparser-1.0.7.tgz", + "integrity": "sha1-wGmaZoageovOGsBrYulGLC5mqso=", + "dev": true, + "requires": { + "async": "*", + "cheerio": "*", + "mkdirp": "*", + "underscore": "*" + } + }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -7644,6 +7827,12 @@ } } }, + "natives": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.5.tgz", + "integrity": "sha512-1pJ+02gl2KJgCPFtpZGtuD4lGSJnIZvvFHCQTOeDRMSXjfu2GmYWuhI8NFMA4W2I5NNFRbfy/YCiVt4CgNpP8A==", + "dev": true + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -8023,6 +8212,33 @@ "semver": "^5.3.0" } }, + "node-rest-client": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/node-rest-client/-/node-rest-client-1.8.0.tgz", + "integrity": "sha1-jTxWa4F+JzlMtyc3g6Qcrv4+WVU=", + "dev": true, + "requires": { + "debug": "~2.2.0", + "xml2js": ">=0.2.4" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + } + } + }, "nomnom": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.6.2.tgz", @@ -8314,6 +8530,12 @@ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, + "over": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/over/-/over-0.0.5.tgz", + "integrity": "sha1-8phS5w/X4l82DgE6jsRMgq7bVwg=", + "dev": true + }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -9391,6 +9613,44 @@ "randombytes": "^2.0.1" } }, + "pullstream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/pullstream/-/pullstream-0.4.1.tgz", + "integrity": "sha1-1vs79a7Wl+gxFQ6xACwlo/iuExQ=", + "dev": true, + "requires": { + "over": ">= 0.0.5 < 1", + "readable-stream": "~1.0.31", + "setimmediate": ">= 1.0.2 < 2", + "slice-stream": ">= 1.0.0 < 2" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -9565,6 +9825,30 @@ "schedule": "^0.5.0" } }, + "react-dom-core": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/react-dom-core/-/react-dom-core-0.0.3.tgz", + "integrity": "sha512-pMMNOU4Hhe/LmkGWMVOpQmPnKQo+bGaWY3Y0+OjXmsQVB5LJ3sr4hVCM/7MpcRGeEMcfaRaoHyiLhufzk/BL4w==", + "requires": { + "fbjs": "*", + "object-assign": "*", + "react": "15" + }, + "dependencies": { + "react": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/react/-/react-15.6.2.tgz", + "integrity": "sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI=", + "requires": { + "create-react-class": "^15.6.0", + "fbjs": "^0.8.9", + "loose-envify": "^1.1.0", + "object-assign": "^4.1.0", + "prop-types": "^15.5.10" + } + } + } + }, "react-error-overlay": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-4.0.0.tgz", @@ -9957,6 +10241,19 @@ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" }, + "rfg-api": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/rfg-api/-/rfg-api-0.1.7.tgz", + "integrity": "sha1-E99D1k2v0okrsNuaZCJHWARiV2E=", + "dev": true, + "requires": { + "fstream": "^1.0.2", + "metaparser": "^1.0.7", + "mkdirp": "^0.5.0", + "node-rest-client": "^1.4.1", + "unzip": "^0.1.11" + } + }, "rgb": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/rgb/-/rgb-0.1.0.tgz", @@ -10244,6 +10541,41 @@ "is-fullwidth-code-point": "^2.0.0" } }, + "slice-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-stream/-/slice-stream-1.0.0.tgz", + "integrity": "sha1-WzO9ZvATsaf4ZGCwPUY97DmtPqA=", + "dev": true, + "requires": { + "readable-stream": "~1.0.31" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, "smart-buffer": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz", @@ -11051,6 +11383,14 @@ "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=" }, + "style-to-object": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.2.2.tgz", + "integrity": "sha512-GcbtvfsqyKmIPpHeOHZ5Rmwsx2MDJct4W9apmTGcbPTbpA2FcgTFl2Z43Hm4Qb61MWGPNK8Chki7ITiY7lLOow==", + "requires": { + "css": "2.2.4" + } + }, "styled-components": { "version": "3.4.9", "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-3.4.9.tgz", @@ -13230,6 +13570,67 @@ } } }, + "unzip": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/unzip/-/unzip-0.1.11.tgz", + "integrity": "sha1-iXScY7BY19kNYZ+GuYqhU107l/A=", + "dev": true, + "requires": { + "binary": ">= 0.3.0 < 1", + "fstream": ">= 0.1.30 < 1", + "match-stream": ">= 0.0.2 < 1", + "pullstream": ">= 0.4.1 < 1", + "readable-stream": "~1.0.31", + "setimmediate": ">= 1.0.1 < 2" + }, + "dependencies": { + "fstream": { + "version": "0.1.31", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz", + "integrity": "sha1-czfwWPu7vvqMn1YaKMqwhJICyYg=", + "dev": true, + "requires": { + "graceful-fs": "~3.0.2", + "inherits": "~2.0.0", + "mkdirp": "0.5", + "rimraf": "2" + } + }, + "graceful-fs": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", + "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", + "dev": true, + "requires": { + "natives": "^1.1.0" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, "upath": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", diff --git a/package.json b/package.json index 01976a85..374fbdb7 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,8 @@ "lint:sc": "stylelint \"**/*.js\" --formatter verbose --config .stylelintrc-sc", "lint:js": "eslint \"**/*.js\"", "lint:js:fix": "eslint \"**/*.js\" --fix", - "lint:html": "htmlhint out" + "lint:html": "htmlhint out", + "favicons-generate": "real-favicon generate faviconDescription.json faviconData.json static/assets/images/favicons" }, "lint-staged": { "**/*.js": [ @@ -48,6 +49,7 @@ "enzyme": "3.6.0", "eslint": "5.6.0", "eslint-config-schoenwaldnils": "1.0.2", + "html-react-parser": "0.4.7", "htmlhint": "0.10.1", "husky": "1.0.0", "isomorphic-fetch": "2.2.1", @@ -84,5 +86,8 @@ "hooks": { "pre-commit": "lint-staged" } + }, + "devDependencies": { + "cli-real-favicon": "0.0.6" } } diff --git a/pages/_document.js b/pages/_document.js index aa28a927..7570ffee 100644 --- a/pages/_document.js +++ b/pages/_document.js @@ -1,6 +1,7 @@ import React from 'react'; import Document, { Head, Main, NextScript } from 'next/document'; import { ServerStyleSheet } from 'styled-components'; +import Meta from '../app/components/Meta/Meta'; export default class MyDocument extends Document { static getInitialProps({ renderPage }) { @@ -17,6 +18,7 @@ export default class MyDocument extends Document { + {this.props.styleTags} diff --git a/scripts/contentful.js b/scripts/contentful.js index d905bd91..d8495814 100644 --- a/scripts/contentful.js +++ b/scripts/contentful.js @@ -10,13 +10,11 @@ export async function getEntries(type) { const entries = []; let order; let select = 'sys.id'; - let isPerson = false; switch (type) { case 'person': order = 'fields.startYear'; select = 'sys.id,fields.name'; - isPerson = true; break; case 'time': order = 'fields.startYear'; @@ -39,7 +37,7 @@ export async function getEntries(type) { id: item.sys.id, }; - if (isPerson) { + if (type === 'person') { entry = { id: item.sys.id, url: `/personen/${paramCase(item.fields.name)}`, diff --git a/scripts/deploy.sh b/scripts/deploy.sh deleted file mode 100644 index 30de6611..00000000 --- a/scripts/deploy.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -set -e # Exit with nonzero exit code if anything fails - -# Save some useful information -REPO=`git config remote.origin.url` -SSH_REPO=${REPO/https:\/\/github.com\//git@github.com:} -SHA=`git rev-parse --verify HEAD` - - -if [ "$TRAVIS" = "true" ] -then - git config --global user.name "$COMMIT_AUTHOR_NAME" - git config --global user.email "$COMMIT_AUTHOR_EMAIL" -fi - -# Get the deploy key by using Travis's stored variables to decrypt deploy_key.enc - -ENCRYPTED_KEY_VAR="encrypted_${ENCRYPTION_LABEL}_key" -ENCRYPTED_IV_VAR="encrypted_${ENCRYPTION_LABEL}_iv" -ENCRYPTED_KEY=${!ENCRYPTED_KEY_VAR} -ENCRYPTED_IV=${!ENCRYPTED_IV_VAR} -openssl aes-256-cbc -K $ENCRYPTED_KEY -iv $ENCRYPTED_IV -in deploy_key.enc -out deploy_key -d -chmod 600 deploy_key -eval `ssh-agent -s` -ssh-add deploy_key - -sudo touch out/.nojekyll -sudo cp CNAME out/ - -ls -a out - -./node_modules/.bin/gh-pages --repo $SSH_REPO --dist out --dotfiles diff --git a/static/assets/images/favicon.png b/static/assets/images/favicon.png new file mode 100644 index 00000000..fbe29254 Binary files /dev/null and b/static/assets/images/favicon.png differ diff --git a/static/assets/images/favicons/android-chrome-192x192.png b/static/assets/images/favicons/android-chrome-192x192.png new file mode 100644 index 00000000..a4c8a427 Binary files /dev/null and b/static/assets/images/favicons/android-chrome-192x192.png differ diff --git a/static/assets/images/favicons/android-chrome-256x256.png b/static/assets/images/favicons/android-chrome-256x256.png new file mode 100644 index 00000000..03c1dc91 Binary files /dev/null and b/static/assets/images/favicons/android-chrome-256x256.png differ diff --git a/static/assets/images/favicons/apple-touch-icon.png b/static/assets/images/favicons/apple-touch-icon.png new file mode 100644 index 00000000..3326a6dc Binary files /dev/null and b/static/assets/images/favicons/apple-touch-icon.png differ diff --git a/static/assets/images/favicons/browserconfig.xml b/static/assets/images/favicons/browserconfig.xml new file mode 100644 index 00000000..fd98cfb0 --- /dev/null +++ b/static/assets/images/favicons/browserconfig.xml @@ -0,0 +1,12 @@ + + + + + + + + + #41ad95 + + + diff --git a/static/assets/images/favicons/favicon-16x16.png b/static/assets/images/favicons/favicon-16x16.png new file mode 100644 index 00000000..8eeb6a2f Binary files /dev/null and b/static/assets/images/favicons/favicon-16x16.png differ diff --git a/static/assets/images/favicons/favicon-32x32.png b/static/assets/images/favicons/favicon-32x32.png new file mode 100644 index 00000000..20538909 Binary files /dev/null and b/static/assets/images/favicons/favicon-32x32.png differ diff --git a/static/assets/images/favicons/favicon.ico b/static/assets/images/favicons/favicon.ico new file mode 100644 index 00000000..8b9fc491 Binary files /dev/null and b/static/assets/images/favicons/favicon.ico differ diff --git a/static/assets/images/favicons/mstile-144x144.png b/static/assets/images/favicons/mstile-144x144.png new file mode 100644 index 00000000..cea32ed5 Binary files /dev/null and b/static/assets/images/favicons/mstile-144x144.png differ diff --git a/static/assets/images/favicons/mstile-150x150.png b/static/assets/images/favicons/mstile-150x150.png new file mode 100644 index 00000000..a8eaaf7c Binary files /dev/null and b/static/assets/images/favicons/mstile-150x150.png differ diff --git a/static/assets/images/favicons/mstile-310x150.png b/static/assets/images/favicons/mstile-310x150.png new file mode 100644 index 00000000..ec56c1c2 Binary files /dev/null and b/static/assets/images/favicons/mstile-310x150.png differ diff --git a/static/assets/images/favicons/mstile-310x310.png b/static/assets/images/favicons/mstile-310x310.png new file mode 100644 index 00000000..35df14fb Binary files /dev/null and b/static/assets/images/favicons/mstile-310x310.png differ diff --git a/static/assets/images/favicons/mstile-70x70.png b/static/assets/images/favicons/mstile-70x70.png new file mode 100644 index 00000000..e7cba5c6 Binary files /dev/null and b/static/assets/images/favicons/mstile-70x70.png differ diff --git a/static/assets/images/favicons/safari-pinned-tab.svg b/static/assets/images/favicons/safari-pinned-tab.svg new file mode 100644 index 00000000..4b00ef1c --- /dev/null +++ b/static/assets/images/favicons/safari-pinned-tab.svg @@ -0,0 +1,17 @@ + + + + +Created by potrace 1.11, written by Peter Selinger 2001-2013 + + + + + diff --git a/static/assets/images/favicons/site.webmanifest b/static/assets/images/favicons/site.webmanifest new file mode 100644 index 00000000..a9ca2d92 --- /dev/null +++ b/static/assets/images/favicons/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "Timeline", + "short_name": "Timeline", + "icons": [ + { + "src": "/static/assets/images/favicons/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/static/assets/images/favicons/android-chrome-256x256.png", + "sizes": "256x256", + "type": "image/png" + } + ], + "theme_color": "#41ad95", + "background_color": "#41ad95", + "display": "standalone" +} diff --git a/static/site.webmanifest b/static/site.webmanifest new file mode 100644 index 00000000..d56680b1 --- /dev/null +++ b/static/site.webmanifest @@ -0,0 +1,21 @@ +{ + "name": "Sch\u00f6nwald", + "short_name": "Sch\u00f6nwald", + "start_url": "/", + "theme_color": "#ba3e48", + "background_color": "#424242", + "display": "browser", + "icons": [ + { + "src": "/static/assets/images/favicons/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/static/assets/images/favicons/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "splash_pages": null +}