HTML en XML editor gebaseerd op DOM

Pagina: 1
Acties:

  • mpegernie
  • Registratie: November 2000
  • Laatst online: 12-03-2016
Gisteren had ik het volgende idee dat ik even met de web-devvers hier wil delen en graag een kleine discussie over wil hebben. Het onderwerp schurkt erg tegen Software development aan maar omdat het hier om een concept gaat dat gebaseerd is op diverse webstandaarden post ik het in W&G. Het is een heel lang verhaal :O maar ik hoop dat ik de fantasie van enkele webdevvers hier kan prikkelen. ;)

Het probleem: programma logica bemoeit zich met de weergave
Voor een ander -hier verder niet besproken- Mozilla XPCOM Component dat ik wil schrijven heb ik een project website nodig om gemakkelijk o.a. downloads, document en nieuws te beheren. Omdat ik geen zin heb om weer zelf een PHP site te schrijven waarvan ik weet dat ik de classes nooit meer zal gebruiken ging ik op zoek naar een modulair CMS. Na van de week even naar PHPnuke (yuk) e.a. te hebben gekeken kwam ik bij Drupal uit. Het ziet er uit als een mooi CMS maar 1 ding stoort me weer: de templates. Ook Drupal laat modules HTML eruit gooien waardoor je nooit volledige contole over de HTML hebt en het zich maar lastig en niet zonder hacken laat stylen.

Mozilla to the rescue
Is het niet een mooi idee om een template systeem voor alle HTML output te laten zorgen en de modules alleen voor de functionaliteit. Daarbij moest ik al snel denken aan de DOM Inspector in Mozilla. De inspector is leuk speelgoed om je document structuur te bekijken en te doorzoeken maar biedt geen echte functionaliteit.

Als dat template systeem nou eens is een Gecko based client heeft, gebaseerd op de DOM en de componenten uit de inspector (inIDOMView, inIDOMUtils). Via de GUI zou het mogelijk moeten zijn het document zowel in een tree inspector als in een browser te bekijken (Denk aan de DOM inspector). Elementen kunnen worden toegevoegd uit een lijst die mss zelfs wordt samengesteld mbv de huidige doctype. Textnodes en attributes kunnen vervolgens van hardcoded informatie worden voorzien of worden gekoppeld aan een module uit het CMS. Ik denk hierbij bijvoorbeeld aan een module "Article" die haar interface aan de templater publiek maakt en daarbij dingen als Article.id, Article.title en Article.body aanbied.

Wat aan dit plaatje natuurlijk nog mist is de informatie stroom terug naar de module toe door GET en POST. Een module als "login" zou voor een volledige implementatie bijvoorbeeld een form element vereisen en hiervan attributes als name, method en action claimen. GET en POST zijn wel iets lastiger en natuurlijk vereist maar hier valt in het CMS ook wel iets op te vinden. Hiervoor zou ook een speciale module kunnen worden geschreven waar (bijv) "login" zich bij aanmeld en verteld welke vars het via GET of POST verwacht.

Conclusie
Het idee is nog vers en niet echt diep uitgedacht maar ik denk dat het goed mogelijk zou moeten zijn, ik hou het voorlopig ieg in mijn achterhoofd. Mozilla heeft al genoeg componenten beschikbaar om een mooie client te schrijven, probleem is alleen wel weer dat er naast een beschrijving van de interfaces veel te weinig informatie is over het gebruik.
Ook een HTML based oplossing met JS libraries zou mogelijk zijn.

Let wel dat ik zelf geen tot weinig evaring met klanten of professionele CMS'en heb. Ik ben dan ook erg nieuwsgierig naar de meningen hier. Wat ik wel zie (op mijn stage, bij vrienden met webdesign bedrijfjes en andere webdevvers) is de totaal ondoorzichtige en onflexibele workflow -als dat zo mag heten- die wordt gehanteerd en resulteert in een veel te hoge factuurprijs ivg tot de geleverde qualiteit. (nofi betreffende deze, maar ik geloof simpelweg dat er met de huidige technieken zoveel meer mogelijk is). Wanneer iemand concrete programma's kent die gebaseerd zijn op dit concept dan hoor ik het natuurlijk graag!
Verder ben ik ook niet heel erg op de hoogte van de mogelijkheden en voor-/nadelen van Open Source licenties vs. Business logica van klanten.

