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

Что-то вроде того, как руководства 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-документ на несколько маленьких, каждый из которых ссылается на предыдущий и следующий.

2 ответа2

0

Я верю, что все наоборот. Вместо разделения на несколько частей, несколько частей должны быть объединены в одну (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

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

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

Это создаст ряд файлов с xx00 , xx01 и так далее. Обычно ваш первый файл будет содержать теги, такие как <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 файлов. Обратите внимание, что, хотя скрипт доступен, он создан для моей личной среды, и я не пытался сделать его пригодным для общего использования. Таким образом, некоторые изменения могут потребоваться.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .