Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is a concise way to create inline elements in Jade

Tags:

node.js

pug

I like to put all my inline elements in a single line.

<ul>
  <li><a>click<span>here</span><strong>!</strong></a></li>

Wondering if there's a better way to create inline elements in Jade than this:

ul
  li 
    a(href="#") click 
      span here
      strong !

This get's a little closer but I'm not sure how to add the span and strong tags without breaking the lines.

ul
  li: a(href='#') click
    span ...

This obviously isn't a super big problem but it's a little annoying that I can't put inline elements inline. Thanks for the help

like image 572
jwerre Avatar asked Jun 08 '12 17:06

jwerre


3 Answers

Since version 1.0, jade supports inline tags:

#[tag(attribute='value') inner stuff]

In your case that would be:

ul
  li #[a(href="#") click  #[span here #[strong !]]]
like image 152
pfirpfel Avatar answered Nov 09 '22 11:11

pfirpfel


Ran into this today myself. Found a way to do this in jade using the pipe. Here is my example wrapping a strong tag inside a p element.

p.some-class
    strong This Renders Strong                          
    |This renders normal
like image 35
marcus hall Avatar answered Nov 09 '22 11:11

marcus hall


I also struggled with this a while back; the only answer I found is to just use HTML.

ul
  li: a(href='#') click<span>here</span><strong>!</strong>
like image 17
Michelle Tilley Avatar answered Nov 09 '22 10:11

Michelle Tilley