lexgrog - man sayfalarında başlık bilgisini
ayrıştır
lexgrog [
-m|
-c] [
-dfw?V] [
-E kodlama]
dosya ...
lexgrog,
lex'de geleneksel “groff guess”
yardımcı programının bir
uygulamasıdır. Komut satırında kılavuz
sayfası kaynak dosyaları ya da önceden
biçimlendirilmiş “cat” sayfaları olarak
dosyaların listesini okur ve adını ve
açıklamasını
apropos ve
whatis
tarafından kullanılan biçimde
görüntüler, kılavuz sayfası
tarafından gerekli önişleme süzgeçlerinin
listesi
nroff veya
troff ya da her ikisine geçmeden
önce.
Eğer girdi kötü biçimlendirilmişse
lexgrog “ayrıştırma
başarısız” yazdıracaktır; bu,
kılavuz sayfalarının doğru olup
olmadığını kontrol etmeniz gereken harici
programlar için yararlı olabilir.
lexgrog'un girdi
dosyalardan biri “-” ise standart girdiden okunur; herhangi bir
girdi dosyası sıkıştırılırsa
sıkıştırılmış bir
sürüm otomatik olarak okunacaktır.
-
-d, --debug
- Hata ayıklama bilgisini göster.
-
-m, --man
- Girdiyi kılavuz sayfası kaynak
dosyaları olarak ayrıştır. Ne --man ne
de --cat verilmezse bu
öntanımlıdır.
-
-c, --cat
- Girdiyi önceden biçimlendirilmiş
kılavuz sayfaları (“cat sayfaları”)
olarak ayrıştır. --man ve --cat
aynı anda verilemez.
-
-w, --whatis
-
apropos ve whatis tarafından
kullanılan kılavuz sayfasındaki
başlıktan gelen adı ve
açıklamayı görüntüle. Ne
--whatis ne de --filters verilmezse bu
öntanımlıdır.
-
-f, --filters
-
nroff veya troff ile biçimlendirmeden
önce kılavuz sayfasını ön işleme
koymak için gerekli süzgeçlerin listesini
görüntüleyin.
-
-E kodlama, --encoding
kodlama
- Sayfa için tahmin edilen karakter kümesini
kodlama olarak değiştirin.
-
-?, --help
- Bir yardım iletisi göster ve
çık.
- --usage
- Kısa kullanım iletisini göster ve
çık.
-
-V, --version
- Sürüm bilgisini göster.
- 0
- Başarılı program
çalıştırma.
- 1
- Kullanım hatası.
- 2
-
lexgrog, bir veya daha fazla girdi
dosyasını ayrıştıramadı.
$ lexgrog man.1
man.1: "man - sistem başvuru kılavuzları için bir arayüz"
$ lexgrog -fw man.1
man.1 (t): "man - sistem başvuru kılavuzları için bir arayüz"
$ lexgrog -c whatis.cat1
whatis.cat1: "whatis - kılavuz sayfa açıklamalarını görüntüle"
$ lexgrog broken.1
broken.1: ayrıştırma başarısız
mandb (
lexgrog ile aynı kodu kullanır) her bir
kılavuz sayfanın üstündeki
AD
bölümünü, belgelenen özelliklerin
adlarını ve açıklamalarını
ayrıştırır.
Ayrıştırıcı oldukça
toleranslı olsa da, tarihsel olarak kullanılan
çeşitli formlarla baş etmek zorundaysa bazen gerekli
bilgileri elde etmek başarısız olabilir.
Geleneksel
man makro setini kullanırken, doğru bir
AD bölümü şu şekilde
görünür:
.SH NAME foo \- bişeyler yapacak program
Bazı kılavuz sayfalayıcıları,
‘\-’'nin tam olarak gösterildiği gibi
olmasını gerektirir;
mandb daha
hoşgörülüdür; ancak diğer
sistemlerle uyumluluk için ters eğik çizgiyi korumak iyi
bir fikirdir.
Sol tarafta virgülle ayrılmış birkaç ad
olabilir. Boş alan içeren adlar, bazı kötü
biçimli
AD bölümlerinde patolojik
davranışlardan kaçınmak için göz
ardı edilir. Sağdaki metin serbest biçimdedir ve birden
fazla satıra yayılabilir. Aynı kılavuz
sayfasında farklı açıklamalara sahip
çeşitli özellikler belgeleniyorsa
aşağıdaki biçim kullanılır:
.SH NAME foo, bar \- bişeyler yapacak programlar .br baz \- hiçbir şey yapmayacak program
(.PP gibi yeni bir paragraf başlatan bir makro, .br kesme makrosu yerine
kullanılabilir.)
BSD türevi
mdoc makro setini kullanırken, doğru bir
AD bölümü şu şekilde
görünür:
.Sh AD .Nm foo .Nd bişeyler yapan program
Ayrıştırmanın başarısız
olmasının birkaç ortak nedeni vardır. Bazen
kılavuz sayfalarının yazarları, ‘.SH
NAME’'yi ‘.SH MYPROGRAM’ ile değiştirir ve
mandb, ihtiyaç duyduğu bilgiyi
çıkaracağı bölümü bulamaz.
Bazen yazarlar bir AD bölümü ekler; ancak ‘ad \-
açıklama’ yerine, serbest biçimli metin
yerleştirirler. Bununla birlikte, yukarıdaki gibi herhangi bir
sözdizim kabul edilmelidir.
apropos(1),
man(1),
whatis(1),
mandb(8)
lexgrog, .so isteklerini içeren dosyaları
ayrıştırmaya çalışır; ancak
yalnızca dosyalar el ile bir sayfa hiyerarşisinde
düzgün bir şekilde yüklenirse bu işlemi
doğru yapabilir.
lexgrog tarafından klavuz sayfalarını taramak
için kullanılan kod şu tarafından
yazılmıştır:
Wilf. ([email protected]).
Fabrizio Polacco ([email protected]).
Colin Watson ([email protected]).
Colin Watson, bu kılavuz sayfasının yanı sıra
komut satırı ön ucunun mevcut canlı
örneğini yazdı.
https://gitlab.com/man-db/man-db/-/issues
https://savannah.nongnu.org/bugs/?group=man-db