Mecanismo de modelo personalizado Express.js (placa)

Estou tentando fazer com que o mecanismo de modelo de placa funcione com o express.js. Minha tentativa inicial foi:

app.register('.html', {
    compile: function (str, options) {
        var template = new plate.Template(str);
        return function(locals) {
            return template.render(locals, function(err, data) {
                return data;
            });
        }
    }
});

Vejo que o problema é que o template.render não retorna nada (indefinido), mas passa os dados para um retorno de chamada. Não tenho certeza de como fazê-lo funcionar, pois o Express espera que a função de compilação retorne uma função que retorne diretamente um modelo renderizado quando chamad

Eu estava pensando que talvez eu possa usar promessas para resolver esse problema, mas também não teve sucesso porque o código expresso não espera que uma promessa seja retornada. Não estou muito atento às promessas, por isso posso estar fazendo errado:

app.register('.html', {
    compile: function (str, options) {
        var promise = new Promise();
        var template = new plate.Template(str);
        return function(locals) {
            template.render(locals, function(err, data) {
                promise.resolve(data);
            });
            return promise;
        }
    }
});

Aqui está um exemplo de uma implementação personalizada que funciona. A diferença é que a função template () de sublinhado retorna a string renderizada da seguinte maneira:

app.register('.html', {
    compile: function (str, options) {
        var template = _.template(str);
        return function (locals) {
            return template(locals);
        };
    }
});

Gostaria muito de usar modelos de placa, pois a tag {% block%} é incrível. Qualquer ajuda é apreciad

ocumentação @pertinent:

docs do github da placa

express.js app.register docs

questionAnswers(2)

yourAnswerToTheQuestion