<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Haml</id>
	<title>Haml - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Haml"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Haml&amp;action=history"/>
	<updated>2026-05-30T01:43:44Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Haml&amp;diff=1997962&amp;oldid=prev</id>
		<title>imported&gt;Invisigoth67: form</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Haml&amp;diff=1997962&amp;oldid=prev"/>
		<updated>2025-07-13T12:00:43Z</updated>

		<summary type="html">&lt;p&gt;form&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox Dateiformat&lt;br /&gt;
| Name = Haml&lt;br /&gt;
| Icon = &lt;br /&gt;
| Logo = [[Datei:Haml 1-5 logo.png|Logo]]&lt;br /&gt;
| Screenshot = &amp;lt;!-- todo--&amp;gt;&lt;br /&gt;
| Beschreibung = &lt;br /&gt;
| Dateiendung = .haml&lt;br /&gt;
| MIME = &lt;br /&gt;
| MIME-Anm = &lt;br /&gt;
| MagischeZahl = &lt;br /&gt;
| MagischeZahlNotation = &lt;br /&gt;
| MagischeZahlHex = &lt;br /&gt;
| Entwickler = Nathan Weizenbaum, Hampton Catlin&lt;br /&gt;
| Veröffentlicht = &lt;br /&gt;
| LetzteVersion = &amp;lt;!-- Wikidata --&amp;gt;&lt;br /&gt;
| LetzteVersionDatum = &amp;lt;!-- Wikidata --&amp;gt;&lt;br /&gt;
| Art = [[Auszeichnungssprache]]&lt;br /&gt;
| Container für = &lt;br /&gt;
| Enthalten in = &lt;br /&gt;
| Erweitert von = &lt;br /&gt;
| Erweitert zu = &lt;br /&gt;
| Standard = &lt;br /&gt;
| Website = &amp;lt;!-- Wikidata --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Haml&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;[[Hypertext Markup Language|HTML]] Abstraction Markup Language&amp;#039;&amp;#039;) ist eine unter der [[MIT-Lizenz]] veröffentlichte [[vereinfachte Auszeichnungssprache]], die benutzt wird, um auf klare und einfache Art das [[Extensible Hypertext Markup Language|XHTML]] eines Web-Dokuments zu beschreiben, ohne dabei mittels Inline-Codierung ausführbaren Programmcode hineinmischen zu müssen. Es wurde entwickelt, um viele der Schwächen traditioneller Template-Mechanismen zu vermeiden und um Markup-Sprache möglichst elegant zu machen. Haml fungiert als Ersatz für Inline-Template-Mechanismen, wie sie bei [[PHP]], [[JavaServer Pages|JSP]], [[eRuby|RHTML]] oder [[Active Server Pages|ASP]] üblich sind. Haml vermeidet die Notwendigkeit, XHTML explizit in Templates zu codieren, weil es selbst eine Beschreibung für XHTML mit einigem Code für dynamischen Inhalt ist.&lt;br /&gt;
&lt;br /&gt;
Zum Umfang von Haml gehörte mit [[Sass (Stylesheet-Sprache)|Sass]] auch ein Analogon zu [[Cascading Style Sheets|CSS]]. Heute werden aber Sass und Haml getrennt entwickelt, versioniert und ausgeliefert.&amp;lt;ref&amp;gt;{{Internetquelle |url=http://nex-3.com/posts/dates/2010/9 |werk=Posts about Haml |titel=Haml and Sass are Split |zugriff=2012-01-07 |archiv-bot=2019-04-15 18:02:38 InternetArchiveBot |offline=ja |archiv-url=https://web.archive.org/web/20111227101502/http://nex-3.com/posts/dates/2010/9 |archiv-datum=2011-12-27 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prinzipien ==&lt;br /&gt;
; Auszeichnungssprachen sollten schön sein&lt;br /&gt;
: Auszeichnungssprachen sollten nicht nur einfach als Werkzeug benutzt werden, um [[Webbrowser]] dazu zu bringen, eine Seite in der Art darzustellen, wie der Autor sie dargestellt haben möchte. Diese Darstellung ist nicht das einzige, was die Leute sehen müssen. Sie müssen die Auszeichnungssprache sehen, ändern und verstehen. Deshalb sollte die Auszeichnungssprache genauso benutzerfreundlichen und angenehm wie das im Webbrowser dargestellte Ergebnis sein.&lt;br /&gt;
; Auszeichnungssprachen sollten [[Don’t repeat yourself|DRY]] sein&lt;br /&gt;
: XHTML enthält viele Wiederholungen. Die meisten Elemente müssen zweimal angegeben werden, einmal vor und einmal nach ihrem Inhalt. [[eRuby|ERB]] fügt sogar noch mehr Wiederholung und unnötige Zeichen hinzu. Haml vermeidet dies alles, indem es sich auf die Einrückung und nicht auf den Text verlässt, um zu bestimmen, wo Elemente und Codeblöcke beginnen und enden. Die führt nicht nur zu kleineren Templates, es macht den Code auch lesbarer und „sauberer“.&lt;br /&gt;
; Auszeichnungssprachen sollten korrekt eingerückt werden&lt;br /&gt;
: Eine der großen Schwierigkeiten mit traditionellen Template-Sprachen ist, dass sie nicht nur darauf verzichten, die Verwendung einer konsequenten und konsistenten Einrückung zu ermutigen, sondern dass sie dieser sogar oft im Wege stehen. Es ist oft schwierig oder unmöglich, eine brauchbare Einrückung anzuwenden. Dies führt oft zu verwirrendem und unlesbarem XHTML. Haml formatiert die [[Tag (Informatik)|Tags]] so, dass sie immer sauber eingerückt sind und die darunter liegende Struktur des Dokuments wiedergeben.&lt;br /&gt;
; Die XHTML-Struktur sollte klar sein&lt;br /&gt;
: XML und XHTML sind Formate, die für die Idee des strukturierten Dokuments ins Leben gerufen wurden. Diese Struktur ist in diesen Auszeichnungssprachen wiedergegeben und sollte auch in gleicher Weise in einer Meta-Auszeichnungssprache wie Haml zu sehen sein. Weil Hamls Logik auf der Einrückung der Unterelemente basiert, wird diese Struktur auf natürliche Weise bewahrt, wobei sie für menschliche Leser viel einfacher und logischer zu erfassen ist.&lt;br /&gt;
&lt;br /&gt;
== Nachteile ==&lt;br /&gt;
* In Haml hat [[Leerraum]] eine essentielle Bedeutung. Haml verlässt sich auf konsistente Einrückungen. Tabulator- und Leerzeichen müssen über das ganze Dokument hinweg konsistent eingesetzt werden.&lt;br /&gt;
* Es gibt (noch) keine [[WYSIWYG]]-Editoren für Haml, während solche in großer Zahl für XHTML und HTML verfügbar sind. Aber die wachsende Gemeinschaft der Haml-Anwender hat ein Bündel von Zusätzen zu vielen gängigen [[Integrierte Entwicklungsumgebung|integrierten Entwicklungsumgebungen]], wie zum Beispiel [[Eclipse (IDE)|Eclipse]] (einschließlich populärer davon abgeleiteter Werkzeuge wie [[RadRails]] oder [[Aptana]]), [[jEdit]], [[NetBeans IDE|NetBeans]] und Editoren wie [[TextMate]], [[Emacs]] oder [[Vim]], hervorgebracht. Diese erlauben es Entwicklern, Haml in einer Umgebung zu editieren, die die Einrückungen und die Syntax berücksichtigt.&lt;br /&gt;
&amp;lt;!-- für skript-/tool-basierte die Verarbeitung gibt es weniger Tools als für XML/XHTML --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
&amp;lt;small&amp;gt;Anmerkung: &amp;#039;&amp;#039;Man beachte bitte, dass dieses Beispiel nicht zwingend den heutigen Entwicklungsstand von Haml wiedergibt.&amp;#039;&amp;#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!!!&lt;br /&gt;
%html{ :xmlns =&amp;gt; &amp;quot;http://www.w3.org/1999/xhtml&amp;quot;, :lang =&amp;gt; &amp;quot;en&amp;quot;, &amp;quot;xml:lang&amp;quot; =&amp;gt; &amp;quot;en&amp;quot;}&lt;br /&gt;
  %head&lt;br /&gt;
    %title BoBlog&lt;br /&gt;
    %meta{&amp;quot;http-equiv&amp;quot; =&amp;gt; &amp;quot;Content-Type&amp;quot;, :content =&amp;gt; &amp;quot;text/html; charset=utf-8&amp;quot;}&lt;br /&gt;
    = stylesheet_link_tag &amp;#039;main&amp;#039;&lt;br /&gt;
  %body&lt;br /&gt;
    #header&lt;br /&gt;
      %h1 BoBlog&lt;br /&gt;
      %h2 Bob&amp;#039;s Blog&lt;br /&gt;
    #content&lt;br /&gt;
      - @entries.each do |entry|&lt;br /&gt;
        .entry&lt;br /&gt;
          %h3.title= entry.title&lt;br /&gt;
          %p.date= entry.posted.strftime(&amp;quot;%A, %B %d, %Y&amp;quot;)&lt;br /&gt;
          %p.body= entry.body&lt;br /&gt;
    #footer&lt;br /&gt;
      %p&lt;br /&gt;
        All content copyright © Bob&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der obige Haml-Text sollte das folgende XHTML ergeben:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;#039;en&amp;#039; xml:lang=&amp;#039;en&amp;#039; xmlns=&amp;#039;http://www.w3.org/1999/xhtml&amp;#039;&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;BoBlog&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;meta content=&amp;#039;text/html; charset=utf-8&amp;#039; http-equiv=&amp;#039;Content-Type&amp;#039; /&amp;gt;&lt;br /&gt;
    &amp;lt;link href=&amp;quot;/stylesheets/main.css&amp;quot; media=&amp;quot;screen&amp;quot; rel=&amp;quot;Stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;#039;header&amp;#039;&amp;gt;&lt;br /&gt;
      &amp;lt;h1&amp;gt;BoBlog&amp;lt;/h1&amp;gt;&lt;br /&gt;
      &amp;lt;h2&amp;gt;Bob&amp;#039;s Blog&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;#039;content&amp;#039;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;#039;entry&amp;#039;&amp;gt;&lt;br /&gt;
        &amp;lt;h3 class=&amp;#039;title&amp;#039;&amp;gt;Halloween&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;p class=&amp;#039;date&amp;#039;&amp;gt;Tuesday, October 31, 2006&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p class=&amp;#039;body&amp;#039;&amp;gt;&lt;br /&gt;
          Happy Halloween, glorious readers! I&amp;#039;m going to a party this evening... I&amp;#039;m very excited.&lt;br /&gt;
        &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;#039;entry&amp;#039;&amp;gt;&lt;br /&gt;
        &amp;lt;h3 class=&amp;#039;title&amp;#039;&amp;gt;New Rails Templating Engine&amp;lt;/h3&amp;gt;&lt;br /&gt;
        &amp;lt;p class=&amp;#039;date&amp;#039;&amp;gt;Friday, August 11, 2006&amp;lt;/p&amp;gt;&lt;br /&gt;
        &amp;lt;p class=&amp;#039;body&amp;#039;&amp;gt;&lt;br /&gt;
          There&amp;#039;s a very cool new Templating Engine out for Ruby on Rails. It&amp;#039;s called Haml.&lt;br /&gt;
        &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;#039;footer&amp;#039;&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;&lt;br /&gt;
        All content copyright © Bob&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Implementierungen ==&lt;br /&gt;
Die offizielle Haml-Implementierung wurde für [[Ruby (Programmiersprache)|Ruby]] mit Plugins für [[Ruby on Rails]] und Merb entwickelt, aber die Ruby-Implementierung funktioniert auch unabhängig (ohne Rails und ohne Merb).&lt;br /&gt;
&lt;br /&gt;
Es existieren auch Implementierungen in anderen Programmiersprachen:&lt;br /&gt;
* [https://github.com/derdon/ghrml GHRML (Python)]&lt;br /&gt;
* [https://github.com/jessemiller/HamlPy HamlPy (Python)]&lt;br /&gt;
* [https://github.com/norman/lua-haml LuaHaml (Lua)]&lt;br /&gt;
* [https://weblogs.asp.net/mirvodasergey/archive/2008/06/02/introducing-monorail-nhaml.aspx MonoRail NHaml (ASP.NET)]&lt;br /&gt;
* [http://code.google.com/p/nhaml/ NHaml (.NET)]&lt;br /&gt;
* [https://github.com/dxw/Fammel/wiki Fammel (PHP)]&lt;br /&gt;
* [https://phaml.sourceforge.net/ pHAML] (PHP)&lt;br /&gt;
* [http://code.google.com/p/phamlp/ phamlp (PHP)]&lt;br /&gt;
* [https://phphaml.sourceforge.net/ phpHaml (PHP5)]&lt;br /&gt;
* [https://github.com/creationix/haml-js haml-js (JavaScript)]&lt;br /&gt;
* [http://search.cpan.org/dist/Text-Haml/ Text::Haml (Perl)]&lt;br /&gt;
* [http://scalate.fusesource.org/index.html Scalate (Scala)]&lt;br /&gt;
* [https://github.com/raymyers/JHaml JHaml (Java)]&lt;br /&gt;
&lt;br /&gt;
== Entwicklung ==&lt;br /&gt;
Haml wurde im Mai 2006 von Hampton Catlin erfunden. Er entwickelt zusammen mit Nathan Weizenbaum  die [[Codebasis]] weiter.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[BBCode]]&lt;br /&gt;
* [[eRuby]]&lt;br /&gt;
* [[Less (Stylesheet-Sprache)]]&lt;br /&gt;
* [[Markaby]]&lt;br /&gt;
* [[Ruby (Programmiersprache)|Ruby]]&lt;br /&gt;
* [[Ruby on Rails]]&lt;br /&gt;
* [[Webtemplate]]&lt;br /&gt;
&amp;lt;!-- * [[pHAML]] gibt es in de (noch??) nicht --&amp;gt;&lt;br /&gt;
* [[YAML]]&lt;br /&gt;
* [[Sass (Stylesheet-Sprache)|Sass]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://haml.info/ Offizielle Haml-WWW-Seite] (englisch)&lt;br /&gt;
* [https://github.com/nex3/haml/tree/master Haml Quelltext-Repository (Git)]&lt;br /&gt;
* [https://phphaml.sourceforge.net/ phpHaml Haml Implementierung für PHP 5] (englisch)&lt;br /&gt;
* [http://unspace.ca/discover/haml Einführender Artikel für Haml] auf [http://unspace.ca/ unspace.ca] (englisch)&lt;br /&gt;
* [http://groups-beta.google.com/group/haml?hl=en Haml-Google-Gruppe] (englisch)&lt;br /&gt;
* [https://weblog.rubyonrails.org/2007/1/19/haml-1-0 Haml 1.0 Ankündigung im offiziellen Ruby on Rails weblog] (englisch)&lt;br /&gt;
* [http://nex-3.com/posts/76-haml-2-0 Haml 2.0 Ankündigung auf Nathan Weizenbaums Blog] (englisch)&lt;br /&gt;
* [http://podcast.rubyonrails.org/programs/1/episodes/hampton_catlin Interview mit dem Haml-Erfinder auf einem offiziellen Rails-Podcast] (englisch)&lt;br /&gt;
* [http://thechangelog.com/post/254788034/episode-0-0-1-haml-sass-and-compass Interview mit Nathan Weizenbaum und Chris Eppstein, den Haml, Sass und Compass Maintainern, auf &amp;#039;&amp;#039;The Changelog podcast&amp;#039;&amp;#039;] (englisch)&lt;br /&gt;
* [http://wiki.rubyonrails.org/howtos/templates/haml Rails Wiki: Verwendung von Haml mit Ruby on Rails] (englisch)&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Ruby (Programmiersprache)]]&lt;br /&gt;
[[Kategorie:Templatesprache]]&lt;br /&gt;
[[Kategorie:Freies Programmierwerkzeug]]&lt;br /&gt;
[[Kategorie:Vereinfachte Auszeichnungssprache]]&lt;br /&gt;
[[Kategorie:HTML]]&lt;br /&gt;
[[Kategorie:Cascading Style Sheets]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Invisigoth67</name></author>
	</entry>
</feed>