table of contents
LEXGROG(1) | Dienstprogramme für Handbuchseiten | LEXGROG(1) |
BEZEICHNUNG¶
lexgrog - wertet die Kopfzeilen-Information von Handbuchseiten aus
ÜBERSICHT¶
lexgrog [-m|-c] [-dfw?V] [-E Kodierung] Datei ...
BESCHREIBUNG¶
lexgrog ist eine Lex-Implementierung des traditionellen Dienstprogramms »groff guess« für die Auswertung von Handbuch-Quelldateien oder vorformatierten »Cat«-Seiten. Es liest die Liste der Dateien in seiner Befehlszeile. Seine Ausgabe sind entweder die Namen und Beschreibungen in der Form, die apropos und whatis verwenden oder die Liste der für die Seite erforderlichen Vorverarbeitungs-Filter für die Erzeugung von Nroff/Troff oder aber beides.
Wenn seine Eingabe schlecht formatiert ist, wird lexgrog »parse failed« ausgeben. Das können externe Programme nutzen, die Handbuchseiten auf Fehlerfreiheit prüfen. Wenn einer der Eingabedateien von lexgrog »-« ist, wird das Programm von der Standardeingabe lesen. Ist eine Eingabedatei komprimiert, wird sie automatisch dekomprimiert.
OPTIONEN¶
- -d, --debug
- Ausgabe von Debug-Informationen
- -m, --man
- Interpretiert die Eingabe als Handbuchseiten-Quelltext. Sind weder --man noch --cat gewählt, greift diese Voreinstellung.
- -c, --cat
- Interpretiert die Eingabe als vorformatierte Handbuchseiten (»Cat-Seiten«). Die Optionen --man und --cat schließen sich gegenseitig aus.
- -w, --whatis
- Zeigt den Namen und die Beschreibung aus dem Kopf der Handbuchseite so an, wie sie von apropos und whatis verwendet werden. Das ist die Voreinstellung, wenn weder --whatis noch --filters gewählt wurde.
- -f, --filters
- Zeigt die Liste der erforderlichen Filter für die Aufbereitung der Handbuchseite vor der Formatierung mit Nroff oder Troff.
- -E Kodierung, --encoding Kodierung
- Statt des vermuteten Zeichensatzes der Seite die Kodierung verwenden.
- -?, --help
- Hilfetext anzeigen und beenden
- --usage
- zeigt eine kurze Anwendungszusammenfassung an und beendet das Programm.
- -V, --version
- Versionsinformation anzeigen und beenden
EXIT-STATUS¶
- 0
- erfolgreiche Programmausführung
- 1
- Fehler beim Aufruf
- 2
- Lexgrog konnte eine oder mehrere seiner Eingabedateien nicht auswerten.
BEISPIELE¶
$ lexgrog man.1
man.1: "man - an interface to the system reference manuals"
$ lexgrog -fw man.1
man.1 (t): "man - an interface to the system reference manuals"
$ lexgrog -c whatis.cat1
whatis.cat1: "whatis - display manual page descriptions"
$ lexgrog broken.1
broken.1: parse failed
WAS BEDEUTET PARSEN¶
Die Programme mandb und lexgrog verwenden den gleichen Code. mandb durchsucht den Abschnitt BEZEICHNUNG am Anfang jeder Handbuchseite nach den Namen und den jeweils beschriebenen Funktionen. Obwohl der Parser (das Auswerteprogramm) ziemlich tolerant ist, weil er sich mit etlichen verschiedenen, früher genutzten Formaten befassen muss, kann er ab und zu die gewünschte Information nicht entnehmen.
Wenn Sie die den traditionellen Makrosatz »man« verwenden, wird ein gültiger BEZEICHNUNGs-Abschnitt ungefähr so aussehen:
.SH BEZEICHNUNG foo \- Programm, das etwas erledigt
Einige Handbuchanzeigeprogramme erfordern das ‘\-q genau in dieser Reihenfolge. mandb ist toleranter, aber für die Kompatibilität mit anderen Systemen ist es dennoch eine gute Idee, den Backslash (umgekehrten Schrägstrich) beizubehalten.
Auf der linken Seite können verschiedene, durchs Kommas getrennte Namen stehen. Namen mit Leerzeichen werden ignoriert, um bestimmte »krankhafte« Verhaltensweisen bei schlecht formatierten BEZEICHNUNGs-Abschnitten zu vermeiden. Der Text auf der rechten Seite unterliegt keinen Formvorschriften und kann sich über mehrere Zeilen erstrecken. Wenn in der Handbuchseite mehrere Merkmale mit unterschiedlichen Beschreibungen dokumentiert werden, wird das folgende Format verwendet:
.SH BEZEICHNUNG foo, bar \- Programme, die etwas erledigen .br baz \- Programm, das nichts tut
(Anstelle des Zeilenvorschub-Makros .br kann auch ein Makro verwendet werden, das einen neuen Absatz beginnt, z.B. .PP.)
Wird der von BSD abgeleitete mdoc-Makrosatz verwendet, hat ein gültiger BEZEICHNUNGs-Abschnitt ungefähr das folgende Aussehen:
.Sh BEZEICHNUNG .Nm foo .Nd Programm, das etwas erledigt
Es gibt mehrere häufige Gründe dafür, dass die von Whatis durchgeführte Auswertung fehlschlägt. Manchmal ersetzen Autoren von Handbuchseiten ‘.SH BEZEICHNUNG’ durch ‘.SH MEINPROGRAMM’. Dann kann mandb den Abschnitt nicht finden, aus dem es die benötigten Informationen entnehmen soll. Manchmal verfassen Autoren einen Abschnitt BEZEICHNUNG, aber platzieren dort anstelle von ‘Name \- Beschreibung’. frei formatierten Text. Es sollten aber beliebige, dem oben Beschriebenen ähnliche Schreibweisen akzeptiert werden.
SIEHE AUCH¶
ANMERKUNGEN¶
Lexgrog versucht, Dateien mit ».so«-Anfragen auszuwerten, hat aber nur dann Aussicht auf Erfolg, wenn die Seiten ordnungsgemäß in einer Handbuchseiten-Hierarchie installiert sind.
AUTOR¶
Der von Lexgrog verwendete Code für die Auswertung von Handbuchseiten wurde geschrieben von:
Wilf. (G.Wilford@ee.surrey.ac.uk). Fabrizio Polacco (fpolacco@debian.org). Colin Watson (cjwatson@debian.org).
Colin Watson hat sowohl das aktuelle Befehlszeilen-Frontend als auch die Handbuchseite geschrieben.
FEHLER¶
https://gitlab.com/man-db/man-db/-/issues
https://savannah.nongnu.org/bugs/?group=man-db
2024-08-29 | 2.13.0 |