Ссылки и немного про связи
В первую очередь далее пойдет речь о ссылках в контексте языка разметки pod6. Это более развитый, но пока менее распространенный, чем markdown язык разметки.
Ссылки
Какие ссылки могут быть
внешними
https://example.com/readme
https://example.com/readme#sect1
внутренними
http:mytutorial/faq.html
http:../examples/index.html
aбсолютными
file:/usr/local/lib/.configrc
относительными
Then, edit the local config file (that is, either
L<file:.configrc> or L<file:CONFIG/.configrc>.
Ссылки могут указывать на адрес электронной почты:
Please forward bug reports to L<mailto:[email protected]>
На международный идентификатор книги:
The Perl Journal was a registered
serial publication (L<issn:1087-903X>)
Или на документ:
You may wish to use L<doc:Data::Dumper> to
view the results. See also: L<doc:perldata>.
На часть произвольного документа:
Also see: L<man:bash(1)#Compound Commands>,
L<doc:perlsyn#For Loops>, and
L<http://dev.perl.org/perl6/syn/S04.html#The_for_statement>
Или на раздел текущего документа c указанием схемы ( в примере doc:
):
This mechanism is described under L<doc:#Special Features> below.
или без указания схемы:
This mechanism is described under L<#Special Features> below.
Еще ссылка может указывать на термин (схема defn:):
To treat his chronic L<defn:lexiphania> the doctor prescribed an
immediate L<defn:glossoligation> or, if that proved ineffective,
a complete cephalectomy.
Определения терминов могут быть как строковым (inline) элементом, так и блочными:
He was highly prone to D<lexiphania>: an unfortunate proclivity
for employing grandiloquisms (for example, words such as "proclivity",
"grandiloquism", and indeed "lexiphania").
=defn glossoligation
Restraint of the tongue (voluntary or otherwise)
В случае строковой формы (D<>
) определением термина является окружающий его текст.
Т.е. параграф, абзац.
Отмечу здесь, что строковая форма определения термина D<>
( ровно как и строковая форма индексного термина X<>
) позволяет указывать синонимы:
A D<formatting code|formatting codes;formatters> provides a way
to add inline mark-up to a piece of text.
Что позволяет говорить о еще одном типе связей - связь через синонимы. Т.е. если есть в заметке определение "что такое путь" и оно является синонимом "дорога", описанном в другом документе, то можно говорить о близости этих документов или заметок.
Замещаемые ссылки ( placement links )
Замещаемые ссылки вместо указания на на другой документ или сущность (например, ссылка указывает на параграф или блочный элемент), позволяют включать документы в текущий документ вместо самих себя. Другими словами "замещаемые ссылки" - это ссылки, которые замещаются данными, на которые они указывают.
Наиболее близкие к ним встраиваемые ссылки из спецификации XLinks
или директива include::
( см. Include Files ) в языке разметки AsciiDoc.
В pod6 для этих целей определен inline элемент P<>
.
Вот пример как используется вставка текстового файла:
=DISCLAIMER
P<http://www.MegaGigaTeraPetaCorp.com/std/disclaimer.txt>
Предусмотрены несколько схем:
http:
andhttps:
file:
man:
doc:
toc:
Вот несколько примеров использования схемы toc:
.
Вставка оглавления, состоящего из заголовков первого и второго уровней:
P<toc: head1 head2>
Добавляем еще пару уровней и таблицы:
P<toc: head1 head2 head3 head4 table>
Список диаграмм:
P<toc: Diagram>
Видно, что в качестве аргументов для схемы toc:
используется
некое подобие языка запросов к структуре документа. Тут можно было бы
использовать атрибуты блоков, чтобы обогатить этот язык запросов.
Не исключен вариант, что этот язык запросов к структуре документа в спецификации к pod6 видится только мне ). Вероятно оттого, что эта идея уже несколько раз меня посещала. Есть же язык запросов к базе данных, должен быть и язык запросов к базе знаний.
Есть, у меня лично, внутреннее противоречие с тем, что с помощью этого inline элемента можно вставлять блочные компоненты, но жить с этим я смогу.
Куда указывают ссылки
Есть еще одна тема, которую приходится собирать по крупицам из исходников реализаций различных языков разметки - это идентификаторы блоков, заголовков. Т.е. каким образом определяются не ссылки, а части документов, на которые они указывают. Но это, наверное, тема отдельного разговора.