Wie kann ich Unicode-Zeichen in Perl POD-abgeleiteten Manpages verwenden?

8

Und wenn das nicht möglich ist, was ist die beste Vorgehensweise für den Umgang mit man-Seiten, die von UTF-8-kodierten POD abgeleitet sind?

Um mit Unicode in POD zu arbeiten, müssen Sie zuerst die Direktive

verwenden %Vor%

(wie besprochen hier ) . Die Werkzeuge pod2text und pod2html funktionieren einwandfrei und erzeugen eine perfekte UTF-8-kodierte Ausgabe.

Das Werkzeug pod2man tut dies jedoch nicht:

%Vor%

Dies gilt auch für perldoc . Nicht-ASCII-Zeichen sind alle fehlerhaft oder X-out. Es gibt eine nicht ergebnisoffene Diskussion zu Perlbug, ob dies ein Bug sein könnte pod2man oder ** roff *.

Da mein Modul speziell mit Unicode arbeitet und für die Verteilung auf CPAN gedacht ist, sind Unicode-fähige man-Seiten ein Muss.

Ich verwende Perl 5.14.2, perldoc 3.15 und * roff 1.21.

    
glts 25.10.2012, 09:25
quelle

2 Antworten

2

Alle von perldoc , pod2man , nroff können korrekt mit Unicode UTF-8-Zeichen umgehen. Leider können die Perl-Installer wie Build.PL und das cpan Programm noch nicht. Wenn Sie also während der Installation nicht mit der Hand hantieren, sind die installierten Manpages defekt.

Alle funktionieren korrekt für mein minimales Beispiel :

%Vor%

nroff funktioniert nur, wenn Sie auch die Eingabe Codierung ( -K ) bis groff übergeben ( Quelle ); Sie müssen es mit dem Optionenende - schützen.

Das ist nett. Die meisten Benutzer werden jedoch die Dokumentation installieren und später mit man MyModule oder perldoc MyModule konsultieren. Im Falle von perldoc haben Sie die Möglichkeit, entweder eine sehr aktuelle Version (3.16) oder den Schalter -t zu verwenden.

Im Fall von man , wenn Sie Build.PL (Module :: Build) verwenden, um ein Modul zu installieren, können Sie die defekten generierten Dokumente kurz vor der Installation reparieren:

%Vor%

Schön! Jetzt können Sie die Manpage mit man MyModule anzeigen.

Wenn Sie cpan verwenden, um das Modul zu installieren, werden Ihre Manpages unterbrochen. (Sie können die gleiche Problemumgehung in Ihrem lokalen CPAN-Build-Verzeichnis versuchen, zB ~/.cpan/build , was ebenfalls funktionieren sollte.)

    
glts 27.10.2012, 12:09
quelle
3

Sie haben Glück! Dieser Fehler scheint fixiert in Pod :: Perldoc 3.16 . Also einfach update Pod :: Perldoc und das halbe Problem ist gelöst.

pod2man kommt jedoch von einer unterschiedlichen Verteilung und ist eine völlig andere Codebasis. Es ist immer noch für UTF-8 gebrochen. Leider verwenden die Perl-Installer Man-Pages.

    
Schwern 27.10.2012 06:03
quelle