LEXGROG(1) Utilitare ale paginatorului de manual LEXGROG(1)

lexgrog - analizează informațiile antetului din paginile de manual

lexgrog [-m|-c] [-dfw?V] [-E codificarea] fișier ...

lexgrog este o implementare a utilitarului tradițional “groff în lex. Acesta citește lista de fișiere din linia de comandă fie ca fișiere sursă a paginilor de manual, fie ca pagini preformatate \(lqcat\(rq, și afișează numele și descrierea acestora așa cum sunt utilizate de apropos și whatis, afișează lista filtrelor de preprocesare necesare paginii de manual înainte de a fi transmisă la nroff sau troff sau ambele.

Dacă intrarea aceasta este formatată greșit, lexgrog va imprima “parse failed”; acest lucru poate fi util pentru programele externe care trebuie să verifice paginile de manual pentru corectitudine. Dacă unul dintre fișierele de intrare ale lui lexgrog este “-”, se va citi de la intrarea standard; dacă orice fișier de intrare este comprimat, o versiune descomprimată va fi citită automat.

Imprimă informațiile de depanare.
Analizează intrarea ca fișiere sursă de pagini de manual. Acesta este comportamentul implicit dacă nu este dat nici --man, nici --cat.
Analizează intrarea ca pagini de manual preformatate (“cat pages”). --man și --cat nu pot fi date simultan.
Afișează numele și descrierea din antetul paginii de manual, așa cum sunt utilizate de apropos și whatis. Aceasta este comportamentul implicit dacă nu este specificat nici --whatis, nici --filters.
Afișează lista de filtre necesare pentru a preprocesa pagina de manual, înainte de a fi formatată cu nroff sau troff.
Suprascrie setul de caractere ghicit pentru pagină, cu codificarea.
-?, --help
Imprimă un mesaj de ajutor și iese.
Imprimă un mesaj scurt de utilizare și iese.
Afișează informații despre versiune.

0
Executarea programului s-a încheiat fără erori.
1
Eroare de utilizare.
2
lexgrog nu a reușit să analizeze unul sau mai multe dintre fișierele de intrare.


$ lexgrog man.1
man.1: "man - o interfață la manualele de referință ale sistemului"
$ lexgrog -fw man.1
man.1 (t): "man - o interfață la manualele de referință ale sistemului"
$ lexgrog -c whatis.cat1
whatis.cat1: "whatis - afișează descrieri ale paginilor de manual"
$ lexgrog defect.1
broken.1: analizarea a eșuat

mandb (care utilizează același cod ca lexgrog) analizează secțiunea NUME din partea de sus a fiecărei pagini de manual, căutând nume și descrieri ale caracteristicilor documentate în fiecare dintre ele. Cu toate că analizatorul este destul de tolerant, deoarece trebuie să facă față unui număr de forme diferite care au fost folosite în trecut, acesta poate câteodată să eșueze în extragerea informațiilor necesare.

Când se utilizează setul de macrocomenzi tradițional man, o secțiune corectă NUME arată cam așa:

.SH NUME
foo \- program ce face ceva

Unele paginatoare de manual necesită ca ‘\-’ să fie exact așa cum este arătat(aici); mandb este mai tolerant, dar pentru compatibilitate cu alte sisteme este totuși o idee bună să păstrați bara oblică inversă.

În partea din stânga, pot să fie mai multe nume, separate prin virgulă. Numele care conțin spații, vor fi ignorate pentru a se evita un comportament neobișnuit în anumite secțiuni NUME formatate greșit. Textul din partea dreaptă este în formă liberă, și se poate fi întinde pe mai multe rânduri. Dacă mai multe funcționalități cu descrieri diferite sunt documentate în aceeași pagină de manual, va fi utilizat următorul format:

.SH NUME
foo, bar \- programe ce fac ceva
.br
baz \- program ce nu face nimic

(O macrocomandă care începe un nou paragraf, cum ar fi .PP, poate fi utilizată în locul macrocomenzii de întrerupere de linie .br.)

Când se utilizează setul de macrocomenzi mdoc derivat din BSD, o secțiune NUME corectă, arată cam așa:

.Sh NUME
.Nm foo
.Nd program ce face ceva

Există mai multe motive comune pentru care analizarea «whatis »eșuează. Uneori autorii paginilor de manual înlocuiesc ‘.SH NUME’ cu ‘.SH PROGRAMULMEU’ și apoi mandb nu poate găsi secțiunea de la care să extragă informațiile de care are nevoie. Uneori autorii includ o secțiune NUME, dar plasează text în formă liberă acolo, în locul ‘nume \- descriere’. Totuși, orice sintaxă care se aseamănă cu cea de deasupra ar trebui să fie acceptată.

apropos(1), man(1), whatis(1), mandb(8)

lexgrog încearcă să analizeze fișierele care conțin solicitări .so, dar va putea face acest lucru corect numai dacă fișierele sunt instalate așa cum trebuie într-o ierarhie de pagini de manual.

Codul utilizat de lexgrog pentru a scana paginile de manual a fost scris de:

Wilf. (G.Wilford@ee.surrey.ac.uk).
Fabrizio Polacco (fpolacco@debian.org).
Colin Watson (cjwatson@debian.org).

Colin Watson a scris versiunea curentă a interfeței liniei de comandă, precum și această pagină de manual.

https://gitlab.com/cjwatson/man-db/-/issues
https://savannah.nongnu.org/bugs/?group=man-db

2022-03-17 2.10.2