[Mono-docs-list] Monodoc editing and live preview.
Miguel de Icaza
miguel@ximian.com
05 Sep 2003 22:10:29 -0400
--=-+yUZ5tJRrVt6ndd2TZBi
Content-Type: multipart/alternative; boundary="=-wsc6os1aOLqSsNGRw2lV"
--=-wsc6os1aOLqSsNGRw2lV
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
Hey guys,
I got a simple patch to do real-time previewing of the text being
entered into the editor as we go:
Mandatory Screenshot
How it works
This works by creating a small xml document like this:
<?xml version="1.0"?>
<docs>
CONTENTS_OF_THE_EDITOR_WINDOW_GO_HERE
</docs>
And then parsing that into an XmlDocument, and passing it to the
EcmaHelpSource.Htmlize routine. Since the input might very well be
invalid, code is protected with a try/catch.
Problems
The current solution does work for everything, it fails when:
* <see cref="SomeType"/> is invoked, the error message I get is:
Error is:
System.Xml.XPath.XPathException: function monodoc:MakeNiceSignature not found
in [0x00102] (at
/cvs/mcs/class/System.XML/System.Xml.XPath/Expression.cs:1312) 00 System.Xml.XPath.ExprFunctionCall:Evaluate (System.Xml.XPath.BaseIterator)
in [0x00002] (at
/cvs/mcs/class/System.XML/System.Xml.XPath/Expression.cs:392) 00 System.Xml.XPath.Expression:EvaluateString (System.Xml.XPath.BaseIterator)
in [0x00007] (at
/cvs/mcs/class/System.XML/System.Xml.XPath/Expression.cs:112) 00 System.Xml.XPath.CompiledExpression:EvaluateString (System.Xml.XPath.BaseIterator)
in [0x00018] (at
/cvs/mcs/class/System.XML/System.Xml.XPath/Expression.cs:115) 00 System.Xml.XPath.CompiledExpression:EvaluateString (System.Xml.XPath.BaseIterator)
* I guess the above is due to me using the Htmlize function as
opposed to the Htmlize function with the Extension object. So I
need some help here.
* I would love to give some loving to the various "block" types to
spice up our rendering. For example, the informational block
probably should use a lighbulb like the one above (should be
easy: we can embed more icons, and we just need some tweaks to
our stylesheet). Bonus point: make this work also on the Web
edition.
* The current routine that pulls the text to edit, pulls too
much. So the external <para> is removed, so that means that by
default we are on an error condition. This is one for Ben:
could we get for the editor, everything inside the node? Ie,
given "<summary><para>Hello!</para></summary>", we should get
"<para>Hello!</para>" instead of just "Hello!".
Best wishes,
Miguel.
--
Miguel de Icaza <miguel@ximian.com>
--=-wsc6os1aOLqSsNGRw2lV
Content-Type: text/html; charset=utf-8
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
<META NAME="GENERATOR" CONTENT="GtkHTML/3.0.8">
</HEAD>
<BODY>
Hey guys,<BR>
<BR>
I got a simple patch to do real-time previewing of the text being entered into the editor as we go:<BR>
<BR>
<H3>Mandatory Screenshot</H3>
<BR>
<IMG SRC="cid:1062812186.4489.293.camel@erandi.boston.ximian.com" ALIGN="top" ALT="" BORDER="0"><BR>
<BR>
<H3>How it works</H3>
<BR>
This works by creating a small xml document like this:<BR>
<BR>
<?xml version="1.0"?><BR>
<docs><BR>
CONTENTS_OF_THE_EDITOR_WINDOW_GO_HERE<BR>
</docs><BR>
<BR>
And then parsing that into an XmlDocument, and passing it to the EcmaHelpSource.Htmlize routine. Since the input might very well be invalid, code is protected with a try/catch.<BR>
<BR>
<H3>Problems</H3>
<BR>
The current solution does work for everything, it fails when:<BR>
<BR>
<UL>
<LI><see cref="SomeType"/> is invoked, the error message I get is:
</UL>
<BLOCKQUOTE>
<BR>
<TABLE BGCOLOR="#ccccc0" CELLSPACING="0" WIDTH="80%">
<TR>
<TD>
<TABLE BGCOLOR="#fffff0" CELLSPACING="0" CELLPADDING="3" WIDTH="100%">
<TR>
<TD VALIGN="top">
<BLOCKQUOTE>
<BLOCKQUOTE>
<IMG SRC="cid:1062812366.4489.297.camel@erandi.boston.ximian.com" VSPACE="2" HSPACE="3" VSPACE="2" ALIGN="bottom" BORDER="0">
</BLOCKQUOTE>
</BLOCKQUOTE>
</TD>
<TD WIDTH="100%">
<BLOCKQUOTE>
<BLOCKQUOTE>
Error is: System.Xml.XPath.XPathException: function monodoc:MakeNiceSignature not found<BR>
in [0x00102] (at /cvs/mcs/class/System.XML/System.Xml.XPath/Expression.cs:1312) 00 System.Xml.XPath.ExprFunctionCall:Evaluate (System.Xml.XPath.BaseIterator)<BR>
in [0x00002] (at /cvs/mcs/class/System.XML/System.Xml.XPath/Expression.cs:392) 00 System.Xml.XPath.Expression:EvaluateString (System.Xml.XPath.BaseIterator)<BR>
in [0x00007] (at /cvs/mcs/class/System.XML/System.Xml.XPath/Expression.cs:112) 00 System.Xml.XPath.CompiledExpression:EvaluateString (System.Xml.XPath.BaseIterator)<BR>
in [0x00018] (at /cvs/mcs/class/System.XML/System.Xml.XPath/Expression.cs:115) 00 System.Xml.XPath.CompiledExpression:EvaluateString (System.Xml.XPath.BaseIterator)
</BLOCKQUOTE>
</BLOCKQUOTE>
</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
</BLOCKQUOTE>
<BR>
<UL>
<LI>I guess the above is due to me using the Htmlize function as opposed to the Htmlize function with the Extension object. So I need some help here.
</UL>
<BR>
<UL>
<LI>I would love to give some loving to the various "block" types to spice up our rendering. For example, the informational block probably should use a lighbulb like the one above (should be easy: we can embed more icons, and we just need some tweaks to our stylesheet). Bonus point: make this work also on the Web edition.
</UL>
<BR>
<UL>
<LI> The current routine that pulls the text to edit, pulls too much. So the external <para> is removed, so that means that by default we are on an error condition. This is one for Ben: could we get for the editor, everything inside the node? Ie, given "<summary><para>Hello!</para></summary>", we should get "<para>Hello!</para>" instead of just "Hello!".
</UL>
<BR>
Best wishes,<BR>
Miguel.<BR>
<TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%">
<TR>
<TD>
-- <BR>
Miguel de Icaza <<A HREF="mailto:miguel@ximian.com"><U>miguel@ximian.com</U></A>>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
--=-wsc6os1aOLqSsNGRw2lV--
--=-+yUZ5tJRrVt6ndd2TZBi
Content-ID: <1062812366.4489.297.camel@erandi.boston.ximian.com>
Content-Disposition: attachment; filename=info_bulb.png
Content-Type: image/png; name=info_bulb.png
Content-Transfer-Encoding: base64
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
--=-+yUZ5tJRrVt6ndd2TZBi
Content-ID: <1062812186.4489.293.camel@erandi.boston.ximian.com>
Content-Disposition: attachment; filename=Screenshot-LiveEdit.png
Content-Type: image/png; name=Screenshot-LiveEdit.png
Content-Transfer-Encoding: base64
--=-+yUZ5tJRrVt6ndd2TZBi--