[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