LEXGROG(1) Kılavuz sayfası yardımcıları LEXGROG(1)
lexgrog - man sayfalarında başlık bilgisini ayıkla
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 filtrelerinin listesi nroff veya troff ya da her ikisine geçmeden önce.
Eğer girişi 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 giriş dosyası sıkıştırılırsa, sıkıştırılmış bir sürüm otomatik olarak okunacaktır.
Girdiyi kılavuz sayfası kaynak dosyaları olarak ayrıştır. Ne --man ne de --cat verilmezse bu öntanımlıdır.
Girişi önceden biçimlendirilmiş kılavuz sayfaları (“cat sayfaları”) olarak ayrıştır. --man ve --cat aynı anda verilemez.
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.
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.
Sayfa için tahmin edilen karakter kümesini encoding olarak değiştirin.
lexgrog, bir veya daha fazla girdi dosyasını ayrıştıramadı.
mandb (lexgrog ile aynı kodu kullanır) her bir kılavuz sayfanın üstündeki NAME 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 NAME bölümü şu şekilde görünür:
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ç isim olabilir. Boş alan içeren isimler, bazı kötü biçimli NAME bölümlerinde patolojik davranışlardan kaçınmak için göz ardı edilir. Sağdaki metin serbest formdadır ve birden fazla satıra yayılabilir. Aynı kılavuz sayfasında farklı açıklamalara sahip çeşitli özellikler belgeleniyorsa, aşağıdaki form kullanılır:
foo, bar \- bişeyler yapacak programlar
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 NAME bölümü şu şekilde görünür:
.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 NAME bölümü ekliyor ancak ‘isim \- açıklama’ yerine, serbest formlu metin yerleştiriyorlar. Bununla birlikte, yukarıdaki gibi herhangi bir sözdizimi kabul edilmelidir.
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:
Colin Watson, bu kılavuz sayfasının yanı sıra komut satırı ön ucunun mevcut canlı örneğini yazdı.