Index generation
This commit is contained in:
70
build/generate-index.go
Normal file
70
build/generate-index.go
Normal file
@@ -0,0 +1,70 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"html/template"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"sort"
|
||||
)
|
||||
|
||||
type IndexData struct {
|
||||
Dir string
|
||||
Files []string
|
||||
}
|
||||
|
||||
func generateIndex(dir string) error {
|
||||
entries, err := os.ReadDir(dir)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to read directory: %w", err)
|
||||
}
|
||||
|
||||
var files []string
|
||||
for _, entry := range entries {
|
||||
name := entry.Name()
|
||||
// Skip the index.html itself and hidden files
|
||||
if name != "index.html" && !filepath.HasPrefix(name, ".") {
|
||||
files = append(files, name)
|
||||
}
|
||||
}
|
||||
sort.Strings(files)
|
||||
|
||||
templatePath := "build/index.html.tmpl"
|
||||
tmpl, err := template.ParseFiles(templatePath)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to parse template: %w", err)
|
||||
}
|
||||
|
||||
indexPath := filepath.Join(dir, "index.html")
|
||||
f, err := os.Create(indexPath)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to create index.html: %w", err)
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
data := IndexData{
|
||||
Dir: filepath.Base(dir),
|
||||
Files: files,
|
||||
}
|
||||
|
||||
if err := tmpl.Execute(f, data); err != nil {
|
||||
return fmt.Errorf("failed to execute template: %w", err)
|
||||
}
|
||||
|
||||
fmt.Printf("Generated index.html in %s\n", dir)
|
||||
return nil
|
||||
}
|
||||
|
||||
func main() {
|
||||
if len(os.Args) < 2 {
|
||||
fmt.Println("Usage: generate-index <directory> [<directory>...]")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
for _, dir := range os.Args[1:] {
|
||||
if err := generateIndex(dir); err != nil {
|
||||
fmt.Fprintf(os.Stderr, "Error processing %s: %v\n", dir, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
}
|
||||
28
build/index.html.tmpl
Normal file
28
build/index.html.tmpl
Normal file
@@ -0,0 +1,28 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Index of {{.Dir}}</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
||||
max-width: 800px;
|
||||
margin: 50px auto;
|
||||
padding: 0 20px;
|
||||
}
|
||||
h1 { color: #333; }
|
||||
ul { list-style: none; padding: 0; }
|
||||
li { padding: 8px 0; border-bottom: 1px solid #eee; }
|
||||
a { text-decoration: none; color: #0066cc; }
|
||||
a:hover { text-decoration: underline; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Index of {{.Dir}}</h1>
|
||||
<ul>
|
||||
{{- range .Files}}
|
||||
<li><a href="{{.}}">{{.}}</a></li>
|
||||
{{- end}}
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
63
helios/index.html
Normal file
63
helios/index.html
Normal file
@@ -0,0 +1,63 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Index of helios</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
||||
max-width: 800px;
|
||||
margin: 50px auto;
|
||||
padding: 0 20px;
|
||||
}
|
||||
h1 { color: #333; }
|
||||
ul { list-style: none; padding: 0; }
|
||||
li { padding: 8px 0; border-bottom: 1px solid #eee; }
|
||||
a { text-decoration: none; color: #0066cc; }
|
||||
a:hover { text-decoration: underline; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Index of helios</h1>
|
||||
<ul>
|
||||
<li><a href="2025-10-08%20-%20Helios%20Annual%20Report.pdf">2025-10-08 - Helios Annual Report.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Helios%20Help%20-%20Gradebands.pdf">2025-10-08 - Helios Help - Gradebands.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Helios%20Help%20-%20Homework.pdf">2025-10-08 - Helios Help - Homework.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Helios%20Help%20-%20Hummingbirds%20-%20Camping.pdf">2025-10-08 - Helios Help - Hummingbirds - Camping.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Helios%20Help%20-%20Hummingbirds%20-%20Homework.pdf">2025-10-08 - Helios Help - Hummingbirds - Homework.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Helios%20Help%20-%20Hummingbirds%20-%20Library.pdf">2025-10-08 - Helios Help - Hummingbirds - Library.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Helios%20Help%20-%20Hummingbirds%20-%20Literacy.pdf">2025-10-08 - Helios Help - Hummingbirds - Literacy.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Helios%20Help%20-%20Hummingbirds%20-%20MAP%20Assessment.pdf">2025-10-08 - Helios Help - Hummingbirds - MAP Assessment.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Helios%20Help%20-%20Hummingbirds%20-%20Math%20Program.pdf">2025-10-08 - Helios Help - Hummingbirds - Math Program.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Helios%20Help%20-%20Hummingbirds%20-%20Math%20and%20Literacy%20Placement.pdf">2025-10-08 - Helios Help - Hummingbirds - Math and Literacy Placement.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Helios%20Help%20-%20Hummingbirds%20-%20PE.pdf">2025-10-08 - Helios Help - Hummingbirds - PE.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Helios%20Help%20-%20Hummingbirds%20-%20SEL.pdf">2025-10-08 - Helios Help - Hummingbirds - SEL.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Helios%20Help%20-%20Hummingbirds%20-%20Technology.pdf">2025-10-08 - Helios Help - Hummingbirds - Technology.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Helios%20Help%20-%20Hummingbirds%20-%20Themes%20and%20Content.pdf">2025-10-08 - Helios Help - Hummingbirds - Themes and Content.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Helios%20Help%20-%20Hummingbirds%20-%20Transition.pdf">2025-10-08 - Helios Help - Hummingbirds - Transition.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Helios%20Help%20-%20MAP%20Testing.pdf">2025-10-08 - Helios Help - MAP Testing.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Helios%20Help%20-%20SEL.pdf">2025-10-08 - Helios Help - SEL.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Helios%20Help%20-%20Themes%20and%20Content.pdf">2025-10-08 - Helios Help - Themes and Content.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Helios%20Help%20-%20Welcome.pdf">2025-10-08 - Helios Help - Welcome.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Helios%20Parent%20Student%20Handbook%202025-2026.pdf">2025-10-08 - Helios Parent Student Handbook 2025-2026.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Helios%20Staff%20Summer%20Update%202025.pdf">2025-10-08 - Helios Staff Summer Update 2025.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Helios%20Strategic%20Plan%20Progress%20Report%202025.pdf">2025-10-08 - Helios Strategic Plan Progress Report 2025.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Helios%20Touchstones%20%28revised%2011-5-2024%29.pdf">2025-10-08 - Helios Touchstones (revised 11-5-2024).pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Meet%20Choice%20Lunch.pdf">2025-10-08 - Meet Choice Lunch.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Parent%20Portal%20-%20After%20School%20Clubs.pdf">2025-10-08 - Parent Portal - After School Clubs.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Parent%20Portal%20-%20Aftercare%20Program.pdf">2025-10-08 - Parent Portal - Aftercare Program.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Parent%20Portal%20-%20Drop-off%20&%20Pick-up.pdf">2025-10-08 - Parent Portal - Drop-off & Pick-up.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Parent%20Portal%20-%20Testing%20&%20Reports.pdf">2025-10-08 - Parent Portal - Testing & Reports.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Parent%20Portal%20-%20Van%20Service%20&%20Carpool.pdf">2025-10-08 - Parent Portal - Van Service & Carpool.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Parent%20Portal-%20Health%20Guidelines.pdf">2025-10-08 - Parent Portal- Health Guidelines.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Veracross%20-%20After%20School%20Clubs.pdf">2025-10-08 - Veracross - After School Clubs.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Veracross%20-%20Aftercare.pdf">2025-10-08 - Veracross - Aftercare.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Veracross%20-%20Camping.pdf">2025-10-08 - Veracross - Camping.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Veracross%20-%20Drop%20off%20&%20Pick%20up.pdf">2025-10-08 - Veracross - Drop off & Pick up.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Veracross%20-%20Shuttle%20Service%20&%20Carpool.pdf">2025-10-08 - Veracross - Shuttle Service & Carpool.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Veracross%20-%20Testing%20&%20Reports.pdf">2025-10-08 - Veracross - Testing & Reports.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Veracross%20-%20Volunteer%20Requirements.pdf">2025-10-08 - Veracross - Volunteer Requirements.pdf</a></li>
|
||||
<li><a href="2025-10-08%20-%20Veracross%20-%20WhatsApp%20Groups.pdf">2025-10-08 - Veracross - WhatsApp Groups.pdf</a></li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user