2011-06-09 78 views
3

即时压缩样式表样式表到1线,采用解压缩使用的sed

cat stylesheet.css | gsed "s|/\*\(\\\\\)\?\*/|/~\1~/|g" -e "s|/\*[^*]*\*\+\([^/][^*]*\*\+\)*/||g" -e "s|\([^:/]\)//.*$|\1|" -e "s|^//.*$||" | tr '\n' ' ' | sed -e "s|/\*[^*]*\*\+\([^/][^*]*\*\+\)*/||g" -e "s|/\~\(\\\\\)\?\~/|/*\1*/|g" -e "s|\s\+| |g" -e "s| \([{;:,]\)|\1|g" -e "s|\([{;:,]\) |\1|g" 

即时试图逆转这一过程。

cat stylesheet-compress.css | gsed 's/\([;{]\)\([^\n]\)/\1\n\t\2/g' | gsed 's/\([^}]\)}/\1;\n}\n\n/g' | gsed 's/{/ {/g' | gsed 's/[,]/& /g' | gsed '/}/ { n;n; s/}\n\([^\n]\)/}\n\n\1/ }' 

作品的大部分,但一些CSS的条目有缩进和额外的;的

+4

看起来像正则表达式地狱:^( – 2011-06-09 03:27:47

+3

我不明白如何可以预计这是可能的。将所有内容放在一行中删除有关它在多行上的方式的信息。把信息放在多行上如果你只是选择一个,它不一定是原来的。 – 2011-06-09 03:35:56

+0

复制问题区域 - http://stackoverflow.com/questions/787789/any-recommendations-for-a-css- minifier你真正想要做的就是缩小CSS,同时重新排序规则以获得更好的gzip压缩。 – mrk 2011-06-09 03:57:48

回答