Информационный портал
pocket versionPOCKET  wikiWIKI  FAQFAQ  ПоискПоиск  ПользователиПользователи  ГруппыГруппы  РегистрацияРегистрация  ПрофильПрофиль  Войти и проверить личные сообщенияВойти и проверить личные сообщения  ВходВход

Метка
На страницу Пред.  1, 2
 
Найти сообщения без ответов
Начать новую тему   Ответить на тему    Список форумов www.fictionbook.org -> FB - разработка и программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение


Mike Sinkovsky
Зрелый участник форума

Зрелый участник форума

Зарегистрирован: 27.10.2005
Сообщения: 296
Откуда: Пермь

СообщениеДобавлено: Пт Фев 16, 2007 13:02    Заголовок сообщения: Ответить с цитатой

Ну ладно, с мобильными закладками согласен - на десктопе сделать тулзу для импорта не проблема, действительно.

Но закладка ведь вроде делается не на параграф, а на слово или даже символ? По крайней мере при вычитке - закладки на параграф совершенно недостаточно - слишком большие бывают. На вычищенном и невычищенном fb2 значит в разные места будут указывать? Не говоря про rtf и подобное - там и число абзацев может отличаться, в принципе. А?

Вообще если подумать, то предложение сделать тэг <bookmark/> не такое и дурацкое - при правках автоматом сместится.
Правда проблем может создать больше чем решить...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


GribUser
Автор формата FB2 - Автор библиотеки FB

Автор формата FB2 - Автор библиотеки FB

Зарегистрирован: 30.09.2004
Сообщения: 2475
Откуда: Москва

СообщениеДобавлено: Пт Фев 16, 2007 13:29    Заголовок сообщения: Ответить с цитатой

Mike Sinkovsky писал(а):
На вычищенном и невычищенном fb2 значит в разные места будут указывать? Не говоря про rtf и подобное - там и число абзацев может отличаться, в принципе. А?

Вычистка внутри абзацев работает достаточно мягко, только сдвоенные пробелы убирает. К тому же по карйней мере абзацная часть xlink-ового выражения будет отменно работать в большинстве случаев, ну а символьную можно и отбросить, если уж все плохо. Уж как минимум область в документе указать удастся, на большее в динамическом документе рассчитывать, в любом случае, не приходится.

Добавлено спустя 2 минуты 20 секунд:

Mike Sinkovsky писал(а):
Вообще если подумать, то предложение сделать тэг <bookmark/> не такое и дурацкое - при правках автоматом сместится.

Для этого есть slyle, никто не мешает вставить какой-нить именованный трижды кудрявым именем и потом его найти и удалить. ни к чему новые сущности плодить для такой малости, но при передаче между разными людьми и подсистемами все-таки ссылками проще оперировать, чем документами. Ссылки можно объединять достаточно тривиально, если они к одному документу относятся и т.д.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора


Mike Sinkovsky
Зрелый участник форума

Зрелый участник форума

Зарегистрирован: 27.10.2005
Сообщения: 296
Откуда: Пермь

СообщениеДобавлено: Пт Фев 16, 2007 15:08    Заголовок сообщения: Ответить с цитатой

Ладно, а цель то всего этого какая, вычитка?
Тогда вместе с указателем нужно хранить исходную строку и на что заменить. И как-то разбивку/склейку абзацев. Это минимум.

Насчет "объединять достаточно тривиально" - что-то не могу представить себе простого алгоритма, если речь о разных версиях документа.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение


GribUser
Автор формата FB2 - Автор библиотеки FB

Автор формата FB2 - Автор библиотеки FB

Зарегистрирован: 30.09.2004
Сообщения: 2475
Откуда: Москва

СообщениеДобавлено: Сб Фев 17, 2007 15:21    Заголовок сообщения: Ответить с цитатой

Mike Sinkovsky писал(а):
если речь о разных версиях документа.

Если версии документа разные там никаких алгоритмов быть не может в любом случае, хоть абзацы считай, хоть байты, хоть символы.

Mike Sinkovsky писал(а):
Тогда вместе с указателем нужно хранить исходную строку и на что заменить.
Я мыслил себе да, что в простейшем случае мы храним xpath-ссылку на абзац, старый текст и новый текст. Все же прочие навороты xpointer и прочее оставить на закуску. Склейка выльется в указатель на новый абзац и указание убить следующий абзац. Там покумекать нужно о возможных операциях - удаление, вставка, замена, но, вроде, просто все получается. И все это хранить в xml, соответственно. Типа

Код:
<fb2-notes id="document-id" version="1.02" coment="Fixes for 'The book title'">
  <oparation type="replace" pointer="/section[4]/section[3]/p[18]">
    <p>New <b>content</b></p>
    <p>Extended</p>
  </oparation>
  <oparation type="replace" pointer="/section[4]/section[3]/p[@id='para_to_remove']"/>
  <oparation type="markup" pointer="/section[4]/section[3]/p[189]"/>
</fb2-notes>

Тут есть еще, об чем подумать, но принцип, думаю, ясен. Такие выражения можно легко разбирать и с DOM, и без DOM, формировать их я так же большой проблемы не вижу, читаемо и лаконично. Вот как-то в таком роде я мыслю.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора


Mike Sinkovsky
Зрелый участник форума

Зрелый участник форума

Зарегистрирован: 27.10.2005
Сообщения: 296
Откуда: Пермь

СообщениеДобавлено: Сб Фев 17, 2007 16:18    Заголовок сообщения: Ответить с цитатой

GribUser писал(а):
Если версии документа разные там никаких алгоритмов быть не может в любом случае, хоть абзацы считай, хоть байты, хоть символы.

Так они ведь разные по определению, у читателя вычищенный, а у владельца исходный вариант?

А насчет быть не может - поиск по сигнатурам спасет в 99% случаев. Типа того как здесь же описано в разделе "испр@влено".
Можно наверно как-то формализовать то что там описано в виде xml.

Вот допустим читаю книгу, долго и обстоятельно, ставлю пометки. Потом отправляю ответственному за книгу или админам, или кому там оно интересно. А в библиотеке уже новая версия лежит, значит мои правки не пригодятся. Хотя я мог заметить что-то что другие не заметили.

Нужен наверно все-таки какой-то механизм разрешения таких ситуаций, типа как в CVS или что там сейчас модно из систем контроля версий, не знаю.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.fictionbook.org -> FB - разработка и программирование Часовой пояс: GMT + 3
На страницу Пред.  1, 2
Страница 2 из 2

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


Powered by phpBB © 2001, 2005 phpBB Group