Używam silnika szablonów FreeMarker do generowania niektórych klas php z abstrakcyjnego opisu usługi internetowej. Mój problem polega na tym, że gdy wywołuję makro w szablonie FreeMarker, makro wstawia tekst bez lewych i białych znaków przed wywołaniem makra.FreeMarker: zachowaj identyfikację podczas korzystania z makr
exampleTemplate.ftl:
<?php
class ${class.name} {
<@docAsComment class.doc/>
<#list class.fields as field>
$${field.name};
</#list>
<#-- ... -->
}
?>
<#macro docAsComment doc>
/*
<#if doc.title != "">
* ${doc.title}
</#if>
<#list doc.content as content>
<#if content != ""> * ${content}</#if>
</#list>
*/
</#macro>
To wygeneruje coś takiego:
<?php
class foo {
/*
* foo
* bar foo, bla
*/
$a;
$b;
}
?>
Jednym rozwiązaniem byłoby, aby złożyć wiodącą spacje jako argument makra, ale to sprawia, że szablon tylko bardziej nieczytelny. Czy istnieje lepsze rozwiązanie?
Dzięki za odpowiedzi! Z "sprawia, że szablon trudniejszy do odczytania", mam na myśli prawie to, co myślałeś, sprawia, że makro jest bardziej skomplikowane i mniej zrozumiałe. Wydaje się, że przesłanie poziomu wcięcia jest najrozsądniejszym sposobem rozwiązania problemu. –
Zawsze możesz dodać nagłówek komentarza do makra, aby wyjaśnić, co robi. –
Nie był typem w fragmencie kodu, powinno być: '...' ' <#local spc> $ {? "" Left_pad (tiret * 4)}#local>' '...' –