[prev in list] [next in list] [prev in thread] [next in thread] 

List:       quanta
Subject:    Re: [Quanta] Compressing CSS (single-line rules)
From:       Rudy - Italy <rudy.troger () gmail ! com>
Date:       2009-02-17 22:54:33
Message-ID: 22068101.post () talk ! nabble ! com
[Download RAW message or body]


Hi again,

thank you both for your answers. James, thanks to You I built a great system
for multiloading css and js, all compressed with a minifier and gzipped.
Works great. 

Niko really helped me with the main thing I was after with this question,
the solution is a user defined action bound to a simple executable script
and a keyboard-shortcut bound to the action. After knowing how to define the
action in quanta to call the script, the rest was fairly easy. I just wanted
to post my script in case someone needs it too.

Here it is:

#!/bin/sh
cat | tr -d '\r' | tr -d '\n' | sed -e 's/\t/ /g' | sed -e 's/}/ }\n/g' |
sed -e 's/{/ { /g' | sed -e 's/,\s*\(.*\){/,\n\1{/g' | sed -e 's/\([;:]\)/\1
/g' | sed -e 's/\*\//\*\/\n/g' | sed -e 's/\s\s/ /g'

Thanks again & best regards
Rudy


Bugzilla from james.ellis@gmail.com wrote:
> 
> Hi
> 
> I guess you are trying to minimise the CSS (and JS) file size to decrease 
> download time ?
> Turning on Gzip or Deflate on your web server for these files helps a lot, 
> i've been able to squeeze files down by a factor of 5 or so, which has
> sped up 
> site speed no end.
> 
> One other handy trick is to combine all your JS and CSS files into one
> large 
> file (and Gzip / Deflate that file). I use a PHP script to do this, called
> by 
> the HTML pages. The resulting file can be cached so it isn't hit all the
> time.
> 
> <?php
> //multiloader.css.php
> header('Content-Type: text/css');
> $files = array(
> 	'file1.css',
> 	'file2.css',
> 	//etc etc
> );
> $files = new ArrayIterator($files);
> while($files->valid()) {
> 	$file = file_get_contents(dirname(__FILE__) . '/' . $files->current());
> 	print $file . "\n";
> 	$files->next();
> }
> ?>
> 
> (yes, you can also foreach over the array, although that creates a copy of
> the 
> array in memory).
> 
> then in your HTML doc:
> <link rel="stylesheet" type="text/css" href="/path/to/multiloader.css.php"  
> media="screen" />
> 
> For CSS you can only combine styles into one file for one "media"  -
> doesn't 
> work combining screen and print CSS together! For JS you can just sandwich 
> everything (careful of the calling order of some functions).
> 
> You can also go so far as to strip out CR and LF and write some regular 
> expressions to remove comments in the resulting file, to cut down on file
> size 
> even more.
> 
> This way, the actual CSS / JS files you edit are in human readable format,
> the 
> minimising happens on the fly on the web server.
> 
> The Yahoo yslow plugin for Firebug is also a good starting point for
> frontend 
> optimisation.
> 
> Cheers
> James
> 
> On Thursday 09 October 2008 05:34:52 Niko Sams wrote:
> > Hi,
> > 
> > You create yourself a simple user script that does this compressing.
> > A few regular expressions will do the job.
> > You can then integrate this user-script perfectly into quanta.
> > 
> > Niko
> > 
> > On Sun, Oct 5, 2008 at 5:09 PM, Rudy - Italy <rudy.troger@gmail.com>
> > wrote:
> > > Hello,
> > > 
> > > At home I Quanta is my only choice for editing CSS, at work I have to
> > use
> > > Windows and Topstyle. However there is a handy feature called "Style
> > > Sweeper" in Topstyle, I wondered if it is possible to achieve a similar
> > > functionality in Quanta. It would be enough to convert a stylesheet
> > like
> > > this:
> > > 
> > > #bar, #foo {
> > > bar: foobar;
> > > bar2: foobar2;
> > > } /* Foo Bar */
> > > 
> > > .foo2 {
> > > bar2: foo;
> > > }
> > > ...
> > > 
> > > into this:
> > > 
> > > #bar,
> > > #foo { bar:foobar; bar2: foobar2; } /* Foo Bar */
> > > .foo2 { bar2: foo; }
> > > ...
> > > 
> > > without all the silly stuff like combine rules etc. which only messes
> > up
> > > the code. Simply remove newlines from the rules, and every rule in a
> > > single line, possibly available by keyboard shortcut. Is there a way to
> > > easily integrate such functionality?
> > > 
> > > Thanks for any help,
> > > Rudy
> > > 
> > > 
> > > --
> > > V
> 
> _______________________________________________
> Quanta mailing list
> Quanta@mail.kde.org
> https://mail.kde.org/mailman/listinfo/quanta
> 
> 

-- 
View this message in context: \
http://www.nabble.com/Compressing-CSS-%28single-line-rules%29-tp19825437p22068101.html
 Sent from the quanta-user list2 mailing list archive at Nabble.com.

_______________________________________________
Quanta mailing list
Quanta@mail.kde.org
https://mail.kde.org/mailman/listinfo/quanta


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic