Skip to content
Rico Suter edited this page Oct 31, 2017 · 37 revisions

Overriding templates is still experimental, template names and models are not stable yet.

Information: To use the new template engine (DotLiquid) you need to enable the setting UseLiquidTemplates. The old T4 templates and the UseLiquidTemplates setting will be removed soon...

Settings (available for all code generators):

  • UseLiquidTemplates (default: false, setting will be removed as soon as templates work as expected)
  • TemplateDirectory: Location where template overrides are located (you should override only empty/extension templates).

Default Templates:

  • CSharp templates
    • Extension templates:
      • Class.Annotations
      • Class.Constructor
      • Class.Property.Annotations
  • TypeScript templates
    • Extension templates:
      • none (please create issue for new extension templates)

Template types:

  • Extension templates (i.e. empty templates): Can be safely overwritten
  • Internal templates (i.e. templates with content): Should be only overwritten for bugfixing (please provide a PR) or when also inserting the original template with {% template %}

Tags:

  • {% template Foo.Bar %}: Inserts a template with the same indentation of all lines as the tag
  • {% template %}: Inserts the original template into an overridden template

Filters:

  • {{ foo | tab: 3 }}
  • {{ bar | CSharpDocs: 2 }}

Control blocks (if/for/etc.):

  • Either use on one line (without -): foo{% if condition %}bar{% endif %}baz
  • ... or on multiple lines (with - at the end):
foo
{% if condition -%}
bar
{% endif -%}
baz
  • Use other forms only if really needed (breaks consistency)

Development

Notepad++ language for Liquid: liquid_notepadpp.zip

Clone this wiki locally