Linkando para as seções da página de manual?

13

Páginas de manual online em HTML com âncoras de seção?

Seria bom ter uma versão online das páginas de manual do Ubuntu com links diretos para as subseções. Isso permitiria apontar alguém para a documentação relevante em muitos casos - por exemplo, nas respostas de vários sites do StackExchange.

Descreverei como uma solução completa pode parecer e de que maneiras isso seria útil. Eu não acho que uma solução completa esteja disponível em algum lugar, então a questão é

Que soluções parciais existem hoje?

Por exemplo, maneiras sistemáticas de pesquisar nas páginas de manual, em vez de vincular, seriam uma solução parcial.


As páginas do manual em manpages.ubuntu.com resolvem a maior parte do problema, mas elas não têm âncoras nos cabeçalhos ou nas seções.

Isso significa que, se eu quiser apontar para a seção "Expansão de parâmetros" em man bashonline, tenho que usar

Consulte "Expansão de parâmetros" em [... e use seu navegador para procurar "Expansão de parâmetros"]man bash

Isso abre a página de manual do bash na parte superior, como uma página da web longa.

Na concha, posso dizer

Vejo man bash | less "+/Parameter Expansion"

que pula para o lugar certo na inicialização.


Seria realmente útil ter âncoras de link nomeadas como os títulos para os quais eles apontam. As âncoras nomeadas por algum tipo de número de índice ainda ajudariam, mas requerem uma pesquisa manual na página da Web real para usá-lo.

Como não é difícil, no nível HTML, adicionar âncoras aos cabeçalhos, tenho certeza de que essas páginas de manual existem;
Mas existe uma coleção de páginas de manual do Ubuntu com âncoras online em algum lugar, ou pelo menos um bom subconjunto?

Código de exemplo

O cabeçalho da seção "Expansão de parâmetros" em
http://manpages.ubuntu.com/bash,
que meio que redireciona para
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
       [ ... ]

Para poder vincular diretamente a esta seção, precisamos de algo como:

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


Isso adiciona uma tag ao código HTML e um atributo, o nome da seção sem espaços:

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

Agora, podemos criar um link para a seção como

http://manpages.ubuntu.com/bash#ParameterExpansion
ou mesmo
manpages.ubuntu.com/bash#ParameterExpansion

que usa uma nota de rodapé e está escrito como
[manpages.ubuntu.com/bash#ParameterExpansion{//6]


Uso de outros documentos de referência

Em muitos casos, existem documentos de referência alternativos disponíveis, além da página do manual. Geralmente, eles possuem uma boa estrutura de links usada para vincular de uma tabela de conteúdo às seções, exatamente o que precisamos.
Mas isso não resolve o problema geral , pois não há uma maneira comum de descobrir se existe / onde esse documento existe e fazer uso da estrutura de links.

Para o exemplo do bash usado acima, o Bash Reference Manual pode ser usado como uma solução individual consultada manualmente:

Seção Manual de Referência do Bash Shell-Parameter-Expansion,
escrita como
[Seção do Manual de Referência do Bash Shell-Parameter-Expansion] (http://www.gnu.org/software/bash/manual/bash.html#Shell-Parameter-Expansion)

Implementação proposta

Para propor realmente implementar essa idéia no manpages.ubuntu.com , enviei
uma solicitação de bug / aprimoramento intimamente relacionada ao projeto associado "ubuntu-manpage-repository": barra de ativação # 1355271: Use tags HTML para permitir links externos para subseções do man Páginas

Volker Siegel
fonte
3
Parece uma boa ideia. Por favor, envie um relatório de bug para isso.
Florian Diesch 11/08/14
@FlorianDiesch Claro, essa é a parte óbvia;) Na verdade, o manpages.ubuntu.com parece uma implementação muito limpa, mas eu lembro que foi feito por um único desenvolvedor. Vamos ver ...
Volker Siegel
1
O @AlaaAli Meta é apenas para perguntas sobre o Ask Ubuntu , não sobre o projeto Ubuntu ou outros sites relacionados ao Ubuntu.
Eliah Kagan 11/08/14
1
A propósito, escrevi uma pergunta muito semelhante aqui: unix.meta.stackexchange.com/q/3960/135943
Wildcard

Respostas:

7

Sim, existe, é http://man.cx/ . O objetivo é ter todas as páginas de manual em um site, também em vários idiomas. Infelizmente, as âncoras não são nomeadas, mas numeradas: por exemplo, http://man.cx/printf#heading1 o levará ao primeiro cabeçalho da printfpágina do manual. Ainda acho que é melhor do que sem âncoras;)

PS. Adicione o site aos seus motores de busca e, em seguida, você pode simplesmente digitar man printfsua barra de endereços, e ela será levada para a página correta, super incrível!

Gerhard Burger
fonte
1
Ótima idéia para a integração do navegador como mecanismo de pesquisa!
Philipp Wendler
Voto negativo sem comentário?
Gerhard Burger
2

No unix.stackexchange , existem maneiras descritas para usar as páginas de manual offline também como hipertexto . A maneira mais fácil para mim parece w3mman, que faz parte do pacote w3m, então:

sudo apt-get install w3m

Quando você abriu uma página de manual, fe w3mman man, pode usar TABpara navegar para o próximo link. (Outros atalhos de teclado típicos do homem funcionam da mesma maneira: rolagem, pesquisa, encerramento :-)

Para desativar a confirmação de encerramento (como manse comporta):

  • editar ~/.w3m/config

    • se não existir: cp /etc/w3m/config ~/.w3m/
  • conjunto confirm_qq 0

Para substituir o comando man normal :

  • editar ~/.bashrc

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

Agora man <some command>vou usar o w3mman em vez do homem normal :) Gosto dessa maneira. Obrigado por perguntar! :)

PythoNic
fonte