Minify explorer html templates
This commit is contained in:
parent
51bb4fe109
commit
d77fb35bb5
@ -12,7 +12,9 @@ import (
|
||||
"io/ioutil"
|
||||
"math/big"
|
||||
"net/http"
|
||||
"path/filepath"
|
||||
"reflect"
|
||||
"regexp"
|
||||
"runtime"
|
||||
"runtime/debug"
|
||||
"strconv"
|
||||
@ -410,20 +412,58 @@ func (s *PublicServer) parseTemplates() []*template.Template {
|
||||
"setTxToTemplateData": setTxToTemplateData,
|
||||
"stringInSlice": stringInSlice,
|
||||
}
|
||||
t := make([]*template.Template, tplCount)
|
||||
t[errorTpl] = template.Must(template.New("error").Funcs(templateFuncMap).ParseFiles("./static/templates/error.html", "./static/templates/base.html"))
|
||||
t[errorInternalTpl] = template.Must(template.New("error").Funcs(templateFuncMap).ParseFiles("./static/templates/error.html", "./static/templates/base.html"))
|
||||
t[indexTpl] = template.Must(template.New("index").Funcs(templateFuncMap).ParseFiles("./static/templates/index.html", "./static/templates/base.html"))
|
||||
t[blocksTpl] = template.Must(template.New("blocks").Funcs(templateFuncMap).ParseFiles("./static/templates/blocks.html", "./static/templates/paging.html", "./static/templates/base.html"))
|
||||
t[sendTransactionTpl] = template.Must(template.New("block").Funcs(templateFuncMap).ParseFiles("./static/templates/sendtx.html", "./static/templates/base.html"))
|
||||
if s.chainParser.GetChainType() == bchain.ChainEthereumType {
|
||||
t[txTpl] = template.Must(template.New("tx").Funcs(templateFuncMap).ParseFiles("./static/templates/tx.html", "./static/templates/txdetail_ethereumtype.html", "./static/templates/base.html"))
|
||||
t[addressTpl] = template.Must(template.New("address").Funcs(templateFuncMap).ParseFiles("./static/templates/address.html", "./static/templates/txdetail_ethereumtype.html", "./static/templates/paging.html", "./static/templates/base.html"))
|
||||
t[blockTpl] = template.Must(template.New("block").Funcs(templateFuncMap).ParseFiles("./static/templates/block.html", "./static/templates/txdetail_ethereumtype.html", "./static/templates/paging.html", "./static/templates/base.html"))
|
||||
var createTemplate func(filenames ...string) *template.Template
|
||||
if s.debug {
|
||||
createTemplate = func(filenames ...string) *template.Template {
|
||||
if len(filenames) == 0 {
|
||||
panic("Missing templates")
|
||||
}
|
||||
return template.Must(template.New(filepath.Base(filenames[0])).Funcs(templateFuncMap).ParseFiles(filenames...))
|
||||
}
|
||||
} else {
|
||||
t[txTpl] = template.Must(template.New("tx").Funcs(templateFuncMap).ParseFiles("./static/templates/tx.html", "./static/templates/txdetail.html", "./static/templates/base.html"))
|
||||
t[addressTpl] = template.Must(template.New("address").Funcs(templateFuncMap).ParseFiles("./static/templates/address.html", "./static/templates/txdetail.html", "./static/templates/paging.html", "./static/templates/base.html"))
|
||||
t[blockTpl] = template.Must(template.New("block").Funcs(templateFuncMap).ParseFiles("./static/templates/block.html", "./static/templates/txdetail.html", "./static/templates/paging.html", "./static/templates/base.html"))
|
||||
createTemplate = func(filenames ...string) *template.Template {
|
||||
if len(filenames) == 0 {
|
||||
panic("Missing templates")
|
||||
}
|
||||
t := template.New(filepath.Base(filenames[0])).Funcs(templateFuncMap)
|
||||
for _, filename := range filenames {
|
||||
b, err := ioutil.ReadFile(filename)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
// perform very simple minification - replace leading spaces used as formatting and new lines
|
||||
r := regexp.MustCompile(`\n\s*`)
|
||||
b = r.ReplaceAll(b, []byte{})
|
||||
s := string(b)
|
||||
name := filepath.Base(filename)
|
||||
var tt *template.Template
|
||||
if name == t.Name() {
|
||||
tt = t
|
||||
} else {
|
||||
tt = t.New(name)
|
||||
}
|
||||
_, err = tt.Parse(s)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
return t
|
||||
}
|
||||
}
|
||||
t := make([]*template.Template, tplCount)
|
||||
t[errorTpl] = createTemplate("./static/templates/error.html", "./static/templates/base.html")
|
||||
t[errorInternalTpl] = createTemplate("./static/templates/error.html", "./static/templates/base.html")
|
||||
t[indexTpl] = createTemplate("./static/templates/index.html", "./static/templates/base.html")
|
||||
t[blocksTpl] = createTemplate("./static/templates/blocks.html", "./static/templates/paging.html", "./static/templates/base.html")
|
||||
t[sendTransactionTpl] = createTemplate("./static/templates/sendtx.html", "./static/templates/base.html")
|
||||
if s.chainParser.GetChainType() == bchain.ChainEthereumType {
|
||||
t[txTpl] = createTemplate("./static/templates/tx.html", "./static/templates/txdetail_ethereumtype.html", "./static/templates/base.html")
|
||||
t[addressTpl] = createTemplate("./static/templates/address.html", "./static/templates/txdetail_ethereumtype.html", "./static/templates/paging.html", "./static/templates/base.html")
|
||||
t[blockTpl] = createTemplate("./static/templates/block.html", "./static/templates/txdetail_ethereumtype.html", "./static/templates/paging.html", "./static/templates/base.html")
|
||||
} else {
|
||||
t[txTpl] = createTemplate("./static/templates/tx.html", "./static/templates/txdetail.html", "./static/templates/base.html")
|
||||
t[addressTpl] = createTemplate("./static/templates/address.html", "./static/templates/txdetail.html", "./static/templates/paging.html", "./static/templates/base.html")
|
||||
t[blockTpl] = createTemplate("./static/templates/block.html", "./static/templates/txdetail.html", "./static/templates/paging.html", "./static/templates/base.html")
|
||||
}
|
||||
return t
|
||||
}
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
{{define "specific"}}{{$cs := .CoinShortcut}}{{$addr := .Address}}{{$data := .}}
|
||||
<h1>{{if $addr.Erc20Contract}}Contract {{$addr.Erc20Contract.Name}} ({{$addr.Erc20Contract.Symbol}}){{else}}Address{{end}}
|
||||
<small class="text-muted">{{formatAmount $addr.BalanceSat}} {{$cs}}</small>
|
||||
<h1>{{if $addr.Erc20Contract}}Contract {{$addr.Erc20Contract.Name}} ({{$addr.Erc20Contract.Symbol}}){{else}}Address{{end}} <small class="text-muted">{{formatAmount $addr.BalanceSat}} {{$cs}}</small>
|
||||
</h1>
|
||||
<div class="alert alert-data ellipsis">
|
||||
<span class="data">{{$addr.AddrStr}}</span>
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
{{define "specific"}}{{$blocks := .Blocks}}{{$data := .}}
|
||||
<h1>Blocks
|
||||
<small class="text-muted">by date</small>
|
||||
<h1>Blocks <small class="text-muted">by date</small>
|
||||
</h1>
|
||||
{{if $blocks.Blocks -}}
|
||||
<nav>{{template "paging" $data }}</nav>
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
<div class="row line-bot">
|
||||
<div class="col-xs-7 col-md-8 ellipsis">
|
||||
<a href="/tx/{{$tx.Txid}}">{{$tx.Txid}}</a>
|
||||
{{if eq $tx.EthereumSpecific.Status 1}}<span class="text-success">✔</span>{{end}}{{if eq $tx.EthereumSpecific.Status 0}}<span class="text-danger">✘</span>{{end}}
|
||||
{{if eq $tx.EthereumSpecific.Status 1}}<span class="text-success"> ✔</span>{{end}}{{if eq $tx.EthereumSpecific.Status 0}}<span class="text-danger"> ✘</span>{{end}}
|
||||
</div>
|
||||
{{- if $tx.Confirmations -}}
|
||||
<div class="col-xs-5 col-md-4 text-muted text-right">mined {{formatUnixTime $tx.Blocktime}}</div>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user