Tot slot nog even de volgende voordelen, ideëen en een documentje bij IBM.com:


Voordelen van een systeem als deze zijn:
* gestructureerde workflow, wanneer er met de klant en de vormgever duidelijk is gemaakt wat er moet komen, hoe het eruit ziet en hoe het werkt zou dit een mooie tool zijn voor implementatie. Een UML gerichte aanpak zou naar mijn idee hier goed op kunnen worden losgelaten.
* De opzet met DOM laat niet alleen xHTML toe maar ook XUL of andere XML, oftwel, volledige controle over de output van informatie.
* Eenvoudig wijzigen van bestaande layout, content en stijl van een website, dit kan geintergreerd in een CMS maar is in principe ook bruikbaar voor 'losse' XML documenten.
* Forceren van wel-formed en valide documenten (kan natuurlijk ook een con zijn ;) )


Opties die ik nog niet besproken heb:
* Overzicht van alle CSS definities en rules, deze op een eenvoudige manier aan elementen hangen, kunnen bewerken en mss een manier om ze te beheren/categoriseren. (iedere webdevver hier kent denk ik wel de lange waar-heb ik-die-definitie-nu-gelaten CSS documenten, ingedeeld met her en der wat comments)
* Met een soort van macro's of mozilla's eigen overlays zouden losse stukken template kunnen worden geschreven die door de engine worden gemerged tot document. ook deze kunnen door de templater worden beheert/gecategoriseert.

Mss niet helemaal relavant hier maar wel met hetzelfde probleem: IBM heeft een artikel over HTML output icm het gebruik van Java servlets ( Response.write, out.println of echo, allemaal dezelfde ranzige problemen)
Walking the Web with DOM

edit: ook mss handig, meer info op XULplanet, IBM.com en Mozilla.org.
*Dom inspector interfaces
*An introduction to XPCOM
*http://www.mozilla.org/scriptable/

Voor iemand die niet bekend is met XPCOM, Mozilla's JS mogelijkheden, GUI's beschrijven met XUL, etc is het ws erg abstract en veel informatie. Ik (hoop!) in de toekomst een website te hebben die voor webdevvers wat meer concrete informatie bied over de mogelijkheden van deze.

[ Voor 10% gewijzigd door mpegernie op 26-06-2004 15:01 ]

"The Major advances in civilization are processes that all but wreck the societies in which they occur." -A. N. Whitehead


Verwijderd

Laat me dit even samenvatten: je wilt een op Mozilla gebaseerd CMS maken waarbij functionaliteit en templates gescheiden worden beheerd?

Mozilla is i.c.m. de XUL technologie volgens mij zeer geschikt om een cross-platform CMS applicatie mee te maken. Daar ben ik van overtuigd. Ik snap alleen nog niet goed hoe je die scheiding tussen functionaliteit en structuur wilt realiseren.

  • mpegernie
  • Registratie: November 2000
  • Laatst online: 12-03-2016
Daar zou een speciaal modulair CMS voor moeten worden geschreven. Ik heb ergens het idee dat zoiets kan op een vergelijkbare manier met COM/XPCOM, maar de implementatie ontbreekt idd nog. Bij XPCOM (en COm dacht ik ook maar heb ik geen enkele ervaring mee) wordt de functionaliteit publiek gemaakt in een IDL (Interface Definition Language), iets vergelijkbaars zouden modules in dit CMS moeten doen.

Ik snap dat het een hele bult werk is, iets waar ik atm helemaal geen tijd voor heb maar het kan best eens iets op mijn to-do list worden. Van de server-side mogelijkheden van mozilla (if any) ben ik niet echt op de hoogt maar een combinatie van gecko-based client en PHP serverside functionaliteit lijkt me een goede start.

[ Voor 66% gewijzigd door mpegernie op 26-06-2004 15:03 ]

"The Major advances in civilization are processes that all but wreck the societies in which they occur." -A. N. Whitehead