Verlinkung zu Manpage-Abschnitten?

13

Online-Manpages in HTML mit Abschnittsankern?

Es wäre gut, eine Online-Version der Ubuntu-Manpages mit direkten Links zu Unterabschnitten zu haben. Dies würde es in vielen Fällen ermöglichen, jemanden auf die relevante Dokumentation zu verweisen - zum Beispiel in Antworten verschiedener StackExchange-Sites.

Ich werde beschreiben, wie eine vollständige Lösung aussehen könnte und auf welche Weise dies nützlich wäre. Ich glaube nicht, dass irgendwo eine vollständige Lösung verfügbar ist, also ist die Frage

Welche Teillösungen gibt es heute?

Zum Beispiel wäre eine systematische Suche in den Manpages eine Teillösung, anstatt zu verlinken.


Die Manpages unter manpages.ubuntu.com lösen den größten Teil des Problems, haben jedoch keine Anker in den Überschriften oder Abschnitten.

Das heißt, wenn ich man bashonline auf den Abschnitt "Parametererweiterung" verweisen möchte , muss ich verwenden

Siehe "Parametererweiterung" in [... und verwenden Sie Ihren Browser, um nach "Parametererweiterung" zu suchen]man bash

Dies öffnet die Bash-Manpage oben als eine lange Webseite.

In der Schale kann ich sagen

Sehen man bash | less "+/Parameter Expansion"

die beim Start an die richtige Stelle springt.


Es wäre sehr hilfreich, Link-Anker so zu benennen, wie die Überschriften, auf die sie zeigen. Nach einer Art Indexnummer benannte Anker würden immer noch helfen, erfordern jedoch eine manuelle Suche auf der tatsächlichen Webseite, um sie zu verwenden.

Da es auf HTML-Ebene nicht schwierig ist, Anker zu Überschriften hinzuzufügen, bin ich sicher, dass es solche Manpages gibt.
Aber gibt es irgendwo eine Sammlung der Ubuntu-Manpages mit Ankern online oder zumindest eine gute Teilmenge?

Beispielcode

Die Kopfzeile des Abschnitts "Parametererweiterung" von
http://manpages.ubuntu.com/bash,
der zu http://manpages.ubuntu.com/manpages/trusty/en/man1/bash.1.html umleitet

       [ ... ]
       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 Folgendes:

       [ ... ]
       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
       [ ... ]


Dies fügt dem HTML-Code ein Tag und ein Attribut, den Abschnittsnamen ohne Leerzeichen, hinzu:

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

Jetzt können wir auf den Abschnitt wie verlinken

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

die eine Fußnote verwendet und geschrieben ist wie
[manpages.ubuntu.com/bash#ParameterExpansion[6]


Verwendung anderer Referenzdokumente

In vielen Fällen stehen alternative Referenzdokumente zur Verfügung, ähnlich wie auf der Manpage. Diese haben oft eine gute Linkstruktur, die verwendet wird, um von einem Inhaltsverzeichnis auf die Abschnitte zu verlinken, genau das, was wir brauchen.
Dies löst jedoch nicht das allgemeine Problem , da es keinen gemeinsamen Weg gibt, festzustellen, ob / wo ein solches Dokument existiert, und die Verknüpfungsstruktur zu nutzen.

Für das oben verwendete Bash-Beispiel kann das Bash-Referenzhandbuch als individuelle Lösung verwendet werden, die manuell nachgeschlagen wird:

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

Vorgeschlagene Umsetzung

Um vorzuschlagen, diese Idee tatsächlich auf manpages.ubuntu.com umzusetzen ,
reichte ich einen eng verwandten Bug / Enhancement-Request für das zugehörige Projekt "ubuntu-manpage-repository" ein: launchpad # 1355271: Verwenden Sie HTML a-Tags, um externe Links zu Unterabschnitten von man zuzulassen Seiten

Volker Siegel
quelle
3
Klingt wie eine gute Idee. Bitte reichen Sie dazu einen Fehlerbericht ein .
Florian Diesch
@FlorianDiesch Sicher, das ist der offensichtliche Teil;) Eigentlich mag manpages.ubuntu.com eine sehr saubere Implementierung, aber ich erinnere mich, dass sie von einem einzelnen Entwickler durchgeführt wird. Mal sehen ...
Volker Siegel
1
@AlaaAli Meta ist nur für Fragen zu Ask Ubuntu gedacht , nicht für das Ubuntu-Projekt oder andere Ubuntu-bezogene Websites.
Eliah Kagan
1
Übrigens habe ich hier eine sehr ähnliche Frage geschrieben: unix.meta.stackexchange.com/q/3960/135943
Wildcard

Antworten:

7

Ja, es ist http://man.cx/ . Ziel ist es, alle Manpages auf einer Site zu haben, auch in mehreren Sprachen. Die Anker sind leider nicht benannt, sondern nummeriert: Zum Beispiel führt Sie http://man.cx/printf#heading1 zur ersten Überschrift der printfManpage. Trotzdem finde ich es besser als ohne Anker;)

PS. Fügen Sie die Site Ihren Suchmaschinen hinzu, und geben Sie einfach man printfIhre Adressleiste ein. Sie werden dann zur richtigen Seite weitergeleitet.

Gerhard Burger
quelle
1
Tolle Idee für die Browserintegration als Suchmaschine!
Philipp Wendler
Ohne Kommentar abstimmen?
Gerhard Burger
2

In unix.stackexchange gibt es Möglichkeiten, die Offline-Hilfeseiten auch als Hypertext zu verwenden. Der einfachste Weg für mich scheint w3mman zu sein, was Teil des Pakets ist w3m, also:

sudo apt-get install w3m

Wenn Sie beispielsweise eine Manpage geöffnet haben w3mman man, können Sie TABmit zum nächsten Link navigieren. (Andere mannstypische Tastaturkürzel funktionieren genauso: scrollen, suchen, beenden :-)

So deaktivieren Sie das Beenden der Bestätigung (ähnliches manVerhalten):

  • bearbeiten ~/.w3m/config

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

So ersetzen Sie den normalen man- Befehl:

  • bearbeiten ~/.bashrc

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

Jetzt man <some command>wird w3mman anstelle des normalen Mannes verwendet :) Ich mag es so. Danke für die Frage! :)

PythoNic
quelle