[OCaml] Mobile-friendly clone of cgit.
feat collapse single-file directories into direct file links
A directory containing exactly one file is now rendered as a direct file entry with a combined path name (dir/file), rather than a collapsible folder with a single nested item. This extends the existing single-subdir collapse to also handle the single-file case.
lib/resolvers.ml
@@ -459,6 +459,16 @@
459
459
(* Single subdir — collapse into parent name and recurse *)
460
460
let combined_name = prefix ^ "/" ^ single.name in
461
461
collapse_single_subdirs combined_name single.hash
462
Added:
| [ single ] when single.perm <> Entry.Dir ->
463
Added:
(* Single file — present as a file with combined path name *)
464
Added:
let combined_entry =
465
Added:
{
466
Added:
Entry.hash = single.hash;
467
Added:
name = prefix ^ "/" ^ single.name;
468
Added:
perm = single.perm;
469
Added:
}
470
Added:
in
471
Added:
Lwt_result.return { entry = combined_entry; children = None }
462
472
| _ ->
463
473
let collapsed_entry =
464
474
{ Entry.hash = hash_hex; name = prefix; perm = Entry.Dir }