www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - How to add class in DIET template

reply Suliman <evermind live.ru> writes:
I need to get external variable and make class by it's value

- string mystr = "lng-" ~ language;
- foreach(i, line; arrayOfLines )
	li
		code.mystr #{line}

I need to get HTML code like this:

<li>
<code class="lng-d">some D code</code>
</li>

But class name become "mystr" and I am getting:

<li>
<code class="mystr">some D code</code>
</li>

How to fix it?
Jun 22
parent reply Martin Tschierschke <mt smartdolphin.de> writes:
On Friday, 23 June 2017 at 06:59:22 UTC, Suliman wrote:
 I need to get external variable and make class by it's value

 - string mystr = "lng-" ~ language;
 - foreach(i, line; arrayOfLines )
 	li
 		code.mystr #{line}

 I need to get HTML code like this:

 <li>
 <code class="lng-d">some D code</code>
 </li>

 But class name become "mystr" and I am getting:

 <li>
 <code class="mystr">some D code</code>
 </li>

 How to fix it?
You can use the html syntax for the class parameter, the funny/nice thing is, that mystr can be used directly without "#{}" around. code(class=mystr) #{line} works.
Jun 23
parent Steven Schveighoffer <schveiguy yahoo.com> writes:
On 6/23/17 12:06 PM, Martin Tschierschke wrote:
 You can use the html syntax for the class parameter, the funny/nice 
 thing is, that mystr can be used directly without "#{}" around.
 
 code(class=mystr) #{line}
 
 works.
Yes, I just found out recently -- when you don't use quotes for an attribute value, it's treated as a D expression (and then interpolated). If that D expression is of type bool, then the attribute is added or not based on the value of that bool. Good for things like checkboxes and 'checked'. -Steve
Jun 23