1 2009-04-16 Jonathan Pryor <jpryor@novell.com>
3 * Monodoc/man-provider.cs: NEVER return a non-null string from
4 HelpSource.GetText() unless *useful* content is being returned, as
5 when non-null is returned RootTree.RenderUrl() assumes that the url
6 was handled and won't try any other HelpSources. In this case, we
7 can (and do) have multiple ManHelpSources present, but since
8 ManHelpSource.GetText() was returning "<html>url was null</html>",
9 RootTree thought it was handled...when it wasn't. Fix.
11 2009-04-16 Jonathan Pryor <jpryor@novell.com>
13 * Monodoc/provider.cs: Overview: MonoDevelop loads monodoc.dll into
14 it's own process, and spawns monodoc GUI into a separate process,
15 then sends Node.URL values (obtained from the MonoDevelop process)
16 to load the documentation into the monodoc GUI. Problem:
17 occasionally the requested documentation isn't loaded, but instead
18 some completely unrelated documentation is shown instead. This is
19 because the Node.URL value contains HelpSource-dependent data, e.g.
20 a Node.URL value of "ecma:0#Foo/" will specify the 1st file
21 within...whatever HelpSource is first consulted by monodoc (which
22 can vary between monodoc runs, the phase of the moon, etc.).
23 Solution: Add a Node.PublicUrl property which returns _stable_ URLs
24 which aren't specific to a given HelpSource.
25 - Add Node.PublicUrl property, which delegates to
26 Provider.GetPublicUrl(string), so that a Provider can generate a
27 Provider-independent URL (if possible).
28 - Print PublicUrl from Node.PrintTree().
29 - Add RootTree.GetSupportedFormats(), RootTree.GetProvider()
31 - Make RootTree.GetHelpSource() public.
32 * Monodoc/ecma-provider.cs: Add EcmaDoc.GetCref() method (generates an
33 XML documentation //see/@cref value), override
34 Provider.GetPublicUrl() (which will return cref's if possible).
36 2009-04-15 Jonathan Pryor <jpryor@novell.com>
38 * Monodoc/ecma-provider.cs: EcmaHelpSource.GetText() doesn't need to
39 call GetCachedText() twice.
41 2009-04-15 Jonathan Pryor <jpryor@novell.com>
43 * Monodoc/provider.cs: Correct UseWebdocCache logic.
44 * Monodoc/xhtml-provider.cs: Use GetCachedText().
46 2009-04-15 Jonathan Pryor <jpryor@novell.com>
48 * Monodoc/provider.cs: UseWebdocCache is a better name that
49 IgnoreCache (considering that cache is disabled by default).
51 2009-04-15 Jonathan Pryor <jpryor@novell.com>
53 * Monodoc/provider.cs:
54 - Add HelpSource.IgnoreCache field, so that if the cache is present
55 it will be ignored. (Required by 'mdoc export-html-webdoc' so it
56 gets "fresh" content to generate the cache, and by monodoc GUI as
57 it can't use the cache'd HTML; cache'd HTML is for ASP.NET
59 - Alter the cache directory from e.g. sources/netdocs to
60 sources/cache/netdocs (as defined by
61 XmlDocUtils.GetCacheDirectory()).
62 - Add HelpSource.GetCachedText() method which will return the
63 contents of the cache for an id.
64 * Monodoc/addins-provider.cs, Monodoc/ecma-provider.cs,
65 Monodoc/error-provider.cs, Monodoc/man-provider.cs,
66 Monodoc/simple-provider.cs: Use GetCachedText().
67 * Mono.Documentation/XmlDocUtils.cs: Add GetCacheDirectory(),
68 GetCacheFileName() methods.
70 2009-04-14 Jonathan Pryor <jpryor@novell.com>
72 * Monodoc/provider.cs: Fix NullReferenceException in 'mdoc dump-tree'.
74 2009-04-09 Gonzalo Paniagua Javier <gonzalo@novell.com>
76 * ecma-provider.cs: remove 'using'.
77 * provider.cs: if there's a directory with the base name, read the
78 files from there instead of from the .zip file.
80 2009-03-01 Jonathan Pryor <jpryor@novell.com>
82 * Monodoc/ecma-provider.cs: Viewing type members (plural, e.g. the
83 Fields sub-node) would result in a stack overflow within
84 Resources/mdoc-html-utils.xsl:GetInheritedMembers(), because the
85 document() XSLT function was being used to obtain the base type's
86 documentation. It stack overflowed because the XmlUrlResolver was
87 being used, which when given e.g. file:///DocAttribute.xml, would
88 return file:///DocAttribute.xml (which makes sense), but it was
89 non-terminating. (I find this troubling as it should have been
90 trying to resolve e.g. System.Attribute, not DocAttribute; it must
91 be some XmlTransform-fu that was substituting documents.)
92 The fix is for EcmaUncompiledHelpSource to provide an alternate
93 document XmlResolver, one which always returns null from
94 XmlResolver.ResolveUri(), thus preventing endless recursion.
96 2009-03-01 Jonathan Pryor <jpryor@novell.com>
98 * Mono.Documentation/XmlDocUtils.cs: It's possible for the `loader'
99 delegate to return `null' if no further base types are found, so
100 stop processing if we find a null base type.
101 * Monodoc/provider.cs:
102 - Make GetHelpStream() virtual so that EcmaUncompiledHelpSource can
103 override it, as the default zip-based behavior is inappropriate.
104 - Make GetHelpXmlWithChanges() virtual so that
105 EcmaUncompiledHelpSource can override it, as the default zip-based
106 behavior is inappropriate.
107 - When initializing UncompiledHelpSources, set the
108 HelpSource.RootTree property (avoids an NRE from
109 EcmaHelpSource.GetTextFromUrl() when it reads RootTree.HelpSources).
110 * Monodoc/ecma-provider.cs:
111 - Within the XmlDocUtils.AddExtensionMethods() call, don't always
112 prefix the type with "T:", as sometimes the type will already start
113 with "T:", which is the case with EcmaUncompiledHelpSource ids.
114 - Add EcmaUncompiledHelpSource.GetHelpStream() and
115 EcmaUncompiledHelpSource.GetHelpXmlWithChanges(), which Do The
116 Right Thing for the file-based backend.
118 2009-03-01 Jonathan Pryor <jpryor@novell.com>
120 * Monodoc/ecma-provider.cs: For some reason,
121 EcmaHelpSource.GetNamespaceDocument() wasn't being used anymore,
122 which is what EcmaUncompiledHelpSource overrides to permit loading
123 of local files. Result: an exception when trying to view namespaces
124 of local (non-assembled) directories. Oops. "Fixes" 443508.
126 2009-02-26 Jonathan Pryor <jonpryor@vt.edu>
128 * Monodoc/provider.cs: Revert; Don't check for Tree.Nodes == null, as it
129 happens in numerous places. Instead, take a page out of the "I
130 never should have invented `null'" book, and ensure that Tree.Nodes
131 can never be null. This fixes the "HelpSource has 0 items" issue
132 and several other related ones.
134 2009-02-26 Jonathan Pryor <jonpryor@vt.edu>
136 * Monodoc/provider.cs: It's possible for a HelpSource to have 0
137 elements (which can be done by e.g. running `mdoc assemble' on an
138 empty directory), in which case HelpSource.Tree.Nodes will be null.
139 Make sure that we don't get a NullReferenceException.
140 Patch thanks to Theerud Lawtrakul. Fixes #443699.
142 2009-02-25 Jonathan Pryor <jonpryor@vt.edu>
145 - s/TEST_FILES/MAN_TEST_FILES/g: $(TEST_FILES) is used by the normal
146 build process, so the local definition is lost (and thus ignored).
147 Result: Test/* isn't actually copied. Oops. Changing to
148 MAN_TEST_FILES allows things to be copied.
149 - Fix the filenames within $(MAN_TEST_FILES) so `make dist-local'
153 2009-02-09 Jonathan Pryor <jonpryor@vt.edu>
155 * Makefile: Don't include mono-ecma-css.js as a resource.
156 * Monodoc/ecma-provider.cs: Insert helper.js, not mono-ecma-css.js.
157 * Monodoc/provider.cs: Surround the contents of `helper.js' with a
158 <script/> block so that valid HTMl is generated.
159 * Resources/helper.js: Remove <script/> block, so that `helper.js' is an
160 actual JavaScript file, not an SGML file w/ JavaScript content.
161 * Resources/mono-ecma-css.js: Remove; use Resources/helper.js instead.
163 2009-01-05 Jonathan Pryor <jonpryor@vt.edu>
165 * Makefile: Fix $(the_lib) dependencies so that monodoc.dll is rebuilt
166 when one of Resources/* is modified.
167 * Resources/mdoc-html-utils.xsl: Rework the Requirements block so that
168 it doesn't require //AssemblyInfo or //AssemblyVersion. This allows
169 `mdoc update -fno-assembly-versions ...`-produced XML to still
170 produce HTML with a Requirements section (skipping the Assembly
171 Versions block but generating the Namespace and Assembly blocks).
172 Change the behavior of //since generation so that instead of
173 printing out a note before the method summary, a Since block is added
174 to the Requirements section, and the Since block contains the
175 //since/@version text. All this to make Mike Kestner happier. :-)
177 2008-10-29 Jonathan Pryor <jonpryor@vt.edu>
179 * Monodoc/xhtml-provider.cs: Use HelpSource.Message(), not
182 2008-10-28 Jonathan Pryor <jonpryor@vt.edu>
184 * Monodoc/provider.cs: Add HelpSource.InlineCss and
185 HelpSource.InlineJavaScript virtual properties, so that the help
186 source can provide specific CSS and JavaScript to be included into
187 the generated HTML document. This is used by the ASP.NET front-end,
188 as it needs to insert the CSS & JavaScript separately (as it also
189 inserts its own CSS & JavaScript).
190 * Monodoc/ecma-provider.cs, Monodoc/ecmaspec-provider.cs,
191 Monodoc/error-provider.cs: Override InlineCss & InlineJavaScript, as
194 2008-10-24 Jonathan Pryor <jonpryor@vt.edu>
196 * Monodoc/addins-provider.cs, Monodoc/ecma-provider.cs,
197 Monodoc/ecmaspec-provider.cs, Monodoc/error-provider.cs,
198 Monodoc/man-provider.cs, Monodoc/monohb-provider.cs,
199 Monodoc/provider.cs: Remove Console.WriteLine() spew; helps cleanup
200 `make` output in mcs/docs (from `mdoc assemble`, which indirectly
201 invokes most of the *-provider files). We solve this problem by
202 providing a TraceLevel-based message system, so that messages are
203 only generated if they are less than or equal to the requested
204 output level (thus skipping the more verbose "every file" messages
205 from ecma-provider.cs & error-provider.cs).
206 * provider.cs: Change Node.CompareTo() to use a "natural sorting"
207 algorithm -- this allows the C# Language Specification nodes to
208 continue being displayed in the correct order.
210 2008-10-21 Jonathan Pryor <jonpryor@vt.edu>
212 * Monodoc/provider.cs:
213 - Fix Node.Sort() so that it doesn't NRE if nodes == null.
214 - Fix Node.CompareTo() so that it can sort Nodes that haven't been
216 - Add "libraries" as an alias for "root", so that .source files can
217 refer to the parent "libraries" (which would allow us to change
218 the location of "libraries" in the future, should we want to).
219 - If a /monodoc/source/@path refers to a nonexistant node, then
220 insert the contents under Various instead of ignoring it.
221 - Sort the top-level nodes.
222 - Sort the `parent` node after inserting children under it. This
223 allows multiple different .source files to insert nodes under the
224 same parent node and still have the child nodes sorted as most
225 mortals would expect.
226 - Support a //node/@parent attribute, which allows for creating
227 nodes underneath the specified parent node. This allows multiple
228 different .source files to contribute to the tree and depend upon
229 each other. Thus, instead of having a single monodoc.xml file
230 that needs to know the entire tree in advance, the entire tree can
231 be spread across multiple .source files and filled at runtime.
233 2008-10-18 Jonathan Pryor <jonpryor@vt.edu>
235 * Makefile $(LIBRARY_PACKAGE): Set to `monodoc`, as we historically
236 have had a monodoc package (and thus should preserve it).
238 2008-10-17 Jonathan Pryor <jonpryor@vt.edu>
240 * Makefile: Distribute monodoc.dll.config.in.
242 2008-10-17 Jonathan Pryor <jonpryor@vt.edu>
244 * Makefile: Generate a monodoc.dll.config (installed by gacutil), so
245 that monodoc.dll can find the documentation sources.
247 2008-10-16 Jonathan Pryor <jonpryor@vt.edu>
249 * Mono.Documentation/ManifestResourceResolver.cs,
250 Mono.Documentation/XmlDocUtils.cs: Make types public so that they
251 can be used from ../mdoc/mdoc.exe.
253 2008-10-16 Jonathan Pryor <jonpryor@vt.edu>
255 * Makefile: Update $(thisdir).
257 2008-10-16 Jonathan Pryor <jonpryor@vt.edu>
259 * Assmbly/AssemblyInfo.cs: Change location of mono.snk (since the
260 monodoc directory was moved from mcs/class to mcs/tools).
262 2008-10-16 Jonathan Pryor <jonpryor@vt.edu>
264 * Makefile: Improve `make clean` support.
266 2008-10-16 Jonathan Pryor <jonpryor@vt.edu>
268 * Makefile: Add EXTRA_DISTFILES; monodoc.dll should depend upon
269 Makefile (in case the /resource: lines change); shorten the .gif
272 2008-10-16 Jonathan Pryor <jonpryor@vt.edu>
274 * Test (svn:ignore): Ignore generated files.
275 * Makefile: Add tests for man-provider.
277 2008-10-16 Jonathan Pryor <jonpryor@vt.edu>
279 * ChangeLog: Added/Started.
280 * Makefile: Added; build monodoc.dll.