-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathindex.js
39 lines (36 loc) · 1.22 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
const cheerio = require('cheerio')
const amp = require('./lib/amp')
const css = require('./lib/css')
const img = require('./lib/img')
const picture = require('./lib/picture')
const script = require('./lib/script')
const charset = require('./lib/meta/charset')
const viewport = require('./lib/meta/viewport')
const ga = require('./lib/googleanalytics')
const iframe = require('./lib/iframe')
const boilerplate = require('./lib/boilerplate')
const serviceworker = require('./lib/serviceWorker')
const link = require('./lib/link/canonical')
const preload = require('./lib/link/preload')
const toolbox = require('./lib/toolbox')
const html = require('./lib/html')
const html2amp = async (htmlString, options = {}) => {
let $ = cheerio.load(htmlString)
$ = amp($, options)
$ = await css($, options)
$ = await picture($, options) // should be done before img
$ = await img($, options)
$ = script($, options)
$ = charset($, options)
$ = viewport($, options)
$ = ga($, options)
$ = iframe($, options)
$ = link($)
$ = preload($)
$ = serviceworker($, options)
$ = boilerplate($, options)
htmlString = html($, options)
htmlString = await toolbox.optimizer(htmlString, options)
return htmlString
}
module.exports = html2amp