#4751: improve documentation generation
-------------------------------------------------+-------------------------
 Reporter:  Forgon                               |             Owner:
     Type:  patch (an actual patch, not a        |            Status:  new
  request for one)                               |         Milestone:
 Priority:  normal                               |  unspecified
Component:  other                                |           Version:
 Keywords:                                       |  git/master
 Blocking:                                       |        Blocked By:
                                                 |  Operating System:  All
                                                 |  /Non-Specific
-------------------------------------------------+-------------------------
 === Man page ===

 When executing `a2x -f manpage -D . ./warzone2100.6.asciidoc`, Asciidoc
 prints a warning:

 {{{
 a2x: WARNING: --destination-dir option is only applicable to HTML based
 outputs
 }}}

 [https://github.com/asciidoc/asciidoc/issues/44 This is an inconsequential
 error], which can be suppressed by instead executing `a2x -f manpage
 ./warzone2100.6.asciidoc`, which is functionally equivalent.

 === JavaScript API reference ===

 The JavaScript API reference is generated with the following commands:

 {{{
 grep ./src/qtscript.cpp -e '//==' | sed 's/\/\/==//' > doc/globals.tex
 grep ./src/qtscriptfuncs.cpp -e '//==' | sed 's/\/\/==//' >>
 doc/globals.tex
 grep ./src/qtscript.cpp -e '//__' | sed 's/\/\/__//' > doc/events.tex
 grep ./src/qtscript.cpp -e '//--' | sed 's/\/\/--//' > doc/functions.tex
 grep ./src/qtscriptfuncs.cpp -e '//--' | sed 's/\/\/--//' >>
 doc/functions.tex
 grep ./src/qtscriptfuncs.cpp -e '//;;' | sed 's/\/\/;;//' >
 doc/objects.tex
 grep ./data/base/script/campaign/libcampaign.js -e '//;;' | sed
 's/\/\/;;//' > doc/campaign.tex
 test /home/x/warzone2100-backup/warzone2100 =
 /home/x/warzone2100-backup/warzone2100 || cp ./doc/javascript.tex doc/
 }}}

 Sed substitution commands are now delimited with a colon rather than a
 dash, which renders escape characters obsolete and improves readability.

 {{{
 (cd doc; hevea javascript.tex; hevea javascript.tex)
 ./javascript.tex:4: Warning: Command not found: \lstloadlanguages
 ./javascript.tex:10: Warning: No author given
 ./javascript.tex:28: Warning: keyval, unknown key: 'AI'
 ./javascript.tex:75: Warning: keyval, unknown key: 'scripts'
 ./javascript.tex:86: Warning: keyval, unknown key: 'player_2'
 ./functions.tex:149: Warning: Undefined label: 'objects:structure'
 ./functions.tex:156: Warning: Undefined label: 'objects:structure'
 HeVeA Warning: Label(s) may have changed. Rerun me to get cross-references
 right.
 ./javascript.tex:4: Warning: Command not found: \lstloadlanguages
 ./javascript.tex:10: Warning: No author given
 ./javascript.tex:28: Warning: keyval, unknown key: 'AI'
 ./javascript.tex:75: Warning: keyval, unknown key: 'scripts'
 ./javascript.tex:86: Warning: keyval, unknown key: 'player_2'
 HeVeA Warning: Label(s) may have changed. Rerun me to get cross-references
 right.
 (cd doc; hacha -o javascript-index.html javascript.html)
 }}}

 The command '\lstloadlanguages' is not found because HeVea implements only
 a subset of the [https://ctan.org/pkg/listings LaTeX package "listings"]
 (read [http://hevea.inria.fr/doc/manual-packages.html#listings%3Apackage
 this section for more details]) to which it belongs.

 All references to programming languages have been removed since
 JavaScript, JSON and INI are not in the list of languages supported by
 "listings" (read page 13 of its
 
[http://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/listings/listings.pdf
 documentation]). These languages could be defined (read section 3.2 of the
 User's guide in the documentation), yet this would unlikely be worth the
 necessary effort since the JavaScript API documentation will soon be
 converted from LaTeX to Markdown.

 In 3 cases, literal square brackets were confused with optional
 environment arguments, as in this example:

 {{{
 \begin{lstlisting}
         [AI]
         name = "Semperfi JS"
         js = semperfi.js
 \end{lstlisting}
 }}}

 The problem was solved by declaring the "lstlisting" environment with an
 empty set of optional arguments.

 The warning about no author being given was suppressed by declaring
 '\author{}' with an empty set of names.

 Warnings about undefined labels commonly occur in LaTeX even in the
 absence of syntax errors. In such cases, the proper way to fix them when
 using HeVeA is to execute `hevea -fix <file>` rather than running the
 program several times.

 The only label used in the JavaScript API documentation was renamed from
 "objects:structure" to "subsec:Structure", which is more in line with
 LaTeX conventions.

--
Ticket URL: <http://developer.wz2100.net/ticket/4751>
Warzone 2100 Trac <http://developer.wz2100.net/>
The Warzone 2100 Project
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Warzone2100-project mailing list
Warzone2100-project@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/warzone2100-project

Reply via email to