Open flosch opened 4 years ago
I'd love to see inline extends (like include but with slots)
base.tpl (not relevant but just to make it clear)
<html><body>
{% block body %}{% endblock %}
</body></html>
modal.tpl (a reusable component with three slots)
<section class="modal">
<header>{% block header %}{% endblock %}</header>
<article>{% block body %}{% endblock %}</article>
<footer>{% block footer %}{% endblock %}</footer>
</section>
page_with_modal.tpl:
{% extends "base.tpl" %}
{% block body %}
Hello world!!
<!-- so include also providing a slot mechanism like extends, enabling reusable components -->
{% include "modal.tpl" %}
{% block header %}Modal title{% endblock %}
{% block body %}Lorem ipsum{% endblock %}
{% block footer %}Modal footer{% endblock %}
{% endinclude %}
{% endblock %}
@flosch hi there! after a year, I just wanted to check if you think what I suggested above would be good idea. if so, and you don't have time, maybe I can give it a go?
@egeozcan Is there any existing implementation of this feature in other well-known template engines?
@flosch
In Vue.js and Web Components, this is possible with named slots. In angular, projections are used, and in React, you can pass components as parameters and render them anywhere.
On the server side: Symfony has something similar with named slots. Laravel/Blade also has slots. Django has Slippers, and I was told that Django Components can do something similar but I've never used it.
My use case is, I want to create Alpine.js components on the server side, with injection points.
Just checking in after 2 years... Perhaps what I asked for didn't peak your interest, or you just don't have the time (I mean who does these days right?). Would it be welcome if I tried to add something like this myself and made a PR or would it be the best to maintain a fork (although it's still a question if I'll be able to implement it at all)?
Really think this project can reach alot of people, I wouldn't mind to fork this
This project is currently rather in maintenance mode, but I'm planning to resume feature development at some point and overhaul a few thinks I've on my bucket list. However, it takes some time though. Having your topic @egeozcan still on my list as well.
Based on user input I put up a list of topics I'm considering for future pongo2 versions:
Feel free to add any ideas and wishes as comments below.