Кроссплатформенный способ создания веб-архивов Safari - PullRequest
9 голосов
/ 20 октября 2008

Я искал вокруг и не нашел никаких ссылок на инструменты, которые могут создать формат веб-архива Safari.

У кого-нибудь есть указатели на код для создания этого формата или хотя бы справочную документацию по формату?

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

Ответы [ 5 ]

5 голосов
/ 27 октября 2008

Чтобы расширить то, что сказал Бен: CFLite (кроссплатформенное подмножество с открытым исходным кодом Core Foundation) поставляется с анализатором plist. Если вы можете ссылаться на это, то будет очень просто работать с .webarchive файлами, которые являются просто списками свойств, которые объединяют все файлы (HTML, CSS и т. Д.) В один.

Есть и другие библиотеки, такие как Mac-PropertyList на CPAN для Perl.

4 голосов
/ 20 октября 2008

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

3 голосов
/ 26 марта 2012

Пробовал textutil, но он использует только текстовую систему Какао и поэтому не работает на css, js и т. Д.

Есть хороший проект GitHub: https://github.com/takebayashi/STWebArchiver

Он использует Webkit для записи файлов .webarchive. Нужна некоторая настройка для ваших нужд ...

1 голос
/ 26 июля 2010

Это не кросс-платформенный, а на Mac

textutil -convert webarchive whatever.html

делает работу. Не уверен, что вы можете легко включить изображения и т. Д.

1 голос
/ 06 апреля 2009

Создание веб-архива, к счастью, является частью Webkit, поэтому для работы с ними на Mac вы можете использовать следующее:

http://developer.apple.com/DOCUMENTATION/Cocoa/Reference/WebKit/Classes/WebArchive_Class/Reference/Reference.html

Или используйте этот исходный код, чтобы понять используемый формат:

http://trac.webkit.org/browser/trunk/WebKit/mac/WebView/WebArchive.mm

...