import axios from 'axios'; import * as fs from 'fs'; import * as path from 'path'; const WP_URL = 'https://klz-cables.com'; async function fetchAllPages() { let page = 1; let allPages: any[] = []; while (true) { console.log(`Fetching pages page ${page}...`); try { const response = await axios.get(`${WP_URL}/wp-json/wp/v2/pages`, { params: { per_page: 100, page: page, _embed: true } }); const pages = response.data; if (pages.length === 0) break; allPages = allPages.concat(pages); page++; } catch (error: any) { if (error.response && error.response.status === 400) { break; } console.error('Error fetching pages:', error); break; } } return allPages; } function generateMdxContent(page: any, locale: 'en' | 'de') { const frontmatter = { title: page.title.rendered, excerpt: page.excerpt.rendered.replace(/<[^>]*>/g, '').trim(), featuredImage: page._embedded?.['wp:featuredmedia']?.[0]?.source_url || null, locale: locale }; return `--- ${JSON.stringify(frontmatter, null, 2)} --- # ${page.title.rendered} ${page.content.rendered} `; } async function run() { const pages = await fetchAllPages(); console.log(`Fetched ${pages.length} pages.`); for (const page of pages) { // Determine locale. const locale = page.link.includes('/de/') ? 'de' : 'en'; const mdx = generateMdxContent(page, locale); const outDir = path.join(process.cwd(), 'data', 'pages', locale); if (!fs.existsSync(outDir)) { fs.mkdirSync(outDir, { recursive: true }); } const filename = `${page.slug}.mdx`; fs.writeFileSync(path.join(outDir, filename), mdx); console.log(`Saved ${filename} (${locale})`); } } run().catch(console.error);