1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-11-04 08:17:17 -05:00
elinks/doc
André Schröder b5379b4166 [doc] Update ECMAScript documentation
elinks supports SpiderMonkey 78 (from 2020) and not only 1.5 (from
2000). This is not documented yet.

Removed `js-1.5-rc6a+elinks.patch` because the Meson build script expect
SpiderMonkey 78 for which this patch is irrelevant. Also, you can build
elinks with the vanilla SpiderMonkey 78, that is without needing to
apply any patch.

Removed the documentation on building SpiderMonkey 1.5 because this is
not relevant anymore.

Updated the documentation to use `meson build` instead of `autogen.sh`.
I think the autogen.sh doesn't yet support new SpiderMonkey versions.
2022-03-15 12:47:21 +01:00
..
man [doc] Note about HOME_ETC 2021-12-16 13:25:36 +01:00
tools [python3] one time conversion of asciidoc to Python3. Refs #38 2020-01-04 20:15:28 +01:00
.gitignore Integrate Doxygen better in the build system 2007-08-08 14:23:21 +02:00
asciidoc.conf Add description and version info to manpages 2008-03-06 10:28:09 +02:00
bittorrent.txt doc: Backslashify dashes in long options to prevent —. 2006-12-27 19:14:57 +02:00
bookmarks.txt doc: Always refer to elinks.cz rather than elinks.or.cz. 2006-04-27 00:13:33 +03:00
color-model.txt Remove now useless $Id: lines. 2005-10-21 09:14:07 +02:00
dev-intro.txt doc: Fixed a quote in AsciiDoc markup. 2006-05-14 22:22:37 +03:00
Doxyfile.in [meson] build api using doxygen 2020-09-23 18:05:08 +02:00
ecmascript.txt [doc] Update ECMAScript documentation 2022-03-15 12:47:21 +01:00
elinks.1.txt [doc] Note about HOME_ETC 2021-12-16 13:25:36 +01:00
elinks.conf.5.txt elinks.conf.5: Refer to manual for MIME options 2012-11-03 23:01:28 +02:00
elinkskeys.5.txt doc: Ctrl-Alt- keystrokes can be bound too. 2007-02-11 20:55:58 +02:00
events.txt bug 153, 1066: Add codepage parameter to update_bookmark(). 2009-02-08 18:26:18 +02:00
exmode.txt doc: Backslashify dashes in long options to prevent —. 2006-12-27 19:14:57 +02:00
faq.txt Document ui.mouse_disable and ui.show_ip 2020-06-26 22:19:17 +02:00
feedback.txt Drop useless comment block now that CVS Id tags are gone 2006-01-03 14:28:26 +01:00
hacking.txt bug 1047: inline functions C99 conformance 2009-03-28 20:15:08 +02:00
installation.txt configure: Find SpiderMonkey with pkg-config only 2011-05-01 21:21:49 +03:00
introduction.txt Strings corrections from Malcolm Parsons 2008-01-27 04:19:23 +00:00
lua-scripting.txt update documentation of the lua tmpfile() function 2021-04-17 10:37:35 +02:00
mailcap.txt doc: Backslashify dashes in long options to prevent —. 2006-12-27 19:14:57 +02:00
Makefile docs: generate pdfs using dblatex 2020-09-03 12:44:43 -04:00
manual.txt Move most of contrib/smjs/README into the manual. 2008-07-10 20:31:22 +03:00
marks.txt Drop useless comment block now that CVS Id tags are gone 2006-01-03 14:28:26 +01:00
meson.build [meson] install manuals 2021-12-09 19:12:43 +01:00
mime.txt also pass the uri as %u to external handlers 2020-07-25 13:29:47 +02:00
perl.pod Strings corrections from Malcolm Parsons 2008-01-27 04:19:23 +00:00
python.txt Python: Document more goto_url_hook and follow_url_hook return values. 2007-01-12 00:02:50 +02:00
README docs: generate pdfs using dblatex 2020-09-03 12:44:43 -04:00
release.txt Rename configure.in to configure.ac 2017-11-22 17:01:48 -05:00
remote.txt document the -remote search(string) function 2020-05-03 16:31:44 +02:00
small.txt Minor documentation improvements 2008-07-13 15:25:41 +02:00
smjs-scripting.txt Bug 943: Refuse user JS actions in unfocused tabs 2012-11-03 22:10:27 +02:00
tabs.txt Drop useless comment block now that CVS Id tags are gone 2006-01-03 14:28:26 +01:00
terminals.txt Drop useless comment block now that CVS Id tags are gone 2006-01-03 14:28:26 +01:00
tinycc.txt NEWS: Moved Tiny C Compiler advice to a separate file. 2007-04-14 16:53:25 +03:00
urlshortcuts.txt Drop useless comment block now that CVS Id tags are gone 2006-01-03 14:28:26 +01:00

			Overview of the ELinks documentation

There is only limited documentation available for ELinks so far, sorry. It
basically consists of the documents in this directory and the features.conf,
README and INSTALL files in the project's root directory.

You are encouraged to get a copy of the ELinks manual. It tries to be a
complete book of all there is to know about ELinks. For example, most files
listed in the next section is in some way part of the ELinks manual.

