1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-09-26 02:46:13 -04:00

Redo the whole doc/ build thing

You can now use: make {all-docs,pdf,html,man,api,update-man}
     instead of: make {all-docs,pdf-docs,html-docs,man-docs}

Away is building into separate dirs. This makes make able to actually get
dependencies right, since there are now a collection of 'common' build
rules, some of which have even been moved to use the cmd infrastructure.

To update the man pages there is a new update-man rule. It builds the
manual pages and copies them to their proper place under man/ while doing
the final preformatting.

As good thing is that the (two) man pages are moved to .txt files and
include the generated content.

The API building thing is also refined. It builds into api/ and builds it's
list of files dynamically by searching throught the .h files in the src/
directory. Documented header files must contain a comment like this:

	/* API Doc :: <api-name> */

where <api-name> is the name used for the file under api/, for example
dom-scanner.
This commit is contained in:
Jonas Fonseca 2006-01-11 11:02:43 +01:00 committed by Jonas Fonseca
parent fe7c2391d6
commit ba6221c6f6
12 changed files with 532 additions and 617 deletions

15
doc/.gitignore vendored
View File

@ -1,5 +1,12 @@
html api
pdf
txt
web
*.tmp *.tmp
*.html
*.pdf
*.xml
*.1
*.5
command-options.txt
import-features.conf.txt
keymap-actions.txt
keymap-defaults.txt
manual.html-chunked

View File

