# \[ANN\] SnS Extension v0.4

**URL:** <https://www.ruby-forum.com/t/ann-sns-extension-v0-4/139231>\
**Category:** Radiant CMS\
**Created:** [June 2, 2008, 6:38am UTC](https://www.ruby-forum.com/t/ann-sns-extension-v0-4/139231 "2008-06-02T06:38:32Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![mahadewa](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9e8a1a/32.png) [@mahadewa](https://www.ruby-forum.com/u/mahadewa)\
**Post date:** [June 2, 2008, 6:38am UTC](https://www.ruby-forum.com/t/ann-sns-extension-v0-4/139231/1 "2008-06-02T06:38:32Z")

</div>

Over the weekend I added file uploading capability so now you can upload  
your stylesheets and javascripts right into the database – Woo hoo!  
This is my first stab at using Rails uploading and RJS so I’d really  
love any feedback anyone has to offer.

You can get it here (while supplies last):  
[https://secure.svnrepository.com/s\_swanki/open/radiant/extensions/styles\_n\_scripts/tags/latest](https://secure.svnrepository.com/s_swanki/open/radiant/extensions/styles_n_scripts/tags/latest)

From the README…

The Styles 'n Scripts extension was an extension requested by John L.  
as a means of separating javascripts & stylesheets from other site  
content  
stored in pages.

# USAGE

Using this extension is rather painless. If you can use the rest of  
Radiant,  
using these additions should feel obvious. There are a couple of things  
to take  
note of, however.

- The CSS and JS tabs are where you create, edit, and delete  
stylesheets and  
javascripts. But you need Administrator or Developer permissions to  
see  
these tabs.

- If you want to reference or otherwise use your script or stylesheet  
in one  
of your pages, there are \<r:stylesheet\> and \<r:javascript\> tags.  
These tags  
can be used to inject your CSS or JS code into the page or just  
render a  
link to the file itself. (Click the ‘available tags’ link when  
editing your  
Page to learn more about these two tags and their options).

- If you really want to get fancy with your CSS and JS files, you can  
also use  
the corresponding \<r:stylesheet\> or \<r:javascript\> to reference  
other files  
of the same type. So now you can create a single CSS or JS file  
that is  
made up of sub-files to cut down on server requests and speed up  
page load  
time – viola, now Radiant offers asset packaging just like Rails!  
(And the  
caching mechanism is smart enough to keep track of your file’s  
dependencies)

That’s it. Everything else is either too obvious to bother with here or  
automagical and/or too top secret to disclose ;-).

# WHY CHANGE THINGS?

As John sees it, the pages tab is for storing your main content. (Think  
of the  
tree view as the list of available destinations for your users. Sure,  
they need  
stylesheets and javascripts, but those are supporting files – much like  
images  
– that augment your pages).

There are a number of interesting benefits gained by this approach:

- CSS and JS files now get designer-level permissions – not  
user-level.

- These files are now cached differently. Rather than the 5-minute  
expiration  
on pages, these files can now report to the browser the true  
LAST-MODIFIED  
date so we don’t have to serve up these files constantly. We can  
put the  
user’s browser caching to work.

- This properly separates the concerns of Pages and Text Assets. (I  
mean, do  
javascripts really need a layout or stylesheets a breadcrumb?).  
Easier to  
understand for the user and easier to develop for.

- Allows extensions to better interact with pages. For example, a  
search  
extension can now safely parse all the pages without search terms  
like:  
“background” returning all your stylesheets.

- Declutter the pages tree view so that it only shows what your  
clients care  
about – the things they’d aim their browser at (see John’s point  
above).

- This opens the door for validation, minification and obfuscation of  
scripts  
and stylesheets (I’m thinking that these features belong in their  
own  
extension(s) but they’re _much_ easier to build now that CSS and JS  
distinct  
objects).

---

<div class="post-metadata">

**Author:** ![mahadewa](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/9e8a1a/32.png) [@mahadewa](https://www.ruby-forum.com/u/mahadewa)\
**Post date:** [June 8, 2008, 6:35pm UTC](https://www.ruby-forum.com/t/ann-sns-extension-v0-4/139231/2 "2008-06-08T18:35:51Z")

</div>

Chris P. wrote:

> Over the weekend I added file uploading capability so now you can  
> upload your stylesheets and javascripts right into the database – Woo  
> hoo! This is my first stab at using Rails uploading and RJS so I’d  
> really love any feedback anyone has to offer.
> 
> You can get it here (while supplies last):  
> [https://secure.svnrepository.com/s\_swanki/open/radiant/extensions/styles\_n\_scripts/tags/latest](https://secure.svnrepository.com/s_swanki/open/radiant/extensions/styles_n_scripts/tags/latest)

Wow, this looks awesome! Thanks a lot!

Cheers,  
Mohit.  
6/9/2008 | 12:31 AM.
