Skip to content

Commit eb0ddba

Browse files
committed
StackMIREA-0007 // Добавил на стартовую страницу StackMIREA блок с правилами публикации и раздел со ссылками на Pull Request (создание, список всех и открытых PR) для удобной отправки материалов на ревью.
1 parent 999cc85 commit eb0ddba

File tree

2 files changed

+95
-2
lines changed

2 files changed

+95
-2
lines changed

.nvmrc

Lines changed: 0 additions & 1 deletion
This file was deleted.

app/page.tsx

Lines changed: 95 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import Link from "next/link";
2-
import { ArrowRight, Bot, Brain, Code2, Database, Sigma } from "lucide-react";
2+
import { ArrowRight, Bot, Brain, Code2, Database, ExternalLink, GitPullRequest, ListChecks, Sigma } from "lucide-react";
33

44
import { buttonVariants } from "@/components/ui/button";
55
import { cn } from "@/lib/utils";
@@ -40,6 +40,47 @@ const tracks = [
4040
}
4141
];
4242

43+
const publicationRules = [
44+
{
45+
title: "Публикуй материал в нужный трек",
46+
description: "Размещай файл в соответствующем разделе: `python`, `ai`, `bigdata`, `java` или `algorithms`."
47+
},
48+
{
49+
title: "Соблюдай единый формат",
50+
description: "Используй понятную структуру: цель, шаги решения, код, результат и краткие выводы."
51+
},
52+
{
53+
title: "Оформляй кодовые примеры",
54+
description: "Добавляй язык в код-блоки и оставляй только воспроизводимые, проверенные фрагменты."
55+
},
56+
{
57+
title: "Фиксируй контекст и источники",
58+
description: "Если материал опирается на внешние источники, обязательно оставляй ссылки и пояснения."
59+
},
60+
{
61+
title: "Проверяй изменения перед PR",
62+
description: "Перед публикацией запускай `npm run lint` и `npm run typecheck`, чтобы не ломать сборку."
63+
}
64+
];
65+
66+
const pullRequestLinks = [
67+
{
68+
title: "Создать Pull Request",
69+
href: "https://github.com/MinAleDm/StackMIREA/compare?expand=1",
70+
description: "Откроет форму сравнения веток и создания PR для публикации."
71+
},
72+
{
73+
title: "Все Pull Request",
74+
href: "https://github.com/MinAleDm/StackMIREA/pulls",
75+
description: "Список открытых и закрытых PR по проекту."
76+
},
77+
{
78+
title: "Открытые Pull Request",
79+
href: "https://github.com/MinAleDm/StackMIREA/pulls?q=is%3Apr+is%3Aopen",
80+
description: "Быстрый фильтр для проверки, что уже находится на ревью."
81+
}
82+
];
83+
4384
export default function HomePage() {
4485
return (
4586
<div className="mx-auto w-full max-w-[1440px] px-4 pb-20 pt-14 sm:px-6 lg:px-8">
@@ -111,6 +152,59 @@ export default function HomePage() {
111152
);
112153
})}
113154
</section>
155+
156+
<section className="mt-10 grid gap-4 lg:grid-cols-2">
157+
<article className="rounded-2xl border border-border/70 bg-card/70 p-6">
158+
<div className="inline-flex items-center gap-2 rounded-full border border-border/80 bg-background/70 px-3 py-1 text-xs text-muted-foreground">
159+
<ListChecks className="size-3.5" />
160+
Правила публикации
161+
</div>
162+
<h2 className="mt-4 text-2xl font-semibold tracking-tight">Как публиковать материалы в StackMIREA</h2>
163+
<ol className="mt-5 space-y-4">
164+
{publicationRules.map((rule, index) => (
165+
<li key={rule.title} className="flex gap-3 rounded-xl border border-border/70 bg-background/60 p-4">
166+
<span className="inline-flex size-6 shrink-0 items-center justify-center rounded-full bg-primary/10 text-sm font-semibold text-primary">
167+
{index + 1}
168+
</span>
169+
<div>
170+
<h3 className="text-sm font-semibold text-foreground">{rule.title}</h3>
171+
<p className="mt-1 text-sm leading-6 text-muted-foreground">{rule.description}</p>
172+
</div>
173+
</li>
174+
))}
175+
</ol>
176+
</article>
177+
178+
<article className="rounded-2xl border border-border/70 bg-card/70 p-6">
179+
<div className="inline-flex items-center gap-2 rounded-full border border-border/80 bg-background/70 px-3 py-1 text-xs text-muted-foreground">
180+
<GitPullRequest className="size-3.5" />
181+
Публикация через PR
182+
</div>
183+
<h2 className="mt-4 text-2xl font-semibold tracking-tight">Ссылки на Pull Request</h2>
184+
<p className="mt-3 text-sm leading-6 text-muted-foreground">
185+
Для публикации открывай PR с изменениями в документации. В описании укажи, что именно добавлено и в каком
186+
треке лежит материал.
187+
</p>
188+
189+
<div className="mt-5 space-y-3">
190+
{pullRequestLinks.map((item) => (
191+
<a
192+
key={item.href}
193+
href={item.href}
194+
target="_blank"
195+
rel="noreferrer"
196+
className="group flex items-start justify-between gap-3 rounded-xl border border-border/70 bg-background/60 p-4 transition-colors hover:border-primary/40"
197+
>
198+
<span>
199+
<span className="block text-sm font-semibold text-foreground">{item.title}</span>
200+
<span className="mt-1 block text-sm leading-6 text-muted-foreground">{item.description}</span>
201+
</span>
202+
<ExternalLink className="mt-0.5 size-4 shrink-0 text-muted-foreground transition-colors group-hover:text-primary" />
203+
</a>
204+
))}
205+
</div>
206+
</article>
207+
</section>
114208
</div>
115209
);
116210
}

0 commit comments

Comments
 (0)