wiki:div

Hierarchische <div>

1. Hierarchie-Ebenen einfügen

Wie macht man aus den automatisch erstellten flachen <div> eine hierarchische <div>-Struktur?

Beginn in head-Gruppe

In eine <head>-Gruppe, die in Wirklichkeit aus zwei Gruppen besteht, muss ein <div> eingefügt werden: Zum Beispiel <div> nach der heading von chapter 1 und das zugehörige </div> am Ende von chapter 1 (direkt vor chapter 2). Man muss also den gesamten Bereich der untergeordneten Hierarchie-Ebene markieren. Die Struktur innerhalb der neuen Hierarchie-Ebene bleibt gleich.

Beispiel:

<head> chapter 1
<head> section 1.1
Text
<head> section 1.2
Text
<head> chapter 2
Text

wird automatisch zu:

<div>
	<head> chapter 1
	<head> section 1.1
	Text
</div>
<div>
	<head> section 1.2
	Text
</div>
<div>
	<head> chapter 2
	Text
</div>

Korrekt ist aber:

<div>
	<head> chapter 1
	<div>
		<head> section 1.1
		Text
	</div>
	<div>
		<head> section 1.2
		Text
	</div>
</div>
<div>
	<head> chapter 2
	Text
</div>
  • Die div-levels werden von einem Skript automatisch korrekt vergeben. Die Einrückungen dienen nur zur Orientierung.
  • Wie werden die korrekten div-Typen möglichst effizient eingetragen?
  • Was ist in dem Fall, wenn es zwar eine Hierarchie gibt, aber es gibt nicht für jede Ebene eine eigene Überschrift? Beispiel: Die Briefe im letzten Kapitel von Benedetti. Wohl kein Problem, außer dass man eine editorische Entscheidung treffen muss.

Beginn außerhalb von head-Gruppe

Wieder muss das zusätzliche <div> muss genau den Bereich der untergeordneten <div>-Ebene umfassen. Aber diesmal stimmt die Zahl der <div> bereits. Man muss daher ein </div> von vor dem Bereich der untergeordneten Hierarchie-Ebene bis direkt hinter die Hierarchie-Ebene verschieben.

Beispiel:

<head> chapter 1
Text
<head> section 1.1
Text
<head> section 1.2
Text
<head> chapter 2
Text

wird automatisch zu:

<div>
	<head> chapter 1
	Text
</div>
<div>
	<head> section 1.1
	Text
</div>
<div>
	<head> section 1.2
	Text
</div>
<div>
	<head> chapter 2
	Text
</div>

Korrekt ist aber:

<div>
	<head> chapter 1
	Text
	<div>
		<head> section 1.1
		Text
	</div>
	<div>
		<head> section 1.2
		Text
	</div>
</div>
<div>
	<head> chapter 2
	Text
</div>

2. Änderungen innerhalb einer Hierarchie-Ebene

Merge

Ein überflüssiges <div> soll entfernt werden. In diesem Fall muss man direkt aufeinanderfolgende </div> und <div> entfernen:

<div>
	<head> chapter 1
	Text
</div>
<div>
	<head> Aliter
	Text
</div>
<div>
	<head> chapter 2
	Text
</div>

könnte man machen zu

<div>
	<head> chapter 1
	Text
	<head> Aliter
	Text
</div>
<div>
	<head> chapter 2
	Text
</div>
  • Dieser Fall ist sicher seltener als das Einfügen von hierarchischen <div>, denn es beinhaltet immer eine editorische Entscheidung.
  • Man muss wohl nie eine Hierarchie-Ebene entfernen, denn das Skript erzeugt keine.

<div> aufteilen

Das <div body> fehlt dabei immer noch. Sollte das div-Skript bereits ein <div body> einfügen? Dann wird es wahrscheinlich auch leichter und fehlerfreier, <div front> etc. einzufügen.

In diesem Fall muss man oft ein zusätzliches <div> auf der gleichen Ebene einfügen, also ein vorhandenes <div> aufteilen. Dafür fügt man an passender Stelle ein </div> und <div> ein. Beachte, dass auch ein div-Typ geändert werden muss (im Beispiel von body zu front).

<div body>
	<div>
		<head> dedication
		Text
	</div>
	<div>
		<head> chapter 1
		Text
	</div>
</div>

wird zu

<div front>
	<div>
		<head> dedication
		Text
	</div>
</div>
<div body>
	<div>
		<head> chapter 1
		Text
	</div>
</div>

Footer, die als Beginn eines neuen <div> markiert werden: Ist das ein reales Problem, will sagen, produziert das Skript diesen Fehler überhaupt? Die Beispiele sind also hypothetisch.

Fall 1: Der Footer bewirkt ein überflüssiges <div>. Das ist vergleichbar mit Merge:

<div>
	<head> chapter 1
	Text
</div>
<div>
	<head> Finis
	<pb>
</div>
<div>
	<head> chapter 2
	Text
</div>

wird zu

<div>
	<head> chapter 1
	Text
	<head> Finis
	<pb>
</div>
<div>
	<head> chapter 2
	Text
</div>

Fall 2: Der Footer wird dem falschen <div> zugeschlagen. Dann muss man die <div>-Grenze verschieben:

<div>
	<head> chapter 1
	Text
</div>
<div>
	<head> Finis
	<head> chapter 2
	Text
</div>

wird zu

<div>
	<head> chapter 1
	Text
	<head> Finis
</div>
<div>
	<head> chapter 2
	Text
</div>

3. Hierarchien mit dem Skript

Ist es möglich, schon mit dem Skript eine hierarchische Struktur zu erzeugen, die zumindest annähernd richtig ist?

Man könnte auch Parameter erlauben, die zum Beispiel in Form einer regex beschreiben, wann etwas in einer untergeordneten Hierarchie-Ebene steht.

Last modified 14 years ago Last modified on Jun 14, 2010, 1:45:12 PM