Motor de galhos de primeira classe para node.js
Acreditamos que um mecanismo de twig de primeira classe deve ser capaz de renderizar qualquer modelo ao mesmo resultado que o mecanismo PHP oficial. Isso significa que ele deve implementar 100% da sintaxe definida pelas especificações do idioma e que deve renderizar essa sintaxe usando a lógica PHP.
Também acreditamos que um mecanismo de galhos de primeira classe deve ser capaz de recuperar facilmente quando as especificações do galho evoluem. Sua arquitetura e filosofia de código devem estar o mais próximo possível da implementação do PHP.
Por fim, acreditamos que um mecanismo de galhos de primeira classe deve permitir que os usuários desenvolvam sua experiência com o TwigPHP e obtenham suporte da enorme comunidade que o acompanha.
É isso que é o Twing. Um mecanismo de manutenção primeiro que passa 100% dos testes de integração do TwigPHP é o mais próximo possível da estrutura de código e exponha uma API como desfilada como possível.
O Twing precisa de pelo menos Node.js 8.0.0 para executar.
A maneira recomendada de instalar o Twing é via NPM:
npm install twing --save
const {twingenvironment, twingloadRarray} = require ('twing'); let carregador = new twingloadRarray ({'index.twig': 'hello {{name}}!'}); render ('index.twig', {name: 'Fabien'}). Então ((output) => {// Faça algo com a saída});
Twing e expressar o trabalho muito bem juntos. Dê uma olhada na documentação para um exemplo de uso com o Express.
Começando com a versão 2.0.0, o Twing pode ser usado em navegadores da Web com muito poucos compromissos. Obviamente, os componentes do sistema de arquivos não estão disponíveis (ou seja, carregador de sistemas de arquivos e cache), mas todo o resto é totalmente suportado.
Os pacotes do módulo agarrarão automaticamente o sabor específico do navegador de Twing quando o módulo Twing for importado. Ou const {TwingEnvironment} = require('twing');
ou import {TwingEnvironment} from 'twing';
Funcionará no Node.js e no navegador - uma vez empacotados no último caso.
Use JSDelivr CDN para incluir Twing no seu documento HTML:
<script src="https://cdn.jsdelivr.net/npm/twing/dist/lib.min.js"></script>
Uma vez carregado pelo navegador, o Twing está disponível na variável Global Twing
.
O Twing visa implementar perfeitamente as especificações do galho, sem comprometer. Esta não é uma tarefa fácil devido à natureza das especificações do galho: elas não existem oficialmente e só podem ser deduzidas da documentação pública, da documentação do código -fonte e do conjunto de testes da implementação de referência do PHP. Às vezes acontece que algo que não fazia parte das documentações ou da suíte de teste se torna repentinamente parte das especificações como a etiqueta filter
ou os problemas de retrabalho de macros, colocando Twing e todas as outras implementações de não referência na posição desconfortável de ter que lidar com uma potencial mudança de mudança. Como a equipe de Twig não planeja liberar algumas especificações oficiais para o idioma, não podemos esperar que o problema seja resolvido em breve.
A estratégia de Twing aqui é manter -se estritamente com as regras de versão semântica e nunca introduzir uma mudança de ruptura em uma versão menor - seu extenso conjunto de testes com 100% de cobertura de código garante isso. Os erros das equipes do Twig serão gerenciados emitindo um problema conhecido, se o erro for trivial ou esbarrando em uma nova versão principal, se não for.
Aqui está o gráfico de compatibilidade entre as versões menores dos níveis de Twing e Twig Specifications, juntamente com um resumo dos recursos notáveis fornecidos por cada nível de especificações do Twig. Observe que as versões menores do Twig nem sempre fornecem novos recursos relacionados ao idioma (devido à equipe do Twig, perpetuando a confusão entre o Twig e sua implementação de referência, TwigPHP).
Versão de Twing | Nível de especificações de galhos | Recursos notáveis |
---|---|---|
3.0 | 2.11 | Scoping de macros |
2.3 | 2.10 | spaceless , column , filter , map e reduce filtros, apply tag, line whitespace trimming Modificador de controle WhiteSpace |
2.2 | 2.6 | tag deprecated |
1.3 | 2.5 | Depreciações relacionadas spaceless e block |
1.0 | 2.4 |
É altamente recomendável sempre usar a versão mais recente do Twing disponível, pois as correções de bugs sempre segmentam a versão mais recente.
Você pode encontrar a lista de questões conhecidas de Twing sobre a implementação das especificações do galho aqui. Observe que os problemas conhecidos são garantidos para serem abordados na próxima versão principal de Twing.
Leia a documentação para obter mais informações.
Gulp-Twing: Compile modelos de galhos com gole. Construir após o tiro.
LOADEGRO DE TWING: WebPack Loader que compila modelos de galhos usando Twing.
Fork este repositório
Código
Implementar testes usando fita
Emitir uma solicitação de tração, tendo em mente que todas as solicitações de tração devem fazer referência a um problema na fila de problemas
Copyright © 2018 Eric Morand. Liberado sob a licença BSD de 2 cláusulas.