Skip to content

Commit 7839864

Browse files
committed
Add 'speculationrules' as mimetype for JSON, fixes #827
1 parent 5bc1aba commit 7839864

File tree

5 files changed

+103
-9
lines changed

5 files changed

+103
-9
lines changed

README.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,24 @@ m.AddFunc("image/svg+xml", svg.Minify)
381381
m.AddFuncRegexp(regexp.MustCompile("^(application|text)/(x-)?(java|ecma)script$"), js.Minify)
382382
m.AddFuncRegexp(regexp.MustCompile("[/+]json$"), json.Minify)
383383
m.AddFuncRegexp(regexp.MustCompile("[/+]xml$"), xml.Minify)
384+
385+
m.AddFunc("importmap", json.Minify)
386+
m.AddFunc("speculationrules", json.Minify)
387+
388+
aspMinifier := &html.Minifier{}
389+
aspMinifier.TemplateDelims = [2]string{"<%", "%>"}
390+
m.Add("text/asp", aspMinifier)
391+
m.Add("text/x-ejs-template", aspMinifier)
392+
393+
phpMinifier := &html.Minifier{}
394+
phpMinifier.TemplateDelims = [2]string{"<?", "?>"} // also handles <?php
395+
m.Add("application/x-httpd-php", phpMinifier)
396+
397+
tmplMinifier := &html.Minifier{}
398+
tmplMinifier.TemplateDelims = [2]string{"{{", "}}"}
399+
m.Add("text/x-go-template", tmplMinifier)
400+
m.Add("text/x-mustache-template", tmplMinifier)
401+
m.Add("text/x-handlebars-template", tmplMinifier)
384402
```
385403

386404
You can set options to several minifiers.
@@ -514,6 +532,24 @@ func main() {
514532
m.AddFuncRegexp(regexp.MustCompile("[/+]json$"), json.Minify)
515533
m.AddFuncRegexp(regexp.MustCompile("[/+]xml$"), xml.Minify)
516534

535+
m.AddFunc("importmap", json.Minify)
536+
m.AddFunc("speculationrules", json.Minify)
537+
538+
aspMinifier := &html.Minifier{}
539+
aspMinifier.TemplateDelims = [2]string{"<%", "%>"}
540+
m.Add("text/asp", aspMinifier)
541+
m.Add("text/x-ejs-template", aspMinifier)
542+
543+
phpMinifier := &html.Minifier{}
544+
phpMinifier.TemplateDelims = [2]string{"<?", "?>"} // also handles <?php
545+
m.Add("application/x-httpd-php", phpMinifier)
546+
547+
tmplMinifier := &html.Minifier{}
548+
tmplMinifier.TemplateDelims = [2]string{"{{", "}}"}
549+
m.Add("text/x-go-template", tmplMinifier)
550+
m.Add("text/x-mustache-template", tmplMinifier)
551+
m.Add("text/x-handlebars-template", tmplMinifier)
552+
517553
if err := m.Minify("text/html", os.Stdout, os.Stdin); err != nil {
518554
panic(err)
519555
}
@@ -604,6 +640,24 @@ func main() {
604640
m.AddFuncRegexp(regexp.MustCompile("[/+]json$"), json.Minify)
605641
m.AddFuncRegexp(regexp.MustCompile("[/+]xml$"), xml.Minify)
606642

643+
m.AddFunc("importmap", json.Minify)
644+
m.AddFunc("speculationrules", json.Minify)
645+
646+
aspMinifier := &html.Minifier{}
647+
aspMinifier.TemplateDelims = [2]string{"<%", "%>"}
648+
m.Add("text/asp", aspMinifier)
649+
m.Add("text/x-ejs-template", aspMinifier)
650+
651+
phpMinifier := &html.Minifier{}
652+
phpMinifier.TemplateDelims = [2]string{"<?", "?>"} // also handles <?php
653+
m.Add("application/x-httpd-php", phpMinifier)
654+
655+
tmplMinifier := &html.Minifier{}
656+
tmplMinifier.TemplateDelims = [2]string{"{{", "}}"}
657+
m.Add("text/x-go-template", tmplMinifier)
658+
m.Add("text/x-mustache-template", tmplMinifier)
659+
m.Add("text/x-handlebars-template", tmplMinifier)
660+
607661
fs := http.FileServer(http.Dir("www/"))
608662
http.Handle("/", m.MiddlewareWithError(fs))
609663
}

bindings/js/minify.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,24 @@ func minifyConfig(ckeys **C.char, cvals **C.char, length C.longlong) *C.char {
121121
m.AddRegexp(regexp.MustCompile("^(application|text)/(x-)?(java|ecma|j|live)script(1\\.[0-5])?$|^module$"), jsMinifier)
122122
m.AddRegexp(regexp.MustCompile("[/+]json$"), jsonMinifier)
123123
m.AddRegexp(regexp.MustCompile("[/+]xml$"), xmlMinifier)
124+
125+
m.Add("importmap", jsonMinifier)
126+
m.Add("speculationrules", jsonMinifier)
127+
128+
aspMinifier := *htmlMinifier
129+
aspMinifier.TemplateDelims = [2]string{"<%", "%>"}
130+
m.Add("text/asp", &aspMinifier)
131+
m.Add("text/x-ejs-template", aspMinifier)
132+
133+
phpMinifier := *htmlMinifier
134+
phpMinifier.TemplateDelims = [2]string{"<?", "?>"} // also handles <?php
135+
m.Add("application/x-httpd-php", phpMinifier)
136+
137+
tmplMinifier := *htmlMinifier
138+
tmplMinifier.TemplateDelims = [2]string{"{{", "}}"}
139+
m.Add("text/x-go-template", tmplMinifier)
140+
m.Add("text/x-mustache-template", tmplMinifier)
141+
m.Add("text/x-handlebars-template", tmplMinifier)
124142
return nil
125143
}
126144

bindings/py/minify.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,24 @@ func minifyConfig(ckeys **C.char, cvals **C.char, length C.longlong) *C.char {
121121
m.AddRegexp(regexp.MustCompile("^(application|text)/(x-)?(java|ecma|j|live)script(1\\.[0-5])?$|^module$"), jsMinifier)
122122
m.AddRegexp(regexp.MustCompile("[/+]json$"), jsonMinifier)
123123
m.AddRegexp(regexp.MustCompile("[/+]xml$"), xmlMinifier)
124+
125+
m.Add("importmap", jsonMinifier)
126+
m.Add("speculationrules", jsonMinifier)
127+
128+
aspMinifier := *htmlMinifier
129+
aspMinifier.TemplateDelims = [2]string{"<%", "%>"}
130+
m.Add("text/asp", &aspMinifier)
131+
m.Add("text/x-ejs-template", &aspMinifier)
132+
133+
phpMinifier := *htmlMinifier
134+
phpMinifier.TemplateDelims = [2]string{"<?", "?>"} // also handles <?php
135+
m.Add("application/x-httpd-php", &phpMinifier)
136+
137+
tmplMinifier := *htmlMinifier
138+
tmplMinifier.TemplateDelims = [2]string{"{{", "}}"}
139+
m.Add("text/x-go-template", &tmplMinifier)
140+
m.Add("text/x-mustache-template", &tmplMinifier)
141+
m.Add("text/x-handlebars-template", &tmplMinifier)
124142
return nil
125143
}
126144

cmd/minify/main.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -507,6 +507,7 @@ func run() int {
507507
m.AddRegexp(regexp.MustCompile("[/+]xml$"), &xmlMinifier)
508508

509509
m.Add("importmap", &jsonMinifier)
510+
m.Add("speculationrules", &jsonMinifier)
510511

511512
aspMinifier := htmlMinifier
512513
aspMinifier.TemplateDelims = [2]string{"<%", "%>"}

minify/minify.go

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,23 @@ func init() {
2424
Default.AddFuncRegexp(regexp.MustCompile("[/+]json$"), json.Minify)
2525
Default.AddFuncRegexp(regexp.MustCompile("[/+]xml$"), xml.Minify)
2626

27-
aspMinifier := html.Minifier{}
27+
Default.AddFunc("importmap", json.Minify)
28+
Default.AddFunc("speculationrules", json.Minify)
29+
30+
aspMinifier := &html.Minifier{}
2831
aspMinifier.TemplateDelims = [2]string{"<%", "%>"}
29-
Default.Add("text/asp", &aspMinifier)
30-
Default.Add("text/x-ejs-template", &aspMinifier)
32+
Default.Add("text/asp", aspMinifier)
33+
Default.Add("text/x-ejs-template", aspMinifier)
3134

32-
phpMinifier := html.Minifier{}
35+
phpMinifier := &html.Minifier{}
3336
phpMinifier.TemplateDelims = [2]string{"<?", "?>"} // also handles <?php
34-
Default.Add("application/x-httpd-php", &phpMinifier)
37+
Default.Add("application/x-httpd-php", phpMinifier)
3538

36-
tmplMinifier := html.Minifier{}
39+
tmplMinifier := &html.Minifier{}
3740
tmplMinifier.TemplateDelims = [2]string{"{{", "}}"}
38-
Default.Add("text/x-go-template", &tmplMinifier)
39-
Default.Add("text/x-mustache-template", &tmplMinifier)
40-
Default.Add("text/x-handlebars-template", &tmplMinifier)
41+
Default.Add("text/x-go-template", tmplMinifier)
42+
Default.Add("text/x-mustache-template", tmplMinifier)
43+
Default.Add("text/x-handlebars-template", tmplMinifier)
4144
}
4245

4346
// CSS string minifier using all default minifiers

0 commit comments

Comments
 (0)