Я разработал веб-приложение для чтения электронных папок, я хочу добавить к нему функцию комментирования, такую как функция adobe PDF reader commenting, чтобы комментарии сохранялись в пределах e pub, если я открою этот e pub в другом электронном читателе, я мог бы видеть комментарии.Как создать аннотацию epub с возможностью сохранения в Epub
ответ
Изменение XHTML
Первый appoach является переписать XHTML, чтобы включить комментарий, и восстановить EPUB. Вероятно, имеет смысл использовать элемент <aside>
для заметок, а также атрибут epub:type='footnote'
. Если вы затем добавите ссылку на страницу где-нибудь (например, вокруг текста, к которому относится комментарий), с атрибутом epub:type='noteref'
, тогда iBooks подойдет правильно. См. http://www.pigsgourdsandwikis.com/2012/05/creating-pop-up-footnotes-in-epub-3-and.html.
<p>This sentence contains a
<a href="#note" epub:type="noteref">commented phrase</a>.
</p>
<aside id="note" epub:type="footnote">This is the comment.</aside>
Однако стандартная разметка отсутствует, что будет работать во всех читателях электронных книг. Лучшее, что вы можете сделать, это добавить скрипт, который выдает соответствующую заметку, но это, очевидно, будет работать только в сценариях EPUB3, которые читаются на читателе, который запускает скрипты.
Использование УФИ в отдельном файле
Возможной альтернативой, которая избавляет от необходимости переписывать файлы XHTML, чтобы держать комментарии в отдельном файле, и связать их с соответствующим текстом, используя Canonical идентификаторы фрагмента (http://www.idpf.org/epub/linking/cfi/). Но, конечно, вам все равно понадобится сценарий, чтобы все работало. Файл может выглядеть следующим образом:
<comments>
<comment>
<cfi>/6/4[chap01ref]!/4[body01]/10[para05]/3:10</cfi>
<text>This is the comment.</text>
</comment>
</comments>
Вы можете найти реализацию прототипа УФИ на https://code.google.com/p/epub-revision/source/browse/trunk/src/samples/cfi/epubcfi.js, но вам все равно придется писать клей вокруг него.
Спасибо @torazaburo –
может дать мне пример кода, чтобы я мог продолжить, и вы также проголосуете мой вопрос вверх Advancely Спасибо –
Нет, я не могу (дайте вам образец кода). Разве это не то, что вам платят за развитие? –