diff --git a/main.go b/main.go index ec4c058..7c6c48a 100644 --- a/main.go +++ b/main.go @@ -21,7 +21,7 @@ import ( var ( //go:embed private/* privateDirectory embed.FS - serveHash = fmt.Sprintf("%x", time.Now().Unix()) + serveHash = fmt.Sprintf("%X", time.Now().Unix()) serveDirectory = os.Getenv("HTTP_DIRECTORY") serveAddress = os.Getenv("HTTP_ADDRESS") tmpl = template.Must( @@ -83,32 +83,33 @@ func getEntrySizeHuman(b int64) string { func getEntryIcon(name string, isDir bool) string { if isDir { - return "icon_folder.png" + return "icon-directory" } switch strings.ToLower(path.Ext(name)) { // Custom Filetypes case ".redir": - return "icon_redirect.png" + return "icon-redirect" // Default Filetypes case ".mp3", ".flac", ".ogg", ".wav", ".aac", ".opus", ".m4a": - return "icon_audio.png" + return "icon-audio" case ".mp4", ".mkv", ".webm", ".avi", ".mov", ".m4v": - return "icon_video.png" + return "icon-video" case ".jpg", ".jpeg", ".png", ".gif", ".webp", ".avif", ".bmp", ".tiff": - return "icon_photo.png" + return "icon-photo" case ".zip", ".tar", ".gz", ".7z", ".rar", ".zst", ".xz", ".bz2": - return "icon_archive.png" + return "icon-archive" case ".exe", ".elf", ".bin", ".out", ".appimage", ".deb", ".rpm": - return "icon_program.png" + return "icon-program" case ".pdf", ".txt", ".md", ".srt", ".vtt", ".ass", ".log": - return "icon_document.png" + return "icon-document" case ".html", ".ts", ".js", ".go", ".rs", ".pug": - return "icon_script.png" + return "icon-script" case ".json", ".xml", ".yaml", ".toml", ".ini", ".cfg": - return "icon_config.png" + return "icon-config" + default: - return "icon_generic.png" + return "icon-generic" } } diff --git a/private/directory.html b/private/directory.html index aef3112..c369886 100644 --- a/private/directory.html +++ b/private/directory.html @@ -8,12 +8,16 @@ Browser: {{ .Path }} @@ -45,20 +49,20 @@ {{ if .Parent }} -
+
../
{{ end }} {{ range .Item }} {{ if .IsDir }} - -
+
+
{{ .Name }}
{{ else }} - - + +
{{ .Name }}
{{ end }} diff --git a/private/icon_archive.png b/private/icon_archive.png deleted file mode 100644 index 729e8e2..0000000 Binary files a/private/icon_archive.png and /dev/null differ diff --git a/private/icon_audio.png b/private/icon_audio.png deleted file mode 100644 index 82e9e8f..0000000 Binary files a/private/icon_audio.png and /dev/null differ diff --git a/private/icon_config.png b/private/icon_config.png deleted file mode 100644 index 7b46843..0000000 Binary files a/private/icon_config.png and /dev/null differ diff --git a/private/icon_document.png b/private/icon_document.png deleted file mode 100644 index d57f5d4..0000000 Binary files a/private/icon_document.png and /dev/null differ diff --git a/private/icon_folder.png b/private/icon_folder.png deleted file mode 100644 index 136be6a..0000000 Binary files a/private/icon_folder.png and /dev/null differ diff --git a/private/icon_folder_open.png b/private/icon_folder_open.png deleted file mode 100644 index 5852574..0000000 Binary files a/private/icon_folder_open.png and /dev/null differ diff --git a/private/icon_generic.png b/private/icon_generic.png deleted file mode 100644 index 0cf0ebb..0000000 Binary files a/private/icon_generic.png and /dev/null differ diff --git a/private/icon_grid.png b/private/icon_grid.png new file mode 100644 index 0000000..6b9bc66 Binary files /dev/null and b/private/icon_grid.png differ diff --git a/private/icon_photo.png b/private/icon_photo.png deleted file mode 100644 index dd2e0f7..0000000 Binary files a/private/icon_photo.png and /dev/null differ diff --git a/private/icon_program.png b/private/icon_program.png deleted file mode 100644 index 4660f9a..0000000 Binary files a/private/icon_program.png and /dev/null differ diff --git a/private/icon_redirect.png b/private/icon_redirect.png deleted file mode 100644 index 3370282..0000000 Binary files a/private/icon_redirect.png and /dev/null differ diff --git a/private/icon_script.png b/private/icon_script.png deleted file mode 100644 index 7e80da6..0000000 Binary files a/private/icon_script.png and /dev/null differ diff --git a/private/icon_video.png b/private/icon_video.png deleted file mode 100644 index 34d2d41..0000000 Binary files a/private/icon_video.png and /dev/null differ diff --git a/private/styles.css b/private/styles.css index 9cb59b0..703593f 100644 --- a/private/styles.css +++ b/private/styles.css @@ -1,3 +1,5 @@ +/* Layout */ + body { margin: 0; } @@ -26,13 +28,11 @@ div.foreground { } div.pattern { - background: url("/private/bg_pattern.png?v={{ .Version }}"); background-repeat: repeat-x; height: 152px; } div.graphic { - background: url("/private/bg_graphic.png?v={{ .Version }}"); width: 256px; height: 259px; position: absolute; @@ -56,12 +56,6 @@ div.directory { flex-wrap: wrap; } -a.entry[data-type="directory"] div.icon { - background-size: 32px 32px; - height: 32px; - width: 32px; -} - a.entry { display: inline-flex; flex-direction: column; @@ -73,7 +67,7 @@ a.entry { color: inherit; } -a.entry img.icon { +a.entry div.icon { height: 32px; width: 32px; } @@ -87,7 +81,6 @@ a.entry span.filename { } @media (max-width: 600px) { - a.entry { padding: 4px; width: 100%; @@ -96,14 +89,57 @@ a.entry span.filename { gap: 8px; } - a.entry img.icon, - a.entry[data-type="directory"] div.icon { - background-size: 1em 1em; - height: 1em; - width: 1em; - } - a.entry span.filename { font-size: 1em; } } + +/* Icons */ + +.icon-archive { + background-position: 0 0; +} + +.icon-audio { + background-position: -32px 0; +} + +.icon-config { + background-position: -64px 0; +} + +.icon-document { + background-position: -96px 0; +} + +a.entry[data-type="directory"] .icon-directory { + background-position: 0 -32px; +} + +a.entry[data-type="directory"]:hover .icon-directory { + background-position: -32px -32px; +} + +.icon-generic { + background-position: -64px -32px; +} + +.icon-photo { + background-position: -96px -32px; +} + +.icon-program { + background-position: 0 -64px; +} + +.icon-redirect { + background-position: -32px -64px; +} + +.icon-script { + background-position: -64px -64px; +} + +.icon-video { + background-position: -96px -64px; +}