<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="203729" data-post-id="203729">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mhanberg" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mhanberg/120/17162_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mhanberg
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Expert LSP Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Glad you like it!</p>
<p>Hopefully I can get 0.6.0 released soon. I currently am in the market for a new computer, which is one of the reasons why it’s been taking so long.</p>
<p><img src="https://forum.elixirforum.com/images/emoji/apple/clinking_beer_mugs.png?v=15" title=":clinking_beer_mugs:" class="emoji only-emoji" alt=":clinking_beer_mugs:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="203729" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/temple-html-dsl-for-elixir-and-phoenix/23940/22">Post #21</a>
	                </div>
	            </div>
              <div id="likers-container-203729" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="203729"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #21"></div>
  </section>
</div>
    <div class="postbit" id="205645" data-post-id="205645">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Qqwy" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Qqwy/120/1349_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Qqwy
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>TypeCheck Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I very much like the approach Temple takes in parsing.</p>
<p>Out of curiosity and because I think it improves the readability of templates further by removing more boilerplate, I was wondering if if would be possible to support shorthand class-syntax, i.e. <code>div.large.red.button do ... end</code> being turned into <code>&lt;div class="large red button"&gt;... &lt;/div&gt;</code>.<br>
Since you are parsing the quoted AST manually, I think this should be possible.</p>
<p>What do you think?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="205645" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/temple-html-dsl-for-elixir-and-phoenix/23940/23">Post #22</a>
	                </div>
	            </div>
              <div id="likers-container-205645" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="205645"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #22"></div>
  </section>
</div>
    <div class="postbit" id="205654" data-post-id="205654">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="cenotaph" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  cenotaph
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Just seen this work, great work!</p>
<p>Out of curiosity, did you do any performance benchmarking with barebones phoenix.html and your library?</p>
<p>It would be an interesting test and maybe +1 for your libraries benefits <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="205654" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/temple-html-dsl-for-elixir-and-phoenix/23940/24">Post #23</a>
	                </div>
	            </div>
              <div id="likers-container-205654" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="205654"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #23"></div>
  </section>
</div>
    <div class="postbit" id="205698" data-post-id="205698">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Qqwy" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Qqwy/120/1349_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Qqwy
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>TypeCheck Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>If you are talking about runtime performance: There will not be any difference, as at compile-time the DSL gets turned into the same IOlist format as <code>.eex</code>-templates are. So at runtime there is not any difference.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="205698" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/temple-html-dsl-for-elixir-and-phoenix/23940/25">Post #24</a>
	                </div>
	            </div>
              <div id="likers-container-205698" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="205698"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #24"></div>
  </section>
</div>
    <div class="postbit" id="205702" data-post-id="205702">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mhanberg" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mhanberg/120/17162_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mhanberg
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Expert LSP Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<blockquote>
<p>I very much like the approach Temple takes in parsing.</p>
</blockquote>
<p>Thanks!</p>
<blockquote>
<p>Out of curiosity and because I think it improves the readability of templates further by removing more boilerplate, I was wondering if if would be possible to support shorthand class-syntax, i.e. <code>div.large.red.button do ... end</code> being turned into <code>&lt;div class="large red button"&gt;... &lt;/div&gt;</code>.<br>
Since you are parsing the quoted AST manually, I think this should be possible.</p>
<p>What do you think?</p>
</blockquote>
<p>I think that this is technically feasible, but I would have to see some more use cases before considering adding something like that. If you’d like, please open a <a href="https://github.com/mhanberg/temple/discussions" rel="noopener nofollow ugc">Discussion</a> on GitHub and we can discuss the feature further!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="205702" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/temple-html-dsl-for-elixir-and-phoenix/23940/26">Post #25</a>
	                </div>
	            </div>
              <div id="likers-container-205702" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="205702"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #25"></div>
  </section>
