rehypejs / rehype-minify

Compare c456352 ... +2 ... 3e1903a

Coverage Reach
rehype-minify-whitespace/index.js rehype-minify-whitespace/test.js rehype-minify-whitespace/content.js rehype-minify-whitespace/block.js rehype-minify-whitespace/skippable.js rehype-minify-enumerated-attribute/index.js rehype-minify-enumerated-attribute/test.js rehype-minify-enumerated-attribute/schema.js rehype-sort-attribute-values/index.js rehype-sort-attribute-values/test.js rehype-remove-meta-http-equiv/index.js rehype-remove-meta-http-equiv/test.js rehype-minify-url/index.js rehype-minify-url/test.js rehype-sort-attributes/index.js rehype-sort-attributes/test.js hast-util-is-javascript/test.js hast-util-is-javascript/index.js rehype-concat-javascript/index.js rehype-concat-javascript/test.js rehype-minify-javascript-url/index.js rehype-minify-javascript-url/test.js rehype-javascript-to-bottom/index.js rehype-javascript-to-bottom/test.js hast-util-is-body-ok-link/index.js hast-util-is-body-ok-link/test.js rehype-minify-attribute-whitespace/index.js rehype-minify-attribute-whitespace/test.js rehype-minify-meta-content/index.js rehype-minify-meta-content/test.js rehype-concat-css-style/index.js rehype-concat-css-style/test.js rehype-minify-meta-color/index.js rehype-minify-meta-color/test.js rehype-minify-event-handler/index.js rehype-minify-event-handler/test.js rehype-normalize-attribute-value-case/index.js rehype-normalize-attribute-value-case/test.js rehype-minify-style-attribute/index.js rehype-minify-style-attribute/test.js rehype-minify-media-attribute/index.js rehype-minify-media-attribute/test.js rehype-css-to-top/index.js rehype-css-to-top/test.js hast-util-is-css-link/test.js hast-util-is-css-link/index.js rehype-prevent-favicon-request/index.js rehype-prevent-favicon-request/test.js rehype-minify-javascript-script/index.js rehype-minify-javascript-script/test.js hast-util-to-string/index.js hast-util-to-string/test.js hast-util-is-css-style/test.js hast-util-is-css-style/index.js rehype-minify-css-style/index.js rehype-minify-css-style/test.js rehype-remove-empty-attribute/index.js rehype-remove-empty-attribute/test.js rehype-remove-duplicate-attribute-values/index.js rehype-remove-duplicate-attribute-values/test.js rehype-remove-script-type-javascript/index.js rehype-remove-script-type-javascript/test.js rehype-minify-language/index.js rehype-minify-language/test.js rehype-remove-style-type-css/test.js rehype-remove-style-type-css/index.js rehype-minify-json-script/index.js rehype-minify-json-script/test.js hast-util-from-string/test.js hast-util-from-string/index.js rehype-remove-external-script-content/test.js rehype-remove-external-script-content/index.js rehype-minify-doctype/index.js rehype-minify-doctype/test.js rehype-remove-comments/test.js rehype-remove-comments/index.js hast-util-is-conditional-comment/test.js hast-util-is-conditional-comment/index.js hast-util-is-event-handler/test.js hast-util-is-event-handler/index.js rehype-preset-minify/index.js

No flags found

Use flags to group coverage reports by test type, project and/or folders.
Then setup custom commit statuses and notifications for each flag.

e.g., #unittest #integration

#production #enterprise

#frontend #backend

Learn more about Codecov Flags here.


@@ -3,6 +3,16 @@
Loading
3 3
// This schema exposes a map of property names to (one or more) definitions.
4 4
// Each definition defined how that attribute is enumerated.
5 5
module.exports = {
6 +
  autoComplete: {
7 +
    tagNames: null,
8 +
    missing: '',
9 +
    states: [['', 'on'], 'off']
10 +
  },
11 +
  behavior: {
12 +
    tagNames: 'marquee',
13 +
    missing: 'scroll',
14 +
    states: ['alternate', 'scroll', 'slide']
15 +
  },
6 16
  charSet: {
7 17
    tagNames: ['meta', 'script'],
8 18
    // In HTML5, utf8 is implied.
@@ -218,70 +228,113 @@
Loading
218 228
      ['x-user-defined']
219 229
    ]
220 230
  },
