Как я могу иметь текст ссылки с URL-адресом в L‹› Pod?

Код форматирования L<name> позволяет вам установить отображаемый текст для ссылки, если вы ссылаетесь на другой POD, как в L<Display Text|link_dest>, но это не разрешено для ссылок L<scheme:...>, таких как

L<http://perldoc.perl.org/strict.html>

Как указать отображаемый текст для таких ссылок? В качестве альтернативы, как мне вручную написать такую ​​​​ссылку без угловых скобок, содержащих HTML с помощью pod2html?


person Drew Stephens    schedule 22.08.2009    source источник


Ответы (4)


Правильный формат такой:

L<strict|http://perldoc.perl.org/strict.html>

См. также http://justatheory.com/computers/programming/perl/sane-pod-links.html

person MichielB    schedule 28.03.2013

Если вы хотите сделать что-то необычное со своим подом, очень легко написать переводчик пода. Большая часть работы уже сделана за вас в Pod::Simple, поэтому вам нужно обрабатывать только случаи для L<>. Об этом есть глава в Mastering Perl.

person brian d foy    schedule 23.08.2009

http://perldoc.perl.org/perlpod.html#Formatting-Codes

L<<a href="http://www.perl.org/">http://www.perl.org/</a>>

Как вы заметили, похоже, это должно сработать, но, возможно, я неправильно понял ваш вопрос?

РЕДАКТИРОВАТЬ: кажется, что pod2html не нравится такой подход.
Я нашел немного более сложное решение в,

https://web.archive.org/web/1/http://blogs.techrepublic%2ecom%2ecom/howdoi/?p=114


#!/usr/bin/perl                                                                                                              
use strict;
use warnings;
use Pod::2::html;


my $pod_file =  $ARGV[0];
my $template =  $ARGV[1];

# Create pod2html object                                                                                                    
my $pod = Pod::2::html->new($pod_file);

# The path to the HTML template                                                                                             
$pod->template($template);

# The formatted HTML will go to STDOUT                                                                                      
$pod->readpod();

Я проверил это, и, похоже, у него нет проблем с интерполяцией общего html, так что вам вообще не нужен тег L‹›. Это кажется мне достойным решением.

person si28719e    schedule 23.08.2009
comment
Я попробовал это с помощью этой конструкции — L‹‹a href=perldoc.perl.org/ strict.html›foo‹/a››, но при запуске pod2html возникает следующая ошибка: /opt/local/bin/pod2html: debugging.pod: не удается разрешить L‹‹a href=perldoc.perl.org/strict.html› в параграфе 6. Я делаю что-то явно неправильное? - person Drew Stephens; 23.08.2009

Вы были так близко! Вам не хватает пробела между угловыми скобками и URL-адресом. Попробуй это:

I think L<< http://example.com >> is the best site on the web!

Дополнительное пространство является обязательным в соответствии с perldoc perlpod (прокрутите вниз здесь, чтобы найти его) :

"Более читаемый и, возможно, более "простой" способ — использовать альтернативный набор разделителей, не требующий экранирования символа ">". Стандартные средства форматирования Pod, начиная с perl5.5.660, двойные угловые скобки ("‹‹" и ">>") могут использоваться тогда и только тогда, когда есть пробел сразу после открывающего разделителя и пробел прямо перед закрывающим разделителем! Например, следующий трюк поможет: "

       C<< $a <=> $b >>
person Jay Allen    schedule 02.10.2010
comment
Почти так — использование этого стиля работает в pod2text (perldoc), но pod2html задыхается. Я использую формат L‹‹ Strict doc|perldoc.perl.org/strict.html ››. - person Drew Stephens; 02.10.2010