Bash: formatiere Listenelemente in HTML

9

Ich habe keine Bash-Erfahrung, möchte nur wissen, wie ich anfangen soll.

Ich muss ein Bash-Skript schreiben, das ein XHTML-Dokument korrekt formatiert. Zum Beispiel schaltet dies:

%Vor%

hinein:

%Vor%

Jetzt glaube ich, ich muss etwas tun wie:

%Vor%

Bitte helfen Sie mir, es zu verstehen. Das ist alles, woran ich denken kann und ich würde wirklich gerne wissen, wie ich es lösen kann.

    
Jp Morgan 06.05.2015, 03:20
quelle

5 Antworten

1

Verwenden Sie html-tidy . Es wäre eine gute Idee, dies zu Ihrem .bashrc hinzuzufügen, wenn Sie tidy

verwenden möchten %Vor%

Der obige Befehl erstellt eine alias für ordentliche Datei, die besagt, dass die Datei als XML eingerückt wird (gewährleistet, dass alle Tags schließende Tags haben), mit einem einzelnen Leerzeichen eingerückt wird und die Datei an Ort und Stelle geändert wird.

    
rjv 06.05.2015 03:40
quelle
1

Angesichts der Einschränkungen, dass das Problem mit einem Bash-Skript gelöst werden muss und Sie htmltidy nicht verwenden können, würde ich mit der Erstellung einer Datei htmltidy.sh beginnen, die Folgendes enthält:

%Vor%

Um dieses Programm zu verwenden, leiten Sie den Inhalt so ein:

%Vor%

Dies wird zumindest den Trick bei der von Ihnen bereitgestellten Beispieleingabe machen.

Einige Erklärung:

  • cat erfasst alle stdin als einzelne Textzeile
  • sed streift führenden und nachgestellten Platz für XHTML-Tags
  • sed fügt eine neue Zeile zwischen benachbarten XHTML-Tags ein
  • awk reduziert den Einzug, wenn eine Zeile ein XHTML-End-Tag ist (zB)
  • awk druckt die Zeile mit Einzug
  • awk erhöht den Einzug, wenn eine Zeile ein startendes XHTML-Tag ist (z. B. )

Dieses Spielzeugprogramm bricht sehr schnell, sobald die Komplexität der Eingabe komplexer wird. Aber das wird Ihnen eine Vorstellung davon geben, warum es besser ist, ein Standard-Dienstprogramm zu verwenden, als Ihr eigenes zu schreiben.

    
ddoxey 17.09.2015 04:47
quelle
0

Ich schlage vor, dass Sie sich das Dienstprogramm html-tidy ansehen.

Sie müssen nicht selbst einen Formatierer schreiben, es gibt eine Menge existierender Dienstprogramme, die das für Sie tun, lassen Sie es beiseite, es ist keine triviale Aufgabe und "wie man einen HTML-Pretty-Print-Formatierer implementiert" wäre ein wirklich allgemeine Frage (breite Fragen sind gegen StackOverflow-Regeln).

    
gvlasov 06.05.2015 03:33
quelle
0

HTML Tidy ist möglicherweise bereits auf Ihrem System installiert, es war für mich und ich erinnere mich nie daran, es zu installieren. Sie können dies überprüfen, indem Sie -

ausführen %Vor%

Wenn Sie das Handbuch bekommen, dann sind Sie bereit zu rocken und zu rollen!

%Vor%     
jadeallencook 01.06.2015 20:43
quelle
0

Eine weitere Alternative ist xmllint, die auf Ihrem System installiert sein kann:

%Vor%     
Peter Faller 18.08.2015 11:50
quelle

Tags und Links