lib/compiler.js
function (walk) {
        if (!walk.at('{{')) return false;
        var endIdx = walk.indexOf(']}');
        if (endIdx === null)
          return false;
        var str = walk.substring(walk.position + 2, endIdx);
        var data = str.split('}[');
        if (data.length != 2) return false;

        var size = data[0].length;
        var value = data[0].trim();
        var defaultValue = data[1].trim();

        if (!defaultValue) return false;

        var ctl = this.formCompiler.createCtl('inputText');
        ctl.value = value;
        ctl.defaultValue = defaultValue;
        this.out.push('<input');
        this.emitAttrs({
          id: ctl.id,
          name: ctl.id,
          class: ctl.type,
          type: 'text',
          size: size,
          value: defaultValue
        });
        this.out.push('/>');

        walk.startFrom(endIdx).skip(2);
      }
function (walk) {
        if (!walk.at('{{')) return false;
        var endIdx = walk.indexOf(']}');
        if (endIdx === null)
          return false;
        var str = walk.substring(walk.position + 2, endIdx);
        var data = str.split('}[');
        if (data.length != 2) return false;

        var size = data[0].length;
        var value = data[0].trim();
        var defaultValue = data[1].trim();

        if (!defaultValue) return false;

        var ctl = this.formCompiler.createCtl('inputText');
        ctl.value = value;
        ctl.defaultValue = defaultValue;
        this.out.push('<input');
        this.emitAttrs({
          id: ctl.id,
          name: ctl.id,
          class: ctl.type,
          type: 'text',
          size: size,
          value: defaultValue
        });
        this.out.push('/>');

        walk.startFrom(endIdx).skip(2);
      }
function ( walk ) { if ( ! walk . at ( '{{' ) ) return false ; var endIdx = walk . indexOf ( ']}' ) ; if ( endIdx === null ) return false ; var str = walk . substring ( walk . position + 2 , endIdx ) ; var data = str . split ( '}[' ) ; if ( data . length != 2 ) return false ; var size = data [ 0 ] . length ; var value = data [ 0 ] . trim ( ) ; var defaultValue = data [ 1 ] . trim ( ) ; if ( ! defaultValue ) return false ; var ctl = this . formCompiler . createCtl ( 'inputText' ) ; ctl . value = value ; ctl . defaultValue = defaultValue ; this . out . push ( '<input' ) ; this . emitAttrs ( { id : ctl . id , name : ctl . id , class : ctl . type , type : 'text' , size : size , value : defaultValue } ) ; this . out . push ( '/>' ) ; walk . startFrom ( endIdx ) . skip ( 2 ) ; }
The text input with default is mostly the same as text input, but has
default value at the beginning.

The amount of empty space determines the size of the input.

Example: `There {{   is   }[are]} an airplace in the sky.`
The text input with default is mostly the same as text input but has default value at the beginning .