Além do acesso simples, você pode usar a configuração para gerar diferentes versões da marcação do fluxo de trabalho. Por exemplo, você pode gerar uma marcação usando um loop em uma entrada de texto múltipla ou condicionalmente, dependendo de uma entrada de caixa de seleção.

As funções auxiliares são muitas vezes ideais para este fim. As seções a seguir descrevem quais auxiliares estão disponíveis e como eles podem ser usados.

Ajudantes gerais

Aqui está uma lista de palavras-chave e suas descrições com um exemplo de código:

  • atribuir
    • Descrição: Permite atribuir uma variável.
    • Exemplo de código com uma variável myVal no contexto com o valor correspondente como saída:
{#assign "myval"}
Esta é uma variável
{/assign} 
  • matemática
    • Descrição: Permite executar operações aritméticas simples (em combinação com +,-,*,,/ e %).
    • Exemplo de código:
{matemática myNum "+" 5}
  • cada
    • Descrição: Você pode acessar o índice de loop atual via @index e o nome da chave atual via @key. Você também pode usar @first e @last para verificar se você está na primeira/última etapa da iteração
    • Exemplo de código com um valor como "0 1 2 3 4" como saída:
{#each myObj}
{@index}
{/cada}
  • durante
    • Descrição: Permite criar um loop for que permite uma repetição simples. ==,>,<,>=, e <= pode ser usado como operadores. Um parâmetro de hash pode ser usado para incrementar ou diminuir o contador.
    • Exemplo de código:
{#for 5 ">" 0 after="-2"}
{isso}
{/for}
  • comparar
    • Descrição: Permite comparar dois valores. ==, !=, <, , <=e equalsIgnoreCase pode ser usado como operadores.
    • Exemplo de código para fornecer TRUE como saída se a variável myStr for "Hello":
{comapre myStr "==" "Hallo}
  • interruptor, caso
    • Descrição: Permite criar uma construção de switch/case.
    • Exemplo de código para retornar "Este é um artigo." como saída se o tipo for "article":
{#switch tipo}
{#case "artigo"}
Este é um artigo
{/case}
{#case "resource"}
This is a resource
{/case}
  • se
    • Descrição: Permite inserir um bloco de texto se uma condição for atendida.
    • Exemplo de código para fornecer "Permitido para unidade" como saída se as variáveis isCar=false booleanas e hasLicense=true:
{#if (ou (e isCar hasPlate) (e (não isCar) hasLicense)))}
Permitido dirigir.
{senão}
Não é permitido dirigir.
  • a menos que
    • Descrição: Permite inserir um bloco de texto se uma condição inversa for atendida.
    • Exemplo de código para fornecer "Isto é texto" como saída se trueVar=true:
{a menos que trueVar}
Isto é text
{/unless}
  • e
    • Descrição: Atua como o lógico E para vários valores booleanos.
    • Exemplo de código para retornar TRUE ou FALSE como saída, dependendo das variáveis:
{e isCar hasPlate}
  • ou
    • Descrição: Atua como o OR lógico para vários valores booleanos.
    • Exemplo de código para retornar TRUE ou FALSE como saída, dependendo das variáveis:
    • Exemplo de código:
{ou isCar hasPlate}
  • não
    • Descrição: Atua como o NÃO lógico para vários valores booleanos.
    • Exemplo de código para retornar TRUE como saída se isCar=false:
{não éCar}
  • coleção
    • Descrição: Permite retornar a propriedade size ou singleton de uma coleção.
size, is_not_singletone is_singleton pode ser usado como operadores.
  • Exemplo de código para retornar o tamanho (por exemplo, "4") como saída:
  • {coleção myColl "size"}
    
    • pesquisa
      • Descrição: Permite a resolução dinâmica de parâmetros usando variáveis para, por exemplo, resolver valores para índices de matriz.
      • Exemplo de código:
    {barra #each
    }{lookup .. /foo@index}
    {/each}
    
    • com
      • Descrição: Pode ser usado para passar um parâmetro para um auxiliar.
      • Exemplo de código:
    {#with myVal}
    {#ech myObj}
    {/cada}
    {/com}
    

    Ajudantes de cadeia de caracteres

    Aqui está uma lista de palavras-chave e suas descrições com um exemplo de código:

    • formato de caso
      • Descrição: Permite aplicar um formato específico a cadeias de caracteres ("lowercase", "lowercase_underscore"ou "lowercase_hyphen").
      • Exemplo de código para reformatar uma cadeia de caracteres como "Esta é uma cadeia de caracteres" como "this_is_a_string":
    {caseFormat myStr "lowercase_underscore"}
    
    • capitalizarPrimeiro
      • Descrição: Permite colocar em maiúsculas a primeira letra de uma cadeia de caracteres.
      • Exemplo de código para reformatar uma cadeia de caracteres como "teamViewer" como "TeamViewer":
    {capitalizePrimeiro valor}
    
    • cortar
      • Descrição: Permite remover todos os valores de um argumento de uma determinada cadeia de caracteres
      • Exemplo de código para reformatar uma cadeia de caracteres como "String with spaces" como "Stringwithspaces":
    {valor de corte " "}
    
    • defaultIfEmpty
      • Descrição: Permite definir um valor alternativo a ser usado se uma avaliação retornar FALSE. Caso contrário, o valor original será usado.
      • Exemplo de código para fornecer "nada" como saída se a variável de valor estiver vazia:
    {defaultIfEmpty valor "nothing"}
    
    • juntar
      • Descrição: Permite que você junte uma matriz com um iterador ou iterável com uma cadeia de caracteres
      • Exemplo de código para fornecer "a // b // c" como saída para uma matriz contendo apenas os valores "a", "b" e "c":
    {join "a" "b" "c" " // " prefix="" suffix=""}
    
    • centro
      • Descrição: Permite centralizar o alinhamento do valor em um campo de uma determinada largura.
      • Exemplo de código:
    {tamanho do valor central=19 pad=" "}
    
    • Justo
      • Descrição: Permite alinhar o valor à esquerda em um campo de uma determinada largura.
      • Exemplo de código:
    {ljust valor 20 pad=" "}
    
    • Apenas
      • Descrição: Permite alinhar o valor à direita em um campo de uma determinada largura.
      • Exemplo de código:
    {rjust valor 20 pad=" "}
    
    • Subsequência
      • Descrição: Permite dividir uma cadeia de caracteres em substrings.
      • Exemplo de código para fornecer "Viewer" e, respectivamente, "Team" como saída após o processamento de uma cadeia de caracteres com "TeamViewer" como valor original:
    {valor da substring 3}
    {valor da substring 0 3}
    
    • abaixar
      • Descrição: Permite converter uma cadeia de caracteres em todo o texto minúsculo.
      • Exemplo de código para reformatar uma cadeia de caracteres como "TeamViewer" como "teamviewer":
    {menor valor}
    
    • superior
      • Descrição: Permite converter uma cadeia de caracteres em todo o texto maiúsculo.
      • Exemplo de código para reformatar uma cadeia de caracteres como "Hello" como "HELLO":
    {valor superior}
    
    • Slugify
      • Descrição: Permite converter uma cadeia de caracteres em todo o texto minúsculo e remover simultaneamente quaisquer caracteres não-palavras (alfanuméricos e sublinhados), bem como converter espaços em hífens. Além disso, qualquer espaço em branco à direita é cortado.
      • Exemplo de código para reformatar uma cadeia de caracteres como "TeamViewer is great" como "teamviewer-is-great":
    {valor slugify}
    
    • stringFormat
      • Descrição: Permite formatar uma variável de acordo com um argumento específico (atua como um especificador de formatação de cadeia de caracteres).
      • Exemplo de código para fornecer "Hello TeamViewer" como saída if value="Hello %s" e param1="TeamViewer":
    {stringFormat valor param1}
    
    • stringTags
      • Descrição: Permite remover todas as tags HTML e XHTML.
  • Exemplo de código:
  • {valor stripTags}
    
    • capitalizar
      • Descrição: permite colocar todas as palavras em maiúsculas em uma cadeia de caracteres separadas por espaços em branco.
      • Exemplo de código para reformatar uma cadeia de caracteres como "minha primeira postagem" como "Minha primeira postagem":
    {valor em maiúsculas totalmente=false}
    
    • abreviar
      • Descrição: Permite truncar uma cadeia de caracteres se ela for maior do que o número especificado de caracteres. As cadeias de caracteres truncadas terminarão com um charater de reticências traduzível ("... ")
      • Exemplo de código para reformatar uma cadeia de caracteres como "TeamViewer is great" como "TeamVi... ":
    {abreviar valor 6}
    
    • wordWrap
      • Descrição: Permite encapsular palavras no comprimento de linha especificado.
      • Exemplo de código para reformatar uma cadeia de caracteres como "Minhas palavras são longas" como "Meu\r\npalavras\r\n são\r\n longas":
    {wordWrap valor 5}
    
    • substituir
      • Descrição: Permite substituir cada ocorrência de uma subcadeia de caracteres específica de uma cadeia de caracteres que corresponde à sequência de destino literal pela sequência de substituição literal especificada.
      • Exemplo de código para reformatar uma cadeia de caracteres como "Guidão ... " como "Guidão de pedras":
    {substitua o valor "... " "rochas"}
    
    • Pois é.
      • Descrição: Permite mapear valores para TRUE, FALSEe (opcionalmente) NULL para cadeias de caracteres com valores como "sim", "não" ou "talvez".
      • Exemplo de código:
    {yesno valor yes="yes" no="no" maybe="talvez"}
    
    • formato de data
      • Descrição: Permite aplicar um formato específico para datas. A opção de formato pode ser especificada como parâmetro ou hash (ou seja, parâmetro names). Você pode usar as seguintes opções:
        • "full" para mostrar datas em um formato como "terça-feira,  19 de junho de 2012"
        • "medium" para mostrar datas em um formato como "Jun 19, 2012"
        • "short" para mostrar datas em um formato como "19/06/12"
        • "pattern" para mostrar datas em um padrão personalizado.
      • Exemplo de código:
    {dateFormat data ["format"]
    [format="formato"]
    [tz=fuso horário|timeZoneId]}
    
    • númeroFormato
      • Descrição: Permite usar um dos seguintes parâmetros de formatação: "inteiro", "moeda", "porcentagem" e "padrão"]. Outras opções disponíveis são:
        • groupingUsed para definir se o agrupamento será ou não usado no formato
        • maximumFractionDigits para definir o número máximo de dígitos permitidos na porção de fração
        • maximumIntegerDigits Para definir o número máximo de dígitos na parte inteira
        • minimumFractionDigits para definir o número mínimo de dígitos na porção fracionária
        • minimumIntegerDigits Para definir o número mínimo de dígitos na parte inteira
        • parseIntegerOnly para definir se os números devem ou não ser analisados como apenas inteiros
        • roundingModepara definir como os números devem ser arredondados o (em combinação com , , , , FLOOR, HALF_UP, HALF_DOWN, , HALF_EVEN) UNNECESSARYCEILINGDOWNUP
      • Exemplo de código:
    {númeroNúmero do formato ["format"] [locale=padrão]}
    

    Exemplos

    Veja um exemplo prático:

    "Geral": {
              "use_camera": {
                  "title": "Usar câmera de Smartglasses",
                  "inputType": "checkbox-input",
                  "value": "true"
              }
        }
    }<
    onresume>
        <rule id="auto">
            <expression>1</expression><
            actions>
                §{#if General.use_camera.value}§
                <action ref="start_cam"/>
                §{/if}§
            </ ações>
        </regra>
    </onresume>
    

    Como você pode ver, a palavra-chave if aqui permite que você execute apenas uma ação quando o parâmetro de configuração correspondente estiver definido como true. É importante notar que todas as palavras-chave são usadas dentro do escopo escrevendo primeiro uma hashtag (#).

    Aqui está outro exemplo usando cada palavra-chave:

    {
        "Configuration": {
            "buttons": {
                "title": "Function Keys",
                "inputType": "multiple-dropdown-input",
                "elements": [
                    {
                        "name": "TAB",
                        "content": "ANDRRES_key_tab",
                        "type": "TEXT",
                        "translatable": true
                    },
                    {
                        "name": "DELETE",
                        "content": "ANDRRES_key_delete",
                        "type": "TEXT",
                        "translatable": true
                    },
                    {
                        "name": "BACKSPACE",
                        "content": "ANDRRES_key_backspace",
                        "type": "TEXT",
                        "translatable": true
                    },
                    {
                        "name": "F1",
                        "content": "F1",
                        "speech_cmd":  "F 1",
                        "type": "TEXT"
                    },
                    {
                        "name": "F2",
                        "content": "F2",
                        "speech_cmd": "F 2",
                        "type": "TEXT"
                    }
                ],
                "value": [
                    {
                        "name": "TAB",
                        "content": "ANDRRES_key_tab",
                        "type":  "TEXT",
                        "translatable": true
                    },
                    {
                        "name": "DELETE",
                        "content": "ANDRRES_key_delete",
                        "type": "TEXT",
                        "translatable": true
                    }
                ]
            }
        }
    }
    <ui_update id="show_key_input_footer">
        <widget_params>
            <ui_element name="FOOTER_L2"><
                param name="VISIBILIDADE">INVISIBLE</param>
            </ui_element>
            <ui_element name="RETURN_L1">
                <param name="menu_id" descriptor="">0</param>
            </ui_element>
            §{#each Configuration.buttons.value}§
                <ui_element name="§{name}§">
                    <param name="menu_id" descriptor="">§{math @index "+" 1}§</param>
                </ui_element>
                §{#if @last}§
                    §{#if Configuration.enable_camera.value}§
                        <ui_element name="CAMERA">
                            <param name="MENU_ID">§{math @.. /index "+" 2}§</param>
                        </ui_element>
                        <ui_element name="ENTER">
                            <param name="MENU_ID">§{math @.. /index "+" 3}§</param>
                        </ui_element>
                    §{else}§
                        <ui_element name="ENTER">
                            <param name="MENU_ID">§{math @..
    /índice "+" 2}§</param> </ui_element> §{/se}§ §{/se}§ §{/cada}§ </widget_params> </ui_update>

    Neste exemplo, um menu suspenso de vários níveis é usado para configurar vários botões que são mostrados na interface do usuário. Para os dois últimos botões, há uma varredura de código de barras, dependendo se uma entrada de caixa de seleção está definida, bem como outro botão padrão. Ambos os botões são mostrados mais à direita na interface. Como você pode vê-lo aqui, você também pode criar componentes altamente configuráveis como este.