From 32a24e4edde9e7f38cc6f729c0ef2ba81d0376e6 Mon Sep 17 00:00:00 2001 From: Abdelrahman Ahmed <16365652+abahmed@users.noreply.github.com> Date: Fri, 7 Jan 2022 08:53:45 +0200 Subject: [PATCH] docs: Add kwatch to showcase (#6281) * Add kwatch to showcase * remove trailing whitespace in description * fix preview extension * resize Co-authored-by: Joshua Chen --- admin/scripts/image-resize.mjs | 5 ++++- website/src/data/showcase/kwatch.png | Bin 0 -> 20519 bytes website/src/data/users.tsx | 8 ++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 website/src/data/showcase/kwatch.png diff --git a/admin/scripts/image-resize.mjs b/admin/scripts/image-resize.mjs index be9606f26b..330269de1c 100644 --- a/admin/scripts/image-resize.mjs +++ b/admin/scripts/image-resize.mjs @@ -10,10 +10,13 @@ import sharp from 'sharp'; import fs from 'fs/promises'; import path from 'path'; -const images = ( +const allImages = ( await fs.readdir(new URL('../../website/src/data/showcase', import.meta.url)) ).filter((file) => ['.png', 'jpg', '.jpeg'].includes(path.extname(file))); +const [,,...selectedImages] = process.argv; +const images = selectedImages.length > 0 ? selectedImages : allImages; + await Promise.all( images.map(async (img) => { const imgPath = new URL( diff --git a/website/src/data/showcase/kwatch.png b/website/src/data/showcase/kwatch.png new file mode 100644 index 0000000000000000000000000000000000000000..568683d2766415e76e2ea15422d55c6e67ea0087 GIT binary patch literal 20519 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 P00000NkvXXu0mjfu3%%% literal 0 HcmV?d00001 diff --git a/website/src/data/users.tsx b/website/src/data/users.tsx index bbda29b6e3..c6b9be1bd6 100644 --- a/website/src/data/users.tsx +++ b/website/src/data/users.tsx @@ -791,6 +791,14 @@ const Users: User[] = [ source: 'https://github.com/kotest/kotest', tags: ['opensource'], }, + { + title: 'kwatch', + description: 'monitor & detect crashes in your Kubernetes(K8s) cluster instantly', + preview: require('./showcase/kwatch.png'), + website: 'https://kwatch.dev', + source: 'https://github.com/abahmed/kwatch.dev', + tags: ['opensource', 'product'], + }, { title: 'LabVIEW 编程经验', description: 'A book for LabVIEW Programming',