Skip to content

Commit ef07867

Browse files
committed
fix: put rus reqs
1 parent 974eaab commit ef07867

3 files changed

Lines changed: 11 additions & 11 deletions

File tree

src/lib/forum.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { getFile, putFile, listFiles } from './github';
2-
import { parseFrontmatter, stringifyFrontmatter, generateId, transliterate, normalizeText } from './utils';
2+
import { parseFrontmatter, stringifyFrontmatter, generateId, transliterate, normalizeText, slugify } from './utils';
33

44
export interface Forum {
55
slug: string;
@@ -69,12 +69,13 @@ export async function getForum(slug: string): Promise<Forum | null> {
6969
return { ...data, slug };
7070
}
7171

72-
export async function createForum(data: Omit<Forum, 'slug'> & {slug: string}): Promise<Forum> {
72+
export async function createForum(data: Omit<Forum, 'slug'>): Promise<Forum> {
73+
const slug = slugify(data.title);
7374
const content = stringifyFrontmatter(data, '');
74-
await putFile(`forums/${data.slug}.md`, content, `Create forum ${data.title}`);
75+
await putFile(`forums/${slug}.md`, content, `Create forum ${data.title}`);
7576

7677
return {
77-
slug: data.slug,
78+
slug,
7879
title: data.title,
7980
description: data.description,
8081
order: data.order,
@@ -120,7 +121,7 @@ export async function getTopic(id: string): Promise<Topic | null> {
120121

121122
export async function createTopic(data: Omit<Topic, 'id' | 'createdAt' | 'titleTranslit'>): Promise<Topic> {
122123
const id = generateId();
123-
const titleTranslit = transliterate(data.title);
124+
const titleTranslit = transliterate(data.title) || `topic-${generateId()}`;
124125
const createdAt = new Date().toISOString();
125126
const frontmatterData = {
126127
title: data.title,

src/lib/utils.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,11 @@ export function transliterate(text: string): string {
6161
.replace(/^-+|-+$/g, '');
6262
}
6363

64+
export function slugify(text: string, fallback: string = generateId()): string {
65+
const slug = transliterate(text);
66+
return slug || fallback;
67+
}
68+
6469
export function normalizeText(text: string): string {
6570
const russianToLatin: Record<string, string> = {
6671
'А': 'A', 'Б': 'B', 'В': 'V', 'Г': 'G', 'Д': 'D', 'Е': 'E', 'Ё': 'Yo',

src/pages/HomePage.tsx

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,7 @@ export function HomePage() {
3737
if (!user) return;
3838
setIsCreating(true);
3939
try {
40-
const slug = newForumTitle
41-
.toLowerCase()
42-
.replace(/[^a-z0-9]+/g, '-')
43-
.replace(/(^-|-$)+/g, '');
44-
4540
const newForum = await createForum({
46-
slug,
4741
title: newForumTitle,
4842
description: newForumDesc,
4943
order: String(forums.length),

0 commit comments

Comments
 (0)