链接到手册页部分?

链接到手册页部分?

HTML 中的在线手册页带有章节锚点吗?

最好有一个在线版本的 Ubuntu 手册页,其中包含指向子部分的直接链接。这可以在很多情况下引导某人找到相关文档 - 例如在各种 StackExchange 网站的答案中。

我将描述一个完整的解决方案是什么样子,以及它在哪些方面有用。我不认为某个地方有完整的解决方案,所以问题是

目前存在哪些部分解决方案?

例如,以某种系统的方式搜索手册页(而不是链接)可以成为部分解决方案。


手册页位于手册页解决了大部分问题,但它们在标题或部分上没有锚点。

这意味着,如果我想指向 man bash在线,我必须使用

请参阅“参数扩展”man bash
[...并使用浏览器搜索“参数扩展”]

这将在顶部打开 bash 手册页,作为一个长网页。

在 shell 中,我可以说

man bash | less "+/Parameter Expansion"

在启动时跳转到正确的位置。


如果链接锚点的名称与它们指向的标题相同,那将非常有帮助。用某种索引号命名的锚点仍然有用,但需要在实际网页上手动查找才能使用它。

由于在 HTML 级别上向标题添加锚点并不困难,我相信这样的手册页是存在的;
但是有没有带有锚点的 Ubuntu 手册页在线某处,或至少有一个好的子集?

示例代码

“参数扩展”部分的标题来自
http://manpages.ubuntu.com/bash
重定向到
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
       [ ... ]

为了能够直接链接到此部分,我们需要类似以下内容:

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


这会在 HTML 代码中添加一个标签和一个属性,即不带空格的部分名称:

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

现在,我们可以链接到以下部分

http://manpages.ubuntu.com/bash#ParameterExpansion
甚至
manpages.ubuntu.com/bash#ParameterExpansion

它使用脚注,其写法如下
[manpages.ubuntu.com/bash#ParameterExpansion][6]


其他参考文件的使用

在许多情况下,除了手册页之外,还有其他可用的参考文档。这些文档通常具有良好的链接结构,可用于从目录链接到章节,这正是我们所需要的。
但是这个不能解决普遍问题,因为没有通用的方法来查找这样的文档是否存在/在哪里存在,以及如何利用链接结构。

对于上面使用的 bash 示例,Bash 参考手册可以作为手动查找的单独解决方案:

Bash 参考手册 Shell-Parameter-Expansion 部分
写为
[Bash 参考手册部分 Shell-Parameter-Expansion](http://www.gnu.org/software/bash/manual/bash.html#Shell-Parameter-Expansion)

建议实施方案

建议在实际中实施这个想法手册页
我在相关项目“ubuntu-manpage-repository”上提交了一个密切相关的错误/增强请求: launchpad #1355271:使用 HTML a 标签允许外部链接到手册页的子部分

答案1

是的,这是http://man.cx/。它旨在将所有手册页放在一个站点中,并提供多种语言版本。遗憾的是,锚点没有命名,而是编号:例如http://man.cx/printf#heading1将带您进入手册页的第一个标题printf。不过,我认为它比没有锚点要好 ;)

PS. 将网站添加到您的搜索引擎,然后您只需man printf在地址栏中输入地址,它就会带您到正确的页面,太棒了!

答案2

unix.stackexchange,有方法描述使用离线手册页作为超文本也是。对我来说最简单的方法似乎是 w3mman,它是软件包的一部分w3m,因此:

sudo apt-get install w3m

当你打开手册页时,w3mman man你可以使用feTAB导航到下一个链接。(其他典型的 man 键盘快捷键功能相同:滚动、搜索、退出 :-)

要关闭退出确认(类似man行为):

  • 编辑~/.w3m/config

    • 如果不存在:cp /etc/w3m/config ~/.w3m/
  • confirm_qq 0

取代正常的男人命令:

  • 编辑~/.bashrc

    • 添加alias man='w3mman'
  • source ~/.bashrc

现在man <some command>将使用 w3mman 而不是普通的 man :) 我喜欢这种方式。谢谢询问!:)

答案3

8 年后,
将手册页与节锚点链接起来仍然不容易。

archlinux 手册页似乎是我唯一知道的

archlinux 人

有一些锚点,但还不够

演示链接: https://man.archlinux.org/man/bash.1.en#extglob

牛羚人

有一些锚点

演示链接: https://www.gnu.org/software/bash/manual/bash.html#Indexes
https://www.gnu.org/software/bash/manual/bash.html#Pattern-Matching

相关内容