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 bash
online muss ich
Siehe „Parametererweiterung“ in
man 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
Sehen
man 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 printf
Manpage. 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 printf
in 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 man
kö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 man
bei Like):
bearbeiten
~/.w3m/config
- falls nicht vorhanden:
cp /etc/w3m/config ~/.w3m/
- falls nicht vorhanden:
Satz
confirm_qq 0
Als Ersatz für die normaleMannBefehl:
bearbeiten
~/.bashrc
- hinzufügen
alias man='w3mman'
- hinzufügen
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