From 6c2b71f1c37d8f16ff2e54707ec5321cc39b3d1f Mon Sep 17 00:00:00 2001 From: Marvin Heilemann Date: Thu, 16 Jan 2020 10:36:12 +0100 Subject: [PATCH] Simplified query/sort in projects list Added role to projects Added will-change to prevent flickering --- content/projects/__demo__/index.md | 5 + content/projects/additive/index.md | 2 +- gatsby/node/onCreateNode.js | 6 + package-lock.json | 409 ++++++++++++++++++++++++----- package.json | 4 +- src/components/HeroProjects.jsx | 10 + src/components/member.jsx | 2 +- src/pages/projects.jsx | 124 ++++----- src/styles/layouts/_header.scss | 1 + src/templates/ProjectsSingle.jsx | 1 + 10 files changed, 422 insertions(+), 142 deletions(-) diff --git a/content/projects/__demo__/index.md b/content/projects/__demo__/index.md index 06acea6..e598a9e 100644 --- a/content/projects/__demo__/index.md +++ b/content/projects/__demo__/index.md @@ -10,6 +10,11 @@ ended: null status: wip website: https://marvin.digital/ +role: + - design + - development + - ux + - ui team: - name: Marvin Heilemann link: https://github.com/muuvmuuv/portfolio diff --git a/content/projects/additive/index.md b/content/projects/additive/index.md index be17499..ca189ff 100644 --- a/content/projects/additive/index.md +++ b/content/projects/additive/index.md @@ -4,7 +4,7 @@ subtitle: Giving ADDITIVE a new face and modern interface image: additive-preview.jpg thumb: additive-preview.jpg -started: null +started: 2018-07-11 ended: 2019-01-10 status: finished diff --git a/gatsby/node/onCreateNode.js b/gatsby/node/onCreateNode.js index 4178c79..7a79900 100644 --- a/gatsby/node/onCreateNode.js +++ b/gatsby/node/onCreateNode.js @@ -7,6 +7,10 @@ module.exports = async ({ node, getNode, actions }) => { if (node.internal.type === 'MarkdownRemark') { const nodeFrontmatterDefault = { published: true, + status: 'wip', + website: '', + role: [], + team: [], } node.frontmatter = Object.assign( @@ -15,6 +19,8 @@ module.exports = async ({ node, getNode, actions }) => { node.frontmatter ) + console.log(node.frontmatter) + const fileNode = getNode(node.parent) const source = fileNode.sourceInstanceName diff --git a/package-lock.json b/package-lock.json index 92fdbec..b64d97d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1384,22 +1384,22 @@ } }, "@mdx-js/mdx": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.5.3.tgz", - "integrity": "sha512-XxnOvyCQKri52tgaCXbV5NWnZGqgRsRifa/yJrxwWa6QG3vdFiEi/xokBHBf/62RCKRK4+QmbM4dSl0fgWIRNA==", - "requires": { - "@babel/core": "7.7.4", - "@babel/plugin-syntax-jsx": "7.7.4", - "@babel/plugin-syntax-object-rest-spread": "7.7.4", - "@mdx-js/util": "^1.5.3", - "babel-plugin-apply-mdx-type-prop": "^1.5.3", - "babel-plugin-extract-import-names": "^1.5.3", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.5.4.tgz", + "integrity": "sha512-Y/U02z5vR5wFL2DXcEY+RM1zWZTAeIgTgmWfcUBrEicGaeVtYo7DD+caGheNy9v0d+w3TTTdrAd+FHnQxaBQLw==", + "requires": { + "@babel/core": "7.8.0", + "@babel/plugin-syntax-jsx": "7.8.0", + "@babel/plugin-syntax-object-rest-spread": "7.8.0", + "@mdx-js/util": "^1.5.4", + "babel-plugin-apply-mdx-type-prop": "^1.5.4", + "babel-plugin-extract-import-names": "^1.5.4", "camelcase-css": "2.0.1", "detab": "2.0.2", "hast-util-raw": "5.0.1", "lodash.uniq": "4.5.0", "mdast-util-to-hast": "6.0.2", - "remark-mdx": "^1.5.3", + "remark-mdx": "^1.5.4", "remark-parse": "7.0.2", "remark-squeeze-paragraphs": "3.0.4", "style-to-object": "0.3.0", @@ -1408,20 +1408,29 @@ "unist-util-visit": "2.0.1" }, "dependencies": { - "@babel/core": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.4.tgz", - "integrity": "sha512-+bYbx56j4nYBmpsWtnPUsKW3NdnYxbqyfrP2w9wILBuHzdfIKz9prieZK0DFPyIzkjYVUe4QkusGL07r5pXznQ==", + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helpers": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4", + "@babel/highlight": "^7.8.3" + } + }, + "@babel/core": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.0.tgz", + "integrity": "sha512-3rqPi/bv/Xfu2YzHvBz4XqMI1fKVwnhntPA1/fjoECrSjrhbOCxlTrbVu5gUtr8zkxW+RpkDOa/HCW93gzS2Dw==", + "requires": { + "@babel/code-frame": "^7.8.0", + "@babel/generator": "^7.8.0", + "@babel/helpers": "^7.8.0", + "@babel/parser": "^7.8.0", + "@babel/template": "^7.8.0", + "@babel/traverse": "^7.8.0", + "@babel/types": "^7.8.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", "json5": "^2.1.0", "lodash": "^4.17.13", "resolve": "^1.3.2", @@ -1429,6 +1438,130 @@ "source-map": "^0.5.0" } }, + "@babel/generator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.3.tgz", + "integrity": "sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug==", + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helpers": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.3.tgz", + "integrity": "sha512-LmU3q9Pah/XyZU89QvBgGt+BCsTPoQa+73RxAQh8fb8qkDyIfeQnmgs+hvzhTCKTzqOyk7JTkS3MS1S8Mq5yrQ==", + "requires": { + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.3.tgz", + "integrity": "sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ==" + }, + "@babel/plugin-syntax-jsx": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.0.tgz", + "integrity": "sha512-zLDUckAuKeOtxJhfNE0TlR7iEApb2u7EYRlh5cxKzq6A5VzUbYEdyJGJlug41jDbjRbHTtsLKZUnUcy/8V3xZw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.0.tgz", + "integrity": "sha512-dt89fDlkfkTrQcy5KavMQPyF2A6tR0kYp8HAnIoQv5hO34iAUffHghP/hMGd7Gf/+uYTmLQO0ar7peX1SUWyIA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.3.tgz", + "integrity": "sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.3", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, "hast-to-hyperscript": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-7.0.4.tgz", @@ -1610,14 +1743,14 @@ } }, "@mdx-js/react": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.5.3.tgz", - "integrity": "sha512-5bVLUsZybjmeYL8l4Uh/ysE8vMn0Vb0GKzki/LicaDHJvXr/N4Tjj0gT4tk1OzhcC5nGQAQGIyQMW5pvIjp9XQ==" + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.5.4.tgz", + "integrity": "sha512-em3glbduH3AaFmdcxT0YhQYF54+UfHl3cMbDSv3DdA5yFKTowNEK+52073X3t2MsUEBeoOD/fT3iraAUM33bTQ==" }, "@mdx-js/util": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.5.3.tgz", - "integrity": "sha512-OXeOtHO+eN50QlIkm4Vj4vqNGtowv4FH9L21WvcbEM0eeZrb7aANiFTN70lBQEXcucxCMRkd/6IA9LxhotZEQw==" + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.5.4.tgz", + "integrity": "sha512-g+onYXBF3sHN41Y4iFQjwuoEcx4D1iGwT7GJo2OogwLnovWmxRLhCHl79GOfUt1j77A0zAwfFxqx81xw1VfGYQ==" }, "@mikaelkristiansson/domready": { "version": "1.0.9", @@ -2995,12 +3128,19 @@ } }, "babel-plugin-apply-mdx-type-prop": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.5.3.tgz", - "integrity": "sha512-9G+V0R8Jx56nHdEnWvRmSN//rFXMDiBZynu9JPuu3KVUhZhaJMgx5CTiXcdR2P//c85Q/IuwPbH0vIGrjdSq8A==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.5.4.tgz", + "integrity": "sha512-3F29Y7TnhLOs5QFGIOKl26QL8iaxHHtqhXeJWSwvD3gm/E3iM12WKGrOaVkD12DP+pEzueCFK7VXK62usl26tg==", "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@mdx-js/util": "^1.5.3" + "@babel/helper-plugin-utils": "7.8.0", + "@mdx-js/util": "^1.5.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.0.tgz", + "integrity": "sha512-+hAlRGdf8fHQAyNnDBqTHQhwdLURLdrCROoWaEQYiQhk2sV9Rhs+GoFZZfMJExTq9HG8o2NX3uN2G90bFtmFdA==" + } } }, "babel-plugin-dynamic-import-node": { @@ -3012,11 +3152,18 @@ } }, "babel-plugin-extract-import-names": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.5.3.tgz", - "integrity": "sha512-UPgDHjNb4hr2xYRWO8C8JPX7GO+q3gluKd3pkcmVcd1gn9bdO7/yE5FKnYe1UkCPY7PhEUOpEzHCSuIy3GMpsQ==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.5.4.tgz", + "integrity": "sha512-VCEIY9FQ7yTf0m/4fqVRLDR7WQ7oF6HBCFmVawBC//zjZ0y4XJQN7BEmT2IIyPYiT6nGUEXRQXHud9pfVy9LYg==", "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "7.8.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.0.tgz", + "integrity": "sha512-+hAlRGdf8fHQAyNnDBqTHQhwdLURLdrCROoWaEQYiQhk2sV9Rhs+GoFZZfMJExTq9HG8o2NX3uN2G90bFtmFdA==" + } } }, "babel-plugin-istanbul": { @@ -10147,6 +10294,11 @@ } } }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==" + }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -18019,34 +18171,43 @@ } }, "remark-mdx": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.5.3.tgz", - "integrity": "sha512-7WqfwdyER3k0gNiikzw9y+AQskAm6PX2qEF97vhuZ9y8/MatVKoWGCPX4VCYAN0qlM1X6ty761rbMWMy5OmgyA==", - "requires": { - "@babel/core": "7.7.4", - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-proposal-object-rest-spread": "7.7.4", - "@babel/plugin-syntax-jsx": "7.7.4", - "@mdx-js/util": "^1.5.3", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.5.4.tgz", + "integrity": "sha512-iWo5qQ7ZOZoYSJO5Ae7gXiH6Nm+TJ4UDafqoWpVKL4OvRzGeuzLgOA1z+asl4EKUH0BDygsn8q83IdZe0hQIsA==", + "requires": { + "@babel/core": "7.8.0", + "@babel/helper-plugin-utils": "7.8.0", + "@babel/plugin-proposal-object-rest-spread": "7.8.0", + "@babel/plugin-syntax-jsx": "7.8.0", + "@mdx-js/util": "^1.5.4", "is-alphabetical": "1.0.3", "remark-parse": "7.0.2", "unified": "8.4.2" }, "dependencies": { - "@babel/core": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.4.tgz", - "integrity": "sha512-+bYbx56j4nYBmpsWtnPUsKW3NdnYxbqyfrP2w9wILBuHzdfIKz9prieZK0DFPyIzkjYVUe4QkusGL07r5pXznQ==", + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helpers": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4", + "@babel/highlight": "^7.8.3" + } + }, + "@babel/core": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.0.tgz", + "integrity": "sha512-3rqPi/bv/Xfu2YzHvBz4XqMI1fKVwnhntPA1/fjoECrSjrhbOCxlTrbVu5gUtr8zkxW+RpkDOa/HCW93gzS2Dw==", + "requires": { + "@babel/code-frame": "^7.8.0", + "@babel/generator": "^7.8.0", + "@babel/helpers": "^7.8.0", + "@babel/parser": "^7.8.0", + "@babel/template": "^7.8.0", + "@babel/traverse": "^7.8.0", + "@babel/types": "^7.8.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", "json5": "^2.1.0", "lodash": "^4.17.13", "resolve": "^1.3.2", @@ -18054,15 +18215,139 @@ "source-map": "^0.5.0" } }, + "@babel/generator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.3.tgz", + "integrity": "sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug==", + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.0.tgz", + "integrity": "sha512-+hAlRGdf8fHQAyNnDBqTHQhwdLURLdrCROoWaEQYiQhk2sV9Rhs+GoFZZfMJExTq9HG8o2NX3uN2G90bFtmFdA==" + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helpers": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.3.tgz", + "integrity": "sha512-LmU3q9Pah/XyZU89QvBgGt+BCsTPoQa+73RxAQh8fb8qkDyIfeQnmgs+hvzhTCKTzqOyk7JTkS3MS1S8Mq5yrQ==", + "requires": { + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.3.tgz", + "integrity": "sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ==" + }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.4.tgz", - "integrity": "sha512-rnpnZR3/iWKmiQyJ3LKJpSwLDcX/nSXhdLk4Aq/tXOApIvyu7qoabrige0ylsAJffaUC51WiBu209Q0U+86OWQ==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.0.tgz", + "integrity": "sha512-SjJ2ZXCylpWC+5DTES0/pbpNmw/FnjU/3dF068xF0DU9aN+oOKah+3MCSFcb4pnZ9IwmxfOy4KnbGJSQR+hAZA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.0.tgz", + "integrity": "sha512-zLDUckAuKeOtxJhfNE0TlR7iEApb2u7EYRlh5cxKzq6A5VzUbYEdyJGJlug41jDbjRbHTtsLKZUnUcy/8V3xZw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.7.4" + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" } }, + "@babel/traverse": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.3.tgz", + "integrity": "sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.3", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, "is-plain-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.0.0.tgz", diff --git a/package.json b/package.json index a0b6fee..b6fe82e 100644 --- a/package.json +++ b/package.json @@ -39,8 +39,8 @@ }, "dependencies": { "@ibm/plex": "^4.0.2", - "@mdx-js/mdx": "^1.5.3", - "@mdx-js/react": "^1.5.3", + "@mdx-js/mdx": "^1.5.4", + "@mdx-js/react": "^1.5.4", "dayjs": "^1.8.19", "gatsby": "^2.18.22", "gatsby-image": "^2.2.38", diff --git a/src/components/HeroProjects.jsx b/src/components/HeroProjects.jsx index 5414290..676452c 100644 --- a/src/components/HeroProjects.jsx +++ b/src/components/HeroProjects.jsx @@ -36,6 +36,7 @@ const HeroProjects = ({ item }) => ( target="_blank" rel="noopener noreferrer" className="link" + title={`Link to website: ${item.website}`} > {item.website} @@ -47,6 +48,15 @@ const HeroProjects = ({ item }) => ( Team:{' '} +
  • + Role:{' '} + {item.role.map((r, i) => ( + + {r} + {i < item.role.length - 1 && ', '} + + ))} +
  • diff --git a/src/components/member.jsx b/src/components/member.jsx index 7d05d4f..dcc5de2 100644 --- a/src/components/member.jsx +++ b/src/components/member.jsx @@ -4,7 +4,7 @@ const Member = ({ item }) => { return item.link ? ( { +const Page = ({ pageContext: { breadcrumb }, data: { projects } }) => { const pageName = 'Projects' const historyDispatch = useContext(History.Dispatch) @@ -22,17 +20,26 @@ const Page = ({ }) }) - // weird sort function, but works - const idList = new Set(withoutStartDate.edges.map((x) => x.node.id)) - const items = [ - ...withDates.edges, - ...withoutStartDate.edges, - ...withoutEndDate.edges.filter((d) => !idList.has(d.node.id)), - ].sort((starting, ending) => { - return ( - new Date(ending.node.frontmatter.ended) - - new Date(starting.node.frontmatter.ended) - ) + const items = projects.edges.sort((nodeA, nodeB) => { + const AF = nodeA.node.frontmatter + const BF = nodeB.node.frontmatter + + const future = dayjs().add(10, 'y') + const present = dayjs().add(-10, 'y') + const AEnded = AF.ended ? dayjs(AF.ended) : future + const BEnded = BF.ended ? dayjs(BF.ended) : future + const diffEnded = BEnded.diff(AEnded) + const AStarted = AF.started ? dayjs(AF.started) : present + const BStarted = BF.started ? dayjs(BF.started) : present + const diffStarted = AStarted.diff(BStarted) + + if (!BF.started && !BF.ended) { + return -1 + } else if (!AF.started && !AF.ended) { + return 1 + } + + return diffEnded - diffStarted }) if (isDev) { @@ -65,70 +72,35 @@ const Page = ({ // NOTE: this query could be simplified (https://github.com/gatsbyjs/gatsby/issues/17953) export const pageQuery = graphql` - fragment ProjectsNodes on MarkdownRemark { - frontmatter { - title - subtitle - image { - childImageSharp { - fluid(maxWidth: 1600) { - ...GatsbyImageSharpFluid - } - } - } - thumb { - childImageSharp { - fluid(maxWidth: 300) { - ...GatsbyImageSharpFluid - } - } - } - } - fields { - slug - } - } - - query DevelopmentQuery { - withDates: allMarkdownRemark( - filter: { - fields: { source: { eq: "projects" } } - frontmatter: { started: { ne: null }, ended: { ne: null } } - } - sort: { - fields: [frontmatter___ended, frontmatter___started] - order: DESC - } + query ProjectsQuery { + projects: allMarkdownRemark( + filter: { fields: { source: { eq: "projects" } } } ) { edges { node { - ...ProjectsNodes - } - } - } - withoutStartDate: allMarkdownRemark( - filter: { - fields: { source: { eq: "projects" } } - frontmatter: { started: { eq: null } } - } - sort: { fields: frontmatter___ended, order: DESC } - ) { - edges { - node { - ...ProjectsNodes - } - } - } - withoutEndDate: allMarkdownRemark( - filter: { - fields: { source: { eq: "projects" } } - frontmatter: { ended: { eq: null } } - } - sort: { fields: frontmatter___started, order: DESC } - ) { - edges { - node { - ...ProjectsNodes + frontmatter { + title + subtitle + image { + childImageSharp { + fluid(maxWidth: 1600) { + ...GatsbyImageSharpFluid + } + } + } + thumb { + childImageSharp { + fluid(maxWidth: 300) { + ...GatsbyImageSharpFluid + } + } + } + started + ended + } + fields { + slug + } } } } diff --git a/src/styles/layouts/_header.scss b/src/styles/layouts/_header.scss index cb23891..3b0f869 100644 --- a/src/styles/layouts/_header.scss +++ b/src/styles/layouts/_header.scss @@ -1,4 +1,5 @@ #header { + will-change: padding position background; position: relative; top: 0; width: 100%; diff --git a/src/templates/ProjectsSingle.jsx b/src/templates/ProjectsSingle.jsx index fd8e8e7..c96f1f5 100644 --- a/src/templates/ProjectsSingle.jsx +++ b/src/templates/ProjectsSingle.jsx @@ -101,6 +101,7 @@ export const pageQuery = graphql` name link } + role website keywords categories