@ -3,51 +3,19 @@ include $(top_builddir)/Makefile.config
SUBDIRS = man SUBDIRS = man
HTML_DIR = $(DESTDIR)html VPATH = $(builddir):$(srcdir):$(top_srcdir)/contrib/perl
MAN_DIR = $(DESTDIR)man
PDF_DIR = $(DESTDIR)pdf
XML_DIR = $(DESTDIR)xml
# Keep generated .txt files relative to the source directory #export PATH="tools:$(PATH)"
# and files they are included in.
TXT_DIR = $(top_srcdir)/doc/txt
DOC_DIRS = \
$(HTML_DIR) \
$(HTML_DIR)/api \
$(MAN_DIR)/man1 \
$(MAN_DIR)/man5 \
$(TXT_DIR) \
$(XML_DIR)
# TODO: perl.pod should be pod2ized during make install. --pasky # TODO: perl.pod should be pod2ized during make install. --pasky
# XXX: manual.txt is the master document and must be first.
MANUAL_FILES = \
manual.txt \
\
bookmarks.txt \
ecmascript.txt \
exmode.txt \
faq.txt \
installation.txt \
introduction.txt \
lua-scripting.txt \
mailcap.txt \
marks.txt \
mime.txt \
remote.txt \
small.txt \
tabs.txt \
terminals.txt \
urlshortcuts.txt
### Script Dependencies ### Script Dependencies
# #
ELINKS = $(top_builddir)/src/elinks ELINKS = $(top_builddir)/src/elinks
KBDBIND = $(top_srcdir)/src/config/kbdbind.c
FEATURES = $(top_srcdir)/features.conf FEATURES = $(top_srcdir)/features.conf
KBDBIND = $(top_srcdir)/src/config/kbdbind.c
### Locale env vars to override system one to ensure commands ### Locale env vars to override system one to ensure commands
# using elinks binary will generate texts in english # using elinks binary will generate texts in english
@ -60,11 +28,36 @@ LOCALES = LC_ALL=C LANGUAGE=en
CODE2DOC = $(top_srcdir)/doc/tools/code2doc CODE2DOC = $(top_srcdir)/doc/tools/code2doc
HELP2DOC = $(top_srcdir)/doc/tools/help2doc HELP2DOC = $(top_srcdir)/doc/tools/help2doc
IMPORT_FEATURES_CONF = $(top_srcdir)/doc/tools/import-features.conf IMPORT_FEATURES_CONF = $(top_srcdir)/doc/tools/import-features.conf
MAKE_ELINKS_MANPAGE = $(top_srcdir)/doc/tools/make-elinks-manpage
MAKE_ELINKSKEYS_MANPAGE = $(top_srcdir)/doc/tools/make-elinkskeys-manpage TXT_DOCS = \
bookmarks.txt \
ecmascript.txt \
elinks.1.txt \
elinkskeys.5.txt \
exmode.txt \
faq.txt \
installation.txt \
introduction.txt \
lua-scripting.txt \
mailcap.txt \
manual.txt \
marks.txt \
mime.txt \
remote.txt \
small.txt \
tabs.txt \
terminals.txt \
urlshortcuts.txt
GEN_TXT_DOCS = \
command-options.txt \
import-features.conf.txt \
keymap-defaults.txt \
keymap-actions.txt
TXT_DOCS += $(GEN_TXT_DOCS)
HTML_DOCS-$(CONFIG_ASCIIDOC) += \ HTML_DOCS-$(CONFIG_ASCIIDOC) += \
api/dom.html \
elinks.1.html \ elinks.1.html \
elinkskeys.5.html \ elinkskeys.5.html \
hacking.html \ hacking.html \
@ -75,117 +68,120 @@ HTML_DOCS-$(CONFIG_XMLTO) += \
HTML_DOCS-$(CONFIG_POD2HTML) += \ HTML_DOCS-$(CONFIG_POD2HTML) += \
perl.html \ perl.html \
perl-hooks.html perl-hooks.html \
MAN_DOCS-$(CONFIG_XMLTO) += \ MAN_DOCS-$(CONFIG_XMLTO) += \
man1/elinks.1.in \ elinks.1 \
man5/elinkskeys.5 elinkskeys.5
# Only jw is used for generating PDF. # Only jw is used for generating PDF.
PDF_DOCS-$(CONFIG_JW) += \ PDF_DOCS-$(CONFIG_JW) += \
manual.pdf manual.pdf
MAN_DOCS += man5/elinks.conf.5 MAN_DOCS += elinks.conf.5
MAN_DOCS += $(MAN_DOCS-yes)
HTML_DOCS += $(HTML_DOCS-yes)
PDF_DOCS += $(PDF_DOCS-yes)
man-docs: doc-dirs $(addprefix $(MAN_DIR)/,$(MAN_DOCS))
html-docs: doc-dirs $(addprefix $(HTML_DIR)/,$(HTML_DOCS))
pdf-docs: doc-dirs $(addprefix $(PDF_DIR)/,$(PDF_DOCS))
all-docs: man-docs html-docs pdf-docs
### Build Rules
#
doc-dirs:
$(INSTALL) -d $(DOC_DIRS)
# $(MAN_DIR) intentionally left out
clean-local:
@$(RM) -r $(HTML_DIR) $(XML_DIR) $(TXT_DIR) $(PDF_DIR) *.tmp
# Autogenerated asciidoc files.
$(TXT_DIR)/import-features.conf.txt: $(FEATURES) $(IMPORT_FEATURES_CONF)
$(IMPORT_FEATURES_CONF) > $@
$(TXT_DIR)/elinks.1.%.txt: $(MAKE_ELINKS_MANPAGE) $(ELINKS) $(HELP2DOC) Makefile
$(LOCALES) $(MAKE_ELINKS_MANPAGE) $@ $(ELINKS) $(HELP2DOC) > $@
$(TXT_DIR)/elinkskeys.5.%.txt: $(MAKE_ELINKSKEYS_MANPAGE) $(KBDBIND) Makefile
$(LOCALES) $(MAKE_ELINKSKEYS_MANPAGE) $@ $(KBDBIND) > $@
# Man Pages
$(XML_DIR)/%.man.xml: $(TXT_DIR)/%.man.txt
$(ASCIIDOC) -b docbook -d manpage -o $@ $<
$(MAN_DIR)/man1/elinks.1.in: $(XML_DIR)/elinks.1.man.xml
$(XMLTO) -o $(MAN_DIR)/man1 man $<
sed 's/^\.TH "ELINKS" 1 .*/.TH "ELINKS" 1 "The ELinks text-browser" "$(shell date -I)" "The ELinks text-browser"/' \
< $(MAN_DIR)/man1/elinks.1 > $@
rm $(MAN_DIR)/man1/elinks.1
$(MAN_DIR)/man5/elinkskeys.5: $(XML_DIR)/elinkskeys.5.man.xml
$(XMLTO) -o $(MAN_DIR)/man5 man $<
sed -e 's/\\fI\\fR'\''/\\fI\\'\''\\fR/' < $@ > $@.tmp
sed 's/^\.TH "ELINKSKEYS" 5 .*/.TH "ELINKSKEYS" 5 "ELinks keybindings" "$(shell date -I)" "ELinks keybindings"/' \
< $@.tmp > $@
rm $@.tmp
$(MAN_DIR)/man5/elinks.conf.5: $(ELINKS) $(HELP2DOC) Makefile
$(LOCALES) $(HELP2DOC) --elinks=$(ELINKS) --elinksconf > $@
# XHTML/CSS Man Pages
$(HTML_DIR)/%.html: $(TXT_DIR)/%.html.txt
$(ASCIIDOC) -b xhtml11 -d manpage -o $@ $<
# The Manual
MANUAL_EXTRA_FILES = \
$(TXT_DIR)/import-features.conf.txt \
$(TXT_DIR)/elinks.1.html.txt \
$(TXT_DIR)/elinkskeys.5.html.txt
$(HTML_DIR)/manual.html: $(MANUAL_FILES) $(MANUAL_EXTRA_FILES)
$(ASCIIDOC) -b xhtml11 -d book -o $@ -n $<
$(HTML_DIR)/hacking.html: $(top_srcdir)/doc/hacking.txt
$(ASCIIDOC) -b xhtml11 -d book -o $@ -n $<
$(HTML_DIR)/dev-intro.html: $(top_srcdir)/doc/dev-intro.txt
$(ASCIIDOC) -b xhtml11 -d book -o $@ -n $<
$(XML_DIR)/manual.xml: $(MANUAL_FILES) $(MANUAL_EXTRA_FILES)
$(ASCIIDOC) -b docbook -d book -o $@ $<
$(HTML_DIR)/manual.html-chunked: $(XML_DIR)/manual.xml
$(XMLTO) -o $@ html $<
$(PDF_DIR)/manual.pdf: $(XML_DIR)/manual.xml
$(JW) -o $(PDF_DIR) -b pdf $<
$(HTML_DIR)/perl.html: $(top_srcdir)/doc/perl.pod
$(POD2HTML) --outfile=$@ < $<
$(HTML_DIR)/perl-hooks.html: $(top_srcdir)/contrib/perl/hooks.pl
$(POD2HTML) --outfile=$@ < $<
## API Docs ## API Docs
# #
DOM_API = \ API = $(shell find $(top_srcdir)/src/ -name '*.h' -exec grep -q 'API Doc' \{\} \; -printf "%p " | sort)
$(top_srcdir)/src/dom/scanner.h \
$(top_srcdir)/src/dom/stack.h \
$(top_srcdir)/src/dom/sgml/parser.h
$(HTML_DIR)/api/dom.html: $(DOM_API) define api_doc
$(CODE2DOC) $(DOM_API) | $(ASCIIDOC) -f code2doc.conf -b xhtml11 -d book -o $@ -n - api/$(2).txt: $(1)
@$(CODE2DOC) $(1) > $$@
API_TXT += api/$(2).txt
endef
$(foreach api,$(API),$(eval $(call api_doc,$(api),$(shell sed -n 's/.*API Doc\s*::\s*\([^ ]*\).*/\1/p' < $(api)),)))
## Se the default doc rules
MAN_DOCS = elinks.conf.5 $(MAN_DOCS-yes)
HTML_DOCS = $(HTML_DOCS-yes)
PDF_DOCS = $(PDF_DOCS-yes)
API_DOCS = $(patsubst %.txt,%.html,$(API_TXT))
api-dir:
@test -d api || $(MKINSTALLDIRS) api
txt: $(addprefix $(srcdir),$(TXT_DOCS))
html: txt $(HTML_DOCS)
pdf: txt $(PDF_DOCS)
man: txt $(MAN_DOCS) man-update
api: api-dir $(API_DOCS)
all-docs: man html pdf
man-update: $(MAN_DOCS)
@test "$(CONFIG_XMLTO)" = yes && \
sed 's/^\.TH "ELINKS" 1 .*/.TH "ELINKS" 1 "The ELinks text-browser" "$(shell date -I)" "The ELinks text-browser"/' \
< elinks.1 > $(srcdir)man/man1/elinks.1.in && \
$(RM) $(MAN_DIR)/man1/elinks.1
@test "$(CONFIG_XMLTO)" = yes && \
sed -e 's/\\fI\\fR'\''/\\fI\\'\''\\fR/' < elinkskeys.5 | \
sed 's/^\.TH "ELINKSKEYS" 5 .*/.TH "ELINKSKEYS" 5 "ELinks keybindings" "$(shell date -I)" "ELinks keybindings"/' \
> $(srcdir)man/man5/elinkskeys.5
@$(INSTALL) elinks.conf.5 $(srcdir)man/man5
clean-local:
@$(RM) -r api $(GEN_TXT_DOCS) $(MAN_DOCS) $(HTML_DOCS) $(PDF_DOCS) *.tmp
# Autogenerated files.
# FIXME: Keep generated .txt files relative to the source directory and files
# they are included in.
import-features.conf.txt: $(FEATURES) $(IMPORT_FEATURES_CONF)
$(IMPORT_FEATURES_CONF) > $@
keymap-defaults.txt keymap-actions.txt: $(MAKE_ELINKSKEYS_MANPAGE) $(KBDBIND)
$(LOCALES) $(srcdir)tools/make-elinkskeys-manpage $(KBDBIND)
command-options.txt: $(ELINKS) $(HELP2DOC)
$(LOCALES) $(HELP2DOC) --cmdoptions --elinks=$(ELINKS) > $@
elinks.conf.5: $(ELINKS) $(HELP2DOC)
$(LOCALES) $(HELP2DOC) --elinksconf --elinks=$(ELINKS) > $@
## Default build rules
#
quiet_cmd_asciidoc = ' [$(LINK_COLOR)ASCIIDOC$(END_COLOR)] $(RELPATH)$@'
cmd_asciidoc = $(ASCIIDOC) -f asciidoc.conf -b $(2) -d $(call doctype,$<) -o $@ $<
quiet_cmd_xmlto = ' [$(LINK_COLOR)XMLTO$(END_COLOR)] $(RELPATH)$@'
cmd_xmlto = $(XMLTO) $(3) $(2) $<
quiet_cmd_jw = ' [$(LINK_COLOR)JW$(END_COLOR)] $(RELPATH)$@'
cmd_jw = $(JW) -b $(2) $<
quiet_cmd_pod2html = ' [$(LINK_COLOR)POD2HTML$(END_COLOR)] $(RELPATH)$@'
cmd_pod2html = $(POD2HTML) --outfile=$@ < $<
doctype = $(if $(findstring .1.,$(1)),manpage,$(if $(findstring .5.,$(1)),manpage,book))
%.html: %.txt asciidoc.conf
$(call mcmd,asciidoc,xhtml11)
%.xml: %.txt asciidoc.conf
$(call mcmd,asciidoc,docbook)
%.1: %.1.xml
$(call mcmd,xmlto,man)
%.5: %.5.xml
$(call mcmd,xmlto,man)
%.html-chunked: %.xml
$(call mcmd,xmlto,html,-o $@)
%.pdf: %.xml
$(call mcmd,jw,pdf)
%.html: %.pod
$(call mcmd,pod2html)
perl-%.html: %.pl
$(call mcmd,pod2html)
include $(top_srcdir)/Makefile.lib include $(top_srcdir)/Makefile.lib

