Preview texts

This example stores a title field into the module.

module:
    module_options:
        form_fields:
            title:
                type: 'text'

You can preview it adding to the edit template:

<h1>{{ form.title.vars.data|default('') }}</h1>

It's recommended to be conservative, to prevent errors, so add a default filter.

Using placeholders

<h1 data-edit-content-placeholder="Write the title!">{{ form.title.vars.data|default('') }}</h1>

Content editable

module:
    module_options:
        form_fields:
            title:
                type: 'text'
                attr:
                    data-edit-content-input: 'title'
<h1 contenteditable="true" data-edit-content-target="title">{{ form.title.vars.data|default('')|raw }}</h1>

Important: if you use a display block element, when you add a new line it will append a <div> tag.
Use a inner inline-block element to prevent this behaviour.

Important: it's recommended to add a raw filter, to render HTML tags properly.

<h1><span contenteditable="true" data-edit-content-target="title">{{ form.title.vars.data|default('') }}</span></h1>

Work with translated texts

module:
    module_options:
        form_fields:
            title:
                type: 'translatable'
                type_options:
                    type: 'text'
{% for locale,localeField in form.title.vars.localeFields %}
    <h1 data-lang="{{ locale }}" contenteditable="true" data-edit-content-target="title.{{ locale }}">{{ localeField.vars.data|default('') }}</h1>
{% endfor %}