Открытый христианский форум JesusChrist.ru

Библия | Книги | Словари | Софт | Аудио, BQT, Евангелизм, JCQ, Молитва

Добро пожаловать на Открытый христианский форум JesusChrist.ru. Для того чтобы писать в форуме, Вам необходимо зарегистрироваться и войти на форум через ссылку для входа.

Общие разделы
   >> "Цитата из Библии"
Просмотров: 4463 Просмотреть ВСЕ ветвиСледующая ветвь*Отображение Ветвями

В теме участвуют: Klangtao (3) VladimirY (3) AlekId (1) trudnik (1) Тимофей (1)

Тимофей
Христианин
23/10/09 11:20
timh.ru

# 724348

Нужен совет по "Цитате": названия глав в книгах Help admins  

Дорогие составители модулей для "Цитаты", спасибо вам огромное за модули - ими живет программа.

Сейчас мне очень нужен ваш совет - как сделать - может быть, изменить формат модулей или формат bibleqt.ini - чтобы в обычных книгах можно было иметь не только номера глав, но и их названия. Для Библии это нормально, что у главы нет названия, но не для обычных книг, которых становится все больше.

Есть два варианта:

а) специальными тэгами внутри книг, или же считать все, что от ChapterSign до первого VerseSign нужной информацией для вывода в общий индекс

б) специальным блоком в bibleqt.ini, чтобы программа при загрузке модулей получила сразу и названия глав

Второе проще для программирование, а первое не требует больших изменений в модулях.

в) более сложный вариант: ввести набор XML-тэгов для более серьезного кодирования модулей. Можно за основу взять какой-то стандарт.

Klangtao
жидобандеровец
23/10/09 14:05

# 724404

Re: Нужен совет по "Цитате": названия глав в книгах нов [re: Тимофей, #724348] Help admins  

Сейчас мне очень нужен ваш совет - как сделать - может быть, изменить формат
Категорически против изменения формата, перечёркивающего совместимость со старыми модулями.

Двумя руками за его расширение. Мои старые мысли о том, в каком направлении его двигать, см. здесь.

формат модулей или формат bibleqt.ini
"Формат модулей" (файлов-книг) хорош своей гибкостью. На него лучше не накладывать дополнительных ограничений.
В bibleqt.ini можно вводить дополнительные параметры, но в данном случае это не лучшая идея (с точки зрения составителей модулей :)) . То есть вариант
б) специальным блоком в bibleqt.ini, чтобы программа при загрузке модулей получила сразу и названия главускорит формирование и загрузку ссылок, но усложнит создание новых модулей.

а) специальными тэгами внутри книг
На практике для разделителей глав в небиблейских модулях, как правило, используются специальные метки. Тэги <Hx> для этой цели, в отличие от Библии, непригодны, так как их содержимое в таком случае оказывается до первого VerseSign. Ну или приходится вручную проставлять VerseSign после открывающего тэга:

<h2>
<p>Название главы</h2>
<!-- где ChapterSign = <h2 ; VerseSign = <p -->


При этом название главы в "Цитате" утратит заголовочное оформление. Естественно, проще пользоваться специальными ChapterSign:

<chapter />
<p><h2>Название главы</h2>
<!-- где ChapterSign = <chapter ; VerseSign = <p -->


Я в последних модулях указываю именно ChapterSign = <chapter и проставляю его в тексте. Предлагаю кодифицировать этот тэг для "модулей с названиями глав" и определить для него атрибут name.

<chapter id=5 name="Название..." />
<p><h2>5. Название главы</h2>


считать все, что от ChapterSign до первого VerseSign нужной информацией для вывода в общий индекс

Не до первого VerseSign, а до закрывающего </chapter>, аще таковой обрящется

<chapter id=5><h2>Название главы<h2></chapter>
Этот текст не появится в Цитате, но будет виден в браузере.
<p>А главу начнём сразу с текста, потому что её название автоматически добавится к называнию книги вверху страницы.


Только ради всё той же обратной совместимости в bibleqt.ini при этом следуют указать

