/**
 *  读取所有md文件数据
 */
const fs = require('fs'); // 文件模块
const path = require('path'); // 路径模块
const chalk = require('chalk') // 命令行打印美化
const log = console.log

function readFileList (dir, filesList = []) {
  const files = fs.readdirSync(dir);
  files.forEach((item, index) => {
    let filePath = path.join(dir, item);
    const stat = fs.statSync(filePath);
    if (stat.isDirectory() && item !== '.vuepress' && item !== '@pages') {
      readFileList(path.join(dir, item), filesList);  //递归读取文件
    } else {
      if (path.basename(dir) !== 'docs') { // 过滤docs目录级下的文件

        const fileNameArr = path.basename(filePath).split('.')
        let name = null, type = null;
        if (fileNameArr.length === 2) { // 没有序号的文件
          name = fileNameArr[0]
          type = fileNameArr[1]
        } else if (fileNameArr.length === 3) { // 有序号的文件
          name = fileNameArr[1]
          type = fileNameArr[2]
        } else { // 超过两个‘.’的
          log(chalk.yellow(`warning: 该文件 "${filePath}" 没有按照约定命名，将忽略生成相应数据。`))
          return
        }
        if (type === 'md') { // 过滤非md文件
          filesList.push({
            name,
            filePath
          });
        }
      }
    }
  });
  return filesList;
}

module.exports = readFileList;
