490 lines
12 KiB
JavaScript
490 lines
12 KiB
JavaScript
export const BLOG_CATEGORIES = [
|
|
"Frontend",
|
|
"UX",
|
|
"Yazilim",
|
|
"TypeScript",
|
|
"Testing",
|
|
"General",
|
|
];
|
|
|
|
export const COLLECTION_CONFIGS = {
|
|
announcement: {
|
|
label: "Announcement",
|
|
itemLabel: "Announcement",
|
|
fileName: "site-settings.ts",
|
|
exportName: "ANNOUNCEMENT_ITEMS",
|
|
fields: [
|
|
{
|
|
key: "id",
|
|
label: "ID",
|
|
required: true,
|
|
placeholder: "main-announcement",
|
|
},
|
|
{
|
|
key: "text",
|
|
label: "Text",
|
|
type: "textarea",
|
|
full: true,
|
|
required: true,
|
|
placeholder: "Bu hafta yeni bilesenler eklendi!",
|
|
},
|
|
{
|
|
key: "actionLabel",
|
|
label: "Action Label",
|
|
required: true,
|
|
placeholder: "Incele ->",
|
|
},
|
|
{
|
|
key: "actionHref",
|
|
label: "Action Link",
|
|
type: "url",
|
|
required: true,
|
|
placeholder: "https://...",
|
|
},
|
|
],
|
|
card: (item) => ({
|
|
title: item.id || "Announcement",
|
|
meta: [item.actionLabel, item.actionHref],
|
|
footer: item.text,
|
|
}),
|
|
},
|
|
bookmarks: {
|
|
label: "Bookmarks",
|
|
itemLabel: "Bookmark",
|
|
fileName: "bookmarks.ts",
|
|
exportName: "BOOKMARKS",
|
|
fields: [
|
|
{
|
|
key: "id",
|
|
label: "ID",
|
|
required: true,
|
|
placeholder: "bookmark-poyraz-ui",
|
|
},
|
|
{
|
|
key: "title",
|
|
label: "Title",
|
|
required: true,
|
|
placeholder: "Poyraz UI",
|
|
},
|
|
{
|
|
key: "href",
|
|
label: "Link",
|
|
type: "url",
|
|
required: true,
|
|
placeholder: "https://...",
|
|
},
|
|
{ key: "tag", label: "Tag", required: true, placeholder: "UI Kit" },
|
|
{
|
|
key: "description",
|
|
label: "Description",
|
|
type: "textarea",
|
|
full: true,
|
|
required: true,
|
|
placeholder: "Short description",
|
|
},
|
|
],
|
|
card: (item) => ({
|
|
title: item.title || item.id || "Untitled bookmark",
|
|
meta: [item.tag, item.href],
|
|
footer: item.description,
|
|
}),
|
|
},
|
|
certificates: {
|
|
label: "Certificates",
|
|
itemLabel: "Certificate",
|
|
fileName: "certificates.ts",
|
|
exportName: "certificates",
|
|
fields: [
|
|
{
|
|
key: "name",
|
|
label: "Name",
|
|
required: true,
|
|
placeholder: "Certificate name",
|
|
},
|
|
{
|
|
key: "organization",
|
|
label: "Organization",
|
|
required: true,
|
|
placeholder: "Udemy",
|
|
},
|
|
{ key: "date", label: "Date", required: true, placeholder: "June 2025" },
|
|
{
|
|
key: "category",
|
|
label: "Category",
|
|
required: true,
|
|
placeholder: "mobile",
|
|
},
|
|
{
|
|
key: "image",
|
|
label: "Image Path",
|
|
required: true,
|
|
placeholder: "/certificates/reactnative.png",
|
|
},
|
|
{
|
|
key: "description",
|
|
label: "Description",
|
|
type: "textarea",
|
|
full: true,
|
|
required: true,
|
|
placeholder: "What this certificate represents",
|
|
},
|
|
],
|
|
card: (item) => ({
|
|
title: item.name || "Untitled certificate",
|
|
meta: [item.organization, item.date, item.category],
|
|
footer: item.image,
|
|
}),
|
|
},
|
|
education: {
|
|
label: "Education",
|
|
itemLabel: "Education Item",
|
|
fileName: "education.ts",
|
|
exportName: "EDUCATION",
|
|
fields: [
|
|
{
|
|
key: "id",
|
|
label: "ID",
|
|
required: true,
|
|
placeholder: "ostim-university",
|
|
},
|
|
{
|
|
key: "title",
|
|
label: "Title",
|
|
required: true,
|
|
placeholder: "Software Engineering - 2nd Year Student",
|
|
},
|
|
{
|
|
key: "institution",
|
|
label: "Institution",
|
|
required: true,
|
|
placeholder: "OSTIM Technical University",
|
|
},
|
|
{
|
|
key: "period",
|
|
label: "Period",
|
|
required: true,
|
|
placeholder: "2024 - Present",
|
|
},
|
|
{
|
|
key: "description",
|
|
label: "Description",
|
|
type: "textarea",
|
|
full: true,
|
|
required: true,
|
|
placeholder: "Education summary",
|
|
},
|
|
],
|
|
card: (item) => ({
|
|
title: item.title || item.id || "Education",
|
|
meta: [item.institution, item.period],
|
|
footer: item.description,
|
|
}),
|
|
},
|
|
experience: {
|
|
label: "Experience",
|
|
itemLabel: "Experience Item",
|
|
fileName: "experience.ts",
|
|
exportName: "EXPERIENCE",
|
|
fields: [
|
|
{
|
|
key: "id",
|
|
label: "ID",
|
|
required: true,
|
|
placeholder: "omedya-part-time",
|
|
},
|
|
{
|
|
key: "role",
|
|
label: "Role",
|
|
required: true,
|
|
placeholder: "Fullstack Developer",
|
|
},
|
|
{
|
|
key: "company",
|
|
label: "Company",
|
|
required: true,
|
|
placeholder: "Omedya Bilisim A.S",
|
|
},
|
|
{
|
|
key: "period",
|
|
label: "Period",
|
|
required: true,
|
|
placeholder: "August 2025 - Present",
|
|
},
|
|
],
|
|
card: (item) => ({
|
|
title: item.role || item.id || "Experience",
|
|
meta: [item.company, item.period],
|
|
}),
|
|
},
|
|
references: {
|
|
label: "References",
|
|
itemLabel: "Reference",
|
|
fileName: "references.ts",
|
|
exportName: "REFERENCES",
|
|
fields: [
|
|
{ key: "id", label: "ID", required: true, placeholder: "ali-korkmaz" },
|
|
{
|
|
key: "author",
|
|
label: "Author",
|
|
required: true,
|
|
placeholder: "Ali Korkmaz",
|
|
},
|
|
{
|
|
key: "role",
|
|
label: "Role",
|
|
required: true,
|
|
placeholder: "Musteri - 2025",
|
|
},
|
|
{
|
|
key: "avatar",
|
|
label: "Avatar Path",
|
|
required: true,
|
|
placeholder: "/avatars/ali.png",
|
|
},
|
|
{
|
|
key: "rating",
|
|
label: "Rating",
|
|
type: "number",
|
|
min: 1,
|
|
max: 5,
|
|
step: 1,
|
|
placeholder: "5",
|
|
},
|
|
{
|
|
key: "profileHref",
|
|
label: "Profile Link",
|
|
type: "url",
|
|
placeholder: "https://linkedin.com/in/...",
|
|
},
|
|
{
|
|
key: "quote",
|
|
label: "Quote",
|
|
type: "textarea",
|
|
full: true,
|
|
required: true,
|
|
placeholder: "Reference quote",
|
|
},
|
|
],
|
|
card: (item) => ({
|
|
title: item.author || item.id || "Reference",
|
|
meta: [item.role, item.rating ? `Rating: ${item.rating}` : ""],
|
|
footer: item.quote,
|
|
}),
|
|
},
|
|
projectsMobile: {
|
|
label: "Projects Mobile",
|
|
itemLabel: "Mobile Project",
|
|
fileName: "projects.ts",
|
|
exportName: "MOBILE_APPS",
|
|
fields: [
|
|
{
|
|
key: "id",
|
|
label: "ID",
|
|
required: true,
|
|
placeholder: "mobile-habit-flow",
|
|
},
|
|
{
|
|
key: "title",
|
|
label: "Title",
|
|
required: true,
|
|
placeholder: "Habit Flow",
|
|
},
|
|
{ key: "badge", label: "Badge", placeholder: "React Native" },
|
|
{
|
|
key: "image",
|
|
label: "Image Path",
|
|
required: true,
|
|
placeholder: "/images/hero1.png",
|
|
},
|
|
{ key: "href", label: "Link", type: "url", placeholder: "https://..." },
|
|
{
|
|
key: "description",
|
|
label: "Description",
|
|
type: "textarea",
|
|
full: true,
|
|
required: true,
|
|
placeholder: "Project summary",
|
|
},
|
|
],
|
|
card: (item) => ({
|
|
title: item.title || item.id || "Project",
|
|
meta: [item.badge, item.href],
|
|
footer: item.description,
|
|
}),
|
|
},
|
|
projectsWeb: {
|
|
label: "Projects Web",
|
|
itemLabel: "Web Project",
|
|
fileName: "projects.ts",
|
|
exportName: "WEB_APPS",
|
|
fields: [
|
|
{ key: "id", label: "ID", required: true, placeholder: "web-portfolio" },
|
|
{
|
|
key: "title",
|
|
label: "Title",
|
|
required: true,
|
|
placeholder: "Personal Portfolio",
|
|
},
|
|
{ key: "badge", label: "Badge", placeholder: "Next.js" },
|
|
{
|
|
key: "image",
|
|
label: "Image Path",
|
|
required: true,
|
|
placeholder: "/news/design.svg",
|
|
},
|
|
{ key: "href", label: "Link", type: "url", placeholder: "https://..." },
|
|
{
|
|
key: "description",
|
|
label: "Description",
|
|
type: "textarea",
|
|
full: true,
|
|
required: true,
|
|
placeholder: "Project summary",
|
|
},
|
|
],
|
|
card: (item) => ({
|
|
title: item.title || item.id || "Project",
|
|
meta: [item.badge, item.href],
|
|
footer: item.description,
|
|
}),
|
|
},
|
|
projectsExtensions: {
|
|
label: "Projects Extensions",
|
|
itemLabel: "Extension Project",
|
|
fileName: "projects.ts",
|
|
exportName: "EXTENSIONS",
|
|
fields: [
|
|
{
|
|
key: "id",
|
|
label: "ID",
|
|
required: true,
|
|
placeholder: "extension-theme-tuner",
|
|
},
|
|
{
|
|
key: "title",
|
|
label: "Title",
|
|
required: true,
|
|
placeholder: "Theme Tuner",
|
|
},
|
|
{ key: "badge", label: "Badge", placeholder: "VS Code Extension" },
|
|
{
|
|
key: "image",
|
|
label: "Image Path",
|
|
required: true,
|
|
placeholder: "/news/design.svg",
|
|
},
|
|
{ key: "href", label: "Link", type: "url", placeholder: "https://..." },
|
|
{
|
|
key: "description",
|
|
label: "Description",
|
|
type: "textarea",
|
|
full: true,
|
|
required: true,
|
|
placeholder: "Project summary",
|
|
},
|
|
],
|
|
card: (item) => ({
|
|
title: item.title || item.id || "Project",
|
|
meta: [item.badge, item.href],
|
|
footer: item.description,
|
|
}),
|
|
},
|
|
projectsFigma: {
|
|
label: "Projects Figma",
|
|
itemLabel: "Figma Template",
|
|
fileName: "projects.ts",
|
|
exportName: "FIGMA_TEMPLATES",
|
|
fields: [
|
|
{
|
|
key: "id",
|
|
label: "ID",
|
|
required: true,
|
|
placeholder: "figma-minimal-saas",
|
|
},
|
|
{
|
|
key: "title",
|
|
label: "Title",
|
|
required: true,
|
|
placeholder: "Minimal SaaS Landing Kit",
|
|
},
|
|
{ key: "badge", label: "Badge", placeholder: "Figma" },
|
|
{
|
|
key: "image",
|
|
label: "Image Path",
|
|
required: true,
|
|
placeholder: "/news/design.svg",
|
|
},
|
|
{ key: "href", label: "Link", type: "url", placeholder: "https://..." },
|
|
{
|
|
key: "description",
|
|
label: "Description",
|
|
type: "textarea",
|
|
full: true,
|
|
required: true,
|
|
placeholder: "Project summary",
|
|
},
|
|
],
|
|
card: (item) => ({
|
|
title: item.title || item.id || "Project",
|
|
meta: [item.badge, item.href],
|
|
footer: item.description,
|
|
}),
|
|
},
|
|
community: {
|
|
label: "Community",
|
|
itemLabel: "Community Item",
|
|
fileName: "volunteer-community.ts",
|
|
exportName: "VOLUNTEER_COMMUNITY_ITEMS",
|
|
fields: [
|
|
{ key: "id", label: "ID", required: true, placeholder: "youtube" },
|
|
{ key: "title", label: "Title", required: true, placeholder: "YouTube" },
|
|
{
|
|
key: "timeline",
|
|
label: "Timeline",
|
|
required: true,
|
|
placeholder: "2025 - Present",
|
|
},
|
|
{ key: "link", label: "Link", type: "url", placeholder: "https://..." },
|
|
{
|
|
key: "focus",
|
|
label: "Focus",
|
|
type: "textarea",
|
|
full: true,
|
|
required: true,
|
|
placeholder: "Community contribution summary",
|
|
},
|
|
],
|
|
card: (item) => ({
|
|
title: item.title || item.id || "Community",
|
|
meta: [item.timeline, item.link],
|
|
footer: item.focus,
|
|
}),
|
|
},
|
|
youtube: {
|
|
label: "YouTube Videos",
|
|
itemLabel: "Video Link",
|
|
fileName: "youtube-videos.ts",
|
|
exportName: "YOUTUBE_VIDEO_LINKS",
|
|
fields: [
|
|
{
|
|
key: "url",
|
|
label: "Video URL",
|
|
type: "url",
|
|
required: true,
|
|
placeholder: "https://www.youtube.com/watch?v=...",
|
|
},
|
|
],
|
|
deserializeItem: (raw) => ({ url: String(raw || "") }),
|
|
serializeItem: (item) => String(item.url || "").trim(),
|
|
card: (item) => ({
|
|
title: item.url || "YouTube Link",
|
|
meta: [],
|
|
}),
|
|
},
|
|
};
|
|
|
|
export const PODCAST_LABELS = {
|
|
yazilim: "Podcast Yazilim",
|
|
"masa-basi": "Podcast Masa Basi",
|
|
};
|