logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

doctools2idx_introduction - DocTools - Keyword indices

Bugs, Ideas, Feedback

       This document, and the package it describes, will undoubtedly contain bugs and  other  problems.   Please
       report  such  in  the  category  doctools  of the TcllibTrackers [http://core.tcl.tk/tcllib/reportlist].
       Please also report any ideas for enhancements you may have for either package and/or documentation.

       When proposing code changes, please provide unifieddiffs, i.e the output of diff-u.

       Note further that attachments are strongly preferred over inlined patches. Attachments  can  be  made  by
       going  to the Edit form of the ticket immediately after its creation, and then using the left-most button
       in the secondary navigation bar.

Category

       Documentation tools

Description

docidx  (short  for documentationindices) stands for a set of related, yet different, entities which are
       working together for the easy creation and transformation of keyword indices for documentation.

       These are

       [1]    A tcl based language for the semantic markup of a keyword index.  Markup  is  represented  by  Tcl
              commands.  Beginners should start with the docidxlanguageintroduction.  The formal specification
              is  split  over  two  documents,  one  dealing with the docidxlanguagesyntax, the other a docidxlanguagecommandreference.

       [2]    A set of packages for the programmatic manipulation  of  keyword  indices  in  memory,  and  their
              conversion between various formats, reading and writing. The aforementioned markup language is one
              of the formats which can be both read from and written to.

       [3]    The system for the conversion of indices is based on a plugin mechanism, for this we have two APIs
              describing the interface between the packages above and the import/export plugins.

       Which  of  the  more  detailed documents are relevant to the reader of this introduction depends on their
       role in the documentation process.

       [1]    A writer of documentation has to understand the markup  language  itself.  A  beginner  to  docidx
              should  read  the more informally written docidxlanguageintroduction first. Having digested this
              the formal docidxlanguagesyntax specification should become understandable. A writer experienced
              with docidx may only need the docidxlanguagecommandreference from time to time to  refresh  her
              memory.

              While  a  document is written the dtp application can be used to validate it, and after completion
              it also performs the conversion into the chosen system of visual markup, be it *roff, HTML,  plain
              text,  wiki,  etc.  The  simpler  dtplite  application  makes internal use of docidx when handling
              directories of documentation, automatically generating a proper keyword index for them.

       [2]    A processor of documentation written in the docidx markup language has to  know  which  tools  are
              available for use.

              The  main  tool is the aforementioned dtp application provided by Tcllib. The simpler dtplite does
              not expose docidx to the user. At the bottom level, common to both applications, however  we  find
              the  three  packages  providing  the  basic facilities to handle keyword indices, i.e. import from
              textual formats, programmatic manipulation in memory, and export to textual formats. These are

              doctools::idx
                     Programmatic manipulation of keyword indices in memory.

              doctools::idx::import
                     Import of keyword indices from various textual formats. The set  of  supported  formats  is
                     extensible through plugin packages.

              doctools::idx::export
                     Export  of  keyword  indices  to  various  textual formats. The set of supported formats is
                     extensible through plugin packages.

              See also section PackageOverview for an overview of the dependencies  between  these  and  other,
              supporting packages.

       [3]    At  last,  but not least, pluginwriters have to understand the interaction between the import and
              export packages and their plugins.  These APIs are described in  the  documentation  for  the  two
              relevant packages, i.e.

              •      doctools::idx::importdoctools::idx::export

Keywords

       conversion, formatting, index, keyword index, markup, parsing, plugin, semantic markup

Name

       doctools2idx_introduction - DocTools - Keyword indices

Package Overview

                                                  ~~~~~~~~~~~ doctools::idx ~~~~~~~~~~~
                                                 ~~                   |               ~~
                              doctools::idx::export ~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~ doctools::idx::import
                                      |                               |                       |
                      +---------------+-------------------------+     |    +------------------+---------------+-----------------------+---------------+
                      |               |                         |     |    |                  |               |                       |               |
              struct::map             =                         |     |    |                  =       doctools::include       struct::map      fileutil::paths
                                      |                         |     |    |                  |
                              doctools::idx::export::<*>        |     |    |          doctools::idx::import::<*>
                                      docidx                    |     |    |                  docidx, json
                                      json                      |     |    |                  |           \
                                      html                      |     |    |          doctools::idx::parse \
                                      nroff                     |     |    |                  |             \
                                      wiki                      |     |    |  +---------------+              json
                                      text                      |     |    |  |               |
                                                              doctools::idx::structure        |
                                                                                              |
                                                                                      +-------+---------------+
                                                                                      |                       |
                        doctools::html  doctools::html::cssdefaults           doctools::tcl::parse    doctools::msgcat
                              |                                                                               |
                        doctools::text  doctools::nroff::man_macros                                           =
                                                                                                              |
                                                                                                      doctools::msgcat::idx::<*>
                                                                                                              c, en, de, fr
                                                                                                              (fr == en for now)
                      ~~      Interoperable objects, without actual package dependencies
                      --      Package dependency, higher requires lower package
                      =       Dynamic dependency through plugin system
                      <*>     Multiple packages following the given form of naming.

See Also

       docidx_intro,    doctoc_intro,    doctools,     doctools2doc_introduction,     doctools2toc_introduction,
       doctools_lang_cmdref,         doctools_lang_faq,        doctools_lang_intro,        doctools_lang_syntax,
       doctools_plugin_apiref

See Also