Подсветка ссылок из Библии на сайте

CoverYourEyes

Пользователь
Регистрация
23.08.2011
Сообщения
1
Сайт
baptist-volga.ru
Приветствую!
Столкнулся с тем, что скрипт не воспринимает или принимает с ошибками цитаты с неразрывным пробелом ( ) между названием книги и главой и внутри названия книги. А с моей вёрсткой и особенностями текста сейчас неразрывный пробел необходим. Да в принципе он везде не помешает, чтобы не получилось нечто типа "1 Ин.\n5:13" (половинки на разных строках). Заодно исправив "К сожелению", предлагаю вот такой патч :)

Код:
--- /home/lobotomy/Документы/projects/baptist-volga/html/bible_orig.js
+++ /home/lobotomy/Документы/projects/baptist-volga/html/bible.js
@@ -47,7 +47,7 @@
                         bble.className = "BibleOnlineBibleRef";
                         bble.target = "_blank";
                         bble.id = 'BibleOnlineRef-'+(++nid);
-                        bble.innerHTML = lnk;
+                        bble.innerHTML = lnk.replace(/\s/g, " ");
                         if(bble.addEventListener){
                             bble.addEventListener("mouseover",bibleRef.MouseOver,false);
                             bble.addEventListener("mouseout",bibleRef.MouseOut,false)
@@ -119,12 +119,12 @@
                 }
             }
             var more = document.getElementById('BibleOnlineToolTipMore');
-            more.href = 'http://bble.ru/'+document.getElementById(t.id).innerHTML.replace(/: +/g, ".").replace(/ +/g, "+").replace(/;/g, "%3b").replace(/[-—–]/g, '-');
+            more.href = 'http://bble.ru/'+document.getElementById(t.id).innerHTML.replace(/( )+/g, " ").replace(/: +/g, ".").replace(/ +/g, "+").replace(/;/g, "%3b").replace(/[-—–]/g, '-');
         }
         else
         {
             var f="http://api.bibleonline.ru/ref/get/";
-            var q=t.innerHTML.replace(/: +/g, ".").replace(/ +/g, "+").replace(/;/g, "%3b").replace(/[-—–]/g, '-');
+            var q=t.innerHTML.replace(/( )+/g, " ").replace(/: +/g, ".").replace(/ +/g, "+").replace(/;/g, "%3b").replace(/[-—–]/g, '-');
             f+=f.indexOf("?")>-1?"&callback=":"?callback=";
             f+="bibleRef.loaded";
             f+="&q="+q;
@@ -211,7 +211,7 @@
         var c = document.getElementById('BibleOnlineToolTipContent')
         if (c)
         {
-            c.innerHTML = '<div class="BibleOnlineRefLoader">К сожелению, загрузить отрывок не удалось</div>';
+            c.innerHTML = '<div class="BibleOnlineRefLoader">К сожалению, загрузить отрывок не удалось</div>';
         }
     },
     removeScript: function(s)
 

leonidas

Администратор
Команда форума
Регистрация
13.02.2010
Сообщения
255
Сайт
bibleonline.ru
Вероисповедание
Баптизм
ВКонтакте
sopov
Facebook
sopov
На выходных постараюсь внести изменения в код.

Спасибо за найдённый баг и за фикс.
 

leonidas

Администратор
Команда форума
Регистрация
13.02.2010
Сообщения
255
Сайт
bibleonline.ru
Вероисповедание
Баптизм
ВКонтакте
sopov
Facebook
sopov
Обновления внесены, проверьте. Если будет что-то не так - пишите.

Спасибо.
 

ivn

Пользователь
Регистрация
28.11.2011
Сообщения
1
В данный момент (28-11) скрипт нерабочий. Поправьте 34 строку, убрав модификатор s в конце - js его не отрабатывает.
 

alex99999

Пользователь
Регистрация
19.02.2012
Сообщения
1
Доброго времени суток!
Скрипт не работает!
Размещал на сайте http://pravoslavie-zhulebino.ru
(сделан на Битриксе, скрипт вводил в шаблон сайта на php)

С уважением,
Алексей
 

VladSavitsky

