Skip to content

Convert all content to Markdown – fluent-wp-client

Fetch every published post and convert content.rendered — the server-side rendered HTML WordPress returns by default — to individual Markdown files.

Install Turndown
npm install turndown @types/turndown
to-markdown.ts
import { WordPressClient } from 'fluent-wp-client';
import TurndownService from 'turndown';
import { writeFileSync, mkdirSync } from 'node:fs';
const wp = new WordPressClient({ baseUrl: 'https://example.com' });
const td = new TurndownService();
const posts = await wp.content('posts').listAll({ status: 'publish' });
mkdirSync('content', { recursive: true });
for (const post of posts) {
const body = td.turndown(post.content.rendered);
writeFileSync(`content/${post.slug}.md`, `# ${post.title.rendered}\n\n${body}`);
}
console.log(`Converted ${posts.length} posts.`);
  • TypeScript92%
  • PHP6%
  • JavaScript2%