Spec for ZenGarden.Module (Shot in the Dark)
Tags:
Shot in the dark, I know, but its going to be at least a month before I'll have time to build this correctly. I wouldn't ask if it were not for fear that the idea will loose momemtum without a place for interested folks to get together soon... Plus, I imagine a few folks might understand how useful this module could be. Thus, here's a shot in the dark, and basic spec of how the module is to work:
zengarden.module -- a module that enables an open-source approach to a drupal theme framework, and reusable CSS library. Yes, in many its kind of like the zen garden, but really more like listamatic... Here's how it would work:
I. A method to set a standard snippet of HTML markup. A taxonomy-based system that handles a standard set of markup that every drupal install generates. Basically,we'd have special node type where one stored a standard HTML snippet that could be referenced via taxonomy from the "submit a style" form.
B. A method to submit, and revise CSS styles -- The "submit a style" form is also a simple node. The catch is that it grabs the markup from the part a) on the basis of taxonomy selection, and with the visble body being sent to a PHP generated stylesheet and to a <code></code> area of the template for reference. See Listamatic for a working example that works in a similar way.
C. Chaos prevention, and simple methods for displaying multiple revisions of a style on one page. Say someone enters the style "#content .sidebar .block {border:4em;position:absolute;z-index:20;}", to send this as a raw style directly to stylesheet would be to incite CHAOS OF UNIMAGINABLE PROPORTIONS. Therefore, each node, and revision is to automatically generate a unique id on the basis of node ID, and revsion number. Thus, if user a submits ".block {position:missionary;}" and nid = 2, the node needs to be wrapped like a so: <div class="node" id="zen-node-2r0 (for no revision)>, thus the style is sent to stylesheet as "#zen-node-2r0 .block {position:missionary;}" . Translation: we could enable very colorful galleries of contributed styles, and provide an easy way for people to talk about styles, suggest improvements to the CSS, or the visual result of it.
I think this tool would be very useful to the drupal community. It seems relatively easy to build -- and I will eventually. I'm just way to busy at the moment, and need this to get that project gizmo thing up before the momemtum is lost. Anyways, food for thought -- there's probably a few loose ends in this spec, but I think the general principle, and approach is super sound. Let me know if you have any questions, otherwise, I can't wait to code this module!