Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
26ed4e6a22 | ||
|
|
73b43e1f24 | ||
|
|
5274520a33 |
@@ -2,6 +2,24 @@
|
|||||||
|
|
||||||
Формат основан на [Keep a Changelog](https://keepachangelog.com/ru/1.1.0/), версии — [SemVer](https://semver.org/lang/ru/).
|
Формат основан на [Keep a Changelog](https://keepachangelog.com/ru/1.1.0/), версии — [SemVer](https://semver.org/lang/ru/).
|
||||||
|
|
||||||
|
## [1.0.5] — 2026-09-17
|
||||||
|
|
||||||
|
### Сайт
|
||||||
|
|
||||||
|
- В подвале в разделе «Полезное» добавлены ссылки на главную страницу института и образование
|
||||||
|
|
||||||
|
## [1.0.4] — 2026-09-16
|
||||||
|
|
||||||
|
### Сайт
|
||||||
|
|
||||||
|
- Логотип в подвале выровнен по центру колонки
|
||||||
|
|
||||||
|
## [1.0.3] — 2026-09-16
|
||||||
|
|
||||||
|
### Сайт
|
||||||
|
|
||||||
|
- Обновлён логотип МОНИКИ в шапке и подвале
|
||||||
|
|
||||||
## [1.0.2] — 2026-09-16
|
## [1.0.2] — 2026-09-16
|
||||||
|
|
||||||
### Сайт
|
### Сайт
|
||||||
@@ -37,6 +55,9 @@
|
|||||||
- Docker Compose для локальной БД
|
- Docker Compose для локальной БД
|
||||||
- Секреты и логины в git не входят
|
- Секреты и логины в git не входят
|
||||||
|
|
||||||
|
[1.0.5]: https://git.myunion.pro/Alex/Moniki_uslugi/src/tag/v1.0.5
|
||||||
|
[1.0.4]: https://git.myunion.pro/Alex/Moniki_uslugi/src/tag/v1.0.4
|
||||||
|
[1.0.3]: https://git.myunion.pro/Alex/Moniki_uslugi/src/tag/v1.0.3
|
||||||
[1.0.2]: https://git.myunion.pro/Alex/Moniki_uslugi/src/tag/v1.0.2
|
[1.0.2]: https://git.myunion.pro/Alex/Moniki_uslugi/src/tag/v1.0.2
|
||||||
[1.0.1]: https://git.myunion.pro/Alex/Moniki_uslugi/src/tag/v1.0.1
|
[1.0.1]: https://git.myunion.pro/Alex/Moniki_uslugi/src/tag/v1.0.1
|
||||||
[1.0.0]: https://git.myunion.pro/Alex/Moniki_uslugi/src/tag/v1.0.0
|
[1.0.0]: https://git.myunion.pro/Alex/Moniki_uslugi/src/tag/v1.0.0
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
Репозиторий: [Moniki_uslugi](https://git.myunion.pro/Alex/Moniki_uslugi) на [git.myunion.pro](https://git.myunion.pro/).
|
Репозиторий: [Moniki_uslugi](https://git.myunion.pro/Alex/Moniki_uslugi) на [git.myunion.pro](https://git.myunion.pro/).
|
||||||
|
|
||||||
Текущая версия: **v1.0.2** (см. [CHANGELOG.md](CHANGELOG.md)).
|
Текущая версия: **v1.0.5** (см. [CHANGELOG.md](CHANGELOG.md)).
|
||||||
|
|
||||||
## Что внутри
|
## Что внутри
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@moniki/cms",
|
"name": "@moniki/cms",
|
||||||
"version": "1.0.2",
|
"version": "1.0.5",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@moniki/web",
|
"name": "@moniki/web",
|
||||||
"version": "1.0.2",
|
"version": "1.0.5",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev -p 3000",
|
"dev": "next dev -p 3000",
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 130 KiB After Width: | Height: | Size: 11 KiB |
@@ -7,6 +7,7 @@ import { ScrollToTop } from "@/components/layout/ScrollToTop";
|
|||||||
import { ThemeProvider } from "@/components/layout/ThemeProvider";
|
import { ThemeProvider } from "@/components/layout/ThemeProvider";
|
||||||
import { CookieBanner } from "@/components/legal/CookieBanner";
|
import { CookieBanner } from "@/components/legal/CookieBanner";
|
||||||
import { A11Y_BOOTSTRAP } from "@/lib/a11y";
|
import { A11Y_BOOTSTRAP } from "@/lib/a11y";
|
||||||
|
import { APP_VERSION } from "@/lib/version";
|
||||||
import { THEME_BOOTSTRAP } from "@/lib/theme";
|
import { THEME_BOOTSTRAP } from "@/lib/theme";
|
||||||
import { routing, type Locale } from "@/i18n/routing";
|
import { routing, type Locale } from "@/i18n/routing";
|
||||||
import { Manrope } from "next/font/google";
|
import { Manrope } from "next/font/google";
|
||||||
@@ -40,8 +41,8 @@ export async function generateMetadata({
|
|||||||
},
|
},
|
||||||
description: t("fullName"),
|
description: t("fullName"),
|
||||||
icons: {
|
icons: {
|
||||||
icon: "/logo.png",
|
icon: `/logo.png?v=${APP_VERSION}`,
|
||||||
apple: "/logo.png",
|
apple: `/logo.png?v=${APP_VERSION}`,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,11 @@ const linkKeys = [
|
|||||||
{ href: "/gallery" as const, key: "gallery" },
|
{ href: "/gallery" as const, key: "gallery" },
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const extraUsefulLinks = [
|
||||||
|
{ href: "https://www.monikiweb.ru/", key: "instituteHome" as const },
|
||||||
|
{ href: "https://edu.monikiweb.ru/", key: "education" as const },
|
||||||
|
];
|
||||||
|
|
||||||
function telHref(phone: string) {
|
function telHref(phone: string) {
|
||||||
const value = phone.replace(/[^\d+]/g, "");
|
const value = phone.replace(/[^\d+]/g, "");
|
||||||
return value ? `tel:${value}` : undefined;
|
return value ? `tel:${value}` : undefined;
|
||||||
@@ -71,7 +76,11 @@ export async function Footer() {
|
|||||||
<footer className="mt-auto border-t border-[var(--border)] bg-[var(--surface)]">
|
<footer className="mt-auto border-t border-[var(--border)] bg-[var(--surface)]">
|
||||||
<div className="mx-auto grid max-w-6xl gap-10 px-4 py-12 sm:px-6 md:grid-cols-2 lg:grid-cols-5">
|
<div className="mx-auto grid max-w-6xl gap-10 px-4 py-12 sm:px-6 md:grid-cols-2 lg:grid-cols-5">
|
||||||
<div>
|
<div>
|
||||||
<Logo imgClassName="h-16 w-16" showTagline={false} />
|
<Logo
|
||||||
|
className="w-full justify-center"
|
||||||
|
imgClassName="h-20 w-auto max-h-none sm:h-24"
|
||||||
|
showTagline={false}
|
||||||
|
/>
|
||||||
<p className="mt-2 text-sm leading-relaxed text-[var(--text-muted)]">{footer("about")}</p>
|
<p className="mt-2 text-sm leading-relaxed text-[var(--text-muted)]">{footer("about")}</p>
|
||||||
<p className="mt-4 text-sm text-[var(--neutral-700)]">{hero("address")}</p>
|
<p className="mt-4 text-sm text-[var(--neutral-700)]">{hero("address")}</p>
|
||||||
<p className="mt-1 text-sm font-semibold text-[var(--brand-700)]">
|
<p className="mt-1 text-sm font-semibold text-[var(--brand-700)]">
|
||||||
@@ -143,6 +152,18 @@ export async function Footer() {
|
|||||||
</p>
|
</p>
|
||||||
<nav aria-label={footer("useful")}>
|
<nav aria-label={footer("useful")}>
|
||||||
<ul className="mt-3 space-y-2">
|
<ul className="mt-3 space-y-2">
|
||||||
|
{extraUsefulLinks.map((item) => (
|
||||||
|
<li key={item.href}>
|
||||||
|
<a
|
||||||
|
href={item.href}
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
className="text-sm text-[var(--neutral-700)] hover:text-[var(--brand-700)]"
|
||||||
|
>
|
||||||
|
{footer(item.key)}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
))}
|
||||||
{usefulLinks.map((page) => (
|
{usefulLinks.map((page) => (
|
||||||
<li key={page.slug}>
|
<li key={page.slug}>
|
||||||
<Link
|
<Link
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { Link } from "@/i18n/routing";
|
import { Link } from "@/i18n/routing";
|
||||||
|
import { APP_VERSION } from "@/lib/version";
|
||||||
import { cn } from "@/lib/utils";
|
import { cn } from "@/lib/utils";
|
||||||
|
|
||||||
export function Logo({
|
export function Logo({
|
||||||
@@ -16,9 +17,9 @@ export function Logo({
|
|||||||
<Link href="/" className={cn("group flex items-center gap-2.5", className)}>
|
<Link href="/" className={cn("group flex items-center gap-2.5", className)}>
|
||||||
{/* eslint-disable-next-line @next/next/no-img-element */}
|
{/* eslint-disable-next-line @next/next/no-img-element */}
|
||||||
<img
|
<img
|
||||||
src="/logo.png"
|
src={`/logo.png?v=${APP_VERSION}`}
|
||||||
alt="МОНИКИ"
|
alt="МОНИКИ"
|
||||||
className={cn("h-12 w-12 shrink-0 rounded-full object-contain", imgClassName)}
|
className={cn("h-12 w-auto max-h-14 shrink-0 object-contain sm:h-14", imgClassName)}
|
||||||
/>
|
/>
|
||||||
{showTagline && tagline ? (
|
{showTagline && tagline ? (
|
||||||
<span className="hidden max-w-[7.5rem] text-[11px] leading-tight text-[var(--neutral-500)] xl:block">
|
<span className="hidden max-w-[7.5rem] text-[11px] leading-tight text-[var(--neutral-500)] xl:block">
|
||||||
|
|||||||
@@ -362,6 +362,8 @@
|
|||||||
"links": "Раздзелы",
|
"links": "Раздзелы",
|
||||||
"organization": "Арганізацыя",
|
"organization": "Арганізацыя",
|
||||||
"useful": "Карыснае",
|
"useful": "Карыснае",
|
||||||
|
"instituteHome": "Галоўная старонка інстытута",
|
||||||
|
"education": "Адукацыя",
|
||||||
"social": "Мы ў сацсетках",
|
"social": "Мы ў сацсетках",
|
||||||
"rights": "© МОНІКІ. Усе правы абаронены.",
|
"rights": "© МОНІКІ. Усе правы абаронены.",
|
||||||
"version": "Версія сайта v{version}",
|
"version": "Версія сайта v{version}",
|
||||||
|
|||||||
@@ -362,6 +362,8 @@
|
|||||||
"links": "Sections",
|
"links": "Sections",
|
||||||
"organization": "Organization",
|
"organization": "Organization",
|
||||||
"useful": "Useful",
|
"useful": "Useful",
|
||||||
|
"instituteHome": "Institute homepage",
|
||||||
|
"education": "Education",
|
||||||
"social": "Social media",
|
"social": "Social media",
|
||||||
"rights": "© MONIKI. All rights reserved.",
|
"rights": "© MONIKI. All rights reserved.",
|
||||||
"version": "Site version v{version}",
|
"version": "Site version v{version}",
|
||||||
|
|||||||
@@ -362,6 +362,8 @@
|
|||||||
"links": "Бөлүмдөр",
|
"links": "Бөлүмдөр",
|
||||||
"organization": "Уюм",
|
"organization": "Уюм",
|
||||||
"useful": "Пайдалуу",
|
"useful": "Пайдалуу",
|
||||||
|
"instituteHome": "Институттун башкы бети",
|
||||||
|
"education": "Билим берүү",
|
||||||
"social": "Соцтармактарда",
|
"social": "Соцтармактарда",
|
||||||
"rights": "© МОНИКИ. Бардык укуктар корголгон.",
|
"rights": "© МОНИКИ. Бардык укуктар корголгон.",
|
||||||
"version": "Сайттын версиясы v{version}",
|
"version": "Сайттын версиясы v{version}",
|
||||||
|
|||||||
@@ -362,6 +362,8 @@
|
|||||||
"links": "Разделы",
|
"links": "Разделы",
|
||||||
"organization": "Организация",
|
"organization": "Организация",
|
||||||
"useful": "Полезное",
|
"useful": "Полезное",
|
||||||
|
"instituteHome": "Главная страница института",
|
||||||
|
"education": "Образование",
|
||||||
"social": "Мы в соцсетях",
|
"social": "Мы в соцсетях",
|
||||||
"rights": "© МОНИКИ. Все права защищены.",
|
"rights": "© МОНИКИ. Все права защищены.",
|
||||||
"version": "Версия сайта v{version}",
|
"version": "Версия сайта v{version}",
|
||||||
|
|||||||
@@ -362,6 +362,8 @@
|
|||||||
"links": "Бохшҳо",
|
"links": "Бохшҳо",
|
||||||
"organization": "Ташкилот",
|
"organization": "Ташкилот",
|
||||||
"useful": "Фоиданок",
|
"useful": "Фоиданок",
|
||||||
|
"instituteHome": "Саҳифаи асосии институт",
|
||||||
|
"education": "Таҳсилот",
|
||||||
"social": "Мо дар шабакаҳои иҷтимоӣ",
|
"social": "Мо дар шабакаҳои иҷтимоӣ",
|
||||||
"rights": "© МОНИКИ. Ҳамаи ҳуқуқҳо ҳифз шудаанд.",
|
"rights": "© МОНИКИ. Ҳамаи ҳуқуқҳо ҳифз шудаанд.",
|
||||||
"version": "Версияи сайт v{version}",
|
"version": "Версияи сайт v{version}",
|
||||||
|
|||||||
@@ -362,6 +362,8 @@
|
|||||||
"links": "栏目",
|
"links": "栏目",
|
||||||
"organization": "机构信息",
|
"organization": "机构信息",
|
||||||
"useful": "实用信息",
|
"useful": "实用信息",
|
||||||
|
"instituteHome": "研究所主页",
|
||||||
|
"education": "教育",
|
||||||
"social": "社交媒体",
|
"social": "社交媒体",
|
||||||
"rights": "© МОНИКИ。保留所有权利。",
|
"rights": "© МОНИКИ。保留所有权利。",
|
||||||
"version": "网站版本 v{version}",
|
"version": "网站版本 v{version}",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "moniki-platnye-uslugi",
|
"name": "moniki-platnye-uslugi",
|
||||||
"version": "1.0.2",
|
"version": "1.0.5",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "pnpm -r --parallel dev",
|
"dev": "pnpm -r --parallel dev",
|
||||||
|
|||||||
Reference in New Issue
Block a user