Open cxbrooks opened 12 years ago
HTMLPageAssembler
Read through idea from Prof. Lee (below)
Ideally, use parser on input file and input content from ports -- Create DOM (document object model) from input file -- Create new objects from content on ports -- Insert new objects into DOM from input file -- Look at XMLToken.java and XMLParser.java – already has an XMLParser implemented. Does the XMLParser work on HTML as well? Need DTD (document type definition) for HTML? (Should be a standard one).
Look at ExportHTMLAction.java, HTMLModelExporter.java and WebExporter, WebExportable interface
-- HTMLPageAssembler should implement WebExporter interface
-- Class diagram checked in under /org/ptango/ptolemy/doc
-- User would add named input ports and would specify a template file (i.e. class would have a FileParameter variable for the user to specify a file).
-- Template file is assumed to have some named
-- Actor would have one output port; complete HTML page would be produced on this output port -- Check for mismatches. Extra
-----Original Message----- From: Edward A. Lee [mailto:eal@ eecs.berkeley.edu] Sent: Tuesday, June 12, 2012 12:00 PM To: Latronico Elizabeth (CR/RTC3.1-NA) Cc: ptango@ chess.eecs.berkeley.edu Subject: Re: [Ptango] Web server open issues
I think the way to deal with (8) is:
Enhance the "export to web" capability (and hence the
HTMLModelExporter actor) to have a "templatePage"
parameter. If provided, this template page should
provide <div id="..."> ... </div> blocks
and the web exporter will put things there.
A template should include at least ids end, head,
and start, probably, although we can just say that
if you use a template that does not include these,
then those parts of the HTML will not be generated.
This requires changing the HTMLTextPosition
attribute, which currently says:
named anything_else.
I think this functionality of sending things to a separate file is not really needed, since models can do that anyway with a FileWrite actor. I'm not sure whether any demos use this, but I doubt it. I'll update the documentation now so we don't build demos relying on it.
I can tackle the above... I think the write way to do it is with JavaScript, not with line-by-line parsing parsing of the HTML template, as currently done in HttpCompositeServiceProvider. An alternative would be to put in a full HTML parser, which might actually be a cleaner solution. I'm not sure, but I suspect that this will require the template to be not just HTML, but also proper XML (meaning, for example, that every
has to be terminated with a
).Actually, if we take the HTML parser approach, then we can provide another actor:
HTMLPageAssembler: Create input ports with arbitrary names, say "foo", and provide a template HTML with, say,
The code for this actor could then be reused by the Export to Web infrastructure.
Thoughts about this?
Edward
Note: the issue was created automatically with bugzilla2github tool
Original bug ID: BZ#516 From: Elizabeth Latronico <beth@berkeley.edu> Reported version: 9.1.devel CC: ptango@chess.eecs.berkeley.edu
Blocker for: BZ#515