better CSS optimization

This commit is contained in:
Mark Pilgrim
2009-09-27 02:43:53 -04:00
parent a57a28aeae
commit d06da808f7
4 changed files with 19 additions and 20 deletions
+6 -9
View File
@@ -104,17 +104,13 @@ java -jar util/yuicompressor-2.4.2.jar build/dip3.css > build/$revision.css && \
sed -i -e "s|;}|}|g" build/m-$revision.css && \
sed -i -e "s|;}|}|g" build/p-$revision.css || die "Failed to minimize CSS"
# put CSS inline
# put CSS inline and remove unused CSS properties on a page-by-page basis
echo "inlining CSS"
css=`cat build/$revision.css`
mobilecss=`cat build/m-$revision.css`
printcss=`cat build/p-$revision.css`
sed -i -e "s|<link rel=stylesheet href=dip3.css>|<style>${css}</style>|g" -e "s|<link rel=stylesheet media='only screen and (max-device-width: 480px)' href=mobile.css>|<style>@media screen and (max-device-width:480px){${mobilecss}}</style>|g" -e "s|<link rel=stylesheet media=print href=print.css>|<style>@media print{${printcss}}</style>|g" -e "s|</style><style>||g" build/*.html || die "Failed to inline CSS"
# remove unused CSS properties on a page-by-page basis
echo "removing unused CSS"
for f in build/*.html; do
python2.6 util/lesscss.py "$f" || die "Failed to remove unused CSS"
css=`python2.6 util/lesscss.py "$f" "build/$revision.css"` || die "Failed to remove unused CSS"
mobilecss=`python2.6 util/lesscss.py "$f" "build/m-$revision.css"` || die "Failed to remove unused CSS"
printcss=`python2.6 util/lesscss.py "$f" "build/p-$revision.css"` || die "Failed to remove unused CSS"
sed -i -e "s|<link rel=stylesheet href=dip3.css>|<style>${css}</style>|g" -e "s|<link rel=stylesheet media='only screen and (max-device-width: 480px)' href=mobile.css>|<style>@media screen and (max-device-width:480px){${mobilecss}}</style>|g" -e "s|<link rel=stylesheet media=print href=print.css>|<style>@media print{${printcss}}</style>|g" -e "s|</style><style>||g" "$f" || die "Failed to inline CSS"
done
# minimize URLs
@@ -127,6 +123,7 @@ chmod 755 build/examples build/j build/i build/d && \
chmod 644 build/*.html build/*.css build/*.txt build/*.zip build/examples/* build/examples/.htaccess build/j/* build/j/.htaccess build/i/* build/i/.htaccess build/d/.htaccess build/.htaccess || die "Failed to reset file permissions"
# ship it!
#die "Aborting without publishing"
echo -n "publishing"
rsync -essh -a build/d/.htaccess build/*.zip diveintomark.org:~/web/diveintopython3.org/d/ && \
echo -n "." && \