parent
da43b0d087
commit
cf57d77aef
@ -1,17 +0,0 @@ |
||||
import Document, { Head, Html, Main, NextScript } from 'next/document'; |
||||
|
||||
class MyDocument extends Document { |
||||
render(): JSX.Element { |
||||
return ( |
||||
<Html lang="en"> |
||||
<Head /> |
||||
<body className="bg-white dark:bg-black text-gray-900 dark:text-white"> |
||||
<Main /> |
||||
<NextScript /> |
||||
</body> |
||||
</Html> |
||||
); |
||||
} |
||||
} |
||||
|
||||
export default MyDocument; |
@ -1,17 +0,0 @@ |
||||
import Document, { Head, Html, Main, NextScript } from 'next/document'; |
||||
|
||||
class MyDocument extends Document { |
||||
render(): JSX.Element { |
||||
return ( |
||||
<Html lang="ru"> |
||||
<Head /> |
||||
<body className="bg-white dark:bg-black text-gray-900 dark:text-white"> |
||||
<Main /> |
||||
<NextScript /> |
||||
</body> |
||||
</Html> |
||||
); |
||||
} |
||||
} |
||||
|
||||
export default MyDocument; |
@ -1,64 +0,0 @@ |
||||
import { format, parseISO } from 'date-fns'; |
||||
import { GetStaticProps } from 'next'; |
||||
import Link from 'next/link'; |
||||
import React from 'react'; |
||||
import Layout from '../components/Layout'; |
||||
import { getAllPosts } from '../lib/api'; |
||||
import { PostType } from '../types/post'; |
||||
|
||||
type IndexProps = { |
||||
posts: PostType[]; |
||||
}; |
||||
|
||||
export const Index = ({ posts }: IndexProps): JSX.Element => { |
||||
return ( |
||||
<Layout> |
||||
<h1>Home Page</h1> |
||||
<p>Next.js starter for your next blog or personal site. Built with:</p> |
||||
<ul className="list-disc pl-4 my-6"> |
||||
<li>Next.js</li> |
||||
<li className="mt-2">Typescript</li> |
||||
<li className="mt-2">MDX</li> |
||||
<li className="mt-2">Tailwind CSS</li> |
||||
</ul> |
||||
|
||||
<a |
||||
href="https://github.com/ChangoMan/nextjs-typescript-mdx-blog" |
||||
className="inline-block px-7 py-3 rounded-md text-white dark:text-white bg-blue-600 hover:bg-blue-700 hover:text-white dark:hover:text-white" |
||||
> |
||||
Get the source code! |
||||
</a> |
||||
|
||||
{posts.map((post) => ( |
||||
<article key={post.slug} className="mt-12"> |
||||
<p className="mb-1 text-sm text-gray-500 dark:text-gray-400"> |
||||
{format(parseISO(post.date), 'MMMM dd, yyyy')} |
||||
</p> |
||||
<h1 className="mb-2 text-xl"> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a className="text-gray-900 dark:text-white dark:hover:text-blue-400"> |
||||
{post.title} |
||||
</a> |
||||
</Link> |
||||
</h1> |
||||
<p className="mb-3">{post.description}</p> |
||||
<p> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a>Read More</a> |
||||
</Link> |
||||
</p> |
||||
</article> |
||||
))} |
||||
</Layout> |
||||
); |
||||
}; |
||||
|
||||
export const getStaticProps: GetStaticProps = async () => { |
||||
const posts = getAllPosts(['date', 'description', 'slug', 'title']); |
||||
|
||||
return { |
||||
props: { posts }, |
||||
}; |
||||
}; |
||||
|
||||
export default Index; |
@ -1,64 +0,0 @@ |
||||
import { format, parseISO } from 'date-fns'; |
||||
import { GetStaticProps } from 'next'; |
||||
import Link from 'next/link'; |
||||
import React from 'react'; |
||||
import Layout from '../components/Layout'; |
||||
import { getAllPosts } from '../lib/api'; |
||||
import { PostType } from '../types/post'; |
||||
|
||||
type IndexProps = { |
||||
posts: PostType[]; |
||||
}; |
||||
|
||||
export const Index = ({ posts }: IndexProps): JSX.Element => { |
||||
return ( |
||||
<Layout> |
||||
<h1>Робототехнический фестиваль RobotTop</h1> |
||||
<p>Next.js starter for your next blog or personal site. Built with:</p> |
||||
<ul className="list-disc pl-4 my-6"> |
||||
<li>Next.js</li> |
||||
<li className="mt-2">Typescript</li> |
||||
<li className="mt-2">MDX</li> |
||||
<li className="mt-2">Tailwind CSS</li> |
||||
</ul> |
||||
|
||||
<a |
||||
href="https://github.com/ChangoMan/nextjs-typescript-mdx-blog" |
||||
className="inline-block px-7 py-3 rounded-md text-white dark:text-white bg-blue-600 hover:bg-blue-700 hover:text-white dark:hover:text-white" |
||||
> |
||||
Get the source code! |
||||
</a> |
||||
|
||||
{posts.map((post) => ( |
||||
<article key={post.slug} className="mt-12"> |
||||
<p className="mb-1 text-sm text-gray-500 dark:text-gray-400"> |
||||
{format(parseISO(post.date), 'MMMM dd, yyyy')} |
||||
</p> |
||||
<h1 className="mb-2 text-xl"> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a className="text-gray-900 dark:text-white dark:hover:text-blue-400"> |
||||
{post.title} |
||||
</a> |
||||
</Link> |
||||
</h1> |
||||
<p className="mb-3">{post.description}</p> |
||||
<p> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a>Read More</a> |
||||
</Link> |
||||
</p> |
||||
</article> |
||||
))} |
||||
</Layout> |
||||
); |
||||
}; |
||||
|
||||
export const getStaticProps: GetStaticProps = async () => { |
||||
const posts = getAllPosts(['date', 'description', 'slug', 'title']); |
||||
|
||||
return { |
||||
props: { posts }, |
||||
}; |
||||
}; |
||||
|
||||
export default Index; |
@ -1,64 +0,0 @@ |
||||
import { format, parseISO } from 'date-fns'; |
||||
import { GetStaticProps } from 'next'; |
||||
import Link from 'next/link'; |
||||
import React from 'react'; |
||||
import Layout from '../components/Layout'; |
||||
import { getAllPosts } from '../lib/api'; |
||||
import { PostType } from '../types/post'; |
||||
|
||||
type IndexProps = { |
||||
posts: PostType[]; |
||||
}; |
||||
|
||||
export const Index = ({ posts }: IndexProps): JSX.Element => { |
||||
return ( |
||||
<Layout> |
||||
<h1>Робототехнический фестиваль RobotTop</h1> |
||||
<p>Next.js starter for your next blog or personal site. Built with:</p> |
||||
<ul className="list-disc pl-4 my-6"> |
||||
<li>Next.js</li> |
||||
<li className="mt-2">Typescript</li> |
||||
<li className="mt-2">MDX</li> |
||||
<li className="mt-2">Tailwind CSS</li> |
||||
</ul> |
||||
|
||||
<a |
||||
href="https://github.com/ChangoMan/nextjs-typescript-mdx-blog" |
||||
className="inline-block px-7 py-3 rounded-md text-white dark:text-white bg-blue-600 hover:bg-blue-700 hover:text-white dark:hover:text-white" |
||||
> |
||||
Get the source code! |
||||
</a> |
||||
|
||||
{posts.map((post) => ( |
||||
<article key={post.slug} className="mt-12"> |
||||
<p className="mb-1 text-sm text-gray-500 dark:text-gray-400"> |
||||
{format(parseISO(post.date), 'MMMM dd, yyyy')} |
||||
</p> |
||||
<h1 className="mb-2 text-xl"> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a className="text-gray-900 dark:text-white dark:hover:text-blue-400"> |
||||
{post.title} |
||||
</a> |
||||
</Link> |
||||
</h1> |
||||
<p className="mb-3">{post.description}</p> |
||||
<p> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a>Подробнее...</a> |
||||
</Link> |
||||
</p> |
||||
</article> |
||||
))} |
||||
</Layout> |
||||
); |
||||
}; |
||||
|
||||
export const getStaticProps: GetStaticProps = async () => { |
||||
const posts = getAllPosts(['date', 'description', 'slug', 'title']); |
||||
|
||||
return { |
||||
props: { posts }, |
||||
}; |
||||
}; |
||||
|
||||
export default Index; |
@ -1,64 +0,0 @@ |
||||
import { format, parseISO } from 'date-fns'; |
||||
import { GetStaticProps } from 'next'; |
||||
import Link from 'next/link'; |
||||
import React from 'react'; |
||||
import Layout from '../components/Layout'; |
||||
import { getAllPosts } from '../lib/api'; |
||||
import { PostType } from '../types/post'; |
||||
|
||||
type IndexProps = { |
||||
posts: PostType[]; |
||||
}; |
||||
|
||||
export const Index = ({ posts }: IndexProps): JSX.Element => { |
||||
return ( |
||||
<Layout> |
||||
<h1>Робототехнический фестиваль RobotTop</h1> |
||||
<p>Next.js starter for your next blog or personal site. Built with:</p> |
||||
<ul className="list-disc pl-4 my-6"> |
||||
<li>Next.js</li> |
||||
<li className="mt-2">Typescript</li> |
||||
<li className="mt-2">MDX</li> |
||||
<li className="mt-2">Tailwind CSS</li> |
||||
</ul> |
||||
|
||||
<a |
||||
href="https://github.com/ChangoMan/nextjs-typescript-mdx-blog" |
||||
className="inline-block px-7 py-3 rounded-md text-white dark:text-white bg-blue-600 hover:bg-blue-700 hover:text-white dark:hover:text-white" |
||||
> |
||||
Записаться на соревнования! |
||||
</a> |
||||
|
||||
{posts.map((post) => ( |
||||
<article key={post.slug} className="mt-12"> |
||||
<p className="mb-1 text-sm text-gray-500 dark:text-gray-400"> |
||||
{format(parseISO(post.date), 'MMMM dd, yyyy')} |
||||
</p> |
||||
<h1 className="mb-2 text-xl"> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a className="text-gray-900 dark:text-white dark:hover:text-blue-400"> |
||||
{post.title} |
||||
</a> |
||||
</Link> |
||||
</h1> |
||||
<p className="mb-3">{post.description}</p> |
||||
<p> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a>Подробнее...</a> |
||||
</Link> |
||||
</p> |
||||
</article> |
||||
))} |
||||
</Layout> |
||||
); |
||||
}; |
||||
|
||||
export const getStaticProps: GetStaticProps = async () => { |
||||
const posts = getAllPosts(['date', 'description', 'slug', 'title']); |
||||
|
||||
return { |
||||
props: { posts }, |
||||
}; |
||||
}; |
||||
|
||||
export default Index; |
@ -1,64 +0,0 @@ |
||||
import { format, parseISO } from 'date-fns'; |
||||
import { GetStaticProps } from 'next'; |
||||
import Link from 'next/link'; |
||||
import React from 'react'; |
||||
import Layout from '../components/Layout'; |
||||
import { getAllPosts } from '../lib/api'; |
||||
import { PostType } from '../types/post'; |
||||
|
||||
type IndexProps = { |
||||
posts: PostType[]; |
||||
}; |
||||
|
||||
export const Index = ({ posts }: IndexProps): JSX.Element => { |
||||
return ( |
||||
<Layout>Расписание |
||||
<h1>Робототехнический фестиваль RobotTop</h1> |
||||
<p>Next.js starter for your next blog or personal site. Built with:</p> |
||||
<ul className="list-disc pl-4 my-6"> |
||||
<li>Next.js</li> |
||||
<li className="mt-2">Typescript</li> |
||||
<li className="mt-2">MDX</li> |
||||
<li className="mt-2">Tailwind CSS</li> |
||||
</ul> |
||||
|
||||
<a |
||||
href="https://github.com/ChangoMan/nextjs-typescript-mdx-blog" |
||||
className="inline-block px-7 py-3 rounded-md text-white dark:text-white bg-blue-600 hover:bg-blue-700 hover:text-white dark:hover:text-white" |
||||
> |
||||
Регистрация команд |
||||
</a> |
||||
|
||||
{posts.map((post) => ( |
||||
<article key={post.slug} className="mt-12"> |
||||
<p className="mb-1 text-sm text-gray-500 dark:text-gray-400"> |
||||
{format(parseISO(post.date), 'MMMM dd, yyyy')} |
||||
</p> |
||||
<h1 className="mb-2 text-xl"> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a className="text-gray-900 dark:text-white dark:hover:text-blue-400"> |
||||
{post.title} |
||||
</a> |
||||
</Link> |
||||
</h1> |
||||
<p className="mb-3">{post.description}</p> |
||||
<p> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a>Подробнее...</a> |
||||
</Link> |
||||
</p> |
||||
</article> |
||||
))} |
||||
</Layout> |
||||
); |
||||
}; |
||||
|
||||
export const getStaticProps: GetStaticProps = async () => { |
||||
const posts = getAllPosts(['date', 'description', 'slug', 'title']); |
||||
|
||||
return { |
||||
props: { posts }, |
||||
}; |
||||
}; |
||||
|
||||
export default Index; |
@ -1,64 +0,0 @@ |
||||
import { format, parseISO } from 'date-fns'; |
||||
import { GetStaticProps } from 'next'; |
||||
import Link from 'next/link'; |
||||
import React from 'react'; |
||||
import Layout from '../components/Layout'; |
||||
import { getAllPosts } from '../lib/api'; |
||||
import { PostType } from '../types/post'; |
||||
|
||||
type IndexProps = { |
||||
posts: PostType[]; |
||||
}; |
||||
|
||||
export const Index = ({ posts }: IndexProps): JSX.Element => { |
||||
return ( |
||||
<Layout>Расписание |
||||
<h1>Робототехнический фестиваль RobotTop</h1> |
||||
<p>РоботТОП – это робототехнические соревнования, в которых могут принять участие молодые любители робототехники, объединившись в команды.</p> |
||||
<ul className="list-disc pl-4 my-6"> |
||||
<li>Любая робототехническая платформа</li> |
||||
<li className="mt-2">Команда от 2 до 3 человек</li> |
||||
<li className="mt-2">11 возрастных групп</li> |
||||
<li className="mt-2">Свобода творчества</li> |
||||
</ul> |
||||
|
||||
<a |
||||
href="https://github.com/ChangoMan/nextjs-typescript-mdx-blog" |
||||
className="inline-block px-7 py-3 rounded-md text-white dark:text-white bg-blue-600 hover:bg-blue-700 hover:text-white dark:hover:text-white" |
||||
> |
||||
Регистрация команд |
||||
</a> |
||||
|
||||
{posts.map((post) => ( |
||||
<article key={post.slug} className="mt-12"> |
||||
<p className="mb-1 text-sm text-gray-500 dark:text-gray-400"> |
||||
{format(parseISO(post.date), 'MMMM dd, yyyy')} |
||||
</p> |
||||
<h1 className="mb-2 text-xl"> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a className="text-gray-900 dark:text-white dark:hover:text-blue-400"> |
||||
{post.title} |
||||
</a> |
||||
</Link> |
||||
</h1> |
||||
<p className="mb-3">{post.description}</p> |
||||
<p> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a>Подробнее...</a> |
||||
</Link> |
||||
</p> |
||||
</article> |
||||
))} |
||||
</Layout> |
||||
); |
||||
}; |
||||
|
||||
export const getStaticProps: GetStaticProps = async () => { |
||||
const posts = getAllPosts(['date', 'description', 'slug', 'title']); |
||||
|
||||
return { |
||||
props: { posts }, |
||||
}; |
||||
}; |
||||
|
||||
export default Index; |
@ -1,64 +0,0 @@ |
||||
import { format, parseISO } from 'date-fns'; |
||||
import { GetStaticProps } from 'next'; |
||||
import Link from 'next/link'; |
||||
import React from 'react'; |
||||
import Layout from '../components/Layout'; |
||||
import { getAllPosts } from '../lib/api'; |
||||
import { PostType } from '../types/post'; |
||||
|
||||
type IndexProps = { |
||||
posts: PostType[]; |
||||
}; |
||||
|
||||
export const Index = ({ posts }: IndexProps): JSX.Element => { |
||||
return ( |
||||
<Layout>Расписание |
||||
<h1>Робототехнический фестиваль RobotTop</h1> |
||||
<p>РоботТОП – это робототехнические соревнования, в которых могут принять участие молодые любители робототехники, объединившись в команды.</p> |
||||
<ul className="list-disc pl-4 my-6"> |
||||
<li>Любая робототехническая платформа</li> |
||||
<li className="mt-2">Команда от 2 до 3 человек</li> |
||||
<li className="mt-2">11 возрастных групп</li> |
||||
<li className="mt-2">Свобода в творчестве</li> |
||||
</ul> |
||||
|
||||
<a |
||||
href="https://github.com/ChangoMan/nextjs-typescript-mdx-blog" |
||||
className="inline-block px-7 py-3 rounded-md text-white dark:text-white bg-blue-600 hover:bg-blue-700 hover:text-white dark:hover:text-white" |
||||
> |
||||
Регистрация команд |
||||
</a> |
||||
|
||||
{posts.map((post) => ( |
||||
<article key={post.slug} className="mt-12"> |
||||
<p className="mb-1 text-sm text-gray-500 dark:text-gray-400"> |
||||
{format(parseISO(post.date), 'MMMM dd, yyyy')} |
||||
</p> |
||||
<h1 className="mb-2 text-xl"> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a className="text-gray-900 dark:text-white dark:hover:text-blue-400"> |
||||
{post.title} |
||||
</a> |
||||
</Link> |
||||
</h1> |
||||
<p className="mb-3">{post.description}</p> |
||||
<p> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a>Подробнее...</a> |
||||
</Link> |
||||
</p> |
||||
</article> |
||||
))} |
||||
</Layout> |
||||
); |
||||
}; |
||||
|
||||
export const getStaticProps: GetStaticProps = async () => { |
||||
const posts = getAllPosts(['date', 'description', 'slug', 'title']); |
||||
|
||||
return { |
||||
props: { posts }, |
||||
}; |
||||
}; |
||||
|
||||
export default Index; |
@ -1,64 +0,0 @@ |
||||
import { format, parseISO } from 'date-fns'; |
||||
import { GetStaticProps } from 'next'; |
||||
import Link from 'next/link'; |
||||
import React from 'react'; |
||||
import Layout from '../components/Layout'; |
||||
import { getAllPosts } from '../lib/api'; |
||||
import { PostType } from '../types/post'; |
||||
|
||||
type IndexProps = { |
||||
posts: PostType[]; |
||||
}; |
||||
|
||||
export const Index = ({ posts }: IndexProps): JSX.Element => { |
||||
return ( |
||||
<Layout>Расписание |
||||
<h1>Робототехнический фестиваль RobotTop</h1> |
||||
<p>РоботТОП – это робототехнические соревнования, в которых могут принять участие молодые любители робототехники, объединившись в команды.</p> |
||||
<ul className="list-disc pl-4 my-6"> |
||||
<li>Любая робототехническая платформа</li> |
||||
<li className="mt-2">Команда от 2 до 3 человек</li> |
||||
<li className="mt-2">11 возрастных групп</li> |
||||
<li className="mt-2">Свобода в творчестве</li> |
||||
</ul> |
||||
|
||||
<a |
||||
as={`/posts/registration`} href={`/posts/[slug]`} |
||||
className="inline-block px-7 py-3 rounded-md text-white dark:text-white bg-blue-600 hover:bg-blue-700 hover:text-white dark:hover:text-white" |
||||
> |
||||
Регистрация команд |
||||
</a> |
||||
|
||||
{posts.map((post) => ( |
||||
<article key={post.slug} className="mt-12"> |
||||
<p className="mb-1 text-sm text-gray-500 dark:text-gray-400"> |
||||
{format(parseISO(post.date), 'MMMM dd, yyyy')} |
||||
</p> |
||||
<h1 className="mb-2 text-xl"> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a className="text-gray-900 dark:text-white dark:hover:text-blue-400"> |
||||
{post.title} |
||||
</a> |
||||
</Link> |
||||
</h1> |
||||
<p className="mb-3">{post.description}</p> |
||||
<p> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a>Подробнее...</a> |
||||
</Link> |
||||
</p> |
||||
</article> |
||||
))} |
||||
</Layout> |
||||
); |
||||
}; |
||||
|
||||
export const getStaticProps: GetStaticProps = async () => { |
||||
const posts = getAllPosts(['date', 'description', 'slug', 'title']); |
||||
|
||||
return { |
||||
props: { posts }, |
||||
}; |
||||
}; |
||||
|
||||
export default Index; |
@ -1,64 +0,0 @@ |
||||
import { format, parseISO } from 'date-fns'; |
||||
import { GetStaticProps } from 'next'; |
||||
import Link from 'next/link'; |
||||
import React from 'react'; |
||||
import Layout from '../components/Layout'; |
||||
import { getAllPosts } from '../lib/api'; |
||||
import { PostType } from '../types/post'; |
||||
|
||||
type IndexProps = { |
||||
posts: PostType[]; |
||||
}; |
||||
|
||||
export const Index = ({ posts }: IndexProps): JSX.Element => { |
||||
return ( |
||||
<Layout>Расписание |
||||
<h1>Робототехнический фестиваль RobotTop</h1> |
||||
<p>РоботТОП – это робототехнические соревнования, в которых могут принять участие молодые любители робототехники, объединившись в команды.</p> |
||||
<ul className="list-disc pl-4 my-6"> |
||||
<li>Любая робототехническая платформа</li> |
||||
<li className="mt-2">Команда от 2 до 3 человек</li> |
||||
<li className="mt-2">11 возрастных групп</li> |
||||
<li className="mt-2">Свобода в творчестве</li> |
||||
</ul> |
||||
<Link as={`/posts/registration`} href={`/posts/[slug]`}> |
||||
<a |
||||
className="inline-block px-7 py-3 rounded-md text-white dark:text-white bg-blue-600 hover:bg-blue-700 hover:text-white dark:hover:text-white" |
||||
> |
||||
Регистрация команд |
||||
</a> |
||||
</Link> |
||||
|
||||
{posts.map((post) => ( |
||||
<article key={post.slug} className="mt-12"> |
||||
<p className="mb-1 text-sm text-gray-500 dark:text-gray-400"> |
||||
{format(parseISO(post.date), 'MMMM dd, yyyy')} |
||||
</p> |
||||
<h1 className="mb-2 text-xl"> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a className="text-gray-900 dark:text-white dark:hover:text-blue-400"> |
||||
{post.title} |
||||
</a> |
||||
</Link> |
||||
</h1> |
||||
<p className="mb-3">{post.description}</p> |
||||
<p> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a>Подробнее...</a> |
||||
</Link> |
||||
</p> |
||||
</article> |
||||
))} |
||||
</Layout> |
||||
); |
||||
}; |
||||
|
||||
export const getStaticProps: GetStaticProps = async () => { |
||||
const posts = getAllPosts(['date', 'description', 'slug', 'title']); |
||||
|
||||
return { |
||||
props: { posts }, |
||||
}; |
||||
}; |
||||
|
||||
export default Index; |
@ -1,64 +0,0 @@ |
||||
import { format, parseISO } from 'date-fns'; |
||||
import { GetStaticProps } from 'next'; |
||||
import Link from 'next/link'; |
||||
import React from 'react'; |
||||
import Layout from '../components/Layout'; |
||||
import { getAllPosts } from '../lib/api'; |
||||
import { PostType } from '../types/post'; |
||||
|
||||
type IndexProps = { |
||||
posts: PostType[]; |
||||
}; |
||||
|
||||
export const Index = ({ posts }: IndexProps): JSX.Element => { |
||||
return ( |
||||
<Layout>Расписание |
||||
<h1>Робототехнический фестиваль RobotTop</h1> |
||||
<p>РоботТОП – это робототехнические соревнования, в которых могут принять участие молодые любители робототехники, объединившись в команды.</p> |
||||
<ul className="list-disc pl-4 my-6"> |
||||
<li>Любая робототехническая платформа</li> |
||||
<li className="mt-2">Команда от 2 до 3 человек</li> |
||||
<li className="mt-2">11 возрастных групп</li> |
||||
<li className="mt-2">Свобода в творчестве</li> |
||||
</ul> |
||||
<Link as={`/posts/registration`} href={`/posts/[slug]`}> |
||||
<a |
||||
className="inline-block px-7 py-3 rounded-md text-white dark:text-white bg-blue-600 hover:bg-blue-700 hover:text-white dark:hover:text-white" |
||||
> |
||||
Регистрация команд |
||||
</a> |
||||
</Link> |
||||
|
||||
{posts.map((post) => ( |
||||
<article key={post.slug} className="mt-12"> |
||||
<p className="mb-1 text-sm text-gray-500 dark:text-gray-400"> |
||||
{format(parseISO(post.date), 'MMMM dd, yyyy')} |
||||
</p> |
||||
<h1 className="mb-2 text-xl"> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a className="text-gray-900 dark:text-white dark:hover:text-blue-400"> |
||||
{post.title} |
||||
</a> |
||||
</Link> |
||||
</h1> |
||||
<p className="mb-3">{post.description}</p> |
||||
<p> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a>Подробнее...</a> |
||||
</Link> |
||||
</p> |
||||
</article> |
||||
))} |
||||
</Layout> |
||||
); |
||||
}; |
||||
|
||||
export const getStaticProps: GetStaticProps = async () => { |
||||
const posts = getAllPosts(['date', 'description', 'slug', 'title']); |
||||
|
||||
return { |
||||
props: { posts }, |
||||
}; |
||||
}; |
||||
|
||||
export default Index; |
@ -1,64 +0,0 @@ |
||||
import { format, parseISO } from 'date-fns'; |
||||
import { GetStaticProps } from 'next'; |
||||
import Link from 'next/link'; |
||||
import React from 'react'; |
||||
import Layout from '../components/Layout'; |
||||
import { getAllPosts } from '../lib/api'; |
||||
import { PostType } from '../types/post'; |
||||
|
||||
type IndexProps = { |
||||
posts: PostType[]; |
||||
}; |
||||
|
||||
export const Index = ({ posts }: IndexProps): JSX.Element => { |
||||
return ( |
||||
<Layout>Расписание |
||||
<h1>Робототехнический фестиваль RobotTop</h1> |
||||
<p>РоботТОП – это робототехнические соревнования, в которых могут принять участие молодые любители робототехники, объединившись в команды.</p> |
||||
<ul className="list-disc pl-4 my-6"> |
||||
<li>Любая робототехническая платформа</li> |
||||
<li className="mt-2">Команда от 2 до 3 человек</li> |
||||
<li className="mt-2">11 возрастных групп</li> |
||||
<li className="mt-2">Свобода в творчестве</li> |
||||
</ul> |
||||
<Link href={`/posts/registration`}> |
||||
<a |
||||
className="inline-block px-7 py-3 rounded-md text-white dark:text-white bg-blue-600 hover:bg-blue-700 hover:text-white dark:hover:text-white" |
||||
> |
||||
Регистрация команд |
||||
</a> |
||||
</Link> |
||||
|
||||
{posts.map((post) => ( |
||||
<article key={post.slug} className="mt-12"> |
||||
<p className="mb-1 text-sm text-gray-500 dark:text-gray-400"> |
||||
{format(parseISO(post.date), 'MMMM dd, yyyy')} |
||||
</p> |
||||
<h1 className="mb-2 text-xl"> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a className="text-gray-900 dark:text-white dark:hover:text-blue-400"> |
||||
{post.title} |
||||
</a> |
||||
</Link> |
||||
</h1> |
||||
<p className="mb-3">{post.description}</p> |
||||
<p> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a>Подробнее...</a> |
||||
</Link> |
||||
</p> |
||||
</article> |
||||
))} |
||||
</Layout> |
||||
); |
||||
}; |
||||
|
||||
export const getStaticProps: GetStaticProps = async () => { |
||||
const posts = getAllPosts(['date', 'description', 'slug', 'title']); |
||||
|
||||
return { |
||||
props: { posts }, |
||||
}; |
||||
}; |
||||
|
||||
export default Index; |
@ -1,64 +0,0 @@ |
||||
import { format, parseISO } from 'date-fns'; |
||||
import { GetStaticProps } from 'next'; |
||||
import Link from 'next/link'; |
||||
import React from 'react'; |
||||
import Layout from '../components/Layout'; |
||||
import { getAllPosts } from '../lib/api'; |
||||
import { PostType } from '../types/post'; |
||||
|
||||
type IndexProps = { |
||||
posts: PostType[]; |
||||
}; |
||||
|
||||
export const Index = ({ posts }: IndexProps): JSX.Element => { |
||||
return ( |
||||
<Layout>Расписание |
||||
<h1>Робототехнический фестиваль RobotTop</h1> |
||||
<p>РоботТОП – это робототехнические соревнования, в которых могут принять участие молодые любители робототехники, объединившись в команды.</p> |
||||
<ul className="list-disc pl-4 my-6"> |
||||
<li>Любая робототехническая платформа</li> |
||||
<li className="mt-2">Команда от 2 до 3 человек</li> |
||||
<li className="mt-2">11 возрастных групп</li> |
||||
<li className="mt-2">Свобода в творчестве</li> |
||||
</ul> |
||||
<Link href={`/registration`}> |
||||
<a |
||||
className="inline-block px-7 py-3 rounded-md text-white dark:text-white bg-blue-600 hover:bg-blue-700 hover:text-white dark:hover:text-white" |
||||
> |
||||
Регистрация команд |
||||
</a> |
||||
</Link> |
||||
|
||||
{posts.map((post) => ( |
||||
<article key={post.slug} className="mt-12"> |
||||
<p className="mb-1 text-sm text-gray-500 dark:text-gray-400"> |
||||
{format(parseISO(post.date), 'MMMM dd, yyyy')} |
||||
</p> |
||||
<h1 className="mb-2 text-xl"> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a className="text-gray-900 dark:text-white dark:hover:text-blue-400"> |
||||
{post.title} |
||||
</a> |
||||
</Link> |
||||
</h1> |
||||
<p className="mb-3">{post.description}</p> |
||||
<p> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a>Подробнее...</a> |
||||
</Link> |
||||
</p> |
||||
</article> |
||||
))} |
||||
</Layout> |
||||
); |
||||
}; |
||||
|
||||
export const getStaticProps: GetStaticProps = async () => { |
||||
const posts = getAllPosts(['date', 'description', 'slug', 'title']); |
||||
|
||||
return { |
||||
props: { posts }, |
||||
}; |
||||
}; |
||||
|
||||
export default Index; |
@ -1,64 +0,0 @@ |
||||
import { format, parseISO } from 'date-fns'; |
||||
import { GetStaticProps } from 'next'; |
||||
import Link from 'next/link'; |
||||
import React from 'react'; |
||||
import Layout from '../components/Layout'; |
||||
import { getAllPosts } from '../lib/api'; |
||||
import { PostType } from '../types/post'; |
||||
|
||||
type IndexProps = { |
||||
posts: PostType[]; |
||||
}; |
||||
|
||||
export const Index = ({ posts }: IndexProps): JSX.Element => { |
||||
return ( |
||||
<Layout>Расписание |
||||
<h1>Робототехнический фестиваль RobotTop</h1> |
||||
<p>РоботТОП – это робототехнические соревнования, в которых могут принять участие молодые любители робототехники, объединившись в команды.</p> |
||||
<ul className="list-disc pl-4 my-6"> |
||||
<li>Любая робототехническая платформа</li> |
||||
<li className="mt-2">Команда от 2 до 3 человек</li> |
||||
<li className="mt-2">11 возрастных групп</li> |
||||
<li className="mt-2">Свобода в творчестве</li> |
||||
</ul> |
||||
<Link href={`/registration`}> |
||||
<a |
||||
className="inline-block px-7 py-3 rounded-md text-white dark:text-white bg-blue-600 hover:bg-blue-700 hover:text-white dark:hover:text-white" |
||||
> |
||||
Регистрация команды |
||||
</a> |
||||
</Link> |
||||
|
||||
{posts.map((post) => ( |
||||
<article key={post.slug} className="mt-12"> |
||||
<p className="mb-1 text-sm text-gray-500 dark:text-gray-400"> |
||||
{format(parseISO(post.date), 'MMMM dd, yyyy')} |
||||
</p> |
||||
<h1 className="mb-2 text-xl"> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a className="text-gray-900 dark:text-white dark:hover:text-blue-400"> |
||||
{post.title} |
||||
</a> |
||||
</Link> |
||||
</h1> |
||||
<p className="mb-3">{post.description}</p> |
||||
<p> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a>Подробнее...</a> |
||||
</Link> |
||||
</p> |
||||
</article> |
||||
))} |
||||
</Layout> |
||||
); |
||||
}; |
||||
|
||||
export const getStaticProps: GetStaticProps = async () => { |
||||
const posts = getAllPosts(['date', 'description', 'slug', 'title']); |
||||
|
||||
return { |
||||
props: { posts }, |
||||
}; |
||||
}; |
||||
|
||||
export default Index; |
@ -1,64 +0,0 @@ |
||||
import { format, parseISO } from 'date-fns'; |
||||
import { GetStaticProps } from 'next'; |
||||
import Link from 'next/link'; |
||||
import React from 'react'; |
||||
import Layout from '../components/Layout'; |
||||
import { getAllPosts } from '../lib/api'; |
||||
import { PostType } from '../types/post'; |
||||
|
||||
type IndexProps = { |
||||
posts: PostType[]; |
||||
}; |
||||
|
||||
export const Index = ({ posts }: IndexProps): JSX.Element => { |
||||
return ( |
||||
<Layout> |
||||
<h1>Робототехнический фестиваль RobotTop</h1> |
||||
<p>РоботТОП – это робототехнические соревнования, в которых могут принять участие молодые любители робототехники, объединившись в команды.</p> |
||||
<ul className="list-disc pl-4 my-6"> |
||||
<li>Любая робототехническая платформа</li> |
||||
<li className="mt-2">Команда от 2 до 3 человек</li> |
||||
<li className="mt-2">11 возрастных групп</li> |
||||
<li className="mt-2">Свобода в творчестве</li> |
||||
</ul> |
||||
<Link href={`/registration`}> |
||||
<a |
||||
className="inline-block px-7 py-3 rounded-md text-white dark:text-white bg-blue-600 hover:bg-blue-700 hover:text-white dark:hover:text-white" |
||||
> |
||||
Регистрация команды |
||||
</a> |
||||
</Link> |
||||
|
||||
{posts.map((post) => ( |
||||
<article key={post.slug} className="mt-12"> |
||||
<p className="mb-1 text-sm text-gray-500 dark:text-gray-400"> |
||||
{format(parseISO(post.date), 'MMMM dd, yyyy')} |
||||
</p> |
||||
<h1 className="mb-2 text-xl"> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a className="text-gray-900 dark:text-white dark:hover:text-blue-400"> |
||||
{post.title} |
||||
</a> |
||||
</Link> |
||||
</h1> |
||||
<p className="mb-3">{post.description}</p> |
||||
<p> |
||||
<Link as={`/posts/${post.slug}`} href={`/posts/[slug]`}> |
||||
<a>Подробнее...</a> |
||||
</Link> |
||||
</p> |
||||
</article> |
||||
))} |
||||
</Layout> |
||||
); |
||||
}; |
||||
|
||||
export const getStaticProps: GetStaticProps = async () => { |
||||
const posts = getAllPosts(['date', 'description', 'slug', 'title']); |
||||
|
||||
return { |
||||
props: { posts }, |
||||
}; |
||||
}; |
||||
|
||||
export default Index; |
Loading…
Reference in new issue