Пользователь
Регистрация
25.08.2012
Сообщения
2
Всем привет!
Я сделал расширение для Chrome на базе вашего скрипта.
https://chrome.google.com/webstore/detail/lidmdigdjdmkncijlceoohlffbnaeomb
Использовать в чистом виде bible.js не получилось, да и не работал код сразу как нужно - поэтому пришлось его переписать.
Функционал оставлен без изменений.
В данных, которые возвращает ваш сервер была ошибка - возвращался не JSON, а JSON обернутый в скобки и с точкой с запятой. Из-за этого пришлось применять такую конструкцию:
JSON.parse(xhr.responseText.replace(/\(/g, "").replace(/\);/g, ""));

Делал из расчета, что расширение подставит ссылки в огромном документе в Google Docs, но ссылки конечно подставляются, но не сохраняются - увы!

Пишите. если будут баги - быстро я точно не смогу их исправлять, но всё же. Мои контакты:

Vlad Savitsky

+38096 530 27 12
Skype: vlad_savitsky
vlad.savitsky@gmail.com
 

leonidas

Администратор
Команда форума
Регистрация
13.02.2010
Сообщения
255
Сайт
bibleonline.ru
Вероисповедание
Баптизм
ВКонтакте
sopov
Facebook
sopov
Если запрос посылаете без callback и появляется ({...}); то это баг, надо будет его позже фиксить.
если в параметре указываете callback, то функцию можно оборачивать в eval и она отработает.
 

leonidas

Администратор
Команда форума
Регистрация
13.02.2010
Сообщения
255
Сайт
bibleonline.ru
Вероисповедание
Баптизм
ВКонтакте
sopov
Facebook
sopov
Будем молиться, что бы не хакнули :)
Пока работает, вы внесли правки, позже займёмся, но наверное точно не в ближайшие пару месяцев (сейчас пока в приоритетах, оптимизация кода)
 

OlegV

Пользователь
Регистрация
05.12.2012
Сообщения
1
Спасибо за хороший скрипт.
Сейчас скрипт снова не понимает короткое тире &ndash; в диапазоне между стихами. Не работает ни сам символ (–), ни его замена на сущность (&ndash;) Например:

Исход 19:4–6
Мф. 3:4–5

В некоторых случаях библейская ссылка в первой строчке всплывающего стиха не влазит на одну строчку, например:

1Фес. 4:13-18
 

russian-odb

Пользователь
Регистрация
14.01.2013
Сообщения
6
Есть ли возможность сделать следующее: Например 1-е Фессалоникийцам 3:12-4:10
чтобы выводилась 3 глава с 12 стиха по 4 главу 10 стиха?

Вот пример где это нужно. http://russian-odb.org/2012/11/27/больше-и-больше/
В остальном используется плагин очень хорошо.
 

leonidas

Администратор
Команда форума
Регистрация
13.02.2010
Сообщения
255
Сайт
bibleonline.ru
Вероисповедание
Баптизм
ВКонтакте
sopov
Facebook
sopov
ОК, поставим в планы.
раньше чем через месяц обновление вряд ли будет.
 

russian-odb

Пользователь
Регистрация
14.01.2013
Сообщения
6
leonidas сказал(а):
ОК, поставим в планы.
раньше чем через месяц обновление вряд ли будет.
Спасибо. И еще момент. Вот такое можно сделать? Как по ссылке. Чтобы на странице выводилось место из Ветхого Завета + Новый Завет.

http://www.biblegateway.com/passage/?search=Бытие+41-42;От+Матфея+12:1-23&version=RUSV
 

leonidas

Администратор
Команда форума
Регистрация
13.02.2010
Сообщения
255
Сайт
bibleonline.ru
Вероисповедание
Баптизм
ВКонтакте
sopov
Facebook
sopov
Теоретически, оно и так должно подсветить обе, по отдельности.
Пока в мыслях, что наоборот надо сокращать, в т.ч. с переходом по главам, надо думать до загрузку, представьте, что будет если встретим текст "Бытие 1:1-50:26"

Покажите ваш пример?
 

russian-odb

Пользователь
Регистрация
14.01.2013
Сообщения
6
leonidas сказал(а):
Теоретически, оно и так должно подсветить обе, по отдельности.
Пока в мыслях, что наоборот надо сокращать, в т.ч. с переходом по главам, надо думать до загрузку, представьте, что будет если встретим текст "Бытие 1:1-50:26"

