mirror of
https://github.com/makeplane/plane
synced 2024-06-14 14:31:34 +00:00
seo fixes
This commit is contained in:
parent
8cadced1aa
commit
93f01ec6d1
@ -1,12 +1,8 @@
|
|||||||
"use client";
|
|
||||||
|
|
||||||
// next imports
|
|
||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
// components
|
// components
|
||||||
import { NavbarSearch } from "./search";
|
import { NavbarSearch } from "./search";
|
||||||
import { NavbarIssueBoardView } from "./issue-board-view";
|
import { NavbarIssueBoardView } from "./issue-board-view";
|
||||||
import { NavbarIssueFilter } from "./issue-filter";
|
import { NavbarIssueFilter } from "./issue-filter";
|
||||||
import { NavbarIssueView } from "./issue-view";
|
|
||||||
import { NavbarTheme } from "./theme";
|
import { NavbarTheme } from "./theme";
|
||||||
// mobx react lite
|
// mobx react lite
|
||||||
import { observer } from "mobx-react-lite";
|
import { observer } from "mobx-react-lite";
|
||||||
|
@ -27,6 +27,7 @@ export const NavbarTheme = observer(() => {
|
|||||||
document?.documentElement.setAttribute("data-theme", theme ?? store?.theme?.theme);
|
document?.documentElement.setAttribute("data-theme", theme ?? store?.theme?.theme);
|
||||||
}, [theme, store]);
|
}, [theme, store]);
|
||||||
|
|
||||||
|
// TODO: check these styles
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
className="relative w-[28px] h-[28px] flex justify-center rounded-md items-center rounded-sm cursor-pointer bg-custom-background-100 hover:bg-custom-background-200 hover:bg-custom-background-200/60 text-custom-text-100 transition-all"
|
className="relative w-[28px] h-[28px] flex justify-center rounded-md items-center rounded-sm cursor-pointer bg-custom-background-100 hover:bg-custom-background-200 hover:bg-custom-background-200/60 text-custom-text-100 transition-all"
|
||||||
|
8
apps/space/constants/seo.ts
Normal file
8
apps/space/constants/seo.ts
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
export const SITE_NAME = "Plane | Simple, extensible, open-source project management tool.";
|
||||||
|
export const SITE_TITLE = "Plane | Simple, extensible, open-source project management tool.";
|
||||||
|
export const SITE_DESCRIPTION =
|
||||||
|
"Open-source project management tool to manage issues, sprints, and product roadmaps with peace of mind.";
|
||||||
|
export const SITE_KEYWORDS =
|
||||||
|
"software development, plan, ship, software, accelerate, code management, release management, project management, issue tracking, agile, scrum, kanban, collaboration";
|
||||||
|
export const SITE_URL = "https://app.plane.so/";
|
||||||
|
export const TWITTER_USER_NAME = "Plane | Simple, extensible, open-source project management tool.";
|
@ -1,3 +1,4 @@
|
|||||||
|
import Head from "next/head";
|
||||||
import type { AppProps } from "next/app";
|
import type { AppProps } from "next/app";
|
||||||
import { ThemeProvider } from "next-themes";
|
import { ThemeProvider } from "next-themes";
|
||||||
// styles
|
// styles
|
||||||
@ -7,11 +8,28 @@ import { ToastContextProvider } from "contexts/toast.context";
|
|||||||
// mobx store provider
|
// mobx store provider
|
||||||
import { MobxStoreProvider } from "lib/mobx/store-provider";
|
import { MobxStoreProvider } from "lib/mobx/store-provider";
|
||||||
import MobxStoreInit from "lib/mobx/store-init";
|
import MobxStoreInit from "lib/mobx/store-init";
|
||||||
|
// constants
|
||||||
|
import { SITE_NAME, SITE_DESCRIPTION, SITE_URL, TWITTER_USER_NAME, SITE_KEYWORDS, SITE_TITLE } from "constants/seo";
|
||||||
|
|
||||||
function MyApp({ Component, pageProps }: AppProps) {
|
function MyApp({ Component, pageProps }: AppProps) {
|
||||||
return (
|
return (
|
||||||
<MobxStoreProvider>
|
<MobxStoreProvider>
|
||||||
<MobxStoreInit />
|
<MobxStoreInit />
|
||||||
|
<Head>
|
||||||
|
<title>{SITE_TITLE}</title>
|
||||||
|
<meta property="og:site_name" content={SITE_NAME} />
|
||||||
|
<meta property="og:title" content={SITE_TITLE} />
|
||||||
|
<meta property="og:url" content={SITE_URL} />
|
||||||
|
<meta name="description" content={SITE_DESCRIPTION} />
|
||||||
|
<meta property="og:description" content={SITE_DESCRIPTION} />
|
||||||
|
<meta name="keywords" content={SITE_KEYWORDS} />
|
||||||
|
<meta name="twitter:site" content={`@${TWITTER_USER_NAME}`} />
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/favicon/apple-touch-icon.png" />
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/favicon/favicon-32x32.png" />
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/favicon/favicon-16x16.png" />
|
||||||
|
<link rel="manifest" href="/site.webmanifest.json" />
|
||||||
|
<link rel="shortcut icon" href="/favicon/favicon.ico" />
|
||||||
|
</Head>
|
||||||
<ToastContextProvider>
|
<ToastContextProvider>
|
||||||
<ThemeProvider attribute="class" defaultTheme="system" enableSystem>
|
<ThemeProvider attribute="class" defaultTheme="system" enableSystem>
|
||||||
<Component {...pageProps} />
|
<Component {...pageProps} />
|
||||||
|
Loading…
Reference in New Issue
Block a user