Как преобразовать файл HMTL с папкой содержимого в автономный файл HTML

Как преобразовать файл HTML с папкой содержимого в автономный файл HTML, который можно просматривать из любого места с его изображениями и т. д.

Как это можно сделать, чтобы он также редактировался и оставался автономным после редактирования.

В основном мне нужно создать документацию на основе файлов HTML, которую можно просматривать из любого места. К сожалению, это ДОЛЖЕН быть HTML, иначе я бы сделал PDF-файлы

Спасибо


person AdilZ    schedule 20.01.2017    source источник
comment
Пожалуйста, добавьте больше информации, я не совсем уверен, в чем вопрос. Изображения, примеры, код приветствуются. HTML может просматриваться в любом браузере. Итак, что именно вы хотите сделать? Может быть, вы имеете в виду встроенный CSS? codecademy.com/articles/html-inline-styles   -  person Daniel Springer    schedule 11.09.2017


Ответы (4)


Вы можете использовать pandoc, у него есть возможность создавать автономные HTML-файлы https://pandoc.org/MANUAL.html#option--self-contained.

Если вы начинаете с html, это команда.

pandoc in.html --self-contained -o out.html

Этот инструмент может делать намного больше вещей, например, вы также можете сгенерировать html из файлов уценки или вместо этого сгенерировать pdf.

person Gijs    schedule 02.09.2019
comment
этот метод не сохраняет стили - person Antoine Gallix; 20.03.2020
comment
Как указывает @AntoineGallix, pandoc создает автономный html, в то же время молча игнорируя все стили CSS. Другими словами, совершенно бесполезен, за исключением некоторых редких крайних случаев. - person wh81752; 04.05.2021
comment
Однако, если вам повезло и у вас есть только один CSS, выполняющий все стили, вы можете продолжить с pandoc in.html -c style.css --self-contained -o out.html, который в конечном итоге сделает то, что все ожидают. - person wh81752; 04.05.2021
comment
В любом другом случае вы также можете просто объединить все файлы css в один, верно? Разве не так работает css? - person Gijs; 05.05.2021

Самый прямой способ — преобразовать все URL-адреса ресурсов в data: urls< /а>. (Существуют доступные онлайн-обложки, которые берут предоставленный ресурс и создают из него URL-адрес data:.)

Возможно, более простой способ — преобразовать URL-адреса изображений и шрифтов в URL-адреса data:, вместо этого встраивая скрипты и css.


Редактировать: Возможно, интересно: inliner, утилита Node для подобных действий. вещи. «Превращает вашу веб-страницу в один файл HTML со всем встроенным». Также выполняет ряд минимизирующих оптимизаций.

person Ouroborus    schedule 20.01.2017

Я не знаю точно, что вы себе представляете, но HTML никогда не задумывался как полностью автономный. В конце концов, могут быть некоторые лазейки, которые позволяют это сделать, но, насколько мне известно, нет готовых инструментов, которые делают это «преобразование». Для этого потребуются следующие вещи:

  • Преобразование всех связанных таблиц стилей и скриптов во встроенные таблицы стилей и скрипты. Это означает, что всякий раз, когда есть <script src="http://url.to/foo.js"></script>, вам нужно скачать foo.js и включить его как таковой: <script type="text/javascript"> [this is the content of foo.js] </script>. Нечто подобное относится к CSS и другим связанным исходным файлам.
  • Загрузка всех связанных медиафайлов (я полагаю, в основном изображений) и преобразование их в большие двоичные объекты (услуга, которая предоставляет вам большой двоичный объект base64, который вы можете использовать в HTML-файле, — https://www.base64-image.de)./). Это означает замену <img src="http://url.to/image.jpg" /> на <img src="data:image/png;base64,[converted image data goes here] />. Так что здесь будет задействован некоторый ручной труд, но, вероятно, это можно сделать (почти) полностью.

Возможно, есть способ выполнить то, что вы хотите сделать другим способом, но какова именно причина вашего желания этого?

person Geert van Dijk    schedule 20.01.2017
comment
я получил доступ к документации, которая представляет собой файл html с текстом и изображениями ... и эти файлы, которые мы могли бы просто отправить друг другу по электронной почте и все еще работать .... если бы это был документ от предыдущего поставщика программного обеспечения, но он все еще работает. ЭТО то, на чем я основываюсь. - person AdilZ; 21.01.2017
comment
Я понимаю. Тогда то, что я предлагаю выше, вероятно, работает лучше всего, хотя это немного работы. Вы также можете преобразовать его в PDF, а затем в документ Word (или напрямую в Word, хотя я не знаю конвертера, который делает именно это), но тогда это будет не HTML (хотя вы можете поместить его в Google Документы тогда или что-то в этом роде). - person Geert van Dijk; 22.01.2017

Есть еще один вариант: написать документацию в разметке, а затем использовать такой инструмент, как "Marked 2" (http://marked2app.com) для преобразования в автономный HTML. Работает шустро. Кроме того, вы можете вернуться и отредактировать разметку в любое время, когда вам нужно обновить документацию, а затем просто повторно экспортировать свой html-файл.

person dvinmn    schedule 03.05.2018