1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-12-04 14:46:47 -05:00
elinks/doc/tools/make-elinkskeys-manpage
Jonas Fonseca ba6221c6f6 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.
2006-01-11 11:02:43 +01:00

157 lines
3.9 KiB
Bash
Executable File

#!/bin/sh
#
# Generate the keymap-actions.txt and keymap-defaults.txt for elinkskeys(5)
# manpage.
#
# Copyright (c) Jonas Fonseca <fonseca@diku.dk>, 2005-2006
#
# FIXME:
#
# - You may prefix each of these keys with a number, telling its repeat count
# (how many times to do it). You can also re-bind keys, see elinkskeys(5) for
# documentation and a more complete list of keys bound by default.
#
# - The following keys can be used while editing a line/jumping to a URL
KBDBIND=$1
CONFIGDIR=$(dirname "$KBDBIND")
test -d "$CONFIGDIR" || exit
print_keymap_actions()
{
keymap=$1
echo 'ifdef::backend-xhtml11[]'
echo '`----------------------------------`----------------------------------------------------------------------------'
echo 'Action Description'
echo '----------------------------------------------------------------------------------------------------------------'
# open-link-in-new-tab-in-background
echo 'endif::backend-xhtml11[]'
grep ACTION_ "$CONFIGDIR/actions-$keymap.inc" \
| while read entry;
do
action=$(echo "$entry" | sed 's/ACTION_([^,]*, "\([^"]*\)".*/\1/')
caption=$(echo "$entry" | sed 's/.*N__("\(.*\)").*/\1/')
[ "$action" = "none" ] && continue
[ "$action" = " *scripting-function*" ] && continue
echo 'ifdef::backend-docbook[]'
echo "$action:: $caption."
echo 'endif::backend-docbook[]'
echo 'ifdef::backend-xhtml11[]'
printf "%-34s %s\n" "$action" "$caption"
echo 'endif::backend-xhtml11[]'
done
echo 'ifdef::backend-xhtml11[]'
echo '---------------------------------------------------------------------------------------------------------------'
echo 'endif::backend-xhtml11[]'
}
print_keymap_defaults()
{
keymap="$1"
KEYMAP=$(echo $1 | tr '[a-z]' '[A-Z]')
echo 'ifdef::backend-xhtml11[]'
echo '`-----------`-------------------------------------------------------------------------------'
echo 'Key Description (Action)'
echo '--------------------------------------------------------------------------------------------'
# Ctrl-Insert
echo 'endif::backend-xhtml11[]'
grep ACT_$KEYMAP $KBDBIND | grep '^[[:space:]]{' | grep -v '{ "' \
| while read entry
do
entry=$(echo "$entry" | sed 's/.*{ { //' | sed 's/ }//')
key=$(echo "$entry" | sed "s/\(KBD_[^,]*\|'.*'\),.*/\1/")
modifier=$(echo "$entry" | sed "s/.*KBD_MOD_\([A-Z_]*\).*/\1/")
action=$(echo "$entry" | sed "s/.*,.*\(ACT_$KEYMAP\)_\([A-Z_]*\).*/\2/")
action=$(grep " $action," "$CONFIGDIR/actions-$keymap.inc" \
| sed "s/.*\"\([^\"]*\)\".*N__(\"\(.*\)\").*/\2 ('\1')/")
case "$key" in
KBD_*)
key=$(grep $key $KBDBIND \
| grep '^[[:space:]]{ "' \
| sed 's/.*"\([^"]*\)".*/\1/')
;;
"' '")
key="Space"
;;
*)
key=$(echo "$key" | sed "s/^'\(.*\)'/\1/" \
| sed "s/'/\\\\'/")
;;
esac
case "$modifier" in
ALT) modifier="Alt-" ;;
CTRL) modifier="Ctrl-" ;;
*) modifier="" ;;
esac
case "$DOCTYPE" in
man)
echo
echo "'$modifier$key'::"
echo " $action"
;;
html)
printf "%-11s %s\n" "$modifier$key" "$action"
;;
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
echo 'ifdef::backend-xhtml11[]'
echo '--------------------------------------------------------------------------------------------'
echo 'endif::backend-xhtml11[]'
}
cat > keymap-actions.txt << __END__
MAIN ACTIONS
~~~~~~~~~~~~
$(print_keymap_actions main)
EDIT ACTIONS
~~~~~~~~~~~~
$(print_keymap_actions edit)
MENU ACTIONS
~~~~~~~~~~~~
$(print_keymap_actions menu)
__END__
cat > keymap-defaults.txt << __END__
MAIN KEYS
~~~~~~~~~
$(print_keymap_defaults main)
EDIT KEYS
~~~~~~~~~
$(print_keymap_defaults edit)
MENU KEYS
~~~~~~~~~
$(print_keymap_defaults menu)
__END__