Sorry for the lateness. A security update made my Ubuntu installation
unbootable(!) and it tool me a couple of days to get it fixed up. I
moved to Breezy, as I needed a newer libc6 than Hoary's, and using that
before may have contributed to the breakage.
Done this week
==============
* Basic page parsing and directive support.
Problems
========
* Blago's not yet got his Mozilla code into SVN, so I'm still waiting
for that before I can begin integration.
* Unfortunately there is no easy way to hook into Mono's page parsing
framework, especially the ControlBuilders, so I've reimplemented quite
a bit of it using ParseChildrenAttribute to tell me what to do. I
haven't had a reply from Gonzalo, so I'm doing the best way I can see
myself.
Plans for next week
===================
* Polish up the Page Parser. Fixes for Mono (I developed it on .NET2
Beta2) Add support for comments and code blocks.
* Mozilla editor integration!
* A simple interface to load custom controls so I can test out the
inherent support I've built in already
Regards,
Michael
* Unfortunately there is no easy way to hook into Mono's page parsing
framework, especially the ControlBuilders, so I've reimplemented quite
a bit of it using ParseChildrenAttribute to tell me what to do. I
haven't had a reply from Gonzalo, so I'm doing the best way I can see
myself.
I needed to parse a page into the internal structure I'm using. I
explained a lot in my email to Gonzalo; would you like me to forward it
to you? I wanted advice really on how to make the best use of the
framework's parser for compatibility etc.
The route I've now taken is to copy some of the framework's
parser/tokeniser classes, and leave them unmodified so that I can copy
over updated versions. I then have a parser that interfaces with them,
and uses a construct of my own similar to ASP.NET ControlBuilders to
build up the document structure. I had some trouble with
ParseChildrenAttribute not always being set, as Mono itself uses custom
ControlBuilders instead, so I've just last night filled in the gap by
using PersistenceModeAttribute and PersistChildrenAttribute as well.
They're actually hints for persistence rather than parsing, but this
now means if I can save a document, I should be able to open it :-)
I'll commit the updated version to SVN in a few hours after I've fixed
a few things.
The limitation with this approach is that it's not possible to perform
some of the custom parsing implemented in ControlBuilders.
Unfortunately they have very few external interfaces, and nothing you
can use to extract . I looked at implementing mcs classlib's
DesignTimeTemplateParser to be able to use that to parse controls, but
the parsing framework seems very "file->compile" oriented and I didn't
really want to go restructuring it. It would also give me much less
freedom in handling other tags like directives, code, databinding...
Not having custom ControlBuilders is not actually an issue until we
have support for custom designers, and the page persister uses
GetInnerPersistHtml, because at the moment I can parse everything I can
persist. I look forward to moving the target to .NET 2, as that exposes
an external BuildObject() method on ControlBuilders that I could
implement and use. So I'd just not worry about it till then.
Anyway, I need to add support for server-side comments, code blocks and
maybe databinding. But they're not critical, so first I'll crack on
with the Mozilla integration.
Michael
|
|
|
Yep, it's Mozilla's Midas. Midas is the inline editor, which could be invoked
on an iframe (and maybe other tags to make their content editable). It's
using the real editor under the hood, but provides next to nothing for
embedders. No, action listeners, observers, etc.
--
Michał Dominik K.
michal...@gmail.com
www.mdk.org.pl