That would simply assume that any URL within the CSS file is a relative URL, which seems to be a safe bet. Having absolute URLs in there doesn't make too much sense anyway, at least not in this context.
Jörn On Sun, Oct 5, 2008 at 7:11 AM, Ca-Phun Ung <[EMAIL PROTECTED]> wrote: > Good stuff! One post from Jörn is better than a thousand from me, hehe :) > I'd say however that even the /* [relative-url] */ marker is not necessary > and just another chance for error. What you could do simply is find all > url(....) references and extract the necessary URL details within. It's > probably not as simple as that but you get the gist. :) > > On Sun, Oct 5, 2008 at 2:52 AM, Yehuda Katz <[EMAIL PROTECTED]> wrote: >> >> That sounds great. I would still want a cssDir and imagesDir in the json, >> so that I could simply use the last part of the relative URL marked with /* >> [relative-url] */ and know where the images actually were in the package. >> -- Yehuda >> >> On Sat, Oct 4, 2008 at 2:39 AM, Jörn Zaefferer >> <[EMAIL PROTECTED]> wrote: >>> >>> A token that a plugin user must replace isn't acceptable, as it defies >>> the drop-in nature of most plugins. But there are alternatives that >>> would allow Yehuda to automate replacing the relative directory URL >>> without anyone else having to modify the file. >>> >>> Something like this: >>> background-image: url(../img/bla.png) /* [relative-url] */ >>> >>> Writing a script that looks for these inline comments and modifies the >>> content accordingly wouldn't be any harder then the %imagePath% token. >>> >>> In any case, we should define a convention for packaging resources, so >>> that a plugin author can stick with the convention, without having to >>> specify the metadata. Based on that convention and inline comments a >>> plugin user could automate moving resources to project-specific >>> folders. >>> >>> About the other metadata.json elements: >>> >>> How about keeping plugin names in sync with file names? jquery.tabs.js >>> -> jquery.tabs; ui.core.js -> ui.core >>> >>> What about versioned depenendencies? Dependency to a certain jQuery >>> version? >>> >>> So far plugins are always packaged into a single file, something like >>> utility.tabs.jquery isn't in wide use. I don't see why that should be >>> changed. >>> >>> So, to summarize: >>> >>> { >>> name: "jquery.tabs", >>> author: "Yehuda Katz", >>> version: "1.0" >>> dependencies: { >>> "ui.core": "1.6", >>> "ui.mouse": "1.6" >>> } >>> } >>> >>> Jörn >>> >>> On Sat, Oct 4, 2008 at 9:49 AM, Ca-Phun Ung <[EMAIL PROTECTED]> wrote: >>> > I understand what you are saying - and believe me I have much >>> > experience >>> > with "real-projects" that have their separate image/css/javascript >>> > folders >>> > set in a certain way. What I'm trying to impart is the idea of >>> > de-coupling >>> > so that plugin assets are independent of whatever system it is placed >>> > into. >>> > By adding a %imgDir% token to CSS we're already assuming developers >>> > wants to >>> > change CSS files whereas some might quite happily use the plugin as-is, >>> > placing it inside a dedicated plugins sub-folder and link to the plugin >>> > css >>> > files directly. >>> > The point is you don't have to map the structure implanted inside a >>> > plugin >>> > to the structure on your system. They could live quite happily >>> > together. >>> > What we're dealing with here is a matter of aesthetics which is not >>> > something you could get right for everyone. >>> > If it is absolutely essential that all images/css are placed inside >>> > that >>> > specified by the system then I think the automated tool could quite >>> > easily >>> > handle this. It should be quite simple to write a CSS parser in Ruby or >>> > even >>> > a simple regex to replace the combination found inside url(...) so it >>> > replaces anything before the image filename with whatever folder >>> > structure >>> > the system chooses. >>> > On Sat, Oct 4, 2008 at 3:10 PM, Yehuda Katz <[EMAIL PROTECTED]> wrote: >>> >> >>> >> People who download plugins today have to go modify CSS files to make >>> >> them >>> >> match their existing directory structure. I've had to contend with >>> >> this more >>> >> than once with the tabs plugin, including having to figure out the >>> >> issue in >>> >> the first place. Typical downloaders could use the find/replace >>> >> feature of >>> >> their editors to quickly set up the CSS the way it belongs in their >>> >> project, >>> >> and we could document this, instead of developers, every time, having >>> >> to go >>> >> into the bundled CSS to figure out the expectations of the plugin. >>> >> We could potentially also set up packages.jquery.com to automatically >>> >> replace the token for a non-tokenized version (although, again, I >>> >> think >>> >> making assumptions about people's directory structures doesn't map >>> >> well onto >>> >> real-world projects). >>> >> -- Yehuda >>> >> >>> >> On Fri, Oct 3, 2008 at 9:33 PM, Ca-Phun Ung <[EMAIL PROTECTED]> >>> >> wrote: >>> >>> >>> >>> A few more potential issues with the %imgDir% token are: >>> >>> 1. Plugin developers need to remember to add the token back in every >>> >>> time >>> >>> they package the plugin for release. >>> >>> 2. Those who simply download plugins without an automated tool will >>> >>> have >>> >>> a problem with this token. >>> >>> 3. If we're saying that this is a separate repository under >>> >>> packages.jquery.com, we may come into sync'ing issues as plugin >>> >>> developers >>> >>> have to upload their plugins twice. One version with the token and >>> >>> another >>> >>> without. >>> >>> On Sat, Oct 4, 2008 at 12:05 PM, Ca-Phun Ung <[EMAIL PROTECTED]> >>> >>> wrote: >>> >>>> >>> >>>> But if we don't touch CSS and image locations we're not assuming >>> >>>> anything - the plugin developer should make this decision and not >>> >>>> the >>> >>>> automation tool. The automation tool should simply copy over the >>> >>>> plugin as >>> >>>> is and use the metadata.json to determine what is needed for >>> >>>> installation. >>> >>>> If we start dealing with image and CSS re-location it will make >>> >>>> plugin >>> >>>> maintenance more difficult, i.e. what happens if you decide to >>> >>>> delete the >>> >>>> plugin? >>> >>>> >>> >>>> >>> >>>> On Sat, Oct 4, 2008 at 4:34 AM, Yehuda Katz <[EMAIL PROTECTED]> >>> >>>> wrote: >>> >>>>> >>> >>>>> The problem is that you *can't* assume that the img folder remains >>> >>>>> relative to the css folder. People are putting jQuery inside of >>> >>>>> other >>> >>>>> directory structure (like Rails or Merb) which have their own >>> >>>>> conventions, >>> >>>>> and then it's up to the individual developer to figure out how to >>> >>>>> modify the >>> >>>>> relative paths. >>> >>>>> I'd like to be able to automate the installation of jQuery plugins, >>> >>>>> which means not having to figure this out manually. >>> >>>>> -- Yehuda >>> >>>>> >>> >>>>> On Fri, Oct 3, 2008 at 8:54 AM, Ca-Phun Ung <[EMAIL PROTECTED]> >>> >>>>> wrote: >>> >>>>>> >>> >>>>>> Hi Yehuda, >>> >>>>>> Interesting proposal. >>> >>>>>> A note on CSS images. I'm not sure the %imageDir% token will be of >>> >>>>>> any >>> >>>>>> use in CSS because CSS is capable of locating images relative to >>> >>>>>> itself. >>> >>>>>> i.e. if we have a structure like >>> >>>>>> /assets >>> >>>>>> -- /css/style.css >>> >>>>>> -- /img/logo.png >>> >>>>>> Then as long as the img folder remains relative to the css folder, >>> >>>>>> whereever it is copied the following will always hold true: >>> >>>>>> _style.css_ >>> >>>>>> div#logo { >>> >>>>>> background: url( ../img/logo.png ) no-repeat; >>> >>>>>> } >>> >>>>>> >>> >>>>>> >>> >>>>>> On Fri, Oct 3, 2008 at 2:31 PM, Yehuda Katz <[EMAIL PROTECTED]> >>> >>>>>> wrote: >>> >>>>>>> >>> >>>>>>> For a while, I've been trying to make it possible to build a >>> >>>>>>> system >>> >>>>>>> to automatically install jQuery plugins into an application. In >>> >>>>>>> particular, >>> >>>>>>> I've wanted to be able to let Merb (a Ruby web framework I >>> >>>>>>> maintain >>> >>>>>>> -- http://merbivore.com/) install jQuery plugins simply and >>> >>>>>>> easily. >>> >>>>>>> There are a few problems I needed to see solved: >>> >>>>>>> >>> >>>>>>> A way for package authors to describe the locations of the >>> >>>>>>> javascript >>> >>>>>>> files, the CSS files, and any images >>> >>>>>>> A way for package authors to declare required dependencies >>> >>>>>>> A way to write CSS files that don't need to provide explicit >>> >>>>>>> image >>> >>>>>>> paths >>> >>>>>>> >>> >>>>>>> I want to propose a packaging format that plugin authors can use. >>> >>>>>>> To >>> >>>>>>> get the ball rolling, I'm proposing a JSON file called >>> >>>>>>> metadata.json: >>> >>>>>>> { >>> >>>>>>> "name": "tabs.jquery", >>> >>>>>>> "author": "Yehuda Katz", >>> >>>>>>> "dependencies": [ >>> >>>>>>> "core.ui.jquery", >>> >>>>>>> "mouse.ui.jquery" >>> >>>>>>> ], >>> >>>>>>> "javascript": [ >>> >>>>>>> "lib/utility.tabs.jquery", >>> >>>>>>> "lib/tabs.jquery", >>> >>>>>>> ], >>> >>>>>>> "cssDir": "css", >>> >>>>>>> "imageDir": "images" >>> >>>>>>> } >>> >>>>>>> Additionally, I'd like to propose that CSS files containing image >>> >>>>>>> paths use the token %imageDir% to refer to the directory where >>> >>>>>>> the images >>> >>>>>>> will be placed. This will allow automated tools (or even users >>> >>>>>>> themselves) >>> >>>>>>> to quickly modify CSS files with the correct relative (or >>> >>>>>>> absolute) path. >>> >>>>>>> Does this stuff make sense? People seemed to be, in general, in >>> >>>>>>> favor >>> >>>>>>> of a more consistent package format, so I thought I'd get the >>> >>>>>>> ball rolling >>> >>>>>>> here. >>> >>>>>>> -- >>> >>>>>>> Yehuda Katz >>> >>>>>>> Developer | Engine Yard >>> >>>>>>> (ph) 718.877.1325 >>> >>>>>>> >>> >>>>>>> >>> >>>>>> >>> >>>>>> >>> >>>>>> >>> >>>>>> -- >>> >>>>>> Ca-Phun Ung >>> >>>>>> + Yelotofu <http://yelotofu.com> >>> >>>>>> + css, django, hongkong, html, javascript, php >>> >>>>>> >>> >>>>>> >>> >>>>> >>> >>>>> >>> >>>>> >>> >>>>> -- >>> >>>>> Yehuda Katz >>> >>>>> Developer | Engine Yard >>> >>>>> (ph) 718.877.1325 >>> >>>>> >>> >>>>> >>> >>>> >>> >>>> >>> >>>> >>> >>>> -- >>> >>>> Ca-Phun Ung >>> >>>> + Yelotofu <http://yelotofu.com> >>> >>>> + css, django, hongkong, html, javascript, php >>> >>> >>> >>> >>> >>> >>> >>> -- >>> >>> Ca-Phun Ung >>> >>> + Yelotofu <http://yelotofu.com> >>> >>> + css, django, hongkong, html, javascript, php >>> >>> >>> >>> >>> >> >>> >> >>> >> >>> >> -- >>> >> Yehuda Katz >>> >> Developer | Engine Yard >>> >> (ph) 718.877.1325 >>> >> >>> >> >>> > >>> > >>> > >>> > -- >>> > Ca-Phun Ung >>> > + http://yelotofu.com >>> > + css, django, hongkong, html, javascript, php >>> > >>> > > >>> > >>> >>> >> >> >> >> -- >> Yehuda Katz >> Developer | Engine Yard >> (ph) 718.877.1325 >> >> > > > > -- > Ca-Phun Ung > + http://yelotofu.com > + css, django, hongkong, html, javascript, php > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "jQuery Development" group. To post to this group, send email to jquery-dev@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/jquery-dev?hl=en -~----------~----~----~----~------~----~------~--~---