</div>
    <div class="postbit" id="205704" data-post-id="205704">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mhanberg" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mhanberg/120/17162_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mhanberg
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Expert LSP Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<blockquote>
<p>Out of curiosity, did you do any performance benchmarking with barebones phoenix.html and your library?</p>
</blockquote>
<p>As of the 0.6.0 pre-releases, Temple generates EEx at compile time. So if you were to be using it with a Phoenix project, you can use the Temple.Engine or Temple.LiveViewEngine to further compile the generated EEx using the Phoenix.HTML.Engine or Phoenix.LiveView.Engine, which will be compiled the same way a traditional phoenix project would</p>
<p>So, the compiling will be slower as it includes an extra step, but once you’re at runtime it should be identical to a traditional phoenix project.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="205704" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/temple-html-dsl-for-elixir-and-phoenix/23940/27">Post #26</a>
	                </div>
	            </div>
              <div id="likers-container-205704" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="205704"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #26"></div>
  </section>
</div>
    <div class="postbit" id="215206" data-post-id="215206">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mhanberg" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mhanberg/120/17162_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mhanberg
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Expert LSP Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>v0.6 has been released!</p>
<p>You can read about it on my <a href="https://www.mitchellhanberg.com/announcing-temple-v06/" rel="noopener nofollow ugc">blog</a> and in the <a href="https://github.com/mhanberg/temple/releases" rel="noopener nofollow ugc">release notes</a>.</p>
<p>Cheers! <img src="https://forum.elixirforum.com/images/emoji/apple/clinking_beer_mugs.png?v=15" title=":clinking_beer_mugs:" class="emoji" alt=":clinking_beer_mugs:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="215206" data-batch-url="/posts/batch_likers">
                        5
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/temple-html-dsl-for-elixir-and-phoenix/23940/28">Post #27</a>
	                </div>
	            </div>
              <div id="likers-container-215206" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="215206"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #27"></div>
  </section>
</div>
    <div class="postbit" id="215449" data-post-id="215449">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="soup" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/soup/120/31425_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  soup
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>In the 6.0 RC, I had this component, which acted as a wrapper around live_redirect to make them look like buttons. It mostly just takes any arguments you pass to it, injects some css classes and passes it all down to live_redirect.</p>
<p>In the release I get an error around <code>protocol Phoenix.HTML.Safe not implemented for #Function&lt;27.16960434...</code>.</p>
<p>Calling <code>live_redirect</code> without <code>splat</code> actually works fine, I think it’s to do with the order of expansion inside temples macros (just guessing at how Temple works internally).</p>
<p>Is this kind of component still possible?</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">defmodule AppWeb.Component.LiveRedirect do
  import Temple.Component

  # ... snip
  
  # convert any given arguments (as map) to keyword list
  # for use in live_redirect
  def splat(assigns) do
    assigns
    |&gt; Map.delete(:inner_content) # needs change/not needed
    |&gt; set_defaults()
    |&gt; maybe_merge_class()
    |&gt; Enum.into([])
  end

  render do
    case assigns[:disabled] do
      true -&gt;
        span splat(assigns) do
          slot :default
        end

      _ -&gt;
        Phoenix.LiveView.Helpers.live_redirect splat(assigns) do
           slot :default
        end
    end
  end
end
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="215449" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/temple-html-dsl-for-elixir-and-phoenix/23940/29">Post #28</a>
	                </div>
	            </div>
              <div id="likers-container-215449" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="215449"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #28"></div>
  </section>
</div>
    <div class="postbit" id="215450" data-post-id="215450">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mhanberg" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mhanberg/120/17162_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mhanberg
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Expert LSP Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I think you’ll want to rename :inner_content to :inner_block in your splat function.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="215450" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/temple-html-dsl-for-elixir-and-phoenix/23940/30">Post #29</a>
	                </div>
	            </div>
              <div id="likers-container-215450" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="215450"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #29"></div>
  </section>
</div>
    <div class="postbit" id="215452" data-post-id="215452">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="soup" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/soup/120/31425_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  soup
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Oh geez. Yes, that fixed it.</p>
<p>I knew <code>inner_content</code> had been replaced but the error from elixir tricked me I guess <img src="https://forum.elixirforum.com/images/emoji/apple/flushed.png?v=15" title=":flushed:" class="emoji" alt=":flushed:" loading="lazy" width="20" height="20"> and I had left that change on the “future fix” list.</p>
<p>Love Temple, it’s great.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="215452" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/temple-html-dsl-for-elixir-and-phoenix/23940/31">Post #30</a>
	                </div>
	            </div>
              <div id="likers-container-215452" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="215452"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #30"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/23940/load_more?page=4">Load more posts (4 remaining)</a>
</div></template></turbo-stream>