\input texinfo.tex    @c -*-texinfo-*-
@setfilename texinfo-js.info

@copying
This file describes how to add the Texinfo JavaScript Interface to HTML
manuals generated from Texinfo.

Copyright @copyright{} 2018 Free Software Foundation, Inc.

@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with the Front-Cover Texts being ``A GNU Manual,''
and with the Back-Cover Texts as in (a) below.  A copy of the license
is included in the section entitled ``GNU Free Documentation License''.

(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
modify this GNU manual.''
@end quotation
@end copying

@dircategory Texinfo documentation system
@direntry
* Texinfo JavaScript Interface: (texinfo-js).
@end direntry

@titlepage
@title Texinfo JavaScript Interface

@author Gavin Smith
@end titlepage

@summarycontents

@ifnottex
@node Top
@top Texinfo JavaScript Interface
This manual describes how to add the Texinfo JavaScript Interface to HTML
manuals generated from Texinfo.
@end ifnottex

@node Invoking @command{texinfo-js}
@chapter Invoking @command{texinfo-js}

The Texinfo JavaScript Interface is an attempt to use JavaScript to make 
browsing features
provided by the Info mode of Emacs and the @command{info} program
available to read HTML manuals in a standard web browser.  These 
features include:
@c should mention some free software web browsers here

@itemize
@item Fast index lookup using the @key{i} key.
@item Navigation using @key{n}, @key{p} and @key{u}
@end itemize

To see a list of available commands while reading a manual using
the Texinfo JavaScript Interface, click on the `?'@: symbol in the top 
right-hand
corner.

To add the Texinfo JavaScript Interface to HTML
manuals generated from Texinfo, use the @command{texinfo-js} command.
For example:

@example
texinfo-js elisp.texi
@end example

@noindent The HTML manual is created in the @code{elisp-html} directory.

Any extra arguments given to @command{texinfo-js} are passed on to
@command{texi2any}.  For example:

@example
texinfo-js elisp.texi --css-ref=kawa.css
@end example

@noindent causes the @file{kawa.css} CSS file to be referenced in the
HTML files which are output.


@node History
@appendix History

The Texinfo JavaScript Interface was created by
Matthieu Lirzin in 2017 as part
of a Google Summer of Code (GSOC) project.  Advice was given by Per 
Bothner and Gavin Smith.

Some historical links:

@itemize
@item 
@uref{https://www.gnu.org/software/soc-projects/ideas-2017.html#texinfo,
GSOC 2017 project suggestions for Texinfo}

@item
@uref{http://mathieu.lirzin.emi.u-bordeaux.fr/archives/,
Reports on the development of the system during GSOC}

@end itemize

@node GNU Free Documentation License
@appendix GNU Free Documentation License
@include fdl.texi


@bye
