3 * Adjust or deprecate all old classes and methods related to help:
17 *Platform, Platform : helpDir - deprecate in favor of SCDoc.helpTargetDir ?
18 PathName : helpFilesDo
19 Help, *Help : findHelpFile - Used by SCDoc to get old help, fix this when all old help is converted
20 Help : findHelpFileOrElse
21 Class, Method : hasHelpFile - in SCDoc all classes has a helpfile - even if it's an autogenerated stub
24 AutoClassHelper, ClassHelper, *Help, TopicHelper, UGenHelper : makeHelp
26 TopicHelper : initTopicHelper
27 UGenHelper : initUGenHelper
28 *Quarks, Quarks : help
31 AutoClassHelper, ClassHelper : initClassHelper
33 Methods done but could be improved:
34 // Class : helpFileForMethod - FIXME: should jump to method anchor
35 // Method : openHelpFile - FIXME: should jump to method anchor
38 // Main-showHelpSearch
39 // Main-showHelpBrowser
43 // String-findHelpFileOrElse
44 // String-findHelpFile
46 // String-openHelpFile
48 Also deprecate class.categories since this is now in the helpfiles instead?
49 (categories can still be reached run-time from SCDoc.docMap and SCDoc.makeCategoryMap)
51 * cross-platform: check all uses of systemCmd. move to Platform class? Some stuff are not possible on windows, use cygwin or similar?
53 * plain HTML in HelpSource
54 Some files might be kept as plain HTML instead of converting to .schelp, for example License.html but perhaps even some tutorials?
55 But then we need a way to add these to the doc_map. For example a directory.scdoc file in these folders that contains a list of doc_map Event's:
56 [(title: "License", summary: "SC license note", categories: "Licensing", file: "License.html"),
58 'path' is set automagically.
59 perhaps we need also a flag to tell if it's a original html with no schelp source, for example we should not delete these entries from cache in getAllMetaData, and prepareHelpForURL doesn't need to check for a schelp source file.
61 * Docs using the classtree:: tag should re-render once every session, since the class tree might have changed.
62 How do we force this? perhaps by setting doc.mtime = 0 for these docs in doc_map? Or use "touch -d DATE" to set the html to a very old date?
66 * this doesn't work as it should:
68 modalrangetag:: blah blah blah
69 blah blah blah blah blah
72 * this doesn't work as it should:
76 strong::there:: is a bug
78 * tags after each other doesn't work, like returns::link::hello::
79 perhaps hard to fix without taking into account if the tag needs closing or not?
80 for example, what does this mean: code::foo::link::bar::
82 * using \::. doesn't work, needs a space: \:: .
83 also sometimes non-letters after :: doesn't work as expected, like "(link::hello::)"
87 * better error handling in parser on bogus input, etc..
89 * Some tags should only be allowed once. like class, title, related, categories, summary, description, examples..
90 Also, they should only occur in the root node.
92 * private:: must come before any other method
94 * check method argument names (and order?). it's ok to skip arguments though..
96 * warn on nameless sections, subsections and methods
98 * warn on subsection with no parent section (including description/classmethods/etc.)
100 * warn on text before first section in classdocumentation?
102 * make sure ## and || only happens inside lists/tables
104 * warn if argstring is given to method under instancemethods/classmethods?
105 we don't seem to use this anyway. should we allow force replacement of argstring? probably not.
107 IDEAS AND IMPROVEMENTS
108 ----------------------
109 * Improve the parser,
110 clean up and write better regexps. For example, code::foo::/code::bar:: does not currently work.
111 Use Array instead of List where possible? (note: l=l.add(x), and add everything before we put the array in some other container like node.children, etc).
112 Rewrite the parser in C or some fast external script?
114 * Improve the regexp primitives? Perhaps like in JS where we can first compile regexp objects and the re-use them. Also, use a callback instead of returning a list of matches?
116 * Try to make the renderer faster.
118 * description for categories? HelpSource/category_descriptions, example:
119 Server>Abstractions: Client-side classes representing server-side stuff
120 show in header and category browser/overview..
121 extensions should be able to add such descriptions too, but not overwrite existing descriptions?
123 * handle formula:: tag. generate a hash hexstring for use as filename, HelpSource/formulas/xxxxxxxx.png
124 The renderer would render formula:: by displaying that image if it exists, if not and if LaTeX is installed, convert formula to image first. if LaTeX not installed and image don't exist, show the latex code. (use img alt text?)
126 * comments (* like this? *)
128 * shortcuts for links to method in class? mlink::Node-set:: -> link::Classes/Node#-set::
129 or clink::Node#-set:: -> link::Classes/Node#-set:: ?
131 * render binary op methods differently? like ArrayedCollections ++
132 we don't want it to display as "++ (aCollection)" do we? rather "++ aCollection" or "this ++ that" or something..
133 binary ops only uses chars from this list: !@%&*-+=|<>?/