From 21521277b024f8491f1cddaff4955cbd17eda05d Mon Sep 17 00:00:00 2001 From: Emmanuel Pelletier Date: Thu, 2 May 2024 09:48:59 +0200 Subject: [PATCH] misc changes on website: - correct a few content mistakes - activate compression on production server - suppress a few TS warnings (with anys, I know) --- website/astro.config.mjs | 2 +- website/package-lock.json | 203 ++++++++++++++++++ website/package.json | 2 + website/public/favicon.ico | Bin 0 -> 285478 bytes website/server.mjs | 7 +- website/src/components/HomepageGenerator.tsx | 4 +- .../content/docs/guides/getting-started.mdx | 7 +- website/src/content/docs/reference/api.md | 4 +- 8 files changed, 219 insertions(+), 10 deletions(-) create mode 100644 website/public/favicon.ico diff --git a/website/astro.config.mjs b/website/astro.config.mjs index f153d37..0099a4c 100644 --- a/website/astro.config.mjs +++ b/website/astro.config.mjs @@ -45,7 +45,7 @@ export default defineConfig({ integrations: [ react(), starlight({ - title: "La Suite Integrations", + title: "La Suite : intégrations", social: { github: "https://github.com/withastro/starlight", }, diff --git a/website/package-lock.json b/website/package-lock.json index acd803b..222a728 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -13,8 +13,10 @@ "@astrojs/markdown-remark": "^5.1.0", "@astrojs/react": "^3.3.1", "@astrojs/starlight": "^0.21.5", + "@fastify/compress": "^7.0.3", "@fastify/static": "^7.0.3", "@gouvfr-lasuite/integration": "^0.1.0", + "@types/prismjs": "^1.26.3", "@types/react": "^18.3.1", "@types/react-dom": "^18.3.0", "@types/react-syntax-highlighter": "^15.5.11", @@ -1419,6 +1421,21 @@ "fast-uri": "^2.0.0" } }, + "node_modules/@fastify/compress": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@fastify/compress/-/compress-7.0.3.tgz", + "integrity": "sha512-xa9fo5/DgK1s0bkS6xrYgNn8HmofO5tJvbCDk8QuXshSgLd2cFZANv1ox/Qv7zswS7JroHwTlCVv/XGTVO98tg==", + "dependencies": { + "@fastify/accept-negotiator": "^1.1.0", + "fastify-plugin": "^4.5.0", + "mime-db": "^1.52.0", + "minipass": "^7.0.2", + "peek-stream": "^1.1.3", + "pump": "^3.0.0", + "pumpify": "^2.0.1", + "readable-stream": "^4.5.2" + } + }, "node_modules/@fastify/error": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/@fastify/error/-/error-3.4.1.tgz", @@ -2456,6 +2473,11 @@ "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==" }, + "node_modules/@types/prismjs": { + "version": "1.26.3", + "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.3.tgz", + "integrity": "sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==" + }, "node_modules/@types/prop-types": { "version": "15.7.12", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", @@ -3377,6 +3399,11 @@ "ieee754": "^1.2.1" } }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, "node_modules/camelcase": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", @@ -3739,6 +3766,11 @@ "node": ">= 0.6" } }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -3896,6 +3928,44 @@ "node": ">=4" } }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/duplexify/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/duplexify/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/duplexify/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -3926,6 +3996,14 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==" }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -5171,6 +5249,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -6480,6 +6563,14 @@ "node": ">=10.0.0" } }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/mimic-fn": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", @@ -6622,6 +6713,14 @@ "node": ">=14.0.0" } }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, "node_modules/onetime": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", @@ -6874,6 +6973,16 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz", "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==" }, + "node_modules/peek-stream": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/peek-stream/-/peek-stream-1.1.3.tgz", + "integrity": "sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==", + "dependencies": { + "buffer-from": "^1.0.0", + "duplexify": "^3.5.0", + "through2": "^2.0.3" + } + }, "node_modules/periscopic": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", @@ -7133,6 +7242,11 @@ "node": ">= 0.6.0" } }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, "node_modules/process-warning": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", @@ -7179,6 +7293,49 @@ "node": ">= 0.10" } }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-2.0.1.tgz", + "integrity": "sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw==", + "dependencies": { + "duplexify": "^4.1.1", + "inherits": "^2.0.3", + "pump": "^3.0.0" + } + }, + "node_modules/pumpify/node_modules/duplexify": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", + "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", + "dependencies": { + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.2" + } + }, + "node_modules/pumpify/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -8741,6 +8898,11 @@ "resolved": "https://registry.npmjs.org/stream-replace-string/-/stream-replace-string-2.0.0.tgz", "integrity": "sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==" }, + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==" + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -8939,6 +9101,42 @@ "real-require": "^0.2.0" } }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -9771,6 +9969,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/website/package.json b/website/package.json index a2fa61e..8b508a6 100644 --- a/website/package.json +++ b/website/package.json @@ -18,8 +18,10 @@ "@astrojs/markdown-remark": "^5.1.0", "@astrojs/react": "^3.3.1", "@astrojs/starlight": "^0.21.5", + "@fastify/compress": "^7.0.3", "@fastify/static": "^7.0.3", "@gouvfr-lasuite/integration": "^0.1.0", + "@types/prismjs": "^1.26.3", "@types/react": "^18.3.1", "@types/react-dom": "^18.3.0", "@types/react-syntax-highlighter": "^15.5.11", diff --git a/website/public/favicon.ico b/website/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d881a76392711054ed32d99c516ccb3e2108eebb GIT binary patch literal 285478 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 literal 0 HcmV?d00001 diff --git a/website/server.mjs b/website/server.mjs index 204ce59..2fe0f3d 100644 --- a/website/server.mjs +++ b/website/server.mjs @@ -1,11 +1,14 @@ import { join } from "path" import Fastify from "fastify" -import staticMiddleware from "@fastify/static" +import fsfStatic from "@fastify/static" +import fsfCompress from "@fastify/compress" const fastify = Fastify({ logger: true, }) -fastify.register(staticMiddleware, { +fastify.register(fsfCompress) + +fastify.register(fsfStatic, { root: join(import.meta.dirname, process.env.STATIC_DIR || "dist"), }) diff --git a/website/src/components/HomepageGenerator.tsx b/website/src/components/HomepageGenerator.tsx index aa51210..98ef1ef 100644 --- a/website/src/components/HomepageGenerator.tsx +++ b/website/src/components/HomepageGenerator.tsx @@ -163,7 +163,7 @@ export default function HomepageGenerator() { ) } -const getReactMarkup = (codeData) => { +const getReactMarkup = (codeData: any) => { return `import { Homepage${ codeData.homepageType && homepageTypes[codeData.homepageType].importCode ? `, ${homepageTypes[codeData.homepageType].importCode}` @@ -199,7 +199,7 @@ export default function MyHomepage() { }` } -const getHTMLMarkup = (codeData) => { +const getHTMLMarkup = (codeData: any) => { const Component = (