內容

名稱

Pod::ParseLink - 分析 POD 文字中的 L<> 格式化程式碼

語法

use Pod::ParseLink;
my $link = get_link();
my ($text, $inferred, $name, $section, $type) = parselink($link);

說明

此模組僅提供一個函式 parselink(),它會取得 L<> 格式化程式碼的文字並分析它。它會傳回連結的錨點文字(如果有提供的話)、從名稱和章節推斷出來的錨點文字、名稱或 URL、章節(如果有的话)以及連結類型。類型會是 urlpodman 之一,分別表示 URL、連結到 POD 頁面或連結到 Unix 手冊頁面。

分析是根據 perlpodspec 實作的。為了向後相容,連結中沒有章節且名稱包含空白,或連結中除了錨點文字(如果有提供的話)以外的全部內容都用雙引號括起來時,會將其解釋為連結到章節 (L</section>)。

推論的錨定文字實作於 perlpodspec

L<name>         =>  L<name|name>
L</section>     =>  L<"section"|/section>
L<name/section> =>  L<"section" in name|name/section>

名稱可能包含內嵌的 E<> 和 Z<> 格式化代碼,而章節、錨定文字和推論的錨定文字可能包含任何格式化代碼。任何圍繞章節的雙引號會在分析時移除,任何前導或尾隨空白也會移除。

如果 L<> 逸出的文字完全被雙引號包圍,則會將其解譯為章節連結,以維持向後相容性。

不會嘗試解析格式化代碼。這必須在呼叫 parselink() 之後執行(因為 E<> 格式化代碼可用於逸出字元,否則這些字元會對分析器產生重大影響,且在分析之前解析它們將導致格式化代碼分析錯誤,例如

L<verticalE<verbar>barE<sol>slash>

這應該解譯為連結到 vertical|bar/slash POD 頁面,而不是連結到 bar POD 頁面的 slash 章節,錨定文字為 vertical。請注意,不只錨定文字需要展開格式化代碼,連結目標也需要(用於處理 E<> 和 Z<> 格式化代碼),而且可能需要特別處理章節,具體取決於翻譯者是否希望在解析連結時考慮章節中的標記是否重要。請參閱 perlpodspec 以取得更多資訊。

作者

Russ Allbery <rra@cpan.org>

版權和授權

版權所有 2001、2008、2009、2014、2018-2019、2022 Russ Allbery <rra@cpan.org>

此程式為自由軟體;您可以根據與 Perl 相同的條款重新散布或修改它。

另請參閱

Pod::Parser

此模組的目前版本隨時可在其網站取得,網址為 https://www.eyrie.org/~eagle/software/podlators/