MOTOR DE MODELO DE SEMPARECopyright (c) 2019-2024 Sempare Limited
Contato: [email protected]
Licença: Apache v2.0 ou Sempare Limited Commercial License
Código aberto: https://github.com/sempare/sempare-delphi-template-engine
Questionário : https://docs.google.com/forms/d/e/1faipqlscioiidxvswk01fmfqyr9aj6khcgeiw4uau_esguztee7vywa/viewForm
Os mecanismos de modelo são usados frequentemente na tecnologia, onde o texto precisa ser personalizado substituindo variáveis por valores de uma fonte de dados. Exemplos onde isso pode ocorrer:
O mecanismo de modelo Sempare é um pequeno motor de modelos (scripts) para Delphi (objeto Pascal) que permite que os modelos sejam criados de maneira fácil e eficiente, fornecendo uma API simples e fácil de usar.
Exemplo de uso:
program Example;
uses
Sempare.Template;
type
TInformation = record
name: string;
favourite_sport : string;
count : integer;
end;
begin
var tpl := Template.Parse(
'My name is <% name %>.'#13#10 +
'My favourite sport is <% favourite_sport %>.'#13#10 +
'Counting... <% for i := 1 to count %><% i %><% betweenitems %>, <% end %>' +
'Counting... <% for i := 1 to count ; print(i) ; betweenitems ; print(', '); onbegin; print('[ '); onend; print('] '); end %>'
);
var info : TInformation;
info.name := 'conrad';
info.favourite_sport := 'ultimate';
info.count := 3;
writeln(Template.Eval(tpl, info));
end.
O projeto permite que quase qualquer tipo seja desreferenciado no script de modelo.
No exemplo acima, você pode ver que o '<%' Start e '%>' encerrar a declaração de script, respectivamente. Dentro de uma declaração de script, você pode fazer referência a variáveis, atribuir variáveis, usar condições, para e enquanto loops e incluir outros modelos.
Nota Em exemplos nesta documentação, posso usar a sintaxe Delphi mais recente, por exemplo, declarações variáveis em linha. Isso não é compatível com versões anteriores, pois foram introduzidas no Delphi 10.2 e são usadas para encurtar o código/exemplos que estão sendo ilustrados na documentação. A base de código tentará ser o mais compatível com o atraso possível.
Por favor, 'estrela' o projeto no Github.

Existem algumas maneiras de começar rapidamente.
Experimente a demonstração se quiser mergulhar rapidamente e brinque com o mecanismo de modelo.
O mecanismo de modelo Sempare não se destina a ser uma linguagem de programação de uso geral totalmente em destaque, como o PHP, onde o próprio script pode ser uma linguagem de programação independente (mas possui a maioria dos recursos).
O Modelo Sempare Motor tem como objetivo fornecer funcionalidades suficientes para permitir que você trabalhe facilmente com os aspectos 'Visualizar' de um modelo. Qualquer funcionalidade aprimorada necessária do ambiente de script deve ser fornecida pelas funções personalizadas escritas no objeto Pascal.
O mecanismo de modelo funciona com versões modernas de Delphi.
Os testes são executados atualmente usando o dunitx testFramework.
Foi feita uma tentativa de não usar os recursos mais recentes para facilitar a compatibilidade com versões anteriores. As versões a seguir foram testadas:
Não deve haver restrições específicas da plataforma.
Dê uma olhada no sempare.template.compiler.inc. O seguinte define pode ser definido, se apropriado:
O mecanismo de modelo Sempare para Delphi pode ser instalado através do Embarcadero Getit Manager
Isso adicionará a pasta SRC ao caminho de pesquisa para que você possa começar a funcionar imediatamente.
O mecanismo de modelo Sempare para Delphi pode ser instalado pelo gerenciador de pacotes do Boss.
Basta correr:
boss install sempare/sempare-delphi-template-engine
O mecanismo de modelo Sempare para Delphi pode ser instalado através do Delphinus Package Manager.
Isso adicionará a pasta SRC ao caminho de pesquisa para que você possa começar a funcionar imediatamente.
Comece adicionando a pasta SRC ao caminho de pesquisa Delphi. Caso contrário, existem alguns projetos que você pode usar:
Open sempare.template.engine.group.GroupProj , que incluirá:
Sempare.template.pkg.dproj
O projeto do modelo principal. (Tempo de execução)
Sempare.template.tester.dproj
180+ testes de unidade
Demo semparetemplateplayground sempare.templateengine.playground.dproj
A demonstração do playground de modelo Sempare, que fornece uma experiência rica para testar os vários recursos de linguagem de modelo.
Você pode levantar problemas no Github e eles serão abordados com base na prioridade.
A maioria dos recursos possui alguns testes básicos em vigor. Se um bug for descoberto, inclua um teste/cenário básico replicando o problema, se possível, pois isso facilitará o processo de investigação.
Revise os termos e condições de contribuição para contribuir para o projeto.
Siga as etapas a seguir ao adicionar um recurso ou fazer uma atualização:
O processo de implantação é baseado na filial do dev. Uma vez que decidirmos empurrar uma nova versão, mescularemos 'Dev' para 'Main'.
O mecanismo do modelo sempare é licenciado com dupla. Você pode optar por usá -lo sob as restrições do Apache v2.0 sem nenhum custo para você, ou pode licenciá -lo para uso sob a licença comercial Limited Limited
O esquema de licenciamento duplo permite que você use e teste a biblioteca sob a licença apropriada.
Uma licença comercial concede a você o direito de usar o Sempare Model Engine em seus próprios aplicativos, Royalty Free, e sem nenhum requisito de divulgar seu código -fonte nem quaisquer modificações no mecanismo de modelo sempare ou a qualquer outra parte. Uma licença comercial ajuda a garantir que o projeto seja mantido com integração contínua, patches etc.
Uma taxa de suporte de US $ 70 por desenvolvedor é apreciada.
Os links de pagamento a seguir permitem se inscrever rapidamente. Observe que a licença inicial e os links de suporte estão separados.
Os links de pagamento a seguir estão disponíveis para licenças do site. Observe que a licença inicial e os links de suporte estão separados.
Envie um e-mail para [email protected] para solicitar uma fatura que conterá detalhes de pagamento alternativos.
As solicitações de suporte e aprimoramento enviadas pelos usuários que pagam pelo suporte serão priorizados. Novos desenvolvimentos podem incorrer em custos adicionais, dependendo do tempo necessário para a implementação.