[chore]: Bump github.com/tdewolff/minify/v2 from 2.12.7 to 2.12.8 (#2073)
This commit is contained in:
parent
0f812746b7
commit
517829ae6a
4
go.mod
4
go.mod
|
@ -45,7 +45,7 @@ require (
|
||||||
github.com/superseriousbusiness/activity v1.4.0-gts
|
github.com/superseriousbusiness/activity v1.4.0-gts
|
||||||
github.com/superseriousbusiness/exif-terminator v0.5.0
|
github.com/superseriousbusiness/exif-terminator v0.5.0
|
||||||
github.com/superseriousbusiness/oauth2/v4 v4.3.2-SSB.0.20230227143000-f4900831d6c8
|
github.com/superseriousbusiness/oauth2/v4 v4.3.2-SSB.0.20230227143000-f4900831d6c8
|
||||||
github.com/tdewolff/minify/v2 v2.12.7
|
github.com/tdewolff/minify/v2 v2.12.8
|
||||||
github.com/ulule/limiter/v3 v3.11.2
|
github.com/ulule/limiter/v3 v3.11.2
|
||||||
github.com/uptrace/bun v1.1.14
|
github.com/uptrace/bun v1.1.14
|
||||||
github.com/uptrace/bun/dialect/pgdialect v1.1.14
|
github.com/uptrace/bun/dialect/pgdialect v1.1.14
|
||||||
|
@ -152,7 +152,7 @@ require (
|
||||||
github.com/spf13/pflag v1.0.5 // indirect
|
github.com/spf13/pflag v1.0.5 // indirect
|
||||||
github.com/subosito/gotenv v1.4.2 // indirect
|
github.com/subosito/gotenv v1.4.2 // indirect
|
||||||
github.com/superseriousbusiness/go-jpeg-image-structure/v2 v2.0.0-20220321154430-d89a106fdabe // indirect
|
github.com/superseriousbusiness/go-jpeg-image-structure/v2 v2.0.0-20220321154430-d89a106fdabe // indirect
|
||||||
github.com/tdewolff/parse/v2 v2.6.6 // indirect
|
github.com/tdewolff/parse/v2 v2.6.7 // indirect
|
||||||
github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc // indirect
|
github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc // indirect
|
||||||
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
|
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
|
||||||
github.com/ugorji/go/codec v1.2.11 // indirect
|
github.com/ugorji/go/codec v1.2.11 // indirect
|
||||||
|
|
12
go.sum
12
go.sum
|
@ -111,7 +111,6 @@ github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyY
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||||
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
||||||
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
github.com/cheekybits/is v0.0.0-20150225183255-68e9c0620927/go.mod h1:h/aW8ynjgkuj+NQRlZcDbAbM1ORAbXjXX77sX7T289U=
|
|
||||||
github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY=
|
github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY=
|
||||||
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams=
|
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams=
|
||||||
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk=
|
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk=
|
||||||
|
@ -149,7 +148,6 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
|
||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1ei82L+c=
|
github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1ei82L+c=
|
||||||
github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4=
|
github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4=
|
||||||
github.com/djherbis/atime v1.1.0/go.mod h1:28OF6Y8s3NQWwacXc5eZTsEsiMzp7LF8MbXE+XJPdBE=
|
|
||||||
github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw=
|
github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw=
|
||||||
github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
|
github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
|
||||||
github.com/dsoprea/go-exif/v2 v2.0.0-20200321225314-640175a69fe4/go.mod h1:Lm2lMM2zx8p4a34ZemkaUV95AnMl4ZvLbCUbwOvLC2E=
|
github.com/dsoprea/go-exif/v2 v2.0.0-20200321225314-640175a69fe4/go.mod h1:Lm2lMM2zx8p4a34ZemkaUV95AnMl4ZvLbCUbwOvLC2E=
|
||||||
|
@ -438,7 +436,6 @@ github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
||||||
github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
||||||
github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
|
github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
|
||||||
github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
|
github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
|
||||||
github.com/matryer/try v0.0.0-20161228173917-9ac251b645a2/go.mod h1:0KeJpeMD6o+O4hW7qJOT7vyQPKrWmj26uf5wMc/IiIs=
|
|
||||||
github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
|
github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
|
||||||
github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
|
github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
|
||||||
github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
||||||
|
@ -564,11 +561,10 @@ github.com/superseriousbusiness/go-jpeg-image-structure/v2 v2.0.0-20220321154430
|
||||||
github.com/superseriousbusiness/go-jpeg-image-structure/v2 v2.0.0-20220321154430-d89a106fdabe/go.mod h1:gH4P6gN1V+wmIw5o97KGaa1RgXB/tVpC2UNzijhg3E4=
|
github.com/superseriousbusiness/go-jpeg-image-structure/v2 v2.0.0-20220321154430-d89a106fdabe/go.mod h1:gH4P6gN1V+wmIw5o97KGaa1RgXB/tVpC2UNzijhg3E4=
|
||||||
github.com/superseriousbusiness/oauth2/v4 v4.3.2-SSB.0.20230227143000-f4900831d6c8 h1:nTIhuP157oOFcscuoK1kCme1xTeGIzztSw70lX9NrDQ=
|
github.com/superseriousbusiness/oauth2/v4 v4.3.2-SSB.0.20230227143000-f4900831d6c8 h1:nTIhuP157oOFcscuoK1kCme1xTeGIzztSw70lX9NrDQ=
|
||||||
github.com/superseriousbusiness/oauth2/v4 v4.3.2-SSB.0.20230227143000-f4900831d6c8/go.mod h1:uYC/W92oVRJ49Vh1GcvTqpeFqHi+Ovrl2sMllQWRAEo=
|
github.com/superseriousbusiness/oauth2/v4 v4.3.2-SSB.0.20230227143000-f4900831d6c8/go.mod h1:uYC/W92oVRJ49Vh1GcvTqpeFqHi+Ovrl2sMllQWRAEo=
|
||||||
github.com/tdewolff/minify/v2 v2.12.7 h1:pBzz2tAfz5VghOXiQIsSta6srhmTeinQPjRDHWoumCA=
|
github.com/tdewolff/minify/v2 v2.12.8 h1:Q2BqOTmlMjoutkuD/OPCnJUpIqrzT3nRPkw+q+KpXS0=
|
||||||
github.com/tdewolff/minify/v2 v2.12.7/go.mod h1:ZRKTheiOGyLSK8hOZWWv+YoJAECzDivNgAlVYDHp/Ws=
|
github.com/tdewolff/minify/v2 v2.12.8/go.mod h1:YRgk7CC21LZnbuke2fmYnCTq+zhCgpb0yJACOTUNJ1E=
|
||||||
github.com/tdewolff/parse/v2 v2.6.6 h1:Yld+0CrKUJaCV78DL1G2nk3C9lKrxyRTux5aaK/AkDo=
|
github.com/tdewolff/parse/v2 v2.6.7 h1:WrFllrqmzAcrKHzoYgMupqgUBIfBVOb0yscFzDf8bBg=
|
||||||
github.com/tdewolff/parse/v2 v2.6.6/go.mod h1:woz0cgbLwFdtbjJu8PIKxhW05KplTFQkOdX78o+Jgrs=
|
github.com/tdewolff/parse/v2 v2.6.7/go.mod h1:XHDhaU6IBgsryfdnpzUXBlT6leW/l25yrFBTEb4eIyM=
|
||||||
github.com/tdewolff/test v1.0.7/go.mod h1:6DAvZliBAAnD7rhVgwaM7DE5/d9NMOAJ09SqYqeK4QE=
|
|
||||||
github.com/tdewolff/test v1.0.9 h1:SswqJCmeN4B+9gEAi/5uqT0qpi1y2/2O47V/1hhGZT0=
|
github.com/tdewolff/test v1.0.9 h1:SswqJCmeN4B+9gEAi/5uqT0qpi1y2/2O47V/1hhGZT0=
|
||||||
github.com/tdewolff/test v1.0.9/go.mod h1:6DAvZliBAAnD7rhVgwaM7DE5/d9NMOAJ09SqYqeK4QE=
|
github.com/tdewolff/test v1.0.9/go.mod h1:6DAvZliBAAnD7rhVgwaM7DE5/d9NMOAJ09SqYqeK4QE=
|
||||||
github.com/tidwall/btree v0.0.0-20191029221954-400434d76274 h1:G6Z6HvJuPjG6XfNGi/feOATzeJrfgTNJY+rGrHbA04E=
|
github.com/tidwall/btree v0.0.0-20191029221954-400434d76274 h1:G6Z6HvJuPjG6XfNGi/feOATzeJrfgTNJY+rGrHbA04E=
|
||||||
|
|
|
@ -79,7 +79,7 @@ Minifiers or bindings to minifiers exist in almost all programming languages. So
|
||||||
This minifier proves to be that fast and extensive minifier that can handle HTML and any other filetype it may contain (CSS, JS, ...). It is usually orders of magnitude faster than existing minifiers.
|
This minifier proves to be that fast and extensive minifier that can handle HTML and any other filetype it may contain (CSS, JS, ...). It is usually orders of magnitude faster than existing minifiers.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
Make sure you have [Git](https://git-scm.com/) and [Go](https://golang.org/dl/) (1.13 or higher) installed, run
|
Make sure you have [Git](https://git-scm.com/) and [Go](https://golang.org/dl/) (1.18 or higher) installed, run
|
||||||
```
|
```
|
||||||
mkdir Project
|
mkdir Project
|
||||||
cd Project
|
cd Project
|
||||||
|
|
|
@ -11,238 +11,254 @@ type Hash uint32
|
||||||
// Unique hash definitions to be used instead of strings
|
// Unique hash definitions to be used instead of strings
|
||||||
const (
|
const (
|
||||||
A Hash = 0x1 // a
|
A Hash = 0x1 // a
|
||||||
Abbr Hash = 0x37a04 // abbr
|
Abbr Hash = 0x3b804 // abbr
|
||||||
About Hash = 0x5 // about
|
About Hash = 0x5 // about
|
||||||
Accept Hash = 0x1106 // accept
|
Accept Hash = 0x1106 // accept
|
||||||
Accept_Charset Hash = 0x110e // accept-charset
|
Accept_Charset Hash = 0x110e // accept-charset
|
||||||
Action Hash = 0x23f06 // action
|
Acronym Hash = 0x4a07 // acronym
|
||||||
Address Hash = 0x5a07 // address
|
Action Hash = 0x21d06 // action
|
||||||
Align Hash = 0x32705 // align
|
Address Hash = 0x7807 // address
|
||||||
Alink Hash = 0x7005 // alink
|
Align Hash = 0x35b05 // align
|
||||||
Allowfullscreen Hash = 0x2ad0f // allowfullscreen
|
Alink Hash = 0x3a405 // alink
|
||||||
Amp_Boilerplate Hash = 0x610f // amp-boilerplate
|
Allowfullscreen Hash = 0x2e10f // allowfullscreen
|
||||||
Area Hash = 0x1e304 // area
|
Amp_Boilerplate Hash = 0x7f0f // amp-boilerplate
|
||||||
|
Applet Hash = 0xd706 // applet
|
||||||
|
Area Hash = 0x2fd04 // area
|
||||||
Article Hash = 0x2707 // article
|
Article Hash = 0x2707 // article
|
||||||
Aside Hash = 0xb405 // aside
|
Aside Hash = 0x5b05 // aside
|
||||||
Async Hash = 0xac05 // async
|
Async Hash = 0x8e05 // async
|
||||||
Audio Hash = 0xd105 // audio
|
Audio Hash = 0x9605 // audio
|
||||||
Autofocus Hash = 0xe409 // autofocus
|
Autofocus Hash = 0xcc09 // autofocus
|
||||||
Autoplay Hash = 0x10808 // autoplay
|
Autoplay Hash = 0x10c08 // autoplay
|
||||||
Axis Hash = 0x11004 // axis
|
Axis Hash = 0x11404 // axis
|
||||||
B Hash = 0x101 // b
|
B Hash = 0x101 // b
|
||||||
Background Hash = 0x300a // background
|
Background Hash = 0x300a // background
|
||||||
Base Hash = 0x19604 // base
|
Base Hash = 0x17804 // base
|
||||||
Bb Hash = 0x37b02 // bb
|
Basefont Hash = 0x17808 // basefont
|
||||||
Bdi Hash = 0x7503 // bdi
|
Bb Hash = 0x3b902 // bb
|
||||||
Bdo Hash = 0x31f03 // bdo
|
Bdi Hash = 0x18403 // bdi
|
||||||
Bgcolor Hash = 0x12607 // bgcolor
|
Bdo Hash = 0x35303 // bdo
|
||||||
Blockquote Hash = 0x13e0a // blockquote
|
Bgcolor Hash = 0x12a07 // bgcolor
|
||||||
|
Big Hash = 0x13103 // big
|
||||||
|
Blockquote Hash = 0x1340a // blockquote
|
||||||
Body Hash = 0xd04 // body
|
Body Hash = 0xd04 // body
|
||||||
Br Hash = 0x37c02 // br
|
Br Hash = 0x36102 // br
|
||||||
Button Hash = 0x14806 // button
|
Button Hash = 0x13e06 // button
|
||||||
Canvas Hash = 0xb006 // canvas
|
Canvas Hash = 0x5706 // canvas
|
||||||
Caption Hash = 0x21f07 // caption
|
Caption Hash = 0x1fe07 // caption
|
||||||
|
Center Hash = 0xb706 // center
|
||||||
Charset Hash = 0x1807 // charset
|
Charset Hash = 0x1807 // charset
|
||||||
Checked Hash = 0x1b307 // checked
|
Checked Hash = 0x19707 // checked
|
||||||
Cite Hash = 0xfb04 // cite
|
Cite Hash = 0x9204 // cite
|
||||||
Class Hash = 0x15905 // class
|
Class Hash = 0x15105 // class
|
||||||
Classid Hash = 0x15907 // classid
|
Classid Hash = 0x15107 // classid
|
||||||
Clear Hash = 0x2b05 // clear
|
Clear Hash = 0x2b05 // clear
|
||||||
Code Hash = 0x19204 // code
|
Code Hash = 0x17404 // code
|
||||||
Codebase Hash = 0x19208 // codebase
|
Codebase Hash = 0x17408 // codebase
|
||||||
Codetype Hash = 0x1a408 // codetype
|
Codetype Hash = 0x18808 // codetype
|
||||||
Col Hash = 0x12803 // col
|
Col Hash = 0x12c03 // col
|
||||||
Colgroup Hash = 0x1bb08 // colgroup
|
Colgroup Hash = 0x1af08 // colgroup
|
||||||
Color Hash = 0x12805 // color
|
Color Hash = 0x12c05 // color
|
||||||
Cols Hash = 0x1cf04 // cols
|
Cols Hash = 0x1c904 // cols
|
||||||
Colspan Hash = 0x1cf07 // colspan
|
Colspan Hash = 0x1c907 // colspan
|
||||||
Compact Hash = 0x1ec07 // compact
|
Compact Hash = 0x1d707 // compact
|
||||||
Content Hash = 0x28407 // content
|
Content Hash = 0x27b07 // content
|
||||||
Controls Hash = 0x20108 // controls
|
Controls Hash = 0x1e708 // controls
|
||||||
Data Hash = 0x1f04 // data
|
Data Hash = 0x1f04 // data
|
||||||
Datalist Hash = 0x1f08 // datalist
|
Datalist Hash = 0x1f08 // datalist
|
||||||
Datatype Hash = 0x4d08 // datatype
|
Datatype Hash = 0xac08 // datatype
|
||||||
Dd Hash = 0x5b02 // dd
|
Dd Hash = 0x7902 // dd
|
||||||
Declare Hash = 0xb707 // declare
|
Declare Hash = 0x5e07 // declare
|
||||||
Default Hash = 0x7f07 // default
|
Default Hash = 0xeb07 // default
|
||||||
DefaultChecked Hash = 0x1730e // defaultChecked
|
DefaultChecked Hash = 0x2270e // defaultChecked
|
||||||
DefaultMuted Hash = 0x7f0c // defaultMuted
|
DefaultMuted Hash = 0xeb0c // defaultMuted
|
||||||
DefaultSelected Hash = 0x8a0f // defaultSelected
|
DefaultSelected Hash = 0xf60f // defaultSelected
|
||||||
Defer Hash = 0x9805 // defer
|
Defer Hash = 0x10405 // defer
|
||||||
Del Hash = 0x10503 // del
|
Del Hash = 0x37903 // del
|
||||||
Details Hash = 0x15f07 // details
|
Details Hash = 0x15707 // details
|
||||||
Dfn Hash = 0x16c03 // dfn
|
Dfn Hash = 0x16403 // dfn
|
||||||
Dialog Hash = 0xa606 // dialog
|
Dialog Hash = 0xc606 // dialog
|
||||||
Dir Hash = 0x7603 // dir
|
Dir Hash = 0x18503 // dir
|
||||||
Disabled Hash = 0x18008 // disabled
|
Disabled Hash = 0x19d08 // disabled
|
||||||
Div Hash = 0x18703 // div
|
Div Hash = 0x1a403 // div
|
||||||
Dl Hash = 0x1b902 // dl
|
Dl Hash = 0x1e502 // dl
|
||||||
Dt Hash = 0x23102 // dt
|
Dt Hash = 0x21702 // dt
|
||||||
Em Hash = 0x4302 // em
|
Em Hash = 0x4302 // em
|
||||||
Embed Hash = 0x4905 // embed
|
Embed Hash = 0x37505 // embed
|
||||||
Enabled Hash = 0x26c07 // enabled
|
Enabled Hash = 0x26307 // enabled
|
||||||
Enctype Hash = 0x1fa07 // enctype
|
Enctype Hash = 0x2a207 // enctype
|
||||||
Face Hash = 0x5604 // face
|
Face Hash = 0xb504 // face
|
||||||
Fieldset Hash = 0x21408 // fieldset
|
Fieldset Hash = 0x1f308 // fieldset
|
||||||
Figcaption Hash = 0x21c0a // figcaption
|
Figcaption Hash = 0x1fb0a // figcaption
|
||||||
Figure Hash = 0x22606 // figure
|
Figure Hash = 0x20c06 // figure
|
||||||
Footer Hash = 0xdb06 // footer
|
Font Hash = 0x17c04 // font
|
||||||
For Hash = 0x23b03 // for
|
Footer Hash = 0xa006 // footer
|
||||||
Form Hash = 0x23b04 // form
|
For Hash = 0x21903 // for
|
||||||
Formaction Hash = 0x23b0a // formaction
|
Form Hash = 0x21904 // form
|
||||||
Formnovalidate Hash = 0x2450e // formnovalidate
|
Formaction Hash = 0x2190a // formaction
|
||||||
Frame Hash = 0x28c05 // frame
|
Formnovalidate Hash = 0x2350e // formnovalidate
|
||||||
Frameborder Hash = 0x28c0b // frameborder
|
Frame Hash = 0x14505 // frame
|
||||||
H1 Hash = 0x2e002 // h1
|
Frameborder Hash = 0x2830b // frameborder
|
||||||
H2 Hash = 0x25302 // h2
|
Frameset Hash = 0x14508 // frameset
|
||||||
H3 Hash = 0x25502 // h3
|
H1 Hash = 0x2d002 // h1
|
||||||
H4 Hash = 0x25702 // h4
|
H2 Hash = 0x24302 // h2
|
||||||
H5 Hash = 0x25902 // h5
|
H3 Hash = 0x24502 // h3
|
||||||
H6 Hash = 0x25b02 // h6
|
H4 Hash = 0x24702 // h4
|
||||||
Head Hash = 0x2d204 // head
|
H5 Hash = 0x24902 // h5
|
||||||
Header Hash = 0x2d206 // header
|
H6 Hash = 0x24b02 // h6
|
||||||
Hgroup Hash = 0x25d06 // hgroup
|
Head Hash = 0x2c204 // head
|
||||||
Hidden Hash = 0x26806 // hidden
|
Header Hash = 0x2c206 // header
|
||||||
Hr Hash = 0x32d02 // hr
|
Hgroup Hash = 0x24d06 // hgroup
|
||||||
Href Hash = 0x32d04 // href
|
Hidden Hash = 0x25f06 // hidden
|
||||||
Hreflang Hash = 0x32d08 // hreflang
|
Hr Hash = 0x16802 // hr
|
||||||
Html Hash = 0x27304 // html
|
Href Hash = 0x16804 // href
|
||||||
Http_Equiv Hash = 0x2770a // http-equiv
|
Hreflang Hash = 0x16808 // hreflang
|
||||||
|
Html Hash = 0x26a04 // html
|
||||||
|
Http_Equiv Hash = 0x26e0a // http-equiv
|
||||||
I Hash = 0x2401 // i
|
I Hash = 0x2401 // i
|
||||||
Icon Hash = 0x28304 // icon
|
Icon Hash = 0x27a04 // icon
|
||||||
Id Hash = 0xb602 // id
|
Id Hash = 0x5d02 // id
|
||||||
Iframe Hash = 0x28b06 // iframe
|
Iframe Hash = 0x28206 // iframe
|
||||||
Img Hash = 0x29703 // img
|
Image Hash = 0x28e05 // image
|
||||||
Inert Hash = 0xf605 // inert
|
Img Hash = 0x29303 // img
|
||||||
Inlist Hash = 0x29a06 // inlist
|
Inert Hash = 0x5205 // inert
|
||||||
Input Hash = 0x2a405 // input
|
Inlist Hash = 0x29606 // inlist
|
||||||
Ins Hash = 0x2a903 // ins
|
Input Hash = 0x2a905 // input
|
||||||
Ismap Hash = 0x11205 // ismap
|
Ins Hash = 0x2ae03 // ins
|
||||||
Itemscope Hash = 0xfc09 // itemscope
|
Ismap Hash = 0x11605 // ismap
|
||||||
Kbd Hash = 0x7403 // kbd
|
Itemscope Hash = 0xe209 // itemscope
|
||||||
Keygen Hash = 0x1f606 // keygen
|
Kbd Hash = 0x18303 // kbd
|
||||||
Label Hash = 0xbe05 // label
|
Keygen Hash = 0x29e06 // keygen
|
||||||
Lang Hash = 0x33104 // lang
|
Label Hash = 0x6505 // label
|
||||||
Language Hash = 0x33108 // language
|
Lang Hash = 0x16c04 // lang
|
||||||
Legend Hash = 0x2c506 // legend
|
Language Hash = 0x16c08 // language
|
||||||
|
Legend Hash = 0x31706 // legend
|
||||||
Li Hash = 0x2302 // li
|
Li Hash = 0x2302 // li
|
||||||
Link Hash = 0x7104 // link
|
Link Hash = 0x3a504 // link
|
||||||
Longdesc Hash = 0xc208 // longdesc
|
Longdesc Hash = 0x6908 // longdesc
|
||||||
Main Hash = 0xf404 // main
|
Main Hash = 0x5004 // main
|
||||||
Manifest Hash = 0x2bc08 // manifest
|
Manifest Hash = 0x11e08 // manifest
|
||||||
Map Hash = 0xee03 // map
|
Map Hash = 0xd603 // map
|
||||||
Mark Hash = 0x2cb04 // mark
|
Mark Hash = 0x2b404 // mark
|
||||||
Math Hash = 0x2cf04 // math
|
Marquee Hash = 0x2b807 // marquee
|
||||||
Max Hash = 0x2d803 // max
|
Math Hash = 0x2bf04 // math
|
||||||
Maxlength Hash = 0x2d809 // maxlength
|
Max Hash = 0x2c803 // max
|
||||||
Media Hash = 0xa405 // media
|
Maxlength Hash = 0x2c809 // maxlength
|
||||||
Menu Hash = 0x12204 // menu
|
Media Hash = 0xc405 // media
|
||||||
Meta Hash = 0x2e204 // meta
|
Menu Hash = 0xde04 // menu
|
||||||
Meter Hash = 0x2f705 // meter
|
Menuitem Hash = 0xde08 // menuitem
|
||||||
Method Hash = 0x2fc06 // method
|
Meta Hash = 0x2d204 // meta
|
||||||
Multiple Hash = 0x30208 // multiple
|
Meter Hash = 0x30605 // meter
|
||||||
Muted Hash = 0x30a05 // muted
|
Method Hash = 0x30b06 // method
|
||||||
Name Hash = 0xa204 // name
|
Multiple Hash = 0x31108 // multiple
|
||||||
Nav Hash = 0x32403 // nav
|
Muted Hash = 0x31d05 // muted
|
||||||
Nohref Hash = 0x32b06 // nohref
|
Name Hash = 0xc204 // name
|
||||||
Noresize Hash = 0x13608 // noresize
|
Nav Hash = 0x35803 // nav
|
||||||
Noscript Hash = 0x14d08 // noscript
|
Nobr Hash = 0x35f04 // nobr
|
||||||
Noshade Hash = 0x16e07 // noshade
|
Noembed Hash = 0x37307 // noembed
|
||||||
Novalidate Hash = 0x2490a // novalidate
|
Noframes Hash = 0x14308 // noframes
|
||||||
Nowrap Hash = 0x1d506 // nowrap
|
Nohref Hash = 0x16606 // nohref
|
||||||
Object Hash = 0xd506 // object
|
Noresize Hash = 0x1cf08 // noresize
|
||||||
Ol Hash = 0xcb02 // ol
|
Noscript Hash = 0x20408 // noscript
|
||||||
Open Hash = 0x32104 // open
|
Noshade Hash = 0x22207 // noshade
|
||||||
Optgroup Hash = 0x35608 // optgroup
|
Novalidate Hash = 0x2390a // novalidate
|
||||||
Option Hash = 0x30f06 // option
|
Nowrap Hash = 0x2ef06 // nowrap
|
||||||
|
Object Hash = 0x9a06 // object
|
||||||
|
Ol Hash = 0x7202 // ol
|
||||||
|
Open Hash = 0x35504 // open
|
||||||
|
Optgroup Hash = 0x39908 // optgroup
|
||||||
|
Option Hash = 0x32206 // option
|
||||||
Output Hash = 0x206 // output
|
Output Hash = 0x206 // output
|
||||||
P Hash = 0x501 // p
|
P Hash = 0x501 // p
|
||||||
Param Hash = 0xf005 // param
|
Param Hash = 0x11a05 // param
|
||||||
Pauseonexit Hash = 0x1160b // pauseonexit
|
Pauseonexit Hash = 0x1b60b // pauseonexit
|
||||||
Picture Hash = 0x1c207 // picture
|
Picture Hash = 0x25207 // picture
|
||||||
Plaintext Hash = 0x1da09 // plaintext
|
Plaintext Hash = 0x2f409 // plaintext
|
||||||
Poster Hash = 0x26206 // poster
|
Portal Hash = 0x3a006 // portal
|
||||||
Pre Hash = 0x35d03 // pre
|
Poster Hash = 0x38c06 // poster
|
||||||
Prefix Hash = 0x35d06 // prefix
|
Pre Hash = 0x38503 // pre
|
||||||
Profile Hash = 0x36407 // profile
|
Prefix Hash = 0x38506 // prefix
|
||||||
Progress Hash = 0x34208 // progress
|
Profile Hash = 0x32807 // profile
|
||||||
Property Hash = 0x31508 // property
|
Progress Hash = 0x32f08 // progress
|
||||||
Q Hash = 0x14301 // q
|
Property Hash = 0x33e08 // property
|
||||||
|
Q Hash = 0x13901 // q
|
||||||
Rb Hash = 0x2f02 // rb
|
Rb Hash = 0x2f02 // rb
|
||||||
Readonly Hash = 0x1e408 // readonly
|
Readonly Hash = 0x2fe08 // readonly
|
||||||
Rel Hash = 0xbc03 // rel
|
Rel Hash = 0x6303 // rel
|
||||||
Required Hash = 0x22a08 // required
|
Required Hash = 0x21008 // required
|
||||||
Resource Hash = 0x1c708 // resource
|
Resource Hash = 0x25708 // resource
|
||||||
Rev Hash = 0x7803 // rev
|
Rev Hash = 0xa503 // rev
|
||||||
Reversed Hash = 0x7808 // reversed
|
Reversed Hash = 0xa508 // reversed
|
||||||
Rows Hash = 0x9c04 // rows
|
Rows Hash = 0xbc04 // rows
|
||||||
Rowspan Hash = 0x9c07 // rowspan
|
Rowspan Hash = 0xbc07 // rowspan
|
||||||
Rp Hash = 0x6a02 // rp
|
Rp Hash = 0x8802 // rp
|
||||||
Rt Hash = 0x2802 // rt
|
Rt Hash = 0x2802 // rt
|
||||||
Rtc Hash = 0xf903 // rtc
|
Rtc Hash = 0x5503 // rtc
|
||||||
Ruby Hash = 0xe004 // ruby
|
Ruby Hash = 0x10804 // ruby
|
||||||
Rules Hash = 0x12c05 // rules
|
Rules Hash = 0x36205 // rules
|
||||||
S Hash = 0x1c01 // s
|
S Hash = 0x1c01 // s
|
||||||
Samp Hash = 0x6004 // samp
|
Samp Hash = 0x7e04 // samp
|
||||||
Scope Hash = 0x10005 // scope
|
Scope Hash = 0xe605 // scope
|
||||||
Scoped Hash = 0x10006 // scoped
|
Scoped Hash = 0xe606 // scoped
|
||||||
Script Hash = 0x14f06 // script
|
Script Hash = 0x20606 // script
|
||||||
Scrolling Hash = 0xc809 // scrolling
|
Scrolling Hash = 0x6f09 // scrolling
|
||||||
Seamless Hash = 0x19808 // seamless
|
Seamless Hash = 0x36608 // seamless
|
||||||
Section Hash = 0x13007 // section
|
Section Hash = 0x36d07 // section
|
||||||
Select Hash = 0x16506 // select
|
Select Hash = 0x15d06 // select
|
||||||
Selected Hash = 0x16508 // selected
|
Selected Hash = 0x15d08 // selected
|
||||||
Shape Hash = 0x19f05 // shape
|
Shape Hash = 0x1ee05 // shape
|
||||||
Size Hash = 0x13a04 // size
|
Size Hash = 0x1d304 // size
|
||||||
Slot Hash = 0x20804 // slot
|
Slot Hash = 0x2b004 // slot
|
||||||
Small Hash = 0x2ab05 // small
|
Small Hash = 0x2df05 // small
|
||||||
Sortable Hash = 0x2ef08 // sortable
|
Sortable Hash = 0x33608 // sortable
|
||||||
Source Hash = 0x1c906 // source
|
Source Hash = 0x25906 // source
|
||||||
Span Hash = 0x9f04 // span
|
Span Hash = 0xbf04 // span
|
||||||
Src Hash = 0x34903 // src
|
Src Hash = 0x34603 // src
|
||||||
Srcset Hash = 0x34906 // srcset
|
Srcset Hash = 0x34606 // srcset
|
||||||
Start Hash = 0x2505 // start
|
Start Hash = 0x2505 // start
|
||||||
Strong Hash = 0x29e06 // strong
|
Strike Hash = 0x29a06 // strike
|
||||||
Style Hash = 0x2c205 // style
|
Strong Hash = 0x12406 // strong
|
||||||
Sub Hash = 0x31d03 // sub
|
Style Hash = 0x34c05 // style
|
||||||
Summary Hash = 0x33907 // summary
|
Sub Hash = 0x35103 // sub
|
||||||
Sup Hash = 0x34003 // sup
|
Summary Hash = 0x37c07 // summary
|
||||||
Svg Hash = 0x34f03 // svg
|
Sup Hash = 0x38303 // sup
|
||||||
Tabindex Hash = 0x2e408 // tabindex
|
Svg Hash = 0x39203 // svg
|
||||||
Table Hash = 0x2f205 // table
|
Tabindex Hash = 0x2d408 // tabindex
|
||||||
|
Table Hash = 0x33905 // table
|
||||||
Target Hash = 0x706 // target
|
Target Hash = 0x706 // target
|
||||||
Tbody Hash = 0xc05 // tbody
|
Tbody Hash = 0xc05 // tbody
|
||||||
Td Hash = 0x1e02 // td
|
Td Hash = 0x1e02 // td
|
||||||
Template Hash = 0x4208 // template
|
Template Hash = 0x4208 // template
|
||||||
Text Hash = 0x1df04 // text
|
Text Hash = 0x2f904 // text
|
||||||
Textarea Hash = 0x1df08 // textarea
|
Textarea Hash = 0x2f908 // textarea
|
||||||
Tfoot Hash = 0xda05 // tfoot
|
Tfoot Hash = 0x9f05 // tfoot
|
||||||
Th Hash = 0x2d102 // th
|
Th Hash = 0x2c102 // th
|
||||||
Thead Hash = 0x2d105 // thead
|
Thead Hash = 0x2c105 // thead
|
||||||
Time Hash = 0x12004 // time
|
Time Hash = 0xdc04 // time
|
||||||
Title Hash = 0x15405 // title
|
Title Hash = 0x14c05 // title
|
||||||
Tr Hash = 0x1f202 // tr
|
Tr Hash = 0x12502 // tr
|
||||||
Track Hash = 0x1f205 // track
|
Track Hash = 0x17f05 // track
|
||||||
Translate Hash = 0x20b09 // translate
|
Translate Hash = 0x1c009 // translate
|
||||||
Truespeed Hash = 0x23209 // truespeed
|
Truespeed Hash = 0x1dd09 // truespeed
|
||||||
Type Hash = 0x5104 // type
|
Tt Hash = 0x14002 // tt
|
||||||
Typemustmatch Hash = 0x1a80d // typemustmatch
|
Type Hash = 0xb004 // type
|
||||||
Typeof Hash = 0x5106 // typeof
|
Typemustmatch Hash = 0x18c0d // typemustmatch
|
||||||
|
Typeof Hash = 0xb006 // typeof
|
||||||
U Hash = 0x301 // u
|
U Hash = 0x301 // u
|
||||||
Ul Hash = 0x8302 // ul
|
Ul Hash = 0xef02 // ul
|
||||||
Undeterminate Hash = 0x370d // undeterminate
|
Undeterminate Hash = 0x370d // undeterminate
|
||||||
Usemap Hash = 0xeb06 // usemap
|
Usemap Hash = 0xd306 // usemap
|
||||||
Valign Hash = 0x32606 // valign
|
Valign Hash = 0x35a06 // valign
|
||||||
Value Hash = 0x18905 // value
|
Value Hash = 0x1a605 // value
|
||||||
Valuetype Hash = 0x18909 // valuetype
|
Valuetype Hash = 0x1a609 // valuetype
|
||||||
Var Hash = 0x28003 // var
|
Var Hash = 0x27703 // var
|
||||||
Video Hash = 0x35205 // video
|
Video Hash = 0x39505 // video
|
||||||
Visible Hash = 0x36b07 // visible
|
Visible Hash = 0x3a907 // visible
|
||||||
Vlink Hash = 0x37205 // vlink
|
Vlink Hash = 0x3b005 // vlink
|
||||||
Vocab Hash = 0x37705 // vocab
|
Vocab Hash = 0x3b505 // vocab
|
||||||
Wbr Hash = 0x37e03 // wbr
|
Wbr Hash = 0x3bc03 // wbr
|
||||||
Xmlns Hash = 0x2eb05 // xmlns
|
Xmlns Hash = 0x2db05 // xmlns
|
||||||
Xmp Hash = 0x36203 // xmp
|
Xmp Hash = 0x38a03 // xmp
|
||||||
)
|
)
|
||||||
|
|
||||||
// String returns the hash' name.
|
// String returns the hash' name.
|
||||||
|
@ -288,256 +304,273 @@ NEXT:
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
const _Hash_hash0 = 0x9acb0442
|
const _Hash_hash0 = 0x67ac9bb5
|
||||||
const _Hash_maxLen = 15
|
const _Hash_maxLen = 15
|
||||||
const _Hash_text = "aboutputargetbodyaccept-charsetdatalistarticlearbackgroundet" +
|
const _Hash_text = "aboutputargetbodyaccept-charsetdatalistarticlearbackgroundet" +
|
||||||
"erminatemplatembedatatypeofaceaddressamp-boilerplatealinkbdi" +
|
"erminatemplateacronymainertcanvasideclarelabelongdescrolling" +
|
||||||
"reversedefaultMutedefaultSelectedeferowspanamedialogasyncanv" +
|
"addressamp-boilerplateasynciteaudiobjectfootereversedatatype" +
|
||||||
"asideclarelabelongdescrollingaudiobjectfooterubyautofocusema" +
|
"ofacenterowspanamedialogautofocusemappletimenuitemscopedefau" +
|
||||||
"paramainertcitemscopedelautoplayaxismapauseonexitimenubgcolo" +
|
"ltMutedefaultSelectedeferubyautoplayaxismaparamanifestrongbg" +
|
||||||
"rulesectionoresizeblockquotebuttonoscriptitleclassidetailsel" +
|
"colorbigblockquotebuttonoframesetitleclassidetailselectedfno" +
|
||||||
"ectedfnoshadefaultCheckedisabledivaluetypecodebaseamlesshape" +
|
"hreflanguagecodebasefontrackbdircodetypemustmatcheckedisable" +
|
||||||
"codetypemustmatcheckedlcolgroupicturesourcecolspanowraplaint" +
|
"divaluetypecolgroupauseonexitranslatecolspanoresizecompactru" +
|
||||||
"extareadonlycompactrackeygenctypecontrolslotranslatefieldset" +
|
"espeedlcontrolshapefieldsetfigcaptionoscriptfigurequiredtfor" +
|
||||||
"figcaptionfigurequiredtruespeedformactionformnovalidateh2h3h" +
|
"mactionoshadefaultCheckedformnovalidateh2h3h4h5h6hgroupictur" +
|
||||||
"4h5h6hgrouposterhiddenabledhtmlhttp-equivaricontentiframebor" +
|
"esourcehiddenabledhtmlhttp-equivaricontentiframeborderimagei" +
|
||||||
"derimginlistronginputinsmallowfullscreenmanifestylegendmarkm" +
|
"mginlistrikeygenctypeinputinslotmarkmarqueematheadermaxlengt" +
|
||||||
"atheadermaxlength1metabindexmlnsortablemetermethodmultiplemu" +
|
"h1metabindexmlnsmallowfullscreenowraplaintextareadonlymeterm" +
|
||||||
"tedoptionpropertysubdopenavalignohreflanguagesummarysuprogre" +
|
"ethodmultiplegendmutedoptionprofileprogressortablepropertysr" +
|
||||||
"ssrcsetsvgvideoptgrouprefixmprofilevisiblevlinkvocabbrwbr"
|
"csetstylesubdopenavalignobruleseamlessectionoembedelsummarys" +
|
||||||
|
"uprefixmpostersvgvideoptgrouportalinkvisiblevlinkvocabbrwbr"
|
||||||
|
|
||||||
var _Hash_table = [1 << 9]Hash{
|
var _Hash_table = [1 << 9]Hash{
|
||||||
0x0: 0x1df08, // textarea
|
0x1: 0x13e06, // button
|
||||||
0x4: 0x32d02, // hr
|
0x3: 0x2a207, // enctype
|
||||||
0x8: 0x1c207, // picture
|
0x4: 0x32206, // option
|
||||||
0xb: 0x18905, // value
|
0x5: 0x1fb0a, // figcaption
|
||||||
0xf: 0x2e408, // tabindex
|
0x7: 0x2ae03, // ins
|
||||||
0x12: 0x15905, // class
|
0x9: 0x9605, // audio
|
||||||
0x15: 0x37e03, // wbr
|
0xb: 0x2830b, // frameborder
|
||||||
0x18: 0x1a80d, // typemustmatch
|
0xd: 0x2190a, // formaction
|
||||||
0x1a: 0x1b902, // dl
|
0xe: 0x5, // about
|
||||||
0x1d: 0xf903, // rtc
|
0xf: 0x34606, // srcset
|
||||||
0x1e: 0x25702, // h4
|
0x10: 0x1dd09, // truespeed
|
||||||
0x22: 0x2ef08, // sortable
|
0x11: 0xeb0c, // defaultMuted
|
||||||
0x24: 0x4208, // template
|
0x13: 0xa006, // footer
|
||||||
0x25: 0x28c0b, // frameborder
|
0x15: 0x19d08, // disabled
|
||||||
0x28: 0x37a04, // abbr
|
0x16: 0x26e0a, // http-equiv
|
||||||
0x29: 0x28b06, // iframe
|
0x19: 0x3a504, // link
|
||||||
0x2a: 0x610f, // amp-boilerplate
|
0x1a: 0x29606, // inlist
|
||||||
0x2c: 0x1e408, // readonly
|
0x1d: 0x10804, // ruby
|
||||||
0x30: 0x23f06, // action
|
0x21: 0x2a905, // input
|
||||||
0x33: 0x28c05, // frame
|
0x22: 0x35803, // nav
|
||||||
0x35: 0x12c05, // rules
|
0x25: 0x7902, // dd
|
||||||
0x36: 0x30208, // multiple
|
0x26: 0x2350e, // formnovalidate
|
||||||
0x38: 0x31f03, // bdo
|
0x28: 0x16804, // href
|
||||||
0x39: 0x1d506, // nowrap
|
0x29: 0x24702, // h4
|
||||||
0x3e: 0x21408, // fieldset
|
0x2b: 0x10405, // defer
|
||||||
0x3f: 0x7503, // bdi
|
0x2d: 0x1f308, // fieldset
|
||||||
0x46: 0x7f0c, // defaultMuted
|
0x2e: 0xeb07, // default
|
||||||
0x49: 0x35205, // video
|
0x34: 0x2fd04, // area
|
||||||
0x4c: 0x19808, // seamless
|
0x36: 0xb006, // typeof
|
||||||
0x4d: 0x13608, // noresize
|
0x37: 0x37307, // noembed
|
||||||
0x4f: 0xb602, // id
|
0x38: 0x5e07, // declare
|
||||||
0x51: 0x25d06, // hgroup
|
0x3a: 0x4a07, // acronym
|
||||||
0x52: 0x23102, // dt
|
0x3b: 0xc05, // tbody
|
||||||
0x55: 0x12805, // color
|
0x3e: 0x15107, // classid
|
||||||
0x56: 0x34003, // sup
|
0x41: 0x9a06, // object
|
||||||
0x59: 0x370d, // undeterminate
|
0x43: 0x16403, // dfn
|
||||||
0x5a: 0x35608, // optgroup
|
0x44: 0xef02, // ul
|
||||||
0x5b: 0x2d206, // header
|
0x45: 0x16c04, // lang
|
||||||
0x5c: 0xb405, // aside
|
0x47: 0x16606, // nohref
|
||||||
0x5f: 0x10005, // scope
|
0x49: 0x2c803, // max
|
||||||
0x60: 0x101, // b
|
0x4a: 0x6505, // label
|
||||||
0x61: 0xcb02, // ol
|
0x4c: 0x1d304, // size
|
||||||
0x64: 0x32b06, // nohref
|
0x4d: 0xe606, // scoped
|
||||||
0x65: 0x1da09, // plaintext
|
0x4f: 0x15105, // class
|
||||||
0x66: 0x20804, // slot
|
0x50: 0x11404, // axis
|
||||||
0x67: 0x11004, // axis
|
0x54: 0xbf04, // span
|
||||||
0x68: 0x12803, // col
|
0x56: 0x19707, // checked
|
||||||
0x69: 0x32606, // valign
|
0x59: 0x38506, // prefix
|
||||||
0x6c: 0x2d105, // thead
|
0x5b: 0x4208, // template
|
||||||
0x70: 0x34906, // srcset
|
0x5c: 0x370d, // undeterminate
|
||||||
0x71: 0x26806, // hidden
|
0x5d: 0xc606, // dialog
|
||||||
0x76: 0x1bb08, // colgroup
|
0x5e: 0x6908, // longdesc
|
||||||
0x78: 0x34f03, // svg
|
0x60: 0x21903, // for
|
||||||
0x7b: 0x2cb04, // mark
|
0x61: 0x2c102, // th
|
||||||
0x7e: 0x33104, // lang
|
0x64: 0x15d08, // selected
|
||||||
0x81: 0x1cf04, // cols
|
0x65: 0x35103, // sub
|
||||||
0x86: 0x5a07, // address
|
0x6a: 0xd306, // usemap
|
||||||
0x8b: 0xf404, // main
|
0x6e: 0x24d06, // hgroup
|
||||||
0x8c: 0x4302, // em
|
0x6f: 0x38303, // sup
|
||||||
0x8f: 0x32d08, // hreflang
|
0x70: 0x2b404, // mark
|
||||||
0x93: 0x1b307, // checked
|
0x71: 0x28206, // iframe
|
||||||
0x94: 0x25902, // h5
|
0x72: 0x30605, // meter
|
||||||
0x95: 0x301, // u
|
0x74: 0x21008, // required
|
||||||
0x96: 0x32705, // align
|
0x75: 0x1f04, // data
|
||||||
0x97: 0x14301, // q
|
0x78: 0x14308, // noframes
|
||||||
0x99: 0xd506, // object
|
0x83: 0x7807, // address
|
||||||
0x9b: 0x28407, // content
|
0x88: 0x10c08, // autoplay
|
||||||
0x9d: 0xc809, // scrolling
|
0x8a: 0x28e05, // image
|
||||||
0x9f: 0x36407, // profile
|
0x8b: 0x16c08, // language
|
||||||
0xa0: 0x34903, // src
|
0x8e: 0x2f904, // text
|
||||||
0xa1: 0xda05, // tfoot
|
0x8f: 0x16802, // hr
|
||||||
0xa3: 0x2f705, // meter
|
0x90: 0x5d02, // id
|
||||||
0xa4: 0x37705, // vocab
|
0x92: 0x31108, // multiple
|
||||||
0xa6: 0xd04, // body
|
0x94: 0x16808, // hreflang
|
||||||
0xa8: 0x19204, // code
|
0x95: 0x2db05, // xmlns
|
||||||
0xac: 0x20108, // controls
|
0x96: 0x24902, // h5
|
||||||
0xb0: 0x2ab05, // small
|
0x98: 0x25207, // picture
|
||||||
0xb1: 0x18008, // disabled
|
0x99: 0x1106, // accept
|
||||||
0xb5: 0x5604, // face
|
0x9a: 0x1a609, // valuetype
|
||||||
0xb6: 0x501, // p
|
0x9b: 0x3a006, // portal
|
||||||
0xb9: 0x2302, // li
|
0x9d: 0xac08, // datatype
|
||||||
0xbb: 0xe409, // autofocus
|
0x9e: 0x18403, // bdi
|
||||||
0xbf: 0x27304, // html
|
0xa0: 0x27a04, // icon
|
||||||
0xc2: 0x4d08, // datatype
|
0xa2: 0xa503, // rev
|
||||||
0xc6: 0x35d06, // prefix
|
0xa5: 0x25708, // resource
|
||||||
0xcb: 0x35d03, // pre
|
0xa8: 0x35504, // open
|
||||||
0xcc: 0x1106, // accept
|
0xac: 0x4302, // em
|
||||||
0xd1: 0x23b03, // for
|
0xae: 0x1340a, // blockquote
|
||||||
0xd5: 0x29e06, // strong
|
0xb0: 0x2f409, // plaintext
|
||||||
0xd6: 0x9c07, // rowspan
|
0xb1: 0x2d204, // meta
|
||||||
0xd7: 0x25502, // h3
|
0xb2: 0x1c01, // s
|
||||||
0xd8: 0x2cf04, // math
|
0xb4: 0xdc04, // time
|
||||||
0xde: 0x16e07, // noshade
|
0xb5: 0x1fe07, // caption
|
||||||
0xdf: 0x19f05, // shape
|
0xb8: 0x33e08, // property
|
||||||
0xe1: 0x10006, // scoped
|
0xb9: 0x1, // a
|
||||||
0xe3: 0x706, // target
|
0xbb: 0x2b807, // marquee
|
||||||
0xe6: 0x21c0a, // figcaption
|
0xbc: 0x3b505, // vocab
|
||||||
0xe9: 0x1df04, // text
|
0xbd: 0x1e502, // dl
|
||||||
0xea: 0x1c708, // resource
|
0xbf: 0xbc07, // rowspan
|
||||||
0xec: 0xee03, // map
|
0xc4: 0x18503, // dir
|
||||||
0xf0: 0x29a06, // inlist
|
0xc5: 0x39908, // optgroup
|
||||||
0xf1: 0x16506, // select
|
0xcc: 0x38c06, // poster
|
||||||
0xf2: 0x1f606, // keygen
|
0xcd: 0x24502, // h3
|
||||||
0xf3: 0x5106, // typeof
|
0xce: 0x3b804, // abbr
|
||||||
0xf6: 0xb006, // canvas
|
0xd1: 0x17408, // codebase
|
||||||
0xf7: 0x30f06, // option
|
0xd2: 0x27b07, // content
|
||||||
0xf8: 0xbe05, // label
|
0xd4: 0x7e04, // samp
|
||||||
0xf9: 0xbc03, // rel
|
0xd6: 0xc204, // name
|
||||||
0xfb: 0x1f04, // data
|
0xd9: 0x14c05, // title
|
||||||
0xfd: 0x6004, // samp
|
0xda: 0x1a605, // value
|
||||||
0x100: 0x110e, // accept-charset
|
0xdd: 0xb004, // type
|
||||||
0x101: 0xeb06, // usemap
|
0xde: 0x35f04, // nobr
|
||||||
0x103: 0x2bc08, // manifest
|
0xe0: 0x17c04, // font
|
||||||
0x109: 0xa204, // name
|
0xe1: 0xd603, // map
|
||||||
0x10a: 0x14806, // button
|
0xe2: 0x2d002, // h1
|
||||||
0x10b: 0x2b05, // clear
|
0xe3: 0x22207, // noshade
|
||||||
0x10e: 0x33907, // summary
|
0xe4: 0x6303, // rel
|
||||||
0x10f: 0x2e204, // meta
|
0xe5: 0x14002, // tt
|
||||||
0x110: 0x33108, // language
|
0xe7: 0xde04, // menu
|
||||||
0x112: 0x300a, // background
|
0xeb: 0x2f908, // textarea
|
||||||
0x113: 0x2707, // article
|
0xee: 0x35b05, // align
|
||||||
0x116: 0x23b0a, // formaction
|
0xf1: 0x29303, // img
|
||||||
0x119: 0x1, // a
|
0xf2: 0x35a06, // valign
|
||||||
0x11b: 0x5, // about
|
0xf3: 0x2c204, // head
|
||||||
0x11c: 0xfc09, // itemscope
|
0xf4: 0x12a07, // bgcolor
|
||||||
0x11e: 0x14d08, // noscript
|
0xf5: 0x5004, // main
|
||||||
0x11f: 0x15907, // classid
|
0xf6: 0x2302, // li
|
||||||
0x120: 0x36203, // xmp
|
0xf7: 0x5205, // inert
|
||||||
0x121: 0x19604, // base
|
0xfa: 0x5706, // canvas
|
||||||
0x123: 0x1c01, // s
|
0xfb: 0xe605, // scope
|
||||||
0x124: 0x36b07, // visible
|
0xfc: 0x15d06, // select
|
||||||
0x126: 0x37b02, // bb
|
0x100: 0xa508, // reversed
|
||||||
0x127: 0x9c04, // rows
|
0x101: 0x20408, // noscript
|
||||||
0x12d: 0x2450e, // formnovalidate
|
0x102: 0x37c07, // summary
|
||||||
0x131: 0x1f205, // track
|
0x103: 0x24b02, // h6
|
||||||
0x135: 0x18703, // div
|
0x106: 0x17404, // code
|
||||||
0x136: 0xac05, // async
|
0x107: 0x14508, // frameset
|
||||||
0x137: 0x31508, // property
|
0x10a: 0x12406, // strong
|
||||||
0x13a: 0x16c03, // dfn
|
0x10d: 0x300a, // background
|
||||||
0x13e: 0xf605, // inert
|
0x10e: 0x18303, // kbd
|
||||||
0x142: 0x10503, // del
|
0x114: 0x31706, // legend
|
||||||
0x144: 0x25302, // h2
|
0x116: 0x32f08, // progress
|
||||||
0x147: 0x2c205, // style
|
0x118: 0x2d408, // tabindex
|
||||||
0x149: 0x29703, // img
|
0x119: 0x34603, // src
|
||||||
0x14a: 0xc05, // tbody
|
0x11c: 0x39505, // video
|
||||||
0x14b: 0x7603, // dir
|
0x11f: 0x29a06, // strike
|
||||||
0x14c: 0x2eb05, // xmlns
|
0x121: 0xd706, // applet
|
||||||
0x14e: 0x1f08, // datalist
|
0x123: 0x2802, // rt
|
||||||
0x14f: 0x32d04, // href
|
0x125: 0x20606, // script
|
||||||
0x150: 0x1f202, // tr
|
0x128: 0xbc04, // rows
|
||||||
0x151: 0x13e0a, // blockquote
|
0x129: 0x2707, // article
|
||||||
0x152: 0x18909, // valuetype
|
0x12e: 0x9204, // cite
|
||||||
0x155: 0xdb06, // footer
|
0x131: 0x18c0d, // typemustmatch
|
||||||
0x157: 0x14f06, // script
|
0x133: 0x17f05, // track
|
||||||
0x158: 0x1cf07, // colspan
|
0x135: 0x3b902, // bb
|
||||||
0x15d: 0x1730e, // defaultChecked
|
0x136: 0x1ee05, // shape
|
||||||
0x15f: 0x2490a, // novalidate
|
0x137: 0x5b05, // aside
|
||||||
0x164: 0x1a408, // codetype
|
0x138: 0x1b60b, // pauseonexit
|
||||||
0x165: 0x2c506, // legend
|
0x13c: 0x38503, // pre
|
||||||
0x16b: 0x1160b, // pauseonexit
|
0x140: 0x301, // u
|
||||||
0x16c: 0x21f07, // caption
|
0x149: 0x1a403, // div
|
||||||
0x16f: 0x26c07, // enabled
|
0x14c: 0x3a405, // alink
|
||||||
0x173: 0x26206, // poster
|
0x14e: 0x27703, // var
|
||||||
0x175: 0x30a05, // muted
|
0x14f: 0x21d06, // action
|
||||||
0x176: 0x11205, // ismap
|
0x152: 0x2b05, // clear
|
||||||
0x178: 0x2a903, // ins
|
0x154: 0x2401, // i
|
||||||
0x17a: 0xe004, // ruby
|
0x155: 0x21702, // dt
|
||||||
0x17b: 0x37c02, // br
|
0x156: 0x36608, // seamless
|
||||||
0x17c: 0x8a0f, // defaultSelected
|
0x157: 0x21904, // form
|
||||||
0x17d: 0x7403, // kbd
|
0x15b: 0x15707, // details
|
||||||
0x17f: 0x1c906, // source
|
0x15f: 0x8e05, // async
|
||||||
0x182: 0x9f04, // span
|
0x160: 0x26a04, // html
|
||||||
0x184: 0x2d803, // max
|
0x161: 0x33608, // sortable
|
||||||
0x18a: 0x5b02, // dd
|
0x165: 0x2f02, // rb
|
||||||
0x18b: 0x13a04, // size
|
0x167: 0x2e10f, // allowfullscreen
|
||||||
0x18c: 0xa405, // media
|
0x168: 0x17804, // base
|
||||||
0x18d: 0x19208, // codebase
|
0x169: 0x25f06, // hidden
|
||||||
0x18f: 0x4905, // embed
|
0x16e: 0x2ef06, // nowrap
|
||||||
0x192: 0x5104, // type
|
0x16f: 0x2505, // start
|
||||||
0x193: 0xf005, // param
|
0x170: 0x14505, // frame
|
||||||
0x194: 0x25b02, // h6
|
0x171: 0x1f08, // datalist
|
||||||
0x197: 0x28304, // icon
|
0x173: 0x12502, // tr
|
||||||
0x198: 0x12607, // bgcolor
|
0x174: 0x30b06, // method
|
||||||
0x199: 0x2ad0f, // allowfullscreen
|
0x175: 0x101, // b
|
||||||
0x19a: 0x12004, // time
|
0x176: 0x1c904, // cols
|
||||||
0x19b: 0x7803, // rev
|
0x178: 0x110e, // accept-charset
|
||||||
0x19d: 0x34208, // progress
|
0x17a: 0x36205, // rules
|
||||||
0x19e: 0x22606, // figure
|
0x17b: 0x7f0f, // amp-boilerplate
|
||||||
0x1a0: 0x6a02, // rp
|
0x17f: 0x2270e, // defaultChecked
|
||||||
0x1a2: 0xa606, // dialog
|
0x180: 0x32807, // profile
|
||||||
0x1a4: 0x2802, // rt
|
0x181: 0x2b004, // slot
|
||||||
0x1a7: 0x1e304, // area
|
0x182: 0x11a05, // param
|
||||||
0x1a8: 0x7808, // reversed
|
0x185: 0x1c907, // colspan
|
||||||
0x1aa: 0x32104, // open
|
0x186: 0x34c05, // style
|
||||||
0x1ac: 0x2d204, // head
|
0x187: 0x1e02, // td
|
||||||
0x1ad: 0x7005, // alink
|
0x188: 0x12c05, // color
|
||||||
0x1af: 0x28003, // var
|
0x18c: 0x13901, // q
|
||||||
0x1b0: 0x15f07, // details
|
0x18d: 0x3b005, // vlink
|
||||||
0x1b1: 0x2401, // i
|
0x18e: 0x39203, // svg
|
||||||
0x1b3: 0x1e02, // td
|
0x18f: 0x33905, // table
|
||||||
0x1b4: 0xb707, // declare
|
0x190: 0x29e06, // keygen
|
||||||
0x1b5: 0x8302, // ul
|
0x192: 0x20c06, // figure
|
||||||
0x1ba: 0x2fc06, // method
|
0x193: 0x3a907, // visible
|
||||||
0x1bd: 0x13007, // section
|
0x195: 0x17808, // basefont
|
||||||
0x1be: 0x22a08, // required
|
0x196: 0x8802, // rp
|
||||||
0x1c2: 0x9805, // defer
|
0x197: 0xf60f, // defaultSelected
|
||||||
0x1c3: 0x37205, // vlink
|
0x198: 0x1af08, // colgroup
|
||||||
0x1c4: 0x15405, // title
|
0x19a: 0x3bc03, // wbr
|
||||||
0x1c5: 0x2770a, // http-equiv
|
0x19c: 0x36d07, // section
|
||||||
0x1c6: 0x1fa07, // enctype
|
0x19d: 0x25906, // source
|
||||||
0x1c7: 0x1ec07, // compact
|
0x19f: 0x2bf04, // math
|
||||||
0x1c8: 0x2d809, // maxlength
|
0x1a1: 0x2fe08, // readonly
|
||||||
0x1c9: 0x16508, // selected
|
0x1a7: 0x1e708, // controls
|
||||||
0x1cc: 0xd105, // audio
|
0x1a9: 0xde08, // menuitem
|
||||||
0x1cd: 0xc208, // longdesc
|
0x1ad: 0x206, // output
|
||||||
0x1d1: 0xfb04, // cite
|
0x1b0: 0x2c809, // maxlength
|
||||||
0x1da: 0x2505, // start
|
0x1b2: 0xe209, // itemscope
|
||||||
0x1de: 0x2d102, // th
|
0x1b9: 0x501, // p
|
||||||
0x1df: 0x10808, // autoplay
|
0x1bc: 0x2df05, // small
|
||||||
0x1e2: 0x7104, // link
|
0x1bd: 0x36102, // br
|
||||||
0x1e3: 0x206, // output
|
0x1c0: 0x5503, // rtc
|
||||||
0x1e5: 0x12204, // menu
|
0x1c1: 0x1c009, // translate
|
||||||
0x1e6: 0x2a405, // input
|
0x1c4: 0x35303, // bdo
|
||||||
0x1eb: 0x32403, // nav
|
0x1c5: 0xd04, // body
|
||||||
0x1ec: 0x31d03, // sub
|
0x1c8: 0xb706, // center
|
||||||
0x1ee: 0x1807, // charset
|
0x1c9: 0x2c105, // thead
|
||||||
0x1ef: 0x7f07, // default
|
0x1ca: 0xcc09, // autofocus
|
||||||
0x1f3: 0x2f205, // table
|
0x1cc: 0xb504, // face
|
||||||
0x1f4: 0x23b04, // form
|
0x1cd: 0x24302, // h2
|
||||||
0x1f5: 0x23209, // truespeed
|
0x1ce: 0x11e08, // manifest
|
||||||
0x1f6: 0x2f02, // rb
|
0x1d0: 0x706, // target
|
||||||
0x1fb: 0x20b09, // translate
|
0x1d1: 0x11605, // ismap
|
||||||
0x1fd: 0x2e002, // h1
|
0x1d3: 0xc405, // media
|
||||||
|
0x1d7: 0x13103, // big
|
||||||
|
0x1da: 0x37903, // del
|
||||||
|
0x1dc: 0x6f09, // scrolling
|
||||||
|
0x1de: 0x37505, // embed
|
||||||
|
0x1e0: 0x31d05, // muted
|
||||||
|
0x1e4: 0x2390a, // novalidate
|
||||||
|
0x1e6: 0x7202, // ol
|
||||||
|
0x1eb: 0x9f05, // tfoot
|
||||||
|
0x1ec: 0x18808, // codetype
|
||||||
|
0x1ee: 0x26307, // enabled
|
||||||
|
0x1f0: 0x2c206, // header
|
||||||
|
0x1f1: 0x1cf08, // noresize
|
||||||
|
0x1f6: 0x1d707, // compact
|
||||||
|
0x1f9: 0x12c03, // col
|
||||||
|
0x1fa: 0x38a03, // xmp
|
||||||
|
0x1fb: 0x1807, // charset
|
||||||
}
|
}
|
||||||
|
|
|
@ -129,7 +129,7 @@ func (o *Minifier) Minify(m *minify.M, w io.Writer, r io.Reader, _ map[string]st
|
||||||
var params map[string]string
|
var params map[string]string
|
||||||
if rawTagHash == Iframe {
|
if rawTagHash == Iframe {
|
||||||
mimetype = htmlMimeBytes
|
mimetype = htmlMimeBytes
|
||||||
} else if len(rawTagMediatype) > 0 {
|
} else if 0 < len(rawTagMediatype) {
|
||||||
mimetype, params = parse.Mediatype(rawTagMediatype)
|
mimetype, params = parse.Mediatype(rawTagMediatype)
|
||||||
} else if rawTagHash == Script {
|
} else if rawTagHash == Script {
|
||||||
mimetype = jsMimeBytes
|
mimetype = jsMimeBytes
|
||||||
|
@ -169,20 +169,15 @@ func (o *Minifier) Minify(m *minify.M, w io.Writer, r io.Reader, _ map[string]st
|
||||||
t.Data = t.Data[:len(t.Data)-1]
|
t.Data = t.Data[:len(t.Data)-1]
|
||||||
omitSpace = false
|
omitSpace = false
|
||||||
break
|
break
|
||||||
} else if next.TokenType == html.TextToken {
|
} else if next.TokenType == html.TextToken && !parse.IsAllWhitespace(next.Data) {
|
||||||
// this only happens when a comment, doctype or phrasing end tag (only for !o.KeepWhitespace) was in between
|
// stop looking when text encountered
|
||||||
// remove if the text token starts with a whitespace
|
|
||||||
if len(next.Data) > 0 && parse.IsWhitespace(next.Data[0]) {
|
|
||||||
t.Data = t.Data[:len(t.Data)-1]
|
|
||||||
omitSpace = false
|
|
||||||
}
|
|
||||||
break
|
break
|
||||||
} else if next.TokenType == html.StartTagToken || next.TokenType == html.EndTagToken {
|
} else if next.TokenType == html.StartTagToken || next.TokenType == html.EndTagToken {
|
||||||
if o.KeepWhitespace {
|
if o.KeepWhitespace {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
// remove when followed up by a block tag
|
// remove when followed by a block tag
|
||||||
if next.Traits&nonPhrasingTag != 0 {
|
if next.Traits&blockTag != 0 {
|
||||||
t.Data = t.Data[:len(t.Data)-1]
|
t.Data = t.Data[:len(t.Data)-1]
|
||||||
omitSpace = false
|
omitSpace = false
|
||||||
break
|
break
|
||||||
|
@ -271,14 +266,14 @@ func (o *Minifier) Minify(m *minify.M, w io.Writer, r io.Reader, _ map[string]st
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if t.Traits&nonPhrasingTag != 0 {
|
if !omitEndTag {
|
||||||
omitSpace = true // omit spaces after block elements
|
if o.KeepWhitespace || t.Traits&objectTag != 0 {
|
||||||
} else if o.KeepWhitespace || t.Traits&objectTag != 0 {
|
|
||||||
omitSpace = false
|
omitSpace = false
|
||||||
|
} else if t.Traits&blockTag != 0 {
|
||||||
|
omitSpace = true // omit spaces after block elements
|
||||||
}
|
}
|
||||||
|
|
||||||
if !omitEndTag {
|
if 3+len(t.Text) < len(t.Data) {
|
||||||
if len(t.Data) > 3+len(t.Text) {
|
|
||||||
t.Data[2+len(t.Text)] = '>'
|
t.Data[2+len(t.Text)] = '>'
|
||||||
t.Data = t.Data[:3+len(t.Text)]
|
t.Data = t.Data[:3+len(t.Text)]
|
||||||
}
|
}
|
||||||
|
@ -296,7 +291,7 @@ func (o *Minifier) Minify(m *minify.M, w io.Writer, r io.Reader, _ map[string]st
|
||||||
|
|
||||||
if o.KeepWhitespace || t.Traits&objectTag != 0 {
|
if o.KeepWhitespace || t.Traits&objectTag != 0 {
|
||||||
omitSpace = false
|
omitSpace = false
|
||||||
} else if t.Traits&nonPhrasingTag != 0 {
|
} else if t.Traits&blockTag != 0 {
|
||||||
omitSpace = true // omit spaces after block elements
|
omitSpace = true // omit spaces after block elements
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -327,7 +322,7 @@ func (o *Minifier) Minify(m *minify.M, w io.Writer, r io.Reader, _ map[string]st
|
||||||
for i := 0; i < len(content.AttrVal); i++ {
|
for i := 0; i < len(content.AttrVal); i++ {
|
||||||
if content.AttrVal[i] == '=' && i+2 < len(content.AttrVal) {
|
if content.AttrVal[i] == '=' && i+2 < len(content.AttrVal) {
|
||||||
i++
|
i++
|
||||||
if n := parse.Number(content.AttrVal[i:]); n > 0 {
|
if n := parse.Number(content.AttrVal[i:]); 0 < n {
|
||||||
minNum := minify.Number(content.AttrVal[i:i+n], -1)
|
minNum := minify.Number(content.AttrVal[i:i+n], -1)
|
||||||
if len(minNum) < n {
|
if len(minNum) < n {
|
||||||
copy(content.AttrVal[i:i+len(minNum)], minNum)
|
copy(content.AttrVal[i:i+len(minNum)], minNum)
|
||||||
|
@ -434,10 +429,10 @@ func (o *Minifier) Minify(m *minify.M, w io.Writer, r io.Reader, _ map[string]st
|
||||||
if len(val) == 0 {
|
if len(val) == 0 {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
} else if len(attr.Text) > 2 && attr.Text[0] == 'o' && attr.Text[1] == 'n' {
|
} else if 2 < len(attr.Text) && attr.Text[0] == 'o' && attr.Text[1] == 'n' {
|
||||||
// JS minifier for attribute inline code
|
// JS minifier for attribute inline code
|
||||||
val = parse.TrimWhitespace(val)
|
val = parse.TrimWhitespace(val)
|
||||||
if len(val) >= 11 && parse.EqualFold(val[:11], jsSchemeBytes) {
|
if 11 <= len(val) && parse.EqualFold(val[:11], jsSchemeBytes) {
|
||||||
val = val[11:]
|
val = val[11:]
|
||||||
}
|
}
|
||||||
attrMinifyBuffer.Reset()
|
attrMinifyBuffer.Reset()
|
||||||
|
@ -475,7 +470,7 @@ func (o *Minifier) Minify(m *minify.M, w io.Writer, r io.Reader, _ map[string]st
|
||||||
|
|
||||||
w.Write(spaceBytes)
|
w.Write(spaceBytes)
|
||||||
w.Write(attr.Text)
|
w.Write(attr.Text)
|
||||||
if len(val) > 0 && attr.Traits&booleanAttr == 0 {
|
if 0 < len(val) && attr.Traits&booleanAttr == 0 {
|
||||||
w.Write(isBytes)
|
w.Write(isBytes)
|
||||||
|
|
||||||
// use double quotes for RDFa attributes
|
// use double quotes for RDFa attributes
|
||||||
|
@ -504,7 +499,7 @@ func (o *Minifier) Minify(m *minify.M, w io.Writer, r io.Reader, _ map[string]st
|
||||||
}
|
}
|
||||||
|
|
||||||
// keep space after phrasing tags (<i>, <span>, ...) FontAwesome etc.
|
// keep space after phrasing tags (<i>, <span>, ...) FontAwesome etc.
|
||||||
if t.TokenType == html.StartTagToken && t.Traits&nonPhrasingTag == 0 {
|
if t.TokenType == html.StartTagToken && t.Traits == normalTag {
|
||||||
if next := tb.Peek(0); next.Hash == t.Hash && next.TokenType == html.EndTagToken {
|
if next := tb.Peek(0); next.Hash == t.Hash && next.TokenType == html.EndTagToken {
|
||||||
omitSpace = false
|
omitSpace = false
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,8 +5,8 @@ type traits uint16
|
||||||
const (
|
const (
|
||||||
normalTag traits = 1 << iota
|
normalTag traits = 1 << iota
|
||||||
rawTag // raw tags need special processing for their content
|
rawTag // raw tags need special processing for their content
|
||||||
nonPhrasingTag // non-phrasing elements are unaffected by whitespace, remove spaces around these tags
|
blockTag // remove spaces around these tags
|
||||||
objectTag // content tags with a few exclusions, keep spaces after these open/close tags
|
objectTag // keep spaces after these open/close tags
|
||||||
omitPTag // omit p end tag if it is followed by this start tag
|
omitPTag // omit p end tag if it is followed by this start tag
|
||||||
keepPTag // keep p end tag if it is followed by this end tag
|
keepPTag // keep p end tag if it is followed by this end tag
|
||||||
)
|
)
|
||||||
|
@ -21,54 +21,54 @@ const (
|
||||||
var tagMap = map[Hash]traits{
|
var tagMap = map[Hash]traits{
|
||||||
A: keepPTag,
|
A: keepPTag,
|
||||||
Abbr: normalTag,
|
Abbr: normalTag,
|
||||||
Address: nonPhrasingTag | omitPTag,
|
Address: blockTag | omitPTag,
|
||||||
Area: normalTag,
|
Area: normalTag,
|
||||||
Article: nonPhrasingTag | omitPTag,
|
Article: blockTag | omitPTag,
|
||||||
Aside: nonPhrasingTag | omitPTag,
|
Aside: blockTag | omitPTag,
|
||||||
Audio: keepPTag,
|
Audio: keepPTag,
|
||||||
B: normalTag,
|
B: normalTag,
|
||||||
Base: normalTag,
|
Base: normalTag,
|
||||||
Bb: normalTag,
|
Bb: normalTag,
|
||||||
Bdi: normalTag,
|
Bdi: normalTag,
|
||||||
Bdo: normalTag,
|
Bdo: normalTag,
|
||||||
Blockquote: nonPhrasingTag | omitPTag,
|
Blockquote: blockTag | omitPTag,
|
||||||
Body: nonPhrasingTag,
|
Body: normalTag,
|
||||||
Br: nonPhrasingTag,
|
Br: blockTag,
|
||||||
Button: objectTag,
|
Button: objectTag,
|
||||||
Canvas: objectTag | keepPTag,
|
Canvas: objectTag | keepPTag,
|
||||||
Caption: nonPhrasingTag,
|
Caption: blockTag,
|
||||||
Cite: normalTag,
|
Cite: normalTag,
|
||||||
Code: normalTag,
|
Code: normalTag,
|
||||||
Col: nonPhrasingTag,
|
Col: blockTag,
|
||||||
Colgroup: nonPhrasingTag,
|
Colgroup: blockTag,
|
||||||
Data: normalTag,
|
Data: normalTag,
|
||||||
Datalist: normalTag,
|
Datalist: normalTag, // no text content
|
||||||
Dd: nonPhrasingTag,
|
Dd: blockTag,
|
||||||
Del: keepPTag,
|
Del: keepPTag,
|
||||||
Details: omitPTag,
|
Details: blockTag | omitPTag,
|
||||||
Dfn: normalTag,
|
Dfn: normalTag,
|
||||||
Dialog: normalTag,
|
Dialog: normalTag,
|
||||||
Div: nonPhrasingTag | omitPTag,
|
Div: blockTag | omitPTag,
|
||||||
Dl: nonPhrasingTag | omitPTag,
|
Dl: blockTag | omitPTag,
|
||||||
Dt: nonPhrasingTag,
|
Dt: blockTag,
|
||||||
Em: normalTag,
|
Em: normalTag,
|
||||||
Embed: nonPhrasingTag,
|
Embed: normalTag,
|
||||||
Fieldset: nonPhrasingTag | omitPTag,
|
Fieldset: blockTag | omitPTag,
|
||||||
Figcaption: nonPhrasingTag | omitPTag,
|
Figcaption: blockTag | omitPTag,
|
||||||
Figure: nonPhrasingTag | omitPTag,
|
Figure: blockTag | omitPTag,
|
||||||
Footer: nonPhrasingTag | omitPTag,
|
Footer: blockTag | omitPTag,
|
||||||
Form: nonPhrasingTag | omitPTag,
|
Form: blockTag | omitPTag,
|
||||||
H1: nonPhrasingTag | omitPTag,
|
H1: blockTag | omitPTag,
|
||||||
H2: nonPhrasingTag | omitPTag,
|
H2: blockTag | omitPTag,
|
||||||
H3: nonPhrasingTag | omitPTag,
|
H3: blockTag | omitPTag,
|
||||||
H4: nonPhrasingTag | omitPTag,
|
H4: blockTag | omitPTag,
|
||||||
H5: nonPhrasingTag | omitPTag,
|
H5: blockTag | omitPTag,
|
||||||
H6: nonPhrasingTag | omitPTag,
|
H6: blockTag | omitPTag,
|
||||||
Head: nonPhrasingTag,
|
Head: blockTag,
|
||||||
Header: nonPhrasingTag | omitPTag,
|
Header: blockTag | omitPTag,
|
||||||
Hgroup: nonPhrasingTag,
|
Hgroup: blockTag,
|
||||||
Hr: nonPhrasingTag | omitPTag,
|
Hr: blockTag | omitPTag,
|
||||||
Html: nonPhrasingTag,
|
Html: blockTag,
|
||||||
I: normalTag,
|
I: normalTag,
|
||||||
Iframe: rawTag | objectTag,
|
Iframe: rawTag | objectTag,
|
||||||
Img: objectTag,
|
Img: objectTag,
|
||||||
|
@ -76,64 +76,90 @@ var tagMap = map[Hash]traits{
|
||||||
Ins: keepPTag,
|
Ins: keepPTag,
|
||||||
Kbd: normalTag,
|
Kbd: normalTag,
|
||||||
Label: normalTag,
|
Label: normalTag,
|
||||||
Legend: normalTag,
|
Legend: blockTag,
|
||||||
Li: nonPhrasingTag,
|
Li: blockTag,
|
||||||
Link: normalTag,
|
Link: normalTag,
|
||||||
Main: nonPhrasingTag | omitPTag,
|
Main: blockTag | omitPTag,
|
||||||
Map: keepPTag,
|
Map: keepPTag,
|
||||||
Mark: normalTag,
|
Mark: normalTag,
|
||||||
Math: rawTag,
|
Math: rawTag,
|
||||||
Menu: omitPTag,
|
Menu: blockTag | omitPTag,
|
||||||
Meta: nonPhrasingTag,
|
Meta: normalTag,
|
||||||
Meter: objectTag,
|
Meter: objectTag,
|
||||||
Nav: nonPhrasingTag | omitPTag,
|
Nav: blockTag | omitPTag,
|
||||||
Noscript: nonPhrasingTag | keepPTag,
|
Noscript: blockTag | keepPTag,
|
||||||
Object: objectTag,
|
Object: objectTag,
|
||||||
Ol: nonPhrasingTag | omitPTag,
|
Ol: blockTag | omitPTag,
|
||||||
Optgroup: normalTag,
|
Optgroup: normalTag, // no text content
|
||||||
Option: normalTag,
|
Option: blockTag,
|
||||||
Output: nonPhrasingTag,
|
Output: normalTag,
|
||||||
P: nonPhrasingTag | omitPTag,
|
P: blockTag | omitPTag,
|
||||||
Param: normalTag,
|
Param: normalTag,
|
||||||
Picture: normalTag,
|
Picture: normalTag,
|
||||||
Pre: nonPhrasingTag | omitPTag,
|
Pre: blockTag | omitPTag,
|
||||||
Progress: objectTag,
|
Progress: objectTag,
|
||||||
Q: objectTag,
|
Q: objectTag,
|
||||||
Rp: normalTag,
|
Rp: normalTag,
|
||||||
Rt: normalTag,
|
Rt: objectTag,
|
||||||
Ruby: normalTag,
|
Ruby: normalTag,
|
||||||
S: normalTag,
|
S: normalTag,
|
||||||
Samp: normalTag,
|
Samp: normalTag,
|
||||||
Script: rawTag,
|
Script: rawTag,
|
||||||
Section: nonPhrasingTag | omitPTag,
|
Section: blockTag | omitPTag,
|
||||||
Select: objectTag,
|
Select: objectTag,
|
||||||
Slot: normalTag,
|
Slot: normalTag,
|
||||||
Small: normalTag,
|
Small: normalTag,
|
||||||
Source: normalTag,
|
Source: normalTag,
|
||||||
Span: normalTag,
|
Span: normalTag,
|
||||||
Strong: normalTag,
|
Strong: normalTag,
|
||||||
Style: rawTag | nonPhrasingTag,
|
Style: rawTag | blockTag,
|
||||||
Sub: normalTag,
|
Sub: normalTag,
|
||||||
Summary: normalTag,
|
Summary: blockTag,
|
||||||
Sup: normalTag,
|
Sup: normalTag,
|
||||||
Svg: rawTag | objectTag,
|
Svg: rawTag | objectTag,
|
||||||
Table: nonPhrasingTag | omitPTag,
|
Table: blockTag | omitPTag,
|
||||||
Tbody: nonPhrasingTag,
|
Tbody: blockTag,
|
||||||
Td: nonPhrasingTag,
|
Td: blockTag,
|
||||||
Template: normalTag,
|
Template: normalTag,
|
||||||
Textarea: rawTag | objectTag,
|
Textarea: rawTag | objectTag,
|
||||||
Tfoot: nonPhrasingTag,
|
Tfoot: blockTag,
|
||||||
Th: nonPhrasingTag,
|
Th: blockTag,
|
||||||
Thead: nonPhrasingTag,
|
Thead: blockTag,
|
||||||
Time: normalTag,
|
Time: normalTag,
|
||||||
Title: nonPhrasingTag,
|
Title: normalTag,
|
||||||
Tr: nonPhrasingTag,
|
Tr: blockTag,
|
||||||
Track: normalTag,
|
Track: normalTag,
|
||||||
U: normalTag,
|
U: normalTag,
|
||||||
Ul: nonPhrasingTag | omitPTag,
|
Ul: blockTag | omitPTag,
|
||||||
Var: normalTag,
|
Var: normalTag,
|
||||||
Video: objectTag | keepPTag,
|
Video: objectTag | keepPTag,
|
||||||
Wbr: normalTag,
|
Wbr: objectTag,
|
||||||
|
|
||||||
|
// removed tags
|
||||||
|
Acronym: normalTag,
|
||||||
|
Applet: normalTag,
|
||||||
|
Basefont: normalTag,
|
||||||
|
Big: normalTag,
|
||||||
|
Center: blockTag,
|
||||||
|
Dir: blockTag,
|
||||||
|
Font: normalTag,
|
||||||
|
Frame: normalTag,
|
||||||
|
Frameset: normalTag,
|
||||||
|
Image: objectTag,
|
||||||
|
Marquee: blockTag,
|
||||||
|
Menuitem: normalTag,
|
||||||
|
Nobr: normalTag,
|
||||||
|
Noembed: blockTag,
|
||||||
|
Noframes: blockTag,
|
||||||
|
Plaintext: normalTag,
|
||||||
|
Rtc: objectTag,
|
||||||
|
Rb: normalTag,
|
||||||
|
Strike: normalTag,
|
||||||
|
Tt: normalTag,
|
||||||
|
Xmp: blockTag,
|
||||||
|
|
||||||
|
// experimental tags
|
||||||
|
Portal: normalTag,
|
||||||
}
|
}
|
||||||
|
|
||||||
var attrMap = map[Hash]traits{
|
var attrMap = map[Hash]traits{
|
||||||
|
@ -574,7 +600,7 @@ var EntitiesMap = map[string][]byte{
|
||||||
"SupersetEqual": []byte("⊇"),
|
"SupersetEqual": []byte("⊇"),
|
||||||
"Supset": []byte("⋑"),
|
"Supset": []byte("⋑"),
|
||||||
"THORN": []byte("Þ"),
|
"THORN": []byte("Þ"),
|
||||||
"Tab": []byte(" "),
|
"Tab": []byte("\t"),
|
||||||
"Tcaron": []byte("Ť"),
|
"Tcaron": []byte("Ť"),
|
||||||
"Tcedil": []byte("Ţ"),
|
"Tcedil": []byte("Ţ"),
|
||||||
"Therefore": []byte("∴"),
|
"Therefore": []byte("∴"),
|
||||||
|
|
|
@ -0,0 +1,63 @@
|
||||||
|
package strconv
|
||||||
|
|
||||||
|
import (
|
||||||
|
"math"
|
||||||
|
)
|
||||||
|
|
||||||
|
func ParseDecimal(b []byte) (float64, int) {
|
||||||
|
i := 0
|
||||||
|
start := i
|
||||||
|
dot := -1
|
||||||
|
trunk := -1
|
||||||
|
n := uint64(0)
|
||||||
|
for ; i < len(b); i++ {
|
||||||
|
c := b[i]
|
||||||
|
if '0' <= c && c <= '9' {
|
||||||
|
if trunk == -1 {
|
||||||
|
if math.MaxUint64/10 < n {
|
||||||
|
trunk = i
|
||||||
|
} else {
|
||||||
|
n *= 10
|
||||||
|
n += uint64(c - '0')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if dot == -1 && c == '.' {
|
||||||
|
dot = i
|
||||||
|
} else {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if i == start || i == start+1 && dot == start {
|
||||||
|
return 0.0, 0
|
||||||
|
}
|
||||||
|
|
||||||
|
f := float64(n)
|
||||||
|
mantExp := int64(0)
|
||||||
|
if dot != -1 {
|
||||||
|
if trunk == -1 {
|
||||||
|
trunk = i
|
||||||
|
}
|
||||||
|
mantExp = int64(trunk - dot - 1)
|
||||||
|
} else if trunk != -1 {
|
||||||
|
mantExp = int64(trunk - i)
|
||||||
|
}
|
||||||
|
exp := -mantExp
|
||||||
|
|
||||||
|
// copied from strconv/atof.go
|
||||||
|
if exp == 0 {
|
||||||
|
return f, i
|
||||||
|
} else if 0 < exp && exp <= 15+22 { // int * 10^k
|
||||||
|
// If exponent is big but number of digits is not,
|
||||||
|
// can move a few zeros into the integer part.
|
||||||
|
if 22 < exp {
|
||||||
|
f *= float64pow10[exp-22]
|
||||||
|
exp = 22
|
||||||
|
}
|
||||||
|
if -1e15 <= f && f <= 1e15 {
|
||||||
|
return f * float64pow10[exp], i
|
||||||
|
}
|
||||||
|
} else if exp < 0 && -22 <= exp { // int / 10^k
|
||||||
|
return f / float64pow10[-exp], i
|
||||||
|
}
|
||||||
|
return f * math.Pow10(int(-mantExp)), i
|
||||||
|
}
|
|
@ -25,9 +25,9 @@ func ParseFloat(b []byte) (float64, int) {
|
||||||
n := uint64(0)
|
n := uint64(0)
|
||||||
for ; i < len(b); i++ {
|
for ; i < len(b); i++ {
|
||||||
c := b[i]
|
c := b[i]
|
||||||
if c >= '0' && c <= '9' {
|
if '0' <= c && c <= '9' {
|
||||||
if trunk == -1 {
|
if trunk == -1 {
|
||||||
if n > math.MaxUint64/10 {
|
if math.MaxUint64/10 < n {
|
||||||
trunk = i
|
trunk = i
|
||||||
} else {
|
} else {
|
||||||
n *= 10
|
n *= 10
|
||||||
|
@ -62,7 +62,7 @@ func ParseFloat(b []byte) (float64, int) {
|
||||||
if i < len(b) && (b[i] == 'e' || b[i] == 'E') {
|
if i < len(b) && (b[i] == 'e' || b[i] == 'E') {
|
||||||
startExp := i
|
startExp := i
|
||||||
i++
|
i++
|
||||||
if e, expLen := ParseInt(b[i:]); expLen > 0 {
|
if e, expLen := ParseInt(b[i:]); 0 < expLen {
|
||||||
expExp = e
|
expExp = e
|
||||||
i += expLen
|
i += expLen
|
||||||
} else {
|
} else {
|
||||||
|
@ -74,17 +74,17 @@ func ParseFloat(b []byte) (float64, int) {
|
||||||
// copied from strconv/atof.go
|
// copied from strconv/atof.go
|
||||||
if exp == 0 {
|
if exp == 0 {
|
||||||
return f, i
|
return f, i
|
||||||
} else if exp > 0 && exp <= 15+22 { // int * 10^k
|
} else if 0 < exp && exp <= 15+22 { // int * 10^k
|
||||||
// If exponent is big but number of digits is not,
|
// If exponent is big but number of digits is not,
|
||||||
// can move a few zeros into the integer part.
|
// can move a few zeros into the integer part.
|
||||||
if exp > 22 {
|
if 22 < exp {
|
||||||
f *= float64pow10[exp-22]
|
f *= float64pow10[exp-22]
|
||||||
exp = 22
|
exp = 22
|
||||||
}
|
}
|
||||||
if f <= 1e15 && f >= -1e15 {
|
if -1e15 <= f && f <= 1e15 {
|
||||||
return f * float64pow10[exp], i
|
return f * float64pow10[exp], i
|
||||||
}
|
}
|
||||||
} else if exp < 0 && exp >= -22 { // int / 10^k
|
} else if -22 <= exp && exp < 0 { // int / 10^k
|
||||||
return f / float64pow10[-exp], i
|
return f / float64pow10[-exp], i
|
||||||
}
|
}
|
||||||
f *= math.Pow10(int(-mantExp))
|
f *= math.Pow10(int(-mantExp))
|
||||||
|
@ -135,7 +135,7 @@ func AppendFloat(b []byte, f float64, prec int) ([]byte, bool) {
|
||||||
// expLen is zero for positive exponents, because positive exponents are determined later on in the big conversion loop
|
// expLen is zero for positive exponents, because positive exponents are determined later on in the big conversion loop
|
||||||
exp := 0
|
exp := 0
|
||||||
expLen := 0
|
expLen := 0
|
||||||
if mantExp > 0 {
|
if 0 < mantExp {
|
||||||
// positive exponent is determined in the loop below
|
// positive exponent is determined in the loop below
|
||||||
// but if we initially decreased the exponent to fit in an integer, we can't set the new exponent in the loop alone,
|
// but if we initially decreased the exponent to fit in an integer, we can't set the new exponent in the loop alone,
|
||||||
// since the number of zeros at the end determines the positive exponent in the loop, and we just artificially lost zeros
|
// since the number of zeros at the end determines the positive exponent in the loop, and we just artificially lost zeros
|
||||||
|
@ -156,7 +156,7 @@ func AppendFloat(b []byte, f float64, prec int) ([]byte, bool) {
|
||||||
if neg {
|
if neg {
|
||||||
maxLen++
|
maxLen++
|
||||||
}
|
}
|
||||||
if i+maxLen > cap(b) {
|
if cap(b) < i+maxLen {
|
||||||
b = append(b, make([]byte, maxLen)...)
|
b = append(b, make([]byte, maxLen)...)
|
||||||
} else {
|
} else {
|
||||||
b = b[:i+maxLen]
|
b = b[:i+maxLen]
|
||||||
|
@ -175,17 +175,17 @@ func AppendFloat(b []byte, f float64, prec int) ([]byte, bool) {
|
||||||
last := i + mantLen // right-most position of digit that is non-zero + dot
|
last := i + mantLen // right-most position of digit that is non-zero + dot
|
||||||
dot := last - prec - exp // position of dot
|
dot := last - prec - exp // position of dot
|
||||||
j := last
|
j := last
|
||||||
for mant > 0 {
|
for 0 < mant {
|
||||||
if j == dot {
|
if j == dot {
|
||||||
b[j] = '.'
|
b[j] = '.'
|
||||||
j--
|
j--
|
||||||
}
|
}
|
||||||
newMant := mant / 10
|
newMant := mant / 10
|
||||||
digit := mant - 10*newMant
|
digit := mant - 10*newMant
|
||||||
if zero && digit > 0 {
|
if zero && 0 < digit {
|
||||||
// first non-zero digit, if we are still behind the dot we can trim the end to this position
|
// first non-zero digit, if we are still behind the dot we can trim the end to this position
|
||||||
// otherwise trim to the dot (including the dot)
|
// otherwise trim to the dot (including the dot)
|
||||||
if j > dot {
|
if dot < j {
|
||||||
i = j + 1
|
i = j + 1
|
||||||
// decrease negative exponent further to get rid of dot
|
// decrease negative exponent further to get rid of dot
|
||||||
if exp < 0 {
|
if exp < 0 {
|
||||||
|
@ -209,9 +209,9 @@ func AppendFloat(b []byte, f float64, prec int) ([]byte, bool) {
|
||||||
mant = newMant
|
mant = newMant
|
||||||
}
|
}
|
||||||
|
|
||||||
if j > dot {
|
if dot < j {
|
||||||
// extra zeros behind the dot
|
// extra zeros behind the dot
|
||||||
for j > dot {
|
for dot < j {
|
||||||
b[j] = '0'
|
b[j] = '0'
|
||||||
j--
|
j--
|
||||||
}
|
}
|
||||||
|
@ -244,7 +244,7 @@ func AppendFloat(b []byte, f float64, prec int) ([]byte, bool) {
|
||||||
}
|
}
|
||||||
i += LenInt(int64(exp))
|
i += LenInt(int64(exp))
|
||||||
j := i
|
j := i
|
||||||
for exp > 0 {
|
for 0 < exp {
|
||||||
newExp := exp / 10
|
newExp := exp / 10
|
||||||
digit := exp - 10*newExp
|
digit := exp - 10*newExp
|
||||||
j--
|
j--
|
||||||
|
|
|
@ -20,14 +20,14 @@ func AppendPrice(b []byte, price int64, dec bool, milSeparator byte, decSeparato
|
||||||
// rounding
|
// rounding
|
||||||
if !dec {
|
if !dec {
|
||||||
firstDec := (price / 10) % 10
|
firstDec := (price / 10) % 10
|
||||||
if firstDec >= 5 {
|
if 5 <= firstDec {
|
||||||
price += 100
|
price += 100
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// calculate size
|
// calculate size
|
||||||
n := LenInt(price) - 2
|
n := LenInt(price) - 2
|
||||||
if n > 0 {
|
if 0 < n {
|
||||||
n += (n - 1) / 3 // mil separator
|
n += (n - 1) / 3 // mil separator
|
||||||
} else {
|
} else {
|
||||||
n = 1
|
n = 1
|
||||||
|
@ -38,7 +38,7 @@ func AppendPrice(b []byte, price int64, dec bool, milSeparator byte, decSeparato
|
||||||
|
|
||||||
// resize byte slice
|
// resize byte slice
|
||||||
i := len(b)
|
i := len(b)
|
||||||
if i+n > cap(b) {
|
if cap(b) < i+n {
|
||||||
b = append(b, make([]byte, n)...)
|
b = append(b, make([]byte, n)...)
|
||||||
} else {
|
} else {
|
||||||
b = b[:i+n]
|
b = b[:i+n]
|
||||||
|
@ -66,7 +66,7 @@ func AppendPrice(b []byte, price int64, dec bool, milSeparator byte, decSeparato
|
||||||
|
|
||||||
// print integer-part
|
// print integer-part
|
||||||
j := 0
|
j := 0
|
||||||
for price > 0 {
|
for 0 < price {
|
||||||
if j == 3 {
|
if j == 3 {
|
||||||
b[i] = milSeparator
|
b[i] = milSeparator
|
||||||
i--
|
i--
|
||||||
|
|
|
@ -659,11 +659,11 @@ github.com/superseriousbusiness/oauth2/v4/generates
|
||||||
github.com/superseriousbusiness/oauth2/v4/manage
|
github.com/superseriousbusiness/oauth2/v4/manage
|
||||||
github.com/superseriousbusiness/oauth2/v4/models
|
github.com/superseriousbusiness/oauth2/v4/models
|
||||||
github.com/superseriousbusiness/oauth2/v4/server
|
github.com/superseriousbusiness/oauth2/v4/server
|
||||||
# github.com/tdewolff/minify/v2 v2.12.7
|
# github.com/tdewolff/minify/v2 v2.12.8
|
||||||
## explicit; go 1.13
|
## explicit; go 1.18
|
||||||
github.com/tdewolff/minify/v2
|
github.com/tdewolff/minify/v2
|
||||||
github.com/tdewolff/minify/v2/html
|
github.com/tdewolff/minify/v2/html
|
||||||
# github.com/tdewolff/parse/v2 v2.6.6
|
# github.com/tdewolff/parse/v2 v2.6.7
|
||||||
## explicit; go 1.13
|
## explicit; go 1.13
|
||||||
github.com/tdewolff/parse/v2
|
github.com/tdewolff/parse/v2
|
||||||
github.com/tdewolff/parse/v2/buffer
|
github.com/tdewolff/parse/v2/buffer
|
||||||
|
|
Loading…
Reference in New Issue