2011-06-09 76 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

回答