/amperize

AMP up your plain HTML

Primary LanguageJavaScriptMIT LicenseMIT

Amperize

Version npm Build Status Dependencies Coverage Status

AMP up your plain HTML. Replaces regular HTML tags with their equivalent AMP components.

Installation

npm install amperize

Node.js

var Amperize = require('amperize');

var html = '<img src="https://example.com/image.jpg" />';

var amperize = new Amperize();

amperize.parse(html, function (error, result) {
    if (error) {
        // do something with error
        return new Error(err);
    }
    // do something with result
    return result;
});

Restrictions

Amperize is build to convert the <body> part of your HTML. It will not create the AMP boilerplate and will not add the required <script> for each component.

Currently supported AMP HTML components

<amp-img>

<amp-img> reference

Amperize will convert common <img> tags into AMP HTML conform <amp-img> tags. With the sub-dependency image-size, Amperize will fetch the necessary width and height properties for the given image.

It will fall back to the default values width: 600 and height: 400, if the dimensions couldn't get fetched.

If any other error occurs (eg. missing src property), Amperize will not transform the tag and return the original.

<amp-anim>

<amp-anim> reference

When the <img> tag that needs to be transformed, is a .gif animation, Amperize will convert it into <amp-anim>, following the same rules as for <amp-img>.

<amp-iframe>

<amp-iframe> reference

Amperize converts iFrames like embedded videos from YouTube, Vimeo, etc. into <amp-iframe> tags.

<amp-audio>

<amp-audio> reference

Converts HTML <audio> into <amp-audio>.

Development

git clone git@github.com:jbhannah/amperize.git

cd amperize

npm install

npm run watch

npm run watch will restart the tests on changes.

Tests

Running the test:

npm run test

Code coverage:

npm run coverage

Credits

Borrows heavily from Minimize, especially the constructor, parse, amperizer, and traverse functions in the Amperize object, and the unit tests. Copyright (c) 2013 Moveo - Martijn Swaagman. Used under the MIT License (see LICENSE).