← flaviocopes.com

How to bulk convert file names using Node.js

Published Dec 13 2022

I had the need to convert my folders structure from something like this:

to this:

removing the folder that contains an index.md file, and instead have the markdown file itself have the post slug (the part that’s used as the post URL).

I used a Node.js script to do this.

Here it is:

const fs = require('fs')
const glob = require('glob')

const root_folder = '.' //search in the current folder

glob(root_folder + '/**/index.md', (err, files) => {
  if (err) {
    console.log('Error', err)
  } else {
    for (const file_path of files) {
      const match = file_path.match(/\/(.*?)\//)
      const folder_name = match[1]

      fs.copyFile(file_path, './' + folder_name + '.md', (err) => {
        if (err) {
          console.log('Error Found:', err)
        } else {
          console.log('File moved!')

Wanna go from noobie to expert?

I wrote an entire book on this topic πŸ‘‡

© 2023 Flavio Copes Flavio Copes using Notion to Site Notion to Site. Follow on Twitter

Solopreneur? Wannabe? Adventure awaits