Skip to content

nickclaw/alexa-ssml

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

JSX for Alexa Skills Kit SSML

Resources

License

Stars

Watchers

Forks

Packages

No packages published