spiegel-keyman/web/docs/engine/reference/interface/indexOutput.md
Marc Durdin 1f82507730 docs(web): deprecate unused and obsolete API endpoints and docs cleanup
Deprecate the following obsolete functions and properties:
* `keyman.helpURL`
* `keyman.util.rgba`
* `keyman.util.toFloat`
* `keyman.util.toNumber`
* `keyman.util.toNzString`

Use correct language for code blocks in Keyman Engine for Web
documentation.

Test-bot: skip
2026-08-12 16:07:22 +02:00

61 lines
2.2 KiB
Markdown

---
title: indexOutput (KIO)
---
## Summary
Index-based output: Outputs a mapped character according to a previous selection from a `keyman.interface.any()` call upon a [`store`](/developer/language/reference/store) string, after deleting `nd` characters.
## Syntax
```js
keyman.interface.indexOutput(nd, store, index, Pelem);
```
or
```js
KeymanWeb.KIO(nd, store, index, Pelem);
```
### Parameters
`nd`
: Type: `number`
: The number of characters to be overwritten.
`store`
: Type: `string`
: The store string to be used for mapping a character previously detected via `keyman.interface.any()`, which itself maps to a [`any`](/developer/language/reference/any) call.
`index`
: Type: `number`
: The index id to which the detected character's index in the original matching array was saved. The index id should be incremented by 1 relative to the value specified in `keyman.interface.any()`.
`Pelem`
: Type: `Element`
: The HTML element receiving the output.
## Description
This function corresponds most directly to the keyboard language command [`index`](/developer/language/reference/index), which operates upon text [`store`](/developer/language/reference/store)s to allow for array-based input-output text matching. For example,
```keyman
store(keys) 'abcde'
store(output) 'αβγδε'
+ any(keys) > index(output,1)
```
facilitates mapping the characters `'abcde'` to their respective entry in the output store `'αβγδε'`. `keyman.interface.indexOutput()`'s role in this process is usually optimized out into individual mappings for performance reasons, though it is often involved when `any` is involved as part of a rule's `context`, rather than upon the triggering keystroke itself.
In order to output the desired character corresponding to `'a'` in the `output` store above, the code
```js
keyman.interface.indexOutput(0, 'αβγδε', 1, Pelem)
```
would suffice, overwriting no characters and using the previously-matched index (id = 0 + 1). Note that the `keyman.interface.indexOutput()` call must increment the id by 1 due to Keyman's keyboard language rules, which corresponds directly to the `index` call in the keyboard source above.
## See also
- [`keyman.interface.any()`](any)