Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Mike Sinkovsky Зрелый участник форума
Зарегистрирован: 27.10.2005 Сообщения: 296 Откуда: Пермь
|
Добавлено: Пт Фев 16, 2007 13:02 Заголовок сообщения: |
|
|
Ну ладно, с мобильными закладками согласен - на десктопе сделать тулзу для импорта не проблема, действительно.
Но закладка ведь вроде делается не на параграф, а на слово или даже символ? По крайней мере при вычитке - закладки на параграф совершенно недостаточно - слишком большие бывают. На вычищенном и невычищенном fb2 значит в разные места будут указывать? Не говоря про rtf и подобное - там и число абзацев может отличаться, в принципе. А?
Вообще если подумать, то предложение сделать тэг <bookmark/> не такое и дурацкое - при правках автоматом сместится.
Правда проблем может создать больше чем решить... |
|
Вернуться к началу |
|
|
GribUser Автор формата FB2 - Автор библиотеки FB
Зарегистрирован: 30.09.2004 Сообщения: 2475 Откуда: Москва
|
Добавлено: Пт Фев 16, 2007 13:29 Заголовок сообщения: |
|
|
Mike Sinkovsky писал(а): | На вычищенном и невычищенном fb2 значит в разные места будут указывать? Не говоря про rtf и подобное - там и число абзацев может отличаться, в принципе. А? |
Вычистка внутри абзацев работает достаточно мягко, только сдвоенные пробелы убирает. К тому же по карйней мере абзацная часть xlink-ового выражения будет отменно работать в большинстве случаев, ну а символьную можно и отбросить, если уж все плохо. Уж как минимум область в документе указать удастся, на большее в динамическом документе рассчитывать, в любом случае, не приходится.
Добавлено спустя 2 минуты 20 секунд:
Mike Sinkovsky писал(а): | Вообще если подумать, то предложение сделать тэг <bookmark/> не такое и дурацкое - при правках автоматом сместится. |
Для этого есть slyle, никто не мешает вставить какой-нить именованный трижды кудрявым именем и потом его найти и удалить. ни к чему новые сущности плодить для такой малости, но при передаче между разными людьми и подсистемами все-таки ссылками проще оперировать, чем документами. Ссылки можно объединять достаточно тривиально, если они к одному документу относятся и т.д. |
|
Вернуться к началу |
|
|
Mike Sinkovsky Зрелый участник форума
Зарегистрирован: 27.10.2005 Сообщения: 296 Откуда: Пермь
|
Добавлено: Пт Фев 16, 2007 15:08 Заголовок сообщения: |
|
|
Ладно, а цель то всего этого какая, вычитка?
Тогда вместе с указателем нужно хранить исходную строку и на что заменить. И как-то разбивку/склейку абзацев. Это минимум.
Насчет "объединять достаточно тривиально" - что-то не могу представить себе простого алгоритма, если речь о разных версиях документа. |
|
Вернуться к началу |
|
|
GribUser Автор формата 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, формировать их я так же большой проблемы не вижу, читаемо и лаконично. Вот как-то в таком роде я мыслю. |
|
Вернуться к началу |
|
|
Mike Sinkovsky Зрелый участник форума
Зарегистрирован: 27.10.2005 Сообщения: 296 Откуда: Пермь
|
Добавлено: Сб Фев 17, 2007 16:18 Заголовок сообщения: |
|
|
GribUser писал(а): | Если версии документа разные там никаких алгоритмов быть не может в любом случае, хоть абзацы считай, хоть байты, хоть символы. |
Так они ведь разные по определению, у читателя вычищенный, а у владельца исходный вариант?
А насчет быть не может - поиск по сигнатурам спасет в 99% случаев. Типа того как здесь же описано в разделе "испр@влено".
Можно наверно как-то формализовать то что там описано в виде xml.
Вот допустим читаю книгу, долго и обстоятельно, ставлю пометки. Потом отправляю ответственному за книгу или админам, или кому там оно интересно. А в библиотеке уже новая версия лежит, значит мои правки не пригодятся. Хотя я мог заметить что-то что другие не заметили.
Нужен наверно все-таки какой-то механизм разрешения таких ситуаций, типа как в CVS или что там сейчас модно из систем контроля версий, не знаю. |
|
Вернуться к началу |
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
Powered by phpBB © 2001, 2005 phpBB Group
|