parent
5d92360670
commit
31a8690a9c
|
@ -0,0 +1,113 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
"os"
|
||||
"text/template"
|
||||
|
||||
"github.com/tdewolff/minify/v2"
|
||||
mcss "github.com/tdewolff/minify/v2/css"
|
||||
mhtml "github.com/tdewolff/minify/v2/html"
|
||||
)
|
||||
|
||||
const (
|
||||
HtmlSrcFile = "../src/DiscoveryOne.html"
|
||||
HtmlDstFile = "../public/DiscoveryOne.html"
|
||||
|
||||
CssSrcFile = "../src/css/Monolith.css"
|
||||
CssDstFile = "../public/css/Monolith.css"
|
||||
|
||||
DATASrcFile = "../data/data.stf"
|
||||
)
|
||||
|
||||
func main() {
|
||||
html, err := os.ReadFile(HtmlSrcFile)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
css, err := os.ReadFile(CssSrcFile)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
data, err := parseData(DATASrcFile)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
if err = buildHTML(&html, &data); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
if err = minifyStuff(&html, &css); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
err = os.WriteFile(HtmlDstFile, html, 0644)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
err = os.WriteFile(CssDstFile, css, 0644)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
func parseData(file string) (data []string, err error) {
|
||||
buff, err := os.Open(file)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
defer buff.Close()
|
||||
|
||||
scanner := bufio.NewScanner(buff)
|
||||
scanner.Split(bufio.ScanLines)
|
||||
|
||||
data = append(data, "")
|
||||
|
||||
for scanner.Scan() {
|
||||
data = append(data, scanner.Text())
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func buildHTML(html *[]byte, data *[]string) (err error) {
|
||||
tpl := template.Must(template.New("").Parse(string(*html)))
|
||||
|
||||
buff := new(bytes.Buffer)
|
||||
if err = tpl.Execute(buff, *data); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
*html = buff.Bytes()
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func minifyStuff(html *[]byte, css *[]byte) (err error) {
|
||||
m := minify.New()
|
||||
// m.AddFunc("text/css", mcss.Minify)
|
||||
m.Add("text/css", &mcss.Minifier{})
|
||||
|
||||
// m.AddFunc("text/html", mhtml.Minify)
|
||||
m.Add("text/html", &mhtml.Minifier{
|
||||
KeepEndTags: true,
|
||||
KeepDocumentTags: true,
|
||||
})
|
||||
|
||||
*html, err = m.Bytes("text/html", *html)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
*css, err = m.Bytes("text/css", *css)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
return
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
module static.iglou.eu
|
||||
|
||||
go 1.17
|
||||
|
||||
require github.com/tdewolff/minify/v2 v2.10.0
|
||||
|
||||
require github.com/tdewolff/parse/v2 v2.5.27 // indirect
|
|
@ -0,0 +1,13 @@
|
|||
github.com/cheekybits/is v0.0.0-20150225183255-68e9c0620927/go.mod h1:h/aW8ynjgkuj+NQRlZcDbAbM1ORAbXjXX77sX7T289U=
|
||||
github.com/djherbis/atime v1.1.0/go.mod h1:28OF6Y8s3NQWwacXc5eZTsEsiMzp7LF8MbXE+XJPdBE=
|
||||
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
||||
github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU=
|
||||
github.com/matryer/try v0.0.0-20161228173917-9ac251b645a2/go.mod h1:0KeJpeMD6o+O4hW7qJOT7vyQPKrWmj26uf5wMc/IiIs=
|
||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||
github.com/tdewolff/minify/v2 v2.10.0 h1:ovVAHUcjfGrBDf1EIvsodRUVJiZK/28mMose08B7k14=
|
||||
github.com/tdewolff/minify/v2 v2.10.0/go.mod h1:6XAjcHM46pFcRE0eztigFPm0Q+Cxsw8YhEWT+rDkcZM=
|
||||
github.com/tdewolff/parse/v2 v2.5.27 h1:PL3LzzXaOpmdrknnOlIeO2muIBHAwiKp6TxN1RbU5gI=
|
||||
github.com/tdewolff/parse/v2 v2.5.27/go.mod h1:WzaJpRSbwq++EIQHYIRTpbYKNA3gn9it1Ik++q4zyho=
|
||||
github.com/tdewolff/test v1.0.6 h1:76mzYJQ83Op284kMT+63iCNCI7NEERsIN8dLM+RiKr4=
|
||||
github.com/tdewolff/test v1.0.6/go.mod h1:6DAvZliBAAnD7rhVgwaM7DE5/d9NMOAJ09SqYqeK4QE=
|
||||
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
Loading…
Reference in New Issue