JAMスタックでの開発をしています。
したいこと
アーカイブページを作成したく、WPのようにフロントに下記のような表示をしたいです。
2020年12月(2)
2021年03月(1)
2021年04月(2)
そのために下記二点がしたく……。
- Mdファイルが存在するフォルダだけ取得
- そのフォルダにいくつMdファイルが存在するかを取得
MDの構造は下記です
tree
1./_data 2├── 2020 3│ └── 12 4│ └── test4.mdx 5└── 2021 6 ├── 03 7 │ └── test3.mdx 8 └── 04 9 ├── test1.mdx 10 └── test2.mdx
試したこと
node
1import glob from "glob" 2 3const getAllDir = () => { 4 const paths = glob.sync(`_data/**/**/*.mdx`); 5 const allDirData = paths.map((fullPath) => { 6 const dirPath = path.dirname(fullPath); 7 const dirPathArray = dirPath.split(path.sep); 8 const year = dirPathArray[dirPathArray.length - 2]; 9 const month = dirPathArray[dirPathArray.length - 1]; 10 const date = year + month; 11 12 return date; 13 }); 14 15 const noDuplication = Array.from(new Set(allDirData)); 16 // ここまででMdが入っているフォルダの取得&重複削除までできました 17};
ここまでで重複なしのMdが入っているフォルダの取得までできました。
allDirData
は[ '202012', '202103', '202104', '202104' ]
と配列を返しております。
できると、下記のような配列で返せたら嬉しいです
[ { date: 202012, count: 1 }, { date: 202103, count: 1 }, { date: 202104, count: 2 }, ]
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。