Haml - wie erzwinge ich Tag-Attribute nur doppelte Anführungszeichen zu verwenden und wie bestelle ich Tag den Weg Attribute ich will?
-
12-09-2019 - |
Frage
Ich verwende staticmatic für Vorlagen ich später mit PHP verwenden. Es ist eine seltsame Situation, in der einige Tagattribute einfache Anführungszeichen haben, während einige doppelte Anführungszeichen haben. Ich würde sie alle gerne ausschließlich doppelte Anführungszeichen haben (nicht, dass es darauf ankommt, ich denke, aber ich möchte, dass sie so!)
Zum Beispiel haml Code:
!!! XML
%html{html_attrs('hr-HR')}
%head
%title Some title
%meta{'http-equiv' => 'Content-Type', :content => 'text/html; charset=utf-8'}/
%meta{'name' => "description", :content => 'Some title - YO!'}/
= stylesheets
= javascripts('test', :other)
%body
= yield
erzeugt folgende:
<?xml version='1.0' encoding='utf-8' ?>
<html lang='hr-HR' xml:lang='hr-HR' xmlns='http://www.w3.org/1999/xhtml'>
<head>
<title>Some title</title>
<meta content='text/html; charset=utf-8' http-equiv='Content-Type' />
<meta content='Some title - YO!' name='description' />
<link href="stylesheets/application.css" media="all" rel="stylesheet" type="text/css"/><link href="stylesheets/grid.css" media="all" rel="stylesheet" type="text/css"/><link href="stylesheets/text.css" media="all" rel="stylesheet" type="text/css"/>
<script language="javascript" src="javascripts/test.js" type="text/javascript"></script><script language="javascript" src="javascripts/other.js" type="text/javascript"></script>
</head>
<body>
<h1>some body stuff!</h1>
utf test šđčćž ŠĐČĆŽ
</body>
</html>
Beachten Sie, dass es keine Rolle, ob ich einzelne oder doppelte Anführungszeichen in haml Code verwenden, habe ich immer die gleiche Leistung!
Auch scheint es, dass haml-> HTML-Ausgabe Art Tag-Attribute in alphabetischer Reihenfolge, nicht so, wie ich sie in haml bestellt habe. Ich vermute, dass dies etwas mit Ruby-Arrays zu tun hat, aber ich bin nicht sicher, da ich nicht / nicht Rubin abgesehen von haml in staticmatic verwenden kann. Wie kann ich sie das gleiche bestellt, wie ich sie in Ruby Array in haml Code bestellt habe?
Lösung
Versuchen Sie Folgendes:
Haml::Template.options[:attr_wrapper] = '"'
Andere Tipps
Haml tut in der Tat um alphabetisch Attribute, und dies ist in der Tat eine Folge von Ruby-Parser. In Zukunft Attribute können so viel wie möglich in dem Dokument zu bestellen, aber das ist nicht wahrscheinlich, bis Haml 2.2 oder später passieren.
Zitat von: http://haml.info/docs/yardoc/file .REFERENCE.html # Optionen
Haml versteht Optionen verschiedene Konfiguration, die Auswirkungen auf ihre Leistung und Ausgang.
In Rails können Optionen eingestellt werden, indem die Einstellung
Haml::Template.options
Hash in einem Initialisierer:
# config/initializers/haml.rb
Haml::Template.options[:format] = :html5
Außen Rails, Sie können sie festlegen, indem sie global in
Haml::Options.defaults
konfigurieren:Haml::Options.defaults[:format] = :html5
Schließlich können sie auch festlegen, indem ein Options Hash passing [ Haml :: Motor # initialize ] [1]. Zum die vollständige Liste der verfügbaren Optionen finden Sie unter [ Haml :: Optionen ] [2].
[1]: http://haml.info/docs/yardoc/Haml/Engine.html # initialisieren-instance_method