ChapterNames = Y // по умолчанию - N

Тогда в старых модулях, размеченных таким образом -

<chapter id=5>Текст, не предназначенный для просмотра в Цитате</chapter>
<p><h2>Название главы<h2>


- заголовки (на самом деле - уже текст главы) будут отображаться корректно.

Атрибуту name надо определить высший приоритет - то есть для конструкции вроде -

<chapter name="Название главы"><h2>Название для браузера</h2></chapter>

- должно считываться "Название главы", а не "Название для браузера". Поэтому для модулей, где все названия определены в name, не надо будет указывать "ChapterNames = Y"

в) более сложный вариант: ввести набор XML-тэгов для более серьезного кодирования модулей.
Для простого считывания названий глав в этом, ИМХО, нет необходимости (а тэг chapter де-факто уже введён в модули, хотя пока не в программу). Для других вещей - можно и нужно, но исключительно как расширение существующего стандарта, а не его изменение. Поэтому речь может идти не о XML (это всё-таки другой стандарт), а о "чём-то SGML-подобном". Для семантической разметки, о которой я писал в блоге, XML как таковой непригоден, потому что с необходимостью предполагаются конструкции <a>...<b>...</a>...</b>. Ну и, на мой взгляд, модули должны оставаться человекоредактируемыми и софтонезависимыми, то бишь легко правиться в Блокноте.

VladimirY
евангельские христиане
24/10/09 13:22

# 724626

