Changes

Jump to navigation Jump to search
Reorganization of feature list, features added
https://github.com/pmazaitis/context_command_reference_prototype
 
This is meant to be a small scale, easily digestible prototype to show how DITA might be used to develop a comprehensive documentation set.
 
=== Output Products ===
 
From the hand-built prototype, The DITA Open Toolkit (dita-ot) can generate lots of different formats out of the box, and use plugins for others. Here are some examples, all generated from the above DITA document set.
 
==== HTML5 ====
 
`dita-ot` can generate an HTML version of the documentation set:
 
`dita --input=context_command_reference.ditamap --format=html5`
 
...as hosted here:
 
https://paul.mazaitis.org/ctx_comref/prototype-html5/
 
This is without any CSS, etc. - just the structure.
 
==== XSL-FO PDF ====
 
`dita-ot` can generate an XSL-FO version of the documentation set:
 
dita --input=context_command_reference.ditamap --format=pdf
 
...as hosted here:
 
https://paul.mazaitis.org/ctx_comref/prototype-pdf/context_command_reference.pdf
 
This is pretty straightforward FO. (I imagine ConTeXt could do a nicer job...)
 
==== Normalized XML ====
 
`dita-ot` can generate a normalized version of the documentation set:
 
dita --input=context_command_reference.ditamap --format=dita
 
...as available here:
 
https://paul.mazaitis.org/ctx_comref/prototype-normalized-topics/
 
This transformation does all of the processing work on individual topics (coping content, resolving lints, etc.) but keeps the content as XML files for further processing.
 
==== Web Help ====
 
I also use the Oxygen XML Editor, which comes with several other transformations. One transformation of the documentation set that might be interesting as an example of what is possible is their Web Help implementation, hosted here:
 
https://paul.mazaitis.org/ctx_comref/prototype-webhelp-responsive/
 
==== Other Available Transformations ====
 
There are many other transformations available, and it is possible to create new ones.
 
== A Full Command Set ==
 
=== Dita Sources ===
 
A full DITA rendering of the ConTeXt command interface is tracked here:
 
https://github.com/pmazaitis/context_command_reference
 
These files are generated by a Python script from the command interface files distributed with ConTeXt. The Script is available here:
 
https://github.com/pmazaitis/context-interface2dita
 
...with a noted lack of documentation as of yet.
 
This documentation set is tested to build to PDF, HTML5 and Normalized DITA.
=== Topic Level Features ===
The `audience` element expresses the intended audience for this topic. This can be used to indicate a level of expertise expected for the audience of this particular command:
- * user: command is meant for the general ConTeXt user base- * programmer: command is meant for folks who create their own ConTeXt commands- * implementor: command is meant for internal use in ConTeXt development
There is some flexibility here with the labels.
The `category` element describes one or more categories that this command is part of. A command topic can have multiple `category` elements.
 
The `keywords` element can support one or more `keyword` elements, to tag commands that fall into more than one area.
The `prodinfo` element contains metadata about how this command topic related to the entire project. The `prodname` element generally links the command to ConTeXt, while the `vrmlist` allows tracking of version (whatever makes sense) and release (which might be useful for production/experimental commands, etc.).
These elements can be used for conditional processing. For example, we could instruct the DITA processor to only include topics that are user-focused, etc.
 
In addition to the formal metadata, the `prolog` also supports two other pieces of information: the `source` element, and the `critdates` element.
 
The `source` element may be useful here to describe a full (non-rooted?) path to the source file in the standard ConTeXt distribution.
 
