On Mar 1, 1:50 pm, Jeppe Nejsum Madsen <[email protected]> wrote: > Marius <[email protected]> writes: > > Yes I believe this needs a bit more thinking. I didn;t spend too much > > time into this but perhaps add a LiftRules function to describe the > > dependency tree per page: > > > i.e. > > > var jsDependencies : (Req) => JsDependencyTree > > > where > > > case class JsDependencyTree (url: String, dependencies: > > JsDependencyTree *) // not sure if we'd need more info > > > The head merge (and potentially tail merge as well) mechanism in Lift > > would obtain the JsDependencyTree from LiftRules passing the Req > > (hence you can have a different dependency tree per page, or per > > application depending how you do pattern matching). Thus head merge > > would arrange the scripts according to the dependency tree. If a > > script is not in the dependency tree, it will just be appended to the > > scripts "list". > > I can't help to think this is a bit too low level. I would hate to have > to go in and modify LiftRules everytime I add/change something on a > page. Or maybe I don't understand it correctly? > > The way I see it, we can have some named values that corresponds to files > that need to be included (not sure about actual syntax), ie > > In snippet A: > > I need flot > > In snippet B: > > I need flot-piechart-plugin > > It seems fairly straight forward to compute a tree of dependencies > (basically the JsDependencyTree) having the correct order depending on > the above declarations: > > Process snippets in order and avoid duplicates: > > A needs Flot which needs Jquery -> [jquery, flot] > B needs flot-piechart-plugin which needs flot which needs jquery -> > [jquery, flot] ++ [jquery, flot, flot-piechart-plugin] = > [jquery, flot, flot-piechart-plugin]
I'm not sure that doing this per snippet is the right approach. The reason I'd put it LiftRules is that it CAN use a dependency tree per page ... after all, scripts are specified per page. > > There will have to be some validations (circular dependencies etc), but > this should be fixable.... > > > Adjacent features that I see: > > > 1. Detect if a dependency is missing > > 2. Construct a suite of dependency trees for most used JQuery plugins > > that people can easily re-use. > > That would be cool.... > > /Jeppe -- You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/liftweb?hl=en.
