Создание одной HTML-страницы на главу, как в руководствах по Gnu

338
smilingbuddha

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

Что-то вроде того, как руководства Gnu делают здесь: https://www.gnu.org/software/libc/manual/

Вот полное руководство библиотеки Gnu c на одной странице: https://www.gnu.org/software/libc/manual/html_mono/libc.html

Здесь это в «сериализованной» форме, начиная с введения. https://www.gnu.org/software/libc/manual/html_node/Introduction.html#Introduction

Поскольку весь мой документ будет находиться внутри одного документа HTML (экспортированного из режима Org в Emacs, но это, вероятно, незначительная деталь), как я могу разделить
монолитный документ HTML на несколько маленьких, каждый из которых ссылается на предыдущий и следующий.

0
Я тоже не смог найти такое приложение. Вместо этого я написал скрипт, который объединяет html-части с таким веб-сайтом. Если вам интересно, я разместил его на github https://github.com/ljmdullaart/website. Ljm Dullaart 6 лет назад 0

2 ответа на вопрос

0
afifio

Я верю, что все наоборот. Вместо разделения на несколько частей, несколько частей должны быть объединены в одну (HTML / что угодно).

Хороший способ - найти общий тег и начать с него. например

<h2 id="chapter">Chapter 8</h2>Bla bla bla 

grep id = "chapter" doc.html или grep h2 doc.html раскроет главу, и вы можете начать с нее. Затем, когда вам нужен один HTML, просто объедините его. В предыдущей и следующей части вам понадобятся сценарии для создания ссылок на заголовки. шаги:

  1. Разделите свои документы на главы и разделы
  2. Создать стандартный скрипт верхнего и нижнего колонтитула
  3. Генерация одностраничных версий для каждой главы и разделов

Другой путь ? https://www.naturaldocs.org/

0
Ljm Dullaart

Способ разбить файл:

csplit -k total.html '/<h[12]/' 

Это создаст несколько файлов с именем xx00, xx01и так далее. Как правило, Yout первого файл будет содержать тег, как <html>, header>, <body>и любит. Остальные файлы, как правило, будут содержать ваши различные главы и / или разделы. Если вы хотите разделить дальше, используйте в <h[123]качестве шаблона и / или используйте, [Hh]если ваши теги могут быть прописными.

Если вы используете мой сценарий website02с https://github.com/ljmdullaart/website, вам нужно будет переименовать файл во что-нибудь с .htmlконца.

typeset -i i=0 for f in xx* ; do i=$i+1 mv $f $i_ch_$i.html done 

сделает это для менее чем 10 файлов. Обратите внимание, что, хотя скрипт доступен, он создан для моей личной среды, и я не пытался сделать его пригодным для общего использования. Таким образом, некоторые изменения могут потребоваться.

Похожие вопросы