package.html.tmpl

Clone Tools
  • last updated 17 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- 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

  1. … 52 more files in changeset.
- documentation work

  1. … 6 more files in changeset.
- library/lib/doc-tools.tcl: added [pinfo append] to collect multiple validation reports per entity - library/lib/doc-tools.tcl / owned_parts(): skip entities which are not structured themselves (namely parameters); otherwise they show up in the lefthand navigation or the autosearch box. also: glossary entries now disappeared from these navigation items (do we need them there?). - library/lib/doc-assets/command.html.tmpl: validation reports need to be fused using [join] - library/lib/doc-assets/command.html.tmpl: fixed subcommand support; adjusted and refined the per-command template, as well as @command validation. - Provided for parameter validation for @command and the extraction of the parametersyntax for commands - nsf.nxd: Added to the NSF documentation, namely completed a first round commands ::nsf::alias throughout ::nsf::log. Also: Refactored some glossary entries to nsf.nxd. - glossary: glossary entries can now be shared between projects; this required to make the back references aware of their project context. - @project: added a depends attribute which can be used to express inter-project dependencies. - An empty @doc string is now reported during validation - processor->process(): Added include/exclude filtering based on namespace patterns

  1. … 7 more files in changeset.
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.

  1. … 12 more files in changeset.
- Switch to print_name() for rendering entity names for the search box - Fixed the @parameter generation in method.html.tmpl - @glossary: Support for referencing glossary entries with certain formatting annotations: @gls (minor letters only), @Gls (title), @glspl (plural), @Glspl (title plural), ... Added explicit acronym rendering (long and short forms): @acrfirst, @acr; fixing an id-generation issue for @glossary entities - Completed the first round of amending nx.nxd with @glossary entries and references. - I got rid of curly braces ("{", "}") as marker symbols ("{{...}}", "{{{ ... }}}") for formatting fragments of comment blocks. They proofed sufficiently hairy due to their heavily loaded meaning for the Tcl parser (the unclosed brace issue in Tcl comment blocks, the list-like processing in our comment block parser, ...). Instead, I introduced <<...>> for link-like elements (anchors, glossary references) and MediaWiki-like '''...''' blockmarkers for code listings. Thanks to Victor Guerra for reviewing and discussing this concrete-syntactic design decision. - Increased the robustness of line-by-line parsing for comment blocks. Within the comment block parser, we operate on comment lines as Tcl lists (lindex, lassign, ...). While convenient from a processing perspective, this risks limiting the degrees of freedom when writing comments (e.g., using tabs and spaces to indent inline, grouping words to form lists of lists, ...). By leveraging "args" argument processing through [apply] for line preprocessing, we balance the two requirements. - Verified that @use works between objects and methods. - Some cleanup in the mixin layer code - Resolve interp-alias chains to entity class objects explicitly - Adjusting the Container/Containable mechanism to apply only to part classes relevant to particular container entities. - Fixing support for package rendering as top-level entities (e.g., in the leftbar menu) - Providing the project object to all entities subject to template processing. - Declaring some forwarders public explicitly (to reflect recent changes in the reach of default call protection)

  1. … 6 more files in changeset.
- Refactoring templating code: Separated generic and backend-specific templating behaviour into distinct classes: BaseTemplateData and NxDocTemplateData. Rewrote the getter logic for the @doc strings to retrieve different representations (as_text() and as_list()). - Multi-line block markers: To achieve this, I moved the handling of block markers into the template data classes. - Adjusted the tests for the changes ...

  1. … 5 more files in changeset.
- Added an experimental gathering facility for part objects, relative to a given entity object. It returns a [dict] which allows to reuse the parts gathered throughout the templates rendering process. - Moved the process=@* methods to the doc object (this increases the cohesion). - Adjusted the current documentation artifacts for the changes (@object -> @class where applicable).

  1. … 5 more files in changeset.
- I created a first draft of the nx language manual, based on the new next::doc facilities. It is still incomplete, but demonstrates the use of next::doc for authoring code documentation.

To re-create the language reference (which is not yet integrated into

the build environment), run:

./nextsh tests/doc.xotcl

You will then find an output directory "NextLanguageCore" in your

/tmp/ directory.

- The next::doc comments which are sourced for generating the manual

can be found in generic/gentclAPI.decls and

generic/predefined.xotcl. I tried to add most comments to the

former, as the complexity of the predefined script does not comfort

documentation comments (and vice versa).

- Applied many fixes to the templates (based on the needs of the

language reference)

  1. … 9 more files in changeset.
- Added a first set of documentation templates, based on the the TemplateData engine and the YUI doc styles available from http://yuilibrary.com/downloads/ (see library/lib/doc-assets/*.tmpl.html) - Added a @project entity class, which will become the root concept in a documentation hierarchy. For now, it only serves for some auxiliary purposes when processing the doc templates. - Continued documenting the next::doc package for testing purposes.

  1. … 12 more files in changeset.