Collegamento alle sezioni della pagina man?


13

Pagine man online in HTML con ancore di sezione?

Sarebbe bello avere una versione online delle pagine man di Ubuntu con collegamenti diretti in sottosezioni. Ciò consentirebbe di indirizzare qualcuno alla documentazione pertinente in molti casi, ad esempio nelle risposte di vari siti StackExchange.

Descriverò come potrebbe apparire una soluzione completa e in che modo sarebbe utile. Non credo che una soluzione completa sia disponibile da qualche parte, quindi la domanda è

Quali soluzioni parziali esistono oggi?

Ad esempio, in qualche modo modi sistematici di cercare nelle pagine man, invece di creare collegamenti, sarebbe una soluzione parziale.


Le pagine man di manpages.ubuntu.com risolvono la maggior parte del problema, ma non hanno ancore sulle intestazioni o sezioni.

Ciò significa che, se voglio indicare la sezione "Espansione dei parametri" in man bashlinea, devo usare

Vedi "Parameter Expansion" in [... e usa il tuo browser per cercare "Parameter Expansion"]man bash

Questo apre la pagina man di bash in alto, come una lunga pagina web.

Nella shell, posso dire

Vedere man bash | less "+/Parameter Expansion"

che salta nel posto giusto all'avvio.


Sarebbe davvero utile avere ancore di collegamento denominate come le intestazioni a cui puntano. Le ancore indicate da un qualche tipo di numero di indice sarebbero comunque utili, ma per utilizzarlo è necessaria una ricerca manuale sulla pagina Web effettiva.

Dato che non è difficile a livello HTML aggiungere ancore alle intestazioni, sono sicuro che tali pagine man esistano;
Ma c'è una raccolta di pagine man di Ubuntu con ancore online da qualche parte, o almeno un buon sottoinsieme?

Codice di esempio

L'intestazione della sezione "Espansione dei parametri" da
http://manpages.ubuntu.com/bash
che reindirizza a
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
       [ ... ]

Per poter collegare direttamente a questa sezione, abbiamo bisogno di qualcosa come:

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


Ciò aggiunge un tag al codice HTML e un attributo, il nome della sezione senza spazi:

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

Ora, possiamo collegarci alla sezione come

http://manpages.ubuntu.com/bash#ParameterExpansion
o anche
manpages.ubuntu.com/bash#ParameterExpansion

che utilizza una nota a piè di pagina ed è scritto come
[manpages.ubuntu.com/bash#ParameterExpansion[[6]


Uso di altri documenti di riferimento

In molti casi, sono disponibili documenti di riferimento alternativi, a parte la pagina man. Questi spesso hanno una buona struttura di collegamenti che viene utilizzata per collegare da un sommario alle sezioni, proprio ciò di cui abbiamo bisogno.
Ma questo non risolve il problema generale , in quanto non esiste un modo comune per scoprire se / dove esiste un documento del genere e utilizzare la struttura dei collegamenti.

Per l'esempio bash usato sopra, il Manuale di riferimento di Bash potrebbe essere usato come soluzione individuale cercata manualmente:

Sezione del manuale di riferimento di Bash Espansione dei parametri della shell
scritta come
[Sezione del manuale di riferimento di Bash Espansione dei parametri della shell] (http://www.gnu.org/software/bash/manual/bash.html#Shell-Parameter-Expansion)

Implementazione proposta

Per proporre effettivamente l'implementazione di questa idea su manpages.ubuntu.com ,
ho presentato una richiesta di bug / miglioramento strettamente correlata al progetto associato "ubuntu-manpage-repository": launchpad # 1355271: Usa HTML a tag per consentire collegamenti esterni a sottosezioni di man pagine


3
Sembra una buona idea. Si prega di presentare una segnalazione di bug per questo.
Florian Diesch,

@FlorianDiesch Certo, questa è la parte ovvia;) In realtà, manpages.ubuntu.com sembra un'implementazione molto pulita, ma ricordo che è stato fatto da un singolo sviluppatore. Vediamo ...
Volker Siegel,


1
@AlaaAli Meta è solo per domande su Ask Ubuntu , non sul progetto Ubuntu o altri siti Web correlati a Ubuntu.
Eliah Kagan,

1
A proposito, ho scritto una domanda molto simile qui: unix.meta.stackexchange.com/q/3960/135943
Wildcard

Risposte:


7

Sì, c'è, è http://man.cx/ . Ha lo scopo di avere tutte le pagine man in un sito, anche in più lingue. Purtroppo le ancore non sono nominate, ma numerate: ad esempio http://man.cx/printf#heading1 ti porterà alla prima intestazione della printfpagina man. Penso comunque che sia meglio che senza ancore;)

PS. Aggiungi il sito ai tuoi motori di ricerca, quindi puoi semplicemente digitare man printfla barra degli indirizzi e ti porterà alla pagina corretta, super fantastico!


1
Ottima idea per l'integrazione del browser come motore di ricerca!
Philipp Wendler,

Downvote senza commento?
Gerhard Burger

2

Su unix.stackexchange , ci sono modi descritti per usare anche le manpage offline come ipertesto . Il modo più semplice per me sembra w3mman, che fa parte del pacchetto w3m, quindi:

sudo apt-get install w3m

Quando hai aperto una pagina man, ad esempio w3mman man, puoi utilizzare TABper passare al link successivo. (Altre scorciatoie da tastiera tipiche dell'uomo funzionano allo stesso modo: scorrimento, ricerca, uscita :-)

Per disattivare la conferma di chiusura (come mansi comporta):

  • modificare ~/.w3m/config

    • se non esistente: cp /etc/w3m/config ~/.w3m/
  • impostato confirm_qq 0

Per sostituire il normale comando man :

  • modificare ~/.bashrc

    • Inserisci alias man='w3mman'
  • source ~/.bashrc

Ora man <some command>userò w3mman invece dell'uomo normale :) Mi piace in questo modo. Grazie per avermelo chiesto! :)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.