231 +
  contentEditable: {
232 +
    tagNames: null,
233 +
    missing: null,
234 +
    invalid: null,
235 +
    states: [null, ['', 'true'], 'false']
236 +
  },
221 237
  crossOrigin: {
222 238
    tagNames: ['link', 'img', 'audio', 'video', 'script'],
223 239
    missing: null,
224 240
    invalid: '',
225 241
    states: [['', 'anonymous'], 'use-credentials']
226 242
  },
227 -
  // Should also apply to `content` on `meta[name=referrer]`.
228 -
  referrerpolicy: {
229 -
    tagNames: ['link', 'a', 'area', 'img', 'iframe'],
243 +
  dir: {
244 +
    tagNames: null,
230 245
    missing: '',
231 246
    invalid: '',
232 -
    states: [
233 -
      '',
234 -
      'no-referrer',
235 -
      'origin',
236 -
      'no-referrer-when-downgrade',
237 -
      'origin-when-cross-origin',
238 -
      'unsafe-url'
239 -
    ]
240 -
  },
241 -
  translate: {
242 -
    tagNames: null,
243 -
    missing: null,
244 -
    invalid: null,
245 -
    states: [['', 'yes'], 'no']
246 -
  },
247 -
  contentEditable: {
248 -
    tagNames: null,
249 -
    missing: null,
250 -
    invalid: null,
251 -
    states: [null, ['', 'true'], 'false']
247 +
    states: ['', 'ltr', 'rtl', 'auto']
252 248
  },
253 -
  spellCheck: {
254 -
    tagNames: null,
255 -
    missing: null,
256 -
    invalid: null,
257 -
    states: [null, ['', 'true'], 'false']
249 +
  direction: {
250 +
    tagNames: 'marquee',
251 +
    missing: 'left',
252 +
    states: ['left', 'right', 'up', 'down']
258 253
  },
259 254
  draggable: {
260 255
    tagNames: null,
261 256
    missing: null,
262 257
    states: [null, 'true', 'false']
263 258
  },
264 -
  autoComplete: {
265 -
    tagNames: null,
266 -
    missing: '',
267 -
    states: [['', 'on'], 'off']
259 +
  // Also for `formEncType` on submit buttons.
260 +
  encType: {
261 +
    tagNames: 'form',
262 +
    invalid: 'application/x-www-form-urlencoded',
263 +
    missing: 'application/x-www-form-urlencoded',
264 +
    states: [
265 +
      'application/x-www-form-urlencoded',
266 +
      'multipart/form-data',
267 +
      'text/plain'
268 +
    ]
268 269
  },
269 -
  dir: {
270 -
    tagNames: null,
271 -
    missing: '',
270 +
  inputMode: {
271 +
    // In fact only applies to `text`, `search`, and `password`.
272 +
    tagNames: 'input',
272 273
    invalid: '',
273 -
    states: ['', 'ltr', 'rtl', 'auto']
274 +
    missing: '',
275 +
    states: [
276 +
      '',
277 +
      'email',
278 +
      'full-width-latin',
279 +
      'kana',
280 +
      'kana-name',
281 +
      'katakana',
282 +
      'latin',
283 +
      'latin-name',
284 +
      'latin-prose',
285 +
      'numeric',
286 +
      'tel',
287 +
      'url',
288 +
      'verbatim'
289 +
    ]
290 +
  },
291 +
  loading: {
292 +
    tagNames: ['iframe', 'img'],
293 +
    invalid: 'eager',
294 +
    missing: 'eager',
295 +
    states: ['eager', 'lazy']
296 +
  },
297 +
  keytype: {
298 +
    tagNames: 'keygen',
299 +
    missing: 'rsa',
300 +
    states: ['', 'rsa']
274 301
  },
275 302
  kind: {
276 303
    tagNames: 'track',
277 304
    missing: 'subtitles',
278 305
    invalid: 'metadata',
279 -
    states: ['subtitles', 'captions', 'descriptions', 'chapters', 'metadata']
306 +
    states: ['captions', 'chapters', 'descriptions', 'metadata', 'subtitles']
307 +
  },
308 +
  // Also for `formMethod` on submit buttons.
309 +
  method: {
310 +
    tagNames: 'form',
311 +
    invalid: 'get',
312 +
    missing: 'get',
313 +
    states: ['dialog', 'get', 'post']
280 314
  },
281 315
  preload: {
282 316
    tagNames: ['audio', 'video'],
283 317
    // Note: https://html.spec.whatwg.org/#attr-media-preload
284 -
    states: ['none', 'metadata', ['', 'auto']]
318 +
    states: [['', 'auto'], 'metadata', 'none']
319 +
  },
320 +
  // Should also apply to `content` on `meta[name=referrer]`.
321 +
  referrerPolicy: {
322 +
    tagNames: ['a', 'area', 'iframe', 'img', 'link'],
323 +
    missing: '',
324 +
    invalid: '',
325 +
    states: [
326 +
      '',
327 +
      'no-referrer',
328 +
      'no-referrer-when-downgrade',
329 +
      'origin',
330 +
      'origin-when-cross-origin',
331 +
      'unsafe-url'
332 +
    ]
333 +
  },
334 +
  scope: {
335 +
    tagNames: 'th',
336 +
    missing: '',
337 +
    states: ['', 'col', 'colgroup', 'row', 'rowgroup']
285 338
  },
286 339
  shape: {
287 340
    tagNames: 'area',
@@ -294,113 +347,84 @@
Loading
294 347
      'default'
295 348
    ]
296 349
  },
297 -
  scope: {
298 -
    tagNames: 'th',
299 -
    missing: '',
300 -
    states: ['', 'row', 'col', 'rowgroup', 'colgroup']
350 +
  spellCheck: {
351 +
    tagNames: null,
352 +
    missing: null,
353 +
    invalid: null,
354 +
    states: [null, ['', 'true'], 'false']
355 +
  },
356 +
  translate: {
357 +
    tagNames: null,
358 +
    missing: null,
359 +
    invalid: null,
360 +
    states: [['', 'yes'], 'no']
301 361
  },
302 362
  type: [
303 363
    {
304 364
      tagNames: 'button',
305 365
      missing: 'submit',
306 -
      states: ['submit', 'reset', 'button', 'menu']
307 -
    },
308 -
    {
309 -
      tagNames: 'menu',
310 -
      missing: '',
311 -
      states: ['', 'context', 'toolbar']
312 -
    },
313 -
    {
314 -
      tagNames: 'menuitem',
315 -
      missing: 'command',
316 -
      states: ['command', 'checkbox', 'radio']
366 +
      states: ['button', 'menu', 'reset', 'submit']
317 367
    },
318 368
    {
319 369
      tagNames: 'input',
320 370
      missing: 'text',
321 371
      states: [
322 -
        'text',
323 -
        'hidden',
324 -
        'search',
325 -
        'tel',
326 -
        'url',
327 -
        'email',
328 -
        'password',
372 +
        'button',
373 +
        'checkbox',
374 +
        'color',
329 375
        'date',
330 -
        'month',
331 -
        'week',
332 -
        'time',
333 376
        'datetime-local',
334 -
        'number',
335 -
        'range',
336 -
        'color',
337 -
        'checkbox',
338 -
        'radio',
377 +
        'email',
339 378
        'file',
340 -
        'submit',
379 +
        'hidden',
341 380
        'image',
381 +
        'number',
382 +
        'month',
383 +
        'password',
384 +
        'radio',
385 +
        'range',
342 386
        'reset',
343 -
        'button'
387 +
        'search',
388 +
        'submit',
389 +
        'tel',
390 +
        'text',
391 +
        'time',
392 +
        'url',
393 +
        'week'
344 394
      ]
395 +
    },
396 +
    {
397 +
      tagNames: 'li',
398 +
      missing: '',
399 +
      invalid: '',
400 +
      states: ['1', 'a', 'A', 'i', 'I', 'circle', 'disc', 'none', 'square']
401 +
    },
402 +
    {
403 +
      tagNames: 'menu',
404 +
      missing: '',
405 +
      states: ['', 'context', 'toolbar']
406 +
    },
407 +
    {
408 +
      tagNames: 'menuitem',
409 +
      missing: 'command',
410 +
      states: ['checkbox', 'command', 'radio']
411 +
    },
412 +
    {
413 +
      tagNames: 'ol',
414 +
      missing: '',
415 +
      invalid: '',
416 +
      states: ['1', 'a', 'A', 'i', 'I']
417 +
    },
418 +
    {
419 +
      tagNames: 'ul',
420 +
      missing: '',
421 +
      invalid: '',
422 +
      states: ['circle', 'disc', 'none', 'square']
345 423
    }
346 424
  ],
347 425
  wrap: {
348 426
    tagNames: 'textarea',
349 427
    missing: 'soft',
350 -
    states: ['soft', 'hard']
351 -
  },
352 -
  keyType: {
353 -
    tagNames: 'keygen',
354 -
    missing: 'rsa',
355 -
    states: ['', 'rsa']
356 -
  },
357 -
  // Also for `formMethod` on submit buttons.
358 -
  method: {
359 -
    tagNames: 'form',
360 -
    invalid: 'get',
361 -
    missing: 'get',
362 -
    states: ['get', 'post', 'dialog']
363 -
  },
364 -
  // Also for `formEncType` on submit buttons.
365 -
  encType: {
366 -
    tagNames: 'form',
367 -
    invalid: 'application/x-www-form-urlencoded',
368 -
    missing: 'application/x-www-form-urlencoded',
369 -
    states: [
370 -
      'application/x-www-form-urlencoded',
371 -
      'multipart/form-data',
372 -
      'text/plain'
373 -
    ]
374 -
  },
375 -
  inputMode: {
376 -
    // In fact only applies to `text`, `search`, and `password`.
377 -
    tagNames: 'input',
378 -
    invalid: '',
379 -
    missing: '',
380 -
    states: [
381 -
      '',
382 -
      'verbatim',
383 -
      'latin',
384 -
      'latin-name',
385 -
      'latin-prose',
386 -
      'full-width-latin',
387 -
      'kana',
388 -
      'kana-name',
389 -
      'katakana',
390 -
      'numeric',
391 -
      'tel',
392 -
      'email',
393 -
      'url'
394 -
    ]
395 -
  },
396 -
  behavior: {
397 -
    tagNames: 'marquee',
398 -
    missing: 'scroll',
399 -
    states: ['scroll', 'slide', 'alternate']
400 -
  },
401 -
  direction: {
402 -
    tagNames: 'marquee',
403 -
    missing: 'left',
404 -
    states: ['left', 'right', 'up', 'down']
428 +
    states: ['hard', 'soft']
405 429
  }
406 430
}

@@ -130,5 +130,50 @@
Loading
130 130
    h('link', {crossOrigin: ''})
131 131
  )
132 132
133 +
  t.deepEqual(
134 +
    rehype()
135 +
      .use(min)
136 +
      .runSync(h('img', {loading: 'eager'})),
137 +
    {
138 +
      type: 'element',
139 +
      tagName: 'img',
140 +
      properties: {loading: null},
141 +
      children: []
142 +
    }
143 +
  )
144 +
145 +
  t.deepEqual(
146 +
    rehype()
147 +
      .use(min)
148 +
      .runSync(h('img', {loading: 'lazy'})),
149 +
    h('img', {loading: 'lazy'})
150 +
  )
151 +
152 +
  t.deepEqual(
153 +
    rehype()
154 +
      .use(min)
155 +
      .runSync(h('img', {loading: 'xxx'})),
156 +
    {
157 +
      type: 'element',
158 +
      tagName: 'img',
159 +
      properties: {loading: null},
160 +
      children: []
161 +
    }
162 +
  )
163 +
164 +
  t.deepEqual(rehype().use(min).runSync(h('img')), h('img'))
165 +
166 +
  t.deepEqual(
167 +
    rehype()
168 +
      .use(min)
169 +
      .runSync(h('li', {type: 'xxx'})),
170 +
    {
171 +
      type: 'element',
172 +
      tagName: 'li',
173 +
      properties: {type: null},
174 +
      children: []
175 +
    }
176 +
  )
177 +
133 178
  t.end()
134 179
})

