On 9/9/17, Sean P. DeNigris <s...@clipperadams.com> wrote: > I'd like to create HTML via a DSL, like Seaside's canvas builder, but > without > loading a whole web framework. Any ideas? >
Hello Sean 1. One idea is _not_ to go for a HTML builder DSL but for a document model plus a generator. The generator is a visitor for the document object model. There is the Pillar document model and a visitor already in place. The current challenge - actually it is not a challenge - but just needs some time - is to extract the Pillar document model (easy) and the tests (needs more time) so that it can be loaded as a stand-alone package. See a long discussion in a thread in August about including Pillar in the image. The same then applies for the HTML generator. That is just a file-out from an image which has the full Pillar loaded. So IMHO it is not so much about inventing a new HTML builder DSL but to "mold" exisiting infrastructure into shape. This has the advantage that you can generate other representations easily. 2. Another idea is to look at HttpView2 done 10 years ago and come up with a revised version. http://wiki.squeak.org/squeak/182 "No Files. No HTML. Just Smalltalk code!" A builder: http://wiki.squeak.org/squeak/637 The element hierarchy: http://wiki.squeak.org/squeak/840 Discussion --------------- Comparison of 1 and 2 In 1 you use a document model (DOM) which is independent from the representation in HTML code. Than you have a generator generating the HTML code. The DOM is actually quite close to the HTML DOM. The Pillar DOM is nicely supported in Pharo with the inspector. Neither 1 nor 2 actually take CSS into account. An issue which is important when you generate web pages. So from the Smalltalk data model point of view (web document modeling) you have a Smalltalk object which is then rendered on two output streams - HTML - CSS Things get interesting in particular if you want to generate responsive web sites. The you need to do more on the CSS side and with generating pictures as well. Regards Hannes > > ----- > Cheers, > Sean > -- > Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html > >