Интернет, компьютеры, софт и прочий Hi-Tech

Подписаться через RSS2Email.ru

Тег "анкор" BB-code

Анкор (anchor, якорь)

Тег [anchor] предназначен для того, чтобы создавать метки (якоря, анкоры) в HTML-документе. Метки нужны для того, чтобы на данное место документа можно было ссылаться из другого места документа, или с другой страницы сайта или даже вообще с другого сайта.

В языке HTML для создания меток чаще всего используются конструкции <a id="метка">текст</a> и <a name="метка">текст</a>. Обе они приводят к одному результату, но вторая считается устаревшей. Поэтому конструкция <a id="метка">текст</a> более предпочтительна для использования. BB-code, как язык упрощенной разметки, должен дать пользователю возможность вставлять в документ метки, но при этом избавить пользователя от технических тонкостей, связанных с HTML-кодом.

Библиотека xBB для работы с BB-code поддерживает следующую реализацию этого тега:

  1. Конструкция [anchor]метка[/anchor] транслируется в конструкцию HTML <a id="метка"></a>. Вместо [anchor]метка[/anchor] можно с тем же результатом использовать любую из следующих конструкций: [anchor=метка /], [anchor id=метка /], [anchor name=метка /], [anchor=метка][/anchor] и т.п.
  2. Конструкция [anchor=метка]текст[/anchor] транслируется в конструкцию HTML <a id="метка">текст</a>.

Такое множество поддерживаемых конструкций анкора нужно не для того, чтобы запутать пользователя, а для того, чтобы он мог писать так, как привык при работе с HTML или другими реализациями BB-code, и при этом получать правильный результат.

Если имя метки начинается не с латинской буквы, то в его начало парсер xBB допишет строку "bb". Это необходимо для того, чтобы код HTML, получающийся из BB-code, соответствовал спецификациям консорциума W3C. Последние требуют, чтобы метки начинались с латинской буквы.

Однако, из-за того что единого стандарта BB-code не существует, тег анкора присутствует далеко не во всех реализациях этого языка, и его применение в различных реализациях BB-code также может сильно различаться.

Так, например, в реализации BB-code для движка форумов SMF (Simple Machines Forum), тег [anchor] может использоваться только в одном виде: [anchor=метка]текст[/anchor]. В генерируемом SMF коде HTML, указанная пользователем метка, всегда снабжается префиксом "post_". Это сделано из тех же соображений, по которым парсер xBB добавляет к некоторым меткам строку "bb".

Движок phpBB в стандартной конфигурации не поддерживает анкоров, но администраторы многих форумов сами добавляют его в список поддерживаемых с помощью инструмента создания новых тегов в админчасти своих форумов. Чаще всего эти реализации работают следующим образом: конструкция [anchor]метка[/anchor] переводится в HTML-код <a name="метка"></a> без каких либо префиксов.

В большинстве реализаций BB-code, чтобы сослаться на нужно место документа, отмеченное анкором, используют тег [url]. Например, чтобы сослаться на метку [anchor]latinica[/anchor], нужно написать [url=#latinica]ссылка на метку латиницей[/url]. При этом пользователям xBB нужно помнить, что метка может начинаться со строки "bb", а пользователям SMF нужно помнить, что метка всегда начинается с "post_".

Например, чтобы сослаться на [anchor]кириллица[/anchor], пользователи xBB должны писать [url=#bbкириллица]ссылка на метку кириллицей[/url], а пользователи SMF должны писать [url="#post_кириллица"]ссылка на метку кириллицей[/url]. Пользователи описаной реализации [anchor] в phpBB избавлены от этих нюансов, но не факт что такая ссылка будет всегда и везде работать.

Чтобы избежать этих сложностей, можно реализовать тег [goto], который возьмет на себя учет всех нюансов ссылок на метки. С его помощью на метку [anchor]метка[/anchor] можно ссылаться так: [goto=метка]ссылка на метку[/goto], не думая о том, сопровождается ли метка каким либо префиксом. Реализация этого тега, думаю, не составит большого труда.

Автор: Дмитрий Скоробогатов, 31.01.2011


Предыдущие публикации:


Последнее редактирование: 2011-01-31 15:13:15

Метки материала: тег, анкор, code, тег анкор, bb-code, язык разметки, bbcode, разметка, bb-коды, tags

Оставьте, пожалуйста, свой комментарий к публикации

Представиться как     Антибот:
   

Просьба не постить мусор. Если вы хотите потестить xBB, воспользуйтесь кнопкой предварительного просмотра на панели инструментов xBBEditor-а.


© 2007-2018, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.