add readme candidate order
This commit is contained in:
parent
2f91fb771e
commit
ea4339b2dc
@ -143,9 +143,16 @@ function isImageFile(path: string) {
|
||||
return /\.(jpg|jpeg|png|gif|webp|svg|bmp|ico|tiff)$/i.test(path);
|
||||
}
|
||||
|
||||
function searchFiles(path: EntryInfo[], fn: (path: EntryInfo) => boolean) {
|
||||
function searchFiles(
|
||||
path: EntryInfo[],
|
||||
fn: (path: EntryInfo) => boolean,
|
||||
opt: { order?: (a: EntryInfo, b: EntryInfo) => number } = {},
|
||||
) {
|
||||
const candiate = path.filter(fn);
|
||||
if (candiate.length > 0) {
|
||||
if (opt.order) {
|
||||
candiate.sort(opt.order);
|
||||
}
|
||||
return candiate[0];
|
||||
}
|
||||
return null;
|
||||
@ -157,16 +164,24 @@ export default function DirLists(props: PageProps<DirOrFileProps>) {
|
||||
if (data.type === "dir") {
|
||||
cover = searchFiles(data.files, (f) => isImageFile(f.name));
|
||||
index = searchFiles(data.files, (f) => f.name === "index.html");
|
||||
const contentFilenameCandidate = new Set([
|
||||
const contentFilenameCandidate = [
|
||||
"SUMMARY.md",
|
||||
"README.md",
|
||||
"readme.md",
|
||||
"README.txt",
|
||||
"readme.txt",
|
||||
]);
|
||||
];
|
||||
const contentFilenameCandidateSet = new Set(contentFilenameCandidate);
|
||||
content = searchFiles(
|
||||
data.files,
|
||||
(f) => contentFilenameCandidate.has(f.name),
|
||||
(f) => contentFilenameCandidateSet.has(f.name),
|
||||
{
|
||||
order: (a, b) => {
|
||||
const aIndex = contentFilenameCandidate.indexOf(a.name);
|
||||
const bIndex = contentFilenameCandidate.indexOf(b.name);
|
||||
return (aIndex - bIndex);
|
||||
},
|
||||
},
|
||||
);
|
||||
}
|
||||
return (
|
||||
@ -205,8 +220,7 @@ export default function DirLists(props: PageProps<DirOrFileProps>) {
|
||||
>
|
||||
<RenderView
|
||||
src={`/dir/${encodePath(join(data.path, content.name))}`}
|
||||
>
|
||||
</RenderView>
|
||||
/>
|
||||
</div>
|
||||
)
|
||||
: null}
|
||||
|
1
test_data/e/readme.txt
Normal file
1
test_data/e/readme.txt
Normal file
@ -0,0 +1 @@
|
||||
Readme
|
1
test_data/g/readme.txt
Normal file
1
test_data/g/readme.txt
Normal file
@ -0,0 +1 @@
|
||||
Readme
|
Loading…
Reference in New Issue
Block a user