From a1f122f9f732fefb6e92fd21e3ae5dd62156ff17 Mon Sep 17 00:00:00 2001 From: xMartin Date: Fri, 24 Apr 2020 12:10:16 +0200 Subject: [PATCH] Embed sharing image via next-images * Cache-busting via content hash in filename --- .../open-graph-image.png | Bin components/Meta.tsx | 3 +- next.config.js | 5 ++- package-lock.json | 41 ++++++++++++++++++ package.json | 1 + 5 files changed, 47 insertions(+), 3 deletions(-) rename public/sharing-images/website-into-sharing.png => assets/open-graph-image.png (100%) diff --git a/public/sharing-images/website-into-sharing.png b/assets/open-graph-image.png similarity index 100% rename from public/sharing-images/website-into-sharing.png rename to assets/open-graph-image.png diff --git a/components/Meta.tsx b/components/Meta.tsx index bbbfab6..3bf9371 100644 --- a/components/Meta.tsx +++ b/components/Meta.tsx @@ -1,6 +1,7 @@ import PropTypes from 'prop-types' import Head from 'next/head' import useTranslation from '../hooks/useTranslation' +import openGraphImage from '../assets/open-graph-image.png' export default function Meta({ pageTitle, pageDescription, pageImage }) { const { t } = useTranslation() @@ -22,7 +23,7 @@ export default function Meta({ pageTitle, pageDescription, pageImage }) { diff --git a/next.config.js b/next.config.js index 8a53767..238475d 100644 --- a/next.config.js +++ b/next.config.js @@ -1,6 +1,7 @@ const path = require('path') +const withImages = require('next-images') -module.exports = { +module.exports = withImages({ webpack: function(config) { config.module.rules.push({ test: /\.md$/, @@ -14,4 +15,4 @@ module.exports = { MEETUP_URL: 'http://meetup.com', }, }, -} +}) diff --git a/package-lock.json b/package-lock.json index 9cfcc91..82e9f2c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4164,6 +4164,15 @@ "flat-cache": "^2.0.1" } }, + "file-loader": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.0.0.tgz", + "integrity": "sha512-/aMOAYEFXDdjG0wytpTL5YQLfZnnTmLNjn+AIrJ/6HVnTfDqLsVKUUwkDf4I4kgex36BvjuXEn/TX9B/1ESyqQ==", + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.5" + } + }, "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", @@ -5809,6 +5818,19 @@ "brorand": "^1.0.1" } }, + "mime-db": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" + }, + "mime-types": { + "version": "2.1.26", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", + "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", + "requires": { + "mime-db": "1.43.0" + } + }, "mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", @@ -6092,6 +6114,15 @@ } } }, + "next-images": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/next-images/-/next-images-1.4.0.tgz", + "integrity": "sha512-r5PMMyv5Nrbq93IutIpB0arApPQUer42dfKU/vjlc2u8n3PBib8Pvv9eRH/Eco0Akg5hitp8E125GBZ+isWSsA==", + "requires": { + "file-loader": "^6.0.0", + "url-loader": "^4.0.0" + } + }, "next-tick": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", @@ -9266,6 +9297,16 @@ } } }, + "url-loader": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.0.tgz", + "integrity": "sha512-IzgAAIC8wRrg6NYkFIJY09vtktQcsvU8V6HhtQj9PTefbYImzLB1hufqo4m+RyM5N3mLx5BqJKccgxJS+W3kqw==", + "requires": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.26", + "schema-utils": "^2.6.5" + } + }, "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", diff --git a/package.json b/package.json index 16145bc..4056eb7 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "fetch-jsonp": "^1.1.3", "gray-matter": "^4.0.2", "next": "^9.3.5", + "next-images": "^1.4.0", "raw-loader": "^4.0.1", "react": "^16.13.1", "react-dom": "^16.13.1",