Erstellen einer HTML-Seite pro Kapitel wie in Gnu-Handbüchern

359
smilingbuddha

Ich schreibe ein Online-Dokument als Buch auf meiner Website. Anstatt alles auf einer Seite zu haben, hätte ich gerne ein Kapitel pro Webseite mit einem Link, der auf das vorige und das nächste Kapitel am oberen / unteren Seitenrand zeigt.

So ähnlich wie die Gnu-Handbücher hier: https://www.gnu.org/software/libc/manual/

Hier ist das gesamte Handbuch der Gnu c-Bibliothek auf einer Seite: https://www.gnu.org/software/libc/manual/html_mono/libc.html

Hier ist es in einer "serialisierten" Form, beginnend mit der Einführung. https://www.gnu.org/software/libc/manual/html_node/Introduction.html#Introduction

Da sich mein gesamtes Dokument in einem HTML-Dokument befindet (exportiert aus dem Org-Modus in Emacs, aber das ist wahrscheinlich ein kleines Detail), spalte ich das
monolithische HTML-Dokument in mehrere kleine Dateien auf, die jeweils mit dem vorherigen und dem nächsten verknüpft sind.

0
Ich konnte eine solche Anwendung auch nicht finden. Stattdessen habe ich ein Skript geschrieben, das HTML-Teile mit einer solchen Website zusammenführt. Wenn Sie interessiert sind, habe ich es auf github https://github.com/ljmdullaart/website gestellt. Ljm Dullaart vor 5 Jahren 0

2 Antworten auf die Frage

0
afifio

Ich glaube, es ist umgekehrt. Anstatt in mehrere Teile zu teilen, sollten mehrere Teile zu einem einzigen Teil (HTML / was auch immer) zusammengefügt werden.

Ein guter Weg ist, ein gemeinsames Tag zu finden und von dort aus zu beginnen. z.B

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

grep id = "kapitel" doc.html oder grep h2 doc.html enthüllt das Kapitel und Sie können von dort aus beginnen. Wenn Sie dann nur einen einzigen HTML-Code benötigen, verketten Sie ihn einfach. Auf der vorherigen und der nächsten Seite benötigen Sie ein Skript, um die Kopfzeilenlinks zu erstellen. Schritte:

  1. Teilen Sie Ihre Dokumente in Kapitel und Abschnitte auf
  2. Erstellen Sie ein standardmäßiges Kopf- und Fußzeilenskript
  3. Generieren Sie die Einzelseitenversionen für jedes Kapitel und seine Abschnitte

Andere Weise ? https://www.naturaldocs.org/

0
Ljm Dullaart

Die Datei kann folgendermaßen aufgeteilt werden:

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

Dadurch werden eine Reihe von Dateien erstellt xx00, die xx01usw. genannt werden. Normalerweise wird yout erste Datei - Tags enthalten wie <html>, header>, <body>und Ähnliches. Der Rest der Dateien enthält im Allgemeinen Ihre verschiedenen Kapitel und / oder Abschnitte. Wenn Sie weiter aufteilen möchten, verwenden Sie <h[123]als Muster und / oder, [Hh]wenn Ihre Tags in Großbuchstaben sein können.

Wenn Sie mein Skript website02von https://github.com/ljmdullaart/website verwenden, müssen Sie die Datei .htmlam Ende in etwas umbenennen .

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

macht das für weniger als 10 Dateien. Beachten Sie jedoch, dass das Skript zwar verfügbar ist, jedoch für meine persönliche Umgebung erstellt wurde und ich keinen Versuch unternommen habe, es für den allgemeinen Gebrauch geeignet zu machen. Daher sind möglicherweise einige Änderungen erforderlich.