Re: Нужен совет по "Цитате": названия глав в книгах нов [re: Klangtao, #724404] Help admins  

Категорически против изменения формата, перечёркивающего совместимость со старыми модулями...."Формат модулей" (файлов-книг) хорош своей гибкостью. На него лучше не накладывать дополнительных ограничений.

Я бы сказал иначе: текущий формат модулей цитаты тормозит её развитие. И в первую очередь это относится именно к книгам, где структура может различаться от книги к книге. И уже стандартный набор глава-текст не всегда удобен. Также не удобно формирование оглавления по этой же причине. А совместимость можно оставить, пусть в программа понимает оба формата. Новый формат же лучше делать на XML, мне кажется это лучшее решение. К тому же было уже несколько предложений формата на базе XML.
ускорит формирование и загрузку ссылок, но усложнит создание новых модулей.

Это неправда. Просто нет ни одного нормально инструмента для создания модулей, который бы сам анализировал исходный файл, и, учитывая некоторые настройки пользователя, сам формировал бы нужный модуль. Но не в конечный файл, а в окне в виде проекта в который бы можно было внести поправки, дополнения.

Klangtao
жидобандеровец
24/10/09 13:43

# 724631

Re: Нужен совет по "Цитате": названия глав в книгах нов [re: VladimirY, #724626] Help admins  

А совместимость можно оставить, пусть в программа понимает оба формата
Это уже "два в одном" и необходимость писать новый движок. Вы этим займётесь?

К тому же было уже несколько предложений формата на базе XML.
В таком случае проще обучить её читать формат FB2. И нет необходимости в специальных модулях (Либрусек - наше всё), и иерархия разделов может иметь более двух уровней, и все специфически "цитатные" функции легко задействовать.

Это неправда. Просто нет ни одного нормально инструмента для создания модулей
Зависимость от инструмента - это тоже усложнение :) В нём есть реальная необходимость?

А создание инструмента - дело не шибко хитрое (сравнимое с обучением "Цитаты" новому формату). Была бы с форматом (семейством форматов) определённость...

VladimirY
евангельские христиане
24/10/09 15:25

# 724643

Re: Нужен совет по "Цитате": названия глав в книгах нов [re: Klangtao, #724631] Help admins  

Это уже "два в одном" и необходимость писать новый движок. Вы этим займётесь?

"Два в одном" - этим страдают все более менее серьёзные программы. Программы развиваются, развиваются и их форматы. Однажды формат становится препятствие к развитию, и поэтому существует переходный момент когда в программе могут существовать два совершенно отличных формата хранения данных.

"писать новый движок" - не правда. В любом случае есть процедура. которая считывает текущий формат. Нужно лишь создать в этой процедуре ответвление для нового формата. Я хоть и программист в другой сфере (1С) но это прекрассно понимаю. Наша фирма является разработчиком одной из самых лучших программ для ювелирной торговли и производства. И среди наших клиентов есть огромное количество форматов для электронных накладных. Чтобы включить поддержку нового формата ни разу не приходилось переписывать в исходном коде больше чем добавив одну ветку "ИначеЕсли ... Тогда" + новая функция для чтения нового формата во внутреннее представление.

"Вы займетесь этим?" - очень бы хотел. Но пока уверенно владею только языком 1С. Есть неглубокие познания C#. А вот с Delphi даже связываться не хочу - это мертвая платформа у которой похоже нет будущего. Я бы рассматривал только из Java, Python, C++ и C#. Остановился на C# так как нравится наличие нормальных средств разработки для этого языка. Хотя Java более кроссплатформенный и этого его очень сильная сторона.

В таком случае проще обучить её читать формат FB2.
А почему бы и нет? Формат открытый, если чего и не хватает можно расширить.

А создание инструмента - дело не шибко хитрое (сравнимое с обучением "Цитаты" новому формату). Была бы с форматом (семейством форматов) определённость...
Если оно такое "не шибко хитрое", то приведите хотя бы один более менее вменяемый инструмент? В свое время часто создавал себе java-книги с помощью вот этого. Даешь файл, вводишь параметры обработки и получаешь нормальную книгу с оглавлением. Если что не так, можно уточнить параметры и повторить. Можно ручками внести поправки. В тоже время, если чего не успел, то сохранил проект и продолжил с ним работу позже. А всякие там BQiniM и BqMG - грубая работа топором и при этом сделанная наспех.

В нём есть реальная необходимость?
Если говорить о переводах Библии, то пока нет. Если говорить о книгах - то очень даже. Людям чаще всего приходится вручную проводить всю работу в "блокнотике", чтобы хоть как-то привести файл к нужному виду. А ведь хочется иногда автоматически распознать и вставить ссылки на места Писания, автоматически убрать из исходного файла всё лишнее и привести его к нужному виду. А, если перейти на XML, то это станет просто необходимостью.

Klangtao
жидобандеровец
24/10/09 16:53

# 724657

Re: Нужен совет по "Цитате": названия глав в книгах нов [re: VladimirY, #724643] Help admins  

Чтобы включить поддержку нового формата ни разу не приходилось переписывать в исходном коде больше чем добавив одну ветку "ИначеЕсли ... Тогда" + новая функция для чтения нового формата во внутреннее представление.Разумеется. Но это тоже надо сесть и сделать.

А почему бы и нет?А кто говорит, что нет? Из всех альтернативных идей это самая перспективная. Тем более, что существует маса готовой христианской литературы в этом формате.

если чего и не хватает можно расширитьНе хватает разве что интерпретируемых "Цитатой" гиперссылок. Но их вообще стоит продумать - то, что есть в Цитате на сегодня, это слишком убого.

Если оно такое "не шибко хитрое", то приведите хотя бы один более менее вменяемый инструмент?Легко. Он у меня процентов на 70 готов. Упомянутый Вами BQiniM - это всего лишь выгрыз из него, завершающий этап обработки (к тому же ранняя и глючная версия). А так имеется -

1. Парсер, кушающий .odt, .sxw, .docx (unzip и берётся нужный файл), *.doc (предварительно пересохранняя в html с помощью вордовских макросов), .html и .fb2, чистящий теги до нужного "Цитате" минимума и считывающий всю доступную в исходных файлах метаинформацию. И всё по простой команде "Файл > Открыть".

2. Работа с файлами проекта - слияние и разбиение по указанным меткам, автоматическая простановка ChapterSigns по указанным критерием, дальнейшая подготовка с текста с помощью пакетного поиска и замены с использованием регэкспов (включая автоматическую простановку гиперссылок на места Писания - правда, ещё не так безотказно, как хотелось бы).

3. Собственно компиляция проекта в модуль для Цитаты (то, что делает BQiniM) или в CHM (в качестве бонуса. Кстати, с поддержкой многих уровней вложенности и описанием структуры в Вашем любимом XML).

Только для качественно свёрстанного текста на этапе 2 всё равно надо кое-что ручками править - а для этого понимать и чувствовать, что ты делаешь. Или получать на выходе халтуру ("проклят, кто дело Господне делает небрежно", Иер.48:10). Поэтому я считаю что доллжен быть относительно высокий порог вхождения. Иллюзия, что полноценный модуль можно получить простым нажатием кнопки не только полностью лжива, но и вредна.

В свое время часто создавал себе java-книги с помощью вот этого. Даешь файл, вводишь параметры обработки и получаешь нормальную книгу с оглавлениемПоскольку я тоже с помощью этого их создавал, то знаю, сколько для этого надо править и вычитывать текст. Проставлять структуру файла (оглавление). Можно, конечно, сделать всё тяп-ляп. Но нужно ли?

Людям чаще всего приходится вручную проводить всю работу в "блокнотике", чтобы хоть как-то привести файл к нужному виду.Этап 2 - это тот же "блокнотик", только со специнструментами. От него никуда не уйти. Впрочем, для любителей моя програмка предоставляет и WYSIWYG-режим на основе DHTMLED (плюс незаметная в нём для юзера автоматическая вёрстка исходного кода - простановка EOL'ов перед всеми ChapterSign и VerseSign, замена <strong> на <b> и пр.), не вопрос.

Всё это, собственно, и делалось в этой среде. Может быть, Бог даст, я её до ума доведу ещё раньше официального релиза Цитаты-6. Но вот навязывать её потенциальным авторам модулей считаю неправильным. Всё опять же упирается в этап 2. Существует масса "продвинутых блокнотов", позволяющих осуществлять большинство из тех функций, о которых Вы говорите. И если человек привык работать в каком-то из них, надо предоставить ему такую возможность, а не заставлять осваивать новый, пусть и специализированный, софт.

грубая работа топоромНынешний формат тем и хорош, что требует работы топором, а не скальпелем. И очень бы не хотелось лишать его этого достоинства.

А этапы 1 и 3 - "топор" по опредлению. Человек же, способный обращаться со "скальпелем", не испытывает проблемы в софте для осуществления таких стандартных и /или формализуемых операций как вёрстка и чистка текста.

А, если перейти на XML, то это станет просто необходимостью.Вот именно. Логика "Майкрософта"... Сперва нужно обосновать необходимость перехода на XML.

Хотя Java более кроссплатформенный и этого его очень сильная сторона.Угу, за счёт скорости работы.

VladimirY
евангельские христиане
24/10/09 18:00

# 724666

Re: Нужен совет по "Цитате": названия глав в книгах нов [re: Klangtao, #724657] Help admins  

Легко. Он у меня процентов на 70 готов

Во-первых, божьих благословений за ваш труд!!!
А во-вторых, жаль что он все-таки ещё не готов. Я просил привести в пример готовые продукты.
Этап 2 - это тот же "блокнотик", только со специнструментами.

Я полностью согласен - без ручной обработки никуда не деться. Но намного лучше, когда часть рутинной работы обработана автоматически.
Сперва нужно обосновать необходимость перехода на XML.

Я считаю, что лучшим вариантом хранения модулей пользователя в программе была бы SQL-база (к примеру SQLite). Это бы намного ускорило некоторые функции, а также позволило бы решить некоторые старые проблемы: параллельный просмотр переводов, ссылки в Цитате и т.п. А XML-формат я считаю лучшим форматом для транспортировки данных.
Хотя Java более кроссплатформенный и этого его очень сильная сторона.

Угу, за счёт скорости работы.

У каждой платформы есть свои плюсы и минусы. Но, в определенных случаях эти минусы слабо заметны. Не думаю, что на программе аналогичной Цитате скорость работы Java, была бы столь ощутима. Да, и за последние несколько лет это проблема стала не столь актуальной в последних релизах. Если бы в тот момент, когда я делал свой выбор, существовал NetBeans в своем текущем виде, я бы остановился на Java. Работает же на Java OpenOffice, Eclipse, да и сам NetBeans? А уж Цитата бы и тем более работала.

AlekId
15/11/09 22:20

# 729096

Re: Нужен совет по "Цитате": названия глав в книгах нов [re: ВСЕМ, #724348] Help admins  

Ни XML, ни движок базы данных не увеличит скорости работы программы и не упростит разработку. Ровно наоборот. Сравните, например, как быстра 6-я версия Цитаты по сравнению с eSword 8-9, где ранее использовался Jet, а теперь -SQLIte. Все эти крутые технологии только увеличат количество зависимостей (что бы парсить XML, к примеру, нужен msxml - а их уже сейчас 6 версий, или сторонний движок) или раздуют дистрибутив.
И насчет платформы разработки: Ц. высокооптимальна по производительности и не так уж требовательна к ресурсам именно потому, что это native Windows приложение. Добавьте к этому полный доступ ко всем функциям и интерфейсам ОС. Что же до переносимости, то я скорее поверю, что Java или .Net приложения перестанут работать на компьютерах через 20 лет, чем в то, что на будущих платформах не будет эмуляции x86-Win.

По поводу формата модулей, то конечно следует расширять существующий формат, с полной обратной совместимостью. Это сделать несложно, и можно добавить любые мыслимые функции, любые. И без особых сложностей. Труднее сделать удобный интерфейс (древовидный, но при этом простой).

trudnik
07/12/19 12:44

# 1107769

Re: Нужен совет по "Цитате": названия глав в книгах нов [re: Тимофей, #724348] Help admins  

б) специальным блоком в bibleqt.ini, чтобы программа при загрузке модулей получила сразу и названия глав
Второе проще для программирование, а первое не требует больших изменений в модулях.

Т.к. в актуальной версии (BibleQuote 6.5), появилась функция "Библиотека", которая дает возможность обозреть категории внутренних модулей, с учетом их "описей" в каждом файле настройки bibleqt.ini, то и добавлять (дописать в конец этого файла bibleqt.ini) можно предоставить текущему пользователю заполнить соответствию глав их названия (через ту же библиотеку).
При наличии соответствия нумерации глав их названию, (для обычных книг) их можно выводить в заголовке окна чтения.(что не сложно для программы). Дублировать также возможно и всплывающей подсказкой при наведении на главу книги в левой панели.
Регистрация в библиотеке категорий и заголовков и прочей "читабельной" издательской информации модуля осуществить несложно, заполнив форму состоящей из нумерации глав (и не только).

Хотелось бы в новом поколении BibleQuote 6.5 увидеть реализацию исполнения процессов интеграции с ОС через интерфейс командной строки (Command Line) и другими приложениями Windows. Для развитии темы нужен новая тема на форуме, а т. к. я здесь новичок, то мнение опытных приветствуется.

Лично мне интерфейс командной строки необходим для автоматизации системы учета собственных библиотек и избавления рутинных действий, усугубляя, при этом, временные издержки...Если сейчас интерфейс актуален, то будет и в последующем. В новом поколении реализовать это архитектурно возможно, не нарушая принципа обратной совместимости.

В "библиотечном" режиме удобнее всего систематизировать учетную политику. А через интеграцию внешних (модулей) можно использовать и другие механизмы экспорта - импорта - конвертации формата не усложняя функционал самой программы (BibleQuote).
P.s.
У текущей версии (дистрибутив) отсутствует файл помощи. (C:\Program Files\BibleQuote 6.5\Help\indexrus.htm).



ОТВЕТИТЬ ВСЕМ   Просмотреть ВСЕ ветвиСледующая ветвь*Отображение Ветвями
Перейти на