PostgREST / plmustache

Logic-less templates for Postgres
MIT License
33 stars 2 forks source link

handle partials by calling other (plmustache) functions #17

Open wolfgangwalther opened 6 months ago

wolfgangwalther commented 6 months ago

Since it doesn't make sense to load partials from file, it would be great if other functions could be called via partials:

create or replace function hello() returns text as $$
Hello, {{>world}}
$$ language plmustache;

create or replace function world() returns text as $$
World
$$ language plmustache;

select hello();
Hello, World

It should even be possible to pass arguments to those functions via blocks and parents:

create or replace function hello(subject text) returns text as $$
Hello, {{subject}}
$$ language plmustache;

create or replace function hello_world() returns text as $$
{{<hello}}
  {{$subject}}World{{/subject}}
{{/hello}}
$$ language plmustache;

select hello();
Hello, World

Neither blocks, nor parents are supported by jobol/mustach, yet. I opened an issue about it.

I don't think it's possible to override the default "file loader" either, so that probably needs some changes in jobol/mustach, too.

wolfgangwalther commented 3 months ago

Upstream started development on partials and blocks and is asking for feedback: https://gitlab.com/jobol/mustach/-/issues/46#note_1856323871

@steve-chavez maybe you have time to try how that would work with plmustache?