Manipulate and validate the subset of SSML supported by the Alexa Skills Kit
npm install alexa-ssml
- Only supports limited syntax
- Camel case tag names and properties.
<break />changed to<pause />- Compatible with
transform-react-jsxbabel plugin
import { ssml, renderToString } from 'alexa-ssml';
const tags = (
<speak>
Here is a number <w role="ivona:VBD">read</w> as a cardinal number:
<sayAs interpretAs="cardinal">12345</sayAs>.
Here is a word spelled out: <sayAs interpretAs="spell-out">hello</sayAs>.
</speak>
);
const raw = renderToString(tags);import { ssml } from 'alexa-ssml';
function LongPause(props) {
return <pause time={10000} />
}
const data = (
<speak>
Foo <LongPause /> bar.
</speak>
)tagcan be a string or function- Returns object like
{ tag, props, children }
- Takes in object from
ssmlfunction - Must be wrapped in a
"speak"tag - Supported options:
pretty, defaults to false. Makes the SSML easier to read.
To use SSML JSX syntax directly in JavaScript add /** @jsx ssml */ to the top of the file or configure transform-react-jsx using .babelrc:
{
"plugins": [
["transform-react-jsx", { "pragma": "ssml" }]
]
}