Haml - Come forzo tag attributi di utilizzare solo le virgolette E come faccio a ordinare tag attributi come voglio?
-
12-09-2019 - |
Domanda
Io uso staticmatic per i modelli che uso più tardi con PHP. C'è una strana situazione in cui alcuni attributi dei tag hanno virgolette singole, mentre alcuni hanno virgolette doppie. Vorrei tutti loro di avere doppi apici esclusivamente (non che sia importante credo, ma li voglio così!)
Per esempio, il codice Haml:
!!! 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
produce seguente:
<?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>
Si noti che non importa se uso le virgolette singole o doppie virgolette nel codice Haml, ricevo sempre la stessa uscita!
Inoltre, sembra che haml-> HTML sorta di uscita tag attributi in ordine alfabetico, non il modo in cui li ho ordinati in Haml. Ho il sospetto che questo ha qualcosa a che fare con gli array rubino, ma non sono sicuro dato che non / non posso usare di Ruby a parte Haml in staticmatic. Come potrei averli ordinato lo stesso che li ho ordinati in ordine di Ruby in codice Haml?
Soluzione
Provare quanto segue:
Haml::Template.options[:attr_wrapper] = '"'
Altri suggerimenti
Haml effettivamente ordine attributi in ordine alfabetico, e questo è davvero una conseguenza del parser di Ruby. In futuro, gli attributi possono essere ordinati in ordine del documento il più possibile, ma non è probabile che accada fino Haml 2.2 o successiva.
Citazione di: http://haml.info/docs/yardoc/file .REFERENCE.html opzioni #
Haml capisce varie opzioni di configurazione che influiscono sulla sua le prestazioni e l'uscita.
In Rails, le opzioni possono essere impostate impostando il
Haml::Template.options
hash in un inizializzatore:
# config/initializers/haml.rb
Haml::Template.options[:format] = :html5
Al di fuori Rails, è possibile impostare configurando loro a livello globale in
Haml::Options.defaults
:Haml::Options.defaults[:format] = :html5
Infine, è anche possibile impostare passando un hash opzioni per [ Haml :: Engine # inizializzazione ] [1]. Per la lista completa delle opzioni disponibili, vedere [ Haml :: Opzioni ] [2].
[1]: http://haml.info/docs/yardoc/Haml/Engine.html # inizializzare-instance_method