117 lines
4.4 KiB
Vue
117 lines
4.4 KiB
Vue
<script setup lang="ts">
|
|
import { useData, withBase } from "vitepress";
|
|
import { computed } from "vue";
|
|
|
|
const props = withDefaults(defineProps<{ type?: "start" | "reference" }>(), {
|
|
type: "start"
|
|
});
|
|
|
|
const { page } = useData();
|
|
const isRu = computed(() => page.value.relativePath.startsWith("ru/"));
|
|
|
|
const cards = computed(() => {
|
|
if (isRu.value) {
|
|
return props.type === "reference"
|
|
? [
|
|
{ icon: "◈", title: "Концепции", desc: "Команды, задачи, роли и уровни автономности.", link: "/ru/reference/concepts" },
|
|
{ icon: "⌁", title: "Рантаймы", desc: "Claude, Codex, OpenCode и multimodel-режим.", link: "/ru/reference/providers-runtimes" },
|
|
{ icon: "⌘", title: "Локальные данные", desc: "Что хранится на машине и что уходит провайдерам.", link: "/ru/reference/privacy-local-data" },
|
|
{ icon: "?", title: "FAQ", desc: "Короткие ответы на частые вопросы.", link: "/ru/reference/faq" }
|
|
]
|
|
: [
|
|
{ icon: "01", title: "Быстрый старт", desc: "Поставить приложение и создать первую команду.", link: "/ru/guide/quickstart" },
|
|
{ icon: "02", title: "Установка", desc: "Платформы, релизы и запуск из исходников.", link: "/ru/guide/installation" },
|
|
{ icon: "03", title: "Создание команды", desc: "Роли, lead prompt и границы работы.", link: "/ru/guide/create-team" },
|
|
{ icon: "04", title: "Код-ревью", desc: "Проверка изменений по задачам и hunk-level decisions.", link: "/ru/guide/code-review" }
|
|
];
|
|
}
|
|
|
|
return props.type === "reference"
|
|
? [
|
|
{ icon: "◈", title: "Concepts", desc: "Teams, tasks, roles, and autonomy levels.", link: "/reference/concepts" },
|
|
{ icon: "⌁", title: "Runtimes", desc: "Claude, Codex, OpenCode, and multimodel mode.", link: "/reference/providers-runtimes" },
|
|
{ icon: "⌘", title: "Local data", desc: "What stays on disk and what providers receive.", link: "/reference/privacy-local-data" },
|
|
{ icon: "?", title: "FAQ", desc: "Short answers to common questions.", link: "/reference/faq" }
|
|
]
|
|
: [
|
|
{ icon: "01", title: "Quickstart", desc: "Install the app and create your first team.", link: "/guide/quickstart" },
|
|
{ icon: "02", title: "Installation", desc: "Platforms, releases, and running from source.", link: "/guide/installation" },
|
|
{ icon: "03", title: "Create a team", desc: "Roles, lead prompt, and task boundaries.", link: "/guide/create-team" },
|
|
{ icon: "04", title: "Code review", desc: "Review task changes with hunk-level decisions.", link: "/guide/code-review" }
|
|
];
|
|
});
|
|
</script>
|
|
|
|
<template>
|
|
<div class="docs-card-grid">
|
|
<a v-for="card in cards" :key="card.link" class="docs-card" :href="withBase(card.link)">
|
|
<span class="docs-card__icon">{{ card.icon }}</span>
|
|
<strong>{{ card.title }}</strong>
|
|
<span>{{ card.desc }}</span>
|
|
</a>
|
|
</div>
|
|
</template>
|
|
|
|
<style scoped>
|
|
.docs-card-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 14px;
|
|
margin: 24px 0;
|
|
}
|
|
|
|
.docs-card {
|
|
display: grid;
|
|
grid-template-columns: auto 1fr;
|
|
grid-template-rows: auto auto;
|
|
column-gap: 12px;
|
|
row-gap: 4px;
|
|
padding: 18px;
|
|
border: var(--at-glass-border);
|
|
border-radius: var(--at-radius-xl);
|
|
background: var(--at-c-surface-soft);
|
|
color: var(--at-c-text);
|
|
text-decoration: none !important;
|
|
transition:
|
|
border-color var(--at-transition-base),
|
|
background-color var(--at-transition-base),
|
|
transform var(--at-transition-base);
|
|
}
|
|
|
|
.docs-card:hover {
|
|
border-color: var(--at-c-border-strong);
|
|
background: var(--at-glass-bg-hover);
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
.docs-card__icon {
|
|
grid-row: 1 / -1;
|
|
display: grid;
|
|
place-items: center;
|
|
width: 36px;
|
|
height: 36px;
|
|
border-radius: var(--at-radius-md);
|
|
background: var(--at-gradient-panel);
|
|
color: var(--at-c-cyan);
|
|
font-family: var(--at-font-mono);
|
|
font-size: 13px;
|
|
border: 1px solid rgba(0, 240, 255, 0.14);
|
|
}
|
|
|
|
.docs-card strong {
|
|
color: var(--at-c-text);
|
|
font-size: 15px;
|
|
}
|
|
|
|
.docs-card span:last-child {
|
|
color: var(--at-c-text-muted);
|
|
font-size: 13px;
|
|
line-height: 1.45;
|
|
}
|
|
|
|
@media (max-width: 640px) {
|
|
.docs-card-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
</style>
|