Rename DirectoriesFirst option to DirectorySubdirsFirst and document in README.

This commit is contained in:
Solderpunk 2023-02-05 14:35:29 +01:00
parent 67d509a234
commit 8446885f56
4 changed files with 14 additions and 9 deletions

View File

@ -247,6 +247,10 @@ directory listing:
* `DirectorySort`: A string specifying how to sort files in * `DirectorySort`: A string specifying how to sort files in
automatically generated directory listings. Must be one of "Name", automatically generated directory listings. Must be one of "Name",
"Size" or "Time" (default value "Name"). "Size" or "Time" (default value "Name").
* `DirectorySubdirsFirst` (boolean): if true, list subdirectories of
the directory being listed before files. Subdirs and files will be
sorted within their respective categories according to
`DirectorySort` (default value false).
* `DirectoryReverse` (boolean): if true, automatically generated * `DirectoryReverse` (boolean): if true, automatically generated
directory listings will list files in descending order of whatever directory listings will list files in descending order of whatever
`DirectorySort` is set to (default value false). `DirectorySort` is set to (default value false).
@ -373,6 +377,7 @@ other settings in `.molly` files will be ignored:
* `DefaultLang` * `DefaultLang`
* `DefaultEncoding` * `DefaultEncoding`
* `DirectorySort` * `DirectorySort`
* `DirectorySubdirsFirst`
* `DirectoryReverse` * `DirectoryReverse`
* `DirectoryTitles` * `DirectoryTitles`
* `GeminiExt` * `GeminiExt`

View File

@ -29,7 +29,7 @@ type Config struct {
SCGIPaths map[string]string SCGIPaths map[string]string
CertificateZones map[string][]string CertificateZones map[string][]string
DirectorySort string DirectorySort string
DirectoriesFirst bool DirectorySubdirsFirst bool
DirectoryReverse bool DirectoryReverse bool
DirectoryTitles bool DirectoryTitles bool
} }
@ -43,7 +43,7 @@ type MollyFile struct {
DefaultLang string DefaultLang string
DefaultEncoding string DefaultEncoding string
DirectorySort string DirectorySort string
DirectoriesFirst bool DirectorySubdirsFirst bool
DirectoryReverse bool DirectoryReverse bool
DirectoryTitles bool DirectoryTitles bool
} }
@ -69,7 +69,7 @@ func getConfig(filename string) (Config, error) {
config.CGIPaths = make([]string, 0) config.CGIPaths = make([]string, 0)
config.SCGIPaths = make(map[string]string) config.SCGIPaths = make(map[string]string)
config.DirectorySort = "Name" config.DirectorySort = "Name"
config.DirectoriesFirst = false config.DirectorySubdirsFirst = false
// Return defaults if no filename given // Return defaults if no filename given
if filename == "" { if filename == "" {
@ -147,7 +147,7 @@ func parseMollyFiles(path string, config *Config, errorLog *log.Logger) {
mollyFile.DefaultLang = config.DefaultLang mollyFile.DefaultLang = config.DefaultLang
mollyFile.DefaultEncoding = config.DefaultEncoding mollyFile.DefaultEncoding = config.DefaultEncoding
mollyFile.DirectorySort = config.DirectorySort mollyFile.DirectorySort = config.DirectorySort
mollyFile.DirectoriesFirst = config.DirectoriesFirst mollyFile.DirectorySubdirsFirst = config.DirectorySubdirsFirst
mollyFile.DirectoryReverse = config.DirectoryReverse mollyFile.DirectoryReverse = config.DirectoryReverse
mollyFile.DirectoryTitles = config.DirectoryTitles mollyFile.DirectoryTitles = config.DirectoryTitles
// Build list of directories to check // Build list of directories to check
@ -186,7 +186,7 @@ func parseMollyFiles(path string, config *Config, errorLog *log.Logger) {
config.DefaultLang = mollyFile.DefaultLang config.DefaultLang = mollyFile.DefaultLang
config.DefaultEncoding = mollyFile.DefaultEncoding config.DefaultEncoding = mollyFile.DefaultEncoding
config.DirectorySort = mollyFile.DirectorySort config.DirectorySort = mollyFile.DirectorySort
config.DirectoriesFirst = mollyFile.DirectoriesFirst config.DirectorySubdirsFirst = mollyFile.DirectorySubdirsFirst
config.DirectoryReverse = mollyFile.DirectoryReverse config.DirectoryReverse = mollyFile.DirectoryReverse
config.DirectoryTitles = mollyFile.DirectoryTitles config.DirectoryTitles = mollyFile.DirectoryTitles
for key, value := range mollyFile.TempRedirects { for key, value := range mollyFile.TempRedirects {

View File

@ -42,7 +42,7 @@ func generateDirectoryListing(URL *url.URL, path string, config Config) (string,
i, j = j, i i, j = j, i
} }
if config.DirectorySort == "Name" { if config.DirectorySort == "Name" {
if config.DirectoriesFirst { if config.DirectorySubdirsFirst {
if files[i].IsDir() { if files[i].IsDir() {
if files[j].IsDir() { if files[j].IsDir() {
return files[i].Name() < files[j].Name() return files[i].Name() < files[j].Name()
@ -58,7 +58,7 @@ func generateDirectoryListing(URL *url.URL, path string, config Config) (string,
} }
return files[i].Name() < files[j].Name() return files[i].Name() < files[j].Name()
} else if config.DirectorySort == "Size" { } else if config.DirectorySort == "Size" {
if config.DirectoriesFirst { if config.DirectorySubdirsFirst {
if files[i].IsDir() { if files[i].IsDir() {
if files[j].IsDir() { if files[j].IsDir() {
return files[i].Size() < files[j].Size() return files[i].Size() < files[j].Size()
@ -74,7 +74,7 @@ func generateDirectoryListing(URL *url.URL, path string, config Config) (string,
} }
return files[i].Size() < files[j].Size() return files[i].Size() < files[j].Size()
} else if config.DirectorySort == "Time" { } else if config.DirectorySort == "Time" {
if config.DirectoriesFirst { if config.DirectorySubdirsFirst {
if files[i].IsDir() { if files[i].IsDir() {
if files[j].IsDir() { if files[j].IsDir() {
return files[i].ModTime().Before(files[j].ModTime()) return files[i].ModTime().Before(files[j].ModTime())

View File

@ -15,7 +15,7 @@
## Directory listing ## Directory listing
# #
#DirectorySort = "Time" #DirectorySort = "Time"
#DirectoriesFirst = false #DirectorySubdirsFirst = false
#DirectoryReverse = true #DirectoryReverse = true
#DirectoryTitles = true #DirectoryTitles = true
# #