Покажите ваш пример?
да просто на сайте у нас есть чтение Библии за год. russian-odb.org
Дается пару глав из Ветхого завета и Нового завета. Но сайте еще ок.
Вот проблема идет с тем, что мы шлем на email статьи, а там приходится по несколько раз нажимать на ссылки.

Хотелось бы так как я приводил с biblegateway. Кстати они на такой запрос http://www.biblegateway.com/passage/?search=Exodus+1-40;+Matthew+14:1-21

не выводят с 1 по 40 исход, обрубают на 35 стихе. Хотя задержки нет никакой.
 

leonidas

Администратор
Команда форума
Регистрация
13.02.2010
Сообщения
255
Сайт
bibleonline.ru
Вероисповедание
Баптизм
ВКонтакте
sopov
Facebook
sopov
Хорошо, подумаем как сделать
 

leonidas

Администратор
Команда форума
Регистрация
13.02.2010
Сообщения
255
Сайт
bibleonline.ru
Вероисповедание
Баптизм
ВКонтакте
sopov
Facebook
sopov
Запрос делается вида: http://api.bibleonline.ru/ref/get/?q=Мф. 16.16-18&marker=BibleOnlineRef-33
То есть без параметра callback.
Оборачивать в eval - не секьюрно. Если хакнут ваш сервис - все пользователи плагина могут быть уязвимы.
Вообщем починина проблема с callback, если его нет скобки подставляться не будут
 

leonidas

Администратор
Команда форума
Регистрация
13.02.2010
Сообщения
255
Сайт
bibleonline.ru
Вероисповедание
Баптизм
ВКонтакте
sopov
Facebook
sopov
Скрипт существенно был переработан, сейчас доделывается последние настройки и можно будет конфигурировать его под себя, осталось навести небольшой "марафет", протестировать можно уже сейчас http://api.bibleonline.ru/ref/bible2013.js, скрипт подключен к форуму

Изменения в новой версии:
  1. Название книг заменены на более короткие, для того, чтобы вмещался текст в заголовок
  2. Исключены из сокращений книг:
    1. Из (случались проблемы при определении в текстах вида "страница 1 из 3", превращалось в 3 главу Иезекииля )
    2. Рф (На некоторых сайтах в текстах вида "В РФ 1 источник..." определялось в 1 главу Руфь)
  3. Решена проблема с различными тире
  4. Добавлена возможность отображения различных глав (при переходе на сайт решим в будущем)
  5. Настройка используемого перевода
  6. Собственные стили
  7. Возможность отключить всплывающие окно
  8. Изменение разделителя стихов (вместо : можно будет использовать , -- данный функционал сильно не тестировался, но должен работать)
  9. Подсветка Библейских стихов, там где явно он не указан.
  10. Исключение определнных мест из подсветки Библии (там где вы этого не хотите)
Инструкция по дополнительным настройкам будут добавлены в ближайшую неделю.
Что не сделано, но будет сделано позже:
  1. При переходе по ссылкам с двумя главами показывать на сайте обе главы
    1. Нечто похожее упомянутое выше http://www.biblegateway.com/passage/?search=Бытие 41-42;От Матфея 12:1-23&version=RUSV
  2. Выбор сайта на котором будет открываться Библия (можно будет использовать не только наш сайт)
 

russian-odb

Пользователь
Регистрация
14.01.2013
Сообщения
6

leonidas

Администратор
Команда форума
Регистрация
13.02.2010
Сообщения
255
Сайт
bibleonline.ru
Вероисповедание
Баптизм
ВКонтакте
sopov
Facebook
sopov
Что не сделано, но будет сделано позже:
Пока этого нет, сделаем последовательно,
  1. сегодня/завтра/послезавтра, будет обнавлена страница где можно собрать под нужные настройки код
  2. из кода (js) надо будет немного подчистить, возможно что-то доделать (но вроде всё ОК)
  3. будет изменен поиск на сайте, с учётом пожеланий выше формат будет тот же, скорее всего будет в поиске
  4. изменено перенаправление для bble.ru
    1. На нашем сайте (для открытия нескольких книг/глав/стихов на отной странице)
    2. На другие сайты с Библией (совсем не понятно когда, но сделаем)
Сколько реально нужно показывать стихов/книг/глав? 100-200-300 на страницу? или 1-2-3-5 различных глав?
Нужно избежать момента ввода Бытие 1-50; Исход 1-40; ...
 
Вверх