diff --git a/scripts/generate-theme-doc.ts b/scripts/generate-theme-doc.ts index 9d43601..c1fedd3 100644 --- a/scripts/generate-theme-doc.ts +++ b/scripts/generate-theme-doc.ts @@ -11,23 +11,29 @@ function generateThemeLink(username: string, theme: string): string { return `[${theme}]: https://github-readme-profile-alpha.vercel.app/api?username=${username}&theme=${theme}`; } +function createThemeRows( + themesArray: string[], + itemsPerRow: number, + username: string +): { themesPreviewTable: string; themesPreviewLink: string } { + let themesPreviewTable = ""; + let themesPreviewLink = ""; + + for (let i = 0; i < themesArray.length; i += itemsPerRow) { + const rowThemes = themesArray.slice(i, i + itemsPerRow); + + themesPreviewTable += `| ${rowThemes.map(generateThemeMarkdown).join(" | ")} |\n`; + themesPreviewLink += rowThemes.map(theme => generateThemeLink(username, theme)).join("\n") + "\n"; + } + + return { themesPreviewTable, themesPreviewLink }; +} + export function generateReadmeThemes(username: string): string { const availableThemes = Object.keys(themes); const itemsPerRow = 3; - let themesPreviewTable = ""; - for (let i = 0; i < availableThemes.length; i += itemsPerRow) { - const themesSlice = availableThemes.slice(i, i + itemsPerRow); - const row = themesSlice.map(theme => generateThemeMarkdown(theme)).join(" | "); - themesPreviewTable += `| ${row} |\n`; - } - - let themesPreviewLink = ""; - for (let i = 0; i < availableThemes.length; i += 1) { - const themesSlice = availableThemes.slice(i, i + 1); - const row = themesSlice.map(theme => generateThemeLink(username, theme)).join("\n"); - themesPreviewLink += `${row}\n`; - } + const { themesPreviewTable, themesPreviewLink } = createThemeRows(availableThemes, itemsPerRow, username); const readmeContent = ` ## Available Themes