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