Skip to content
This repository was archived by the owner on May 29, 2025. It is now read-only.

Bugfix: also accounting for index.md files #1

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 36 additions & 23 deletions utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,42 @@ class SidebarUtils {
return title;
};

// 対象ディレクトリ配下のファイルを取得
getFilepaths(files, targetdir) {
return files.map((file) => {
// 子ディレクトリ配下にREADME.mdが存在する場合は子ディレクトリのパスとする。
if (file === 'README.md') {
// README.mdの場合は子ディレクトリ直下のパスとする。
//return targetdir;
return path.join(targetdir);
// returns true exactly when the file is the index file
isIndexFile(file) {
return file === 'README.md' || file === 'index.md';
}

// utility function for mapping and ordering files
// the order being: index file first (see above), everything else alphabetically
mapFiles(files, targetdir) {
let indexFile;
const mappedFiles = files
.filter((file) => {
// skip the index file in order to add it afterwards
if (this.isIndexFile(file)) {
// save the index file
indexFile = path.join(targetdir);
// file is the index file, therefore skip it
return false;
} else {
// file is not the index file, therefore add it to the filtered list
return true;
}
})
.map((file) => {
// README.md以外の場合は子ディレクトリ+ファイル名を返す。
//return targetdir + file;
//return "/" + targetdir + "/" + file;
return path.join(targetdir, file);
});
})
// add the index file as the first item and return the result
mappedFiles.splice(0, 0, indexFile);
return mappedFiles;
}

// 対象ディレクトリ配下のファイルを取得
getFilepaths(files, targetdir) {
// map files to sidebar elements
return this.mapFiles(files, targetdir);
};

getFiles (workingdir, targetpath) {
Expand All @@ -37,18 +60,8 @@ class SidebarUtils {

// 対象ディレクトリ配下のファイルを取得
getFileitems(workingdir, targetdir) {
//return fs.readdirSync(workingdir + "/" + targetdir).map((file) => {
return fs.readdirSync(path.join(workingdir, targetdir)).map((file) => {
// 子ディレクトリ配下にREADME.mdが存在する場合は子ディレクトリのパスとする。
if (file === 'README.md') {
// README.mdの場合は子ディレクトリ直下のパスとする。
//return "/" + targetdir + "/"
return path.join(targetdir);
}
// README.md以外の場合は子ディレクトリ+ファイル名を返す。
//return "/" + targetdir + "/" + file;
return path.join(targetdir, file);
})
// map files to sidebar elements
return this.mapFiles(fs.readdirSync(path.join(workingdir, targetdir)), targetdir);
};
// ディレクトリ一覧の取得
getDirectores (workingdir) {
Expand All @@ -70,7 +83,7 @@ class SidebarUtils {
// root配下のファイル&ディレクトリ一覧取得
return fs.readdirSync(workingdir).filter((file) => {
//root配下のREADME.mdは'/'で表現されるので排除する。
if (file === 'README.md') {
if (this.isIndexFile(file)) {
// README.mdの場合:false
return false;
}
Expand Down