@@ -3,6 +3,7 @@ package cmd
33import (
44 "fmt"
55 "regexp"
6+ "strconv"
67 "strings"
78)
89
@@ -51,25 +52,38 @@ func (c *Command) makeProperty(str string) string {
5152 str = mediaRegex .ReplaceAllString (str , "" )
5253 str = prefixRegex .ReplaceAllString (str , "" )
5354
55+ strict := false
5456 last := strings .LastIndex (str , "-" )
57+ if strings .Contains (str , "~" ) {
58+ strict = true
59+ last = strings .LastIndex (str , "~" )
60+ }
5561
5662 if last == - 1 {
5763 return str
5864 }
5965
6066 value := str [last + 1 :]
6167
62- var intValue int
63- _ , err := fmt .Sscanf (value , "%d" , & intValue )
68+ intValue , err := strconv .Atoi (value )
6469
6570 if err == nil {
6671 // it ends in a number it may be a color, e.g.: color-red-400
6772 str , ok := c .makeColor (str )
6873 if ok {
6974 return str
7075 }
71- val := float32 (intValue ) / float32 (c .Config .Divider )
72- return str [:last ] + ":" + fmt .Sprintf ("%v" , val ) + c .Config .Unit
76+ val := float32 (intValue )
77+ if ! strict {
78+ val = float32 (intValue ) / float32 (c .Config .Divider )
79+ }
80+
81+ property := str [:last ] + ":" + fmt .Sprintf ("%v" , val )
82+
83+ if strict {
84+ return property
85+ }
86+ return property + c .Config .Unit
7387 }
7488
7589 return str [:last ] + ":" + value
@@ -117,7 +131,7 @@ func (c *Command) makeMediaClass(str string) {
117131 _ , ok := c .MediaMaps [strs [0 ]]
118132
119133 if ! ok {
120- fmt .Printf ("%v media not found in .styler" , strs [0 ])
134+ fmt .Printf ("%v media not found in .styler\n " , strs [0 ])
121135 return
122136 }
123137
@@ -131,26 +145,9 @@ func (c *Command) makeMediaClass(str string) {
131145}
132146
133147func (c * Command ) makeClassName (str string ) string {
134- t := classType (str )
135-
136- switch t {
137- case "prefix" :
138- return c .makeClassNamePrefix (str )
139- case "media" :
140- return c .makeClassNameMedia (str )
141- default :
142- return str
143- }
144- }
145-
146- func (c * Command ) makeClassNameMedia (str string ) string {
147- return strings .ReplaceAll (str , "@" , "\\ @" )
148- }
149-
150- func (c * Command ) makeClassNamePrefix (str string ) string {
151- strs := strings .Split (str , ":" )
152- if len (strs ) < 2 {
153- return str
154- }
155- return strs [0 ] + "\\ :" + strs [1 ] + ":" + strs [0 ]
148+ str = strings .ReplaceAll (str , "@" , "\\ @" )
149+ str = strings .ReplaceAll (str , "%" , "\\ %" )
150+ str = strings .ReplaceAll (str , ":" , "\\ :" )
151+ str = strings .ReplaceAll (str , "~" , "\\ ~" )
152+ return str
156153}
0 commit comments