Instructions on building the manual is given below. If you do not intend to
build it yourself either access it on the ELinks homepage or, if you
downloaded ELinks via a tarball, the manual should be in the html/ directory.


Where to start
--------------

This sections tries to give a quick overview of important files you will find
in this directory or it's children.

 - Man pages:

	elinks(1) ................................... man/man1/elinks.1
	elinks.conf(5) .............................. man/man5/elinks.conf.5
	elinkskeys(5) ............................... man/man5/elinkskeys.5

   Man pages are best viewed with the man program. The easiest way to do this
   is by telling the man program to look for man pages in the doc/man
   directory by using the -M switch. If you are standing in the top-level
   directory, you can do this by invoking the man program using:

	man -M doc/man elinks.conf

 - User's Guide:

	Getting ELinks up and running................ installation.txt
	Introduction to the World of ELinks ......... introduction.txt
	Frequently Asked Questions .................. faq.txt
	JavaScript/ECMAScript in ELinks ............. ecmascript.txt
	Notes on User Feedback ...................... feedback.txt
	The Smallest Binary Quest Spoilerbook ....... small.txt

   Note: The ELinks manual really should be read in one of the generated
   formats: html, html-chunked or pdf, however the entry point can be found in
   manual.txt and might be of some help, when deciding what other .txt
   documents to read in this directory.

 - Developer's Guide:

	Introduction to ELinks Developing ........... dev-intro.txt
	The Demented Guide to Source Hacking ........ hacking.txt

   The developing intro tries to explain some of the basic concepts in the
   ELinks internal. While the hacking guide contains great deal about general
   source code structure and especially guidelines regarding coding style,
   submitting patches etc., thus every aspiring developer should take the
   pains to read through it, do not forget to also look for README and similar
   text files in the subdirectories containing the relevant sources for
   detailed notes regarding given modules/subsystems. Additionally, it is
   possible to build API docs. More about this below.

	The Lua Scripting Book ...................... lua-scripting.txt
	Events Reference Sheet ...................... events.txt

   The above covers internal scripting, by which we mean scripting of the
   browser internals through embedded Lua, Guile or Perl scripts. ECMAScript
   scripts embedded in documents have nothing to do with that.


Building documentation
----------------------

The following tools are used for generating documentation in various formats:

 - python: interpreter for asciidoc, which is the basic tool for
   lifting the .txt files to other formats.
 - xmlto: used for outputting chunked HTML and man pages. 
 - dblatex: used for pdf documents.
 - pod2html: used for perl docs.

All these tools are checked by configure, thus to successfully build all the
possible documentation (with the tools available on the system), just run

	$ make all-docs

in the doc/ directory. It will build, if possibly, the manual in the following
manual formats (with tool requirements listed):

 - HTML one-file (asciidoc)
 - HTML chunked / multiple files (asciidoc + xmlto)
 - PDF (asciidoc + dblatex)

and the following man page formats:
 
 - HTML (asciidoc)
 - man / groff (asciidoc + xmlto)

Note: You do not need to build manpages. They are shipped with ELinks. However,
if you want to have the manpages to match your local configuration and changes
you can rebuild them (this is mostly an issue with elinks.conf(5) which might
otherwise contain options that is not supported by the version you install.

Note: You must first build the ELinks binary for "make all-docs" to work
successfully. The binary is used for getting option documentation.

The documentation can be installed with:

	$ make install-doc

Building API documentation
^^^^^^^^^^^^^^^^^^^^^^^^^^

There is some starting effort to make it possible to build HTML documentation
of the APIs presented by the different modules and subsystems in ELinks. To
build API documentation run:

	$ make api

in the doc/ directory. The API documentation can then be found in the doc/api/
directory.

NOTE: Currently only few files provides API docs and there is no over-all
structure of the various APIs.

The API toolchain uses a Perl script (doc/tools/code2doc) to extract info from
header files and generate text files with AsciiDoc markup. The text files are
then converted to HTML with AsciiDoc.

To get an idea of how the code markup works take a look at src/dom/stack.h.
It has a small tag saying that it provides API docs for the dom-stack module:

	/* API Doc :: dom-stack */

The API doc markup should be pretty straight forward. Here is an example of the
basic structure:

	/** <title>
	 *
	 * <content>
	 */

Only text in comments starting with '/**' are used. If the comment immediately
preceeds a declaration of some struct, enum, typedef, function, or macro, the
name of the declared identifier will be used when creating the output to create
anchors which can be referred to using ref:[].


Contributing
------------

Contributions are very warmly welcomed, whether it is fixing typos or bad
grammar, rewritings or new material. Any information relevant to ELinks usage
can be included in the manual, including FAQ material, tips and cheats ;)

There is no strict codingstyle, but please don't limit your use of whitespaces
and take a look at the style used in the current documents to get ideas of what
is reasonable.

Contributions should be sent to Jonas Fonseca <fonseca@diku.dk> or to the
ELinks mailing list. If you are changing something in an existing document,
please read about how to make unified patches in the Patches section of the
doc/hacking.txt file.