From aaaf57da9f24da69ff12a9469bb20d15fc207ef4 Mon Sep 17 00:00:00 2001 From: Ivan Starkov Date: Thu, 2 Nov 2023 09:39:06 +0200 Subject: [PATCH] feat: Add Twitter card support & exclude pages from search/index (#2545) ## Description ref #2544 Corresponding SAAS PR https://github.com/webstudio-is/webstudio-saas/pull/215 - Support of page property - `excludePageFromSearch` - Introduced functionality to enable the meta robot noindex tag for the entire website. - Implemented robots.txt support, which appears to be essential for Twitter meta cards functionality. Needs corresponding PR in SAAS deploy. ## Steps for reproduction 1. click button 2. expect xyz ## Code Review - [ ] hi @kof, I need you to do - conceptual review (architecture, feature-correctness) - detailed review (read every line) - test it on preview ## Before requesting a review - [ ] made a self-review - [ ] added inline comments where things may be not obvious (the "why", not "what") ## Before merging - [ ] tested locally and on preview environment (preview dev login: 5de6) - [ ] updated [test cases](https://github.com/webstudio-is/webstudio/blob/main/apps/builder/docs/test-cases.md) document - [ ] added tests - [ ] if any new env variables are added, added them to `.env.example` and the `builder/env-check.js` if mandatory --- .../sidebar-left/panels/pages/settings.tsx | 13 +++++++--- .../app/extension.ts | 9 +++++++ .../app/routes/[robots.txt].tsx | 25 +++++++++++++++++++ .../app/routes/_index.tsx | 16 +++++++++++- .../webstudio-custom-template/remix.env.d.ts | 1 + .../app/extension.ts | 9 +++++++ .../app/routes/[robots.txt].tsx | 25 +++++++++++++++++++ .../app/routes/_index.tsx | 16 +++++++++++- .../remix.env.d.ts | 1 + .../app/extension.ts | 9 +++++++ .../app/routes/[robots.txt].tsx | 25 +++++++++++++++++++ .../app/routes/_index.tsx | 16 +++++++++++- .../remix.env.d.ts | 1 + .../webstudio-remix-vercel/app/extension.ts | 9 +++++++ .../routes/[_route_with_symbols_]._index.tsx | 16 +++++++++++- .../app/routes/[form]._index.tsx | 16 +++++++++++- .../app/routes/[heading-with-id]._index.tsx | 16 +++++++++++- .../app/routes/[radix]._index.tsx | 16 +++++++++++- .../app/routes/[robots.txt].tsx | 25 +++++++++++++++++++ .../app/routes/_index.tsx | 16 +++++++++++- .../webstudio-remix-vercel/remix.env.d.ts | 1 + packages/cli/src/prebuild.ts | 16 ++++++------ .../cli/templates/defaults/app/extension.ts | 9 +++++++ .../defaults/app/routes/[robots.txt].tsx | 25 +++++++++++++++++++ .../cli/templates/defaults/remix.env.d.ts | 1 + packages/cli/templates/route-template.tsx | 16 +++++++++++- 26 files changed, 327 insertions(+), 21 deletions(-) create mode 100644 fixtures/webstudio-custom-template/app/extension.ts create mode 100644 fixtures/webstudio-custom-template/app/routes/[robots.txt].tsx create mode 100644 fixtures/webstudio-remix-netlify-edge-functions/app/extension.ts create mode 100644 fixtures/webstudio-remix-netlify-edge-functions/app/routes/[robots.txt].tsx create mode 100644 fixtures/webstudio-remix-netlify-functions/app/extension.ts create mode 100644 fixtures/webstudio-remix-netlify-functions/app/routes/[robots.txt].tsx create mode 100644 fixtures/webstudio-remix-vercel/app/extension.ts create mode 100644 fixtures/webstudio-remix-vercel/app/routes/[robots.txt].tsx create mode 100644 packages/cli/templates/defaults/app/extension.ts create mode 100644 packages/cli/templates/defaults/app/routes/[robots.txt].tsx diff --git a/apps/builder/app/builder/features/sidebar-left/panels/pages/settings.tsx b/apps/builder/app/builder/features/sidebar-left/panels/pages/settings.tsx index 1c080f7aa8..10db394238 100644 --- a/apps/builder/app/builder/features/sidebar-left/panels/pages/settings.tsx +++ b/apps/builder/app/builder/features/sidebar-left/panels/pages/settings.tsx @@ -60,7 +60,6 @@ import { ImageControl } from "~/builder/features/seo/image-control"; import { ImageInfo } from "./image-info"; import { SocialPreview } from "./social-preview"; import { useEffectEvent } from "~/builder/features/ai/hooks/effect-event"; -import { getPublishedUrl } from "~/shared/router-utils"; const fieldDefaultValues = { name: "Untitled", @@ -178,13 +177,19 @@ const CopyPageDomainAndPathButton = ({ >