@@ -1,68 +1,61 @@
Loading
1 1
// See: <https://html.spec.whatwg.org/#the-css-user-agent-style-sheet-and-presentational-hints>
2 2
module.exports = [
3 -
  // Contribute whitespace intrinsically.
4 -
  'br',
5 -
  'wbr',
6 -
  // Similar to block.
7 -
  'li',
8 -
  'table',
9 -
  'caption',
10 -
  'colgroup',
11 -
  'col',
12 -
  'thead',
13 -
  'tbody',
14 -
  'tfoot',
15 -
  'tr',
16 -
  'td',
17 -
  'th',
18 -
  'summary',
19 -
  'optgroup',
20 -
  'option',
21 -
  // Page
22 -
  'html',
23 -
  'head',
24 -
  'body',
25 -
  // Flow content
26 -
  'address',
27 -
  'blockquote',
28 -
  'center', // Legacy
29 -
  'dialog',
30 -
  'div',
31 -
  'figure',
32 -
  'figcaption',
33 -
  'footer',
34 -
  'form',
35 -
  'header',
36 -
  'hr',
37 -
  'legend',
38 -
  'listing', // Legacy
39 -
  'main',
40 -
  'p',
41 -
  'plaintext', // Legacy
42 -
  'pre',
43 -
  'xmp', // Legacy
44 -
  // Sections and headings
45 -
  'article',
46 -
  'aside',
47 -
  'h1',
48 -
  'h2',
49 -
  'h3',
50 -
  'h4',
51 -
  'h5',
52 -
  'h6',
53 -
  'hgroup',
54 -
  'nav',
55 -
  'section',
56 -
  // Lists
57 -
  'dir', // Legacy
58 -
  'dd',
59 -
  'dl',
60 -
  'dt',
61 -
  'menu',
62 -
  'ol',
63 -
  'ul',
64 -
  // Block-like:
65 -
  'li',
66 -
  'th',
67 -
  'td'
3 +
  'address', // Flow content.
4 +
  'article', // Sections and headings.
5 +
  'aside', // Sections and headings.
6 +
  'blockquote', // Flow content.
7 +
  'body', // Page.
8 +
  'br', // Contribute whitespace intrinsically.
9 +
  'caption', // Similar to block.
10 +
  'center', // Flow content, legacy.
11 +
  'col', // Similar to block.
12 +
  'colgroup', // Similar to block.
13 +
  'dd', // Lists.
14 +
  'dialog', // Flow content.
15 +
  'dir', // Lists, legacy.
16 +
  'div', // Flow content.
17 +
  'dl', // Lists.
18 +
  'dt', // Lists.
19 +
  'figcaption', // Flow content.
20 +
  'figure', // Flow content.
21 +
  'footer', // Flow content.
22 +
  'form', // Flow content.
23 +
  'h1', // Sections and headings.
24 +
  'h2', // Sections and headings.
25 +
  'h3', // Sections and headings.
26 +
  'h4', // Sections and headings.
27 +
  'h5', // Sections and headings.
28 +
  'h6', // Sections and headings.
29 +
  'head', // Page.
30 +
  'header', // Flow content.
31 +
  'hgroup', // Sections and headings.
32 +
  'hr', // Flow content.
33 +
  'html', // Page.
34 +
  'legend', // Flow content.
35 +
  'li', // Block-like.
36 +
  'li', // Similar to block.
37 +
  'listing', // Flow content, legacy
38 +
  'main', // Flow content.
39 +
  'menu', // Lists.
40 +
  'nav', // Sections and headings.
41 +
  'ol', // Lists.
42 +
  'optgroup', // Similar to block.
43 +
  'option', // Similar to block.
44 +
  'p', // Flow content.
45 +
  'plaintext', // Flow content, legacy
46 +
  'pre', // Flow content.
47 +
  'section', // Sections and headings.
48 +
  'summary', // Similar to block.
49 +
  'table', // Similar to block.
50 +
  'tbody', // Similar to block.
51 +
  'td', // Block-like.
52 +
  'td', // Similar to block.
53 +
  'tfoot', // Similar to block.
54 +
  'th', // Block-like.
55 +
  'th', // Similar to block.
56 +
  'thead', // Similar to block.
57 +
  'tr', // Similar to block.
58 +
  'ul', // Lists.
59 +
  'wbr', // Contribute whitespace intrinsically.
60 +
  'xmp' // Flow content, legacy
68 61
]

