gowebd/indexHtml.go

108 lines
3.4 KiB
Go

package main
import (
"fmt"
"strings"
"net/http"
"go.wit.com/log"
)
func indexHeader(w http.ResponseWriter) {
fmt.Fprintln(w, "<!DOCTYPE html>")
fmt.Fprintln(w, "<html>")
fmt.Fprintln(w, " <head>")
// fmt.Fprintln(w, " <link rel=\"stylesheet\" href=\"skeleton.v2.css\" />")
fmt.Fprintln(w, " <style>")
fmt.Fprintln(w, " #footer {")
fmt.Fprintln(w, " position: fixed;")
fmt.Fprintln(w, " padding: 1% 0% 1% 0%; /* top left bottom right */")
fmt.Fprintln(w, " bottom: 0;")
fmt.Fprintln(w, " width: 100%;")
fmt.Fprintln(w, " /* Height of the footer*/")
fmt.Fprintln(w, " height: 40px;")
fmt.Fprintln(w, " background: lightgrey;")
fmt.Fprintln(w, " }")
fmt.Fprintln(w, " </style>")
fmt.Fprintln(w, " </head>")
fmt.Fprintln(w, "</html>")
}
func indexBodyStart(w http.ResponseWriter) {
// fmt.Fprintln(w, "
fmt.Fprintln(w, "<body>")
fmt.Fprintln(w, " <div class=\"container\">")
fmt.Fprintln(w, " <div class=\"row\">")
fmt.Fprintln(w, " <table class=\"u-full-width\">")
// fmt.Fprintln(w, " <thead>")
fmt.Fprintln(w, " <tr>")
fmt.Fprintln(w, " <th>Package</th>")
fmt.Fprintln(w, " <th>go get</th>")
fmt.Fprintln(w, " <th>Authoritative sources (IPv6 only)</th>")
fmt.Fprintln(w, " <th>github mirror</th>")
fmt.Fprintln(w, " <th>Documentation</th>")
fmt.Fprintln(w, " </tr>")
// fmt.Fprintln(w, " </thead>")
fmt.Fprintln(w, " <tbody>")
fmt.Fprintln(w, "")
}
func insertHTMLnote(w http.ResponseWriter, i int, parts []string) {
log.Info("comment # line:", i, strings.Join(parts, " "))
fmt.Fprintln(w, " <tr> <td><h3>", strings.Join(parts, " "), "</h3></td> <td></td> <td></td> <td></td> <td></td> </tr>")
}
func indexBodyScanConfig(w http.ResponseWriter) {
log.Info("indexBodyScanConfig() START")
for i, line := range configfile {
// log.Info("config file line:", i, line)
fields := strings.Fields(line)
if (len(fields) == 0) {
continue
}
if (fields[0] == "#") {
insertHTMLnote(w, i, fields[0:])
// log.Info("comment # line:", i, line)
continue
}
if (len(fields) == 2) {
log.Info("short file line:", i, line)
gourl := fields[0]
giturl := fields[1]
indexBodyRepo(w, gourl, giturl, "")
continue
}
log.Info("config file line:", i, line)
}
log.Info("indexBodyScanConfig() END")
}
func indexBodyRepo(w http.ResponseWriter, gourl string, giturl string, github string) {
// fmt.Fprintln(w, " <tr> <td><h5>log/ (needed for the gui)</h5></td> <td></td> <td></td> <td></td> <td></td> </tr>")
fmt.Fprintln(w, " <tr>")
fmt.Fprintln(w, " <td>" + gourl + "</td>")
fmt.Fprintln(w, " <td> <a href=\"//" + gourl + "\">" + gourl + "</a></td>")
fmt.Fprintln(w, " <td> <a href=\"//" + gourl + "\">" + giturl + "</a></td>")
if github == "" {
fmt.Fprintln(w, " <td></td>")
} else {
fmt.Fprintln(w, " <td> <a href=\"//github.com/wit-go/log\">github.com/wit-go/log</a></td>")
}
fmt.Fprintln(w, " <td> <a href=\"//pkg.go.dev/" + gourl + "\"> <img src=\"goReference.svg\" alt=\"pkg.go.dev docs\" /> </a> </td>")
fmt.Fprintln(w, " </tr>")
fmt.Fprintln(w, "")
}
func indexDivEnd(w http.ResponseWriter) {
// fmt.Fprintln(w, "
fmt.Fprintln(w, " </tbody>")
fmt.Fprintln(w, " </table>")
fmt.Fprintln(w, " </div>")
fmt.Fprintln(w, " </div>")
}
func indexBodyEnd(w http.ResponseWriter) {
fmt.Fprintln(w, " </body>")
fmt.Fprintln(w, " </html>")
}