<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://davesexton.com/blog/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Dave Sexton's Blog : MAML, Sandcastle</title><link>http://davesexton.com/blog/blogs/blog/archive/tags/MAML/Sandcastle/default.aspx</link><description>Tags: MAML, Sandcastle</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.2)</generator><item><title>MAML Editor: Progress II</title><link>http://davesexton.com/blog/blogs/blog/archive/2008/07/08/maml-editor-progress-ii.aspx</link><pubDate>Tue, 08 Jul 2008 13:52:02 GMT</pubDate><guid isPermaLink="false">5b5c6d2b-d071-4bf8-ac28-4f9cd768b39b:502</guid><dc:creator>Dave Sexton</dc:creator><slash:comments>11</slash:comments><comments>http://davesexton.com/blog/blogs/blog/comments/502.aspx</comments><wfw:commentRss>http://davesexton.com/blog/blogs/blog/commentrss.aspx?PostID=502</wfw:commentRss><description>&lt;p&gt;In a &lt;a href="http://davesexton.com/blog/blogs/blog/archive/2008/06/03/maml-editor.aspx"&gt;previous blog post&lt;/a&gt; I discussed my work on a WYSIWYG editor for authoring MAML topics, either inside or outside of &lt;a title="DocProject on CodePlex" href="http://www.codeplex.com/DocProject"&gt;DocProject&lt;/a&gt;.&amp;nbsp; This post is simply another quick update on my progress.&lt;/p&gt; &lt;h4&gt;Preview Release Timeline&lt;/h4&gt; &lt;p&gt;A few weeks ago I started a new job and they put me on a project with a tight deadline so I haven't had much time to do anything else.&amp;nbsp; Last weekend I was still too busy to do much with the editor (even on July 4th) so I missed my most recent target date: yesterday.&lt;/p&gt; &lt;p&gt;I'll probably have time to work on the editor each night this week though so I should be able to put a working preview out there soon.&amp;nbsp; Last night I was able to almost complete key input behavior processing, which I had actually planned to work on after the preview.&amp;nbsp; I was also able to complete a few controls; e.g., the alert control now has a drop down list in the header with icon-text pairs as list items (shown in the screenshot below).&amp;nbsp; It was so easy to implement too compared to having to owner draw items in WinForms apps - WPF is really cool.&amp;nbsp; The next control I'm going to write is for MAML linking, which should be fun :)&lt;/p&gt; &lt;h4&gt;Progress&lt;/h4&gt; &lt;p&gt;I still have to add the command buttons but I've been deferring that because it should be pretty easy to do with limited functionality for the initial release (e.g., the editor's not schema based yet so all buttons will always be enabled.)&amp;nbsp; Although, I'll probably only add a small subset of commands initially, which will save time. &lt;p&gt;One thing that I may do for the preview though is to add the ability to insert custom command buttons through a dialog and have them associated with custom MAML markup. Once the markup is inserted, it can be parsed as if it was being loaded from a MAML file using the existing factory/parser infrastructure - that should fill in the gap nicely for MAML elements that I won't be providing support for in the initial release.&amp;nbsp; (Note that this is entirely conceptual - I don't know if it'll actually be worth the effort for the preview release.) &lt;p&gt;The other major feature that the editor is currently lacking is the ability to parse the physical flow back into MAML for save operations (it currently saves as XAML, for testing purposes).&amp;nbsp; I don't see this being a difficult process though since every element in the document is currently tagged with a parser context object, which provides direct access to the particular parser that can transform the element into MAML, in much the same way that it parses MAML into elements when a topic is loaded.&amp;nbsp; (Load functionality works fine :) &lt;p&gt;Originally I was hoping to avoid having to parse the physical flow by simply saving the in-memory LINQ to XML document (this was working for a short while during development), however I discovered later that the only change event that gets raised is the FlowDocument's &lt;strong&gt;TextChanged&lt;/strong&gt; event (IIRC), making it difficult to track the relationship between changes in the flow and the underlying &lt;strong&gt;XDocument &lt;/strong&gt;structure.&amp;nbsp; Although, I do see an opportunity to implement change tracking like this in the future due to my &lt;em&gt;parser context &lt;/em&gt;and &lt;em&gt;parser input behavior &lt;/em&gt;designs, but for the sake of time I'll probably defer it until a subsequent beta release. &lt;h4&gt;Screen Capture&lt;/h4&gt; &lt;p&gt;The following is an updated image of the same MAML topic being edited as in my last post.&amp;nbsp; It might not look like much has changed, but functionally speaking, it's now actually becoming a useful app (barring the missing save functionality :). &lt;p&gt;This time all of the styles that you see are loaded dynamically from XAML style sheets (currently embedded resources, but eventually loose XAML as well) and, although it's not obvious from the image, the editor actually behaves much more like you'd expect from a schema-based editor.&amp;nbsp; For example, pressing the &lt;strong&gt;Delete &lt;/strong&gt;key at the end of the MAML &lt;strong&gt;Introduction &lt;/strong&gt;will no longer cause the first &lt;strong&gt;section&lt;/strong&gt;'s header to move up into the introduction's paragraph.&amp;nbsp; This behavior is controlled by each individual MAML element - they define their own key press behavior using a custom preview &amp;amp; bubble approach, just like real WPF controls, but they also inherit some default behavior that restricts the flow a bit. &lt;p&gt;I've also started using WPF annotations for debugging (not visible in the image below) and I also plan to use them to display a delete button near the currently selected block element.&amp;nbsp; So to delete an entire section from the editor you would click anywhere inside the section and the delete button will appear, perhaps floating at the top-right corner of the element.&amp;nbsp; That's the way I think it should work for all block elements, such as the MAML introduction, section, procedure, alert table and code block shown in the image below. &lt;p&gt;(&lt;strong&gt;Note: &lt;/strong&gt;The document shown below was actually loaded from a real MAML topic file.&amp;nbsp; The red squiggles are real-time spell checking errors provided by WPF and each element's styles were applied dynamically using XAML style sheets.) &lt;p&gt;&lt;img style="margin:0px;" height="612" alt="image" src="http://davesexton.com/Images/Blog/MAMLEditorProgressII_7EE1/image.png" width="700" border="0"&gt;&lt;/p&gt;&lt;img src="http://davesexton.com/blog/aggbug.aspx?PostID=502" width="1" height="1"&gt;</description><category domain="http://davesexton.com/blog/blogs/blog/archive/tags/Sandcastle/default.aspx">Sandcastle</category><category domain="http://davesexton.com/blog/blogs/blog/archive/tags/DocProject/default.aspx">DocProject</category><category domain="http://davesexton.com/blog/blogs/blog/archive/tags/Betas/default.aspx">Betas</category><category domain="http://davesexton.com/blog/blogs/blog/archive/tags/MAML/default.aspx">MAML</category></item><item><title>Sandcastle Styles Project on CodePlex</title><link>http://davesexton.com/blog/blogs/blog/archive/2008/06/04/sandcastle-styles-project-on-codeplex.aspx</link><pubDate>Wed, 04 Jun 2008 20:47:30 GMT</pubDate><guid isPermaLink="false">5b5c6d2b-d071-4bf8-ac28-4f9cd768b39b:481</guid><dc:creator>Dave Sexton</dc:creator><slash:comments>0</slash:comments><comments>http://davesexton.com/blog/blogs/blog/comments/481.aspx</comments><wfw:commentRss>http://davesexton.com/blog/blogs/blog/commentrss.aspx?PostID=481</wfw:commentRss><description>&lt;p&gt;The &lt;a title="Sandcastle Styles on CodePlex" href="http://www.codeplex.com/SandcastleStyles"&gt;Sandcastle Styles&lt;/a&gt; project is now live on CodePlex.&amp;nbsp; From the project's home page: &lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;The goal of this project is to improve Sandcastle by providing a rolled-up solution to various presentation style issues in a manner that is highly visible to the Sandcastle community and also involves community feedback.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;This project was &lt;a href="http://www.codeplex.com/Sandcastle/Thread/View.aspx?ThreadId=27749"&gt;started&lt;/a&gt; by Paul Selormey, Eric Woodruff and myself.&amp;nbsp; Currently we're the only active contributors but we'll be happy to take any feedback you have to offer.&amp;nbsp; Let us know by starting a &lt;a href="http://www.codeplex.com/SandcastleStyles/Thread/List.aspx"&gt;discussion&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Sandcastle features and issues should be submitted directly to the &lt;a href="http://www.codeplex.com/Sandcastle/WorkItem/AdvancedList.aspx"&gt;Sandcastle Issue Tracker&lt;/a&gt; so that the Sandcastle team will be notified.&lt;/p&gt; &lt;h4&gt;What's Inside?&lt;/h4&gt; &lt;p&gt;Eric has included his &lt;strong&gt;presentation style patches&lt;/strong&gt; from the SHFB project - we're now deploying them as a part of Sandcastle Styles.&amp;nbsp; There are additional bug fixes and modifications that were made for the May 2008 release of Sandcastle as well.&amp;nbsp; He has also included a new &lt;strong&gt;MAML guide&lt;/strong&gt; as a separate download and custom code providers for VB and C# that can be used to extract assemblies and XML documentation files from Visual Studio &lt;strong&gt;Web Site &lt;/strong&gt;projects.&lt;/p&gt; &lt;p&gt;We've also added some new features to each presentation style, such as support for the &lt;strong&gt;MAML glossary&lt;/strong&gt; document type, &lt;strong&gt;image placement&lt;/strong&gt; support in MAML, enhanced &lt;strong&gt;&amp;lt;autoOutline&amp;gt;&lt;/strong&gt; in MAML, and also an &lt;strong&gt;auto-generated bibliography&lt;/strong&gt; for both conceptual and reference topics.&amp;nbsp; Tools such as &lt;a title="DocProject on CodePlex" href="http://www.codeplex.com/DocProject"&gt;DocProject&lt;/a&gt; and &lt;a href="http://www.codeplex.com/SHFB/"&gt;SHFB&lt;/a&gt; support these features with the patches applied.&lt;/p&gt; &lt;p&gt;I've started an &lt;a href="http://www.codeplex.com/SandcastleStyles/SourceControl/DirectoryView.aspx?SourcePath=%24%2fSandcastleStyles%2fMain%2fSource%2fExamples&amp;amp;changeSetId=19568"&gt;Examples&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;project that shows the typical usage of XML documentation comments (all tags supported by Sandcastle) and common MAML markup, such as linking, tokens, code snippets and media.&amp;nbsp; I've also included DocProject's MAML document templates for those that are using a different tool.&amp;nbsp; Lastly, there's an API that can be used to test Sandcastle filtering capabilities in our automation tools, which also provides some nice examples of how to add XML documentation to code and how to use the &lt;strong&gt;&amp;lt;include/&amp;gt;&lt;/strong&gt; tag to share comments and keep code neat.&lt;/p&gt; &lt;p&gt;We expect to improve our library of examples and include additional languages and project types in the future, and I hope to make it available as a separate download as well.&amp;nbsp; Also, if people will donate language packs for Sandcastle we'll tidy them up and host them.&lt;/p&gt; &lt;p&gt;Hopefully the community will find this project to be a valuable Sandcastle resource.&amp;nbsp; Any feedback will be appreciated :)&lt;/p&gt;&lt;img src="http://davesexton.com/blog/aggbug.aspx?PostID=481" width="1" height="1"&gt;</description><category domain="http://davesexton.com/blog/blogs/blog/archive/tags/Sandcastle/default.aspx">Sandcastle</category><category domain="http://davesexton.com/blog/blogs/blog/archive/tags/documentation/default.aspx">documentation</category><category domain="http://davesexton.com/blog/blogs/blog/archive/tags/MAML/default.aspx">MAML</category></item><item><title>MAML Editor: Progress</title><link>http://davesexton.com/blog/blogs/blog/archive/2008/06/03/maml-editor_2D00_progress.aspx</link><pubDate>Tue, 03 Jun 2008 05:35:00 GMT</pubDate><guid isPermaLink="false">5b5c6d2b-d071-4bf8-ac28-4f9cd768b39b:474</guid><dc:creator>Dave Sexton</dc:creator><slash:comments>5</slash:comments><comments>http://davesexton.com/blog/blogs/blog/comments/474.aspx</comments><wfw:commentRss>http://davesexton.com/blog/blogs/blog/commentrss.aspx?PostID=474</wfw:commentRss><description>&lt;P&gt;This blog post is just an update on my progress creating a WYSIWYG (what you see is what you get) &lt;A href="http://www.codeplex.com/DocProject/WorkItem/View.aspx?WorkItemId=15724"&gt;MAML editor&lt;/A&gt;.&amp;nbsp; I've received a lot of feedback (relative) for the MAML editor and I know that people are waiting for one, so I'd like to share with you some information about the one that I'm working on and when it will be available.&lt;/P&gt;
&lt;P&gt;For those of you who are unaware of what MAML is, you can read about it &lt;A href="http://davesexton.com/blog/blogs/blog/archive/2008/05/24/maml-migration-the-next-step-in-the-evolution-of-help-authoring.aspx"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;I've created a &lt;EM&gt;very&lt;/EM&gt; basic MAML editor using .NET 3.5, C# 3.0, LINQ to XML and WPF, but it's not currently my priority since I'm planning to release &lt;A href="http://davesexton.com/blog/blogs/blog/archive/2008/05/03/docproject-roadmap-part-ii.aspx"&gt;DocProject 1.11.0 RC&lt;/A&gt; later this week.&amp;nbsp; A preview of the editor will be released though in the next couple of weeks as a standalone WPF application, a VS 2008 package (with MAML item templates) and also a standalone class library so that other tool developers can use the editor in their own applications - although note the dependency on the .NET 3.5 runtime and the DocProject license, which is currently the &lt;A href="http://www.codeplex.com/DocProject/license"&gt;GNU-GPL&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;The editor isn't schema based yet - I've hard-coded support for the &lt;EM&gt;Conceptual&lt;/EM&gt; document type only, although since that type shares many common elements with other types, like &lt;EM&gt;How To&lt;/EM&gt; and &lt;EM&gt;UI Reference&lt;/EM&gt;, they're basically supported as well.&amp;nbsp; The only difference now is that there's no schema validation and the UI cannot create several elements that are optional in the schema for the other document types.&amp;nbsp; Though the current implementation has been designed to be flexible enough so that adding these things should be easy to do later on.&lt;/P&gt;
&lt;P&gt;Since the editor is based on a WPF &lt;STRONG&gt;RichTextBox &lt;/STRONG&gt;control, we get a free spell checker with squiggly underlines and an undo/redo buffer.&amp;nbsp; It's also really simple to implement custom control logic for various elements (the current implementation uses a factory pattern to generate parsers for the individual elements, by name), such as a link editor, tables, images, and other stuff.&amp;nbsp; So far I've added collapsible sections that actually function when you click the button, some custom logic that controls input behavior for various key presses, and also whitespace normalization for text (&lt;STRONG&gt;Run &lt;/STRONG&gt;content in WPF).&lt;/P&gt;
&lt;P&gt;Loading and saving also works, however synchronization between the data model in memory and the logical tree of the WPF content model still needs to be implemented - a major part of the editor - but with the event model and my current architecture I don't think it'll be too difficult; e.g., the data model currently uses &lt;STRONG&gt;XElement&lt;/STRONG&gt; instances (from LINQ to XML) that contain annotations for their corresponding WPF content elements (&lt;STRONG&gt;Section&lt;/STRONG&gt;, &lt;STRONG&gt;TableCell&lt;/STRONG&gt;, &lt;STRONG&gt;Paragraph&lt;/STRONG&gt;, &lt;STRONG&gt;Run&lt;/STRONG&gt;, etc.) when the data is first parsed.&amp;nbsp; The idea is to update the document directly when changes in the UI are detected.&amp;nbsp; Saving the changes are then as simple as saving the &lt;STRONG&gt;XDocument&lt;/STRONG&gt;&lt;STRONG&gt;.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Metadata is also editable, so I've decided to generate two separate files when saving a single topic.&amp;nbsp; The first file is the topic file itself, which contains the root topic node, its &lt;STRONG&gt;id &lt;/STRONG&gt;and &lt;STRONG&gt;revisionNumber &lt;/STRONG&gt;attributes, as well as the actual MAML content.&amp;nbsp; The second file is an XML companion file (to use the Sandcastle lingo) that contains metadata such as the topic's title, TOC title, MS Help attributes and index keywords.&amp;nbsp; I may have another XML-based file created in the future to save editor settings for individual topics, such as the visibility status of individual sections; i.e., a &lt;EM&gt;designer&lt;/EM&gt; file.&lt;/P&gt;
&lt;P&gt;MAML topics are saved with an .aml extension (&lt;STRONG&gt;A&lt;/STRONG&gt;ssistance &lt;STRONG&gt;M&lt;/STRONG&gt;arkup &lt;STRONG&gt;L&lt;/STRONG&gt;anguage) and companion files use a .cmp extension with the same base file name as the .aml topic.&amp;nbsp; In the VS 2008 package, the .cmp file will be created with a dependency on the .aml so that it appears as a child in Solution Explorer.&amp;nbsp; The next version of &lt;A title="DocProject on CodePlex" href="http://www.codeplex.com/DocProject"&gt;DocProject&lt;/A&gt; will provide support for these extensions so that when I release a preview of the editor your existing DocProjects and DocSites will already be compatible.&lt;/P&gt;
&lt;P&gt;There's still &lt;STRONG&gt;&lt;U&gt;a lot&lt;/U&gt;&lt;/STRONG&gt; more to do before the editor is actually usable for generating quality MAML topics, but it's on its way.&amp;nbsp; After a bit more functionality is implemented I'll blog about it in more depth and post some screenshots.&amp;nbsp; For now, check out a screenshot below of the editor as I edit a simple &lt;EM&gt;How To&lt;/EM&gt; topic that was previously written using Visual Studio's XML editor.&lt;/P&gt;
&lt;P&gt;(Note that this is just a temporary WPF app that hosts the control while I develop it.&amp;nbsp; The final app will have command buttons for semantic markup, such as &lt;STRONG&gt;database&lt;/STRONG&gt;, &lt;STRONG&gt;ui&lt;/STRONG&gt;, &lt;STRONG&gt;application&lt;/STRONG&gt;, &lt;STRONG&gt;system&lt;/STRONG&gt;, &lt;STRONG&gt;localUri&lt;/STRONG&gt;, etc. and block-level elements such as &lt;STRONG&gt;section&lt;/STRONG&gt;, &lt;STRONG&gt;procedure&lt;/STRONG&gt;, &lt;STRONG&gt;list&lt;/STRONG&gt; and &lt;STRONG&gt;table&lt;/STRONG&gt;.&amp;nbsp;&amp;nbsp; I didn't implement them yet because commands seem pretty simple in WPF and I wanted to concentrate on the basic editor support first, as a WPF proof of concept (I'm a first-time WPF developer :)&lt;/P&gt;
&lt;P&gt;&lt;IMG style="MARGIN:0px;" height=689 alt=image src="http://davesexton.com/Images/Blog/MAMLEditor_13D97/image.png" width=796 border=0&gt; &lt;/P&gt;
&lt;P&gt;The image above shows a MAML topic with &lt;STRONG&gt;introduction&lt;/STRONG&gt; text, a collapsible &lt;STRONG&gt;section&lt;/STRONG&gt;, a &lt;STRONG&gt;procedure&lt;/STRONG&gt; and a &lt;STRONG&gt;code&lt;/STRONG&gt; example.&amp;nbsp; I also splashed some style in there, like the large font for the section title, just for the screenshot (the final editor will most likely get style information at runtime from WPF content resource themes so that its appearance will be completely customizable, without having to rebuild the source code).&lt;/P&gt;
&lt;P&gt;Clicking the toggle button for the section will actually toggle the visibility of the section's content in the editor (note that the image is ugly only because it's on a button and I didn't remove the border yet).&amp;nbsp; I plan to add other controls as well for functions such as adding links, tokens and media.&amp;nbsp; The controls will actually be &lt;EM&gt;inside &lt;/EM&gt;the document as part of the flow like the section toggle button - this is one of the really powerful features of WPF 3.5 flow documents.&lt;/P&gt;
&lt;P&gt;There's even a context menu with &lt;STRONG&gt;Cut&lt;/STRONG&gt;, &lt;STRONG&gt;Copy &lt;/STRONG&gt;and &lt;STRONG&gt;Paste &lt;/STRONG&gt;commands that I didn't have to write since it's provided by WPF.&amp;nbsp; Editing the text and everything else behaves exactly like you would expect from a WYSIWYG editor, which also means that I'm going to have to add custom logic to attach behavior to specific elements so that everything is a bit less fragile.&amp;nbsp; For example, one thing that I've done already is to add a behavior so that when the &lt;STRONG&gt;Enter&lt;/STRONG&gt; key is pressed the cursor moves to a new line instead of an entirely new paragraph.&amp;nbsp; Pressing &lt;STRONG&gt;Enter&lt;/STRONG&gt; a second time, while on the new blank line, will delete the blank line and start a new paragraph (it's more complicated than that, but you get the idea).&amp;nbsp; Having a new line within the same paragraph won't change the MAML output, it just provides some control over the appearance while editing.&amp;nbsp; Of course, if this is confusing or annoying I can always remove it later.&lt;/P&gt;
&lt;P&gt;I'd like to get feedback on my ideas so that I can quickly provide an editor that people are satisfied with.&amp;nbsp; If you have any suggestions about how the editor can be improved please let know.&amp;nbsp; Thanks!&lt;/P&gt;&lt;img src="http://davesexton.com/blog/aggbug.aspx?PostID=474" width="1" height="1"&gt;</description><category domain="http://davesexton.com/blog/blogs/blog/archive/tags/Sandcastle/default.aspx">Sandcastle</category><category domain="http://davesexton.com/blog/blogs/blog/archive/tags/DocProject/default.aspx">DocProject</category><category domain="http://davesexton.com/blog/blogs/blog/archive/tags/documentation/default.aspx">documentation</category><category domain="http://davesexton.com/blog/blogs/blog/archive/tags/MAML/default.aspx">MAML</category></item><item><title>DocToMaml 1.0 Beta is Now Available</title><link>http://davesexton.com/blog/blogs/blog/archive/2008/04/20/doctomaml-1-0-beta-is-now-available.aspx</link><pubDate>Sun, 20 Apr 2008 05:51:27 GMT</pubDate><guid isPermaLink="false">5b5c6d2b-d071-4bf8-ac28-4f9cd768b39b:441</guid><dc:creator>Dave Sexton</dc:creator><slash:comments>2</slash:comments><comments>http://davesexton.com/blog/blogs/blog/comments/441.aspx</comments><wfw:commentRss>http://davesexton.com/blog/blogs/blog/commentrss.aspx?PostID=441</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=DocProject&amp;amp;ReleaseId=12723"&gt;DocToMaml 1.0 Beta&lt;/a&gt; is a tool that converts HTML and XHTML help files to &lt;a href="http://www.codeplex.com/DocProject/Wiki/View.aspx?title=Sandcastle+Help#MAML"&gt;Microsoft Assistance Markup Language&lt;/a&gt; (MAML) in a batch process.&lt;/p&gt; &lt;p&gt;MAML help files are used by &lt;a href="http://www.codeplex.com/DocProject"&gt;DocProject&lt;/a&gt; and &lt;a title="Sandcastle on CodePlex" href="http://www.codeplex.com/Sandcastle"&gt;Sandcastle&lt;/a&gt; to build user documentation in various presentation styles.&lt;/p&gt; &lt;p&gt;DocToMaml provides a console mode and a project-based graphical user interface (GUI) for adding inputs and defining conversion rules to quickly and easily convert HTML files into MAML. Future releases will provide more flexibility for defining rules, but the beta can still be used to greatly decrease the amount of effort that would be required to convert large numbers of HTML files into MAML, compared to doing it manually.&lt;/p&gt; &lt;p&gt;&lt;img style="margin:0px;" height="515" alt="DocToMaml-GUI" src="http://davesexton.com/Images/Blog/DocToMaml1.0BetaisNowAvailable_FF74/DocToMamlGUI.jpg" width="693" border="0"&gt; &lt;/p&gt; &lt;h5&gt;Features &lt;/h5&gt;Some of the features of DocToMaml are:  &lt;ul&gt; &lt;li&gt;GUI and console mode.  &lt;li&gt;Project-based for quickly saving and loading different configurations.  &lt;li&gt;File and folder inputs are supported.  &lt;li&gt;Global and input-specific rule sets may be defined.  &lt;li&gt;Edit the source HTML of a file input using a WYSIWYG editor for full control over the conversion.  &lt;li&gt;Convert a file input in memory so that you can see the result quickly.  &lt;li&gt;MAML results for file inputs can be modified in a text box.  &lt;li&gt;Batch conversion saves results to disc for all file and folder inputs and generates a conceptual artwork file that can be used by Sandcastle's &lt;i&gt;ResolveArtLinksComponent&lt;/i&gt; build component.  &lt;li&gt;Hyperlink references to local topics are updated automatically.  &lt;li&gt;Preliminary user documentation. &lt;/li&gt;&lt;/ul&gt; &lt;h5&gt;Current Limitations &lt;/h5&gt; &lt;ul&gt; &lt;li&gt;Only the &lt;i&gt;Conceptual&lt;/i&gt; MAML document type is supported.  &lt;li&gt;Subsections and sub containers are not supported. For example, nested tables and lists are added to the current in-line element, if one exists; otherwise, they are added as new top-level containers.  &lt;li&gt;Images appear to be broken in source view, although this has no effect on the output. You don't have to update the paths to broken images since DocToMaml doesn't do anything with image files in the current release anyway. &lt;/li&gt;&lt;/ul&gt;For help with DocToMaml, see the compiled help file that is available for download on the release page.&lt;img src="http://davesexton.com/blog/aggbug.aspx?PostID=441" width="1" height="1"&gt;</description><category domain="http://davesexton.com/blog/blogs/blog/archive/tags/Sandcastle/default.aspx">Sandcastle</category><category domain="http://davesexton.com/blog/blogs/blog/archive/tags/DocProject/default.aspx">DocProject</category><category domain="http://davesexton.com/blog/blogs/blog/archive/tags/Betas/default.aspx">Betas</category><category domain="http://davesexton.com/blog/blogs/blog/archive/tags/MAML/default.aspx">MAML</category><category domain="http://davesexton.com/blog/blogs/blog/archive/tags/DocToMaml/default.aspx">DocToMaml</category></item></channel></rss>