The `critdates` element can contain `created` and `revised` elements to capture creating, modification, and expiry dates. This element can be used progamatically to identify documentation that is scheduled for an edit.
==== Syntax ====
This is a simple two column table that describes commands (column one) and the commands related to that command (column two).
== Output Products == From the hand-built prototype, The DITA Open Toolkit (dita-ot) can generate lots of different formats out of the box, and use plugins Multiple Maps for others. Here are some examples, all generated from the above DITA document set. === HTML5 === `dita-ot` can generate an HTML version of the documentation set:  `dita --input=context_command_reference.ditamap --format=html5` ...as hosted here: https://paul.mazaitis.org/ctx_comref/prototype-html5/ This is without any CSS, etc. - just the structure. === XSL-FO PDF === `dita-ot` can generate an XSL-FO version of the documentation set: dita --input=context_command_reference.ditamap --format=pdf ...as hosted here: https://paul.mazaitis.org/ctx_comref/prototype-pdf/context_command_reference.pdf This is pretty straightforward FO. (I imagine ConTeXt could do a nicer job...) === Normalized XML =Multiple Products == `dita-ot` can generate a normalized version of the documentation set: dita --input=context_command_reference.ditamap --format=dita
...as available hereAt the moment, the distribution supports three maps of command topics:
https://paul.mazaitis.org/ctx_comref/prototype* The full command set* User-normalized-topics/facing commands* System commands
This transformation does all ...each drawing on the same pool of the processing work on individual command topics (coping content, resolving lints, etc.) but keeps to build the content as XML files for further processingfinal product.
=== Web Help ===Maps could also be made to support command glossaries for manuals, etc.
I also use the Oxygen XML Editor, which comes with several other transformations. One transformation of the documentation set that might be interesting as an example of what is possible is their Web Help implementation, hosted here:
https://paul.mazaitis.org/ctx_comref/prototype-webhelp-responsive/==== Keeping Track of What Needs To Be Worked On ====
=== Other Available Transformations === There are many other transformations available, and it is possible to create new ones. == A Full Command Set == === Dita Sources === A full DITA rendering of Several elements in the ConTeXt command interface is available here: https://github.com/pmazaitis/context_command_reference ...generated by a fairly scary Python script from topics now have the command interface files distributed with ConTeXt`rev` attribute. This documentation set builds cleanly into HTML5, PDF, and Normalized DITA. There are caveats! This documentation set badly needs can be used to be edited; there are places in spot-checking the commands where the script made wildly incorrect interpretations of the interface.  It turns out that chains of inheritance play badly; all keep track of the inheritance what elements in this documentation set has been flattened. (For example, instead of a command inheriting settings from `\blank` which in turn inherits from `\vspacing`, the command inherits from `\vspacing`.) There set are some quirks! For example commands were listed as inheriting options (single keywords) from `\setuppapersize`, but `\setuppapersize` only had settings (key/still boilerplate by incrementing the attribute value pairs). I did the best I could to untangle thoseafter edit.
=== Output Products ===
I've prepared three formats for The Normalized DITA version of the entire command setcurrent effort is here: HTML, PDF, and Normalized Dita.
The HTML5 version is hosted herehttps://paul.mazaitis.org/ctx_comref/ctx_com_ref-ditanorm-20200622_002.zip
https://paul.mazaitis.org/ctx_comref/full-html5/index.htmlpresented as a zip file (to browse though a smaller example, the prototype is still available online).
...This one is interesting to me, in that it might be useful as a basis for interactive exploration. The PDF inclusion and formatting in both ConTeXt documents (through the XML interface) and/or the Wiki (XSL-FOif current methods could be adopted) version is here:.
httpsOther available formats://paul.mazaitis.org/ctx_comref/full-pdf/context_command_reference.pdf
HTML5 (No CSS, Zipped): https://paul.mazaitis.org/ctx_comref/ctx_com_ref-html5-20200622_002.and it's worth noting that this behemoth requires upping the Java memory limit to 3GB (!) to finish compiling, and the resulting output is functional, but could be more pleasant.zip
Which brings us to the Normalized DITAPDF (XSL-FO, Full Command Set):https://paul.mazaitis.org/ctx_comref/ctx_com_ref-pdf-20200622_002.pdf
httpsThere are also maps available to build a reference manual with only system commands, and a reference manual with only user commands. A PDF version of the latter://paul.mazaitis.org/ctx_comref/full-normalized_dita.zip
https://paul.mazaitis..presented as a zip file (to browse though a smaller example, the prototype is still available online).  This one is interesting to me, in that it might be useful as a basis for inclusion and formatting in both ConTeXt documents (through the XML interface) andorg/ctx_comref/or the Wiki (if current methods could be adopted)ctx_user_ref-pdf-20200622_002.pdf
=== Much Yet to Do ===
The documentation still needs to be completed and edited, etc., but I think this could be a viable way to systematically document more of the interface's depth and detail.
 
== Pros and Cons ==
51

edits

Navigation menu