В этой статье обсуждается проблема создания ссылок внутри поста написанного в блоггере. Проблема невозможности создавать внутренние ссылки и ссылки с относительными путями в редакторе Blogger-а. Эта проблема затрудняет делает невозможным создание содержания статей, ссылок-сносок на различные части документа и т.п., в постах публикуемых на blogspot.com! Как частичное решение этой проблемы, я предлагаю воспользоваться скриптом, позволяющим создавать содержание статьи автоматически (с правильными ссылки на части документа). При желании вы можете модифицировать его и под другие, подобные нужны, например создание блока ссылок-сносок и т.п. ...
Преамбула
Недавно писал очень длинный пост, который представлял собой очередной "How-to" по программированию. Статья поста была разбита на 7-мь частей, в каждой из которой обсуждались отдельные аспекты программирования. Я решил сразу, в начале поста, перечислить эти части, чтоб читатель знал, какие темы в ней будут затронуты. Я так и сделал - добавил содержание в котором перечислил название частей статьи.
Когда статья была закончена и я ее перечитывал перед публикацией, мне в голову прошла вполне логичная идея - сделать названия статей в содержании ссылками к началу каждой части. Не долго думая, я открыл редактор блоггера в режиме отображения HTML кода. Добавил перед началом каждой части статьи закладки - <a name="part1"></a>, <a name="part2"></a> и т.д., для каждой части. А текст пунктов содержания сделал ссылками - <a href="#part1>Часть 1</a>, <a href="#part2>Часть 2</a> и т.д.
Потом я переключился опять в визуальный режим редактирования поста, сделал несколько исправлений, сохранил изменения и нажал просмотр... и тут меня ждал неприятный сюрприз - блоггер изгадил! мои ссылки!!! По добавлял к ним урлы, превратив их во внешние и полностью не рабочие ссылки (ведущие хрен знает куда!). Расставленные закладки тоже изменились - блоггер добавил к ним href="http://bla-bla-bla/"!
Проблему с закладками можно было решить добавив к тегу, в котором заключен текст названия части, атрибут id="part1" в место тега <a name="...">, но что делать с ссылками на эти закладки!? Блоггер вообще не понимает ссылки с относительными путями к которым относятся ссылки на части документа. Я писал так: <a href="#part1> и так <a href="/#part1> и даже так <a href=".#part1>, но результат был один и тот же - блоггер постоянно подставлял в ссылку http://www.blogger.com/.... :(
Для приличия я погуглил минут десять, но так и не нашел решения ...
Не желая тратить время на поиск, я решил сам написать скрипт который создавал бы содержание (оглавление - как вам угодно) статьи автоматически. Минут 20-ть и решение готово!
Вкратце, как это работает:
Скрипт ищет (сверху-вниз) в html-коде статьи текст заключенный в определенный тег, например h2, и создает из найденного список содержания.
Для того, чтоб отобразить созданное содержание в посте, добавляем, туда где оно должно появится тег (span, div, ...) с атрибут id и значением "jqblg_contents".
Пример работы скрипта прямо пред вами: