aboutsummaryrefslogtreecommitdiffstats
path: root/src/renderer.rs
diff options
context:
space:
mode:
authorDean Li <deantvv@gmail.com>2021-06-03 13:26:27 +0000
committerDean Li <deantvv@gmail.com>2021-08-30 11:55:58 +0000
commit7944db336ca3ef0338369091af60aa2b15789952 (patch)
tree98d5c2a9e9a007a569710d60328e32713d832b60 /src/renderer.rs
parentAdd CHANGELOG entry for binding behavior revamp (diff)
downloadminiserve-7944db336ca3ef0338369091af60aa2b15789952.tar.gz
miniserve-7944db336ca3ef0338369091af60aa2b15789952.zip
Implement show symlink destination
Add option `show_symlink_info` to represent show symlink info or not. (Default to no) Show symlink destination after symlink symbol in directory listing Resemble `ls -l` and also the short argument select for this feature is also `-l`. Basic testing is included. Related to #499
Diffstat (limited to '')
-rw-r--r--src/renderer.rs31
1 files changed, 20 insertions, 11 deletions
diff --git a/src/renderer.rs b/src/renderer.rs
index 901bf66..3360504 100644
--- a/src/renderer.rs
+++ b/src/renderer.rs
@@ -328,24 +328,33 @@ fn entry_row(
td {
p {
@if entry.is_dir() {
- a.directory href=(parametrized_link(&entry.link, sort_method, sort_order)) {
- (entry.name) "/"
- @if entry.is_symlink {
+ @if let Some(symlink_dest) = entry.symlink_info {
+ a.symlink href=(parametrized_link(&entry.link, sort_method, sort_order)) {
+ (entry.name) "/"
span.symlink-symbol { }
+ a.directory {(symlink_dest) "/"}
+ }
+ }@else {
+ a.directory href=(parametrized_link(&entry.link, sort_method, sort_order)) {
+ (entry.name) "/"
}
}
} @else if entry.is_file() {
- div.file-entry {
+ @if let Some(symlink_dest) = entry.symlink_info {
+ a.symlink href=(&entry.link) {
+ (entry.name)
+ span.symlink-symbol { }
+ a.file {(symlink_dest)}
+ }
+ }@else {
a.file href=(&entry.link) {
(entry.name)
- @if entry.is_symlink {
- span.symlink-symbol { }
- }
}
- @if let Some(size) = entry.size {
- span.mobile-info.size {
- (size)
- }
+ }
+
+ @if let Some(size) = entry.size {
+ span.mobile-info.size {
+ (size)
}
}
}