[Gambas-user] WebPage support in Gambas

jm joem at ...2671...
Tue Mar 20 10:57:35 CET 2012


On Sun, 2012-03-18 at 14:29 +0100, Benoît Minisini wrote:
> Hi,
> 
> In revision #4561, Gambas compiler now can compile WebPage.
> 
> ---- What is a WebPage ?
> 
> WebPage is a new "form" type that you enable in the IDE by using the
> 'gb.web' component.
> 
> It generates an HTML page from an HTML template having an ASP-like syntax.
> 
> A WebPage has two parts: a "class" part (like forms) stored in a *.class
> file, and an HTML template part stored in a *.webpage file. The HTML
> part is edited with a standard text editor.
> 
> At the moment, the following syntaxes are implemented:
> 
> <% Code %>
> 
> 	This introduces Gambas code inside the HTML page. Use the
> 	PRINT instruction to generate some HTML directly.
> 
> <%= Expression %>
> 
> 	This evaluates Expression and convert it to HTML with the
> 	Html$() function.
> 
> For example:
> 
> <html>
> <body>
> <%Dim sEnv As String%>
> <h2>Environment</h2>
> <table>
> <%For Each sEnv In Application.Env%>
> <tr>
>    <td><%=sEnv%></td>
>    <td><%=Application.Env[sEnv]%></rd>
> </tr>
> <%Next%>
> </table>
> <%
> Print "<p>"; Html("Cool isn't it?"); "</p>"
> %>
> </body>
> </html>
> 
> ---- How does it work internally?
> 
> The *.webpage file is transformed by the compiler into a Render() method 
> added to the *.class file. This Render() methods prints the generated 
> HTML to the standard output.
> 
> ---- So now?
> 
> Let's talk about what kind of useful syntax could be implemented!
> 
> I think that every template syntax should be enclosed by '<%' and '%>'.
> 
> I think that some sort of include is needed. For example, something like 
> <%{OtherWebPage}%> will be transformed into "OtherWebPage.Render()", so 
> that the OtherWebPage is included into the current one.
> 
> Nothing is engraved in the marble (french expression), so please tell 
> what you think about that, and if you have ideas!
> 
> Regards,
> 

What about making the include <%{OtherWebPage}%> 
into a C like format  i.e.  <% #include OtherWebPage.html %> 
and the renderer cleanly snips everything between <%..%>
including the <% and %>
and replaced it with whatever is inside OtherWebPage.html

The idea is that OtherWebPage.html can then have its own <%..%>
or just plain html which can change dynamically and it doesn't
affect how it gets interpreted from the original web page.

(Both the original scheme and this scheme could co-exist. When the
interpreter sees the # it switches to this C type of include mode.)


______________________________________________________________________________
This message has been checked for viruses and spam by Corpex using
the ArmourPlate Anti Virus and Anti Spam Scanning Service.
To find out more and see our email archiving service see
http://www.armourplate.com or call Corpex on UK 0845 050 1898.




More information about the User mailing list