連結到手冊頁部分?

連結到手冊頁部分?

帶有章節錨點的 HTML 線上手冊頁?

如果有一個線上版本的 Ubuntu 手冊頁並帶有直接連結到各個小節,那就太好了。在許多情況下,這將允許向某人指出相關文件 - 例如在各個 StackExchange 網站的答案中。

我將描述完整的解決方案可能會是什麼樣子,以及它在哪些方面有用。我認為某個地方沒有完整的解決方案,所以問題是

目前有哪些部分解決方案?

例如,以某種系統化的方式搜尋手冊頁而不是連結將是部分解決方案。


手冊頁位於manpages.ubuntu.com解決了大部分問題,但它們在標題或部分上沒有錨點。

這意味著,如果我想指向“參數擴展”部分 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)

擬議實施

提議實際實施這項想法manpages.ubuntu.com
我在關聯項目“ubuntu-manpage-repository”上提交了密切相關的錯誤/增強請求: launchpad #1355271:使用 HTML a 標籤允許外部連結到手冊頁的子部分

答案1

是的,有,它是http://man.cx/。它的目標是在一個網站上提供所有手冊頁,並以多種語言顯示。不幸的是,錨點並沒有命名,而是編號:例如http://man.cx/printf#heading1將帶您到手冊頁的第一個標題printf。不過我認為這總比沒有錨點好;)

附言。將網站添加到您的搜尋引擎中,然後您只需man printf在網址列中輸入,它就會帶您到正確的頁面,超級棒!

答案2

unix.stackexchange,有描述的方法使用離線線上說明頁面作為超文本也。對我來說最簡單的方法是 w3mman,它是 package 的一部分w3m,所以:

sudo apt-get install w3m

當您開啟手冊頁 fe 時w3mman man,您可以使用TAB導航到下一個連結。 (其他人類典型的鍵盤快速鍵的工作原理相同:滾動、搜尋、退出:-)

若要關閉退出確認(類似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

相關內容