alexa-ssml

0.5.0 • Public • Published

alexa-ssml Build Status

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-jsx babel plugin

Example

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);

Custom Elements

import { ssml } from 'alexa-ssml';
 
function LongPause(props) {
    return <pause time={10000} />
}
 
const data = (
    <speak>
        Foo <LongPause /> bar.
    </speak>
)

API

ssml(tag, props, ...children) -> object
  • tag can be a string or function
  • Returns object like { tag, props, children }
renderToString(data, [options]) -> string
  • Takes in object from ssml function
  • Must be wrapped in a "speak" tag
  • Supported options:
    • pretty, defaults to false. Makes the SSML easier to read.

JSX Syntax

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" }]
    ]
}

Package Sidebar

Install

npm i alexa-ssml

Weekly Downloads

11

Version

0.5.0

License

MIT

Last publish

Collaborators

  • nickclaw