Everything is accounted for!

No changes detected that need to be reviewed.
What changes does Codecov check for?
Lines, not adjusted in diff, that have changed coverage data.
Files that introduced coverage data that had none before.
Files that have missing coverage data that once were tracked.
Files Coverage
packages/hast-util-from-string/index.js 100.00%
packages/hast-util-from-string/test.js 100.00%
packages/hast-util-is-body-ok-link/index.js 100.00%
packages/hast-util-is-body-ok-link/test.js 100.00%
packages/hast-util-is-conditional-comment/index.js 100.00%
packages/hast-util-is-conditional-comment/test.js 100.00%
packages/hast-util-is-css-link/index.js 100.00%
packages/hast-util-is-css-link/test.js 100.00%
packages/hast-util-is-css-style/index.js 100.00%
packages/hast-util-is-css-style/test.js 100.00%
packages/hast-util-is-event-handler/index.js 100.00%
packages/hast-util-is-event-handler/test.js 100.00%
packages/hast-util-is-javascript/index.js 100.00%
packages/hast-util-is-javascript/test.js 100.00%
packages/hast-util-to-string/index.js 100.00%
packages/hast-util-to-string/test.js 100.00%
packages/rehype-concat-css-style/index.js 100.00%
packages/rehype-concat-css-style/test.js 100.00%
packages/rehype-concat-javascript/index.js 100.00%
packages/rehype-concat-javascript/test.js 100.00%
packages/rehype-css-to-top/index.js 100.00%
packages/rehype-css-to-top/test.js 100.00%
packages/rehype-javascript-to-bottom/index.js 100.00%
packages/rehype-javascript-to-bottom/test.js 100.00%
packages/rehype-minify-attribute-whitespace/index.js 100.00%
packages/rehype-minify-attribute-whitespace/test.js 100.00%
packages/rehype-minify-css-style/index.js 100.00%
packages/rehype-minify-css-style/test.js 100.00%
packages/rehype-minify-doctype/index.js 100.00%
packages/rehype-minify-doctype/test.js 100.00%
packages/rehype-minify-enumerated-attribute/index.js 100.00%
packages/rehype-minify-enumerated-attribute/schema.js 100.00%
packages/rehype-minify-enumerated-attribute/test.js 100.00%
packages/rehype-minify-event-handler/index.js 100.00%
packages/rehype-minify-event-handler/test.js 100.00%
packages/rehype-minify-javascript-script/index.js 100.00%
packages/rehype-minify-javascript-script/test.js 100.00%
packages/rehype-minify-javascript-url/index.js 100.00%
packages/rehype-minify-javascript-url/test.js 100.00%
packages/rehype-minify-json-script/index.js 100.00%
packages/rehype-minify-json-script/test.js 100.00%
packages/rehype-minify-language/index.js 100.00%
packages/rehype-minify-language/test.js 100.00%
packages/rehype-minify-media-attribute/index.js 100.00%
packages/rehype-minify-media-attribute/test.js 100.00%
packages/rehype-minify-meta-color/index.js 100.00%
packages/rehype-minify-meta-color/test.js 100.00%
packages/rehype-minify-meta-content/index.js 100.00%
packages/rehype-minify-meta-content/test.js 100.00%
packages/rehype-minify-style-attribute/index.js 100.00%
packages/rehype-minify-style-attribute/test.js 100.00%
packages/rehype-minify-url/index.js 100.00%
packages/rehype-minify-url/test.js 100.00%
packages/rehype-minify-whitespace/block.js 100.00%
packages/rehype-minify-whitespace/content.js 100.00%
packages/rehype-minify-whitespace/index.js 100.00%
packages/rehype-minify-whitespace/skippable.js 100.00%
packages/rehype-minify-whitespace/test.js 100.00%
packages/rehype-normalize-attribute-value-case/index.js 100.00%
packages/rehype-normalize-attribute-value-case/test.js 100.00%
packages/rehype-preset-minify/index.js 100.00%
packages/rehype-prevent-favicon-request/index.js 100.00%
packages/rehype-prevent-favicon-request/test.js 100.00%
packages/rehype-remove-comments/index.js 100.00%
packages/rehype-remove-comments/test.js 100.00%
packages/rehype-remove-duplicate-attribute-values/index.js 100.00%
packages/rehype-remove-duplicate-attribute-values/test.js 100.00%
packages/rehype-remove-empty-attribute/index.js 100.00%
packages/rehype-remove-empty-attribute/test.js 100.00%
packages/rehype-remove-external-script-content/index.js 100.00%
packages/rehype-remove-external-script-content/test.js 100.00%
packages/rehype-remove-meta-http-equiv/index.js 100.00%
packages/rehype-remove-meta-http-equiv/test.js 100.00%
packages/rehype-remove-script-type-javascript/index.js 100.00%
packages/rehype-remove-script-type-javascript/test.js 100.00%
packages/rehype-remove-style-type-css/index.js 100.00%
packages/rehype-remove-style-type-css/test.js 100.00%
packages/rehype-sort-attribute-values/index.js 100.00%
packages/rehype-sort-attribute-values/test.js 100.00%
packages/rehype-sort-attributes/index.js 100.00%
packages/rehype-sort-attributes/test.js 100.00%
Project Totals (81 files) 100.00%
Loading