- Simplified the render()/include() mechanism: I provide for some context-aware auto-completion of template specifics (name, format, theme). This avoids declaring template specifics redundantly. - For this purpose, renamed some of the templates to reflect their doc entity names: @object -> @object.html.asciidoc|yuidoc. - Theme-specific assets are now stored in a subdir of doc-assets/, named after the theme: doc-assets/yuidoc, doc-assets/asciidoc. - Adding the asciidoc assets subdir, including the asciidoc css - Renamed the theme "tmpl" to "yuidoc": This required to change the corresponding template extensions (*.tmpl -> *.yuidoc) and the include()/render() statements throughout the templates. - Removed the unneeded source.html.tmpl
Accomplishments: - Completed a first version of the sandboxed (partial) evaluation of Tcl source artifacts (packages, script files, C extensions) based on a dedicated child/slave interp environment: see ::nx::doc::Sandbox; the test suite and the test documentation builts run on it. - Based on this infrastructure, we can now generate a snapshot of a program's structure to be documented (and contrast it to the explicitly documented structure). - Added simplistic css sprites for visualising the doc entity status (extra, missing, mismatch, complete); see also library/lib/doc-assets/status.svg and library/lib/doc-assets/status.png - The entity status is printed optionally along with the print name of an entity - Added switch-like parts to represent properties of doc entities: @deprecated, @stashed, @c-implemented, @syshook. The implementation and use of ::nx::doc::SwitchAttribute should be reviewed after having figured out how to proceed using "switching" objparams. - I provide a multi-property dispatcher as doc-syntactic sugar and for mere convenience: @property Various: - Corrected some div-boxing mess in the templates - Added a filtered helper to process entity collections - Made the mixin layer infrastructure more symmetric (a revoke operation). - Added tracers for ::nsf::method and ::nsf::alias (remains to be completed) - Renamed ::nx::doc to ::nx::processor and turned it into another mixin layer to trace the doc entity creation in e.g. readin() - Companion (*.nxd) files: Revised the handling of companion files. Temporarily moved generic/nsf.nxd in the top-level directory. We need to find a permanent place as its location is currently derived from the location of the shared extension. A candidate is doc/ but this is not linked to the shared extension location at all. - processor.readin() now returns a collection of entities created during its execution. - Improved robustedness and orthogonality: destroy hooks; the tag-dispatcher can now handle empty comment lines; when placing NSF object tracer, we now use the freshly added introspection of an object system's method aliases.