diff --git a/website/index.html b/website/index.html
index 74cf67f..fc0248f 100644
--- a/website/index.html
+++ b/website/index.html
@@ -9,18 +9,21 @@ body{font-size:18px!important;line-height:2;font-family:sans-serif;margin:.5em 1
h1{font-size:24px!important;margin-top:0;margin-bottom:.5em;border-bottom:2px solid #ccc;padding-bottom:.3em}
.breadcrumb{font-size:18px;margin-bottom:.75em}
.breadcrumb a{color:#0066cc;cursor:pointer}
+.tools-nav{margin-bottom:.75em}
+.tools-link{text-decoration:underline;font-style:italic}
.loading{font-size:20px;color:#666}
.error{color:#c00;font-size:18px}
.user-bar{margin-bottom:.4em;padding:.25em 0;display:flex;align-items:center;justify-content:flex-end;gap:1em}
.user-bar .logged-in{color:green}
.user-bar .logout-btn{padding:.3em .8em;font-size:16px;cursor:pointer;background:#0066cc;color:#fff;border:none;border-radius:4px}
.user-bar .logout-btn:hover{background:#0052a3}
-.file-list{width:100%}
-.file-table{width:100%;border-collapse:collapse;margin-top:.25em;table-layout:fixed}
-.file-table th,.file-table td{padding:.45em .65em;border-bottom:1px solid #ddd;text-align:left;vertical-align:middle;word-break:break-word}
-.file-table th{font-size:17px;font-weight:600;color:#333;background:#f5f5f5;border-bottom:2px solid #ccc}
-.file-table td:nth-child(1){width:52%}
-.file-table td:nth-child(2),.file-table td:nth-child(3){font-size:16px;color:#555;white-space:nowrap}
+.file-list{margin-top:.25em;overflow-x:auto}
+.file-table{border-collapse:collapse;width:75%;table-layout:fixed}
+.file-table th,.file-table td{padding:.45em .65em;border-bottom:1px solid #ddd;text-align:left;vertical-align:middle}
+.file-table thead th{font-size:17px;font-weight:600;color:#333;background:#f5f5f5;border-bottom:2px solid #ccc}
+.file-table .col-name{width:70%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
+.file-table .col-size{width:10%;white-space:nowrap;font-size:16px;color:#555}
+.file-table .col-mtime{width:20%;white-space:nowrap;font-size:16px;color:#555}
.file-table a{font-size:19px!important;color:#0066cc;text-decoration:none}
.file-table a:hover{text-decoration:underline}
.file-table .dir{font-weight:bold;cursor:pointer}
@@ -85,22 +88,38 @@ return mtime;
}
}
+function normalizeName(name){
+return (name||"").replace(/\/$/,"");
+}
+
+function isDirectory(item){
+return item.type==="directory"||/\/$/.test(item.name||"");
+}
+
function renderBreadcrumb(path){
var parts=path?path.split("/").filter(Boolean):[];
if(parts.length===0){
document.getElementById("breadcrumb").innerHTML="";
return;
}
-var html="";
+var inTools=parts[0]==="tools";
+var html='根目录';
var acc="";
for(var i=0;i0)html+=" / ";
-html+=''+ parts[i]+"";
+var linkClass=parts[i]==="tools"?' class="tools-link"':'';
+html+=' / '+escapeHtml(parts[i])+"";
}
document.getElementById("breadcrumb").innerHTML=html;
}
+function buildToolsNavHtml(path,items){
+if(path)return "";
+var hasTools=items.some(function(item){return isDirectory(item)&&normalizeName(item.name)==="tools"});
+if(!hasTools)return "";
+return '';
+}
+
window.navigateTo=function(path){
window.location.href=path;
};
@@ -133,28 +152,31 @@ renderBreadcrumb(path);
var rows="";
var items=Array.isArray(data)?data:[];
+var toolsHtml=buildToolsNavHtml(path,items);
items.forEach(function(item){
if(shouldHideFile(item.name))return;
-var fullPath=(path?path+"/":"")+item.name;
-var isDir=item.type==="directory";
+var name=normalizeName(item.name);
+if(!path&&isDirectory(item)&&name==="tools")return;
+var fullPath=(path?path+"/":"")+name;
+var isDir=isDirectory(item);
var size=formatSize(item.size);
var mtime=formatMtime(item.mtime);
-var nameEsc=escapeHtml(item.name);
+var nameEsc=escapeHtml(name)+(isDir?"/":"");
if(isDir){
var navPath="/"+fullPath+"/";
-rows+="| "+nameEsc+"/ | "+escapeHtml(size)+" | "+escapeHtml(mtime)+" |
";
+rows+="| "+nameEsc+" | "+escapeHtml(size)+" | "+escapeHtml(mtime)+" |
";
}else{
-rows+="| "+nameEsc+" | "+escapeHtml(size)+" | "+escapeHtml(mtime)+" |
";
+rows+="| "+nameEsc+" | "+escapeHtml(size)+" | "+escapeHtml(mtime)+" |
";
}
});
-var tableStart='| 文件名称 | 文件大小 | 上传时间 |
';
+var tableStart='| 文件名称 | 文件大小 | 上传时间 |
';
var tableEnd="
";
if(!rows){
-listEl.innerHTML=tableStart+'| 目录为空 |
'+tableEnd;
+listEl.innerHTML=toolsHtml+tableStart+'| 目录为空 |
'+tableEnd;
}else{
-listEl.innerHTML=tableStart+rows+tableEnd;
+listEl.innerHTML=toolsHtml+tableStart+rows+tableEnd;
}
listEl.style.display="block";
})