57
doc/asciidoc.conf Normal file
View File

@ -0,0 +1,57 @@
# AsciiDoc configuration file
# Copyright (c) Jonas Fonseca <fonseca@diku.dk>, 2006
# The elink macro can have optional {0} value, that is what
# the {0%...} and {0#...} handles.
#############################################################################
# DocBook
ifdef::backend-docbook[]
[man-inlinemacro]
{target}({0})
## For manpages use less verbose linking
ifdef::doctype-manpage[]
[link-inlinemacro]
{0%&lt;{target}&gt;}
{0#{0} &lt;{target}&gt;}
[http-inlinemacro]
{0%&lt;http:{target}&gt;}
{0#{0} &lt;http:{target}&gt;}
[mailto-inlinemacro]
&lt;{target}&gt;
endif::doctype-manpage[]
endif::backend-docbook[]
#############################################################################
# XHTML11
ifdef::backend-xhtml11[]
[man-inlinemacro]
<a href="{target}.{0}.html">{target}({0})</a>
[id-inlinemacro]
<a id="{0}" href="#{0}">{0}</a>
[enum-inlinemacro]
<a id="{target}">enum {target}: {0}</a>
[func-inlinemacro]
<a id="{target}">{target}(): {0}</a>
[struct-inlinemacro]
<a id="{target}">struct {target}: {0}</a>
[macro-inlinemacro]
<a id="{target}">struct {target}: {0}</a>
[typedef-inlinemacro]
<a id="{target}">typedef {target}: {0}</a>
[ref-inlinemacro]
<a href="{target}#{0}">{0}</a>
endif::backend-xhtml11[]

View File

@ -1,55 +0,0 @@
[specialwords]
emphasizedwords=\bAsciiDoc\b
monospacedwords=\basciidoc\(1\)
[id-inlinemacro]
<a id="{0}" href="#{0}">{0}</a>
[enum-inlinemacro]
<a id="{target}">enum {target}: {0}</a>
[func-inlinemacro]
<a id="{target}">{target}(): {0}</a>
[struct-inlinemacro]
<a id="{target}">struct {target}: {0}</a>
[macro-inlinemacro]
<a id="{target}">struct {target}: {0}</a>
[typedef-inlinemacro]
<a id="{target}">typedef {target}: {0}</a>
[ref-inlinemacro]
<a href="{target}#{0}">{0}</a>
[replacements]
(^|[^-])--($|[^-])=\1--\2
[tags]
ilisttext=|
olisttext=|
vlisttext=|
qlisttext=|
colisttext=|
[tags]
title1=<h1>|</h1>
title2=<h2>|</h2>
title3=<h3>|</h3>
[literalparagraph]
<table border="1" class="code"><tr><td><pre>
|
</pre></td></tr></table>
[listingblock]
<p><b>{title}</b></p>
<table border="1" class="code"><tr><td><pre>
|
</pre></td></tr></table>
[noteblock]
<div><p><b>{title}</b></p>
|
</div>

157
doc/elinks.1.txt Normal file
View File

@ -0,0 +1,157 @@
elinks(1)
=========
NAME
----
elinks - lynx-like alternative character mode WWW browser
SYNOPSIS
--------
'elinks' [OPTION]... [URL]...
DESCRIPTION
-----------
'ELinks' is a text mode WWW browser, supporting colors, table rendering,
background downloading, menu driven configuration interface, tabbed browsing
and slim code.
Frames are supported. You can have different file formats associated with
external viewers. `mailto:` and `telnet:` are supported via external clients.
ELinks can handle both local files and remote URLs. The main supported remote
URL protocols are 'HTTP', 'HTTPS' (with SSL support compiled in) and 'FTP'.
Additional protocol support exists for 'finger', 'Gopher', 'SMB' and
'NNTP'.
OPTIONS
-------
Most options can be set in the user interface or config file, so usually you
do not need to care about them. Note that this list is by no means complete
and it is not kept up-to-date. To get complete list of commandline options,
start 'ELinks' with parameter `--help`.
include::command-options.txt[]
ENVIRONMENT VARIABLES
---------------------
COMSPEC, SHELL::
The shell used for File -> OS Shell on DOS/Windows and UNIX,
respectively.
EDITOR::
The program to use for external editor (when editing textareas).
ELINKS_CONFDIR::
The location of the directory containing configuration files. If not
set the default is `~/.elinks/`.
ELINKS_TWTERM, LINKS_TWTERM::
The command to run when selecting File -> New window and if
`TWDISPLAY` is defined (default `twterm -e`)
ELINKS_XTERM, LINKS_XTERM::
The command to run when selecting File -> New window and if `DISPLAY`
is defined (default `xterm -e`)
FTP_PROXY, HTTP_PROXY, HTTPS_PROXY::
The host to proxy the various protocol traffic through.
NO_PROXY::
A comma separated list of URLs which should not be proxied.
HOME::
The path to the users home directory. Used when expanding `~/`.
WWW_HOME::
Homepage location (as in lynx(1)).
FILES
-----
@sysconfdir@/elinks.conf::
Site-wide configuration file.
~/.elinks/elinks.conf::
Per-user config file, loaded after site-wide configuration.
~/.elinks/bookmarks::
Bookmarks file.
~/.elinks/cookies::
Cookies file.
~/.elinks/formhist::
Form history file.
~/.elinks/gotohist::
GoTo URL dialog history file.
~/.elinks/globhist::
History file containing most recently visited URLs.
~/.elinks/searchhist::
Search history file.
~/.elinks/socket::
Internal 'ELinks' socket for communication between its instances.
PLATFORMS
---------
'ELinks' is known to work on 'Linux', 'FreeBSD', 'OpenBSD', 'Solaris', 'IRIX',
'HPUX', 'Digital Unix', 'AIX', 'OS/2', 'BeOS' and 'RISC OS'. Port for 'Win32'
is in state of beta testing.
BUGS
----
Please report any other bugs you find to the either the ELinks mailing list at
mailto:elinks-users@linuxfromscratch.org[] or if you prefer enter them into
http://bugzilla.elinks.or.cz/[the bug tracking system]. More information about
how to get in contact with developers and getting help can be found on
http://elinks.or.cz/community.html[the community page].
LICENSE
-------
'ELinks' is free software; you can redistribute it and/or modify it under the
terms of http://www.gnu.org/copyleft/gpl.html[the GNU General Public License]
as published by the Free Software Foundation; version 2 of the License.
AUTHORS
-------
The 'Links' browser - on which 'ELinks' is based - was written by Mikulas
Patocka mailto:mikulas@artax.karlin.mff.cuni.cz[]. 'ELinks' was written by
Petr Baudis mailto:pasky@ucw.cz[]. See file `AUTHORS` in the source tree for a
list of people contributing to this project.
The homepage of 'ELinks' can be found at http://elinks.cz/[].
This manual page was written by Peter Gervai mailto:grin@tolna.net[], using
excerpts from a (yet?) unknown 'Links' fan for the 'Debian GNU/Linux system'
(but may be used by others). Contributions from Francis A. Holop. Extended,
clarified and made more up-to-date by Petr Baudis mailto:pasky@ucw.cz[].
Updated by Zas mailto:zas@norz.org[]. The conversion to Asciidoc and trimming
was done by Jonas Fonseca mailto:fonseca@diku.dk[].
SEE ALSO
--------
man:elinkskeys[5], elinks.conf(5), links(1), lynx(1), w3m(1), wget(1)
////////////////////////////////////////////////////////////////////////////
# vim: tabstop=4 shiftwidth=4 textwidth=76
////////////////////////////////////////////////////////////////////////////

106
doc/elinkskeys.5.txt Normal file
View File

@ -0,0 +1,106 @@
elinkskeys(5)
=============
NAME
----
elinkskeys - keybindings for ELinks
SYNOPSIS
--------
Information on how to configure keybinding and overview of the default
keybindings.
DESCRIPTION
-----------
Key binding for elinks should be placed in the file `~/.elinks/elinks.conf`.
Note that any information regarding their format/structure may not be
up-to-date. If you will discover that, please feed us with a patch.
Key binding statements are of the form:
bind <keymap> <keystroke> = <action>
where:
<keymap>::
is 'main', 'edit', or 'menu'. The main keymap is used for general
browsing. The edit keymap is used for editing text fields. The menu
keymap is used for navigating menus.
<keystroke>::
is a case sensitive key, which you can prefix with 'Ctrl-' or 'Alt-'.
'Ctrl-' must be followed by an uppercase key. See below for a list of
valid keys.
<action>::
is what the key should do. The actions available are dependent on the
keymap, and are listed separately below.
All words/strings may all be quoted "like so". Backslashes are escape
characters, even if not between quotes. Lines beginning with a hash character
(`#`) are comments.
Keys can be unbound just by binding them to the special 'none' action. It may
be of use if you accidentally type a key often.
EXAMPLE BINDINGS
----------------
Some sample keybindings:
bind "main" "v" = "view-image"
bind "main" "l" = "jump-to-link"
bind "main" "L" = "link-menu"
bind "main" "F10" = "file-menu"
bind "main" "F9" = "menu"
bind "main" "Escape" = "menu"
bind "edit" "Ctrl-R" = "auto-complete-unambiguous"
bind "edit" "Ctrl-W" = "auto-complete"
bind "edit" "Ctrl-K" = "kill-to-eol"
bind "menu" "Ctrl-B" = "page-up"
bind "menu" "PageUp" = "page-up"
bind "menu" "Ctrl-F" = "page-down"
bind "menu" "PageDown" = "page-down"
# ELinks with Lua support
bind "main" "," = "lua-console"
KEYS
----
Valid keys are: alphanumeric characters, punctuation, 'Enter', 'Backspace',
'Tab', 'Escape', 'Left', 'Right', 'Up', 'Down', 'Insert', 'Delete', 'Home',
'End', 'PageUp', 'PageDown', 'F1' to 'F12'.
Some keys will need to be quoted or escaped. For example, space can be written
as `" "` (quote space quote), and the quote itself as `\"` (backslash quote).
Backslash can be written as `\\` (double backslash).
KEYMAP ACTIONS
--------------
include::keymap-actions.txt[]
DEFAULT BINDINGS
----------------
The default bindings are shown below. Any bindings in `~/.elinks/elinks.conf`
will override these.
include::keymap-defaults.txt[]
AUTHOR
------
This manual page was finally written by Peter Wang (one and a half years after
writing the binding code), using excerpts by David Mediavilla. You can thank
Petr Baudis for the subtle requests for documentation. Updated by Zas. Moved
to asciidoc format and cleaned up by Jonas Fonseca.
SEE ALSO
--------
man:elinks[1], elinks.conf(5)

View File

@ -71,6 +71,6 @@ include::small.txt[]
include::ecmascript.txt[] include::ecmascript.txt[]
include::txt/import-features.conf.txt[] include::import-features.conf.txt[]
endif::installation-webpage[] endif::installation-webpage[]

6
doc/man/man1/elinks.1.in Normal file → Executable file
View File

@ -17,7 +17,7 @@
.el .ne 3 .el .ne 3
.IP "\\$1" \\$2 .IP "\\$1" \\$2
.. ..
.TH "ELINKS" 1 "The ELinks text-browser" "2006-01-10" "The ELinks text-browser" .TH "ELINKS" 1 "The ELinks text-browser" "2006-01-11" "The ELinks text-browser"
.SH NAME .SH NAME
elinks \- lynx-like alternative character mode WWW browser elinks \- lynx-like alternative character mode WWW browser
.SH "SYNOPSIS" .SH "SYNOPSIS"
@ -236,7 +236,7 @@ The path to the users home directory\&. Used when expanding ~/\&.
.TP .TP
WWW_HOME WWW_HOME
Homepage location (as in lynx(1)) Homepage location (as in lynx(1))\&.
.SH "FILES" .SH "FILES"
@ -297,7 +297,7 @@ Please report any other bugs you find to the either the ELinks mailing list at <
The \fILinks\fR browser \- on which \fIELinks\fR is based \- was written by Mikulas Patocka <mikulas@artax\&.karlin\&.mff\&.cuni\&.cz>\&. \fIELinks\fR was written by Petr Baudis <pasky@ucw\&.cz>\&. See file AUTHORS in the source tree for a list of people contributing to this project\&. The \fILinks\fR browser \- on which \fIELinks\fR is based \- was written by Mikulas Patocka <mikulas@artax\&.karlin\&.mff\&.cuni\&.cz>\&. \fIELinks\fR was written by Petr Baudis <pasky@ucw\&.cz>\&. See file AUTHORS in the source tree for a list of people contributing to this project\&.
The homepage of \fIELinks\fR can be found at <http://elinks\&.or\&.cz/>\&. The homepage of \fIELinks\fR can be found at <http://elinks\&.cz/>\&.
This manual page was written by Peter Gervai <grin@tolna\&.net>, using excerpts from a (yet?) unknown \fILinks\fR fan for the \fIDebian GNU/Linux system\fR (but may be used by others)\&. Contributions from Francis A\&. Holop\&. Extended, clarified and made more up\-to\-date by Petr Baudis <pasky@ucw\&.cz>\&. Updated by Zas <zas@norz\&.org>\&. The conversion to Asciidoc and trimming was done by Jonas Fonseca <fonseca@diku\&.dk>\&. This manual page was written by Peter Gervai <grin@tolna\&.net>, using excerpts from a (yet?) unknown \fILinks\fR fan for the \fIDebian GNU/Linux system\fR (but may be used by others)\&. Contributions from Francis A\&. Holop\&. Extended, clarified and made more up\-to\-date by Petr Baudis <pasky@ucw\&.cz>\&. Updated by Zas <zas@norz\&.org>\&. The conversion to Asciidoc and trimming was done by Jonas Fonseca <fonseca@diku\&.dk>\&.

7
doc/man/man5/elinks.conf.5 Normal file → Executable file
View File

@ -1,6 +1,6 @@
.\" elinks.conf.5 .\" elinks.conf.5
.\" .\"
.\" Generated by help2doc (Revision: 1.19) on 2006-01-10 using output from ELinks version 0.12.GIT. .\" Generated by help2doc (Revision: 1.19) on 2006-01-11 using output from ELinks version 0.12.GIT.
.\" .\"
.\" Copyleft (c) 2002-2004 The ELinks project .\" Copyleft (c) 2002-2004 The ELinks project
.\" .\"
@ -8,7 +8,7 @@
.\" General Public License. <www.gnu.org/licenses/gpl.html> .\" General Public License. <www.gnu.org/licenses/gpl.html>
.\" .\"
.\" Process this file with groff -man -Tascii elinks.conf.5 .\" Process this file with groff -man -Tascii elinks.conf.5
.TH ELINKS.CONF 5 "ELinks configuration file" "2006-01-10" "ELinks configuration file" .TH ELINKS.CONF 5 "ELinks configuration file" "2006-01-11" "ELinks configuration file"
.SH NAME .SH NAME
elinks.conf \- ELinks configuration file elinks.conf \- ELinks configuration file
@ -2242,9 +2242,8 @@ in an xterm-like terminal. This way the document's title is
shown on the window titlebar. shown on the window titlebar.
.SH "DOCUMENT INFO" .SH "DOCUMENT INFO"
.PP .PP
Generated by help2doc (Revision: 1.19) on 2006-01-10 using output from ELinks version 0.12.GIT. Generated by help2doc (Revision: 1.19) on 2006-01-11 using output from ELinks version 0.12.GIT.
help2doc is distributed with ELinks under the terms of the GPL. help2doc is distributed with ELinks under the terms of the GPL.
.SH "SEE ALSO" .SH "SEE ALSO"
.BR elinks (1), .BR elinks (1),
.BR elinksmanual (1),
.BR elinkskeys (5) .BR elinkskeys (5)

21
doc/man/man5/elinkskeys.5 Normal file → Executable file
View File

@ -17,7 +17,7 @@
.el .ne 3 .el .ne 3
.IP "\\$1" \\$2 .IP "\\$1" \\$2
.. ..
.TH "ELINKSKEYS" 5 "ELinks keybindings" "2006-01-10" "ELinks keybindings" .TH "ELINKSKEYS" 5 "ELinks keybindings" "2006-01-11" "ELinks keybindings"
.SH NAME .SH NAME
elinkskeys \- keybindings for ELinks elinkskeys \- keybindings for ELinks
.SH "SYNOPSIS" .SH "SYNOPSIS"
@ -28,7 +28,7 @@ Information on how to configure keybinding and overview of the default keybindin
.SH "DESCRIPTION" .SH "DESCRIPTION"
Key binding for elinks should be placed in a file called ~/\&.elinks/elinks\&.conf\&. Note that any information regarding their format/structure may not be up\-to\-date\&. If you will discover that, please feed us with a patch\&. Key binding for elinks should be placed in the file ~/\&.elinks/elinks\&.conf\&. Note that any information regarding their format/structure may not be up\-to\-date\&. If you will discover that, please feed us with a patch\&.
Key binding statements are of the form: Key binding statements are of the form:
@ -42,7 +42,7 @@ where:
.TP .TP
<keymap> <keymap>
is \fImain\fR, \fIedit\fR, or \fImenu\fR\&. is \fImain\fR, \fIedit\fR, or \fImenu\fR\&. The main keymap is used for general browsing\&. The edit keymap is used for editing text fields\&. The menu keymap is used for navigating menus\&.
.TP .TP
<keystroke> <keystroke>
@ -89,10 +89,9 @@ Valid keys are: alphanumeric characters, punctuation, \fIEnter\fR, \fIBackspace\
Some keys will need to be quoted or escaped\&. For example, space can be written as " " (quote space quote), and the quote itself as \\" (backslash quote)\&. Backslash can be written as \\\\ (double backslash)\&. Some keys will need to be quoted or escaped\&. For example, space can be written as " " (quote space quote), and the quote itself as \\" (backslash quote)\&. Backslash can be written as \\\\ (double backslash)\&.
.SS "MAIN KEYMAP ACTIONS" .SH "KEYMAP ACTIONS"
.SS "MAIN ACTIONS"
The main keymap is used for general browsing\&.
.TP .TP
abort\-connection abort\-connection
@ -538,10 +537,7 @@ Toggle wrapping of text\&.
view\-image view\-image
View the current image\&. View the current image\&.
.SS "EDIT KEYMAP ACTIONS" .SS "EDIT ACTIONS"
The edit keymap is used for editing text fields\&.
.TP .TP
auto\-complete auto\-complete
@ -643,10 +639,7 @@ Toggle regex matching (type\-ahead searching)\&.
up up
Move cursor upwards\&. Move cursor upwards\&.
.SS "MENU KEYMAP ACTIONS" .SS "MENU ACTIONS"
The menu keymap is used for navigating menus\&.
.TP .TP
cancel cancel

View File

@ -1,212 +0,0 @@
#!/bin/sh
#
# Generate the elinks(1) manpage.
# Copyright (c) Jonas Fonseca <fonseca@diku.dk>, 2005
#
DOCTYPE=$(echo "$1" | sed 's/.*elinks.1.//' | sed 's/.txt.*//')
ELINKS=$2
HELP2DOC=$3
GPL="http://www.gnu.org/copyleft/gpl.html"
link()
{
target="$1"; shift
[ "$1" ] && name="$@"
case "$DOCTYPE" in
man)
echo "$name <$target>"
;;
html)
echo "link:$target[$name]"
;;
esac
}
email()
{
email="$1"
case "$DOCTYPE" in
man)
echo "<$email>"
;;
html)
echo "mailto:$email[<$email>]"
;;
esac
}
man()
{
target="$1"
section="$2"
case "$DOCTYPE" in
man)
echo "\`$target($section)\`"
;;
html)
echo "link:$target.$section.html[\`$target($section)\`]"
;;
esac
}
print_command_options()
{
$HELP2DOC --cmdoptions --elinks=$ELINKS
}
cat << __END__
elinks(1)
=========
NAME
----
elinks - lynx-like alternative character mode WWW browser
SYNOPSIS
--------
'elinks' [OPTION]... [URL]...
DESCRIPTION
-----------
'ELinks' is a text mode WWW browser, supporting colors, table rendering,
background downloading, menu driven configuration interface, tabbed browsing
and slim code.
Frames are supported. You can have different file formats associated with
external viewers. \`mailto:\` and \`telnet:\` are supported via external
clients.
ELinks can handle both local files and remote URLs. The main supported
remote URL protocols are 'HTTP', 'HTTPS' (with SSL support compiled in) and
'FTP'. Additional protocol support exists for 'finger', 'Gopher', 'SMB'
and 'NNTP'.
OPTIONS
-------
Most options can be set in the user interface or config file, so usually you
do not need to care about them. Note that this list is by no means complete
and it is not kept up-to-date. To get complete list of commandline options,
start 'ELinks' with parameter \`--help\`.
$(print_command_options)
ENVIRONMENT VARIABLES
---------------------
COMSPEC, SHELL::
The shell used for File -> OS Shell on DOS/Windows and UNIX,
respectively.
EDITOR::
The program to use for external editor (when editing textareas).
ELINKS_CONFDIR::
The location of the directory containing configuration files.
If not set the default is \`~/.elinks/\`.
ELINKS_TWTERM, LINKS_TWTERM::
The command to run when selecting File -> New window and if
\`TWDISPLAY\` is defined (default \`twterm -e\`)
ELINKS_XTERM, LINKS_XTERM::
The command to run when selecting File -> New window and if
\`DISPLAY\` is defined (default \`xterm -e\`)
FTP_PROXY, HTTP_PROXY, HTTPS_PROXY::
The host to proxy the various protocol traffic through.
NO_PROXY::
A comma separated list of URLs which should not be proxied.
HOME::
The path to the users home directory. Used when expanding \`~/\`.
WWW_HOME::
Homepage location (as in \`lynx(1)\`)
FILES
-----
@sysconfdir@/elinks.conf::
Site-wide configuration file.
~/.elinks/elinks.conf::
Per-user config file, loaded after site-wide configuration.
~/.elinks/bookmarks::
Bookmarks file.
~/.elinks/cookies::
Cookies file.
~/.elinks/formhist::
Form history file.
~/.elinks/gotohist::
GoTo URL dialog history file.
~/.elinks/globhist::
History file containing most recently visited URLs.
~/.elinks/searchhist::
Search history file.
~/.elinks/socket::
Internal 'ELinks' socket for communication between its instances.
PLATFORMS
---------
'ELinks' is known to work on 'Linux', 'FreeBSD', 'OpenBSD', 'Solaris',
'IRIX', 'HPUX', 'Digital Unix', 'AIX', 'OS/2', 'BeOS' and 'RISC OS'. Port
for 'Win32' is in state of beta testing.
BUGS
----
Please report any other bugs you find to the either the ELinks mailing list
at $(email elinks-users@linuxfromscratch.org) or if you prefer enter them
into $(link http://bugzilla.elinks.or.cz/ the bug tracking system). More
information about how to get in contact with developers and getting help can
be found on $(link http://elinks.or.cz/community.html the community page).
LICENSE
-------
'ELinks' is free software; you can redistribute it and/or modify it under
the terms of $(link $GPL the GNU General Public License) as published by the
Free Software Foundation; version 2 of the License.
AUTHORS
-------
The 'Links' browser - on which 'ELinks' is based - was written by Mikulas
Patocka $(email mikulas@artax.karlin.mff.cuni.cz). 'ELinks' was written by
Petr Baudis $(email pasky@ucw.cz). See file \`AUTHORS\` in the source tree
for a list of people contributing to this project.
The homepage of 'ELinks' can be found at $(link http://elinks.or.cz/).
This manual page was written by Peter Gervai $(email grin@tolna.net), using
excerpts from a (yet?) unknown 'Links' fan for the 'Debian GNU/Linux system'
(but may be used by others). Contributions from Francis A. Holop. Extended,
clarified and made more up-to-date by Petr Baudis $(email pasky@ucw.cz).
Updated by Zas $(email zas@norz.org). The conversion to Asciidoc and
trimming was done by Jonas Fonseca $(email fonseca@diku.dk).
SEE ALSO
--------
$(man elinkskeys 5), \`elinks.conf(5)\`, \`links(1)\`, \`lynx(1)\`,
\`w3m(1)\`, \`wget(1)\`
__END__
# vim: tabstop=4 shiftwidth=4 textwidth=76

View File

@ -1,64 +1,34 @@
#!/bin/sh #!/bin/sh
# #
# Generate the elinkskeys(5) manpage. # Generate the keymap-actions.txt and keymap-defaults.txt for elinkskeys(5)
# Copyright (c) Jonas Fonseca <fonseca@diku.dk>, 2005 # manpage.
#
# Copyright (c) Jonas Fonseca <fonseca@diku.dk>, 2005-2006
# #
# FIXME: # FIXME:
# #
# - You may prefix each of these keys with a number, telling its repeat # - You may prefix each of these keys with a number, telling its repeat count
# count (how many times to do it). You can also re-bind keys, see # (how many times to do it). You can also re-bind keys, see elinkskeys(5) for
# elinkskeys(5) for documentation and a more complete list of keys bound by # documentation and a more complete list of keys bound by default.
# default.
# #
# - The following keys can be used while editing a line/jumping to a URL # - The following keys can be used while editing a line/jumping to a URL
DOCTYPE=$(echo "$1" | sed 's/.*elinkskeys.5.//' | sed 's/.txt.*//') KBDBIND=$1
KBDBIND=$2 CONFIGDIR=$(dirname "$KBDBIND")
CONFIGDIR=$(dirname "$2")
link() test -d "$CONFIGDIR" || exit
{
target="$1"; shift
[ "$1" ] && name="$@"
case "$DOCTYPE" in
man)
echo "$name <$target>"
;;
html)
echo "link:$target[$name]"
;;
esac
}
man()
{
target="$1"
section="$2"
case "$DOCTYPE" in
man)
echo "\`$target($section)\`"
;;
html)
echo "link:$target.$section.html[\`$target($section)\`]"
;;
esac
}
print_keymap_actions() print_keymap_actions()
{ {
keymap=$1 keymap=$1
case "$DOCTYPE" in echo 'ifdef::backend-xhtml11[]'
html) echo '`----------------------------------`----------------------------------------------------------------------------'
# open-link-in-new-tab-in-background echo 'Action Description'
echo '`----------------------------------`----------------------------------------------------------------------------' echo '----------------------------------------------------------------------------------------------------------------'
echo 'Action Description' # open-link-in-new-tab-in-background
echo '----------------------------------------------------------------------------------------------------------------' echo 'endif::backend-xhtml11[]'
;;
esac
grep ACTION_ "$CONFIGDIR/actions-$keymap.inc" \ grep ACTION_ "$CONFIGDIR/actions-$keymap.inc" \
| while read entry; | while read entry;
@ -69,23 +39,17 @@ print_keymap_actions()
[ "$action" = "none" ] && continue [ "$action" = "none" ] && continue
[ "$action" = " *scripting-function*" ] && continue [ "$action" = " *scripting-function*" ] && continue
case "$DOCTYPE" in echo 'ifdef::backend-docbook[]'
man) echo "$action:: $caption."
echo echo 'endif::backend-docbook[]'
echo "$action::" echo 'ifdef::backend-xhtml11[]'
echo " $caption." printf "%-34s %s\n" "$action" "$caption"
;; echo 'endif::backend-xhtml11[]'
html)
printf "%-34s %s\n" "$action" "$caption"
;;
esac
done done
case "$DOCTYPE" in echo 'ifdef::backend-xhtml11[]'
html) echo '---------------------------------------------------------------------------------------------------------------'
echo '---------------------------------------------------------------------------------------------------------------' echo 'endif::backend-xhtml11[]'
;;
esac
} }
print_keymap_defaults() print_keymap_defaults()
@ -93,14 +57,12 @@ print_keymap_defaults()
keymap="$1" keymap="$1"
KEYMAP=$(echo $1 | tr '[a-z]' '[A-Z]') KEYMAP=$(echo $1 | tr '[a-z]' '[A-Z]')
case "$DOCTYPE" in echo 'ifdef::backend-xhtml11[]'
html) echo '`-----------`-------------------------------------------------------------------------------'
# Ctrl-Insert echo 'Key Description (Action)'
echo '`-----------`-------------------------------------------------------------------------------' echo '--------------------------------------------------------------------------------------------'
echo 'Key Description (Action)' # Ctrl-Insert
echo '--------------------------------------------------------------------------------------------' echo 'endif::backend-xhtml11[]'
;;
esac
grep ACT_$KEYMAP $KBDBIND | grep '^[[:space:]]{' | grep -v '{ "' \ grep ACT_$KEYMAP $KBDBIND | grep '^[[:space:]]{' | grep -v '{ "' \
| while read entry | while read entry
@ -143,121 +105,40 @@ print_keymap_defaults()
printf "%-11s %s\n" "$modifier$key" "$action" printf "%-11s %s\n" "$modifier$key" "$action"
;; ;;
esac esac
echo 'ifdef::backend-docbook[]'
echo "'$modifier$key':: $action"
echo 'endif::backend-docbook[]'
echo 'ifdef::backend-xhtml11[]'
printf "%-11s %s\n" "$modifier$key" "$action"
echo 'endif::backend-xhtml11[]'
done done
case "$DOCTYPE" in echo 'ifdef::backend-xhtml11[]'
html)
echo '--------------------------------------------------------------------------------------------' echo '--------------------------------------------------------------------------------------------'
;; echo 'endif::backend-xhtml11[]'
esac
} }
cat << __END__ cat > keymap-actions.txt << __END__
elinkskeys(5) MAIN ACTIONS
============= ~~~~~~~~~~~~
NAME
----
elinkskeys - keybindings for ELinks
SYNOPSIS
--------
Information on how to configure keybinding and overview of the default
keybindings.
DESCRIPTION
-----------
Key binding for elinks should be placed in a file called
~/.elinks/elinks.conf. Note that any information regarding their
format/structure may not be up-to-date. If you will discover that, please
feed us with a patch.
Key binding statements are of the form:
bind <keymap> <keystroke> = <action>
where:
<keymap>::
is 'main', 'edit', or 'menu'.
<keystroke>::
is a case sensitive key, which you can prefix with 'Ctrl-' or 'Alt-'.
'Ctrl-' must be followed by an uppercase key. See below for a list of
valid keys.
<action>::
is what the key should do. The actions available are dependent on the
keymap, and are listed separately below.
All words/strings may all be quoted "like so". Backslashes are escape
characters, even if not between quotes. Lines beginning with a hash
character (\`#\`) are comments.
Keys can be unbound just by binding them to the special 'none' action. It
may be of use if you accidentally type a key often.
EXAMPLE BINDINGS
----------------
Some sample keybindings:
bind "main" "v" = "view-image"
bind "main" "l" = "jump-to-link"
bind "main" "L" = "link-menu"
bind "main" "F10" = "file-menu"
bind "main" "F9" = "menu"
bind "main" "Escape" = "menu"
bind "edit" "Ctrl-R" = "auto-complete-unambiguous"
bind "edit" "Ctrl-W" = "auto-complete"
bind "edit" "Ctrl-K" = "kill-to-eol"
bind "menu" "Ctrl-B" = "page-up"
bind "menu" "PageUp" = "page-up"
bind "menu" "Ctrl-F" = "page-down"
bind "menu" "PageDown" = "page-down"
# ELinks with Lua support
bind "main" "," = "lua-console"
KEYS
----
Valid keys are: alphanumeric characters, punctuation, 'Enter', 'Backspace',
'Tab', 'Escape', 'Left', 'Right', 'Up', 'Down', 'Insert', 'Delete', 'Home',
'End', 'PageUp', 'PageDown', 'F1' to 'F12'.
Some keys will need to be quoted or escaped. For example, space can be
written as \`" "\` (quote space quote), and the quote itself as \\"
(backslash quote). Backslash can be written as \\\\ (double backslash).
MAIN KEYMAP ACTIONS
~~~~~~~~~~~~~~~~~~~
The main keymap is used for general browsing.
$(print_keymap_actions main) $(print_keymap_actions main)
EDIT KEYMAP ACTIONS EDIT ACTIONS
~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~
The edit keymap is used for editing text fields.
$(print_keymap_actions edit) $(print_keymap_actions edit)
MENU KEYMAP ACTIONS MENU ACTIONS
~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~
The menu keymap is used for navigating menus.
$(print_keymap_actions menu) $(print_keymap_actions menu)
__END__
DEFAULT BINDINGS cat > keymap-defaults.txt << __END__
----------------
The default bindings are shown below. Any bindings in
\`~/.elinks/elinks.conf\` will override these.
MAIN KEYS MAIN KEYS
~~~~~~~~~ ~~~~~~~~~
@ -272,18 +153,4 @@ MENU KEYS
~~~~~~~~~ ~~~~~~~~~
$(print_keymap_defaults menu) $(print_keymap_defaults menu)
AUTHOR
------
This manual page was finally written by Peter Wang (one and a half years
after writing the binding code), using excerpts by David Mediavilla. You can
thank Petr Baudis for the subtle requests for documentation. Updated by Zas.
Moved to asciidoc format and cleaned up by Jonas Fonseca.
SEE ALSO
--------
$(man elinks 1), \`elinks.conf(5)\`
__END__ __END__