Verlinken auf Manpage-Abschnitte?

Verlinken auf Manpage-Abschnitte?

Online-Manpages in HTML mit Abschnittsanker?

Es wäre gut, eine Online-Version der Ubuntu-Manpages mit direkten Links zu den Unterabschnitten zu haben. So könnte man in vielen Fällen auf die entsprechende Dokumentation verweisen - beispielsweise in Antworten auf verschiedenen StackExchange-Sites.

Ich werde beschreiben, wie eine vollständige Lösung aussehen könnte und inwiefern sie nützlich wäre. Ich glaube nicht, dass es irgendwo eine vollständige Lösung gibt, daher lautet die Frage

Welche Teillösungen gibt es heute?

Eine Teillösung wäre zum Beispiel eine systematische Suche in den Manpages anstelle einer Verknüpfung.


Die Manpages untermanpages.ubuntu.comlösen den Großteil des Problems, verfügen jedoch nicht über Anker in den Überschriften oder Abschnitten.

Das heißt, wenn ich auf den Abschnitt "Parametererweiterung" in man bashonline muss ich

Siehe „Parametererweiterung“ inman bash
[...und suchen Sie in Ihrem Browser nach „Parametererweiterung“]

Dadurch wird oben die Bash-Manpage als eine lange Webseite geöffnet.

In der Schale kann ich sagen

Sehenman bash | less "+/Parameter Expansion"

das beim Start an die richtige Stelle springt.


Es wäre wirklich hilfreich, Linkanker zu haben, die nach den Überschriften benannt sind, auf die sie verweisen. Anker, die nach einer Art Indexnummer benannt sind, wären zwar auch hilfreich, erfordern aber eine manuelle Suche auf der eigentlichen Webseite, um sie verwenden zu können.

Da es auf HTML-Ebene nicht schwierig ist, Überschriften mit Ankern zu versehen, bin ich sicher, dass es solche Manpages gibt.
Aber gibt es eine Sammlung derUbuntu-Manpages mit Ankernirgendwo online, oder zumindest eine gute Teilmenge?

Beispielcode

Die Überschrift des Abschnitts "Parametererweiterung" von
http://manpages.ubuntu.com/bash
welche Art von Weiterleitung zu
http://manpages.ubuntu.com/manpages/trusty/en/man1/bash.1.html

       [ ... ]
       tildes in assignments to <b>PATH</b>, <b>MAILPATH</b>,  and  <b>CDPATH</b>,  and  the  shell
       assigns the expanded value.

   <b>Parameter</b> <b>Expansion</b>
       The `<b>$</b>' character introduces parameter expansion, command substitution,
       or arithmetic expansion.  The parameter name or symbol to  be  expanded
       [ ... ]

Um direkt auf diesen Abschnitt verlinken zu können, benötigen wir etwas wie:

       [ ... ]
       tildes in assignments to <b>PATH</b>, <b>MAILPATH</b>,  and  <b>CDPATH</b>,  and  the  shell
       assigns the expanded value.

   <a href="#ParameterExpansion"><b>Parameter</b> <b>Expansion</b></a>
       The `<b>$</b>' character introduces parameter expansion, command substitution,
       or arithmetic expansion.  The parameter name or symbol to  be  expanded
       [ ... ]


Dadurch wird dem HTML-Code ein Tag und ein Attribut hinzugefügt, der Abschnittsname ohne Leerzeichen:

<b>Parameter</b> <b>Expansion</b>
<a href="#ParameterExpansion"><b>Parameter</b> <b>Expansion</b></a>

Jetzt können wir auf den Abschnitt verlinken wie

http://manpages.ubuntu.com/bash#ParameterExpansion
oder auch
manpages.ubuntu.com/bash#ParameterExpansion

welches eine Fußnote verwendet und wie folgt geschrieben wird:
[manpages.ubuntu.com/bash#ParameterExpansion][6]


Verwendung anderer Referenzdokumente

In vielen Fällen gibt es neben der Manpage auch alternative Referenzdokumente. Diese haben oft eine gute Linkstruktur, die verwendet wird, um von einem Inhaltsverzeichnis zu den Abschnitten zu verlinken, genau das, was wir brauchen.
Aber daslöst das allgemeine Problem nicht, da es keine allgemeine Möglichkeit gibt, herauszufinden, ob/wo ein solches Dokument existiert, und die Linkstruktur zu nutzen.

Für das oben verwendete Bash-Beispiel ist dieBash-ReferenzhandbuchAls individuelle, manuell nachgeschlagene Lösung könnte verwendet werden:

Bash-Referenzhandbuch, Abschnitt Shell-Parameter-Erweiterung
geschrieben als
[Bash-Referenzhandbuch, Abschnitt Shell-Parameter-Expansion](http://www.gnu.org/software/bash/manual/bash.html#Shell-Parameter-Expansion)

Vorgeschlagene Umsetzung

Um die tatsächliche Umsetzung dieser Idee vorzuschlagen,manpages.ubuntu.com,
ich habe einen eng verwandten Fehler-/Verbesserungswunsch für das zugehörige Projekt „ubuntu-manpage-repository“ eingereicht: launchpad #1355271: Verwenden Sie HTML-Tags, um externe Links zu Unterabschnitten von Manpages zuzulassen

Antwort1

Ja, das gibt es, es isthttp://man.cx/. Ziel ist es, alle Manpages auf einer Seite zu haben, auch in mehreren Sprachen. Die Anker sind leider nicht benannt, sondern nummeriert: zum Beispielhttp://man.cx/printf#heading1bringt dich zur ersten Überschrift der printfManpage. Trotzdem finde ich, dass es besser ist als ohne Anker ;)

PS. Fügen Sie die Site zu Ihren Suchmaschinen hinzu. Dann können Sie sie einfach man printfin Ihre Adressleiste eingeben und werden auf die richtige Seite weitergeleitet. Super!

Antwort2

Anunix.stackexchangewerden Möglichkeiten beschrieben,die Offline-Manpages als Hypertext verwendenauch. Der einfachste Weg scheint mir w3mman zu sein, das Teil des Pakets ist w3m, also:

sudo apt-get install w3m

Wenn Sie beispielsweise eine Manpage geöffnet haben, w3mman mankönnen Sie TABmit zum nächsten Link navigieren. (Andere man-typische Tastaturkürzel funktionieren genauso: Scrollen, Suchen, Beenden :-)

So deaktivieren Sie die Beendigungsbestätigung (wie manbei Like):

  • bearbeiten~/.w3m/config

    • falls nicht vorhanden:cp /etc/w3m/config ~/.w3m/
  • Satzconfirm_qq 0

Als Ersatz für die normaleMannBefehl:

  • bearbeiten~/.bashrc

    • hinzufügenalias man='w3mman'
  • source ~/.bashrc

Werde jetzt man <some command>w3mman statt des normalen man verwenden :) Gefällt mir so. Danke der Nachfrage! :)

Antwort3

8 Jahre später
ist das Verknüpfen von Manpages mit Abschnittsankern auch heute noch nicht einfach.

Die Archlinux-Manpage scheint die einzige zu sein, die ich kenne

Archlinux-Mann

hat einige Anker, aber nicht genug

ein Demo-Link: https://man.archlinux.org/man/bash.1.en#extglob

Gnu-Mann

hat einige Anker

Demo-Link: https://www.gnu.org/software/bash/manual/bash.html#Indexes
https://www.gnu.org/software/bash/manual/bash.html#Pattern-Matching

verwandte Informationen